DEP hack: it seems we need to patch the flags of section "UPX1" too

committer: ml1050 <ml1050> 1142508181 +0000
This commit is contained in:
László Molnár 2006-03-16 11:23:01 +00:00
parent 5bd32b5521
commit 6c9c67f6c5
3 changed files with 219 additions and 211 deletions

View File

@ -1918,11 +1918,11 @@ void PackW32Pe::pack(OutputFile *fo)
// file. If this check fails the runtime does "interesting" things
// like not running the floating point initialization code - the result
// is an R6002 runtime error.
// These supposed to be read only addresses are covered by the section
// UPX0 in the compressed files, so we have to patch the PE header
// These supposed to be read only addresses are covered by the sections
// UPX0 & UPX1 in the compressed files, so we have to patch the PE header
// in the memory. And the page on which the PE header is stored is read
// only so we must make it rw, fix the flag (i.e. clear
// PEFL_WRITE of osection[0].flags), and make it ro again.
// only so we must make it rw, fix the flags (i.e. clear
// PEFL_WRITE of osection[x].flags), and make it ro again.
// rva of the most significant byte of member "flags" in section "UPX0"
const unsigned swri = pe_offset + sizeof(oh) + sizeof(pe_section_t) - 1;
@ -1936,6 +1936,12 @@ void PackW32Pe::pack(OutputFile *fo)
const unsigned addr = 0u - rvamin + swri;
patch_le32(loader, codesize, "SWRI", addr & 0xfff); // page offset
patch_le32(loader, codesize, "IMGB", addr &~ 0xfff); // page mask
// check whether osection[0].flags and osection[1].flags
// are on the same page
if ((swri & ~0xfff) != ((swri + sizeof(pe_section_t)) & ~0xfff))
throwCantPack("DEPHAK: page crossing problem! "
"Send a bug report please!");
#endif
patch_le32(loader, codesize, "VPRO", myimport + get_le32(oimpdlls + 16) + 8);
}

View File

@ -218,7 +218,9 @@ relhi0:
jz pedep9 ; VirtualProtect failed
%endif
and byte [edi + 'SWRI'], 0x7f
lea eax, [edi + 'SWRI']
and byte [eax], 0x7f ; marks UPX0 non writeable
and byte [eax + 0x28], 0x7f ; marks UPX1 non writeable
%if 0
push esp

View File

@ -1,4 +1,4 @@
/* l_w32pe.h -- created from l_w32pe.bin, 4361 (0x1109) bytes
/* l_w32pe.h -- created from l_w32pe.bin, 4365 (0x110d) bytes
This file is part of the UPX executable compressor.
@ -27,11 +27,11 @@
*/
#define NRV_LOADER_SIZE 4361
#define NRV_LOADER_ADLER32 0x709f14e3
#define NRV_LOADER_CRC32 0x4fed4b58
#define NRV_LOADER_SIZE 4365
#define NRV_LOADER_ADLER32 0x1dcf1745
#define NRV_LOADER_CRC32 0xc6ba51c8
unsigned char nrv_loader[4361] = {
unsigned char nrv_loader[4365] = {
128,124, 36, 8, 1, 15,133, 0, 0, 0, 0, 96,190, 69, 83, 73, /* 0x 0 */
48,141,190, 69, 68, 73, 48,102,255,135, 73, 67, 79, 78,102,129, /* 0x 10 */
135, 73, 67, 79, 78, 68, 82,199,135, 84, 76, 83, 65, 84, 76, 83, /* 0x 20 */
@ -103,206 +103,206 @@ unsigned char nrv_loader[4361] = {
4,235, 0,135,254,141,143, 68, 69, 76, 84,169,102, 1, 12, 7, /* 0x 440 */
173, 9,192,117,247,193,233, 16,169,102, 1, 12, 7,173, 9,192, /* 0x 450 */
117,247,139,174, 86, 80, 82, 79,141,190, 73, 77, 71, 66,187, 0, /* 0x 460 */
16, 0, 0, 80, 84,106, 4, 83, 87,255,213,128,167, 83, 87, 82, /* 0x 470 */
73,127, 88, 80, 84, 80, 83, 87,255,213, 88, 97,141, 68, 36,128, /* 0x 480 */
106, 0, 57,196,117,250,131,236,128,141, 68, 36,128,106, 0, 57, /* 0x 490 */
196,117,250,131,236,128, 49,192, 64,194, 12, 0,233, 74, 77, 80, /* 0x 4a0 */
79, 85, 80, 88, 33,161,216,208,213, 0, 0, 0, 0, 0, 0, 0, /* 0x 4b0 */
16, 0, 0, 80, 84,106, 4, 83, 87,255,213,141,135, 83, 87, 82, /* 0x 470 */
73,128, 32,127,128, 96, 40,127, 88, 80, 84, 80, 83, 87,255,213, /* 0x 480 */
88, 97,141, 68, 36,128,106, 0, 57,196,117,250,131,236,128,141, /* 0x 490 */
68, 36,128,106, 0, 57,196,117,250,131,236,128, 49,192, 64,194, /* 0x 4a0 */
12, 0,233, 74, 77, 80, 79, 85, 80, 88, 33,161,216,208,213, 0, /* 0x 4b0 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 4c0 */
45, 0, 0, 0, 80, 69, 73, 83, 68, 76, 76, 49, 0, 0, 0, 0, /* 0x 4d0 */
0, 0, 0, 0, 0, 11, 0, 0, 0, 80, 69, 77, 65, 73, 78, 50, /* 0x 4e0 */
49, 0, 0, 0, 0, 0, 80, 69, 77, 65, 73, 78, 48, 49, 0, 11, /* 0x 4f0 */
0, 0, 0, 80, 69, 73, 67, 79, 78, 83, 49, 0, 23, 0, 0, 0, /* 0x 500 */
80, 69, 73, 67, 79, 78, 83, 50, 0, 30, 0, 0, 0, 80, 69, 73, /* 0x 510 */
67, 79, 78, 83, 90, 0, 39, 0, 0, 0, 80, 69, 84, 76, 83, 72, /* 0x 520 */
65, 75, 0, 39, 0, 0, 0, 80, 69, 77, 65, 73, 78, 48, 50, 0, /* 0x 530 */
49, 0, 0, 0, 78, 50, 66, 83, 77, 65, 49, 48, 0, 53, 0, 0, /* 0x 540 */
0, 0, 0, 0, 0, 55, 0, 0, 0, 78, 50, 66, 68, 69, 67, 49, /* 0x 550 */
48, 0, 4, 0, 0, 0, 78, 50, 66, 70, 65, 83, 49, 48, 0, 56, /* 0x 560 */
0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 78, 50, 66, 68, 69, /* 0x 570 */
67, 49, 48, 0, 4, 0, 0, 0, 78, 50, 66, 70, 65, 83, 49, 49, /* 0x 580 */
0, 58, 0, 0, 0, 78, 50, 66, 68, 69, 67, 49, 48, 0, 64, 0, /* 0x 590 */
0, 0, 78, 50, 66, 83, 77, 65, 50, 48, 0, 75, 0, 0, 0, 0, /* 0x 5a0 */
0, 0, 0, 77, 0, 0, 0, 78, 50, 66, 83, 77, 65, 49, 48, 0, /* 0x 5b0 */
2, 0, 0, 0, 78, 50, 66, 70, 65, 83, 50, 48, 0, 80, 0, 0, /* 0x 5c0 */
0, 0, 0, 0, 0, 82, 0, 0, 0, 78, 50, 66, 70, 65, 83, 49, /* 0x 5d0 */
49, 0, 0, 0, 0, 0, 78, 50, 66, 68, 69, 67, 50, 48, 0, 87, /* 0x 5e0 */
0, 0, 0, 78, 50, 66, 83, 77, 65, 51, 48, 0,100, 0, 0, 0, /* 0x 5f0 */
0, 0, 0, 0,113, 0, 0, 0, 78, 50, 66, 68, 69, 67, 50, 48, /* 0x 600 */
0, 0, 0, 0, 0, 78, 50, 66, 70, 65, 83, 51, 48, 0,113, 0, /* 0x 610 */
0, 0, 0, 0, 0, 0,117, 0, 0, 0, 78, 50, 66, 68, 69, 67, /* 0x 620 */
50, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 78, /* 0x 630 */
50, 66, 68, 69, 67, 50, 48, 0, 0, 0, 0, 0, 78, 50, 66, 68, /* 0x 640 */
69, 67, 51, 48, 0,128, 0, 0, 0, 0, 0, 0, 0,146, 0, 0, /* 0x 650 */
0, 78, 50, 66, 68, 69, 67, 54, 48, 0, 0, 0, 0, 0, 0, 0, /* 0x 660 */
0, 0,176, 0, 0, 0, 78, 50, 66, 68, 69, 67, 53, 48, 0, 0, /* 0x 670 */
0, 0, 0, 78, 50, 66, 83, 77, 65, 52, 48, 0,190, 0, 0, 0, /* 0x 680 */
0, 0, 0, 0,203, 0, 0, 0, 78, 50, 66, 68, 69, 67, 51, 48, /* 0x 690 */
0, 49, 0, 0, 0, 78, 50, 66, 70, 65, 83, 52, 48, 0,203, 0, /* 0x 6a0 */
0, 0, 0, 0, 0, 0,207, 0, 0, 0, 78, 50, 66, 68, 69, 67, /* 0x 6b0 */
51, 48, 0, 49, 0, 0, 0, 0, 0, 0, 0,218, 0, 0, 0, 78, /* 0x 6c0 */
50, 66, 68, 69, 67, 51, 48, 0, 49, 0, 0, 0, 78, 50, 66, 68, /* 0x 6d0 */
85, 77, 77, 49, 0,218, 0, 0, 0, 78, 50, 66, 83, 77, 65, 53, /* 0x 6e0 */
48, 0,218, 0, 0, 0, 78, 50, 66, 70, 65, 83, 53, 48, 0,220, /* 0x 6f0 */
0, 0, 0, 78, 50, 66, 68, 69, 67, 53, 48, 0,223, 0, 0, 0, /* 0x 700 */
78, 50, 66, 83, 77, 65, 54, 48, 0,232, 0, 0, 0, 0, 0, 0, /* 0x 710 */
0,246, 0, 0, 0, 78, 50, 66, 68, 69, 67, 49, 48, 0, 0, 0, /* 0x 720 */
0, 0, 78, 50, 66, 70, 65, 83, 54, 48, 0,246, 0, 0, 0, 0, /* 0x 730 */
0, 0, 0,254, 0, 0, 0, 78, 50, 66, 70, 65, 83, 54, 49, 0, /* 0x 740 */
0, 0, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, 78, 50, 66, 68, /* 0x 750 */
69, 67, 49, 48, 0, 0, 0, 0, 0, 78, 50, 66, 70, 65, 83, 54, /* 0x 760 */
49, 0, 12, 1, 0, 0, 0, 0, 0, 0, 34, 1, 0, 0, 78, 50, /* 0x 770 */
66, 68, 69, 67, 49, 48, 0, 0, 0, 0, 0, 78, 50, 66, 68, 69, /* 0x 780 */
67, 54, 48, 0, 34, 1, 0, 0, 78, 82, 86, 50, 66, 69, 78, 68, /* 0x 790 */
0, 34, 1, 0, 0, 78, 50, 68, 83, 77, 65, 49, 48, 0, 34, 1, /* 0x 7a0 */
0, 0, 0, 0, 0, 0, 36, 1, 0, 0, 78, 50, 68, 68, 69, 67, /* 0x 7b0 */
49, 48, 0, 4, 0, 0, 0, 78, 50, 68, 70, 65, 83, 49, 48, 0, /* 0x 7c0 */
37, 1, 0, 0, 0, 0, 0, 0, 39, 1, 0, 0, 78, 50, 68, 68, /* 0x 7d0 */
69, 67, 49, 48, 0, 4, 0, 0, 0, 78, 50, 68, 70, 65, 83, 49, /* 0x 7e0 */
49, 0, 39, 1, 0, 0, 78, 50, 68, 68, 69, 67, 49, 48, 0, 45, /* 0x 7f0 */
1, 0, 0, 78, 50, 68, 83, 77, 65, 50, 48, 0, 56, 1, 0, 0, /* 0x 800 */
0, 0, 0, 0, 58, 1, 0, 0, 78, 50, 68, 83, 77, 65, 49, 48, /* 0x 810 */
0, 2, 0, 0, 0, 78, 50, 68, 70, 65, 83, 50, 48, 0, 61, 1, /* 0x 820 */
0, 0, 0, 0, 0, 0, 63, 1, 0, 0, 78, 50, 68, 70, 65, 83, /* 0x 830 */
49, 49, 0, 0, 0, 0, 0, 78, 50, 68, 68, 69, 67, 50, 48, 0, /* 0x 840 */
68, 1, 0, 0, 78, 50, 68, 83, 77, 65, 51, 48, 0, 81, 1, 0, /* 0x 850 */
0, 0, 0, 0, 0, 94, 1, 0, 0, 78, 50, 68, 68, 69, 67, 51, /* 0x 860 */
48, 0, 16, 0, 0, 0, 78, 50, 68, 70, 65, 83, 51, 48, 0, 94, /* 0x 870 */
1, 0, 0, 0, 0, 0, 0,100, 1, 0, 0, 78, 50, 68, 68, 69, /* 0x 880 */
67, 51, 48, 0, 16, 0, 0, 0, 0, 0, 0, 0,109, 1, 0, 0, /* 0x 890 */
78, 50, 68, 68, 69, 67, 51, 48, 0, 16, 0, 0, 0, 78, 50, 68, /* 0x 8a0 */
68, 69, 67, 51, 48, 0,109, 1, 0, 0, 0, 0, 0, 0,125, 1, /* 0x 8b0 */
0, 0, 78, 50, 68, 68, 69, 67, 50, 48, 0, 0, 0, 0, 0, 0, /* 0x 8c0 */
0, 0, 0,143, 1, 0, 0, 78, 50, 68, 68, 69, 67, 54, 48, 0, /* 0x 8d0 */
0, 0, 0, 0, 0, 0, 0, 0,177, 1, 0, 0, 78, 50, 68, 68, /* 0x 8e0 */
69, 67, 53, 48, 0, 0, 0, 0, 0, 78, 50, 68, 83, 77, 65, 52, /* 0x 8f0 */
48, 0,191, 1, 0, 0, 0, 0, 0, 0,204, 1, 0, 0, 78, 50, /* 0x 900 */
68, 68, 69, 67, 51, 48, 0, 69, 0, 0, 0, 78, 50, 68, 70, 65, /* 0x 910 */
83, 52, 48, 0,204, 1, 0, 0, 0, 0, 0, 0,208, 1, 0, 0, /* 0x 920 */
78, 50, 68, 68, 69, 67, 51, 48, 0, 69, 0, 0, 0, 0, 0, 0, /* 0x 930 */
0,219, 1, 0, 0, 78, 50, 68, 68, 69, 67, 51, 48, 0, 69, 0, /* 0x 940 */
0, 0, 78, 50, 68, 68, 85, 77, 77, 49, 0,219, 1, 0, 0, 78, /* 0x 950 */
50, 68, 83, 77, 65, 53, 48, 0,219, 1, 0, 0, 78, 50, 68, 70, /* 0x 960 */
65, 83, 53, 48, 0,221, 1, 0, 0, 78, 50, 68, 68, 69, 67, 53, /* 0x 970 */
48, 0,224, 1, 0, 0, 78, 50, 68, 83, 77, 65, 54, 48, 0,233, /* 0x 980 */
1, 0, 0, 0, 0, 0, 0,247, 1, 0, 0, 78, 50, 68, 68, 69, /* 0x 990 */
67, 49, 48, 0, 0, 0, 0, 0, 78, 50, 68, 70, 65, 83, 54, 48, /* 0x 9a0 */
0,247, 1, 0, 0, 0, 0, 0, 0,255, 1, 0, 0, 78, 50, 68, /* 0x 9b0 */
70, 65, 83, 54, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, /* 0x 9c0 */
0, 0, 78, 50, 68, 68, 69, 67, 49, 48, 0, 0, 0, 0, 0, 78, /* 0x 9d0 */
50, 68, 70, 65, 83, 54, 49, 0, 13, 2, 0, 0, 0, 0, 0, 0, /* 0x 9e0 */
35, 2, 0, 0, 78, 50, 68, 68, 69, 67, 49, 48, 0, 0, 0, 0, /* 0x 9f0 */
0, 78, 50, 68, 68, 69, 67, 54, 48, 0, 35, 2, 0, 0, 78, 82, /* 0x a00 */
86, 50, 68, 69, 78, 68, 0, 35, 2, 0, 0, 78, 50, 69, 83, 77, /* 0x a10 */
65, 49, 48, 0, 35, 2, 0, 0, 0, 0, 0, 0, 37, 2, 0, 0, /* 0x a20 */
78, 50, 69, 68, 69, 67, 49, 48, 0, 4, 0, 0, 0, 78, 50, 69, /* 0x a30 */
70, 65, 83, 49, 48, 0, 38, 2, 0, 0, 0, 0, 0, 0, 40, 2, /* 0x a40 */
0, 0, 78, 50, 69, 68, 69, 67, 49, 48, 0, 4, 0, 0, 0, 78, /* 0x a50 */
50, 69, 70, 65, 83, 49, 49, 0, 40, 2, 0, 0, 78, 50, 69, 68, /* 0x a60 */
69, 67, 49, 48, 0, 46, 2, 0, 0, 78, 50, 69, 83, 77, 65, 50, /* 0x a70 */
48, 0, 57, 2, 0, 0, 0, 0, 0, 0, 59, 2, 0, 0, 78, 50, /* 0x a80 */
69, 83, 77, 65, 49, 48, 0, 2, 0, 0, 0, 78, 50, 69, 70, 65, /* 0x a90 */
83, 50, 48, 0, 62, 2, 0, 0, 0, 0, 0, 0, 64, 2, 0, 0, /* 0x aa0 */
78, 50, 69, 70, 65, 83, 49, 49, 0, 0, 0, 0, 0, 78, 50, 69, /* 0x ab0 */
68, 69, 67, 50, 48, 0, 69, 2, 0, 0, 78, 50, 69, 83, 77, 65, /* 0x ac0 */
51, 48, 0, 82, 2, 0, 0, 0, 0, 0, 0, 95, 2, 0, 0, 78, /* 0x ad0 */
50, 69, 68, 69, 67, 51, 48, 0, 31, 0, 0, 0, 78, 50, 69, 70, /* 0x ae0 */
65, 83, 51, 48, 0, 95, 2, 0, 0, 0, 0, 0, 0,101, 2, 0, /* 0x af0 */
0, 78, 50, 69, 68, 69, 67, 51, 48, 0, 31, 0, 0, 0, 0, 0, /* 0x b00 */
0, 0,110, 2, 0, 0, 78, 50, 69, 68, 69, 67, 51, 48, 0, 31, /* 0x b10 */
0, 0, 0, 78, 50, 69, 68, 69, 67, 51, 48, 0,110, 2, 0, 0, /* 0x b20 */
0, 0, 0, 0,126, 2, 0, 0, 78, 50, 69, 68, 69, 67, 50, 48, /* 0x b30 */
0, 0, 0, 0, 0, 0, 0, 0, 0,141, 2, 0, 0, 78, 50, 69, /* 0x b40 */
68, 69, 67, 53, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 2, /* 0x b50 */
0, 0, 78, 50, 69, 68, 69, 67, 54, 48, 0, 0, 0, 0, 0, 78, /* 0x b60 */
50, 69, 83, 77, 65, 52, 48, 0,205, 2, 0, 0, 0, 0, 0, 0, /* 0x b70 */
218, 2, 0, 0, 78, 50, 69, 68, 69, 67, 51, 48, 0, 82, 0, 0, /* 0x b80 */
0, 78, 50, 69, 70, 65, 83, 52, 48, 0,218, 2, 0, 0, 0, 0, /* 0x b90 */
0, 0,222, 2, 0, 0, 78, 50, 69, 68, 69, 67, 51, 48, 0, 82, /* 0x ba0 */
0, 0, 0, 0, 0, 0, 0,233, 2, 0, 0, 78, 50, 69, 68, 69, /* 0x bb0 */
67, 51, 48, 0, 82, 0, 0, 0, 78, 50, 69, 68, 85, 77, 77, 49, /* 0x bc0 */
0,233, 2, 0, 0, 78, 50, 69, 83, 77, 65, 53, 48, 0,233, 2, /* 0x bd0 */
0, 0, 78, 50, 69, 70, 65, 83, 53, 48, 0,235, 2, 0, 0, 78, /* 0x be0 */
50, 69, 68, 69, 67, 53, 48, 0,238, 2, 0, 0, 78, 50, 69, 83, /* 0x bf0 */
77, 65, 54, 48, 0,247, 2, 0, 0, 0, 0, 0, 0, 5, 3, 0, /* 0x c00 */
0, 78, 50, 69, 68, 69, 67, 49, 48, 0, 0, 0, 0, 0, 78, 50, /* 0x c10 */
69, 70, 65, 83, 54, 48, 0, 5, 3, 0, 0, 0, 0, 0, 0, 13, /* 0x c20 */
3, 0, 0, 78, 50, 69, 70, 65, 83, 54, 49, 0, 0, 0, 0, 0, /* 0x c30 */
0, 0, 0, 0, 27, 3, 0, 0, 78, 50, 69, 68, 69, 67, 49, 48, /* 0x c40 */
0, 0, 0, 0, 0, 78, 50, 69, 70, 65, 83, 54, 49, 0, 27, 3, /* 0x c50 */
0, 0, 0, 0, 0, 0, 49, 3, 0, 0, 78, 50, 69, 68, 69, 67, /* 0x c60 */
49, 48, 0, 0, 0, 0, 0, 78, 50, 69, 68, 69, 67, 54, 48, 0, /* 0x c70 */
49, 3, 0, 0, 78, 82, 86, 50, 69, 69, 78, 68, 0, 49, 3, 0, /* 0x c80 */
0, 80, 69, 77, 85, 76, 84, 73, 80, 0, 49, 3, 0, 0, 0, 0, /* 0x c90 */
0, 0, 58, 3, 0, 0, 80, 69, 77, 65, 73, 78, 48, 50, 0, 1, /* 0x ca0 */
0, 0, 0, 80, 69, 77, 65, 73, 78, 49, 48, 0, 58, 3, 0, 0, /* 0x cb0 */
80, 69, 67, 65, 76, 76, 84, 82, 0, 59, 3, 0, 0, 80, 69, 67, /* 0x cc0 */
84, 84, 80, 79, 83, 0, 59, 3, 0, 0, 80, 69, 67, 84, 84, 78, /* 0x cd0 */
85, 76, 0, 65, 3, 0, 0, 80, 69, 68, 85, 77, 77, 89, 48, 0, /* 0x ce0 */
67, 3, 0, 0, 67, 65, 76, 76, 84, 82, 48, 48, 0, 67, 3, 0, /* 0x cf0 */
0, 67, 84, 67, 76, 69, 86, 69, 49, 0, 81, 3, 0, 0, 0, 0, /* 0x d00 */
0, 0, 86, 3, 0, 0, 67, 65, 76, 76, 84, 82, 48, 48, 0, 5, /* 0x d10 */
0, 0, 0, 67, 65, 76, 76, 84, 82, 48, 49, 0, 86, 3, 0, 0, /* 0x d20 */
67, 84, 68, 85, 77, 77, 89, 49, 0, 91, 3, 0, 0, 67, 84, 66, /* 0x d30 */
83, 72, 82, 48, 49, 0, 91, 3, 0, 0, 67, 84, 66, 82, 79, 82, /* 0x d40 */
48, 49, 0, 95, 3, 0, 0, 67, 84, 66, 83, 87, 65, 48, 49, 0, /* 0x d50 */
97, 3, 0, 0, 67, 65, 76, 76, 84, 82, 48, 50, 0,102, 3, 0, /* 0x d60 */
0, 0, 0, 0, 0,118, 3, 0, 0, 67, 65, 76, 76, 84, 82, 48, /* 0x d70 */
48, 0, 10, 0, 0, 0, 67, 65, 76, 76, 84, 82, 49, 48, 0,118, /* 0x d80 */
3, 0, 0, 67, 65, 76, 76, 84, 82, 69, 56, 0,123, 3, 0, 0, /* 0x d90 */
67, 65, 76, 76, 84, 82, 69, 57, 0,125, 3, 0, 0, 67, 65, 76, /* 0x da0 */
76, 84, 82, 49, 49, 0,127, 3, 0, 0, 0, 0, 0, 0,131, 3, /* 0x db0 */
0, 0, 67, 65, 76, 76, 84, 82, 49, 51, 0, 7, 0, 0, 0, 67, /* 0x dc0 */
84, 67, 76, 69, 86, 69, 50, 0,131, 3, 0, 0, 0, 0, 0, 0, /* 0x dd0 */
136, 3, 0, 0, 67, 65, 76, 76, 84, 82, 49, 49, 0, 0, 0, 0, /* 0x de0 */
0, 67, 65, 76, 76, 84, 82, 49, 50, 0,136, 3, 0, 0, 67, 84, /* 0x df0 */
68, 85, 77, 77, 89, 50, 0,138, 3, 0, 0, 67, 84, 66, 83, 72, /* 0x e00 */
82, 49, 49, 0,138, 3, 0, 0, 67, 84, 66, 82, 79, 82, 49, 49, /* 0x e10 */
0,142, 3, 0, 0, 67, 84, 66, 83, 87, 65, 49, 49, 0,144, 3, /* 0x e20 */
0, 0, 67, 65, 76, 76, 84, 82, 49, 51, 0,149, 3, 0, 0, 0, /* 0x e30 */
0, 0, 0,156, 3, 0, 0, 67, 65, 76, 76, 84, 82, 49, 48, 0, /* 0x e40 */
5, 0, 0, 0, 67, 84, 84, 72, 69, 69, 78, 68, 0,156, 3, 0, /* 0x e50 */
0, 80, 69, 68, 85, 77, 77, 89, 49, 0,156, 3, 0, 0, 80, 69, /* 0x e60 */
73, 77, 80, 79, 82, 84, 0,156, 3, 0, 0, 0, 0, 0, 0,168, /* 0x e70 */
3, 0, 0, 80, 69, 73, 77, 68, 79, 78, 69, 0, 0, 0, 0, 0, /* 0x e80 */
80, 69, 73, 66, 89, 79, 82, 68, 0,200, 3, 0, 0, 0, 0, 0, /* 0x e90 */
0,202, 3, 0, 0, 80, 69, 73, 77, 79, 82, 68, 49, 0, 7, 0, /* 0x ea0 */
0, 0, 80, 69, 75, 51, 50, 79, 82, 68, 0,202, 3, 0, 0, 0, /* 0x eb0 */
0, 0, 0,218, 3, 0, 0, 80, 69, 73, 77, 80, 79, 82, 50, 0, /* 0x ec0 */
15, 0, 0, 0, 80, 69, 73, 77, 79, 82, 68, 49, 0,218, 3, 0, /* 0x ed0 */
0, 80, 69, 73, 77, 80, 79, 82, 50, 0,225, 3, 0, 0, 0, 0, /* 0x ee0 */
0, 0,247, 3, 0, 0, 80, 69, 73, 77, 80, 79, 82, 84, 0, 35, /* 0x ef0 */
0, 0, 0, 80, 69, 73, 69, 82, 68, 76, 76, 0,247, 3, 0, 0, /* 0x f00 */
80, 69, 73, 69, 82, 69, 88, 69, 0,253, 3, 0, 0, 80, 69, 73, /* 0x f10 */
77, 68, 79, 78, 69, 0, 3, 4, 0, 0, 80, 69, 73, 77, 80, 79, /* 0x f20 */
82, 57, 0, 3, 4, 0, 0, 80, 69, 82, 69, 76, 79, 67, 49, 0, /* 0x f30 */
3, 4, 0, 0, 80, 69, 82, 69, 76, 79, 67, 50, 0, 9, 4, 0, /* 0x f40 */
0, 80, 69, 82, 69, 76, 79, 67, 51, 0, 12, 4, 0, 0, 82, 69, /* 0x f50 */
76, 79, 67, 51, 50, 48, 0, 15, 4, 0, 0, 0, 0, 0, 0, 24, /* 0x f60 */
4, 0, 0, 82, 69, 76, 79, 67, 51, 50, 74, 0, 2, 0, 0, 0, /* 0x f70 */
82, 69, 76, 51, 50, 66, 73, 71, 0, 56, 4, 0, 0, 0, 0, 0, /* 0x f80 */
0, 60, 4, 0, 0, 82, 69, 76, 79, 67, 51, 50, 48, 0, 13, 0, /* 0x f90 */
0, 0, 82, 69, 76, 79, 67, 51, 50, 74, 0, 65, 4, 0, 0, 0, /* 0x fa0 */
0, 0, 0, 67, 4, 0, 0, 82, 69, 76, 79, 67, 51, 50, 48, 0, /* 0x fb0 */
13, 0, 0, 0, 82, 69, 76, 51, 50, 69, 78, 68, 0, 67, 4, 0, /* 0x fc0 */
0, 80, 69, 82, 69, 76, 79, 67, 57, 0, 67, 4, 0, 0, 80, 69, /* 0x fd0 */
82, 76, 79, 72, 73, 48, 0, 67, 4, 0, 0, 80, 69, 82, 76, 79, /* 0x fe0 */
72, 73, 90, 0, 75, 4, 0, 0, 80, 69, 82, 69, 76, 76, 79, 48, /* 0x ff0 */
0, 75, 4, 0, 0, 80, 69, 82, 69, 76, 76, 79, 90, 0, 85, 4, /* 0x1000 */
0, 0, 80, 69, 82, 69, 76, 72, 73, 48, 0, 85, 4, 0, 0, 80, /* 0x1010 */
69, 82, 69, 76, 72, 73, 90, 0, 98, 4, 0, 0, 80, 69, 68, 69, /* 0x1020 */
80, 72, 65, 75, 0, 98, 4, 0, 0, 80, 69, 68, 69, 80, 72, 65, /* 0x1030 */
88, 0,139, 4, 0, 0, 80, 69, 77, 65, 73, 78, 50, 48, 0,139, /* 0x1040 */
4, 0, 0, 80, 69, 82, 69, 84, 85, 82, 78, 95, 67, 76, 69, 65, /* 0x1050 */
82, 83, 84, 65, 67, 75, 0,140, 4, 0, 0, 80, 69, 82, 69, 84, /* 0x1060 */
85, 82, 78, 95, 67, 76, 69, 65, 82, 83, 84, 65, 67, 75, 57, 0, /* 0x1070 */
153, 4, 0, 0, 80, 69, 68, 79, 74, 85, 77, 80, 95, 67, 76, 69, /* 0x1080 */
65, 82, 83, 84, 65, 67, 75, 0,153, 4, 0, 0, 80, 69, 68, 79, /* 0x1090 */
74, 85, 77, 80, 95, 67, 76, 69, 65, 82, 83, 84, 65, 67, 75, 57, /* 0x10a0 */
0,166, 4, 0, 0, 80, 69, 77, 65, 73, 78, 50, 49, 0,166, 4, /* 0x10b0 */
0, 0, 80, 69, 82, 69, 84, 85, 82, 78, 0,166, 4, 0, 0, 80, /* 0x10c0 */
69, 68, 79, 74, 85, 77, 80, 0,172, 4, 0, 0, 80, 69, 68, 85, /* 0x10d0 */
77, 77, 89, 51, 0,177, 4, 0, 0, 85, 80, 88, 49, 72, 69, 65, /* 0x10e0 */
68, 0,177, 4, 0, 0, 80, 69, 84, 72, 69, 69, 78, 68, 0,209, /* 0x10f0 */
4, 0, 0,255,255,255,255,209, 4 /* 0x1100 */
0, 0, 0, 0, 0, 0, 45, 0, 80, 69, 73, 83, 68, 76, 76, 49, /* 0x 4d0 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 80, 69, 77, /* 0x 4e0 */
65, 73, 78, 50, 49, 0, 0, 0, 0, 0, 80, 69, 77, 65, 73, 78, /* 0x 4f0 */
48, 49, 0, 11, 0, 0, 0, 80, 69, 73, 67, 79, 78, 83, 49, 0, /* 0x 500 */
23, 0, 0, 0, 80, 69, 73, 67, 79, 78, 83, 50, 0, 30, 0, 0, /* 0x 510 */
0, 80, 69, 73, 67, 79, 78, 83, 90, 0, 39, 0, 0, 0, 80, 69, /* 0x 520 */
84, 76, 83, 72, 65, 75, 0, 39, 0, 0, 0, 80, 69, 77, 65, 73, /* 0x 530 */
78, 48, 50, 0, 49, 0, 0, 0, 78, 50, 66, 83, 77, 65, 49, 48, /* 0x 540 */
0, 53, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 78, 50, 66, /* 0x 550 */
68, 69, 67, 49, 48, 0, 4, 0, 0, 0, 78, 50, 66, 70, 65, 83, /* 0x 560 */
49, 48, 0, 56, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 78, /* 0x 570 */
50, 66, 68, 69, 67, 49, 48, 0, 4, 0, 0, 0, 78, 50, 66, 70, /* 0x 580 */
65, 83, 49, 49, 0, 58, 0, 0, 0, 78, 50, 66, 68, 69, 67, 49, /* 0x 590 */
48, 0, 64, 0, 0, 0, 78, 50, 66, 83, 77, 65, 50, 48, 0, 75, /* 0x 5a0 */
0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 78, 50, 66, 83, 77, /* 0x 5b0 */
65, 49, 48, 0, 2, 0, 0, 0, 78, 50, 66, 70, 65, 83, 50, 48, /* 0x 5c0 */
0, 80, 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 78, 50, 66, /* 0x 5d0 */
70, 65, 83, 49, 49, 0, 0, 0, 0, 0, 78, 50, 66, 68, 69, 67, /* 0x 5e0 */
50, 48, 0, 87, 0, 0, 0, 78, 50, 66, 83, 77, 65, 51, 48, 0, /* 0x 5f0 */
100, 0, 0, 0, 0, 0, 0, 0,113, 0, 0, 0, 78, 50, 66, 68, /* 0x 600 */
69, 67, 50, 48, 0, 0, 0, 0, 0, 78, 50, 66, 70, 65, 83, 51, /* 0x 610 */
48, 0,113, 0, 0, 0, 0, 0, 0, 0,117, 0, 0, 0, 78, 50, /* 0x 620 */
66, 68, 69, 67, 50, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, /* 0x 630 */
0, 0, 0, 78, 50, 66, 68, 69, 67, 50, 48, 0, 0, 0, 0, 0, /* 0x 640 */
78, 50, 66, 68, 69, 67, 51, 48, 0,128, 0, 0, 0, 0, 0, 0, /* 0x 650 */
0,146, 0, 0, 0, 78, 50, 66, 68, 69, 67, 54, 48, 0, 0, 0, /* 0x 660 */
0, 0, 0, 0, 0, 0,176, 0, 0, 0, 78, 50, 66, 68, 69, 67, /* 0x 670 */
53, 48, 0, 0, 0, 0, 0, 78, 50, 66, 83, 77, 65, 52, 48, 0, /* 0x 680 */
190, 0, 0, 0, 0, 0, 0, 0,203, 0, 0, 0, 78, 50, 66, 68, /* 0x 690 */
69, 67, 51, 48, 0, 49, 0, 0, 0, 78, 50, 66, 70, 65, 83, 52, /* 0x 6a0 */
48, 0,203, 0, 0, 0, 0, 0, 0, 0,207, 0, 0, 0, 78, 50, /* 0x 6b0 */
66, 68, 69, 67, 51, 48, 0, 49, 0, 0, 0, 0, 0, 0, 0,218, /* 0x 6c0 */
0, 0, 0, 78, 50, 66, 68, 69, 67, 51, 48, 0, 49, 0, 0, 0, /* 0x 6d0 */
78, 50, 66, 68, 85, 77, 77, 49, 0,218, 0, 0, 0, 78, 50, 66, /* 0x 6e0 */
83, 77, 65, 53, 48, 0,218, 0, 0, 0, 78, 50, 66, 70, 65, 83, /* 0x 6f0 */
53, 48, 0,220, 0, 0, 0, 78, 50, 66, 68, 69, 67, 53, 48, 0, /* 0x 700 */
223, 0, 0, 0, 78, 50, 66, 83, 77, 65, 54, 48, 0,232, 0, 0, /* 0x 710 */
0, 0, 0, 0, 0,246, 0, 0, 0, 78, 50, 66, 68, 69, 67, 49, /* 0x 720 */
48, 0, 0, 0, 0, 0, 78, 50, 66, 70, 65, 83, 54, 48, 0,246, /* 0x 730 */
0, 0, 0, 0, 0, 0, 0,254, 0, 0, 0, 78, 50, 66, 70, 65, /* 0x 740 */
83, 54, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, /* 0x 750 */
78, 50, 66, 68, 69, 67, 49, 48, 0, 0, 0, 0, 0, 78, 50, 66, /* 0x 760 */
70, 65, 83, 54, 49, 0, 12, 1, 0, 0, 0, 0, 0, 0, 34, 1, /* 0x 770 */
0, 0, 78, 50, 66, 68, 69, 67, 49, 48, 0, 0, 0, 0, 0, 78, /* 0x 780 */
50, 66, 68, 69, 67, 54, 48, 0, 34, 1, 0, 0, 78, 82, 86, 50, /* 0x 790 */
66, 69, 78, 68, 0, 34, 1, 0, 0, 78, 50, 68, 83, 77, 65, 49, /* 0x 7a0 */
48, 0, 34, 1, 0, 0, 0, 0, 0, 0, 36, 1, 0, 0, 78, 50, /* 0x 7b0 */
68, 68, 69, 67, 49, 48, 0, 4, 0, 0, 0, 78, 50, 68, 70, 65, /* 0x 7c0 */
83, 49, 48, 0, 37, 1, 0, 0, 0, 0, 0, 0, 39, 1, 0, 0, /* 0x 7d0 */
78, 50, 68, 68, 69, 67, 49, 48, 0, 4, 0, 0, 0, 78, 50, 68, /* 0x 7e0 */
70, 65, 83, 49, 49, 0, 39, 1, 0, 0, 78, 50, 68, 68, 69, 67, /* 0x 7f0 */
49, 48, 0, 45, 1, 0, 0, 78, 50, 68, 83, 77, 65, 50, 48, 0, /* 0x 800 */
56, 1, 0, 0, 0, 0, 0, 0, 58, 1, 0, 0, 78, 50, 68, 83, /* 0x 810 */
77, 65, 49, 48, 0, 2, 0, 0, 0, 78, 50, 68, 70, 65, 83, 50, /* 0x 820 */
48, 0, 61, 1, 0, 0, 0, 0, 0, 0, 63, 1, 0, 0, 78, 50, /* 0x 830 */
68, 70, 65, 83, 49, 49, 0, 0, 0, 0, 0, 78, 50, 68, 68, 69, /* 0x 840 */
67, 50, 48, 0, 68, 1, 0, 0, 78, 50, 68, 83, 77, 65, 51, 48, /* 0x 850 */
0, 81, 1, 0, 0, 0, 0, 0, 0, 94, 1, 0, 0, 78, 50, 68, /* 0x 860 */
68, 69, 67, 51, 48, 0, 16, 0, 0, 0, 78, 50, 68, 70, 65, 83, /* 0x 870 */
51, 48, 0, 94, 1, 0, 0, 0, 0, 0, 0,100, 1, 0, 0, 78, /* 0x 880 */
50, 68, 68, 69, 67, 51, 48, 0, 16, 0, 0, 0, 0, 0, 0, 0, /* 0x 890 */
109, 1, 0, 0, 78, 50, 68, 68, 69, 67, 51, 48, 0, 16, 0, 0, /* 0x 8a0 */
0, 78, 50, 68, 68, 69, 67, 51, 48, 0,109, 1, 0, 0, 0, 0, /* 0x 8b0 */
0, 0,125, 1, 0, 0, 78, 50, 68, 68, 69, 67, 50, 48, 0, 0, /* 0x 8c0 */
0, 0, 0, 0, 0, 0, 0,143, 1, 0, 0, 78, 50, 68, 68, 69, /* 0x 8d0 */
67, 54, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,177, 1, 0, 0, /* 0x 8e0 */
78, 50, 68, 68, 69, 67, 53, 48, 0, 0, 0, 0, 0, 78, 50, 68, /* 0x 8f0 */
83, 77, 65, 52, 48, 0,191, 1, 0, 0, 0, 0, 0, 0,204, 1, /* 0x 900 */
0, 0, 78, 50, 68, 68, 69, 67, 51, 48, 0, 69, 0, 0, 0, 78, /* 0x 910 */
50, 68, 70, 65, 83, 52, 48, 0,204, 1, 0, 0, 0, 0, 0, 0, /* 0x 920 */
208, 1, 0, 0, 78, 50, 68, 68, 69, 67, 51, 48, 0, 69, 0, 0, /* 0x 930 */
0, 0, 0, 0, 0,219, 1, 0, 0, 78, 50, 68, 68, 69, 67, 51, /* 0x 940 */
48, 0, 69, 0, 0, 0, 78, 50, 68, 68, 85, 77, 77, 49, 0,219, /* 0x 950 */
1, 0, 0, 78, 50, 68, 83, 77, 65, 53, 48, 0,219, 1, 0, 0, /* 0x 960 */
78, 50, 68, 70, 65, 83, 53, 48, 0,221, 1, 0, 0, 78, 50, 68, /* 0x 970 */
68, 69, 67, 53, 48, 0,224, 1, 0, 0, 78, 50, 68, 83, 77, 65, /* 0x 980 */
54, 48, 0,233, 1, 0, 0, 0, 0, 0, 0,247, 1, 0, 0, 78, /* 0x 990 */
50, 68, 68, 69, 67, 49, 48, 0, 0, 0, 0, 0, 78, 50, 68, 70, /* 0x 9a0 */
65, 83, 54, 48, 0,247, 1, 0, 0, 0, 0, 0, 0,255, 1, 0, /* 0x 9b0 */
0, 78, 50, 68, 70, 65, 83, 54, 49, 0, 0, 0, 0, 0, 0, 0, /* 0x 9c0 */
0, 0, 13, 2, 0, 0, 78, 50, 68, 68, 69, 67, 49, 48, 0, 0, /* 0x 9d0 */
0, 0, 0, 78, 50, 68, 70, 65, 83, 54, 49, 0, 13, 2, 0, 0, /* 0x 9e0 */
0, 0, 0, 0, 35, 2, 0, 0, 78, 50, 68, 68, 69, 67, 49, 48, /* 0x 9f0 */
0, 0, 0, 0, 0, 78, 50, 68, 68, 69, 67, 54, 48, 0, 35, 2, /* 0x a00 */
0, 0, 78, 82, 86, 50, 68, 69, 78, 68, 0, 35, 2, 0, 0, 78, /* 0x a10 */
50, 69, 83, 77, 65, 49, 48, 0, 35, 2, 0, 0, 0, 0, 0, 0, /* 0x a20 */
37, 2, 0, 0, 78, 50, 69, 68, 69, 67, 49, 48, 0, 4, 0, 0, /* 0x a30 */
0, 78, 50, 69, 70, 65, 83, 49, 48, 0, 38, 2, 0, 0, 0, 0, /* 0x a40 */
0, 0, 40, 2, 0, 0, 78, 50, 69, 68, 69, 67, 49, 48, 0, 4, /* 0x a50 */
0, 0, 0, 78, 50, 69, 70, 65, 83, 49, 49, 0, 40, 2, 0, 0, /* 0x a60 */
78, 50, 69, 68, 69, 67, 49, 48, 0, 46, 2, 0, 0, 78, 50, 69, /* 0x a70 */
83, 77, 65, 50, 48, 0, 57, 2, 0, 0, 0, 0, 0, 0, 59, 2, /* 0x a80 */
0, 0, 78, 50, 69, 83, 77, 65, 49, 48, 0, 2, 0, 0, 0, 78, /* 0x a90 */
50, 69, 70, 65, 83, 50, 48, 0, 62, 2, 0, 0, 0, 0, 0, 0, /* 0x aa0 */
64, 2, 0, 0, 78, 50, 69, 70, 65, 83, 49, 49, 0, 0, 0, 0, /* 0x ab0 */
0, 78, 50, 69, 68, 69, 67, 50, 48, 0, 69, 2, 0, 0, 78, 50, /* 0x ac0 */
69, 83, 77, 65, 51, 48, 0, 82, 2, 0, 0, 0, 0, 0, 0, 95, /* 0x ad0 */
2, 0, 0, 78, 50, 69, 68, 69, 67, 51, 48, 0, 31, 0, 0, 0, /* 0x ae0 */
78, 50, 69, 70, 65, 83, 51, 48, 0, 95, 2, 0, 0, 0, 0, 0, /* 0x af0 */
0,101, 2, 0, 0, 78, 50, 69, 68, 69, 67, 51, 48, 0, 31, 0, /* 0x b00 */
0, 0, 0, 0, 0, 0,110, 2, 0, 0, 78, 50, 69, 68, 69, 67, /* 0x b10 */
51, 48, 0, 31, 0, 0, 0, 78, 50, 69, 68, 69, 67, 51, 48, 0, /* 0x b20 */
110, 2, 0, 0, 0, 0, 0, 0,126, 2, 0, 0, 78, 50, 69, 68, /* 0x b30 */
69, 67, 50, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,141, 2, 0, /* 0x b40 */
0, 78, 50, 69, 68, 69, 67, 53, 48, 0, 0, 0, 0, 0, 0, 0, /* 0x b50 */
0, 0,159, 2, 0, 0, 78, 50, 69, 68, 69, 67, 54, 48, 0, 0, /* 0x b60 */
0, 0, 0, 78, 50, 69, 83, 77, 65, 52, 48, 0,205, 2, 0, 0, /* 0x b70 */
0, 0, 0, 0,218, 2, 0, 0, 78, 50, 69, 68, 69, 67, 51, 48, /* 0x b80 */
0, 82, 0, 0, 0, 78, 50, 69, 70, 65, 83, 52, 48, 0,218, 2, /* 0x b90 */
0, 0, 0, 0, 0, 0,222, 2, 0, 0, 78, 50, 69, 68, 69, 67, /* 0x ba0 */
51, 48, 0, 82, 0, 0, 0, 0, 0, 0, 0,233, 2, 0, 0, 78, /* 0x bb0 */
50, 69, 68, 69, 67, 51, 48, 0, 82, 0, 0, 0, 78, 50, 69, 68, /* 0x bc0 */
85, 77, 77, 49, 0,233, 2, 0, 0, 78, 50, 69, 83, 77, 65, 53, /* 0x bd0 */
48, 0,233, 2, 0, 0, 78, 50, 69, 70, 65, 83, 53, 48, 0,235, /* 0x be0 */
2, 0, 0, 78, 50, 69, 68, 69, 67, 53, 48, 0,238, 2, 0, 0, /* 0x bf0 */
78, 50, 69, 83, 77, 65, 54, 48, 0,247, 2, 0, 0, 0, 0, 0, /* 0x c00 */
0, 5, 3, 0, 0, 78, 50, 69, 68, 69, 67, 49, 48, 0, 0, 0, /* 0x c10 */
0, 0, 78, 50, 69, 70, 65, 83, 54, 48, 0, 5, 3, 0, 0, 0, /* 0x c20 */
0, 0, 0, 13, 3, 0, 0, 78, 50, 69, 70, 65, 83, 54, 49, 0, /* 0x c30 */
0, 0, 0, 0, 0, 0, 0, 0, 27, 3, 0, 0, 78, 50, 69, 68, /* 0x c40 */
69, 67, 49, 48, 0, 0, 0, 0, 0, 78, 50, 69, 70, 65, 83, 54, /* 0x c50 */
49, 0, 27, 3, 0, 0, 0, 0, 0, 0, 49, 3, 0, 0, 78, 50, /* 0x c60 */
69, 68, 69, 67, 49, 48, 0, 0, 0, 0, 0, 78, 50, 69, 68, 69, /* 0x c70 */
67, 54, 48, 0, 49, 3, 0, 0, 78, 82, 86, 50, 69, 69, 78, 68, /* 0x c80 */
0, 49, 3, 0, 0, 80, 69, 77, 85, 76, 84, 73, 80, 0, 49, 3, /* 0x c90 */
0, 0, 0, 0, 0, 0, 58, 3, 0, 0, 80, 69, 77, 65, 73, 78, /* 0x ca0 */
48, 50, 0, 1, 0, 0, 0, 80, 69, 77, 65, 73, 78, 49, 48, 0, /* 0x cb0 */
58, 3, 0, 0, 80, 69, 67, 65, 76, 76, 84, 82, 0, 59, 3, 0, /* 0x cc0 */
0, 80, 69, 67, 84, 84, 80, 79, 83, 0, 59, 3, 0, 0, 80, 69, /* 0x cd0 */
67, 84, 84, 78, 85, 76, 0, 65, 3, 0, 0, 80, 69, 68, 85, 77, /* 0x ce0 */
77, 89, 48, 0, 67, 3, 0, 0, 67, 65, 76, 76, 84, 82, 48, 48, /* 0x cf0 */
0, 67, 3, 0, 0, 67, 84, 67, 76, 69, 86, 69, 49, 0, 81, 3, /* 0x d00 */
0, 0, 0, 0, 0, 0, 86, 3, 0, 0, 67, 65, 76, 76, 84, 82, /* 0x d10 */
48, 48, 0, 5, 0, 0, 0, 67, 65, 76, 76, 84, 82, 48, 49, 0, /* 0x d20 */
86, 3, 0, 0, 67, 84, 68, 85, 77, 77, 89, 49, 0, 91, 3, 0, /* 0x d30 */
0, 67, 84, 66, 83, 72, 82, 48, 49, 0, 91, 3, 0, 0, 67, 84, /* 0x d40 */
66, 82, 79, 82, 48, 49, 0, 95, 3, 0, 0, 67, 84, 66, 83, 87, /* 0x d50 */
65, 48, 49, 0, 97, 3, 0, 0, 67, 65, 76, 76, 84, 82, 48, 50, /* 0x d60 */
0,102, 3, 0, 0, 0, 0, 0, 0,118, 3, 0, 0, 67, 65, 76, /* 0x d70 */
76, 84, 82, 48, 48, 0, 10, 0, 0, 0, 67, 65, 76, 76, 84, 82, /* 0x d80 */
49, 48, 0,118, 3, 0, 0, 67, 65, 76, 76, 84, 82, 69, 56, 0, /* 0x d90 */
123, 3, 0, 0, 67, 65, 76, 76, 84, 82, 69, 57, 0,125, 3, 0, /* 0x da0 */
0, 67, 65, 76, 76, 84, 82, 49, 49, 0,127, 3, 0, 0, 0, 0, /* 0x db0 */
0, 0,131, 3, 0, 0, 67, 65, 76, 76, 84, 82, 49, 51, 0, 7, /* 0x dc0 */
0, 0, 0, 67, 84, 67, 76, 69, 86, 69, 50, 0,131, 3, 0, 0, /* 0x dd0 */
0, 0, 0, 0,136, 3, 0, 0, 67, 65, 76, 76, 84, 82, 49, 49, /* 0x de0 */
0, 0, 0, 0, 0, 67, 65, 76, 76, 84, 82, 49, 50, 0,136, 3, /* 0x df0 */
0, 0, 67, 84, 68, 85, 77, 77, 89, 50, 0,138, 3, 0, 0, 67, /* 0x e00 */
84, 66, 83, 72, 82, 49, 49, 0,138, 3, 0, 0, 67, 84, 66, 82, /* 0x e10 */
79, 82, 49, 49, 0,142, 3, 0, 0, 67, 84, 66, 83, 87, 65, 49, /* 0x e20 */
49, 0,144, 3, 0, 0, 67, 65, 76, 76, 84, 82, 49, 51, 0,149, /* 0x e30 */
3, 0, 0, 0, 0, 0, 0,156, 3, 0, 0, 67, 65, 76, 76, 84, /* 0x e40 */
82, 49, 48, 0, 5, 0, 0, 0, 67, 84, 84, 72, 69, 69, 78, 68, /* 0x e50 */
0,156, 3, 0, 0, 80, 69, 68, 85, 77, 77, 89, 49, 0,156, 3, /* 0x e60 */
0, 0, 80, 69, 73, 77, 80, 79, 82, 84, 0,156, 3, 0, 0, 0, /* 0x e70 */
0, 0, 0,168, 3, 0, 0, 80, 69, 73, 77, 68, 79, 78, 69, 0, /* 0x e80 */
0, 0, 0, 0, 80, 69, 73, 66, 89, 79, 82, 68, 0,200, 3, 0, /* 0x e90 */
0, 0, 0, 0, 0,202, 3, 0, 0, 80, 69, 73, 77, 79, 82, 68, /* 0x ea0 */
49, 0, 7, 0, 0, 0, 80, 69, 75, 51, 50, 79, 82, 68, 0,202, /* 0x eb0 */
3, 0, 0, 0, 0, 0, 0,218, 3, 0, 0, 80, 69, 73, 77, 80, /* 0x ec0 */
79, 82, 50, 0, 15, 0, 0, 0, 80, 69, 73, 77, 79, 82, 68, 49, /* 0x ed0 */
0,218, 3, 0, 0, 80, 69, 73, 77, 80, 79, 82, 50, 0,225, 3, /* 0x ee0 */
0, 0, 0, 0, 0, 0,247, 3, 0, 0, 80, 69, 73, 77, 80, 79, /* 0x ef0 */
82, 84, 0, 35, 0, 0, 0, 80, 69, 73, 69, 82, 68, 76, 76, 0, /* 0x f00 */
247, 3, 0, 0, 80, 69, 73, 69, 82, 69, 88, 69, 0,253, 3, 0, /* 0x f10 */
0, 80, 69, 73, 77, 68, 79, 78, 69, 0, 3, 4, 0, 0, 80, 69, /* 0x f20 */
73, 77, 80, 79, 82, 57, 0, 3, 4, 0, 0, 80, 69, 82, 69, 76, /* 0x f30 */
79, 67, 49, 0, 3, 4, 0, 0, 80, 69, 82, 69, 76, 79, 67, 50, /* 0x f40 */
0, 9, 4, 0, 0, 80, 69, 82, 69, 76, 79, 67, 51, 0, 12, 4, /* 0x f50 */
0, 0, 82, 69, 76, 79, 67, 51, 50, 48, 0, 15, 4, 0, 0, 0, /* 0x f60 */
0, 0, 0, 24, 4, 0, 0, 82, 69, 76, 79, 67, 51, 50, 74, 0, /* 0x f70 */
2, 0, 0, 0, 82, 69, 76, 51, 50, 66, 73, 71, 0, 56, 4, 0, /* 0x f80 */
0, 0, 0, 0, 0, 60, 4, 0, 0, 82, 69, 76, 79, 67, 51, 50, /* 0x f90 */
48, 0, 13, 0, 0, 0, 82, 69, 76, 79, 67, 51, 50, 74, 0, 65, /* 0x fa0 */
4, 0, 0, 0, 0, 0, 0, 67, 4, 0, 0, 82, 69, 76, 79, 67, /* 0x fb0 */
51, 50, 48, 0, 13, 0, 0, 0, 82, 69, 76, 51, 50, 69, 78, 68, /* 0x fc0 */
0, 67, 4, 0, 0, 80, 69, 82, 69, 76, 79, 67, 57, 0, 67, 4, /* 0x fd0 */
0, 0, 80, 69, 82, 76, 79, 72, 73, 48, 0, 67, 4, 0, 0, 80, /* 0x fe0 */
69, 82, 76, 79, 72, 73, 90, 0, 75, 4, 0, 0, 80, 69, 82, 69, /* 0x ff0 */
76, 76, 79, 48, 0, 75, 4, 0, 0, 80, 69, 82, 69, 76, 76, 79, /* 0x1000 */
90, 0, 85, 4, 0, 0, 80, 69, 82, 69, 76, 72, 73, 48, 0, 85, /* 0x1010 */
4, 0, 0, 80, 69, 82, 69, 76, 72, 73, 90, 0, 98, 4, 0, 0, /* 0x1020 */
80, 69, 68, 69, 80, 72, 65, 75, 0, 98, 4, 0, 0, 80, 69, 68, /* 0x1030 */
69, 80, 72, 65, 88, 0,145, 4, 0, 0, 80, 69, 77, 65, 73, 78, /* 0x1040 */
50, 48, 0,145, 4, 0, 0, 80, 69, 82, 69, 84, 85, 82, 78, 95, /* 0x1050 */
67, 76, 69, 65, 82, 83, 84, 65, 67, 75, 0,146, 4, 0, 0, 80, /* 0x1060 */
69, 82, 69, 84, 85, 82, 78, 95, 67, 76, 69, 65, 82, 83, 84, 65, /* 0x1070 */
67, 75, 57, 0,159, 4, 0, 0, 80, 69, 68, 79, 74, 85, 77, 80, /* 0x1080 */
95, 67, 76, 69, 65, 82, 83, 84, 65, 67, 75, 0,159, 4, 0, 0, /* 0x1090 */
80, 69, 68, 79, 74, 85, 77, 80, 95, 67, 76, 69, 65, 82, 83, 84, /* 0x10a0 */
65, 67, 75, 57, 0,172, 4, 0, 0, 80, 69, 77, 65, 73, 78, 50, /* 0x10b0 */
49, 0,172, 4, 0, 0, 80, 69, 82, 69, 84, 85, 82, 78, 0,172, /* 0x10c0 */
4, 0, 0, 80, 69, 68, 79, 74, 85, 77, 80, 0,178, 4, 0, 0, /* 0x10d0 */
80, 69, 68, 85, 77, 77, 89, 51, 0,183, 4, 0, 0, 85, 80, 88, /* 0x10e0 */
49, 72, 69, 65, 68, 0,183, 4, 0, 0, 80, 69, 84, 72, 69, 69, /* 0x10f0 */
78, 68, 0,215, 4, 0, 0,255,255,255,255,215, 4 /* 0x1100 */
};