Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d767332943 |
@@ -633,9 +633,9 @@ jobs:
|
|||||||
- { zig_target: x86_64-windows-gnu }
|
- { zig_target: x86_64-windows-gnu }
|
||||||
name: ${{ format('zigcc {0} {1}', matrix.zig_target, matrix.zig_pic) }}
|
name: ${{ format('zigcc {0} {1}', matrix.zig_target, matrix.zig_pic) }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: ${{ matrix.container || 'alpine:3.22' }}
|
container: ${{ matrix.container || 'alpine:3.23' }}
|
||||||
env:
|
env:
|
||||||
container: ${{ matrix.container || 'alpine:3.22' }}
|
container: ${{ matrix.container || 'alpine:3.23' }}
|
||||||
UPX_CONFIG_HAVE_WORKING_BUILD_RPATH: ''
|
UPX_CONFIG_HAVE_WORKING_BUILD_RPATH: ''
|
||||||
# for zig-cc wrapper scripts (see below):
|
# for zig-cc wrapper scripts (see below):
|
||||||
ZIG_CPPFLAGS: -DUPX_DOCTEST_CONFIG_MULTITHREADING
|
ZIG_CPPFLAGS: -DUPX_DOCTEST_CONFIG_MULTITHREADING
|
||||||
|
|||||||
-121
@@ -1,121 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import random
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
def random_string(length=4):
|
|
||||||
import random, string
|
|
||||||
return ''.join(random.choices(string.ascii_uppercase + string.digits, k=length))
|
|
||||||
|
|
||||||
def modify_upx_magic(data: bytearray) -> bytearray:
|
|
||||||
pos = data.find(b'UPX!')
|
|
||||||
if pos != -1:
|
|
||||||
new_magic = random_string(4).encode('ascii')
|
|
||||||
print(f"[+] UPX! → {new_magic.decode()}")
|
|
||||||
data[pos:pos+4] = new_magic
|
|
||||||
else:
|
|
||||||
print("[i] UPX! magic not found (maybe already modified)")
|
|
||||||
return data
|
|
||||||
|
|
||||||
def rename_upx_sections(data: bytearray):
|
|
||||||
# Find PE offset
|
|
||||||
if len(data) < 0x40:
|
|
||||||
return data, False
|
|
||||||
pe_offset = int.from_bytes(data[0x3C:0x40], 'little')
|
|
||||||
if data[pe_offset:pe_offset+4] != b'PE\x00\x00':
|
|
||||||
print("[-] Not a valid PE file")
|
|
||||||
return data, False
|
|
||||||
|
|
||||||
num_sections = int.from_bytes(data[pe_offset + 6:pe_offset + 8], 'little')
|
|
||||||
size_of_optional_header = int.from_bytes(data[pe_offset + 20:pe_offset + 22], 'little')
|
|
||||||
section_table_offset = pe_offset + 24 + size_of_optional_header
|
|
||||||
|
|
||||||
replacements = {
|
|
||||||
b'UPX0': b'.text\x00\x00\x00',
|
|
||||||
b'UPX1': b'.data\x00\x00\x00',
|
|
||||||
b'UPX2': b'.rdata\x00\x00',
|
|
||||||
}
|
|
||||||
|
|
||||||
modified = False
|
|
||||||
for i in range(num_sections):
|
|
||||||
sec_offset = section_table_offset + i * 40
|
|
||||||
sec_name_raw = data[sec_offset:sec_offset + 8]
|
|
||||||
# Convert to immutable bytes for dict lookup
|
|
||||||
sec_name = bytes(sec_name_raw.split(b'\x00', 1)[0])
|
|
||||||
|
|
||||||
if sec_name in replacements:
|
|
||||||
new_name = replacements[sec_name]
|
|
||||||
old_name = sec_name.decode(errors='ignore')
|
|
||||||
print(f"[+] Section '{old_name}' → '{new_name.split(b'\x00')[0].decode()}'")
|
|
||||||
data[sec_offset:sec_offset + 8] = new_name
|
|
||||||
modified = True
|
|
||||||
|
|
||||||
if not modified:
|
|
||||||
print("[i] No UPX sections found – maybe already renamed")
|
|
||||||
return data, modified
|
|
||||||
|
|
||||||
def tweak_upx_info_blocks(data: bytearray) -> bytearray:
|
|
||||||
for pos in range(len(data)-0x2000, 0x400, -4):
|
|
||||||
block = data[pos:pos+12]
|
|
||||||
if len(block) != 12 or block[0] >= 10:
|
|
||||||
continue
|
|
||||||
sz_packed = int.from_bytes(block[4:8], 'little')
|
|
||||||
sz_unpacked = int.from_bytes(block[8:12], 'little')
|
|
||||||
if 1000 < sz_packed < 50_000_000 and 1000 < sz_unpacked < 100_000_000:
|
|
||||||
tweak = random.randint(1, 7)
|
|
||||||
data[pos+4:pos+8] = (sz_packed + tweak).to_bytes(4, 'little')
|
|
||||||
data[pos+8:pos+12] = (sz_unpacked - tweak).to_bytes(4, 'little')
|
|
||||||
print(f"[+] Tweaked info block: packed +{tweak}, unpacked -{tweak}")
|
|
||||||
return data
|
|
||||||
print("[i] No info block tweaked")
|
|
||||||
return data
|
|
||||||
|
|
||||||
def add_padding(data: bytearray) -> bytearray:
|
|
||||||
import random
|
|
||||||
kb = random.randint(3, 15)
|
|
||||||
padding = bytearray(random.getrandbits(8) for _ in range(kb * 1024))
|
|
||||||
data.extend(padding)
|
|
||||||
print(f"[+] Added {kb} KB random overlay padding")
|
|
||||||
return data
|
|
||||||
|
|
||||||
def strip_relocations(data: bytearray) -> bytearray:
|
|
||||||
pe_offset = int.from_bytes(data[0x3C:0x40], 'little')
|
|
||||||
reloc_rva = int.from_bytes(data[pe_offset + 160:pe_offset + 164], 'little')
|
|
||||||
if reloc_rva != 0:
|
|
||||||
data[pe_offset + 160:pe_offset + 168] = b'\x00' * 8
|
|
||||||
print("[+] Stripped relocation table")
|
|
||||||
else:
|
|
||||||
print("[i] No relocations to strip")
|
|
||||||
return data
|
|
||||||
|
|
||||||
def main():
|
|
||||||
parser = argparse.ArgumentParser(description="Automatic UPX evasion")
|
|
||||||
parser.add_argument("input", help="UPX-packed DLL")
|
|
||||||
parser.add_argument("-o", "--output", help="Output filename")
|
|
||||||
parser.add_argument("--keep-relocs", action="store_true", help="Don't strip relocations")
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
in_file = Path(args.input)
|
|
||||||
if not in_file.exists():
|
|
||||||
print(f"[-] File not found: {in_file}")
|
|
||||||
return
|
|
||||||
|
|
||||||
out_file = Path(args.output or f"{in_file.stem}_stealth{in_file.suffix}")
|
|
||||||
|
|
||||||
print(f"[*] Loading {in_file} ({in_file.stat().st_size // 1024} KB)")
|
|
||||||
data = bytearray(in_file.read_bytes())
|
|
||||||
|
|
||||||
print("[+] Applying evasion...")
|
|
||||||
data = modify_upx_magic(data)
|
|
||||||
data, _ = rename_upx_sections(data)
|
|
||||||
# data = tweak_upx_info_blocks(data)
|
|
||||||
data = add_padding(data)
|
|
||||||
if not args.keep_relocs:
|
|
||||||
data = strip_relocations(data)
|
|
||||||
|
|
||||||
out_file.write_bytes(data)
|
|
||||||
print(f"[+] Saved → {out_file} ({len(data)//1024} KB)")
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
-2793
File diff suppressed because it is too large
Load Diff
@@ -582,9 +582,6 @@ static int do_option(int optc, const char *arg) {
|
|||||||
case 525: // --exact
|
case 525: // --exact
|
||||||
opt->exact = true;
|
opt->exact = true;
|
||||||
break;
|
break;
|
||||||
case 532: // --add-padding
|
|
||||||
opt->add_padding = true;
|
|
||||||
break;
|
|
||||||
// CRP - Compression Runtime Parameters (undocumented and subject to change)
|
// CRP - Compression Runtime Parameters (undocumented and subject to change)
|
||||||
case 801:
|
case 801:
|
||||||
getoptvar(&opt->crp.crp_ucl.c_flags, 0, 3, arg);
|
getoptvar(&opt->crp.crp_ucl.c_flags, 0, 3, arg);
|
||||||
@@ -905,7 +902,6 @@ int main_get_options(int argc, char **argv) {
|
|||||||
{"all-filters", 0x10, N, 523},
|
{"all-filters", 0x10, N, 523},
|
||||||
{"all-methods", 0x10, N, 524},
|
{"all-methods", 0x10, N, 524},
|
||||||
{"exact", 0x10, N, 525}, // user requires byte-identical decompression
|
{"exact", 0x10, N, 525}, // user requires byte-identical decompression
|
||||||
{"add-padding", 0x10, N, 532}, // add padding to the packed file
|
|
||||||
{"filter", 0x31, N, 521}, // --filter=
|
{"filter", 0x31, N, 521}, // --filter=
|
||||||
{"no-filter", 0x10, N, 522},
|
{"no-filter", 0x10, N, 522},
|
||||||
{"small", 0x10, N, 520},
|
{"small", 0x10, N, 520},
|
||||||
|
|||||||
@@ -43,7 +43,6 @@ void Options::reset() noexcept {
|
|||||||
#define opt ERROR_DO_NOT_USE_opt // self-protect against using the wrong variable
|
#define opt ERROR_DO_NOT_USE_opt // self-protect against using the wrong variable
|
||||||
Options *const o = this;
|
Options *const o = this;
|
||||||
mem_clear(o);
|
mem_clear(o);
|
||||||
o->add_padding = false;
|
|
||||||
o->crp.reset();
|
o->crp.reset();
|
||||||
|
|
||||||
o->cmd = CMD_NONE;
|
o->cmd = CMD_NONE;
|
||||||
|
|||||||
@@ -75,7 +75,6 @@ struct Options final {
|
|||||||
bool no_filter; // force no filter
|
bool no_filter; // force no filter
|
||||||
bool prefer_ucl; // prefer UCL
|
bool prefer_ucl; // prefer UCL
|
||||||
bool exact; // user requires byte-identical decompression
|
bool exact; // user requires byte-identical decompression
|
||||||
bool add_padding;
|
|
||||||
|
|
||||||
// other options
|
// other options
|
||||||
int backup;
|
int backup;
|
||||||
|
|||||||
@@ -40,7 +40,6 @@
|
|||||||
|
|
||||||
static const CLANG_FORMAT_DUMMY_STATEMENT
|
static const CLANG_FORMAT_DUMMY_STATEMENT
|
||||||
#include "stub/amd64-win64.pe.h"
|
#include "stub/amd64-win64.pe.h"
|
||||||
#include "stub/amd64-win64-msg.pe.h"
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
//
|
//
|
||||||
|
|||||||
+15
-26
@@ -93,19 +93,6 @@ void Packer::assertPacker() const {
|
|||||||
void Packer::doPack(OutputFile *fo) {
|
void Packer::doPack(OutputFile *fo) {
|
||||||
uip->uiPackStart(fo);
|
uip->uiPackStart(fo);
|
||||||
pack(fo);
|
pack(fo);
|
||||||
|
|
||||||
if (opt->add_padding) {
|
|
||||||
int kb = (upx_rand() % 13) + 3; // 3 to 15 kb
|
|
||||||
int padding_size = kb * 1024;
|
|
||||||
info("Adding %d KB of random overlay padding", kb);
|
|
||||||
char *padding = new char[padding_size];
|
|
||||||
for (int i = 0; i < padding_size; ++i) {
|
|
||||||
padding[i] = upx_rand() & 0xff;
|
|
||||||
}
|
|
||||||
fo->write(padding, padding_size);
|
|
||||||
delete[] padding;
|
|
||||||
}
|
|
||||||
|
|
||||||
uip->uiPackEnd(fo);
|
uip->uiPackEnd(fo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -719,19 +706,21 @@ int Packer::patch_le32(void *b, int blen, const void *old, unsigned new_) {
|
|||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
static const char *getIdentstr(unsigned *size, int small) {
|
static const char *getIdentstr(unsigned *size, int small) {
|
||||||
// Modified to remove UPX detection strings
|
// IMPORTANT: we do NOT change "http://upx.sf.net"
|
||||||
static char identbig[] = "\n\0"
|
static char identbig[] =
|
||||||
"$Info: "
|
"\n\0"
|
||||||
"This file is compressed with a binary packer $"
|
"$Info: "
|
||||||
"\n\0"
|
"This file is packed with the UPX executable packer http://upx.sf.net $"
|
||||||
"$Id: PACKER " UPX_VERSION_STRING4
|
"\n\0"
|
||||||
" Copyright (C) 1996-" UPX_VERSION_YEAR " Team. All Rights Reserved. $"
|
"$Id: UPX " UPX_VERSION_STRING4 " Copyright (C) 1996-" UPX_VERSION_YEAR
|
||||||
"\n";
|
" the UPX Team. All Rights Reserved. $"
|
||||||
static char identsmall[] = "\n"
|
"\n";
|
||||||
"$Id: PACK "
|
static char identsmall[] =
|
||||||
"(C) 1996-" UPX_VERSION_YEAR " Team. All Rights Reserved. $"
|
"\n"
|
||||||
"\n";
|
"$Id: UPX "
|
||||||
static char identtiny[] = "PACK";
|
"(C) 1996-" UPX_VERSION_YEAR " the UPX Team. All Rights Reserved. http://upx.sf.net $"
|
||||||
|
"\n";
|
||||||
|
static char identtiny[] = UPX_VERSION_STRING4;
|
||||||
|
|
||||||
static upx_std_once_flag init_done;
|
static upx_std_once_flag init_done;
|
||||||
upx_std_call_once(init_done, []() noexcept {
|
upx_std_call_once(init_done, []() noexcept {
|
||||||
|
|||||||
+11
-45
@@ -945,22 +945,11 @@ public:
|
|||||||
void PeFile::addKernelImport(const char *name) { ilinker->add_import(kernelDll(), name); }
|
void PeFile::addKernelImport(const char *name) { ilinker->add_import(kernelDll(), name); }
|
||||||
|
|
||||||
void PeFile::addStubImports() {
|
void PeFile::addStubImports() {
|
||||||
// Break UPX detection by ensuring import count doesn't match 2-6 pattern
|
|
||||||
addKernelImport("LoadLibraryA");
|
addKernelImport("LoadLibraryA");
|
||||||
addKernelImport("VirtualProtect");
|
|
||||||
addKernelImport("GetProcAddress");
|
addKernelImport("GetProcAddress");
|
||||||
if (!isdll) {
|
if (!isdll)
|
||||||
// For EXEs: add extra imports to push count beyond 6 (breaks detection pattern)
|
addKernelImport("ExitProcess");
|
||||||
addKernelImport("GetCurrentProcess");
|
addKernelImport("VirtualProtect");
|
||||||
addKernelImport("GetTickCount");
|
|
||||||
addKernelImport("QueryPerformanceCounter");
|
|
||||||
addKernelImport("GetSystemTimeAsFileTime");
|
|
||||||
addKernelImport("ExitProcess"); // Add last to avoid specific 2-4-6 patterns
|
|
||||||
} else {
|
|
||||||
// For DLLs: add minimal extra imports to break patterns
|
|
||||||
addKernelImport("GetCurrentProcess");
|
|
||||||
addKernelImport("GetTickCount");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PeFile::processImports2(unsigned myimport, unsigned) { // pass 2
|
void PeFile::processImports2(unsigned myimport, unsigned) { // pass 2
|
||||||
@@ -1747,9 +1736,7 @@ PeFile::Resource::upx_rnode *PeFile::Resource::convert(const void *rnode, upx_rn
|
|||||||
branch->name = nullptr;
|
branch->name = nullptr;
|
||||||
branch->parent = parent;
|
branch->parent = parent;
|
||||||
branch->nc = ic;
|
branch->nc = ic;
|
||||||
branch->children = New(upx_rnode *, ic);
|
branch->children = New0(upx_rnode *, ic);
|
||||||
// NOLINTNEXTLINE(bugprone-multi-level-implicit-pointer-conversion)
|
|
||||||
memset(branch->children, 0, sizeof(upx_rnode *) * ic);
|
|
||||||
branch->data = *node;
|
branch->data = *node;
|
||||||
if (!root) // first one
|
if (!root) // first one
|
||||||
root = branch; // prevent leak if xcheck throws (hacked unpack or test)
|
root = branch; // prevent leak if xcheck throws (hacked unpack or test)
|
||||||
@@ -2532,19 +2519,10 @@ void PeFile::pack0(OutputFile *fo, ht &ih, ht &oh, unsigned subsystem_mask,
|
|||||||
memcpy(&oh, &ih, sizeof(oh));
|
memcpy(&oh, &ih, sizeof(oh));
|
||||||
oh.filealign = oh_filealign; // identsplit depends on this
|
oh.filealign = oh_filealign; // identsplit depends on this
|
||||||
|
|
||||||
// Modify timestamp to break compilation date detection
|
oh.entry = upxsection;
|
||||||
// Timestamp is at offset 8 in the PE header (after magic and machine)
|
|
||||||
set_le32((byte *) &oh + 8, 0x12345678);
|
|
||||||
|
|
||||||
oh.entry = upxsection; // Revert entry point randomization
|
|
||||||
oh.objects = oobjs;
|
oh.objects = oobjs;
|
||||||
oh.chksum = 0;
|
oh.chksum = 0;
|
||||||
|
|
||||||
// Modify PE characteristics flags to break detection patterns
|
|
||||||
// Flags are at offset 22 in PE header
|
|
||||||
LE16 *flags = (LE16 *) ((byte *) &oh + 22);
|
|
||||||
*flags |= 0x0100; // Add IMAGE_FILE_RELOCS_STRIPPED flag
|
|
||||||
|
|
||||||
// fill the data directory
|
// fill the data directory
|
||||||
ODADDR(PEDIR_DEBUG) = 0; // dbgCET later
|
ODADDR(PEDIR_DEBUG) = 0; // dbgCET later
|
||||||
ODSIZE(PEDIR_DEBUG) = 0;
|
ODSIZE(PEDIR_DEBUG) = 0;
|
||||||
@@ -2624,11 +2602,8 @@ void PeFile::pack0(OutputFile *fo, ht &ih, ht &oh, unsigned subsystem_mask,
|
|||||||
const unsigned ncsize_virt_increase = soxrelocs && (ncsize & oam1) == 0 ? 8 : 0;
|
const unsigned ncsize_virt_increase = soxrelocs && (ncsize & oam1) == 0 ? 8 : 0;
|
||||||
|
|
||||||
// fill the sections
|
// fill the sections
|
||||||
strcpy(osection[0].name, ".text");
|
strcpy(osection[0].name, "UPX0");
|
||||||
osection[0].name[5] = 0;
|
strcpy(osection[1].name, "UPX1");
|
||||||
strcpy(osection[1].name, ".data");
|
|
||||||
osection[1].name[5] = 0;
|
|
||||||
|
|
||||||
// after some windoze debugging I found that the name of the sections
|
// after some windoze debugging I found that the name of the sections
|
||||||
// DOES matter :( .rsrc is used by oleaut32.dll (TYPELIBS)
|
// DOES matter :( .rsrc is used by oleaut32.dll (TYPELIBS)
|
||||||
// and because of this lame dll, the resource stuff must be the
|
// and because of this lame dll, the resource stuff must be the
|
||||||
@@ -2636,8 +2611,7 @@ void PeFile::pack0(OutputFile *fo, ht &ih, ht &oh, unsigned subsystem_mask,
|
|||||||
// too idiot to use the data directories... M$ suxx 4 ever!
|
// too idiot to use the data directories... M$ suxx 4 ever!
|
||||||
// ... even worse: exploder.exe in NiceTry also depends on this to
|
// ... even worse: exploder.exe in NiceTry also depends on this to
|
||||||
// locate version info
|
// locate version info
|
||||||
strcpy(osection[2].name, ".rsrc");
|
strcpy(osection[2].name, !last_section_rsrc_only && soresources ? ".rsrc" : "UPX2");
|
||||||
osection[2].name[5] = 0;
|
|
||||||
|
|
||||||
osection[0].vaddr = rvamin;
|
osection[0].vaddr = rvamin;
|
||||||
osection[1].vaddr = s1addr;
|
osection[1].vaddr = s1addr;
|
||||||
@@ -2647,8 +2621,6 @@ void PeFile::pack0(OutputFile *fo, ht &ih, ht &oh, unsigned subsystem_mask,
|
|||||||
osection[1].size = (s1size + fam1) & ~fam1;
|
osection[1].size = (s1size + fam1) & ~fam1;
|
||||||
osection[2].size = (ncsize + fam1) & ~fam1;
|
osection[2].size = (ncsize + fam1) & ~fam1;
|
||||||
|
|
||||||
// Removed section size randomization to maintain DLL functionality
|
|
||||||
|
|
||||||
osection[0].vsize = osection[1].vaddr - osection[0].vaddr;
|
osection[0].vsize = osection[1].vaddr - osection[0].vaddr;
|
||||||
if (!last_section_rsrc_only) {
|
if (!last_section_rsrc_only) {
|
||||||
osection[1].vsize = (osection[1].size + oam1) & ~oam1;
|
osection[1].vsize = (osection[1].size + oam1) & ~oam1;
|
||||||
@@ -2664,13 +2636,11 @@ void PeFile::pack0(OutputFile *fo, ht &ih, ht &oh, unsigned subsystem_mask,
|
|||||||
}
|
}
|
||||||
osection[2].rawdataptr = osection[1].rawdataptr + osection[1].size;
|
osection[2].rawdataptr = osection[1].rawdataptr + osection[1].size;
|
||||||
|
|
||||||
// Modify section flags to break UPX detection patterns
|
|
||||||
osection[0].flags = IMAGE_SCN_CNT_UNINITIALIZED_DATA | IMAGE_SCN_MEM_READ |
|
osection[0].flags = IMAGE_SCN_CNT_UNINITIALIZED_DATA | IMAGE_SCN_MEM_READ |
|
||||||
IMAGE_SCN_MEM_WRITE | IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_CNT_CODE;
|
IMAGE_SCN_MEM_WRITE | IMAGE_SCN_MEM_EXECUTE;
|
||||||
osection[1].flags = IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE |
|
osection[1].flags = IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE |
|
||||||
IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_CNT_INITIALIZED_DATA;
|
IMAGE_SCN_MEM_EXECUTE;
|
||||||
osection[2].flags = IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE |
|
osection[2].flags = IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE;
|
||||||
IMAGE_SCN_CNT_CODE;
|
|
||||||
|
|
||||||
if (last_section_rsrc_only) {
|
if (last_section_rsrc_only) {
|
||||||
strcpy(osection[3].name, ".rsrc");
|
strcpy(osection[3].name, ".rsrc");
|
||||||
@@ -2701,8 +2671,6 @@ void PeFile::pack0(OutputFile *fo, ht &ih, ht &oh, unsigned subsystem_mask,
|
|||||||
if (opt->win32_pe.strip_relocs)
|
if (opt->win32_pe.strip_relocs)
|
||||||
oh.flags |= IMAGE_FILE_RELOCS_STRIPPED;
|
oh.flags |= IMAGE_FILE_RELOCS_STRIPPED;
|
||||||
|
|
||||||
oh.chksum = 0; // Revert checksum to zero
|
|
||||||
|
|
||||||
ibuf.clear(0, oh.filealign);
|
ibuf.clear(0, oh.filealign);
|
||||||
|
|
||||||
info("Image size change: %u -> %u KiB", ih.imagesize / 1024, oh.imagesize / 1024);
|
info("Image size change: %u -> %u KiB", ih.imagesize / 1024, oh.imagesize / 1024);
|
||||||
@@ -2730,8 +2698,6 @@ void PeFile::pack0(OutputFile *fo, ht &ih, ht &oh, unsigned subsystem_mask,
|
|||||||
fo->write(ibuf, sizeof(LEXX) - ic);
|
fo->write(ibuf, sizeof(LEXX) - ic);
|
||||||
fo->write(otls, aligned_sotls);
|
fo->write(otls, aligned_sotls);
|
||||||
fo->write(oloadconf, soloadconf);
|
fo->write(oloadconf, soloadconf);
|
||||||
|
|
||||||
// Removed random padding to maintain DLL functionality
|
|
||||||
if (dbgCET) {
|
if (dbgCET) {
|
||||||
ic = fo->getBytesWritten();
|
ic = fo->getBytesWritten();
|
||||||
dbgCET->fpos = ic + sizeof(*dbgCET);
|
dbgCET->fpos = ic + sizeof(*dbgCET);
|
||||||
|
|||||||
+6
-21
@@ -28,12 +28,12 @@ endif
|
|||||||
include $(wildcard $(top_srcdir)/Makevars-global.mk ./Makevars-local.mk)
|
include $(wildcard $(top_srcdir)/Makevars-global.mk ./Makevars-local.mk)
|
||||||
|
|
||||||
# update $PATH for our special stub build tools
|
# update $PATH for our special stub build tools
|
||||||
ifneq ($(wildcard $(HOME)/local/bin/bin-upx/bin-upx-20221212/upx-stubtools-check-version),)
|
ifneq ($(wildcard $(HOME)/local/bin/bin-upx/upx-stubtools-check-version),)
|
||||||
export PATH := $(HOME)/local/bin/bin-upx/bin-upx-20221212:$(PATH)
|
export PATH := $(HOME)/local/bin/bin-upx:$(PATH)
|
||||||
else ifneq ($(wildcard $(HOME)/.local/bin/bin-upx/bin-upx-20221212/upx-stubtools-check-version),)
|
else ifneq ($(wildcard $(HOME)/.local/bin/bin-upx/upx-stubtools-check-version),)
|
||||||
export PATH := $(HOME)/.local/bin/bin-upx/bin-upx-20221212:$(PATH)
|
export PATH := $(HOME)/.local/bin/bin-upx:$(PATH)
|
||||||
else ifneq ($(wildcard $(HOME)/bin/bin-upx/bin-upx-20221212/upx-stubtools-check-version),)
|
else ifneq ($(wildcard $(HOME)/bin/bin-upx/upx-stubtools-check-version),)
|
||||||
export PATH := $(HOME)/bin/bin-upx/bin-upx-20221212:$(PATH)
|
export PATH := $(HOME)/bin/bin-upx:$(PATH)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
@@ -54,7 +54,6 @@ STUBS += amd64-linux.kernel.vmlinux-head.h
|
|||||||
STUBS += amd64-linux.kernel.vmlinux.h
|
STUBS += amd64-linux.kernel.vmlinux.h
|
||||||
STUBS += amd64-linux.shlib-init.h
|
STUBS += amd64-linux.shlib-init.h
|
||||||
STUBS += amd64-win64.pe.h
|
STUBS += amd64-win64.pe.h
|
||||||
|
|
||||||
STUBS += arm.v4a-linux.elf-entry.h
|
STUBS += arm.v4a-linux.elf-entry.h
|
||||||
STUBS += arm.v4a-linux.elf-so_entry.h
|
STUBS += arm.v4a-linux.elf-so_entry.h
|
||||||
STUBS += arm.v4a-linux.elf-fold.h
|
STUBS += arm.v4a-linux.elf-fold.h
|
||||||
@@ -562,20 +561,6 @@ amd64-win64.pe.h : $(srcdir)/src/$$T.S
|
|||||||
$(call tc,bin2h) tmp/$T.bin $@
|
$(call tc,bin2h) tmp/$T.bin $@
|
||||||
|
|
||||||
|
|
||||||
# /***********************************************************************
|
|
||||||
# // amd64-win64-msg.pe
|
|
||||||
# ************************************************************************/
|
|
||||||
|
|
||||||
amd64-win64-msg.pe.h : tc_list = amd64-win64.pe default
|
|
||||||
amd64-win64-msg.pe.h : tc_bfdname = elf64-x86-64
|
|
||||||
amd64-win64-msg.pe.h : tc_objdump_disasm_options = -M intel-mnemonic
|
|
||||||
|
|
||||||
amd64-win64-msg.pe.h : $(srcdir)/src/$$T.S
|
|
||||||
$(call tc,gcc) -c -x assembler-with-cpp $< -o tmp/$T.bin
|
|
||||||
$(call tc,f-embed_objinfo,tmp/$T.bin)
|
|
||||||
$(call tc,bin2h) tmp/$T.bin $@
|
|
||||||
|
|
||||||
|
|
||||||
# /***********************************************************************
|
# /***********************************************************************
|
||||||
# // arm.v5a-darwin.macho (arm.v5a)
|
# // arm.v5a-darwin.macho (arm.v5a)
|
||||||
# ************************************************************************/
|
# ************************************************************************/
|
||||||
|
|||||||
Generated
-990
@@ -1,990 +0,0 @@
|
|||||||
/* amd64-win64-msg.pe.h
|
|
||||||
created from amd64-win64-msg.pe.bin, 15186 (0x3b52) bytes
|
|
||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
|
||||||
|
|
||||||
Copyright (C) 1996-2025 Markus Franz Xaver Johannes Oberhumer
|
|
||||||
Copyright (C) 1996-2025 Laszlo Molnar
|
|
||||||
Copyright (C) 2000-2025 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>
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* clang-format off */
|
|
||||||
|
|
||||||
#define STUB_AMD64_WIN64_MSG_PE_SIZE 15186
|
|
||||||
#define STUB_AMD64_WIN64_MSG_PE_ADLER32 0x57ddf064
|
|
||||||
#define STUB_AMD64_WIN64_MSG_PE_CRC32 0x6fbd3967
|
|
||||||
|
|
||||||
unsigned char stub_amd64_win64_msg_pe[15186] = {
|
|
||||||
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
/* 0x0010 */ 1, 0, 62, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 64, 18, 0, 0, 0, 0, 0, 0,
|
|
||||||
/* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0,
|
|
||||||
/* 0x0040 */ 72,137, 76, 36, 8, 72,137, 84, 36, 16, 76,137, 68, 36, 24, 81,
|
|
||||||
/* 0x0050 */ 82,128,250, 1, 15,133, 0, 0, 0, 0, 83, 86, 87, 85, 72,131,
|
|
||||||
/* 0x0060 */ 236, 40, 72,141, 13, 0, 0, 0, 0,255, 21, 0, 0, 0, 0, 72,
|
|
||||||
/* 0x0070 */ 137,193, 72,141, 21, 0, 0, 0, 0,255, 21, 0, 0, 0, 0, 72,
|
|
||||||
/* 0x0080 */ 49,201, 72,141, 21, 0, 0, 0, 0, 76,141, 5, 0, 0, 0, 0,
|
|
||||||
/* 0x0090 */ 77, 49,201,255,208, 72,131,196, 40, 72,141, 53, 0, 0, 0, 0,
|
|
||||||
/* 0x00a0 */ 72,141,190, 0, 0, 0, 0,102,255,135, 0, 0, 0, 0,102,129,
|
|
||||||
/* 0x00b0 */ 135, 0, 0, 0, 0, 0,128, 72,141,135, 0, 0, 0, 0,255, 48,
|
|
||||||
/* 0x00c0 */ 199, 0, 0, 0, 0,128, 80, 87, 49,219, 49,201, 72,131,205,255,
|
|
||||||
/* 0x00d0 */ 232, 80, 0, 0, 0, 1,219,116, 2,243,195,139, 30, 72,131,238,
|
|
||||||
/* 0x00e0 */ 252, 17,219,138, 22,243,195, 72,141, 4, 47,131,249, 5,138, 16,
|
|
||||||
/* 0x00f0 */ 118, 33, 72,131,253,252,119, 27,131,233, 4,139, 16, 72,131,192,
|
|
||||||
/* 0x0100 */ 4,131,233, 4,137, 23, 72,141,127, 4,115,239,131,193, 4,138,
|
|
||||||
/* 0x0110 */ 16,116, 16, 72,255,192,136, 23,131,233, 1,138, 16, 72,141,127,
|
|
||||||
/* 0x0120 */ 1,117,240,243,195,252, 65, 91,235, 8, 72,255,198,136, 23, 72,
|
|
||||||
/* 0x0130 */ 255,199,138, 22, 1,219,117, 10,139, 30, 72,131,238,252, 17,219,
|
|
||||||
/* 0x0140 */ 138, 22,114,230,141, 65, 1, 65,255,211, 17,192, 1,219,117, 10,
|
|
||||||
/* 0x0150 */ 139, 30, 72,131,238,252, 17,219,138, 22,115,235,131,232, 3,114,
|
|
||||||
/* 0x0160 */ 19,193,224, 8, 15,182,210, 9,208, 72,255,198,131,240,255,116,
|
|
||||||
/* 0x0170 */ 58, 72, 99,232,141, 65, 1, 65,255,211, 17,201, 65,255,211, 17,
|
|
||||||
/* 0x0180 */ 201,117, 24,137,193,131,192, 2, 65,255,211, 17,201, 1,219,117,
|
|
||||||
/* 0x0190 */ 8,139, 30, 72,131,238,252, 17,219,115,237, 72,129,253, 0,243,
|
|
||||||
/* 0x01a0 */ 255,255, 17,193,232, 0, 0, 0, 0,235,135,235, 8, 72,255,198,
|
|
||||||
/* 0x01b0 */ 136, 23, 72,255,199,138, 22, 1,219,117, 10,139, 30, 72,131,238,
|
|
||||||
/* 0x01c0 */ 252, 17,219,138, 22,114,230,141, 65, 1,235, 7,255,200, 65,255,
|
|
||||||
/* 0x01d0 */ 211, 17,192, 65,255,211, 17,192, 1,219,117, 10,139, 30, 72,131,
|
|
||||||
/* 0x01e0 */ 238,252, 17,219,138, 22,115,228,131,232, 3,114, 23,193,224, 8,
|
|
||||||
/* 0x01f0 */ 15,182,210, 9,208, 72,255,198,131,240,255,116, 63,209,248, 72,
|
|
||||||
/* 0x0200 */ 99,232,235, 3, 65,255,211, 17,201, 65,255,211, 17,201,117, 24,
|
|
||||||
/* 0x0210 */ 255,193, 65,255,211, 17,201, 1,219,117, 8,139, 30, 72,131,238,
|
|
||||||
/* 0x0220 */ 252, 17,219,115,237,131,193, 2, 72,129,253, 0,251,255,255,131,
|
|
||||||
/* 0x0230 */ 209, 1,232, 0, 0, 0, 0,233,121,255,255,255,235, 8, 72,255,
|
|
||||||
/* 0x0240 */ 198,136, 23, 72,255,199,138, 22, 1,219,117, 10,139, 30, 72,131,
|
|
||||||
/* 0x0250 */ 238,252, 17,219,138, 22,114,230,141, 65, 1,235, 7,255,200, 65,
|
|
||||||
/* 0x0260 */ 255,211, 17,192, 65,255,211, 17,192, 1,219,117, 10,139, 30, 72,
|
|
||||||
/* 0x0270 */ 131,238,252, 17,219,138, 22,115,228,131,232, 3,114, 25,193,224,
|
|
||||||
/* 0x0280 */ 8, 15,182,210, 9,208, 72,255,198,131,240,255,116, 88,209,248,
|
|
||||||
/* 0x0290 */ 72, 99,232,114, 56,235, 14, 1,219,117, 8,139, 30, 72,131,238,
|
|
||||||
/* 0x02a0 */ 252, 17,219,114, 40,255,193, 1,219,117, 8,139, 30, 72,131,238,
|
|
||||||
/* 0x02b0 */ 252, 17,219,114, 24, 65,255,211, 17,201, 1,219,117, 8,139, 30,
|
|
||||||
/* 0x02c0 */ 72,131,238,252, 17,219,115,237,131,193, 2,235, 5, 65,255,211,
|
|
||||||
/* 0x02d0 */ 17,201, 72,129,253, 0,251,255,255,131,209, 2,232, 0, 0, 0,
|
|
||||||
/* 0x02e0 */ 0,233, 96,255,255,255,184, 0, 0, 0,128, 80, 72,137,225, 72,
|
|
||||||
/* 0x02f0 */ 137,250, 72,137,247,190, 0, 0, 0,128, 85, 72,137,229, 68,139,
|
|
||||||
/* 0x0300 */ 9, 73,137,208, 72,137,242, 72,141,119, 2, 86,138, 7,255,202,
|
|
||||||
/* 0x0310 */ 136,193, 36, 7,192,233, 3, 72,199,195, 0,253,255,255, 72,211,
|
|
||||||
/* 0x0320 */ 227,136,193, 72,141,156, 92,136,241,255,255, 72,131,227,192,106,
|
|
||||||
/* 0x0330 */ 0, 72, 57,220,117,249, 83, 72,141,123, 8,138, 78,255,255,202,
|
|
||||||
/* 0x0340 */ 136, 71, 2,136,200,192,233, 4,136, 79, 1, 36, 15,136, 7, 72,
|
|
||||||
/* 0x0350 */ 141, 79,252, 80, 65, 87, 72,141, 71, 4, 69, 49,255, 65, 86, 65,
|
|
||||||
/* 0x0360 */ 190, 1, 0, 0, 0, 65, 85, 69, 49,237, 65, 84, 85, 83, 72,131,
|
|
||||||
/* 0x0370 */ 236, 72, 72,137, 76, 36, 56, 72,137, 68, 36, 32,184, 1, 0, 0,
|
|
||||||
/* 0x0380 */ 0, 72,137,116, 36, 64, 76,137, 68, 36, 48,137,195, 68,137, 76,
|
|
||||||
/* 0x0390 */ 36, 44, 15,182, 79, 2,211,227,137,217, 72,139,156, 36,128, 0,
|
|
||||||
/* 0x03a0 */ 0, 0,255,201,137, 76, 36, 28, 15,182, 79, 1,211,224, 72,139,
|
|
||||||
/* 0x03b0 */ 76, 36, 56,255,200,137, 68, 36, 24, 15,182, 7,199, 1, 0, 0,
|
|
||||||
/* 0x03c0 */ 0, 0,199, 68, 36, 16, 0, 0, 0, 0,199, 68, 36, 12, 1, 0,
|
|
||||||
/* 0x03d0 */ 0, 0,199, 68, 36, 8, 1, 0, 0, 0,199, 68, 36, 4, 1, 0,
|
|
||||||
/* 0x03e0 */ 0, 0,199, 3, 0, 0, 0, 0,137, 68, 36, 20, 15,182, 79, 1,
|
|
||||||
/* 0x03f0 */ 1,193,184, 0, 3, 0, 0,211,224, 49,201,141,184, 54, 7, 0,
|
|
||||||
/* 0x0400 */ 0, 65, 57,255,115, 19, 72,139, 92, 36, 32,137,200,255,193, 57,
|
|
||||||
/* 0x0410 */ 249,102,199, 4, 67, 0, 4,235,235, 72,139,124, 36, 64,137,208,
|
|
||||||
/* 0x0420 */ 69, 49,210, 65,131,203,255, 49,210, 73,137,252, 73, 1,196, 76,
|
|
||||||
/* 0x0430 */ 57,231, 15,132,235, 8, 0, 0, 15,182, 7, 65,193,226, 8,255,
|
|
||||||
/* 0x0440 */ 194, 72,255,199, 65, 9,194,131,250, 4,126,227, 68, 59,124, 36,
|
|
||||||
/* 0x0450 */ 44, 15,131,214, 8, 0, 0,139, 68, 36, 28, 72, 99, 92, 36, 16,
|
|
||||||
/* 0x0460 */ 72,139, 84, 36, 32, 68, 33,248,137, 4, 36, 72, 99, 44, 36, 72,
|
|
||||||
/* 0x0470 */ 137,216, 72,193,224, 4, 72, 1,232, 65,129,251,255,255,255, 0,
|
|
||||||
/* 0x0480 */ 76,141, 12, 66,119, 26, 76, 57,231, 15,132,148, 8, 0, 0, 15,
|
|
||||||
/* 0x0490 */ 182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194,
|
|
||||||
/* 0x04a0 */ 65, 15,183, 17, 68,137,216,193,232, 11, 15,183,202, 15,175,193,
|
|
||||||
/* 0x04b0 */ 65, 57,194, 15,131,197, 1, 0, 0, 65,137,195,184, 0, 8, 0,
|
|
||||||
/* 0x04c0 */ 0, 72,139, 92, 36, 32, 41,200, 15,182, 76, 36, 20,190, 1, 0,
|
|
||||||
/* 0x04d0 */ 0, 0,193,248, 5,141, 4, 2, 65, 15,182,213,102, 65,137, 1,
|
|
||||||
/* 0x04e0 */ 139, 68, 36, 24, 68, 33,248,211,224,185, 8, 0, 0, 0, 43, 76,
|
|
||||||
/* 0x04f0 */ 36, 20,211,250, 1,208,105,192, 0, 3, 0, 0,131,124, 36, 16,
|
|
||||||
/* 0x0500 */ 6,137,192, 76,141,140, 67,108, 14, 0, 0, 15,142,184, 0, 0,
|
|
||||||
/* 0x0510 */ 0, 72,139, 84, 36, 48, 68,137,248, 68, 41,240, 15,182, 44, 2,
|
|
||||||
/* 0x0520 */ 1,237, 72, 99,214,137,235,129,227, 0, 1, 0, 0, 65,129,251,
|
|
||||||
/* 0x0530 */ 255,255,255, 0, 72, 99,195, 73,141, 4, 65, 76,141, 4, 80,119,
|
|
||||||
/* 0x0540 */ 26, 76, 57,231, 15,132,217, 7, 0, 0, 15,182, 7, 65,193,226,
|
|
||||||
/* 0x0550 */ 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65, 15,183,144, 0,
|
|
||||||
/* 0x0560 */ 2, 0, 0, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65,
|
|
||||||
/* 0x0570 */ 57,194,115, 32, 65,137,195,184, 0, 8, 0, 0, 1,246, 41,200,
|
|
||||||
/* 0x0580 */ 193,248, 5,133,219,141, 4, 2,102, 65,137,128, 0, 2, 0, 0,
|
|
||||||
/* 0x0590 */ 116, 33,235, 45, 65, 41,195, 65, 41,194,137,208,102,193,232, 5,
|
|
||||||
/* 0x05a0 */ 141,116, 54, 1,102, 41,194,133,219,102, 65,137,144, 0, 2, 0,
|
|
||||||
/* 0x05b0 */ 0,116, 14,129,254,255, 0, 0, 0, 15,142, 97,255,255,255,235,
|
|
||||||
/* 0x05c0 */ 120,129,254,255, 0, 0, 0,127,112, 72, 99,198, 65,129,251,255,
|
|
||||||
/* 0x05d0 */ 255,255, 0, 77,141, 4, 65,119, 26, 76, 57,231, 15,132, 65, 7,
|
|
||||||
/* 0x05e0 */ 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199,
|
|
||||||
/* 0x05f0 */ 65, 9,194, 65, 15,183, 16, 68,137,216,193,232, 11, 15,183,202,
|
|
||||||
/* 0x0600 */ 15,175,193, 65, 57,194,115, 24, 65,137,195,184, 0, 8, 0, 0,
|
|
||||||
/* 0x0610 */ 1,246, 41,200,193,248, 5,141, 4, 2,102, 65,137, 0,235,161,
|
|
||||||
/* 0x0620 */ 65, 41,195, 65, 41,194,137,208,102,193,232, 5,141,116, 54, 1,
|
|
||||||
/* 0x0630 */ 102, 41,194,102, 65,137, 16,235,136, 72,139, 76, 36, 48, 68,137,
|
|
||||||
/* 0x0640 */ 248, 65,255,199, 65,137,245, 64,136, 52, 1,131,124, 36, 16, 3,
|
|
||||||
/* 0x0650 */ 127, 13,199, 68, 36, 16, 0, 0, 0, 0,233,164, 6, 0, 0,139,
|
|
||||||
/* 0x0660 */ 84, 36, 16,139, 68, 36, 16,131,234, 3,131,232, 6,131,124, 36,
|
|
||||||
/* 0x0670 */ 16, 9, 15, 79,208,137, 84, 36, 16,233,133, 6, 0, 0, 65, 41,
|
|
||||||
/* 0x0680 */ 195, 65, 41,194,137,208,102,193,232, 5,102, 41,194, 72,139, 68,
|
|
||||||
/* 0x0690 */ 36, 32, 65,129,251,255,255,255, 0,102, 65,137, 17, 72,141, 52,
|
|
||||||
/* 0x06a0 */ 88,119, 26, 76, 57,231, 15,132,119, 6, 0, 0, 15,182, 7, 65,
|
|
||||||
/* 0x06b0 */ 193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183,150,
|
|
||||||
/* 0x06c0 */ 128, 1, 0, 0, 68,137,216,193,232, 11, 15,183,202, 15,175,193,
|
|
||||||
/* 0x06d0 */ 65, 57,194,115, 78, 65,137,195,184, 0, 8, 0, 0, 76,139, 76,
|
|
||||||
/* 0x06e0 */ 36, 32, 41,200,139, 76, 36, 12, 68,137,116, 36, 12,193,248, 5,
|
|
||||||
/* 0x06f0 */ 141, 4, 2,139, 84, 36, 8,137, 76, 36, 8,102,137,134,128, 1,
|
|
||||||
/* 0x0700 */ 0, 0, 49,192,131,124, 36, 16, 6,137, 84, 36, 4, 15,159,192,
|
|
||||||
/* 0x0710 */ 73,129,193,100, 6, 0, 0,141, 4, 64,137, 68, 36, 16,233, 84,
|
|
||||||
/* 0x0720 */ 2, 0, 0, 65, 41,195, 65, 41,194,137,208,102,193,232, 5,102,
|
|
||||||
/* 0x0730 */ 41,194, 65,129,251,255,255,255, 0,102,137,150,128, 1, 0, 0,
|
|
||||||
/* 0x0740 */ 119, 26, 76, 57,231, 15,132,216, 5, 0, 0, 15,182, 7, 65,193,
|
|
||||||
/* 0x0750 */ 226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183,150,152,
|
|
||||||
/* 0x0760 */ 1, 0, 0, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65,
|
|
||||||
/* 0x0770 */ 57,194, 15,131,208, 0, 0, 0, 65,184, 0, 8, 0, 0, 65,137,
|
|
||||||
/* 0x0780 */ 195, 72,193,227, 5, 68,137,192, 41,200,193,248, 5,141, 4, 2,
|
|
||||||
/* 0x0790 */ 102,137,134,152, 1, 0, 0, 72,139, 68, 36, 32, 72, 1,216, 65,
|
|
||||||
/* 0x07a0 */ 129,251,255,255,255, 0, 72,141, 52,104,119, 26, 76, 57,231, 15,
|
|
||||||
/* 0x07b0 */ 132,110, 5, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8,
|
|
||||||
/* 0x07c0 */ 72,255,199, 65, 9,194, 15,183,150,224, 1, 0, 0, 68,137,216,
|
|
||||||
/* 0x07d0 */ 193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 79, 65, 41,
|
|
||||||
/* 0x07e0 */ 200, 65,137,195, 65,193,248, 5, 69,133,255, 66,141, 4, 2,102,
|
|
||||||
/* 0x07f0 */ 137,134,224, 1, 0, 0, 15,132, 39, 5, 0, 0, 49,192,131,124,
|
|
||||||
/* 0x0800 */ 36, 16, 6, 72,139, 92, 36, 48, 15,159,192,141, 68, 0, 9,137,
|
|
||||||
/* 0x0810 */ 68, 36, 16, 68,137,248, 68, 41,240, 68, 15,182, 44, 3, 68,137,
|
|
||||||
/* 0x0820 */ 248, 65,255,199, 68,136, 44, 3,233,214, 4, 0, 0, 65, 41,195,
|
|
||||||
/* 0x0830 */ 65, 41,194,137,208,102,193,232, 5,102, 41,194,102,137,150,224,
|
|
||||||
/* 0x0840 */ 1, 0, 0,233, 17, 1, 0, 0, 65, 41,195, 65, 41,194,137,208,
|
|
||||||
/* 0x0850 */ 102,193,232, 5,102, 41,194, 65,129,251,255,255,255, 0,102,137,
|
|
||||||
/* 0x0860 */ 150,152, 1, 0, 0,119, 26, 76, 57,231, 15,132,179, 4, 0, 0,
|
|
||||||
/* 0x0870 */ 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,
|
|
||||||
/* 0x0880 */ 194, 15,183,150,176, 1, 0, 0, 68,137,216,193,232, 11, 15,183,
|
|
||||||
/* 0x0890 */ 202, 15,175,193, 65, 57,194,115, 32, 65,137,195,184, 0, 8, 0,
|
|
||||||
/* 0x08a0 */ 0, 41,200,193,248, 5,141, 4, 2,102,137,134,176, 1, 0, 0,
|
|
||||||
/* 0x08b0 */ 139, 68, 36, 12,233,152, 0, 0, 0, 65, 41,195, 65, 41,194,137,
|
|
||||||
/* 0x08c0 */ 208,102,193,232, 5,102, 41,194, 65,129,251,255,255,255, 0,102,
|
|
||||||
/* 0x08d0 */ 137,150,176, 1, 0, 0,119, 26, 76, 57,231, 15,132, 66, 4, 0,
|
|
||||||
/* 0x08e0 */ 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65,
|
|
||||||
/* 0x08f0 */ 9,194, 15,183,150,200, 1, 0, 0, 68,137,216,193,232, 11, 15,
|
|
||||||
/* 0x0900 */ 183,202, 15,175,193, 65, 57,194,115, 29, 65,137,195,184, 0, 8,
|
|
||||||
/* 0x0910 */ 0, 0, 41,200,193,248, 5,141, 4, 2,102,137,134,200, 1, 0,
|
|
||||||
/* 0x0920 */ 0,139, 68, 36, 8,235, 34, 65, 41,195, 65, 41,194,137,208,102,
|
|
||||||
/* 0x0930 */ 193,232, 5,102, 41,194,139, 68, 36, 4,102,137,150,200, 1, 0,
|
|
||||||
/* 0x0940 */ 0,139, 84, 36, 8,137, 84, 36, 4,139, 76, 36, 12,137, 76, 36,
|
|
||||||
/* 0x0950 */ 8, 68,137,116, 36, 12, 65,137,198, 49,192,131,124, 36, 16, 6,
|
|
||||||
/* 0x0960 */ 76,139, 76, 36, 32, 15,159,192, 73,129,193,104, 10, 0, 0,141,
|
|
||||||
/* 0x0970 */ 68, 64, 8,137, 68, 36, 16, 65,129,251,255,255,255, 0,119, 26,
|
|
||||||
/* 0x0980 */ 76, 57,231, 15,132,154, 3, 0, 0, 15,182, 7, 65,193,226, 8,
|
|
||||||
/* 0x0990 */ 65,193,227, 8, 72,255,199, 65, 9,194, 65, 15,183, 17, 68,137,
|
|
||||||
/* 0x09a0 */ 216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 38, 65,
|
|
||||||
/* 0x09b0 */ 137,195,184, 0, 8, 0, 0, 69, 49,237, 41,200,193,248, 5,141,
|
|
||||||
/* 0x09c0 */ 4, 2,102, 65,137, 1, 72, 99, 4, 36, 72,193,224, 4, 77,141,
|
|
||||||
/* 0x09d0 */ 68, 1, 4,235,119, 65, 41,195, 65, 41,194,137,208,102,193,232,
|
|
||||||
/* 0x09e0 */ 5,102, 41,194, 65,129,251,255,255,255, 0,102, 65,137, 17,119,
|
|
||||||
/* 0x09f0 */ 26, 76, 57,231, 15,132, 41, 3, 0, 0, 15,182, 7, 65,193,226,
|
|
||||||
/* 0x0a00 */ 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65, 15,183, 81, 2,
|
|
||||||
/* 0x0a10 */ 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115,
|
|
||||||
/* 0x0a20 */ 51, 65,137,195,184, 0, 8, 0, 0, 65,189, 8, 0, 0, 0, 41,
|
|
||||||
/* 0x0a30 */ 200,193,248, 5,141, 4, 2,102, 65,137, 65, 2, 72, 99, 4, 36,
|
|
||||||
/* 0x0a40 */ 72,193,224, 4, 77,141,132, 1, 4, 1, 0, 0, 65,185, 3, 0,
|
|
||||||
/* 0x0a50 */ 0, 0,235, 39, 65, 41,195, 65, 41,194,137,208,102,193,232, 5,
|
|
||||||
/* 0x0a60 */ 77,141,129, 4, 2, 0, 0, 65,189, 16, 0, 0, 0,102, 41,194,
|
|
||||||
/* 0x0a70 */ 102, 65,137, 81, 2, 65,185, 8, 0, 0, 0, 68,137,203,189, 1,
|
|
||||||
/* 0x0a80 */ 0, 0, 0, 72, 99,197, 65,129,251,255,255,255, 0, 73,141, 52,
|
|
||||||
/* 0x0a90 */ 64,119, 26, 76, 57,231, 15,132,135, 2, 0, 0, 15,182, 7, 65,
|
|
||||||
/* 0x0aa0 */ 193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183, 14,
|
|
||||||
/* 0x0ab0 */ 68,137,216,193,232, 11, 15,183,209, 15,175,194, 65, 57,194,115,
|
|
||||||
/* 0x0ac0 */ 23, 65,137,195,184, 0, 8, 0, 0, 1,237, 41,208,193,248, 5,
|
|
||||||
/* 0x0ad0 */ 141, 4, 1,102,137, 6,235, 22, 65, 41,195, 65, 41,194,137,200,
|
|
||||||
/* 0x0ae0 */ 102,193,232, 5,141,108, 45, 1,102, 41,193,102,137, 14,255,203,
|
|
||||||
/* 0x0af0 */ 117,145,184, 1, 0, 0, 0, 68,137,201,211,224, 41,197, 68, 1,
|
|
||||||
/* 0x0b00 */ 237,131,124, 36, 16, 3, 15,143,194, 1, 0, 0,131, 68, 36, 16,
|
|
||||||
/* 0x0b10 */ 7,184, 3, 0, 0, 0,131,253, 4, 15, 76,197, 72,139, 92, 36,
|
|
||||||
/* 0x0b20 */ 32, 65,184, 1, 0, 0, 0, 72,152, 72,193,224, 7, 76,141,140,
|
|
||||||
/* 0x0b30 */ 3, 96, 3, 0, 0,187, 6, 0, 0, 0, 73, 99,192, 65,129,251,
|
|
||||||
/* 0x0b40 */ 255,255,255, 0, 73,141, 52, 65,119, 26, 76, 57,231, 15,132,208,
|
|
||||||
/* 0x0b50 */ 1, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,
|
|
||||||
/* 0x0b60 */ 199, 65, 9,194, 15,183, 22, 68,137,216,193,232, 11, 15,183,202,
|
|
||||||
/* 0x0b70 */ 15,175,193, 65, 57,194,115, 24, 65,137,195,184, 0, 8, 0, 0,
|
|
||||||
/* 0x0b80 */ 69, 1,192, 41,200,193,248, 5,141, 4, 2,102,137, 6,235, 23,
|
|
||||||
/* 0x0b90 */ 65, 41,195, 65, 41,194,137,208,102,193,232, 5, 71,141, 68, 0,
|
|
||||||
/* 0x0ba0 */ 1,102, 41,194,102,137, 22,255,203,117,143, 65,131,232, 64, 65,
|
|
||||||
/* 0x0bb0 */ 131,248, 3, 69,137,198, 15,142, 13, 1, 0, 0, 65,131,230, 1,
|
|
||||||
/* 0x0bc0 */ 68,137,192,209,248, 65,131,206, 2, 65,131,248, 13,141,112,255,
|
|
||||||
/* 0x0bd0 */ 127, 35,137,241, 72,139, 92, 36, 32, 73, 99,192, 65,211,230, 72,
|
|
||||||
/* 0x0be0 */ 1,192, 68,137,242, 72,141, 20, 83, 72, 41,194, 76,141,138, 94,
|
|
||||||
/* 0x0bf0 */ 5, 0, 0,235, 81,141,112,251, 65,129,251,255,255,255, 0,119,
|
|
||||||
/* 0x0c00 */ 26, 76, 57,231, 15,132, 25, 1, 0, 0, 15,182, 7, 65,193,226,
|
|
||||||
/* 0x0c10 */ 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65,209,235, 69, 1,
|
|
||||||
/* 0x0c20 */ 246, 69, 57,218,114, 7, 69, 41,218, 65,131,206, 1,255,206,117,
|
|
||||||
/* 0x0c30 */ 199, 76,139, 76, 36, 32, 65,193,230, 4,190, 4, 0, 0, 0, 73,
|
|
||||||
/* 0x0c40 */ 129,193, 68, 6, 0, 0, 65,189, 1, 0, 0, 0,187, 1, 0, 0,
|
|
||||||
/* 0x0c50 */ 0, 72, 99,195, 65,129,251,255,255,255, 0, 77,141, 4, 65,119,
|
|
||||||
/* 0x0c60 */ 26, 76, 57,231, 15,132,185, 0, 0, 0, 15,182, 7, 65,193,226,
|
|
||||||
/* 0x0c70 */ 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65, 15,183, 16, 68,
|
|
||||||
/* 0x0c80 */ 137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 24,
|
|
||||||
/* 0x0c90 */ 65,137,195,184, 0, 8, 0, 0, 1,219, 41,200,193,248, 5,141,
|
|
||||||
/* 0x0ca0 */ 4, 2,102, 65,137, 0,235, 26, 65, 41,195, 65, 41,194,137,208,
|
|
||||||
/* 0x0cb0 */ 102,193,232, 5,141, 92, 27, 1, 69, 9,238,102, 41,194,102, 65,
|
|
||||||
/* 0x0cc0 */ 137, 16, 69, 1,237,255,206,117,136, 65,255,198,116, 64,131,197,
|
|
||||||
/* 0x0cd0 */ 2, 69, 57,254,119, 77, 72,139, 84, 36, 48, 68,137,248, 68, 41,
|
|
||||||
/* 0x0ce0 */ 240, 68, 15,182, 44, 2, 68,137,248, 65,255,199,255,205, 68,136,
|
|
||||||
/* 0x0cf0 */ 44, 2, 15,149,194, 49,192, 68, 59,124, 36, 44, 15,146,192,133,
|
|
||||||
/* 0x0d00 */ 194,117,211, 68, 59,124, 36, 44, 15,130, 73,247,255,255, 65,129,
|
|
||||||
/* 0x0d10 */ 251,255,255,255, 0,119, 22, 76, 57,231,184, 1, 0, 0, 0,116,
|
|
||||||
/* 0x0d20 */ 38,235, 7,184, 1, 0, 0, 0,235, 29, 72,255,199,137,248, 43,
|
|
||||||
/* 0x0d30 */ 68, 36, 64, 72,139, 76, 36, 56, 72,139,156, 36,128, 0, 0, 0,
|
|
||||||
/* 0x0d40 */ 137, 1, 68,137, 59, 49,192, 72,131,196, 72, 91, 93, 65, 92, 65,
|
|
||||||
/* 0x0d50 */ 93, 65, 94, 65, 95, 72,139,117,248, 72,139,125, 16,139, 75, 4,
|
|
||||||
/* 0x0d60 */ 72, 1,206,139, 19, 72, 1,215,201,201, 88, 94, 95, 88,137, 7,
|
|
||||||
/* 0x0d70 */ 72,141,190, 0, 0, 0, 0, 72,137,247, 86, 72,137,247, 72,199,
|
|
||||||
/* 0x0d80 */ 198, 0, 0, 0, 0,178, 0, 83, 87, 72,141, 76, 55,253, 94, 86,
|
|
||||||
/* 0x0d90 */ 91,235, 47, 72, 57,206,115, 50, 86, 94,172, 60,128,114, 10, 60,
|
|
||||||
/* 0x0da0 */ 143,119, 6,128,126,254, 15,116, 6, 44,232, 60, 1,119,228, 72,
|
|
||||||
/* 0x0db0 */ 57,206,115, 22, 86,173, 40,208,117,223, 95, 15,200, 41,248, 1,
|
|
||||||
/* 0x0dc0 */ 216,171, 72, 57,206,115, 3,172,235,223, 91, 94, 72,131,236, 40,
|
|
||||||
/* 0x0dd0 */ 72,141,190, 0, 0, 0, 0,139, 7, 9,192,116,255,139, 95, 4,
|
|
||||||
/* 0x0de0 */ 72,141,140, 48, 0, 0, 0, 0, 72, 1,243, 72,131,199, 8,255,
|
|
||||||
/* 0x0df0 */ 21, 0, 0, 0, 0, 72,149,138, 7, 72,255,199, 8,192,116,215,
|
|
||||||
/* 0x0e00 */ 121,255,122, 16,139, 7, 72,131,199, 4, 72,139,132, 48, 0, 0,
|
|
||||||
/* 0x0e10 */ 0, 0,235,255, 72, 15,183, 23, 72,131,199, 2,235,255, 72,137,
|
|
||||||
/* 0x0e20 */ 249, 72,137,250,255,200,242,174, 72,137,233,255, 21, 0, 0, 0,
|
|
||||||
/* 0x0e30 */ 0, 72, 9,192,116, 9, 72,137, 3, 72,131,195, 8,235,255, 72,
|
|
||||||
/* 0x0e40 */ 131,196, 40, 93, 95, 94, 91, 49,192,195,255, 37, 0, 0, 0, 0,
|
|
||||||
/* 0x0e50 */ 72,131,196, 40, 72,141,190, 0, 0, 0, 0, 72,131,199, 4, 72,
|
|
||||||
/* 0x0e60 */ 141, 94,252, 49,192,138, 7, 72,255,199, 9,192,116,255, 60,239,
|
|
||||||
/* 0x0e70 */ 119, 17, 72, 1,195, 72,139, 3, 72, 15,200, 72, 1,240, 72,137,
|
|
||||||
/* 0x0e80 */ 3,235,224, 36, 15,193,224, 16,102,139, 7, 72,131,199, 2, 9,
|
|
||||||
/* 0x0e90 */ 192,117,255,139, 7, 72,131,199, 4,235,255, 72,135,247, 72,141,
|
|
||||||
/* 0x0ea0 */ 143, 0, 0, 0, 0,235, 4,102, 1, 12, 7,173, 9,192,117,247,
|
|
||||||
/* 0x0eb0 */ 193,233, 16,235, 4,102, 1, 12, 7,173, 9,192,117,247, 72,139,
|
|
||||||
/* 0x0ec0 */ 45, 0, 0, 0, 0, 72,141,190, 0, 0, 0, 0,187, 0, 0, 0,
|
|
||||||
/* 0x0ed0 */ 128, 80, 73,137,225, 65,184, 4, 0, 0, 0, 72,137,218, 72,137,
|
|
||||||
/* 0x0ee0 */ 249, 72,131,236, 32,255,213, 72,141,135, 0, 0, 0, 0,128, 32,
|
|
||||||
/* 0x0ef0 */ 127,128, 96, 40,127, 76,141, 76, 36, 32, 77,139, 1, 72,137,218,
|
|
||||||
/* 0x0f00 */ 72,137,249,255,213, 72,131,196, 40,198, 5, 0, 0, 0, 0,252,
|
|
||||||
/* 0x0f10 */ 72,141,142, 0, 0, 0, 0,106, 1, 90, 77, 49,192, 80,232, 0,
|
|
||||||
/* 0x0f20 */ 0, 0, 0, 88, 93, 95, 94, 91, 72,141, 68, 36,128,106, 0, 72,
|
|
||||||
/* 0x0f30 */ 57,196,117,249, 72,131,236,128, 76,139, 68, 36, 24, 72,139, 84,
|
|
||||||
/* 0x0f40 */ 36, 16, 72,139, 76, 36, 8, 90, 89,106, 1, 88,195,233, 0, 0,
|
|
||||||
/* 0x0f50 */ 0, 0,195, 86, 72,141, 53, 0, 0, 0, 0, 72,173, 72,133,192,
|
|
||||||
/* 0x0f60 */ 116, 20, 81, 82, 65, 80, 72,131,236, 40,255,208, 72,131,196, 40,
|
|
||||||
/* 0x0f70 */ 65, 88, 90, 89,235,229, 94,195,117,115,101,114, 51, 50, 46,100,
|
|
||||||
/* 0x0f80 */ 108,108, 0, 0,0,0,0, 0,0,0,0,0,0,0,0, 85,
|
|
||||||
/* 0x0f90 */ 80, 88, 32, 67,117,115,116,111,109, 32, 83,116,117, 98, 0, 0,
|
|
||||||
/* 0x0fa0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
|
||||||
/* 0x0fb0 */ 0,0,0,0,0,0,0, 85, 80, 88, 33,161,216,208,213, 0,
|
|
||||||
/* 0x0fc0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
/* 0x0fd0 */ 0, 0, 0, 0, 0, 0, 45,102,105,108,101, 32,102,111,114,109,
|
|
||||||
/* 0x0fe0 */ 97,116, 32,101,108,102, 54, 52, 45,120, 56, 54, 45, 54, 52, 10,
|
|
||||||
/* 0x0ff0 */ 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78,
|
|
||||||
/* 0x1000 */ 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,
|
|
||||||
/* 0x1010 */ 101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x1020 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32,
|
|
||||||
/* 0x1030 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,
|
|
||||||
/* 0x1040 */ 111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115,
|
|
||||||
/* 0x1050 */ 10, 32, 32, 48, 32, 83, 84, 65, 82, 84, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x1060 */ 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 48, 32,
|
|
||||||
/* 0x1070 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10,
|
|
||||||
/* 0x1080 */ 32, 32, 49, 32, 80, 69, 73, 83, 68, 76, 76, 48, 32, 32, 32, 32,
|
|
||||||
/* 0x1090 */ 32, 32, 48,102, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 48, 32,
|
|
||||||
/* 0x10a0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10,
|
|
||||||
/* 0x10b0 */ 32, 32, 50, 32, 80, 69, 73, 83, 69, 70, 73, 48, 32, 32, 32, 32,
|
|
||||||
/* 0x10c0 */ 32, 32, 48, 50, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52,102, 32,
|
|
||||||
/* 0x10d0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10,
|
|
||||||
/* 0x10e0 */ 32, 32, 51, 32, 80, 69, 73, 83, 68, 76, 76, 49, 32, 32, 32, 32,
|
|
||||||
/* 0x10f0 */ 32, 32, 48, 57, 32, 32, 48, 32, 32, 48, 32, 32, 48, 53, 49, 32,
|
|
||||||
/* 0x1100 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10,
|
|
||||||
/* 0x1110 */ 32, 32, 52, 32, 80, 69, 77, 65, 73, 78, 48, 49, 32, 32, 32, 32,
|
|
||||||
/* 0x1120 */ 32, 32, 48, 52,100, 32, 32, 48, 32, 32, 48, 32, 32, 48, 53, 97,
|
|
||||||
/* 0x1130 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
|
|
||||||
/* 0x1140 */ 10, 32, 32, 53, 32, 80, 69, 73, 67, 79, 78, 83, 49, 32, 32, 32,
|
|
||||||
/* 0x1150 */ 32, 32, 32, 48, 55, 32, 32, 48, 32, 32, 48, 32, 32, 48, 97, 55,
|
|
||||||
/* 0x1160 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
|
|
||||||
/* 0x1170 */ 10, 32, 32, 54, 32, 80, 69, 73, 67, 79, 78, 83, 50, 32, 32, 32,
|
|
||||||
/* 0x1180 */ 32, 32, 32, 48, 57, 32, 32, 48, 32, 32, 48, 32, 32, 48, 97,101,
|
|
||||||
/* 0x1190 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
|
|
||||||
/* 0x11a0 */ 10, 32, 32, 55, 32, 80, 69, 84, 76, 83, 72, 65, 75, 32, 32, 32,
|
|
||||||
/* 0x11b0 */ 32, 32, 32, 48, 49, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 98,
|
|
||||||
/* 0x11c0 */ 55, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
|
|
||||||
/* 0x11d0 */ 83, 10, 32, 32, 56, 32, 80, 69, 77, 65, 73, 78, 48, 50, 32, 32,
|
|
||||||
/* 0x11e0 */ 32, 32, 32, 32, 48, 49, 32, 32, 48, 32, 32, 48, 32, 32, 48, 99,
|
|
||||||
/* 0x11f0 */ 55, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
|
|
||||||
/* 0x1200 */ 83, 10, 32, 32, 57, 32, 80, 69, 77, 65, 73, 78, 48, 51, 32, 32,
|
|
||||||
/* 0x1210 */ 32, 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 99, 56,
|
|
||||||
/* 0x1220 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
|
|
||||||
/* 0x1230 */ 10, 32, 49, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 32, 32,
|
|
||||||
/* 0x1240 */ 32, 32, 32, 48, 54, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 99,
|
|
||||||
/* 0x1250 */ 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
|
|
||||||
/* 0x1260 */ 83, 10, 32, 49, 49, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x1270 */ 32, 32, 32, 32, 48, 56, 51, 32, 32, 48, 32, 32, 48, 32, 32, 48,
|
|
||||||
/* 0x1280 */ 49, 50, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69,
|
|
||||||
/* 0x1290 */ 78, 84, 83, 10, 32, 49, 50, 32, 78, 82, 86, 50, 68, 32, 32, 32,
|
|
||||||
/* 0x12a0 */ 32, 32, 32, 32, 32, 32, 48, 57, 49, 32, 32, 48, 32, 32, 48, 32,
|
|
||||||
/* 0x12b0 */ 32, 48, 49, 97, 98, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
|
|
||||||
/* 0x12c0 */ 84, 69, 78, 84, 83, 10, 32, 49, 51, 32, 78, 82, 86, 50, 69, 32,
|
|
||||||
/* 0x12d0 */ 32, 32, 32, 32, 32, 32, 32, 32, 48, 97, 97, 32, 32, 48, 32, 32,
|
|
||||||
/* 0x12e0 */ 48, 32, 32, 48, 50, 51, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67,
|
|
||||||
/* 0x12f0 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 49, 52, 32, 76, 90, 77, 65,
|
|
||||||
/* 0x1300 */ 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 48, 49, 52, 32, 32, 48,
|
|
||||||
/* 0x1310 */ 32, 32, 48, 32, 32, 48, 50,101, 54, 32, 32, 50, 42, 42, 48, 32,
|
|
||||||
/* 0x1320 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 49, 53, 32, 76, 90,
|
|
||||||
/* 0x1330 */ 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 53, 97, 32,
|
|
||||||
/* 0x1340 */ 32, 48, 32, 32, 48, 32, 32, 48, 50,102, 97, 32, 32, 50, 42, 42,
|
|
||||||
/* 0x1350 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 49, 54, 32,
|
|
||||||
/* 0x1360 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 97,
|
|
||||||
/* 0x1370 */ 48, 49, 32, 32, 48, 32, 32, 48, 32, 32, 48, 51, 53, 52, 32, 32,
|
|
||||||
/* 0x1380 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32,
|
|
||||||
/* 0x1390 */ 49, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32,
|
|
||||||
/* 0x13a0 */ 32, 48, 49, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48,100, 53, 53,
|
|
||||||
/* 0x13b0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
|
|
||||||
/* 0x13c0 */ 10, 32, 49, 56, 32, 76, 90, 77, 65, 95, 84, 65, 73, 76, 32, 32,
|
|
||||||
/* 0x13d0 */ 32, 32, 32, 48, 50, 32, 32, 48, 32, 32, 48, 32, 32, 48,100, 54,
|
|
||||||
/* 0x13e0 */ 57, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
|
|
||||||
/* 0x13f0 */ 83, 10, 32, 49, 57, 32, 80, 69, 77, 65, 73, 78, 49, 48, 32, 32,
|
|
||||||
/* 0x1400 */ 32, 32, 32, 32, 48, 49, 32, 32, 48, 32, 32, 48, 32, 32, 48,100,
|
|
||||||
/* 0x1410 */ 54, 98, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
|
|
||||||
/* 0x1420 */ 84, 83, 10, 32, 50, 48, 32, 80, 69, 84, 76, 83, 72, 65, 75, 50,
|
|
||||||
/* 0x1430 */ 32, 32, 32, 32, 32, 48, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48,
|
|
||||||
/* 0x1440 */ 100, 54, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69,
|
|
||||||
/* 0x1450 */ 78, 84, 83, 10, 32, 50, 49, 32, 80, 69, 67, 84, 84, 80, 79, 83,
|
|
||||||
/* 0x1460 */ 32, 32, 32, 32, 32, 32, 48, 55, 32, 32, 48, 32, 32, 48, 32, 32,
|
|
||||||
/* 0x1470 */ 48,100, 55, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
|
|
||||||
/* 0x1480 */ 69, 78, 84, 83, 10, 32, 50, 50, 32, 80, 69, 67, 84, 84, 78, 85,
|
|
||||||
/* 0x1490 */ 76, 32, 32, 32, 32, 32, 32, 48, 51, 32, 32, 48, 32, 32, 48, 32,
|
|
||||||
/* 0x14a0 */ 32, 48,100, 55, 55, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
|
|
||||||
/* 0x14b0 */ 84, 69, 78, 84, 83, 10, 32, 50, 51, 32, 80, 69, 70, 73, 76, 84,
|
|
||||||
/* 0x14c0 */ 69, 82, 52, 57, 32, 32, 32, 32, 48, 53, 50, 32, 32, 48, 32, 32,
|
|
||||||
/* 0x14d0 */ 48, 32, 32, 48,100, 55, 97, 32, 32, 50, 42, 42, 48, 32, 32, 67,
|
|
||||||
/* 0x14e0 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 50, 52, 32, 80, 69, 73, 77,
|
|
||||||
/* 0x14f0 */ 80, 79, 82, 84, 32, 32, 32, 32, 32, 32, 48, 51, 52, 32, 32, 48,
|
|
||||||
/* 0x1500 */ 32, 32, 48, 32, 32, 48,100, 99, 99, 32, 32, 50, 42, 42, 48, 32,
|
|
||||||
/* 0x1510 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 50, 53, 32, 80, 69,
|
|
||||||
/* 0x1520 */ 73, 66, 89, 79, 82, 68, 32, 32, 32, 32, 32, 32, 48, 50, 32, 32,
|
|
||||||
/* 0x1530 */ 48, 32, 32, 48, 32, 32, 48,101, 48, 48, 32, 32, 50, 42, 42, 48,
|
|
||||||
/* 0x1540 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 50, 54, 32, 80,
|
|
||||||
/* 0x1550 */ 69, 75, 51, 50, 79, 82, 68, 32, 32, 32, 32, 32, 32, 48, 49, 50,
|
|
||||||
/* 0x1560 */ 32, 32, 48, 32, 32, 48, 32, 32, 48,101, 48, 50, 32, 32, 50, 42,
|
|
||||||
/* 0x1570 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 50, 55,
|
|
||||||
/* 0x1580 */ 32, 80, 69, 73, 77, 79, 82, 68, 49, 32, 32, 32, 32, 32, 32, 48,
|
|
||||||
/* 0x1590 */ 97, 32, 32, 48, 32, 32, 48, 32, 32, 48,101, 49, 52, 32, 32, 50,
|
|
||||||
/* 0x15a0 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 50,
|
|
||||||
/* 0x15b0 */ 56, 32, 80, 69, 73, 77, 80, 79, 82, 50, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x15c0 */ 48, 50, 49, 32, 32, 48, 32, 32, 48, 32, 32, 48,101, 49,101, 32,
|
|
||||||
/* 0x15d0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10,
|
|
||||||
/* 0x15e0 */ 32, 50, 57, 32, 80, 69, 73, 69, 82, 68, 76, 76, 32, 32, 32, 32,
|
|
||||||
/* 0x15f0 */ 32, 32, 48, 98, 32, 32, 48, 32, 32, 48, 32, 32, 48,101, 51,102,
|
|
||||||
/* 0x1600 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
|
|
||||||
/* 0x1610 */ 10, 32, 51, 48, 32, 80, 69, 73, 69, 82, 69, 88, 69, 32, 32, 32,
|
|
||||||
/* 0x1620 */ 32, 32, 32, 48, 54, 32, 32, 48, 32, 32, 48, 32, 32, 48,101, 52,
|
|
||||||
/* 0x1630 */ 97, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
|
|
||||||
/* 0x1640 */ 83, 10, 32, 51, 49, 32, 80, 69, 73, 77, 68, 79, 78, 69, 32, 32,
|
|
||||||
/* 0x1650 */ 32, 32, 32, 32, 48, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48,101,
|
|
||||||
/* 0x1660 */ 53, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
|
|
||||||
/* 0x1670 */ 84, 83, 10, 32, 51, 50, 32, 80, 69, 82, 69, 76, 79, 67, 49, 32,
|
|
||||||
/* 0x1680 */ 32, 32, 32, 32, 32, 48, 55, 32, 32, 48, 32, 32, 48, 32, 32, 48,
|
|
||||||
/* 0x1690 */ 101, 53, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69,
|
|
||||||
/* 0x16a0 */ 78, 84, 83, 10, 32, 51, 51, 32, 80, 69, 82, 69, 76, 79, 67, 50,
|
|
||||||
/* 0x16b0 */ 32, 32, 32, 32, 32, 32, 48, 52, 32, 32, 48, 32, 32, 48, 32, 32,
|
|
||||||
/* 0x16c0 */ 48,101, 53, 98, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
|
|
||||||
/* 0x16d0 */ 69, 78, 84, 83, 10, 32, 51, 52, 32, 80, 69, 82, 69, 76, 79, 67,
|
|
||||||
/* 0x16e0 */ 51, 32, 32, 32, 32, 32, 32, 48, 51, 48, 32, 32, 48, 32, 32, 48,
|
|
||||||
/* 0x16f0 */ 32, 32, 48,101, 53,102, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
|
|
||||||
/* 0x1700 */ 78, 84, 69, 78, 84, 83, 10, 32, 51, 53, 32, 82, 69, 76, 54, 52,
|
|
||||||
/* 0x1710 */ 66, 73, 71, 32, 32, 32, 32, 32, 32, 48, 97, 32, 32, 48, 32, 32,
|
|
||||||
/* 0x1720 */ 48, 32, 32, 48,101, 56,102, 32, 32, 50, 42, 42, 48, 32, 32, 67,
|
|
||||||
/* 0x1730 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 51, 54, 32, 82, 69, 76, 79,
|
|
||||||
/* 0x1740 */ 67, 54, 52, 74, 32, 32, 32, 32, 32, 32, 48, 50, 32, 32, 48, 32,
|
|
||||||
/* 0x1750 */ 32, 48, 32, 32, 48,101, 57, 57, 32, 32, 50, 42, 42, 48, 32, 32,
|
|
||||||
/* 0x1760 */ 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 51, 55, 32, 80, 69, 82,
|
|
||||||
/* 0x1770 */ 76, 79, 72, 73, 48, 32, 32, 32, 32, 32, 32, 48, 97, 32, 32, 48,
|
|
||||||
/* 0x1780 */ 32, 32, 48, 32, 32, 48,101, 57, 98, 32, 32, 50, 42, 42, 48, 32,
|
|
||||||
/* 0x1790 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 51, 56, 32, 80, 69,
|
|
||||||
/* 0x17a0 */ 82, 69, 76, 76, 79, 48, 32, 32, 32, 32, 32, 32, 48, 98, 32, 32,
|
|
||||||
/* 0x17b0 */ 48, 32, 32, 48, 32, 32, 48,101, 97, 53, 32, 32, 50, 42, 42, 48,
|
|
||||||
/* 0x17c0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 51, 57, 32, 80,
|
|
||||||
/* 0x17d0 */ 69, 82, 69, 76, 72, 73, 48, 32, 32, 32, 32, 32, 32, 48,101, 32,
|
|
||||||
/* 0x17e0 */ 32, 48, 32, 32, 48, 32, 32, 48,101, 98, 48, 32, 32, 50, 42, 42,
|
|
||||||
/* 0x17f0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 52, 48, 32,
|
|
||||||
/* 0x1800 */ 80, 69, 68, 69, 80, 72, 65, 75, 32, 32, 32, 32, 32, 32, 48, 52,
|
|
||||||
/* 0x1810 */ 98, 32, 32, 48, 32, 32, 48, 32, 32, 48,101, 98,101, 32, 32, 50,
|
|
||||||
/* 0x1820 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 52,
|
|
||||||
/* 0x1830 */ 49, 32, 80, 69, 84, 76, 83, 67, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x1840 */ 48, 49, 98, 32, 32, 48, 32, 32, 48, 32, 32, 48,102, 48, 57, 32,
|
|
||||||
/* 0x1850 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10,
|
|
||||||
/* 0x1860 */ 32, 52, 50, 32, 80, 69, 77, 65, 73, 78, 50, 48, 32, 32, 32, 32,
|
|
||||||
/* 0x1870 */ 32, 32, 48, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48,102, 50, 52,
|
|
||||||
/* 0x1880 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
|
|
||||||
/* 0x1890 */ 10, 32, 52, 51, 32, 67, 76, 69, 65, 82, 83, 84, 65, 67, 75, 32,
|
|
||||||
/* 0x18a0 */ 32, 32, 32, 48, 49, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48,102,
|
|
||||||
/* 0x18b0 */ 50, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
|
|
||||||
/* 0x18c0 */ 84, 83, 10, 32, 52, 52, 32, 80, 69, 77, 65, 73, 78, 50, 49, 32,
|
|
||||||
/* 0x18d0 */ 32, 32, 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48,102,
|
|
||||||
/* 0x18e0 */ 51, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
|
|
||||||
/* 0x18f0 */ 84, 83, 10, 32, 52, 53, 32, 80, 69, 73, 83, 68, 76, 76, 57, 32,
|
|
||||||
/* 0x1900 */ 32, 32, 32, 32, 32, 48,102, 32, 32, 48, 32, 32, 48, 32, 32, 48,
|
|
||||||
/* 0x1910 */ 102, 51, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69,
|
|
||||||
/* 0x1920 */ 78, 84, 83, 10, 32, 52, 54, 32, 80, 69, 73, 83, 69, 70, 73, 57,
|
|
||||||
/* 0x1930 */ 32, 32, 32, 32, 32, 32, 48, 50, 32, 32, 48, 32, 32, 48, 32, 32,
|
|
||||||
/* 0x1940 */ 48,102, 52, 55, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
|
|
||||||
/* 0x1950 */ 69, 78, 84, 83, 10, 32, 52, 55, 32, 80, 69, 82, 69, 84, 85, 82,
|
|
||||||
/* 0x1960 */ 78, 32, 32, 32, 32, 32, 32, 48, 52, 32, 32, 48, 32, 32, 48, 32,
|
|
||||||
/* 0x1970 */ 32, 48,102, 52, 57, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
|
|
||||||
/* 0x1980 */ 84, 69, 78, 84, 83, 10, 32, 52, 56, 32, 80, 69, 68, 79, 74, 85,
|
|
||||||
/* 0x1990 */ 77, 80, 32, 32, 32, 32, 32, 32, 48, 53, 32, 32, 48, 32, 32, 48,
|
|
||||||
/* 0x19a0 */ 32, 32, 48,102, 52,100, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
|
|
||||||
/* 0x19b0 */ 78, 84, 69, 78, 84, 83, 10, 32, 52, 57, 32, 80, 69, 84, 76, 83,
|
|
||||||
/* 0x19c0 */ 67, 50, 32, 32, 32, 32, 32, 32, 32, 48, 54, 53, 32, 32, 48, 32,
|
|
||||||
/* 0x19d0 */ 32, 48, 32, 32, 48,102, 53, 50, 32, 32, 50, 42, 42, 48, 32, 32,
|
|
||||||
/* 0x19e0 */ 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 53, 48, 32, 85, 80, 88,
|
|
||||||
/* 0x19f0 */ 49, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 50, 48, 32, 32,
|
|
||||||
/* 0x1a00 */ 48, 32, 32, 48, 32, 32, 48,102, 98, 55, 32, 32, 50, 42, 42, 48,
|
|
||||||
/* 0x1a10 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79,
|
|
||||||
/* 0x1a20 */ 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1a30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
|
|
||||||
/* 0x1a40 */ 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 48, 32, 78, 82, 86,
|
|
||||||
/* 0x1a50 */ 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1a60 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, 32, 32, 32, 80,
|
|
||||||
/* 0x1a70 */ 69, 73, 77, 68, 79, 78, 69, 32, 48, 32,105,109,112,111,114,116,
|
|
||||||
/* 0x1a80 */ 115, 95,100,111,110,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1a90 */ 48, 48, 48, 48, 48, 50, 98, 32,108, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x1aa0 */ 80, 69, 73, 77, 80, 79, 82, 84, 32, 48, 32,110,101,120,116, 95,
|
|
||||||
/* 0x1ab0 */ 102,117,110, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1ac0 */ 48, 48, 48, 48, 97, 32,108, 32, 32, 32, 32, 32, 32, 32, 80, 69,
|
|
||||||
/* 0x1ad0 */ 73, 77, 79, 82, 68, 49, 32, 48, 32, 98,121,110, 97,109,101, 10,
|
|
||||||
/* 0x1ae0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 56,
|
|
||||||
/* 0x1af0 */ 32,108, 32, 32, 32, 32, 32, 32, 32, 80, 69, 73, 77, 80, 79, 82,
|
|
||||||
/* 0x1b00 */ 50, 32, 48, 32,110,101,120,116, 95,105,109,112, 10, 48, 48, 48,
|
|
||||||
/* 0x1b10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 97, 32,108, 32,
|
|
||||||
/* 0x1b20 */ 32, 32, 32, 32, 32, 32, 80, 69, 73, 77, 80, 79, 82, 50, 32, 48,
|
|
||||||
/* 0x1b30 */ 32,102,105,114,115,116, 95,105,109,112, 10, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1b40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 32,108, 32, 32, 32,
|
|
||||||
/* 0x1b50 */ 32, 32, 32, 32, 82, 69, 76, 79, 67, 54, 52, 74, 32, 48, 32,114,
|
|
||||||
/* 0x1b60 */ 101,108,111, 99, 95,101,110,100,120, 10, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1b70 */ 48, 48, 48, 48, 48, 48, 48, 48, 49, 51, 32,108, 32, 32, 32, 32,
|
|
||||||
/* 0x1b80 */ 32, 32, 32, 80, 69, 82, 69, 76, 79, 67, 51, 32, 48, 32,114,101,
|
|
||||||
/* 0x1b90 */ 108,111, 99, 95, 97,100,100, 10, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1ba0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32,
|
|
||||||
/* 0x1bb0 */ 32, 80, 69, 84, 76, 83, 67, 50, 32, 48, 32, 80, 69, 84, 76, 83,
|
|
||||||
/* 0x1bc0 */ 67, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1bd0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 69, 77, 65,
|
|
||||||
/* 0x1be0 */ 73, 78, 50, 49, 32, 48, 32, 80, 69, 77, 65, 73, 78, 50, 49, 10,
|
|
||||||
/* 0x1bf0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1c00 */ 32,108, 32, 32, 32, 32,100, 32, 32, 83, 84, 65, 82, 84, 32, 48,
|
|
||||||
/* 0x1c10 */ 32, 83, 84, 65, 82, 84, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1c20 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
|
|
||||||
/* 0x1c30 */ 80, 69, 73, 83, 68, 76, 76, 48, 32, 48, 32, 80, 69, 73, 83, 68,
|
|
||||||
/* 0x1c40 */ 76, 76, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1c50 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 69, 73,
|
|
||||||
/* 0x1c60 */ 83, 69, 70, 73, 48, 32, 48, 32, 80, 69, 73, 83, 69, 70, 73, 48,
|
|
||||||
/* 0x1c70 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1c80 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 69, 73, 83, 68, 76,
|
|
||||||
/* 0x1c90 */ 76, 49, 32, 48, 32, 80, 69, 73, 83, 68, 76, 76, 49, 10, 48, 48,
|
|
||||||
/* 0x1ca0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
|
|
||||||
/* 0x1cb0 */ 32, 32, 32, 32,100, 32, 32, 80, 69, 77, 65, 73, 78, 48, 49, 32,
|
|
||||||
/* 0x1cc0 */ 48, 32, 80, 69, 77, 65, 73, 78, 48, 49, 10, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1cd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
|
|
||||||
/* 0x1ce0 */ 32,100, 32, 32, 80, 69, 73, 67, 79, 78, 83, 49, 32, 48, 32, 80,
|
|
||||||
/* 0x1cf0 */ 69, 73, 67, 79, 78, 83, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1d00 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32,
|
|
||||||
/* 0x1d10 */ 32, 80, 69, 73, 67, 79, 78, 83, 50, 32, 48, 32, 80, 69, 73, 67,
|
|
||||||
/* 0x1d20 */ 79, 78, 83, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1d30 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 69,
|
|
||||||
/* 0x1d40 */ 84, 76, 83, 72, 65, 75, 32, 48, 32, 80, 69, 84, 76, 83, 72, 65,
|
|
||||||
/* 0x1d50 */ 75, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1d60 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 69, 77, 65, 73,
|
|
||||||
/* 0x1d70 */ 78, 48, 50, 32, 48, 32, 80, 69, 77, 65, 73, 78, 48, 50, 10, 48,
|
|
||||||
/* 0x1d80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
|
||||||
/* 0x1d90 */ 108, 32, 32, 32, 32,100, 32, 32, 80, 69, 77, 65, 73, 78, 48, 51,
|
|
||||||
/* 0x1da0 */ 32, 48, 32, 80, 69, 77, 65, 73, 78, 48, 51, 10, 48, 48, 48, 48,
|
|
||||||
/* 0x1db0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32,
|
|
||||||
/* 0x1dc0 */ 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 32, 48, 32, 78, 82, 86,
|
|
||||||
/* 0x1dd0 */ 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1de0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50,
|
|
||||||
/* 0x1df0 */ 68, 32, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1e00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,
|
|
||||||
/* 0x1e10 */ 100, 32, 32, 78, 82, 86, 50, 69, 32, 48, 32, 78, 82, 86, 50, 69,
|
|
||||||
/* 0x1e20 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1e30 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 72,
|
|
||||||
/* 0x1e40 */ 69, 65, 68, 32, 48, 32, 76, 90, 77, 65, 95, 72, 69, 65, 68, 10,
|
|
||||||
/* 0x1e50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1e60 */ 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76,
|
|
||||||
/* 0x1e70 */ 70, 48, 48, 32, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48,
|
|
||||||
/* 0x1e80 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1e90 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68,
|
|
||||||
/* 0x1ea0 */ 69, 67, 50, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50,
|
|
||||||
/* 0x1eb0 */ 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1ec0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95,
|
|
||||||
/* 0x1ed0 */ 68, 69, 67, 51, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67,
|
|
||||||
/* 0x1ee0 */ 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1ef0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65,
|
|
||||||
/* 0x1f00 */ 95, 84, 65, 73, 76, 32, 48, 32, 76, 90, 77, 65, 95, 84, 65, 73,
|
|
||||||
/* 0x1f10 */ 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1f20 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 69, 77, 65, 73,
|
|
||||||
/* 0x1f30 */ 78, 49, 48, 32, 48, 32, 80, 69, 77, 65, 73, 78, 49, 48, 10, 48,
|
|
||||||
/* 0x1f40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
|
||||||
/* 0x1f50 */ 108, 32, 32, 32, 32,100, 32, 32, 80, 69, 84, 76, 83, 72, 65, 75,
|
|
||||||
/* 0x1f60 */ 50, 32, 48, 32, 80, 69, 84, 76, 83, 72, 65, 75, 50, 10, 48, 48,
|
|
||||||
/* 0x1f70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
|
|
||||||
/* 0x1f80 */ 32, 32, 32, 32,100, 32, 32, 80, 69, 67, 84, 84, 80, 79, 83, 32,
|
|
||||||
/* 0x1f90 */ 48, 32, 80, 69, 67, 84, 84, 80, 79, 83, 10, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1fa0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
|
|
||||||
/* 0x1fb0 */ 32,100, 32, 32, 80, 69, 67, 84, 84, 78, 85, 76, 32, 48, 32, 80,
|
|
||||||
/* 0x1fc0 */ 69, 67, 84, 84, 78, 85, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x1fd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32,
|
|
||||||
/* 0x1fe0 */ 32, 80, 69, 70, 73, 76, 84, 69, 82, 52, 57, 32, 48, 32, 80, 69,
|
|
||||||
/* 0x1ff0 */ 70, 73, 76, 84, 69, 82, 52, 57, 10, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2000 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
|
|
||||||
/* 0x2010 */ 32, 32, 80, 69, 73, 77, 80, 79, 82, 84, 32, 48, 32, 80, 69, 73,
|
|
||||||
/* 0x2020 */ 77, 80, 79, 82, 84, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2030 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80,
|
|
||||||
/* 0x2040 */ 69, 73, 66, 89, 79, 82, 68, 32, 48, 32, 80, 69, 73, 66, 89, 79,
|
|
||||||
/* 0x2050 */ 82, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2060 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 69, 75, 51,
|
|
||||||
/* 0x2070 */ 50, 79, 82, 68, 32, 48, 32, 80, 69, 75, 51, 50, 79, 82, 68, 10,
|
|
||||||
/* 0x2080 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2090 */ 32,108, 32, 32, 32, 32,100, 32, 32, 80, 69, 73, 77, 79, 82, 68,
|
|
||||||
/* 0x20a0 */ 49, 32, 48, 32, 80, 69, 73, 77, 79, 82, 68, 49, 10, 48, 48, 48,
|
|
||||||
/* 0x20b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
|
|
||||||
/* 0x20c0 */ 32, 32, 32,100, 32, 32, 80, 69, 73, 77, 80, 79, 82, 50, 32, 48,
|
|
||||||
/* 0x20d0 */ 32, 80, 69, 73, 77, 80, 79, 82, 50, 10, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x20e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,
|
|
||||||
/* 0x20f0 */ 100, 32, 32, 80, 69, 73, 69, 82, 68, 76, 76, 32, 48, 32, 80, 69,
|
|
||||||
/* 0x2100 */ 73, 69, 82, 68, 76, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2110 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
|
|
||||||
/* 0x2120 */ 80, 69, 73, 69, 82, 69, 88, 69, 32, 48, 32, 80, 69, 73, 69, 82,
|
|
||||||
/* 0x2130 */ 69, 88, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2140 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 69, 73,
|
|
||||||
/* 0x2150 */ 77, 68, 79, 78, 69, 32, 48, 32, 80, 69, 73, 77, 68, 79, 78, 69,
|
|
||||||
/* 0x2160 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2170 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 69, 82, 69, 76, 79,
|
|
||||||
/* 0x2180 */ 67, 49, 32, 48, 32, 80, 69, 82, 69, 76, 79, 67, 49, 10, 48, 48,
|
|
||||||
/* 0x2190 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
|
|
||||||
/* 0x21a0 */ 32, 32, 32, 32,100, 32, 32, 80, 69, 82, 69, 76, 79, 67, 50, 32,
|
|
||||||
/* 0x21b0 */ 48, 32, 80, 69, 82, 69, 76, 79, 67, 50, 10, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x21c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
|
|
||||||
/* 0x21d0 */ 32,100, 32, 32, 80, 69, 82, 69, 76, 79, 67, 51, 32, 48, 32, 80,
|
|
||||||
/* 0x21e0 */ 69, 82, 69, 76, 79, 67, 51, 10, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x21f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32,
|
|
||||||
/* 0x2200 */ 32, 82, 69, 76, 54, 52, 66, 73, 71, 32, 48, 32, 82, 69, 76, 54,
|
|
||||||
/* 0x2210 */ 52, 66, 73, 71, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2220 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 82, 69,
|
|
||||||
/* 0x2230 */ 76, 79, 67, 54, 52, 74, 32, 48, 32, 82, 69, 76, 79, 67, 54, 52,
|
|
||||||
/* 0x2240 */ 74, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2250 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 69, 82, 76, 79,
|
|
||||||
/* 0x2260 */ 72, 73, 48, 32, 48, 32, 80, 69, 82, 76, 79, 72, 73, 48, 10, 48,
|
|
||||||
/* 0x2270 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
|
||||||
/* 0x2280 */ 108, 32, 32, 32, 32,100, 32, 32, 80, 69, 82, 69, 76, 76, 79, 48,
|
|
||||||
/* 0x2290 */ 32, 48, 32, 80, 69, 82, 69, 76, 76, 79, 48, 10, 48, 48, 48, 48,
|
|
||||||
/* 0x22a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32,
|
|
||||||
/* 0x22b0 */ 32, 32,100, 32, 32, 80, 69, 82, 69, 76, 72, 73, 48, 32, 48, 32,
|
|
||||||
/* 0x22c0 */ 80, 69, 82, 69, 76, 72, 73, 48, 10, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x22d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
|
|
||||||
/* 0x22e0 */ 32, 32, 80, 69, 68, 69, 80, 72, 65, 75, 32, 48, 32, 80, 69, 68,
|
|
||||||
/* 0x22f0 */ 69, 80, 72, 65, 75, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2300 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80,
|
|
||||||
/* 0x2310 */ 69, 84, 76, 83, 67, 32, 48, 32, 80, 69, 84, 76, 83, 67, 10, 48,
|
|
||||||
/* 0x2320 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
|
||||||
/* 0x2330 */ 108, 32, 32, 32, 32,100, 32, 32, 80, 69, 77, 65, 73, 78, 50, 48,
|
|
||||||
/* 0x2340 */ 32, 48, 32, 80, 69, 77, 65, 73, 78, 50, 48, 10, 48, 48, 48, 48,
|
|
||||||
/* 0x2350 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32,
|
|
||||||
/* 0x2360 */ 32, 32,100, 32, 32, 67, 76, 69, 65, 82, 83, 84, 65, 67, 75, 32,
|
|
||||||
/* 0x2370 */ 48, 32, 67, 76, 69, 65, 82, 83, 84, 65, 67, 75, 10, 48, 48, 48,
|
|
||||||
/* 0x2380 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
|
|
||||||
/* 0x2390 */ 32, 32, 32,100, 32, 32, 80, 69, 73, 83, 68, 76, 76, 57, 32, 48,
|
|
||||||
/* 0x23a0 */ 32, 80, 69, 73, 83, 68, 76, 76, 57, 10, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x23b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,
|
|
||||||
/* 0x23c0 */ 100, 32, 32, 80, 69, 73, 83, 69, 70, 73, 57, 32, 48, 32, 80, 69,
|
|
||||||
/* 0x23d0 */ 73, 83, 69, 70, 73, 57, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x23e0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
|
|
||||||
/* 0x23f0 */ 80, 69, 82, 69, 84, 85, 82, 78, 32, 48, 32, 80, 69, 82, 69, 84,
|
|
||||||
/* 0x2400 */ 85, 82, 78, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2410 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 69, 68,
|
|
||||||
/* 0x2420 */ 79, 74, 85, 77, 80, 32, 48, 32, 80, 69, 68, 79, 74, 85, 77, 80,
|
|
||||||
/* 0x2430 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2440 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 85, 80, 88, 49, 72, 69,
|
|
||||||
/* 0x2450 */ 65, 68, 32, 48, 32, 85, 80, 88, 49, 72, 69, 65, 68, 10, 48, 48,
|
|
||||||
/* 0x2460 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
|
|
||||||
/* 0x2470 */ 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32, 76,
|
|
||||||
/* 0x2480 */ 111, 97,100, 76,105, 98,114, 97,114,121, 65, 10, 48, 48, 48, 48,
|
|
||||||
/* 0x2490 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32,
|
|
||||||
/* 0x24a0 */ 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32, 71,101,116,
|
|
||||||
/* 0x24b0 */ 80,114,111, 99, 65,100,100,114,101,115,115, 10, 48, 48, 48, 48,
|
|
||||||
/* 0x24c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32,
|
|
||||||
/* 0x24d0 */ 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32,115,116, 97,
|
|
||||||
/* 0x24e0 */ 114,116, 95,111,102, 95, 99,111,109,112,114,101,115,115,101,100,
|
|
||||||
/* 0x24f0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2500 */ 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32,
|
|
||||||
/* 0x2510 */ 48, 32,115,116, 97,114,116, 95,111,102, 95,117,110, 99,111,109,
|
|
||||||
/* 0x2520 */ 112,114,101,115,115,101,100, 10, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2530 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x2540 */ 32, 42, 85, 78, 68, 42, 32, 48, 32,105, 99,111,110, 95,111,102,
|
|
||||||
/* 0x2550 */ 102,115,101,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2560 */ 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85,
|
|
||||||
/* 0x2570 */ 78, 68, 42, 32, 48, 32,105, 99,111,110, 95,100,101,108,116, 97,
|
|
||||||
/* 0x2580 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2590 */ 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32,
|
|
||||||
/* 0x25a0 */ 48, 32,116,108,115, 95, 97,100,100,114,101,115,115, 10, 48, 48,
|
|
||||||
/* 0x25b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
|
|
||||||
/* 0x25c0 */ 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32,116,
|
|
||||||
/* 0x25d0 */ 108,115, 95,118, 97,108,117,101, 10, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x25e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x25f0 */ 32, 32, 42, 85, 78, 68, 42, 32, 48, 32,108,122,109, 97, 95,117,
|
|
||||||
/* 0x2600 */ 95,108,101,110, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2610 */ 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85,
|
|
||||||
/* 0x2620 */ 78, 68, 42, 32, 48, 32,108,122,109, 97, 95, 99, 95,108,101,110,
|
|
||||||
/* 0x2630 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2640 */ 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32,
|
|
||||||
/* 0x2650 */ 48, 32,102,105,108,116,101,114, 95, 98,117,102,102,101,114, 95,
|
|
||||||
/* 0x2660 */ 115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2670 */ 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42,
|
|
||||||
/* 0x2680 */ 85, 78, 68, 42, 32, 48, 32,102,105,108,116,101,114, 95,108,101,
|
|
||||||
/* 0x2690 */ 110,103,116,104, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x26a0 */ 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85,
|
|
||||||
/* 0x26b0 */ 78, 68, 42, 32, 48, 32,102,105,108,116,101,114, 95, 99,116,111,
|
|
||||||
/* 0x26c0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x26d0 */ 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32,
|
|
||||||
/* 0x26e0 */ 48, 32, 99,111,109,112,114,101,115,115,101,100, 95,105,109,112,
|
|
||||||
/* 0x26f0 */ 111,114,116,115, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2700 */ 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85,
|
|
||||||
/* 0x2710 */ 78, 68, 42, 32, 48, 32,115,116, 97,114,116, 95,111,102, 95,105,
|
|
||||||
/* 0x2720 */ 109,112,111,114,116,115, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2730 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x2740 */ 42, 85, 78, 68, 42, 32, 48, 32,107,101,114,110,101,108, 51, 50,
|
|
||||||
/* 0x2750 */ 95,111,114,100,105,110, 97,108,115, 10, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2760 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x2770 */ 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32, 69,120,105,116, 80,
|
|
||||||
/* 0x2780 */ 114,111, 99,101,115,115, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2790 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x27a0 */ 42, 85, 78, 68, 42, 32, 48, 32,115,116, 97,114,116, 95,111,102,
|
|
||||||
/* 0x27b0 */ 95,114,101,108,111, 99,115, 10, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x27c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x27d0 */ 32, 42, 85, 78, 68, 42, 32, 48, 32,114,101,108,111, 99, 95,100,
|
|
||||||
/* 0x27e0 */ 101,108,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x27f0 */ 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78,
|
|
||||||
/* 0x2800 */ 68, 42, 32, 48, 32, 86,105,114,116,117, 97,108, 80,114,111,116,
|
|
||||||
/* 0x2810 */ 101, 99,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2820 */ 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78,
|
|
||||||
/* 0x2830 */ 68, 42, 32, 48, 32,118,112, 95, 98, 97,115,101, 10, 48, 48, 48,
|
|
||||||
/* 0x2840 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32,
|
|
||||||
/* 0x2850 */ 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32,118,112,
|
|
||||||
/* 0x2860 */ 95,115,105,122,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2870 */ 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42,
|
|
||||||
/* 0x2880 */ 85, 78, 68, 42, 32, 48, 32,115,119,114,105, 10, 48, 48, 48, 48,
|
|
||||||
/* 0x2890 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32,
|
|
||||||
/* 0x28a0 */ 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32,116,108,115,
|
|
||||||
/* 0x28b0 */ 95,109,111,100,117,108,101, 95, 98, 97,115,101, 10, 48, 48, 48,
|
|
||||||
/* 0x28c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32,
|
|
||||||
/* 0x28d0 */ 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32,111,114,
|
|
||||||
/* 0x28e0 */ 105,103,105,110, 97,108, 95,101,110,116,114,121, 10, 48, 48, 48,
|
|
||||||
/* 0x28f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32,
|
|
||||||
/* 0x2900 */ 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32,116,108,
|
|
||||||
/* 0x2910 */ 115, 95, 99, 97,108,108, 98, 97, 99,107,115, 95,112,116,114, 10,
|
|
||||||
/* 0x2920 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79,
|
|
||||||
/* 0x2930 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 80, 69, 73, 83, 68, 76, 76,
|
|
||||||
/* 0x2940 */ 49, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x2950 */ 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x2960 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48,
|
|
||||||
/* 0x2970 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 32, 82, 95,
|
|
||||||
/* 0x2980 */ 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x2990 */ 80, 69, 77, 65, 73, 78, 50, 49, 45, 48,120, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x29a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 10, 10, 82, 69, 76,
|
|
||||||
/* 0x29b0 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32,
|
|
||||||
/* 0x29c0 */ 70, 79, 82, 32, 91, 80, 69, 77, 65, 73, 78, 48, 49, 93, 58, 10,
|
|
||||||
/* 0x29d0 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x29e0 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x29f0 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2a00 */ 48, 48, 48, 48, 48, 48, 48, 48, 98, 32, 82, 95, 88, 56, 54, 95,
|
|
||||||
/* 0x2a10 */ 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 80, 69, 84, 76,
|
|
||||||
/* 0x2a20 */ 83, 67, 50, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2a30 */ 48, 48, 48, 48, 50, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2a40 */ 48, 48, 48, 48, 48, 49, 49, 32, 82, 95, 88, 56, 54, 95, 54, 52,
|
|
||||||
/* 0x2a50 */ 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 76,111, 97,100, 76,105,
|
|
||||||
/* 0x2a60 */ 98,114, 97,114,121, 65, 45, 48,120, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2a70 */ 48, 48, 48, 48, 48, 48, 48, 48, 52, 10, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2a80 */ 48, 48, 48, 48, 48, 48, 48, 48, 49, 98, 32, 82, 95, 88, 56, 54,
|
|
||||||
/* 0x2a90 */ 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 80, 69, 84,
|
|
||||||
/* 0x2aa0 */ 76, 83, 67, 50, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2ab0 */ 48, 48, 48, 48, 48, 50,100, 10, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2ac0 */ 48, 48, 48, 48, 48, 48, 50, 49, 32, 82, 95, 88, 56, 54, 95, 54,
|
|
||||||
/* 0x2ad0 */ 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 71,101,116, 80,114,
|
|
||||||
/* 0x2ae0 */ 111, 99, 65,100,100,114,101,115,115, 45, 48,120, 48, 48, 48, 48,
|
|
||||||
/* 0x2af0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 10, 48, 48, 48,
|
|
||||||
/* 0x2b00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 98, 32, 82, 95,
|
|
||||||
/* 0x2b10 */ 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x2b20 */ 80, 69, 84, 76, 83, 67, 50, 43, 48,120, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2b30 */ 48, 48, 48, 48, 48, 48, 48, 48, 52, 57, 10, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2b40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 51, 50, 32, 82, 95, 88, 56,
|
|
||||||
/* 0x2b50 */ 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 80, 69,
|
|
||||||
/* 0x2b60 */ 84, 76, 83, 67, 50, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2b70 */ 48, 48, 48, 48, 48, 48, 51, 57, 10, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2b80 */ 48, 48, 48, 48, 48, 48, 48, 52, 50, 32, 82, 95, 88, 56, 54, 95,
|
|
||||||
/* 0x2b90 */ 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,115,116, 97,114,
|
|
||||||
/* 0x2ba0 */ 116, 95,111,102, 95, 99,111,109,112,114,101,115,115,101,100, 45,
|
|
||||||
/* 0x2bb0 */ 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2bc0 */ 48, 52, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2bd0 */ 48, 52, 57, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 83,
|
|
||||||
/* 0x2be0 */ 32, 32, 32, 32, 32, 32,115,116, 97,114,116, 95,111,102, 95,117,
|
|
||||||
/* 0x2bf0 */ 110, 99,111,109,112,114,101,115,115,101,100, 10, 10, 82, 69, 76,
|
|
||||||
/* 0x2c00 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32,
|
|
||||||
/* 0x2c10 */ 70, 79, 82, 32, 91, 80, 69, 73, 67, 79, 78, 83, 49, 93, 58, 10,
|
|
||||||
/* 0x2c20 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x2c30 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x2c40 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2c50 */ 48, 48, 48, 48, 48, 48, 48, 48, 51, 32, 82, 95, 88, 56, 54, 95,
|
|
||||||
/* 0x2c60 */ 54, 52, 95, 51, 50, 83, 32, 32, 32, 32, 32, 32,105, 99,111,110,
|
|
||||||
/* 0x2c70 */ 95,111,102,102,115,101,116, 10, 10, 82, 69, 76, 79, 67, 65, 84,
|
|
||||||
/* 0x2c80 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32,
|
|
||||||
/* 0x2c90 */ 91, 80, 69, 73, 67, 79, 78, 83, 50, 93, 58, 10, 79, 70, 70, 83,
|
|
||||||
/* 0x2ca0 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80,
|
|
||||||
/* 0x2cb0 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86,
|
|
||||||
/* 0x2cc0 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2cd0 */ 48, 48, 48, 48, 51, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 51,
|
|
||||||
/* 0x2ce0 */ 50, 83, 32, 32, 32, 32, 32, 32,105, 99,111,110, 95,111,102,102,
|
|
||||||
/* 0x2cf0 */ 115,101,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2d00 */ 48, 48, 48, 55, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 49, 54,
|
|
||||||
/* 0x2d10 */ 32, 32, 32, 32, 32, 32, 32,105, 99,111,110, 95,100,101,108,116,
|
|
||||||
/* 0x2d20 */ 97, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2d30 */ 56, 48, 48, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
|
|
||||||
/* 0x2d40 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 80, 69,
|
|
||||||
/* 0x2d50 */ 84, 76, 83, 72, 65, 75, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
|
|
||||||
/* 0x2d60 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32,
|
|
||||||
/* 0x2d70 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
|
|
||||||
/* 0x2d80 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2d90 */ 48, 51, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 83, 32,
|
|
||||||
/* 0x2da0 */ 32, 32, 32, 32, 32,116,108,115, 95, 97,100,100,114,101,115,115,
|
|
||||||
/* 0x2db0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2dc0 */ 98, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 32, 32, 32,
|
|
||||||
/* 0x2dd0 */ 32, 32, 32, 32,116,108,115, 95,118, 97,108,117,101, 43, 48,120,
|
|
||||||
/* 0x2de0 */ 48, 48, 48, 48, 48, 48, 48, 48, 56, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2df0 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
|
|
||||||
/* 0x2e00 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93,
|
|
||||||
/* 0x2e10 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x2e20 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x2e30 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2e40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 55,100, 32, 82, 95, 88, 56,
|
|
||||||
/* 0x2e50 */ 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 78, 82,
|
|
||||||
/* 0x2e60 */ 86, 95, 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2e70 */ 48, 48, 48, 48, 48, 48, 48, 49, 98, 10, 10, 82, 69, 76, 79, 67,
|
|
||||||
/* 0x2e80 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79,
|
|
||||||
/* 0x2e90 */ 82, 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69,
|
|
||||||
/* 0x2ea0 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69,
|
|
||||||
/* 0x2eb0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65,
|
|
||||||
/* 0x2ec0 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2ed0 */ 48, 48, 56, 56, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67,
|
|
||||||
/* 0x2ee0 */ 51, 50, 32, 32, 32, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 43,
|
|
||||||
/* 0x2ef0 */ 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2f00 */ 49, 98, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82,
|
|
||||||
/* 0x2f10 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50,
|
|
||||||
/* 0x2f20 */ 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x2f30 */ 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x2f40 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48,
|
|
||||||
/* 0x2f50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 97, 49, 32, 82, 95,
|
|
||||||
/* 0x2f60 */ 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x2f70 */ 78, 82, 86, 95, 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2f80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 98, 10, 10, 82, 69, 76,
|
|
||||||
/* 0x2f90 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32,
|
|
||||||
/* 0x2fa0 */ 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 72, 69, 65, 68, 93, 58,
|
|
||||||
/* 0x2fb0 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x2fc0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x2fd0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x2fe0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 32, 82, 95, 88, 56, 54,
|
|
||||||
/* 0x2ff0 */ 95, 54, 52, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32,108,122,109,
|
|
||||||
/* 0x3000 */ 97, 95,117, 95,108,101,110, 43, 48,120, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x3010 */ 48, 48, 56, 48, 48, 48, 48, 48, 48, 48, 10, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x3020 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 48, 32, 82, 95, 88, 56,
|
|
||||||
/* 0x3030 */ 54, 95, 54, 52, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32,108,122,
|
|
||||||
/* 0x3040 */ 109, 97, 95, 99, 95,108,101,110, 43, 48,120, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x3050 */ 48, 48, 48, 56, 48, 48, 48, 48, 48, 48, 48, 10, 10, 82, 69, 76,
|
|
||||||
/* 0x3060 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32,
|
|
||||||
/* 0x3070 */ 70, 79, 82, 32, 91, 80, 69, 67, 84, 84, 80, 79, 83, 93, 58, 10,
|
|
||||||
/* 0x3080 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x3090 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x30a0 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x30b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 51, 32, 82, 95, 88, 56, 54, 95,
|
|
||||||
/* 0x30c0 */ 54, 52, 95, 51, 50, 83, 32, 32, 32, 32, 32, 32,102,105,108,116,
|
|
||||||
/* 0x30d0 */ 101,114, 95, 98,117,102,102,101,114, 95,115,116, 97,114,116, 10,
|
|
||||||
/* 0x30e0 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79,
|
|
||||||
/* 0x30f0 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 80, 69, 70, 73, 76, 84, 69,
|
|
||||||
/* 0x3100 */ 82, 52, 57, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32,
|
|
||||||
/* 0x3110 */ 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x3120 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48,
|
|
||||||
/* 0x3130 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 55, 32,
|
|
||||||
/* 0x3140 */ 82, 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 83, 32, 32, 32, 32,
|
|
||||||
/* 0x3150 */ 32, 32,102,105,108,116,101,114, 95,108,101,110,103,116,104, 10,
|
|
||||||
/* 0x3160 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 99,
|
|
||||||
/* 0x3170 */ 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 56, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x3180 */ 32, 32, 32,102,105,108,116,101,114, 95, 99,116,111, 10, 10, 82,
|
|
||||||
/* 0x3190 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68,
|
|
||||||
/* 0x31a0 */ 83, 32, 70, 79, 82, 32, 91, 80, 69, 73, 77, 80, 79, 82, 84, 93,
|
|
||||||
/* 0x31b0 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x31c0 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x31d0 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x31e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 55, 32, 82, 95, 88, 56,
|
|
||||||
/* 0x31f0 */ 54, 95, 54, 52, 95, 51, 50, 83, 32, 32, 32, 32, 32, 32, 99,111,
|
|
||||||
/* 0x3200 */ 109,112,114,101,115,115,101,100, 95,105,109,112,111,114,116,115,
|
|
||||||
/* 0x3210 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49,
|
|
||||||
/* 0x3220 */ 48, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 56, 32, 32,
|
|
||||||
/* 0x3230 */ 32, 32, 32, 32,105,109,112,111,114,116,115, 95,100,111,110,101,
|
|
||||||
/* 0x3240 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49,
|
|
||||||
/* 0x3250 */ 56, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 83, 32, 32,
|
|
||||||
/* 0x3260 */ 32, 32, 32, 32,115,116, 97,114,116, 95,111,102, 95,105,109,112,
|
|
||||||
/* 0x3270 */ 111,114,116,115, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x3280 */ 48, 48, 48, 50, 53, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80,
|
|
||||||
/* 0x3290 */ 67, 51, 50, 32, 32, 32, 32, 32, 76,111, 97,100, 76,105, 98,114,
|
|
||||||
/* 0x32a0 */ 97,114,121, 65, 45, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x32b0 */ 48, 48, 48, 48, 48, 48, 52, 10, 10, 82, 69, 76, 79, 67, 65, 84,
|
|
||||||
/* 0x32c0 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32,
|
|
||||||
/* 0x32d0 */ 91, 80, 69, 73, 66, 89, 79, 82, 68, 93, 58, 10, 79, 70, 70, 83,
|
|
||||||
/* 0x32e0 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80,
|
|
||||||
/* 0x32f0 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86,
|
|
||||||
/* 0x3300 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x3310 */ 48, 48, 48, 48, 49, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80,
|
|
||||||
/* 0x3320 */ 67, 56, 32, 32, 32, 32, 32, 32, 98,121,110, 97,109,101, 10, 10,
|
|
||||||
/* 0x3330 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82,
|
|
||||||
/* 0x3340 */ 68, 83, 32, 70, 79, 82, 32, 91, 80, 69, 75, 51, 50, 79, 82, 68,
|
|
||||||
/* 0x3350 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x3360 */ 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x3370 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48,
|
|
||||||
/* 0x3380 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 99, 32, 82, 95, 88,
|
|
||||||
/* 0x3390 */ 56, 54, 95, 54, 52, 95, 51, 50, 83, 32, 32, 32, 32, 32, 32,107,
|
|
||||||
/* 0x33a0 */ 101,114,110,101,108, 51, 50, 95,111,114,100,105,110, 97,108,115,
|
|
||||||
/* 0x33b0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49,
|
|
||||||
/* 0x33c0 */ 49, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 56, 32, 32,
|
|
||||||
/* 0x33d0 */ 32, 32, 32, 32,110,101,120,116, 95,105,109,112, 10, 10, 82, 69,
|
|
||||||
/* 0x33e0 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83,
|
|
||||||
/* 0x33f0 */ 32, 70, 79, 82, 32, 91, 80, 69, 73, 77, 79, 82, 68, 49, 93, 58,
|
|
||||||
/* 0x3400 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x3410 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x3420 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x3430 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 57, 32, 82, 95, 88, 56, 54,
|
|
||||||
/* 0x3440 */ 95, 54, 52, 95, 80, 67, 56, 32, 32, 32, 32, 32, 32,102,105,114,
|
|
||||||
/* 0x3450 */ 115,116, 95,105,109,112, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73,
|
|
||||||
/* 0x3460 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,
|
|
||||||
/* 0x3470 */ 80, 69, 73, 77, 80, 79, 82, 50, 93, 58, 10, 79, 70, 70, 83, 69,
|
|
||||||
/* 0x3480 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69,
|
|
||||||
/* 0x3490 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65,
|
|
||||||
/* 0x34a0 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x34b0 */ 48, 48, 48,102, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67,
|
|
||||||
/* 0x34c0 */ 51, 50, 32, 32, 32, 32, 32, 71,101,116, 80,114,111, 99, 65,100,
|
|
||||||
/* 0x34d0 */ 100,114,101,115,115, 45, 48,120, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x34e0 */ 48, 48, 48, 48, 48, 48, 48, 52, 10, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x34f0 */ 48, 48, 48, 48, 48, 48, 48, 50, 48, 32, 82, 95, 88, 56, 54, 95,
|
|
||||||
/* 0x3500 */ 54, 52, 95, 80, 67, 56, 32, 32, 32, 32, 32, 32,110,101,120,116,
|
|
||||||
/* 0x3510 */ 95,102,117,110, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79,
|
|
||||||
/* 0x3520 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 80,
|
|
||||||
/* 0x3530 */ 69, 73, 69, 82, 69, 88, 69, 93, 58, 10, 79, 70, 70, 83, 69, 84,
|
|
||||||
/* 0x3540 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32,
|
|
||||||
/* 0x3550 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76,
|
|
||||||
/* 0x3560 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x3570 */ 48, 48, 50, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51,
|
|
||||||
/* 0x3580 */ 50, 32, 32, 32, 32, 32, 69,120,105,116, 80,114,111, 99,101,115,
|
|
||||||
/* 0x3590 */ 115, 45, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x35a0 */ 48, 48, 48, 52, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
|
|
||||||
/* 0x35b0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 80, 69,
|
|
||||||
/* 0x35c0 */ 82, 69, 76, 79, 67, 49, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
|
|
||||||
/* 0x35d0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32,
|
|
||||||
/* 0x35e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
|
|
||||||
/* 0x35f0 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x3600 */ 48, 51, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 83, 32,
|
|
||||||
/* 0x3610 */ 32, 32, 32, 32, 32,115,116, 97,114,116, 95,111,102, 95,114,101,
|
|
||||||
/* 0x3620 */ 108,111, 99,115, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
|
|
||||||
/* 0x3630 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 80, 69,
|
|
||||||
/* 0x3640 */ 82, 69, 76, 79, 67, 51, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
|
|
||||||
/* 0x3650 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32,
|
|
||||||
/* 0x3660 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
|
|
||||||
/* 0x3670 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x3680 */ 48,101, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 56, 32,
|
|
||||||
/* 0x3690 */ 32, 32, 32, 32, 32,114,101,108,111, 99, 95,101,110,100,120, 10,
|
|
||||||
/* 0x36a0 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79,
|
|
||||||
/* 0x36b0 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 82, 69, 76, 54, 52, 66, 73,
|
|
||||||
/* 0x36c0 */ 71, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x36d0 */ 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x36e0 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48,
|
|
||||||
/* 0x36f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 51, 32, 82, 95,
|
|
||||||
/* 0x3700 */ 88, 56, 54, 95, 54, 52, 95, 80, 67, 56, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x3710 */ 114,101,108,111, 99, 95, 97,100,100, 10, 10, 82, 69, 76, 79, 67,
|
|
||||||
/* 0x3720 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79,
|
|
||||||
/* 0x3730 */ 82, 32, 91, 82, 69, 76, 79, 67, 54, 52, 74, 93, 58, 10, 79, 70,
|
|
||||||
/* 0x3740 */ 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84,
|
|
||||||
/* 0x3750 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x3760 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x3770 */ 48, 48, 48, 48, 48, 48, 49, 32, 82, 95, 88, 56, 54, 95, 54, 52,
|
|
||||||
/* 0x3780 */ 95, 80, 67, 56, 32, 32, 32, 32, 32, 32,114,101,108,111, 99, 95,
|
|
||||||
/* 0x3790 */ 97,100,100, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32,
|
|
||||||
/* 0x37a0 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 80, 69, 82,
|
|
||||||
/* 0x37b0 */ 76, 79, 72, 73, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32,
|
|
||||||
/* 0x37c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32,
|
|
||||||
/* 0x37d0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69,
|
|
||||||
/* 0x37e0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x37f0 */ 54, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 83, 32, 32,
|
|
||||||
/* 0x3800 */ 32, 32, 32, 32,114,101,108,111, 99, 95,100,101,108,116, 10, 10,
|
|
||||||
/* 0x3810 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82,
|
|
||||||
/* 0x3820 */ 68, 83, 32, 70, 79, 82, 32, 91, 80, 69, 68, 69, 80, 72, 65, 75,
|
|
||||||
/* 0x3830 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x3840 */ 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x3850 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48,
|
|
||||||
/* 0x3860 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 51, 32, 82, 95, 88,
|
|
||||||
/* 0x3870 */ 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 86,
|
|
||||||
/* 0x3880 */ 105,114,116,117, 97,108, 80,114,111,116,101, 99,116, 45, 48,120,
|
|
||||||
/* 0x3890 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52,
|
|
||||||
/* 0x38a0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x38b0 */ 97, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 83, 32, 32,
|
|
||||||
/* 0x38c0 */ 32, 32, 32, 32,118,112, 95, 98, 97,115,101, 10, 48, 48, 48, 48,
|
|
||||||
/* 0x38d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,102, 32, 82, 95, 88,
|
|
||||||
/* 0x38e0 */ 56, 54, 95, 54, 52, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32,118,
|
|
||||||
/* 0x38f0 */ 112, 95,115,105,122,101, 43, 48,120, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x3900 */ 48, 56, 48, 48, 48, 48, 48, 48, 48, 10, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x3910 */ 48, 48, 48, 48, 48, 48, 48, 48, 50, 99, 32, 82, 95, 88, 56, 54,
|
|
||||||
/* 0x3920 */ 95, 54, 52, 95, 51, 50, 83, 32, 32, 32, 32, 32, 32,115,119,114,
|
|
||||||
/* 0x3930 */ 105, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69,
|
|
||||||
/* 0x3940 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 80, 69, 84, 76, 83,
|
|
||||||
/* 0x3950 */ 67, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x3960 */ 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x3970 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48,
|
|
||||||
/* 0x3980 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 32, 82, 95,
|
|
||||||
/* 0x3990 */ 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x39a0 */ 80, 69, 84, 76, 83, 67, 50, 45, 48,120, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x39b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 10, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x39c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 97, 32, 82, 95, 88, 56,
|
|
||||||
/* 0x39d0 */ 54, 95, 54, 52, 95, 51, 50, 83, 32, 32, 32, 32, 32, 32,116,108,
|
|
||||||
/* 0x39e0 */ 115, 95,109,111,100,117,108,101, 95, 98, 97,115,101, 10, 48, 48,
|
|
||||||
/* 0x39f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 54, 32, 82,
|
|
||||||
/* 0x3a00 */ 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32,
|
|
||||||
/* 0x3a10 */ 32, 80, 69, 84, 76, 83, 67, 50, 45, 48,120, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x3a20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 10, 10, 82, 69, 76,
|
|
||||||
/* 0x3a30 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32,
|
|
||||||
/* 0x3a40 */ 70, 79, 82, 32, 91, 80, 69, 68, 79, 74, 85, 77, 80, 93, 58, 10,
|
|
||||||
/* 0x3a50 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x3a60 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x3a70 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x3a80 */ 48, 48, 48, 48, 48, 48, 48, 48, 49, 32, 82, 95, 88, 56, 54, 95,
|
|
||||||
/* 0x3a90 */ 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,111,114,105,103,
|
|
||||||
/* 0x3aa0 */ 105,110, 97,108, 95,101,110,116,114,121, 45, 48,120, 48, 48, 48,
|
|
||||||
/* 0x3ab0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 10, 10, 82,
|
|
||||||
/* 0x3ac0 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68,
|
|
||||||
/* 0x3ad0 */ 83, 32, 70, 79, 82, 32, 91, 80, 69, 84, 76, 83, 67, 50, 93, 58,
|
|
||||||
/* 0x3ae0 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x3af0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
||||||
/* 0x3b00 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x3b10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 32, 82, 95, 88, 56, 54,
|
|
||||||
/* 0x3b20 */ 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,116,108,115,
|
|
||||||
/* 0x3b30 */ 95, 99, 97,108,108, 98, 97, 99,107,115, 95,112,116,114, 45, 48,
|
|
||||||
/* 0x3b40 */ 120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
/* 0x3b50 */ 52, 10
|
|
||||||
};
|
|
||||||
Generated
+919
-920
File diff suppressed because it is too large
Load Diff
Generated
+1770
-1770
File diff suppressed because it is too large
Load Diff
@@ -83,15 +83,10 @@ section PEISDLL1
|
|||||||
jnz reloc_end_jmp
|
jnz reloc_end_jmp
|
||||||
section PEMAIN01
|
section PEMAIN01
|
||||||
//; remember to keep stack aligned!
|
//; remember to keep stack aligned!
|
||||||
// Modified entry point to break UPX detection patterns
|
|
||||||
// Use register manipulation instead of generic NOP
|
|
||||||
mov rax, rsp
|
|
||||||
add rax, 8
|
|
||||||
xchg rax, [rsp]
|
|
||||||
push rbp
|
|
||||||
push rdi
|
|
||||||
push rsi
|
|
||||||
push rbx
|
push rbx
|
||||||
|
push rsi
|
||||||
|
push rdi
|
||||||
|
push rbp
|
||||||
lea rsi, [rip + start_of_compressed]
|
lea rsi, [rip + start_of_compressed]
|
||||||
lea rdi, [rsi + start_of_uncompressed]
|
lea rdi, [rsi + start_of_uncompressed]
|
||||||
|
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
../src/arch
|
|
||||||
@@ -38,14 +38,7 @@ section PEISDLL1
|
|||||||
cmpb [esp + 8], 1
|
cmpb [esp + 8], 1
|
||||||
jnz reloc_end_jmp
|
jnz reloc_end_jmp
|
||||||
section PEMAIN01
|
section PEMAIN01
|
||||||
push eax
|
pusha
|
||||||
push ecx
|
|
||||||
push edx
|
|
||||||
push ebx
|
|
||||||
push esp
|
|
||||||
push ebp
|
|
||||||
push esi
|
|
||||||
push edi
|
|
||||||
section PESOCREL
|
section PESOCREL
|
||||||
mov esi, offset start_of_compressed // relocated
|
mov esi, offset start_of_compressed // relocated
|
||||||
section PESOCPIC
|
section PESOCPIC
|
||||||
|
|||||||
+49
-49
@@ -6,53 +6,53 @@ Idx Name Size VMA LMA File off Algn
|
|||||||
1 PEISDLL0 0f 0 0 040 2**0 CONTENTS
|
1 PEISDLL0 0f 0 0 040 2**0 CONTENTS
|
||||||
2 PEISEFI0 02 0 0 04f 2**0 CONTENTS
|
2 PEISEFI0 02 0 0 04f 2**0 CONTENTS
|
||||||
3 PEISDLL1 09 0 0 051 2**0 CONTENTS
|
3 PEISDLL1 09 0 0 051 2**0 CONTENTS
|
||||||
4 PEMAIN01 01d 0 0 05a 2**0 CONTENTS
|
4 PEMAIN01 012 0 0 05a 2**0 CONTENTS
|
||||||
5 PEICONS1 07 0 0 077 2**0 CONTENTS
|
5 PEICONS1 07 0 0 06c 2**0 CONTENTS
|
||||||
6 PEICONS2 09 0 0 07e 2**0 CONTENTS
|
6 PEICONS2 09 0 0 073 2**0 CONTENTS
|
||||||
7 PETLSHAK 010 0 0 087 2**0 CONTENTS
|
7 PETLSHAK 010 0 0 07c 2**0 CONTENTS
|
||||||
8 PEMAIN02 01 0 0 097 2**0 CONTENTS
|
8 PEMAIN02 01 0 0 08c 2**0 CONTENTS
|
||||||
9 PEMAIN03 0 0 0 098 2**0 CONTENTS
|
9 PEMAIN03 0 0 0 08d 2**0 CONTENTS
|
||||||
10 NRV_HEAD 060 0 0 098 2**0 CONTENTS
|
10 NRV_HEAD 060 0 0 08d 2**0 CONTENTS
|
||||||
11 NRV2B 083 0 0 0f8 2**0 CONTENTS
|
11 NRV2B 083 0 0 0ed 2**0 CONTENTS
|
||||||
12 NRV2D 091 0 0 017b 2**0 CONTENTS
|
12 NRV2D 091 0 0 0170 2**0 CONTENTS
|
||||||
13 NRV2E 0aa 0 0 020c 2**0 CONTENTS
|
13 NRV2E 0aa 0 0 0201 2**0 CONTENTS
|
||||||
14 LZMA_HEAD 014 0 0 02b6 2**0 CONTENTS
|
14 LZMA_HEAD 014 0 0 02ab 2**0 CONTENTS
|
||||||
15 LZMA_ELF00 05a 0 0 02ca 2**0 CONTENTS
|
15 LZMA_ELF00 05a 0 0 02bf 2**0 CONTENTS
|
||||||
16 LZMA_DEC20 0a01 0 0 0324 2**0 CONTENTS
|
16 LZMA_DEC20 0a01 0 0 0319 2**0 CONTENTS
|
||||||
17 LZMA_DEC30 014 0 0 0d25 2**0 CONTENTS
|
17 LZMA_DEC30 014 0 0 0d1a 2**0 CONTENTS
|
||||||
18 LZMA_TAIL 02 0 0 0d39 2**0 CONTENTS
|
18 LZMA_TAIL 02 0 0 0d2e 2**0 CONTENTS
|
||||||
19 PEMAIN10 01 0 0 0d3b 2**0 CONTENTS
|
19 PEMAIN10 01 0 0 0d30 2**0 CONTENTS
|
||||||
20 PETLSHAK2 04 0 0 0d3c 2**0 CONTENTS
|
20 PETLSHAK2 04 0 0 0d31 2**0 CONTENTS
|
||||||
21 PECTTPOS 07 0 0 0d40 2**0 CONTENTS
|
21 PECTTPOS 07 0 0 0d35 2**0 CONTENTS
|
||||||
22 PECTTNUL 03 0 0 0d47 2**0 CONTENTS
|
22 PECTTNUL 03 0 0 0d3c 2**0 CONTENTS
|
||||||
23 PEFILTER49 052 0 0 0d4a 2**0 CONTENTS
|
23 PEFILTER49 052 0 0 0d3f 2**0 CONTENTS
|
||||||
24 PEIMPORT 034 0 0 0d9c 2**0 CONTENTS
|
24 PEIMPORT 034 0 0 0d91 2**0 CONTENTS
|
||||||
25 PEIBYORD 02 0 0 0dd0 2**0 CONTENTS
|
25 PEIBYORD 02 0 0 0dc5 2**0 CONTENTS
|
||||||
26 PEK32ORD 012 0 0 0dd2 2**0 CONTENTS
|
26 PEK32ORD 012 0 0 0dc7 2**0 CONTENTS
|
||||||
27 PEIMORD1 0a 0 0 0de4 2**0 CONTENTS
|
27 PEIMORD1 0a 0 0 0dd9 2**0 CONTENTS
|
||||||
28 PEIMPOR2 021 0 0 0dee 2**0 CONTENTS
|
28 PEIMPOR2 021 0 0 0de3 2**0 CONTENTS
|
||||||
29 PEIERDLL 0b 0 0 0e0f 2**0 CONTENTS
|
29 PEIERDLL 0b 0 0 0e04 2**0 CONTENTS
|
||||||
30 PEIEREXE 06 0 0 0e1a 2**0 CONTENTS
|
30 PEIEREXE 06 0 0 0e0f 2**0 CONTENTS
|
||||||
31 PEIMDONE 04 0 0 0e20 2**0 CONTENTS
|
31 PEIMDONE 04 0 0 0e15 2**0 CONTENTS
|
||||||
32 PERELOC1 07 0 0 0e24 2**0 CONTENTS
|
32 PERELOC1 07 0 0 0e19 2**0 CONTENTS
|
||||||
33 PERELOC2 04 0 0 0e2b 2**0 CONTENTS
|
33 PERELOC2 04 0 0 0e20 2**0 CONTENTS
|
||||||
34 PERELOC3 030 0 0 0e2f 2**0 CONTENTS
|
34 PERELOC3 030 0 0 0e24 2**0 CONTENTS
|
||||||
35 REL64BIG 0a 0 0 0e5f 2**0 CONTENTS
|
35 REL64BIG 0a 0 0 0e54 2**0 CONTENTS
|
||||||
36 RELOC64J 02 0 0 0e69 2**0 CONTENTS
|
36 RELOC64J 02 0 0 0e5e 2**0 CONTENTS
|
||||||
37 PERLOHI0 0a 0 0 0e6b 2**0 CONTENTS
|
37 PERLOHI0 0a 0 0 0e60 2**0 CONTENTS
|
||||||
38 PERELLO0 0b 0 0 0e75 2**0 CONTENTS
|
38 PERELLO0 0b 0 0 0e6a 2**0 CONTENTS
|
||||||
39 PERELHI0 0e 0 0 0e80 2**0 CONTENTS
|
39 PERELHI0 0e 0 0 0e75 2**0 CONTENTS
|
||||||
40 PEDEPHAK 04b 0 0 0e8e 2**0 CONTENTS
|
40 PEDEPHAK 04b 0 0 0e83 2**0 CONTENTS
|
||||||
41 PETLSC 01b 0 0 0ed9 2**0 CONTENTS
|
41 PETLSC 01b 0 0 0ece 2**0 CONTENTS
|
||||||
42 PEMAIN20 04 0 0 0ef4 2**0 CONTENTS
|
42 PEMAIN20 04 0 0 0ee9 2**0 CONTENTS
|
||||||
43 CLEARSTACK 010 0 0 0ef8 2**0 CONTENTS
|
43 CLEARSTACK 010 0 0 0eed 2**0 CONTENTS
|
||||||
44 PEMAIN21 0 0 0 0f08 2**0 CONTENTS
|
44 PEMAIN21 0 0 0 0efd 2**0 CONTENTS
|
||||||
45 PEISDLL9 0f 0 0 0f08 2**0 CONTENTS
|
45 PEISDLL9 0f 0 0 0efd 2**0 CONTENTS
|
||||||
46 PEISEFI9 02 0 0 0f17 2**0 CONTENTS
|
46 PEISEFI9 02 0 0 0f0c 2**0 CONTENTS
|
||||||
47 PERETURN 04 0 0 0f19 2**0 CONTENTS
|
47 PERETURN 04 0 0 0f0e 2**0 CONTENTS
|
||||||
48 PEDOJUMP 05 0 0 0f1d 2**0 CONTENTS
|
48 PEDOJUMP 05 0 0 0f12 2**0 CONTENTS
|
||||||
49 PETLSC2 026 0 0 0f22 2**0 CONTENTS
|
49 PETLSC2 026 0 0 0f17 2**0 CONTENTS
|
||||||
50 UPX1HEAD 020 0 0 0f48 2**0 CONTENTS
|
50 UPX1HEAD 020 0 0 0f3d 2**0 CONTENTS
|
||||||
SYMBOL TABLE:
|
SYMBOL TABLE:
|
||||||
0000000000000000 l d NRV_HEAD 0 NRV_HEAD
|
0000000000000000 l d NRV_HEAD 0 NRV_HEAD
|
||||||
0000000000000000 l PEIMDONE 0 imports_done
|
0000000000000000 l PEIMDONE 0 imports_done
|
||||||
@@ -145,8 +145,8 @@ OFFSET TYPE VALUE
|
|||||||
|
|
||||||
RELOCATION RECORDS FOR [PEMAIN01]:
|
RELOCATION RECORDS FOR [PEMAIN01]:
|
||||||
OFFSET TYPE VALUE
|
OFFSET TYPE VALUE
|
||||||
0000000000000012 R_X86_64_PC32 start_of_compressed-0x0000000000000004
|
0000000000000007 R_X86_64_PC32 start_of_compressed-0x0000000000000004
|
||||||
0000000000000019 R_X86_64_32S start_of_uncompressed
|
000000000000000e R_X86_64_32S start_of_uncompressed
|
||||||
|
|
||||||
RELOCATION RECORDS FOR [PEICONS1]:
|
RELOCATION RECORDS FOR [PEICONS1]:
|
||||||
OFFSET TYPE VALUE
|
OFFSET TYPE VALUE
|
||||||
|
|||||||
+124
-124
@@ -3,130 +3,130 @@ file format elf32-i386
|
|||||||
Sections:
|
Sections:
|
||||||
Idx Name Size VMA LMA File off Algn Flags
|
Idx Name Size VMA LMA File off Algn Flags
|
||||||
0 PEISDLL1 0b 0 0 034 2**0 CONTENTS
|
0 PEISDLL1 0b 0 0 034 2**0 CONTENTS
|
||||||
1 PEMAIN01 08 0 0 03f 2**0 CONTENTS
|
1 PEMAIN01 01 0 0 03f 2**0 CONTENTS
|
||||||
2 PESOCREL 05 0 0 047 2**0 CONTENTS
|
2 PESOCREL 05 0 0 040 2**0 CONTENTS
|
||||||
3 PESOCPIC 0c 0 0 04c 2**0 CONTENTS
|
3 PESOCPIC 0c 0 0 045 2**0 CONTENTS
|
||||||
4 PESOUNC0 06 0 0 058 2**0 CONTENTS
|
4 PESOUNC0 06 0 0 051 2**0 CONTENTS
|
||||||
5 PEICONS1 07 0 0 05e 2**0 CONTENTS
|
5 PEICONS1 07 0 0 057 2**0 CONTENTS
|
||||||
6 PEICONS2 09 0 0 065 2**0 CONTENTS
|
6 PEICONS2 09 0 0 05e 2**0 CONTENTS
|
||||||
7 PETLSHAK 0f 0 0 06e 2**0 CONTENTS
|
7 PETLSHAK 0f 0 0 067 2**0 CONTENTS
|
||||||
8 PEMAIN02 01 0 0 07d 2**0 CONTENTS
|
8 PEMAIN02 01 0 0 076 2**0 CONTENTS
|
||||||
9 PEMAIN03 03 0 0 07e 2**0 CONTENTS
|
9 PEMAIN03 03 0 0 077 2**0 CONTENTS
|
||||||
10 N2BSMA10 03 0 0 081 2**0 CONTENTS
|
10 N2BSMA10 03 0 0 07a 2**0 CONTENTS
|
||||||
11 N2BFAS10 02 0 0 084 2**0 CONTENTS
|
11 N2BFAS10 02 0 0 07d 2**0 CONTENTS
|
||||||
12 N2BFAS11 06 0 0 086 2**0 CONTENTS
|
12 N2BFAS11 06 0 0 07f 2**0 CONTENTS
|
||||||
13 N2BDEC10 0b 0 0 08c 2**0 CONTENTS
|
13 N2BDEC10 0b 0 0 085 2**0 CONTENTS
|
||||||
14 N2BSMA20 05 0 0 097 2**0 CONTENTS
|
14 N2BSMA20 05 0 0 090 2**0 CONTENTS
|
||||||
15 N2BFAS20 07 0 0 09c 2**0 CONTENTS
|
15 N2BFAS20 07 0 0 095 2**0 CONTENTS
|
||||||
16 N2BDEC20 0d 0 0 0a3 2**0 CONTENTS
|
16 N2BDEC20 0d 0 0 09c 2**0 CONTENTS
|
||||||
17 N2BSMA30 0d 0 0 0b0 2**0 CONTENTS
|
17 N2BSMA30 0d 0 0 0a9 2**0 CONTENTS
|
||||||
18 N2BFAS30 0f 0 0 0bd 2**0 CONTENTS
|
18 N2BFAS30 0f 0 0 0b6 2**0 CONTENTS
|
||||||
19 N2BDEC30 03e 0 0 0cc 2**0 CONTENTS
|
19 N2BDEC30 03e 0 0 0c5 2**0 CONTENTS
|
||||||
20 N2BSMA40 0d 0 0 010a 2**0 CONTENTS
|
20 N2BSMA40 0d 0 0 0103 2**0 CONTENTS
|
||||||
21 N2BFAS40 0f 0 0 0117 2**0 CONTENTS
|
21 N2BFAS40 0f 0 0 0110 2**0 CONTENTS
|
||||||
22 N2BSMA50 02 0 0 0126 2**0 CONTENTS
|
22 N2BSMA50 02 0 0 011f 2**0 CONTENTS
|
||||||
23 N2BFAS50 03 0 0 0128 2**0 CONTENTS
|
23 N2BFAS50 03 0 0 0121 2**0 CONTENTS
|
||||||
24 N2BDEC50 09 0 0 012b 2**0 CONTENTS
|
24 N2BDEC50 09 0 0 0124 2**0 CONTENTS
|
||||||
25 N2BSMA60 0e 0 0 0134 2**0 CONTENTS
|
25 N2BSMA60 0e 0 0 012d 2**0 CONTENTS
|
||||||
26 N2BFAS60 016 0 0 0142 2**0 CONTENTS
|
26 N2BFAS60 016 0 0 013b 2**0 CONTENTS
|
||||||
27 N2BFAS61 016 0 0 0158 2**0 CONTENTS
|
27 N2BFAS61 016 0 0 0151 2**0 CONTENTS
|
||||||
28 N2BDEC60 0 0 0 016e 2**0 CONTENTS
|
28 N2BDEC60 0 0 0 0167 2**0 CONTENTS
|
||||||
29 N2DSMA10 03 0 0 016e 2**0 CONTENTS
|
29 N2DSMA10 03 0 0 0167 2**0 CONTENTS
|
||||||
30 N2DFAS10 02 0 0 0171 2**0 CONTENTS
|
30 N2DFAS10 02 0 0 016a 2**0 CONTENTS
|
||||||
31 N2DFAS11 06 0 0 0173 2**0 CONTENTS
|
31 N2DFAS11 06 0 0 016c 2**0 CONTENTS
|
||||||
32 N2DDEC10 0b 0 0 0179 2**0 CONTENTS
|
32 N2DDEC10 0b 0 0 0172 2**0 CONTENTS
|
||||||
33 N2DSMA20 05 0 0 0184 2**0 CONTENTS
|
33 N2DSMA20 05 0 0 017d 2**0 CONTENTS
|
||||||
34 N2DFAS20 07 0 0 0189 2**0 CONTENTS
|
34 N2DFAS20 07 0 0 0182 2**0 CONTENTS
|
||||||
35 N2DDEC20 0d 0 0 0190 2**0 CONTENTS
|
35 N2DDEC20 0d 0 0 0189 2**0 CONTENTS
|
||||||
36 N2DSMA30 0d 0 0 019d 2**0 CONTENTS
|
36 N2DSMA30 0d 0 0 0196 2**0 CONTENTS
|
||||||
37 N2DFAS30 0f 0 0 01aa 2**0 CONTENTS
|
37 N2DFAS30 0f 0 0 01a3 2**0 CONTENTS
|
||||||
38 N2DDEC30 052 0 0 01b9 2**0 CONTENTS
|
38 N2DDEC30 052 0 0 01b2 2**0 CONTENTS
|
||||||
39 N2DSMA40 0d 0 0 020b 2**0 CONTENTS
|
39 N2DSMA40 0d 0 0 0204 2**0 CONTENTS
|
||||||
40 N2DFAS40 0f 0 0 0218 2**0 CONTENTS
|
40 N2DFAS40 0f 0 0 0211 2**0 CONTENTS
|
||||||
41 N2DSMA50 02 0 0 0227 2**0 CONTENTS
|
41 N2DSMA50 02 0 0 0220 2**0 CONTENTS
|
||||||
42 N2DFAS50 03 0 0 0229 2**0 CONTENTS
|
42 N2DFAS50 03 0 0 0222 2**0 CONTENTS
|
||||||
43 N2DDEC50 09 0 0 022c 2**0 CONTENTS
|
43 N2DDEC50 09 0 0 0225 2**0 CONTENTS
|
||||||
44 N2DSMA60 0e 0 0 0235 2**0 CONTENTS
|
44 N2DSMA60 0e 0 0 022e 2**0 CONTENTS
|
||||||
45 N2DFAS60 016 0 0 0243 2**0 CONTENTS
|
45 N2DFAS60 016 0 0 023c 2**0 CONTENTS
|
||||||
46 N2DFAS61 016 0 0 0259 2**0 CONTENTS
|
46 N2DFAS61 016 0 0 0252 2**0 CONTENTS
|
||||||
47 N2DDEC60 0 0 0 026f 2**0 CONTENTS
|
47 N2DDEC60 0 0 0 0268 2**0 CONTENTS
|
||||||
48 N2ESMA10 03 0 0 026f 2**0 CONTENTS
|
48 N2ESMA10 03 0 0 0268 2**0 CONTENTS
|
||||||
49 N2EFAS10 02 0 0 0272 2**0 CONTENTS
|
49 N2EFAS10 02 0 0 026b 2**0 CONTENTS
|
||||||
50 N2EFAS11 06 0 0 0274 2**0 CONTENTS
|
50 N2EFAS11 06 0 0 026d 2**0 CONTENTS
|
||||||
51 N2EDEC10 0b 0 0 027a 2**0 CONTENTS
|
51 N2EDEC10 0b 0 0 0273 2**0 CONTENTS
|
||||||
52 N2ESMA20 05 0 0 0285 2**0 CONTENTS
|
52 N2ESMA20 05 0 0 027e 2**0 CONTENTS
|
||||||
53 N2EFAS20 07 0 0 028a 2**0 CONTENTS
|
53 N2EFAS20 07 0 0 0283 2**0 CONTENTS
|
||||||
54 N2EDEC20 0d 0 0 0291 2**0 CONTENTS
|
54 N2EDEC20 0d 0 0 028a 2**0 CONTENTS
|
||||||
55 N2ESMA30 0d 0 0 029e 2**0 CONTENTS
|
55 N2ESMA30 0d 0 0 0297 2**0 CONTENTS
|
||||||
56 N2EFAS30 0f 0 0 02ab 2**0 CONTENTS
|
56 N2EFAS30 0f 0 0 02a4 2**0 CONTENTS
|
||||||
57 N2EDEC30 05f 0 0 02ba 2**0 CONTENTS
|
57 N2EDEC30 05f 0 0 02b3 2**0 CONTENTS
|
||||||
58 N2ESMA40 0d 0 0 0319 2**0 CONTENTS
|
58 N2ESMA40 0d 0 0 0312 2**0 CONTENTS
|
||||||
59 N2EFAS40 0f 0 0 0326 2**0 CONTENTS
|
59 N2EFAS40 0f 0 0 031f 2**0 CONTENTS
|
||||||
60 N2ESMA50 02 0 0 0335 2**0 CONTENTS
|
60 N2ESMA50 02 0 0 032e 2**0 CONTENTS
|
||||||
61 N2EFAS50 03 0 0 0337 2**0 CONTENTS
|
61 N2EFAS50 03 0 0 0330 2**0 CONTENTS
|
||||||
62 N2EDEC50 09 0 0 033a 2**0 CONTENTS
|
62 N2EDEC50 09 0 0 0333 2**0 CONTENTS
|
||||||
63 N2ESMA60 0e 0 0 0343 2**0 CONTENTS
|
63 N2ESMA60 0e 0 0 033c 2**0 CONTENTS
|
||||||
64 N2EFAS60 016 0 0 0351 2**0 CONTENTS
|
64 N2EFAS60 016 0 0 034a 2**0 CONTENTS
|
||||||
65 N2EFAS61 016 0 0 0367 2**0 CONTENTS
|
65 N2EFAS61 016 0 0 0360 2**0 CONTENTS
|
||||||
66 N2EDEC60 0 0 0 037d 2**0 CONTENTS
|
66 N2EDEC60 0 0 0 0376 2**0 CONTENTS
|
||||||
67 LZMA_DEC00 02e 0 0 037d 2**0 CONTENTS
|
67 LZMA_DEC00 02e 0 0 0376 2**0 CONTENTS
|
||||||
68 LZMA_ELF00 048 0 0 03ab 2**0 CONTENTS
|
68 LZMA_ELF00 048 0 0 03a4 2**0 CONTENTS
|
||||||
69 LZMA_DEC10 0b3e 0 0 03f3 2**0 CONTENTS
|
69 LZMA_DEC10 0b3e 0 0 03ec 2**0 CONTENTS
|
||||||
70 LZMA_DEC20 0b3e 0 0 0f31 2**0 CONTENTS
|
70 LZMA_DEC20 0b3e 0 0 0f2a 2**0 CONTENTS
|
||||||
71 LZMA_DEC30 01a 0 0 01a6f 2**0 CONTENTS
|
71 LZMA_DEC30 01a 0 0 01a68 2**0 CONTENTS
|
||||||
72 PEMAIN10 01 0 0 01a89 2**0 CONTENTS
|
72 PEMAIN10 01 0 0 01a82 2**0 CONTENTS
|
||||||
73 PETLSHAK2 04 0 0 01a8a 2**0 CONTENTS
|
73 PETLSHAK2 04 0 0 01a83 2**0 CONTENTS
|
||||||
74 PECTTPOS 06 0 0 01a8e 2**0 CONTENTS
|
74 PECTTPOS 06 0 0 01a87 2**0 CONTENTS
|
||||||
75 PECTTNUL 02 0 0 01a94 2**0 CONTENTS
|
75 PECTTNUL 02 0 0 01a8d 2**0 CONTENTS
|
||||||
76 CALLTR00 0e 0 0 01a96 2**0 CONTENTS
|
76 CALLTR00 0e 0 0 01a8f 2**0 CONTENTS
|
||||||
77 CTCLEVE1 05 0 0 01aa4 2**0 CONTENTS
|
77 CTCLEVE1 05 0 0 01a9d 2**0 CONTENTS
|
||||||
78 CALLTR01 05 0 0 01aa9 2**0 CONTENTS
|
78 CALLTR01 05 0 0 01aa2 2**0 CONTENTS
|
||||||
79 CTBSHR01 04 0 0 01aae 2**0 CONTENTS
|
79 CTBSHR01 04 0 0 01aa7 2**0 CONTENTS
|
||||||
80 CTBROR01 02 0 0 01ab2 2**0 CONTENTS
|
80 CTBROR01 02 0 0 01aab 2**0 CONTENTS
|
||||||
81 CTBSWA01 05 0 0 01ab4 2**0 CONTENTS
|
81 CTBSWA01 05 0 0 01aad 2**0 CONTENTS
|
||||||
82 CALLTR02 010 0 0 01ab9 2**0 CONTENTS
|
82 CALLTR02 010 0 0 01ab2 2**0 CONTENTS
|
||||||
83 CALLTR10 05 0 0 01ac9 2**0 CONTENTS
|
83 CALLTR10 05 0 0 01ac2 2**0 CONTENTS
|
||||||
84 CALLTRE8 02 0 0 01ace 2**0 CONTENTS
|
84 CALLTRE8 02 0 0 01ac7 2**0 CONTENTS
|
||||||
85 CALLTRE9 02 0 0 01ad0 2**0 CONTENTS
|
85 CALLTRE9 02 0 0 01ac9 2**0 CONTENTS
|
||||||
86 CALLTR11 04 0 0 01ad2 2**0 CONTENTS
|
86 CALLTR11 04 0 0 01acb 2**0 CONTENTS
|
||||||
87 CTCLEVE2 05 0 0 01ad6 2**0 CONTENTS
|
87 CTCLEVE2 05 0 0 01acf 2**0 CONTENTS
|
||||||
88 CALLTR12 02 0 0 01adb 2**0 CONTENTS
|
88 CALLTR12 02 0 0 01ad4 2**0 CONTENTS
|
||||||
89 CTBSHR11 04 0 0 01add 2**0 CONTENTS
|
89 CTBSHR11 04 0 0 01ad6 2**0 CONTENTS
|
||||||
90 CTBROR11 02 0 0 01ae1 2**0 CONTENTS
|
90 CTBROR11 02 0 0 01ada 2**0 CONTENTS
|
||||||
91 CTBSWA11 05 0 0 01ae3 2**0 CONTENTS
|
91 CTBSWA11 05 0 0 01adc 2**0 CONTENTS
|
||||||
92 CALLTR13 07 0 0 01ae8 2**0 CONTENTS
|
92 CALLTR13 07 0 0 01ae1 2**0 CONTENTS
|
||||||
93 ctok32.00 0a 0 0 01aef 2**0 CONTENTS
|
93 ctok32.00 0a 0 0 01ae8 2**0 CONTENTS
|
||||||
94 ctok32.10 0e 0 0 01af9 2**0 CONTENTS
|
94 ctok32.10 0e 0 0 01af2 2**0 CONTENTS
|
||||||
95 ctok32.20 020 0 0 01b07 2**0 CONTENTS
|
95 ctok32.20 020 0 0 01b00 2**0 CONTENTS
|
||||||
96 ctok32.30 0a 0 0 01b27 2**0 CONTENTS
|
96 ctok32.30 0a 0 0 01b20 2**0 CONTENTS
|
||||||
97 ctok32.40 05 0 0 01b31 2**0 CONTENTS
|
97 ctok32.40 05 0 0 01b2a 2**0 CONTENTS
|
||||||
98 PEIMPORT 02c 0 0 01b36 2**0 CONTENTS
|
98 PEIMPORT 02c 0 0 01b2f 2**0 CONTENTS
|
||||||
99 PEIBYORD 02 0 0 01b62 2**0 CONTENTS
|
99 PEIBYORD 02 0 0 01b5b 2**0 CONTENTS
|
||||||
100 PEK32ORD 010 0 0 01b64 2**0 CONTENTS
|
100 PEK32ORD 010 0 0 01b5d 2**0 CONTENTS
|
||||||
101 PEIMORD1 07 0 0 01b74 2**0 CONTENTS
|
101 PEIMORD1 07 0 0 01b6d 2**0 CONTENTS
|
||||||
102 PEIMPOR2 016 0 0 01b7b 2**0 CONTENTS
|
102 PEIMPOR2 016 0 0 01b74 2**0 CONTENTS
|
||||||
103 PEIERDLL 06 0 0 01b91 2**0 CONTENTS
|
103 PEIERDLL 06 0 0 01b8a 2**0 CONTENTS
|
||||||
104 PEIEREXE 06 0 0 01b97 2**0 CONTENTS
|
104 PEIEREXE 06 0 0 01b90 2**0 CONTENTS
|
||||||
105 PEIMDONE 0 0 0 01b9d 2**0 CONTENTS
|
105 PEIMDONE 0 0 0 01b96 2**0 CONTENTS
|
||||||
106 PERELOC1 06 0 0 01b9d 2**0 CONTENTS
|
106 PERELOC1 06 0 0 01b96 2**0 CONTENTS
|
||||||
107 PERELOC2 03 0 0 01ba3 2**0 CONTENTS
|
107 PERELOC2 03 0 0 01b9c 2**0 CONTENTS
|
||||||
108 PERELOC3 03 0 0 01ba6 2**0 CONTENTS
|
108 PERELOC3 03 0 0 01b9f 2**0 CONTENTS
|
||||||
109 RELOC320 029 0 0 01ba9 2**0 CONTENTS
|
109 RELOC320 029 0 0 01ba2 2**0 CONTENTS
|
||||||
110 REL32BIG 09 0 0 01bd2 2**0 CONTENTS
|
110 REL32BIG 09 0 0 01bcb 2**0 CONTENTS
|
||||||
111 RELOC32J 02 0 0 01bdb 2**0 CONTENTS
|
111 RELOC32J 02 0 0 01bd4 2**0 CONTENTS
|
||||||
112 REL32END 0 0 0 01bdd 2**0 CONTENTS
|
112 REL32END 0 0 0 01bd6 2**0 CONTENTS
|
||||||
113 PERLOHI0 08 0 0 01bdd 2**0 CONTENTS
|
113 PERLOHI0 08 0 0 01bd6 2**0 CONTENTS
|
||||||
114 PERELLO0 0a 0 0 01be5 2**0 CONTENTS
|
114 PERELLO0 0a 0 0 01bde 2**0 CONTENTS
|
||||||
115 PERELHI0 0d 0 0 01bef 2**0 CONTENTS
|
115 PERELHI0 0d 0 0 01be8 2**0 CONTENTS
|
||||||
116 PEDEPHAK 02f 0 0 01bfc 2**0 CONTENTS
|
116 PEDEPHAK 02f 0 0 01bf5 2**0 CONTENTS
|
||||||
117 PETLSC 018 0 0 01c2b 2**0 CONTENTS
|
117 PETLSC 018 0 0 01c24 2**0 CONTENTS
|
||||||
118 PEMAIN20 01 0 0 01c43 2**0 CONTENTS
|
118 PEMAIN20 01 0 0 01c3c 2**0 CONTENTS
|
||||||
119 CLEARSTACK 0d 0 0 01c44 2**0 CONTENTS
|
119 CLEARSTACK 0d 0 0 01c3d 2**0 CONTENTS
|
||||||
120 PEMAIN21 0 0 0 01c51 2**0 CONTENTS
|
120 PEMAIN21 0 0 0 01c4a 2**0 CONTENTS
|
||||||
121 PERETURN 06 0 0 01c51 2**0 CONTENTS
|
121 PERETURN 06 0 0 01c4a 2**0 CONTENTS
|
||||||
122 PEDOJUMP 05 0 0 01c57 2**0 CONTENTS
|
122 PEDOJUMP 05 0 0 01c50 2**0 CONTENTS
|
||||||
123 PETLSC2 01f 0 0 01c5c 2**0 CONTENTS
|
123 PETLSC2 01f 0 0 01c55 2**0 CONTENTS
|
||||||
124 UPX1HEAD 020 0 0 01c7b 2**0 CONTENTS
|
124 UPX1HEAD 020 0 0 01c74 2**0 CONTENTS
|
||||||
SYMBOL TABLE:
|
SYMBOL TABLE:
|
||||||
00000000 l d N2BSMA10 0 N2BSMA10
|
00000000 l d N2BSMA10 0 N2BSMA10
|
||||||
00000000 l d N2BFAS11 0 N2BFAS11
|
00000000 l d N2BFAS11 0 N2BFAS11
|
||||||
|
|||||||
+2
-2
@@ -623,10 +623,10 @@ struct TriBool final {
|
|||||||
static constexpr bool is_third_true = IsThirdTrue;
|
static constexpr bool is_third_true = IsThirdTrue;
|
||||||
// types
|
// types
|
||||||
typedef T underlying_type;
|
typedef T underlying_type;
|
||||||
static_assert(std::is_integral_v<underlying_type>);
|
|
||||||
typedef decltype(T(0) + T(0)) promoted_type;
|
typedef decltype(T(0) + T(0)) promoted_type;
|
||||||
static_assert(std::is_integral_v<promoted_type>);
|
|
||||||
enum value_type : underlying_type { False = 0, True = 1, Third = 2 };
|
enum value_type : underlying_type { False = 0, True = 1, Third = 2 };
|
||||||
|
static_assert(std::is_integral_v<underlying_type>);
|
||||||
|
static_assert(std::is_integral_v<promoted_type>);
|
||||||
static_assert(sizeof(value_type) == sizeof(underlying_type));
|
static_assert(sizeof(value_type) == sizeof(underlying_type));
|
||||||
static_assert(sizeof(underlying_type) <= sizeof(promoted_type));
|
static_assert(sizeof(underlying_type) <= sizeof(promoted_type));
|
||||||
// constructors
|
// constructors
|
||||||
|
|||||||
+12
-24
@@ -71,7 +71,7 @@ bool mem_size_valid(upx_uint64_t element_size, upx_uint64_t n, upx_uint64_t extr
|
|||||||
}
|
}
|
||||||
|
|
||||||
upx_rsize_t mem_size(upx_uint64_t element_size, upx_uint64_t n, upx_uint64_t extra1,
|
upx_rsize_t mem_size(upx_uint64_t element_size, upx_uint64_t n, upx_uint64_t extra1,
|
||||||
upx_uint64_t extra2) {
|
upx_uint64_t extra2) may_throw {
|
||||||
assert(element_size > 0);
|
assert(element_size > 0);
|
||||||
if very_unlikely (element_size == 0 || element_size > UPX_RSIZE_MAX)
|
if very_unlikely (element_size == 0 || element_size > UPX_RSIZE_MAX)
|
||||||
throwCantPack("mem_size 1; take care");
|
throwCantPack("mem_size 1; take care");
|
||||||
@@ -144,7 +144,8 @@ TEST_CASE("ptr_diff") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// check that 2 buffers do not overlap; will throw on error
|
// check that 2 buffers do not overlap; will throw on error
|
||||||
void ptraddr_check_no_overlap(upx_ptraddr_t a, size_t a_size, upx_ptraddr_t b, size_t b_size) {
|
void ptraddr_check_no_overlap(upx_ptraddr_t a, size_t a_size, upx_ptraddr_t b, size_t b_size)
|
||||||
|
may_throw {
|
||||||
if very_unlikely (a == 0 || b == 0)
|
if very_unlikely (a == 0 || b == 0)
|
||||||
throwCantPack("ptr_check_no_overlap-nullptr");
|
throwCantPack("ptr_check_no_overlap-nullptr");
|
||||||
upx_ptraddr_t a_end = a + mem_size(1, a_size);
|
upx_ptraddr_t a_end = a + mem_size(1, a_size);
|
||||||
@@ -160,7 +161,7 @@ void ptraddr_check_no_overlap(upx_ptraddr_t a, size_t a_size, upx_ptraddr_t b, s
|
|||||||
|
|
||||||
// check that 3 buffers do not overlap; will throw on error
|
// check that 3 buffers do not overlap; will throw on error
|
||||||
void ptraddr_check_no_overlap(upx_ptraddr_t a, size_t a_size, upx_ptraddr_t b, size_t b_size,
|
void ptraddr_check_no_overlap(upx_ptraddr_t a, size_t a_size, upx_ptraddr_t b, size_t b_size,
|
||||||
upx_ptraddr_t c, size_t c_size) {
|
upx_ptraddr_t c, size_t c_size) may_throw {
|
||||||
if very_unlikely (a == 0 || b == 0 || c == 0)
|
if very_unlikely (a == 0 || b == 0 || c == 0)
|
||||||
throwCantPack("ptr_check_no_overlap-nullptr");
|
throwCantPack("ptr_check_no_overlap-nullptr");
|
||||||
upx_ptraddr_t a_end = a + mem_size(1, a_size);
|
upx_ptraddr_t a_end = a + mem_size(1, a_size);
|
||||||
@@ -253,6 +254,14 @@ TEST_CASE("ptr_check_no_overlap 3") {
|
|||||||
// stdlib
|
// stdlib
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
|
void *upx_calloc(size_t n, size_t element_size) may_throw {
|
||||||
|
const upx_rsize_t bytes = mem_size(element_size, n); // assert size
|
||||||
|
void *p = ::malloc(bytes);
|
||||||
|
if (p != nullptr && bytes > 0)
|
||||||
|
memset(p, 0, bytes);
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
const char *upx_getenv(const char *envvar) noexcept {
|
const char *upx_getenv(const char *envvar) noexcept {
|
||||||
if (envvar != nullptr && envvar[0])
|
if (envvar != nullptr && envvar[0])
|
||||||
return ::getenv(envvar);
|
return ::getenv(envvar);
|
||||||
@@ -282,14 +291,6 @@ void upx_rand_init() noexcept {
|
|||||||
::srand(seed);
|
::srand(seed);
|
||||||
}
|
}
|
||||||
|
|
||||||
void *upx_calloc(size_t n, size_t element_size) may_throw {
|
|
||||||
size_t bytes = mem_size(element_size, n); // assert size
|
|
||||||
void *p = ::malloc(bytes);
|
|
||||||
if (p != nullptr)
|
|
||||||
memset(p, 0, bytes);
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
// simple unoptimized memswap()
|
// simple unoptimized memswap()
|
||||||
// TODO later: CHERI clang-14 bug/miscompilation with upx_memswap(); or
|
// TODO later: CHERI clang-14 bug/miscompilation with upx_memswap(); or
|
||||||
// maybe caused by tagged-memory issues ???
|
// maybe caused by tagged-memory issues ???
|
||||||
@@ -989,19 +990,6 @@ bool makebakname(char *ofilename, size_t size, const char *ifilename, bool force
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void random_string(char *s, int len) {
|
|
||||||
static const char alphanum[] =
|
|
||||||
"0123456789"
|
|
||||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
|
||||||
"abcdefghijklmnopqrstuvwxyz";
|
|
||||||
|
|
||||||
for (int i = 0; i < len; ++i) {
|
|
||||||
s[i] = alphanum[upx_rand() % (sizeof(alphanum) - 1)];
|
|
||||||
}
|
|
||||||
|
|
||||||
s[len] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
// return compression ratio, where 100% == 1000*1000 == 1e6
|
// return compression ratio, where 100% == 1000*1000 == 1e6
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|||||||
+17
-5
@@ -67,13 +67,12 @@ inline void mem_size_assert(upx_uint64_t element_size, upx_uint64_t n) may_throw
|
|||||||
}
|
}
|
||||||
|
|
||||||
// "new" with asserted size; will throw on invalid size
|
// "new" with asserted size; will throw on invalid size
|
||||||
#if DEBUG
|
|
||||||
template <class T>
|
template <class T>
|
||||||
T *NewArray(upx_uint64_t n) may_throw {
|
inline T *NewT(upx_uint64_t n) may_throw {
|
||||||
COMPILE_TIME_ASSERT(std::is_standard_layout<T>::value)
|
COMPILE_TIME_ASSERT(std::is_standard_layout<T>::value)
|
||||||
COMPILE_TIME_ASSERT(std::is_trivially_copyable<T>::value)
|
COMPILE_TIME_ASSERT(std::is_trivially_copyable<T>::value)
|
||||||
COMPILE_TIME_ASSERT(std::is_trivially_default_constructible<T>::value)
|
COMPILE_TIME_ASSERT(std::is_trivially_default_constructible<T>::value)
|
||||||
upx_rsize_t bytes = mem_size(sizeof(T), n); // assert size
|
const upx_rsize_t bytes = mem_size(sizeof(T), n); // assert size
|
||||||
T *array = new T[size_t(n)];
|
T *array = new T[size_t(n)];
|
||||||
#if !defined(__SANITIZE_MEMORY__)
|
#if !defined(__SANITIZE_MEMORY__)
|
||||||
if (array != nullptr && bytes > 0) {
|
if (array != nullptr && bytes > 0) {
|
||||||
@@ -84,11 +83,25 @@ T *NewArray(upx_uint64_t n) may_throw {
|
|||||||
UNUSED(bytes);
|
UNUSED(bytes);
|
||||||
return array;
|
return array;
|
||||||
}
|
}
|
||||||
#define New(type, n) (NewArray<type>((n)))
|
#if DEBUG || 1
|
||||||
|
#define New(type, n) (NewT<type>((n)))
|
||||||
#else
|
#else
|
||||||
#define New(type, n) new type[mem_size_get_n(sizeof(type), (n))]
|
#define New(type, n) new type[mem_size_get_n(sizeof(type), (n))]
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
inline T *New0T(upx_uint64_t n) may_throw {
|
||||||
|
COMPILE_TIME_ASSERT(std::is_standard_layout<T>::value)
|
||||||
|
COMPILE_TIME_ASSERT(std::is_trivially_copyable<T>::value)
|
||||||
|
COMPILE_TIME_ASSERT(std::is_trivially_default_constructible<T>::value)
|
||||||
|
const upx_rsize_t bytes = mem_size(sizeof(T), n); // assert size
|
||||||
|
T *array = new T[size_t(n)];
|
||||||
|
if (array != nullptr && bytes > 0)
|
||||||
|
memset(array, 0, bytes); // NOLINT(bugprone-multi-level-implicit-pointer-conversion)
|
||||||
|
return array;
|
||||||
|
}
|
||||||
|
#define New0(type, n) (New0T<type>((n)))
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
// ptr util
|
// ptr util
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
@@ -230,7 +243,6 @@ bool makebakname(char *ofilename, size_t size, const char *ifilename, bool force
|
|||||||
|
|
||||||
noinline bool is_envvar_true(const char *envvar, const char *alternate_name = nullptr) noexcept;
|
noinline bool is_envvar_true(const char *envvar, const char *alternate_name = nullptr) noexcept;
|
||||||
|
|
||||||
void random_string(char *s, int len);
|
|
||||||
unsigned get_ratio(upx_uint64_t u_len, upx_uint64_t c_len);
|
unsigned get_ratio(upx_uint64_t u_len, upx_uint64_t c_len);
|
||||||
bool set_method_name(char *buf, size_t size, int method, int level);
|
bool set_method_name(char *buf, size_t size, int method, int level);
|
||||||
void center_string(char *buf, size_t size, const char *s);
|
void center_string(char *buf, size_t size, const char *s);
|
||||||
|
|||||||
-121
@@ -1,121 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import random
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
def random_string(length=4):
|
|
||||||
import random, string
|
|
||||||
return ''.join(random.choices(string.ascii_uppercase + string.digits, k=length))
|
|
||||||
|
|
||||||
def modify_upx_magic(data: bytearray) -> bytearray:
|
|
||||||
pos = data.find(b'UPX!')
|
|
||||||
if pos != -1:
|
|
||||||
new_magic = random_string(4).encode('ascii')
|
|
||||||
print(f"[+] UPX! → {new_magic.decode()}")
|
|
||||||
data[pos:pos+4] = new_magic
|
|
||||||
else:
|
|
||||||
print("[i] UPX! magic not found (maybe already modified)")
|
|
||||||
return data
|
|
||||||
|
|
||||||
def rename_upx_sections(data: bytearray):
|
|
||||||
# Find PE offset
|
|
||||||
if len(data) < 0x40:
|
|
||||||
return data, False
|
|
||||||
pe_offset = int.from_bytes(data[0x3C:0x40], 'little')
|
|
||||||
if data[pe_offset:pe_offset+4] != b'PE\x00\x00':
|
|
||||||
print("[-] Not a valid PE file")
|
|
||||||
return data, False
|
|
||||||
|
|
||||||
num_sections = int.from_bytes(data[pe_offset + 6:pe_offset + 8], 'little')
|
|
||||||
size_of_optional_header = int.from_bytes(data[pe_offset + 20:pe_offset + 22], 'little')
|
|
||||||
section_table_offset = pe_offset + 24 + size_of_optional_header
|
|
||||||
|
|
||||||
replacements = {
|
|
||||||
b'UPX0': b'.text\x00\x00\x00',
|
|
||||||
b'UPX1': b'.data\x00\x00\x00',
|
|
||||||
b'UPX2': b'.rdata\x00\x00',
|
|
||||||
}
|
|
||||||
|
|
||||||
modified = False
|
|
||||||
for i in range(num_sections):
|
|
||||||
sec_offset = section_table_offset + i * 40
|
|
||||||
sec_name_raw = data[sec_offset:sec_offset + 8]
|
|
||||||
# Convert to immutable bytes for dict lookup
|
|
||||||
sec_name = bytes(sec_name_raw.split(b'\x00', 1)[0])
|
|
||||||
|
|
||||||
if sec_name in replacements:
|
|
||||||
new_name = replacements[sec_name]
|
|
||||||
old_name = sec_name.decode(errors='ignore')
|
|
||||||
print(f"[+] Section '{old_name}' → '{new_name.split(b'\x00')[0].decode()}'")
|
|
||||||
data[sec_offset:sec_offset + 8] = new_name
|
|
||||||
modified = True
|
|
||||||
|
|
||||||
if not modified:
|
|
||||||
print("[i] No UPX sections found – maybe already renamed")
|
|
||||||
return data, modified
|
|
||||||
|
|
||||||
def tweak_upx_info_blocks(data: bytearray) -> bytearray:
|
|
||||||
for pos in range(len(data)-0x2000, 0x400, -4):
|
|
||||||
block = data[pos:pos+12]
|
|
||||||
if len(block) != 12 or block[0] >= 10:
|
|
||||||
continue
|
|
||||||
sz_packed = int.from_bytes(block[4:8], 'little')
|
|
||||||
sz_unpacked = int.from_bytes(block[8:12], 'little')
|
|
||||||
if 1000 < sz_packed < 50_000_000 and 1000 < sz_unpacked < 100_000_000:
|
|
||||||
tweak = random.randint(1, 7)
|
|
||||||
data[pos+4:pos+8] = (sz_packed + tweak).to_bytes(4, 'little')
|
|
||||||
data[pos+8:pos+12] = (sz_unpacked - tweak).to_bytes(4, 'little')
|
|
||||||
print(f"[+] Tweaked info block: packed +{tweak}, unpacked -{tweak}")
|
|
||||||
return data
|
|
||||||
print("[i] No info block tweaked")
|
|
||||||
return data
|
|
||||||
|
|
||||||
def add_padding(data: bytearray) -> bytearray:
|
|
||||||
import random
|
|
||||||
kb = random.randint(3, 15)
|
|
||||||
padding = bytearray(random.getrandbits(8) for _ in range(kb * 1024))
|
|
||||||
data.extend(padding)
|
|
||||||
print(f"[+] Added {kb} KB random overlay padding")
|
|
||||||
return data
|
|
||||||
|
|
||||||
def strip_relocations(data: bytearray) -> bytearray:
|
|
||||||
pe_offset = int.from_bytes(data[0x3C:0x40], 'little')
|
|
||||||
reloc_rva = int.from_bytes(data[pe_offset + 160:pe_offset + 164], 'little')
|
|
||||||
if reloc_rva != 0:
|
|
||||||
data[pe_offset + 160:pe_offset + 168] = b'\x00' * 8
|
|
||||||
print("[+] Stripped relocation table")
|
|
||||||
else:
|
|
||||||
print("[i] No relocations to strip")
|
|
||||||
return data
|
|
||||||
|
|
||||||
def main():
|
|
||||||
parser = argparse.ArgumentParser(description="Automatic UPX evasion")
|
|
||||||
parser.add_argument("input", help="UPX-packed DLL")
|
|
||||||
parser.add_argument("-o", "--output", help="Output filename")
|
|
||||||
parser.add_argument("--keep-relocs", action="store_true", help="Don't strip relocations")
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
in_file = Path(args.input)
|
|
||||||
if not in_file.exists():
|
|
||||||
print(f"[-] File not found: {in_file}")
|
|
||||||
return
|
|
||||||
|
|
||||||
out_file = Path(args.output or f"{in_file.stem}_stealth{in_file.suffix}")
|
|
||||||
|
|
||||||
print(f"[*] Loading {in_file} ({in_file.stat().st_size // 1024} KB)")
|
|
||||||
data = bytearray(in_file.read_bytes())
|
|
||||||
|
|
||||||
print("[+] Applying evasion...")
|
|
||||||
data = modify_upx_magic(data)
|
|
||||||
data, _ = rename_upx_sections(data)
|
|
||||||
# data = tweak_upx_info_blocks(data)
|
|
||||||
data = add_padding(data)
|
|
||||||
if not args.keep_relocs:
|
|
||||||
data = strip_relocations(data)
|
|
||||||
|
|
||||||
out_file.write_bytes(data)
|
|
||||||
print(f"[+] Saved → {out_file} ({len(data)//1024} KB)")
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
Reference in New Issue
Block a user