summaryrefslogtreecommitdiff
path: root/src/buildvm_x86.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildvm_x86.h')
-rw-r--r--src/buildvm_x86.h2361
1 files changed, 1197 insertions, 1164 deletions
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h
index 6fd8eb00..f50d16b8 100644
--- a/src/buildvm_x86.h
+++ b/src/buildvm_x86.h
@@ -12,575 +12,557 @@
12#define DASM_SECTION_CODE_OP 0 12#define DASM_SECTION_CODE_OP 0
13#define DASM_SECTION_CODE_SUB 1 13#define DASM_SECTION_CODE_SUB 1
14#define DASM_MAXSECTION 2 14#define DASM_MAXSECTION 2
15static const unsigned char build_actionlist[15199] = { 15static const unsigned char build_actionlist[15137] = {
16 254,1,248,10,137,202,137,114,252,252,139,181,233,15,182,142,233,139,190,233, 16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141,
17 139,108,36,48,141,12,202,59,141,233,15,135,244,11,15,182,142,233,57,200,15, 17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,
18 134,244,249,248,2,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 18 20,252,247,198,237,15,132,244,13,248,14,252,247,198,237,15,132,244,10,199,
19 255,36,171,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252, 19 131,233,237,131,230,252,248,41,214,252,247,222,131,232,1,15,132,244,248,248,
20 233,244,2,248,12,137,113,252,252,141,52,197,237,141,148,253,49,233,137,106, 20 1,139,44,10,137,106,252,248,139,108,10,4,137,106,252,252,131,194,8,131,232,
21 252,248,137,114,252,252,139,181,233,15,182,174,233,141,60,252,234,139,108, 21 1,15,133,244,1,248,2,255,139,108,36,48,137,181,233,248,3,139,68,36,20,139,
22 36,48,59,189,233,15,135,244,13,137,208,15,182,174,233,133,252,237,15,132, 22 76,36,56,248,4,57,193,15,133,244,252,248,5,131,252,234,8,137,149,233,248,
23 244,248,248,1,131,193,8,57,209,15,131,244,249,255,139,121,252,248,137,56, 23 15,139,76,36,52,137,141,233,49,192,248,16,131,196,28,91,94,95,93,195,248,
24 139,121,252,252,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,
25 244,1,248,2,139,190,233,255,139,6,15,182,204,15,182,232,131,198,4,193,232,
26 16,252,255,36,171,248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,244,3,
27 252,233,244,2,248,14,137,113,252,252,139,189,233,139,108,36,48,141,68,193,
28 252,248,137,141,233,141,136,233,137,133,233,59,141,233,137,124,36,4,137,44,
29 36,15,135,244,15,199,131,233,237,252,255,147,233,199,131,233,237,139,149,
30 233,255,141,12,194,252,247,217,3,141,233,248,16,131,192,1,137,68,36,20,252,
31 247,198,237,15,132,244,17,252,233,244,18,248,19,137,113,252,252,139,189,233,
32 139,108,36,48,141,68,193,252,248,137,141,233,141,136,233,137,133,233,59,141,
33 233,137,44,36,15,135,244,15,199,131,233,237,252,255,215,199,131,233,237,139,
34 149,233,255,141,12,194,252,247,217,3,141,233,248,16,131,192,1,137,68,36,20,
35 252,247,198,237,15,132,244,17,248,18,252,247,198,237,15,132,244,20,199,131,
36 233,237,131,230,252,248,41,214,252,247,222,131,232,1,15,132,244,248,248,1,
37 139,44,10,137,106,252,248,139,108,10,4,137,106,252,252,131,194,8,131,232,
38 1,15,133,244,1,248,2,139,108,36,48,137,181,233,248,3,139,68,36,20,139,76,
39 36,56,248,4,255,57,193,15,133,244,252,248,5,131,252,234,8,137,149,233,248,
40 21,139,76,36,52,137,141,233,49,192,248,22,131,196,28,91,94,95,93,195,248,
41 6,15,130,244,253,59,149,233,15,135,244,254,199,66,252,252,237,131,194,8,131, 24 6,15,130,244,253,59,149,233,15,135,244,254,199,66,252,252,237,131,194,8,131,
42 192,1,252,233,244,4,248,7,133,201,15,132,244,5,41,193,141,20,202,252,233, 25 192,1,252,233,244,4,248,7,255,133,201,15,132,244,5,41,193,141,20,202,252,
43 244,5,248,8,255,137,149,233,137,68,36,20,137,202,137,252,233,232,251,1,0, 26 233,244,5,248,8,137,149,233,137,68,36,20,137,202,137,252,233,232,251,1,0,
44 139,149,233,252,233,244,3,248,23,137,208,137,204,248,24,139,108,36,48,139, 27 139,149,233,252,233,244,3,248,17,137,208,137,204,248,18,139,108,36,48,139,
45 173,233,199,133,233,237,252,233,244,22,248,25,129,225,239,137,204,248,26, 28 173,233,199,133,233,237,252,233,244,16,248,19,129,225,239,137,204,248,20,
46 139,108,36,48,185,252,248,252,255,252,255,252,255,184,237,139,149,233,139, 29 139,108,36,48,185,252,248,252,255,252,255,252,255,184,237,255,139,149,233,
47 157,233,129,195,239,139,114,252,252,199,66,252,252,237,199,131,233,237,255, 30 139,157,233,129,195,239,139,114,252,252,199,66,252,252,237,199,131,233,237,
48 252,233,244,16,248,20,252,247,198,237,15,132,244,27,131,230,252,248,41,252, 31 252,233,244,12,248,21,186,237,252,233,244,248,248,22,131,232,8,252,233,244,
49 242,141,76,49,252,248,139,114,252,252,199,68,10,4,237,252,233,244,16,248, 32 247,248,23,141,68,194,252,248,248,1,15,182,142,233,131,198,4,137,149,233,
50 15,186,237,252,233,244,247,248,13,137,202,248,11,141,68,194,252,248,15,182, 33 137,133,233,255,137,116,36,24,137,202,248,2,137,252,233,232,251,1,0,139,149,
51 142,233,131,198,4,137,149,233,137,133,233,137,116,36,24,137,202,248,1,137, 34 233,139,133,233,139,106,252,248,139,114,252,252,41,208,193,232,3,131,192,
52 252,233,232,251,1,0,139,141,233,255,139,133,233,139,105,252,248,139,113,252, 35 1,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,248,
53 252,41,200,193,232,3,131,192,1,252,255,165,233,248,28,85,87,86,83,131,252, 36 24,85,87,86,83,131,252,236,28,139,108,36,48,139,76,36,52,190,237,49,192,141,
54 236,28,139,108,36,48,139,76,36,52,190,237,49,192,141,188,253,36,233,139,157, 37 188,253,36,233,139,157,233,129,195,239,137,189,233,137,68,36,24,137,68,36,
55 233,129,195,239,137,189,233,137,68,36,24,137,68,36,52,56,133,233,15,132,244, 38 52,56,133,233,15,132,244,249,199,131,233,237,136,133,233,139,149,233,139,
56 249,199,131,233,237,136,133,233,139,149,233,139,133,233,41,200,193,232,3, 39 133,233,41,200,193,232,3,131,192,1,41,209,139,114,252,252,137,68,36,20,252,
57 131,192,1,41,209,139,114,252,252,137,68,36,20,252,247,198,237,15,132,244, 40 247,198,237,15,132,244,13,255,252,233,244,14,248,25,85,87,86,83,131,252,236,
58 17,252,233,244,18,248,29,255,85,87,86,83,131,252,236,28,190,237,252,233,244, 41 28,190,237,252,233,244,247,248,26,85,87,86,83,131,252,236,28,190,237,248,
59 247,248,30,85,87,86,83,131,252,236,28,190,237,248,1,139,108,36,48,139,76, 42 1,139,108,36,48,139,76,36,52,248,2,139,189,233,137,124,36,52,137,108,36,24,
60 36,52,248,2,139,189,233,137,124,36,52,137,108,36,24,137,165,233,139,157,233, 43 137,165,233,139,157,233,129,195,239,248,3,199,131,233,237,139,149,233,1,206,
61 129,195,239,248,3,199,131,233,237,139,149,233,1,206,41,214,139,133,233,41, 44 41,214,139,133,233,41,200,193,232,3,131,192,1,248,27,255,139,105,252,248,
62 200,193,232,3,131,192,1,139,105,252,248,129,121,253,252,252,239,15,133,244, 45 129,121,253,252,252,239,15,133,244,28,248,29,137,202,137,114,252,252,139,
63 31,252,255,165,233,248,32,255,85,87,86,83,131,252,236,28,139,108,36,48,139, 46 181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,248,30,
64 68,36,56,139,76,36,52,139,84,36,60,137,108,36,24,139,189,233,43,189,233,199, 47 85,87,86,83,131,252,236,28,139,108,36,48,139,68,36,56,139,76,36,52,139,84,
65 68,36,60,0,0,0,0,137,124,36,56,137,68,36,8,137,76,36,4,137,44,36,139,189, 48 36,60,137,108,36,24,139,189,233,43,189,233,199,68,36,60,0,0,0,0,137,124,36,
66 233,137,124,36,52,137,165,233,252,255,210,133,192,15,132,244,21,137,193,190, 49 56,137,68,36,8,137,76,36,4,137,44,36,139,189,233,137,124,36,52,137,165,233,
67 237,252,233,244,2,248,27,1,209,131,230,252,248,137,213,41,252,242,199,68, 50 252,255,210,133,192,15,132,244,15,137,193,190,237,252,233,244,2,248,11,1,
68 193,252,252,237,137,200,139,117,252,244,139,77,252,240,139,122,252,248,139, 51 209,131,230,252,248,137,213,41,252,242,199,68,193,252,252,237,137,200,139,
69 191,233,139,191,233,252,255,225,248,33,15,182,78,252,255,131,252,237,16,141, 52 117,252,244,139,77,252,240,139,122,252,248,139,191,233,139,191,233,252,255,
70 12,202,41,252,233,15,132,244,34,252,247,217,193,252,233,3,137,76,36,8,139, 53 225,248,31,255,15,182,78,252,255,131,252,237,16,141,12,202,41,252,233,15,
71 72,4,139,0,137,77,4,137,69,0,137,108,36,4,252,233,244,35,248,36,137,68,36, 54 132,244,32,252,247,217,193,252,233,3,137,76,36,8,139,72,4,139,0,137,77,4,
72 16,199,68,36,20,237,255,141,68,36,16,128,126,252,252,235,15,133,244,247,141, 55 137,69,0,137,108,36,4,252,233,244,33,248,34,137,68,36,16,199,68,36,20,237,
73 139,233,137,41,199,65,4,237,137,205,252,233,244,248,248,37,15,182,70,252, 56 141,68,36,16,128,126,252,252,235,15,133,244,247,141,139,233,137,41,199,65,
74 254,255,252,242,15,42,192,252,242,15,17,68,36,16,255,137,68,36,12,219,68, 57 4,237,137,205,252,233,244,248,248,35,15,182,70,252,254,255,252,242,15,42,
75 36,12,221,92,36,16,255,141,68,36,16,252,233,244,247,248,38,15,182,70,252, 58 192,252,242,15,17,68,36,16,255,137,68,36,12,219,68,36,12,221,92,36,16,255,
76 254,141,4,194,248,1,15,182,110,252,255,141,44,252,234,248,2,137,108,36,4, 59 141,68,36,16,252,233,244,247,248,36,15,182,70,252,254,141,4,194,248,1,15,
77 139,108,36,48,137,68,36,8,137,44,36,137,149,233,137,116,36,24,232,251,1,1, 60 182,110,252,255,141,44,252,234,248,2,137,108,36,4,139,108,36,48,137,68,36,
78 139,149,233,133,192,15,132,244,249,248,34,15,182,78,252,253,139,104,4,139, 61 8,137,44,36,137,149,233,137,116,36,24,232,251,1,1,139,149,233,133,192,15,
79 0,137,108,202,4,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 62 132,244,249,248,32,15,182,78,252,253,139,104,4,139,0,137,108,202,4,137,4,
80 252,255,36,171,248,3,139,141,233,137,113,252,244,141,177,233,41,214,139,105, 63 202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,
81 252,248,184,3,0,0,0,252,255,165,233,248,39,137,68,36,16,199,68,36,20,237, 64 139,141,233,137,113,252,244,141,177,233,41,214,139,105,252,248,184,237,252,
82 141,68,36,16,128,126,252,252,235,15,133,244,247,141,139,233,255,137,41,199, 65 233,244,29,248,37,137,68,36,16,199,68,36,20,237,141,68,36,16,128,126,252,
83 65,4,237,137,205,252,233,244,248,248,40,15,182,70,252,254,255,141,68,36,16, 66 252,235,15,133,244,247,255,141,139,233,137,41,199,65,4,237,137,205,252,233,
84 252,233,244,247,248,41,15,182,70,252,254,141,4,194,248,1,15,182,110,252,255, 67 244,248,248,38,15,182,70,252,254,255,141,68,36,16,252,233,244,247,248,39,
85 141,44,252,234,248,2,137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137, 68 15,182,70,252,254,141,4,194,248,1,15,182,110,252,255,141,44,252,234,248,2,
86 149,233,137,116,36,24,232,251,1,2,139,149,233,133,192,15,132,244,249,15,182, 69 137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137,116,36,24,
87 78,252,253,139,108,202,4,139,12,202,137,104,4,137,8,248,42,139,6,15,182,204, 70 232,251,1,2,139,149,233,133,192,15,132,244,249,15,182,78,252,253,139,108,
88 15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,139,141,233,137,113, 71 202,4,139,12,202,137,104,4,137,8,248,40,139,6,15,182,204,15,182,232,131,198,
89 252,244,15,182,70,252,253,139,108,194,4,139,4,194,137,105,20,137,65,16,141, 72 4,193,232,16,252,255,36,171,248,3,139,141,233,137,113,252,244,15,182,70,252,
90 177,233,41,214,139,105,252,248,184,4,0,0,0,252,255,165,233,248,43,15,182, 73 253,139,108,194,4,139,4,194,137,105,20,137,65,16,141,177,233,41,214,139,105,
91 110,252,252,141,4,194,141,12,202,137,108,36,12,139,108,36,48,137,68,36,8, 74 252,248,184,237,252,233,244,29,248,41,15,182,110,252,252,141,4,194,141,12,
92 137,76,36,4,137,44,36,137,149,233,137,116,36,24,232,251,1,3,248,3,139,149, 75 202,137,108,36,12,139,108,36,48,137,68,36,8,137,76,36,4,137,44,36,137,149,
93 233,131,252,248,1,15,135,244,44,248,4,255,141,118,4,15,130,244,252,248,5, 76 233,137,116,36,24,232,251,1,3,248,3,139,149,233,255,131,252,248,1,15,135,
94 15,183,70,252,254,141,180,253,134,233,248,6,139,6,15,182,204,15,182,232,131, 77 244,42,248,4,141,118,4,15,130,244,252,248,5,15,183,70,252,254,141,180,253,
95 198,4,193,232,16,252,255,36,171,248,45,131,198,4,129,120,253,4,239,15,130, 78 134,233,248,6,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
96 244,5,252,233,244,6,248,46,129,120,253,4,239,252,233,244,4,248,47,131,252, 79 171,248,43,131,198,4,129,120,253,4,239,15,130,244,5,252,233,244,6,248,44,
97 238,4,137,108,36,12,139,108,36,48,137,68,36,8,137,76,36,4,137,44,36,137,149, 80 129,120,253,4,239,252,233,244,4,248,45,131,252,238,4,137,108,36,12,139,108,
98 233,137,116,36,24,232,251,1,4,252,233,244,3,248,48,255,141,4,199,252,233, 81 36,48,137,68,36,8,137,76,36,4,137,44,36,137,149,233,255,137,116,36,24,232,
99 244,247,248,49,141,4,199,141,44,252,234,149,252,233,244,248,248,50,141,4, 82 251,1,4,252,233,244,3,248,46,141,4,199,252,233,244,247,248,47,141,4,199,141,
100 194,137,197,252,233,244,248,248,51,141,4,194,248,1,141,44,252,234,248,2,141, 83 44,252,234,149,252,233,244,248,248,48,141,4,194,137,197,252,233,244,248,248,
101 12,202,137,108,36,8,139,108,36,48,137,68,36,12,15,182,70,252,252,137,76,36, 84 49,141,4,194,248,1,141,44,252,234,248,2,141,12,202,137,108,36,8,139,108,36,
102 4,137,68,36,16,137,44,36,137,149,233,137,116,36,24,232,251,1,5,139,149,233, 85 48,137,68,36,12,15,182,70,252,252,137,76,36,4,137,68,36,16,137,44,36,137,
103 133,192,15,132,244,42,248,44,137,193,41,208,137,113,252,244,141,176,233,139, 86 149,233,137,116,36,24,232,251,1,5,139,149,233,133,192,15,132,244,40,248,42,
104 105,252,248,184,3,0,0,0,129,121,253,252,252,239,15,133,244,31,255,252,255, 87 137,193,41,208,137,113,252,244,141,176,233,255,184,237,252,233,244,27,248,
105 165,233,248,52,139,108,36,48,137,149,233,141,20,194,137,252,233,137,116,36, 88 50,139,108,36,48,137,149,233,141,20,194,137,252,233,137,116,36,24,232,251,
106 24,232,251,1,6,139,149,233,252,233,244,44,248,31,137,76,36,20,137,68,36,16, 89 1,6,139,149,233,252,233,244,42,248,51,141,76,202,8,248,28,137,76,36,20,137,
107 131,252,233,8,141,4,193,139,108,36,48,137,76,36,4,137,68,36,8,137,44,36,137, 90 68,36,16,131,252,233,8,141,4,193,139,108,36,48,137,76,36,4,137,68,36,8,137,
108 149,233,137,116,36,24,232,251,1,7,139,149,233,139,76,36,20,139,68,36,16,139, 91 44,36,137,149,233,137,116,36,24,232,251,1,7,139,149,233,139,76,36,20,139,
109 105,252,248,131,192,1,57,215,15,132,244,53,252,255,165,233,248,54,139,108, 92 68,36,16,139,105,252,248,131,192,1,57,215,15,132,244,52,137,202,137,114,252,
110 36,48,137,149,233,137,202,137,252,233,137,116,36,24,232,251,1,8,139,149,233, 93 252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,
111 139,70,252,252,15,182,204,15,182,232,193,232,16,252,255,164,253,171,233,248, 94 248,53,139,108,36,48,137,149,233,137,202,137,252,233,137,116,36,24,232,251,
112 55,129,252,248,239,15,130,244,56,255,139,105,4,129,252,253,239,15,131,244, 95 1,8,139,149,233,139,70,252,252,15,182,204,15,182,232,193,232,16,252,255,164,
113 56,137,68,36,20,137,105,252,252,139,41,137,105,252,248,131,232,2,15,132,244, 96 253,171,233,248,54,255,129,252,248,239,15,130,244,55,139,106,4,129,252,253,
114 248,137,76,36,16,248,1,131,193,8,139,105,4,137,105,252,252,139,41,137,105, 97 239,15,131,244,55,139,114,252,252,137,68,36,20,137,106,252,252,139,42,137,
115 252,248,131,232,1,15,133,244,1,139,76,36,16,248,2,139,68,36,20,252,233,244, 98 106,252,248,131,232,2,15,132,244,248,137,209,248,1,131,193,8,139,105,4,137,
116 57,248,58,129,252,248,239,15,130,244,56,139,105,4,184,237,252,247,213,57, 99 105,252,252,139,41,137,105,252,248,131,232,1,15,133,244,1,248,2,139,68,36,
117 232,255,15,71,197,255,15,134,244,247,137,232,248,1,255,139,105,252,248,139, 100 20,252,233,244,56,248,57,129,252,248,239,15,130,244,55,139,106,4,184,237,
118 132,253,197,233,199,65,252,252,237,137,65,252,248,252,233,244,59,248,60,129, 101 252,247,213,57,232,255,15,71,197,255,15,134,244,247,137,232,248,1,255,139,
119 252,248,239,15,130,244,56,139,105,4,129,252,253,239,15,133,244,252,248,1, 102 106,252,248,139,132,253,197,233,139,114,252,252,199,66,252,252,237,137,66,
120 139,41,139,173,233,248,2,133,252,237,199,65,252,252,237,15,132,244,59,139, 103 252,248,252,233,244,58,248,59,129,252,248,239,15,130,244,55,139,106,4,139,
121 65,252,248,139,131,233,199,65,252,252,237,137,105,252,248,137,76,36,16,139, 104 114,252,252,129,252,253,239,15,133,244,252,248,1,139,42,139,173,233,248,2,
122 141,233,255,35,136,233,105,201,239,3,141,233,248,3,129,185,233,239,15,133, 105 133,252,237,199,66,252,252,237,15,132,244,58,139,131,233,199,66,252,252,237,
123 244,250,57,129,233,15,132,244,251,248,4,139,137,233,133,201,15,133,244,3, 106 137,106,252,248,139,141,233,255,35,136,233,105,201,239,3,141,233,248,3,129,
124 252,233,244,59,248,5,139,105,4,129,252,253,239,15,132,244,59,255,139,1,139, 107 185,233,239,15,133,244,250,57,129,233,15,132,244,251,248,4,139,137,233,133,
125 76,36,16,137,105,252,252,137,65,252,248,252,233,244,59,248,6,129,252,253, 108 201,15,133,244,3,252,233,244,58,248,5,139,105,4,129,252,253,239,15,132,244,
126 239,15,132,244,1,129,252,253,239,15,135,244,253,189,237,248,7,252,247,213, 109 58,255,139,1,137,106,252,252,137,66,252,248,252,233,244,58,248,6,129,252,
127 139,172,253,171,233,252,233,244,2,248,61,129,252,248,239,15,130,244,56,129, 110 253,239,15,132,244,1,129,252,253,239,15,135,244,253,189,237,248,7,252,247,
128 121,253,4,239,15,133,244,56,255,139,41,131,189,233,0,15,133,244,56,129,121, 111 213,139,172,253,171,233,252,233,244,2,248,60,129,252,248,239,15,130,244,55,
129 253,12,239,15,133,244,56,139,65,8,137,133,233,199,65,252,252,237,137,105, 112 129,122,253,4,239,15,133,244,55,255,139,42,131,189,233,0,15,133,244,55,129,
130 252,248,252,246,133,233,235,15,132,244,247,128,165,233,235,139,131,233,137, 113 122,253,12,239,15,133,244,55,139,66,8,137,133,233,139,114,252,252,199,66,
131 171,233,137,133,233,248,1,252,233,244,59,248,62,255,129,252,248,239,15,130, 114 252,252,237,137,106,252,248,252,246,133,233,235,15,132,244,247,128,165,233,
132 244,56,129,121,253,4,239,15,133,244,56,139,1,139,108,36,48,137,68,36,4,137, 115 235,139,131,233,137,171,233,137,133,233,248,1,252,233,244,58,248,61,255,129,
133 44,36,137,205,137,84,36,16,131,193,8,137,76,36,8,232,251,1,9,137,252,233, 116 252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,139,2,139,108,36,
134 139,84,36,16,139,40,139,64,4,137,105,252,248,137,65,252,252,252,233,244,59, 117 48,137,68,36,4,137,44,36,137,213,131,194,8,137,84,36,8,232,251,1,9,137,252,
135 248,63,129,252,248,239,15,133,244,56,129,121,253,4,239,15,135,244,56,255, 118 234,139,40,139,64,4,139,114,252,252,137,106,252,248,137,66,252,252,252,233,
136 252,242,15,16,1,252,233,244,64,255,221,1,252,233,244,65,255,248,66,129,252, 119 244,58,248,62,129,252,248,239,15,133,244,55,129,122,253,4,239,15,135,244,
137 248,239,15,130,244,56,129,121,253,4,239,15,133,244,249,139,1,248,2,199,65, 120 55,255,252,242,15,16,2,252,233,244,63,255,221,2,252,233,244,64,255,248,65,
138 252,252,237,137,65,252,248,252,233,244,59,248,3,129,121,253,4,239,15,135, 121 129,252,248,239,15,130,244,55,139,114,252,252,129,122,253,4,239,15,133,244,
139 244,56,131,187,233,0,15,133,244,56,139,171,233,59,171,233,255,15,130,244, 122 249,139,2,248,2,199,66,252,252,237,137,66,252,248,252,233,244,58,248,3,129,
140 247,232,244,67,248,1,139,108,36,48,137,141,233,137,113,252,252,137,116,36, 123 122,253,4,239,15,135,244,55,131,187,233,0,15,133,244,55,139,171,233,59,171,
141 24,137,84,36,16,137,202,137,252,233,232,251,1,10,139,141,233,139,84,36,16, 124 233,255,15,130,244,247,232,244,66,248,1,139,108,36,48,137,149,233,137,116,
142 252,233,244,2,248,68,129,252,248,239,15,130,244,56,15,132,244,248,248,1,129, 125 36,24,137,252,233,232,251,1,10,139,149,233,252,233,244,2,248,67,129,252,248,
143 121,253,4,239,15,133,244,56,139,41,137,108,36,4,139,108,36,48,137,44,36,137, 126 239,15,130,244,55,15,132,244,248,248,1,129,122,253,4,239,15,133,244,55,139,
144 141,233,255,137,113,252,252,137,84,36,16,131,193,8,137,76,36,8,137,116,36, 127 108,36,48,137,149,233,255,139,114,252,252,139,2,137,68,36,4,137,44,36,131,
145 24,232,251,1,11,139,141,233,139,84,36,16,133,192,15,132,244,249,139,105,8, 128 194,8,137,84,36,8,137,116,36,24,232,251,1,11,139,149,233,133,192,15,132,244,
146 139,65,12,137,105,252,248,137,65,252,252,139,105,16,139,65,20,137,41,137, 129 249,139,106,8,139,66,12,137,106,252,248,137,66,252,252,139,106,16,139,66,
147 65,4,248,69,184,237,252,233,244,70,248,2,199,65,12,237,252,233,244,1,248, 130 20,137,42,137,66,4,248,68,184,237,252,233,244,69,248,2,199,66,12,237,252,
148 3,199,65,252,252,237,252,233,244,59,248,71,129,252,248,239,15,130,244,56, 131 233,244,1,248,3,199,66,252,252,237,252,233,244,58,248,70,129,252,248,239,
149 129,121,253,4,239,255,15,133,244,56,139,133,233,199,65,252,252,237,137,65, 132 15,130,244,55,139,106,252,248,129,122,253,4,239,255,15,133,244,55,139,133,
150 252,248,199,65,12,237,184,237,252,233,244,70,248,72,129,252,248,239,15,130, 133 233,139,114,252,252,199,66,252,252,237,137,66,252,248,199,66,12,237,184,237,
151 244,56,129,121,253,4,239,15,133,244,56,129,121,253,12,239,15,135,244,56,255, 134 252,233,244,69,248,71,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
152 252,242,15,16,65,8,189,0,0,252,240,63,102,15,110,205,102,15,112,201,81,252, 135 133,244,55,129,122,253,12,239,15,135,244,55,139,114,252,252,255,252,242,15,
153 242,15,88,193,252,242,15,45,192,252,242,15,17,65,252,248,255,221,65,8,217, 136 16,66,8,189,0,0,252,240,63,102,15,110,205,102,15,112,201,81,252,242,15,88,
154 232,222,193,219,20,36,221,89,252,248,139,4,36,255,139,41,59,133,233,15,131, 137 193,252,242,15,45,192,252,242,15,17,66,252,248,255,221,66,8,217,232,222,193,
155 244,248,193,224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,73,139,40, 138 219,20,36,221,90,252,248,139,4,36,255,139,42,59,133,233,15,131,244,248,193,
156 139,64,4,137,41,137,65,4,252,233,244,69,248,2,131,189,233,0,15,132,244,73, 139 224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,72,139,40,139,64,4,137,
157 137,84,36,16,135,205,137,194,232,251,1,12,137,252,233,139,84,36,16,133,192, 140 42,137,66,4,252,233,244,68,248,2,131,189,233,0,15,132,244,72,137,252,233,
158 15,133,244,1,248,73,184,237,252,233,244,70,248,74,255,129,252,248,239,15, 141 137,213,137,194,232,251,1,12,137,252,234,133,192,15,133,244,1,248,72,184,
159 130,244,56,129,121,253,4,239,15,133,244,56,139,133,233,199,65,252,252,237, 142 237,252,233,244,69,248,73,255,129,252,248,239,15,130,244,55,139,106,252,248,
160 137,65,252,248,255,15,87,192,252,242,15,17,65,8,255,217,252,238,221,89,8, 143 129,122,253,4,239,15,133,244,55,139,133,233,139,114,252,252,199,66,252,252,
161 255,184,237,252,233,244,70,248,75,129,252,248,239,15,130,244,56,137,113,252, 144 237,137,66,252,248,255,15,87,192,252,242,15,17,66,8,255,217,252,238,221,90,
162 252,190,237,137,202,131,193,8,131,232,1,139,105,252,248,248,1,252,246,131, 145 8,255,184,237,252,233,244,69,248,74,129,252,248,239,15,130,244,55,141,74,
163 233,235,15,133,244,249,248,2,129,121,253,252,252,239,15,133,244,31,252,255, 146 8,131,232,1,190,237,248,1,15,182,171,233,193,252,237,235,131,229,1,1,252,
164 165,233,248,3,131,198,1,252,233,244,2,248,76,255,129,252,248,239,15,130,244, 147 238,252,233,244,27,248,75,129,252,248,239,15,130,244,55,129,122,253,12,239,
165 56,129,121,253,12,239,15,133,244,56,137,113,252,252,139,105,4,137,105,12, 148 15,133,244,55,255,139,106,4,137,106,12,199,66,4,237,139,42,139,114,8,137,
166 199,65,4,237,139,41,139,113,8,137,105,8,137,49,190,237,137,202,129,193,239, 149 106,8,137,50,141,74,16,131,232,2,190,237,252,233,244,1,248,76,129,252,248,
167 131,232,2,252,233,244,1,248,9,139,116,36,24,252,233,244,56,248,77,129,252, 150 239,15,130,244,55,139,42,139,114,252,252,137,116,36,24,137,44,36,129,122,
168 248,239,15,130,244,56,139,41,137,113,252,252,137,116,36,24,137,44,36,129, 151 253,4,239,15,133,244,55,131,189,233,0,15,133,244,55,128,189,233,235,15,135,
169 121,253,4,239,15,133,244,9,255,131,189,233,0,15,133,244,9,128,189,233,235, 152 244,55,139,141,233,15,132,244,247,255,59,141,233,15,132,244,55,248,1,141,
170 15,135,244,9,139,181,233,137,116,36,4,15,132,244,247,59,181,233,15,132,244, 153 116,193,252,240,59,181,233,15,135,244,55,137,181,233,139,108,36,48,137,149,
171 9,248,1,141,116,198,252,240,59,181,233,15,135,244,9,137,181,233,139,108,36, 154 233,131,194,8,137,149,233,141,108,194,232,41,252,245,57,206,15,132,244,249,
172 48,137,141,233,131,193,8,137,141,233,255,139,108,36,4,141,76,193,232,41,252, 155 248,2,139,68,46,4,137,70,252,252,139,4,46,137,70,252,248,131,252,238,8,57,
173 241,57,252,238,15,132,244,249,248,2,139,68,14,4,137,70,252,252,139,4,14,137, 156 206,15,133,244,2,248,3,137,76,36,4,49,201,137,76,36,12,137,76,36,8,232,244,
174 70,252,248,131,252,238,8,57,252,238,15,133,244,2,248,3,49,201,137,76,36,12, 157 24,199,131,233,237,255,139,108,36,48,139,52,36,139,149,233,129,252,248,239,
175 137,76,36,8,232,244,28,199,131,233,237,139,108,36,48,139,52,36,139,149,233, 158 15,135,244,254,248,4,139,142,233,139,190,233,137,142,233,137,252,254,41,206,
176 129,252,248,239,15,135,244,254,248,4,139,142,233,139,190,233,137,142,233, 159 15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135,244,255,137,213,41,
177 137,252,254,41,206,15,132,244,252,255,141,4,50,193,252,238,3,59,133,233,15, 160 205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,15,133,
178 135,244,255,137,213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131, 161 244,5,248,6,141,70,2,199,66,252,252,237,248,7,139,116,36,24,137,68,36,20,
179 193,8,57,252,249,15,133,244,5,248,6,141,70,2,199,66,252,252,237,248,7,139, 162 185,252,248,252,255,252,255,252,255,252,247,198,237,255,15,132,244,13,252,
180 116,36,24,137,68,36,20,185,252,248,252,255,252,255,252,255,252,247,198,237, 163 233,244,14,248,8,199,66,252,252,237,139,142,233,131,252,233,8,137,142,233,
181 15,132,244,17,252,233,244,18,248,8,199,66,252,252,237,139,142,233,131,252, 164 139,1,137,2,139,65,4,137,66,4,184,237,252,233,244,7,248,9,139,12,36,137,185,
182 233,8,137,142,233,139,1,137,2,139,65,4,137,66,4,184,237,252,233,244,7,248, 165 233,137,252,242,137,252,233,232,251,1,0,139,149,233,252,233,244,4,248,77,
183 9,255,139,12,36,137,185,233,137,252,242,137,252,233,232,251,1,0,139,149,233, 166 139,106,252,248,139,173,233,139,114,252,252,137,116,36,24,137,44,36,131,189,
184 252,233,244,4,248,9,139,116,36,24,252,233,244,56,248,78,139,173,233,137,113, 167 233,0,15,133,244,55,255,128,189,233,235,15,135,244,55,139,141,233,15,132,
185 252,252,137,116,36,24,137,44,36,131,189,233,0,15,133,244,9,128,189,233,235, 168 244,247,59,141,233,15,132,244,55,248,1,141,116,193,252,248,59,181,233,15,
186 15,135,244,9,139,181,233,137,116,36,4,15,132,244,247,59,181,233,255,15,132, 169 135,244,55,137,181,233,139,108,36,48,137,149,233,137,149,233,141,108,194,
187 244,9,248,1,141,116,198,252,248,59,181,233,15,135,244,9,137,181,233,139,108, 170 252,240,41,252,245,57,206,15,132,244,249,248,2,255,139,68,46,4,137,70,252,
188 36,48,137,141,233,137,141,233,139,108,36,4,141,76,193,252,240,41,252,241, 171 252,139,4,46,137,70,252,248,131,252,238,8,57,206,15,133,244,2,248,3,137,76,
189 57,252,238,15,132,244,249,248,2,139,68,14,4,137,70,252,252,139,4,14,137,70, 172 36,4,49,201,137,76,36,12,137,76,36,8,232,244,24,199,131,233,237,139,108,36,
190 252,248,131,252,238,8,57,252,238,15,133,244,2,248,3,49,201,137,76,36,12,137, 173 48,139,52,36,139,149,233,129,252,248,239,15,135,244,254,248,4,139,142,233,
191 76,36,8,232,244,28,199,131,233,237,139,108,36,48,139,52,36,139,149,233,255, 174 139,190,233,137,142,233,137,252,254,41,206,15,132,244,252,141,4,50,193,252,
192 129,252,248,239,15,135,244,254,248,4,139,142,233,139,190,233,137,142,233, 175 238,3,59,133,233,15,135,244,255,255,137,213,41,205,248,5,139,1,137,4,41,139,
193 137,252,254,41,206,15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135, 176 65,4,137,68,41,4,131,193,8,57,252,249,15,133,244,5,248,6,141,70,1,248,7,139,
194 244,255,137,213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,193, 177 116,36,24,137,68,36,20,49,201,252,247,198,237,15,132,244,13,252,233,244,14,
195 8,57,252,249,15,133,244,5,248,6,141,70,1,248,7,139,116,36,24,137,68,36,20, 178 248,8,137,252,242,137,252,233,232,251,1,13,248,9,139,12,36,137,185,233,137,
196 49,201,252,247,198,237,15,132,244,17,255,252,233,244,18,248,8,137,252,242, 179 252,242,137,252,233,232,251,1,0,139,149,233,252,233,244,4,248,78,139,108,
197 137,252,233,232,251,1,13,248,9,139,12,36,137,185,233,137,252,242,137,252, 180 36,48,252,247,133,233,237,15,132,244,55,255,137,149,233,141,68,194,252,248,
198 233,232,251,1,0,139,149,233,252,233,244,4,248,79,139,108,36,48,137,113,252, 181 137,133,233,49,192,137,133,233,176,235,136,133,233,252,233,244,16,255,248,
199 252,252,247,133,233,237,15,132,244,56,137,141,233,141,68,193,252,248,137, 182 64,139,114,252,252,221,90,252,248,252,233,244,58,248,79,129,252,248,239,15,
200 133,233,49,192,137,133,233,176,235,136,133,233,252,233,244,22,255,248,65, 183 130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,102,15,252,239,
201 221,89,252,248,252,233,244,59,248,80,129,252,248,239,15,130,244,56,129,121, 184 201,102,15,118,201,102,15,115,209,1,15,84,193,248,63,139,114,252,252,252,
202 253,4,239,15,135,244,56,252,242,15,16,1,102,15,252,239,201,102,15,118,201, 185 242,15,17,66,252,248,255,248,79,129,252,248,239,15,130,244,55,129,122,253,
203 102,15,115,209,1,15,84,193,248,64,252,242,15,17,65,252,248,255,248,80,129, 186 4,239,15,135,244,55,221,2,217,225,248,63,248,64,139,114,252,252,221,90,252,
204 252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,217,225,248, 187 248,255,248,58,184,237,248,69,137,68,36,20,248,56,252,247,198,237,15,133,
205 64,248,65,221,89,252,248,255,248,59,184,237,248,70,137,68,36,20,248,57,252, 188 244,253,248,5,56,70,252,255,15,135,244,252,15,182,78,252,253,252,247,209,
206 247,198,237,15,133,244,253,248,5,56,70,252,255,15,135,244,252,139,6,15,182, 189 141,20,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,
207 204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,6,199,68,193,252,244, 190 248,6,199,68,194,252,244,237,131,192,1,252,233,244,5,248,7,185,252,248,252,
208 237,131,192,1,252,233,244,5,248,7,137,202,185,252,248,252,255,252,255,252, 191 255,252,255,252,255,252,233,244,14,255,248,80,129,252,248,239,15,130,244,
209 255,252,233,244,18,255,248,81,129,252,248,239,15,130,244,56,129,121,253,4, 192 55,129,122,253,4,239,15,135,244,55,252,242,15,81,2,252,233,244,63,248,81,
210 239,15,135,244,56,252,242,15,81,1,252,233,244,64,248,82,129,252,248,239,15, 193 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,
211 130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,232,244,83,252, 194 16,2,232,244,82,252,233,244,63,248,83,255,129,252,248,239,15,130,244,55,129,
212 233,244,64,248,84,255,129,252,248,239,15,130,244,56,129,121,253,4,239,15, 195 122,253,4,239,15,135,244,55,252,242,15,16,2,232,244,84,252,233,244,63,255,
213 135,244,56,252,242,15,16,1,232,244,85,252,233,244,64,255,248,81,129,252,248, 196 248,80,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,
214 239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,217,252,250,252,233, 197 2,217,252,250,252,233,244,64,248,81,129,252,248,239,15,130,244,55,129,122,
215 244,65,248,82,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244, 198 253,4,239,15,135,244,55,221,2,232,244,82,252,233,244,64,248,83,255,129,252,
216 56,221,1,232,244,83,252,233,244,65,248,84,255,129,252,248,239,15,130,244, 199 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,84,252,
217 56,129,121,253,4,239,15,135,244,56,221,1,232,244,85,252,233,244,65,255,248, 200 233,244,64,255,248,85,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
218 86,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,217,252, 201 135,244,55,217,252,237,221,2,217,252,241,252,233,244,64,248,86,129,252,248,
219 237,221,1,217,252,241,252,233,244,65,248,87,129,252,248,239,15,130,244,56, 202 239,15,130,244,55,129,122,253,4,239,15,135,244,55,217,252,236,221,2,217,252,
220 129,121,253,4,239,15,135,244,56,217,252,236,221,1,217,252,241,252,233,244, 203 241,252,233,244,64,248,87,129,252,248,239,255,15,130,244,55,129,122,253,4,
221 65,248,88,129,252,248,239,255,15,130,244,56,129,121,253,4,239,15,135,244, 204 239,15,135,244,55,221,2,232,244,88,252,233,244,64,248,89,129,252,248,239,
222 56,221,1,232,244,89,252,233,244,65,248,90,129,252,248,239,15,130,244,56,129, 205 15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,254,252,233,244,
223 121,253,4,239,15,135,244,56,221,1,217,252,254,252,233,244,65,248,91,129,252, 206 64,248,90,129,252,248,239,255,15,130,244,55,129,122,253,4,239,15,135,244,
224 248,239,255,15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,217,252,255, 207 55,221,2,217,252,255,252,233,244,64,248,91,129,252,248,239,15,130,244,55,
225 252,233,244,65,248,92,129,252,248,239,15,130,244,56,129,121,253,4,239,15, 208 129,122,253,4,239,15,135,244,55,221,2,217,252,242,221,216,252,233,244,64,
226 135,244,56,221,1,217,252,242,221,216,252,233,244,65,248,93,129,252,248,239, 209 248,92,129,252,248,239,15,130,244,55,255,129,122,253,4,239,15,135,244,55,
227 15,130,244,56,255,129,121,253,4,239,15,135,244,56,221,1,217,192,216,200,217, 210 221,2,217,192,216,200,217,232,222,225,217,252,250,217,252,243,252,233,244,
228 232,222,225,217,252,250,217,252,243,252,233,244,65,248,94,129,252,248,239, 211 64,248,93,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,
229 15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,217,192,216,200,217,232, 212 2,217,192,216,200,217,232,222,225,217,252,250,217,201,217,252,243,252,233,
230 222,225,217,252,250,217,201,217,252,243,252,233,244,65,248,95,129,252,248, 213 244,64,248,94,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
231 239,15,130,244,56,129,121,253,4,239,15,135,244,56,255,221,1,217,232,217,252, 214 55,255,221,2,217,232,217,252,243,252,233,244,64,255,248,95,129,252,248,239,
232 243,252,233,244,65,255,248,96,129,252,248,239,15,130,244,56,129,121,253,4, 215 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,252,242,15,
233 239,15,135,244,56,252,242,15,16,1,252,242,15,17,4,36,255,248,96,129,252,248, 216 17,4,36,255,248,95,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
234 239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,221,28,36,255,137, 217 244,55,221,2,221,28,36,255,137,213,232,251,1,14,137,252,234,252,233,244,64,
235 76,36,16,137,213,232,251,1,14,139,76,36,16,137,252,234,252,233,244,65,255, 218 255,248,96,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
236 248,97,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,252, 219 252,242,15,16,2,252,242,15,17,4,36,255,248,96,129,252,248,239,15,130,244,
237 242,15,16,1,252,242,15,17,4,36,255,248,97,129,252,248,239,15,130,244,56,129, 220 55,129,122,253,4,239,15,135,244,55,221,2,221,28,36,255,137,213,232,251,1,
238 121,253,4,239,15,135,244,56,221,1,221,28,36,255,137,76,36,16,137,213,232, 221 15,137,252,234,252,233,244,64,255,248,97,129,252,248,239,15,130,244,55,129,
239 251,1,15,139,76,36,16,137,252,234,252,233,244,65,255,248,98,129,252,248,239, 222 122,253,4,239,15,135,244,55,252,242,15,16,2,252,242,15,17,4,36,255,248,97,
240 15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,252,242,15, 223 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,221,28,
241 17,4,36,255,248,98,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135, 224 36,255,137,213,232,251,1,16,137,252,234,252,233,244,64,248,98,255,248,99,
242 244,56,221,1,221,28,36,255,137,76,36,16,137,213,232,251,1,16,139,76,36,16, 225 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,
243 137,252,234,252,233,244,65,248,99,255,248,100,129,252,248,239,15,130,244, 226 16,2,139,106,252,248,252,242,15,89,133,233,252,233,244,63,255,248,99,129,
244 56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,252,242,15,89,133,233, 227 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,139,106,252,
245 252,233,244,64,255,248,100,129,252,248,239,15,130,244,56,129,121,253,4,239, 228 248,220,141,233,252,233,244,64,255,248,100,129,252,248,239,15,130,244,55,
246 15,135,244,56,221,1,220,141,233,252,233,244,65,255,248,101,129,252,248,239, 229 129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,
247 15,130,244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244, 230 66,8,217,252,243,252,233,244,64,248,101,129,252,248,239,15,130,244,55,129,
248 56,221,1,221,65,8,217,252,243,252,233,244,65,248,102,129,252,248,239,15,130, 231 122,253,4,239,15,135,244,55,129,122,253,12,239,255,15,135,244,55,221,66,8,
249 244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239,255,15,135,244, 232 221,2,217,252,253,221,217,252,233,244,64,248,102,129,252,248,239,15,130,244,
250 56,221,65,8,221,1,217,252,253,221,217,252,233,244,65,248,103,129,252,248, 233 55,139,106,4,129,252,253,239,15,135,244,55,139,114,252,252,139,2,137,106,
251 239,15,130,244,56,139,105,4,129,252,253,239,15,135,244,56,139,1,137,105,252, 234 252,252,137,66,252,248,209,229,129,252,253,0,0,224,252,255,15,131,244,249,
252 252,137,65,252,248,209,229,129,252,253,0,0,224,252,255,15,131,244,249,9,232, 235 9,232,15,132,244,249,184,252,254,3,0,0,129,252,253,0,0,32,0,15,130,244,250,
253 15,132,244,249,184,252,254,3,0,0,129,252,253,0,0,32,0,15,130,244,250,248, 236 248,1,193,252,237,21,41,197,255,252,242,15,42,197,255,137,108,36,16,219,68,
254 1,193,252,237,21,41,197,255,252,242,15,42,197,255,137,108,36,16,219,68,36, 237 36,16,255,139,106,252,252,129,229,252,255,252,255,15,128,129,205,0,0,224,
255 16,255,139,105,252,252,129,229,252,255,252,255,15,128,129,205,0,0,224,63, 238 63,137,106,252,252,248,2,255,252,242,15,17,2,255,221,26,255,184,237,252,233,
256 137,105,252,252,248,2,255,252,242,15,17,1,255,221,25,255,184,237,252,233, 239 244,69,248,3,255,15,87,192,252,233,244,2,255,217,252,238,252,233,244,2,255,
257 244,70,248,3,255,15,87,192,252,233,244,2,255,217,252,238,252,233,244,2,255, 240 248,4,255,252,242,15,16,2,189,0,0,80,67,102,15,110,205,102,15,112,201,81,
258 252,242,15,16,1,189,0,0,80,67,102,15,110,205,102,15,112,201,81,252,242,15, 241 252,242,15,89,193,252,242,15,17,66,252,248,255,221,2,199,68,36,16,0,0,128,
259 89,193,252,242,15,17,65,252,248,255,221,1,199,68,36,16,0,0,128,90,216,76, 242 90,216,76,36,16,221,90,252,248,255,139,106,252,252,184,52,4,0,0,209,229,252,
260 36,16,221,89,252,248,255,139,105,252,252,184,52,4,0,0,209,229,252,233,244, 243 233,244,1,255,248,103,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
261 1,255,248,104,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244, 244 135,244,55,252,242,15,16,2,255,248,103,129,252,248,239,15,130,244,55,129,
262 56,252,242,15,16,1,255,248,104,129,252,248,239,15,130,244,56,129,121,253, 245 122,253,4,239,15,135,244,55,221,2,255,139,106,4,139,114,252,252,209,229,129,
263 4,239,15,135,244,56,221,1,255,139,105,4,209,229,129,252,253,0,0,224,252,255, 246 252,253,0,0,224,252,255,15,132,244,250,255,15,40,224,232,244,104,252,242,
264 15,132,244,250,255,15,40,224,232,244,105,252,242,15,92,224,248,1,252,242, 247 15,92,224,248,1,252,242,15,17,66,252,248,252,242,15,17,34,255,217,192,232,
265 15,17,65,252,248,252,242,15,17,33,255,217,192,232,244,105,220,252,233,248, 248 244,104,220,252,233,248,1,221,90,252,248,221,26,255,139,66,252,252,139,106,
266 1,221,89,252,248,221,25,255,139,65,252,252,139,105,4,49,232,15,136,244,249, 249 4,49,232,15,136,244,249,248,2,184,237,252,233,244,69,248,3,129,252,245,0,
267 248,2,184,237,252,233,244,70,248,3,129,252,245,0,0,0,128,137,105,4,252,233, 250 0,0,128,137,106,4,252,233,244,2,248,4,255,15,87,228,252,233,244,1,255,217,
268 244,2,248,4,255,15,87,228,252,233,244,1,255,217,252,238,217,201,252,233,244, 251 252,238,217,201,252,233,244,1,255,248,105,129,252,248,239,15,130,244,55,129,
269 1,255,248,106,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244, 252 122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,66,8,221,
270 56,129,121,253,12,239,15,135,244,56,221,65,8,221,1,248,1,217,252,248,223, 253 2,248,1,217,252,248,223,224,158,15,138,244,1,221,217,252,233,244,64,255,248,
271 224,158,15,138,244,1,221,217,252,233,244,65,255,248,107,129,252,248,239,15, 254 106,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,
272 130,244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244, 255 253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,232,244,107,252,
273 56,252,242,15,16,1,252,242,15,16,73,8,232,244,108,252,233,244,64,255,248, 256 233,244,63,255,248,106,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
274 107,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,129,121, 257 135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,232,244,107,252,
275 253,12,239,15,135,244,56,221,1,221,65,8,232,244,108,252,233,244,65,255,248, 258 233,244,64,255,248,108,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
276 109,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,252,242, 259 135,244,55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,63,129,124,
277 15,16,1,189,2,0,0,0,248,1,57,197,15,131,244,64,129,124,253,252,233,252,252, 260 253,252,234,252,252,239,15,135,244,55,252,242,15,16,76,252,234,252,248,252,
278 239,15,135,244,56,252,242,15,16,76,252,233,252,248,252,242,15,93,193,131, 261 242,15,93,193,131,197,1,252,233,244,1,255,248,108,129,252,248,239,15,130,
279 197,1,252,233,244,1,255,248,109,129,252,248,239,15,130,244,56,129,121,253, 262 244,55,129,122,253,4,239,15,135,244,55,221,2,189,2,0,0,0,248,1,57,197,15,
280 4,239,15,135,244,56,221,1,189,2,0,0,0,248,1,57,197,15,131,244,65,129,124, 263 131,244,64,129,124,253,252,234,252,252,239,15,135,244,251,221,68,252,234,
281 253,252,233,252,252,239,15,135,244,251,221,68,252,233,252,248,255,219,252, 264 252,248,255,219,252,233,219,209,221,217,255,80,221,225,223,224,252,246,196,
282 233,219,209,221,217,255,80,221,225,223,224,252,246,196,1,15,132,244,248,217, 265 1,15,132,244,248,217,201,248,2,221,216,88,255,248,109,129,252,248,239,15,
283 201,248,2,221,216,88,255,248,110,129,252,248,239,15,130,244,56,129,121,253, 266 130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0,248,
284 4,239,15,135,244,56,252,242,15,16,1,189,2,0,0,0,248,1,57,197,15,131,244,64, 267 1,57,197,15,131,244,63,129,124,253,252,234,252,252,239,15,135,244,55,252,
285 129,124,253,252,233,252,252,239,15,135,244,56,252,242,15,16,76,252,233,252, 268 242,15,16,76,252,234,252,248,252,242,15,95,193,131,197,1,252,233,244,1,255,
286 248,252,242,15,95,193,131,197,1,252,233,244,1,255,248,110,129,252,248,239, 269 248,109,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,
287 15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,189,2,0,0,0,248,1,57, 270 2,189,2,0,0,0,248,1,57,197,15,131,244,64,129,124,253,252,234,252,252,239,
288 197,15,131,244,65,129,124,253,252,233,252,252,239,15,135,244,251,221,68,252, 271 15,135,244,251,221,68,252,234,252,248,255,219,252,233,218,209,221,217,255,
289 233,252,248,255,219,252,233,218,209,221,217,255,80,221,225,223,224,252,246, 272 80,221,225,223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,88,
290 196,1,15,133,244,248,217,201,248,2,221,216,88,255,248,5,221,216,252,233,244, 273 255,248,5,221,216,252,233,244,55,255,248,110,129,252,248,239,15,130,244,55,
291 56,255,248,111,129,252,248,239,15,130,244,56,129,121,253,4,239,15,133,244, 274 129,122,253,4,239,15,133,244,55,139,42,255,252,242,15,42,133,233,252,233,
292 56,139,41,255,252,242,15,42,133,233,252,233,244,64,255,219,133,233,252,233, 275 244,63,255,219,133,233,252,233,244,64,255,248,111,129,252,248,239,15,133,
293 244,65,255,248,112,129,252,248,239,15,133,244,56,129,121,253,4,239,15,133, 276 244,55,129,122,253,4,239,15,133,244,55,139,42,139,114,252,252,131,189,233,
294 244,56,139,41,131,189,233,1,15,130,244,73,15,182,173,233,255,252,242,15,42, 277 1,15,130,244,72,15,182,173,233,255,252,242,15,42,197,252,233,244,63,255,137,
295 197,252,233,244,64,255,137,108,36,16,219,68,36,16,252,233,244,65,255,248, 278 108,36,16,219,68,36,16,252,233,244,64,255,248,112,139,171,233,59,171,233,
296 113,139,171,233,59,171,233,15,130,244,247,232,244,67,248,1,129,252,248,239, 279 15,130,244,247,232,244,66,248,1,129,252,248,239,15,133,244,55,129,122,253,
297 15,133,244,56,129,121,253,4,239,15,135,244,56,255,252,242,15,45,1,61,252, 280 4,239,15,135,244,55,255,252,242,15,45,2,61,252,255,0,0,0,15,135,244,55,137,
298 255,0,0,0,15,135,244,56,137,68,36,20,255,221,1,219,92,36,20,129,124,36,20, 281 68,36,20,255,221,2,219,92,36,20,129,124,36,20,252,255,0,0,0,15,135,244,55,
299 252,255,0,0,0,15,135,244,56,255,199,68,36,8,1,0,0,0,141,68,36,20,137,76,36, 282 255,199,68,36,8,1,0,0,0,141,68,36,20,248,113,139,108,36,48,137,149,233,137,
300 16,248,114,139,108,36,48,137,149,233,137,68,36,4,137,44,36,137,116,36,24, 283 68,36,4,137,44,36,137,116,36,24,232,251,1,17,139,149,233,139,114,252,252,
301 232,251,1,17,139,76,36,16,139,149,233,199,65,252,252,237,137,65,252,248,252, 284 199,66,252,252,237,137,66,252,248,252,233,244,58,248,114,139,171,233,59,171,
302 233,244,59,248,115,139,171,233,59,171,233,15,130,244,247,232,244,67,248,1, 285 233,15,130,244,247,232,244,66,248,1,199,68,36,20,252,255,252,255,252,255,
303 137,76,36,16,199,68,36,20,252,255,252,255,252,255,252,255,129,252,248,239, 286 252,255,129,252,248,239,15,130,244,55,15,134,244,247,129,122,253,20,239,255,
304 15,130,244,56,15,134,244,247,129,121,253,20,239,255,252,242,15,45,105,16, 287 252,242,15,45,106,16,137,108,36,20,255,221,66,16,219,92,36,20,255,248,1,129,
305 137,108,36,20,255,221,65,16,219,92,36,20,255,248,1,129,121,253,4,239,15,133, 288 122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,137,108,
306 244,56,129,121,253,12,239,15,135,244,56,139,41,137,108,36,12,139,173,233, 289 36,12,139,173,233,255,252,242,15,45,74,8,255,221,66,8,219,92,36,8,139,76,
307 255,252,242,15,45,73,8,255,221,65,8,219,92,36,8,139,76,36,8,255,139,68,36, 290 36,8,255,139,68,36,20,57,197,15,130,244,251,248,2,133,201,15,142,244,253,
308 20,57,197,15,130,244,251,248,2,133,201,15,142,244,253,248,3,139,108,36,12, 291 248,3,139,108,36,12,41,200,15,140,244,115,141,172,253,13,233,131,192,1,248,
309 41,200,15,140,244,116,141,172,253,13,233,131,192,1,248,4,137,68,36,8,137, 292 4,137,68,36,8,137,232,252,233,244,113,248,5,15,140,244,252,141,68,40,1,252,
310 232,252,233,244,114,248,5,15,140,244,252,141,68,40,1,252,233,244,2,248,6, 293 233,244,2,248,6,137,232,252,233,244,2,248,7,255,15,132,244,254,1,252,233,
311 137,232,252,233,244,2,248,7,255,15,132,244,254,1,252,233,131,193,1,15,143, 294 131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,233,244,3,248,115,49,192,252,
312 244,3,248,8,185,1,0,0,0,252,233,244,3,248,116,49,192,252,233,244,4,248,117, 295 233,244,4,248,116,129,252,248,239,15,130,244,55,139,171,233,59,171,233,15,
313 129,252,248,239,15,130,244,56,139,171,233,59,171,233,15,130,244,247,232,244, 296 130,244,247,232,244,66,248,1,255,129,122,253,4,239,15,133,244,55,129,122,
314 67,248,1,255,137,76,36,16,129,121,253,4,239,15,133,244,56,129,121,253,12, 297 253,12,239,15,135,244,55,139,42,255,252,242,15,45,66,8,255,221,66,8,219,92,
315 239,15,135,244,56,139,41,255,252,242,15,45,65,8,255,221,65,8,219,92,36,20, 298 36,20,139,68,36,20,255,133,192,15,142,244,115,131,189,233,1,15,130,244,115,
316 139,68,36,20,255,133,192,15,142,244,116,131,189,233,1,15,130,244,116,15,133, 299 15,133,244,117,57,131,233,15,130,244,117,15,182,141,233,139,171,233,137,68,
317 244,118,57,131,233,15,130,244,118,15,182,141,233,139,171,233,137,68,36,8, 300 36,8,248,1,136,77,0,131,197,1,131,232,1,15,133,244,1,139,131,233,252,233,
318 248,1,136,77,0,131,197,1,131,232,1,15,133,244,1,139,131,233,252,233,244,114, 301 244,113,248,118,129,252,248,239,255,15,130,244,55,139,171,233,59,171,233,
319 248,119,129,252,248,239,255,15,130,244,56,139,171,233,59,171,233,15,130,244, 302 15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,
320 247,232,244,67,248,1,137,76,36,16,129,121,253,4,239,15,133,244,56,139,41, 303 133,233,133,192,15,132,244,115,57,131,233,15,130,244,119,129,197,239,137,
321 139,133,233,133,192,15,132,244,116,57,131,233,15,130,244,120,129,197,239, 304 116,36,20,137,68,36,8,139,179,233,248,1,255,15,182,77,0,131,197,1,131,232,
322 137,116,36,20,137,68,36,8,139,179,233,248,1,255,15,182,77,0,131,197,1,131, 305 1,136,12,6,15,133,244,1,137,252,240,139,116,36,20,252,233,244,113,248,120,
323 232,1,136,12,6,15,133,244,1,137,252,240,139,116,36,20,252,233,244,114,248, 306 129,252,248,239,15,130,244,55,139,171,233,59,171,233,15,130,244,247,232,244,
324 121,129,252,248,239,15,130,244,56,139,171,233,59,171,233,15,130,244,247,232, 307 66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,57,131,233,255,
325 244,67,248,1,137,76,36,16,129,121,253,4,239,15,133,244,56,139,41,139,133, 308 15,130,244,119,129,197,239,137,116,36,20,137,68,36,8,139,179,233,252,233,
326 233,57,131,233,255,15,130,244,120,129,197,239,137,116,36,20,137,68,36,8,139, 309 244,249,248,1,15,182,76,5,0,131,252,249,65,15,130,244,248,131,252,249,90,
327 179,233,252,233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,130,244,248, 310 15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,1,15,137,244,1,
328 131,252,249,90,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232, 311 137,252,240,139,116,36,20,252,233,244,113,248,121,129,252,248,239,15,130,
329 1,15,137,244,1,137,252,240,139,116,36,20,252,233,244,114,248,122,129,252, 312 244,55,255,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,129,122,
330 248,239,15,130,244,56,255,139,171,233,59,171,233,15,130,244,247,232,244,67, 313 253,4,239,15,133,244,55,139,42,139,133,233,57,131,233,15,130,244,119,129,
331 248,1,137,76,36,16,129,121,253,4,239,15,133,244,56,139,41,139,133,233,57, 314 197,239,137,116,36,20,137,68,36,8,139,179,233,252,233,244,249,248,1,15,182,
332 131,233,15,130,244,120,129,197,239,137,116,36,20,137,68,36,8,139,179,233, 315 76,5,0,131,252,249,97,15,130,244,248,255,131,252,249,122,15,135,244,248,131,
333 252,233,244,249,248,1,15,182,76,5,0,131,252,249,97,15,130,244,248,255,131, 316 252,241,32,248,2,136,12,6,248,3,131,232,1,15,137,244,1,137,252,240,139,116,
334 252,249,122,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,1, 317 36,20,252,233,244,113,248,122,129,252,248,239,15,130,244,55,129,122,253,4,
335 15,137,244,1,137,252,240,139,116,36,20,252,233,244,114,248,123,129,252,248, 318 239,15,133,244,55,137,213,139,10,232,251,1,18,137,252,234,255,252,242,15,
336 239,15,130,244,56,129,121,253,4,239,15,133,244,56,137,84,36,16,137,205,139, 319 42,192,252,233,244,63,255,137,4,36,219,4,36,252,233,244,64,255,248,123,129,
337 9,232,251,1,18,137,252,233,139,84,36,16,255,252,242,15,42,192,252,233,244, 320 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,
338 64,255,137,4,36,219,4,36,252,233,244,65,255,248,124,129,252,248,239,15,130,
339 244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,189,0,0,56,67,102,
340 15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,252,242,15,
341 42,197,252,233,244,64,255,248,124,129,252,248,239,15,130,244,56,129,121,253,
342 4,239,15,135,244,56,221,1,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,
343 219,4,36,252,233,244,65,255,248,125,129,252,248,239,15,130,244,56,129,121,
344 253,4,239,15,135,244,56,252,242,15,16,1,189,0,0,56,67,102,15,110,205,102,
345 15,112,201,81,252,242,15,88,193,102,15,126,197,255,248,125,129,252,248,239,
346 15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,199,68,36,16,0,0,192,
347 89,216,68,36,16,221,28,36,139,44,36,255,137,68,36,20,141,68,193,252,240,255,
348 137,84,36,16,255,248,1,57,200,15,134,244,126,129,120,253,4,239,15,135,244,
349 127,255,252,242,15,16,0,252,242,15,88,193,102,15,126,194,33,213,255,221,0,
350 216,68,36,16,221,28,36,35,44,36,255,131,232,8,252,233,244,1,255,248,128,129,
351 252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,
352 189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,
353 197,255,248,128,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,
354 56,221,1,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,252,
355 242,15,16,0,252,242,15,88,193,102,15,126,194,9,213,255,221,0,216,68,36,16,
356 221,28,36,11,44,36,255,248,129,129,252,248,239,15,130,244,56,129,121,253,
357 4,239,15,135,244,56,252,242,15,16,1,189,0,0,56,67,102,15,110,205,102,15,112,
358 201,81,252,242,15,88,193,102,15,126,197,255,248,129,129,252,248,239,15,130,
359 244,56,129,121,253,4,239,15,135,244,56,221,1,199,68,36,16,0,0,192,89,216,
360 68,36,16,221,28,36,139,44,36,255,252,242,15,16,0,252,242,15,88,193,102,15,
361 126,194,49,213,255,221,0,216,68,36,16,221,28,36,51,44,36,255,248,130,129,
362 252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,
363 189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126, 321 189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,
364 197,255,248,130,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244, 322 197,252,242,15,42,197,252,233,244,63,255,248,123,129,252,248,239,15,130,244,
365 56,221,1,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,15, 323 55,129,122,253,4,239,15,135,244,55,221,2,199,68,36,16,0,0,192,89,216,68,36,
366 205,252,233,244,131,255,248,132,129,252,248,239,15,130,244,56,129,121,253, 324 16,221,28,36,219,4,36,252,233,244,64,255,248,124,129,252,248,239,15,130,244,
367 4,239,15,135,244,56,252,242,15,16,1,189,0,0,56,67,102,15,110,205,102,15,112, 325 55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,0,0,56,67,102,15,110,
368 201,81,252,242,15,88,193,102,15,126,197,255,248,132,129,252,248,239,15,130, 326 205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255,248,124,129,252,
369 244,56,129,121,253,4,239,15,135,244,56,221,1,199,68,36,16,0,0,192,89,216, 327 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,199,68,36,16,
370 68,36,16,221,28,36,139,44,36,255,252,247,213,255,248,131,252,242,15,42,197, 328 0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,137,68,36,20,141,68,194,252,
371 252,233,244,64,248,126,252,242,15,42,197,139,84,36,16,252,233,244,64,255, 329 240,248,1,57,208,15,134,244,125,129,120,253,4,239,15,135,244,126,255,252,
372 248,131,248,126,137,44,36,219,4,36,252,233,244,65,255,248,127,255,139,68, 330 242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,221,0,216,68,36,16,
373 36,20,252,233,244,56,255,248,133,129,252,248,239,15,130,244,56,129,121,253, 331 221,28,36,35,44,36,255,131,232,8,252,233,244,1,255,248,127,129,252,248,239,
374 4,239,15,135,244,56,129,121,253,12,239,15,135,244,56,252,242,15,16,1,252, 332 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,0,0,56,
375 242,15,16,73,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,15, 333 67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255,
376 88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,248,133, 334 248,127,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,
377 129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,129,121,253, 335 2,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,252,242,15,
378 12,239,15,135,244,56,221,1,221,65,8,199,68,36,16,0,0,192,89,216,68,36,16, 336 16,0,252,242,15,88,193,102,15,126,193,9,205,255,221,0,216,68,36,16,221,28,
337 36,11,44,36,255,248,128,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
338 135,244,55,252,242,15,16,2,189,0,0,56,67,102,15,110,205,102,15,112,201,81,
339 252,242,15,88,193,102,15,126,197,255,248,128,129,252,248,239,15,130,244,55,
340 129,122,253,4,239,15,135,244,55,221,2,199,68,36,16,0,0,192,89,216,68,36,16,
341 221,28,36,139,44,36,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,
342 49,205,255,221,0,216,68,36,16,221,28,36,51,44,36,255,248,129,129,252,248,
343 239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,0,0,
344 56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255,
345 248,129,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,
346 2,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,15,205,252,
347 233,244,125,255,248,130,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
348 135,244,55,252,242,15,16,2,189,0,0,56,67,102,15,110,205,102,15,112,201,81,
349 252,242,15,88,193,102,15,126,197,255,248,130,129,252,248,239,15,130,244,55,
350 129,122,253,4,239,15,135,244,55,221,2,199,68,36,16,0,0,192,89,216,68,36,16,
351 221,28,36,139,44,36,255,252,247,213,255,248,125,252,242,15,42,197,252,233,
352 244,63,255,248,125,137,44,36,219,4,36,252,233,244,64,255,248,126,139,68,36,
353 20,252,233,244,55,255,248,131,129,252,248,239,15,130,244,55,129,122,253,4,
354 239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,
355 15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,15,88,194,
356 252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,248,131,129,252,
357 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,
358 15,135,244,55,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92,
359 36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,255,211,229,137,
360 193,252,233,244,125,255,248,132,129,252,248,239,15,130,244,55,129,122,253,
361 4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,
362 242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,15,
363 88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,248,132,
364 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,
365 12,239,15,135,244,55,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,36,16,
379 221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,255,211, 366 221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,255,211,
380 229,137,193,252,233,244,131,255,248,134,129,252,248,239,15,130,244,56,129, 367 252,237,137,193,252,233,244,125,255,248,133,129,252,248,239,15,130,244,55,
381 121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,56,252,242,15,16, 368 129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,
382 1,252,242,15,16,73,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242, 369 15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,
383 15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,248,
384 134,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,129,121,
385 253,12,239,15,135,244,56,221,1,221,65,8,199,68,36,16,0,0,192,89,216,68,36,
386 16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,255,211,
387 252,237,137,193,252,233,244,131,255,248,135,129,252,248,239,15,130,244,56,
388 129,121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,56,252,242,
389 15,16,1,252,242,15,16,73,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,
390 252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201, 370 252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,
391 255,248,135,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56, 371 255,248,133,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
392 129,121,253,12,239,15,135,244,56,221,1,221,65,8,199,68,36,16,0,0,192,89,216, 372 129,122,253,12,239,15,135,244,55,221,2,221,66,8,199,68,36,16,0,0,192,89,216,
393 68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36, 373 68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,
394 255,211,252,253,137,193,252,233,244,131,255,248,136,129,252,248,239,15,130, 374 255,211,252,253,137,193,252,233,244,125,255,248,134,129,252,248,239,15,130,
395 244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,56,252, 375 244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,
396 242,15,16,1,252,242,15,16,73,8,189,0,0,56,67,102,15,110,213,102,15,112,210, 376 242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,
397 81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126, 377 81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,
398 201,255,248,136,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244, 378 201,255,248,134,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
399 56,129,121,253,12,239,15,135,244,56,221,1,221,65,8,199,68,36,16,0,0,192,89, 379 55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,199,68,36,16,0,0,192,89,
400 216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44, 380 216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,
401 36,255,211,197,137,193,252,233,244,131,255,248,137,129,252,248,239,15,130, 381 36,255,211,197,137,193,252,233,244,125,255,248,135,129,252,248,239,15,130,
402 244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,56,252, 382 244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,
403 242,15,16,1,252,242,15,16,73,8,189,0,0,56,67,102,15,110,213,102,15,112,210, 383 242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,
404 81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126, 384 81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,
405 201,255,248,137,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244, 385 201,255,248,135,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
406 56,129,121,253,12,239,15,135,244,56,221,1,221,65,8,199,68,36,16,0,0,192,89, 386 55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,199,68,36,16,0,0,192,89,
407 216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44, 387 216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,
408 36,255,211,205,137,193,252,233,244,131,248,118,184,237,252,233,244,56,248, 388 36,255,211,205,137,193,252,233,244,125,248,117,184,237,252,233,244,55,248,
409 120,184,237,248,56,139,108,36,48,41,202,137,113,252,252,137,116,36,24,137, 389 119,184,237,248,55,139,108,36,48,139,114,252,252,137,116,36,24,137,149,233,
410 84,36,16,137,141,233,141,68,193,252,248,141,144,233,137,133,233,139,65,252, 390 141,68,194,252,248,141,136,233,137,133,233,139,66,252,248,59,141,233,15,135,
411 248,59,149,233,15,135,244,251,137,44,36,252,255,144,233,133,192,15,133,244, 391 244,251,137,44,36,252,255,144,233,139,149,233,133,192,15,133,244,69,248,1,
412 249,248,1,139,141,233,255,139,133,233,41,200,193,232,3,131,192,1,139,105, 392 255,139,133,233,41,208,193,232,3,131,192,1,139,106,252,248,57,114,252,252,
413 252,248,139,84,36,16,1,202,57,113,252,252,15,133,244,248,252,255,165,233, 393 15,133,244,248,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,
414 248,2,129,121,253,252,252,239,15,133,244,31,252,255,165,233,248,3,139,141, 394 255,36,171,248,2,137,209,252,247,198,237,15,133,244,249,15,182,110,252,253,
415 233,139,84,36,16,1,202,252,233,244,70,248,5,186,237,137,252,233,232,251,1, 395 252,247,213,141,20,252,234,252,233,244,27,248,3,137,252,245,131,229,252,248,
416 0,252,233,244,1,248,67,93,137,108,36,16,139,108,36,48,41,202,137,84,36,20, 396 41,252,234,252,233,244,27,248,5,186,237,137,252,233,232,251,1,0,139,149,233,
417 137,113,252,252,137,116,36,24,137,141,233,141,68,193,252,248,137,252,233, 397 252,233,244,1,248,66,93,137,108,36,16,139,108,36,48,137,116,36,24,137,149,
418 137,133,233,255,232,251,1,19,139,141,233,139,133,233,41,200,193,232,3,131, 398 233,255,141,68,194,252,248,137,252,233,137,133,233,232,251,1,19,139,149,233,
419 192,1,139,113,252,252,139,84,36,20,1,202,139,108,36,16,85,139,105,252,248, 399 139,133,233,41,208,193,232,3,131,192,1,139,108,36,16,85,195,248,136,255,15,
420 195,248,138,255,15,182,131,233,168,235,15,133,244,251,168,235,15,133,244, 400 182,131,233,168,235,15,133,244,251,168,235,15,133,244,247,168,235,15,132,
421 247,168,235,15,132,244,247,252,255,139,233,252,233,244,247,255,248,139,15, 401 244,247,252,255,139,233,252,233,244,247,255,248,137,15,182,131,233,168,235,
422 182,131,233,168,235,15,133,244,251,168,235,15,132,244,251,252,255,139,233, 402 15,133,244,251,168,235,15,132,244,251,252,255,139,233,15,132,244,247,168,
423 15,132,244,247,168,235,15,132,244,251,248,1,139,108,36,48,137,149,233,137, 403 235,15,132,244,251,248,1,139,108,36,48,137,149,233,137,252,242,137,252,233,
424 252,242,137,252,233,232,251,1,20,248,3,139,149,233,248,4,15,182,78,252,253, 404 232,251,1,20,248,3,139,149,233,248,4,15,182,78,252,253,248,5,255,15,182,110,
425 248,5,255,15,182,110,252,252,15,183,70,252,254,252,255,164,253,171,233,248, 405 252,252,15,183,70,252,254,252,255,164,253,171,233,248,138,131,198,4,139,77,
426 140,131,198,4,139,77,232,137,76,36,20,252,233,244,4,248,141,255,139,108,36, 406 232,137,76,36,20,252,233,244,4,248,139,255,139,106,252,248,139,173,233,15,
427 48,137,149,233,137,252,242,141,139,233,137,171,233,137,116,36,24,232,251, 407 182,133,233,141,4,194,139,108,36,48,137,149,233,137,133,233,137,252,242,141,
428 1,21,252,233,244,3,255,248,142,255,139,108,36,48,137,149,233,137,252,242, 408 139,233,137,171,233,137,116,36,24,232,251,1,21,252,233,244,3,255,248,140,
429 141,139,233,137,171,233,137,116,36,24,232,251,1,21,139,149,233,139,6,15,182, 409 255,141,68,194,252,248,139,108,36,48,137,149,233,137,133,233,137,252,242,
430 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,248,143,255,85,141, 410 141,139,233,137,171,233,137,116,36,24,232,251,1,21,139,149,233,139,133,233,
431 108,36,12,85,83,82,81,80,15,182,69,252,252,138,101,252,248,137,125,252,252, 411 41,208,193,232,3,131,192,1,139,106,252,248,139,181,233,139,14,15,182,252,
432 137,117,252,248,139,93,0,139,139,233,199,131,233,237,137,131,233,137,139, 412 233,15,182,205,131,198,4,252,255,36,171,255,248,141,255,85,141,108,36,12,
433 233,129,252,236,239,252,247,131,233,237,15,132,244,247,252,242,15,17,125, 413 85,83,82,81,80,15,182,69,252,252,138,101,252,248,137,125,252,252,137,117,
434 216,252,242,15,17,117,208,252,242,15,17,109,200,252,242,15,17,101,192,252, 414 252,248,139,93,0,139,139,233,199,131,233,237,137,131,233,137,139,233,129,
435 242,15,17,93,184,252,242,15,17,85,176,252,242,15,17,77,168,252,242,15,17, 415 252,236,239,252,247,131,233,237,15,132,244,247,252,242,15,17,125,216,252,
436 69,160,248,1,139,171,233,139,147,233,137,171,233,137,149,233,141,84,36,16, 416 242,15,17,117,208,252,242,15,17,109,200,252,242,15,17,101,192,252,242,15,
437 141,139,233,232,251,1,22,137,196,139,149,233,139,116,36,24,137,108,36,48, 417 17,93,184,252,242,15,17,85,176,252,242,15,17,77,168,252,242,15,17,69,160,
438 255,248,144,255,139,122,252,248,139,191,233,139,191,233,199,131,233,0,0,0, 418 248,1,139,171,233,139,147,233,137,171,233,137,149,233,141,84,36,16,141,139,
439 0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 419 233,232,251,1,22,137,196,139,149,233,139,116,36,24,137,108,36,48,255,248,
440 36,171,255,248,83,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4, 420 142,255,139,122,252,248,139,191,233,139,191,233,199,131,233,0,0,0,0,199,131,
441 102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36, 421 233,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,
442 4,139,68,36,8,195,255,248,145,102,15,252,239,210,102,15,118,210,102,15,115, 422 248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,
443 210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84, 423 255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,
444 202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242, 424 36,8,195,255,248,143,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,
445 15,92,203,102,15,86,202,184,0,0,252,240,63,102,15,110,208,102,15,112,210,
446 81,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,
447 248,85,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,
448 255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,
449 36,8,195,255,248,146,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,
450 0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,102,15, 425 0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,102,15,
451 46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102, 426 46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,
452 15,86,202,184,0,0,252,240,191,102,15,110,208,102,15,112,210,81,252,242,15, 427 15,86,202,184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,252,242,15,
453 194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,105,255, 428 194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,84,255,
454 217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217, 429 217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,255,252,251,
455 108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,147,102,15,252, 430 102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,
456 239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,102, 431 248,144,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,
457 15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15, 432 102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,
458 85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,184,0,0,252,240,63,102, 433 134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,
459 15,110,216,102,15,112,219,81,252,242,15,194,193,1,102,15,84,195,252,242,15, 434 184,0,0,252,240,191,102,15,110,208,102,15,112,210,81,252,242,15,194,193,6,
460 92,200,102,15,86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,242,15, 435 102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,104,255,217,124,36,
461 94,193,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102, 436 4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,
462 15,110,216,102,15,112,219,81,15,40,224,102,15,84,226,102,15,46,220,15,134, 437 252,252,217,108,36,4,139,68,36,8,195,255,248,145,102,15,252,239,210,102,15,
463 244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,184, 438 118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,
464 0,0,252,240,63,102,15,110,208,102,15,112,210,81,252,242,15,194,196,1,102, 439 40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,15,40,193,
465 15,84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,242,15,92,193, 440 252,242,15,88,203,252,242,15,92,203,184,0,0,252,240,63,102,15,110,216,102,
466 195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,217,193,216, 441 15,112,219,81,252,242,15,194,193,1,102,15,84,195,252,242,15,92,200,102,15,
467 252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102, 442 86,202,15,40,193,248,1,195,248,146,255,15,40,232,252,242,15,94,193,102,15,
468 137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,252,233,195, 443 252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,
469 255,248,89,217,252,234,222,201,248,149,217,84,36,4,129,124,36,4,0,0,128,127, 444 102,15,112,219,81,15,40,224,102,15,84,226,102,15,46,220,15,134,244,247,102,
470 15,132,244,247,129,124,36,4,0,0,128,252,255,15,132,244,248,248,150,217,192, 445 15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,184,0,0,252,240,
471 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221, 446 63,102,15,110,208,102,15,112,210,81,252,242,15,194,196,1,102,15,84,194,252,
472 217,248,1,195,248,2,221,216,217,252,238,195,255,248,108,219,84,36,4,219,68, 447 242,15,92,224,15,40,197,252,242,15,89,204,252,242,15,92,193,195,248,1,252,
473 36,4,255,223,252,233,255,221,252,233,223,224,158,255,15,133,244,254,15,138, 448 242,15,89,200,15,40,197,252,242,15,92,193,195,255,217,193,216,252,241,217,
474 244,255,221,216,139,68,36,4,131,252,248,1,15,142,244,252,248,1,169,1,0,0, 449 124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,
475 0,15,133,244,248,216,200,209,232,252,233,244,1,248,2,209,232,15,132,244,251, 450 6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,255,248,88,
476 217,192,248,3,216,200,209,232,15,132,244,250,15,131,244,3,220,201,252,233, 451 217,252,234,222,201,248,147,217,84,36,4,129,124,36,4,0,0,128,127,15,132,244,
477 244,3,248,4,255,222,201,248,5,195,248,6,15,132,244,5,15,130,244,253,217,232, 452 247,129,124,36,4,0,0,128,252,255,15,132,244,248,248,148,217,192,217,252,252,
478 222,252,241,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,221, 453 220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,217,248,1,
479 216,217,232,195,248,8,217,84,36,4,217,201,217,84,36,8,139,68,36,4,209,224, 454 195,248,2,221,216,217,252,238,195,255,248,107,219,84,36,4,219,68,36,4,255,
480 61,0,0,0,252,255,15,132,244,248,139,68,36,8,209,224,15,132,244,250,61,0,0, 455 223,252,233,255,221,252,233,223,224,158,255,15,133,244,254,15,138,244,255,
481 0,252,255,15,132,244,250,217,252,241,252,233,244,150,248,9,255,217,232,255, 456 221,216,139,68,36,4,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,
482 223,252,234,255,221,252,234,223,224,158,255,15,132,244,247,217,201,248,1, 457 244,248,216,200,209,232,252,233,244,1,248,2,209,232,15,132,244,251,217,192,
483 221,216,195,248,2,217,225,217,232,255,15,132,244,249,221,216,217,225,217, 458 248,3,216,200,209,232,15,132,244,250,15,131,244,3,220,201,252,233,244,3,248,
484 252,238,184,0,0,0,0,15,146,208,209,200,51,68,36,4,15,137,244,249,217,201, 459 4,255,222,201,248,5,195,248,6,15,132,244,5,15,130,244,253,217,232,222,252,
485 248,3,221,217,217,225,195,248,4,131,124,36,4,0,15,141,244,3,221,216,221,216, 460 241,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,221,216,217,
486 133,192,15,132,244,251,217,252,238,195,248,5,199,68,36,4,0,0,128,127,217, 461 232,195,248,8,217,84,36,4,217,201,217,84,36,8,139,68,36,4,209,224,61,0,0,
487 68,36,4,195,255,248,108,255,248,151,252,242,15,45,193,252,242,15,42,208,102, 462 0,252,255,15,132,244,248,139,68,36,8,209,224,15,132,244,250,61,0,0,0,252,
488 15,46,202,15,133,244,254,15,138,244,255,248,152,131,252,248,1,15,142,244, 463 255,15,132,244,250,217,252,241,252,233,244,148,248,9,255,217,232,255,223,
489 252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244, 464 252,234,255,221,252,234,223,224,158,255,15,132,244,247,217,201,248,1,221,
490 1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232, 465 216,195,248,2,217,225,217,232,255,15,132,244,249,221,216,217,225,217,252,
491 15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252, 466 238,184,0,0,0,0,15,146,208,209,200,51,68,36,4,15,137,244,249,217,201,248,
492 242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,184,0,0,252, 467 3,221,217,217,225,195,248,4,131,124,36,4,0,15,141,244,3,221,216,221,216,133,
493 240,63,102,15,110,200,102,15,112,201,81,252,242,15,94,200,88,15,40,193,252, 468 192,15,132,244,251,217,252,238,195,248,5,199,68,36,4,0,0,128,127,217,68,36,
494 247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,184,0,0,252,240,63, 469 4,195,255,248,107,255,248,149,252,242,15,45,193,252,242,15,42,208,102,15,
495 102,15,110,192,102,15,112,192,81,195,248,8,252,242,15,17,76,36,12,252,242, 470 46,202,15,133,244,254,15,138,244,255,248,150,131,252,248,1,15,142,244,252,
496 15,17,68,36,4,131,124,36,12,0,15,133,244,247,139,68,36,16,209,224,61,0,0, 471 248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244,1,
497 224,252,255,15,132,244,248,248,1,255,131,124,36,4,0,15,133,244,247,139,68, 472 248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232,15,
498 36,8,209,224,15,132,244,250,61,0,0,224,252,255,15,132,244,251,248,1,221,68, 473 132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252,242,
499 36,12,221,68,36,4,217,252,241,217,192,217,252,252,220,252,233,217,201,217, 474 15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,184,0,0,252,240,
500 252,240,217,232,222,193,217,252,253,221,217,221,92,36,4,252,242,15,16,68, 475 63,102,15,110,200,102,15,112,201,81,252,242,15,94,200,88,15,40,193,252,247,
501 36,4,195,248,9,184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,102,15, 476 216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,184,0,0,252,240,63,102,
502 46,194,15,132,244,247,15,40,193,248,1,195,248,2,102,15,252,239,210,102,15, 477 15,110,192,102,15,112,192,81,195,248,8,252,242,15,17,76,36,12,252,242,15,
503 118,210,102,15,115,210,1,102,15,84,194,184,0,0,252,240,63,102,15,110,208, 478 17,68,36,4,131,124,36,12,0,15,133,244,247,139,68,36,16,209,224,61,0,0,224,
504 102,15,112,210,81,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192,136, 479 252,255,15,132,244,248,248,1,255,131,124,36,4,0,15,133,244,247,139,68,36,
505 196,15,146,208,48,224,15,133,244,1,248,3,184,0,0,252,240,127,102,15,110,192, 480 8,209,224,15,132,244,250,61,0,0,224,252,255,15,132,244,251,248,1,221,68,36,
506 102,15,112,192,81,195,248,4,102,15,80,193,133,192,15,133,244,3,255,15,87, 481 12,221,68,36,4,217,252,241,217,192,217,252,252,220,252,233,217,201,217,252,
507 192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,153,255, 482 240,217,232,222,193,217,252,253,221,217,221,92,36,4,252,242,15,16,68,36,4,
508 139,68,36,12,252,242,15,16,68,36,4,131,252,248,1,15,132,244,247,15,135,244, 483 195,248,9,184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,102,15,46,194,
509 248,232,244,83,252,233,244,253,248,1,232,244,85,252,233,244,253,248,2,131, 484 15,132,244,247,15,40,193,248,1,195,248,2,102,15,252,239,210,102,15,118,210,
510 252,248,3,15,132,244,247,15,135,244,248,232,244,105,255,252,233,244,253,248, 485 102,15,115,210,1,102,15,84,194,184,0,0,252,240,63,102,15,110,208,102,15,112,
511 1,252,242,15,81,192,248,7,252,242,15,17,68,36,4,221,68,36,4,195,248,2,221, 486 210,81,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,196,15,146,
512 68,36,4,131,252,248,5,15,130,244,89,15,132,244,149,248,2,131,252,248,7,15, 487 208,48,224,15,133,244,1,248,3,184,0,0,252,240,127,102,15,110,192,102,15,112,
513 132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,217, 488 192,81,195,248,4,102,15,80,193,133,192,15,133,244,3,255,15,87,192,195,248,
514 232,217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,15,135,244, 489 5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,151,255,139,68,36,
515 248,255,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131, 490 12,252,242,15,16,68,36,4,131,252,248,1,15,132,244,247,15,135,244,248,232,
516 252,248,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242, 491 244,82,252,233,244,253,248,1,232,244,84,252,233,244,253,248,2,131,252,248,
517 221,216,195,255,139,68,36,12,221,68,36,4,131,252,248,1,15,130,244,83,15,132, 492 3,15,132,244,247,15,135,244,248,232,244,104,255,252,233,244,253,248,1,252,
518 244,85,131,252,248,3,15,130,244,105,15,135,244,248,217,252,250,195,248,2, 493 242,15,81,192,248,7,252,242,15,17,68,36,4,221,68,36,4,195,248,2,221,68,36,
519 131,252,248,5,15,130,244,89,15,132,244,149,131,252,248,7,15,132,244,247,15, 494 4,131,252,248,5,15,130,244,88,15,132,244,147,248,2,131,252,248,7,15,132,244,
520 135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232,217,201,217, 495 247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232,217,
521 252,241,195,248,2,131,252,248,9,15,132,244,247,255,15,135,244,248,217,252, 496 201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,255,
522 236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,248,11,15, 497 217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,248,
523 132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,195, 498 11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,
524 255,248,9,204,248,154,255,139,68,36,20,252,242,15,16,68,36,4,252,242,15,16, 499 195,255,139,68,36,12,221,68,36,4,131,252,248,1,15,130,244,82,15,132,244,84,
525 76,36,12,131,252,248,1,15,132,244,247,15,135,244,248,252,242,15,88,193,248, 500 131,252,248,3,15,130,244,104,15,135,244,248,217,252,250,195,248,2,131,252,
526 7,252,242,15,17,68,36,4,221,68,36,4,195,248,1,252,242,15,92,193,252,233,244, 501 248,5,15,130,244,88,15,132,244,147,131,252,248,7,15,132,244,247,15,135,244,
527 7,248,2,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,89,193,252, 502 248,217,252,237,217,201,217,252,241,195,248,1,217,232,217,201,217,252,241,
528 233,244,7,248,1,252,242,15,94,193,252,233,244,7,248,2,131,252,248,5,15,132, 503 195,248,2,131,252,248,9,15,132,244,247,255,15,135,244,248,217,252,236,217,
529 244,247,255,15,135,244,248,232,244,148,252,233,244,7,248,1,90,232,244,108, 504 201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,248,11,15,132,244,
530 82,252,233,244,7,248,2,131,252,248,7,15,132,244,247,15,135,244,248,184,0, 505 247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,195,255,248,
531 0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,252,233,244,7,248,1,102, 506 9,204,248,152,255,139,68,36,20,252,242,15,16,68,36,4,252,242,15,16,76,36,
532 15,252,239,201,102,15,118,201,102,15,115,209,1,15,84,193,252,233,244,7,248, 507 12,131,252,248,1,15,132,244,247,15,135,244,248,252,242,15,88,193,248,7,252,
533 2,255,131,252,248,9,15,135,244,248,221,68,36,4,221,68,36,12,15,132,244,247, 508 242,15,17,68,36,4,221,68,36,4,195,248,1,252,242,15,92,193,252,233,244,7,248,
534 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11, 509 2,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,89,193,252,233,244,
535 15,132,244,247,15,135,244,255,252,242,15,93,193,252,233,244,7,248,1,252,242, 510 7,248,1,252,242,15,94,193,252,233,244,7,248,2,131,252,248,5,15,132,244,247,
511 255,15,135,244,248,232,244,146,252,233,244,7,248,1,90,232,244,107,82,252,
512 233,244,7,248,2,131,252,248,7,15,132,244,247,15,135,244,248,184,0,0,0,128,
513 102,15,110,200,102,15,112,201,81,15,87,193,252,233,244,7,248,1,102,15,252,
514 239,201,102,15,118,201,102,15,115,209,1,15,84,193,252,233,244,7,248,2,255,
515 131,252,248,9,15,135,244,248,221,68,36,4,221,68,36,12,15,132,244,247,217,
516 252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15,
517 132,244,247,15,135,244,255,252,242,15,93,193,252,233,244,7,248,1,252,242,
536 15,95,193,252,233,244,7,248,9,204,255,139,68,36,20,221,68,36,4,221,68,36, 518 15,95,193,252,233,244,7,248,9,204,255,139,68,36,20,221,68,36,4,221,68,36,
537 12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,195,248,1,222,252, 519 12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,195,248,1,222,252,
538 233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,222,201,195,248, 520 233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,222,201,195,248,
539 1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132,244,108,131,252, 521 1,222,252,249,195,248,2,131,252,248,5,15,130,244,146,15,132,244,107,131,252,
540 248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,248,1,221,216, 522 248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,248,1,221,216,
541 217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,217,252,243, 523 217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,217,252,243,
542 195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15,132,244, 524 195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15,132,244,
543 247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,252,233, 525 247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,252,233,
544 218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,248,217, 526 218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,248,217,
545 201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,244,248, 527 201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,244,248,
546 217,201,248,2,221,216,195,255,248,155,156,90,137,209,129,252,242,0,0,32,0, 528 217,201,248,2,221,216,195,255,248,153,156,90,137,209,129,252,242,0,0,32,0,
547 82,157,156,90,49,192,57,209,15,132,244,247,139,68,36,4,87,83,15,162,139,124, 529 82,157,156,90,49,192,57,209,15,132,244,247,139,68,36,4,87,83,15,162,139,124,
548 36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248,1,195,255,129,124,253,202, 530 36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248,1,195,255,249,255,129,124,
549 4,239,15,135,244,43,129,124,253,194,4,239,15,135,244,43,255,252,242,15,16, 531 253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,41,255,252,242,
550 4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,4,194,131,198,4,255,223, 532 15,16,4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,4,194,131,198,4,255,
551 252,233,221,216,255,218,252,233,223,224,158,255,15,134,244,248,255,15,131, 533 223,252,233,221,216,255,218,252,233,223,224,158,255,15,134,244,248,255,15,
552 244,248,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,139,6,15,182, 534 131,244,248,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,139,6,15,
553 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,108,194,4,131, 535 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,108,194,4,
554 198,4,129,252,253,239,15,135,244,251,129,124,253,202,4,239,15,135,244,251, 536 131,198,4,129,252,253,239,15,135,244,251,129,124,253,202,4,239,15,135,244,
555 255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15,138, 537 251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15,
556 244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1,15,183, 538 138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1,15,
557 70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,70,252,254,141,180, 539 183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,70,252,254,141,
558 253,134,233,248,1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239,15, 540 180,253,134,233,248,1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239,
559 131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,135, 541 15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,
560 244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,233,235,15,133,244, 542 135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,233,235,15,133,
561 2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,47,255,252,247,208,131,198, 543 244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,252,247,208,131,
562 4,129,124,253,202,4,239,15,133,244,248,139,12,202,59,12,135,255,131,198,4, 544 198,4,129,124,253,202,4,239,15,133,244,248,139,12,202,59,12,135,255,131,198,
563 129,124,253,202,4,239,15,135,244,248,255,252,242,15,16,4,199,102,15,46,4, 545 4,129,124,253,202,4,239,15,135,244,248,255,252,242,15,16,4,199,102,15,46,
564 202,255,221,4,202,221,4,199,255,252,247,208,131,198,4,57,68,202,4,255,139, 546 4,202,255,221,4,202,221,4,199,255,252,247,208,131,198,4,57,68,202,4,255,139,
565 108,194,4,131,198,4,129,252,253,239,255,15,131,244,247,255,15,130,244,247, 547 108,194,4,131,198,4,129,252,253,239,255,15,131,244,247,255,15,130,244,247,
566 255,137,108,202,4,139,44,194,137,44,202,255,15,183,70,252,254,141,180,253, 548 255,137,108,202,4,139,44,194,137,44,202,255,15,183,70,252,254,141,180,253,
567 134,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 549 134,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
568 171,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,6,15,182,204, 550 171,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,6,15,182,204,
569 15,182,232,131,198,4,193,232,16,252,255,36,171,255,49,252,237,129,124,253, 551 15,182,232,131,198,4,193,232,16,252,255,36,171,255,49,252,237,129,124,253,
570 194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182,232,131,198,4, 552 194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182,232,131,198,4,
571 193,232,16,252,255,36,171,255,129,124,253,194,4,239,15,135,244,50,255,252, 553 193,232,16,252,255,36,171,255,129,124,253,194,4,239,15,135,244,48,255,252,
572 242,15,16,4,194,184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193, 554 242,15,16,4,194,184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,
573 252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194, 555 252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194,
574 4,239,15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1, 556 4,239,15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1,
575 252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6,15,182,204, 557 252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6,15,182,204,
576 15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,124,253,194,4,239, 558 15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,124,253,194,4,239,
577 15,133,244,52,139,12,194,137,213,232,251,1,18,255,252,242,15,42,192,137,252, 559 15,133,244,50,139,12,194,137,213,232,251,1,18,255,252,242,15,42,192,137,252,
578 234,255,137,4,36,137,252,234,219,4,36,255,15,182,78,252,253,252,233,244,1, 560 234,255,137,4,36,137,252,234,219,4,36,255,15,182,78,252,253,252,233,244,1,
579 255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,135,244,48, 561 255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,135,244,46,
580 255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252,234,220,4,199, 562 255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252,234,220,4,199,
581 255,129,124,253,252,234,4,239,15,135,244,49,255,252,242,15,16,4,199,252,242, 563 255,129,124,253,252,234,4,239,15,135,244,47,255,252,242,15,16,4,199,252,242,
582 15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239, 564 15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239,
583 15,135,244,51,129,124,253,194,4,239,15,135,244,51,255,252,242,15,16,4,252, 565 15,135,244,49,129,124,253,194,4,239,15,135,244,49,255,252,242,15,16,4,252,
584 234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,242,15,16,4,252, 566 234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,242,15,16,4,252,
585 234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4, 567 234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4,
586 199,252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16, 568 199,252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16,
@@ -594,10 +576,10 @@ static const unsigned char build_actionlist[15199] = {
594 52,194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234, 576 52,194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234,
595 221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199, 577 221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199,
596 221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4, 578 221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,
597 252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,156,255,232,244, 579 252,234,221,4,194,255,248,154,232,244,146,255,252,233,244,154,255,232,244,
598 108,255,15,182,252,236,15,182,192,141,12,194,41,232,137,76,36,4,137,68,36, 580 107,255,15,182,252,236,15,182,192,141,12,194,41,232,137,76,36,4,137,68,36,
599 8,248,35,139,108,36,48,137,44,36,137,149,233,137,116,36,24,232,251,1,23,139, 581 8,248,33,139,108,36,48,137,44,36,137,149,233,137,116,36,24,232,251,1,23,139,
600 149,233,133,192,15,133,244,44,15,182,110,252,255,15,182,78,252,253,139,68, 582 149,233,133,192,15,133,244,42,15,182,110,252,255,15,182,78,252,253,139,68,
601 252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182, 583 252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182,
602 232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,4,135,199,68, 584 232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,4,135,199,68,
603 202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 585 202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
@@ -619,96 +601,99 @@ static const unsigned char build_actionlist[15199] = {
619 4,193,232,16,252,255,36,171,248,2,252,246,129,233,235,15,132,244,1,128,189, 601 4,193,232,16,252,255,36,171,248,2,252,246,129,233,235,15,132,244,1,128,189,
620 233,0,15,132,244,1,137,213,137,194,141,139,233,232,251,1,24,137,252,234,252, 602 233,0,15,132,244,1,137,213,137,194,141,139,233,232,251,1,24,137,252,234,252,
621 233,244,1,255,139,106,252,248,255,252,242,15,16,4,199,255,139,172,253,141, 603 233,244,1,255,139,106,252,248,255,252,242,15,16,4,199,255,139,172,253,141,
622 233,139,141,233,255,252,247,208,139,106,252,248,139,172,253,141,233,139,141, 604 233,139,141,233,255,252,242,15,17,1,255,221,25,255,252,247,208,139,106,252,
623 233,137,65,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 605 248,139,172,253,141,233,139,141,233,137,65,4,139,6,15,182,204,15,182,232,
624 171,255,141,180,253,134,233,139,108,36,48,131,189,233,0,15,132,244,247,137, 606 131,198,4,193,232,16,252,255,36,171,255,141,180,253,134,233,139,108,36,48,
625 149,233,141,20,202,137,252,233,232,251,1,25,139,149,233,248,1,139,6,15,182, 607 131,189,233,0,15,132,244,247,137,149,233,141,20,202,137,252,233,232,251,1,
626 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,74, 608 25,139,149,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
627 252,248,139,4,135,139,108,36,48,137,76,36,8,137,68,36,4,137,44,36,137,149, 609 255,36,171,255,252,247,208,139,74,252,248,139,4,135,139,108,36,48,137,76,
628 233,137,116,36,24,232,251,1,26,139,149,233,15,182,78,252,253,137,4,202,199, 610 36,8,137,68,36,4,137,44,36,137,149,233,137,116,36,24,232,251,1,26,139,149,
629 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
630 171,255,137,197,37,252,255,7,0,0,193,252,237,11,61,252,255,7,0,0,15,132,244,
631 249,248,2,137,108,36,8,139,108,36,48,137,68,36,4,137,116,36,24,139,131,233,
632 137,44,36,59,131,233,137,149,233,15,131,244,251,248,1,232,251,1,27,139,149,
633 233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182, 611 233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,
634 232,131,198,4,193,232,16,252,255,36,171,248,3,184,1,8,0,0,252,233,244,2,248, 612 232,131,198,4,193,232,16,252,255,36,171,255,137,197,37,252,255,7,0,0,193,
635 5,137,252,233,232,251,1,28,252,233,244,1,255,252,247,208,139,108,36,48,139, 613 252,237,11,61,252,255,7,0,0,15,132,244,249,248,2,137,108,36,8,139,108,36,
636 139,233,137,116,36,24,59,139,233,137,149,233,15,131,244,249,248,2,139,20, 614 48,137,68,36,4,137,116,36,24,139,131,233,137,44,36,59,131,233,137,149,233,
637 135,137,252,233,232,251,1,29,139,149,233,15,182,78,252,253,137,4,202,199, 615 15,131,244,251,248,1,232,251,1,27,139,149,233,15,182,78,252,253,137,4,202,
638 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 616 199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
639 171,248,3,137,252,233,232,251,1,28,15,183,70,252,254,252,247,208,252,233, 617 36,171,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,232,251,1,28,252,
640 244,2,255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,157, 618 233,244,1,255,252,247,208,139,108,36,48,139,139,233,137,116,36,24,59,139,
641 255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,158,255, 619 233,137,149,233,15,131,244,249,248,2,139,20,135,137,252,233,232,251,1,29,
642 15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,44, 620 139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,
643 252,234,129,124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252, 621 15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,137,252,233,232,251,
644 242,15,45,192,252,242,15,42,200,102,15,46,193,255,221,4,194,219,20,36,219, 622 1,28,15,183,70,252,254,252,247,208,252,233,244,2,255,252,247,208,139,106,
645 4,36,255,15,133,244,38,59,133,233,15,131,244,38,193,224,3,3,133,233,129,120, 623 252,248,139,173,233,139,4,135,252,233,244,155,255,252,247,208,139,106,252,
646 253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139, 624 248,139,173,233,139,4,135,252,233,244,156,255,15,182,252,236,15,182,192,129,
647 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189, 625 124,253,252,234,4,239,15,133,244,36,139,44,252,234,129,124,253,194,4,239,
648 233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,38,15,182,78, 626 15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200,
649 252,253,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,38,139,4, 627 102,15,46,193,255,221,4,194,219,20,36,219,4,36,255,15,133,244,36,59,133,233,
650 194,252,233,244,157,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129, 628 15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1,
651 124,253,252,234,4,239,15,133,244,36,139,44,252,234,248,157,139,141,233,35, 629 139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,131,198,
652 136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,129, 630 4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244,1,139,141,233,
653 233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,70,252,253,139, 631 252,246,129,233,235,15,132,244,36,15,182,78,252,253,252,233,244,1,248,5,255,
654 41,139,73,4,137,44,194,248,2,255,137,76,194,4,139,6,15,182,204,15,182,232, 632 129,124,253,194,4,239,15,133,244,36,139,4,194,252,233,244,155,255,15,182,
655 131,198,4,193,232,16,252,255,36,171,248,3,15,182,70,252,253,185,237,252,233, 633 252,236,15,182,192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,
656 244,2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15, 634 244,34,139,44,252,234,248,155,139,141,233,35,136,233,105,201,239,3,141,233,
657 132,244,3,252,246,129,233,235,15,133,244,3,252,233,244,36,255,15,182,252, 635 248,1,129,185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,
658 236,15,182,192,129,124,253,252,234,4,239,15,133,244,37,139,44,252,234,59, 636 4,239,15,132,244,251,15,182,70,252,253,139,41,139,73,4,137,44,194,248,2,255,
659 133,233,15,131,244,37,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248, 637 137,76,194,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
660 248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232, 638 171,248,3,15,182,70,252,253,185,237,252,233,244,2,248,4,139,137,233,133,201,
661 131,198,4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244,1,139, 639 15,133,244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15,
662 141,233,252,246,129,233,235,15,132,244,37,255,15,182,252,236,15,182,192,129, 640 133,244,3,252,233,244,34,255,15,182,252,236,15,182,192,129,124,253,252,234,
663 124,253,252,234,4,239,15,133,244,41,139,44,252,234,129,124,253,194,4,239, 641 4,239,15,133,244,35,139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133,
664 15,135,244,251,255,15,133,244,41,59,133,233,15,131,244,41,193,224,3,3,133, 642 233,129,120,253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,
643 68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,
644 248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,
645 35,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,39,
646 139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,15,133,244,39,59,
647 133,233,15,131,244,39,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,
648 248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,
649 104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,
650 248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233,235,15,132,
651 244,39,15,182,78,252,253,252,233,244,1,248,5,129,124,253,194,4,239,15,133,
652 244,39,139,4,194,252,233,244,156,248,7,128,165,233,235,139,139,233,137,171,
653 233,137,141,233,15,182,78,252,253,252,233,244,2,255,15,182,252,236,15,182,
654 192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,37,139,44,
655 252,234,248,156,139,141,233,35,136,233,105,201,239,198,133,233,0,3,141,233,
656 248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,244,251,129,121,253,
657 4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,133,244,253,248,3,15,
658 182,70,252,253,139,108,194,4,139,4,194,137,105,4,137,1,139,6,15,182,204,15,
659 182,232,131,198,4,193,232,16,252,255,36,171,248,4,131,189,233,0,15,132,244,
660 2,137,76,36,16,139,141,233,252,246,129,233,235,15,132,244,37,139,76,36,16,
661 252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,255,139,141,233,133,
662 201,15,132,244,252,252,246,129,233,235,15,132,244,37,248,6,137,68,36,16,199,
663 68,36,20,237,137,108,36,12,141,68,36,16,137,108,36,4,139,108,36,48,137,68,
664 36,8,137,44,36,137,149,233,137,116,36,24,232,251,1,30,139,149,233,139,108,
665 36,12,137,193,252,233,244,2,248,7,128,165,233,235,139,131,233,137,171,233,
666 137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,252,234,
667 4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,3,3,133,
665 233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244, 668 233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,
666 253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182, 669 253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,
667 232,131,198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1, 670 232,131,198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,
668 139,141,233,255,252,246,129,233,235,15,132,244,41,15,182,78,252,253,252,233, 671 255,139,141,233,252,246,129,233,235,15,132,244,38,15,182,78,252,253,252,233,
669 244,1,248,5,129,124,253,194,4,239,15,133,244,41,139,4,194,252,233,244,158, 672 244,1,248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,
670 248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253, 673 252,253,252,233,244,2,255,137,124,36,16,255,221,4,199,219,92,36,12,255,248,
671 252,233,244,2,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124, 674 1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,2,139,
672 253,252,234,4,239,15,133,244,39,139,44,252,234,248,158,139,141,233,35,136, 675 68,36,20,255,252,242,15,45,252,248,255,139,124,36,12,255,131,232,1,15,132,
673 233,105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244, 676 244,250,1,252,248,59,133,233,15,131,244,251,41,252,248,193,231,3,3,189,233,
674 251,57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,255, 677 248,3,139,41,137,47,139,105,4,131,193,8,137,111,4,131,199,8,131,232,1,15,
675 252,246,133,233,235,15,133,244,253,248,3,15,182,70,252,253,139,108,194,4, 678 133,244,3,248,4,139,124,36,16,139,6,15,182,204,15,182,232,131,198,4,193,232,
676 139,4,194,137,105,4,137,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 679 16,252,255,36,171,248,5,137,108,36,4,139,108,36,48,137,149,233,137,68,36,
677 252,255,36,171,248,4,131,189,233,0,15,132,244,2,137,76,36,16,139,141,233, 680 8,137,44,36,137,116,36,24,232,251,1,31,139,149,233,15,182,78,252,253,252,
678 252,246,129,233,235,15,132,244,39,139,76,36,16,252,233,244,2,248,5,139,137, 681 233,244,1,248,7,128,165,233,235,139,131,233,137,171,233,255,137,133,233,252,
679 233,133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129, 682 233,244,2,255,3,68,36,20,255,129,124,253,202,4,239,139,44,202,15,133,244,
680 233,235,15,132,244,39,248,6,137,68,36,16,199,68,36,20,237,137,108,36,12,141, 683 51,141,84,202,8,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,
681 68,36,16,137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137, 684 205,131,198,4,252,255,36,171,255,141,76,202,8,137,215,139,105,252,248,129,
682 116,36,24,232,251,1,30,139,149,233,139,108,36,12,137,193,252,233,244,2,248, 685 121,253,252,252,239,15,133,244,28,248,52,139,114,252,252,252,247,198,237,
683 7,128,165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,3,255,15, 686 15,133,244,253,248,1,137,106,252,248,137,68,36,20,131,232,1,15,132,244,249,
684 182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,40,139,44,252, 687 248,2,139,41,137,47,139,105,4,137,111,4,131,199,8,131,193,8,131,232,1,15,
685 234,59,133,233,15,131,244,40,193,224,3,3,133,233,129,120,253,4,239,15,132, 688 133,244,2,139,106,252,248,248,3,139,68,36,20,128,189,233,1,15,135,244,251,
686 244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139, 689 248,4,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,
687 12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 690 248,5,255,252,247,198,237,15,133,244,4,15,182,78,252,253,252,247,209,141,
688 255,36,171,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,233, 691 12,202,139,121,252,248,139,191,233,139,191,233,252,233,244,4,248,7,15,139,
689 235,15,132,244,40,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139,
690 139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,137,124,
691 36,16,255,221,4,199,219,92,36,12,255,248,1,141,12,202,139,105,252,248,252,
692 246,133,233,235,15,133,244,253,248,2,139,68,36,20,255,252,242,15,45,252,248,
693 255,139,124,36,12,255,131,232,1,15,132,244,250,1,252,248,59,133,233,15,131,
694 244,251,41,252,248,193,231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,
695 193,8,137,111,4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,16,139,
696 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,137,108,
697 36,4,139,108,36,48,137,149,233,137,68,36,8,137,44,36,137,116,36,24,232,251,
698 1,31,139,149,233,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139,
699 131,233,137,171,233,255,137,133,233,252,233,244,2,255,3,68,36,20,255,141,
700 76,202,8,139,105,252,248,129,121,253,252,252,239,15,133,244,31,252,255,165,
701 233,255,141,76,202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133,
702 244,31,248,53,139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106,
703 252,248,137,68,36,20,131,232,1,15,132,244,249,248,2,139,41,137,47,139,105,
704 4,137,111,4,131,199,8,131,193,8,131,232,1,15,133,244,2,139,106,252,248,248,
705 3,137,209,128,189,233,1,15,135,244,251,248,4,139,68,36,20,252,255,165,233,
706 248,5,255,252,247,198,237,15,133,244,4,15,182,70,252,253,252,247,208,141,
707 20,194,139,122,252,248,139,191,233,139,191,233,252,233,244,4,248,7,15,139,
708 244,1,131,230,252,248,41,252,242,137,215,139,114,252,252,252,233,244,1,255, 692 244,1,131,230,252,248,41,252,242,137,215,139,114,252,252,252,233,244,1,255,
709 141,76,202,8,139,105,232,139,65,252,236,137,41,137,65,4,139,105,252,240,139, 693 141,76,202,8,139,105,232,139,65,252,236,137,41,137,65,4,139,105,252,240,139,
710 65,252,244,137,105,8,137,65,12,139,105,224,139,65,228,137,105,252,248,137, 694 65,252,244,137,105,8,137,65,12,139,105,224,139,65,228,137,105,252,248,137,
711 65,252,252,129,252,248,239,184,3,0,0,0,15,133,244,31,252,255,165,233,255, 695 65,252,252,129,252,248,239,184,237,15,133,244,28,137,202,137,114,252,252,
696 139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,255,
712 15,182,252,236,139,66,252,248,141,12,202,139,128,233,15,182,128,233,137,124, 697 15,182,252,236,139,66,252,248,141,12,202,139,128,233,15,182,128,233,137,124,
713 36,16,141,188,253,194,233,43,122,252,252,133,252,237,15,132,244,251,141,108, 698 36,16,141,188,253,194,233,43,122,252,252,133,252,237,15,132,244,251,141,108,
714 252,233,252,248,57,215,15,131,244,248,248,1,139,71,252,248,137,1,139,71,252, 699 252,233,252,248,57,215,15,131,244,248,248,1,139,71,252,248,137,1,139,71,252,
@@ -721,7 +706,7 @@ static const unsigned char build_actionlist[15199] = {
721 215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,137,116,36,24, 706 215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,137,116,36,24,
722 41,215,139,84,36,20,131,252,234,1,137,252,233,232,251,1,0,139,149,233,139, 707 41,215,139,84,36,20,131,252,234,1,137,252,233,232,251,1,0,139,149,233,139,
723 141,233,1,215,252,233,244,6,255,193,225,3,255,248,1,139,114,252,252,137,68, 708 141,233,1,215,252,233,244,6,255,193,225,3,255,248,1,139,114,252,252,137,68,
724 36,20,252,247,198,237,15,133,244,253,255,248,17,137,215,131,232,1,15,132, 709 36,20,252,247,198,237,15,133,244,253,255,248,13,137,215,131,232,1,15,132,
725 244,249,248,2,139,44,15,137,111,252,248,139,108,15,4,137,111,252,252,131, 710 244,249,248,2,139,44,15,137,111,252,248,139,108,15,4,137,111,252,252,131,
726 199,8,131,232,1,15,133,244,2,248,3,139,68,36,20,15,182,110,252,255,248,5, 711 199,8,131,232,1,15,133,244,2,248,3,139,68,36,20,15,182,110,252,255,248,5,
727 57,197,15,135,244,252,255,139,108,10,4,137,106,252,252,139,44,10,137,106, 712 57,197,15,135,244,252,255,139,108,10,4,137,106,252,252,139,44,10,137,106,
@@ -729,10 +714,10 @@ static const unsigned char build_actionlist[15199] = {
729 247,209,141,20,202,139,122,252,248,139,191,233,139,191,233,139,6,15,182,204, 714 247,209,141,20,202,139,122,252,248,139,191,233,139,191,233,139,6,15,182,204,
730 15,182,232,131,198,4,193,232,16,252,255,36,171,248,6,255,199,71,252,252,237, 715 15,182,232,131,198,4,193,232,16,252,255,36,171,248,6,255,199,71,252,252,237,
731 131,199,8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,7,15, 716 131,199,8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,7,15,
732 139,244,18,131,230,252,248,41,252,242,255,1,252,241,255,137,252,245,209,252, 717 139,244,14,131,230,252,248,41,252,242,255,1,252,241,255,137,252,245,209,252,
733 237,129,229,239,102,131,172,253,43,233,1,15,132,244,141,255,141,12,202,255, 718 237,129,229,239,102,131,172,253,43,233,1,15,132,244,139,255,141,12,202,255,
734 129,121,253,4,239,15,135,244,54,129,121,253,12,239,15,135,244,54,255,139, 719 129,121,253,4,239,15,135,244,53,129,121,253,12,239,15,135,244,53,255,139,
735 105,20,255,129,252,253,239,15,135,244,54,255,252,242,15,16,1,252,242,15,16, 720 105,20,255,129,252,253,239,15,135,244,53,255,252,242,15,16,1,252,242,15,16,
736 73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255, 721 73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255,
737 15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221, 722 15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,
738 1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24, 723 1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,
@@ -743,32 +728,44 @@ static const unsigned char build_actionlist[15199] = {
743 252,139,41,137,105,252,248,252,233,245,255,141,180,253,134,233,139,1,137, 728 252,139,41,137,105,252,248,252,233,245,255,141,180,253,134,233,139,1,137,
744 105,252,252,137,65,252,248,255,139,139,233,139,4,129,139,128,233,139,108, 729 105,252,252,137,65,252,248,255,139,139,233,139,4,129,139,128,233,139,108,
745 36,48,137,147,233,137,171,233,252,255,224,255,141,180,253,134,233,139,6,15, 730 36,48,137,147,233,137,171,233,252,255,224,255,141,180,253,134,233,139,6,15,
746 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,254,0 731 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,190,233,139,
732 108,36,48,141,12,202,59,141,233,15,135,244,23,15,182,142,233,57,200,15,134,
733 244,249,248,2,255,15,183,70,252,254,252,233,245,255,248,3,199,68,194,252,
734 252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,255,141,44,197,237,141,
735 4,194,139,122,252,248,137,104,252,252,137,120,252,248,139,108,36,48,141,12,
736 200,59,141,233,15,135,244,22,137,209,137,194,15,182,174,233,133,252,237,15,
737 132,244,248,248,1,131,193,8,57,209,15,131,244,249,139,121,252,248,137,56,
738 139,121,252,252,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,
739 244,1,248,2,255,139,190,233,139,6,15,182,204,15,182,232,131,198,4,193,232,
740 16,252,255,36,171,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,244,
741 3,252,233,244,2,255,139,106,252,248,139,189,233,139,108,36,48,141,68,194,
742 252,248,137,149,233,141,136,233,59,141,233,137,133,233,255,137,44,36,255,
743 137,124,36,4,137,44,36,255,15,135,244,21,199,131,233,237,255,252,255,215,
744 255,252,255,147,233,255,199,131,233,237,139,149,233,141,12,194,252,247,217,
745 3,141,233,139,114,252,252,252,233,244,12,255,254,0
747}; 746};
748 747
749enum { 748enum {
750 GLOB_gate_lf, 749 GLOB_vm_returnp,
751 GLOB_gate_lf_growstack, 750 GLOB_cont_dispatch,
752 GLOB_gate_lv,
753 GLOB_gate_lv_growstack,
754 GLOB_gate_cwrap,
755 GLOB_gate_c_growstack,
756 GLOB_vm_returnc, 751 GLOB_vm_returnc,
757 GLOB_BC_RET_Z, 752 GLOB_BC_RET_Z,
758 GLOB_vm_return, 753 GLOB_vm_return,
759 GLOB_gate_c,
760 GLOB_vm_returnp,
761 GLOB_vm_leave_cp, 754 GLOB_vm_leave_cp,
762 GLOB_vm_leave_unw, 755 GLOB_vm_leave_unw,
763 GLOB_vm_unwind_c, 756 GLOB_vm_unwind_c,
764 GLOB_vm_unwind_c_eh, 757 GLOB_vm_unwind_c_eh,
765 GLOB_vm_unwind_ff, 758 GLOB_vm_unwind_ff,
766 GLOB_vm_unwind_ff_eh, 759 GLOB_vm_unwind_ff_eh,
767 GLOB_cont_dispatch, 760 GLOB_vm_growstack_c,
761 GLOB_vm_growstack_v,
762 GLOB_vm_growstack_f,
768 GLOB_vm_resume, 763 GLOB_vm_resume,
769 GLOB_vm_pcall, 764 GLOB_vm_pcall,
770 GLOB_vm_call, 765 GLOB_vm_call,
766 GLOB_vm_call_dispatch,
771 GLOB_vmeta_call, 767 GLOB_vmeta_call,
768 GLOB_vm_call_dispatch_f,
772 GLOB_vm_cpcall, 769 GLOB_vm_cpcall,
773 GLOB_cont_cat, 770 GLOB_cont_cat,
774 GLOB_cont_ra, 771 GLOB_cont_ra,
@@ -790,6 +787,7 @@ enum {
790 GLOB_vmeta_unm, 787 GLOB_vmeta_unm,
791 GLOB_vmeta_arith_vv, 788 GLOB_vmeta_arith_vv,
792 GLOB_vmeta_len, 789 GLOB_vmeta_len,
790 GLOB_vmeta_call_ra,
793 GLOB_BC_CALLT_Z, 791 GLOB_BC_CALLT_Z,
794 GLOB_vmeta_for, 792 GLOB_vmeta_for,
795 GLOB_ff_assert, 793 GLOB_ff_assert,
@@ -863,12 +861,11 @@ enum {
863 GLOB_ff_table_getn, 861 GLOB_ff_table_getn,
864 GLOB_ff_bit_tobit, 862 GLOB_ff_bit_tobit,
865 GLOB_ff_bit_band, 863 GLOB_ff_bit_band,
866 GLOB_fff_resbit_op, 864 GLOB_fff_resbit,
867 GLOB_fff_fallback_bit_op, 865 GLOB_fff_fallback_bit_op,
868 GLOB_ff_bit_bor, 866 GLOB_ff_bit_bor,
869 GLOB_ff_bit_bxor, 867 GLOB_ff_bit_bxor,
870 GLOB_ff_bit_bswap, 868 GLOB_ff_bit_bswap,
871 GLOB_fff_resbit,
872 GLOB_ff_bit_bnot, 869 GLOB_ff_bit_bnot,
873 GLOB_ff_bit_lshift, 870 GLOB_ff_bit_lshift,
874 GLOB_ff_bit_rshift, 871 GLOB_ff_bit_rshift,
@@ -899,28 +896,26 @@ enum {
899 GLOB__MAX 896 GLOB__MAX
900}; 897};
901static const char *const globnames[] = { 898static const char *const globnames[] = {
902 "gate_lf", 899 "vm_returnp",
903 "gate_lf_growstack", 900 "cont_dispatch",
904 "gate_lv",
905 "gate_lv_growstack",
906 "gate_cwrap",
907 "gate_c_growstack",
908 "vm_returnc", 901 "vm_returnc",
909 "BC_RET_Z", 902 "BC_RET_Z",
910 "vm_return", 903 "vm_return",
911 "gate_c",
912 "vm_returnp",
913 "vm_leave_cp", 904 "vm_leave_cp",
914 "vm_leave_unw", 905 "vm_leave_unw",
915 "vm_unwind_c@8", 906 "vm_unwind_c@8",
916 "vm_unwind_c_eh", 907 "vm_unwind_c_eh",
917 "vm_unwind_ff@4", 908 "vm_unwind_ff@4",
918 "vm_unwind_ff_eh", 909 "vm_unwind_ff_eh",
919 "cont_dispatch", 910 "vm_growstack_c",
911 "vm_growstack_v",
912 "vm_growstack_f",
920 "vm_resume", 913 "vm_resume",
921 "vm_pcall", 914 "vm_pcall",
922 "vm_call", 915 "vm_call",
916 "vm_call_dispatch",
923 "vmeta_call", 917 "vmeta_call",
918 "vm_call_dispatch_f",
924 "vm_cpcall", 919 "vm_cpcall",
925 "cont_cat", 920 "cont_cat",
926 "cont_ra", 921 "cont_ra",
@@ -942,6 +937,7 @@ static const char *const globnames[] = {
942 "vmeta_unm", 937 "vmeta_unm",
943 "vmeta_arith_vv", 938 "vmeta_arith_vv",
944 "vmeta_len", 939 "vmeta_len",
940 "vmeta_call_ra",
945 "BC_CALLT_Z", 941 "BC_CALLT_Z",
946 "vmeta_for", 942 "vmeta_for",
947 "ff_assert", 943 "ff_assert",
@@ -1015,12 +1011,11 @@ static const char *const globnames[] = {
1015 "ff_table_getn", 1011 "ff_table_getn",
1016 "ff_bit_tobit", 1012 "ff_bit_tobit",
1017 "ff_bit_band", 1013 "ff_bit_band",
1018 "fff_resbit_op", 1014 "fff_resbit",
1019 "fff_fallback_bit_op", 1015 "fff_fallback_bit_op",
1020 "ff_bit_bor", 1016 "ff_bit_bor",
1021 "ff_bit_bxor", 1017 "ff_bit_bxor",
1022 "ff_bit_bswap", 1018 "ff_bit_bswap",
1023 "fff_resbit",
1024 "ff_bit_bnot", 1019 "ff_bit_bnot",
1025 "ff_bit_lshift", 1020 "ff_bit_lshift",
1026 "ff_bit_rshift", 1021 "ff_bit_rshift",
@@ -1108,451 +1103,426 @@ static const char *const extnames[] = {
1108static void build_subroutines(BuildCtx *ctx, int cmov, int sse) 1103static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1109{ 1104{
1110 dasm_put(Dst, 0); 1105 dasm_put(Dst, 0);
1111 dasm_put(Dst, 2, Dt7(->pc), PC2PROTO(framesize), PC2PROTO(k), Dt1(->maxstack), PC2PROTO(numparams)); 1106 dasm_put(Dst, 2, FRAME_P, LJ_TTRUE, FRAME_TYPE, FRAME_C, DISPATCH_GL(vmstate), ~LJ_VMST_C);
1112#if LJ_HASJIT 1107 dasm_put(Dst, 110, Dt1(->base), Dt1(->top), Dt1(->cframe), Dt1(->maxstack), LJ_TNIL);
1113#endif 1108 dasm_put(Dst, 196, Dt1(->top), Dt1(->top), Dt1(->glref), Dt2(->vmstate), ~LJ_VMST_C, CFRAME_RAWMASK, 1+1);
1114 dasm_put(Dst, 47, LJ_TNIL, FRAME_VARG, -FRAME_VARG, Dt7(->pc), PC2PROTO(framesize), Dt1(->maxstack), PC2PROTO(numparams)); 1109 dasm_put(Dst, 284, Dt1(->base), Dt1(->glref), GG_G2DISP, LJ_TFALSE, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, LUA_MINSTACK, -4+PC2PROTO(framesize), Dt1(->base), Dt1(->top));
1115 dasm_put(Dst, 156, LJ_TNIL, PC2PROTO(k)); 1110 dasm_put(Dst, 350, Dt1(->base), Dt1(->top), Dt7(->pc), FRAME_CP, CFRAME_RESUME, Dt1(->glref), GG_G2DISP, Dt1(->cframe), Dt1(->status), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->status), Dt1(->base), Dt1(->top), FRAME_TYPE);
1116#if LJ_HASJIT 1111 dasm_put(Dst, 497, FRAME_CP, FRAME_C, Dt1(->cframe), Dt1(->cframe), Dt1(->glref), GG_G2DISP, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
1117#endif 1112 dasm_put(Dst, 588, LJ_TFUNC, Dt7(->pc), Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), FRAME_CP, LJ_TNIL, Dt7(->pc), PC2PROTO(k));
1118 dasm_put(Dst, 191, LJ_TNIL, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), DISPATCH_GL(vmstate), ~LJ_VMST_C, DISPATCH_GL(wrapf), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base)); 1113 dasm_put(Dst, 760, LJ_TSTR, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB);
1119 dasm_put(Dst, 287, Dt1(->top), FRAME_TYPE, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), DISPATCH_GL(vmstate), ~LJ_VMST_C, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base));
1120 dasm_put(Dst, 369, Dt1(->top), FRAME_TYPE, FRAME_C, DISPATCH_GL(vmstate), ~LJ_VMST_C, Dt1(->base));
1121 dasm_put(Dst, 474, Dt1(->top), Dt1(->cframe), Dt1(->maxstack), LJ_TNIL);
1122 dasm_put(Dst, 558, Dt1(->top), Dt1(->top), Dt1(->glref), Dt2(->vmstate), ~LJ_VMST_C, CFRAME_RAWMASK, 1+1, Dt1(->base), Dt1(->glref), GG_G2DISP, LJ_TFALSE, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1123 dasm_put(Dst, 651, FRAME_P, LJ_TTRUE, LUA_MINSTACK, PC2PROTO(framesize), Dt1(->base), Dt1(->top), Dt1(->base));
1124 dasm_put(Dst, 741, Dt1(->top), Dt7(->gate), FRAME_CP, CFRAME_RESUME, Dt1(->glref), GG_G2DISP, Dt1(->cframe), Dt1(->status), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->status), Dt1(->base), Dt1(->top), FRAME_TYPE);
1125 dasm_put(Dst, 861, FRAME_CP, FRAME_C, Dt1(->cframe), Dt1(->cframe), Dt1(->glref), GG_G2DISP, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top), LJ_TFUNC, Dt7(->gate));
1126 dasm_put(Dst, 964, Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), FRAME_CP, LJ_TNIL, Dt7(->pc), PC2PROTO(k), LJ_TSTR);
1127 dasm_put(Dst, 1153, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB);
1128 if (sse) { 1114 if (sse) {
1129 dasm_put(Dst, 1189); 1115 dasm_put(Dst, 856);
1130 } else { 1116 } else {
1131 dasm_put(Dst, 1202); 1117 dasm_put(Dst, 869);
1132 } 1118 }
1133 dasm_put(Dst, 1215, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), LJ_TSTR, BC_GSET, DISPATCH_GL(tmptv)); 1119 dasm_put(Dst, 882, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 2+1, LJ_TSTR, BC_GSET);
1134 dasm_put(Dst, 1373, LJ_TTAB); 1120 dasm_put(Dst, 1034, DISPATCH_GL(tmptv), LJ_TTAB);
1135 if (sse) { 1121 if (sse) {
1136 dasm_put(Dst, 1189); 1122 dasm_put(Dst, 856);
1137 } else { 1123 } else {
1138 dasm_put(Dst, 1202); 1124 dasm_put(Dst, 869);
1139 } 1125 }
1140 dasm_put(Dst, 1393, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), Dt1(->base), Dt1(->base)); 1126 dasm_put(Dst, 1057, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 3+1, Dt1(->base), Dt1(->base));
1141 dasm_put(Dst, 1600, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base)); 1127 dasm_put(Dst, 1251, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base));
1142 dasm_put(Dst, 1711, Dt1(->base), Dt1(->base), FRAME_CONT, LJ_TFUNC); 1128 dasm_put(Dst, 1358, Dt1(->base), Dt1(->base), FRAME_CONT);
1143 dasm_put(Dst, 1840, Dt7(->gate), Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->gate), Dt1(->base), Dt1(->base), BC__MAX*4, 1+1); 1129 dasm_put(Dst, 1482, 2+1, Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1144 dasm_put(Dst, 2000, LJ_TISTRUECOND, 1+1, ~LJ_TNUMX); 1130 dasm_put(Dst, 1663, 1+1, LJ_TISTRUECOND, 1+1, ~LJ_TNUMX);
1145 if (cmov) { 1131 if (cmov) {
1146 dasm_put(Dst, 2096); 1132 dasm_put(Dst, 1765);
1147 } else { 1133 } else {
1148 dasm_put(Dst, 2100); 1134 dasm_put(Dst, 1769);
1149 } 1135 }
1150 dasm_put(Dst, 2109, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(mmname)+4*MM_metatable, LJ_TTAB, Dt6(->hmask)); 1136 dasm_put(Dst, 1778, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(mmname)+4*MM_metatable, LJ_TTAB, Dt6(->hmask));
1151 dasm_put(Dst, 2197, Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL); 1137 dasm_put(Dst, 1866, Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL);
1152 dasm_put(Dst, 2252, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1, LJ_TTAB); 1138 dasm_put(Dst, 1921, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1, LJ_TTAB);
1153 dasm_put(Dst, 2324, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1139 dasm_put(Dst, 1989, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1154 dasm_put(Dst, 2389, 2+1, LJ_TTAB, 1+1, LJ_TISNUM); 1140 dasm_put(Dst, 2058, 2+1, LJ_TTAB, 1+1, LJ_TISNUM);
1155 if (sse) { 1141 if (sse) {
1156 dasm_put(Dst, 2480); 1142 dasm_put(Dst, 2145);
1157 } else { 1143 } else {
1158 dasm_put(Dst, 2490); 1144 dasm_put(Dst, 2155);
1159 } 1145 }
1160 dasm_put(Dst, 2497, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1146 dasm_put(Dst, 2162, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1161 dasm_put(Dst, 2559, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base)); 1147 dasm_put(Dst, 2228, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base));
1162 dasm_put(Dst, 2649, Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB); 1148 dasm_put(Dst, 2295, Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB);
1163 dasm_put(Dst, 2755, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); 1149 dasm_put(Dst, 2406, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
1164 if (sse) { 1150 if (sse) {
1165 dasm_put(Dst, 2810); 1151 dasm_put(Dst, 2469);
1166 } else { 1152 } else {
1167 dasm_put(Dst, 2849); 1153 dasm_put(Dst, 2508);
1168 } 1154 }
1169 dasm_put(Dst, 2867, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); 1155 dasm_put(Dst, 2526, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
1170 dasm_put(Dst, 2953, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC); 1156 dasm_put(Dst, 2607, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC);
1171 if (sse) { 1157 if (sse) {
1172 dasm_put(Dst, 2983); 1158 dasm_put(Dst, 2645);
1173 } else { 1159 } else {
1174 dasm_put(Dst, 2993); 1160 dasm_put(Dst, 2655);
1175 } 1161 }
1176 dasm_put(Dst, 3000, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE, LJ_TFUNC, Dt7(->gate)); 1162 dasm_put(Dst, 2662, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
1177 dasm_put(Dst, 3073, 2+1, LJ_TFUNC, LJ_TFUNC, 2*8+FRAME_PCALL, 2*8, 1+1, LJ_TTHREAD); 1163 dasm_put(Dst, 2726, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
1178 dasm_put(Dst, 3171, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); 1164 dasm_put(Dst, 2814, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1179 dasm_put(Dst, 3236, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top)); 1165 dasm_put(Dst, 2915, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
1180 dasm_put(Dst, 3340, Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2); 1166 dasm_put(Dst, 3029, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
1181 dasm_put(Dst, 3459, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base)); 1167 dasm_put(Dst, 3124, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
1182 dasm_put(Dst, 3539, Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base)); 1168 dasm_put(Dst, 3190, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
1183 dasm_put(Dst, 3647, LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), FRAME_TYPE); 1169 dasm_put(Dst, 3291, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
1184 dasm_put(Dst, 3743, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); 1170 dasm_put(Dst, 3401, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
1185 if (sse) { 1171 if (sse) {
1186 dasm_put(Dst, 3829, 1+1, LJ_TISNUM); 1172 dasm_put(Dst, 3427, 1+1, LJ_TISNUM);
1187 } else { 1173 } else {
1188 dasm_put(Dst, 3890, 1+1, LJ_TISNUM); 1174 dasm_put(Dst, 3496, 1+1, LJ_TISNUM);
1189 } 1175 }
1190 dasm_put(Dst, 3922, 1+1, FRAME_TYPE, LJ_TNIL); 1176 dasm_put(Dst, 3532, 1+1, FRAME_TYPE, LJ_TNIL);
1191 if (sse) { 1177 if (sse) {
1192 dasm_put(Dst, 4003, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1178 dasm_put(Dst, 3622, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1193 dasm_put(Dst, 4065, 1+1, LJ_TISNUM); 1179 dasm_put(Dst, 3684, 1+1, LJ_TISNUM);
1194 } else { 1180 } else {
1195 dasm_put(Dst, 4095, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1181 dasm_put(Dst, 3714, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1196 dasm_put(Dst, 4154, 1+1, LJ_TISNUM); 1182 dasm_put(Dst, 3773, 1+1, LJ_TISNUM);
1197 } 1183 }
1198 dasm_put(Dst, 4181, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1184 dasm_put(Dst, 3800, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1199 dasm_put(Dst, 4250, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1185 dasm_put(Dst, 3869, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1200 dasm_put(Dst, 4307, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1186 dasm_put(Dst, 3926, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1201 dasm_put(Dst, 4370, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1187 dasm_put(Dst, 3989, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1202 dasm_put(Dst, 4460); 1188 dasm_put(Dst, 4079);
1203 if (sse) { 1189 if (sse) {
1204 dasm_put(Dst, 4472, 1+1, LJ_TISNUM); 1190 dasm_put(Dst, 4091, 1+1, LJ_TISNUM);
1205 } else { 1191 } else {
1206 dasm_put(Dst, 4503, 1+1, LJ_TISNUM); 1192 dasm_put(Dst, 4122, 1+1, LJ_TISNUM);
1207 } 1193 }
1208 dasm_put(Dst, 4528); 1194 dasm_put(Dst, 4147);
1209 if (sse) { 1195 if (sse) {
1210 dasm_put(Dst, 4550, 1+1, LJ_TISNUM); 1196 dasm_put(Dst, 4161, 1+1, LJ_TISNUM);
1211 } else { 1197 } else {
1212 dasm_put(Dst, 4581, 1+1, LJ_TISNUM); 1198 dasm_put(Dst, 4192, 1+1, LJ_TISNUM);
1213 } 1199 }
1214 dasm_put(Dst, 4606); 1200 dasm_put(Dst, 4217);
1215 if (sse) { 1201 if (sse) {
1216 dasm_put(Dst, 4628, 1+1, LJ_TISNUM); 1202 dasm_put(Dst, 4231, 1+1, LJ_TISNUM);
1217 } else { 1203 } else {
1218 dasm_put(Dst, 4659, 1+1, LJ_TISNUM); 1204 dasm_put(Dst, 4262, 1+1, LJ_TISNUM);
1219 } 1205 }
1220 dasm_put(Dst, 4684); 1206 dasm_put(Dst, 4287);
1221 if (sse) { 1207 if (sse) {
1222 dasm_put(Dst, 4708, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1208 dasm_put(Dst, 4303, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1223 } else { 1209 } else {
1224 dasm_put(Dst, 4743, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1210 dasm_put(Dst, 4342, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1225 } 1211 }
1226 dasm_put(Dst, 4772, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1212 dasm_put(Dst, 4375, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1227 dasm_put(Dst, 4837, 1+1, LJ_TISNUM); 1213 dasm_put(Dst, 4440, 1+1, LJ_TISNUM);
1228 if (sse) { 1214 if (sse) {
1229 dasm_put(Dst, 4932); 1215 dasm_put(Dst, 4539);
1230 } else { 1216 } else {
1231 dasm_put(Dst, 4938); 1217 dasm_put(Dst, 4545);
1232 } 1218 }
1233 dasm_put(Dst, 4947); 1219 dasm_put(Dst, 4554);
1234 if (sse) { 1220 if (sse) {
1235 dasm_put(Dst, 4972); 1221 dasm_put(Dst, 4579);
1236 } else { 1222 } else {
1237 dasm_put(Dst, 4978); 1223 dasm_put(Dst, 4585);
1238 } 1224 }
1239 dasm_put(Dst, 4981, 1+2); 1225 dasm_put(Dst, 4588, 1+2);
1240 if (sse) { 1226 if (sse) {
1241 dasm_put(Dst, 4990); 1227 dasm_put(Dst, 4597);
1242 } else { 1228 } else {
1243 dasm_put(Dst, 4998); 1229 dasm_put(Dst, 4605);
1244 } 1230 }
1245 dasm_put(Dst, 471); 1231 dasm_put(Dst, 4613);
1246 if (sse) { 1232 if (sse) {
1247 dasm_put(Dst, 5006); 1233 dasm_put(Dst, 4616);
1248 } else { 1234 } else {
1249 dasm_put(Dst, 5038); 1235 dasm_put(Dst, 4648);
1250 } 1236 }
1251 dasm_put(Dst, 5057); 1237 dasm_put(Dst, 4667);
1252 if (sse) { 1238 if (sse) {
1253 dasm_put(Dst, 5073, 1+1, LJ_TISNUM); 1239 dasm_put(Dst, 4683, 1+1, LJ_TISNUM);
1254 } else { 1240 } else {
1255 dasm_put(Dst, 5098, 1+1, LJ_TISNUM); 1241 dasm_put(Dst, 4708, 1+1, LJ_TISNUM);
1256 } 1242 }
1257 dasm_put(Dst, 5120); 1243 dasm_put(Dst, 4730);
1258 if (sse) { 1244 if (sse) {
1259 dasm_put(Dst, 5138); 1245 dasm_put(Dst, 4752);
1260 } else { 1246 } else {
1261 dasm_put(Dst, 5164); 1247 dasm_put(Dst, 4778);
1262 } 1248 }
1263 dasm_put(Dst, 5181, 1+2); 1249 dasm_put(Dst, 4795, 1+2);
1264 if (sse) { 1250 if (sse) {
1265 dasm_put(Dst, 5221); 1251 dasm_put(Dst, 4835);
1266 } else { 1252 } else {
1267 dasm_put(Dst, 5229); 1253 dasm_put(Dst, 4843);
1268 } 1254 }
1269 dasm_put(Dst, 5239, 2+1, LJ_TISNUM, LJ_TISNUM); 1255 dasm_put(Dst, 4853, 2+1, LJ_TISNUM, LJ_TISNUM);
1270 if (sse) { 1256 if (sse) {
1271 dasm_put(Dst, 5291, 1+1, LJ_TISNUM, LJ_TISNUM); 1257 dasm_put(Dst, 4905, 1+1, LJ_TISNUM, LJ_TISNUM);
1272 } else { 1258 } else {
1273 dasm_put(Dst, 5338, 2+1, LJ_TISNUM, LJ_TISNUM); 1259 dasm_put(Dst, 4952, 2+1, LJ_TISNUM, LJ_TISNUM);
1274 } 1260 }
1275 if (sse) { 1261 if (sse) {
1276 dasm_put(Dst, 5379, 1+1, LJ_TISNUM, LJ_TISNUM); 1262 dasm_put(Dst, 4993, 1+1, LJ_TISNUM, LJ_TISNUM);
1277 } else { 1263 } else {
1278 dasm_put(Dst, 5450, 1+1, LJ_TISNUM, LJ_TISNUM); 1264 dasm_put(Dst, 5064, 1+1, LJ_TISNUM, LJ_TISNUM);
1279 if (cmov) { 1265 if (cmov) {
1280 dasm_put(Dst, 5503); 1266 dasm_put(Dst, 5117);
1281 } else { 1267 } else {
1282 dasm_put(Dst, 5511); 1268 dasm_put(Dst, 5125);
1283 } 1269 }
1284 dasm_put(Dst, 5442); 1270 dasm_put(Dst, 5056);
1285 } 1271 }
1286 if (sse) { 1272 if (sse) {
1287 dasm_put(Dst, 5532, 1+1, LJ_TISNUM, LJ_TISNUM); 1273 dasm_put(Dst, 5146, 1+1, LJ_TISNUM, LJ_TISNUM);
1288 } else { 1274 } else {
1289 dasm_put(Dst, 5603, 1+1, LJ_TISNUM, LJ_TISNUM); 1275 dasm_put(Dst, 5217, 1+1, LJ_TISNUM, LJ_TISNUM);
1290 if (cmov) { 1276 if (cmov) {
1291 dasm_put(Dst, 5656); 1277 dasm_put(Dst, 5270);
1292 } else { 1278 } else {
1293 dasm_put(Dst, 5664); 1279 dasm_put(Dst, 5278);
1294 } 1280 }
1295 dasm_put(Dst, 5442); 1281 dasm_put(Dst, 5056);
1296 } 1282 }
1297 if (!sse) { 1283 if (!sse) {
1298 dasm_put(Dst, 5685); 1284 dasm_put(Dst, 5299);
1299 } 1285 }
1300 dasm_put(Dst, 5694, 1+1, LJ_TSTR); 1286 dasm_put(Dst, 5308, 1+1, LJ_TSTR);
1301 if (sse) { 1287 if (sse) {
1302 dasm_put(Dst, 5716, Dt5(->len)); 1288 dasm_put(Dst, 5330, Dt5(->len));
1303 } else { 1289 } else {
1304 dasm_put(Dst, 5727, Dt5(->len)); 1290 dasm_put(Dst, 5341, Dt5(->len));
1305 } 1291 }
1306 dasm_put(Dst, 5735, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); 1292 dasm_put(Dst, 5349, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
1307 if (sse) { 1293 if (sse) {
1308 dasm_put(Dst, 5769); 1294 dasm_put(Dst, 5387);
1309 } else { 1295 } else {
1310 dasm_put(Dst, 5779); 1296 dasm_put(Dst, 5397);
1311 } 1297 }
1312 dasm_put(Dst, 5792, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); 1298 dasm_put(Dst, 5410, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
1313 if (sse) { 1299 if (sse) {
1314 dasm_put(Dst, 5827); 1300 dasm_put(Dst, 5445);
1315 } else { 1301 } else {
1316 dasm_put(Dst, 5847); 1302 dasm_put(Dst, 5465);
1317 } 1303 }
1318 dasm_put(Dst, 5867, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1304 dasm_put(Dst, 5485, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1319 dasm_put(Dst, 2475); 1305 dasm_put(Dst, 2140);
1320 if (sse) { 1306 if (sse) {
1321 dasm_put(Dst, 5978); 1307 dasm_put(Dst, 5588);
1322 } else { 1308 } else {
1323 dasm_put(Dst, 5989); 1309 dasm_put(Dst, 5599);
1324 } 1310 }
1325 dasm_put(Dst, 5997, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1311 dasm_put(Dst, 5607, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1326 if (sse) { 1312 if (sse) {
1327 dasm_put(Dst, 6027); 1313 dasm_put(Dst, 5637);
1328 } else { 1314 } else {
1329 dasm_put(Dst, 6034); 1315 dasm_put(Dst, 5644);
1330 } 1316 }
1331 dasm_put(Dst, 6046, sizeof(GCstr)-1); 1317 dasm_put(Dst, 5656, sizeof(GCstr)-1);
1332 dasm_put(Dst, 6121, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1318 dasm_put(Dst, 5731, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1333 dasm_put(Dst, 6180, LJ_TSTR, LJ_TISNUM); 1319 dasm_put(Dst, 5790, LJ_TSTR, LJ_TISNUM);
1334 if (sse) { 1320 if (sse) {
1335 dasm_put(Dst, 6205); 1321 dasm_put(Dst, 5811);
1336 } else { 1322 } else {
1337 dasm_put(Dst, 6212); 1323 dasm_put(Dst, 5818);
1338 } 1324 }
1339 dasm_put(Dst, 6224, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1325 dasm_put(Dst, 5830, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1340 dasm_put(Dst, 6289, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1326 dasm_put(Dst, 5895, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1341 dasm_put(Dst, 6356, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1327 dasm_put(Dst, 5958, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1342 dasm_put(Dst, 6431, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1328 dasm_put(Dst, 6029, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1343 dasm_put(Dst, 6516, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1329 dasm_put(Dst, 6114, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1344 dasm_put(Dst, 6590, 1+1, LJ_TTAB); 1330 dasm_put(Dst, 6184, 1+1, LJ_TTAB);
1345 if (sse) { 1331 if (sse) {
1346 dasm_put(Dst, 6666); 1332 dasm_put(Dst, 6252);
1347 } else { 1333 } else {
1348 dasm_put(Dst, 6676); 1334 dasm_put(Dst, 6262);
1349 } 1335 }
1350 if (sse) { 1336 if (sse) {
1351 dasm_put(Dst, 6687, 1+1, LJ_TISNUM); 1337 dasm_put(Dst, 6273, 1+1, LJ_TISNUM);
1352 } else { 1338 } else {
1353 dasm_put(Dst, 6744, 1+1, LJ_TISNUM); 1339 dasm_put(Dst, 6330, 1+1, LJ_TISNUM);
1354 } 1340 }
1355 if (sse) { 1341 if (sse) {
1356 dasm_put(Dst, 6788, 1+1, LJ_TISNUM); 1342 dasm_put(Dst, 6374, 1+1, LJ_TISNUM);
1357 } else { 1343 } else {
1358 dasm_put(Dst, 6836, 1+1, LJ_TISNUM); 1344 dasm_put(Dst, 6422, 1+1, LJ_TISNUM);
1359 }
1360 dasm_put(Dst, 6876);
1361 if (sse) {
1362 dasm_put(Dst, 6886);
1363 } 1345 }
1364 dasm_put(Dst, 6891, LJ_TISNUM); 1346 dasm_put(Dst, 6462, LJ_TISNUM);
1365 if (sse) { 1347 if (sse) {
1366 dasm_put(Dst, 6909); 1348 dasm_put(Dst, 6489);
1367 } else { 1349 } else {
1368 dasm_put(Dst, 6926); 1350 dasm_put(Dst, 6506);
1369 } 1351 }
1370 dasm_put(Dst, 6939); 1352 dasm_put(Dst, 6519);
1371 if (sse) { 1353 if (sse) {
1372 dasm_put(Dst, 6947, 1+1, LJ_TISNUM); 1354 dasm_put(Dst, 6527, 1+1, LJ_TISNUM);
1373 } else { 1355 } else {
1374 dasm_put(Dst, 6995, 1+1, LJ_TISNUM); 1356 dasm_put(Dst, 6575, 1+1, LJ_TISNUM);
1375 } 1357 }
1376 dasm_put(Dst, 6876); 1358 dasm_put(Dst, 6462, LJ_TISNUM);
1377 if (sse) { 1359 if (sse) {
1378 dasm_put(Dst, 6886); 1360 dasm_put(Dst, 6615);
1379 }
1380 dasm_put(Dst, 6891, LJ_TISNUM);
1381 if (sse) {
1382 dasm_put(Dst, 7035);
1383 } else { 1361 } else {
1384 dasm_put(Dst, 7052); 1362 dasm_put(Dst, 6632);
1385 } 1363 }
1386 dasm_put(Dst, 6939); 1364 dasm_put(Dst, 6519);
1387 if (sse) { 1365 if (sse) {
1388 dasm_put(Dst, 7065, 1+1, LJ_TISNUM); 1366 dasm_put(Dst, 6645, 1+1, LJ_TISNUM);
1389 } else { 1367 } else {
1390 dasm_put(Dst, 7113, 1+1, LJ_TISNUM); 1368 dasm_put(Dst, 6693, 1+1, LJ_TISNUM);
1391 }
1392 dasm_put(Dst, 6876);
1393 if (sse) {
1394 dasm_put(Dst, 6886);
1395 } 1369 }
1396 dasm_put(Dst, 6891, LJ_TISNUM); 1370 dasm_put(Dst, 6462, LJ_TISNUM);
1397 if (sse) { 1371 if (sse) {
1398 dasm_put(Dst, 7153); 1372 dasm_put(Dst, 6733);
1399 } else { 1373 } else {
1400 dasm_put(Dst, 7170); 1374 dasm_put(Dst, 6750);
1401 } 1375 }
1402 dasm_put(Dst, 6939); 1376 dasm_put(Dst, 6519);
1403 if (sse) { 1377 if (sse) {
1404 dasm_put(Dst, 7183, 1+1, LJ_TISNUM); 1378 dasm_put(Dst, 6763, 1+1, LJ_TISNUM);
1405 } else { 1379 } else {
1406 dasm_put(Dst, 7231, 1+1, LJ_TISNUM); 1380 dasm_put(Dst, 6811, 1+1, LJ_TISNUM);
1407 } 1381 }
1408 dasm_put(Dst, 7271); 1382 dasm_put(Dst, 6851);
1409 if (sse) { 1383 if (sse) {
1410 dasm_put(Dst, 7278, 1+1, LJ_TISNUM); 1384 dasm_put(Dst, 6858, 1+1, LJ_TISNUM);
1411 } else { 1385 } else {
1412 dasm_put(Dst, 7326, 1+1, LJ_TISNUM); 1386 dasm_put(Dst, 6906, 1+1, LJ_TISNUM);
1413 } 1387 }
1414 dasm_put(Dst, 7366); 1388 dasm_put(Dst, 6946);
1415 if (sse) { 1389 if (sse) {
1416 dasm_put(Dst, 7370); 1390 dasm_put(Dst, 6950);
1417 } else { 1391 } else {
1418 dasm_put(Dst, 7397); 1392 dasm_put(Dst, 6962);
1419 } 1393 }
1420 dasm_put(Dst, 7412); 1394 dasm_put(Dst, 6975);
1421 if (sse) { 1395 if (sse) {
1422 dasm_put(Dst, 6661); 1396 dasm_put(Dst, 6986, 1+1, LJ_TISNUM, LJ_TISNUM);
1423 }
1424 dasm_put(Dst, 7415);
1425 if (sse) {
1426 dasm_put(Dst, 7424, 1+1, LJ_TISNUM, LJ_TISNUM);
1427 } else { 1397 } else {
1428 dasm_put(Dst, 7498, 2+1, LJ_TISNUM, LJ_TISNUM); 1398 dasm_put(Dst, 7060, 2+1, LJ_TISNUM, LJ_TISNUM);
1429 } 1399 }
1430 dasm_put(Dst, 7564); 1400 dasm_put(Dst, 7126);
1431 if (sse) { 1401 if (sse) {
1432 dasm_put(Dst, 7573, 1+1, LJ_TISNUM, LJ_TISNUM); 1402 dasm_put(Dst, 7135, 1+1, LJ_TISNUM, LJ_TISNUM);
1433 } else { 1403 } else {
1434 dasm_put(Dst, 7647, 2+1, LJ_TISNUM, LJ_TISNUM); 1404 dasm_put(Dst, 7209, 2+1, LJ_TISNUM, LJ_TISNUM);
1435 } 1405 }
1436 dasm_put(Dst, 7713); 1406 dasm_put(Dst, 7275);
1437 if (sse) { 1407 if (sse) {
1438 dasm_put(Dst, 7723, 1+1, LJ_TISNUM, LJ_TISNUM); 1408 dasm_put(Dst, 7285, 1+1, LJ_TISNUM, LJ_TISNUM);
1439 } else { 1409 } else {
1440 dasm_put(Dst, 7797, 2+1, LJ_TISNUM, LJ_TISNUM); 1410 dasm_put(Dst, 7359, 2+1, LJ_TISNUM, LJ_TISNUM);
1441 } 1411 }
1442 dasm_put(Dst, 7863); 1412 dasm_put(Dst, 7425);
1443 if (sse) { 1413 if (sse) {
1444 dasm_put(Dst, 7873, 1+1, LJ_TISNUM, LJ_TISNUM); 1414 dasm_put(Dst, 7435, 1+1, LJ_TISNUM, LJ_TISNUM);
1445 } else { 1415 } else {
1446 dasm_put(Dst, 7947, 2+1, LJ_TISNUM, LJ_TISNUM); 1416 dasm_put(Dst, 7509, 2+1, LJ_TISNUM, LJ_TISNUM);
1447 } 1417 }
1448 dasm_put(Dst, 8013); 1418 dasm_put(Dst, 7575);
1449 if (sse) { 1419 if (sse) {
1450 dasm_put(Dst, 8022, 1+1, LJ_TISNUM, LJ_TISNUM); 1420 dasm_put(Dst, 7584, 1+1, LJ_TISNUM, LJ_TISNUM);
1451 } else { 1421 } else {
1452 dasm_put(Dst, 8096, 2+1, LJ_TISNUM, LJ_TISNUM); 1422 dasm_put(Dst, 7658, 2+1, LJ_TISNUM, LJ_TISNUM);
1453 } 1423 }
1454 dasm_put(Dst, 8162, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1424 dasm_put(Dst, 7724, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1455 dasm_put(Dst, 8246, Dt1(->top), Dt7(->gate), LJ_TFUNC, Dt7(->gate), Dt1(->base), LUA_MINSTACK, Dt1(->base), Dt1(->top)); 1425 dasm_put(Dst, 7802, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1456 dasm_put(Dst, 8365, Dt1(->base), Dt1(->top)); 1426 dasm_put(Dst, 7925, Dt1(->top), Dt1(->base), Dt1(->top));
1457#if LJ_HASJIT 1427#if LJ_HASJIT
1458 dasm_put(Dst, 8406, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1428 dasm_put(Dst, 7963, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1459#endif 1429#endif
1460 dasm_put(Dst, 8437, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE, Dt1(->base), Dt1(->base)); 1430 dasm_put(Dst, 7994, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE, Dt1(->base), Dt1(->base));
1461 dasm_put(Dst, 8503, BC__MAX*4); 1431 dasm_put(Dst, 8060, GG_DISP2STATIC);
1462#if LJ_HASJIT 1432#if LJ_HASJIT
1463 dasm_put(Dst, 8538, Dt1(->base), GG_DISP2J, DISPATCH_J(L)); 1433 dasm_put(Dst, 8095, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1464#endif 1434#endif
1465 dasm_put(Dst, 8567); 1435 dasm_put(Dst, 8141);
1466#if LJ_HASJIT 1436#if LJ_HASJIT
1467 dasm_put(Dst, 8570, Dt1(->base), GG_DISP2J, DISPATCH_J(L), Dt1(->base)); 1437 dasm_put(Dst, 8144, Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L), Dt1(->base), Dt1(->top), Dt7(->pc));
1468#endif 1438#endif
1469 dasm_put(Dst, 8616); 1439 dasm_put(Dst, 8214);
1470#if LJ_HASJIT 1440#if LJ_HASJIT
1471 dasm_put(Dst, 8619, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_J(flags), JIT_F_SSE2, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), Dt1(->base), GG_DISP2J, Dt1(->base)); 1441 dasm_put(Dst, 8217, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_J(flags), JIT_F_SSE2, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), Dt1(->base), GG_DISP2J, Dt1(->base));
1472#endif 1442#endif
1473 dasm_put(Dst, 8762); 1443 dasm_put(Dst, 8360);
1474#if LJ_HASJIT 1444#if LJ_HASJIT
1475 dasm_put(Dst, 8765, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1445 dasm_put(Dst, 8363, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1476#endif 1446#endif
1477 dasm_put(Dst, 8805); 1447 dasm_put(Dst, 8403);
1478 if (!sse) { 1448 if (!sse) {
1479 dasm_put(Dst, 8808); 1449 dasm_put(Dst, 8406);
1480 } 1450 }
1481 dasm_put(Dst, 8853); 1451 dasm_put(Dst, 8451);
1482 if (!sse) { 1452 if (!sse) {
1483 dasm_put(Dst, 8955); 1453 dasm_put(Dst, 8553);
1484 } 1454 }
1485 dasm_put(Dst, 9000); 1455 dasm_put(Dst, 8598);
1486 if (!sse) { 1456 if (!sse) {
1487 dasm_put(Dst, 9102); 1457 dasm_put(Dst, 8700);
1488 } 1458 }
1489 dasm_put(Dst, 9141); 1459 dasm_put(Dst, 8739);
1490 if (sse) { 1460 if (sse) {
1491 dasm_put(Dst, 9246); 1461 dasm_put(Dst, 8844);
1492 } else { 1462 } else {
1493 dasm_put(Dst, 9376); 1463 dasm_put(Dst, 8974);
1494 } 1464 }
1495 dasm_put(Dst, 9423); 1465 dasm_put(Dst, 9021);
1496 if (!sse) { 1466 if (!sse) {
1497 dasm_put(Dst, 9497); 1467 dasm_put(Dst, 9095);
1498 if (cmov) { 1468 if (cmov) {
1499 dasm_put(Dst, 9508); 1469 dasm_put(Dst, 9106);
1500 } else { 1470 } else {
1501 dasm_put(Dst, 9512); 1471 dasm_put(Dst, 9110);
1502 } 1472 }
1503 dasm_put(Dst, 9519); 1473 dasm_put(Dst, 9117);
1504 dasm_put(Dst, 9593); 1474 dasm_put(Dst, 9191);
1505 dasm_put(Dst, 9693); 1475 dasm_put(Dst, 9291);
1506 if (cmov) { 1476 if (cmov) {
1507 dasm_put(Dst, 9696); 1477 dasm_put(Dst, 9294);
1508 } else { 1478 } else {
1509 dasm_put(Dst, 9700); 1479 dasm_put(Dst, 9298);
1510 } 1480 }
1511 dasm_put(Dst, 9707); 1481 dasm_put(Dst, 9305);
1512 if (cmov) { 1482 if (cmov) {
1513 dasm_put(Dst, 9508); 1483 dasm_put(Dst, 9106);
1514 } else { 1484 } else {
1515 dasm_put(Dst, 9512); 1485 dasm_put(Dst, 9110);
1516 } 1486 }
1517 dasm_put(Dst, 9725); 1487 dasm_put(Dst, 9323);
1518 } else { 1488 } else {
1519 dasm_put(Dst, 9804); 1489 dasm_put(Dst, 9402);
1520 } 1490 }
1521 dasm_put(Dst, 9807); 1491 dasm_put(Dst, 9405);
1522 dasm_put(Dst, 9892); 1492 dasm_put(Dst, 9490);
1523 dasm_put(Dst, 10023); 1493 dasm_put(Dst, 9621);
1524 dasm_put(Dst, 10222); 1494 dasm_put(Dst, 9820);
1525 if (sse) { 1495 if (sse) {
1526 dasm_put(Dst, 10245); 1496 dasm_put(Dst, 9843);
1527 dasm_put(Dst, 10302); 1497 dasm_put(Dst, 9900);
1528 dasm_put(Dst, 10393); 1498 dasm_put(Dst, 9991);
1529 } else { 1499 } else {
1530 dasm_put(Dst, 10435); 1500 dasm_put(Dst, 10033);
1531 dasm_put(Dst, 10527); 1501 dasm_put(Dst, 10125);
1532 } 1502 }
1533 dasm_put(Dst, 10573); 1503 dasm_put(Dst, 10171);
1534 if (sse) { 1504 if (sse) {
1535 dasm_put(Dst, 10579); 1505 dasm_put(Dst, 10177);
1536 dasm_put(Dst, 10684); 1506 dasm_put(Dst, 10282);
1537 dasm_put(Dst, 10767); 1507 dasm_put(Dst, 10365);
1538 } else { 1508 } else {
1539 dasm_put(Dst, 10839); 1509 dasm_put(Dst, 10437);
1540 dasm_put(Dst, 10922); 1510 dasm_put(Dst, 10520);
1541 if (cmov) { 1511 if (cmov) {
1542 dasm_put(Dst, 10977); 1512 dasm_put(Dst, 10575);
1543 } else { 1513 } else {
1544 dasm_put(Dst, 10996); 1514 dasm_put(Dst, 10594);
1545 } 1515 }
1546 dasm_put(Dst, 10835); 1516 dasm_put(Dst, 10433);
1547 } 1517 }
1548 dasm_put(Dst, 11037); 1518 dasm_put(Dst, 10635);
1549} 1519}
1550 1520
1551/* Generate the code for a single instruction. */ 1521/* Generate the code for a single instruction. */
1552static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1522static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1553{ 1523{
1554 int vk = 0; 1524 int vk = 0;
1555 dasm_put(Dst, 154, defop); 1525 dasm_put(Dst, 10689, defop);
1556 1526
1557 switch (op) { 1527 switch (op) {
1558 1528
@@ -1561,619 +1531,619 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1561 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1531 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1562 1532
1563 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1533 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1564 dasm_put(Dst, 11091, LJ_TISNUM, LJ_TISNUM); 1534 dasm_put(Dst, 10691, LJ_TISNUM, LJ_TISNUM);
1565 if (sse) { 1535 if (sse) {
1566 dasm_put(Dst, 11112); 1536 dasm_put(Dst, 10712);
1567 } else { 1537 } else {
1568 dasm_put(Dst, 11127); 1538 dasm_put(Dst, 10727);
1569 if (cmov) { 1539 if (cmov) {
1570 dasm_put(Dst, 11137); 1540 dasm_put(Dst, 10737);
1571 } else { 1541 } else {
1572 dasm_put(Dst, 11143); 1542 dasm_put(Dst, 10743);
1573 } 1543 }
1574 } 1544 }
1575 switch (op) { 1545 switch (op) {
1576 case BC_ISLT: 1546 case BC_ISLT:
1577 dasm_put(Dst, 11150); 1547 dasm_put(Dst, 10750);
1578 break; 1548 break;
1579 case BC_ISGE: 1549 case BC_ISGE:
1580 dasm_put(Dst, 10388); 1550 dasm_put(Dst, 9986);
1581 break; 1551 break;
1582 case BC_ISLE: 1552 case BC_ISLE:
1583 dasm_put(Dst, 6585); 1553 dasm_put(Dst, 6179);
1584 break; 1554 break;
1585 case BC_ISGT: 1555 case BC_ISGT:
1586 dasm_put(Dst, 11155); 1556 dasm_put(Dst, 10755);
1587 break; 1557 break;
1588 default: break; /* Shut up GCC. */ 1558 default: break; /* Shut up GCC. */
1589 } 1559 }
1590 dasm_put(Dst, 11160, -BCBIAS_J*4); 1560 dasm_put(Dst, 10760, -BCBIAS_J*4);
1591 break; 1561 break;
1592 1562
1593 case BC_ISEQV: case BC_ISNEV: 1563 case BC_ISEQV: case BC_ISNEV:
1594 vk = op == BC_ISEQV; 1564 vk = op == BC_ISEQV;
1595 dasm_put(Dst, 11193, LJ_TISNUM, LJ_TISNUM); 1565 dasm_put(Dst, 10793, LJ_TISNUM, LJ_TISNUM);
1596 if (sse) { 1566 if (sse) {
1597 dasm_put(Dst, 11219); 1567 dasm_put(Dst, 10819);
1598 } else { 1568 } else {
1599 dasm_put(Dst, 11231); 1569 dasm_put(Dst, 10831);
1600 if (cmov) { 1570 if (cmov) {
1601 dasm_put(Dst, 11137); 1571 dasm_put(Dst, 10737);
1602 } else { 1572 } else {
1603 dasm_put(Dst, 11143); 1573 dasm_put(Dst, 10743);
1604 } 1574 }
1605 } 1575 }
1606 iseqne_fp: 1576 iseqne_fp:
1607 if (vk) { 1577 if (vk) {
1608 dasm_put(Dst, 11238); 1578 dasm_put(Dst, 10838);
1609 } else { 1579 } else {
1610 dasm_put(Dst, 11247); 1580 dasm_put(Dst, 10847);
1611 } 1581 }
1612 iseqne_end: 1582 iseqne_end:
1613 if (vk) { 1583 if (vk) {
1614 dasm_put(Dst, 11256, -BCBIAS_J*4); 1584 dasm_put(Dst, 10856, -BCBIAS_J*4);
1615 } else { 1585 } else {
1616 dasm_put(Dst, 11271, -BCBIAS_J*4); 1586 dasm_put(Dst, 10871, -BCBIAS_J*4);
1617 } 1587 }
1618 dasm_put(Dst, 8597); 1588 dasm_put(Dst, 8384);
1619 if (op == BC_ISEQV || op == BC_ISNEV) { 1589 if (op == BC_ISEQV || op == BC_ISNEV) {
1620 dasm_put(Dst, 11286, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1590 dasm_put(Dst, 10886, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1621 if (vk) { 1591 if (vk) {
1622 dasm_put(Dst, 11344); 1592 dasm_put(Dst, 10944);
1623 } else { 1593 } else {
1624 dasm_put(Dst, 11348); 1594 dasm_put(Dst, 10948);
1625 } 1595 }
1626 dasm_put(Dst, 11354); 1596 dasm_put(Dst, 10954);
1627 } 1597 }
1628 break; 1598 break;
1629 case BC_ISEQS: case BC_ISNES: 1599 case BC_ISEQS: case BC_ISNES:
1630 vk = op == BC_ISEQS; 1600 vk = op == BC_ISEQS;
1631 dasm_put(Dst, 11359, LJ_TSTR); 1601 dasm_put(Dst, 10959, LJ_TSTR);
1632 iseqne_test: 1602 iseqne_test:
1633 if (vk) { 1603 if (vk) {
1634 dasm_put(Dst, 11242); 1604 dasm_put(Dst, 10842);
1635 } else { 1605 } else {
1636 dasm_put(Dst, 10522); 1606 dasm_put(Dst, 2809);
1637 } 1607 }
1638 goto iseqne_end; 1608 goto iseqne_end;
1639 case BC_ISEQN: case BC_ISNEN: 1609 case BC_ISEQN: case BC_ISNEN:
1640 vk = op == BC_ISEQN; 1610 vk = op == BC_ISEQN;
1641 dasm_put(Dst, 11382, LJ_TISNUM); 1611 dasm_put(Dst, 10982, LJ_TISNUM);
1642 if (sse) { 1612 if (sse) {
1643 dasm_put(Dst, 11396); 1613 dasm_put(Dst, 10996);
1644 } else { 1614 } else {
1645 dasm_put(Dst, 11408); 1615 dasm_put(Dst, 11008);
1646 if (cmov) { 1616 if (cmov) {
1647 dasm_put(Dst, 11137); 1617 dasm_put(Dst, 10737);
1648 } else { 1618 } else {
1649 dasm_put(Dst, 11143); 1619 dasm_put(Dst, 10743);
1650 } 1620 }
1651 } 1621 }
1652 goto iseqne_fp; 1622 goto iseqne_fp;
1653 case BC_ISEQP: case BC_ISNEP: 1623 case BC_ISEQP: case BC_ISNEP:
1654 vk = op == BC_ISEQP; 1624 vk = op == BC_ISEQP;
1655 dasm_put(Dst, 11415); 1625 dasm_put(Dst, 11015);
1656 goto iseqne_test; 1626 goto iseqne_test;
1657 1627
1658 /* -- Unary test and copy ops ------------------------------------------- */ 1628 /* -- Unary test and copy ops ------------------------------------------- */
1659 1629
1660 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1630 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1661 dasm_put(Dst, 11426, LJ_TISTRUECOND); 1631 dasm_put(Dst, 11026, LJ_TISTRUECOND);
1662 if (op == BC_IST || op == BC_ISTC) { 1632 if (op == BC_IST || op == BC_ISTC) {
1663 dasm_put(Dst, 11438); 1633 dasm_put(Dst, 11038);
1664 } else { 1634 } else {
1665 dasm_put(Dst, 11443); 1635 dasm_put(Dst, 11043);
1666 } 1636 }
1667 if (op == BC_ISTC || op == BC_ISFC) { 1637 if (op == BC_ISTC || op == BC_ISFC) {
1668 dasm_put(Dst, 11448); 1638 dasm_put(Dst, 11048);
1669 } 1639 }
1670 dasm_put(Dst, 11459, -BCBIAS_J*4); 1640 dasm_put(Dst, 11059, -BCBIAS_J*4);
1671 break; 1641 break;
1672 1642
1673 /* -- Unary ops --------------------------------------------------------- */ 1643 /* -- Unary ops --------------------------------------------------------- */
1674 1644
1675 case BC_MOV: 1645 case BC_MOV:
1676 dasm_put(Dst, 11490); 1646 dasm_put(Dst, 11090);
1677 break; 1647 break;
1678 case BC_NOT: 1648 case BC_NOT:
1679 dasm_put(Dst, 11523, LJ_TISTRUECOND, LJ_TTRUE); 1649 dasm_put(Dst, 11123, LJ_TISTRUECOND, LJ_TTRUE);
1680 break; 1650 break;
1681 case BC_UNM: 1651 case BC_UNM:
1682 dasm_put(Dst, 11558, LJ_TISNUM); 1652 dasm_put(Dst, 11158, LJ_TISNUM);
1683 if (sse) { 1653 if (sse) {
1684 dasm_put(Dst, 11569); 1654 dasm_put(Dst, 11169);
1685 } else { 1655 } else {
1686 dasm_put(Dst, 11599); 1656 dasm_put(Dst, 11199);
1687 } 1657 }
1688 dasm_put(Dst, 8597); 1658 dasm_put(Dst, 8384);
1689 break; 1659 break;
1690 case BC_LEN: 1660 case BC_LEN:
1691 dasm_put(Dst, 11608, LJ_TSTR); 1661 dasm_put(Dst, 11208, LJ_TSTR);
1692 if (sse) { 1662 if (sse) {
1693 dasm_put(Dst, 11622, Dt5(->len)); 1663 dasm_put(Dst, 11222, Dt5(->len));
1694 } else { 1664 } else {
1695 dasm_put(Dst, 11640, Dt5(->len)); 1665 dasm_put(Dst, 11240, Dt5(->len));
1696 } 1666 }
1697 dasm_put(Dst, 11649, LJ_TTAB); 1667 dasm_put(Dst, 11249, LJ_TTAB);
1698 if (sse) { 1668 if (sse) {
1699 dasm_put(Dst, 11689); 1669 dasm_put(Dst, 11289);
1700 } else { 1670 } else {
1701 dasm_put(Dst, 11698); 1671 dasm_put(Dst, 11298);
1702 } 1672 }
1703 dasm_put(Dst, 11708); 1673 dasm_put(Dst, 11308);
1704 break; 1674 break;
1705 1675
1706 /* -- Binary ops -------------------------------------------------------- */ 1676 /* -- Binary ops -------------------------------------------------------- */
1707 1677
1708 1678
1709 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1679 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1710 dasm_put(Dst, 11718); 1680 dasm_put(Dst, 11318);
1711 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1681 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1712 switch (vk) { 1682 switch (vk) {
1713 case 0: 1683 case 0:
1714 dasm_put(Dst, 11726, LJ_TISNUM); 1684 dasm_put(Dst, 11326, LJ_TISNUM);
1715 if (sse) { 1685 if (sse) {
1716 dasm_put(Dst, 11738); 1686 dasm_put(Dst, 11338);
1717 } else { 1687 } else {
1718 dasm_put(Dst, 11752); 1688 dasm_put(Dst, 11352);
1719 } 1689 }
1720 break; 1690 break;
1721 case 1: 1691 case 1:
1722 dasm_put(Dst, 11760, LJ_TISNUM); 1692 dasm_put(Dst, 11360, LJ_TISNUM);
1723 if (sse) { 1693 if (sse) {
1724 dasm_put(Dst, 11772); 1694 dasm_put(Dst, 11372);
1725 } else { 1695 } else {
1726 dasm_put(Dst, 11786); 1696 dasm_put(Dst, 11386);
1727 } 1697 }
1728 break; 1698 break;
1729 default: 1699 default:
1730 dasm_put(Dst, 11794, LJ_TISNUM, LJ_TISNUM); 1700 dasm_put(Dst, 11394, LJ_TISNUM, LJ_TISNUM);
1731 if (sse) { 1701 if (sse) {
1732 dasm_put(Dst, 11816); 1702 dasm_put(Dst, 11416);
1733 } else { 1703 } else {
1734 dasm_put(Dst, 11830); 1704 dasm_put(Dst, 11430);
1735 } 1705 }
1736 break; 1706 break;
1737 } 1707 }
1738 if (sse) { 1708 if (sse) {
1739 dasm_put(Dst, 11592); 1709 dasm_put(Dst, 11192);
1740 } else { 1710 } else {
1741 dasm_put(Dst, 11604); 1711 dasm_put(Dst, 11204);
1742 } 1712 }
1743 dasm_put(Dst, 8597); 1713 dasm_put(Dst, 8384);
1744 break; 1714 break;
1745 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1715 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1746 dasm_put(Dst, 11718); 1716 dasm_put(Dst, 11318);
1747 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1717 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1748 switch (vk) { 1718 switch (vk) {
1749 case 0: 1719 case 0:
1750 dasm_put(Dst, 11726, LJ_TISNUM); 1720 dasm_put(Dst, 11326, LJ_TISNUM);
1751 if (sse) { 1721 if (sse) {
1752 dasm_put(Dst, 11838); 1722 dasm_put(Dst, 11438);
1753 } else { 1723 } else {
1754 dasm_put(Dst, 11852); 1724 dasm_put(Dst, 11452);
1755 } 1725 }
1756 break; 1726 break;
1757 case 1: 1727 case 1:
1758 dasm_put(Dst, 11760, LJ_TISNUM); 1728 dasm_put(Dst, 11360, LJ_TISNUM);
1759 if (sse) { 1729 if (sse) {
1760 dasm_put(Dst, 11860); 1730 dasm_put(Dst, 11460);
1761 } else { 1731 } else {
1762 dasm_put(Dst, 11874); 1732 dasm_put(Dst, 11474);
1763 } 1733 }
1764 break; 1734 break;
1765 default: 1735 default:
1766 dasm_put(Dst, 11794, LJ_TISNUM, LJ_TISNUM); 1736 dasm_put(Dst, 11394, LJ_TISNUM, LJ_TISNUM);
1767 if (sse) { 1737 if (sse) {
1768 dasm_put(Dst, 11882); 1738 dasm_put(Dst, 11482);
1769 } else { 1739 } else {
1770 dasm_put(Dst, 11896); 1740 dasm_put(Dst, 11496);
1771 } 1741 }
1772 break; 1742 break;
1773 } 1743 }
1774 if (sse) { 1744 if (sse) {
1775 dasm_put(Dst, 11592); 1745 dasm_put(Dst, 11192);
1776 } else { 1746 } else {
1777 dasm_put(Dst, 11604); 1747 dasm_put(Dst, 11204);
1778 } 1748 }
1779 dasm_put(Dst, 8597); 1749 dasm_put(Dst, 8384);
1780 break; 1750 break;
1781 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1751 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1782 dasm_put(Dst, 11718); 1752 dasm_put(Dst, 11318);
1783 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1753 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1784 switch (vk) { 1754 switch (vk) {
1785 case 0: 1755 case 0:
1786 dasm_put(Dst, 11726, LJ_TISNUM); 1756 dasm_put(Dst, 11326, LJ_TISNUM);
1787 if (sse) { 1757 if (sse) {
1788 dasm_put(Dst, 11904); 1758 dasm_put(Dst, 11504);
1789 } else { 1759 } else {
1790 dasm_put(Dst, 11918); 1760 dasm_put(Dst, 11518);
1791 } 1761 }
1792 break; 1762 break;
1793 case 1: 1763 case 1:
1794 dasm_put(Dst, 11760, LJ_TISNUM); 1764 dasm_put(Dst, 11360, LJ_TISNUM);
1795 if (sse) { 1765 if (sse) {
1796 dasm_put(Dst, 11926); 1766 dasm_put(Dst, 11526);
1797 } else { 1767 } else {
1798 dasm_put(Dst, 11940); 1768 dasm_put(Dst, 11540);
1799 } 1769 }
1800 break; 1770 break;
1801 default: 1771 default:
1802 dasm_put(Dst, 11794, LJ_TISNUM, LJ_TISNUM); 1772 dasm_put(Dst, 11394, LJ_TISNUM, LJ_TISNUM);
1803 if (sse) { 1773 if (sse) {
1804 dasm_put(Dst, 11948); 1774 dasm_put(Dst, 11548);
1805 } else { 1775 } else {
1806 dasm_put(Dst, 11962); 1776 dasm_put(Dst, 11562);
1807 } 1777 }
1808 break; 1778 break;
1809 } 1779 }
1810 if (sse) { 1780 if (sse) {
1811 dasm_put(Dst, 11592); 1781 dasm_put(Dst, 11192);
1812 } else { 1782 } else {
1813 dasm_put(Dst, 11604); 1783 dasm_put(Dst, 11204);
1814 } 1784 }
1815 dasm_put(Dst, 8597); 1785 dasm_put(Dst, 8384);
1816 break; 1786 break;
1817 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1787 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1818 dasm_put(Dst, 11718); 1788 dasm_put(Dst, 11318);
1819 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1789 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1820 switch (vk) { 1790 switch (vk) {
1821 case 0: 1791 case 0:
1822 dasm_put(Dst, 11726, LJ_TISNUM); 1792 dasm_put(Dst, 11326, LJ_TISNUM);
1823 if (sse) { 1793 if (sse) {
1824 dasm_put(Dst, 11970); 1794 dasm_put(Dst, 11570);
1825 } else { 1795 } else {
1826 dasm_put(Dst, 11984); 1796 dasm_put(Dst, 11584);
1827 } 1797 }
1828 break; 1798 break;
1829 case 1: 1799 case 1:
1830 dasm_put(Dst, 11760, LJ_TISNUM); 1800 dasm_put(Dst, 11360, LJ_TISNUM);
1831 if (sse) { 1801 if (sse) {
1832 dasm_put(Dst, 11992); 1802 dasm_put(Dst, 11592);
1833 } else { 1803 } else {
1834 dasm_put(Dst, 12006); 1804 dasm_put(Dst, 11606);
1835 } 1805 }
1836 break; 1806 break;
1837 default: 1807 default:
1838 dasm_put(Dst, 11794, LJ_TISNUM, LJ_TISNUM); 1808 dasm_put(Dst, 11394, LJ_TISNUM, LJ_TISNUM);
1839 if (sse) { 1809 if (sse) {
1840 dasm_put(Dst, 12014); 1810 dasm_put(Dst, 11614);
1841 } else { 1811 } else {
1842 dasm_put(Dst, 12028); 1812 dasm_put(Dst, 11628);
1843 } 1813 }
1844 break; 1814 break;
1845 } 1815 }
1846 if (sse) { 1816 if (sse) {
1847 dasm_put(Dst, 11592); 1817 dasm_put(Dst, 11192);
1848 } else { 1818 } else {
1849 dasm_put(Dst, 11604); 1819 dasm_put(Dst, 11204);
1850 } 1820 }
1851 dasm_put(Dst, 8597); 1821 dasm_put(Dst, 8384);
1852 break; 1822 break;
1853 case BC_MODVN: 1823 case BC_MODVN:
1854 dasm_put(Dst, 11718); 1824 dasm_put(Dst, 11318);
1855 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1825 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1856 switch (vk) { 1826 switch (vk) {
1857 case 0: 1827 case 0:
1858 dasm_put(Dst, 11726, LJ_TISNUM); 1828 dasm_put(Dst, 11326, LJ_TISNUM);
1859 if (sse) { 1829 if (sse) {
1860 dasm_put(Dst, 12036); 1830 dasm_put(Dst, 11636);
1861 } else { 1831 } else {
1862 dasm_put(Dst, 12050); 1832 dasm_put(Dst, 11650);
1863 } 1833 }
1864 break; 1834 break;
1865 case 1: 1835 case 1:
1866 dasm_put(Dst, 11760, LJ_TISNUM); 1836 dasm_put(Dst, 11360, LJ_TISNUM);
1867 if (sse) { 1837 if (sse) {
1868 dasm_put(Dst, 12058); 1838 dasm_put(Dst, 11658);
1869 } else { 1839 } else {
1870 dasm_put(Dst, 12072); 1840 dasm_put(Dst, 11672);
1871 } 1841 }
1872 break; 1842 break;
1873 default: 1843 default:
1874 dasm_put(Dst, 11794, LJ_TISNUM, LJ_TISNUM); 1844 dasm_put(Dst, 11394, LJ_TISNUM, LJ_TISNUM);
1875 if (sse) { 1845 if (sse) {
1876 dasm_put(Dst, 12080); 1846 dasm_put(Dst, 11680);
1877 } else { 1847 } else {
1878 dasm_put(Dst, 12094); 1848 dasm_put(Dst, 11694);
1879 } 1849 }
1880 break; 1850 break;
1881 } 1851 }
1882 dasm_put(Dst, 12102); 1852 dasm_put(Dst, 11702);
1883 if (sse) { 1853 if (sse) {
1884 dasm_put(Dst, 11592); 1854 dasm_put(Dst, 11192);
1885 } else { 1855 } else {
1886 dasm_put(Dst, 11604); 1856 dasm_put(Dst, 11204);
1887 } 1857 }
1888 dasm_put(Dst, 8597); 1858 dasm_put(Dst, 8384);
1889 break; 1859 break;
1890 case BC_MODNV: case BC_MODVV: 1860 case BC_MODNV: case BC_MODVV:
1891 dasm_put(Dst, 11718); 1861 dasm_put(Dst, 11318);
1892 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1862 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1893 switch (vk) { 1863 switch (vk) {
1894 case 0: 1864 case 0:
1895 dasm_put(Dst, 11726, LJ_TISNUM); 1865 dasm_put(Dst, 11326, LJ_TISNUM);
1896 if (sse) { 1866 if (sse) {
1897 dasm_put(Dst, 12036); 1867 dasm_put(Dst, 11636);
1898 } else { 1868 } else {
1899 dasm_put(Dst, 12050); 1869 dasm_put(Dst, 11650);
1900 } 1870 }
1901 break; 1871 break;
1902 case 1: 1872 case 1:
1903 dasm_put(Dst, 11760, LJ_TISNUM); 1873 dasm_put(Dst, 11360, LJ_TISNUM);
1904 if (sse) { 1874 if (sse) {
1905 dasm_put(Dst, 12058); 1875 dasm_put(Dst, 11658);
1906 } else { 1876 } else {
1907 dasm_put(Dst, 12072); 1877 dasm_put(Dst, 11672);
1908 } 1878 }
1909 break; 1879 break;
1910 default: 1880 default:
1911 dasm_put(Dst, 11794, LJ_TISNUM, LJ_TISNUM); 1881 dasm_put(Dst, 11394, LJ_TISNUM, LJ_TISNUM);
1912 if (sse) { 1882 if (sse) {
1913 dasm_put(Dst, 12080); 1883 dasm_put(Dst, 11680);
1914 } else { 1884 } else {
1915 dasm_put(Dst, 12094); 1885 dasm_put(Dst, 11694);
1916 } 1886 }
1917 break; 1887 break;
1918 } 1888 }
1919 dasm_put(Dst, 12108); 1889 dasm_put(Dst, 11708);
1920 break; 1890 break;
1921 case BC_POW: 1891 case BC_POW:
1922 dasm_put(Dst, 11718); 1892 dasm_put(Dst, 11318);
1923 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1893 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1924 switch (vk) { 1894 switch (vk) {
1925 case 0: 1895 case 0:
1926 dasm_put(Dst, 11726, LJ_TISNUM); 1896 dasm_put(Dst, 11326, LJ_TISNUM);
1927 if (sse) { 1897 if (sse) {
1928 dasm_put(Dst, 12036); 1898 dasm_put(Dst, 11636);
1929 } else { 1899 } else {
1930 dasm_put(Dst, 12050); 1900 dasm_put(Dst, 11650);
1931 } 1901 }
1932 break; 1902 break;
1933 case 1: 1903 case 1:
1934 dasm_put(Dst, 11760, LJ_TISNUM); 1904 dasm_put(Dst, 11360, LJ_TISNUM);
1935 if (sse) { 1905 if (sse) {
1936 dasm_put(Dst, 12058); 1906 dasm_put(Dst, 11658);
1937 } else { 1907 } else {
1938 dasm_put(Dst, 12072); 1908 dasm_put(Dst, 11672);
1939 } 1909 }
1940 break; 1910 break;
1941 default: 1911 default:
1942 dasm_put(Dst, 11794, LJ_TISNUM, LJ_TISNUM); 1912 dasm_put(Dst, 11394, LJ_TISNUM, LJ_TISNUM);
1943 if (sse) { 1913 if (sse) {
1944 dasm_put(Dst, 12080); 1914 dasm_put(Dst, 11680);
1945 } else { 1915 } else {
1946 dasm_put(Dst, 12094); 1916 dasm_put(Dst, 11694);
1947 } 1917 }
1948 break; 1918 break;
1949 } 1919 }
1950 dasm_put(Dst, 12113); 1920 dasm_put(Dst, 11713);
1951 if (sse) { 1921 if (sse) {
1952 dasm_put(Dst, 11592); 1922 dasm_put(Dst, 11192);
1953 } else { 1923 } else {
1954 dasm_put(Dst, 11604); 1924 dasm_put(Dst, 11204);
1955 } 1925 }
1956 dasm_put(Dst, 8597); 1926 dasm_put(Dst, 8384);
1957 break; 1927 break;
1958 1928
1959 case BC_CAT: 1929 case BC_CAT:
1960 dasm_put(Dst, 12117, Dt1(->base), Dt1(->base)); 1930 dasm_put(Dst, 11717, Dt1(->base), Dt1(->base));
1961 break; 1931 break;
1962 1932
1963 /* -- Constant ops ------------------------------------------------------ */ 1933 /* -- Constant ops ------------------------------------------------------ */
1964 1934
1965 case BC_KSTR: 1935 case BC_KSTR:
1966 dasm_put(Dst, 12211, LJ_TSTR); 1936 dasm_put(Dst, 11811, LJ_TSTR);
1967 break; 1937 break;
1968 case BC_KSHORT: 1938 case BC_KSHORT:
1969 if (sse) { 1939 if (sse) {
1970 dasm_put(Dst, 12244); 1940 dasm_put(Dst, 11844);
1971 } else { 1941 } else {
1972 dasm_put(Dst, 12259); 1942 dasm_put(Dst, 11859);
1973 } 1943 }
1974 dasm_put(Dst, 8597); 1944 dasm_put(Dst, 8384);
1975 break; 1945 break;
1976 case BC_KNUM: 1946 case BC_KNUM:
1977 if (sse) { 1947 if (sse) {
1978 dasm_put(Dst, 12267); 1948 dasm_put(Dst, 11867);
1979 } else { 1949 } else {
1980 dasm_put(Dst, 12280); 1950 dasm_put(Dst, 11880);
1981 } 1951 }
1982 dasm_put(Dst, 8597); 1952 dasm_put(Dst, 8384);
1983 break; 1953 break;
1984 case BC_KPRI: 1954 case BC_KPRI:
1985 dasm_put(Dst, 12287); 1955 dasm_put(Dst, 11887);
1986 break; 1956 break;
1987 case BC_KNIL: 1957 case BC_KNIL:
1988 dasm_put(Dst, 12313, LJ_TNIL); 1958 dasm_put(Dst, 11913, LJ_TNIL);
1989 break; 1959 break;
1990 1960
1991 /* -- Upvalue and function ops ------------------------------------------ */ 1961 /* -- Upvalue and function ops ------------------------------------------ */
1992 1962
1993 case BC_UGET: 1963 case BC_UGET:
1994 dasm_put(Dst, 12359, offsetof(GCfuncL, uvptr), DtA(->v)); 1964 dasm_put(Dst, 11959, offsetof(GCfuncL, uvptr), DtA(->v));
1995 break; 1965 break;
1996 case BC_USETV: 1966 case BC_USETV:
1997#define TV2MARKOFS \ 1967#define TV2MARKOFS \
1998 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1968 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1999 dasm_put(Dst, 12403, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G); 1969 dasm_put(Dst, 12003, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G);
2000 dasm_put(Dst, 12493); 1970 dasm_put(Dst, 12093);
2001 break; 1971 break;
2002#undef TV2MARKOFS 1972#undef TV2MARKOFS
2003 case BC_USETS: 1973 case BC_USETS:
2004 dasm_put(Dst, 12505, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1974 dasm_put(Dst, 12105, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
2005 break; 1975 break;
2006 case BC_USETN: 1976 case BC_USETN:
2007 dasm_put(Dst, 12596); 1977 dasm_put(Dst, 12196);
2008 if (sse) { 1978 if (sse) {
2009 dasm_put(Dst, 12601); 1979 dasm_put(Dst, 12201);
2010 } else { 1980 } else {
2011 dasm_put(Dst, 11411); 1981 dasm_put(Dst, 11011);
2012 } 1982 }
2013 dasm_put(Dst, 12608, offsetof(GCfuncL, uvptr), DtA(->v)); 1983 dasm_put(Dst, 12208, offsetof(GCfuncL, uvptr), DtA(->v));
2014 if (sse) { 1984 if (sse) {
2015 dasm_put(Dst, 4972); 1985 dasm_put(Dst, 12217);
2016 } else { 1986 } else {
2017 dasm_put(Dst, 4978); 1987 dasm_put(Dst, 12223);
2018 } 1988 }
2019 dasm_put(Dst, 8597); 1989 dasm_put(Dst, 8384);
2020 break; 1990 break;
2021 case BC_USETP: 1991 case BC_USETP:
2022 dasm_put(Dst, 12617, offsetof(GCfuncL, uvptr), DtA(->v)); 1992 dasm_put(Dst, 12226, offsetof(GCfuncL, uvptr), DtA(->v));
2023 break; 1993 break;
2024 case BC_UCLO: 1994 case BC_UCLO:
2025 dasm_put(Dst, 12654, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1995 dasm_put(Dst, 12263, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2026 break; 1996 break;
2027 1997
2028 case BC_FNEW: 1998 case BC_FNEW:
2029 dasm_put(Dst, 12708, Dt1(->base), Dt1(->base), LJ_TFUNC); 1999 dasm_put(Dst, 12317, Dt1(->base), Dt1(->base), LJ_TFUNC);
2030 break; 2000 break;
2031 2001
2032 /* -- Table ops --------------------------------------------------------- */ 2002 /* -- Table ops --------------------------------------------------------- */
2033 2003
2034 case BC_TNEW: 2004 case BC_TNEW:
2035 dasm_put(Dst, 12779, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2005 dasm_put(Dst, 12388, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2036 break; 2006 break;
2037 case BC_TDUP: 2007 case BC_TDUP:
2038 dasm_put(Dst, 12900, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2008 dasm_put(Dst, 12509, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2039 break; 2009 break;
2040 2010
2041 case BC_GGET: 2011 case BC_GGET:
2042 dasm_put(Dst, 12992, Dt7(->env)); 2012 dasm_put(Dst, 12601, Dt7(->env));
2043 break; 2013 break;
2044 case BC_GSET: 2014 case BC_GSET:
2045 dasm_put(Dst, 13010, Dt7(->env)); 2015 dasm_put(Dst, 12619, Dt7(->env));
2046 break; 2016 break;
2047 2017
2048 case BC_TGETV: 2018 case BC_TGETV:
2049 dasm_put(Dst, 13028, LJ_TTAB, LJ_TISNUM); 2019 dasm_put(Dst, 12637, LJ_TTAB, LJ_TISNUM);
2050 if (sse) { 2020 if (sse) {
2051 dasm_put(Dst, 13061); 2021 dasm_put(Dst, 12670);
2052 } else { 2022 } else {
2053 dasm_put(Dst, 13082); 2023 dasm_put(Dst, 12691);
2054 if (cmov) { 2024 if (cmov) {
2055 dasm_put(Dst, 11137); 2025 dasm_put(Dst, 10737);
2056 } else { 2026 } else {
2057 dasm_put(Dst, 11143); 2027 dasm_put(Dst, 10743);
2058 } 2028 }
2059 dasm_put(Dst, 2863); 2029 dasm_put(Dst, 2522);
2060 } 2030 }
2061 dasm_put(Dst, 13092, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2031 dasm_put(Dst, 12701, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2062 dasm_put(Dst, 13184, LJ_TSTR); 2032 dasm_put(Dst, 12793, LJ_TSTR);
2063 break; 2033 break;
2064 case BC_TGETS: 2034 case BC_TGETS:
2065 dasm_put(Dst, 13202, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2035 dasm_put(Dst, 12811, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2066 dasm_put(Dst, 13286, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2036 dasm_put(Dst, 12895, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2067 break; 2037 break;
2068 case BC_TGETB: 2038 case BC_TGETB:
2069 dasm_put(Dst, 13357, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2039 dasm_put(Dst, 12966, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2070 dasm_put(Dst, 11708); 2040 dasm_put(Dst, 11308);
2071 break; 2041 break;
2072 2042
2073 case BC_TSETV: 2043 case BC_TSETV:
2074 dasm_put(Dst, 13456, LJ_TTAB, LJ_TISNUM); 2044 dasm_put(Dst, 13065, LJ_TTAB, LJ_TISNUM);
2075 if (sse) { 2045 if (sse) {
2076 dasm_put(Dst, 13061); 2046 dasm_put(Dst, 12670);
2077 } else { 2047 } else {
2078 dasm_put(Dst, 13082); 2048 dasm_put(Dst, 12691);
2079 if (cmov) { 2049 if (cmov) {
2080 dasm_put(Dst, 11137); 2050 dasm_put(Dst, 10737);
2081 } else { 2051 } else {
2082 dasm_put(Dst, 11143); 2052 dasm_put(Dst, 10743);
2083 } 2053 }
2084 dasm_put(Dst, 2863); 2054 dasm_put(Dst, 2522);
2085 } 2055 }
2086 dasm_put(Dst, 13489, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 2056 dasm_put(Dst, 13098, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
2087 dasm_put(Dst, 13572, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2057 dasm_put(Dst, 13181, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2088 break; 2058 break;
2089 case BC_TSETS: 2059 case BC_TSETS:
2090 dasm_put(Dst, 13634, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2060 dasm_put(Dst, 13243, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2091 dasm_put(Dst, 13709, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2061 dasm_put(Dst, 13318, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2092 dasm_put(Dst, 13801, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2062 dasm_put(Dst, 13410, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2093 break; 2063 break;
2094 case BC_TSETB: 2064 case BC_TSETB:
2095 dasm_put(Dst, 13897, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2065 dasm_put(Dst, 13506, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2096 dasm_put(Dst, 13995, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2066 dasm_put(Dst, 13604, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2097 break; 2067 break;
2098 2068
2099 case BC_TSETM: 2069 case BC_TSETM:
2100 dasm_put(Dst, 14041); 2070 dasm_put(Dst, 13650);
2101 if (sse) { 2071 if (sse) {
2102 dasm_put(Dst, 12601); 2072 dasm_put(Dst, 12201);
2103 } else { 2073 } else {
2104 dasm_put(Dst, 14046); 2074 dasm_put(Dst, 13655);
2105 } 2075 }
2106 dasm_put(Dst, 14054, Dt6(->marked), LJ_GC_BLACK); 2076 dasm_put(Dst, 13663, Dt6(->marked), LJ_GC_BLACK);
2107 if (sse) { 2077 if (sse) {
2108 dasm_put(Dst, 14079); 2078 dasm_put(Dst, 13688);
2109 } else { 2079 } else {
2110 dasm_put(Dst, 14086); 2080 dasm_put(Dst, 13695);
2111 } 2081 }
2112 dasm_put(Dst, 14091, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain)); 2082 dasm_put(Dst, 13700, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain));
2113 dasm_put(Dst, 14219, Dt6(->gclist)); 2083 dasm_put(Dst, 13828, Dt6(->gclist));
2114 break; 2084 break;
2115 2085
2116 /* -- Calls and vararg handling ----------------------------------------- */ 2086 /* -- Calls and vararg handling ----------------------------------------- */
2117 2087
2118 case BC_CALL: case BC_CALLM: 2088 case BC_CALL: case BC_CALLM:
2119 dasm_put(Dst, 11722); 2089 dasm_put(Dst, 11322);
2120 if (op == BC_CALLM) { 2090 if (op == BC_CALLM) {
2121 dasm_put(Dst, 14227); 2091 dasm_put(Dst, 13836);
2122 } 2092 }
2123 dasm_put(Dst, 14232, LJ_TFUNC, Dt7(->gate)); 2093 dasm_put(Dst, 13841, LJ_TFUNC, Dt7(->pc));
2124 break; 2094 break;
2125 2095
2126 case BC_CALLMT: 2096 case BC_CALLMT:
2127 dasm_put(Dst, 14227); 2097 dasm_put(Dst, 13836);
2128 break; 2098 break;
2129 case BC_CALLT: 2099 case BC_CALLT:
2130 dasm_put(Dst, 14255, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->gate)); 2100 dasm_put(Dst, 13882, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2131 dasm_put(Dst, 14360, FRAME_TYPE, Dt7(->pc), PC2PROTO(k)); 2101 dasm_put(Dst, 14000, FRAME_TYPE, Dt7(->pc), PC2PROTO(k));
2132 break; 2102 break;
2133 2103
2134 case BC_ITERC: 2104 case BC_ITERC:
2135 dasm_put(Dst, 14417, LJ_TFUNC, Dt7(->gate)); 2105 dasm_put(Dst, 14057, LJ_TFUNC, 2+1, Dt7(->pc));
2136 break; 2106 break;
2137 2107
2138 case BC_VARG: 2108 case BC_VARG:
2139 dasm_put(Dst, 14479, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL); 2109 dasm_put(Dst, 14137, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
2140 dasm_put(Dst, 14623, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2110 dasm_put(Dst, 14281, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2141 break; 2111 break;
2142 2112
2143 /* -- Returns ----------------------------------------------------------- */ 2113 /* -- Returns ----------------------------------------------------------- */
2144 2114
2145 case BC_RETM: 2115 case BC_RETM:
2146 dasm_put(Dst, 14227); 2116 dasm_put(Dst, 13836);
2147 break; 2117 break;
2148 2118
2149 case BC_RET: case BC_RET0: case BC_RET1: 2119 case BC_RET: case BC_RET0: case BC_RET1:
2150 if (op != BC_RET0) { 2120 if (op != BC_RET0) {
2151 dasm_put(Dst, 14722); 2121 dasm_put(Dst, 14380);
2152 } 2122 }
2153 dasm_put(Dst, 14726, FRAME_TYPE); 2123 dasm_put(Dst, 14384, FRAME_TYPE);
2154 switch (op) { 2124 switch (op) {
2155 case BC_RET: 2125 case BC_RET:
2156 dasm_put(Dst, 14745); 2126 dasm_put(Dst, 14403);
2157 break; 2127 break;
2158 case BC_RET1: 2128 case BC_RET1:
2159 dasm_put(Dst, 14803); 2129 dasm_put(Dst, 14461);
2160 /* fallthrough */ 2130 /* fallthrough */
2161 case BC_RET0: 2131 case BC_RET0:
2162 dasm_put(Dst, 14819); 2132 dasm_put(Dst, 14477);
2163 default: 2133 default:
2164 break; 2134 break;
2165 } 2135 }
2166 dasm_put(Dst, 14830, Dt7(->pc), PC2PROTO(k)); 2136 dasm_put(Dst, 14488, Dt7(->pc), PC2PROTO(k));
2167 if (op == BC_RET) { 2137 if (op == BC_RET) {
2168 dasm_put(Dst, 14872, LJ_TNIL); 2138 dasm_put(Dst, 14530, LJ_TNIL);
2169 } else { 2139 } else {
2170 dasm_put(Dst, 14881, LJ_TNIL); 2140 dasm_put(Dst, 14539, LJ_TNIL);
2171 } 2141 }
2172 dasm_put(Dst, 14888); 2142 dasm_put(Dst, 14546);
2173 if (op != BC_RET0) { 2143 if (op != BC_RET0) {
2174 dasm_put(Dst, 14909); 2144 dasm_put(Dst, 14567);
2175 } 2145 }
2176 dasm_put(Dst, 5068); 2146 dasm_put(Dst, 4678);
2177 break; 2147 break;
2178 2148
2179 /* -- Loops and branches ------------------------------------------------ */ 2149 /* -- Loops and branches ------------------------------------------------ */
@@ -2181,7 +2151,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2181 2151
2182 case BC_FORL: 2152 case BC_FORL:
2183#if LJ_HASJIT 2153#if LJ_HASJIT
2184 dasm_put(Dst, 14913, HOTCOUNT_PCMASK, GG_DISP2HOT); 2154 dasm_put(Dst, 14571, HOTCOUNT_PCMASK, GG_DISP2HOT);
2185#endif 2155#endif
2186 break; 2156 break;
2187 2157
@@ -2193,57 +2163,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2193 case BC_FORI: 2163 case BC_FORI:
2194 case BC_IFORL: 2164 case BC_IFORL:
2195 vk = (op == BC_IFORL || op == BC_JFORL); 2165 vk = (op == BC_IFORL || op == BC_JFORL);
2196 dasm_put(Dst, 14934); 2166 dasm_put(Dst, 14592);
2197 if (!vk) { 2167 if (!vk) {
2198 dasm_put(Dst, 14938, LJ_TISNUM, LJ_TISNUM); 2168 dasm_put(Dst, 14596, LJ_TISNUM, LJ_TISNUM);
2199 } 2169 }
2200 dasm_put(Dst, 14957); 2170 dasm_put(Dst, 14615);
2201 if (!vk) { 2171 if (!vk) {
2202 dasm_put(Dst, 14961, LJ_TISNUM); 2172 dasm_put(Dst, 14619, LJ_TISNUM);
2203 } 2173 }
2204 if (sse) { 2174 if (sse) {
2205 dasm_put(Dst, 14970); 2175 dasm_put(Dst, 14628);
2206 if (vk) { 2176 if (vk) {
2207 dasm_put(Dst, 14982); 2177 dasm_put(Dst, 14640);
2208 } else { 2178 } else {
2209 dasm_put(Dst, 15001); 2179 dasm_put(Dst, 14659);
2210 } 2180 }
2211 dasm_put(Dst, 15006); 2181 dasm_put(Dst, 14664);
2212 } else { 2182 } else {
2213 dasm_put(Dst, 15019); 2183 dasm_put(Dst, 14677);
2214 if (vk) { 2184 if (vk) {
2215 dasm_put(Dst, 15025); 2185 dasm_put(Dst, 14683);
2216 } else { 2186 } else {
2217 dasm_put(Dst, 15041); 2187 dasm_put(Dst, 14699);
2218 } 2188 }
2219 dasm_put(Dst, 15049); 2189 dasm_put(Dst, 14707);
2220 if (cmov) { 2190 if (cmov) {
2221 dasm_put(Dst, 11137); 2191 dasm_put(Dst, 10737);
2222 } else { 2192 } else {
2223 dasm_put(Dst, 11143); 2193 dasm_put(Dst, 10743);
2224 } 2194 }
2225 if (!cmov) { 2195 if (!cmov) {
2226 dasm_put(Dst, 15054); 2196 dasm_put(Dst, 14712);
2227 } 2197 }
2228 } 2198 }
2229 if (op == BC_FORI) { 2199 if (op == BC_FORI) {
2230 dasm_put(Dst, 15060, -BCBIAS_J*4); 2200 dasm_put(Dst, 14718, -BCBIAS_J*4);
2231 } else if (op == BC_JFORI) { 2201 } else if (op == BC_JFORI) {
2232 dasm_put(Dst, 15070, -BCBIAS_J*4, BC_JLOOP); 2202 dasm_put(Dst, 14728, -BCBIAS_J*4, BC_JLOOP);
2233 } else if (op == BC_IFORL) { 2203 } else if (op == BC_IFORL) {
2234 dasm_put(Dst, 15084, -BCBIAS_J*4); 2204 dasm_put(Dst, 14742, -BCBIAS_J*4);
2235 } else { 2205 } else {
2236 dasm_put(Dst, 15080, BC_JLOOP); 2206 dasm_put(Dst, 14738, BC_JLOOP);
2237 } 2207 }
2238 dasm_put(Dst, 11172); 2208 dasm_put(Dst, 10772);
2239 if (sse) { 2209 if (sse) {
2240 dasm_put(Dst, 15094); 2210 dasm_put(Dst, 14752);
2241 } 2211 }
2242 break; 2212 break;
2243 2213
2244 case BC_ITERL: 2214 case BC_ITERL:
2245#if LJ_HASJIT 2215#if LJ_HASJIT
2246 dasm_put(Dst, 14913, HOTCOUNT_PCMASK, GG_DISP2HOT); 2216 dasm_put(Dst, 14571, HOTCOUNT_PCMASK, GG_DISP2HOT);
2247#endif 2217#endif
2248 break; 2218 break;
2249 2219
@@ -2252,33 +2222,96 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2252 break; 2222 break;
2253#endif 2223#endif
2254 case BC_IITERL: 2224 case BC_IITERL:
2255 dasm_put(Dst, 15105, LJ_TNIL); 2225 dasm_put(Dst, 14763, LJ_TNIL);
2256 if (op == BC_JITERL) { 2226 if (op == BC_JITERL) {
2257 dasm_put(Dst, 15120, BC_JLOOP); 2227 dasm_put(Dst, 14778, BC_JLOOP);
2258 } else { 2228 } else {
2259 dasm_put(Dst, 15134, -BCBIAS_J*4); 2229 dasm_put(Dst, 14792, -BCBIAS_J*4);
2260 } 2230 }
2261 dasm_put(Dst, 11469); 2231 dasm_put(Dst, 11069);
2262 break; 2232 break;
2263 2233
2264 case BC_LOOP: 2234 case BC_LOOP:
2265#if LJ_HASJIT 2235#if LJ_HASJIT
2266 dasm_put(Dst, 14913, HOTCOUNT_PCMASK, GG_DISP2HOT); 2236 dasm_put(Dst, 14571, HOTCOUNT_PCMASK, GG_DISP2HOT);
2267#endif 2237#endif
2268 break; 2238 break;
2269 2239
2270 case BC_ILOOP: 2240 case BC_ILOOP:
2271 dasm_put(Dst, 8597); 2241 dasm_put(Dst, 8384);
2272 break; 2242 break;
2273 2243
2274 case BC_JLOOP: 2244 case BC_JLOOP:
2275#if LJ_HASJIT 2245#if LJ_HASJIT
2276 dasm_put(Dst, 15150, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2246 dasm_put(Dst, 14808, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2277#endif 2247#endif
2278 break; 2248 break;
2279 2249
2280 case BC_JMP: 2250 case BC_JMP:
2281 dasm_put(Dst, 15173, -BCBIAS_J*4); 2251 dasm_put(Dst, 14831, -BCBIAS_J*4);
2252 break;
2253
2254 /* -- Function headers -------------------------------------------------- */
2255
2256 /*
2257 ** Reminder: A function may be called with func/args above L->maxstack,
2258 ** i.e. occupying EXTRA_STACK slots. And vmeta_call may add one extra slot,
2259 ** too. This means all FUNC* ops (including fast functions) must check
2260 ** for stack overflow _before_ adding more slots!
2261 */
2262
2263 case BC_FUNCF:
2264#if LJ_HASJIT
2265#endif
2266 case BC_FUNCV: /* NYI: compiled vararg functions. */
2267 break;
2268
2269 case BC_JFUNCF:
2270#if !LJ_HASJIT
2271 break;
2272#endif
2273 case BC_IFUNCF:
2274 dasm_put(Dst, 14855, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2275 if (op == BC_JFUNCF) {
2276 dasm_put(Dst, 14885, BC_JLOOP);
2277 } else {
2278 dasm_put(Dst, 8384);
2279 }
2280 dasm_put(Dst, 14894, LJ_TNIL);
2281 break;
2282
2283 case BC_JFUNCV:
2284#if !LJ_HASJIT
2285 break;
2286#endif
2287 dasm_put(Dst, 10435);
2288 break; /* NYI: compiled vararg functions. */
2289
2290 case BC_IFUNCV:
2291 dasm_put(Dst, 14916, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2292 if (op == BC_JFUNCV) {
2293 dasm_put(Dst, 14885, BC_JLOOP);
2294 } else {
2295 dasm_put(Dst, 15007, -4+PC2PROTO(k));
2296 }
2297 dasm_put(Dst, 15029, LJ_TNIL);
2298 break;
2299
2300 case BC_FUNCC:
2301 case BC_FUNCCW:
2302 dasm_put(Dst, 15051, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2303 if (op == BC_FUNCC) {
2304 dasm_put(Dst, 15080);
2305 } else {
2306 dasm_put(Dst, 15084);
2307 }
2308 dasm_put(Dst, 15092, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2309 if (op == BC_FUNCC) {
2310 dasm_put(Dst, 15101);
2311 } else {
2312 dasm_put(Dst, 15105, DISPATCH_GL(wrapf));
2313 }
2314 dasm_put(Dst, 15110, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2282 break; 2315 break;
2283 2316
2284 /* ---------------------------------------------------------------------- */ 2317 /* ---------------------------------------------------------------------- */
@@ -2306,7 +2339,7 @@ static int build_backend(BuildCtx *ctx)
2306 2339
2307 build_subroutines(ctx, cmov, sse); 2340 build_subroutines(ctx, cmov, sse);
2308 2341
2309 dasm_put(Dst, 15197); 2342 dasm_put(Dst, 15135);
2310 for (op = 0; op < BC__MAX; op++) 2343 for (op = 0; op < BC__MAX; op++)
2311 build_ins(ctx, (BCOp)op, op, cmov, sse); 2344 build_ins(ctx, (BCOp)op, op, cmov, sse);
2312 2345