2187 lines
69 KiB
Python
2187 lines
69 KiB
Python
# OVERVIEW
|
|
#
|
|
# Run Length Decoder Scratch Pad
|
|
#
|
|
# DESCRIPTION
|
|
#
|
|
# The Cosmopolitan library includes many compressed lookup tables that
|
|
# are easy to edit by hand. The toilsome part is usually just creating
|
|
# them. This script should provide some insight on how it can be done.
|
|
|
|
C = ['\xe2\x88\x85', '\xe2\x98\xba', '\xe2\x98\xbb', '\xe2\x99\xa5',
|
|
'\xe2\x99\xa6', '\xe2\x99\xa3', '\xe2\x99\xa0', '\xe2\x80\xa2',
|
|
'\xe2\x97\x98', '\xe2\x97\x8b', '\xe2\x97\x99', '\xe2\x99\x82',
|
|
'\xe2\x99\x80', '\xe2\x99\xaa', '\xe2\x99\xab', '\xe2\x98\xbc',
|
|
'\xe2\x96\xba', '\xe2\x97\x84', '\xe2\x86\x95', '\xe2\x80\xbc',
|
|
'\xc2\xb6', '\xc2\xa7', '\xe2\x96\xac', '\xe2\x86\xa8',
|
|
'\xe2\x86\x91', '\xe2\x86\x93', '\xe2\x86\x92', '\xe2\x86\x90',
|
|
'\xe2\x88\x9f', '\xe2\x86\x94', '\xe2\x96\xb2', '\xe2\x96\xbc',
|
|
' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+',
|
|
',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7',
|
|
'8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C',
|
|
'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
|
|
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[',
|
|
'\xE2\x88\x96', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
|
|
'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
|
|
't', 'u', 'v', 'w', 'x', 'y', 'z', '{',
|
|
'|', '}', '~', '\xe2\x8c\x82',
|
|
'\xc3\x87', '\xc3\xbc', '\xc3\xa9', '\xc3\xa2',
|
|
'\xc3\xa4', '\xc3\xa0', '\xc3\xa5', '\xc3\xa7',
|
|
'\xc3\xaa', '\xc3\xab', '\xc3\xa8', '\xc3\xaf',
|
|
'\xc3\xae', '\xc3\xac', '\xc3\x84', '\xc3\x85',
|
|
'\xc3\x89', '\xc3\xa6', '\xc3\x86', '\xc3\xb4',
|
|
'\xc3\xb6', '\xc3\xb2', '\xc3\xbb', '\xc3\xb9',
|
|
'\xc3\xbf', '\xc3\x96', '\xc3\x9c', '\xc2\xa2',
|
|
'\xc2\xa3', '\xc2\xa5', '\xe2\x82\xac', '\xc6\x92',
|
|
'\xc3\xa1', '\xc2\xa1', '\xc3\xb3', '\xc3\xba',
|
|
'\xc3\xb1', '\xc3\x91', '\xc2\xaa', '\xc2\xba',
|
|
'\xc2\xbf', '\xe2\x8c\x90', '\xc2\xac', '\xc2\xbd',
|
|
'\xc2\xbc', '\xc2\xa1', '\xc2\xab', '\xc2\xbb',
|
|
'\xe2\x96\x91', '\xe2\x96\x92', '\xe2\x96\x93', '\xe2\x94\x82',
|
|
'\xe2\x94\xa4', '\xe2\x95\xa1', '\xe2\x95\xa2', '\xe2\x95\x96',
|
|
'\xe2\x95\x95', '\xe2\x95\xa3', '\xe2\x95\x91', '\xe2\x95\x97',
|
|
'\xe2\x95\x9d', '\xe2\x95\x9c', '\xe2\x95\x9b', '\xe2\x94\x90',
|
|
'\xe2\x94\x94', '\xe2\x94\xb4', '\xe2\x94\xac', '\xe2\x94\x9c',
|
|
'\xe2\x94\x80', '\xe2\x94\xbc', '\xe2\x95\x9e', '\xe2\x95\x9f',
|
|
'\xe2\x95\x9a', '\xe2\x95\x94', '\xe2\x95\xa9', '\xe2\x95\xa6',
|
|
'\xe2\x95\xa0', '\xe2\x95\x90', '\xe2\x95\xac', '\xe2\x95\xa7',
|
|
'\xe2\x95\xa8', '\xe2\x95\xa4', '\xe2\x95\xa5', '\xe2\x95\x99',
|
|
'\xe2\x95\x98', '\xe2\x95\x92', '\xe2\x95\x93', '\xe2\x95\xab',
|
|
'\xe2\x95\xaa', '\xe2\x94\x98', '\xe2\x94\x8c', '\xe2\x96\x88',
|
|
'\xe2\x96\x84', '\xe2\x96\x8c', '\xe2\x96\x90', '\xe2\x96\x80',
|
|
'\xce\xb1', '\xc3\x9f', '\xce\x93', '\xcf\x80',
|
|
'\xce\xa3', '\xcf\x83', '\xce\xbc', '\xcf\x84',
|
|
'\xce\xa6', '\xce\x98', '\xce\xa9', '\xce\xb4',
|
|
'\xe2\x88\x9e', '\xcf\x86', '\xce\xb5', '\xe2\x88\xa9',
|
|
'\xe2\x89\xa1', '\xc2\xb1', '\xe2\x89\xa5', '\xe2\x89\xa4',
|
|
'\xe2\x8c\xa0', '\xe2\x8c\xa1', '\xc3\xb7', '\xe2\x89\x88',
|
|
'\xc2\xb0', '\xe2\x88\x99', '\xc2\xb7', '\xe2\x88\x9a',
|
|
'\xe2\x81\xbf', '\xc2\xb2', '\xe2\x96\xa0', '\xce\xbb']
|
|
|
|
A = [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x01,0x00,0x80,0x00,0x40,0x00,0x00,0x80,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
|
|
0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x02,
|
|
0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
|
|
0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
|
|
0x02,0x02,0x02,0x80,0x00,0x00,0x00,0x40,
|
|
0x80,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x22,
|
|
0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
|
|
0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
|
|
0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00,
|
|
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
|
|
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
|
|
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
|
|
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
|
|
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
|
|
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
|
|
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
|
|
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
|
|
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
|
|
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
|
|
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
|
|
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
|
|
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
|
|
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
|
|
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
|
|
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40]
|
|
|
|
xed_prefix_table_bit = [
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x40, 0x40, 0x40, 0x40,
|
|
0xff, 0xff, 0x00, 0x00,
|
|
0xf0, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x0d, 0x00,
|
|
]
|
|
|
|
# please rise for the x86 national flag
|
|
xed_has_modrm_2d = [
|
|
# 0x00
|
|
1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 3,
|
|
1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
|
|
1, 1, 1, 1, 0, 0, 3, 0, 1, 1, 1, 1, 0, 0, 3, 0,
|
|
1, 1, 1, 1, 0, 0, 3, 0, 1, 1, 1, 1, 0, 0, 3, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 1, 1, 3, 3, 3, 3, 0, 1, 0, 1, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
3, 0, 3, 3, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1,
|
|
# 0x0f
|
|
1, 1, 1, 1, 3, 0, 0, 0, 0, 0, 3, 0, 3, 1, 0, 3,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
2, 2, 2, 2, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
0, 0, 0, 0, 0, 0, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
0, 0, 0, 1, 1, 1, 3, 3, 0, 0, 0, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
]
|
|
|
|
def tabify(s):
|
|
res = []
|
|
for line in s.split("\n"):
|
|
if not line:
|
|
continue
|
|
directive, number = line.split()
|
|
number = int(number)
|
|
if directive == ".zero":
|
|
res = res + [0] * number
|
|
elif directive == ".byte":
|
|
res.append(number)
|
|
else:
|
|
assert False
|
|
return res
|
|
|
|
kHasSib = tabify("""\
|
|
.zero 32
|
|
.zero 4
|
|
.byte 1
|
|
.zero 3
|
|
.zero 4
|
|
.byte 1
|
|
.zero 3
|
|
.zero 4
|
|
.byte 1
|
|
.zero 3
|
|
.zero 8
|
|
.zero 4
|
|
.byte 1
|
|
.zero 3
|
|
.zero 4
|
|
.byte 1
|
|
.zero 3
|
|
.zero 4
|
|
.byte 1
|
|
.zero 3
|
|
.zero 8
|
|
""")
|
|
assert len(kHasSib) == 96, len(kHasSib)
|
|
|
|
kHasDisp = tabify("""\
|
|
.zero 6
|
|
.byte 2
|
|
.zero 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 2
|
|
.byte 2
|
|
.byte 2
|
|
.byte 2
|
|
.byte 2
|
|
.byte 2
|
|
.byte 2
|
|
.byte 2
|
|
.zero 8
|
|
.zero 5
|
|
.byte 4
|
|
.zero 2
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.zero 8
|
|
.zero 5
|
|
.byte 4
|
|
.zero 2
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.zero 8
|
|
""")
|
|
assert len(kHasDisp) == 96, len(kHasDisp)
|
|
|
|
xed_disp_bits_2d = tabify("""\
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 0
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 0
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 0
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 0
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 0
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 2
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 5
|
|
.byte 5
|
|
.byte 5
|
|
.byte 5
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 6
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 3
|
|
.byte 3
|
|
.byte 2
|
|
.byte 1
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 0
|
|
.byte 4
|
|
.byte 0
|
|
.byte 0
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 0
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 0
|
|
.byte 4
|
|
.byte 0
|
|
.byte 4
|
|
.byte 4
|
|
.byte 0
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 0
|
|
.byte 4
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 3
|
|
.byte 3
|
|
.byte 3
|
|
.byte 3
|
|
.byte 3
|
|
.byte 3
|
|
.byte 3
|
|
.byte 3
|
|
.byte 3
|
|
.byte 3
|
|
.byte 3
|
|
.byte 3
|
|
.byte 3
|
|
.byte 3
|
|
.byte 3
|
|
.byte 3
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 0
|
|
.byte 0
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
""")
|
|
assert len(xed_disp_bits_2d) == 512
|
|
|
|
xed_imm_bits_2d = tabify("""\
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 5
|
|
.byte 7
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 9
|
|
.byte 7
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 5
|
|
.byte 7
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 5
|
|
.byte 7
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 5
|
|
.byte 7
|
|
.byte 0
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 5
|
|
.byte 7
|
|
.byte 0
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 9
|
|
.byte 7
|
|
.byte 0
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 5
|
|
.byte 7
|
|
.byte 0
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte 7
|
|
.byte 5
|
|
.byte 5
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 5
|
|
.byte 7
|
|
.byte 5
|
|
.byte 5
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 8
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 5
|
|
.byte 7
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 9
|
|
.byte 9
|
|
.byte 9
|
|
.byte 9
|
|
.byte 9
|
|
.byte 9
|
|
.byte 9
|
|
.byte 9
|
|
.byte 10
|
|
.byte 10
|
|
.byte 10
|
|
.byte 10
|
|
.byte 10
|
|
.byte 10
|
|
.byte 10
|
|
.byte 10
|
|
.byte 9
|
|
.byte 9
|
|
.byte 8
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 9
|
|
.byte 2
|
|
.byte 11
|
|
.byte 1
|
|
.byte 8
|
|
.byte 1
|
|
.byte 1
|
|
.byte 9
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 9
|
|
.byte 9
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 9
|
|
.byte 9
|
|
.byte 9
|
|
.byte 9
|
|
.byte 1
|
|
.byte 1
|
|
.byte 8
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 0
|
|
.byte 0
|
|
.byte 1
|
|
.byte 1
|
|
.byte 3
|
|
.byte 4
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 9
|
|
.byte 9
|
|
.byte 9
|
|
.byte 9
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 12
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 9
|
|
.byte 1
|
|
.byte 0
|
|
.byte 0
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 9
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 9
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 9
|
|
.byte 1
|
|
.byte 9
|
|
.byte 9
|
|
.byte 9
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1
|
|
.byte 1""")
|
|
|
|
tables = [('xed_prefix_table_bit', xed_prefix_table_bit),
|
|
('xed_has_modrm_2d', xed_has_modrm_2d),
|
|
('xed_has_disp_regular', kHasDisp),
|
|
('xed_has_sib_table', kHasSib),
|
|
('xed_disp_bits_2d', xed_disp_bits_2d),
|
|
('xed_imm_bits_2d', xed_imm_bits_2d)]
|
|
|
|
# int main(int argc, char *argv[]) {
|
|
# int l = 0;
|
|
# for (unsigned i = 0; i < 256; ++i) {
|
|
# int t = 0;
|
|
# if (isspace(i)) t |= 0x01;
|
|
# if (isalpha(i)) t |= 0x02;
|
|
# if (isdigit(i)) t |= 0x04;
|
|
# if (isxdigit(i)) t |= 0x08;
|
|
# if (isprint(i)) t |= 0x10;
|
|
# if (islower(i)) t |= 0x20;
|
|
# if (isupper(i)) t |= 0x40;
|
|
# if (isblank(i)) t |= 0x80;
|
|
# printf("0x%02x,", t);
|
|
# if (++l % 8 == 0) printf("\n");
|
|
# }
|
|
# return 0;
|
|
# }
|
|
|
|
kCtype = [
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x81,0x01,0x01,0x01,0x01,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x91,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
|
|
0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
|
|
0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,
|
|
0x1c,0x1c,0x10,0x10,0x10,0x10,0x10,0x10,
|
|
0x10,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x52,
|
|
0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,
|
|
0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,
|
|
0x52,0x52,0x52,0x10,0x10,0x10,0x10,0x10,
|
|
0x10,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x32,
|
|
0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,
|
|
0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,
|
|
0x32,0x32,0x32,0x10,0x10,0x10,0x10,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
]
|
|
tables = [('kCtype', kCtype)]
|
|
|
|
|
|
kWidthTab1 = [
|
|
16, 16, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
|
|
30, 31, 16, 16, 32, 16, 16, 16, 33, 34, 35, 36, 37, 38, 39,
|
|
16, 16, 40, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 41,
|
|
42, 16, 16, 43, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 44, 16, 45, 46, 47, 48, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 49, 16, 16, 50,
|
|
51, 16, 52, 53, 54, 16, 16, 16, 16, 16, 16, 55, 16, 16, 16,
|
|
16, 16, 56, 57, 58, 59, 60, 61, 62, 63, 16, 16, 64, 16, 65,
|
|
66, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 67, 68, 16, 16, 16, 69, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 70, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
71, 72, 16, 16, 16, 16, 16, 16, 16, 73, 16, 16, 16, 16, 16,
|
|
74, 16, 16, 16, 16, 16, 16, 16, 75, 76, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 3, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 255,
|
|
255, 255, 255, 191, 182, 0, 0, 0, 0, 0, 0, 0, 63, 0, 255,
|
|
23, 0, 0, 0, 0, 0, 248, 255, 255, 0, 0, 1, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 192, 191, 159, 61, 0, 0, 0,
|
|
128, 2, 0, 0, 0, 255, 255, 255, 7, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 192, 255, 1, 0, 0, 0, 0, 0, 0, 248, 15,
|
|
0, 0, 0, 192, 251, 239, 62, 0, 0, 0, 0, 0, 14, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255,
|
|
255, 255, 255, 7, 0, 0, 0, 0, 0, 0, 20, 254, 33, 254, 0,
|
|
12, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 16, 30, 32, 0,
|
|
0, 12, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 16, 134, 57,
|
|
2, 0, 0, 0, 35, 0, 6, 0, 0, 0, 0, 0, 0, 16, 190,
|
|
33, 0, 0, 12, 0, 0, 252, 2, 0, 0, 0, 0, 0, 0, 144,
|
|
30, 32, 64, 0, 12, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,
|
|
0, 1, 32, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
|
|
0, 192, 193, 61, 96, 0, 12, 0, 0, 0, 2, 0, 0, 0, 0,
|
|
0, 0, 144, 64, 48, 0, 0, 12, 0, 0, 0, 3, 0, 0, 0,
|
|
0, 0, 0, 24, 30, 32, 0, 0, 12, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 4, 92, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 242, 7, 128, 127, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 242, 27, 0, 63, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 3, 0, 0, 160, 2, 0, 0, 0, 0, 0, 0, 254,
|
|
127, 223, 224, 255, 254, 255, 255, 255, 31, 64, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 224, 253, 102, 0, 0, 0, 195, 1,
|
|
0, 30, 0, 100, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0,
|
|
0, 12, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 176, 63,
|
|
64, 254, 15, 32, 0, 0, 0, 0, 0, 120, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 2,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135,
|
|
1, 4, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128,
|
|
9, 0, 0, 0, 0, 0, 0, 64, 127, 229, 31, 248, 159, 0, 0,
|
|
0, 0, 0, 0, 255, 127, 0, 0, 0, 0, 0, 0, 0, 0, 15,
|
|
0, 0, 0, 0, 0, 208, 23, 4, 0, 0, 0, 0, 248, 15, 0,
|
|
3, 0, 0, 0, 60, 59, 0, 0, 0, 0, 0, 0, 64, 163, 3,
|
|
0, 0, 0, 0, 0, 0, 240, 207, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 255, 253,
|
|
33, 16, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255,
|
|
255, 255, 255, 255, 251, 0, 248, 0, 0, 0, 124, 0, 0, 0, 0,
|
|
0, 0, 223, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 255, 255, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 128, 3, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0,
|
|
0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 247, 63, 0,
|
|
0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0,
|
|
68, 8, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 255, 255,
|
|
3, 0, 0, 0, 0, 0, 192, 63, 0, 0, 128, 255, 3, 0, 0,
|
|
0, 0, 0, 7, 0, 0, 0, 0, 0, 200, 19, 0, 0, 0, 0,
|
|
32, 0, 0, 0, 0, 0, 0, 0, 0, 126, 102, 0, 8, 16, 0,
|
|
0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 157, 193, 2, 0,
|
|
0, 0, 0, 48, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 32, 33, 0, 0, 0, 0, 0, 64, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 255,
|
|
255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 192, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 110, 240, 0, 0, 0, 0, 0, 135, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 96, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 255,
|
|
127, 0, 0, 0, 0, 0, 0, 128, 3, 0, 0, 0, 0, 0, 120,
|
|
38, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 128, 239,
|
|
31, 0, 0, 0, 0, 0, 0, 0, 8, 0, 3, 0, 0, 0, 0,
|
|
0, 192, 127, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 128, 211, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 128, 248, 7, 0, 0, 3, 0,
|
|
0, 0, 0, 0, 0, 16, 1, 0, 0, 0, 192, 31, 31, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 255, 92, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 248, 133, 13, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 176, 1, 0, 0, 48,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 167, 1, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 191, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 188, 15, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 126, 6, 0, 0, 0, 0, 248,
|
|
121, 128, 0, 126, 14, 0, 0, 0, 0, 0, 252, 127, 3, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 127, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 252, 255,
|
|
255, 252, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 126, 180, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31,
|
|
0, 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 128, 7, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 15, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 128, 3, 248, 255, 231, 15, 0, 0, 0, 60, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255,
|
|
255, 255, 127, 248, 255, 255, 255, 255, 255, 31, 32, 0, 16, 0, 0,
|
|
248, 254, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 255,
|
|
255, 249, 219, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 7, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0,
|
|
]
|
|
kWidthTab2 = [
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 18, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 19, 16, 20, 21, 22, 16, 16, 16, 23, 16,
|
|
16, 24, 25, 26, 27, 28, 17, 17, 17, 17, 17, 17, 17, 17, 17,
|
|
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
|
|
17, 17, 29, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
|
|
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
|
|
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
|
|
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
|
|
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
|
|
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 30,
|
|
16, 16, 16, 16, 31, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17,
|
|
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
|
|
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
|
|
17, 17, 17, 17, 17, 32, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 16, 16, 16, 33,
|
|
34, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 35, 17, 17, 17, 17, 17, 17, 17,
|
|
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
|
|
17, 36, 17, 17, 37, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 38, 39,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
|
16, 40, 41, 42, 43, 44, 45, 46, 16, 16, 47, 16, 16, 16, 16,
|
|
16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 6, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 30, 9, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 48,
|
|
0, 0, 0, 0, 0, 0, 255, 15, 0, 0, 0, 0, 128, 0, 0,
|
|
8, 0, 2, 12, 0, 96, 48, 64, 16, 0, 0, 4, 44, 36, 32,
|
|
12, 0, 0, 0, 1, 0, 0, 0, 80, 184, 0, 0, 0, 0, 0,
|
|
0, 0, 224, 0, 0, 0, 1, 128, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 255, 255, 255, 251, 255, 255, 255, 255, 255, 255, 255,
|
|
255, 255, 255, 15, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
255, 63, 0, 0, 0, 255, 15, 255, 255, 255, 255, 255, 255, 255, 127,
|
|
254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 127, 254, 255, 255, 255,
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 224, 255, 255, 255, 255, 127,
|
|
254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 127, 255, 255, 255,
|
|
255, 255, 7, 255, 255, 255, 255, 15, 0, 255, 255, 255, 255, 255, 127,
|
|
255, 255, 255, 255, 255, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 127, 255, 255,
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
255, 255, 31, 255, 255, 255, 255, 255, 255, 127, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255,
|
|
255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 15, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 255, 3, 0, 0, 255, 255, 255,
|
|
255, 247, 255, 127, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 254, 255, 255, 255, 255, 255, 255,
|
|
255, 255, 255, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 127, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 255, 255, 255,
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 31, 0, 0, 255,
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 7,
|
|
0, 255, 255, 255, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
255, 255, 255, 255, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 254, 7, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 255, 255, 255, 255,
|
|
255, 15, 255, 1, 3, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255,
|
|
1, 224, 191, 255, 255, 255, 255, 255, 255, 255, 255, 223, 255, 255, 15,
|
|
0, 255, 255, 255, 255, 255, 135, 15, 0, 255, 255, 17, 255, 255, 255,
|
|
255, 255, 255, 255, 255, 127, 253, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 159,
|
|
255, 255, 255, 255, 255, 255, 255, 63, 0, 120, 255, 255, 255, 0, 0,
|
|
4, 0, 0, 96, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0,
|
|
0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 63, 16, 7, 0,
|
|
0, 24, 240, 1, 0, 0, 255, 255, 255, 255, 255, 127, 255, 31, 255,
|
|
255, 255, 15, 0, 0, 255, 255, 255, 0, 0, 0, 0, 0, 1, 0,
|
|
255, 255, 127, 0, 0, 0,
|
|
]
|
|
|
|
kZlibDistCode = [
|
|
0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8,
|
|
8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10,
|
|
10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11,
|
|
11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
|
|
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
|
|
12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
|
|
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14,
|
|
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
|
|
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
|
|
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
|
|
14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
|
|
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
|
|
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
|
|
15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 16, 17, 18, 18, 19, 19, 20, 20,
|
|
20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23,
|
|
23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
|
|
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26,
|
|
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
|
|
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27,
|
|
27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
|
|
27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
|
|
28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
|
|
28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
|
|
28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29,
|
|
29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
|
|
29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
|
|
29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29]
|
|
|
|
# kZlibLengthCode = [
|
|
# 0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12,
|
|
# 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16,
|
|
# 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19,
|
|
# 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
|
|
# 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
|
|
# 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23,
|
|
# 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24,
|
|
# 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
|
|
# 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
|
|
# 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
|
|
# 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
|
|
# 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27,
|
|
# 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
|
|
# 27, 27, 27, 27, 27, 27, 27, 27, 28]
|
|
|
|
# duk_hex_dectab = [
|
|
# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0x00-0x0f */
|
|
# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0x10-0x1f */
|
|
# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0x20-0x2f */
|
|
# 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,0xff,0xff,0xff,0xff,0xff,0xff, # 0x30-0x3f */
|
|
# 0xff, 10, 11, 12, 13, 14, 15,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0x40-0x4f */
|
|
# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0x50-0x5f */
|
|
# 0xff, 10, 11, 12, 13, 14, 15,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0x60-0x6f */
|
|
# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0x70-0x7f */
|
|
# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0x80-0x8f */
|
|
# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0x90-0x9f */
|
|
# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0xa0-0xaf */
|
|
# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0xb0-0xbf */
|
|
# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0xc0-0xcf */
|
|
# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0xd0-0xdf */
|
|
# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, # 0xe0-0xef */
|
|
# 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff # 0xf0-0xff */
|
|
# ]
|
|
|
|
# tables = [('duk__base64_dectab_fast', duk__base64_dectab_fast)]
|
|
|
|
def kXtermXlat1(c):
|
|
if c >= 3:
|
|
return (c - 3) / 10
|
|
return 0
|
|
def kXtermXlat2(c):
|
|
if c <= 52: return 0
|
|
if c <= 115: return 1
|
|
if c <= 155: return 2
|
|
if c <= 195: return 3
|
|
if c <= 235: return 4
|
|
return 5
|
|
tables = [('kXtermXlat', ([kXtermXlat1(i) for i in range(256)] +
|
|
[kXtermXlat2(i) for i in range(256)]))]
|
|
|
|
kBoop = [int(s,16) for s in """
|
|
00 00 00 00 00 00 00 00 00 00 01 01 01 01 01 01
|
|
01 00 00 00 00 00 00 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 00 00 00 00 00 00 01 02 02 02 02 02 02 02 02
|
|
02 02 01 01 01 01 01 01 01 02 02 02 02 02 02 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 02 02 02 02 02 02 01
|
|
03 03 03 03 03 03 03 03 03 03 01 01 01 01 01 01
|
|
01 03 03 03 03 03 03 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 03 03 03 03 03 03 01 04 04 04 04 04 04 04 04
|
|
04 04 01 01 01 01 01 01 01 04 04 04 04 04 04 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 04 04 04 04 04 04 01
|
|
05 05 05 05 05 05 05 05 05 05 01 01 01 01 01 01
|
|
01 05 05 05 05 05 05 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 05 05 05 05 05 05 01 06 06 06 06 06 06 06 06
|
|
06 06 01 01 01 01 01 01 01 06 06 06 06 06 06 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 06 06 06 06 06 06 01
|
|
07 01 01 07 08 07 07 07 07 07 07 01 07 07 01 07
|
|
07 07 07 07 07 07 07 07 07 07 01 01 01 01 01 01
|
|
07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
|
|
07 07 07 07 07 07 07 07 07 07 07 01 07 01 07 01
|
|
07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
|
|
07 07 07 07 07 07 07 07 07 07 01 01 01 07 01 09
|
|
09 09 09 09 09 09 09 09 09 01 01 01 01 01 01 01
|
|
09 09 09 09 09 09 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
09 09 09 09 09 09 01 0a 0a 0a 0a 0a 0a 0a 0a 0a
|
|
0a 01 01 01 01 01 01 01 0a 0a 0a 0a 0a 0a 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 0a 0a 0a 0a 0a 0a 01 0b
|
|
01 01 0b 0c 0b 0b 0b 0b 0b 0b 01 0b 0b 01 0b 0b
|
|
0b 0b 0b 0b 0b 0b 0b 0b 0b 01 01 01 01 01 01 0b
|
|
0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b
|
|
0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 01 0b 01 0b 01 0b
|
|
0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b
|
|
0b 0b 0b 0b 0b 0b 0b 0b 0b 01 01 01 0b 01 0d 0d
|
|
0d 0d 0d 0d 0d 0d 0d 0d 01 01 01 01 01 01 01 0d
|
|
0d 0d 0d 0d 0d 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 0d
|
|
0d 0d 0d 0d 0d 01 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
|
|
01 01 01 01 01 01 01 0e 0e 0e 0e 0e 0e 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 0e 0e 0e 0e 0e 0e 01 0f 01
|
|
01 0f 10 01 0f 0f 0f 0f 0f 01 0f 0f 0f 0f 0f 0f
|
|
0f 0f 0f 0f 0f 0f 0f 0f 01 01 01 01 0f 01 0f 0f
|
|
0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f
|
|
0f 0f 0f 0f 0f 0f 0f 0f 0f 01 0f 01 0f 01 0f 0f
|
|
0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f
|
|
0f 0f 0f 0f 0f 0f 0f 0f 01 01 01 0f 01 11 11 11
|
|
11 11 11 11 11 11 11 01 01 01 01 01 01 01 11 11
|
|
11 11 11 11 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 11 11
|
|
11 11 11 11 01 12 12 12 12 12 12 12 12 12 12 01
|
|
01 01 01 01 01 01 12 12 12 12 12 12 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 12 12 12 12 12 12 01 13 01 01
|
|
13 14 01 13 13 13 13 13 01 13 13 13 13 13 13 13
|
|
13 13 13 13 13 13 13 01 01 01 01 13 01 13 13 13
|
|
13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
|
|
13 13 13 13 13 13 13 13 01 13 01 13 01 13 13 13
|
|
13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
|
|
13 13 13 13 13 13 13 01 01 01 13 01 15 15 15 15
|
|
15 15 15 15 15 15 01 01 01 01 01 01 01 15 15 15
|
|
15 15 15 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 15 15 15
|
|
15 15 15 01 16 16 16 16 16 16 16 16 16 16 01 01
|
|
01 01 01 01 01 16 16 16 16 16 16 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 16 16 16 16 16 16 01 17 17 17 17
|
|
17 17 17 17 17 17 01 01 01 01 01 01 01 17 17 17
|
|
17 17 17 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 17 17 17
|
|
17 17 17 01 18 18 18 18 18 18 18 18 18 18 01 01
|
|
01 01 01 01 01 18 18 18 18 18 18 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 18 18 18 18 18 18 01 19 01 01 19
|
|
1a 1b 19 19 19 19 19 1b 19 19 0f 19 19 19 19 19
|
|
19 19 19 19 19 19 01 01 1b 01 19 1c 19 19 19 19
|
|
19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19
|
|
19 19 19 19 19 19 0f 01 0f 01 19 01 19 19 19 19
|
|
19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19
|
|
19 19 19 19 19 19 01 01 01 19 01 1d 1d 1d 1d 1d
|
|
1d 1d 1d 1d 1d 01 01 01 01 01 01 01 1d 1d 1d 1d
|
|
1d 1d 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 1d 1d 1d 1d
|
|
1d 1d 01 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 01 01 01
|
|
01 01 01 01 1e 1e 1e 1e 1e 1e 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 1e 1e 1e 1e 1e 1e 01 1b 01 01 1b 1f
|
|
1b 1b 1b 1b 1b 1b 1b 1b 1b 01 1b 1b 1b 1b 1b 1b
|
|
1b 1b 1b 1b 1b 01 01 1b 01 1b 1c 1b 1b 1b 1b 1b
|
|
1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b
|
|
1b 1b 1b 1b 1b 01 01 01 01 1b 01 1b 1b 1b 1b 1b
|
|
1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b
|
|
1b 1b 1b 1b 1b 01 01 01 1b 01 20 20 20 20 20 20
|
|
20 20 20 20 01 01 01 01 01 01 01 20 20 20 20 20
|
|
20 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 20 20 20 20 20
|
|
20 01 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 01 01 01 01
|
|
01 01 01 1b 1b 1b 1b 1b 1b 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 1b 1b 1b 1b 1b 1b 01 21 01 21 21 01 21
|
|
21 21 21 21 21 21 21 21 21 01 01 01 01 01 01 01
|
|
21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21
|
|
21 21 21 21 21 21 21 21 21 21 22 01 01 01 01 01
|
|
21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21
|
|
21 21 21 21 21 21 21 21 21 21 01 23 23 23 23 23
|
|
23 23 23 23 23 01 24 01 24 24 24 24 24 24 24 24
|
|
24 24 24 01 01 01 01 01 01 24 24 24 24 24 24 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 24 24 24 24 24 24 01
|
|
25 01 25 25 25 25 25 25 25 25 25 25 25 01 01 01
|
|
01 01 01 25 25 25 25 25 25 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 26
|
|
01 01 01 25 25 25 25 25 25 01 27 01 01 27 28 1b
|
|
27 27 27 27 27 1b 27 27 13 27 27 27 27 27 27 27
|
|
27 27 27 27 01 01 1b 01 27 1c 27 27 27 27 27 27
|
|
27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27
|
|
27 27 27 27 13 01 13 01 27 01 27 27 27 27 27 27
|
|
27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27
|
|
27 27 27 27 01 01 01 27 01 29 29 29 29 29 29 29
|
|
29 29 29 01 01 01 01 01 01 01 29 29 29 29 29 29
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 29 29 29 29 29 29
|
|
01 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 01 01 01 01 01
|
|
01 01 2a 2a 2a 2a 2a 2a 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 2a 2a 2a 2a 2a 2a 01 2b 01 01 2b 2c 2b 2b
|
|
2b 2b 2b 2d 2b 2d 2d 2e 2d 2d 2d 2d 2d 2d 2d 2d
|
|
2d 2d 2b 2f 01 2b 01 2b 2f 2d 2d 2d 2d 2d 2d 2d
|
|
2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d
|
|
2d 2d 2d 30 01 01 01 2b 01 2d 2d 2d 2d 2d 2d 2d
|
|
2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d
|
|
2d 2d 2d 01 01 01 2b 01 31 31 31 31 31 31 31 31
|
|
31 31 01 01 01 01 01 01 01 31 31 31 31 31 31 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 31 31 31 31 31 31 01
|
|
32 32 32 32 32 32 32 32 32 32 01 01 01 01 01 01
|
|
01 32 32 32 32 32 32 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 32 32 32 32 32 32 01 33 33 33 33 33 33 33 33
|
|
33 33 01 01 01 01 01 01 01 33 33 33 33 33 33 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 33 33 33 33 33 33 01
|
|
2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 01 01 01 01 01 01
|
|
01 2f 2f 2f 2f 2f 2f 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 2f 2f 2f 2f 2f 2f 01 34 34 34 34 34 34 34 34
|
|
34 34 01 01 01 01 01 01 01 34 34 34 34 34 34 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 34 34 34 34 34 34 01
|
|
35 35 35 35 35 35 35 35 35 35 01 01 01 01 01 01
|
|
01 35 35 35 35 35 35 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 35 35 35 35 35 35 01 36 36 36 36 36 36 36 36
|
|
36 36 01 01 01 01 01 01 01 36 36 36 36 36 36 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 36 36 36 36 36 36 01
|
|
37 37 37 37 37 37 37 37 37 37 01 01 01 01 01 01
|
|
01 37 37 37 37 37 37 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 37 37 37 37 37 37 01 38 38 38 38 38 38 38 38
|
|
38 38 01 01 01 01 01 01 01 38 38 38 38 38 38 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 38 38 38 38 38 38 01
|
|
39 39 39 39 39 39 39 39 39 39 01 01 01 01 01 01
|
|
01 39 39 39 39 39 39 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 39 39 39 39 39 39 01 3a 01 01 3a 3b 3a 3a 3a
|
|
3a 3a 3a 01 3a 3a 01 3a 3a 3a 3a 3a 3a 3a 3a 3a
|
|
3a 3a 01 01 01 01 01 01 3a 3a 3a 3a 3a 3a 3a 3a
|
|
3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a
|
|
3a 3a 3a 01 3a 01 3a 01 3a 3a 3a 3a 3a 3a 3a 3a
|
|
3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a 3a
|
|
3a 3a 01 01 01 3a 01 3c 3c 3c 3c 3c 3c 3c 3c 3c
|
|
3c 01 01 01 01 01 01 01 3c 3c 3c 3c 3c 3c 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 3c 3c 3c 3c 3c 3c 01 3d
|
|
3d 3d 3d 3d 3d 3d 3d 3d 3d 01 01 01 01 01 01 01
|
|
3d 3d 3d 3d 3d 3d 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
3d 3d 3d 3d 3d 3d 01 3e 01 01 3e 3f 3e 3e 3e 3e
|
|
3e 3e 01 3e 3e 01 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e
|
|
3e 01 01 01 01 01 01 3e 3e 3e 3e 3e 3e 3e 3e 3e
|
|
3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e
|
|
3e 3e 01 3e 01 3e 01 3e 3e 3e 3e 3e 3e 3e 3e 3e
|
|
3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e 3e
|
|
3e 01 01 01 3e 01 40 01 40 40 40 40 40 40 40 40
|
|
40 40 40 01 01 01 01 01 01 40 40 40 40 40 40 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 40 40 40 40 40 40 01
|
|
41 01 41 41 41 41 41 41 41 41 41 41 41 01 01 01
|
|
01 01 01 41 41 41 41 41 41 01 01 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 42
|
|
01 01 01 41 41 41 41 41 41 01 43 43 43 43 43 43
|
|
43 43 43 43 01 44 01 45 44 46 44 44 44 44 44 44
|
|
44 44 44 2e 44 44 44 44 44 44 44 44 44 44 01 44
|
|
01 44 01 01 44 47 47 47 47 47 47 47 47 47 47 47
|
|
47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 01
|
|
01 01 01 44 01 47 47 47 47 47 47 47 47 47 47 47
|
|
47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 01
|
|
01 01 44 01 04 01 48 04 49 04 04 04 04 04 04 04
|
|
04 04 4a 04 04 04 04 04 04 04 04 04 04 01 04 01
|
|
04 01 4b 04 04 04 04 04 04 04 04 04 04 04 04 04
|
|
04 04 04 04 04 04 04 04 04 04 04 04 04 04 01 01
|
|
01 01 04 01 04 04 04 04 04 04 04 04 04 04 04 04
|
|
04 04 04 04 04 04 04 04 04 04 04 04 04 04 01 01
|
|
01 04 01 4c 01 01 4c 4d 4c 4c 4c 4c 4c 4c 4c 4c
|
|
4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 01 4c
|
|
01 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c
|
|
4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 01 01 01
|
|
01 4c 01 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c
|
|
4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 01 01 01
|
|
4c 01 02 01 01 02 4e 02 02 02 02 02 02 02 02 02
|
|
02 02 02 02 02 02 02 02 02 02 02 02 02 01 02 01
|
|
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
|
|
02 02 02 02 02 02 02 02 02 02 02 02 01 01 01 01
|
|
02 01 02 02 02 02 02 02 02 02 02 02 02 02 02 02
|
|
02 02 02 02 02 02 02 02 02 02 02 02 01 01 01 02
|
|
01 06 01 48 06 4f 06 06 06 06 06 06 06 06 06 4a
|
|
06 06 06 06 06 06 06 06 06 06 06 50 01 06 01 4b
|
|
06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
|
|
06 06 06 06 06 06 06 06 06 06 06 01 01 01 01 06
|
|
01 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
|
|
06 06 06 06 06 06 06 06 06 06 06 01 01 01 06 01
|
|
0a 01 51 0a 52 0a 0a 0a 0a 0a 0a 01 0a 0a 53 0a
|
|
0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 54 01 55 01 56 01
|
|
0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a
|
|
0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 01 0a 01 0a 01
|
|
0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a
|
|
0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 01 01 01 0a 01 0e
|
|
01 57 0e 58 0e 0e 0e 0e 0e 0e 01 0e 0e 59 0e 0e
|
|
0e 0e 0e 0e 0e 0e 0e 0e 0e 5a 01 01 01 5b 01 0e
|
|
0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
|
|
0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 01 0e 01 0e 01 0e
|
|
0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
|
|
0e 0e 0e 0e 0e 0e 0e 0e 0e 01 01 01 0e 01 12 01
|
|
5c 12 5d 5e 12 12 12 12 12 01 12 12 12 12 12 12
|
|
12 12 12 12 12 12 12 12 01 01 5f 01 12 01 12 12
|
|
12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12
|
|
12 12 12 12 12 12 12 12 12 01 12 01 12 01 12 12
|
|
12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12
|
|
12 12 12 12 12 12 12 12 01 01 01 12 01 16 01 60
|
|
16 61 62 16 16 16 16 16 01 16 16 16 16 16 16 16
|
|
16 16 16 16 16 16 16 01 01 01 01 16 01 16 16 16
|
|
16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16
|
|
16 16 16 16 16 16 16 16 01 16 01 16 01 16 16 16
|
|
16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16
|
|
16 16 16 16 16 16 16 01 01 01 16 01 06 01 48 06
|
|
4f 06 06 06 06 06 06 06 06 06 63 06 06 06 06 06
|
|
06 06 06 06 06 06 50 01 06 01 4b 06 06 06 06 06
|
|
06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
|
|
06 06 06 06 06 06 01 01 01 01 06 01 06 06 06 06
|
|
06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
|
|
06 06 06 06 06 06 01 01 01 06 01 64 01 48 64 65
|
|
64 64 64 64 64 66 64 66 66 4a 66 66 66 66 66 66
|
|
66 66 66 66 64 50 01 64 01 67 06 66 66 66 66 66
|
|
66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66
|
|
66 66 66 66 66 22 01 01 01 64 01 66 66 66 66 66
|
|
66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66
|
|
66 66 66 66 66 01 01 01 64 01 18 01 48 18 68 18
|
|
18 18 18 18 18 18 18 18 4a 18 18 18 18 18 18 18
|
|
18 18 18 18 50 01 18 01 69 6a 18 18 18 18 18 18
|
|
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
|
18 18 18 18 01 01 01 01 18 01 18 18 18 18 18 18
|
|
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
|
18 18 18 18 01 01 01 18 01 1e 01 5c 1e 6b 6c 1e
|
|
1e 1e 1e 1e 1b 1e 1e 12 1e 1e 1e 1e 1e 1e 1e 1e
|
|
1e 1e 1e 01 01 6d 01 1e 1c 1e 1e 1e 1e 1e 1e 1e
|
|
1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e
|
|
1e 1e 1e 12 01 12 01 1e 01 1e 1e 1e 1e 1e 1e 1e
|
|
1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e
|
|
1e 1e 1e 01 01 01 1e 01 6e 01 01 01 01 01 01 01
|
|
6f 01 6f 6f 70 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 71
|
|
01 01 01 01 72 01 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f
|
|
6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f
|
|
01 01 01 01 01 01 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f
|
|
6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f 6f
|
|
01 73 01 01 01 01 01 01 01 01 01 01 01 74 75 75
|
|
75 75 75 75 75 75 75 75 01 01 01 01 01 76 01 45
|
|
01 01 01 01 01 01 01 01 01 01 01 77 01 01 01 01
|
|
01 01 01 01 01 01 78 01 01 01 01 79 01 2a 01 60
|
|
2a 7a 7b 2a 2a 2a 2a 2a 1b 2a 2a 16 2a 2a 2a 2a
|
|
2a 2a 2a 2a 2a 2a 2a 01 01 1b 01 2a 1c 2a 2a 2a
|
|
2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a
|
|
2a 2a 2a 2a 2a 2a 2a 16 01 16 01 2a 01 2a 2a 2a
|
|
2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a
|
|
2a 2a 2a 2a 2a 2a 2a 01 01 01 2a 01 06 01 48 06
|
|
4f 06 06 06 06 06 7c 06 7c 7c 4a 7c 7c 7c 7c 7c
|
|
7c 7c 7c 7c 7c 06 50 01 06 01 4b 06 7c 7c 7c 7c
|
|
7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c
|
|
7c 7c 7c 7c 7c 7c 22 01 01 01 06 01 7c 7c 7c 7c
|
|
7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c
|
|
7c 7c 7c 7c 7c 7c 01 01 01 06 01 06 01 7d 06 4f
|
|
06 06 06 06 06 7e 06 7e 7e 7f 7e 7e 7e 7e 7e 7e
|
|
7e 7e 7e 7e 80 50 01 06 01 81 06 7e 7e 7e 7e 7e
|
|
7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e
|
|
7e 7e 7e 7e 7e 01 01 01 01 06 01 7e 7e 7e 7e 7e
|
|
7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e
|
|
7e 7e 7e 7e 7e 01 01 01 06 01 06 01 48 06 4f 06
|
|
06 06 06 06 06 06 06 06 4a 82 82 82 82 82 82 82
|
|
82 82 82 06 50 01 06 01 4b 06 06 06 06 06 06 06
|
|
06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
|
|
06 06 06 06 01 01 01 01 06 01 06 06 06 06 06 06
|
|
06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
|
|
06 06 06 06 01 01 01 06 01 06 01 83 06 4f 06 06
|
|
06 06 06 06 06 06 06 84 85 85 85 85 85 85 85 85
|
|
85 85 06 50 01 06 01 86 06 06 06 06 06 06 06 06
|
|
06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
|
|
06 06 06 01 01 01 01 06 01 06 06 06 06 06 06 06
|
|
06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
|
|
06 06 06 01 01 01 06 01 18 01 7d 18 68 18 18 18
|
|
18 18 87 18 87 87 7f 87 87 87 87 87 87 87 87 87
|
|
87 88 50 01 18 01 89 6a 87 87 87 87 87 87 87 87
|
|
87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87
|
|
87 87 01 01 01 01 18 01 87 87 87 87 87 87 87 87
|
|
87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87
|
|
87 87 01 01 01 18 01 18 01 48 18 68 18 18 18 18
|
|
18 18 18 18 18 4a 8a 8a 8a 8a 8a 8a 8a 8a 8a 8a
|
|
18 50 01 18 01 69 6a 18 18 18 18 18 18 18 18 18
|
|
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
|
18 01 01 01 01 18 01 18 18 18 18 18 18 18 18 18
|
|
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
|
18 01 01 01 18 01 18 01 83 18 68 18 18 18 18 18
|
|
18 18 18 18 84 8b 8b 8b 8b 8b 8b 8b 8b 8b 8b 18
|
|
50 01 18 01 8c 6a 18 18 18 18 18 18 18 18 18 18
|
|
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
|
01 01 01 01 18 01 18 18 18 18 18 18 18 18 18 18
|
|
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
|
01 01 01 18 01 04 01 48 04 49 04 04 04 04 04 8d
|
|
04 8d 8d 4a 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8e 04
|
|
01 04 01 4b 04 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d
|
|
8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 01
|
|
01 01 01 04 01 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d
|
|
8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 8d 01
|
|
01 01 04 01 32 01 45 32 8f 32 32 32 32 32 32 32
|
|
32 32 90 32 32 32 32 32 32 32 32 32 32 32 2f 01
|
|
32 01 32 91 32 32 32 32 32 32 32 32 32 32 32 32
|
|
32 32 32 32 32 32 32 32 32 32 32 32 32 32 01 01
|
|
01 01 32 01 32 32 32 32 32 32 32 32 32 32 32 32
|
|
32 32 32 32 32 32 32 32 32 32 32 32 32 32 01 01
|
|
01 32 01 45 01 2f 01 45 2f 92 2f 2f 2f 2f 2f 2f
|
|
2f 2f 2f 90 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f
|
|
01 2f 01 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f
|
|
2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 01
|
|
01 01 01 2f 01 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f
|
|
2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 01
|
|
01 01 2f 01 2f 01 45 2f 92 2f 2f 2f 2f 2f 93 2f
|
|
93 93 90 93 93 93 93 93 93 93 93 93 93 2f 2f 01
|
|
2f 01 2f 2f 93 93 93 93 93 93 93 93 93 93 93 93
|
|
93 93 93 93 93 93 93 93 93 93 93 93 93 93 30 01
|
|
01 01 2f 01 93 93 93 93 93 93 93 93 93 93 93 93
|
|
93 93 93 93 93 93 93 93 93 93 93 93 93 93 01 01
|
|
01 2f 01 2f 01 6e 2f 92 2f 2f 2f 2f 2f 94 2f 94
|
|
94 90 94 94 94 94 94 94 94 94 94 94 95 96 01 2f
|
|
01 2f 2f 94 94 94 94 94 94 94 94 94 94 94 94 94
|
|
94 94 94 94 94 94 94 94 94 94 94 94 94 01 01 01
|
|
01 2f 01 94 94 94 94 94 94 94 94 94 94 94 94 94
|
|
94 94 94 94 94 94 94 94 94 94 94 94 94 01 01 01
|
|
2f 01 2f 01 45 2f 92 2f 2f 2f 2f 2f 2f 2f 2f 2f
|
|
90 97 97 97 97 97 97 97 97 97 97 2f 2f 01 2f 01
|
|
2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f
|
|
2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 01 01 01 01
|
|
2f 01 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f
|
|
2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 01 01 01 2f
|
|
01 2f 01 73 2f 92 2f 2f 2f 2f 2f 2f 2f 2f 2f 90
|
|
98 98 98 98 98 98 98 98 98 98 2f 99 01 2f 01 2f
|
|
2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f
|
|
2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 01 01 01 01 2f
|
|
01 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f
|
|
2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 01 01 01 2f 01
|
|
9a 01 45 9a 9b 9a 9a 9a 9a 9a 9a 2f 9a 9a 90 9a
|
|
9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 2f 01 2f 01 2f 2f
|
|
9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a
|
|
9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 3a 01 3a 01 9a 01
|
|
9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 9a
|
|
9a 9a 9a 9a 9a 9a 9a 9a 9a 9a 01 01 01 9a 01 35
|
|
01 51 35 9c 35 35 35 35 35 35 2f 35 35 90 35 35
|
|
35 35 35 35 35 35 35 35 35 9d 01 9e 01 2f 2f 35
|
|
35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
|
|
35 35 35 35 35 35 35 35 35 3d 01 3d 01 35 01 35
|
|
35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
|
|
35 35 35 35 35 35 35 35 35 01 01 01 35 01 9f 01
|
|
45 9f a0 9f 9f 9f 9f 9f 9f 2f 9f 9f 90 9f 9f 9f
|
|
9f 9f 9f 9f 9f 9f 9f 9f 2f 01 2f 01 2f 2f 9f 9f
|
|
9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f
|
|
9f 9f 9f 9f 9f 9f 9f 9f 3e 01 3e 01 9f 01 9f 9f
|
|
9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f 9f
|
|
9f 9f 9f 9f 9f 9f 9f 9f 01 01 01 9f 01 37 01 57
|
|
37 a1 37 37 37 37 37 37 2f 37 37 90 37 37 37 37
|
|
37 37 37 37 37 37 37 a2 01 2f 01 2f 2f 37 37 37
|
|
37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37
|
|
37 37 37 37 37 37 37 39 01 39 01 37 01 37 37 37
|
|
37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37
|
|
37 37 37 37 37 37 37 01 01 01 37 01 39 01 57 39
|
|
a3 39 39 39 39 39 39 01 39 39 01 39 39 39 39 39
|
|
39 39 39 39 39 39 a4 01 01 01 01 01 39 39 39 39
|
|
39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39
|
|
39 39 39 39 39 39 39 01 39 01 39 01 39 39 39 39
|
|
39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39
|
|
39 39 39 39 39 39 01 01 01 39 01 3d 01 51 3d a5
|
|
3d 3d 3d 3d 3d 3d 01 3d 3d 01 3d 3d 3d 3d 3d 3d
|
|
3d 3d 3d 3d 3d a6 01 a7 01 01 01 3d 3d 3d 3d 3d
|
|
3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d
|
|
3d 3d 3d 3d 3d 3d 01 3d 01 3d 01 3d 3d 3d 3d 3d
|
|
3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d
|
|
3d 3d 3d 3d 3d 01 01 01 3d 01 45 01 01 01 01 01
|
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
|
01 a8 a9 01 73 01 01 01 01 01 01 01 01 01 01 01
|
|
01 aa aa aa aa aa aa aa aa aa aa 01 ab 01 32 01
|
|
6e 32 8f 32 32 32 32 32 ac 32 ac ac 90 ac ac ac
|
|
ac ac ac ac ac ac ac ad 96 01 32 01 32 91 ac ac
|
|
ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac
|
|
ac ac ac ac ac ac ac ac 01 01 01 01 32 01 ac ac
|
|
ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac
|
|
ac ac ac ac ac ac ac ac 01 01 01 32 01 32 01 45
|
|
32 8f 32 32 32 32 32 32 32 32 32 90 ae ae ae ae
|
|
ae ae ae ae ae ae 32 2f 01 32 01 32 91 32 32 32
|
|
32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
|
|
32 32 32 32 32 32 32 01 01 01 01 32 01 32 32 32
|
|
32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
|
|
32 32 32 32 32 32 32 01 01 01 32 01 32 01 73 32
|
|
8f 32 32 32 32 32 32 32 32 32 90 af af af af af
|
|
af af af af af 32 99 01 32 01 32 91 32 32 32 32
|
|
32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
|
|
32 32 32 32 32 32 01 01 01 01 32 01 32 32 32 32
|
|
32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
|
|
32 32 32 32 32 32 01 01 01 32 01 00
|
|
""".split()]
|
|
|
|
tables = [('kBoop', kBoop)]
|
|
|
|
|
|
lines = []
|
|
def put(l):
|
|
lines.append(l)
|
|
oc = 0
|
|
toto = 0
|
|
for name, table in tables:
|
|
toto += len(table)
|
|
it = iter(table)
|
|
c2 = next(it)
|
|
i2 = 0
|
|
put(".L%s.rodata:" % (name))
|
|
while c2 is not None:
|
|
c1, i1, run = c2, i2, 0
|
|
while c1 == c2:
|
|
run += 1
|
|
i2 += 1
|
|
c2 = next(it, None)
|
|
s = ' '
|
|
if 0 <= i1 < 256 and 0 <= i2 <= 256:
|
|
s = "%s " % C[i1] if i2 - i1 == 1 else "%s-%s" % (C[i1], C[i2-1])
|
|
put("\t.byte\t%d,0x%02x\t\t# %02x-%02x %s" % (run, c1, i1, i2-1, s))
|
|
oc += 2
|
|
put("\t.endobj\t.L%s.rodata" % (name))
|
|
put("\t.byte\t0,0\t\t# terminator")
|
|
oc += 2
|
|
align = 8
|
|
pad = align - oc % align
|
|
if pad != align:
|
|
put("\t.byte\t%s\t\t# padding" % (",".join(["0"] * pad)))
|
|
oc += pad
|
|
|
|
print "\t.initbss 300,_init_%s" % (name)
|
|
for name, table in tables:
|
|
print "%s:" % (name)
|
|
print "\t.zero\t%d" % (len(table))
|
|
print "\t.endobj\t%s,globl,hidden" % (name)
|
|
print "\t.previous"
|
|
print
|
|
|
|
print "\t.initro 300,_init_%s\t# %d bytes (%d%%)" % (
|
|
name, oc, int(round((oc / float(toto)) * 100)))
|
|
print "\n".join(lines)
|
|
print "\t.previous"
|
|
print
|
|
|
|
print "\t.init.start 300,_init_%s" % tables[0][0]
|
|
print "\tcall\trldecode"
|
|
if pad != align:
|
|
while pad:
|
|
for op, add in (("lodsq", 8),
|
|
("lodsl", 4),
|
|
("lodsw", 2),
|
|
("lodsb", 1)):
|
|
if pad >= add:
|
|
print "\t%s" % (op)
|
|
pad -= add
|
|
print "\t.init.end 300,_init_%s" % tables[0][0]
|