--- /dev/null
+#!/usr/bin/env python3
+
+# Copyright (C) 2019 Nick Downing <nick@ndcode.org>
+# SPDX-License-Identifier: GPL-2.0-with-bison-exception
+#
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation; version 2.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 51
+# Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+#
+# As a special exception, you may create a larger work that contains part or
+# all of the pilex lexical scanner skeleton and distribute that work under
+# terms of your choice, so long as that work isn't itself a lexical scanner
+# generator using the skeleton or a modified version thereof as a lexical
+# scanner skeleton. Alternatively, if you modify or redistribute the lexical
+# scanner skeleton itself, you may (at your option) remove this special
+# exception, which will cause the skeleton and the resulting pilex output
+# files to be licensed under the GNU General Public License without this
+# special exception.
+
+import bisect
+import sys
+
+YY_TRAILING_MASK = 0x2000
+YY_TRAILING_HEAD_MASK = 0x4000
+
+# this can be redefined in SECTION1
+def YY_AT_BOL():
+ return yy_buffer_stack[-1].at_bol
+
+def yy_set_bol(at_bol):
+ yy_buffer_stack[-1].at_bol = at_bol
+
+def YY_USER_ACTION():
+ pass
+
+def YY_RULE_START():
+ # note that this should also be done after yyless() and REJECT(),
+ # and state should be saved in case they result in a null string,
+ # however, it doesn't seem to be in flex, maintain compatibility:
+ if len(yytext):
+ yy_set_bol(yytext[-1] == '\n')
+ YY_USER_ACTION()
+
+# GENERATE SECTION1 BEGIN
+# GENERATE END
+
+# GENERATE STARTCONDDECL BEGIN
+INITIAL = 0
+DATA = 1
+DATA_TEXT = 2
+REM_TEXT = 3
+STR_LITERAL = 4
+# GENERATE END
+
+class YYReject(Exception):
+ pass
+
+class YYContinue(Exception):
+ pass
+
+class YYTerminate(Exception):
+ pass
+
+# each input file is represented as a linked list in which the
+# head is a YYBufferState and the following items (if any) are
+# YYBufferBlock -- the YYBufferList parent class is defined so
+# that we can guarantee the "previous" item to any particular
+# YYBufferBlock is at least a YYBufferList and hence deletion
+# (or other operation that needs the "previous" item) is easy
+class YYBufferList:
+ def __init__(self, next = None):
+ self.next = next
+
+class YYBufferBlock(YYBufferList):
+ def __init__(self, next = None, pos = 0, text = ''):
+ YYBufferList.__init__(self, next)
+ self.pos = pos
+ self.text = text
+
+class YYBufferState(YYBufferList):
+ def __init__(self, next = None, file_in = None, at_bol = True):
+ YYBufferList.__init__(self, next)
+ self.file_in = file_in
+ self.at_bol = at_bol
+
+yyin = sys.stdin
+yyout = sys.stdout
+yy_buffer_stack = [YYBufferState()]
+
+yystart = INITIAL
+yystart_stack = []
+
+yytext = ''
+yytext_len = 0
+
+yylineno = 0
+
+yy_state_buf = []
+
+YY_NULL = 0
+
+def REJECT():
+ # can't have already committed (can't call unput then REJECT)
+ assert yytext_len == len(yytext) # cannot have already committed
+ raise YYReject()
+
+def yyterminate():
+ raise YYTerminate()
+
+def yyless(i):
+ global yytext, yytext_len
+ # can't have already committed (can't call unput then yyless)
+ assert yytext_len == len(yytext)
+ assert yytext_len >= i
+ yytext = yytext[:i]
+ yytext_len = i
+
+def yycommit():
+ # now user code cannot call REJECT() / yyless() anymore,
+ # thus we know the match was of length yytext_len and we
+ # can skip that many chars, popping buffer stack for real
+ # we leave yytext == 0 afterwards, so double commit is OK
+ # (double commit occurs if user calls the unput function)
+ global yytext_len
+ #print('commit', yytext_len)
+ while yytext_len:
+ block = yy_buffer_stack[-1].next
+ while block is None or block.pos >= len(block.text):
+ if block is None:
+ yy_buffer_stack.pop()
+ block = yy_buffer_stack[-1].next
+ yyin = yy_buffer_stack[-1].file_in
+ else:
+ block = block.next
+ yy_buffer_stack[-1].next = block
+ i = min(yytext_len, len(block.text) - block.pos)
+ block.pos += i
+ yytext_len -= i
+
+def unput(text):
+ yycommit() # user cannot call REJECT() / yyless() anymore
+ yy_buffer_stack[-1].next = YYBufferBlock(yy_buffer_stack[-1].next, 0, text)
+
+def ECHO():
+ yyout.write(yytext)
+
+def BEGIN(start):
+ global yystart
+ yystart = start
+
+def YY_START():
+ return yystart
+
+def yy_push_state(start):
+ global yystart
+ yystart_stack.append(yystart)
+ yystart = start
+
+def yy_pop_state():
+ global yystart
+ yystart = yystart_stack.pop()
+
+# GENERATE SECTION2 BEGIN
+YY_END_OF_BUFFER = 116
+yy_acclist = [
+ 16500, 116, 16499, 115, 16384, 0, 16385, 1, 16433, 49,
+ 16460, 76, 16458, 74, 16459, 75, 16461, 77, 16467, 83,
+ 16466, 82, 16465, 81, 16499, 115, 16499, 115, 16499, 115,
+ 16499, 115, 16499, 115, 16499, 115, 16499, 115, 16499, 115,
+ 16499, 115, 16499, 115, 16499, 115, 16499, 115, 16499, 115,
+ 16499, 115, 16499, 115, 16499, 115, 16499, 115, 16499, 115,
+ 16499, 115, 16499, 115, 16462, 78, 16499, 115, 16499, 115,
+ 16499, 115, 16499, 115, 16499, 115, 16499, 115, 16499, 115,
+ 16499, 115, 16499, 115, 16499, 115, 16499, 115, 16499, 115,
+ 16499, 115, 16499, 115, 16499, 115, 16499, 115, 16499, 115,
+ 16499, 115, 16499, 115, 16499, 115, 16494, 110, 16493, 109,
+ 16384, 0, 16385, 1, 16499, 115, 16493, 109, 16499, 115,
+ 16493, 109, 16495, 111, 16493, 109, 16499, 115, 16496, 112,
+ 16499, 115, 16498, 114, 16497, 113, 16455, 71, 16452, 68,
+ 16394, 10, 16431, 47, 16438, 54, 16464, 80, 16451, 67,
+ 16455, 71, 16438, 54, 16470, 86, 16463, 79, 16488, 104,
+ 16483, 99, 16480, 96, 16442, 58, 16391, 7, 16392, 8,
+ 16386, 2, 16479, 95, 16387, 3, 16472, 88, 16448, 64,
+ 16403, 19, 16397, 13, 16469, 85, 16485, 101, 16428, 44,
+ 16478, 94, 16449, 65, 16456, 72, 16474, 90, 16419, 35,
+ 16475, 91, 16396, 12, 16436, 52, 16477, 93, 16430, 46,
+ 16468, 84, 16481, 97, 16476, 92, 16482, 98, 16471, 87,
+ 16487, 103, 16403, 19, 16456, 72, 16398, 14, 16489, 105,
+ 16445, 61, 16389, 5, 16406, 22, 16429, 45, 16402, 18,
+ 16400, 16, 16409, 25, 16408, 24, 16446, 62, 16440, 56,
+ 16492, 108, 16388, 4, 16484, 100, 16399, 15, 16443, 59,
+ 16393, 9, 16410, 26, 16441, 57, 16453, 69, 16457, 73,
+ 16437, 53, 16486, 102, 16450, 66, 16395, 11, 16454, 70,
+ 16401, 17, 16420, 36, 16439, 55, 16447, 63, 16417, 33,
+ 16434, 50, 16405, 21, 16390, 6, 16490, 106, 16423, 39,
+ 16444, 60, 16473, 89, 16426, 42, 16413, 29, 16407, 23,
+ 16418, 34, 16421, 37, 16422, 38, 16415, 31, 16425, 41,
+ 16424, 40, 16435, 51, 16491, 107, 16411, 27, 16412, 28,
+ 16427, 43, 16404, 20, 16416, 32, 16414, 30, 16432, 48
+]
+yy_accept = [
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2, 4, 6, 8, 10, 12, 14, 16,
+ 18, 20, 22, 24, 26, 28, 30, 32, 34, 36,
+ 38, 40, 42, 44, 46, 48, 50, 52, 54, 56,
+ 58, 60, 62, 64, 66, 68, 70, 72, 74, 76,
+ 78, 80, 82, 84, 86, 88, 90, 92, 94, 96,
+ 98, 100, 102, 104, 106, 108, 110, 112, 114, 116,
+ 118, 120, 122, 124, 126, 128, 130, 132, 134, 136,
+ 136, 136, 136, 136, 136, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 140, 140, 140, 140, 140, 140,
+ 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
+ 142, 144, 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 146, 148, 148, 148,
+ 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
+ 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
+ 148, 148, 148, 148, 148, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 152, 152, 152, 152, 152, 152, 152, 152, 152,
+ 152, 152, 152, 152, 152, 152, 152, 152, 152, 152,
+ 152, 152, 152, 152, 152, 152, 152, 152, 152, 152,
+ 152, 152, 152, 152, 152, 152, 152, 152, 152, 152,
+ 152, 152, 154, 154, 154, 154, 154, 154, 154, 154,
+ 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
+ 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
+ 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
+ 156, 156, 158, 158, 160, 160, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 164, 164, 164, 164,
+ 166, 168, 168, 170, 170, 170, 170, 172, 172, 174,
+ 174, 174, 174, 176, 176, 178, 178, 180, 180, 180,
+ 180, 180, 180, 180, 182, 182, 182, 182, 182, 182,
+ 182, 182, 182, 182, 182, 182, 184, 184, 186, 186,
+ 186, 186, 188, 190, 190, 190, 190, 190, 192, 192,
+ 192, 192, 192, 194, 194, 194, 194, 196, 196, 196,
+ 196, 198, 198, 198, 198, 198, 198, 198, 200, 202,
+ 202, 204, 204, 204, 204, 204, 206, 206, 206, 206,
+ 206, 206, 208, 208, 208, 208, 210, 210, 210, 210,
+ 210, 210, 210, 212, 212, 212, 212, 214, 214, 214,
+ 214, 214, 216, 216, 216, 216, 216, 216, 216, 218,
+ 218, 218, 218, 218, 218, 218, 218, 220, 220, 222,
+ 222, 222, 222, 222, 222, 222, 222, 222, 222, 222,
+ 222, 222, 222, 222, 222, 222, 222, 222, 222, 222,
+ 222, 222, 222, 222, 222, 222, 222, 222, 222, 222,
+ 222, 222, 222, 222, 222, 222, 222, 222, 222, 222,
+ 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
+ 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
+ 224, 224, 224, 224, 224, 224, 224, 226, 226, 226,
+ 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
+ 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
+ 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
+ 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
+ 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
+ 226, 226, 226, 226, 226, 226, 228, 228, 230, 230,
+ 230, 230, 230, 230, 232, 232, 234, 234, 236, 236,
+ 236, 236, 236, 236, 238, 238, 238, 238, 240, 240,
+ 240, 240, 242, 242, 244, 244, 244, 244, 246, 246,
+ 246, 246, 246, 246, 246, 246, 248, 248, 250, 250,
+ 250, 250, 252, 252, 254, 254, 254, 254, 254, 254,
+ 254, 254, 256, 256, 258, 258, 260, 260, 260, 260,
+ 262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
+ 262, 264, 264, 266, 266, 266, 266, 266, 266, 266,
+ 266, 268, 268, 268, 268, 270, 270, 272, 272, 272,
+ 274, 274, 276, 276, 278, 278, 280, 280, 280, 280,
+ 282, 282, 284, 284, 286, 286, 286, 286, 286, 286,
+ 286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
+ 286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
+ 286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
+ 286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
+ 286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
+ 286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
+ 286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
+ 286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
+ 288, 288, 288, 288, 290, 290, 292, 292, 292, 292,
+ 292, 292, 294, 294, 296, 296, 296, 296, 298, 298,
+ 298, 298, 298, 298, 298, 298, 300, 300, 302, 302,
+ 302, 302, 302, 302, 302, 302, 302, 302, 302, 302,
+ 302, 302, 304, 304, 304, 304, 304, 304, 306, 306,
+ 308, 308, 310, 310, 310, 310, 310, 310, 310, 310,
+ 310, 310, 310, 310, 310, 310, 310, 310, 310, 310,
+ 310, 310, 310, 310, 310, 310, 310, 310, 310, 310,
+ 310, 310, 310, 310, 310, 310, 310, 310, 310, 310,
+ 310, 310, 310, 310, 310, 310, 312, 312, 312, 312,
+ 314, 314, 314, 314, 316, 316, 318, 318, 318, 318,
+ 320, 320, 320, 320, 322, 322, 324, 324, 326, 326,
+ 328, 328, 330, 330, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 334, 334, 336, 336, 338,
+ 338, 340, 340, 340, 340, 340
+]
+yy_base = [
+ 0, 4902, 4814, 4557, 4557, 4300, 4300, 4043, 4043, 3786,
+ 3786, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3529, 3190, 3415, 2933, 2594, 2476, 2251,
+ 3423, 1994, 1658, 3417, 939, 1887, 598, 341, 2846, 1570,
+ 855, 1547, 1487, 0, 3425, 2823, 3447, 2819, 2477, 1571,
+ 1897, 2502, 1915, 1585, 2821, 234, 1883, 225, 257, 2845,
+ 1562, 232, 1546, 1484, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3529, 1561, 1483, 1468, 1456, 0, 3190, 1430, 1374, 1345,
+ 826, 3415, 1275, 2487, 1211, 1545, 0, 2933, 1481, 1193,
+ 0, 2594, 1544, 0, 1370, 1344, 2476, 1269, 2484, 0,
+ 0, 2251, 1192, 2501, 1209, 1584, 1204, 1425, 1542, 3423,
+ 0, 2508, 0, 1994, 823, 1555, 254, 0, 1658, 1480,
+ 3417, 2483, 828, 0, 939, 1342, 0, 1887, 1423, 1339,
+ 1185, 231, 1909, 0, 598, 2829, 1167, 1479, 1263, 1454,
+ 0, 341, 1169, 2851, 1452, 1394, 1450, 2480, 1368, 1911,
+ 2846, 2494, 1166, 1306, 0, 1541, 1570, 1366, 855, 1393,
+ 1583, 1539, 1547, 1582, 1487, 1364, 3425, 1556, 1473, 1457,
+ 1455, 2823, 1391, 1363, 1304, 239, 3447, 1262, 1586, 866,
+ 1536, 2819, 1465, 860, 2477, 1535, 1369, 1279, 1571, 1188,
+ 2481, 1897, 1184, 2493, 1203, 1581, 1202, 1390, 1534, 2502,
+ 1892, 1915, 229, 1553, 228, 1585, 1478, 2821, 1899, 236,
+ 234, 1303, 1883, 1395, 1301, 1183, 226, 1884, 225, 2820,
+ 857, 1463, 1261, 1453, 257, 849, 2509, 1451, 1389, 1449,
+ 2479, 1367, 1910, 2845, 1895, 1165, 1300, 1533, 1562, 1365,
+ 232, 1392, 1576, 1532, 1546, 1573, 1484, 1362, 1561, 0,
+ 1483, 0, 1468, 0, 1456, 0, 1430, 1388, 1374, 1164,
+ 1345, 1531, 826, 1182, 1260, 0, 1275, 1530, 2487, 0,
+ 0, 1211, 0, 1545, 1196, 1481, 0, 1193, 0, 1544,
+ 1552, 1370, 0, 1344, 0, 1269, 0, 2484, 853, 1181,
+ 1192, 1387, 2501, 846, 1209, 1299, 1584, 1448, 1204, 1298,
+ 1425, 1180, 1542, 845, 2508, 0, 839, 0, 1297, 823,
+ 1259, 0, 0, 1555, 1258, 254, 1477, 0, 1296, 1480,
+ 893, 2483, 0, 1257, 828, 1201, 1361, 1342, 1360, 1423,
+ 0, 1339, 842, 1185, 1255, 231, 1295, 0, 0, 1909,
+ 0, 1446, 2829, 1476, 1527, 0, 1901, 838, 1167, 841,
+ 1479, 0, 1263, 830, 1454, 0, 1169, 1294, 2851, 1385,
+ 1445, 1452, 0, 1394, 1179, 1450, 0, 2480, 250, 1293,
+ 1368, 0, 1911, 852, 2496, 858, 2494, 240, 0, 1166,
+ 1253, 1306, 1444, 1541, 1466, 1366, 0, 1393, 0, 1583,
+ 1442, 1539, 829, 1582, 1250, 1364, 1526, 1556, 1473, 1457,
+ 1455, 1391, 1380, 1363, 833, 1304, 1525, 239, 1178, 1187,
+ 1262, 1529, 1586, 866, 1536, 301, 1465, 860, 1535, 1550,
+ 1369, 1279, 1188, 2481, 837, 834, 1184, 1384, 2493, 270,
+ 1203, 1292, 1581, 1447, 1202, 1278, 1390, 1177, 1534, 264,
+ 1892, 836, 1291, 229, 1216, 1553, 1176, 228, 1462, 1289,
+ 1478, 832, 1899, 1175, 236, 1200, 1359, 1303, 1358, 1395,
+ 1301, 252, 1183, 1174, 226, 1277, 1884, 1440, 2820, 1461,
+ 1524, 1890, 831, 857, 263, 1463, 1261, 249, 1453, 849,
+ 1276, 2509, 1383, 1439, 1451, 1389, 1173, 1449, 2479, 241,
+ 1288, 1367, 1910, 835, 2491, 566, 1895, 238, 1165, 904,
+ 1300, 1443, 1533, 1464, 1365, 1392, 1576, 1441, 1532, 259,
+ 1573, 902, 1362, 1521, 1388, 0, 1164, 0, 1531, 1357,
+ 1182, 1356, 1260, 0, 1530, 0, 1196, 0, 1552, 255,
+ 853, 268, 1181, 0, 1387, 1172, 846, 0, 1299, 1199,
+ 1448, 0, 1298, 0, 1180, 1215, 845, 0, 839, 1214,
+ 1297, 1355, 1259, 844, 1258, 0, 1477, 0, 1296, 1198,
+ 893, 0, 1257, 0, 1201, 1518, 1361, 1510, 1360, 1354,
+ 842, 0, 1255, 0, 1295, 0, 1446, 1213, 1476, 0,
+ 1527, 1378, 1901, 1171, 1197, 838, 1353, 841, 1212, 830,
+ 0, 1294, 0, 1385, 1287, 1445, 237, 1179, 1507, 250,
+ 0, 1293, 1475, 852, 0, 2496, 0, 1286, 858, 0,
+ 240, 0, 1253, 0, 1444, 0, 1466, 1285, 1442, 0,
+ 829, 0, 1250, 0, 1526, 840, 1380, 833, 1525, 1290,
+ 1178, 1352, 1187, 1529, 301, 1550, 251, 837, 253, 834,
+ 1384, 1170, 270, 1292, 1195, 1447, 1278, 1177, 901, 264,
+ 836, 868, 1291, 1351, 1216, 308, 1176, 1462, 1289, 1191,
+ 832, 1175, 1200, 1505, 1359, 1504, 1358, 1284, 252, 1174,
+ 1277, 1440, 867, 1461, 1524, 1377, 1890, 851, 1190, 831,
+ 1350, 263, 1186, 249, 1276, 1383, 1283, 1439, 235, 1173,
+ 1489, 241, 1288, 1472, 835, 2491, 1274, 566, 238, 904,
+ 1443, 1464, 1273, 1441, 259, 902, 1521, 294, 1357, 0,
+ 1356, 827, 255, 0, 268, 0, 1172, 1349, 1199, 824,
+ 1215, 0, 1214, 0, 1355, 1549, 844, 0, 1198, 230,
+ 1518, 1375, 1510, 1460, 1354, 0, 1213, 0, 1378, 1373,
+ 1171, 1348, 1197, 1282, 1353, 1436, 1212, 843, 1287, 825,
+ 237, 0, 1507, 1470, 1475, 260, 1286, 0, 1285, 0,
+ 840, 0, 1290, 1352, 247, 251, 253, 1170, 1347, 1195,
+ 233, 901, 868, 1351, 1548, 308, 1191, 227, 1505, 1372,
+ 1504, 1458, 1284, 867, 1377, 1371, 851, 1346, 1190, 1272,
+ 1350, 1426, 1186, 307, 1283, 244, 235, 1489, 1459, 1472,
+ 243, 1274, 1273, 294, 827, 0, 1349, 246, 824, 0,
+ 1549, 1281, 230, 0, 1375, 0, 1460, 1280, 1373, 0,
+ 1348, 1271, 1282, 0, 1436, 0, 843, 0, 825, 0,
+ 1470, 0, 260, 0, 247, 1347, 242, 233, 1548, 1270,
+ 227, 1372, 1458, 1194, 1371, 1346, 1189, 1272, 1426, 307,
+ 244, 1459, 243, 246, 0, 1281, 0, 1280, 0, 1271,
+ 0, 242, 1270, 1194, 1189
+]
+yy_def = [
+ 0, 0, 1, 0, 3, 0, 5, 0, 7, 0,
+ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 33, 0, 0, 27, 0,
+ 23, 0, 0, 30, 0, 29, 0, 0, 24, 32,
+ 132, 32, 32, 0, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
+ 39, 40, 41, 42, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 23, 39, 42, 32, 32, 0, 24, 32, 32, 32,
+ 34, 25, 32, 113, 32, 41, 0, 26, 42, 32,
+ 0, 27, 41, 0, 88, 89, 28, 92, 113, 0,
+ 0, 29, 32, 26, 94, 32, 94, 87, 41, 30,
+ 0, 28, 0, 31, 34, 39, 34, 0, 32, 42,
+ 33, 26, 34, 0, 34, 89, 0, 35, 87, 89,
+ 112, 34, 113, 0, 36, 24, 32, 42, 92, 84,
+ 0, 37, 32, 113, 84, 87, 84, 113, 88, 28,
+ 38, 26, 32, 89, 0, 41, 39, 88, 40, 87,
+ 32, 41, 41, 32, 42, 88, 44, 81, 82, 83,
+ 84, 45, 87, 88, 89, 90, 46, 92, 93, 94,
+ 41, 47, 98, 99, 48, 41, 104, 105, 49, 107,
+ 108, 50, 112, 113, 94, 32, 94, 87, 41, 51,
+ 121, 52, 124, 39, 126, 53, 42, 54, 131, 132,
+ 55, 89, 56, 138, 89, 112, 141, 142, 57, 145,
+ 146, 147, 92, 149, 58, 152, 113, 154, 87, 156,
+ 157, 158, 28, 59, 161, 162, 89, 41, 60, 167,
+ 61, 169, 32, 41, 62, 32, 63, 88, 81, 0,
+ 82, 0, 83, 0, 84, 0, 87, 87, 88, 32,
+ 89, 41, 90, 112, 92, 0, 92, 41, 93, 0,
+ 0, 94, 0, 95, 32, 98, 0, 99, 0, 102,
+ 39, 104, 0, 105, 0, 107, 0, 108, 32, 112,
+ 112, 87, 113, 32, 114, 89, 115, 84, 116, 89,
+ 117, 112, 118, 32, 121, 0, 298, 0, 89, 124,
+ 92, 0, 0, 125, 92, 126, 42, 0, 89, 129,
+ 269, 131, 0, 92, 132, 94, 88, 135, 88, 138,
+ 0, 139, 32, 140, 92, 141, 89, 0, 0, 142,
+ 0, 84, 145, 42, 41, 0, 113, 298, 146, 32,
+ 147, 0, 148, 32, 149, 0, 152, 89, 153, 87,
+ 84, 154, 0, 155, 112, 156, 0, 157, 32, 89,
+ 158, 0, 159, 99, 113, 269, 161, 378, 0, 162,
+ 92, 163, 84, 165, 83, 167, 0, 169, 0, 170,
+ 84, 171, 313, 173, 92, 175, 41, 177, 178, 179,
+ 180, 182, 267, 183, 269, 184, 41, 185, 112, 274,
+ 187, 277, 188, 189, 190, 284, 192, 193, 195, 39,
+ 196, 197, 199, 200, 298, 299, 202, 87, 203, 303,
+ 204, 89, 205, 307, 206, 309, 207, 112, 208, 313,
+ 210, 298, 89, 212, 92, 213, 324, 214, 326, 89,
+ 216, 330, 218, 333, 219, 94, 88, 221, 88, 223,
+ 224, 342, 225, 344, 226, 346, 227, 84, 229, 353,
+ 41, 356, 298, 230, 359, 231, 232, 363, 233, 235,
+ 367, 236, 87, 84, 237, 238, 112, 239, 240, 378,
+ 89, 241, 242, 383, 384, 385, 244, 387, 245, 390,
+ 246, 392, 247, 83, 249, 251, 252, 400, 253, 402,
+ 255, 404, 257, 41, 267, 0, 269, 0, 271, 88,
+ 273, 88, 274, 0, 277, 0, 284, 0, 290, 359,
+ 298, 313, 299, 0, 301, 112, 303, 0, 305, 94,
+ 307, 0, 309, 0, 311, 92, 313, 0, 316, 92,
+ 318, 88, 320, 269, 324, 0, 326, 0, 328, 94,
+ 330, 0, 333, 0, 335, 41, 336, 41, 338, 88,
+ 342, 0, 344, 0, 346, 0, 351, 92, 353, 0,
+ 354, 87, 356, 112, 94, 357, 88, 359, 92, 363,
+ 0, 367, 0, 369, 89, 370, 378, 374, 41, 378,
+ 0, 379, 42, 383, 0, 384, 0, 89, 385, 0,
+ 387, 0, 390, 0, 392, 0, 394, 89, 400, 0,
+ 402, 0, 404, 0, 406, 284, 412, 414, 416, 529,
+ 418, 88, 419, 421, 425, 429, 539, 434, 541, 435,
+ 437, 112, 439, 441, 94, 443, 445, 447, 555, 449,
+ 451, 559, 452, 88, 454, 563, 456, 458, 459, 94,
+ 461, 463, 465, 41, 466, 41, 468, 579, 471, 473,
+ 475, 477, 587, 479, 480, 87, 481, 112, 94, 482,
+ 88, 484, 92, 487, 490, 492, 89, 493, 606, 496,
+ 41, 499, 500, 42, 503, 504, 617, 505, 507, 509,
+ 511, 513, 627, 517, 519, 521, 523, 635, 529, 0,
+ 531, 363, 539, 0, 541, 0, 545, 88, 549, 32,
+ 555, 0, 559, 0, 561, 39, 563, 0, 569, 729,
+ 575, 87, 577, 83, 579, 0, 587, 0, 591, 87,
+ 593, 88, 594, 89, 596, 84, 598, 269, 604, 363,
+ 606, 0, 608, 42, 612, 363, 617, 0, 627, 0,
+ 635, 0, 639, 641, 721, 646, 648, 651, 88, 654,
+ 729, 658, 661, 663, 39, 665, 669, 739, 673, 741,
+ 675, 83, 677, 682, 685, 749, 687, 88, 688, 753,
+ 690, 755, 692, 757, 696, 759, 698, 700, 763, 703,
+ 765, 706, 712, 717, 721, 0, 727, 363, 729, 0,
+ 735, 89, 739, 0, 741, 0, 743, 89, 749, 0,
+ 751, 89, 753, 0, 755, 0, 757, 0, 759, 0,
+ 763, 0, 765, 0, 774, 778, 817, 780, 784, 821,
+ 787, 789, 791, 827, 795, 797, 831, 799, 801, 803,
+ 805, 808, 810, 817, 0, 821, 0, 827, 0, 831,
+ 0, 846, 849, 853, 856
+]
+yy_nxt = [
+ 11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 228, 474, 850,
+ 457, 453, 822, 345, 250, 847, 220, 806, 464, 760,
+ 708, 417, 620, 701, 871, 862, 860, 761, 863, 844,
+ 621, 693, 609, 775, 678, 776, 325, 722, 823, 234,
+ 610, 714, 842, 458, 229, 691, 659, 251, 230, 454,
+ 724, 475, 652, 231, 232, 459, 346, 864, 252, 133,
+ 233, 347, 221, 133, 348, 418, 253, 419, 465, 326,
+ 466, 843, 235, 127, 236, 327, 813, 723, 237, 238,
+ 239, 328, 133, 644, 725, 692, 133, 240, 241, 859,
+ 785, 242, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 151, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 152, 150, 153, 150,
+ 150, 150, 154, 155, 156, 150, 150, 150, 150, 150,
+ 150, 157, 158, 150, 150, 159, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 707, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 144, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 145, 143, 143,
+ 143, 146, 143, 143, 143, 143, 147, 148, 143, 143,
+ 143, 143, 143, 149, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 319, 818, 838, 272, 814,
+ 334, 630, 599, 689, 670, 637, 649, 704, 660, 647,
+ 595, 558, 770, 597, 580, 836, 736, 556, 546, 837,
+ 737, 489, 819, 796, 613, 540, 839, 168, 815, 483,
+ 618, 600, 427, 320, 619, 631, 547, 127, 423, 793,
+ 782, 321, 273, 127, 274, 133, 133, 322, 133, 275,
+ 335, 557, 336, 598, 127, 127, 690, 581, 127, 127,
+ 169, 661, 648, 596, 559, 570, 127, 771, 484, 571,
+ 797, 170, 614, 781, 715, 490, 709, 133, 541, 171,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 134, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 135, 133, 133,
+ 133, 136, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 526, 508, 389, 358,
+ 527, 366, 777, 750, 726, 699, 679, 671, 666, 657,
+ 640, 607, 554, 542, 530, 472, 436, 343, 802, 642,
+ 432, 874, 798, 786, 300, 287, 873, 779, 536, 752,
+ 738, 728, 672, 574, 444, 440, 308, 127, 359, 127,
+ 127, 304, 127, 281, 756, 746, 732, 730, 664, 778,
+ 751, 727, 700, 509, 390, 367, 658, 641, 608, 555,
+ 543, 531, 473, 437, 344, 127, 127, 799, 787, 127,
+ 803, 301, 780, 288, 753, 739, 729, 673, 575, 445,
+ 441, 309, 632, 537, 127, 622, 305, 582, 282, 572,
+ 564, 562, 532, 486, 420, 362, 757, 747, 733, 731,
+ 665, 295, 872, 869, 857, 812, 811, 276, 694, 680,
+ 656, 431, 867, 865, 832, 804, 792, 768, 766, 758,
+ 702, 668, 772, 662, 653, 611, 601, 584, 568, 560,
+ 552, 548, 510, 470, 633, 467, 415, 623, 391, 583,
+ 870, 573, 565, 563, 533, 487, 421, 363, 127, 868,
+ 866, 833, 805, 296, 769, 767, 759, 703, 669, 277,
+ 663, 654, 612, 602, 585, 569, 561, 553, 549, 511,
+ 471, 341, 468, 416, 337, 392, 293, 270, 855, 845,
+ 830, 816, 800, 783, 773, 754, 744, 734, 720, 718,
+ 676, 674, 578, 576, 522, 413, 405, 514, 395, 501,
+ 380, 430, 291, 854, 851, 828, 268, 824, 342, 794,
+ 748, 338, 636, 294, 271, 695, 650, 603, 127, 544,
+ 524, 495, 446, 411, 515, 397, 373, 469, 856, 846,
+ 831, 817, 801, 784, 774, 755, 745, 735, 721, 719,
+ 677, 675, 579, 577, 523, 414, 406, 127, 396, 829,
+ 381, 825, 292, 795, 749, 339, 269, 310, 858, 696,
+ 651, 604, 266, 545, 525, 496, 447, 412, 834, 398,
+ 374, 697, 681, 713, 628, 710, 624, 605, 586, 655,
+ 550, 497, 375, 494, 371, 488, 364, 410, 264, 409,
+ 852, 861, 826, 683, 667, 485, 711, 426, 626, 340,
+ 262, 311, 840, 127, 809, 408, 267, 764, 588, 566,
+ 460, 360, 329, 285, 835, 260, 256, 698, 682, 174,
+ 629, 807, 625, 606, 587, 853, 551, 827, 376, 127,
+ 372, 712, 365, 627, 265, 263, 790, 788, 841, 762,
+ 810, 127, 742, 765, 589, 567, 461, 361, 330, 286,
+ 740, 261, 257, 716, 808, 175, 684, 638, 634, 590,
+ 127, 643, 534, 528, 518, 512, 448, 428, 424, 791,
+ 789, 401, 763, 393, 312, 743, 289, 283, 254, 172,
+ 848, 820, 645, 741, 538, 455, 717, 323, 407, 685,
+ 639, 635, 591, 258, 248, 535, 529, 519, 513, 449,
+ 429, 425, 166, 198, 402, 520, 394, 313, 516, 290,
+ 284, 255, 173, 442, 403, 399, 306, 215, 422, 65535,
+ 127, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ 65535, 849, 821, 646, 65535, 539, 456, 65535, 324, 65535,
+ 199, 65535, 65535, 127, 259, 249, 521, 65535, 65535, 517,
+ 200, 65535, 65535, 167, 443, 404, 400, 307, 216, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 128, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 129, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 222, 476, 65535, 65535, 137,
+ 65535, 65535, 686, 65535, 450, 65535, 65535, 506, 65535, 201,
+ 65535, 462, 65535, 592, 65535, 65535, 65535, 65535, 65535, 65535,
+ 65535, 349, 502, 382, 350, 65535, 65535, 211, 65535, 65535,
+ 65535, 223, 224, 65535, 110, 138, 139, 477, 110, 225,
+ 110, 507, 226, 140, 202, 227, 141, 110, 203, 142,
+ 204, 110, 451, 205, 687, 688, 206, 207, 452, 503,
+ 383, 208, 351, 96, 212, 593, 594, 463, 213, 504,
+ 384, 96, 505, 385, 214, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 123, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 124, 122, 122, 122, 125, 122, 122,
+ 122, 122, 122, 126, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 65535, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 111, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 112, 110,
+ 110, 110, 113, 110, 114, 110, 110, 115, 110, 110,
+ 116, 117, 110, 110, 110, 118, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 106, 194,
+ 65535, 498, 377, 433, 65535, 331, 297, 65535, 65535, 278,
+ 65535, 65535, 65535, 705, 65535, 438, 386, 65535, 615, 65535,
+ 65535, 65535, 65535, 302, 209, 65535, 65535, 65535, 65535, 65535,
+ 314, 491, 65535, 315, 65535, 107, 499, 378, 500, 379,
+ 65535, 65535, 100, 195, 100, 108, 196, 279, 109, 197,
+ 387, 96, 96, 280, 434, 435, 96, 298, 299, 96,
+ 332, 333, 388, 706, 492, 439, 616, 100, 617, 96,
+ 210, 65535, 96, 303, 65535, 65535, 65535, 100, 316, 96,
+ 100, 493, 317, 65535, 318, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 101, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 102, 100, 103, 104, 100, 100, 105, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 191, 478, 217, 65535, 181, 65535, 65535, 65535, 65535,
+ 65535, 352, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ 65535, 65535, 65535, 65535, 65535, 65535, 65535, 243, 160, 65535,
+ 65535, 65535, 65535, 368, 65535, 479, 65535, 480, 182, 65535,
+ 218, 65535, 65535, 65535, 353, 183, 354, 192, 65535, 184,
+ 219, 85, 185, 481, 482, 85, 355, 193, 85, 65535,
+ 244, 161, 356, 357, 245, 162, 369, 246, 163, 65535,
+ 65535, 65535, 85, 65535, 65535, 164, 65535, 247, 165, 65535,
+ 65535, 65535, 65535, 370, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 97, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 98, 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 99, 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
+ 65535, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 86, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 87, 85, 85, 85, 85,
+ 85, 85, 88, 85, 85, 85, 89, 85, 85, 90,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 91, 65535, 130,
+ 65535, 65535, 65535, 65535, 65535, 119, 65535, 176, 65535, 65535,
+ 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 186,
+ 92, 65535, 65535, 65535, 93, 65535, 131, 79, 94, 79,
+ 65535, 177, 65535, 120, 79, 79, 132, 95, 65535, 65535,
+ 65535, 121, 65535, 178, 65535, 65535, 79, 79, 179, 180,
+ 65535, 65535, 187, 65535, 65535, 65535, 188, 65535, 65535, 65535,
+ 189, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 190,
+ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 80, 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 81, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 82, 79, 79,
+ 79, 79, 83, 84, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 65535, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 77, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 78, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 65535, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 75, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 65535, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 71, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 72, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 73, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 65535, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 65, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 66,
+ 64, 67, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 68, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 69, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 65535, 65535, 65535, 65535, 65535, 65535,
+ 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 44,
+ 65535, 45, 46, 47, 48, 49, 50, 51, 65535, 65535,
+ 52, 53, 54, 55, 56, 65535, 57, 58, 59, 60,
+ 61, 62, 63, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 13, 12, 14, 12, 12, 12,
+ 15, 12, 12, 12, 16, 17, 12, 18, 12, 19,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 20, 21, 22, 12, 12, 23, 12, 24,
+ 25, 26, 27, 28, 29, 30, 12, 12, 31, 32,
+ 33, 34, 35, 12, 36, 37, 38, 39, 40, 41,
+ 42, 12, 12, 12, 12, 12, 43, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12
+]
+yy_chk = [
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 57, 226, 787,
+ 214, 212, 739, 141, 61, 780, 55, 698, 219, 606,
+ 507, 185, 387, 499, 846, 810, 805, 606, 817, 774,
+ 387, 487, 378, 646, 471, 648, 126, 539, 739, 58,
+ 378, 519, 765, 214, 57, 484, 449, 61, 57, 212,
+ 541, 226, 439, 57, 57, 214, 141, 817, 61, 141,
+ 57, 141, 55, 141, 141, 185, 61, 185, 219, 126,
+ 219, 765, 58, 378, 58, 126, 717, 539, 58, 58,
+ 58, 126, 126, 425, 541, 484, 126, 58, 58, 803,
+ 665, 58, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37, 505, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 124, 729, 759, 90, 721,
+ 132, 402, 363, 482, 461, 414, 435, 503, 451, 434,
+ 357, 316, 635, 359, 342, 757, 563, 313, 303, 757,
+ 563, 235, 729, 687, 383, 298, 759, 40, 721, 230,
+ 385, 363, 193, 124, 385, 402, 303, 729, 189, 682,
+ 661, 124, 90, 363, 90, 124, 132, 124, 90, 90,
+ 132, 313, 132, 359, 359, 342, 482, 342, 313, 303,
+ 40, 451, 434, 357, 316, 330, 298, 635, 230, 330,
+ 687, 40, 383, 658, 521, 235, 509, 40, 298, 40,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 269, 245, 162, 146,
+ 269, 152, 651, 593, 545, 496, 473, 463, 456, 447,
+ 418, 374, 311, 299, 273, 225, 202, 140, 692, 419,
+ 199, 856, 688, 669, 112, 99, 853, 654, 284, 594,
+ 569, 549, 465, 335, 206, 204, 116, 269, 146, 162,
+ 146, 114, 152, 94, 598, 587, 559, 555, 454, 651,
+ 593, 545, 496, 245, 162, 152, 447, 418, 374, 311,
+ 299, 273, 225, 202, 140, 112, 99, 688, 669, 284,
+ 692, 112, 654, 99, 594, 569, 549, 465, 335, 206,
+ 204, 116, 404, 284, 94, 390, 114, 344, 94, 333,
+ 324, 320, 274, 232, 187, 148, 598, 587, 559, 555,
+ 454, 107, 849, 831, 799, 712, 706, 92, 490, 475,
+ 445, 197, 827, 821, 753, 696, 677, 627, 617, 604,
+ 500, 459, 639, 452, 441, 379, 367, 346, 328, 318,
+ 309, 305, 246, 224, 404, 221, 184, 390, 163, 344,
+ 831, 333, 324, 320, 274, 232, 187, 148, 92, 827,
+ 821, 753, 696, 107, 627, 617, 604, 500, 459, 92,
+ 452, 441, 379, 367, 346, 328, 318, 309, 305, 246,
+ 224, 139, 221, 184, 135, 163, 105, 89, 797, 778,
+ 751, 727, 690, 663, 641, 596, 579, 561, 531, 529,
+ 468, 466, 338, 336, 257, 183, 175, 249, 167, 241,
+ 158, 196, 104, 795, 789, 749, 88, 741, 139, 685,
+ 591, 135, 412, 105, 89, 492, 437, 369, 89, 301,
+ 267, 238, 207, 182, 251, 169, 155, 223, 797, 778,
+ 751, 727, 690, 663, 641, 596, 579, 561, 531, 529,
+ 468, 466, 338, 336, 257, 183, 175, 88, 167, 749,
+ 158, 741, 104, 685, 591, 138, 88, 117, 801, 492,
+ 437, 369, 87, 301, 267, 238, 207, 182, 755, 169,
+ 155, 493, 477, 517, 400, 511, 392, 370, 351, 443,
+ 307, 239, 156, 237, 154, 233, 149, 180, 84, 179,
+ 791, 808, 743, 479, 458, 231, 513, 192, 394, 138,
+ 83, 117, 763, 87, 703, 178, 87, 612, 353, 326,
+ 216, 147, 129, 98, 755, 82, 63, 493, 477, 42,
+ 400, 700, 392, 370, 351, 791, 307, 743, 156, 84,
+ 154, 513, 149, 394, 84, 83, 675, 673, 763, 608,
+ 703, 83, 577, 612, 353, 326, 216, 147, 129, 98,
+ 575, 82, 63, 523, 700, 42, 480, 416, 406, 354,
+ 42, 421, 277, 271, 253, 247, 208, 195, 190, 675,
+ 673, 171, 608, 165, 118, 577, 102, 95, 62, 41,
+ 784, 735, 429, 575, 290, 213, 523, 125, 177, 480,
+ 416, 406, 354, 81, 60, 277, 271, 253, 247, 208,
+ 195, 190, 39, 49, 171, 255, 165, 118, 252, 102,
+ 95, 62, 41, 205, 173, 170, 115, 53, 188, 65535,
+ 41, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ 65535, 784, 735, 429, 65535, 290, 213, 65535, 125, 65535,
+ 49, 65535, 65535, 39, 81, 60, 255, 65535, 65535, 252,
+ 49, 65535, 65535, 39, 205, 173, 170, 115, 53, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 56, 227, 65535, 65535, 35,
+ 65535, 65535, 481, 65535, 210, 65535, 65535, 244, 65535, 50,
+ 65535, 218, 65535, 356, 65535, 65535, 65535, 65535, 65535, 65535,
+ 65535, 142, 242, 159, 142, 65535, 65535, 52, 65535, 65535,
+ 65535, 56, 56, 65535, 35, 35, 35, 227, 35, 56,
+ 35, 244, 56, 35, 50, 56, 35, 35, 50, 35,
+ 50, 35, 210, 50, 481, 481, 50, 50, 210, 242,
+ 159, 50, 142, 356, 52, 356, 356, 218, 52, 242,
+ 159, 142, 242, 159, 52, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 65535, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 28, 48,
+ 65535, 240, 157, 200, 65535, 131, 108, 65535, 65535, 93,
+ 65535, 65535, 65535, 504, 65535, 203, 161, 65535, 384, 65535,
+ 65535, 65535, 65535, 113, 51, 65535, 65535, 65535, 65535, 65535,
+ 121, 236, 65535, 121, 65535, 28, 240, 157, 240, 157,
+ 65535, 65535, 28, 48, 28, 28, 48, 93, 28, 48,
+ 161, 131, 157, 93, 200, 200, 108, 108, 108, 93,
+ 131, 131, 161, 504, 236, 203, 384, 121, 384, 113,
+ 51, 65535, 161, 113, 65535, 65535, 65535, 121, 121, 113,
+ 121, 236, 121, 65535, 121, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 47, 229, 54, 65535, 45, 65535, 65535, 65535, 65535,
+ 65535, 145, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ 65535, 65535, 65535, 65535, 65535, 65535, 65535, 59, 38, 65535,
+ 65535, 65535, 65535, 153, 65535, 229, 65535, 229, 45, 65535,
+ 54, 65535, 65535, 65535, 145, 45, 145, 47, 65535, 45,
+ 54, 145, 45, 229, 229, 145, 145, 47, 145, 65535,
+ 59, 38, 145, 145, 59, 38, 153, 59, 38, 65535,
+ 65535, 65535, 38, 65535, 65535, 38, 65535, 59, 38, 65535,
+ 65535, 65535, 65535, 153, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 65535, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 25, 65535, 33,
+ 65535, 65535, 65535, 65535, 65535, 30, 65535, 44, 65535, 65535,
+ 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 46,
+ 25, 65535, 65535, 65535, 25, 65535, 33, 33, 25, 30,
+ 65535, 44, 65535, 30, 25, 33, 33, 25, 65535, 65535,
+ 65535, 30, 65535, 44, 65535, 65535, 30, 30, 44, 44,
+ 65535, 65535, 46, 65535, 65535, 65535, 46, 65535, 65535, 65535,
+ 46, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 46,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 65535, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 65535, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 65535, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 65535, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 65535, 65535, 65535, 65535, 65535, 65535,
+ 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 2,
+ 65535, 2, 2, 2, 2, 2, 2, 2, 65535, 65535,
+ 2, 2, 2, 2, 2, 65535, 2, 2, 2, 2,
+ 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1
+]
+def yy_action0():
+ raise YYContinue()
+def yy_action1():
+ ECHO()
+ yy_push_state(STR_LITERAL)
+ raise YYContinue()
+def yy_action2():
+ yyout.write('\x80')
+ raise YYContinue()
+def yy_action3():
+ yyout.write('\x81')
+ raise YYContinue()
+def yy_action4():
+ yyout.write('\x82')
+ raise YYContinue()
+def yy_action5():
+ yyout.write('\x83')
+ BEGIN(DATA)
+ raise YYContinue()
+def yy_action6():
+ yyout.write('\x84')
+ raise YYContinue()
+def yy_action7():
+ yyout.write('\x85')
+ raise YYContinue()
+def yy_action8():
+ yyout.write('\x86')
+ raise YYContinue()
+def yy_action9():
+ yyout.write('\x87')
+ raise YYContinue()
+def yy_action10():
+ yyout.write('\x88')
+ raise YYContinue()
+def yy_action11():
+ yyout.write('\x89')
+ raise YYContinue()
+def yy_action12():
+ yyout.write('\x8a')
+ raise YYContinue()
+def yy_action13():
+ yyout.write('\x8b')
+ raise YYContinue()
+def yy_action14():
+ yyout.write('\x8c')
+ raise YYContinue()
+def yy_action15():
+ yyout.write('\x8d')
+ raise YYContinue()
+def yy_action16():
+ yyout.write('\x8e')
+ raise YYContinue()
+def yy_action17():
+ yyout.write('\x8f')
+ raise YYContinue()
+def yy_action18():
+ yyout.write('\x90')
+ raise YYContinue()
+def yy_action19():
+ yyout.write('\x91')
+ raise YYContinue()
+def yy_action20():
+ yyout.write('\x92')
+ raise YYContinue()
+def yy_action21():
+ yyout.write('\x93')
+ raise YYContinue()
+def yy_action22():
+ yyout.write('\x94')
+ raise YYContinue()
+def yy_action23():
+ yyout.write('\x95')
+ raise YYContinue()
+def yy_action24():
+ yyout.write('\x96')
+ raise YYContinue()
+def yy_action25():
+ yyout.write('\x97')
+ raise YYContinue()
+def yy_action26():
+ yyout.write('\x98')
+ raise YYContinue()
+def yy_action27():
+ yyout.write('\x99')
+ raise YYContinue()
+def yy_action28():
+ yyout.write('\x9a')
+ raise YYContinue()
+def yy_action29():
+ yyout.write('\x9b')
+ raise YYContinue()
+def yy_action30():
+ yyout.write('\x9c')
+ raise YYContinue()
+def yy_action31():
+ yyout.write('\x9d')
+ raise YYContinue()
+def yy_action32():
+ yyout.write('\x9e')
+ raise YYContinue()
+def yy_action33():
+ yyout.write('\x9f')
+ raise YYContinue()
+def yy_action34():
+ yyout.write('\xa0')
+ raise YYContinue()
+def yy_action35():
+ yyout.write('\xa1')
+ raise YYContinue()
+def yy_action36():
+ yyout.write('\xa2')
+ raise YYContinue()
+def yy_action37():
+ yyout.write('\xa3')
+ raise YYContinue()
+def yy_action38():
+ yyout.write('\xa4')
+ raise YYContinue()
+def yy_action39():
+ yyout.write('\xa5')
+ raise YYContinue()
+def yy_action40():
+ yyout.write('\xa6')
+ raise YYContinue()
+def yy_action41():
+ yyout.write('\xa7')
+ raise YYContinue()
+def yy_action42():
+ yyout.write('\xa8')
+ raise YYContinue()
+def yy_action43():
+ yyout.write('\xa9')
+ raise YYContinue()
+def yy_action44():
+ yyout.write('\xaa')
+ raise YYContinue()
+def yy_action45():
+ yyout.write('\xab')
+ raise YYContinue()
+def yy_action46():
+ yyout.write('\xac')
+ raise YYContinue()
+def yy_action47():
+ yyout.write('\xad')
+ raise YYContinue()
+def yy_action48():
+ yyout.write('\xae')
+ raise YYContinue()
+def yy_action49():
+ yyout.write('\xaf')
+ raise YYContinue()
+def yy_action50():
+ yyout.write('\xb0')
+ raise YYContinue()
+def yy_action51():
+ yyout.write('\xb1')
+ raise YYContinue()
+def yy_action52():
+ yyout.write('\xb2')
+ BEGIN(REM_TEXT)
+ raise YYContinue()
+def yy_action53():
+ yyout.write('\xb3')
+ raise YYContinue()
+def yy_action54():
+ yyout.write('\xb4')
+ raise YYContinue()
+def yy_action55():
+ yyout.write('\xb5')
+ raise YYContinue()
+def yy_action56():
+ yyout.write('\xb6')
+ raise YYContinue()
+def yy_action57():
+ yyout.write('\xb7')
+ raise YYContinue()
+def yy_action58():
+ yyout.write('\xb8')
+ raise YYContinue()
+def yy_action59():
+ yyout.write('\xb9')
+ raise YYContinue()
+def yy_action60():
+ yyout.write('\xba')
+ raise YYContinue()
+def yy_action61():
+ yyout.write('\xbb')
+ raise YYContinue()
+def yy_action62():
+ yyout.write('\xbc')
+ raise YYContinue()
+def yy_action63():
+ yyout.write('\xbd')
+ raise YYContinue()
+def yy_action64():
+ yyout.write('\xbe')
+ raise YYContinue()
+def yy_action65():
+ yyout.write('\xbf')
+ raise YYContinue()
+def yy_action66():
+ yyout.write('\xc0')
+ raise YYContinue()
+def yy_action67():
+ yyout.write('\xc1')
+ raise YYContinue()
+def yy_action68():
+ yyout.write('\xc2')
+ raise YYContinue()
+def yy_action69():
+ yyout.write('\xc3')
+ raise YYContinue()
+def yy_action70():
+ yyout.write('\xc4')
+ raise YYContinue()
+def yy_action71():
+ yyout.write('\xc5')
+ raise YYContinue()
+def yy_action72():
+ yyout.write('\xc6')
+ raise YYContinue()
+def yy_action73():
+ yyout.write('\xc7')
+ raise YYContinue()
+def yy_action74():
+ yyout.write('\xc8')
+ raise YYContinue()
+def yy_action75():
+ yyout.write('\xc9')
+ raise YYContinue()
+def yy_action76():
+ yyout.write('\xca')
+ raise YYContinue()
+def yy_action77():
+ yyout.write('\xcb')
+ raise YYContinue()
+def yy_action78():
+ yyout.write('\xcc')
+ raise YYContinue()
+def yy_action79():
+ yyout.write('\xcd')
+ raise YYContinue()
+def yy_action80():
+ yyout.write('\xce')
+ raise YYContinue()
+def yy_action81():
+ yyout.write('\xcf')
+ raise YYContinue()
+def yy_action82():
+ yyout.write('\xd0')
+ raise YYContinue()
+def yy_action83():
+ yyout.write('\xd1')
+ raise YYContinue()
+def yy_action84():
+ yyout.write('\xd2')
+ raise YYContinue()
+def yy_action85():
+ yyout.write('\xd3')
+ raise YYContinue()
+def yy_action86():
+ yyout.write('\xd4')
+ raise YYContinue()
+def yy_action87():
+ yyout.write('\xd5')
+ raise YYContinue()
+def yy_action88():
+ yyout.write('\xd6')
+ raise YYContinue()
+def yy_action89():
+ yyout.write('\xd7')
+ raise YYContinue()
+def yy_action90():
+ yyout.write('\xd8')
+ raise YYContinue()
+def yy_action91():
+ yyout.write('\xd9')
+ raise YYContinue()
+def yy_action92():
+ yyout.write('\xda')
+ raise YYContinue()
+def yy_action93():
+ yyout.write('\xdb')
+ raise YYContinue()
+def yy_action94():
+ yyout.write('\xdc')
+ raise YYContinue()
+def yy_action95():
+ yyout.write('\xdd')
+ raise YYContinue()
+def yy_action96():
+ yyout.write('\xde')
+ raise YYContinue()
+def yy_action97():
+ yyout.write('\xdf')
+ raise YYContinue()
+def yy_action98():
+ yyout.write('\xe0')
+ raise YYContinue()
+def yy_action99():
+ yyout.write('\xe1')
+ raise YYContinue()
+def yy_action100():
+ yyout.write('\xe2')
+ raise YYContinue()
+def yy_action101():
+ yyout.write('\xe3')
+ raise YYContinue()
+def yy_action102():
+ yyout.write('\xe4')
+ raise YYContinue()
+def yy_action103():
+ yyout.write('\xe5')
+ raise YYContinue()
+def yy_action104():
+ yyout.write('\xe6')
+ raise YYContinue()
+def yy_action105():
+ yyout.write('\xe7')
+ raise YYContinue()
+def yy_action106():
+ yyout.write('\xe8')
+ raise YYContinue()
+def yy_action107():
+ yyout.write('\xe9')
+ raise YYContinue()
+def yy_action108():
+ yyout.write('\xea')
+ raise YYContinue()
+def yy_action109():
+ ECHO()
+ BEGIN(INITIAL)
+ raise YYContinue()
+def yy_action110():
+ ECHO()
+ BEGIN(DATA_TEXT)
+ raise YYContinue()
+def yy_action111():
+ ECHO()
+ BEGIN(DATA)
+ raise YYContinue()
+def yy_action112():
+ ECHO()
+ BEGIN(INITIAL)
+ raise YYContinue()
+def yy_action113():
+ ECHO()
+ yy_pop_state()
+ raise YYContinue()
+def yy_action114():
+ ECHO()
+ yy_pop_state()
+ BEGIN(INITIAL)
+ raise YYContinue()
+def yy_action115():
+ ECHO()
+ raise YYContinue()
+yy_actions = [
+ yy_action0,
+ yy_action1,
+ yy_action2,
+ yy_action3,
+ yy_action4,
+ yy_action5,
+ yy_action6,
+ yy_action7,
+ yy_action8,
+ yy_action9,
+ yy_action10,
+ yy_action11,
+ yy_action12,
+ yy_action13,
+ yy_action14,
+ yy_action15,
+ yy_action16,
+ yy_action17,
+ yy_action18,
+ yy_action19,
+ yy_action20,
+ yy_action21,
+ yy_action22,
+ yy_action23,
+ yy_action24,
+ yy_action25,
+ yy_action26,
+ yy_action27,
+ yy_action28,
+ yy_action29,
+ yy_action30,
+ yy_action31,
+ yy_action32,
+ yy_action33,
+ yy_action34,
+ yy_action35,
+ yy_action36,
+ yy_action37,
+ yy_action38,
+ yy_action39,
+ yy_action40,
+ yy_action41,
+ yy_action42,
+ yy_action43,
+ yy_action44,
+ yy_action45,
+ yy_action46,
+ yy_action47,
+ yy_action48,
+ yy_action49,
+ yy_action50,
+ yy_action51,
+ yy_action52,
+ yy_action53,
+ yy_action54,
+ yy_action55,
+ yy_action56,
+ yy_action57,
+ yy_action58,
+ yy_action59,
+ yy_action60,
+ yy_action61,
+ yy_action62,
+ yy_action63,
+ yy_action64,
+ yy_action65,
+ yy_action66,
+ yy_action67,
+ yy_action68,
+ yy_action69,
+ yy_action70,
+ yy_action71,
+ yy_action72,
+ yy_action73,
+ yy_action74,
+ yy_action75,
+ yy_action76,
+ yy_action77,
+ yy_action78,
+ yy_action79,
+ yy_action80,
+ yy_action81,
+ yy_action82,
+ yy_action83,
+ yy_action84,
+ yy_action85,
+ yy_action86,
+ yy_action87,
+ yy_action88,
+ yy_action89,
+ yy_action90,
+ yy_action91,
+ yy_action92,
+ yy_action93,
+ yy_action94,
+ yy_action95,
+ yy_action96,
+ yy_action97,
+ yy_action98,
+ yy_action99,
+ yy_action100,
+ yy_action101,
+ yy_action102,
+ yy_action103,
+ yy_action104,
+ yy_action105,
+ yy_action106,
+ yy_action107,
+ yy_action108,
+ yy_action109,
+ yy_action110,
+ yy_action111,
+ yy_action112,
+ yy_action113,
+ yy_action114,
+ yy_action115
+]
+def yy_eof_action0():
+ yyterminate()
+ return 0
+yy_eof_actions = [
+ yy_eof_action0,
+ yy_eof_action0,
+ yy_eof_action0,
+ yy_eof_action0,
+ yy_eof_action0
+]
+# GENERATE END
+
+def yylex():
+ global yyin, yytext, yytext_len, yylineno
+
+ # GENERATE SECTION2INITIAL BEGIN
+ # GENERATE END
+
+ # user may modify yyin, but only while outside yylex()
+ yy_buffer_stack[-1].file_in = yyin
+
+ # start:
+ while True:
+ # this will collect the remainder of each block as the block is
+ # exhausted, any partial block will be added after DFA is stuck
+ match = ''
+
+ # this is used to keep track of newlines, firstly during the scan
+ # and secondly when user calls REJECT() or yyless(), basically we
+ # will count newlines added/removed when it is extended/truncated
+ yytext = ''
+
+ # as we progress through the text and exhaust each input file
+ # on the buffer stack, we will "virtually" pop the stack by
+ # decrementing buffer_ptr, but actually leave the stack alone
+ # since it will be popped for real after executing the action
+ buffer_ptr = len(yy_buffer_stack) - 1
+
+ # block variable keeps track of where we are in current file's
+ # linked list, if None it means we have run out of blocks from
+ # the current file and in that case we have to append another
+ # block -- we maintain the invariant block == block_prev.next
+ # so we can append the block by pointing block_prev.next at it
+ block_prev = yy_buffer_stack[buffer_ptr]
+ block = block_prev.next
+ if block is not None:
+ block_pos = block.pos
+
+ # yy_current_state variable keeps track of where we are in the
+ # DFA, and yy_state_buf keeps track of the historical values of
+ # yy_current_state before each character -- when DFA is stuck
+ # we will look backwards in yy_state_buf for an accepting state
+ yy_current_state = yystart * 2 + 1 + YY_AT_BOL()
+ del yy_state_buf[:]
+
+ # yy_match:
+ #print('yy_match')
+ while True:
+ # try to get a character
+ while block is None or block_pos >= len(block.text):
+ if block is None:
+ # out of blocks, read and append one from current file
+ file_in = yy_buffer_stack[buffer_ptr].file_in
+ text = '' if file_in is None else file_in.readline()
+ if len(text):
+ block = YYBufferBlock(None, 0, text)
+ block_pos = 0
+ block_prev.next = block
+ else:
+ # EOF for current file
+
+ # mark file as being exhausted, so we do not re-attempt read
+ yy_buffer_stack[buffer_ptr].file_in = None
+
+ # "virtually" pop the buffer stack, maintaining invariant
+ buffer_ptr -= 1
+ if buffer_ptr < 0:
+ # EOF and no more input stacked (should call yywrap here?)
+ if len(yy_state_buf):
+ # had some characters already, so go and process them first
+ break # goto yy_find_action
+ # EOF on attempt to get first character, means we are done
+ try:
+ token = yy_eof_actions[yystart]()
+ yyin = yy_buffer_stack[-1].file_in = yyin # user may modify
+ return token
+ except YYTerminate:
+ yyin = yy_buffer_stack[-1].file_in = yyin # user may modify
+ return 0
+ block_prev = yy_buffer_stack[buffer_ptr]
+ block = block_prev.next
+ if block is not None:
+ block_pos = block.pos
+ else:
+ # out of data for current block
+
+ # take most recent data from block for yytext
+ # at this point len(yy_state_buf) == number of chars scanned
+ i = len(yy_state_buf) - len(match)
+ if i:
+ match += block.text[block_pos - i:block_pos]
+ assert len(match) == len(yy_state_buf)
+
+ # advance past exhausted block, maintaining invariant
+ block_prev = block
+ block = block_prev.next
+ if block is not None:
+ block_pos = block.pos
+ else:
+ # character available
+ yy_state_buf.append(yy_current_state)
+ yy_c = ord(block.text[block_pos])
+ block_pos += 1
+ #print('yy_c', yy_c)
+ while yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state:
+ yy_current_state = yy_def[yy_current_state];
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
+ if yy_base[yy_current_state] != 0:
+ continue # goto yy_match
+
+ # we get here when either there is EOF and had some characters, or
+ # we had a character which makes DFA stuck -- do best action we can
+ break # goto yy_find_action
+
+ # yy_find_action:
+ # we seem to detect the jam one character earlier than flex does (when
+ # we've processed the last character of the maximal length string rather
+ # than when we try to process another character after that), and hence
+ # we do not need to back up one character here, unlike flex's algorithm
+ yy_state_ptr = len(yy_state_buf)
+ yy_lp = yy_accept[yy_current_state]
+
+ # take most recent data from block for yytext
+ # at this point yy_state_ptr == number of chars scanned
+ i = yy_state_ptr - len(match)
+ if i:
+ match += block.text[block_pos - i:block_pos]
+ assert len(match) == yy_state_ptr
+
+ # the following variables are used to handle trailing context
+ # suppose there is a rule like: foo/bar
+ # then state after 3 characters will be given YY_TRAILING_MASK
+ # and state after 6 characters will be given YY_TRAILING_HEAD_MASK
+ # so we look backwards for the YY_TRAILING_MASK, and when we find
+ # it, store the state after 6 characters into yy_full_XXX, then we
+ # keep looking for YY_TRAILING_HEAD_MASK, and when we find it, we
+ # execute the action -- and if it rejects then restart the search,
+ # but from the 6 characters point (yy_full_XXX) not 3 characters
+ yy_looking_for_trail_begin = 0
+ yy_full_state_ptr = None
+ yy_full_lp = None
+
+ # find_rule:
+ # we branch to this label when backing up (i.e. reject)
+ while True:
+ #print('find_rule')
+ while True: # until we find what rule matched
+ if yy_lp < yy_accept[yy_current_state + 1]:
+ yy_act = yy_acclist[yy_lp]
+ if (yy_act & YY_TRAILING_HEAD_MASK) or yy_looking_for_trail_begin:
+ if yy_act == yy_looking_for_trail_begin:
+ yy_looking_for_trail_begin = 0
+ yy_act &= ~YY_TRAILING_HEAD_MASK
+ break
+ elif yy_act & YY_TRAILING_MASK:
+ yy_looking_for_trail_begin = (
+ (yy_act & ~YY_TRAILING_MASK) | YY_TRAILING_HEAD_MASK
+ )
+ yy_full_state_ptr = yy_state_ptr
+ yy_full_lp = yy_lp
+ else:
+ yy_full_state_ptr = yy_state_ptr
+ yy_full_lp = yy_lp
+ break
+ yy_lp += 1
+ else:
+ # if the following assertion fails there is a hole in state machine,
+ # this is not supposed to happen due to the automatic catch-all rule
+ yy_state_ptr -= 1
+ assert yy_state_ptr >= 0
+ yy_current_state = yy_state_buf[yy_state_ptr]
+ yy_lp = yy_accept[yy_current_state]
+
+ # at this point yy_state_ptr == number of chars needed
+ # truncate or extend yytext from match, counting added/removed newlines
+ if len(yytext) < yy_state_ptr:
+ i = match.find('\n', len(yytext), yy_state_ptr)
+ while i >= 0:
+ yylineno += 1
+ i = match.find('\n', i + 1, yy_state_ptr)
+ else:
+ i = yytext.find('\n', yy_state_ptr)
+ while i >= 0:
+ yylineno -= 1
+ i = yytext.find('\n', i + 1)
+ yytext = match[:yy_state_ptr]
+
+ try:
+ yytext_len = len(yytext) # this is used by yycommit()
+ token = yy_actions[yy_act]()
+ yycommit() # user cannot call REJECT() / yyless() anymore
+ yyin = yy_buffer_stack[-1].file_in = yyin # user may modify
+ return token
+ except YYReject:
+ yy_state_ptr = yy_full_state_ptr
+ yy_current_state = yy_state_buf[yy_state_ptr]
+ yy_lp = yy_full_lp + 1
+ # goto find_rule
+ except YYContinue:
+ yycommit() # user cannot call REJECT() / yyless() anymore
+ break # goto start
+ except YYTerminate:
+ yycommit() # user cannot call REJECT() / yyless() anymore
+ yyin = yy_buffer_stack[-1].file_in = yyin # user may modify
+ return 0
+ # goto find_rule
+ # goto start
+
+# GENERATE SECTION3 BEGIN
+if __name__ == '__main__':
+ while yylex():
+ pass
+# GENERATE END