Merge branch 'jreiser-elfstub' into devel

New stub strategy on Linux:  Linux adds too many other segments
to the address space: [vdso], [sigpage], ...; and qemu might
arrange them differently.  Thus the only reliable mappings
are the PT_LOAD of the compressed file itself; all other
address space is unknown!  First, the compressed file uses
.bss to occupy all unused pages up to the original brk(0).
Then at run time, the stub gets another mapping of /proc/self/exe,
and uncompresses the user program on top of the original pages.
[*BSD unchanged for now?]

	modified:   stub/src/powerpc64le-linux.elf-fold.S
	modified:   stub/src/powerpc64le-linux.elf-entry.S
	modified:   stub/src/powerpc64le-darwin.macho-entry.S
	modified:   stub/src/powerpc64le-darwin.dylib-entry.S
	modified:   stub/src/powerpc-linux.elf-fold.S
	modified:   stub/src/powerpc-linux.elf-entry.S
	modified:   stub/src/mipsel.r3000-linux.elf-fold.S
	modified:   stub/src/mipsel.r3000-linux.elf-entry.S
	modified:   stub/src/i386-linux.elf-main.c
	modified:   stub/src/i386-linux.elf-fold.S
	modified:   stub/src/i386-linux.elf-entry.S
	modified:   stub/src/arm64-linux.elf-main.c
	modified:   stub/src/arm64-linux.elf-fold.S
	modified:   stub/src/arm64-linux.elf-entry.S
	modified:   stub/src/arm.v4a-linux.elf-fold.S
	modified:   stub/src/arm.v4a-linux.elf-entry.S
	modified:   stub/src/amd64-linux.elf-main.c
	modified:   stub/src/amd64-linux.elf-fold.S
	modified:   stub/src/amd64-linux.elf-entry.S
	modified:   p_unix.cpp
	modified:   p_mach.cpp
	modified:   p_lx_sh.cpp
	modified:   p_lx_interp.cpp
	modified:   p_lx_elf.cpp
	modified:   p_lx_elf.h
	modified:   p_lx_interp.h
	modified:   p_lx_sh.h
	modified:   p_mach.h
	modified:   p_unix.h
	modified:   stub/src/arch/mips/r3000/macros.ash
	modified:   stub/src/arch/powerpc/32/ppc_regs.h
	modified:   stub/src/arch/powerpc/64le/ppc_regs.h
	modified:   stub/src/include/linux.h
	modified:   stub/Makefile
	modified:   ../.github/travis_testsuite_1.sh
	also .h .map .bin.dump
This commit is contained in:
John Reiser 2017-10-14 14:26:11 -07:00
commit 402c885987
82 changed files with 11463 additions and 12427 deletions

View File

@ -149,81 +149,81 @@ c3f44b4d00a87384c03a6f9e7aec809c1addfe3e271244d38a474f296603088c *mipsel-linux.e
b8c35fa2956da17ca505956e9f5017bb5f3a746322647e24ccb8ff28059cafa4 *powerpc-linux.elf/upx-3.91
"
expected_sha256sums__t110_compress_ucl_nrv2b_3_no_filter="\
fd8b72e7adf24e46235f445769a881d1cbb8e883a8ddf9a4663bb6b10a23440a *amd64-linux.elf/upx-3.91
11871fc750694f4d3d70dd561ec18801f932a650087aa839c56799e338c035b4 *amd64-linux.elf/upx-3.91
c1a6ef9d0b8a26f1d6e3307af6f119bc95411a54421c7da3bd6ade9c4eead187 *arm-wince.pe/upx-3.91.exe
f8e9a7201a3016b4bbd97c0e468fc69affccc18fc5a71ba70c0aa1d2212f3027 *armeb-linux.elf/upx-3.91
7e35e651e9018cfe7c6935d6faa9ae31b5c7324be1112238dd407060a20286d9 *armeb-linux.elf/upx-3.91
7d5f0fd6f18e4cd16655ef58805f228bcaddd5b035ce998faed446e290aea3d9 *i386-dos32.djgpp2.coff/upx-3.91.exe
f0ad83e018214c26093c0ada70ea0156b63c824a5bdf0ead9120634d67f73cea *i386-linux.elf/upx-3.91
fa905c6fa718ad2f85e0b082506ff48fbee2524d64eadeacd90651a27b8f4672 *i386-linux.elf/upx-3.91
d3cfb5347758ee54e54cfc92ae502a3e19702cd4fec115d74f84f8a5ab7a9bc2 *i386-win32.pe/upx-3.91.exe
c4c8b912a48bcaaef72fd94cd0c307659a03be2ec359bf01a42a2a39307dd964 *m68k-atari.tos/upx-3.91.ttp
60a5d572b45cd819c17ee1b6178eb09865f47e7db9ffb29152326f3a826371ba *mipsel-linux.elf/upx-3.91
16b0d079f5d005222f346466e8c567219dfe4feb71a0662342d04168c07c3f8b *powerpc-linux.elf/upx-3.91
b45b537b1c3641a9993f908c5f19504c2ae83f727135bdd63b19a8ae06da31ec *mipsel-linux.elf/upx-3.91
9b9ec6cc491ddc78752966f5be57d12e47c0c3105172ae599de3fce520526190 *powerpc-linux.elf/upx-3.91
"
expected_sha256sums__t120_compress_ucl_nrv2d_3_no_filter="\
906c1ba3e6165d828e56c4fec918c9dd81ac742ded137cc42636dcd68ee31040 *amd64-linux.elf/upx-3.91
a9dba8b9479d0d09eb6e7bc73a8d9393f8509928b368d6a2cd0d4782862fc6c6 *amd64-linux.elf/upx-3.91
2bb2477bdf4643954b4bb707b1017459238b03f66883303cd20e9e8740764dd7 *arm-wince.pe/upx-3.91.exe
4dfd0f09628bd76fd1d49a4de1c77e1d17227ca6659a009e987c8d85e93ebe4e *armeb-linux.elf/upx-3.91
174c480d7ad1262fa1b1a2ae91f06e2adb53e49443da043b2b7930f8f3cf0709 *armeb-linux.elf/upx-3.91
c52473f5dbdac560c05d5d173e5342b5e696e604517359baef581672eb25a9e6 *i386-dos32.djgpp2.coff/upx-3.91.exe
89dca0f4252c058767832a4f5021f1c2682ed8b54bf5cd779f0252bc1ea50beb *i386-linux.elf/upx-3.91
3b5e674c34842bd4bc76a1a61fec6343401d09627280e8e7634cc5e7f41fedf1 *i386-linux.elf/upx-3.91
5bebadb8455b052580b1f22a949c3eb5a441c8b6ba9c6b50506cb703fc3f65ce *i386-win32.pe/upx-3.91.exe
ef94d8b0e02a650c302bec9f2d50462f2accc2fbb8003cc4977bc550d2e5b9f2 *m68k-atari.tos/upx-3.91.ttp
901a01c0170e8550102ab96b991bd1d607bcf423f52322e546a29ce286fc5385 *mipsel-linux.elf/upx-3.91
81ee676127a44a63945a3b2d6e7272623df0620c6bef935252b43970c977f562 *powerpc-linux.elf/upx-3.91
5ef57048d510d1d0fea630e4622e60f0fd54e5b64b65774d6e785670f43d9c54 *mipsel-linux.elf/upx-3.91
50babab276c089f8562e0d38587c7ccc9e0bd84f8c6f0af523d6a07c94568094 *powerpc-linux.elf/upx-3.91
"
expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\
bb8ca19268e5b1d5f1f8c1c46ec8a7ead470f1883f0b0c0166148eedb54560d0 *amd64-linux.elf/upx-3.91
76a370085441b1e216cfb132d67e1099cddc0fb9402725d5fbde5ccd6da7dbbe *amd64-linux.elf/upx-3.91
0915344e0ee8e7c006e6cce71c024f518e097a88820c7ab3ca183ab1c614ce82 *arm-wince.pe/upx-3.91.exe
ea3103c3df4f09ab6f9a720be8c52ce8d3f8540b0ddc33abfbaa3273fcb5bd87 *armeb-linux.elf/upx-3.91
40f6d18e983239020f5139d5c641d5504922d2ac42583fd0d67cf115da92b3b9 *armeb-linux.elf/upx-3.91
5c5ff78652e76834f3f9ab110c42e3a34ef54c748bce212b0e942049f43f5d4d *i386-dos32.djgpp2.coff/upx-3.91.exe
bc5174b72168fc614245560fc0a0ba1de440fb5b59f56a66c19a6b40d5c4b3b3 *i386-linux.elf/upx-3.91
0e0f2a23c87a9f7a8ce2b9d53ea8478f40cfbc319228e5ce02ab5f5eff2727c5 *i386-linux.elf/upx-3.91
ef5e25c79d356e9ed0736f34dc5ee7a8f4c66d0c330b8d16672fac7d829b5a7c *i386-win32.pe/upx-3.91.exe
dfc6abff2d3417b9708b1232d5791a9232c6623dcedb9dcb59428b67bbf864e9 *m68k-atari.tos/upx-3.91.ttp
34d1faebe6a8f6228de4ec44f3df4111d103c1a4fab81ecc1147422a1538b37a *mipsel-linux.elf/upx-3.91
f5d1badd9bdeb0e5c9ad6bacec7c24963bd37fa8e7a36a2db8b3d8f957f16ae6 *powerpc-linux.elf/upx-3.91
141d33cb386ef9aee02c0be946777c8fa556a64965392a030207a2e07af89504 *mipsel-linux.elf/upx-3.91
f0c96dba224cafa2e1a3ffe92609c48235289337fac3761491bf2f0680017841 *powerpc-linux.elf/upx-3.91
"
expected_sha256sums__t140_compress_lzma_2_no_filter="\
7e890b2f684329dc036f913536dc61472721d73825a75892952cd363dc1ab7a4 *amd64-linux.elf/upx-3.91
4a44ced24eebf7083380f40077a0436dad4742a8c56d4ef92a29061ec056089e *amd64-linux.elf/upx-3.91
3af2a2346a252dfacefb6209725907b2947dc1ccf5e99af139608354f852507c *arm-wince.pe/upx-3.91.exe
2fcace545a64bc19e82a18ff16d8b5b106b4f6b3a8e4a318dec00c6a5308ec61 *armeb-linux.elf/upx-3.91
4d6dbb67cea5b89956bab304633de379ed4ad4dfa808217a0d5014efe5f047fc *armeb-linux.elf/upx-3.91
964fb400b0b4a2b1926ce7076610db8c3a8e41807fe030209af1615d43b6a020 *i386-dos32.djgpp2.coff/upx-3.91.exe
828f34977b65e1555688766a6dd20739a66be47ecf69119aaea5f5279ea0fd75 *i386-linux.elf/upx-3.91
91ef93aef322d72c94d867ea8e9413025340dda67e6f8f3acdc8569982009877 *i386-linux.elf/upx-3.91
171bde9f27a5571b524e9d7cdba6cefa142bb8a0b114c4d5294944ee5781e0bb *i386-win32.pe/upx-3.91.exe
8826c1f910007360ba6cec02c91bd7cdc87bce1ce27804ca728846b92d9086c9 *m68k-atari.tos/upx-3.91.ttp
2466d621b46a084718a50327bef8ac54ac961fd297a9d8cc747603cd255ac68e *mipsel-linux.elf/upx-3.91
b79c08d2ba96a669b207f8b09a9603df17fdda316f49159d2d30857d18c7ab85 *powerpc-linux.elf/upx-3.91
f34a9691c617178582ab8b8cc50d9ccce1c37cd6074f9e146459121b1cdbaff9 *mipsel-linux.elf/upx-3.91
85a97fbde61dcb34e6f32e9bd7dc13a74969f82baada2e1880777197b86dacd2 *powerpc-linux.elf/upx-3.91
"
expected_sha256sums__t150_compress_ucl_2_all_filters="\
2e8cb4e0af4c9620d7ad6de6df535f6be388a2275c5a5c70d6c074e8e15c3dea *amd64-linux.elf/upx-3.91
54eec7fef9605813e99452817b6d8fdd9726beb71985805d152262f55ce8aed4 *amd64-linux.elf/upx-3.91
dc7323e753ce62e6a1c22112f139953dbaa1e5268530479f8ad48e0c54062295 *arm-wince.pe/upx-3.91.exe
28bdf621be8b1e6d5c6df647232417d6b3eb3103f94fe5ed1cecb449099f170b *armeb-linux.elf/upx-3.91
a63e457b523ba78919a00c0d818f697ff51d005ea1b8108a4bc96afe26e721db *armeb-linux.elf/upx-3.91
8614d93ba30def6866b3be92ae5bdd5f294266e0fc4a26c078682917f127656d *i386-dos32.djgpp2.coff/upx-3.91.exe
7c33a5300d93079e6612229242584c80103a11826e78c0fcf6f8e5047d638c27 *i386-linux.elf/upx-3.91
a85707417a7ee7f81685272f460fde6cd3406cfe1457d656e337b1839d3cd3f2 *i386-linux.elf/upx-3.91
7c3d7398f63eb9e235992d2d8fd6de9e355f6f21621c45032a6ae6c9009067e6 *i386-win32.pe/upx-3.91.exe
25e9e84bf4e01350b362d088f8107d8228b4576bc47b6b718e9e742f7e4a5205 *m68k-atari.tos/upx-3.91.ttp
9a3a2af66cffe78d99ccc53ee83d9a05c7a047e4e98469c499d8b72549f6e9c9 *mipsel-linux.elf/upx-3.91
7323c6f928549a61f1ff705af523ce4b8b420d114f4abd1fa91dab33b0938329 *powerpc-linux.elf/upx-3.91
43d1d7d49b540aae1986d0cce90bd9ea7b6ee4e891f99f6a0b57c9e74db1f1f7 *mipsel-linux.elf/upx-3.91
794737f95430181e3abe03a5e4ba879230afcef47bbbd984def7b05854e3032a *powerpc-linux.elf/upx-3.91
"
expected_sha256sums__t160_compress_all_methods_1_no_filter="\
011ff89c098768e23b1bfbce85161d187c78eca6c1a6165bc22d26c0e6b111b4 *amd64-linux.elf/upx-3.91
47b36080ed29a5f5edcfcd693ebf5b2cf56e9cf0049b9a96d7ec825197edeb95 *amd64-linux.elf/upx-3.91
1c9c618741739404f40d198d2fc77010539589379bf260502af9f10f1ec0d05b *arm-wince.pe/upx-3.91.exe
9650cd1ca32414fc25a85999dde2e927239f2158a9d49e9e99ab88ed1ecd2cef *armeb-linux.elf/upx-3.91
34412ce06f8ec8e0ff494803374caef537afeede157f705086cb5a7ec8c32bf3 *armeb-linux.elf/upx-3.91
863bbf7f3cf41296987b085a4db8acba372e3d65d8d9c656f9a7276f2e7aa4d3 *i386-dos32.djgpp2.coff/upx-3.91.exe
5f4eb68842b46b9a1c138e5330e588b493d2927e27130be245f6d7aded82ef15 *i386-linux.elf/upx-3.91
80c07fc48353d7124332467d10d55fc102cc3b8ab87c7fb24e6356614377bf6b *i386-linux.elf/upx-3.91
4c73a38e81fe12f36dc37e514f8580c12bdf5d8cb92e9a07b7070db291a2f7eb *i386-win32.pe/upx-3.91.exe
0f902defbce3c9a8ea08910ff2ac62b9f06e7ceed0570501cb3b6287bfd6d797 *m68k-atari.tos/upx-3.91.ttp
dfe91501e4cb0b9e4686ffa9aa1e0e9bf1ea8b4c363fbc2cd35713d11267bcc5 *mipsel-linux.elf/upx-3.91
a25a6932e539861cd28eaa0b7b9192c5f4de826d4552d9ef0206565adedc2da5 *powerpc-linux.elf/upx-3.91
8c88676582049d0add7245f3f137f4716ac122c27b03032922b48bd405a3454a *mipsel-linux.elf/upx-3.91
f9a432e027c4bb8c4c9dbb6855a5fbd0af170506ba2bf794fe800a45c3191ce6 *powerpc-linux.elf/upx-3.91
"
expected_sha256sums__t170_compress_all_methods_no_lzma_5_no_filter="\
1ffc826e136538484c697b784bd692f9da101e4f7e76de111390fce5bab76b2b *amd64-linux.elf/upx-3.91
b374a579fc728a6e3a914f2f11f00733ca279fdafe57b07a4f2046175734cf59 *amd64-linux.elf/upx-3.91
66653a91c355a1ad1ab7b07c6c20b2d2899d0f42078683d0f4d540df476b1afb *arm-wince.pe/upx-3.91.exe
6cbf1744a7bbc16fbf15c197d9d6aaa3599ce3f033bda143e51812ecfa0d0906 *armeb-linux.elf/upx-3.91
9b979047e8849e30c38632f20a5f06a74240cf66e589897470676f8326119ee4 *armeb-linux.elf/upx-3.91
490a196fbba4a8f21bfb9ac2a3b92a6dc7e287f255a3ab987f7d29d5a75d8db4 *i386-dos32.djgpp2.coff/upx-3.91.exe
a0630df230ec301d1919d4fb15c66e7a403d17a03dfe4c79cd7835e2eb0d1b19 *i386-linux.elf/upx-3.91
12f7fc10d0410ccf90f2963aed6bcb24aa7b4a289d52fd7517f2be59627aaca5 *i386-linux.elf/upx-3.91
14b192b5419ca0ec2b3f238dc6ed9c17596e82ff2674a299d4b0a76d118a73de *i386-win32.pe/upx-3.91.exe
2eb756cf3c7e4f80fea379a267071c981f3ab1fbb3eaab7057ca18a2b400fb8f *m68k-atari.tos/upx-3.91.ttp
4db8801f9b71e42949ebac0d12b01314b8411ed416d72dd60765da912acce32c *mipsel-linux.elf/upx-3.91
6624628c98403eb74de906a4589f2a9a0f93c3e743d742ee71eeace202736778 *powerpc-linux.elf/upx-3.91
0e620b76b639eb8bf5dac62b493ad9293b179f9653bcca062d03e736a2c9c26e *mipsel-linux.elf/upx-3.91
52ad6d57fae67e41198484c0a80ddb54cdd53169baf3b841aa6a99b89d5f8a03 *powerpc-linux.elf/upx-3.91
"
########## end .sha256sums.recreate

View File

@ -77,20 +77,20 @@ up4(unsigned x)
return ~3u & (3+ x);
}
static unsigned
static off_t
fpad4(OutputFile *fo)
{
unsigned len = fo->st_size();
off_t len = fo->st_size();
unsigned d = 3u & (0 - len);
unsigned zero = 0;
fo->write(&zero, d);
return d + len;
}
static unsigned
static off_t
fpad8(OutputFile *fo)
{
unsigned len = fo->st_size();
off_t len = fo->st_size();
unsigned d = 7u & (0 - len);
upx_uint64_t zero = 0;
fo->write(&zero, d);
@ -293,7 +293,7 @@ PackLinuxElf32::PackLinuxElf32help1(InputFile *f)
}
}
void PackLinuxElf::pack3(OutputFile *fo, Filter &ft)
off_t PackLinuxElf::pack3(OutputFile *fo, Filter &ft) // return length of output
{
unsigned disp;
unsigned const zero = 0;
@ -332,13 +332,15 @@ void PackLinuxElf::pack3(OutputFile *fo, Filter &ft)
set_te16(&linfo.l_lsize, up4( // MATCH03: up4
get_te16(&linfo.l_lsize) + len - sz_pack2a));
len = fpad4(fo); // MATCH03
ACC_UNUSED(len);
return fpad4(fo); // MATCH03
}
void PackLinuxElf32::pack3(OutputFile *fo, Filter &ft)
off_t PackLinuxElf32::pack3(OutputFile *fo, Filter &ft)
{
super::pack3(fo, ft); // loader follows compressed PT_LOADs
off_t flen = super::pack3(fo, ft); // loader follows compressed PT_LOADs
unsigned v_hole = sz_pack2 + lsize;
set_te32(&elfout.phdr[0].p_filesz, v_hole);
set_te32(&elfout.phdr[0].p_memsz, v_hole);
// Then compressed gaps (including debuginfo.)
unsigned total_in = 0, total_out = 0;
for (unsigned k = 0; k < e_phnum; ++k) {
@ -354,10 +356,16 @@ void PackLinuxElf32::pack3(OutputFile *fo, Filter &ft)
b_info hdr; memset(&hdr, 0, sizeof(hdr));
set_le32(&hdr.sz_cpr, UPX_MAGIC_LE32);
fo->write(&hdr, sizeof(hdr));
fpad4(fo);
flen = fpad4(fo);
set_te32(&elfout.phdr[0].p_filesz, sz_pack2 + lsize);
set_te32(&elfout.phdr[0].p_memsz, sz_pack2 + lsize);
if (0==xct_off) { // not shared library; adjust PT_LOAD
v_hole = page_mask & (~page_mask + v_hole + get_te32(&elfout.phdr[0].p_vaddr));
set_te32(&elfout.phdr[1].p_vaddr, v_hole);
elfout.phdr[1].p_paddr = elfout.phdr[1].p_vaddr;
elfout.phdr[1].p_offset = 0;
set_te32(&elfout.phdr[1].p_memsz, getbrk(phdri, e_phnum) - v_hole);
set_te32(&elfout.phdr[1].p_flags, Elf32_Phdr::PF_W|Elf32_Phdr::PF_R);
}
if (0!=xct_off) { // shared library
Elf32_Phdr *phdr = phdri;
unsigned off = fo->st_size();
@ -419,17 +427,21 @@ void PackLinuxElf32::pack3(OutputFile *fo, Filter &ft)
va_init |= (Elf32_Ehdr::EM_ARM==e_machine); // THUMB mode
unsigned word; set_te32(&word, va_init);
fo->rewrite(&word, sizeof(word));
fo->seek(0, SEEK_END);
flen = fo->seek(0, SEEK_END);
}
ehdri.e_shnum = 0;
ehdri.e_shoff = 0;
ehdri.e_shstrndx = 0;
}
return flen;
}
void PackLinuxElf64::pack3(OutputFile *fo, Filter &ft)
off_t PackLinuxElf64::pack3(OutputFile *fo, Filter &ft)
{
super::pack3(fo, ft); // loader follows compressed PT_LOADs
unsigned flen = super::pack3(fo, ft); // loader follows compressed PT_LOADs
unsigned v_hole = sz_pack2 + lsize;
set_te64(&elfout.phdr[0].p_filesz, v_hole);
set_te64(&elfout.phdr[0].p_memsz, v_hole);
// Then compressed gaps (including debuginfo.)
unsigned total_in = 0, total_out = 0;
for (unsigned k = 0; k < e_phnum; ++k) {
@ -445,10 +457,30 @@ void PackLinuxElf64::pack3(OutputFile *fo, Filter &ft)
b_info hdr; memset(&hdr, 0, sizeof(hdr));
set_le32(&hdr.sz_cpr, UPX_MAGIC_LE32);
fo->write(&hdr, sizeof(hdr));
fpad4(fo);
flen = fpad4(fo);
set_te64(&elfout.phdr[0].p_filesz, sz_pack2 + lsize);
set_te64(&elfout.phdr[0].p_memsz, sz_pack2 + lsize);
if (0==xct_off) { // not shared library; adjust PT_LOAD
// On amd64: (2<<20)==.p_align, but Linux uses 4KiB pages.
// This allows [vvar], [vdso], etc to sneak into the gap
// between end_text and data, which we wish to prevent
// because the expanded program will use that space.
// So: pretend 4KiB pages.
upx_uint64_t const pm = (
Elf64_Ehdr::EM_X86_64 ==e_machine
|| Elf64_Ehdr::EM_AARCH64==e_machine
)
? ((~(upx_uint64_t)0)<<12)
: page_mask;
v_hole = pm & (~pm + v_hole + get_te64(&elfout.phdr[0].p_vaddr));
set_te64(&elfout.phdr[1].p_vaddr, v_hole);
set_te64(&elfout.phdr[1].p_align, -pm);
elfout.phdr[1].p_paddr = elfout.phdr[1].p_vaddr;
elfout.phdr[1].p_offset = 0;
set_te64(&elfout.phdr[1].p_memsz, getbrk(phdri, e_phnum) - v_hole);
set_te32(&elfout.phdr[1].p_flags, Elf32_Phdr::PF_W|Elf32_Phdr::PF_R);
}
if (0!=xct_off) { // shared library
Elf64_Phdr *phdr = phdri;
unsigned off = fo->st_size();
@ -517,12 +549,13 @@ void PackLinuxElf64::pack3(OutputFile *fo, Filter &ft)
fo->seek(off_init, SEEK_SET);
upx_uint64_t word; set_te64(&word, va_init);
fo->rewrite(&word, sizeof(word));
fo->seek(0, SEEK_END);
flen = fo->seek(0, SEEK_END);
}
ehdri.e_shnum = 0;
ehdri.e_shoff = 0;
ehdri.e_shstrndx = 0;
}
return flen;
}
void
@ -564,44 +597,6 @@ void PackLinuxElf::defineSymbols(Filter const *)
void PackLinuxElf32::defineSymbols(Filter const *ft)
{
PackLinuxElf::defineSymbols(ft);
// We want to know if compressed data, plus stub, plus a couple pages,
// will fit below the uncompressed program in memory. But we don't
// know the final total compressed size yet, so use the uncompressed
// size (total over all PT_LOAD32) as an upper bound.
unsigned len = 0; // XXX: 4GB
upx_uint32_t lo_va_user = ~0u; // infinity
for (int j= e_phnum; --j>=0; ) {
if (PT_LOAD32 == get_te32(&phdri[j].p_type)) {
len += (unsigned)get_te32(&phdri[j].p_filesz);
upx_uint32_t const va = get_te32(&phdri[j].p_vaddr);
if (va < lo_va_user) {
lo_va_user = va;
}
}
}
lsize = /*getLoaderSize()*/ 64 * 1024; // XXX: upper bound; avoid circularity
upx_uint32_t lo_va_stub = get_te32(&elfout.phdr[0].p_vaddr);
upx_uint32_t adrm;
len += (7&-lsize) + lsize;
const upx_uint32_t my_page_size = 4096u;
const upx_uint32_t my_page_mask = 0u - my_page_size;
is_big = (lo_va_user < (lo_va_stub + len + 2 * my_page_size));
if (is_pie || (is_big /*&& ehdri.ET_EXEC==get_te16(&ehdri.e_type)*/)) {
// .e_entry is set later by PackLinuxElf32::updateLoader
set_te32( &elfout.ehdr.e_entry,
get_te32(&elfout.ehdr.e_entry) + lo_va_user - lo_va_stub);
set_te32(&elfout.phdr[0].p_vaddr, lo_va_user);
set_te32(&elfout.phdr[0].p_paddr, lo_va_user);
lo_va_stub = lo_va_user;
adrm = getbrk(phdri, e_phnum) - lo_va_user;
}
else {
adrm = len;
}
adrm = my_page_mask & (~my_page_mask + adrm); // round up to page boundary
//linker->dumpSymbols(); // debug
}
void PackLinuxElf64::defineSymbols(Filter const *ft)
@ -1019,13 +1014,6 @@ void PackLinuxElf32x86::addStubEntrySections(Filter const *ft)
addLoader("IDENTSTR", NULL);
addLoader("LEXEC020", NULL);
if (Elf32_Ehdr::ET_DYN==get_te16(&ehdri.e_type)) {
addLoader("LEXECDYN", NULL);
}
else {
addLoader("LEXECEXE", NULL);
}
addLoader("LEXEC025", NULL);
addLoader("FOLDEXEC", NULL);
}
@ -1184,54 +1172,6 @@ void
PackLinuxElf64amd::defineSymbols(Filter const *ft)
{
PackLinuxElf64::defineSymbols(ft);
// We want to know if compressed data, plus stub, plus a couple pages,
// will fit below the uncompressed program in memory. But we don't
// know the final total compressed size yet, so use the uncompressed
// size (total over all PT_LOAD64) as an upper bound.
unsigned len = 0; // XXX: 4GB
upx_uint64_t lo_va_user = ~0ull; // infinity
for (int j= e_phnum; --j>=0; ) {
if (PT_LOAD64 == get_te32(&phdri[j].p_type)) {
len += (unsigned)get_te64(&phdri[j].p_filesz);
upx_uint64_t const va = get_te64(&phdri[j].p_vaddr);
if (va < lo_va_user) {
lo_va_user = va;
}
}
}
lsize = /*getLoaderSize()*/ 64 * 1024; // XXX: upper bound; avoid circularity
upx_uint64_t lo_va_stub = get_te64(&elfout.phdr[0].p_vaddr);
upx_uint64_t adrm;
unsigned lenm;
unsigned lenu;
len += (7&-lsize) + lsize;
const upx_uint64_t my_page_size = 4096u;
const upx_uint64_t my_page_mask = 0u - my_page_size;
is_big = (lo_va_user < (lo_va_stub + len + 2 * my_page_size));
if (is_pie || (is_big /*&& ehdri.ET_EXEC==get_te16(&ehdri.e_type)*/)) {
// .e_entry is set later by PackLinuxElf64::updateLoader
set_te64( &elfout.ehdr.e_entry,
get_te64(&elfout.ehdr.e_entry) + lo_va_user - lo_va_stub);
set_te64(&elfout.phdr[0].p_vaddr, lo_va_user);
set_te64(&elfout.phdr[0].p_paddr, lo_va_user);
lo_va_stub = lo_va_user;
adrm = getbrk(phdri, e_phnum) - lo_va_user;
lenm = my_page_size + len;
lenu = my_page_size + len;
}
else {
adrm = len;
lenm = my_page_size;
lenu = my_page_size + len;
}
adrm = my_page_mask & (~my_page_mask + adrm); // round up to page boundary
linker->defineSymbol("LENU", lenu); // len for unmap
linker->defineSymbol("LENM", lenm); // len for map
linker->defineSymbol("ADRM", adrm); // offset from &Elf64_Ehdr
//linker->dumpSymbols(); // debug
}
static const
@ -2097,15 +2037,27 @@ PackLinuxElf32::generateElfHdr(
// Info for OS kernel to set the brk()
if (brka) {
// linux-2.6.14 binfmt_elf.c: SIGKILL if (0==.p_memsz) on a page boundary
unsigned const brkb = brka | ((0==(~page_mask & brka)) ? 0x20 : 0);
upx_uint32_t lo_va_user = ~0u; // infinity
upx_uint32_t memsz(0);
for (int j= e_phnum; --j>=0; ) {
if (PT_LOAD32 == get_te32(&phdri[j].p_type)) {
upx_uint32_t const vaddr = get_te32(&phdri[j].p_vaddr);
lo_va_user = umin(lo_va_user, vaddr);
if (vaddr == lo_va_user) {
memsz = get_te32(&phdri[j].p_memsz);
}
}
}
set_te32(&h2->phdr[0].p_paddr, lo_va_user);
set_te32(&h2->phdr[0].p_vaddr, lo_va_user);
unsigned const brkb = page_mask & (~page_mask +
get_te32(&h2->phdr[0].p_vaddr) + memsz);
set_te32(&h2->phdr[1].p_type, PT_LOAD32); // be sure
set_te32(&h2->phdr[1].p_offset, ~page_mask & brkb);
h2->phdr[1].p_offset = 0;
set_te32(&h2->phdr[1].p_vaddr, brkb);
set_te32(&h2->phdr[1].p_paddr, brkb);
h2->phdr[1].p_filesz = 0;
h2->phdr[1].p_memsz = 0;
if (ARM_is_QNX())
set_te32(&h2->phdr[1].p_memsz, 1); // 0==.p_memsz invalid on QNX 6.3.0
set_te32(&h2->phdr[1].p_memsz, brka - brkb);
set_te32(&h2->phdr[1].p_flags, Elf32_Phdr::PF_R | Elf32_Phdr::PF_W);
}
if (ph.format==getFormat()) {
@ -2287,7 +2239,8 @@ PackOpenBSDElf32x86::generateElfHdr(
set_te32(&h3->phdr[1].p_vaddr, brkb);
set_te32(&h3->phdr[1].p_paddr, brkb);
h3->phdr[1].p_filesz = 0;
h3->phdr[1].p_memsz = 0;
// Too many kernels have bugs when 0==.p_memsz
set_te32(&h3->phdr[1].p_memsz, 1);
set_te32(&h3->phdr[1].p_flags, Elf32_Phdr::PF_R | Elf32_Phdr::PF_W);
if (ph.format==getFormat()) {
@ -2357,25 +2310,20 @@ PackLinuxElf64::generateElfHdr(
// Info for OS kernel to set the brk()
if (brka) {
// linux-2.6.14 binfmt_elf.c: SIGKILL if (0==.p_memsz) on a page boundary
unsigned const brkb = brka | ((0==(~page_mask & brka)) ? 0x20 : 0);
set_te32(&h2->phdr[1].p_type, PT_LOAD64); // be sure
// Invoking by ld-linux-x86_64-2.21 complains if (filesize < .p_offset),
// which can happen with good compression of a stripped executable
// and large .p_align. However (0==.p_filesz) so ld-linux has a bug.
// Try to evade the bug by reducing .p_align. The alignment is forced
// anyway by phdr[0].p_align and constant offset from phdr[0].p_vaddr.
// However, somebody might complain because (.p_vaddr - .p_offset)
// is divisible only by phdr[1].p_align, and not by phdr[0].p_align.
if (get_te16(&elfout.ehdr.e_machine) != Elf64_Ehdr::EM_PPC64) {
set_te64(&h2->phdr[1].p_align, 0x1000);
upx_uint64_t lo_va_user(~(upx_uint64_t)0); // infinity
for (int j= e_phnum; --j>=0; ) {
if (PT_LOAD64 == get_te32(&phdri[j].p_type)) {
upx_uint64_t const vaddr = get_te64(&phdri[j].p_vaddr);
lo_va_user = umin64(lo_va_user, vaddr);
}
}
set_te64(&h2->phdr[1].p_offset, (-1+ get_te64(&h2->phdr[1].p_align)) & brkb);
set_te64(&h2->phdr[1].p_vaddr, brkb);
set_te64(&h2->phdr[1].p_paddr, brkb);
set_te64(&h2->phdr[0].p_paddr, lo_va_user);
set_te64(&h2->phdr[0].p_vaddr, lo_va_user);
set_te32(&h2->phdr[1].p_type, PT_LOAD64); // be sure
h2->phdr[1].p_offset = 0;
h2->phdr[1].p_filesz = 0;
h2->phdr[1].p_memsz = 0;
// .p_memsz = brka; temporary until sz_pack2
set_te64(&h2->phdr[1].p_memsz, brka);
set_te32(&h2->phdr[1].p_flags, Elf64_Phdr::PF_R | Elf64_Phdr::PF_W);
}
if (ph.format==getFormat()) {
@ -3021,35 +2969,6 @@ void PackLinuxElf32::ARM_defineSymbols(Filter const *ft)
{
PackLinuxElf32::defineSymbols(ft);
lsize = /*getLoaderSize()*/ 4 * 1024; // upper bound; avoid circularity
unsigned lo_va_user = ~0u; // infinity
for (int j= e_phnum; --j>=0; ) {
if (PT_LOAD32 == get_te32(&phdri[j].p_type)) {
unsigned const va = get_te32(&phdri[j].p_vaddr);
if (va < lo_va_user) {
lo_va_user = va;
}
}
}
unsigned lo_va_stub = get_te32(&elfout.phdr[0].p_vaddr);
unsigned adrm = 0; // init: pacify c++-analyzer
is_big = true; // kernel disallows mapping below 0x8000.
if (is_big) {
set_te32( &elfout.ehdr.e_entry, linker->getSymbolOffset("_start") +
get_te32(&elfout.ehdr.e_entry) + lo_va_user - lo_va_stub);
set_te32(&elfout.phdr[0].p_vaddr, lo_va_user);
set_te32(&elfout.phdr[0].p_paddr, lo_va_user);
lo_va_stub = lo_va_user;
adrm = getbrk(phdri, e_phnum);
}
adrm = page_mask & (~page_mask + adrm); // round up to page boundary
adrm += page_size; // Try: hole so that kernel does not extend the brk(0)
linker->defineSymbol("ADRM", adrm); // addr for map
linker->defineSymbol("CPR0", 4+ linker->getSymbolOffset("cpr0"));
linker->defineSymbol("LENF", 4+ linker->getSymbolOffset("end_decompress"));
#define MAP_PRIVATE 2 /* UNIX standard */
#define MAP_FIXED 0x10 /* UNIX standard */
#define MAP_ANONYMOUS 0x20 /* UNIX standard */
@ -3074,35 +2993,6 @@ void PackLinuxElf64arm::defineSymbols(Filter const *ft)
{
PackLinuxElf64::defineSymbols(ft);
lsize = /*getLoaderSize()*/ 4 * 1024; // upper bound; avoid circularity
upx_uint64_t lo_va_user = ~0ul; // infinity
for (int j= e_phnum; --j>=0; ) {
if (PT_LOAD64 == get_te32(&phdri[j].p_type)) {
upx_uint64_t const va = get_te64(&phdri[j].p_vaddr);
if (va < lo_va_user) {
lo_va_user = va;
}
}
}
upx_uint64_t lo_va_stub = get_te64(&elfout.phdr[0].p_vaddr);
upx_uint64_t adrm = 0; // init: pacify c++-analyzer
is_big = true; // kernel disallows mapping below 0x8000.
if (is_big) {
set_te64( &elfout.ehdr.e_entry, linker->getSymbolOffset("_start") +
get_te64(&elfout.ehdr.e_entry) + lo_va_user - lo_va_stub);
set_te64(&elfout.phdr[0].p_vaddr, lo_va_user);
set_te64(&elfout.phdr[0].p_paddr, lo_va_user);
lo_va_stub = lo_va_user;
adrm = getbrk(phdri, e_phnum);
}
adrm = page_mask & (~page_mask + adrm); // round up to page boundary
adrm += page_size; // Try: hole so that kernel does not extend the brk(0)
linker->defineSymbol("ADRM", adrm); // addr for map
linker->defineSymbol("CPR0", 4+ linker->getSymbolOffset("cpr0"));
linker->defineSymbol("LENF", 4+ linker->getSymbolOffset("end_decompress"));
#define MAP_PRIVATE 2 /* UNIX standard */
#define MAP_FIXED 0x10 /* UNIX standard */
#define MAP_ANONYMOUS 0x20 /* UNIX standard */
@ -3116,133 +3006,11 @@ void PackLinuxElf64arm::defineSymbols(Filter const *ft)
void PackLinuxElf32mipseb::defineSymbols(Filter const *ft)
{
PackLinuxElf32::defineSymbols(ft);
unsigned const hlen = sz_elf_hdrs + sizeof(l_info) + sizeof(p_info);
// We want to know if compressed data, plus stub, plus a couple pages,
// will fit below the uncompressed program in memory. But we don't
// know the final total compressed size yet, so use the uncompressed
// size (total over all PT_LOAD32) as an upper bound.
unsigned len = 0;
unsigned lo_va_user = ~0u; // infinity
for (int j= e_phnum; --j>=0; ) {
if (PT_LOAD32 == get_te32(&phdri[j].p_type)) {
len += (unsigned)get_te32(&phdri[j].p_filesz);
unsigned const va = get_te32(&phdri[j].p_vaddr);
if (va < lo_va_user) {
lo_va_user = va;
}
}
}
lsize = /*getLoaderSize()*/ 64 * 1024; // XXX: upper bound; avoid circularity
unsigned lo_va_stub = get_te32(&elfout.phdr[0].p_vaddr);
unsigned adrc;
unsigned adrm;
unsigned adru;
unsigned adrx;
unsigned lenm;
unsigned lenu;
len += (7&-lsize) + lsize;
is_big = (lo_va_user < (lo_va_stub + len + 2*page_size));
if (is_big) {
set_te32( &elfout.ehdr.e_entry,
get_te32(&elfout.ehdr.e_entry) + lo_va_user - lo_va_stub);
set_te32(&elfout.phdr[0].p_vaddr, lo_va_user);
set_te32(&elfout.phdr[0].p_paddr, lo_va_user);
lo_va_stub = lo_va_user;
adrc = lo_va_stub;
adrm = getbrk(phdri, e_phnum);
adru = page_mask & (~page_mask + adrm); // round up to page boundary
adrx = adru + hlen;
lenm = page_size + len;
lenu = page_size + len;
}
else {
adrm = lo_va_stub + len;
adrc = adrm;
adru = lo_va_stub;
adrx = lo_va_stub + hlen;
lenm = page_size;
lenu = page_size + len;
}
adrm = page_mask & (~page_mask + adrm); // round up to page boundary
adrc = page_mask & (~page_mask + adrc); // round up to page boundary
linker->defineSymbol("ADRX", adrx); // compressed input for eXpansion
linker->defineSymbol("ADRC", adrc); // addr for copy
linker->defineSymbol("LENU", lenu); // len for unmap
linker->defineSymbol("ADRU", adru); // addr for unmap
linker->defineSymbol("LENM", lenm); // len for map
linker->defineSymbol("ADRM", adrm); // addr for map
//linker->dumpSymbols(); // debug
}
void PackLinuxElf32mipsel::defineSymbols(Filter const *ft)
{
PackLinuxElf32::defineSymbols(ft);
unsigned const hlen = sz_elf_hdrs + sizeof(l_info) + sizeof(p_info);
// We want to know if compressed data, plus stub, plus a couple pages,
// will fit below the uncompressed program in memory. But we don't
// know the final total compressed size yet, so use the uncompressed
// size (total over all PT_LOAD32) as an upper bound.
unsigned len = 0;
unsigned lo_va_user = ~0u; // infinity
for (int j= e_phnum; --j>=0; ) {
if (PT_LOAD32 == get_te32(&phdri[j].p_type)) {
len += (unsigned)get_te32(&phdri[j].p_filesz);
unsigned const va = get_te32(&phdri[j].p_vaddr);
if (va < lo_va_user) {
lo_va_user = va;
}
}
}
lsize = /*getLoaderSize()*/ 64 * 1024; // XXX: upper bound; avoid circularity
unsigned lo_va_stub = get_te32(&elfout.phdr[0].p_vaddr);
unsigned adrc;
unsigned adrm;
unsigned adru;
unsigned adrx;
unsigned lenm;
unsigned lenu;
len += (7&-lsize) + lsize;
is_big = (lo_va_user < (lo_va_stub + len + 2*page_size));
if (is_big) {
set_te32( &elfout.ehdr.e_entry,
get_te32(&elfout.ehdr.e_entry) + lo_va_user - lo_va_stub);
set_te32(&elfout.phdr[0].p_vaddr, lo_va_user);
set_te32(&elfout.phdr[0].p_paddr, lo_va_user);
lo_va_stub = lo_va_user;
adrc = lo_va_stub;
adrm = getbrk(phdri, e_phnum);
adru = page_mask & (~page_mask + adrm); // round up to page boundary
adrx = adru + hlen;
lenm = page_size + len;
lenu = page_size + len;
}
else {
adrm = lo_va_stub + len;
adrc = adrm;
adru = lo_va_stub;
adrx = lo_va_stub + hlen;
lenm = 2*page_size;
lenu = 2*page_size + len;
}
adrm = page_mask & (~page_mask + adrm); // round up to page boundary
adrc = page_mask & (~page_mask + adrc); // round up to page boundary
linker->defineSymbol("ADRX", adrx); // compressed input for eXpansion
linker->defineSymbol("ADRC", adrc); // addr for copy
linker->defineSymbol("LENU", lenu); // len for unmap
linker->defineSymbol("ADRU", adru); // addr for unmap
linker->defineSymbol("LENM", lenm); // len for map
linker->defineSymbol("ADRM", adrm); // addr for map
//linker->dumpSymbols(); // debug
}
void PackLinuxElf32::pack4(OutputFile *fo, Filter &ft)

View File

@ -51,7 +51,7 @@ protected:
virtual void pack1(OutputFile *, Filter &) = 0; // generate executable header
virtual int pack2(OutputFile *, Filter &) = 0; // append compressed data
virtual void pack3(OutputFile *, Filter &) = 0; // append loader
virtual off_t pack3(OutputFile *, Filter &) = 0; // append loader
//virtual void pack4(OutputFile *, Filter &) = 0; // append pack header
virtual void generateElfHdr(
@ -119,7 +119,7 @@ protected:
virtual void pack1(OutputFile *, Filter &); // generate executable header
virtual int pack2(OutputFile *, Filter &); // append compressed data
virtual void pack3(OutputFile *, Filter &); // append loader
virtual off_t pack3(OutputFile *, Filter &); // append loader
virtual void pack4(OutputFile *, Filter &); // append pack header
virtual void unpack(OutputFile *fo);
@ -243,7 +243,7 @@ protected:
virtual void pack1(OutputFile *, Filter &); // generate executable header
virtual int pack2(OutputFile *, Filter &); // append compressed data
virtual void pack3(OutputFile *, Filter &); // append loader
virtual off_t pack3(OutputFile *, Filter &); // append loader
virtual void pack4(OutputFile *, Filter &); // append pack header
virtual void unpack(OutputFile *fo);
@ -404,7 +404,6 @@ public:
virtual const int *getFilters() const;
protected:
virtual void pack1(OutputFile *, Filter &); // generate executable header
//virtual void pack3(OutputFile *, Filter &); // append loader
virtual void buildLoader(const Filter *);
virtual Linker* newLinker() const;
virtual void defineSymbols(Filter const *);
@ -422,7 +421,6 @@ public:
virtual const int *getFilters() const;
protected:
virtual void pack1(OutputFile *, Filter &); // generate executable header
//virtual void pack3(OutputFile *, Filter &); // append loader
virtual void buildLoader(const Filter *);
virtual Linker* newLinker() const;
virtual void defineSymbols(Filter const *);

View File

@ -135,7 +135,7 @@ int PackLinuxElf32x86interp::pack2(OutputFile *fo, Filter &ft)
#undef PAGE_MASK
#define PAGE_MASK (~0u<<12)
void PackLinuxElf32x86interp::pack3(OutputFile *fo, Filter &/*ft*/)
off_t PackLinuxElf32x86interp::pack3(OutputFile *fo, Filter &/*ft*/)
{
unsigned base = getbase(phdri, ehdri.e_phnum);
unsigned sz = PAGE_MASK & (~PAGE_MASK + elfout.phdr[0].p_filesz);
@ -191,6 +191,7 @@ void PackLinuxElf32x86interp::pack3(OutputFile *fo, Filter &/*ft*/)
else {
updateLoader(fo);
}
return fo->getBytesWritten();
}

View File

@ -55,7 +55,7 @@ public:
protected:
virtual void pack1(OutputFile *, Filter &); // generate executable header
virtual int pack2(OutputFile *, Filter &); // append compressed data
virtual void pack3(OutputFile *, Filter &); // build loader
virtual off_t pack3(OutputFile *, Filter &); // build loader
};

View File

@ -161,11 +161,10 @@ PackLinuxI386sh::pack1(OutputFile *fo, Filter &)
generateElfHdr(fo, stub_i386_linux_elf_shell_fold, 0x08048000);
}
void
off_t
PackLinuxI386sh::pack3(OutputFile *fo, Filter &ft)
{
super::pack3(fo,ft);
elfout.phdr[0].p_filesz = fo->getBytesWritten();
return elfout.phdr[0].p_filesz = super::pack3(fo,ft);
}
/* vim:set ts=4 sw=4 et: */

View File

@ -52,7 +52,7 @@ public:
virtual void buildLoader(const Filter *);
virtual void pack1(OutputFile *fo, Filter &ft);
virtual void pack3(OutputFile *fo, Filter &ft);
virtual off_t pack3(OutputFile *fo, Filter &ft);
virtual bool canPack();
// virtual void unpack(OutputFile *fo) { super::unpack(fo); }

View File

@ -1015,7 +1015,7 @@ void PackDylibPPC64LE::pack4(OutputFile *fo, Filter &ft) // append PackHeader
}
template <class T>
void PackMachBase<T>::pack3(OutputFile *fo, Filter &ft) // append loader
off_t PackMachBase<T>::pack3(OutputFile *fo, Filter &ft) // append loader
{
TE32 disp;
upx_uint64_t const zero = 0;
@ -1038,14 +1038,14 @@ void PackMachBase<T>::pack3(OutputFile *fo, Filter &ft) // append loader
threado_setPC(entryVMA= len + segTEXT.vmaddr); /* entry address */
super::pack3(fo, ft);
fo->write(&zero, 7& (0u-len)); // FIXME: align(4) ?
segTEXT.vmsize = len = fo->getBytesWritten();
return segTEXT.vmsize = len = fo->getBytesWritten();
}
void PackDylibI386::pack3(OutputFile *fo, Filter &ft) // append loader
off_t PackDylibI386::pack3(OutputFile *fo, Filter &ft) // append loader
{
TE32 disp;
upx_uint32_t const zero = 0;
unsigned len = fo->getBytesWritten();
off_t len = fo->getBytesWritten();
fo->write(&zero, 3& (0u-len));
len += (3& (0u-len)) + 4*sizeof(disp);
@ -1060,16 +1060,17 @@ void PackDylibI386::pack3(OutputFile *fo, Filter &ft) // append loader
unsigned const save_sz_mach_headers(sz_mach_headers);
sz_mach_headers = 0;
super::pack3(fo, ft);
len = super::pack3(fo, ft);
sz_mach_headers = save_sz_mach_headers;
return len;
}
void PackDylibAMD64::pack3(OutputFile *fo, Filter &ft) // append loader
off_t PackDylibAMD64::pack3(OutputFile *fo, Filter &ft) // append loader
{
TE32 disp;
TE64 disp64;
upx_uint64_t const zero = 0;
unsigned len = fo->getBytesWritten();
off_t len = fo->getBytesWritten();
fo->write(&zero, 7& (0u-len));
len += (7& (0u-len)) + sizeof(disp64) + 4*sizeof(disp);
@ -1087,15 +1088,16 @@ void PackDylibAMD64::pack3(OutputFile *fo, Filter &ft) // append loader
unsigned const save_sz_mach_headers(sz_mach_headers);
sz_mach_headers = 0;
super::pack3(fo, ft);
len = super::pack3(fo, ft);
sz_mach_headers = save_sz_mach_headers;
return len;
}
void PackDylibPPC32::pack3(OutputFile *fo, Filter &ft) // append loader
off_t PackDylibPPC32::pack3(OutputFile *fo, Filter &ft) // append loader
{
TE32 disp;
upx_uint32_t const zero = 0;
unsigned len = fo->getBytesWritten();
off_t len = fo->getBytesWritten();
fo->write(&zero, 3& (0u-len));
len += (3& (0u-len)) + 4*sizeof(disp);
@ -1110,15 +1112,16 @@ void PackDylibPPC32::pack3(OutputFile *fo, Filter &ft) // append loader
unsigned const save_sz_mach_headers(sz_mach_headers);
sz_mach_headers = 0;
super::pack3(fo, ft);
len = super::pack3(fo, ft);
sz_mach_headers = save_sz_mach_headers;
return len;
}
void PackDylibPPC64LE::pack3(OutputFile *fo, Filter &ft) // append loader
off_t PackDylibPPC64LE::pack3(OutputFile *fo, Filter &ft) // append loader
{
TE64 disp;
upx_uint64_t const zero = 0;
unsigned len = fo->getBytesWritten();
off_t len = fo->getBytesWritten();
fo->write(&zero, 3& (0u-len));
len += (3& (0u-len)) + 4*sizeof(disp);
@ -1133,8 +1136,9 @@ void PackDylibPPC64LE::pack3(OutputFile *fo, Filter &ft) // append loader
unsigned const save_sz_mach_headers(sz_mach_headers);
sz_mach_headers = 0;
super::pack3(fo, ft);
len = super::pack3(fo, ft);
sz_mach_headers = save_sz_mach_headers;
return len;
}
// Determine length of gap between PT_LOAD phdri[k] and closest PT_LOAD

View File

@ -764,7 +764,7 @@ public:
// called by the generic pack()
virtual void pack1(OutputFile *, Filter &); // generate executable header
virtual int pack2(OutputFile *, Filter &); // append compressed data
virtual void pack3(OutputFile *, Filter &) /*= 0*/; // append loader
virtual off_t pack3(OutputFile *, Filter &) /*= 0*/; // append loader
virtual void pack4(OutputFile *, Filter &) /*= 0*/; // append PackHeader
virtual void pack4dylib(OutputFile *, Filter &, Addr init_address);
@ -987,7 +987,7 @@ public:
virtual const char *getName() const { return "dylib/ppc32"; }
virtual const char *getFullName(const options_t *) const { return "powerpc-darwin.dylib"; }
protected:
virtual void pack3(OutputFile *, Filter &); // append loader
virtual off_t pack3(OutputFile *, Filter &); // append loader
virtual void pack4(OutputFile *, Filter &); // append PackHeader
};
@ -1002,7 +1002,7 @@ public:
virtual const char *getName() const { return "dylib/ppc64le"; }
virtual const char *getFullName(const options_t *) const { return "powerpc64le-darwin.dylib"; }
protected:
virtual void pack3(OutputFile *, Filter &); // append loader
virtual off_t pack3(OutputFile *, Filter &); // append loader
virtual void pack4(OutputFile *, Filter &); // append PackHeader
};
@ -1069,7 +1069,7 @@ public:
virtual const char *getName() const { return "dylib/i386"; }
virtual const char *getFullName(const options_t *) const { return "i386-darwin.dylib"; }
protected:
virtual void pack3(OutputFile *, Filter &); // append loader
virtual off_t pack3(OutputFile *, Filter &); // append loader
virtual void pack4(OutputFile *, Filter &); // append PackHeader
};
@ -1137,7 +1137,7 @@ public:
virtual const char *getName() const { return "dylib/amd64"; }
virtual const char *getFullName(const options_t *) const { return "amd64-darwin.dylib"; }
protected:
virtual void pack3(OutputFile *, Filter &); // append loader
virtual off_t pack3(OutputFile *, Filter &); // append loader
virtual void pack4(OutputFile *, Filter &); // append PackHeader
};

View File

@ -246,7 +246,7 @@ PackUnix::patchLoaderChecksum()
set_te32(&lp->l_checksum, upx_adler32(ptr, lsize));
}
void PackUnix::pack3(OutputFile *fo, Filter &ft)
off_t PackUnix::pack3(OutputFile *fo, Filter &ft)
{
if (0==linker) {
// If no filter, then linker is not constructed by side effect
@ -259,6 +259,7 @@ void PackUnix::pack3(OutputFile *fo, Filter &ft)
updateLoader(fo);
patchLoaderChecksum();
fo->write(p, lsize);
return fo->getBytesWritten();
}
void PackUnix::pack4(OutputFile *fo, Filter &)

View File

@ -55,7 +55,7 @@ protected:
// called by the generic pack()
virtual void pack1(OutputFile *, Filter &); // generate executable header
virtual int pack2(OutputFile *, Filter &); // append compressed data
virtual void pack3(OutputFile *, Filter &); // append loader
virtual off_t pack3(OutputFile *, Filter &); // append loader
virtual void pack4(OutputFile *, Filter &); // append PackHeader
virtual void patchLoader() = 0;

View File

@ -1484,7 +1484,7 @@ powerpc64-linux.elf%.h : tc_bfdname = elf64-powerpc
tc.powerpc64-linux.elf.gcc = powerpc64-linux-gcc-4.9.2 -m64 -mbig-endian -nostdinc -MMD -MT $@
tc.powerpc64-linux.elf.gcc += -fno-exceptions -fno-asynchronous-unwind-tables -fno-stack-protector
tc.powerpc64-linux.elf.gcc += -mno-longcall
tc.powerpc64-linux.elf.gcc += -mno-longcall -mno-toc
tc.powerpc64-linux.elf.gcc += -Wall -W -Wcast-align -Wcast-qual -Wstrict-prototypes -Wwrite-strings -Werror
tc.powerpc64-linux.elf.ld = powerpc64-linux-ld-2.25 -b $(tc_bfdname)

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/* amd64-linux.elf-fold.h
created from amd64-linux.elf-fold.bin, 2125 (0x84d) bytes
created from amd64-linux.elf-fold.bin, 2153 (0x869) bytes
This file is part of the UPX executable compressor.
@ -31,20 +31,20 @@
*/
#define STUB_AMD64_LINUX_ELF_FOLD_SIZE 2125
#define STUB_AMD64_LINUX_ELF_FOLD_ADLER32 0x12f6192b
#define STUB_AMD64_LINUX_ELF_FOLD_CRC32 0x1734f17b
#define STUB_AMD64_LINUX_ELF_FOLD_SIZE 2153
#define STUB_AMD64_LINUX_ELF_FOLD_ADLER32 0xdb502380
#define STUB_AMD64_LINUX_ELF_FOLD_CRC32 0xc1f45ed9
unsigned char stub_amd64_linux_elf_fold[2125] = {
unsigned char stub_amd64_linux_elf_fold[2153] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 62, 0, 1, 0, 0, 0,188, 0, 16, 0, 0, 0, 0, 0,
/* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0030 */ 0, 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 */ 77, 8, 0, 0, 0, 0, 0, 0, 80, 8, 0, 0, 0, 0, 0, 0,
/* 0x0060 */ 105, 8, 0, 0, 0, 0, 0, 0,108, 8, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 0, 16, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 77, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 105, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0090 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x00a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0,
/* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 89, 0, 0,
@ -53,120 +53,122 @@ unsigned char stub_amd64_linux_elf_fold[2125] = {
/* 0x00e0 */ 47, 72, 57,206,115, 50, 86, 94,172, 60,128,114, 10, 60,143,119,
/* 0x00f0 */ 6,128,126,254, 15,116, 6, 44,232, 60, 1,119,228, 72, 57,206,
/* 0x0100 */ 115, 22, 86,173, 40,208,117,223, 95, 15,200, 41,248, 1,216,171,
/* 0x0110 */ 72, 57,206,115, 3,172,235,223, 91,195, 91, 72,141, 67, 15, 80,
/* 0x0120 */ 72,137,230, 72,129,236, 0, 16, 0, 0, 84, 95,106, 7, 89,243,
/* 0x0130 */ 72,165, 72,131, 62, 0, 72,165,117,248, 73,137,254, 72,171, 72,
/* 0x0140 */ 131, 62, 0, 72,165,117,248, 73,137,252, 72,131, 62, 0, 72,165,
/* 0x0150 */ 72,165,117,246, 73,137,255, 73,137,245, 77, 41,252,106, 89,186,
/* 0x0160 */ 255, 15, 0, 0, 87, 94, 83, 95, 88, 15, 5,133,192,121, 5, 83,
/* 0x0170 */ 94,106, 14, 88,145,253, 73,141,125,255,176, 0,170, 72,141,116,
/* 0x0180 */ 14,255,243,164, 72,131,239, 3,199, 7, 32, 32, 32, 61, 73,137,
/* 0x0190 */ 62, 72,131,231,248, 76,137,249, 72, 41,225,137,200, 49,248,131,
/* 0x01a0 */ 224, 8, 72, 41,199, 73,137,254, 72,131,239, 8, 73,141,119,248,
/* 0x01b0 */ 72,193,233, 3,243, 72,165, 72,141,103, 8,252, 75,141, 12, 38,
/* 0x01c0 */ 65, 89, 94, 95, 72,139, 68, 36, 16, 72,129,236, 0, 8, 0, 0,
/* 0x01d0 */ 72,137,226, 73,137,232, 80,232, 46, 5, 0, 0, 80, 93, 90, 72,
/* 0x01e0 */ 129,196, 0, 8, 0, 0,106, 2, 41,246, 83, 95, 88, 15, 5,147,
/* 0x01f0 */ 106, 9, 69, 41,201, 65,137,216,106, 2, 65, 90,106, 1, 90,190,
/* 0x0200 */ 0, 16, 0, 0,106, 0, 95, 88, 15, 5,106, 3,137,223, 88, 15,
/* 0x0210 */ 5, 94, 95, 89, 85,106, 11, 88, 65,255,102,248,176, 9, 73,137,
/* 0x0220 */ 202, 15,182,192, 15, 5, 72, 61, 0,240,255,255,114, 4, 72,131,
/* 0x0230 */ 200,255,195,176, 60,235, 2,176, 12,235, 2,176, 3,235, 2,176,
/* 0x0240 */ 2,235, 2,176, 11,235, 2,176, 10,235, 2,176, 1,235, 2,176,
/* 0x0250 */ 0,235,206, 0, 81, 72, 57, 23, 76,139, 71, 8, 72,141, 74,255,
/* 0x0260 */ 115, 10,191,127, 0, 0, 0,232,199,255,255,255, 72,131,249,255,
/* 0x0270 */ 116, 17, 65, 15,182, 0, 72,255,201, 73,255,192,136, 6, 72,255,
/* 0x0280 */ 198,235,233, 72, 1, 87, 8, 72, 41, 23, 88,195, 65, 85, 73,137,
/* 0x0290 */ 213, 65, 84, 73,137,204, 85, 72,137,253, 83, 72,137,243, 72,131,
/* 0x02a0 */ 236, 40, 72,131, 62, 0, 15,132,230, 0, 0, 0, 72,141,116, 36,
/* 0x02b0 */ 16,186, 12, 0, 0, 0, 72,137,239,232,150,255,255,255,139, 68,
/* 0x02c0 */ 36, 16,139,116, 36, 20,133,192,117, 21,129,254, 85, 80, 88, 33,
/* 0x02d0 */ 117, 17, 72,131,125, 0, 0, 15,132,181, 0, 0, 0,235, 4,133,
/* 0x02e0 */ 246,117, 10,191,127, 0, 0, 0,232, 70,255,255,255, 57,198,119,
/* 0x02f0 */ 242,137,194, 72, 59, 19,119,235, 57,198, 72,139, 67, 8,115,108,
/* 0x0300 */ 72,137, 84, 36, 8, 72,139,125, 8, 72,141, 76, 36, 8, 68,139,
/* 0x0310 */ 68, 36, 24, 72,137,194, 65,255,213,133,192,117,198,139, 68, 36,
/* 0x0320 */ 16, 72,139,116, 36, 8, 72, 57,198,117,184, 15,182, 76, 36, 25,
/* 0x0330 */ 132,201, 15,149,194, 49,192, 77,133,228, 15,149,192,133,194,116,
/* 0x0340 */ 29, 72,129,254, 0, 2, 0, 0,119, 5, 72, 57, 51,117, 15, 15,
/* 0x0350 */ 182, 84, 36, 26, 15,182,201, 72,139,123, 8, 65,255,212,139, 68,
/* 0x0360 */ 36, 20, 72, 1, 69, 8, 72, 41, 69, 0,235, 13,137,242, 72,137,
/* 0x0370 */ 239, 72,137,198,232,219,254,255,255,139, 84, 36, 16, 72,139, 3,
/* 0x0380 */ 72, 1, 83, 8, 72, 41,208, 72,133,192, 72,137, 3,233, 20,255,
/* 0x0390 */ 255,255, 72,131,196, 40, 91, 93, 65, 92, 65, 93,195, 72,133,255,
/* 0x03a0 */ 73,137,208,116, 41, 72,139, 7,137,241, 72, 57,200,116, 17, 72,
/* 0x03b0 */ 255,200, 15,148,194, 49,192,133,246, 15,149,192,133,194,116, 8,
/* 0x03c0 */ 72,137, 15, 76,137, 71, 8,195, 72,131,199, 16,235,215,195, 65,
/* 0x03d0 */ 87,184, 0, 0, 0, 0, 65, 86, 73,137,254, 65, 85, 65, 84, 73,
/* 0x03e0 */ 137,252, 85, 83, 72,131,236, 88, 76, 3,103, 32,102,131,127, 16,
/* 0x03f0 */ 3,137, 84, 36, 44, 15,183, 87, 56, 72,137, 76, 36, 32,185, 16,
/* 0x0400 */ 0, 0, 0, 72,137,116, 36, 48, 76,137, 68, 36, 24, 76,137, 76,
/* 0x0410 */ 36, 16, 15, 68,200, 76,137,230, 72,131,205,255, 49,219,131,193,
/* 0x0420 */ 34,255,202,120, 33,131, 62, 1,117, 22, 72,139, 70, 16, 72, 57,
/* 0x0430 */ 232, 72, 15, 66,232, 72, 3, 70, 40, 72, 57,195, 72, 15, 66,216,
/* 0x0440 */ 72,131,198, 56,235,219, 72,129,229, 0,240,255,255, 49,210, 69,
/* 0x0450 */ 49,201, 72, 41,235, 65,131,200,255, 72,137,239, 72,129,195,255,
/* 0x0460 */ 15, 0, 0, 72,129,227, 0,240,255,255, 72,137,222,232,170,253,
/* 0x0470 */ 255,255, 73,137,197, 72,141, 20, 24,199, 68, 36, 12, 0, 0, 0,
/* 0x0480 */ 0, 73, 41,237,102, 65,131,126, 56, 0, 72,137, 84, 36, 56, 15,
/* 0x0490 */ 132, 73, 2, 0, 0, 72,131,124, 36, 48, 0,116, 35, 65,131, 60,
/* 0x04a0 */ 36, 6,117, 28, 73,139, 84, 36, 16, 72,139,124, 36, 32,190, 3,
/* 0x04b0 */ 0, 0, 0, 76, 1,234,232,226,254,255,255,233, 7, 2, 0, 0,
/* 0x04c0 */ 65,131, 60, 36, 1, 15,133,252, 1, 0, 0, 72,131,124, 36, 48,
/* 0x04d0 */ 0,116, 75, 73,131,124, 36, 8, 0,117, 67, 73,139, 84, 36, 16,
/* 0x04e0 */ 72,139,124, 36, 32,190, 3, 0, 0, 0, 76, 1,234, 73, 3, 86,
/* 0x04f0 */ 32,232,167,254,255,255, 73, 15,183, 86, 56, 72,139,124, 36, 32,
/* 0x0500 */ 190, 5, 0, 0, 0,232,147,254,255,255, 73, 15,183, 86, 54, 72,
/* 0x0510 */ 139,124, 36, 32,190, 4, 0, 0, 0,232,127,254,255,255, 73,139,
/* 0x0520 */ 68, 36, 16, 65,139, 76, 36, 4, 65,131,200,255,199, 68, 36, 8,
/* 0x0530 */ 64, 98, 81,115, 73,139, 84, 36, 32, 76, 1,232,131,225, 7, 72,
/* 0x0540 */ 137,197, 72,137, 68, 36, 72, 73,139, 68, 36, 40, 72,137,235,193,
/* 0x0550 */ 225, 2,211,108, 36, 8,129,227,255, 15, 0, 0,131,100, 36, 8,
/* 0x0560 */ 7, 72,137, 84, 36, 64, 72, 1,232, 72, 41,221, 76,141, 60, 26,
/* 0x0570 */ 72,137, 4, 36,185, 50, 0, 0, 0, 73,139, 68, 36, 8, 72, 41,
/* 0x0580 */ 216, 72,131,124, 36, 48, 0,117, 7, 68,139, 68, 36, 44,177, 18,
/* 0x0590 */ 139, 84, 36, 8, 73,137,193, 76,137,254, 72,137,239,131,202, 2,
/* 0x05a0 */ 72,131,124, 36, 48, 0, 15, 68, 84, 36, 8,232,108,252,255,255,
/* 0x05b0 */ 72, 57,197, 15,133,210, 0, 0, 0, 72,131,124, 36, 48, 0,116,
/* 0x05c0 */ 25, 72,139, 76, 36, 16, 72,139, 84, 36, 24, 72,141,116, 36, 64,
/* 0x05d0 */ 72,139,124, 36, 48,232,178,252,255,255, 76,137,251, 72,247,219,
/* 0x05e0 */ 129,227,255, 15, 0, 0,246, 68, 36, 8, 2,116, 13, 74,141,124,
/* 0x05f0 */ 61, 0, 49,192, 72,137,217,252,243,170, 72,131,124, 36, 48, 0,
/* 0x0600 */ 15,132,143, 0, 0, 0, 72,184,255,255,255,255, 1, 0, 0, 0,
/* 0x0610 */ 73, 35, 4, 36, 72,186, 1, 0, 0, 0, 1, 0, 0, 0, 72, 57,
/* 0x0620 */ 208,117, 85, 73,139, 84, 36, 40, 73,139,116, 36, 16, 73, 59, 84,
/* 0x0630 */ 36, 32, 72,141, 4, 50, 74,141, 12, 40,117, 14,137,200,247,216,
/* 0x0640 */ 37,255, 15, 0, 0,131,248, 3,119, 20, 76,137,232, 72,193,224,
/* 0x0650 */ 6, 73,131,124, 36, 8, 0, 72,141, 76, 6, 12,117, 26, 72,133,
/* 0x0660 */ 201,199, 1, 15, 5,195,144,116, 15, 72,139,124, 36, 32, 72,137,
/* 0x0670 */ 202, 49,246,232, 37,253,255,255,139, 84, 36, 8, 76,137,254, 72,
/* 0x0680 */ 137,239,232,192,251,255,255,133,192,116, 10,191,127, 0, 0, 0,
/* 0x0690 */ 232,158,251,255,255, 73,141, 4, 31, 72, 1,197, 72, 59, 44, 36,
/* 0x06a0 */ 115, 37, 72, 41, 44, 36,139, 84, 36, 8, 69, 49,201, 72,139, 52,
/* 0x06b0 */ 36, 65,131,200,255,185, 50, 0, 0, 0, 72,137,239,232, 90,251,
/* 0x06c0 */ 255,255, 72, 57,197,117,196,255, 68, 36, 12, 65, 15,183, 70, 56,
/* 0x06d0 */ 73,131,196, 56, 57, 68, 36, 12, 15,140,183,253,255,255, 72,131,
/* 0x06e0 */ 188, 36,144, 0, 0, 0, 0,116, 11, 72,139,132, 36,144, 0, 0,
/* 0x06f0 */ 0, 76,137, 40, 77, 3,110, 24, 72,131,196, 88, 91, 93, 65, 92,
/* 0x0700 */ 76,137,232, 65, 93, 65, 94, 65, 95,195, 65, 87, 65, 86, 73,137,
/* 0x0710 */ 206, 49,201, 65, 85, 65, 84, 77,137,204, 85, 72,137,213, 76,141,
/* 0x0720 */ 109, 64, 83, 76,137,195, 72,131,236, 72,139, 7, 72,137,124, 36,
/* 0x0730 */ 24, 72,137,116, 36, 16, 72,137,124, 36, 40, 72,137,116, 36, 32,
/* 0x0740 */ 72,141,124, 36, 16, 72,141,116, 36, 48, 72,137, 84, 36, 56, 76,
/* 0x0750 */ 137,194, 72,137, 68, 36, 48,232, 48,251,255,255, 72,141,132, 36,
/* 0x0760 */ 128, 0, 0, 0, 72,137, 68, 36, 8, 65, 83, 77,137,225, 49,210,
/* 0x0770 */ 73,137,216, 72,141,116, 36, 40, 80, 76,137,241, 72,137,239, 69,
/* 0x0780 */ 49,255,232, 72,252,255,255,190, 9, 0, 0, 0, 72,137,194, 76,
/* 0x0790 */ 137,247, 73,137,196,232, 3,252,255,255,102,131,125, 56, 0, 65,
/* 0x07a0 */ 89, 65, 90, 15,132,146, 0, 0, 0, 65,131,125, 0, 3,117,119,
/* 0x07b0 */ 72,139, 68, 36, 8, 49,210, 49,246, 72,139, 56, 73, 3,125, 16,
/* 0x07c0 */ 232,122,250,255,255,133,192,137,195,120, 23,186, 0, 4, 0, 0,
/* 0x07d0 */ 72,137,238,137,199,232,117,250,255,255, 72, 61, 0, 4, 0, 0,
/* 0x07e0 */ 116, 10,191,127, 0, 0, 0,232, 71,250,255,255, 65, 80,255,116,
/* 0x07f0 */ 36, 16, 69, 49,201, 69, 49,192, 49,201,137,218, 49,246, 72,137,
/* 0x0800 */ 239,232,201,251,255,255, 73,137,196, 72,139, 68, 36, 24,190, 7,
/* 0x0810 */ 0, 0, 0, 76,137,247, 72,139, 16,232,127,251,255,255,137,223,
/* 0x0820 */ 232, 22,250,255,255, 94, 95, 15,183, 69, 56, 65,255,199, 73,131,
/* 0x0830 */ 197, 56, 65, 57,199, 15,130,110,255,255,255, 72,131,196, 72, 76,
/* 0x0840 */ 137,224, 91, 93, 65, 92, 65, 93, 65, 94, 65, 95,195
/* 0x0110 */ 72, 57,206,115, 3,172,235,223, 91,195, 91, 65, 86, 65, 87, 72,
/* 0x0120 */ 141, 67, 15, 80, 72,137,230, 72,129,236, 0, 16, 0, 0, 84, 95,
/* 0x0130 */ 106, 9, 89,243, 72,165, 72,131, 62, 0, 72,165,117,248, 73,137,
/* 0x0140 */ 254, 72,171, 72,131, 62, 0, 72,165,117,248, 73,137,252, 72,131,
/* 0x0150 */ 62, 0, 72,165, 72,165,117,246, 73,137,255, 73,137,245, 77, 41,
/* 0x0160 */ 252,186,255, 15, 0, 0, 87, 94, 83, 95,106, 89, 88, 15, 5,133,
/* 0x0170 */ 192,121, 5, 83, 94,106, 14, 88,145,253, 73,141,125,255,176, 0,
/* 0x0180 */ 170, 72,141,116, 14,255,243,164, 72,131,239, 3,199, 7, 32, 32,
/* 0x0190 */ 32, 61, 73,137, 62, 72,131,231,248, 76,137,249, 72, 41,225,137,
/* 0x01a0 */ 200, 49,248,131,224, 8, 72, 41,199, 73,137,254, 72,131,239, 8,
/* 0x01b0 */ 73,141,119,248, 72,193,233, 3,243, 72,165, 72,141,103, 8,252,
/* 0x01c0 */ 75,141, 12, 38, 65, 89, 94, 95, 88, 72,129,236, 0, 8, 0, 0,
/* 0x01d0 */ 72,137,226, 80, 73,137,232,232, 69, 5, 0, 0, 72,129,196, 8,
/* 0x01e0 */ 8, 0, 0, 72,137, 68, 36, 24, 91, 69, 41,201, 65,137,216,106,
/* 0x01f0 */ 2, 65, 90,106, 1, 90,190, 0, 16, 0, 0,106, 0, 95,106, 9,
/* 0x0200 */ 88, 15, 5,137,223,106, 3, 88, 15, 5, 95, 94,106, 11, 88, 65,
/* 0x0210 */ 255,102,248,176, 9, 73,137,202, 15,182,192, 15, 5, 72, 61, 0,
/* 0x0220 */ 240,255,255,114, 4, 72,131,200,255,195,176, 60,235, 2,176, 12,
/* 0x0230 */ 235, 2,176, 3,235, 2,176, 2,235, 2,176, 11,235, 2,176, 10,
/* 0x0240 */ 235, 2,176, 1,235, 2,176, 0,235,206, 0, 0, 81, 72, 57, 23,
/* 0x0250 */ 76,139, 71, 8, 72,141, 74,255,115, 10,191,127, 0, 0, 0,232,
/* 0x0260 */ 198,255,255,255, 72,131,249,255,116, 17, 65, 15,182, 0, 72,255,
/* 0x0270 */ 201, 73,255,192,136, 6, 72,255,198,235,233, 72, 1, 87, 8, 72,
/* 0x0280 */ 41, 23, 88,195, 65, 85, 73,137,213, 65, 84, 73,137,204, 85, 72,
/* 0x0290 */ 137,253, 83, 72,137,243, 72,131,236, 40, 72,131, 62, 0, 15,132,
/* 0x02a0 */ 230, 0, 0, 0, 72,141,116, 36, 16,186, 12, 0, 0, 0, 72,137,
/* 0x02b0 */ 239,232,150,255,255,255,139, 68, 36, 16,139,116, 36, 20,133,192,
/* 0x02c0 */ 117, 21,129,254, 85, 80, 88, 33,117, 17, 72,131,125, 0, 0, 15,
/* 0x02d0 */ 132,181, 0, 0, 0,235, 4,133,246,117, 10,191,127, 0, 0, 0,
/* 0x02e0 */ 232, 69,255,255,255, 57,198,119,242,137,194, 72, 59, 19,119,235,
/* 0x02f0 */ 57,198, 72,139, 67, 8,115,108, 72,137, 84, 36, 8, 72,139,125,
/* 0x0300 */ 8, 72,141, 76, 36, 8, 68,139, 68, 36, 24, 72,137,194, 65,255,
/* 0x0310 */ 213,133,192,117,198,139, 68, 36, 16, 72,139,116, 36, 8, 72, 57,
/* 0x0320 */ 198,117,184, 15,182, 76, 36, 25,132,201, 15,149,194, 49,192, 77,
/* 0x0330 */ 133,228, 15,149,192,133,194,116, 29, 72,129,254, 0, 2, 0, 0,
/* 0x0340 */ 119, 5, 72, 57, 51,117, 15, 15,182, 84, 36, 26, 15,182,201, 72,
/* 0x0350 */ 139,123, 8, 65,255,212,139, 68, 36, 20, 72, 1, 69, 8, 72, 41,
/* 0x0360 */ 69, 0,235, 13,137,242, 72,137,239, 72,137,198,232,219,254,255,
/* 0x0370 */ 255,139, 84, 36, 16, 72,139, 3, 72, 1, 83, 8, 72, 41,208, 72,
/* 0x0380 */ 133,192, 72,137, 3,233, 20,255,255,255, 72,131,196, 40, 91, 93,
/* 0x0390 */ 65, 92, 65, 93,195, 72,133,255, 73,137,208,116, 41, 72,139, 7,
/* 0x03a0 */ 137,241, 72, 57,200,116, 17, 72,255,200, 15,148,194, 49,192,133,
/* 0x03b0 */ 246, 15,149,192,133,194,116, 8, 72,137, 15, 76,137, 71, 8,195,
/* 0x03c0 */ 72,131,199, 16,235,215,195, 65, 87,184, 0, 0, 0, 0, 65, 86,
/* 0x03d0 */ 73,137,254, 65, 85, 65, 84, 73,137,252, 85, 83, 72,131,236, 88,
/* 0x03e0 */ 76, 3,103, 32,102,131,127, 16, 3, 72,137, 76, 36, 32,185, 16,
/* 0x03f0 */ 0, 0, 0, 76,137, 68, 36, 24, 72,137,116, 36, 48,137, 84, 36,
/* 0x0400 */ 44, 76,137, 76, 36, 16, 15,183, 87, 56, 15, 68,200, 72,139,132,
/* 0x0410 */ 36,144, 0, 0, 0, 76,137,230, 72,131,205,255, 49,219, 49,255,
/* 0x0420 */ 131,193, 34, 76,139, 0,255,202,120, 33,131, 62, 1,117, 22, 72,
/* 0x0430 */ 139, 70, 16, 72, 57,232, 72, 15, 66,232, 72, 3, 70, 40, 72, 57,
/* 0x0440 */ 195, 72, 15, 66,216, 72,131,198, 56,235,219, 72,129,229, 0,240,
/* 0x0450 */ 255,255, 72, 41,235, 72,129,195,255, 15, 0, 0, 72,129,227, 0,
/* 0x0460 */ 240,255,255,246,193, 16,116, 5, 72,137,239,235, 19, 72,133,237,
/* 0x0470 */ 117, 14,137,200, 76,137,199,131,200, 16, 77,133,192, 15, 69,200,
/* 0x0480 */ 69, 49,201, 65,131,200,255, 49,210, 72,137,222,232,130,253,255,
/* 0x0490 */ 255, 72,137,199, 72,141, 4, 3,199, 68, 36, 12, 0, 0, 0, 0,
/* 0x04a0 */ 73,137,253, 73, 41,237,102, 65,131,126, 56, 0, 72,137, 68, 36,
/* 0x04b0 */ 56, 15,132, 73, 2, 0, 0, 72,131,124, 36, 48, 0,116, 35, 65,
/* 0x04c0 */ 131, 60, 36, 6,117, 28, 73,139, 84, 36, 16, 72,139,124, 36, 32,
/* 0x04d0 */ 190, 3, 0, 0, 0, 76, 1,234,232,184,254,255,255,233, 7, 2,
/* 0x04e0 */ 0, 0, 65,131, 60, 36, 1, 15,133,252, 1, 0, 0, 72,131,124,
/* 0x04f0 */ 36, 48, 0,116, 75, 73,131,124, 36, 8, 0,117, 67, 73,139, 84,
/* 0x0500 */ 36, 16, 72,139,124, 36, 32,190, 3, 0, 0, 0, 76, 1,234, 73,
/* 0x0510 */ 3, 86, 32,232,125,254,255,255, 73, 15,183, 86, 56, 72,139,124,
/* 0x0520 */ 36, 32,190, 5, 0, 0, 0,232,105,254,255,255, 73, 15,183, 86,
/* 0x0530 */ 54, 72,139,124, 36, 32,190, 4, 0, 0, 0,232, 85,254,255,255,
/* 0x0540 */ 73,139, 68, 36, 16, 65,139, 76, 36, 4, 65,131,200,255,199, 68,
/* 0x0550 */ 36, 8, 64, 98, 81,115, 73,139, 84, 36, 32, 76, 1,232,131,225,
/* 0x0560 */ 7, 72,137,197, 72,137, 68, 36, 72, 73,139, 68, 36, 40, 72,137,
/* 0x0570 */ 235,193,225, 2,211,108, 36, 8,129,227,255, 15, 0, 0,131,100,
/* 0x0580 */ 36, 8, 7, 72,137, 84, 36, 64, 72, 1,232, 72, 41,221, 76,141,
/* 0x0590 */ 60, 26, 72,137, 4, 36,185, 50, 0, 0, 0, 73,139, 68, 36, 8,
/* 0x05a0 */ 72, 41,216, 72,131,124, 36, 48, 0,117, 7, 68,139, 68, 36, 44,
/* 0x05b0 */ 177, 18,139, 84, 36, 8, 73,137,193, 76,137,254, 72,137,239,131,
/* 0x05c0 */ 202, 2, 72,131,124, 36, 48, 0, 15, 68, 84, 36, 8,232, 65,252,
/* 0x05d0 */ 255,255, 72, 57,197, 15,133,210, 0, 0, 0, 72,131,124, 36, 48,
/* 0x05e0 */ 0,116, 25, 72,139, 76, 36, 16, 72,139, 84, 36, 24, 72,141,116,
/* 0x05f0 */ 36, 64, 72,139,124, 36, 48,232,136,252,255,255, 76,137,251, 72,
/* 0x0600 */ 247,219,129,227,255, 15, 0, 0,246, 68, 36, 8, 2,116, 13, 74,
/* 0x0610 */ 141,124, 61, 0, 49,192, 72,137,217,252,243,170, 72,131,124, 36,
/* 0x0620 */ 48, 0, 15,132,143, 0, 0, 0, 72,184,255,255,255,255, 1, 0,
/* 0x0630 */ 0, 0, 73, 35, 4, 36, 72,186, 1, 0, 0, 0, 1, 0, 0, 0,
/* 0x0640 */ 72, 57,208,117, 85, 73,139, 84, 36, 40, 73,139,116, 36, 16, 73,
/* 0x0650 */ 59, 84, 36, 32, 72,141, 4, 50, 74,141, 12, 40,117, 14,137,200,
/* 0x0660 */ 247,216, 37,255, 15, 0, 0,131,248, 3,119, 20, 76,137,232, 72,
/* 0x0670 */ 193,224, 6, 73,131,124, 36, 8, 0, 72,141, 76, 6, 12,117, 26,
/* 0x0680 */ 72,133,201,199, 1, 15, 5,195,144,116, 15, 72,139,124, 36, 32,
/* 0x0690 */ 72,137,202, 49,246,232,251,252,255,255,139, 84, 36, 8, 76,137,
/* 0x06a0 */ 254, 72,137,239,232,149,251,255,255,133,192,116, 10,191,127, 0,
/* 0x06b0 */ 0, 0,232,115,251,255,255, 73,141, 4, 31, 72, 1,197, 72, 59,
/* 0x06c0 */ 44, 36,115, 37, 72, 41, 44, 36,139, 84, 36, 8, 69, 49,201, 72,
/* 0x06d0 */ 139, 52, 36, 65,131,200,255,185, 50, 0, 0, 0, 72,137,239,232,
/* 0x06e0 */ 47,251,255,255, 72, 57,197,117,196,255, 68, 36, 12, 65, 15,183,
/* 0x06f0 */ 70, 56, 73,131,196, 56, 57, 68, 36, 12, 15,140,183,253,255,255,
/* 0x0700 */ 72,139,132, 36,144, 0, 0, 0, 76,137, 40, 77, 3,110, 24, 72,
/* 0x0710 */ 131,196, 88, 91, 93, 65, 92, 76,137,232, 65, 93, 65, 94, 65, 95,
/* 0x0720 */ 195, 65, 87, 65, 86, 73,137,206, 49,201, 65, 85, 65, 84, 77,137,
/* 0x0730 */ 204, 85, 72,137,213, 76,141,109, 64, 83, 76,137,195, 72,131,236,
/* 0x0740 */ 72,139, 7, 72,137,124, 36, 24, 72,137,124, 36, 40, 76,141,188,
/* 0x0750 */ 36,128, 0, 0, 0, 72,137,116, 36, 32, 72,141,116, 36, 48, 72,
/* 0x0760 */ 137, 84, 36, 56, 76,137,194, 72,137, 68, 36, 48,139, 71, 4, 72,
/* 0x0770 */ 141,124, 36, 16, 72,131,192, 12, 72,137, 68, 36, 16,232, 2,251,
/* 0x0780 */ 255,255, 65, 83, 77,137,225, 49,210, 73,137,216, 76,137,241, 72,
/* 0x0790 */ 137,239, 72,141,116, 36, 40, 65, 87,232, 41,252,255,255,190, 9,
/* 0x07a0 */ 0, 0, 0, 72,137,194, 76,137,247, 73,137,196,232,228,251,255,
/* 0x07b0 */ 255, 65, 89, 65, 90,102,131,125, 56, 0,199, 68, 36, 12, 0, 0,
/* 0x07c0 */ 0, 0, 15,132,143, 0, 0, 0, 65,131,125, 0, 3,117,114, 73,
/* 0x07d0 */ 139, 63, 73, 3,125, 16, 49,210, 49,246,232, 87,250,255,255,133,
/* 0x07e0 */ 192,137,195,120, 23,186, 0, 4, 0, 0, 72,137,238,137,199,232,
/* 0x07f0 */ 82,250,255,255, 72, 61, 0, 4, 0, 0,116, 10,191,127, 0, 0,
/* 0x0800 */ 0,232, 36,250,255,255, 73,199, 7, 0, 0, 0, 0, 65, 80, 69,
/* 0x0810 */ 49,201, 69, 49,192, 49,201, 65, 87,137,218, 49,246, 72,137,239,
/* 0x0820 */ 232,162,251,255,255, 73,139, 23,190, 7, 0, 0, 0, 76,137,247,
/* 0x0830 */ 73,137,196,232, 93,251,255,255,137,223,232,243,249,255,255, 94,
/* 0x0840 */ 95,255, 68, 36, 12, 15,183, 69, 56, 73,131,197, 56, 57, 68, 36,
/* 0x0850 */ 12, 15,130,113,255,255,255, 72,131,196, 72, 76,137,224, 91, 93,
/* 0x0860 */ 65, 92, 65, 93, 65, 94, 65, 95,195
};

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/* arm.v4a-linux.elf-fold.h
created from arm.v4a-linux.elf-fold.bin, 2680 (0xa78) bytes
created from arm.v4a-linux.elf-fold.bin, 2608 (0xa30) bytes
This file is part of the UPX executable compressor.
@ -31,177 +31,172 @@
*/
#define STUB_ARM_V4A_LINUX_ELF_FOLD_SIZE 2680
#define STUB_ARM_V4A_LINUX_ELF_FOLD_ADLER32 0x393d5301
#define STUB_ARM_V4A_LINUX_ELF_FOLD_CRC32 0x7f50a834
#define STUB_ARM_V4A_LINUX_ELF_FOLD_SIZE 2608
#define STUB_ARM_V4A_LINUX_ELF_FOLD_ADLER32 0x2ebb3b3b
#define STUB_ARM_V4A_LINUX_ELF_FOLD_CRC32 0x2f6532b4
unsigned char stub_arm_v4a_linux_elf_fold[2680] = {
unsigned char stub_arm_v4a_linux_elf_fold[2608] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 40, 0, 1, 0, 0, 0,128,128, 0, 0, 52, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 2, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0,
/* 0x0040 */ 0,128, 0, 0,120, 10, 0, 0,120, 10, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0,128, 0, 0, 1, 0, 0, 0,120, 10, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 0,128, 0, 0, 48, 10, 0, 0, 48, 10, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0,128, 0, 0, 1, 0, 0, 0, 48, 10, 0, 0, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 240, 31,189,232, 13, 16,160,225, 1,218, 77,226, 13, 0,160,225,
/* 0x0090 */ 240, 31, 45,233, 10,176,160,225, 4, 48,145,228, 0, 0, 83,227,
/* 0x00a0 */ 4, 48,128,228,251,255,255, 26, 0, 64,160,225, 4, 48,128,228,
/* 0x00b0 */ 4, 48,145,228, 0, 0, 83,227, 4, 48,128,228,251,255,255, 26,
/* 0x00c0 */ 1, 80,160,225, 12, 0,177,232, 0, 0, 82,227, 12, 0,160,232,
/* 0x00d0 */ 251,255,255, 26, 1, 96,160,225, 0,144,160,225, 1, 42,160,227,
/* 0x00e0 */ 0, 16,160,225, 82, 15,143,226, 1, 32, 66,226,120, 0, 0,235,
/* 0x00f0 */ 0, 32,129,224, 1, 10,112,227, 1, 0, 0, 58, 19, 30,143,226,
/* 0x0100 */ 14, 32,129,226, 6, 0,160,225, 0, 48,160,227, 1, 48, 96,229,
/* 0x0110 */ 1, 48,114,229, 1, 48, 96,229, 2, 0, 81,225,251,255,255, 26,
/* 0x0120 */ 61, 48,160,227, 1, 48, 96,229, 32, 48,160,227, 1, 48, 96,229,
/* 0x0130 */ 1, 48, 96,229, 1, 48, 96,229, 0, 0,132,229, 32, 1,160,225,
/* 0x0140 */ 0, 1,160,225, 0, 48, 38,224, 4, 48, 3,226, 4, 48, 35,226,
/* 0x0150 */ 3, 0, 64,224, 6, 48, 64,224, 5, 48,131,224, 9, 16,160,225,
/* 0x0160 */ 24, 0,141,229, 4, 32, 49,229, 13, 0, 81,225, 4, 32, 32,229,
/* 0x0170 */ 251,255,255, 26, 0,208,160,225,180, 0,143,226, 0, 16,160,227,
/* 0x0180 */ 73, 0, 0,235, 12, 0,141,229, 11, 80,160,225, 0, 14,189,232,
/* 0x0190 */ 10,220, 77,226, 9, 64,160,225, 4,144,154,229, 13,128,160,225,
/* 0x01a0 */ 0,112,154,229,152, 96,143,226, 12,144,137,226,248, 15, 45,233,
/* 0x01b0 */ 15, 0,189,232,226, 1, 0,235, 20,208,141,226, 10,220,141,226,
/* 0x01c0 */ 16, 0,141,229, 0, 80,160,227, 0, 64,157,229, 2, 48,160,227,
/* 0x01d0 */ 1, 32,160,227, 1, 26,160,227, 0, 0,160,227, 69, 0, 0,235,
/* 0x01e0 */ 4, 0,157,228, 50, 0, 0,235, 7, 64,189,232, 0, 48,160,227,
/* 0x01f0 */ 0, 64,160,227, 0, 80,160,227, 0, 96,160,227, 0,128,160,227,
/* 0x0200 */ 0,144,160,227, 0,160,160,227, 0,176,160,227, 2,199, 77,226,
/* 0x0210 */ 32,112, 29,228, 0,112,141,229, 0,112,157,229, 13, 0, 92,225,
/* 0x0220 */ 250,255,255, 58, 2,215,141,226, 0,112,160,227, 0,192,160,227,
/* 0x0230 */ 4,240, 18,229, 47,112,114,111, 99, 47,115,101,108,102, 47,101,
/* 0x0240 */ 120,101, 0, 0,255, 48, 3,226, 80, 0, 83,227, 14,240,160, 17,
/* 0x0250 */ 33, 17,176,225, 0, 0, 80, 19, 14,240,160, 1, 1, 16, 65,226,
/* 0x0260 */ 1, 33,144,231, 15, 52, 2,226, 11, 4, 83,227, 4, 0, 0, 26,
/* 0x0270 */ 255, 52, 2,226, 1, 32, 66,224,255, 36,194,227, 3, 32,130,225,
/* 0x0280 */ 1, 33,128,231, 0, 0, 81,227,243,255,255, 26, 14,240,160,225,
/* 0x0290 */ 240, 1,240,231, 14,240,160,225, 1, 0,144,239, 3, 0,144,239,
/* 0x02a0 */ 14,240,160,225, 4, 0,144,239, 14,240,160,225, 5, 0,144,239,
/* 0x02b0 */ 14,240,160,225, 6, 0,144,239, 14,240,160,225, 10, 0,144,239,
/* 0x02c0 */ 14,240,160,225, 20, 0,144,239, 14,240,160,225, 45, 0,144,239,
/* 0x02d0 */ 14,240,160,225, 85, 0,144,239, 14,240,160,225, 91, 0,144,239,
/* 0x02e0 */ 14,240,160,225,125, 0,144,239, 14,240,160,225, 0, 32,160,227,
/* 0x02f0 */ 2, 0,159,239, 14,240,160,225, 48, 64, 45,233, 16, 80,157,229,
/* 0x0300 */ 12, 64,157,229, 37, 86,160,225,192, 0,144,239, 48,128,189,232,
/* 0x0310 */ 60, 0, 31,229, 14,240,160,225, 48, 64, 45,233, 0, 80,160,227,
/* 0x0320 */ 0, 64,224,227, 36,224, 79,226, 82,255,255,234, 0,192,160,225,
/* 0x0330 */ 1, 16, 65,224, 0, 32,160,225,128, 1,144,224,129, 17,161,224,
/* 0x0340 */ 162, 30,129,224, 0, 32,160,225, 0, 2,144,224, 1, 18,161,224,
/* 0x0350 */ 34, 30,129,224, 0, 32,160,225, 0, 4,144,224, 1, 20,161,224,
/* 0x0360 */ 34, 28,129,224, 0, 32,160,225, 0, 8,144,224, 1, 24,161,224,
/* 0x0370 */ 34, 24,129,224,140, 15, 80,224,172, 16,193,224, 12, 0,144,224,
/* 0x0380 */ 0, 0,161,226, 14,240,160,225, 0, 0, 80,227, 14,240,160, 1,
/* 0x0390 */ 0, 48,144,229, 1, 0, 83,225, 8, 0,128, 18,251,255,255, 26,
/* 0x03a0 */ 4, 32,128,229, 14,240,160,225, 0, 0,159,229, 14,240,160,225,
/* 0x03b0 */ 0,240,255,255, 0, 48,144,229, 2, 0, 83,225, 4, 48,144,229,
/* 0x03c0 */ 4,224, 45,229, 3,192,160, 33, 2,224,160,225, 2, 32,160, 33,
/* 0x03d0 */ 3, 0, 0, 42,127, 0,160,227,174,255,255,235, 1, 48, 92,229,
/* 0x03e0 */ 1, 48, 65,229, 1, 32, 66,226, 1, 0,114,227, 1,192,140,226,
/* 0x03f0 */ 1, 16,129,226,248,255,255, 26, 4, 32,144,229, 0, 48,144,229,
/* 0x0400 */ 14, 32,130,224, 3, 48,110,224, 0, 48,128,229, 4, 32,128,229,
/* 0x0410 */ 4,240,157,228,240, 64, 45,233, 0, 80,160,225, 20,208, 77,226,
/* 0x0420 */ 1, 64,160,225, 2,112,160,225, 3, 96,160,225, 68, 0, 0,234,
/* 0x0430 */ 4, 16,141,226, 5, 0,160,225, 12, 32,160,227,220,255,255,235,
/* 0x0440 */ 4,224,157,229, 0, 0, 94,227, 8, 16,157,229, 6, 0, 0, 26,
/* 0x0450 */ 0, 49,159,229, 3, 0, 81,225, 5, 0, 0, 26, 0, 48,149,229,
/* 0x0460 */ 0, 0, 83,227, 2, 0, 0, 26, 56, 0, 0,234, 0, 0, 81,227,
/* 0x0470 */ 1, 0, 0, 26,127, 0,160,227,134,255,255,235, 14, 0, 81,225,
/* 0x0480 */ 251,255,255,138, 0, 48,148,229, 3, 0, 94,225,248,255,255,138,
/* 0x0490 */ 14, 0, 81,225, 33, 0, 0, 42, 12,192,221,229, 4, 0,149,229,
/* 0x04a0 */ 4, 32,148,229, 16, 48,141,226, 16,224,141,229, 0,192,141,229,
/* 0x04b0 */ 15,224,160,225, 7,240,160,225, 0, 0, 80,227,236,255,255, 26,
/* 0x04c0 */ 16, 16,157,229, 4, 48,157,229, 3, 0, 81,225,232,255,255, 26,
/* 0x04d0 */ 13, 32,221,229, 0, 0, 82,227, 0, 0, 86, 19, 9, 0, 0, 10,
/* 0x04e0 */ 2, 12, 81,227, 2, 0, 0,138, 0, 48,148,229, 1, 0, 83,225,
/* 0x04f0 */ 4, 0, 0, 26, 2, 48,160,225, 4, 0,148,229, 14, 32,221,229,
/* 0x0500 */ 15,224,160,225, 6,240,160,225, 8, 48,157,229, 6, 0,149,232,
/* 0x0510 */ 3, 32,130,224, 1, 16, 99,224, 6, 0,133,232, 3, 0, 0,234,
/* 0x0520 */ 1, 32,160,225, 5, 0,160,225, 4, 16,148,229,160,255,255,235,
/* 0x0530 */ 4, 48,157,229, 6, 0,148,232, 3, 32,130,224, 1, 16, 99,224,
/* 0x0540 */ 6, 0,132,232, 0, 48,148,229, 0, 0, 83,227,183,255,255, 26,
/* 0x0550 */ 20,208,141,226,240,128,189,232, 85, 80, 88, 33,240, 79, 45,233,
/* 0x0560 */ 1,160,160,225,176,193,218,225, 28, 16,145,229,188,226,218,225,
/* 0x0570 */ 52,208, 77,226, 2, 0, 92,227, 1, 96,138,224, 16, 0,141,229,
/* 0x0580 */ 16, 80,160, 3, 0, 80,160, 19, 1,224, 78,226, 6, 16,160,225,
/* 0x0590 */ 0, 0,224,227, 0,192,160,227, 12, 32,141,229, 8, 48,141,229,
/* 0x05a0 */ 13, 0, 0,234, 0, 48,145,229, 1, 0, 83,227, 8, 0, 0, 26,
/* 0x05b0 */ 20, 48,145,229, 0, 0, 83,227, 5, 0, 0, 10, 8, 32,145,229,
/* 0x05c0 */ 2, 48,131,224, 3, 0, 92,225, 3,192,160, 49, 2, 0, 80,225,
/* 0x05d0 */ 2, 0,160, 33, 32, 16,129,226, 1,224, 78,226, 0, 0, 94,227,
/* 0x05e0 */ 239,255,255,170,255, 78,192,227, 15, 64,196,227, 12, 48,100,224,
/* 0x05f0 */ 255, 62,131,226, 15, 48,131,226, 16, 32, 5,226,255, 62,195,227,
/* 0x0600 */ 0, 0, 82,227, 15, 48,195,227, 40, 48,141,229, 28, 64,141, 21,
/* 0x0610 */ 4, 0, 0, 26, 5, 48,160,225, 4, 0,160,225, 40, 16,157,229,
/* 0x0620 */ 60,255,255,235, 28, 0,141,229, 28, 0,157,229, 52, 48,160,227,
/* 0x0630 */ 0,144,100,224,153, 3, 3,224, 0, 16,160,227, 32, 80,134,226,
/* 0x0640 */ 32, 48,141,229, 24, 16,141,229,160, 0, 0,234, 12, 32,157,229,
/* 0x0650 */ 0, 0, 82,227, 8, 0, 0, 10, 32, 48, 21,229, 6, 0, 83,227,
/* 0x0660 */ 5, 0, 0, 26, 24, 32, 21,229, 8, 0,157,229, 2, 32,137,224,
/* 0x0670 */ 3, 16,160,227, 67,255,255,235,144, 0, 0,234, 32, 48, 21,229,
/* 0x0680 */ 1, 0, 83,227,141, 0, 0, 26, 12, 48, 21,229, 0, 0, 83,227,
/* 0x0690 */ 138, 0, 0, 10, 12, 48,157,229, 0, 0, 83,227, 17, 0, 0, 10,
/* 0x06a0 */ 28, 48, 21,229, 0, 0, 83,227, 14, 0, 0, 26, 28, 48,154,229,
/* 0x06b0 */ 24, 32, 21,229, 3, 32,130,224, 2, 32,137,224, 3, 16,160,227,
/* 0x06c0 */ 8, 0,157,229, 47,255,255,235, 8, 0,157,229, 5, 16,160,227,
/* 0x06d0 */ 188, 34,218,225, 43,255,255,235, 8, 0,157,229, 4, 16,160,227,
/* 0x06e0 */ 186, 34,218,225, 39,255,255,235, 8, 48, 21,229, 72, 34,159,229,
/* 0x06f0 */ 7, 48, 3,226, 3, 49,160,225, 50, 67,160,225, 24, 48, 21,229,
/* 0x0700 */ 3, 48,137,224, 20, 48,141,229, 20,192,157,229, 12, 0,157,229,
/* 0x0710 */ 16, 48, 21,229, 12, 42,160,225, 12, 16, 21,229, 34, 42,160,225,
/* 0x0720 */ 0, 0, 80,227, 44, 48,141,229, 48,192,141,229, 2,128,131,224,
/* 0x0730 */ 7,176, 4,226, 36, 16,141,229, 12, 96, 98,224, 14, 0, 0, 10,
/* 0x0740 */ 6, 0,160,225, 8, 16,160,225, 3, 32,160,227, 16, 48,160,227,
/* 0x0750 */ 240,254,255,235, 0, 0, 86,225, 72, 0, 0, 26, 92, 32,157,229,
/* 0x0760 */ 4, 48, 20,226, 2, 48,160, 17, 12, 0,157,229, 44, 16,141,226,
/* 0x0770 */ 16, 32,157,229, 38,255,255,235, 11, 0, 0,234, 28,192, 21,229,
/* 0x0780 */ 12,192, 98,224, 4,192,141,229, 16,192,157,229, 6, 0,160,225,
/* 0x0790 */ 8, 16,160,225, 11, 32,160,225, 18, 48,160,227, 0,192,141,229,
/* 0x07a0 */ 212,254,255,235, 0, 0, 86,225, 52, 0, 0, 26, 0, 48,104,226,
/* 0x07b0 */ 3,122,160,225, 2, 0, 27,227, 39,122,160,225, 7, 0, 0, 10,
/* 0x07c0 */ 0, 0, 87,227, 5, 0, 0, 10, 8, 16,134,224, 7, 32,160,225,
/* 0x07d0 */ 0, 48,160,227, 1, 32, 82,226, 1, 48,193,228,251,255,255, 26,
/* 0x07e0 */ 12, 0,157,229, 0, 0, 80,227, 38, 0, 0, 10,199,254,255,235,
/* 0x07f0 */ 32, 48, 21,229, 1, 0, 83,227, 26, 0, 0, 26, 8, 48, 21,229,
/* 0x0800 */ 1, 0, 19,227, 23, 0, 0, 10, 12, 32, 21,229, 16, 48, 21,229,
/* 0x0810 */ 3, 0, 82,225, 24, 16, 21,229, 64, 0, 0, 26, 1, 48,130,224,
/* 0x0820 */ 3, 48,131,226, 3, 48,137,224, 3, 64,195,227, 0, 48,100,226,
/* 0x0830 */ 3, 58,160,225, 35, 58,160,225, 7, 0, 83,227, 55, 0, 0,154,
/* 0x0840 */ 248, 48,159,229, 0, 0,132,229, 8, 16,132,226, 4, 0,160,225,
/* 0x0850 */ 4, 48,132,229,164,254,255,235, 8, 0,157,229, 4, 32,160,225,
/* 0x0860 */ 0, 16,160,227,199,254,255,235, 6, 0,160,225, 8, 16,160,225,
/* 0x0870 */ 11, 32,160,225,154,254,255,235, 0, 0, 80,227, 1, 0, 0, 10,
/* 0x0880 */ 127, 0,160,227,131,254,255,235, 20, 32,157,229, 36,192,157,229,
/* 0x0890 */ 7, 48,136,224, 12, 16,130,224, 3, 64,134,224, 1, 0, 84,225,
/* 0x08a0 */ 6, 0, 0, 42, 1, 16,100,224, 11, 32,160,225, 4, 0,160,225,
/* 0x08b0 */ 16, 48,160,227,151,254,255,235, 0, 0, 84,225,239,255,255, 26,
/* 0x08c0 */ 24, 0,157,229, 1, 0,128,226, 24, 0,141,229, 32, 80,133,226,
/* 0x08d0 */ 188, 50,218,225, 24, 16,157,229, 3, 0, 81,225, 90,255,255,186,
/* 0x08e0 */ 12, 32,157,229, 0, 0, 82,227, 5, 0, 0, 10,176, 49,218,225,
/* 0x08f0 */ 3, 0, 83,227, 28, 48,157, 21, 40,192,157, 21, 12, 0,131, 16,
/* 0x0900 */ 113,254,255, 27, 88, 0,157,229, 0, 0, 80,227, 0,144,128, 21,
/* 0x0910 */ 24, 0,154,229, 0, 0,137,224, 52,208,141,226,240,143,189,232,
/* 0x0920 */ 28, 48, 21,229, 0, 0, 83,227, 32, 32,157, 5, 2, 48,129, 0,
/* 0x0930 */ 8, 64,131, 2,193,255,255, 10,202,255,255,234, 64, 98, 81,115,
/* 0x0940 */ 14,240,160,225,240, 71, 45,233, 12,208, 77,226, 52, 96,141,226,
/* 0x0950 */ 0,144,160,225, 1,112,160,225, 3,128,160,225, 6, 0,160,225,
/* 0x0960 */ 44, 16,141,226, 0, 48,160,227, 48,160,157,229, 2, 80,160,225,
/* 0x0970 */ 52, 64,157,229,166,254,255,235, 60, 48,157,229, 12,224,141,226,
/* 0x0980 */ 56,192,157,229, 4, 48, 46,229, 12,192,100,224, 6, 32,160,225,
/* 0x0990 */ 10, 16,160,225, 9, 48,160,225, 5, 0,160,225, 56,192,141,229,
/* 0x09a0 */ 0,224,141,229, 52,112,141,229, 4,128,141,229,234,254,255,235,
/* 0x09b0 */ 0, 64,160,225, 9, 16,160,227, 9, 0,160,225, 4, 32,160,225,
/* 0x09c0 */ 112,254,255,235,188, 2,218,225, 52, 32,138,226, 0, 16,160,227,
/* 0x09d0 */ 35, 0, 0,234, 0, 48,146,229, 3, 0, 83,227, 30, 0, 0, 26,
/* 0x09e0 */ 8, 48,146,229, 8, 0,157,229, 0, 16,160,227, 0, 0,131,224,
/* 0x09f0 */ 1, 32,160,225, 44,254,255,235, 0, 80, 80,226, 4, 0, 0,186,
/* 0x0a00 */ 10, 16,160,225, 2, 44,160,227, 35,254,255,235, 2, 12, 80,227,
/* 0x0a10 */ 1, 0, 0, 10,127, 0,160,227, 30,254,255,235, 0,224,160,227,
/* 0x0a20 */ 14, 32,160,225, 8,192,141,226, 10, 16,160,225, 9, 48,160,225,
/* 0x0a30 */ 5, 0,160,225, 0, 80,141,232,199,254,255,235, 7, 16,160,227,
/* 0x0a40 */ 0, 64,160,225, 8, 32,157,229, 9, 0,160,225, 77,254,255,235,
/* 0x0a50 */ 5, 0,160,225, 22,254,255,235, 3, 0, 0,234, 32, 32,130,226,
/* 0x0a60 */ 1, 16,129,226, 0, 0, 81,225,217,255,255,186, 4, 0,160,225,
/* 0x0a70 */ 12,208,141,226,240,135,189,232
/* 0x0080 */ 0, 48,131,227, 14,240,160,225,192, 31,189,232, 13, 16,160,225,
/* 0x0090 */ 1,218, 77,226, 13, 0,160,225,240, 31, 45,233, 4, 48,145,228,
/* 0x00a0 */ 0, 0, 83,227, 4, 48,128,228,251,255,255, 26, 0, 64,160,225,
/* 0x00b0 */ 4, 48,128,228, 4, 48,145,228, 0, 0, 83,227, 4, 48,128,228,
/* 0x00c0 */ 251,255,255, 26, 1, 80,160,225, 12, 0,177,232, 0, 0, 82,227,
/* 0x00d0 */ 12, 0,160,232,251,255,255, 26, 1, 96,160,225, 0,144,160,225,
/* 0x00e0 */ 1, 42,160,227, 0, 16,160,225, 70, 15,143,226, 1, 32, 66,226,
/* 0x00f0 */ 108, 0, 0,235, 0, 32,129,224, 1, 10,112,227, 1, 0, 0, 58,
/* 0x0100 */ 1, 28,143,226, 14, 32,129,226, 6, 0,160,225, 0, 48,160,227,
/* 0x0110 */ 1, 48, 96,229, 1, 48,114,229, 1, 48, 96,229, 2, 0, 81,225,
/* 0x0120 */ 251,255,255, 26, 61, 48,160,227, 1, 48, 96,229, 32, 48,160,227,
/* 0x0130 */ 1, 48, 96,229, 1, 48, 96,229, 1, 48, 96,229, 0, 0,132,229,
/* 0x0140 */ 32, 1,160,225, 0, 1,160,225, 0, 48, 38,224, 4, 48, 3,226,
/* 0x0150 */ 4, 48, 35,226, 3, 0, 64,224, 6, 48, 64,224, 5, 48,131,224,
/* 0x0160 */ 9, 16,160,225, 24, 80,157,229, 24, 0,141,229, 4, 32, 49,229,
/* 0x0170 */ 13, 0, 81,225, 4, 32, 32,229,251,255,255, 26, 0,208,160,225,
/* 0x0180 */ 16, 12,189,232, 10,220, 77,226, 4,144,154,229, 13,128,160,225,
/* 0x0190 */ 0,112,154,229,124, 96,143,226, 12,144,137,226,248, 15, 45,233,
/* 0x01a0 */ 15, 0,189,232,209, 1, 0,235, 20,208,141,226, 10,220,141,226,
/* 0x01b0 */ 16, 0,141,229, 0, 80,160,227, 0, 64,189,229, 2, 48,160,227,
/* 0x01c0 */ 1, 32,160,227, 1, 26,160,227, 0, 0,160,227, 62, 0, 0,235,
/* 0x01d0 */ 4, 0,157,228, 43, 0, 0,235, 7, 64,189,232, 0, 48,160,227,
/* 0x01e0 */ 0, 64,160,227, 0, 80,160,227, 0, 96,160,227, 0,128,160,227,
/* 0x01f0 */ 0,144,160,227, 0,160,160,227, 0,176,160,227, 0,112,160,227,
/* 0x0200 */ 0,192,160,227, 4,240, 18,229, 47,112,114,111, 99, 47,115,101,
/* 0x0210 */ 108,102, 47,101,120,101, 0, 0,255, 48, 3,226, 80, 0, 83,227,
/* 0x0220 */ 14,240,160, 17, 33, 17,176,225, 0, 0, 80, 19, 14,240,160, 1,
/* 0x0230 */ 1, 16, 65,226, 1, 33,144,231, 15, 52, 2,226, 11, 4, 83,227,
/* 0x0240 */ 4, 0, 0, 26,255, 52, 2,226, 1, 32, 66,224,255, 36,194,227,
/* 0x0250 */ 3, 32,130,225, 1, 33,128,231, 0, 0, 81,227,243,255,255, 26,
/* 0x0260 */ 14,240,160,225,240, 1,240,231, 14,240,160,225, 1, 0,144,239,
/* 0x0270 */ 3, 0,144,239, 14,240,160,225, 4, 0,144,239, 14,240,160,225,
/* 0x0280 */ 5, 0,144,239, 14,240,160,225, 6, 0,144,239, 14,240,160,225,
/* 0x0290 */ 10, 0,144,239, 14,240,160,225, 20, 0,144,239, 14,240,160,225,
/* 0x02a0 */ 45, 0,144,239, 14,240,160,225, 85, 0,144,239, 14,240,160,225,
/* 0x02b0 */ 91, 0,144,239, 14,240,160,225,125, 0,144,239, 14,240,160,225,
/* 0x02c0 */ 0, 32,160,227, 2, 0,159,239, 14,240,160,225, 48, 64, 45,233,
/* 0x02d0 */ 16, 80,157,229, 12, 64,157,229, 37, 86,160,225,192, 0,144,239,
/* 0x02e0 */ 48,128,189,232, 60, 0, 31,229, 14,240,160,225, 48, 64, 45,233,
/* 0x02f0 */ 0, 80,160,227, 0, 64,224,227, 36,224, 79,226, 95,255,255,234,
/* 0x0300 */ 0,192,160,225, 1, 16, 65,224, 0, 32,160,225,128, 1,144,224,
/* 0x0310 */ 129, 17,161,224,162, 30,129,224, 0, 32,160,225, 0, 2,144,224,
/* 0x0320 */ 1, 18,161,224, 34, 30,129,224, 0, 32,160,225, 0, 4,144,224,
/* 0x0330 */ 1, 20,161,224, 34, 28,129,224, 0, 32,160,225, 0, 8,144,224,
/* 0x0340 */ 1, 24,161,224, 34, 24,129,224,140, 15, 80,224,172, 16,193,224,
/* 0x0350 */ 12, 0,144,224, 0, 0,161,226, 14,240,160,225, 0, 0, 80,227,
/* 0x0360 */ 14,240,160, 1, 0, 48,144,229, 1, 0, 83,225, 8, 0,128, 18,
/* 0x0370 */ 251,255,255, 26, 4, 32,128,229, 14,240,160,225, 0, 0,159,229,
/* 0x0380 */ 14,240,160,225, 0,240,255,255, 0, 48,144,229, 2, 0, 83,225,
/* 0x0390 */ 4, 48,144,229, 4,224, 45,229, 3,192,160, 33, 2,224,160,225,
/* 0x03a0 */ 2, 32,160, 33, 3, 0, 0, 42,127, 0,160,227,174,255,255,235,
/* 0x03b0 */ 1, 48, 92,229, 1, 48, 65,229, 1, 32, 66,226, 1, 0,114,227,
/* 0x03c0 */ 1,192,140,226, 1, 16,129,226,248,255,255, 26, 4, 32,144,229,
/* 0x03d0 */ 0, 48,144,229, 14, 32,130,224, 3, 48,110,224, 0, 48,128,229,
/* 0x03e0 */ 4, 32,128,229, 4,240,157,228,240, 64, 45,233, 0, 80,160,225,
/* 0x03f0 */ 20,208, 77,226, 1, 64,160,225, 2,112,160,225, 3, 96,160,225,
/* 0x0400 */ 68, 0, 0,234, 4, 16,141,226, 5, 0,160,225, 12, 32,160,227,
/* 0x0410 */ 220,255,255,235, 4,224,157,229, 0, 0, 94,227, 8, 16,157,229,
/* 0x0420 */ 6, 0, 0, 26, 0, 49,159,229, 3, 0, 81,225, 5, 0, 0, 26,
/* 0x0430 */ 0, 48,149,229, 0, 0, 83,227, 2, 0, 0, 26, 56, 0, 0,234,
/* 0x0440 */ 0, 0, 81,227, 1, 0, 0, 26,127, 0,160,227,134,255,255,235,
/* 0x0450 */ 14, 0, 81,225,251,255,255,138, 0, 48,148,229, 3, 0, 94,225,
/* 0x0460 */ 248,255,255,138, 14, 0, 81,225, 33, 0, 0, 42, 12,192,221,229,
/* 0x0470 */ 4, 0,149,229, 4, 32,148,229, 16, 48,141,226, 16,224,141,229,
/* 0x0480 */ 0,192,141,229, 15,224,160,225, 7,240,160,225, 0, 0, 80,227,
/* 0x0490 */ 236,255,255, 26, 16, 16,157,229, 4, 48,157,229, 3, 0, 81,225,
/* 0x04a0 */ 232,255,255, 26, 13, 32,221,229, 0, 0, 82,227, 0, 0, 86, 19,
/* 0x04b0 */ 9, 0, 0, 10, 2, 12, 81,227, 2, 0, 0,138, 0, 48,148,229,
/* 0x04c0 */ 1, 0, 83,225, 4, 0, 0, 26, 2, 48,160,225, 4, 0,148,229,
/* 0x04d0 */ 14, 32,221,229, 15,224,160,225, 6,240,160,225, 8, 48,157,229,
/* 0x04e0 */ 6, 0,149,232, 3, 32,130,224, 1, 16, 99,224, 6, 0,133,232,
/* 0x04f0 */ 3, 0, 0,234, 1, 32,160,225, 5, 0,160,225, 4, 16,148,229,
/* 0x0500 */ 160,255,255,235, 4, 48,157,229, 6, 0,148,232, 3, 32,130,224,
/* 0x0510 */ 1, 16, 99,224, 6, 0,132,232, 0, 48,148,229, 0, 0, 83,227,
/* 0x0520 */ 183,255,255, 26, 20,208,141,226,240,128,189,232, 85, 80, 88, 33,
/* 0x0530 */ 240, 79, 45,233, 1,160,160,225,176,193,218,225, 28, 16,145,229,
/* 0x0540 */ 52,208, 77,226,188,226,218,225, 2, 0, 92,227, 1, 80,138,224,
/* 0x0550 */ 96, 96,157,229, 16, 0,141,229, 16,192,160, 3, 0,192,160, 19,
/* 0x0560 */ 1,224, 78,226, 5, 16,160,225, 0, 0,224,227, 0,112,160,227,
/* 0x0570 */ 12, 32,141,229, 8, 48,141,229, 13, 0, 0,234, 0, 48,145,229,
/* 0x0580 */ 1, 0, 83,227, 8, 0, 0, 26, 20, 48,145,229, 0, 0, 83,227,
/* 0x0590 */ 5, 0, 0, 10, 8, 32,145,229, 2, 48,131,224, 3, 0, 87,225,
/* 0x05a0 */ 3,112,160, 49, 2, 0, 80,225, 2, 0,160, 33, 32, 16,129,226,
/* 0x05b0 */ 1,224, 78,226, 0, 0, 94,227,239,255,255,170,255, 78,192,227,
/* 0x05c0 */ 15, 64,196,227, 7, 48,100,224,255, 62,131,226, 15, 48,131,226,
/* 0x05d0 */ 255, 62,195,227, 36, 48,141,229, 36, 16,157,229, 16, 48, 28,226,
/* 0x05e0 */ 15, 16,193,227, 36, 16,141,229, 4, 96,160, 17, 4, 0, 0, 26,
/* 0x05f0 */ 0, 0, 84,227, 3, 96,160, 17, 1, 0, 0, 26, 0, 0, 86,227,
/* 0x0600 */ 16,192,140, 19, 12, 48,160,225, 0, 32,160,227, 6, 0,160,225,
/* 0x0610 */ 36, 16,157,229, 52,255,255,235, 0, 64,100,224, 52, 48,160,227,
/* 0x0620 */ 4, 32,160,225,147, 2, 2,224, 0, 48,160,227, 28, 0,141,229,
/* 0x0630 */ 20, 64,141,229, 32, 32,141,229, 24, 48,141,229,140, 0, 0,234,
/* 0x0640 */ 0, 48,149,229, 1, 0, 83,227,133, 0, 0, 26, 20, 48,149,229,
/* 0x0650 */ 0, 0, 83,227,130, 0, 0, 10, 12,192,157,229, 0, 0, 92,227,
/* 0x0660 */ 9, 0, 0, 10, 4, 48,149,229, 0, 0, 83,227, 6, 0, 0, 26,
/* 0x0670 */ 5, 16,160,227, 8, 0,157,229, 55,255,255,235, 8, 0,157,229,
/* 0x0680 */ 4, 16,160,227,186, 34,218,225, 51,255,255,235, 24, 48,149,229,
/* 0x0690 */ 80, 34,159,229, 7, 48, 3,226, 3, 49,160,225, 50, 67,160,225,
/* 0x06a0 */ 20, 16,157,229, 8, 48,149,229, 12,192,157,229, 3,176,129,224,
/* 0x06b0 */ 11, 42,160,225, 16, 48,149,229, 20, 16,149,229, 34, 42,160,225,
/* 0x06c0 */ 0, 0, 92,227, 44, 48,141,229, 48,176,141,229, 2,128,131,224,
/* 0x06d0 */ 7,144, 4,226, 40, 16,141,229, 11, 96, 98,224, 14, 0, 0, 10,
/* 0x06e0 */ 6, 0,160,225, 8, 16,160,225, 3, 32,160,227, 16, 48,160,227,
/* 0x06f0 */ 253,254,255,235, 0, 0, 86,225, 73, 0, 0, 26, 92, 32,157,229,
/* 0x0700 */ 4, 48, 20,226, 2, 48,160, 17, 12, 0,157,229, 44, 16,141,226,
/* 0x0710 */ 16, 32,157,229, 51,255,255,235, 11, 0, 0,234, 4,192,149,229,
/* 0x0720 */ 12,192, 98,224, 4,192,141,229, 16,192,157,229, 6, 0,160,225,
/* 0x0730 */ 8, 16,160,225, 9, 32,160,225, 18, 48,160,227, 0,192,141,229,
/* 0x0740 */ 225,254,255,235, 0, 0, 86,225, 53, 0, 0, 26, 0, 48,104,226,
/* 0x0750 */ 3,122,160,225, 2, 0, 25,227, 39,122,160,225, 7, 0, 0, 10,
/* 0x0760 */ 0, 0, 87,227, 5, 0, 0, 10, 8, 16,134,224, 7, 32,160,225,
/* 0x0770 */ 0, 48,160,227, 1, 32, 82,226, 1, 48,193,228,251,255,255, 26,
/* 0x0780 */ 12, 16,157,229, 0, 0, 81,227, 39, 0, 0, 10,212,254,255,235,
/* 0x0790 */ 0, 48,149,229, 1, 0, 83,227, 27, 0, 0, 26, 24, 48,149,229,
/* 0x07a0 */ 1, 0, 19,227, 24, 0, 0, 10, 20, 32,149,229, 16, 48,149,229,
/* 0x07b0 */ 3, 0, 82,225, 8, 16,149,229, 67, 0, 0, 26, 1, 48,130,224,
/* 0x07c0 */ 20, 32,157,229, 3, 48,131,226, 3, 48,130,224, 3, 64,195,227,
/* 0x07d0 */ 0, 48,100,226, 3, 58,160,225, 35, 58,160,225, 7, 0, 83,227,
/* 0x07e0 */ 57, 0, 0,154, 0, 49,159,229, 0, 0,132,229, 8, 16,132,226,
/* 0x07f0 */ 4, 0,160,225, 4, 48,132,229,176,254,255,235, 8, 0,157,229,
/* 0x0800 */ 4, 32,160,225, 0, 16,160,227,211,254,255,235, 6, 0,160,225,
/* 0x0810 */ 8, 16,160,225, 9, 32,160,225,166,254,255,235, 0, 0, 80,227,
/* 0x0820 */ 1, 0, 0, 10,127, 0,160,227,143,254,255,235, 40,192,157,229,
/* 0x0830 */ 7, 48,136,224, 12, 16,139,224, 3, 64,134,224, 1, 0, 84,225,
/* 0x0840 */ 7, 0, 0, 42, 1, 16,100,224, 9, 32,160,225, 4, 0,160,225,
/* 0x0850 */ 16, 48,160,227,164,254,255,235, 0, 0, 84,225, 0, 0, 0, 10,
/* 0x0860 */ 254,255,255,234, 24, 16,157,229, 1, 16,129,226, 24, 16,141,229,
/* 0x0870 */ 32, 80,133,226,188, 34,218,225, 24, 48,157,229, 2, 0, 83,225,
/* 0x0880 */ 110,255,255,186, 12,192,157,229, 0, 0, 92,227, 5, 0, 0, 10,
/* 0x0890 */ 176, 49,218,225, 3, 0, 83,227, 36, 16,157, 21, 28, 32,157, 21,
/* 0x08a0 */ 2, 0,129, 16,125,254,255, 27, 88, 48,157,229, 0, 0, 83,227,
/* 0x08b0 */ 20,192,157, 21, 0,192,131, 21, 20, 48,157,229, 24, 0,154,229,
/* 0x08c0 */ 0, 0,131,224, 52,208,141,226,240,143,189,232, 4, 48,149,229,
/* 0x08d0 */ 0, 0, 83,227, 32, 32,157, 5, 2, 48,129, 0, 8, 64,131, 2,
/* 0x08e0 */ 191,255,255, 10,200,255,255,234, 64, 98, 81,115, 14,240,160,225,
/* 0x08f0 */ 240, 79, 45,233, 16,208, 77,226, 60,112,141,226, 0,176,160,225,
/* 0x0900 */ 1,128,160,225, 3,160,160,225, 7, 0,160,225, 52, 16,141,226,
/* 0x0910 */ 0, 48,160,227, 56,144,157,229, 2, 80,160,225, 60, 64,157,229,
/* 0x0920 */ 176,254,255,235, 68, 48,157,229, 16,224,141,226, 4, 48, 46,229,
/* 0x0930 */ 64,192,157,229, 68, 96,157,229, 12,192,100,224, 7, 32,160,225,
/* 0x0940 */ 9, 16,160,225, 11, 48,160,225, 5, 0,160,225, 64,192,141,229,
/* 0x0950 */ 0,224,141,229, 60,128,141,229, 4,160,141,229, 8, 96,141,229,
/* 0x0960 */ 242,254,255,235, 0, 64,160,225, 9, 16,160,227, 11, 0,160,225,
/* 0x0970 */ 4, 32,160,225,120,254,255,235,188, 2,217,225, 52, 32,137,226,
/* 0x0980 */ 0, 16,160,227, 36, 0, 0,234, 0, 48,146,229, 3, 0, 83,227,
/* 0x0990 */ 31, 0, 0, 26, 8, 48,146,229, 12, 0,157,229, 0, 16,160,227,
/* 0x09a0 */ 0, 0,131,224, 1, 32,160,225, 52,254,255,235, 0, 80, 80,226,
/* 0x09b0 */ 4, 0, 0,186, 9, 16,160,225, 2, 44,160,227, 43,254,255,235,
/* 0x09c0 */ 2, 12, 80,227, 1, 0, 0, 10,127, 0,160,227, 38,254,255,235,
/* 0x09d0 */ 0,224,160,227, 14, 32,160,225, 12,192,141,226, 9, 16,160,225,
/* 0x09e0 */ 11, 48,160,225, 5, 0,160,225, 0, 80,141,232, 8,224,141,229,
/* 0x09f0 */ 206,254,255,235, 7, 16,160,227, 0, 64,160,225, 12, 32,157,229,
/* 0x0a00 */ 11, 0,160,225, 84,254,255,235, 5, 0,160,225, 29,254,255,235,
/* 0x0a10 */ 3, 0, 0,234, 32, 32,130,226, 1, 16,129,226, 0, 0, 81,225,
/* 0x0a20 */ 216,255,255,186, 4, 0,160,225, 16,208,141,226,240,143,189,232
};

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/* arm.v5a-linux.elf-fold.h
created from arm.v5a-linux.elf-fold.bin, 2836 (0xb14) bytes
created from arm.v5a-linux.elf-fold.bin, 2764 (0xacc) bytes
This file is part of the UPX executable compressor.
@ -31,187 +31,182 @@
*/
#define STUB_ARM_V5A_LINUX_ELF_FOLD_SIZE 2836
#define STUB_ARM_V5A_LINUX_ELF_FOLD_ADLER32 0x149b9c6a
#define STUB_ARM_V5A_LINUX_ELF_FOLD_CRC32 0x4102d894
#define STUB_ARM_V5A_LINUX_ELF_FOLD_SIZE 2764
#define STUB_ARM_V5A_LINUX_ELF_FOLD_ADLER32 0xd5d6876c
#define STUB_ARM_V5A_LINUX_ELF_FOLD_CRC32 0x2be13b96
unsigned char stub_arm_v5a_linux_elf_fold[2836] = {
unsigned char stub_arm_v5a_linux_elf_fold[2764] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 40, 0, 1, 0, 0, 0,128,128, 0, 0, 52, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 2, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0,
/* 0x0040 */ 0,128, 0, 0, 20, 11, 0, 0, 20, 11, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0,128, 0, 0, 1, 0, 0, 0, 20, 11, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 0,128, 0, 0,204, 10, 0, 0,204, 10, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0,128, 0, 0, 1, 0, 0, 0,204, 10, 0, 0, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 240, 31,189,232, 13, 16,160,225, 1,218, 77,226, 13, 0,160,225,
/* 0x0090 */ 240, 31, 45,233, 10,176,160,225, 4, 48,145,228, 0, 0, 83,227,
/* 0x00a0 */ 4, 48,128,228,251,255,255, 26, 0, 64,160,225, 4, 48,128,228,
/* 0x00b0 */ 4, 48,145,228, 0, 0, 83,227, 4, 48,128,228,251,255,255, 26,
/* 0x00c0 */ 1, 80,160,225, 12, 0,177,232, 0, 0, 82,227, 12, 0,160,232,
/* 0x00d0 */ 251,255,255, 26, 1, 96,160,225, 0,144,160,225, 1, 42,160,227,
/* 0x00e0 */ 0, 16,160,225, 82, 15,143,226, 1, 32, 66,226,144, 0, 0,235,
/* 0x00f0 */ 0, 32,129,224, 1, 10,112,227, 1, 0, 0, 58, 19, 30,143,226,
/* 0x0100 */ 14, 32,129,226, 6, 0,160,225, 0, 48,160,227, 1, 48, 96,229,
/* 0x0110 */ 1, 48,114,229, 1, 48, 96,229, 2, 0, 81,225,251,255,255, 26,
/* 0x0120 */ 61, 48,160,227, 1, 48, 96,229, 32, 48,160,227, 1, 48, 96,229,
/* 0x0130 */ 1, 48, 96,229, 1, 48, 96,229, 0, 0,132,229, 32, 1,160,225,
/* 0x0140 */ 0, 1,160,225, 0, 48, 38,224, 4, 48, 3,226, 4, 48, 35,226,
/* 0x0150 */ 3, 0, 64,224, 6, 48, 64,224, 5, 48,131,224, 9, 16,160,225,
/* 0x0160 */ 24, 0,141,229, 4, 32, 49,229, 13, 0, 81,225, 4, 32, 32,229,
/* 0x0170 */ 251,255,255, 26, 0,208,160,225,180, 0,143,226, 0, 16,160,227,
/* 0x0180 */ 82, 0, 0,235, 12, 0,141,229, 11, 80,160,225, 0, 14,189,232,
/* 0x0190 */ 10,220, 77,226, 9, 64,160,225, 4,144,154,229, 13,128,160,225,
/* 0x01a0 */ 0,112,154,229,152, 96,143,226, 12,144,137,226,248, 15, 45,233,
/* 0x01b0 */ 15, 0,189,232, 9, 2, 0,235, 20,208,141,226, 10,220,141,226,
/* 0x01c0 */ 16, 0,141,229, 0, 80,160,227, 0, 64,157,229, 2, 48,160,227,
/* 0x01d0 */ 1, 32,160,227, 1, 26,160,227, 0, 0,160,227,106, 0, 0,235,
/* 0x01e0 */ 4, 0,157,228, 62, 0, 0,235, 7, 64,189,232, 0, 48,160,227,
/* 0x01f0 */ 0, 64,160,227, 0, 80,160,227, 0, 96,160,227, 0,128,160,227,
/* 0x0200 */ 0,144,160,227, 0,160,160,227, 0,176,160,227, 2,199, 77,226,
/* 0x0210 */ 32,112, 29,228, 0,112,141,229, 0,112,157,229, 13, 0, 92,225,
/* 0x0220 */ 250,255,255, 58, 2,215,141,226, 0,192,160,227, 91,112,160,227,
/* 0x0230 */ 4,240, 18,229, 47,112,114,111, 99, 47,115,101,108,102, 47,101,
/* 0x0240 */ 120,101, 0, 0,255, 48, 3,226, 80, 0, 83,227, 14,240,160, 17,
/* 0x0250 */ 33, 17,176,225, 0, 0, 80, 19, 14,240,160, 1, 1, 16, 65,226,
/* 0x0260 */ 1, 33,144,231, 15, 52, 2,226, 11, 4, 83,227, 4, 0, 0, 26,
/* 0x0270 */ 255, 52, 2,226, 1, 32, 66,224,255, 36,194,227, 3, 32,130,225,
/* 0x0280 */ 1, 33,128,231, 0, 0, 81,227,243,255,255, 26, 14,240,160,225,
/* 0x0290 */ 240, 1,240,231, 14,240,160,225, 7,192,160,225, 1,112,160,227,
/* 0x02a0 */ 0, 0, 0,239, 12,112,160,225, 7,192,160,225, 3,112,160,227,
/* 0x02b0 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 7,192,160,225,
/* 0x02c0 */ 4,112,160,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225,
/* 0x02d0 */ 7,192,160,225, 5,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x02e0 */ 14,240,160,225, 7,192,160,225, 6,112,160,227, 0, 0, 0,239,
/* 0x02f0 */ 12,112,160,225, 14,240,160,225, 7,192,160,225, 10,112,160,227,
/* 0x0300 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 7,192,160,225,
/* 0x0310 */ 20,112,160,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225,
/* 0x0320 */ 7,192,160,225, 45,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x0330 */ 14,240,160,225, 7,192,160,225, 85,112,160,227, 0, 0, 0,239,
/* 0x0340 */ 12,112,160,225, 14,240,160,225, 7,192,160,225, 91,112,160,227,
/* 0x0350 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 7,192,160,225,
/* 0x0360 */ 125,112,160,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225,
/* 0x0370 */ 0, 32,160,227, 7,192,160,225, 2,112,160,227, 15,120,135,227,
/* 0x0380 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 48, 64, 45,233,
/* 0x0390 */ 16, 80,157,229, 12, 64,157,229, 37, 86,160,225, 7,192,160,225,
/* 0x03a0 */ 192,112,160,227, 0, 0, 0,239, 12,112,160,225, 48,128,189,232,
/* 0x03b0 */ 104, 0, 31,229, 14,240,160,225, 48, 64, 45,233, 0, 80,160,227,
/* 0x03c0 */ 0, 64,224,227, 48,224, 79,226, 42,255,255,234, 0,192,160,225,
/* 0x03d0 */ 1, 16, 65,224, 0, 32,160,225,128, 1,144,224,129, 17,161,224,
/* 0x03e0 */ 162, 30,129,224, 0, 32,160,225, 0, 2,144,224, 1, 18,161,224,
/* 0x03f0 */ 34, 30,129,224, 0, 32,160,225, 0, 4,144,224, 1, 20,161,224,
/* 0x0400 */ 34, 28,129,224, 0, 32,160,225, 0, 8,144,224, 1, 24,161,224,
/* 0x0410 */ 34, 24,129,224,140, 15, 80,224,172, 16,193,224, 12, 0,144,224,
/* 0x0420 */ 0, 0,161,226, 14,240,160,225, 0, 0, 80,227, 30,255, 47, 1,
/* 0x0430 */ 0, 48,144,229, 1, 0, 83,225, 8, 0,128, 18,251,255,255, 26,
/* 0x0440 */ 4, 32,128,229, 30,255, 47,225, 0, 0,159,229, 30,255, 47,225,
/* 0x0450 */ 0,240,255,255, 0, 48,144,229, 4,224, 45,229, 2, 0, 83,225,
/* 0x0460 */ 4, 48,144,229, 2,224,160,225, 3,192,160, 33, 2, 32,160, 33,
/* 0x0470 */ 3, 0, 0, 42,127, 0,160,227,134,255,255,235, 1, 48, 92,229,
/* 0x0480 */ 1, 48, 65,229, 1, 32, 66,226, 1, 0,114,227, 1,192,140,226,
/* 0x0490 */ 1, 16,129,226,248,255,255, 26, 4, 32,144,229, 0, 48,144,229,
/* 0x04a0 */ 14, 32,130,224, 3, 48,110,224, 0, 48,128,229, 4, 32,128,229,
/* 0x04b0 */ 4,240,157,228,240, 64, 45,233, 0, 80,160,225, 20,208, 77,226,
/* 0x04c0 */ 1, 64,160,225, 2,112,160,225, 3, 96,160,225, 66, 0, 0,234,
/* 0x04d0 */ 4, 16,141,226, 5, 0,160,225, 12, 32,160,227,220,255,255,235,
/* 0x04e0 */ 4,224,157,229, 8, 16,157,229, 0, 0, 94,227, 6, 0, 0, 26,
/* 0x04f0 */ 248, 48,159,229, 3, 0, 81,225, 5, 0, 0, 26, 0, 48,149,229,
/* 0x0500 */ 0, 0, 83,227, 2, 0, 0, 26, 54, 0, 0,234, 0, 0, 81,227,
/* 0x0510 */ 1, 0, 0, 26,127, 0,160,227, 94,255,255,235, 14, 0, 81,225,
/* 0x0520 */ 251,255,255,138, 0, 48,148,229, 3, 0, 94,225,248,255,255,138,
/* 0x0530 */ 14, 0, 81,225, 31, 0, 0, 42, 12,192,221,229, 4, 0,149,229,
/* 0x0540 */ 4, 32,148,229, 16, 48,141,226, 16,224,141,229, 0,192,141,229,
/* 0x0550 */ 55,255, 47,225, 0, 0, 80,227,237,255,255, 26, 16, 16,157,229,
/* 0x0560 */ 4, 48,157,229, 3, 0, 81,225,233,255,255, 26, 13, 32,221,229,
/* 0x0570 */ 0, 0, 82,227, 0, 0, 86, 19, 8, 0, 0, 10, 2, 12, 81,227,
/* 0x0580 */ 2, 0, 0,138, 0, 48,148,229, 1, 0, 83,225, 3, 0, 0, 26,
/* 0x0590 */ 2, 48,160,225, 4, 0,148,229, 14, 32,221,229, 54,255, 47,225,
/* 0x05a0 */ 8, 48,157,229, 6, 0,149,232, 3, 32,130,224, 1, 16, 99,224,
/* 0x05b0 */ 6, 0,133,232, 3, 0, 0,234, 1, 32,160,225, 5, 0,160,225,
/* 0x05c0 */ 4, 16,148,229,162,255,255,235, 4, 48,157,229, 6, 0,148,232,
/* 0x05d0 */ 3, 32,130,224, 1, 16, 99,224, 6, 0,132,232, 0, 48,148,229,
/* 0x05e0 */ 0, 0, 83,227,185,255,255, 26, 20,208,141,226,240,128,189,232,
/* 0x05f0 */ 85, 80, 88, 33,240, 79, 45,233, 1,160,160,225,176,193,218,225,
/* 0x0600 */ 28, 16,145,229,188,226,218,225, 52,208, 77,226, 2, 0, 92,227,
/* 0x0610 */ 1, 96,138,224, 16, 0,141,229, 16, 80,160, 3, 0, 80,160, 19,
/* 0x0620 */ 1,224, 78,226, 6, 16,160,225, 0, 0,224,227, 0,192,160,227,
/* 0x0630 */ 12, 32,141,229, 8, 48,141,229, 13, 0, 0,234, 0, 48,145,229,
/* 0x0640 */ 1, 0, 83,227, 8, 0, 0, 26, 20, 48,145,229, 0, 0, 83,227,
/* 0x0650 */ 5, 0, 0, 10, 8, 32,145,229, 2, 48,131,224, 3, 0, 92,225,
/* 0x0660 */ 3,192,160, 49, 2, 0, 80,225, 2, 0,160, 33, 32, 16,129,226,
/* 0x0670 */ 1,224, 78,226, 0, 0, 94,227,239,255,255,170,255, 78,192,227,
/* 0x0680 */ 15, 64,196,227, 12, 48,100,224,255, 62,131,226, 15, 48,131,226,
/* 0x0690 */ 16, 32, 5,226,255, 62,195,227, 0, 0, 82,227, 15, 48,195,227,
/* 0x06a0 */ 40, 48,141,229, 28, 64,141, 21, 4, 0, 0, 26, 5, 48,160,225,
/* 0x06b0 */ 4, 0,160,225, 40, 16,157,229, 62,255,255,235, 28, 0,141,229,
/* 0x06c0 */ 28, 0,157,229, 52, 48,160,227, 0,144,100,224,153, 3, 3,224,
/* 0x06d0 */ 0, 16,160,227, 32, 80,134,226, 32, 48,141,229, 24, 16,141,229,
/* 0x06e0 */ 160, 0, 0,234, 12, 32,157,229, 0, 0, 82,227, 8, 0, 0, 10,
/* 0x06f0 */ 32, 48, 21,229, 6, 0, 83,227, 5, 0, 0, 26, 24, 32, 21,229,
/* 0x0700 */ 8, 0,157,229, 2, 32,137,224, 3, 16,160,227, 69,255,255,235,
/* 0x0710 */ 144, 0, 0,234, 32, 48, 21,229, 1, 0, 83,227,141, 0, 0, 26,
/* 0x0720 */ 12, 48, 21,229, 0, 0, 83,227,138, 0, 0, 10, 12, 48,157,229,
/* 0x0730 */ 0, 0, 83,227, 17, 0, 0, 10, 28, 48, 21,229, 0, 0, 83,227,
/* 0x0740 */ 14, 0, 0, 26, 28, 48,154,229, 24, 32, 21,229, 3, 16,160,227,
/* 0x0750 */ 3, 32,130,224, 2, 32,137,224, 8, 0,157,229, 49,255,255,235,
/* 0x0760 */ 8, 0,157,229, 5, 16,160,227,188, 34,218,225, 45,255,255,235,
/* 0x0770 */ 8, 0,157,229, 4, 16,160,227,186, 34,218,225, 41,255,255,235,
/* 0x0780 */ 8, 48, 21,229, 76, 34,159,229, 7, 48, 3,226, 3, 49,160,225,
/* 0x0790 */ 50, 67,160,225, 24, 48, 21,229, 12,192,157,229, 3, 48,137,224,
/* 0x07a0 */ 20, 48,141,229, 16, 32, 21,229, 20, 0,157,229, 3, 58,160,225,
/* 0x07b0 */ 12, 16, 21,229, 35, 58,160,225, 0, 0, 92,227, 44, 32,141,229,
/* 0x07c0 */ 48, 0,141,229, 3,128,130,224, 7,176, 4,226, 36, 16,141,229,
/* 0x07d0 */ 0, 96, 99,224, 14, 0, 0, 10, 6, 0,160,225, 8, 16,160,225,
/* 0x07e0 */ 3, 32,160,227, 16, 48,160,227,242,254,255,235, 0, 0, 86,225,
/* 0x07f0 */ 72, 0, 0, 26, 92, 32,157,229, 4, 48, 20,226, 2, 48,160, 17,
/* 0x0800 */ 12, 0,157,229, 44, 16,141,226, 16, 32,157,229, 40,255,255,235,
/* 0x0810 */ 11, 0, 0,234, 28,192, 21,229, 6, 0,160,225, 12,192, 99,224,
/* 0x0820 */ 4,192,141,229, 16,192,157,229, 8, 16,160,225, 11, 32,160,225,
/* 0x0830 */ 18, 48,160,227, 0,192,141,229,211,254,255,235, 0, 0, 86,225,
/* 0x0840 */ 52, 0, 0, 26, 0, 48,104,226, 3,122,160,225, 2, 0, 27,227,
/* 0x0850 */ 39,122,160,225, 7, 0, 0, 10, 0, 0, 87,227, 5, 0, 0, 10,
/* 0x0860 */ 8, 16,134,224, 7, 32,160,225, 0, 48,160,227, 1, 32, 82,226,
/* 0x0870 */ 1, 48,193,228,251,255,255, 26, 12, 0,157,229, 0, 0, 80,227,
/* 0x0880 */ 38, 0, 0, 10,201,254,255,235, 32, 48, 21,229, 1, 0, 83,227,
/* 0x0890 */ 26, 0, 0, 26, 8, 48, 21,229, 1, 0, 19,227, 23, 0, 0, 10,
/* 0x08a0 */ 12, 32, 21,229, 16, 48, 21,229, 24, 16, 21,229, 3, 0, 82,225,
/* 0x08b0 */ 65, 0, 0, 26, 1, 48,130,224, 3, 48,131,226, 3, 48,137,224,
/* 0x08c0 */ 3, 64,195,227, 0, 48,100,226, 3, 58,160,225, 35, 58,160,225,
/* 0x08d0 */ 7, 0, 83,227, 56, 0, 0,154,252, 48,159,229, 0, 0,132,229,
/* 0x08e0 */ 8, 16,132,226, 4, 0,160,225, 4, 48,132,229,159,254,255,235,
/* 0x08f0 */ 8, 0,157,229, 4, 32,160,225, 0, 16,160,227,201,254,255,235,
/* 0x0900 */ 6, 0,160,225, 8, 16,160,225, 11, 32,160,225,146,254,255,235,
/* 0x0910 */ 0, 0, 80,227, 1, 0, 0, 10,127, 0,160,227, 93,254,255,235,
/* 0x0920 */ 20, 32,157,229, 36,192,157,229, 7, 48,136,224, 12, 16,130,224,
/* 0x0930 */ 3, 64,134,224, 1, 0, 84,225, 6, 0, 0, 42, 1, 16,100,224,
/* 0x0940 */ 11, 32,160,225, 4, 0,160,225, 16, 48,160,227,153,254,255,235,
/* 0x0950 */ 0, 0, 84,225,239,255,255, 26, 24, 0,157,229, 32, 80,133,226,
/* 0x0960 */ 1, 0,128,226, 24, 0,141,229,188, 50,218,225, 24, 16,157,229,
/* 0x0970 */ 3, 0, 81,225, 90,255,255,186, 12, 32,157,229, 0, 0, 82,227,
/* 0x0980 */ 6, 0, 0, 10,176, 49,218,225, 3, 0, 83,227, 3, 0, 0, 10,
/* 0x0990 */ 28, 48,157,229, 40,192,157,229, 12, 0,131,224, 95,254,255,235,
/* 0x09a0 */ 88, 0,157,229, 0, 0, 80,227, 0,144,128, 21, 24, 0,154,229,
/* 0x09b0 */ 0, 0,137,224, 52,208,141,226,240,143,189,232, 28, 48, 21,229,
/* 0x09c0 */ 0, 0, 83,227, 32, 32,157, 5, 2, 48,129, 0, 8, 64,131, 2,
/* 0x09d0 */ 192,255,255, 10,201,255,255,234, 64, 98, 81,115, 14,240,160,225,
/* 0x09e0 */ 240, 71, 45,233, 12,208, 77,226, 52, 96,141,226, 0,144,160,225,
/* 0x09f0 */ 1,112,160,225, 3,128,160,225, 6, 0,160,225, 44, 16,141,226,
/* 0x0a00 */ 0, 48,160,227, 48,160,157,229, 2, 80,160,225, 52, 64,157,229,
/* 0x0a10 */ 167,254,255,235, 60, 48,157,229, 56,192,157,229, 12,224,141,226,
/* 0x0a20 */ 4, 48, 46,229, 12,192,100,224, 6, 32,160,225, 10, 16,160,225,
/* 0x0a30 */ 9, 48,160,225, 5, 0,160,225, 56,192,141,229, 0,224,141,229,
/* 0x0a40 */ 52,112,141,229, 4,128,141,229,233,254,255,235, 0, 64,160,225,
/* 0x0a50 */ 9, 16,160,227, 9, 0,160,225, 4, 32,160,225,113,254,255,235,
/* 0x0a60 */ 188, 2,218,225, 52, 32,138,226, 0, 16,160,227, 35, 0, 0,234,
/* 0x0a70 */ 0, 48,146,229, 3, 0, 83,227, 30, 0, 0, 26, 8, 48,146,229,
/* 0x0a80 */ 8, 0,157,229, 0, 16,160,227, 0, 0,131,224, 1, 32,160,225,
/* 0x0a90 */ 14,254,255,235, 0, 80, 80,226, 4, 0, 0,186, 10, 16,160,225,
/* 0x0aa0 */ 2, 44,160,227,255,253,255,235, 2, 12, 80,227, 1, 0, 0, 10,
/* 0x0ab0 */ 127, 0,160,227,247,253,255,235, 0,224,160,227, 14, 32,160,225,
/* 0x0ac0 */ 8,192,141,226, 10, 16,160,225, 9, 48,160,225, 5, 0,160,225,
/* 0x0ad0 */ 0, 80,141,232,198,254,255,235, 7, 16,160,227, 0, 64,160,225,
/* 0x0ae0 */ 8, 32,157,229, 9, 0,160,225, 78,254,255,235, 5, 0,160,225,
/* 0x0af0 */ 251,253,255,235, 3, 0, 0,234, 32, 32,130,226, 1, 16,129,226,
/* 0x0b00 */ 0, 0, 81,225,217,255,255,186, 4, 0,160,225, 12,208,141,226,
/* 0x0b10 */ 240,135,189,232
/* 0x0080 */ 0, 48,131,227, 14,240,160,225,192, 31,189,232, 13, 16,160,225,
/* 0x0090 */ 1,218, 77,226, 13, 0,160,225,240, 31, 45,233, 4, 48,145,228,
/* 0x00a0 */ 0, 0, 83,227, 4, 48,128,228,251,255,255, 26, 0, 64,160,225,
/* 0x00b0 */ 4, 48,128,228, 4, 48,145,228, 0, 0, 83,227, 4, 48,128,228,
/* 0x00c0 */ 251,255,255, 26, 1, 80,160,225, 12, 0,177,232, 0, 0, 82,227,
/* 0x00d0 */ 12, 0,160,232,251,255,255, 26, 1, 96,160,225, 0,144,160,225,
/* 0x00e0 */ 1, 42,160,227, 0, 16,160,225, 70, 15,143,226, 1, 32, 66,226,
/* 0x00f0 */ 132, 0, 0,235, 0, 32,129,224, 1, 10,112,227, 1, 0, 0, 58,
/* 0x0100 */ 1, 28,143,226, 14, 32,129,226, 6, 0,160,225, 0, 48,160,227,
/* 0x0110 */ 1, 48, 96,229, 1, 48,114,229, 1, 48, 96,229, 2, 0, 81,225,
/* 0x0120 */ 251,255,255, 26, 61, 48,160,227, 1, 48, 96,229, 32, 48,160,227,
/* 0x0130 */ 1, 48, 96,229, 1, 48, 96,229, 1, 48, 96,229, 0, 0,132,229,
/* 0x0140 */ 32, 1,160,225, 0, 1,160,225, 0, 48, 38,224, 4, 48, 3,226,
/* 0x0150 */ 4, 48, 35,226, 3, 0, 64,224, 6, 48, 64,224, 5, 48,131,224,
/* 0x0160 */ 9, 16,160,225, 24, 80,157,229, 24, 0,141,229, 4, 32, 49,229,
/* 0x0170 */ 13, 0, 81,225, 4, 32, 32,229,251,255,255, 26, 0,208,160,225,
/* 0x0180 */ 16, 12,189,232, 10,220, 77,226, 4,144,154,229, 13,128,160,225,
/* 0x0190 */ 0,112,154,229,124, 96,143,226, 12,144,137,226,248, 15, 45,233,
/* 0x01a0 */ 15, 0,189,232,248, 1, 0,235, 20,208,141,226, 10,220,141,226,
/* 0x01b0 */ 16, 0,141,229, 0, 80,160,227, 0, 64,189,229, 2, 48,160,227,
/* 0x01c0 */ 1, 32,160,227, 1, 26,160,227, 0, 0,160,227, 99, 0, 0,235,
/* 0x01d0 */ 4, 0,157,228, 55, 0, 0,235, 7, 64,189,232, 0, 48,160,227,
/* 0x01e0 */ 0, 64,160,227, 0, 80,160,227, 0, 96,160,227, 0,128,160,227,
/* 0x01f0 */ 0,144,160,227, 0,160,160,227, 0,176,160,227, 0,192,160,227,
/* 0x0200 */ 91,112,160,227, 4,240, 18,229, 47,112,114,111, 99, 47,115,101,
/* 0x0210 */ 108,102, 47,101,120,101, 0, 0,255, 48, 3,226, 80, 0, 83,227,
/* 0x0220 */ 14,240,160, 17, 33, 17,176,225, 0, 0, 80, 19, 14,240,160, 1,
/* 0x0230 */ 1, 16, 65,226, 1, 33,144,231, 15, 52, 2,226, 11, 4, 83,227,
/* 0x0240 */ 4, 0, 0, 26,255, 52, 2,226, 1, 32, 66,224,255, 36,194,227,
/* 0x0250 */ 3, 32,130,225, 1, 33,128,231, 0, 0, 81,227,243,255,255, 26,
/* 0x0260 */ 14,240,160,225,240, 1,240,231, 14,240,160,225, 7,192,160,225,
/* 0x0270 */ 1,112,160,227, 0, 0, 0,239, 12,112,160,225, 7,192,160,225,
/* 0x0280 */ 3,112,160,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225,
/* 0x0290 */ 7,192,160,225, 4,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x02a0 */ 14,240,160,225, 7,192,160,225, 5,112,160,227, 0, 0, 0,239,
/* 0x02b0 */ 12,112,160,225, 14,240,160,225, 7,192,160,225, 6,112,160,227,
/* 0x02c0 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 7,192,160,225,
/* 0x02d0 */ 10,112,160,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225,
/* 0x02e0 */ 7,192,160,225, 20,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x02f0 */ 14,240,160,225, 7,192,160,225, 45,112,160,227, 0, 0, 0,239,
/* 0x0300 */ 12,112,160,225, 14,240,160,225, 7,192,160,225, 85,112,160,227,
/* 0x0310 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 7,192,160,225,
/* 0x0320 */ 91,112,160,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225,
/* 0x0330 */ 7,192,160,225,125,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x0340 */ 14,240,160,225, 0, 32,160,227, 7,192,160,225, 2,112,160,227,
/* 0x0350 */ 15,120,135,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225,
/* 0x0360 */ 48, 64, 45,233, 16, 80,157,229, 12, 64,157,229, 37, 86,160,225,
/* 0x0370 */ 7,192,160,225,192,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x0380 */ 48,128,189,232,104, 0, 31,229, 14,240,160,225, 48, 64, 45,233,
/* 0x0390 */ 0, 80,160,227, 0, 64,224,227, 48,224, 79,226, 55,255,255,234,
/* 0x03a0 */ 0,192,160,225, 1, 16, 65,224, 0, 32,160,225,128, 1,144,224,
/* 0x03b0 */ 129, 17,161,224,162, 30,129,224, 0, 32,160,225, 0, 2,144,224,
/* 0x03c0 */ 1, 18,161,224, 34, 30,129,224, 0, 32,160,225, 0, 4,144,224,
/* 0x03d0 */ 1, 20,161,224, 34, 28,129,224, 0, 32,160,225, 0, 8,144,224,
/* 0x03e0 */ 1, 24,161,224, 34, 24,129,224,140, 15, 80,224,172, 16,193,224,
/* 0x03f0 */ 12, 0,144,224, 0, 0,161,226, 14,240,160,225, 0, 0, 80,227,
/* 0x0400 */ 30,255, 47, 1, 0, 48,144,229, 1, 0, 83,225, 8, 0,128, 18,
/* 0x0410 */ 251,255,255, 26, 4, 32,128,229, 30,255, 47,225, 0, 0,159,229,
/* 0x0420 */ 30,255, 47,225, 0,240,255,255, 0, 48,144,229, 4,224, 45,229,
/* 0x0430 */ 2, 0, 83,225, 4, 48,144,229, 2,224,160,225, 3,192,160, 33,
/* 0x0440 */ 2, 32,160, 33, 3, 0, 0, 42,127, 0,160,227,134,255,255,235,
/* 0x0450 */ 1, 48, 92,229, 1, 48, 65,229, 1, 32, 66,226, 1, 0,114,227,
/* 0x0460 */ 1,192,140,226, 1, 16,129,226,248,255,255, 26, 4, 32,144,229,
/* 0x0470 */ 0, 48,144,229, 14, 32,130,224, 3, 48,110,224, 0, 48,128,229,
/* 0x0480 */ 4, 32,128,229, 4,240,157,228,240, 64, 45,233, 0, 80,160,225,
/* 0x0490 */ 20,208, 77,226, 1, 64,160,225, 2,112,160,225, 3, 96,160,225,
/* 0x04a0 */ 66, 0, 0,234, 4, 16,141,226, 5, 0,160,225, 12, 32,160,227,
/* 0x04b0 */ 220,255,255,235, 4,224,157,229, 8, 16,157,229, 0, 0, 94,227,
/* 0x04c0 */ 6, 0, 0, 26,248, 48,159,229, 3, 0, 81,225, 5, 0, 0, 26,
/* 0x04d0 */ 0, 48,149,229, 0, 0, 83,227, 2, 0, 0, 26, 54, 0, 0,234,
/* 0x04e0 */ 0, 0, 81,227, 1, 0, 0, 26,127, 0,160,227, 94,255,255,235,
/* 0x04f0 */ 14, 0, 81,225,251,255,255,138, 0, 48,148,229, 3, 0, 94,225,
/* 0x0500 */ 248,255,255,138, 14, 0, 81,225, 31, 0, 0, 42, 12,192,221,229,
/* 0x0510 */ 4, 0,149,229, 4, 32,148,229, 16, 48,141,226, 16,224,141,229,
/* 0x0520 */ 0,192,141,229, 55,255, 47,225, 0, 0, 80,227,237,255,255, 26,
/* 0x0530 */ 16, 16,157,229, 4, 48,157,229, 3, 0, 81,225,233,255,255, 26,
/* 0x0540 */ 13, 32,221,229, 0, 0, 82,227, 0, 0, 86, 19, 8, 0, 0, 10,
/* 0x0550 */ 2, 12, 81,227, 2, 0, 0,138, 0, 48,148,229, 1, 0, 83,225,
/* 0x0560 */ 3, 0, 0, 26, 2, 48,160,225, 4, 0,148,229, 14, 32,221,229,
/* 0x0570 */ 54,255, 47,225, 8, 48,157,229, 6, 0,149,232, 3, 32,130,224,
/* 0x0580 */ 1, 16, 99,224, 6, 0,133,232, 3, 0, 0,234, 1, 32,160,225,
/* 0x0590 */ 5, 0,160,225, 4, 16,148,229,162,255,255,235, 4, 48,157,229,
/* 0x05a0 */ 6, 0,148,232, 3, 32,130,224, 1, 16, 99,224, 6, 0,132,232,
/* 0x05b0 */ 0, 48,148,229, 0, 0, 83,227,185,255,255, 26, 20,208,141,226,
/* 0x05c0 */ 240,128,189,232, 85, 80, 88, 33,240, 79, 45,233, 1,160,160,225,
/* 0x05d0 */ 176,193,218,225, 28, 16,145,229, 52,208, 77,226,188,226,218,225,
/* 0x05e0 */ 2, 0, 92,227, 1, 80,138,224, 96, 96,157,229, 16, 0,141,229,
/* 0x05f0 */ 16,192,160, 3, 0,192,160, 19, 1,224, 78,226, 5, 16,160,225,
/* 0x0600 */ 0, 0,224,227, 0,112,160,227, 12, 32,141,229, 8, 48,141,229,
/* 0x0610 */ 13, 0, 0,234, 0, 48,145,229, 1, 0, 83,227, 8, 0, 0, 26,
/* 0x0620 */ 20, 48,145,229, 0, 0, 83,227, 5, 0, 0, 10, 8, 32,145,229,
/* 0x0630 */ 2, 48,131,224, 3, 0, 87,225, 3,112,160, 49, 2, 0, 80,225,
/* 0x0640 */ 2, 0,160, 33, 32, 16,129,226, 1,224, 78,226, 0, 0, 94,227,
/* 0x0650 */ 239,255,255,170,255, 78,192,227, 15, 64,196,227, 7, 48,100,224,
/* 0x0660 */ 255, 62,131,226, 15, 48,131,226,255, 62,195,227, 36, 48,141,229,
/* 0x0670 */ 36, 16,157,229, 16, 48, 28,226, 15, 16,193,227, 36, 16,141,229,
/* 0x0680 */ 4, 96,160, 17, 4, 0, 0, 26, 0, 0, 84,227, 3, 96,160, 17,
/* 0x0690 */ 1, 0, 0, 26, 0, 0, 86,227, 16,192,140, 19, 12, 48,160,225,
/* 0x06a0 */ 0, 32,160,227, 6, 0,160,225, 36, 16,157,229, 54,255,255,235,
/* 0x06b0 */ 0, 64,100,224, 52, 48,160,227, 4, 32,160,225,147, 2, 2,224,
/* 0x06c0 */ 0, 48,160,227, 28, 0,141,229, 20, 64,141,229, 32, 32,141,229,
/* 0x06d0 */ 24, 48,141,229,140, 0, 0,234, 0, 48,149,229, 1, 0, 83,227,
/* 0x06e0 */ 133, 0, 0, 26, 20, 48,149,229, 0, 0, 83,227,130, 0, 0, 10,
/* 0x06f0 */ 12,192,157,229, 0, 0, 92,227, 9, 0, 0, 10, 4, 48,149,229,
/* 0x0700 */ 0, 0, 83,227, 6, 0, 0, 26, 5, 16,160,227, 8, 0,157,229,
/* 0x0710 */ 57,255,255,235, 8, 0,157,229, 4, 16,160,227,186, 34,218,225,
/* 0x0720 */ 53,255,255,235, 24, 48,149,229, 84, 34,159,229, 7, 48, 3,226,
/* 0x0730 */ 3, 49,160,225, 50, 67,160,225, 20, 16,157,229, 8, 48,149,229,
/* 0x0740 */ 12,192,157,229, 3,176,129,224, 16, 32,149,229, 11, 58,160,225,
/* 0x0750 */ 20, 16,149,229, 35, 58,160,225, 0, 0, 92,227, 44, 32,141,229,
/* 0x0760 */ 48,176,141,229, 3,128,130,224, 7,144, 4,226, 40, 16,141,229,
/* 0x0770 */ 11, 96, 99,224, 14, 0, 0, 10, 6, 0,160,225, 8, 16,160,225,
/* 0x0780 */ 3, 32,160,227, 16, 48,160,227,255,254,255,235, 0, 0, 86,225,
/* 0x0790 */ 73, 0, 0, 26, 92, 32,157,229, 4, 48, 20,226, 2, 48,160, 17,
/* 0x07a0 */ 12, 0,157,229, 44, 16,141,226, 16, 32,157,229, 53,255,255,235,
/* 0x07b0 */ 11, 0, 0,234, 4,192,149,229, 6, 0,160,225, 12,192, 99,224,
/* 0x07c0 */ 4,192,141,229, 16,192,157,229, 8, 16,160,225, 9, 32,160,225,
/* 0x07d0 */ 18, 48,160,227, 0,192,141,229,224,254,255,235, 0, 0, 86,225,
/* 0x07e0 */ 53, 0, 0, 26, 0, 48,104,226, 3,122,160,225, 2, 0, 25,227,
/* 0x07f0 */ 39,122,160,225, 7, 0, 0, 10, 0, 0, 87,227, 5, 0, 0, 10,
/* 0x0800 */ 8, 16,134,224, 7, 32,160,225, 0, 48,160,227, 1, 32, 82,226,
/* 0x0810 */ 1, 48,193,228,251,255,255, 26, 12, 16,157,229, 0, 0, 81,227,
/* 0x0820 */ 39, 0, 0, 10,214,254,255,235, 0, 48,149,229, 1, 0, 83,227,
/* 0x0830 */ 27, 0, 0, 26, 24, 48,149,229, 1, 0, 19,227, 24, 0, 0, 10,
/* 0x0840 */ 20, 32,149,229, 16, 48,149,229, 8, 16,149,229, 3, 0, 82,225,
/* 0x0850 */ 68, 0, 0, 26, 1, 48,130,224, 20, 32,157,229, 3, 48,131,226,
/* 0x0860 */ 3, 48,130,224, 3, 64,195,227, 0, 48,100,226, 3, 58,160,225,
/* 0x0870 */ 35, 58,160,225, 7, 0, 83,227, 58, 0, 0,154, 4, 49,159,229,
/* 0x0880 */ 0, 0,132,229, 8, 16,132,226, 4, 0,160,225, 4, 48,132,229,
/* 0x0890 */ 171,254,255,235, 8, 0,157,229, 4, 32,160,225, 0, 16,160,227,
/* 0x08a0 */ 213,254,255,235, 6, 0,160,225, 8, 16,160,225, 9, 32,160,225,
/* 0x08b0 */ 158,254,255,235, 0, 0, 80,227, 1, 0, 0, 10,127, 0,160,227,
/* 0x08c0 */ 105,254,255,235, 40,192,157,229, 7, 48,136,224, 12, 16,139,224,
/* 0x08d0 */ 3, 64,134,224, 1, 0, 84,225, 7, 0, 0, 42, 1, 16,100,224,
/* 0x08e0 */ 9, 32,160,225, 4, 0,160,225, 16, 48,160,227,166,254,255,235,
/* 0x08f0 */ 0, 0, 84,225, 0, 0, 0, 10,254,255,255,234, 24, 16,157,229,
/* 0x0900 */ 32, 80,133,226, 1, 16,129,226, 24, 16,141,229,188, 34,218,225,
/* 0x0910 */ 24, 48,157,229, 2, 0, 83,225,110,255,255,186, 12,192,157,229,
/* 0x0920 */ 0, 0, 92,227, 6, 0, 0, 10,176, 49,218,225, 3, 0, 83,227,
/* 0x0930 */ 3, 0, 0, 10, 36, 16,157,229, 28, 32,157,229, 2, 0,129,224,
/* 0x0940 */ 107,254,255,235, 88, 48,157,229, 0, 0, 83,227, 20,192,157, 21,
/* 0x0950 */ 0,192,131, 21, 24, 0,154,229, 20, 48,157,229, 0, 0,131,224,
/* 0x0960 */ 52,208,141,226,240,143,189,232, 4, 48,149,229, 0, 0, 83,227,
/* 0x0970 */ 32, 32,157, 5, 2, 48,129, 0, 8, 64,131, 2,190,255,255, 10,
/* 0x0980 */ 199,255,255,234, 64, 98, 81,115, 14,240,160,225,240, 79, 45,233,
/* 0x0990 */ 16,208, 77,226, 60, 96,141,226, 0,176,160,225, 1,128,160,225,
/* 0x09a0 */ 3,160,160,225, 6, 0,160,225, 52, 16,141,226, 0, 48,160,227,
/* 0x09b0 */ 56,144,157,229, 2, 80,160,225, 60, 64,157,229,177,254,255,235,
/* 0x09c0 */ 68, 48,157,229, 64,192,157,229, 16,224,141,226, 68,112,157,229,
/* 0x09d0 */ 12,192,100,224, 4, 48, 46,229, 6, 32,160,225, 9, 16,160,225,
/* 0x09e0 */ 11, 48,160,225, 5, 0,160,225, 64,192,141,229, 0,224,141,229,
/* 0x09f0 */ 60,128,141,229, 4,160,141,229, 8,112,141,229,241,254,255,235,
/* 0x0a00 */ 0, 64,160,225, 9, 16,160,227, 11, 0,160,225, 4, 32,160,225,
/* 0x0a10 */ 121,254,255,235,188, 2,217,225, 52, 32,137,226, 0, 16,160,227,
/* 0x0a20 */ 36, 0, 0,234, 0, 48,146,229, 3, 0, 83,227, 31, 0, 0, 26,
/* 0x0a30 */ 8, 48,146,229, 12, 0,157,229, 0, 16,160,227, 0, 0,131,224,
/* 0x0a40 */ 1, 32,160,225, 22,254,255,235, 0, 80, 80,226, 4, 0, 0,186,
/* 0x0a50 */ 9, 16,160,225, 2, 44,160,227, 7,254,255,235, 2, 12, 80,227,
/* 0x0a60 */ 1, 0, 0, 10,127, 0,160,227,255,253,255,235, 0,224,160,227,
/* 0x0a70 */ 14, 32,160,225, 12,192,141,226, 9, 16,160,225, 11, 48,160,225,
/* 0x0a80 */ 5, 0,160,225, 0, 80,141,232, 8,224,141,229,205,254,255,235,
/* 0x0a90 */ 7, 16,160,227, 0, 64,160,225, 12, 32,157,229, 11, 0,160,225,
/* 0x0aa0 */ 85,254,255,235, 5, 0,160,225, 2,254,255,235, 3, 0, 0,234,
/* 0x0ab0 */ 32, 32,130,226, 1, 16,129,226, 0, 0, 81,225,216,255,255,186,
/* 0x0ac0 */ 4, 0,160,225, 16,208,141,226,240,143,189,232
};

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/* arm64-linux.elf-fold.h
created from arm64-linux.elf-fold.bin, 2496 (0x9c0) bytes
created from arm64-linux.elf-fold.bin, 2540 (0x9ec) bytes
This file is part of the UPX executable compressor.
@ -31,55 +31,55 @@
*/
#define STUB_ARM64_LINUX_ELF_FOLD_SIZE 2496
#define STUB_ARM64_LINUX_ELF_FOLD_ADLER32 0x20a57b10
#define STUB_ARM64_LINUX_ELF_FOLD_CRC32 0x0197c648
#define STUB_ARM64_LINUX_ELF_FOLD_SIZE 2540
#define STUB_ARM64_LINUX_ELF_FOLD_ADLER32 0x5dfa8386
#define STUB_ARM64_LINUX_ELF_FOLD_CRC32 0x1a08abd6
unsigned char stub_arm64_linux_elf_fold[2496] = {
unsigned char stub_arm64_linux_elf_fold[2540] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0,183, 0, 1, 0, 0, 0,188, 0, 16, 0, 0, 0, 0, 0,
/* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0030 */ 0, 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 */ 192, 9, 0, 0, 0, 0, 0, 0,192, 9, 0, 0, 0, 0, 0, 0,
/* 0x0060 */ 236, 9, 0, 0, 0, 0, 0, 0,236, 9, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 192, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 236, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0090 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x00a0 */ 0, 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,229, 35, 65,169,
/* 0x00c0 */ 227, 19,194,168,231, 3, 64,249,224, 3, 0,145,225, 67, 0,145,
/* 0x00d0 */ 33, 12, 7,139, 34,132, 64,248,226,255,255,181, 34, 4, 65,248,
/* 0x00e0 */ 226,255,255,181, 32, 4, 64,209, 6, 16, 0,209, 33, 0, 6,203,
/* 0x00f0 */ 192, 0, 1,203, 0, 32, 0,209, 0,236,124,146,225, 35, 0,145,
/* 0x0100 */ 31, 0, 0,145,227, 19,190,169,229, 11, 0,249, 7,132, 0,248,
/* 0x0110 */ 34,132, 64,248, 2,132, 0,248,194,255,255,181, 34,132, 64,248,
/* 0x0120 */ 2,132, 0,248,194,255,255,181, 4, 32, 0,209, 31,132, 0,248,
/* 0x0130 */ 231, 3, 0,170, 34, 12,193,168, 2, 12,129,168,194,255,255,181,
/* 0x0140 */ 224, 11, 0,249,225, 3, 6,170,129, 0, 0,249,162, 4, 0, 24,
/* 0x0150 */ 34, 68, 0,184,226,255,129, 82, 96, 4, 0, 16, 88, 0, 0,148,
/* 0x0160 */ 31, 4, 64,177, 66, 0, 0, 84, 95,104, 32, 56,230, 3, 26,170,
/* 0x0170 */ 255, 3, 40,209, 5, 4, 0, 16,228, 3, 28,170,227, 3, 7,170,
/* 0x0180 */ 226, 3, 0,145,225, 3, 29, 42,224, 3, 27,170,142, 1, 0,148,
/* 0x0190 */ 255, 3, 40,145,224, 15, 0,249, 96, 2, 0, 16, 1, 0,128, 82,
/* 0x01a0 */ 73, 0, 0,148,239, 3, 0, 42,229, 3, 31,170,228, 3, 0, 42,
/* 0x01b0 */ 67, 0,128, 82, 34, 0,128, 82, 1, 0,130,210,224, 3, 31,170,
/* 0x01c0 */ 57, 0, 0,148,224, 3, 15, 42, 36, 0, 0,148,226,123, 65,169,
/* 0x01d0 */ 224, 7,194,168, 67,128, 95,248,232, 26,128, 82, 96, 0, 31,214,
/* 0x01e0 */ 32, 32, 32, 61, 47,112,114,111, 99, 47,115,101,108,102, 47,101,
/* 0x01f0 */ 120,101, 0, 0, 99, 28, 0, 18,127, 72, 1,113,129, 1, 0, 84,
/* 0x0200 */ 33,252, 66,211, 65, 1, 0,180, 33, 4, 0,209, 2,120, 97,184,
/* 0x0210 */ 67,120, 26, 83,127, 20, 0,113,129, 0, 0, 84, 67, 0, 1, 75,
/* 0x0220 */ 98,100, 0, 51, 2,120, 33,184, 1,255,255,181,192, 3, 95,214,
/* 0x0230 */ 0, 0, 32,212,192, 3, 95,214,200, 11,128, 82, 1, 0, 0,212,
/* 0x0240 */ 232, 7,128, 82, 1, 0, 0,212,192, 3, 95,214, 8, 8,128, 82,
/* 0x0250 */ 1, 0, 0,212,192, 3, 95,214, 40, 7,128, 82, 1, 0, 0,212,
/* 0x0260 */ 192, 3, 95,214,168, 21,128, 82, 1, 0, 0,212,192, 3, 95,214,
/* 0x0270 */ 200, 26,128, 82, 1, 0, 0,212,192, 3, 95,214,232, 26,128, 82,
/* 0x0280 */ 1, 0, 0,212,192, 3, 95,214, 72, 28,128, 82, 1, 0, 0,212,
/* 0x0290 */ 192, 3, 95,214, 38,241,255, 24, 5, 0,128,210, 4, 0,128,146,
/* 0x02a0 */ 99, 0, 6, 42,200, 27,128, 82, 1, 0, 0,212,192, 3, 95,214,
/* 0x02b0 */ 1, 0,128,210,104, 4,128, 82, 4, 0, 0, 20,200, 9,128, 82,
/* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,146,
/* 0x00c0 */ 1, 0, 0,145, 0, 32,193,154,192, 3, 95,214,250,111, 65,169,
/* 0x00d0 */ 244, 87,194,168,231, 3, 64,249,224, 3, 0,145,225, 3, 22,170,
/* 0x00e0 */ 34, 4, 65,248,226,255,255,181, 32, 4, 64,209, 6, 16, 0,209,
/* 0x00f0 */ 33, 0, 6,203,192, 0, 1,203, 0, 32, 0,209, 0,236,124,146,
/* 0x0100 */ 225, 35, 0,145, 31, 0, 0,145, 7,132, 0,248, 34,132, 64,248,
/* 0x0110 */ 2,132, 0,248,194,255,255,181, 34,132, 64,248, 2,132, 0,248,
/* 0x0120 */ 194,255,255,181, 4, 32, 0,209, 31,132, 0,248,231, 3, 0,170,
/* 0x0130 */ 246, 3, 0,170, 34, 12,193,168, 2, 12,129,168,194,255,255,181,
/* 0x0140 */ 247, 3, 0,170,225, 3, 6,170,129, 0, 0,249, 98, 4, 0, 24,
/* 0x0150 */ 34, 68, 0,184,226,255,129, 82, 32, 4, 0, 16, 88, 0, 0,148,
/* 0x0160 */ 31, 4, 64,177, 66, 0, 0, 84, 95,104, 32, 56,231, 3, 20,170,
/* 0x0170 */ 230, 3, 25,170,255, 3, 40,209,165, 3, 0, 16,228, 3, 24,170,
/* 0x0180 */ 227, 3, 22,170,226, 3, 0,145,225, 3, 29, 42,224, 3, 28,170,
/* 0x0190 */ 189, 1, 0,148,255, 3, 40,145,248, 3, 0,170, 5, 0,128,210,
/* 0x01a0 */ 228, 3, 21, 42, 67, 0,128, 82, 34, 0,128, 82, 1, 0,130,210,
/* 0x01b0 */ 0, 0,128,210, 58, 0, 0,148,224, 3, 21, 42, 37, 0, 0,148,
/* 0x01c0 */ 254, 3, 24,170,224, 3, 26,170,225, 3, 27, 42,226,130, 95,248,
/* 0x01d0 */ 232, 26,128, 82, 64, 0, 31,214, 32, 32, 32, 61, 47,112,114,111,
/* 0x01e0 */ 99, 47,115,101,108,102, 47,101,120,101, 0, 0, 99, 28, 0, 18,
/* 0x01f0 */ 127, 72, 1,113,129, 1, 0, 84, 33,252, 66,211, 65, 1, 0,180,
/* 0x0200 */ 33, 4, 0,209, 2,120, 97,184, 67,120, 26, 83,127, 20, 0,113,
/* 0x0210 */ 129, 0, 0, 84, 67, 0, 1, 75, 98,100, 0, 51, 2,120, 33,184,
/* 0x0220 */ 1,255,255,181,192, 3, 95,214, 0, 0, 32,212,192, 3, 95,214,
/* 0x0230 */ 168, 11,128, 82, 1, 0, 0,212,232, 7,128, 82, 1, 0, 0,212,
/* 0x0240 */ 192, 3, 95,214, 8, 8,128, 82, 1, 0, 0,212,192, 3, 95,214,
/* 0x0250 */ 40, 7,128, 82, 1, 0, 0,212,192, 3, 95,214,168, 21,128, 82,
/* 0x0260 */ 1, 0, 0,212,192, 3, 95,214,200, 26,128, 82, 1, 0, 0,212,
/* 0x0270 */ 192, 3, 95,214,232, 26,128, 82, 1, 0, 0,212,192, 3, 95,214,
/* 0x0280 */ 72, 28,128, 82, 1, 0, 0,212,192, 3, 95,214,230,241,255, 24,
/* 0x0290 */ 5, 0,128,210, 4, 0,128,146, 99, 0, 6, 42,200, 27,128, 82,
/* 0x02a0 */ 1, 0, 0,212,192, 3, 95,214, 2, 0,128,210,225, 3, 0,170,
/* 0x02b0 */ 96, 12,128, 18,104, 4,128, 82, 4, 0, 0, 20,200, 9,128, 82,
/* 0x02c0 */ 2, 0, 0, 20, 8, 7,128, 82,227, 3, 2,170,226, 3, 1,170,
/* 0x02d0 */ 225, 3, 0,170, 96, 12,128,146, 1, 0, 0,212,192, 3, 95,214,
/* 0x02e0 */ 0, 0, 64,212, 2, 0,128, 82, 8, 0,128, 82, 1, 0, 0,212,
@ -88,108 +88,111 @@ unsigned char stub_arm64_linux_elf_fold[2496] = {
/* 0x0310 */ 6, 0, 0, 20,159, 4, 0,241, 65, 0, 0, 84, 97,255,255, 53,
/* 0x0320 */ 0, 64, 0,145,246,255,255, 23,192, 3, 95,214,253,123,191,169,
/* 0x0330 */ 3, 0,128,210,253, 3, 0,145, 5, 0, 64,249, 4, 4, 64,249,
/* 0x0340 */ 191, 0, 2,235, 98, 0, 0, 84,224, 15,128, 82,187,255,255,151,
/* 0x0340 */ 191, 0, 2,235, 98, 0, 0, 84,224, 15,128, 82,185,255,255,151,
/* 0x0350 */ 127, 0, 2,235,160, 0, 0, 84,133,104, 99, 56, 37,104, 35, 56,
/* 0x0360 */ 99, 4, 0,145,251,255,255, 23, 1, 4, 64,249, 33, 0, 3,139,
/* 0x0370 */ 1, 4, 0,249, 1, 0, 64,249, 35, 0, 3,203, 3, 0, 0,249,
/* 0x0380 */ 253,123,193,168,192, 3, 95,214,253,123,187,169,253, 3, 0,145,
/* 0x0390 */ 243, 83, 1,169,245, 91, 2,169,244, 3, 0,170,243, 3, 1,170,
/* 0x03a0 */ 246, 3, 2,170,245, 3, 3,170, 96, 2, 64,249,128, 8, 0,180,
/* 0x03a0 */ 246, 3, 2,170,245, 3, 3,170, 96, 2, 64,249,160, 8, 0,180,
/* 0x03b0 */ 224, 3, 20,170,130, 1,128,210,161, 3, 1,145,220,255,255,151,
/* 0x03c0 */ 160, 67, 64,185,162, 71, 64,185, 0, 1, 0, 53,160, 10,138, 82,
/* 0x03d0 */ 0, 43,164,114, 95, 0, 0,107,225, 0, 0, 84,128, 2, 64,249,
/* 0x03e0 */ 224, 6, 0,180, 4, 0, 0, 20, 98, 0, 0, 52, 95, 0, 0,107,
/* 0x03f0 */ 105, 0, 0, 84,224, 15,128, 82,144,255,255,151, 97, 2, 64,249,
/* 0x0400 */ 63, 64, 32,235,131,255,255, 84, 95, 0, 0,107, 2, 4, 0, 84,
/* 0x0410 */ 160, 63, 0,185,225, 3, 2, 42,128, 6, 64,249,163,243, 0,145,
/* 0x0420 */ 98, 6, 64,249,164, 35, 65, 57,192, 2, 63,214, 64,254,255, 53,
/* 0x0430 */ 161, 63, 64,185,160, 67, 64,185, 63, 0, 0,107,193,253,255, 84,
/* 0x0440 */ 163, 39, 65, 57, 85, 1, 0,180, 35, 1, 0, 52, 63, 0, 8,113,
/* 0x0450 */ 136, 0, 0, 84, 96, 2, 64,249, 31, 64, 33,235,129, 0, 0, 84,
/* 0x0460 */ 96, 6, 64,249,162, 43, 65, 57,160, 2, 63,214,163, 71, 64,185,
/* 0x0470 */ 129, 6, 64,249,128, 2, 64,249, 33, 0, 3,139,129, 6, 0,249,
/* 0x0480 */ 0, 0, 3,203,128, 2, 0,249, 5, 0, 0, 20, 97, 6, 64,249,
/* 0x0490 */ 224, 3, 20,170,226, 3, 2, 42,165,255,255,151,163, 67, 64,185,
/* 0x04a0 */ 97, 6, 64,249, 96, 2, 64,249, 33, 0, 3,139, 97, 6, 0,249,
/* 0x04b0 */ 0, 0, 3,203, 96, 2, 0,249,188,255,255, 23,243, 83, 65,169,
/* 0x04c0 */ 245, 91, 66,169,253,123,197,168,192, 3, 95,214,253,123,181,169,
/* 0x04d0 */ 253, 3, 0,145,243, 83, 1,169,232, 39, 6,109, 19, 16, 64,249,
/* 0x04e0 */ 234, 47, 7,109,247, 99, 3,169, 19, 0, 19,139,248, 3, 0,170,
/* 0x04f0 */ 0, 32, 64,121,247, 3, 1,170,236, 67, 0,253, 1, 0,128,210,
/* 0x0500 */ 31, 12, 0,113, 20, 0,128,146,104, 0,103,158, 3, 2,128, 82,
/* 0x0510 */ 74, 0, 39, 30, 99, 16,159, 26,172, 0,103,158, 99,136, 0, 17,
/* 0x0520 */ 201, 0,103,158,224, 3, 19,170,139, 0,103,158, 4,115, 64,121,
/* 0x0530 */ 245, 91, 2,169,249,107, 4,169,251,115, 5,169,132, 4, 0, 81,
/* 0x0540 */ 159, 4, 0, 49,160, 1, 0, 84, 2, 0, 64,185, 95, 4, 0,113,
/* 0x0550 */ 1, 1, 0, 84, 5, 8, 64,249, 2, 20, 64,249,159, 2, 5,235,
/* 0x0560 */ 162, 0, 2,139,148,146,133,154, 63, 0, 2,235, 33, 32,130,154,
/* 0x0570 */ 0,224, 0,145,242,255,255, 23,148,206,116,146, 33,252, 63,145,
/* 0x0580 */ 33, 0, 20,203,224, 3, 20,170, 33,204,116,146, 2, 0,128, 82,
/* 0x0590 */ 5, 0,128,210, 27, 0,128, 82, 67,255,255,151, 20, 0, 20,203,
/* 0x05a0 */ 0,115, 64,121,127, 3, 0,107,170, 13, 0, 84, 96, 2, 64,185,
/* 0x05b0 */ 55, 1, 0,180, 31, 24, 0,113,225, 0, 0, 84, 98, 10, 64,249,
/* 0x05c0 */ 97, 0,128, 82, 0, 1,102,158,130, 2, 2,139, 74,255,255,151,
/* 0x05d0 */ 96, 0, 0, 20, 31, 4, 0,113,193, 11, 0, 84,121, 6, 64,185,
/* 0x05e0 */ 0, 72,140, 82, 32,106,174,114,255, 2, 31,235, 57, 11, 30, 83,
/* 0x05f0 */ 117, 10, 64,249, 0, 36,217, 26,160,147, 0,185, 28, 8, 0, 18,
/* 0x0600 */ 64, 0,128, 82, 2, 16,159, 26,149, 2, 21,139, 64, 1, 38, 30,
/* 0x0610 */ 118, 18, 64,249,122, 22, 64,249,165, 46, 64,146,255, 2, 31,235,
/* 0x0620 */ 102, 6, 64,249,181, 87, 0,249,185, 0, 22,139, 4, 0,159, 90,
/* 0x0630 */ 71, 6,128, 82,255, 2, 31,235,186, 2, 26,139, 67, 2,128, 82,
/* 0x0640 */ 181,206,116,146,227, 16,131, 26,224, 3, 21,170,225, 3, 25,170,
/* 0x0650 */ 66, 0, 28, 42,197, 0, 5,203,182, 83, 0,249, 18,255,255,151,
/* 0x0660 */ 191, 2, 0,235, 96, 0, 0, 84,224, 15,128, 82,243,254,255,151,
/* 0x0670 */ 215, 0, 0,180, 98, 1,102,158,224, 3, 23,170,131, 1,102,158,
/* 0x0680 */ 161,131, 2,145, 65,255,255,151,160, 75, 64,249,246, 3, 25,203,
/* 0x0690 */ 214, 46, 64,146, 96, 0, 8, 55, 87, 1, 0,181, 32, 0, 0, 20,
/* 0x06a0 */ 214,255,255,180,161, 2, 25,139, 0, 0,128,210, 63,104, 32, 56,
/* 0x06b0 */ 0, 4, 0,145, 31, 0, 22,235,161,255,255, 84,247,255,255, 23,
/* 0x06c0 */ 96, 2, 64,249,225, 3, 0,178, 0,128, 64,146, 31, 0, 1,235,
/* 0x06d0 */ 193, 1, 0, 84, 98, 22, 64,249, 97, 18, 64,249, 96, 10, 64,249,
/* 0x06e0 */ 95, 0, 1,235, 33, 1, 0, 84,129, 14, 0,145, 34, 0, 2,139,
/* 0x06f0 */ 66, 0, 0,139, 66,244,126,146,224, 3, 2,203, 0, 44, 64,146,
/* 0x0700 */ 31, 28, 0,241, 72, 3, 0, 84,224, 3, 21,170,225, 3, 25,170,
/* 0x0710 */ 226, 3, 28, 42,221,254,255,151,128,250,255, 53,214, 2, 25,139,
/* 0x0720 */ 181, 2, 22,139,191, 2, 26,235, 66, 1, 0, 84,224, 3, 21,170,
/* 0x0730 */ 65, 3, 21,203,226, 3, 28, 42, 67, 6,128, 82, 4, 0,128, 18,
/* 0x0740 */ 5, 0,128,210,216,254,255,151,191, 2, 0,235,225,248,255, 84,
/* 0x0750 */ 115,226, 0,145,123, 7, 0, 17,146,255,255, 23, 32, 1,102,158,
/* 0x0760 */ 160, 1, 0,180, 20, 0, 0,249, 11, 0, 0, 20, 32, 0,128, 82,
/* 0x0770 */ 1, 0,128, 82, 0,128,186,114, 64, 0, 0,185, 0,120,128, 82,
/* 0x0780 */ 224,203,186,114, 64, 4, 0,185, 0, 1,102,158,218,254,255,151,
/* 0x0790 */ 222,255,255, 23, 0, 15, 64,249,232, 39, 70,109,245, 91, 66,169,
/* 0x07a0 */ 234, 47, 71,109,128, 2, 0,139,243, 83, 65,169,247, 99, 67,169,
/* 0x07b0 */ 249,107, 68,169,251,115, 69,169,236, 67, 64,253,253,123,203,168,
/* 0x07c0 */ 192, 3, 95,214,253,123,182,169,253, 3, 0,145,243, 83, 1,169,
/* 0x07d0 */ 243, 3, 2,170,244, 3, 3,170,162, 63, 0,249, 3, 0,128,210,
/* 0x07e0 */ 2, 0, 64,185,162, 59, 0,249,226, 3, 4,170,160, 79, 0,249,
/* 0x07f0 */ 161, 75, 0,249,160, 71, 0,249,160, 67, 2,145,161, 67, 0,249,
/* 0x0800 */ 161,195, 1,145,165, 39, 0,249,164, 43, 0,249,166, 47, 0,249,
/* 0x0810 */ 245, 91, 2,169,247, 99, 3,169,220,254,255,151,117, 2, 1,145,
/* 0x0820 */ 99, 18, 64,249,224, 3, 20,170,162, 47, 64,249, 97, 0,128, 82,
/* 0x0830 */ 98, 0, 2,139,176,254,255,151, 98,114, 64,121,224, 3, 20,170,
/* 0x0840 */ 161, 0,128, 82,172,254,255,151,119, 34, 64,121,164, 43, 64,249,
/* 0x0850 */ 255, 14, 0,113,165, 39, 64,249,224, 1, 0, 84,224, 3, 19,170,
/* 0x0860 */ 161, 3, 2,145, 2, 0,128, 82,227, 3, 20,170,166, 99, 1,145,
/* 0x0870 */ 23,255,255,151,246, 3, 0,170,255, 14, 0,113, 64, 4, 0, 84,
/* 0x0880 */ 224, 3, 20,170, 33, 1,128, 82,226, 3, 22,170,154,254,255,151,
/* 0x0890 */ 29, 0, 0, 20, 64, 0,128, 82,162, 47, 64,249, 96, 34, 0,121,
/* 0x08a0 */ 33, 1,128, 82, 96, 14, 64,249,165, 39, 0,249, 66, 0, 0,139,
/* 0x08b0 */ 224, 3, 20,170, 98, 14, 0,249,164, 43, 0,249,142,254,255,151,
/* 0x08c0 */ 102,114, 64,121,224, 3, 21,170,162, 47, 64,249, 1, 0,128, 82,
/* 0x08d0 */ 164, 43, 64,249,165, 39, 64,249, 63, 0, 6,107, 2,252,255, 84,
/* 0x08e0 */ 3, 8, 64,249, 33, 4, 0, 17, 0,224, 0,145, 99, 0, 2,139,
/* 0x08f0 */ 3,128, 29,248, 3, 0, 94,248, 99, 0, 2,139, 3, 0, 30,248,
/* 0x0900 */ 246,255,255, 23, 23, 0,128, 82, 96,114, 64,121,255, 2, 0,107,
/* 0x0910 */ 194, 4, 0, 84,160, 2, 64,185, 31, 12, 0,113, 1, 4, 0, 84,
/* 0x0920 */ 161, 10, 64,249,160, 47, 64,249, 32, 0, 0,139, 1, 0,128, 82,
/* 0x0930 */ 226, 3, 1, 42,100,254,255,151,248, 3, 0, 42, 96, 0,248, 54,
/* 0x0940 */ 224, 15,128, 82, 61,254,255,151,225, 3, 19,170, 2,128,128,210,
/* 0x0950 */ 60,254,255,151, 31, 0, 16,241, 65,255,255, 84, 1, 0,128,210,
/* 0x0960 */ 226, 3, 24, 42,227, 3, 1,170,228, 3, 1,170,229, 3, 1,170,
/* 0x0970 */ 166,163, 1,145,224, 3, 19,170,191, 55, 0,249,212,254,255,151,
/* 0x0980 */ 246, 3, 0,170,162, 55, 64,249,224, 3, 20,170,225, 0,128, 82,
/* 0x0990 */ 89,254,255,151,224, 3, 24, 42, 48,254,255,151,181,226, 0,145,
/* 0x09a0 */ 247, 6, 0, 17,217,255,255, 23,224, 3, 22,170,243, 83, 65,169,
/* 0x09b0 */ 245, 91, 66,169,247, 99, 67,169,253,123,202,168,192, 3, 95,214
/* 0x03e0 */ 0, 7, 0,180, 4, 0, 0, 20, 98, 0, 0, 52, 95, 0, 0,107,
/* 0x03f0 */ 105, 0, 0, 84,224, 15,128, 82,142,255,255,151, 99, 2, 64,249,
/* 0x0400 */ 225, 3, 0, 42, 63, 0, 3,235,104,255,255, 84, 95, 0, 0,107,
/* 0x0410 */ 2, 4, 0, 84,161, 31, 0,249,225, 3, 2, 42,128, 6, 64,249,
/* 0x0420 */ 163,227, 0,145, 98, 6, 64,249,164, 35, 65, 57,192, 2, 63,214,
/* 0x0430 */ 32,254,255, 53,161, 31, 64,249,160, 67, 64,185, 63, 0, 0,235,
/* 0x0440 */ 161,253,255, 84,163, 39, 65, 57, 85, 1, 0,180, 35, 1, 0, 52,
/* 0x0450 */ 63, 0, 8,241,136, 0, 0, 84, 96, 2, 64,249, 31, 0, 1,235,
/* 0x0460 */ 129, 0, 0, 84, 96, 6, 64,249,162, 43, 65, 57,160, 2, 63,214,
/* 0x0470 */ 163, 71, 64,185,129, 6, 64,249,128, 2, 64,249, 33, 0, 3,139,
/* 0x0480 */ 129, 6, 0,249, 0, 0, 3,203,128, 2, 0,249, 5, 0, 0, 20,
/* 0x0490 */ 97, 6, 64,249,224, 3, 20,170,226, 3, 2, 42,164,255,255,151,
/* 0x04a0 */ 163, 67, 64,185, 97, 6, 64,249, 96, 2, 64,249, 33, 0, 3,139,
/* 0x04b0 */ 97, 6, 0,249, 0, 0, 3,203, 96, 2, 0,249,187,255,255, 23,
/* 0x04c0 */ 243, 83, 65,169,245, 91, 66,169,253,123,197,168,192, 3, 95,214,
/* 0x04d0 */ 253,123,180,169,253, 3, 0,145,234, 47, 7,109,202, 0,103,158,
/* 0x04e0 */ 6, 16, 64,249,236, 55, 8,109,245, 91, 2,169,232, 39, 6,109,
/* 0x04f0 */ 245, 3, 0,170,249,107, 4,169, 26, 0, 6,139, 0, 32, 64,121,
/* 0x0500 */ 247, 99, 3,169, 31, 12, 0,113,248, 3, 3,170, 64, 1,102,158,
/* 0x0510 */ 3, 2,128, 82,141, 0,103,158, 99, 16,159, 26,238, 75, 0,253,
/* 0x0520 */ 247, 3, 1,170,174, 0,103,158,165,114, 64,121, 0, 0, 64,249,
/* 0x0530 */ 99,136, 0, 17,243, 83, 1,169,251,115, 5,169, 76, 0, 39, 30,
/* 0x0540 */ 251, 3, 7,170,226, 3, 26,170, 1, 0,128,210, 19, 0,128,146,
/* 0x0550 */ 165, 4, 0, 81,191, 4, 0, 49,160, 1, 0, 84, 68, 0, 64,185,
/* 0x0560 */ 159, 4, 0,113, 1, 1, 0, 84, 71, 8, 64,249, 68, 20, 64,249,
/* 0x0570 */ 127, 2, 7,235,228, 0, 4,139,115,146,135,154, 63, 0, 4,235,
/* 0x0580 */ 33, 32,132,154, 66,224, 0,145,242,255,255, 23,226, 3, 59,170,
/* 0x0590 */ 115, 2, 27,138, 65, 0, 1,139, 33, 0, 19,203, 72, 0,103,158,
/* 0x05a0 */ 33, 0, 27,138,163, 0, 32, 55, 83, 0, 0,181,160, 0, 0,181,
/* 0x05b0 */ 0, 0,128,210, 4, 0, 0, 20,224, 3, 19,170, 2, 0, 0, 20,
/* 0x05c0 */ 67, 6,128, 82, 2, 0,128, 82, 4, 0,128, 18, 5, 0,128,210,
/* 0x05d0 */ 28, 0,128, 82, 50,255,255,151, 19, 0, 19,203, 96,230,122,211,
/* 0x05e0 */ 11, 0,103,158,160,114, 64,121,159, 3, 0,107,234, 18, 0, 84,
/* 0x05f0 */ 64, 3, 64,185, 55, 1, 0,180, 31, 24, 0,113,225, 0, 0, 84,
/* 0x0600 */ 66, 11, 64,249,224, 3, 24,170, 97, 0,128, 82, 98, 2, 2,139,
/* 0x0610 */ 57,255,255,151,132, 0, 0, 20, 31, 4, 0,113, 65, 16, 0, 84,
/* 0x0620 */ 87, 2, 0,180, 64, 7, 64,249, 0, 2, 0,181,162, 18, 64,249,
/* 0x0630 */ 224, 3, 24,170, 67, 11, 64,249, 97, 0,128, 82, 98, 2, 2,139,
/* 0x0640 */ 66, 0, 3,139, 44,255,255,151,162,114, 64,121,224, 3, 24,170,
/* 0x0650 */ 161, 0,128, 82, 40,255,255,151,162,110, 64,121,224, 3, 24,170,
/* 0x0660 */ 129, 0,128, 82, 36,255,255,151, 89, 7, 64,185, 0, 72,140, 82,
/* 0x0670 */ 32,106,174,114, 84, 11, 64,249, 57, 11, 30, 83,255, 2, 31,235,
/* 0x0680 */ 0, 36,217, 26,160,163, 0,185, 25, 8, 0, 18, 64, 23, 64,249,
/* 0x0690 */ 116, 2, 20,139, 86, 19, 64,249,128, 2, 0,139, 71, 7, 64,249,
/* 0x06a0 */ 182, 91, 0,249, 70, 6,128, 82, 9, 0,103,158,180, 95, 0,249,
/* 0x06b0 */ 0, 1,102,158, 67, 2,128, 82,133, 2, 0,138, 64, 0,128, 82,
/* 0x06c0 */ 2, 16,159, 26,255, 2, 31,235,128, 1, 38, 30,148, 2, 5,203,
/* 0x06d0 */ 182, 0, 22,139, 66, 0, 25, 42,225, 3, 22,170,229, 0, 5,203,
/* 0x06e0 */ 4, 0,159, 90,255, 2, 31,235,195, 16,131, 26,224, 3, 20,170,
/* 0x06f0 */ 235,254,255,151,159, 2, 0,235, 96, 0, 0, 84,224, 15,128, 82,
/* 0x0700 */ 204,254,255,151,215, 0, 0,180,162, 1,102,158,224, 3, 23,170,
/* 0x0710 */ 195, 1,102,158,161,195, 2,145, 28,255,255,151, 0, 1,102,158,
/* 0x0720 */ 227, 3, 22,203, 99, 0, 0,138,160, 83, 64,249, 96, 0, 8, 55,
/* 0x0730 */ 87, 1, 0,181, 45, 0, 0, 20,195,255,255,180,129, 2, 22,139,
/* 0x0740 */ 0, 0,128,210, 63,104, 32, 56, 0, 4, 0,145, 31, 0, 3,235,
/* 0x0750 */ 161,255,255, 84,247,255,255, 23, 64, 3, 64,249,225, 3, 0,178,
/* 0x0760 */ 0,128, 64,146, 31, 0, 1,235, 33, 3, 0, 84, 65, 23, 64,249,
/* 0x0770 */ 66, 19, 64,249, 64, 11, 64,249, 63, 0, 2,235,161, 5, 0, 84,
/* 0x0780 */ 98, 14, 0,145, 66, 0, 1,139, 66, 0, 0,139, 66,244,126,146,
/* 0x0790 */ 225, 3, 2, 75, 33, 0, 59, 10, 63, 28, 0,113,169, 4, 0, 84,
/* 0x07a0 */ 32, 0,128, 82, 1, 0,128, 82, 0,128,186,114, 64, 0, 0,185,
/* 0x07b0 */ 0,120,128, 82,163, 83, 0,249,224,203,186,114, 64, 4, 0,185,
/* 0x07c0 */ 224, 3, 24,170,204,254,255,151,163, 83, 64,249,224, 3, 20,170,
/* 0x07d0 */ 225, 3, 22,170,226, 3, 25, 42,163, 83, 0,249,169,254,255,151,
/* 0x07e0 */ 163, 83, 64,249,192,248,255, 53, 32, 1,102,158,118, 0, 22,139,
/* 0x07f0 */ 148, 2, 22,139,159, 2, 0,235, 98, 1, 0, 84, 33, 1,102,158,
/* 0x0800 */ 224, 3, 20,170,226, 3, 25, 42, 67, 6,128, 82, 4, 0,128, 18,
/* 0x0810 */ 5, 0,128,210, 33, 0, 20,203,161,254,255,151,159, 2, 0,235,
/* 0x0820 */ 225,246,255, 84, 90,227, 0,145,156, 7, 0, 17,110,255,255, 23,
/* 0x0830 */ 97, 1,102,158, 2, 0, 1,139, 64, 7, 64,249, 66, 32, 0,145,
/* 0x0840 */ 0,251,255,180,226,255,255, 23, 64, 1,102,158,232, 39, 70,109,
/* 0x0850 */ 247, 99, 67,169,234, 47, 71,109,249,107, 68,169,236, 55, 72,109,
/* 0x0860 */ 251,115, 69,169, 19, 0, 0,249,238, 75, 64,253,160, 14, 64,249,
/* 0x0870 */ 245, 91, 66,169, 96, 2, 0,139,243, 83, 65,169,253,123,204,168,
/* 0x0880 */ 192, 3, 95,214,253,123,182,169,253, 3, 0,145,247, 99, 3,169,
/* 0x0890 */ 247, 3, 3,170, 3, 4, 64,185,243, 83, 1,169,162, 63, 0,249,
/* 0x08a0 */ 243, 3, 2,170, 99, 48, 0,145, 2, 0, 64,185,162, 59, 0,249,
/* 0x08b0 */ 226, 3, 4,170,160, 79, 0,249,116, 2, 1,145,163, 75, 0,249,
/* 0x08c0 */ 3, 0,128,210,160, 71, 0,249,160, 67, 2,145,161, 67, 0,249,
/* 0x08d0 */ 161,195, 1,145,245, 91, 2,169,249, 35, 0,249,249, 3, 7,170,
/* 0x08e0 */ 165, 47, 0,249, 22, 0,128, 82,166, 55, 0,249,164, 51, 0,249,
/* 0x08f0 */ 166,254,255,151,164, 51, 64,249,161, 3, 2,145,165, 47, 64,249,
/* 0x0900 */ 2, 0,128, 82,227, 3, 23,170,166,163, 1,145,231, 3, 25,170,
/* 0x0910 */ 224, 3, 19,170,239,254,255,151,245, 3, 0,170, 33, 1,128, 82,
/* 0x0920 */ 224, 3, 23,170,226, 3, 21,170,115,254,255,151, 96,114, 64,121,
/* 0x0930 */ 223, 2, 0,107,226, 4, 0, 84,128, 2, 64,185, 31, 12, 0,113,
/* 0x0940 */ 33, 4, 0, 84,129, 10, 64,249,160, 55, 64,249, 32, 0, 0,139,
/* 0x0950 */ 1, 0,128, 82,226, 3, 1, 42, 91,254,255,151,248, 3, 0, 42,
/* 0x0960 */ 96, 0,248, 54,224, 15,128, 82, 50,254,255,151,225, 3, 19,170,
/* 0x0970 */ 2,128,128,210, 49,254,255,151, 31, 0, 16,241, 65,255,255, 84,
/* 0x0980 */ 1, 0,128,210,226, 3, 24, 42,227, 3, 1,170,228, 3, 1,170,
/* 0x0990 */ 229, 3, 1,170,166,163, 1,145,231, 3, 25,170,224, 3, 19,170,
/* 0x09a0 */ 191, 55, 0,249,203,254,255,151,245, 3, 0,170,162, 55, 64,249,
/* 0x09b0 */ 224, 3, 23,170,225, 0,128, 82, 79,254,255,151,224, 3, 24, 42,
/* 0x09c0 */ 36,254,255,151,148,226, 0,145,214, 6, 0, 17,216,255,255, 23,
/* 0x09d0 */ 224, 3, 21,170,249, 35, 64,249,243, 83, 65,169,245, 91, 66,169,
/* 0x09e0 */ 247, 99, 67,169,253,123,202,168,192, 3, 95,214
};

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/* armeb.v4a-linux.elf-fold.h
created from armeb.v4a-linux.elf-fold.bin, 2680 (0xa78) bytes
created from armeb.v4a-linux.elf-fold.bin, 2608 (0xa30) bytes
This file is part of the UPX executable compressor.
@ -31,177 +31,172 @@
*/
#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_SIZE 2680
#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_ADLER32 0xb0335303
#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_CRC32 0xdb3efb33
#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_SIZE 2608
#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_ADLER32 0x82493b3d
#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_CRC32 0xba2ecf46
unsigned char stub_armeb_v4a_linux_elf_fold[2680] = {
unsigned char stub_armeb_v4a_linux_elf_fold[2608] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 0, 2, 0, 40, 0, 0, 0, 1, 0, 0,128,128, 0, 0, 0, 52,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 2, 0, 52, 0, 32, 0, 2, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,128, 0,
/* 0x0040 */ 0, 0,128, 0, 0, 0, 10,120, 0, 0, 10,120, 0, 0, 0, 5,
/* 0x0050 */ 0, 0,128, 0, 0, 0, 0, 1, 0, 0, 10,120, 0, 0, 0, 0,
/* 0x0040 */ 0, 0,128, 0, 0, 0, 10, 48, 0, 0, 10, 48, 0, 0, 0, 5,
/* 0x0050 */ 0, 0,128, 0, 0, 0, 0, 1, 0, 0, 10, 48, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 232,189, 31,240,225,160, 16, 13,226, 77,218, 1,225,160, 0, 13,
/* 0x0090 */ 233, 45, 31,240,225,160,176, 10,228,145, 48, 4,227, 83, 0, 0,
/* 0x00a0 */ 228,128, 48, 4, 26,255,255,251,225,160, 64, 0,228,128, 48, 4,
/* 0x00b0 */ 228,145, 48, 4,227, 83, 0, 0,228,128, 48, 4, 26,255,255,251,
/* 0x00c0 */ 225,160, 80, 1,232,177, 0, 12,227, 82, 0, 0,232,160, 0, 12,
/* 0x00d0 */ 26,255,255,251,225,160, 96, 1,225,160,144, 0,227,160, 42, 1,
/* 0x00e0 */ 225,160, 16, 0,226,143, 15, 82,226, 66, 32, 1,235, 0, 0,120,
/* 0x00f0 */ 224,129, 32, 0,227,112, 10, 1, 58, 0, 0, 1,226,143, 30, 19,
/* 0x0100 */ 226,129, 32, 14,225,160, 0, 6,227,160, 48, 0,229, 96, 48, 1,
/* 0x0110 */ 229,114, 48, 1,229, 96, 48, 1,225, 81, 0, 2, 26,255,255,251,
/* 0x0120 */ 227,160, 48, 61,229, 96, 48, 1,227,160, 48, 32,229, 96, 48, 1,
/* 0x0130 */ 229, 96, 48, 1,229, 96, 48, 1,229,132, 0, 0,225,160, 1, 32,
/* 0x0140 */ 225,160, 1, 0,224, 38, 48, 0,226, 3, 48, 4,226, 35, 48, 4,
/* 0x0150 */ 224, 64, 0, 3,224, 64, 48, 6,224,131, 48, 5,225,160, 16, 9,
/* 0x0160 */ 229,141, 0, 24,229, 49, 32, 4,225, 81, 0, 13,229, 32, 32, 4,
/* 0x0170 */ 26,255,255,251,225,160,208, 0,226,143, 0,180,227,160, 16, 0,
/* 0x0180 */ 235, 0, 0, 73,229,141, 0, 12,225,160, 80, 11,232,189, 14, 0,
/* 0x0190 */ 226, 77,220, 10,225,160, 64, 9,229,154,144, 4,225,160,128, 13,
/* 0x01a0 */ 229,154,112, 0,226,143, 96,152,226,137,144, 12,233, 45, 15,248,
/* 0x01b0 */ 232,189, 0, 15,235, 0, 1,226,226,141,208, 20,226,141,220, 10,
/* 0x01c0 */ 229,141, 0, 16,227,160, 80, 0,229,157, 64, 0,227,160, 48, 2,
/* 0x01d0 */ 227,160, 32, 1,227,160, 26, 1,227,160, 0, 0,235, 0, 0, 69,
/* 0x01e0 */ 228,157, 0, 4,235, 0, 0, 50,232,189, 64, 7,227,160, 48, 0,
/* 0x01f0 */ 227,160, 64, 0,227,160, 80, 0,227,160, 96, 0,227,160,128, 0,
/* 0x0200 */ 227,160,144, 0,227,160,160, 0,227,160,176, 0,226, 77,199, 2,
/* 0x0210 */ 228, 29,112, 32,229,141,112, 0,229,157,112, 0,225, 92, 0, 13,
/* 0x0220 */ 58,255,255,250,226,141,215, 2,227,160,112, 0,227,160,192, 0,
/* 0x0230 */ 229, 18,240, 4, 47,112,114,111, 99, 47,115,101,108,102, 47,101,
/* 0x0240 */ 120,101, 0, 0,226, 3, 48,255,227, 83, 0, 81, 17,160,240, 14,
/* 0x0250 */ 225,176, 17, 33, 19, 80, 0, 0, 1,160,240, 14,226, 65, 16, 1,
/* 0x0260 */ 231,144, 33, 1,226, 2, 52, 15,227, 83, 4, 11, 26, 0, 0, 4,
/* 0x0270 */ 226, 2, 52,255,224, 66, 32, 1,227,194, 36,255,225,130, 32, 3,
/* 0x0280 */ 231,128, 33, 1,227, 81, 0, 0, 26,255,255,243,225,160,240, 14,
/* 0x0290 */ 231,240, 1,240,225,160,240, 14,239,144, 0, 1,239,144, 0, 3,
/* 0x02a0 */ 225,160,240, 14,239,144, 0, 4,225,160,240, 14,239,144, 0, 5,
/* 0x02b0 */ 225,160,240, 14,239,144, 0, 6,225,160,240, 14,239,144, 0, 10,
/* 0x02c0 */ 225,160,240, 14,239,144, 0, 20,225,160,240, 14,239,144, 0, 45,
/* 0x02d0 */ 225,160,240, 14,239,144, 0, 85,225,160,240, 14,239,144, 0, 91,
/* 0x02e0 */ 225,160,240, 14,239,144, 0,125,225,160,240, 14,227,160, 32, 0,
/* 0x02f0 */ 239,159, 0, 2,225,160,240, 14,233, 45, 64, 48,229,157, 80, 16,
/* 0x0300 */ 229,157, 64, 12,225,160, 86, 37,239,144, 0,192,232,189,128, 48,
/* 0x0310 */ 229, 31, 0, 60,225,160,240, 14,233, 45, 64, 48,227,160, 80, 0,
/* 0x0320 */ 227,224, 64, 0,226, 79,224, 36,234,255,255, 82,225,160,192, 0,
/* 0x0330 */ 224, 65, 16, 1,225,160, 32, 0,224,144, 1,128,224,161, 17,129,
/* 0x0340 */ 224,129, 30,162,225,160, 32, 0,224,144, 2, 0,224,161, 18, 1,
/* 0x0350 */ 224,129, 30, 34,225,160, 32, 0,224,144, 4, 0,224,161, 20, 1,
/* 0x0360 */ 224,129, 28, 34,225,160, 32, 0,224,144, 8, 0,224,161, 24, 1,
/* 0x0370 */ 224,129, 24, 34,224, 80, 15,140,224,193, 16,172,224,144, 0, 12,
/* 0x0380 */ 226,161, 0, 0,225,160,240, 14,227, 80, 0, 0, 1,160,240, 14,
/* 0x0390 */ 229,144, 48, 0,225, 83, 0, 1, 18,128, 0, 8, 26,255,255,251,
/* 0x03a0 */ 229,128, 32, 4,225,160,240, 14,229,159, 0, 0,225,160,240, 14,
/* 0x03b0 */ 255,255,240, 0,229,144, 48, 0,225, 83, 0, 2,229,144, 48, 4,
/* 0x03c0 */ 229, 45,224, 4, 33,160,192, 3,225,160,224, 2, 33,160, 32, 2,
/* 0x03d0 */ 42, 0, 0, 3,227,160, 0,127,235,255,255,174,229, 92, 48, 1,
/* 0x03e0 */ 229, 65, 48, 1,226, 66, 32, 1,227,114, 0, 1,226,140,192, 1,
/* 0x03f0 */ 226,129, 16, 1, 26,255,255,248,229,144, 32, 4,229,144, 48, 0,
/* 0x0400 */ 224,130, 32, 14,224,110, 48, 3,229,128, 48, 0,229,128, 32, 4,
/* 0x0410 */ 228,157,240, 4,233, 45, 64,240,225,160, 80, 0,226, 77,208, 20,
/* 0x0420 */ 225,160, 64, 1,225,160,112, 2,225,160, 96, 3,234, 0, 0, 68,
/* 0x0430 */ 226,141, 16, 4,225,160, 0, 5,227,160, 32, 12,235,255,255,220,
/* 0x0440 */ 229,157,224, 4,227, 94, 0, 0,229,157, 16, 8, 26, 0, 0, 6,
/* 0x0450 */ 229,159, 49, 0,225, 81, 0, 3, 26, 0, 0, 5,229,149, 48, 0,
/* 0x0460 */ 227, 83, 0, 0, 26, 0, 0, 2,234, 0, 0, 56,227, 81, 0, 0,
/* 0x0470 */ 26, 0, 0, 1,227,160, 0,127,235,255,255,134,225, 81, 0, 14,
/* 0x0480 */ 138,255,255,251,229,148, 48, 0,225, 94, 0, 3,138,255,255,248,
/* 0x0490 */ 225, 81, 0, 14, 42, 0, 0, 33,229,221,192, 12,229,149, 0, 4,
/* 0x04a0 */ 229,148, 32, 4,226,141, 48, 16,229,141,224, 16,229,141,192, 0,
/* 0x04b0 */ 225,160,224, 15,225,160,240, 7,227, 80, 0, 0, 26,255,255,236,
/* 0x04c0 */ 229,157, 16, 16,229,157, 48, 4,225, 81, 0, 3, 26,255,255,232,
/* 0x04d0 */ 229,221, 32, 13,227, 82, 0, 0, 19, 86, 0, 0, 10, 0, 0, 9,
/* 0x04e0 */ 227, 81, 12, 2,138, 0, 0, 2,229,148, 48, 0,225, 83, 0, 1,
/* 0x04f0 */ 26, 0, 0, 4,225,160, 48, 2,229,148, 0, 4,229,221, 32, 14,
/* 0x0500 */ 225,160,224, 15,225,160,240, 6,229,157, 48, 8,232,149, 0, 6,
/* 0x0510 */ 224,130, 32, 3,224, 99, 16, 1,232,133, 0, 6,234, 0, 0, 3,
/* 0x0520 */ 225,160, 32, 1,225,160, 0, 5,229,148, 16, 4,235,255,255,160,
/* 0x0530 */ 229,157, 48, 4,232,148, 0, 6,224,130, 32, 3,224, 99, 16, 1,
/* 0x0540 */ 232,132, 0, 6,229,148, 48, 0,227, 83, 0, 0, 26,255,255,183,
/* 0x0550 */ 226,141,208, 20,232,189,128,240, 33, 88, 80, 85,233, 45, 79,240,
/* 0x0560 */ 225,160,160, 1,225,218,193,176,229,145, 16, 28,225,218,226,188,
/* 0x0570 */ 226, 77,208, 52,227, 92, 0, 2,224,138, 96, 1,229,141, 0, 16,
/* 0x0580 */ 3,160, 80, 16, 19,160, 80, 0,226, 78,224, 1,225,160, 16, 6,
/* 0x0590 */ 227,224, 0, 0,227,160,192, 0,229,141, 32, 12,229,141, 48, 8,
/* 0x05a0 */ 234, 0, 0, 13,229,145, 48, 0,227, 83, 0, 1, 26, 0, 0, 8,
/* 0x05b0 */ 229,145, 48, 20,227, 83, 0, 0, 10, 0, 0, 5,229,145, 32, 8,
/* 0x05c0 */ 224,131, 48, 2,225, 92, 0, 3, 49,160,192, 3,225, 80, 0, 2,
/* 0x05d0 */ 33,160, 0, 2,226,129, 16, 32,226, 78,224, 1,227, 94, 0, 0,
/* 0x05e0 */ 170,255,255,239,227,192, 78,255,227,196, 64, 15,224,100, 48, 12,
/* 0x05f0 */ 226,131, 62,255,226,131, 48, 15,226, 5, 32, 16,227,195, 62,255,
/* 0x0600 */ 227, 82, 0, 0,227,195, 48, 15,229,141, 48, 40, 21,141, 64, 28,
/* 0x0610 */ 26, 0, 0, 4,225,160, 48, 5,225,160, 0, 4,229,157, 16, 40,
/* 0x0620 */ 235,255,255, 60,229,141, 0, 28,229,157, 0, 28,227,160, 48, 52,
/* 0x0630 */ 224,100,144, 0,224, 3, 3,153,227,160, 16, 0,226,134, 80, 32,
/* 0x0640 */ 229,141, 48, 32,229,141, 16, 24,234, 0, 0,160,229,157, 32, 12,
/* 0x0650 */ 227, 82, 0, 0, 10, 0, 0, 8,229, 21, 48, 32,227, 83, 0, 6,
/* 0x0660 */ 26, 0, 0, 5,229, 21, 32, 24,229,157, 0, 8,224,137, 32, 2,
/* 0x0670 */ 227,160, 16, 3,235,255,255, 67,234, 0, 0,144,229, 21, 48, 32,
/* 0x0680 */ 227, 83, 0, 1, 26, 0, 0,141,229, 21, 48, 12,227, 83, 0, 0,
/* 0x0690 */ 10, 0, 0,138,229,157, 48, 12,227, 83, 0, 0, 10, 0, 0, 17,
/* 0x06a0 */ 229, 21, 48, 28,227, 83, 0, 0, 26, 0, 0, 14,229,154, 48, 28,
/* 0x06b0 */ 229, 21, 32, 24,224,130, 32, 3,224,137, 32, 2,227,160, 16, 3,
/* 0x06c0 */ 229,157, 0, 8,235,255,255, 47,229,157, 0, 8,227,160, 16, 5,
/* 0x06d0 */ 225,218, 34,188,235,255,255, 43,229,157, 0, 8,227,160, 16, 4,
/* 0x06e0 */ 225,218, 34,186,235,255,255, 39,229, 21, 48, 8,229,159, 34, 72,
/* 0x06f0 */ 226, 3, 48, 7,225,160, 49, 3,225,160, 67, 50,229, 21, 48, 24,
/* 0x0700 */ 224,137, 48, 3,229,141, 48, 20,229,157,192, 20,229,157, 0, 12,
/* 0x0710 */ 229, 21, 48, 16,225,160, 42, 12,229, 21, 16, 12,225,160, 42, 34,
/* 0x0720 */ 227, 80, 0, 0,229,141, 48, 44,229,141,192, 48,224,131,128, 2,
/* 0x0730 */ 226, 4,176, 7,229,141, 16, 36,224, 98, 96, 12, 10, 0, 0, 14,
/* 0x0740 */ 225,160, 0, 6,225,160, 16, 8,227,160, 32, 3,227,160, 48, 16,
/* 0x0750 */ 235,255,254,240,225, 86, 0, 0, 26, 0, 0, 72,229,157, 32, 92,
/* 0x0760 */ 226, 20, 48, 4, 17,160, 48, 2,229,157, 0, 12,226,141, 16, 44,
/* 0x0770 */ 229,157, 32, 16,235,255,255, 38,234, 0, 0, 11,229, 21,192, 28,
/* 0x0780 */ 224, 98,192, 12,229,141,192, 4,229,157,192, 16,225,160, 0, 6,
/* 0x0790 */ 225,160, 16, 8,225,160, 32, 11,227,160, 48, 18,229,141,192, 0,
/* 0x07a0 */ 235,255,254,212,225, 86, 0, 0, 26, 0, 0, 52,226,104, 48, 0,
/* 0x07b0 */ 225,160,122, 3,227, 27, 0, 2,225,160,122, 39, 10, 0, 0, 7,
/* 0x07c0 */ 227, 87, 0, 0, 10, 0, 0, 5,224,134, 16, 8,225,160, 32, 7,
/* 0x07d0 */ 227,160, 48, 0,226, 82, 32, 1,228,193, 48, 1, 26,255,255,251,
/* 0x07e0 */ 229,157, 0, 12,227, 80, 0, 0, 10, 0, 0, 38,235,255,254,199,
/* 0x07f0 */ 229, 21, 48, 32,227, 83, 0, 1, 26, 0, 0, 26,229, 21, 48, 8,
/* 0x0800 */ 227, 19, 0, 1, 10, 0, 0, 23,229, 21, 32, 12,229, 21, 48, 16,
/* 0x0810 */ 225, 82, 0, 3,229, 21, 16, 24, 26, 0, 0, 64,224,130, 48, 1,
/* 0x0820 */ 226,131, 48, 3,224,137, 48, 3,227,195, 64, 3,226,100, 48, 0,
/* 0x0830 */ 225,160, 58, 3,225,160, 58, 35,227, 83, 0, 7,154, 0, 0, 55,
/* 0x0840 */ 229,159, 48,248,229,132, 0, 0,226,132, 16, 8,225,160, 0, 4,
/* 0x0850 */ 229,132, 48, 4,235,255,254,164,229,157, 0, 8,225,160, 32, 4,
/* 0x0860 */ 227,160, 16, 0,235,255,254,199,225,160, 0, 6,225,160, 16, 8,
/* 0x0870 */ 225,160, 32, 11,235,255,254,154,227, 80, 0, 0, 10, 0, 0, 1,
/* 0x0880 */ 227,160, 0,127,235,255,254,131,229,157, 32, 20,229,157,192, 36,
/* 0x0890 */ 224,136, 48, 7,224,130, 16, 12,224,134, 64, 3,225, 84, 0, 1,
/* 0x08a0 */ 42, 0, 0, 6,224,100, 16, 1,225,160, 32, 11,225,160, 0, 4,
/* 0x08b0 */ 227,160, 48, 16,235,255,254,151,225, 84, 0, 0, 26,255,255,239,
/* 0x08c0 */ 229,157, 0, 24,226,128, 0, 1,229,141, 0, 24,226,133, 80, 32,
/* 0x08d0 */ 225,218, 50,188,229,157, 16, 24,225, 81, 0, 3,186,255,255, 90,
/* 0x08e0 */ 229,157, 32, 12,227, 82, 0, 0, 10, 0, 0, 5,225,218, 49,176,
/* 0x08f0 */ 227, 83, 0, 3, 21,157, 48, 28, 21,157,192, 40, 16,131, 0, 12,
/* 0x0900 */ 27,255,254,113,229,157, 0, 88,227, 80, 0, 0, 21,128,144, 0,
/* 0x0910 */ 229,154, 0, 24,224,137, 0, 0,226,141,208, 52,232,189,143,240,
/* 0x0920 */ 229, 21, 48, 28,227, 83, 0, 0, 5,157, 32, 32, 0,129, 48, 2,
/* 0x0930 */ 2,131, 64, 8, 10,255,255,193,234,255,255,202,115, 81, 98, 64,
/* 0x0940 */ 225,160,240, 14,233, 45, 71,240,226, 77,208, 12,226,141, 96, 52,
/* 0x0950 */ 225,160,144, 0,225,160,112, 1,225,160,128, 3,225,160, 0, 6,
/* 0x0960 */ 226,141, 16, 44,227,160, 48, 0,229,157,160, 48,225,160, 80, 2,
/* 0x0970 */ 229,157, 64, 52,235,255,254,166,229,157, 48, 60,226,141,224, 12,
/* 0x0980 */ 229,157,192, 56,229, 46, 48, 4,224,100,192, 12,225,160, 32, 6,
/* 0x0990 */ 225,160, 16, 10,225,160, 48, 9,225,160, 0, 5,229,141,192, 56,
/* 0x09a0 */ 229,141,224, 0,229,141,112, 52,229,141,128, 4,235,255,254,234,
/* 0x09b0 */ 225,160, 64, 0,227,160, 16, 9,225,160, 0, 9,225,160, 32, 4,
/* 0x09c0 */ 235,255,254,112,225,218, 2,188,226,138, 32, 52,227,160, 16, 0,
/* 0x09d0 */ 234, 0, 0, 35,229,146, 48, 0,227, 83, 0, 3, 26, 0, 0, 30,
/* 0x09e0 */ 229,146, 48, 8,229,157, 0, 8,227,160, 16, 0,224,131, 0, 0,
/* 0x09f0 */ 225,160, 32, 1,235,255,254, 44,226, 80, 80, 0,186, 0, 0, 4,
/* 0x0a00 */ 225,160, 16, 10,227,160, 44, 2,235,255,254, 35,227, 80, 12, 2,
/* 0x0a10 */ 10, 0, 0, 1,227,160, 0,127,235,255,254, 30,227,160,224, 0,
/* 0x0a20 */ 225,160, 32, 14,226,141,192, 8,225,160, 16, 10,225,160, 48, 9,
/* 0x0a30 */ 225,160, 0, 5,232,141, 80, 0,235,255,254,199,227,160, 16, 7,
/* 0x0a40 */ 225,160, 64, 0,229,157, 32, 8,225,160, 0, 9,235,255,254, 77,
/* 0x0a50 */ 225,160, 0, 5,235,255,254, 22,234, 0, 0, 3,226,130, 32, 32,
/* 0x0a60 */ 226,129, 16, 1,225, 81, 0, 0,186,255,255,217,225,160, 0, 4,
/* 0x0a70 */ 226,141,208, 12,232,189,135,240
/* 0x0080 */ 227,131, 48, 0,225,160,240, 14,232,189, 31,192,225,160, 16, 13,
/* 0x0090 */ 226, 77,218, 1,225,160, 0, 13,233, 45, 31,240,228,145, 48, 4,
/* 0x00a0 */ 227, 83, 0, 0,228,128, 48, 4, 26,255,255,251,225,160, 64, 0,
/* 0x00b0 */ 228,128, 48, 4,228,145, 48, 4,227, 83, 0, 0,228,128, 48, 4,
/* 0x00c0 */ 26,255,255,251,225,160, 80, 1,232,177, 0, 12,227, 82, 0, 0,
/* 0x00d0 */ 232,160, 0, 12, 26,255,255,251,225,160, 96, 1,225,160,144, 0,
/* 0x00e0 */ 227,160, 42, 1,225,160, 16, 0,226,143, 15, 70,226, 66, 32, 1,
/* 0x00f0 */ 235, 0, 0,108,224,129, 32, 0,227,112, 10, 1, 58, 0, 0, 1,
/* 0x0100 */ 226,143, 28, 1,226,129, 32, 14,225,160, 0, 6,227,160, 48, 0,
/* 0x0110 */ 229, 96, 48, 1,229,114, 48, 1,229, 96, 48, 1,225, 81, 0, 2,
/* 0x0120 */ 26,255,255,251,227,160, 48, 61,229, 96, 48, 1,227,160, 48, 32,
/* 0x0130 */ 229, 96, 48, 1,229, 96, 48, 1,229, 96, 48, 1,229,132, 0, 0,
/* 0x0140 */ 225,160, 1, 32,225,160, 1, 0,224, 38, 48, 0,226, 3, 48, 4,
/* 0x0150 */ 226, 35, 48, 4,224, 64, 0, 3,224, 64, 48, 6,224,131, 48, 5,
/* 0x0160 */ 225,160, 16, 9,229,157, 80, 24,229,141, 0, 24,229, 49, 32, 4,
/* 0x0170 */ 225, 81, 0, 13,229, 32, 32, 4, 26,255,255,251,225,160,208, 0,
/* 0x0180 */ 232,189, 12, 16,226, 77,220, 10,229,154,144, 4,225,160,128, 13,
/* 0x0190 */ 229,154,112, 0,226,143, 96,124,226,137,144, 12,233, 45, 15,248,
/* 0x01a0 */ 232,189, 0, 15,235, 0, 1,209,226,141,208, 20,226,141,220, 10,
/* 0x01b0 */ 229,141, 0, 16,227,160, 80, 0,229,189, 64, 0,227,160, 48, 2,
/* 0x01c0 */ 227,160, 32, 1,227,160, 26, 1,227,160, 0, 0,235, 0, 0, 62,
/* 0x01d0 */ 228,157, 0, 4,235, 0, 0, 43,232,189, 64, 7,227,160, 48, 0,
/* 0x01e0 */ 227,160, 64, 0,227,160, 80, 0,227,160, 96, 0,227,160,128, 0,
/* 0x01f0 */ 227,160,144, 0,227,160,160, 0,227,160,176, 0,227,160,112, 0,
/* 0x0200 */ 227,160,192, 0,229, 18,240, 4, 47,112,114,111, 99, 47,115,101,
/* 0x0210 */ 108,102, 47,101,120,101, 0, 0,226, 3, 48,255,227, 83, 0, 81,
/* 0x0220 */ 17,160,240, 14,225,176, 17, 33, 19, 80, 0, 0, 1,160,240, 14,
/* 0x0230 */ 226, 65, 16, 1,231,144, 33, 1,226, 2, 52, 15,227, 83, 4, 11,
/* 0x0240 */ 26, 0, 0, 4,226, 2, 52,255,224, 66, 32, 1,227,194, 36,255,
/* 0x0250 */ 225,130, 32, 3,231,128, 33, 1,227, 81, 0, 0, 26,255,255,243,
/* 0x0260 */ 225,160,240, 14,231,240, 1,240,225,160,240, 14,239,144, 0, 1,
/* 0x0270 */ 239,144, 0, 3,225,160,240, 14,239,144, 0, 4,225,160,240, 14,
/* 0x0280 */ 239,144, 0, 5,225,160,240, 14,239,144, 0, 6,225,160,240, 14,
/* 0x0290 */ 239,144, 0, 10,225,160,240, 14,239,144, 0, 20,225,160,240, 14,
/* 0x02a0 */ 239,144, 0, 45,225,160,240, 14,239,144, 0, 85,225,160,240, 14,
/* 0x02b0 */ 239,144, 0, 91,225,160,240, 14,239,144, 0,125,225,160,240, 14,
/* 0x02c0 */ 227,160, 32, 0,239,159, 0, 2,225,160,240, 14,233, 45, 64, 48,
/* 0x02d0 */ 229,157, 80, 16,229,157, 64, 12,225,160, 86, 37,239,144, 0,192,
/* 0x02e0 */ 232,189,128, 48,229, 31, 0, 60,225,160,240, 14,233, 45, 64, 48,
/* 0x02f0 */ 227,160, 80, 0,227,224, 64, 0,226, 79,224, 36,234,255,255, 95,
/* 0x0300 */ 225,160,192, 0,224, 65, 16, 1,225,160, 32, 0,224,144, 1,128,
/* 0x0310 */ 224,161, 17,129,224,129, 30,162,225,160, 32, 0,224,144, 2, 0,
/* 0x0320 */ 224,161, 18, 1,224,129, 30, 34,225,160, 32, 0,224,144, 4, 0,
/* 0x0330 */ 224,161, 20, 1,224,129, 28, 34,225,160, 32, 0,224,144, 8, 0,
/* 0x0340 */ 224,161, 24, 1,224,129, 24, 34,224, 80, 15,140,224,193, 16,172,
/* 0x0350 */ 224,144, 0, 12,226,161, 0, 0,225,160,240, 14,227, 80, 0, 0,
/* 0x0360 */ 1,160,240, 14,229,144, 48, 0,225, 83, 0, 1, 18,128, 0, 8,
/* 0x0370 */ 26,255,255,251,229,128, 32, 4,225,160,240, 14,229,159, 0, 0,
/* 0x0380 */ 225,160,240, 14,255,255,240, 0,229,144, 48, 0,225, 83, 0, 2,
/* 0x0390 */ 229,144, 48, 4,229, 45,224, 4, 33,160,192, 3,225,160,224, 2,
/* 0x03a0 */ 33,160, 32, 2, 42, 0, 0, 3,227,160, 0,127,235,255,255,174,
/* 0x03b0 */ 229, 92, 48, 1,229, 65, 48, 1,226, 66, 32, 1,227,114, 0, 1,
/* 0x03c0 */ 226,140,192, 1,226,129, 16, 1, 26,255,255,248,229,144, 32, 4,
/* 0x03d0 */ 229,144, 48, 0,224,130, 32, 14,224,110, 48, 3,229,128, 48, 0,
/* 0x03e0 */ 229,128, 32, 4,228,157,240, 4,233, 45, 64,240,225,160, 80, 0,
/* 0x03f0 */ 226, 77,208, 20,225,160, 64, 1,225,160,112, 2,225,160, 96, 3,
/* 0x0400 */ 234, 0, 0, 68,226,141, 16, 4,225,160, 0, 5,227,160, 32, 12,
/* 0x0410 */ 235,255,255,220,229,157,224, 4,227, 94, 0, 0,229,157, 16, 8,
/* 0x0420 */ 26, 0, 0, 6,229,159, 49, 0,225, 81, 0, 3, 26, 0, 0, 5,
/* 0x0430 */ 229,149, 48, 0,227, 83, 0, 0, 26, 0, 0, 2,234, 0, 0, 56,
/* 0x0440 */ 227, 81, 0, 0, 26, 0, 0, 1,227,160, 0,127,235,255,255,134,
/* 0x0450 */ 225, 81, 0, 14,138,255,255,251,229,148, 48, 0,225, 94, 0, 3,
/* 0x0460 */ 138,255,255,248,225, 81, 0, 14, 42, 0, 0, 33,229,221,192, 12,
/* 0x0470 */ 229,149, 0, 4,229,148, 32, 4,226,141, 48, 16,229,141,224, 16,
/* 0x0480 */ 229,141,192, 0,225,160,224, 15,225,160,240, 7,227, 80, 0, 0,
/* 0x0490 */ 26,255,255,236,229,157, 16, 16,229,157, 48, 4,225, 81, 0, 3,
/* 0x04a0 */ 26,255,255,232,229,221, 32, 13,227, 82, 0, 0, 19, 86, 0, 0,
/* 0x04b0 */ 10, 0, 0, 9,227, 81, 12, 2,138, 0, 0, 2,229,148, 48, 0,
/* 0x04c0 */ 225, 83, 0, 1, 26, 0, 0, 4,225,160, 48, 2,229,148, 0, 4,
/* 0x04d0 */ 229,221, 32, 14,225,160,224, 15,225,160,240, 6,229,157, 48, 8,
/* 0x04e0 */ 232,149, 0, 6,224,130, 32, 3,224, 99, 16, 1,232,133, 0, 6,
/* 0x04f0 */ 234, 0, 0, 3,225,160, 32, 1,225,160, 0, 5,229,148, 16, 4,
/* 0x0500 */ 235,255,255,160,229,157, 48, 4,232,148, 0, 6,224,130, 32, 3,
/* 0x0510 */ 224, 99, 16, 1,232,132, 0, 6,229,148, 48, 0,227, 83, 0, 0,
/* 0x0520 */ 26,255,255,183,226,141,208, 20,232,189,128,240, 33, 88, 80, 85,
/* 0x0530 */ 233, 45, 79,240,225,160,160, 1,225,218,193,176,229,145, 16, 28,
/* 0x0540 */ 226, 77,208, 52,225,218,226,188,227, 92, 0, 2,224,138, 80, 1,
/* 0x0550 */ 229,157, 96, 96,229,141, 0, 16, 3,160,192, 16, 19,160,192, 0,
/* 0x0560 */ 226, 78,224, 1,225,160, 16, 5,227,224, 0, 0,227,160,112, 0,
/* 0x0570 */ 229,141, 32, 12,229,141, 48, 8,234, 0, 0, 13,229,145, 48, 0,
/* 0x0580 */ 227, 83, 0, 1, 26, 0, 0, 8,229,145, 48, 20,227, 83, 0, 0,
/* 0x0590 */ 10, 0, 0, 5,229,145, 32, 8,224,131, 48, 2,225, 87, 0, 3,
/* 0x05a0 */ 49,160,112, 3,225, 80, 0, 2, 33,160, 0, 2,226,129, 16, 32,
/* 0x05b0 */ 226, 78,224, 1,227, 94, 0, 0,170,255,255,239,227,192, 78,255,
/* 0x05c0 */ 227,196, 64, 15,224,100, 48, 7,226,131, 62,255,226,131, 48, 15,
/* 0x05d0 */ 227,195, 62,255,229,141, 48, 36,229,157, 16, 36,226, 28, 48, 16,
/* 0x05e0 */ 227,193, 16, 15,229,141, 16, 36, 17,160, 96, 4, 26, 0, 0, 4,
/* 0x05f0 */ 227, 84, 0, 0, 17,160, 96, 3, 26, 0, 0, 1,227, 86, 0, 0,
/* 0x0600 */ 19,140,192, 16,225,160, 48, 12,227,160, 32, 0,225,160, 0, 6,
/* 0x0610 */ 229,157, 16, 36,235,255,255, 52,224,100, 64, 0,227,160, 48, 52,
/* 0x0620 */ 225,160, 32, 4,224, 2, 2,147,227,160, 48, 0,229,141, 0, 28,
/* 0x0630 */ 229,141, 64, 20,229,141, 32, 32,229,141, 48, 24,234, 0, 0,140,
/* 0x0640 */ 229,149, 48, 0,227, 83, 0, 1, 26, 0, 0,133,229,149, 48, 20,
/* 0x0650 */ 227, 83, 0, 0, 10, 0, 0,130,229,157,192, 12,227, 92, 0, 0,
/* 0x0660 */ 10, 0, 0, 9,229,149, 48, 4,227, 83, 0, 0, 26, 0, 0, 6,
/* 0x0670 */ 227,160, 16, 5,229,157, 0, 8,235,255,255, 55,229,157, 0, 8,
/* 0x0680 */ 227,160, 16, 4,225,218, 34,186,235,255,255, 51,229,149, 48, 24,
/* 0x0690 */ 229,159, 34, 80,226, 3, 48, 7,225,160, 49, 3,225,160, 67, 50,
/* 0x06a0 */ 229,157, 16, 20,229,149, 48, 8,229,157,192, 12,224,129,176, 3,
/* 0x06b0 */ 225,160, 42, 11,229,149, 48, 16,229,149, 16, 20,225,160, 42, 34,
/* 0x06c0 */ 227, 92, 0, 0,229,141, 48, 44,229,141,176, 48,224,131,128, 2,
/* 0x06d0 */ 226, 4,144, 7,229,141, 16, 40,224, 98, 96, 11, 10, 0, 0, 14,
/* 0x06e0 */ 225,160, 0, 6,225,160, 16, 8,227,160, 32, 3,227,160, 48, 16,
/* 0x06f0 */ 235,255,254,253,225, 86, 0, 0, 26, 0, 0, 73,229,157, 32, 92,
/* 0x0700 */ 226, 20, 48, 4, 17,160, 48, 2,229,157, 0, 12,226,141, 16, 44,
/* 0x0710 */ 229,157, 32, 16,235,255,255, 51,234, 0, 0, 11,229,149,192, 4,
/* 0x0720 */ 224, 98,192, 12,229,141,192, 4,229,157,192, 16,225,160, 0, 6,
/* 0x0730 */ 225,160, 16, 8,225,160, 32, 9,227,160, 48, 18,229,141,192, 0,
/* 0x0740 */ 235,255,254,225,225, 86, 0, 0, 26, 0, 0, 53,226,104, 48, 0,
/* 0x0750 */ 225,160,122, 3,227, 25, 0, 2,225,160,122, 39, 10, 0, 0, 7,
/* 0x0760 */ 227, 87, 0, 0, 10, 0, 0, 5,224,134, 16, 8,225,160, 32, 7,
/* 0x0770 */ 227,160, 48, 0,226, 82, 32, 1,228,193, 48, 1, 26,255,255,251,
/* 0x0780 */ 229,157, 16, 12,227, 81, 0, 0, 10, 0, 0, 39,235,255,254,212,
/* 0x0790 */ 229,149, 48, 0,227, 83, 0, 1, 26, 0, 0, 27,229,149, 48, 24,
/* 0x07a0 */ 227, 19, 0, 1, 10, 0, 0, 24,229,149, 32, 20,229,149, 48, 16,
/* 0x07b0 */ 225, 82, 0, 3,229,149, 16, 8, 26, 0, 0, 67,224,130, 48, 1,
/* 0x07c0 */ 229,157, 32, 20,226,131, 48, 3,224,130, 48, 3,227,195, 64, 3,
/* 0x07d0 */ 226,100, 48, 0,225,160, 58, 3,225,160, 58, 35,227, 83, 0, 7,
/* 0x07e0 */ 154, 0, 0, 57,229,159, 49, 0,229,132, 0, 0,226,132, 16, 8,
/* 0x07f0 */ 225,160, 0, 4,229,132, 48, 4,235,255,254,176,229,157, 0, 8,
/* 0x0800 */ 225,160, 32, 4,227,160, 16, 0,235,255,254,211,225,160, 0, 6,
/* 0x0810 */ 225,160, 16, 8,225,160, 32, 9,235,255,254,166,227, 80, 0, 0,
/* 0x0820 */ 10, 0, 0, 1,227,160, 0,127,235,255,254,143,229,157,192, 40,
/* 0x0830 */ 224,136, 48, 7,224,139, 16, 12,224,134, 64, 3,225, 84, 0, 1,
/* 0x0840 */ 42, 0, 0, 7,224,100, 16, 1,225,160, 32, 9,225,160, 0, 4,
/* 0x0850 */ 227,160, 48, 16,235,255,254,164,225, 84, 0, 0, 10, 0, 0, 0,
/* 0x0860 */ 234,255,255,254,229,157, 16, 24,226,129, 16, 1,229,141, 16, 24,
/* 0x0870 */ 226,133, 80, 32,225,218, 34,188,229,157, 48, 24,225, 83, 0, 2,
/* 0x0880 */ 186,255,255,110,229,157,192, 12,227, 92, 0, 0, 10, 0, 0, 5,
/* 0x0890 */ 225,218, 49,176,227, 83, 0, 3, 21,157, 16, 36, 21,157, 32, 28,
/* 0x08a0 */ 16,129, 0, 2, 27,255,254,125,229,157, 48, 88,227, 83, 0, 0,
/* 0x08b0 */ 21,157,192, 20, 21,131,192, 0,229,157, 48, 20,229,154, 0, 24,
/* 0x08c0 */ 224,131, 0, 0,226,141,208, 52,232,189,143,240,229,149, 48, 4,
/* 0x08d0 */ 227, 83, 0, 0, 5,157, 32, 32, 0,129, 48, 2, 2,131, 64, 8,
/* 0x08e0 */ 10,255,255,191,234,255,255,200,115, 81, 98, 64,225,160,240, 14,
/* 0x08f0 */ 233, 45, 79,240,226, 77,208, 16,226,141,112, 60,225,160,176, 0,
/* 0x0900 */ 225,160,128, 1,225,160,160, 3,225,160, 0, 7,226,141, 16, 52,
/* 0x0910 */ 227,160, 48, 0,229,157,144, 56,225,160, 80, 2,229,157, 64, 60,
/* 0x0920 */ 235,255,254,176,229,157, 48, 68,226,141,224, 16,229, 46, 48, 4,
/* 0x0930 */ 229,157,192, 64,229,157, 96, 68,224,100,192, 12,225,160, 32, 7,
/* 0x0940 */ 225,160, 16, 9,225,160, 48, 11,225,160, 0, 5,229,141,192, 64,
/* 0x0950 */ 229,141,224, 0,229,141,128, 60,229,141,160, 4,229,141, 96, 8,
/* 0x0960 */ 235,255,254,242,225,160, 64, 0,227,160, 16, 9,225,160, 0, 11,
/* 0x0970 */ 225,160, 32, 4,235,255,254,120,225,217, 2,188,226,137, 32, 52,
/* 0x0980 */ 227,160, 16, 0,234, 0, 0, 36,229,146, 48, 0,227, 83, 0, 3,
/* 0x0990 */ 26, 0, 0, 31,229,146, 48, 8,229,157, 0, 12,227,160, 16, 0,
/* 0x09a0 */ 224,131, 0, 0,225,160, 32, 1,235,255,254, 52,226, 80, 80, 0,
/* 0x09b0 */ 186, 0, 0, 4,225,160, 16, 9,227,160, 44, 2,235,255,254, 43,
/* 0x09c0 */ 227, 80, 12, 2, 10, 0, 0, 1,227,160, 0,127,235,255,254, 38,
/* 0x09d0 */ 227,160,224, 0,225,160, 32, 14,226,141,192, 12,225,160, 16, 9,
/* 0x09e0 */ 225,160, 48, 11,225,160, 0, 5,232,141, 80, 0,229,141,224, 8,
/* 0x09f0 */ 235,255,254,206,227,160, 16, 7,225,160, 64, 0,229,157, 32, 12,
/* 0x0a00 */ 225,160, 0, 11,235,255,254, 84,225,160, 0, 5,235,255,254, 29,
/* 0x0a10 */ 234, 0, 0, 3,226,130, 32, 32,226,129, 16, 1,225, 81, 0, 0,
/* 0x0a20 */ 186,255,255,216,225,160, 0, 4,226,141,208, 16,232,189,143,240
};

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/* i386-linux.elf-fold.h
created from i386-linux.elf-fold.bin, 1849 (0x739) bytes
created from i386-linux.elf-fold.bin, 1802 (0x70a) bytes
This file is part of the UPX executable compressor.
@ -31,125 +31,122 @@
*/
#define STUB_I386_LINUX_ELF_FOLD_SIZE 1849
#define STUB_I386_LINUX_ELF_FOLD_ADLER32 0xa9f62748
#define STUB_I386_LINUX_ELF_FOLD_CRC32 0x2dbc52c0
#define STUB_I386_LINUX_ELF_FOLD_SIZE 1802
#define STUB_I386_LINUX_ELF_FOLD_ADLER32 0x98ef11cb
#define STUB_I386_LINUX_ELF_FOLD_CRC32 0xad4fa4a7
unsigned char stub_i386_linux_elf_fold[1849] = {
unsigned char stub_i386_linux_elf_fold[1802] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 3, 0, 1, 0, 0, 0,128, 16,192, 0, 52, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 16,192, 0,
/* 0x0040 */ 0, 16,192, 0, 57, 7, 0, 0, 60, 7, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0, 57, 7, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 0, 16,192, 0, 10, 7, 0, 0, 12, 7, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 137,230,129,236, 0, 16, 0, 0,137,231,106, 8, 89,243,165, 85,
/* 0x0090 */ 137,229,173,133,192,171,117,250, 87,171,173,133,192,171,117,250,
/* 0x00a0 */ 87,173,133,192,171,165,117,249, 64,131,239, 8,185, 10, 0, 0,
/* 0x00b0 */ 0,243,171, 72,171,171, 41,125,248, 87, 86,232, 15, 0, 0, 0,
/* 0x00c0 */ 47,112,114,111, 99, 47,115,101,108,102, 47,101,120,101, 0, 91,
/* 0x00d0 */ 41,201,106, 5, 88,205,128,137, 69, 16,186,215, 15, 0, 0,137,
/* 0x00e0 */ 249,106, 85, 88,205,128,133,192,121, 7,137,217,184, 14, 0, 0,
/* 0x00f0 */ 0,141,116, 1,255,145,253, 95, 79,176, 0,170,243,164,184, 32,
/* 0x0100 */ 32, 32, 61,131,239, 3,137, 7,139, 69,252,137, 56,131,231,252,
/* 0x0110 */ 94,137,241, 41,225,137,200, 49,248,131,224, 4, 41,199, 90, 1,
/* 0x0120 */ 250,175,173,193,233, 2, 73,243,165,252,141, 79, 4, 49,192, 41,
/* 0x0130 */ 225,137,231,193,233, 2,243,171,137,252,137,215, 88, 93, 94, 88,
/* 0x0140 */ 89,129,236, 0, 10, 0, 0,137,226, 81,139, 24,139, 72, 4,131,
/* 0x0150 */ 193, 12, 96, 71,232,219, 4, 0, 0, 79,137,198,137,250,137,231,
/* 0x0160 */ 185,137, 2, 0, 0, 49,192,243,171,137,252,137,116, 36, 12, 95,
/* 0x0170 */ 82, 87, 41,237,106, 2, 94,106, 1, 90,185, 0, 16, 0, 0, 41,
/* 0x0180 */ 219,104,192, 0, 0, 0, 88,205,128, 91,106, 6, 88,205,128, 95,
/* 0x0190 */ 41,192, 60,175,175,117,252, 89, 91, 80, 80, 80, 80, 80, 80, 80,
/* 0x01a0 */ 80,176, 91,255, 39, 85, 83, 86, 87,139, 92, 36, 20,139, 76, 36,
/* 0x01b0 */ 24,139, 84, 36, 28,139,116, 36, 32,139,124, 36, 36,139,108, 36,
/* 0x01c0 */ 40,193,237, 12,104,192, 0, 0, 0, 88,205,128, 95, 94, 91, 93,
/* 0x01d0 */ 195, 0, 0, 0, 87, 86,137,206, 83,137,195, 57, 8,139,120, 4,
/* 0x01e0 */ 115, 10,106,127, 91,106, 1, 88,205,128,235,254,133,201,116, 8,
/* 0x01f0 */ 138, 7, 71,136, 2, 66,226,248, 1,115, 4, 41, 51, 91, 94, 95,
/* 0x0200 */ 195, 85,137,229, 87, 86,137,198, 83,137,211,131,236, 24,139, 69,
/* 0x0210 */ 8,139,125, 12,137, 69,220,131, 58, 0, 15,132,185, 0, 0, 0,
/* 0x0220 */ 141, 85,228,185, 12, 0, 0, 0,137,240,232,165,255,255,255,139,
/* 0x0230 */ 69,228,139, 77,232,133,192,117, 19,129,249, 85, 80, 88, 33,117,
/* 0x0240 */ 15,131, 62, 0, 15,132,143, 0, 0, 0,235, 4,133,201,117, 10,
/* 0x0250 */ 106,127, 91,106, 1, 88,205,128,235,254, 57,193,119,242, 59, 3,
/* 0x0260 */ 119,238, 57,193,115, 86,137, 69,224,141, 69,224,255,117,236, 80,
/* 0x0270 */ 255,115, 4, 81,255,118, 4,255, 85,220,131,196, 20,133,192,117,
/* 0x0280 */ 207,139, 85,224, 59, 85,228,117,199,138, 69,237,132,192,116, 34,
/* 0x0290 */ 133,255,116, 30,129,250, 0, 2, 0, 0,119, 4, 57, 19,117, 18,
/* 0x02a0 */ 15,182,192, 80, 15,182, 69,238, 80, 82,255,115, 4,255,215,131,
/* 0x02b0 */ 196, 16,139, 69,232, 1, 70, 4, 41, 6,235, 10,139, 83, 4,137,
/* 0x02c0 */ 240,232, 14,255,255,255,139, 85,228,139, 3, 1, 83, 4, 41,208,
/* 0x02d0 */ 133,192,137, 3,233, 65,255,255,255,141,101,244, 91, 94, 95,201,
/* 0x02e0 */ 195,133,192,116, 13,168, 1,117, 9, 57, 16,116, 7,131,192, 8,
/* 0x02f0 */ 235,247, 49,192,133,192,116, 3,137, 72, 4,195,184, 0,240,255,
/* 0x0300 */ 255,195, 85,137,229, 87, 86, 83,131,236, 84,137, 69,228,139, 77,
/* 0x0310 */ 16,137, 85,224,139, 69, 8,139, 85, 12,137, 77,212,139, 93, 20,
/* 0x0320 */ 137, 69,220,137, 85,216,137, 93,208,232,206,255,255,255,137,195,
/* 0x0330 */ 139, 85,224,137,198,139, 69,224, 15,183, 74, 44,247,214, 3, 64,
/* 0x0340 */ 28,137,117,204,102,131,122, 16, 2,137, 77,196,137, 69,200, 15,
/* 0x0350 */ 148,192,139,117,200, 15,182,248,232,159,255,255,255,139, 69,196,
/* 0x0360 */ 193,231, 4,137, 93,188, 49,210,131,203,255, 72,120, 31,139, 77,
/* 0x0370 */ 196,131, 62, 1,117, 18,139, 70, 8, 57,216,115, 2,137,195, 3,
/* 0x0380 */ 70, 20, 57,194,115, 2,137,194,131,198, 32,226,228,139,117,188,
/* 0x0390 */ 33,222, 41,242, 43, 85,188,141, 90,255,137,242, 35, 93,188,133,
/* 0x03a0 */ 255,117, 22,106, 0,131,207, 34,106,255, 87,106, 0, 83, 86,232,
/* 0x03b0 */ 241,253,255,255,131,196, 24,137,194,141, 4, 26, 41,242,137, 85,
/* 0x03c0 */ 192,139, 85,224,137, 69,240,102,131,122, 44, 0,199, 69,184, 0,
/* 0x03d0 */ 0, 0, 0, 15,132, 33, 2, 0, 0,131,125,220, 0,116, 35,139,
/* 0x03e0 */ 77,200,131, 57, 6,117, 27,139, 93,200,186, 3, 0, 0, 0,139,
/* 0x03f0 */ 77,192, 3, 75, 8,139, 69,216,232,228,254,255,255,233,225, 1,
/* 0x0400 */ 0, 0,139,117,200,131, 62, 1, 15,133,213, 1, 0, 0,131,125,
/* 0x0410 */ 220, 0,116, 71,131,126, 4, 0,117, 65,139, 69,224,186, 3, 0,
/* 0x0420 */ 0, 0,139, 77,192, 3, 78, 8, 3, 72, 28,139, 69,216,232,174,
/* 0x0430 */ 254,255,255,139, 85,224,139, 69,216, 15,183, 74, 44,186, 5, 0,
/* 0x0440 */ 0, 0,232,154,254,255,255,139, 93,224,139, 69,216,186, 4, 0,
/* 0x0450 */ 0, 0, 15,183, 75, 42,232,134,254,255,255,139,117,200,187, 64,
/* 0x0460 */ 98, 81,115,139, 78, 24,139, 86, 16,131,225, 7,193,225, 2,137,
/* 0x0470 */ 85,232,211,235,139, 78, 20,137,216,131,224, 7,137, 69,180,139,
/* 0x0480 */ 69,192, 3, 70, 8, 1,193,137,198,137, 77,176,139, 77,204,137,
/* 0x0490 */ 69,236, 33,193, 41,206,131,125,220, 0,141, 60, 10,116, 58,106,
/* 0x04a0 */ 0,106,255,106, 50,141, 71, 3,106, 3, 80, 86,232,244,252,255,
/* 0x04b0 */ 255,131,196, 24, 57,198, 15,133,219, 0, 0, 0,128,227, 4,139,
/* 0x04c0 */ 69,208,117, 2, 49,192, 80,139, 69,220,255,117,228,141, 85,232,
/* 0x04d0 */ 232, 44,253,255,255, 88, 90,235, 35,139, 93,200,139, 67, 4, 41,
/* 0x04e0 */ 200, 80,255,117,228,106, 18,255,117,180, 87, 86,232,180,252,255,
/* 0x04f0 */ 255,131,196, 24, 57,198, 15,133,155, 0, 0, 0,137,248,139, 85,
/* 0x0500 */ 204,247,216, 33,208,246, 69,180, 2,137, 69,172,116, 18,131,125,
/* 0x0510 */ 172, 0,141, 4, 62,116, 9,139, 77,172,198, 0, 0, 64,226,250,
/* 0x0520 */ 131,125,220, 0,116,123,139, 77,200,131, 57, 1,117, 89,246, 65,
/* 0x0530 */ 24, 1,116, 83,139, 81, 20,139, 89, 8,139, 69,200,141, 12, 26,
/* 0x0540 */ 3, 77,192, 59, 80, 16,117, 14,137,200,247,216, 37,255, 15, 0,
/* 0x0550 */ 0,131,248, 3,119, 17,139, 85,200,107, 69,192, 52,131,122, 4,
/* 0x0560 */ 0,141, 76, 3, 12,117, 32,139, 1, 61,205,128, 97,195,116, 6,
/* 0x0570 */ 199, 1,205,128, 97,195,133,201,116, 13,139, 69,216, 49,210,131,
/* 0x0580 */ 224,254,232, 90,253,255,255,137,243,137,249,139, 85,180,106,125,
/* 0x0590 */ 88,205,128,133,192,116, 10,106,127, 91,106, 1, 88,205,128,235,
/* 0x05a0 */ 254,139, 85,172,141, 4, 23,141, 28, 6, 59, 93,176,115, 30,106,
/* 0x05b0 */ 0,106,255,106, 50,255,117,180, 41, 93,176,255,117,176, 83,232,
/* 0x05c0 */ 225,251,255,255,131,196, 24, 57,195,116, 24,235,202,131,125,220,
/* 0x05d0 */ 0,116, 16,141, 79, 3, 35, 77,204,131,249, 3,119, 5,106, 91,
/* 0x05e0 */ 88,205,128,139, 77,224,255, 69,184, 15,183, 65, 44,131, 69,200,
/* 0x05f0 */ 32, 57, 69,184, 15,140,223,253,255,255,131,125,220, 0,116, 18,
/* 0x0600 */ 139, 93,224,102,131,123, 16, 3,116, 8,139, 93,240,106, 45, 88,
/* 0x0610 */ 205,128,131,125,212, 0,116, 8,139, 69,192,139,117,212,137, 6,
/* 0x0620 */ 139, 85,224,139, 82, 24, 1, 85,192,139, 69,192,141,101,244, 91,
/* 0x0630 */ 94, 95,201,195, 85,137,229, 87, 86, 83,131,236, 28,199, 69,232,
/* 0x0640 */ 0, 0, 0, 0,139, 69, 8,139,117, 16,137, 69,236,128, 62,235,
/* 0x0650 */ 117, 6,141, 86, 2,137, 85,232,106, 0,139, 93, 32,141, 69, 32,
/* 0x0660 */ 139,125, 28,141, 85, 24, 86,232,149,251,255,255,139, 69, 12, 89,
/* 0x0670 */ 137, 69, 32,139, 69, 40, 41, 93, 36,137, 69,240, 91,255,117,232,
/* 0x0680 */ 141, 77,240,137,250,141, 69, 32, 81,255,117,236, 80,137,240,232,
/* 0x0690 */ 110,252,255,255,186, 9, 0, 0, 0,137,193,137, 69,228,139, 69,
/* 0x06a0 */ 236,232, 59,252,255,255,102,139, 95, 44,131,196, 16, 49,201,102,
/* 0x06b0 */ 133,219,141, 87, 52,116,119,131, 58, 3,117,103,139, 93,240, 49,
/* 0x06c0 */ 201, 3, 90, 8,137,202,106, 5, 88,205,128,133,192,137,198,120,
/* 0x06d0 */ 21,186, 0, 2, 0, 0,137,195,137,249,106, 3, 88,205,128, 61,
/* 0x06e0 */ 0, 2, 0, 0,116, 10,106,127, 91,106, 1, 88,205,128,235,254,
/* 0x06f0 */ 141, 69,240,137,250,106, 0,137,243, 80,137,240,255,117,236,106,
/* 0x0700 */ 0,232,252,251,255,255,139, 77,240,137, 69,228,139, 69,236,186,
/* 0x0710 */ 7, 0, 0, 0,232,200,251,255,255,131,196, 16,106, 6, 88,205,
/* 0x0720 */ 128,235, 11, 65, 15,183,195,131,194, 32, 57,193,124,137,139, 69,
/* 0x0730 */ 228,141,101,244, 91, 94, 95,201,195
/* 0x0080 */ 87, 81, 80,137,230,129,236, 0, 16, 0, 0,137,231,106, 8, 89,
/* 0x0090 */ 243,165, 85,137,229,173,133,192,171,117,250, 87,171,173,133,192,
/* 0x00a0 */ 171,117,250, 87,173,133,192,171,165,117,249, 64,131,239, 8,185,
/* 0x00b0 */ 10, 0, 0, 0,243,171, 72,171,171, 41,125,248, 87, 86,232, 15,
/* 0x00c0 */ 0, 0, 0, 47,112,114,111, 99, 47,115,101,108,102, 47,101,120,
/* 0x00d0 */ 101, 0, 91,186,215, 15, 0, 0,137,249,106, 85, 88,205,128,133,
/* 0x00e0 */ 192,121, 7,137,217,184, 14, 0, 0, 0,141,116, 1,255,145,253,
/* 0x00f0 */ 95, 79,176, 0,170,243,164,184, 32, 32, 32, 61,131,239, 3,137,
/* 0x0100 */ 7,139, 69,252,137, 56,131,231,252, 94,137,241, 41,225,137,200,
/* 0x0110 */ 49,248,131,224, 4, 41,199, 90, 1,250,175,173,193,233, 2, 73,
/* 0x0120 */ 243,165,252,141, 79, 4, 49,192, 41,225,137,231,193,233, 2,243,
/* 0x0130 */ 171,137,252,137,215, 88, 93, 88, 94, 89,129,236, 0, 10, 0, 0,
/* 0x0140 */ 137,226, 81,139, 24,139, 72, 4,131,193, 12, 96, 71,232,169, 4,
/* 0x0150 */ 0, 0, 79,137,198,137,250,137,231,185,137, 2, 0, 0, 49,192,
/* 0x0160 */ 243,171,137,252, 88, 89, 95, 91, 86, 81, 80, 82, 87, 41,237,106,
/* 0x0170 */ 2, 94,106, 1, 90,185, 0, 16, 0, 0, 41,219,104,192, 0, 0,
/* 0x0180 */ 0, 88,205,128, 91,106, 6, 88,205,128, 95, 41,192, 60,175,175,
/* 0x0190 */ 117,252, 91, 89, 80, 80, 80, 80, 80, 80, 80, 80,176, 91,255, 39,
/* 0x01a0 */ 85, 83, 86, 87,139, 92, 36, 20,139, 76, 36, 24,139, 84, 36, 28,
/* 0x01b0 */ 139,116, 36, 32,139,124, 36, 36,139,108, 36, 40,193,237, 12,104,
/* 0x01c0 */ 192, 0, 0, 0, 88,205,128, 95, 94, 91, 93,195, 87, 86,137,206,
/* 0x01d0 */ 83,137,195, 57, 8,139,120, 4,115, 10,106,127, 91,106, 1, 88,
/* 0x01e0 */ 205,128,235,254,133,201,116, 8,138, 7, 71,136, 2, 66,226,248,
/* 0x01f0 */ 1,115, 4, 41, 51, 91, 94, 95,195, 85,137,229, 87, 86,137,198,
/* 0x0200 */ 83,137,211,131,236, 24,139, 69, 8,139,125, 12,137, 69,220,131,
/* 0x0210 */ 58, 0, 15,132,185, 0, 0, 0,141, 85,228,185, 12, 0, 0, 0,
/* 0x0220 */ 137,240,232,165,255,255,255,139, 69,228,139, 77,232,133,192,117,
/* 0x0230 */ 19,129,249, 85, 80, 88, 33,117, 15,131, 62, 0, 15,132,143, 0,
/* 0x0240 */ 0, 0,235, 4,133,201,117, 10,106,127, 91,106, 1, 88,205,128,
/* 0x0250 */ 235,254, 57,193,119,242, 59, 3,119,238, 57,193,115, 86,137, 69,
/* 0x0260 */ 224,141, 69,224,255,117,236, 80,255,115, 4, 81,255,118, 4,255,
/* 0x0270 */ 85,220,131,196, 20,133,192,117,207,139, 85,224, 59, 85,228,117,
/* 0x0280 */ 199,138, 69,237,132,192,116, 34,133,255,116, 30,129,250, 0, 2,
/* 0x0290 */ 0, 0,119, 4, 57, 19,117, 18, 15,182,192, 80, 15,182, 69,238,
/* 0x02a0 */ 80, 82,255,115, 4,255,215,131,196, 16,139, 69,232, 1, 70, 4,
/* 0x02b0 */ 41, 6,235, 10,139, 83, 4,137,240,232, 14,255,255,255,139, 85,
/* 0x02c0 */ 228,139, 3, 1, 83, 4, 41,208,133,192,137, 3,233, 65,255,255,
/* 0x02d0 */ 255,141,101,244, 91, 94, 95,201,195,133,192,116, 13,168, 1,117,
/* 0x02e0 */ 9, 57, 16,116, 7,131,192, 8,235,247, 49,192,133,192,116, 3,
/* 0x02f0 */ 137, 72, 4,195,184, 0,240,255,255,195, 85,137,229, 87, 86, 83,
/* 0x0300 */ 131,236, 88,137, 69,228,139, 77, 16,137, 85,224,139, 69, 8,139,
/* 0x0310 */ 85, 12,137, 77,212,139, 93, 20,137, 69,220,137, 85,216,137, 93,
/* 0x0320 */ 208,232,206,255,255,255,137,195,139, 85,224,137,198,139, 69,224,
/* 0x0330 */ 15,183, 74, 44,247,214, 3, 64, 28,137,117,204,102,131,122, 16,
/* 0x0340 */ 2,137, 77,196,137, 69,200, 15,148,192,139,125,200, 15,182,240,
/* 0x0350 */ 232,159,255,255,255,139, 69,196,193,230, 4,137, 93,188, 49,210,
/* 0x0360 */ 131,203,255, 72,199, 69,184, 0, 0, 0, 0,120, 31,139, 77,196,
/* 0x0370 */ 131, 63, 1,117, 18,139, 71, 8, 57,216,115, 2,137,195, 3, 71,
/* 0x0380 */ 20, 57,194,115, 2,137,194,131,199, 32,226,228,139,125,188, 33,
/* 0x0390 */ 223, 41,250, 43, 85,188,141, 90,255, 35, 93,188,247,198, 16, 0,
/* 0x03a0 */ 0, 0,116, 5,137,125,184,235, 17,133,255,117, 13,139, 85, 24,
/* 0x03b0 */ 133,210,137, 85,184,116, 3,131,206, 16,106, 0,131,206, 34,106,
/* 0x03c0 */ 255, 86,106, 0, 83,255,117,184,232,211,253,255,255,131,196, 24,
/* 0x03d0 */ 141, 20, 3, 41,248,137, 69,192,137, 85,240,199, 69,180, 0, 0,
/* 0x03e0 */ 0, 0,139, 93,224, 15,183, 75, 44, 57, 77,180, 15,141,207, 1,
/* 0x03f0 */ 0, 0,139,117,200,131, 62, 1, 15,133,183, 1, 0, 0,131,125,
/* 0x0400 */ 220, 0,116, 39,131,126, 4, 0,117, 33,139, 69,216,186, 5, 0,
/* 0x0410 */ 0, 0,232,194,254,255,255,139, 69,224,186, 4, 0, 0, 0, 15,
/* 0x0420 */ 183, 72, 42,139, 69,216,232,174,254,255,255,139, 85,200,187, 64,
/* 0x0430 */ 98, 81,115,139, 69,192,139, 74, 24,137,214, 3, 70, 8,131,225,
/* 0x0440 */ 7,139, 82, 16,193,225, 2,211,235,137, 85,232,137,217,137, 69,
/* 0x0450 */ 236,131,225, 7,137, 77,176,139, 78, 20,137,198, 1,193,137, 77,
/* 0x0460 */ 172,139, 77,204, 33,193, 41,206,131,125,220, 0,141, 60, 10,116,
/* 0x0470 */ 58,106, 0,106,255,106, 50,141, 71, 3,106, 3, 80, 86,232, 29,
/* 0x0480 */ 253,255,255,131,196, 24, 57,198, 15,133,219, 0, 0, 0,128,227,
/* 0x0490 */ 4,139, 69,208,117, 2, 49,192, 80,139, 69,220,255,117,228,141,
/* 0x04a0 */ 85,232,232, 82,253,255,255, 88, 90,235, 35,139, 93,200,139, 67,
/* 0x04b0 */ 4, 41,200, 80,255,117,228,106, 18,255,117,176, 87, 86,232,221,
/* 0x04c0 */ 252,255,255,131,196, 24, 57,198, 15,133,155, 0, 0, 0,137,248,
/* 0x04d0 */ 139, 85,204,247,216, 33,208,246, 69,176, 2,137, 69,168,116, 18,
/* 0x04e0 */ 131,125,168, 0,141, 4, 62,116, 9,139, 77,168,198, 0, 0, 64,
/* 0x04f0 */ 226,250,131,125,220, 0,116,123,139, 77,200,131, 57, 1,117, 89,
/* 0x0500 */ 246, 65, 24, 1,116, 83,139, 81, 20,139, 89, 8,139, 69,200,141,
/* 0x0510 */ 12, 26, 3, 77,192, 59, 80, 16,117, 14,137,200,247,216, 37,255,
/* 0x0520 */ 15, 0, 0,131,248, 3,119, 17,139, 85,200,107, 69,192, 52,131,
/* 0x0530 */ 122, 4, 0,141, 76, 3, 12,117, 32,139, 1, 61,205,128, 97,195,
/* 0x0540 */ 116, 6,199, 1,205,128, 97,195,133,201,116, 13,139, 69,216, 49,
/* 0x0550 */ 210,131,224,254,232,128,253,255,255,137,243,137,249,139, 85,176,
/* 0x0560 */ 106,125, 88,205,128,133,192,116, 10,106,127, 91,106, 1, 88,205,
/* 0x0570 */ 128,235,254,139, 85,168,141, 4, 23,141, 28, 6, 59, 93,172,115,
/* 0x0580 */ 30,106, 0,106,255,106, 50,255,117,176, 41, 93,172,255,117,172,
/* 0x0590 */ 83,232, 10,252,255,255,131,196, 24, 57,195,116, 24,235,254,131,
/* 0x05a0 */ 125,220, 0,116, 16,141, 79, 3, 35, 77,204,131,249, 3,119, 5,
/* 0x05b0 */ 106, 91, 88,205,128,131, 69,200, 32,255, 69,180,233, 33,254,255,
/* 0x05c0 */ 255,131,125,220, 0,116, 18,139,117,224,102,131,126, 16, 3,116,
/* 0x05d0 */ 8,139, 93,240,106, 45, 88,205,128,131,125,212, 0,116, 8,139,
/* 0x05e0 */ 85,192,139, 69,212,137, 16,139, 77,224,139, 73, 24, 1, 77,192,
/* 0x05f0 */ 139, 69,192,141,101,244, 91, 94, 95,201,195, 85,137,229, 87, 86,
/* 0x0600 */ 83,131,236, 32,199, 69,232, 0, 0, 0, 0,139, 69, 8,139,117,
/* 0x0610 */ 16,137, 69,236,128, 62,235,117, 6,141, 86, 2,137, 85,232,106,
/* 0x0620 */ 0,139,125, 28,141, 85, 24,139, 93, 32,141, 69, 32, 86,232,198,
/* 0x0630 */ 251,255,255,139, 69, 12, 41, 93, 36,137,250,137, 69, 32,139, 69,
/* 0x0640 */ 40,141, 93,240,255,117, 40,255,117,232, 83,255,117,236,137, 69,
/* 0x0650 */ 240,141, 69, 32,141, 79, 52, 80,137,240,137, 77,228,232,152,252,
/* 0x0660 */ 255,255,137,193,137, 69,224,139, 69,236,186, 9, 0, 0, 0,232,
/* 0x0670 */ 101,252,255,255,102,139, 79, 44,131,196, 28, 49,210,102,133,201,
/* 0x0680 */ 116,125,139, 69,228,131, 56, 3,117,105,139, 93,240, 49,201, 3,
/* 0x0690 */ 88, 8,137,202,106, 5, 88,205,128,133,192,137,198,120, 21,186,
/* 0x06a0 */ 0, 2, 0, 0,137,195,137,249,106, 3, 88,205,128, 61, 0, 2,
/* 0x06b0 */ 0, 0,116, 10,106,127, 91,106, 1, 88,205,128,235,254,106, 0,
/* 0x06c0 */ 137,250,141, 69,240,137,243,106, 0, 80,137,240,255,117,236,106,
/* 0x06d0 */ 0,232, 36,252,255,255,139, 77,240,137, 69,224,139, 69,236,186,
/* 0x06e0 */ 7, 0, 0, 0,232,240,251,255,255,131,196, 20,106, 6, 88,205,
/* 0x06f0 */ 128,235, 12, 66, 15,183,193,131, 69,228, 32, 57,194,124,131,139,
/* 0x0700 */ 69,224,141,101,244, 91, 94, 95,201,195
};

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/* mips.r3000-linux.elf-fold.h
created from mips.r3000-linux.elf-fold.bin, 2552 (0x9f8) bytes
created from mips.r3000-linux.elf-fold.bin, 2576 (0xa10) bytes
This file is part of the UPX executable compressor.
@ -31,169 +31,170 @@
*/
#define STUB_MIPS_R3000_LINUX_ELF_FOLD_SIZE 2552
#define STUB_MIPS_R3000_LINUX_ELF_FOLD_ADLER32 0xfb682e54
#define STUB_MIPS_R3000_LINUX_ELF_FOLD_CRC32 0xaac9c55c
#define STUB_MIPS_R3000_LINUX_ELF_FOLD_SIZE 2576
#define STUB_MIPS_R3000_LINUX_ELF_FOLD_ADLER32 0x420e2b36
#define STUB_MIPS_R3000_LINUX_ELF_FOLD_CRC32 0x03b20116
unsigned char stub_mips_r3000_linux_elf_fold[2552] = {
unsigned char stub_mips_r3000_linux_elf_fold[2576] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 0, 2, 0, 8, 0, 0, 0, 1, 0, 16, 0,128, 0, 0, 0, 52,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 48, 1, 0, 52, 0, 32, 0, 2, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 16, 0, 0,
/* 0x0040 */ 0, 16, 0, 0, 0, 0, 9,248, 0, 0, 10, 0, 0, 0, 0, 5,
/* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 9,248, 0, 0, 0, 0,
/* 0x0040 */ 0, 16, 0, 0, 0, 0, 10, 16, 0, 0, 10, 16, 0, 0, 0, 5,
/* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 10, 16, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 39,162, 0, 32, 39,189,240, 24, 3,160, 24, 33,140, 65, 0, 0,
/* 0x0090 */ 36, 66, 0, 4,172, 97, 0, 0, 36, 99, 0, 4, 20, 32,255,251,
/* 0x00a0 */ 0, 96,128, 33, 36, 99, 0, 4,140, 65, 0, 0, 36, 66, 0, 4,
/* 0x00b0 */ 172, 97, 0, 0, 36, 99, 0, 4, 20, 32,255,251, 0, 96,160, 33,
/* 0x00c0 */ 140, 65, 0, 0,140, 72, 0, 4, 36, 66, 0, 8,172, 97, 0, 0,
/* 0x00d0 */ 172,104, 0, 4, 36, 99, 0, 8, 36, 33,255,250, 20, 32, 0, 2,
/* 0x00e0 */ 36, 33, 0, 6, 0, 8,240, 35, 20, 32,255,245, 0, 96,176, 33,
/* 0x00f0 */ 174, 3, 0, 0, 36, 1, 0, 32,160, 97, 0, 0,160, 97, 0, 1,
/* 0x0100 */ 160, 97, 0, 2, 36, 1, 0, 61,160, 97, 0, 3, 36, 6, 15,255,
/* 0x0110 */ 36,101, 0, 4, 4, 17, 0, 5, 3,224, 32, 33, 47,112,114,111,
/* 0x0120 */ 99, 47,115,101,108,102, 47,101,120,101, 0, 0, 36, 2, 15,245,
/* 0x0130 */ 0, 0, 0, 12, 4,224, 0, 2, 0,162, 8, 33,160, 32, 0, 0,
/* 0x0140 */ 39,189,254, 0, 3,192, 80, 33, 0, 0, 72, 33, 2,224, 64, 33,
/* 0x0150 */ 2,128, 56, 33, 3,160, 48, 33, 2,160, 40, 33, 4, 16, 0, 1,
/* 0x0160 */ 36, 2, 1,100, 3,226, 16, 35, 36, 66, 8,112, 0, 64,248, 9,
/* 0x0170 */ 2, 32, 32, 33, 0, 64,200, 33, 39,161, 2, 0, 39,189,254,212,
/* 0x0180 */ 39,189, 0, 4, 23,161,255,254,175,160,255,252,142,193,255,252,
/* 0x0190 */ 2, 64, 40, 33, 16, 32, 0, 3, 2, 96, 32, 33, 0, 32, 0, 8,
/* 0x01a0 */ 36, 2, 15,251, 3, 32, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x01b0 */ 36, 2, 15,250, 39,189,255,224,175,168, 0, 16,175,169, 0, 20,
/* 0x01c0 */ 0, 0, 0, 12, 16, 0, 0, 2, 39,189, 0, 32, 0, 0, 0, 12,
/* 0x01d0 */ 20,224, 0, 3, 0, 0, 0, 0, 3,224, 0, 8, 0, 0, 0, 0,
/* 0x01e0 */ 3,224, 0, 8, 36, 2,255,255, 3,224, 0, 8, 0, 0, 0, 0,
/* 0x01f0 */ 140,130, 0, 0,140,135, 0, 4, 0, 70, 16, 43, 20, 64, 0, 3,
/* 0x0200 */ 36, 2, 15,161, 16, 0, 0, 10, 0,192, 24, 33, 36, 4, 0,127,
/* 0x0210 */ 4, 17,255,238, 0, 0, 0, 0, 16, 0,255,255, 0, 0, 0, 0,
/* 0x0220 */ 144,226, 0, 0, 36,231, 0, 1,160,162, 0, 0, 36,165, 0, 1,
/* 0x0230 */ 36, 99,255,255, 36, 2,255,255, 20, 98,255,249, 0, 0, 0, 0,
/* 0x0240 */ 140,131, 0, 4,140,130, 0, 0, 0,102, 24, 33, 0, 70, 16, 35,
/* 0x0250 */ 172,130, 0, 0, 3,224, 0, 8,172,131, 0, 4, 39,189,255,216,
/* 0x0260 */ 175,179, 0, 28,175,178, 0, 24,175,177, 0, 20,175,176, 0, 16,
/* 0x0270 */ 0,128,136, 33, 0,160,128, 33, 0,192,152, 33, 0,224,144, 33,
/* 0x0280 */ 16, 0, 0, 82,175,191, 0, 32, 2, 32, 32, 33, 4, 17,255,216,
/* 0x0290 */ 39,165, 0, 4,143,163, 0, 4,143,166, 0, 8, 20, 96, 0, 10,
/* 0x02a0 */ 60, 2, 33, 88, 52, 66, 80, 85, 20,194, 0, 10, 36, 4, 0,127,
/* 0x02b0 */ 142, 34, 0, 0, 0, 0, 0, 0, 20, 64, 0, 7, 36, 2, 15,161,
/* 0x02c0 */ 16, 0, 0, 70, 0, 0, 0, 0, 20,192, 0, 7, 0,102, 16, 43,
/* 0x02d0 */ 36, 4, 0,127, 36, 2, 15,161, 4, 17,255,188, 0, 0, 0, 0,
/* 0x02e0 */ 16, 0,255,255, 0, 0, 0, 0, 20, 64,255,250, 36, 4, 0,127,
/* 0x02f0 */ 142, 2, 0, 0, 0, 0, 0, 0, 0, 67, 16, 43, 20, 64,255,245,
/* 0x0300 */ 0,195, 16, 43,142, 7, 0, 4, 16, 64, 0, 39, 0,224, 40, 33,
/* 0x0310 */ 142, 36, 0, 4,147,168, 0, 12, 0,192, 40, 33,175,163, 0, 0,
/* 0x0320 */ 0,224, 48, 33, 2, 96,248, 9, 3,160, 56, 33, 20, 64,255,233,
/* 0x0330 */ 36, 4, 0,127,143,165, 0, 0,143,162, 0, 4, 0, 0, 0, 0,
/* 0x0340 */ 20,162,255,228, 0, 0, 0, 0,147,167, 0, 13, 0, 0, 0, 0,
/* 0x0350 */ 16,224, 0, 13, 0, 0, 0, 0, 18, 64, 0, 11, 44,162, 2, 1,
/* 0x0360 */ 16, 64, 0, 5, 0, 0, 0, 0,142, 2, 0, 0, 0, 0, 0, 0,
/* 0x0370 */ 20, 69, 0, 5, 0, 0, 0, 0,142, 4, 0, 4,147,166, 0, 14,
/* 0x0380 */ 2, 64,248, 9, 0, 0, 0, 0,143,162, 0, 8,142, 35, 0, 4,
/* 0x0390 */ 142, 36, 0, 0, 0, 98, 24, 33, 0,130, 32, 35,174, 35, 0, 4,
/* 0x03a0 */ 16, 0, 0, 3,174, 36, 0, 0, 4, 17,255,145, 2, 32, 32, 33,
/* 0x03b0 */ 143,162, 0, 4,142, 3, 0, 4,142, 4, 0, 0, 0, 98, 24, 33,
/* 0x03c0 */ 0,130, 32, 35,174, 3, 0, 4,174, 4, 0, 0,142, 2, 0, 0,
/* 0x03d0 */ 0, 0, 0, 0, 20, 64,255,172, 36, 6, 0, 12,143,191, 0, 32,
/* 0x03e0 */ 143,179, 0, 28,143,178, 0, 24,143,177, 0, 20,143,176, 0, 16,
/* 0x03f0 */ 3,224, 0, 8, 39,189, 0, 40, 16,128, 0, 8, 0, 0, 0, 0,
/* 0x0400 */ 140,130, 0, 0, 0, 0, 0, 0, 16, 69, 0, 3, 0, 0, 0, 0,
/* 0x0410 */ 16, 0,255,251, 36,132, 0, 8,172,134, 0, 4, 3,224, 0, 8,
/* 0x0420 */ 0, 0, 0, 0, 3,224, 0, 8, 36, 2,240, 0, 0, 2, 18, 64,
/* 0x0430 */ 3,224, 0, 8, 0, 0, 16, 33, 39,189,255,168,175,190, 0, 80,
/* 0x0440 */ 175,180, 0, 64,175,177, 0, 52,175,191, 0, 84,175,183, 0, 76,
/* 0x0450 */ 175,182, 0, 72,175,181, 0, 68,175,179, 0, 60,175,178, 0, 56,
/* 0x0460 */ 175,176, 0, 48,148,162, 0, 16,140,163, 0, 28, 0,160,160, 33,
/* 0x0470 */ 56, 66, 0, 2,148,165, 0, 44, 44, 66, 0, 1, 2,131,136, 33,
/* 0x0480 */ 175,164, 0, 28, 0,192,240, 33,175,167, 0, 32,175,168, 0, 36,
/* 0x0490 */ 175,169, 0, 40, 0, 2, 57, 0, 36,165,255,255, 0, 10, 16, 39,
/* 0x04a0 */ 2, 32, 48, 33, 36, 4,255,255, 0, 0, 64, 33, 36, 9, 0, 1,
/* 0x04b0 */ 16, 0, 0, 19,175,162, 0, 20,140,194, 0, 0, 0, 0, 0, 0,
/* 0x04c0 */ 20, 73, 0, 14, 36,165,255,255,140,195, 0, 8, 0, 0, 0, 0,
/* 0x04d0 */ 0,100, 16, 43, 16, 64, 0, 2, 0, 0, 0, 0, 0, 96, 32, 33,
/* 0x04e0 */ 140,194, 0, 20, 0, 0, 0, 0, 0, 98, 24, 33, 1, 3, 16, 43,
/* 0x04f0 */ 16, 64, 0, 2, 0, 0, 0, 0, 0, 96, 64, 33, 36,198, 0, 32,
/* 0x0500 */ 4,161,255,237, 1, 68,128, 36, 1, 16, 16, 35, 0, 74, 16, 35,
/* 0x0510 */ 36, 66,255,255, 1, 66, 80, 36, 16,224, 0, 3,175,170, 0, 8,
/* 0x0520 */ 16, 0, 0, 9,175,176, 0, 12,143,165, 0, 8, 52,231, 8, 2,
/* 0x0530 */ 2, 0, 32, 33, 0, 0, 48, 33, 36, 8,255,255, 4, 17,255, 28,
/* 0x0540 */ 0, 0, 72, 33,175,162, 0, 12,143,163, 0, 12,175,160, 0, 16,
/* 0x0550 */ 16, 0, 0,162, 0,112,184, 35, 19,192, 0, 12, 36, 2, 0, 6,
/* 0x0560 */ 142, 35, 0, 0, 0, 0, 0, 0, 20, 98, 0, 10, 36, 2, 0, 1,
/* 0x0570 */ 142, 38, 0, 8,143,164, 0, 32, 2,230, 48, 33, 4, 17,255,158,
/* 0x0580 */ 36, 5, 0, 3, 16, 0, 0,145, 0, 0, 0, 0,142, 35, 0, 0,
/* 0x0590 */ 36, 2, 0, 1, 20, 98, 0,141, 0, 0, 0, 0, 19,192, 0, 19,
/* 0x05a0 */ 0, 0, 0, 0,142, 34, 0, 4, 0, 0, 0, 0, 20, 64, 0, 15,
/* 0x05b0 */ 36, 5, 0, 3,142,130, 0, 28,142, 38, 0, 8,143,164, 0, 32,
/* 0x05c0 */ 0,194, 48, 33, 4, 17,255,140, 2,230, 48, 33,143,164, 0, 32,
/* 0x05d0 */ 150,134, 0, 44, 4, 17,255,136, 36, 5, 0, 5,143,164, 0, 32,
/* 0x05e0 */ 150,134, 0, 42, 4, 17,255,132, 36, 5, 0, 4,142, 34, 0, 8,
/* 0x05f0 */ 142, 35, 0, 24, 2,226,176, 33, 60, 2,115, 81, 0, 3, 24,128,
/* 0x0600 */ 52, 66, 98, 64, 0, 98,144, 6,143,163, 0, 20,142, 36, 0, 16,
/* 0x0610 */ 2,195, 16, 36,175,164, 0, 0, 0,130,152, 33,142, 36, 0, 20,
/* 0x0620 */ 175,182, 0, 4, 50, 85, 0, 7,175,164, 0, 24, 19,192, 0, 22,
/* 0x0630 */ 2,194,128, 35, 2, 0, 32, 33, 2, 96, 40, 33, 36, 6, 0, 3,
/* 0x0640 */ 36, 7, 8, 18, 36, 8,255,255, 4, 17,254,217, 0, 0, 72, 33,
/* 0x0650 */ 22, 2, 0, 74, 50, 66, 0, 4, 16, 64, 0, 4, 0, 0, 0, 0,
/* 0x0660 */ 143,167, 0, 40, 16, 0, 0, 2, 0, 0, 0, 0, 0, 0, 56, 33,
/* 0x0670 */ 143,166, 0, 28, 3,192, 32, 33, 4, 17,254,248, 3,160, 40, 33,
/* 0x0680 */ 16, 0, 0, 11, 0, 0, 0, 0,142, 41, 0, 4,143,168, 0, 28,
/* 0x0690 */ 2, 0, 32, 33, 1, 34, 72, 35, 2, 96, 40, 33, 2,160, 48, 33,
/* 0x06a0 */ 4, 17,254,195, 36, 7, 0, 18, 22, 2, 0, 53, 36, 4, 0,127,
/* 0x06b0 */ 143,164, 0, 20, 0, 19, 16, 35, 50,163, 0, 2, 16, 96, 0, 8,
/* 0x06c0 */ 0, 68,144, 36, 18, 64, 0, 6, 2, 64, 16, 33, 2, 19, 24, 33,
/* 0x06d0 */ 36, 66,255,255,160, 96, 0, 0, 20, 64,255,253, 36, 99, 0, 1,
/* 0x06e0 */ 19,192, 0, 43, 36, 2, 0, 1,142, 35, 0, 0, 0, 0, 0, 0,
/* 0x06f0 */ 20, 98, 0, 28, 2, 0, 32, 33,142, 34, 0, 24, 0, 0, 0, 0,
/* 0x0700 */ 48, 66, 0, 1, 16, 64, 0, 24, 2, 96, 40, 33,142, 36, 0, 20,
/* 0x0710 */ 142, 34, 0, 16,142, 35, 0, 8, 20,130, 0, 17, 0,131, 16, 33,
/* 0x0720 */ 0, 87, 48, 33,143,163, 0, 20, 0, 6, 16, 35, 0, 98, 16, 36,
/* 0x0730 */ 44, 66, 0, 12, 20, 64, 0, 12, 2, 0, 32, 33, 36, 2, 0, 12,
/* 0x0740 */ 172,194, 0, 0, 60, 2, 3, 32, 52, 66, 0, 8,143,164, 0, 32,
/* 0x0750 */ 172,194, 0, 4,172,192, 0, 8, 4, 17,255, 39, 0, 0, 40, 33,
/* 0x0760 */ 2, 0, 32, 33, 2, 96, 40, 33, 2,160, 48, 33, 4, 17,254,151,
/* 0x0770 */ 36, 2, 16, 29, 16, 64, 0, 6, 0, 0, 0, 0, 36, 4, 0,127,
/* 0x0780 */ 4, 17,254,146, 36, 2, 15,161, 16, 0,255,255, 0, 0, 0, 0,
/* 0x0790 */ 143,164, 0, 24, 2,114, 16, 33, 2,196, 40, 33, 2, 2,128, 33,
/* 0x07a0 */ 2, 5, 16, 43, 16, 64, 0, 9, 0,176, 40, 35, 2,160, 48, 33,
/* 0x07b0 */ 2, 0, 32, 33, 36, 7, 8, 18, 36, 8,255,255, 4, 17,254,124,
/* 0x07c0 */ 0, 0, 72, 33, 22, 2,255,238, 36, 4, 0,127,143,162, 0, 16,
/* 0x07d0 */ 38, 49, 0, 32, 36, 66, 0, 1,175,162, 0, 16,150,130, 0, 44,
/* 0x07e0 */ 143,163, 0, 16, 0, 0, 0, 0, 0, 98, 16, 42, 20, 64,255, 90,
/* 0x07f0 */ 0, 0, 0, 0, 19,192, 0, 11, 36, 2, 0, 3,150,131, 0, 16,
/* 0x0800 */ 0, 0, 0, 0, 16, 98, 0, 7, 0, 0, 0, 0,143,162, 0, 12,
/* 0x0810 */ 143,163, 0, 8, 0, 0, 0, 0, 0, 67, 32, 33, 4, 17,254,107,
/* 0x0080 */ 36, 2, 0, 0, 3,224, 0, 8, 0, 2, 18, 64, 0, 0, 0, 0,
/* 0x0090 */ 143,178, 0, 24,143,179, 0, 28, 3,160, 16, 33, 39,189,240, 16,
/* 0x00a0 */ 3,160, 24, 33,140, 65, 0, 0, 36, 66, 0, 4,172, 97, 0, 0,
/* 0x00b0 */ 36, 99, 0, 4, 20, 86,255,251, 36,105,255,252,172, 96, 0, 0,
/* 0x00c0 */ 36, 99, 0, 4, 0, 96,176, 33,140, 65, 0, 0,140, 72, 0, 4,
/* 0x00d0 */ 36, 66, 0, 8,172, 97, 0, 0,172,104, 0, 4, 36, 99, 0, 8,
/* 0x00e0 */ 20, 32,255,249, 0, 96,160, 33,173, 35, 0, 0, 36, 1, 0, 32,
/* 0x00f0 */ 160, 97, 0, 0,160, 97, 0, 1,160, 97, 0, 2, 36, 1, 0, 61,
/* 0x0100 */ 160, 97, 0, 3, 36, 6, 15,255, 36,101, 0, 4, 4, 17, 0, 5,
/* 0x0110 */ 3,224, 32, 33, 47,112,114,111, 99, 47,115,101,108,102, 47,101,
/* 0x0120 */ 120,101, 0, 0, 36, 2, 15,245, 0, 0, 0, 12, 4,224, 0, 2,
/* 0x0130 */ 0,162, 8, 33,160, 32, 0, 0, 39,189,254, 0, 3,128, 88, 33,
/* 0x0140 */ 2,160, 80, 33, 0, 0, 72, 33, 3,192, 64, 33, 2,192, 56, 33,
/* 0x0150 */ 3,160, 48, 33, 2, 32, 40, 33, 4, 16, 0, 1, 36, 2, 1, 96,
/* 0x0160 */ 3,226, 16, 35, 36, 66, 8,112, 0, 64,248, 9, 2, 0, 32, 33,
/* 0x0170 */ 39,189, 2, 0, 0, 64,240, 33,143,168, 0, 20, 0, 0, 72, 33,
/* 0x0180 */ 175,168, 0, 16,175,169, 0, 20, 36, 7, 0, 2, 36, 6, 0, 1,
/* 0x0190 */ 0, 28, 40, 34, 0, 0, 32, 33, 36, 2, 15,250, 0, 0, 0, 12,
/* 0x01a0 */ 143,164, 0, 16, 36, 2, 15,166, 0, 0, 0, 12, 39,189, 0, 32,
/* 0x01b0 */ 3,160, 8, 33, 39,189,254,212, 39,189, 0, 4, 23,161,255,254,
/* 0x01c0 */ 175,160,255,252,142,129,255,252, 2, 96, 40, 33, 16, 32, 0, 3,
/* 0x01d0 */ 2, 64, 32, 33, 0, 32, 0, 8, 36, 2, 15,251, 3,192, 0, 8,
/* 0x01e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x01f0 */ 36, 2, 15,250, 39,189,255,224,175,168, 0, 16,175,169, 0, 20,
/* 0x0200 */ 0, 0, 0, 12, 16, 0, 0, 2, 39,189, 0, 32, 0, 0, 0, 12,
/* 0x0210 */ 20,224, 0, 3, 0, 0, 0, 0, 3,224, 0, 8, 0, 0, 0, 0,
/* 0x0220 */ 3,224, 0, 8, 36, 2,255,255, 3,224, 0, 8, 0, 0, 0, 0,
/* 0x0230 */ 140,130, 0, 0,140,135, 0, 4, 0, 70, 16, 43, 20, 64, 0, 3,
/* 0x0240 */ 36, 2, 15,161, 16, 0, 0, 10, 0,192, 24, 33, 36, 4, 0,127,
/* 0x0250 */ 4, 17,255,238, 0, 0, 0, 0, 16, 0,255,255, 0, 0, 0, 0,
/* 0x0260 */ 144,226, 0, 0, 36,231, 0, 1,160,162, 0, 0, 36,165, 0, 1,
/* 0x0270 */ 36, 99,255,255, 36, 2,255,255, 20, 98,255,249, 0, 0, 0, 0,
/* 0x0280 */ 140,131, 0, 4,140,130, 0, 0, 0,102, 24, 33, 0, 70, 16, 35,
/* 0x0290 */ 172,130, 0, 0, 3,224, 0, 8,172,131, 0, 4, 39,189,255,216,
/* 0x02a0 */ 175,179, 0, 28,175,178, 0, 24,175,177, 0, 20,175,176, 0, 16,
/* 0x02b0 */ 0,128,136, 33, 0,160,128, 33, 0,192,152, 33, 0,224,144, 33,
/* 0x02c0 */ 16, 0, 0, 82,175,191, 0, 32, 2, 32, 32, 33, 4, 17,255,216,
/* 0x02d0 */ 39,165, 0, 4,143,163, 0, 4,143,166, 0, 8, 20, 96, 0, 10,
/* 0x02e0 */ 60, 2, 33, 88, 52, 66, 80, 85, 20,194, 0, 10, 36, 4, 0,127,
/* 0x02f0 */ 142, 34, 0, 0, 0, 0, 0, 0, 20, 64, 0, 7, 36, 2, 15,161,
/* 0x0300 */ 16, 0, 0, 70, 0, 0, 0, 0, 20,192, 0, 7, 0,102, 16, 43,
/* 0x0310 */ 36, 4, 0,127, 36, 2, 15,161, 4, 17,255,188, 0, 0, 0, 0,
/* 0x0320 */ 16, 0,255,255, 0, 0, 0, 0, 20, 64,255,250, 36, 4, 0,127,
/* 0x0330 */ 142, 2, 0, 0, 0, 0, 0, 0, 0, 67, 16, 43, 20, 64,255,245,
/* 0x0340 */ 0,195, 16, 43,142, 7, 0, 4, 16, 64, 0, 39, 0,224, 40, 33,
/* 0x0350 */ 142, 36, 0, 4,147,168, 0, 12, 0,192, 40, 33,175,163, 0, 0,
/* 0x0360 */ 0,224, 48, 33, 2, 96,248, 9, 3,160, 56, 33, 20, 64,255,233,
/* 0x0370 */ 36, 4, 0,127,143,165, 0, 0,143,162, 0, 4, 0, 0, 0, 0,
/* 0x0380 */ 20,162,255,228, 0, 0, 0, 0,147,167, 0, 13, 0, 0, 0, 0,
/* 0x0390 */ 16,224, 0, 13, 0, 0, 0, 0, 18, 64, 0, 11, 44,162, 2, 1,
/* 0x03a0 */ 16, 64, 0, 5, 0, 0, 0, 0,142, 2, 0, 0, 0, 0, 0, 0,
/* 0x03b0 */ 20, 69, 0, 5, 0, 0, 0, 0,142, 4, 0, 4,147,166, 0, 14,
/* 0x03c0 */ 2, 64,248, 9, 0, 0, 0, 0,143,162, 0, 8,142, 35, 0, 4,
/* 0x03d0 */ 142, 36, 0, 0, 0, 98, 24, 33, 0,130, 32, 35,174, 35, 0, 4,
/* 0x03e0 */ 16, 0, 0, 3,174, 36, 0, 0, 4, 17,255,145, 2, 32, 32, 33,
/* 0x03f0 */ 143,162, 0, 4,142, 3, 0, 4,142, 4, 0, 0, 0, 98, 24, 33,
/* 0x0400 */ 0,130, 32, 35,174, 3, 0, 4,174, 4, 0, 0,142, 2, 0, 0,
/* 0x0410 */ 0, 0, 0, 0, 20, 64,255,172, 36, 6, 0, 12,143,191, 0, 32,
/* 0x0420 */ 143,179, 0, 28,143,178, 0, 24,143,177, 0, 20,143,176, 0, 16,
/* 0x0430 */ 3,224, 0, 8, 39,189, 0, 40, 16,128, 0, 8, 0, 0, 0, 0,
/* 0x0440 */ 140,130, 0, 0, 0, 0, 0, 0, 16, 69, 0, 3, 0, 0, 0, 0,
/* 0x0450 */ 16, 0,255,251, 36,132, 0, 8,172,134, 0, 4, 3,224, 0, 8,
/* 0x0460 */ 0, 0, 0, 0, 39,189,255,168,175,190, 0, 80,175,180, 0, 64,
/* 0x0470 */ 175,177, 0, 52,175,191, 0, 84,175,183, 0, 76,175,182, 0, 72,
/* 0x0480 */ 175,181, 0, 68,175,179, 0, 60,175,178, 0, 56,175,176, 0, 48,
/* 0x0490 */ 148,162, 0, 16,140,163, 0, 28, 0,160,160, 33, 56, 66, 0, 2,
/* 0x04a0 */ 148,165, 0, 44, 44, 66, 0, 1, 2,131,136, 33,175,164, 0, 28,
/* 0x04b0 */ 0,192,240, 33,175,167, 0, 32,175,168, 0, 36,175,169, 0, 40,
/* 0x04c0 */ 1, 64, 32, 33, 0, 2, 57, 0, 36,165,255,255, 0, 11, 16, 39,
/* 0x04d0 */ 2, 32, 48, 33, 36, 8,255,255, 0, 0, 72, 33, 36, 10, 0, 1,
/* 0x04e0 */ 16, 0, 0, 19,175,162, 0, 20,140,194, 0, 0, 0, 0, 0, 0,
/* 0x04f0 */ 20, 74, 0, 14, 36,165,255,255,140,195, 0, 8, 0, 0, 0, 0,
/* 0x0500 */ 0,104, 16, 43, 16, 64, 0, 2, 0, 0, 0, 0, 0, 96, 64, 33,
/* 0x0510 */ 140,194, 0, 20, 0, 0, 0, 0, 0, 98, 24, 33, 1, 35, 16, 43,
/* 0x0520 */ 16, 64, 0, 2, 0, 0, 0, 0, 0, 96, 72, 33, 36,198, 0, 32,
/* 0x0530 */ 4,161,255,237, 1,104,128, 36, 1, 48, 16, 35, 0, 75, 16, 35,
/* 0x0540 */ 36, 66,255,255, 1, 98, 88, 36, 48,227, 0, 16, 16, 96, 0, 3,
/* 0x0550 */ 175,171, 0, 8, 16, 0, 0, 8, 2, 0, 32, 33, 18, 0, 0, 3,
/* 0x0560 */ 0, 0, 0, 0, 16, 0, 0, 4, 0, 0, 32, 33, 16,128, 0, 2,
/* 0x0570 */ 0, 0, 0, 0, 52,231, 0, 16,143,165, 0, 8, 52,231, 8, 2,
/* 0x0580 */ 0, 0, 48, 33, 36, 8,255,255, 4, 17,255, 25, 0, 0, 72, 33,
/* 0x0590 */ 0, 80,184, 35,175,162, 0, 12, 16, 0, 0,144,175,160, 0, 16,
/* 0x05a0 */ 142, 35, 0, 0, 0, 0, 0, 0, 20, 98, 0,136, 0, 0, 0, 0,
/* 0x05b0 */ 19,192, 0, 12, 0, 0, 0, 0,142, 34, 0, 4, 0, 0, 0, 0,
/* 0x05c0 */ 20, 64, 0, 8, 0, 0, 0, 0,143,164, 0, 32, 4, 17,255,154,
/* 0x05d0 */ 36, 5, 0, 5,143,164, 0, 32,150,134, 0, 42, 4, 17,255,150,
/* 0x05e0 */ 36, 5, 0, 4,142, 34, 0, 8,142, 35, 0, 24, 2,226,176, 33,
/* 0x05f0 */ 60, 2,115, 81, 0, 3, 24,128, 52, 66, 98, 64, 0, 98,144, 6,
/* 0x0600 */ 143,163, 0, 20,142, 36, 0, 16, 2,195, 16, 36,175,164, 0, 0,
/* 0x0610 */ 0,130,152, 33,142, 36, 0, 20,175,182, 0, 4, 50, 85, 0, 7,
/* 0x0620 */ 175,164, 0, 24, 19,192, 0, 22, 2,194,128, 35, 2, 0, 32, 33,
/* 0x0630 */ 2, 96, 40, 33, 36, 6, 0, 3, 36, 7, 8, 18, 36, 8,255,255,
/* 0x0640 */ 4, 17,254,235, 0, 0, 72, 33, 22, 2, 0, 74, 50, 66, 0, 4,
/* 0x0650 */ 16, 64, 0, 4, 0, 0, 0, 0,143,167, 0, 40, 16, 0, 0, 2,
/* 0x0660 */ 0, 0, 0, 0, 0, 0, 56, 33,143,166, 0, 28, 3,192, 32, 33,
/* 0x0670 */ 4, 17,255, 10, 3,160, 40, 33, 16, 0, 0, 11, 0, 0, 0, 0,
/* 0x0680 */ 142, 41, 0, 4,143,168, 0, 28, 2, 0, 32, 33, 1, 34, 72, 35,
/* 0x0690 */ 2, 96, 40, 33, 2,160, 48, 33, 4, 17,254,213, 36, 7, 0, 18,
/* 0x06a0 */ 22, 2, 0, 53, 36, 4, 0,127,143,164, 0, 20, 0, 19, 16, 35,
/* 0x06b0 */ 50,163, 0, 2, 16, 96, 0, 8, 0, 68,144, 36, 18, 64, 0, 6,
/* 0x06c0 */ 2, 64, 16, 33, 2, 19, 24, 33, 36, 66,255,255,160, 96, 0, 0,
/* 0x06d0 */ 20, 64,255,253, 36, 99, 0, 1, 19,192, 0, 43, 36, 2, 0, 1,
/* 0x06e0 */ 142, 35, 0, 0, 0, 0, 0, 0, 20, 98, 0, 28, 2, 0, 32, 33,
/* 0x06f0 */ 142, 34, 0, 24, 0, 0, 0, 0, 48, 66, 0, 1, 16, 64, 0, 24,
/* 0x0700 */ 2, 96, 40, 33,142, 36, 0, 20,142, 34, 0, 16,142, 35, 0, 8,
/* 0x0710 */ 20,130, 0, 17, 0,131, 16, 33, 0, 87, 48, 33,143,163, 0, 20,
/* 0x0720 */ 0, 6, 16, 35, 0, 98, 16, 36, 44, 66, 0, 12, 20, 64, 0, 12,
/* 0x0730 */ 2, 0, 32, 33, 36, 2, 0, 12,172,194, 0, 0, 60, 2, 3,192,
/* 0x0740 */ 52, 66, 0, 8,143,164, 0, 32,172,194, 0, 4,172,192, 0, 8,
/* 0x0750 */ 4, 17,255, 57, 0, 0, 40, 33, 2, 0, 32, 33, 2, 96, 40, 33,
/* 0x0760 */ 2,160, 48, 33, 4, 17,254,169, 36, 2, 16, 29, 16, 64, 0, 6,
/* 0x0770 */ 0, 0, 0, 0, 36, 4, 0,127, 4, 17,254,164, 36, 2, 15,161,
/* 0x0780 */ 16, 0,255,255, 0, 0, 0, 0,143,164, 0, 24, 2,114, 16, 33,
/* 0x0790 */ 2,196, 40, 33, 2, 2,128, 33, 2, 5, 16, 43, 16, 64, 0, 11,
/* 0x07a0 */ 0,176, 40, 35, 2,160, 48, 33, 2, 0, 32, 33, 36, 7, 8, 18,
/* 0x07b0 */ 36, 8,255,255, 4, 17,254,142, 0, 0, 72, 33, 18, 2, 0, 3,
/* 0x07c0 */ 0, 0, 0, 0, 16, 0,255,255, 0, 0, 0, 0,143,162, 0, 16,
/* 0x07d0 */ 38, 49, 0, 32, 36, 66, 0, 1,175,162, 0, 16,150,134, 0, 44,
/* 0x07e0 */ 143,163, 0, 16, 0, 0, 0, 0, 0,102, 16, 42, 20, 64,255,108,
/* 0x07f0 */ 36, 2, 0, 1, 19,192, 0, 11, 36, 2, 0, 3,150,131, 0, 16,
/* 0x0800 */ 0, 0, 0, 0, 16, 98, 0, 7, 0, 0, 0, 0,143,162, 0, 8,
/* 0x0810 */ 143,163, 0, 12, 0, 0, 0, 0, 0, 67, 32, 33, 4, 17,254,123,
/* 0x0820 */ 36, 2, 15,205,143,164, 0, 36, 0, 0, 0, 0, 16,128, 0, 2,
/* 0x0830 */ 0, 0, 0, 0,172,151, 0, 0,142,130, 0, 24,143,191, 0, 84,
/* 0x0840 */ 2,226, 16, 33,143,190, 0, 80,143,183, 0, 76,143,182, 0, 72,
/* 0x0850 */ 143,181, 0, 68,143,180, 0, 64,143,179, 0, 60,143,178, 0, 56,
/* 0x0860 */ 143,177, 0, 52,143,176, 0, 48, 3,224, 0, 8, 39,189, 0, 88,
/* 0x0870 */ 39,189,255,200,175,191, 0, 52,175,180, 0, 48,175,179, 0, 44,
/* 0x0880 */ 175,178, 0, 40,175,177, 0, 36,175,176, 0, 32, 1, 0,128, 33,
/* 0x0890 */ 140,136, 0, 0, 0,160, 24, 33, 0,128, 16, 33, 0,192,144, 33,
/* 0x08a0 */ 0,224,152, 33, 1, 32,136, 33, 1, 64,160, 33, 39,164, 0, 20,
/* 0x08b0 */ 39,165, 0, 4, 2, 0, 48, 33, 0, 0, 56, 33,175,163, 0, 20,
/* 0x08c0 */ 175,163, 0, 12,175,168, 0, 4,175,162, 0, 24,175,162, 0, 16,
/* 0x08d0 */ 4, 17,254, 98,175,178, 0, 8, 2, 32, 72, 33, 2, 0, 32, 33,
/* 0x08e0 */ 2, 64, 40, 33, 39,166, 0, 12, 2, 96, 56, 33, 3,160, 64, 33,
/* 0x08f0 */ 2,128, 80, 33, 4, 17,254,208,175,160, 0, 0, 0, 64, 48, 33,
/* 0x0900 */ 2, 96, 32, 33, 36, 5, 0, 9, 4, 17,254,187, 0, 64,136, 33,
/* 0x0910 */ 150, 70, 0, 44, 38, 68, 0, 52, 16, 0, 0, 43, 0, 0, 40, 33,
/* 0x0920 */ 140,131, 0, 0, 36, 2, 0, 3, 20, 98, 0, 39, 36,132, 0, 32,
/* 0x0930 */ 36,132,255,224,140,130, 0, 8,143,164, 0, 0, 0, 0, 40, 33,
/* 0x0940 */ 0, 68, 32, 33, 0, 0, 48, 33, 4, 17,254, 32, 36, 2, 15,165,
/* 0x0950 */ 4, 64, 0, 9, 0, 64,128, 33, 0, 64, 32, 33, 2, 64, 40, 33,
/* 0x0960 */ 36, 6, 2, 0, 4, 17,254, 25, 36, 2, 15,163, 36, 3, 2, 0,
/* 0x0970 */ 16, 67, 0, 6, 2,128, 80, 33, 36, 4, 0,127, 4, 17,254, 19,
/* 0x0980 */ 36, 2, 15,161, 16, 0,255,255, 0, 0, 0, 0, 2, 96, 56, 33,
/* 0x0990 */ 3,160, 64, 33, 0, 0, 72, 33, 4, 17,254,167, 0, 0, 48, 33,
/* 0x09a0 */ 143,166, 0, 0, 2, 96, 32, 33, 36, 5, 0, 7, 4, 17,254,146,
/* 0x09b0 */ 0, 64,136, 33, 2, 0, 32, 33, 4, 17,254, 4, 36, 2, 15,166,
/* 0x09c0 */ 16, 0, 0, 5, 2, 32, 16, 33, 0,166, 16, 42, 20, 64,255,212,
/* 0x09d0 */ 36,165, 0, 1, 2, 32, 16, 33,143,191, 0, 52,143,180, 0, 48,
/* 0x09e0 */ 143,179, 0, 44,143,178, 0, 40,143,177, 0, 36,143,176, 0, 32,
/* 0x09f0 */ 3,224, 0, 8, 39,189, 0, 56
/* 0x0870 */ 39,189,255,192,175,191, 0, 56,175,181, 0, 52,175,180, 0, 48,
/* 0x0880 */ 175,179, 0, 44,175,178, 0, 40,175,177, 0, 36,175,176, 0, 32,
/* 0x0890 */ 140,130, 0, 4, 1, 0,136, 33,140,136, 0, 0, 0,128, 24, 33,
/* 0x08a0 */ 0,192,152, 33, 0,224,160, 33, 1, 64,144, 33, 36, 66, 0, 12,
/* 0x08b0 */ 2, 32, 48, 33,175,165, 0, 12, 1, 32,128, 33, 1, 96,168, 33,
/* 0x08c0 */ 39,164, 0, 20, 39,165, 0, 4, 0, 0, 56, 33,175,163, 0, 16,
/* 0x08d0 */ 175,163, 0, 24,175,168, 0, 4,175,162, 0, 20, 4, 17,254,111,
/* 0x08e0 */ 175,179, 0, 8, 2, 32, 32, 33, 2, 0, 72, 33, 2, 64, 80, 33,
/* 0x08f0 */ 2, 96, 40, 33, 39,166, 0, 12, 2,128, 56, 33, 3,160, 64, 33,
/* 0x0900 */ 2,160, 88, 33, 4, 17,254,215,175,178, 0, 0, 0, 64, 48, 33,
/* 0x0910 */ 2,128, 32, 33, 36, 5, 0, 9, 4, 17,254,199, 0, 64,136, 33,
/* 0x0920 */ 150,102, 0, 44, 38,100, 0, 52, 16, 0, 0, 44, 0, 0, 40, 33,
/* 0x0930 */ 140,131, 0, 0, 36, 2, 0, 3, 20, 98, 0, 40, 36,132, 0, 32,
/* 0x0940 */ 36,132,255,224,140,130, 0, 8,143,164, 0, 0, 0, 0, 40, 33,
/* 0x0950 */ 0, 68, 32, 33, 0, 0, 48, 33, 4, 17,254, 44, 36, 2, 15,165,
/* 0x0960 */ 4, 64, 0, 9, 0, 64,128, 33, 0, 64, 32, 33, 2, 96, 40, 33,
/* 0x0970 */ 36, 6, 2, 0, 4, 17,254, 37, 36, 2, 15,163, 36, 3, 2, 0,
/* 0x0980 */ 16, 67, 0, 6, 2,160, 88, 33, 36, 4, 0,127, 4, 17,254, 31,
/* 0x0990 */ 36, 2, 15,161, 16, 0,255,255, 0, 0, 0, 0, 2,128, 56, 33,
/* 0x09a0 */ 3,160, 64, 33, 0, 0, 72, 33, 0, 0, 80, 33, 4, 17,254,173,
/* 0x09b0 */ 0, 0, 48, 33,143,166, 0, 0, 2,128, 32, 33, 36, 5, 0, 7,
/* 0x09c0 */ 4, 17,254,157, 0, 64,136, 33, 2, 0, 32, 33, 4, 17,254, 15,
/* 0x09d0 */ 36, 2, 15,166, 16, 0, 0, 5, 2, 32, 16, 33, 0,166, 16, 42,
/* 0x09e0 */ 20, 64,255,211, 36,165, 0, 1, 2, 32, 16, 33,143,191, 0, 56,
/* 0x09f0 */ 143,181, 0, 52,143,180, 0, 48,143,179, 0, 44,143,178, 0, 40,
/* 0x0a00 */ 143,177, 0, 36,143,176, 0, 32, 3,224, 0, 8, 39,189, 0, 64
};

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/* mipsel.r3000-linux.elf-fold.h
created from mipsel.r3000-linux.elf-fold.bin, 2552 (0x9f8) bytes
created from mipsel.r3000-linux.elf-fold.bin, 2576 (0xa10) bytes
This file is part of the UPX executable compressor.
@ -31,169 +31,170 @@
*/
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_SIZE 2552
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_ADLER32 0x61572e53
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_CRC32 0xafda48c2
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_SIZE 2576
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_ADLER32 0x9ec42b35
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_CRC32 0x465926fb
unsigned char stub_mipsel_r3000_linux_elf_fold[2552] = {
unsigned char stub_mipsel_r3000_linux_elf_fold[2576] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 8, 0, 1, 0, 0, 0,128, 0, 16, 0, 52, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 1, 48, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0,
/* 0x0040 */ 0, 0, 16, 0,248, 9, 0, 0, 0, 10, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0,248, 9, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 0, 0, 16, 0, 16, 10, 0, 0, 16, 10, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0, 16, 10, 0, 0, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 32, 0,162, 39, 24,240,189, 39, 33, 24,160, 3, 0, 0, 65,140,
/* 0x0090 */ 4, 0, 66, 36, 0, 0, 97,172, 4, 0, 99, 36,251,255, 32, 20,
/* 0x00a0 */ 33,128, 96, 0, 4, 0, 99, 36, 0, 0, 65,140, 4, 0, 66, 36,
/* 0x00b0 */ 0, 0, 97,172, 4, 0, 99, 36,251,255, 32, 20, 33,160, 96, 0,
/* 0x00c0 */ 0, 0, 65,140, 4, 0, 72,140, 8, 0, 66, 36, 0, 0, 97,172,
/* 0x00d0 */ 4, 0,104,172, 8, 0, 99, 36,250,255, 33, 36, 2, 0, 32, 20,
/* 0x00e0 */ 6, 0, 33, 36, 35,240, 8, 0,245,255, 32, 20, 33,176, 96, 0,
/* 0x00f0 */ 0, 0, 3,174, 32, 0, 1, 36, 0, 0, 97,160, 1, 0, 97,160,
/* 0x0100 */ 2, 0, 97,160, 61, 0, 1, 36, 3, 0, 97,160,255, 15, 6, 36,
/* 0x0110 */ 4, 0,101, 36, 5, 0, 17, 4, 33, 32,224, 3, 47,112,114,111,
/* 0x0120 */ 99, 47,115,101,108,102, 47,101,120,101, 0, 0,245, 15, 2, 36,
/* 0x0130 */ 12, 0, 0, 0, 2, 0,224, 4, 33, 8,162, 0, 0, 0, 32,160,
/* 0x0140 */ 0,254,189, 39, 33, 80,192, 3, 33, 72, 0, 0, 33, 64,224, 2,
/* 0x0150 */ 33, 56,128, 2, 33, 48,160, 3, 33, 40,160, 2, 1, 0, 16, 4,
/* 0x0160 */ 100, 1, 2, 36, 35, 16,226, 3,112, 8, 66, 36, 9,248, 64, 0,
/* 0x0170 */ 33, 32, 32, 2, 33,200, 64, 0, 0, 2,161, 39,212,254,189, 39,
/* 0x0180 */ 4, 0,189, 39,254,255,161, 23,252,255,160,175,252,255,193,142,
/* 0x0190 */ 33, 40, 64, 2, 3, 0, 32, 16, 33, 32, 96, 2, 8, 0, 32, 0,
/* 0x01a0 */ 251, 15, 2, 36, 8, 0, 32, 3, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x01b0 */ 250, 15, 2, 36,224,255,189, 39, 16, 0,168,175, 20, 0,169,175,
/* 0x01c0 */ 12, 0, 0, 0, 2, 0, 0, 16, 32, 0,189, 39, 12, 0, 0, 0,
/* 0x01d0 */ 3, 0,224, 20, 0, 0, 0, 0, 8, 0,224, 3, 0, 0, 0, 0,
/* 0x01e0 */ 8, 0,224, 3,255,255, 2, 36, 8, 0,224, 3, 0, 0, 0, 0,
/* 0x01f0 */ 0, 0,130,140, 4, 0,135,140, 43, 16, 70, 0, 3, 0, 64, 20,
/* 0x0200 */ 161, 15, 2, 36, 10, 0, 0, 16, 33, 24,192, 0,127, 0, 4, 36,
/* 0x0210 */ 238,255, 17, 4, 0, 0, 0, 0,255,255, 0, 16, 0, 0, 0, 0,
/* 0x0220 */ 0, 0,226,144, 1, 0,231, 36, 0, 0,162,160, 1, 0,165, 36,
/* 0x0230 */ 255,255, 99, 36,255,255, 2, 36,249,255, 98, 20, 0, 0, 0, 0,
/* 0x0240 */ 4, 0,131,140, 0, 0,130,140, 33, 24,102, 0, 35, 16, 70, 0,
/* 0x0250 */ 0, 0,130,172, 8, 0,224, 3, 4, 0,131,172,216,255,189, 39,
/* 0x0260 */ 28, 0,179,175, 24, 0,178,175, 20, 0,177,175, 16, 0,176,175,
/* 0x0270 */ 33,136,128, 0, 33,128,160, 0, 33,152,192, 0, 33,144,224, 0,
/* 0x0280 */ 82, 0, 0, 16, 32, 0,191,175, 33, 32, 32, 2,216,255, 17, 4,
/* 0x0290 */ 4, 0,165, 39, 4, 0,163,143, 8, 0,166,143, 10, 0, 96, 20,
/* 0x02a0 */ 88, 33, 2, 60, 85, 80, 66, 52, 10, 0,194, 20,127, 0, 4, 36,
/* 0x02b0 */ 0, 0, 34,142, 0, 0, 0, 0, 7, 0, 64, 20,161, 15, 2, 36,
/* 0x02c0 */ 70, 0, 0, 16, 0, 0, 0, 0, 7, 0,192, 20, 43, 16,102, 0,
/* 0x02d0 */ 127, 0, 4, 36,161, 15, 2, 36,188,255, 17, 4, 0, 0, 0, 0,
/* 0x02e0 */ 255,255, 0, 16, 0, 0, 0, 0,250,255, 64, 20,127, 0, 4, 36,
/* 0x02f0 */ 0, 0, 2,142, 0, 0, 0, 0, 43, 16, 67, 0,245,255, 64, 20,
/* 0x0300 */ 43, 16,195, 0, 4, 0, 7,142, 39, 0, 64, 16, 33, 40,224, 0,
/* 0x0310 */ 4, 0, 36,142, 12, 0,168,147, 33, 40,192, 0, 0, 0,163,175,
/* 0x0320 */ 33, 48,224, 0, 9,248, 96, 2, 33, 56,160, 3,233,255, 64, 20,
/* 0x0330 */ 127, 0, 4, 36, 0, 0,165,143, 4, 0,162,143, 0, 0, 0, 0,
/* 0x0340 */ 228,255,162, 20, 0, 0, 0, 0, 13, 0,167,147, 0, 0, 0, 0,
/* 0x0350 */ 13, 0,224, 16, 0, 0, 0, 0, 11, 0, 64, 18, 1, 2,162, 44,
/* 0x0360 */ 5, 0, 64, 16, 0, 0, 0, 0, 0, 0, 2,142, 0, 0, 0, 0,
/* 0x0370 */ 5, 0, 69, 20, 0, 0, 0, 0, 4, 0, 4,142, 14, 0,166,147,
/* 0x0380 */ 9,248, 64, 2, 0, 0, 0, 0, 8, 0,162,143, 4, 0, 35,142,
/* 0x0390 */ 0, 0, 36,142, 33, 24, 98, 0, 35, 32,130, 0, 4, 0, 35,174,
/* 0x03a0 */ 3, 0, 0, 16, 0, 0, 36,174,145,255, 17, 4, 33, 32, 32, 2,
/* 0x03b0 */ 4, 0,162,143, 4, 0, 3,142, 0, 0, 4,142, 33, 24, 98, 0,
/* 0x03c0 */ 35, 32,130, 0, 4, 0, 3,174, 0, 0, 4,174, 0, 0, 2,142,
/* 0x03d0 */ 0, 0, 0, 0,172,255, 64, 20, 12, 0, 6, 36, 32, 0,191,143,
/* 0x03e0 */ 28, 0,179,143, 24, 0,178,143, 20, 0,177,143, 16, 0,176,143,
/* 0x03f0 */ 8, 0,224, 3, 40, 0,189, 39, 8, 0,128, 16, 0, 0, 0, 0,
/* 0x0400 */ 0, 0,130,140, 0, 0, 0, 0, 3, 0, 69, 16, 0, 0, 0, 0,
/* 0x0410 */ 251,255, 0, 16, 8, 0,132, 36, 4, 0,134,172, 8, 0,224, 3,
/* 0x0420 */ 0, 0, 0, 0, 8, 0,224, 3, 0,240, 2, 36, 64, 18, 2, 0,
/* 0x0430 */ 8, 0,224, 3, 33, 16, 0, 0,168,255,189, 39, 80, 0,190,175,
/* 0x0440 */ 64, 0,180,175, 52, 0,177,175, 84, 0,191,175, 76, 0,183,175,
/* 0x0450 */ 72, 0,182,175, 68, 0,181,175, 60, 0,179,175, 56, 0,178,175,
/* 0x0460 */ 48, 0,176,175, 16, 0,162,148, 28, 0,163,140, 33,160,160, 0,
/* 0x0470 */ 2, 0, 66, 56, 44, 0,165,148, 1, 0, 66, 44, 33,136,131, 2,
/* 0x0480 */ 28, 0,164,175, 33,240,192, 0, 32, 0,167,175, 36, 0,168,175,
/* 0x0490 */ 40, 0,169,175, 0, 57, 2, 0,255,255,165, 36, 39, 16, 10, 0,
/* 0x04a0 */ 33, 48, 32, 2,255,255, 4, 36, 33, 64, 0, 0, 1, 0, 9, 36,
/* 0x04b0 */ 19, 0, 0, 16, 20, 0,162,175, 0, 0,194,140, 0, 0, 0, 0,
/* 0x04c0 */ 14, 0, 73, 20,255,255,165, 36, 8, 0,195,140, 0, 0, 0, 0,
/* 0x04d0 */ 43, 16,100, 0, 2, 0, 64, 16, 0, 0, 0, 0, 33, 32, 96, 0,
/* 0x04e0 */ 20, 0,194,140, 0, 0, 0, 0, 33, 24, 98, 0, 43, 16, 3, 1,
/* 0x04f0 */ 2, 0, 64, 16, 0, 0, 0, 0, 33, 64, 96, 0, 32, 0,198, 36,
/* 0x0500 */ 237,255,161, 4, 36,128, 68, 1, 35, 16, 16, 1, 35, 16, 74, 0,
/* 0x0510 */ 255,255, 66, 36, 36, 80, 66, 1, 3, 0,224, 16, 8, 0,170,175,
/* 0x0520 */ 9, 0, 0, 16, 12, 0,176,175, 8, 0,165,143, 2, 8,231, 52,
/* 0x0530 */ 33, 32, 0, 2, 33, 48, 0, 0,255,255, 8, 36, 28,255, 17, 4,
/* 0x0540 */ 33, 72, 0, 0, 12, 0,162,175, 12, 0,163,143, 16, 0,160,175,
/* 0x0550 */ 162, 0, 0, 16, 35,184,112, 0, 12, 0,192, 19, 6, 0, 2, 36,
/* 0x0560 */ 0, 0, 35,142, 0, 0, 0, 0, 10, 0, 98, 20, 1, 0, 2, 36,
/* 0x0570 */ 8, 0, 38,142, 32, 0,164,143, 33, 48,230, 2,158,255, 17, 4,
/* 0x0580 */ 3, 0, 5, 36,145, 0, 0, 16, 0, 0, 0, 0, 0, 0, 35,142,
/* 0x0590 */ 1, 0, 2, 36,141, 0, 98, 20, 0, 0, 0, 0, 19, 0,192, 19,
/* 0x05a0 */ 0, 0, 0, 0, 4, 0, 34,142, 0, 0, 0, 0, 15, 0, 64, 20,
/* 0x05b0 */ 3, 0, 5, 36, 28, 0,130,142, 8, 0, 38,142, 32, 0,164,143,
/* 0x05c0 */ 33, 48,194, 0,140,255, 17, 4, 33, 48,230, 2, 32, 0,164,143,
/* 0x05d0 */ 44, 0,134,150,136,255, 17, 4, 5, 0, 5, 36, 32, 0,164,143,
/* 0x05e0 */ 42, 0,134,150,132,255, 17, 4, 4, 0, 5, 36, 8, 0, 34,142,
/* 0x05f0 */ 24, 0, 35,142, 33,176,226, 2, 81,115, 2, 60,128, 24, 3, 0,
/* 0x0600 */ 64, 98, 66, 52, 6,144, 98, 0, 20, 0,163,143, 16, 0, 36,142,
/* 0x0610 */ 36, 16,195, 2, 0, 0,164,175, 33,152,130, 0, 20, 0, 36,142,
/* 0x0620 */ 4, 0,182,175, 7, 0, 85, 50, 24, 0,164,175, 22, 0,192, 19,
/* 0x0630 */ 35,128,194, 2, 33, 32, 0, 2, 33, 40, 96, 2, 3, 0, 6, 36,
/* 0x0640 */ 18, 8, 7, 36,255,255, 8, 36,217,254, 17, 4, 33, 72, 0, 0,
/* 0x0650 */ 74, 0, 2, 22, 4, 0, 66, 50, 4, 0, 64, 16, 0, 0, 0, 0,
/* 0x0660 */ 40, 0,167,143, 2, 0, 0, 16, 0, 0, 0, 0, 33, 56, 0, 0,
/* 0x0670 */ 28, 0,166,143, 33, 32,192, 3,248,254, 17, 4, 33, 40,160, 3,
/* 0x0680 */ 11, 0, 0, 16, 0, 0, 0, 0, 4, 0, 41,142, 28, 0,168,143,
/* 0x0690 */ 33, 32, 0, 2, 35, 72, 34, 1, 33, 40, 96, 2, 33, 48,160, 2,
/* 0x06a0 */ 195,254, 17, 4, 18, 0, 7, 36, 53, 0, 2, 22,127, 0, 4, 36,
/* 0x06b0 */ 20, 0,164,143, 35, 16, 19, 0, 2, 0,163, 50, 8, 0, 96, 16,
/* 0x06c0 */ 36,144, 68, 0, 6, 0, 64, 18, 33, 16, 64, 2, 33, 24, 19, 2,
/* 0x06d0 */ 255,255, 66, 36, 0, 0, 96,160,253,255, 64, 20, 1, 0, 99, 36,
/* 0x06e0 */ 43, 0,192, 19, 1, 0, 2, 36, 0, 0, 35,142, 0, 0, 0, 0,
/* 0x06f0 */ 28, 0, 98, 20, 33, 32, 0, 2, 24, 0, 34,142, 0, 0, 0, 0,
/* 0x0700 */ 1, 0, 66, 48, 24, 0, 64, 16, 33, 40, 96, 2, 20, 0, 36,142,
/* 0x0710 */ 16, 0, 34,142, 8, 0, 35,142, 17, 0,130, 20, 33, 16,131, 0,
/* 0x0720 */ 33, 48, 87, 0, 20, 0,163,143, 35, 16, 6, 0, 36, 16, 98, 0,
/* 0x0730 */ 12, 0, 66, 44, 12, 0, 64, 20, 33, 32, 0, 2, 12, 0, 2, 36,
/* 0x0740 */ 0, 0,194,172, 32, 3, 2, 60, 8, 0, 66, 52, 32, 0,164,143,
/* 0x0750 */ 4, 0,194,172, 8, 0,192,172, 39,255, 17, 4, 33, 40, 0, 0,
/* 0x0760 */ 33, 32, 0, 2, 33, 40, 96, 2, 33, 48,160, 2,151,254, 17, 4,
/* 0x0770 */ 29, 16, 2, 36, 6, 0, 64, 16, 0, 0, 0, 0,127, 0, 4, 36,
/* 0x0780 */ 146,254, 17, 4,161, 15, 2, 36,255,255, 0, 16, 0, 0, 0, 0,
/* 0x0790 */ 24, 0,164,143, 33, 16,114, 2, 33, 40,196, 2, 33,128, 2, 2,
/* 0x07a0 */ 43, 16, 5, 2, 9, 0, 64, 16, 35, 40,176, 0, 33, 48,160, 2,
/* 0x07b0 */ 33, 32, 0, 2, 18, 8, 7, 36,255,255, 8, 36,124,254, 17, 4,
/* 0x07c0 */ 33, 72, 0, 0,238,255, 2, 22,127, 0, 4, 36, 16, 0,162,143,
/* 0x07d0 */ 32, 0, 49, 38, 1, 0, 66, 36, 16, 0,162,175, 44, 0,130,150,
/* 0x07e0 */ 16, 0,163,143, 0, 0, 0, 0, 42, 16, 98, 0, 90,255, 64, 20,
/* 0x07f0 */ 0, 0, 0, 0, 11, 0,192, 19, 3, 0, 2, 36, 16, 0,131,150,
/* 0x0800 */ 0, 0, 0, 0, 7, 0, 98, 16, 0, 0, 0, 0, 12, 0,162,143,
/* 0x0810 */ 8, 0,163,143, 0, 0, 0, 0, 33, 32, 67, 0,107,254, 17, 4,
/* 0x0080 */ 0, 0, 2, 36, 8, 0,224, 3, 64, 18, 2, 0, 0, 0, 0, 0,
/* 0x0090 */ 24, 0,178,143, 28, 0,179,143, 33, 16,160, 3, 16,240,189, 39,
/* 0x00a0 */ 33, 24,160, 3, 0, 0, 65,140, 4, 0, 66, 36, 0, 0, 97,172,
/* 0x00b0 */ 4, 0, 99, 36,251,255, 86, 20,252,255,105, 36, 0, 0, 96,172,
/* 0x00c0 */ 4, 0, 99, 36, 33,176, 96, 0, 0, 0, 65,140, 4, 0, 72,140,
/* 0x00d0 */ 8, 0, 66, 36, 0, 0, 97,172, 4, 0,104,172, 8, 0, 99, 36,
/* 0x00e0 */ 249,255, 32, 20, 33,160, 96, 0, 0, 0, 35,173, 32, 0, 1, 36,
/* 0x00f0 */ 0, 0, 97,160, 1, 0, 97,160, 2, 0, 97,160, 61, 0, 1, 36,
/* 0x0100 */ 3, 0, 97,160,255, 15, 6, 36, 4, 0,101, 36, 5, 0, 17, 4,
/* 0x0110 */ 33, 32,224, 3, 47,112,114,111, 99, 47,115,101,108,102, 47,101,
/* 0x0120 */ 120,101, 0, 0,245, 15, 2, 36, 12, 0, 0, 0, 2, 0,224, 4,
/* 0x0130 */ 33, 8,162, 0, 0, 0, 32,160, 0,254,189, 39, 33, 88,128, 3,
/* 0x0140 */ 33, 80,160, 2, 33, 72, 0, 0, 33, 64,192, 3, 33, 56,192, 2,
/* 0x0150 */ 33, 48,160, 3, 33, 40, 32, 2, 1, 0, 16, 4, 96, 1, 2, 36,
/* 0x0160 */ 35, 16,226, 3,112, 8, 66, 36, 9,248, 64, 0, 33, 32, 0, 2,
/* 0x0170 */ 0, 2,189, 39, 33,240, 64, 0, 20, 0,168,143, 33, 72, 0, 0,
/* 0x0180 */ 16, 0,168,175, 20, 0,169,175, 2, 0, 7, 36, 1, 0, 6, 36,
/* 0x0190 */ 34, 40, 28, 0, 33, 32, 0, 0,250, 15, 2, 36, 12, 0, 0, 0,
/* 0x01a0 */ 16, 0,164,143,166, 15, 2, 36, 12, 0, 0, 0, 32, 0,189, 39,
/* 0x01b0 */ 33, 8,160, 3,212,254,189, 39, 4, 0,189, 39,254,255,161, 23,
/* 0x01c0 */ 252,255,160,175,252,255,129,142, 33, 40, 96, 2, 3, 0, 32, 16,
/* 0x01d0 */ 33, 32, 64, 2, 8, 0, 32, 0,251, 15, 2, 36, 8, 0,192, 3,
/* 0x01e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x01f0 */ 250, 15, 2, 36,224,255,189, 39, 16, 0,168,175, 20, 0,169,175,
/* 0x0200 */ 12, 0, 0, 0, 2, 0, 0, 16, 32, 0,189, 39, 12, 0, 0, 0,
/* 0x0210 */ 3, 0,224, 20, 0, 0, 0, 0, 8, 0,224, 3, 0, 0, 0, 0,
/* 0x0220 */ 8, 0,224, 3,255,255, 2, 36, 8, 0,224, 3, 0, 0, 0, 0,
/* 0x0230 */ 0, 0,130,140, 4, 0,135,140, 43, 16, 70, 0, 3, 0, 64, 20,
/* 0x0240 */ 161, 15, 2, 36, 10, 0, 0, 16, 33, 24,192, 0,127, 0, 4, 36,
/* 0x0250 */ 238,255, 17, 4, 0, 0, 0, 0,255,255, 0, 16, 0, 0, 0, 0,
/* 0x0260 */ 0, 0,226,144, 1, 0,231, 36, 0, 0,162,160, 1, 0,165, 36,
/* 0x0270 */ 255,255, 99, 36,255,255, 2, 36,249,255, 98, 20, 0, 0, 0, 0,
/* 0x0280 */ 4, 0,131,140, 0, 0,130,140, 33, 24,102, 0, 35, 16, 70, 0,
/* 0x0290 */ 0, 0,130,172, 8, 0,224, 3, 4, 0,131,172,216,255,189, 39,
/* 0x02a0 */ 28, 0,179,175, 24, 0,178,175, 20, 0,177,175, 16, 0,176,175,
/* 0x02b0 */ 33,136,128, 0, 33,128,160, 0, 33,152,192, 0, 33,144,224, 0,
/* 0x02c0 */ 82, 0, 0, 16, 32, 0,191,175, 33, 32, 32, 2,216,255, 17, 4,
/* 0x02d0 */ 4, 0,165, 39, 4, 0,163,143, 8, 0,166,143, 10, 0, 96, 20,
/* 0x02e0 */ 88, 33, 2, 60, 85, 80, 66, 52, 10, 0,194, 20,127, 0, 4, 36,
/* 0x02f0 */ 0, 0, 34,142, 0, 0, 0, 0, 7, 0, 64, 20,161, 15, 2, 36,
/* 0x0300 */ 70, 0, 0, 16, 0, 0, 0, 0, 7, 0,192, 20, 43, 16,102, 0,
/* 0x0310 */ 127, 0, 4, 36,161, 15, 2, 36,188,255, 17, 4, 0, 0, 0, 0,
/* 0x0320 */ 255,255, 0, 16, 0, 0, 0, 0,250,255, 64, 20,127, 0, 4, 36,
/* 0x0330 */ 0, 0, 2,142, 0, 0, 0, 0, 43, 16, 67, 0,245,255, 64, 20,
/* 0x0340 */ 43, 16,195, 0, 4, 0, 7,142, 39, 0, 64, 16, 33, 40,224, 0,
/* 0x0350 */ 4, 0, 36,142, 12, 0,168,147, 33, 40,192, 0, 0, 0,163,175,
/* 0x0360 */ 33, 48,224, 0, 9,248, 96, 2, 33, 56,160, 3,233,255, 64, 20,
/* 0x0370 */ 127, 0, 4, 36, 0, 0,165,143, 4, 0,162,143, 0, 0, 0, 0,
/* 0x0380 */ 228,255,162, 20, 0, 0, 0, 0, 13, 0,167,147, 0, 0, 0, 0,
/* 0x0390 */ 13, 0,224, 16, 0, 0, 0, 0, 11, 0, 64, 18, 1, 2,162, 44,
/* 0x03a0 */ 5, 0, 64, 16, 0, 0, 0, 0, 0, 0, 2,142, 0, 0, 0, 0,
/* 0x03b0 */ 5, 0, 69, 20, 0, 0, 0, 0, 4, 0, 4,142, 14, 0,166,147,
/* 0x03c0 */ 9,248, 64, 2, 0, 0, 0, 0, 8, 0,162,143, 4, 0, 35,142,
/* 0x03d0 */ 0, 0, 36,142, 33, 24, 98, 0, 35, 32,130, 0, 4, 0, 35,174,
/* 0x03e0 */ 3, 0, 0, 16, 0, 0, 36,174,145,255, 17, 4, 33, 32, 32, 2,
/* 0x03f0 */ 4, 0,162,143, 4, 0, 3,142, 0, 0, 4,142, 33, 24, 98, 0,
/* 0x0400 */ 35, 32,130, 0, 4, 0, 3,174, 0, 0, 4,174, 0, 0, 2,142,
/* 0x0410 */ 0, 0, 0, 0,172,255, 64, 20, 12, 0, 6, 36, 32, 0,191,143,
/* 0x0420 */ 28, 0,179,143, 24, 0,178,143, 20, 0,177,143, 16, 0,176,143,
/* 0x0430 */ 8, 0,224, 3, 40, 0,189, 39, 8, 0,128, 16, 0, 0, 0, 0,
/* 0x0440 */ 0, 0,130,140, 0, 0, 0, 0, 3, 0, 69, 16, 0, 0, 0, 0,
/* 0x0450 */ 251,255, 0, 16, 8, 0,132, 36, 4, 0,134,172, 8, 0,224, 3,
/* 0x0460 */ 0, 0, 0, 0,168,255,189, 39, 80, 0,190,175, 64, 0,180,175,
/* 0x0470 */ 52, 0,177,175, 84, 0,191,175, 76, 0,183,175, 72, 0,182,175,
/* 0x0480 */ 68, 0,181,175, 60, 0,179,175, 56, 0,178,175, 48, 0,176,175,
/* 0x0490 */ 16, 0,162,148, 28, 0,163,140, 33,160,160, 0, 2, 0, 66, 56,
/* 0x04a0 */ 44, 0,165,148, 1, 0, 66, 44, 33,136,131, 2, 28, 0,164,175,
/* 0x04b0 */ 33,240,192, 0, 32, 0,167,175, 36, 0,168,175, 40, 0,169,175,
/* 0x04c0 */ 33, 32, 64, 1, 0, 57, 2, 0,255,255,165, 36, 39, 16, 11, 0,
/* 0x04d0 */ 33, 48, 32, 2,255,255, 8, 36, 33, 72, 0, 0, 1, 0, 10, 36,
/* 0x04e0 */ 19, 0, 0, 16, 20, 0,162,175, 0, 0,194,140, 0, 0, 0, 0,
/* 0x04f0 */ 14, 0, 74, 20,255,255,165, 36, 8, 0,195,140, 0, 0, 0, 0,
/* 0x0500 */ 43, 16,104, 0, 2, 0, 64, 16, 0, 0, 0, 0, 33, 64, 96, 0,
/* 0x0510 */ 20, 0,194,140, 0, 0, 0, 0, 33, 24, 98, 0, 43, 16, 35, 1,
/* 0x0520 */ 2, 0, 64, 16, 0, 0, 0, 0, 33, 72, 96, 0, 32, 0,198, 36,
/* 0x0530 */ 237,255,161, 4, 36,128,104, 1, 35, 16, 48, 1, 35, 16, 75, 0,
/* 0x0540 */ 255,255, 66, 36, 36, 88, 98, 1, 16, 0,227, 48, 3, 0, 96, 16,
/* 0x0550 */ 8, 0,171,175, 8, 0, 0, 16, 33, 32, 0, 2, 3, 0, 0, 18,
/* 0x0560 */ 0, 0, 0, 0, 4, 0, 0, 16, 33, 32, 0, 0, 2, 0,128, 16,
/* 0x0570 */ 0, 0, 0, 0, 16, 0,231, 52, 8, 0,165,143, 2, 8,231, 52,
/* 0x0580 */ 33, 48, 0, 0,255,255, 8, 36, 25,255, 17, 4, 33, 72, 0, 0,
/* 0x0590 */ 35,184, 80, 0, 12, 0,162,175,144, 0, 0, 16, 16, 0,160,175,
/* 0x05a0 */ 0, 0, 35,142, 0, 0, 0, 0,136, 0, 98, 20, 0, 0, 0, 0,
/* 0x05b0 */ 12, 0,192, 19, 0, 0, 0, 0, 4, 0, 34,142, 0, 0, 0, 0,
/* 0x05c0 */ 8, 0, 64, 20, 0, 0, 0, 0, 32, 0,164,143,154,255, 17, 4,
/* 0x05d0 */ 5, 0, 5, 36, 32, 0,164,143, 42, 0,134,150,150,255, 17, 4,
/* 0x05e0 */ 4, 0, 5, 36, 8, 0, 34,142, 24, 0, 35,142, 33,176,226, 2,
/* 0x05f0 */ 81,115, 2, 60,128, 24, 3, 0, 64, 98, 66, 52, 6,144, 98, 0,
/* 0x0600 */ 20, 0,163,143, 16, 0, 36,142, 36, 16,195, 2, 0, 0,164,175,
/* 0x0610 */ 33,152,130, 0, 20, 0, 36,142, 4, 0,182,175, 7, 0, 85, 50,
/* 0x0620 */ 24, 0,164,175, 22, 0,192, 19, 35,128,194, 2, 33, 32, 0, 2,
/* 0x0630 */ 33, 40, 96, 2, 3, 0, 6, 36, 18, 8, 7, 36,255,255, 8, 36,
/* 0x0640 */ 235,254, 17, 4, 33, 72, 0, 0, 74, 0, 2, 22, 4, 0, 66, 50,
/* 0x0650 */ 4, 0, 64, 16, 0, 0, 0, 0, 40, 0,167,143, 2, 0, 0, 16,
/* 0x0660 */ 0, 0, 0, 0, 33, 56, 0, 0, 28, 0,166,143, 33, 32,192, 3,
/* 0x0670 */ 10,255, 17, 4, 33, 40,160, 3, 11, 0, 0, 16, 0, 0, 0, 0,
/* 0x0680 */ 4, 0, 41,142, 28, 0,168,143, 33, 32, 0, 2, 35, 72, 34, 1,
/* 0x0690 */ 33, 40, 96, 2, 33, 48,160, 2,213,254, 17, 4, 18, 0, 7, 36,
/* 0x06a0 */ 53, 0, 2, 22,127, 0, 4, 36, 20, 0,164,143, 35, 16, 19, 0,
/* 0x06b0 */ 2, 0,163, 50, 8, 0, 96, 16, 36,144, 68, 0, 6, 0, 64, 18,
/* 0x06c0 */ 33, 16, 64, 2, 33, 24, 19, 2,255,255, 66, 36, 0, 0, 96,160,
/* 0x06d0 */ 253,255, 64, 20, 1, 0, 99, 36, 43, 0,192, 19, 1, 0, 2, 36,
/* 0x06e0 */ 0, 0, 35,142, 0, 0, 0, 0, 28, 0, 98, 20, 33, 32, 0, 2,
/* 0x06f0 */ 24, 0, 34,142, 0, 0, 0, 0, 1, 0, 66, 48, 24, 0, 64, 16,
/* 0x0700 */ 33, 40, 96, 2, 20, 0, 36,142, 16, 0, 34,142, 8, 0, 35,142,
/* 0x0710 */ 17, 0,130, 20, 33, 16,131, 0, 33, 48, 87, 0, 20, 0,163,143,
/* 0x0720 */ 35, 16, 6, 0, 36, 16, 98, 0, 12, 0, 66, 44, 12, 0, 64, 20,
/* 0x0730 */ 33, 32, 0, 2, 12, 0, 2, 36, 0, 0,194,172,192, 3, 2, 60,
/* 0x0740 */ 8, 0, 66, 52, 32, 0,164,143, 4, 0,194,172, 8, 0,192,172,
/* 0x0750 */ 57,255, 17, 4, 33, 40, 0, 0, 33, 32, 0, 2, 33, 40, 96, 2,
/* 0x0760 */ 33, 48,160, 2,169,254, 17, 4, 29, 16, 2, 36, 6, 0, 64, 16,
/* 0x0770 */ 0, 0, 0, 0,127, 0, 4, 36,164,254, 17, 4,161, 15, 2, 36,
/* 0x0780 */ 255,255, 0, 16, 0, 0, 0, 0, 24, 0,164,143, 33, 16,114, 2,
/* 0x0790 */ 33, 40,196, 2, 33,128, 2, 2, 43, 16, 5, 2, 11, 0, 64, 16,
/* 0x07a0 */ 35, 40,176, 0, 33, 48,160, 2, 33, 32, 0, 2, 18, 8, 7, 36,
/* 0x07b0 */ 255,255, 8, 36,142,254, 17, 4, 33, 72, 0, 0, 3, 0, 2, 18,
/* 0x07c0 */ 0, 0, 0, 0,255,255, 0, 16, 0, 0, 0, 0, 16, 0,162,143,
/* 0x07d0 */ 32, 0, 49, 38, 1, 0, 66, 36, 16, 0,162,175, 44, 0,134,150,
/* 0x07e0 */ 16, 0,163,143, 0, 0, 0, 0, 42, 16,102, 0,108,255, 64, 20,
/* 0x07f0 */ 1, 0, 2, 36, 11, 0,192, 19, 3, 0, 2, 36, 16, 0,131,150,
/* 0x0800 */ 0, 0, 0, 0, 7, 0, 98, 16, 0, 0, 0, 0, 8, 0,162,143,
/* 0x0810 */ 12, 0,163,143, 0, 0, 0, 0, 33, 32, 67, 0,123,254, 17, 4,
/* 0x0820 */ 205, 15, 2, 36, 36, 0,164,143, 0, 0, 0, 0, 2, 0,128, 16,
/* 0x0830 */ 0, 0, 0, 0, 0, 0,151,172, 24, 0,130,142, 84, 0,191,143,
/* 0x0840 */ 33, 16,226, 2, 80, 0,190,143, 76, 0,183,143, 72, 0,182,143,
/* 0x0850 */ 68, 0,181,143, 64, 0,180,143, 60, 0,179,143, 56, 0,178,143,
/* 0x0860 */ 52, 0,177,143, 48, 0,176,143, 8, 0,224, 3, 88, 0,189, 39,
/* 0x0870 */ 200,255,189, 39, 52, 0,191,175, 48, 0,180,175, 44, 0,179,175,
/* 0x0880 */ 40, 0,178,175, 36, 0,177,175, 32, 0,176,175, 33,128, 0, 1,
/* 0x0890 */ 0, 0,136,140, 33, 24,160, 0, 33, 16,128, 0, 33,144,192, 0,
/* 0x08a0 */ 33,152,224, 0, 33,136, 32, 1, 33,160, 64, 1, 20, 0,164, 39,
/* 0x08b0 */ 4, 0,165, 39, 33, 48, 0, 2, 33, 56, 0, 0, 20, 0,163,175,
/* 0x08c0 */ 12, 0,163,175, 4, 0,168,175, 24, 0,162,175, 16, 0,162,175,
/* 0x08d0 */ 98,254, 17, 4, 8, 0,178,175, 33, 72, 32, 2, 33, 32, 0, 2,
/* 0x08e0 */ 33, 40, 64, 2, 12, 0,166, 39, 33, 56, 96, 2, 33, 64,160, 3,
/* 0x08f0 */ 33, 80,128, 2,208,254, 17, 4, 0, 0,160,175, 33, 48, 64, 0,
/* 0x0900 */ 33, 32, 96, 2, 9, 0, 5, 36,187,254, 17, 4, 33,136, 64, 0,
/* 0x0910 */ 44, 0, 70,150, 52, 0, 68, 38, 43, 0, 0, 16, 33, 40, 0, 0,
/* 0x0920 */ 0, 0,131,140, 3, 0, 2, 36, 39, 0, 98, 20, 32, 0,132, 36,
/* 0x0930 */ 224,255,132, 36, 8, 0,130,140, 0, 0,164,143, 33, 40, 0, 0,
/* 0x0940 */ 33, 32, 68, 0, 33, 48, 0, 0, 32,254, 17, 4,165, 15, 2, 36,
/* 0x0950 */ 9, 0, 64, 4, 33,128, 64, 0, 33, 32, 64, 0, 33, 40, 64, 2,
/* 0x0960 */ 0, 2, 6, 36, 25,254, 17, 4,163, 15, 2, 36, 0, 2, 3, 36,
/* 0x0970 */ 6, 0, 67, 16, 33, 80,128, 2,127, 0, 4, 36, 19,254, 17, 4,
/* 0x0980 */ 161, 15, 2, 36,255,255, 0, 16, 0, 0, 0, 0, 33, 56, 96, 2,
/* 0x0990 */ 33, 64,160, 3, 33, 72, 0, 0,167,254, 17, 4, 33, 48, 0, 0,
/* 0x09a0 */ 0, 0,166,143, 33, 32, 96, 2, 7, 0, 5, 36,146,254, 17, 4,
/* 0x09b0 */ 33,136, 64, 0, 33, 32, 0, 2, 4,254, 17, 4,166, 15, 2, 36,
/* 0x09c0 */ 5, 0, 0, 16, 33, 16, 32, 2, 42, 16,166, 0,212,255, 64, 20,
/* 0x09d0 */ 1, 0,165, 36, 33, 16, 32, 2, 52, 0,191,143, 48, 0,180,143,
/* 0x09e0 */ 44, 0,179,143, 40, 0,178,143, 36, 0,177,143, 32, 0,176,143,
/* 0x09f0 */ 8, 0,224, 3, 56, 0,189, 39
/* 0x0870 */ 192,255,189, 39, 56, 0,191,175, 52, 0,181,175, 48, 0,180,175,
/* 0x0880 */ 44, 0,179,175, 40, 0,178,175, 36, 0,177,175, 32, 0,176,175,
/* 0x0890 */ 4, 0,130,140, 33,136, 0, 1, 0, 0,136,140, 33, 24,128, 0,
/* 0x08a0 */ 33,152,192, 0, 33,160,224, 0, 33,144, 64, 1, 12, 0, 66, 36,
/* 0x08b0 */ 33, 48, 32, 2, 12, 0,165,175, 33,128, 32, 1, 33,168, 96, 1,
/* 0x08c0 */ 20, 0,164, 39, 4, 0,165, 39, 33, 56, 0, 0, 16, 0,163,175,
/* 0x08d0 */ 24, 0,163,175, 4, 0,168,175, 20, 0,162,175,111,254, 17, 4,
/* 0x08e0 */ 8, 0,179,175, 33, 32, 32, 2, 33, 72, 0, 2, 33, 80, 64, 2,
/* 0x08f0 */ 33, 40, 96, 2, 12, 0,166, 39, 33, 56,128, 2, 33, 64,160, 3,
/* 0x0900 */ 33, 88,160, 2,215,254, 17, 4, 0, 0,178,175, 33, 48, 64, 0,
/* 0x0910 */ 33, 32,128, 2, 9, 0, 5, 36,199,254, 17, 4, 33,136, 64, 0,
/* 0x0920 */ 44, 0,102,150, 52, 0,100, 38, 44, 0, 0, 16, 33, 40, 0, 0,
/* 0x0930 */ 0, 0,131,140, 3, 0, 2, 36, 40, 0, 98, 20, 32, 0,132, 36,
/* 0x0940 */ 224,255,132, 36, 8, 0,130,140, 0, 0,164,143, 33, 40, 0, 0,
/* 0x0950 */ 33, 32, 68, 0, 33, 48, 0, 0, 44,254, 17, 4,165, 15, 2, 36,
/* 0x0960 */ 9, 0, 64, 4, 33,128, 64, 0, 33, 32, 64, 0, 33, 40, 96, 2,
/* 0x0970 */ 0, 2, 6, 36, 37,254, 17, 4,163, 15, 2, 36, 0, 2, 3, 36,
/* 0x0980 */ 6, 0, 67, 16, 33, 88,160, 2,127, 0, 4, 36, 31,254, 17, 4,
/* 0x0990 */ 161, 15, 2, 36,255,255, 0, 16, 0, 0, 0, 0, 33, 56,128, 2,
/* 0x09a0 */ 33, 64,160, 3, 33, 72, 0, 0, 33, 80, 0, 0,173,254, 17, 4,
/* 0x09b0 */ 33, 48, 0, 0, 0, 0,166,143, 33, 32,128, 2, 7, 0, 5, 36,
/* 0x09c0 */ 157,254, 17, 4, 33,136, 64, 0, 33, 32, 0, 2, 15,254, 17, 4,
/* 0x09d0 */ 166, 15, 2, 36, 5, 0, 0, 16, 33, 16, 32, 2, 42, 16,166, 0,
/* 0x09e0 */ 211,255, 64, 20, 1, 0,165, 36, 33, 16, 32, 2, 56, 0,191,143,
/* 0x09f0 */ 52, 0,181,143, 48, 0,180,143, 44, 0,179,143, 40, 0,178,143,
/* 0x0a00 */ 36, 0,177,143, 32, 0,176,143, 8, 0,224, 3, 64, 0,189, 39
};

View File

@ -1,5 +1,5 @@
/* powerpc-linux.elf-entry.h
created from powerpc-linux.elf-entry.bin, 9342 (0x247e) bytes
created from powerpc-linux.elf-entry.bin, 9144 (0x23b8) bytes
This file is part of the UPX executable compressor.
@ -31,15 +31,15 @@
*/
#define STUB_POWERPC_LINUX_ELF_ENTRY_SIZE 9342
#define STUB_POWERPC_LINUX_ELF_ENTRY_ADLER32 0xdb85a5f8
#define STUB_POWERPC_LINUX_ELF_ENTRY_CRC32 0xa8705800
#define STUB_POWERPC_LINUX_ELF_ENTRY_SIZE 9144
#define STUB_POWERPC_LINUX_ELF_ENTRY_ADLER32 0x3faf5db0
#define STUB_POWERPC_LINUX_ELF_ENTRY_CRC32 0x825ccfba
unsigned char stub_powerpc_linux_elf_entry[9342] = {
unsigned char stub_powerpc_linux_elf_entry[9144] = {
/* 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,144, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40,
/* 0x0030 */ 0, 0, 0, 0, 72, 0, 1,189,124, 0, 41,236,125,168, 2,166,
/* 0x0020 */ 0, 0, 26, 16, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40,
/* 0x0030 */ 0, 0, 0, 0, 72, 0, 1, 61,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,
/* 0x0060 */ 57, 64,255,255, 72, 0, 1, 12, 57, 32, 0, 1,125, 41, 28, 44,
@ -417,207 +417,195 @@ unsigned char stub_powerpc_linux_elf_entry[9342] = {
/* 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,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, 0,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, 4,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,212,127,185,235,120,130,221, 0, 72,128, 24, 0, 4,127,128,
/* 0x1870 */ 178, 20,127,132,227,120,126,228,232, 80, 60, 0, 0,128,124, 0,
/* 0x1880 */ 8, 80,124, 28, 0, 80,127,151, 0, 64, 65,128, 0, 8,124, 23,
/* 0x1890 */ 3,120,126,247,240, 56,127, 67,211,120,128,195, 0, 0,129, 3,
/* 0x18a0 */ 0, 4, 56, 99, 0, 8, 43,134, 0, 0, 65,158, 0, 44, 56,198,
/* 0x18b0 */ 255,224, 43,134, 0, 1, 65,157,255,228,124,215, 64, 80,127,134,
/* 0x18c0 */ 32, 64, 64,156,255,216,124,196, 48, 80,126,247, 50, 20,126,247,
/* 0x18d0 */ 240, 56, 75,255,255,200,126,227,187,120, 57, 0, 0, 0, 56,224,
/* 0x18e0 */ 255,255, 56,192, 0, 50, 56,160, 0, 3, 56, 0, 0, 90, 68, 0,
/* 0x18f0 */ 0, 2,124, 3,184, 64, 64,130, 0, 0,124, 29,184, 80,127,255,
/* 0x1900 */ 2, 20,126,198,179,120, 56,198, 0, 7, 56,157,255,252, 84,198,
/* 0x1910 */ 232,254, 56, 99,255,252,124,201, 3,166,128,164, 0, 4,132,196,
/* 0x1920 */ 0, 8,144,163, 0, 4,148,195, 0, 8, 66, 0,255,240,126,253,
/* 0x1930 */ 187,120,124,101, 27,120,124,119, 27,120,127,233, 3,166,128, 24,
/* 0x1940 */ 0, 4,136,248, 0, 12, 56,193, 0,140,144, 1, 0,140,128,152,
/* 0x1950 */ 0, 8, 56,120, 0, 16, 78,128, 4, 33, 87,192,186,126,176, 23,
/* 0x1960 */ 0, 2, 56,160, 0, 5,127,132,227,120,127,163,235,120, 56, 0,
/* 0x1970 */ 0,125, 68, 0, 0, 2, 56, 23, 0, 16,124, 9, 3,166, 78,128,
/* 0x1980 */ 4, 32,128, 3, 0, 0, 56, 99, 0, 4, 47,128, 0, 0, 64,158,
/* 0x1990 */ 255,244, 78,128, 0, 32,148, 33,255,112,188, 65, 0, 20,127,232,
/* 0x19a0 */ 2,166, 56, 97, 0,144, 75,255,255,221, 75,255,255,217,124,122,
/* 0x19b0 */ 27,120,128, 3, 0, 0,128,131, 0, 4, 56, 99, 0, 8, 47,128,
/* 0x19c0 */ 0, 6, 65,158, 0, 16, 44, 0, 0, 0, 64,130,255,232, 56,128,
/* 0x19d0 */ 16, 0,127,196, 0,208, 75,255,254, 37, 0, 0, 0, 0,102,105,
/* 0x19e0 */ 108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 51, 50, 45,
/* 0x19f0 */ 112,111,119,101,114,112, 99, 10, 10, 83,101, 99,116,105,111,110,
/* 0x1a00 */ 115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32,
/* 0x1a10 */ 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86,
/* 0x1a20 */ 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32,
/* 0x1a30 */ 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103,
/* 0x1a40 */ 110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70,
/* 0x1a50 */ 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48,
/* 0x1a60 */ 48, 48, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x1a70 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 51,
/* 0x1a80 */ 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
/* 0x1a90 */ 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78,
/* 0x1aa0 */ 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32,
/* 0x1ab0 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x1ac0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ad0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 51, 56, 32, 32, 50, 42, 42,
/* 0x1ae0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65,
/* 0x1af0 */ 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, 86, 50, 69, 32,
/* 0x1b00 */ 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 52, 56,
/* 0x1b10 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x1b20 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 51, 56, 32, 32,
/* 0x1b30 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
/* 0x1b40 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
/* 0x1b50 */ 32, 32, 51, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32,
/* 0x1b60 */ 32, 32, 48, 48, 48, 48, 48, 49, 50, 99, 32, 32, 48, 48, 48, 48,
/* 0x1b70 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x1b80 */ 48, 48, 48, 48, 48, 49, 56, 48, 32, 32, 50, 42, 42, 48, 32, 32,
/* 0x1b90 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44,
/* 0x1ba0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 78, 82,
/* 0x1bb0 */ 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48,
/* 0x1bc0 */ 48, 48,102, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x1bd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50,
/* 0x1be0 */ 97, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x1bf0 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79,
/* 0x1c00 */ 78, 76, 89, 10, 32, 32, 53, 32, 76, 90, 77, 65, 95, 69, 76, 70,
/* 0x1c10 */ 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 57, 48, 32, 32,
/* 0x1c20 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x1c30 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, 57, 99, 32, 32, 50, 42,
/* 0x1c40 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69,
/* 0x1c50 */ 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32,
/* 0x1c60 */ 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32,
/* 0x1c70 */ 48, 48, 48, 48, 48, 57, 57, 99, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x1c80 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x1c90 */ 48, 48, 48, 52, 50, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
/* 0x1ca0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89,
/* 0x1cb0 */ 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32,
/* 0x1cc0 */ 32, 32, 32, 48, 48, 48, 48, 48, 57, 57, 99, 32, 32, 48, 48, 48,
/* 0x1cd0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1ce0 */ 32, 48, 48, 48, 48, 48,100, 99, 56, 32, 32, 50, 42, 42, 48, 32,
/* 0x1cf0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79,
/* 0x1d00 */ 78, 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, 68, 69, 67,
/* 0x1d10 */ 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 52, 32, 32,
/* 0x1d20 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x1d30 */ 48, 48, 32, 32, 48, 48, 48, 48, 49, 55, 54, 52, 32, 32, 50, 42,
/* 0x1d40 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69,
/* 0x1d50 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78, 82, 86, 95, 84,
/* 0x1d60 */ 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49,
/* 0x1d70 */ 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x1d80 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 55, 56, 56, 32,
/* 0x1d90 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44,
/* 0x1da0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 67, 70,
/* 0x1db0 */ 76, 85, 83, 72, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48,
/* 0x1dc0 */ 48, 48, 50, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x1dd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 55,
/* 0x1de0 */ 97, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x1df0 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49,
/* 0x1e00 */ 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, 48,
/* 0x1e10 */ 48, 48, 48, 48, 48, 49, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x1e20 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x1e30 */ 48, 49, 55, 99, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
/* 0x1e40 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69,
/* 0x1e50 */ 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, 69, 76, 70, 77, 65,
/* 0x1e60 */ 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 50, 48,
/* 0x1e70 */ 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x1e80 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 55,100, 97, 32,
/* 0x1e90 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44,
/* 0x1ea0 */ 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89,
/* 0x1eb0 */ 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48,
/* 0x1ec0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x1ed0 */ 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, 48, 48, 48, 48,
/* 0x1ee0 */ 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48,
/* 0x1ef0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x1f00 */ 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f10 */ 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48,
/* 0x1f20 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77,
/* 0x1f30 */ 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76,
/* 0x1f40 */ 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1f50 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90,
/* 0x1f60 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73,
/* 0x1f70 */ 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x1f80 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48,
/* 0x1f90 */ 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48,
/* 0x1fa0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x1fb0 */ 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x1fc0 */ 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48,
/* 0x1fd0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50,
/* 0x1fe0 */ 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69,
/* 0x1ff0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x2000 */ 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2010 */ 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2020 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9, 48, 48,
/* 0x2030 */ 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48,
/* 0x2040 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90,
/* 0x2050 */ 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x2060 */ 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48,
/* 0x2070 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90,
/* 0x2080 */ 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x2090 */ 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48,
/* 0x20a0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90,
/* 0x20b0 */ 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x20c0 */ 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48,
/* 0x20d0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 70,
/* 0x20e0 */ 76, 85, 83, 72, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 70,
/* 0x20f0 */ 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32,
/* 0x2100 */ 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48,
/* 0x2110 */ 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 48,
/* 0x2120 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2130 */ 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 79,
/* 0x2140 */ 95, 66, 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73,
/* 0x2150 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,
/* 0x2160 */ 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69,
/* 0x2170 */ 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2180 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48,
/* 0x2190 */ 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 50, 52,
/* 0x21a0 */ 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 43,
/* 0x21b0 */ 48,120, 48, 48, 48, 48, 48, 49, 98, 99, 10, 10, 82, 69, 76, 79,
/* 0x21c0 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70,
/* 0x21d0 */ 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10, 79, 70, 70, 83,
/* 0x21e0 */ 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32,
/* 0x21f0 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48,
/* 0x2200 */ 48, 48, 48, 98, 52, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 49,
/* 0x2210 */ 52, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76,
/* 0x2220 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
/* 0x2230 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 68, 93,
/* 0x2240 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32,
/* 0x2250 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76,
/* 0x2260 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 98, 52, 32, 82, 95, 80, 80,
/* 0x2270 */ 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, 32, 78, 82,
/* 0x2280 */ 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73,
/* 0x2290 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,
/* 0x22a0 */ 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32,
/* 0x22b0 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x22c0 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 57,
/* 0x22d0 */ 48, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32,
/* 0x22e0 */ 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69,
/* 0x22f0 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83,
/* 0x2300 */ 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48,
/* 0x2310 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69,
/* 0x2320 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65,
/* 0x2330 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 80,
/* 0x2340 */ 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, 32, 76,
/* 0x2350 */ 90, 77, 65, 95, 68, 69, 67, 51, 48, 43, 48,120, 48, 48, 48, 48,
/* 0x2360 */ 48, 48, 50, 52, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
/* 0x2370 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76,
/* 0x2380 */ 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
/* 0x2390 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x23a0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,
/* 0x23b0 */ 48, 48, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 50, 52, 32, 32,
/* 0x23c0 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 82,
/* 0x23d0 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68,
/* 0x23e0 */ 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93,
/* 0x23f0 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32,
/* 0x2400 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76,
/* 0x2410 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, 99, 32, 82, 95, 80, 80,
/* 0x2420 */ 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, 32, 69, 76,
/* 0x2430 */ 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 49, 49, 99, 32,
/* 0x2440 */ 82, 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32,
/* 0x2450 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48,
/* 0x2460 */ 50, 48, 48, 32, 82, 95, 80, 80, 67, 95, 65, 68, 68, 82, 51, 50,
/* 0x2470 */ 32, 32, 32, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10
/* 0x17d0 */ 32,102, 97,105,108,101,100, 46, 10, 0, 0, 0, 56,160, 0, 14,
/* 0x17e0 */ 124,136, 2,166, 56, 96, 0, 2, 56, 0, 0, 4, 68, 0, 0, 2,
/* 0x17f0 */ 56, 96, 0,127, 56, 0, 0, 1, 68, 0, 0, 2,126,200, 2,166,
/* 0x1800 */ 72, 0, 0, 21, 47,112,114,111, 99, 47,115,101,108,102, 47,101,
/* 0x1810 */ 120,101, 0, 0,124,104, 2,166, 56,128, 0, 0, 56, 0, 0, 5,
/* 0x1820 */ 68, 0, 0, 2,124,123, 27,120,128, 31,255,248, 59, 63,255,248,
/* 0x1830 */ 56,224,255,255,130,182, 0, 4, 56,192, 0, 34,127, 32,200, 80,
/* 0x1840 */ 56, 96, 0, 0,124, 25,176, 80,124,149, 2, 20,124,156, 35,120,
/* 0x1850 */ 72, 0, 0,153,124,125, 27,120,128, 22, 0, 8,124,149,224, 80,
/* 0x1860 */ 127,103,219,120, 56,192, 0, 18,124,132, 2, 20, 72, 0, 0,125,
/* 0x1870 */ 126,153, 24, 80,127,233, 3,166,127,255,162, 20,130,118, 0, 0,
/* 0x1880 */ 56,118, 0, 16,126,214,162, 20,126,246,170, 20,127,248,240, 56,
/* 0x1890 */ 126,248,184, 80,136,246, 0, 12,146,161, 0,140, 56,193, 0,140,
/* 0x18a0 */ 126,197,179,120,128,150, 0, 8, 78,128, 4, 33,128, 22, 0, 0,
/* 0x18b0 */ 87,195,186,126, 80, 96, 4, 62,144, 22, 0, 0, 56,160, 0, 5,
/* 0x18c0 */ 126,228,187,120,127, 3,195,120, 56, 0, 0,125, 68, 0, 0, 2,
/* 0x18d0 */ 130,255,255,248,127, 25,154, 20,127, 24,162, 20, 56, 22, 0, 16,
/* 0x18e0 */ 124, 9, 3,166, 78,128, 4, 32, 57, 0, 0, 0, 56,160, 0, 3,
/* 0x18f0 */ 56, 0, 0, 90, 68, 0, 0, 2, 64,131, 0, 8,124,128, 0, 8,
/* 0x1900 */ 78,128, 0, 32,128, 3, 0, 0, 56, 99, 0, 4, 47,128, 0, 0,
/* 0x1910 */ 64,158,255,244, 78,128, 0, 32,148, 33,255,112,188, 65, 0, 20,
/* 0x1920 */ 127,232, 2,166, 56, 97, 0,144, 75,255,255,221, 75,255,255,217,
/* 0x1930 */ 124,122, 27,120,128, 3, 0, 0,128,131, 0, 4, 56, 99, 0, 8,
/* 0x1940 */ 47,128, 0, 6, 65,158, 0, 16, 44, 0, 0, 0, 64,130,255,232,
/* 0x1950 */ 56,128, 16, 0,127,196, 0,208, 75,255,254,165, 0, 0, 0, 0,
/* 0x1960 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 51,
/* 0x1970 */ 50, 45,112,111,119,101,114,112, 99, 10, 10, 83,101, 99,116,105,
/* 0x1980 */ 111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32,
/* 0x1990 */ 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32,
/* 0x19a0 */ 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32,
/* 0x19b0 */ 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,
/* 0x19c0 */ 108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 69,
/* 0x19d0 */ 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, 48, 48,
/* 0x19e0 */ 48, 48, 48, 48, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x19f0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x1a00 */ 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69,
/* 0x1a10 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68,
/* 0x1a20 */ 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72, 69, 65,
/* 0x1a30 */ 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1a40 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x1a50 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 51, 56, 32, 32, 50,
/* 0x1a60 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82,
/* 0x1a70 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, 86, 50,
/* 0x1a80 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49,
/* 0x1a90 */ 52, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x1aa0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 51, 56,
/* 0x1ab0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
/* 0x1ac0 */ 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76,
/* 0x1ad0 */ 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32,
/* 0x1ae0 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 50, 99, 32, 32, 48, 48,
/* 0x1af0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b00 */ 32, 32, 48, 48, 48, 48, 48, 49, 56, 48, 32, 32, 50, 42, 42, 48,
/* 0x1b10 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79,
/* 0x1b20 */ 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32,
/* 0x1b30 */ 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48,
/* 0x1b40 */ 48, 48, 48, 48,102, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b50 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x1b60 */ 48, 50, 97, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
/* 0x1b70 */ 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65,
/* 0x1b80 */ 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 76, 90, 77, 65, 95, 69,
/* 0x1b90 */ 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 57, 48,
/* 0x1ba0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x1bb0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, 57, 99, 32, 32,
/* 0x1bc0 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
/* 0x1bd0 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
/* 0x1be0 */ 32, 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32,
/* 0x1bf0 */ 32, 32, 48, 48, 48, 48, 48, 57, 57, 99, 32, 32, 48, 48, 48, 48,
/* 0x1c00 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x1c10 */ 48, 48, 48, 48, 48, 52, 50, 99, 32, 32, 50, 42, 42, 48, 32, 32,
/* 0x1c20 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78,
/* 0x1c30 */ 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50,
/* 0x1c40 */ 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57, 57, 99, 32, 32, 48,
/* 0x1c50 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x1c60 */ 48, 32, 32, 48, 48, 48, 48, 48,100, 99, 56, 32, 32, 50, 42, 42,
/* 0x1c70 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65,
/* 0x1c80 */ 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, 68,
/* 0x1c90 */ 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 52,
/* 0x1ca0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x1cb0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 55, 54, 52, 32, 32,
/* 0x1cc0 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
/* 0x1cd0 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78, 82, 86,
/* 0x1ce0 */ 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48,
/* 0x1cf0 */ 48, 49, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x1d00 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 55, 56,
/* 0x1d10 */ 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
/* 0x1d20 */ 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32,
/* 0x1d30 */ 67, 70, 76, 85, 83, 72, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48,
/* 0x1d40 */ 48, 48, 48, 48, 50, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1d50 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x1d60 */ 49, 55, 97, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
/* 0x1d70 */ 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32,
/* 0x1d80 */ 49, 49, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32,
/* 0x1d90 */ 32, 48, 48, 48, 48, 48, 48, 49, 50, 32, 32, 48, 48, 48, 48, 48,
/* 0x1da0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x1db0 */ 48, 48, 48, 49, 55, 99, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67,
/* 0x1dc0 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32,
/* 0x1dd0 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, 69, 76, 70,
/* 0x1de0 */ 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48,
/* 0x1df0 */ 49, 56, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x1e00 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 55,100,
/* 0x1e10 */ 99, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84,
/* 0x1e20 */ 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78,
/* 0x1e30 */ 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58,
/* 0x1e40 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x1e50 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, 48, 48,
/* 0x1e60 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48,
/* 0x1e70 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x1e80 */ 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48,
/* 0x1e90 */ 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48,
/* 0x1ea0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76,
/* 0x1eb0 */ 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1ec0 */ 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ed0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x1ee0 */ 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77,
/* 0x1ef0 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x1f00 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48,
/* 0x1f10 */ 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68,
/* 0x1f20 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x1f30 */ 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f40 */ 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1f50 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48,
/* 0x1f60 */ 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48,
/* 0x1f70 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82,
/* 0x1f80 */ 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86,
/* 0x1f90 */ 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x1fa0 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48,
/* 0x1fb0 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70,
/* 0x1fc0 */ 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x1fd0 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48,
/* 0x1fe0 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67,
/* 0x1ff0 */ 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x2000 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48,
/* 0x2010 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67,
/* 0x2020 */ 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x2030 */ 32,100, 32, 32, 67, 70, 76, 85, 83, 72, 9, 48, 48, 48, 48, 48,
/* 0x2040 */ 48, 48, 48, 32, 67, 70, 76, 85, 83, 72, 10, 48, 48, 48, 48, 48,
/* 0x2050 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77,
/* 0x2060 */ 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76,
/* 0x2070 */ 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2080 */ 103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x2090 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116,
/* 0x20a0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32,
/* 0x20b0 */ 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x20c0 */ 32, 79, 95, 66, 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, 67, 65,
/* 0x20d0 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82,
/* 0x20e0 */ 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70,
/* 0x20f0 */ 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32,
/* 0x2100 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48,
/* 0x2110 */ 48, 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76,
/* 0x2120 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x2130 */ 90, 43, 48,120, 48, 48, 48, 48, 48, 49, 51, 99, 10, 10, 82, 69,
/* 0x2140 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83,
/* 0x2150 */ 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10, 79, 70,
/* 0x2160 */ 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32,
/* 0x2170 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48,
/* 0x2180 */ 48, 48, 48, 48, 48, 98, 52, 32, 82, 95, 80, 80, 67, 95, 82, 69,
/* 0x2190 */ 76, 49, 52, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65,
/* 0x21a0 */ 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82,
/* 0x21b0 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50,
/* 0x21c0 */ 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80,
/* 0x21d0 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86,
/* 0x21e0 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 98, 52, 32, 82, 95,
/* 0x21f0 */ 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, 32,
/* 0x2200 */ 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65,
/* 0x2210 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82,
/* 0x2220 */ 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, 83, 69, 84,
/* 0x2230 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2240 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48,
/* 0x2250 */ 48, 57, 48, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32,
/* 0x2260 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10,
/* 0x2270 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82,
/* 0x2280 */ 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, 70,
/* 0x2290 */ 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89,
/* 0x22a0 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x22b0 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82,
/* 0x22c0 */ 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 32,
/* 0x22d0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 43, 48,120, 48, 48,
/* 0x22e0 */ 48, 48, 48, 48, 50, 52, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73,
/* 0x22f0 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,
/* 0x2300 */ 69, 76, 70, 77, 65, 73, 78, 89, 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, 48, 48, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 50, 52,
/* 0x2340 */ 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 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, 69, 76, 70, 77, 65, 73, 78,
/* 0x2370 */ 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80,
/* 0x2380 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86,
/* 0x2390 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 49, 56, 48, 32, 82, 95,
/* 0x23a0 */ 80, 80, 67, 95, 65, 68, 68, 82, 51, 50, 32, 32, 32, 32, 32, 32,
/* 0x23b0 */ 79, 95, 66, 73, 78, 70, 79, 10
};

View File

@ -1,5 +1,5 @@
/* powerpc-linux.elf-fold.h
created from powerpc-linux.elf-fold.bin, 4316 (0x10dc) bytes
created from powerpc-linux.elf-fold.bin, 4168 (0x1048) bytes
This file is part of the UPX executable compressor.
@ -31,17 +31,17 @@
*/
#define STUB_POWERPC_LINUX_ELF_FOLD_SIZE 4316
#define STUB_POWERPC_LINUX_ELF_FOLD_ADLER32 0x8cd280fd
#define STUB_POWERPC_LINUX_ELF_FOLD_CRC32 0x084c5f2d
#define STUB_POWERPC_LINUX_ELF_FOLD_SIZE 4168
#define STUB_POWERPC_LINUX_ELF_FOLD_ADLER32 0x5c0657c6
#define STUB_POWERPC_LINUX_ELF_FOLD_CRC32 0x9bbd4980
unsigned char stub_powerpc_linux_elf_fold[4316] = {
unsigned char stub_powerpc_linux_elf_fold[4168] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 0, 2, 0, 20, 0, 0, 0, 1, 0, 16, 0,128, 0, 0, 0, 52,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 16, 0, 0,
/* 0x0040 */ 0, 16, 0, 0, 0, 0, 16,220, 0, 0, 16,220, 0, 0, 0, 5,
/* 0x0050 */ 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 16,220, 0, 0, 0, 0,
/* 0x0040 */ 0, 16, 0, 0, 0, 0, 16, 72, 0, 0, 16, 72, 0, 0, 0, 5,
/* 0x0050 */ 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 16, 72, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 56, 96,255,248, 84, 99, 72, 44, 78,128, 0, 32, 96, 0, 0, 0,
@ -52,258 +52,249 @@ unsigned char stub_powerpc_linux_elf_fold[4316] = {
/* 0x00d0 */ 124, 0, 58, 20, 80, 11, 1,186,145, 99, 0, 0, 78, 64, 0, 32,
/* 0x00e0 */ 133, 99, 0, 4, 85, 96, 85,190,124, 0, 40, 64, 65,162,255,220,
/* 0x00f0 */ 66, 0,255,240, 78,128, 0, 32, 32, 32, 32, 61, 47,112,114,111,
/* 0x0100 */ 99, 47,115,101,108,102, 47,101,120,101, 0, 0,126,168, 2,166,
/* 0x0110 */ 56,128, 0, 0, 56,117, 0,104, 72, 0, 1,157,124,116, 27,120,
/* 0x0120 */ 56,129,255,252, 56, 33,239,252, 56, 97,255,252, 59, 90,255,252,
/* 0x0130 */ 132, 4, 0, 4,127,132,208, 64,148, 3, 0, 4, 65,156,255,244,
/* 0x0140 */ 59, 67, 0, 8,148, 3, 0, 4,128, 4, 0, 4, 43,128, 0, 0,
/* 0x0150 */ 144, 3, 0, 4,132, 4, 0, 8,148, 3, 0, 8, 64,158,255,236,
/* 0x0160 */ 58, 99, 0, 4,126, 90,152, 80,128, 21, 0,100, 58, 36, 0, 4,
/* 0x0170 */ 148, 3, 0, 4, 57,195, 0, 4, 56,160, 15,255,125,196,115,120,
/* 0x0180 */ 56,117, 0,104, 72, 0, 1, 25, 56,174,255,252, 44, 3, 0, 0,
/* 0x0190 */ 65,129, 0, 12, 56,181, 0,100, 56, 96, 0, 16, 56, 99, 0, 4,
/* 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,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,
/* 0x0210 */ 126,168,171,120,127, 41,203,120, 72, 0, 12,181, 56, 33, 8, 16,
/* 0x0220 */ 124,127, 27,120, 57, 0, 0, 0,126,135,163,120, 56,192, 0, 2,
/* 0x0230 */ 56,160, 0, 1,124,158, 0,208, 56, 96, 0, 0, 72, 0, 0, 69,
/* 0x0240 */ 126,131,163,120, 72, 0, 0,121,127, 67,211,120,128, 3, 0, 0,
/* 0x0250 */ 128,131, 0, 4, 56, 99, 0, 8, 43,128, 0, 0, 64,158,255,240,
/* 0x0260 */ 124,137, 3,166,127,163,235,120,127,132,227,120, 56, 0, 0, 91,
/* 0x0270 */ 127,232, 3,166,184,161, 0, 32, 56, 33, 0,144, 78,128, 4, 32,
/* 0x0280 */ 56, 0, 0, 90, 68, 0, 0, 2, 64,163, 0, 8, 56, 96,255,255,
/* 0x0290 */ 78,128, 0, 32, 56, 0, 0, 1, 72, 0, 0, 8, 56, 0, 0, 85,
/* 0x02a0 */ 72, 0, 0, 8, 56, 0, 0, 4, 72, 0, 0, 8, 56, 0, 0, 3,
/* 0x02b0 */ 72, 0, 0, 8, 56, 0, 0, 5, 72, 0, 0, 8, 56, 0, 0, 6,
/* 0x02c0 */ 72, 0, 0, 8, 56, 0, 0,125, 72, 0, 0, 8, 56, 0, 0, 91,
/* 0x02d0 */ 72, 0, 0, 8, 56, 0, 0, 45, 75,255,255,172,124,128, 0, 8,
/* 0x02e0 */ 78,128, 0, 32,148, 33,255,208,124, 8, 2,166,147,225, 0, 44,
/* 0x02f0 */ 144, 1, 0, 52,124, 63, 11,120,144,127, 0, 8,144,159, 0, 12,
/* 0x0300 */ 144,191, 0, 16,129, 63, 0, 8,128, 9, 0, 4,144, 31, 0, 20,
/* 0x0310 */ 128, 31, 0, 12,144, 31, 0, 24,129, 63, 0, 8,129, 41, 0, 0,
/* 0x0320 */ 128, 31, 0, 16,127,137, 0, 64, 64,156, 0, 12, 56, 96, 0,127,
/* 0x0330 */ 75,255,255,101,128, 31, 0, 16,144, 31, 0, 28,129, 63, 0, 28,
/* 0x0340 */ 56, 9,255,255,124, 9, 3,120,145, 63, 0, 28, 56, 0,255,255,
/* 0x0350 */ 127,137, 0, 0, 65,158, 0, 48,129,127, 0, 24,129, 63, 0, 20,
/* 0x0360 */ 136, 9, 0, 0,152, 11, 0, 0,129, 63, 0, 20, 56, 9, 0, 1,
/* 0x0370 */ 144, 31, 0, 20,129, 63, 0, 24, 56, 9, 0, 1,144, 31, 0, 24,
/* 0x0380 */ 75,255,255,188,129,127, 0, 8,129, 63, 0, 8,129, 41, 0, 4,
/* 0x0390 */ 128, 31, 0, 16,124, 9, 2, 20,144, 11, 0, 4,129,127, 0, 8,
/* 0x03a0 */ 129, 63, 0, 8,129, 41, 0, 0,128, 31, 0, 16,124, 0, 72, 80,
/* 0x03b0 */ 144, 11, 0, 0,129, 97, 0, 0,128, 11, 0, 4,124, 8, 3,166,
/* 0x03c0 */ 131,235,255,252,125, 97, 91,120, 78,128, 0, 32,148, 33,255,224,
/* 0x03d0 */ 124, 8, 2,166,147,225, 0, 28,144, 1, 0, 36,124, 63, 11,120,
/* 0x03e0 */ 144,127, 0, 8,128,127, 0, 8, 75,255,254,237,124, 96, 27,120,
/* 0x03f0 */ 124, 3, 3,120,129, 97, 0, 0,128, 11, 0, 4,124, 8, 3,166,
/* 0x0400 */ 131,235,255,252,125, 97, 91,120, 78,128, 0, 32,148, 33,255,176,
/* 0x0410 */ 124, 8, 2,166,147,225, 0, 76,144, 1, 0, 84,124, 63, 11,120,
/* 0x0420 */ 144,127, 0, 8,144,159, 0, 12,144,191, 0, 16,144,223, 0, 20,
/* 0x0430 */ 129, 63, 0, 12,128, 9, 0, 0, 47,128, 0, 0, 65,158, 1,228,
/* 0x0440 */ 56, 31, 0, 32,128,127, 0, 8,124, 4, 3,120, 56,160, 0, 12,
/* 0x0450 */ 75,255,254,149,128, 31, 0, 32, 47,128, 0, 0, 64,158, 0, 48,
/* 0x0460 */ 128, 31, 0, 36, 61, 32, 33, 88, 97, 41, 80, 85,127,128, 72, 0,
/* 0x0470 */ 65,158, 0, 8, 72, 0, 0, 36,129, 63, 0, 8,128, 9, 0, 0,
/* 0x0480 */ 47,128, 0, 0, 65,158, 1,156, 72, 0, 0, 16,128, 31, 0, 36,
/* 0x0490 */ 47,128, 0, 0, 64,158, 0, 12, 56, 96, 0,127, 75,255,253,249,
/* 0x04a0 */ 128, 31, 0, 36,129, 63, 0, 32,127,128, 72, 64, 65,157,255,236,
/* 0x04b0 */ 129, 63, 0, 12,129,127, 0, 32,128, 9, 0, 0,127,139, 0, 64,
/* 0x04c0 */ 65,157,255,216,128, 31, 0, 36,129, 63, 0, 32,127,128, 72, 64,
/* 0x04d0 */ 64,156, 1, 8,128, 31, 0, 32,144, 31, 0, 48,129, 63, 0, 8,
/* 0x04e0 */ 129,127, 0, 12, 57, 95, 0, 48,136, 31, 0, 40, 84, 0, 6, 62,
/* 0x04f0 */ 129, 31, 0, 16,125, 9, 3,166,128,105, 0, 4,128,159, 0, 36,
/* 0x0500 */ 128,171, 0, 4,125, 70, 83,120,124, 7, 3,120, 78,128, 4, 33,
/* 0x0510 */ 124, 96, 27,120,144, 31, 0, 52,128, 31, 0, 52, 47,128, 0, 0,
/* 0x0520 */ 64,158,255,120,128, 31, 0, 32,129, 63, 0, 48,127,128, 72, 0,
/* 0x0530 */ 64,158,255,104,136, 31, 0, 41, 84, 0, 6, 62, 47,128, 0, 0,
/* 0x0540 */ 65,158, 0,100,128, 31, 0, 20, 47,128, 0, 0, 65,158, 0, 88,
/* 0x0550 */ 128, 31, 0, 48, 43,128, 2, 0, 65,157, 0, 28,129, 63, 0, 12,
/* 0x0560 */ 129, 41, 0, 0,128, 31, 0, 32,127,137, 0, 0, 65,158, 0, 8,
/* 0x0570 */ 72, 0, 0, 52,129, 63, 0, 12,136, 31, 0, 42, 84, 11, 6, 62,
/* 0x0580 */ 136, 31, 0, 41, 84, 0, 6, 62,129, 31, 0, 20,125, 9, 3,166,
/* 0x0590 */ 128,105, 0, 4,128,159, 0, 48,125,101, 91,120,124, 6, 3,120,
/* 0x05a0 */ 78,128, 4, 33,129,127, 0, 8,129, 63, 0, 8,129, 41, 0, 4,
/* 0x05b0 */ 128, 31, 0, 36,124, 9, 2, 20,144, 11, 0, 4,129,127, 0, 8,
/* 0x05c0 */ 129, 63, 0, 8,129, 41, 0, 0,128, 31, 0, 36,124, 0, 72, 80,
/* 0x05d0 */ 144, 11, 0, 0, 72, 0, 0, 24,129, 63, 0, 12,128,127, 0, 8,
/* 0x05e0 */ 128,137, 0, 4,128,191, 0, 36, 75,255,252,253,129,127, 0, 12,
/* 0x05f0 */ 129, 63, 0, 12,129, 41, 0, 4,128, 31, 0, 32,124, 9, 2, 20,
/* 0x0600 */ 144, 11, 0, 4,129,127, 0, 12,129, 63, 0, 12,129, 41, 0, 0,
/* 0x0610 */ 128, 31, 0, 32,124, 0, 72, 80,144, 11, 0, 0, 75,255,254, 20,
/* 0x0620 */ 129, 97, 0, 0,128, 11, 0, 4,124, 8, 3,166,131,235,255,252,
/* 0x0630 */ 125, 97, 91,120, 78,128, 0, 32,148, 33,255,224,147,225, 0, 28,
/* 0x0640 */ 124, 63, 11,120,144,127, 0, 8,144,159, 0, 12,144,191, 0, 16,
/* 0x0650 */ 56, 0, 0, 0,144, 31, 0, 20,129, 63, 0, 8,128, 9, 0, 0,
/* 0x0660 */ 47,128, 0, 1, 64,158, 0,196,129, 63, 0, 8,128, 9, 0, 24,
/* 0x0670 */ 84, 0, 7,254, 47,128, 0, 0, 65,158, 0,176,129, 63, 0, 8,
/* 0x0680 */ 129,127, 0, 8,129, 41, 0, 20,128, 11, 0, 8,125, 41, 2, 20,
/* 0x0690 */ 128, 31, 0, 12,124, 9, 2, 20,144, 31, 0, 20,129, 63, 0, 8,
/* 0x06a0 */ 129,127, 0, 8,129, 41, 0, 20,128, 11, 0, 16,127,137, 0, 0,
/* 0x06b0 */ 64,158, 0, 28,128, 31, 0, 20,125, 32, 0,208,128, 31, 0, 16,
/* 0x06c0 */ 125, 32, 0, 56, 43,128, 0, 7, 65,157, 0, 48,129,127, 0, 8,
/* 0x06d0 */ 128, 31, 0, 12, 29, 32, 0, 52,128, 11, 0, 8,125, 41, 2, 20,
/* 0x06e0 */ 56, 9, 0, 8,144, 31, 0, 20,129, 63, 0, 8,128, 9, 0, 4,
/* 0x06f0 */ 47,128, 0, 0, 64,158, 0, 44,129, 63, 0, 20, 60, 0, 68, 0,
/* 0x0700 */ 96, 0, 0, 2,144, 9, 0, 0,129, 63, 0, 20, 57, 41, 0, 4,
/* 0x0710 */ 60, 0, 78,128, 96, 0, 0, 32,144, 9, 0, 0, 72, 0, 0, 12,
/* 0x0720 */ 56, 0, 0, 0,144, 31, 0, 20,128, 31, 0, 20,124, 3, 3,120,
/* 0x0730 */ 129, 97, 0, 0,131,235,255,252,125, 97, 91,120, 78,128, 0, 32,
/* 0x0740 */ 148, 33,255,224,147,225, 0, 28,124, 63, 11,120,144,127, 0, 8,
/* 0x0750 */ 144,159, 0, 12,128, 31, 0, 12, 47,128, 0, 0, 65,158, 0, 52,
/* 0x0760 */ 129, 63, 0, 8,125, 43, 75,120, 56, 0, 0, 0,152, 11, 0, 0,
/* 0x0770 */ 57, 41, 0, 1,145, 63, 0, 8,129, 63, 0, 12, 56, 9,255,255,
/* 0x0780 */ 144, 31, 0, 12, 47,128, 0, 0, 65,158, 0, 8, 75,255,255,212,
/* 0x0790 */ 129, 97, 0, 0,131,235,255,252,125, 97, 91,120, 78,128, 0, 32,
/* 0x07a0 */ 148, 33,255,224,147,225, 0, 28,124, 63, 11,120,144,127, 0, 8,
/* 0x07b0 */ 144,159, 0, 12, 56, 0, 0, 0,144, 31, 0, 16,128, 31, 0, 8,
/* 0x07c0 */ 47,128, 0, 0, 65,158, 0, 76,129, 63, 0, 8,129, 41, 0, 0,
/* 0x07d0 */ 128, 31, 0, 12,127,137, 0, 0, 64,158, 0, 16,128, 31, 0, 8,
/* 0x07e0 */ 144, 31, 0, 20, 72, 0, 0, 52,129, 63, 0, 8,128, 9, 0, 0,
/* 0x07f0 */ 47,128, 0, 1, 64,158, 0, 12,128, 31, 0, 8,144, 31, 0, 16,
/* 0x0800 */ 129, 63, 0, 8, 56, 9, 0, 8,144, 31, 0, 8, 75,255,255,188,
/* 0x0810 */ 56, 0, 0, 0,144, 31, 0, 20,128,127, 0, 20,129, 97, 0, 0,
/* 0x0820 */ 131,235,255,252,125, 97, 91,120, 78,128, 0, 32,148, 33,255,224,
/* 0x0830 */ 124, 8, 2,166,147,225, 0, 28,144, 1, 0, 36,124, 63, 11,120,
/* 0x0840 */ 144,127, 0, 8,144,159, 0, 12,144,191, 0, 16,128,127, 0, 8,
/* 0x0850 */ 128,159, 0, 12, 75,255,255, 77,124, 96, 27,120,144, 31, 0, 8,
/* 0x0860 */ 128, 31, 0, 8, 47,128, 0, 0, 65,158, 0, 16,129, 63, 0, 8,
/* 0x0870 */ 128, 31, 0, 16,144, 9, 0, 4,129, 97, 0, 0,128, 11, 0, 4,
/* 0x0880 */ 124, 8, 3,166,131,235,255,252,125, 97, 91,120, 78,128, 0, 32,
/* 0x0890 */ 148, 33,255,192,124, 8, 2,166,147,225, 0, 60,144, 1, 0, 68,
/* 0x08a0 */ 124, 63, 11,120,144,127, 0, 8,144,159, 0, 12,144,191, 0, 16,
/* 0x08b0 */ 144,223, 0, 20, 75,255,247,205,124, 96, 27,120,144, 31, 0, 24,
/* 0x08c0 */ 56, 0,255,255,144, 31, 0, 28, 56, 0, 0, 0,144, 31, 0, 32,
/* 0x08d0 */ 56, 0, 0, 0,144, 31, 0, 36,129, 63, 0, 16, 56, 9,255,255,
/* 0x08e0 */ 144, 31, 0, 16, 47,128, 0, 0, 65,156, 0,136,129, 63, 0, 12,
/* 0x08f0 */ 128, 9, 0, 0, 47,128, 0, 1, 64,158, 0,104,129, 63, 0, 12,
/* 0x0900 */ 129, 41, 0, 8,128, 31, 0, 28,127,137, 0, 64, 64,156, 0, 28,
/* 0x0910 */ 129, 63, 0, 12,128, 9, 0, 8,144, 31, 0, 28,129, 63, 0, 12,
/* 0x0920 */ 128, 9, 0, 16,144, 31, 0, 36,129, 63, 0, 12,129,127, 0, 12,
/* 0x0930 */ 129, 41, 0, 20,128, 11, 0, 8,125, 41, 2, 20,128, 31, 0, 32,
/* 0x0940 */ 127,137, 0, 64, 64,157, 0, 28,129, 63, 0, 12,129,127, 0, 12,
/* 0x0950 */ 129, 41, 0, 20,128, 11, 0, 8,124, 9, 2, 20,144, 31, 0, 32,
/* 0x0960 */ 129, 63, 0, 12, 56, 9, 0, 32,144, 31, 0, 12, 75,255,255,108,
/* 0x0970 */ 128, 31, 0, 24,124, 9, 0,248,128, 31, 0, 28,125, 41, 0, 56,
/* 0x0980 */ 128, 31, 0, 36,124, 0, 74, 20,144, 31, 0, 36,129, 63, 0, 28,
/* 0x0990 */ 128, 31, 0, 24,125, 32, 0, 56,144, 31, 0, 28,129, 63, 0, 32,
/* 0x09a0 */ 128, 31, 0, 28,125, 32, 72, 80,128, 31, 0, 24,125, 32, 72, 80,
/* 0x09b0 */ 57, 41,255,255,128, 31, 0, 24,125, 32, 0, 56,144, 31, 0, 32,
/* 0x09c0 */ 129, 63, 0, 36,128, 31, 0, 24,125, 32, 72, 80, 57, 41,255,255,
/* 0x09d0 */ 128, 31, 0, 24,125, 32, 0, 56,144, 31, 0, 36,128, 31, 0, 8,
/* 0x09e0 */ 84, 0, 6,246, 47,128, 0, 0, 65,158, 0, 16,128, 31, 0, 28,
/* 0x09f0 */ 144, 31, 0, 40, 72, 0, 0, 44,128, 31, 0, 8, 96, 0, 0, 34,
/* 0x0a00 */ 128,127, 0, 28,128,159, 0, 32, 56,160, 0, 0,124, 6, 3,120,
/* 0x0a10 */ 56,224,255,255, 57, 0, 0, 0, 75,255,248,105,144,127, 0, 40,
/* 0x0a20 */ 129,127, 0, 20,129, 63, 0, 40,128, 31, 0, 32,124, 9, 2, 20,
/* 0x0a30 */ 144, 11, 0, 0,129, 63, 0, 40,128, 31, 0, 28,124, 0, 72, 80,
/* 0x0a40 */ 124, 3, 3,120,129, 97, 0, 0,128, 11, 0, 4,124, 8, 3,166,
/* 0x0a50 */ 131,235,255,252,125, 97, 91,120, 78,128, 0, 32,148, 33,255,144,
/* 0x0a60 */ 124, 8, 2,166,147,225, 0,108,144, 1, 0,116,124, 63, 11,120,
/* 0x0a70 */ 144,127, 0, 8,144,159, 0, 12,144,191, 0, 16,144,223, 0, 20,
/* 0x0a80 */ 144,255, 0, 24,145, 31, 0, 28, 75,255,245,249,124, 96, 27,120,
/* 0x0a90 */ 124, 0, 0,248,144, 31, 0, 32,129, 63, 0, 12,129, 41, 0, 28,
/* 0x0aa0 */ 128, 31, 0, 12,124, 9, 2, 20,144, 31, 0, 36,129, 63, 0, 12,
/* 0x0ab0 */ 160, 9, 0, 16, 84, 0, 4, 62, 47,128, 0, 2, 64,158, 0, 16,
/* 0x0ac0 */ 56, 0, 0, 16,144, 31, 0, 84, 72, 0, 0, 12, 56, 0, 0, 0,
/* 0x0ad0 */ 144, 31, 0, 84,129, 63, 0, 12,160, 9, 0, 44, 84, 0, 4, 62,
/* 0x0ae0 */ 57, 63, 0, 40,128,127, 0, 84,128,159, 0, 36,124, 5, 3,120,
/* 0x0af0 */ 125, 38, 75,120, 75,255,253,157,124, 96, 27,120,144, 31, 0, 44,
/* 0x0b00 */ 56, 0, 0, 0,144, 31, 0, 48,129, 63, 0, 12,160, 9, 0, 44,
/* 0x0b10 */ 84, 9, 4, 62,128, 31, 0, 48,127,137, 0, 0, 64,157, 3, 68,
/* 0x0b20 */ 128, 31, 0, 16, 47,128, 0, 0, 65,158, 0, 56,129, 63, 0, 36,
/* 0x0b30 */ 128, 9, 0, 0, 47,128, 0, 6, 64,158, 0, 40,129, 63, 0, 36,
/* 0x0b40 */ 129, 41, 0, 8,128, 31, 0, 44,124, 9, 2, 20,128,127, 0, 20,
/* 0x0b50 */ 56,128, 0, 3,124, 5, 3,120, 75,255,252,213, 72, 0, 2,232,
/* 0x0b60 */ 129, 63, 0, 36,128, 9, 0, 0, 47,128, 0, 1, 64,158, 2,216,
/* 0x0b70 */ 128, 31, 0, 16, 47,128, 0, 0, 65,158, 0,120,129, 63, 0, 36,
/* 0x0b80 */ 128, 9, 0, 4, 47,128, 0, 0, 64,158, 0,104,129, 63, 0, 36,
/* 0x0b90 */ 129, 41, 0, 8,128, 31, 0, 44,125,105, 2, 20,129, 63, 0, 12,
/* 0x0ba0 */ 128, 9, 0, 28,124, 11, 2, 20,128,127, 0, 20, 56,128, 0, 3,
/* 0x0bb0 */ 124, 5, 3,120, 75,255,252,121,129, 63, 0, 12,160, 9, 0, 44,
/* 0x0bc0 */ 84, 0, 4, 62,128,127, 0, 20, 56,128, 0, 5,124, 5, 3,120,
/* 0x0bd0 */ 75,255,252, 93,129, 63, 0, 12,160, 9, 0, 42, 84, 0, 4, 62,
/* 0x0be0 */ 128,127, 0, 20, 56,128, 0, 4,124, 5, 3,120, 75,255,252, 65,
/* 0x0bf0 */ 129, 63, 0, 36,128, 9, 0, 24, 84, 0, 7,126, 84, 9, 16, 58,
/* 0x0c00 */ 60, 0,115, 81, 96, 0, 98, 64,124, 0, 76, 48, 84, 0, 7,126,
/* 0x0c10 */ 144, 31, 0, 52,129, 63, 0, 36,128, 9, 0, 16,144, 31, 0, 56,
/* 0x0c20 */ 144, 31, 0, 64,129, 63, 0, 36,129, 41, 0, 8,128, 31, 0, 44,
/* 0x0c30 */ 124, 9, 2, 20,144, 31, 0, 60,144, 31, 0, 68,129, 63, 0, 36,
/* 0x0c40 */ 129, 41, 0, 20,128, 31, 0, 68,124, 9, 2, 20,144, 31, 0, 72,
/* 0x0c50 */ 129, 63, 0, 68,128, 31, 0, 32,125, 32, 0, 56,144, 31, 0, 76,
/* 0x0c60 */ 129, 63, 0, 64,128, 31, 0, 76,124, 9, 2, 20,144, 31, 0, 64,
/* 0x0c70 */ 129, 63, 0, 68,128, 31, 0, 76,124, 0, 72, 80,144, 31, 0, 68,
/* 0x0c80 */ 128, 31, 0, 16, 47,128, 0, 0, 65,158, 0,120,128,127, 0, 68,
/* 0x0c90 */ 128,159, 0, 64, 56,160, 0, 3, 56,192, 0, 50, 56,224,255,255,
/* 0x0ca0 */ 57, 0, 0, 0, 75,255,245,221,124, 96, 27,120,129, 63, 0, 68,
/* 0x0cb0 */ 127,128, 72, 0, 65,158, 0, 8, 72, 0, 1, 32, 56, 31, 0, 56,
/* 0x0cc0 */ 144, 31, 0, 88,128, 31, 0, 52, 84, 0, 7,122, 47,128, 0, 0,
/* 0x0cd0 */ 65,158, 0, 16,128, 31, 0, 28,144, 31, 0, 92, 72, 0, 0, 12,
/* 0x0ce0 */ 56, 0, 0, 0,144, 31, 0, 92,128,127, 0, 16,128,159, 0, 88,
/* 0x0cf0 */ 128,191, 0, 8,128,223, 0, 92, 75,255,247, 21, 72, 0, 0, 68,
/* 0x0d00 */ 129, 63, 0, 36,129, 41, 0, 4,128, 31, 0, 76,124, 0, 72, 80,
/* 0x0d10 */ 128,127, 0, 68,128,159, 0, 64,128,191, 0, 52, 56,192, 0, 18,
/* 0x0d20 */ 128,255, 0, 8,124, 8, 3,120, 75,255,245, 89,124,105, 27,120,
/* 0x0d30 */ 128, 31, 0, 68,127,137, 0, 0, 65,158, 0, 8, 72, 0, 0,156,
/* 0x0d40 */ 128, 31, 0, 64,125, 32, 0,208,128, 31, 0, 32,125, 32, 0, 56,
/* 0x0d50 */ 144, 31, 0, 76,128, 31, 0, 52, 84, 0, 7,188, 47,128, 0, 0,
/* 0x0d60 */ 65,158, 0, 28,128, 31, 0, 68,129, 63, 0, 64,124, 0, 74, 20,
/* 0x0d70 */ 124, 3, 3,120,128,159, 0, 76, 75,255,249,201,128, 31, 0, 16,
/* 0x0d80 */ 47,128, 0, 0, 65,158, 0, 92,128,127, 0, 36,128,159, 0, 44,
/* 0x0d90 */ 128,191, 0, 32, 75,255,248,165,124, 96, 27,120,144, 31, 0, 80,
/* 0x0da0 */ 128, 31, 0, 80, 47,128, 0, 0, 65,158, 0, 20,128,127, 0, 20,
/* 0x0db0 */ 56,128, 0, 0,128,191, 0, 80, 75,255,250,117,128,127, 0, 68,
/* 0x0dc0 */ 128,159, 0, 64,128,191, 0, 52, 75,255,244,253,124, 96, 27,120,
/* 0x0dd0 */ 47,128, 0, 0, 65,158, 0, 12, 56, 96, 0,127, 75,255,244,185,
/* 0x0de0 */ 129, 63, 0, 64,128, 31, 0, 76,125, 41, 2, 20,128, 31, 0, 68,
/* 0x0df0 */ 124, 0, 74, 20,144, 31, 0, 68,129, 63, 0, 68,128, 31, 0, 72,
/* 0x0e00 */ 127,137, 0, 64, 64,156, 0, 64,129, 63, 0, 72,128, 31, 0, 68,
/* 0x0e10 */ 124, 0, 72, 80,128,127, 0, 68,124, 4, 3,120,128,191, 0, 52,
/* 0x0e20 */ 56,192, 0, 50, 56,224,255,255, 57, 0, 0, 0, 75,255,244, 85,
/* 0x0e30 */ 124,105, 27,120,128, 31, 0, 68,127,137, 0, 0, 65,158, 0, 8,
/* 0x0e40 */ 75,255,255,152,129, 63, 0, 36, 56, 9, 0, 32,144, 31, 0, 36,
/* 0x0e50 */ 129, 63, 0, 48, 56, 9, 0, 1,144, 31, 0, 48, 75,255,252,172,
/* 0x0e60 */ 128, 31, 0, 16, 47,128, 0, 0, 65,158, 0, 32,129, 63, 0, 12,
/* 0x0e70 */ 160, 9, 0, 16, 84, 0, 4, 62, 47,128, 0, 3, 65,158, 0, 12,
/* 0x0e80 */ 128,127, 0, 40, 75,255,245, 73,128, 31, 0, 24, 47,128, 0, 0,
/* 0x0e90 */ 65,158, 0, 16,129, 63, 0, 24,128, 31, 0, 44,144, 9, 0, 0,
/* 0x0ea0 */ 129, 63, 0, 12,129, 41, 0, 24,128, 31, 0, 44,124, 9, 2, 20,
/* 0x0eb0 */ 124, 3, 3,120,129, 97, 0, 0,128, 11, 0, 4,124, 8, 3,166,
/* 0x0ec0 */ 131,235,255,252,125, 97, 91,120, 78,128, 0, 32,148, 33,255,160,
/* 0x0ed0 */ 124, 8, 2,166,147,225, 0, 92,144, 1, 0,100,124, 63, 11,120,
/* 0x0ee0 */ 144,127, 0, 8,144,159, 0, 12,144,191, 0, 16,144,223, 0, 20,
/* 0x0ef0 */ 144,255, 0, 24,145, 31, 0, 28,145, 63, 0, 32,129, 63, 0, 8,
/* 0x0f00 */ 129, 41, 0, 4, 56, 9, 0, 12,144, 31, 0, 36,128, 31, 0, 16,
/* 0x0f10 */ 144, 31, 0, 44,129, 63, 0, 8,128, 9, 0, 0,144, 31, 0, 40,
/* 0x0f20 */ 128, 31, 0, 8,144, 31, 0, 52,128, 31, 0, 12,144, 31, 0, 48,
/* 0x0f30 */ 56, 31, 0, 48, 57, 63, 0, 40,124, 3, 3,120,125, 36, 75,120,
/* 0x0f40 */ 128,191, 0, 24, 56,192, 0, 0, 75,255,244,197,129, 63, 0, 52,
/* 0x0f50 */ 128, 31, 0, 36,124, 0, 72, 80,144, 31, 0, 52,128, 31, 0, 12,
/* 0x0f60 */ 144, 31, 0, 48,128, 31, 0, 32,144, 31, 0, 56,129, 63, 0, 16,
/* 0x0f70 */ 56, 9, 0, 52,144, 31, 0, 60,129, 63, 0, 16,160, 9, 0, 16,
/* 0x0f80 */ 84, 0, 4, 62,144, 31, 0, 64, 56, 31, 0, 48, 57, 63, 0, 56,
/* 0x0f90 */ 128,127, 0, 24,128,159, 0, 16,124, 5, 3,120,128,223, 0, 20,
/* 0x0fa0 */ 125, 39, 75,120,129, 31, 0, 28, 75,255,250,181,124, 96, 27,120,
/* 0x0fb0 */ 144, 31, 0, 68,128,127, 0, 20, 56,128, 0, 9,128,191, 0, 68,
/* 0x0fc0 */ 75,255,248,109, 56, 0, 0, 0,144, 31, 0, 72,129, 63, 0, 16,
/* 0x0fd0 */ 56, 9, 0, 52,144, 31, 0, 60,129, 63, 0, 16,160, 9, 0, 44,
/* 0x0fe0 */ 84, 9, 4, 62,128, 31, 0, 72,127,137, 0, 0, 64,157, 0,208,
/* 0x0ff0 */ 129, 63, 0, 60,128, 9, 0, 0, 47,128, 0, 3, 64,158, 0,164,
/* 0x1000 */ 129, 63, 0, 60,129, 41, 0, 8,128, 31, 0, 56,124, 9, 2, 20,
/* 0x1010 */ 124, 3, 3,120, 56,128, 0, 0, 56,160, 0, 0, 75,255,242,153,
/* 0x1020 */ 124, 96, 27,120,144, 31, 0, 76,128, 31, 0, 76, 47,128, 0, 0,
/* 0x1030 */ 64,156, 0, 8, 72, 0, 0, 32,128,127, 0, 76,128,159, 0, 16,
/* 0x1040 */ 56,160, 2, 0, 75,255,242,105,124, 96, 27,120, 47,128, 2, 0,
/* 0x1050 */ 65,158, 0, 12, 56, 96, 0,127, 75,255,242, 61, 56, 31, 0, 56,
/* 0x1060 */ 128,127, 0, 76,128,159, 0, 16, 56,160, 0, 0,128,223, 0, 20,
/* 0x1070 */ 124, 7, 3,120, 57, 0, 0, 0, 75,255,249,229,124, 96, 27,120,
/* 0x1080 */ 144, 31, 0, 68,128,127, 0, 20, 56,128, 0, 7,128,191, 0, 56,
/* 0x1090 */ 75,255,247,157,128,127, 0, 76, 75,255,242, 37, 72, 0, 0, 32,
/* 0x10a0 */ 129, 63, 0, 60, 56, 9, 0, 32,144, 31, 0, 60,129, 63, 0, 72,
/* 0x10b0 */ 56, 9, 0, 1,144, 31, 0, 72, 75,255,255, 32,128, 31, 0, 68,
/* 0x10c0 */ 124, 3, 3,120,129, 97, 0, 0,128, 11, 0, 4,124, 8, 3,166,
/* 0x10d0 */ 131,235,255,252,125, 97, 91,120, 78,128, 0, 32
/* 0x0100 */ 99, 47,115,101,108,102, 47,101,120,101, 0, 0,126,200, 2,166,
/* 0x0110 */ 56,129,255,252, 56, 33,239,252, 56, 97,255,252, 59, 90,255,252,
/* 0x0120 */ 132, 4, 0, 4,127,132,208, 64,148, 3, 0, 4, 65,156,255,244,
/* 0x0130 */ 59, 67, 0, 8,148, 3, 0, 4,128, 4, 0, 4, 43,128, 0, 0,
/* 0x0140 */ 144, 3, 0, 4,132, 4, 0, 8,148, 3, 0, 8, 64,158,255,236,
/* 0x0150 */ 58,163, 0, 4,126,154,168, 80,128, 22, 0,100, 58,100, 0, 4,
/* 0x0160 */ 148, 3, 0, 4, 58, 67, 0, 4, 56,160, 15,255,126, 68,147,120,
/* 0x0170 */ 56,118, 0,104, 72, 0, 1, 29, 56,178,255,252, 44, 3, 0, 0,
/* 0x0180 */ 65,129, 0, 12, 56,182, 0,100, 56, 96, 0, 16, 56, 99, 0, 4,
/* 0x0190 */ 124,133, 26, 20,124,105, 3,166,126, 99,155,120, 56,160, 0, 0,
/* 0x01a0 */ 156,163,255,255,140, 4,255,255,156, 3,255,255, 66, 0,255,248,
/* 0x01b0 */ 144,122,255,248, 84, 99, 0, 58,124, 32, 34,120,124, 0, 26,120,
/* 0x01c0 */ 84, 0, 7,126,124, 96, 24, 80,126,164,171,120,127, 84, 24, 80,
/* 0x01d0 */ 132, 4,255,252,127,132, 8, 64,148, 3,255,252, 65,157,255,244,
/* 0x01e0 */ 124, 97, 27,120,148, 33,247,240,127, 3,195,120,126,228,187,120,
/* 0x01f0 */ 56,161, 0, 16,127, 70,211,120,127,231,251,120,126,200,179,120,
/* 0x0200 */ 127, 41,203,120, 72, 0, 12, 61, 56, 33, 8, 16,124,127, 27,120,
/* 0x0210 */ 57, 0, 0, 0,127,103,219,120, 56,192, 0, 2, 56,160, 0, 1,
/* 0x0220 */ 124,158, 0,208, 56, 96, 0, 0, 72, 0, 0, 69,127, 99,219,120,
/* 0x0230 */ 72, 0, 0,129,127, 67,211,120,128, 3, 0, 0,128,131, 0, 4,
/* 0x0240 */ 56, 99, 0, 8, 43,128, 0, 0, 64,158,255,240,124,137, 3,166,
/* 0x0250 */ 127,163,235,120,127,132,227,120, 56, 0, 0, 91,127,232, 3,166,
/* 0x0260 */ 184,161, 0, 32, 56, 33, 0,144, 78,128, 4, 32, 56, 0, 0, 90,
/* 0x0270 */ 68, 0, 0, 2, 64,163, 0, 8, 56, 96,255,255, 78,128, 0, 32,
/* 0x0280 */ 56, 0, 0, 1, 72, 0, 0, 8, 56, 0, 0, 45, 72, 0, 0, 8,
/* 0x0290 */ 56, 0, 0, 85, 72, 0, 0, 8, 56, 0, 0, 4, 72, 0, 0, 8,
/* 0x02a0 */ 56, 0, 0, 3, 72, 0, 0, 8, 56, 0, 0, 5, 72, 0, 0, 8,
/* 0x02b0 */ 56, 0, 0, 6, 72, 0, 0, 8, 56, 0, 0,125, 72, 0, 0, 8,
/* 0x02c0 */ 56, 0, 0, 91, 75,255,255,172,124,128, 0, 8, 78,128, 0, 32,
/* 0x02d0 */ 148, 33,255,208,124, 8, 2,166,147,225, 0, 44,144, 1, 0, 52,
/* 0x02e0 */ 124, 63, 11,120,144,127, 0, 8,144,159, 0, 12,144,191, 0, 16,
/* 0x02f0 */ 129, 63, 0, 8,128, 9, 0, 4,144, 31, 0, 20,128, 31, 0, 12,
/* 0x0300 */ 144, 31, 0, 24,129, 63, 0, 8,129, 41, 0, 0,128, 31, 0, 16,
/* 0x0310 */ 127,137, 0, 64, 64,156, 0, 12, 56, 96, 0,127, 75,255,255,101,
/* 0x0320 */ 128, 31, 0, 16,144, 31, 0, 28,129, 63, 0, 28, 56, 9,255,255,
/* 0x0330 */ 124, 9, 3,120,145, 63, 0, 28, 56, 0,255,255,127,137, 0, 0,
/* 0x0340 */ 65,158, 0, 48,129,127, 0, 24,129, 63, 0, 20,136, 9, 0, 0,
/* 0x0350 */ 152, 11, 0, 0,129, 63, 0, 20, 56, 9, 0, 1,144, 31, 0, 20,
/* 0x0360 */ 129, 63, 0, 24, 56, 9, 0, 1,144, 31, 0, 24, 75,255,255,188,
/* 0x0370 */ 129,127, 0, 8,129, 63, 0, 8,129, 41, 0, 4,128, 31, 0, 16,
/* 0x0380 */ 124, 9, 2, 20,144, 11, 0, 4,129,127, 0, 8,129, 63, 0, 8,
/* 0x0390 */ 129, 41, 0, 0,128, 31, 0, 16,124, 0, 72, 80,144, 11, 0, 0,
/* 0x03a0 */ 129, 97, 0, 0,128, 11, 0, 4,124, 8, 3,166,131,235,255,252,
/* 0x03b0 */ 125, 97, 91,120, 78,128, 0, 32,148, 33,255,224,124, 8, 2,166,
/* 0x03c0 */ 147,225, 0, 28,144, 1, 0, 36,124, 63, 11,120,144,127, 0, 8,
/* 0x03d0 */ 128,127, 0, 8, 75,255,254,181,124, 96, 27,120,124, 3, 3,120,
/* 0x03e0 */ 129, 97, 0, 0,128, 11, 0, 4,124, 8, 3,166,131,235,255,252,
/* 0x03f0 */ 125, 97, 91,120, 78,128, 0, 32,148, 33,255,176,124, 8, 2,166,
/* 0x0400 */ 147,225, 0, 76,144, 1, 0, 84,124, 63, 11,120,144,127, 0, 8,
/* 0x0410 */ 144,159, 0, 12,144,191, 0, 16,144,223, 0, 20,129, 63, 0, 12,
/* 0x0420 */ 128, 9, 0, 0, 47,128, 0, 0, 65,158, 1,228, 56, 31, 0, 32,
/* 0x0430 */ 128,127, 0, 8,124, 4, 3,120, 56,160, 0, 12, 75,255,254,149,
/* 0x0440 */ 128, 31, 0, 32, 47,128, 0, 0, 64,158, 0, 48,128, 31, 0, 36,
/* 0x0450 */ 61, 32, 33, 88, 97, 41, 80, 85,127,128, 72, 0, 65,158, 0, 8,
/* 0x0460 */ 72, 0, 0, 36,129, 63, 0, 8,128, 9, 0, 0, 47,128, 0, 0,
/* 0x0470 */ 65,158, 1,156, 72, 0, 0, 16,128, 31, 0, 36, 47,128, 0, 0,
/* 0x0480 */ 64,158, 0, 12, 56, 96, 0,127, 75,255,253,249,128, 31, 0, 36,
/* 0x0490 */ 129, 63, 0, 32,127,128, 72, 64, 65,157,255,236,129, 63, 0, 12,
/* 0x04a0 */ 129,127, 0, 32,128, 9, 0, 0,127,139, 0, 64, 65,157,255,216,
/* 0x04b0 */ 128, 31, 0, 36,129, 63, 0, 32,127,128, 72, 64, 64,156, 1, 8,
/* 0x04c0 */ 128, 31, 0, 32,144, 31, 0, 48,129, 63, 0, 8,129,127, 0, 12,
/* 0x04d0 */ 57, 95, 0, 48,136, 31, 0, 40, 84, 0, 6, 62,129, 31, 0, 16,
/* 0x04e0 */ 125, 9, 3,166,128,105, 0, 4,128,159, 0, 36,128,171, 0, 4,
/* 0x04f0 */ 125, 70, 83,120,124, 7, 3,120, 78,128, 4, 33,124, 96, 27,120,
/* 0x0500 */ 144, 31, 0, 52,128, 31, 0, 52, 47,128, 0, 0, 64,158,255,120,
/* 0x0510 */ 128, 31, 0, 32,129, 63, 0, 48,127,128, 72, 0, 64,158,255,104,
/* 0x0520 */ 136, 31, 0, 41, 84, 0, 6, 62, 47,128, 0, 0, 65,158, 0,100,
/* 0x0530 */ 128, 31, 0, 20, 47,128, 0, 0, 65,158, 0, 88,128, 31, 0, 48,
/* 0x0540 */ 43,128, 2, 0, 65,157, 0, 28,129, 63, 0, 12,129, 41, 0, 0,
/* 0x0550 */ 128, 31, 0, 32,127,137, 0, 0, 65,158, 0, 8, 72, 0, 0, 52,
/* 0x0560 */ 129, 63, 0, 12,136, 31, 0, 42, 84, 11, 6, 62,136, 31, 0, 41,
/* 0x0570 */ 84, 0, 6, 62,129, 31, 0, 20,125, 9, 3,166,128,105, 0, 4,
/* 0x0580 */ 128,159, 0, 48,125,101, 91,120,124, 6, 3,120, 78,128, 4, 33,
/* 0x0590 */ 129,127, 0, 8,129, 63, 0, 8,129, 41, 0, 4,128, 31, 0, 36,
/* 0x05a0 */ 124, 9, 2, 20,144, 11, 0, 4,129,127, 0, 8,129, 63, 0, 8,
/* 0x05b0 */ 129, 41, 0, 0,128, 31, 0, 36,124, 0, 72, 80,144, 11, 0, 0,
/* 0x05c0 */ 72, 0, 0, 24,129, 63, 0, 12,128,127, 0, 8,128,137, 0, 4,
/* 0x05d0 */ 128,191, 0, 36, 75,255,252,253,129,127, 0, 12,129, 63, 0, 12,
/* 0x05e0 */ 129, 41, 0, 4,128, 31, 0, 32,124, 9, 2, 20,144, 11, 0, 4,
/* 0x05f0 */ 129,127, 0, 12,129, 63, 0, 12,129, 41, 0, 0,128, 31, 0, 32,
/* 0x0600 */ 124, 0, 72, 80,144, 11, 0, 0, 75,255,254, 20,129, 97, 0, 0,
/* 0x0610 */ 128, 11, 0, 4,124, 8, 3,166,131,235,255,252,125, 97, 91,120,
/* 0x0620 */ 78,128, 0, 32,148, 33,255,224,147,225, 0, 28,124, 63, 11,120,
/* 0x0630 */ 144,127, 0, 8,144,159, 0, 12,144,191, 0, 16, 56, 0, 0, 0,
/* 0x0640 */ 144, 31, 0, 20,129, 63, 0, 8,128, 9, 0, 0, 47,128, 0, 1,
/* 0x0650 */ 64,158, 0,196,129, 63, 0, 8,128, 9, 0, 24, 84, 0, 7,254,
/* 0x0660 */ 47,128, 0, 0, 65,158, 0,176,129, 63, 0, 8,129,127, 0, 8,
/* 0x0670 */ 129, 41, 0, 20,128, 11, 0, 8,125, 41, 2, 20,128, 31, 0, 12,
/* 0x0680 */ 124, 9, 2, 20,144, 31, 0, 20,129, 63, 0, 8,129,127, 0, 8,
/* 0x0690 */ 129, 41, 0, 20,128, 11, 0, 16,127,137, 0, 0, 64,158, 0, 28,
/* 0x06a0 */ 128, 31, 0, 20,125, 32, 0,208,128, 31, 0, 16,125, 32, 0, 56,
/* 0x06b0 */ 43,128, 0, 7, 65,157, 0, 48,129,127, 0, 8,128, 31, 0, 12,
/* 0x06c0 */ 29, 32, 0, 52,128, 11, 0, 8,125, 41, 2, 20, 56, 9, 0, 8,
/* 0x06d0 */ 144, 31, 0, 20,129, 63, 0, 8,128, 9, 0, 4, 47,128, 0, 0,
/* 0x06e0 */ 64,158, 0, 44,129, 63, 0, 20, 60, 0, 68, 0, 96, 0, 0, 2,
/* 0x06f0 */ 144, 9, 0, 0,129, 63, 0, 20, 57, 41, 0, 4, 60, 0, 78,128,
/* 0x0700 */ 96, 0, 0, 32,144, 9, 0, 0, 72, 0, 0, 12, 56, 0, 0, 0,
/* 0x0710 */ 144, 31, 0, 20,128, 31, 0, 20,124, 3, 3,120,129, 97, 0, 0,
/* 0x0720 */ 131,235,255,252,125, 97, 91,120, 78,128, 0, 32,148, 33,255,224,
/* 0x0730 */ 147,225, 0, 28,124, 63, 11,120,144,127, 0, 8,144,159, 0, 12,
/* 0x0740 */ 128, 31, 0, 12, 47,128, 0, 0, 65,158, 0, 52,129, 63, 0, 8,
/* 0x0750 */ 125, 43, 75,120, 56, 0, 0, 0,152, 11, 0, 0, 57, 41, 0, 1,
/* 0x0760 */ 145, 63, 0, 8,129, 63, 0, 12, 56, 9,255,255,144, 31, 0, 12,
/* 0x0770 */ 47,128, 0, 0, 65,158, 0, 8, 75,255,255,212,129, 97, 0, 0,
/* 0x0780 */ 131,235,255,252,125, 97, 91,120, 78,128, 0, 32,148, 33,255,224,
/* 0x0790 */ 147,225, 0, 28,124, 63, 11,120,144,127, 0, 8,144,159, 0, 12,
/* 0x07a0 */ 56, 0, 0, 0,144, 31, 0, 16,128, 31, 0, 8, 47,128, 0, 0,
/* 0x07b0 */ 65,158, 0, 76,129, 63, 0, 8,129, 41, 0, 0,128, 31, 0, 12,
/* 0x07c0 */ 127,137, 0, 0, 64,158, 0, 16,128, 31, 0, 8,144, 31, 0, 20,
/* 0x07d0 */ 72, 0, 0, 52,129, 63, 0, 8,128, 9, 0, 0, 47,128, 0, 1,
/* 0x07e0 */ 64,158, 0, 12,128, 31, 0, 8,144, 31, 0, 16,129, 63, 0, 8,
/* 0x07f0 */ 56, 9, 0, 8,144, 31, 0, 8, 75,255,255,188, 56, 0, 0, 0,
/* 0x0800 */ 144, 31, 0, 20,128,127, 0, 20,129, 97, 0, 0,131,235,255,252,
/* 0x0810 */ 125, 97, 91,120, 78,128, 0, 32,148, 33,255,224,124, 8, 2,166,
/* 0x0820 */ 147,225, 0, 28,144, 1, 0, 36,124, 63, 11,120,144,127, 0, 8,
/* 0x0830 */ 144,159, 0, 12,144,191, 0, 16,128,127, 0, 8,128,159, 0, 12,
/* 0x0840 */ 75,255,255, 77,124, 96, 27,120,144, 31, 0, 8,128, 31, 0, 8,
/* 0x0850 */ 47,128, 0, 0, 65,158, 0, 16,129, 63, 0, 8,128, 31, 0, 16,
/* 0x0860 */ 144, 9, 0, 4,129, 97, 0, 0,128, 11, 0, 4,124, 8, 3,166,
/* 0x0870 */ 131,235,255,252,125, 97, 91,120, 78,128, 0, 32,148, 33,255,192,
/* 0x0880 */ 124, 8, 2,166,147,225, 0, 60,144, 1, 0, 68,124, 63, 11,120,
/* 0x0890 */ 144,127, 0, 8,144,159, 0, 12,144,191, 0, 16,144,223, 0, 20,
/* 0x08a0 */ 144,255, 0, 24, 75,255,247,221,124, 96, 27,120,144, 31, 0, 28,
/* 0x08b0 */ 56, 0,255,255,144, 31, 0, 32, 56, 0, 0, 0,144, 31, 0, 36,
/* 0x08c0 */ 56, 0, 0, 0,144, 31, 0, 40,129, 63, 0, 16, 56, 9,255,255,
/* 0x08d0 */ 144, 31, 0, 16, 47,128, 0, 0, 65,156, 0,124,129, 63, 0, 12,
/* 0x08e0 */ 128, 9, 0, 0, 47,128, 0, 1, 64,158, 0, 92,129, 63, 0, 12,
/* 0x08f0 */ 129, 41, 0, 8,128, 31, 0, 32,127,137, 0, 64, 64,156, 0, 16,
/* 0x0900 */ 129, 63, 0, 12,128, 9, 0, 8,144, 31, 0, 32,129, 63, 0, 12,
/* 0x0910 */ 129,127, 0, 12,129, 41, 0, 20,128, 11, 0, 8,125, 41, 2, 20,
/* 0x0920 */ 128, 31, 0, 36,127,137, 0, 64, 64,157, 0, 28,129, 63, 0, 12,
/* 0x0930 */ 129,127, 0, 12,129, 41, 0, 20,128, 11, 0, 8,124, 9, 2, 20,
/* 0x0940 */ 144, 31, 0, 36,129, 63, 0, 12, 56, 9, 0, 32,144, 31, 0, 12,
/* 0x0950 */ 75,255,255,120,129, 63, 0, 32,128, 31, 0, 28,125, 32, 0, 56,
/* 0x0960 */ 144, 31, 0, 32,129, 63, 0, 36,128, 31, 0, 32,125, 32, 72, 80,
/* 0x0970 */ 128, 31, 0, 28,125, 32, 72, 80, 57, 41,255,255,128, 31, 0, 28,
/* 0x0980 */ 125, 32, 0, 56,144, 31, 0, 36,128, 31, 0, 8, 84, 0, 6,246,
/* 0x0990 */ 47,128, 0, 0, 65,158, 0, 16,128, 31, 0, 32,144, 31, 0, 40,
/* 0x09a0 */ 72, 0, 0, 48,128, 31, 0, 32, 47,128, 0, 0, 64,158, 0, 36,
/* 0x09b0 */ 128, 31, 0, 24,144, 31, 0, 40,128, 31, 0, 40, 47,128, 0, 0,
/* 0x09c0 */ 65,158, 0, 16,128, 31, 0, 8, 96, 0, 0, 16,144, 31, 0, 8,
/* 0x09d0 */ 128, 31, 0, 8, 96, 0, 0, 34,128,127, 0, 40,128,159, 0, 36,
/* 0x09e0 */ 56,160, 0, 0,124, 6, 3,120, 56,224,255,255, 57, 0, 0, 0,
/* 0x09f0 */ 75,255,248,125,144,127, 0, 40,129,127, 0, 20,129, 63, 0, 36,
/* 0x0a00 */ 128, 31, 0, 40,124, 9, 2, 20,144, 11, 0, 0,129, 63, 0, 40,
/* 0x0a10 */ 128, 31, 0, 32,124, 0, 72, 80,124, 3, 3,120,129, 97, 0, 0,
/* 0x0a20 */ 128, 11, 0, 4,124, 8, 3,166,131,235,255,252,125, 97, 91,120,
/* 0x0a30 */ 78,128, 0, 32,148, 33,255,144,124, 8, 2,166,147,225, 0,108,
/* 0x0a40 */ 144, 1, 0,116,124, 63, 11,120,144,127, 0, 8,144,159, 0, 12,
/* 0x0a50 */ 144,191, 0, 16,144,223, 0, 20,144,255, 0, 24,145, 31, 0, 28,
/* 0x0a60 */ 145, 63, 0, 32, 75,255,246, 29,124, 96, 27,120,124, 0, 0,248,
/* 0x0a70 */ 144, 31, 0, 36,129, 63, 0, 12,129, 41, 0, 28,128, 31, 0, 12,
/* 0x0a80 */ 124, 9, 2, 20,144, 31, 0, 40,129, 63, 0, 12,160, 9, 0, 16,
/* 0x0a90 */ 84, 0, 4, 62, 47,128, 0, 2, 64,158, 0, 16, 56, 0, 0, 16,
/* 0x0aa0 */ 144, 31, 0, 92, 72, 0, 0, 12, 56, 0, 0, 0,144, 31, 0, 92,
/* 0x0ab0 */ 129, 63, 0, 12,160, 9, 0, 44, 84, 0, 4, 62, 57, 63, 0, 44,
/* 0x0ac0 */ 128,127, 0, 92,128,159, 0, 40,124, 5, 3,120,125, 38, 75,120,
/* 0x0ad0 */ 128,255, 0, 32, 75,255,253,169,124, 96, 27,120,144, 31, 0, 48,
/* 0x0ae0 */ 56, 0, 0, 0,144, 31, 0, 52,129, 63, 0, 12,160, 9, 0, 44,
/* 0x0af0 */ 84, 9, 4, 62,128, 31, 0, 52,127,137, 0, 0, 64,157, 2,216,
/* 0x0b00 */ 129, 63, 0, 40,128, 9, 0, 0, 47,128, 0, 1, 64,158, 2,172,
/* 0x0b10 */ 128, 31, 0, 16, 47,128, 0, 0, 65,158, 0, 76,129, 63, 0, 40,
/* 0x0b20 */ 128, 9, 0, 4, 47,128, 0, 0, 64,158, 0, 60,129, 63, 0, 12,
/* 0x0b30 */ 160, 9, 0, 44, 84, 0, 4, 62,128,127, 0, 20, 56,128, 0, 5,
/* 0x0b40 */ 124, 5, 3,120, 75,255,252,213,129, 63, 0, 12,160, 9, 0, 42,
/* 0x0b50 */ 84, 0, 4, 62,128,127, 0, 20, 56,128, 0, 4,124, 5, 3,120,
/* 0x0b60 */ 75,255,252,185,129, 63, 0, 40,128, 9, 0, 24, 84, 0, 7,126,
/* 0x0b70 */ 84, 9, 16, 58, 60, 0,115, 81, 96, 0, 98, 64,124, 0, 76, 48,
/* 0x0b80 */ 84, 0, 7,126,144, 31, 0, 56,129, 63, 0, 40,128, 9, 0, 16,
/* 0x0b90 */ 144, 31, 0, 64,144, 31, 0, 72,129, 63, 0, 40,129, 41, 0, 8,
/* 0x0ba0 */ 128, 31, 0, 48,124, 9, 2, 20,144, 31, 0, 68,144, 31, 0, 76,
/* 0x0bb0 */ 129, 63, 0, 40,129, 41, 0, 20,128, 31, 0, 76,124, 9, 2, 20,
/* 0x0bc0 */ 144, 31, 0, 80,129, 63, 0, 76,128, 31, 0, 36,125, 32, 0, 56,
/* 0x0bd0 */ 144, 31, 0, 84,129, 63, 0, 72,128, 31, 0, 84,124, 9, 2, 20,
/* 0x0be0 */ 144, 31, 0, 72,129, 63, 0, 76,128, 31, 0, 84,124, 0, 72, 80,
/* 0x0bf0 */ 144, 31, 0, 76,128, 31, 0, 16, 47,128, 0, 0, 65,158, 0,120,
/* 0x0c00 */ 128,127, 0, 76,128,159, 0, 72, 56,160, 0, 3, 56,192, 0, 50,
/* 0x0c10 */ 56,224,255,255, 57, 0, 0, 0, 75,255,246, 85,124, 96, 27,120,
/* 0x0c20 */ 129, 63, 0, 76,127,128, 72, 0, 65,158, 0, 8, 72, 0, 1, 32,
/* 0x0c30 */ 56, 31, 0, 64,144, 31, 0, 96,128, 31, 0, 56, 84, 0, 7,122,
/* 0x0c40 */ 47,128, 0, 0, 65,158, 0, 16,128, 31, 0, 28,144, 31, 0,100,
/* 0x0c50 */ 72, 0, 0, 12, 56, 0, 0, 0,144, 31, 0,100,128,127, 0, 16,
/* 0x0c60 */ 128,159, 0, 96,128,191, 0, 8,128,223, 0,100, 75,255,247,141,
/* 0x0c70 */ 72, 0, 0, 68,129, 63, 0, 40,129, 41, 0, 4,128, 31, 0, 84,
/* 0x0c80 */ 124, 0, 72, 80,128,127, 0, 76,128,159, 0, 72,128,191, 0, 56,
/* 0x0c90 */ 56,192, 0, 18,128,255, 0, 8,124, 8, 3,120, 75,255,245,209,
/* 0x0ca0 */ 124,105, 27,120,128, 31, 0, 76,127,137, 0, 0, 65,158, 0, 8,
/* 0x0cb0 */ 72, 0, 0,156,128, 31, 0, 72,125, 32, 0,208,128, 31, 0, 36,
/* 0x0cc0 */ 125, 32, 0, 56,144, 31, 0, 84,128, 31, 0, 56, 84, 0, 7,188,
/* 0x0cd0 */ 47,128, 0, 0, 65,158, 0, 28,128, 31, 0, 76,129, 63, 0, 72,
/* 0x0ce0 */ 124, 0, 74, 20,124, 3, 3,120,128,159, 0, 84, 75,255,250, 65,
/* 0x0cf0 */ 128, 31, 0, 16, 47,128, 0, 0, 65,158, 0, 92,128,127, 0, 40,
/* 0x0d00 */ 128,159, 0, 48,128,191, 0, 36, 75,255,249, 29,124, 96, 27,120,
/* 0x0d10 */ 144, 31, 0, 88,128, 31, 0, 88, 47,128, 0, 0, 65,158, 0, 20,
/* 0x0d20 */ 128,127, 0, 20, 56,128, 0, 0,128,191, 0, 88, 75,255,250,237,
/* 0x0d30 */ 128,127, 0, 76,128,159, 0, 72,128,191, 0, 56, 75,255,245,125,
/* 0x0d40 */ 124, 96, 27,120, 47,128, 0, 0, 65,158, 0, 12, 56, 96, 0,127,
/* 0x0d50 */ 75,255,245, 49,129, 63, 0, 72,128, 31, 0, 84,125, 41, 2, 20,
/* 0x0d60 */ 128, 31, 0, 76,124, 0, 74, 20,144, 31, 0, 76,129, 63, 0, 76,
/* 0x0d70 */ 128, 31, 0, 80,127,137, 0, 64, 64,156, 0, 64,129, 63, 0, 80,
/* 0x0d80 */ 128, 31, 0, 76,124, 0, 72, 80,128,127, 0, 76,124, 4, 3,120,
/* 0x0d90 */ 128,191, 0, 56, 56,192, 0, 50, 56,224,255,255, 57, 0, 0, 0,
/* 0x0da0 */ 75,255,244,205,124,105, 27,120,128, 31, 0, 76,127,137, 0, 0,
/* 0x0db0 */ 65,158, 0, 8, 72, 0, 0, 0,129, 63, 0, 40, 56, 9, 0, 32,
/* 0x0dc0 */ 144, 31, 0, 40,129, 63, 0, 52, 56, 9, 0, 1,144, 31, 0, 52,
/* 0x0dd0 */ 75,255,253, 24,128, 31, 0, 16, 47,128, 0, 0, 65,158, 0, 32,
/* 0x0de0 */ 129, 63, 0, 12,160, 9, 0, 16, 84, 0, 4, 62, 47,128, 0, 3,
/* 0x0df0 */ 65,158, 0, 12,128,127, 0, 44, 75,255,245,193,128, 31, 0, 24,
/* 0x0e00 */ 47,128, 0, 0, 65,158, 0, 16,129, 63, 0, 24,128, 31, 0, 48,
/* 0x0e10 */ 144, 9, 0, 0,129, 63, 0, 12,129, 41, 0, 24,128, 31, 0, 48,
/* 0x0e20 */ 124, 9, 2, 20,124, 3, 3,120,129, 97, 0, 0,128, 11, 0, 4,
/* 0x0e30 */ 124, 8, 3,166,131,235,255,252,125, 97, 91,120, 78,128, 0, 32,
/* 0x0e40 */ 148, 33,255,160,124, 8, 2,166,147,225, 0, 92,144, 1, 0,100,
/* 0x0e50 */ 124, 63, 11,120,144,127, 0, 8,144,159, 0, 12,144,191, 0, 16,
/* 0x0e60 */ 144,223, 0, 20,144,255, 0, 24,145, 31, 0, 28,145, 63, 0, 32,
/* 0x0e70 */ 129, 63, 0, 8,129, 41, 0, 4, 56, 9, 0, 12,144, 31, 0, 36,
/* 0x0e80 */ 128, 31, 0, 16,144, 31, 0, 44,129, 63, 0, 8,128, 9, 0, 0,
/* 0x0e90 */ 144, 31, 0, 40,128, 31, 0, 8,144, 31, 0, 52,128, 31, 0, 12,
/* 0x0ea0 */ 144, 31, 0, 48, 56, 31, 0, 48, 57, 63, 0, 40,124, 3, 3,120,
/* 0x0eb0 */ 125, 36, 75,120,128,191, 0, 24, 56,192, 0, 0, 75,255,245, 61,
/* 0x0ec0 */ 129, 63, 0, 52,128, 31, 0, 36,124, 0, 72, 80,144, 31, 0, 52,
/* 0x0ed0 */ 128, 31, 0, 12,144, 31, 0, 48,128, 31, 0, 32,144, 31, 0, 56,
/* 0x0ee0 */ 129, 63, 0, 16, 56, 9, 0, 52,144, 31, 0, 60, 56, 31, 0, 48,
/* 0x0ef0 */ 57, 63, 0, 56,128,127, 0, 24,128,159, 0, 16,124, 5, 3,120,
/* 0x0f00 */ 128,223, 0, 20,125, 39, 75,120,129, 31, 0, 28,129, 63, 0, 32,
/* 0x0f10 */ 75,255,251, 37,124, 96, 27,120,144, 31, 0, 64,128,127, 0, 20,
/* 0x0f20 */ 56,128, 0, 9,128,191, 0, 64, 75,255,248,241, 56, 0, 0, 0,
/* 0x0f30 */ 144, 31, 0, 68,129, 63, 0, 16, 56, 9, 0, 52,144, 31, 0, 60,
/* 0x0f40 */ 129, 63, 0, 16,160, 9, 0, 44, 84, 9, 4, 62,128, 31, 0, 68,
/* 0x0f50 */ 127,137, 0, 0, 64,157, 0,212,129, 63, 0, 60,128, 9, 0, 0,
/* 0x0f60 */ 47,128, 0, 3, 64,158, 0,168,129, 63, 0, 60,129, 41, 0, 8,
/* 0x0f70 */ 128, 31, 0, 56,124, 9, 2, 20,124, 3, 3,120, 56,128, 0, 0,
/* 0x0f80 */ 56,160, 0, 0, 75,255,243, 37,124, 96, 27,120,144, 31, 0, 72,
/* 0x0f90 */ 128, 31, 0, 72, 47,128, 0, 0, 64,156, 0, 8, 72, 0, 0, 32,
/* 0x0fa0 */ 128,127, 0, 72,128,159, 0, 16, 56,160, 2, 0, 75,255,242,245,
/* 0x0fb0 */ 124, 96, 27,120, 47,128, 2, 0, 65,158, 0, 12, 56, 96, 0,127,
/* 0x0fc0 */ 75,255,242,193, 56, 31, 0, 56,128,127, 0, 72,128,159, 0, 16,
/* 0x0fd0 */ 56,160, 0, 0,128,223, 0, 20,124, 7, 3,120, 57, 0, 0, 0,
/* 0x0fe0 */ 57, 32, 0, 0, 75,255,250, 81,124, 96, 27,120,144, 31, 0, 64,
/* 0x0ff0 */ 128,127, 0, 20, 56,128, 0, 7,128,191, 0, 56, 75,255,248, 29,
/* 0x1000 */ 128,127, 0, 72, 75,255,242,173, 72, 0, 0, 32,129, 63, 0, 60,
/* 0x1010 */ 56, 9, 0, 32,144, 31, 0, 60,129, 63, 0, 68, 56, 9, 0, 1,
/* 0x1020 */ 144, 31, 0, 68, 75,255,255, 28,128, 31, 0, 64,124, 3, 3,120,
/* 0x1030 */ 129, 97, 0, 0,128, 11, 0, 4,124, 8, 3,166,131,235,255,252,
/* 0x1040 */ 125, 97, 91,120, 78,128, 0, 32
};

View File

@ -1,5 +1,5 @@
/* powerpc64-linux.elf-entry.h
created from powerpc64-linux.elf-entry.bin, 11736 (0x2dd8) bytes
created from powerpc64-linux.elf-entry.bin, 11568 (0x2d30) bytes
This file is part of the UPX executable compressor.
@ -31,14 +31,14 @@
*/
#define STUB_POWERPC64_LINUX_ELF_ENTRY_SIZE 11736
#define STUB_POWERPC64_LINUX_ELF_ENTRY_ADLER32 0xe7cc14b7
#define STUB_POWERPC64_LINUX_ELF_ENTRY_CRC32 0xc32305e1
#define STUB_POWERPC64_LINUX_ELF_ENTRY_SIZE 11568
#define STUB_POWERPC64_LINUX_ELF_ENTRY_ADLER32 0xcfb7d090
#define STUB_POWERPC64_LINUX_ELF_ENTRY_CRC32 0xe0324858
unsigned char stub_powerpc64_linux_elf_entry[11736] = {
unsigned char stub_powerpc64_linux_elf_entry[11568] = {
/* 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, 34,248,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,120,
/* 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,
@ -505,269 +505,258 @@ unsigned char stub_powerpc64_linux_elf_entry[11736] = {
/* 0x1d20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x1d30 */ 56,160, 0, 14,124,136, 2,166, 56, 96, 0, 2, 56, 0, 0, 4,
/* 0x1d40 */ 68, 0, 0, 2, 56, 96, 0,127, 56, 0, 0, 1, 68, 0, 0, 2,
/* 0x1d50 */ 127, 8, 2,166, 59,191,255,248,128, 29, 0, 0,131,120, 0, 0,
/* 0x1d60 */ 127,160,232, 80,160, 29, 0, 16, 40, 0, 0, 3, 65,130, 0, 68,
/* 0x1d70 */ 235,157, 0,104, 57, 0, 0, 0,127,158,224, 80, 56,224,255,255,
/* 0x1d80 */ 59,156,255,255, 56,192, 0, 50,127,156,240, 56, 56,160, 0, 3,
/* 0x1d90 */ 128,152, 0, 4,124,125,226, 20,127,156, 34, 20, 56, 0, 0, 90,
/* 0x1da0 */ 68, 0, 0, 2, 65,195, 0, 0, 59, 32, 0, 0, 72, 0, 0,184,
/* 0x1db0 */ 127,185,235,120,234,221, 0,104,128, 24, 0, 4,127,128,178, 20,
/* 0x1dc0 */ 127,132,227,120,126,228,232, 80,126,247,240, 56,127, 67,211,120,
/* 0x1dd0 */ 232,195, 0, 0,233, 3, 0, 8, 56, 99, 0, 16, 43,166, 0, 0,
/* 0x1de0 */ 65,222, 0, 44, 56,198,255,224, 43,166, 0, 1, 65,253,255,228,
/* 0x1df0 */ 124,215, 64, 80,127,166, 32, 64, 64,252,255,216,124,196, 48, 80,
/* 0x1e00 */ 126,247, 50, 20,126,247,240, 56, 75,255,255,200,126,227,187,120,
/* 0x1e10 */ 57, 0, 0, 0, 56,224,255,255, 56,192, 0, 50, 56,160, 0, 3,
/* 0x1e20 */ 56, 0, 0, 90, 68, 0, 0, 2, 65,195, 0, 0,124, 29,184, 80,
/* 0x1e30 */ 127,255, 2, 20,126,198,179,120, 56,198, 0, 15, 56,157,255,248,
/* 0x1e40 */ 120,198,225, 2, 56, 99,255,248,124,201, 3,166,232,164, 0, 8,
/* 0x1e50 */ 232,196, 0, 17,248,163, 0, 8,248,195, 0, 17, 66, 0,255,240,
/* 0x1e60 */ 126,253,187,120,124,101, 27,120,124,119, 27,120,127,233, 3,166,
/* 0x1e70 */ 128, 24, 0, 4,136,248, 0, 12, 56,193, 1,104,248, 1, 1,104,
/* 0x1e80 */ 128,152, 0, 8, 56,120, 0, 16, 78,128, 4, 33, 56,160, 0, 5,
/* 0x1e90 */ 127,132,227,120,127,163,235,120, 56, 0, 0,125, 68, 0, 0, 2,
/* 0x1ea0 */ 126,233, 3,166, 78,128, 4, 32,232, 3, 0, 0, 56, 99, 0, 8,
/* 0x1eb0 */ 47,160, 0, 0, 64,254,255,244, 78,128, 0, 32,248, 33,254,145,
/* 0x1ec0 */ 248, 65, 0,120,248, 97, 0,128,248,129, 0,136,248,161, 0,144,
/* 0x1ed0 */ 248,193, 0,152,248,225, 0,160,249, 1, 0,168,249, 33, 0,176,
/* 0x1ee0 */ 249, 65, 0,184,249, 97, 0,192,249,129, 0,200,249,161, 0,208,
/* 0x1ef0 */ 249,193, 0,216,249,225, 0,224,250, 1, 0,232,250, 33, 0,240,
/* 0x1f00 */ 250, 65, 0,248,250, 97, 1, 0,250,129, 1, 8,250,161, 1, 16,
/* 0x1f10 */ 250,193, 1, 24,250,225, 1, 32,251, 1, 1, 40,251, 33, 1, 48,
/* 0x1f20 */ 251, 65, 1, 56,251, 97, 1, 64,251,129, 1, 72,251,161, 1, 80,
/* 0x1f30 */ 251,193, 1, 88,251,225, 1, 96,127,232, 2,166, 56, 97, 1,112,
/* 0x1f40 */ 75,255,255,105, 75,255,255,101,124,122, 27,120,232, 3, 0, 0,
/* 0x1f50 */ 232,131, 0, 8, 56, 99, 0, 16, 47,160, 0, 6, 65,222, 0, 16,
/* 0x1f60 */ 44, 32, 0, 0, 64,226,255,232, 60,128, 0, 1,127,196, 0,208,
/* 0x1f70 */ 75,255,253,225, 0, 0, 0, 0,102,105,108,101, 32,102,111,114,
/* 0x1f80 */ 109, 97,116, 32,101,108,102, 54, 52, 45,112,111,119,101,114,112,
/* 0x1f90 */ 99, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120,
/* 0x1fa0 */ 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,
/* 0x1fb0 */ 105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32,
/* 0x1fc0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32,
/* 0x1fd0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,
/* 0x1fe0 */ 101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,
/* 0x1ff0 */ 103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32,
/* 0x2000 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, 48,
/* 0x2010 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2020 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2030 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 48, 32, 32, 50, 42, 42,
/* 0x2040 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76,
/* 0x2050 */ 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49,
/* 0x2060 */ 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48,
/* 0x2070 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x2080 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x2090 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x20a0 */ 48, 48, 48, 52, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
/* 0x20b0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
/* 0x20c0 */ 32, 32, 50, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32,
/* 0x20d0 */ 32, 32, 48, 48, 48, 48, 48, 49, 53, 52, 32, 32, 48, 48, 48, 48,
/* 0x20e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x20f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x2100 */ 48, 48, 48, 48, 48, 48, 52, 52, 32, 32, 50, 42, 42, 48, 32, 32,
/* 0x2110 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44,
/* 0x2120 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 78, 82,
/* 0x2130 */ 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48,
/* 0x2140 */ 48, 49, 52, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2150 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2160 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49,
/* 0x2170 */ 57, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x2180 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79,
/* 0x2190 */ 78, 76, 89, 10, 32, 32, 52, 32, 78, 82, 86, 50, 66, 32, 32, 32,
/* 0x21a0 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,102, 56, 32, 32,
/* 0x21b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x21c0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x21d0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 50,100, 99, 32, 32, 50, 42,
/* 0x21e0 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69,
/* 0x21f0 */ 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32,
/* 0x2200 */ 53, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32,
/* 0x2210 */ 48, 48, 48, 48, 48, 48, 57, 52, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x2220 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x2230 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x2240 */ 48, 48, 48, 51,100, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
/* 0x2250 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82,
/* 0x2260 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90, 77, 65,
/* 0x2270 */ 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x2280 */ 50, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2290 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x22a0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 54, 56,
/* 0x22b0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
/* 0x22c0 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, 76,
/* 0x22d0 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, 48,
/* 0x22e0 */ 48, 48, 98, 99, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x22f0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x2300 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x2310 */ 52, 57, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69,
/* 0x2320 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32,
/* 0x2330 */ 56, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32,
/* 0x2340 */ 48, 48, 48, 48, 48, 99, 55, 52, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x2350 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x2360 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x2370 */ 48, 48, 49, 48, 53, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
/* 0x2380 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89,
/* 0x2390 */ 10, 32, 32, 57, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32,
/* 0x23a0 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 99, 32, 32, 48, 48, 48,
/* 0x23b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x23c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x23d0 */ 32, 48, 48, 48, 48, 49, 99, 99, 52, 32, 32, 50, 42, 42, 48, 32,
/* 0x23e0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79,
/* 0x23f0 */ 78, 76, 89, 10, 32, 49, 48, 32, 67, 70, 76, 85, 83, 72, 32, 32,
/* 0x2400 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 52, 32, 32,
/* 0x2410 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2420 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2430 */ 48, 48, 32, 32, 48, 48, 48, 48, 49, 99,101, 48, 32, 32, 50, 42,
/* 0x2440 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69,
/* 0x2450 */ 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, 32, 69, 76, 70, 77, 65,
/* 0x2460 */ 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49,
/* 0x2470 */ 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2480 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2490 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49,100, 48, 52, 32,
/* 0x24a0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44,
/* 0x24b0 */ 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89,
/* 0x24c0 */ 10, 32, 49, 50, 32, 69, 76, 70, 77, 65, 73, 78, 90,101, 32, 32,
/* 0x24d0 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 56, 32, 32, 48, 48, 48,
/* 0x24e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x24f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2500 */ 32, 48, 48, 48, 48, 49,100, 49, 56, 32, 32, 50, 42, 42, 51, 32,
/* 0x2510 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67,
/* 0x2520 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 51, 32, 69,
/* 0x2530 */ 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48,
/* 0x2540 */ 48, 48, 50, 52, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2550 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x2560 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49,
/* 0x2570 */ 100, 51, 48, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69,
/* 0x2580 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68,
/* 0x2590 */ 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76,
/* 0x25a0 */ 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x25b0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65,
/* 0x25c0 */ 95, 68, 69, 67, 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x25d0 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67,
/* 0x25e0 */ 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x25f0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95,
/* 0x2600 */ 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2610 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48,
/* 0x2620 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2630 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89,
/* 0x2640 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2650 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48,
/* 0x2660 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x2670 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48,
/* 0x2680 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76,
/* 0x2690 */ 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x26a0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x26b0 */ 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x26c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73,
/* 0x26d0 */ 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x26e0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95,
/* 0x26f0 */ 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2700 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48,
/* 0x2710 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2720 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 9, 48, 48,
/* 0x2730 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78,
/* 0x2740 */ 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2750 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82,
/* 0x2760 */ 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2770 */ 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48,
/* 0x2780 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x2790 */ 32,100, 32, 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48,
/* 0x27a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66,
/* 0x27b0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x27c0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69,
/* 0x27d0 */ 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x27e0 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48,
/* 0x27f0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2800 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68,
/* 0x2810 */ 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2820 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48,
/* 0x2830 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2840 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68,
/* 0x2850 */ 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2860 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48,
/* 0x2870 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2880 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 70, 76, 85, 83, 72,
/* 0x2890 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x28a0 */ 48, 32, 67, 70, 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x28b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x28c0 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 90,101, 9, 48, 48, 48, 48,
/* 0x28d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70,
/* 0x28e0 */ 77, 65, 73, 78, 90,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x28f0 */ 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32,
/* 0x2900 */ 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x2910 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116,
/* 0x2920 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2930 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x2940 */ 78, 90,101, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2950 */ 48, 48, 48, 48, 32,101,110,116,114,121, 95,100,101,115, 99,114,
/* 0x2960 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2970 */ 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9,
/* 0x2980 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2990 */ 32, 79, 95, 66, 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, 67, 65,
/* 0x29a0 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82,
/* 0x29b0 */ 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70,
/* 0x29c0 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89,
/* 0x29d0 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x29e0 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x29f0 */ 48, 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82,
/* 0x2a00 */ 69, 76, 50, 52, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x2a10 */ 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2a20 */ 48, 49, 56, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
/* 0x2a30 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82,
/* 0x2a40 */ 86, 50, 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32,
/* 0x2a50 */ 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32,
/* 0x2a60 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48,
/* 0x2a70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 99, 48, 32,
/* 0x2a80 */ 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32, 32,
/* 0x2a90 */ 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79,
/* 0x2aa0 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70,
/* 0x2ab0 */ 79, 82, 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83,
/* 0x2ac0 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80,
/* 0x2ad0 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86,
/* 0x2ae0 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2af0 */ 48, 48, 48, 99, 99, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69,
/* 0x2b00 */ 76, 49, 52, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76,
/* 0x2b10 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
/* 0x2b20 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93,
/* 0x2b30 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2b40 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2b50 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48,
/* 0x2b60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 57, 56, 32, 82, 95, 80, 80,
/* 0x2b70 */ 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 78, 82,
/* 0x2b80 */ 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73,
/* 0x2b90 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,
/* 0x2ba0 */ 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70,
/* 0x2bb0 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89,
/* 0x2bc0 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2bd0 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2be0 */ 48, 48, 48, 48, 48, 52, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82,
/* 0x2bf0 */ 69, 76, 49, 52, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69,
/* 0x2c00 */ 67, 51, 48, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2c10 */ 48, 48, 48, 48, 50, 56, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73,
/* 0x2c20 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,
/* 0x2c30 */ 69, 76, 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, 69,
/* 0x2c40 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69,
/* 0x2c50 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65,
/* 0x2c60 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2c70 */ 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76,
/* 0x2c80 */ 50, 52, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10,
/* 0x2c90 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79,
/* 0x2ca0 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78,
/* 0x2cb0 */ 90,101, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32,
/* 0x2cc0 */ 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32,
/* 0x2cd0 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48,
/* 0x2ce0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82,
/* 0x2cf0 */ 95, 80, 80, 67, 54, 52, 95, 65, 68, 68, 82, 54, 52, 32, 32, 32,
/* 0x2d00 */ 32, 95,115,116, 97,114,116, 10, 10, 82, 69, 76, 79, 67, 65, 84,
/* 0x2d10 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32,
/* 0x2d20 */ 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83,
/* 0x2d30 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80,
/* 0x2d40 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86,
/* 0x2d50 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2d60 */ 48, 48, 48, 55, 52, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69,
/* 0x2d70 */ 76, 49, 52, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89,
/* 0x2d80 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,102,
/* 0x2d90 */ 56, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, 32,
/* 0x2da0 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48,
/* 0x2db0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 52, 52, 32, 82, 95,
/* 0x2dc0 */ 80, 80, 67, 54, 52, 95, 65, 68, 68, 82, 51, 50, 32, 32, 32, 32,
/* 0x2dd0 */ 79, 95, 66, 73, 78, 70, 79, 10
/* 0x1d50 */ 126,200, 2,166, 72, 0, 0, 21, 47,112,114,111, 99, 47,115,101,
/* 0x1d60 */ 108,102, 47,101,120,101, 0, 0,124,104, 2,166, 56,128, 0, 0,
/* 0x1d70 */ 56, 0, 0, 5, 68, 0, 0, 2,124,123, 27,120,128, 31,255,248,
/* 0x1d80 */ 59, 63,255,248, 56,224,255,255,130,182, 0, 4, 56,192, 0, 34,
/* 0x1d90 */ 127, 32,200, 80, 56, 96, 0, 0,124, 25,176, 80,124,149, 2, 20,
/* 0x1da0 */ 124,156, 35,120, 72, 0, 0,153,124,125, 27,120,128, 22, 0, 8,
/* 0x1db0 */ 124,149,224, 80,127,103,219,120, 56,192, 0, 18,124,132, 2, 20,
/* 0x1dc0 */ 72, 0, 0,125,126,153, 24, 80,127,233, 3,166,127,255,162, 20,
/* 0x1dd0 */ 130,118, 0, 0, 56,118, 0, 16,126,214,162, 20,126,246,170, 20,
/* 0x1de0 */ 127,248,240, 56,126,248,184, 80,136,246, 0, 12,250,161, 1,136,
/* 0x1df0 */ 56,193, 1,136,126,197,179,120,128,150, 0, 8, 78,128, 4, 33,
/* 0x1e00 */ 128, 22, 0, 0,123,195,186, 66,120, 96, 4, 44,144, 22, 0, 0,
/* 0x1e10 */ 56,160, 0, 5,126,228,187,120,127, 3,195,120, 56, 0, 0,125,
/* 0x1e20 */ 68, 0, 0, 2,130,255,255,248,127, 25,154, 20,127, 24,162, 20,
/* 0x1e30 */ 56, 22, 0, 16,124, 9, 3,166, 78,128, 4, 32, 57, 0, 0, 0,
/* 0x1e40 */ 56,160, 0, 3, 56, 0, 0, 90, 68, 0, 0, 2, 64,131, 0, 8,
/* 0x1e50 */ 124,128, 0, 8, 78,128, 0, 32,232, 3, 0, 0, 56, 99, 0, 8,
/* 0x1e60 */ 47,160, 0, 0, 64,254,255,244, 78,128, 0, 32,248, 33,254,113,
/* 0x1e70 */ 248, 65, 0,152,248, 97, 0,160,248,129, 0,168,248,161, 0,176,
/* 0x1e80 */ 248,193, 0,184,248,225, 0,192,249, 1, 0,200,249, 33, 0,208,
/* 0x1e90 */ 249, 65, 0,216,249, 97, 0,224,249,129, 0,232,249,161, 0,240,
/* 0x1ea0 */ 249,193, 0,248,249,225, 1, 0,250, 1, 1, 8,250, 33, 1, 16,
/* 0x1eb0 */ 250, 65, 1, 24,250, 97, 1, 32,250,129, 1, 40,250,161, 1, 48,
/* 0x1ec0 */ 250,193, 1, 56,250,225, 1, 64,251, 1, 1, 72,251, 33, 1, 80,
/* 0x1ed0 */ 251, 65, 1, 88,251, 97, 1, 96,251,129, 1,104,251,161, 1,112,
/* 0x1ee0 */ 251,193, 1,120,251,225, 1,128,127,232, 2,166, 56, 97, 1,144,
/* 0x1ef0 */ 75,255,255,105, 75,255,255,101,124,122, 27,120,232, 3, 0, 0,
/* 0x1f00 */ 232,131, 0, 8, 56, 99, 0, 16, 47,160, 0, 6, 65,222, 0, 16,
/* 0x1f10 */ 44, 32, 0, 0, 64,226,255,232, 60,128, 0, 1,127,196, 0,208,
/* 0x1f20 */ 75,255,254, 49, 0, 0, 0, 0,102,105,108,101, 32,102,111,114,
/* 0x1f30 */ 109, 97,116, 32,101,108,102, 54, 52, 45,112,111,119,101,114,112,
/* 0x1f40 */ 99, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120,
/* 0x1f50 */ 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,
/* 0x1f60 */ 105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32,
/* 0x1f70 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32,
/* 0x1f80 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,
/* 0x1f90 */ 101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,
/* 0x1fa0 */ 103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32,
/* 0x1fb0 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, 48,
/* 0x1fc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1fd0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1fe0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 48, 32, 32, 50, 42, 42,
/* 0x1ff0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76,
/* 0x2000 */ 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49,
/* 0x2010 */ 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48,
/* 0x2020 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x2030 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x2040 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x2050 */ 48, 48, 48, 52, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
/* 0x2060 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
/* 0x2070 */ 32, 32, 50, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32,
/* 0x2080 */ 32, 32, 48, 48, 48, 48, 48, 49, 53, 52, 32, 32, 48, 48, 48, 48,
/* 0x2090 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x20a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x20b0 */ 48, 48, 48, 48, 48, 48, 52, 52, 32, 32, 50, 42, 42, 48, 32, 32,
/* 0x20c0 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44,
/* 0x20d0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 78, 82,
/* 0x20e0 */ 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48,
/* 0x20f0 */ 48, 49, 52, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2100 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2110 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49,
/* 0x2120 */ 57, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x2130 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79,
/* 0x2140 */ 78, 76, 89, 10, 32, 32, 52, 32, 78, 82, 86, 50, 66, 32, 32, 32,
/* 0x2150 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,102, 56, 32, 32,
/* 0x2160 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2170 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2180 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 50,100, 99, 32, 32, 50, 42,
/* 0x2190 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69,
/* 0x21a0 */ 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32,
/* 0x21b0 */ 53, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32,
/* 0x21c0 */ 48, 48, 48, 48, 48, 48, 57, 52, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x21d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x21e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x21f0 */ 48, 48, 48, 51,100, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
/* 0x2200 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82,
/* 0x2210 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90, 77, 65,
/* 0x2220 */ 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x2230 */ 50, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2240 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2250 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 54, 56,
/* 0x2260 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
/* 0x2270 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, 76,
/* 0x2280 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, 48,
/* 0x2290 */ 48, 48, 98, 99, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x22a0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x22b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x22c0 */ 52, 57, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69,
/* 0x22d0 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32,
/* 0x22e0 */ 56, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32,
/* 0x22f0 */ 48, 48, 48, 48, 48, 99, 55, 52, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x2300 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x2310 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x2320 */ 48, 48, 49, 48, 53, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
/* 0x2330 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89,
/* 0x2340 */ 10, 32, 32, 57, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32,
/* 0x2350 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 99, 32, 32, 48, 48, 48,
/* 0x2360 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x2370 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2380 */ 32, 48, 48, 48, 48, 49, 99, 99, 52, 32, 32, 50, 42, 42, 48, 32,
/* 0x2390 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79,
/* 0x23a0 */ 78, 76, 89, 10, 32, 49, 48, 32, 67, 70, 76, 85, 83, 72, 32, 32,
/* 0x23b0 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 52, 32, 32,
/* 0x23c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x23d0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x23e0 */ 48, 48, 32, 32, 48, 48, 48, 48, 49, 99,101, 48, 32, 32, 50, 42,
/* 0x23f0 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69,
/* 0x2400 */ 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, 32, 69, 76, 70, 77, 65,
/* 0x2410 */ 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49,
/* 0x2420 */ 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2430 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2440 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49,100, 48, 52, 32,
/* 0x2450 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44,
/* 0x2460 */ 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89,
/* 0x2470 */ 10, 32, 49, 50, 32, 69, 76, 70, 77, 65, 73, 78, 90,101, 32, 32,
/* 0x2480 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 56, 32, 32, 48, 48, 48,
/* 0x2490 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x24a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x24b0 */ 32, 48, 48, 48, 48, 49,100, 49, 56, 32, 32, 50, 42, 42, 51, 32,
/* 0x24c0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67,
/* 0x24d0 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 51, 32, 69,
/* 0x24e0 */ 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48,
/* 0x24f0 */ 48, 48, 49,102, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2500 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x2510 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49,
/* 0x2520 */ 100, 51, 48, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69,
/* 0x2530 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68,
/* 0x2540 */ 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76,
/* 0x2550 */ 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2560 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65,
/* 0x2570 */ 95, 68, 69, 67, 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2580 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67,
/* 0x2590 */ 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x25a0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95,
/* 0x25b0 */ 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x25c0 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48,
/* 0x25d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x25e0 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90,
/* 0x25f0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2600 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48,
/* 0x2610 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x2620 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48,
/* 0x2630 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76,
/* 0x2640 */ 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2650 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x2660 */ 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x2670 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69,
/* 0x2680 */ 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2690 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50,
/* 0x26a0 */ 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x26b0 */ 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x26c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x26d0 */ 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x26e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48,
/* 0x26f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2700 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9, 48, 48,
/* 0x2710 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78,
/* 0x2720 */ 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2730 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90,
/* 0x2740 */ 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x2750 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69,
/* 0x2760 */ 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2770 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90,
/* 0x2780 */ 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x2790 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68,
/* 0x27a0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x27b0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90,
/* 0x27c0 */ 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x27d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68,
/* 0x27e0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x27f0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 70,
/* 0x2800 */ 76, 85, 83, 72, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2810 */ 48, 48, 48, 48, 48, 32, 67, 70, 76, 85, 83, 72, 10, 48, 48, 48,
/* 0x2820 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x2830 */ 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, 48,
/* 0x2840 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2850 */ 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x2860 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x2870 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 90,101, 9, 48, 48, 48, 48,
/* 0x2880 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70,
/* 0x2890 */ 77, 65, 73, 78, 90,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x28a0 */ 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32,
/* 0x28b0 */ 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x28c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116,
/* 0x28d0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x28e0 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x28f0 */ 78, 90,101, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2900 */ 48, 48, 48, 48, 32,101,110,116,114,121, 95,100,101,115, 99,114,
/* 0x2910 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2920 */ 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9,
/* 0x2930 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2940 */ 32, 79, 95, 66, 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, 67, 65,
/* 0x2950 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82,
/* 0x2960 */ 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70,
/* 0x2970 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89,
/* 0x2980 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2990 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x29a0 */ 48, 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82,
/* 0x29b0 */ 69, 76, 50, 52, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x29c0 */ 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x29d0 */ 48, 49, 51, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
/* 0x29e0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82,
/* 0x29f0 */ 86, 50, 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32,
/* 0x2a00 */ 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32,
/* 0x2a10 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48,
/* 0x2a20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 99, 48, 32,
/* 0x2a30 */ 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32, 32,
/* 0x2a40 */ 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79,
/* 0x2a50 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70,
/* 0x2a60 */ 79, 82, 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83,
/* 0x2a70 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80,
/* 0x2a80 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86,
/* 0x2a90 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2aa0 */ 48, 48, 48, 99, 99, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69,
/* 0x2ab0 */ 76, 49, 52, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76,
/* 0x2ac0 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
/* 0x2ad0 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93,
/* 0x2ae0 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2af0 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2b00 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48,
/* 0x2b10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 57, 56, 32, 82, 95, 80, 80,
/* 0x2b20 */ 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 78, 82,
/* 0x2b30 */ 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73,
/* 0x2b40 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,
/* 0x2b50 */ 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70,
/* 0x2b60 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89,
/* 0x2b70 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2b80 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2b90 */ 48, 48, 48, 48, 48, 52, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82,
/* 0x2ba0 */ 69, 76, 49, 52, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69,
/* 0x2bb0 */ 67, 51, 48, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2bc0 */ 48, 48, 48, 48, 50, 56, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73,
/* 0x2bd0 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,
/* 0x2be0 */ 69, 76, 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, 69,
/* 0x2bf0 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69,
/* 0x2c00 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65,
/* 0x2c10 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2c20 */ 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76,
/* 0x2c30 */ 50, 52, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10,
/* 0x2c40 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79,
/* 0x2c50 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78,
/* 0x2c60 */ 90,101, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32,
/* 0x2c70 */ 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32,
/* 0x2c80 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48,
/* 0x2c90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82,
/* 0x2ca0 */ 95, 80, 80, 67, 54, 52, 95, 65, 68, 68, 82, 54, 52, 32, 32, 32,
/* 0x2cb0 */ 32, 95,115,116, 97,114,116, 10, 10, 82, 69, 76, 79, 67, 65, 84,
/* 0x2cc0 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32,
/* 0x2cd0 */ 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83,
/* 0x2ce0 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80,
/* 0x2cf0 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86,
/* 0x2d00 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2d10 */ 48, 48, 49,102, 52, 32, 82, 95, 80, 80, 67, 54, 52, 95, 65, 68,
/* 0x2d20 */ 68, 82, 51, 50, 32, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10
};

View File

@ -1,5 +1,5 @@
/* powerpc64-linux.elf-fold.h
created from powerpc64-linux.elf-fold.bin, 3032 (0xbd8) bytes
created from powerpc64-linux.elf-fold.bin, 3128 (0xc38) bytes
This file is part of the UPX executable compressor.
@ -31,199 +31,205 @@
*/
#define STUB_POWERPC64_LINUX_ELF_FOLD_SIZE 3032
#define STUB_POWERPC64_LINUX_ELF_FOLD_ADLER32 0xb1232580
#define STUB_POWERPC64_LINUX_ELF_FOLD_CRC32 0x5a5e9db7
#define STUB_POWERPC64_LINUX_ELF_FOLD_SIZE 3128
#define STUB_POWERPC64_LINUX_ELF_FOLD_ADLER32 0x38a73dc2
#define STUB_POWERPC64_LINUX_ELF_FOLD_CRC32 0x62494a73
unsigned char stub_powerpc64_linux_elf_fold[3032] = {
unsigned char stub_powerpc64_linux_elf_fold[3128] = {
/* 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, 11,136,
/* 0x0010 */ 0, 2, 0, 21, 0, 0, 0, 1, 0, 0, 0, 0, 0, 16, 11,232,
/* 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, 11,136, 0, 0, 0, 0, 0, 0, 11,136,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 11,228, 0, 0, 0, 0, 0, 0, 11,228,
/* 0x0070 */ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6,
/* 0x0080 */ 0, 0, 0, 0, 0, 0, 11,136, 0, 0, 0, 0, 0, 16, 11,136,
/* 0x0090 */ 0, 0, 0, 0, 0, 16, 11,136, 0, 0, 0, 0, 0, 0, 0, 80,
/* 0x0080 */ 0, 0, 0, 0, 0, 0, 11,232, 0, 0, 0, 0, 0, 16, 11,232,
/* 0x0090 */ 0, 0, 0, 0, 0, 16, 11,232, 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, 32, 32, 32, 61, 47,112,114,111, 99, 47,115,101,
/* 0x0130 */ 108,102, 47,101,120,101, 0, 0,126,168, 2,166, 56,128, 0, 0,
/* 0x0140 */ 56,117, 0,104, 72, 0, 2, 33,124,116, 27,120, 56,129,255,248,
/* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 96,255,248,
/* 0x00c0 */ 120, 99, 77,164, 78,128, 0, 32, 96, 0, 0, 0, 72, 0, 0,125,
/* 0x00d0 */ 40, 6, 0,208, 76,194, 0, 32, 84,132,240,191, 77,194, 0, 32,
/* 0x00e0 */ 60, 0, 0, 16,124, 4, 0, 64, 65,128, 0, 8,124, 4, 3,120,
/* 0x00f0 */ 56,165, 1, 32,124,103, 27,120, 56, 99,255,252,124,137, 3,166,
/* 0x0100 */ 72, 0, 0, 28, 84, 11, 2,186,125, 99, 88, 80,125,107, 58, 20,
/* 0x0110 */ 81, 96, 1,186,144, 3, 0, 0, 79, 64, 0, 32,132, 3, 0, 4,
/* 0x0120 */ 84, 11, 85,190,124, 11, 40, 64, 65,194,255,220, 67, 32,255,240,
/* 0x0130 */ 78,128, 0, 32, 32, 32, 32, 61, 47,112,114,111, 99, 47,115,101,
/* 0x0140 */ 108,102, 47,101,120,101, 0, 0,126,200, 2,166, 56,129,255,248,
/* 0x0150 */ 56, 33,239,248, 56, 97,255,248, 59, 90,255,248,232, 4, 0, 9,
/* 0x0160 */ 127,164,208, 64,248, 3, 0, 9, 65,156,255,244, 59, 67, 0, 16,
/* 0x0170 */ 248, 3, 0, 9,232, 4, 0, 8, 43,160, 0, 0,248, 3, 0, 8,
/* 0x0180 */ 232, 4, 0, 17,248, 3, 0, 17, 64,158,255,236, 58, 99, 0, 8,
/* 0x0190 */ 126, 90,152, 80,128, 21, 0,100, 58, 36, 0, 8,148, 3, 0, 8,
/* 0x01a0 */ 57,195, 0, 4, 56,160, 15,255,125,196,115,120, 56,117, 0,104,
/* 0x01b0 */ 72, 0, 1,157, 56,174,255,252, 44, 35, 0, 0, 65,129, 0, 12,
/* 0x01c0 */ 56,181, 0,100, 56, 96, 0, 12, 56, 99, 0, 4,124,133, 26, 20,
/* 0x01d0 */ 124,105, 3,166,126, 35,139,120, 56,160, 0, 0,156,163,255,255,
/* 0x0180 */ 232, 4, 0, 17,248, 3, 0, 17, 64,158,255,236, 58,163, 0, 8,
/* 0x0190 */ 126,154,168, 80,128, 22, 0,100, 58,100, 0, 8,148, 3, 0, 8,
/* 0x01a0 */ 58, 67, 0, 4, 56,160, 15,255,126, 68,147,120, 56,118, 0,104,
/* 0x01b0 */ 72, 0, 1,213, 56,178,255,252, 44, 35, 0, 0, 65,129, 0, 12,
/* 0x01c0 */ 56,182, 0,100, 56, 96, 0, 12, 56, 99, 0, 4,124,133, 26, 20,
/* 0x01d0 */ 124,105, 3,166,126, 99,155,120, 56,160, 0, 0,156,163,255,255,
/* 0x01e0 */ 140, 4,255,255,156, 3,255,255, 66, 0,255,248,248,122,255,240,
/* 0x01f0 */ 120, 99, 7, 36,124, 32, 34,120,124, 0, 26,120,120, 0, 7, 32,
/* 0x0200 */ 124, 96, 24, 80,126,100,155,120,127, 82, 24, 80,232, 4,255,249,
/* 0x0200 */ 124, 96, 24, 80,126,164,171,120,127, 84, 24, 80,232, 4,255,249,
/* 0x0210 */ 127,164, 8, 64,248, 3,255,249, 65,253,255,244,124, 97, 27,120,
/* 0x0220 */ 57, 33, 1,104,251,169, 0, 0,248, 33,247,145,128,159,255,248,
/* 0x0230 */ 124,125,218, 20,124,155, 32, 80, 56,161, 0,112,127, 70,211,120,
/* 0x0240 */ 127,231,251,120,126,168,171,120,127,202,243,120,248,225, 0, 24,
/* 0x0250 */ 56,225, 0, 24,249, 1, 0, 32, 57, 1, 0, 32, 72, 0, 7, 37,
/* 0x0260 */ 124,128, 0, 8,232, 1, 9,216,232, 67, 0, 8,124, 66, 2, 20,
/* 0x0270 */ 232, 99, 0, 0,124, 99, 2, 20, 56, 33, 8,112,124,127, 27,120,
/* 0x0280 */ 57, 0, 0, 0,126,135,163,120, 56,192, 0, 2, 56,160, 0, 1,
/* 0x0290 */ 124,158, 0,208, 56, 96, 0, 0, 72, 0, 0,237,126,131,163,120,
/* 0x02a0 */ 72, 0, 0,189,127, 67,211,120,232, 3, 0, 0,232,131, 0, 8,
/* 0x02b0 */ 56, 99, 0, 16, 43,160, 0, 0, 64,254,255,240,124,137, 3,166,
/* 0x02c0 */ 127,163,235,120,127,132,227,120, 56, 0, 0, 91,127,232, 3,166,
/* 0x02d0 */ 232,161, 0,144,232,193, 0,152,232,225, 0,160,233, 1, 0,168,
/* 0x02e0 */ 233, 33, 0,176,233, 65, 0,184,233, 97, 0,192,233,129, 0,200,
/* 0x02f0 */ 233,161, 0,208,233,193, 0,216,233,225, 0,224,234, 1, 0,232,
/* 0x0300 */ 234, 33, 0,240,234, 65, 0,248,234, 97, 1, 0,234,129, 1, 8,
/* 0x0310 */ 234,161, 1, 16,234,193, 1, 24,234,225, 1, 32,235, 1, 1, 40,
/* 0x0320 */ 235, 33, 1, 48,235, 65, 1, 56,235, 97, 1, 64,235,129, 1, 72,
/* 0x0330 */ 235,161, 1, 80,235,193, 1, 88,235,225, 1, 96, 56, 33, 1,112,
/* 0x0340 */ 78,128, 4, 32, 56, 0, 0, 1, 72, 0, 0, 8, 56, 0, 0, 85,
/* 0x0350 */ 72, 0, 0, 8, 56, 0, 0, 45, 72, 0, 0, 8, 56, 0, 0, 6,
/* 0x0360 */ 72, 0, 0, 8, 56, 0, 0, 5, 72, 0, 0, 8, 56, 0, 0, 91,
/* 0x0370 */ 72, 0, 0, 8, 56, 0, 0,125, 72, 0, 0, 8, 56, 0, 0, 3,
/* 0x0380 */ 72, 0, 0, 8, 56, 0, 0, 90, 68, 0, 0, 2, 64,227, 0, 8,
/* 0x0390 */ 56, 96,255,255, 78,128, 0, 32, 44, 35, 0, 0, 77,130, 0, 32,
/* 0x03a0 */ 47, 36, 0, 0,233, 67, 0, 0,127,170, 32, 64, 64,158, 0, 16,
/* 0x03b0 */ 248,131, 0, 0,248,163, 0, 8, 78,128, 0, 32, 43,170, 0, 1,
/* 0x03c0 */ 64,158, 0, 8, 64,154,255,236, 56, 99, 0, 16, 75,255,255,216,
/* 0x03d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233, 67, 0, 0,
/* 0x03e0 */ 233, 3, 0, 8, 56,229, 0, 1, 57, 32, 0, 0,124,233, 3,166,
/* 0x03f0 */ 127,170, 40, 64, 64,252, 0, 28,124, 8, 2,166, 56, 96, 0,127,
/* 0x0400 */ 248, 1, 0, 16,248, 33,255,145, 75,255,255, 61, 96, 0, 0, 0,
/* 0x0410 */ 66, 64, 0, 20,125, 72, 72,174,125, 68, 73,174, 57, 41, 0, 1,
/* 0x0420 */ 75,255,255,240,233, 67, 0, 8,125, 74, 74, 20,249, 67, 0, 8,
/* 0x0430 */ 233, 67, 0, 0,125, 41, 80, 80,249, 35, 0, 0, 78,128, 0, 32,
/* 0x0440 */ 0, 0, 0, 0, 0, 0, 0, 1,128, 0, 0, 0,125,128, 0, 38,
/* 0x0450 */ 124, 8, 2,166,145,129, 0, 8, 72, 0, 6,197,248, 33,255, 81,
/* 0x0460 */ 124,126, 27,120,124,159, 35,120,124,189, 43,120,124,220, 51,120,
/* 0x0470 */ 46, 38, 0, 0,233, 63, 0, 0, 47,169, 0, 0, 65,158, 1, 84,
/* 0x0480 */ 127,195,243,120, 56,129, 0,112, 56,160, 0, 12, 75,255,255, 81,
/* 0x0490 */ 129, 65, 0,112,129, 33, 0,116, 47,170, 0, 0, 64,158, 0, 32,
/* 0x04a0 */ 109, 37, 33, 88, 47,133, 80, 85, 64,158, 0, 28,233, 62, 0, 0,
/* 0x04b0 */ 47,169, 0, 0, 65,254, 1, 28, 72, 0, 0, 12,121, 41, 0, 33,
/* 0x04c0 */ 64,226, 0, 16, 56, 96, 0,127, 75,255,254,125, 96, 0, 0, 0,
/* 0x04d0 */ 127, 9, 80, 64, 65,217,255,240,233, 31, 0, 0,127,170, 64, 64,
/* 0x04e0 */ 65,221,255,228,232,191, 0, 8, 64,152, 0,184,125, 36, 75,120,
/* 0x04f0 */ 233, 61, 0, 0,232,126, 0, 8, 56,193, 0,128,249, 65, 0,128,
/* 0x0500 */ 248, 65, 0, 40,136,225, 0,120,233,125, 0, 16,125, 41, 3,166,
/* 0x0510 */ 232, 93, 0, 8, 78,128, 4, 33,232, 65, 0, 40, 47,163, 0, 0,
/* 0x0520 */ 64,222,255,164,232,129, 0,128,129, 33, 0,112,127,164, 72, 64,
/* 0x0530 */ 64,222,255,148,136,193, 0,121, 47,166, 0, 0, 65,158, 0, 68,
/* 0x0540 */ 65,146, 0, 64, 43,164, 2, 0, 65,157, 0, 16,233, 63, 0, 0,
/* 0x0550 */ 127,169, 32, 0, 64,158, 0, 44,232,127, 0, 8,136,161, 0,122,
/* 0x0560 */ 120,132, 0, 32,248, 65, 0, 40,233, 60, 0, 0,233,124, 0, 16,
/* 0x0570 */ 125, 41, 3,166,232, 92, 0, 8, 78,128, 4, 33,232, 65, 0, 40,
/* 0x0580 */ 129, 1, 0,116,233, 94, 0, 8,233, 62, 0, 0,125, 74, 66, 20,
/* 0x0590 */ 125, 40, 72, 80,249, 94, 0, 8,249, 62, 0, 0, 72, 0, 0, 20,
/* 0x05a0 */ 124,164, 43,120,127,195,243,120,125, 37, 75,120, 75,255,254, 49,
/* 0x05b0 */ 129, 1, 0,112,233, 95, 0, 8,233, 63, 0, 0,125, 74, 66, 20,
/* 0x05c0 */ 125, 40, 72, 80,249, 95, 0, 8,249, 63, 0, 0, 75,255,254,168,
/* 0x05d0 */ 56, 33, 0,176,129,129, 0, 8,125,144,129, 32, 72, 0, 5,144,
/* 0x05e0 */ 0, 0, 0, 0, 0, 0, 0, 3,128, 4, 0, 0,125,128, 0, 38,
/* 0x05f0 */ 124, 8, 2,166,145,129, 0, 8, 72, 0, 4,237,248, 33,254,225,
/* 0x0600 */ 125, 90, 83,120,161, 67, 0, 16,125, 50, 75,120,233, 35, 0, 32,
/* 0x0610 */ 124,216, 51,120,124,125, 27,120,124,147, 35,120, 47,138, 0, 3,
/* 0x0620 */ 248,161, 1, 96,124,240, 59,120,125, 15, 67,120,126, 35, 74, 20,
/* 0x0630 */ 56,192, 0, 16, 64,158, 0, 8, 56,192, 0, 0,161, 93, 0, 56,
/* 0x0640 */ 56,198, 0, 34,126, 40,139,120, 56,128, 0, 0, 59,224,255,255,
/* 0x0650 */ 57, 74, 0, 1,125, 73, 3,166, 66, 64, 0, 60,129, 72, 0, 0,
/* 0x0660 */ 47,138, 0, 1, 64,158, 0, 40,232,232, 0, 16,127,191, 56, 64,
/* 0x0670 */ 64,157, 0, 8,124,255, 59,120,233, 72, 0, 40,125, 71, 82, 20,
/* 0x0680 */ 127,164, 80, 64, 64,156, 0, 8,125, 68, 83,120, 57, 8, 0, 56,
/* 0x0690 */ 75,255,255,200,127, 85,208,248,127,255,208, 56,124,149, 34, 20,
/* 0x06a0 */ 127,227,251,120,124,159, 32, 80, 56,160, 0, 0,124,132,208, 56,
/* 0x06b0 */ 124,198, 7,180, 56,224,255,255, 57, 0, 0, 0, 75,255,252,201,
/* 0x06c0 */ 96, 0, 0, 0,127, 90,208,248, 62,224, 0, 1,147, 65, 0,136,
/* 0x06d0 */ 122,247,131,228,127,255, 24, 80, 61,192, 78,128,123,233, 54,100,
/* 0x06e0 */ 249, 33, 0,128, 59, 32, 0, 0, 46, 51, 0, 0, 98,247, 0, 1,
/* 0x06f0 */ 97,206, 0, 32,161, 93, 0, 56,127,138,200, 0, 64,157, 2, 56,
/* 0x0700 */ 129, 81, 0, 0, 65,146, 0, 36, 47,138, 0, 6, 64,158, 0, 28,
/* 0x0710 */ 232,177, 0, 16,127, 3,195,120, 56,128, 0, 3,124,191, 42, 20,
/* 0x0720 */ 75,255,252,121, 72, 0, 2, 0, 47,138, 0, 1, 64,158, 1,248,
/* 0x0730 */ 65,146, 0, 76,233, 81, 0, 8, 47,170, 0, 0, 64,158, 0, 64,
/* 0x0740 */ 233, 93, 0, 32,232,177, 0, 16,127, 3,195,120, 56,128, 0, 3,
/* 0x0750 */ 125, 95, 82, 20,124,170, 42, 20, 75,255,252, 65,160,189, 0, 56,
/* 0x0760 */ 127, 3,195,120, 56,128, 0, 5, 75,255,252, 49,160,189, 0, 54,
/* 0x0770 */ 127, 3,195,120, 56,128, 0, 4, 75,255,252, 33,131,113, 0, 4,
/* 0x0780 */ 235,209, 0, 16, 61, 32,115, 81, 97, 41, 98, 64,235,145, 0, 32,
/* 0x0790 */ 234,209, 0, 40, 87,123, 22,250,127,223,242, 20,251,129, 0,112,
/* 0x07a0 */ 125, 59,220, 48,127,202,168, 56,251,193, 0,120,126,222,178, 20,
/* 0x07b0 */ 127,138,226, 20,127,202,240, 80, 87,116, 7,126, 64,146, 0, 12,
/* 0x07c0 */ 56,160, 0, 0, 72, 0, 0, 8, 56,160, 0, 2,124,165,163,120,
/* 0x07d0 */ 124,165, 7,180, 65,146, 0, 16, 56,192, 0, 50, 56,224,255,255,
/* 0x07e0 */ 72, 0, 0, 12,232,225, 1, 96, 56,192, 0, 18,233, 17, 0, 8,
/* 0x07f0 */ 127,195,243,120,127,132,227,120,125, 10, 64, 80, 75,255,251,137,
/* 0x0800 */ 96, 0, 0, 0,127,190, 24, 0, 65,254, 0, 16, 56, 96, 0,127,
/* 0x0810 */ 75,255,251, 53, 96, 0, 0, 0, 65,146, 0, 24,126, 99,155,120,
/* 0x0820 */ 56,129, 0,112,126, 5,131,120,125,230,123,120, 75,255,252, 33,
/* 0x0830 */ 125, 92, 0,208,123,105,255,227,125, 90,168, 56, 64,130, 0, 12,
/* 0x0840 */ 64,146, 0, 48, 72, 0, 0,168, 47,186, 0, 0, 65,158,255,244,
/* 0x0850 */ 127, 73, 3,166,124,254,226, 20, 57, 0, 0, 0, 57, 32, 0, 0,
/* 0x0860 */ 125, 39, 65,174, 57, 8, 0, 1, 66, 0,255,244, 75,255,255,212,
/* 0x0870 */ 233, 17, 0, 0,121, 8, 7,194,121, 8, 0, 2,127,168,184, 0,
/* 0x0880 */ 64,158, 0, 80,232,177, 0, 40,233, 17, 0, 32,232,241, 0, 16,
/* 0x0890 */ 127,165, 64, 0, 64,158, 0,196,124,165, 58, 20,129, 33, 0,136,
/* 0x08a0 */ 124,165,250, 20,125, 5, 0,208,125, 8, 72, 56, 43,136, 0, 7,
/* 0x08b0 */ 64,157, 0,168, 61, 32, 68, 0,145,197, 0, 4,127, 3,195,120,
/* 0x08c0 */ 97, 41, 0, 2, 56,128, 0, 0,145, 37, 0, 0, 75,255,250,205,
/* 0x08d0 */ 127,195,243,120,127,132,227,120,126,133, 7,180, 75,255,250,153,
/* 0x08e0 */ 96, 0, 0, 0, 47,163, 0, 0, 64,222,255, 36,127,154,226, 20,
/* 0x08f0 */ 127,222,226, 20,127,190,176, 64, 64,156, 0, 44,127,195,243,120,
/* 0x0900 */ 124,158,176, 80,126,133, 7,180, 56,192, 0, 50, 56,224,255,255,
/* 0x0910 */ 57, 0, 0, 0, 75,255,250,113, 96, 0, 0, 0,127,190, 24, 0,
/* 0x0920 */ 64,222,254,236, 59, 57, 0, 1, 58, 49, 0, 56,127, 57, 7,180,
/* 0x0930 */ 75,255,253,196, 47,178, 0, 0, 65,158, 0, 8,251,242, 0, 0,
/* 0x0940 */ 56, 33, 1, 32,232,125, 0, 24,124,127, 26, 20,129,129, 0, 8,
/* 0x0950 */ 125,144,129, 32, 72, 0, 1,224,233, 33, 0,128,233, 17, 0, 8,
/* 0x0960 */ 124,167, 74, 20, 47,168, 0, 0, 56,165, 0, 8, 65,158,255, 72,
/* 0x0970 */ 75,255,255, 96, 0, 0, 0, 0, 0, 0, 0, 3,128, 18, 0, 0,
/* 0x0980 */ 124, 8, 2,166, 72, 0, 1,137,248, 33,255, 17,124,191, 43,120,
/* 0x0990 */ 124,218, 51,120,125, 60, 75,120,129, 35, 0, 0, 56,192, 0, 0,
/* 0x09a0 */ 125, 88, 83,120,248,161, 0,152,249, 33, 0,144,124,229, 59,120,
/* 0x09b0 */ 59,191, 0, 64,248, 97, 0,120,248,129, 0,112, 59,192, 0, 0,
/* 0x09c0 */ 248, 97, 0,136,248,129, 0,128,248,225, 0,160,249, 1, 0,168,
/* 0x09d0 */ 56, 97, 0,112, 56,129, 0,144, 75,255,250,117,232,225, 0,160,
/* 0x09e0 */ 233, 1, 0,168, 56,129, 0,128, 56,160, 0, 0,127, 70,211,120,
/* 0x09f0 */ 127,137,227,120,127, 10,195,120,127,227,251,120, 75,255,251,241,
/* 0x0a00 */ 56,128, 0, 9,124,123, 27,120,127, 67,211,120,127,101,219,120,
/* 0x0a10 */ 75,255,249,137,161, 63, 0, 56,127,137,240, 64, 64,157, 0,176,
/* 0x0a20 */ 129, 61, 0, 0, 47,137, 0, 3, 64,158, 0,148,232,125, 0, 16,
/* 0x0a30 */ 233, 60, 0, 0, 56,128, 0, 0, 56,160, 0, 0,124, 99, 74, 20,
/* 0x0a40 */ 75,255,249, 37, 96, 0, 0, 0, 47,131, 0, 0,124,121, 27,120,
/* 0x0a50 */ 64,252, 0, 16, 56, 96, 0,127, 75,255,248,237, 96, 0, 0, 0,
/* 0x0a60 */ 127,228,251,120, 56,160, 4, 0, 75,255,249, 21, 96, 0, 0, 0,
/* 0x0a70 */ 47,163, 4, 0, 64,222,255,224, 56,128, 0, 0,127, 37,203,120,
/* 0x0a80 */ 56,192, 0, 0, 56,224, 0, 0, 57, 0, 0, 0,127,137,227,120,
/* 0x0a90 */ 127, 10,195,120,127,227,251,120, 75,255,251, 85,232,188, 0, 0,
/* 0x0aa0 */ 56,128, 0, 7,124,123, 27,120,127, 67,211,120, 75,255,248,237,
/* 0x0ab0 */ 127, 35,203,120, 75,255,248,169, 96, 0, 0, 0, 59,222, 0, 1,
/* 0x0ac0 */ 59,189, 0, 56,123,222, 0, 32, 75,255,255, 76, 56, 33, 0,240,
/* 0x0ad0 */ 127, 99,219,120, 72, 0, 0,136, 0, 0, 0, 0, 0, 0, 0, 1,
/* 0x0ae0 */ 128, 8, 0, 0,249,193,255,112,249,225,255,120,250, 1,255,128,
/* 0x0af0 */ 250, 33,255,136,250, 65,255,144,250, 97,255,152,250,129,255,160,
/* 0x0b00 */ 250,161,255,168,250,193,255,176,250,225,255,184,251, 1,255,192,
/* 0x0b10 */ 251, 33,255,200,251, 65,255,208,251, 97,255,216,251,129,255,224,
/* 0x0b20 */ 251,161,255,232,251,193,255,240,251,225,255,248,248, 1, 0, 16,
/* 0x0b30 */ 78,128, 0, 32,233,193,255,112,233,225,255,120,234, 1,255,128,
/* 0x0b40 */ 234, 33,255,136,234, 65,255,144,234, 97,255,152,234,129,255,160,
/* 0x0b50 */ 234,161,255,168,234,193,255,176,234,225,255,184,235, 1,255,192,
/* 0x0b60 */ 235, 33,255,200,235, 65,255,208,235, 97,255,216,235,129,255,224,
/* 0x0b70 */ 232, 1, 0, 16,235,161,255,232,124, 8, 3,166,235,193,255,240,
/* 0x0b80 */ 235,225,255,248, 78,128, 0, 32, 0, 0, 0, 0, 0, 16, 3,152,
/* 0x0b90 */ 0, 0, 0, 0, 0, 16,139,136, 0, 0, 0, 0, 0, 16, 3,220,
/* 0x0ba0 */ 0, 0, 0, 0, 0, 16,139,136, 0, 0, 0, 0, 0, 16, 4, 76,
/* 0x0bb0 */ 0, 0, 0, 0, 0, 16,139,136, 0, 0, 0, 0, 0, 16, 5,236,
/* 0x0bc0 */ 0, 0, 0, 0, 0, 16,139,136, 0, 0, 0, 0, 0, 16, 9,128,
/* 0x0bd0 */ 0, 0, 0, 0, 0, 16,139,136
/* 0x0220 */ 57, 33, 1,136,251, 41, 0, 0,248, 33,247,113,127, 3,195,120,
/* 0x0230 */ 126,228,187,120, 56,161, 0,144,127, 70,211,120,127,231,251,120,
/* 0x0240 */ 126,200,179,120, 56, 0, 0, 0,248,225, 0,112, 56,225, 0,112,
/* 0x0250 */ 248, 1, 0,120,249, 1, 0,128, 57, 1, 0,128,248, 1, 0,136,
/* 0x0260 */ 127,202,243,120, 72, 0, 7,105, 56, 33, 8,144,112, 96, 0, 7,
/* 0x0270 */ 64,130, 0, 36,128, 3, 0, 0, 40, 0, 0, 0, 64,130, 0, 24,
/* 0x0280 */ 232, 1, 1,136,232, 67, 0, 8,124, 66, 2, 20,232, 99, 0, 0,
/* 0x0290 */ 124, 99, 2, 20,124,127, 27,120, 57, 0, 0, 0,127,103,219,120,
/* 0x02a0 */ 56,192, 0, 2, 56,160, 0, 1,124,158, 0,208, 56, 96, 0, 0,
/* 0x02b0 */ 72, 0, 0,173,127, 99,219,120, 72, 0, 0,229,127, 67,211,120,
/* 0x02c0 */ 232, 3, 0, 0,232,131, 0, 8, 56, 99, 0, 16, 43,160, 0, 0,
/* 0x02d0 */ 64,254,255,240,124,137, 3,166,127,163,235,120,127,132,227,120,
/* 0x02e0 */ 56, 0, 0, 91,127,232, 3,166,232,161, 0,176,232,193, 0,184,
/* 0x02f0 */ 232,225, 0,192,233, 1, 0,200,233, 33, 0,208,233, 65, 0,216,
/* 0x0300 */ 233, 97, 0,224,233,129, 0,232,233,161, 0,240,233,193, 0,248,
/* 0x0310 */ 233,225, 1, 0,234, 1, 1, 8,234, 33, 1, 16,234, 65, 1, 24,
/* 0x0320 */ 234, 97, 1, 32,234,129, 1, 40,234,161, 1, 48,234,193, 1, 56,
/* 0x0330 */ 234,225, 1, 64,235, 1, 1, 72,235, 33, 1, 80,235, 65, 1, 88,
/* 0x0340 */ 235, 97, 1, 96,235,129, 1,104,235,161, 1,112,235,193, 1,120,
/* 0x0350 */ 235,225, 1,128, 56, 33, 1,144, 78,128, 4, 32,120,231, 0, 32,
/* 0x0360 */ 56, 0, 0, 90, 68, 0, 0, 2, 64,227, 0, 8, 56, 96,255,255,
/* 0x0370 */ 78,128, 0, 32, 56, 0, 0, 1, 72, 0, 0, 8, 56, 0, 0, 45,
/* 0x0380 */ 72, 0, 0, 8, 56, 0, 0, 85, 72, 0, 0, 8, 56, 0, 0, 3,
/* 0x0390 */ 72, 0, 0, 8, 56, 0, 0, 5, 72, 0, 0, 8, 56, 0, 0, 6,
/* 0x03a0 */ 72, 0, 0, 8, 56, 0, 0,125, 72, 0, 0, 8, 56, 0, 0, 91,
/* 0x03b0 */ 75,255,255,180,124,128, 0, 8, 78,128, 0, 32, 44, 35, 0, 0,
/* 0x03c0 */ 77,130, 0, 32, 47, 36, 0, 0,233, 67, 0, 0,127,170, 32, 64,
/* 0x03d0 */ 64,158, 0, 16,248,131, 0, 0,248,163, 0, 8, 78,128, 0, 32,
/* 0x03e0 */ 43,170, 0, 1, 64,158, 0, 8, 64,154,255,236, 56, 99, 0, 16,
/* 0x03f0 */ 75,255,255,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0400 */ 233, 67, 0, 0,233, 3, 0, 8, 56,229, 0, 1, 57, 32, 0, 0,
/* 0x0410 */ 124,233, 3,166,127,170, 40, 64, 64,252, 0, 28,124, 8, 2,166,
/* 0x0420 */ 56, 96, 0,127,248, 1, 0, 16,248, 33,255,145, 75,255,255, 73,
/* 0x0430 */ 96, 0, 0, 0, 66, 64, 0, 20,125, 72, 72,174,125, 68, 73,174,
/* 0x0440 */ 57, 41, 0, 1, 75,255,255,240,233, 67, 0, 8,125, 74, 74, 20,
/* 0x0450 */ 249, 67, 0, 8,233, 67, 0, 0,125, 41, 80, 80,249, 35, 0, 0,
/* 0x0460 */ 78,128, 0, 32, 0, 0, 0, 0, 0, 0, 0, 1,128, 0, 0, 0,
/* 0x0470 */ 125,128, 0, 38,124, 8, 2,166,145,129, 0, 8, 72, 0, 6,253,
/* 0x0480 */ 248, 33,255, 81,124,126, 27,120,124,159, 35,120,124,189, 43,120,
/* 0x0490 */ 124,220, 51,120, 46, 38, 0, 0,233, 63, 0, 0, 47,169, 0, 0,
/* 0x04a0 */ 65,158, 1, 84,127,195,243,120, 56,129, 0,112, 56,160, 0, 12,
/* 0x04b0 */ 75,255,255, 81,129, 65, 0,112,129, 33, 0,116, 47,170, 0, 0,
/* 0x04c0 */ 64,158, 0, 32,109, 37, 33, 88, 47,133, 80, 85, 64,158, 0, 28,
/* 0x04d0 */ 233, 62, 0, 0, 47,169, 0, 0, 65,254, 1, 28, 72, 0, 0, 12,
/* 0x04e0 */ 121, 41, 0, 33, 64,226, 0, 16, 56, 96, 0,127, 75,255,254,137,
/* 0x04f0 */ 96, 0, 0, 0,127, 9, 80, 64, 65,217,255,240,233, 31, 0, 0,
/* 0x0500 */ 127,170, 64, 64, 65,221,255,228,232,191, 0, 8, 64,152, 0,184,
/* 0x0510 */ 125, 36, 75,120,233, 61, 0, 0,232,126, 0, 8, 56,193, 0,128,
/* 0x0520 */ 249, 65, 0,128,248, 65, 0, 40,136,225, 0,120,233,125, 0, 16,
/* 0x0530 */ 125, 41, 3,166,232, 93, 0, 8, 78,128, 4, 33,232, 65, 0, 40,
/* 0x0540 */ 47,163, 0, 0, 64,222,255,164,232,129, 0,128,129, 33, 0,112,
/* 0x0550 */ 127,164, 72, 64, 64,222,255,148,136,193, 0,121, 47,166, 0, 0,
/* 0x0560 */ 65,158, 0, 68, 65,146, 0, 64, 43,164, 2, 0, 65,157, 0, 16,
/* 0x0570 */ 233, 63, 0, 0,127,169, 32, 0, 64,158, 0, 44,232,127, 0, 8,
/* 0x0580 */ 136,161, 0,122,120,132, 0, 32,248, 65, 0, 40,233, 60, 0, 0,
/* 0x0590 */ 233,124, 0, 16,125, 41, 3,166,232, 92, 0, 8, 78,128, 4, 33,
/* 0x05a0 */ 232, 65, 0, 40,129, 1, 0,116,233, 94, 0, 8,233, 62, 0, 0,
/* 0x05b0 */ 125, 74, 66, 20,125, 40, 72, 80,249, 94, 0, 8,249, 62, 0, 0,
/* 0x05c0 */ 72, 0, 0, 20,124,164, 43,120,127,195,243,120,125, 37, 75,120,
/* 0x05d0 */ 75,255,254, 49,129, 1, 0,112,233, 95, 0, 8,233, 63, 0, 0,
/* 0x05e0 */ 125, 74, 66, 20,125, 40, 72, 80,249, 95, 0, 8,249, 63, 0, 0,
/* 0x05f0 */ 75,255,254,168, 56, 33, 0,176,129,129, 0, 8,125,144,129, 32,
/* 0x0600 */ 72, 0, 5,200, 0, 0, 0, 0, 0, 0, 0, 3,128, 4, 0, 0,
/* 0x0610 */ 125,128, 0, 38,124, 8, 2,166,145,129, 0, 8, 72, 0, 5, 37,
/* 0x0620 */ 248, 33,254,225,125, 15, 67,120,161, 3, 0, 16,125, 50, 75,120,
/* 0x0630 */ 233, 35, 0, 32,125, 90, 83,120,124,125, 27,120,124,147, 35,120,
/* 0x0640 */ 47,136, 0, 3,248,161, 1, 96,124,216, 51,120,124,240, 59,120,
/* 0x0650 */ 126, 35, 74, 20, 57, 64, 0, 16, 64,158, 0, 8, 57, 64, 0, 0,
/* 0x0660 */ 161, 29, 0, 56,232,114, 0, 0, 57, 74, 0, 34,126, 39,139,120,
/* 0x0670 */ 121, 70, 0, 32, 56,128, 0, 0, 57, 8, 0, 1, 59,224,255,255,
/* 0x0680 */ 125, 9, 3,166, 66, 64, 0, 60,129, 7, 0, 0, 47,136, 0, 1,
/* 0x0690 */ 64,158, 0, 40,232,167, 0, 16,127,191, 40, 64, 64,157, 0, 8,
/* 0x06a0 */ 124,191, 43,120,233, 7, 0, 40,125, 5, 66, 20,127,164, 64, 64,
/* 0x06b0 */ 64,156, 0, 8,125, 4, 67,120, 56,231, 0, 56, 75,255,255,200,
/* 0x06c0 */ 127, 85,208,248,127,255,208, 56,124,149, 34, 20,121, 73,231,227,
/* 0x06d0 */ 124,159, 32, 80,124,132,208, 56, 64,130, 0, 28, 47,191, 0, 0,
/* 0x06e0 */ 64,158, 0, 28, 47,163, 0, 0, 65,158, 0, 24, 56,192, 0, 50,
/* 0x06f0 */ 72, 0, 0, 16,127,227,251,120, 72, 0, 0, 8, 56, 96, 0, 0,
/* 0x0700 */ 56,160, 0, 0,124,198, 7,180, 56,224,255,255, 57, 0, 0, 0,
/* 0x0710 */ 75,255,252, 77, 96, 0, 0, 0,127, 90,208,248, 62,224, 0, 1,
/* 0x0720 */ 147, 65, 0,136,122,247,131,228,127,255, 24, 80, 61,192, 78,128,
/* 0x0730 */ 123,233, 54,100,249, 33, 0,128, 59, 32, 0, 0, 46, 51, 0, 0,
/* 0x0740 */ 98,247, 0, 1, 97,206, 0, 32,161, 93, 0, 56,127,138,200, 0,
/* 0x0750 */ 64,157, 2, 56,129, 81, 0, 0, 65,146, 0, 36, 47,138, 0, 6,
/* 0x0760 */ 64,158, 0, 28,232,177, 0, 16,127, 3,195,120, 56,128, 0, 3,
/* 0x0770 */ 124,191, 42, 20, 75,255,252, 73, 72, 0, 2, 0, 47,138, 0, 1,
/* 0x0780 */ 64,158, 1,248, 65,146, 0, 76,233, 81, 0, 8, 47,170, 0, 0,
/* 0x0790 */ 64,158, 0, 64,233, 93, 0, 32,232,177, 0, 16,127, 3,195,120,
/* 0x07a0 */ 56,128, 0, 3,125, 95, 82, 20,124,170, 42, 20, 75,255,252, 17,
/* 0x07b0 */ 160,189, 0, 56,127, 3,195,120, 56,128, 0, 5, 75,255,252, 1,
/* 0x07c0 */ 160,189, 0, 54,127, 3,195,120, 56,128, 0, 4, 75,255,251,241,
/* 0x07d0 */ 131,113, 0, 4,235,209, 0, 16, 61, 32,115, 81, 97, 41, 98, 64,
/* 0x07e0 */ 235,145, 0, 32,234,209, 0, 40, 87,123, 22,250,127,223,242, 20,
/* 0x07f0 */ 251,129, 0,112,125, 59,220, 48,127,202,168, 56,251,193, 0,120,
/* 0x0800 */ 126,222,178, 20,127,138,226, 20,127,202,240, 80, 87,116, 7,126,
/* 0x0810 */ 64,146, 0, 12, 56,160, 0, 0, 72, 0, 0, 8, 56,160, 0, 2,
/* 0x0820 */ 124,165,163,120,124,165, 7,180, 64,146, 0, 16,232,225, 1, 96,
/* 0x0830 */ 56,192, 0, 18, 72, 0, 0, 12, 56,192, 0, 50, 56,224,255,255,
/* 0x0840 */ 233, 17, 0, 8,127,195,243,120,127,132,227,120,125, 10, 64, 80,
/* 0x0850 */ 75,255,251, 13, 96, 0, 0, 0,127,190, 24, 0, 65,254, 0, 16,
/* 0x0860 */ 56, 96, 0,127, 75,255,251, 17, 96, 0, 0, 0, 65,146, 0, 24,
/* 0x0870 */ 126, 99,155,120, 56,129, 0,112,126, 5,131,120,125,230,123,120,
/* 0x0880 */ 75,255,251,241,125, 92, 0,208,123,105,255,227,125, 90,168, 56,
/* 0x0890 */ 64,130, 0, 12, 64,146, 0, 48, 72, 0, 0,168, 47,186, 0, 0,
/* 0x08a0 */ 65,158,255,244,127, 73, 3,166,124,254,226, 20, 57, 0, 0, 0,
/* 0x08b0 */ 57, 32, 0, 0,125, 39, 65,174, 57, 8, 0, 1, 66, 0,255,244,
/* 0x08c0 */ 75,255,255,212,233, 17, 0, 0,121, 8, 7,194,121, 8, 0, 2,
/* 0x08d0 */ 127,168,184, 0, 64,158, 0, 80,232,177, 0, 40,233, 17, 0, 32,
/* 0x08e0 */ 232,241, 0, 16,127,165, 64, 0, 64,158, 0,188,124,165, 58, 20,
/* 0x08f0 */ 129, 33, 0,136,124,165,250, 20,125, 5, 0,208,125, 8, 72, 56,
/* 0x0900 */ 43,136, 0, 7, 64,157, 0,160, 61, 32, 68, 0,145,197, 0, 4,
/* 0x0910 */ 127, 3,195,120, 97, 41, 0, 2, 56,128, 0, 0,145, 37, 0, 0,
/* 0x0920 */ 75,255,250,157,127,195,243,120,127,132,227,120,126,133, 7,180,
/* 0x0930 */ 75,255,250,117, 96, 0, 0, 0, 47,163, 0, 0, 64,222,255, 36,
/* 0x0940 */ 127,154,226, 20,127,222,226, 20,127,190,176, 64, 64,156, 0, 44,
/* 0x0950 */ 127,195,243,120,124,158,176, 80,126,133, 7,180, 56,192, 0, 50,
/* 0x0960 */ 56,224,255,255, 57, 0, 0, 0, 75,255,249,245, 96, 0, 0, 0,
/* 0x0970 */ 127,190, 24, 0, 64,222,254,236, 59, 57, 0, 1, 58, 49, 0, 56,
/* 0x0980 */ 127, 57, 7,180, 75,255,253,196,251,242, 0, 0, 56, 33, 1, 32,
/* 0x0990 */ 129,129, 0, 8,125,144,129, 32,232,125, 0, 24,124,127, 26, 20,
/* 0x09a0 */ 72, 0, 1,240,233, 33, 0,128,233, 17, 0, 8,124,167, 74, 20,
/* 0x09b0 */ 47,168, 0, 0, 56,165, 0, 8, 65,158,255, 80, 75,255,255,104,
/* 0x09c0 */ 0, 0, 0, 0, 0, 0, 0, 3,128, 18, 0, 0,124, 8, 2,166,
/* 0x09d0 */ 72, 0, 1,153,248, 33,255, 17,125, 61, 75,120,129, 35, 0, 0,
/* 0x09e0 */ 124,191, 43,120,124,218, 51,120, 56,192, 0, 0,125, 88, 83,120,
/* 0x09f0 */ 249, 33, 0,144,248,161, 0,152,124,229, 59,120, 59,159, 0, 64,
/* 0x0a00 */ 129, 35, 0, 4,248, 97, 0,120, 59,192, 0, 0,248, 97, 0,136,
/* 0x0a10 */ 248,129, 0,128, 57, 41, 0, 12,248,225, 0,160,249, 1, 0,168,
/* 0x0a20 */ 249, 33, 0,112, 56, 97, 0,112, 56,129, 0,144, 75,255,250, 69,
/* 0x0a30 */ 232,225, 0,160,233, 1, 0,168, 56,129, 0,128, 56,160, 0, 0,
/* 0x0a40 */ 127, 70,211,120,127,169,235,120,127, 10,195,120,127,227,251,120,
/* 0x0a50 */ 75,255,251,193, 56,128, 0, 9,124,123, 27,120,127, 67,211,120,
/* 0x0a60 */ 127,101,219,120, 75,255,249, 89,161, 63, 0, 56,127,137,240, 64,
/* 0x0a70 */ 64,157, 0,184,129, 60, 0, 0, 47,137, 0, 3, 64,158, 0,156,
/* 0x0a80 */ 232,124, 0, 16,233, 61, 0, 0, 56,128, 0, 0, 56,160, 0, 0,
/* 0x0a90 */ 124, 99, 74, 20, 75,255,249, 1, 96, 0, 0, 0, 47,131, 0, 0,
/* 0x0aa0 */ 124,121, 27,120, 64,252, 0, 16, 56, 96, 0,127, 75,255,248,201,
/* 0x0ab0 */ 96, 0, 0, 0,127,228,251,120, 56,160, 4, 0, 75,255,248,209,
/* 0x0ac0 */ 96, 0, 0, 0, 47,163, 4, 0, 64,222,255,224, 57, 32, 0, 0,
/* 0x0ad0 */ 56,128, 0, 0,249, 61, 0, 0,127, 37,203,120, 56,192, 0, 0,
/* 0x0ae0 */ 56,224, 0, 0, 57, 0, 0, 0,127,169,235,120,127, 10,195,120,
/* 0x0af0 */ 127,227,251,120, 75,255,251, 29,232,189, 0, 0, 56,128, 0, 7,
/* 0x0b00 */ 124,123, 27,120,127, 67,211,120, 75,255,248,181,127, 35,203,120,
/* 0x0b10 */ 75,255,248,141, 96, 0, 0, 0, 59,222, 0, 1, 59,156, 0, 56,
/* 0x0b20 */ 123,222, 0, 32, 75,255,255, 68, 56, 33, 0,240,127, 99,219,120,
/* 0x0b30 */ 72, 0, 0,136, 0, 0, 0, 0, 0, 0, 0, 1,128, 8, 0, 0,
/* 0x0b40 */ 249,193,255,112,249,225,255,120,250, 1,255,128,250, 33,255,136,
/* 0x0b50 */ 250, 65,255,144,250, 97,255,152,250,129,255,160,250,161,255,168,
/* 0x0b60 */ 250,193,255,176,250,225,255,184,251, 1,255,192,251, 33,255,200,
/* 0x0b70 */ 251, 65,255,208,251, 97,255,216,251,129,255,224,251,161,255,232,
/* 0x0b80 */ 251,193,255,240,251,225,255,248,248, 1, 0, 16, 78,128, 0, 32,
/* 0x0b90 */ 233,193,255,112,233,225,255,120,234, 1,255,128,234, 33,255,136,
/* 0x0ba0 */ 234, 65,255,144,234, 97,255,152,234,129,255,160,234,161,255,168,
/* 0x0bb0 */ 234,193,255,176,234,225,255,184,235, 1,255,192,235, 33,255,200,
/* 0x0bc0 */ 235, 65,255,208,235, 97,255,216,235,129,255,224,232, 1, 0, 16,
/* 0x0bd0 */ 235,161,255,232,124, 8, 3,166,235,193,255,240,235,225,255,248,
/* 0x0be0 */ 78,128, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3,188,
/* 0x0bf0 */ 0, 0, 0, 0, 0, 16,139,232, 0, 0, 0, 0, 0, 16, 4, 0,
/* 0x0c00 */ 0, 0, 0, 0, 0, 16,139,232, 0, 0, 0, 0, 0, 16, 4,112,
/* 0x0c10 */ 0, 0, 0, 0, 0, 16,139,232, 0, 0, 0, 0, 0, 16, 6, 16,
/* 0x0c20 */ 0, 0, 0, 0, 0, 16,139,232, 0, 0, 0, 0, 0, 16, 9,204,
/* 0x0c30 */ 0, 0, 0, 0, 0, 16,139,232
};

View File

@ -32,8 +32,8 @@
#define STUB_POWERPC64LE_DARWIN_DYLIB_ENTRY_SIZE 11099
#define STUB_POWERPC64LE_DARWIN_DYLIB_ENTRY_ADLER32 0xb765b4bf
#define STUB_POWERPC64LE_DARWIN_DYLIB_ENTRY_CRC32 0xd32cc21c
#define STUB_POWERPC64LE_DARWIN_DYLIB_ENTRY_ADLER32 0xb665b4bf
#define STUB_POWERPC64LE_DARWIN_DYLIB_ENTRY_CRC32 0x9c7d235f
unsigned char stub_powerpc64le_darwin_dylib_entry[11099] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@ -522,8 +522,8 @@ unsigned char stub_powerpc64le_darwin_dylib_entry[11099] = {
/* 0x1e30 */ 104, 0,130, 65, 20, 26,123,127,120, 27,119,124, 4, 0,122, 56,
/* 0x1e40 */ 29, 1, 0, 72, 20, 26, 90,127,120, 27,118,124, 12, 0, 90, 59,
/* 0x1e50 */ 249,255,225,250,166, 3,232,127, 12, 0,120, 56,120,179,196,126,
/* 0x1e60 */ 120,203, 37,127,120, 11, 38,124, 8, 0,248,136,145,255, 33,248,
/* 0x1e70 */ 33, 0,128, 78,120, 0, 33, 56, 9, 0,216,136, 0, 0, 6, 40,
/* 0x1e60 */ 120,203, 37,127,120, 11, 38,124, 8, 0,248,136,113,255, 33,248,
/* 0x1e70 */ 33, 0,128, 78,152, 0, 33, 56, 9, 0,216,136, 0, 0, 6, 40,
/* 0x1e80 */ 160,255,130, 65, 10, 0,184,136, 0, 0,152,232,120,203, 35,127,
/* 0x1e90 */ 241, 0, 0, 72,140,255,255, 75,145, 0, 0, 72, 2, 0, 0, 68,
/* 0x1ea0 */ 255,255, 96, 56, 0, 0, 65,232, 8, 0, 97,232, 16, 0,129,232,

View File

@ -32,8 +32,8 @@
#define STUB_POWERPC64LE_DARWIN_MACHO_ENTRY_SIZE 10439
#define STUB_POWERPC64LE_DARWIN_MACHO_ENTRY_ADLER32 0xea83a5d4
#define STUB_POWERPC64LE_DARWIN_MACHO_ENTRY_CRC32 0xca01d03a
#define STUB_POWERPC64LE_DARWIN_MACHO_ENTRY_ADLER32 0x7914a5b4
#define STUB_POWERPC64LE_DARWIN_MACHO_ENTRY_CRC32 0x5e59d09e
unsigned char stub_powerpc64le_darwin_macho_entry[10439] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@ -503,7 +503,7 @@ unsigned char stub_powerpc64le_darwin_macho_entry[10439] = {
/* 0x1d00 */ 12, 0,139,128,166, 3,137,124, 8, 0,203,128, 16, 0,235,136,
/* 0x1d10 */ 20, 90,164,124, 20, 0,165, 56, 20, 90,102,124,192, 0, 99, 56,
/* 0x1d20 */ 255,255, 5,140,255,255, 3,156,248,255, 32, 67,166, 3,233,127,
/* 0x1d30 */ 128, 0,171, 56,248,255,193,248,248,255,193, 56,145,255, 33,248,
/* 0x1d30 */ 128, 0,171, 56,248,255,193,248,248,255,193, 56,113,255, 33,248,
/* 0x1d40 */ 32, 4,128, 78,166, 2,232,127,181,255,255, 75,128, 0, 0, 72,
/* 0x1d50 */ 0, 0, 0, 0,102,105,108,101, 32,102,111,114,109, 97,116, 32,
/* 0x1d60 */ 101,108,102, 54, 52, 45,112,111,119,101,114,112, 99,108,101, 10,

View File

@ -32,8 +32,8 @@
#define STUB_POWERPC64LE_DARWIN_MACHO_FOLD_SIZE 6512
#define STUB_POWERPC64LE_DARWIN_MACHO_FOLD_ADLER32 0xddf7c367
#define STUB_POWERPC64LE_DARWIN_MACHO_FOLD_CRC32 0x5f6b909e
#define STUB_POWERPC64LE_DARWIN_MACHO_FOLD_ADLER32 0xe4f7c367
#define STUB_POWERPC64LE_DARWIN_MACHO_FOLD_CRC32 0xd9c156f2
unsigned char stub_powerpc64le_darwin_macho_fold[6512] = {
/* 0x0000 */ 8, 0,128,124,105, 0, 0, 72,208, 0, 6, 40, 32, 0,194, 76,
@ -42,11 +42,11 @@ unsigned char stub_powerpc64le_darwin_macho_fold[6512] = {
/* 0x0030 */ 252,255, 99, 56,166, 3,137,124, 28, 0, 0, 72,186, 2, 96, 85,
/* 0x0040 */ 80, 0, 3,124, 20, 58, 0,124,186, 1, 11, 80, 0, 0, 99,145,
/* 0x0050 */ 32, 0, 64, 79, 4, 0, 99,133,190, 85, 96, 85, 64, 40, 0,124,
/* 0x0060 */ 220,255,194, 65,240,255, 32, 67, 32, 0,128, 78,112, 0, 33, 56,
/* 0x0060 */ 220,255,194, 65,240,255, 32, 67, 32, 0,128, 78,144, 0, 33, 56,
/* 0x0070 */ 0, 0, 32, 57,252,255, 33,149,120, 11, 41,124,166, 2, 8,125,
/* 0x0080 */ 248,255,159,128, 80,248,100,124, 24, 0,195,128, 0, 8, 6, 40,
/* 0x0090 */ 8, 0,129, 65, 0, 8,192, 56,120, 11, 61,124, 80, 8, 38,124,
/* 0x00a0 */ 120, 11, 37,124,145,255, 33,248,120,251,231,127,105, 6, 0, 72,
/* 0x00a0 */ 120, 11, 37,124,113,255, 33,248,120,251,231,127,105, 6, 0, 72,
/* 0x00b0 */ 120,235,161,127, 0, 0, 3,128,166, 3, 9,124,136, 0, 3,128,
/* 0x00c0 */ 32,241, 15,124,140, 0, 3,128,166, 3, 1,124,144, 0, 3,128,
/* 0x00d0 */ 166, 3, 8,124, 24, 0,131,184, 8, 0, 3,128, 16, 0, 67,128,

View File

@ -1,5 +1,5 @@
/* powerpc64le-linux.elf-entry.h
created from powerpc64le-linux.elf-entry.bin, 11354 (0x2c5a) bytes
created from powerpc64le-linux.elf-entry.bin, 11186 (0x2bb2) bytes
This file is part of the UPX executable compressor.
@ -31,14 +31,14 @@
*/
#define STUB_POWERPC64LE_LINUX_ELF_ENTRY_SIZE 11354
#define STUB_POWERPC64LE_LINUX_ELF_ENTRY_ADLER32 0x7c5ec5de
#define STUB_POWERPC64LE_LINUX_ELF_ENTRY_CRC32 0x45740506
#define STUB_POWERPC64LE_LINUX_ELF_ENTRY_SIZE 11186
#define STUB_POWERPC64LE_LINUX_ELF_ENTRY_ADLER32 0xe9ae82c5
#define STUB_POWERPC64LE_LINUX_ELF_ENTRY_CRC32 0x1c0624dc
unsigned char stub_powerpc64le_linux_elf_entry[11354] = {
unsigned char stub_powerpc64le_linux_elf_entry[11186] = {
/* 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,112, 34, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,240, 33, 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,
@ -503,247 +503,237 @@ unsigned char stub_powerpc64le_linux_elf_entry[11354] = {
/* 0x1d00 */ 109,109, 97,112, 32,102, 97,105,108,101,100, 46, 10, 0, 0, 0,
/* 0x1d10 */ 14, 0,160, 56,166, 2,136,124, 2, 0, 96, 56, 4, 0, 0, 56,
/* 0x1d20 */ 2, 0, 0, 68,127, 0, 96, 56, 1, 0, 0, 56, 2, 0, 0, 68,
/* 0x1d30 */ 166, 2, 8,127,248,255,191, 59, 0, 0, 29,128, 0, 0,120,131,
/* 0x1d40 */ 80,232,160,127, 16, 0, 29,160, 3, 0, 0, 40, 68, 0,130, 65,
/* 0x1d50 */ 104, 0,157,235, 0, 0, 0, 57, 80,224,158,127,255,255,224, 56,
/* 0x1d60 */ 255,255,156, 59, 50, 0,192, 56, 56,240,156,127, 3, 0,160, 56,
/* 0x1d70 */ 4, 0,152,128, 20,226,125,124, 20, 34,156,127, 90, 0, 0, 56,
/* 0x1d80 */ 2, 0, 0, 68, 0, 0,195, 65, 0, 0, 32, 59,184, 0, 0, 72,
/* 0x1d90 */ 120,235,185,127,104, 0,221,234, 4, 0, 24,128, 20,178,128,127,
/* 0x1da0 */ 120,227,132,127, 80,232,228,126, 56,240,247,126,120,211, 67,127,
/* 0x1db0 */ 0, 0,195,232, 8, 0, 3,233, 16, 0, 99, 56, 0, 0,166, 43,
/* 0x1dc0 */ 44, 0,222, 65,224,255,198, 56, 1, 0,166, 43,228,255,253, 65,
/* 0x1dd0 */ 80, 64,215,124, 64, 32,166,127,216,255,252, 64, 80, 48,196,124,
/* 0x1de0 */ 20, 50,247,126, 56,240,247,126,200,255,255, 75,120,187,227,126,
/* 0x1df0 */ 0, 0, 0, 57,255,255,224, 56, 50, 0,192, 56, 3, 0,160, 56,
/* 0x1e00 */ 90, 0, 0, 56, 2, 0, 0, 68, 0, 0,195, 65, 80,184, 29,124,
/* 0x1e10 */ 20, 2,255,127,120,179,198,126, 15, 0,198, 56,248,255,157, 56,
/* 0x1e20 */ 2,225,198,120,248,255, 99, 56,166, 3,201,124, 8, 0,164,232,
/* 0x1e30 */ 17, 0,196,232, 8, 0,163,248, 17, 0,195,248,240,255, 0, 66,
/* 0x1e40 */ 120,187,253,126,120, 27,101,124,120, 27,119,124,166, 3,233,127,
/* 0x1e50 */ 4, 0, 24,128, 12, 0,248,136,104, 1,193, 56,104, 1, 1,248,
/* 0x1e60 */ 8, 0,152,128, 16, 0,120, 56, 33, 4,128, 78, 5, 0,160, 56,
/* 0x1e70 */ 120,227,132,127,120,235,163,127,125, 0, 0, 56, 2, 0, 0, 68,
/* 0x1e80 */ 166, 3,233,126, 32, 4,128, 78, 0, 0, 3,232, 8, 0, 99, 56,
/* 0x1e90 */ 0, 0,160, 47,244,255,254, 64, 32, 0,128, 78,145,254, 33,248,
/* 0x1ea0 */ 120, 0, 65,248,128, 0, 97,248,136, 0,129,248,144, 0,161,248,
/* 0x1eb0 */ 152, 0,193,248,160, 0,225,248,168, 0, 1,249,176, 0, 33,249,
/* 0x1ec0 */ 184, 0, 65,249,192, 0, 97,249,200, 0,129,249,208, 0,161,249,
/* 0x1ed0 */ 216, 0,193,249,224, 0,225,249,232, 0, 1,250,240, 0, 33,250,
/* 0x1ee0 */ 248, 0, 65,250, 0, 1, 97,250, 8, 1,129,250, 16, 1,161,250,
/* 0x1ef0 */ 24, 1,193,250, 32, 1,225,250, 40, 1, 1,251, 48, 1, 33,251,
/* 0x1f00 */ 56, 1, 65,251, 64, 1, 97,251, 72, 1,129,251, 80, 1,161,251,
/* 0x1f10 */ 88, 1,193,251, 96, 1,225,251,166, 2,232,127,112, 1, 97, 56,
/* 0x1f20 */ 105,255,255, 75,101,255,255, 75,120, 27,122,124, 0, 0, 3,232,
/* 0x1f30 */ 8, 0,131,232, 16, 0, 99, 56, 6, 0,160, 47, 16, 0,222, 65,
/* 0x1f40 */ 0, 0, 32, 44,232,255,226, 64, 1, 0,128, 60,208, 0,196,127,
/* 0x1f50 */ 225,253,255, 75, 0, 0, 0, 0,102,105,108,101, 32,102,111,114,
/* 0x1f60 */ 109, 97,116, 32,101,108,102, 54, 52, 45,112,111,119,101,114,112,
/* 0x1f70 */ 99,108,101, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,
/* 0x1f80 */ 100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1f90 */ 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32,
/* 0x1fa0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65,
/* 0x1fb0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,
/* 0x1fc0 */ 105,108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,
/* 0x1fd0 */ 108, 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x1fe0 */ 88, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32,
/* 0x1ff0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2000 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2010 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 48, 32, 32, 50,
/* 0x2020 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82,
/* 0x2030 */ 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32,
/* 0x2040 */ 32, 49, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32,
/* 0x2050 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x2060 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x2070 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x2080 */ 48, 48, 48, 48, 48, 52, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67,
/* 0x2090 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76,
/* 0x20a0 */ 89, 10, 32, 32, 50, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32,
/* 0x20b0 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 53, 52, 32, 32, 48, 48,
/* 0x20c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x20d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x20e0 */ 32, 32, 48, 48, 48, 48, 48, 48, 52, 52, 32, 32, 50, 42, 42, 48,
/* 0x20f0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79,
/* 0x2100 */ 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32,
/* 0x2110 */ 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48,
/* 0x2120 */ 48, 48, 48, 49, 52, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2130 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x2140 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x2150 */ 48, 49, 57, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
/* 0x2160 */ 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65,
/* 0x2170 */ 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 78, 82, 86, 50, 66, 32,
/* 0x2180 */ 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,102, 56,
/* 0x2190 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x21a0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x21b0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50,100, 99, 32, 32,
/* 0x21c0 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
/* 0x21d0 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
/* 0x21e0 */ 32, 32, 53, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32,
/* 0x21f0 */ 32, 32, 48, 48, 48, 48, 48, 48, 57, 52, 32, 32, 48, 48, 48, 48,
/* 0x2200 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x2210 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x2220 */ 48, 48, 48, 48, 48, 51,100, 52, 32, 32, 50, 42, 42, 48, 32, 32,
/* 0x2230 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44,
/* 0x2240 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90,
/* 0x2250 */ 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48,
/* 0x2260 */ 48, 48, 50, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2270 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2280 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 52,
/* 0x2290 */ 54, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x22a0 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 55,
/* 0x22b0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48,
/* 0x22c0 */ 48, 48, 48, 48, 98, 98, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x22d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x22e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x22f0 */ 48, 48, 52, 57, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
/* 0x2300 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
/* 0x2310 */ 32, 32, 56, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32,
/* 0x2320 */ 32, 32, 48, 48, 48, 48, 48, 99, 55, 52, 32, 32, 48, 48, 48, 48,
/* 0x2330 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x2340 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x2350 */ 48, 48, 48, 48, 49, 48, 52, 56, 32, 32, 50, 42, 42, 48, 32, 32,
/* 0x2360 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78,
/* 0x2370 */ 76, 89, 10, 32, 32, 57, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32,
/* 0x2380 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 99, 32, 32, 48,
/* 0x2390 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x23a0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x23b0 */ 48, 32, 32, 48, 48, 48, 48, 49, 99, 98, 99, 32, 32, 50, 42, 42,
/* 0x23c0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65,
/* 0x23d0 */ 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 67, 70, 76, 85, 83, 72,
/* 0x23e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 52,
/* 0x23f0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2400 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2410 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 99,100, 56, 32, 32,
/* 0x2420 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
/* 0x2430 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, 32, 69, 76, 70,
/* 0x2440 */ 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48,
/* 0x2450 */ 48, 49, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2460 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2470 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 99,102,
/* 0x2480 */ 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
/* 0x2490 */ 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78,
/* 0x24a0 */ 76, 89, 10, 32, 49, 50, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32,
/* 0x24b0 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 50, 52, 56, 32, 32, 48,
/* 0x24c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x24d0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x24e0 */ 48, 32, 32, 48, 48, 48, 48, 49,100, 49, 48, 32, 32, 50, 42, 42,
/* 0x24f0 */ 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76,
/* 0x2500 */ 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77,
/* 0x2510 */ 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48,
/* 0x2520 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x2530 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48,
/* 0x2540 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2550 */ 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48,
/* 0x2560 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x2570 */ 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48,
/* 0x2580 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82,
/* 0x2590 */ 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x25a0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x25b0 */ 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x25c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73,
/* 0x25d0 */ 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x25e0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77,
/* 0x25f0 */ 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2600 */ 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48,
/* 0x2610 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2620 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x2630 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2640 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48,
/* 0x2650 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x2660 */ 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48,
/* 0x2670 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82,
/* 0x2680 */ 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2690 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x26a0 */ 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x26b0 */ 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48,
/* 0x26c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x26d0 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48,
/* 0x26e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86,
/* 0x26f0 */ 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2700 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50,
/* 0x2710 */ 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2720 */ 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x2730 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x2740 */ 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48,
/* 0x2750 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90,
/* 0x2760 */ 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x2770 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x2780 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48,
/* 0x2790 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90,
/* 0x27a0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x27b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x27c0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48,
/* 0x27d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90,
/* 0x27e0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x27f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x2800 */ 32, 32, 67, 70, 76, 85, 83, 72, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x2810 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 70, 76, 85, 83, 72,
/* 0x2820 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2830 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x2840 */ 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2850 */ 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48,
/* 0x2860 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32,
/* 0x2870 */ 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48,
/* 0x2880 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 79, 95, 66, 73, 78,
/* 0x2890 */ 70, 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82,
/* 0x28a0 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77,
/* 0x28b0 */ 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32,
/* 0x28c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32,
/* 0x28d0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10,
/* 0x28e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x28f0 */ 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 50, 52, 32, 32,
/* 0x2900 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 43, 48,120, 48, 48,
/* 0x2910 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 56, 99, 10, 10,
/* 0x2920 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82,
/* 0x2930 */ 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10,
/* 0x2940 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2950 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2960 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x2970 */ 48, 48, 48, 48, 48, 48, 48, 99, 48, 32, 82, 95, 80, 80, 67, 54,
/* 0x2980 */ 52, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 78, 82, 86, 95,
/* 0x2990 */ 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
/* 0x29a0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82,
/* 0x29b0 */ 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32,
/* 0x29c0 */ 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32,
/* 0x29d0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48,
/* 0x29e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 99, 99, 32,
/* 0x29f0 */ 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32, 32,
/* 0x2a00 */ 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79,
/* 0x2a10 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70,
/* 0x2a20 */ 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, 83,
/* 0x2a30 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80,
/* 0x2a40 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86,
/* 0x2a50 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2a60 */ 48, 48, 48, 57, 56, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69,
/* 0x2a70 */ 76, 49, 52, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76,
/* 0x2a80 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
/* 0x2a90 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 69,
/* 0x2aa0 */ 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32,
/* 0x2ab0 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32,
/* 0x2ac0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10,
/* 0x2ad0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52,
/* 0x2ae0 */ 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32,
/* 0x2af0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 43, 48,120,
/* 0x2b00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 56,
/* 0x2b10 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
/* 0x2b20 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73,
/* 0x2b30 */ 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32,
/* 0x2b40 */ 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32,
/* 0x2b50 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48,
/* 0x2b60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82,
/* 0x2b70 */ 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 50, 52, 32, 32, 32, 32,
/* 0x2b80 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 82, 69, 76, 79, 67,
/* 0x2b90 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79,
/* 0x2ba0 */ 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70,
/* 0x2bb0 */ 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84,
/* 0x2bc0 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2bd0 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2be0 */ 48, 48, 48, 48, 48, 55, 52, 32, 82, 95, 80, 80, 67, 54, 52, 95,
/* 0x2bf0 */ 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x2c00 */ 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2c10 */ 48,102, 56, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 49,
/* 0x2c20 */ 52, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48,
/* 0x2c30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 52, 52, 32,
/* 0x2c40 */ 82, 95, 80, 80, 67, 54, 52, 95, 65, 68, 68, 82, 51, 50, 32, 32,
/* 0x2c50 */ 32, 32, 79, 95, 66, 73, 78, 70, 79, 10
/* 0x1d30 */ 166, 2,200,126, 21, 0, 0, 72, 47,112,114,111, 99, 47,115,101,
/* 0x1d40 */ 108,102, 47,101,120,101, 0, 0,166, 2,104,124, 0, 0,128, 56,
/* 0x1d50 */ 5, 0, 0, 56, 2, 0, 0, 68,120, 27,123,124,248,255, 31,128,
/* 0x1d60 */ 248,255, 63, 59,255,255,224, 56, 4, 0,182,130, 34, 0,192, 56,
/* 0x1d70 */ 80,200, 32,127, 0, 0, 96, 56, 80,176, 25,124, 20, 2,149,124,
/* 0x1d80 */ 120, 35,156,124,153, 0, 0, 72,120, 27,125,124, 8, 0, 22,128,
/* 0x1d90 */ 80,224,149,124,120,219,103,127, 18, 0,192, 56, 20, 2,132,124,
/* 0x1da0 */ 125, 0, 0, 72, 80, 24,153,126,166, 3,233,127, 20,162,255,127,
/* 0x1db0 */ 0, 0,118,130, 16, 0,118, 56, 20,162,214,126, 20,170,246,126,
/* 0x1dc0 */ 56,240,248,127, 80,184,248,126, 12, 0,246,136,136, 1,161,250,
/* 0x1dd0 */ 136, 1,193, 56,120,179,197,126, 8, 0,150,128, 33, 4,128, 78,
/* 0x1de0 */ 0, 0, 22,128, 66,186,195,123, 44, 4, 96,120, 0, 0, 22,144,
/* 0x1df0 */ 5, 0,160, 56,120,187,228,126,120,195, 3,127,125, 0, 0, 56,
/* 0x1e00 */ 2, 0, 0, 68,248,255,255,130, 20,154, 25,127, 20,162, 24,127,
/* 0x1e10 */ 16, 0, 22, 56,166, 3, 9,124, 32, 4,128, 78, 0, 0, 0, 57,
/* 0x1e20 */ 3, 0,160, 56, 90, 0, 0, 56, 2, 0, 0, 68, 8, 0,131, 64,
/* 0x1e30 */ 8, 0,128,124, 32, 0,128, 78, 0, 0, 3,232, 8, 0, 99, 56,
/* 0x1e40 */ 0, 0,160, 47,244,255,254, 64, 32, 0,128, 78,113,254, 33,248,
/* 0x1e50 */ 152, 0, 65,248,160, 0, 97,248,168, 0,129,248,176, 0,161,248,
/* 0x1e60 */ 184, 0,193,248,192, 0,225,248,200, 0, 1,249,208, 0, 33,249,
/* 0x1e70 */ 216, 0, 65,249,224, 0, 97,249,232, 0,129,249,240, 0,161,249,
/* 0x1e80 */ 248, 0,193,249, 0, 1,225,249, 8, 1, 1,250, 16, 1, 33,250,
/* 0x1e90 */ 24, 1, 65,250, 32, 1, 97,250, 40, 1,129,250, 48, 1,161,250,
/* 0x1ea0 */ 56, 1,193,250, 64, 1,225,250, 72, 1, 1,251, 80, 1, 33,251,
/* 0x1eb0 */ 88, 1, 65,251, 96, 1, 97,251,104, 1,129,251,112, 1,161,251,
/* 0x1ec0 */ 120, 1,193,251,128, 1,225,251,166, 2,232,127,144, 1, 97, 56,
/* 0x1ed0 */ 105,255,255, 75,101,255,255, 75,120, 27,122,124, 0, 0, 3,232,
/* 0x1ee0 */ 8, 0,131,232, 16, 0, 99, 56, 6, 0,160, 47, 16, 0,222, 65,
/* 0x1ef0 */ 0, 0, 32, 44,232,255,226, 64, 1, 0,128, 60,208, 0,196,127,
/* 0x1f00 */ 49,254,255, 75, 0, 0, 0, 0,102,105,108,101, 32,102,111,114,
/* 0x1f10 */ 109, 97,116, 32,101,108,102, 54, 52, 45,112,111,119,101,114,112,
/* 0x1f20 */ 99,108,101, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,
/* 0x1f30 */ 100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1f40 */ 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32,
/* 0x1f50 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65,
/* 0x1f60 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,
/* 0x1f70 */ 105,108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,
/* 0x1f80 */ 108, 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x1f90 */ 88, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32,
/* 0x1fa0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1fb0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1fc0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 48, 32, 32, 50,
/* 0x1fd0 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82,
/* 0x1fe0 */ 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32,
/* 0x1ff0 */ 32, 49, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32,
/* 0x2000 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x2010 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x2020 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x2030 */ 48, 48, 48, 48, 48, 52, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67,
/* 0x2040 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76,
/* 0x2050 */ 89, 10, 32, 32, 50, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32,
/* 0x2060 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 53, 52, 32, 32, 48, 48,
/* 0x2070 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x2080 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2090 */ 32, 32, 48, 48, 48, 48, 48, 48, 52, 52, 32, 32, 50, 42, 42, 48,
/* 0x20a0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79,
/* 0x20b0 */ 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32,
/* 0x20c0 */ 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48,
/* 0x20d0 */ 48, 48, 48, 49, 52, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x20e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x20f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x2100 */ 48, 49, 57, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
/* 0x2110 */ 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65,
/* 0x2120 */ 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 78, 82, 86, 50, 66, 32,
/* 0x2130 */ 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,102, 56,
/* 0x2140 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2150 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2160 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50,100, 99, 32, 32,
/* 0x2170 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
/* 0x2180 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
/* 0x2190 */ 32, 32, 53, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32,
/* 0x21a0 */ 32, 32, 48, 48, 48, 48, 48, 48, 57, 52, 32, 32, 48, 48, 48, 48,
/* 0x21b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x21c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x21d0 */ 48, 48, 48, 48, 48, 51,100, 52, 32, 32, 50, 42, 42, 48, 32, 32,
/* 0x21e0 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44,
/* 0x21f0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90,
/* 0x2200 */ 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48,
/* 0x2210 */ 48, 48, 50, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2220 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2230 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 52,
/* 0x2240 */ 54, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x2250 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 55,
/* 0x2260 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48,
/* 0x2270 */ 48, 48, 48, 48, 98, 98, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x2280 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x2290 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x22a0 */ 48, 48, 52, 57, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
/* 0x22b0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
/* 0x22c0 */ 32, 32, 56, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32,
/* 0x22d0 */ 32, 32, 48, 48, 48, 48, 48, 99, 55, 52, 32, 32, 48, 48, 48, 48,
/* 0x22e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x22f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x2300 */ 48, 48, 48, 48, 49, 48, 52, 56, 32, 32, 50, 42, 42, 48, 32, 32,
/* 0x2310 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78,
/* 0x2320 */ 76, 89, 10, 32, 32, 57, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32,
/* 0x2330 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 99, 32, 32, 48,
/* 0x2340 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2350 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2360 */ 48, 32, 32, 48, 48, 48, 48, 49, 99, 98, 99, 32, 32, 50, 42, 42,
/* 0x2370 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65,
/* 0x2380 */ 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 67, 70, 76, 85, 83, 72,
/* 0x2390 */ 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 52,
/* 0x23a0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x23b0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x23c0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 99,100, 56, 32, 32,
/* 0x23d0 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
/* 0x23e0 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, 32, 69, 76, 70,
/* 0x23f0 */ 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48,
/* 0x2400 */ 48, 49, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2410 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2420 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 99,102,
/* 0x2430 */ 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
/* 0x2440 */ 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78,
/* 0x2450 */ 76, 89, 10, 32, 49, 50, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32,
/* 0x2460 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49,102, 56, 32, 32, 48,
/* 0x2470 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2480 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2490 */ 48, 32, 32, 48, 48, 48, 48, 49,100, 49, 48, 32, 32, 50, 42, 42,
/* 0x24a0 */ 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76,
/* 0x24b0 */ 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77,
/* 0x24c0 */ 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48,
/* 0x24d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x24e0 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48,
/* 0x24f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2500 */ 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48,
/* 0x2510 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x2520 */ 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48,
/* 0x2530 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82,
/* 0x2540 */ 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2550 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x2560 */ 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x2570 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73,
/* 0x2580 */ 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2590 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77,
/* 0x25a0 */ 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x25b0 */ 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48,
/* 0x25c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x25d0 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68,
/* 0x25e0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x25f0 */ 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48,
/* 0x2600 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x2610 */ 32,100, 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48,
/* 0x2620 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69,
/* 0x2630 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2640 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9,
/* 0x2650 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2660 */ 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2670 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x2680 */ 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2690 */ 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48,
/* 0x26a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x26b0 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48,
/* 0x26c0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x26d0 */ 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48,
/* 0x26e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x26f0 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48,
/* 0x2700 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2710 */ 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48,
/* 0x2720 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x2730 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48,
/* 0x2740 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2750 */ 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48,
/* 0x2760 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x2770 */ 32, 32, 32,100, 32, 32, 67, 70, 76, 85, 83, 72, 9, 48, 48, 48,
/* 0x2780 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 70,
/* 0x2790 */ 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x27a0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76,
/* 0x27b0 */ 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x27c0 */ 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89,
/* 0x27d0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x27e0 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x27f0 */ 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2800 */ 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48,
/* 0x2810 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32,
/* 0x2820 */ 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48,
/* 0x2830 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 79, 95, 66, 73, 78,
/* 0x2840 */ 70, 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82,
/* 0x2850 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77,
/* 0x2860 */ 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32,
/* 0x2870 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32,
/* 0x2880 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10,
/* 0x2890 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x28a0 */ 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 50, 52, 32, 32,
/* 0x28b0 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 43, 48,120, 48, 48,
/* 0x28c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 51, 99, 10, 10,
/* 0x28d0 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82,
/* 0x28e0 */ 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10,
/* 0x28f0 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2900 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2910 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x2920 */ 48, 48, 48, 48, 48, 48, 48, 99, 48, 32, 82, 95, 80, 80, 67, 54,
/* 0x2930 */ 52, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 78, 82, 86, 95,
/* 0x2940 */ 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
/* 0x2950 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82,
/* 0x2960 */ 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32,
/* 0x2970 */ 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32,
/* 0x2980 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48,
/* 0x2990 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 99, 99, 32,
/* 0x29a0 */ 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32, 32,
/* 0x29b0 */ 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79,
/* 0x29c0 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70,
/* 0x29d0 */ 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, 83,
/* 0x29e0 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80,
/* 0x29f0 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86,
/* 0x2a00 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2a10 */ 48, 48, 48, 57, 56, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69,
/* 0x2a20 */ 76, 49, 52, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76,
/* 0x2a30 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
/* 0x2a40 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 69,
/* 0x2a50 */ 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32,
/* 0x2a60 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32,
/* 0x2a70 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10,
/* 0x2a80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52,
/* 0x2a90 */ 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32,
/* 0x2aa0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 43, 48,120,
/* 0x2ab0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 56,
/* 0x2ac0 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
/* 0x2ad0 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73,
/* 0x2ae0 */ 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32,
/* 0x2af0 */ 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32,
/* 0x2b00 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48,
/* 0x2b10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82,
/* 0x2b20 */ 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 50, 52, 32, 32, 32, 32,
/* 0x2b30 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 82, 69, 76, 79, 67,
/* 0x2b40 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79,
/* 0x2b50 */ 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70,
/* 0x2b60 */ 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84,
/* 0x2b70 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2b80 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2b90 */ 48, 48, 48, 48, 49,102, 52, 32, 82, 95, 80, 80, 67, 54, 52, 95,
/* 0x2ba0 */ 65, 68, 68, 82, 51, 50, 32, 32, 32, 32, 79, 95, 66, 73, 78, 70,
/* 0x2bb0 */ 79, 10
};

View File

@ -1,5 +1,5 @@
/* powerpc64le-linux.elf-fold.h
created from powerpc64le-linux.elf-fold.bin, 2987 (0xbab) bytes
created from powerpc64le-linux.elf-fold.bin, 3115 (0xc2b) bytes
This file is part of the UPX executable compressor.
@ -31,196 +31,204 @@
*/
#define STUB_POWERPC64LE_LINUX_ELF_FOLD_SIZE 2987
#define STUB_POWERPC64LE_LINUX_ELF_FOLD_ADLER32 0x6bbd199c
#define STUB_POWERPC64LE_LINUX_ELF_FOLD_CRC32 0xe3c3563b
#define STUB_POWERPC64LE_LINUX_ELF_FOLD_SIZE 3115
#define STUB_POWERPC64LE_LINUX_ELF_FOLD_ADLER32 0x0c663dfe
#define STUB_POWERPC64LE_LINUX_ELF_FOLD_CRC32 0x10e9a1b9
unsigned char stub_powerpc64le_linux_elf_fold[2987] = {
unsigned char stub_powerpc64le_linux_elf_fold[3115] = {
/* 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, 96, 11, 16, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 21, 0, 1, 0, 0, 0,224, 11, 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 */ 96, 11, 0, 0, 0, 0, 0, 0, 96, 11, 0, 0, 0, 0, 0, 0,
/* 0x0060 */ 224, 11, 0, 0, 0, 0, 0, 0,224, 11, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0,
/* 0x0080 */ 96, 11, 0, 0, 0, 0, 0, 0, 96, 11, 16, 0, 0, 0, 0, 0,
/* 0x0090 */ 96, 11, 16, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 224, 11, 0, 0, 0, 0, 0, 0,224, 11, 16, 0, 0, 0, 0, 0,
/* 0x0090 */ 224, 11, 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, 32, 32, 32, 61, 47,112,114,111, 99, 47,115,101,
/* 0x0130 */ 108,102, 47,101,120,101, 0, 0,166, 2,168,126, 0, 0,128, 56,
/* 0x0140 */ 104, 0,117, 56,253, 1, 0, 72,120, 27,116,124,248,255,129, 56,
/* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,255, 96, 56,
/* 0x00c0 */ 164, 77, 99,120, 32, 0,128, 78, 0, 0, 0, 96,125, 0, 0, 72,
/* 0x00d0 */ 208, 0, 6, 40, 32, 0,194, 76,191,240,132, 84, 32, 0,194, 77,
/* 0x00e0 */ 16, 0, 0, 60, 64, 0, 4,124, 8, 0,128, 65,120, 3, 4,124,
/* 0x00f0 */ 32, 1,165, 56,120, 27,103,124,252,255, 99, 56,166, 3,137,124,
/* 0x0100 */ 28, 0, 0, 72,186, 2, 11, 84, 80, 88, 99,125, 20, 58,107,125,
/* 0x0110 */ 186, 1, 96, 81, 0, 0, 3,144, 32, 0, 64, 79, 4, 0, 3,132,
/* 0x0120 */ 190, 85, 11, 84, 64, 40, 11,124,220,255,194, 65,240,255, 32, 67,
/* 0x0130 */ 32, 0,128, 78, 32, 32, 32, 61, 47,112,114,111, 99, 47,115,101,
/* 0x0140 */ 108,102, 47,101,120,101, 0, 0,166, 2,200,126,248,255,129, 56,
/* 0x0150 */ 248,239, 33, 56,248,255, 97, 56,248,255, 90, 59, 9, 0, 4,232,
/* 0x0160 */ 64,208,164,127, 9, 0, 3,248,244,255,156, 65, 16, 0, 67, 59,
/* 0x0170 */ 9, 0, 3,248, 8, 0, 4,232, 0, 0,160, 43, 8, 0, 3,248,
/* 0x0180 */ 17, 0, 4,232, 17, 0, 3,248,236,255,158, 64, 8, 0, 99, 58,
/* 0x0190 */ 80,152, 90,126,100, 0, 21,128, 8, 0, 36, 58, 8, 0, 3,148,
/* 0x01a0 */ 4, 0,195, 57,255, 15,160, 56,120,115,196,125,104, 0,117, 56,
/* 0x01b0 */ 121, 1, 0, 72,252,255,174, 56, 0, 0, 35, 44, 12, 0,129, 65,
/* 0x01c0 */ 100, 0,181, 56, 12, 0, 96, 56, 4, 0, 99, 56, 20, 26,133,124,
/* 0x01d0 */ 166, 3,105,124,120,139, 35,126, 0, 0,160, 56,255,255,163,156,
/* 0x0180 */ 17, 0, 4,232, 17, 0, 3,248,236,255,158, 64, 8, 0,163, 58,
/* 0x0190 */ 80,168,154,126,100, 0, 22,128, 8, 0,100, 58, 8, 0, 3,148,
/* 0x01a0 */ 4, 0, 67, 58,255, 15,160, 56,120,147, 68,126,104, 0,118, 56,
/* 0x01b0 */ 213, 1, 0, 72,252,255,178, 56, 0, 0, 35, 44, 12, 0,129, 65,
/* 0x01c0 */ 100, 0,182, 56, 12, 0, 96, 56, 4, 0, 99, 56, 20, 26,133,124,
/* 0x01d0 */ 166, 3,105,124,120,155, 99,126, 0, 0,160, 56,255,255,163,156,
/* 0x01e0 */ 255,255, 4,140,255,255, 3,156,248,255, 0, 66,240,255,122,248,
/* 0x01f0 */ 36, 7, 99,120,120, 34, 32,124,120, 26, 0,124, 32, 7, 0,120,
/* 0x0200 */ 80, 24, 96,124,120,155,100,126, 80, 24, 82,127,249,255, 4,232,
/* 0x0200 */ 80, 24, 96,124,120,171,164,126, 80, 24, 84,127,249,255, 4,232,
/* 0x0210 */ 64, 8,164,127,249,255, 3,248,244,255,253, 65,120, 27, 97,124,
/* 0x0220 */ 104, 1, 33, 57, 0, 0,169,251,145,247, 33,248,248,255,159,128,
/* 0x0230 */ 20,218,125,124, 80, 32,155,124,112, 0,161, 56,120,211, 70,127,
/* 0x0240 */ 120,251,231,127,120,171,168,126,120,243,202,127, 13, 7, 0, 72,
/* 0x0250 */ 8, 0,128,124,112, 8, 33, 56,120, 27,127,124, 0, 0, 0, 57,
/* 0x0260 */ 120,163,135,126, 2, 0,192, 56, 1, 0,160, 56,208, 0,158,124,
/* 0x0270 */ 0, 0, 96, 56,237, 0, 0, 72,120,163,131,126,189, 0, 0, 72,
/* 0x0280 */ 120,211, 67,127, 0, 0, 3,232, 8, 0,131,232, 16, 0, 99, 56,
/* 0x0290 */ 0, 0,160, 43,240,255,254, 64,166, 3,137,124,120,235,163,127,
/* 0x02a0 */ 120,227,132,127, 91, 0, 0, 56,166, 3,232,127,144, 0,161,232,
/* 0x02b0 */ 152, 0,193,232,160, 0,225,232,168, 0, 1,233,176, 0, 33,233,
/* 0x02c0 */ 184, 0, 65,233,192, 0, 97,233,200, 0,129,233,208, 0,161,233,
/* 0x02d0 */ 216, 0,193,233,224, 0,225,233,232, 0, 1,234,240, 0, 33,234,
/* 0x02e0 */ 248, 0, 65,234, 0, 1, 97,234, 8, 1,129,234, 16, 1,161,234,
/* 0x02f0 */ 24, 1,193,234, 32, 1,225,234, 40, 1, 1,235, 48, 1, 33,235,
/* 0x0300 */ 56, 1, 65,235, 64, 1, 97,235, 72, 1,129,235, 80, 1,161,235,
/* 0x0310 */ 88, 1,193,235, 96, 1,225,235,112, 1, 33, 56, 32, 4,128, 78,
/* 0x0320 */ 1, 0, 0, 56, 8, 0, 0, 72, 85, 0, 0, 56, 8, 0, 0, 72,
/* 0x0330 */ 45, 0, 0, 56, 8, 0, 0, 72, 6, 0, 0, 56, 8, 0, 0, 72,
/* 0x0340 */ 5, 0, 0, 56, 8, 0, 0, 72, 91, 0, 0, 56, 8, 0, 0, 72,
/* 0x0350 */ 125, 0, 0, 56, 8, 0, 0, 72, 3, 0, 0, 56, 8, 0, 0, 72,
/* 0x0220 */ 136, 1, 33, 57, 0, 0, 41,251,113,247, 33,248,120,195, 3,127,
/* 0x0230 */ 120,187,228,126,144, 0,161, 56,120,211, 70,127,120,251,231,127,
/* 0x0240 */ 120,179,200,126, 0, 0, 0, 56,112, 0,225,248,112, 0,225, 56,
/* 0x0250 */ 120, 0, 1,248,128, 0, 1,249,128, 0, 1, 57,136, 0, 1,248,
/* 0x0260 */ 120,243,202,127,101, 7, 0, 72,144, 8, 33, 56, 7, 0, 96,112,
/* 0x0270 */ 36, 0,130, 64, 0, 0, 3,128, 0, 0, 0, 40, 24, 0,130, 64,
/* 0x0280 */ 136, 1, 1,232, 8, 0, 67,232, 20, 2, 66,124, 0, 0, 99,232,
/* 0x0290 */ 20, 2, 99,124,120, 27,127,124, 0, 0, 0, 57,120,219,103,127,
/* 0x02a0 */ 2, 0,192, 56, 1, 0,160, 56,208, 0,158,124, 0, 0, 96, 56,
/* 0x02b0 */ 173, 0, 0, 72,120,219, 99,127,229, 0, 0, 72,120,211, 67,127,
/* 0x02c0 */ 0, 0, 3,232, 8, 0,131,232, 16, 0, 99, 56, 0, 0,160, 43,
/* 0x02d0 */ 240,255,254, 64,166, 3,137,124,120,235,163,127,120,227,132,127,
/* 0x02e0 */ 91, 0, 0, 56,166, 3,232,127,176, 0,161,232,184, 0,193,232,
/* 0x02f0 */ 192, 0,225,232,200, 0, 1,233,208, 0, 33,233,216, 0, 65,233,
/* 0x0300 */ 224, 0, 97,233,232, 0,129,233,240, 0,161,233,248, 0,193,233,
/* 0x0310 */ 0, 1,225,233, 8, 1, 1,234, 16, 1, 33,234, 24, 1, 65,234,
/* 0x0320 */ 32, 1, 97,234, 40, 1,129,234, 48, 1,161,234, 56, 1,193,234,
/* 0x0330 */ 64, 1,225,234, 72, 1, 1,235, 80, 1, 33,235, 88, 1, 65,235,
/* 0x0340 */ 96, 1, 97,235,104, 1,129,235,112, 1,161,235,120, 1,193,235,
/* 0x0350 */ 128, 1,225,235,144, 1, 33, 56, 32, 4,128, 78, 32, 0,231,120,
/* 0x0360 */ 90, 0, 0, 56, 2, 0, 0, 68, 8, 0,227, 64,255,255, 96, 56,
/* 0x0370 */ 32, 0,128, 78, 0, 0, 35, 44, 32, 0,130, 77, 0, 0, 36, 47,
/* 0x0380 */ 0, 0, 67,233, 64, 32,170,127, 16, 0,158, 64, 0, 0,131,248,
/* 0x0390 */ 8, 0,163,248, 32, 0,128, 78, 1, 0,170, 43, 8, 0,158, 64,
/* 0x03a0 */ 236,255,154, 64, 16, 0, 99, 56,216,255,255, 75, 0, 0, 0, 0,
/* 0x03b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,233, 8, 0, 3,233,
/* 0x03c0 */ 1, 0,229, 56, 0, 0, 32, 57,166, 3,233,124, 64, 40,170,127,
/* 0x03d0 */ 28, 0,252, 64,166, 2, 8,124,127, 0, 96, 56, 16, 0, 1,248,
/* 0x03e0 */ 145,255, 33,248, 61,255,255, 75, 0, 0, 0, 96, 20, 0, 64, 66,
/* 0x03f0 */ 174, 72, 72,125,174, 73, 68,125, 1, 0, 41, 57,240,255,255, 75,
/* 0x0400 */ 8, 0, 67,233, 20, 74, 74,125, 8, 0, 67,249, 0, 0, 67,233,
/* 0x0410 */ 80, 80, 41,125, 0, 0, 35,249, 32, 0,128, 78, 0, 0, 0, 0,
/* 0x0420 */ 0, 0, 0, 1,128, 0, 0, 0, 38, 0,128,125,166, 2, 8,124,
/* 0x0430 */ 8, 0,129,145,193, 6, 0, 72, 81,255, 33,248,120, 27,126,124,
/* 0x0440 */ 120, 35,159,124,120, 43,189,124,120, 51,220,124, 0, 0, 38, 46,
/* 0x0450 */ 0, 0, 63,233, 0, 0,169, 47, 84, 1,158, 65,120,243,195,127,
/* 0x0460 */ 112, 0,129, 56, 12, 0,160, 56, 81,255,255, 75,112, 0, 65,129,
/* 0x0470 */ 116, 0, 33,129, 0, 0,170, 47, 32, 0,158, 64, 88, 33, 37,109,
/* 0x0480 */ 85, 80,133, 47, 28, 0,158, 64, 0, 0, 62,233, 0, 0,169, 47,
/* 0x0490 */ 28, 1,254, 65, 12, 0, 0, 72, 33, 0, 41,121, 16, 0,226, 64,
/* 0x04a0 */ 127, 0, 96, 56,125,254,255, 75, 0, 0, 0, 96, 64, 80, 9,127,
/* 0x04b0 */ 240,255,217, 65, 0, 0, 31,233, 64, 64,170,127,228,255,221, 65,
/* 0x04c0 */ 8, 0,191,232,184, 0,152, 64,120, 75, 36,125, 0, 0, 61,233,
/* 0x04d0 */ 8, 0,126,232,128, 0,193, 56,128, 0, 65,249, 40, 0, 65,248,
/* 0x04e0 */ 120, 0,225,136, 16, 0,125,233,166, 3, 41,125, 8, 0, 93,232,
/* 0x04f0 */ 33, 4,128, 78, 40, 0, 65,232, 0, 0,163, 47,164,255,222, 64,
/* 0x0500 */ 128, 0,129,232,112, 0, 33,129, 64, 72,164,127,148,255,222, 64,
/* 0x0510 */ 121, 0,193,136, 0, 0,166, 47, 68, 0,158, 65, 64, 0,146, 65,
/* 0x0520 */ 0, 2,164, 43, 16, 0,157, 65, 0, 0, 63,233, 0, 32,169,127,
/* 0x0530 */ 44, 0,158, 64, 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, 49,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,168,254,255, 75,176, 0, 33, 56,
/* 0x05b0 */ 8, 0,129,129, 32,129,144,125,140, 5, 0, 72, 0, 0, 0, 0,
/* 0x05c0 */ 0, 0, 0, 3,128, 4, 0, 0, 38, 0,128,125,166, 2, 8,124,
/* 0x05d0 */ 8, 0,129,145,233, 4, 0, 72,225,254, 33,248,120, 83, 90,125,
/* 0x05e0 */ 16, 0, 67,161,120, 75, 50,125, 32, 0, 35,233,120, 51,216,124,
/* 0x05f0 */ 120, 27,125,124,120, 35,147,124, 3, 0,138, 47, 96, 1,161,248,
/* 0x0600 */ 120, 59,240,124,120, 67, 15,125, 20, 74, 35,126, 16, 0,192, 56,
/* 0x0610 */ 8, 0,158, 64, 0, 0,192, 56, 56, 0, 93,161, 34, 0,198, 56,
/* 0x0620 */ 120,139, 40,126, 0, 0,128, 56,255,255,224, 59, 1, 0, 74, 57,
/* 0x0630 */ 166, 3, 73,125, 60, 0, 64, 66, 0, 0, 72,129, 1, 0,138, 47,
/* 0x0640 */ 40, 0,158, 64, 16, 0,232,232, 64, 56,191,127, 8, 0,157, 64,
/* 0x0650 */ 120, 59,255,124, 40, 0, 72,233, 20, 82, 71,125, 64, 80,164,127,
/* 0x0660 */ 8, 0,156, 64,120, 83, 68,125, 56, 0, 8, 57,200,255,255, 75,
/* 0x0670 */ 248,208, 85,127, 56,208,255,127, 20, 34,149,124,120,251,227,127,
/* 0x0680 */ 80, 32,159,124, 0, 0,160, 56, 56,208,132,124,180, 7,198,124,
/* 0x0690 */ 255,255,224, 56, 0, 0, 0, 57,201,252,255, 75, 0, 0, 0, 96,
/* 0x06a0 */ 248,208, 90,127, 1, 0,224, 62,136, 0, 65,147,228,131,247,122,
/* 0x06b0 */ 80, 24,255,127,128, 78,192, 61,100, 54,233,123,128, 0, 33,249,
/* 0x06c0 */ 0, 0, 32, 59, 0, 0, 51, 46, 1, 0,247, 98, 32, 0,206, 97,
/* 0x06d0 */ 56, 0, 93,161, 0,200,138,127, 52, 2,157, 64, 0, 0, 81,129,
/* 0x06e0 */ 36, 0,146, 65, 6, 0,138, 47, 28, 0,158, 64, 16, 0,177,232,
/* 0x06f0 */ 120,195, 3,127, 3, 0,128, 56, 20, 42,191,124,121,252,255, 75,
/* 0x0700 */ 252, 1, 0, 72, 1, 0,138, 47,244, 1,158, 64, 76, 0,146, 65,
/* 0x0710 */ 8, 0, 81,233, 0, 0,170, 47, 64, 0,158, 64, 32, 0, 93,233,
/* 0x0720 */ 16, 0,177,232,120,195, 3,127, 3, 0,128, 56, 20, 82, 95,125,
/* 0x0730 */ 20, 42,170,124, 65,252,255, 75, 56, 0,189,160,120,195, 3,127,
/* 0x0740 */ 5, 0,128, 56, 49,252,255, 75, 54, 0,189,160,120,195, 3,127,
/* 0x0750 */ 4, 0,128, 56, 33,252,255, 75, 4, 0,113,131, 16, 0,209,235,
/* 0x0760 */ 81,115, 32, 61, 64, 98, 41, 97, 32, 0,145,235, 40, 0,209,234,
/* 0x0770 */ 250, 22,123, 87, 20,242,223,127,112, 0,129,251, 48,220, 59,125,
/* 0x0780 */ 56,168,202,127,120, 0,193,251, 20,178,222,126, 20,226,138,127,
/* 0x0790 */ 80,240,202,127,126, 7,116, 87, 12, 0,146, 64, 0, 0,160, 56,
/* 0x07a0 */ 8, 0, 0, 72, 2, 0,160, 56,120,163,165,124,180, 7,165,124,
/* 0x07b0 */ 16, 0,146, 65, 50, 0,192, 56,255,255,224, 56, 12, 0, 0, 72,
/* 0x07c0 */ 96, 1,225,232, 18, 0,192, 56, 8, 0, 17,233,120,243,195,127,
/* 0x07d0 */ 120,227,132,127, 80, 64, 10,125,137,251,255, 75, 0, 0, 0, 96,
/* 0x07e0 */ 0, 24,190,127, 16, 0,254, 65,127, 0, 96, 56, 53,251,255, 75,
/* 0x07f0 */ 0, 0, 0, 96, 24, 0,146, 65,120,155, 99,126,112, 0,129, 56,
/* 0x0800 */ 120,131, 5,126,120,123,230,125, 33,252,255, 75,208, 0, 92,125,
/* 0x0810 */ 227,255,105,123, 56,168, 90,125, 12, 0,130, 64, 48, 0,146, 64,
/* 0x0820 */ 164, 0, 0, 72, 0, 0,186, 47,244,255,158, 65,166, 3, 73,127,
/* 0x0830 */ 20,226,254,124, 0, 0, 0, 57, 0, 0, 32, 57,174, 65, 39,125,
/* 0x0840 */ 1, 0, 8, 57,244,255, 0, 66,212,255,255, 75, 0, 0, 17,233,
/* 0x0850 */ 192, 7, 8,121, 0,184,168,127, 80, 0,158, 64, 40, 0,177,232,
/* 0x0860 */ 32, 0, 17,233, 16, 0,241,232, 0, 64,165,127,196, 0,158, 64,
/* 0x0870 */ 20, 58,165,124,136, 0, 33,129, 20,250,165,124,208, 0, 5,125,
/* 0x0880 */ 56, 72, 8,125, 7, 0,136, 43,168, 0,157, 64, 0, 68, 32, 61,
/* 0x0890 */ 4, 0,197,145,120,195, 3,127, 2, 0, 41, 97, 0, 0,128, 56,
/* 0x08a0 */ 0, 0, 37,145,209,250,255, 75,120,243,195,127,120,227,132,127,
/* 0x08b0 */ 180, 7,133,126,157,250,255, 75, 0, 0, 0, 96, 0, 0,163, 47,
/* 0x08c0 */ 40,255,222, 64, 20,226,154,127, 20,226,222,127, 64,176,190,127,
/* 0x08d0 */ 44, 0,156, 64,120,243,195,127, 80,176,158,124,180, 7,133,126,
/* 0x08e0 */ 50, 0,192, 56,255,255,224, 56, 0, 0, 0, 57,117,250,255, 75,
/* 0x08f0 */ 0, 0, 0, 96, 0, 24,190,127,240,254,222, 64, 1, 0, 57, 59,
/* 0x0900 */ 56, 0, 49, 58,180, 7, 57,127,200,253,255, 75, 0, 0,178, 47,
/* 0x0910 */ 8, 0,158, 65, 0, 0,242,251, 32, 1, 33, 56, 24, 0,125,232,
/* 0x0920 */ 20, 26,127,124, 8, 0,129,129, 32,129,144,125,224, 1, 0, 72,
/* 0x0930 */ 128, 0, 33,233, 8, 0, 17,233, 20, 74,167,124, 0, 0,168, 47,
/* 0x0940 */ 8, 0,165, 56, 72,255,158, 65, 96,255,255, 75, 0, 0, 0, 0,
/* 0x0950 */ 0, 0, 0, 3,128, 18, 0, 0,166, 2, 8,124,137, 1, 0, 72,
/* 0x0960 */ 17,255, 33,248,120, 43,191,124,120, 51,218,124,120, 75, 60,125,
/* 0x0970 */ 0, 0, 35,129, 0, 0,192, 56,120, 83, 88,125,152, 0,161,248,
/* 0x0980 */ 144, 0, 33,249,120, 59,229,124, 64, 0,191, 59,120, 0, 97,248,
/* 0x0990 */ 112, 0,129,248, 0, 0,192, 59,136, 0, 97,248,128, 0,129,248,
/* 0x09a0 */ 160, 0,225,248,168, 0, 1,249,112, 0, 97, 56,144, 0,129, 56,
/* 0x09b0 */ 121,250,255, 75,160, 0,225,232,168, 0, 1,233,128, 0,129, 56,
/* 0x09c0 */ 0, 0,160, 56,120,211, 70,127,120,227,137,127,120,195, 10,127,
/* 0x09d0 */ 120,251,227,127,245,251,255, 75, 9, 0,128, 56,120, 27,123,124,
/* 0x09e0 */ 120,211, 67,127,120,219,101,127,141,249,255, 75, 56, 0, 63,161,
/* 0x09f0 */ 64,240,137,127,176, 0,157, 64, 0, 0, 61,129, 3, 0,137, 47,
/* 0x0a00 */ 148, 0,158, 64, 16, 0,125,232, 0, 0, 60,233, 0, 0,128, 56,
/* 0x0a10 */ 0, 0,160, 56, 20, 74, 99,124, 41,249,255, 75, 0, 0, 0, 96,
/* 0x0a20 */ 0, 0,131, 47,120, 27,121,124, 16, 0,252, 64,127, 0, 96, 56,
/* 0x0a30 */ 241,248,255, 75, 0, 0, 0, 96,120,251,228,127, 0, 4,160, 56,
/* 0x0a40 */ 25,249,255, 75, 0, 0, 0, 96, 0, 4,163, 47,224,255,222, 64,
/* 0x0a50 */ 0, 0,128, 56,120,203, 37,127, 0, 0,192, 56, 0, 0,224, 56,
/* 0x0a60 */ 0, 0, 0, 57,120,227,137,127,120,195, 10,127,120,251,227,127,
/* 0x0a70 */ 89,251,255, 75, 0, 0,188,232, 7, 0,128, 56,120, 27,123,124,
/* 0x0a80 */ 120,211, 67,127,241,248,255, 75,120,203, 35,127,173,248,255, 75,
/* 0x0a90 */ 0, 0, 0, 96, 1, 0,222, 59, 56, 0,189, 59, 32, 0,222,123,
/* 0x0aa0 */ 76,255,255, 75,240, 0, 33, 56,120,219, 99,127,136, 0, 0, 72,
/* 0x0ab0 */ 0, 0, 0, 0, 0, 0, 0, 1,128, 8, 0, 0,112,255,193,249,
/* 0x0ac0 */ 120,255,225,249,128,255, 1,250,136,255, 33,250,144,255, 65,250,
/* 0x0ad0 */ 152,255, 97,250,160,255,129,250,168,255,161,250,176,255,193,250,
/* 0x0ae0 */ 184,255,225,250,192,255, 1,251,200,255, 33,251,208,255, 65,251,
/* 0x0af0 */ 216,255, 97,251,224,255,129,251,232,255,161,251,240,255,193,251,
/* 0x0b00 */ 248,255,225,251, 16, 0, 1,248, 32, 0,128, 78,112,255,193,233,
/* 0x0b10 */ 120,255,225,233,128,255, 1,234,136,255, 33,234,144,255, 65,234,
/* 0x0b20 */ 152,255, 97,234,160,255,129,234,168,255,161,234,176,255,193,234,
/* 0x0b30 */ 184,255,225,234,192,255, 1,235,200,255, 33,235,208,255, 65,235,
/* 0x0b40 */ 216,255, 97,235,224,255,129,235, 16, 0, 1,232,232,255,161,235,
/* 0x0b50 */ 166, 3, 8,124,240,255,193,235,248,255,225,235, 32, 0,128, 78,
/* 0x0b60 */ 116, 3, 16, 0, 0, 0, 0, 0, 96,139, 16, 0, 0, 0, 0, 0,
/* 0x0b70 */ 184, 3, 16, 0, 0, 0, 0, 0, 96,139, 16, 0, 0, 0, 0, 0,
/* 0x0b80 */ 40, 4, 16, 0, 0, 0, 0, 0, 96,139, 16, 0, 0, 0, 0, 0,
/* 0x0b90 */ 200, 5, 16, 0, 0, 0, 0, 0, 96,139, 16, 0, 0, 0, 0, 0,
/* 0x0ba0 */ 88, 9, 16, 0, 0, 0, 0, 0, 96,139, 16
/* 0x0370 */ 32, 0,128, 78, 1, 0, 0, 56, 8, 0, 0, 72, 45, 0, 0, 56,
/* 0x0380 */ 8, 0, 0, 72, 85, 0, 0, 56, 8, 0, 0, 72, 3, 0, 0, 56,
/* 0x0390 */ 8, 0, 0, 72, 5, 0, 0, 56, 8, 0, 0, 72, 6, 0, 0, 56,
/* 0x03a0 */ 8, 0, 0, 72,125, 0, 0, 56, 8, 0, 0, 72, 91, 0, 0, 56,
/* 0x03b0 */ 180,255,255, 75, 8, 0,128,124, 32, 0,128, 78, 0, 0, 35, 44,
/* 0x03c0 */ 32, 0,130, 77, 0, 0, 36, 47, 0, 0, 67,233, 64, 32,170,127,
/* 0x03d0 */ 16, 0,158, 64, 0, 0,131,248, 8, 0,163,248, 32, 0,128, 78,
/* 0x03e0 */ 1, 0,170, 43, 8, 0,158, 64,236,255,154, 64, 16, 0, 99, 56,
/* 0x03f0 */ 216,255,255, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0400 */ 0, 0, 67,233, 8, 0, 3,233, 1, 0,229, 56, 0, 0, 32, 57,
/* 0x0410 */ 166, 3,233,124, 64, 40,170,127, 28, 0,252, 64,166, 2, 8,124,
/* 0x0420 */ 127, 0, 96, 56, 16, 0, 1,248,145,255, 33,248, 73,255,255, 75,
/* 0x0430 */ 0, 0, 0, 96, 20, 0, 64, 66,174, 72, 72,125,174, 73, 68,125,
/* 0x0440 */ 1, 0, 41, 57,240,255,255, 75, 8, 0, 67,233, 20, 74, 74,125,
/* 0x0450 */ 8, 0, 67,249, 0, 0, 67,233, 80, 80, 41,125, 0, 0, 35,249,
/* 0x0460 */ 32, 0,128, 78, 0, 0, 0, 0, 0, 0, 0, 1,128, 0, 0, 0,
/* 0x0470 */ 38, 0,128,125,166, 2, 8,124, 8, 0,129,145,249, 6, 0, 72,
/* 0x0480 */ 81,255, 33,248,120, 27,126,124,120, 35,159,124,120, 43,189,124,
/* 0x0490 */ 120, 51,220,124, 0, 0, 38, 46, 0, 0, 63,233, 0, 0,169, 47,
/* 0x04a0 */ 84, 1,158, 65,120,243,195,127,112, 0,129, 56, 12, 0,160, 56,
/* 0x04b0 */ 81,255,255, 75,112, 0, 65,129,116, 0, 33,129, 0, 0,170, 47,
/* 0x04c0 */ 32, 0,158, 64, 88, 33, 37,109, 85, 80,133, 47, 28, 0,158, 64,
/* 0x04d0 */ 0, 0, 62,233, 0, 0,169, 47, 28, 1,254, 65, 12, 0, 0, 72,
/* 0x04e0 */ 33, 0, 41,121, 16, 0,226, 64,127, 0, 96, 56,137,254,255, 75,
/* 0x04f0 */ 0, 0, 0, 96, 64, 80, 9,127,240,255,217, 65, 0, 0, 31,233,
/* 0x0500 */ 64, 64,170,127,228,255,221, 65, 8, 0,191,232,184, 0,152, 64,
/* 0x0510 */ 120, 75, 36,125, 0, 0, 61,233, 8, 0,126,232,128, 0,193, 56,
/* 0x0520 */ 128, 0, 65,249, 40, 0, 65,248,120, 0,225,136, 16, 0,125,233,
/* 0x0530 */ 166, 3, 41,125, 8, 0, 93,232, 33, 4,128, 78, 40, 0, 65,232,
/* 0x0540 */ 0, 0,163, 47,164,255,222, 64,128, 0,129,232,112, 0, 33,129,
/* 0x0550 */ 64, 72,164,127,148,255,222, 64,121, 0,193,136, 0, 0,166, 47,
/* 0x0560 */ 68, 0,158, 65, 64, 0,146, 65, 0, 2,164, 43, 16, 0,157, 65,
/* 0x0570 */ 0, 0, 63,233, 0, 32,169,127, 44, 0,158, 64, 8, 0,127,232,
/* 0x0580 */ 122, 0,161,136, 32, 0,132,120, 40, 0, 65,248, 0, 0, 60,233,
/* 0x0590 */ 16, 0,124,233,166, 3, 41,125, 8, 0, 92,232, 33, 4,128, 78,
/* 0x05a0 */ 40, 0, 65,232,116, 0, 1,129, 8, 0, 94,233, 0, 0, 62,233,
/* 0x05b0 */ 20, 66, 74,125, 80, 72, 40,125, 8, 0, 94,249, 0, 0, 62,249,
/* 0x05c0 */ 20, 0, 0, 72,120, 43,164,124,120,243,195,127,120, 75, 37,125,
/* 0x05d0 */ 49,254,255, 75,112, 0, 1,129, 8, 0, 95,233, 0, 0, 63,233,
/* 0x05e0 */ 20, 66, 74,125, 80, 72, 40,125, 8, 0, 95,249, 0, 0, 63,249,
/* 0x05f0 */ 168,254,255, 75,176, 0, 33, 56, 8, 0,129,129, 32,129,144,125,
/* 0x0600 */ 196, 5, 0, 72, 0, 0, 0, 0, 0, 0, 0, 3,128, 4, 0, 0,
/* 0x0610 */ 38, 0,128,125,166, 2, 8,124, 8, 0,129,145, 33, 5, 0, 72,
/* 0x0620 */ 225,254, 33,248,120, 67, 15,125, 16, 0, 3,161,120, 75, 50,125,
/* 0x0630 */ 32, 0, 35,233,120, 83, 90,125,120, 27,125,124,120, 35,147,124,
/* 0x0640 */ 3, 0,136, 47, 96, 1,161,248,120, 51,216,124,120, 59,240,124,
/* 0x0650 */ 20, 74, 35,126, 16, 0, 64, 57, 8, 0,158, 64, 0, 0, 64, 57,
/* 0x0660 */ 56, 0, 29,161, 0, 0,114,232, 34, 0, 74, 57,120,139, 39,126,
/* 0x0670 */ 32, 0, 70,121, 0, 0,128, 56, 1, 0, 8, 57,255,255,224, 59,
/* 0x0680 */ 166, 3, 9,125, 60, 0, 64, 66, 0, 0, 7,129, 1, 0,136, 47,
/* 0x0690 */ 40, 0,158, 64, 16, 0,167,232, 64, 40,191,127, 8, 0,157, 64,
/* 0x06a0 */ 120, 43,191,124, 40, 0, 7,233, 20, 66, 5,125, 64, 64,164,127,
/* 0x06b0 */ 8, 0,156, 64,120, 67, 4,125, 56, 0,231, 56,200,255,255, 75,
/* 0x06c0 */ 248,208, 85,127, 56,208,255,127, 20, 34,149,124,227,231, 73,121,
/* 0x06d0 */ 80, 32,159,124, 56,208,132,124, 28, 0,130, 64, 0, 0,191, 47,
/* 0x06e0 */ 28, 0,158, 64, 0, 0,163, 47, 24, 0,158, 65, 50, 0,192, 56,
/* 0x06f0 */ 16, 0, 0, 72,120,251,227,127, 8, 0, 0, 72, 0, 0, 96, 56,
/* 0x0700 */ 0, 0,160, 56,180, 7,198,124,255,255,224, 56, 0, 0, 0, 57,
/* 0x0710 */ 77,252,255, 75, 0, 0, 0, 96,248,208, 90,127, 1, 0,224, 62,
/* 0x0720 */ 136, 0, 65,147,228,131,247,122, 80, 24,255,127,128, 78,192, 61,
/* 0x0730 */ 100, 54,233,123,128, 0, 33,249, 0, 0, 32, 59, 0, 0, 51, 46,
/* 0x0740 */ 1, 0,247, 98, 32, 0,206, 97, 56, 0, 93,161, 0,200,138,127,
/* 0x0750 */ 52, 2,157, 64, 0, 0, 81,129, 36, 0,146, 65, 6, 0,138, 47,
/* 0x0760 */ 28, 0,158, 64, 16, 0,177,232,120,195, 3,127, 3, 0,128, 56,
/* 0x0770 */ 20, 42,191,124, 73,252,255, 75,252, 1, 0, 72, 1, 0,138, 47,
/* 0x0780 */ 244, 1,158, 64, 76, 0,146, 65, 8, 0, 81,233, 0, 0,170, 47,
/* 0x0790 */ 64, 0,158, 64, 32, 0, 93,233, 16, 0,177,232,120,195, 3,127,
/* 0x07a0 */ 3, 0,128, 56, 20, 82, 95,125, 20, 42,170,124, 17,252,255, 75,
/* 0x07b0 */ 56, 0,189,160,120,195, 3,127, 5, 0,128, 56, 1,252,255, 75,
/* 0x07c0 */ 54, 0,189,160,120,195, 3,127, 4, 0,128, 56,241,251,255, 75,
/* 0x07d0 */ 4, 0,113,131, 16, 0,209,235, 81,115, 32, 61, 64, 98, 41, 97,
/* 0x07e0 */ 32, 0,145,235, 40, 0,209,234,250, 22,123, 87, 20,242,223,127,
/* 0x07f0 */ 112, 0,129,251, 48,220, 59,125, 56,168,202,127,120, 0,193,251,
/* 0x0800 */ 20,178,222,126, 20,226,138,127, 80,240,202,127,126, 7,116, 87,
/* 0x0810 */ 12, 0,146, 64, 0, 0,160, 56, 8, 0, 0, 72, 2, 0,160, 56,
/* 0x0820 */ 120,163,165,124,180, 7,165,124, 16, 0,146, 64, 96, 1,225,232,
/* 0x0830 */ 18, 0,192, 56, 12, 0, 0, 72, 50, 0,192, 56,255,255,224, 56,
/* 0x0840 */ 8, 0, 17,233,120,243,195,127,120,227,132,127, 80, 64, 10,125,
/* 0x0850 */ 13,251,255, 75, 0, 0, 0, 96, 0, 24,190,127, 16, 0,254, 65,
/* 0x0860 */ 127, 0, 96, 56, 17,251,255, 75, 0, 0, 0, 96, 24, 0,146, 65,
/* 0x0870 */ 120,155, 99,126,112, 0,129, 56,120,131, 5,126,120,123,230,125,
/* 0x0880 */ 241,251,255, 75,208, 0, 92,125,227,255,105,123, 56,168, 90,125,
/* 0x0890 */ 12, 0,130, 64, 48, 0,146, 64,164, 0, 0, 72, 0, 0,186, 47,
/* 0x08a0 */ 244,255,158, 65,166, 3, 73,127, 20,226,254,124, 0, 0, 0, 57,
/* 0x08b0 */ 0, 0, 32, 57,174, 65, 39,125, 1, 0, 8, 57,244,255, 0, 66,
/* 0x08c0 */ 212,255,255, 75, 0, 0, 17,233,192, 7, 8,121, 0,184,168,127,
/* 0x08d0 */ 80, 0,158, 64, 40, 0,177,232, 32, 0, 17,233, 16, 0,241,232,
/* 0x08e0 */ 0, 64,165,127,188, 0,158, 64, 20, 58,165,124,136, 0, 33,129,
/* 0x08f0 */ 20,250,165,124,208, 0, 5,125, 56, 72, 8,125, 7, 0,136, 43,
/* 0x0900 */ 160, 0,157, 64, 0, 68, 32, 61, 4, 0,197,145,120,195, 3,127,
/* 0x0910 */ 2, 0, 41, 97, 0, 0,128, 56, 0, 0, 37,145,161,250,255, 75,
/* 0x0920 */ 120,243,195,127,120,227,132,127,180, 7,133,126,121,250,255, 75,
/* 0x0930 */ 0, 0, 0, 96, 0, 0,163, 47, 40,255,222, 64, 20,226,154,127,
/* 0x0940 */ 20,226,222,127, 64,176,190,127, 44, 0,156, 64,120,243,195,127,
/* 0x0950 */ 80,176,158,124,180, 7,133,126, 50, 0,192, 56,255,255,224, 56,
/* 0x0960 */ 0, 0, 0, 57,249,249,255, 75, 0, 0, 0, 96, 0, 24,190,127,
/* 0x0970 */ 240,254,222, 64, 1, 0, 57, 59, 56, 0, 49, 58,180, 7, 57,127,
/* 0x0980 */ 200,253,255, 75, 0, 0,242,251, 32, 1, 33, 56, 8, 0,129,129,
/* 0x0990 */ 32,129,144,125, 24, 0,125,232, 20, 26,127,124,240, 1, 0, 72,
/* 0x09a0 */ 128, 0, 33,233, 8, 0, 17,233, 20, 74,167,124, 0, 0,168, 47,
/* 0x09b0 */ 8, 0,165, 56, 80,255,158, 65,104,255,255, 75, 0, 0, 0, 0,
/* 0x09c0 */ 0, 0, 0, 3,128, 18, 0, 0,166, 2, 8,124,153, 1, 0, 72,
/* 0x09d0 */ 17,255, 33,248,120, 75, 61,125, 0, 0, 35,129,120, 43,191,124,
/* 0x09e0 */ 120, 51,218,124, 0, 0,192, 56,120, 83, 88,125,144, 0, 33,249,
/* 0x09f0 */ 152, 0,161,248,120, 59,229,124, 64, 0,159, 59, 4, 0, 35,129,
/* 0x0a00 */ 120, 0, 97,248, 0, 0,192, 59,136, 0, 97,248,128, 0,129,248,
/* 0x0a10 */ 12, 0, 41, 57,160, 0,225,248,168, 0, 1,249,112, 0, 33,249,
/* 0x0a20 */ 112, 0, 97, 56,144, 0,129, 56, 73,250,255, 75,160, 0,225,232,
/* 0x0a30 */ 168, 0, 1,233,128, 0,129, 56, 0, 0,160, 56,120,211, 70,127,
/* 0x0a40 */ 120,235,169,127,120,195, 10,127,120,251,227,127,197,251,255, 75,
/* 0x0a50 */ 9, 0,128, 56,120, 27,123,124,120,211, 67,127,120,219,101,127,
/* 0x0a60 */ 93,249,255, 75, 56, 0, 63,161, 64,240,137,127,184, 0,157, 64,
/* 0x0a70 */ 0, 0, 60,129, 3, 0,137, 47,156, 0,158, 64, 16, 0,124,232,
/* 0x0a80 */ 0, 0, 61,233, 0, 0,128, 56, 0, 0,160, 56, 20, 74, 99,124,
/* 0x0a90 */ 5,249,255, 75, 0, 0, 0, 96, 0, 0,131, 47,120, 27,121,124,
/* 0x0aa0 */ 16, 0,252, 64,127, 0, 96, 56,205,248,255, 75, 0, 0, 0, 96,
/* 0x0ab0 */ 120,251,228,127, 0, 4,160, 56,213,248,255, 75, 0, 0, 0, 96,
/* 0x0ac0 */ 0, 4,163, 47,224,255,222, 64, 0, 0, 32, 57, 0, 0,128, 56,
/* 0x0ad0 */ 0, 0, 61,249,120,203, 37,127, 0, 0,192, 56, 0, 0,224, 56,
/* 0x0ae0 */ 0, 0, 0, 57,120,235,169,127,120,195, 10,127,120,251,227,127,
/* 0x0af0 */ 33,251,255, 75, 0, 0,189,232, 7, 0,128, 56,120, 27,123,124,
/* 0x0b00 */ 120,211, 67,127,185,248,255, 75,120,203, 35,127,145,248,255, 75,
/* 0x0b10 */ 0, 0, 0, 96, 1, 0,222, 59, 56, 0,156, 59, 32, 0,222,123,
/* 0x0b20 */ 68,255,255, 75,240, 0, 33, 56,120,219, 99,127,136, 0, 0, 72,
/* 0x0b30 */ 0, 0, 0, 0, 0, 0, 0, 1,128, 8, 0, 0,112,255,193,249,
/* 0x0b40 */ 120,255,225,249,128,255, 1,250,136,255, 33,250,144,255, 65,250,
/* 0x0b50 */ 152,255, 97,250,160,255,129,250,168,255,161,250,176,255,193,250,
/* 0x0b60 */ 184,255,225,250,192,255, 1,251,200,255, 33,251,208,255, 65,251,
/* 0x0b70 */ 216,255, 97,251,224,255,129,251,232,255,161,251,240,255,193,251,
/* 0x0b80 */ 248,255,225,251, 16, 0, 1,248, 32, 0,128, 78,112,255,193,233,
/* 0x0b90 */ 120,255,225,233,128,255, 1,234,136,255, 33,234,144,255, 65,234,
/* 0x0ba0 */ 152,255, 97,234,160,255,129,234,168,255,161,234,176,255,193,234,
/* 0x0bb0 */ 184,255,225,234,192,255, 1,235,200,255, 33,235,208,255, 65,235,
/* 0x0bc0 */ 216,255, 97,235,224,255,129,235, 16, 0, 1,232,232,255,161,235,
/* 0x0bd0 */ 166, 3, 8,124,240,255,193,235,248,255,225,235, 32, 0,128, 78,
/* 0x0be0 */ 188, 3, 16, 0, 0, 0, 0, 0,224,139, 16, 0, 0, 0, 0, 0,
/* 0x0bf0 */ 0, 4, 16, 0, 0, 0, 0, 0,224,139, 16, 0, 0, 0, 0, 0,
/* 0x0c00 */ 112, 4, 16, 0, 0, 0, 0, 0,224,139, 16, 0, 0, 0, 0, 0,
/* 0x0c10 */ 16, 6, 16, 0, 0, 0, 0, 0,224,139, 16, 0, 0, 0, 0, 0,
/* 0x0c20 */ 200, 9, 16, 0, 0, 0, 0, 0,224,139, 16
};

View File

@ -66,11 +66,14 @@ M_NRV2E_LE32=8
section ELFMAINX
sz_pack2= .-4
_start: .globl _start
//// nop; int3 # uncomment for debugging
push %rax // space for entry address
call main // push &decompress
ret_main:
/* Returns 0 on success; non-zero on failure. */
f_exp: // shorter name
decompress: // (uchar const *src, size_t lsrc, uchar *dst, u32 &ldst, uint method)
/* Arguments according to calling convention */
@ -190,8 +193,11 @@ eof:
ret
/* These from /usr/include/asm-x86_64/unistd.h */
__NR_write = 1
__NR_exit = 60
__NR_exit= 60
__NR_mmap= 9
__NR_mprotect= 10
__NR_open= 2
__NR_write= 1
msg_SELinux:
push $ L71 - L70; pop %arg3 // length
@ -212,94 +218,89 @@ die:
push $ __NR_exit; pop %rax
syscall
/* Decompress the rest of this loader, and jump to it.
Map a page to hold the decompressed bytes. Logically this could
be done by setting .p_memsz for our first PT_LOAD. But as of 2005-11-09,
linux 2.6.14 only does ".bss expansion" on the PT_LOAD that describes the
highest address. [I regard this as a bug, and it makes the kernel's
fs/binfmt_elf.c complicated, buggy, and insecure.] For us, that is the 2nd
PT_LOAD, which is the only way that linux allows to set the brk() for the
uncompressed program. [This is a significant kernel misfeature.]
*/
unfold: // enter: %rbp= &decompress === &ret_main
// Decompress the rest of this loader, and jump to it.
unfold: // IN: rbp= &f_exp; rsp/ &O_BINFO,fd,%entry
pop %rsi // &O_BINFO
lodsl; xchg %eax,%edx // O_BINFO
lodsl; movl %eax,%r14d // O_BINFO
push %rsi; pop %rbx // &b_info of folded decompressor
lea -4-(ret_main - _start)(%rbp),%rax // &sz_pack2
movl (%rax),%r15d // sz_pack2: length before stub
subq %r15,%rax // ADRU= &Elf64_Ehdr of this stub (ET_DYN)
push %rax // "slide" for ET_DYN
subl %edx,%r15d // LENX for upx_main
lea (%rax,%rdx),%rcx // ADRX= &b_info of user program for upx_main
lodsl; xchg %eax,%edx; add %rbx,%rdx // .sz_unc; last of unfolded
lodsl; xchg %eax,%r13d; lodsl; add %rsi,%r13 // .sz_cpr; last of folded
section ELFMAINZu
lea sz_pack2 - f_exp(%rbp),%rcx // &sz_pack2
movl (%rcx),%r15d // sz_pack2: length before stub
subq %r15,%rcx // elfaddr= &Elf64_Ehdr of this stub
subl %r14d,%r15d // LENX= sz_pack2 - O_BINFO
pop %rdi // fd
subq %rcx,%rdx; push %rdx // LENU
push %rax // %ADRU
subq %rcx,%r13 // LENF
push %rdi // fd
push %rcx // elfaddr
/* Load the addresses and lengths.
XXX: 2GB Note that PUSH $imm32 sign-extends to 64 bits.
XXX: 4GB Note that MOVL $imm32,reg zero-extends to 64-bits.
(Use an temporary register to obtain 4GB range on PUSH constant.)
*/
// Reserve space fo input file and unfolded stub.
subq %arg6,%arg6 // 0 offset
orl $-1,%arg5l // fd
push $MAP_PRIVATE|MAP_ANONYMOUS; pop %sys4
push %rdx; pop %arg2 // len
push $PROT_READ|PROT_WRITE; pop %arg3
subl %arg1l,%arg1l // 0; kernel chooses addr
push $__NR_mmap; pop %rax; syscall
addq %rax,%r14 // + O_BINFO = ADRX
movq %rax,2*8(%rsp) // ADRU
#if 1
/* INFO: newer gas versions (correctly) encode the "push $IMMEDIATE" into
a R_X86_64_32S instead of R_X86_64_32 relocation type.
Avoid that until tested.
*/
push %rax // ADRU for unmap in fold; updated later
.byte 0x68; .int LENU // push $ LENU (R_X86_64_32)
#else
push %rax // ADRU for unmap in fold; updated later
push $ LENU // for unmap in fold
#endif
push %rcx // ADRX for upx_main; updated later
push %r15 // LENX for upx_main
// Duplicate the input data.
xchgq %rax,%arg1 // same address
//subq %arg6,%arg6 // 0 offset
movl 1*8(%rsp),%arg5l // fd
push $MAP_PRIVATE|MAP_FIXED; pop %sys4
//push $PROT_READ|PROT_WRITE; pop %arg3
movq %r13,%arg2 // len
push $__NR_mmap; pop %rax; syscall
/* Get some pages. If small, then get 1 page located just after the end
of the first PT_LOAD of the compressed program. This will still be below
all of the uncompressed program. If large (>=3 MiB uncompressed), then enough
to duplicate the entire compressed PT_LOAD, plus 1 page, located just after
the brk() of the _un_compressed program. The address and length are pre-
calculated by PackLinuxElf64amd::defineSymbols().
*/
lea ADRM(%rax),%rdi // dst for mmap and copy
push $ PROT_READ | PROT_WRITE | PROT_EXEC; pop %arg3
movl $ LENM,%esi // XXX: 4GB
push $ MAP_PRIVATE | MAP_FIXED | MAP_ANONYMOUS; pop %sys4
subl %arg5l,%arg5l //; subl %arg6l,%arg6l // MAP_ANON ==> ignore offset
push $ SYS_mmap; pop %rax
syscall // %rax= result; trashes %rcx,%r11 only
cmpq %rax,%rdi; jne msg_SELinux
cmpq $4096,%rsi; jna L80 // only 1 page: no move required
// Remember new f_exp region for PROT_EXEC.
movq 3*8(%rsp),%rdx // LENU
pop %rcx; push %rcx // elfaddr
addq %rax,%rdx // new last of unfoded
subq %rcx,%rax // new - old
movq %rax,%r12 // relocation constant
addq %rbp,%rax; push %rax // P_10 new f_exp
andq $PAGE_MASK,%rax; push %rax // P_11 address
subq %rax,%rdx; push %rdx // P_12 length
movq 3*8(%rsp),%rsi // ADRU src for copy
push %rdi; pop %rdx // ADRM
subq %rsi,%rdx // (ADRM - ADRU) == relocation amount
addq %rdx,%rbp // update &decompress
addq %rdx,1*8(%rsp) // update ADRX
addq %rdx,3*8(%rsp) // update ADRU
push %rbx; pop %rcx // [&b_info] beyond end of decompressor
subq %rsi,%rcx // byte length
shrq $3,%rcx // qwords to copy
cld
rep; movsq
xchgq %rax,%rdi
L80:
/* Decompress the folded part of this stub, then execute it. */
push %rbx; pop %arg2 // &b_info
push %rax // ret_addr after decompression
push %rax; pop %arg3 // dst for unfolding
lodsl; push %rax // allocate slot on stack
push %rsp; pop %arg4 // &len_dst ==> used by lzma for EOF
lodsl; xchgl %eax,%arg1l // sz_cpr XXX: 4GB
lodsl; movzbl %al,%arg5l // b_method
xchg %arg1,%arg2
call *%rbp // decompress
pop %rcx // discard len_dst
ret
// Unfold
movq %rbx,%rsi
lodsl; push %rax; movq %rsp,%arg4 // P_13 .sz_unc; &dstlen
lea (%rbx,%r12),%arg3 // dst= new unfold
movq %arg3,%r13 // execute here
lodsl; push %rax // P_14 tmp= .sz_cpr
lodsl; xchg %eax,%arg5l // .b_method
movq %rsi,%arg1 // src
pop %arg2 // P_14 srclen
call *%rbp // old f_exp
pop %ecx // P_13 toss .sz_unc
// PROT_EXEC
pop %arg2 // P_12 length
pop %arg1 // P_11 addr
pop %rbp // P_10 new f_exp
push $PROT_READ|PROT_EXEC; pop %arg3
push $__NR_mprotect; pop %rax; syscall
// Use the copy.
// %r14= ADRX; %r15= LENX;
// rsp/ elfaddr,fd,ADRU,LENU,%entry
jmp *%r13
proc_self_exe:
.asciz "/proc/self/exe"
main:
//// nop; int3 # uncomment for debugging
pop %rbp // &decompress
pop %rbp // &f_exp
lea proc_self_exe(%rip),%arg1
sub %arg2l,%arg2l // O_RDONLY
push $__NR_open; pop %rax
syscall
push %rax // save fd
call unfold
.long O_BINFO // offset of b_info for .text
// { b_info={sz_unc, sz_cpr, {4 char}}, folded_loader...}

View File

@ -66,11 +66,10 @@ __NR_brk= 12
__NR_exit= 60
__NR_readlink= 89
/* In:
cld
%rbp= &decompress
%rsp= &{LENX,ADRX,LENU,ADRU,slide,argc,argv...,0,env...,0,auxv...,0...,strings}
*/
// IN:
// %rbp= f_exp; %r14= ADRX; %r15= LENX;
// rsp/ elfaddr,fd,ADRU,LENU,%entry, argc,argv,0,envp,0,auxv,0,strings
fold_begin:
//// int3 // DEBUG only
call L90 # push &L90a
@ -80,11 +79,13 @@ L90b:
#include "arch/amd64/bxx.S"
L90:
pop %rbx # L90a
push %r14 // ADRX
push %r15 // LENX
lea L90b - L90a(%rbx),%rax; push %rax # &amdbxx: f_unfilter
mov %rsp,%rsi
sub $PATH_MAX,%rsp
push %rsp; pop %rdi
push $7; pop %rcx; rep movsq # f_unfilter,LENX,ADRX,LENU,ADRU,slide,argc
push $9; pop %rcx; rep movsq # f_unfilter,LENX,ADRX,elfaddr,fd,ADRU,LENU,%entry,argc
0:
cmpq $0,(%rsi); movsq; jne 0b # move past argv
movq %rdi,%r14 # remember &new_env[0]
@ -98,17 +99,16 @@ L90:
mov %rsi,%r13 # beginning of strings
sub %r15,%r12 # -length of auxv
push $ __NR_readlink
movl $-1+ PATH_MAX,%arg3l # buflen
push %rdi; pop %arg2 #buffer
push %rbx; pop %arg1 # "/proc/self/exe"
pop %rax; syscall; testl %eax,%eax; jns 0f
push $ __NR_readlink; pop %rax; syscall; testl %eax,%eax; jns 0f
// readlink() failed. Set the result equal to the argument.
push %rbx; pop %arg2 # result= "/proc/self/exe"
push $-1+ (L90b - L90a); pop %rax
0:
xchg %eax,%ecx # %ecx= byte count
std
std
lea -1(%r13),%rdi # dst last byte
movb $0,%al; stosb # terminate
lea -1(%arg2,%rcx),%rsi # src last byte
@ -129,49 +129,42 @@ L90:
lea -8(%r15),%rsi # &last qword of old auxv
shr $3,%rcx; rep movsq
lea 8(%rdi),%rsp
cld
cld
lea (%r14,%r12),%arg4 # &new Elf64_auxv
pop %arg6 # f_unfilter
pop %arg2 # LENX
pop %arg1 # ADRX
mov 2*8(%rsp),%rax // slide
pop %rax # elfaddr
subq $ OVERHEAD,%rsp
movq %rsp,%arg3 # &ELf64_Ehdr temporary space
push %rax # elfaddr 7th arg
movq %rbp,%arg5 # &decompress: f_expand
pushq %rax // reloc
call upx_main # Out: %rax= entry
/* entry= upx_main(b_info *arg1, total_size arg2, Elf64_Ehdr *arg3,
Elf32_Auxv_t *arg4, f_decompr arg5, f_unfilter arg6,
Elf64_Addr reloc )
Elf64_Addr elfaddr )
*/
push %rax; pop %rbp # entry
popq %rdx # reloc
addq $OVERHEAD,%rsp
addq $1*8+OVERHEAD,%rsp # toss elfaddr, too
movq %rax,3*8(%rsp) # entry
pop %rbx # fd
push $__NR_open
sub %arg2l,%arg2l # O_RDONLY
push %rbx; pop %arg1 # "/proc/self/exe"
pop %rax; syscall; xchg %eax,%ebx # %ebx= fd
push $__NR_mmap
// Map 1 page of /proc/self/exe so that it does not disappear.
sub %arg6l,%arg6l # 0 offset
mov %ebx,%arg5l
mov %ebx,%arg5l # fd
push $MAP_PRIVATE; pop %sys4 # BEWARE: %sys4
push $PROT_READ; pop %arg3
mov $PAGE_SIZE,%arg2l
push $0; pop %arg1
pop %rax; syscall
push $__NR_mmap; pop %rax; syscall
push $__NR_close
mov %ebx,%edi # fd
pop %rax; syscall
push $__NR_close; pop %rax; syscall
pop %arg2 # LENU
pop %arg1 # ADRU
pop %rcx # slide [unused]
push %rbp # &entry
pop %arg2 # LENU
push $ __NR_munmap; pop %rax
jmp *-8(%r14) # goto: syscall; ret

View File

@ -62,6 +62,16 @@
/*out*/ : "=r"(r_fmt) ); \
dprintf(r_fmt, args); \
})
#elif defined(__aarch64__) //{
#define DPRINTF(fmt, args...) ({ \
char const *r_fmt; \
asm("bl 0f; .string \"" fmt "\"; .balign 4; 0: mov %0,x30" \
/*out*/ : "=r"(r_fmt) \
/* in*/ : \
/*und*/ : "x30"); \
dprintf(r_fmt, args); \
})
#endif //}
static int dprintf(char const *fmt, ...); // forward
@ -92,6 +102,8 @@ typedef struct {
static void
xread(Extent *x, char *buf, size_t count)
{
DPRINTF("xread x.size=%%x x.buf=%%p buf=%%p count=%%x\\n",
x->size, x->buf, buf, count);
char *p=x->buf, *q=buf;
size_t j;
if (x->size < count) {
@ -102,6 +114,7 @@ xread(Extent *x, char *buf, size_t count)
}
x->buf += count;
x->size -= count;
DPRINTF("xread done\\n",0);
}
@ -144,15 +157,17 @@ unpackExtent(
f_unfilter *f_unf
)
{
DPRINTF("unpackExtent xi=(%%p %%p) xo=(%%p %%p) f_exp=%%p f_unf=%%p\\n",
xi->size, xi->buf, xo->size, xo->buf, f_exp, f_unf);
while (xo->size) {
DPRINTF("unpackExtent xi=(%%p %%p) xo=(%%p %%p) f_exp=%%p f_unf=%%p\\n",
xi->size, xi->buf, xo->size, xo->buf, f_exp, f_unf);
struct b_info h;
// Note: if h.sz_unc == h.sz_cpr then the block was not
// compressible and is stored in its uncompressed form.
// Read and check block sizes.
xread(xi, (char *)&h, sizeof(h));
DPRINTF("h.sz_unc=%%x h.sz_cpr=%%x h.b_method=%%x\\n",
h.sz_unc, h.sz_cpr, h.b_method);
if (h.sz_unc == 0) { // uncompressed size 0 -> EOF
if (h.sz_cpr != UPX_MAGIC_LE32) // h.sz_cpr must be h->magic
err_exit(2);
@ -179,7 +194,7 @@ ERR_LAB
(unsigned char *)xo->buf, &out_len,
#if defined(__x86_64) //{
*(int *)(void *)&h.b_method
#elif defined(__powerpc64__) //}{
#elif defined(__powerpc64__) || defined(__aarch64__) //}{
h.b_method
#endif //}
);
@ -236,7 +251,8 @@ static void *
make_hatch_ppc64(
Elf64_Phdr const *const phdr,
Elf64_Addr reloc,
unsigned const frag_mask)
unsigned const frag_mask
)
{
unsigned *hatch = 0;
DPRINTF("make_hatch %%p %%x %%x\\n",phdr,reloc,frag_mask);
@ -259,9 +275,46 @@ make_hatch_ppc64(
}
return hatch;
}
#elif defined(__aarch64__) //{
static void *
make_hatch_arm64(
Elf64_Phdr const *const phdr,
uint64_t const reloc,
unsigned const frag_mask
)
{
unsigned *hatch = 0;
//DPRINTF((STR_make_hatch(),phdr,reloc));
if (phdr->p_type==PT_LOAD && phdr->p_flags & PF_X) {
// The format of the 'if' is
// if ( ( (hatch = loc1), test_loc1 )
// || ( (hatch = loc2), test_loc2 ) ) {
// action
// }
// which uses the comma to save bytes when test_locj involves locj
// and the action is the same when either test succeeds.
// Try page fragmentation just beyond .text .
if ( ( (hatch = (void *)(~3ul & (3+ phdr->p_memsz + phdr->p_vaddr + reloc))),
( phdr->p_memsz==phdr->p_filesz // don't pollute potential .bss
&& (2*4)<=(frag_mask & -(int)(uint64_t)hatch) ) ) // space left on page
// Try Elf64_Ehdr.e_ident[8..15] . warning: 'const' cast away
|| ( (hatch = (void *)(&((Elf64_Ehdr *)phdr->p_vaddr + reloc)->e_ident[8])),
(phdr->p_offset==0)
)
) {
hatch[0]= 0xd4000001; // svc #0
hatch[1]= 0xd65f03c0; // ret (jmp *lr)
}
else {
hatch = 0;
}
}
return hatch;
}
#endif //}
#if defined(__powerpc64__) /*{*/
#if defined(__powerpc64__) || defined(__aarch64__) //{ bzero
static void
upx_bzero(char *p, size_t len)
{
@ -273,7 +326,7 @@ upx_bzero(char *p, size_t len)
#define bzero upx_bzero
#else //}{
#define bzero(a,b) __builtin_memset(a,0,b)
#endif /*}*/
#endif //}
static void
auxv_up(Elf64_auxv_t *av, unsigned const type, uint64_t const value)
@ -309,31 +362,39 @@ auxv_up(Elf64_auxv_t *av, unsigned const type, uint64_t const value)
// won't place the first piece in a way that leaves no room for the rest.
static Elf64_Addr // returns relocation constant
xfind_pages(unsigned mflags, Elf64_Phdr const *phdr, int phnum,
char **const p_brk
#if defined(__powerpc64__)
Elf64_Addr *const p_brk
, Elf64_Addr const elfaddr
#if defined(__powerpc64__) || defined(__aarch64__)
, size_t const PAGE_MASK
#endif
)
{
size_t lo= ~0, hi= 0, szlo= 0;
char *addr;
Elf64_Addr lo= ~0, hi= 0, addr= 0;
mflags += MAP_PRIVATE | MAP_ANONYMOUS; // '+' can optimize better than '|'
DPRINTF("xfind_pages %%x %%p %%d %%p %%p\\n", mflags, phdr, phnum, elfaddr, p_brk);
for (; --phnum>=0; ++phdr) if (PT_LOAD==phdr->p_type) {
if (phdr->p_vaddr < lo) {
lo = phdr->p_vaddr;
szlo = phdr->p_filesz;
}
if (hi < (phdr->p_memsz + phdr->p_vaddr)) {
hi = phdr->p_memsz + phdr->p_vaddr;
}
}
szlo += ~PAGE_MASK & lo; // page fragment on lo edge
lo -= ~PAGE_MASK & lo; // round down to page boundary
hi = PAGE_MASK & (hi - lo - PAGE_MASK -1); // page length
szlo = PAGE_MASK & (szlo - PAGE_MASK -1); // page length
addr = mmap((void *)lo, hi, PROT_NONE, mflags, -1, 0);
lo -= ~PAGE_MASK & lo; // round down to page boundary
hi = PAGE_MASK & (hi - lo - PAGE_MASK -1); // page length
if (MAP_FIXED & mflags) {
addr = lo;
}
else if (0==lo) { // -pie ET_DYN
addr = elfaddr;
if (addr) {
mflags |= MAP_FIXED;
}
}
DPRINTF(" addr=%%p lo=%%p hi=%%p\\n", addr, lo, hi);
addr = (Elf64_Addr)mmap((void *)addr, hi, PROT_NONE, mflags, -1, 0);
DPRINTF(" addr=%%p\\n", addr);
*p_brk = hi + addr; // the logical value of brk(0)
//mprotect(szlo + addr, hi - szlo, PROT_NONE); // no access, but keep the frames!
return (Elf64_Addr)(addr - lo);
}
@ -346,17 +407,18 @@ do_xmap(
f_expand *const f_exp,
f_unfilter *const f_unf,
Elf64_Addr *p_reloc
#if defined(__powerpc64__)
#if defined(__powerpc64__) || defined(__aarch64__)
, size_t const PAGE_MASK
#endif
)
{
Elf64_Phdr const *phdr = (Elf64_Phdr const *)(void const *)(ehdr->e_phoff +
(char const *)ehdr);
char *v_brk;
Elf64_Addr v_brk;
Elf64_Addr const reloc = xfind_pages(
((ET_DYN!=ehdr->e_type) ? MAP_FIXED : 0), phdr, ehdr->e_phnum, &v_brk
#if defined(__powerpc64__)
, *p_reloc
#if defined(__powerpc64__) || defined(__aarch64__)
, PAGE_MASK
#endif
);
@ -404,6 +466,8 @@ do_xmap(
void *const hatch = make_hatch_x86_64(phdr, reloc, ~PAGE_MASK);
#elif defined(__powerpc64__) //}{
void *const hatch = make_hatch_ppc64(phdr, reloc, ~PAGE_MASK);
#elif defined(__aarch64__) //}{
void *const hatch = make_hatch_arm64(phdr, reloc, ~PAGE_MASK);
#endif //}
if (0!=hatch) {
auxv_up(av, AT_NULL, (size_t)hatch);
@ -449,44 +513,35 @@ upx_main( // returns entry address
f_expand *const f_exp,
f_unfilter *const f_unf
#if defined(__x86_64) //{
, Elf64_Addr reloc // In: &Elf64_Ehdr for stub
, Elf64_Addr elfaddr // In: &Elf64_Ehdr for stub
#elif defined(__powerpc64__) //}{
, Elf64_Addr *p_reloc // In: &Elf64_Ehdr for stub; Out: 'slide' for PT_INTERP
, size_t const PAGE_MASK
#elif defined(__aarch64__) //}{
, Elf64_Addr elfaddr
, size_t const PAGE_MASK
#endif //}
)
{
Extent xo, xi1, xi2;
xo.buf = (char *)ehdr;
xo.size = bi->sz_unc;
xi2.buf = CONST_CAST(char *, bi); xi2.size = sz_compressed;
xi2.buf = CONST_CAST(char *, bi); xi2.size = bi->sz_cpr + sizeof(*bi);
xi1.buf = CONST_CAST(char *, bi); xi1.size = sz_compressed;
// ehdr = Uncompress Ehdr and Phdrs
unpackExtent(&xi2, &xo, f_exp, 0); // never filtered?
#if defined(__x86_64) //{
Elf64_Addr *const p_reloc = &reloc;
#elif defined(__powerpc64__) //}{
Elf64_Addr const reloc = *p_reloc;
#if defined(__x86_64) || defined(__aarch64__) //{
Elf64_Addr *const p_reloc = &elfaddr;
#endif //}
DPRINTF("upx_main1 .e_entry=%%p *p_reloc=%%p\\n", ehdr->e_entry, *p_reloc);
DPRINTF("upx_main1 .e_entry=%%p p_reloc=%%p *p_reloc=%%p PAGE_MASK=%%p\\n",
ehdr->e_entry, p_reloc, *p_reloc, PAGE_MASK);
Elf64_Phdr *phdr = (Elf64_Phdr *)(1+ ehdr);
unsigned const orig_e_type = ehdr->e_type;
if (0 && ET_DYN==orig_e_type /*&& phdr->p_vaddr==0*/) { // -pie /*FIXME: and not pre-linked*/
// Unpacked must start at same place as packed, so that brk(0) works.
ehdr->e_type = ET_EXEC;
auxv_up(av, AT_ENTRY, ehdr->e_entry += reloc);
unsigned j;
for (j=0; j < ehdr->e_phnum; ++phdr, ++j) {
phdr->p_vaddr += reloc;
phdr->p_paddr += reloc;
}
}
// De-compress Ehdr again into actual position, then de-compress the rest.
Elf64_Addr entry = do_xmap(ehdr, &xi1, 0, av, f_exp, f_unf, p_reloc
#if defined(__powerpc64__)
#if defined(__powerpc64__) || defined(__aarch64__)
, PAGE_MASK
#endif
);
@ -508,8 +563,9 @@ ERR_LAB
}
// We expect PT_INTERP to be ET_DYN at 0.
// Thus do_xmap will set *p_reloc = slide.
*p_reloc = 0; // kernel picks where PT_INTERP goes
entry = do_xmap(ehdr, 0, fdi, 0, 0, 0, p_reloc
#if defined(__powerpc64__)
#if defined(__powerpc64__) || defined(__aarch64__)
, PAGE_MASK
#endif
);
@ -561,36 +617,6 @@ write(int fd, void const *ptr, size_t len)
#endif //}
#endif //}
#if defined(__i386__) /*{*/
#define PIC_STRING(value, var) \
__asm__ __volatile__ ( \
"call 0f; .asciz \"" value "\"; \
0: pop %0;" : "=r"(var) : \
)
#elif defined(__arm__) /*}{*/
#define PIC_STRING(value, var) \
__asm__ __volatile__ ( \
"mov %0,pc; b 0f; \
.asciz \"" value "\"; .balign 4; \
0: " : "=r"(var) \
)
#elif defined(__mips__) /*}{*/
#define PIC_STRING(value, var) \
__asm__ __volatile__ ( \
".set noreorder; bal 0f; move %0,$31; .set reorder; \
.asciz \"" value "\"; .balign 4; \
0: " \
: "=r"(var) : : "ra" \
)
#elif defined(__powerpc__) || defined(__powerpc64__) /*}{*/
#define PIC_STRING(value,var) \
__asm__ ( \
"bl 0f; .asciz \"" value "\"; .balign 4; \
0: mflr %0" \
: "=r"(var) : \
)
#endif /*}*/
static int
unsimal(unsigned x, char *ptr, int n)
{

View File

@ -35,6 +35,7 @@
.align 0
.endm
/* http://math-atlas.sourceforge.net/devel/assembly/mipsabi32.pdf */
#define zero $0
#define at $1
#define v0 $2

View File

@ -34,6 +34,8 @@
#define r30 30
#define r31 31
// http://refspecs.linux-foundation.org/elf/elfspec_ppc.pdf
//
/* Stack pointer */
#define sp 1
SZ_FRAME= 6*4 // (sp,cr,lr, xx,yy,zz) save area per calling convention

View File

@ -36,7 +36,25 @@
/* Stack pointer */
#define sp 1
SZ_FRAME= 6*8 + 8*8 // (sp,cr,lr, xx,yy,zz) + spill area for a0-a7
SZ_FRAME= 6*8 + 8*8 // (sp,cr,lr, tmp.xlc,tmp.ld,save.toc) + spill area for a0-a7
F_TOC= SZ_FRAME // where is the fake TOC
SZ_FRAME= SZ_FRAME + 2*2*8 // space for 2 [short] TOC entries
// http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html#REG
// r0 Volatile register used in function prologs
// r1 Stack frame pointer
// r2 TOC pointer
// r3 Volatile parameter and return value register
// r4-r10 Volatile registers used for function parameters
// r11 Volatile register used in calls by pointer and as an
// environment pointer for languages which require one
// r12 Volatile register used for exception handling and glink code
// r13 Reserved for use as system thread ID
// r14-r31 Nonvolatile registers used for local variables
//
// CR0-CR1 Volatile condition code register fields (CR0 '.' int; CR1 '.' floating)
// CR2-CR4 Nonvolatile condition code register fields
// CR5-CR7 Volatile condition code register fields
/* Subroutine arguments; not saved by callee */
#define a0 3
@ -49,7 +67,6 @@ SZ_FRAME= 6*8 + 8*8 // (sp,cr,lr, xx,yy,zz) + spill area for a0-a7
#define a7 10
/* Scratch (temporary) registers; not saved by callee */
//#define t0 0 /* BEWARE: OVERLAPS r0 */
#define t1 11
#define t2 12
#define t3 13

View File

@ -51,14 +51,21 @@ PROT_READ= 1
PROT_WRITE= 2
PROT_EXEC= 4
MAP_ANONYMOUS= 0x20
MAP_FIXED= 0x10
MAP_PRIVATE= 0x02
O_RDONLY= 0
PAGE_SHIFT= 12
PAGE_SIZE = -(~0<<PAGE_SHIFT)
__NR_exit = 1 + __NR_SYSCALL_BASE
__NR_open = 5 + __NR_SYSCALL_BASE
__NR_write = 4 + __NR_SYSCALL_BASE
__NR_mmap64 = 0xc0 + __NR_SYSCALL_BASE
__NR_mprotect= 125 + __NR_SYSCALL_BASE
__ARM_NR_BASE = 0xf0000 + __NR_SYSCALL_BASE
__ARM_NR_cacheflush = 2 + __ARM_NR_BASE
@ -78,13 +85,20 @@ __ARM_NR_cacheflush = 2 + __ARM_NR_BASE
//.long sz_pack2 // placed there by ::pack3()
section ELFMAINX
start_params:
.long ADRM // dst for map
.long LENF // end_decompress - (start_params -4)
.long CPR0 // cpr0 - (start_params -4)
sz_pack2= . - 4
mflg:
.long MFLG // MAP_{PRIVATE|ANONYMOUS} // QNX vs linux
_start: .globl _start
//// nop; bkpt
sub sp,sp,#6*4
F_elfaddr= 0*4
F_fd= 1*4
F_ADRU= 2*4
F_LENU= 3*4
F_f_exp= 4*4
F_entry= 5*4
F_mflg= F_entry
bl main // lr= &f_exp
f_exp:
#define LINUX_ARM_CACHEFLUSH 1
@ -107,117 +121,81 @@ f_exp:
section ELFMAINY
end_decompress: .globl end_decompress
msg_SELinux:
mov r2,#L71 - L70 // length
adr r1,L70 // message text
mov r0,#2 // fd stderr
#if defined(ARMEL_EABI4) /*{*/
mov r7,#__NR_write
swi 0
#else /*}{*/
swi __NR_write
#endif /*}*/
die:
mov r0,#127
#if defined(ARMEL_EABI4) /*{*/
mov r7,#__NR_exit
swi 0
#else /*}{*/
swi __NR_exit
#endif /*}*/
L70:
.asciz "PROT_EXEC|PROT_WRITE failed.\n"
L71:
/* IDENTSTR goes here */
section ELFMAINZ
unfold: // in: r11= &f_exp; lr= &O_BINFO
unfold: // in: r3= mflg; lr= &O_BINFO
str r3,[sp,#F_mflg]
mvn r10,r6; add r10,r10,#1 @ "neg r10,r6": -elfaddr
add r6,lr,#4 @ &b_info of folded code
add r14,r6,r10 @ offset(b_info)
// Reserve space for input file and unfolded stub
ldr r1,[r6,#sz_unc]
mov r5,#0 @ offset
mov r4,#-1 @ fd
@r3= mflg @ MAP_PRIVATE|MAP_ANONYMOUS or MAP_PRIVANON
mov r2,#PROT_READ|PROT_WRITE
add r1,r1,r14 @ length= .sz_unc + offset(b_info)
mov r0,#0 @ kernel chooses addr
str r1,[sp,#F_LENU] @ length to munmap
do_sys7t __NR_mmap64
str r0,[sp,#F_ADRU] @ addr to munmap
#if DEBUG /*{*/
stmdb sp!,{TRACE_REGS}; mov r0,#1; bl trace
#endif /*}*/
add r0,r11,#-4 + start_params - f_exp
ldr r5,[r0] @ sz_pack2; LENX
ldr r6,[lr],#4 @ O_BINFO
sub r7,r0,r5 @ &Elf_Ehdr dynbase
ldrh r0,[r7,#e_type]
ldr r9,[r7,#p_vaddr + sz_Elf32_Phdr + sz_Elf32_Ehdr] @ PT_LOAD[1].p_vaddr
cmp r0,#ET_DYN
addeq r9,r9,r7 @ brk(0)
add r9,r9,#PAGE_SIZE
sub r9,r9,#1
ldr r8,[lr] @ {fold_begin}.sz_unc
sub r0,lr,r7 @ &eof - &Elf_Ehdr
add r10,r8,r0 @ .sz_unc + sizeof(this_stub) == LENU
add r10,r10,#2*4 @ 2-instr subr for mflg
sub r0,sp,#8<<20 @ allow 8MB stack (qemu ET_DYN puts below Elf_Ehdr)
cmp r0,#0xf7<<24 @ qemu wants for itself 0xf7000000 and above
movhs r0,#0xf7<<24 @ min(0xf7000000, sp - 8M)
sub r0,r0,r10 @ LENU must fit
cmp r9,r0
movhs r9,r0 @ move below
// Duplicate the input data
ldr r1,[r6,#sz_cpr]
@mov r5,#0
ldr r4,[sp,#F_fd]
mov r3,#MAP_PRIVATE|MAP_FIXED
@mov r2,#PROT_READ|PROT_WRITE
add r1,r1,r14 @ length= .sz_cpr + offset(b_info)
@mov r0,r0 @ same address
do_sys7t __NR_mmap64
add r10,r0,r10 @ relocation amount= (new - old)
mov r9,r9,lsr #PAGE_SHIFT @ round down
mov r9,r9,lsl #PAGE_SHIFT @ new ADRU
add r6,r6,r9 @ ADRX= O_BINFO + new_base(==ADRU)
ldr r3,[r11, #mflg - f_exp] // MAP_{PRIVATE|ANON}
sub r11,r11,r7 @ offset(f_exp)
add r11,r11,r9 @ new f_exp
stmdb sp!,{r3,r5,r6,r7,r8,r9,r10,r11,r12}
// MFLG, LENX,ADRX, dynbase,%fd, ADRU,LENU, f_exp,%entry
// alloc new pages via mmap
mov r5,#0 // offset
mvn r4,#0 // fd= -1; cater to *BSD for fd when MAP_ANON
orr r3,r3,#MAP_FIXED
mov r2,#PROT_READ | PROT_WRITE | PROT_EXEC
mov r1,r10 @ LENU
mov r0,r9 @ ADRU
#if defined(ARMEL_EABI4) /*{*/
mov r7,#__NR_mmap64
swi 0
#else /*}{*/
swi __NR_mmap64
#endif /*}*/
// Unfold
ldr r3,[r6,#sz_unc]; str r3,[sp,#-4]! @ P_01
mov r3,sp @ &sz_unc
add r2,r6,r10 @ dst= reloc(&b_info)
ldr r1,[r6,#sz_cpr] @ srclen
add r0,r6,#3*4 @ src
mov r4,r2 @ copy of dst
#if DEBUG /*{*/
stmdb sp!,{TRACE_REGS}; mov r0,#2; bl trace
#endif /*}*/
cmn r0,#4096
bcs msg_SELinux
mov lr,pc; ldr pc,[sp,#4+ F_f_exp] @ call f_exp [ARMv4 lacks blx]
ldr r3,[sp],#4 @ P_01 sz_unc
// copy to new pages
ldr r2,[sp,#3*4] @ dynbase
sub r1,r1,r8 @ omit {fold_begin}.sz_unc
add r12,r0,r1 @ end dst
add r1, r2,r1 @ end src
cop2: // overrun OK: dst is page aligned, fold_begin follows src
ldmia r2!,{r3,r4,r5,r6,r7,r8,r9,r10}; cmp r2,r1
stmia r0!,{r3,r4,r5,r6,r7,r8,r9,r10}; blo cop2
ldr r1,[sp,#F_mflg] @ mflg
ldr r0,[r4] @ "orr r3,r3,#0" at mflg_subr
orr r0,r0,r1 @ change the 8-bit immediate
str r0,[r4]
// decompress fold_begin and jump to it
ldr r6,[sp],#4 @ MFLG
ldr r0,mflg_subr
ldr r1,mflg_subr+4
orr r0,r0,r6
str r0,[r12],#4
str r1,[r12],#4
ldr r5,[lr],#4 @ sz_unc
ldr r1,[lr],#4 @ 2nd arg: .sz_cpr
ldr r4,[lr],#4 @ b_method
stmdb sp!,{r4,r5,r6,r12} @ 5th arg, dstlen, MFLG, retaddr
add r3,sp,#1*4 @ 4th arg: &dstlen (used by lzma)
mov r2,r12 @ 3rd arg: dst
mov r0,lr @ 1st arg: &payload
// PROT_EXEC
ldr r0,[sp,#F_f_exp]
add r1,r3,r6 @ old last needed
add r0,r0,r10 @ reloc(f_exp)
add r1,r1,r10 @ new last needed
str r0,[sp,#F_f_exp] @ new f_exp
mov r0,r0,lsr #PAGE_SHIFT @ round down
mov r2,#PROT_EXEC|PROT_READ
mov r0,r0, lsl #PAGE_SHIFT
sub r1,r1,r0 @ length
do_sys7t __NR_mprotect
// Use the copy
ldr r1,[r6,#-4] @ O_BINFO
ldr r0,[sp,#F_ADRU]
sub r4,r9,r1 @ LENX= sz_pack2 - O_BINFO
add r5,r0,r1 @ ADRX= new Elf32_Ehdr + O_BINFO
add r6,r6,#2*4 @ past mflg_subr
#if DEBUG /*{*/
stmdb sp!,{TRACE_REGS}; mov r0,#3; bl trace
#endif /*}*/
mov lr,pc; mov pc,r11 // decompress folded code [arm.v4a lacks 'blx']
ldmia sp!,{r1,r2,r3,pc} // toss 5th arg and dstlen; goto unfolded
mflg_subr:
orr r3,r3,#0
ret
add pc,r6,r10 @ goto reloc(unfold)
#if DEBUG /*{*/
TRACE_BUFLEN=512
@ -271,8 +249,25 @@ hex:
.ascii "0123456789abcdef"
#endif /*}*/
main:
mov r11,lr // r11= &f_exp
proc_self_exe:
.asciz "/proc/self/exe"
.balign 4
main: // IN: lr= &f_exp
ldr r0,[lr,#sz_pack2 - f_exp] @ sz_pack2
add r6, lr,#sz_pack2 - f_exp @ &sz_pack2
str lr,[sp,#F_f_exp]
sub r6,r6,r0 @ elfaddr= &Elf_Ehdr of this program
str r6,[sp,#F_elfaddr]
mov r9,r0 @ save sz_pack2
// Open /proc/self/exe
adr r0,proc_self_exe
mov r1,#O_RDONLY
do_sys7t __NR_open
str r0,[sp,#F_fd]
ldr r3,[lr,#mflg - f_exp]
call unfold
o_binfo:
.long O_BINFO // .int4 offset of b_info for text

View File

@ -58,42 +58,53 @@ PATH_MAX= 4096
#define TRACE_REGS r0-r12,r14,r15
#endif /*}*/
@@ control just falls through, after this part and compiled C code
@@ are uncompressed.
#define OVERHEAD 2048
#define MAX_ELF_HDR 512
mflg_subr: @ for handling QNX vs Linux
orr r3,r3,#0 @ re-written to MAP_PRIVATE|MAP_ANONYMOUS
ret
SP_fd= 3*4
/* In:
r11= &f_exp
sp/ LENX,ADRX, dynbase,%fd, ADRU,LENU, f_exp,%entry, argc,argv,0,env,0,auxv
r4= LENX
r5= ADRX
new sp/ elfaddr,fd, ADRU,LENU, f_exp,%entry, argc,argv,0,envp,0,auxv
(ADRX,LENX) = extent of compressed program (after moving)
(ADRU,LENU) = params for final munmap()
*/
fold_begin:
fold_begin: // enter here
#if DEBUG //{
#define TRACE_REGS r0-r12,r14,r15
mov r0,sp @ current stack pointer (extra clue)
stmdb sp!,{TRACE_REGS}; mov r0,#0x10; bl trace
#endif //}
ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12} @ r12= argc
ldmia sp!,{ r6,r7,r8,r9,r10,r11,r12} @ r12= argc
mov r1,sp @ src (argv)
sub sp,sp,#PATH_MAX
mov r0,sp @ dst
stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12} @ r12= argc
mov r11,r10 @ restore f_exp
F_LENX= 0*4
F_ADRX= 1*4
F_elfaddr= 2*4
F_fd= 3*4
F_ADRU= 4*4
F_LENU= 5*4
F_f_exp= 6*4
F_e_auxv= F_f_exp
F_entry= 7*4
0: // copy argv down
ldr r3,[r1],#4; cmp r3,#0
str r3,[r0],#4; bne 0b
mov r4,r0 @ &new_env[0]
str r3,[r0],#4 @ space for new_env[0]
0: // copy env down
ldr r3,[r1],#4; cmp r3,#0
str r3,[r0],#4; bne 0b
mov r5,r1 @ &orig_auxv[0]
0: // copy auxv down
ldmia r1!,{r2,r3}; cmp r2,#0
stmia r0!,{r2,r3}; bne 0b
@ -132,27 +143,22 @@ link_ok:
sub r3,r0,r6 @ &new_auxv[end] - &orig_auxv[end]
add r3,r3,r5 @ &new_auxv[0] = delta + &orig_auxv[0]
mov r1,r9 @ &down_auxv[end]
str r0,[sp,#6*4] @ replace f_exp with &new_auxv[end]
ldr r5,[sp,#F_f_exp] @ save f_exp
str r0,[sp,#F_e_auxv] @ replace f_exp with &new_auxv[end]
0:
ldr r2,[r1,#-4]!; cmp r1,sp
str r2,[r0,#-4]!; bne 0b
mov sp,r0
// open /proc/self/exe to keep it from disappearing
adr r0,proc_self_exe
mov r1,#O_RDONLY
bl open @ no error check: cannot recover
str r0,[sp,#SP_fd] @ fd
#if DEBUG //{
stmdb sp!,{TRACE_REGS}; mov r0,#0x12; bl trace
#endif //}
/* Construct arglist for upx_main */
mov r5,r11 @ f_exp
ldmia sp!,{r9,r10,r11} @ LENX, ADRX, dynbase
@ldr r5,[sp,#F_f_exp]
ldmia sp!,{r4,r10,r11} @ LENX, ADRX, elfaddr
F_delta= 3*4
sub sp,sp,#MAX_ELF_HDR + OVERHEAD @ alloca
mov r4,r9 @ total size of compressed data
ldr r9,[r10,#sz_cpr] @ xi.size of ELF headers
mov r8,sp @ xo.ptr
ldr r7,[r10,#sz_unc] @ xo.size
@ -166,26 +172,29 @@ link_ok:
stmdb sp!,{TRACE_REGS}; mov r0,#0x13; bl trace
#endif //}
// r0=av; r1=sz_cpr; r2=f_decompress; r3=f_unfilter;
// xo={sz_unc, &tmp_ehdr}, xi={sz_cpr, &b_info}, dynbase
// xo={sz_unc, &tmp_ehdr}, xi={sz_cpr, &b_info}, elfaddr
bl upx_main
add sp,sp,#(9-4)*4
add sp,sp,#MAX_ELF_HDR + OVERHEAD @ un-alloca
#if DEBUG //{
stmdb sp!,{TRACE_REGS}; mov r0,#0x14; bl trace
#endif //}
str r0,[sp,#4*4] @ entry address
str r0,[sp,#F_entry - F_delta] @ entry address
// Map 1 page of /proc/self/exe so that it does not disappear
mov r5,#0 @ SEEK_SET
ldr r4,[sp] @ fd
ldr r4,[sp,#F_fd - F_delta]! @ fd
mov r3,#MAP_PRIVATE
mov r2,#PROT_READ
mov r1,#PAGE_SIZE
mov r0,#0 @ any address
bl mmap @ no error check: cannot recover
ldr r0,[sp],#4 @ fd
ldr r0,[sp],#4 @ F_fd
bl close
#if DEBUG //{
stmdb sp!,{TRACE_REGS}; mov r0,#0x15; bl trace
#endif //}
ldmia sp!,{r0,r1,r2, lr} @ ADRU,LENU,1+ &Elf32_auxv_t[AT_NULL@.a_type], entry
// crumb is unused: replaced by mapping /proc/self/exe into a free page
@ -205,6 +214,7 @@ link_ok:
mov r10,#0
mov r11,#0
#if DEBUG //{
/* Heuristic cache flush: sweep contiguous range to force collisions and evictions. */
sub r12,sp,#(1<<19) @ limit: 1/2 MB more
sweep:
@ -214,6 +224,7 @@ sweep:
cmp r12,sp; blo sweep
add sp,sp,#(1<<19) @ pop stack
#endif //}
#if defined(ARMEL_DARWIN) /*{*/
mov r7,#0
@ -423,7 +434,7 @@ mmap_privanon: .globl mmap_privanon
mov r5,#0 @ offset= 0
mvn r4,#0 @ fd= -1
adr lr, mmap_do
b fold_begin -2*4 // fix r3 for QNX vs Linux
b mflg_subr // fix r3 for QNX vs Linux
#if 1|DEBUG /*{*/

View File

@ -30,6 +30,7 @@
*/
#include "arch/arm64/v8/macros.S"
NBPW= 8
sz_Elf64_Phdr= 56
sz_Elf64_Ehdr= 64
@ -43,20 +44,38 @@ sz_l_info= 12
sz_p_info= 12
sz_o_binfo= 4
sz_b_info= 12
sz_unc= 0
sz_cpr= 4
b_method= 8
AT_NULL= 0 // <elf.h>
AT_PAGESZ= 6
a_type= 0
a_val= NBPW
sz_auxv= 2*NBPW
AT_FDCWD= -100 // <fcntl.h>
O_RDONLY= 0
PROT_READ= 1
PROT_WRITE= 2
PROT_EXEC= 4
MAP_PRIVATE= 2
MAP_FIXED= 0x10
MAP_ANONYMOUS= 0x20
PAGE_SHIFT= 12
PAGE_SHIFT= 16 // 64KiB PAGE_SIZE
PAGE_SIZE = -(~0<<PAGE_SHIFT)
__NR_exit = 93
__NR_write = 64
__NR_mmap64 = 222
__ARM_NR_cacheflush = 255 // FIXME
// /usr/include/asm-generic/unistd.h
__NR_exit = 0x5d // 93
__NR_mmap = 0xde // 222
__NR_mprotect = 0xe2 // 226
__NR_munmap = 0xd7 // 215
__NR_openat = 0x38 // 56
__NR_write = 0x40 // 64
#ifndef DEBUG /*{*/
#define DEBUG 0
@ -67,99 +86,171 @@ __ARM_NR_cacheflush = 255 // FIXME
#define TRACE(arg) /*empty*/
#endif //}
//lr .req x30
wLENU .req w29
xLENU .req x29
xADRU .req x28
wfd .req w27
xfd .req x27
xPMASK .req x26
// The above 4 registers are passed on stack to unfolded code.
xelfa .req x25
xfexp .req x24
// xPMASK, xelfa, xfexp still are used here.
wLENM .req w29 // overlaps wLENU
xLENM .req x29
wLENX .req wLENM
xADRM .req x28 // overlaps xADRU
xADRX .req xADRM
wobinf .req w27 // overlaps wfd
xrelo .req x23
xauxv .req x22
wszuf .req w21
xszuf .req x21
xFOLD .req x20
// http://infocenter.arm.com/help/topic/com.arm.doc.ihi0055b/IHI0055B_aapcs64.pdf
// x18 is CLOBBERED: "The platform register"
wmeth .req w4
xmeth .req x4
ldst .req x3
dst .req x2
lsrc .req w1
src .req x0
#define call bl
#define callr blr
#define jr br
//.long sz_pack2 // placed there by ::pack3()
section ELFMAINX
start_params:
.long LENF // end_decompress - (start_params -4)
.long CPR0 // cpr0 - (start_params -4)
sz_pack2= .-4 // placed there by ::pack3()
mflg:
.long MFLG // MAP_{PRIVATE|ANONYMOUS} // QNX vs linux
.xword ADRM // dst for map
_start: .globl _start
//// brk #0 // DEBUG
/* Get some pages: enough
to duplicate the entire compressed PT_LOAD, plus 1 page, located just after
the brk() of the _un_compressed program. The address is pre-calculated
calculated by PackLinuxElf64arm::addLinkerSymbols().
*/
#if DEBUG /*{*/
brk #0
TRACE(#0)
#endif /*}*/
call main
adr x12,start_params -4 // &sz_pack2
ldp w29,w10,[x12] // w29= sz_pack2; w10= LENF
ldp w11,w3,[x12,#2*4] // w11= CPRO; w3= MFLG
add x11,x11,x12 // cpr0
ldr x0,[x12,#4*4] // ADRM
add x10,x10,x12 // end_decompress
ldr w4,[x11,# sz_unc]
ldr w27,[x11,#o_binfo - cpr0] // O_BINFO
sub x26,x12,w29,uxtw // &our_Elf64_Ehdr
add x27,x27,x26 // &b_info for Elf64_Ehdr
add w1,w29,w4 // sz_pack2 + cpr0.sz_unc
add x1,x1,# PAGE_SIZE
f_exp:
f_decompress:
// It would be nice to choose a random address (x0= 0; x3 &~ MAP_FIXED).
// But the kernel might put the region in the "hole" between compressed .text
// and brk(0). The compressor could layout PT_LOAD[1] to cover that
// entire region, but that might leave a mapping that covers a deliberate
// hole between .text and .data. [Can be fixed with PROT_NONE for .p_flags ?]
section ELFMAINXu
mov w2,#PROT_READ | PROT_WRITE | PROT_EXEC
orr w3,w3,#MAP_FIXED // MFLG: MAP_{PRIVATE|ANON}
mov x5,#0 // offset= 0
mov w4,#-1 // fd= -1; cater to *BSD for fd when MAP_ANON
do_sys __NR_mmap64
PUSH4(x0,x1,x2,x3) // ADRU, LENU, space for sz_unc, MFLG
SP_MFLG= 3*8
D_sz_unc=2*8 // stack displacement to sz_unc
#if DEBUG /*{*/
TRACE(#2)
#endif /*}*/
cmn x0,#4096
bcs msg_SELinux
mov x9,x26 // &our_Elf64_Ehdr
copy_cl: // copy decompressor and folded code
add x5,x0,#64; // FIXME(memcheck) dc zva,x5 // clear FOLLOWING 64-byte line
ldp x1,x2,[x9],#2*8
ldp x3,x4,[x9],#2*8
stp x1,x2,[x0],#2*8
stp x3,x4,[x0],#2*8
section NRV_HEAD
// empty
section NRV_TAIL
// empty
ldp x1,x2,[x9],#2*8
ldp x3,x4,[x9],#2*8
stp x1,x2,[x0],#2*8
stp x3,x4,[x0],#2*8
cmp x9,x10
sub x5,x9,#64; // FIXME(memcheck) dc cvau,x5 // clean 64-byte line
blo copy_cl // all source lines
section NRV2E
#include "arch/arm64/v8/nrv2e_d32.S"
ldr w1,[sp,#SP_MFLG]
sub x4,x0,x9 // relocation amount
str w1,[x0],#4 // MFLG at -4+ fold_begin
adr x15,f_decompress
mov lr,x0 // dst for unfolded code
adr x28,f_decompress
add x28,x28,x4 // relocated f_decompress
add x27,x27,x4 // relocated &b_info
section NRV2D
#include "arch/arm64/v8/nrv2d_d32.S"
ldr w4,[x11,# b_method] // 5th param (whole word: endian issues!)
D_stm1=0*8
ldr w3,[x11,# sz_unc]
add x0, x11,# sz_b_info
ldr w1,[x11,# sz_cpr]
mov x2,lr // dst
str w3,[sp,#D_stm1 + D_sz_unc] // sz_unc; lzma needs for EOF
add x3, sp,#D_stm1 + D_sz_unc // &sz_unc
#if DEBUG /*{*/
TRACE(#3)
#endif /*}*/
br x28 // decompress folded code, return to *lr
section NRV2B
#include "arch/arm64/v8/nrv2b_d32.S"
#if DEBUG /*{*/
#include "arch/arm64/v8/lzma_d.S"
section ELFMAINY
end_decompress: .globl end_decompress
msg_SELinux:
mov w2,#L71 - L70 // length
adr x1,L70 // message text
mov w0,#2 // fd stderr
do_sys __NR_write
die:
mov w0,#127
do_sys __NR_exit
L70:
.asciz "PROT_EXEC|PROT_WRITE failed.\n"
L71:
/* IDENTSTR goes here */
section ELFMAINZ
.balign 4
mmapRW0:
mov x5,#0 // offset
mmapRW:
mov w2,#PROT_WRITE|PROT_READ
mmap:
do_sys __NR_mmap
ret
unfold:
mov xFOLD,lr
// Reserve enough space to decompress the folded code onto xFOLD
ldr w0, [xfexp,#sz_pack2 - f_exp]
add xelfa,xfexp,#sz_pack2 - f_exp
sub xelfa,xelfa,x0 // &Elf64_Ehdr of stub
ldr wszuf,[xFOLD,#sz_unc + LBINFO - LxFOLD] // sz_unc of fold
sub x1,xFOLD,xelfa // offset(FOLD)
mov w4,#-1 // fd
mov w3,#MAP_PRIVATE|MAP_ANONYMOUS
add x1,x1,wszuf,uxtw // length needed
mov x0,#0 // kernel chooses addr
call mmapRW0
PUSH2(x0,x1) // ADRU, LENU
// Duplicate the input data.
ldr w8,[xFOLD,#sz_cpr + LBINFO - LxFOLD] // sz_cpr of fold
sub x1,xFOLD,xelfa // offset(FOLD)
mov w4,wfd // from file
mov w3,#MAP_PRIVATE|MAP_FIXED
PUSH2(xPMASK,xfd)
add x1,x1,x8 // + sz_cpr of fold; x1 <= .st_size
call mmapRW0 // IN: x0= ADRU; OUT: x0= ADRU
sub xrelo,x0,xelfa // relocation amount
mov x8,xfexp; add xfexp,xfexp,xrelo // use old f_exp; xfexp= new &f_exp
// Decompress from old folded code, overwriting new copy of folded code
ldr wobinf,[xFOLD,# LOBINFO - LxFOLD] // O_BINFO
add src,xFOLD,#sz_b_info + LBINFO - LxFOLD // old folded code
add xFOLD,xFOLD,xrelo // dst for unfolding; use copied data
add xLENM,xFOLD,wszuf,uxtw // + sz_unc = last of unfolded
and xADRM,xfexp,xPMASK // base for PROT_EXEC
sub xLENM,xLENM,xADRM // length for PROT_EXEC
TRACE(#1)
// The new f_exp has PROT_WRITE, so use the old f_exp to decompress
ldrb wmeth,[xFOLD,#b_method + LBINFO - LxFOLD]
PUSH1(xszuf) // lzma uses for EOF
mov ldst,sp // &slot on stack
mov dst,xFOLD // dst for unfolding
ldr lsrc,[xFOLD,#sz_cpr + LBINFO - LxFOLD]
callr x8 // decompress it
POP1(x8)
// Generate code to compute PAGE_MASK
ldr x0,[xFOLD,#1*4] // 2nd instr
rbit x1,xPMASK
clz x1,x1 // # trailing 0's in xPMASK
add x1,x1,#1
lsl x1,x1,#2*5 // past two register numbers
orr x0,x0,x1
str x0,[xFOLD,#1*4] // modify 2nd instr: "add x1,x0,#1+ count"
// PROT_EXEC
mov w2,#PROT_EXEC|PROT_READ
mov w1,wLENM // length
mov x0,xADRM // base
TRACE(#2)
do_sys __NR_mprotect
// Use the unfolded code
ldr wLENX,[xfexp,#sz_pack2 - f_exp]
add xADRX,xelfa,wobinf,uxtw // old compressed &b_info
add xADRX,xADRX,xrelo // new compressed &b_info
add x0,xFOLD,#4*4 // jmp over get_page_mask()
jr x0
#if DEBUG //{
TRACE_BUFLEN=1024
trace: // preserves condition code (thank you, CBNZ) [if write() does!]
stp x0, x1,[sp,#-32*8]!
@ -251,49 +342,41 @@ L620:
ret
hex:
.ascii "0123456789abcdef"
#endif /*}*/
#endif //}
f_decompress:
#define LINUX_ARM_CACHEFLUSH 1
proc_self_exe:
.asciz "/proc/self/exe"; .balign 4
section NRV_HEAD
// empty
section NRV_TAIL
// empty
zfind:
ldr x1,[x0],#NBPW; cbnz x1,zfind
ret
section NRV2E
#include "arch/arm64/v8/nrv2e_d32.S"
main:
mov xfexp,lr
mov x0,sp; call zfind // x0= &envp
call zfind; mov xauxv,x0 // &Elf64_auxv
section NRV2D
#include "arch/arm64/v8/nrv2d_d32.S"
// set xPMASK by finding actual page size in Elf64_auxv
1:
ldp x1,x2,[x0],#8
cmp w1,#AT_PAGESZ; beq 2f
cbnz w1,1b // AT_NULL
mov x2,#PAGE_SIZE // default
2:
neg xPMASK,x2 // save for folded code
section NRV2B
#include "arch/arm64/v8/nrv2b_d32.S"
#include "arch/arm64/v8/lzma_d.S"
section ELFMAINY
end_decompress: .globl end_decompress
msg_SELinux:
mov w2,#L71 - L70 // length
adr x1,L70 // message text
mov w0,#2 // fd stderr
do_sys __NR_write
die:
mov w0,#127
do_sys __NR_exit
L70:
.asciz "PROT_EXEC|PROT_WRITE failed.\n"
L71:
/* IDENTSTR goes here */
section ELFMAINZ
o_binfo:
.word O_BINFO
cpr0: .globl cpr0
/* { b_info={sz_unc, sz_cpr, {4 char}}, folded_loader...} */
// Open /proc/self/exe
mov w0,#AT_FDCWD
adr x1,proc_self_exe
mov w2,O_RDONLY
do_sys __NR_openat; mov wfd,w0
call unfold
LxFOLD:
LOBINFO:
.int O_BINFO
LBINFO:
// { b_info={sz_unc, sz_cpr, {4 char}}, folded_loader...}
/*
vi:ts=8:et:nowrap
*/

View File

@ -27,6 +27,7 @@
// <jreiser@users.sourceforge.net>
//
NBPW= 8
#define ARM_OLDABI 1
#include "arch/arm64/v8/macros.S"
@ -38,6 +39,7 @@ sz_b_info = 12
sz_unc= 0
sz_cpr= 4
b_method= 8
sz_auxv= 2*NBPW
MAP_PRIVATE= 0x02
MAP_FIXED= 0x10
@ -55,6 +57,11 @@ PATH_MAX= 4096
#ifndef DEBUG /*{*/
#define DEBUG 0
#endif /*}*/
#if DEBUG //{
#define TRACE(arg) stp lr,x0,[sp,#-2*8]!; mov x0,arg; bl trace; ldr lr,[sp],#2*8
#else //}{
#define TRACE(arg) /*empty*/
#endif //}
//@ control just falls through, after this part and compiled C code
//@ are uncompressed.
@ -62,62 +69,73 @@ PATH_MAX= 4096
#define OVERHEAD 2048
#define MAX_ELF_HDR 512
get_page_size:
mov x0,#~0 // all 1's; -1
add x1,x0,#0 // constant is modified to (1+ count)
lsl x0,x0,x1 // generate the mask
ret
fold_begin:
//// brk #0 // DEBUG
/* In:
x26= &Elf64_Ehdr
x27= &b_info of first compressed block (after move)
x28= f_decompress
w29= total size of compressed data
sp/ ADRU,LENU,sz_unc,MFLG, argc,argv...
*/
POP4(x3,x4,x5,x8) // x3= ADRU; x4= LENU; x5= sz_unc; x8= MFLG
// In: sp/ PMASK,fd,ADRU,LENU, argc,argv,...
//lr .req x30
wLENX .req w29
xADRX .req x28
wLENU .req w27
xLENU .req x27
xADRU .req x26
xelfa .req x25
xfexp .req x24
xauxe .req x23 // past new auxv
xauxv .req x22
wfd .req w21
xfd .req x21
xPMASK .req x20
POP4(xPMASK,xfd, xADRU,xLENU)
ldr x7,[sp,#0] // argc
mov x0,sp // current stack pointer
add x1,sp,#2*8 // skip argc and terminator of argv
add x1,x1,x7,lsl #3 // skip argv
.L10: // skip env
ldr x2,[x1],#8
cbnz x2,.L10
mov x1,xauxv
.L20: // skip auxv
ldr x2,[x1],#2*8
ldr x2,[x1],#2*NBPW
cbnz x2,.L20 // AT_NULL
sub x0,x1,#PATH_MAX // buffer for readlink
sub x6,x0,#4 // space for copy of space3eq
sub x1,x1,x6 // amount needed for argc,argv,env,auxv
sub x0,x6,x1 // space for argc,argv,env,auxv
sub x0,x0,#8 // room for added env ptr
sub x0,x0,#NBPW // room for added env ptr
and x0,x0,#~0<<4 // sp must be 16-byte aligned
add x1,sp,#8 // old_argv; avoid 0==argc impostor for terminator of argv
add x1,sp,#NBPW // old_argv; avoid 0==argc impostor for terminator of argv
mov sp,x0 // new_argc
PUSH3(x3,x4,x5) // ADRU, LENU, sz_unc
SP_sz_unc= 2*8
SP_argc= 4*8 // remember the hole from PUSH3
str x7,[x0],#8 // argc
str x7,[x0],#NBPW // argc
.Larg: // copy argv
ldr x2,[x1],#8
str x2,[x0],#8
ldr x2,[x1],#NBPW
str x2,[x0],#NBPW
cbnz x2,.Larg
.Lenv: // copy env
ldr x2,[x1],#8
str x2,[x0],#8
ldr x2,[x1],#NBPW
str x2,[x0],#NBPW
cbnz x2,.Lenv
sub x4,x0,#8 // added env ptr goes here
str xzr,[x0],#8 // terminator after added ptr
sub x4,x0,#NBPW // added env ptr goes here
str xzr,[x0],#NBPW // terminator after added ptr
mov x7,x0 // new &Elf64_auxv_t
mov xauxv,x0 // new auxv
.Laux: // copy auxv
ldp x2,x3,[x1],#2*8 // .a_type, .a_val
stp x2,x3,[x0],#2*8
ldp x2,x3,[x1],#2*NBPW // .a_type, .a_val
stp x2,x3,[x0],#2*NBPW
cbnz x2,.Laux // AT_NULL
str x0,[sp,#SP_sz_unc] // clobber sz_unc with 1+ &Elf64_auxv_t[AT_NULL@.a_type]
mov xauxe,x0 // last of new auxv
mov x1,x6
str x1,[x4] // new env ptr
@ -132,48 +150,43 @@ SP_argc= 4*8 // remember the hole from PUSH3
0:
/* Construct arglist for upx_main */
mov x6,x26 // Elf64_Ehdr (reloc if ET_DYN and not pre-link)
mov x7,xPMASK
mov x6,xelfa // Elf64_Ehdr (reloc if ET_DYN and not pre-link)
sub sp,sp,#MAX_ELF_HDR + OVERHEAD // alloca
adr x5,f_unfilter
mov x4,x28 // f_decompress
mov x3,x7 // new &Elf64_auxv_t
mov x4,xfexp // &f_decompress
mov x3,xauxv // new &Elf64_auxv_t
mov x2,sp // ehdr
mov w1,w29 // total size of compressed data
mov x0,x27 // &b_info
mov w1,wLENX // total size of compressed data
mov x0,xADRX // &b_info
bl upx_main
add sp,sp,#MAX_ELF_HDR + OVERHEAD // un-alloca
str x0,[sp,#3*8] // entry address
mov xfexp,x0 // entry address
// Map 1 page of /proc/self/exe so that munmap does not remove all references
adr x0,proc_self_exe
mov w1,#O_RDONLY
bl open
mov w15,w0 // fd
mov x5,xzr // offset
mov w4,w0 // fd
mov x5,#0 // offset
mov w4,wfd // fd
mov w3,#MAP_PRIVATE
mov w2,#PROT_READ
mov x1,#PAGE_SIZE
mov x0,xzr // addr
mov x0,#0 // addr
bl mmap
mov w0,w15 // fd
mov w0,wfd // fd
bl close
POP4(x0,x1,x2,lr) // x0= ADRU; x1= LENU; x2= 1+ &Elf64_auxv_t[AT_NULL@.atype]; lr= entry
#if DEBUG /*{*/
ldr x4,[x2,#8 -2*8] // Elf64_auxv_t[AT_NULL@.a_type].a_val
ldr w5,[x4,#0] // 1st instr
ldr w6,[x4,#4] // 2nd instr
#define TRACE_REGS r0-r12,r14,r15
stmdb sp!,{TRACE_REGS}; mov r0,#4; bl trace
#endif /*}*/
ldr x3,[x2,#8 -2*8] // Elf64_auxv_t[AT_NULL@.a_type].a_val
mov lr,xfexp // entry
mov x0,xADRU
mov w1,wLENU
ldr x2,[xauxe,#NBPW - sz_auxv] // Elf64_auxv_t[AT_NULL@.a_type].a_val
mov w8,#__NR_munmap
br x3
#if DEBUG //{
ldr w3,[x4,#0] // 1st instr
ldr w4,[x4,#4] // 2nd instr
TRACE(4)
#endif //}
br x2 // goto escape hatch
space3eq:
.ascii " ="
@ -212,57 +225,99 @@ tst_unf:
unfret:
ret
#if DEBUG /*{*/
TRACE_BUFLEN=512
trace:
str lr,[sp,#(-1+ 15)*4] // return pc; [remember: sp is not stored]
mov r4,sp // &saved_r0
#if DEBUG //{
TRACE_BUFLEN=1024
trace: // preserves condition code (thank you, CBNZ) [if write() does!]
stp x0, x1,[sp,#-32*8]!
stp x2, x3,[sp,# 2*8]
stp x4, x5,[sp,# 4*8]
stp x6, x7,[sp,# 6*8]
stp x8, x9,[sp,# 8*8]
stp x10,x11,[sp,#10*8]
stp x12,x13,[sp,#12*8]
stp x14,x15,[sp,#14*8]
stp x16,x17,[sp,#16*8]
stp x18,x19,[sp,#18*8]
stp x20,x21,[sp,#20*8]
stp x22,x23,[sp,#22*8]
stp x24,x25,[sp,#24*8]
stp x26,x27,[sp,#26*8]
stp x28,x29,[sp,#28*8]
add x1,lr,#4 // u_pc
add x2,sp, #32*8 + 2*8 // u_sp
stp x1, x2,[sp,#30*8]
ldr x1,[sp,#(1+ 32)*8] // x1= u_x0
str x1,[sp] // u_x0
mov x4,sp // &u_x0
sub sp,sp,#TRACE_BUFLEN
mov r2,sp // output string
mov x2,sp // output string
mov r1,#'\n'; bl trace_hex // In: r0 as label
mov r1,#'>'; strb r1,[r2],#1
mov w1,#'\n'; bl trace_hex // In: r0 as label
mov w1,#'>'; strb w1,[x2],#1
mov r5,#3 // rows to print
mov w5,#10 // nrows to print
L600: // each row
sub r0,r4,#TRACE_BUFLEN
sub r0,r0,sp
mov r0,r0,lsr #2; mov r1,#'\n'; bl trace_hex // which block of 8
add x1,sp,#TRACE_BUFLEN
sub x0,x4,x1
lsr x0,x0,#3; mov w1,#'\n'; bl trace_hex2 // which block of 4
mov r6,#8 // words per row
mov w6,#4 // 64-bit words per row
L610: // each word
ldr r0,[r4],#4; mov r1,#' '; bl trace_hex // next word
subs r6,r6,#1; bgt L610
ldr x0,[x4],#8; mov w1,#(' '<<8)|' '; bl trace_hex // next word
sub w6,w6,#1; cbnz w6,L610
subs r5,r5,#1; bgt L600
sub w5,w5,#1; cbnz w5,L600
mov r0,#'\n'; strb r0,[r2],#1
sub r2,r2,sp // count
mov r1,sp // buf
mov r0,#2 // FD_STDERR
#if defined(ARMEL_EABI4) /*{*/
mov r7,#__NR_write
swi 0
#else /*}{*/
swi __NR_write
#endif /*}*/
mov w0,#'\n'; strb w0,[x2],#1
mov x1,sp // buf
sub x2,x2,x1 // count
mov w0,#2 // FD_STDERR
do_sys __NR_write
add sp,sp,#TRACE_BUFLEN
ldmia sp!,{TRACE_REGS}
trace_hex: // In: r0=val, r1=punctuation before, r2=ptr; Uses: r3, ip
strb r1,[r2],#1 // punctuation
mov r3,#4*(8 -1) // shift count
adr ip,hex
ldp x16,x17,[sp,#16*8]
ldp x18,x19,[sp,#18*8]
ldp x20,x21,[sp,#20*8]
ldp x22,x23,[sp,#22*8]
ldp x24,x25,[sp,#24*8]
ldp x26,x27,[sp,#26*8]
ldp x28,x29,[sp,#28*8]
ldp x30, x0,[sp,#30*8]
sub lr, lr,#4 // our lr
ldp x14,x15,[sp,#14*8]
ldp x12,x13,[sp,#12*8]
ldp x10,x11,[sp,#10*8]
ldp x8, x9,[sp,# 8*8]
ldp x6, x7,[sp,# 6*8]
ldp x4, x5,[sp,# 4*8]
ldp x2, x3,[sp,# 2*8]
ldp x0, x1,[sp],#32*8
ret
trace_hex2:
mov w3,#2; b trace_hexwid
trace_hex: // In: x0=value, w1=punctuation before, x2=ptr; Uses: w3, x8
mov w3,#16 // ndigits
trace_hexwid: // In: x0= value; w1= punctuation; x2= ptr; w3= number of low-order digits
strb w1,[x2],#1; lsr w1,w1,#8; cbnz w1,trace_hexwid // prefix punctuation
adr x8,hex
L620:
mov r1,r0,lsr r3
and r1,r1,#0xf
ldrb r1,[ip, r1]
strb r1,[r2],#1
subs r3,r3,#4; bge L620
sub w3,w3,#1 // number of less-significant digits
lsl w1,w3,#2 // 4 bits per hex digit
lsr x1,x0,x1 // right justify this digit
and x1,x1,#0xf
ldrb w1,[x8, x1]
strb w1,[x2],#1
sub w1,w3,#8; cbnz w1,0f; mov w1,#'_'; strb w1,[x2],#1 // 8-digit readability
0:
cbnz w3,L620
ret
hex:
.ascii "0123456789abcdef"
#endif /*}*/
#endif //}
.unreq ptr
.unreq len
.unreq cto
@ -270,24 +325,20 @@ hex:
__NR_SYSCALL_BASE= 0
__NR_exit = 0x5e + __NR_SYSCALL_BASE // 94 exit_group
__NR_read = 0x3f + __NR_SYSCALL_BASE // 63
__NR_write = 0x40 + __NR_SYSCALL_BASE // 64
__NR_open = 0x38 + __NR_SYSCALL_BASE // 56
__NR_close = 0x39 + __NR_SYSCALL_BASE // 57
__NR_unlink= 0x23 + __NR_SYSCALL_BASE // 35
__NR_getpid= 0xad + __NR_SYSCALL_BASE // 172
__NR_brk = 0xd6 + __NR_SYSCALL_BASE // 214
__NR_readlink=0x4e+ __NR_SYSCALL_BASE // 78
__NR_exit = 0x5d + __NR_SYSCALL_BASE // 93
__NR_read = 0x3f + __NR_SYSCALL_BASE // 63
__NR_write = 0x40 + __NR_SYSCALL_BASE // 64
__NR_openat = 0x38 + __NR_SYSCALL_BASE // 56
__NR_close = 0x39 + __NR_SYSCALL_BASE // 57
__NR_unlinkat = 0x23 + __NR_SYSCALL_BASE // 35
__NR_getpid = 0xad + __NR_SYSCALL_BASE // 172
__NR_brk = 0xd6 + __NR_SYSCALL_BASE // 214
__NR_readlink = 0x4e + __NR_SYSCALL_BASE // 78
__NR_mmap = 0xde + __NR_SYSCALL_BASE // 222
__NR_mprotect = 0xe2 + __NR_SYSCALL_BASE // 226
__NR_munmap = 0xd7 + __NR_SYSCALL_BASE // 215
__ARM_NR_BASE = 0x0f0000 + __NR_SYSCALL_BASE
__ARM_NR_cacheflush = 2 + __ARM_NR_BASE
.globl my_bkpt
my_bkpt:
brk #0
@ -340,8 +391,10 @@ mmap:
.globl unlink
unlink:
mov x1,#0 // flags as last arg
mov w8,#__NR_unlink
mov x2,#0 // flags as last arg
mov x1,x0 // path
mov w0,#AT_FDCWD
mov w8,#__NR_unlinkat
b svc_AT
.globl readlink
@ -351,7 +404,7 @@ readlink:
.globl open
open:
mov w8,#__NR_open
mov w8,#__NR_openat
svc_AT:
//mov x4,x3
mov x3,x2 // mode

View File

@ -1,576 +1 @@
/* arm64-linux.elf-main.c -- stub loader for Linux 64-bit ELF executable
This file is part of the UPX executable compressor.
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
Copyright (C) 2000-2017 John F. Reiser
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
and/or modify them under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of
the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Markus F.X.J. Oberhumer Laszlo Molnar
<markus@oberhumer.com> <ezerotven+github@gmail.com>
John F. Reiser
<jreiser@users.sourceforge.net>
*/
#include "include/linux.h"
#ifndef DEBUG //{
#define DEBUG 0
#endif //}
#if !DEBUG //{
#define DPRINTF(fmt, args...) /*empty*/
#else //}{
// DPRINTF is defined as an expression using "({ ... })"
// so that DPRINTF can be invoked inside an expression,
// and then followed by a comma to ignore the return value.
// The only complication is that percent and backslash
// must be doubled in the format string, because the format
// string is processd twice: once at compile-time by 'asm'
// to produce the assembled value, and once at runtime to use it.
#if defined(__powerpc__) //{
#define DPRINTF(fmt, args...) ({ \
char const *r_fmt; \
asm("bl 0f; .string \"" fmt "\"; .balign 4; 0: mflr %0" \
/*out*/ : "=r"(r_fmt) \
/* in*/ : \
/*und*/ : "lr"); \
dprintf(r_fmt, args); \
})
#elif defined(__x86_64) //}{
#define DPRINTF(fmt, args...) ({ \
char const *r_fmt; \
asm("call 0f; .asciz \"" fmt "\"; 0: pop %0" \
/*out*/ : "=r"(r_fmt) ); \
dprintf(r_fmt, args); \
})
#elif defined(__AARCH64EL__) //}{
#define DPRINTF(fmt, args...) ({ \
char const *r_fmt; \
asm("bl 0f; .string \"" fmt "\"; .balign 4; 0: mov %0,x30" \
/*out*/ : "=r"(r_fmt) \
/* in*/ : \
/*und*/ : "x30"); \
dprintf(r_fmt, args); \
})
#endif //}
static int dprintf(char const *fmt, ...); // forward
#endif /*}*/
/*************************************************************************
// configuration section
**************************************************************************/
// In order to make it much easier to move this code at runtime and execute
// it at an address different from it load address: there must be no
// static data, and no string constants.
#define MAX_ELF_HDR 1024 // Elf64_Ehdr + n*Elf64_Phdr must fit in this
/*************************************************************************
// "file" util
**************************************************************************/
typedef struct {
size_t size; // must be first to match size[0] uncompressed size
char *buf;
} Extent;
static void
xread(Extent *x, char *buf, size_t count)
{
char *p=x->buf, *q=buf;
size_t j;
if (x->size < count) {
exit(127);
}
for (j = count; 0!=j--; ++p, ++q) {
*q = *p;
}
x->buf += count;
x->size -= count;
}
/*************************************************************************
// util
**************************************************************************/
#if 1 //{ save space
#define ERR_LAB error: exit(127);
#define err_exit(a) goto error
#else //}{ save debugging time
#define ERR_LAB /*empty*/
static void
err_exit(int a)
{
(void)a; // debugging convenience
exit(127);
}
#endif //}
/*************************************************************************
// UPX & NRV stuff
**************************************************************************/
typedef void f_unfilter(
nrv_byte *, // also addvalue
nrv_uint,
unsigned cto8, // junk in high 24 bits
unsigned ftid
);
typedef int f_expand(
const nrv_byte *, nrv_uint,
nrv_byte *, nrv_uint *, unsigned );
static void
unpackExtent(
Extent *const xi, // input
Extent *const xo, // output
f_expand *const f_decompress,
f_unfilter *f_unf
)
{
while (xo->size) {
struct b_info h;
// Note: if h.sz_unc == h.sz_cpr then the block was not
// compressible and is stored in its uncompressed form.
// Read and check block sizes.
xread(xi, (char *)&h, sizeof(h));
if (h.sz_unc == 0) { // uncompressed size 0 -> EOF
if (h.sz_cpr != UPX_MAGIC_LE32) // h.sz_cpr must be h->magic
err_exit(2);
if (xi->size != 0) // all bytes must be written
err_exit(3);
break;
}
if (h.sz_cpr <= 0) {
err_exit(4);
ERR_LAB
}
if (h.sz_cpr > h.sz_unc
|| h.sz_unc > xo->size ) {
err_exit(5);
}
// Now we have:
// assert(h.sz_cpr <= h.sz_unc);
// assert(h.sz_unc > 0 && h.sz_unc <= blocksize);
// assert(h.sz_cpr > 0 && h.sz_cpr <= blocksize);
if (h.sz_cpr < h.sz_unc) { // Decompress block
nrv_uint out_len = h.sz_unc; // EOF for lzma
int const j = (*f_decompress)((unsigned char *)xi->buf, h.sz_cpr,
(unsigned char *)xo->buf, &out_len, h.b_method );
if (j != 0 || out_len != (nrv_uint)h.sz_unc)
err_exit(7);
// Skip Ehdr+Phdrs: separate 1st block, not filtered
if (h.b_ftid!=0 && f_unf // have filter
&& ((512 < out_len) // this block is longer than Ehdr+Phdrs
|| (xo->size==(unsigned)h.sz_unc) ) // block is last in Extent
) {
(*f_unf)((unsigned char *)xo->buf, out_len, h.b_cto8, h.b_ftid);
}
xi->buf += h.sz_cpr;
xi->size -= h.sz_cpr;
}
else { // copy literal block
xread(xi, xo->buf, h.sz_cpr);
}
xo->buf += h.sz_unc;
xo->size -= h.sz_unc;
}
}
//DEBUG_STRCON(STR_make_hatch, "make_hatch %%p %%x\\n");
static void *
make_hatch_arm64(
Elf64_Phdr const *const phdr,
uint64_t const reloc
)
{
unsigned *hatch = 0;
//DPRINTF((STR_make_hatch(),phdr,reloc));
if (phdr->p_type==PT_LOAD && phdr->p_flags & PF_X) {
// The format of the 'if' is
// if ( ( (hatch = loc1), test_loc1 )
// || ( (hatch = loc2), test_loc2 ) ) {
// action
// }
// which uses the comma to save bytes when test_locj involves locj
// and the action is the same when either test succeeds.
// Try page fragmentation just beyond .text .
if ( ( (hatch = (void *)(~3ul & (3+ phdr->p_memsz + phdr->p_vaddr + reloc))),
( phdr->p_memsz==phdr->p_filesz // don't pollute potential .bss
&& (2*4)<=(~PAGE_MASK & -(uint64_t)hatch) ) ) // space left on page
) {
hatch[0]= 0xd4000001; // svc #0
hatch[1]= 0xd65f03c0; // ret (jmp *lr)
}
else {
hatch = 0;
}
}
return hatch;
}
#if 1 /*{*/
static void
upx_bzero(char *p, size_t len)
{
if (len) do {
*p++= 0;
} while (--len);
}
#define bzero upx_bzero
#else
#define bzero(a,b) __builtin_memset(a,0,b)
#endif /*}*/
static void
auxv_up(Elf64_auxv_t *av, unsigned const type, uint64_t const value)
{
if (!av)
return;
DPRINTF("\\nauxv_up %%d %%p\\n", type, value);
for (;; ++av) {
DPRINTF(" %%d %%p\\n", av->a_type, av->a_un.a_val);
if (av->a_type==type || (av->a_type==AT_IGNORE && type!=AT_NULL)) {
av->a_type = type;
av->a_un.a_val = value;
return;
}
}
}
// The PF_* and PROT_* bits are {1,2,4}; the conversion table fits in 32 bits.
#define REP8(x) \
((x)|((x)<<4)|((x)<<8)|((x)<<12)|((x)<<16)|((x)<<20)|((x)<<24)|((x)<<28))
#define EXP8(y) \
((1&(y)) ? 0xf0f0f0f0 : (2&(y)) ? 0xff00ff00 : (4&(y)) ? 0xffff0000 : 0)
#define PF_TO_PROT(pf) \
((PROT_READ|PROT_WRITE|PROT_EXEC) & ( \
( (REP8(PROT_EXEC ) & EXP8(PF_X)) \
|(REP8(PROT_READ ) & EXP8(PF_R)) \
|(REP8(PROT_WRITE) & EXP8(PF_W)) \
) >> ((pf & (PF_R|PF_W|PF_X))<<2) ))
// Find convex hull of PT_LOAD (the minimal interval which covers all PT_LOAD),
// and mmap that much, to be sure that a kernel using exec-shield-randomize
// won't place the first piece in a way that leaves no room for the rest.
static unsigned long // returns relocation constant
xfind_pages(unsigned mflags, Elf64_Phdr const *phdr, int phnum,
char **const p_brk
)
{
size_t lo= ~0, hi= 0, szlo= 0;
char *addr;
mflags += MAP_PRIVATE | MAP_ANONYMOUS; // '+' can optimize better than '|'
for (; --phnum>=0; ++phdr) if (PT_LOAD==phdr->p_type) {
if (phdr->p_vaddr < lo) {
lo = phdr->p_vaddr;
szlo = phdr->p_filesz;
}
if (hi < (phdr->p_memsz + phdr->p_vaddr)) {
hi = phdr->p_memsz + phdr->p_vaddr;
}
}
szlo += ~PAGE_MASK & lo; // page fragment on lo edge
lo -= ~PAGE_MASK & lo; // round down to page boundary
hi = PAGE_MASK & (hi - lo - PAGE_MASK -1); // page length
szlo = PAGE_MASK & (szlo - PAGE_MASK -1); // page length
addr = mmap((void *)lo, hi, PROT_NONE, mflags, -1, 0);
*p_brk = hi + addr; // the logical value of brk(0)
//mprotect(szlo + addr, hi - szlo, PROT_NONE); // no access, but keep the frames!
return (unsigned long)addr - lo;
}
static Elf64_Addr // entry address
do_xmap(
Elf64_Ehdr const *const ehdr,
Extent *const xi,
int const fdi,
Elf64_auxv_t *const av,
f_expand *const f_decompress,
f_unfilter *const f_unf,
Elf64_Addr *p_reloc
)
{
Elf64_Phdr const *phdr = (Elf64_Phdr const *) (ehdr->e_phoff +
(char const *)ehdr);
char *v_brk;
unsigned long const reloc = xfind_pages(
((ET_DYN!=ehdr->e_type) ? MAP_FIXED : 0), phdr, ehdr->e_phnum, &v_brk);
DPRINTF("do_xmap reloc=%%p", reloc);
int j;
for (j=0; j < ehdr->e_phnum; ++phdr, ++j)
if (xi && PT_PHDR==phdr->p_type) {
auxv_up(av, AT_PHDR, phdr->p_vaddr + reloc);
} else
if (PT_LOAD==phdr->p_type) {
unsigned const prot = PF_TO_PROT(phdr->p_flags);
Extent xo;
size_t mlen = xo.size = phdr->p_filesz;
char *addr = xo.buf = reloc + (char *)phdr->p_vaddr;
char *haddr = phdr->p_memsz + addr;
size_t frag = (long)addr &~ PAGE_MASK;
mlen += frag;
addr -= frag;
if (addr != mmap(addr, mlen, prot | (xi ? PROT_WRITE : 0),
MAP_FIXED | MAP_PRIVATE | (xi ? MAP_ANONYMOUS : 0),
(xi ? -1 : fdi), phdr->p_offset - frag) ) {
err_exit(8);
}
if (xi) {
unpackExtent(xi, &xo, f_decompress, f_unf);
}
// Linux does not fixup the low end, so neither do we.
//if (PROT_WRITE & prot) {
// bzero(addr, frag); // fragment at lo end
//}
frag = (-mlen) &~ PAGE_MASK; // distance to next page boundary
if (PROT_WRITE & prot) { // note: read-only .bss not supported here
bzero(mlen+addr, frag); // fragment at hi end
}
if (xi) {
void *const hatch = make_hatch_arm64(phdr, reloc);
if (0!=hatch) {
auxv_up(av, AT_NULL, (uint64_t)hatch);
}
if (0!=mprotect(addr, mlen, prot)) {
err_exit(10);
ERR_LAB
}
}
addr += mlen + frag; /* page boundary on hi end */
if (addr < haddr) { // need pages for .bss
if (addr != mmap(addr, haddr - addr, prot,
MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS, -1, 0 ) ) {
err_exit(9);
}
}
}
if (xi) { // 1st call (main); also have (0!=av) here
if (ET_DYN!=ehdr->e_type) {
// Needed only if compressed shell script invokes compressed shell.
// brk(v_brk); // SIGSEGV when is_big [unmaps ourself!]
}
}
if (0!=p_reloc) {
*p_reloc = reloc;
}
return ehdr->e_entry + reloc;
}
/*************************************************************************
// upx_main - called by our entry code
//
// This function is optimized for size.
**************************************************************************/
void *
upx_main( // returns entry address
/*x0*/ struct b_info const *const bi, // 1st block header
/*x1*/ size_t const sz_compressed, // total length
/*x2*/ Elf64_Ehdr *const ehdr, // temp char[sz_ehdr] for decompressing
/*x3*/ Elf64_auxv_t *const av,
/*x4*/ f_expand *const f_decompress,
/*x5*/ f_unfilter *const f_unf,
/*x6*/ Elf64_Addr reloc
)
{
Extent xo, xi1, xi2;
xo.buf = (char *)ehdr;
xo.size = bi->sz_unc;
xi2.buf = CONST_CAST(char *, bi); xi2.size = sz_compressed;
xi1.buf = CONST_CAST(char *, bi); xi1.size = sz_compressed;
// ehdr = Uncompress Ehdr and Phdrs
unpackExtent(&xi2, &xo, f_decompress, 0); // never filtered?
// AT_PHDR.a_un.a_val is set again by do_xmap if PT_PHDR is present.
auxv_up(av, AT_PHDR , reloc + ehdr->e_phoff);
auxv_up(av, AT_PHNUM, ehdr->e_phnum);
//auxv_up(av, AT_PHENT , ehdr->e_phentsize); /* this can never change */
//auxv_up(av, AT_PAGESZ, PAGE_SIZE); /* ld-linux.so.2 does not need this */
DPRINTF("upx_main1 .e_entry=%%p reloc=%%p", ehdr->e_entry, reloc);
Elf64_Phdr *phdr = (Elf64_Phdr *)(1+ ehdr);
unsigned const orig_e_type = ehdr->e_type;
if (ET_DYN==orig_e_type /*&& phdr->p_vaddr==0*/) { // -pie /*FIXME: and not pre-linked*/
// Unpacked must start at same place as packed, so that brk(0) works.
ehdr->e_type = ET_EXEC;
auxv_up(av, AT_ENTRY, ehdr->e_entry += reloc);
unsigned j;
for (j=0; j < ehdr->e_phnum; ++phdr, ++j) {
phdr->p_vaddr += reloc;
phdr->p_paddr += reloc;
}
}
// De-compress Ehdr again into actual position, then de-compress the rest.
Elf64_Addr entry = do_xmap(ehdr, &xi1, 0, av, f_decompress, f_unf, &reloc);
DPRINTF("upx_main2 entry=%%p reloc=%%p", entry, reloc);
if (ET_DYN!=orig_e_type) {
auxv_up(av, AT_ENTRY , entry);
}
{ // Map PT_INTERP program interpreter
phdr = (Elf64_Phdr *)(1+ ehdr);
unsigned j;
for (j=0; j < ehdr->e_phnum; ++phdr, ++j) if (PT_INTERP==phdr->p_type) {
char const *const iname = reloc + (char const *)phdr->p_vaddr;
int const fdi = open(iname, O_RDONLY, 0);
if (0 > fdi) {
err_exit(18);
}
if (MAX_ELF_HDR!=read(fdi, (void *)ehdr, MAX_ELF_HDR)) {
ERR_LAB
err_exit(19);
}
{
Elf64_Addr i_reloc = 0;
entry = do_xmap(ehdr, 0, fdi, 0, 0, 0, &i_reloc);
auxv_up(av, AT_BASE, i_reloc); // musl
}
close(fdi);
}
}
return (void *)entry;
}
#if DEBUG //{
static int
unsimal(unsigned x, char *ptr, int n)
{
unsigned m = 10;
while (10 <= (x / m)) m *= 10;
while (10 <= x) {
unsigned d = x / m;
x -= m * d;
m /= 10;
ptr[n++] = '0' + d;
}
ptr[n++] = '0' + x;
return n;
}
static int
decimal(int x, char *ptr, int n)
{
if (x < 0) {
x = -x;
ptr[n++] = '-';
}
return unsimal(x, ptr, n);
}
static int
heximal(unsigned long x, char *ptr, int n)
{
unsigned j = -1+ 2*sizeof(unsigned long);
unsigned long m = 0xful << (4 * j);
for (; j; --j, m >>= 4) { // omit leading 0 digits
if (m & x) break;
}
for (; m; --j, m >>= 4) {
unsigned d = 0xf & (x >> (4 * j));
ptr[n++] = ((10<=d) ? ('a' - 10) : '0') + d;
}
return n;
}
#define va_arg __builtin_va_arg
#define va_end __builtin_va_end
#define va_list __builtin_va_list
#define va_start __builtin_va_start
static int
dprintf(char const *fmt, ...)
{
int n= 0;
char const *literal = 0; // NULL
char buf[24]; // ~0ull == 18446744073709551615 ==> 20 chars
va_list va; va_start(va, fmt);
for (;;) {
char c = *fmt++;
if (!c) { // end of fmt
if (literal) {
goto finish;
}
break; // goto done
}
if ('%'!=c) {
if (!literal) {
literal = fmt; // 1 beyond start of literal
}
continue;
}
// '%' == c
if (literal) {
finish:
n += write(2, -1+ literal, fmt - literal);
literal = 0; // NULL
if (!c) { // fmt already ended
break; // goto done
}
}
switch (c= *fmt++) { // deficiency: does not handle _long_
default: { // un-implemented conversion
n+= write(2, -1+ fmt, 1);
} break;
case 0: { // fmt ends with "%\0" ==> ignore
goto done;
} break;
case 'u': {
n+= write(2, buf, unsimal(va_arg(va, unsigned), buf, 0));
} break;
case 'd': {
n+= write(2, buf, decimal(va_arg(va, int), buf, 0));
} break;
case 'p': {
buf[0] = '0';
buf[1] = 'x';
n+= write(2, buf, heximal((unsigned long)va_arg(va, void *), buf, 2));
} break;
case 'x': {
buf[0] = '0';
buf[1] = 'x';
n+= write(2, buf, heximal(va_arg(va, int), buf, 2));
} break;
} // 'switch'
}
done:
va_end(va);
return n;
}
#endif //}
/* vim:set ts=4 sw=4 et: */
#include "amd64-linux.elf-main.c"

View File

@ -40,6 +40,7 @@
**************************************************************************/
section LEXEC000
sz_pack2 = -4+ _start
_start: .globl _start
//// nop; int3 // DEBUG
push eax // space for entry address
@ -63,6 +64,7 @@ _start: .globl _start
*/
call main // push address of decompress subroutine
decompress:
f_exp: // synonym
// /*************************************************************************
// // C callable decompressor
@ -128,23 +130,30 @@ section LEXEC017
section LEXEC020
#define PAGE_SHIFT 12
#define PAGE_SIZE ( 1 << PAGE_SHIFT)
#define PAGE_MASK (~0 << PAGE_SHIFT)
PAGE_SHIFT= 12
PAGE_SIZE= ( 1 << PAGE_SHIFT)
PAGE_MASK= (~0 << PAGE_SHIFT)
#define MAP_FIXED 0x10
#define MAP_PRIVATE 0x02
#define MAP_ANONYMOUS 0x20
#define PROT_READ 1
#define PROT_WRITE 2
#define PROT_EXEC 4
#define __NR_mmap 90
#define __NR_mprotect 125
#define szElf32_Ehdr 0x34
#define p_memsz 5*4
MAP_FIXED= 0x10
MAP_PRIVATE= 0x02
MAP_ANONYMOUS= 0x20
PROT_READ= 1
PROT_WRITE= 2
PROT_EXEC= 4
__NR_exit= 1
__NR_write= 4
__NR_open= 5
__NR_mmap= 90
__NR_mprotect= 125
szElf32_Ehdr= 0x34
p_memsz= 5*4
sz_unc= 0
sz_cpr= 4
#define __NR_write 4
#define __NR_exit 1
EINVAL= 22
#define pushsbli .byte 0x6a, /* push sign-extended byte to long immediate*/
@ -164,165 +173,87 @@ die:
push __NR_exit; pop eax; int 0x80
// Decompress the rest of this loader, and jump to it
unfold:
lea edx, [ebp - (4+ decompress - _start)] // 4: sizeof(int)
mov edi, [edx] // total length of compressed data
sub edx, edi // %edx= &Elf32_Ehdr of this program
pop esi; lodsd; push eax // O_BINFO
mov eax, edx // %eax= &Elf32_Ehdr of this program
// esi= &{ b_info:{sz_unc, sz_cpr, 4{byte}}, compressed_data...}
unfold: // IN: ebp= f_exp; esp/ &O_BINFO
pop esi; lodsd // skip O_BINFO; esi= &compressed fold_elf86
lea edi,[sz_pack2 - f_exp + ebp]
sub edi,[edi] // edi= &Elf32_Ehdr of this program
section LEXECEXE // in: eax= roundup(PAGE_SIZE, hi(.text))
// Linux requires PF_W in order to create .bss (implied by .p_filesz!=.p_memsz),
// but strict SELinux (or PaX, grSecurity) forbids PF_W with PF_X.
// So first PT_LOAD must be PF_R|PF_X only, and .p_memsz==.p_filesz.
// So we must round up here, instead of pre-rounding .p_memsz.
add eax, [p_memsz + szElf32_Ehdr + eax] // address after .text
add eax, PAGE_SIZE -1
and eax, 0-PAGE_SIZE
// Open /proc/self/exe
call 0f; .asciz "/proc/self/exe"; 0: pop ebx // path
sub ecx,ecx // O_RDONLY
push __NR_open; pop eax; int 0x80; push eax // P_31 fd
pop ecx // O_BINFO
push edx // ADRU
push edx // space for LENU
push edx // space for fd
push 0 // slide
add ecx,edx // O_BINFO + &Elf32_Ehdr
push ecx // ADRX
push edi // LENX
// mmap for {fold_begin}
// Reserve space for input file and unfolded stub
push 0 // offset
push -1 // *BSD demands -1==fd for mmap(,,,MAP_ANON,,)
push MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS
push PROT_READ | PROT_WRITE
push [esi] // length {fold_begin}.sz_unc
push eax // destination
mov ebx, esp // address of parameter vector for __NR_mmap
push __NR_mmap; pop eax; int 0x80 // changes only %eax; %edx is live
cmp eax,[ebx]; jne msg_SELinux // not the expected address (includes error)
mov edx,esi
push -1 // fd
sub edx,edi // offset(dst) of unfold
push MAP_PRIVATE|MAP_ANONYMOUS
add edx,[esi] // + sz_unc
push PROT_READ|PROT_WRITE
push edx // len
push 0 // kernel chooses addr
call mmap
pop ecx; push ecx // P_31 fd
push edx // P_23 LENU
push eax // P_24 ADRU
// Duplicate the input data.
mov edx,esi
push 0 // offset
sub edx,edi // offset(dst) of unfold
push ecx // fd
add edx,[esi + sz_cpr] // edx <= .st_size
PUSH MAP_PRIVATE|MAP_FIXED // at reserved addr eax by previous mmap
push PROT_READ|PROT_WRITE
push edx // len
push eax // addr
call mmap // another copy of this program
// Remember new f_exp region for PROT_EXEC.
mov edx,eax // copy ADRU
sub eax,edi // relocation amount
add eax,esi // dst for unfolding
mov ecx,eax
push eax // P_20 dst
add ecx,[esi] // + sz_unc; last of unfolded
mov eax,ebp // old f_exp
sub eax,edi // offset(f_exp)
add eax,edx // new f_exp
and eax,PAGE_MASK // base to protect
sub ecx,eax // length to protect
pop edx; push edx // P_20 dst
push ecx; push eax // P_21 save for PROT_EXEC
// Unfold
lodsd; push eax; mov ebx,esp // sz_unc
lodsd; xchg ecx,eax // sz_cpr
lodsd; push eax // b_method
push ebx // &sz_unc
push edx // dst
push ecx // sz_cpr
push esi // src
call ebp // decompress
add esp,6*4
mov ecx,[esi] // .sz_unc
add ecx,eax // + new fold_begin
sub ecx,edx // - &Elf32_Ehdr
mov [4*4 + esp],ecx // LENU
xchg eax,edx // edx= new fold_begin
push ebp // P_12 old f_exp (also new f_exp)
section LEXECDYN
// VDSO might interfere with our desired placement; move down to avoid it
// edx= &Elf32_Ehdr this ET_DYN (stub and compressed data)
// esi= &b_info of fold_begin
// edi= sz_pack2
// esp/ O_BINFO,%entry,argc,...
add edi,[esi] // sz_pack2 + {fold_begin}.sz_unc
add edi,offset eof // + sizeof(this_stub)
push edx; push edi // P_03
mov ecx,edx // hi_va of desired placement
sub edx,edi // tentative placement
and edx,-PAGE_SIZE // on page boundary
mov edi,ecx // hi_va
sub edi,edx // length in whole pages
mov ecx,[4*4+ esp] // argc
push esi // P_05
lea esi,[esp + 4*ecx + (3+3+1)*4] // &env
1:
lodsd; test eax,eax; jne 1b // skip env
2:
lodsd; test eax,eax; je 5f // AT_NULL; done with auxv
AT_SYSINFO= 32
AT_SYSINFO_EHDR=33
subb al,AT_SYSINFO
cmpb al,AT_SYSINFO_EHDR - AT_SYSINFO
lodsd
ja 2b // not AT_SYSINFO*
sub eax,edx // offset
sub eax,edi // length
jnb 2b // no conflict with the pages we will map
add edx,eax // move down
and edx,-PAGE_SIZE // to page boundary
jmp 2b
5:
pop esi // P_05
mov eax,edx // placement
pop edi; pop edx // P_03
// mmap new pages
push 0 // offset
push -1 // *BSD demands -1==fd for mmap(,,,MAP_ANON,,)
push MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS
push PROT_READ | PROT_WRITE
push edi // length
push eax // destination
mov ebx, esp // address of parameter vector for __NR_mmap
0:
push __NR_mmap; pop eax; int 0x80 // changes only %eax; %edx is live
sub ecx,ecx; cmp [ebx],ecx; je 7f // "any address" always succeeds
cmp eax,[ebx]; je 7f // success
mov [ebx],ecx // any addr
mov [word ptr 3*4 + ebx], MAP_PRIVATE | MAP_ANONYMOUS // not MAP_FIXED
cmp eax,-EINVAL; je 0b
jmp msg_SELinux
7:
add esp,6*4
pop ecx // O_BINFO
push eax // ADRU
push edi // LENU
push 0 // space for fd at fold_begin
push edx // &Elf32_Ehdr ('slide' if ET_DYN)
add ecx,eax; push ecx // ADRX
xchg eax, edx // %edx= new page; %eax= &Elf32_Ehdr of this program
xchg eax, ebx // %ebx= &Elf32_Ehdr of this program
// Copy to new pages
push ebp // P_11 old f_exp
sub edi,[esi] // - {fold_begin}.sz_unc
lea ecx,[3+ edi] // len; 3: decompressor overrun on x86*
push edi; mov edi,edx // dst
push esi; mov esi,ebx // src
sub ebp,ebx // reloc &f_exp
add ebp,edx
mov ebx,edx // reloc &Elf32_Ehdr
shr ecx,2; rep movsd
mov edx,edi // new &fold_begin
pop esi
pop edi
pop eax // P_11
sub edi,offset eof // edi= sz_pack2
push edi // LENX
push eax // P_12 old f_exp (has PROT_EXEC)
section LEXEC025 // entry edx= new fold_begin; esi= &{fold_begin}.b_info
push edx // P_10 &retaddr= fold_begin
lodsd // eax= {fold_begin}.sz_unc
push eax; push edx // P_13 params for mprotect
push eax // {fold_begin}.sz_unc (maximum dstlen for lzma)
mov ecx,esp // save &dstlen
push eax // space for 5th param
push ecx // &dstlen
push edx // &dst
lodsd
push eax // {fold_begin}.sz_cpr (srclen)
lodsd // last 4 bytes of b_info
mov [4*3 + esp],eax
push esi // &compressed_data
call [9*4 + esp] // old_f_exp(&src, srclen, &dst, &dstlen, b_info.misc)
add esp, 0+(5+1)*4 // args to decompress
pop ebx; pop ecx // P_13 fold_begin, .sz_unc
sub ebx,ebp // extend down to new f_exp
add ecx,ebx // len(fold_begin) + len(new f_exp)
mov ebx,ebp // start at new f_exp
mov eax,ebx // base
and eax,~PAGE_MASK // fragment on low end
sub ebx,eax // round down to page boundary
add ecx,eax // increase length
push PROT_READ | PROT_EXEC; pop edx
// PROT_EXEC
pop ebx; pop ecx // P_21
push PROT_EXEC|PROT_READ; pop edx
push __NR_mprotect; pop eax; int 0x80
// Use the copy
pop edx // P_20 &unfold
pop eax; push eax // P_24 ADRU
sub ebp,edi // - old_base
add ebp,eax // new f_exp
add eax,[-4*4 + esi] // + O_BINFO = ADRX
mov ecx,[sz_pack2 - f_exp + ebp] // LENX(==sz_pack2)
// eax:ADRX; ebx:free; ecx:LENX; edx:&unfold
// ebp:f_exp; esi:&old_b_info(fold); edi:dynbase
jmp edx // esp/ ADRU,LENU,fd,entry,argc,argv,0,...
ret 4*1 // P_10 jmp; P_12 toss
mmap: // oldmmap: ebx -> 6 arguments; remove arguments on return
lea ebx,[4+esp]
push __NR_mmap; pop eax; int 0x80
cmp eax,PAGE_MASK; jl 0f; hlt; 0:
ret 6*4
main:
pop ebp // &decompress

View File

@ -66,26 +66,31 @@ O_RDONLY= 0
// are uncompressed.
// enter:
// %ebp= f_expand
// %esp/ LENX,ADRX,slide,fd,LENU,ADRU,entry,argc,argv,0,envp,0,auxv,0,strings
// (LENU,ADRU) = params for final munmap()
// (LENX,ADRX) = extent of compressed program (after moving)
// eax:ADRX; ebx:free; ecx:LENX; edx:&unfold
// ebp:f_exp; esi:free; edi:elfaddr
// esp/ ADRU,LENU,fd,entry,argc,argv,0,envp,0,auxv,0,strings
// (ADRU,LENU) = params for final munmap()
// (ADRX,LENX) = extent of compressed program (after moving)
fold_begin:
//// int3 // DEBUG
push edi // elfaddr
push ecx // LENX
push eax // ADRX
mov esi,esp; sub esp,PATH_MAX
mov edi,esp; push 8; pop ecx; rep movsd // copy LENX,ADRX,slide,fd,LENU,ADRU,entry,argc
mov edi,esp; push 8; pop ecx; rep movsd // copy ADRX,LENX,elfaddr,ADRU,LENU,fd,entry,argc
push ebp // f_exp
mov ebp,esp // frame: f_exp,LENX,ADRX,slide,fd,LENU,ADRU,entry,argc
F_fd= 4*4 // frame offset to fd
mov ebp,esp // frame: f_exp,ADRX,LENX,elfaddr,ADRU,LENU,fd,entry,argc
F_fd= 6*4 // frame offset to fd
0:
lodsd; test %eax,%eax; stosd; jne 0b // argv
push edi // &new_env[0]; f_exp,LENX,ADRX,slide,fd,LENU,ADRU,entry,argc
push edi // &new_env[0]; f_exp,ADRX,LENX,elfaddr,ADRU,LENU,fd,entry,argc
stosd // space for new_env[0]
0:
lodsd; test %eax,%eax; stosd; jne 0b // env
push edi // &old_auxv,&new_env[0]; f_exp,LENX,ADRX,slide,fd,LENU,ADRU,entry,argc
push edi // &old_auxv,&new_env[0]; f_exp,ADRX,LENX,elfaddr,ADRU,LENU,fd,entry,argc
0:
lodsd; test %eax,%eax; stosd; movsd; jne 0b // auxv
@ -94,18 +99,14 @@ F_fd= 4*4 // frame offset to fd
mov ecx,5*2; rep stosd // 5 extra slots of AT_IGNORE
dec eax; stosd; stosd // 0, AT_NULL
sub [-2*4 + ebp],edi // -len_aux
push edi // P_07 &new_aux[N],-len_aux,&new_env[0]; f_exp,LENX,ADRX,slide,fd,LENU,ADRU,entry,argc
push esi // &strings,&new_aux[N],-len_aux,&new_env[0]; f_exp,LENX,ADRX,slide,fd,LENU,ADRU,fd,entry,argc
push edi // P_07 &new_aux[N],-len_aux,&new_env[0]; f_exp,ADRX,LENX,elfaddr,ADRU,LENU,fd,entry,argc
push esi // &strings,&new_aux[N],-len_aux,&new_env[0]; f_exp,ADRX,LENX,elfaddr,ADRU,LENU,fd,fd,entry,argc
call 1f
0:
.asciz "/proc/self/exe"
1:
pop ebx // path
sub ecx,ecx // O_RDONLY
push __NR_open; pop eax; int 0x80
mov [F_fd + ebp],eax // fd for later mmap
pop ebx // path (because 'readlink' wants the name, not the fd)
mov edx,-5*2*4 -1+ PATH_MAX // buflen
mov ecx,edi // buffer
// mov ebx,ebx // name
@ -117,7 +118,7 @@ F_fd= 4*4 // frame offset to fd
xchg ecx,eax // ecx= byte count
std
pop edi; dec edi // abuts old strings; &new_aux[N],-len_aux,&new_env[0]; f_exp,LENX,ADRX,slide,fd,LENU,ADRU,entry,argc
pop edi; dec edi // abuts old strings; &new_aux[N],-len_aux,&new_env[0]; f_exp,ADRX,LENX,elfaddr,ADRU,LENU,fd,entry,argc
mov al,0; stosb // terminate
rep movsb // slide up
mov eax, 0+ ('='<<24)|(' '<<16)|(' '<<8)|(' '<<0) # env var name
@ -125,7 +126,7 @@ F_fd= 4*4 // frame offset to fd
mov eax,[-1*4 + ebp]; mov [eax],edi // new_env[0]
and edi,~3 // word align
pop esi // P_07 &new_aux[N]; -len_aux,&new_env[0]; f_exp,LENX,ADRX,slide,fd,LENU,ADRU,entry,argc
pop esi // P_07 &new_aux[N]; -len_aux,&new_env[0]; f_exp,ADRX,LENX,elfaddr,ADRU,LENU,fd,entry,argc
// Final sp must be 0 mod 8. There are now 10 words below argc.
mov ecx,esi // last
sub ecx,esp // length of moved block
@ -134,7 +135,7 @@ F_fd= 4*4 // frame offset to fd
and eax,4
sub edi,eax // align &new_aux[last]
pop edx // -len_aux; &new_env[0]; f_exp,LENX,ADRX,slide,fd,LENU,ADRU,entry,argc
pop edx // -len_aux; &new_env[0]; f_exp,ADRX,LENX,elfaddr,ADRU,LENU,fd,entry,argc
add edx,edi // edx= &final_aux[0]
scasd // edi -= 4
@ -152,16 +153,16 @@ F_fd= 4*4 // frame offset to fd
pop eax // toss &new_env[0]
pop ebp // f_exp
// stack is back to original state: LENX,ADRX,slide,fd,LENU,ADRU,entry,argc
// stack is back to original state: ADRX,LENX,elfaddr,ADRU,LENU,fd,entry,argc
pop esi // LENX: sz_cpr
pop eax // ADRX: &b_info
pop ecx // slide
pop esi // LENX: total_size
pop ecx // elfaddr
#define OVERHEAD 2048
#define MAX_ELF_HDR 512
sub esp, MAX_ELF_HDR + OVERHEAD // alloca
mov edx, esp // &tmp
push ecx // slide (9th arg)
push ecx // elfaddr (9th arg)
mov ebx, [ eax] // length of uncompressed ELF headers
mov ecx, [4+ eax] // length of compressed ELF headers
add ecx, szb_info
@ -176,15 +177,20 @@ F_fd= 4*4 // frame offset to fd
mov esi,eax // save entry
mov edx,edi // save auxv
mov edi,esp
mov ecx,((8 +1)*4 + MAX_ELF_HDR + OVERHEAD) >>2 // 8 params, slide, un-alloca
mov ecx,((8 +1)*4 + MAX_ELF_HDR + OVERHEAD) >>2 // 8 params, elfaddr, un-alloca
xor eax,eax // 0
rep stosd // clear frame on exit
mov esp,edi // end of frame
mov [3*4 + esp],esi // entry
pop eax // ADRU
pop ecx // LENU
pop edi // fd
pop ebx // space
push esi // entry
push ecx // LENU
push eax // ADRU
push edx // auxv
push edi // fd, auxv, LENU, ADRU, entry, argc
push edi // fd, auxv, ADRU, LENU, entry, argc
sub ebp,ebp // 0 block in file
// edi has fd
@ -205,8 +211,8 @@ L60:
scasd // a_type
jne L60 // not AT_NULL
// edi now points at [AT_NULL]a_un.a_ptr which contains result of make_hatch()
pop ecx // LENU
pop ebx // ADRU
pop ecx // LENU
push eax
push eax

View File

@ -392,6 +392,7 @@ make_hatch_x86(Elf32_Phdr const *const phdr, ptrdiff_t reloc)
if (* (volatile unsigned*) hatch != escape) {
* hatch = escape;
}
DPRINTF(" hatch at %%p\\n", hatch);
}
else {
hatch = 0;
@ -455,7 +456,9 @@ make_hatch_mips(
)
{
hatch[0]= 0x0000000c; // syscall
hatch[1]= 0x03200008; // jr $25 # $25 === $t9 === jp
#define RS(r) ((037&(r))<<21)
#define JR 010
hatch[1]= RS(30)|JR; // jr $30 # s8
hatch[2]= 0x00000000; // nop
}
else {
@ -565,13 +568,7 @@ auxv_up(Elf32_auxv_t *av, unsigned const type, unsigned const value)
extern
size_t get_page_mask(void); // variable page size AT_PAGESZ; see *-fold.S
#elif defined(__mips__) //}{
size_t get_page_mask(void) // FIXME: need to re-write at runtime
{
asm(" li $2,0 - 0x1000; \
jr $31; \
sll $2,$2,9");
return 0; // FIXME
}
// empty
#else //}{ // FIXME for __mips__
size_t get_page_mask(void) { return PAGE_MASK; } // compile-time constant
#endif //}
@ -584,7 +581,8 @@ static ptrdiff_t // returns relocation constant
__attribute__((regparm(3), stdcall))
#endif /*}*/
xfind_pages(unsigned mflags, Elf32_Phdr const *phdr, int phnum,
char **const p_brk
Elf32_Addr *const p_brk
, Elf32_Addr const elfaddr
#if defined (__mips__) //{
, size_t const page_mask
#endif //}
@ -593,9 +591,8 @@ xfind_pages(unsigned mflags, Elf32_Phdr const *phdr, int phnum,
#if !defined(__mips__) //{
size_t const page_mask = get_page_mask();
#endif //}
size_t lo= ~0, hi= 0, szlo= 0;
char *addr;
DPRINTF("xfind_pages %%x %%p %%d %%p\\n", mflags, phdr, phnum, p_brk);
Elf32_Addr lo= ~0, hi= 0, addr = 0;
DPRINTF("xfind_pages %%x %%p %%d %%x %%p\\n", mflags, phdr, phnum, elfaddr, p_brk);
for (; --phnum>=0; ++phdr) if (PT_LOAD==phdr->p_type
#if defined(__arm__) /*{*/
&& phdr->p_memsz
@ -612,23 +609,25 @@ xfind_pages(unsigned mflags, Elf32_Phdr const *phdr, int phnum,
) {
if (phdr->p_vaddr < lo) {
lo = phdr->p_vaddr;
szlo = phdr->p_filesz;
}
if (hi < (phdr->p_memsz + phdr->p_vaddr)) {
hi = phdr->p_memsz + phdr->p_vaddr;
}
}
szlo += ~page_mask & lo; // page fragment on lo edge
lo -= ~page_mask & lo; // round down to page boundary
hi = page_mask & (hi - lo - page_mask -1); // page length
szlo = page_mask & (szlo - page_mask -1); // page length
lo -= ~page_mask & lo; // round down to page boundary
hi = page_mask & (hi - lo - page_mask -1); // page length
if (MAP_FIXED & mflags) {
addr = (char *)lo;
addr = lo;
}
else {
addr = mmap_privanon((void *)lo, hi, PROT_NONE, mflags);
//munmap(szlo + addr, hi - szlo);
else if (0==lo) { // -pie ET_DYN
addr = elfaddr;
if (addr) {
mflags |= MAP_FIXED;
}
}
DPRINTF(" addr=%%p lo=%%p hi=%%p\\n", addr, lo, hi);
addr = (Elf32_Addr)mmap_privanon((void *)addr, hi, PROT_NONE, mflags);
DPRINTF(" addr=%%p\\n", addr);
*p_brk = hi + addr; // the logical value of brk(0)
return (ptrdiff_t)addr - lo;
}
@ -637,6 +636,7 @@ xfind_pages(unsigned mflags, Elf32_Phdr const *phdr, int phnum,
static Elf32_Addr // entry address
do_xmap(int const fdi, Elf32_Ehdr const *const ehdr, Extent *const xi,
Elf32_auxv_t *const av, unsigned *const p_reloc, f_unfilter *const f_unf
, Elf32_Addr elfaddr
#if defined(__mips__) //{
, size_t const page_mask
#endif //}
@ -649,10 +649,10 @@ do_xmap(int const fdi, Elf32_Ehdr const *const ehdr, Extent *const xi,
#endif //}
Elf32_Phdr const *phdr = (Elf32_Phdr const *) (ehdr->e_phoff +
(void const *)ehdr);
char *v_brk;
Elf32_Addr v_brk;
ptrdiff_t reloc = xfind_pages(((ET_EXEC==ehdr->e_type) ? MAP_FIXED : 0),
phdr, ehdr->e_phnum, &v_brk
phdr, ehdr->e_phnum, &v_brk, elfaddr
#if defined(__mips__) //{
, page_mask
#endif //}
@ -666,18 +666,13 @@ do_xmap(int const fdi, Elf32_Ehdr const *const ehdr, Extent *const xi,
fdi, ehdr, xi, (xi? xi->size: 0), (xi? xi->buf: 0),
av, page_mask, reloc, p_reloc, *p_reloc, f_unf);
int j;
for (j=0; j < ehdr->e_phnum; ++phdr, ++j)
if (xi && PT_PHDR==phdr->p_type) {
auxv_up(av, AT_PHDR, phdr->p_vaddr + reloc);
}
else if (PT_LOAD==phdr->p_type
for (j=0; j < ehdr->e_phnum; ++phdr, ++j) if (PT_LOAD==phdr->p_type
#if defined(__arm__) /*{*/
&& phdr->p_memsz
#endif /*}*/
) {
) {
if (xi && !phdr->p_offset /*&& ET_EXEC==ehdr->e_type*/) { // 1st PT_LOAD
// ? Compressed PT_INTERP must not overwrite values from compressed a.out?
auxv_up(av, AT_PHDR, phdr->p_vaddr + reloc + ehdr->e_phoff);
auxv_up(av, AT_PHNUM, ehdr->e_phnum);
auxv_up(av, AT_PHENT, ehdr->e_phentsize); /* ancient kernels might omit! */
//auxv_up(av, AT_PAGESZ, PAGE_SIZE); /* ld-linux.so.2 does not need this */
@ -693,6 +688,7 @@ do_xmap(int const fdi, Elf32_Ehdr const *const ehdr, Extent *const xi,
DPRINTF(" phdr type=%%x offset=%%x vaddr=%%x paddr=%%x filesz=%%x memsz=%%x flags=%%x align=%%x\\n",
phdr->p_type, phdr->p_offset, phdr->p_vaddr, phdr->p_paddr,
phdr->p_filesz, phdr->p_memsz, phdr->p_flags, phdr->p_align);
DPRINTF(" addr=%%x mlen=%%x frag=%%x prot=%%x\\n", addr, mlen, frag, prot);
#if defined(__i386__) /*{*/
// Decompressor can overrun the destination by 3 bytes.
@ -753,7 +749,9 @@ ERR_LAB
}
addr += mlen + frag; /* page boundary on hi end */
if (addr < haddr) { // need pages for .bss
DPRINTF("addr=%%p haddr=%%p\\n", addr, haddr);
if (addr != mmap_privanon(addr, haddr - addr, prot, MAP_FIXED)) {
for(;;);
err_exit(9);
}
}
@ -768,7 +766,7 @@ ERR_LAB
}
if (xi && ET_DYN!=ehdr->e_type) {
// Needed only if compressed shell script invokes compressed shell.
do_brk(v_brk);
do_brk((void *)v_brk);
}
if (0!=p_reloc) {
*p_reloc = reloc;
@ -804,6 +802,7 @@ void *upx_main( // returns entry address
Elf32_auxv_t *const av,
f_expand *const f_exp,
f_unfilter *const f_unf,
Elf32_Addr const elfaddr,
size_t const page_mask
) __asm__("upx_main");
void *upx_main( // returns entry address
@ -813,6 +812,7 @@ void *upx_main( // returns entry address
Elf32_auxv_t *const av,
f_expand *const f_exp,
f_unfilter *const f_unf,
Elf32_Addr const elfaddr,
size_t const page_mask
)
@ -824,7 +824,7 @@ void *upx_main( // returns entry address
Elf32_auxv_t *const av,
f_expand *const f_exp,
f_unfilter *const f_unf,
unsigned dynbase
Elf32_Addr elfaddr
) __asm__("upx_main");
void *upx_main( // returns entry address
struct b_info const *const bi, // 1st block header
@ -833,7 +833,7 @@ void *upx_main( // returns entry address
Elf32_auxv_t *const av,
f_expand *const f_exp,
f_unfilter *const f_unf,
unsigned dynbase
Elf32_Addr elfaddr
)
#else /*}{ !__mips__ && !__powerpc__ */
@ -844,7 +844,7 @@ void *upx_main(
f_unfilter * /*const*/ f_unfilter,
Extent xo,
Extent xi,
unsigned const volatile dynbase
Elf32_Addr const volatile elfaddr
) __asm__("upx_main");
void *upx_main(
Elf32_auxv_t *const av,
@ -853,7 +853,7 @@ void *upx_main(
f_unfilter * /*const*/ f_unf,
Extent xo, // {sz_unc, ehdr} for ELF headers
Extent xi, // {sz_cpr, &b_info} for ELF headers
unsigned const volatile dynbase // value+result: compiler must not change
Elf32_Addr const volatile elfaddr // value+result: compiler must not change
)
#endif /*}*/
{
@ -877,17 +877,16 @@ void *upx_main(
#endif //}
#if defined(__mips__) /*{*/
unsigned const dynbase = 0; // FIXME
Extent xo, xi, xj;
xo.buf = (char *)ehdr; xo.size = bi->sz_unc;
xi.buf = CONST_CAST(char *, bi); xi.size = sz_compressed;
xj.buf = CONST_CAST(char *, bi); xj.size = sz_compressed;
xj.buf = CONST_CAST(char *, bi); xj.size = sizeof(*bi) + bi->sz_cpr;
#endif //}
DPRINTF("upx_main av=%%p szc=%%x f_exp=%%p f_unf=%%p "
" xo=%%p(%%x %%p) xi=%%p(%%x %%p) dynbase=%%x\\n",
" xo=%%p(%%x %%p) xi=%%p(%%x %%p) elfaddr=%%x\\n",
av, sz_compressed, f_exp, f_unf, &xo, xo.size, xo.buf,
&xi, xi.size, xi.buf, dynbase);
&xi, xi.size, xi.buf, elfaddr);
#if defined(__mips__) //{
// ehdr = Uncompress Ehdr and Phdrs
@ -900,23 +899,12 @@ void *upx_main(
xi.size = sz_compressed;
#endif // !__mips__ }
Elf32_Addr reloc = dynbase;
Elf32_Addr reloc = elfaddr;
DPRINTF("upx_main1 .e_entry=%%p reloc=%%p\\n", ehdr->e_entry, reloc);
Elf32_Phdr *phdr = (Elf32_Phdr *)(1+ ehdr);
unsigned const orig_e_type = ehdr->e_type;
if (0 && ET_DYN==orig_e_type /*&& phdr->p_vaddr==0*/) { // -pie /*FIXME: and not pre-linked*/
// Unpacked must start at same place as packed, so that brk(0) works.
ehdr->e_type = ET_EXEC;
auxv_up(av, AT_ENTRY, ehdr->e_entry += reloc);
unsigned j;
for (j=0; j < ehdr->e_phnum; ++phdr, ++j) {
phdr->p_vaddr += reloc;
phdr->p_paddr += reloc;
}
}
// De-compress Ehdr again into actual position, then de-compress the rest.
Elf32_Addr entry = do_xmap((int)f_exp, ehdr, &xi, av, &reloc, f_unf
Elf32_Addr entry = do_xmap((int)f_exp, ehdr, &xi, av, &reloc, f_unf, elfaddr
#if defined(__mips__) //{
, page_mask
#endif //}
@ -936,11 +924,12 @@ void *upx_main(
ERR_LAB
err_exit(19);
}
entry = do_xmap(fdi, ehdr, 0, av, &reloc, 0
entry = do_xmap(fdi, ehdr, 0, av, &reloc, 0, 0
#if defined(__mips__) //{
, page_mask
#endif //}
);
DPRINTF("upx_main3 entry=%%p reloc=%%p\\n", entry, reloc);
auxv_up(av, AT_BASE, reloc); // uClibc and musl
close(fdi);
break;

View File

@ -101,7 +101,7 @@ struct timespec {
#elif defined(__amd64__) //}{
#define PAGE_MASK (~0ul<<12) // discards the offset, keeps the page
#define PAGE_SIZE ( 1ul<<12)
#elif defined(__i386__) || defined(__powerpc__) || defined(__arm__) || defined(__AARCH64EL__) //}{
#elif defined(__i386__) || defined(__powerpc__) || defined(__arm__) //}{
#define PAGE_MASK (~0ul<<12) // discards the offset, keeps the page
#define PAGE_SIZE ( 1ul<<12)
#endif //}

View File

@ -29,9 +29,44 @@
* <jreiser@users.sourceforge.net>
*/
NBPW= 4
#include "arch/mips/r3000/macros.ash"
#include "arch/mips/r3000/bits.ash"
sp_frame= 0x20
// These are local temporaries.
F_ADRM= 2*NBPW
F_LENM= 3*NBPW
// These are passed on stack to unfolded code.
F_PMASK= 4*NBPW
F_fd= 5*NBPW
F_ADRU= 6*NBPW
F_LENU= 7*NBPW
// r_PMASK still is used here
// C-language uses 8 args in registers
a5= 9
a4= 8
//ra 31
#define r_fexp 30 /* s8 */
//sp 29 /* hardware */
#define r_PMASK 28 /* gp */
//k1 27 /* trashed by syscall */
//k0 26 /* trashed by syscall */
//t9, jp 25 /* trashed by syscall ? */
//t8 24 /* trashed by syscall ? */
#define r_fd 23 /* s7 */
#define r_auxv 22 /* s6 */
#define r_elfa 21 /* s5 */
#define r_FOLD 20 /* s4 */
#define r_szuf 19 /* s3 */
#define r_relo 18 /* s2 */
#define r_LENX 17 /* s1 */
#define r_ADRX 16 /* s0 */
#define r_LENU r_LENX
.set mips1
.set noreorder
.set noat
@ -53,6 +88,14 @@ sz_b_info= 12
b_cto8= 10
b_unused=11
AT_NULL= 0 // <elf.h>
AT_PAGESZ= 6
a_type= 0
a_val= NBPW
sz_auxv= 2*NBPW
O_RDONLY= 0
PROT_READ= 1
PROT_WRITE= 2
PROT_EXEC= 4
@ -61,16 +104,20 @@ MAP_PRIVATE= 2
MAP_FIXED= 0x10
MAP_ANONYMOUS= 0x800
PAGE_SHIFT= 12 // default only
PAGE_SIZE = -(~0<<PAGE_SHIFT)
M_NRV2B_LE32=2 // ../conf.h
M_NRV2D_LE32=5
M_NRV2E_LE32=8
/* These from /usr/include/asm/unistd.h */
__NR_Linux = 4000
__NR_write = 4+ __NR_Linux
__NR_exit = 1+ __NR_Linux
__NR_mmap = 90+ __NR_Linux
__NR_exit = 1+ __NR_Linux
__NR_mmap = 90+ __NR_Linux
__NR_mprotect = 125+ __NR_Linux
__NR_open = 5+ __NR_Linux
__NR_write = 4+ __NR_Linux
__NR_cacheflush = 147+ __NR_Linux
/* asm/cachectl.h */
@ -81,19 +128,15 @@ DCACHE= 1<<1
section ELFMAINX
sz_pack2 = . - 4
adrm: .long ADRM
lenm: .long LENM
adru: .long ADRU
adrc: .long ADRC
lenu: .long LENU
adrx: .long ADRX
_start: .globl _start
//// break # debug only
bal main
addiu s7,ra, decompressor - 0f // s7= &decompress
addiu $r_fexp,ra, f_exp - 0f
0:
/* Returns 0 on success; non-zero on failure. */
f_exp: // alternate name
decompressor: // (uchar const *lxsrc, size_t lxsrclen, uchar *lxdst, u32 &lxdstlen, uint method)
#define lxsrc a0
#define lxsrclen a1
@ -102,8 +145,11 @@ decompressor: // (uchar const *lxsrc, size_t lxsrclen, uchar *lxdst, u32 &lxdst
#undef src /* bits.ash */
#define src lxsrc
#define lsrc lxsrclen
#undef dst /* bits.ash */
#define dst lxdst
#define ldst lxdstlen
#define meth a4
UCL_init 32,1,0
decomp_done = eof
@ -187,8 +233,7 @@ lxlzma_retval = lxlzma_srcdone
lw a0,lxlzma_dst(sp)
lw a1,lxlzma_dstdone(sp)
li a2,ICACHE|DCACHE
li v0,__NR_cacheflush
syscall
li v0,__NR_cacheflush; syscall
lw v0,lxlzma_retval(sp) # return value from decompression
@ -237,8 +282,7 @@ eof:
subu a1,lxdst,v1 // actual length generated
sw a1,(lxdstlen)
li a2,ICACHE|DCACHE
li v0,__NR_cacheflush
syscall
li v0,__NR_cacheflush; syscall
lw v0,0(sp)
jr ra
@ -258,111 +302,131 @@ L71:
section ELFMAINZ
L72:
li a0,2 // fd stderr
li v0,__NR_write
syscall
li v0,__NR_write; syscall
die:
li a0,127
li v0,__NR_exit
syscall
/* Decompress the rest of this loader, and jump to it.
Map a page to hold the decompressed bytes. Logically this could
be done by setting .p_memsz for our first PT_LOAD. But as of 2005-11-09,
linux 2.6.14 only does ".bss expansion" on the PT_LOAD that describes the
highest address. [I regard this as a bug, and it makes the kernel's
fs/binfmt_elf.c complicated, buggy, and insecure.] For us, that is the 2nd
PT_LOAD, which is the only way that linux allows to set the brk() for the
uncompressed program. [This is a significant kernel misfeature.]
*/
unfold: // s7= &decompress; s6= &b_info(fold); s5= sz_pack2; s4= &Elf32_Ehdr
/* Get some pages. If small, then get 1 page located just after the end
of the first PT_LOAD of the compressed program. This will still be below
all of the uncompressed program. If large (>=3 MiB uncompressed), then enough
to duplicate the entire compressed PT_LOAD, plus 1 page, located just after
the brk() of the _un_compressed program. The address and length are pre-
calculated by PackLinuxElf64amd::defineSymbols().
*/
#define a4_sys 0x10
#define a5_sys 0x14
#define sp_frame 0x20
li v0,__NR_exit; syscall
unfold: // IN: $r_fexp,$r_auxv,$r_PMASK,$r_FOLD,ra= "/proc/self/exe"
addiu sp,sp,-sp_frame
lw a0,adrm - decompressor(s7)
li a2, PROT_READ | PROT_WRITE
lw a1,lenm - decompressor(s7)
li a3, MAP_PRIVATE | MAP_FIXED | MAP_ANONYMOUS
sw zero,a4_sys(sp) //; sw zero,a5_sys(sp) // MAP_ANON ==> ignore offset
li v0,__NR_mmap; syscall; bnez a3,err_syscall
move s0,v0 // ADRM: &new page(s); &dst for unfold, or &copy of PT_LOAD[0]
sw $r_PMASK,F_PMASK(sp)
lw s3,adru - decompressor(s7) // for unmap in fold
lw s2,lenu - decompressor(s7) // for unmap in fold
lw s1,adrx - decompressor(s7) // for upx_main
// Open /proc/self/exe
move a0,ra
li a1,O_RDONLY
li v0,__NR_open; syscall; sw v0,F_fd(sp)
// Copy compressed data if needed.
lw a0,adrc - decompressor(s7) // where to copy f_exp
lw t0,-4(s6) // O_BINFO
move a1,s0 // dst
sub s5,s5,t0 // sz_pack2 - O_BINFO; ~= total_size compressed
beq a0,s0,L78 // not needed
add a0,s4,t0 // &b_info for upx_main
move a2,s5 // total_size
bal memcpy
move s1,a1 // new adrx
L78:
// Reserve enough space to decompress the folded code onto $r_FOLD.
lw v0, sz_pack2 - f_exp($r_fexp) // length before stub
addiu $r_elfa,$r_fexp,sz_pack2 - f_exp
li a4,-1
lw $r_szuf,sz_unc($r_FOLD) // sz_unc of fold
li a3,MAP_PRIVATE|MAP_ANONYMOUS
sub $r_elfa,$r_elfa,v0 // $r_elfa= &Elf32_Ehdr of this stub
li a0,0 // kenrel chooses addr
sub v0,$r_FOLD,$r_elfa // offset(fold)
add a1,$r_szuf,v0 // length needed
sw a1,F_LENU(sp)
bal mmapRW0
move $r_LENU,a1
sw v0,F_ADRU(sp)
// Decompress the folded part of this stub, using original decompressor.
lw t0,sz_unc(s6); move a3,sp; sw t0,0(sp) // &dst_len
move a2,a1 // &dst
lw a1,sz_cpr(s6) // src_len
addiu a0,s6,sz_b_info
jalr s7 // decompress(src, srclen, dst, &dstlen /*, method*/)
move s4,a2 // &dst
// Duplicate the input data
lw v0,sz_cpr($r_FOLD) // sz_cpr of fold
sub a1,$r_LENU,$r_szuf // - sz_unc of fold
lw a4,F_fd(sp) // from file
li a3,MAP_PRIVATE|MAP_FIXED // at reserved addr a0 by previous map
add a1,a1,v0 // + sz_cpr of fold; a1 <= .st_size
bal mmapRW0
lw a0,F_ADRU(sp)
sub $r_relo, v0,$r_elfa // relocation amount
move ra,$r_fexp; add $r_fexp,$r_fexp,$r_relo // use old f_exp; $r_fexp= new &f_exp
// Copy decompressor if needed.
lw t0,0(sp) // dst_len
lw a0,adrc - decompressor(s7) // where to copy f_exp
add a1,t0,s4 // a1= last of unfolded
beq a0,s0,L80 // no copy f_exp
subu a2,s6,s7 // &b_info(fold) - &decompress; >= sizeof(decompress)
move a0,s7 // src= &decompress
bal memcpy
move s7,a1 // new &f_exp
move a0,s7 // new &f_exp
// a1= last of unfolded, or last of copy
li a2,ICACHE|DCACHE
li v0,__NR_cacheflush
syscall // moved decompressor
L80:
move a0,s0 // new page
sub a1,a1,s0 // len
li a2,PROT_READ|PROT_EXEC
li v0,__NR_mprotect
syscall
// Decompress from old folded code, overwriting new copy of folded code
lw $r_ADRX, -4($r_FOLD) // O_BINFO
addiu src,$r_FOLD,sz_b_info // a0 old folded code
add $r_FOLD,$r_FOLD,$r_relo // dst for unfoding; use copied data
add t1, $r_FOLD, $r_szuf // + sz_unc = last of unfolded
and t0,$r_fexp,$r_PMASK // base for PROT_EXEC
sw t0,F_ADRM(sp)
sub t1,t1,t0 // length for PROT_EXEC
sw t1,F_LENM(sp)
jr s4 // unfold
nop
// The new f_exp has PROT_WRITE, so use the old f_exp to decompress.
lb meth,b_method($r_FOLD)
sw $r_szuf,0(sp) // lzma uses for EOF
move dst,$r_FOLD // a2 dst for unfolding
lw lsrc,sz_cpr($r_FOLD) // a1
jalr ra // decompress it
move ldst,sp // a3 &slot on stack
memcpy:
lw t0, 0(a0); addiu a1,a1, 8
lw t1, 4(a0); addiu a2,a2,-8
sw t0,-8(a1); addiu a0,a0, 8
bgtz a2,memcpy
sw t1,-4(a1)
// Generate code to compute PAGE_MASK.
lw v0,0($r_FOLD) // "li v0,0"
srl v1,$r_PMASK,9
andi v1,v1,0xffff // 0xffff is NOT sign-extended
or v0,v0,v1 // replace immediate constant
sw v0,0($r_FOLD)
// PROT_EXEC
li a2,PROT_EXEC|PROT_READ
lw a1,F_LENM(sp) // length
lw a0,F_ADRM(sp) // base
li v0,__NR_mprotect; syscall
// Use the unfolded code
addi ra,$r_FOLD,4*4 // jmp over get_page_mask()
lw $r_LENX,sz_pack2 - f_exp($r_fexp)
add $r_ADRX,$r_elfa,$r_ADRX // old compressed data
jr ra
nop
add $r_ADRX,$r_ADRX,$r_relo // new compressed data
err_syscall:
b err_syscall
mmapRW0:
li a5,0 // offset
mmapRW:
li a2,PROT_WRITE|PROT_READ
mmap:
addiu sp,sp,-sp_frame
a4_sys= 4*NBPW // temporary for syscall
a5_sys= 5*NBPW // temporary for syscall
sw a4,a4_sys(sp)
sw a5,a5_sys(sp)
li v0,__NR_mmap; syscall
bnez a3,mmap_bad
nop
jr ra
addiu sp,sp, sp_frame
mmap_bad:
break
zfind: // result in $r_auxv
lw v1,(a0); addiu a0,a0,NBPW
bnez v1,zfind
move $r_auxv,a0
jr ra
li t0,AT_PAGESZ // prepare early
main:
lw s5, sz_pack2 - decompressor(s7) // length before stub
la s4,sz_pack2 - decompressor(s7)
sub s4,s4,s5 // &Elf32_Ehdr
bal zfind
move a0,sp
bal zfind
move a0,$r_auxv
// set $r_PMASK by finding actual page size in Elf32_auxv_t
1:
lw v1,a_type(a0)
addiu a0,a0,sz_auxv
beq v1,t0,2f // AT_PAGESZ
lw v0,a_val - sz_auxv(a0)
bnez v1,1b // AT_NULL
li v0,PAGE_SIZE
2:
sub $r_PMASK,zero,v0
bal unfold
addiu s6,ra,4 // &b_info for folded_loader
addiu $r_FOLD,ra,LrFLD - 0f // &b_info for folded loader
0:
.asciz "/proc/self/exe"; .balign 4
.long O_BINFO
LrFLD:
// { b_info={sz_unc, sz_cpr, {4 char}}, folded_loader...}
/*__XTHEENDX__*/

View File

@ -27,6 +27,7 @@
* <jreiser@users.sourceforge.net>
*/
NBPW= 4
#include "arch/mips/r3000/macros.ash"
#include "arch/mips/r3000/bits.ash"
@ -68,48 +69,72 @@ PATHSIZE=4096
OVERHEAD=2048
MAX_ELF_HDR=512
#define sp_frame 0x20
BAL=0x04110000
MAP_PRIVATE= 0x002
MAP_ANONYMOUS=0x800 # not same as i386
PROT_READ= 1
get_page_mask:
li v0,0 // modified to PAGE_MASK >> 9
jr ra
sll v0,v0,9
nop
sp_frame= 0x20
F_PMASK= 4*NBPW
F_fd= 5*NBPW
F_ADRU= 6*NBPW
F_LENU= 7*NBPW
// The above 4 registers are passed on stack to unfolded code.
a4_sys= 4*NBPW
a5_sys= 5*NBPW
// C-language offers 8 register args; syscall offers only 4
#define a4 t0
#define a5 t1
//ra 31
#define r_fexp 30 /* s8 */
//sp 29 /* hardware */
#define r_PMASK 28 /* gp */
//k1 27 /* trashed by syscall */
//k0 26 /* trashed by syscall */
//t9, jp 25 /* trashed by syscall ? */
//t8 24 /* trashed by syscall ? */
//s7 AVAIL 23 /* s7 */
#define r_auxv 22 /* s6 */
#define r_elfa 21 /* s5 */
#define r_auxe 20 /* s4 */
#define r_LENU 19 /* s3 */
#define r_ADRU 18 /* s2 */
#define r_LENX 17 /* s1 */
#define r_ADRX 16 /* s0 */
/* In:
s7= &decompress
s5= total_size
s3= ADRU
s2= LENU
s1= ADRX
sp= -sp_frame + &{argc,argv...,0,env...,0,auxv...,0,0,strings}
r_ADRX,r_LENX,r_elfa,r_auxv,r_PMASK,r_fexp
sp= -sp_frame{%,%,%,%,PMASK,fd,ADRU,LENU}, {argc,argv...,0,env...,0,auxv...,0,0,strings}
*/
fold_begin:
addiu v0,sp,sp_frame # &argc
addiu sp,-(4+ 4+ PATHSIZE - sp_frame) # alloca: new envp[0], " =", buffer
move v1,sp
L10: # copy argc,argv
lw tmp,0(v0); addiu v0,4
sw tmp,0(v1); addiu v1,4
bnez tmp,L10 # stop when v0= &env[0]
move s0,v1 # new &env[0]
addiu v1,4 # leave space for new env[0]
L20: # copy env
lw tmp,0(v0); addiu v0,4
sw tmp,0(v1); addiu v1,4
bnez tmp,L20 # stop when v0= &auxv[0]
move s4,v1 # new &auxv[0]
L30: # copy auxv
lw tmp,0(v0); lw t0,4(v0); addiu v0,sz_auxv
sw tmp,0(v1); sw t0,4(v1); addiu v1,sz_auxv
AT_PAGESZ= 6
addiu tmp,tmp,-AT_PAGESZ # alter tmp
bnez tmp,0f
addiu tmp,tmp,AT_PAGESZ # restore tmp
negu s8,t0 # -PAGE_SIZE
0:
bnez tmp,L30 # AT_NULL: stop when v0= &auxv[N]
move s6,v1 # new &auxv[N]
//// break
lw $r_ADRU,F_ADRU(sp)
lw $r_LENU,F_LENU(sp)
move v0,sp
addiu sp,(~0<<4)&-(NBPW+ 4+ PATHSIZE - sp_frame) # alloca: new envp[0], " =", buffer
sw v1,0(s0) # new env[0]
move v1,sp
L10: # copy until auxv
lw tmp,0(v0); addiu v0,NBPW
sw tmp,0(v1); addiu v1,NBPW
bne v0,$r_auxv,L10
addiu t1,v1,-NBPW // new envp goes here
sw zero,(v1); addiu v1,NBPW // new terminator for envp
move $r_auxv,v1 // new auxv
L30: // copy auxv
lw tmp,0(v0); lw t0,NBPW(v0); addiu v0,sz_auxv
sw tmp,0(v1); sw t0,NBPW(v1); addiu v1,sz_auxv
bnez tmp,L30 # AT_NULL: stop when v0= &auxv[N]
move $r_auxe,v1 // end of new auxv
sw v1,0(t1) # new env var
li tmp,' '
sb tmp,0(v1) # endian neutral!
sb tmp,1(v1)
@ -131,13 +156,15 @@ AT_PAGESZ= 6
sb $0,(tmp) # null terminate the path
0:
addiu sp,-MAX_ELF_HDR # alloca
move t2,s8 # page_mask
move t3,$r_PMASK # page_mask
move t2,$r_elfa # &Elf32_Ehdr of stub
move t1,zero # &f_unfilter
move t0,s7 # &f_decompress
move a3,s4 # new &auxv[0]
move t0,$r_fexp # &f_decompress
move a3,$r_auxv # new &auxv[0]
move a2,sp # &Elf32_Ehdr tmp space
move a1,s5 # total_size
move a1,$r_LENX # total_size
BAL=0x04110000
/* We need a position-independent call of upx_main, which is external.
"bal upx_main" cannot be assembled by mipsel-elf-as-20060406.
".long BAL + upx_main" then changing R_MIPS_32 to R_MIPS_PC16
@ -152,29 +179,46 @@ AT_PAGESZ= 6
subu v0,ra,v0
addiu v0,v0,%lo(upx_main)
jalr v0
move a0,s1
move a0,$r_ADRX
/* entry= upx_main(b_info *a0, total_size a1, Elf32_Ehdr *a2, Elf32_Auxv_t *a3,
f_decompr t0, f_unfilter t1, page_mask t2 )
f_decompr t0, f_unfilter t1, Elf32_Ehdr &t2, page_mask t3 )
*/
move jp,v0 # &entry
addiu sp,MAX_ELF_HDR # un-alloca
move $r_fexp,v0 # &entry
// Map 1 page of /proc/self/exe so that munmap does not remove all references
lw a4,F_fd(sp)
move a5,$0 // offset
sw a4,a4_sys(sp)
sw a5,a5_sys(sp)
li a3,MAP_PRIVATE
li a2,PROT_READ
neg a1,$r_PMASK // PAGE_SIZE
move a0,$0 // addr
li v0,__NR_mmap; syscall
lw a0,a4_sys(sp) // fd
li v0,__NR_close; syscall
addiu sp,sp,sp_frame
/* Workaround suspected glibc bug: elf/rtld.c assumes uninit local is zero.
2007-11-24 openembedded.org mipsel-linux 2.6.12.6/glibc 2.3.2
*/
addiu tmp, sp, MAX_ELF_HDR # result of un-alloca
move tmp,sp
addiu sp, -300 # estimated stack bound of upx_main and below
0:
addiu sp,4
addiu sp,NBPW
bne sp,tmp,0b
sw $0,-4(sp)
sw $0,-NBPW(sp)
lw tmp,-sz_auxv+ a_val(s6)
move a1,s2 # LENU
lw tmp,-sz_auxv+ a_val($r_auxe) // last .a_val
move a1,$r_LENU
beqz tmp,L40 # could not make escape hatch
move a0,s3 # ADRU
jr tmp # goto munmap escape hatch: [syscall; jr jp; nop]
move a0,$r_ADRU
jr tmp # goto munmap escape hatch: [syscall; jr $r_fexp; nop]
li v0,__NR_munmap
L40:
jr jp # omit munmap
jr $r_fexp # omit munmap
nop
#if 0 /*{ replaced by macros in include/linux.h because of 'bal' vs gcc */
@ -204,24 +248,18 @@ munmap: .globl munmap
mprotect: .globl mprotect
b sysgo; li v0,__NR_mprotect
#define a4_sys 0x10
#define a5_sys 0x14
MAP_PRIVATE= 0x002
MAP_ANONYMOUS=0x800 # not same as i386
mmap_privanon: .globl mmap_privanon
ori a3,a3,MAP_PRIVATE|MAP_ANONYMOUS
li t0,-1 # fd
li t1,0 # offset
mmap: .globl mmap
addiu sp,sp,-sp_frame
sw t0,a4_sys(sp)
sw t1,a5_sys(sp)
sw a4,a4_sys(sp)
sw a5,a5_sys(sp)
li v0,__NR_mmap
syscall
b sysret
addiu sp,sp, sp_frame
addiu sp,sp,sp_frame
#endif /*}*/
/* vim:set ts=8 sw=8 et: */

View File

@ -52,6 +52,8 @@ a_type= 0
a_val= NBPW
sz_auxv= 2*NBPW
O_RDONLY= 0
PROT_READ= 1
PROT_WRITE= 2
PROT_EXEC= 4
@ -67,11 +69,12 @@ PAGE_SIZE64 = -(~0<<PAGE_SHIFT64)
/* /usr/include/asm-ppc/unistd.h */
__NR_write = 4
__NR_exit = 1
__NR_mmap = 90
__NR_munmap = 91
__NR_exit = 1
__NR_mmap = 90
__NR_mprotect = 125
__NR_munmap = 91
__NR_open = 5
__NR_write = 4
section ELFMAINX
sz_pack2= -4+ _start
@ -168,118 +171,83 @@ r_exp= 31
r_PMASK= 30
r_ADRU= 29
r_LENU= 28
r_BINFO= 27
r_fd= 27
r_auxv= 26
r_slide= 25
r_FLD= 24
r_ADRM= 23
r_LENM= 22
r_elf= 25
r_ADRM= 24; r_ADRX= r_ADRM
r_LENM= 23; r_LENX= r_LENM
r_FLD= 22
r_szuf= 21
r_relo= 20
r_obinf= 19
/* Decompress the rest of this loader, and jump to it. */
unfold:
unfold: // IN: r_exp, r_auxv, r_PMASK
mflr r_FLD // LrFLD
la r_ADRU,sz_pack2 - f_exp(r_exp) // &sz_pack2
lwz r0,0(r_ADRU) // sz_pack2
lwz r_BINFO,LOBINFO - LrFLD(r_FLD) // O_BINFO
sub r_ADRU,r_ADRU,r0 // ADRU == &Elf32_Ehdr of stub
lhz r0,e_type(r_ADRU)
cmplwi r0,ET_DYN; beq pie
//Open /proc/self/exe
call 0f; .asciz "/proc/self/exe"; .balign 4; 0: mflr a0
li a1,O_RDONLY
li r0,__NR_open; sc; mr r_fd,a0
// section ELF_EXEC // ET_EXEC; addresses do not change
lwz r_LENU,p_memsz + szElf32_Ehdr(r_ADRU) // PT_LOAD[0 {.text}].p_memsz
li a5,0 // off_t
sub r_LENU,r_LENU,r_PMASK // begin round_up(PAGE_SIZE, r_LENU)
li a4,-1 // fd; cater to *BSD for MAP_ANON
addi r_LENU,r_LENU,-1
li a3,MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED
and r_LENU,r_LENU,r_PMASK
li a2,PROT_READ | PROT_WRITE
lwz a1,sz_unc + LBINFO - LrFLD(r_FLD) // space to unfold fold_begin
add a0,r_ADRU,r_LENU // append to this stub
add r_LENU,r_LENU,a1 // unmap more, eventually
mr t4,a0 // save address being allocated
li r0,__NR_mmap; sc; cmpl cr0,t4,a0; bne msg_SELinux
li r_slide,0
//Reserve enough space to decompress the folded code onto r_FLD.
lwz r0, sz_pack2 - f_exp(r_exp)
la r_elf,sz_pack2 - f_exp(r_exp)
li a4,-1
lwz r_szuf, sz_unc + LBINFO - LrFLD(r_FLD) // sz_unc of fold
li a3,MAP_PRIVATE|MAP_ANONYMOUS
sub r_elf,r_elf,r0 // r_elf=&Elf32_Ehdr of stub
li a0,0 // kernel chooses addr
sub r0,r_FLD,r_elf // offset(fold)
add a1,r_szuf,r0 // length needed
mr r_LENU,a1
call mmapRW0
mr r_ADRU,a0
b fold
//Duplicate the input data.
lwz r0,sz_cpr + LBINFO - LrFLD(r_FLD) // sz_cpr of fold
sub a1,r_LENU,r_szuf // - sz_unc of fold
mr a4,r_fd // from file
li a3,MAP_PRIVATE|MAP_FIXED // at reserved addr a0 by previous mmap
add a1,a1,r0 // + sz_cpr of fold; a1 <= .st_size
call mmapRW0
sub r_relo,a0,r_elf // relocation amount
mtctr r_exp; add r_exp,r_exp,r_relo // use old f_exp; r_exp= new &f_exp
// section ELF_DYN // -pie ET_DYN; stub is where user code will be
pie:
// Allocate and copy stub (and fold_begin) to adjacent lower pages.
// VDSO might also intrude; move down to avoid it.
AT_SYSINFO= 32 // VDSO table
AT_SYSINFO_EHDR= 33 // Elf32_Ehdr for VDSO
mr r_slide,r_ADRU // dynbase
lwz r_LENM,p_memsz + szElf32_Ehdr(r_ADRU) // PT_LOAD[0 {.text}].p_memsz
lwz r0,sz_unc + LBINFO - LrFLD(r_FLD)
add r_LENU,r0,r_LENM
// Decompress from old folded code, overwriting new copy of folded code.
lwz r_obinf, LOBINFO - LrFLD(r_FLD) // O_BINFO
la src,sz_b_info + LBINFO - LrFLD(r_FLD) // old folded code
add r_FLD,r_FLD,r_relo // dst for unfolding; use copied data
add r_LENM,r_FLD,r_szuf // + sz_unc = last of unfolded
and r_ADRM,r_exp,r_PMASK // base for PROT_EXEC
sub r_LENM,r_LENM,r_ADRM // length for PROT_EXEC
mr a1,r_LENU // total size needed
sub r_ADRM,r_ADRU,a1 // below this stub
lis r0,8<<(20-16); sub r0,sp,r0 // growth limit 8MiB stack
sub r0,r0,r_LENU // fit below
cmpl cr7,r_ADRM,r0; blt 1f
mr r_ADRM,r0 // move below the stack
1:
and r_ADRM,r_ADRM,r_PMASK // lower to page boundary
mr a0,r_auxv
0:
lwz a3,a_type(a0); lwz a5,a_val(a0); la a0,sz_auxv(a0)
cmpli cr7,a3,AT_NULL; beq- cr7,5f // end of auxv
subi a3,a3,AT_SYSINFO
cmpli cr7,a3,AT_SYSINFO_EHDR - AT_SYSINFO; bgt+ cr7,0b
sub a3,a5,r_ADRM // offset
cmplw cr7,a3,a1; bge+ cr7,0b // no conflict
sub a3,a3,a1 // alas, non-CMP cr0 is signed
add r_ADRM,r_ADRM,a3 // move down
and r_ADRM,r_ADRM,r_PMASK // to page boundary
b 0b
5:
mr a0,r_ADRM // desired address
li a5,0 // off_t
li a4,-1 // fd; cater to *BSD for MAP_ANON
li a3,MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED
li a2,PROT_READ | PROT_WRITE
li r0,__NR_mmap; sc; cmpl cr0,a0,r_ADRM; bne msg_SELinux
sub r0,r_ADRM,r_ADRU // (ADRM - ADRU) == relocation amount
add r_exp,r_exp,r0 // relocate &f_exp
mr a3,r_LENM // length to move
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,-NBPW // prepare for stwu
mtctr a3
0:
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
fold:
mr dst,a0 // fold_begin.unc
mr r23,a0
mtctr r_exp // &decompress
lwz r0,sz_unc + LBINFO - LrFLD(r_FLD)
// The new f_exp has PROT_WRITE, so use the old f_exp to decompress.
lbz meth,b_method + LBINFO - LrFLD(r_FLD)
stw r_szuf,SZ_FRAME+31*NBPW(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
mr dst,r_FLD // dst for unfolding
lwz lsrc,sz_cpr + LBINFO - LrFLD(r_FLD)
la src,sz_b_info + LBINFO - LrFLD(r_FLD)
bctrl // decompress it
srwi r0,r_PMASK,9
sth r0,2(r23) // get_page_mask: li r3,PAGE_MASK>>9; 2: BIG_ENDIAN
// Generate code to compute PAGE_MASK.
lwz r0,0(r_FLD) // "li r3,PAGE_MASK>>9"
srwi a0,r_PMASK,9
insrwi r0,a0,16,16 // replace the immediate constant
stw r0,0(r_FLD) // get_page_mask: li r3,PAGE_MASK>>9
li a2,PROT_EXEC | PROT_READ
mr a1,r_LENU // length
mr a0,r_ADRU // base
// PROT_EXEC
li a2,PROT_EXEC|PROT_READ
mr a1,r_LENM // length
mr a0,r_ADRM // base
li r0,__NR_mprotect; sc
addi r0,r23,4*NBPW // jmp over get_page_mask()
// Use the unfolded code
lwz r_LENX, sz_pack2 - f_exp(r_exp)
add r_ADRX,r_elf,r_obinf // old compressed data
add r_ADRX,r_ADRX,r_relo // new compressed data
addi r0,r_FLD,4*4 // jmp over get_page_mask()
mtctr r0
bctr
@ -295,6 +263,14 @@ fold:
// addi sp,sp,96 # de-allocate local frame
// blr # goto return address
mmapRW0:
li a5,0 // offset
mmapRW:
li a2,PROT_READ|PROT_WRITE
mmap:
li r0,__NR_mmap; sc; bns 0f; teq r0,r0; 0:
ret
zfind:
lwz r0,0(a0); addi a0,a0,NBPW
cmpi cr7,r0,0; bne+ cr7,zfind

View File

@ -61,35 +61,30 @@ OVERHEAD= 2048
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_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_fd= 27 // open fd of /proc/self/exe
r_auxv= 26
r_slide= 25
//r_FLD= 24
//r_ADRM= 23
//r_LENM= 22
r_elf= 25 // original &Elf32_Ehdr of stub
r_ADRX= 24 // compressed input
r_LENX= 23 // total size
// Local:
r_unf= 22 // f_unf == &unfilter()
av_hi= 21
av_len= 20
cblk= 19
r_buf= 18
// r29= reserved for &our_Elf32_Ehdr
r_unf= 21 // f_unf == &unfilter()
r_fd= 20
av_hi= 19
av_len= 18
cblk= 17
pag= 16
fold_begin:
get_page_mask: .globl get_page_mask
li r3,0 -0x1000>>9 // modified by elf-entry.S
slwi r3,r3,9
blr
nop
fold_begin:
call L90
L90b:
#include "arch/powerpc/32/bxx.S"
@ -99,10 +94,6 @@ L_PFX= 4 // strlen(" =")
.balign 4
L90:
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 {<<stuff>>,argc,argv,0,env,0,auxv} down with maximum room before strings
la a1,-NBPW(sp) // src ready for lwzu
la sp,-(-NBPW & (-1+ NBPW + (L_PFX + PATH_MAX)))(sp)
@ -124,12 +115,12 @@ L90:
lwz r0,L90a - L90b(r_unf) // " ="
la cblk,NBPW(a1) // original &strings
stwu r0,NBPW(a0)
la r14,L_PFX(a0) // buffer
la r_buf,L_PFX(a0) // buffer
// readlink("/proc/self/exe", buffer, -1+ PATH_MAX)
li a2,-1+ PATH_MAX
movr a1,r14 // buffer
movr a1,r_buf // buffer
la a0,L_PFX+ L90a - L90b(r_unf) // "/proc/self/exe"
call readlink; la a2,-L_PFX(r14) // a0= len; a2= buffer
call readlink; la a2,-L_PFX(r_buf) // a0= len; a2= buffer
cmpwi 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"))
@ -160,18 +151,16 @@ L90:
movr sp,a0
stwu sp,-(SZ_FRAME+OVERHEAD)(sp) // allocate this frame
lwz a1,sz_pack2_f_exp(r_exp) // sz_pack2 == #bytes which precede -2*NBPW(r_exp)
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
mr a0,r_ADRX // &b_info
mr a1,r_LENX // 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_elf // elfaddr
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)
// f_exp a4, f_unf a5, elfaddr a6)
la sp,SZ_FRAME+OVERHEAD(sp) // deallocate this frame
mr r_exp,a0 // save &entry
@ -234,6 +223,8 @@ no_fail:
exit: .globl exit
li r0,SYS_exit; b 5f
brk: .globl brk
li r0,SYS_brk; 5: b 5f
readlink: .globl readlink
li r0,SYS_readlink; 5: b 5f
write: .globl write
@ -247,9 +238,7 @@ close: .globl close
mprotect: .globl mprotect
li r0,SYS_mprotect; 5: b 5f
munmap: .globl munmap
li r0,SYS_munmap; 5: b 5f
brk: .globl brk
li r0,SYS_brk; 5: b sysgo
li r0,SYS_munmap; 5: b sysgo
my_bkpt: .globl my_bkpt
teq r0,r0

View File

@ -29,6 +29,7 @@
#ifndef BIG_ENDIAN //{
#define BIG_ENDIAN 1 /* Apple on PowerPC* is BIG_ENDIAN */
#endif //}
NBPW= 8 // Number of Bytes Per Word
#include "arch/powerpc/64le/macros.S"
#include "arch/powerpc/64le/ppc_regs.h"

View File

@ -29,6 +29,7 @@
#ifndef BIG_ENDIAN //{
#define BIG_ENDIAN 1 /* Apple on PowerPC* is BIG_ENDIAN */
#endif //}
NBPW= 8 // Number of Bytes Per Word
#include "arch/powerpc/64le/macros.S"
#include "arch/powerpc/64le/ppc_regs.h"

View File

@ -42,19 +42,14 @@ 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 // <elf.h>
AT_PAGESZ= 6
a_type= 0
a_val= NBPW
sz_auxv= 2*NBPW
O_RDONLY= 0
PROT_READ= 1
PROT_WRITE= 2
PROT_EXEC= 4
@ -67,14 +62,15 @@ PAGE_SHIFT= 16 // 64KiB PAGE_SIZE
PAGE_SIZE = -(~0<<PAGE_SHIFT)
/* /usr/include/asm-ppc/unistd.h */
__NR_write = 4
__NR_exit = 1
__NR_mmap = 90
__NR_munmap = 91
__NR_mprotect = 125
__NR_munmap = 91
__NR_open = 5
__NR_write = 4
section ELFMAINX
sz_pack2= -4+ _start
sz_pack2= .-4
_start: .globl _start
call main // link_register= &f_exp (&decompress)
@ -181,118 +177,101 @@ r_exp= 31
r_PMASK= 30
r_ADRU= 29
r_LENU= 28
r_BINFO= 27
r_fd= 27
r_auxv= 26
r_slide= 25
r_FLD= 24
r_ADRM= 23
r_LENM= 22
r_elfa= 25
r_ADRM= 24; r_ADRX= r_ADRM
r_LENM= 23; r_LENX= r_LENM
r_FLD= 22
r_szuf= 21
r_relo= 20
r_obinf= 19
/* Decompress the rest of this loader, and jump to it. */
unfold:
unfold: // IN: r_exp, r_auxv, r_PMASK
mflr r_FLD // LrFLD
la r_ADRU,sz_pack2 - f_exp(r_exp) // &sz_pack2
lwz r0,0(r_ADRU) // sz_pack2
lwz r_BINFO,LOBINFO - LrFLD(r_FLD) // O_BINFO
sub r_ADRU,r_ADRU,r0 // ADRU == &Elf64_Ehdr of stub
lhz r0,e_type(r_ADRU)
cmplwi r0,ET_DYN; beq pie
// Open /proc/self/exe
call 0f; .asciz "/proc/self/exe"; .balign 4; 0: mflr a0
li a1,O_RDONLY
li r0,__NR_open; sc; mr r_fd,a0
// section ELF_EXEC // ET_EXEC; addresses do not change
ld r_LENU,p_memsz + szElf64_Ehdr(r_ADRU) // PT_LOAD[0 {.text}].p_memsz
li a5,0 // off_t
sub r_LENU,r_LENU,r_PMASK // begin round_up(PAGE_SIZE, r_LENU)
li a4,-1 // fd; cater to *BSD for MAP_ANON
addi r_LENU,r_LENU,-1
li a3,MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED
and r_LENU,r_LENU,r_PMASK
li a2,PROT_READ | PROT_WRITE
lwz a1,sz_unc + LBINFO - LrFLD(r_FLD) // space to unfold fold_begin
add a0,r_ADRU,r_LENU // append to this stub
add r_LENU,r_LENU,a1 // unmap more, eventually
li r0,__NR_mmap; sc; bso- msg_SELinux
li r_slide,0
//Reserve enough space to decompress the folded code onto r_FLD.
lwz r0, sz_pack2 - f_exp(r_exp)
la r_elfa,sz_pack2 - f_exp(r_exp)
li a4,-1
lwz r_szuf, sz_unc + LBINFO - LrFLD(r_FLD) // sz_unc of fold
li a3,MAP_PRIVATE|MAP_ANONYMOUS
sub r_elfa,r_elfa,r0 // r_elfa= &Elf64_Ehdr of stub
li a0,0 // kernel chooses addr
sub r0,r_FLD,r_elfa // offset(fold)
add a1,r_szuf,r0 // length needed
mr r_LENU,a1
call mmapRW0
mr r_ADRU,a0
b fold
//Duplicate the input data.
lwz r0,sz_cpr + LBINFO - LrFLD(r_FLD) // sz_cpr of fold
sub a1,r_LENU,r_szuf // - sz_unc of fold
mr a4,r_fd // from file
li a3,MAP_PRIVATE|MAP_FIXED // at reserved addr a0 by previous mmap
add a1,a1,r0 // + sz_cpr of fold; a1 <= .st_size
call mmapRW0
sub r_relo,a0,r_elfa // relocation amount
mtctr r_exp; add r_exp,r_exp,r_relo // use old f_exp; r_exp= new &f_exp
// section ELF_DYN // -pie ET_DYN; stub is where user code will be
pie:
// Allocate and copy stub (and fold_begin) to adjacent lower pages.
// VDSO might also intrude; move down to avoid it.
AT_SYSINFO= 32 // VDSO table
AT_SYSINFO_EHDR= 33 // Elf64_Ehdr for VDSO
mr r_slide,r_ADRU // dynbase
ld r_LENM,p_memsz + szElf64_Ehdr(r_ADRU) // PT_LOAD[0 {.text}].p_memsz
lwz r0,sz_unc + LBINFO - LrFLD(r_FLD)
add r_LENU,r0,r_LENM
// Decompress from old folded code, overwriting new copy of folded code.
lwz r_obinf, LOBINFO - LrFLD(r_FLD) // O_BINFO
la src,sz_b_info + LBINFO - LrFLD(r_FLD) // old folded code
add r_FLD,r_FLD,r_relo // dst for unfolding; use copied data
add r_LENM,r_FLD,r_szuf // + sz_unc = last of unfolded
and r_ADRM,r_exp,r_PMASK // base for PROT_EXEC
sub r_LENM,r_LENM,r_ADRM // length for PROT_EXEC
mr a1,r_LENU // total size needed
sub r_ADRM,r_ADRU,a1 // below this stub
and r_ADRM,r_ADRM,r_PMASK // lower to page boundary
mr a0,r_auxv
0:
ld a3,a_type(a0); ld a5,a_val(a0); la a0,sz_auxv(a0)
cmpldi cr7,a3,AT_NULL; beq- cr7,5f // end of auxv
subi a3,a3,AT_SYSINFO
cmpldi cr7,a3,AT_SYSINFO_EHDR - AT_SYSINFO; bgt+ cr7,0b
sub a3,a5,r_ADRM // offset
cmpld cr7,a3,a1; bge+ cr7,0b // no conflict
sub a3,a3,a1 // alas, non-CMP cr0 is signed
add r_ADRM,r_ADRM,a3 // move down
and r_ADRM,r_ADRM,r_PMASK // to page boundary
b 0b
5:
mr a0,r_ADRM // desired address
li a5,0 // off_t
li a4,-1 // fd; cater to *BSD for MAP_ANON
li a3,MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED
li a2,PROT_READ | PROT_WRITE
li r0,__NR_mmap; sc; bso- msg_SELinux
sub r0,r_ADRM,r_ADRU // (ADRM - ADRU) == relocation amount
add r_exp,r_exp,r0 // relocate &f_exp
mr a3,r_LENM // length to move
addi a3,a3,-1+ 2*NBPW // roundup (16, )
addi a1,r_ADRU,-NBPW // prepare for lwu
srdi a3,a3,4 // number of 16-byte chunks
addi a0,a0,-NBPW // prepare for stwu
mtctr a3
0:
ld a2,NBPW(a1); ldu a3,2*NBPW(a1)
std a2,NBPW(a0); stdu a3,2*NBPW(a0); bdnz 0b
mr r_ADRU,r_ADRM // relocate
// section ELFufold
fold:
mr dst,a0 // fold_begin.unc
mr r23,a0
mtctr r_exp // &decompress
lwz r0,sz_unc + LBINFO - LrFLD(r_FLD)
// The new f_exp has PROT_WRITE, so use the old f_exp to decompress.
lbz meth,b_method + LBINFO - LrFLD(r_FLD)
la ldst,SZ_FRAME+31*NBPW(sp) // &slot on stack
std r0,SZ_FRAME+31*NBPW(sp) // lzma uses lo32() for EOF
std r_szuf,SZ_FRAME+31*NBPW(sp) // lzma uses for EOF
la ldst, SZ_FRAME+31*NBPW(sp) // &slot on stack
mr dst,r_FLD // dst for unfolding
lwz lsrc,sz_cpr + LBINFO - LrFLD(r_FLD)
la src,sz_b_info + LBINFO - LrFLD(r_FLD)
bctrl // decompress it
li a2,PROT_EXEC | PROT_READ
mr a1,r_LENU // length
mr a0,r_ADRU // base
// Generate code to compute PAGE_MASK.
lwz r0,0(r_FLD) // "li r3,PAGE_MASK>>9"
srdi a0,r_PMASK,9
insrdi r0,a0,16,48 // replace the immediate constant
stw r0,0(r_FLD) // get_page_mask: li r3,PAGE_MASK>>9
// PROT_EXEC
li a2,PROT_EXEC|PROT_READ
mr a1,r_LENM // length
mr a0,r_ADRM // base
li r0,__NR_mprotect; sc
mtctr r23
// Use the unfolded code
lwz r_LENX, sz_pack2 - f_exp(r_exp)
add r_ADRX,r_elfa,r_obinf // old compressed data
add r_ADRX,r_ADRX,r_relo // new compressed data
addi r0,r_FLD,4*4 // jmp over get_page_mask()
mtctr r0
bctr
mmapRW0:
li a5,0 // offset
mmapRW:
li a2,PROT_READ|PROT_WRITE
mmap:
li r0,__NR_mmap; sc; bns 0f; teq r0,r0; 0:
ret
zfind:
ld r0,0(a0); addi a0,a0,NBPW
cmpdi cr7,r0,0; bne+ cr7,zfind
ret
main:
//// teq r0,r0 // debugging
//// teq r0,r0 // debugging
stdu r1,-(SZ_FRAME + 32*NBPW)(sp) // FR_00 allocate space (keeping 0 mod 16), save r1
// stmd r2,SZ_FRAME+(-1+ 2)*NBPW(sp) // save registers r2 thru r31
std 2,SZ_FRAME+(-1+ 2)*NBPW(sp)

View File

@ -34,6 +34,7 @@
#endif
NBPW= 8 //Number of Bytes Per Word
#define USE_TOC 1
#include "arch/powerpc/64le/macros.S"
#include "arch/powerpc/64le/ppc_regs.h"
@ -60,36 +61,50 @@ O_RDONLY= 0
OVERHEAD= 2048
// http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html#REG
// r0 Volatile register used in function prologs
// r1 Stack frame pointer
// r2 TOC pointer
// r3 Volatile parameter and return value register
// r4-r10 Volatile registers used for function parameters
// r11 Volatile register used in calls by pointer and as an
// environment pointer for languages which require one
// r12 Volatile register used for exception handling and glink code
// r13 Reserved for use as system thread ID
// r14-r31 Nonvolatile registers used for local variables
//
// CR0-CR1 Volatile condition code register fields (CR0 '.' int; CR1 '.' floating)
// CR2-CR4 Nonvolatile condition code register fields
// CR5-CR7 Volatile condition code register fields
// http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html#STACK
//SZ_LINK= 6*8 // (sp,cr,lr, tmp.xlc,tmp.ld,save.toc)
//SZ_PSAV= 8*8 // for arg9, arg10, ...; and for spilling a0-a7 if necessary
// The parameter save area shall be allocated by the caller.
// It shall be doubleword aligned, and shall be at least 8 doublewords in length.
//SZ_FRAME= SZ_LINK + SZ_PSAV // in ppc_regs.h
sz_pack2_f_exp= -4 -4 // 4 bytes and one Instruction before r_exp
// In:
r_exp= 31 // f_exp == &decompress()
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_fd= 27 // open fd of /proc/self/exe
r_auxv= 26
r_slide= 25
//r_FLD= 24
//r_ADRM= 23
//r_LENM= 22
r_elfa= 25 // original &Elf64_Ehdr of stub
r_ADRX= 24 // compressed input
r_LENX= 23 // total size
// Local:
r_unf= 22 // f_unf == &unfilter()
av_hi= 21
av_len= 20
cblk= 19
r_buf= 18
// r29= reserved for &our_Elf64_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
get_page_mask: .globl get_page_mask
li r3,0 -0x1000>>9 // modified by elf-entry.S
sldi r3,r3,9
blr
nop
fold_begin:
//// teq r0,r0 // debugging
@ -102,10 +117,6 @@ L_PFX= 4 // strlen(" =")
.balign 4
L90:
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 {<<stuff>>,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) // FR_02
@ -127,12 +138,12 @@ L90:
lwz r0,L90a - L90b(r_unf) // " ="
la cblk,NBPW(a1) // original &strings
stwu r0,NBPW(a0)
la r14,L_PFX(a0) // buffer
la r_buf,L_PFX(a0) // buffer
// readlink("/proc/self/exe", buffer, -1+ PATH_MAX)
li a2,-1+ PATH_MAX
movr a1,r14 // buffer
movr a1,r_buf // buffer
la a0,L_PFX+ L90a - L90b(r_unf) // "/proc/self/exe"
call readlink; la a2,-L_PFX(r14) // a0= len; a2= buffer
call readlink; la a2,-L_PFX(r_buf) // 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"))
@ -163,35 +174,43 @@ L90:
movr sp,a0 // FR_02
r_reloc= 32 - 1 # used slot in register save area
la a6,SZ_FRAME+r_reloc*NBPW(sp) // &reloc [adjacent to argc]
std r_ADRU,0(a6) // elfbase
la a6,SZ_FRAME + r_reloc*NBPW(sp) // &reloc [adjacent to argc]
std r_elfa,0(a6) // elfaddr
stdu sp,-(SZ_FRAME+OVERHEAD)(sp) // FR_01 allocate this frame
lwz a1,sz_pack2_f_exp(r_exp) // sz_pack2 == #bytes which precede -2*NBPW(r_exp)
mr a0,r_ADRX // &b_info
mr a1,r_LENX // total_size
la a2,SZ_FRAME(sp) // &Elf64_Ehdr temporary space
mr a3,r_auxv // &Elf64_auxv_t
mr a4,r_exp // &decompress: f_expand
mr a5,r_unf // &f_unf
#if USE_TOC //{
li r0,0
add a0,r_ADRU,r_BINFO // &b_info
sub a1,a1,r_BINFO // total_size
la a2,SZ_FRAME(sp) // &Elf64_Ehdr temporary space
mr a3,r_auxv // &Elf64_auxv_t
mr a4,r_exp // &decompress: f_expand
mr a5,r_unf // &f_unf
mr a7,r_PMASK // page_mask
#if BIG_ENDIAN //{ setup indirection for entry to f_exp and f_unf
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
std a4,F_TOC + 0 + 0*2*NBPW(sp)
la a4,F_TOC + 0 + 0*2*NBPW(sp)
std r0,F_TOC + NBPW + 0*2*NBPW(sp)
std a5,F_TOC + 0 + 1*2*NBPW(sp)
la a5,F_TOC + 0 + 1*2*NBPW(sp)
std r0,F_TOC + NBPW + 1*2*NBPW(sp)
#endif //}
mr a7,r_PMASK // PAGE_MASK
call upx_main // Out: a0= entry
// entry= upx_main(b_info *a0, total_size a1, Elf_Ehdr *a2, Elf64_auxv_t *a3,
// f_exp a4, f_unf a5, p_reloc a6, page_mask a7)
teq r0,r0
#if BIG_ENDIAN //{
ld r0,SZ_FRAME+OVERHEAD +SZ_FRAME+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 //}
// entry= upx_main(b_info *a0, total_size a1, Elf64_Ehdr *a2, ELf32_auxv_t *a3,
// f_exp a4, f_unf a5, elfaddr &a6, page_mask a7)
la sp,SZ_FRAME+OVERHEAD(sp) // FR_01 deallocate this frame
mr r_exp,a0 // save &entry
#if USE_TOC //{
// Sometimes the "entry TOC" is not a TOC, particularly with musl.
andi. r0,a0,7; bne cr0,noTOC // align(TOC) < 8; [heuristic]
lwz r0,0(a0); cmplwi r0,0; bne noTOC // 4GiB <= .func; an instruction?
ld r0, SZ_FRAME + 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 NOTE: r3 === a0
noTOC:
#endif //}
mr r_exp,a0 // save &entry (.entry when BIG_ENDIAN)
// first page of /proc/self/exe, to preserve it despite munmap(ADRU, LENU)
li a5,0 // offset
@ -258,6 +277,7 @@ sz_auxv= 2*NBPW
la sp,SZ_FRAME + 32 *NBPW(sp) // FR_00 deallocate outer frame
bctr // goto escape hatch
SYS_exit= 1
SYS_fork= 2
SYS_read= 3
@ -271,24 +291,9 @@ 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
li 0,SYS_close; 0: b 0f
open: .globl open
li 0,SYS_open; 0: b 0f
munmap: .globl munmap
li 0,SYS_munmap; 0: b 0f
mprotect: .globl mprotect
li 0,SYS_mprotect; 0: b 0f
read: .globl read
li 0,SYS_read; 0: b 0f
mmap: .globl mmap
li 0,SYS_mmap; 0:
clrldi a4,a4,32 // truncate fd to 32 bits; kernel is picky?
li 0,SYS_mmap
sysgo:
sc
bns+ no_fail // 'bns': branch if No Summary[Overflow]
@ -296,4 +301,27 @@ sysgo:
no_fail:
ret
exit: .globl exit
li r0,SYS_exit; b 5f
brk: .globl brk
li r0,SYS_brk; 5: b 5f
readlink: .globl readlink
li r0,SYS_readlink; 5: b 5f
//write: .globl write
// li r0,SYS_write; 5: b 5f
read: .globl read
li r0,SYS_read; 5: b 5f
open: .globl open
li r0,SYS_open; 5: b 5f
close: .globl close
li r0,SYS_close; 5: b 5f
mprotect: .globl mprotect
li r0,SYS_mprotect; 5: b 5f
munmap: .globl munmap
li r0,SYS_munmap; 5: b sysgo
my_bkpt: .globl my_bkpt
teq r0,r0
blr
/* vim:set ts=8 sw=8 et: */

View File

@ -2,25 +2,23 @@ file format elf64-x86-64
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINX 0000000d 0000000000000000 0000000000000000 00000040 2**0 CONTENTS, RELOC, READONLY
1 NRV_HEAD 00000066 0000000000000000 0000000000000000 0000004d 2**0 CONTENTS, READONLY
2 NRV2E 000000b7 0000000000000000 0000000000000000 000000b3 2**0 CONTENTS, RELOC, READONLY
3 NRV2D 0000009e 0000000000000000 0000000000000000 0000016a 2**0 CONTENTS, RELOC, READONLY
4 NRV2B 00000090 0000000000000000 0000000000000000 00000208 2**0 CONTENTS, RELOC, READONLY
5 LZMA_ELF00 00000064 0000000000000000 0000000000000000 00000298 2**0 CONTENTS, RELOC, READONLY
6 LZMA_DEC10 000009f7 0000000000000000 0000000000000000 000002fc 2**0 CONTENTS, READONLY
7 LZMA_DEC20 000009f7 0000000000000000 0000000000000000 00000cf3 2**0 CONTENTS, READONLY
8 LZMA_DEC30 00000014 0000000000000000 0000000000000000 000016ea 2**0 CONTENTS, READONLY
9 NRV_TAIL 00000000 0000000000000000 0000000000000000 000016fe 2**0 CONTENTS, READONLY
10 ELFMAINY 0000003a 0000000000000000 0000000000000000 000016fe 2**0 CONTENTS, RELOC, READONLY
11 ELFMAINZ 00000028 0000000000000000 0000000000000000 00001738 2**0 CONTENTS, READONLY
12 ELFMAINZu 0000007d 0000000000000000 0000000000000000 00001760 2**0 CONTENTS, RELOC, READONLY
0 ELFMAINX 0000000e 0000000000000000 0000000000000000 00000040 2**0 CONTENTS, RELOC, READONLY
1 NRV_HEAD 00000066 0000000000000000 0000000000000000 0000004e 2**0 CONTENTS, READONLY
2 NRV2E 000000b7 0000000000000000 0000000000000000 000000b4 2**0 CONTENTS, RELOC, READONLY
3 NRV2D 0000009e 0000000000000000 0000000000000000 0000016b 2**0 CONTENTS, RELOC, READONLY
4 NRV2B 00000090 0000000000000000 0000000000000000 00000209 2**0 CONTENTS, RELOC, READONLY
5 LZMA_ELF00 00000064 0000000000000000 0000000000000000 00000299 2**0 CONTENTS, RELOC, READONLY
6 LZMA_DEC10 000009f7 0000000000000000 0000000000000000 000002fd 2**0 CONTENTS, READONLY
7 LZMA_DEC20 000009f7 0000000000000000 0000000000000000 00000cf4 2**0 CONTENTS, READONLY
8 LZMA_DEC30 00000014 0000000000000000 0000000000000000 000016eb 2**0 CONTENTS, READONLY
9 NRV_TAIL 00000000 0000000000000000 0000000000000000 000016ff 2**0 CONTENTS, READONLY
10 ELFMAINY 0000003a 0000000000000000 0000000000000000 000016ff 2**0 CONTENTS, RELOC, READONLY
11 ELFMAINZ 000000e1 0000000000000000 0000000000000000 00001739 2**0 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD
0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30
0000000000000000 l d ELFMAINY 0000000000000000 ELFMAINY
0000000000000000 l d ELFMAINZ 0000000000000000 ELFMAINZ
0000000000000000 l d ELFMAINZu 0000000000000000 ELFMAINZu
0000000000000000 l d ELFMAINX 0000000000000000 ELFMAINX
0000000000000000 l d NRV2E 0000000000000000 NRV2E
0000000000000000 l d NRV2D 0000000000000000 NRV2D
@ -30,14 +28,11 @@ SYMBOL TABLE:
0000000000000000 l d LZMA_DEC20 0000000000000000 LZMA_DEC20
0000000000000000 l d NRV_TAIL 0000000000000000 NRV_TAIL
0000000000000000 g ELFMAINX 0000000000000000 _start
0000000000000000 *UND* 0000000000000000 LENU
0000000000000000 *UND* 0000000000000000 ADRM
0000000000000000 *UND* 0000000000000000 LENM
0000000000000000 *UND* 0000000000000000 O_BINFO
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
0000000000000001 R_X86_64_PC32 ELFMAINZu+0x000000000000006f
0000000000000002 R_X86_64_PC32 ELFMAINZ+0x00000000000000c4
RELOCATION RECORDS FOR [NRV2E]:
OFFSET TYPE VALUE
@ -62,11 +57,6 @@ RELOCATION RECORDS FOR [ELFMAINY]:
OFFSET TYPE VALUE
0000000000000018 R_X86_64_PC32 ELFMAINZ+0xfffffffffffffffc
RELOCATION RECORDS FOR [ELFMAINZu]:
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
0000000000000002 R_X86_64_32 LENU
000000000000000c R_X86_64_32S ADRM
0000000000000014 R_X86_64_32 LENM
0000000000000075 R_X86_64_PC32 ELFMAINZ+0x000000000000000d
0000000000000079 R_X86_64_32 O_BINFO
0000000000000029 R_X86_64_PC32 ELFMAINY+0x000000000000000d
00000000000000dd R_X86_64_32 O_BINFO

View File

@ -8,33 +8,33 @@ Linker script and memory map
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0x794
.text 0x00000000001000bc 0x7b0
*(.text)
.text 0x00000000001000bc 0x197 tmp/amd64-linux.elf-fold.o
0x0000000000100243 munmap
0x000000000010021c mmap
0x000000000010024b write
0x000000000010024f read
0x0000000000100233 exit
0x0000000000100237 brk
0x000000000010023f open
0x0000000000100247 mprotect
0x000000000010023b close
*fill* 0x0000000000100253 0x1 00
.text 0x0000000000100254 0x5f9 tmp/amd64-linux.elf-main.o
0x000000000010070a upx_main
.text 0x00000000001000bc 0x18e tmp/amd64-linux.elf-fold.o
0x000000000010023a munmap
0x0000000000100213 mmap
0x0000000000100242 write
0x0000000000100246 read
0x000000000010022a exit
0x000000000010022e brk
0x0000000000100236 open
0x000000000010023e mprotect
0x0000000000100232 close
*fill* 0x000000000010024a 0x2 00
.text 0x000000000010024c 0x61d tmp/amd64-linux.elf-main.o
0x0000000000100721 upx_main
*(.data)
*fill* 0x000000000010084d 0x3 00
.data 0x0000000000100850 0x0 tmp/amd64-linux.elf-fold.o
.data 0x0000000000100850 0x0 tmp/amd64-linux.elf-main.o
*fill* 0x0000000000100869 0x3 00
.data 0x000000000010086c 0x0 tmp/amd64-linux.elf-fold.o
.data 0x000000000010086c 0x0 tmp/amd64-linux.elf-main.o
.data
.bss 0x0000000000100850 0x0
.bss 0x0000000000100850 0x0 tmp/amd64-linux.elf-fold.o
.bss 0x0000000000100850 0x0 tmp/amd64-linux.elf-main.o
.bss 0x000000000010086c 0x0
.bss 0x000000000010086c 0x0 tmp/amd64-linux.elf-fold.o
.bss 0x000000000010086c 0x0 tmp/amd64-linux.elf-main.o
.rela.dyn 0x0000000000100850 0x0
.rela.dyn 0x0000000000100870 0x0
.rela.text 0x0000000000000000 0x0 tmp/amd64-linux.elf-fold.o
LOAD tmp/amd64-linux.elf-fold.o
LOAD tmp/amd64-linux.elf-main.o

View File

@ -2,18 +2,18 @@ file format elf32-littlearm
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINX 00000014 00000000 00000000 00000034 2**0 CONTENTS, RELOC, READONLY
1 NRV_HEAD 00000000 00000000 00000000 00000048 2**0 CONTENTS, READONLY
2 NRV_TAIL 00000000 00000000 00000000 00000048 2**0 CONTENTS, READONLY
3 NRV2E 0000012c 00000000 00000000 00000048 2**0 CONTENTS, RELOC, READONLY
4 NRV2D 00000118 00000000 00000000 00000174 2**0 CONTENTS, RELOC, READONLY
5 NRV2B 000000dc 00000000 00000000 0000028c 2**0 CONTENTS, RELOC, READONLY
6 LZMA_ELF00 000000a8 00000000 00000000 00000368 2**0 CONTENTS, RELOC, READONLY
7 LZMA_DEC20 00000938 00000000 00000000 00000410 2**0 CONTENTS, RELOC, READONLY
8 LZMA_DEC10 00000478 00000000 00000000 00000d48 2**0 CONTENTS, RELOC, READONLY
9 LZMA_DEC30 00000000 00000000 00000000 000011c0 2**0 CONTENTS, READONLY
10 ELFMAINY 00000036 00000000 00000000 000011c0 2**0 CONTENTS, READONLY
11 ELFMAINZ 00000104 00000000 00000000 000011f6 2**0 CONTENTS, RELOC, READONLY
0 ELFMAINX 0000000c 00000000 00000000 00000034 2**0 CONTENTS, RELOC, READONLY
1 NRV_HEAD 00000000 00000000 00000000 00000040 2**0 CONTENTS, READONLY
2 NRV_TAIL 00000000 00000000 00000000 00000040 2**0 CONTENTS, READONLY
3 NRV2E 0000012c 00000000 00000000 00000040 2**0 CONTENTS, RELOC, READONLY
4 NRV2D 00000118 00000000 00000000 0000016c 2**0 CONTENTS, RELOC, READONLY
5 NRV2B 000000dc 00000000 00000000 00000284 2**0 CONTENTS, RELOC, READONLY
6 LZMA_ELF00 000000a8 00000000 00000000 00000360 2**0 CONTENTS, RELOC, READONLY
7 LZMA_DEC20 00000938 00000000 00000000 00000408 2**0 CONTENTS, RELOC, READONLY
8 LZMA_DEC10 00000478 00000000 00000000 00000d40 2**0 CONTENTS, RELOC, READONLY
9 LZMA_DEC30 00000000 00000000 00000000 000011b8 2**0 CONTENTS, READONLY
10 ELFMAINY 00000000 00000000 00000000 000011b8 2**0 CONTENTS, READONLY
11 ELFMAINZ 0000010c 00000000 00000000 000011b8 2**2 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
00000000 l d NRV2E 00000000 NRV2E
00000000 l d NRV2D 00000000 NRV2D
@ -22,31 +22,25 @@ SYMBOL TABLE:
00000000 l d LZMA_DEC20 00000000 LZMA_DEC20
00000000 l d LZMA_DEC10 00000000 LZMA_DEC10
00000000 l d LZMA_DEC30 00000000 LZMA_DEC30
00000000 l d ELFMAINY 00000000 ELFMAINY
00000000 l d ELFMAINZ 00000000 ELFMAINZ
00000000 l d ELFMAINX 00000000 ELFMAINX
00000000 l d NRV_HEAD 00000000 NRV_HEAD
00000000 l d NRV_TAIL 00000000 NRV_TAIL
00000000 *UND* 00000000 ADRM
00000000 *UND* 00000000 LENF
00000000 *UND* 00000000 CPR0
00000000 l d ELFMAINY 00000000 ELFMAINY
00000000 *UND* 00000000 MFLG
00000010 g ELFMAINX 00000000 _start
00000004 g ELFMAINX 00000000 _start
00000000 g F NRV2E 0000012c ucl_nrv2e_decompress_8
00000000 g F NRV2D 00000118 ucl_nrv2d_decompress_8
00000000 g F NRV2B 000000dc ucl_nrv2b_decompress_8
00000000 g LZMA_DEC10 00000000 LzmaDecode
00000000 g ELFMAINY 00000000 end_decompress
00000000 *UND* 00000000 O_BINFO
00000104 g ELFMAINZ 00000000 cpr0
0000010c g ELFMAINZ 00000000 cpr0
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
00000000 R_ARM_ABS32 ADRM
00000004 R_ARM_ABS32 LENF
00000008 R_ARM_ABS32 CPR0
0000000c R_ARM_ABS32 MFLG
00000010 R_ARM_PC24 ELFMAINZ
00000000 R_ARM_ABS32 MFLG
00000008 R_ARM_PC24 ELFMAINZ
RELOCATION RECORDS FOR [NRV2E]:
OFFSET TYPE VALUE
@ -255,7 +249,5 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
0000008c R_ARM_PC24 ELFMAINY
000000ac R_ARM_PC24 ELFMAINZ
000000fc R_ARM_PC24 ELFMAINZ
00000100 R_ARM_ABS32 O_BINFO
00000104 R_ARM_PC24 ELFMAINZ
00000108 R_ARM_ABS32 O_BINFO

View File

@ -9,38 +9,38 @@ Linker script and memory map
TARGET(elf32-littlearm)
0x0000000000008080 . = ((0x8000 + SIZEOF_HEADERS) + 0xc)
.text 0x0000000000008080 0x9f8
.text 0x0000000000008080 0x9b0
*(.text)
.text 0x0000000000008080 0x308 tmp/arm.v4a-linux.elf-fold.o
0x00000000000082dc munmap
0x0000000000008310 get_sys_munmap
0x00000000000082c4 getpid
0x00000000000082d4 readlink
0x00000000000082f8 mmap
0x00000000000082ec __clear_cache
0x0000000000008318 mmap_privanon
0x00000000000082a4 write
0x000000000000829c read
0x00000000000082bc unlink
0x0000000000008290 my_bkpt
0x0000000000008298 exit
0x00000000000082cc brk
0x00000000000082ac open
0x000000000000832c div10
0x00000000000082e4 mprotect
0x00000000000082b4 close
.text 0x0000000000008388 0x6f0 tmp/arm.v4a-linux.elf-main.o
0x00000000000083a8 get_page_mask
0x0000000000008944 upx_main
.text 0x0000000000008080 0x2dc tmp/arm.v4a-linux.elf-fold.o
0x00000000000082b0 munmap
0x00000000000082e4 get_sys_munmap
0x0000000000008298 getpid
0x00000000000082a8 readlink
0x00000000000082cc mmap
0x00000000000082c0 __clear_cache
0x00000000000082ec mmap_privanon
0x0000000000008278 write
0x0000000000008270 read
0x0000000000008290 unlink
0x0000000000008264 my_bkpt
0x000000000000826c exit
0x00000000000082a0 brk
0x0000000000008280 open
0x0000000000008300 div10
0x00000000000082b8 mprotect
0x0000000000008288 close
.text 0x000000000000835c 0x6d4 tmp/arm.v4a-linux.elf-main.o
0x000000000000837c get_page_mask
0x00000000000088f0 upx_main
*(.data)
.data 0x0000000000008a78 0x0 tmp/arm.v4a-linux.elf-fold.o
.data 0x0000000000008a78 0x0 tmp/arm.v4a-linux.elf-main.o
.data 0x0000000000008a30 0x0 tmp/arm.v4a-linux.elf-fold.o
.data 0x0000000000008a30 0x0 tmp/arm.v4a-linux.elf-main.o
.data
.bss 0x0000000000008a78 0x0
.bss 0x0000000000008a78 0x0 tmp/arm.v4a-linux.elf-fold.o
.bss 0x0000000000008a78 0x0 tmp/arm.v4a-linux.elf-main.o
.bss 0x0000000000008a30 0x0
.bss 0x0000000000008a30 0x0 tmp/arm.v4a-linux.elf-fold.o
.bss 0x0000000000008a30 0x0 tmp/arm.v4a-linux.elf-main.o
LOAD tmp/arm.v4a-linux.elf-fold.o
LOAD tmp/arm.v4a-linux.elf-main.o
OUTPUT(tmp/arm.v4a-linux.elf-fold.bin elf32-littlearm)

View File

@ -2,18 +2,18 @@ file format elf32-littlearm
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINX 00000014 00000000 00000000 00000034 2**0 CONTENTS, RELOC, READONLY
1 NRV_HEAD 00000000 00000000 00000000 00000048 2**0 CONTENTS, READONLY
2 NRV_TAIL 00000000 00000000 00000000 00000048 2**0 CONTENTS, READONLY
3 NRV2E 0000013c 00000000 00000000 00000048 2**0 CONTENTS, RELOC, READONLY
4 NRV2D 00000128 00000000 00000000 00000184 2**0 CONTENTS, RELOC, READONLY
5 NRV2B 000000ec 00000000 00000000 000002ac 2**0 CONTENTS, RELOC, READONLY
6 LZMA_ELF00 000000b8 00000000 00000000 00000398 2**0 CONTENTS, RELOC, READONLY
7 LZMA_DEC20 00000938 00000000 00000000 00000450 2**0 CONTENTS, RELOC, READONLY
8 LZMA_DEC10 00000478 00000000 00000000 00000d88 2**0 CONTENTS, RELOC, READONLY
9 LZMA_DEC30 00000000 00000000 00000000 00001200 2**0 CONTENTS, READONLY
10 ELFMAINY 0000003e 00000000 00000000 00001200 2**0 CONTENTS, READONLY
11 ELFMAINZ 00000108 00000000 00000000 0000123e 2**0 CONTENTS, RELOC, READONLY
0 ELFMAINX 0000000c 00000000 00000000 00000034 2**0 CONTENTS, RELOC, READONLY
1 NRV_HEAD 00000000 00000000 00000000 00000040 2**0 CONTENTS, READONLY
2 NRV_TAIL 00000000 00000000 00000000 00000040 2**0 CONTENTS, READONLY
3 NRV2E 0000013c 00000000 00000000 00000040 2**0 CONTENTS, RELOC, READONLY
4 NRV2D 00000128 00000000 00000000 0000017c 2**0 CONTENTS, RELOC, READONLY
5 NRV2B 000000ec 00000000 00000000 000002a4 2**0 CONTENTS, RELOC, READONLY
6 LZMA_ELF00 000000b8 00000000 00000000 00000390 2**0 CONTENTS, RELOC, READONLY
7 LZMA_DEC20 00000938 00000000 00000000 00000448 2**0 CONTENTS, RELOC, READONLY
8 LZMA_DEC10 00000478 00000000 00000000 00000d80 2**0 CONTENTS, RELOC, READONLY
9 LZMA_DEC30 00000000 00000000 00000000 000011f8 2**0 CONTENTS, READONLY
10 ELFMAINY 00000000 00000000 00000000 000011f8 2**0 CONTENTS, READONLY
11 ELFMAINZ 0000011c 00000000 00000000 000011f8 2**2 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
00000000 l d NRV2E 00000000 NRV2E
00000000 l d NRV2D 00000000 NRV2D
@ -22,31 +22,25 @@ SYMBOL TABLE:
00000000 l d LZMA_DEC20 00000000 LZMA_DEC20
00000000 l d LZMA_DEC10 00000000 LZMA_DEC10
00000000 l d LZMA_DEC30 00000000 LZMA_DEC30
00000000 l d ELFMAINY 00000000 ELFMAINY
00000000 l d ELFMAINZ 00000000 ELFMAINZ
00000000 l d ELFMAINX 00000000 ELFMAINX
00000000 l d NRV_HEAD 00000000 NRV_HEAD
00000000 l d NRV_TAIL 00000000 NRV_TAIL
00000000 *UND* 00000000 ADRM
00000000 *UND* 00000000 LENF
00000000 *UND* 00000000 CPR0
00000000 l d ELFMAINY 00000000 ELFMAINY
00000000 *UND* 00000000 MFLG
00000010 g ELFMAINX 00000000 _start
00000004 g ELFMAINX 00000000 _start
00000000 g F NRV2E 0000013c ucl_nrv2e_decompress_8
00000000 g F NRV2D 00000128 ucl_nrv2d_decompress_8
00000000 g F NRV2B 000000ec ucl_nrv2b_decompress_8
00000000 g LZMA_DEC10 00000000 LzmaDecode
00000000 g ELFMAINY 00000000 end_decompress
00000000 *UND* 00000000 O_BINFO
00000108 g ELFMAINZ 00000000 cpr0
0000011c g ELFMAINZ 00000000 cpr0
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
00000000 R_ARM_ABS32 ADRM
00000004 R_ARM_ABS32 LENF
00000008 R_ARM_ABS32 CPR0
0000000c R_ARM_ABS32 MFLG
00000010 R_ARM_PC24 ELFMAINZ
00000000 R_ARM_ABS32 MFLG
00000008 R_ARM_PC24 ELFMAINZ
RELOCATION RECORDS FOR [NRV2E]:
OFFSET TYPE VALUE
@ -255,7 +249,5 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
00000090 R_ARM_PC24 ELFMAINY
000000b0 R_ARM_PC24 ELFMAINZ
00000100 R_ARM_PC24 ELFMAINZ
00000104 R_ARM_ABS32 O_BINFO
00000114 R_ARM_PC24 ELFMAINZ
00000118 R_ARM_ABS32 O_BINFO

View File

@ -9,38 +9,38 @@ Linker script and memory map
TARGET(elf32-littlearm)
0x0000000000008080 . = ((0x8000 + SIZEOF_HEADERS) + 0xc)
.text 0x0000000000008080 0xa94
.text 0x0000000000008080 0xa4c
*(.text)
.text 0x0000000000008080 0x3a8 tmp/arm.v5a-linux.elf-fold.o
0x0000000000008348 munmap
0x00000000000083b0 get_sys_munmap
0x000000000000830c getpid
0x0000000000008334 readlink
0x000000000000838c mmap
0x0000000000008370 __clear_cache
0x00000000000083b8 mmap_privanon
0x00000000000082bc write
0x00000000000082a8 read
0x00000000000082f8 unlink
0x0000000000008290 my_bkpt
0x0000000000008298 exit
0x0000000000008320 brk
0x00000000000082d0 open
0x00000000000083cc div10
0x000000000000835c mprotect
0x00000000000082e4 close
.text 0x0000000000008428 0x6ec tmp/armel-linux.elf-main.o
0x0000000000008448 get_page_mask
0x00000000000089e0 upx_main
.text 0x0000000000008080 0x37c tmp/arm.v5a-linux.elf-fold.o
0x000000000000831c munmap
0x0000000000008384 get_sys_munmap
0x00000000000082e0 getpid
0x0000000000008308 readlink
0x0000000000008360 mmap
0x0000000000008344 __clear_cache
0x000000000000838c mmap_privanon
0x0000000000008290 write
0x000000000000827c read
0x00000000000082cc unlink
0x0000000000008264 my_bkpt
0x000000000000826c exit
0x00000000000082f4 brk
0x00000000000082a4 open
0x00000000000083a0 div10
0x0000000000008330 mprotect
0x00000000000082b8 close
.text 0x00000000000083fc 0x6d0 tmp/armel-linux.elf-main.o
0x000000000000841c get_page_mask
0x000000000000898c upx_main
*(.data)
.data 0x0000000000008b14 0x0 tmp/arm.v5a-linux.elf-fold.o
.data 0x0000000000008b14 0x0 tmp/armel-linux.elf-main.o
.data 0x0000000000008acc 0x0 tmp/arm.v5a-linux.elf-fold.o
.data 0x0000000000008acc 0x0 tmp/armel-linux.elf-main.o
.data
.bss 0x0000000000008b14 0x0
.bss 0x0000000000008b14 0x0 tmp/arm.v5a-linux.elf-fold.o
.bss 0x0000000000008b14 0x0 tmp/armel-linux.elf-main.o
.bss 0x0000000000008acc 0x0
.bss 0x0000000000008acc 0x0 tmp/arm.v5a-linux.elf-fold.o
.bss 0x0000000000008acc 0x0 tmp/armel-linux.elf-main.o
LOAD tmp/arm.v5a-linux.elf-fold.o
LOAD tmp/armel-linux.elf-main.o
OUTPUT(tmp/arm.v5a-linux.elf-fold.bin elf32-littlearm)

View File

@ -2,24 +2,22 @@ file format elf64-littleaarch64
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINX 00000044 0000000000000000 0000000000000000 00000040 2**0 CONTENTS, RELOC, READONLY
1 ELFMAINXu 0000009c 0000000000000000 0000000000000000 00000084 2**0 CONTENTS, RELOC, READONLY
2 NRV_HEAD 00000000 0000000000000000 0000000000000000 00000120 2**0 CONTENTS, READONLY
3 NRV_TAIL 00000000 0000000000000000 0000000000000000 00000120 2**0 CONTENTS, READONLY
4 NRV2E 00000128 0000000000000000 0000000000000000 00000120 2**0 CONTENTS, READONLY
5 NRV2D 0000011c 0000000000000000 0000000000000000 00000248 2**0 CONTENTS, READONLY
6 NRV2B 000000f0 0000000000000000 0000000000000000 00000364 2**0 CONTENTS, READONLY
7 LZMA_ELF00 000000d0 0000000000000000 0000000000000000 00000454 2**0 CONTENTS, RELOC, READONLY
8 LZMA_DEC20 00000968 0000000000000000 0000000000000000 00000524 2**0 CONTENTS, READONLY
9 LZMA_DEC10 0000049c 0000000000000000 0000000000000000 00000e8c 2**0 CONTENTS, READONLY
10 LZMA_DEC30 00000000 0000000000000000 0000000000000000 00001328 2**0 CONTENTS, READONLY
11 ELFMAINY 0000003e 0000000000000000 0000000000000000 00001328 2**0 CONTENTS, READONLY
12 ELFMAINZ 00000004 0000000000000000 0000000000000000 00001366 2**0 CONTENTS, RELOC, READONLY
0 ELFMAINX 00000008 0000000000000000 0000000000000000 00000040 2**0 CONTENTS, RELOC, READONLY
1 NRV_HEAD 00000000 0000000000000000 0000000000000000 00000048 2**0 CONTENTS, READONLY
2 NRV_TAIL 00000000 0000000000000000 0000000000000000 00000048 2**0 CONTENTS, READONLY
3 NRV2E 00000128 0000000000000000 0000000000000000 00000048 2**0 CONTENTS, READONLY
4 NRV2D 0000011c 0000000000000000 0000000000000000 00000170 2**0 CONTENTS, READONLY
5 NRV2B 000000f0 0000000000000000 0000000000000000 0000028c 2**0 CONTENTS, READONLY
6 LZMA_ELF00 000000d0 0000000000000000 0000000000000000 0000037c 2**0 CONTENTS, RELOC, READONLY
7 LZMA_DEC20 00000968 0000000000000000 0000000000000000 0000044c 2**0 CONTENTS, READONLY
8 LZMA_DEC10 0000049c 0000000000000000 0000000000000000 00000db4 2**0 CONTENTS, READONLY
9 LZMA_DEC30 00000000 0000000000000000 0000000000000000 00001250 2**0 CONTENTS, READONLY
10 ELFMAINY 0000003e 0000000000000000 0000000000000000 00001250 2**0 CONTENTS, READONLY
11 ELFMAINZ 0000014c 0000000000000000 0000000000000000 00001290 2**2 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30
0000000000000000 l d ELFMAINY 0000000000000000 ELFMAINY
0000000000000000 l d ELFMAINZ 0000000000000000 ELFMAINZ
0000000000000000 l d ELFMAINX 0000000000000000 ELFMAINX
0000000000000000 l d ELFMAINXu 0000000000000000 ELFMAINXu
0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD
0000000000000000 l d NRV_TAIL 0000000000000000 NRV_TAIL
0000000000000000 l d NRV2E 0000000000000000 NRV2E
@ -28,13 +26,9 @@ SYMBOL TABLE:
0000000000000000 l d LZMA_ELF00 0000000000000000 LZMA_ELF00
0000000000000000 l d LZMA_DEC20 0000000000000000 LZMA_DEC20
0000000000000000 l d LZMA_DEC10 0000000000000000 LZMA_DEC10
0000000000000000 l d ELFMAINZ 0000000000000000 ELFMAINZ
0000000000000000 *UND* 0000000000000000 LENF
0000000000000000 *UND* 0000000000000000 CPR0
0000000000000000 l d ELFMAINY 0000000000000000 ELFMAINY
0000000000000000 *UND* 0000000000000000 MFLG
0000000000000000 *UND* 0000000000000000 ADRM
0000000000000014 g ELFMAINX 0000000000000000 _start
0000000000000004 g ELFMAINZ 0000000000000000 cpr0
0000000000000004 g ELFMAINX 0000000000000000 _start
0000000000000000 g F NRV2E 0000000000000128 ucl_nrv2e_decompress_32
0000000000000000 g F NRV2D 000000000000011c ucl_nrv2d_decompress_32
0000000000000000 g F NRV2B 00000000000000f0 ucl_nrv2b_decompress_32
@ -44,14 +38,8 @@ SYMBOL TABLE:
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
0000000000000000 R_AARCH64_ABS32 LENF
0000000000000004 R_AARCH64_ABS32 CPR0
0000000000000008 R_AARCH64_ABS32 MFLG
000000000000000c R_AARCH64_ABS64 ADRM
RELOCATION RECORDS FOR [ELFMAINXu]:
OFFSET TYPE VALUE
0000000000000024 R_AARCH64_CONDBR19 ELFMAINY
0000000000000000 R_AARCH64_ABS32 MFLG
0000000000000004 R_AARCH64_CALL26 ELFMAINZ+0x0000000000000100
RELOCATION RECORDS FOR [LZMA_ELF00]:
OFFSET TYPE VALUE
@ -59,4 +47,4 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
0000000000000000 R_AARCH64_ABS32 O_BINFO
0000000000000148 R_AARCH64_ABS32 O_BINFO

View File

@ -8,44 +8,44 @@ Linker script and memory map
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0x904
.text 0x00000000001000bc 0x930
*(.text)
.text 0x00000000001000bc 0x238 tmp/arm64-linux.elf-fold.o
0x0000000000100230 my_bkpt
0x0000000000100238 exit
0x0000000000100240 read
0x000000000010024c write
0x0000000000100258 close
0x0000000000100264 getpid
0x0000000000100270 brk
0x000000000010027c munmap
0x0000000000100288 mprotect
0x0000000000100294 mmap_privanon
0x00000000001002a4 mmap
0x00000000001002b0 unlink
0x0000000000100228 my_bkpt
0x0000000000100230 exit
0x0000000000100238 read
0x0000000000100244 write
0x0000000000100250 close
0x000000000010025c getpid
0x0000000000100268 brk
0x0000000000100274 munmap
0x0000000000100280 mprotect
0x000000000010028c mmap_privanon
0x000000000010029c mmap
0x00000000001002a8 unlink
0x00000000001002bc readlink
0x00000000001002c4 open
0x00000000001002e0 __clear_cache
.text 0x00000000001002f4 0x6cc tmp/arm64-linux.elf-main.o
0x00000000001007c4 upx_main
.text 0x00000000001002f4 0x6f8 tmp/arm64-linux.elf-main.o
0x0000000000100884 upx_main
*(.data)
.data 0x00000000001009c0 0x0 tmp/arm64-linux.elf-fold.o
.data 0x00000000001009c0 0x0 tmp/arm64-linux.elf-main.o
.data 0x00000000001009ec 0x0 tmp/arm64-linux.elf-fold.o
.data 0x00000000001009ec 0x0 tmp/arm64-linux.elf-main.o
.iplt 0x00000000001009c0 0x0
.iplt 0x00000000001009c0 0x0 tmp/arm64-linux.elf-fold.o
.iplt 0x00000000001009ec 0x0
.iplt 0x00000000001009ec 0x0 tmp/arm64-linux.elf-fold.o
.rela.dyn 0x00000000001009c0 0x0
.rela.iplt 0x00000000001009c0 0x0 tmp/arm64-linux.elf-fold.o
.rela.dyn 0x00000000001009f0 0x0
.rela.iplt 0x00000000001009f0 0x0 tmp/arm64-linux.elf-fold.o
.data
LOAD tmp/arm64-linux.elf-fold.o
LOAD tmp/arm64-linux.elf-main.o
OUTPUT(tmp/arm64-linux.elf-fold.bin elf64-littleaarch64)
.igot.plt 0x00000000001009c0 0x0
.igot.plt 0x00000000001009c0 0x0 tmp/arm64-linux.elf-fold.o
.igot.plt 0x00000000001009f0 0x0
.igot.plt 0x00000000001009f0 0x0 tmp/arm64-linux.elf-fold.o
.bss 0x00000000001009c0 0x0
.bss 0x00000000001009c0 0x0 tmp/arm64-linux.elf-fold.o
.bss 0x00000000001009c0 0x0 tmp/arm64-linux.elf-main.o
.bss 0x00000000001009ec 0x0
.bss 0x00000000001009ec 0x0 tmp/arm64-linux.elf-fold.o
.bss 0x00000000001009ec 0x0 tmp/arm64-linux.elf-main.o

View File

@ -2,18 +2,18 @@ file format elf32-bigarm
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINX 00000014 00000000 00000000 00000034 2**0 CONTENTS, RELOC, READONLY
1 NRV_HEAD 00000000 00000000 00000000 00000048 2**0 CONTENTS, READONLY
2 NRV_TAIL 00000000 00000000 00000000 00000048 2**0 CONTENTS, READONLY
3 NRV2E 0000012c 00000000 00000000 00000048 2**0 CONTENTS, RELOC, READONLY
4 NRV2D 00000118 00000000 00000000 00000174 2**0 CONTENTS, RELOC, READONLY
5 NRV2B 000000dc 00000000 00000000 0000028c 2**0 CONTENTS, RELOC, READONLY
6 LZMA_ELF00 000000a8 00000000 00000000 00000368 2**0 CONTENTS, RELOC, READONLY
7 LZMA_DEC20 00000938 00000000 00000000 00000410 2**0 CONTENTS, RELOC, READONLY
8 LZMA_DEC10 00000478 00000000 00000000 00000d48 2**0 CONTENTS, RELOC, READONLY
9 LZMA_DEC30 00000000 00000000 00000000 000011c0 2**0 CONTENTS, READONLY
10 ELFMAINY 00000036 00000000 00000000 000011c0 2**0 CONTENTS, READONLY
11 ELFMAINZ 00000104 00000000 00000000 000011f6 2**0 CONTENTS, RELOC, READONLY
0 ELFMAINX 0000000c 00000000 00000000 00000034 2**0 CONTENTS, RELOC, READONLY
1 NRV_HEAD 00000000 00000000 00000000 00000040 2**0 CONTENTS, READONLY
2 NRV_TAIL 00000000 00000000 00000000 00000040 2**0 CONTENTS, READONLY
3 NRV2E 0000012c 00000000 00000000 00000040 2**0 CONTENTS, RELOC, READONLY
4 NRV2D 00000118 00000000 00000000 0000016c 2**0 CONTENTS, RELOC, READONLY
5 NRV2B 000000dc 00000000 00000000 00000284 2**0 CONTENTS, RELOC, READONLY
6 LZMA_ELF00 000000a8 00000000 00000000 00000360 2**0 CONTENTS, RELOC, READONLY
7 LZMA_DEC20 00000938 00000000 00000000 00000408 2**0 CONTENTS, RELOC, READONLY
8 LZMA_DEC10 00000478 00000000 00000000 00000d40 2**0 CONTENTS, RELOC, READONLY
9 LZMA_DEC30 00000000 00000000 00000000 000011b8 2**0 CONTENTS, READONLY
10 ELFMAINY 00000000 00000000 00000000 000011b8 2**0 CONTENTS, READONLY
11 ELFMAINZ 0000010c 00000000 00000000 000011b8 2**2 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
00000000 l d NRV2E 00000000 NRV2E
00000000 l d NRV2D 00000000 NRV2D
@ -22,31 +22,25 @@ SYMBOL TABLE:
00000000 l d LZMA_DEC20 00000000 LZMA_DEC20
00000000 l d LZMA_DEC10 00000000 LZMA_DEC10
00000000 l d LZMA_DEC30 00000000 LZMA_DEC30
00000000 l d ELFMAINY 00000000 ELFMAINY
00000000 l d ELFMAINZ 00000000 ELFMAINZ
00000000 l d ELFMAINX 00000000 ELFMAINX
00000000 l d NRV_HEAD 00000000 NRV_HEAD
00000000 l d NRV_TAIL 00000000 NRV_TAIL
00000000 *UND* 00000000 ADRM
00000000 *UND* 00000000 LENF
00000000 *UND* 00000000 CPR0
00000000 l d ELFMAINY 00000000 ELFMAINY
00000000 *UND* 00000000 MFLG
00000010 g ELFMAINX 00000000 _start
00000004 g ELFMAINX 00000000 _start
00000000 g F NRV2E 0000012c ucl_nrv2e_decompress_8
00000000 g F NRV2D 00000118 ucl_nrv2d_decompress_8
00000000 g F NRV2B 000000dc ucl_nrv2b_decompress_8
00000000 g LZMA_DEC10 00000000 LzmaDecode
00000000 g ELFMAINY 00000000 end_decompress
00000000 *UND* 00000000 O_BINFO
00000104 g ELFMAINZ 00000000 cpr0
0000010c g ELFMAINZ 00000000 cpr0
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
00000000 R_ARM_ABS32 ADRM
00000004 R_ARM_ABS32 LENF
00000008 R_ARM_ABS32 CPR0
0000000c R_ARM_ABS32 MFLG
00000010 R_ARM_PC24 ELFMAINZ
00000000 R_ARM_ABS32 MFLG
00000008 R_ARM_PC24 ELFMAINZ
RELOCATION RECORDS FOR [NRV2E]:
OFFSET TYPE VALUE
@ -255,7 +249,5 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
0000008c R_ARM_PC24 ELFMAINY
000000ac R_ARM_PC24 ELFMAINZ
000000fc R_ARM_PC24 ELFMAINZ
00000100 R_ARM_ABS32 O_BINFO
00000104 R_ARM_PC24 ELFMAINZ
00000108 R_ARM_ABS32 O_BINFO

View File

@ -9,38 +9,38 @@ Linker script and memory map
TARGET(elf32-bigarm)
0x0000000000008080 . = ((0x8000 + SIZEOF_HEADERS) + 0xc)
.text 0x0000000000008080 0x9f8
.text 0x0000000000008080 0x9b0
*(.text)
.text 0x0000000000008080 0x308 tmp/armeb.v4a-linux.elf-fold.o
0x00000000000082dc munmap
0x0000000000008310 get_sys_munmap
0x00000000000082c4 getpid
0x00000000000082d4 readlink
0x00000000000082f8 mmap
0x00000000000082ec __clear_cache
0x0000000000008318 mmap_privanon
0x00000000000082a4 write
0x000000000000829c read
0x00000000000082bc unlink
0x0000000000008290 my_bkpt
0x0000000000008298 exit
0x00000000000082cc brk
0x00000000000082ac open
0x000000000000832c div10
0x00000000000082e4 mprotect
0x00000000000082b4 close
.text 0x0000000000008388 0x6f0 tmp/armeb.v4a-linux.elf-main.o
0x00000000000083a8 get_page_mask
0x0000000000008944 upx_main
.text 0x0000000000008080 0x2dc tmp/armeb.v4a-linux.elf-fold.o
0x00000000000082b0 munmap
0x00000000000082e4 get_sys_munmap
0x0000000000008298 getpid
0x00000000000082a8 readlink
0x00000000000082cc mmap
0x00000000000082c0 __clear_cache
0x00000000000082ec mmap_privanon
0x0000000000008278 write
0x0000000000008270 read
0x0000000000008290 unlink
0x0000000000008264 my_bkpt
0x000000000000826c exit
0x00000000000082a0 brk
0x0000000000008280 open
0x0000000000008300 div10
0x00000000000082b8 mprotect
0x0000000000008288 close
.text 0x000000000000835c 0x6d4 tmp/armeb.v4a-linux.elf-main.o
0x000000000000837c get_page_mask
0x00000000000088f0 upx_main
*(.data)
.data 0x0000000000008a78 0x0 tmp/armeb.v4a-linux.elf-fold.o
.data 0x0000000000008a78 0x0 tmp/armeb.v4a-linux.elf-main.o
.data 0x0000000000008a30 0x0 tmp/armeb.v4a-linux.elf-fold.o
.data 0x0000000000008a30 0x0 tmp/armeb.v4a-linux.elf-main.o
.data
.bss 0x0000000000008a78 0x0
.bss 0x0000000000008a78 0x0 tmp/armeb.v4a-linux.elf-fold.o
.bss 0x0000000000008a78 0x0 tmp/armeb.v4a-linux.elf-main.o
.bss 0x0000000000008a30 0x0
.bss 0x0000000000008a30 0x0 tmp/armeb.v4a-linux.elf-fold.o
.bss 0x0000000000008a30 0x0 tmp/armeb.v4a-linux.elf-main.o
LOAD tmp/armeb.v4a-linux.elf-fold.o
LOAD tmp/armeb.v4a-linux.elf-main.o
OUTPUT(tmp/armeb.v4a-linux.elf-fold.bin elf32-bigarm)

View File

@ -169,10 +169,7 @@ Idx Name Size VMA LMA File off Algn Flags
164 ctok32.30 0000000a 00000000 00000000 00001aa8 2**0 CONTENTS, RELOC, READONLY
165 ctok32.40 00000005 00000000 00000000 00001ab2 2**0 CONTENTS, RELOC, READONLY
166 LEXEC017 00000002 00000000 00000000 00001ab7 2**0 CONTENTS, READONLY
167 LEXEC020 00000031 00000000 00000000 00001ab9 2**0 CONTENTS, READONLY
168 LEXECEXE 00000040 00000000 00000000 00001aea 2**0 CONTENTS, RELOC, READONLY
169 LEXECDYN 000000a6 00000000 00000000 00001b2a 2**0 CONTENTS, RELOC, READONLY
170 LEXEC025 00000041 00000000 00000000 00001bd0 2**0 CONTENTS, RELOC, READONLY
167 LEXEC020 000000e2 00000000 00000000 00001ab9 2**0 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
00000000 l d N2BSMA10 00000000 N2BSMA10
00000000 l d N2BFAS11 00000000 N2BFAS11
@ -218,7 +215,6 @@ SYMBOL TABLE:
00000000 l d ctok32.20 00000000 ctok32.20
00000000 l d ctok32.40 00000000 ctok32.40
00000000 l d LEXEC020 00000000 LEXEC020
00000000 l d LEXEC025 00000000 LEXEC025
00000000 l d LEXEC000 00000000 LEXEC000
00000000 l d LEXEC009 00000000 LEXEC009
00000000 l d LEXEC010 00000000 LEXEC010
@ -343,8 +339,6 @@ SYMBOL TABLE:
00000000 l d LXUNF035 00000000 LXUNF035
00000000 l d ctok32.30 00000000 ctok32.30
00000000 l d LEXEC017 00000000 LEXEC017
00000000 l d LEXECEXE 00000000 LEXECEXE
00000000 l d LEXECDYN 00000000 LEXECDYN
00000000 g LEXEC000 00000000 _start
00000000 *UND* 00000000 lzma_stack_adjust
00000000 *UND* 00000000 lzma_u_len
@ -357,7 +351,7 @@ SYMBOL TABLE:
RELOCATION RECORDS FOR [LEXEC000]:
OFFSET TYPE VALUE
00000002 R_386_PC32 LEXEC025
00000002 R_386_PC32 LEXEC020
RELOCATION RECORDS FOR [N2BSMA10]:
OFFSET TYPE VALUE
@ -661,17 +655,6 @@ RELOCATION RECORDS FOR [ctok32.40]:
OFFSET TYPE VALUE
00000004 R_386_PC8 ctok32.00
RELOCATION RECORDS FOR [LEXECEXE]:
RELOCATION RECORDS FOR [LEXEC020]:
OFFSET TYPE VALUE
0000002d R_386_PC32 LEXEC020
RELOCATION RECORDS FOR [LEXECDYN]:
OFFSET TYPE VALUE
00000004 R_386_32 LEXEC025
000000a0 R_386_32 LEXEC025
00000070 R_386_PC32 LEXEC020
RELOCATION RECORDS FOR [LEXEC025]:
OFFSET TYPE VALUE
00000039 R_386_PC32 LEXEC020
0000003d R_386_32 O_BINFO
000000de R_386_32 O_BINFO

View File

@ -9,25 +9,25 @@ Linker script and memory map
TARGET(elf32-i386)
0x0000000000c01080 . = ((0xc01000 + SIZEOF_HEADERS) + 0xc)
.text 0x0000000000c01080 0x6bc
.text 0x0000000000c01080 0x68c
*(.text)
.text 0x0000000000c01080 0x154 tmp/i386-linux.elf-fold.o
0x0000000000c011a5 mmap
.text 0x0000000000c011d4 0x565 tmp/i386-linux.elf-main.o
0x0000000000c012fc get_page_mask
0x0000000000c01634 upx_main
.text 0x0000000000c01080 0x14c tmp/i386-linux.elf-fold.o
0x0000000000c011a0 mmap
.text 0x0000000000c011cc 0x53e tmp/i386-linux.elf-main.o
0x0000000000c012f4 get_page_mask
0x0000000000c015fb upx_main
*(.data)
*fill* 0x0000000000c01739 0x3 00
.data 0x0000000000c0173c 0x0 tmp/i386-linux.elf-fold.o
.data 0x0000000000c0173c 0x0 tmp/i386-linux.elf-main.o
*fill* 0x0000000000c0170a 0x2 00
.data 0x0000000000c0170c 0x0 tmp/i386-linux.elf-fold.o
.data 0x0000000000c0170c 0x0 tmp/i386-linux.elf-main.o
.data
.bss 0x0000000000c0173c 0x0
.bss 0x0000000000c0173c 0x0 tmp/i386-linux.elf-fold.o
.bss 0x0000000000c0173c 0x0 tmp/i386-linux.elf-main.o
.bss 0x0000000000c0170c 0x0
.bss 0x0000000000c0170c 0x0 tmp/i386-linux.elf-fold.o
.bss 0x0000000000c0170c 0x0 tmp/i386-linux.elf-main.o
.rel.dyn 0x0000000000c0173c 0x0
.rel.dyn 0x0000000000c0170c 0x0
.rel.text 0x0000000000000000 0x0 tmp/i386-linux.elf-fold.o
LOAD tmp/i386-linux.elf-fold.o
LOAD tmp/i386-linux.elf-main.o

View File

@ -2,19 +2,19 @@ file format elf32-bigmips
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINX 00000020 00000000 00000000 00000034 2**0 CONTENTS, RELOC, READONLY
1 NRV2E 00000154 00000000 00000000 00000054 2**0 CONTENTS, RELOC, READONLY
2 NRV2D 00000144 00000000 00000000 000001a8 2**0 CONTENTS, RELOC, READONLY
3 NRV2B 00000128 00000000 00000000 000002ec 2**0 CONTENTS, RELOC, READONLY
4 LZMA_ELF00 0000009c 00000000 00000000 00000414 2**0 CONTENTS, READONLY
5 LZMA_DEC20 00000ad8 00000000 00000000 000004b0 2**0 CONTENTS, READONLY
6 LZMA_DEC10 00000ad8 00000000 00000000 00000f88 2**0 CONTENTS, READONLY
7 LZMA_DEC30 00000004 00000000 00000000 00001a60 2**0 CONTENTS, READONLY
8 NRV_HEAD 00000010 00000000 00000000 00001a64 2**0 CONTENTS, READONLY
9 NRV_TAIL 00000010 00000000 00000000 00001a74 2**0 CONTENTS, READONLY
10 CFLUSH 00000024 00000000 00000000 00001a84 2**0 CONTENTS, READONLY
11 ELFMAINY 0000002a 00000000 00000000 00001aa8 2**0 CONTENTS, RELOC, READONLY
12 ELFMAINZ 00000124 00000000 00000000 00001ad2 2**0 CONTENTS, RELOC, READONLY
0 ELFMAINX 00000008 00000000 00000000 00000034 2**0 CONTENTS, RELOC, READONLY
1 NRV2E 00000154 00000000 00000000 0000003c 2**0 CONTENTS, RELOC, READONLY
2 NRV2D 00000144 00000000 00000000 00000190 2**0 CONTENTS, RELOC, READONLY
3 NRV2B 00000128 00000000 00000000 000002d4 2**0 CONTENTS, RELOC, READONLY
4 LZMA_ELF00 0000009c 00000000 00000000 000003fc 2**0 CONTENTS, READONLY
5 LZMA_DEC20 00000ad8 00000000 00000000 00000498 2**0 CONTENTS, READONLY
6 LZMA_DEC10 00000ad8 00000000 00000000 00000f70 2**0 CONTENTS, READONLY
7 LZMA_DEC30 00000004 00000000 00000000 00001a48 2**0 CONTENTS, READONLY
8 NRV_HEAD 00000010 00000000 00000000 00001a4c 2**0 CONTENTS, READONLY
9 NRV_TAIL 00000010 00000000 00000000 00001a5c 2**0 CONTENTS, READONLY
10 CFLUSH 00000024 00000000 00000000 00001a6c 2**0 CONTENTS, READONLY
11 ELFMAINY 0000002a 00000000 00000000 00001a90 2**0 CONTENTS, RELOC, READONLY
12 ELFMAINZ 00000194 00000000 00000000 00001abc 2**2 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
00000000 l d NRV_TAIL 00000000 NRV_TAIL
00000000 l d ELFMAINZ 00000000 ELFMAINZ
@ -29,24 +29,12 @@ SYMBOL TABLE:
00000000 l d NRV_HEAD 00000000 NRV_HEAD
00000000 l d CFLUSH 00000000 CFLUSH
00000000 l d ELFMAINY 00000000 ELFMAINY
00000000 *UND* 00000000 ADRM
00000000 *UND* 00000000 LENM
00000000 *UND* 00000000 ADRU
00000000 *UND* 00000000 ADRC
00000000 *UND* 00000000 LENU
00000000 *UND* 00000000 ADRX
00000018 g O ELFMAINX 00000000 _start
00000000 g O ELFMAINX 00000000 _start
00000000 *UND* 00000000 O_BINFO
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
00000000 R_MIPS_32 ADRM
00000004 R_MIPS_32 LENM
00000008 R_MIPS_32 ADRU
0000000c R_MIPS_32 ADRC
00000010 R_MIPS_32 LENU
00000014 R_MIPS_32 ADRX
00000018 R_MIPS_PC16 ELFMAINZ
00000000 R_MIPS_PC16 ELFMAINZ
RELOCATION RECORDS FOR [NRV2E]:
OFFSET TYPE VALUE
@ -66,4 +54,4 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
00000120 R_MIPS_32 O_BINFO
00000190 R_MIPS_32 O_BINFO

View File

@ -9,21 +9,20 @@ Linker script and memory map
TARGET(elf32-bigmips)
0x0000000000100080 . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x0000000000100080 0x980
.text 0x0000000000100080 0x990
*(.text)
.text 0x0000000000100080 0x130 tmp/mips.r3000-linux.elf-fold.o
.text 0x00000000001001b0 0x850 tmp/mips.r3000-linux.elf-main.o
0x0000000000100424 get_page_mask
.text 0x0000000000100080 0x170 tmp/mips.r3000-linux.elf-fold.o
.text 0x00000000001001f0 0x820 tmp/mips.r3000-linux.elf-main.o
0x0000000000100870 upx_main
*(.data)
.data 0x0000000000100a00 0x0 tmp/mips.r3000-linux.elf-fold.o
.data 0x0000000000100a00 0x0 tmp/mips.r3000-linux.elf-main.o
.data 0x0000000000100a10 0x0 tmp/mips.r3000-linux.elf-fold.o
.data 0x0000000000100a10 0x0 tmp/mips.r3000-linux.elf-main.o
.data
.bss 0x0000000000100a00 0x0
.bss 0x0000000000100a00 0x0 tmp/mips.r3000-linux.elf-fold.o
.bss 0x0000000000100a00 0x0 tmp/mips.r3000-linux.elf-main.o
.bss 0x0000000000100a10 0x0
.bss 0x0000000000100a10 0x0 tmp/mips.r3000-linux.elf-fold.o
.bss 0x0000000000100a10 0x0 tmp/mips.r3000-linux.elf-main.o
LOAD tmp/mips.r3000-linux.elf-fold.o
LOAD tmp/mips.r3000-linux.elf-main.o
OUTPUT(tmp/mips.r3000-linux.elf-fold.bin elf32-bigmips)

View File

@ -2,19 +2,19 @@ file format elf32-littlemips
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINX 00000020 00000000 00000000 00000034 2**0 CONTENTS, RELOC, READONLY
1 NRV2E 0000012c 00000000 00000000 00000054 2**0 CONTENTS, RELOC, READONLY
2 NRV2D 0000011c 00000000 00000000 00000180 2**0 CONTENTS, RELOC, READONLY
3 NRV2B 00000100 00000000 00000000 0000029c 2**0 CONTENTS, RELOC, READONLY
4 LZMA_ELF00 0000009c 00000000 00000000 0000039c 2**0 CONTENTS, READONLY
5 LZMA_DEC20 00000ad8 00000000 00000000 00000438 2**0 CONTENTS, READONLY
6 LZMA_DEC10 00000ad8 00000000 00000000 00000f10 2**0 CONTENTS, READONLY
7 LZMA_DEC30 00000004 00000000 00000000 000019e8 2**0 CONTENTS, READONLY
8 NRV_HEAD 00000010 00000000 00000000 000019ec 2**0 CONTENTS, READONLY
9 NRV_TAIL 00000010 00000000 00000000 000019fc 2**0 CONTENTS, READONLY
10 CFLUSH 00000024 00000000 00000000 00001a0c 2**0 CONTENTS, READONLY
11 ELFMAINY 0000002a 00000000 00000000 00001a30 2**0 CONTENTS, RELOC, READONLY
12 ELFMAINZ 00000124 00000000 00000000 00001a5a 2**0 CONTENTS, RELOC, READONLY
0 ELFMAINX 00000008 00000000 00000000 00000034 2**0 CONTENTS, RELOC, READONLY
1 NRV2E 0000012c 00000000 00000000 0000003c 2**0 CONTENTS, RELOC, READONLY
2 NRV2D 0000011c 00000000 00000000 00000168 2**0 CONTENTS, RELOC, READONLY
3 NRV2B 00000100 00000000 00000000 00000284 2**0 CONTENTS, RELOC, READONLY
4 LZMA_ELF00 0000009c 00000000 00000000 00000384 2**0 CONTENTS, READONLY
5 LZMA_DEC20 00000ad8 00000000 00000000 00000420 2**0 CONTENTS, READONLY
6 LZMA_DEC10 00000ad8 00000000 00000000 00000ef8 2**0 CONTENTS, READONLY
7 LZMA_DEC30 00000004 00000000 00000000 000019d0 2**0 CONTENTS, READONLY
8 NRV_HEAD 00000010 00000000 00000000 000019d4 2**0 CONTENTS, READONLY
9 NRV_TAIL 00000010 00000000 00000000 000019e4 2**0 CONTENTS, READONLY
10 CFLUSH 00000024 00000000 00000000 000019f4 2**0 CONTENTS, READONLY
11 ELFMAINY 0000002a 00000000 00000000 00001a18 2**0 CONTENTS, RELOC, READONLY
12 ELFMAINZ 00000194 00000000 00000000 00001a44 2**2 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
00000000 l d NRV_TAIL 00000000 NRV_TAIL
00000000 l d ELFMAINZ 00000000 ELFMAINZ
@ -29,24 +29,12 @@ SYMBOL TABLE:
00000000 l d NRV_HEAD 00000000 NRV_HEAD
00000000 l d CFLUSH 00000000 CFLUSH
00000000 l d ELFMAINY 00000000 ELFMAINY
00000000 *UND* 00000000 ADRM
00000000 *UND* 00000000 LENM
00000000 *UND* 00000000 ADRU
00000000 *UND* 00000000 ADRC
00000000 *UND* 00000000 LENU
00000000 *UND* 00000000 ADRX
00000018 g O ELFMAINX 00000000 _start
00000000 g O ELFMAINX 00000000 _start
00000000 *UND* 00000000 O_BINFO
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
00000000 R_MIPS_32 ADRM
00000004 R_MIPS_32 LENM
00000008 R_MIPS_32 ADRU
0000000c R_MIPS_32 ADRC
00000010 R_MIPS_32 LENU
00000014 R_MIPS_32 ADRX
00000018 R_MIPS_PC16 ELFMAINZ
00000000 R_MIPS_PC16 ELFMAINZ
RELOCATION RECORDS FOR [NRV2E]:
OFFSET TYPE VALUE
@ -66,4 +54,4 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
00000120 R_MIPS_32 O_BINFO
00000190 R_MIPS_32 O_BINFO

View File

@ -9,21 +9,20 @@ Linker script and memory map
TARGET(elf32-littlemips)
0x0000000000100080 . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x0000000000100080 0x980
.text 0x0000000000100080 0x990
*(.text)
.text 0x0000000000100080 0x130 tmp/mipsel.r3000-linux.elf-fold.o
.text 0x00000000001001b0 0x850 tmp/mipsel.r3000-linux.elf-main.o
0x0000000000100424 get_page_mask
.text 0x0000000000100080 0x170 tmp/mipsel.r3000-linux.elf-fold.o
.text 0x00000000001001f0 0x820 tmp/mipsel.r3000-linux.elf-main.o
0x0000000000100870 upx_main
*(.data)
.data 0x0000000000100a00 0x0 tmp/mipsel.r3000-linux.elf-fold.o
.data 0x0000000000100a00 0x0 tmp/mipsel.r3000-linux.elf-main.o
.data 0x0000000000100a10 0x0 tmp/mipsel.r3000-linux.elf-fold.o
.data 0x0000000000100a10 0x0 tmp/mipsel.r3000-linux.elf-main.o
.data
.bss 0x0000000000100a00 0x0
.bss 0x0000000000100a00 0x0 tmp/mipsel.r3000-linux.elf-fold.o
.bss 0x0000000000100a00 0x0 tmp/mipsel.r3000-linux.elf-main.o
.bss 0x0000000000100a10 0x0
.bss 0x0000000000100a10 0x0 tmp/mipsel.r3000-linux.elf-fold.o
.bss 0x0000000000100a10 0x0 tmp/mipsel.r3000-linux.elf-main.o
LOAD tmp/mipsel.r3000-linux.elf-fold.o
LOAD tmp/mipsel.r3000-linux.elf-main.o
OUTPUT(tmp/mipsel.r3000-linux.elf-fold.bin elf32-littlemips)

View File

@ -14,11 +14,10 @@ Idx Name Size VMA LMA File off Algn Flags
9 NRV_TAIL 0000001c 00000000 00000000 00001788 2**0 CONTENTS, READONLY
10 CFLUSH 00000024 00000000 00000000 000017a4 2**0 CONTENTS, READONLY
11 ELFMAINY 00000012 00000000 00000000 000017c8 2**0 CONTENTS, RELOC, READONLY
12 ELFMAINZ 00000204 00000000 00000000 000017da 2**0 CONTENTS, RELOC, READONLY
12 ELFMAINZ 00000184 00000000 00000000 000017dc 2**2 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
00000000 l d LZMA_DEC30 00000000 LZMA_DEC30
00000000 l d NRV_TAIL 00000000 NRV_TAIL
00000000 l d ELFMAINY 00000000 ELFMAINY
00000000 l d ELFMAINZ 00000000 ELFMAINZ
00000000 l d ELFMAINX 00000000 ELFMAINX
00000000 l d NRV_HEAD 00000000 NRV_HEAD
@ -29,12 +28,13 @@ SYMBOL TABLE:
00000000 l d LZMA_DEC10 00000000 LZMA_DEC10
00000000 l d LZMA_DEC20 00000000 LZMA_DEC20
00000000 l d CFLUSH 00000000 CFLUSH
00000000 l d ELFMAINY 00000000 ELFMAINY
00000000 g ELFMAINX 00000000 _start
00000000 *UND* 00000000 O_BINFO
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
00000000 R_PPC_REL24 ELFMAINZ+0x000001bc
00000000 R_PPC_REL24 ELFMAINZ+0x0000013c
RELOCATION RECORDS FOR [NRV2E]:
OFFSET TYPE VALUE
@ -58,6 +58,4 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
0000007c R_PPC_REL14 ELFMAINY
0000011c R_PPC_REL14 ELFMAINY
00000200 R_PPC_ADDR32 O_BINFO
00000180 R_PPC_ADDR32 O_BINFO

View File

@ -9,34 +9,34 @@ Linker script and memory map
TARGET(elf32-powerpc)
0x0000000000100080 . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x0000000000100080 0x105c
.text 0x0000000000100080 0xfc8
*(.text)
.text 0x0000000000100080 0x264 tmp/powerpc-linux.elf-fold.o
.text 0x0000000000100080 0x250 tmp/powerpc-linux.elf-fold.o
0x0000000000100080 get_page_mask
0x00000000001002cc munmap
0x000000000010029c readlink
0x0000000000100280 mmap
0x00000000001002a4 write
0x00000000001002ac read
0x00000000001002dc my_bkpt
0x0000000000100294 exit
0x00000000001002d4 brk
0x00000000001002b4 open
0x00000000001002c4 mprotect
0x00000000001002bc close
.text 0x00000000001002e4 0xdf8 tmp/powerpc-linux.elf-main.o
0x0000000000100ecc upx_main
0x00000000001002c0 munmap
0x0000000000100290 readlink
0x000000000010026c mmap
0x0000000000100298 write
0x00000000001002a0 read
0x00000000001002c8 my_bkpt
0x0000000000100280 exit
0x0000000000100288 brk
0x00000000001002a8 open
0x00000000001002b8 mprotect
0x00000000001002b0 close
.text 0x00000000001002d0 0xd78 tmp/powerpc-linux.elf-main.o
0x0000000000100e40 upx_main
*(.data)
.data 0x00000000001010dc 0x0 tmp/powerpc-linux.elf-fold.o
.data 0x00000000001010dc 0x0 tmp/powerpc-linux.elf-main.o
.data 0x0000000000101048 0x0 tmp/powerpc-linux.elf-fold.o
.data 0x0000000000101048 0x0 tmp/powerpc-linux.elf-main.o
.data
.bss 0x00000000001010dc 0x0
.bss 0x00000000001010dc 0x0 tmp/powerpc-linux.elf-fold.o
.bss 0x00000000001010dc 0x0 tmp/powerpc-linux.elf-main.o
.bss 0x0000000000101048 0x0
.bss 0x0000000000101048 0x0 tmp/powerpc-linux.elf-fold.o
.bss 0x0000000000101048 0x0 tmp/powerpc-linux.elf-main.o
.rela.dyn 0x00000000001010dc 0x0
.rela.dyn 0x0000000000101048 0x0
.rela.text 0x0000000000000000 0x0 tmp/powerpc-linux.elf-fold.o
LOAD tmp/powerpc-linux.elf-fold.o
LOAD tmp/powerpc-linux.elf-main.o

View File

@ -15,11 +15,10 @@ Idx Name Size VMA LMA File off Algn
10 CFLUSH 00000024 0000000000000000 0000000000000000 00001ce0 2**0 CONTENTS, READONLY
11 ELFMAINY 00000012 0000000000000000 0000000000000000 00001d04 2**0 CONTENTS, RELOC, READONLY
12 ELFMAINZe 00000018 0000000000000000 0000000000000000 00001d18 2**3 CONTENTS, RELOC, READONLY
13 ELFMAINZ 00000248 0000000000000000 0000000000000000 00001d30 2**2 CONTENTS, RELOC, READONLY
13 ELFMAINZ 000001f8 0000000000000000 0000000000000000 00001d30 2**2 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30
0000000000000000 l d NRV_TAIL 0000000000000000 NRV_TAIL
0000000000000000 l d ELFMAINY 0000000000000000 ELFMAINY
0000000000000000 l d ELFMAINZ 0000000000000000 ELFMAINZ
0000000000000000 l d ELFMAINX 0000000000000000 ELFMAINX
0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD
@ -30,6 +29,7 @@ SYMBOL TABLE:
0000000000000000 l d LZMA_DEC10 0000000000000000 LZMA_DEC10
0000000000000000 l d LZMA_DEC20 0000000000000000 LZMA_DEC20
0000000000000000 l d CFLUSH 0000000000000000 CFLUSH
0000000000000000 l d ELFMAINY 0000000000000000 ELFMAINY
0000000000000000 l d ELFMAINZe 0000000000000000 ELFMAINZe
0000000000000000 g ELFMAINX 0000000000000000 _start
0000000000000000 g ELFMAINZe 0000000000000000 entry_descr
@ -37,7 +37,7 @@ SYMBOL TABLE:
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
0000000000000000 R_PPC64_REL24 ELFMAINZ+0x000000000000018c
0000000000000000 R_PPC64_REL24 ELFMAINZ+0x000000000000013c
RELOCATION RECORDS FOR [NRV2E]:
OFFSET TYPE VALUE
@ -65,6 +65,4 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
0000000000000074 R_PPC64_REL14 ELFMAINY
00000000000000f8 R_PPC64_REL14 ELFMAINY
0000000000000244 R_PPC64_ADDR32 O_BINFO
00000000000001f4 R_PPC64_ADDR32 O_BINFO

View File

@ -9,59 +9,61 @@ Linker script and memory map
TARGET(elf64-powerpc)
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0xa28
.text 0x00000000001000bc 0xa84
*(.text)
.text 0x00000000001000bc 0x2dc tmp/powerpc64-linux.elf-fold.o
0x0000000000100344 exit
0x000000000010034c readlink
0x0000000000100354 brk
0x000000000010035c close
0x0000000000100364 open
0x000000000010036c munmap
0x0000000000100374 mprotect
0x000000000010037c read
0x0000000000100384 mmap
.text 0x0000000000100398 0x74c tmp/powerpc64-linux.elf-main.o
.text 0x00000000001000bc 0x300 tmp/powerpc64-linux.elf-fold.o
0x00000000001000bc get_page_mask
0x000000000010035c mmap
0x0000000000100374 exit
0x000000000010037c brk
0x0000000000100384 readlink
0x000000000010038c read
0x0000000000100394 open
0x000000000010039c close
0x00000000001003a4 mprotect
0x00000000001003ac munmap
0x00000000001003b4 my_bkpt
.text 0x00000000001003bc 0x784 tmp/powerpc64-linux.elf-main.o
*(.data)
.data 0x0000000000100ae4 0x0 tmp/powerpc64-linux.elf-fold.o
.data 0x0000000000100ae4 0x0 tmp/powerpc64-linux.elf-main.o
.data 0x0000000000100b40 0x0 tmp/powerpc64-linux.elf-fold.o
.data 0x0000000000100b40 0x0 tmp/powerpc64-linux.elf-main.o
.sfpr 0x0000000000100ae4 0xa4
.sfpr 0x0000000000100ae4 0xa4 linker stubs
0x0000000000100ae4 _savegpr0_14
0x0000000000100b0c _savegpr0_24
0x0000000000100b1c _savegpr0_28
0x0000000000100b34 _restgpr0_14
0x0000000000100b5c _restgpr0_24
0x0000000000100b6c _restgpr0_28
.sfpr 0x0000000000100b40 0xa4
.sfpr 0x0000000000100b40 0xa4 linker stubs
0x0000000000100b40 _savegpr0_14
0x0000000000100b68 _savegpr0_24
0x0000000000100b78 _savegpr0_28
0x0000000000100b90 _restgpr0_14
0x0000000000100bb8 _restgpr0_24
0x0000000000100bc8 _restgpr0_28
.glink 0x0000000000100b88 0x0
.glink 0x0000000000100b88 0x0 linker stubs
.glink 0x0000000000100be8 0x0
.glink 0x0000000000100be8 0x0 linker stubs
.eh_frame 0x0000000000100b88 0x0
.eh_frame 0x0000000000100b88 0x0 linker stubs
.eh_frame 0x0000000000100be4 0x0
.eh_frame 0x0000000000100be4 0x0 linker stubs
.rela.dyn 0x0000000000100b88 0x0
.rela.iplt 0x0000000000100b88 0x0 linker stubs
.rela.dyn 0x0000000000100be8 0x0
.rela.iplt 0x0000000000100be8 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 0x0000000000100b88 0x0
.branch_lt 0x0000000000100b88 0x0 linker stubs
.branch_lt 0x0000000000100be8 0x0
.branch_lt 0x0000000000100be8 0x0 linker stubs
.toc 0x0000000000100b88 0x0
.toc 0x0000000000100b88 0x0 tmp/powerpc64-linux.elf-main.o
.toc 0x0000000000100be8 0x0
.toc 0x0000000000100be8 0x0 tmp/powerpc64-linux.elf-main.o
.opd 0x0000000000100b88 0x58
.opd 0x0000000000100b88 0x58 tmp/powerpc64-linux.elf-main.o
0x0000000000100bc8 upx_main
.opd 0x0000000000100be8 0x58
.opd 0x0000000000100be8 0x58 tmp/powerpc64-linux.elf-main.o
0x0000000000100c28 upx_main
.iplt 0x0000000000100be0 0x0
.iplt 0x0000000000100be0 0x0 linker stubs
.iplt 0x0000000000100c40 0x0
.iplt 0x0000000000100c40 0x0 linker stubs
.bss 0x0000000000100be0 0x0
.bss 0x0000000000100be0 0x0 tmp/powerpc64-linux.elf-fold.o
.bss 0x0000000000100be0 0x0 tmp/powerpc64-linux.elf-main.o
.bss 0x0000000000100c40 0x0
.bss 0x0000000000100c40 0x0 tmp/powerpc64-linux.elf-fold.o
.bss 0x0000000000100c40 0x0 tmp/powerpc64-linux.elf-main.o

View File

@ -14,11 +14,10 @@ Idx Name Size VMA LMA File off Algn
9 NRV_TAIL 0000001c 0000000000000000 0000000000000000 00001cbc 2**0 CONTENTS, READONLY
10 CFLUSH 00000024 0000000000000000 0000000000000000 00001cd8 2**0 CONTENTS, READONLY
11 ELFMAINY 00000012 0000000000000000 0000000000000000 00001cfc 2**0 CONTENTS, RELOC, READONLY
12 ELFMAINZ 00000248 0000000000000000 0000000000000000 00001d10 2**2 CONTENTS, RELOC, READONLY
12 ELFMAINZ 000001f8 0000000000000000 0000000000000000 00001d10 2**2 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30
0000000000000000 l d NRV_TAIL 0000000000000000 NRV_TAIL
0000000000000000 l d ELFMAINY 0000000000000000 ELFMAINY
0000000000000000 l d ELFMAINZ 0000000000000000 ELFMAINZ
0000000000000000 l d ELFMAINX 0000000000000000 ELFMAINX
0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD
@ -29,12 +28,13 @@ SYMBOL TABLE:
0000000000000000 l d LZMA_DEC10 0000000000000000 LZMA_DEC10
0000000000000000 l d LZMA_DEC20 0000000000000000 LZMA_DEC20
0000000000000000 l d CFLUSH 0000000000000000 CFLUSH
0000000000000000 l d ELFMAINY 0000000000000000 ELFMAINY
0000000000000000 g ELFMAINX 0000000000000000 _start
0000000000000000 *UND* 0000000000000000 O_BINFO
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
0000000000000000 R_PPC64_REL24 ELFMAINZ+0x000000000000018c
0000000000000000 R_PPC64_REL24 ELFMAINZ+0x000000000000013c
RELOCATION RECORDS FOR [NRV2E]:
OFFSET TYPE VALUE
@ -58,6 +58,4 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
0000000000000074 R_PPC64_REL14 ELFMAINY
00000000000000f8 R_PPC64_REL14 ELFMAINY
0000000000000244 R_PPC64_ADDR32 O_BINFO
00000000000001f4 R_PPC64_ADDR32 O_BINFO

View File

@ -9,59 +9,61 @@ Linker script and memory map
TARGET(elf64-powerpcle)
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0xa00
.text 0x00000000001000bc 0xa80
*(.text)
.text 0x00000000001000bc 0x2b8 tmp/powerpc64le-linux.elf-fold.o
0x0000000000100320 exit
0x0000000000100328 readlink
0x0000000000100330 brk
0x0000000000100338 close
0x0000000000100340 open
0x0000000000100348 munmap
0x0000000000100350 mprotect
0x0000000000100358 read
0x0000000000100360 mmap
.text 0x0000000000100374 0x748 tmp/powerpc64le-linux.elf-main.o
.text 0x00000000001000bc 0x300 tmp/powerpc64le-linux.elf-fold.o
0x00000000001000bc get_page_mask
0x000000000010035c mmap
0x0000000000100374 exit
0x000000000010037c brk
0x0000000000100384 readlink
0x000000000010038c read
0x0000000000100394 open
0x000000000010039c close
0x00000000001003a4 mprotect
0x00000000001003ac munmap
0x00000000001003b4 my_bkpt
.text 0x00000000001003bc 0x780 tmp/powerpc64le-linux.elf-main.o
*(.data)
.data 0x0000000000100abc 0x0 tmp/powerpc64le-linux.elf-fold.o
.data 0x0000000000100abc 0x0 tmp/powerpc64le-linux.elf-main.o
.data 0x0000000000100b3c 0x0 tmp/powerpc64le-linux.elf-fold.o
.data 0x0000000000100b3c 0x0 tmp/powerpc64le-linux.elf-main.o
.sfpr 0x0000000000100abc 0xa4
.sfpr 0x0000000000100abc 0xa4 linker stubs
0x0000000000100abc _savegpr0_14
0x0000000000100ae4 _savegpr0_24
0x0000000000100af4 _savegpr0_28
0x0000000000100b0c _restgpr0_14
0x0000000000100b34 _restgpr0_24
0x0000000000100b44 _restgpr0_28
.sfpr 0x0000000000100b3c 0xa4
.sfpr 0x0000000000100b3c 0xa4 linker stubs
0x0000000000100b3c _savegpr0_14
0x0000000000100b64 _savegpr0_24
0x0000000000100b74 _savegpr0_28
0x0000000000100b8c _restgpr0_14
0x0000000000100bb4 _restgpr0_24
0x0000000000100bc4 _restgpr0_28
.glink 0x0000000000100b60 0x0
.glink 0x0000000000100b60 0x0 linker stubs
.glink 0x0000000000100be0 0x0
.glink 0x0000000000100be0 0x0 linker stubs
.eh_frame 0x0000000000100b60 0x0
.eh_frame 0x0000000000100b60 0x0 linker stubs
.eh_frame 0x0000000000100be0 0x0
.eh_frame 0x0000000000100be0 0x0 linker stubs
.rela.dyn 0x0000000000100b60 0x0
.rela.iplt 0x0000000000100b60 0x0 linker stubs
.rela.dyn 0x0000000000100be0 0x0
.rela.iplt 0x0000000000100be0 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 0x0000000000100b60 0x0
.branch_lt 0x0000000000100b60 0x0 linker stubs
.branch_lt 0x0000000000100be0 0x0
.branch_lt 0x0000000000100be0 0x0 linker stubs
.toc 0x0000000000100b60 0x0
.toc 0x0000000000100b60 0x0 tmp/powerpc64le-linux.elf-main.o
.toc 0x0000000000100be0 0x0
.toc 0x0000000000100be0 0x0 tmp/powerpc64le-linux.elf-main.o
.opd 0x0000000000100b60 0x58
.opd 0x0000000000100b60 0x58 tmp/powerpc64le-linux.elf-main.o
0x0000000000100ba0 upx_main
.opd 0x0000000000100be0 0x58
.opd 0x0000000000100be0 0x58 tmp/powerpc64le-linux.elf-main.o
0x0000000000100c20 upx_main
.iplt 0x0000000000100bb8 0x0
.iplt 0x0000000000100bb8 0x0 linker stubs
.iplt 0x0000000000100c38 0x0
.iplt 0x0000000000100c38 0x0 linker stubs
.bss 0x0000000000100bb8 0x0
.bss 0x0000000000100bb8 0x0 tmp/powerpc64le-linux.elf-fold.o
.bss 0x0000000000100bb8 0x0 tmp/powerpc64le-linux.elf-main.o
.bss 0x0000000000100c38 0x0
.bss 0x0000000000100c38 0x0 tmp/powerpc64le-linux.elf-fold.o
.bss 0x0000000000100c38 0x0 tmp/powerpc64le-linux.elf-main.o