WebCore/generated/tokenizer.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 04 Oct 2010 01:32:07 +0300
changeset 2 303757a437d3
parent 0 4f2f89ce4247
permissions -rw-r--r--
Revision: 201037 Kit: 201039

/*
 * Copyright (C) 2003 Lars Knoll (knoll@kde.org)
 *
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public License
 * along with this library; see the file COPYING.LIB.  If not, write to
 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 * Boston, MA 02110-1301, USA.
 */

/* This file is mostly data generated by flex. Unfortunately flex
   can't handle 16bit strings directly, so we just copy the part of
   the code we need and modify it to our needs.

   Most of the defines below are to make sure we can easily use the
   flex generated code, using as little editing as possible.

   The flex syntax to generate the lexer are more or less directly
   copied from the CSS2.1 specs, with some fixes for comments and
   the important symbol.

   To regenerate, run flex on tokenizer.flex. After this, copy the
   data tables and the YY_DECL method over to this file. Remove the
   init code from YY_DECL and change the YY_END_OF_BUFFER to only call
   yyterminate().

*/

// --------- begin generated code -------------------


#include "CSSGrammar.h"

#define INITIAL 0
#define mediaquery 1
#define forkeyword 2

/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */

#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
#include <inttypes.h>
typedef int8_t flex_int8_t;
typedef uint8_t flex_uint8_t;
typedef int16_t flex_int16_t;
typedef uint16_t flex_uint16_t;
typedef int32_t flex_int32_t;
typedef uint32_t flex_uint32_t;
#else
typedef signed char flex_int8_t;
typedef short int flex_int16_t;
typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
#endif /* ! C99 */
#define YY_NUM_RULES 85
#define YY_END_OF_BUFFER 86
/* This struct is not used in this scanner,
   but its presence is necessary. */
struct yy_trans_info
	{
	flex_int32_t yy_verify;
	flex_int32_t yy_nxt;
	};
static yyconst flex_int16_t yy_accept[592] =
    {   0,
        0,    0,    0,    0,    0,    0,   86,   84,    2,    2,
       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
       73,   84,   84,   15,   15,   15,   84,   84,   84,   84,
       83,   15,   15,   15,   82,   15,    2,    0,    0,    0,
       14,    0,    0,    0,   18,   18,    0,    8,    0,    0,
        9,    0,   16,    0,   15,   15,   15,    0,   74,    0,
       72,    0,    0,   73,   71,   71,   71,   71,   71,   71,
       71,   71,   71,   16,   71,   71,   68,   71,    0,   71,
        0,    0,   51,   51,   51,   51,   51,   51,   51,   51,
       51,   51,   51,    0,   79,   15,    0,    0,   15,   15,

        0,   15,   15,   15,    7,    6,    5,   15,   15,   15,
       15,    0,    0,    0,   14,    0,    0,    0,   18,   18,
        0,   18,   18,    0,    0,   14,    0,    0,    4,   15,
        0,    0,   71,    0,   58,   71,   53,   56,   71,   69,
       60,   71,   59,   67,   71,   62,   61,   57,   71,   71,
       71,   71,   71,   71,    0,   51,   51,    0,   51,   51,
       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
       15,   15,   16,   15,   15,   80,   80,   15,   15,   12,
       10,   15,   13,    0,    0,    0,   17,   17,   18,   18,
       18,    0,    0,   15,    0,    1,   71,   71,   63,   71,

       70,   16,   64,   54,   71,   71,   71,    3,   51,   51,
       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
       51,   51,   15,   75,    0,   80,   80,   80,   79,   15,
       11,    0,    0,    0,   18,   18,   18,    0,   15,    0,
        0,   71,   65,   66,   71,   71,   51,   51,   51,   51,
       51,   51,   51,   51,   51,   20,   51,   51,   51,   15,
       81,   80,   80,   80,   80,    0,    0,    0,    0,   77,
        0,   15,    0,    0,    0,   18,   18,   18,    0,   15,
       71,   71,   55,   51,   51,   51,   51,   51,   51,   51,
       37,   51,   51,   51,   51,   51,   51,   15,   81,   80,

       80,   80,   80,   80,    0,    0,    0,    0,    0,    0,
        0,    0,    0,   77,    0,    0,   15,    0,    0,   17,
       17,   18,   18,    0,   15,   71,   71,   51,   51,   51,
       51,   51,   19,   51,   51,   51,   51,   51,   51,   51,
       51,   51,   15,   81,   80,   80,   80,   80,   80,   80,
        0,   76,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,   15,    0,    0,   18,   18,    0,   15,
       71,   71,   51,   51,   51,   39,   51,   51,   51,   51,
       51,   51,   51,   51,   51,   51,   51,   51,   15,   81,
       80,   80,   80,   80,   80,   80,   80,    0,   76,    0,

        0,    0,   76,    0,    0,    0,    0,   18,   15,   71,
       51,   51,   51,   51,   51,   51,   51,   51,   31,   51,
       51,   51,   51,   51,   22,   51,   81,    0,    0,    0,
       52,   15,   51,   51,   51,   51,   51,   51,   51,   51,
       51,   38,   51,   51,   40,   51,   51,   34,   51,   51,
       24,   81,    0,    0,    0,   15,   51,   51,   51,   51,
       51,   51,   51,   51,   51,   51,   51,   51,   51,   23,
       51,   51,    0,    0,    0,   79,   51,   51,   51,   51,
       51,   51,   51,   51,   51,   27,   51,   33,   32,   51,
       51,   51,   51,    0,    0,    0,    0,    0,    0,   51,

       51,   51,   51,   41,   51,   51,   51,   51,   51,   29,
       36,   35,   51,   51,    0,   78,    0,    0,    0,    0,
       42,   51,   51,   51,   51,   43,   51,   28,   51,   51,
       51,   51,    0,    0,    0,    0,   47,   51,   51,   51,
       51,   51,   51,   51,   51,    0,    0,    0,   51,   51,
       51,   51,   51,   51,   21,   51,    0,    0,   51,   51,
       45,   51,   51,   51,   25,    0,    0,   51,   49,   51,
       46,   51,   51,    0,    0,   51,   44,   51,   26,   51,
        0,   51,   51,   30,   51,   51,   50,   51,   51,   48,
        0

    } ;

static yyconst flex_int32_t yy_ec[256] =
    {   0,
        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
        1,    4,    5,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    6,    7,    8,    9,   10,   11,   12,   13,   14,
       15,   16,   17,   12,   18,   19,   20,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   12,   22,   23,
       24,   25,   26,   27,   28,   29,   30,   31,   32,   33,
       34,   35,   36,   37,   38,   39,   40,   41,   42,   43,
       44,   45,   46,   47,   48,   49,   50,   51,   52,   53,
       12,   54,   12,   55,   56,   12,   57,   58,   59,   60,

       61,   62,   63,   64,   65,   37,   66,   67,   68,   69,
       70,   71,   72,   73,   74,   75,   76,   77,   78,   79,
       80,   81,   82,   83,   12,   84,    1,   85,   85,   85,
       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,

       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
       85,   85,   85,   85,   85
    } ;

static yyconst flex_int32_t yy_meta[86] =
    {   0,
        1,    2,    3,    4,    4,    5,    6,    7,    6,    6,
        6,    6,    7,    8,    9,    6,    6,   10,    6,    6,
       11,    6,    6,    6,    6,   12,    6,   13,   13,   13,
       13,   13,   13,   14,   14,   14,   14,   14,   14,   14,
       14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
       14,   14,   14,   14,    6,   14,   13,   13,   13,   13,
       13,   13,   14,   14,   14,   14,   14,   14,   14,   14,
       14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
       14,    6,    6,    6,   14
    } ;

static yyconst flex_int16_t yy_base[661] =
    {   0,
        0,    0,   64,   66,   54,   56, 1734, 6635,   93,   98,
      107,   83,  155, 1709,   77, 1666,   98,   99, 1666, 1670,
      207, 1677,  275,  100,  108,  146,  340, 1657, 1655, 1654,
     6635,  101,  110,  151, 6635,  127,  227,  294,   89,  136,
     6635,  401,  140,    0,  443, 1623,  485, 6635,  117,  546,
     6635,  138,  157, 1649,  142,  360,  362,  588,  343, 1656,
     1635, 1576, 1601,    0, 1558,  325,  150,  356,   93,  304,
      152,  328,  371,  372,  390,  424, 1532,  147,  630,  154,
     1565,  675, 1528,  373,  384,  400,  327,  386,  396,  170,
      423,  430,  437,  733, 6635,  208,  775, 1558,  432,  478,

     1552,  454,  468,  836, 6635, 6635, 6635,  480,  482,  485,
      509,  337,  527,  367,  479,  897,  958,    0, 1506, 1000,
     1042, 1494, 1103,  477,  506,  507, 1164, 1225, 6635,  512,
     1523,  183, 1473, 1267, 1472,  530, 1465, 1464,  534, 1446,
     1433,  474, 1422, 1403,  517, 1388, 1372, 1362,  538,  518,
      540, 1358, 1328,  529, 1366,  536, 1323, 1370,  548,  568,
      558,  572,  577,  580,  574,  590,  601,  598, 1320, 1431,
      575, 1492, 1344,  616,  618,  276, 1325,  619, 1534,  622,
      624,  643,  640,  495,  648, 1595,    0, 1637, 1285, 1698,
     1759,  672, 1820,  663, 1322, 6635, 1281, 1881, 1267,  649,

     1266,  644, 1260, 1240,  627, 1923,  652, 6635,  670, 1223,
     1984,  632,  665,  685,  703,  702,  676,  715,  720,  716,
      682, 2026, 2087, 6635,    0,  365, 1250, 1224,  807, 2129,
      713,  686, 2190,    0, 2232, 2293, 2354, 2415,  764, 1231,
      275, 2476, 1182, 1160, 2518,  718,  717, 2579,  747,  770,
      767,  774,  769,  797,  799, 1118,  801,  877, 2621, 2682,
        0,  648, 1062, 1043, 1023,  968,  990,  760,  789, 6635,
     2743, 2785,  751, 2846,    0, 2888, 2949, 3010, 3071, 3132,
     3206, 3248, 3309,  795, 3370,  816,  798,  825,  831, 1083,
      989,  820,  828,  854,  856,  878, 3412, 3473,    0,  854,

      984,  976,  951,  938, 1021,  867, 1035, 3534,  858, 3595,
     1062, 1144, 1185, 1205, 3656, 3717, 3759,  455, 3820, 6635,
      894, 3881, 3942, 4003, 4064, 4125, 4186,  866, 4247,  865,
      892,  881,  891,  895,  888,  898,  947, 1308,  928,  945,
      946, 4289, 4350,    0,  863,  908,  878,  836,  771,  762,
     1076, 6635,  869, 1039, 1258, 4411, 4472,  879, 1032, 1265,
     4533, 4594, 4655, 1092,  758, 1178, 4697, 4739, 1238, 1034,
     4781, 4842,  893, 4903, 1411,  725,  954, 1001, 1059, 1071,
     1085, 1075, 1180, 1084, 1124, 1158, 1237, 1300, 1305,    0,
      757, 6635, 6635, 6635, 6635, 6635, 6635, 1338, 1119, 1149,

     4945, 1365, 1262, 1360, 4987, 5048,  959, 1391, 1028, 1402,
     5080, 1418, 1220, 1261, 1183, 1318, 1363, 1321,  681, 1386,
     1392, 1394, 1293, 1412, 1033, 1404,    0, 5137, 5179, 5221,
     6635, 1272, 1421, 1445, 1448, 1395, 1449,  957, 1414, 1453,
     1474,  667, 1086, 1462,  629, 1457, 1481,  628, 1460, 1259,
     1035, 6635, 5263, 5305, 5347,  653, 1514, 1122, 1486, 1491,
     1503, 1535, 1484, 1530, 1521, 1550, 1556, 1565, 1567,  533,
     1578, 1415, 5389, 5431, 1635, 1657, 1575, 1507, 1582, 1628,
     1619, 1651, 1533, 1652, 1653, 1066, 1661,  526,  502, 1669,
     1659, 1671, 1668, 1743, 1773, 1840, 1913, 1800, 5473, 1678,

     1699, 1696, 1064,  444, 1617, 1739, 1147, 1728, 1713, 1125,
      435,  434, 1729, 1740, 1832, 6635, 1893, 5515, 1918, 5576,
      413, 1778, 1664, 1816, 1814,  382, 1177,  359, 1742, 1810,
     1839, 1821, 1955, 5637, 1995, 5679,  333, 1741, 1853, 1892,
     1837, 1891, 1895, 1921, 1871, 2016, 5721, 5763, 1874, 1941,
     1923, 1971, 1909, 1979,  312, 1994, 5805, 5847, 2020, 2006,
      247, 2007, 1974, 1938,  180, 5889, 5931, 2023,  148, 1776,
     1195, 2024, 1976, 5973, 2097, 1986,  135, 2044,   97, 2060,
     2119, 1937, 2074,   91, 2075, 2083,   78, 2072, 2109,   39,
     6635, 6034, 6039, 6052, 6057, 6064, 6074, 6087,  375, 6092,

     6102, 6115, 6129,  276, 6134, 6144, 6149, 6159, 6169, 6173,
      771, 6182, 6195, 6208, 6222, 6236, 6246, 6256, 6261, 1142,
     6274, 1204, 6279, 6291, 6304, 1398, 6318, 1402, 6323, 6335,
     6348, 6361, 6374, 6387, 1523, 6392, 6405, 1558, 6410, 6422,
     6435, 6448, 6461, 6474, 6487, 6492, 6505, 1600, 6510, 6522,
     6535, 6548, 6561, 6574, 1620, 1632, 6587, 6600, 6610, 6620
    } ;

static yyconst flex_int16_t yy_def[661] =
    {   0,
      591,    1,    1,    1,    1,    1,  591,  591,  591,  591,
      591,  592,  593,  591,  594,  591,  591,  595,  591,  591,
      591,  591,  591,  596,  596,  596,  597,  591,  591,  591,
      591,  596,  596,  596,  591,  596,  591,  591,  591,  592,
      591,  598,  593,  599,  600,  600,  601,  591,  594,  602,
      591,  591,  591,  591,  596,  596,  596,  597,   21,  603,
      591,  604,  591,   21,  605,  605,  605,  605,  605,  605,
      605,  605,  605,  605,  605,  605,  605,  605,  606,  605,
      591,   23,  607,  607,  607,  607,  607,  607,  607,  607,
      607,  607,  607,  608,  591,  596,  609,  591,  596,  596,

      610,  596,  596,  596,  591,  591,  591,  596,  596,  596,
      596,  591,  592,  592,  592,  592,  598,  611,  600,  600,
      612,  600,  120,  613,  613,  613,  613,  614,  591,  596,
      615,  616,  605,  617,  605,  605,  605,  605,  605,  605,
      605,  605,  605,  605,  605,  605,  605,  605,  605,  605,
      605,  605,  605,  605,  591,  607,  607,  618,  607,  607,
      607,  607,  607,  607,  607,  607,  607,  607,  607,  607,
      596,  104,  591,  596,  596,  619,  591,  596,  104,  596,
      596,  596,  596,  591,  592,  592,  620,  120,  600,  120,
      120,  613,  613,  596,  621,  591,  605,  153,  605,  605,

      605,  605,  605,  605,  605,  153,  605,  591,  607,  607,
      170,  607,  607,  607,  607,  607,  607,  607,  607,  607,
      607,  170,  104,  591,  622,  623,  591,  591,  624,  104,
      596,  591,  625,  626,  120,  120,  120,  613,  596,  621,
      627,  153,  605,  605,  153,  605,  607,  170,  607,  607,
      607,  607,  607,  607,  607,  607,  607,  607,  170,  104,
      628,  629,  591,  591,  591,  630,  630,  631,  632,  591,
      633,  104,  591,  634,  635,  636,  636,  277,  637,  104,
      153,  153,  153,  607,  170,  607,  607,  607,  607,  607,
      607,  607,  607,  607,  607,  607,  170,  104,  638,  639,

      591,  591,  591,  591,  591,  631,  591,  640,  641,  642,
      643,  643,  643,  643,  643,  644,  104,  591,  645,  591,
      646,  646,  322,  647,  104,  153,  326,  607,  170,  607,
      607,  607,  607,  607,  607,  607,  607,  607,  607,  607,
      607,  170,  104,  648,  649,  591,  591,  591,  591,  591,
      591,  591,  650,  650,  650,  650,  651,  652,  652,  652,
      652,  653,  654,  325,  591,  645,  322,  323,  647,  325,
      326,  326,  607,  170,  607,  607,  607,  607,  607,  607,
      607,  607,  607,  607,  607,  607,  607,  607,  325,  655,
      591,  591,  591,  591,  591,  591,  591,  650,  650,  650,

      356,  652,  652,  652,  361,  654,  591,  368,  325,  372,
      607,  607,  607,  607,  607,  607,  607,  607,  607,  607,
      607,  607,  607,  607,  607,  607,  656,  356,  361,  406,
      591,  325,  607,  607,  607,  607,  607,  607,  607,  607,
      607,  607,  607,  607,  607,  607,  607,  607,  607,  607,
      607,  591,  356,  361,  406,  325,  607,  607,  607,  607,
      607,  607,  607,  607,  607,  607,  607,  607,  607,  607,
      607,  607,  356,  361,  654,  657,  607,  607,  607,  607,
      607,  607,  607,  607,  607,  607,  607,  607,  607,  607,
      607,  607,  607,  650,  652,  657,  657,  658,  659,  607,

      607,  607,  607,  607,  607,  607,  607,  607,  607,  607,
      607,  607,  607,  607,  591,  591,  658,  660,  658,  658,
      607,  607,  607,  607,  607,  607,  607,  607,  607,  607,
      607,  607,  658,  520,  658,  520,  607,  607,  607,  607,
      607,  607,  607,  607,  607,  658,  534,  520,  607,  607,
      607,  607,  607,  607,  607,  607,  534,  520,  607,  607,
      607,  607,  607,  607,  607,  534,  520,  607,  607,  607,
      607,  607,  607,  534,  658,  607,  607,  607,  607,  607,
      658,  607,  607,  607,  607,  607,  607,  607,  607,  607,
        0,  591,  591,  591,  591,  591,  591,  591,  591,  591,

      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591
    } ;

static yyconst flex_int16_t yy_nxt[6721] =
    {   0,
        8,    9,   10,    9,    9,    9,   11,   12,   13,   14,
        8,    8,   15,    8,    8,   16,   17,   18,   19,   20,
       21,    8,   22,    8,    8,    8,   23,   24,   24,   24,
       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
       25,   24,   24,   24,   24,   24,   24,   26,   24,   24,
       24,   24,   24,   27,   28,   24,   24,   24,   24,   24,
       24,   24,   24,   24,   24,   24,   24,   24,   25,   24,
       24,   24,   24,   24,   24,   26,   24,   24,   24,   24,
       24,    8,   29,   30,   24,   31,   36,   31,   36,   41,
       41,   32,  158,   32,   37,   37,   37,   37,   37,   37,

       37,   37,   37,   37,   33,   34,   33,   34,   38,   38,
       38,   38,   38,   95,   95,   36,   54,   36,   52,   52,
       32,   95,   32,   95,   98,   99,   98,   99,  112,   41,
       50,  158,   33,   34,   33,   34,   42,  139,   53,   56,
       95,  108,   39,   41,  158,   35,  134,   35,   57,  100,
      158,  109,   58,   97,   97,   95,  112,  591,   52,   95,
      591,   97,  101,   97,   95,  139,   53,   56,  111,  108,
       50,   39,   43,   98,   98,   44,   57,  100,   53,  109,
       97,  136,   45,   45,   45,   45,   45,   45,  158,   42,
      102,  110,  141,   47,  151,   97,  111,  165,  132,   97,

      134,  158,  196,  134,   97,  134,   53,  134,   47,  154,
      136,   45,   45,   45,   45,   45,   45,   61,  102,  110,
      141,   95,  151,  158,   62,   63,  165,   64,   37,   37,
       37,   37,   37,  158,   65,   65,   66,   67,   68,   65,
       69,   70,   71,   65,   72,   65,   73,   74,   65,   75,
       65,   76,   77,   78,   65,   65,   65,   65,   65,   65,
       79,   97,   80,   65,   65,   66,   67,   68,   65,   69,
       70,   71,   72,   65,   73,   74,   65,   75,   65,   76,
       77,   78,   65,   65,   65,   65,   65,   65,   65,   65,
      241,   65,   82,  225,  196,   38,   38,   38,   38,   38,

      158,  227,   83,   84,   85,   83,   83,   86,   83,   83,
       87,   83,   83,   88,   89,   90,   83,   91,   83,   92,
       83,   93,   83,   83,   83,   83,   83,   83,   94,   39,
       83,   83,   84,   85,   83,   83,   86,   83,   83,   87,
       83,   88,   89,   90,   83,   91,   83,   92,   83,   93,
       83,   83,   83,   83,   83,   83,  140,  134,   39,   83,
      104,  591,  142,   59,  135,  158,  162,  104,  104,  104,
      104,  104,  104,   95,   41,   95,   98,   99,  134,  184,
      158,  134,  225,   65,  140,  118,  158,  118,   98,  145,
      263,  142,  135,  130,  162,  137,  104,  104,  104,  104,

      104,  104,   40,   40,   40,  113,  138,  184,  115,  134,
      143,   65,  158,   97,  159,   97,  144,  163,  160,  146,
       42,  116,  130,  137,  134,  134,  158,  164,  116,  116,
      116,  116,  116,  116,  138,  158,  147,  158,  143,  158,
      148,  161,  159,  134,  144,   95,  163,  160,  146,  158,
      166,  149,  174,  158,  117,  150,  164,  116,  116,  116,
      116,  116,  116,  120,  147,  167,  158,   95,  148,  161,
      120,  120,  120,  120,  120,  120,  158,  134,  168,  166,
      149,   95,  365,  158,  150,   97,   41,  158,  158,   41,
      158,   95,  178,   95,  167,   95,  121,  158,   95,  120,

      120,  120,  120,  120,  120,  123,  168,   97,  591,  591,
      180,  365,  123,  123,  123,  123,  123,  123,   41,   41,
      178,   97,   95,  182,  175,   95,  201,  134,  181,   40,
       50,   97,   42,   97,   41,   97,  232,  202,   97,  180,
      194,  123,  123,  123,  123,  123,  123,   49,   49,   49,
      124,  182,  175,  183,  201,  158,  181,  204,  126,   50,
       50,  200,   97,  199,  232,   97,  127,  209,  203,  194,
      134,  134,  207,  127,  127,  127,  127,  127,  127,  158,
       42,  183,  134,  134,  205,  204,  158,  134,   95,  158,
      200,  134,  199,  134,  212,  213,  209,  203,  214,  128,

      207,  158,  127,  127,  127,  127,  127,  127,  104,  216,
      217,  158,  205,  218,  215,  104,  104,  104,  104,  104,
      104,  158,  212,  219,  213,  158,  214,  158,   97,   95,
      158,  224,  229,  158,  220,   95,  174,  224,  216,  217,
      221,  218,  215,  158,  104,  104,  104,  104,  104,  104,
      153,  158,  219,   95,  158,   41,   95,  153,  153,  153,
      153,  153,  153,  220,  202,  225,  476,  244,  221,   97,
       96,   97,   97,  301,  591,   97,   95,   97,  249,  243,
      134,  158,  158,  246,   41,  158,  153,  153,  153,  153,
      153,  153,  591,   97,  231,  244,   97,  134,  247,  258,

      239,   42,  134,   83,   83,  134,  249,   83,  243,  250,
       83,  254,  246,   83,   83,   83,   97,   83,  158,   83,
      158,   83,  231,  158,  156,   50,   95,  247,  239,  158,
      273,  251,   83,   83,  158,  158,   83,  250,  158,   83,
      254,   83,   83,   83,  252,   83,  255,   83,  253,   83,
      257,  256,  156,  170,  284,  158,  158,  283,  273,  251,
      170,  170,  170,  170,  170,  170,   97,  307,  158,  158,
      158,  134,  252,  158,  225,  255,  253,   95,  158,  257,
      256,  187,  284,  187,  288,  283,  290,  397,  286,  170,
      170,  170,  170,  170,  170,  172,  396,  318,  407,  280,

      158,  307,  172,  172,  172,  172,  172,  172,  266,  266,
      266,  266,  266,  308,  268,  287,  286,   97,  289,  269,
      158,  270,  158,  158,  291,  318,  407,  158,  280,  331,
      328,  172,  172,  172,  172,  172,  172,  103,  103,  103,
      103,  103,  310,  287,  292,  338,  289,  293,  158,   95,
      158,  158,  158,  291,  158,  330,  179,  332,  331,  328,
      271,  395,  337,  179,  179,  179,  179,  179,  179,  158,
      307,  225,  292,  158,  307,  293,  307,  333,  158,  346,
      225,  158,  375,  330,  158,  339,  332,  340,  392,   97,
      337,  307,  179,  179,  179,  179,  179,  179,  114,  185,

      185,  185,  114,  394,   41,  333,  294,  158,  377,  158,
      411,  310,  373,  341,  339,  295,  340,  186,  158,  158,
      308,  296,  308,  379,  186,  186,  186,  186,  186,  186,
      158,  158,  310,  393,  158,  294,  378,  377,  376,  380,
      373,  158,  341,  295,  158,  158,  158,  121,  158,  296,
       42,  158,  379,  186,  186,  186,  186,  186,  186,   40,
       40,   40,  113,  350,  378,  115,  376,  380,  385,  266,
      266,  266,  266,  266,  381,  268,  349,  386,  116,  387,
      269,  158,  270,  416,  462,  116,  116,  116,  116,  116,
      116,  305,  305,  305,  305,  305,  385,  591,  158,  158,

      158,  348,  591,  381,  270,  431,  386,  158,  387,  347,
      158,  117,  416,  462,  116,  116,  116,  116,  116,  116,
      188,  271,  305,  305,  305,  305,  305,  188,  188,  188,
      188,  188,  188,  431,  591,  270,  351,  351,  351,  351,
      351,  591,  158,  271,  307,   96,  307,  417,  304,  352,
      450,   96,  472,  121,  158,  432,  188,  188,  188,  188,
      188,  188,  190,  305,  305,  305,  305,  305,  303,  190,
      190,  190,  190,  190,  190,  417,  270,  351,  351,  351,
      351,  351,  409,  509,  432,  310,  158,  302,  158,  418,
      352,  524,  308,  103,  103,  103,  103,  103,  190,  190,

      190,  190,  190,  190,  122,  122,  122,  122,  122,   96,
      409,  334,  158,  419,  420,  271,  421,  158,  418,  158,
      524,  591,  335,  191,  158,  423,  307,  466,  158,  336,
      191,  191,  191,  191,  191,  191,  158,  158,  158,  158,
      334,  419,  530,  420,  421,  305,  305,  305,  305,  305,
      335,  591,  234,  423,  234,  466,  307,  336,  270,  191,
      191,  191,  191,  191,  191,  125,  192,  192,  192,  125,
      424,  158,  308,  479,  527,  158,   41,  158,  158,  114,
      185,  185,  185,  114,  193,   41,  305,  305,  305,  305,
      305,  193,  193,  193,  193,  193,  193,  271,  424,  270,

      158,  479,  308,  527,  425,  541,  305,  305,  305,  305,
      305,  158,  578,  134,  261,  422,  261,   50,  441,  270,
      193,  193,  193,  193,  193,  193,   49,   49,   49,  124,
      158,   42,  425,  158,  541,  134,  158,  126,  271,  125,
      192,  192,  192,  125,  422,  127,  241,  441,  158,  265,
       41,  439,  127,  127,  127,  127,  127,  127,  271,  398,
      351,  351,  351,  398,  591,  307,  402,  351,  351,  351,
      402,  426,  399,  158,  307,  264,  158,  307,  128,  403,
      439,  127,  127,  127,  127,  127,  127,  198,  471,   96,
      158,   50,  440,  134,  198,  198,  198,  198,  198,  198,

      426,  169,  169,  169,  169,  169,  171,  171,  171,  171,
      171,  308,  158,  134,  158,  310,  456,  471,  310,  134,
      134,  440,   96,  198,  198,  198,  198,  198,  198,  152,
      152,  152,  152,  152,  134,  448,  382,  241,  121,  398,
      351,  351,  351,  398,  456,  307,  158,  383,  206,  442,
      228,  444,  399,  158,  384,  206,  206,  206,  206,  206,
      206,  158,  591,  448,  173,  382,  402,  351,  351,  351,
      402,  158,  307,  158,  158,  383,  158,  307,  442,  403,
      444,  134,  384,  208,  206,  206,  206,  206,  206,  206,
      211,  308,  189,  189,  189,  189,  189,  211,  211,  211,

      211,  211,  211,  197,  197,  197,  197,  197,  275,  443,
      275,  134,  299,  310,  299,  134,  158,  445,  310,  210,
      210,  210,  210,  210,  447,  134,  211,  211,  211,  211,
      211,  211,  169,  169,  169,  169,  169,  443,  446,  158,
      413,  134,  460,  449,  493,  158,  445,  158,  158,  414,
      451,  222,  457,  447,  463,  415,  134,  158,  222,  222,
      222,  222,  222,  222,  158,  158,  446,  158,  158,  413,
      460,  158,  449,  493,  158,  134,  458,  414,  451,  459,
      461,  457,  463,  415,  158,  464,  134,  222,  222,  222,
      222,  222,  222,  171,  171,  171,  171,  171,  158,  134,

      467,  158,  158,  468,  470,  458,  158,  465,  459,  461,
      158,  469,  223,  158,  464,  158,  480,  134,  134,  223,
      223,  223,  223,  223,  223,  134,  134,  158,  467,  481,
      485,  468,  470,  320,  158,  320,  465,  158,  132,  158,
      469,  482,  501,  477,  158,  480,  478,  121,  223,  223,
      223,  223,  223,  223,  230,  487,  158,  481,  485,  121,
      158,  230,  230,  230,  230,  230,  230,  158,  344,  482,
      344,  501,  477,  483,  158,  478,  486,  177,  173,  484,
      506,  158,  155,  158,  487,  134,  158,  489,  158,  488,
      230,  230,  230,  230,  230,  230,  114,  185,  185,  185,

      114,  483,   41,  158,  486,  491,  490,  484,  506,  158,
      390,  134,  390,  500,  502,  233,  489,  488,  158,  492,
      158,   59,  233,  233,  233,  233,  233,  233,  158,   79,
      427,  158,  427,  491,  490,  158,  311,  311,  311,  311,
      311,  500,  452,  502,  452,   61,  525,  492,   42,  270,
      504,  233,  233,  233,  233,  233,  233,  235,  496,  496,
      496,  496,  496,  503,  235,  235,  235,  235,  235,  235,
      158,  132,  158,  129,  497,  525,  121,  107,  106,  504,
      105,  158,  505,   81,  508,   60,   59,  507,  271,   51,
      512,  538,  503,  235,  235,  235,  235,  235,  235,  189,

      189,  189,  189,  189,  158,  158,  158,  510,  511,  514,
      499,  505,  158,  508,  158,  513,  507,  158,  236,  512,
      538,  158,  158,  521,  158,  236,  236,  236,  236,  236,
      236,  158,   48,  591,  591,  510,  511,  514,  591,  522,
      523,  591,  529,  513,  354,  400,  400,  400,  354,  158,
      307,  521,  158,  591,  236,  236,  236,  236,  236,  236,
      122,  122,  122,  122,  122,  591,  158,  522,  523,  531,
      526,  529,  528,  591,  359,  404,  404,  404,  359,  237,
      549,  158,  158,  542,  532,  307,  237,  237,  237,  237,
      237,  237,  158,  158,  158,  158,  308,  531,  591,  526,

      528,  515,  515,  515,  515,  515,  591,  591,  549,  537,
      591,  542,  532,  591,  516,  237,  237,  237,  237,  237,
      237,  125,  192,  192,  192,  125,  310,  577,  591,  158,
      591,  158,   41,  515,  515,  515,  515,  515,  537,  543,
      238,  496,  496,  496,  496,  496,  516,  238,  238,  238,
      238,  238,  238,  518,  591,  577,  591,  497,  591,  539,
      540,  545,  591,  158,  591,  591,  591,  158,  543,  158,
      544,  591,  591,   50,  158,  552,  238,  238,  238,  238,
      238,  238,  197,  197,  197,  197,  197,  539,  540,  545,
      158,  591,  158,  499,  515,  515,  515,  515,  515,  544,

      550,  242,  556,  552,  591,  559,  158,  516,  242,  242,
      242,  242,  242,  242,  591,  591,  591,  591,  591,  515,
      515,  515,  515,  515,  158,  591,  591,  158,  550,  591,
      591,  556,  516,  551,  559,  553,  554,  242,  242,  242,
      242,  242,  242,  245,  158,  158,  518,  591,  158,  563,
      245,  245,  245,  245,  245,  245,  515,  515,  515,  515,
      515,  551,  158,  553,  554,  555,  499,  561,  591,  516,
      591,  518,  560,  591,  158,  585,  158,  563,  573,  245,
      245,  245,  245,  245,  245,  210,  210,  210,  210,  210,
      158,  158,  591,  555,  158,  561,  515,  515,  515,  515,

      515,  560,  562,  585,  248,  572,  573,  580,  518,  516,
      591,  248,  248,  248,  248,  248,  248,  515,  515,  515,
      515,  515,  591,  564,  158,  591,  591,  158,  591,  158,
      516,  562,  158,  582,  572,  591,  580,  568,  565,  158,
      248,  248,  248,  248,  248,  248,  259,  158,  518,  591,
      570,  564,  571,  259,  259,  259,  259,  259,  259,  158,
      158,  582,  591,  591,  591,  569,  565,  576,  579,  518,
      591,  591,  591,  158,  583,  591,  158,  158,  570,  591,
      571,  591,  259,  259,  259,  259,  259,  259,  171,  171,
      171,  171,  171,  569,  591,  576,  579,  158,  535,  535,

      535,  535,  535,  583,  584,  586,  587,  260,  591,  591,
      589,  516,  588,  158,  260,  260,  260,  260,  260,  260,
      546,  546,  546,  546,  546,  158,  591,  158,  158,  591,
      591,  591,  584,  516,  586,  587,  158,  591,  589,  591,
      591,  588,  591,  260,  260,  260,  260,  260,  260,  272,
      518,  591,  591,  591,  590,  591,  272,  272,  272,  272,
      272,  272,  158,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  518,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  590,  591,  591,  272,  272,  272,  272,  272,
      272,  114,  185,  185,  185,  114,  591,   41,  591,  591,

      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      274,  591,  591,  591,  591,  591,  591,  274,  274,  274,
      274,  274,  274,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,   42,  591,  591,  274,  274,  274,  274,
      274,  274,  276,  591,  591,  591,  591,  591,  591,  276,
      276,  276,  276,  276,  276,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  276,  276,
      276,  276,  276,  276,  189,  189,  189,  189,  189,  591,

      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  277,  591,  591,  591,  591,  591,  591,
      277,  277,  277,  277,  277,  277,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  277,
      277,  277,  277,  277,  277,  122,  122,  122,  122,  122,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  278,  591,  591,  591,  591,  591,
      591,  278,  278,  278,  278,  278,  278,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,

      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      278,  278,  278,  278,  278,  278,  125,  192,  192,  192,
      125,  591,  591,  591,  591,  591,  591,   41,  591,  591,
      591,  591,  591,  591,  591,  279,  591,  591,  591,  591,
      591,  591,  279,  279,  279,  279,  279,  279,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,   50,  591,
      591,  279,  279,  279,  279,  279,  279,  197,  197,  197,
      197,  197,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  281,  591,  591,  591,

      591,  591,  591,  281,  281,  281,  281,  281,  281,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  281,  281,  281,  281,  281,  281,  282,  591,
      591,  591,  591,  591,  591,  282,  282,  282,  282,  282,
      282,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  282,  282,  282,  282,  282,  282,
      210,  210,  210,  210,  210,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  285,

      591,  591,  591,  591,  591,  591,  285,  285,  285,  285,
      285,  285,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  285,  285,  285,  285,  285,
      285,  297,  591,  591,  591,  591,  591,  591,  297,  297,
      297,  297,  297,  297,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  297,  297,  297,
      297,  297,  297,  171,  171,  171,  171,  171,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,

      591,  591,  298,  591,  591,  591,  591,  591,  591,  298,
      298,  298,  298,  298,  298,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  298,  298,
      298,  298,  298,  298,  305,  305,  305,  305,  311,  591,
      313,  591,  591,  591,  591,  313,  313,  314,  591,  591,
      591,  591,  591,  315,  591,  591,  591,  591,  591,  591,
      315,  315,  315,  315,  315,  315,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  316,  591,  591,  315,

      315,  315,  315,  315,  315,  317,  591,  591,  591,  591,
      591,  591,  317,  317,  317,  317,  317,  317,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  317,  317,  317,  317,  317,  317,  114,  185,  185,
      185,  114,  591,   41,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  319,  591,  591,  591,
      591,  591,  591,  319,  319,  319,  319,  319,  319,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,   42,

      591,  591,  319,  319,  319,  319,  319,  319,  321,  591,
      591,  591,  591,  591,  591,  321,  321,  321,  321,  321,
      321,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  121,  591,  591,  321,  321,  321,  321,  321,  321,
      189,  189,  189,  189,  189,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  322,
      591,  591,  591,  591,  591,  591,  322,  322,  322,  322,
      322,  322,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,

      591,  591,  121,  591,  591,  322,  322,  322,  322,  322,
      322,  122,  122,  122,  122,  122,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      323,  591,  591,  591,  591,  591,  591,  323,  323,  323,
      323,  323,  323,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  323,  323,  323,  323,
      323,  323,  125,  192,  192,  192,  125,  591,  591,  591,
      591,  591,  591,   41,  591,  591,  591,  591,  591,  591,
      591,  324,  591,  591,  591,  591,  591,  591,  324,  324,

      324,  324,  324,  324,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,   50,  591,  591,  324,  324,  324,
      324,  324,  324,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,   96,  591,  591,  591,  591,  591,  591,   96,
       96,   96,   96,   96,   96,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  325,  591,
      591,  591,  591,  591,  591,  591,  591,  591,   96,   96,
       96,   96,   96,   96,  591,  591,  591,  591,  591,  591,

      591,  591,  591,  591,  591,  591,  325,  197,  197,  197,
      197,  197,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  326,  591,  591,  591,
      591,  591,  591,  326,  326,  326,  326,  326,  326,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  326,  326,  326,  326,  326,  326,  327,  591,
      591,  591,  591,  591,  591,  327,  327,  327,  327,  327,
      327,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,

      591,  591,  591,  591,  327,  327,  327,  327,  327,  327,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  133,
      591,  591,  591,  591,  591,  591,  133,  133,  133,  133,
      133,  133,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  133,  133,  133,  133,  133,
      133,  210,  210,  210,  210,  210,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      329,  591,  591,  591,  591,  591,  591,  329,  329,  329,

      329,  329,  329,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  329,  329,  329,  329,
      329,  329,  342,  591,  591,  591,  591,  591,  591,  342,
      342,  342,  342,  342,  342,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  342,  342,
      342,  342,  342,  342,  171,  171,  171,  171,  171,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  343,  591,  591,  591,  591,  591,  591,

      343,  343,  343,  343,  343,  343,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  343,
      343,  343,  343,  343,  343,  306,  306,  306,  353,  591,
      591,  355,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  356,  591,  591,  591,  591,  591,
      591,  356,  356,  356,  356,  356,  356,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  357,  591,  591,
      356,  356,  356,  356,  356,  356,  309,  309,  309,  358,

      591,  591,  591,  591,  591,  591,  591,  360,  591,  591,
      591,  591,  591,  591,  591,  361,  591,  591,  591,  591,
      591,  591,  361,  361,  361,  361,  361,  361,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  362,  591,
      591,  361,  361,  361,  361,  361,  361,  311,  311,  311,
      311,  311,  591,  591,  591,  591,  591,  591,  591,  591,
      270,  591,  591,  591,  591,  591,  363,  591,  591,  591,
      591,  591,  591,  363,  363,  363,  363,  363,  363,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,

      591,  591,  591,  591,  591,  591,  591,  591,  591,  271,
      591,  591,  363,  363,  363,  363,  363,  363,  305,  305,
      305,  305,  311,  591,  313,  591,  591,  591,  591,  313,
      313,  314,  591,  591,  591,  591,  591,  315,  591,  591,
      591,  591,  591,  591,  315,  315,  315,  315,  315,  315,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      316,  591,  591,  315,  315,  315,  315,  315,  315,  364,
      591,  591,  591,  591,  591,  591,  364,  364,  364,  364,
      364,  364,  591,  591,  591,  591,  591,  591,  591,  591,

      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  364,  364,  364,  364,  364,
      364,  114,  185,  185,  185,  114,  591,   41,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      366,  591,  591,  591,  591,  591,  591,  366,  366,  366,
      366,  366,  366,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,   42,  591,  591,  366,  366,  366,  366,
      366,  366,  189,  189,  189,  189,  189,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,

      591,  367,  591,  591,  591,  591,  591,  591,  367,  367,
      367,  367,  367,  367,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  121,  591,  591,  367,  367,  367,
      367,  367,  367,  122,  122,  122,  122,  122,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  368,  591,  591,  591,  591,  591,  591,  368,
      368,  368,  368,  368,  368,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  368,  368,

      368,  368,  368,  368,  125,  192,  192,  192,  125,  591,
      591,  591,  591,  591,  591,   41,  591,  591,  591,  591,
      591,  591,  591,  369,  591,  591,  591,  591,  591,  591,
      369,  369,  369,  369,  369,  369,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,   50,  591,  591,  369,
      369,  369,  369,  369,  369,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  370,  591,  591,   96,  591,  591,  591,  591,  591,
      591,   96,   96,   96,   96,   96,   96,  591,  591,  591,

      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
       96,   96,   96,   96,   96,   96,  197,  197,  197,  197,
      197,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  371,  591,  591,  591,  591,
      591,  591,  371,  371,  371,  371,  371,  371,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  371,  371,  371,  371,  371,  371,  152,  152,  152,
      152,  152,  591,  591,  591,  591,  591,  591,  591,  591,

      591,  591,  591,  591,  591,  591,  372,  591,  591,  591,
      591,  591,  591,  372,  372,  372,  372,  372,  372,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  372,  372,  372,  372,  372,  372,  210,  210,
      210,  210,  210,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  374,  591,  591,
      591,  591,  591,  591,  374,  374,  374,  374,  374,  374,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,

      591,  591,  591,  374,  374,  374,  374,  374,  374,  388,
      591,  591,  591,  591,  591,  591,  388,  388,  388,  388,
      388,  388,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  388,  388,  388,  388,  388,
      388,  171,  171,  171,  171,  171,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      389,  591,  591,  591,  591,  591,  591,  389,  389,  389,
      389,  389,  389,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,

      591,  591,  591,  591,  591,  591,  389,  389,  389,  389,
      389,  389,  354,  400,  400,  400,  354,  591,  307,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  401,  591,  591,  591,  591,  591,  591,  401,  401,
      401,  401,  401,  401,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  308,  591,  591,  401,  401,  401,
      401,  401,  401,  306,  306,  306,  353,  591,  591,  355,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  356,  591,  591,  591,  591,  591,  591,  356,

      356,  356,  356,  356,  356,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  357,  591,  591,  356,  356,
      356,  356,  356,  356,  359,  404,  404,  404,  359,  591,
      591,  591,  591,  591,  591,  307,  591,  591,  591,  591,
      591,  591,  591,  405,  591,  591,  591,  591,  591,  591,
      405,  405,  405,  405,  405,  405,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  310,  591,  591,  405,
      405,  405,  405,  405,  405,  309,  309,  309,  358,  591,

      591,  591,  591,  591,  591,  591,  360,  591,  591,  591,
      591,  591,  591,  591,  361,  591,  591,  591,  591,  591,
      591,  361,  361,  361,  361,  361,  361,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  362,  591,  591,
      361,  361,  361,  361,  361,  361,  311,  311,  311,  311,
      311,  591,  591,  591,  591,  591,  591,  591,  591,  270,
      591,  591,  591,  591,  591,  406,  591,  591,  591,  591,
      591,  591,  406,  406,  406,  406,  406,  406,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,

      591,  591,  591,  591,  591,  591,  591,  591,  271,  591,
      591,  406,  406,  406,  406,  406,  406,  408,  591,  591,
      591,  591,  591,  591,  408,  408,  408,  408,  408,  408,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  408,  408,  408,  408,  408,  408,  119,
      591,  591,  591,  591,  591,  591,  119,  119,  119,  119,
      119,  119,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  119,  119,  119,  119,  119,

      119,  410,  591,  591,  591,  591,  591,  591,  410,  410,
      410,  410,  410,  410,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  410,  410,  410,
      410,  410,  410,  152,  152,  152,  152,  152,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  133,  591,  591,  591,  591,  591,  591,  133,
      133,  133,  133,  133,  133,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  133,  133,

      133,  133,  133,  133,  210,  210,  210,  210,  210,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  412,  591,  591,  591,  591,  591,  591,
      412,  412,  412,  412,  412,  412,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  412,
      412,  412,  412,  412,  412,  428,  591,  591,  591,  591,
      591,  591,  428,  428,  428,  428,  428,  428,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,

      591,  428,  428,  428,  428,  428,  428,  429,  591,  591,
      591,  591,  591,  591,  429,  429,  429,  429,  429,  429,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  429,  429,  429,  429,  429,  429,  311,
      311,  311,  311,  311,  591,  591,  591,  591,  591,  591,
      591,  591,  270,  591,  591,  591,  591,  591,  430,  591,
      591,  591,  591,  591,  591,  430,  430,  430,  430,  430,
      430,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,

      591,  271,  591,  591,  430,  430,  430,  430,  430,  430,
      433,  591,  591,  591,  591,  591,  591,  434,  591,  435,
      591,  591,  591,  591,  436,  437,  591,  591,  438,  591,
      591,  591,  591,  158,  591,  591,  591,  591,  591,  433,
      591,  591,  591,  591,  591,  434,  591,  435,  591,  591,
      591,  591,  436,  437,  591,  591,  438,  453,  591,  591,
      591,  591,  591,  591,  453,  453,  453,  453,  453,  453,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  453,  453,  453,  453,  453,  453,  454,

      591,  591,  591,  591,  591,  591,  454,  454,  454,  454,
      454,  454,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  454,  454,  454,  454,  454,
      454,  455,  591,  591,  591,  591,  591,  591,  455,  455,
      455,  455,  455,  455,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  455,  455,  455,
      455,  455,  455,  473,  591,  591,  591,  591,  591,  591,
      473,  473,  473,  473,  473,  473,  591,  591,  591,  591,

      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  473,
      473,  473,  473,  473,  473,  474,  591,  591,  591,  591,
      591,  591,  474,  474,  474,  474,  474,  474,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  474,  474,  474,  474,  474,  474,  475,  591,  591,
      591,  591,  591,  591,  475,  475,  475,  475,  475,  475,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,

      591,  591,  591,  475,  475,  475,  475,  475,  475,  494,
      591,  591,  591,  591,  591,  591,  494,  494,  494,  494,
      494,  494,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  494,  494,  494,  494,  494,
      494,  495,  591,  591,  591,  591,  591,  591,  495,  495,
      495,  495,  495,  495,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  495,  495,  495,
      495,  495,  495,  520,  591,  591,  591,  591,  591,  591,

      520,  520,  520,  520,  520,  520,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  520,
      520,  520,  520,  520,  520,  534,  591,  591,  591,  591,
      591,  591,  534,  534,  534,  534,  534,  534,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  534,  534,  534,  534,  534,  534,  535,  535,  535,
      535,  535,  591,  591,  591,  591,  591,  591,  591,  591,
      516,  591,  591,  591,  591,  591,  536,  591,  591,  591,

      591,  591,  591,  536,  536,  536,  536,  536,  536,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  518,
      591,  591,  536,  536,  536,  536,  536,  536,  546,  546,
      546,  546,  546,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  547,  591,  591,
      591,  591,  591,  591,  547,  547,  547,  547,  547,  547,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  547,  547,  547,  547,  547,  547,  548,

      591,  591,  591,  591,  591,  591,  548,  548,  548,  548,
      548,  548,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  548,  548,  548,  548,  548,
      548,  557,  591,  591,  591,  591,  591,  591,  557,  557,
      557,  557,  557,  557,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  557,  557,  557,
      557,  557,  557,  558,  591,  591,  591,  591,  591,  591,
      558,  558,  558,  558,  558,  558,  591,  591,  591,  591,

      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  558,
      558,  558,  558,  558,  558,  566,  591,  591,  591,  591,
      591,  591,  566,  566,  566,  566,  566,  566,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  566,  566,  566,  566,  566,  566,  567,  591,  591,
      591,  591,  591,  591,  567,  567,  567,  567,  567,  567,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,

      591,  591,  591,  567,  567,  567,  567,  567,  567,  574,
      591,  591,  591,  591,  591,  591,  574,  574,  574,  574,
      574,  574,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  574,  574,  574,  574,  574,
      574,  575,  591,  591,  591,  591,  591,  591,  575,  575,
      575,  575,  575,  575,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  575,  575,  575,
      575,  575,  575,  581,  591,  591,  591,  591,  591,  591,

      581,  581,  581,  581,  581,  581,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  581,
      581,  581,  581,  581,  581,   40,  591,  591,   40,   40,
       40,   40,   40,   40,   40,   40,   40,   40,   46,   46,
      591,   46,   46,   49,  591,  591,   49,   49,   49,   49,
       49,   49,   49,   49,   49,   49,   55,   55,  591,   55,
       55,   96,  591,   96,   96,  591,   96,   96,  103,  103,
      103,  103,  103,  103,  103,  103,  103,  103,  114,  114,
      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,

      114,  119,  119,  591,  119,  119,  122,  122,  122,  122,
      122,  122,  122,  122,  122,  122,  125,  125,  125,  125,
      125,  125,  125,  125,  125,  125,  125,  125,  125,  131,
      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
      131,  131,  131,  133,  133,  591,  133,  133,  152,  152,
      152,  152,  152,  152,  152,  152,  152,  152,  157,  157,
      591,  157,  157,  169,  169,  169,  169,  169,  169,  169,
      169,  169,  169,  171,  171,  171,  171,  171,  171,  171,
      171,  171,  171,  176,  176,  176,  189,  189,  189,  189,
      189,  189,  189,  189,  189,  189,   49,   49,  591,   49,

       49,   49,   49,   49,   49,   49,   49,   49,   49,  125,
      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
      125,  125,  131,  131,  131,  131,  131,  131,  131,  131,
      131,  131,  131,  131,  131,  131,  195,  195,  195,  195,
      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
      197,  197,  197,  197,  197,  197,  197,  197,  197,  197,
      210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
      226,  226,  226,  226,  240,  240,  240,  240,  240,  240,
      240,  240,  240,  240,  240,  240,  240,  240,  262,  262,
      262,  262,  267,  267,  267,  267,  267,  267,  591,  267,

      267,  267,  267,  267,  267,   40,   40,   40,   40,   40,
       40,   40,   40,   40,   40,   40,   40,   40,  195,  195,
      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
      195,  195,  300,  300,  300,  300,  267,  267,  267,  267,
      267,  267,  591,  267,  267,  267,  267,  267,  267,  306,
      591,  591,  306,  306,  306,  306,  306,  306,  306,  306,
      306,  306,  309,  591,  591,  309,  309,  309,  309,  309,
      309,  309,  309,  309,  309,  312,  312,  312,  312,  312,
      312,  312,  312,  312,  312,  312,  312,  312,   40,   40,
       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,

       40,  119,  119,  591,  119,  119,   49,   49,   49,   49,
       49,   49,   49,   49,   49,   49,   49,   49,   49,  345,
      345,  345,  345,  354,  354,  354,  354,  354,  354,  354,
      354,  354,  354,  354,  354,  354,  309,  591,  591,  309,
      309,  309,  309,  309,  309,  309,  309,  309,  309,  359,
      359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
      359,  359,  267,  267,  267,  267,  267,  591,  591,  267,
      267,  267,  267,  267,  267,  312,  312,  312,  312,  312,
      312,  312,  312,  312,  312,  312,  312,  312,   40,   40,
       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,

       40,  119,  119,  591,  119,  119,   49,   49,   49,   49,
       49,   49,   49,   49,   49,   49,   49,   49,   49,  391,
      391,  391,  391,  306,  306,  591,  306,  306,  306,  306,
      306,  306,  306,  306,  306,  306,  354,  354,  354,  354,
      354,  354,  354,  354,  354,  354,  354,  354,  354,  309,
      309,  591,  309,  309,  309,  309,  309,  309,  309,  309,
      309,  309,  359,  359,  359,  359,  359,  359,  359,  359,
      359,  359,  359,  359,  359,  267,  267,  267,  267,  267,
      591,  591,  267,  267,  267,  267,  267,  267,  498,  498,
      498,  498,  591,  591,  591,  591,  498,  591,  591,  498,

      498,  517,  517,  517,  517,  591,  591,  591,  517,  517,
      517,  591,  517,  517,  519,  519,  519,  519,  519,  519,
      519,  519,  519,  519,  533,  533,  533,  533,  533,  533,
      533,  533,  533,  533,    7,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,

      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591
    } ;

static yyconst flex_int16_t yy_chk[6721] =
    {   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,    1,    1,    1,
        1,    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,    5,    4,    6,   15,
       12,    3,  590,    4,    9,    9,    9,    9,    9,   10,

       10,   10,   10,   10,    3,    3,    4,    4,   11,   11,
       11,   11,   11,   24,   32,    5,   18,    6,   17,   18,
        3,   25,    4,   33,   25,   25,   33,   33,   39,   49,
       15,  587,    3,    3,    4,    4,   12,   69,   17,   18,
       36,   32,   11,   40,  584,    3,   69,    4,   18,   25,
      579,   33,   18,   24,   32,   55,   39,   43,   52,   26,
       43,   25,   26,   33,   34,   69,   17,   18,   36,   32,
       49,   11,   13,   53,   53,   13,   18,   25,   52,   33,
       36,   67,   13,   13,   13,   13,   13,   13,  577,   40,
       26,   34,   71,   43,   78,   55,   36,   90,  132,   26,

       78,  569,  132,   67,   34,   71,   52,   80,   13,   80,
       67,   13,   13,   13,   13,   13,   13,   21,   26,   34,
       71,   96,   78,   90,   21,   21,   90,   21,   37,   37,
       37,   37,   37,  565,   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,   96,   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,  604,  604,
      241,   21,   23,  176,  241,   38,   38,   38,   38,   38,

      561,  176,   23,   23,   23,   23,   23,   23,   23,   23,
       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
       23,   23,   23,   23,   23,   23,   23,   23,   23,   38,
       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
       23,   23,   23,   23,   23,   23,   70,   70,   38,   23,
       27,   59,   72,   59,   66,  555,   87,   27,   27,   27,
       27,   27,   27,   56,  114,   57,   56,   56,   66,  112,
       87,   72,  226,   59,   70,  599,  537,  599,   74,   74,
      226,   72,   66,   57,   87,   68,   27,   27,   27,   27,

       27,   27,   42,   42,   42,   42,   68,  112,   42,   68,
       73,   59,  528,   56,   84,   57,   73,   88,   85,   75,
      114,   42,   57,   68,   73,   74,   84,   89,   42,   42,
       42,   42,   42,   42,   68,  526,   75,   85,   73,   88,
       75,   86,   84,   75,   73,   99,   88,   85,   75,   89,
       91,   76,   99,   86,   42,   76,   89,   42,   42,   42,
       42,   42,   42,   45,   75,   92,  521,  102,   75,   86,
       45,   45,   45,   45,   45,   45,   91,   76,   93,   91,
       76,  103,  318,   92,   76,   99,  115,  512,  511,  124,
       93,  100,  102,  108,   92,  109,   45,  504,  110,   45,

       45,   45,   45,   45,   45,   47,   93,  102,  125,  126,
      108,  318,   47,   47,   47,   47,   47,   47,  125,  126,
      102,  103,  111,  110,  100,  130,  142,  142,  109,  113,
      124,  100,  115,  108,  113,  109,  184,  145,  110,  108,
      130,   47,   47,   47,   47,   47,   47,   50,   50,   50,
       50,  110,  100,  111,  142,  489,  109,  150,   50,  125,
      126,  139,  111,  136,  184,  130,   50,  156,  149,  130,
      145,  150,  154,   50,   50,   50,   50,   50,   50,  488,
      113,  111,  154,  136,  151,  150,  470,  139,  171,  156,
      139,  149,  136,  151,  159,  160,  156,  149,  161,   50,

      154,  159,   50,   50,   50,   50,   50,   50,   58,  163,
      164,  161,  151,  165,  162,   58,   58,   58,   58,   58,
       58,  160,  159,  166,  160,  162,  161,  165,  171,  174,
      163,  175,  178,  164,  167,  180,  174,  181,  163,  164,
      168,  165,  162,  166,   58,   58,   58,   58,   58,   58,
       79,  168,  166,  183,  167,  185,  182,   79,   79,   79,
       79,   79,   79,  167,  202,  262,  456,  205,  168,  174,
      456,  175,  178,  262,  192,  180,  194,  181,  212,  200,
      205,  448,  445,  207,  192,  212,   79,   79,   79,   79,
       79,   79,   82,  183,  182,  205,  182,  202,  209,  221,

      194,  185,  200,   82,   82,  207,  212,   82,  200,  213,
       82,  217,  207,   82,   82,   82,  194,   82,  213,   82,
      442,   82,  182,  209,   82,  192,  231,  209,  194,  217,
      232,  214,   82,   82,  419,  221,   82,  213,  214,   82,
      217,   82,   82,   82,  215,   82,  218,   82,  216,   82,
      220,  219,   82,   94,  247,  216,  215,  246,  232,  214,
       94,   94,   94,   94,   94,   94,  231,  268,  218,  220,
      247,  246,  215,  219,  391,  218,  216,  239,  376,  220,
      219,  611,  247,  611,  251,  246,  253,  350,  249,   94,
       94,   94,   94,   94,   94,   97,  349,  273,  365,  239,

      249,  269,   97,   97,   97,   97,   97,   97,  229,  229,
      229,  229,  229,  268,  229,  250,  249,  239,  252,  229,
      251,  229,  253,  250,  254,  273,  365,  252,  239,  287,
      284,   97,   97,   97,   97,   97,   97,  104,  104,  104,
      104,  104,  269,  250,  255,  293,  252,  257,  284,  104,
      254,  287,  255,  254,  257,  286,  104,  288,  287,  284,
      229,  348,  292,  104,  104,  104,  104,  104,  104,  286,
      309,  300,  255,  292,  306,  257,  353,  289,  288,  300,
      345,  293,  330,  286,  289,  294,  288,  295,  345,  104,
      292,  358,  104,  104,  104,  104,  104,  104,  116,  116,

      116,  116,  116,  347,  116,  289,  258,  294,  332,  295,
      373,  309,  328,  296,  294,  258,  295,  116,  330,  328,
      306,  258,  353,  335,  116,  116,  116,  116,  116,  116,
      258,  296,  358,  346,  332,  258,  334,  332,  331,  336,
      328,  335,  296,  258,  333,  331,  373,  321,  334,  258,
      116,  336,  335,  116,  116,  116,  116,  116,  116,  117,
      117,  117,  117,  304,  334,  117,  331,  336,  339,  266,
      266,  266,  266,  266,  337,  266,  303,  340,  117,  341,
      266,  339,  266,  377,  438,  117,  117,  117,  117,  117,
      117,  267,  267,  267,  267,  267,  339,  267,  340,  341,

      337,  302,  267,  337,  267,  407,  340,  377,  341,  301,
      438,  117,  377,  438,  117,  117,  117,  117,  117,  117,
      120,  266,  305,  305,  305,  305,  305,  120,  120,  120,
      120,  120,  120,  407,  359,  305,  307,  307,  307,  307,
      307,  354,  291,  267,  359,  409,  354,  378,  265,  307,
      425,  370,  451,  120,  378,  409,  120,  120,  120,  120,
      120,  120,  121,  311,  311,  311,  311,  311,  264,  121,
      121,  121,  121,  121,  121,  378,  311,  351,  351,  351,
      351,  351,  370,  486,  409,  359,  425,  263,  451,  379,
      351,  503,  354,  364,  364,  364,  364,  364,  121,  121,

      121,  121,  121,  121,  123,  123,  123,  123,  123,  364,
      370,  290,  379,  380,  381,  311,  382,  503,  379,  486,
      503,  399,  290,  123,  380,  384,  399,  443,  382,  290,
      123,  123,  123,  123,  123,  123,  290,  384,  381,  443,
      290,  380,  510,  381,  382,  312,  312,  312,  312,  312,
      290,  400,  620,  384,  620,  443,  400,  290,  312,  123,
      123,  123,  123,  123,  123,  127,  127,  127,  127,  127,
      385,  256,  399,  458,  507,  458,  127,  385,  510,  366,
      366,  366,  366,  366,  127,  366,  313,  313,  313,  313,
      313,  127,  127,  127,  127,  127,  127,  312,  385,  313,

      507,  458,  400,  507,  386,  527,  314,  314,  314,  314,
      314,  386,  571,  244,  622,  383,  622,  127,  415,  314,
      127,  127,  127,  127,  127,  127,  128,  128,  128,  128,
      527,  366,  386,  383,  527,  243,  415,  128,  313,  369,
      369,  369,  369,  369,  383,  128,  240,  415,  571,  228,
      369,  413,  128,  128,  128,  128,  128,  128,  314,  355,
      355,  355,  355,  355,  403,  355,  360,  360,  360,  360,
      360,  387,  355,  413,  403,  227,  210,  360,  128,  360,
      413,  128,  128,  128,  128,  128,  128,  134,  450,  432,
      387,  369,  414,  204,  134,  134,  134,  134,  134,  134,

      387,  388,  388,  388,  388,  388,  389,  389,  389,  389,
      389,  355,  450,  203,  414,  403,  432,  450,  360,  201,
      199,  414,  389,  134,  134,  134,  134,  134,  134,  153,
      153,  153,  153,  153,  197,  423,  338,  195,  189,  398,
      398,  398,  398,  398,  432,  398,  423,  338,  153,  416,
      177,  418,  398,  388,  338,  153,  153,  153,  153,  153,
      153,  338,  404,  423,  173,  338,  402,  402,  402,  402,
      402,  416,  404,  169,  418,  338,  157,  402,  416,  402,
      418,  153,  338,  155,  153,  153,  153,  153,  153,  153,
      158,  398,  408,  408,  408,  408,  408,  158,  158,  158,

      158,  158,  158,  410,  410,  410,  410,  410,  626,  417,
      626,  152,  628,  404,  628,  148,  417,  420,  402,  412,
      412,  412,  412,  412,  422,  147,  158,  158,  158,  158,
      158,  158,  170,  170,  170,  170,  170,  417,  421,  420,
      375,  146,  436,  424,  472,  421,  420,  422,  436,  375,
      426,  170,  433,  422,  439,  375,  144,  426,  170,  170,
      170,  170,  170,  170,  375,  424,  421,  439,  472,  375,
      436,  412,  424,  472,  433,  143,  434,  375,  426,  435,
      437,  433,  439,  375,  170,  440,  141,  170,  170,  170,
      170,  170,  170,  172,  172,  172,  172,  172,  434,  140,

      444,  435,  437,  446,  449,  434,  440,  441,  435,  437,
      446,  447,  172,  449,  440,  444,  459,  138,  137,  172,
      172,  172,  172,  172,  172,  135,  133,  441,  444,  460,
      463,  446,  449,  635,  447,  635,  441,  463,  131,  459,
      447,  461,  478,  457,  460,  459,  457,  122,  172,  172,
      172,  172,  172,  172,  179,  465,  461,  460,  463,  119,
      478,  179,  179,  179,  179,  179,  179,  457,  638,  461,
      638,  478,  457,  462,  465,  457,  464,  101,   98,  462,
      483,   83,   81,  464,  465,   77,  483,  467,  462,  466,
      179,  179,  179,  179,  179,  179,  186,  186,  186,  186,

      186,  462,  186,  466,  464,  469,  468,  462,  483,  467,
      648,   65,  648,  477,  479,  186,  467,  466,  468,  471,
      469,   63,  186,  186,  186,  186,  186,  186,  477,   62,
      655,  471,  655,  469,  468,  479,  475,  475,  475,  475,
      475,  477,  656,  479,  656,   61,  505,  471,  186,  475,
      481,  186,  186,  186,  186,  186,  186,  188,  476,  476,
      476,  476,  476,  480,  188,  188,  188,  188,  188,  188,
      505,   60,  481,   54,  476,  505,   46,   30,   29,  481,
       28,  480,  482,   22,  485,   20,   19,  484,  475,   16,
      491,  523,  480,  188,  188,  188,  188,  188,  188,  190,

      190,  190,  190,  190,  482,  484,  485,  487,  490,  493,
      476,  482,  491,  485,  487,  492,  484,  523,  190,  491,
      523,  493,  490,  500,  492,  190,  190,  190,  190,  190,
      190,  500,   14,    7,    0,  487,  490,  493,    0,  501,
      502,    0,  509,  492,  494,  494,  494,  494,  494,  502,
      494,  500,  501,    0,  190,  190,  190,  190,  190,  190,
      191,  191,  191,  191,  191,    0,  509,  501,  502,  513,
      506,  509,  508,    0,  495,  495,  495,  495,  495,  191,
      538,  508,  513,  529,  514,  495,  191,  191,  191,  191,
      191,  191,  506,  514,  538,  529,  494,  513,    0,  506,

      508,  498,  498,  498,  498,  498,    0,    0,  538,  522,
        0,  529,  514,    0,  498,  191,  191,  191,  191,  191,
      191,  193,  193,  193,  193,  193,  495,  570,    0,  570,
        0,  522,  193,  515,  515,  515,  515,  515,  522,  530,
      193,  496,  496,  496,  496,  496,  515,  193,  193,  193,
      193,  193,  193,  498,    0,  570,    0,  496,    0,  524,
      525,  532,    0,  530,    0,    0,    0,  525,  530,  524,
      531,    0,    0,  193,  532,  541,  193,  193,  193,  193,
      193,  193,  198,  198,  198,  198,  198,  524,  525,  532,
      541,    0,  531,  496,  517,  517,  517,  517,  517,  531,

      539,  198,  545,  541,    0,  549,  539,  517,  198,  198,
      198,  198,  198,  198,  497,  497,  497,  497,  497,  519,
      519,  519,  519,  519,  545,    0,    0,  549,  539,    0,
      497,  545,  519,  540,  549,  542,  543,  198,  198,  198,
      198,  198,  198,  206,  542,  540,  517,    0,  543,  553,
      206,  206,  206,  206,  206,  206,  533,  533,  533,  533,
      533,  540,  553,  542,  543,  544,  497,  551,    0,  533,
        0,  519,  550,    0,  544,  582,  551,  553,  564,  206,
      206,  206,  206,  206,  206,  211,  211,  211,  211,  211,
      582,  564,    0,  544,  550,  551,  535,  535,  535,  535,

      535,  550,  552,  582,  211,  563,  564,  573,  533,  535,
        0,  211,  211,  211,  211,  211,  211,  546,  546,  546,
      546,  546,    0,  554,  552,    0,    0,  563,    0,  573,
      546,  552,  554,  576,  563,    0,  573,  559,  556,  576,
      211,  211,  211,  211,  211,  211,  222,  556,  535,    0,
      560,  554,  562,  222,  222,  222,  222,  222,  222,  560,
      562,  576,    0,    0,    0,  559,  556,  568,  572,  546,
        0,    0,    0,  559,  578,    0,  568,  572,  560,    0,
      562,    0,  222,  222,  222,  222,  222,  222,  223,  223,
      223,  223,  223,  559,    0,  568,  572,  578,  575,  575,

      575,  575,  575,  578,  580,  583,  585,  223,    0,    0,
      588,  575,  586,  580,  223,  223,  223,  223,  223,  223,
      581,  581,  581,  581,  581,  588,    0,  583,  585,    0,
        0,    0,  580,  581,  583,  585,  586,    0,  588,    0,
        0,  586,    0,  223,  223,  223,  223,  223,  223,  230,
      575,    0,    0,    0,  589,    0,  230,  230,  230,  230,
      230,  230,  589,    0,    0,    0,    0,    0,    0,    0,
        0,    0,  581,    0,    0,    0,    0,    0,    0,    0,
        0,    0,  589,    0,    0,  230,  230,  230,  230,  230,
      230,  233,  233,  233,  233,  233,    0,  233,    0,    0,

        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
      233,    0,    0,    0,    0,    0,    0,  233,  233,  233,
      233,  233,  233,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,  233,    0,    0,  233,  233,  233,  233,
      233,  233,  235,    0,    0,    0,    0,    0,    0,  235,
      235,  235,  235,  235,  235,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,  235,  235,
      235,  235,  235,  235,  236,  236,  236,  236,  236,    0,

        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,  236,    0,    0,    0,    0,    0,    0,
      236,  236,  236,  236,  236,  236,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,  236,
      236,  236,  236,  236,  236,  237,  237,  237,  237,  237,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,  237,    0,    0,    0,    0,    0,
        0,  237,  237,  237,  237,  237,  237,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
      237,  237,  237,  237,  237,  237,  238,  238,  238,  238,
      238,    0,    0,    0,    0,    0,    0,  238,    0,    0,
        0,    0,    0,    0,    0,  238,    0,    0,    0,    0,
        0,    0,  238,  238,  238,  238,  238,  238,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,  238,    0,
        0,  238,  238,  238,  238,  238,  238,  242,  242,  242,
      242,  242,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,  242,    0,    0,    0,

        0,    0,    0,  242,  242,  242,  242,  242,  242,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,  242,  242,  242,  242,  242,  242,  245,    0,
        0,    0,    0,    0,    0,  245,  245,  245,  245,  245,
      245,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,  245,  245,  245,  245,  245,  245,
      248,  248,  248,  248,  248,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,  248,

        0,    0,    0,    0,    0,    0,  248,  248,  248,  248,
      248,  248,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,  248,  248,  248,  248,  248,
      248,  259,    0,    0,    0,    0,    0,    0,  259,  259,
      259,  259,  259,  259,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,  259,  259,  259,
      259,  259,  259,  260,  260,  260,  260,  260,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,  260,    0,    0,    0,    0,    0,    0,  260,
      260,  260,  260,  260,  260,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,  260,  260,
      260,  260,  260,  260,  271,  271,  271,  271,  271,    0,
      271,    0,    0,    0,    0,  271,  271,  271,    0,    0,
        0,    0,    0,  271,    0,    0,    0,    0,    0,    0,
      271,  271,  271,  271,  271,  271,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,  271,    0,    0,  271,

      271,  271,  271,  271,  271,  272,    0,    0,    0,    0,
        0,    0,  272,  272,  272,  272,  272,  272,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,  272,  272,  272,  272,  272,  272,  274,  274,  274,
      274,  274,    0,  274,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,  274,    0,    0,    0,
        0,    0,    0,  274,  274,  274,  274,  274,  274,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,  274,

        0,    0,  274,  274,  274,  274,  274,  274,  276,    0,
        0,    0,    0,    0,    0,  276,  276,  276,  276,  276,
      276,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,  276,    0,    0,  276,  276,  276,  276,  276,  276,
      277,  277,  277,  277,  277,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,  277,
        0,    0,    0,    0,    0,    0,  277,  277,  277,  277,
      277,  277,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,  277,    0,    0,  277,  277,  277,  277,  277,
      277,  278,  278,  278,  278,  278,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
      278,    0,    0,    0,    0,    0,    0,  278,  278,  278,
      278,  278,  278,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,  278,  278,  278,  278,
      278,  278,  279,  279,  279,  279,  279,    0,    0,    0,
        0,    0,    0,  279,    0,    0,    0,    0,    0,    0,
        0,  279,    0,    0,    0,    0,    0,    0,  279,  279,

      279,  279,  279,  279,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,  279,    0,    0,  279,  279,  279,
      279,  279,  279,  280,  280,  280,  280,  280,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,  280,    0,    0,    0,    0,    0,    0,  280,
      280,  280,  280,  280,  280,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,  280,    0,
        0,    0,    0,    0,    0,    0,    0,    0,  280,  280,
      280,  280,  280,  280,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,    0,    0,  280,  281,  281,  281,
      281,  281,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,  281,    0,    0,    0,
        0,    0,    0,  281,  281,  281,  281,  281,  281,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,  281,  281,  281,  281,  281,  281,  282,    0,
        0,    0,    0,    0,    0,  282,  282,  282,  282,  282,
      282,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,  282,  282,  282,  282,  282,  282,
      283,  283,  283,  283,  283,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,  283,
        0,    0,    0,    0,    0,    0,  283,  283,  283,  283,
      283,  283,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,  283,  283,  283,  283,  283,
      283,  285,  285,  285,  285,  285,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
      285,    0,    0,    0,    0,    0,    0,  285,  285,  285,

      285,  285,  285,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,  285,  285,  285,  285,
      285,  285,  297,    0,    0,    0,    0,    0,    0,  297,
      297,  297,  297,  297,  297,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,  297,  297,
      297,  297,  297,  297,  298,  298,  298,  298,  298,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,  298,    0,    0,    0,    0,    0,    0,

      298,  298,  298,  298,  298,  298,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,  298,
      298,  298,  298,  298,  298,  308,  308,  308,  308,    0,
        0,  308,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,  308,    0,    0,    0,    0,    0,
        0,  308,  308,  308,  308,  308,  308,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,  308,    0,    0,
      308,  308,  308,  308,  308,  308,  310,  310,  310,  310,

        0,    0,    0,    0,    0,    0,    0,  310,    0,    0,
        0,    0,    0,    0,    0,  310,    0,    0,    0,    0,
        0,    0,  310,  310,  310,  310,  310,  310,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,  310,    0,
        0,  310,  310,  310,  310,  310,  310,  315,  315,  315,
      315,  315,    0,    0,    0,    0,    0,    0,    0,    0,
      315,    0,    0,    0,    0,    0,  315,    0,    0,    0,
        0,    0,    0,  315,  315,  315,  315,  315,  315,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,    0,    0,    0,    0,    0,  315,
        0,    0,  315,  315,  315,  315,  315,  315,  316,  316,
      316,  316,  316,    0,  316,    0,    0,    0,    0,  316,
      316,  316,    0,    0,    0,    0,    0,  316,    0,    0,
        0,    0,    0,    0,  316,  316,  316,  316,  316,  316,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
      316,    0,    0,  316,  316,  316,  316,  316,  316,  317,
        0,    0,    0,    0,    0,    0,  317,  317,  317,  317,
      317,  317,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,  317,  317,  317,  317,  317,
      317,  319,  319,  319,  319,  319,    0,  319,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
      319,    0,    0,    0,    0,    0,    0,  319,  319,  319,
      319,  319,  319,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,  319,    0,    0,  319,  319,  319,  319,
      319,  319,  322,  322,  322,  322,  322,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,  322,    0,    0,    0,    0,    0,    0,  322,  322,
      322,  322,  322,  322,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,  322,    0,    0,  322,  322,  322,
      322,  322,  322,  323,  323,  323,  323,  323,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,  323,    0,    0,    0,    0,    0,    0,  323,
      323,  323,  323,  323,  323,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,  323,  323,

      323,  323,  323,  323,  324,  324,  324,  324,  324,    0,
        0,    0,    0,    0,    0,  324,    0,    0,    0,    0,
        0,    0,    0,  324,    0,    0,    0,    0,    0,    0,
      324,  324,  324,  324,  324,  324,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,  324,    0,    0,  324,
      324,  324,  324,  324,  324,  325,  325,  325,  325,  325,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,  325,    0,    0,  325,    0,    0,    0,    0,    0,
        0,  325,  325,  325,  325,  325,  325,    0,    0,    0,

        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
      325,  325,  325,  325,  325,  325,  326,  326,  326,  326,
      326,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,  326,    0,    0,    0,    0,
        0,    0,  326,  326,  326,  326,  326,  326,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,  326,  326,  326,  326,  326,  326,  327,  327,  327,
      327,  327,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,    0,    0,  327,    0,    0,    0,
        0,    0,    0,  327,  327,  327,  327,  327,  327,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,  327,  327,  327,  327,  327,  327,  329,  329,
      329,  329,  329,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,  329,    0,    0,
        0,    0,    0,    0,  329,  329,  329,  329,  329,  329,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,  329,  329,  329,  329,  329,  329,  342,
        0,    0,    0,    0,    0,    0,  342,  342,  342,  342,
      342,  342,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,  342,  342,  342,  342,  342,
      342,  343,  343,  343,  343,  343,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
      343,    0,    0,    0,    0,    0,    0,  343,  343,  343,
      343,  343,  343,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,    0,    0,  343,  343,  343,  343,
      343,  343,  356,  356,  356,  356,  356,    0,  356,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,  356,    0,    0,    0,    0,    0,    0,  356,  356,
      356,  356,  356,  356,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,  356,    0,    0,  356,  356,  356,
      356,  356,  356,  357,  357,  357,  357,    0,    0,  357,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,  357,    0,    0,    0,    0,    0,    0,  357,

      357,  357,  357,  357,  357,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,  357,    0,    0,  357,  357,
      357,  357,  357,  357,  361,  361,  361,  361,  361,    0,
        0,    0,    0,    0,    0,  361,    0,    0,    0,    0,
        0,    0,    0,  361,    0,    0,    0,    0,    0,    0,
      361,  361,  361,  361,  361,  361,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,  361,    0,    0,  361,
      361,  361,  361,  361,  361,  362,  362,  362,  362,    0,

        0,    0,    0,    0,    0,    0,  362,    0,    0,    0,
        0,    0,    0,    0,  362,    0,    0,    0,    0,    0,
        0,  362,  362,  362,  362,  362,  362,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,  362,    0,    0,
      362,  362,  362,  362,  362,  362,  363,  363,  363,  363,
      363,    0,    0,    0,    0,    0,    0,    0,    0,  363,
        0,    0,    0,    0,    0,  363,    0,    0,    0,    0,
        0,    0,  363,  363,  363,  363,  363,  363,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,    0,    0,    0,    0,  363,    0,
        0,  363,  363,  363,  363,  363,  363,  367,    0,    0,
        0,    0,    0,    0,  367,  367,  367,  367,  367,  367,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,  367,  367,  367,  367,  367,  367,  368,
        0,    0,    0,    0,    0,    0,  368,  368,  368,  368,
      368,  368,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,  368,  368,  368,  368,  368,

      368,  371,    0,    0,    0,    0,    0,    0,  371,  371,
      371,  371,  371,  371,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,  371,  371,  371,
      371,  371,  371,  372,  372,  372,  372,  372,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,  372,    0,    0,    0,    0,    0,    0,  372,
      372,  372,  372,  372,  372,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,  372,  372,

      372,  372,  372,  372,  374,  374,  374,  374,  374,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,  374,    0,    0,    0,    0,    0,    0,
      374,  374,  374,  374,  374,  374,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,  374,
      374,  374,  374,  374,  374,  401,    0,    0,    0,    0,
        0,    0,  401,  401,  401,  401,  401,  401,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,  401,  401,  401,  401,  401,  401,  405,    0,    0,
        0,    0,    0,    0,  405,  405,  405,  405,  405,  405,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,  405,  405,  405,  405,  405,  405,  406,
      406,  406,  406,  406,    0,    0,    0,    0,    0,    0,
        0,    0,  406,    0,    0,    0,    0,    0,  406,    0,
        0,    0,    0,    0,    0,  406,  406,  406,  406,  406,
      406,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,  406,    0,    0,  406,  406,  406,  406,  406,  406,
      411,    0,    0,    0,    0,    0,    0,  411,    0,  411,
        0,    0,    0,    0,  411,  411,    0,    0,  411,    0,
        0,    0,    0,  411,    0,    0,    0,    0,    0,  411,
        0,    0,    0,    0,    0,  411,    0,  411,    0,    0,
        0,    0,  411,  411,    0,    0,  411,  428,    0,    0,
        0,    0,    0,    0,  428,  428,  428,  428,  428,  428,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,  428,  428,  428,  428,  428,  428,  429,

        0,    0,    0,    0,    0,    0,  429,  429,  429,  429,
      429,  429,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,  429,  429,  429,  429,  429,
      429,  430,    0,    0,    0,    0,    0,    0,  430,  430,
      430,  430,  430,  430,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,  430,  430,  430,
      430,  430,  430,  453,    0,    0,    0,    0,    0,    0,
      453,  453,  453,  453,  453,  453,    0,    0,    0,    0,

        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,  453,
      453,  453,  453,  453,  453,  454,    0,    0,    0,    0,
        0,    0,  454,  454,  454,  454,  454,  454,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,  454,  454,  454,  454,  454,  454,  455,    0,    0,
        0,    0,    0,    0,  455,  455,  455,  455,  455,  455,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,  455,  455,  455,  455,  455,  455,  473,
        0,    0,    0,    0,    0,    0,  473,  473,  473,  473,
      473,  473,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,  473,  473,  473,  473,  473,
      473,  474,    0,    0,    0,    0,    0,    0,  474,  474,
      474,  474,  474,  474,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,  474,  474,  474,
      474,  474,  474,  499,    0,    0,    0,    0,    0,    0,

      499,  499,  499,  499,  499,  499,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,  499,
      499,  499,  499,  499,  499,  518,    0,    0,    0,    0,
        0,    0,  518,  518,  518,  518,  518,  518,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,  518,  518,  518,  518,  518,  518,  520,  520,  520,
      520,  520,    0,    0,    0,    0,    0,    0,    0,    0,
      520,    0,    0,    0,    0,    0,  520,    0,    0,    0,

        0,    0,    0,  520,  520,  520,  520,  520,  520,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,  520,
        0,    0,  520,  520,  520,  520,  520,  520,  534,  534,
      534,  534,  534,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,  534,    0,    0,
        0,    0,    0,    0,  534,  534,  534,  534,  534,  534,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,  534,  534,  534,  534,  534,  534,  536,

        0,    0,    0,    0,    0,    0,  536,  536,  536,  536,
      536,  536,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,  536,  536,  536,  536,  536,
      536,  547,    0,    0,    0,    0,    0,    0,  547,  547,
      547,  547,  547,  547,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,  547,  547,  547,
      547,  547,  547,  548,    0,    0,    0,    0,    0,    0,
      548,  548,  548,  548,  548,  548,    0,    0,    0,    0,

        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,  548,
      548,  548,  548,  548,  548,  557,    0,    0,    0,    0,
        0,    0,  557,  557,  557,  557,  557,  557,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,  557,  557,  557,  557,  557,  557,  558,    0,    0,
        0,    0,    0,    0,  558,  558,  558,  558,  558,  558,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,  558,  558,  558,  558,  558,  558,  566,
        0,    0,    0,    0,    0,    0,  566,  566,  566,  566,
      566,  566,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,  566,  566,  566,  566,  566,
      566,  567,    0,    0,    0,    0,    0,    0,  567,  567,
      567,  567,  567,  567,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,  567,  567,  567,
      567,  567,  567,  574,    0,    0,    0,    0,    0,    0,

      574,  574,  574,  574,  574,  574,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,  574,
      574,  574,  574,  574,  574,  592,    0,    0,  592,  592,
      592,  592,  592,  592,  592,  592,  592,  592,  593,  593,
        0,  593,  593,  594,    0,    0,  594,  594,  594,  594,
      594,  594,  594,  594,  594,  594,  595,  595,    0,  595,
      595,  596,    0,  596,  596,    0,  596,  596,  597,  597,
      597,  597,  597,  597,  597,  597,  597,  597,  598,  598,
      598,  598,  598,  598,  598,  598,  598,  598,  598,  598,

      598,  600,  600,    0,  600,  600,  601,  601,  601,  601,
      601,  601,  601,  601,  601,  601,  602,  602,  602,  602,
      602,  602,  602,  602,  602,  602,  602,  602,  602,  603,
      603,  603,  603,  603,  603,  603,  603,  603,  603,  603,
      603,  603,  603,  605,  605,    0,  605,  605,  606,  606,
      606,  606,  606,  606,  606,  606,  606,  606,  607,  607,
        0,  607,  607,  608,  608,  608,  608,  608,  608,  608,
      608,  608,  608,  609,  609,  609,  609,  609,  609,  609,
      609,  609,  609,  610,  610,  610,  612,  612,  612,  612,
      612,  612,  612,  612,  612,  612,  613,  613,    0,  613,

      613,  613,  613,  613,  613,  613,  613,  613,  613,  614,
      614,  614,  614,  614,  614,  614,  614,  614,  614,  614,
      614,  614,  615,  615,  615,  615,  615,  615,  615,  615,
      615,  615,  615,  615,  615,  615,  616,  616,  616,  616,
      616,  616,  616,  616,  616,  616,  616,  616,  616,  616,
      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
      618,  618,  618,  618,  618,  618,  618,  618,  618,  618,
      619,  619,  619,  619,  621,  621,  621,  621,  621,  621,
      621,  621,  621,  621,  621,  621,  621,  621,  623,  623,
      623,  623,  624,  624,  624,  624,  624,  624,    0,  624,

      624,  624,  624,  624,  624,  625,  625,  625,  625,  625,
      625,  625,  625,  625,  625,  625,  625,  625,  627,  627,
      627,  627,  627,  627,  627,  627,  627,  627,  627,  627,
      627,  627,  629,  629,  629,  629,  630,  630,  630,  630,
      630,  630,    0,  630,  630,  630,  630,  630,  630,  631,
        0,    0,  631,  631,  631,  631,  631,  631,  631,  631,
      631,  631,  632,    0,    0,  632,  632,  632,  632,  632,
      632,  632,  632,  632,  632,  633,  633,  633,  633,  633,
      633,  633,  633,  633,  633,  633,  633,  633,  634,  634,
      634,  634,  634,  634,  634,  634,  634,  634,  634,  634,

      634,  636,  636,    0,  636,  636,  637,  637,  637,  637,
      637,  637,  637,  637,  637,  637,  637,  637,  637,  639,
      639,  639,  639,  640,  640,  640,  640,  640,  640,  640,
      640,  640,  640,  640,  640,  640,  641,    0,    0,  641,
      641,  641,  641,  641,  641,  641,  641,  641,  641,  642,
      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
      642,  642,  643,  643,  643,  643,  643,    0,    0,  643,
      643,  643,  643,  643,  643,  644,  644,  644,  644,  644,
      644,  644,  644,  644,  644,  644,  644,  644,  645,  645,
      645,  645,  645,  645,  645,  645,  645,  645,  645,  645,

      645,  646,  646,    0,  646,  646,  647,  647,  647,  647,
      647,  647,  647,  647,  647,  647,  647,  647,  647,  649,
      649,  649,  649,  650,  650,    0,  650,  650,  650,  650,
      650,  650,  650,  650,  650,  650,  651,  651,  651,  651,
      651,  651,  651,  651,  651,  651,  651,  651,  651,  652,
      652,    0,  652,  652,  652,  652,  652,  652,  652,  652,
      652,  652,  653,  653,  653,  653,  653,  653,  653,  653,
      653,  653,  653,  653,  653,  654,  654,  654,  654,  654,
        0,    0,  654,  654,  654,  654,  654,  654,  657,  657,
      657,  657,    0,    0,    0,    0,  657,    0,    0,  657,

      657,  658,  658,  658,  658,    0,    0,    0,  658,  658,
      658,    0,  658,  658,  659,  659,  659,  659,  659,  659,
      659,  659,  659,  659,  660,  660,  660,  660,  660,  660,
      660,  660,  660,  660,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,

      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
      591,  591,  591,  591,  591,  591,  591,  591,  591,  591
    } ;

#line 1 "<stdin>"
YY_DECL
{
	register yy_state_type yy_current_state;
	register UChar *yy_cp, *yy_bp;
	register int yy_act;
	while ( 1 )		/* loops until end-of-file is reached */
		{
		yy_cp = (yy_c_buf_p);

		/* Support of yytext. */
		*yy_cp = (yy_hold_char);

		/* yy_bp points to the position in yy_ch_buf of the start of
		 * the current run.
		 */
		yy_bp = yy_cp;

		yy_current_state = (yy_start);
		do
			{
			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
			if ( yy_accept[yy_current_state] )
				{
				(yy_last_accepting_state) = yy_current_state;
				(yy_last_accepting_cpos) = yy_cp;
				}
			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 >= 592 )
					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_base[yy_current_state] != 6635 );

yy_find_action:
		yy_act = yy_accept[yy_current_state];
		if ( yy_act == 0 )
			{ /* have to back up */
			yy_cp = (yy_last_accepting_cpos);
			yy_current_state = (yy_last_accepting_state);
			yy_act = yy_accept[yy_current_state];
			}

		YY_DO_BEFORE_ACTION;


		switch ( yy_act )
	{ /* beginning of action switch */
			case 0: /* must back up */
			/* undo the effects of YY_DO_BEFORE_ACTION */
			*yy_cp = (yy_hold_char);
			yy_cp = (yy_last_accepting_cpos);
			yy_current_state = (yy_last_accepting_state);
			goto yy_find_action;

case 1:
/* rule 1 can match eol */
YY_RULE_SETUP
#line 31 "<stdin>"
{countLines(); /* ignore comments */ }
	YY_BREAK
case 2:
/* rule 2 can match eol */
YY_RULE_SETUP
#line 33 "<stdin>"
{countLines(); yyTok = WHITESPACE; return yyTok;}
	YY_BREAK
case 3:
YY_RULE_SETUP
#line 35 "<stdin>"
{yyTok = SGML_CD; return yyTok;}
	YY_BREAK
case 4:
YY_RULE_SETUP
#line 36 "<stdin>"
{yyTok = SGML_CD; return yyTok;}
	YY_BREAK
case 5:
YY_RULE_SETUP
#line 37 "<stdin>"
{yyTok = INCLUDES; return yyTok;}
	YY_BREAK
case 6:
YY_RULE_SETUP
#line 38 "<stdin>"
{yyTok = DASHMATCH; return yyTok;}
	YY_BREAK
case 7:
YY_RULE_SETUP
#line 39 "<stdin>"
{yyTok = BEGINSWITH; return yyTok;}
	YY_BREAK
case 8:
YY_RULE_SETUP
#line 40 "<stdin>"
{yyTok = ENDSWITH; return yyTok;}
	YY_BREAK
case 9:
YY_RULE_SETUP
#line 41 "<stdin>"
{yyTok = CONTAINS; return yyTok;}
	YY_BREAK
case 10:
YY_RULE_SETUP
#line 42 "<stdin>"
{yyTok = MEDIA_NOT; return yyTok;}
	YY_BREAK
case 11:
YY_RULE_SETUP
#line 43 "<stdin>"
{yyTok = MEDIA_ONLY; return yyTok;}
	YY_BREAK
case 12:
YY_RULE_SETUP
#line 44 "<stdin>"
{yyTok = MEDIA_AND; return yyTok;}
	YY_BREAK
case 13:
YY_RULE_SETUP
#line 45 "<stdin>"
{BEGIN(mediaquery); yyTok = VARIABLES_FOR; return yyTok; }
	YY_BREAK
case 14:
/* rule 14 can match eol */
YY_RULE_SETUP
#line 47 "<stdin>"
{yyTok = STRING; return yyTok;}
	YY_BREAK
case 15:
/* rule 15 can match eol */
YY_RULE_SETUP
#line 48 "<stdin>"
{yyTok = IDENT; return yyTok;}
	YY_BREAK
case 16:
YY_RULE_SETUP
#line 49 "<stdin>"
{yyTok = NTH; return yyTok;}
	YY_BREAK
case 17:
YY_RULE_SETUP
#line 51 "<stdin>"
{yyTok = HEX; return yyTok;}
	YY_BREAK
case 18:
/* rule 18 can match eol */
YY_RULE_SETUP
#line 52 "<stdin>"
{yyTok = IDSEL; return yyTok;}
	YY_BREAK
case 19:
YY_RULE_SETUP
#line 54 "<stdin>"
{BEGIN(mediaquery); yyTok = IMPORT_SYM; return yyTok;}
	YY_BREAK
case 20:
YY_RULE_SETUP
#line 55 "<stdin>"
{yyTok = PAGE_SYM; return yyTok;}
	YY_BREAK
case 21:
YY_RULE_SETUP
#line 56 "<stdin>"
{yyTok = TOPLEFTCORNER_SYM; return yyTok;}
	YY_BREAK
case 22:
YY_RULE_SETUP
#line 57 "<stdin>"
{yyTok = TOPLEFT_SYM; return yyTok;}
	YY_BREAK
case 23:
YY_RULE_SETUP
#line 58 "<stdin>"
{yyTok = TOPCENTER_SYM; return yyTok;}
	YY_BREAK
case 24:
YY_RULE_SETUP
#line 59 "<stdin>"
{yyTok = TOPRIGHT_SYM; return yyTok;}
	YY_BREAK
case 25:
YY_RULE_SETUP
#line 60 "<stdin>"
{yyTok = TOPRIGHTCORNER_SYM; return yyTok;}
	YY_BREAK
case 26:
YY_RULE_SETUP
#line 61 "<stdin>"
{yyTok = BOTTOMLEFTCORNER_SYM; return yyTok;}
	YY_BREAK
case 27:
YY_RULE_SETUP
#line 62 "<stdin>"
{yyTok = BOTTOMLEFT_SYM; return yyTok;}
	YY_BREAK
case 28:
YY_RULE_SETUP
#line 63 "<stdin>"
{yyTok = BOTTOMCENTER_SYM; return yyTok;}
	YY_BREAK
case 29:
YY_RULE_SETUP
#line 64 "<stdin>"
{yyTok = BOTTOMRIGHT_SYM; return yyTok;}
	YY_BREAK
case 30:
YY_RULE_SETUP
#line 65 "<stdin>"
{yyTok = BOTTOMRIGHTCORNER_SYM; return yyTok;}
	YY_BREAK
case 31:
YY_RULE_SETUP
#line 66 "<stdin>"
{yyTok = LEFTTOP_SYM; return yyTok;}
	YY_BREAK
case 32:
YY_RULE_SETUP
#line 67 "<stdin>"
{yyTok = LEFTMIDDLE_SYM; return yyTok;}
	YY_BREAK
case 33:
YY_RULE_SETUP
#line 68 "<stdin>"
{yyTok = LEFTBOTTOM_SYM; return yyTok;}
	YY_BREAK
case 34:
YY_RULE_SETUP
#line 69 "<stdin>"
{yyTok = RIGHTTOP_SYM; return yyTok;}
	YY_BREAK
case 35:
YY_RULE_SETUP
#line 70 "<stdin>"
{yyTok = RIGHTMIDDLE_SYM; return yyTok;}
	YY_BREAK
case 36:
YY_RULE_SETUP
#line 71 "<stdin>"
{yyTok = RIGHTBOTTOM_SYM; return yyTok;}
	YY_BREAK
case 37:
YY_RULE_SETUP
#line 72 "<stdin>"
{BEGIN(mediaquery); yyTok = MEDIA_SYM; return yyTok;}
	YY_BREAK
case 38:
YY_RULE_SETUP
#line 73 "<stdin>"
{yyTok = FONT_FACE_SYM; return yyTok;}
	YY_BREAK
case 39:
YY_RULE_SETUP
#line 74 "<stdin>"
{yyTok = CHARSET_SYM; return yyTok;}
	YY_BREAK
case 40:
YY_RULE_SETUP
#line 75 "<stdin>"
{yyTok = NAMESPACE_SYM; return yyTok; }
	YY_BREAK
case 41:
YY_RULE_SETUP
#line 76 "<stdin>"
{yyTok = WEBKIT_RULE_SYM; return yyTok; }
	YY_BREAK
case 42:
YY_RULE_SETUP
#line 77 "<stdin>"
{yyTok = WEBKIT_DECLS_SYM; return yyTok; }
	YY_BREAK
case 43:
YY_RULE_SETUP
#line 78 "<stdin>"
{yyTok = WEBKIT_VALUE_SYM; return yyTok; }
	YY_BREAK
case 44:
YY_RULE_SETUP
#line 79 "<stdin>"
{BEGIN(mediaquery); yyTok = WEBKIT_MEDIAQUERY_SYM; return yyTok; }
	YY_BREAK
case 45:
YY_RULE_SETUP
#line 80 "<stdin>"
{yyTok = WEBKIT_SELECTOR_SYM; return yyTok; }
	YY_BREAK
case 46:
YY_RULE_SETUP
#line 81 "<stdin>"
{BEGIN(mediaquery); yyTok = WEBKIT_VARIABLES_SYM; return yyTok; }
	YY_BREAK
case 47:
YY_RULE_SETUP
#line 82 "<stdin>"
{BEGIN(forkeyword); yyTok = WEBKIT_DEFINE_SYM; return yyTok; }
	YY_BREAK
case 48:
YY_RULE_SETUP
#line 83 "<stdin>"
{ yyTok = WEBKIT_VARIABLES_DECLS_SYM; return yyTok; }
	YY_BREAK
case 49:
YY_RULE_SETUP
#line 84 "<stdin>"
{yyTok = WEBKIT_KEYFRAMES_SYM; return yyTok; }
	YY_BREAK
case 50:
YY_RULE_SETUP
#line 85 "<stdin>"
{yyTok = WEBKIT_KEYFRAME_RULE_SYM; return yyTok; }
	YY_BREAK
case 51:
/* rule 51 can match eol */
YY_RULE_SETUP
#line 87 "<stdin>"
{yyTok = ATKEYWORD; return yyTok; }
	YY_BREAK
case 52:
/* rule 52 can match eol */
YY_RULE_SETUP
#line 89 "<stdin>"
{yyTok = IMPORTANT_SYM; return yyTok;}
	YY_BREAK
case 53:
YY_RULE_SETUP
#line 91 "<stdin>"
{yyTok = EMS; return yyTok;}
	YY_BREAK
case 54:
YY_RULE_SETUP
#line 92 "<stdin>"
{yyTok = REMS; return yyTok;}
	YY_BREAK
case 55:
YY_RULE_SETUP
#line 93 "<stdin>"
{yyTok = QEMS; return yyTok;} /* quirky ems */
	YY_BREAK
case 56:
YY_RULE_SETUP
#line 94 "<stdin>"
{yyTok = EXS; return yyTok;}
	YY_BREAK
case 57:
YY_RULE_SETUP
#line 95 "<stdin>"
{yyTok = PXS; return yyTok;}
	YY_BREAK
case 58:
YY_RULE_SETUP
#line 96 "<stdin>"
{yyTok = CMS; return yyTok;}
	YY_BREAK
case 59:
YY_RULE_SETUP
#line 97 "<stdin>"
{yyTok = MMS; return yyTok;}
	YY_BREAK
case 60:
YY_RULE_SETUP
#line 98 "<stdin>"
{yyTok = INS; return yyTok;}
	YY_BREAK
case 61:
YY_RULE_SETUP
#line 99 "<stdin>"
{yyTok = PTS; return yyTok;}
	YY_BREAK
case 62:
YY_RULE_SETUP
#line 100 "<stdin>"
{yyTok = PCS; return yyTok;}
	YY_BREAK
case 63:
YY_RULE_SETUP
#line 101 "<stdin>"
{yyTok = DEGS; return yyTok;}
	YY_BREAK
case 64:
YY_RULE_SETUP
#line 102 "<stdin>"
{yyTok = RADS; return yyTok;}
	YY_BREAK
case 65:
YY_RULE_SETUP
#line 103 "<stdin>"
{yyTok = GRADS; return yyTok;}
	YY_BREAK
case 66:
YY_RULE_SETUP
#line 104 "<stdin>"
{yyTok = TURNS; return yyTok;}
	YY_BREAK
case 67:
YY_RULE_SETUP
#line 105 "<stdin>"
{yyTok = MSECS; return yyTok;}
	YY_BREAK
case 68:
YY_RULE_SETUP
#line 106 "<stdin>"
{yyTok = SECS; return yyTok;}
	YY_BREAK
case 69:
YY_RULE_SETUP
#line 107 "<stdin>"
{yyTok = HERZ; return yyTok;}
	YY_BREAK
case 70:
YY_RULE_SETUP
#line 108 "<stdin>"
{yyTok = KHERZ; return yyTok;}
	YY_BREAK
case 71:
/* rule 71 can match eol */
YY_RULE_SETUP
#line 109 "<stdin>"
{yyTok = DIMEN; return yyTok;}
	YY_BREAK
case 72:
YY_RULE_SETUP
#line 110 "<stdin>"
{yyTok = PERCENTAGE; return yyTok;}
	YY_BREAK
case 73:
YY_RULE_SETUP
#line 111 "<stdin>"
{yyTok = INTEGER; return yyTok;}
	YY_BREAK
case 74:
YY_RULE_SETUP
#line 112 "<stdin>"
{yyTok = FLOATTOKEN; return yyTok;}
	YY_BREAK
case 75:
YY_RULE_SETUP
#line 114 "<stdin>"
{yyTok = NOTFUNCTION; return yyTok;}
	YY_BREAK
case 76:
/* rule 76 can match eol */
YY_RULE_SETUP
#line 115 "<stdin>"
{yyTok = URI; return yyTok;}
	YY_BREAK
case 77:
/* rule 77 can match eol */
YY_RULE_SETUP
#line 116 "<stdin>"
{yyTok = URI; return yyTok;}
	YY_BREAK
case 78:
/* rule 78 can match eol */
YY_RULE_SETUP
#line 117 "<stdin>"
{ yyTok = VARCALL; return yyTok; }
	YY_BREAK
case 79:
/* rule 79 can match eol */
YY_RULE_SETUP
#line 118 "<stdin>"
{yyTok = FUNCTION; return yyTok;}
	YY_BREAK
case 80:
YY_RULE_SETUP
#line 120 "<stdin>"
{yyTok = UNICODERANGE; return yyTok;}
	YY_BREAK
case 81:
YY_RULE_SETUP
#line 121 "<stdin>"
{yyTok = UNICODERANGE; return yyTok;}
	YY_BREAK
case 82:
#line 124 "<stdin>"
case 83:
YY_RULE_SETUP
#line 124 "<stdin>"
{BEGIN(INITIAL); yyTok = *yytext; return yyTok; }
	YY_BREAK
case 84:
YY_RULE_SETUP
#line 125 "<stdin>"
{yyTok = *yytext; return yyTok;}
	YY_BREAK
case 85:
YY_RULE_SETUP
#line 127 "<stdin>"
ECHO;
	YY_BREAK
#line 2873 "<stdout>"
case YY_END_OF_BUFFER:
	yy_c_buf_p = yy_cp - 1;
	yy_cp = yy_c_buf_p;
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(mediaquery):
case YY_STATE_EOF(forkeyword):
	yyterminate();

	default:
		YY_FATAL_ERROR(
			"fatal flex scanner internal error--no action found" );
	} /* end of action switch */
		} /* end of scanning one token */
} /* end of yylex */