From a7a0876298f7f4d7959be1880f8743936af86731 Mon Sep 17 00:00:00 2001 From: John Reiser Date: Mon, 26 Jun 2017 21:34:28 -0700 Subject: [PATCH] /proc/self/exe in powerpc64*.S stub; unify with powerpc*.S. modified: stub/src/powerpc-linux.elf-entry.S modified: stub/src/powerpc-linux.elf-fold.S modified: stub/src/powerpc64le-linux.elf-entry.S modified: stub/src/powerpc64le-linux.elf-fold.S modified: .github/travis_testsuite_1.sh also corresponding *.h *.dump *.map files --- .github/travis_testsuite_1.sh | 14 +- src/stub/powerpc-linux.elf-entry.h | 447 ++++++++------- src/stub/powerpc-linux.elf-fold.h | 6 +- src/stub/powerpc64-linux.elf-entry.h | 524 +++++++++--------- src/stub/powerpc64-linux.elf-fold.h | 334 +++++------ src/stub/powerpc64le-linux.elf-entry.h | 477 ++++++++-------- src/stub/powerpc64le-linux.elf-fold.h | 328 +++++------ src/stub/src/powerpc-linux.elf-entry.S | 44 +- src/stub/src/powerpc-linux.elf-fold.S | 72 +-- src/stub/src/powerpc64le-linux.elf-entry.S | 245 +++++--- src/stub/src/powerpc64le-linux.elf-fold.S | 280 +++++++--- src/stub/tmp/powerpc-linux.elf-entry.bin.dump | 4 +- .../tmp/powerpc64-linux.elf-entry.bin.dump | 13 +- src/stub/tmp/powerpc64-linux.elf-fold.map | 79 +-- .../tmp/powerpc64le-linux.elf-entry.bin.dump | 11 +- src/stub/tmp/powerpc64le-linux.elf-fold.map | 79 +-- 16 files changed, 1637 insertions(+), 1320 deletions(-) diff --git a/.github/travis_testsuite_1.sh b/.github/travis_testsuite_1.sh index a1eb1232..c75fefbc 100644 --- a/.github/travis_testsuite_1.sh +++ b/.github/travis_testsuite_1.sh @@ -157,7 +157,7 @@ e10077f957cf7582bb58aa5283479d7be2205929e7fa6f109fdd600e482080e3 *armeb-linux.el d3cfb5347758ee54e54cfc92ae502a3e19702cd4fec115d74f84f8a5ab7a9bc2 *i386-win32.pe/upx-3.91.exe c4c8b912a48bcaaef72fd94cd0c307659a03be2ec359bf01a42a2a39307dd964 *m68k-atari.tos/upx-3.91.ttp 856744328060427972111f8bf91ca69481fc97f4777138a7960b664b98c17f9c *mipsel-linux.elf/upx-3.91 -73fde1ed57abe551abec91fbb05dc78e0f7eba74f403fc39c9fe65c5db9a97da *powerpc-linux.elf/upx-3.91 +4fbff658b66f358d55c30a4c7fe3bc3f3b4b5d85572919094202fb0564de332c *powerpc-linux.elf/upx-3.91 " expected_sha256sums__t120_compress_ucl_nrv2d_3_no_filter="\ 70c7e9da1ea26ff9369560b4b33f49296fff9b6d7bb5683d06d2ceb31f5d3405 *amd64-linux.elf/upx-3.91 @@ -168,7 +168,7 @@ c52473f5dbdac560c05d5d173e5342b5e696e604517359baef581672eb25a9e6 *i386-dos32.djg 5bebadb8455b052580b1f22a949c3eb5a441c8b6ba9c6b50506cb703fc3f65ce *i386-win32.pe/upx-3.91.exe ef94d8b0e02a650c302bec9f2d50462f2accc2fbb8003cc4977bc550d2e5b9f2 *m68k-atari.tos/upx-3.91.ttp 521a16b5e4aba197ab60ac16c14f96234a4d668d45d894a9d1cc950769928605 *mipsel-linux.elf/upx-3.91 -f249c2c09a7dcb66a7d727665af8dfcdd66c7c91ec864dd2108de9ba28d52209 *powerpc-linux.elf/upx-3.91 +7d2b30ecd665d2433ba1e011cec3692f3b83610d71ee988b5d4b0badb5180d12 *powerpc-linux.elf/upx-3.91 " expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\ 0aa0397c6e6e728992c8cd09fb203bc90d7e114ed9f40c2880b72ed78fa63589 *amd64-linux.elf/upx-3.91 @@ -179,7 +179,7 @@ expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\ ef5e25c79d356e9ed0736f34dc5ee7a8f4c66d0c330b8d16672fac7d829b5a7c *i386-win32.pe/upx-3.91.exe dfc6abff2d3417b9708b1232d5791a9232c6623dcedb9dcb59428b67bbf864e9 *m68k-atari.tos/upx-3.91.ttp cdb2c6365aeec9cc9a881b70155e8d522d1f8ed634098614809f839f50f09824 *mipsel-linux.elf/upx-3.91 -d0ffb3f65f4d429f7f48e67c4e63c0b0f2c505a595aacc9d4be9f2c5eb52eb61 *powerpc-linux.elf/upx-3.91 +8de15527e1d3847c7613c4e18753d530ef66692e222605beaf39ad6581e32f5b *powerpc-linux.elf/upx-3.91 " expected_sha256sums__t140_compress_lzma_2_no_filter="\ 926006d4461c7df64659aa7b484a663ff0d482712c2240c3b40f7a63d3f9c07c *amd64-linux.elf/upx-3.91 @@ -190,7 +190,7 @@ df91b5daf91a7a43907c1635c225fc810e4e587edf22dc06acc9d394f9116c3e *i386-linux.elf 171bde9f27a5571b524e9d7cdba6cefa142bb8a0b114c4d5294944ee5781e0bb *i386-win32.pe/upx-3.91.exe 8826c1f910007360ba6cec02c91bd7cdc87bce1ce27804ca728846b92d9086c9 *m68k-atari.tos/upx-3.91.ttp ebb6a2d07e105848562c18cc0a57dac035fcc16f41dab231bd26a42075dd53ee *mipsel-linux.elf/upx-3.91 -7a9c60fdd5107fd8b56a51641ad53ca03d1f9bbd9f9bb1dcee1697e247f2e4d1 *powerpc-linux.elf/upx-3.91 +52b483fd134c12689c4fef77b1013572aa3f99be01977ba13ae9d141ed250040 *powerpc-linux.elf/upx-3.91 " expected_sha256sums__t150_compress_ucl_2_all_filters="\ b7ae93def74c119d62ef1a92eb06074b8ce3a4429512ac64de6120097fb48692 *amd64-linux.elf/upx-3.91 @@ -201,7 +201,7 @@ dc7323e753ce62e6a1c22112f139953dbaa1e5268530479f8ad48e0c54062295 *arm-wince.pe/u 7c3d7398f63eb9e235992d2d8fd6de9e355f6f21621c45032a6ae6c9009067e6 *i386-win32.pe/upx-3.91.exe 25e9e84bf4e01350b362d088f8107d8228b4576bc47b6b718e9e742f7e4a5205 *m68k-atari.tos/upx-3.91.ttp b0adb7a28cbc72a6b230a8958fcf08ffbbbdf802b0c1c7d9db4b797bfed19028 *mipsel-linux.elf/upx-3.91 -d8edf4efb13072b23c6a3b5f0fb87908a8120c2495b573ad427eae779ec4ee75 *powerpc-linux.elf/upx-3.91 +c36cfd8c12ba20e7644dfcb95ff06369ec1e56fe9f604cce792215abb17e2dea *powerpc-linux.elf/upx-3.91 " expected_sha256sums__t160_compress_all_methods_1_no_filter="\ e091849d471a5eb866a34ebe09ca4ccae014dae5b592b59b013a4a689bd67385 *amd64-linux.elf/upx-3.91 @@ -212,7 +212,7 @@ c3e3a0dd6e15524c0730e5b23759ae842efc77e2cd1bd3500ea2cf42ccdf93d0 *i386-linux.elf 4c73a38e81fe12f36dc37e514f8580c12bdf5d8cb92e9a07b7070db291a2f7eb *i386-win32.pe/upx-3.91.exe 0f902defbce3c9a8ea08910ff2ac62b9f06e7ceed0570501cb3b6287bfd6d797 *m68k-atari.tos/upx-3.91.ttp 9864b3dcf778e65baa86dfacb468be2cd137733e0ede6042bd5a33bb544c7d70 *mipsel-linux.elf/upx-3.91 -65f6559e66e7b66339577005f648bf3e160fd2ad6f17b8f3f0d1ac9a21b46faf *powerpc-linux.elf/upx-3.91 +fb2b45c8e8092313bb952d58131c1e5cd41accabe67ce8a757d02dfe30d315db *powerpc-linux.elf/upx-3.91 " expected_sha256sums__t170_compress_all_methods_no_lzma_5_no_filter="\ 46d8a75ddc5141f042431188404f720aa2966982d3df25d058b43f4dec692eb0 *amd64-linux.elf/upx-3.91 @@ -223,7 +223,7 @@ a16de8811f3668791d85a795d749e2a844145541c02b6bb1f193dad95042b317 *armeb-linux.el 14b192b5419ca0ec2b3f238dc6ed9c17596e82ff2674a299d4b0a76d118a73de *i386-win32.pe/upx-3.91.exe 2eb756cf3c7e4f80fea379a267071c981f3ab1fbb3eaab7057ca18a2b400fb8f *m68k-atari.tos/upx-3.91.ttp 2e6eb5ba0dfe44f0721fdee84ed7cb82c1c85e398d378c39defa89591212099e *mipsel-linux.elf/upx-3.91 -7838c1206d49957e14bf1202bcf64ee239382ee9ff318f785bf912310c95810d *powerpc-linux.elf/upx-3.91 +005af559b536dcc1a5aaf8c9bd59a78989f49a5cb0b7e9e35c0aa74ef6a779f5 *powerpc-linux.elf/upx-3.91 " ########## end .sha256sums.recreate diff --git a/src/stub/powerpc-linux.elf-entry.h b/src/stub/powerpc-linux.elf-entry.h index 6b895ad7..5a2331ca 100644 --- a/src/stub/powerpc-linux.elf-entry.h +++ b/src/stub/powerpc-linux.elf-entry.h @@ -1,5 +1,5 @@ /* powerpc-linux.elf-entry.h - created from powerpc-linux.elf-entry.bin, 9553 (0x2551) bytes + created from powerpc-linux.elf-entry.bin, 9537 (0x2541) bytes This file is part of the UPX executable compressor. @@ -31,14 +31,14 @@ */ -#define STUB_POWERPC_LINUX_ELF_ENTRY_SIZE 9553 -#define STUB_POWERPC_LINUX_ELF_ENTRY_ADLER32 0xaa3ecfa7 -#define STUB_POWERPC_LINUX_ELF_ENTRY_CRC32 0x8835025d +#define STUB_POWERPC_LINUX_ELF_ENTRY_SIZE 9537 +#define STUB_POWERPC_LINUX_ELF_ENTRY_ADLER32 0x6a98cabc +#define STUB_POWERPC_LINUX_ELF_ENTRY_CRC32 0xd9add15a -unsigned char stub_powerpc_linux_elf_entry[9553] = { +unsigned char stub_powerpc_linux_elf_entry[9537] = { /* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 0, 1, 0, 20, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0020 */ 0, 0, 26,148, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, +/* 0x0020 */ 0, 0, 26,132, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, /* 0x0030 */ 0, 0, 0, 0, 72, 0, 1,165,124, 0, 41,236,125,168, 2,166, /* 0x0040 */ 40, 7, 0, 8, 64,130, 1, 60,144,166, 0, 0,124,132, 26, 20, /* 0x0050 */ 60, 0,128, 0, 61, 32,128, 0, 56, 99,255,255, 56,165,255,255, @@ -416,222 +416,221 @@ unsigned char stub_powerpc_linux_elf_entry[9553] = { /* 0x1790 */ 124,100, 24, 80,124,135, 40, 80, 56, 99, 0, 1, 56,132, 0, 1, /* 0x17a0 */ 144,134, 0, 0, 96,231, 0, 31,124, 0, 56,108,124, 7, 40, 64, /* 0x17b0 */ 124, 0, 63,172, 56,231, 0, 32, 65,128,255,240,124, 0, 4,172, -/* 0x17c0 */ 76, 0, 1, 44, 78,128, 0, 32, 72, 0, 0, 1, 80, 82, 79, 84, -/* 0x17d0 */ 95, 69, 88, 69, 67,124, 80, 82, 79, 84, 95, 87, 82, 73, 84, 69, -/* 0x17e0 */ 32,102, 97,105,108,101,100, 46, 10, 0, 56,160, 0, 30,124,136, -/* 0x17f0 */ 2,166, 56, 96, 0, 2, 56, 0, 0, 4, 68, 0, 0, 2, 56, 96, -/* 0x1800 */ 0,127, 56, 0, 0, 1, 68, 0, 0, 2,127, 8, 2,166, 59,191, -/* 0x1810 */ 255,248,128, 29, 0, 0,131,120, 0, 12,127,160,232, 80,160, 29, -/* 0x1820 */ 0, 16, 40, 0, 0, 3, 65,130, 0, 76,131,157, 0, 72, 57, 0, -/* 0x1830 */ 0, 0,127,158,224, 80, 56,224,255,255, 59,156,255,255, 56,192, -/* 0x1840 */ 0, 50,127,156,240, 56, 56,160, 0, 3,128,152, 0, 16,124,125, -/* 0x1850 */ 226, 20,127,156, 34, 20,124,110, 27,120, 56, 0, 0, 90, 68, 0, -/* 0x1860 */ 0, 2,124, 14, 24, 64, 64,130, 0, 0, 59, 32, 0, 0, 72, 0, -/* 0x1870 */ 0,188,127,185,235,120,130,221, 0, 72,128, 24, 0, 16,127,128, -/* 0x1880 */ 178, 20,127,132,227,120,126,228,232, 80,126,247,240, 56,127, 67, -/* 0x1890 */ 211,120,128,195, 0, 0,129, 3, 0, 4, 56, 99, 0, 8, 43,134, -/* 0x18a0 */ 0, 0, 65,158, 0, 44, 56,198,255,224, 43,134, 0, 1, 65,157, -/* 0x18b0 */ 255,228,124,215, 64, 80,127,134, 32, 64, 64,156,255,216,124,196, -/* 0x18c0 */ 48, 80,126,247, 50, 20,126,247,240, 56, 75,255,255,200,126,227, -/* 0x18d0 */ 187,120, 57, 0, 0, 0, 56,224,255,255, 56,192, 0, 50, 56,160, -/* 0x18e0 */ 0, 3, 56, 0, 0, 90, 68, 0, 0, 2,124, 3,184, 64, 64,130, -/* 0x18f0 */ 0, 0,124, 29,184, 80,127,255, 2, 20,126,198,179,120, 56,198, -/* 0x1900 */ 0, 7, 56,157,255,252, 84,198,232,254, 56, 99,255,252,124,201, -/* 0x1910 */ 3,166,128,164, 0, 4,132,196, 0, 8,144,163, 0, 4,148,195, -/* 0x1920 */ 0, 8, 66, 0,255,240,126,253,187,120,124,101, 27,120,124,119, -/* 0x1930 */ 27,120,127,233, 3,166,128, 24, 0, 16,136,248, 0, 24, 56,193, -/* 0x1940 */ 0,140,144, 1, 0,140,128,152, 0, 20, 56,120, 0, 28, 78,128, -/* 0x1950 */ 4, 33, 87,192,186,126,176, 23, 0, 2, 56,160, 0, 5,127,132, -/* 0x1960 */ 227,120,127,163,235,120, 56, 0, 0,125, 68, 0, 0, 2, 56, 23, -/* 0x1970 */ 0, 16,124, 9, 3,166, 78,128, 4, 32,128, 3, 0, 0, 56, 99, -/* 0x1980 */ 0, 4, 47,128, 0, 0, 64,158,255,244, 78,128, 0, 32,148, 33, -/* 0x1990 */ 255,112,188, 65, 0, 20,127,232, 2,166, 56, 97, 0,144, 75,255, -/* 0x19a0 */ 255,221, 75,255,255,217,124,122, 27,120,128, 3, 0, 0,128,131, -/* 0x19b0 */ 0, 4, 56, 99, 0, 8, 47,128, 0, 6, 65,158, 0, 16, 44, 0, -/* 0x19c0 */ 0, 0, 64,130,255,232, 56,128, 16, 0,127,196, 0,208, 75,255, -/* 0x19d0 */ 254, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x19e0 */ 0, 0,102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108, -/* 0x19f0 */ 102, 51, 50, 45,112,111,119,101,114,112, 99, 10, 10, 83,101, 99, -/* 0x1a00 */ 116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, -/* 0x1a10 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, -/* 0x1a20 */ 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, -/* 0x1a30 */ 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, -/* 0x1a40 */ 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, -/* 0x1a50 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, -/* 0x1a60 */ 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a70 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, -/* 0x1a80 */ 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, -/* 0x1a90 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, -/* 0x1aa0 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72, -/* 0x1ab0 */ 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x1ac0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, -/* 0x1ad0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 51, 56, 32, -/* 0x1ae0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, -/* 0x1af0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, -/* 0x1b00 */ 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, -/* 0x1b10 */ 48, 49, 52, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, -/* 0x1b20 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x1b30 */ 51, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, -/* 0x1b40 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, -/* 0x1b50 */ 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, 68, 32, 32, 32, -/* 0x1b60 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 50, 99, 32, 32, -/* 0x1b70 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x1b80 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 56, 48, 32, 32, 50, 42, -/* 0x1b90 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, -/* 0x1ba0 */ 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, -/* 0x1bb0 */ 52, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1bc0 */ 48, 48, 48, 48, 48, 48,102, 48, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x1bd0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x1be0 */ 48, 48, 48, 50, 97, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, -/* 0x1bf0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, -/* 0x1c00 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 76, 90, 77, 65, -/* 0x1c10 */ 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x1c20 */ 57, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x1c30 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, 57, 99, -/* 0x1c40 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, -/* 0x1c50 */ 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, -/* 0x1c60 */ 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x1c70 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 57, 57, 99, 32, 32, 48, 48, -/* 0x1c80 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1c90 */ 32, 32, 48, 48, 48, 48, 48, 52, 50, 99, 32, 32, 50, 42, 42, 48, -/* 0x1ca0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, -/* 0x1cb0 */ 79, 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x1cc0 */ 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57, 57, 99, 32, -/* 0x1cd0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, -/* 0x1ce0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,100, 99, 56, 32, 32, 50, -/* 0x1cf0 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, -/* 0x1d00 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, -/* 0x1d10 */ 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x1d20 */ 50, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x1d30 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 55, 54, 52, -/* 0x1d40 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, -/* 0x1d50 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78, -/* 0x1d60 */ 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, -/* 0x1d70 */ 48, 48, 48, 49, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1d80 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, -/* 0x1d90 */ 55, 56, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, -/* 0x1da0 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, -/* 0x1db0 */ 48, 32, 67, 70, 76, 85, 83, 72, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1dc0 */ 48, 48, 48, 48, 48, 48, 50, 52, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x1dd0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x1de0 */ 48, 48, 49, 55, 97, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, -/* 0x1df0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, -/* 0x1e00 */ 10, 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, -/* 0x1e10 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 50, 32, 32, 48, 48, 48, -/* 0x1e20 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1e30 */ 32, 48, 48, 48, 48, 49, 55, 99, 56, 32, 32, 50, 42, 42, 48, 32, -/* 0x1e40 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, -/* 0x1e50 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, 69, -/* 0x1e60 */ 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, -/* 0x1e70 */ 48, 48, 49,102, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1e80 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, -/* 0x1e90 */ 55,101, 97, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, -/* 0x1ea0 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, -/* 0x1eb0 */ 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, -/* 0x1ec0 */ 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, -/* 0x1ed0 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, -/* 0x1ee0 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x1ef0 */ 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, -/* 0x1f00 */ 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, -/* 0x1f10 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, -/* 0x1f20 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, -/* 0x1f30 */ 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x1f40 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, -/* 0x1f50 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, -/* 0x1f60 */ 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, -/* 0x1f70 */ 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1f80 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, -/* 0x1f90 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, -/* 0x1fa0 */ 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, -/* 0x1fb0 */ 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, -/* 0x1fc0 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, -/* 0x1fd0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, -/* 0x1fe0 */ 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, -/* 0x1ff0 */ 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, -/* 0x2000 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, -/* 0x2010 */ 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, -/* 0x2020 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, -/* 0x2030 */ 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, -/* 0x2040 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, -/* 0x2050 */ 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, -/* 0x2060 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, -/* 0x2070 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, -/* 0x2080 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, -/* 0x2090 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x20a0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, -/* 0x20b0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, -/* 0x20c0 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x20d0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, -/* 0x20e0 */ 32, 32, 67, 70, 76, 85, 83, 72, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x20f0 */ 48, 32, 67, 70, 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x2100 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, -/* 0x2110 */ 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97, -/* 0x2120 */ 114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, -/* 0x2130 */ 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, -/* 0x2140 */ 48, 48, 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2150 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, -/* 0x2160 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 69, 78, 77, 10, 48, 48, 48, -/* 0x2170 */ 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, -/* 0x2180 */ 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 69, 78, -/* 0x2190 */ 85, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, -/* 0x21a0 */ 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x21b0 */ 48, 32, 79, 95, 66, 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, 67, -/* 0x21c0 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, -/* 0x21d0 */ 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, -/* 0x21e0 */ 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, -/* 0x21f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, -/* 0x2200 */ 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 95, 82, 69, -/* 0x2210 */ 76, 50, 52, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, -/* 0x2220 */ 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 49, 97, 52, 10, 10, 82, -/* 0x2230 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, -/* 0x2240 */ 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10, 79, -/* 0x2250 */ 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, -/* 0x2260 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, -/* 0x2270 */ 48, 48, 48, 48, 48, 48, 98, 52, 32, 82, 95, 80, 80, 67, 95, 82, -/* 0x2280 */ 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, -/* 0x2290 */ 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, -/* 0x22a0 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, -/* 0x22b0 */ 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, -/* 0x22c0 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x22d0 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 98, 52, 32, 82, -/* 0x22e0 */ 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, -/* 0x22f0 */ 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, -/* 0x2300 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, -/* 0x2310 */ 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, 83, 69, -/* 0x2320 */ 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2330 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, -/* 0x2340 */ 48, 48, 57, 48, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, -/* 0x2350 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, -/* 0x2360 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, -/* 0x2370 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, -/* 0x2380 */ 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, -/* 0x2390 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x23a0 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, -/* 0x23b0 */ 82, 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, -/* 0x23c0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 43, 48,120, 48, -/* 0x23d0 */ 48, 48, 48, 48, 48, 50, 52, 10, 10, 82, 69, 76, 79, 67, 65, 84, -/* 0x23e0 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, -/* 0x23f0 */ 91, 69, 76, 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, -/* 0x2400 */ 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, -/* 0x2410 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, -/* 0x2420 */ 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 50, -/* 0x2430 */ 52, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, -/* 0x2440 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, -/* 0x2450 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, -/* 0x2460 */ 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, -/* 0x2470 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2480 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, 99, 32, 82, -/* 0x2490 */ 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, -/* 0x24a0 */ 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 49, -/* 0x24b0 */ 48, 52, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, -/* 0x24c0 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, -/* 0x24d0 */ 48, 48, 48, 49,101, 56, 32, 82, 95, 80, 80, 67, 95, 65, 68, 68, -/* 0x24e0 */ 82, 51, 50, 32, 32, 32, 32, 32, 32, 65, 68, 82, 77, 10, 48, 48, -/* 0x24f0 */ 48, 48, 48, 49,101, 99, 32, 82, 95, 80, 80, 67, 95, 65, 68, 68, -/* 0x2500 */ 82, 51, 50, 32, 32, 32, 32, 32, 32, 76, 69, 78, 77, 10, 48, 48, -/* 0x2510 */ 48, 48, 48, 49,102, 48, 32, 82, 95, 80, 80, 67, 95, 65, 68, 68, -/* 0x2520 */ 82, 51, 50, 32, 32, 32, 32, 32, 32, 76, 69, 78, 85, 10, 48, 48, -/* 0x2530 */ 48, 48, 48, 49,102, 52, 32, 82, 95, 80, 80, 67, 95, 65, 68, 68, -/* 0x2540 */ 82, 51, 50, 32, 32, 32, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, -/* 0x2550 */ 10 +/* 0x17c0 */ 76, 0, 1, 44, 78,128, 0, 32, 72, 0, 0, 1,109,109, 97,112, +/* 0x17d0 */ 32,102, 97,105,108,101,100, 46, 10, 0, 56,160, 0, 14,124,136, +/* 0x17e0 */ 2,166, 56, 96, 0, 2, 56, 0, 0, 4, 68, 0, 0, 2, 56, 96, +/* 0x17f0 */ 0,127, 56, 0, 0, 1, 68, 0, 0, 2,127, 8, 2,166, 59,191, +/* 0x1800 */ 255,248,128, 29, 0, 0,131,120, 0, 12,127,160,232, 80,160, 29, +/* 0x1810 */ 0, 16, 40, 0, 0, 3, 65,130, 0, 76,131,157, 0, 72, 57, 0, +/* 0x1820 */ 0, 0,127,158,224, 80, 56,224,255,255, 59,156,255,255, 56,192, +/* 0x1830 */ 0, 50,127,156,240, 56, 56,160, 0, 3,128,152, 0, 16,124,125, +/* 0x1840 */ 226, 20,127,156, 34, 20,124,110, 27,120, 56, 0, 0, 90, 68, 0, +/* 0x1850 */ 0, 2,124, 14, 24, 64, 64,130, 0, 0, 59, 32, 0, 0, 72, 0, +/* 0x1860 */ 0,188,127,185,235,120,130,221, 0, 72,128, 24, 0, 16,127,128, +/* 0x1870 */ 178, 20,127,132,227,120,126,228,232, 80,126,247,240, 56,127, 67, +/* 0x1880 */ 211,120,128,195, 0, 0,129, 3, 0, 4, 56, 99, 0, 8, 43,134, +/* 0x1890 */ 0, 0, 65,158, 0, 44, 56,198,255,224, 43,134, 0, 1, 65,157, +/* 0x18a0 */ 255,228,124,215, 64, 80,127,134, 32, 64, 64,156,255,216,124,196, +/* 0x18b0 */ 48, 80,126,247, 50, 20,126,247,240, 56, 75,255,255,200,126,227, +/* 0x18c0 */ 187,120, 57, 0, 0, 0, 56,224,255,255, 56,192, 0, 50, 56,160, +/* 0x18d0 */ 0, 3, 56, 0, 0, 90, 68, 0, 0, 2,124, 3,184, 64, 64,130, +/* 0x18e0 */ 0, 0,124, 29,184, 80,127,255, 2, 20,126,198,179,120, 56,198, +/* 0x18f0 */ 0, 7, 56,157,255,252, 84,198,232,254, 56, 99,255,252,124,201, +/* 0x1900 */ 3,166,128,164, 0, 4,132,196, 0, 8,144,163, 0, 4,148,195, +/* 0x1910 */ 0, 8, 66, 0,255,240,126,253,187,120,124,101, 27,120,124,119, +/* 0x1920 */ 27,120,127,233, 3,166,128, 24, 0, 16,136,248, 0, 24, 56,193, +/* 0x1930 */ 0,140,144, 1, 0,140,128,152, 0, 20, 56,120, 0, 28, 78,128, +/* 0x1940 */ 4, 33, 87,192,186,126,176, 23, 0, 2, 56,160, 0, 5,127,132, +/* 0x1950 */ 227,120,127,163,235,120, 56, 0, 0,125, 68, 0, 0, 2, 56, 23, +/* 0x1960 */ 0, 16,124, 9, 3,166, 78,128, 4, 32,128, 3, 0, 0, 56, 99, +/* 0x1970 */ 0, 4, 47,128, 0, 0, 64,158,255,244, 78,128, 0, 32,148, 33, +/* 0x1980 */ 255,112,188, 65, 0, 20,127,232, 2,166, 56, 97, 0,144, 75,255, +/* 0x1990 */ 255,221, 75,255,255,217,124,122, 27,120,128, 3, 0, 0,128,131, +/* 0x19a0 */ 0, 4, 56, 99, 0, 8, 47,128, 0, 6, 65,158, 0, 16, 44, 0, +/* 0x19b0 */ 0, 0, 64,130,255,232, 56,128, 16, 0,127,196, 0,208, 75,255, +/* 0x19c0 */ 254, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x19d0 */ 0, 0,102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108, +/* 0x19e0 */ 102, 51, 50, 45,112,111,119,101,114,112, 99, 10, 10, 83,101, 99, +/* 0x19f0 */ 116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, +/* 0x1a00 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, +/* 0x1a10 */ 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, +/* 0x1a20 */ 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, +/* 0x1a30 */ 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, +/* 0x1a40 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, +/* 0x1a50 */ 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a60 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, +/* 0x1a70 */ 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, +/* 0x1a80 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, +/* 0x1a90 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72, +/* 0x1aa0 */ 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ab0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, +/* 0x1ac0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 51, 56, 32, +/* 0x1ad0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, +/* 0x1ae0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, +/* 0x1af0 */ 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, +/* 0x1b00 */ 48, 49, 52, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, +/* 0x1b10 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x1b20 */ 51, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x1b30 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, +/* 0x1b40 */ 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, 68, 32, 32, 32, +/* 0x1b50 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 50, 99, 32, 32, +/* 0x1b60 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x1b70 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 56, 48, 32, 32, 50, 42, +/* 0x1b80 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, +/* 0x1b90 */ 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, +/* 0x1ba0 */ 52, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1bb0 */ 48, 48, 48, 48, 48, 48,102, 48, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x1bc0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x1bd0 */ 48, 48, 48, 50, 97, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, +/* 0x1be0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, +/* 0x1bf0 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 76, 90, 77, 65, +/* 0x1c00 */ 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x1c10 */ 57, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x1c20 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, 57, 99, +/* 0x1c30 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, +/* 0x1c40 */ 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, +/* 0x1c50 */ 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x1c60 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 57, 57, 99, 32, 32, 48, 48, +/* 0x1c70 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c80 */ 32, 32, 48, 48, 48, 48, 48, 52, 50, 99, 32, 32, 50, 42, 42, 48, +/* 0x1c90 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, +/* 0x1ca0 */ 79, 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x1cb0 */ 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57, 57, 99, 32, +/* 0x1cc0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x1cd0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,100, 99, 56, 32, 32, 50, +/* 0x1ce0 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, +/* 0x1cf0 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, +/* 0x1d00 */ 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x1d10 */ 50, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x1d20 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 55, 54, 52, +/* 0x1d30 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, +/* 0x1d40 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78, +/* 0x1d50 */ 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, +/* 0x1d60 */ 48, 48, 48, 49, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1d70 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, +/* 0x1d80 */ 55, 56, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, +/* 0x1d90 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, +/* 0x1da0 */ 48, 32, 67, 70, 76, 85, 83, 72, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1db0 */ 48, 48, 48, 48, 48, 48, 50, 52, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x1dc0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x1dd0 */ 48, 48, 49, 55, 97, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, +/* 0x1de0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, +/* 0x1df0 */ 10, 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, +/* 0x1e00 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 50, 32, 32, 48, 48, 48, +/* 0x1e10 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1e20 */ 32, 48, 48, 48, 48, 49, 55, 99, 56, 32, 32, 50, 42, 42, 48, 32, +/* 0x1e30 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, +/* 0x1e40 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, 69, +/* 0x1e50 */ 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, +/* 0x1e60 */ 48, 48, 49,102, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1e70 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, +/* 0x1e80 */ 55,100, 97, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, +/* 0x1e90 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, +/* 0x1ea0 */ 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, +/* 0x1eb0 */ 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, +/* 0x1ec0 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, +/* 0x1ed0 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x1ee0 */ 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, +/* 0x1ef0 */ 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, +/* 0x1f00 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, +/* 0x1f10 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x1f20 */ 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, +/* 0x1f30 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, +/* 0x1f40 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, +/* 0x1f50 */ 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, +/* 0x1f60 */ 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1f70 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, +/* 0x1f80 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, +/* 0x1f90 */ 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, +/* 0x1fa0 */ 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, +/* 0x1fb0 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, +/* 0x1fc0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x1fd0 */ 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, +/* 0x1fe0 */ 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x1ff0 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, +/* 0x2000 */ 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, +/* 0x2010 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, +/* 0x2020 */ 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, +/* 0x2030 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, +/* 0x2040 */ 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, +/* 0x2050 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, +/* 0x2060 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, +/* 0x2070 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, +/* 0x2080 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x2090 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, +/* 0x20a0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, +/* 0x20b0 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, +/* 0x20c0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, +/* 0x20d0 */ 32, 32, 67, 70, 76, 85, 83, 72, 9, 48, 48, 48, 48, 48, 48, 48, +/* 0x20e0 */ 48, 32, 67, 70, 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x20f0 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, +/* 0x2100 */ 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97, +/* 0x2110 */ 114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, +/* 0x2120 */ 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, +/* 0x2130 */ 48, 48, 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2140 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, +/* 0x2150 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 69, 78, 77, 10, 48, 48, 48, +/* 0x2160 */ 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, +/* 0x2170 */ 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 69, 78, +/* 0x2180 */ 85, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, +/* 0x2190 */ 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, +/* 0x21a0 */ 48, 32, 79, 95, 66, 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, 67, +/* 0x21b0 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, +/* 0x21c0 */ 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, +/* 0x21d0 */ 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, +/* 0x21e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, +/* 0x21f0 */ 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 95, 82, 69, +/* 0x2200 */ 76, 50, 52, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, +/* 0x2210 */ 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 49, 97, 52, 10, 10, 82, +/* 0x2220 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, +/* 0x2230 */ 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10, 79, +/* 0x2240 */ 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, +/* 0x2250 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, +/* 0x2260 */ 48, 48, 48, 48, 48, 48, 98, 52, 32, 82, 95, 80, 80, 67, 95, 82, +/* 0x2270 */ 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, +/* 0x2280 */ 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, +/* 0x2290 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, +/* 0x22a0 */ 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, +/* 0x22b0 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x22c0 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 98, 52, 32, 82, +/* 0x22d0 */ 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, +/* 0x22e0 */ 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, +/* 0x22f0 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, +/* 0x2300 */ 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, 83, 69, +/* 0x2310 */ 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2320 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, +/* 0x2330 */ 48, 48, 57, 48, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, +/* 0x2340 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, +/* 0x2350 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, +/* 0x2360 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, +/* 0x2370 */ 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, +/* 0x2380 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2390 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, +/* 0x23a0 */ 82, 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, +/* 0x23b0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 43, 48,120, 48, +/* 0x23c0 */ 48, 48, 48, 48, 48, 50, 52, 10, 10, 82, 69, 76, 79, 67, 65, 84, +/* 0x23d0 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, +/* 0x23e0 */ 91, 69, 76, 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, +/* 0x23f0 */ 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, +/* 0x2400 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, +/* 0x2410 */ 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 50, +/* 0x2420 */ 52, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, +/* 0x2430 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, +/* 0x2440 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, +/* 0x2450 */ 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, +/* 0x2460 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2470 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, 99, 32, 82, +/* 0x2480 */ 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, +/* 0x2490 */ 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 49, +/* 0x24a0 */ 48, 52, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, +/* 0x24b0 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, +/* 0x24c0 */ 48, 48, 48, 49,101, 56, 32, 82, 95, 80, 80, 67, 95, 65, 68, 68, +/* 0x24d0 */ 82, 51, 50, 32, 32, 32, 32, 32, 32, 65, 68, 82, 77, 10, 48, 48, +/* 0x24e0 */ 48, 48, 48, 49,101, 99, 32, 82, 95, 80, 80, 67, 95, 65, 68, 68, +/* 0x24f0 */ 82, 51, 50, 32, 32, 32, 32, 32, 32, 76, 69, 78, 77, 10, 48, 48, +/* 0x2500 */ 48, 48, 48, 49,102, 48, 32, 82, 95, 80, 80, 67, 95, 65, 68, 68, +/* 0x2510 */ 82, 51, 50, 32, 32, 32, 32, 32, 32, 76, 69, 78, 85, 10, 48, 48, +/* 0x2520 */ 48, 48, 48, 49,102, 52, 32, 82, 95, 80, 80, 67, 95, 65, 68, 68, +/* 0x2530 */ 82, 51, 50, 32, 32, 32, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, +/* 0x2540 */ 10 }; diff --git a/src/stub/powerpc-linux.elf-fold.h b/src/stub/powerpc-linux.elf-fold.h index 0efa93a4..019ed36c 100644 --- a/src/stub/powerpc-linux.elf-fold.h +++ b/src/stub/powerpc-linux.elf-fold.h @@ -32,8 +32,8 @@ #define STUB_POWERPC_LINUX_ELF_FOLD_SIZE 4444 -#define STUB_POWERPC_LINUX_ELF_FOLD_ADLER32 0x86f59bb6 -#define STUB_POWERPC_LINUX_ELF_FOLD_CRC32 0xefd8aac9 +#define STUB_POWERPC_LINUX_ELF_FOLD_ADLER32 0xc5199bba +#define STUB_POWERPC_LINUX_ELF_FOLD_CRC32 0xef648c2c unsigned char stub_powerpc_linux_elf_fold[4444] = { /* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -65,7 +65,7 @@ unsigned char stub_powerpc_linux_elf_fold[4444] = { /* 0x01a0 */ 124,133, 26, 20,124,105, 3,166,126, 35,139,120, 56,160, 0, 0, /* 0x01b0 */ 156,163,255,255,140, 4,255,255,156, 3,255,255, 66, 0,255,248, /* 0x01c0 */ 144,122,255,248, 84, 99, 0, 58,124, 32, 34,120,124, 0, 26,120, -/* 0x01d0 */ 84, 0, 7,122,124, 96, 24, 80,126,100,155,120,127, 82, 24, 80, +/* 0x01d0 */ 84, 0, 7,126,124, 96, 24, 80,126,100,155,120,127, 82, 24, 80, /* 0x01e0 */ 132, 4,255,252,127,132, 8, 64,148, 3,255,252, 65,157,255,244, /* 0x01f0 */ 124, 97, 27,120,148, 33,247,240,128,159,255,248,124,125,218, 20, /* 0x0200 */ 124,155, 32, 80, 56,161, 0, 16,127, 70,211,120,127,231,251,120, diff --git a/src/stub/powerpc64-linux.elf-entry.h b/src/stub/powerpc64-linux.elf-entry.h index 0151004c..0ab74ed7 100644 --- a/src/stub/powerpc64-linux.elf-entry.h +++ b/src/stub/powerpc64-linux.elf-entry.h @@ -1,5 +1,5 @@ /* powerpc64-linux.elf-entry.h - created from powerpc64-linux.elf-entry.bin, 15420 (0x3c3c) bytes + created from powerpc64-linux.elf-entry.bin, 15764 (0x3d94) bytes This file is part of the UPX executable compressor. @@ -31,14 +31,14 @@ */ -#define STUB_POWERPC64_LINUX_ELF_ENTRY_SIZE 15420 -#define STUB_POWERPC64_LINUX_ELF_ENTRY_ADLER32 0xda5e216d -#define STUB_POWERPC64_LINUX_ELF_ENTRY_CRC32 0x89c87f48 +#define STUB_POWERPC64_LINUX_ELF_ENTRY_SIZE 15764 +#define STUB_POWERPC64_LINUX_ELF_ENTRY_ADLER32 0x3e40ab70 +#define STUB_POWERPC64_LINUX_ELF_ENTRY_CRC32 0x7e27b4c9 -unsigned char stub_powerpc64_linux_elf_entry[15420] = { +unsigned char stub_powerpc64_linux_elf_entry[15764] = { /* 0x0000 */ 127, 69, 76, 70, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 0, 1, 0, 21, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,112, +/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,184, /* 0x0030 */ 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, /* 0x0040 */ 72, 0, 0, 1,124, 0, 41,236,125,168, 2,166, 40, 7, 0, 8, /* 0x0050 */ 64,130, 1, 72,248,166, 0, 0,124,132, 26, 20, 60, 0,128, 0, @@ -752,252 +752,274 @@ unsigned char stub_powerpc64_linux_elf_entry[15420] = { /* 0x2c90 */ 56,132, 0, 1,248,134, 0, 0, 96,231, 0, 31,124, 0, 56,108, /* 0x2ca0 */ 124, 39, 40, 64,124, 0, 63,172, 56,231, 0, 32, 65,128,255,240, /* 0x2cb0 */ 124, 0, 4,172, 76, 0, 1, 44, 78,128, 0, 32, 72, 0, 0, 1, -/* 0x2cc0 */ 80, 82, 79, 84, 95, 69, 88, 69, 67,124, 80, 82, 79, 84, 95, 87, -/* 0x2cd0 */ 82, 73, 84, 69, 32,102, 97,105,108,101,100, 46, 10, 0, 0, 0, -/* 0x2ce0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2cf0 */ 0, 0, 0, 0, 0, 0, 0, 0, 56,160, 0, 30,124,136, 2,166, -/* 0x2d00 */ 56, 96, 0, 2, 56, 0, 0, 4, 68, 0, 0, 2, 56, 96, 0,127, -/* 0x2d10 */ 56, 0, 0, 1, 68, 0, 0, 2,127,200, 2,166,131, 94, 0, 0, -/* 0x2d20 */ 128,126, 0, 8, 57, 0, 0, 0, 60,128, 0, 1, 56,224,255,255, -/* 0x2d30 */ 124, 99,242, 20, 56,192, 0, 50, 56, 99, 0, 15, 56,160, 0, 7, -/* 0x2d40 */ 124, 99, 34, 20, 56, 0, 0, 90,120, 99, 4, 36, 68, 0, 0, 2, -/* 0x2d50 */ 65,195, 0, 0,127,233, 3,166,128, 30, 0, 4,136,254, 0, 12, -/* 0x2d60 */ 56,193, 1,104,144, 1, 1,104,124,101, 27,120,124,104, 3,166, -/* 0x2d70 */ 128,158, 0, 8, 56,126, 0, 16,248, 33,255,145, 78,128, 4, 32, -/* 0x2d80 */ 248, 33,254,145,248, 65, 0,120,248, 97, 0,128,248,129, 0,136, -/* 0x2d90 */ 248,161, 0,144,248,193, 0,152,248,225, 0,160,249, 1, 0,168, -/* 0x2da0 */ 249, 33, 0,176,249, 65, 0,184,249, 97, 0,192,249,129, 0,200, -/* 0x2db0 */ 249,161, 0,208,249,193, 0,216,249,225, 0,224,250, 1, 0,232, -/* 0x2dc0 */ 250, 33, 0,240,250, 65, 0,248,250, 97, 1, 0,250,129, 1, 8, -/* 0x2dd0 */ 250,161, 1, 16,250,193, 1, 24,250,225, 1, 32,251, 1, 1, 40, -/* 0x2de0 */ 251, 33, 1, 48,251, 65, 1, 56,251, 97, 1, 64,251,129, 1, 72, -/* 0x2df0 */ 251,161, 1, 80,251,193, 1, 88,251,225, 1, 96,127,232, 2,166, -/* 0x2e00 */ 75,255,255, 25, 0, 0, 0, 0,102,105,108,101, 32,102,111,114, -/* 0x2e10 */ 109, 97,116, 32,101,108,102, 54, 52, 45,112,111,119,101,114,112, -/* 0x2e20 */ 99, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, -/* 0x2e30 */ 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83, -/* 0x2e40 */ 105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, -/* 0x2e50 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, -/* 0x2e60 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108, -/* 0x2e70 */ 101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97, -/* 0x2e80 */ 103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, -/* 0x2e90 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, -/* 0x2ea0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x2eb0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2ec0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, -/* 0x2ed0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, -/* 0x2ee0 */ 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, -/* 0x2ef0 */ 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, -/* 0x2f00 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x2f10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, -/* 0x2f20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, -/* 0x2f30 */ 48, 48, 48, 52, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, -/* 0x2f40 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, -/* 0x2f50 */ 32, 32, 50, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, -/* 0x2f60 */ 32, 32, 48, 48, 48, 48, 48, 49, 53, 52, 32, 32, 48, 48, 48, 48, -/* 0x2f70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x2f80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, -/* 0x2f90 */ 48, 48, 48, 48, 48, 48, 52, 52, 32, 32, 50, 42, 42, 48, 32, 32, -/* 0x2fa0 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, -/* 0x2fb0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, -/* 0x2fc0 */ 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, -/* 0x2fd0 */ 48, 49, 52, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2fe0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2ff0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, -/* 0x3000 */ 57, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, -/* 0x3010 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, -/* 0x3020 */ 78, 76, 89, 10, 32, 32, 52, 32, 78, 82, 86, 50, 66, 32, 32, 32, -/* 0x3030 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,102, 56, 32, 32, -/* 0x3040 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3050 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3060 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 50,100, 99, 32, 32, 50, 42, -/* 0x3070 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, -/* 0x3080 */ 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, -/* 0x3090 */ 53, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, -/* 0x30a0 */ 48, 48, 48, 48, 48, 48, 57, 52, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x2cc0 */ 109,109, 97,112, 32,102, 97,105,108,101,100, 46, 10, 0, 0, 0, +/* 0x2cd0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2ce0 */ 0, 0, 0, 0, 0, 0, 0, 0, 56,160, 0, 14,124,136, 2,166, +/* 0x2cf0 */ 56, 96, 0, 2, 56, 0, 0, 4, 68, 0, 0, 2, 56, 96, 0,127, +/* 0x2d00 */ 56, 0, 0, 1, 68, 0, 0, 2,127, 8, 2,166, 59,191,255,248, +/* 0x2d10 */ 128, 29, 0, 0,131,120, 0, 0,127,160,232, 80,160, 29, 0, 16, +/* 0x2d20 */ 40, 0, 0, 3, 65,130, 0, 68,235,157, 0,104, 57, 0, 0, 0, +/* 0x2d30 */ 127,158,224, 80, 56,224,255,255, 59,156,255,255, 56,192, 0, 50, +/* 0x2d40 */ 127,156,240, 56, 56,160, 0, 3,128,152, 0, 4,124,125,226, 20, +/* 0x2d50 */ 127,156, 34, 20, 56, 0, 0, 90, 68, 0, 0, 2, 65,195, 0, 0, +/* 0x2d60 */ 59, 32, 0, 0, 72, 0, 0,184,127,185,235,120,234,221, 0,104, +/* 0x2d70 */ 128, 24, 0, 4,127,128,178, 20,127,132,227,120,126,228,232, 80, +/* 0x2d80 */ 126,247,240, 56,127, 67,211,120,232,195, 0, 0,233, 3, 0, 8, +/* 0x2d90 */ 56, 99, 0, 16, 43,166, 0, 0, 65,222, 0, 44, 56,198,255,224, +/* 0x2da0 */ 43,166, 0, 1, 65,253,255,228,124,215, 64, 80,127,166, 32, 64, +/* 0x2db0 */ 64,252,255,216,124,196, 48, 80,126,247, 50, 20,126,247,240, 56, +/* 0x2dc0 */ 75,255,255,200,126,227,187,120, 57, 0, 0, 0, 56,224,255,255, +/* 0x2dd0 */ 56,192, 0, 50, 56,160, 0, 3, 56, 0, 0, 90, 68, 0, 0, 2, +/* 0x2de0 */ 65,195, 0, 0,124, 29,184, 80,127,255, 2, 20,126,198,179,120, +/* 0x2df0 */ 56,198, 0, 15, 56,157,255,248,120,198,225, 2, 56, 99,255,248, +/* 0x2e00 */ 124,201, 3,166,232,164, 0, 8,232,196, 0, 17,248,163, 0, 8, +/* 0x2e10 */ 248,195, 0, 17, 66, 0,255,240,126,253,187,120,124,101, 27,120, +/* 0x2e20 */ 124,119, 27,120,127,233, 3,166,128, 24, 0, 4,136,248, 0, 12, +/* 0x2e30 */ 56,193, 1,104,144, 1, 1,104,128,152, 0, 8, 56,120, 0, 16, +/* 0x2e40 */ 78,128, 4, 33, 56,160, 0, 5,127,132,227,120,127,163,235,120, +/* 0x2e50 */ 56, 0, 0,125, 68, 0, 0, 2,126,233, 3,166, 78,128, 4, 32, +/* 0x2e60 */ 232, 3, 0, 0, 56, 99, 0, 8, 47,160, 0, 0, 64,254,255,244, +/* 0x2e70 */ 78,128, 0, 32,124,128, 0, 8,248, 33,254,145,248, 65, 0,120, +/* 0x2e80 */ 248, 97, 0,128,248,129, 0,136,248,161, 0,144,248,193, 0,152, +/* 0x2e90 */ 248,225, 0,160,249, 1, 0,168,249, 33, 0,176,249, 65, 0,184, +/* 0x2ea0 */ 249, 97, 0,192,249,129, 0,200,249,161, 0,208,249,193, 0,216, +/* 0x2eb0 */ 249,225, 0,224,250, 1, 0,232,250, 33, 0,240,250, 65, 0,248, +/* 0x2ec0 */ 250, 97, 1, 0,250,129, 1, 8,250,161, 1, 16,250,193, 1, 24, +/* 0x2ed0 */ 250,225, 1, 32,251, 1, 1, 40,251, 33, 1, 48,251, 65, 1, 56, +/* 0x2ee0 */ 251, 97, 1, 64,251,129, 1, 72,251,161, 1, 80,251,193, 1, 88, +/* 0x2ef0 */ 251,225, 1, 96,127,232, 2,166, 56, 97, 1,112, 75,255,255,101, +/* 0x2f00 */ 75,255,255, 97,124,122, 27,120,232, 3, 0, 0,232,131, 0, 8, +/* 0x2f10 */ 56, 99, 0, 16, 47,160, 0, 6, 65,222, 0, 16, 44, 32, 0, 0, +/* 0x2f20 */ 64,226,255,232, 60,128, 0, 1,127,196, 0,208, 75,255,253,221, +/* 0x2f30 */ 0, 0, 0, 0,102,105,108,101, 32,102,111,114,109, 97,116, 32, +/* 0x2f40 */ 101,108,102, 54, 52, 45,112,111,119,101,114,112, 99, 10, 10, 83, +/* 0x2f50 */ 101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109, +/* 0x2f60 */ 101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, +/* 0x2f70 */ 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2f80 */ 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, +/* 0x2f90 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102, +/* 0x2fa0 */ 102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, +/* 0x2fb0 */ 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, +/* 0x2fc0 */ 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, 48, 48, 48, +/* 0x2fd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, +/* 0x2fe0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x2ff0 */ 48, 48, 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, +/* 0x3000 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, +/* 0x3010 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, +/* 0x3020 */ 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, +/* 0x3030 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3040 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3050 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, +/* 0x3060 */ 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, +/* 0x3070 */ 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, +/* 0x3080 */ 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, +/* 0x3090 */ 48, 48, 48, 49, 53, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x30a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x30b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, -/* 0x30c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x30d0 */ 48, 48, 48, 51,100, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, -/* 0x30e0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, -/* 0x30f0 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, -/* 0x3100 */ 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x3110 */ 50, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3120 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3130 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 54, 56, -/* 0x3140 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, -/* 0x3150 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, 76, -/* 0x3160 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, -/* 0x3170 */ 48, 49, 50, 55, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3180 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x3190 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, -/* 0x31a0 */ 52, 57, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, -/* 0x31b0 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, -/* 0x31c0 */ 56, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, -/* 0x31d0 */ 48, 48, 48, 48, 49, 53, 55, 52, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x31e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, -/* 0x31f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x3200 */ 48, 48, 49, 55, 48, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, -/* 0x3210 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, -/* 0x3220 */ 10, 32, 32, 57, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, -/* 0x3230 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 99, 32, 32, 48, 48, 48, -/* 0x3240 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, -/* 0x3250 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x3260 */ 32, 48, 48, 48, 48, 50, 99, 55, 99, 32, 32, 50, 42, 42, 48, 32, -/* 0x3270 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, -/* 0x3280 */ 78, 76, 89, 10, 32, 49, 48, 32, 67, 70, 76, 85, 83, 72, 32, 32, -/* 0x3290 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 52, 32, 32, -/* 0x32a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x32b0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x32c0 */ 48, 48, 32, 32, 48, 48, 48, 48, 50, 99, 57, 56, 32, 32, 50, 42, -/* 0x32d0 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, -/* 0x32e0 */ 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, 32, 69, 76, 70, 77, 65, -/* 0x32f0 */ 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, -/* 0x3300 */ 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3310 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3320 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 50, 99, 98, 99, 32, -/* 0x3330 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, -/* 0x3340 */ 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, -/* 0x3350 */ 10, 32, 49, 50, 32, 69, 76, 70, 77, 65, 73, 78, 90,101, 32, 32, -/* 0x3360 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 56, 32, 32, 48, 48, 48, -/* 0x3370 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, -/* 0x3380 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x3390 */ 32, 48, 48, 48, 48, 50, 99,101, 48, 32, 32, 50, 42, 42, 51, 32, -/* 0x33a0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, -/* 0x33b0 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 51, 32, 69, -/* 0x33c0 */ 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, -/* 0x33d0 */ 48, 48, 49, 49, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x33e0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x33f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 50, -/* 0x3400 */ 99,102, 56, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, -/* 0x3410 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, -/* 0x3420 */ 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, -/* 0x3430 */ 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3440 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, -/* 0x3450 */ 95, 68, 69, 67, 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3460 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x3470 */ 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3480 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, -/* 0x3490 */ 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x34a0 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, -/* 0x34b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x34c0 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, -/* 0x34d0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x34e0 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, -/* 0x34f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, -/* 0x3500 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, -/* 0x3510 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, -/* 0x3520 */ 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3530 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, -/* 0x3540 */ 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x3550 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, -/* 0x3560 */ 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3570 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, -/* 0x3580 */ 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3590 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, +/* 0x30c0 */ 48, 48, 52, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, +/* 0x30d0 */ 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, +/* 0x30e0 */ 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, 68, 32, +/* 0x30f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 52, 52, +/* 0x3100 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3110 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3120 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 57, 56, 32, 32, +/* 0x3130 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, +/* 0x3140 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, +/* 0x3150 */ 32, 32, 52, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, +/* 0x3160 */ 32, 32, 48, 48, 48, 48, 48, 48,102, 56, 32, 32, 48, 48, 48, 48, +/* 0x3170 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x3180 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, +/* 0x3190 */ 48, 48, 48, 48, 48, 50,100, 99, 32, 32, 50, 42, 42, 48, 32, 32, +/* 0x31a0 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, +/* 0x31b0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 76, 90, +/* 0x31c0 */ 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, +/* 0x31d0 */ 48, 48, 57, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x31e0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x31f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, +/* 0x3200 */ 100, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x3210 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, +/* 0x3220 */ 78, 76, 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x3230 */ 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 56, 32, 32, +/* 0x3240 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3250 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3260 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 54, 56, 32, 32, 50, 42, +/* 0x3270 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, +/* 0x3280 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, +/* 0x3290 */ 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, 48, 49, 50, 55, +/* 0x32a0 */ 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x32b0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x32c0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 57, 48, 32, +/* 0x32d0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, +/* 0x32e0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, 90, +/* 0x32f0 */ 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, +/* 0x3300 */ 49, 53, 55, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3310 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3320 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 55, +/* 0x3330 */ 48, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x3340 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, +/* 0x3350 */ 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, +/* 0x3360 */ 48, 48, 48, 48, 48, 49, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x3370 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x3380 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, +/* 0x3390 */ 48, 50, 99, 55, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, +/* 0x33a0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, +/* 0x33b0 */ 32, 49, 48, 32, 67, 70, 76, 85, 83, 72, 32, 32, 32, 32, 32, 32, +/* 0x33c0 */ 32, 32, 48, 48, 48, 48, 48, 48, 50, 52, 32, 32, 48, 48, 48, 48, +/* 0x33d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x33e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, +/* 0x33f0 */ 48, 48, 48, 48, 50, 99, 57, 56, 32, 32, 50, 42, 42, 48, 32, 32, +/* 0x3400 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, +/* 0x3410 */ 76, 89, 10, 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, +/* 0x3420 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 50, 32, 32, 48, +/* 0x3430 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x3440 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3450 */ 48, 32, 32, 48, 48, 48, 48, 50, 99, 98, 99, 32, 32, 50, 42, 42, +/* 0x3460 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, +/* 0x3470 */ 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, +/* 0x3480 */ 32, 69, 76, 70, 77, 65, 73, 78, 90,101, 32, 32, 32, 32, 32, 48, +/* 0x3490 */ 48, 48, 48, 48, 48, 49, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x34a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x34b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, +/* 0x34c0 */ 48, 50, 99,100, 48, 32, 32, 50, 42, 42, 51, 32, 32, 67, 79, 78, +/* 0x34d0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, +/* 0x34e0 */ 65, 68, 79, 78, 76, 89, 10, 32, 49, 51, 32, 69, 76, 70, 77, 65, +/* 0x34f0 */ 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 50, 52, +/* 0x3500 */ 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3510 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3520 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 50, 99,101, 56, 32, +/* 0x3530 */ 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, +/* 0x3540 */ 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, +/* 0x3550 */ 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, +/* 0x3560 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x3570 */ 108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x3580 */ 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3590 */ 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, /* 0x35a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x35b0 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, -/* 0x35c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, -/* 0x35d0 */ 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x35e0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, -/* 0x35f0 */ 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3600 */ 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, -/* 0x3610 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, -/* 0x3620 */ 32,100, 32, 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, -/* 0x3630 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, -/* 0x3640 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3650 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, -/* 0x3660 */ 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3670 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, -/* 0x3680 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3690 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x36a0 */ 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x36b0 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x36c0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x36d0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x36e0 */ 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x36f0 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, +/* 0x35b0 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, +/* 0x35c0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x35d0 */ 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, +/* 0x35e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, +/* 0x35f0 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, +/* 0x3600 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, +/* 0x3610 */ 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3620 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x3630 */ 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, +/* 0x3640 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, +/* 0x3650 */ 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3660 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, +/* 0x3670 */ 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3680 */ 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, +/* 0x3690 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x36a0 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, +/* 0x36b0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x36c0 */ 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, +/* 0x36d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, +/* 0x36e0 */ 32,100, 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, +/* 0x36f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, /* 0x3700 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3710 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 70, 76, 85, 83, 72, -/* 0x3720 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3730 */ 48, 32, 67, 70, 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x3740 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, -/* 0x3750 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 90,101, 9, 48, 48, 48, 48, -/* 0x3760 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, -/* 0x3770 */ 77, 65, 73, 78, 90,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3780 */ 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, -/* 0x3790 */ 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x37a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, -/* 0x37b0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x37c0 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, -/* 0x37d0 */ 78, 90,101, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x37e0 */ 48, 48, 48, 48, 32,101,110,116,114,121, 95,100,101,115, 99,114, -/* 0x37f0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3800 */ 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, -/* 0x3810 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3820 */ 32, 79, 95, 66, 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, 67, 65, -/* 0x3830 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, -/* 0x3840 */ 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, -/* 0x3850 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, -/* 0x3860 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x3870 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3880 */ 48, 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, -/* 0x3890 */ 69, 76, 50, 52, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, -/* 0x38a0 */ 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x38b0 */ 48, 48, 56, 56, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, -/* 0x38c0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, -/* 0x38d0 */ 86, 50, 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, -/* 0x38e0 */ 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, -/* 0x38f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, -/* 0x3900 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 99, 48, 32, -/* 0x3910 */ 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32, 32, -/* 0x3920 */ 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, -/* 0x3930 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, -/* 0x3940 */ 79, 82, 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, -/* 0x3950 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, -/* 0x3960 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, -/* 0x3970 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3980 */ 48, 48, 48, 99, 99, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, -/* 0x3990 */ 76, 49, 52, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, -/* 0x39a0 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, -/* 0x39b0 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, -/* 0x39c0 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x39d0 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x39e0 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, -/* 0x39f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 57, 56, 32, 82, 95, 80, 80, -/* 0x3a00 */ 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 78, 82, -/* 0x3a10 */ 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, -/* 0x3a20 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, -/* 0x3a30 */ 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, -/* 0x3a40 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, -/* 0x3a50 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x3a60 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3a70 */ 48, 48, 48, 48, 48, 52, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, -/* 0x3a80 */ 69, 76, 49, 52, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x3a90 */ 67, 51, 48, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3aa0 */ 48, 48, 48, 48, 50, 56, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, -/* 0x3ab0 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, -/* 0x3ac0 */ 69, 76, 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, -/* 0x3ad0 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, -/* 0x3ae0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, -/* 0x3af0 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3b00 */ 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, -/* 0x3b10 */ 50, 52, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, -/* 0x3b20 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, -/* 0x3b30 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, -/* 0x3b40 */ 90,101, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, -/* 0x3b50 */ 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, -/* 0x3b60 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, -/* 0x3b70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, -/* 0x3b80 */ 95, 80, 80, 67, 54, 52, 95, 65, 68, 68, 82, 54, 52, 32, 32, 32, -/* 0x3b90 */ 32, 95,115,116, 97,114,116, 10, 10, 82, 69, 76, 79, 67, 65, 84, -/* 0x3ba0 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, -/* 0x3bb0 */ 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, -/* 0x3bc0 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, -/* 0x3bd0 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, -/* 0x3be0 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3bf0 */ 48, 48, 48, 53, 56, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, -/* 0x3c00 */ 76, 49, 52, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, -/* 0x3c10 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 48, -/* 0x3c20 */ 99, 32, 82, 95, 80, 80, 67, 54, 52, 95, 65, 68, 68, 82, 51, 50, -/* 0x3c30 */ 32, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10 +/* 0x3710 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, +/* 0x3720 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3730 */ 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3740 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x3750 */ 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3760 */ 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, +/* 0x3770 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x3780 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, +/* 0x3790 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x37a0 */ 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, +/* 0x37b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x37c0 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x37d0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x37e0 */ 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, +/* 0x37f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x3800 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, +/* 0x3810 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3820 */ 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, +/* 0x3830 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x3840 */ 32, 32, 32,100, 32, 32, 67, 70, 76, 85, 83, 72, 9, 48, 48, 48, +/* 0x3850 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 70, +/* 0x3860 */ 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3870 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, +/* 0x3880 */ 70, 77, 65, 73, 78, 90,101, 9, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3890 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, +/* 0x38a0 */ 90,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x38b0 */ 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, +/* 0x38c0 */ 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x38d0 */ 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48, +/* 0x38e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, +/* 0x38f0 */ 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90,101, 9, +/* 0x3900 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3910 */ 32,101,110,116,114,121, 95,100,101,115, 99,114, 10, 48, 48, 48, +/* 0x3920 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, +/* 0x3930 */ 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, +/* 0x3940 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 79, 95, 66, +/* 0x3950 */ 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, +/* 0x3960 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, +/* 0x3970 */ 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, +/* 0x3980 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, +/* 0x3990 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, +/* 0x39a0 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x39b0 */ 48, 48, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 50, 52, +/* 0x39c0 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 43, 48,120, +/* 0x39d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 56, 99, +/* 0x39e0 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, +/* 0x39f0 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, +/* 0x3a00 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3a10 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3a20 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, +/* 0x3a30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 99, 48, 32, 82, 95, 80, 80, +/* 0x3a40 */ 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 78, 82, +/* 0x3a50 */ 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, +/* 0x3a60 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, +/* 0x3a70 */ 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, +/* 0x3a80 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, +/* 0x3a90 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, +/* 0x3aa0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 99, +/* 0x3ab0 */ 99, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, +/* 0x3ac0 */ 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, +/* 0x3ad0 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, +/* 0x3ae0 */ 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, +/* 0x3af0 */ 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, +/* 0x3b00 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3b10 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3b20 */ 48, 48, 48, 48, 48, 57, 56, 32, 82, 95, 80, 80, 67, 54, 52, 95, +/* 0x3b30 */ 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, +/* 0x3b40 */ 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, +/* 0x3b50 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, +/* 0x3b60 */ 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, +/* 0x3b70 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, +/* 0x3b80 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, +/* 0x3b90 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3ba0 */ 48, 52, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, +/* 0x3bb0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 43, +/* 0x3bc0 */ 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3bd0 */ 50, 56, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, +/* 0x3be0 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, +/* 0x3bf0 */ 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, +/* 0x3c00 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, +/* 0x3c10 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, +/* 0x3c20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3c30 */ 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 50, 52, 32, 32, +/* 0x3c40 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 82, 69, 76, +/* 0x3c50 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, +/* 0x3c60 */ 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90,101, 93, 58, +/* 0x3c70 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3c80 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3c90 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, +/* 0x3ca0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, +/* 0x3cb0 */ 54, 52, 95, 65, 68, 68, 82, 54, 52, 32, 32, 32, 32, 95,115,116, +/* 0x3cc0 */ 97,114,116, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, +/* 0x3cd0 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, +/* 0x3ce0 */ 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, +/* 0x3cf0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, +/* 0x3d00 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, +/* 0x3d10 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 55, +/* 0x3d20 */ 52, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, +/* 0x3d30 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, +/* 0x3d40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,102, 56, 32, 82, 95, +/* 0x3d50 */ 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, +/* 0x3d60 */ 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x3d70 */ 48, 48, 48, 48, 48, 48, 50, 52, 56, 32, 82, 95, 80, 80, 67, 54, +/* 0x3d80 */ 52, 95, 65, 68, 68, 82, 51, 50, 32, 32, 32, 32, 79, 95, 66, 73, +/* 0x3d90 */ 78, 70, 79, 10 }; diff --git a/src/stub/powerpc64-linux.elf-fold.h b/src/stub/powerpc64-linux.elf-fold.h index 694c2468..5fabcb9e 100644 --- a/src/stub/powerpc64-linux.elf-fold.h +++ b/src/stub/powerpc64-linux.elf-fold.h @@ -1,5 +1,5 @@ /* powerpc64-linux.elf-fold.h - created from powerpc64-linux.elf-fold.bin, 2552 (0x9f8) bytes + created from powerpc64-linux.elf-fold.bin, 2840 (0xb18) bytes This file is part of the UPX executable compressor. @@ -31,169 +31,187 @@ */ -#define STUB_POWERPC64_LINUX_ELF_FOLD_SIZE 2552 -#define STUB_POWERPC64_LINUX_ELF_FOLD_ADLER32 0x133b8465 -#define STUB_POWERPC64_LINUX_ELF_FOLD_CRC32 0x9f5c5208 +#define STUB_POWERPC64_LINUX_ELF_FOLD_SIZE 2840 +#define STUB_POWERPC64_LINUX_ELF_FOLD_ADLER32 0x315ae8a8 +#define STUB_POWERPC64_LINUX_ELF_FOLD_CRC32 0x30151ef5 -unsigned char stub_powerpc64_linux_elf_fold[2552] = { +unsigned char stub_powerpc64_linux_elf_fold[2840] = { /* 0x0000 */ 127, 69, 76, 70, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0010 */ 0, 2, 0, 21, 0, 0, 0, 1, 0, 0, 0, 0, 0, 16, 9,168, +/* 0x0010 */ 0, 2, 0, 21, 0, 0, 0, 1, 0, 0, 0, 0, 0, 16, 10,200, /* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 1, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, /* 0x0040 */ 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0050 */ 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, -/* 0x0060 */ 0, 0, 0, 0, 0, 0, 9,168, 0, 0, 0, 0, 0, 0, 9,168, +/* 0x0060 */ 0, 0, 0, 0, 0, 0, 10,196, 0, 0, 0, 0, 0, 0, 10,196, /* 0x0070 */ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, -/* 0x0080 */ 0, 0, 0, 0, 0, 0, 9,168, 0, 0, 0, 0, 0, 16, 9,168, -/* 0x0090 */ 0, 0, 0, 0, 0, 16, 9,168, 0, 0, 0, 0, 0, 0, 0, 80, +/* 0x0080 */ 0, 0, 0, 0, 0, 0, 10,200, 0, 0, 0, 0, 0, 16, 10,200, +/* 0x0090 */ 0, 0, 0, 0, 0, 16, 10,200, 0, 0, 0, 0, 0, 0, 0, 80, /* 0x00a0 */ 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 1, 0, 0, -/* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0,125, -/* 0x00c0 */ 40, 6, 0,208, 76,194, 0, 32, 84,132,240,191, 77,194, 0, 32, -/* 0x00d0 */ 60, 0, 0, 16,124, 4, 0, 64, 65,128, 0, 8,124, 4, 3,120, -/* 0x00e0 */ 56,165, 1, 32,124,103, 27,120, 56, 99,255,252,124,137, 3,166, -/* 0x00f0 */ 72, 0, 0, 28, 84, 11, 2,186,125, 99, 88, 80,125,107, 58, 20, -/* 0x0100 */ 81, 96, 1,186,144, 3, 0, 0, 79, 64, 0, 32,132, 3, 0, 4, -/* 0x0110 */ 84, 11, 85,190,124, 11, 40, 64, 65,194,255,220, 67, 32,255,240, -/* 0x0120 */ 78,128, 0, 32,232, 9, 0, 0, 57, 41, 0, 8, 43,160, 0, 0, -/* 0x0130 */ 64,254,255,244, 78,128, 0, 32, 56, 33, 0,112,125, 8, 2,166, -/* 0x0140 */ 233, 33, 0, 0, 75,255,255,225, 75,255,255,221, 57, 65, 0,248, -/* 0x0150 */ 248, 10, 0, 0, 56, 33,247,144,128,159,255,248,121, 30, 3,228, -/* 0x0160 */ 127,164,248, 80, 59,189,255,248,127,231,251,120,124,125,210, 20, -/* 0x0170 */ 124,154, 32, 80, 56,161, 0,112,128,195, 0, 0,248,225, 0, 24, -/* 0x0180 */ 56,225, 0, 24,249, 1, 0, 32, 57, 1, 0, 32, 72, 0, 5,229, -/* 0x0190 */ 232, 1, 9,104,232, 67, 0, 8,124, 66, 2, 20,232, 99, 0, 0, -/* 0x01a0 */ 124, 99, 2, 20,124,127, 27,120,127,163,235,120,124,157,240, 80, -/* 0x01b0 */ 72, 0, 0,177,127,232, 3,166,232, 97, 8,128,232,129, 8,136, -/* 0x01c0 */ 232,161, 8,144,232,193, 8,152,232,225, 8,160,233, 1, 8,168, -/* 0x01d0 */ 233, 33, 8,176,233, 65, 8,184,233, 97, 8,192,233,129, 8,200, -/* 0x01e0 */ 233,161, 8,208,233,193, 8,216,233,225, 8,224,234, 1, 8,232, -/* 0x01f0 */ 234, 33, 8,240,234, 65, 8,248,234, 97, 9, 0,234,129, 9, 8, -/* 0x0200 */ 234,161, 9, 16,234,193, 9, 24,234,225, 9, 32,235, 1, 9, 40, -/* 0x0210 */ 235, 33, 9, 48,235, 65, 9, 56,235, 97, 9, 64,235,129, 9, 72, -/* 0x0220 */ 235,161, 9, 80,235,193, 9, 88,235,225, 9, 96,232, 33, 8,112, -/* 0x0230 */ 56, 0, 0, 0,124, 15,241, 32,124, 9, 3,166, 78,128, 0, 32, -/* 0x0240 */ 56, 0, 0, 1, 72, 0, 0, 8, 56, 0, 0, 45, 72, 0, 0, 8, -/* 0x0250 */ 56, 0, 0, 6, 72, 0, 0, 8, 56, 0, 0, 5, 72, 0, 0, 8, -/* 0x0260 */ 56, 0, 0, 91, 72, 0, 0, 8, 56, 0, 0,125, 72, 0, 0, 8, -/* 0x0270 */ 56, 0, 0, 3, 72, 0, 0, 8, 56, 0, 0, 90, 68, 0, 0, 2, -/* 0x0280 */ 64,227, 0, 8, 56, 96,255,255, 78,128, 0, 32, 44, 35, 0, 0, -/* 0x0290 */ 77,130, 0, 32, 47, 36, 0, 0,233, 67, 0, 0,127,170, 32, 64, -/* 0x02a0 */ 64,158, 0, 16,248,131, 0, 0,248,163, 0, 8, 78,128, 0, 32, -/* 0x02b0 */ 43,170, 0, 1, 64,158, 0, 8, 64,154,255,236, 56, 99, 0, 16, -/* 0x02c0 */ 75,255,255,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x02d0 */ 233, 67, 0, 0,233, 3, 0, 8, 56,229, 0, 1, 57, 32, 0, 0, -/* 0x02e0 */ 124,233, 3,166,127,170, 40, 64, 64,252, 0, 28,124, 8, 2,166, -/* 0x02f0 */ 56, 96, 0,127,248, 1, 0, 16,248, 33,255,145, 75,255,255, 69, -/* 0x0300 */ 96, 0, 0, 0, 66, 64, 0, 20,125, 72, 72,174,125, 68, 73,174, -/* 0x0310 */ 57, 41, 0, 1, 75,255,255,240,233, 67, 0, 8,125, 74, 74, 20, -/* 0x0320 */ 249, 67, 0, 8,233, 67, 0, 0,125, 41, 80, 80,249, 35, 0, 0, -/* 0x0330 */ 78,128, 0, 32, 0, 0, 0, 0, 0, 0, 0, 1,128, 0, 0, 0, -/* 0x0340 */ 125,128, 0, 38,124, 8, 2,166,145,129, 0, 8, 72, 0, 5,241, -/* 0x0350 */ 248, 33,255, 81,124,126, 27,120,124,159, 35,120,124,189, 43,120, -/* 0x0360 */ 124,220, 51,120, 46, 38, 0, 0,233, 63, 0, 0, 47,169, 0, 0, -/* 0x0370 */ 65,158, 1, 64,127,195,243,120, 56,129, 0,112, 56,160, 0, 12, -/* 0x0380 */ 75,255,255, 81,129, 65, 0,112,129, 33, 0,116, 47,170, 0, 0, -/* 0x0390 */ 64,158, 0, 32,109, 37, 33, 88, 47,133, 80, 85, 64,158, 0, 28, -/* 0x03a0 */ 233, 62, 0, 0, 47,169, 0, 0, 65,254, 1, 8, 72, 0, 0, 12, -/* 0x03b0 */ 121, 41, 0, 33, 64,226, 0, 16, 56, 96, 0,127, 75,255,254,133, -/* 0x03c0 */ 96, 0, 0, 0,127, 9, 80, 64, 65,217,255,240,233, 31, 0, 0, -/* 0x03d0 */ 127,170, 64, 64, 65,221,255,228,232,191, 0, 8, 64,152, 0,164, -/* 0x03e0 */ 125, 36, 75,120,233, 61, 0, 0,232,126, 0, 8, 56,193, 0,128, -/* 0x03f0 */ 249, 65, 0,128,248, 65, 0, 40,136,225, 0,120,233,125, 0, 16, -/* 0x0400 */ 125, 41, 3,166,232, 93, 0, 8, 78,128, 4, 33,232, 65, 0, 40, -/* 0x0410 */ 47,163, 0, 0, 64,222,255,164,232,129, 0,128,129, 33, 0,112, -/* 0x0420 */ 127,164, 72, 0, 64,222,255,148,136,193, 0,121, 47,166, 0, 0, -/* 0x0430 */ 65,158, 0, 48, 65,146, 0, 44,232,127, 0, 8,136,161, 0,122, -/* 0x0440 */ 120,132, 0, 32,248, 65, 0, 40,233, 60, 0, 0,233,124, 0, 16, -/* 0x0450 */ 125, 41, 3,166,232, 92, 0, 8, 78,128, 4, 33,232, 65, 0, 40, -/* 0x0460 */ 129, 1, 0,116,233, 94, 0, 8,233, 62, 0, 0,125, 74, 66, 20, -/* 0x0470 */ 125, 40, 72, 80,249, 94, 0, 8,249, 62, 0, 0, 72, 0, 0, 20, -/* 0x0480 */ 124,164, 43,120,127,195,243,120,125, 37, 75,120, 75,255,254, 69, -/* 0x0490 */ 129, 1, 0,112,233, 95, 0, 8,233, 63, 0, 0,125, 74, 66, 20, -/* 0x04a0 */ 125, 40, 72, 80,249, 95, 0, 8,249, 63, 0, 0, 75,255,254,188, -/* 0x04b0 */ 56, 33, 0,176,129,129, 0, 8,125,144,129, 32, 72, 0, 4,208, -/* 0x04c0 */ 0, 0, 0, 0, 0, 0, 0, 3,128, 4, 0, 0,124, 8, 2,166, -/* 0x04d0 */ 125,128, 0, 38, 72, 0, 4, 49,125, 58, 75,120,161, 35, 0, 16, -/* 0x04e0 */ 235,163, 0, 32,124,215, 51,120,124,123, 27,120,124,153, 35,120, -/* 0x04f0 */ 47,137, 0, 3,145,129, 0, 8,248, 33,254,241,124,184, 43,120, -/* 0x0500 */ 124,246, 59,120,125, 21, 67,120,127,163,234, 20, 56,192, 0, 16, -/* 0x0510 */ 64,158, 0, 8, 56,192, 0, 0,161, 59, 0, 56, 56,198, 8, 34, -/* 0x0520 */ 127,168,235,120, 57, 64, 0, 0, 59,192,255,255, 57, 41, 0, 1, -/* 0x0530 */ 125, 41, 3,166, 66, 64, 0, 60,129, 40, 0, 0, 47,137, 0, 1, -/* 0x0540 */ 64,158, 0, 40,232,232, 0, 16,127,190, 56, 64, 64,157, 0, 8, -/* 0x0550 */ 124,254, 59,120,233, 40, 0, 40,125, 39, 74, 20,127,170, 72, 64, -/* 0x0560 */ 64,156, 0, 8,125, 42, 75,120, 57, 8, 0, 56, 75,255,255,200, -/* 0x0570 */ 61, 74, 0, 1,123,222, 3,228, 57, 74,255,255,127,195,243,120, -/* 0x0580 */ 124,158, 80, 80, 56,160, 0, 0,120,132, 3,228,124,198, 7,180, -/* 0x0590 */ 56,224,255,255, 57, 0, 0, 0, 75,255,252,225, 96, 0, 0, 0, -/* 0x05a0 */ 62, 64,115, 81, 58,128, 0, 0, 46, 57, 0, 0, 98, 82, 98, 64, -/* 0x05b0 */ 127,222, 24, 80, 58, 32, 0, 0,161, 59, 0, 56,127,137,160, 0, -/* 0x05c0 */ 64,157, 1,128,129, 61, 0, 0, 65,146, 0, 36, 47,137, 0, 6, -/* 0x05d0 */ 64,158, 0, 28,232,189, 0, 16,126,227,187,120, 56,128, 0, 3, -/* 0x05e0 */ 124,190, 42, 20, 75,255,252,169, 72, 0, 1, 72, 47,137, 0, 1, -/* 0x05f0 */ 64,158, 1, 64,129,253, 0, 4,235,157, 0, 16,235,253, 0, 32, -/* 0x0600 */ 234,125, 0, 40, 85,239, 22,250,127,158,226, 20,251,225, 0,112, -/* 0x0610 */ 126, 79,124, 48,123,137, 4, 32,251,129, 0,120,126,124,154, 20, -/* 0x0620 */ 127,233,250, 20,123,156, 3,228, 85,240, 7,126, 64,146, 0, 12, -/* 0x0630 */ 56,160, 0, 0, 72, 0, 0, 8, 56,160, 0, 2,124,165,131,120, -/* 0x0640 */ 124,165, 7,180, 64,146, 0, 16,127, 7,195,120, 56,192, 0, 18, -/* 0x0650 */ 72, 0, 0, 12, 56,192, 0, 50, 56,224,255,255,233, 29, 0, 8, -/* 0x0660 */ 127,131,227,120,127,228,251,120,125, 9, 64, 80, 75,255,252, 13, -/* 0x0670 */ 96, 0, 0, 0,127,188, 24, 0, 65,254, 0, 16, 56, 96, 0,127, -/* 0x0680 */ 75,255,251,193, 96, 0, 0, 0, 65,146, 0, 24,127, 35,203,120, -/* 0x0690 */ 56,129, 0,112,126,197,179,120,126,166,171,120, 75,255,252,165, -/* 0x06a0 */ 125,223, 0,208,121,233,255,227,121,206, 4, 32, 64,130, 0, 12, -/* 0x06b0 */ 64,146, 0, 44, 72, 0, 0, 68, 47,174, 0, 0, 65,158,255,244, -/* 0x06c0 */ 125,201, 3,166,125, 92,250, 20, 57, 32, 0, 0,126, 42, 73,174, -/* 0x06d0 */ 57, 41, 0, 1, 66, 0,255,248, 75,255,255,216,127,131,227,120, -/* 0x06e0 */ 127,228,251,120,126, 5, 7,180, 75,255,251,129, 96, 0, 0, 0, -/* 0x06f0 */ 47,163, 0, 0, 64,222,255,136,127,238,250, 20,127,252,250, 20, -/* 0x0700 */ 127,191,152, 64, 64,156, 0, 44,127,227,251,120,124,159,152, 80, -/* 0x0710 */ 126, 5, 7,180, 56,192, 0, 50, 56,224,255,255, 57, 0, 0, 0, -/* 0x0720 */ 75,255,251, 89, 96, 0, 0, 0,127,191, 24, 0, 64,222,255, 80, -/* 0x0730 */ 58,148, 0, 1, 59,189, 0, 56,126,148, 7,180, 75,255,254,124, -/* 0x0740 */ 47,186, 0, 0, 65,158, 0, 8,251,218, 0, 0, 56, 33, 1, 16, -/* 0x0750 */ 232,123, 0, 24,124,126, 26, 20,129,129, 0, 8,125,144,129, 32, -/* 0x0760 */ 72, 0, 1,244, 0, 0, 0, 0, 0, 0, 0, 3,128, 18, 0, 0, -/* 0x0770 */ 124, 8, 2,166, 56,192, 0, 0, 72, 0, 1,185,248, 33,255, 17, -/* 0x0780 */ 124,191, 43,120,125, 62, 75,120,125, 91, 83,120,129, 35, 0, 0, -/* 0x0790 */ 59,133, 0, 64, 59,160, 0, 0,248, 97, 0,152,248,129, 0,144, -/* 0x07a0 */ 248,161, 0,136,249, 33, 0,128,124,229, 59,120,248,225, 0,160, -/* 0x07b0 */ 249, 1, 0,168, 56, 97, 0,144, 56,129, 0,128,233, 65, 0,144, -/* 0x07c0 */ 233, 97, 0,152,249, 65, 0,112,249, 97, 0,120, 75,255,251,117, -/* 0x07d0 */ 127,195,243,120, 56,128, 0, 3,232,191, 0, 80, 56,165, 0, 64, -/* 0x07e0 */ 75,255,250,173,160,191, 0, 56,127,195,243,120, 56,128, 0, 5, -/* 0x07f0 */ 75,255,250,157,128,191, 0, 28,127,195,243,120, 56,128, 0, 9, -/* 0x0800 */ 75,255,250,141,232,225, 0,160,233, 1, 0,168, 56,129, 0,112, -/* 0x0810 */ 56,160, 0, 0,127,198,243,120,127,105,219,120,127,227,251,120, -/* 0x0820 */ 75,255,252,173, 56,128, 0, 9,124,122, 27,120,127,195,243,120, -/* 0x0830 */ 127, 69,211,120, 75,255,250, 89,161, 63, 0, 56,127,137,232, 0, -/* 0x0840 */ 64,157, 0,172,129, 60, 0, 0, 47,137, 0, 3, 64,158, 0,144, -/* 0x0850 */ 232,124, 0, 16,233, 59, 0, 0, 56,128, 0, 0, 56,160, 0, 0, -/* 0x0860 */ 124, 99, 74, 20, 75,255,249,245, 96, 0, 0, 0, 47,131, 0, 0, -/* 0x0870 */ 124,121, 27,120, 64,252, 0, 16, 56, 96, 0,127, 75,255,249,197, -/* 0x0880 */ 96, 0, 0, 0,127,228,251,120, 56,160, 4, 0, 75,255,249,229, -/* 0x0890 */ 96, 0, 0, 0, 47,163, 4, 0, 64,222,255,224, 56,128, 0, 0, -/* 0x08a0 */ 127, 37,203,120, 56,192, 0, 0, 56,224, 0, 0, 57, 0, 0, 0, -/* 0x08b0 */ 127,105,219,120,127,227,251,120, 75,255,252, 21,232,187, 0, 0, -/* 0x08c0 */ 56,128, 0, 7,124,122, 27,120,127,195,243,120, 75,255,249,193, -/* 0x08d0 */ 127, 35,203,120, 75,255,249,125, 96, 0, 0, 0, 59,189, 0, 1, -/* 0x08e0 */ 59,156, 0, 56,127,189, 7,180, 75,255,255, 80, 56, 33, 0,240, -/* 0x08f0 */ 127, 67,211,120, 72, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, 1, -/* 0x0900 */ 128, 7, 0, 0,249,193,255,112,249,225,255,120,250, 1,255,128, -/* 0x0910 */ 250, 33,255,136,250, 65,255,144,250, 97,255,152,250,129,255,160, -/* 0x0920 */ 250,161,255,168,250,193,255,176,250,225,255,184,251, 1,255,192, -/* 0x0930 */ 251, 33,255,200,251, 65,255,208,251, 97,255,216,251,129,255,224, -/* 0x0940 */ 251,161,255,232,251,193,255,240,251,225,255,248,248, 1, 0, 16, -/* 0x0950 */ 78,128, 0, 32,233,193,255,112,233,225,255,120,234, 1,255,128, -/* 0x0960 */ 234, 33,255,136,234, 65,255,144,234, 97,255,152,234,129,255,160, -/* 0x0970 */ 234,161,255,168,234,193,255,176,234,225,255,184,235, 1,255,192, -/* 0x0980 */ 235, 33,255,200,235, 65,255,208,235, 97,255,216,235,129,255,224, -/* 0x0990 */ 232, 1, 0, 16,235,161,255,232,124, 8, 3,166,235,193,255,240, -/* 0x09a0 */ 235,225,255,248, 78,128, 0, 32, 0, 0, 0, 0, 0, 16, 2,140, -/* 0x09b0 */ 0, 0, 0, 0, 0, 16,137,168, 0, 0, 0, 0, 0, 16, 2,208, -/* 0x09c0 */ 0, 0, 0, 0, 0, 16,137,168, 0, 0, 0, 0, 0, 16, 3, 64, -/* 0x09d0 */ 0, 0, 0, 0, 0, 16,137,168, 0, 0, 0, 0, 0, 16, 4,204, -/* 0x09e0 */ 0, 0, 0, 0, 0, 16,137,168, 0, 0, 0, 0, 0, 16, 7,112, -/* 0x09f0 */ 0, 0, 0, 0, 0, 16,137,168 +/* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,128, 0, 8, +/* 0x00c0 */ 72, 0, 0,125, 40, 6, 0,208, 76,194, 0, 32, 84,132,240,191, +/* 0x00d0 */ 77,194, 0, 32, 60, 0, 0, 16,124, 4, 0, 64, 65,128, 0, 8, +/* 0x00e0 */ 124, 4, 3,120, 56,165, 1, 32,124,103, 27,120, 56, 99,255,252, +/* 0x00f0 */ 124,137, 3,166, 72, 0, 0, 28, 84, 11, 2,186,125, 99, 88, 80, +/* 0x0100 */ 125,107, 58, 20, 81, 96, 1,186,144, 3, 0, 0, 79, 64, 0, 32, +/* 0x0110 */ 132, 3, 0, 4, 84, 11, 85,190,124, 11, 40, 64, 65,194,255,220, +/* 0x0120 */ 67, 32,255,240, 78,128, 0, 32, 32, 32, 32, 61, 47,112,114,111, +/* 0x0130 */ 99, 47,115,101,108,102, 47,101,120,101, 0, 0,126,168, 2,166, +/* 0x0140 */ 56,128, 0, 0, 56,117, 0,104, 72, 0, 2, 45,124,116, 27,120, +/* 0x0150 */ 56,129,255,248, 56, 33,239,248, 56, 97,255,248, 59, 90,255,248, +/* 0x0160 */ 232, 4, 0, 9,127,164,208, 64,248, 3, 0, 9, 65,156,255,244, +/* 0x0170 */ 59, 67, 0, 16,248, 3, 0, 9,232, 4, 0, 8, 43,160, 0, 0, +/* 0x0180 */ 248, 3, 0, 8,232, 4, 0, 17,248, 3, 0, 17, 64,158,255,236, +/* 0x0190 */ 58, 99, 0, 8,126, 90,152, 80,124,128, 0, 8,128, 21, 0,100, +/* 0x01a0 */ 58, 36, 0, 8,148, 3, 0, 8, 57,195, 0, 4, 56,160, 15,255, +/* 0x01b0 */ 125,196,115,120, 56,117, 0,104, 72, 0, 1,165, 56,174,255,252, +/* 0x01c0 */ 44, 35, 0, 0, 65,129, 0, 12, 56,181, 0,100, 56, 96, 0, 12, +/* 0x01d0 */ 56, 99, 0, 4,124,133, 26, 20,124,105, 3,166,126, 35,139,120, +/* 0x01e0 */ 56,160, 0, 0,156,163,255,255,140, 4,255,255,156, 3,255,255, +/* 0x01f0 */ 66, 0,255,248,248,122,255,240,120, 99, 7, 36,124, 32, 34,120, +/* 0x0200 */ 124, 0, 26,120,120, 0, 7, 32,124, 96, 24, 80,126,100,155,120, +/* 0x0210 */ 127, 82, 24, 80,232, 4,255,249,127,164, 8, 64,248, 3,255,249, +/* 0x0220 */ 65,253,255,244,124, 97, 27,120, 57, 65, 0,248, 56, 0, 0, 0, +/* 0x0230 */ 248, 10, 0, 0,248, 33,247,145,128,159,255,248,124,125,218, 20, +/* 0x0240 */ 124,155, 32, 80, 56,161, 0,112,127, 70,211,120,127,231,251,120, +/* 0x0250 */ 126,168,171,120,127, 41,203,120,248,225, 0, 24, 56,225, 0, 24, +/* 0x0260 */ 249, 1, 0, 32, 57, 1, 0, 32, 72, 0, 6, 37,232, 1, 9,104, +/* 0x0270 */ 232, 67, 0, 8,124, 66, 2, 20,232, 99, 0, 0,124, 99, 2, 20, +/* 0x0280 */ 56, 33, 8,112,124,127, 27,120, 57, 0, 0, 0,126,135,163,120, +/* 0x0290 */ 56,192, 0, 2, 56,160, 0, 1,124,158, 0,208, 56, 96, 0, 0, +/* 0x02a0 */ 72, 0, 0,245,126,131,163,120, 72, 0, 0,197,127, 67,211,120, +/* 0x02b0 */ 232, 3, 0, 0,232,131, 0, 8, 56, 99, 0, 16, 43,160, 0, 0, +/* 0x02c0 */ 64,254,255,240,124,137, 3,166,127,163,235,120,127,132,227,120, +/* 0x02d0 */ 56, 0, 0, 91,127,232, 3,166,232, 97, 0,128,232,129, 0,136, +/* 0x02e0 */ 232,161, 0,144,232,193, 0,152,232,225, 0,160,233, 1, 0,168, +/* 0x02f0 */ 233, 33, 0,176,233, 65, 0,184,233, 97, 0,192,233,129, 0,200, +/* 0x0300 */ 233,161, 0,208,233,193, 0,216,233,225, 0,224,234, 1, 0,232, +/* 0x0310 */ 234, 33, 0,240,234, 65, 0,248,234, 97, 1, 0,234,129, 1, 8, +/* 0x0320 */ 234,161, 1, 16,234,193, 1, 24,234,225, 1, 32,235, 1, 1, 40, +/* 0x0330 */ 235, 33, 1, 48,235, 65, 1, 56,235, 97, 1, 64,235,129, 1, 72, +/* 0x0340 */ 235,161, 1, 80,235,193, 1, 88,235,225, 1, 96, 56, 33, 1,112, +/* 0x0350 */ 78,128, 4, 32, 56, 0, 0, 1, 72, 0, 0, 8, 56, 0, 0, 85, +/* 0x0360 */ 72, 0, 0, 8, 56, 0, 0, 45, 72, 0, 0, 8, 56, 0, 0, 6, +/* 0x0370 */ 72, 0, 0, 8, 56, 0, 0, 5, 72, 0, 0, 8, 56, 0, 0, 91, +/* 0x0380 */ 72, 0, 0, 8, 56, 0, 0,125, 72, 0, 0, 8, 56, 0, 0, 3, +/* 0x0390 */ 72, 0, 0, 8, 56, 0, 0, 90, 68, 0, 0, 2, 64,227, 0, 8, +/* 0x03a0 */ 56, 96,255,255, 78,128, 0, 32, 44, 35, 0, 0, 77,130, 0, 32, +/* 0x03b0 */ 47, 36, 0, 0,233, 67, 0, 0,127,170, 32, 64, 64,158, 0, 16, +/* 0x03c0 */ 248,131, 0, 0,248,163, 0, 8, 78,128, 0, 32, 43,170, 0, 1, +/* 0x03d0 */ 64,158, 0, 8, 64,154,255,236, 56, 99, 0, 16, 75,255,255,216, +/* 0x03e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233, 67, 0, 0, +/* 0x03f0 */ 233, 3, 0, 8, 56,229, 0, 1, 57, 32, 0, 0,124,233, 3,166, +/* 0x0400 */ 127,170, 40, 64, 64,252, 0, 28,124, 8, 2,166, 56, 96, 0,127, +/* 0x0410 */ 248, 1, 0, 16,248, 33,255,145, 75,255,255, 61, 96, 0, 0, 0, +/* 0x0420 */ 66, 64, 0, 20,125, 72, 72,174,125, 68, 73,174, 57, 41, 0, 1, +/* 0x0430 */ 75,255,255,240,233, 67, 0, 8,125, 74, 74, 20,249, 67, 0, 8, +/* 0x0440 */ 233, 67, 0, 0,125, 41, 80, 80,249, 35, 0, 0, 78,128, 0, 32, +/* 0x0450 */ 0, 0, 0, 0, 0, 0, 0, 1,128, 0, 0, 0,125,128, 0, 38, +/* 0x0460 */ 124, 8, 2,166,145,129, 0, 8, 72, 0, 5,241,248, 33,255, 81, +/* 0x0470 */ 124,126, 27,120,124,159, 35,120,124,189, 43,120,124,220, 51,120, +/* 0x0480 */ 46, 38, 0, 0,233, 63, 0, 0, 47,169, 0, 0, 65,158, 1, 64, +/* 0x0490 */ 127,195,243,120, 56,129, 0,112, 56,160, 0, 12, 75,255,255, 81, +/* 0x04a0 */ 129, 65, 0,112,129, 33, 0,116, 47,170, 0, 0, 64,158, 0, 32, +/* 0x04b0 */ 109, 37, 33, 88, 47,133, 80, 85, 64,158, 0, 28,233, 62, 0, 0, +/* 0x04c0 */ 47,169, 0, 0, 65,254, 1, 8, 72, 0, 0, 12,121, 41, 0, 33, +/* 0x04d0 */ 64,226, 0, 16, 56, 96, 0,127, 75,255,254,125, 96, 0, 0, 0, +/* 0x04e0 */ 127, 9, 80, 64, 65,217,255,240,233, 31, 0, 0,127,170, 64, 64, +/* 0x04f0 */ 65,221,255,228,232,191, 0, 8, 64,152, 0,164,125, 36, 75,120, +/* 0x0500 */ 233, 61, 0, 0,232,126, 0, 8, 56,193, 0,128,249, 65, 0,128, +/* 0x0510 */ 248, 65, 0, 40,136,225, 0,120,233,125, 0, 16,125, 41, 3,166, +/* 0x0520 */ 232, 93, 0, 8, 78,128, 4, 33,232, 65, 0, 40, 47,163, 0, 0, +/* 0x0530 */ 64,222,255,164,232,129, 0,128,129, 33, 0,112,127,164, 72, 0, +/* 0x0540 */ 64,222,255,148,136,193, 0,121, 47,166, 0, 0, 65,158, 0, 48, +/* 0x0550 */ 65,146, 0, 44,232,127, 0, 8,136,161, 0,122,120,132, 0, 32, +/* 0x0560 */ 248, 65, 0, 40,233, 60, 0, 0,233,124, 0, 16,125, 41, 3,166, +/* 0x0570 */ 232, 92, 0, 8, 78,128, 4, 33,232, 65, 0, 40,129, 1, 0,116, +/* 0x0580 */ 233, 94, 0, 8,233, 62, 0, 0,125, 74, 66, 20,125, 40, 72, 80, +/* 0x0590 */ 249, 94, 0, 8,249, 62, 0, 0, 72, 0, 0, 20,124,164, 43,120, +/* 0x05a0 */ 127,195,243,120,125, 37, 75,120, 75,255,254, 69,129, 1, 0,112, +/* 0x05b0 */ 233, 95, 0, 8,233, 63, 0, 0,125, 74, 66, 20,125, 40, 72, 80, +/* 0x05c0 */ 249, 95, 0, 8,249, 63, 0, 0, 75,255,254,188, 56, 33, 0,176, +/* 0x05d0 */ 129,129, 0, 8,125,144,129, 32, 72, 0, 4,208, 0, 0, 0, 0, +/* 0x05e0 */ 0, 0, 0, 3,128, 4, 0, 0,124, 8, 2,166,125,128, 0, 38, +/* 0x05f0 */ 72, 0, 4, 49,125, 58, 75,120,161, 35, 0, 16,235,163, 0, 32, +/* 0x0600 */ 124,215, 51,120,124,123, 27,120,124,153, 35,120, 47,137, 0, 3, +/* 0x0610 */ 145,129, 0, 8,248, 33,254,241,124,184, 43,120,124,246, 59,120, +/* 0x0620 */ 125, 21, 67,120,127,163,234, 20, 56,192, 0, 16, 64,158, 0, 8, +/* 0x0630 */ 56,192, 0, 0,161, 59, 0, 56, 56,198, 8, 34,127,168,235,120, +/* 0x0640 */ 57, 64, 0, 0, 59,192,255,255, 57, 41, 0, 1,125, 41, 3,166, +/* 0x0650 */ 66, 64, 0, 60,129, 40, 0, 0, 47,137, 0, 1, 64,158, 0, 40, +/* 0x0660 */ 232,232, 0, 16,127,190, 56, 64, 64,157, 0, 8,124,254, 59,120, +/* 0x0670 */ 233, 40, 0, 40,125, 39, 74, 20,127,170, 72, 64, 64,156, 0, 8, +/* 0x0680 */ 125, 42, 75,120, 57, 8, 0, 56, 75,255,255,200, 61, 74, 0, 1, +/* 0x0690 */ 123,222, 3,228, 57, 74,255,255,127,195,243,120,124,158, 80, 80, +/* 0x06a0 */ 56,160, 0, 0,120,132, 3,228,124,198, 7,180, 56,224,255,255, +/* 0x06b0 */ 57, 0, 0, 0, 75,255,252,225, 96, 0, 0, 0, 62, 64,115, 81, +/* 0x06c0 */ 58,128, 0, 0, 46, 57, 0, 0, 98, 82, 98, 64,127,222, 24, 80, +/* 0x06d0 */ 58, 32, 0, 0,161, 59, 0, 56,127,137,160, 0, 64,157, 1,128, +/* 0x06e0 */ 129, 61, 0, 0, 65,146, 0, 36, 47,137, 0, 6, 64,158, 0, 28, +/* 0x06f0 */ 232,189, 0, 16,126,227,187,120, 56,128, 0, 3,124,190, 42, 20, +/* 0x0700 */ 75,255,252,169, 72, 0, 1, 72, 47,137, 0, 1, 64,158, 1, 64, +/* 0x0710 */ 129,253, 0, 4,235,157, 0, 16,235,253, 0, 32,234,125, 0, 40, +/* 0x0720 */ 85,239, 22,250,127,158,226, 20,251,225, 0,112,126, 79,124, 48, +/* 0x0730 */ 123,137, 4, 32,251,129, 0,120,126,124,154, 20,127,233,250, 20, +/* 0x0740 */ 123,156, 3,228, 85,240, 7,126, 64,146, 0, 12, 56,160, 0, 0, +/* 0x0750 */ 72, 0, 0, 8, 56,160, 0, 2,124,165,131,120,124,165, 7,180, +/* 0x0760 */ 64,146, 0, 16,127, 7,195,120, 56,192, 0, 18, 72, 0, 0, 12, +/* 0x0770 */ 56,192, 0, 50, 56,224,255,255,233, 29, 0, 8,127,131,227,120, +/* 0x0780 */ 127,228,251,120,125, 9, 64, 80, 75,255,252, 13, 96, 0, 0, 0, +/* 0x0790 */ 127,188, 24, 0, 65,254, 0, 16, 56, 96, 0,127, 75,255,251,185, +/* 0x07a0 */ 96, 0, 0, 0, 65,146, 0, 24,127, 35,203,120, 56,129, 0,112, +/* 0x07b0 */ 126,197,179,120,126,166,171,120, 75,255,252,165,125,223, 0,208, +/* 0x07c0 */ 121,233,255,227,121,206, 4, 32, 64,130, 0, 12, 64,146, 0, 44, +/* 0x07d0 */ 72, 0, 0, 68, 47,174, 0, 0, 65,158,255,244,125,201, 3,166, +/* 0x07e0 */ 125, 92,250, 20, 57, 32, 0, 0,126, 42, 73,174, 57, 41, 0, 1, +/* 0x07f0 */ 66, 0,255,248, 75,255,255,216,127,131,227,120,127,228,251,120, +/* 0x0800 */ 126, 5, 7,180, 75,255,251,129, 96, 0, 0, 0, 47,163, 0, 0, +/* 0x0810 */ 64,222,255,136,127,238,250, 20,127,252,250, 20,127,191,152, 64, +/* 0x0820 */ 64,156, 0, 44,127,227,251,120,124,159,152, 80,126, 5, 7,180, +/* 0x0830 */ 56,192, 0, 50, 56,224,255,255, 57, 0, 0, 0, 75,255,251, 89, +/* 0x0840 */ 96, 0, 0, 0,127,191, 24, 0, 64,222,255, 80, 58,148, 0, 1, +/* 0x0850 */ 59,189, 0, 56,126,148, 7,180, 75,255,254,124, 47,186, 0, 0, +/* 0x0860 */ 65,158, 0, 8,251,218, 0, 0, 56, 33, 1, 16,232,123, 0, 24, +/* 0x0870 */ 124,126, 26, 20,129,129, 0, 8,125,144,129, 32, 72, 0, 1,244, +/* 0x0880 */ 0, 0, 0, 0, 0, 0, 0, 3,128, 18, 0, 0,124, 8, 2,166, +/* 0x0890 */ 56,192, 0, 0, 72, 0, 1,185,248, 33,255, 17,124,191, 43,120, +/* 0x08a0 */ 125, 62, 75,120,125, 91, 83,120,129, 35, 0, 0, 59,133, 0, 64, +/* 0x08b0 */ 59,160, 0, 0,248, 97, 0,152,248,129, 0,144,248,161, 0,136, +/* 0x08c0 */ 249, 33, 0,128,124,229, 59,120,248,225, 0,160,249, 1, 0,168, +/* 0x08d0 */ 56, 97, 0,144, 56,129, 0,128,233, 65, 0,144,233, 97, 0,152, +/* 0x08e0 */ 249, 65, 0,112,249, 97, 0,120, 75,255,251,117,127,195,243,120, +/* 0x08f0 */ 56,128, 0, 3,232,191, 0, 80, 56,165, 0, 64, 75,255,250,173, +/* 0x0900 */ 160,191, 0, 56,127,195,243,120, 56,128, 0, 5, 75,255,250,157, +/* 0x0910 */ 128,191, 0, 28,127,195,243,120, 56,128, 0, 9, 75,255,250,141, +/* 0x0920 */ 232,225, 0,160,233, 1, 0,168, 56,129, 0,112, 56,160, 0, 0, +/* 0x0930 */ 127,198,243,120,127,105,219,120,127,227,251,120, 75,255,252,173, +/* 0x0940 */ 56,128, 0, 9,124,122, 27,120,127,195,243,120,127, 69,211,120, +/* 0x0950 */ 75,255,250, 89,161, 63, 0, 56,127,137,232, 0, 64,157, 0,172, +/* 0x0960 */ 129, 60, 0, 0, 47,137, 0, 3, 64,158, 0,144,232,124, 0, 16, +/* 0x0970 */ 233, 59, 0, 0, 56,128, 0, 0, 56,160, 0, 0,124, 99, 74, 20, +/* 0x0980 */ 75,255,249,245, 96, 0, 0, 0, 47,131, 0, 0,124,121, 27,120, +/* 0x0990 */ 64,252, 0, 16, 56, 96, 0,127, 75,255,249,189, 96, 0, 0, 0, +/* 0x09a0 */ 127,228,251,120, 56,160, 4, 0, 75,255,249,229, 96, 0, 0, 0, +/* 0x09b0 */ 47,163, 4, 0, 64,222,255,224, 56,128, 0, 0,127, 37,203,120, +/* 0x09c0 */ 56,192, 0, 0, 56,224, 0, 0, 57, 0, 0, 0,127,105,219,120, +/* 0x09d0 */ 127,227,251,120, 75,255,252, 21,232,187, 0, 0, 56,128, 0, 7, +/* 0x09e0 */ 124,122, 27,120,127,195,243,120, 75,255,249,193,127, 35,203,120, +/* 0x09f0 */ 75,255,249,125, 96, 0, 0, 0, 59,189, 0, 1, 59,156, 0, 56, +/* 0x0a00 */ 127,189, 7,180, 75,255,255, 80, 56, 33, 0,240,127, 67,211,120, +/* 0x0a10 */ 72, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, 1,128, 7, 0, 0, +/* 0x0a20 */ 249,193,255,112,249,225,255,120,250, 1,255,128,250, 33,255,136, +/* 0x0a30 */ 250, 65,255,144,250, 97,255,152,250,129,255,160,250,161,255,168, +/* 0x0a40 */ 250,193,255,176,250,225,255,184,251, 1,255,192,251, 33,255,200, +/* 0x0a50 */ 251, 65,255,208,251, 97,255,216,251,129,255,224,251,161,255,232, +/* 0x0a60 */ 251,193,255,240,251,225,255,248,248, 1, 0, 16, 78,128, 0, 32, +/* 0x0a70 */ 233,193,255,112,233,225,255,120,234, 1,255,128,234, 33,255,136, +/* 0x0a80 */ 234, 65,255,144,234, 97,255,152,234,129,255,160,234,161,255,168, +/* 0x0a90 */ 234,193,255,176,234,225,255,184,235, 1,255,192,235, 33,255,200, +/* 0x0aa0 */ 235, 65,255,208,235, 97,255,216,235,129,255,224,232, 1, 0, 16, +/* 0x0ab0 */ 235,161,255,232,124, 8, 3,166,235,193,255,240,235,225,255,248, +/* 0x0ac0 */ 78,128, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3,168, +/* 0x0ad0 */ 0, 0, 0, 0, 0, 16,138,200, 0, 0, 0, 0, 0, 16, 3,236, +/* 0x0ae0 */ 0, 0, 0, 0, 0, 16,138,200, 0, 0, 0, 0, 0, 16, 4, 92, +/* 0x0af0 */ 0, 0, 0, 0, 0, 16,138,200, 0, 0, 0, 0, 0, 16, 5,232, +/* 0x0b00 */ 0, 0, 0, 0, 0, 16,138,200, 0, 0, 0, 0, 0, 16, 8,140, +/* 0x0b10 */ 0, 0, 0, 0, 0, 16,138,200 }; diff --git a/src/stub/powerpc64le-linux.elf-entry.h b/src/stub/powerpc64le-linux.elf-entry.h index f86290eb..840e14a4 100644 --- a/src/stub/powerpc64le-linux.elf-entry.h +++ b/src/stub/powerpc64le-linux.elf-entry.h @@ -1,5 +1,5 @@ /* powerpc64le-linux.elf-entry.h - created from powerpc64le-linux.elf-entry.bin, 12198 (0x2fa6) bytes + created from powerpc64le-linux.elf-entry.bin, 12542 (0x30fe) bytes This file is part of the UPX executable compressor. @@ -31,14 +31,14 @@ */ -#define STUB_POWERPC64LE_LINUX_ELF_ENTRY_SIZE 12198 -#define STUB_POWERPC64LE_LINUX_ELF_ENTRY_ADLER32 0xebffab25 -#define STUB_POWERPC64LE_LINUX_ELF_ENTRY_CRC32 0xf8cdde06 +#define STUB_POWERPC64LE_LINUX_ELF_ENTRY_SIZE 12542 +#define STUB_POWERPC64LE_LINUX_ELF_ENTRY_ADLER32 0x76c53439 +#define STUB_POWERPC64LE_LINUX_ELF_ENTRY_CRC32 0x1e50f567 -unsigned char stub_powerpc64le_linux_elf_entry[12198] = { +unsigned char stub_powerpc64le_linux_elf_entry[12542] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 21, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,208, 37, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 24, 39, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, /* 0x0040 */ 1, 0, 0, 72,236, 41, 0,124,166, 2,168,125, 8, 0, 7, 40, /* 0x0050 */ 72, 1,130, 64, 0, 0,166,248, 20, 26,132,124, 0,128, 0, 60, @@ -574,229 +574,250 @@ unsigned char stub_powerpc64le_linux_elf_entry[12198] = { /* 0x2170 */ 1, 0,132, 56, 0, 0,134,248, 31, 0,231, 96,108, 56, 0,124, /* 0x2180 */ 64, 40, 39,124,172, 63, 0,124, 32, 0,231, 56,240,255,128, 65, /* 0x2190 */ 172, 4, 0,124, 44, 1, 0, 76, 32, 0,128, 78, 1, 0, 0, 72, -/* 0x21a0 */ 80, 82, 79, 84, 95, 69, 88, 69, 67,124, 80, 82, 79, 84, 95, 87, -/* 0x21b0 */ 82, 73, 84, 69, 32,102, 97,105,108,101,100, 46, 10, 0, 0, 0, -/* 0x21c0 */ 30, 0,160, 56,166, 2,136,124, 2, 0, 96, 56, 4, 0, 0, 56, -/* 0x21d0 */ 2, 0, 0, 68,127, 0, 96, 56, 1, 0, 0, 56, 2, 0, 0, 68, -/* 0x21e0 */ 166, 2,200,127, 0, 0, 94,131, 8, 0,126,128, 0, 0, 0, 57, -/* 0x21f0 */ 1, 0,128, 60,255,255,224, 56, 20,242, 99,124, 50, 0,192, 56, -/* 0x2200 */ 15, 0, 99, 56, 7, 0,160, 56, 20, 34, 99,124, 90, 0, 0, 56, -/* 0x2210 */ 36, 4, 99,120, 2, 0, 0, 68, 0, 0,195, 65,166, 3,233,127, -/* 0x2220 */ 4, 0, 30,128, 12, 0,254,136,104, 1,193, 56,104, 1, 1,144, -/* 0x2230 */ 120, 27,101,124,166, 3,104,124, 8, 0,158,128, 16, 0,126, 56, -/* 0x2240 */ 145,255, 33,248, 32, 4,128, 78,145,254, 33,248,120, 0, 65,248, -/* 0x2250 */ 128, 0, 97,248,136, 0,129,248,144, 0,161,248,152, 0,193,248, -/* 0x2260 */ 160, 0,225,248,168, 0, 1,249,176, 0, 33,249,184, 0, 65,249, -/* 0x2270 */ 192, 0, 97,249,200, 0,129,249,208, 0,161,249,216, 0,193,249, -/* 0x2280 */ 224, 0,225,249,232, 0, 1,250,240, 0, 33,250,248, 0, 65,250, -/* 0x2290 */ 0, 1, 97,250, 8, 1,129,250, 16, 1,161,250, 24, 1,193,250, -/* 0x22a0 */ 32, 1,225,250, 40, 1, 1,251, 48, 1, 33,251, 56, 1, 65,251, -/* 0x22b0 */ 64, 1, 97,251, 72, 1,129,251, 80, 1,161,251, 88, 1,193,251, -/* 0x22c0 */ 96, 1,225,251,166, 2,232,127, 25,255,255, 75, 0, 0, 0, 0, -/* 0x22d0 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 54, -/* 0x22e0 */ 52, 45,112,111,119,101,114,112, 99,108,101, 10, 10, 83,101, 99, -/* 0x22f0 */ 116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, -/* 0x2300 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, -/* 0x2310 */ 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2320 */ 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2330 */ 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, -/* 0x2340 */ 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, -/* 0x2350 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, -/* 0x2360 */ 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x2370 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, -/* 0x2380 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, -/* 0x2390 */ 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, -/* 0x23a0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, -/* 0x23b0 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72, -/* 0x23c0 */ 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x23d0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x23e0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x23f0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 52, 32, -/* 0x2400 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, -/* 0x2410 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, -/* 0x2420 */ 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, -/* 0x2430 */ 48, 49, 53, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2440 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2450 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x2460 */ 52, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, -/* 0x2470 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, -/* 0x2480 */ 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, 68, 32, 32, 32, -/* 0x2490 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 52, 52, 32, 32, -/* 0x24a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x24b0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x24c0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 57, 56, 32, 32, 50, 42, -/* 0x24d0 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, -/* 0x24e0 */ 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, -/* 0x24f0 */ 52, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2500 */ 48, 48, 48, 48, 48, 48,102, 56, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x2510 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, -/* 0x2520 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x2530 */ 48, 48, 48, 50,100, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, -/* 0x2540 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, -/* 0x2550 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 76, 90, 77, 65, -/* 0x2560 */ 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x2570 */ 57, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2580 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2590 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51,100, 52, -/* 0x25a0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, -/* 0x25b0 */ 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, -/* 0x25c0 */ 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, -/* 0x25d0 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 56, 32, 32, 48, 48, +/* 0x21a0 */ 109,109, 97,112, 32,102, 97,105,108,101,100, 46, 10, 0, 0, 0, +/* 0x21b0 */ 14, 0,160, 56,166, 2,136,124, 2, 0, 96, 56, 4, 0, 0, 56, +/* 0x21c0 */ 2, 0, 0, 68,127, 0, 96, 56, 1, 0, 0, 56, 2, 0, 0, 68, +/* 0x21d0 */ 166, 2, 8,127,248,255,191, 59, 0, 0, 29,128, 0, 0,120,131, +/* 0x21e0 */ 80,232,160,127, 16, 0, 29,160, 3, 0, 0, 40, 68, 0,130, 65, +/* 0x21f0 */ 104, 0,157,235, 0, 0, 0, 57, 80,224,158,127,255,255,224, 56, +/* 0x2200 */ 255,255,156, 59, 50, 0,192, 56, 56,240,156,127, 3, 0,160, 56, +/* 0x2210 */ 4, 0,152,128, 20,226,125,124, 20, 34,156,127, 90, 0, 0, 56, +/* 0x2220 */ 2, 0, 0, 68, 0, 0,195, 65, 0, 0, 32, 59,184, 0, 0, 72, +/* 0x2230 */ 120,235,185,127,104, 0,221,234, 4, 0, 24,128, 20,178,128,127, +/* 0x2240 */ 120,227,132,127, 80,232,228,126, 56,240,247,126,120,211, 67,127, +/* 0x2250 */ 0, 0,195,232, 8, 0, 3,233, 16, 0, 99, 56, 0, 0,166, 43, +/* 0x2260 */ 44, 0,222, 65,224,255,198, 56, 1, 0,166, 43,228,255,253, 65, +/* 0x2270 */ 80, 64,215,124, 64, 32,166,127,216,255,252, 64, 80, 48,196,124, +/* 0x2280 */ 20, 50,247,126, 56,240,247,126,200,255,255, 75,120,187,227,126, +/* 0x2290 */ 0, 0, 0, 57,255,255,224, 56, 50, 0,192, 56, 3, 0,160, 56, +/* 0x22a0 */ 90, 0, 0, 56, 2, 0, 0, 68, 0, 0,195, 65, 80,184, 29,124, +/* 0x22b0 */ 20, 2,255,127,120,179,198,126, 15, 0,198, 56,248,255,157, 56, +/* 0x22c0 */ 2,225,198,120,248,255, 99, 56,166, 3,201,124, 8, 0,164,232, +/* 0x22d0 */ 17, 0,196,232, 8, 0,163,248, 17, 0,195,248,240,255, 0, 66, +/* 0x22e0 */ 120,187,253,126,120, 27,101,124,120, 27,119,124,166, 3,233,127, +/* 0x22f0 */ 4, 0, 24,128, 12, 0,248,136,104, 1,193, 56,104, 1, 1,144, +/* 0x2300 */ 8, 0,152,128, 16, 0,120, 56, 33, 4,128, 78, 5, 0,160, 56, +/* 0x2310 */ 120,227,132,127,120,235,163,127,125, 0, 0, 56, 2, 0, 0, 68, +/* 0x2320 */ 166, 3,233,126, 32, 4,128, 78, 0, 0, 3,232, 8, 0, 99, 56, +/* 0x2330 */ 0, 0,160, 47,244,255,254, 64, 32, 0,128, 78, 8, 0,128,124, +/* 0x2340 */ 145,254, 33,248,120, 0, 65,248,128, 0, 97,248,136, 0,129,248, +/* 0x2350 */ 144, 0,161,248,152, 0,193,248,160, 0,225,248,168, 0, 1,249, +/* 0x2360 */ 176, 0, 33,249,184, 0, 65,249,192, 0, 97,249,200, 0,129,249, +/* 0x2370 */ 208, 0,161,249,216, 0,193,249,224, 0,225,249,232, 0, 1,250, +/* 0x2380 */ 240, 0, 33,250,248, 0, 65,250, 0, 1, 97,250, 8, 1,129,250, +/* 0x2390 */ 16, 1,161,250, 24, 1,193,250, 32, 1,225,250, 40, 1, 1,251, +/* 0x23a0 */ 48, 1, 33,251, 56, 1, 65,251, 64, 1, 97,251, 72, 1,129,251, +/* 0x23b0 */ 80, 1,161,251, 88, 1,193,251, 96, 1,225,251,166, 2,232,127, +/* 0x23c0 */ 112, 1, 97, 56,101,255,255, 75, 97,255,255, 75,120, 27,122,124, +/* 0x23d0 */ 0, 0, 3,232, 8, 0,131,232, 16, 0, 99, 56, 6, 0,160, 47, +/* 0x23e0 */ 16, 0,222, 65, 0, 0, 32, 44,232,255,226, 64, 1, 0,128, 60, +/* 0x23f0 */ 208, 0,196,127,221,253,255, 75, 0, 0, 0, 0,102,105,108,101, +/* 0x2400 */ 32,102,111,114,109, 97,116, 32,101,108,102, 54, 52, 45,112,111, +/* 0x2410 */ 119,101,114,112, 99,108,101, 10, 10, 83,101, 99,116,105,111,110, +/* 0x2420 */ 115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, +/* 0x2430 */ 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, +/* 0x2440 */ 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2450 */ 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2460 */ 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103, +/* 0x2470 */ 110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70, +/* 0x2480 */ 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, +/* 0x2490 */ 48, 48, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x24a0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x24b0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, +/* 0x24c0 */ 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, +/* 0x24d0 */ 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, +/* 0x24e0 */ 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, +/* 0x24f0 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x2500 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x2510 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2520 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 52, 32, 32, 50, 42, 42, +/* 0x2530 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, +/* 0x2540 */ 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, 86, 50, 69, 32, +/* 0x2550 */ 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 53, 52, +/* 0x2560 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2570 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2580 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 52, 32, 32, +/* 0x2590 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, +/* 0x25a0 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, +/* 0x25b0 */ 32, 32, 51, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, +/* 0x25c0 */ 32, 32, 48, 48, 48, 48, 48, 49, 52, 52, 32, 32, 48, 48, 48, 48, +/* 0x25d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x25e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, -/* 0x25f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2600 */ 32, 32, 48, 48, 48, 48, 48, 52, 54, 56, 32, 32, 50, 42, 42, 48, -/* 0x2610 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, -/* 0x2620 */ 79, 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2630 */ 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, 48, 49, 48, 57, 99, 32, -/* 0x2640 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2650 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2660 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 57, 48, 32, 32, 50, -/* 0x2670 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, -/* 0x2680 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, -/* 0x2690 */ 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 99, -/* 0x26a0 */ 51, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x26b0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x26c0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 53, 50, 99, -/* 0x26d0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, -/* 0x26e0 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78, -/* 0x26f0 */ 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, -/* 0x2700 */ 48, 48, 48, 49, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2710 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x2720 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 50, -/* 0x2730 */ 49, 53, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, -/* 0x2740 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, -/* 0x2750 */ 48, 32, 67, 70, 76, 85, 83, 72, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2760 */ 48, 48, 48, 48, 48, 48, 50, 52, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x2770 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, -/* 0x2780 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x2790 */ 48, 48, 50, 49, 55, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, -/* 0x27a0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, -/* 0x27b0 */ 10, 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, -/* 0x27c0 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 50, 32, 32, 48, 48, 48, -/* 0x27d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, -/* 0x27e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x27f0 */ 32, 48, 48, 48, 48, 50, 49, 57, 99, 32, 32, 50, 42, 42, 48, 32, -/* 0x2800 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, -/* 0x2810 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, 69, -/* 0x2820 */ 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, -/* 0x2830 */ 48, 48, 49, 49, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2840 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x2850 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 50, -/* 0x2860 */ 49, 99, 48, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, -/* 0x2870 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, -/* 0x2880 */ 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, -/* 0x2890 */ 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x28a0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, -/* 0x28b0 */ 95, 68, 69, 67, 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x28c0 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x28d0 */ 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x28e0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, -/* 0x28f0 */ 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2900 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, -/* 0x2910 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x2920 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, -/* 0x2930 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2940 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, -/* 0x2950 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, -/* 0x2960 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, -/* 0x2970 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, -/* 0x2980 */ 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2990 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, -/* 0x29a0 */ 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x29b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, -/* 0x29c0 */ 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x29d0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, -/* 0x29e0 */ 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x29f0 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, +/* 0x25f0 */ 48, 48, 48, 48, 48, 49, 57, 56, 32, 32, 50, 42, 42, 48, 32, 32, +/* 0x2600 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, +/* 0x2610 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 78, 82, +/* 0x2620 */ 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, +/* 0x2630 */ 48, 48,102, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2640 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2650 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, +/* 0x2660 */ 100, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x2670 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, +/* 0x2680 */ 78, 76, 89, 10, 32, 32, 53, 32, 76, 90, 77, 65, 95, 69, 76, 70, +/* 0x2690 */ 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 57, 52, 32, 32, +/* 0x26a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x26b0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x26c0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 51,100, 52, 32, 32, 50, 42, +/* 0x26d0 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, +/* 0x26e0 */ 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, +/* 0x26f0 */ 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, +/* 0x2700 */ 48, 48, 48, 48, 48, 48, 50, 56, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x2710 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, +/* 0x2720 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x2730 */ 48, 48, 48, 52, 54, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, +/* 0x2740 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, +/* 0x2750 */ 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, +/* 0x2760 */ 32, 32, 32, 48, 48, 48, 48, 49, 48, 57, 99, 32, 32, 48, 48, 48, +/* 0x2770 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x2780 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x2790 */ 32, 48, 48, 48, 48, 48, 52, 57, 48, 32, 32, 50, 42, 42, 48, 32, +/* 0x27a0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, +/* 0x27b0 */ 78, 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x27c0 */ 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 99, 51, 48, 32, 32, +/* 0x27d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x27e0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x27f0 */ 48, 48, 32, 32, 48, 48, 48, 48, 49, 53, 50, 99, 32, 32, 50, 42, +/* 0x2800 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, +/* 0x2810 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78, 82, 86, 95, 84, +/* 0x2820 */ 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, +/* 0x2830 */ 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2840 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2850 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 50, 49, 53, 99, 32, +/* 0x2860 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, +/* 0x2870 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 67, 70, +/* 0x2880 */ 76, 85, 83, 72, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, +/* 0x2890 */ 48, 48, 50, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x28a0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x28b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 50, 49, +/* 0x28c0 */ 55, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x28d0 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, +/* 0x28e0 */ 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, +/* 0x28f0 */ 48, 48, 48, 48, 48, 49, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x2900 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x2910 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, +/* 0x2920 */ 48, 50, 49, 57, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, +/* 0x2930 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, +/* 0x2940 */ 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, 69, 76, 70, 77, 65, +/* 0x2950 */ 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 50, 52, +/* 0x2960 */ 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2970 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2980 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 50, 49, 98, 48, 32, +/* 0x2990 */ 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, +/* 0x29a0 */ 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, +/* 0x29b0 */ 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, +/* 0x29c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x29d0 */ 108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x29e0 */ 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x29f0 */ 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, /* 0x2a00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x2a10 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, -/* 0x2a20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, -/* 0x2a30 */ 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2a40 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, -/* 0x2a50 */ 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2a60 */ 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, -/* 0x2a70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, -/* 0x2a80 */ 32,100, 32, 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, -/* 0x2a90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, -/* 0x2aa0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2ab0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, -/* 0x2ac0 */ 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2ad0 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, -/* 0x2ae0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2af0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2b00 */ 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2b10 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x2b20 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2b30 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2b40 */ 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2b50 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, +/* 0x2a10 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, +/* 0x2a20 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2a30 */ 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, +/* 0x2a40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, +/* 0x2a50 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, +/* 0x2a60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, +/* 0x2a70 */ 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2a80 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x2a90 */ 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, +/* 0x2aa0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, +/* 0x2ab0 */ 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2ac0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, +/* 0x2ad0 */ 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2ae0 */ 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, +/* 0x2af0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x2b00 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, +/* 0x2b10 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2b20 */ 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, +/* 0x2b30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, +/* 0x2b40 */ 32,100, 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, +/* 0x2b50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, /* 0x2b60 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2b70 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 70, 76, 85, 83, 72, -/* 0x2b80 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2b90 */ 48, 32, 67, 70, 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x2ba0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, -/* 0x2bb0 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, -/* 0x2bc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97, -/* 0x2bd0 */ 114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2be0 */ 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, -/* 0x2bf0 */ 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2c00 */ 48, 48, 32, 79, 95, 66, 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, -/* 0x2c10 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, -/* 0x2c20 */ 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, -/* 0x2c30 */ 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2c40 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2c50 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2c60 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 54, 52, -/* 0x2c70 */ 95, 82, 69, 76, 50, 52, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, -/* 0x2c80 */ 73, 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2c90 */ 48, 48, 48, 48, 56, 56, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, -/* 0x2ca0 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, -/* 0x2cb0 */ 78, 82, 86, 50, 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, -/* 0x2cc0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, -/* 0x2cd0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, -/* 0x2ce0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 99, -/* 0x2cf0 */ 48, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, -/* 0x2d00 */ 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, -/* 0x2d10 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, -/* 0x2d20 */ 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, -/* 0x2d30 */ 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, -/* 0x2d40 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2d50 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2d60 */ 48, 48, 48, 48, 48, 99, 99, 32, 82, 95, 80, 80, 67, 54, 52, 95, -/* 0x2d70 */ 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, -/* 0x2d80 */ 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, -/* 0x2d90 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, -/* 0x2da0 */ 66, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, -/* 0x2db0 */ 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, -/* 0x2dc0 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, -/* 0x2dd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 57, 56, 32, 82, 95, -/* 0x2de0 */ 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, -/* 0x2df0 */ 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, -/* 0x2e00 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, -/* 0x2e10 */ 32, 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, -/* 0x2e20 */ 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2e30 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2e40 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2e50 */ 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 80, 80, 67, 54, 52, -/* 0x2e60 */ 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2e70 */ 68, 69, 67, 51, 48, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2e80 */ 48, 48, 48, 48, 48, 48, 50, 56, 10, 10, 82, 69, 76, 79, 67, 65, -/* 0x2e90 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, -/* 0x2ea0 */ 32, 91, 69, 76, 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, -/* 0x2eb0 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, -/* 0x2ec0 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2ed0 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2ee0 */ 48, 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, -/* 0x2ef0 */ 69, 76, 50, 52, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, -/* 0x2f00 */ 90, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, -/* 0x2f10 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, -/* 0x2f20 */ 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, -/* 0x2f30 */ 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, -/* 0x2f40 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, -/* 0x2f50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 56, 32, -/* 0x2f60 */ 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32, 32, -/* 0x2f70 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, -/* 0x2f80 */ 48, 48, 48, 48, 48, 48, 48, 48, 49, 48, 99, 32, 82, 95, 80, 80, -/* 0x2f90 */ 67, 54, 52, 95, 65, 68, 68, 82, 51, 50, 32, 32, 32, 32, 79, 95, -/* 0x2fa0 */ 66, 73, 78, 70, 79, 10 +/* 0x2b70 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, +/* 0x2b80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2b90 */ 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2ba0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x2bb0 */ 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2bc0 */ 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, +/* 0x2bd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x2be0 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, +/* 0x2bf0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2c00 */ 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, +/* 0x2c10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x2c20 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x2c30 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2c40 */ 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, +/* 0x2c50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x2c60 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, +/* 0x2c70 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2c80 */ 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, +/* 0x2c90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x2ca0 */ 32, 32, 32,100, 32, 32, 67, 70, 76, 85, 83, 72, 9, 48, 48, 48, +/* 0x2cb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 70, +/* 0x2cc0 */ 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2cd0 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, +/* 0x2ce0 */ 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2cf0 */ 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 48, +/* 0x2d00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x2d10 */ 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, +/* 0x2d20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 79, +/* 0x2d30 */ 95, 66, 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, +/* 0x2d40 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, +/* 0x2d50 */ 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, +/* 0x2d60 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, +/* 0x2d70 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, +/* 0x2d80 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2d90 */ 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, +/* 0x2da0 */ 50, 52, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 43, +/* 0x2db0 */ 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, +/* 0x2dc0 */ 56, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, +/* 0x2dd0 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, +/* 0x2de0 */ 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, +/* 0x2df0 */ 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, +/* 0x2e00 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, +/* 0x2e10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 99, 48, 32, 82, 95, +/* 0x2e20 */ 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, +/* 0x2e30 */ 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, +/* 0x2e40 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, +/* 0x2e50 */ 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, +/* 0x2e60 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, +/* 0x2e70 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, +/* 0x2e80 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2e90 */ 48, 99, 99, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, +/* 0x2ea0 */ 52, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, +/* 0x2eb0 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, +/* 0x2ec0 */ 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, +/* 0x2ed0 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2ee0 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2ef0 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x2f00 */ 48, 48, 48, 48, 48, 48, 48, 57, 56, 32, 82, 95, 80, 80, 67, 54, +/* 0x2f10 */ 52, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 78, 82, 86, 95, +/* 0x2f20 */ 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, +/* 0x2f30 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, +/* 0x2f40 */ 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, +/* 0x2f50 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, +/* 0x2f60 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, +/* 0x2f70 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2f80 */ 48, 48, 48, 52, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, +/* 0x2f90 */ 49, 52, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, +/* 0x2fa0 */ 48, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2fb0 */ 48, 48, 50, 56, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, +/* 0x2fc0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, +/* 0x2fd0 */ 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, +/* 0x2fe0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, +/* 0x2ff0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, +/* 0x3000 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3010 */ 48, 48, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 50, 52, +/* 0x3020 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 82, +/* 0x3030 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, +/* 0x3040 */ 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, +/* 0x3050 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3060 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3070 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, +/* 0x3080 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 55, 52, 32, 82, 95, 80, 80, +/* 0x3090 */ 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 69, 76, +/* 0x30a0 */ 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x30b0 */ 48, 48, 48, 48, 48,102, 56, 32, 82, 95, 80, 80, 67, 54, 52, 95, +/* 0x30c0 */ 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, +/* 0x30d0 */ 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x30e0 */ 50, 52, 56, 32, 82, 95, 80, 80, 67, 54, 52, 95, 65, 68, 68, 82, +/* 0x30f0 */ 51, 50, 32, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10 }; diff --git a/src/stub/powerpc64le-linux.elf-fold.h b/src/stub/powerpc64le-linux.elf-fold.h index a8a28946..2f7e2dd2 100644 --- a/src/stub/powerpc64le-linux.elf-fold.h +++ b/src/stub/powerpc64le-linux.elf-fold.h @@ -1,5 +1,5 @@ /* powerpc64le-linux.elf-fold.h - created from powerpc64le-linux.elf-fold.bin, 2507 (0x9cb) bytes + created from powerpc64le-linux.elf-fold.bin, 2795 (0xaeb) bytes This file is part of the UPX executable compressor. @@ -31,166 +31,184 @@ */ -#define STUB_POWERPC64LE_LINUX_ELF_FOLD_SIZE 2507 -#define STUB_POWERPC64LE_LINUX_ELF_FOLD_ADLER32 0xd4d27643 -#define STUB_POWERPC64LE_LINUX_ELF_FOLD_CRC32 0x23402ac4 +#define STUB_POWERPC64LE_LINUX_ELF_FOLD_SIZE 2795 +#define STUB_POWERPC64LE_LINUX_ELF_FOLD_ADLER32 0xc168da42 +#define STUB_POWERPC64LE_LINUX_ELF_FOLD_CRC32 0xebae1d09 -unsigned char stub_powerpc64le_linux_elf_fold[2507] = { +unsigned char stub_powerpc64le_linux_elf_fold[2795] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0010 */ 2, 0, 21, 0, 1, 0, 0, 0,128, 9, 16, 0, 0, 0, 0, 0, +/* 0x0010 */ 2, 0, 21, 0, 1, 0, 0, 0,160, 10, 16, 0, 0, 0, 0, 0, /* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 1, 0, 0, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, 0, /* 0x0040 */ 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, -/* 0x0060 */ 128, 9, 0, 0, 0, 0, 0, 0,128, 9, 0, 0, 0, 0, 0, 0, +/* 0x0060 */ 156, 10, 0, 0, 0, 0, 0, 0,156, 10, 0, 0, 0, 0, 0, 0, /* 0x0070 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, -/* 0x0080 */ 128, 9, 0, 0, 0, 0, 0, 0,128, 9, 16, 0, 0, 0, 0, 0, -/* 0x0090 */ 128, 9, 16, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, +/* 0x0080 */ 160, 10, 0, 0, 0, 0, 0, 0,160, 10, 16, 0, 0, 0, 0, 0, +/* 0x0090 */ 160, 10, 16, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, /* 0x00a0 */ 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -/* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,125, 0, 0, 72, -/* 0x00c0 */ 208, 0, 6, 40, 32, 0,194, 76,191,240,132, 84, 32, 0,194, 77, -/* 0x00d0 */ 16, 0, 0, 60, 64, 0, 4,124, 8, 0,128, 65,120, 3, 4,124, -/* 0x00e0 */ 32, 1,165, 56,120, 27,103,124,252,255, 99, 56,166, 3,137,124, -/* 0x00f0 */ 28, 0, 0, 72,186, 2, 11, 84, 80, 88, 99,125, 20, 58,107,125, -/* 0x0100 */ 186, 1, 96, 81, 0, 0, 3,144, 32, 0, 64, 79, 4, 0, 3,132, -/* 0x0110 */ 190, 85, 11, 84, 64, 40, 11,124,220,255,194, 65,240,255, 32, 67, -/* 0x0120 */ 32, 0,128, 78, 0, 0, 9,232, 8, 0, 41, 57, 0, 0,160, 43, -/* 0x0130 */ 244,255,254, 64, 32, 0,128, 78,112, 0, 33, 56,166, 2, 8,125, -/* 0x0140 */ 0, 0, 33,233,225,255,255, 75,221,255,255, 75,248, 0, 65, 57, -/* 0x0150 */ 0, 0, 10,248,144,247, 33, 56,248,255,159,128,228, 3, 30,121, -/* 0x0160 */ 80,248,164,127,248,255,189, 59,120,251,231,127, 20,210,125,124, -/* 0x0170 */ 80, 32,154,124,112, 0,161, 56, 0, 0,195,128,213, 5, 0, 72, -/* 0x0180 */ 120, 27,127,124,120,235,163,127, 80,240,157,124,181, 0, 0, 72, -/* 0x0190 */ 166, 3,232,127,120, 8, 65,232,128, 8, 97,232,136, 8,129,232, -/* 0x01a0 */ 144, 8,161,232,152, 8,193,232,160, 8,225,232,168, 8, 1,233, -/* 0x01b0 */ 176, 8, 33,233,184, 8, 65,233,192, 8, 97,233,200, 8,129,233, -/* 0x01c0 */ 208, 8,161,233,216, 8,193,233,224, 8,225,233,232, 8, 1,234, -/* 0x01d0 */ 240, 8, 33,234,248, 8, 65,234, 0, 9, 97,234, 8, 9,129,234, -/* 0x01e0 */ 16, 9,161,234, 24, 9,193,234, 32, 9,225,234, 40, 9, 1,235, -/* 0x01f0 */ 48, 9, 33,235, 56, 9, 65,235, 64, 9, 97,235, 72, 9,129,235, -/* 0x0200 */ 80, 9,161,235, 88, 9,193,235, 96, 9,225,235,112, 8, 33,232, -/* 0x0210 */ 0, 0, 0, 56, 32,241, 15,124,166, 3, 9,124, 32, 0,128, 78, -/* 0x0220 */ 1, 0, 0, 56, 8, 0, 0, 72, 45, 0, 0, 56, 8, 0, 0, 72, -/* 0x0230 */ 6, 0, 0, 56, 8, 0, 0, 72, 5, 0, 0, 56, 8, 0, 0, 72, -/* 0x0240 */ 91, 0, 0, 56, 8, 0, 0, 72,125, 0, 0, 56, 8, 0, 0, 72, -/* 0x0250 */ 3, 0, 0, 56, 8, 0, 0, 72, 90, 0, 0, 56, 2, 0, 0, 68, -/* 0x0260 */ 8, 0,227, 64,255,255, 96, 56, 32, 0,128, 78, 0, 0, 35, 44, -/* 0x0270 */ 32, 0,130, 77, 0, 0, 36, 47, 0, 0, 67,233, 64, 32,170,127, -/* 0x0280 */ 16, 0,158, 64, 0, 0,131,248, 8, 0,163,248, 32, 0,128, 78, -/* 0x0290 */ 1, 0,170, 43, 8, 0,158, 64,236,255,154, 64, 16, 0, 99, 56, -/* 0x02a0 */ 216,255,255, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x02b0 */ 0, 0, 67,233, 8, 0, 3,233, 1, 0,229, 56, 0, 0, 32, 57, -/* 0x02c0 */ 166, 3,233,124, 64, 40,170,127, 28, 0,252, 64,166, 2, 8,124, -/* 0x02d0 */ 127, 0, 96, 56, 16, 0, 1,248,145,255, 33,248, 69,255,255, 75, -/* 0x02e0 */ 0, 0, 0, 96, 20, 0, 64, 66,174, 72, 72,125,174, 73, 68,125, -/* 0x02f0 */ 1, 0, 41, 57,240,255,255, 75, 8, 0, 67,233, 20, 74, 74,125, -/* 0x0300 */ 8, 0, 67,249, 0, 0, 67,233, 80, 80, 41,125, 0, 0, 35,249, -/* 0x0310 */ 32, 0,128, 78, 0, 0, 0, 0, 0, 0, 0, 1,128, 0, 0, 0, -/* 0x0320 */ 38, 0,128,125,166, 2, 8,124, 8, 0,129,145,233, 5, 0, 72, -/* 0x0330 */ 81,255, 33,248,120, 27,126,124,120, 35,159,124,120, 43,189,124, -/* 0x0340 */ 120, 51,220,124, 0, 0, 38, 46, 0, 0, 63,233, 0, 0,169, 47, -/* 0x0350 */ 64, 1,158, 65,120,243,195,127,112, 0,129, 56, 12, 0,160, 56, -/* 0x0360 */ 81,255,255, 75,112, 0, 65,129,116, 0, 33,129, 0, 0,170, 47, -/* 0x0370 */ 32, 0,158, 64, 88, 33, 37,109, 85, 80,133, 47, 28, 0,158, 64, -/* 0x0380 */ 0, 0, 62,233, 0, 0,169, 47, 8, 1,254, 65, 12, 0, 0, 72, -/* 0x0390 */ 33, 0, 41,121, 16, 0,226, 64,127, 0, 96, 56,133,254,255, 75, -/* 0x03a0 */ 0, 0, 0, 96, 64, 80, 9,127,240,255,217, 65, 0, 0, 31,233, -/* 0x03b0 */ 64, 64,170,127,228,255,221, 65, 8, 0,191,232,164, 0,152, 64, -/* 0x03c0 */ 120, 75, 36,125, 0, 0, 61,233, 8, 0,126,232,128, 0,193, 56, -/* 0x03d0 */ 128, 0, 65,249, 40, 0, 65,248,120, 0,225,136, 16, 0,125,233, -/* 0x03e0 */ 166, 3, 41,125, 8, 0, 93,232, 33, 4,128, 78, 40, 0, 65,232, -/* 0x03f0 */ 0, 0,163, 47,164,255,222, 64,128, 0,129,232,112, 0, 33,129, -/* 0x0400 */ 0, 72,164,127,148,255,222, 64,121, 0,193,136, 0, 0,166, 47, -/* 0x0410 */ 48, 0,158, 65, 44, 0,146, 65, 8, 0,127,232,122, 0,161,136, -/* 0x0420 */ 32, 0,132,120, 40, 0, 65,248, 0, 0, 60,233, 16, 0,124,233, -/* 0x0430 */ 166, 3, 41,125, 8, 0, 92,232, 33, 4,128, 78, 40, 0, 65,232, -/* 0x0440 */ 116, 0, 1,129, 8, 0, 94,233, 0, 0, 62,233, 20, 66, 74,125, -/* 0x0450 */ 80, 72, 40,125, 8, 0, 94,249, 0, 0, 62,249, 20, 0, 0, 72, -/* 0x0460 */ 120, 43,164,124,120,243,195,127,120, 75, 37,125, 69,254,255, 75, -/* 0x0470 */ 112, 0, 1,129, 8, 0, 95,233, 0, 0, 63,233, 20, 66, 74,125, -/* 0x0480 */ 80, 72, 40,125, 8, 0, 95,249, 0, 0, 63,249,188,254,255, 75, -/* 0x0490 */ 176, 0, 33, 56, 8, 0,129,129, 32,129,144,125,200, 4, 0, 72, -/* 0x04a0 */ 0, 0, 0, 0, 0, 0, 0, 3,128, 4, 0, 0,166, 2, 8,124, -/* 0x04b0 */ 38, 0,128,125, 41, 4, 0, 72,120, 75, 58,125, 16, 0, 35,161, -/* 0x04c0 */ 32, 0,163,235,120, 51,215,124,120, 27,123,124,120, 35,153,124, -/* 0x04d0 */ 3, 0,137, 47, 8, 0,129,145,241,254, 33,248,120, 43,184,124, -/* 0x04e0 */ 120, 59,246,124,120, 67, 21,125, 20,234,163,127, 16, 0,192, 56, -/* 0x04f0 */ 8, 0,158, 64, 0, 0,192, 56, 56, 0, 59,161, 34, 8,198, 56, -/* 0x0500 */ 120,235,168,127, 0, 0, 64, 57,255,255,192, 59, 1, 0, 41, 57, -/* 0x0510 */ 166, 3, 41,125, 60, 0, 64, 66, 0, 0, 40,129, 1, 0,137, 47, -/* 0x0520 */ 40, 0,158, 64, 16, 0,232,232, 64, 56,190,127, 8, 0,157, 64, -/* 0x0530 */ 120, 59,254,124, 40, 0, 40,233, 20, 74, 39,125, 64, 72,170,127, -/* 0x0540 */ 8, 0,156, 64,120, 75, 42,125, 56, 0, 8, 57,200,255,255, 75, -/* 0x0550 */ 1, 0, 74, 61,228, 3,222,123,255,255, 74, 57,120,243,195,127, -/* 0x0560 */ 80, 80,158,124, 0, 0,160, 56,228, 3,132,120,180, 7,198,124, -/* 0x0570 */ 255,255,224, 56, 0, 0, 0, 57,225,252,255, 75, 0, 0, 0, 96, -/* 0x0580 */ 81,115, 64, 62, 0, 0,128, 58, 0, 0, 57, 46, 64, 98, 82, 98, -/* 0x0590 */ 80, 24,222,127, 0, 0, 32, 58, 56, 0, 59,161, 0,160,137,127, -/* 0x05a0 */ 128, 1,157, 64, 0, 0, 61,129, 36, 0,146, 65, 6, 0,137, 47, -/* 0x05b0 */ 28, 0,158, 64, 16, 0,189,232,120,187,227,126, 3, 0,128, 56, -/* 0x05c0 */ 20, 42,190,124,169,252,255, 75, 72, 1, 0, 72, 1, 0,137, 47, -/* 0x05d0 */ 64, 1,158, 64, 4, 0,253,129, 16, 0,157,235, 32, 0,253,235, -/* 0x05e0 */ 40, 0,125,234,250, 22,239, 85, 20,226,158,127,112, 0,225,251, -/* 0x05f0 */ 48,124, 79,126, 32, 4,137,123,120, 0,129,251, 20,154,124,126, -/* 0x0600 */ 20,250,233,127,228, 3,156,123,126, 7,240, 85, 12, 0,146, 64, -/* 0x0610 */ 0, 0,160, 56, 8, 0, 0, 72, 2, 0,160, 56,120,131,165,124, -/* 0x0620 */ 180, 7,165,124, 16, 0,146, 64,120,195, 7,127, 18, 0,192, 56, -/* 0x0630 */ 12, 0, 0, 72, 50, 0,192, 56,255,255,224, 56, 8, 0, 29,233, -/* 0x0640 */ 120,227,131,127,120,251,228,127, 80, 64, 9,125, 13,252,255, 75, -/* 0x0650 */ 0, 0, 0, 96, 0, 24,188,127, 16, 0,254, 65,127, 0, 96, 56, -/* 0x0660 */ 193,251,255, 75, 0, 0, 0, 96, 24, 0,146, 65,120,203, 35,127, -/* 0x0670 */ 112, 0,129, 56,120,179,197,126,120,171,166,126,165,252,255, 75, -/* 0x0680 */ 208, 0,223,125,227,255,233,121, 32, 4,206,121, 12, 0,130, 64, -/* 0x0690 */ 44, 0,146, 64, 68, 0, 0, 72, 0, 0,174, 47,244,255,158, 65, -/* 0x06a0 */ 166, 3,201,125, 20,250, 92,125, 0, 0, 32, 57,174, 73, 42,126, -/* 0x06b0 */ 1, 0, 41, 57,248,255, 0, 66,216,255,255, 75,120,227,131,127, -/* 0x06c0 */ 120,251,228,127,180, 7, 5,126,129,251,255, 75, 0, 0, 0, 96, -/* 0x06d0 */ 0, 0,163, 47,136,255,222, 64, 20,250,238,127, 20,250,252,127, -/* 0x06e0 */ 64,152,191,127, 44, 0,156, 64,120,251,227,127, 80,152,159,124, -/* 0x06f0 */ 180, 7, 5,126, 50, 0,192, 56,255,255,224, 56, 0, 0, 0, 57, -/* 0x0700 */ 89,251,255, 75, 0, 0, 0, 96, 0, 24,191,127, 80,255,222, 64, -/* 0x0710 */ 1, 0,148, 58, 56, 0,189, 59,180, 7,148,126,124,254,255, 75, -/* 0x0720 */ 0, 0,186, 47, 8, 0,158, 65, 0, 0,218,251, 16, 1, 33, 56, -/* 0x0730 */ 24, 0,123,232, 20, 26,126,124, 8, 0,129,129, 32,129,144,125, -/* 0x0740 */ 236, 1, 0, 72, 0, 0, 0, 0, 0, 0, 0, 3,128, 18, 0, 0, -/* 0x0750 */ 166, 2, 8,124, 0, 0,192, 56,177, 1, 0, 72, 17,255, 33,248, -/* 0x0760 */ 120, 43,191,124,120, 75, 62,125, 64, 0,133, 59, 0, 0, 35,129, -/* 0x0770 */ 120, 83, 91,125, 0, 0,160, 59,152, 0, 97,248,144, 0,129,248, -/* 0x0780 */ 136, 0,161,248,128, 0, 33,249,120, 59,229,124,112, 0,129,248, -/* 0x0790 */ 120, 0, 97,248,160, 0,225,248,168, 0, 1,249,144, 0, 97, 56, -/* 0x07a0 */ 128, 0,129, 56,125,251,255, 75, 80, 0,191,232,120,243,195,127, -/* 0x07b0 */ 3, 0,128, 56, 64, 0,165, 56,181,250,255, 75, 56, 0,191,160, -/* 0x07c0 */ 120,243,195,127, 5, 0,128, 56,165,250,255, 75, 24, 0,191,128, -/* 0x07d0 */ 120,243,195,127, 9, 0,128, 56,149,250,255, 75,160, 0,225,232, -/* 0x07e0 */ 168, 0, 1,233,112, 0,129, 56, 0, 0,160, 56,120,243,198,127, -/* 0x07f0 */ 120,219,105,127,120,251,227,127,181,252,255, 75, 9, 0,128, 56, -/* 0x0800 */ 120, 27,122,124,120,243,195,127,120,211, 69,127, 97,250,255, 75, -/* 0x0810 */ 56, 0, 63,161, 0,232,137,127,172, 0,157, 64, 0, 0, 60,129, -/* 0x0820 */ 3, 0,137, 47,144, 0,158, 64, 16, 0,124,232, 0, 0, 59,233, -/* 0x0830 */ 0, 0,128, 56, 0, 0,160, 56, 20, 74, 99,124,253,249,255, 75, -/* 0x0840 */ 0, 0, 0, 96, 0, 0,131, 47,120, 27,121,124, 16, 0,252, 64, -/* 0x0850 */ 127, 0, 96, 56,205,249,255, 75, 0, 0, 0, 96,120,251,228,127, -/* 0x0860 */ 0, 4,160, 56,237,249,255, 75, 0, 0, 0, 96, 0, 4,163, 47, -/* 0x0870 */ 224,255,222, 64, 0, 0,128, 56,120,203, 37,127, 0, 0,192, 56, -/* 0x0880 */ 0, 0,224, 56, 0, 0, 0, 57,120,219,105,127,120,251,227,127, -/* 0x0890 */ 29,252,255, 75, 0, 0,187,232, 7, 0,128, 56,120, 27,122,124, -/* 0x08a0 */ 120,243,195,127,201,249,255, 75,120,203, 35,127,133,249,255, 75, -/* 0x08b0 */ 0, 0, 0, 96, 1, 0,189, 59, 56, 0,156, 59,180, 7,189,127, -/* 0x08c0 */ 80,255,255, 75,240, 0, 33, 56,120,211, 67,127,140, 0, 0, 72, -/* 0x08d0 */ 0, 0, 0, 0, 0, 0, 0, 1,128, 7, 0, 0,112,255,193,249, -/* 0x08e0 */ 120,255,225,249,128,255, 1,250,136,255, 33,250,144,255, 65,250, -/* 0x08f0 */ 152,255, 97,250,160,255,129,250,168,255,161,250,176,255,193,250, -/* 0x0900 */ 184,255,225,250,192,255, 1,251,200,255, 33,251,208,255, 65,251, -/* 0x0910 */ 216,255, 97,251,224,255,129,251,232,255,161,251,240,255,193,251, -/* 0x0920 */ 248,255,225,251, 16, 0, 1,248, 32, 0,128, 78,112,255,193,233, -/* 0x0930 */ 120,255,225,233,128,255, 1,234,136,255, 33,234,144,255, 65,234, -/* 0x0940 */ 152,255, 97,234,160,255,129,234,168,255,161,234,176,255,193,234, -/* 0x0950 */ 184,255,225,234,192,255, 1,235,200,255, 33,235,208,255, 65,235, -/* 0x0960 */ 216,255, 97,235,224,255,129,235, 16, 0, 1,232,232,255,161,235, -/* 0x0970 */ 166, 3, 8,124,240,255,193,235,248,255,225,235, 32, 0,128, 78, -/* 0x0980 */ 108, 2, 16, 0, 0, 0, 0, 0,128,137, 16, 0, 0, 0, 0, 0, -/* 0x0990 */ 176, 2, 16, 0, 0, 0, 0, 0,128,137, 16, 0, 0, 0, 0, 0, -/* 0x09a0 */ 32, 3, 16, 0, 0, 0, 0, 0,128,137, 16, 0, 0, 0, 0, 0, -/* 0x09b0 */ 172, 4, 16, 0, 0, 0, 0, 0,128,137, 16, 0, 0, 0, 0, 0, -/* 0x09c0 */ 80, 7, 16, 0, 0, 0, 0, 0,128,137, 16 +/* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0,128,124, +/* 0x00c0 */ 125, 0, 0, 72,208, 0, 6, 40, 32, 0,194, 76,191,240,132, 84, +/* 0x00d0 */ 32, 0,194, 77, 16, 0, 0, 60, 64, 0, 4,124, 8, 0,128, 65, +/* 0x00e0 */ 120, 3, 4,124, 32, 1,165, 56,120, 27,103,124,252,255, 99, 56, +/* 0x00f0 */ 166, 3,137,124, 28, 0, 0, 72,186, 2, 11, 84, 80, 88, 99,125, +/* 0x0100 */ 20, 58,107,125,186, 1, 96, 81, 0, 0, 3,144, 32, 0, 64, 79, +/* 0x0110 */ 4, 0, 3,132,190, 85, 11, 84, 64, 40, 11,124,220,255,194, 65, +/* 0x0120 */ 240,255, 32, 67, 32, 0,128, 78, 32, 32, 32, 61, 47,112,114,111, +/* 0x0130 */ 99, 47,115,101,108,102, 47,101,120,101, 0, 0,166, 2,168,126, +/* 0x0140 */ 0, 0,128, 56,104, 0,117, 56, 13, 2, 0, 72,120, 27,116,124, +/* 0x0150 */ 248,255,129, 56,248,239, 33, 56,248,255, 97, 56,248,255, 90, 59, +/* 0x0160 */ 9, 0, 4,232, 64,208,164,127, 9, 0, 3,248,244,255,156, 65, +/* 0x0170 */ 16, 0, 67, 59, 9, 0, 3,248, 8, 0, 4,232, 0, 0,160, 43, +/* 0x0180 */ 8, 0, 3,248, 17, 0, 4,232, 17, 0, 3,248,236,255,158, 64, +/* 0x0190 */ 8, 0, 99, 58, 80,152, 90,126, 8, 0,128,124,100, 0, 21,128, +/* 0x01a0 */ 8, 0, 36, 58, 8, 0, 3,148, 4, 0,195, 57,255, 15,160, 56, +/* 0x01b0 */ 120,115,196,125,104, 0,117, 56,133, 1, 0, 72,252,255,174, 56, +/* 0x01c0 */ 0, 0, 35, 44, 12, 0,129, 65,100, 0,181, 56, 12, 0, 96, 56, +/* 0x01d0 */ 4, 0, 99, 56, 20, 26,133,124,166, 3,105,124,120,139, 35,126, +/* 0x01e0 */ 0, 0,160, 56,255,255,163,156,255,255, 4,140,255,255, 3,156, +/* 0x01f0 */ 248,255, 0, 66,240,255,122,248, 36, 7, 99,120,120, 34, 32,124, +/* 0x0200 */ 120, 26, 0,124, 32, 7, 0,120, 80, 24, 96,124,120,155,100,126, +/* 0x0210 */ 80, 24, 82,127,249,255, 4,232, 64, 8,164,127,249,255, 3,248, +/* 0x0220 */ 244,255,253, 65,120, 27, 97,124,248, 0, 65, 57, 0, 0, 0, 56, +/* 0x0230 */ 0, 0, 10,248,145,247, 33,248,248,255,159,128, 20,218,125,124, +/* 0x0240 */ 80, 32,155,124,112, 0,161, 56,120,211, 70,127,120,251,231,127, +/* 0x0250 */ 120,171,168,126,120,203, 41,127, 21, 6, 0, 72,112, 8, 33, 56, +/* 0x0260 */ 120, 27,127,124, 0, 0, 0, 57,120,163,135,126, 2, 0,192, 56, +/* 0x0270 */ 1, 0,160, 56,208, 0,158,124, 0, 0, 96, 56,249, 0, 0, 72, +/* 0x0280 */ 120,163,131,126,201, 0, 0, 72,120,211, 67,127, 0, 0, 3,232, +/* 0x0290 */ 8, 0,131,232, 16, 0, 99, 56, 0, 0,160, 43,240,255,254, 64, +/* 0x02a0 */ 166, 3,137,124,120,235,163,127,120,227,132,127, 91, 0, 0, 56, +/* 0x02b0 */ 166, 3,232,127,120, 0, 65,232,128, 0, 97,232,136, 0,129,232, +/* 0x02c0 */ 144, 0,161,232,152, 0,193,232,160, 0,225,232,168, 0, 1,233, +/* 0x02d0 */ 176, 0, 33,233,184, 0, 65,233,192, 0, 97,233,200, 0,129,233, +/* 0x02e0 */ 208, 0,161,233,216, 0,193,233,224, 0,225,233,232, 0, 1,234, +/* 0x02f0 */ 240, 0, 33,234,248, 0, 65,234, 0, 1, 97,234, 8, 1,129,234, +/* 0x0300 */ 16, 1,161,234, 24, 1,193,234, 32, 1,225,234, 40, 1, 1,235, +/* 0x0310 */ 48, 1, 33,235, 56, 1, 65,235, 64, 1, 97,235, 72, 1,129,235, +/* 0x0320 */ 80, 1,161,235, 88, 1,193,235, 96, 1,225,235,112, 1, 33, 56, +/* 0x0330 */ 32, 4,128, 78, 1, 0, 0, 56, 8, 0, 0, 72, 85, 0, 0, 56, +/* 0x0340 */ 8, 0, 0, 72, 45, 0, 0, 56, 8, 0, 0, 72, 6, 0, 0, 56, +/* 0x0350 */ 8, 0, 0, 72, 5, 0, 0, 56, 8, 0, 0, 72, 91, 0, 0, 56, +/* 0x0360 */ 8, 0, 0, 72,125, 0, 0, 56, 8, 0, 0, 72, 3, 0, 0, 56, +/* 0x0370 */ 8, 0, 0, 72, 90, 0, 0, 56, 2, 0, 0, 68, 8, 0,227, 64, +/* 0x0380 */ 255,255, 96, 56, 32, 0,128, 78, 0, 0, 35, 44, 32, 0,130, 77, +/* 0x0390 */ 0, 0, 36, 47, 0, 0, 67,233, 64, 32,170,127, 16, 0,158, 64, +/* 0x03a0 */ 0, 0,131,248, 8, 0,163,248, 32, 0,128, 78, 1, 0,170, 43, +/* 0x03b0 */ 8, 0,158, 64,236,255,154, 64, 16, 0, 99, 56,216,255,255, 75, +/* 0x03c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,233, +/* 0x03d0 */ 8, 0, 3,233, 1, 0,229, 56, 0, 0, 32, 57,166, 3,233,124, +/* 0x03e0 */ 64, 40,170,127, 28, 0,252, 64,166, 2, 8,124,127, 0, 96, 56, +/* 0x03f0 */ 16, 0, 1,248,145,255, 33,248, 61,255,255, 75, 0, 0, 0, 96, +/* 0x0400 */ 20, 0, 64, 66,174, 72, 72,125,174, 73, 68,125, 1, 0, 41, 57, +/* 0x0410 */ 240,255,255, 75, 8, 0, 67,233, 20, 74, 74,125, 8, 0, 67,249, +/* 0x0420 */ 0, 0, 67,233, 80, 80, 41,125, 0, 0, 35,249, 32, 0,128, 78, +/* 0x0430 */ 0, 0, 0, 0, 0, 0, 0, 1,128, 0, 0, 0, 38, 0,128,125, +/* 0x0440 */ 166, 2, 8,124, 8, 0,129,145,233, 5, 0, 72, 81,255, 33,248, +/* 0x0450 */ 120, 27,126,124,120, 35,159,124,120, 43,189,124,120, 51,220,124, +/* 0x0460 */ 0, 0, 38, 46, 0, 0, 63,233, 0, 0,169, 47, 64, 1,158, 65, +/* 0x0470 */ 120,243,195,127,112, 0,129, 56, 12, 0,160, 56, 81,255,255, 75, +/* 0x0480 */ 112, 0, 65,129,116, 0, 33,129, 0, 0,170, 47, 32, 0,158, 64, +/* 0x0490 */ 88, 33, 37,109, 85, 80,133, 47, 28, 0,158, 64, 0, 0, 62,233, +/* 0x04a0 */ 0, 0,169, 47, 8, 1,254, 65, 12, 0, 0, 72, 33, 0, 41,121, +/* 0x04b0 */ 16, 0,226, 64,127, 0, 96, 56,125,254,255, 75, 0, 0, 0, 96, +/* 0x04c0 */ 64, 80, 9,127,240,255,217, 65, 0, 0, 31,233, 64, 64,170,127, +/* 0x04d0 */ 228,255,221, 65, 8, 0,191,232,164, 0,152, 64,120, 75, 36,125, +/* 0x04e0 */ 0, 0, 61,233, 8, 0,126,232,128, 0,193, 56,128, 0, 65,249, +/* 0x04f0 */ 40, 0, 65,248,120, 0,225,136, 16, 0,125,233,166, 3, 41,125, +/* 0x0500 */ 8, 0, 93,232, 33, 4,128, 78, 40, 0, 65,232, 0, 0,163, 47, +/* 0x0510 */ 164,255,222, 64,128, 0,129,232,112, 0, 33,129, 0, 72,164,127, +/* 0x0520 */ 148,255,222, 64,121, 0,193,136, 0, 0,166, 47, 48, 0,158, 65, +/* 0x0530 */ 44, 0,146, 65, 8, 0,127,232,122, 0,161,136, 32, 0,132,120, +/* 0x0540 */ 40, 0, 65,248, 0, 0, 60,233, 16, 0,124,233,166, 3, 41,125, +/* 0x0550 */ 8, 0, 92,232, 33, 4,128, 78, 40, 0, 65,232,116, 0, 1,129, +/* 0x0560 */ 8, 0, 94,233, 0, 0, 62,233, 20, 66, 74,125, 80, 72, 40,125, +/* 0x0570 */ 8, 0, 94,249, 0, 0, 62,249, 20, 0, 0, 72,120, 43,164,124, +/* 0x0580 */ 120,243,195,127,120, 75, 37,125, 69,254,255, 75,112, 0, 1,129, +/* 0x0590 */ 8, 0, 95,233, 0, 0, 63,233, 20, 66, 74,125, 80, 72, 40,125, +/* 0x05a0 */ 8, 0, 95,249, 0, 0, 63,249,188,254,255, 75,176, 0, 33, 56, +/* 0x05b0 */ 8, 0,129,129, 32,129,144,125,200, 4, 0, 72, 0, 0, 0, 0, +/* 0x05c0 */ 0, 0, 0, 3,128, 4, 0, 0,166, 2, 8,124, 38, 0,128,125, +/* 0x05d0 */ 41, 4, 0, 72,120, 75, 58,125, 16, 0, 35,161, 32, 0,163,235, +/* 0x05e0 */ 120, 51,215,124,120, 27,123,124,120, 35,153,124, 3, 0,137, 47, +/* 0x05f0 */ 8, 0,129,145,241,254, 33,248,120, 43,184,124,120, 59,246,124, +/* 0x0600 */ 120, 67, 21,125, 20,234,163,127, 16, 0,192, 56, 8, 0,158, 64, +/* 0x0610 */ 0, 0,192, 56, 56, 0, 59,161, 34, 8,198, 56,120,235,168,127, +/* 0x0620 */ 0, 0, 64, 57,255,255,192, 59, 1, 0, 41, 57,166, 3, 41,125, +/* 0x0630 */ 60, 0, 64, 66, 0, 0, 40,129, 1, 0,137, 47, 40, 0,158, 64, +/* 0x0640 */ 16, 0,232,232, 64, 56,190,127, 8, 0,157, 64,120, 59,254,124, +/* 0x0650 */ 40, 0, 40,233, 20, 74, 39,125, 64, 72,170,127, 8, 0,156, 64, +/* 0x0660 */ 120, 75, 42,125, 56, 0, 8, 57,200,255,255, 75, 1, 0, 74, 61, +/* 0x0670 */ 228, 3,222,123,255,255, 74, 57,120,243,195,127, 80, 80,158,124, +/* 0x0680 */ 0, 0,160, 56,228, 3,132,120,180, 7,198,124,255,255,224, 56, +/* 0x0690 */ 0, 0, 0, 57,225,252,255, 75, 0, 0, 0, 96, 81,115, 64, 62, +/* 0x06a0 */ 0, 0,128, 58, 0, 0, 57, 46, 64, 98, 82, 98, 80, 24,222,127, +/* 0x06b0 */ 0, 0, 32, 58, 56, 0, 59,161, 0,160,137,127,128, 1,157, 64, +/* 0x06c0 */ 0, 0, 61,129, 36, 0,146, 65, 6, 0,137, 47, 28, 0,158, 64, +/* 0x06d0 */ 16, 0,189,232,120,187,227,126, 3, 0,128, 56, 20, 42,190,124, +/* 0x06e0 */ 169,252,255, 75, 72, 1, 0, 72, 1, 0,137, 47, 64, 1,158, 64, +/* 0x06f0 */ 4, 0,253,129, 16, 0,157,235, 32, 0,253,235, 40, 0,125,234, +/* 0x0700 */ 250, 22,239, 85, 20,226,158,127,112, 0,225,251, 48,124, 79,126, +/* 0x0710 */ 32, 4,137,123,120, 0,129,251, 20,154,124,126, 20,250,233,127, +/* 0x0720 */ 228, 3,156,123,126, 7,240, 85, 12, 0,146, 64, 0, 0,160, 56, +/* 0x0730 */ 8, 0, 0, 72, 2, 0,160, 56,120,131,165,124,180, 7,165,124, +/* 0x0740 */ 16, 0,146, 64,120,195, 7,127, 18, 0,192, 56, 12, 0, 0, 72, +/* 0x0750 */ 50, 0,192, 56,255,255,224, 56, 8, 0, 29,233,120,227,131,127, +/* 0x0760 */ 120,251,228,127, 80, 64, 9,125, 13,252,255, 75, 0, 0, 0, 96, +/* 0x0770 */ 0, 24,188,127, 16, 0,254, 65,127, 0, 96, 56,185,251,255, 75, +/* 0x0780 */ 0, 0, 0, 96, 24, 0,146, 65,120,203, 35,127,112, 0,129, 56, +/* 0x0790 */ 120,179,197,126,120,171,166,126,165,252,255, 75,208, 0,223,125, +/* 0x07a0 */ 227,255,233,121, 32, 4,206,121, 12, 0,130, 64, 44, 0,146, 64, +/* 0x07b0 */ 68, 0, 0, 72, 0, 0,174, 47,244,255,158, 65,166, 3,201,125, +/* 0x07c0 */ 20,250, 92,125, 0, 0, 32, 57,174, 73, 42,126, 1, 0, 41, 57, +/* 0x07d0 */ 248,255, 0, 66,216,255,255, 75,120,227,131,127,120,251,228,127, +/* 0x07e0 */ 180, 7, 5,126,129,251,255, 75, 0, 0, 0, 96, 0, 0,163, 47, +/* 0x07f0 */ 136,255,222, 64, 20,250,238,127, 20,250,252,127, 64,152,191,127, +/* 0x0800 */ 44, 0,156, 64,120,251,227,127, 80,152,159,124,180, 7, 5,126, +/* 0x0810 */ 50, 0,192, 56,255,255,224, 56, 0, 0, 0, 57, 89,251,255, 75, +/* 0x0820 */ 0, 0, 0, 96, 0, 24,191,127, 80,255,222, 64, 1, 0,148, 58, +/* 0x0830 */ 56, 0,189, 59,180, 7,148,126,124,254,255, 75, 0, 0,186, 47, +/* 0x0840 */ 8, 0,158, 65, 0, 0,218,251, 16, 1, 33, 56, 24, 0,123,232, +/* 0x0850 */ 20, 26,126,124, 8, 0,129,129, 32,129,144,125,236, 1, 0, 72, +/* 0x0860 */ 0, 0, 0, 0, 0, 0, 0, 3,128, 18, 0, 0,166, 2, 8,124, +/* 0x0870 */ 0, 0,192, 56,177, 1, 0, 72, 17,255, 33,248,120, 43,191,124, +/* 0x0880 */ 120, 75, 62,125, 64, 0,133, 59, 0, 0, 35,129,120, 83, 91,125, +/* 0x0890 */ 0, 0,160, 59,152, 0, 97,248,144, 0,129,248,136, 0,161,248, +/* 0x08a0 */ 128, 0, 33,249,120, 59,229,124,112, 0,129,248,120, 0, 97,248, +/* 0x08b0 */ 160, 0,225,248,168, 0, 1,249,144, 0, 97, 56,128, 0,129, 56, +/* 0x08c0 */ 125,251,255, 75, 80, 0,191,232,120,243,195,127, 3, 0,128, 56, +/* 0x08d0 */ 64, 0,165, 56,181,250,255, 75, 56, 0,191,160,120,243,195,127, +/* 0x08e0 */ 5, 0,128, 56,165,250,255, 75, 24, 0,191,128,120,243,195,127, +/* 0x08f0 */ 9, 0,128, 56,149,250,255, 75,160, 0,225,232,168, 0, 1,233, +/* 0x0900 */ 112, 0,129, 56, 0, 0,160, 56,120,243,198,127,120,219,105,127, +/* 0x0910 */ 120,251,227,127,181,252,255, 75, 9, 0,128, 56,120, 27,122,124, +/* 0x0920 */ 120,243,195,127,120,211, 69,127, 97,250,255, 75, 56, 0, 63,161, +/* 0x0930 */ 0,232,137,127,172, 0,157, 64, 0, 0, 60,129, 3, 0,137, 47, +/* 0x0940 */ 144, 0,158, 64, 16, 0,124,232, 0, 0, 59,233, 0, 0,128, 56, +/* 0x0950 */ 0, 0,160, 56, 20, 74, 99,124,253,249,255, 75, 0, 0, 0, 96, +/* 0x0960 */ 0, 0,131, 47,120, 27,121,124, 16, 0,252, 64,127, 0, 96, 56, +/* 0x0970 */ 197,249,255, 75, 0, 0, 0, 96,120,251,228,127, 0, 4,160, 56, +/* 0x0980 */ 237,249,255, 75, 0, 0, 0, 96, 0, 4,163, 47,224,255,222, 64, +/* 0x0990 */ 0, 0,128, 56,120,203, 37,127, 0, 0,192, 56, 0, 0,224, 56, +/* 0x09a0 */ 0, 0, 0, 57,120,219,105,127,120,251,227,127, 29,252,255, 75, +/* 0x09b0 */ 0, 0,187,232, 7, 0,128, 56,120, 27,122,124,120,243,195,127, +/* 0x09c0 */ 201,249,255, 75,120,203, 35,127,133,249,255, 75, 0, 0, 0, 96, +/* 0x09d0 */ 1, 0,189, 59, 56, 0,156, 59,180, 7,189,127, 80,255,255, 75, +/* 0x09e0 */ 240, 0, 33, 56,120,211, 67,127,140, 0, 0, 72, 0, 0, 0, 0, +/* 0x09f0 */ 0, 0, 0, 1,128, 7, 0, 0,112,255,193,249,120,255,225,249, +/* 0x0a00 */ 128,255, 1,250,136,255, 33,250,144,255, 65,250,152,255, 97,250, +/* 0x0a10 */ 160,255,129,250,168,255,161,250,176,255,193,250,184,255,225,250, +/* 0x0a20 */ 192,255, 1,251,200,255, 33,251,208,255, 65,251,216,255, 97,251, +/* 0x0a30 */ 224,255,129,251,232,255,161,251,240,255,193,251,248,255,225,251, +/* 0x0a40 */ 16, 0, 1,248, 32, 0,128, 78,112,255,193,233,120,255,225,233, +/* 0x0a50 */ 128,255, 1,234,136,255, 33,234,144,255, 65,234,152,255, 97,234, +/* 0x0a60 */ 160,255,129,234,168,255,161,234,176,255,193,234,184,255,225,234, +/* 0x0a70 */ 192,255, 1,235,200,255, 33,235,208,255, 65,235,216,255, 97,235, +/* 0x0a80 */ 224,255,129,235, 16, 0, 1,232,232,255,161,235,166, 3, 8,124, +/* 0x0a90 */ 240,255,193,235,248,255,225,235, 32, 0,128, 78, 0, 0, 0, 0, +/* 0x0aa0 */ 136, 3, 16, 0, 0, 0, 0, 0,160,138, 16, 0, 0, 0, 0, 0, +/* 0x0ab0 */ 204, 3, 16, 0, 0, 0, 0, 0,160,138, 16, 0, 0, 0, 0, 0, +/* 0x0ac0 */ 60, 4, 16, 0, 0, 0, 0, 0,160,138, 16, 0, 0, 0, 0, 0, +/* 0x0ad0 */ 200, 5, 16, 0, 0, 0, 0, 0,160,138, 16, 0, 0, 0, 0, 0, +/* 0x0ae0 */ 108, 8, 16, 0, 0, 0, 0, 0,160,138, 16 }; diff --git a/src/stub/src/powerpc-linux.elf-entry.S b/src/stub/src/powerpc-linux.elf-entry.S index e1e18922..8cabce44 100644 --- a/src/stub/src/powerpc-linux.elf-entry.S +++ b/src/stub/src/powerpc-linux.elf-entry.S @@ -29,22 +29,29 @@ * */ +NBPW= 4 // Number of Bytes Per Word #include "arch/powerpc/32/macros.S" #include "arch/powerpc/32/ppc_regs.h" -SZ_FRAME= (2 + 2)*4 // (sp,LR, 2 slots) 0 mod 16 +SZ_FRAME= (2 + 2)*NBPW // (sp,LR, 2 slots) 0 mod 16 sz_b_info= 12 sz_unc= 0 sz_cpr= 4 b_method= 8 -szElf32_Ehdr= 13*4 -p_memsz= 5*4 +szElf32_Ehdr= 13*NBPW +p_memsz= 5*NBPW e_type= 16 ET_EXEC= 2 ET_DYN= 3 +AT_NULL= 0 // +AT_PAGESZ= 6 +a_type= 0 +a_val= NBPW +sz_auxv= 2*NBPW + PROT_READ= 1 PROT_WRITE= 2 PROT_EXEC= 4 @@ -143,7 +150,7 @@ cfl_ret: msg_SELinux: call L72 L70: - .asciz "PROT_EXEC|PROT_WRITE failed.\n" + .asciz "mmap failed.\n" L71: // IDENTSTR goes here @@ -236,14 +243,14 @@ AT_SYSINFO_EHDR= 33 // Elf32_Ehdr for VDSO add r_exp,r_exp,r0 // relocate &f_exp mr a3,r_LENM // length to move - addi a3,a3,7 // roundup (8, ) - addi a1,r_ADRU,-4 // prepare for lwu + addi a3,a3,-1+ 2*NBPW // roundup (8, ) + addi a1,r_ADRU,-NBPW // prepare for lwu srwi a3,a3,3 // number of 8-byte chunks - addi a0,a0,-4 // prepare for stwu + addi a0,a0,-NBPW // prepare for stwu mtctr a3 0: - lwz a2,4(a1); lwzu a3,2*4(a1) - stw a2,4(a0); stwu a3,2*4(a0); bdnz 0b + lwz a2,NBPW(a1); lwzu a3,2*NBPW(a1) + stw a2,NBPW(a0); stwu a3,2*NBPW(a0); bdnz 0b mr r_ADRU,r_ADRM // relocate // section ELFufold @@ -253,8 +260,8 @@ fold: mtctr r_exp // &decompress lwz r0,sz_unc + LBINFO - LrFLD(r_FLD) lbz meth,b_method + LBINFO - LrFLD(r_FLD) - la ldst,SZ_FRAME+31*4(sp) // &slot on stack - stw r0,SZ_FRAME+31*4(sp) // lzma uses for EOF + la ldst,SZ_FRAME+31*NBPW(sp) // &slot on stack + stw r0,SZ_FRAME+31*NBPW(sp) // lzma uses for EOF lwz lsrc,sz_cpr + LBINFO - LrFLD(r_FLD) la src,sz_b_info + LBINFO - LrFLD(r_FLD) bctrl // decompress it @@ -267,7 +274,7 @@ fold: mr a0,r_ADRU // base li r0,__NR_mprotect; sc - addi r0,r23,4*4 // jmp over get_page_mask() + addi r0,r23,4*NBPW // jmp over get_page_mask() mtctr r0 bctr @@ -284,26 +291,21 @@ fold: // blr # goto return address zfind: - lwz r0,0(a0); addi a0,a0,4 + lwz r0,0(a0); addi a0,a0,NBPW cmpi cr7,r0,0; bne+ cr7,zfind ret main: - stwu r1,-(SZ_FRAME+32*4)(sp) // allocate space (keeping 0 mod 16), chain r1 - stmw r2, SZ_FRAME+2*4-4(sp) // save registers r2 thru r31 + stwu r1,-(SZ_FRAME+32*NBPW)(sp) // allocate space (keeping 0 mod 16), chain r1 + stmw r2, SZ_FRAME+ 2*NBPW - NBPW(sp) // save registers r2 thru r31 mflr r_exp // &f_exp (decompress) - la a0,SZ_FRAME+32*4(sp) + la a0,SZ_FRAME+32*NBPW(sp) // &argc call zfind // a0= envp call zfind // a0= &Elf32_auxv mr r_auxv,a0 // save for folded code // set r_PMASK by finding actual page size in Elf32_auxv_t -AT_NULL= 0 // -AT_PAGESZ= 6 -a_type= 0 -a_val= 4 -sz_auxv= 2*4 1: lwz r0,a_type(a0); lwz a1,a_val(a0); addi a0,a0,sz_auxv cmpi cr7,r0,AT_PAGESZ; beq- cr7,2f diff --git a/src/stub/src/powerpc-linux.elf-fold.S b/src/stub/src/powerpc-linux.elf-fold.S index 847ab5d5..934309db 100644 --- a/src/stub/src/powerpc-linux.elf-fold.S +++ b/src/stub/src/powerpc-linux.elf-fold.S @@ -29,8 +29,10 @@ * */ +NBPW= 4 // Number of Bytes Per Word #include "arch/powerpc/32/macros.S" #include "arch/powerpc/32/ppc_regs.h" + PATH_MAX= 4096 // /usr/include/linux/limits.h szElf32_Ehdr= 0x34 @@ -55,10 +57,11 @@ O_RDONLY= 0 OVERHEAD= 2048 // http://refspecs.linuxfoundation.org/elf/elfspec_ppc.pdf p.3-17 (pdf p.33) -// SZ_LINKA= (2 + max(0, #params - 8))*4 // (sp,lr, arg9,arg10, ... ) -SZ_LINKA= (2 + 2)*4 // (sp,pc, arg9,arg10,... ) and 16-byte aligned +// SZ_LINKA= (2 + max(0, #params - 8))*NBPW // (sp,lr, arg9,arg10, ... ) +SZ_LINKA= (2 + 2)*NBPW // (sp,pc, arg9,arg10,... ) and 16-byte aligned SZ_FRAME= SZ_LINKA +sz_pack2_f_exp= -4 -4 // 4 bytes and one Instruction before r_exp // In: r_exp= 31 // f_exp == &decompress() r_PMASK= 30 // PAGE_MASK @@ -91,46 +94,47 @@ get_page_mask: .globl get_page_mask L90b: #include "arch/powerpc/32/bxx.S" L90a: +L_PFX= 4 // strlen(" =") .asciz " =/proc/self/exe" .balign 4 L90: mflr r_unf // L90b = &ppcbxx: f_unfilter // open /proc/self/exe li a1,O_RDONLY - la a0,4+ L90a - L90b(r_unf) // "/proc/self/exe" + la a0,L_PFX+ L90a - L90b(r_unf) // "/proc/self/exe" call open; movr r_fd,a0 // slide {<>,argc,argv,0,env,0,auxv} down with maximum room before strings - la a1,-4(sp) // src ready for lwzu - la sp,-(4+ PATH_MAX)(sp) - la a0,-4(sp) // dst ready for stwu - la r_auxv,-4(r_auxv) // &end ready for lwzu + la a1,-NBPW(sp) // src ready for lwzu + la sp,-(-NBPW & (-1+ NBPW + (L_PFX + PATH_MAX)))(sp) + la a0,-NBPW(sp) // dst ready for stwu + la r_auxv,-NBPW(r_auxv) // &end ready for lwzu 0: // copy upto auxv - lwzu r0,4(a1); cmplw cr7,a1,r_auxv - stwu r0,4(a0); blt cr7,0b - la r_auxv,8(a0) // new &auxv - stwu r0,4(a0) // new env_terminator + lwzu r0,NBPW(a1); cmplw cr7,a1,r_auxv + stwu r0,NBPW(a0); blt cr7,0b + la r_auxv,2*NBPW(a0) // new &auxv + stwu r0,NBPW(a0) // new env_terminator 0: // copy auxv - lwz r0,4(a1); cmpli cr7,r0,AT_NULL - stw r0,4(a0) - lwzu r0,2*4(a1) - stwu r0,2*4(a0); bne cr7,0b - la av_hi,4(a0) // tmp end of auxv + lwz r0,NBPW(a1); cmplwi cr7,r0,AT_NULL + stw r0,NBPW(a0) + lwzu r0,2*NBPW(a1) + stwu r0,2*NBPW(a0); bne cr7,0b + la av_hi,NBPW(a0) // tmp end of auxv subf av_len,r_auxv,av_hi // length of auxv lwz r0,L90a - L90b(r_unf) // " =" - la cblk,4(a1) // original &strings - stwu r0,4(a0) - la r14,4(a0) // buffer + la cblk,NBPW(a1) // original &strings + stwu r0,NBPW(a0) + la r14,L_PFX(a0) // buffer // readlink("/proc/self/exe", buffer, -1+ PATH_MAX) li a2,-1+ PATH_MAX movr a1,r14 // buffer - la a0,4+ L90a - L90b(r_unf) // "/proc/self/exe" - call readlink; la a2,-4(r14) // a0= len; a2= buffer + la a0,L_PFX+ L90a - L90b(r_unf) // "/proc/self/exe" + call readlink; la a2,-L_PFX(r14) // a0= len; a2= buffer cmpwi a0,0; bgt 0f // success la a2,L90a - L90b(r_unf) // " =/proc/self/exe" - li a0,L90 - (4+ L90a) // round_up(4, strlen("/proc/self/exe")) + li a0,L90 - (NBPW+ L90a) // round_up(NBPW, strlen("/proc/self/exe")) 0: - addi a0,a0,4 // len += strlen(" ="); + addi a0,a0,L_PFX // len += strlen(" ="); add a1,a2,a0 // beyond end of path mtctr a0 movr a0,cblk // old &strings @@ -139,24 +143,24 @@ L90: 0: // slide path up lbzu r0,-1(a1) stbu r0,-1(a0); bdnz 0b - stw a0,-2*4(r_auxv) // &" =<>" for env + stw a0,-2*NBPW(r_auxv) // &" =<>" for env clrrwi a0,a0,2 // word align xor r0,sp,a1 // parity of length xor r0,r0,a0 // length vs destination - rlwinm r0,r0,0,29,29 // andi r0,r0,1<<(31-29) + clrlwi r0,r0,-3+ 8*NBPW // keep bottom 3 bits sub a0,a0,r0 // slide the rest of the stack up movr a1,av_hi sub r_auxv,a0,av_len 0: - lwzu r0,-4(a1); cmpl cr7,a1,sp - stwu r0,-4(a0); bgt+ cr7,0b + lwzu r0,-NBPW(a1); cmplw cr7,a1,sp + stwu r0,-NBPW(a0); bgt+ cr7,0b movr sp,a0 stwu sp,-(SZ_FRAME+OVERHEAD)(sp) // allocate this frame - lwz a1,-2*4(r_exp) // sz_pack2 == #bytes which preceed -2*4(r_exp) + lwz a1,sz_pack2_f_exp(r_exp) // sz_pack2 == #bytes which preceed -2*NBPW(r_exp) add a0,r_ADRU,r_BINFO // &b_info sub a1,a1,r_BINFO // total_size @@ -186,14 +190,14 @@ L90: AT_NULL= 0 // a_type= 0 -a_val= 4 -sz_auxv= 2*4 +a_val= NBPW +sz_auxv= 2*NBPW // find the escape hatch in auxv[{AT_NULL}].a_val mr a0,r_auxv 0: lwz r0,a_type(a0); lwz a1,a_val(a0); addi a0,a0,sz_auxv - cmpli cr7,r0,AT_NULL; bne+ cr7,0b + cmplwi cr7,r0,AT_NULL; bne+ cr7,0b mtctr a1 // escape hatch mr a0,r_ADRU @@ -201,10 +205,10 @@ sz_auxv= 2*4 li r0,SYS_munmap mtlr r_exp // entry address - lmw a2,SZ_FRAME+(a2 - r2 + 2)*4 - 4(sp) // restore registers a2 thru r31 - la sp, SZ_FRAME+32*4(sp) // deallocate outer frame + lmw a2,SZ_FRAME+(a2 - r2 + 2)*NBPW - NBPW(sp) // restore registers a2 thru r31 + la sp, SZ_FRAME+32*NBPW(sp) // deallocate outer frame - bctr + bctr // goto escape hatch SYS_exit= 1 SYS_fork= 2 diff --git a/src/stub/src/powerpc64le-linux.elf-entry.S b/src/stub/src/powerpc64le-linux.elf-entry.S index 46a9f6f2..a55fc565 100644 --- a/src/stub/src/powerpc64le-linux.elf-entry.S +++ b/src/stub/src/powerpc64le-linux.elf-entry.S @@ -33,6 +33,7 @@ #define BIG_ENDIAN 0 #endif +NBPW= 8 // Number of Bytes Per Word #include "arch/powerpc/64le/macros.S" #include "arch/powerpc/64le/ppc_regs.h" @@ -41,6 +42,19 @@ sz_b_info= 12 sz_cpr= 4 b_method= 8 +szElf64_Ehdr= 16 + 2*2 + 4 + 3*NBPW + 4 + 6*2 +p_memsz= 2*4 + 4*NBPW + +e_type= 16 + ET_EXEC= 2 + ET_DYN= 3 + +AT_NULL= 0 // +AT_PAGESZ= 6 +a_type= 0 +a_val= NBPW +sz_auxv= 2*NBPW + PROT_READ= 1 PROT_WRITE= 2 PROT_EXEC= 4 @@ -56,13 +70,16 @@ PAGE_SIZE = -(~0<>16 // not found; use default +2: + neg r_PMASK,a1 // save for folded code + call unfold +LrFLD: +LOBINFO: .long O_BINFO // .int4 +LBINFO: + /* { b_info={sz_unc, sz_cpr, {4 char}}, folded_loader...} */ /* vim:set ts=8 sw=8 et: */ diff --git a/src/stub/src/powerpc64le-linux.elf-fold.S b/src/stub/src/powerpc64le-linux.elf-fold.S index 24751b99..eea0ce44 100644 --- a/src/stub/src/powerpc64le-linux.elf-fold.S +++ b/src/stub/src/powerpc64le-linux.elf-fold.S @@ -29,16 +29,20 @@ * */ -#include "arch/powerpc/64le/macros.S" -#include "arch/powerpc/64le/ppc_regs.h" - #ifndef BIG_ENDIAN #define BIG_ENDIAN 0 #endif -#define szElf64_Ehdr 0x40 -#define szElf64_Phdr 0x38 -#define e_phnum 56 +NBPW= 8 //Number of Bytes Per Word +#include "arch/powerpc/64le/macros.S" +#include "arch/powerpc/64le/ppc_regs.h" + +PATH_MAX= 4096 // /usr/include/linux/limits.h + +szElf64_Ehdr= 0x40 +szElf64_Phdr= 0x38 +e_phnum= 56 +AT_NULL= 0 sz_b_info= 12 sz_unc= 0 @@ -47,6 +51,13 @@ sz_b_info= 12 sz_l_info= 12 sz_p_info= 12 +MAP_PRIVATE= 0x02 +MAP_FIXED= 0x10 + +PROT_READ= 0x1 + +O_RDONLY= 0 + OVERHEAD= 2048 // http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html#STACK @@ -56,105 +67,199 @@ OVERHEAD= 2048 // It shall be doubleword aligned, and shall be at least 8 doublewords in length. //SZ_FRAME= SZ_LINK + SZ_PSAV // in ppc_regs.h -/* In: - r31= &decompress; also 8+ (char *)&(#bytes which preceed &-8(r31) - r26= o_binfo - sp/ {SZ_FRAME},regsav(r1-31),&eof_src,argc,argv,0,env,0,auxv,0,chars -*/ +sz_pack2_f_exp= -4 -4 // 4 bytes and one Instruction before r_exp +// In: +r_exp= 31 // f_exp == &decompress() +r_PMASK= 30 // PAGE_MASK +r_ADRU= 29 // &base to unmap +r_LENU= 28 // length to unmap +r_BINFO= 27 +r_auxv= 26 +r_slide= 25 +//r_FLD= 24 +//r_ADRM= 23 +//r_LENM= 22 + +// r29= reserved for &our_Elf32_Ehdr + +// sp/ {SZ_FRAME},regsav(r1-31),&eof_src,argc,argv,0,env,0,auxv,0,chars + +r_unf= 21 // f_unf == &unfilter() +r_fd= 20 +av_hi= 19 +av_len= 18 +cblk= 17 +pag= 16 + fold_begin: -//// teq r0,r0 // debugging + teq r0,r0 // debugging call L90 +L90b: #include "arch/powerpc/64le/bxx.S" - -zfind: - ld r0,0(a6) // parameters are 16byte aligned - addi a6,a6,8 - cmpldi cr7,r0,0; bne+ cr7,zfind - ret +L90a: +L_PFX= 4 // strlen(" =") + .asciz " =/proc/self/exe" + .balign 4 L90: - la sp,SZ_FRAME(sp) // trim save area used by decompressor - mflr a5 // &ppcbxx: f_unfilter - ld a6,0(sp) // &argc; sp from regsav at execve - call zfind // a6= &env - call zfind // a6= &Elf64_auxv; r0= 0 + mflr r_unf // L90b = &ppcbxx: f_unfilter +// open /proc/self/exe + li a1,O_RDONLY + la a0,L_PFX+ L90a - L90b(r_unf) // "/proc/self/exe" + call open; movr r_fd,a0 +// slide {<>,argc,argv,0,env,0,auxv} down with maximum room before strings + la a1,-NBPW(sp) // src ready for ldu + la sp,-(-NBPW & (-1+ NBPW + (L_PFX + PATH_MAX)))(sp) + la a0,-NBPW(sp) // dst ready for stdu + la r_auxv,-NBPW(r_auxv) // &end ready for ldu +0: // copy upto auxv + ldu r0,NBPW(a1); cmpld cr7,a1,r_auxv + stdu r0,NBPW(a0); blt cr7,0b + la r_auxv,2*NBPW(a0) // new &auxv + stdu r0,NBPW(a0) // new env_terminator +0: // copy auxv + ld r0,NBPW(a1); cmpldi cr7,r0,AT_NULL + std r0,NBPW(a0) + ldu r0,2*NBPW(a1) + stdu r0,2*NBPW(a0); bne cr7,0b + la av_hi,NBPW(a0) // tmp end of auxv + subf av_len,r_auxv,av_hi // length of auxv + + teq r0,r0 + lwz r0,L90a - L90b(r_unf) // " =" + la cblk,NBPW(a1) // original &strings + stwu r0,NBPW(a0) + la r14,L_PFX(a0) // buffer +// readlink("/proc/self/exe", buffer, -1+ PATH_MAX) + li a2,-1+ PATH_MAX + movr a1,r14 // buffer + la a0,L_PFX+ L90a - L90b(r_unf) // "/proc/self/exe" + call readlink; la a2,-L_PFX(r14) // a0= len; a2= buffer + cmpdi a0,0; bgt 0f // success + la a2,L90a - L90b(r_unf) // " =/proc/self/exe" + li a0,L90 - (NBPW+ L90a) // round_up(NBPW, strlen("/proc/self/exe")) +0: + addi a0,a0,L_PFX // len += strlen(" ="); + add a1,a2,a0 // beyond end of path + mtctr a0 + movr a0,cblk // old &strings + li a2,0 + stbu a2,-1(a0) // NUL terminate +0: // slide path up + lbzu r0,-1(a1) + stbu r0,-1(a0); bdnz 0b + std a0,-2*NBPW(r_auxv) // &" =<>" for env + + clrrdi a0,a0,3 // word align + xor r0,sp,a1 // parity of length + xor r0,r0,a0 // length vs destination + clrldi r0,r0,-4+ 8*NBPW // keep bottom 4 bits + sub a0,a0,r0 + +// slide the rest of the stack up + movr a1,av_hi + sub r_auxv,a0,av_len +0: + ldu r0,-NBPW(a1); cmpld cr7,a1,sp + stdu r0,-NBPW(a0); bgt+ cr7,0b + movr sp,a0 + r_reloc= 32 - 1 # use a slot in register save area - la a7,r_reloc*8(sp) // &reloc - std r0,0(a7) // reloc= 0 + la a7,r_reloc*NBPW(sp) // &reloc + li r0,0; std r0,0(a7) // reloc= 0 - la sp,-(SZ_FRAME+OVERHEAD)(sp) // -SZ_FRAME + &Elf64_Ehdr temporary space - lwz a1,-2*4(r31) // sz_pack2 == #bytes which preceed -2*4(r31) - clrrdi r30,a5,16 // r30= &this_page - subf r29,a1,r31 // 2*4+ (char *)&our_Elf64_Ehdr - addi r29,r29,-2*4 // &our_Elf64_Ehdr + stdu sp,-(SZ_FRAME+OVERHEAD)(sp) // allocate this frame + lwz a1,-2*4(r_exp) // sz_pack2 == #bytes which preceed -2*NBPW(r_exp) - mr a4,r31 // &decompress: f_expand - add a0,r29,r26 // &b_info - sub a1,a1,r26 // total_size - la a2,SZ_FRAME(sp) // &Elf64_Ehdr temporary space - lwz a3,sz_unc(a0) // sz_elf_headers + add a0,r_ADRU,r_BINFO // &b_info + sub a1,a1,r_BINFO // total_size + la a2,SZ_FRAME(sp) // &Elf32_Ehdr temporary space + mr a3,r_auxv // &Elf32_auxv_t + mr a4,r_exp // &decompress: f_expand + mr a5,r_unf // &f_unf + mr a6,r_slide // reloc; slide; dynbase #if BIG_ENDIAN //{ setup indirection for entry to f_exp and f_unf - std a4,3*8(sp); la a4,3*8(sp) // use tmp.xlc - std a5,4*8(sp); la a5,4*8(sp) // use tmp.ld + std a4,3*NBPW(sp); la a4,3*NBPW(sp) // use tmp.xlc + std a5,4*NBPW(sp); la a5,4*NBPW(sp) // use tmp.ld #endif //} - call upx_main - // a0=entry= upx_main(b_info *a0, total_size a1, Elf64_Ehdr *a2, sz_ehdr a3, - // f_decomp a4, f_unf a5, Elf64_auxv_t *a6, void *a7=p_reloc) + call upx_main // Out: a0= entry +// entry= upx_main(b_info *a0, total_size a1, Elf32_Ehdr *a2, ELf32_auxv_t *a3, +// f_exp a4, f_unf a5, dynbase a6, p_reloc a7) #if BIG_ENDIAN //{ - ld r0,SZ_FRAME+OVERHEAD +r_reloc*8(sp) // reloc for ET_DYN - ld r2,8(r3); add r2,r2,r0 // toc - ld r3,0(r3); add r3,r3,r0 // .func + ld r0,SZ_FRAME+OVERHEAD +r_reloc*NBPW(sp) // reloc for ET_DYN + ld r2,NBPW(r3); add r2,r2,r0 // toc + ld r3, 0(r3); add r3,r3,r0 // .func #endif //} - mr r31,a0 // save &entry - mr a0,r29 // &our_Elf64_Ehdr - subf a1,r29,r30 // size - call munmap // unmap compressed program; /proc/self/exe disappears + la sp,SZ_FRAME+OVERHEAD(sp) // deallocate this frame + mr r_exp,a0 // save &entry - mtlr r31 // entry address +// first page of /proc/self/exe, to preserve it despite munmap(ADRU, LENU) + li a5,0 // offset + movr a4,r_fd + li a3,MAP_PRIVATE + li a2,PROT_READ + neg a1,r_PMASK // PAGE_SIZE + li a0,0 // kernel chooses where + call mmap +// close /proc/self/exe + movr a0,r_fd + call close -/* Restore Save Area */ -rest: +AT_NULL= 0 // +a_type= 0 +a_val= NBPW +sz_auxv= 2*NBPW + +// find the escape hatch in auxv[{AT_NULL}].a_val + mr a0,r_auxv +0: + ld r0,a_type(a0); ld a1,a_val(a0); addi a0,a0,sz_auxv + cmpldi cr7,r0,AT_NULL; bne+ cr7,0b + mtctr a1 // escape hatch + + mr a0,r_ADRU + mr a1,r_LENU + li r0,SYS_munmap + mtlr r_exp // entry address + +// lmw a2,SZ_FRAME+(a2 - r2 + 2)*NBPW - NBPW(sp) // restore registers a2 thru r31 // BIG_ENDIAN uses r2 (TOC) that was set above. // LITTLE_ENDIAN does not use TOC here. #if !BIG_ENDIAN //{ - ld 2, 2*8-8+SZ_FRAME+OVERHEAD(sp) + ld 2,SZ_FRAME + (-1+ 2)*NBPW(sp) #endif //} - ld 3, 3*8-8+SZ_FRAME+OVERHEAD(sp) - ld 4, 4*8-8+SZ_FRAME+OVERHEAD(sp) - ld 5, 5*8-8+SZ_FRAME+OVERHEAD(sp) - ld 6, 6*8-8+SZ_FRAME+OVERHEAD(sp) - ld 7, 7*8-8+SZ_FRAME+OVERHEAD(sp) - ld 8, 8*8-8+SZ_FRAME+OVERHEAD(sp) - ld 9, 9*8-8+SZ_FRAME+OVERHEAD(sp) - ld 10,10*8-8+SZ_FRAME+OVERHEAD(sp) - ld 11,11*8-8+SZ_FRAME+OVERHEAD(sp) - ld 12,12*8-8+SZ_FRAME+OVERHEAD(sp) - ld 13,13*8-8+SZ_FRAME+OVERHEAD(sp) - ld 14,14*8-8+SZ_FRAME+OVERHEAD(sp) - ld 15,15*8-8+SZ_FRAME+OVERHEAD(sp) - ld 16,16*8-8+SZ_FRAME+OVERHEAD(sp) - ld 17,17*8-8+SZ_FRAME+OVERHEAD(sp) - ld 18,18*8-8+SZ_FRAME+OVERHEAD(sp) - ld 19,19*8-8+SZ_FRAME+OVERHEAD(sp) - ld 20,20*8-8+SZ_FRAME+OVERHEAD(sp) - ld 21,21*8-8+SZ_FRAME+OVERHEAD(sp) - ld 22,22*8-8+SZ_FRAME+OVERHEAD(sp) - ld 23,23*8-8+SZ_FRAME+OVERHEAD(sp) - ld 24,24*8-8+SZ_FRAME+OVERHEAD(sp) - ld 25,25*8-8+SZ_FRAME+OVERHEAD(sp) - ld 26,26*8-8+SZ_FRAME+OVERHEAD(sp) - ld 27,27*8-8+SZ_FRAME+OVERHEAD(sp) - ld 28,28*8-8+SZ_FRAME+OVERHEAD(sp) - ld 29,29*8-8+SZ_FRAME+OVERHEAD(sp) - ld 30,30*8-8+SZ_FRAME+OVERHEAD(sp) - ld 31,31*8-8+SZ_FRAME+OVERHEAD(sp) - - ld r1,SZ_FRAME+OVERHEAD(sp) // restore r1; deallocate space - li r0,0 - mtcr r0 - mtctr r0 - ret // enter /lib/ld.so.1 + ld 3,SZ_FRAME + (-1+ 3)*NBPW(sp) + ld 4,SZ_FRAME + (-1+ 4)*NBPW(sp) + ld 5,SZ_FRAME + (-1+ 5)*NBPW(sp) + ld 6,SZ_FRAME + (-1+ 6)*NBPW(sp) + ld 7,SZ_FRAME + (-1+ 7)*NBPW(sp) + ld 8,SZ_FRAME + (-1+ 8)*NBPW(sp) + ld 9,SZ_FRAME + (-1+ 9)*NBPW(sp) + ld 10,SZ_FRAME + (-1+ 10)*NBPW(sp) + ld 11,SZ_FRAME + (-1+ 11)*NBPW(sp) + ld 12,SZ_FRAME + (-1+ 12)*NBPW(sp) + ld 13,SZ_FRAME + (-1+ 13)*NBPW(sp) + ld 14,SZ_FRAME + (-1+ 14)*NBPW(sp) + ld 15,SZ_FRAME + (-1+ 15)*NBPW(sp) + ld 16,SZ_FRAME + (-1+ 16)*NBPW(sp) + ld 17,SZ_FRAME + (-1+ 17)*NBPW(sp) + ld 18,SZ_FRAME + (-1+ 18)*NBPW(sp) + ld 19,SZ_FRAME + (-1+ 19)*NBPW(sp) + ld 20,SZ_FRAME + (-1+ 20)*NBPW(sp) + ld 21,SZ_FRAME + (-1+ 21)*NBPW(sp) + ld 22,SZ_FRAME + (-1+ 22)*NBPW(sp) + ld 23,SZ_FRAME + (-1+ 23)*NBPW(sp) + ld 24,SZ_FRAME + (-1+ 24)*NBPW(sp) + ld 25,SZ_FRAME + (-1+ 25)*NBPW(sp) + ld 26,SZ_FRAME + (-1+ 26)*NBPW(sp) + ld 27,SZ_FRAME + (-1+ 27)*NBPW(sp) + ld 28,SZ_FRAME + (-1+ 28)*NBPW(sp) + ld 29,SZ_FRAME + (-1+ 29)*NBPW(sp) + ld 30,SZ_FRAME + (-1+ 30)*NBPW(sp) + ld 31,SZ_FRAME + (-1+ 31)*NBPW(sp) + la sp,SZ_FRAME + 32 *NBPW(sp) // deallocate outer frame + bctr // goto escape hatch SYS_exit= 1 SYS_fork= 2 SYS_read= 3 @@ -166,9 +271,12 @@ SYS_brk= 45 SYS_mmap= 90 SYS_munmap= 91 SYS_mprotect= 125 +SYS_readlink= 85 exit: .globl exit li 0,SYS_exit; 0: b 0f +readlink: .globl readlink + li 0,SYS_readlink; 0: b 0f brk: .globl brk li 0,SYS_brk; 0: b 0f close: .globl close diff --git a/src/stub/tmp/powerpc-linux.elf-entry.bin.dump b/src/stub/tmp/powerpc-linux.elf-entry.bin.dump index 8a873f5d..27127766 100644 --- a/src/stub/tmp/powerpc-linux.elf-entry.bin.dump +++ b/src/stub/tmp/powerpc-linux.elf-entry.bin.dump @@ -13,8 +13,8 @@ Idx Name Size VMA LMA File off Algn Flags 8 LZMA_DEC30 00000024 00000000 00000000 00001764 2**0 CONTENTS, READONLY 9 NRV_TAIL 0000001c 00000000 00000000 00001788 2**0 CONTENTS, READONLY 10 CFLUSH 00000024 00000000 00000000 000017a4 2**0 CONTENTS, READONLY - 11 ELFMAINY 00000022 00000000 00000000 000017c8 2**0 CONTENTS, RELOC, READONLY - 12 ELFMAINZ 000001f8 00000000 00000000 000017ea 2**0 CONTENTS, RELOC, READONLY + 11 ELFMAINY 00000012 00000000 00000000 000017c8 2**0 CONTENTS, RELOC, READONLY + 12 ELFMAINZ 000001f8 00000000 00000000 000017da 2**0 CONTENTS, RELOC, READONLY SYMBOL TABLE: 00000000 l d LZMA_DEC30 00000000 LZMA_DEC30 00000000 l d NRV_TAIL 00000000 NRV_TAIL diff --git a/src/stub/tmp/powerpc64-linux.elf-entry.bin.dump b/src/stub/tmp/powerpc64-linux.elf-entry.bin.dump index 4e2cf74f..482e1f91 100644 --- a/src/stub/tmp/powerpc64-linux.elf-entry.bin.dump +++ b/src/stub/tmp/powerpc64-linux.elf-entry.bin.dump @@ -13,9 +13,9 @@ Idx Name Size VMA LMA File off Algn 8 LZMA_DEC20 00001574 0000000000000000 0000000000000000 00001708 2**0 CONTENTS, READONLY 9 NRV_TAIL 0000001c 0000000000000000 0000000000000000 00002c7c 2**0 CONTENTS, READONLY 10 CFLUSH 00000024 0000000000000000 0000000000000000 00002c98 2**0 CONTENTS, READONLY - 11 ELFMAINY 00000022 0000000000000000 0000000000000000 00002cbc 2**0 CONTENTS, RELOC, READONLY - 12 ELFMAINZe 00000018 0000000000000000 0000000000000000 00002ce0 2**3 CONTENTS, RELOC, READONLY - 13 ELFMAINZ 00000110 0000000000000000 0000000000000000 00002cf8 2**2 CONTENTS, RELOC, READONLY + 11 ELFMAINY 00000012 0000000000000000 0000000000000000 00002cbc 2**0 CONTENTS, RELOC, READONLY + 12 ELFMAINZe 00000018 0000000000000000 0000000000000000 00002cd0 2**3 CONTENTS, RELOC, READONLY + 13 ELFMAINZ 0000024c 0000000000000000 0000000000000000 00002ce8 2**2 CONTENTS, RELOC, READONLY SYMBOL TABLE: 0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30 0000000000000000 l d NRV_TAIL 0000000000000000 NRV_TAIL @@ -37,7 +37,7 @@ SYMBOL TABLE: RELOCATION RECORDS FOR [ELFMAINX]: OFFSET TYPE VALUE -0000000000000000 R_PPC64_REL24 ELFMAINZ+0x0000000000000088 +0000000000000000 R_PPC64_REL24 ELFMAINZ+0x000000000000018c RELOCATION RECORDS FOR [NRV2E]: OFFSET TYPE VALUE @@ -65,5 +65,6 @@ OFFSET TYPE VALUE RELOCATION RECORDS FOR [ELFMAINZ]: OFFSET TYPE VALUE -0000000000000058 R_PPC64_REL14 ELFMAINY -000000000000010c R_PPC64_ADDR32 O_BINFO +0000000000000074 R_PPC64_REL14 ELFMAINY +00000000000000f8 R_PPC64_REL14 ELFMAINY +0000000000000248 R_PPC64_ADDR32 O_BINFO diff --git a/src/stub/tmp/powerpc64-linux.elf-fold.map b/src/stub/tmp/powerpc64-linux.elf-fold.map index babafa02..172615a5 100644 --- a/src/stub/tmp/powerpc64-linux.elf-fold.map +++ b/src/stub/tmp/powerpc64-linux.elf-fold.map @@ -9,58 +9,59 @@ Linker script and memory map TARGET(elf64-powerpc) 0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc) -.text 0x00000000001000bc 0x848 +.text 0x00000000001000bc 0x964 *(.text) - .text 0x00000000001000bc 0x1d0 tmp/powerpc64-linux.elf-fold.o - 0x0000000000100240 exit - 0x0000000000100248 brk - 0x0000000000100250 close - 0x0000000000100258 open - 0x0000000000100260 munmap - 0x0000000000100268 mprotect - 0x0000000000100270 read - 0x0000000000100278 mmap - .text 0x000000000010028c 0x678 tmp/powerpc64-linux.elf-main.o + .text 0x00000000001000bc 0x2ec tmp/powerpc64-linux.elf-fold.o + 0x0000000000100354 exit + 0x000000000010035c readlink + 0x0000000000100364 brk + 0x000000000010036c close + 0x0000000000100374 open + 0x000000000010037c munmap + 0x0000000000100384 mprotect + 0x000000000010038c read + 0x0000000000100394 mmap + .text 0x00000000001003a8 0x678 tmp/powerpc64-linux.elf-main.o *(.data) - .data 0x0000000000100904 0x0 tmp/powerpc64-linux.elf-fold.o - .data 0x0000000000100904 0x0 tmp/powerpc64-linux.elf-main.o + .data 0x0000000000100a20 0x0 tmp/powerpc64-linux.elf-fold.o + .data 0x0000000000100a20 0x0 tmp/powerpc64-linux.elf-main.o -.sfpr 0x0000000000100904 0xa4 - .sfpr 0x0000000000100904 0xa4 linker stubs - 0x0000000000100904 _savegpr0_14 - 0x0000000000100930 _savegpr0_25 - 0x000000000010093c _savegpr0_28 - 0x0000000000100954 _restgpr0_14 - 0x0000000000100980 _restgpr0_25 - 0x000000000010098c _restgpr0_28 +.sfpr 0x0000000000100a20 0xa4 + .sfpr 0x0000000000100a20 0xa4 linker stubs + 0x0000000000100a20 _savegpr0_14 + 0x0000000000100a4c _savegpr0_25 + 0x0000000000100a58 _savegpr0_28 + 0x0000000000100a70 _restgpr0_14 + 0x0000000000100a9c _restgpr0_25 + 0x0000000000100aa8 _restgpr0_28 -.glink 0x00000000001009a8 0x0 - .glink 0x00000000001009a8 0x0 linker stubs +.glink 0x0000000000100ac8 0x0 + .glink 0x0000000000100ac8 0x0 linker stubs -.eh_frame 0x00000000001009a8 0x0 - .eh_frame 0x00000000001009a8 0x0 linker stubs +.eh_frame 0x0000000000100ac4 0x0 + .eh_frame 0x0000000000100ac4 0x0 linker stubs -.rela.dyn 0x00000000001009a8 0x0 - .rela.iplt 0x00000000001009a8 0x0 linker stubs +.rela.dyn 0x0000000000100ac8 0x0 + .rela.iplt 0x0000000000100ac8 0x0 linker stubs .data LOAD tmp/powerpc64-linux.elf-fold.o LOAD tmp/powerpc64-linux.elf-main.o OUTPUT(tmp/powerpc64-linux.elf-fold.bin elf64-powerpc) -.branch_lt 0x00000000001009a8 0x0 - .branch_lt 0x00000000001009a8 0x0 linker stubs +.branch_lt 0x0000000000100ac8 0x0 + .branch_lt 0x0000000000100ac8 0x0 linker stubs -.toc 0x00000000001009a8 0x0 - .toc 0x00000000001009a8 0x0 tmp/powerpc64-linux.elf-main.o +.toc 0x0000000000100ac8 0x0 + .toc 0x0000000000100ac8 0x0 tmp/powerpc64-linux.elf-main.o -.opd 0x00000000001009a8 0x58 - .opd 0x00000000001009a8 0x58 tmp/powerpc64-linux.elf-main.o - 0x00000000001009e8 upx_main +.opd 0x0000000000100ac8 0x58 + .opd 0x0000000000100ac8 0x58 tmp/powerpc64-linux.elf-main.o + 0x0000000000100b08 upx_main -.iplt 0x0000000000100a00 0x0 - .iplt 0x0000000000100a00 0x0 linker stubs +.iplt 0x0000000000100b20 0x0 + .iplt 0x0000000000100b20 0x0 linker stubs -.bss 0x0000000000100a00 0x0 - .bss 0x0000000000100a00 0x0 tmp/powerpc64-linux.elf-fold.o - .bss 0x0000000000100a00 0x0 tmp/powerpc64-linux.elf-main.o +.bss 0x0000000000100b20 0x0 + .bss 0x0000000000100b20 0x0 tmp/powerpc64-linux.elf-fold.o + .bss 0x0000000000100b20 0x0 tmp/powerpc64-linux.elf-main.o diff --git a/src/stub/tmp/powerpc64le-linux.elf-entry.bin.dump b/src/stub/tmp/powerpc64le-linux.elf-entry.bin.dump index c78daa64..37dceff5 100644 --- a/src/stub/tmp/powerpc64le-linux.elf-entry.bin.dump +++ b/src/stub/tmp/powerpc64le-linux.elf-entry.bin.dump @@ -13,8 +13,8 @@ Idx Name Size VMA LMA File off Algn 8 LZMA_DEC20 00000c30 0000000000000000 0000000000000000 0000152c 2**0 CONTENTS, READONLY 9 NRV_TAIL 0000001c 0000000000000000 0000000000000000 0000215c 2**0 CONTENTS, READONLY 10 CFLUSH 00000024 0000000000000000 0000000000000000 00002178 2**0 CONTENTS, READONLY - 11 ELFMAINY 00000022 0000000000000000 0000000000000000 0000219c 2**0 CONTENTS, RELOC, READONLY - 12 ELFMAINZ 00000110 0000000000000000 0000000000000000 000021c0 2**2 CONTENTS, RELOC, READONLY + 11 ELFMAINY 00000012 0000000000000000 0000000000000000 0000219c 2**0 CONTENTS, RELOC, READONLY + 12 ELFMAINZ 0000024c 0000000000000000 0000000000000000 000021b0 2**2 CONTENTS, RELOC, READONLY SYMBOL TABLE: 0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30 0000000000000000 l d NRV_TAIL 0000000000000000 NRV_TAIL @@ -34,7 +34,7 @@ SYMBOL TABLE: RELOCATION RECORDS FOR [ELFMAINX]: OFFSET TYPE VALUE -0000000000000000 R_PPC64_REL24 ELFMAINZ+0x0000000000000088 +0000000000000000 R_PPC64_REL24 ELFMAINZ+0x000000000000018c RELOCATION RECORDS FOR [NRV2E]: OFFSET TYPE VALUE @@ -58,5 +58,6 @@ OFFSET TYPE VALUE RELOCATION RECORDS FOR [ELFMAINZ]: OFFSET TYPE VALUE -0000000000000058 R_PPC64_REL14 ELFMAINY -000000000000010c R_PPC64_ADDR32 O_BINFO +0000000000000074 R_PPC64_REL14 ELFMAINY +00000000000000f8 R_PPC64_REL14 ELFMAINY +0000000000000248 R_PPC64_ADDR32 O_BINFO diff --git a/src/stub/tmp/powerpc64le-linux.elf-fold.map b/src/stub/tmp/powerpc64le-linux.elf-fold.map index 41b52d58..896cdcbe 100644 --- a/src/stub/tmp/powerpc64le-linux.elf-fold.map +++ b/src/stub/tmp/powerpc64le-linux.elf-fold.map @@ -9,58 +9,59 @@ Linker script and memory map TARGET(elf64-powerpcle) 0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc) -.text 0x00000000001000bc 0x820 +.text 0x00000000001000bc 0x93c *(.text) - .text 0x00000000001000bc 0x1b0 tmp/powerpc64le-linux.elf-fold.o - 0x0000000000100220 exit - 0x0000000000100228 brk - 0x0000000000100230 close - 0x0000000000100238 open - 0x0000000000100240 munmap - 0x0000000000100248 mprotect - 0x0000000000100250 read - 0x0000000000100258 mmap - .text 0x000000000010026c 0x670 tmp/powerpc64le-linux.elf-main.o + .text 0x00000000001000bc 0x2cc tmp/powerpc64le-linux.elf-fold.o + 0x0000000000100334 exit + 0x000000000010033c readlink + 0x0000000000100344 brk + 0x000000000010034c close + 0x0000000000100354 open + 0x000000000010035c munmap + 0x0000000000100364 mprotect + 0x000000000010036c read + 0x0000000000100374 mmap + .text 0x0000000000100388 0x670 tmp/powerpc64le-linux.elf-main.o *(.data) - .data 0x00000000001008dc 0x0 tmp/powerpc64le-linux.elf-fold.o - .data 0x00000000001008dc 0x0 tmp/powerpc64le-linux.elf-main.o + .data 0x00000000001009f8 0x0 tmp/powerpc64le-linux.elf-fold.o + .data 0x00000000001009f8 0x0 tmp/powerpc64le-linux.elf-main.o -.sfpr 0x00000000001008dc 0xa4 - .sfpr 0x00000000001008dc 0xa4 linker stubs - 0x00000000001008dc _savegpr0_14 - 0x0000000000100908 _savegpr0_25 - 0x0000000000100914 _savegpr0_28 - 0x000000000010092c _restgpr0_14 - 0x0000000000100958 _restgpr0_25 - 0x0000000000100964 _restgpr0_28 +.sfpr 0x00000000001009f8 0xa4 + .sfpr 0x00000000001009f8 0xa4 linker stubs + 0x00000000001009f8 _savegpr0_14 + 0x0000000000100a24 _savegpr0_25 + 0x0000000000100a30 _savegpr0_28 + 0x0000000000100a48 _restgpr0_14 + 0x0000000000100a74 _restgpr0_25 + 0x0000000000100a80 _restgpr0_28 -.glink 0x0000000000100980 0x0 - .glink 0x0000000000100980 0x0 linker stubs +.glink 0x0000000000100aa0 0x0 + .glink 0x0000000000100aa0 0x0 linker stubs -.eh_frame 0x0000000000100980 0x0 - .eh_frame 0x0000000000100980 0x0 linker stubs +.eh_frame 0x0000000000100a9c 0x0 + .eh_frame 0x0000000000100a9c 0x0 linker stubs -.rela.dyn 0x0000000000100980 0x0 - .rela.iplt 0x0000000000100980 0x0 linker stubs +.rela.dyn 0x0000000000100aa0 0x0 + .rela.iplt 0x0000000000100aa0 0x0 linker stubs .data LOAD tmp/powerpc64le-linux.elf-fold.o LOAD tmp/powerpc64le-linux.elf-main.o OUTPUT(tmp/powerpc64le-linux.elf-fold.bin elf64-powerpcle) -.branch_lt 0x0000000000100980 0x0 - .branch_lt 0x0000000000100980 0x0 linker stubs +.branch_lt 0x0000000000100aa0 0x0 + .branch_lt 0x0000000000100aa0 0x0 linker stubs -.toc 0x0000000000100980 0x0 - .toc 0x0000000000100980 0x0 tmp/powerpc64le-linux.elf-main.o +.toc 0x0000000000100aa0 0x0 + .toc 0x0000000000100aa0 0x0 tmp/powerpc64le-linux.elf-main.o -.opd 0x0000000000100980 0x58 - .opd 0x0000000000100980 0x58 tmp/powerpc64le-linux.elf-main.o - 0x00000000001009c0 upx_main +.opd 0x0000000000100aa0 0x58 + .opd 0x0000000000100aa0 0x58 tmp/powerpc64le-linux.elf-main.o + 0x0000000000100ae0 upx_main -.iplt 0x00000000001009d8 0x0 - .iplt 0x00000000001009d8 0x0 linker stubs +.iplt 0x0000000000100af8 0x0 + .iplt 0x0000000000100af8 0x0 linker stubs -.bss 0x00000000001009d8 0x0 - .bss 0x00000000001009d8 0x0 tmp/powerpc64le-linux.elf-fold.o - .bss 0x00000000001009d8 0x0 tmp/powerpc64le-linux.elf-main.o +.bss 0x0000000000100af8 0x0 + .bss 0x0000000000100af8 0x0 tmp/powerpc64le-linux.elf-fold.o + .bss 0x0000000000100af8 0x0 tmp/powerpc64le-linux.elf-main.o