parse_c:
authorHolger Hans Peter Freyther <zecke@selfish.org>
Sun, 19 Mar 2006 19:57:58 +0000 (19:57 +0000)
committerHolger Hans Peter Freyther <zecke@selfish.org>
Sun, 19 Mar 2006 19:57:58 +0000 (19:57 +0000)
    Add require to the scanner

lib/bb/parse/parse_c/bitbakescanner.cc
lib/bb/parse/parse_c/bitbakescanner.l

index 1752b62..88e5043 100644 (file)
@@ -355,8 +355,8 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
        *yy_cp = '\0'; \
        yyg->yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 43
-#define YY_END_OF_BUFFER 44
+#define YY_NUM_RULES 45
+#define YY_END_OF_BUFFER 46
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -364,81 +364,96 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static yyconst flex_int16_t yy_accept[662] =
+static yyconst flex_int16_t yy_accept[798] =
     {   0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   23,   23,    0,    0,    0,    0,
-       44,   42,   41,   41,   42,   42,   42,   42,   42,    4,
-       42,   32,   32,   32,   32,   32,   32,   32,   32,   25,
-       25,   25,   25,   25,   42,   41,   27,   41,   42,   42,
-       42,   26,    4,   42,   42,   42,   42,   42,   30,   30,
-       29,   30,   30,   30,   30,   30,    4,   30,   30,   30,
-       30,   30,   39,   35,   35,   35,   35,   35,   42,   37,
-       37,   37,   37,   37,   40,   36,   36,   36,   36,   36,
-       23,   23,   23,   23,   23,   23,   23,    4,   23,   23,
-
-       23,   23,   23,   22,    9,   41,   10,    9,   42,    9,
-       42,    9,    9,    9,    4,    9,    9,    9,    9,    9,
-        9,   38,   34,   34,   34,   34,   34,   34,    0,   31,
-       33,    0,    0,    1,    3,    2,    5,    0,   32,    0,
-       32,   32,   32,   32,   32,   32,   32,   25,   25,   25,
-       25,   25,    0,   26,    0,   27,    0,   26,    0,    0,
-        1,    2,    5,    0,    0,    0,    0,    0,    0,   28,
-        0,    0,    0,    0,   35,   35,   35,   35,   35,    0,
-        0,   37,   37,   37,   37,   37,   36,   36,   36,   36,
-       36,   23,   23,   23,   23,   23,   23,    1,    3,    2,
-
-        5,   23,   23,   23,   23,   22,   22,    9,    0,    9,
-        0,   10,    0,    7,    0,    9,    0,    9,    0,    8,
-        0,    0,    9,    1,    3,    2,    5,    9,    6,    9,
-        9,    9,   34,   34,   34,   34,   34,   34,   34,   33,
-        0,   21,    0,    0,   33,   32,   32,   24,   32,   32,
-       32,   32,   32,   25,   25,   24,   25,   25,    0,   21,
-        0,    0,   24,    0,    0,    0,    0,   24,    0,    0,
-       35,   35,   24,   35,   35,    0,    0,   37,   37,   24,
-       37,   37,   36,   36,   24,   36,   36,   23,   21,   23,
-       23,   23,   23,   23,   31,    0,    9,    9,    6,    9,
-
-        9,    9,    9,   34,   34,   34,   34,   24,   34,   34,
-       21,   21,    0,   32,   32,   32,   32,   32,   32,   32,
-       32,   25,   25,   25,   25,   25,   21,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   35,   35,   35,
-       35,   35,    0,   37,    0,   37,   37,   37,   37,   37,
-       36,   36,   36,   36,   36,   21,   21,   23,   23,   23,
-       23,   23,   21,    9,    9,    9,    9,    9,   34,   34,
-       34,   34,   34,   34,   34,    0,   33,   32,   32,   32,
-       32,   32,   32,   32,   32,   25,   25,   25,   25,   25,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   24,   24,    0,    0,
+        0,    0,   46,   44,   43,   43,   44,   44,   44,   44,
+       44,    4,   44,   33,   33,   33,   33,   33,   33,   33,
+       33,   33,   26,   26,   26,   26,   26,   26,   44,   43,
+       28,   43,   44,   44,   44,   27,    4,   44,   44,   44,
+       44,   44,   44,   31,   31,   30,   31,   31,   31,   31,
+       31,    4,   31,   31,   31,   31,   31,   31,   41,   36,
+       36,   36,   36,   36,   36,   44,   38,   38,   38,   38,
+       38,   38,   42,   37,   37,   37,   37,   37,   37,   44,
+
+       39,   39,   39,   39,   39,   39,   24,   24,   24,   24,
+       24,   24,   24,    4,   24,   24,   24,   24,   24,   24,
+       23,    9,   43,   10,    9,   44,    9,   44,    9,    9,
+        9,    4,    9,    9,    9,    9,    9,    9,    9,   40,
+       35,   35,   35,   35,   35,   35,   35,    0,   32,   34,
+        0,    0,    1,    3,    2,    5,    0,   33,    0,   33,
+       33,   33,   33,   33,   33,   33,   33,   26,   26,   26,
+       26,   26,   26,    0,   27,    0,   28,    0,   27,    0,
+        0,    1,    2,    5,    0,    0,    0,    0,    0,    0,
+        0,   29,    0,    0,    0,    0,    0,   36,   36,   36,
+
+       36,   36,   36,    0,    0,   38,   38,   38,   38,   38,
+       38,   37,   37,   37,   37,   37,   37,    0,    0,   39,
+       39,   39,   39,   39,   39,   24,   24,   24,   24,   24,
+       24,    1,    3,    2,    5,   24,   24,   24,   24,   24,
+       23,   23,    9,    0,    9,    0,   10,    0,    7,    0,
+        9,    0,    9,    0,    8,    0,    0,    9,    1,    3,
+        2,    5,    9,    6,    9,    9,    9,    9,   35,   35,
+       35,   35,   35,   35,   35,   35,   34,    0,   22,    0,
+        0,   34,   33,   33,   25,   33,   33,   33,   33,   33,
+       33,   26,   26,   25,   26,   26,   26,    0,   22,    0,
+
+        0,   25,    0,    0,    0,    0,    0,   25,    0,    0,
+        0,   36,   36,   25,   36,   36,   36,    0,    0,   38,
+       38,   25,   38,   38,   38,   37,   37,   25,   37,   37,
+       37,    0,    0,   39,   39,   25,   39,   39,   39,   24,
+       22,   24,   24,   24,   24,   24,   24,   32,    0,    9,
+        9,    6,    9,    9,    9,    9,    9,   35,   35,   35,
+       35,   25,   35,   35,   35,   22,   22,    0,   33,   33,
+       33,   33,   33,   33,   33,   33,   33,   26,   26,   26,
+       26,   26,   26,   22,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   36,   36,   36,   36,
+
+       36,   36,    0,   38,    0,   38,   38,   38,   38,   38,
+       38,   37,   37,   37,   37,   37,   37,    0,   39,    0,
+       39,   39,   39,   39,   39,   39,   22,   22,   24,   24,
+       24,   24,   24,   24,   22,    9,    9,    9,    9,    9,
+        9,   35,   35,   35,   35,   35,   35,   35,   35,    0,
+       34,   33,   33,   33,   33,   33,   33,   33,   33,   33,
+       26,   26,   26,   26,   26,   26,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   36,   36,
+       36,   36,   36,   36,    0,   38,   38,   38,   38,   38,
+       38,   38,   37,   37,   37,   37,   37,   37,    0,   39,
+
+       39,   39,   39,   39,   39,   39,   24,   24,   24,   24,
+       24,   24,    9,    9,    9,    9,    9,    9,   35,   35,
+       35,   18,   35,   35,   35,   35,   33,   33,   33,   19,
+       33,   33,   33,   21,   33,   26,   26,   26,   26,   26,
+       26,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   36,   36,   36,   36,   36,   36,   38,
+       38,   38,   38,   38,   38,   37,   37,   37,   37,   37,
+       37,   39,   39,   39,   39,   39,   39,   24,   24,   24,
+       24,   24,   24,    9,    9,    9,    9,    9,    9,   35,
+       35,   35,   17,   35,   35,   35,   33,   33,   14,   33,
+
+       11,   13,   12,   26,   26,   14,   11,   13,   12,    0,
+        0,   14,   11,   13,   12,    0,    0,   14,   11,   13,
+       12,   36,   36,   14,   11,   13,   12,   38,   38,   14,
+       11,   13,   12,   37,   37,   14,   11,   13,   12,   39,
+       39,   14,   11,   13,   12,   24,   24,   14,   11,   13,
+       12,    9,    9,    9,    9,    9,    9,   35,   35,   14,
+       11,   13,   12,   33,   33,   20,   26,   26,    0,    0,
+        0,    0,   36,   36,   38,   38,   37,   37,   39,   39,
+       24,   24,    9,    9,   35,   35,   33,   33,   26,   26,
+        0,    0,    0,    0,   36,   36,   38,   38,   37,   37,
+
+       39,   39,   24,   24,    9,    9,   35,   35,   33,   15,
+       26,   15,    0,   15,    0,   15,   36,   15,   38,   15,
+       37,   15,   39,   15,   24,   15,    9,    9,   35,   15,
+       33,   26,    0,    0,   36,   38,   37,   39,   24,    9,
+       35,   33,   26,    0,    0,   36,   38,   37,   39,   24,
+        9,   35,   33,   26,    0,    0,   36,   38,   37,   39,
+       24,    9,   35,   33,   26,    0,    0,   36,   38,   37,
+       39,   24,    9,   35,   33,   26,    0,    0,   36,   38,
+       37,   39,   24,    9,   35,   16,   16,   16,   16,   16,
+       16,   16,   16,   16,    9,   16,    0
 
-       35,   35,   35,   35,   35,    0,   37,   37,   37,   37,
-       37,   37,   36,   36,   36,   36,   36,   23,   23,   23,
-       23,   23,    9,    9,    9,    9,    9,   34,   34,   34,
-       17,   34,   34,   34,   32,   32,   32,   18,   32,   32,
-       32,   20,   25,   25,   25,   25,   25,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   35,   35,   35,
-       35,   35,   37,   37,   37,   37,   37,   36,   36,   36,
-       36,   36,   23,   23,   23,   23,   23,    9,    9,    9,
-        9,    9,   34,   34,   34,   16,   34,   34,   32,   32,
-       13,   32,   11,   12,   25,   25,   13,   11,   12,    0,
-
-        0,   13,   11,   12,    0,    0,   13,   11,   12,   35,
-       35,   13,   11,   12,   37,   37,   13,   11,   12,   36,
-       36,   13,   11,   12,   23,   23,   13,   11,   12,    9,
-        9,    9,    9,    9,   34,   34,   13,   11,   12,   32,
-       32,   19,   25,   25,    0,    0,    0,    0,   35,   35,
-       37,   37,   36,   36,   23,   23,    9,    9,   34,   34,
-       32,   32,   25,   25,    0,    0,    0,    0,   35,   35,
-       37,   37,   36,   36,   23,   23,    9,    9,   34,   34,
-       32,   14,   25,   14,    0,   14,    0,   14,   35,   14,
-       37,   14,   36,   14,   23,   14,    9,    9,   34,   14,
-
-       32,   25,    0,    0,   35,   37,   36,   23,    9,   34,
-       32,   25,    0,    0,   35,   37,   36,   23,    9,   34,
-       32,   25,    0,    0,   35,   37,   36,   23,    9,   34,
-       32,   25,    0,    0,   35,   37,   36,   23,    9,   34,
-       32,   25,    0,    0,   35,   37,   36,   23,    9,   34,
-       15,   15,   15,   15,   15,   15,   15,   15,    9,   15,
-        0
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -455,8 +470,8 @@ static yyconst flex_int32_t yy_ec[256] =
        33,   34,   35,    1,   36,    1,   37,   38,   39,   40,
 
        41,   42,   20,   43,   44,   20,   45,   46,   20,   47,
-       48,   49,   20,   50,   51,   52,   53,   20,   20,   54,
-       55,   20,   56,    1,   57,    1,    1,    1,    1,    1,
+       48,   49,   50,   51,   52,   53,   54,   20,   20,   55,
+       56,   20,   57,    1,   58,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -473,606 +488,710 @@ static yyconst flex_int32_t yy_ec[256] =
         1,    1,    1,    1,    1
     } ;
 
-static yyconst flex_int32_t yy_meta[58] =
+static yyconst flex_int32_t yy_meta[59] =
     {   0,
         1,    1,    2,    3,    1,    1,    4,    1,    1,    1,
         5,    6,    5,    5,    7,    8,    1,    1,    1,    9,
         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
         9,    9,   10,    1,   11,    9,    9,    9,    9,    9,
         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
-        9,    9,    9,    9,    9,    1,   12
+        9,    9,    9,    9,    9,    9,    1,   12
     } ;
 
-static yyconst flex_int16_t yy_base[691] =
+static yyconst flex_int16_t yy_base[832] =
     {   0,
-        0,    0,   57,    0,  113,  156,  199,  242,  286,    0,
-      343,    0,  400,    0,  456,  512,  568,  611,  655,    0,
-     1835, 1836, 1836, 1836, 1831,    0,  116, 1815, 1814, 1820,
-     1812,  113,  116,  114,  122,  118,  131,  133,  136,    0,
-     1797, 1788, 1786, 1779, 1808,  125, 1836, 1807,  153,  135,
-      116, 1805,  160,  164,  144,  166,  168,  167, 1836,  184,
-     1836, 1836, 1819,  134, 1803, 1802, 1808, 1800, 1785, 1776,
-     1774, 1767, 1836,    0, 1781, 1772, 1770, 1763, 1753, 1801,
-      172,  182,  183,  181, 1836,    0, 1775, 1766, 1764, 1757,
-     1800, 1799, 1798, 1797,  209,  189,  195,  212,  217,  194,
-
-      191,  192,  222,  227,  232,  239, 1796,  247,  222,  461,
-      224,  474,  483,  501,  478,  502,  546,  555,  557,  559,
-      590, 1836,    0, 1766,   99, 1756, 1755, 1748, 1791, 1836,
-      240,  252,  466, 1836, 1836, 1836, 1836, 1737,  243, 1757,
-      250,  454,  491,  492,  495,  504,  574,    0, 1764, 1750,
-     1747,  224, 1771, 1836,  268, 1836,  529, 1784,  586,  488,
-     1769, 1768, 1767,  248,  510,  455,  567, 1780,  468, 1836,
-     1755, 1741, 1738,  229,    0, 1752, 1738, 1735,  235,    0,
-     1720, 1768,  548,  559,  576,  597,    0, 1747, 1733, 1730,
-      241, 1768, 1767, 1766, 1765,  629,  711, 1764, 1763, 1762,
-
-     1761,  598,  542,  196,  712,  536, 1760,  714,  715,  722,
-      632, 1759,  589,  604,  723,  729,  736,  756,  534,  613,
-      732,  763,  745,  770,  772,  779,  780,  781, 1759,  790,
-      791,  814,    0, 1733, 1719, 1706, 1715, 1714,  438,  620,
-      744,  639,    0, 1720, 1836,  736,  769,  784,  787,  796,
-      798,  819,  803, 1728,  600,    0, 1707, 1711,  821,  825,
-      716,  815, 1734,  794,  704, 1724,  766, 1836, 1703, 1707,
-     1721,  791,    0, 1700, 1704, 1687,    0,  838,  832, 1736,
-      604,  485, 1716,  798,    0, 1695, 1699,  852,  859,  726,
-      804, 1736,  846,  848,  861,  863,  871,  878, 1736,  880,
-
-      888,  901,  905, 1711,  829, 1695, 1687,    0, 1688, 1692,
-      896, 1729, 1674,  887,  884,  893,  894,  895,  904,  909,
-      917, 1702, 1692, 1691, 1674, 1676,  931,  842,  901,  912,
-      701,  908, 1697, 1687, 1686, 1669, 1671, 1692, 1682, 1681,
-     1664, 1666, 1658, 1707, 1656,  924,  929,  933,  934,  936,
-     1684, 1674, 1673, 1656, 1658,  951, 1704,  948,  952,  953,
-      957,  958,  966,  970,  975,  977,  986,  991, 1678, 1668,
-     1667, 1653, 1652, 1648, 1650, 1642,  974,  985,  988,  994,
-      990,  995,  996, 1015,  999, 1668, 1650, 1645, 1655, 1650,
-      996, 1000,  999, 1013, 1007, 1663, 1645, 1640, 1650, 1645,
-
-     1658, 1640, 1635, 1645, 1640, 1626, 1675, 1024, 1026,  998,
-     1012, 1027, 1651, 1633, 1628, 1638, 1633, 1034, 1035, 1037,
-     1041, 1052, 1055, 1060, 1064, 1072, 1082, 1646, 1628, 1623,
-        0, 1632, 1632, 1627, 1068, 1060, 1069, 1072, 1076, 1084,
-     1085, 1088, 1634, 1629, 1623, 1626, 1614, 1061, 1082, 1041,
-      719, 1086, 1629, 1624, 1618, 1621, 1609, 1624, 1619, 1613,
-     1616, 1604, 1103, 1101, 1104, 1106, 1112, 1619, 1614, 1608,
-     1611, 1599, 1117, 1120, 1124, 1125, 1126, 1138, 1128, 1143,
-     1150, 1165, 1614, 1609, 1603,    0, 1606, 1594, 1152, 1143,
-     1124, 1128, 1149, 1164, 1622, 1598,    0,    0,    0,  950,
-
-     1117, 1626, 1625, 1624, 1617, 1593, 1836, 1836, 1836, 1615,
-     1591,    0,    0,    0, 1158, 1137, 1629, 1628, 1627, 1610,
-     1586,    0,    0,    0,  961, 1176, 1628, 1627, 1626, 1185,
-     1190, 1198, 1199, 1207, 1605, 1581,    0,    0,    0, 1187,
-     1198, 1195, 1595, 1583, 1039, 1169, 1592, 1579, 1585, 1574,
-     1204, 1189, 1581, 1567, 1211, 1210, 1221, 1232, 1576, 1563,
-     1220, 1214, 1575, 1544,  629, 1199, 1563, 1526, 1550, 1502,
-     1218, 1231, 1526, 1489, 1129, 1241, 1252, 1254, 1486, 1455,
-     1251, 1241, 1479,    0, 1229, 1446, 1438, 1836, 1432,    0,
-     1254, 1381, 1366,    0, 1262, 1383, 1274, 1285, 1364,    0,
-
-     1264, 1354, 1250, 1353, 1351, 1262, 1350, 1275, 1294, 1349,
-     1282, 1354, 1246, 1352, 1351, 1261, 1350, 1297, 1305, 1349,
-     1294, 1346,  861, 1344, 1342, 1291, 1340, 1300, 1328, 1339,
-     1307, 1336, 1306, 1334, 1330, 1309, 1327, 1319, 1333, 1323,
-     1318, 1317, 1320, 1289, 1283, 1335, 1282, 1340, 1348, 1280,
-     1338,    0, 1125, 1836,    0, 1054,    0,  960, 1355,    0,
-     1836, 1389, 1401, 1413, 1425, 1437,  953, 1446, 1452, 1461,
-     1473, 1485, 1493, 1499, 1504, 1513, 1525, 1537, 1549, 1561,
-     1573, 1581, 1587, 1590,  640,  635, 1597,  544, 1605, 1613
+        0,    0,   58,    0,  115,  165,  215,  265,  316,    0,
+      374,    0,  432,    0,  490,    0,  547,  604,  661,  711,
+      762,    0, 2156, 2157, 2157, 2157, 2152,    0,  118, 2136,
+     2135, 2141, 2133,  115,  118,  116,  120,  124,  140,  131,
+      129,  139,    0, 2118, 2109, 2107, 2100, 2105, 2128,  127,
+     2157, 2127,  137,  179,  124, 2125,  128,  173,  126,  146,
+      153,  118,  158, 2157,  190, 2157, 2157, 2139,  193, 2123,
+     2122, 2128, 2120, 2105, 2096, 2094, 2087, 2092, 2157,    0,
+     2100, 2091, 2089, 2082, 2087, 2070, 2119,  181,  190,  194,
+      153,  197, 2157,    0, 2093, 2084, 2082, 2075, 2080, 2063,
+
+     2112,  191,  199,  200,  201,  203, 2115, 2114, 2113, 2112,
+      212,  209,  222,  217,  228,  226,  233,  208,  239,  240,
+      248,  255,  251, 2111,  270,  251,  552,  254,  565,  575,
+      577,  622,  627,  626,  634,  612,  669,  684,  691, 2157,
+        0, 2081,  205, 2071, 2070, 2063, 2068, 2105, 2157,  257,
+      289,  559, 2157, 2157, 2157, 2157, 2050,  263, 2071,  270,
+      273,  555,  545,  556,  642,  585,  569,    0, 2078, 2064,
+     2061,  222, 2052, 2084, 2157,  290, 2157,  291, 2097,  674,
+      680, 2082, 2081, 2080,  283,  564,  554,  608,  262, 2093,
+      312, 2157, 2068, 2054, 2051,  529, 2042,    0, 2064, 2050,
+
+     2047,  611, 2038,    0, 2030, 2079,  646,  650,  652,  695,
+      593,    0, 2058, 2044, 2041,  661, 2032,    0, 2024, 2073,
+      680,  681,  699,  701,  702, 2076, 2075, 2074, 2073,  733,
+      819, 2072, 2071, 2070, 2069,  720,  600,  708,  820,  821,
+      724, 2068,  823,  824,  831,  751, 2067,  822,  830,  835,
+      839,  843,  847,  845,  846,  858,  880,  870,  881,  889,
+      891,  898,  903, 2067,  905,  914,  916,  926,    0, 2041,
+     2027, 2013, 2023, 2022,  703, 2013,  902,  841,  754,    0,
+     2027, 2157,  910,  919,  905,  913,  933,  934,  937,  940,
+      935, 2035,  258,    0, 2014, 2018, 2004,  947,  979,  732,
+
+      934, 2040,  912,  843,  707, 2030,  910, 2157, 2009, 2013,
+     1999, 2026,  922,    0, 2005, 2009, 1995, 1990,    0,  861,
+      926, 2040,  855,  947,  964, 2020,  941,    0, 1999, 2003,
+     1989, 1984,    0,  979,  950, 2034,  978,  984,  983,  995,
+      757,  989,  992, 2037,  996,  571,  997, 1004, 1005, 1014,
+     1006, 2037, 1021, 1025, 1026, 1039, 1041, 2012, 1010, 1996,
+     1988,    0, 1989, 1993, 1979,  999, 2029, 1973, 1043, 1049,
+     1050, 1051, 1058, 1059, 1060, 1070, 1061, 2002, 1992, 1991,
+     1973, 1975, 1981, 1087, 1053, 1061, 1062,  813, 1003, 1044,
+     1996, 1986, 1985, 1967, 1969, 1975, 1990, 1980, 1979, 1961,
+
+     1963, 1969, 1954, 2004, 1952,  867, 1078, 1089, 1062, 1090,
+     1093, 1981, 1971, 1970, 1952, 1954, 1960, 1945, 1995, 1943,
+     1094, 1099, 1101, 1100, 1105, 1103, 1117, 1997, 1111, 1114,
+     1118, 1120, 1121, 1122, 1125, 1141, 1127, 1155, 1160, 1165,
+     1174, 1971, 1961, 1960, 1945, 1944, 1940, 1942, 1948, 1933,
+     1138, 1151, 1170, 1145, 1173, 1176, 1179, 1178, 1180, 1188,
+     1960, 1942, 1936, 1947, 1942, 1934, 1114, 1173, 1136, 1183,
+     1181, 1179, 1954, 1936, 1930, 1941, 1936, 1928, 1948, 1930,
+     1924, 1935, 1930, 1922, 1914, 1964, 1198, 1184, 1141,  830,
+     1194, 1195, 1940, 1922, 1916, 1927, 1922, 1914, 1906, 1956,
+
+     1203, 1197, 1200, 1208, 1222, 1225, 1231, 1232, 1233, 1234,
+     1237, 1238, 1248, 1249, 1257, 1265, 1267, 1282, 1932, 1914,
+     1908,    0, 1918, 1918, 1913, 1905, 1235, 1253, 1270, 1273,
+     1281, 1285, 1287, 1288, 1290, 1919, 1914, 1908, 1911, 1898,
+     1909, 1228, 1285, 1283, 1281, 1290, 1291, 1913, 1908, 1902,
+     1905, 1892, 1903, 1907, 1902, 1896, 1899, 1886, 1897, 1303,
+     1297, 1305, 1306, 1310, 1312, 1901, 1896, 1890, 1893, 1880,
+     1891, 1320, 1317, 1323, 1328, 1327, 1329, 1335, 1338, 1339,
+     1341, 1342, 1345, 1347, 1356, 1357, 1371, 1392, 1396, 1895,
+     1890, 1884,    0, 1887, 1874, 1885, 1344, 1339, 1359, 1380,
+
+     1381, 1382, 1386, 1902, 1878,    0,    0,    0,    0, 1117,
+     1357, 1906, 1905, 1904, 1903, 1896, 1872, 2157, 2157, 2157,
+     2157, 1894, 1870,    0,    0,    0,    0, 1240, 1353, 1908,
+     1907, 1906, 1905, 1888, 1864,    0,    0,    0,    0, 1399,
+     1400, 1902, 1901, 1900, 1899, 1405, 1372, 1902, 1901, 1900,
+     1899, 1415, 1419, 1427, 1434, 1439, 1446, 1878, 1854,    0,
+        0,    0,    0, 1424, 1433, 1427, 1867, 1856, 1394, 1426,
+     1863, 1849, 1858, 1845, 1445, 1409, 1851, 1840, 1451, 1449,
+     1456, 1459, 1467, 1476, 1847, 1833, 1463, 1456, 1848, 1819,
+     1125, 1454, 1841, 1814, 1837, 1807, 1470, 1457, 1827, 1795,
+
+     1472, 1476, 1488, 1482, 1501, 1510, 1809, 1782, 1495, 1486,
+     1789,    0, 1503, 1792, 1776, 2157, 1747,    0, 1504, 1756,
+     1736,    0, 1515, 1745, 1483, 1712, 1529, 1537, 1690,    0,
+     1516, 1675, 1513, 1610, 1609, 1522, 1608, 1525, 1491, 1546,
+     1607, 1533, 1612, 1475, 1611, 1609, 1534, 1608, 1540, 1535,
+     1560, 1607, 1546, 1604, 1232, 1602, 1601, 1549, 1599, 1560,
+     1557, 1580, 1597, 1562, 1596, 1553, 1595, 1593, 1566, 1592,
+     1567, 1574, 1588, 1591, 1574, 1581, 1226, 1575, 1572, 1582,
+     1485, 1590, 1595, 1600, 1381, 1593,    0, 1392, 2157,    0,
+     1347,    0, 1029, 1018, 1607,    0, 2157, 1641, 1653, 1665,
+
+     1677, 1689,  893, 1698, 1704, 1713, 1725, 1737, 1745, 1751,
+     1756, 1762, 1771, 1783, 1795, 1807, 1819, 1831, 1839, 1845,
+     1848,  730,  581,  550, 1855,  289, 1863,  286, 1871, 1879,
+     1887
     } ;
 
-static yyconst flex_int16_t yy_def[691] =
+static yyconst flex_int16_t yy_def[832] =
     {   0,
-      661,    1,  661,    3,  662,  662,  663,  663,  661,    9,
-      661,   11,  661,   13,  664,  664,  665,  665,  661,   19,
-      661,  661,  661,  661,  666,  667,  661,  661,  661,  661,
-      661,  668,  668,  668,  668,  668,  668,  668,  668,  669,
-      669,  669,  669,  669,  670,  670,  661,  670,  671,  670,
-      670,  661,  670,  670,  670,  670,  670,  670,  661,  672,
-      661,  661,  666,  661,  661,  661,  661,  661,  661,  661,
-      661,  661,  661,  673,  673,  673,  673,  673,  661,  674,
-      674,  674,  674,  674,  661,  675,  675,  675,  675,  675,
-      676,  676,  676,  677,  676,  676,  676,  676,  676,  676,
-
-      676,  676,  676,  661,  678,  661,  661,  678,  679,  680,
-      681,  678,  678,  678,  678,  678,  678,  678,  678,  678,
-      678,  661,  682,  682,  682,  682,  682,  682,  666,  661,
-      683,  661,  661,  661,  661,  661,  661,  661,  668,  684,
-      668,  668,  668,  668,  668,  668,  668,  669,  669,  669,
-      669,  669,  670,  661,  670,  661,  671,  666,  670,  670,
-      670,  670,  670,  670,  670,  670,  670,  672,  672,  661,
-      661,  661,  661,  661,  673,  673,  673,  673,  673,  685,
-      661,  674,  674,  674,  674,  674,  675,  675,  675,  675,
-      675,  676,  661,  677,  661,  676,  676,  676,  676,  676,
-
-      676,  676,  676,  676,  676,  661,  661,  678,  678,  678,
-      661,  661,  679,  679,  679,  680,  680,  680,  681,  681,
-      681,  678,  678,  678,  678,  678,  678,  678,  661,  678,
-      678,  678,  682,  682,  682,  682,  682,  682,  682,  683,
-      661,  661,  686,  684,  661,  668,  668,  668,  668,  668,
-      668,  668,  668,  669,  669,  669,  669,  669,  670,  670,
-      670,  670,  670,  670,  670,  661,  661,  661,  661,  661,
-      673,  673,  673,  673,  673,  687,  688,  674,  674,  674,
-      674,  674,  675,  675,  675,  675,  675,  676,  676,  676,
-      676,  676,  676,  676,  678,  678,  678,  678,  661,  678,
-
-      678,  678,  678,  682,  682,  682,  682,  682,  682,  682,
-      661,  661,  689,  668,  668,  668,  668,  668,  668,  668,
-      668,  669,  669,  669,  669,  669,  670,  670,  670,  670,
-      670,  670,  661,  661,  661,  661,  661,  673,  673,  673,
-      673,  673,  687,  674,  690,  674,  674,  674,  674,  674,
-      675,  675,  675,  675,  675,  676,  661,  676,  676,  676,
-      676,  676,  678,  678,  678,  678,  678,  678,  682,  682,
-      682,  682,  682,  682,  682,  689,  683,  668,  668,  668,
-      668,  668,  668,  668,  668,  669,  669,  669,  669,  669,
-      670,  670,  670,  670,  670,  661,  661,  661,  661,  661,
-
-      673,  673,  673,  673,  673,  690,  674,  674,  674,  674,
-      674,  674,  675,  675,  675,  675,  675,  676,  676,  676,
-      676,  676,  678,  678,  678,  678,  678,  682,  682,  682,
-      682,  682,  682,  682,  668,  668,  668,  668,  668,  668,
-      668,  668,  669,  669,  669,  669,  669,  670,  670,  670,
-      670,  670,  661,  661,  661,  661,  661,  673,  673,  673,
-      673,  673,  674,  674,  674,  674,  674,  675,  675,  675,
-      675,  675,  676,  676,  676,  676,  676,  678,  678,  678,
-      678,  678,  682,  682,  682,  682,  682,  682,  668,  668,
-      668,  668,  668,  668,  669,  669,  669,  669,  669,  670,
-
-      670,  670,  670,  670,  661,  661,  661,  661,  661,  673,
-      673,  673,  673,  673,  674,  674,  674,  674,  674,  675,
-      675,  675,  675,  675,  676,  676,  676,  676,  676,  678,
-      678,  678,  678,  678,  682,  682,  682,  682,  682,  668,
-      668,  668,  669,  669,  670,  670,  661,  661,  673,  673,
-      674,  674,  675,  675,  676,  676,  678,  678,  682,  682,
-      668,  668,  669,  669,  670,  670,  661,  661,  673,  673,
-      674,  674,  675,  675,  676,  676,  678,  678,  682,  682,
-      668,  668,  669,  669,  670,  670,  661,  661,  673,  673,
-      674,  674,  675,  675,  676,  676,  678,  678,  682,  682,
-
-      668,  669,  670,  661,  673,  674,  675,  676,  678,  682,
-      668,  669,  670,  661,  673,  674,  675,  676,  678,  682,
-      668,  669,  670,  661,  673,  674,  675,  676,  678,  682,
-      668,  669,  670,  661,  673,  674,  675,  676,  678,  682,
-      668,  669,  670,  661,  673,  674,  675,  676,  678,  682,
-      668,  669,  670,  661,  673,  674,  675,  676,  678,  682,
-        0,  661,  661,  661,  661,  661,  661,  661,  661,  661,
-      661,  661,  661,  661,  661,  661,  661,  661,  661,  661,
-      661,  661,  661,  661,  661,  661,  661,  661,  661,  661
+      797,    1,  797,    3,  798,  798,  799,  799,  797,    9,
+      797,   11,  797,   13,  797,   15,  800,  800,  801,  801,
+      797,   21,  797,  797,  797,  797,  802,  803,  797,  797,
+      797,  797,  797,  804,  804,  804,  804,  804,  804,  804,
+      804,  804,  805,  805,  805,  805,  805,  805,  806,  806,
+      797,  806,  807,  806,  806,  797,  806,  806,  806,  806,
+      806,  806,  806,  797,  808,  797,  797,  802,  797,  797,
+      797,  797,  797,  797,  797,  797,  797,  797,  797,  809,
+      809,  809,  809,  809,  809,  797,  810,  810,  810,  810,
+      810,  810,  797,  811,  811,  811,  811,  811,  811,  797,
+
+      812,  812,  812,  812,  812,  812,  813,  813,  813,  814,
+      813,  813,  813,  813,  813,  813,  813,  813,  813,  813,
+      797,  815,  797,  797,  815,  816,  817,  818,  815,  815,
+      815,  815,  815,  815,  815,  815,  815,  815,  815,  797,
+      819,  819,  819,  819,  819,  819,  819,  802,  797,  820,
+      797,  797,  797,  797,  797,  797,  797,  804,  821,  804,
+      804,  804,  804,  804,  804,  804,  804,  805,  805,  805,
+      805,  805,  805,  806,  797,  806,  797,  807,  802,  806,
+      806,  806,  806,  806,  806,  806,  806,  806,  806,  808,
+      808,  797,  797,  797,  797,  797,  797,  809,  809,  809,
+
+      809,  809,  809,  822,  797,  810,  810,  810,  810,  810,
+      810,  811,  811,  811,  811,  811,  811,  823,  797,  812,
+      812,  812,  812,  812,  812,  813,  797,  814,  797,  813,
+      813,  813,  813,  813,  813,  813,  813,  813,  813,  813,
+      797,  797,  815,  815,  815,  797,  797,  816,  816,  816,
+      817,  817,  817,  818,  818,  818,  815,  815,  815,  815,
+      815,  815,  815,  797,  815,  815,  815,  815,  819,  819,
+      819,  819,  819,  819,  819,  819,  820,  797,  797,  824,
+      821,  797,  804,  804,  804,  804,  804,  804,  804,  804,
+      804,  805,  805,  805,  805,  805,  805,  806,  806,  806,
+
+      806,  806,  806,  806,  806,  797,  797,  797,  797,  797,
+      797,  809,  809,  809,  809,  809,  809,  825,  826,  810,
+      810,  810,  810,  810,  810,  811,  811,  811,  811,  811,
+      811,  827,  828,  812,  812,  812,  812,  812,  812,  813,
+      813,  813,  813,  813,  813,  813,  813,  815,  815,  815,
+      815,  797,  815,  815,  815,  815,  815,  819,  819,  819,
+      819,  819,  819,  819,  819,  797,  797,  829,  804,  804,
+      804,  804,  804,  804,  804,  804,  804,  805,  805,  805,
+      805,  805,  805,  806,  806,  806,  806,  806,  806,  806,
+      797,  797,  797,  797,  797,  797,  809,  809,  809,  809,
+
+      809,  809,  825,  810,  830,  810,  810,  810,  810,  810,
+      810,  811,  811,  811,  811,  811,  811,  827,  812,  831,
+      812,  812,  812,  812,  812,  812,  813,  797,  813,  813,
+      813,  813,  813,  813,  815,  815,  815,  815,  815,  815,
+      815,  819,  819,  819,  819,  819,  819,  819,  819,  829,
+      820,  804,  804,  804,  804,  804,  804,  804,  804,  804,
+      805,  805,  805,  805,  805,  805,  806,  806,  806,  806,
+      806,  806,  797,  797,  797,  797,  797,  797,  809,  809,
+      809,  809,  809,  809,  830,  810,  810,  810,  810,  810,
+      810,  810,  811,  811,  811,  811,  811,  811,  831,  812,
+
+      812,  812,  812,  812,  812,  812,  813,  813,  813,  813,
+      813,  813,  815,  815,  815,  815,  815,  815,  819,  819,
+      819,  819,  819,  819,  819,  819,  804,  804,  804,  804,
+      804,  804,  804,  804,  804,  805,  805,  805,  805,  805,
+      805,  806,  806,  806,  806,  806,  806,  797,  797,  797,
+      797,  797,  797,  809,  809,  809,  809,  809,  809,  810,
+      810,  810,  810,  810,  810,  811,  811,  811,  811,  811,
+      811,  812,  812,  812,  812,  812,  812,  813,  813,  813,
+      813,  813,  813,  815,  815,  815,  815,  815,  815,  819,
+      819,  819,  819,  819,  819,  819,  804,  804,  804,  804,
+
+      804,  804,  804,  805,  805,  805,  805,  805,  805,  806,
+      806,  806,  806,  806,  806,  797,  797,  797,  797,  797,
+      797,  809,  809,  809,  809,  809,  809,  810,  810,  810,
+      810,  810,  810,  811,  811,  811,  811,  811,  811,  812,
+      812,  812,  812,  812,  812,  813,  813,  813,  813,  813,
+      813,  815,  815,  815,  815,  815,  815,  819,  819,  819,
+      819,  819,  819,  804,  804,  804,  805,  805,  806,  806,
+      797,  797,  809,  809,  810,  810,  811,  811,  812,  812,
+      813,  813,  815,  815,  819,  819,  804,  804,  805,  805,
+      806,  806,  797,  797,  809,  809,  810,  810,  811,  811,
+
+      812,  812,  813,  813,  815,  815,  819,  819,  804,  804,
+      805,  805,  806,  806,  797,  797,  809,  809,  810,  810,
+      811,  811,  812,  812,  813,  813,  815,  815,  819,  819,
+      804,  805,  806,  797,  809,  810,  811,  812,  813,  815,
+      819,  804,  805,  806,  797,  809,  810,  811,  812,  813,
+      815,  819,  804,  805,  806,  797,  809,  810,  811,  812,
+      813,  815,  819,  804,  805,  806,  797,  809,  810,  811,
+      812,  813,  815,  819,  804,  805,  806,  797,  809,  810,
+      811,  812,  813,  815,  819,  804,  805,  806,  797,  809,
+      810,  811,  812,  813,  815,  819,    0,  797,  797,  797,
+
+      797,  797,  797,  797,  797,  797,  797,  797,  797,  797,
+      797,  797,  797,  797,  797,  797,  797,  797,  797,  797,
+      797,  797,  797,  797,  797,  797,  797,  797,  797,  797,
+      797
     } ;
 
-static yyconst flex_int16_t yy_nxt[1894] =
+static yyconst flex_int16_t yy_nxt[2216] =
     {   0,
-       22,   23,   24,   23,   22,   25,   26,   22,   27,   22,
-       28,   22,   22,   22,   22,   22,   29,   30,   31,   32,
-       32,   33,   32,   32,   32,   32,   32,   32,   32,   32,
-       32,   32,   22,   22,   22,   32,   34,   32,   32,   35,
-       36,   37,   32,   38,   32,   32,   32,   32,   39,   32,
-       32,   32,   32,   32,   32,   22,   22,   22,   23,   24,
-       23,   22,   25,   22,   22,   27,   22,   28,   22,   22,
-       22,   22,   22,   29,   30,   31,   40,   40,   41,   40,
-       40,   40,   40,   40,   40,   40,   40,   40,   40,   22,
-       22,   22,   40,   42,   40,   40,   43,   40,   40,   40,
-
-       44,   40,   40,   40,   40,   40,   40,   40,   40,   40,
-       40,   40,   22,   22,   46,   47,   48,  132,   49,  138,
-      138,   50,  138,   51,  138,  133,  155,  156,  138,   52,
-       53,   54,  154,  161,   55,  132,  159,  138,  235,  138,
-      236,  154,  138,  133,  160,  140,  140,  141,  140,   56,
-      140,  154,   57,  142,  140,  130,   58,   46,   47,   48,
-      154,   49,  143,  140,   50,  140,   51,  145,  140,  158,
-      162,  144,   52,   53,   54,  164,  154,   55,  181,  146,
-      154,  163,  154,  154,  154,  169,  170,  181,  181,  181,
-      147,  193,   56,  193,  193,   57,  193,  193,  193,   58,
-
-       60,   61,   62,  183,   63,  165,  198,   64,  166,   65,
-      196,  193,  199,  167,  193,   66,   67,   68,  197,  193,
-       69,  184,  200,  185,  193,  202,  214,  186,  206,  207,
-      203,  220,  204,  209,  201,   70,  209,  292,   71,  209,
-      211,  212,   72,   60,   61,   62,  138,   63,  209,  138,
-       64,  209,   65,  132,  209,  215,  138,  221,   66,   67,
-       68,  133,  257,   69,  154,  210,  258,  269,  205,  155,
-      156,  270,  140,  274,  261,  140,  246,  275,   70,  286,
-      210,   71,  140,  287,  154,   72,   22,   23,   73,   23,
-       22,   25,   22,   22,   27,   22,   28,   22,   22,   22,
-
-       22,   22,   29,   30,   31,   74,   74,   75,   74,   74,
-       74,   74,   74,   74,   74,   74,   74,   74,   22,   22,
-       22,   74,   76,   74,   74,   77,   74,   74,   74,   78,
-       74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
-       74,   22,   22,   22,   23,   24,   23,   22,   25,   79,
-       22,   27,   22,   28,   22,   22,   80,   80,   22,   29,
-       30,   31,   80,   80,   81,   80,   80,   80,   80,   80,
-       80,   80,   80,   80,   80,   22,   22,   22,   80,   82,
-       80,   80,   83,   80,   80,   80,   84,   80,   80,   80,
-       80,   80,   80,   80,   80,   80,   80,   80,   22,   22,
-
-       22,   23,   85,   23,   22,   25,   22,   22,   27,   22,
-       28,   22,   22,   22,   22,   22,   29,   30,   31,   86,
-       86,   87,   86,   86,   86,   86,   86,   86,   86,   86,
-       86,   86,   22,   22,   22,   86,   88,   86,   86,   89,
-       86,   86,   86,   90,   86,   86,   86,   86,   86,   86,
-       86,   86,   86,   86,   86,   22,   22,   92,   93,   92,
-      138,   94,  217,  130,   95,  217,   96,  241,  217,  169,
-      170,  154,   97,   98,   99,  222,  309,  100,  209,  209,
-      310,  209,  209,  223,  209,  209,  140,  209,  226,  259,
-      209,  181,  101,  247,  218,  102,  263,  138,  138,  103,
-
-      224,  138,  209,  209,  154,  209,  209,  210,  209,  209,
-      138,  210,  104,   92,   93,   92,  210,   94,  225,  227,
-       95,  242,   96,  140,  140,  350,  154,  140,   97,   98,
-       99,  130,  248,  100,  210,  210,  140,  206,  207,  250,
-      249,  220,  251,  260,  193,  158,  252,  209,  101,  262,
-      209,  102,  345,  209,  181,  103,  209,  229,  209,  209,
-      209,  209,  209,  209,  209,  181,  209,  221,  104,  106,
-      107,  108,  109,  110,  278,  111,  112,  228,  113,  210,
-      138,  291,  181,  154,  114,  115,  116,  159,  210,  117,
-      210,  209,  210,  214,  209,  160,  230,  209,  279,  231,
-
-      193,  118,  154,  181,  119,  264,  140,  120,  214,  265,
-      181,  121,  106,  107,  108,  109,  110,  280,  111,  112,
-      220,  113,  215,  210,  290,  253,  138,  114,  115,  116,
-      196,  193,  117,  211,  212,  281,  232,  215,  197,  282,
-      311,  312,  323,  313,  118,  154,  221,  119,  276,  349,
-      120,  324,  140,  585,  121,   22,   23,  122,   23,   22,
-       25,   22,   22,   27,   22,   28,   22,   22,   22,   22,
-       22,   29,   30,   31,  123,  123,  124,  123,  123,  123,
-      123,  123,  123,  123,  123,  123,  123,   22,   22,   22,
-      123,  125,  126,  123,  127,  123,  123,  123,  128,  123,
-
-      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
-       22,   22,  288,  193,  193,  209,  209,  154,  209,  209,
-      154,  209,  209,  209,  209,  213,  209,  214,  193,  209,
-      217,  130,  154,  217,  219,  154,  217,  217,  130,  220,
-      217,  328,  138,  217,  332,  241,  296,  210,  210,  209,
-      293,  358,  209,  394,  294,  210,  215,  217,  295,  503,
-      217,  314,  218,  217,  222,  221,  289,  209,  140,  218,
-      209,  209,  223,  209,  209,  138,  209,  209,  210,  209,
-      209,  209,  209,  209,  209,  209,  209,  209,  209,  218,
-      138,  209,  209,  138,  209,  209,  210,  209,  209,  242,
-
-      297,  140,  138,  210,  138,  210,  193,  298,  334,  138,
-      154,  315,  210,  210,  210,  209,  140,  335,  209,  140,
-      316,  209,  259,  210,  210,  138,  327,  312,  140,  300,
-      140,  154,  301,  339,  317,  140,  318,  154,  181,  331,
-      352,  154,  340,  319,  181,  321,  359,  210,  193,  353,
-      193,  140,  302,  288,  193,  360,  303,  329,  154,  320,
-      356,  357,  209,  346,  296,  209,  330,  209,  209,  391,
-      209,  370,  363,  312,  347,  209,  260,  154,  209,  209,
-      371,  209,  209,  348,  209,  209,  633,  209,  362,  209,
-      138,  361,  209,  138,  210,  209,  210,  311,  312,  138,
-
-      138,  138,  209,  364,  210,  209,  209,  289,  209,  209,
-      138,  210,  209,  210,  378,  138,  140,  154,  297,  140,
-      379,  210,  365,  138,  154,  140,  140,  140,  154,  380,
-      181,  366,  327,  312,  210,  181,  140,  392,  210,  181,
-      181,  140,  181,  381,  382,  368,  367,  154,  393,  140,
-      193,  408,  356,  357,  193,  193,  383,  395,  384,  193,
-      193,  131,  193,  193,  385,  409,  154,  363,  312,  410,
-      209,  209,  545,  209,  209,  418,  209,  209,  209,  209,
-      138,  209,  209,  555,  209,  412,  411,  209,  419,  420,
-      209,  138,  209,  209,  138,  209,  138,  423,  209,  210,
-
-      138,  138,  138,  210,  181,  138,  140,  422,  210,  421,
-      210,  424,  154,  425,  435,  154,  154,  140,  181,  210,
-      140,  138,  140,  154,  210,  448,  140,  140,  140,  154,
-      181,  140,  181,  181,  436,  440,  193,  193,  426,  193,
-      427,  438,  439,  193,  437,  442,  449,  140,  465,  450,
-      452,  466,  451,  463,  193,  154,  209,  154,  441,  209,
-      181,  209,  209,  473,  209,  209,  138,  209,  209,  565,
-      467,  209,  464,  209,  138,  138,  209,  154,  138,  209,
-      476,  474,  138,  209,  478,  502,  209,  475,  210,  209,
-      138,  138,  140,  210,  138,  477,  500,  210,  154,  490,
-
-      140,  140,  154,  489,  140,  210,  479,  181,  140,  181,
-      181,  481,  181,  491,  480,  210,  140,  140,  181,  193,
-      140,  501,  193,  492,  493,  482,  193,  193,  193,  209,
-      138,  193,  209,  154,  138,  209,  494,  504,  515,  209,
-      516,  154,  209,  181,  209,  209,  518,  209,  517,  138,
-      209,  209,  525,  595,  209,  138,  140,  209,  138,  526,
-      140,  210,  546,  519,  181,  528,  209,  531,  527,  209,
-      138,  210,  209,  530,  540,  140,  210,  529,  193,  542,
-      551,  140,  552,  210,  140,  154,  209,  532,  541,  209,
-      533,  209,  209,  138,  209,  181,  140,  209,  210,  209,
-
-      209,  138,  209,  209,  138,  209,  209,  557,  209,  566,
-      181,  209,  193,  193,  209,  154,  534,  561,  210,  140,
-      138,  556,  209,  210,  181,  209,  138,  140,  209,  572,
-      140,  210,  210,  209,  571,  558,  209,  181,  562,  209,
-      210,  575,  591,  193,  581,  154,  140,  138,  586,  603,
-      576,  577,  140,  209,  210,  209,  209,  138,  209,  209,
-      181,  209,  154,  582,  193,  210,  154,  181,  181,  623,
-      138,  601,  578,  140,  606,  209,  597,  193,  209,  613,
-      592,  209,  608,  140,  626,  210,  209,  210,  138,  209,
-      596,  616,  209,  611,  609,  209,  140,  181,  209,  193,
-
-      138,  209,  193,  598,  618,  621,  209,  210,  660,  209,
-      657,  655,  209,  138,  140,  181,  636,  654,  210,  631,
-      628,  193,  154,  619,  138,  638,  140,  210,  629,  209,
-      643,  641,  209,  646,  209,  209,  154,  209,  210,  140,
-      209,  181,  193,  648,  138,  652,  651,  650,  653,  209,
-      140,  647,  209,  639,  645,  209,  209,  649,  644,  209,
-      642,  210,  209,  656,  640,  637,  210,  635,  658,  634,
-      140,  632,  630,  627,  625,  624,  659,  622,  620,  617,
-      615,  210,  614,  612,  610,  193,  607,  181,  210,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-
-       45,   59,   59,   59,   59,   59,   59,   59,   59,   59,
-       59,   59,   59,   91,   91,   91,   91,   91,   91,   91,
-       91,   91,   91,   91,   91,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  129,  129,  129,
-      129,  129,  129,  129,  129,  129,  129,  129,  129,  139,
-      139,  139,  605,  139,  139,  139,  148,  148,  604,  148,
-      148,  153,  154,  153,  153,  153,  153,  153,  153,  153,
-      153,  153,  153,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  168,  168,  168,  168,  168,
-      168,  168,  168,  168,  168,  168,  168,  175,  175,  602,
-
-      175,  175,  182,  182,  600,  182,  182,  182,  187,  187,
-      599,  187,  187,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  194,  194,  194,  194,  194,
-      194,  194,  194,  194,  194,  194,  194,  208,  594,  208,
-      208,  208,  208,  208,  208,  208,  208,  208,  208,  213,
-      593,  590,  213,  213,  213,  213,  213,  213,  213,  213,
-      213,  216,  216,  216,  216,  216,  216,  216,  216,  216,
-      216,  216,  216,  219,  589,  588,  219,  219,  219,  219,
-      219,  219,  219,  219,  219,  233,  233,  587,  233,  233,
-      240,  240,  240,  584,  240,  240,  240,  244,  244,  583,
-
-      244,  343,  343,  580,  343,  343,  579,  574,  343,  376,
-      376,  573,  376,  376,  570,  569,  376,  406,  406,  568,
-      406,  406,  567,  564,  406,  563,  560,  559,  193,  193,
-      193,  554,  553,  181,  181,  181,  550,  549,  548,  547,
-      154,  154,  154,  544,  543,  539,  538,  537,  536,  535,
-      524,  523,  522,  521,  520,  514,  513,  512,  511,  510,
-      509,  508,  507,  506,  505,  499,  498,  497,  496,  495,
-      488,  487,  486,  485,  484,  483,  472,  471,  470,  469,
-      468,  181,  407,  462,  461,  460,  459,  458,  457,  456,
-      455,  454,  453,  447,  446,  445,  444,  443,  377,  434,
-
-      433,  432,  431,  430,  429,  428,  357,  417,  416,  415,
-      414,  413,  407,  181,  344,  405,  404,  403,  402,  401,
-      400,  399,  398,  397,  396,  390,  389,  388,  387,  386,
-      377,  312,  375,  374,  373,  372,  369,  299,  193,  355,
-      354,  351,  181,  344,  342,  341,  338,  337,  336,  333,
-      154,  326,  325,  322,  245,  308,  307,  306,  305,  304,
-      299,  212,  207,  193,  193,  193,  193,  193,  195,  193,
-      193,  285,  284,  283,  181,  277,  273,  272,  271,  268,
-      267,  266,  170,  154,  154,  154,  130,  154,  256,  255,
-      254,  245,  243,  130,  239,  238,  237,  234,  212,  195,
-
-      193,  193,  193,  191,  190,  189,  188,  181,  180,  179,
-      178,  177,  176,  174,  173,  172,  171,  137,  136,  135,
-      134,  130,  135,  154,  154,  152,  151,  150,  149,  137,
-      136,  135,  134,  130,  661,   21,  661,  661,  661,  661,
-      661,  661,  661,  661,  661,  661,  661,  661,  661,  661,
-      661,  661,  661,  661,  661,  661,  661,  661,  661,  661,
-      661,  661,  661,  661,  661,  661,  661,  661,  661,  661,
-      661,  661,  661,  661,  661,  661,  661,  661,  661,  661,
-      661,  661,  661,  661,  661,  661,  661,  661,  661,  661,
-      661,  661,  661
-
+       24,   25,   26,   25,   24,   27,   28,   24,   29,   24,
+       30,   24,   24,   24,   24,   24,   31,   32,   33,   34,
+       34,   35,   34,   34,   34,   34,   34,   34,   34,   34,
+       34,   34,   24,   24,   24,   34,   36,   34,   34,   37,
+       38,   39,   34,   40,   34,   34,   34,   34,   41,   34,
+       42,   34,   34,   34,   34,   34,   24,   24,   24,   25,
+       26,   25,   24,   27,   24,   24,   29,   24,   30,   24,
+       24,   24,   24,   24,   31,   32,   33,   43,   43,   44,
+       43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
+       24,   24,   24,   43,   45,   43,   43,   46,   43,   43,
+
+       43,   47,   43,   43,   43,   43,   43,   43,   48,   43,
+       43,   43,   43,   43,   24,   24,   50,   51,   52,  151,
+       53,  157,  157,   54,  157,   55,  157,  152,  176,  177,
+      157,   56,   57,   58,  175,  157,   59,  157,  183,  149,
+      175,  182,  175,  175,  175,  157,  157,  159,  159,  160,
+      159,   60,  159,  179,   61,  161,  159,  185,   62,  205,
+      162,  159,  175,  159,  188,   63,   50,   51,   52,  175,
+       53,  159,  159,   54,  175,   55,  164,  165,  163,  167,
+      180,   56,   57,   58,  166,  186,   59,  205,  181,  175,
+      184,  191,  192,  187,  151,  175,  205,  219,  189,  210,
+
+      205,   60,  152,  205,   61,  219,  219,  219,   62,  219,
+      227,  227,  207,  230,  227,   63,   65,   66,   67,  227,
+       68,  231,  221,   69,  227,   70,  232,  234,  227,  208,
+      227,   71,   72,   73,  209,  227,   74,  211,  222,  233,
+      223,  227,  227,  225,  271,  235,  272,  224,  238,  241,
+      242,   75,  246,  247,   76,  249,  244,  236,   77,  244,
+      295,  255,  244,  157,  296,   78,   65,   66,   67,  157,
+       68,  244,  237,   69,  244,   70,  157,  244,  175,  157,
+      240,   71,   72,   73,  250,  239,   74,  256,  245,  159,
+      151,  176,  177,  149,  420,  159,  283,  405,  152,  175,
+
+      379,   75,  159,  245,   76,  159,  175,  179,   77,  300,
+      380,  305,  284,  191,  192,   78,   24,   25,   79,   25,
+       24,   27,   24,   24,   29,   24,   30,   24,   24,   24,
+       24,   24,   31,   32,   33,   80,   80,   81,   80,   80,
+       80,   80,   80,   80,   80,   80,   80,   80,   24,   24,
+       24,   80,   82,   80,   80,   83,   80,   80,   80,   84,
+       80,   80,   80,   80,   80,   80,   85,   80,   80,   80,
+       80,   80,   24,   24,   24,   25,   26,   25,   24,   27,
+       86,   24,   29,   24,   30,   24,   24,   87,   87,   24,
+       31,   32,   33,   87,   87,   88,   87,   87,   87,   87,
+
+       87,   87,   87,   87,   87,   87,   24,   24,   24,   87,
+       89,   87,   87,   90,   87,   87,   87,   91,   87,   87,
+       87,   87,   87,   87,   92,   87,   87,   87,   87,   87,
+       24,   24,   24,   25,   93,   25,   24,   27,   24,   24,
+       29,   24,   30,   24,   24,   24,   24,   24,   31,   32,
+       33,   94,   94,   95,   94,   94,   94,   94,   94,   94,
+       94,   94,   94,   94,   24,   24,   24,   94,   96,   94,
+       94,   97,   94,   94,   94,   98,   94,   94,   94,   94,
+       94,   94,   99,   94,   94,   94,   94,   94,   24,   24,
+       24,   25,   26,   25,   24,   27,  100,   24,   29,   24,
+
+       30,   24,   24,  101,  101,   24,   31,   32,   33,  101,
+      101,  102,  101,  101,  101,  101,  101,  101,  101,  101,
+      101,  101,   24,   24,   24,  101,  103,  101,  101,  104,
+      101,  101,  101,  105,  101,  101,  101,  101,  101,  101,
+      106,  101,  101,  101,  101,  101,   24,   24,  108,  109,
+      108,  157,  110,  252,  149,  111,  252,  112,  368,  252,
+      278,  157,  157,  113,  114,  115,  257,  309,  116,  244,
+      175,  310,  244,  227,  258,  157,  244,  159,  244,  244,
+      175,  244,  244,  117,  244,  253,  118,  159,  159,  332,
+      119,  157,  259,  286,  260,  302,  285,  120,  245,  205,
+
+      287,  159,  227,  301,  121,  108,  109,  108,  245,  110,
+      245,  433,  111,  244,  112,  279,  244,  159,  291,  244,
+      113,  114,  115,  244,  175,  116,  244,  244,  244,  244,
+      244,  244,  261,  244,  244,  244,  264,  290,  244,  343,
+      117,  244,  325,  118,  262,  245,  303,  119,  157,  315,
+      304,  265,  205,  316,  120,  245,  205,  263,  205,  245,
+      245,  121,  123,  124,  125,  126,  127,  245,  128,  129,
+      244,  130,  320,  244,  159,  180,  244,  131,  132,  133,
+      288,  298,  134,  181,  289,  244,  219,  219,  244,  321,
+      175,  244,  244,  322,  135,  244,  175,  136,  244,  329,
+
+      137,  205,  245,  330,  138,  219,  334,  219,  219,  266,
+      227,  139,  123,  124,  125,  126,  127,  245,  128,  129,
+      335,  130,  227,  175,  245,  241,  242,  131,  132,  133,
+      267,  268,  134,  323,  230,  227,  299,  324,  318,  337,
+      336,  363,  231,  338,  135,  364,  342,  136,  175,  344,
+      137,  339,  246,  247,  138,  366,  367,  385,  427,  428,
+      390,  139,   24,   25,  140,   25,   24,   27,   24,   24,
+       29,   24,   30,   24,   24,   24,   24,   24,   31,   32,
+       33,  141,  141,  142,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,   24,   24,   24,  141,  143,  144,
+
+      141,  145,  141,  141,  141,  146,  141,  141,  141,  141,
+      141,  141,  147,  141,  141,  141,  141,  141,   24,   24,
+      340,  227,  227,  227,  244,  244,  249,  244,  244,  175,
+      244,  244,  244,  244,  249,  244,  205,  248,  244,  249,
+      252,  149,  278,  252,  252,  149,  252,  252,  252,  348,
+      252,  252,  255,  255,  252,  250,  245,  245,  345,  175,
+      254,  205,  346,  250,  245,  255,  470,  205,  250,  563,
+      347,  349,  253,  205,  244,  341,  253,  244,  256,  256,
+      253,  257,  244,  389,  244,  244,  406,  244,  244,  258,
+      244,  256,  244,  244,  487,  244,  244,  279,  244,  244,
+
+      409,  150,  244,  245,  244,  244,  244,  244,  157,  244,
+      244,  157,  244,  245,  245,  244,  157,  244,  244,  157,
+      244,  244,  245,  244,  245,  157,  350,  244,  175,  351,
+      244,  245,  205,  244,  159,  369,  245,  159,  245,  157,
+      157,  157,  159,  157,  353,  159,  157,  245,  298,  245,
+      175,  159,  392,  205,  355,  354,  219,  388,  356,  245,
+      372,  370,  393,  175,  398,  159,  159,  159,  407,  159,
+      205,  371,  159,  373,  399,  357,  386,  375,  408,  374,
+      384,  367,  376,  413,  219,  219,  387,  410,  377,  219,
+      219,  227,  422,  414,  227,  175,  340,  227,  227,  227,
+
+      366,  367,  423,  299,  421,  244,  349,  244,  244,  244,
+      244,  244,  244,  244,  429,  435,  367,  411,  244,  175,
+      227,  244,  244,  424,  425,  244,  244,  244,  244,  244,
+      244,  436,  244,  244,  430,  219,  426,  245,  245,  245,
+      244,  432,  244,  244,  431,  244,  244,  245,  244,  157,
+      434,  341,  443,  471,  245,  157,  157,  157,  245,  245,
+      175,  350,  444,  437,  157,  157,  157,  157,  205,  175,
+      452,  439,  245,  438,  245,  159,  157,  175,  175,  440,
+      467,  159,  159,  159,  205,  453,  454,  472,  384,  367,
+      159,  159,  159,  159,  441,  205,  205,  468,  469,  205,
+
+      219,  455,  159,  175,  460,  219,  219,  219,  456,  219,
+      458,  219,  457,  227,  488,  490,  227,  459,  427,  428,
+      227,  501,  227,  227,  227,  489,  435,  367,  244,  244,
+      175,  244,  244,  175,  244,  502,  492,  503,  507,  669,
+      491,  175,  244,  542,  157,  244,  506,  205,  244,  713,
+      508,  157,  175,  504,  509,  505,  244,  157,  245,  244,
+      245,  244,  244,  514,  244,  512,  244,  244,  513,  244,
+      159,  511,  244,  510,  245,  244,  157,  159,  244,  157,
+      527,  244,  157,  159,  157,  157,  157,  544,  245,  175,
+      205,  515,  562,  245,  157,  175,  529,  175,  245,  175,
+
+      205,  205,  159,  219,  205,  159,  219,  245,  159,  219,
+      159,  159,  159,  516,  219,  517,  528,  518,  532,  543,
+      159,  533,  545,  531,  546,  530,  534,  560,  219,  547,
+      561,  219,  572,  227,  227,  227,  227,  564,  535,  227,
+      227,  157,  175,  573,  175,  565,  205,  575,  175,  244,
+      244,  574,  244,  244,  788,  244,  244,  766,  244,  157,
+      578,  244,  675,  610,  244,  576,  244,  159,  244,  244,
+      597,  244,  244,  581,  244,  577,  157,  584,  579,  157,
+      582,  245,  245,  244,  580,  159,  244,  157,  583,  244,
+      245,  157,  598,  157,  157,  585,  157,  175,  245,  175,
+
+      245,  175,  159,  205,  587,  159,  175,  175,  586,  205,
+      588,  205,  205,  159,  599,  245,  205,  159,  205,  159,
+      159,  613,  159,  219,  611,  601,  219,  612,  600,  219,
+      603,  615,  589,  219,  219,  219,  629,  227,  628,  602,
+      227,  227,  614,  227,  227,  157,  631,  227,  244,  630,
+      157,  244,  633,  205,  244,  640,  641,  244,  244,  205,
+      244,  244,  632,  244,  244,  157,  664,  642,  643,  645,
+      646,  159,  244,  175,  227,  244,  159,  647,  244,  644,
+      245,  649,  652,  648,  665,  651,  157,  157,  157,  245,
+      245,  159,  157,  244,  650,  653,  244,  244,  676,  244,
+
+      244,  654,  670,  244,  245,  219,  219,  227,  175,  796,
+      175,  655,  159,  159,  159,  205,  244,  682,  159,  244,
+      244,  679,  244,  244,  691,  245,  244,  681,  244,  245,
+      157,  244,  666,  157,  244,  244,  657,  683,  244,  157,
+      244,  244,  175,  244,  656,  680,  244,  244,  245,  698,
+      244,  205,  245,  244,  687,  219,  159,  219,  227,  159,
+      245,  227,  157,  205,  684,  159,  692,  245,  244,  157,
+      175,  244,  245,  688,  244,  697,  205,  244,  219,  245,
+      244,  701,  219,  244,  227,  227,  703,  709,  159,  702,
+      227,  175,  157,  227,  719,  159,  723,  705,  755,  704,
+
+      245,  157,  244,  739,  714,  244,  710,  720,  244,  245,
+      205,  244,  725,  792,  244,  731,  706,  244,  159,  175,
+      750,  219,  157,  733,  736,  727,  724,  159,  205,  175,
+      244,  219,  726,  244,  245,  738,  244,  227,  244,  157,
+      205,  244,  744,  245,  244,  742,  219,  244,  159,  740,
+      244,  747,  157,  244,  749,  205,  753,  758,  761,  227,
+      728,  244,  245,  760,  244,  159,  219,  244,  157,  175,
+      245,  764,  205,  219,  769,  751,  227,  777,  159,  245,
+      157,  244,  772,  762,  244,  771,  775,  244,  205,  244,
+      780,  782,  244,  245,  159,  244,  219,  227,  783,  157,
+
+      790,  244,  786,  789,  244,  773,  159,  244,  244,  787,
+      791,  244,  784,  245,  244,  785,  781,  779,  793,  778,
+      776,  245,  774,  794,  770,  159,  768,  767,  795,  765,
+      763,  759,  757,  245,  756,  754,  752,  748,  746,  745,
+      245,   49,   49,   49,   49,   49,   49,   49,   49,   49,
+       49,   49,   49,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  107,  107,  107,  107,  107,
+      107,  107,  107,  107,  107,  107,  107,  122,  122,  122,
+      122,  122,  122,  122,  122,  122,  122,  122,  122,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+
+      148,  158,  158,  158,  743,  158,  158,  158,  168,  168,
+      741,  168,  168,  174,  227,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  178,  178,  178,  178,  178,
+      178,  178,  178,  178,  178,  178,  178,  190,  190,  190,
+      190,  190,  190,  190,  190,  190,  190,  190,  190,  198,
+      198,  219,  198,  198,  206,  206,  737,  206,  206,  206,
+      212,  212,  205,  212,  212,  220,  220,  735,  220,  220,
+      220,  226,  226,  226,  226,  226,  226,  226,  226,  226,
+      226,  226,  226,  228,  228,  228,  228,  228,  228,  228,
+      228,  228,  228,  228,  228,  243,  734,  243,  243,  243,
+
+      243,  243,  243,  243,  243,  243,  243,  248,  175,  732,
+      248,  248,  248,  248,  248,  248,  248,  248,  248,  251,
+      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
+      251,  254,  730,  729,  254,  254,  254,  254,  254,  254,
+      254,  254,  254,  269,  269,  722,  269,  269,  277,  277,
+      277,  721,  277,  277,  277,  281,  281,  718,  281,  403,
+      403,  717,  403,  403,  716,  715,  403,  418,  418,  712,
+      418,  418,  711,  708,  418,  450,  450,  707,  450,  450,
+      700,  699,  450,  485,  485,  696,  485,  485,  695,  694,
+      485,  499,  499,  693,  499,  499,  690,  689,  499,  686,
+
+      685,  227,  227,  227,  227,  219,  219,  219,  219,  678,
+      677,  205,  205,  205,  205,  674,  673,  672,  671,  175,
+      175,  175,  175,  668,  667,  663,  662,  661,  660,  659,
+      658,  639,  638,  637,  636,  635,  634,  627,  626,  625,
+      624,  623,  622,  621,  620,  619,  618,  617,  616,  609,
+      608,  607,  606,  605,  604,  596,  595,  594,  593,  592,
+      591,  590,  219,  500,  571,  570,  569,  568,  567,  566,
+      205,  486,  559,  558,  557,  556,  555,  554,  553,  552,
+      551,  550,  549,  548,  541,  540,  539,  538,  537,  536,
+      451,  526,  525,  524,  523,  522,  521,  520,  519,  428,
+
+      500,  219,  419,  498,  497,  496,  495,  494,  493,  486,
+      205,  404,  484,  483,  482,  481,  480,  479,  478,  477,
+      476,  475,  474,  473,  466,  465,  464,  463,  462,  461,
+      451,  367,  449,  448,  447,  446,  445,  442,  352,  227,
+      219,  419,  417,  416,  415,  412,  205,  404,  402,  401,
+      400,  397,  396,  395,  394,  391,  175,  383,  382,  381,
+      378,  282,  365,  362,  361,  360,  359,  358,  352,  247,
+      242,  227,  227,  227,  227,  227,  229,  227,  227,  219,
+      333,  331,  328,  327,  326,  205,  319,  317,  314,  313,
+      312,  311,  308,  307,  306,  192,  175,  175,  175,  149,
+
+      175,  297,  294,  293,  292,  282,  280,  149,  276,  275,
+      274,  273,  270,  247,  229,  227,  227,  227,  219,  218,
+      217,  216,  215,  214,  213,  205,  204,  203,  202,  201,
+      200,  199,  197,  196,  195,  194,  193,  156,  155,  154,
+      153,  149,  154,  175,  175,  173,  172,  171,  170,  169,
+      156,  155,  154,  153,  149,  797,   23,  797,  797,  797,
+      797,  797,  797,  797,  797,  797,  797,  797,  797,  797,
+      797,  797,  797,  797,  797,  797,  797,  797,  797,  797,
+      797,  797,  797,  797,  797,  797,  797,  797,  797,  797,
+      797,  797,  797,  797,  797,  797,  797,  797,  797,  797,
+
+      797,  797,  797,  797,  797,  797,  797,  797,  797,  797,
+      797,  797,  797,  797,  797
     } ;
 
-static yyconst flex_int16_t yy_chk[1894] =
+static yyconst flex_int16_t yy_chk[2216] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    3,    3,    3,
+        1,    1,    1,    1,    1,    1,    1,    1,    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,    5,    5,    5,   27,    5,   32,
-       34,    5,   33,    5,   36,   27,   46,   46,   35,    5,
-        5,    5,   51,   51,    5,   64,   50,   37,  125,   38,
-      125,   46,   39,   64,   50,   32,   34,   33,   33,    5,
-       36,   50,    5,   34,   35,   49,    5,    6,    6,    6,
-       55,    6,   35,   37,    6,   38,    6,   37,   39,   49,
-       53,   36,    6,    6,    6,   55,   53,    6,   81,   38,
-       54,   54,   56,   58,   57,   60,   60,   84,   82,   83,
-       39,   96,    6,  101,  102,    6,  100,   97,  204,    6,
-
-        7,    7,    7,   81,    7,   56,   96,    7,   57,    7,
-       95,   95,   97,   58,   98,    7,    7,    7,   95,   99,
-        7,   82,   98,   83,  103,  100,  109,   84,  104,  104,
-      101,  111,  102,  105,   99,    7,  105,  204,    7,  105,
-      106,  106,    7,    8,    8,    8,  131,    8,  108,  139,
-        8,  108,    8,  132,  108,  109,  141,  111,    8,    8,
-        8,  132,  152,    8,  164,  105,  152,  174,  103,  155,
-      155,  174,  131,  179,  164,  139,  141,  179,    8,  191,
-      108,    8,  141,  191,  155,    8,    9,    9,    9,    9,
+        3,    3,    3,    3,    3,    3,    5,    5,    5,   29,
+        5,   34,   36,    5,   35,    5,   37,   29,   50,   50,
+       38,    5,    5,    5,   62,   41,    5,   40,   57,   53,
+       55,   55,   59,   50,   57,   42,   39,   34,   36,   35,
+       35,    5,   37,   53,    5,   36,   38,   59,    5,   91,
+       37,   41,   60,   40,   62,    5,    6,    6,    6,   61,
+        6,   42,   39,    6,   63,    6,   39,   40,   38,   42,
+       54,    6,    6,    6,   41,   60,    6,   88,   54,   58,
+       58,   65,   65,   61,   69,   54,   89,  102,   63,   91,
+
+       90,    6,   69,   92,    6,  103,  104,  105,    6,  106,
+      118,  112,   88,  111,  111,    6,    7,    7,    7,  114,
+        7,  111,  102,    7,  113,    7,  112,  114,  116,   89,
+      115,    7,    7,    7,   90,  117,    7,   92,  103,  113,
+      104,  119,  120,  106,  143,  115,  143,  105,  118,  121,
+      121,    7,  123,  123,    7,  126,  122,  116,    7,  122,
+      172,  128,  122,  150,  172,    7,    8,    8,    8,  158,
+        8,  125,  117,    8,  125,    8,  160,  125,  189,  161,
+      120,    8,    8,    8,  126,  119,    8,  128,  122,  150,
+      151,  176,  176,  178,  828,  158,  160,  826,  151,  185,
+
+      293,    8,  160,  125,    8,  161,  176,  178,    8,  185,
+      293,  189,  161,  191,  191,    8,    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,   11,   11,   11,   11,   11,   11,   11,
+        9,    9,    9,    9,   11,   11,   11,   11,   11,   11,
        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
+
        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
-
+       11,   11,   13,   13,   13,   13,   13,   13,   13,   13,
        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
-       13,   13,   13,   13,   13,   13,   13,   15,   15,   15,
-      142,   15,  110,  110,   15,  110,   15,  133,  110,  169,
-      169,  166,   15,   15,   15,  112,  239,   15,  112,  115,
-      239,  112,  115,  112,  113,  115,  142,  113,  115,  160,
-      113,  282,   15,  142,  110,   15,  166,  143,  144,   15,
-
-      113,  145,  114,  116,  160,  114,  116,  112,  114,  116,
-      146,  115,   15,   16,   16,   16,  113,   16,  114,  116,
-       16,  133,   16,  143,  144,  282,  165,  145,   16,   16,
-       16,  157,  143,   16,  114,  116,  146,  206,  206,  145,
-      144,  219,  146,  160,  203,  157,  146,  117,   16,  165,
-      117,   16,  688,  117,  183,   16,  118,  118,  119,  118,
-      120,  119,  118,  120,  119,  184,  120,  219,   16,   17,
-       17,   17,   17,   17,  183,   17,   17,  117,   17,  117,
-      147,  203,  185,  167,   17,   17,   17,  159,  118,   17,
-      119,  121,  120,  213,  121,  159,  119,  121,  184,  120,
-
-      202,   17,  159,  186,   17,  167,  147,   17,  214,  167,
-      281,   17,   18,   18,   18,   18,   18,  185,   18,   18,
-      220,   18,  213,  121,  202,  147,  240,   18,   18,   18,
-      196,  196,   18,  211,  211,  186,  121,  214,  196,  186,
-      242,  242,  255,  686,   18,  565,  220,   18,  685,  281,
-       18,  255,  240,  565,   18,   19,   19,   19,   19,   19,
-       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
-       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
-       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
-       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
-
-       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
-       19,   19,  197,  197,  205,  208,  209,  331,  208,  209,
-      265,  208,  209,  210,  210,  215,  210,  215,  290,  210,
-      216,  216,  261,  216,  221,  451,  216,  217,  217,  221,
-      217,  261,  246,  217,  265,  241,  223,  208,  209,  223,
-      205,  290,  223,  331,  205,  210,  215,  218,  218,  451,
-      218,  246,  216,  218,  222,  221,  197,  222,  246,  217,
-      222,  224,  222,  225,  224,  247,  225,  224,  223,  225,
-      226,  227,  228,  226,  227,  228,  226,  227,  228,  218,
-      248,  230,  231,  249,  230,  231,  222,  230,  231,  241,
-
-      223,  247,  250,  224,  251,  225,  291,  228,  267,  253,
-      264,  247,  226,  227,  228,  232,  248,  267,  232,  249,
-      247,  232,  259,  230,  231,  252,  260,  260,  250,  230,
-      251,  262,  231,  272,  249,  253,  250,  259,  279,  264,
-      284,  260,  272,  251,  278,  253,  291,  232,  293,  284,
-      294,  252,  232,  288,  288,  291,  232,  262,  328,  252,
-      289,  289,  295,  278,  296,  295,  262,  296,  295,  328,
-      296,  305,  297,  297,  279,  297,  259,  623,  297,  298,
-      305,  300,  298,  279,  300,  298,  623,  300,  294,  301,
-      315,  293,  301,  314,  295,  301,  296,  311,  311,  316,
-
-      317,  318,  302,  298,  297,  302,  303,  288,  302,  303,
-      319,  298,  303,  300,  314,  320,  315,  329,  296,  314,
-      315,  301,  300,  321,  332,  316,  317,  318,  330,  316,
-      346,  300,  327,  327,  302,  347,  319,  329,  303,  348,
-      349,  320,  350,  317,  318,  303,  302,  327,  330,  321,
-      358,  346,  356,  356,  359,  360,  319,  332,  320,  361,
-      362,  667,  658,  525,  321,  347,  500,  363,  363,  348,
-      363,  364,  500,  363,  364,  358,  365,  364,  366,  365,
-      377,  366,  365,  525,  366,  350,  349,  367,  359,  360,
-      367,  378,  368,  367,  379,  368,  381,  364,  368,  363,
-
-      380,  382,  383,  364,  410,  385,  377,  362,  365,  361,
-      366,  365,  391,  366,  378,  393,  392,  378,  411,  367,
-      379,  384,  381,  395,  368,  391,  380,  382,  383,  394,
-      408,  385,  409,  412,  379,  383,  418,  419,  367,  420,
-      368,  381,  382,  421,  380,  385,  392,  384,  410,  393,
-      395,  411,  394,  408,  422,  545,  423,  450,  384,  423,
-      656,  424,  423,  418,  424,  425,  436,  424,  425,  545,
-      412,  425,  409,  426,  435,  437,  426,  448,  438,  426,
-      421,  419,  439,  427,  423,  450,  427,  420,  423,  427,
-      440,  441,  436,  424,  442,  422,  448,  425,  449,  436,
-
-      435,  437,  452,  435,  438,  426,  424,  464,  439,  463,
-      465,  426,  466,  437,  425,  427,  440,  441,  467,  473,
-      442,  449,  474,  439,  440,  427,  475,  476,  477,  479,
-      491,  575,  479,  501,  492,  479,  441,  452,  463,  478,
-      464,  653,  478,  516,  480,  478,  466,  480,  465,  490,
-      480,  481,  473,  575,  481,  493,  491,  481,  489,  474,
-      492,  479,  501,  467,  515,  476,  482,  479,  475,  482,
-      494,  478,  482,  478,  489,  490,  480,  477,  526,  492,
-      515,  493,  516,  481,  489,  546,  530,  480,  490,  530,
-      481,  531,  530,  540,  531,  552,  494,  531,  482,  532,
-
-      533,  542,  532,  533,  541,  532,  533,  530,  534,  546,
-      551,  534,  556,  555,  534,  566,  482,  540,  530,  540,
-      562,  526,  557,  531,  571,  557,  561,  542,  557,  552,
-      541,  532,  533,  558,  551,  531,  558,  572,  541,  558,
-      534,  555,  571,  576,  561,  585,  562,  582,  566,  585,
-      556,  557,  561,  577,  557,  578,  577,  581,  578,  577,
-      591,  578,  613,  562,  595,  558,  603,  616,  606,  613,
-      601,  581,  558,  582,  591,  597,  577,  608,  597,  603,
-      572,  597,  595,  581,  616,  577,  598,  578,  611,  598,
-      576,  606,  598,  601,  597,  609,  601,  626,  609,  618,
-
-      621,  609,  628,  578,  608,  611,  619,  597,  650,  619,
-      647,  645,  619,  631,  611,  636,  626,  644,  598,  621,
-      618,  638,  633,  609,  641,  628,  621,  609,  619,  629,
-      633,  631,  629,  636,  639,  629,  643,  639,  619,  631,
-      639,  646,  648,  638,  651,  642,  641,  640,  643,  649,
-      641,  637,  649,  629,  635,  649,  659,  639,  634,  659,
-      632,  629,  659,  646,  630,  627,  639,  625,  648,  624,
-      651,  622,  620,  617,  615,  614,  649,  612,  610,  607,
-      605,  649,  604,  602,  599,  596,  593,  592,  659,  662,
-      662,  662,  662,  662,  662,  662,  662,  662,  662,  662,
-
-      662,  663,  663,  663,  663,  663,  663,  663,  663,  663,
-      663,  663,  663,  664,  664,  664,  664,  664,  664,  664,
-      664,  664,  664,  664,  664,  665,  665,  665,  665,  665,
-      665,  665,  665,  665,  665,  665,  665,  666,  666,  666,
-      666,  666,  666,  666,  666,  666,  666,  666,  666,  668,
-      668,  668,  589,  668,  668,  668,  669,  669,  587,  669,
-      669,  670,  586,  670,  670,  670,  670,  670,  670,  670,
-      670,  670,  670,  671,  671,  671,  671,  671,  671,  671,
-      671,  671,  671,  671,  671,  672,  672,  672,  672,  672,
-      672,  672,  672,  672,  672,  672,  672,  673,  673,  583,
-
-      673,  673,  674,  674,  580,  674,  674,  674,  675,  675,
-      579,  675,  675,  676,  676,  676,  676,  676,  676,  676,
-      676,  676,  676,  676,  676,  677,  677,  677,  677,  677,
-      677,  677,  677,  677,  677,  677,  677,  678,  574,  678,
-      678,  678,  678,  678,  678,  678,  678,  678,  678,  679,
-      573,  570,  679,  679,  679,  679,  679,  679,  679,  679,
-      679,  680,  680,  680,  680,  680,  680,  680,  680,  680,
-      680,  680,  680,  681,  569,  568,  681,  681,  681,  681,
-      681,  681,  681,  681,  681,  682,  682,  567,  682,  682,
-      683,  683,  683,  564,  683,  683,  683,  684,  684,  563,
-
-      684,  687,  687,  560,  687,  687,  559,  554,  687,  689,
-      689,  553,  689,  689,  550,  549,  689,  690,  690,  548,
-      690,  690,  547,  544,  690,  543,  536,  535,  529,  528,
-      527,  521,  520,  519,  518,  517,  511,  510,  506,  505,
-      504,  503,  502,  496,  495,  488,  487,  485,  484,  483,
-      472,  471,  470,  469,  468,  462,  461,  460,  459,  458,
-      457,  456,  455,  454,  453,  447,  446,  445,  444,  443,
-      434,  433,  432,  430,  429,  428,  417,  416,  415,  414,
-      413,  407,  406,  405,  404,  403,  402,  401,  400,  399,
-      398,  397,  396,  390,  389,  388,  387,  386,  376,  375,
-
-      374,  373,  372,  371,  370,  369,  357,  355,  354,  353,
-      352,  351,  345,  344,  343,  342,  341,  340,  339,  338,
-      337,  336,  335,  334,  333,  326,  325,  324,  323,  322,
-      313,  312,  310,  309,  307,  306,  304,  299,  292,  287,
-      286,  283,  280,  276,  275,  274,  271,  270,  269,  266,
-      263,  258,  257,  254,  244,  238,  237,  236,  235,  234,
-      229,  212,  207,  201,  200,  199,  198,  195,  194,  193,
-      192,  190,  189,  188,  182,  181,  178,  177,  176,  173,
-      172,  171,  168,  163,  162,  161,  158,  153,  151,  150,
-      149,  140,  138,  129,  128,  127,  126,  124,  107,   94,
-
-       93,   92,   91,   90,   89,   88,   87,   80,   79,   78,
-       77,   76,   75,   72,   71,   70,   69,   68,   67,   66,
-       65,   63,   52,   48,   45,   44,   43,   42,   41,   31,
-       30,   29,   28,   25,   21,  661,  661,  661,  661,  661,
-      661,  661,  661,  661,  661,  661,  661,  661,  661,  661,
-      661,  661,  661,  661,  661,  661,  661,  661,  661,  661,
-      661,  661,  661,  661,  661,  661,  661,  661,  661,  661,
-      661,  661,  661,  661,  661,  661,  661,  661,  661,  661,
-      661,  661,  661,  661,  661,  661,  661,  661,  661,  661,
-      661,  661,  661
-
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,   15,   15,   15,   15,   15,   15,   17,   17,
+       17,  163,   17,  127,  127,   17,  127,   17,  824,  127,
+      152,  162,  164,   17,   17,   17,  129,  196,   17,  129,
+      187,  196,  129,  346,  129,  167,  130,  163,  131,  130,
+      186,  131,  130,   17,  131,  127,   17,  162,  164,  823,
+       17,  166,  130,  163,  131,  187,  162,   17,  129,  211,
+
+      164,  167,  237,  186,   17,   18,   18,   18,  130,   18,
+      131,  346,   18,  136,   18,  152,  136,  166,  167,  136,
+       18,   18,   18,  132,  188,   18,  132,  134,  133,  132,
+      134,  133,  132,  134,  133,  135,  135,  166,  135,  237,
+       18,  135,  211,   18,  133,  136,  188,   18,  165,  202,
+      188,  136,  207,  202,   18,  132,  208,  134,  209,  134,
+      133,   18,   19,   19,   19,   19,   19,  135,   19,   19,
+      137,   19,  207,  137,  165,  180,  137,   19,   19,   19,
+      165,  181,   19,  180,  165,  138,  221,  222,  138,  208,
+      180,  138,  139,  209,   19,  139,  181,   19,  139,  216,
+
+       19,  210,  137,  216,   19,  223,  221,  224,  225,  137,
+      238,   19,   20,   20,   20,   20,   20,  138,   20,   20,
+      222,   20,  236,  305,  139,  241,  241,   20,   20,   20,
+      138,  139,   20,  210,  230,  230,  181,  210,  822,  224,
+      223,  275,  230,  224,   20,  275,  236,   20,  300,  238,
+       20,  225,  246,  246,   20,  279,  279,  300,  341,  341,
+      305,   20,   21,   21,   21,   21,   21,   21,   21,   21,
+       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
+       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
+       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
+
+       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
+       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
+      231,  231,  239,  240,  243,  244,  248,  243,  244,  388,
+      243,  244,  245,  245,  249,  245,  490,  250,  245,  250,
+      251,  251,  278,  251,  252,  252,  251,  252,  253,  253,
+      252,  253,  254,  255,  253,  248,  243,  244,  239,  304,
+      256,  323,  239,  249,  245,  256,  388,  320,  250,  490,
+      240,  258,  251,  406,  258,  231,  252,  258,  254,  255,
+      253,  257,  259,  304,  257,  259,  320,  257,  259,  257,
+      260,  256,  261,  260,  406,  261,  260,  278,  261,  262,
+
+      323,  803,  262,  258,  263,  262,  265,  263,  277,  265,
+      263,  285,  265,  257,  259,  266,  283,  267,  266,  286,
+      267,  266,  260,  267,  261,  284,  258,  268,  303,  263,
+      268,  262,  321,  268,  277,  283,  263,  285,  265,  287,
+      288,  291,  283,  289,  265,  286,  290,  266,  298,  267,
+      301,  284,  307,  324,  267,  266,  335,  303,  267,  268,
+      286,  284,  307,  298,  313,  287,  288,  291,  321,  289,
+      325,  284,  290,  287,  313,  268,  301,  289,  321,  288,
+      299,  299,  290,  327,  337,  334,  301,  324,  291,  339,
+      338,  342,  335,  327,  343,  299,  340,  340,  345,  347,
+
+      366,  366,  335,  298,  334,  348,  349,  351,  348,  349,
+      351,  348,  349,  351,  342,  350,  350,  325,  350,  389,
+      794,  350,  353,  337,  338,  353,  354,  355,  353,  354,
+      355,  351,  354,  355,  343,  793,  339,  348,  349,  351,
+      356,  345,  357,  356,  343,  357,  356,  350,  357,  369,
+      347,  340,  359,  389,  353,  370,  371,  372,  354,  355,
+      390,  349,  359,  353,  373,  374,  375,  377,  409,  385,
+      369,  355,  356,  353,  357,  369,  376,  386,  387,  356,
+      385,  370,  371,  372,  407,  370,  371,  390,  384,  384,
+      373,  374,  375,  377,  357,  408,  410,  386,  387,  411,
+
+      421,  372,  376,  384,  377,  422,  424,  423,  373,  426,
+      375,  425,  374,  429,  407,  409,  430,  376,  427,  427,
+      431,  421,  432,  433,  434,  408,  435,  435,  437,  435,
+      467,  437,  435,  610,  437,  422,  411,  423,  429,  610,
+      410,  691,  436,  467,  451,  436,  426,  489,  436,  691,
+      430,  454,  469,  424,  431,  425,  438,  452,  435,  438,
+      437,  439,  438,  437,  439,  434,  440,  439,  436,  440,
+      451,  433,  440,  432,  436,  441,  453,  454,  441,  455,
+      452,  441,  456,  452,  458,  457,  459,  469,  438,  468,
+      488,  438,  489,  439,  460,  472,  454,  471,  440,  470,
+
+      491,  492,  453,  502,  487,  455,  503,  441,  456,  501,
+      458,  457,  459,  439,  504,  440,  453,  441,  457,  468,
+      460,  458,  470,  456,  471,  455,  459,  487,  505,  472,
+      488,  506,  501,  507,  508,  509,  510,  491,  460,  511,
+      512,  527,  777,  502,  542,  492,  628,  504,  755,  513,
+      514,  503,  513,  514,  777,  513,  514,  755,  515,  528,
+      507,  515,  628,  542,  515,  505,  516,  527,  517,  516,
+      527,  517,  516,  510,  517,  506,  529,  513,  508,  530,
+      511,  513,  514,  518,  509,  528,  518,  531,  512,  518,
+      515,  532,  528,  533,  534,  514,  535,  545,  516,  544,
+
+      517,  543,  529,  561,  516,  530,  546,  547,  515,  560,
+      517,  562,  563,  531,  529,  518,  564,  532,  565,  533,
+      534,  545,  535,  573,  543,  532,  572,  544,  531,  574,
+      535,  547,  518,  576,  575,  577,  561,  578,  560,  533,
+      579,  580,  546,  581,  582,  598,  563,  583,  584,  562,
+      597,  584,  565,  791,  584,  572,  573,  585,  586,  629,
+      585,  586,  564,  585,  586,  599,  597,  574,  575,  577,
+      578,  598,  587,  611,  647,  587,  597,  579,  587,  576,
+      584,  581,  584,  580,  598,  583,  600,  601,  602,  585,
+      586,  599,  603,  588,  582,  585,  588,  589,  629,  588,
+
+      589,  586,  611,  589,  587,  640,  641,  646,  788,  785,
+      669,  587,  600,  601,  602,  676,  652,  647,  603,  652,
+      653,  640,  652,  653,  669,  588,  653,  646,  654,  589,
+      664,  654,  600,  666,  654,  655,  589,  652,  655,  665,
+      656,  655,  670,  656,  588,  641,  656,  657,  652,  676,
+      657,  675,  653,  657,  664,  680,  664,  679,  681,  666,
+      654,  682,  688,  698,  653,  665,  670,  655,  683,  687,
+      692,  683,  656,  665,  683,  675,  697,  684,  701,  657,
+      684,  679,  702,  684,  704,  725,  681,  687,  688,  680,
+      703,  744,  710,  739,  697,  687,  701,  683,  744,  682,
+
+      683,  709,  705,  725,  692,  705,  688,  698,  705,  684,
+      719,  706,  703,  781,  706,  709,  684,  706,  710,  713,
+      739,  723,  731,  713,  719,  705,  702,  709,  736,  733,
+      727,  738,  704,  727,  705,  723,  727,  750,  728,  742,
+      747,  728,  733,  706,  728,  731,  749,  740,  731,  727,
+      740,  736,  753,  740,  738,  758,  742,  747,  750,  761,
+      706,  751,  727,  749,  751,  742,  760,  751,  764,  766,
+      728,  753,  769,  771,  758,  740,  772,  766,  753,  740,
+      775,  762,  761,  751,  762,  760,  764,  762,  780,  773,
+      769,  771,  773,  751,  764,  773,  782,  783,  772,  786,
+
+      779,  784,  775,  778,  784,  762,  775,  784,  795,  776,
+      780,  795,  773,  762,  795,  774,  770,  768,  782,  767,
+      765,  773,  763,  783,  759,  786,  757,  756,  784,  754,
+      752,  748,  746,  784,  745,  743,  741,  737,  735,  734,
+      795,  798,  798,  798,  798,  798,  798,  798,  798,  798,
+      798,  798,  798,  799,  799,  799,  799,  799,  799,  799,
+      799,  799,  799,  799,  799,  800,  800,  800,  800,  800,
+      800,  800,  800,  800,  800,  800,  800,  801,  801,  801,
+      801,  801,  801,  801,  801,  801,  801,  801,  801,  802,
+      802,  802,  802,  802,  802,  802,  802,  802,  802,  802,
+
+      802,  804,  804,  804,  732,  804,  804,  804,  805,  805,
+      729,  805,  805,  806,  726,  806,  806,  806,  806,  806,
+      806,  806,  806,  806,  806,  807,  807,  807,  807,  807,
+      807,  807,  807,  807,  807,  807,  807,  808,  808,  808,
+      808,  808,  808,  808,  808,  808,  808,  808,  808,  809,
+      809,  724,  809,  809,  810,  810,  721,  810,  810,  810,
+      811,  811,  720,  811,  811,  812,  812,  717,  812,  812,
+      812,  813,  813,  813,  813,  813,  813,  813,  813,  813,
+      813,  813,  813,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  815,  715,  815,  815,  815,
+
+      815,  815,  815,  815,  815,  815,  815,  816,  714,  711,
+      816,  816,  816,  816,  816,  816,  816,  816,  816,  817,
+      817,  817,  817,  817,  817,  817,  817,  817,  817,  817,
+      817,  818,  708,  707,  818,  818,  818,  818,  818,  818,
+      818,  818,  818,  819,  819,  700,  819,  819,  820,  820,
+      820,  699,  820,  820,  820,  821,  821,  696,  821,  825,
+      825,  695,  825,  825,  694,  693,  825,  827,  827,  690,
+      827,  827,  689,  686,  827,  829,  829,  685,  829,  829,
+      678,  677,  829,  830,  830,  674,  830,  830,  673,  672,
+      830,  831,  831,  671,  831,  831,  668,  667,  831,  659,
+
+      658,  651,  650,  649,  648,  645,  644,  643,  642,  635,
+      634,  633,  632,  631,  630,  623,  622,  617,  616,  615,
+      614,  613,  612,  605,  604,  596,  595,  594,  592,  591,
+      590,  571,  570,  569,  568,  567,  566,  559,  558,  557,
+      556,  555,  554,  553,  552,  551,  550,  549,  548,  541,
+      540,  539,  538,  537,  536,  526,  525,  524,  523,  521,
+      520,  519,  500,  499,  498,  497,  496,  495,  494,  493,
+      486,  485,  484,  483,  482,  481,  480,  479,  478,  477,
+      476,  475,  474,  473,  466,  465,  464,  463,  462,  461,
+      450,  449,  448,  447,  446,  445,  444,  443,  442,  428,
+
+      420,  419,  418,  417,  416,  415,  414,  413,  412,  405,
+      404,  403,  402,  401,  400,  399,  398,  397,  396,  395,
+      394,  393,  392,  391,  383,  382,  381,  380,  379,  378,
+      368,  367,  365,  364,  363,  361,  360,  358,  352,  344,
+      336,  332,  331,  330,  329,  326,  322,  318,  317,  316,
+      315,  312,  311,  310,  309,  306,  302,  297,  296,  295,
+      292,  281,  276,  274,  273,  272,  271,  270,  264,  247,
+      242,  235,  234,  233,  232,  229,  228,  227,  226,  220,
+      219,  217,  215,  214,  213,  206,  205,  203,  201,  200,
+      199,  197,  195,  194,  193,  190,  184,  183,  182,  179,
+
+      174,  173,  171,  170,  169,  159,  157,  148,  147,  146,
+      145,  144,  142,  124,  110,  109,  108,  107,  101,  100,
+       99,   98,   97,   96,   95,   87,   86,   85,   84,   83,
+       82,   81,   78,   77,   76,   75,   74,   73,   72,   71,
+       70,   68,   56,   52,   49,   48,   47,   46,   45,   44,
+       33,   32,   31,   30,   27,   23,  797,  797,  797,  797,
+      797,  797,  797,  797,  797,  797,  797,  797,  797,  797,
+      797,  797,  797,  797,  797,  797,  797,  797,  797,  797,
+      797,  797,  797,  797,  797,  797,  797,  797,  797,  797,
+      797,  797,  797,  797,  797,  797,  797,  797,  797,  797,
+
+      797,  797,  797,  797,  797,  797,  797,  797,  797,  797,
+      797,  797,  797,  797,  797
     } ;
 
 /* Table of booleans, true if rule could match eol. */
-static yyconst flex_int32_t yy_rule_can_match_eol[44] =
+static yyconst flex_int32_t yy_rule_can_match_eol[46] =
     {   0,
 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1
-    1, 1, 0, 0,     };
+    0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0
+    1, 1, 1, 1, 0, 0,     };
 
 /* The intent behind this definition is that it'll catch
  * any uses of REJECT which flex missed.
@@ -1192,7 +1311,8 @@ static const char* fixup_escapes (const char* sz);
 
 
 
-#line 1196 "<stdout>"
+
+#line 1316 "<stdout>"
 
 #define INITIAL 0
 #define S_DEF 1
@@ -1201,9 +1321,10 @@ static const char* fixup_escapes (const char* sz);
 #define S_FUNC 4
 #define S_INCLUDE 5
 #define S_INHERIT 6
-#define S_PROC 7
-#define S_RVALUE 8
-#define S_TASK 9
+#define S_REQUIRE 7
+#define S_PROC 8
+#define S_RVALUE 9
+#define S_TASK 10
 
 /* Special case for "unistd.h", since it is non-ANSI. We include it way
  * down here because we want the user's section 1 to have been scanned first.
@@ -1420,10 +1541,10 @@ YY_DECL
        register int yy_act;
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 
-#line 157 "bitbakescanner.l"
+#line 159 "bitbakescanner.l"
 
 
-#line 1427 "<stdout>"
+#line 1548 "<stdout>"
 
        if ( yyg->yy_init )
                {
@@ -1476,13 +1597,13 @@ yy_match:
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                                {
                                yy_current_state = (int) yy_def[yy_current_state];
-                               if ( yy_current_state >= 662 )
+                               if ( yy_current_state >= 798 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_current_state != 661 );
+               while ( yy_current_state != 797 );
                yy_cp = yyg->yy_last_accepting_cpos;
                yy_current_state = yyg->yy_last_accepting_state;
 
@@ -1516,44 +1637,44 @@ do_action:      /* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 159 "bitbakescanner.l"
+#line 161 "bitbakescanner.l"
 { BEGIN S_RVALUE;
                                   yyextra->accept (T_OP_APPEND); }
        YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 161 "bitbakescanner.l"
+#line 163 "bitbakescanner.l"
 { BEGIN S_RVALUE;
                                   yyextra->accept (T_OP_PREPEND); }
        YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 163 "bitbakescanner.l"
+#line 165 "bitbakescanner.l"
 { BEGIN S_RVALUE;
                                   yyextra->accept (T_OP_IMMEDIATE); }
        YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 165 "bitbakescanner.l"
+#line 167 "bitbakescanner.l"
 { BEGIN S_RVALUE;
                                   yyextra->accept (T_OP_ASSIGN); }
        YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 167 "bitbakescanner.l"
+#line 169 "bitbakescanner.l"
 { BEGIN S_RVALUE;
                                   yyextra->accept (T_OP_COND); }
        YY_BREAK
 case 6:
 /* rule 6 can match eol */
 YY_RULE_SETUP
-#line 170 "bitbakescanner.l"
+#line 172 "bitbakescanner.l"
 {  }
        YY_BREAK
 case 7:
 /* rule 7 can match eol */
 YY_RULE_SETUP
-#line 171 "bitbakescanner.l"
+#line 173 "bitbakescanner.l"
 { BEGIN INITIAL;
                                   size_t cb = yyleng;
                                   while (cb && isspace (yytext[cb - 1]))
@@ -1564,7 +1685,7 @@ YY_RULE_SETUP
 case 8:
 /* rule 8 can match eol */
 YY_RULE_SETUP
-#line 177 "bitbakescanner.l"
+#line 179 "bitbakescanner.l"
 { BEGIN INITIAL;
                                   size_t cb = yyleng;
                                   while (cb && isspace (yytext[cb - 1]))
@@ -1575,193 +1696,205 @@ YY_RULE_SETUP
 case 9:
 /* rule 9 can match eol */
 YY_RULE_SETUP
-#line 184 "bitbakescanner.l"
+#line 186 "bitbakescanner.l"
 { ERROR (errorUnexpectedInput);  }
        YY_BREAK
 case 10:
 /* rule 10 can match eol */
 YY_RULE_SETUP
-#line 185 "bitbakescanner.l"
+#line 187 "bitbakescanner.l"
 { BEGIN INITIAL;
                                   yyextra->accept (T_STRING, NULL); }
        YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 188 "bitbakescanner.l"
+#line 190 "bitbakescanner.l"
 { BEGIN S_INCLUDE;
                                   yyextra->accept (T_INCLUDE); }
        YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 190 "bitbakescanner.l"
+#line 192 "bitbakescanner.l"
+{ BEGIN S_REQUIRE;
+                                  yyextra->accept (T_REQUIRE); }
+       YY_BREAK
+case 13:
+YY_RULE_SETUP
+#line 194 "bitbakescanner.l"
 { BEGIN S_INHERIT;
                                   yyextra->accept (T_INHERIT); }
        YY_BREAK
-case 13:
+case 14:
 YY_RULE_SETUP
-#line 192 "bitbakescanner.l"
+#line 196 "bitbakescanner.l"
 { BEGIN S_TASK;
                                   yyextra->accept (T_ADDTASK); }
        YY_BREAK
-case 14:
+case 15:
 YY_RULE_SETUP
-#line 194 "bitbakescanner.l"
+#line 198 "bitbakescanner.l"
 { yyextra->accept (T_ADDHANDLER); }
        YY_BREAK
-case 15:
+case 16:
 YY_RULE_SETUP
-#line 195 "bitbakescanner.l"
+#line 199 "bitbakescanner.l"
 { BEGIN S_FUNC;
                                   yyextra->accept (T_EXPORT_FUNC); }
        YY_BREAK
-case 16:
+case 17:
 YY_RULE_SETUP
-#line 197 "bitbakescanner.l"
+#line 201 "bitbakescanner.l"
 { yyextra->accept (T_BEFORE); }
        YY_BREAK
-case 17:
+case 18:
 YY_RULE_SETUP
-#line 198 "bitbakescanner.l"
+#line 202 "bitbakescanner.l"
 { yyextra->accept (T_AFTER); }
        YY_BREAK
-case 18:
+case 19:
 YY_RULE_SETUP
-#line 199 "bitbakescanner.l"
+#line 203 "bitbakescanner.l"
 { yyextra->accept (T_EXPORT); }
        YY_BREAK
-case 19:
+case 20:
 YY_RULE_SETUP
-#line 201 "bitbakescanner.l"
+#line 205 "bitbakescanner.l"
 { yyextra->accept (T_FAKEROOT); }
        YY_BREAK
-case 20:
+case 21:
 YY_RULE_SETUP
-#line 202 "bitbakescanner.l"
+#line 206 "bitbakescanner.l"
 { yyextra->accept (T_PYTHON); }
        YY_BREAK
-case 21:
-/* rule 21 can match eol */
+case 22:
+/* rule 22 can match eol */
 YY_RULE_SETUP
-#line 203 "bitbakescanner.l"
+#line 207 "bitbakescanner.l"
 { BEGIN S_PROC;
                                   yyextra->accept (T_PROC_OPEN); }
        YY_BREAK
-case 22:
-/* rule 22 can match eol */
+case 23:
+/* rule 23 can match eol */
 YY_RULE_SETUP
-#line 205 "bitbakescanner.l"
+#line 209 "bitbakescanner.l"
 { BEGIN INITIAL;
                                   yyextra->accept (T_PROC_CLOSE); }
        YY_BREAK
-case 23:
-/* rule 23 can match eol */
+case 24:
+/* rule 24 can match eol */
 YY_RULE_SETUP
-#line 207 "bitbakescanner.l"
+#line 211 "bitbakescanner.l"
 { yyextra->accept (T_PROC_BODY, yytext); }
        YY_BREAK
-case 24:
+case 25:
 YY_RULE_SETUP
-#line 209 "bitbakescanner.l"
+#line 213 "bitbakescanner.l"
 { BEGIN S_DEF; }
        YY_BREAK
-case 25:
+case 26:
 YY_RULE_SETUP
-#line 210 "bitbakescanner.l"
+#line 214 "bitbakescanner.l"
 { BEGIN S_DEF_ARGS;
                                   yyextra->accept (T_SYMBOL, yytext); }
        YY_BREAK
-case 26:
-YY_RULE_SETUP
-#line 212 "bitbakescanner.l"
-{ yyextra->accept (T_DEF_ARGS, yytext); }
-       YY_BREAK
 case 27:
-/* rule 27 can match eol */
 YY_RULE_SETUP
-#line 213 "bitbakescanner.l"
-{ BEGIN S_DEF_BODY; }
+#line 216 "bitbakescanner.l"
+{ yyextra->accept (T_DEF_ARGS, yytext); }
        YY_BREAK
 case 28:
 /* rule 28 can match eol */
 YY_RULE_SETUP
-#line 214 "bitbakescanner.l"
-{ yyextra->accept (T_DEF_BODY, yytext); }
+#line 217 "bitbakescanner.l"
+{ BEGIN S_DEF_BODY; }
        YY_BREAK
 case 29:
 /* rule 29 can match eol */
 YY_RULE_SETUP
-#line 215 "bitbakescanner.l"
+#line 218 "bitbakescanner.l"
 { yyextra->accept (T_DEF_BODY, yytext); }
        YY_BREAK
 case 30:
+/* rule 30 can match eol */
 YY_RULE_SETUP
-#line 216 "bitbakescanner.l"
-{ BEGIN INITIAL; unput (yytext[0]); }
+#line 219 "bitbakescanner.l"
+{ yyextra->accept (T_DEF_BODY, yytext); }
        YY_BREAK
 case 31:
-/* rule 31 can match eol */
 YY_RULE_SETUP
-#line 218 "bitbakescanner.l"
-{ }
+#line 220 "bitbakescanner.l"
+{ BEGIN INITIAL; unput (yytext[0]); }
        YY_BREAK
 case 32:
+/* rule 32 can match eol */
 YY_RULE_SETUP
-#line 220 "bitbakescanner.l"
-{ yyextra->accept (T_SYMBOL, yytext); }
+#line 222 "bitbakescanner.l"
+{ }
        YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 221 "bitbakescanner.l"
-{ yyextra->accept (T_VARIABLE, yytext); }
+#line 224 "bitbakescanner.l"
+{ yyextra->accept (T_SYMBOL, yytext); }
        YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 223 "bitbakescanner.l"
-{ yyextra->accept (T_TSYMBOL, yytext); }
+#line 225 "bitbakescanner.l"
+{ yyextra->accept (T_VARIABLE, yytext); }
        YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 224 "bitbakescanner.l"
-{ yyextra->accept (T_FSYMBOL, yytext); }
+#line 227 "bitbakescanner.l"
+{ yyextra->accept (T_TSYMBOL, yytext); }
        YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 225 "bitbakescanner.l"
-{ yyextra->accept (T_ISYMBOL, yytext); }
+#line 228 "bitbakescanner.l"
+{ yyextra->accept (T_FSYMBOL, yytext); }
        YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 226 "bitbakescanner.l"
-{ BEGIN INITIAL;
-                                  yyextra->accept (T_ISYMBOL, yytext); }
+#line 229 "bitbakescanner.l"
+{ yyextra->accept (T_ISYMBOL, yytext); }
        YY_BREAK
 case 38:
-/* rule 38 can match eol */
 YY_RULE_SETUP
-#line 229 "bitbakescanner.l"
-{ BEGIN INITIAL; }
+#line 230 "bitbakescanner.l"
+{ BEGIN INITIAL;
+                                  yyextra->accept (T_ISYMBOL, yytext); }
        YY_BREAK
 case 39:
-/* rule 39 can match eol */
 YY_RULE_SETUP
-#line 230 "bitbakescanner.l"
-{ BEGIN INITIAL; }
+#line 232 "bitbakescanner.l"
+{ BEGIN INITIAL;
+                                  yyextra->accept (T_ISYMBOL, yytext); }
        YY_BREAK
 case 40:
 /* rule 40 can match eol */
 YY_RULE_SETUP
-#line 231 "bitbakescanner.l"
+#line 234 "bitbakescanner.l"
 { BEGIN INITIAL; }
        YY_BREAK
 case 41:
 /* rule 41 can match eol */
 YY_RULE_SETUP
-#line 233 "bitbakescanner.l"
-/* Insignificant whitespace */
+#line 235 "bitbakescanner.l"
+{ BEGIN INITIAL; }
        YY_BREAK
 case 42:
+/* rule 42 can match eol */
 YY_RULE_SETUP
-#line 235 "bitbakescanner.l"
+#line 236 "bitbakescanner.l"
+{ BEGIN INITIAL; }
+       YY_BREAK
+case 43:
+/* rule 43 can match eol */
+YY_RULE_SETUP
+#line 238 "bitbakescanner.l"
+/* Insignificant whitespace */
+       YY_BREAK
+case 44:
+YY_RULE_SETUP
+#line 240 "bitbakescanner.l"
 { ERROR (errorUnexpectedInput); }
        YY_BREAK
 /* Check for premature termination */
@@ -1772,18 +1905,19 @@ case YY_STATE_EOF(S_DEF_BODY):
 case YY_STATE_EOF(S_FUNC):
 case YY_STATE_EOF(S_INCLUDE):
 case YY_STATE_EOF(S_INHERIT):
+case YY_STATE_EOF(S_REQUIRE):
 case YY_STATE_EOF(S_PROC):
 case YY_STATE_EOF(S_RVALUE):
 case YY_STATE_EOF(S_TASK):
-#line 238 "bitbakescanner.l"
+#line 243 "bitbakescanner.l"
 { return T_EOF; }
        YY_BREAK
-case 43:
+case 45:
 YY_RULE_SETUP
-#line 240 "bitbakescanner.l"
+#line 245 "bitbakescanner.l"
 ECHO;
        YY_BREAK
-#line 1787 "<stdout>"
+#line 1921 "<stdout>"
 
        case YY_END_OF_BUFFER:
                {
@@ -2068,7 +2202,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 662 )
+                       if ( yy_current_state >= 798 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2097,11 +2231,11 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                {
                yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 662 )
+               if ( yy_current_state >= 798 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-       yy_is_jam = (yy_current_state == 661);
+       yy_is_jam = (yy_current_state == 797);
 
        return yy_is_jam ? 0 : yy_current_state;
 }
@@ -2943,7 +3077,7 @@ void yyfree (void * ptr , yyscan_t yyscanner)
 #undef YY_DECL_IS_OURS
 #undef YY_DECL
 #endif
-#line 240 "bitbakescanner.l"
+#line 245 "bitbakescanner.l"
 
 
 
index 3ef077e..3eec484 100644 (file)
@@ -125,6 +125,7 @@ K_AFTER         "after"
 K_BEFORE        "before"
 K_DEF           "def"
 K_INCLUDE       "include"
+K_REQUIRE       "require"
 K_INHERIT       "inherit"
 K_PYTHON        "python"
 K_FAKEROOT      "fakeroot"
@@ -150,6 +151,7 @@ PROC            \({C_SP}*\)
 %s S_FUNC
 %s S_INCLUDE
 %s S_INHERIT
+%s S_REQUIRE
 %s S_PROC
 %s S_RVALUE
 %s S_TASK
@@ -187,6 +189,8 @@ PROC            \({C_SP}*\)
 
 {K_INCLUDE}                     { BEGIN S_INCLUDE;
                                   yyextra->accept (T_INCLUDE); }
+{K_REQUIRE}                     { BEGIN S_REQUIRE;
+                                  yyextra->accept (T_REQUIRE); }
 {K_INHERIT}                     { BEGIN S_INHERIT;
                                   yyextra->accept (T_INHERIT); }
 {K_ADDTASK}                     { BEGIN S_TASK;
@@ -225,7 +229,8 @@ PROC            \({C_SP}*\)
 <S_INHERIT>{SYMBOL}             { yyextra->accept (T_ISYMBOL, yytext); }
 <S_INCLUDE>{FILENAME}           { BEGIN INITIAL;
                                   yyextra->accept (T_ISYMBOL, yytext); }
-
+<S_REQUIRE>{FILENAME}           { BEGIN INITIAL;
+                                  yyextra->accept (T_ISYMBOL, yytext); }
 <S_TASK>\n                      { BEGIN INITIAL; }
 <S_FUNC>\n                      { BEGIN INITIAL; }
 <S_INHERIT>\n                   { BEGIN INITIAL; }