32-bit Android lacks memfd_create, and has varying __NR_ftruncate

https://github.com/upx/upx/issues/700
	modified:   stub/src/i386-linux.elf-so_main.c
	modified:   stub/src/arm.v4a-linux.elf-so_entry.S
	modified:   stub/src/arm.v4a-linux.elf-so_fold.S

	modified:   stub/arm.v4a-linux.elf-so_entry.h
	modified:   stub/arm.v4a-linux.elf-so_fold.h
	modified:   stub/arm.v5a-linux.elf-so_entry.h
	modified:   stub/arm.v5a-linux.elf-so_fold.h
This commit is contained in:
John Reiser 2023-09-02 15:31:32 -07:00 committed by Markus F.X.J. Oberhumer
parent 35dd9cfd22
commit 9331ed39d4
7 changed files with 3691 additions and 3604 deletions

View File

@ -1,5 +1,5 @@
/* arm.v4a-linux.elf-so_entry.h
created from arm.v4a-linux.elf-so_entry.bin, 2286 (0x8ee) bytes
created from arm.v4a-linux.elf-so_entry.bin, 2362 (0x93a) bytes
This file is part of the UPX executable compressor.
@ -31,152 +31,157 @@
*/
#define STUB_ARM_V4A_LINUX_ELF_SO_ENTRY_SIZE 2286
#define STUB_ARM_V4A_LINUX_ELF_SO_ENTRY_ADLER32 0x974aee5d
#define STUB_ARM_V4A_LINUX_ELF_SO_ENTRY_CRC32 0x71fe022f
#define STUB_ARM_V4A_LINUX_ELF_SO_ENTRY_SIZE 2362
#define STUB_ARM_V4A_LINUX_ELF_SO_ENTRY_ADLER32 0xa351fe78
#define STUB_ARM_V4A_LINUX_ELF_SO_ENTRY_CRC32 0xc0ef1f87
unsigned char stub_arm_v4a_linux_elf_so_entry[2286] = {
unsigned char stub_arm_v4a_linux_elf_so_entry[2362] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 1, 0, 40, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 28, 2, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
/* 0x0020 */ 60, 2, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
/* 0x0030 */ 8, 0, 5, 0,120, 71,192, 70, 0, 0,160,225,255, 64, 45,233,
/* 0x0040 */ 8,208, 77,226,254,255,255,235, 13, 80,160,225, 0, 0,158,229,
/* 0x0050 */ 4, 0,133,229, 0, 0, 77,224, 7,208,192,227, 4, 48,133,226,
/* 0x0060 */ 13, 32,160,225, 4, 16,158,229, 12, 0,142,226, 46, 0, 0,235,
/* 0x0070 */ 0, 16,160,227,116, 0,143,226,129,112,160,227, 1,124,135,227,
/* 0x0080 */ 0, 0, 0,239, 0, 96,160,225, 13, 16,160,225, 4, 32,149,229,
/* 0x0090 */ 7,192,160,225, 4,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x00a0 */ 5,208,160,225, 0, 80,160,227, 6, 64,160,225, 2, 48,160,227,
/* 0x00b0 */ 5, 32,160,227, 4, 16,157,229, 0, 0,160,227, 7,192,160,225,
/* 0x00c0 */ 192,112,160,227, 0, 0, 0,239, 12,112,160,225, 0, 0,141,229,
/* 0x00d0 */ 6, 0,160,225, 7,192,160,225, 6,112,160,227, 0, 0, 0,239,
/* 0x00e0 */ 12,112,160,225,200, 0, 79,226, 8, 16,141,226, 0,240,157,229,
/* 0x00f0 */ 117,112,120, 0, 0, 16,129,224, 62, 64, 45,233, 0, 80,224,227,
/* 0x0100 */ 2, 65,160,227, 81, 0, 0,234, 26, 0,189,232, 1, 0, 64,224,
/* 0x0110 */ 3, 32, 66,224, 0, 32,132,229, 0, 64,160,225, 3, 0,160,225,
/* 0x0120 */ 2, 16,131,224, 0, 32,160,227, 7,192,160,225, 2,112,160,227,
/* 0x0130 */ 15,120,135,227, 0, 0, 0,239, 12,112,160,225, 4, 0,160,225,
/* 0x0140 */ 48,128,189,232, 4, 64,148,224, 14,240,160, 17, 1, 64,208,228,
/* 0x0150 */ 4, 64,164,224, 4, 76,176,225, 14,240,160,225, 1, 16,160,227,
/* 0x0160 */ 14,192,160,225, 66, 0, 0,235, 1, 16,177,224, 66, 0, 0,235,
/* 0x0170 */ 74, 0, 0, 58, 12,240,160,225, 1, 48,208,228, 1, 48,194,228,
/* 0x0180 */ 66, 0, 0,235, 79, 0, 0, 42, 72, 0, 0,235, 3, 48, 81,226,
/* 0x0190 */ 0, 16,160,227, 91, 0, 0, 58, 1, 80,208,228, 3, 84,133,225,
/* 0x01a0 */ 5, 80,240,225, 51, 0, 0, 10, 66, 0, 0,235, 1, 16,177,224,
/* 0x01b0 */ 66, 0, 0,235, 1, 16,177,224, 98, 0, 0, 26, 72, 0, 0,235,
/* 0x01c0 */ 2, 16,129,226, 13, 12,117,227, 1, 16,129, 50, 5, 48,210,231,
/* 0x01d0 */ 1, 16, 81,226, 1, 48,194,228,100, 0, 0, 42, 81, 0, 0,234,
/* 0x01e0 */ 3, 0, 0,235, 0, 46,115,121,109,116, 97, 98, 0, 46,115,116,
/* 0x01f0 */ 114,116, 97, 98, 0, 46,115,104,115,116,114,116, 97, 98, 0, 46,
/* 0x0200 */ 114,101,108, 69, 76, 70, 77, 65, 73, 78, 88, 0, 46,114,101,108,
/* 0x0210 */ 69, 76, 70, 77, 65, 73, 78, 90, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0220 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0230 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0240 */ 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0,
/* 0x0250 */ 0, 0, 0, 0, 52, 0, 0, 0,172, 1, 0, 0, 0, 0, 0, 0,
/* 0x0260 */ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0,
/* 0x0270 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,204, 3, 0, 0,
/* 0x0280 */ 136, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0,
/* 0x0290 */ 8, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0,
/* 0x02a0 */ 0, 0, 0, 0,224, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
/* 0x02b0 */ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0,
/* 0x02c0 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 4, 0, 0,
/* 0x02d0 */ 8, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0,
/* 0x02e0 */ 8, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
/* 0x02f0 */ 0, 0, 0, 0,228, 1, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0,
/* 0x0300 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
/* 0x0310 */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 3, 0, 0,
/* 0x0320 */ 80, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0,
/* 0x0330 */ 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
/* 0x0340 */ 0, 0, 0, 0,172, 3, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0,
/* 0x0350 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0360 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0370 */ 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 0, 0,
/* 0x0380 */ 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 1, 0, 0, 0,
/* 0x0390 */ 1, 0, 0, 0, 0, 0, 0, 0, 18, 0, 1, 0, 8, 0, 0, 0,
/* 0x03a0 */ 192, 0, 0, 0,236, 0, 0, 0, 18, 0, 1, 0, 0, 95,115,116,
/* 0x03b0 */ 97,114,116, 0,117, 99,108, 95,110,114,118, 50, 98, 95,100,101,
/* 0x03c0 */ 99,111,109,112,114,101,115,115, 95, 56, 0, 0, 16, 0, 0, 0,
/* 0x03d0 */ 1, 2, 0, 0, 56, 0, 0, 0, 1, 1, 0, 0,208, 0, 0, 0,
/* 0x03e0 */ 1, 1, 0, 0, 48, 1, 0, 0, 1, 1, 0, 0, 56, 1, 0, 0,
/* 0x03f0 */ 1, 1, 0, 0, 60, 1, 0, 0, 1, 1, 0, 0, 76, 1, 0, 0,
/* 0x0400 */ 1, 1, 0, 0, 80, 1, 0, 0, 1, 1, 0, 0, 84, 1, 0, 0,
/* 0x0410 */ 1, 1, 0, 0, 96, 1, 0, 0, 1, 1, 0, 0,112, 1, 0, 0,
/* 0x0420 */ 1, 1, 0, 0,116, 1, 0, 0, 1, 1, 0, 0,124, 1, 0, 0,
/* 0x0430 */ 1, 1, 0, 0,132, 1, 0, 0, 1, 1, 0, 0,136, 1, 0, 0,
/* 0x0440 */ 1, 1, 0, 0,164, 1, 0, 0, 1, 1, 0, 0,168, 1, 0, 0,
/* 0x0450 */ 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,102,105,108,101,
/* 0x0460 */ 32,102,111,114,109, 97,116, 32,101,108,102, 51, 50, 45,108,105,
/* 0x0470 */ 116,116,108,101, 97,114,109, 10, 10, 83,101, 99,116,105,111,110,
/* 0x0480 */ 115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32,
/* 0x0490 */ 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86,
/* 0x04a0 */ 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32,
/* 0x04b0 */ 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103,
/* 0x04c0 */ 110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70,
/* 0x04d0 */ 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, 49, 97, 99, 32,
/* 0x04e0 */ 32, 48, 32, 32, 48, 32, 32, 48, 51, 52, 32, 32, 50, 42, 42, 50,
/* 0x04f0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, 69,
/* 0x0500 */ 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 52, 32,
/* 0x0510 */ 32, 48, 32, 32, 48, 32, 32, 48, 49,101, 48, 32, 32, 50, 42, 42,
/* 0x0520 */ 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66,
/* 0x0530 */ 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48,
/* 0x0540 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65,
/* 0x0550 */ 73, 78, 88, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48,
/* 0x0560 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x0570 */ 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65,
/* 0x0580 */ 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32,
/* 0x0590 */ 32, 32, 32, 70, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,
/* 0x05a0 */ 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 99, 48, 32,
/* 0x05b0 */ 103, 32, 32, 32, 32, 32, 70, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x05c0 */ 32, 48,101, 99, 32,117, 99,108, 95,110,114,118, 50, 98, 95,100,
/* 0x05d0 */ 101, 99,111,109,112,114,101,115,115, 95, 56, 10, 10, 82, 69, 76,
/* 0x05e0 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32,
/* 0x05f0 */ 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10,
/* 0x0600 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32,
/* 0x0610 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69,
/* 0x0620 */ 10, 48, 48, 48, 48, 48, 48, 49, 48, 32, 82, 95, 65, 82, 77, 95,
/* 0x0630 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x0640 */ 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 51, 56, 32, 82, 95,
/* 0x0650 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0660 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48,100,
/* 0x0670 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32,
/* 0x0680 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48,
/* 0x0690 */ 48, 48, 49, 51, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52,
/* 0x06a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x06b0 */ 10, 48, 48, 48, 48, 48, 49, 51, 56, 32, 82, 95, 65, 82, 77, 95,
/* 0x06c0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x06d0 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 51, 99, 32, 82, 95,
/* 0x06e0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x06f0 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 52,
/* 0x0700 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32,
/* 0x0710 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48,
/* 0x0720 */ 48, 48, 49, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52,
/* 0x0730 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x0740 */ 10, 48, 48, 48, 48, 48, 49, 53, 52, 32, 82, 95, 65, 82, 77, 95,
/* 0x0750 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x0760 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 54, 48, 32, 82, 95,
/* 0x0770 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0780 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 55,
/* 0x0790 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32,
/* 0x07a0 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48,
/* 0x07b0 */ 48, 48, 49, 55, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52,
/* 0x07c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x07d0 */ 10, 48, 48, 48, 48, 48, 49, 55, 99, 32, 82, 95, 65, 82, 77, 95,
/* 0x07e0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x07f0 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 56, 52, 32, 82, 95,
/* 0x0800 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0810 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 56,
/* 0x0820 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32,
/* 0x0830 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48,
/* 0x0840 */ 48, 48, 49, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52,
/* 0x0850 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x0860 */ 10, 48, 48, 48, 48, 48, 49, 97, 56, 32, 82, 95, 65, 82, 77, 95,
/* 0x0870 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x0880 */ 65, 73, 78, 88, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
/* 0x0890 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76,
/* 0x08a0 */ 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
/* 0x08b0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x08c0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,
/* 0x08d0 */ 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32,
/* 0x08e0 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10
/* 0x0060 */ 13, 32,160,225, 4, 16,158,229, 12, 0,142,226, 54, 0, 0,235,
/* 0x0070 */ 19, 0, 0,235, 2, 64, 64, 0,192, 1, 0, 0, 47,100,101,118,
/* 0x0080 */ 47,115,104,109, 0, 0, 0, 0, 14, 0,160,225, 6, 0,176,232,
/* 0x0090 */ 5,112,160,227, 0,112,135,227, 0, 0, 0,239, 0, 96,160,225,
/* 0x00a0 */ 13, 16,160,225, 4, 32,149,229, 7,192,160,225, 4,112,160,227,
/* 0x00b0 */ 0, 0, 0,239, 12,112,160,225, 5,208,160,225, 0, 80,160,227,
/* 0x00c0 */ 6, 64,160,225, 2, 48,160,227, 5, 32,160,227, 4, 16,157,229,
/* 0x00d0 */ 0, 0,160,227, 7,192,160,225,192,112,160,227, 0, 0, 0,239,
/* 0x00e0 */ 12,112,160,225, 0, 0,141,229, 6, 0,160,225, 7,192,160,225,
/* 0x00f0 */ 6,112,160,227, 0, 0, 0,239, 12,112,160,225,224, 0, 79,226,
/* 0x0100 */ 8, 16,141,226, 0,240,157,229, 47,100,101,118, 47,115,104,109,
/* 0x0110 */ 0, 0, 0, 0, 0, 16,129,224, 62, 64, 45,233, 0, 80,224,227,
/* 0x0120 */ 2, 65,160,227, 89, 0, 0,234, 26, 0,189,232, 1, 0, 64,224,
/* 0x0130 */ 3, 32, 66,224, 0, 32,132,229, 0, 64,160,225, 3, 0,160,225,
/* 0x0140 */ 2, 16,131,224, 0, 32,160,227, 7,192,160,225, 2,112,160,227,
/* 0x0150 */ 15,120,135,227, 0, 0, 0,239, 12,112,160,225, 4, 0,160,225,
/* 0x0160 */ 48,128,189,232, 4, 64,148,224, 14,240,160, 17, 1, 64,208,228,
/* 0x0170 */ 4, 64,164,224, 4, 76,176,225, 14,240,160,225, 1, 16,160,227,
/* 0x0180 */ 14,192,160,225, 74, 0, 0,235, 1, 16,177,224, 74, 0, 0,235,
/* 0x0190 */ 82, 0, 0, 58, 12,240,160,225, 1, 48,208,228, 1, 48,194,228,
/* 0x01a0 */ 74, 0, 0,235, 87, 0, 0, 42, 80, 0, 0,235, 3, 48, 81,226,
/* 0x01b0 */ 0, 16,160,227, 99, 0, 0, 58, 1, 80,208,228, 3, 84,133,225,
/* 0x01c0 */ 5, 80,240,225, 59, 0, 0, 10, 74, 0, 0,235, 1, 16,177,224,
/* 0x01d0 */ 74, 0, 0,235, 1, 16,177,224,106, 0, 0, 26, 80, 0, 0,235,
/* 0x01e0 */ 2, 16,129,226, 13, 12,117,227, 1, 16,129, 50, 5, 48,210,231,
/* 0x01f0 */ 1, 16, 81,226, 1, 48,194,228,108, 0, 0, 42, 89, 0, 0,234,
/* 0x0200 */ 3, 0, 0,235, 0, 46,115,121,109,116, 97, 98, 0, 46,115,116,
/* 0x0210 */ 114,116, 97, 98, 0, 46,115,104,115,116,114,116, 97, 98, 0, 46,
/* 0x0220 */ 114,101,108, 69, 76, 70, 77, 65, 73, 78, 88, 0, 46,114,101,108,
/* 0x0230 */ 69, 76, 70, 77, 65, 73, 78, 90, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0240 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0250 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0260 */ 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0,
/* 0x0270 */ 0, 0, 0, 0, 52, 0, 0, 0,204, 1, 0, 0, 0, 0, 0, 0,
/* 0x0280 */ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0,
/* 0x0290 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236, 3, 0, 0,
/* 0x02a0 */ 144, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0,
/* 0x02b0 */ 8, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0,
/* 0x02c0 */ 0, 0, 0, 0, 0, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
/* 0x02d0 */ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0,
/* 0x02e0 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 4, 0, 0,
/* 0x02f0 */ 8, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0,
/* 0x0300 */ 8, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
/* 0x0310 */ 0, 0, 0, 0, 4, 2, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0,
/* 0x0320 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
/* 0x0330 */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 3, 0, 0,
/* 0x0340 */ 80, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0,
/* 0x0350 */ 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
/* 0x0360 */ 0, 0, 0, 0,204, 3, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0,
/* 0x0370 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0380 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0390 */ 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 0, 0,
/* 0x03a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 1, 0, 0, 0,
/* 0x03b0 */ 1, 0, 0, 0, 0, 0, 0, 0, 18, 0, 1, 0, 8, 0, 0, 0,
/* 0x03c0 */ 224, 0, 0, 0,236, 0, 0, 0, 18, 0, 1, 0, 0, 95,115,116,
/* 0x03d0 */ 97,114,116, 0,117, 99,108, 95,110,114,118, 50, 98, 95,100,101,
/* 0x03e0 */ 99,111,109,112,114,101,115,115, 95, 56, 0, 0, 16, 0, 0, 0,
/* 0x03f0 */ 1, 2, 0, 0, 56, 0, 0, 0, 1, 1, 0, 0, 60, 0, 0, 0,
/* 0x0400 */ 1, 1, 0, 0,240, 0, 0, 0, 1, 1, 0, 0, 80, 1, 0, 0,
/* 0x0410 */ 1, 1, 0, 0, 88, 1, 0, 0, 1, 1, 0, 0, 92, 1, 0, 0,
/* 0x0420 */ 1, 1, 0, 0,108, 1, 0, 0, 1, 1, 0, 0,112, 1, 0, 0,
/* 0x0430 */ 1, 1, 0, 0,116, 1, 0, 0, 1, 1, 0, 0,128, 1, 0, 0,
/* 0x0440 */ 1, 1, 0, 0,144, 1, 0, 0, 1, 1, 0, 0,148, 1, 0, 0,
/* 0x0450 */ 1, 1, 0, 0,156, 1, 0, 0, 1, 1, 0, 0,164, 1, 0, 0,
/* 0x0460 */ 1, 1, 0, 0,168, 1, 0, 0, 1, 1, 0, 0,196, 1, 0, 0,
/* 0x0470 */ 1, 1, 0, 0,200, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0,
/* 0x0480 */ 1, 1, 0, 0,102,105,108,101, 32,102,111,114,109, 97,116, 32,
/* 0x0490 */ 101,108,102, 51, 50, 45,108,105,116,116,108,101, 97,114,109, 10,
/* 0x04a0 */ 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78,
/* 0x04b0 */ 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,
/* 0x04c0 */ 101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32,
/* 0x04d0 */ 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,
/* 0x04e0 */ 111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115,
/* 0x04f0 */ 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32,
/* 0x0500 */ 32, 32, 32, 48, 49, 99, 99, 32, 32, 48, 32, 32, 48, 32, 32, 48,
/* 0x0510 */ 51, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x0520 */ 84, 83, 10, 32, 32, 49, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32,
/* 0x0530 */ 32, 32, 32, 32, 32, 48, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48,
/* 0x0540 */ 50, 48, 48, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69,
/* 0x0550 */ 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69,
/* 0x0560 */ 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,
/* 0x0570 */ 100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 69, 76,
/* 0x0580 */ 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x0590 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90,
/* 0x05a0 */ 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48,
/* 0x05b0 */ 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 69, 76, 70,
/* 0x05c0 */ 77, 65, 73, 78, 88, 32, 48, 32, 95,115,116, 97,114,116, 10, 48,
/* 0x05d0 */ 48, 48, 48, 48, 48,101, 48, 32,103, 32, 32, 32, 32, 32, 70, 32,
/* 0x05e0 */ 69, 76, 70, 77, 65, 73, 78, 88, 32, 48,101, 99, 32,117, 99,108,
/* 0x05f0 */ 95,110,114,118, 50, 98, 95,100,101, 99,111,109,112,114,101,115,
/* 0x0600 */ 115, 95, 56, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32,
/* 0x0610 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70,
/* 0x0620 */ 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32,
/* 0x0630 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0640 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 49,
/* 0x0650 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32,
/* 0x0660 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48,
/* 0x0670 */ 48, 48, 48, 51, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52,
/* 0x0680 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x0690 */ 10, 48, 48, 48, 48, 48, 48, 51, 99, 32, 82, 95, 65, 82, 77, 95,
/* 0x06a0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x06b0 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48,102, 48, 32, 82, 95,
/* 0x06c0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x06d0 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 53,
/* 0x06e0 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32,
/* 0x06f0 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48,
/* 0x0700 */ 48, 48, 49, 53, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52,
/* 0x0710 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x0720 */ 10, 48, 48, 48, 48, 48, 49, 53, 99, 32, 82, 95, 65, 82, 77, 95,
/* 0x0730 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x0740 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 54, 99, 32, 82, 95,
/* 0x0750 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0760 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 55,
/* 0x0770 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32,
/* 0x0780 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48,
/* 0x0790 */ 48, 48, 49, 55, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52,
/* 0x07a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x07b0 */ 10, 48, 48, 48, 48, 48, 49, 56, 48, 32, 82, 95, 65, 82, 77, 95,
/* 0x07c0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x07d0 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 57, 48, 32, 82, 95,
/* 0x07e0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x07f0 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 57,
/* 0x0800 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32,
/* 0x0810 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48,
/* 0x0820 */ 48, 48, 49, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52,
/* 0x0830 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x0840 */ 10, 48, 48, 48, 48, 48, 49, 97, 52, 32, 82, 95, 65, 82, 77, 95,
/* 0x0850 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x0860 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 97, 56, 32, 82, 95,
/* 0x0870 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0880 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 99,
/* 0x0890 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32,
/* 0x08a0 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48,
/* 0x08b0 */ 48, 48, 49, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52,
/* 0x08c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x08d0 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
/* 0x08e0 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73,
/* 0x08f0 */ 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89,
/* 0x0900 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0910 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82,
/* 0x0920 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32,
/* 0x0930 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 10
};

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/* arm.v5a-linux.elf-so_entry.h
created from arm.v5a-linux.elf-so_entry.bin, 2286 (0x8ee) bytes
created from arm.v5a-linux.elf-so_entry.bin, 2362 (0x93a) bytes
This file is part of the UPX executable compressor.
@ -31,152 +31,157 @@
*/
#define STUB_ARM_V5A_LINUX_ELF_SO_ENTRY_SIZE 2286
#define STUB_ARM_V5A_LINUX_ELF_SO_ENTRY_ADLER32 0x974aee5d
#define STUB_ARM_V5A_LINUX_ELF_SO_ENTRY_CRC32 0x71fe022f
#define STUB_ARM_V5A_LINUX_ELF_SO_ENTRY_SIZE 2362
#define STUB_ARM_V5A_LINUX_ELF_SO_ENTRY_ADLER32 0xa351fe78
#define STUB_ARM_V5A_LINUX_ELF_SO_ENTRY_CRC32 0xc0ef1f87
unsigned char stub_arm_v5a_linux_elf_so_entry[2286] = {
unsigned char stub_arm_v5a_linux_elf_so_entry[2362] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 1, 0, 40, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 28, 2, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
/* 0x0020 */ 60, 2, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
/* 0x0030 */ 8, 0, 5, 0,120, 71,192, 70, 0, 0,160,225,255, 64, 45,233,
/* 0x0040 */ 8,208, 77,226,254,255,255,235, 13, 80,160,225, 0, 0,158,229,
/* 0x0050 */ 4, 0,133,229, 0, 0, 77,224, 7,208,192,227, 4, 48,133,226,
/* 0x0060 */ 13, 32,160,225, 4, 16,158,229, 12, 0,142,226, 46, 0, 0,235,
/* 0x0070 */ 0, 16,160,227,116, 0,143,226,129,112,160,227, 1,124,135,227,
/* 0x0080 */ 0, 0, 0,239, 0, 96,160,225, 13, 16,160,225, 4, 32,149,229,
/* 0x0090 */ 7,192,160,225, 4,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x00a0 */ 5,208,160,225, 0, 80,160,227, 6, 64,160,225, 2, 48,160,227,
/* 0x00b0 */ 5, 32,160,227, 4, 16,157,229, 0, 0,160,227, 7,192,160,225,
/* 0x00c0 */ 192,112,160,227, 0, 0, 0,239, 12,112,160,225, 0, 0,141,229,
/* 0x00d0 */ 6, 0,160,225, 7,192,160,225, 6,112,160,227, 0, 0, 0,239,
/* 0x00e0 */ 12,112,160,225,200, 0, 79,226, 8, 16,141,226, 0,240,157,229,
/* 0x00f0 */ 117,112,120, 0, 0, 16,129,224, 62, 64, 45,233, 0, 80,224,227,
/* 0x0100 */ 2, 65,160,227, 81, 0, 0,234, 26, 0,189,232, 1, 0, 64,224,
/* 0x0110 */ 3, 32, 66,224, 0, 32,132,229, 0, 64,160,225, 3, 0,160,225,
/* 0x0120 */ 2, 16,131,224, 0, 32,160,227, 7,192,160,225, 2,112,160,227,
/* 0x0130 */ 15,120,135,227, 0, 0, 0,239, 12,112,160,225, 4, 0,160,225,
/* 0x0140 */ 48,128,189,232, 4, 64,148,224, 14,240,160, 17, 1, 64,208,228,
/* 0x0150 */ 4, 64,164,224, 4, 76,176,225, 14,240,160,225, 1, 16,160,227,
/* 0x0160 */ 14,192,160,225, 66, 0, 0,235, 1, 16,177,224, 66, 0, 0,235,
/* 0x0170 */ 74, 0, 0, 58, 12,240,160,225, 1, 48,208,228, 1, 48,194,228,
/* 0x0180 */ 66, 0, 0,235, 79, 0, 0, 42, 72, 0, 0,235, 3, 48, 81,226,
/* 0x0190 */ 0, 16,160,227, 91, 0, 0, 58, 1, 80,208,228, 3, 84,133,225,
/* 0x01a0 */ 5, 80,240,225, 51, 0, 0, 10, 66, 0, 0,235, 1, 16,177,224,
/* 0x01b0 */ 66, 0, 0,235, 1, 16,177,224, 98, 0, 0, 26, 72, 0, 0,235,
/* 0x01c0 */ 2, 16,129,226, 13, 12,117,227, 1, 16,129, 50, 5, 48,210,231,
/* 0x01d0 */ 1, 16, 81,226, 1, 48,194,228,100, 0, 0, 42, 81, 0, 0,234,
/* 0x01e0 */ 3, 0, 0,235, 0, 46,115,121,109,116, 97, 98, 0, 46,115,116,
/* 0x01f0 */ 114,116, 97, 98, 0, 46,115,104,115,116,114,116, 97, 98, 0, 46,
/* 0x0200 */ 114,101,108, 69, 76, 70, 77, 65, 73, 78, 88, 0, 46,114,101,108,
/* 0x0210 */ 69, 76, 70, 77, 65, 73, 78, 90, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0220 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0230 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0240 */ 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0,
/* 0x0250 */ 0, 0, 0, 0, 52, 0, 0, 0,172, 1, 0, 0, 0, 0, 0, 0,
/* 0x0260 */ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0,
/* 0x0270 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,204, 3, 0, 0,
/* 0x0280 */ 136, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0,
/* 0x0290 */ 8, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0,
/* 0x02a0 */ 0, 0, 0, 0,224, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
/* 0x02b0 */ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0,
/* 0x02c0 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 4, 0, 0,
/* 0x02d0 */ 8, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0,
/* 0x02e0 */ 8, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
/* 0x02f0 */ 0, 0, 0, 0,228, 1, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0,
/* 0x0300 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
/* 0x0310 */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 3, 0, 0,
/* 0x0320 */ 80, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0,
/* 0x0330 */ 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
/* 0x0340 */ 0, 0, 0, 0,172, 3, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0,
/* 0x0350 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0360 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0370 */ 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 0, 0,
/* 0x0380 */ 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 1, 0, 0, 0,
/* 0x0390 */ 1, 0, 0, 0, 0, 0, 0, 0, 18, 0, 1, 0, 8, 0, 0, 0,
/* 0x03a0 */ 192, 0, 0, 0,236, 0, 0, 0, 18, 0, 1, 0, 0, 95,115,116,
/* 0x03b0 */ 97,114,116, 0,117, 99,108, 95,110,114,118, 50, 98, 95,100,101,
/* 0x03c0 */ 99,111,109,112,114,101,115,115, 95, 56, 0, 0, 16, 0, 0, 0,
/* 0x03d0 */ 1, 2, 0, 0, 56, 0, 0, 0, 1, 1, 0, 0,208, 0, 0, 0,
/* 0x03e0 */ 1, 1, 0, 0, 48, 1, 0, 0, 1, 1, 0, 0, 56, 1, 0, 0,
/* 0x03f0 */ 1, 1, 0, 0, 60, 1, 0, 0, 1, 1, 0, 0, 76, 1, 0, 0,
/* 0x0400 */ 1, 1, 0, 0, 80, 1, 0, 0, 1, 1, 0, 0, 84, 1, 0, 0,
/* 0x0410 */ 1, 1, 0, 0, 96, 1, 0, 0, 1, 1, 0, 0,112, 1, 0, 0,
/* 0x0420 */ 1, 1, 0, 0,116, 1, 0, 0, 1, 1, 0, 0,124, 1, 0, 0,
/* 0x0430 */ 1, 1, 0, 0,132, 1, 0, 0, 1, 1, 0, 0,136, 1, 0, 0,
/* 0x0440 */ 1, 1, 0, 0,164, 1, 0, 0, 1, 1, 0, 0,168, 1, 0, 0,
/* 0x0450 */ 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,102,105,108,101,
/* 0x0460 */ 32,102,111,114,109, 97,116, 32,101,108,102, 51, 50, 45,108,105,
/* 0x0470 */ 116,116,108,101, 97,114,109, 10, 10, 83,101, 99,116,105,111,110,
/* 0x0480 */ 115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32,
/* 0x0490 */ 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86,
/* 0x04a0 */ 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32,
/* 0x04b0 */ 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103,
/* 0x04c0 */ 110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70,
/* 0x04d0 */ 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, 49, 97, 99, 32,
/* 0x04e0 */ 32, 48, 32, 32, 48, 32, 32, 48, 51, 52, 32, 32, 50, 42, 42, 50,
/* 0x04f0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, 69,
/* 0x0500 */ 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 52, 32,
/* 0x0510 */ 32, 48, 32, 32, 48, 32, 32, 48, 49,101, 48, 32, 32, 50, 42, 42,
/* 0x0520 */ 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66,
/* 0x0530 */ 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48,
/* 0x0540 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65,
/* 0x0550 */ 73, 78, 88, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48,
/* 0x0560 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x0570 */ 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65,
/* 0x0580 */ 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32,
/* 0x0590 */ 32, 32, 32, 70, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,
/* 0x05a0 */ 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 99, 48, 32,
/* 0x05b0 */ 103, 32, 32, 32, 32, 32, 70, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x05c0 */ 32, 48,101, 99, 32,117, 99,108, 95,110,114,118, 50, 98, 95,100,
/* 0x05d0 */ 101, 99,111,109,112,114,101,115,115, 95, 56, 10, 10, 82, 69, 76,
/* 0x05e0 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32,
/* 0x05f0 */ 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10,
/* 0x0600 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32,
/* 0x0610 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69,
/* 0x0620 */ 10, 48, 48, 48, 48, 48, 48, 49, 48, 32, 82, 95, 65, 82, 77, 95,
/* 0x0630 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x0640 */ 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 51, 56, 32, 82, 95,
/* 0x0650 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0660 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48,100,
/* 0x0670 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32,
/* 0x0680 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48,
/* 0x0690 */ 48, 48, 49, 51, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52,
/* 0x06a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x06b0 */ 10, 48, 48, 48, 48, 48, 49, 51, 56, 32, 82, 95, 65, 82, 77, 95,
/* 0x06c0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x06d0 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 51, 99, 32, 82, 95,
/* 0x06e0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x06f0 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 52,
/* 0x0700 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32,
/* 0x0710 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48,
/* 0x0720 */ 48, 48, 49, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52,
/* 0x0730 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x0740 */ 10, 48, 48, 48, 48, 48, 49, 53, 52, 32, 82, 95, 65, 82, 77, 95,
/* 0x0750 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x0760 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 54, 48, 32, 82, 95,
/* 0x0770 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0780 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 55,
/* 0x0790 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32,
/* 0x07a0 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48,
/* 0x07b0 */ 48, 48, 49, 55, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52,
/* 0x07c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x07d0 */ 10, 48, 48, 48, 48, 48, 49, 55, 99, 32, 82, 95, 65, 82, 77, 95,
/* 0x07e0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x07f0 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 56, 52, 32, 82, 95,
/* 0x0800 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0810 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 56,
/* 0x0820 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32,
/* 0x0830 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48,
/* 0x0840 */ 48, 48, 49, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52,
/* 0x0850 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x0860 */ 10, 48, 48, 48, 48, 48, 49, 97, 56, 32, 82, 95, 65, 82, 77, 95,
/* 0x0870 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x0880 */ 65, 73, 78, 88, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
/* 0x0890 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76,
/* 0x08a0 */ 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
/* 0x08b0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x08c0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,
/* 0x08d0 */ 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32,
/* 0x08e0 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10
/* 0x0060 */ 13, 32,160,225, 4, 16,158,229, 12, 0,142,226, 54, 0, 0,235,
/* 0x0070 */ 19, 0, 0,235, 2, 64, 64, 0,192, 1, 0, 0, 47,100,101,118,
/* 0x0080 */ 47,115,104,109, 0, 0, 0, 0, 14, 0,160,225, 6, 0,176,232,
/* 0x0090 */ 5,112,160,227, 0,112,135,227, 0, 0, 0,239, 0, 96,160,225,
/* 0x00a0 */ 13, 16,160,225, 4, 32,149,229, 7,192,160,225, 4,112,160,227,
/* 0x00b0 */ 0, 0, 0,239, 12,112,160,225, 5,208,160,225, 0, 80,160,227,
/* 0x00c0 */ 6, 64,160,225, 2, 48,160,227, 5, 32,160,227, 4, 16,157,229,
/* 0x00d0 */ 0, 0,160,227, 7,192,160,225,192,112,160,227, 0, 0, 0,239,
/* 0x00e0 */ 12,112,160,225, 0, 0,141,229, 6, 0,160,225, 7,192,160,225,
/* 0x00f0 */ 6,112,160,227, 0, 0, 0,239, 12,112,160,225,224, 0, 79,226,
/* 0x0100 */ 8, 16,141,226, 0,240,157,229, 47,100,101,118, 47,115,104,109,
/* 0x0110 */ 0, 0, 0, 0, 0, 16,129,224, 62, 64, 45,233, 0, 80,224,227,
/* 0x0120 */ 2, 65,160,227, 89, 0, 0,234, 26, 0,189,232, 1, 0, 64,224,
/* 0x0130 */ 3, 32, 66,224, 0, 32,132,229, 0, 64,160,225, 3, 0,160,225,
/* 0x0140 */ 2, 16,131,224, 0, 32,160,227, 7,192,160,225, 2,112,160,227,
/* 0x0150 */ 15,120,135,227, 0, 0, 0,239, 12,112,160,225, 4, 0,160,225,
/* 0x0160 */ 48,128,189,232, 4, 64,148,224, 14,240,160, 17, 1, 64,208,228,
/* 0x0170 */ 4, 64,164,224, 4, 76,176,225, 14,240,160,225, 1, 16,160,227,
/* 0x0180 */ 14,192,160,225, 74, 0, 0,235, 1, 16,177,224, 74, 0, 0,235,
/* 0x0190 */ 82, 0, 0, 58, 12,240,160,225, 1, 48,208,228, 1, 48,194,228,
/* 0x01a0 */ 74, 0, 0,235, 87, 0, 0, 42, 80, 0, 0,235, 3, 48, 81,226,
/* 0x01b0 */ 0, 16,160,227, 99, 0, 0, 58, 1, 80,208,228, 3, 84,133,225,
/* 0x01c0 */ 5, 80,240,225, 59, 0, 0, 10, 74, 0, 0,235, 1, 16,177,224,
/* 0x01d0 */ 74, 0, 0,235, 1, 16,177,224,106, 0, 0, 26, 80, 0, 0,235,
/* 0x01e0 */ 2, 16,129,226, 13, 12,117,227, 1, 16,129, 50, 5, 48,210,231,
/* 0x01f0 */ 1, 16, 81,226, 1, 48,194,228,108, 0, 0, 42, 89, 0, 0,234,
/* 0x0200 */ 3, 0, 0,235, 0, 46,115,121,109,116, 97, 98, 0, 46,115,116,
/* 0x0210 */ 114,116, 97, 98, 0, 46,115,104,115,116,114,116, 97, 98, 0, 46,
/* 0x0220 */ 114,101,108, 69, 76, 70, 77, 65, 73, 78, 88, 0, 46,114,101,108,
/* 0x0230 */ 69, 76, 70, 77, 65, 73, 78, 90, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0240 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0250 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0260 */ 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0,
/* 0x0270 */ 0, 0, 0, 0, 52, 0, 0, 0,204, 1, 0, 0, 0, 0, 0, 0,
/* 0x0280 */ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0,
/* 0x0290 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236, 3, 0, 0,
/* 0x02a0 */ 144, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0,
/* 0x02b0 */ 8, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0,
/* 0x02c0 */ 0, 0, 0, 0, 0, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
/* 0x02d0 */ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0,
/* 0x02e0 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 4, 0, 0,
/* 0x02f0 */ 8, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0,
/* 0x0300 */ 8, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
/* 0x0310 */ 0, 0, 0, 0, 4, 2, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0,
/* 0x0320 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
/* 0x0330 */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 3, 0, 0,
/* 0x0340 */ 80, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0,
/* 0x0350 */ 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
/* 0x0360 */ 0, 0, 0, 0,204, 3, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0,
/* 0x0370 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0380 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0390 */ 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 0, 0,
/* 0x03a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 1, 0, 0, 0,
/* 0x03b0 */ 1, 0, 0, 0, 0, 0, 0, 0, 18, 0, 1, 0, 8, 0, 0, 0,
/* 0x03c0 */ 224, 0, 0, 0,236, 0, 0, 0, 18, 0, 1, 0, 0, 95,115,116,
/* 0x03d0 */ 97,114,116, 0,117, 99,108, 95,110,114,118, 50, 98, 95,100,101,
/* 0x03e0 */ 99,111,109,112,114,101,115,115, 95, 56, 0, 0, 16, 0, 0, 0,
/* 0x03f0 */ 1, 2, 0, 0, 56, 0, 0, 0, 1, 1, 0, 0, 60, 0, 0, 0,
/* 0x0400 */ 1, 1, 0, 0,240, 0, 0, 0, 1, 1, 0, 0, 80, 1, 0, 0,
/* 0x0410 */ 1, 1, 0, 0, 88, 1, 0, 0, 1, 1, 0, 0, 92, 1, 0, 0,
/* 0x0420 */ 1, 1, 0, 0,108, 1, 0, 0, 1, 1, 0, 0,112, 1, 0, 0,
/* 0x0430 */ 1, 1, 0, 0,116, 1, 0, 0, 1, 1, 0, 0,128, 1, 0, 0,
/* 0x0440 */ 1, 1, 0, 0,144, 1, 0, 0, 1, 1, 0, 0,148, 1, 0, 0,
/* 0x0450 */ 1, 1, 0, 0,156, 1, 0, 0, 1, 1, 0, 0,164, 1, 0, 0,
/* 0x0460 */ 1, 1, 0, 0,168, 1, 0, 0, 1, 1, 0, 0,196, 1, 0, 0,
/* 0x0470 */ 1, 1, 0, 0,200, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0,
/* 0x0480 */ 1, 1, 0, 0,102,105,108,101, 32,102,111,114,109, 97,116, 32,
/* 0x0490 */ 101,108,102, 51, 50, 45,108,105,116,116,108,101, 97,114,109, 10,
/* 0x04a0 */ 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78,
/* 0x04b0 */ 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,
/* 0x04c0 */ 101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32,
/* 0x04d0 */ 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,
/* 0x04e0 */ 111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115,
/* 0x04f0 */ 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32,
/* 0x0500 */ 32, 32, 32, 48, 49, 99, 99, 32, 32, 48, 32, 32, 48, 32, 32, 48,
/* 0x0510 */ 51, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x0520 */ 84, 83, 10, 32, 32, 49, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32,
/* 0x0530 */ 32, 32, 32, 32, 32, 48, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48,
/* 0x0540 */ 50, 48, 48, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69,
/* 0x0550 */ 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69,
/* 0x0560 */ 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,
/* 0x0570 */ 100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 69, 76,
/* 0x0580 */ 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x0590 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90,
/* 0x05a0 */ 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48,
/* 0x05b0 */ 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 69, 76, 70,
/* 0x05c0 */ 77, 65, 73, 78, 88, 32, 48, 32, 95,115,116, 97,114,116, 10, 48,
/* 0x05d0 */ 48, 48, 48, 48, 48,101, 48, 32,103, 32, 32, 32, 32, 32, 70, 32,
/* 0x05e0 */ 69, 76, 70, 77, 65, 73, 78, 88, 32, 48,101, 99, 32,117, 99,108,
/* 0x05f0 */ 95,110,114,118, 50, 98, 95,100,101, 99,111,109,112,114,101,115,
/* 0x0600 */ 115, 95, 56, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32,
/* 0x0610 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70,
/* 0x0620 */ 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32,
/* 0x0630 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0640 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 49,
/* 0x0650 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32,
/* 0x0660 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48,
/* 0x0670 */ 48, 48, 48, 51, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52,
/* 0x0680 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x0690 */ 10, 48, 48, 48, 48, 48, 48, 51, 99, 32, 82, 95, 65, 82, 77, 95,
/* 0x06a0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x06b0 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48,102, 48, 32, 82, 95,
/* 0x06c0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x06d0 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 53,
/* 0x06e0 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32,
/* 0x06f0 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48,
/* 0x0700 */ 48, 48, 49, 53, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52,
/* 0x0710 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x0720 */ 10, 48, 48, 48, 48, 48, 49, 53, 99, 32, 82, 95, 65, 82, 77, 95,
/* 0x0730 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x0740 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 54, 99, 32, 82, 95,
/* 0x0750 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0760 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 55,
/* 0x0770 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32,
/* 0x0780 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48,
/* 0x0790 */ 48, 48, 49, 55, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52,
/* 0x07a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x07b0 */ 10, 48, 48, 48, 48, 48, 49, 56, 48, 32, 82, 95, 65, 82, 77, 95,
/* 0x07c0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x07d0 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 57, 48, 32, 82, 95,
/* 0x07e0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x07f0 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 57,
/* 0x0800 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32,
/* 0x0810 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48,
/* 0x0820 */ 48, 48, 49, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52,
/* 0x0830 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x0840 */ 10, 48, 48, 48, 48, 48, 49, 97, 52, 32, 82, 95, 65, 82, 77, 95,
/* 0x0850 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x0860 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 97, 56, 32, 82, 95,
/* 0x0870 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0880 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 99,
/* 0x0890 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32,
/* 0x08a0 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48,
/* 0x08b0 */ 48, 48, 49, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52,
/* 0x08c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x08d0 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
/* 0x08e0 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73,
/* 0x08f0 */ 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89,
/* 0x0900 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0910 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82,
/* 0x0920 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32,
/* 0x0930 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 10
};

File diff suppressed because it is too large Load Diff

View File

@ -67,6 +67,7 @@ PAGE_SHIFT= 12
PAGE_MASK= (~0<<PAGE_SHIFT)
PAGE_SIZE= -PAGE_MASK
__NR_open= 5 + __NR_SYSCALL_BASE
__NR_close= 6 + __NR_SYSCALL_BASE
__NR_exit = 1 + __NR_SYSCALL_BASE
__NR_memfd_create= 0x181 + __NR_SYSCALL_BASE // 385
@ -168,16 +169,25 @@ L70_ret:
.unreq foldi // busy: r5
bl f_decompress
mov arg2,#0
adr arg1,str_upx
mfd .req r6 // busy: r6,r5
do_sys7t2 __NR_memfd_create; mov mfd,r0
O_RDWR= 2
O_DIRECTORY= 040000
O_TMPFILE= 020000000
bl L110
.word O_RDWR | O_DIRECTORY | O_TMPFILE
.word 0700
.asciz "/dev/shm"; .balign 4
L110:
mov r0,lr
ldmia r0!,{r1,r2}
do_sys7t2 __NR_open; mov mfd,r0
mov arg2,sp
ldr arg3,[old_sp,#F_LENU]
do_sys __NR_write
mov sp,old_sp // de-alloca
.unreq old_sp // busy: r6
.unreq old_sp // busy: r6(mfd)
mov arg6,#0 // beginning of file
mov arg5,mfd
@ -195,8 +205,8 @@ L70_ret:
add r1,sp,#F_ARGC
ldr pc,[sp, #F_ADRU] // invoke folded code
str_upx:
.asciz "upx"
devshm:
.asciz "/dev/shm"; .balign 4
f_decompress:
#define LINUX_ARM_CACHEFLUSH 1

View File

@ -127,6 +127,7 @@ __NR_write = 4 + __NR_SYSCALL_BASE
__NR_open = 5 + __NR_SYSCALL_BASE
__NR_close = 6 + __NR_SYSCALL_BASE
__NR_unlink= 10 + __NR_SYSCALL_BASE
__NR_lseek= 19 + __NR_SYSCALL_BASE
__NR_getpid= 20 + __NR_SYSCALL_BASE
__NR_brk = 45 + __NR_SYSCALL_BASE
__NR_readlink= 85 + __NR_SYSCALL_BASE // 0x55
@ -155,10 +156,12 @@ read:
do_sys __NR_read; ret
Pwrite: .globl Pwrite
//int3
write: .globl write
do_sys __NR_write; ret
lseek: .globl lseek
do_sys __NR_lseek; ret
.globl open
open:
do_sys __NR_open; ret
@ -189,6 +192,21 @@ ftruncate: .globl ftruncate
memfd_create: .globl memfd_create
do_sys7t2 __NR_memfd_create; ret
O_RDWR= 2
O_DIRECTORY= 040000
O_TMPFILE= 020000000
.balign 4
table3:
.word O_RDWR | O_DIRECTORY | O_TMPFILE
.word 0700
.asciz "/dev/shm"; .balign 4
upxfd_create: .globl upxfd_create
adr r0,table3
ldmia r0!,{r1,r2}
do_sys7t2 __NR_open
ret
// Sometimes Linux enforces page-aligned address
Pprotect: .globl Pprotect
ldr r12,m_off4k

View File

@ -297,6 +297,9 @@ make_hatch_i386(
}
#elif defined(__arm__) /*}{*/
extern unsigned get_sys_munmap(void);
extern int upxfd_create(void); // early 32-bit Android lacks memfd_create
extern size_t lseek(int fd, size_t offset, int whence);
#define SEEK_SET 0
static void *
make_hatch_arm32(
@ -323,7 +326,7 @@ make_hatch_arm32(
__clear_cache(&hatch[0], &hatch[2]);
}
else { // Does not fit at hi end of .text, so must use a new page "permanently"
int mfd = memfd_create(addr_string("upx"), 0); // the directory entry
int mfd = upxfd_create(); // the directory entry
write(mfd, &code, 2*4);
hatch = Pmap(0, 2*4, PROT_READ|PROT_EXEC, MAP_SHARED, mfd, 0);
close(mfd);
@ -551,7 +554,11 @@ upx_so_main( // returns &escape_hatch
DPRINTF("base=%%p\\n", base);
if (phdr->p_flags & PF_X) {
#if defined(__arm__) //{
int mfd = upxfd_create();
#else //}{
int mfd = memfd_create(addr_string("upx"), 0);
#endif //}
unsigned mfd_len = 0ul - page_mask;
Pwrite(mfd, elf_tmp, binfo->sz_unc); // de-compressed Elf_Ehdr and Elf_Phdrs
Pwrite(mfd, binfo->sz_unc + va_load, mfd_len - binfo->sz_unc); // rest of 1st page
@ -602,8 +609,21 @@ upx_so_main( // returns &escape_hatch
// Cannot set PROT_EXEC except via mmap() into a region (Linux "vma")
// that has never had PROT_WRITE. So use a Linux-only "memory file"
// to hold the contents.
#if defined(__arm__) //{ Emulate: Android "ABI" has inconsistent __NR_ftruncate.
mfd = upxfd_create(); // anonymous file in /dev/shm with 0700 permission
size_t goal = x1.size;
while (0 < goal) { // /dev/shm limits to 8KiB at a time!!
ssize_t len = Pwrite(mfd, x1.buf, goal);
if (len < 0) {
break; // give up: will SIGSEGV or SIGBUS later
}
goal -= len;
}
lseek(mfd, 0, SEEK_SET);
#else //}{
mfd = memfd_create(addr_string("upx"), 0); // the directory entry
ftruncate(mfd, x1.size); // Allocate the pages in the file.
#endif //}
Pwrite(mfd, x1.buf, frag); // Save lo fragment of contents on first page.
Punmap(x1.buf, x1.size);
mfd_addr = Pmap(x1.buf, x1.size, PROT_READ|PROT_WRITE, MAP_FIXED|MAP_SHARED, mfd, 0);