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.h3201
1 files changed, 1938 insertions, 1263 deletions
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h
index 4e687076..75627697 100644
--- a/src/buildvm_x86.h
+++ b/src/buildvm_x86.h
@@ -12,7 +12,7 @@
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[15851] = { 15static const unsigned char build_actionlist[16902] = {
16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141, 16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141,
17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36, 17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,
18 20,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,15, 18 20,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,15,
@@ -54,601 +54,643 @@ static const unsigned char build_actionlist[15851] = {
54 132,244,32,252,247,217,193,252,233,3,137,76,36,8,139,72,4,139,0,137,77,4, 54 132,244,32,252,247,217,193,252,233,3,137,76,36,8,139,72,4,139,0,137,77,4,
55 137,69,0,137,108,36,4,252,233,244,33,248,34,137,68,36,16,199,68,36,20,237, 55 137,69,0,137,108,36,4,252,233,244,33,248,34,137,68,36,16,199,68,36,20,237,
56 141,68,36,16,128,126,252,252,235,15,133,244,247,141,139,233,137,41,199,65, 56 141,68,36,16,128,126,252,252,235,15,133,244,247,141,139,233,137,41,199,65,
57 4,237,137,205,252,233,244,248,248,35,15,182,70,252,254,255,252,242,15,42, 57 4,237,137,205,252,233,244,248,248,35,15,182,70,252,254,255,199,68,36,20,237,
58 192,252,242,15,17,68,36,16,255,137,68,36,12,219,68,36,12,221,92,36,16,255, 58 137,68,36,16,255,252,242,15,42,192,252,242,15,17,68,36,16,255,137,68,36,12,
59 141,68,36,16,252,233,244,247,248,36,15,182,70,252,254,141,4,194,248,1,15, 59 219,68,36,12,221,92,36,16,255,141,68,36,16,252,233,244,247,248,36,15,182,
60 182,110,252,255,141,44,252,234,248,2,137,108,36,4,139,108,36,48,137,68,36, 60 70,252,254,141,4,194,248,1,15,182,110,252,255,141,44,252,234,248,2,137,108,
61 8,137,44,36,137,149,233,137,116,36,24,232,251,1,1,139,149,233,133,192,15, 61 36,4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137,116,36,24,232,251,
62 132,244,249,248,32,15,182,78,252,253,139,104,4,139,0,137,108,202,4,137,4, 62 1,1,139,149,233,133,192,15,132,244,249,248,32,15,182,78,252,253,139,104,4,
63 202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3, 63 139,0,137,108,202,4,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,
64 139,141,233,137,113,252,244,141,177,233,41,214,139,105,252,248,184,237,252, 64 16,252,255,36,171,248,3,139,141,233,137,113,252,244,141,177,233,41,214,139,
65 233,244,29,248,37,137,68,36,16,199,68,36,20,237,141,68,36,16,128,126,252, 65 105,252,248,184,237,252,233,244,29,248,37,137,68,36,16,199,68,36,20,237,141,
66 252,235,15,133,244,247,255,141,139,233,137,41,199,65,4,237,137,205,252,233, 66 68,36,16,128,126,252,252,235,15,133,244,247,255,141,139,233,137,41,199,65,
67 244,248,248,38,15,182,70,252,254,255,141,68,36,16,252,233,244,247,248,39, 67 4,237,137,205,252,233,244,248,248,38,15,182,70,252,254,255,141,68,36,16,252,
68 15,182,70,252,254,141,4,194,248,1,15,182,110,252,255,141,44,252,234,248,2, 68 233,244,247,248,39,15,182,70,252,254,141,4,194,248,1,15,182,110,252,255,141,
69 137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137,116,36,24, 69 44,252,234,248,2,137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,149,
70 232,251,1,2,139,149,233,133,192,15,132,244,249,15,182,78,252,253,139,108, 70 233,137,116,36,24,232,251,1,2,139,149,233,133,192,15,132,244,249,15,182,78,
71 202,4,139,12,202,137,104,4,137,8,248,40,139,6,15,182,204,15,182,232,131,198, 71 252,253,139,108,202,4,139,12,202,137,104,4,137,8,248,40,139,6,15,182,204,
72 4,193,232,16,252,255,36,171,248,3,139,141,233,137,113,252,244,15,182,70,252, 72 15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,139,141,233,137,113,
73 253,139,108,194,4,139,4,194,137,105,20,137,65,16,141,177,233,41,214,139,105, 73 252,244,15,182,70,252,253,139,108,194,4,139,4,194,137,105,20,137,65,16,141,
74 252,248,184,237,252,233,244,29,248,41,15,182,110,252,252,141,4,194,141,12, 74 177,233,41,214,139,105,252,248,184,237,252,233,244,29,248,41,15,182,110,252,
75 202,137,108,36,12,139,108,36,48,137,68,36,8,137,76,36,4,137,44,36,137,149, 75 252,141,4,194,141,12,202,137,108,36,12,139,108,36,48,137,68,36,8,137,76,36,
76 233,137,116,36,24,232,251,1,3,248,3,139,149,233,255,131,252,248,1,15,135, 76 4,137,44,36,137,149,233,137,116,36,24,232,251,1,3,248,3,139,149,233,255,131,
77 244,42,248,4,141,118,4,15,130,244,252,248,5,15,183,70,252,254,141,180,253, 77 252,248,1,15,135,244,42,248,4,141,118,4,15,130,244,252,248,5,15,183,70,252,
78 134,233,248,6,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 78 254,141,180,253,134,233,248,6,139,6,15,182,204,15,182,232,131,198,4,193,232,
79 171,248,43,131,198,4,129,120,253,4,239,15,130,244,5,252,233,244,6,248,44, 79 16,252,255,36,171,248,43,131,198,4,129,120,253,4,239,15,130,244,5,252,233,
80 129,120,253,4,239,252,233,244,4,248,45,131,252,238,4,137,108,36,12,139,108, 80 244,6,248,44,129,120,253,4,239,252,233,244,4,248,45,131,252,238,4,137,108,
81 36,48,137,68,36,8,137,76,36,4,137,44,36,137,149,233,255,137,116,36,24,232, 81 36,12,139,108,36,48,137,68,36,8,137,76,36,4,137,44,36,137,149,233,255,137,
82 251,1,4,252,233,244,3,248,46,255,131,252,238,4,139,108,36,48,137,149,233, 82 116,36,24,232,251,1,4,252,233,244,3,248,46,255,131,252,238,4,139,108,36,48,
83 137,252,233,139,86,252,252,137,116,36,24,232,251,1,5,252,233,244,3,255,248, 83 137,149,233,137,252,233,139,86,252,252,137,116,36,24,232,251,1,5,252,233,
84 47,141,4,199,252,233,244,247,248,48,141,4,199,141,44,252,234,149,252,233, 84 244,3,255,248,47,255,15,182,110,252,255,255,248,48,141,4,199,252,233,244,
85 244,248,248,49,141,4,194,137,197,252,233,244,248,248,50,141,4,194,248,1,141, 85 247,248,49,255,248,50,141,4,199,141,44,252,234,149,252,233,244,248,248,51,
86 44,252,234,248,2,141,12,202,137,108,36,8,139,108,36,48,137,68,36,12,15,182, 86 141,4,194,137,197,252,233,244,248,248,52,255,248,53,141,4,194,248,1,141,44,
87 70,252,252,137,76,36,4,137,68,36,16,137,44,36,137,149,233,137,116,36,24,232, 87 252,234,248,2,141,12,202,137,108,36,8,139,108,36,48,137,68,36,12,15,182,70,
88 252,252,137,76,36,4,137,68,36,16,137,44,36,137,149,233,137,116,36,24,232,
88 251,1,6,139,149,233,133,192,15,132,244,40,248,42,137,193,41,208,137,113,252, 89 251,1,6,139,149,233,133,192,15,132,244,40,248,42,137,193,41,208,137,113,252,
89 244,141,176,233,184,237,252,233,244,27,248,51,255,139,108,36,48,137,149,233, 90 244,141,176,233,184,237,252,233,244,27,248,54,139,108,36,48,137,149,233,141,
90 141,20,194,137,252,233,137,116,36,24,232,251,1,7,139,149,233,252,233,244, 91 20,194,137,252,233,137,116,36,24,232,251,1,7,139,149,233,252,233,244,42,248,
91 42,248,52,141,76,202,8,248,28,137,76,36,20,137,68,36,16,131,252,233,8,141, 92 55,141,76,202,8,248,28,137,76,36,20,137,68,36,16,131,252,233,8,141,4,193,
92 4,193,139,108,36,48,137,76,36,4,137,68,36,8,137,44,36,137,149,233,137,116, 93 139,108,36,48,137,76,36,4,137,68,36,8,137,44,36,137,149,233,255,137,116,36,
93 36,24,232,251,1,8,139,149,233,139,76,36,20,139,68,36,16,139,105,252,248,131, 94 24,232,251,1,8,139,149,233,139,76,36,20,139,68,36,16,139,105,252,248,131,
94 192,1,57,215,15,132,244,53,137,202,137,114,252,252,139,181,233,139,14,15, 95 192,1,57,215,15,132,244,56,137,202,137,114,252,252,139,181,233,139,14,15,
95 182,252,233,15,182,205,131,198,4,252,255,36,171,248,54,139,108,36,48,137, 96 182,252,233,15,182,205,131,198,4,252,255,36,171,248,57,139,108,36,48,137,
96 149,233,137,202,137,252,233,137,116,36,24,232,251,1,9,139,149,233,139,70, 97 149,233,137,202,137,252,233,137,116,36,24,232,251,1,9,139,149,233,139,70,
97 252,252,15,182,204,15,182,232,193,232,16,252,255,164,253,171,233,248,55,129, 98 252,252,15,182,204,15,182,232,193,232,16,252,255,164,253,171,233,248,58,129,
98 252,248,239,15,130,244,56,139,106,4,129,252,253,239,255,15,131,244,56,139, 99 252,248,239,15,130,244,59,139,106,4,129,252,253,239,15,131,244,59,139,114,
99 114,252,252,137,68,36,20,137,106,252,252,139,42,137,106,252,248,131,232,2, 100 252,252,137,68,36,20,137,106,252,252,139,42,137,106,252,248,131,232,2,15,
100 15,132,244,248,137,209,248,1,131,193,8,139,105,4,137,105,252,252,139,41,137, 101 132,244,248,137,209,248,1,131,193,8,139,105,4,137,105,252,252,139,41,137,
101 105,252,248,131,232,1,15,133,244,1,248,2,139,68,36,20,252,233,244,57,248, 102 105,252,248,131,232,1,15,133,244,1,248,2,255,139,68,36,20,252,233,244,60,
102 58,129,252,248,239,15,130,244,56,139,106,4,184,237,252,247,213,57,232,255, 103 248,61,129,252,248,239,15,130,244,59,139,106,4,184,237,252,247,213,57,232,
103 15,71,197,255,15,134,244,247,137,232,248,1,255,248,2,139,106,252,248,139, 104 255,15,71,197,255,15,134,244,247,137,232,248,1,255,248,2,139,106,252,248,
104 132,253,197,233,139,114,252,252,199,66,252,252,237,137,66,252,248,252,233, 105 139,132,253,197,233,139,114,252,252,199,66,252,252,237,137,66,252,248,252,
105 244,59,248,60,129,252,248,239,15,130,244,56,139,106,4,139,114,252,252,129, 106 233,244,62,248,63,129,252,248,239,15,130,244,59,139,106,4,139,114,252,252,
106 252,253,239,15,133,244,252,248,1,139,42,139,173,233,248,2,133,252,237,199, 107 129,252,253,239,15,133,244,252,248,1,139,42,139,173,233,248,2,133,252,237,
107 66,252,252,237,15,132,244,59,139,131,233,199,66,252,252,237,255,137,106,252, 108 199,66,252,252,237,15,132,244,62,139,131,233,199,66,252,252,237,255,137,106,
108 248,139,141,233,35,136,233,105,201,239,3,141,233,248,3,129,185,233,239,15, 109 252,248,139,141,233,35,136,233,105,201,239,3,141,233,248,3,129,185,233,239,
109 133,244,250,57,129,233,15,132,244,251,248,4,139,137,233,133,201,15,133,244, 110 15,133,244,250,57,129,233,15,132,244,251,248,4,139,137,233,133,201,15,133,
110 3,252,233,244,59,248,5,139,105,4,129,252,253,239,255,15,132,244,59,139,1, 111 244,3,252,233,244,62,248,5,139,105,4,129,252,253,239,255,15,132,244,62,139,
111 137,106,252,252,137,66,252,248,252,233,244,59,248,6,129,252,253,239,15,132, 112 1,137,106,252,252,137,66,252,248,252,233,244,62,248,6,129,252,253,239,15,
112 244,1,129,252,253,239,15,135,244,253,189,237,248,7,252,247,213,139,172,253, 113 132,244,1,129,252,253,239,15,135,244,253,189,237,248,7,252,247,213,139,172,
113 171,233,252,233,244,2,248,61,129,252,248,239,15,130,244,56,255,129,122,253, 114 253,171,233,252,233,244,2,248,64,129,252,248,239,15,130,244,59,255,129,122,
114 4,239,15,133,244,56,139,42,131,189,233,0,15,133,244,56,129,122,253,12,239, 115 253,4,239,15,133,244,59,139,42,131,189,233,0,15,133,244,59,129,122,253,12,
115 15,133,244,56,139,66,8,137,133,233,139,114,252,252,199,66,252,252,237,137, 116 239,15,133,244,59,139,66,8,137,133,233,139,114,252,252,199,66,252,252,237,
116 106,252,248,252,246,133,233,235,15,132,244,247,128,165,233,235,139,131,233, 117 137,106,252,248,252,246,133,233,235,15,132,244,247,128,165,233,235,139,131,
117 137,171,233,137,133,233,248,1,255,252,233,244,59,248,62,129,252,248,239,15, 118 233,137,171,233,137,133,233,248,1,255,252,233,244,62,248,65,129,252,248,239,
118 130,244,56,129,122,253,4,239,15,133,244,56,139,2,139,108,36,48,137,68,36, 119 15,130,244,59,129,122,253,4,239,15,133,244,59,139,2,139,108,36,48,137,68,
119 4,137,44,36,137,213,131,194,8,137,84,36,8,232,251,1,10,137,252,234,139,40, 120 36,4,137,44,36,137,213,131,194,8,137,84,36,8,232,251,1,10,137,252,234,139,
120 139,64,4,139,114,252,252,137,106,252,248,137,66,252,252,252,233,244,59,248, 121 40,139,64,4,139,114,252,252,137,106,252,248,137,66,252,252,252,233,244,62,
121 63,129,252,248,239,15,133,244,56,129,122,253,4,239,15,135,244,56,255,252, 122 248,66,129,252,248,239,15,133,244,59,129,122,253,4,239,255,15,133,244,247,
122 242,15,16,2,252,233,244,64,255,221,2,252,233,244,65,255,248,66,129,252,248, 123 139,42,252,233,244,67,248,1,15,135,244,59,255,15,131,244,59,255,252,242,15,
123 239,15,130,244,56,139,114,252,252,129,122,253,4,239,15,133,244,249,139,2, 124 16,2,252,233,244,68,255,221,2,252,233,244,69,255,248,70,129,252,248,239,15,
124 248,2,199,66,252,252,237,137,66,252,248,252,233,244,59,248,3,129,122,253, 125 130,244,59,139,114,252,252,129,122,253,4,239,15,133,244,249,139,2,248,2,199,
125 4,239,15,135,244,56,131,187,233,0,15,133,244,56,139,171,233,59,171,233,255, 126 66,252,252,237,137,66,252,248,252,233,244,62,248,3,129,122,253,4,239,15,135,
126 15,130,244,247,232,244,67,248,1,139,108,36,48,137,149,233,137,116,36,24,137, 127 244,59,131,187,233,0,15,133,244,59,139,171,233,59,171,233,255,15,130,244,
127 252,233,232,251,1,11,139,149,233,252,233,244,2,248,68,129,252,248,239,15, 128 247,232,244,71,248,1,139,108,36,48,137,149,233,137,116,36,24,137,252,233,
128 130,244,56,15,132,244,248,248,1,129,122,253,4,239,15,133,244,56,139,108,36, 129 255,232,251,1,11,255,232,251,1,12,255,139,149,233,252,233,244,2,248,72,129,
129 48,137,149,233,255,137,149,233,139,114,252,252,139,2,137,68,36,4,137,44,36, 130 252,248,239,15,130,244,59,15,132,244,248,248,1,129,122,253,4,239,15,133,244,
130 131,194,8,137,84,36,8,137,116,36,24,232,251,1,12,139,149,233,133,192,15,132, 131 59,139,108,36,48,137,149,233,137,149,233,139,114,252,252,139,2,137,68,36,
131 244,249,139,106,8,139,66,12,137,106,252,248,137,66,252,252,139,106,16,139, 132 4,137,44,36,131,194,8,137,84,36,8,137,116,36,24,232,251,1,13,139,149,233,
132 66,20,137,42,137,66,4,248,69,184,237,252,233,244,70,248,2,199,66,12,237,252, 133 133,192,15,132,244,249,139,106,8,139,66,12,137,106,252,248,137,66,252,252,
133 233,244,1,248,3,199,66,252,252,237,252,233,244,59,248,71,129,252,248,239, 134 139,106,16,139,66,20,137,42,137,66,4,248,73,184,237,255,252,233,244,74,248,
134 15,130,244,56,255,139,42,129,122,253,4,239,15,133,244,56,255,131,189,233, 135 2,199,66,12,237,252,233,244,1,248,3,199,66,252,252,237,252,233,244,62,248,
135 0,15,133,244,56,255,139,106,252,248,139,133,233,139,114,252,252,199,66,252, 136 75,129,252,248,239,15,130,244,59,139,42,129,122,253,4,239,15,133,244,59,255,
136 252,237,137,66,252,248,199,66,12,237,184,237,252,233,244,70,248,72,129,252, 137 131,189,233,0,15,133,244,59,255,139,106,252,248,139,133,233,139,114,252,252,
137 248,239,15,130,244,56,129,122,253,4,239,15,133,244,56,129,122,253,12,239, 138 199,66,252,252,237,137,66,252,248,199,66,12,237,184,237,252,233,244,74,248,
138 15,135,244,56,139,114,252,252,255,252,242,15,16,66,8,189,0,0,252,240,63,102, 139 76,129,252,248,239,15,130,244,59,129,122,253,4,239,15,133,244,59,129,122,
139 15,110,205,102,15,112,201,81,252,242,15,88,193,252,242,15,45,192,252,242, 140 253,12,239,255,139,114,252,252,255,139,66,8,131,192,1,199,66,252,252,237,
140 15,17,66,252,248,255,221,66,8,217,232,222,193,219,20,36,221,90,252,248,139, 141 137,66,252,248,255,252,242,15,16,66,8,189,0,0,252,240,63,102,15,110,205,102,
141 4,36,255,139,42,59,133,233,15,131,244,248,193,224,3,3,133,233,248,1,129,120, 142 15,112,201,81,252,242,15,88,193,252,242,15,45,192,252,242,15,17,66,252,248,
142 253,4,239,15,132,244,73,139,40,139,64,4,137,42,137,66,4,252,233,244,69,248, 143 255,221,66,8,217,232,222,193,219,20,36,221,90,252,248,139,4,36,255,139,42,
143 2,131,189,233,0,15,132,244,73,137,252,233,137,213,137,194,232,251,1,13,137, 144 59,133,233,15,131,244,248,193,224,3,3,133,233,248,1,129,120,253,4,239,15,
144 252,234,133,192,15,133,244,1,248,73,184,237,252,233,244,70,248,74,255,129, 145 132,244,77,139,40,139,64,4,137,42,137,66,4,252,233,244,73,248,2,131,189,233,
145 252,248,239,15,130,244,56,139,42,129,122,253,4,239,15,133,244,56,255,139, 146 0,15,132,244,77,137,252,233,137,213,137,194,232,251,1,14,137,252,234,133,
146 106,252,248,139,133,233,139,114,252,252,199,66,252,252,237,137,66,252,248, 147 192,15,133,244,1,248,77,184,237,252,233,244,74,248,78,255,139,106,252,248,
147 255,15,87,192,252,242,15,17,66,8,255,217,252,238,221,90,8,255,184,237,252, 148 139,133,233,139,114,252,252,199,66,252,252,237,137,66,252,248,255,199,66,
148 233,244,70,248,75,129,252,248,239,15,130,244,56,141,74,8,131,232,1,190,237, 149 12,237,199,66,8,0,0,0,0,255,15,87,192,252,242,15,17,66,8,255,217,252,238,
149 248,1,15,182,171,233,193,252,237,235,131,229,1,1,252,238,252,233,244,27,248, 150 221,90,8,255,184,237,252,233,244,74,248,79,129,252,248,239,15,130,244,59,
150 76,129,252,248,239,15,130,244,56,129,122,253,12,239,15,133,244,56,255,139, 151 141,74,8,131,232,1,190,237,248,1,15,182,171,233,193,252,237,235,131,229,1,
151 106,4,137,106,12,199,66,4,237,139,42,139,114,8,137,106,8,137,50,141,74,16, 152 1,252,238,252,233,244,27,248,80,129,252,248,239,15,130,244,59,129,122,253,
152 131,232,2,190,237,252,233,244,1,248,77,129,252,248,239,15,130,244,56,139, 153 12,239,15,133,244,59,255,139,106,4,137,106,12,199,66,4,237,139,42,139,114,
153 42,139,114,252,252,137,116,36,24,137,44,36,129,122,253,4,239,15,133,244,56, 154 8,137,106,8,137,50,141,74,16,131,232,2,190,237,252,233,244,1,248,81,129,252,
154 131,189,233,0,15,133,244,56,128,189,233,235,15,135,244,56,139,141,233,15, 155 248,239,15,130,244,59,139,42,139,114,252,252,137,116,36,24,137,44,36,129,
155 132,244,247,255,59,141,233,15,132,244,56,248,1,141,116,193,252,240,59,181, 156 122,253,4,239,15,133,244,59,131,189,233,0,15,133,244,59,128,189,233,235,15,
156 233,15,135,244,56,137,181,233,139,108,36,48,137,149,233,131,194,8,137,149, 157 135,244,59,139,141,233,15,132,244,247,255,59,141,233,15,132,244,59,248,1,
157 233,141,108,194,232,41,252,245,57,206,15,132,244,249,248,2,139,68,46,4,137, 158 141,116,193,252,240,59,181,233,15,135,244,59,137,181,233,139,108,36,48,137,
158 70,252,252,139,4,46,137,70,252,248,131,252,238,8,57,206,15,133,244,2,248, 159 149,233,131,194,8,137,149,233,141,108,194,232,41,252,245,57,206,15,132,244,
159 3,137,76,36,4,49,201,137,76,36,12,137,76,36,8,232,244,24,199,131,233,237, 160 249,248,2,139,68,46,4,137,70,252,252,139,4,46,137,70,252,248,131,252,238,
160 255,139,108,36,48,139,52,36,139,149,233,129,252,248,239,15,135,244,254,248, 161 8,57,206,15,133,244,2,248,3,137,76,36,4,49,201,137,76,36,12,137,76,36,8,232,
161 4,139,142,233,139,190,233,137,142,233,137,252,254,41,206,15,132,244,252,141, 162 244,24,199,131,233,237,255,139,108,36,48,139,52,36,139,149,233,129,252,248,
162 4,50,193,252,238,3,59,133,233,15,135,244,255,137,213,41,205,248,5,139,1,137, 163 239,15,135,244,254,248,4,139,142,233,139,190,233,137,142,233,137,252,254,
163 4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,15,133,244,5,248,6,141,70, 164 41,206,15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135,244,255,137,
164 2,199,66,252,252,237,248,7,139,116,36,24,137,68,36,20,185,252,248,252,255, 165 213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,
165 252,255,252,255,252,247,198,237,255,15,132,244,13,252,233,244,14,248,8,199, 166 15,133,244,5,248,6,141,70,2,199,66,252,252,237,248,7,139,116,36,24,137,68,
166 66,252,252,237,139,142,233,131,252,233,8,137,142,233,139,1,137,2,139,65,4, 167 36,20,185,252,248,252,255,252,255,252,255,252,247,198,237,255,15,132,244,
167 137,66,4,184,237,252,233,244,7,248,9,139,12,36,137,185,233,137,252,242,137, 168 13,252,233,244,14,248,8,199,66,252,252,237,139,142,233,131,252,233,8,137,
168 252,233,232,251,1,0,139,52,36,139,149,233,252,233,244,4,248,78,139,106,252, 169 142,233,139,1,137,2,139,65,4,137,66,4,184,237,252,233,244,7,248,9,139,12,
169 248,139,173,233,139,114,252,252,137,116,36,24,137,44,36,131,189,233,0,15, 170 36,137,185,233,137,252,242,137,252,233,232,251,1,0,139,52,36,139,149,233,
170 133,244,56,255,128,189,233,235,15,135,244,56,139,141,233,15,132,244,247,59, 171 252,233,244,4,248,82,139,106,252,248,139,173,233,139,114,252,252,137,116,
171 141,233,15,132,244,56,248,1,141,116,193,252,248,59,181,233,15,135,244,56, 172 36,24,137,44,36,131,189,233,0,15,133,244,59,255,128,189,233,235,15,135,244,
172 137,181,233,139,108,36,48,137,149,233,137,149,233,141,108,194,252,240,41, 173 59,139,141,233,15,132,244,247,59,141,233,15,132,244,59,248,1,141,116,193,
173 252,245,57,206,15,132,244,249,248,2,255,139,68,46,4,137,70,252,252,139,4, 174 252,248,59,181,233,15,135,244,59,137,181,233,139,108,36,48,137,149,233,137,
174 46,137,70,252,248,131,252,238,8,57,206,15,133,244,2,248,3,137,76,36,4,49, 175 149,233,141,108,194,252,240,41,252,245,57,206,15,132,244,249,248,2,255,139,
175 201,137,76,36,12,137,76,36,8,232,244,24,199,131,233,237,139,108,36,48,139, 176 68,46,4,137,70,252,252,139,4,46,137,70,252,248,131,252,238,8,57,206,15,133,
176 52,36,139,149,233,129,252,248,239,15,135,244,254,248,4,139,142,233,139,190, 177 244,2,248,3,137,76,36,4,49,201,137,76,36,12,137,76,36,8,232,244,24,199,131,
177 233,137,142,233,137,252,254,41,206,15,132,244,252,141,4,50,193,252,238,3, 178 233,237,139,108,36,48,139,52,36,139,149,233,129,252,248,239,15,135,244,254,
178 59,133,233,15,135,244,255,255,137,213,41,205,248,5,139,1,137,4,41,139,65, 179 248,4,139,142,233,139,190,233,137,142,233,137,252,254,41,206,15,132,244,252,
179 4,137,68,41,4,131,193,8,57,252,249,15,133,244,5,248,6,141,70,1,248,7,139, 180 141,4,50,193,252,238,3,59,133,233,15,135,244,255,255,137,213,41,205,248,5,
180 116,36,24,137,68,36,20,49,201,252,247,198,237,15,132,244,13,252,233,244,14, 181 139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,15,133,244,5,248,
181 248,8,137,252,242,137,252,233,232,251,1,14,248,9,139,12,36,137,185,233,137, 182 6,141,70,1,248,7,139,116,36,24,137,68,36,20,49,201,252,247,198,237,15,132,
182 252,242,137,252,233,232,251,1,0,139,52,36,139,149,233,252,233,244,4,248,79, 183 244,13,252,233,244,14,248,8,137,252,242,137,252,233,232,251,1,15,248,9,139,
183 139,108,36,48,252,247,133,233,237,15,132,244,56,255,137,149,233,141,68,194, 184 12,36,137,185,233,137,252,242,137,252,233,232,251,1,0,139,52,36,139,149,233,
184 252,248,137,133,233,49,192,137,133,233,176,235,136,133,233,252,233,244,16, 185 252,233,244,4,248,83,139,108,36,48,252,247,133,233,237,15,132,244,59,255,
185 255,248,65,139,114,252,252,221,90,252,248,252,233,244,59,248,80,129,252,248, 186 137,149,233,141,68,194,252,248,137,133,233,49,192,137,133,233,176,235,136,
186 239,15,130,244,56,129,122,253,4,239,15,135,244,56,252,242,15,16,2,102,15, 187 133,233,252,233,244,16,255,248,67,255,248,69,139,114,252,252,221,90,252,248,
187 252,239,201,102,15,118,201,102,15,115,209,1,15,84,193,248,64,139,114,252, 188 252,233,244,62,255,248,84,129,252,248,239,15,130,244,59,255,129,122,253,4,
188 252,252,242,15,17,66,252,248,255,248,80,129,252,248,239,15,130,244,56,129, 189 239,15,133,244,248,139,42,131,252,253,0,15,137,244,67,252,247,221,15,136,
189 122,253,4,239,15,135,244,56,221,2,217,225,248,64,248,65,139,114,252,252,221, 190 244,247,248,85,248,67,139,114,252,252,199,66,252,252,237,137,106,252,248,
190 90,252,248,255,248,59,184,237,248,70,137,68,36,20,248,57,252,247,198,237, 191 252,233,244,62,248,1,139,114,252,252,199,66,252,252,0,0,224,65,199,66,252,
191 15,133,244,253,248,5,56,70,252,255,15,135,244,252,15,182,78,252,253,252,247, 192 248,0,0,0,0,252,233,244,62,248,2,15,135,244,59,255,129,122,253,4,239,15,131,
192 209,141,20,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 193 244,59,255,252,242,15,16,2,102,15,252,239,201,102,15,118,201,102,15,115,209,
193 171,248,6,199,68,194,252,244,237,131,192,1,252,233,244,5,248,7,185,252,248, 194 1,15,84,193,248,68,139,114,252,252,252,242,15,17,66,252,248,255,221,2,217,
194 252,255,252,255,252,255,252,233,244,14,255,248,81,129,252,248,239,15,130, 195 225,248,68,248,69,139,114,252,252,221,90,252,248,255,248,62,184,237,248,74,
195 244,56,129,122,253,4,239,15,135,244,56,252,242,15,81,2,252,233,244,64,248, 196 137,68,36,20,248,60,252,247,198,237,15,133,244,253,248,5,56,70,252,255,15,
196 82,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,252,242, 197 135,244,252,15,182,78,252,253,252,247,209,141,20,202,139,6,15,182,204,15,
197 15,16,2,232,244,83,252,233,244,64,248,84,255,129,252,248,239,15,130,244,56, 198 182,232,131,198,4,193,232,16,252,255,36,171,248,6,199,68,194,252,244,237,
198 129,122,253,4,239,15,135,244,56,252,242,15,16,2,232,244,85,252,233,244,64, 199 131,192,1,252,233,244,5,248,7,185,252,248,252,255,252,255,252,255,252,233,
199 255,248,81,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56, 200 244,14,248,86,255,129,122,253,4,239,15,133,244,247,139,42,252,233,244,67,
200 221,2,217,252,250,252,233,244,65,248,82,129,252,248,239,15,130,244,56,129, 201 248,1,15,135,244,59,255,252,242,15,16,2,232,244,87,255,252,242,15,45,232,
201 122,253,4,239,15,135,244,56,221,2,232,244,83,252,233,244,65,248,84,255,129, 202 129,252,253,0,0,0,128,15,133,244,67,252,242,15,42,205,102,15,46,193,15,138,
202 252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,221,2,232,244,85, 203 244,68,15,132,244,67,255,221,2,232,244,87,255,219,20,36,139,44,36,129,252,
203 252,233,244,65,255,248,86,129,252,248,239,15,130,244,56,129,122,253,4,239, 204 253,0,0,0,128,15,133,244,248,217,192,219,4,36,255,223,252,233,221,216,255,
204 15,135,244,56,217,252,237,221,2,217,252,241,252,233,244,65,248,87,129,252, 205 218,252,233,223,224,158,255,15,138,244,69,15,133,244,69,248,2,221,216,252,
205 248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,217,252,236,221,2,217, 206 233,244,67,255,248,88,255,252,242,15,16,2,232,244,89,255,221,2,232,244,89,
206 252,241,252,233,244,65,248,88,129,252,248,239,255,15,130,244,56,129,122,253, 207 255,248,90,129,252,248,239,15,130,244,59,129,122,253,4,239,15,131,244,59,
207 4,239,15,135,244,56,221,2,232,244,89,252,233,244,65,248,90,129,252,248,239, 208 252,242,15,81,2,252,233,244,68,255,248,90,129,252,248,239,15,130,244,59,129,
208 15,130,244,56,129,122,253,4,239,15,135,244,56,221,2,217,252,254,252,233,244, 209 122,253,4,239,15,131,244,59,221,2,217,252,250,252,233,244,69,255,248,91,129,
209 65,248,91,129,252,248,239,255,15,130,244,56,129,122,253,4,239,15,135,244, 210 252,248,239,15,130,244,59,129,122,253,4,239,15,131,244,59,217,252,237,221,
210 56,221,2,217,252,255,252,233,244,65,248,92,129,252,248,239,15,130,244,56, 211 2,217,252,241,252,233,244,69,248,92,129,252,248,239,15,130,244,59,129,122,
211 129,122,253,4,239,15,135,244,56,221,2,217,252,242,221,216,252,233,244,65, 212 253,4,239,15,131,244,59,217,252,236,221,2,217,252,241,252,233,244,69,248,
212 248,93,129,252,248,239,15,130,244,56,255,129,122,253,4,239,15,135,244,56, 213 93,129,252,248,239,255,15,130,244,59,129,122,253,4,239,15,131,244,59,221,
213 221,2,217,192,216,200,217,232,222,225,217,252,250,217,252,243,252,233,244, 214 2,232,244,94,252,233,244,69,248,95,129,252,248,239,15,130,244,59,129,122,
214 65,248,94,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,221, 215 253,4,239,15,131,244,59,221,2,217,252,254,252,233,244,69,248,96,129,252,248,
215 2,217,192,216,200,217,232,222,225,217,252,250,217,201,217,252,243,252,233, 216 239,255,15,130,244,59,129,122,253,4,239,15,131,244,59,221,2,217,252,255,252,
216 244,65,248,95,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244, 217 233,244,69,248,97,129,252,248,239,15,130,244,59,129,122,253,4,239,15,131,
217 56,255,221,2,217,232,217,252,243,252,233,244,65,255,248,96,129,252,248,239, 218 244,59,221,2,217,252,242,221,216,252,233,244,69,248,98,129,252,248,239,15,
218 15,130,244,56,129,122,253,4,239,15,135,244,56,252,242,15,16,2,252,242,15, 219 130,244,59,255,129,122,253,4,239,15,131,244,59,221,2,217,192,216,200,217,
219 17,4,36,255,248,96,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135, 220 232,222,225,217,252,250,217,252,243,252,233,244,69,248,99,129,252,248,239,
220 244,56,221,2,221,28,36,255,137,213,232,251,1,15,137,252,234,252,233,244,65, 221 15,130,244,59,129,122,253,4,239,15,131,244,59,221,2,217,192,216,200,217,232,
221 255,248,97,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56, 222 222,225,217,252,250,217,201,217,252,243,252,233,244,69,248,100,129,252,248,
222 252,242,15,16,2,252,242,15,17,4,36,255,248,97,129,252,248,239,15,130,244, 223 239,15,130,244,59,129,122,253,4,239,15,131,244,59,255,221,2,217,232,217,252,
223 56,129,122,253,4,239,15,135,244,56,221,2,221,28,36,255,137,213,232,251,1, 224 243,252,233,244,69,255,248,101,129,252,248,239,15,130,244,59,129,122,253,
224 16,137,252,234,252,233,244,65,255,248,98,129,252,248,239,15,130,244,56,129, 225 4,239,15,131,244,59,252,242,15,16,2,252,242,15,17,4,36,255,248,101,129,252,
225 122,253,4,239,15,135,244,56,252,242,15,16,2,252,242,15,17,4,36,255,248,98, 226 248,239,15,130,244,59,129,122,253,4,239,15,131,244,59,221,2,221,28,36,255,
226 129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,221,2,221,28, 227 137,213,232,251,1,16,137,252,234,252,233,244,69,255,248,102,129,252,248,239,
227 36,255,137,213,232,251,1,17,137,252,234,252,233,244,65,248,99,255,248,100, 228 15,130,244,59,129,122,253,4,239,15,131,244,59,252,242,15,16,2,252,242,15,
228 129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,252,242,15, 229 17,4,36,255,248,102,129,252,248,239,15,130,244,59,129,122,253,4,239,15,131,
229 16,2,139,106,252,248,252,242,15,89,133,233,252,233,244,64,255,248,100,129, 230 244,59,221,2,221,28,36,255,137,213,232,251,1,17,137,252,234,252,233,244,69,
230 252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,221,2,139,106,252, 231 255,248,103,129,252,248,239,15,130,244,59,129,122,253,4,239,15,131,244,59,
231 248,220,141,233,252,233,244,65,255,248,101,129,252,248,239,15,130,244,56, 232 252,242,15,16,2,252,242,15,17,4,36,255,248,103,129,252,248,239,15,130,244,
232 129,122,253,4,239,15,135,244,56,129,122,253,12,239,15,135,244,56,221,2,221, 233 59,129,122,253,4,239,15,131,244,59,221,2,221,28,36,255,137,213,232,251,1,
233 66,8,217,252,243,252,233,244,65,248,102,129,252,248,239,15,130,244,56,129, 234 18,137,252,234,252,233,244,69,248,104,255,248,105,129,252,248,239,15,130,
234 122,253,4,239,15,135,244,56,129,122,253,12,239,255,15,135,244,56,221,66,8, 235 244,59,129,122,253,4,239,15,131,244,59,252,242,15,16,2,139,106,252,248,252,
235 221,2,217,252,253,221,217,252,233,244,65,248,103,129,252,248,239,15,130,244, 236 242,15,89,133,233,252,233,244,68,255,248,105,129,252,248,239,15,130,244,59,
236 56,139,106,4,129,252,253,239,15,135,244,56,139,114,252,252,139,2,137,106, 237 129,122,253,4,239,15,131,244,59,221,2,139,106,252,248,220,141,233,252,233,
237 252,252,137,66,252,248,209,229,129,252,253,0,0,224,252,255,15,131,244,249, 238 244,69,255,248,106,129,252,248,239,15,130,244,59,129,122,253,4,239,15,131,
238 9,232,15,132,244,249,184,252,254,3,0,0,129,252,253,0,0,32,0,15,130,244,250, 239 244,59,129,122,253,12,239,15,131,244,59,221,2,221,66,8,217,252,243,252,233,
239 248,1,193,252,237,21,41,197,255,252,242,15,42,197,255,137,108,36,16,219,68, 240 244,69,248,107,129,252,248,239,15,130,244,59,129,122,253,4,239,15,131,244,
240 36,16,255,139,106,252,252,129,229,252,255,252,255,15,128,129,205,0,0,224, 241 59,129,122,253,12,239,255,15,131,244,59,221,66,8,221,2,217,252,253,221,217,
241 63,137,106,252,252,248,2,255,252,242,15,17,2,255,221,26,255,184,237,252,233, 242 252,233,244,69,248,108,129,252,248,239,15,130,244,59,139,106,4,129,252,253,
242 244,70,248,3,255,15,87,192,252,233,244,2,255,217,252,238,252,233,244,2,255, 243 239,15,131,244,59,139,114,252,252,139,2,137,106,252,252,137,66,252,248,209,
243 248,4,255,252,242,15,16,2,189,0,0,80,67,102,15,110,205,102,15,112,201,81, 244 229,129,252,253,0,0,224,252,255,15,131,244,249,9,232,15,132,244,249,184,252,
244 252,242,15,89,193,252,242,15,17,66,252,248,255,221,2,199,68,36,16,0,0,128, 245 254,3,0,0,129,252,253,0,0,32,0,15,130,244,250,248,1,193,252,237,21,41,197,
245 90,216,76,36,16,221,90,252,248,255,139,106,252,252,184,52,4,0,0,209,229,252, 246 255,252,242,15,42,197,255,137,108,36,16,219,68,36,16,255,139,106,252,252,
246 233,244,1,255,248,104,129,252,248,239,15,130,244,56,129,122,253,4,239,15, 247 129,229,252,255,252,255,15,128,129,205,0,0,224,63,137,106,252,252,248,2,255,
247 135,244,56,252,242,15,16,2,255,248,104,129,252,248,239,15,130,244,56,129, 248 252,242,15,17,2,255,221,26,255,184,237,252,233,244,74,248,3,255,15,87,192,
248 122,253,4,239,15,135,244,56,221,2,255,139,106,4,139,114,252,252,209,229,129, 249 252,233,244,2,255,217,252,238,252,233,244,2,255,248,4,255,252,242,15,16,2,
249 252,253,0,0,224,252,255,15,132,244,250,255,15,40,224,232,244,105,252,242, 250 189,0,0,80,67,102,15,110,205,102,15,112,201,81,252,242,15,89,193,252,242,
250 15,92,224,248,1,252,242,15,17,66,252,248,252,242,15,17,34,255,217,192,232, 251 15,17,66,252,248,255,221,2,199,68,36,16,0,0,128,90,216,76,36,16,221,90,252,
251 244,105,220,252,233,248,1,221,90,252,248,221,26,255,139,66,252,252,139,106, 252 248,255,139,106,252,252,184,52,4,0,0,209,229,252,233,244,1,255,248,109,129,
252 4,49,232,15,136,244,249,248,2,184,237,252,233,244,70,248,3,129,252,245,0, 253 252,248,239,15,130,244,59,129,122,253,4,239,15,131,244,59,252,242,15,16,2,
253 0,0,128,137,106,4,252,233,244,2,248,4,255,15,87,228,252,233,244,1,255,217, 254 255,248,109,129,252,248,239,15,130,244,59,129,122,253,4,239,15,131,244,59,
254 252,238,217,201,252,233,244,1,255,248,106,129,252,248,239,15,130,244,56,129, 255 221,2,255,139,106,4,139,114,252,252,209,229,129,252,253,0,0,224,252,255,15,
255 122,253,4,239,15,135,244,56,129,122,253,12,239,15,135,244,56,221,66,8,221, 256 132,244,250,255,15,40,224,232,244,110,252,242,15,92,224,248,1,252,242,15,
256 2,248,1,217,252,248,223,224,158,15,138,244,1,221,217,252,233,244,65,255,248, 257 17,66,252,248,252,242,15,17,34,255,217,192,232,244,110,220,252,233,248,1,
257 107,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,129,122, 258 221,90,252,248,221,26,255,139,66,252,252,139,106,4,49,232,15,136,244,249,
258 253,12,239,15,135,244,56,252,242,15,16,2,252,242,15,16,74,8,232,244,108,252, 259 248,2,184,237,252,233,244,74,248,3,129,252,245,0,0,0,128,137,106,4,252,233,
259 233,244,64,255,248,107,129,252,248,239,15,130,244,56,129,122,253,4,239,15, 260 244,2,248,4,255,15,87,228,252,233,244,1,255,217,252,238,217,201,252,233,244,
260 135,244,56,129,122,253,12,239,15,135,244,56,221,2,221,66,8,232,244,108,252, 261 1,255,248,111,129,252,248,239,15,130,244,59,129,122,253,4,239,15,131,244,
261 233,244,65,255,248,109,129,252,248,239,15,130,244,56,129,122,253,4,239,15, 262 59,129,122,253,12,239,15,131,244,59,221,66,8,221,2,248,1,217,252,248,223,
262 135,244,56,252,242,15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,64,129,124, 263 224,158,15,138,244,1,221,217,252,233,244,69,255,248,112,129,252,248,239,15,
263 253,252,234,252,252,239,15,135,244,56,252,242,15,16,76,252,234,252,248,252, 264 130,244,59,129,122,253,4,239,15,131,244,59,129,122,253,12,239,15,131,244,
264 242,15,93,193,131,197,1,252,233,244,1,255,248,109,129,252,248,239,15,130, 265 59,252,242,15,16,2,252,242,15,16,74,8,232,244,113,252,233,244,68,255,248,
265 244,56,129,122,253,4,239,15,135,244,56,221,2,189,2,0,0,0,248,1,57,197,15, 266 112,129,252,248,239,15,130,244,59,129,122,253,4,239,15,131,244,59,129,122,
266 131,244,65,129,124,253,252,234,252,252,239,15,135,244,251,221,68,252,234, 267 253,12,239,15,131,244,59,221,2,221,66,8,232,244,113,252,233,244,69,255,248,
267 252,248,255,219,252,233,219,209,221,217,255,80,221,225,223,224,252,246,196, 268 114,185,2,0,0,0,129,122,253,4,239,255,15,133,244,250,139,42,248,1,57,193,
268 1,15,132,244,248,217,201,248,2,221,216,88,255,248,110,129,252,248,239,15, 269 15,131,244,67,129,124,253,202,252,252,239,15,133,244,249,59,108,202,252,248,
269 130,244,56,129,122,253,4,239,15,135,244,56,252,242,15,16,2,189,2,0,0,0,248, 270 15,79,108,202,252,248,131,193,1,252,233,244,1,248,3,15,135,244,59,255,252,
270 1,57,197,15,131,244,64,129,124,253,252,234,252,252,239,15,135,244,56,252, 271 233,244,252,248,4,15,135,244,59,255,252,242,15,16,2,248,5,57,193,15,131,244,
271 242,15,16,76,252,234,252,248,252,242,15,95,193,131,197,1,252,233,244,1,255, 272 68,129,124,253,202,252,252,239,255,15,130,244,252,15,135,244,59,252,242,15,
272 248,110,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,221, 273 42,76,202,252,248,252,233,244,253,255,248,6,252,242,15,16,76,202,252,248,
273 2,189,2,0,0,0,248,1,57,197,15,131,244,65,129,124,253,252,234,252,252,239, 274 248,7,252,242,15,93,193,131,193,1,252,233,244,5,255,221,2,248,5,57,193,15,
274 15,135,244,251,221,68,252,234,252,248,255,219,252,233,218,209,221,217,255, 275 131,244,69,129,124,253,202,252,252,239,255,15,130,244,252,15,135,244,255,
275 80,221,225,223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,88, 276 219,68,202,252,248,252,233,244,253,255,15,131,244,255,255,248,6,221,68,202,
276 255,248,5,221,216,252,233,244,56,255,248,111,129,252,248,239,15,130,244,56, 277 252,248,248,7,255,219,252,233,219,209,221,217,255,80,221,225,223,224,252,
277 129,122,253,4,239,15,133,244,56,139,42,255,252,242,15,42,133,233,252,233, 278 246,196,1,15,132,244,248,217,201,248,2,221,216,88,255,248,115,185,2,0,0,0,
278 244,64,255,219,133,233,252,233,244,65,255,248,112,129,252,248,239,15,133, 279 129,122,253,4,239,255,15,133,244,250,139,42,248,1,57,193,15,131,244,67,129,
279 244,56,129,122,253,4,239,15,133,244,56,139,42,139,114,252,252,131,189,233, 280 124,253,202,252,252,239,15,133,244,249,59,108,202,252,248,15,76,108,202,252,
280 1,15,130,244,73,15,182,173,233,255,252,242,15,42,197,252,233,244,64,255,137, 281 248,131,193,1,252,233,244,1,248,3,15,135,244,59,255,248,6,252,242,15,16,76,
281 108,36,16,219,68,36,16,252,233,244,65,255,248,113,139,171,233,59,171,233, 282 202,252,248,248,7,252,242,15,95,193,131,193,1,252,233,244,5,255,219,252,233,
282 15,130,244,247,232,244,67,248,1,129,252,248,239,15,133,244,56,129,122,253, 283 218,209,221,217,255,80,221,225,223,224,252,246,196,1,15,133,244,248,217,201,
283 4,239,15,135,244,56,255,252,242,15,44,42,129,252,253,252,255,0,0,0,15,135, 284 248,2,221,216,88,255,248,9,221,216,252,233,244,59,255,248,116,129,252,248,
284 244,56,137,108,36,20,255,221,2,219,92,36,20,129,124,36,20,252,255,0,0,0,15, 285 239,15,130,244,59,129,122,253,4,239,15,133,244,59,139,42,255,139,173,233,
285 135,244,56,255,199,68,36,8,1,0,0,0,141,68,36,20,248,114,139,108,36,48,137, 286 252,233,244,67,255,252,242,15,42,133,233,252,233,244,68,255,219,133,233,252,
286 149,233,137,68,36,4,137,44,36,137,116,36,24,232,251,1,18,139,149,233,139, 287 233,244,69,255,248,117,129,252,248,239,15,133,244,59,129,122,253,4,239,15,
287 114,252,252,199,66,252,252,237,137,66,252,248,252,233,244,59,248,115,139, 288 133,244,59,139,42,139,114,252,252,131,189,233,1,15,130,244,77,15,182,173,
288 171,233,59,171,233,15,130,244,247,232,244,67,248,1,199,68,36,20,252,255,252, 289 233,255,252,242,15,42,197,252,233,244,68,255,137,108,36,16,219,68,36,16,252,
289 255,252,255,252,255,129,252,248,239,15,130,244,56,15,134,244,247,129,122, 290 233,244,69,255,248,118,139,171,233,59,171,233,15,130,244,247,232,244,71,248,
290 253,20,239,255,252,242,15,44,106,16,137,108,36,20,255,221,66,16,219,92,36, 291 1,129,252,248,239,15,133,244,59,129,122,253,4,239,255,15,133,244,59,139,42,
291 20,255,248,1,129,122,253,4,239,15,133,244,56,129,122,253,12,239,15,135,244, 292 129,252,253,252,255,0,0,0,15,135,244,59,137,108,36,20,255,15,131,244,59,252,
292 56,139,42,137,108,36,12,139,173,233,255,252,242,15,44,74,8,255,221,66,8,219, 293 242,15,44,42,129,252,253,252,255,0,0,0,15,135,244,59,137,108,36,20,255,15,
293 92,36,8,139,76,36,8,255,139,68,36,20,57,197,15,130,244,251,248,2,133,201, 294 131,244,59,221,2,219,92,36,20,129,124,36,20,252,255,0,0,0,15,135,244,59,255,
294 15,142,244,253,248,3,139,108,36,12,41,200,15,140,244,116,141,172,253,13,233, 295 199,68,36,8,1,0,0,0,141,68,36,20,248,119,139,108,36,48,137,149,233,137,68,
295 131,192,1,248,4,137,68,36,8,137,232,252,233,244,114,248,5,15,140,244,252, 296 36,4,137,44,36,137,116,36,24,232,251,1,19,139,149,233,139,114,252,252,199,
296 141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248,7,255,15,132,244, 297 66,252,252,237,137,66,252,248,252,233,244,62,248,120,139,171,233,59,171,233,
297 254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,233,244,3,248, 298 15,130,244,247,232,244,71,248,1,199,68,36,20,252,255,252,255,252,255,252,
298 116,49,192,252,233,244,4,248,117,129,252,248,239,15,130,244,56,139,171,233, 299 255,129,252,248,239,15,130,244,59,15,134,244,247,129,122,253,20,239,255,15,
299 59,171,233,15,130,244,247,232,244,67,248,1,255,129,122,253,4,239,15,133,244, 300 133,244,59,139,106,16,137,108,36,20,255,15,131,244,59,252,242,15,44,106,16,
300 56,129,122,253,12,239,15,135,244,56,139,42,255,252,242,15,44,66,8,255,221, 301 137,108,36,20,255,15,131,244,59,221,66,16,219,92,36,20,255,248,1,129,122,
301 66,8,219,92,36,20,139,68,36,20,255,133,192,15,142,244,116,131,189,233,1,15, 302 253,4,239,15,133,244,59,129,122,253,12,239,255,139,42,137,108,36,12,139,173,
302 130,244,116,15,133,244,118,57,131,233,15,130,244,118,15,182,141,233,139,171, 303 233,255,139,74,8,255,252,242,15,44,74,8,255,221,66,8,219,92,36,8,139,76,36,
303 233,137,68,36,8,248,1,136,77,0,131,197,1,131,232,1,15,133,244,1,139,131,233, 304 8,255,139,68,36,20,57,197,15,130,244,251,248,2,133,201,15,142,244,253,248,
304 252,233,244,114,248,119,129,252,248,239,255,15,130,244,56,139,171,233,59, 305 3,139,108,36,12,41,200,15,140,244,121,141,172,253,13,233,131,192,1,248,4,
305 171,233,15,130,244,247,232,244,67,248,1,129,122,253,4,239,15,133,244,56,139, 306 137,68,36,8,137,232,252,233,244,119,248,5,15,140,244,252,141,68,40,1,252,
306 42,139,133,233,133,192,15,132,244,116,57,131,233,15,130,244,120,129,197,239, 307 233,244,2,248,6,137,232,252,233,244,2,248,7,255,15,132,244,254,1,252,233,
307 137,116,36,20,137,68,36,8,139,179,233,248,1,255,15,182,77,0,131,197,1,131, 308 131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,233,244,3,248,121,49,192,252,
308 232,1,136,12,6,15,133,244,1,137,252,240,139,116,36,20,252,233,244,114,248, 309 233,244,4,248,122,129,252,248,239,15,130,244,59,139,171,233,59,171,233,15,
309 121,129,252,248,239,15,130,244,56,139,171,233,59,171,233,15,130,244,247,232, 310 130,244,247,232,244,71,248,1,255,129,122,253,4,239,15,133,244,59,129,122,
310 244,67,248,1,129,122,253,4,239,15,133,244,56,139,42,139,133,233,57,131,233, 311 253,12,239,139,42,255,15,133,244,59,139,66,8,255,15,131,244,59,252,242,15,
311 255,15,130,244,120,129,197,239,137,116,36,20,137,68,36,8,139,179,233,252, 312 44,66,8,255,15,131,244,59,221,66,8,219,92,36,20,139,68,36,20,255,133,192,
312 233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,130,244,248,131,252,249, 313 15,142,244,121,131,189,233,1,15,130,244,121,15,133,244,123,57,131,233,15,
313 90,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,1,15,137,244, 314 130,244,123,15,182,141,233,139,171,233,137,68,36,8,248,1,136,77,0,131,197,
314 1,137,252,240,139,116,36,20,252,233,244,114,248,122,129,252,248,239,15,130, 315 1,131,232,1,15,133,244,1,139,131,233,252,233,244,119,248,124,129,252,248,
315 244,56,255,139,171,233,59,171,233,15,130,244,247,232,244,67,248,1,129,122, 316 239,255,15,130,244,59,139,171,233,59,171,233,15,130,244,247,232,244,71,248,
316 253,4,239,15,133,244,56,139,42,139,133,233,57,131,233,15,130,244,120,129, 317 1,129,122,253,4,239,15,133,244,59,139,42,139,133,233,133,192,15,132,244,121,
317 197,239,137,116,36,20,137,68,36,8,139,179,233,252,233,244,249,248,1,15,182, 318 57,131,233,15,130,244,125,129,197,239,137,116,36,20,137,68,36,8,139,179,233,
318 76,5,0,131,252,249,97,15,130,244,248,255,131,252,249,122,15,135,244,248,131, 319 248,1,255,15,182,77,0,131,197,1,131,232,1,136,12,6,15,133,244,1,137,252,240,
319 252,241,32,248,2,136,12,6,248,3,131,232,1,15,137,244,1,137,252,240,139,116, 320 139,116,36,20,252,233,244,119,248,126,129,252,248,239,15,130,244,59,139,171,
320 36,20,252,233,244,114,248,123,129,252,248,239,15,130,244,56,129,122,253,4, 321 233,59,171,233,15,130,244,247,232,244,71,248,1,129,122,253,4,239,15,133,244,
321 239,15,133,244,56,137,213,139,10,232,251,1,19,137,252,234,255,252,242,15, 322 59,139,42,139,133,233,57,131,233,255,15,130,244,125,129,197,239,137,116,36,
322 42,192,252,233,244,64,255,137,4,36,219,4,36,252,233,244,65,255,248,124,129, 323 20,137,68,36,8,139,179,233,252,233,244,249,248,1,15,182,76,5,0,131,252,249,
323 252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,252,242,15,16,2, 324 65,15,130,244,248,131,252,249,90,15,135,244,248,131,252,241,32,248,2,136,
324 189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126, 325 12,6,248,3,131,232,1,15,137,244,1,137,252,240,139,116,36,20,252,233,244,119,
325 197,252,242,15,42,197,252,233,244,64,255,248,124,129,252,248,239,15,130,244, 326 248,127,129,252,248,239,15,130,244,59,255,139,171,233,59,171,233,15,130,244,
326 56,129,122,253,4,239,15,135,244,56,221,2,199,68,36,16,0,0,192,89,216,68,36, 327 247,232,244,71,248,1,129,122,253,4,239,15,133,244,59,139,42,139,133,233,57,
327 16,221,28,36,219,4,36,252,233,244,65,255,248,125,129,252,248,239,15,130,244, 328 131,233,15,130,244,125,129,197,239,137,116,36,20,137,68,36,8,139,179,233,
328 56,129,122,253,4,239,15,135,244,56,252,242,15,16,2,189,0,0,56,67,102,15,110, 329 252,233,244,249,248,1,15,182,76,5,0,131,252,249,97,15,130,244,248,255,131,
329 205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255,248,125,129,252, 330 252,249,122,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,1,
330 248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,221,2,199,68,36,16, 331 15,137,244,1,137,252,240,139,116,36,20,252,233,244,119,248,128,129,252,248,
331 0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,137,68,36,20,141,68,194,252, 332 239,15,130,244,59,129,122,253,4,239,15,133,244,59,137,213,139,10,232,251,
332 240,248,1,57,208,15,134,244,126,129,120,253,4,239,15,135,244,127,255,252, 333 1,20,137,252,234,255,137,197,252,233,244,67,255,252,242,15,42,192,252,233,
333 242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,221,0,216,68,36,16, 334 244,68,255,137,4,36,219,4,36,252,233,244,69,255,248,129,129,122,253,4,239,
334 221,28,36,35,44,36,255,131,232,8,252,233,244,1,255,248,128,129,252,248,239, 335 255,15,133,244,247,139,42,252,233,244,85,248,1,15,135,244,59,255,252,242,
335 15,130,244,56,129,122,253,4,239,15,135,244,56,252,242,15,16,2,189,0,0,56, 336 15,16,2,189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,
336 67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255, 337 102,15,126,197,255,221,2,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,255,
337 248,128,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,221, 338 139,44,36,255,252,233,244,85,255,248,130,255,189,0,0,56,67,102,15,110,205,
338 2,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,252,242,15, 339 102,15,112,201,81,255,199,68,36,16,0,0,192,89,255,15,133,244,247,139,42,252,
339 16,0,252,242,15,88,193,102,15,126,193,9,205,255,221,0,216,68,36,16,221,28, 340 233,244,248,248,1,15,135,244,59,255,252,242,15,16,2,252,242,15,88,193,102,
340 36,11,44,36,255,248,129,129,252,248,239,15,130,244,56,129,122,253,4,239,15, 341 15,126,197,255,221,2,216,68,36,16,221,28,36,139,44,36,255,248,2,137,68,36,
341 135,244,56,252,242,15,16,2,189,0,0,56,67,102,15,110,205,102,15,112,201,81, 342 20,141,68,194,252,240,248,1,57,208,15,134,244,85,129,120,253,4,239,255,15,
342 252,242,15,88,193,102,15,126,197,255,248,129,129,252,248,239,15,130,244,56, 343 133,244,248,35,40,131,232,8,252,233,244,1,248,2,15,135,244,131,255,15,131,
343 129,122,253,4,239,15,135,244,56,221,2,199,68,36,16,0,0,192,89,216,68,36,16, 344 244,131,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,221,
344 221,28,36,139,44,36,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193, 345 0,216,68,36,16,221,28,36,35,44,36,255,131,232,8,252,233,244,1,248,132,255,
345 49,205,255,221,0,216,68,36,16,221,28,36,51,44,36,255,248,130,129,252,248, 346 15,133,244,248,11,40,131,232,8,252,233,244,1,248,2,15,135,244,131,255,252,
346 239,15,130,244,56,129,122,253,4,239,15,135,244,56,252,242,15,16,2,189,0,0, 347 242,15,16,0,252,242,15,88,193,102,15,126,193,9,205,255,221,0,216,68,36,16,
347 56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255, 348 221,28,36,11,44,36,255,131,232,8,252,233,244,1,248,133,255,15,133,244,248,
348 248,130,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,221, 349 51,40,131,232,8,252,233,244,1,248,2,15,135,244,131,255,252,242,15,16,0,252,
349 2,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,15,205,252, 350 242,15,88,193,102,15,126,193,49,205,255,221,0,216,68,36,16,221,28,36,51,44,
350 233,244,126,255,248,131,129,252,248,239,15,130,244,56,129,122,253,4,239,15, 351 36,255,131,232,8,252,233,244,1,248,134,129,122,253,4,239,255,221,2,199,68,
351 135,244,56,252,242,15,16,2,189,0,0,56,67,102,15,110,205,102,15,112,201,81, 352 36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,248,2,15,205,252,233,
352 252,242,15,88,193,102,15,126,197,255,248,131,129,252,248,239,15,130,244,56, 353 244,85,248,135,129,122,253,4,239,255,248,2,252,247,213,255,248,85,252,242,
353 129,122,253,4,239,15,135,244,56,221,2,199,68,36,16,0,0,192,89,216,68,36,16, 354 15,42,197,252,233,244,68,255,248,85,137,44,36,219,4,36,252,233,244,69,255,
354 221,28,36,139,44,36,255,252,247,213,255,248,126,252,242,15,42,197,252,233, 355 248,131,139,68,36,20,252,233,244,59,255,248,136,129,122,253,4,239,255,248,
355 244,64,255,248,126,137,44,36,219,4,36,252,233,244,65,255,248,127,139,68,36, 356 2,129,122,253,12,239,15,133,244,59,139,74,8,255,248,136,129,252,248,239,15,
356 20,252,233,244,56,255,248,132,129,252,248,239,15,130,244,56,129,122,253,4, 357 130,244,59,129,122,253,4,239,15,131,244,59,129,122,253,12,239,15,131,244,
357 239,15,135,244,56,129,122,253,12,239,15,135,244,56,252,242,15,16,2,252,242, 358 59,252,242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,
358 15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,15,88,194, 359 112,210,81,252,242,15,88,194,252,242,15,88,202,102,15,126,197,102,15,126,
359 252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,248,132,129,252, 360 201,255,248,136,129,252,248,239,15,130,244,59,129,122,253,4,239,15,131,244,
360 248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,129,122,253,12,239, 361 59,129,122,253,12,239,15,131,244,59,221,2,221,66,8,199,68,36,16,0,0,192,89,
361 15,135,244,56,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92, 362 216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,139,76,36,8,139,44,36,255,
362 36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,255,211,229,137, 363 211,229,252,233,244,85,255,248,137,129,122,253,4,239,255,248,137,129,252,
363 193,252,233,244,126,255,248,133,129,252,248,239,15,130,244,56,129,122,253, 364 248,239,15,130,244,59,129,122,253,4,239,15,131,244,59,129,122,253,12,239,
364 4,239,15,135,244,56,129,122,253,12,239,15,135,244,56,252,242,15,16,2,252, 365 15,131,244,59,252,242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,
365 242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,15, 366 213,102,15,112,210,81,252,242,15,88,194,252,242,15,88,202,102,15,126,197,
366 88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,248,133, 367 102,15,126,201,255,248,137,129,252,248,239,15,130,244,59,129,122,253,4,239,
367 129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,129,122,253, 368 15,131,244,59,129,122,253,12,239,15,131,244,59,221,2,221,66,8,199,68,36,16,
368 12,239,15,135,244,56,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,36,16, 369 0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,139,76,36,8,139,
369 221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,255,211, 370 44,36,255,211,252,237,252,233,244,85,255,248,138,129,122,253,4,239,255,248,
370 252,237,137,193,252,233,244,126,255,248,134,129,252,248,239,15,130,244,56, 371 138,129,252,248,239,15,130,244,59,129,122,253,4,239,15,131,244,59,129,122,
371 129,122,253,4,239,15,135,244,56,129,122,253,12,239,15,135,244,56,252,242, 372 253,12,239,15,131,244,59,252,242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,
372 15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81, 373 102,15,110,213,102,15,112,210,81,252,242,15,88,194,252,242,15,88,202,102,
373 252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201, 374 15,126,197,102,15,126,201,255,248,138,129,252,248,239,15,130,244,59,129,122,
374 255,248,134,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56, 375 253,4,239,15,131,244,59,129,122,253,12,239,15,131,244,59,221,2,221,66,8,199,
375 129,122,253,12,239,15,135,244,56,221,2,221,66,8,199,68,36,16,0,0,192,89,216, 376 68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,139,76,
376 68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36, 377 36,8,139,44,36,255,211,252,253,252,233,244,85,255,248,139,129,122,253,4,239,
377 255,211,252,253,137,193,252,233,244,126,255,248,135,129,252,248,239,15,130, 378 255,248,139,129,252,248,239,15,130,244,59,129,122,253,4,239,15,131,244,59,
378 244,56,129,122,253,4,239,15,135,244,56,129,122,253,12,239,15,135,244,56,252, 379 129,122,253,12,239,15,131,244,59,252,242,15,16,2,252,242,15,16,74,8,189,0,
379 242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210, 380 0,56,67,102,15,110,213,102,15,112,210,81,252,242,15,88,194,252,242,15,88,
380 81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126, 381 202,102,15,126,197,102,15,126,201,255,248,139,129,252,248,239,15,130,244,
381 201,255,248,135,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244, 382 59,129,122,253,4,239,15,131,244,59,129,122,253,12,239,15,131,244,59,221,2,
382 56,129,122,253,12,239,15,135,244,56,221,2,221,66,8,199,68,36,16,0,0,192,89, 383 221,66,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,
383 216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44, 384 28,36,139,76,36,8,139,44,36,255,211,197,252,233,244,85,255,248,140,129,122,
384 36,255,211,197,137,193,252,233,244,126,255,248,136,129,252,248,239,15,130, 385 253,4,239,255,248,140,129,252,248,239,15,130,244,59,129,122,253,4,239,15,
385 244,56,129,122,253,4,239,15,135,244,56,129,122,253,12,239,15,135,244,56,252, 386 131,244,59,129,122,253,12,239,15,131,244,59,252,242,15,16,2,252,242,15,16,
386 242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210, 387 74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,15,88,194,252,
387 81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126, 388 242,15,88,202,102,15,126,197,102,15,126,201,255,248,140,129,252,248,239,15,
388 201,255,248,136,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244, 389 130,244,59,129,122,253,4,239,15,131,244,59,129,122,253,12,239,15,131,244,
389 56,129,122,253,12,239,15,135,244,56,221,2,221,66,8,199,68,36,16,0,0,192,89, 390 59,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,
390 216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44, 391 36,16,221,28,36,139,76,36,8,139,44,36,255,211,205,252,233,244,85,248,123,
391 36,255,211,205,137,193,252,233,244,126,248,118,184,237,252,233,244,56,248, 392 184,237,252,233,244,59,248,125,184,237,248,59,139,108,36,48,139,114,252,252,
392 120,184,237,248,56,139,108,36,48,139,114,252,252,137,116,36,24,137,149,233, 393 137,116,36,24,137,149,233,141,68,194,252,248,141,136,233,137,133,233,139,
393 141,68,194,252,248,141,136,233,137,133,233,139,66,252,248,59,141,233,15,135, 394 66,252,248,59,141,233,15,135,244,251,137,44,36,252,255,144,233,139,149,233,
394 244,251,137,44,36,252,255,144,233,139,149,233,133,192,15,143,244,70,248,1, 395 133,192,15,143,244,74,248,1,255,139,141,233,41,209,193,252,233,3,133,192,
395 255,139,141,233,41,209,193,252,233,3,133,192,141,65,1,139,106,252,248,15, 396 141,65,1,139,106,252,248,15,133,244,248,139,181,233,139,14,15,182,252,233,
396 133,244,248,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255, 397 15,182,205,131,198,4,252,255,36,171,248,2,137,209,252,247,198,237,15,133,
397 36,171,248,2,137,209,252,247,198,237,15,133,244,249,15,182,110,252,253,252, 398 244,249,15,182,110,252,253,252,247,213,141,20,252,234,252,233,244,27,248,
398 247,213,141,20,252,234,252,233,244,27,248,3,137,252,245,131,229,252,248,41, 399 3,137,252,245,131,229,252,248,41,252,234,252,233,244,27,248,5,186,237,137,
399 252,234,252,233,244,27,248,5,186,237,137,252,233,232,251,1,0,139,149,233, 400 252,233,232,251,1,0,139,149,233,49,192,252,233,244,1,248,71,93,137,108,36,
400 49,192,252,233,244,1,248,67,93,137,108,36,16,139,108,36,48,137,116,36,24, 401 16,139,108,36,48,137,116,36,24,137,149,233,255,141,68,194,252,248,137,252,
401 137,149,233,255,141,68,194,252,248,137,252,233,137,133,233,232,251,1,20,139, 402 233,137,133,233,232,251,1,21,139,149,233,139,133,233,41,208,193,232,3,131,
402 149,233,139,133,233,41,208,193,232,3,131,192,1,139,108,36,16,85,195,248,137, 403 192,1,139,108,36,16,85,195,248,141,255,15,182,131,233,168,235,15,133,244,
403 255,15,182,131,233,168,235,15,133,244,251,168,235,15,133,244,247,168,235, 404 251,168,235,15,133,244,247,168,235,15,132,244,247,252,255,139,233,252,233,
404 15,132,244,247,252,255,139,233,252,233,244,247,255,248,138,15,182,131,233, 405 244,247,255,248,142,15,182,131,233,168,235,15,133,244,251,252,233,244,247,
405 168,235,15,133,244,251,252,233,244,247,248,139,15,182,131,233,168,235,15, 406 248,143,15,182,131,233,168,235,15,133,244,251,168,235,15,132,244,251,252,
406 133,244,251,168,235,15,132,244,251,252,255,139,233,15,132,244,247,168,235, 407 255,139,233,15,132,244,247,168,235,15,132,244,251,248,1,255,139,108,36,48,
407 15,132,244,251,248,1,255,139,108,36,48,137,149,233,137,252,242,137,252,233, 408 137,149,233,137,252,242,137,252,233,232,251,1,22,248,3,139,149,233,248,4,
408 232,251,1,21,248,3,139,149,233,248,4,15,182,78,252,253,248,5,15,182,110,252, 409 15,182,78,252,253,248,5,15,182,110,252,252,15,183,70,252,254,252,255,164,
409 252,15,183,70,252,254,252,255,164,253,171,233,248,140,131,198,4,139,77,232, 410 253,171,233,248,144,131,198,4,139,77,232,137,76,36,20,252,233,244,4,248,145,
410 137,76,36,20,252,233,244,4,248,141,255,139,106,252,248,139,173,233,15,182, 411 255,139,106,252,248,139,173,233,15,182,133,233,141,4,194,139,108,36,48,137,
411 133,233,141,4,194,139,108,36,48,137,149,233,137,133,233,137,252,242,141,139, 412 149,233,137,133,233,137,252,242,141,139,233,137,171,233,137,116,36,24,232,
412 233,137,171,233,137,116,36,24,232,251,1,22,252,233,244,3,255,248,142,137, 413 251,1,23,252,233,244,3,255,248,146,137,116,36,24,255,248,147,255,137,116,
413 116,36,24,255,248,143,255,137,116,36,24,131,206,1,248,1,255,141,68,194,252, 414 36,24,131,206,1,248,1,255,141,68,194,252,248,139,108,36,48,137,149,233,137,
414 248,139,108,36,48,137,149,233,137,133,233,137,252,242,137,252,233,232,251, 415 133,233,137,252,242,137,252,233,232,251,1,24,199,68,36,24,0,0,0,0,255,131,
415 1,23,199,68,36,24,0,0,0,0,255,131,230,252,254,255,139,149,233,137,193,139, 416 230,252,254,255,139,149,233,137,193,139,133,233,41,208,137,205,15,182,78,
416 133,233,41,208,137,205,15,182,78,252,253,193,232,3,131,192,1,252,255,229, 417 252,253,193,232,3,131,192,1,252,255,229,248,148,255,85,141,108,36,12,85,83,
417 248,144,255,85,141,108,36,12,85,83,82,81,80,15,182,69,252,252,138,101,252, 418 82,81,80,15,182,69,252,252,138,101,252,248,137,125,252,252,137,117,252,248,
418 248,137,125,252,252,137,117,252,248,139,93,0,139,139,233,199,131,233,237, 419 139,93,0,139,139,233,199,131,233,237,137,131,233,137,139,233,129,252,236,
419 137,131,233,137,139,233,129,252,236,239,252,242,15,17,125,216,252,242,15, 420 239,252,242,15,17,125,216,252,242,15,17,117,208,252,242,15,17,109,200,252,
420 17,117,208,252,242,15,17,109,200,252,242,15,17,101,192,252,242,15,17,93,184, 421 242,15,17,101,192,252,242,15,17,93,184,252,242,15,17,85,176,252,242,15,17,
421 252,242,15,17,85,176,252,242,15,17,77,168,252,242,15,17,69,160,139,171,233, 422 77,168,252,242,15,17,69,160,139,171,233,139,147,233,137,171,233,199,131,233,
422 139,147,233,137,171,233,199,131,233,0,0,0,0,137,149,233,141,84,36,16,141, 423 0,0,0,0,137,149,233,141,84,36,16,141,139,233,232,251,1,25,139,141,233,129,
423 139,233,232,251,1,24,139,141,233,129,225,239,137,204,137,169,233,139,149, 424 225,239,137,204,137,169,233,139,149,233,139,177,233,255,248,149,255,133,192,
424 233,139,177,233,255,248,145,255,133,192,15,136,244,249,137,68,36,20,139,122, 425 15,136,244,249,137,68,36,20,139,122,252,248,139,191,233,139,191,233,199,131,
425 252,248,139,191,233,139,191,233,199,131,233,0,0,0,0,199,131,233,237,139,6, 426 233,0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4,193,232,
426 15,182,204,15,182,232,131,198,4,193,232,16,129,252,253,239,15,130,244,248, 427 16,129,252,253,239,15,130,244,248,139,68,36,20,248,2,252,255,36,171,248,3,
427 139,68,36,20,248,2,252,255,36,171,248,3,252,247,216,137,252,233,137,194,232, 428 252,247,216,137,252,233,137,194,232,251,1,26,255,248,87,255,217,124,36,4,
428 251,1,25,255,248,83,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36, 429 137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,
429 4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108, 430 36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,150,102,
430 36,4,139,68,36,8,195,255,248,146,102,15,252,239,210,102,15,118,210,102,15, 431 15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,
431 115,210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15, 432 102,15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,
432 84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242, 433 15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,184,0,0,252,240,
433 15,92,203,102,15,86,202,184,0,0,252,240,63,102,15,110,208,102,15,112,210, 434 63,102,15,110,208,102,15,112,210,81,252,242,15,194,193,1,102,15,84,194,252,
434 81,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195, 435 242,15,92,200,15,40,193,248,1,195,248,89,255,217,124,36,4,137,68,36,8,102,
435 248,85,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252, 436 184,0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,
436 255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68, 437 6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,151,102,15,252,239,210,
437 36,8,195,255,248,147,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184, 438 102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,
438 0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,102,15, 439 81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,
439 46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102, 440 242,15,88,203,252,242,15,92,203,102,15,86,202,184,0,0,252,240,191,102,15,
440 15,86,202,184,0,0,252,240,191,102,15,110,208,102,15,112,210,81,252,242,15, 441 110,208,102,15,112,210,81,252,242,15,194,193,6,102,15,84,194,252,242,15,92,
441 194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,105,255, 442 200,15,40,193,248,1,195,248,110,255,217,124,36,4,137,68,36,8,102,184,0,12,
442 217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217, 443 102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,
443 108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,148,102,15,252, 444 68,36,8,195,255,248,152,102,15,252,239,210,102,15,118,210,102,15,115,210,
444 239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,102, 445 1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,
445 15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15, 446 102,15,46,217,15,134,244,247,102,15,85,208,15,40,193,252,242,15,88,203,252,
446 85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,184,0,0,252,240,63,102, 447 242,15,92,203,184,0,0,252,240,63,102,15,110,216,102,15,112,219,81,252,242,
447 15,110,216,102,15,112,219,81,252,242,15,194,193,1,102,15,84,195,252,242,15, 448 15,194,193,1,102,15,84,195,252,242,15,92,200,102,15,86,202,15,40,193,248,
448 92,200,102,15,86,202,15,40,193,248,1,195,248,149,255,15,40,232,252,242,15, 449 1,195,248,153,255,15,40,232,252,242,15,94,193,102,15,252,239,210,102,15,118,
449 94,193,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102, 450 210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,
450 15,110,216,102,15,112,219,81,15,40,224,102,15,84,226,102,15,46,220,15,134, 451 224,102,15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242,15,88,
451 244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,184, 452 227,252,242,15,92,227,102,15,86,226,184,0,0,252,240,63,102,15,110,208,102,
452 0,0,252,240,63,102,15,110,208,102,15,112,210,81,252,242,15,194,196,1,102, 453 15,112,210,81,252,242,15,194,196,1,102,15,84,194,252,242,15,92,224,15,40,
453 15,84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,242,15,92,193, 454 197,252,242,15,89,204,252,242,15,92,193,195,248,1,252,242,15,89,200,15,40,
454 195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,217,193,216, 455 197,252,242,15,92,193,195,255,217,193,216,252,241,217,124,36,4,102,184,0,
455 252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102, 456 4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,
456 137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,252,233,195, 457 252,252,217,108,36,4,222,201,222,252,233,195,255,248,94,217,252,234,222,201,
457 255,248,89,217,252,234,222,201,248,150,217,84,36,4,129,124,36,4,0,0,128,127, 458 248,154,217,84,36,4,129,124,36,4,0,0,128,127,15,132,244,247,129,124,36,4,
458 15,132,244,247,129,124,36,4,0,0,128,252,255,15,132,244,248,248,151,217,192, 459 0,0,128,252,255,15,132,244,248,248,155,217,192,217,252,252,220,252,233,217,
459 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221, 460 201,217,252,240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216,
460 217,248,1,195,248,2,221,216,217,252,238,195,255,248,108,219,84,36,4,219,68, 461 217,252,238,195,255,248,113,219,84,36,4,219,68,36,4,255,223,252,233,255,221,
461 36,4,255,223,252,233,255,221,252,233,223,224,158,255,15,133,244,254,15,138, 462 252,233,223,224,158,255,15,133,244,254,15,138,244,255,221,216,139,68,36,4,
462 244,255,221,216,139,68,36,4,131,252,248,1,15,142,244,252,248,1,169,1,0,0, 463 131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,216,200,209,
463 0,15,133,244,248,216,200,209,232,252,233,244,1,248,2,209,232,15,132,244,251, 464 232,252,233,244,1,248,2,209,232,15,132,244,251,217,192,248,3,216,200,209,
464 217,192,248,3,216,200,209,232,15,132,244,250,15,131,244,3,220,201,252,233, 465 232,15,132,244,250,15,131,244,3,220,201,252,233,244,3,248,4,255,222,201,248,
465 244,3,248,4,255,222,201,248,5,195,248,6,15,132,244,5,15,130,244,253,217,232, 466 5,195,248,6,15,132,244,5,15,130,244,253,217,232,222,252,241,252,247,216,131,
466 222,252,241,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,221, 467 252,248,1,15,132,244,5,252,233,244,1,248,7,221,216,217,232,195,248,8,217,
467 216,217,232,195,248,8,217,84,36,4,217,201,217,84,36,8,139,68,36,4,209,224, 468 84,36,4,217,201,217,84,36,8,139,68,36,4,209,224,61,0,0,0,252,255,15,132,244,
468 61,0,0,0,252,255,15,132,244,248,139,68,36,8,209,224,15,132,244,250,61,0,0, 469 248,139,68,36,8,209,224,15,132,244,250,61,0,0,0,252,255,15,132,244,250,217,
469 0,252,255,15,132,244,250,217,252,241,252,233,244,151,248,9,255,217,232,255, 470 252,241,252,233,244,155,248,9,255,217,232,255,223,252,234,255,221,252,234,
470 223,252,234,255,221,252,234,223,224,158,255,15,132,244,247,217,201,248,1, 471 223,224,158,255,15,132,244,247,217,201,248,1,221,216,195,248,2,217,225,217,
471 221,216,195,248,2,217,225,217,232,255,15,132,244,249,221,216,217,225,217, 472 232,255,15,132,244,249,221,216,217,225,217,252,238,184,0,0,0,0,15,146,208,
472 252,238,184,0,0,0,0,15,146,208,209,200,51,68,36,4,15,137,244,249,217,201, 473 209,200,51,68,36,4,15,137,244,249,217,201,248,3,221,217,217,225,195,248,4,
473 248,3,221,217,217,225,195,248,4,131,124,36,4,0,15,141,244,3,221,216,221,216, 474 131,124,36,4,0,15,141,244,3,221,216,221,216,133,192,15,132,244,251,217,252,
474 133,192,15,132,244,251,217,252,238,195,248,5,199,68,36,4,0,0,128,127,217, 475 238,195,248,5,199,68,36,4,0,0,128,127,217,68,36,4,195,255,248,113,255,248,
475 68,36,4,195,255,248,108,255,248,152,252,242,15,45,193,252,242,15,42,208,102, 476 156,252,242,15,45,193,252,242,15,42,208,102,15,46,202,15,133,244,254,15,138,
476 15,46,202,15,133,244,254,15,138,244,255,248,153,131,252,248,1,15,142,244, 477 244,255,248,157,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,
477 252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244, 478 248,252,242,15,89,192,209,232,252,233,244,1,248,2,209,232,15,132,244,251,
478 1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232, 479 15,40,200,248,3,252,242,15,89,192,209,232,15,132,244,250,15,131,244,3,255,
479 15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252, 480 252,242,15,89,200,252,233,244,3,248,4,252,242,15,89,193,248,5,195,248,6,15,
480 242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,252,247,216,232, 481 132,244,5,15,130,244,253,252,247,216,232,244,1,184,0,0,252,240,63,102,15,
481 244,1,184,0,0,252,240,63,102,15,110,200,102,15,112,201,81,252,242,15,94,200, 482 110,200,102,15,112,201,81,252,242,15,94,200,15,40,193,195,248,7,184,0,0,252,
482 15,40,193,195,248,7,184,0,0,252,240,63,102,15,110,192,102,15,112,192,81,195, 483 240,63,102,15,110,192,102,15,112,192,81,195,248,8,252,242,15,17,76,36,12,
483 248,8,252,242,15,17,76,36,12,252,242,15,17,68,36,4,131,124,36,12,0,15,133, 484 252,242,15,17,68,36,4,131,124,36,12,0,15,133,244,247,139,68,36,16,209,224,
484 244,247,139,68,36,16,209,224,61,0,0,224,252,255,15,132,244,248,248,1,131, 485 61,0,0,224,252,255,15,132,244,248,248,1,131,124,36,4,0,15,133,244,247,255,
485 124,36,4,0,15,133,244,247,255,139,68,36,8,209,224,15,132,244,250,61,0,0,224, 486 139,68,36,8,209,224,15,132,244,250,61,0,0,224,252,255,15,132,244,251,248,
486 252,255,15,132,244,251,248,1,221,68,36,12,221,68,36,4,217,252,241,217,192, 487 1,221,68,36,12,221,68,36,4,217,252,241,217,192,217,252,252,220,252,233,217,
487 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221, 488 201,217,252,240,217,232,222,193,217,252,253,221,217,221,92,36,4,252,242,15,
488 217,221,92,36,4,252,242,15,16,68,36,4,195,248,9,184,0,0,252,240,63,102,15, 489 16,68,36,4,195,248,9,184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,
489 110,208,102,15,112,210,81,102,15,46,194,15,132,244,247,15,40,193,248,1,195, 490 102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,2,102,15,252,239,210,
490 248,2,102,15,252,239,210,102,15,118,210,102,15,115,210,1,102,15,84,194,184, 491 102,15,118,210,102,15,115,210,1,102,15,84,194,184,0,0,252,240,63,102,15,110,
491 0,0,252,240,63,102,15,110,208,102,15,112,210,81,102,15,46,194,15,132,244, 492 208,102,15,112,210,81,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192,
492 1,102,15,80,193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,184, 493 136,196,15,146,208,48,224,15,133,244,1,248,3,184,0,0,252,240,127,102,15,110,
493 0,0,252,240,127,102,15,110,192,102,15,112,192,81,195,248,4,102,15,80,193, 494 192,102,15,112,192,81,195,248,4,102,15,80,193,133,192,15,133,244,3,15,87,
494 133,192,15,133,244,3,15,87,192,195,248,5,102,15,80,193,133,192,15,132,244, 495 192,195,248,5,102,15,80,193,133,192,15,132,244,3,255,15,87,192,195,248,158,
495 3,255,15,87,192,195,248,154,255,139,68,36,12,252,242,15,16,68,36,4,131,252, 496 255,139,68,36,12,252,242,15,16,68,36,4,131,252,248,1,15,132,244,247,15,135,
496 248,1,15,132,244,247,15,135,244,248,232,244,83,252,233,244,253,248,1,232, 497 244,248,232,244,87,252,233,244,253,248,1,232,244,89,252,233,244,253,248,2,
497 244,85,252,233,244,253,248,2,131,252,248,3,15,132,244,247,15,135,244,248, 498 131,252,248,3,15,132,244,247,15,135,244,248,232,244,110,255,252,233,244,253,
498 232,244,105,255,252,233,244,253,248,1,252,242,15,81,192,248,7,252,242,15, 499 248,1,252,242,15,81,192,248,7,252,242,15,17,68,36,4,221,68,36,4,195,248,2,
499 17,68,36,4,221,68,36,4,195,248,2,221,68,36,4,131,252,248,5,15,130,244,89, 500 221,68,36,4,131,252,248,5,15,130,244,94,15,132,244,154,248,2,131,252,248,
500 15,132,244,150,248,2,131,252,248,7,15,132,244,247,15,135,244,248,217,252, 501 7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,
501 237,217,201,217,252,241,195,248,1,217,232,217,201,217,252,241,195,248,2,131, 502 217,232,217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,15,135,
502 252,248,9,15,132,244,247,15,135,244,248,255,217,252,236,217,201,217,252,241, 503 244,248,255,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,
503 195,248,1,217,252,254,195,248,2,131,252,248,11,15,132,244,247,15,135,244, 504 2,131,252,248,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,
504 255,217,252,255,195,248,1,217,252,242,221,216,195,255,139,68,36,12,221,68, 505 252,242,221,216,195,255,139,68,36,12,221,68,36,4,131,252,248,1,15,130,244,
505 36,4,131,252,248,1,15,130,244,83,15,132,244,85,131,252,248,3,15,130,244,105, 506 87,15,132,244,89,131,252,248,3,15,130,244,110,15,135,244,248,217,252,250,
506 15,135,244,248,217,252,250,195,248,2,131,252,248,5,15,130,244,89,15,132,244, 507 195,248,2,131,252,248,5,15,130,244,94,15,132,244,154,131,252,248,7,15,132,
507 150,131,252,248,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252, 508 244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232,
508 241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,248,9,15,132, 509 217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,255,15,135,244,
509 244,247,255,15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217, 510 248,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,
510 252,254,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,217,252,255, 511 248,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,
511 195,248,1,217,252,242,221,216,195,255,248,9,204,255,248,155,255,139,68,36, 512 216,195,255,248,9,204,255,248,159,255,139,68,36,20,252,242,15,16,68,36,4,
512 20,252,242,15,16,68,36,4,252,242,15,16,76,36,12,131,252,248,1,15,132,244, 513 252,242,15,16,76,36,12,131,252,248,1,15,132,244,247,15,135,244,248,252,242,
513 247,15,135,244,248,252,242,15,88,193,248,7,252,242,15,17,68,36,4,221,68,36, 514 15,88,193,248,7,252,242,15,17,68,36,4,221,68,36,4,195,248,1,252,242,15,92,
514 4,195,248,1,252,242,15,92,193,252,233,244,7,248,2,131,252,248,3,15,132,244, 515 193,252,233,244,7,248,2,131,252,248,3,15,132,244,247,15,135,244,248,252,242,
515 247,15,135,244,248,252,242,15,89,193,252,233,244,7,248,1,252,242,15,94,193, 516 15,89,193,252,233,244,7,248,1,252,242,15,94,193,252,233,244,7,248,2,131,252,
516 252,233,244,7,248,2,131,252,248,5,15,132,244,247,255,15,135,244,248,232,244, 517 248,5,15,132,244,247,255,15,135,244,248,232,244,153,252,233,244,7,248,1,90,
517 149,252,233,244,7,248,1,90,232,244,108,82,252,233,244,7,248,2,131,252,248, 518 232,244,113,82,252,233,244,7,248,2,131,252,248,7,15,132,244,247,15,135,244,
518 7,15,132,244,247,15,135,244,248,184,0,0,0,128,102,15,110,200,102,15,112,201, 519 248,184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,252,233,244,
519 81,15,87,193,252,233,244,7,248,1,102,15,252,239,201,102,15,118,201,102,15, 520 7,248,1,102,15,252,239,201,102,15,118,201,102,15,115,209,1,15,84,193,252,
520 115,209,1,15,84,193,252,233,244,7,248,2,255,131,252,248,9,15,135,244,248, 521 233,244,7,248,2,255,131,252,248,9,15,135,244,248,221,68,36,4,221,68,36,12,
521 221,68,36,4,221,68,36,12,15,132,244,247,217,252,243,195,248,1,217,201,217, 522 15,132,244,247,217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,
522 252,253,221,217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,252, 523 2,131,252,248,11,15,132,244,247,15,135,244,255,252,242,15,93,193,252,233,
523 242,15,93,193,252,233,244,7,248,1,252,242,15,95,193,252,233,244,7,248,9,204, 524 244,7,248,1,252,242,15,95,193,252,233,244,7,248,9,204,255,139,68,36,20,221,
524 255,139,68,36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15, 525 68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,
525 135,244,248,222,193,195,248,1,222,252,233,195,248,2,131,252,248,3,15,132, 526 195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,
526 244,247,15,135,244,248,222,201,195,248,1,222,252,249,195,248,2,131,252,248, 527 222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,153,15,132,
527 5,15,130,244,149,15,132,244,108,131,252,248,7,15,132,244,247,15,135,244,248, 528 244,113,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,
528 255,221,216,217,224,195,248,1,221,216,217,225,195,248,2,131,252,248,9,15, 529 248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,
529 132,244,247,15,135,244,248,217,252,243,195,248,1,217,201,217,252,253,221, 530 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,
530 217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,255,219,252,233, 531 15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,
531 219,209,221,217,195,248,1,219,252,233,218,209,221,217,195,255,221,225,223, 532 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,
532 224,252,246,196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221,225, 533 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,
533 223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248,156, 534 244,248,217,201,248,2,221,216,195,255,248,160,156,90,137,209,129,252,242,
534 156,90,137,209,129,252,242,0,0,32,0,82,157,156,90,49,192,57,209,15,132,244, 535 0,0,32,0,82,157,156,90,49,192,57,209,15,132,244,247,139,68,36,4,87,83,15,
535 247,139,68,36,4,87,83,15,162,139,124,36,16,137,7,137,95,4,137,79,8,137,87, 536 162,139,124,36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248,1,195,248,161,
536 12,91,95,248,1,195,248,157,255,85,137,229,83,137,203,43,163,233,255,137,163, 537 255,85,137,229,83,137,203,43,163,233,255,137,163,233,255,15,182,139,233,131,
537 233,255,15,182,139,233,131,252,233,1,15,136,244,248,248,1,139,132,253,139, 538 252,233,1,15,136,244,248,248,1,139,132,253,139,233,137,4,140,131,252,233,
538 233,137,4,140,131,252,233,1,15,137,244,1,248,2,139,139,233,139,147,233,252, 539 1,15,137,244,1,248,2,139,139,233,139,147,233,252,255,147,233,137,131,233,
539 255,147,233,137,131,233,137,147,233,128,187,233,1,15,130,244,253,15,132,244, 540 137,147,233,128,187,233,1,15,130,244,253,15,132,244,252,221,155,233,252,233,
540 252,221,155,233,252,233,244,253,248,6,255,217,155,233,248,7,255,41,163,233, 541 244,253,248,6,255,217,155,233,248,7,255,41,163,233,255,139,93,252,252,201,
541 255,139,93,252,252,201,195,255,249,255,129,124,253,202,4,239,15,135,244,41, 542 195,255,249,255,129,124,253,202,4,239,15,133,244,253,129,124,253,194,4,239,
542 129,124,253,194,4,239,15,135,244,41,255,252,242,15,16,4,194,131,198,4,102, 543 15,133,244,254,139,44,202,131,198,4,59,44,194,255,15,141,244,255,255,15,140,
543 15,46,4,202,255,221,4,202,221,4,194,131,198,4,255,223,252,233,221,216,255, 544 244,255,255,15,143,244,255,255,15,142,244,255,255,248,6,15,183,70,252,254,
544 218,252,233,223,224,158,255,15,134,244,248,255,15,131,244,248,255,248,1,15, 545 141,180,253,134,233,248,9,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
545 183,70,252,254,141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,131, 546 252,255,36,171,248,7,15,135,244,41,129,124,253,194,4,239,15,130,244,247,15,
546 198,4,193,232,16,252,255,36,171,255,139,108,194,4,131,198,4,129,252,253,239, 547 133,244,41,255,252,242,15,42,4,194,252,233,244,248,255,221,4,202,219,4,194,
547 15,135,244,251,129,124,253,202,4,239,15,135,244,251,255,252,242,15,16,4,194, 548 252,233,244,249,255,248,8,15,135,244,41,255,252,242,15,42,12,202,252,242,
548 102,15,46,4,202,255,221,4,202,221,4,194,255,15,138,244,248,15,133,244,248, 549 15,16,4,194,131,198,4,102,15,46,193,255,15,134,244,9,255,15,135,244,9,255,
549 255,15,138,244,248,15,132,244,247,255,248,1,15,183,70,252,254,141,180,253, 550 15,130,244,9,255,15,131,244,9,255,252,233,244,6,255,219,4,202,252,233,244,
550 134,233,248,2,255,248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,248, 551 248,255,129,124,253,202,4,239,15,131,244,41,129,124,253,194,4,239,15,131,
551 5,255,129,252,253,239,15,132,244,46,129,124,253,202,4,239,15,132,244,46,255, 552 244,41,255,248,1,252,242,15,16,4,194,248,2,131,198,4,102,15,46,4,202,248,
552 57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12,202,139,4,194, 553 3,255,248,1,221,4,202,248,2,221,4,194,248,3,131,198,4,255,15,134,244,247,
553 57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233,133,252,237, 554 255,15,135,244,247,255,15,130,244,247,255,15,131,244,247,255,15,183,70,252,
554 15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237,255,189,1,0, 555 254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,
555 0,0,255,252,233,244,45,255,248,3,129,252,253,239,15,133,244,2,252,233,244, 556 16,252,255,36,171,255,139,108,194,4,131,198,4,255,129,252,253,239,15,133,
556 46,255,252,247,208,139,108,202,4,131,198,4,129,252,253,239,15,133,244,249, 557 244,253,129,124,253,202,4,239,15,133,244,254,139,44,194,59,44,202,255,15,
557 139,12,202,59,12,135,255,139,108,202,4,131,198,4,129,252,253,239,15,135,244, 558 133,244,255,255,15,132,244,255,255,15,183,70,252,254,141,180,253,134,233,
558 249,255,252,242,15,16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,255,252, 559 248,9,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,
559 247,208,139,108,202,4,131,198,4,57,197,255,15,133,244,249,15,183,70,252,254, 560 7,15,135,244,251,129,124,253,202,4,239,15,130,244,247,15,133,244,251,255,
560 141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 561 252,242,15,42,4,202,255,219,4,202,255,252,233,244,248,248,8,15,135,244,251,
561 252,255,36,171,248,3,129,252,253,239,15,133,244,2,252,233,244,46,255,15,132, 562 255,252,242,15,42,4,194,102,15,46,4,202,255,219,4,194,221,4,202,255,252,233,
562 244,248,129,252,253,239,15,132,244,46,15,183,70,252,254,141,180,253,134,233, 563 244,250,255,129,252,253,239,15,131,244,251,129,124,253,202,4,239,15,131,244,
563 248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255, 564 251,255,248,1,252,242,15,16,4,202,248,2,102,15,46,4,194,248,4,255,248,1,221,
564 139,108,194,4,131,198,4,129,252,253,239,255,15,131,244,247,255,15,130,244, 565 4,202,248,2,221,4,194,248,4,255,15,138,244,248,15,133,244,248,255,15,138,
565 247,255,137,108,202,4,139,44,194,137,44,202,255,15,183,70,252,254,141,180, 566 244,248,15,132,244,247,255,248,1,15,183,70,252,254,141,180,253,134,233,248,
566 253,134,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 567 2,255,248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,252,233,244,9,
567 36,171,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,6,15,182,204, 568 255,248,5,255,129,252,253,239,15,132,244,46,129,124,253,202,4,239,15,132,
568 15,182,232,131,198,4,193,232,16,252,255,36,171,255,49,252,237,129,124,253, 569 244,46,255,57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12,
569 194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182,232,131,198,4, 570 202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233,
570 193,232,16,252,255,36,171,255,129,124,253,194,4,239,15,135,244,49,255,252, 571 133,252,237,15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237,
571 242,15,16,4,194,184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193, 572 255,189,1,0,0,0,255,252,233,244,45,255,248,3,129,252,253,239,255,15,133,244,
572 252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194, 573 9,255,252,233,244,46,255,252,247,208,139,108,202,4,131,198,4,129,252,253,
573 4,239,15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1, 574 239,15,133,244,249,139,12,202,59,12,135,255,139,108,202,4,131,198,4,255,129,
574 252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6,15,182,204, 575 252,253,239,15,133,244,253,129,124,253,199,4,239,15,133,244,254,139,44,199,
575 15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,124,253,194,4,239, 576 59,44,202,255,15,183,70,252,254,141,180,253,134,233,248,9,139,6,15,182,204,
576 15,133,244,51,139,12,194,137,213,232,251,1,19,255,252,242,15,42,192,137,252, 577 15,182,232,131,198,4,193,232,16,252,255,36,171,248,7,15,135,244,249,129,124,
577 234,255,137,4,36,137,252,234,219,4,36,255,15,182,78,252,253,252,233,244,1, 578 253,199,4,239,15,130,244,247,255,252,242,15,42,4,199,255,219,4,199,255,252,
578 255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,135,244,47, 579 233,244,248,248,8,255,252,242,15,42,4,202,102,15,46,4,199,255,219,4,202,221,
579 255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252,234,220,4,199, 580 4,194,255,129,252,253,239,15,131,244,249,255,248,1,252,242,15,16,4,199,248,
580 255,129,124,253,252,234,4,239,15,135,244,48,255,252,242,15,16,4,199,252,242, 581 2,102,15,46,4,202,248,4,255,248,1,221,4,199,248,2,221,4,202,255,252,247,208,
582 139,108,202,4,131,198,4,57,197,255,15,133,244,249,15,183,70,252,254,141,180,
583 253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
584 36,171,248,3,129,252,253,239,15,133,244,2,252,233,244,46,255,15,132,244,248,
585 129,252,253,239,15,132,244,46,15,183,70,252,254,141,180,253,134,233,248,2,
586 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,108,
587 194,4,131,198,4,129,252,253,239,255,137,108,202,4,139,44,194,137,44,202,255,
588 139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,6,15,182,204,15,182,232,
589 131,198,4,193,232,16,252,255,36,171,255,49,252,237,129,124,253,194,4,239,
590 129,213,239,137,108,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
591 252,255,36,171,255,129,124,253,194,4,239,15,133,244,251,139,44,194,252,247,
592 221,15,128,244,250,199,68,202,4,237,137,44,202,248,9,139,6,15,182,204,15,
593 182,232,131,198,4,193,232,16,252,255,36,171,248,4,199,68,202,4,0,0,224,65,
594 199,4,202,0,0,0,0,252,233,244,9,248,5,15,135,244,51,255,129,124,253,194,4,
595 239,15,131,244,51,255,252,242,15,16,4,194,184,0,0,0,128,102,15,110,200,102,
596 15,112,201,81,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,221,28,
597 202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,139,128,233,248,
598 1,199,68,202,4,237,137,4,202,255,15,87,192,252,242,15,42,128,233,248,1,252,
599 242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6,15,182,204,15,
600 182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,124,253,194,4,239,15,
601 133,244,54,139,12,194,137,213,232,251,1,20,255,252,242,15,42,192,255,137,
602 4,36,219,4,36,255,137,252,234,15,182,78,252,253,252,233,244,1,255,15,182,
603 252,236,15,182,192,255,129,124,253,252,234,4,239,15,133,244,48,129,124,253,
604 199,4,239,15,133,244,48,139,44,252,234,3,44,199,15,128,244,47,255,129,124,
605 253,252,234,4,239,15,133,244,50,129,124,253,199,4,239,15,133,244,50,139,4,
606 199,3,4,252,234,15,128,244,49,255,129,124,253,252,234,4,239,15,133,244,53,
607 129,124,253,194,4,239,15,133,244,53,139,44,252,234,3,44,194,15,128,244,52,
608 255,199,68,202,4,237,255,129,124,253,252,234,4,239,15,131,244,48,255,129,
609 124,253,199,4,239,15,131,244,48,255,252,242,15,16,4,252,234,252,242,15,88,
610 4,199,255,221,4,252,234,220,4,199,255,129,124,253,252,234,4,239,15,131,244,
611 50,255,129,124,253,199,4,239,15,131,244,50,255,252,242,15,16,4,199,252,242,
581 15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239, 612 15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239,
582 15,135,244,50,129,124,253,194,4,239,15,135,244,50,255,252,242,15,16,4,252, 613 15,131,244,53,129,124,253,194,4,239,15,131,244,53,255,252,242,15,16,4,252,
583 234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,242,15,16,4,252, 614 234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,129,124,253,252,234,
584 234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4, 615 4,239,15,133,244,48,129,124,253,199,4,239,15,133,244,48,139,44,252,234,43,
585 199,252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16, 616 44,199,15,128,244,47,255,129,124,253,252,234,4,239,15,133,244,50,129,124,
586 4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15, 617 253,199,4,239,15,133,244,50,139,4,199,43,4,252,234,15,128,244,49,255,129,
587 16,4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,255,252,242, 618 124,253,252,234,4,239,15,133,244,53,129,124,253,194,4,239,15,133,244,53,139,
588 15,16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,234,255,252, 619 44,252,234,43,44,194,15,128,244,52,255,252,242,15,16,4,252,234,252,242,15,
589 242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255, 620 92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4,199,252,242,15,
590 252,242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,220,52,199, 621 92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,
591 255,252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,220,52,252, 622 242,15,92,4,194,255,221,4,252,234,220,36,194,255,129,124,253,252,234,4,239,
592 234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220, 623 15,133,244,48,129,124,253,199,4,239,15,133,244,48,139,44,252,234,15,175,44,
593 52,194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234, 624 199,15,128,244,47,255,129,124,253,252,234,4,239,15,133,244,50,129,124,253,
594 221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199, 625 199,4,239,15,133,244,50,139,4,199,15,175,4,252,234,15,128,244,49,255,129,
595 221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4, 626 124,253,252,234,4,239,15,133,244,53,129,124,253,194,4,239,15,133,244,53,139,
596 252,234,221,4,194,255,248,158,232,244,149,255,252,233,244,158,255,232,244, 627 44,252,234,15,175,44,194,15,128,244,52,255,252,242,15,16,4,252,234,252,242,
597 108,255,15,182,252,236,15,182,192,141,12,194,41,232,137,76,36,4,137,68,36, 628 15,89,4,199,255,221,4,252,234,220,12,199,255,252,242,15,16,4,199,252,242,
598 8,248,33,139,108,36,48,137,44,36,137,149,233,137,116,36,24,232,251,1,26,139, 629 15,89,4,252,234,255,221,4,199,220,12,252,234,255,252,242,15,16,4,252,234,
599 149,233,133,192,15,133,244,42,15,182,110,252,255,15,182,78,252,253,139,68, 630 252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252,242,15,16,4,252,
600 252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182, 631 234,252,242,15,94,4,199,255,221,4,252,234,220,52,199,255,252,242,15,16,4,
601 232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,4,135,199,68, 632 199,252,242,15,94,4,252,234,255,221,4,199,220,52,252,234,255,252,242,15,16,
602 202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 633 4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52,194,255,252,242,15,
603 255,36,171,255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,70, 634 16,4,252,234,252,242,15,16,12,199,255,221,4,252,234,221,4,199,255,252,242,
604 252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,4,202,255,221,4, 635 15,16,4,199,252,242,15,16,12,252,234,255,221,4,199,221,4,252,234,255,252,
605 199,221,28,202,255,252,247,208,137,68,202,4,139,6,15,182,204,15,182,232,131, 636 242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,252,234,221,4,194,255,
606 198,4,193,232,16,252,255,36,171,255,141,76,202,12,141,68,194,4,189,237,137, 637 248,162,232,244,153,255,252,233,244,162,255,232,244,113,255,15,182,252,236,
607 105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,6,15,182,204,15, 638 15,182,192,141,12,194,41,232,137,76,36,4,137,68,36,8,248,33,139,108,36,48,
608 182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,248,139,172,253, 639 137,44,36,137,149,233,137,116,36,24,232,251,1,27,139,149,233,133,192,15,133,
609 133,233,139,173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139,6,15,182, 640 244,42,15,182,110,252,255,15,182,78,252,253,139,68,252,234,4,139,44,252,234,
610 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,248,139, 641 137,68,202,4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
611 172,253,141,233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77, 642 252,255,36,171,255,252,247,208,139,4,135,199,68,202,4,237,137,4,202,139,6,
612 0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244,248,248,1,139,6, 643 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,15,191,192,
613 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,232,239, 644 199,68,202,4,237,137,4,202,255,15,191,192,252,242,15,42,192,252,242,15,17,
614 129,252,248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,135,213,141, 645 4,202,255,223,70,252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,
615 139,233,255,232,251,1,27,137,252,234,252,233,244,1,255,252,247,208,139,106, 646 4,202,255,221,4,199,221,28,202,255,252,247,208,137,68,202,4,139,6,15,182,
616 252,248,139,172,253,141,233,139,12,135,139,133,233,137,8,199,64,4,237,252, 647 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,141,76,202,12,141,
617 246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198, 648 68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,
618 4,193,232,16,252,255,36,171,248,2,252,246,129,233,235,15,132,244,1,128,189, 649 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,
619 233,0,15,132,244,1,137,213,137,194,141,139,233,232,251,1,27,137,252,234,252, 650 106,252,248,139,172,253,133,233,139,173,233,139,69,4,139,109,0,137,68,202,
620 233,244,1,255,139,106,252,248,255,252,242,15,16,4,199,255,139,172,253,141, 651 4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
621 233,139,141,233,255,252,242,15,17,1,255,221,25,255,252,247,208,139,106,252, 652 171,255,139,106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139,
622 248,139,172,253,141,233,139,141,233,137,65,4,139,6,15,182,204,15,182,232, 653 12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,
623 131,198,4,193,232,16,252,255,36,171,255,141,180,253,134,233,139,108,36,48, 654 15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
624 131,189,233,0,15,132,244,247,137,149,233,141,20,202,137,252,233,232,251,1, 655 255,36,171,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233,
625 28,139,149,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 656 235,15,132,244,1,135,213,141,139,233,255,232,251,1,28,137,252,234,252,233,
626 255,36,171,255,252,247,208,139,74,252,248,139,4,135,139,108,36,48,137,76, 657 244,1,255,252,247,208,139,106,252,248,139,172,253,141,233,139,12,135,139,
627 36,8,137,68,36,4,137,44,36,137,149,233,137,116,36,24,232,251,1,29,139,149, 658 133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,6,
628 233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182, 659 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,252,246,129,
629 232,131,198,4,193,232,16,252,255,36,171,255,139,108,36,48,137,149,233,139, 660 233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,194,141,139,233,
630 139,233,59,139,233,137,116,36,24,15,131,244,251,248,1,137,193,37,252,255, 661 232,251,1,28,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,15,
631 7,0,0,193,252,233,11,137,76,36,8,61,252,255,7,0,0,15,132,244,249,248,2,137, 662 16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221,
632 44,36,137,68,36,4,232,251,1,30,139,149,233,15,182,78,252,253,137,4,202,199, 663 25,255,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,65,
664 4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,141,
665 180,253,134,233,139,108,36,48,131,189,233,0,15,132,244,247,137,149,233,141,
666 20,202,137,252,233,232,251,1,29,139,149,233,248,1,139,6,15,182,204,15,182,
667 232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,74,252,248,139,
668 4,135,139,108,36,48,137,76,36,8,137,68,36,4,137,44,36,137,149,233,137,116,
669 36,24,232,251,1,30,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,
670 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,108,
671 36,48,137,149,233,139,139,233,59,139,233,137,116,36,24,15,131,244,251,248,
672 1,137,193,37,252,255,7,0,0,193,252,233,11,137,76,36,8,61,252,255,7,0,0,15,
673 132,244,249,248,2,137,44,36,137,68,36,4,232,251,1,31,139,149,233,15,182,78,
674 252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,
675 193,232,16,252,255,36,171,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,
676 232,251,1,32,15,183,70,252,254,252,233,244,1,255,252,247,208,139,108,36,48,
677 139,139,233,137,116,36,24,59,139,233,137,149,233,15,131,244,249,248,2,139,
678 20,135,137,252,233,232,251,1,33,139,149,233,15,182,78,252,253,137,4,202,199,
633 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 679 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
634 171,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,232,251,1,31,15,183, 680 171,248,3,137,252,233,232,251,1,32,15,183,70,252,254,252,247,208,252,233,
635 70,252,254,252,233,244,1,255,252,247,208,139,108,36,48,139,139,233,137,116, 681 244,2,255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,163,
636 36,24,59,139,233,137,149,233,15,131,244,249,248,2,139,20,135,137,252,233, 682 255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,164,255,
637 232,251,1,32,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139, 683 15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139,44,
638 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,137,252, 684 252,234,255,129,124,253,194,4,239,15,133,244,251,139,4,194,255,129,124,253,
639 233,232,251,1,31,15,183,70,252,254,252,247,208,252,233,244,2,255,252,247, 685 194,4,239,15,131,244,251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,
640 208,139,106,252,248,139,173,233,139,4,135,252,233,244,159,255,252,247,208, 686 15,42,200,102,15,46,193,255,221,4,194,219,20,36,219,4,36,255,15,133,244,36,
641 139,106,252,248,139,173,233,139,4,135,252,233,244,160,255,15,182,252,236, 687 255,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,
642 15,182,192,129,124,253,252,234,4,239,15,133,244,36,139,44,252,234,129,124,
643 253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,192,252,
644 242,15,42,200,102,15,46,193,255,221,4,194,219,20,36,219,4,36,255,15,133,244,
645 36,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,
646 244,248,139,40,139,64,4,137,44,202,137,68,202,4,248,1,139,6,15,182,204,15, 688 244,248,139,40,139,64,4,137,44,202,137,68,202,4,248,1,139,6,15,182,204,15,
647 182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244, 689 182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244,
648 249,139,141,233,252,246,129,233,235,15,132,244,36,15,182,78,252,253,248,3, 690 249,139,141,233,252,246,129,233,235,15,132,244,36,15,182,78,252,253,248,3,
649 255,199,68,202,4,237,252,233,244,1,248,5,129,124,253,194,4,239,15,133,244, 691 199,68,202,4,237,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,
650 36,139,4,194,252,233,244,159,255,15,182,252,236,15,182,192,252,247,208,139, 692 36,139,4,194,252,233,244,163,255,15,182,252,236,15,182,192,252,247,208,139,
651 4,135,129,124,253,252,234,4,239,15,133,244,34,139,44,252,234,248,159,139, 693 4,135,129,124,253,252,234,4,239,15,133,244,34,139,44,252,234,248,163,139,
652 141,233,35,136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244, 694 141,233,35,136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,
653 250,57,129,233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,70, 695 250,57,129,233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,70,
654 252,253,139,41,139,73,4,137,44,194,137,76,194,4,248,2,255,139,6,15,182,204, 696 252,253,139,41,139,73,4,137,44,194,137,76,194,4,248,2,255,139,6,15,182,204,
@@ -661,123 +703,131 @@ static const unsigned char build_actionlist[15851] = {
661 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189,233, 703 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189,233,
662 0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244,35,255,15,182, 704 0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244,35,255,15,182,
663 78,252,253,248,3,199,68,202,4,237,252,233,244,1,255,15,182,252,236,15,182, 705 78,252,253,248,3,199,68,202,4,237,252,233,244,1,255,15,182,252,236,15,182,
664 192,129,124,253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194, 706 192,129,124,253,252,234,4,239,15,133,244,39,139,44,252,234,255,15,133,244,
665 4,239,15,135,244,251,255,15,133,244,39,59,133,233,15,131,244,39,193,224,3, 707 39,255,59,133,233,15,131,244,39,193,224,3,3,133,233,129,120,253,4,239,15,
666 3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133, 708 132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,
667 244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15, 709 139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,
668 182,232,131,198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244, 710 16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,139,141,233,252,246,129,
669 1,139,141,233,255,252,246,129,233,235,15,132,244,39,15,182,78,252,253,252, 711 233,235,255,15,132,244,39,15,182,78,252,253,252,233,244,1,248,5,129,124,253,
670 233,244,1,248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,244, 712 194,4,239,15,133,244,39,139,4,194,252,233,244,164,248,7,128,165,233,235,139,
671 160,248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252, 713 139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,15,182,
672 253,252,233,244,2,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129, 714 252,236,15,182,192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,
673 124,253,252,234,4,239,15,133,244,37,139,44,252,234,248,160,139,141,233,35, 715 244,37,139,44,252,234,248,164,139,141,233,35,136,233,105,201,239,198,133,
674 136,233,105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133, 716 233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,244,
675 244,251,57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2, 717 251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,133,
676 255,252,246,133,233,235,15,133,244,253,248,3,15,182,70,252,253,139,108,194, 718 244,253,248,3,15,182,70,252,253,139,108,194,4,139,4,194,137,105,4,137,1,139,
677 4,139,4,194,137,105,4,137,1,139,6,15,182,204,15,182,232,131,198,4,193,232, 719 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,4,131,189,
678 16,252,255,36,171,248,4,131,189,233,0,15,132,244,2,137,76,36,16,139,141,233, 720 233,0,15,132,244,2,137,76,36,16,139,141,233,252,246,129,233,235,15,132,244,
679 252,246,129,233,235,15,132,244,37,139,76,36,16,252,233,244,2,248,5,139,137, 721 37,139,76,36,16,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,255,
680 233,133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129, 722 139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,37,248,
681 233,235,15,132,244,37,248,6,137,68,36,16,199,68,36,20,237,137,108,36,12,141, 723 6,137,68,36,16,199,68,36,20,237,137,108,36,12,141,68,36,16,137,108,36,4,139,
682 68,36,16,137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137, 724 108,36,48,137,68,36,8,137,44,36,137,149,233,137,116,36,24,232,251,1,34,139,
683 116,36,24,232,251,1,33,139,149,233,139,108,36,12,137,193,252,233,244,2,248, 725 149,233,139,108,36,12,137,193,252,233,244,2,248,7,128,165,233,235,139,131,
684 7,128,165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,3,255,15, 726 233,137,171,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,
685 182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,44,252, 727 124,253,252,234,4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,244,
686 234,59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132, 728 38,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,
687 244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139, 729 233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,
688 12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 730 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,131,189,
689 255,36,171,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,233, 731 233,0,15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,38,15,182,
690 235,15,132,244,38,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139, 732 78,252,253,252,233,244,1,248,7,128,165,233,235,139,139,233,137,171,233,137,
691 139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,137,124, 733 141,233,15,182,78,252,253,252,233,244,2,255,137,124,36,16,139,60,199,248,
692 36,16,139,60,199,248,1,141,12,202,139,105,252,248,252,246,133,233,235,15, 734 1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,2,139,
693 133,244,253,248,2,139,68,36,20,131,232,1,15,132,244,250,1,252,248,59,133, 735 68,36,20,131,232,1,15,132,244,250,1,252,248,59,133,233,15,135,244,251,41,
694 233,15,135,244,251,41,252,248,193,231,3,3,189,233,248,3,139,41,137,47,139, 736 252,248,193,231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,193,8,137,111,
695 105,4,131,193,8,137,111,4,131,199,8,131,232,1,15,133,244,3,248,4,139,124, 737 4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,16,139,6,15,182,204,15,
696 36,16,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, 738 182,232,131,198,4,193,232,16,252,255,36,171,248,5,137,108,36,4,139,108,36,
697 5,137,108,36,4,139,108,36,48,137,149,233,137,68,36,8,137,44,36,137,116,36, 739 48,137,149,233,137,68,36,8,137,44,36,137,116,36,24,232,251,1,35,139,149,233,
698 24,232,251,1,34,139,149,233,15,182,78,252,253,252,233,244,1,248,7,255,128, 740 15,182,78,252,253,252,233,244,1,248,7,255,128,165,233,235,139,131,233,137,
699 165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,2,255,3,68,36, 741 171,233,137,133,233,252,233,244,2,255,3,68,36,20,255,129,124,253,202,4,239,
700 20,255,129,124,253,202,4,239,139,44,202,15,133,244,52,141,84,202,8,137,114, 742 139,44,202,15,133,244,55,141,84,202,8,137,114,252,252,139,181,233,139,14,
701 252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36, 743 15,182,252,233,15,182,205,131,198,4,252,255,36,171,255,141,76,202,8,137,215,
702 171,255,141,76,202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133, 744 139,105,252,248,129,121,253,252,252,239,15,133,244,28,248,56,139,114,252,
703 244,28,248,53,139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106, 745 252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137,68,36,20,131,
704 252,248,137,68,36,20,131,232,1,15,132,244,249,248,2,139,41,137,47,139,105, 746 232,1,15,132,244,249,248,2,139,41,137,47,139,105,4,131,193,8,137,111,4,131,
705 4,131,193,8,137,111,4,131,199,8,131,232,1,15,133,244,2,139,106,252,248,248, 747 199,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,20,128,189,233,
706 3,139,68,36,20,128,189,233,1,15,135,244,251,248,4,139,181,233,139,14,15,182, 748 1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,15,182,205,131,198,
707 252,233,15,182,205,131,198,4,252,255,36,171,248,5,255,252,247,198,237,15, 749 4,252,255,36,171,248,5,255,252,247,198,237,15,133,244,4,15,182,78,252,253,
708 133,244,4,15,182,78,252,253,252,247,209,141,12,202,139,121,252,248,139,191, 750 252,247,209,141,12,202,139,121,252,248,139,191,233,139,191,233,252,233,244,
709 233,139,191,233,252,233,244,4,248,7,129,252,238,239,252,247,198,237,15,133, 751 4,248,7,129,252,238,239,252,247,198,237,15,133,244,254,41,252,242,137,215,
710 244,254,41,252,242,137,215,139,114,252,252,252,233,244,1,248,8,129,198,239, 752 139,114,252,252,252,233,244,1,248,8,129,198,239,252,233,244,1,255,141,76,
711 252,233,244,1,255,141,76,202,8,139,105,232,139,65,252,236,137,41,137,65,4, 753 202,8,139,105,232,139,65,252,236,137,41,137,65,4,139,105,252,240,139,65,252,
712 139,105,252,240,139,65,252,244,137,105,8,137,65,12,139,105,224,139,65,228, 754 244,137,105,8,137,65,12,139,105,224,139,65,228,137,105,252,248,137,65,252,
713 137,105,252,248,137,65,252,252,129,252,248,239,184,237,15,133,244,28,137, 755 252,129,252,248,239,184,237,15,133,244,28,137,202,137,114,252,252,139,181,
714 202,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198, 756 233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,255,137,124,
715 4,252,255,36,171,255,137,124,36,16,137,92,36,20,139,108,202,252,240,139,68, 757 36,16,137,92,36,20,139,108,202,252,240,139,68,202,252,248,139,157,233,131,
716 202,252,248,139,157,233,131,198,4,139,189,233,248,1,57,216,15,131,244,251, 758 198,4,139,189,233,248,1,57,216,15,131,244,251,129,124,253,199,4,239,15,132,
717 129,124,253,199,4,239,15,132,244,250,255,252,242,15,42,192,255,219,68,202, 759 244,250,255,219,68,202,252,248,255,139,108,199,4,137,108,202,12,139,44,199,
718 252,248,255,139,108,199,4,137,108,202,12,139,44,199,137,108,202,8,131,192, 760 137,108,202,8,131,192,1,255,137,68,202,252,248,248,2,15,183,70,252,254,141,
719 1,255,137,68,202,252,248,248,2,15,183,70,252,254,141,180,253,134,233,248, 761 180,253,134,233,248,3,139,92,36,20,139,124,36,16,139,6,15,182,204,15,182,
720 3,139,92,36,20,139,124,36,16,139,6,15,182,204,15,182,232,131,198,4,193,232, 762 232,131,198,4,193,232,16,252,255,36,171,248,4,131,192,1,255,137,68,202,252,
721 16,252,255,36,171,248,4,131,192,1,255,137,68,202,252,248,255,252,233,244, 763 248,255,252,233,244,1,248,5,41,216,248,6,59,133,233,15,135,244,3,105,252,
722 1,248,5,41,216,248,6,59,133,233,15,135,244,3,105,252,248,239,3,189,233,129, 764 248,239,3,189,233,129,191,233,239,15,132,244,253,141,92,24,1,139,175,233,
723 191,233,239,15,132,244,253,141,92,24,1,139,175,233,139,135,233,137,44,202, 765 139,135,233,137,44,202,137,68,202,4,139,175,233,139,135,233,137,108,202,8,
724 137,68,202,4,139,175,233,139,135,233,137,108,202,8,137,68,202,12,137,92,202, 766 137,68,202,12,137,92,202,252,248,252,233,244,2,248,7,255,131,192,1,252,233,
725 252,248,252,233,244,2,248,7,255,131,192,1,252,233,244,6,255,129,124,253,202, 767 244,6,255,129,124,253,202,252,236,239,15,133,244,251,139,108,202,232,129,
726 252,236,239,15,133,244,251,139,108,202,232,129,124,253,202,252,244,239,15, 768 124,253,202,252,244,239,15,133,244,251,129,124,253,202,252,252,239,15,133,
727 133,244,251,129,124,253,202,252,252,239,15,133,244,251,128,189,233,235,15, 769 244,251,128,189,233,235,15,133,244,251,141,180,253,134,233,199,68,202,252,
728 133,244,251,141,180,253,134,233,199,68,202,252,248,0,0,0,0,248,1,139,6,15, 770 248,0,0,0,0,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
729 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,198,70,252,252, 771 36,171,248,5,198,70,252,252,235,141,180,253,134,233,198,6,235,252,233,244,
730 235,141,180,253,134,233,198,6,235,252,233,244,1,255,15,182,252,236,15,182, 772 1,255,15,182,252,236,15,182,192,137,124,36,16,141,188,253,194,233,141,12,
731 192,137,124,36,16,141,188,253,194,233,141,12,202,43,122,252,252,133,252,237, 773 202,43,122,252,252,133,252,237,15,132,244,251,141,108,252,233,252,248,57,
732 15,132,244,251,141,108,252,233,252,248,57,215,15,131,244,248,248,1,139,71, 774 215,15,131,244,248,248,1,139,71,252,248,137,1,139,71,252,252,131,199,8,137,
733 252,248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,252,233,15,131, 775 65,4,131,193,8,57,252,233,15,131,244,249,57,215,15,130,244,1,248,2,199,65,
734 244,249,57,215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130, 776 4,237,131,193,8,57,252,233,15,130,244,2,248,3,139,124,36,16,139,6,15,182,
735 244,2,248,3,139,124,36,16,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 777 204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,199,68,36,20,1,0,
736 252,255,36,171,248,5,199,68,36,20,1,0,0,0,137,208,41,252,248,15,134,244,3, 778 0,0,137,208,41,252,248,15,134,244,3,137,197,193,252,237,3,131,197,1,137,108,
737 137,197,193,252,237,3,131,197,1,137,108,36,20,139,108,36,48,1,200,59,133, 779 36,20,139,108,36,48,1,200,59,133,233,15,135,244,253,248,6,255,139,71,252,
738 233,15,135,244,253,248,6,255,139,71,252,248,137,1,139,71,252,252,131,199, 780 248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,215,15,130,244,6,
739 8,137,65,4,131,193,8,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233, 781 252,233,244,3,248,7,137,149,233,137,141,233,137,116,36,24,41,215,139,84,36,
740 137,141,233,137,116,36,24,41,215,139,84,36,20,131,252,234,1,137,252,233,232, 782 20,131,252,234,1,137,252,233,232,251,1,0,139,149,233,139,141,233,1,215,252,
741 251,1,0,139,149,233,139,141,233,1,215,252,233,244,6,255,193,225,3,255,248, 783 233,244,6,255,193,225,3,255,248,1,139,114,252,252,137,68,36,20,252,247,198,
742 1,139,114,252,252,137,68,36,20,252,247,198,237,15,133,244,253,255,248,13, 784 237,15,133,244,253,255,248,13,137,215,131,232,1,15,132,244,249,248,2,139,
743 137,215,131,232,1,15,132,244,249,248,2,139,44,15,137,111,252,248,139,108, 785 44,15,137,111,252,248,139,108,15,4,137,111,252,252,131,199,8,131,232,1,15,
744 15,4,137,111,252,252,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,20, 786 133,244,2,248,3,139,68,36,20,15,182,110,252,255,248,5,57,197,15,135,244,252,
745 15,182,110,252,255,248,5,57,197,15,135,244,252,255,139,108,10,4,137,106,252, 787 255,139,108,10,4,137,106,252,252,139,44,10,137,106,252,248,255,248,5,56,70,
746 252,139,44,10,137,106,252,248,255,248,5,56,70,252,255,15,135,244,252,255, 788 252,255,15,135,244,252,255,15,182,78,252,253,252,247,209,141,20,202,139,122,
747 15,182,78,252,253,252,247,209,141,20,202,139,122,252,248,139,191,233,139, 789 252,248,139,191,233,139,191,233,139,6,15,182,204,15,182,232,131,198,4,193,
748 191,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, 790 232,16,252,255,36,171,248,6,255,199,71,252,252,237,131,199,8,255,199,68,194,
749 6,255,199,71,252,252,237,131,199,8,255,199,68,194,252,244,237,255,131,192, 791 252,244,237,255,131,192,1,252,233,244,5,248,7,141,174,233,252,247,197,237,
750 1,252,233,244,5,248,7,141,174,233,252,247,197,237,15,133,244,14,41,252,234, 792 15,133,244,14,41,252,234,255,1,252,233,255,137,252,245,209,252,237,129,229,
751 255,1,252,233,255,137,252,245,209,252,237,129,229,239,102,131,172,253,43, 793 239,102,131,172,253,43,233,1,15,132,244,145,255,141,12,202,255,129,121,253,
752 233,1,15,132,244,141,255,141,12,202,255,129,121,253,4,239,15,135,244,54,129, 794 4,239,15,133,244,255,255,129,121,253,12,239,15,133,244,57,129,121,253,20,
753 121,253,12,239,15,135,244,54,255,139,105,20,255,129,252,253,239,15,135,244, 795 239,15,133,244,57,139,41,131,121,16,0,15,140,244,251,255,139,105,16,133,252,
754 54,255,252,242,15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242, 796 237,15,136,244,251,3,41,15,128,244,247,137,41,255,59,105,8,199,65,28,237,
755 15,17,1,133,252,237,15,136,244,249,255,15,140,244,249,255,102,15,46,200,248, 797 137,105,24,255,15,142,244,253,248,1,248,6,141,180,253,134,233,255,141,180,
798 253,134,233,15,183,70,252,254,15,142,245,248,1,248,6,255,15,143,244,253,248,
799 6,141,180,253,134,233,248,1,255,248,7,139,6,15,182,204,15,182,232,131,198,
800 4,193,232,16,252,255,36,171,248,5,255,3,41,15,128,244,1,137,41,255,15,141,
801 244,7,255,141,180,253,134,233,15,183,70,252,254,15,141,245,255,15,140,244,
802 7,255,252,233,244,6,248,9,255,129,121,253,4,239,255,15,131,244,57,129,121,
803 253,12,239,15,131,244,57,255,139,105,20,255,129,252,253,239,15,131,244,57,
804 255,252,242,15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,
805 17,1,133,252,237,15,136,244,249,255,15,140,244,249,255,102,15,46,200,248,
756 1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133, 806 1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,
757 252,237,15,136,244,247,255,221,81,24,15,140,244,247,255,217,201,248,1,255, 807 252,237,15,136,244,247,255,221,81,24,15,140,244,247,255,217,201,248,1,255,
758 15,183,70,252,254,255,15,131,244,248,141,180,253,134,233,255,141,180,253, 808 15,183,70,252,254,255,15,131,244,7,255,15,131,244,248,141,180,253,134,233,
759 134,233,15,183,70,252,254,15,131,245,255,15,130,244,248,141,180,253,134,233, 809 255,141,180,253,134,233,15,183,70,252,254,15,131,245,255,15,130,244,7,255,
760 255,248,3,102,15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253, 810 15,130,244,248,141,180,253,134,233,255,248,3,102,15,46,193,252,233,244,1,
761 239,15,132,244,247,255,137,105,252,252,139,41,137,105,252,248,252,233,245, 811 255,141,12,202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252,252,
762 255,141,180,253,134,233,139,1,137,105,252,252,137,65,252,248,255,139,139, 812 139,41,137,105,252,248,252,233,245,255,141,180,253,134,233,139,1,137,105,
763 233,139,4,129,139,128,233,139,108,36,48,137,147,233,137,171,233,252,255,224, 813 252,252,137,65,252,248,255,139,139,233,139,4,129,139,128,233,139,108,36,48,
764 255,141,180,253,134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 814 137,147,233,137,171,233,252,255,224,255,141,180,253,134,233,139,6,15,182,
765 252,255,36,171,255,137,252,245,209,252,237,129,229,239,102,131,172,253,43, 815 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,137,252,245,209,252,
766 233,1,15,132,244,143,255,139,190,233,139,108,36,48,141,12,202,59,141,233, 816 237,129,229,239,102,131,172,253,43,233,1,15,132,244,147,255,139,190,233,139,
767 15,135,244,23,15,182,142,233,57,200,15,134,244,249,248,2,255,15,183,70,252, 817 108,36,48,141,12,202,59,141,233,15,135,244,23,15,182,142,233,57,200,15,134,
768 254,252,233,245,255,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134, 818 244,249,248,2,255,15,183,70,252,254,252,233,245,255,248,3,199,68,194,252,
769 244,3,252,233,244,2,255,141,44,197,237,141,4,194,139,122,252,248,137,104, 819 252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,255,141,44,197,237,141,
770 252,252,137,120,252,248,139,108,36,48,141,12,200,59,141,233,15,135,244,22, 820 4,194,139,122,252,248,137,104,252,252,137,120,252,248,139,108,36,48,141,12,
771 137,209,137,194,15,182,174,233,133,252,237,15,132,244,248,248,1,131,193,8, 821 200,59,141,233,15,135,244,22,137,209,137,194,15,182,174,233,133,252,237,15,
772 57,209,15,131,244,249,139,121,252,248,137,56,139,121,252,252,137,120,4,131, 822 132,244,248,248,1,131,193,8,57,209,15,131,244,249,139,121,252,248,137,56,
773 192,8,199,65,252,252,237,131,252,237,1,15,133,244,1,248,2,255,139,190,233, 823 139,121,252,252,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,
774 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,248,3, 824 244,1,248,2,255,139,190,233,139,6,15,182,204,15,182,232,131,198,4,193,232,
775 199,64,4,237,131,192,8,131,252,237,1,15,133,244,3,252,233,244,2,255,139,106, 825 16,252,255,36,171,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,244,
776 252,248,139,189,233,139,108,36,48,141,68,194,252,248,137,149,233,141,136, 826 3,252,233,244,2,255,139,106,252,248,139,189,233,139,108,36,48,141,68,194,
777 233,59,141,233,137,133,233,255,137,44,36,255,137,124,36,4,137,44,36,255,15, 827 252,248,137,149,233,141,136,233,59,141,233,137,133,233,255,137,44,36,255,
778 135,244,21,199,131,233,237,255,252,255,215,255,252,255,147,233,255,199,131, 828 137,124,36,4,137,44,36,255,15,135,244,21,199,131,233,237,255,252,255,215,
779 233,237,139,149,233,141,12,194,252,247,217,3,141,233,139,114,252,252,252, 829 255,252,255,147,233,255,199,131,233,237,139,149,233,141,12,194,252,247,217,
780 233,244,12,255,254,0 830 3,141,233,139,114,252,252,252,233,244,12,255,254,0
781}; 831};
782 832
783enum { 833enum {
@@ -818,9 +868,12 @@ enum {
818 GLOB_cont_condf, 868 GLOB_cont_condf,
819 GLOB_vmeta_equal, 869 GLOB_vmeta_equal,
820 GLOB_vmeta_equal_cd, 870 GLOB_vmeta_equal_cd,
871 GLOB_vmeta_arith_vno,
821 GLOB_vmeta_arith_vn, 872 GLOB_vmeta_arith_vn,
873 GLOB_vmeta_arith_nvo,
822 GLOB_vmeta_arith_nv, 874 GLOB_vmeta_arith_nv,
823 GLOB_vmeta_unm, 875 GLOB_vmeta_unm,
876 GLOB_vmeta_arith_vvo,
824 GLOB_vmeta_arith_vv, 877 GLOB_vmeta_arith_vv,
825 GLOB_vmeta_len, 878 GLOB_vmeta_len,
826 GLOB_vmeta_call_ra, 879 GLOB_vmeta_call_ra,
@@ -835,6 +888,7 @@ enum {
835 GLOB_ff_setmetatable, 888 GLOB_ff_setmetatable,
836 GLOB_ff_rawget, 889 GLOB_ff_rawget,
837 GLOB_ff_tonumber, 890 GLOB_ff_tonumber,
891 GLOB_fff_resi,
838 GLOB_fff_resxmm0, 892 GLOB_fff_resxmm0,
839 GLOB_fff_resn, 893 GLOB_fff_resn,
840 GLOB_ff_tostring, 894 GLOB_ff_tostring,
@@ -852,11 +906,12 @@ enum {
852 GLOB_ff_coroutine_wrap_aux, 906 GLOB_ff_coroutine_wrap_aux,
853 GLOB_ff_coroutine_yield, 907 GLOB_ff_coroutine_yield,
854 GLOB_ff_math_abs, 908 GLOB_ff_math_abs,
855 GLOB_ff_math_sqrt, 909 GLOB_fff_resbit,
856 GLOB_ff_math_floor, 910 GLOB_ff_math_floor,
857 GLOB_vm_floor, 911 GLOB_vm_floor,
858 GLOB_ff_math_ceil, 912 GLOB_ff_math_ceil,
859 GLOB_vm_ceil, 913 GLOB_vm_ceil,
914 GLOB_ff_math_sqrt,
860 GLOB_ff_math_log, 915 GLOB_ff_math_log,
861 GLOB_ff_math_log10, 916 GLOB_ff_math_log10,
862 GLOB_ff_math_exp, 917 GLOB_ff_math_exp,
@@ -897,7 +952,6 @@ enum {
897 GLOB_ff_table_getn, 952 GLOB_ff_table_getn,
898 GLOB_ff_bit_tobit, 953 GLOB_ff_bit_tobit,
899 GLOB_ff_bit_band, 954 GLOB_ff_bit_band,
900 GLOB_fff_resbit,
901 GLOB_fff_fallback_bit_op, 955 GLOB_fff_fallback_bit_op,
902 GLOB_ff_bit_bor, 956 GLOB_ff_bit_bor,
903 GLOB_ff_bit_bxor, 957 GLOB_ff_bit_bxor,
@@ -972,9 +1026,12 @@ static const char *const globnames[] = {
972 "cont_condf", 1026 "cont_condf",
973 "vmeta_equal", 1027 "vmeta_equal",
974 "vmeta_equal_cd", 1028 "vmeta_equal_cd",
1029 "vmeta_arith_vno",
975 "vmeta_arith_vn", 1030 "vmeta_arith_vn",
1031 "vmeta_arith_nvo",
976 "vmeta_arith_nv", 1032 "vmeta_arith_nv",
977 "vmeta_unm", 1033 "vmeta_unm",
1034 "vmeta_arith_vvo",
978 "vmeta_arith_vv", 1035 "vmeta_arith_vv",
979 "vmeta_len", 1036 "vmeta_len",
980 "vmeta_call_ra", 1037 "vmeta_call_ra",
@@ -989,6 +1046,7 @@ static const char *const globnames[] = {
989 "ff_setmetatable", 1046 "ff_setmetatable",
990 "ff_rawget", 1047 "ff_rawget",
991 "ff_tonumber", 1048 "ff_tonumber",
1049 "fff_resi",
992 "fff_resxmm0", 1050 "fff_resxmm0",
993 "fff_resn", 1051 "fff_resn",
994 "ff_tostring", 1052 "ff_tostring",
@@ -1006,11 +1064,12 @@ static const char *const globnames[] = {
1006 "ff_coroutine_wrap_aux", 1064 "ff_coroutine_wrap_aux",
1007 "ff_coroutine_yield", 1065 "ff_coroutine_yield",
1008 "ff_math_abs", 1066 "ff_math_abs",
1009 "ff_math_sqrt", 1067 "fff_resbit",
1010 "ff_math_floor", 1068 "ff_math_floor",
1011 "vm_floor", 1069 "vm_floor",
1012 "ff_math_ceil", 1070 "ff_math_ceil",
1013 "vm_ceil", 1071 "vm_ceil",
1072 "ff_math_sqrt",
1014 "ff_math_log", 1073 "ff_math_log",
1015 "ff_math_log10", 1074 "ff_math_log10",
1016 "ff_math_exp", 1075 "ff_math_exp",
@@ -1051,7 +1110,6 @@ static const char *const globnames[] = {
1051 "ff_table_getn", 1110 "ff_table_getn",
1052 "ff_bit_tobit", 1111 "ff_bit_tobit",
1053 "ff_bit_band", 1112 "ff_bit_band",
1054 "fff_resbit",
1055 "fff_fallback_bit_op", 1113 "fff_fallback_bit_op",
1056 "ff_bit_bor", 1114 "ff_bit_bor",
1057 "ff_bit_bxor", 1115 "ff_bit_bxor",
@@ -1100,6 +1158,7 @@ static const char *const extnames[] = {
1100 "lj_meta_call", 1158 "lj_meta_call",
1101 "lj_meta_for@8", 1159 "lj_meta_for@8",
1102 "lj_tab_get", 1160 "lj_tab_get",
1161 "lj_str_fromnumber@8",
1103 "lj_str_fromnum@8", 1162 "lj_str_fromnum@8",
1104 "lj_tab_next", 1163 "lj_tab_next",
1105 "lj_tab_getinth@8", 1164 "lj_tab_getinth@8",
@@ -1156,446 +1215,751 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1156 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)); 1215 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));
1157 dasm_put(Dst, 588, LJ_TFUNC, Dt7(->pc), Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), FRAME_CP, LJ_TNIL, Dt7(->pc), PC2PROTO(k)); 1216 dasm_put(Dst, 588, LJ_TFUNC, Dt7(->pc), Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), FRAME_CP, LJ_TNIL, Dt7(->pc), PC2PROTO(k));
1158 dasm_put(Dst, 760, LJ_TSTR, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB); 1217 dasm_put(Dst, 760, LJ_TSTR, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB);
1159 if (sse) { 1218 if (LJ_DUALNUM) {
1160 dasm_put(Dst, 856); 1219 dasm_put(Dst, 856, LJ_TISNUM);
1220 } else if (sse) {
1221 dasm_put(Dst, 866);
1161 } else { 1222 } else {
1162 dasm_put(Dst, 869); 1223 dasm_put(Dst, 879);
1163 } 1224 }
1164 dasm_put(Dst, 882, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 2+1, LJ_TSTR, BC_GSET); 1225 dasm_put(Dst, 892, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 2+1, LJ_TSTR, BC_GSET);
1165 dasm_put(Dst, 1034, DISPATCH_GL(tmptv), LJ_TTAB); 1226 dasm_put(Dst, 1044, DISPATCH_GL(tmptv), LJ_TTAB);
1166 if (sse) { 1227 if (LJ_DUALNUM) {
1167 dasm_put(Dst, 856); 1228 dasm_put(Dst, 856, LJ_TISNUM);
1229 } else if (sse) {
1230 dasm_put(Dst, 866);
1168 } else { 1231 } else {
1169 dasm_put(Dst, 869); 1232 dasm_put(Dst, 879);
1170 } 1233 }
1171 dasm_put(Dst, 1057, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 3+1, Dt1(->base), Dt1(->base)); 1234 dasm_put(Dst, 1067, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 3+1, Dt1(->base), Dt1(->base));
1172 dasm_put(Dst, 1251, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base)); 1235 dasm_put(Dst, 1261, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base));
1173 dasm_put(Dst, 1358); 1236 dasm_put(Dst, 1368);
1174#if LJ_HASFFI 1237#if LJ_HASFFI
1175 dasm_put(Dst, 1373, Dt1(->base)); 1238 dasm_put(Dst, 1383, Dt1(->base));
1239#endif
1240 dasm_put(Dst, 1414);
1241#if LJ_DUALNUM
1242 dasm_put(Dst, 1417);
1243#endif
1244 dasm_put(Dst, 1423);
1245#if LJ_DUALNUM
1246 dasm_put(Dst, 850);
1247#endif
1248 dasm_put(Dst, 1435);
1249#if LJ_DUALNUM
1250 dasm_put(Dst, 1417);
1176#endif 1251#endif
1177 dasm_put(Dst, 1404, Dt1(->base), Dt1(->base), FRAME_CONT, 2+1); 1252 dasm_put(Dst, 1463, Dt1(->base), Dt1(->base), FRAME_CONT, 2+1, Dt1(->base), Dt1(->base), Dt1(->base));
1178 dasm_put(Dst, 1524, Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC, 1+1, LJ_TISTRUECOND); 1253 dasm_put(Dst, 1618, Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC, 1+1, LJ_TISTRUECOND);
1179 dasm_put(Dst, 1712, 1+1, ~LJ_TNUMX); 1254 dasm_put(Dst, 1795, 1+1, ~LJ_TNUMX);
1180 if (cmov) { 1255 if (cmov) {
1181 dasm_put(Dst, 1799); 1256 dasm_put(Dst, 1824);
1182 } else { 1257 } else {
1183 dasm_put(Dst, 1803); 1258 dasm_put(Dst, 1828);
1259 }
1260 dasm_put(Dst, 1837, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(gcroot)+4*(GCROOT_MMNAME+MM_metatable), LJ_TTAB);
1261 dasm_put(Dst, 1920, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL);
1262 dasm_put(Dst, 1978, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1);
1263 dasm_put(Dst, 2041, LJ_TTAB, 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));
1264 dasm_put(Dst, 2113, 2+1, LJ_TTAB, 1+1, LJ_TISNUM);
1265 if (LJ_DUALNUM) {
1266 dasm_put(Dst, 2202);
1267 } else {
1268 dasm_put(Dst, 2219);
1184 } 1269 }
1185 dasm_put(Dst, 1812, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(gcroot)+4*(GCROOT_MMNAME+MM_metatable), LJ_TTAB);
1186 dasm_put(Dst, 1895, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL);
1187 dasm_put(Dst, 1953, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1);
1188 dasm_put(Dst, 2016, LJ_TTAB, 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));
1189 dasm_put(Dst, 2088, 2+1, LJ_TTAB, 1+1, LJ_TISNUM);
1190 if (sse) { 1270 if (sse) {
1191 dasm_put(Dst, 2181); 1271 dasm_put(Dst, 2224);
1272 } else {
1273 dasm_put(Dst, 2234);
1274 }
1275 dasm_put(Dst, 2241, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1276 dasm_put(Dst, 2307, Dt1(->base));
1277 if (LJ_DUALNUM) {
1278 dasm_put(Dst, 2331);
1192 } else { 1279 } else {
1193 dasm_put(Dst, 2191); 1280 dasm_put(Dst, 2336);
1194 } 1281 }
1195 dasm_put(Dst, 2198, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1282 dasm_put(Dst, 2341, Dt1(->base), 1+1, LJ_TTAB, Dt1(->base), Dt1(->top), Dt1(->base), 1+2);
1196 dasm_put(Dst, 2264, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base)); 1283 dasm_put(Dst, 2450, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB);
1197 dasm_put(Dst, 2331, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1);
1198 dasm_put(Dst, 2436, LJ_TTAB);
1199#ifdef LUAJIT_ENABLE_LUA52COMPAT 1284#ifdef LUAJIT_ENABLE_LUA52COMPAT
1200 dasm_put(Dst, 2448, Dt6(->metatable)); 1285 dasm_put(Dst, 2497, Dt6(->metatable));
1201#endif 1286#endif
1202 dasm_put(Dst, 2457, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); 1287 dasm_put(Dst, 2506, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
1203 if (sse) { 1288 if (LJ_DUALNUM) {
1204 dasm_put(Dst, 2520); 1289 dasm_put(Dst, 2492);
1290 } else {
1291 dasm_put(Dst, 2219);
1292 }
1293 dasm_put(Dst, 2561);
1294 if (LJ_DUALNUM) {
1295 dasm_put(Dst, 2566, LJ_TISNUM);
1296 } else if (sse) {
1297 dasm_put(Dst, 2582);
1205 } else { 1298 } else {
1206 dasm_put(Dst, 2559); 1299 dasm_put(Dst, 2621);
1207 } 1300 }
1208 dasm_put(Dst, 2577, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); 1301 dasm_put(Dst, 2639, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
1209 dasm_put(Dst, 2658, 1+1, LJ_TTAB); 1302 dasm_put(Dst, 2477, 1+1, LJ_TTAB);
1210#ifdef LUAJIT_ENABLE_LUA52COMPAT 1303#ifdef LUAJIT_ENABLE_LUA52COMPAT
1211 dasm_put(Dst, 2448, Dt6(->metatable)); 1304 dasm_put(Dst, 2497, Dt6(->metatable));
1212#endif 1305#endif
1213 dasm_put(Dst, 2678, Dt8(->upvalue[0]), LJ_TFUNC); 1306 dasm_put(Dst, 2720, Dt8(->upvalue[0]), LJ_TFUNC);
1307 if (LJ_DUALNUM) {
1308 dasm_put(Dst, 2741, LJ_TISNUM);
1309 } else if (sse) {
1310 dasm_put(Dst, 2753);
1311 } else {
1312 dasm_put(Dst, 2763);
1313 }
1314 dasm_put(Dst, 2770, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
1315 dasm_put(Dst, 2834, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
1316 dasm_put(Dst, 2922, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1317 dasm_put(Dst, 3023, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
1318 dasm_put(Dst, 3137, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
1319 dasm_put(Dst, 3235, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
1320 dasm_put(Dst, 3301, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
1321 dasm_put(Dst, 3402, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
1322 dasm_put(Dst, 3515, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
1323 if (!LJ_DUALNUM) {
1324 dasm_put(Dst, 3541);
1325 }
1214 if (sse) { 1326 if (sse) {
1215 dasm_put(Dst, 2699); 1327 dasm_put(Dst, 3544);
1216 } else { 1328 }
1217 dasm_put(Dst, 2709); 1329 dasm_put(Dst, 3559, 1+1);
1218 } 1330 if (LJ_DUALNUM) {
1219 dasm_put(Dst, 2716, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC); 1331 dasm_put(Dst, 3570, LJ_TISNUM, LJ_TISNUM);
1220 dasm_put(Dst, 2780, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); 1332 } else {
1221 dasm_put(Dst, 2868, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1333 dasm_put(Dst, 3650, LJ_TISNUM);
1222 dasm_put(Dst, 2969, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); 1334 }
1223 dasm_put(Dst, 3083, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
1224 dasm_put(Dst, 3181, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
1225 dasm_put(Dst, 3247, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
1226 dasm_put(Dst, 3348, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
1227 dasm_put(Dst, 3461, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
1228 if (sse) { 1335 if (sse) {
1229 dasm_put(Dst, 3487, 1+1, LJ_TISNUM); 1336 dasm_put(Dst, 3660);
1230 } else { 1337 } else {
1231 dasm_put(Dst, 3556, 1+1, LJ_TISNUM); 1338 dasm_put(Dst, 3696);
1339 }
1340 dasm_put(Dst, 3713, 1+1, FRAME_TYPE, LJ_TNIL);
1341 if (LJ_DUALNUM) {
1342 dasm_put(Dst, 3805, LJ_TISNUM);
1343 } else {
1344 dasm_put(Dst, 3650, LJ_TISNUM);
1232 } 1345 }
1233 dasm_put(Dst, 3592, 1+1, FRAME_TYPE, LJ_TNIL);
1234 if (sse) { 1346 if (sse) {
1235 dasm_put(Dst, 3682, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1347 dasm_put(Dst, 3827);
1236 dasm_put(Dst, 3744, 1+1, LJ_TISNUM); 1348 if (LJ_DUALNUM) {
1349 dasm_put(Dst, 3836);
1350 }
1351 dasm_put(Dst, 2229);
1352 } else {
1353 dasm_put(Dst, 3870);
1354 if (LJ_DUALNUM) {
1355 dasm_put(Dst, 3876);
1356 if (cmov) {
1357 dasm_put(Dst, 3899);
1237 } else { 1358 } else {
1238 dasm_put(Dst, 3774, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1359 dasm_put(Dst, 3905);
1239 dasm_put(Dst, 3833, 1+1, LJ_TISNUM); 1360 }
1361 dasm_put(Dst, 3912);
1362 } else {
1363 dasm_put(Dst, 2236);
1364 }
1365 }
1366 dasm_put(Dst, 3929);
1367 if (LJ_DUALNUM) {
1368 dasm_put(Dst, 3805, LJ_TISNUM);
1369 } else {
1370 dasm_put(Dst, 3650, LJ_TISNUM);
1240 } 1371 }
1241 dasm_put(Dst, 3860, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1242 dasm_put(Dst, 3929, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1243 dasm_put(Dst, 3986, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1244 dasm_put(Dst, 4049, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1245 dasm_put(Dst, 4139);
1246 if (sse) { 1372 if (sse) {
1247 dasm_put(Dst, 4151, 1+1, LJ_TISNUM); 1373 dasm_put(Dst, 3932);
1374 if (LJ_DUALNUM) {
1375 dasm_put(Dst, 3836);
1376 }
1377 dasm_put(Dst, 2229);
1378 } else {
1379 dasm_put(Dst, 3941);
1380 if (LJ_DUALNUM) {
1381 dasm_put(Dst, 3876);
1382 if (cmov) {
1383 dasm_put(Dst, 3899);
1248 } else { 1384 } else {
1249 dasm_put(Dst, 4182, 1+1, LJ_TISNUM); 1385 dasm_put(Dst, 3905);
1386 }
1387 dasm_put(Dst, 3912);
1388 } else {
1389 dasm_put(Dst, 2236);
1390 }
1250 } 1391 }
1251 dasm_put(Dst, 4207);
1252 if (sse) { 1392 if (sse) {
1253 dasm_put(Dst, 4221, 1+1, LJ_TISNUM); 1393 dasm_put(Dst, 3947, 1+1, LJ_TISNUM);
1254 } else { 1394 } else {
1255 dasm_put(Dst, 4252, 1+1, LJ_TISNUM); 1395 dasm_put(Dst, 3976, 1+1, LJ_TISNUM);
1256 } 1396 }
1257 dasm_put(Dst, 4277); 1397 dasm_put(Dst, 4005, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1398 dasm_put(Dst, 4074, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1399 dasm_put(Dst, 4131, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1400 dasm_put(Dst, 4194, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1401 dasm_put(Dst, 4284);
1258 if (sse) { 1402 if (sse) {
1259 dasm_put(Dst, 4291, 1+1, LJ_TISNUM); 1403 dasm_put(Dst, 4296, 1+1, LJ_TISNUM);
1260 } else { 1404 } else {
1261 dasm_put(Dst, 4322, 1+1, LJ_TISNUM); 1405 dasm_put(Dst, 4327, 1+1, LJ_TISNUM);
1262 } 1406 }
1263 dasm_put(Dst, 4347); 1407 dasm_put(Dst, 4352);
1264 if (sse) { 1408 if (sse) {
1265 dasm_put(Dst, 4363, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1409 dasm_put(Dst, 4366, 1+1, LJ_TISNUM);
1266 } else { 1410 } else {
1267 dasm_put(Dst, 4402, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1411 dasm_put(Dst, 4397, 1+1, LJ_TISNUM);
1268 } 1412 }
1269 dasm_put(Dst, 4435, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1413 dasm_put(Dst, 4422);
1270 dasm_put(Dst, 4500, 1+1, LJ_TISNUM);
1271 if (sse) { 1414 if (sse) {
1272 dasm_put(Dst, 4599); 1415 dasm_put(Dst, 4436, 1+1, LJ_TISNUM);
1273 } else { 1416 } else {
1274 dasm_put(Dst, 4605); 1417 dasm_put(Dst, 4467, 1+1, LJ_TISNUM);
1275 } 1418 }
1276 dasm_put(Dst, 4614); 1419 dasm_put(Dst, 4492);
1277 if (sse) { 1420 if (sse) {
1278 dasm_put(Dst, 4639); 1421 dasm_put(Dst, 4508, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1279 } else { 1422 } else {
1280 dasm_put(Dst, 4645); 1423 dasm_put(Dst, 4547, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1281 } 1424 }
1282 dasm_put(Dst, 4648, 1+2); 1425 dasm_put(Dst, 4580, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1426 dasm_put(Dst, 4645, 1+1, LJ_TISNUM);
1283 if (sse) { 1427 if (sse) {
1284 dasm_put(Dst, 4657); 1428 dasm_put(Dst, 4744);
1285 } else { 1429 } else {
1286 dasm_put(Dst, 4665); 1430 dasm_put(Dst, 4750);
1287 } 1431 }
1288 dasm_put(Dst, 4673); 1432 dasm_put(Dst, 4759);
1289 if (sse) { 1433 if (sse) {
1290 dasm_put(Dst, 4676); 1434 dasm_put(Dst, 4784);
1291 } else { 1435 } else {
1292 dasm_put(Dst, 4708); 1436 dasm_put(Dst, 4790);
1293 } 1437 }
1294 dasm_put(Dst, 4727); 1438 dasm_put(Dst, 4793, 1+2);
1295 if (sse) { 1439 if (sse) {
1296 dasm_put(Dst, 4743, 1+1, LJ_TISNUM); 1440 dasm_put(Dst, 4802);
1297 } else { 1441 } else {
1298 dasm_put(Dst, 4768, 1+1, LJ_TISNUM); 1442 dasm_put(Dst, 4810);
1299 } 1443 }
1300 dasm_put(Dst, 4790); 1444 dasm_put(Dst, 4818);
1301 if (sse) { 1445 if (sse) {
1302 dasm_put(Dst, 4812); 1446 dasm_put(Dst, 4821);
1303 } else { 1447 } else {
1304 dasm_put(Dst, 4838); 1448 dasm_put(Dst, 4853);
1305 } 1449 }
1306 dasm_put(Dst, 4855, 1+2); 1450 dasm_put(Dst, 4872);
1307 if (sse) { 1451 if (sse) {
1308 dasm_put(Dst, 4895); 1452 dasm_put(Dst, 4888, 1+1, LJ_TISNUM);
1309 } else { 1453 } else {
1310 dasm_put(Dst, 4903); 1454 dasm_put(Dst, 4913, 1+1, LJ_TISNUM);
1311 } 1455 }
1312 dasm_put(Dst, 4913, 2+1, LJ_TISNUM, LJ_TISNUM); 1456 dasm_put(Dst, 4935);
1313 if (sse) { 1457 if (sse) {
1314 dasm_put(Dst, 4965, 2+1, LJ_TISNUM, LJ_TISNUM); 1458 dasm_put(Dst, 4957);
1315 } else { 1459 } else {
1316 dasm_put(Dst, 5012, 2+1, LJ_TISNUM, LJ_TISNUM); 1460 dasm_put(Dst, 4983);
1317 } 1461 }
1462 dasm_put(Dst, 5000, 1+2);
1318 if (sse) { 1463 if (sse) {
1319 dasm_put(Dst, 5053, 1+1, LJ_TISNUM, LJ_TISNUM); 1464 dasm_put(Dst, 5040);
1320 } else { 1465 } else {
1321 dasm_put(Dst, 5124, 1+1, LJ_TISNUM, LJ_TISNUM); 1466 dasm_put(Dst, 5048);
1467 }
1468 dasm_put(Dst, 5058, 2+1, LJ_TISNUM, LJ_TISNUM);
1469 if (sse) {
1470 dasm_put(Dst, 5110, 2+1, LJ_TISNUM, LJ_TISNUM);
1471 } else {
1472 dasm_put(Dst, 5157, 2+1, LJ_TISNUM, LJ_TISNUM);
1473 }
1474 dasm_put(Dst, 5198, LJ_TISNUM);
1475 if (LJ_DUALNUM) {
1476 dasm_put(Dst, 5211, LJ_TISNUM);
1477 if (sse) {
1478 dasm_put(Dst, 4744);
1479 } else {
1480 dasm_put(Dst, 4750);
1481 }
1482 dasm_put(Dst, 5261);
1483 } else {
1484 dasm_put(Dst, 2219);
1485 }
1486 if (sse) {
1487 dasm_put(Dst, 5272, LJ_TISNUM);
1488 if (LJ_DUALNUM) {
1489 dasm_put(Dst, 5293);
1490 } else {
1491 dasm_put(Dst, 2219);
1492 }
1493 dasm_put(Dst, 5314);
1494 } else {
1495 dasm_put(Dst, 5339, LJ_TISNUM);
1496 if (LJ_DUALNUM) {
1497 dasm_put(Dst, 5357);
1498 } else {
1499 dasm_put(Dst, 5375);
1500 }
1501 dasm_put(Dst, 5380);
1322 if (cmov) { 1502 if (cmov) {
1323 dasm_put(Dst, 5177); 1503 dasm_put(Dst, 5390);
1504 } else {
1505 dasm_put(Dst, 5398);
1506 }
1507 dasm_put(Dst, 5331);
1508 }
1509 dasm_put(Dst, 5419, LJ_TISNUM);
1510 if (LJ_DUALNUM) {
1511 dasm_put(Dst, 5432, LJ_TISNUM);
1512 if (sse) {
1513 dasm_put(Dst, 4744);
1324 } else { 1514 } else {
1325 dasm_put(Dst, 5185); 1515 dasm_put(Dst, 4750);
1326 } 1516 }
1327 dasm_put(Dst, 5116); 1517 dasm_put(Dst, 5261);
1518 } else {
1519 dasm_put(Dst, 2219);
1328 } 1520 }
1329 if (sse) { 1521 if (sse) {
1330 dasm_put(Dst, 5206, 1+1, LJ_TISNUM, LJ_TISNUM); 1522 dasm_put(Dst, 5272, LJ_TISNUM);
1523 if (LJ_DUALNUM) {
1524 dasm_put(Dst, 5293);
1525 } else {
1526 dasm_put(Dst, 2219);
1527 }
1528 dasm_put(Dst, 5482);
1529 } else {
1530 dasm_put(Dst, 5339, LJ_TISNUM);
1531 if (LJ_DUALNUM) {
1532 dasm_put(Dst, 5357);
1331 } else { 1533 } else {
1332 dasm_put(Dst, 5277, 1+1, LJ_TISNUM, LJ_TISNUM); 1534 dasm_put(Dst, 5375);
1535 }
1536 dasm_put(Dst, 5380);
1333 if (cmov) { 1537 if (cmov) {
1334 dasm_put(Dst, 5330); 1538 dasm_put(Dst, 5507);
1335 } else { 1539 } else {
1336 dasm_put(Dst, 5338); 1540 dasm_put(Dst, 5515);
1337 } 1541 }
1338 dasm_put(Dst, 5116); 1542 dasm_put(Dst, 5331);
1339 } 1543 }
1340 if (!sse) { 1544 if (!sse) {
1341 dasm_put(Dst, 5359); 1545 dasm_put(Dst, 5536);
1342 } 1546 }
1343 dasm_put(Dst, 5368, 1+1, LJ_TSTR); 1547 dasm_put(Dst, 5545, 1+1, LJ_TSTR);
1344 if (sse) { 1548 if (LJ_DUALNUM) {
1345 dasm_put(Dst, 5390, Dt5(->len)); 1549 dasm_put(Dst, 5567, Dt5(->len));
1550 } else if (sse) {
1551 dasm_put(Dst, 5575, Dt5(->len));
1346 } else { 1552 } else {
1347 dasm_put(Dst, 5401, Dt5(->len)); 1553 dasm_put(Dst, 5586, Dt5(->len));
1348 } 1554 }
1349 dasm_put(Dst, 5409, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); 1555 dasm_put(Dst, 5594, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
1350 if (sse) { 1556 if (LJ_DUALNUM) {
1351 dasm_put(Dst, 5447); 1557 dasm_put(Dst, 3924);
1558 } else if (sse) {
1559 dasm_put(Dst, 5632);
1352 } else { 1560 } else {
1353 dasm_put(Dst, 5457); 1561 dasm_put(Dst, 5642);
1354 } 1562 }
1355 dasm_put(Dst, 5470, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); 1563 dasm_put(Dst, 5655, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
1356 if (sse) { 1564 if (LJ_DUALNUM) {
1357 dasm_put(Dst, 5505); 1565 dasm_put(Dst, 5686);
1566 } else if (sse) {
1567 dasm_put(Dst, 5709);
1358 } else { 1568 } else {
1359 dasm_put(Dst, 5527); 1569 dasm_put(Dst, 5735);
1360 } 1570 }
1361 dasm_put(Dst, 5547, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1571 dasm_put(Dst, 5759, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1362 dasm_put(Dst, 2176); 1572 if (LJ_DUALNUM) {
1363 if (sse) { 1573 dasm_put(Dst, 5862);
1364 dasm_put(Dst, 5650); 1574 } else if (sse) {
1575 dasm_put(Dst, 5874);
1365 } else { 1576 } else {
1366 dasm_put(Dst, 5661); 1577 dasm_put(Dst, 5889);
1367 } 1578 }
1368 dasm_put(Dst, 5669, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1579 dasm_put(Dst, 5901, LJ_TSTR, LJ_TISNUM);
1369 if (sse) { 1580 if (LJ_DUALNUM) {
1370 dasm_put(Dst, 5699); 1581 dasm_put(Dst, 2492);
1371 } else { 1582 } else {
1372 dasm_put(Dst, 5706); 1583 dasm_put(Dst, 2219);
1584 }
1585 dasm_put(Dst, 5918, Dt5(->len));
1586 if (LJ_DUALNUM) {
1587 dasm_put(Dst, 5928);
1588 } else if (sse) {
1589 dasm_put(Dst, 5932);
1590 } else {
1591 dasm_put(Dst, 5939);
1592 }
1593 dasm_put(Dst, 5951, sizeof(GCstr)-1);
1594 dasm_put(Dst, 6026, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1595 dasm_put(Dst, 6085, LJ_TSTR, LJ_TISNUM);
1596 if (LJ_DUALNUM) {
1597 dasm_put(Dst, 6102);
1598 } else if (sse) {
1599 dasm_put(Dst, 6110);
1600 } else {
1601 dasm_put(Dst, 6121);
1602 }
1603 dasm_put(Dst, 6137, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1604 dasm_put(Dst, 6202, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1605 dasm_put(Dst, 6265, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1606 dasm_put(Dst, 6336, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1607 dasm_put(Dst, 6421, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1608 dasm_put(Dst, 6491, 1+1, LJ_TTAB);
1609 if (LJ_DUALNUM) {
1610 dasm_put(Dst, 6559);
1611 } else if (sse) {
1612 dasm_put(Dst, 6566);
1613 } else {
1614 dasm_put(Dst, 6576);
1615 }
1616 dasm_put(Dst, 6587, LJ_TISNUM);
1617 if (LJ_DUALNUM) {
1618 dasm_put(Dst, 6595);
1619 } else {
1620 dasm_put(Dst, 2219);
1373 } 1621 }
1374 dasm_put(Dst, 5718, sizeof(GCstr)-1);
1375 dasm_put(Dst, 5793, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1376 dasm_put(Dst, 5852, LJ_TSTR, LJ_TISNUM);
1377 if (sse) { 1622 if (sse) {
1378 dasm_put(Dst, 5873); 1623 dasm_put(Dst, 6612);
1624 } else {
1625 dasm_put(Dst, 6641);
1626 }
1627 dasm_put(Dst, 111);
1628 if (LJ_DUALNUM || sse) {
1629 if (!sse) {
1630 dasm_put(Dst, 6659);
1631 }
1632 dasm_put(Dst, 6663);
1379 } else { 1633 } else {
1380 dasm_put(Dst, 5880); 1634 dasm_put(Dst, 6579);
1381 } 1635 }
1382 dasm_put(Dst, 5892, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1636 dasm_put(Dst, 6668);
1383 dasm_put(Dst, 5957, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1384 dasm_put(Dst, 6020, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1385 dasm_put(Dst, 6091, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1386 dasm_put(Dst, 6176, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1387 dasm_put(Dst, 6246, 1+1, LJ_TTAB);
1388 if (sse) { 1637 if (sse) {
1389 dasm_put(Dst, 6314); 1638 dasm_put(Dst, 6671);
1639 } else {
1640 dasm_put(Dst, 6686);
1641 }
1642 dasm_put(Dst, 2196, LJ_TISNUM);
1643 if (LJ_DUALNUM) {
1644 dasm_put(Dst, 6695);
1390 } else { 1645 } else {
1391 dasm_put(Dst, 6324); 1646 dasm_put(Dst, 2219);
1392 } 1647 }
1393 if (sse) { 1648 if (sse) {
1394 dasm_put(Dst, 6335, 1+1, LJ_TISNUM); 1649 dasm_put(Dst, 6712);
1650 } else {
1651 dasm_put(Dst, 6727);
1652 }
1653 dasm_put(Dst, 6740, LJ_TISNUM);
1654 if (LJ_DUALNUM) {
1655 dasm_put(Dst, 6765);
1395 } else { 1656 } else {
1396 dasm_put(Dst, 6392, 1+1, LJ_TISNUM); 1657 dasm_put(Dst, 6785);
1397 } 1658 }
1398 if (sse) { 1659 if (sse) {
1399 dasm_put(Dst, 6436, 1+1, LJ_TISNUM); 1660 dasm_put(Dst, 6790);
1400 } else { 1661 } else {
1401 dasm_put(Dst, 6484, 1+1, LJ_TISNUM); 1662 dasm_put(Dst, 6807);
1402 } 1663 }
1403 dasm_put(Dst, 6524, LJ_TISNUM); 1664 dasm_put(Dst, 6820);
1404 if (sse) { 1665 if (sse) {
1405 dasm_put(Dst, 6551); 1666 dasm_put(Dst, 6671);
1667 } else {
1668 dasm_put(Dst, 6686);
1669 }
1670 dasm_put(Dst, 2196, LJ_TISNUM);
1671 if (LJ_DUALNUM) {
1672 dasm_put(Dst, 6695);
1406 } else { 1673 } else {
1407 dasm_put(Dst, 6568); 1674 dasm_put(Dst, 2219);
1408 } 1675 }
1409 dasm_put(Dst, 6581);
1410 if (sse) { 1676 if (sse) {
1411 dasm_put(Dst, 6589, 1+1, LJ_TISNUM); 1677 dasm_put(Dst, 6712);
1412 } else { 1678 } else {
1413 dasm_put(Dst, 6637, 1+1, LJ_TISNUM); 1679 dasm_put(Dst, 6727);
1680 }
1681 dasm_put(Dst, 6740, LJ_TISNUM);
1682 if (LJ_DUALNUM) {
1683 dasm_put(Dst, 6830);
1684 } else {
1685 dasm_put(Dst, 6785);
1414 } 1686 }
1415 dasm_put(Dst, 6524, LJ_TISNUM);
1416 if (sse) { 1687 if (sse) {
1417 dasm_put(Dst, 6677); 1688 dasm_put(Dst, 6850);
1418 } else { 1689 } else {
1419 dasm_put(Dst, 6694); 1690 dasm_put(Dst, 6867);
1420 } 1691 }
1421 dasm_put(Dst, 6581); 1692 dasm_put(Dst, 6880);
1422 if (sse) { 1693 if (sse) {
1423 dasm_put(Dst, 6707, 1+1, LJ_TISNUM); 1694 dasm_put(Dst, 6671);
1695 } else {
1696 dasm_put(Dst, 6686);
1697 }
1698 dasm_put(Dst, 2196, LJ_TISNUM);
1699 if (LJ_DUALNUM) {
1700 dasm_put(Dst, 6695);
1424 } else { 1701 } else {
1425 dasm_put(Dst, 6755, 1+1, LJ_TISNUM); 1702 dasm_put(Dst, 2219);
1426 } 1703 }
1427 dasm_put(Dst, 6524, LJ_TISNUM);
1428 if (sse) { 1704 if (sse) {
1429 dasm_put(Dst, 6795); 1705 dasm_put(Dst, 6712);
1430 } else { 1706 } else {
1431 dasm_put(Dst, 6812); 1707 dasm_put(Dst, 6727);
1708 }
1709 dasm_put(Dst, 6740, LJ_TISNUM);
1710 if (LJ_DUALNUM) {
1711 dasm_put(Dst, 6890);
1712 } else {
1713 dasm_put(Dst, 6785);
1432 } 1714 }
1433 dasm_put(Dst, 6581);
1434 if (sse) { 1715 if (sse) {
1435 dasm_put(Dst, 6825, 1+1, LJ_TISNUM); 1716 dasm_put(Dst, 6910);
1717 } else {
1718 dasm_put(Dst, 6927);
1719 }
1720 dasm_put(Dst, 6940, LJ_TISNUM);
1721 if (LJ_DUALNUM) {
1722 dasm_put(Dst, 6695);
1436 } else { 1723 } else {
1437 dasm_put(Dst, 6873, 1+1, LJ_TISNUM); 1724 dasm_put(Dst, 2219);
1438 } 1725 }
1439 dasm_put(Dst, 6913);
1440 if (sse) { 1726 if (sse) {
1441 dasm_put(Dst, 6920, 1+1, LJ_TISNUM); 1727 dasm_put(Dst, 6612);
1442 } else { 1728 } else {
1443 dasm_put(Dst, 6968, 1+1, LJ_TISNUM); 1729 dasm_put(Dst, 6955);
1730 }
1731 dasm_put(Dst, 6976, LJ_TISNUM);
1732 if (LJ_DUALNUM) {
1733 dasm_put(Dst, 6695);
1734 } else {
1735 dasm_put(Dst, 2219);
1444 } 1736 }
1445 dasm_put(Dst, 7008);
1446 if (sse) { 1737 if (sse) {
1447 dasm_put(Dst, 7012); 1738 dasm_put(Dst, 6612);
1739 } else {
1740 dasm_put(Dst, 6955);
1741 }
1742 dasm_put(Dst, 6992);
1743 if (LJ_DUALNUM) {
1744 dasm_put(Dst, 6663);
1745 } else if (sse) {
1746 dasm_put(Dst, 6998);
1448 } else { 1747 } else {
1449 dasm_put(Dst, 7024); 1748 dasm_put(Dst, 7010);
1749 }
1750 dasm_put(Dst, 7023);
1751 if (LJ_DUALNUM) {
1752 dasm_put(Dst, 7034, LJ_TISNUM);
1753 if (LJ_DUALNUM) {
1754 dasm_put(Dst, 6695);
1755 } else {
1756 dasm_put(Dst, 2219);
1450 } 1757 }
1451 dasm_put(Dst, 7037);
1452 if (sse) { 1758 if (sse) {
1453 dasm_put(Dst, 7048, 2+1, LJ_TISNUM, LJ_TISNUM); 1759 dasm_put(Dst, 6612);
1454 } else { 1760 } else {
1455 dasm_put(Dst, 7122, 2+1, LJ_TISNUM, LJ_TISNUM); 1761 dasm_put(Dst, 6955);
1762 }
1763 dasm_put(Dst, 7042, LJ_TISNUM);
1764 } else if (sse) {
1765 dasm_put(Dst, 7057, 2+1, LJ_TISNUM, LJ_TISNUM);
1766 } else {
1767 dasm_put(Dst, 7129, 2+1, LJ_TISNUM, LJ_TISNUM);
1768 }
1769 dasm_put(Dst, 7193);
1770 if (LJ_DUALNUM) {
1771 dasm_put(Dst, 7200, LJ_TISNUM);
1772 if (LJ_DUALNUM) {
1773 dasm_put(Dst, 6695);
1774 } else {
1775 dasm_put(Dst, 2219);
1456 } 1776 }
1457 dasm_put(Dst, 7188);
1458 if (sse) { 1777 if (sse) {
1459 dasm_put(Dst, 7197, 2+1, LJ_TISNUM, LJ_TISNUM); 1778 dasm_put(Dst, 6612);
1779 } else {
1780 dasm_put(Dst, 6955);
1781 }
1782 dasm_put(Dst, 7042, LJ_TISNUM);
1783 } else if (sse) {
1784 dasm_put(Dst, 7208, 2+1, LJ_TISNUM, LJ_TISNUM);
1460 } else { 1785 } else {
1461 dasm_put(Dst, 7271, 2+1, LJ_TISNUM, LJ_TISNUM); 1786 dasm_put(Dst, 7280, 2+1, LJ_TISNUM, LJ_TISNUM);
1787 }
1788 dasm_put(Dst, 7344);
1789 if (LJ_DUALNUM) {
1790 dasm_put(Dst, 7352, LJ_TISNUM);
1791 if (LJ_DUALNUM) {
1792 dasm_put(Dst, 6695);
1793 } else {
1794 dasm_put(Dst, 2219);
1462 } 1795 }
1463 dasm_put(Dst, 7337);
1464 if (sse) { 1796 if (sse) {
1465 dasm_put(Dst, 7347, 2+1, LJ_TISNUM, LJ_TISNUM); 1797 dasm_put(Dst, 6612);
1798 } else {
1799 dasm_put(Dst, 6955);
1800 }
1801 dasm_put(Dst, 7042, LJ_TISNUM);
1802 } else if (sse) {
1803 dasm_put(Dst, 7360, 2+1, LJ_TISNUM, LJ_TISNUM);
1804 } else {
1805 dasm_put(Dst, 7432, 2+1, LJ_TISNUM, LJ_TISNUM);
1806 }
1807 dasm_put(Dst, 7496);
1808 if (LJ_DUALNUM) {
1809 dasm_put(Dst, 7504, LJ_TISNUM);
1810 if (LJ_DUALNUM) {
1811 dasm_put(Dst, 6695);
1466 } else { 1812 } else {
1467 dasm_put(Dst, 7421, 2+1, LJ_TISNUM, LJ_TISNUM); 1813 dasm_put(Dst, 2219);
1468 } 1814 }
1469 dasm_put(Dst, 7487);
1470 if (sse) { 1815 if (sse) {
1471 dasm_put(Dst, 7497, 2+1, LJ_TISNUM, LJ_TISNUM); 1816 dasm_put(Dst, 6612);
1817 } else {
1818 dasm_put(Dst, 6955);
1819 }
1820 dasm_put(Dst, 7042, LJ_TISNUM);
1821 } else if (sse) {
1822 dasm_put(Dst, 7512, 2+1, LJ_TISNUM, LJ_TISNUM);
1472 } else { 1823 } else {
1473 dasm_put(Dst, 7571, 2+1, LJ_TISNUM, LJ_TISNUM); 1824 dasm_put(Dst, 7584, 2+1, LJ_TISNUM, LJ_TISNUM);
1825 }
1826 dasm_put(Dst, 7648);
1827 if (LJ_DUALNUM) {
1828 dasm_put(Dst, 7655, LJ_TISNUM);
1829 if (LJ_DUALNUM) {
1830 dasm_put(Dst, 6695);
1831 } else {
1832 dasm_put(Dst, 2219);
1474 } 1833 }
1475 dasm_put(Dst, 7637);
1476 if (sse) { 1834 if (sse) {
1477 dasm_put(Dst, 7646, 2+1, LJ_TISNUM, LJ_TISNUM); 1835 dasm_put(Dst, 6612);
1836 } else {
1837 dasm_put(Dst, 6955);
1838 }
1839 dasm_put(Dst, 7042, LJ_TISNUM);
1840 } else if (sse) {
1841 dasm_put(Dst, 7663, 2+1, LJ_TISNUM, LJ_TISNUM);
1478 } else { 1842 } else {
1479 dasm_put(Dst, 7720, 2+1, LJ_TISNUM, LJ_TISNUM); 1843 dasm_put(Dst, 7735, 2+1, LJ_TISNUM, LJ_TISNUM);
1480 } 1844 }
1481 dasm_put(Dst, 7786, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1845 dasm_put(Dst, 7799, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1482 dasm_put(Dst, 7864, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1846 dasm_put(Dst, 7875, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1483 dasm_put(Dst, 7988, Dt1(->top), Dt1(->base), Dt1(->top)); 1847 dasm_put(Dst, 7999, Dt1(->top), Dt1(->base), Dt1(->top));
1484#if LJ_HASJIT 1848#if LJ_HASJIT
1485 dasm_put(Dst, 8026, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1849 dasm_put(Dst, 8037, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1486#endif 1850#endif
1487 dasm_put(Dst, 8057, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1851 dasm_put(Dst, 8068, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1488 dasm_put(Dst, 8108, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1852 dasm_put(Dst, 8119, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1489#if LJ_HASJIT 1853#if LJ_HASJIT
1490 dasm_put(Dst, 8174, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1854 dasm_put(Dst, 8185, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1491#endif 1855#endif
1492 dasm_put(Dst, 8220); 1856 dasm_put(Dst, 8231);
1493#if LJ_HASJIT 1857#if LJ_HASJIT
1494 dasm_put(Dst, 8052); 1858 dasm_put(Dst, 8063);
1495#endif 1859#endif
1496 dasm_put(Dst, 8227); 1860 dasm_put(Dst, 8238);
1497#if LJ_HASJIT 1861#if LJ_HASJIT
1498 dasm_put(Dst, 8230); 1862 dasm_put(Dst, 8241);
1499#endif 1863#endif
1500 dasm_put(Dst, 8240, Dt1(->base), Dt1(->top)); 1864 dasm_put(Dst, 8251, Dt1(->base), Dt1(->top));
1501#if LJ_HASJIT 1865#if LJ_HASJIT
1502 dasm_put(Dst, 8274); 1866 dasm_put(Dst, 8285);
1503#endif 1867#endif
1504 dasm_put(Dst, 8279, Dt1(->base), Dt1(->top)); 1868 dasm_put(Dst, 8290, Dt1(->base), Dt1(->top));
1505#if LJ_HASJIT 1869#if LJ_HASJIT
1506 dasm_put(Dst, 8308, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC); 1870 dasm_put(Dst, 8319, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
1507#endif 1871#endif
1508 dasm_put(Dst, 8451); 1872 dasm_put(Dst, 8462);
1509#if LJ_HASJIT 1873#if LJ_HASJIT
1510 dasm_put(Dst, 8454, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); 1874 dasm_put(Dst, 8465, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
1511#endif 1875#endif
1512 dasm_put(Dst, 8532); 1876 dasm_put(Dst, 8543);
1513 if (!sse) { 1877 if (!sse) {
1514 dasm_put(Dst, 8535); 1878 dasm_put(Dst, 8546);
1515 } 1879 }
1516 dasm_put(Dst, 8580); 1880 dasm_put(Dst, 8591);
1517 if (!sse) { 1881 if (!sse) {
1518 dasm_put(Dst, 8682); 1882 dasm_put(Dst, 8693);
1519 } 1883 }
1520 dasm_put(Dst, 8727); 1884 dasm_put(Dst, 8738);
1521 if (!sse) { 1885 if (!sse) {
1522 dasm_put(Dst, 8829); 1886 dasm_put(Dst, 8840);
1523 } 1887 }
1524 dasm_put(Dst, 8868); 1888 dasm_put(Dst, 8879);
1525 if (sse) { 1889 if (sse) {
1526 dasm_put(Dst, 8973); 1890 dasm_put(Dst, 8984);
1527 } else { 1891 } else {
1528 dasm_put(Dst, 9103); 1892 dasm_put(Dst, 9114);
1529 } 1893 }
1530 dasm_put(Dst, 9150); 1894 dasm_put(Dst, 9161);
1531 if (!sse) { 1895 if (!sse) {
1532 dasm_put(Dst, 9224);
1533 if (cmov) {
1534 dasm_put(Dst, 9235); 1896 dasm_put(Dst, 9235);
1897 if (cmov) {
1898 dasm_put(Dst, 9246);
1535 } else { 1899 } else {
1536 dasm_put(Dst, 9239); 1900 dasm_put(Dst, 9250);
1537 } 1901 }
1538 dasm_put(Dst, 9246); 1902 dasm_put(Dst, 9257);
1539 dasm_put(Dst, 9320); 1903 dasm_put(Dst, 9331);
1540 dasm_put(Dst, 9420); 1904 dasm_put(Dst, 9431);
1541 if (cmov) { 1905 if (cmov) {
1542 dasm_put(Dst, 9423); 1906 dasm_put(Dst, 9434);
1543 } else { 1907 } else {
1544 dasm_put(Dst, 9427); 1908 dasm_put(Dst, 9438);
1545 } 1909 }
1546 dasm_put(Dst, 9434); 1910 dasm_put(Dst, 9445);
1547 if (cmov) { 1911 if (cmov) {
1548 dasm_put(Dst, 9235); 1912 dasm_put(Dst, 9246);
1549 } else { 1913 } else {
1550 dasm_put(Dst, 9239); 1914 dasm_put(Dst, 9250);
1551 } 1915 }
1552 dasm_put(Dst, 9452); 1916 dasm_put(Dst, 9463);
1553 } else { 1917 } else {
1554 dasm_put(Dst, 9531); 1918 dasm_put(Dst, 9542);
1555 } 1919 }
1556 dasm_put(Dst, 9534); 1920 dasm_put(Dst, 9545);
1557 dasm_put(Dst, 9619); 1921 dasm_put(Dst, 9630);
1558 dasm_put(Dst, 9749); 1922 dasm_put(Dst, 9760);
1559 dasm_put(Dst, 9955); 1923 dasm_put(Dst, 9966);
1560#if LJ_HASJIT 1924#if LJ_HASJIT
1561 if (sse) { 1925 if (sse) {
1562 dasm_put(Dst, 9962); 1926 dasm_put(Dst, 9973);
1563 dasm_put(Dst, 10019); 1927 dasm_put(Dst, 10030);
1564 dasm_put(Dst, 10110); 1928 dasm_put(Dst, 10121);
1565 } else { 1929 } else {
1566 dasm_put(Dst, 10152); 1930 dasm_put(Dst, 10163);
1567 dasm_put(Dst, 10244); 1931 dasm_put(Dst, 10255);
1568 } 1932 }
1569 dasm_put(Dst, 10290); 1933 dasm_put(Dst, 10301);
1570#endif 1934#endif
1571 dasm_put(Dst, 10294); 1935 dasm_put(Dst, 10305);
1572 if (sse) { 1936 if (sse) {
1573 dasm_put(Dst, 10297); 1937 dasm_put(Dst, 10308);
1574 dasm_put(Dst, 10402); 1938 dasm_put(Dst, 10413);
1575 dasm_put(Dst, 10485); 1939 dasm_put(Dst, 10496);
1576 } else { 1940 } else {
1577 dasm_put(Dst, 10557); 1941 dasm_put(Dst, 10568);
1578 dasm_put(Dst, 10640); 1942 dasm_put(Dst, 10651);
1579 if (cmov) { 1943 if (cmov) {
1580 dasm_put(Dst, 10695); 1944 dasm_put(Dst, 10706);
1581 } else { 1945 } else {
1582 dasm_put(Dst, 10714); 1946 dasm_put(Dst, 10725);
1583 } 1947 }
1584 dasm_put(Dst, 10290); 1948 dasm_put(Dst, 10301);
1585 } 1949 }
1586 dasm_put(Dst, 10755); 1950 dasm_put(Dst, 10766);
1587#if LJ_HASFFI 1951#if LJ_HASFFI
1588#define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V) 1952#define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V)
1589 dasm_put(Dst, 10811, DtE(->spadj)); 1953 dasm_put(Dst, 10822, DtE(->spadj));
1590#if LJ_TARGET_WINDOWS 1954#if LJ_TARGET_WINDOWS
1591 dasm_put(Dst, 10821, DtE(->spadj)); 1955 dasm_put(Dst, 10832, DtE(->spadj));
1592#endif 1956#endif
1593 dasm_put(Dst, 10825, DtE(->nsp), offsetof(CCallState, stack), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->func), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->resx87), DtE(->fpr[0].d[0])); 1957 dasm_put(Dst, 10836, DtE(->nsp), offsetof(CCallState, stack), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->func), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->resx87), DtE(->fpr[0].d[0]));
1594 dasm_put(Dst, 10895, DtE(->fpr[0].f[0])); 1958 dasm_put(Dst, 10906, DtE(->fpr[0].f[0]));
1595#if LJ_TARGET_WINDOWS 1959#if LJ_TARGET_WINDOWS
1596 dasm_put(Dst, 10901, DtE(->spadj)); 1960 dasm_put(Dst, 10912, DtE(->spadj));
1597#endif 1961#endif
1598 dasm_put(Dst, 10905); 1962 dasm_put(Dst, 10916);
1599#endif 1963#endif
1600} 1964}
1601 1965
@@ -1603,7 +1967,7 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1603static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1967static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1604{ 1968{
1605 int vk = 0; 1969 int vk = 0;
1606 dasm_put(Dst, 10912, defop); 1970 dasm_put(Dst, 10923, defop);
1607 1971
1608 switch (op) { 1972 switch (op) {
1609 1973
@@ -1611,658 +1975,922 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1611 1975
1612 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1976 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1613 1977
1978
1614 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1979 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1615 dasm_put(Dst, 10914, LJ_TISNUM, LJ_TISNUM); 1980 if (LJ_DUALNUM) {
1981 dasm_put(Dst, 10925, LJ_TISNUM, LJ_TISNUM);
1982 switch (op) {
1983 case BC_ISLT:
1984 dasm_put(Dst, 10955);
1985 break;
1986 case BC_ISGE:
1987 dasm_put(Dst, 10960);
1988 break;
1989 case BC_ISLE:
1990 dasm_put(Dst, 10965);
1991 break;
1992 case BC_ISGT:
1993 dasm_put(Dst, 10970);
1994 break;
1995 default: break; /* Shut up GCC. */
1996 }
1997 dasm_put(Dst, 10975, -BCBIAS_J*4, LJ_TISNUM);
1998 if (sse) {
1999 dasm_put(Dst, 11028);
2000 } else {
2001 dasm_put(Dst, 11039);
2002 }
2003 dasm_put(Dst, 11050);
2004 if (sse) {
2005 dasm_put(Dst, 11057);
2006 switch (op) {
2007 case BC_ISLT:
2008 dasm_put(Dst, 11077);
2009 break;
2010 case BC_ISGE:
2011 dasm_put(Dst, 11082);
2012 break;
2013 case BC_ISLE:
2014 dasm_put(Dst, 11087);
2015 break;
2016 case BC_ISGT:
2017 dasm_put(Dst, 11092);
2018 break;
2019 default: break; /* Shut up GCC. */
2020 }
2021 dasm_put(Dst, 11097);
2022 } else {
2023 dasm_put(Dst, 11102);
2024 }
2025 } else {
2026 dasm_put(Dst, 11110, LJ_TISNUM, LJ_TISNUM);
2027 }
1616 if (sse) { 2028 if (sse) {
1617 dasm_put(Dst, 10935); 2029 dasm_put(Dst, 11131);
1618 } else { 2030 } else {
1619 dasm_put(Dst, 10950); 2031 dasm_put(Dst, 11152);
1620 if (cmov) { 2032 if (cmov) {
1621 dasm_put(Dst, 10960); 2033 dasm_put(Dst, 3899);
1622 } else { 2034 } else {
1623 dasm_put(Dst, 10966); 2035 dasm_put(Dst, 3905);
1624 } 2036 }
1625 } 2037 }
1626 switch (op) { 2038 if (LJ_DUALNUM) {
1627 case BC_ISLT: 2039 switch (op) {
1628 dasm_put(Dst, 10973); 2040 case BC_ISLT:
2041 dasm_put(Dst, 11077);
2042 break;
2043 case BC_ISGE:
2044 dasm_put(Dst, 11082);
2045 break;
2046 case BC_ISLE:
2047 dasm_put(Dst, 11087);
2048 break;
2049 case BC_ISGT:
2050 dasm_put(Dst, 11092);
1629 break; 2051 break;
1630 case BC_ISGE: 2052 default: break; /* Shut up GCC. */
1631 dasm_put(Dst, 10105); 2053 }
2054 dasm_put(Dst, 11097);
2055 } else {
2056 switch (op) {
2057 case BC_ISLT:
2058 dasm_put(Dst, 11168);
1632 break; 2059 break;
1633 case BC_ISLE: 2060 case BC_ISGE:
1634 dasm_put(Dst, 6241); 2061 dasm_put(Dst, 11173);
1635 break; 2062 break;
1636 case BC_ISGT: 2063 case BC_ISLE:
1637 dasm_put(Dst, 10978); 2064 dasm_put(Dst, 11178);
1638 break; 2065 break;
1639 default: break; /* Shut up GCC. */ 2066 case BC_ISGT:
2067 dasm_put(Dst, 11183);
2068 break;
2069 default: break; /* Shut up GCC. */
2070 }
2071 dasm_put(Dst, 11188, -BCBIAS_J*4);
1640 } 2072 }
1641 dasm_put(Dst, 10983, -BCBIAS_J*4);
1642 break; 2073 break;
1643 2074
1644 case BC_ISEQV: case BC_ISNEV: 2075 case BC_ISEQV: case BC_ISNEV:
1645 vk = op == BC_ISEQV; 2076 vk = op == BC_ISEQV;
1646 dasm_put(Dst, 11016, LJ_TISNUM, LJ_TISNUM); 2077 dasm_put(Dst, 11219);
2078 if (LJ_DUALNUM) {
2079 dasm_put(Dst, 11227, LJ_TISNUM, LJ_TISNUM);
2080 if (vk) {
2081 dasm_put(Dst, 11252);
2082 } else {
2083 dasm_put(Dst, 11257);
2084 }
2085 dasm_put(Dst, 11262, -BCBIAS_J*4, LJ_TISNUM);
2086 if (sse) {
2087 dasm_put(Dst, 11313);
2088 } else {
2089 dasm_put(Dst, 11320);
2090 }
2091 dasm_put(Dst, 11324);
2092 if (sse) {
2093 dasm_put(Dst, 11335);
2094 } else {
2095 dasm_put(Dst, 11347);
2096 }
2097 dasm_put(Dst, 11354);
2098 } else {
2099 dasm_put(Dst, 11359, LJ_TISNUM, LJ_TISNUM);
2100 }
1647 if (sse) { 2101 if (sse) {
1648 dasm_put(Dst, 11042); 2102 dasm_put(Dst, 11378);
1649 } else { 2103 } else {
1650 dasm_put(Dst, 11054); 2104 dasm_put(Dst, 11396);
1651 if (cmov) { 2105 if (cmov) {
1652 dasm_put(Dst, 10960); 2106 dasm_put(Dst, 3899);
1653 } else { 2107 } else {
1654 dasm_put(Dst, 10966); 2108 dasm_put(Dst, 3905);
1655 } 2109 }
1656 } 2110 }
1657 iseqne_fp: 2111 iseqne_fp:
1658 if (vk) { 2112 if (vk) {
1659 dasm_put(Dst, 11061); 2113 dasm_put(Dst, 11409);
1660 } else { 2114 } else {
1661 dasm_put(Dst, 11070); 2115 dasm_put(Dst, 11418);
1662 } 2116 }
1663 iseqne_end: 2117 iseqne_end:
1664 if (vk) { 2118 if (vk) {
1665 dasm_put(Dst, 11079, -BCBIAS_J*4); 2119 dasm_put(Dst, 11427, -BCBIAS_J*4);
1666 if (!LJ_HASFFI) { 2120 if (!LJ_HASFFI) {
1667 dasm_put(Dst, 4654); 2121 dasm_put(Dst, 4799);
1668 } 2122 }
1669 } else { 2123 } else {
1670 if (!LJ_HASFFI) { 2124 if (!LJ_HASFFI) {
1671 dasm_put(Dst, 4654); 2125 dasm_put(Dst, 4799);
1672 } 2126 }
1673 dasm_put(Dst, 11094, -BCBIAS_J*4); 2127 dasm_put(Dst, 11442, -BCBIAS_J*4);
2128 }
2129 if (LJ_DUALNUM && (op == BC_ISEQV || op == BC_ISNEV ||
2130 op == BC_ISEQN || op == BC_ISNEN)) {
2131 dasm_put(Dst, 11457);
2132 } else {
2133 dasm_put(Dst, 11200);
1674 } 2134 }
1675 dasm_put(Dst, 10997);
1676 if (op == BC_ISEQV || op == BC_ISNEV) { 2135 if (op == BC_ISEQV || op == BC_ISNEV) {
1677 dasm_put(Dst, 11109); 2136 dasm_put(Dst, 11462);
1678 if (LJ_HASFFI) { 2137 if (LJ_HASFFI) {
1679 dasm_put(Dst, 11112, LJ_TCDATA, LJ_TCDATA); 2138 dasm_put(Dst, 11465, LJ_TCDATA, LJ_TCDATA);
1680 } 2139 }
1681 dasm_put(Dst, 11131, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 2140 dasm_put(Dst, 11484, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1682 if (vk) { 2141 if (vk) {
1683 dasm_put(Dst, 11187); 2142 dasm_put(Dst, 11540);
1684 } else { 2143 } else {
1685 dasm_put(Dst, 11191); 2144 dasm_put(Dst, 11544);
1686 } 2145 }
1687 dasm_put(Dst, 11197); 2146 dasm_put(Dst, 11550);
1688 } else if (LJ_HASFFI) { 2147 } else if (LJ_HASFFI) {
1689 dasm_put(Dst, 11202, LJ_TCDATA); 2148 dasm_put(Dst, 11555, LJ_TCDATA);
2149 if (LJ_DUALNUM && vk) {
2150 dasm_put(Dst, 11562);
2151 } else {
2152 dasm_put(Dst, 11535);
2153 }
2154 dasm_put(Dst, 11567);
1690 } 2155 }
1691 break; 2156 break;
1692 case BC_ISEQS: case BC_ISNES: 2157 case BC_ISEQS: case BC_ISNES:
1693 vk = op == BC_ISEQS; 2158 vk = op == BC_ISEQS;
1694 dasm_put(Dst, 11217, LJ_TSTR); 2159 dasm_put(Dst, 11572, LJ_TSTR);
1695 iseqne_test: 2160 iseqne_test:
1696 if (vk) { 2161 if (vk) {
1697 dasm_put(Dst, 11065); 2162 dasm_put(Dst, 11413);
1698 } else { 2163 } else {
1699 dasm_put(Dst, 2863); 2164 dasm_put(Dst, 2917);
1700 } 2165 }
1701 goto iseqne_end; 2166 goto iseqne_end;
1702 case BC_ISEQN: case BC_ISNEN: 2167 case BC_ISEQN: case BC_ISNEN:
1703 vk = op == BC_ISEQN; 2168 vk = op == BC_ISEQN;
1704 dasm_put(Dst, 11242, LJ_TISNUM); 2169 dasm_put(Dst, 11597);
2170 if (LJ_DUALNUM) {
2171 dasm_put(Dst, 11605, LJ_TISNUM, LJ_TISNUM);
2172 if (vk) {
2173 dasm_put(Dst, 11252);
2174 } else {
2175 dasm_put(Dst, 11257);
2176 }
2177 dasm_put(Dst, 11630, -BCBIAS_J*4, LJ_TISNUM);
2178 if (sse) {
2179 dasm_put(Dst, 11677);
2180 } else {
2181 dasm_put(Dst, 11684);
2182 }
2183 dasm_put(Dst, 11688);
2184 if (sse) {
2185 dasm_put(Dst, 11695);
2186 } else {
2187 dasm_put(Dst, 11707);
2188 }
2189 dasm_put(Dst, 11354);
2190 } else {
2191 dasm_put(Dst, 11714, LJ_TISNUM);
2192 }
1705 if (sse) { 2193 if (sse) {
1706 dasm_put(Dst, 11258); 2194 dasm_put(Dst, 11723);
1707 } else { 2195 } else {
1708 dasm_put(Dst, 11270); 2196 dasm_put(Dst, 11741);
1709 if (cmov) { 2197 if (cmov) {
1710 dasm_put(Dst, 10960); 2198 dasm_put(Dst, 3899);
1711 } else { 2199 } else {
1712 dasm_put(Dst, 10966); 2200 dasm_put(Dst, 3905);
1713 } 2201 }
2202 dasm_put(Dst, 4818);
1714 } 2203 }
1715 goto iseqne_fp; 2204 goto iseqne_fp;
1716 case BC_ISEQP: case BC_ISNEP: 2205 case BC_ISEQP: case BC_ISNEP:
1717 vk = op == BC_ISEQP; 2206 vk = op == BC_ISEQP;
1718 dasm_put(Dst, 11277); 2207 dasm_put(Dst, 11752);
1719 if (!LJ_HASFFI) goto iseqne_test; 2208 if (!LJ_HASFFI) goto iseqne_test;
1720 if (vk) { 2209 if (vk) {
1721 dasm_put(Dst, 11290, -BCBIAS_J*4, LJ_TCDATA); 2210 dasm_put(Dst, 11765, -BCBIAS_J*4, LJ_TCDATA);
1722 } else { 2211 } else {
1723 dasm_put(Dst, 11339, LJ_TCDATA, -BCBIAS_J*4); 2212 dasm_put(Dst, 11814, LJ_TCDATA, -BCBIAS_J*4);
1724 } 2213 }
1725 break; 2214 break;
1726 2215
1727 /* -- Unary test and copy ops ------------------------------------------- */ 2216 /* -- Unary test and copy ops ------------------------------------------- */
1728 2217
1729 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 2218 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1730 dasm_put(Dst, 11382, LJ_TISTRUECOND); 2219 dasm_put(Dst, 11857, LJ_TISTRUECOND);
1731 if (op == BC_IST || op == BC_ISTC) { 2220 if (op == BC_IST || op == BC_ISTC) {
1732 dasm_put(Dst, 11394); 2221 dasm_put(Dst, 11183);
1733 } else { 2222 } else {
1734 dasm_put(Dst, 11399); 2223 dasm_put(Dst, 11178);
1735 } 2224 }
1736 if (op == BC_ISTC || op == BC_ISFC) { 2225 if (op == BC_ISTC || op == BC_ISFC) {
1737 dasm_put(Dst, 11404); 2226 dasm_put(Dst, 11869);
1738 } 2227 }
1739 dasm_put(Dst, 11415, -BCBIAS_J*4); 2228 dasm_put(Dst, 11188, -BCBIAS_J*4);
1740 break; 2229 break;
1741 2230
1742 /* -- Unary ops --------------------------------------------------------- */ 2231 /* -- Unary ops --------------------------------------------------------- */
1743 2232
1744 case BC_MOV: 2233 case BC_MOV:
1745 dasm_put(Dst, 11446); 2234 dasm_put(Dst, 11880);
1746 break; 2235 break;
1747 case BC_NOT: 2236 case BC_NOT:
1748 dasm_put(Dst, 11479, LJ_TISTRUECOND, LJ_TTRUE); 2237 dasm_put(Dst, 11913, LJ_TISTRUECOND, LJ_TTRUE);
1749 break; 2238 break;
1750 case BC_UNM: 2239 case BC_UNM:
1751 dasm_put(Dst, 11514, LJ_TISNUM); 2240 if (LJ_DUALNUM) {
2241 dasm_put(Dst, 11948, LJ_TISNUM, LJ_TISNUM);
2242 } else {
2243 dasm_put(Dst, 12024, LJ_TISNUM);
2244 }
1752 if (sse) { 2245 if (sse) {
1753 dasm_put(Dst, 11525); 2246 dasm_put(Dst, 12035);
1754 } else { 2247 } else {
1755 dasm_put(Dst, 11555); 2248 dasm_put(Dst, 12065);
2249 }
2250 if (LJ_DUALNUM) {
2251 dasm_put(Dst, 11457);
2252 } else {
2253 dasm_put(Dst, 11200);
1756 } 2254 }
1757 dasm_put(Dst, 10997);
1758 break; 2255 break;
1759 case BC_LEN: 2256 case BC_LEN:
1760 dasm_put(Dst, 11564, LJ_TSTR); 2257 dasm_put(Dst, 12074, LJ_TSTR);
1761 if (sse) { 2258 if (LJ_DUALNUM) {
1762 dasm_put(Dst, 11578, Dt5(->len)); 2259 dasm_put(Dst, 12088, Dt5(->len), LJ_TISNUM);
2260 } else if (sse) {
2261 dasm_put(Dst, 12102, Dt5(->len));
1763 } else { 2262 } else {
1764 dasm_put(Dst, 11596, Dt5(->len)); 2263 dasm_put(Dst, 12120, Dt5(->len));
1765 } 2264 }
1766 dasm_put(Dst, 11605, LJ_TTAB); 2265 dasm_put(Dst, 12129, LJ_TTAB);
1767 if (sse) { 2266 if (LJ_DUALNUM) {
1768 dasm_put(Dst, 11645); 2267 } else if (sse) {
2268 dasm_put(Dst, 12169);
1769 } else { 2269 } else {
1770 dasm_put(Dst, 11654); 2270 dasm_put(Dst, 12175);
1771 } 2271 }
1772 dasm_put(Dst, 11664); 2272 dasm_put(Dst, 12182);
1773 break; 2273 break;
1774 2274
1775 /* -- Binary ops -------------------------------------------------------- */ 2275 /* -- Binary ops -------------------------------------------------------- */
1776 2276
1777 2277
1778 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 2278 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1779 dasm_put(Dst, 11674); 2279 if (LJ_DUALNUM) {
2280 dasm_put(Dst, 12195);
1780 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2281 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1781 switch (vk) { 2282 switch (vk) {
1782 case 0: 2283 case 0:
1783 dasm_put(Dst, 11682, LJ_TISNUM); 2284 dasm_put(Dst, 12203, LJ_TISNUM, LJ_TISNUM);
2285 break;
2286 case 1:
2287 dasm_put(Dst, 12236, LJ_TISNUM, LJ_TISNUM);
2288 break;
2289 default:
2290 dasm_put(Dst, 12269, LJ_TISNUM, LJ_TISNUM);
2291 break;
2292 }
2293 dasm_put(Dst, 12302, LJ_TISNUM);
2294 if (vk == 1) {
2295 dasm_put(Dst, 12098);
2296 } else {
2297 dasm_put(Dst, 11876);
2298 }
2299 dasm_put(Dst, 11200);
2300 } else {
2301 dasm_put(Dst, 12195);
2302 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2303 switch (vk) {
2304 case 0:
2305 dasm_put(Dst, 12308, LJ_TISNUM);
2306 if (LJ_DUALNUM) {
2307 dasm_put(Dst, 12320, LJ_TISNUM);
2308 }
1784 if (sse) { 2309 if (sse) {
1785 dasm_put(Dst, 11694); 2310 dasm_put(Dst, 12331);
1786 } else { 2311 } else {
1787 dasm_put(Dst, 11708); 2312 dasm_put(Dst, 12345);
1788 } 2313 }
1789 break; 2314 break;
1790 case 1: 2315 case 1:
1791 dasm_put(Dst, 11716, LJ_TISNUM); 2316 dasm_put(Dst, 12353, LJ_TISNUM);
2317 if (LJ_DUALNUM) {
2318 dasm_put(Dst, 12365, LJ_TISNUM);
2319 }
1792 if (sse) { 2320 if (sse) {
1793 dasm_put(Dst, 11728); 2321 dasm_put(Dst, 12376);
1794 } else { 2322 } else {
1795 dasm_put(Dst, 11742); 2323 dasm_put(Dst, 12390);
1796 } 2324 }
1797 break; 2325 break;
1798 default: 2326 default:
1799 dasm_put(Dst, 11750, LJ_TISNUM, LJ_TISNUM); 2327 dasm_put(Dst, 12398, LJ_TISNUM, LJ_TISNUM);
1800 if (sse) { 2328 if (sse) {
1801 dasm_put(Dst, 11772); 2329 dasm_put(Dst, 12420);
1802 } else { 2330 } else {
1803 dasm_put(Dst, 11786); 2331 dasm_put(Dst, 12434);
1804 } 2332 }
1805 break; 2333 break;
1806 } 2334 }
1807 if (sse) { 2335 if (sse) {
1808 dasm_put(Dst, 11548); 2336 dasm_put(Dst, 12058);
1809 } else { 2337 } else {
1810 dasm_put(Dst, 11560); 2338 dasm_put(Dst, 12070);
2339 }
2340 dasm_put(Dst, 11200);
1811 } 2341 }
1812 dasm_put(Dst, 10997);
1813 break; 2342 break;
1814 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 2343 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1815 dasm_put(Dst, 11674); 2344 if (LJ_DUALNUM) {
2345 dasm_put(Dst, 12195);
1816 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2346 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1817 switch (vk) { 2347 switch (vk) {
1818 case 0: 2348 case 0:
1819 dasm_put(Dst, 11682, LJ_TISNUM); 2349 dasm_put(Dst, 12442, LJ_TISNUM, LJ_TISNUM);
2350 break;
2351 case 1:
2352 dasm_put(Dst, 12475, LJ_TISNUM, LJ_TISNUM);
2353 break;
2354 default:
2355 dasm_put(Dst, 12508, LJ_TISNUM, LJ_TISNUM);
2356 break;
2357 }
2358 dasm_put(Dst, 12302, LJ_TISNUM);
2359 if (vk == 1) {
2360 dasm_put(Dst, 12098);
2361 } else {
2362 dasm_put(Dst, 11876);
2363 }
2364 dasm_put(Dst, 11200);
2365 } else {
2366 dasm_put(Dst, 12195);
2367 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2368 switch (vk) {
2369 case 0:
2370 dasm_put(Dst, 12308, LJ_TISNUM);
2371 if (LJ_DUALNUM) {
2372 dasm_put(Dst, 12320, LJ_TISNUM);
2373 }
1820 if (sse) { 2374 if (sse) {
1821 dasm_put(Dst, 11794); 2375 dasm_put(Dst, 12541);
1822 } else { 2376 } else {
1823 dasm_put(Dst, 11808); 2377 dasm_put(Dst, 12555);
1824 } 2378 }
1825 break; 2379 break;
1826 case 1: 2380 case 1:
1827 dasm_put(Dst, 11716, LJ_TISNUM); 2381 dasm_put(Dst, 12353, LJ_TISNUM);
2382 if (LJ_DUALNUM) {
2383 dasm_put(Dst, 12365, LJ_TISNUM);
2384 }
1828 if (sse) { 2385 if (sse) {
1829 dasm_put(Dst, 11816); 2386 dasm_put(Dst, 12563);
1830 } else { 2387 } else {
1831 dasm_put(Dst, 11830); 2388 dasm_put(Dst, 12577);
1832 } 2389 }
1833 break; 2390 break;
1834 default: 2391 default:
1835 dasm_put(Dst, 11750, LJ_TISNUM, LJ_TISNUM); 2392 dasm_put(Dst, 12398, LJ_TISNUM, LJ_TISNUM);
1836 if (sse) { 2393 if (sse) {
1837 dasm_put(Dst, 11838); 2394 dasm_put(Dst, 12585);
1838 } else { 2395 } else {
1839 dasm_put(Dst, 11852); 2396 dasm_put(Dst, 12599);
1840 } 2397 }
1841 break; 2398 break;
1842 } 2399 }
1843 if (sse) { 2400 if (sse) {
1844 dasm_put(Dst, 11548); 2401 dasm_put(Dst, 12058);
1845 } else { 2402 } else {
1846 dasm_put(Dst, 11560); 2403 dasm_put(Dst, 12070);
2404 }
2405 dasm_put(Dst, 11200);
1847 } 2406 }
1848 dasm_put(Dst, 10997);
1849 break; 2407 break;
1850 case BC_MULVN: case BC_MULNV: case BC_MULVV: 2408 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1851 dasm_put(Dst, 11674); 2409 if (LJ_DUALNUM) {
2410 dasm_put(Dst, 12195);
1852 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2411 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1853 switch (vk) { 2412 switch (vk) {
1854 case 0: 2413 case 0:
1855 dasm_put(Dst, 11682, LJ_TISNUM); 2414 dasm_put(Dst, 12607, LJ_TISNUM, LJ_TISNUM);
2415 break;
2416 case 1:
2417 dasm_put(Dst, 12641, LJ_TISNUM, LJ_TISNUM);
2418 break;
2419 default:
2420 dasm_put(Dst, 12675, LJ_TISNUM, LJ_TISNUM);
2421 break;
2422 }
2423 dasm_put(Dst, 12302, LJ_TISNUM);
2424 if (vk == 1) {
2425 dasm_put(Dst, 12098);
2426 } else {
2427 dasm_put(Dst, 11876);
2428 }
2429 dasm_put(Dst, 11200);
2430 } else {
2431 dasm_put(Dst, 12195);
2432 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2433 switch (vk) {
2434 case 0:
2435 dasm_put(Dst, 12308, LJ_TISNUM);
2436 if (LJ_DUALNUM) {
2437 dasm_put(Dst, 12320, LJ_TISNUM);
2438 }
1856 if (sse) { 2439 if (sse) {
1857 dasm_put(Dst, 11860); 2440 dasm_put(Dst, 12709);
1858 } else { 2441 } else {
1859 dasm_put(Dst, 11874); 2442 dasm_put(Dst, 12723);
1860 } 2443 }
1861 break; 2444 break;
1862 case 1: 2445 case 1:
1863 dasm_put(Dst, 11716, LJ_TISNUM); 2446 dasm_put(Dst, 12353, LJ_TISNUM);
2447 if (LJ_DUALNUM) {
2448 dasm_put(Dst, 12365, LJ_TISNUM);
2449 }
1864 if (sse) { 2450 if (sse) {
1865 dasm_put(Dst, 11882); 2451 dasm_put(Dst, 12731);
1866 } else { 2452 } else {
1867 dasm_put(Dst, 11896); 2453 dasm_put(Dst, 12745);
1868 } 2454 }
1869 break; 2455 break;
1870 default: 2456 default:
1871 dasm_put(Dst, 11750, LJ_TISNUM, LJ_TISNUM); 2457 dasm_put(Dst, 12398, LJ_TISNUM, LJ_TISNUM);
1872 if (sse) { 2458 if (sse) {
1873 dasm_put(Dst, 11904); 2459 dasm_put(Dst, 12753);
1874 } else { 2460 } else {
1875 dasm_put(Dst, 11918); 2461 dasm_put(Dst, 12767);
1876 } 2462 }
1877 break; 2463 break;
1878 } 2464 }
1879 if (sse) { 2465 if (sse) {
1880 dasm_put(Dst, 11548); 2466 dasm_put(Dst, 12058);
1881 } else { 2467 } else {
1882 dasm_put(Dst, 11560); 2468 dasm_put(Dst, 12070);
2469 }
2470 dasm_put(Dst, 11200);
1883 } 2471 }
1884 dasm_put(Dst, 10997);
1885 break; 2472 break;
1886 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 2473 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1887 dasm_put(Dst, 11674); 2474 dasm_put(Dst, 12195);
1888 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2475 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1889 switch (vk) { 2476 switch (vk) {
1890 case 0: 2477 case 0:
1891 dasm_put(Dst, 11682, LJ_TISNUM); 2478 dasm_put(Dst, 12308, LJ_TISNUM);
2479 if (LJ_DUALNUM) {
2480 dasm_put(Dst, 12320, LJ_TISNUM);
2481 }
1892 if (sse) { 2482 if (sse) {
1893 dasm_put(Dst, 11926); 2483 dasm_put(Dst, 12775);
1894 } else { 2484 } else {
1895 dasm_put(Dst, 11940); 2485 dasm_put(Dst, 12789);
1896 } 2486 }
1897 break; 2487 break;
1898 case 1: 2488 case 1:
1899 dasm_put(Dst, 11716, LJ_TISNUM); 2489 dasm_put(Dst, 12353, LJ_TISNUM);
2490 if (LJ_DUALNUM) {
2491 dasm_put(Dst, 12365, LJ_TISNUM);
2492 }
1900 if (sse) { 2493 if (sse) {
1901 dasm_put(Dst, 11948); 2494 dasm_put(Dst, 12797);
1902 } else { 2495 } else {
1903 dasm_put(Dst, 11962); 2496 dasm_put(Dst, 12811);
1904 } 2497 }
1905 break; 2498 break;
1906 default: 2499 default:
1907 dasm_put(Dst, 11750, LJ_TISNUM, LJ_TISNUM); 2500 dasm_put(Dst, 12398, LJ_TISNUM, LJ_TISNUM);
1908 if (sse) { 2501 if (sse) {
1909 dasm_put(Dst, 11970); 2502 dasm_put(Dst, 12819);
1910 } else { 2503 } else {
1911 dasm_put(Dst, 11984); 2504 dasm_put(Dst, 12833);
1912 } 2505 }
1913 break; 2506 break;
1914 } 2507 }
1915 if (sse) { 2508 if (sse) {
1916 dasm_put(Dst, 11548); 2509 dasm_put(Dst, 12058);
1917 } else { 2510 } else {
1918 dasm_put(Dst, 11560); 2511 dasm_put(Dst, 12070);
1919 } 2512 }
1920 dasm_put(Dst, 10997); 2513 dasm_put(Dst, 11200);
1921 break; 2514 break;
1922 case BC_MODVN: 2515 case BC_MODVN:
1923 dasm_put(Dst, 11674); 2516 dasm_put(Dst, 12195);
1924 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2517 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1925 switch (vk) { 2518 switch (vk) {
1926 case 0: 2519 case 0:
1927 dasm_put(Dst, 11682, LJ_TISNUM); 2520 dasm_put(Dst, 12308, LJ_TISNUM);
2521 if (LJ_DUALNUM) {
2522 dasm_put(Dst, 12320, LJ_TISNUM);
2523 }
1928 if (sse) { 2524 if (sse) {
1929 dasm_put(Dst, 11992); 2525 dasm_put(Dst, 12841);
1930 } else { 2526 } else {
1931 dasm_put(Dst, 12006); 2527 dasm_put(Dst, 12855);
1932 } 2528 }
1933 break; 2529 break;
1934 case 1: 2530 case 1:
1935 dasm_put(Dst, 11716, LJ_TISNUM); 2531 dasm_put(Dst, 12353, LJ_TISNUM);
2532 if (LJ_DUALNUM) {
2533 dasm_put(Dst, 12365, LJ_TISNUM);
2534 }
1936 if (sse) { 2535 if (sse) {
1937 dasm_put(Dst, 12014); 2536 dasm_put(Dst, 12863);
1938 } else { 2537 } else {
1939 dasm_put(Dst, 12028); 2538 dasm_put(Dst, 12877);
1940 } 2539 }
1941 break; 2540 break;
1942 default: 2541 default:
1943 dasm_put(Dst, 11750, LJ_TISNUM, LJ_TISNUM); 2542 dasm_put(Dst, 12398, LJ_TISNUM, LJ_TISNUM);
1944 if (sse) { 2543 if (sse) {
1945 dasm_put(Dst, 12036); 2544 dasm_put(Dst, 12885);
1946 } else { 2545 } else {
1947 dasm_put(Dst, 12050); 2546 dasm_put(Dst, 12899);
1948 } 2547 }
1949 break; 2548 break;
1950 } 2549 }
1951 dasm_put(Dst, 12058); 2550 dasm_put(Dst, 12907);
1952 if (sse) { 2551 if (sse) {
1953 dasm_put(Dst, 11548); 2552 dasm_put(Dst, 12058);
1954 } else { 2553 } else {
1955 dasm_put(Dst, 11560); 2554 dasm_put(Dst, 12070);
1956 } 2555 }
1957 dasm_put(Dst, 10997); 2556 dasm_put(Dst, 11200);
1958 break; 2557 break;
1959 case BC_MODNV: case BC_MODVV: 2558 case BC_MODNV: case BC_MODVV:
1960 dasm_put(Dst, 11674); 2559 dasm_put(Dst, 12195);
1961 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2560 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1962 switch (vk) { 2561 switch (vk) {
1963 case 0: 2562 case 0:
1964 dasm_put(Dst, 11682, LJ_TISNUM); 2563 dasm_put(Dst, 12308, LJ_TISNUM);
2564 if (LJ_DUALNUM) {
2565 dasm_put(Dst, 12320, LJ_TISNUM);
2566 }
1965 if (sse) { 2567 if (sse) {
1966 dasm_put(Dst, 11992); 2568 dasm_put(Dst, 12841);
1967 } else { 2569 } else {
1968 dasm_put(Dst, 12006); 2570 dasm_put(Dst, 12855);
1969 } 2571 }
1970 break; 2572 break;
1971 case 1: 2573 case 1:
1972 dasm_put(Dst, 11716, LJ_TISNUM); 2574 dasm_put(Dst, 12353, LJ_TISNUM);
2575 if (LJ_DUALNUM) {
2576 dasm_put(Dst, 12365, LJ_TISNUM);
2577 }
1973 if (sse) { 2578 if (sse) {
1974 dasm_put(Dst, 12014); 2579 dasm_put(Dst, 12863);
1975 } else { 2580 } else {
1976 dasm_put(Dst, 12028); 2581 dasm_put(Dst, 12877);
1977 } 2582 }
1978 break; 2583 break;
1979 default: 2584 default:
1980 dasm_put(Dst, 11750, LJ_TISNUM, LJ_TISNUM); 2585 dasm_put(Dst, 12398, LJ_TISNUM, LJ_TISNUM);
1981 if (sse) { 2586 if (sse) {
1982 dasm_put(Dst, 12036); 2587 dasm_put(Dst, 12885);
1983 } else { 2588 } else {
1984 dasm_put(Dst, 12050); 2589 dasm_put(Dst, 12899);
1985 } 2590 }
1986 break; 2591 break;
1987 } 2592 }
1988 dasm_put(Dst, 12064); 2593 dasm_put(Dst, 12913);
1989 break; 2594 break;
1990 case BC_POW: 2595 case BC_POW:
1991 dasm_put(Dst, 11674); 2596 dasm_put(Dst, 12195);
1992 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2597 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1993 switch (vk) { 2598 switch (vk) {
1994 case 0: 2599 case 0:
1995 dasm_put(Dst, 11682, LJ_TISNUM); 2600 dasm_put(Dst, 12308, LJ_TISNUM);
2601 if (LJ_DUALNUM) {
2602 dasm_put(Dst, 12320, LJ_TISNUM);
2603 }
1996 if (sse) { 2604 if (sse) {
1997 dasm_put(Dst, 11992); 2605 dasm_put(Dst, 12841);
1998 } else { 2606 } else {
1999 dasm_put(Dst, 12006); 2607 dasm_put(Dst, 12855);
2000 } 2608 }
2001 break; 2609 break;
2002 case 1: 2610 case 1:
2003 dasm_put(Dst, 11716, LJ_TISNUM); 2611 dasm_put(Dst, 12353, LJ_TISNUM);
2612 if (LJ_DUALNUM) {
2613 dasm_put(Dst, 12365, LJ_TISNUM);
2614 }
2004 if (sse) { 2615 if (sse) {
2005 dasm_put(Dst, 12014); 2616 dasm_put(Dst, 12863);
2006 } else { 2617 } else {
2007 dasm_put(Dst, 12028); 2618 dasm_put(Dst, 12877);
2008 } 2619 }
2009 break; 2620 break;
2010 default: 2621 default:
2011 dasm_put(Dst, 11750, LJ_TISNUM, LJ_TISNUM); 2622 dasm_put(Dst, 12398, LJ_TISNUM, LJ_TISNUM);
2012 if (sse) { 2623 if (sse) {
2013 dasm_put(Dst, 12036); 2624 dasm_put(Dst, 12885);
2014 } else { 2625 } else {
2015 dasm_put(Dst, 12050); 2626 dasm_put(Dst, 12899);
2016 } 2627 }
2017 break; 2628 break;
2018 } 2629 }
2019 dasm_put(Dst, 12069); 2630 dasm_put(Dst, 12918);
2020 if (sse) { 2631 if (sse) {
2021 dasm_put(Dst, 11548); 2632 dasm_put(Dst, 12058);
2022 } else { 2633 } else {
2023 dasm_put(Dst, 11560); 2634 dasm_put(Dst, 12070);
2024 } 2635 }
2025 dasm_put(Dst, 10997); 2636 dasm_put(Dst, 11200);
2026 break; 2637 break;
2027 2638
2028 case BC_CAT: 2639 case BC_CAT:
2029 dasm_put(Dst, 12073, Dt1(->base), Dt1(->base)); 2640 dasm_put(Dst, 12922, Dt1(->base), Dt1(->base));
2030 break; 2641 break;
2031 2642
2032 /* -- Constant ops ------------------------------------------------------ */ 2643 /* -- Constant ops ------------------------------------------------------ */
2033 2644
2034 case BC_KSTR: 2645 case BC_KSTR:
2035 dasm_put(Dst, 12167, LJ_TSTR); 2646 dasm_put(Dst, 13016, LJ_TSTR);
2036 break; 2647 break;
2037 case BC_KCDATA: 2648 case BC_KCDATA:
2038#if LJ_HASFFI 2649#if LJ_HASFFI
2039 dasm_put(Dst, 12167, LJ_TCDATA); 2650 dasm_put(Dst, 13016, LJ_TCDATA);
2040#endif 2651#endif
2041 break; 2652 break;
2042 case BC_KSHORT: 2653 case BC_KSHORT:
2043 if (sse) { 2654 if (LJ_DUALNUM) {
2044 dasm_put(Dst, 12200); 2655 dasm_put(Dst, 13049, LJ_TISNUM);
2656 } else if (sse) {
2657 dasm_put(Dst, 13061);
2045 } else { 2658 } else {
2046 dasm_put(Dst, 12215); 2659 dasm_put(Dst, 13076);
2047 } 2660 }
2048 dasm_put(Dst, 10997); 2661 dasm_put(Dst, 11200);
2049 break; 2662 break;
2050 case BC_KNUM: 2663 case BC_KNUM:
2051 if (sse) { 2664 if (sse) {
2052 dasm_put(Dst, 12223); 2665 dasm_put(Dst, 13084);
2053 } else { 2666 } else {
2054 dasm_put(Dst, 12236); 2667 dasm_put(Dst, 13097);
2055 } 2668 }
2056 dasm_put(Dst, 10997); 2669 dasm_put(Dst, 11200);
2057 break; 2670 break;
2058 case BC_KPRI: 2671 case BC_KPRI:
2059 dasm_put(Dst, 12243); 2672 dasm_put(Dst, 13104);
2060 break; 2673 break;
2061 case BC_KNIL: 2674 case BC_KNIL:
2062 dasm_put(Dst, 12269, LJ_TNIL); 2675 dasm_put(Dst, 13130, LJ_TNIL);
2063 break; 2676 break;
2064 2677
2065 /* -- Upvalue and function ops ------------------------------------------ */ 2678 /* -- Upvalue and function ops ------------------------------------------ */
2066 2679
2067 case BC_UGET: 2680 case BC_UGET:
2068 dasm_put(Dst, 12315, offsetof(GCfuncL, uvptr), DtA(->v)); 2681 dasm_put(Dst, 13176, offsetof(GCfuncL, uvptr), DtA(->v));
2069 break; 2682 break;
2070 case BC_USETV: 2683 case BC_USETV:
2071#define TV2MARKOFS \ 2684#define TV2MARKOFS \
2072 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 2685 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
2073 dasm_put(Dst, 12359, 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); 2686 dasm_put(Dst, 13220, 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);
2074 dasm_put(Dst, 12449); 2687 dasm_put(Dst, 13310);
2075 break; 2688 break;
2076#undef TV2MARKOFS 2689#undef TV2MARKOFS
2077 case BC_USETS: 2690 case BC_USETS:
2078 dasm_put(Dst, 12461, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 2691 dasm_put(Dst, 13322, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
2079 break; 2692 break;
2080 case BC_USETN: 2693 case BC_USETN:
2081 dasm_put(Dst, 12552); 2694 dasm_put(Dst, 13413);
2082 if (sse) { 2695 if (sse) {
2083 dasm_put(Dst, 12557); 2696 dasm_put(Dst, 13418);
2084 } else { 2697 } else {
2085 dasm_put(Dst, 11273); 2698 dasm_put(Dst, 12859);
2086 } 2699 }
2087 dasm_put(Dst, 12564, offsetof(GCfuncL, uvptr), DtA(->v)); 2700 dasm_put(Dst, 13425, offsetof(GCfuncL, uvptr), DtA(->v));
2088 if (sse) { 2701 if (sse) {
2089 dasm_put(Dst, 12573); 2702 dasm_put(Dst, 13434);
2090 } else { 2703 } else {
2091 dasm_put(Dst, 12579); 2704 dasm_put(Dst, 13440);
2092 } 2705 }
2093 dasm_put(Dst, 10997); 2706 dasm_put(Dst, 11200);
2094 break; 2707 break;
2095 case BC_USETP: 2708 case BC_USETP:
2096 dasm_put(Dst, 12582, offsetof(GCfuncL, uvptr), DtA(->v)); 2709 dasm_put(Dst, 13443, offsetof(GCfuncL, uvptr), DtA(->v));
2097 break; 2710 break;
2098 case BC_UCLO: 2711 case BC_UCLO:
2099 dasm_put(Dst, 12619, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2712 dasm_put(Dst, 13480, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2100 break; 2713 break;
2101 2714
2102 case BC_FNEW: 2715 case BC_FNEW:
2103 dasm_put(Dst, 12673, Dt1(->base), Dt1(->base), LJ_TFUNC); 2716 dasm_put(Dst, 13534, Dt1(->base), Dt1(->base), LJ_TFUNC);
2104 break; 2717 break;
2105 2718
2106 /* -- Table ops --------------------------------------------------------- */ 2719 /* -- Table ops --------------------------------------------------------- */
2107 2720
2108 case BC_TNEW: 2721 case BC_TNEW:
2109 dasm_put(Dst, 12744, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 2722 dasm_put(Dst, 13605, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
2110 break; 2723 break;
2111 case BC_TDUP: 2724 case BC_TDUP:
2112 dasm_put(Dst, 12870, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2725 dasm_put(Dst, 13731, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2113 break; 2726 break;
2114 2727
2115 case BC_GGET: 2728 case BC_GGET:
2116 dasm_put(Dst, 12962, Dt7(->env)); 2729 dasm_put(Dst, 13823, Dt7(->env));
2117 break; 2730 break;
2118 case BC_GSET: 2731 case BC_GSET:
2119 dasm_put(Dst, 12980, Dt7(->env)); 2732 dasm_put(Dst, 13841, Dt7(->env));
2120 break; 2733 break;
2121 2734
2122 case BC_TGETV: 2735 case BC_TGETV:
2123 dasm_put(Dst, 12998, LJ_TTAB, LJ_TISNUM); 2736 dasm_put(Dst, 13859, LJ_TTAB);
2124 if (sse) { 2737 if (LJ_DUALNUM) {
2125 dasm_put(Dst, 13031); 2738 dasm_put(Dst, 13882, LJ_TISNUM);
2126 } else { 2739 } else {
2127 dasm_put(Dst, 13052); 2740 dasm_put(Dst, 13896, LJ_TISNUM);
2128 if (cmov) { 2741 if (sse) {
2129 dasm_put(Dst, 10960); 2742 dasm_put(Dst, 13907);
2130 } else { 2743 } else {
2131 dasm_put(Dst, 10966); 2744 dasm_put(Dst, 13928);
2745 if (cmov) {
2746 dasm_put(Dst, 3899);
2747 } else {
2748 dasm_put(Dst, 3905);
2749 }
2750 dasm_put(Dst, 2635);
2132 } 2751 }
2133 dasm_put(Dst, 2573); 2752 dasm_put(Dst, 13938);
2134 } 2753 }
2135 dasm_put(Dst, 13062, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2754 dasm_put(Dst, 13943, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL);
2136 dasm_put(Dst, 13150, LJ_TNIL, LJ_TSTR); 2755 dasm_put(Dst, 14038, LJ_TSTR);
2137 break; 2756 break;
2138 case BC_TGETS: 2757 case BC_TGETS:
2139 dasm_put(Dst, 13179, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2758 dasm_put(Dst, 14056, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2140 dasm_put(Dst, 13267, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2759 dasm_put(Dst, 14144, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2141 break; 2760 break;
2142 case BC_TGETB: 2761 case BC_TGETB:
2143 dasm_put(Dst, 13337, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2762 dasm_put(Dst, 14214, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2144 dasm_put(Dst, 13436, LJ_TNIL); 2763 dasm_put(Dst, 14313, LJ_TNIL);
2145 break; 2764 break;
2146 2765
2147 case BC_TSETV: 2766 case BC_TSETV:
2148 dasm_put(Dst, 13453, LJ_TTAB, LJ_TISNUM); 2767 dasm_put(Dst, 14330, LJ_TTAB);
2149 if (sse) { 2768 if (LJ_DUALNUM) {
2150 dasm_put(Dst, 13031); 2769 dasm_put(Dst, 13882, LJ_TISNUM);
2151 } else { 2770 } else {
2152 dasm_put(Dst, 13052); 2771 dasm_put(Dst, 13896, LJ_TISNUM);
2153 if (cmov) { 2772 if (sse) {
2154 dasm_put(Dst, 10960); 2773 dasm_put(Dst, 13907);
2155 } else { 2774 } else {
2156 dasm_put(Dst, 10966); 2775 dasm_put(Dst, 13928);
2776 if (cmov) {
2777 dasm_put(Dst, 3899);
2778 } else {
2779 dasm_put(Dst, 3905);
2780 }
2781 dasm_put(Dst, 2635);
2157 } 2782 }
2158 dasm_put(Dst, 2573); 2783 dasm_put(Dst, 14353);
2159 } 2784 }
2160 dasm_put(Dst, 13486, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 2785 dasm_put(Dst, 14358, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex);
2161 dasm_put(Dst, 13569, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2786 dasm_put(Dst, 14442, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2162 break; 2787 break;
2163 case BC_TSETS: 2788 case BC_TSETS:
2164 dasm_put(Dst, 13631, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2789 dasm_put(Dst, 14499, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2165 dasm_put(Dst, 13706, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2790 dasm_put(Dst, 14574, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2166 dasm_put(Dst, 13798, 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)); 2791 dasm_put(Dst, 14666, 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));
2167 break; 2792 break;
2168 case BC_TSETB: 2793 case BC_TSETB:
2169 dasm_put(Dst, 13894, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2794 dasm_put(Dst, 14762, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2170 dasm_put(Dst, 13992, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2795 dasm_put(Dst, 14860, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2171 break; 2796 break;
2172 2797
2173 case BC_TSETM: 2798 case BC_TSETM:
2174 dasm_put(Dst, 14038, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 2799 dasm_put(Dst, 14906, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
2175 dasm_put(Dst, 14187, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2800 dasm_put(Dst, 15055, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2176 break; 2801 break;
2177 2802
2178 /* -- Calls and vararg handling ----------------------------------------- */ 2803 /* -- Calls and vararg handling ----------------------------------------- */
2179 2804
2180 case BC_CALL: case BC_CALLM: 2805 case BC_CALL: case BC_CALLM:
2181 dasm_put(Dst, 11678); 2806 dasm_put(Dst, 12199);
2182 if (op == BC_CALLM) { 2807 if (op == BC_CALLM) {
2183 dasm_put(Dst, 14205); 2808 dasm_put(Dst, 15073);
2184 } 2809 }
2185 dasm_put(Dst, 14210, LJ_TFUNC, Dt7(->pc)); 2810 dasm_put(Dst, 15078, LJ_TFUNC, Dt7(->pc));
2186 break; 2811 break;
2187 2812
2188 case BC_CALLMT: 2813 case BC_CALLMT:
2189 dasm_put(Dst, 14205); 2814 dasm_put(Dst, 15073);
2190 break; 2815 break;
2191 case BC_CALLT: 2816 case BC_CALLT:
2192 dasm_put(Dst, 14251, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2817 dasm_put(Dst, 15119, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2193 dasm_put(Dst, 14369, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 2818 dasm_put(Dst, 15237, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
2194 break; 2819 break;
2195 2820
2196 case BC_ITERC: 2821 case BC_ITERC:
2197 dasm_put(Dst, 14439, LJ_TFUNC, 2+1, Dt7(->pc)); 2822 dasm_put(Dst, 15307, LJ_TFUNC, 2+1, Dt7(->pc));
2198 break; 2823 break;
2199 2824
2200 case BC_ITERN: 2825 case BC_ITERN:
2201#if LJ_HASJIT 2826#if LJ_HASJIT
2202#endif 2827#endif
2203 dasm_put(Dst, 14519, Dt6(->asize), Dt6(->array), LJ_TNIL); 2828 dasm_put(Dst, 15387, Dt6(->asize), Dt6(->array), LJ_TNIL);
2204 if (sse) { 2829 if (LJ_DUALNUM) {
2205 dasm_put(Dst, 14565); 2830 dasm_put(Dst, 12093, LJ_TISNUM);
2831 } else if (sse) {
2832 dasm_put(Dst, 12169);
2206 } else { 2833 } else {
2207 dasm_put(Dst, 14571); 2834 dasm_put(Dst, 15433);
2208 } 2835 }
2209 dasm_put(Dst, 14577); 2836 dasm_put(Dst, 15439);
2210 if (sse) { 2837 if (LJ_DUALNUM) {
2211 dasm_put(Dst, 11548); 2838 } else if (sse) {
2839 dasm_put(Dst, 12058);
2212 } else { 2840 } else {
2213 dasm_put(Dst, 11560); 2841 dasm_put(Dst, 12070);
2214 } 2842 }
2215 dasm_put(Dst, 14596, -BCBIAS_J*4); 2843 dasm_put(Dst, 15458, -BCBIAS_J*4);
2216 if (!sse) { 2844 if (!LJ_DUALNUM && !sse) {
2217 dasm_put(Dst, 14647); 2845 dasm_put(Dst, 15509);
2218 } 2846 }
2219 dasm_put(Dst, 14653, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key.gcr), DtB(->key.it), DtB(->val.gcr), DtB(->val.it)); 2847 dasm_put(Dst, 15515, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key.gcr), DtB(->key.it), DtB(->val.gcr), DtB(->val.it));
2220 dasm_put(Dst, 14728); 2848 dasm_put(Dst, 15590);
2221 break; 2849 break;
2222 2850
2223 case BC_ISNEXT: 2851 case BC_ISNEXT:
2224 dasm_put(Dst, 14736, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC); 2852 dasm_put(Dst, 15598, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
2225 break; 2853 break;
2226 2854
2227 case BC_VARG: 2855 case BC_VARG:
2228 dasm_put(Dst, 14835, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2856 dasm_put(Dst, 15697, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2229 dasm_put(Dst, 14999, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2857 dasm_put(Dst, 15861, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2230 break; 2858 break;
2231 2859
2232 /* -- Returns ----------------------------------------------------------- */ 2860 /* -- Returns ----------------------------------------------------------- */
2233 2861
2234 case BC_RETM: 2862 case BC_RETM:
2235 dasm_put(Dst, 14205); 2863 dasm_put(Dst, 15073);
2236 break; 2864 break;
2237 2865
2238 case BC_RET: case BC_RET0: case BC_RET1: 2866 case BC_RET: case BC_RET0: case BC_RET1:
2239 if (op != BC_RET0) { 2867 if (op != BC_RET0) {
2240 dasm_put(Dst, 15070); 2868 dasm_put(Dst, 15932);
2241 } 2869 }
2242 dasm_put(Dst, 15074, FRAME_TYPE); 2870 dasm_put(Dst, 15936, FRAME_TYPE);
2243 switch (op) { 2871 switch (op) {
2244 case BC_RET: 2872 case BC_RET:
2245 dasm_put(Dst, 15093); 2873 dasm_put(Dst, 15955);
2246 break; 2874 break;
2247 case BC_RET1: 2875 case BC_RET1:
2248 dasm_put(Dst, 15151); 2876 dasm_put(Dst, 16013);
2249 /* fallthrough */ 2877 /* fallthrough */
2250 case BC_RET0: 2878 case BC_RET0:
2251 dasm_put(Dst, 15167); 2879 dasm_put(Dst, 16029);
2252 default: 2880 default:
2253 break; 2881 break;
2254 } 2882 }
2255 dasm_put(Dst, 15178, Dt7(->pc), PC2PROTO(k)); 2883 dasm_put(Dst, 16040, Dt7(->pc), PC2PROTO(k));
2256 if (op == BC_RET) { 2884 if (op == BC_RET) {
2257 dasm_put(Dst, 15220, LJ_TNIL); 2885 dasm_put(Dst, 16082, LJ_TNIL);
2258 } else { 2886 } else {
2259 dasm_put(Dst, 15229, LJ_TNIL); 2887 dasm_put(Dst, 16091, LJ_TNIL);
2260 } 2888 }
2261 dasm_put(Dst, 15236, -FRAME_VARG, FRAME_TYPEP); 2889 dasm_put(Dst, 16098, -FRAME_VARG, FRAME_TYPEP);
2262 if (op != BC_RET0) { 2890 if (op != BC_RET0) {
2263 dasm_put(Dst, 15260); 2891 dasm_put(Dst, 16122);
2264 } 2892 }
2265 dasm_put(Dst, 4738); 2893 dasm_put(Dst, 4883);
2266 break; 2894 break;
2267 2895
2268 /* -- Loops and branches ------------------------------------------------ */ 2896 /* -- Loops and branches ------------------------------------------------ */
@@ -2270,7 +2898,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2270 2898
2271 case BC_FORL: 2899 case BC_FORL:
2272#if LJ_HASJIT 2900#if LJ_HASJIT
2273 dasm_put(Dst, 15264, HOTCOUNT_PCMASK, GG_DISP2HOT); 2901 dasm_put(Dst, 16126, HOTCOUNT_PCMASK, GG_DISP2HOT);
2274#endif 2902#endif
2275 break; 2903 break;
2276 2904
@@ -2282,57 +2910,104 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2282 case BC_FORI: 2910 case BC_FORI:
2283 case BC_IFORL: 2911 case BC_IFORL:
2284 vk = (op == BC_IFORL || op == BC_JFORL); 2912 vk = (op == BC_IFORL || op == BC_JFORL);
2285 dasm_put(Dst, 15285); 2913 dasm_put(Dst, 16147);
2914 if (LJ_DUALNUM) {
2915 dasm_put(Dst, 16151, LJ_TISNUM);
2916 if (!vk) {
2917 dasm_put(Dst, 16161, LJ_TISNUM, LJ_TISNUM);
2918 } else {
2919 dasm_put(Dst, 16190);
2920 }
2921 dasm_put(Dst, 16209, LJ_TISNUM);
2922 if (op == BC_FORI) {
2923 dasm_put(Dst, 16220, -BCBIAS_J*4);
2924 } else if (op == BC_JFORI) {
2925 dasm_put(Dst, 16234, -BCBIAS_J*4, BC_JLOOP);
2926 } else if (op == BC_IFORL) {
2927 dasm_put(Dst, 16252, -BCBIAS_J*4);
2928 } else {
2929 dasm_put(Dst, 16244, BC_JLOOP);
2930 }
2931 dasm_put(Dst, 16266);
2932 if (vk) {
2933 dasm_put(Dst, 16289);
2934 }
2935 dasm_put(Dst, 16209, LJ_TISNUM);
2936 if (op == BC_FORI) {
2937 dasm_put(Dst, 16298);
2938 } else if (op == BC_JFORI) {
2939 dasm_put(Dst, 16303, -BCBIAS_J*4, BC_JLOOP);
2940 } else if (op == BC_IFORL) {
2941 dasm_put(Dst, 16317);
2942 } else {
2943 dasm_put(Dst, 16313, BC_JLOOP);
2944 }
2945 dasm_put(Dst, 16322);
2946 } else if (!vk) {
2947 dasm_put(Dst, 16329, LJ_TISNUM);
2948 }
2286 if (!vk) { 2949 if (!vk) {
2287 dasm_put(Dst, 15289, LJ_TISNUM, LJ_TISNUM); 2950 dasm_put(Dst, 16335, LJ_TISNUM);
2288 } 2951 }
2289 dasm_put(Dst, 15308); 2952 dasm_put(Dst, 16349);
2290 if (!vk) { 2953 if (!vk) {
2291 dasm_put(Dst, 15312, LJ_TISNUM); 2954 dasm_put(Dst, 16353, LJ_TISNUM);
2292 } 2955 }
2293 if (sse) { 2956 if (sse) {
2294 dasm_put(Dst, 15321); 2957 dasm_put(Dst, 16362);
2295 if (vk) { 2958 if (vk) {
2296 dasm_put(Dst, 15333); 2959 dasm_put(Dst, 16374);
2297 } else { 2960 } else {
2298 dasm_put(Dst, 15352); 2961 dasm_put(Dst, 16393);
2299 } 2962 }
2300 dasm_put(Dst, 15357); 2963 dasm_put(Dst, 16398);
2301 } else { 2964 } else {
2302 dasm_put(Dst, 15370); 2965 dasm_put(Dst, 16411);
2303 if (vk) { 2966 if (vk) {
2304 dasm_put(Dst, 15376); 2967 dasm_put(Dst, 16417);
2305 } else { 2968 } else {
2306 dasm_put(Dst, 15392); 2969 dasm_put(Dst, 16433);
2307 } 2970 }
2308 dasm_put(Dst, 15400); 2971 dasm_put(Dst, 16441);
2309 if (cmov) { 2972 if (cmov) {
2310 dasm_put(Dst, 10960); 2973 dasm_put(Dst, 3899);
2311 } else { 2974 } else {
2312 dasm_put(Dst, 10966); 2975 dasm_put(Dst, 3905);
2313 } 2976 }
2314 if (!cmov) { 2977 if (!cmov) {
2315 dasm_put(Dst, 15405); 2978 dasm_put(Dst, 16446);
2316 } 2979 }
2317 } 2980 }
2318 if (op == BC_FORI) { 2981 if (op == BC_FORI) {
2319 dasm_put(Dst, 15411, -BCBIAS_J*4); 2982 if (LJ_DUALNUM) {
2983 dasm_put(Dst, 16452);
2984 } else {
2985 dasm_put(Dst, 16457, -BCBIAS_J*4);
2986 }
2320 } else if (op == BC_JFORI) { 2987 } else if (op == BC_JFORI) {
2321 dasm_put(Dst, 15421, -BCBIAS_J*4, BC_JLOOP); 2988 dasm_put(Dst, 16467, -BCBIAS_J*4, BC_JLOOP);
2322 } else if (op == BC_IFORL) { 2989 } else if (op == BC_IFORL) {
2323 dasm_put(Dst, 15435, -BCBIAS_J*4); 2990 if (LJ_DUALNUM) {
2991 dasm_put(Dst, 16481);
2992 } else {
2993 dasm_put(Dst, 16486, -BCBIAS_J*4);
2994 }
2995 } else {
2996 dasm_put(Dst, 16477, BC_JLOOP);
2997 }
2998 if (LJ_DUALNUM) {
2999 dasm_put(Dst, 11097);
2324 } else { 3000 } else {
2325 dasm_put(Dst, 15431, BC_JLOOP); 3001 dasm_put(Dst, 11836);
2326 } 3002 }
2327 dasm_put(Dst, 10995);
2328 if (sse) { 3003 if (sse) {
2329 dasm_put(Dst, 15445); 3004 dasm_put(Dst, 16496);
2330 } 3005 }
2331 break; 3006 break;
2332 3007
2333 case BC_ITERL: 3008 case BC_ITERL:
2334#if LJ_HASJIT 3009#if LJ_HASJIT
2335 dasm_put(Dst, 15264, HOTCOUNT_PCMASK, GG_DISP2HOT); 3010 dasm_put(Dst, 16126, HOTCOUNT_PCMASK, GG_DISP2HOT);
2336#endif 3011#endif
2337 break; 3012 break;
2338 3013
@@ -2341,33 +3016,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2341 break; 3016 break;
2342#endif 3017#endif
2343 case BC_IITERL: 3018 case BC_IITERL:
2344 dasm_put(Dst, 15456, LJ_TNIL); 3019 dasm_put(Dst, 16507, LJ_TNIL);
2345 if (op == BC_JITERL) { 3020 if (op == BC_JITERL) {
2346 dasm_put(Dst, 15471, BC_JLOOP); 3021 dasm_put(Dst, 16522, BC_JLOOP);
2347 } else { 3022 } else {
2348 dasm_put(Dst, 15485, -BCBIAS_J*4); 3023 dasm_put(Dst, 16536, -BCBIAS_J*4);
2349 } 3024 }
2350 dasm_put(Dst, 11425); 3025 dasm_put(Dst, 11198);
2351 break; 3026 break;
2352 3027
2353 case BC_LOOP: 3028 case BC_LOOP:
2354#if LJ_HASJIT 3029#if LJ_HASJIT
2355 dasm_put(Dst, 15264, HOTCOUNT_PCMASK, GG_DISP2HOT); 3030 dasm_put(Dst, 16126, HOTCOUNT_PCMASK, GG_DISP2HOT);
2356#endif 3031#endif
2357 break; 3032 break;
2358 3033
2359 case BC_ILOOP: 3034 case BC_ILOOP:
2360 dasm_put(Dst, 10997); 3035 dasm_put(Dst, 11200);
2361 break; 3036 break;
2362 3037
2363 case BC_JLOOP: 3038 case BC_JLOOP:
2364#if LJ_HASJIT 3039#if LJ_HASJIT
2365 dasm_put(Dst, 15501, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 3040 dasm_put(Dst, 16552, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2366#endif 3041#endif
2367 break; 3042 break;
2368 3043
2369 case BC_JMP: 3044 case BC_JMP:
2370 dasm_put(Dst, 15524, -BCBIAS_J*4); 3045 dasm_put(Dst, 16575, -BCBIAS_J*4);
2371 break; 3046 break;
2372 3047
2373 /* -- Function headers -------------------------------------------------- */ 3048 /* -- Function headers -------------------------------------------------- */
@@ -2381,7 +3056,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2381 3056
2382 case BC_FUNCF: 3057 case BC_FUNCF:
2383#if LJ_HASJIT 3058#if LJ_HASJIT
2384 dasm_put(Dst, 15548, HOTCOUNT_PCMASK, GG_DISP2HOT); 3059 dasm_put(Dst, 16599, HOTCOUNT_PCMASK, GG_DISP2HOT);
2385#endif 3060#endif
2386 case BC_FUNCV: /* NYI: compiled vararg functions. */ 3061 case BC_FUNCV: /* NYI: compiled vararg functions. */
2387 break; 3062 break;
@@ -2391,47 +3066,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2391 break; 3066 break;
2392#endif 3067#endif
2393 case BC_IFUNCF: 3068 case BC_IFUNCF:
2394 dasm_put(Dst, 15569, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 3069 dasm_put(Dst, 16620, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2395 if (op == BC_JFUNCF) { 3070 if (op == BC_JFUNCF) {
2396 dasm_put(Dst, 15599, BC_JLOOP); 3071 dasm_put(Dst, 16650, BC_JLOOP);
2397 } else { 3072 } else {
2398 dasm_put(Dst, 10997); 3073 dasm_put(Dst, 11200);
2399 } 3074 }
2400 dasm_put(Dst, 15608, LJ_TNIL); 3075 dasm_put(Dst, 16659, LJ_TNIL);
2401 break; 3076 break;
2402 3077
2403 case BC_JFUNCV: 3078 case BC_JFUNCV:
2404#if !LJ_HASJIT 3079#if !LJ_HASJIT
2405 break; 3080 break;
2406#endif 3081#endif
2407 dasm_put(Dst, 10292); 3082 dasm_put(Dst, 10303);
2408 break; /* NYI: compiled vararg functions. */ 3083 break; /* NYI: compiled vararg functions. */
2409 3084
2410 case BC_IFUNCV: 3085 case BC_IFUNCV:
2411 dasm_put(Dst, 15630, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 3086 dasm_put(Dst, 16681, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2412 if (op == BC_JFUNCV) { 3087 if (op == BC_JFUNCV) {
2413 dasm_put(Dst, 15599, BC_JLOOP); 3088 dasm_put(Dst, 16650, BC_JLOOP);
2414 } else { 3089 } else {
2415 dasm_put(Dst, 15721, -4+PC2PROTO(k)); 3090 dasm_put(Dst, 16772, -4+PC2PROTO(k));
2416 } 3091 }
2417 dasm_put(Dst, 15743, LJ_TNIL); 3092 dasm_put(Dst, 16794, LJ_TNIL);
2418 break; 3093 break;
2419 3094
2420 case BC_FUNCC: 3095 case BC_FUNCC:
2421 case BC_FUNCCW: 3096 case BC_FUNCCW:
2422 dasm_put(Dst, 15765, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 3097 dasm_put(Dst, 16816, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2423 if (op == BC_FUNCC) { 3098 if (op == BC_FUNCC) {
2424 dasm_put(Dst, 15794); 3099 dasm_put(Dst, 16845);
2425 } else { 3100 } else {
2426 dasm_put(Dst, 15798); 3101 dasm_put(Dst, 16849);
2427 } 3102 }
2428 dasm_put(Dst, 15806, DISPATCH_GL(vmstate), ~LJ_VMST_C); 3103 dasm_put(Dst, 16857, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2429 if (op == BC_FUNCC) { 3104 if (op == BC_FUNCC) {
2430 dasm_put(Dst, 15815); 3105 dasm_put(Dst, 16866);
2431 } else { 3106 } else {
2432 dasm_put(Dst, 15819, DISPATCH_GL(wrapf)); 3107 dasm_put(Dst, 16870, DISPATCH_GL(wrapf));
2433 } 3108 }
2434 dasm_put(Dst, 15824, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 3109 dasm_put(Dst, 16875, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2435 break; 3110 break;
2436 3111
2437 /* ---------------------------------------------------------------------- */ 3112 /* ---------------------------------------------------------------------- */
@@ -2459,7 +3134,7 @@ static int build_backend(BuildCtx *ctx)
2459 3134
2460 build_subroutines(ctx, cmov, sse); 3135 build_subroutines(ctx, cmov, sse);
2461 3136
2462 dasm_put(Dst, 15849); 3137 dasm_put(Dst, 16900);
2463 for (op = 0; op < BC__MAX; op++) 3138 for (op = 0; op < BC__MAX; op++)
2464 build_ins(ctx, (BCOp)op, op, cmov, sse); 3139 build_ins(ctx, (BCOp)op, op, cmov, sse);
2465 3140