File indexing completed on 2024-04-28 04:36:05

0001 #line 2 "cclexer.cpp"
0002 
0003 #line 4 "cclexer.cpp"
0004 
0005 #define  YY_INT_ALIGNED short int
0006 
0007 /* A lexical scanner generated by flex */
0008 
0009 #define FLEX_SCANNER
0010 #define YY_FLEX_MAJOR_VERSION 2
0011 #define YY_FLEX_MINOR_VERSION 5
0012 #define YY_FLEX_SUBMINOR_VERSION 39
0013 #if YY_FLEX_SUBMINOR_VERSION > 0
0014 #define FLEX_BETA
0015 #endif
0016 
0017     /* The c++ scanner is a mess. The FlexLexer.h header file relies on the
0018      * following macro. This is required in order to pass the c++-multiple-scanners
0019      * test in the regression suite. We get reports that it breaks inheritance.
0020      * We will address this in a future release of flex, or omit the C++ scanner
0021      * altogether.
0022      */
0023     #define yyFlexLexer yyFlexLexer
0024 
0025 /* First, we deal with  platform-specific or compiler-specific issues. */
0026 
0027 /* begin standard C headers. */
0028 
0029 /* end standard C headers. */
0030 
0031 /* flex integer type definitions */
0032 
0033 #ifndef FLEXINT_H
0034 #define FLEXINT_H
0035 
0036 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
0037 
0038 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
0039 
0040 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
0041  * if you want the limit (max/min) macros for int types. 
0042  */
0043 #ifndef __STDC_LIMIT_MACROS
0044 #define __STDC_LIMIT_MACROS 1
0045 #endif
0046 
0047 #include <inttypes.h>
0048 typedef int8_t flex_int8_t;
0049 typedef uint8_t flex_uint8_t;
0050 typedef int16_t flex_int16_t;
0051 typedef uint16_t flex_uint16_t;
0052 typedef int32_t flex_int32_t;
0053 typedef uint32_t flex_uint32_t;
0054 #else
0055 typedef signed char flex_int8_t;
0056 typedef short int flex_int16_t;
0057 typedef int flex_int32_t;
0058 typedef unsigned char flex_uint8_t; 
0059 typedef unsigned short int flex_uint16_t;
0060 typedef unsigned int flex_uint32_t;
0061 
0062 /* Limits of integral types. */
0063 #ifndef INT8_MIN
0064 #define INT8_MIN               (-128)
0065 #endif
0066 #ifndef INT16_MIN
0067 #define INT16_MIN              (-32767-1)
0068 #endif
0069 #ifndef INT32_MIN
0070 #define INT32_MIN              (-2147483647-1)
0071 #endif
0072 #ifndef INT8_MAX
0073 #define INT8_MAX               (127)
0074 #endif
0075 #ifndef INT16_MAX
0076 #define INT16_MAX              (32767)
0077 #endif
0078 #ifndef INT32_MAX
0079 #define INT32_MAX              (2147483647)
0080 #endif
0081 #ifndef UINT8_MAX
0082 #define UINT8_MAX              (255U)
0083 #endif
0084 #ifndef UINT16_MAX
0085 #define UINT16_MAX             (65535U)
0086 #endif
0087 #ifndef UINT32_MAX
0088 #define UINT32_MAX             (4294967295U)
0089 #endif
0090 
0091 #endif /* ! C99 */
0092 
0093 #endif /* ! FLEXINT_H */
0094 
0095 /* begin standard C++ headers. */
0096 #include <iostream> 
0097 #include <errno.h>
0098 #include <cstdlib>
0099 #include <cstdio>
0100 #include <cstring>
0101 /* end standard C++ headers. */
0102 
0103 #ifdef __cplusplus
0104 
0105 /* The "const" storage-class-modifier is valid. */
0106 #define YY_USE_CONST
0107 
0108 #else   /* ! __cplusplus */
0109 
0110 /* C99 requires __STDC__ to be defined as 1. */
0111 #if defined (__STDC__)
0112 
0113 #define YY_USE_CONST
0114 
0115 #endif  /* defined (__STDC__) */
0116 #endif  /* ! __cplusplus */
0117 
0118 #ifdef YY_USE_CONST
0119 #define yyconst const
0120 #else
0121 #define yyconst
0122 #endif
0123 
0124 /* Returned upon end-of-file. */
0125 #define YY_NULL 0
0126 
0127 /* Promotes a possibly negative, possibly signed char to an unsigned
0128  * integer for use as an array index.  If the signed char is negative,
0129  * we want to instead treat it as an 8-bit unsigned char, hence the
0130  * double cast.
0131  */
0132 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
0133 
0134 /* Enter a start condition.  This macro really ought to take a parameter,
0135  * but we do it the disgusting crufty way forced on us by the ()-less
0136  * definition of BEGIN.
0137  */
0138 #define BEGIN (yy_start) = 1 + 2 *
0139 
0140 /* Translate the current start state into a value that can be later handed
0141  * to BEGIN to return to the state.  The YYSTATE alias is for lex
0142  * compatibility.
0143  */
0144 #define YY_START (((yy_start) - 1) / 2)
0145 #define YYSTATE YY_START
0146 
0147 /* Action number for EOF rule of a given start state. */
0148 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
0149 
0150 /* Special action meaning "start processing a new file". */
0151 #define YY_NEW_FILE yyrestart( yyin  )
0152 
0153 #define YY_END_OF_BUFFER_CHAR 0
0154 
0155 /* Size of default input buffer. */
0156 #ifndef YY_BUF_SIZE
0157 #define YY_BUF_SIZE 16384
0158 #endif
0159 
0160 /* The state buf must be large enough to hold one state per character in the main buffer.
0161  */
0162 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
0163 
0164 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
0165 #define YY_TYPEDEF_YY_BUFFER_STATE
0166 typedef struct yy_buffer_state *YY_BUFFER_STATE;
0167 #endif
0168 
0169 #ifndef YY_TYPEDEF_YY_SIZE_T
0170 #define YY_TYPEDEF_YY_SIZE_T
0171 typedef size_t yy_size_t;
0172 #endif
0173 
0174 extern yy_size_t yyleng;
0175 
0176 #define EOB_ACT_CONTINUE_SCAN 0
0177 #define EOB_ACT_END_OF_FILE 1
0178 #define EOB_ACT_LAST_MATCH 2
0179 
0180     #define YY_LESS_LINENO(n)
0181     #define YY_LINENO_REWIND_TO(ptr)
0182     
0183 /* Return all but the first "n" matched characters back to the input stream. */
0184 #define yyless(n) \
0185     do \
0186         { \
0187         /* Undo effects of setting up yytext. */ \
0188         int yyless_macro_arg = (n); \
0189         YY_LESS_LINENO(yyless_macro_arg);\
0190         *yy_cp = (yy_hold_char); \
0191         YY_RESTORE_YY_MORE_OFFSET \
0192         (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
0193         YY_DO_BEFORE_ACTION; /* set up yytext again */ \
0194         } \
0195     while ( 0 )
0196 
0197 #define unput(c) yyunput( c, (yytext_ptr)  )
0198 
0199 #ifndef YY_STRUCT_YY_BUFFER_STATE
0200 #define YY_STRUCT_YY_BUFFER_STATE
0201 struct yy_buffer_state
0202     {
0203 
0204     std::istream* yy_input_file;
0205 
0206     char *yy_ch_buf;        /* input buffer */
0207     char *yy_buf_pos;       /* current position in input buffer */
0208 
0209     /* Size of input buffer in bytes, not including room for EOB
0210      * characters.
0211      */
0212     yy_size_t yy_buf_size;
0213 
0214     /* Number of characters read into yy_ch_buf, not including EOB
0215      * characters.
0216      */
0217     yy_size_t yy_n_chars;
0218 
0219     /* Whether we "own" the buffer - i.e., we know we created it,
0220      * and can realloc() it to grow it, and should free() it to
0221      * delete it.
0222      */
0223     int yy_is_our_buffer;
0224 
0225     /* Whether this is an "interactive" input source; if so, and
0226      * if we're using stdio for input, then we want to use getc()
0227      * instead of fread(), to make sure we stop fetching input after
0228      * each newline.
0229      */
0230     int yy_is_interactive;
0231 
0232     /* Whether we're considered to be at the beginning of a line.
0233      * If so, '^' rules will be active on the next match, otherwise
0234      * not.
0235      */
0236     int yy_at_bol;
0237 
0238     int yy_bs_lineno; /**< The line count. */
0239     int yy_bs_column; /**< The column count. */
0240     
0241     /* Whether to try to fill the input buffer when we reach the
0242      * end of it.
0243      */
0244     int yy_fill_buffer;
0245 
0246     int yy_buffer_status;
0247 
0248 #define YY_BUFFER_NEW 0
0249 #define YY_BUFFER_NORMAL 1
0250     /* When an EOF's been seen but there's still some text to process
0251      * then we mark the buffer as YY_EOF_PENDING, to indicate that we
0252      * shouldn't try reading from the input source any more.  We might
0253      * still have a bunch of tokens to match, though, because of
0254      * possible backing-up.
0255      *
0256      * When we actually see the EOF, we change the status to "new"
0257      * (via yyrestart()), so that the user can continue scanning by
0258      * just pointing yyin at a new input file.
0259      */
0260 #define YY_BUFFER_EOF_PENDING 2
0261 
0262     };
0263 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
0264 
0265 /* We provide macros for accessing buffer states in case in the
0266  * future we want to put the buffer states in a more general
0267  * "scanner state".
0268  *
0269  * Returns the top of the stack, or NULL.
0270  */
0271 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
0272                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
0273                           : NULL)
0274 
0275 /* Same as previous macro, but useful when we know that the buffer stack is not
0276  * NULL or when we need an lvalue. For internal use only.
0277  */
0278 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
0279 
0280 void *yyalloc (yy_size_t  );
0281 void *yyrealloc (void *,yy_size_t  );
0282 void yyfree (void *  );
0283 
0284 #define yy_new_buffer yy_create_buffer
0285 
0286 #define yy_set_interactive(is_interactive) \
0287     { \
0288     if ( ! YY_CURRENT_BUFFER ){ \
0289         yyensure_buffer_stack (); \
0290         YY_CURRENT_BUFFER_LVALUE =    \
0291             yy_create_buffer( yyin, YY_BUF_SIZE ); \
0292     } \
0293     YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
0294     }
0295 
0296 #define yy_set_bol(at_bol) \
0297     { \
0298     if ( ! YY_CURRENT_BUFFER ){\
0299         yyensure_buffer_stack (); \
0300         YY_CURRENT_BUFFER_LVALUE =    \
0301             yy_create_buffer( yyin, YY_BUF_SIZE ); \
0302     } \
0303     YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
0304     }
0305 
0306 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
0307 
0308 /* Begin user sect3 */
0309 #define YY_SKIP_YYWRAP
0310 
0311 typedef unsigned char YY_CHAR;
0312 
0313 #define yytext_ptr yytext
0314 #define YY_INTERACTIVE
0315 
0316 #include <FlexLexer.h>
0317 
0318 int yyFlexLexer::yywrap() { return 1; }
0319 int yyFlexLexer::yylex()
0320     {
0321     LexerError( "yyFlexLexer::yylex invoked but %option yyclass used" );
0322     return 0;
0323     }
0324 
0325 #define YY_DECL int cc::Lexer::yylex()
0326 
0327 /* Done after the current pattern has been matched and before the
0328  * corresponding action - sets up yytext.
0329  */
0330 #define YY_DO_BEFORE_ACTION \
0331     (yytext_ptr) = yy_bp; \
0332     yyleng = (size_t) (yy_cp - yy_bp); \
0333     (yy_hold_char) = *yy_cp; \
0334     *yy_cp = '\0'; \
0335     (yy_c_buf_p) = yy_cp;
0336 
0337 #define YY_NUM_RULES 100
0338 #define YY_END_OF_BUFFER 101
0339 /* This struct is not used in this scanner,
0340    but its presence is necessary. */
0341 struct yy_trans_info
0342     {
0343     flex_int32_t yy_verify;
0344     flex_int32_t yy_nxt;
0345     };
0346 static yyconst flex_int16_t yy_accept[746] =
0347     {   0,
0348         0,    0,    6,    6,  101,   99,    1,    2,   22,   99,
0349         4,   96,   49,   43,   99,   10,   11,   39,   35,   16,
0350        37,   18,   41,   97,   97,   20,   17,   25,   34,   27,
0351        21,   14,   15,   47,   96,   96,   96,   96,   96,   96,
0352        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
0353        12,   45,   13,   23,   99,   99,   99,   99,   99,   99,
0354        99,   99,   99,   99,    6,    8,    7,    1,   29,    0,
0355        95,   94,    0,    0,    0,    0,    0,    0,    0,    0,
0356         0,    0,    4,   96,   96,    0,    0,    0,    0,    0,
0357         0,    0,    0,    0,    0,   50,   30,   44,    0,   93,
0358 
0359         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0360        40,   32,   36,   33,   38,   19,    0,   98,    0,    0,
0361         0,    0,    0,    5,    3,   42,   98,   97,    0,   98,
0362        98,   97,    0,    0,    0,    0,    0,    0,   97,    0,
0363         0,    0,    0,    0,   51,   26,   24,   28,   53,   48,
0364        96,   96,   96,   96,   96,   96,   96,   96,   60,   96,
0365        96,   96,   96,   96,   96,   65,   96,   96,   96,   96,
0366        96,   96,   96,   96,   96,   96,   96,   46,   31,   96,
0367        96,   96,    0,    0,    0,    0,    0,    0,    0,    0,
0368         0,    0,    0,    0,    0,    0,    0,    0,    6,    7,
0369 
0370         7,    9,    0,    0,    0,    0,    0,    0,    0,    0,
0371        96,   96,    0,    0,    0,    0,    0,    0,    0,    0,
0372         0,    0,    0,    0,    0,    0,    0,    0,    0,   92,
0373         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0374         0,    0,    0,    0,    0,    0,    0,    0,   55,   98,
0375        98,    0,    0,    0,    0,    0,    0,    0,    0,    3,
0376        98,   98,   98,    0,    0,    0,    0,    0,   97,    0,
0377        98,   98,    0,    0,    0,    0,    0,    0,   97,    0,
0378         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0379         0,    0,    0,    0,   52,   54,   96,   96,   96,   96,
0380 
0381        87,   96,   96,   96,   96,   96,   96,   96,   96,   96,
0382        96,   96,   63,   96,   96,   78,   96,   96,   96,   96,
0383        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
0384        96,   96,    0,    0,    0,    0,    0,   96,   96,   96,
0385         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0386         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0387        96,   96,   96,    0,    0,    0,    0,    0,    0,    0,
0388         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0389         0,   98,    0,    0,    0,    0,    0,   98,    0,   98,
0390         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0391 
0392         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0393         0,    0,    0,   97,   98,    0,   97,   96,   96,   96,
0394        96,   75,   96,   57,   79,   96,   96,   96,   96,   61,
0395        62,   96,   96,   64,   96,   81,   96,   96,   96,   96,
0396        96,   96,   96,   96,   96,   77,   96,   96,   96,   96,
0397         0,    0,    0,    0,    0,   96,    0,    0,    0,    0,
0398         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0399         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0400         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0401         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0402 
0403         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0404         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0405         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0406         0,    0,    0,   98,   98,   98,    0,    0,   98,   98,
0407         0,    0,    0,    0,    0,   96,   96,   96,   96,   56,
0408        72,   96,   96,   96,   96,   84,   96,   96,   96,   80,
0409        96,   96,   96,   96,   86,   96,   96,   68,   96,    0,
0410         0,    0,    0,    0,    0,    0,    0,   96,    0,    0,
0411         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0412         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0413 
0414         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0415         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0416         0,    0,    0,    0,    0,    0,    0,    0,   98,   98,
0417         0,   98,   98,    0,    0,    0,    0,    0,    0,    0,
0418         0,    0,    0,    0,    0,    0,   96,   96,   96,   96,
0419        96,   96,   85,   74,   91,   96,   66,   82,   69,   67,
0420        96,   96,   96,   96,    0,    0,    0,    0,    0,    0,
0421         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0423         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0424 
0425         0,    0,    0,   98,   88,   96,   96,   96,   96,   59,
0426        96,   73,   96,   96,    0,    0,    0,    0,    0,    0,
0427         0,    0,    0,    0,    0,    0,   98,   96,   90,   96,
0428        58,   76,   83,   70,    0,   96,   96,   96,   96,   96,
0429        96,   96,   71,   89,    0
0430     } ;
0431 
0432 static yyconst flex_int32_t yy_ec[256] =
0433     {   0,
0434         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
0435         1,    2,    1,    1,    1,    1,    1,    1,    1,    1,
0436         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
0437         1,    2,    4,    5,    6,    7,    8,    9,   10,   11,
0438        12,   13,   14,   15,   16,   17,   18,   19,   20,   20,
0439        20,   20,   20,   20,   20,   21,   21,   22,   23,   24,
0440        25,   26,   27,    1,   28,   28,   28,   29,   30,   31,
0441         7,    7,    7,    7,    7,   32,    7,    7,    7,   33,
0442         7,    7,    7,    7,    7,    7,    7,   34,    7,    7,
0443        35,   36,   37,   38,   39,    1,   40,   41,   42,   43,
0444 
0445        44,   45,   46,   47,   48,    7,   49,   50,   51,   52,
0446        53,   54,    7,   55,   56,   57,   58,   59,   60,   61,
0447        62,    7,   63,   64,   65,   66,    1,   67,   68,   69,
0448        69,   70,   70,   71,   72,   73,   73,   74,   74,   75,
0449        75,   74,   74,   76,   76,   76,   76,   76,   76,   76,
0450        77,   78,   78,   79,   79,   79,   79,   79,   79,   80,
0451        80,   80,   80,   81,   82,   83,   84,   85,   86,   87,
0452        88,   89,   90,   91,   92,   93,   94,   93,   95,   96,
0453        97,   98,   99,  100,  101,  102,  103,  104,  102,  102,
0454       102,    1,    1,  105,  106,  107,  107,  107,  107,  107,
0455 
0456       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
0457       107,  107,  107,  107,  107,  107,  108,  107,  109,  107,
0458       107,  107,  107,  110,  111,  112,  113,  114,  115,  115,
0459       115,  115,  115,  112,  112,  112,  112,  112,  116,  117,
0460       118,  118,  118,  118,  118,  118,  118,  119,  120,  120,
0461       120,  121,  122,    1,    1
0462     } ;
0463 
0464 static yyconst flex_int32_t yy_meta[123] =
0465     {   0,
0466         1,    1,    2,    1,    1,    1,    3,    1,    1,    1,
0467         1,    1,    4,    1,    1,    1,    1,    5,    3,    3,
0468         3,    1,    1,    1,    1,    1,    1,    3,    3,    3,
0469         3,    3,    3,    3,    1,    1,    1,    1,    3,    3,
0470         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
0471         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
0472         3,    3,    1,    1,    1,    1,    6,    7,    7,    7,
0473         7,    6,    6,    6,    7,    7,    8,    7,    7,    7,
0474         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
0475         9,    9,    9,    9,    9,    9,   10,   10,   11,   10,
0476 
0477        10,   10,   10,   10,    1,    3,    3,    3,    3,    3,
0478         3,    1,    3,    3,    3,    3,    1,    1,    1,    1,
0479         1,    1
0480     } ;
0481 
0482 static yyconst flex_int16_t yy_base[800] =
0483     {   0,
0484         0,    0,  120,  121, 2366, 8770, 2363, 8770, 2339,  132,
0485         0,  106, 2338,  119,  252, 8770, 8770, 2334,  115, 8770,
0486       116,  150,  118,  358,  159, 8770, 8770,  114, 2329,  120,
0487      8770, 8770, 8770, 2319,  186,   91,  109,  112,  119,  123,
0488       142,  121,  148,  143,  111,  217,  115,  114,  144,  147,
0489      8770,  160, 8770, 8770,    0,    0,  146,  185,  395, 2274,
0490       235,  211,    0,  235,    0, 8770,  143, 2339, 8770,  497,
0491      8770, 8770,  390,  617,  673,  273,  702,  382,  734,  257,
0492       769,  166,    0,  314,  397,    0,    0,  300,  421,  794,
0493      2268,  336,  336,    0,  442, 8770, 8770, 8770,  896, 8770,
0494 
0495       529, 1016, 1072,  483, 1101,  521, 1133,  391, 1168,  204,
0496      8770, 8770, 8770, 8770, 8770, 8770, 2318,  881,  543,  537,
0497       557, 2266, 2228, 8770,    0, 8770,  914,  931, 1256, 8770,
0498       951, 8770, 1262,  581,  575, 1226, 2263, 2226, 1305,  597,
0499       820, 1287, 2260, 2223, 2301, 8770, 8770, 8770, 2296, 8770,
0500       523, 2269, 2262, 2274, 2261, 2276, 2258, 2264, 2248, 2241,
0501      2238, 2238, 2241, 2238, 2235,    0,  151, 2238,  153, 2236,
0502      2242, 2247, 2237, 2230,  242,  239, 2235, 8770, 8770,    0,
0503         0, 1366,    0,  985,    0, 1255, 2063,    0,  231,  869,
0504         0, 1331,    0,    0,    0,    0,    0,  260,    0,    0,
0505 
0506       205, 8770, 1480, 1600, 1720, 1840, 1960, 2080, 2136, 2174,
0507         0,    0,    0, 1339,    0, 1349, 2062,    0,  277,  964,
0508         0, 1375,    0,    0,    0,    0,    0,  320, 2276, 8770,
0509      1448, 2396, 2452, 1387, 2481, 1440, 2513,  473, 2548,  345,
0510      2650, 2770, 2890, 1507, 2946, 2984, 3022, 3060, 8770, 8770,
0511      1539, 1488, 1523, 1533, 1542, 1554,  394, 1289,  459,    0,
0512      1637, 8770, 1655, 1438, 1594, 1686, 2072, 2029, 8770,  935,
0513      1707, 8770, 1459, 1697, 1805, 2064, 2027, 1884, 1890, 1716,
0514      1763, 1883, 1892, 1902,  499, 1592, 1914, 1924, 1934, 1943,
0515      1953,  502, 1662,  521, 8770, 8770, 2028, 2261,  382,  338,
0516 
0517      2069,  380,  196,  503,  511,  512,  354,  315,  539,  589,
0518       598,  404, 2068,  448,  150, 2067,  230,  596,  846,  848,
0519       412,  866,  892,  861,  595,  916,  885,  868,  918, 2294,
0520      2056, 2668, 1970, 1993, 3085, 1996, 2014,    0, 1985, 1934,
0521      2288, 3187, 3243, 2036, 3272, 2052, 3304,  916, 3339,  931,
0522      3441, 3561, 2340, 3617, 3655, 3692, 3794, 1977, 3850, 3888,
0523      1903, 1882, 1881, 3990, 4110, 4230, 2635, 4334, 4372, 4410,
0524      4505, 4555, 2621, 4593, 4631, 4668, 2767, 4706, 4744, 4782,
0525      2337, 2638, 2219, 2318, 2642, 1873, 1835, 2797, 2341, 2828,
0526      2267, 2736, 2859, 1870, 1833, 2777, 2880, 2890, 2899, 3110,
0527 
0528       951, 2732,  972, 3120, 3130, 3141, 3150, 3160,  977, 2783,
0529       980, 3438, 3465, 1261, 3483, 3977, 4008, 1223,  912, 1248,
0530      1267, 1875,  917, 1856, 1855, 1021, 1018, 1272, 1302, 1840,
0531      1835, 1234, 1313, 1833,  594, 1831, 1333, 1258, 1319,  886,
0532      1330, 1290,  977, 1236, 1019, 1829, 1351, 1020, 4028, 1827,
0533      3367, 3436, 4807, 1818, 3486, 4047, 3492,    0, 3517, 1796,
0534         0, 1341, 3471, 1393, 4909, 5029, 5149, 3812, 5253, 5291,
0535      5329, 5431, 5551, 3765, 5607, 5645, 5682, 5784, 3530, 3720,
0536      3791, 3804, 4084, 3933, 4110, 4121, 4261, 3950, 4067, 5904,
0537      6024, 4214, 6080, 6118, 6155, 6257, 4128, 6313, 6351, 4511,
0538 
0539      4161, 4287, 4476,  517, 1774, 6446, 4240, 4500, 4513, 4835,
0540      4848, 4313, 4879, 4890, 4958, 6496,    0, 4921, 4952, 4968,
0541      4982, 4992, 1402, 4539, 1410, 5002, 5012, 5022, 5031, 5041,
0542      1414, 4923, 1418, 5191, 5418, 5450, 1419, 4024, 5454, 8770,
0543      5075, 5102, 5406, 1809, 1771, 5485, 5771, 1453, 1458, 1830,
0544      1829, 1481, 1512, 1822, 1502, 1821, 1820, 1363, 1517, 1812,
0545      1310,  288, 1437, 1800, 1780, 1626, 1486, 1777, 5802, 5140,
0546      5154, 5367, 1737,    0, 1575, 5146, 1625, 5819, 6598, 6718,
0547      5713, 6774, 6812, 6849, 6951, 5167, 7007, 7045, 7147, 7267,
0548         0, 5427, 5488,    0, 5782, 5874, 5891, 7387, 6009, 7507,
0549 
0550      7627, 5904, 7683, 7721, 7758, 7860, 5522, 5981, 5994, 6223,
0551      6236, 5232, 6262, 6188, 7980, 5205, 5360, 6452, 6269, 6418,
0552      6431, 6444, 6457, 6528, 6555, 6566, 8093, 6634, 6637, 6652,
0553      4168, 7134, 8770, 5744, 5855, 6640, 1714, 1647, 6601, 6686,
0554      6874, 6913, 6923, 1666, 5784, 1681, 1460, 1633, 1652, 1680,
0555      1523, 1705, 1655, 1653, 1629, 1628, 1610, 1591, 1560, 1539,
0556      1348, 1522, 1513, 7165, 6997, 5961, 6950, 7129, 1705, 1460,
0557      7285, 5084, 7079, 7202, 7329, 7100, 7121, 7357, 7368, 7279,
0558      7153, 7375, 8207, 7443, 7388, 7431, 7444, 7464, 7477, 7494,
0559      7514, 7525, 7845, 7612, 7639, 7814, 7824, 7834, 7601, 7844,
0560 
0561      1708, 7604, 1734, 7919, 1485, 1711, 1428, 1635, 1324, 1287,
0562      1733, 1267, 1488, 1252, 8012, 7978, 7991, 8059, 8072, 8085,
0563      7911, 8111, 8137, 8225, 8087, 8207, 8242, 1731, 1236, 1710,
0564      1019,  977,  951,  949, 8260, 1769,  887, 1717, 1775, 1818,
0565      1819, 1828,  557,  494, 8770, 8358, 8369, 8380,  528, 8391,
0566      8397, 8402, 8408, 8413, 8417, 8428, 8439, 8450, 8461,  443,
0567      8467, 8472, 8478, 8483, 8487, 8498, 8509, 8515, 8521, 8527,
0568      8533, 8539, 8547, 8558, 8569, 8580, 8586, 8592, 8598, 8604,
0569      8610, 8618, 8629,  260, 8635, 8641, 8652, 8663, 8674, 8680,
0570      8686, 8697, 8708, 8719,  154, 8725, 8736, 8747, 8758
0571 
0572     } ;
0573 
0574 static yyconst flex_int16_t yy_def[800] =
0575     {   0,
0576       745,    1,  746,  746,  745,  745,  745,  745,  745,  747,
0577       748,  749,  745,  745,  750,  745,  745,  745,  745,  745,
0578       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
0579       745,  745,  745,  745,  749,   35,   35,   35,   35,   35,
0580        35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
0581       745,  745,  745,  745,  751,  752,  752,  752,  745,  753,
0582       754,  745,  755,  745,  756,  745,  757,  745,  745,  747,
0583       745,  745,  758,  747,   74,   75,   75,   77,   77,   79,
0584        79,   81,  759,  760,  760,  761,  762,  762,  762,  745,
0585       763,  764,  745,  765,  745,  745,  745,  745,  766,  745,
0586 
0587       766,  766,  102,  103,  103,  105,  105,  107,  107,  109,
0588       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
0589       745,  745,  745,  745,  767,  745,  745,  745,  745,  745,
0590       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
0591       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
0592        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
0593        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
0594        85,   85,   85,   85,   85,   85,   85,  745,  745,   85,
0595        85,   85,  768,  768,  184,  184,  186,  184,  768,  768,
0596       769,  745,  770,  771,  772,  770,  770,  745,  773,  774,
0597 
0598       774,  745,  775,  776,  776,  775,  776,  776,  208,  208,
0599        85,   85,  777,  777,  214,  214,  216,  214,  777,  777,
0600       778,  745,  779,  780,  781,  779,  779,  745,  782,  745,
0601       782,  782,  232,  233,  233,  235,  235,  237,  237,  239,
0602       782,  782,  782,  243,  239,  239,  239,  239,  745,  745,
0603       745,  745,  745,  745,  745,  745,  745,  745,  745,  783,
0604       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
0605       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
0606       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
0607       745,  745,  745,  745,  745,  745,  784,  784,  298,  298,
0608 
0609       298,  298,  298,  298,  298,  298,  298,  298,  298,  298,
0610       298,  298,  298,  298,  298,  298,  298,  298,  298,  298,
0611       298,  298,  298,  298,  298,  298,  298,  298,  298,  298,
0612       298,  298,  785,  785,  745,  786,  745,  330,  298,  298,
0613       787,  787,  342,  343,  343,  345,  345,  347,  347,  349,
0614       788,  788,  352,  352,  354,  354,  787,  352,  352,  352,
0615       298,  298,  298,  789,  789,  789,  366,  366,  368,  368,
0616       366,  368,  372,  372,  374,  374,  366,  374,  374,  374,
0617       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
0618       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
0619 
0620       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
0621       745,  745,  745,  745,  745,  745,  745,  298,  298,  298,
0622       298,  298,  298,  298,  298,  298,  298,  298,  298,  298,
0623       298,  298,  298,  298,  298,  298,  298,  298,  298,  298,
0624       298,  298,  298,  298,  298,  298,  298,  298,  298,  298,
0625       790,  790,  745,  791,  745,  449,  790,  457,  457,  459,
0626       457,  790,  790,  745,  792,  792,  792,  467,  467,  469,
0627       469,  793,  793,  473,  473,  475,  475,  793,  473,  473,
0628       473,  473,  473,  473,  473,  473,  467,  473,  473,  794,
0629       794,  491,  491,  493,  493,  794,  491,  491,  491,  496,
0630 
0631       491,  491,  493,  495,  495,  496,  491,  491,  491,  491,
0632       491,  491,  491,  491,  496,  491,  516,  745,  745,  745,
0633       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
0634       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
0635       745,  745,  745,  745,  745,  795,  795,  547,  547,  547,
0636       547,  547,  547,  547,  547,  547,  547,  547,  547,  547,
0637       547,  547,  547,  547,  547,  547,  547,  547,  547,  796,
0638       796,  796,  572,  571,  796,  796,  745,  547,  797,  797,
0639       580,  580,  582,  582,  797,  580,  580,  580,  798,  798,
0640       590,  590,  590,  590,  590,  590,  590,  798,  585,  799,
0641 
0642       799,  601,  601,  603,  603,  799,  601,  601,  601,  601,
0643       601,  601,  601,  601,  799,  601,  601,  615,  601,  601,
0644       601,  601,  601,  601,  601,  601,  615,  615,  745,  745,
0645       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
0646       745,  745,  745,  745,  745,  745,  547,  547,  547,  547,
0647       547,  547,  547,  547,  547,  547,  547,  547,  547,  547,
0648       547,  547,  547,  547,  585,  580,  580,  582,  584,  584,
0649       585,  580,  580,  580,  580,  580,  580,  580,  580,  585,
0650       580,  580,  798,  615,  601,  601,  601,  601,  601,  601,
0651       601,  601,  615,  615,  615,  745,  745,  745,  745,  745,
0652 
0653       745,  745,  745,  745,  547,  547,  547,  547,  547,  547,
0654       547,  547,  547,  547,  585,  580,  580,  580,  580,  580,
0655       580,  580,  580,  585,  585,  615,  745,  547,  547,  547,
0656       547,  547,  547,  547,  585,  547,  547,  547,  547,  547,
0657       547,  547,  547,  547,    0,  745,  745,  745,  745,  745,
0658       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
0659       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
0660       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
0661       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
0662       745,  745,  745,  745,  745,  745,  745,  745,  745
0663 
0664     } ;
0665 
0666 static yyconst flex_int16_t yy_nxt[8893] =
0667     {   0,
0668         6,    7,    8,    9,   10,   11,   12,   13,   14,   15,
0669        16,   17,   18,   19,   20,   21,   22,   23,   24,   25,
0670        25,   26,   27,   28,   29,   30,   31,   12,   12,   12,
0671        12,   12,   12,   12,   32,    6,   33,   34,   35,   36,
0672        37,   38,   39,   40,   41,   42,   12,   43,   12,   44,
0673        12,   12,   12,   12,   45,   46,   47,   48,   49,   50,
0674        12,   12,   51,   52,   53,   54,    6,    6,    6,    6,
0675         6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
0676         6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
0677         6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
0678 
0679         6,    6,    6,    6,    6,   55,   56,   57,   58,   59,
0680        60,    6,   61,   62,   63,   64,    6,    6,    6,    6,
0681         6,    6,   66,   66,   85,   85,   85,   97,  112,   84,
0682       124,  114,   67,   67,   71,  125,   72,  145,  146,  113,
0683       115,  116,  126,   98,  148,  149,  152,   84,  153,   84,
0684        84,  155,   84,   84,  169,  201,   84,   84,  156,   84,
0685       202,   84,  158,  154,  157,  175,  117,   73,  118,  118,
0686       118,  159,  160,  165,  161,  127,  174,  139,  139,  139,
0687        84,   84,   84,  162,  178,   84,   84,  130,  131,  130,
0688       132,  163,  166,  177,  164,  168,  176,  435,  318,  167,
0689 
0690       315,  130,  131,  130,   85,   85,   85,  316,  132,  319,
0691        84,   86,   87,   88,   89,   90,   91,  201,   92,   93,
0692        94,   95,  202,  179,  151,  182,  182,  182,  182,  182,
0693       182,  182,  210,  210,  210,  423,   74,   74,   74,   74,
0694        74,   75,   76,   76,   76,   76,   76,   76,   77,   78,
0695        79,   80,   81,   82,  100,   84,   84,  119,  120,  121,
0696       122,  100,   84,  170,  171,  123,  140,  141,  142,  143,
0697       248,  248,  248,  172,  144,  436,  173,  182,  182,  182,
0698       182,  182,  182,  182,  182,  182,  327,  101,  328,  325,
0699        84,   86,   87,   88,   89,   90,   91,  326,   92,   93,
0700 
0701        94,   95,  191,  191,  191,  192,  182,  182,  182,  193,
0702       196,  196,  196,  196,  196,  197,  197,  197,  197,  197,
0703       197,  197,  197,  209,  209,  209,  209,  209,  209,  659,
0704       195,   84,   85,   85,   85,  129,  129,  129,  198,   74,
0705        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
0706        74,   74,  212,  212,  212,  429,  102,  102,  102,  102,
0707       102,  103,  104,  104,  104,  104,  104,  104,  105,  106,
0708       107,  108,  109,  110,  127,   84,  128,  128,  129,  212,
0709       212,  212,  212,  212,  212,  212,  130,  131,  130,  132,
0710       421,  133,   71,  428,   70,   85,   85,   85,   84,  204,
0711 
0712       130,  131,  130,  221,  221,  221,  222,  132,  205,  205,
0713       223,  370,  370,  370,   84,   85,   85,   85,  133,   86,
0714        87,   88,   89,   90,   91,   70,   92,   93,   94,   95,
0715       204,  225,  422,  420,  204,  226,  226,  226,  226,  226,
0716        84,  204,   84,  433,  204,   84,  204,  206,  208,  208,
0717       208,  208,  208,  208,  208,  208,  208,  247,  247,  247,
0718       247,  247,  247,  440,   84,  134,  135,  136,  137,  118,
0719       118,  118,   84,  138,  183,  183,  184,  183,  184,  183,
0720       185,  183,  185,  183,  186,  183,  187,  183,  188,  188,
0721       183,  188,  183,  183,  183,  189,  183,  189,  183,   71,
0722 
0723       434,   72,   86,   87,   88,   89,   90,   91,   84,   92,
0724        93,   94,   95,  212,  212,  212,  212,  212,  212,  212,
0725       212,  212,  227,  227,  227,  227,  227,  227,  227,  227,
0726        84,  100,   73,  241,  118,  118,  118,   84,   99,  369,
0727       369,  369,  369,  369,  369,  228,  424,  242,  242,  245,
0728       245,  245,  245,  245,  245,  245,  245,  245,  245,  245,
0729       245,  245,  297,   84,   99,  425,  298,  426,  427,  241,
0730       299,   84,   84,  241,  129,  129,  129,  139,  139,  139,
0731       241,  300,  430,  241,  625,  241,  243,  246,  246,  246,
0732       246,  246,  246,  246,  246,  246,  139,  139,  139,   84,
0733 
0734        84,   74,   74,   74,   74,   74,   75,   76,   76,   76,
0735        76,   76,   76,   77,   78,   79,   80,   81,   82,   71,
0736       232,   72,  118,  118,  118,  118,  118,  118,  118,  118,
0737       118,  118,  118,  118,  118,  118,  118,  118,  252,  431,
0738       252,  432,  253,  437,  253,  557,  254,  444,  255,   84,
0739       256,  256,   73,  256,   84,   84,   84,  257,   84,  257,
0740       129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
0741       129,  129,  129,  129,  129,  129,  139,  139,  139,  139,
0742       139,  139,  139,  207,  207,  207,  207,  207,  207,  207,
0743       207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
0744 
0745       207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
0746       207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
0747       207,   74,   74,   74,   74,   74,   75,   76,   76,   76,
0748        76,   76,   76,   77,   78,   79,   80,   81,   82,   70,
0749        70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
0750        70,   70,   74,   74,   74,   74,   74,   74,   74,   74,
0751        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
0752        74,   74,   74,   74,   74,   74,   74,  208,  208,  208,
0753       208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
0754       208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
0755 
0756       208,  208,  208,  208,  208,  208,  209,  209,  209,  209,
0757       209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
0758       209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
0759       209,  209,  209,  209,  209,  209,  209,  209,  210,  210,
0760       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
0761       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
0762       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
0763       210,  210,  210,  213,  213,  214,  213,  214,  213,  215,
0764       213,  215,  213,  216,  213,  217,  213,  218,  218,  213,
0765       218,  213,  213,  213,  219,  213,  219,  213,  100,  118,
0766 
0767       118,  118,  439,  438,  443,  230,   84,  447,   84,  250,
0768       251,  250,  139,  139,  139,  139,  139,  139,  139,  139,
0769       139,   84,  441,  250,  251,  250,   84,  446,   84,  561,
0770       739,  231,  261,  261,  261,  182,  182,  182,  182,  182,
0771       182,  182,  262,  263,  262,   84,   84,  127,  442,  128,
0772       128,  129,   84,  271,  271,  271,  262,  263,  262,  130,
0773       131,  130,  269,  445,  270,  550,  270,  448,  547,  271,
0774       271,  271,   84,  130,  131,  130,   84,   84,   84,  272,
0775       269,  272,  470,  470,  470,  470,  470,  470,  119,  120,
0776       121,  122,   84,  272,   84,  272,  123,  471,  471,  471,
0777 
0778       232,  232,  232,  232,  232,  233,  234,  234,  234,  234,
0779       234,  234,  235,  236,  237,  238,  239,  240,  100,  564,
0780        84,  264,  265,  266,  267,  230,  261,  261,  261,  268,
0781       212,  212,  212,  212,  212,  212,  212,   84,  134,  135,
0782       136,  137,  273,  274,  275,  276,  138,  261,  261,  261,
0783       277,  231,  271,  271,  271,  271,  271,  271,  273,  274,
0784       275,  276,   84,  568,  566,  552,  277,  182,  182,  182,
0785       182,  182,  182,  182,  182,  182,  182,  551,   84,   84,
0786        84,   84,  244,  244,  244,  244,  244,  244,  244,  244,
0787       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
0788 
0789       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
0790       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
0791       232,  232,  232,  232,  232,  233,  234,  234,  234,  234,
0792       234,  234,  235,  236,  237,  238,  239,  240,  229,  229,
0793       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
0794       229,  245,  245,  245,  245,  245,  245,  245,  245,  245,
0795       245,  245,  245,  245,  245,  245,  245,  245,  245,  245,
0796       245,  245,  245,  245,  245,  245,  246,  246,  246,  246,
0797       246,  246,  246,  246,  246,  246,  246,  246,  246,  246,
0798       246,  246,  246,  246,  246,  246,  246,  246,  246,  246,
0799 
0800       246,  246,  246,  246,  246,  247,  247,  247,  247,  247,
0801       247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
0802       247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
0803       247,  247,  247,  247,  247,  247,  247,  248,  248,  248,
0804       248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
0805       248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
0806       248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
0807       248,  248,  127,  546,  129,  129,  129,  537,  278,   84,
0808       279,  279,  279,   84,  130,  131,  130,  565,  555,  279,
0809       279,  279,  279,  415,   84,  734,   84,  548,  130,  131,
0810 
0811       130,  279,  279,  279,  279,  279,  279,  280,   84,  280,
0812        84,  281,  559,  281,  415,  282,  549,  283,   84,  284,
0813       284,  127,  284,  139,  139,  139,  285,   84,  285,  553,
0814        84,  563,   84,  130,  131,  130,  132,  338,  338,  338,
0815       338,  338,  338,  338,  338,  338,  338,  130,  131,  130,
0816        84,  554,  658,   84,  132,  118,  118,  118,  118,  118,
0817       118,  118,   84,  134,  135,  136,  137,  731,  287,  556,
0818       287,  138,  288,   84,  288,  560,  289,  562,  290,   84,
0819       291,  291,  127,  291,  330,  330,  330,  292,  558,  292,
0820        84,   84,  712,   84,  331,  332,  331,  339,  339,  339,
0821 
0822       339,  339,  339,  339,  339,  339,   84,  567,  331,  332,
0823       331,   84,  140,  141,  142,  143,  456,  456,  456,  656,
0824       144,  212,  212,  212,  212,  212,  212,  212,  212,  212,
0825       212,  361,  361,  361,  361,  361,  361,  361,  361,  361,
0826       361,  362,  362,  362,  362,  362,  362,  362,  362,  362,
0827       100,  415,  364,  232,  232,  232,  232,  232,  232,  232,
0828       232,  232,  232,  232,  232,  232,  365,  365,  330,  330,
0829       330,  729,  415,  333,  334,  335,  336,  382,  382,  382,
0830        84,  337,   71,  660,   71,  382,  382,  382,  364,  390,
0831       390,  390,  364,  390,  390,  390,   84,  650,  705,  364,
0832 
0833       649,   84,  364,   84,  364,  366,  368,  368,  368,  368,
0834       368,  368,  368,  368,  368,  341,  230,  261,  261,  261,
0835       261,  261,  261,  261,   84,  229,  229,  229,   84,   84,
0836       733,   84,  651,  663,  229,  229,  229,  229,  271,  271,
0837       271,  271,  271,  271,  271,   84,  229,  229,  229,  229,
0838       229,  229,  381,  654,  381,   84,   84,  382,  382,  382,
0839        84,  652,  714,  723,  229,  713,   84,  250,  657,  250,
0840       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
0841       709,  250,   84,  250,  342,  342,  342,  342,  342,  343,
0842       344,  344,  344,  344,  344,  344,  345,  346,  347,  348,
0843 
0844       349,  350,   71,   84,   72,  118,  118,  118,  118,  118,
0845       118,  118,  118,  118,  118,  388,  388,  388,  388,  388,
0846       388,  388,  388,  388,  388,  388,  388,  388,  388,  388,
0847       388,  388,  388,  388,   84,   73,  118,  118,  118,  118,
0848       118,  118,  118,  118,  118,  118,  383,  384,  385,  386,
0849       569,  569,  569,   84,  387,  261,  261,  261,  129,  129,
0850       129,  129,  129,  129,  129,  262,  263,  262,  389,   84,
0851       389,  711,   84,  390,  390,  390,   84,  662,   84,  262,
0852       263,  262,  730,  262,  706,  262,  261,  261,  261,  261,
0853       261,  261,  261,  261,  261,   84,   84,  262,   84,  262,
0854 
0855       449,  449,  449,  707,   74,   74,   74,   74,   74,   75,
0856        76,   76,   76,   76,   76,   76,   77,   78,   79,   80,
0857        81,   82,   71,   84,   72,  271,  271,  271,  139,  139,
0858       139,  139,  139,  139,  139,  272,  708,  272,  351,  351,
0859       351,  539,  539,  539,  264,  265,  266,  267,   84,  272,
0860       703,  272,  268,   84,   84,   73,  539,  539,  539,  737,
0861        84,  710,  391,  392,  393,  394,  728,  396,  740,  396,
0862       395,  397,  722,  397,   84,  398,   84,  399,  736,  400,
0863       400,  702,  400,  632,  632,  632,  401,  732,  401,  271,
0864       271,  271,  271,  271,  271,  271,  271,  271,  129,  129,
0865 
0866       129,  129,  129,  129,  129,  129,  129,  129,  342,  632,
0867       632,  632,   84,  741,  273,  274,  275,  276,   84,  211,
0868        84,  738,  277,   84,   74,   74,   74,  352,  353,  354,
0869       355,   76,   76,   76,   76,  356,   77,   78,   79,   80,
0870        81,   82,   71,  661,   71,  129,  129,  129,  129,  129,
0871       129,  129,  129,  129,  129,   84,  742,  743,  357,  357,
0872       357,   84,   84,  655,   84,  653,  744,  357,  357,  357,
0873       357,   84,   84,   84,  646,  341,  645,  626,  211,  357,
0874       357,  357,  357,  357,  357,  576,  404,   84,  404,   84,
0875       405,   84,  405,   84,  406,   84,  407,  206,  408,  408,
0876 
0877        84,  408,  412,  412,  412,  409,  413,  409,  279,  279,
0878       279,  412,  412,  412,  412,   84,   84,  279,  279,  279,
0879       279,  414,  415,  412,  412,  412,  412,  412,  412,  279,
0880       279,  279,  279,  279,  279,   84,  533,  532,  525,  414,
0881       524,   84,   84,  415,  342,  342,  342,  342,  342,  343,
0882       344,  344,  344,  344,  344,  344,  345,  346,  347,  348,
0883       349,  350,   71,   84,   72,  416,  416,  416,  416,  416,
0884       416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
0885       416,  416,  416,  416,  129,  129,  129,  129,  129,  129,
0886       129,  129,  129,  129,   84,   73,  139,  139,  139,  139,
0887 
0888       139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
0889       139,  139,  139,  139,  139,  139,  417,  417,  417,  417,
0890       417,  417,  417,  417,  417,  417,  417,  417,  417,  417,
0891       417,  417,  417,  417,  417,  139,  139,  139,  139,  139,
0892       139,  139,  139,  139,  139,   84,   85,   85,   85,  456,
0893       456,  456,  456,  456,  456,  456,  207,  207,  207,  207,
0894       207,  207,  207,  463,   74,   74,   74,   74,   74,   75,
0895        76,   76,   76,   76,   76,   76,   77,   78,   79,   80,
0896        81,   82,   71,  418,   72,  456,  456,  456,  456,  456,
0897       456,  456,  456,  456,  227,  227,  227,  227,  227,  227,
0898 
0899       227,  227,  342,  342,  342,  342,  342,  342,  342,  342,
0900       342,  342,  342,  342,  342,   73,   84,  464,  469,  469,
0901       469,  469,  469,  469,  469,  469,  469,   84,   84,   84,
0902       411,  410,  403,   86,   87,   88,   89,   90,   91,  402,
0903        92,   93,   94,   95,  211,  181,  358,  358,  358,  358,
0904       358,  358,  358,  358,  358,  358,  358,  358,  358,  358,
0905       358,  358,  358,  358,  358,  358,  358,  358,  358,  358,
0906       358,  358,  358,  358,  358,  358,  358,  358,  358,  358,
0907       358,  358,  358,  358,   74,   74,   74,   74,   74,   75,
0908        76,   76,   76,   76,   76,   76,   77,   78,   79,   80,
0909 
0910        81,   82,  359,  359,  359,  359,  359,  359,  359,  359,
0911       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
0912       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
0913       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
0914       360,  360,  360,  360,  360,  360,  360,  360,  360,  360,
0915       360,  360,  360,  360,  360,  360,  360,  360,  360,  360,
0916       360,  360,  360,  360,  360,  360,  360,  360,  360,  360,
0917       360,  360,  360,  360,  360,  360,  360,  360,  100,   85,
0918        85,   85,  329,  324,  323,  100,  322,  321,  320,  317,
0919        71,  314,  313,  312,  311,  310,  309,  465,  382,  382,
0920 
0921       382,  382,  382,  382,  382,  308,  466,  466,  307,  306,
0922       127,  231,  330,  330,  330,  305,  304,  303,  302,  301,
0923       296,  419,  331,  332,  331,  295,  294,  293,  465,  198,
0924       286,  259,  465,  258,  249,  220,  331,  332,  331,  465,
0925        68,  190,  465,  150,  465,  467,  390,  390,  390,  390,
0926       390,  390,  390,  147,   84,  382,  382,  382,  111,  390,
0927       390,  390,   96,   69,   68,  745,   86,   87,   88,   89,
0928        90,   91,  745,   92,   93,   94,   95,  745,  745,  745,
0929       232,  232,  232,  232,  232,  233,  234,  234,  234,  234,
0930       234,  234,  235,  236,  237,  238,  239,  240,  100,  745,
0931 
0932       745,  333,  334,  335,  336,  100,  745,  745,  745,  337,
0933       382,  382,  382,  382,  382,  382,  382,  382,  382,  207,
0934       207,  207,  207,  207,  207,  207,  745,  745,  745,  745,
0935       745,  231,  478,  478,  478,  478,  478,  478,  478,  478,
0936       478,  745,  745,  745,  383,  384,  385,  386,  391,  392,
0937       393,  394,  387,  745,  745,  745,  395,  745,  745,  745,
0938       745,  745,  367,  367,  367,  367,  367,  367,  367,  367,
0939       367,  367,  367,  367,  367,  367,  367,  367,  367,  367,
0940       367,  367,  367,  367,  367,  367,  367,  367,  367,  367,
0941       367,  367,  367,  367,  367,  367,  367,  367,  367,  367,
0942 
0943       232,  232,  232,  232,  232,  233,  234,  234,  234,  234,
0944       234,  234,  235,  236,  237,  238,  239,  240,  229,  229,
0945       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
0946       229,  232,  232,  232,  232,  232,  232,  232,  232,  232,
0947       232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
0948       232,  232,  232,  232,  232,  232,  368,  368,  368,  368,
0949       368,  368,  368,  368,  368,  368,  368,  368,  368,  368,
0950       368,  368,  368,  368,  368,  368,  368,  368,  368,  368,
0951       368,  368,  368,  368,  368,  369,  369,  369,  369,  369,
0952       369,  369,  369,  369,  369,  369,  369,  369,  369,  369,
0953 
0954       369,  369,  369,  369,  369,  369,  369,  369,  369,  369,
0955       369,  369,  369,  369,  369,  369,  369,  370,  370,  370,
0956       370,  370,  370,  370,  370,  370,  370,  370,  370,  370,
0957       370,  370,  370,  370,  370,  370,  370,  370,  370,  370,
0958       370,  370,  370,  370,  370,  370,  370,  370,  370,  370,
0959       370,  370,  100,  229,  229,  229,  382,  382,  382,  230,
0960       745,  745,  229,  229,  229,  229,  250,  745,  250,  745,
0961       745,  745,  745,  745,  229,  229,  229,  229,  229,  229,
0962       250,  270,  250,  270,  745,  231,  449,  449,  449,  745,
0963       745,  745,  229,  745,  745,  745,  450,  745,  450,  745,
0964 
0965       367,  367,  367,  367,  367,  367,  367,  745,  745,  745,
0966       450,  745,  450,  506,  506,  506,  506,  506,  506,  506,
0967       506,  506,  745,  518,  745,  518,  745,  519,   84,  519,
0968       745,  520,  745,  521,  745,  522,  522,  745,  522,  745,
0969       745,  745,  523,  745,  523,  383,  384,  385,  386,  745,
0970       745,  745,  745,  387,  232,  232,  232,  232,  232,  233,
0971       234,  234,  234,  234,  234,  234,  235,  236,  237,  238,
0972       239,  240,  100,  745,  745,  451,  452,  453,  454,  230,
0973       745,  745,  745,  455,  745,  515,  515,  515,  371,  371,
0974       371,  745,  745,  745,  515,  515,  515,  515,  261,  261,
0975 
0976       261,  261,  261,  261,  261,  231,  515,  515,  515,  515,
0977       515,  515,  745,  745,  745,  118,  118,  118,  745,  745,
0978       745,  745,  745,  745,  229,  250,  251,  250,  390,  390,
0979       390,  390,  390,  390,  390,  390,  390,  745,  745,  250,
0980       251,  250,  745,  745,  745,  745,  390,  390,  390,  271,
0981       271,  271,  271,  271,  271,  271,  262,  745,  262,  261,
0982       261,  261,  261,  261,  261,  261,  261,  261,  261,  745,
0983       262,  745,  262,  745,  232,  232,  232,  372,  373,  374,
0984       375,  234,  234,  234,  234,  376,  235,  236,  237,  238,
0985       239,  240,  100,  745,  745,  745,  745,  745,  745,  100,
0986 
0987       745,  745,  745,  745,  119,  120,  121,  122,  377,  377,
0988       377,  745,  123,  745,  745,  745,  745,  377,  377,  377,
0989       377,  745,  745,  745,  745,  231,  745,  745,  745,  377,
0990       377,  377,  377,  377,  377,  391,  392,  393,  394,  745,
0991       526,  745,  526,  395,  527,  745,  527,  243,  528,  745,
0992       529,  745,  530,  530,  745,  530,  745,  745,  745,  531,
0993       745,  531,  261,  261,  261,  261,  261,  261,  261,  261,
0994       261,  261,  534,  534,  534,  534,  534,  534,  534,  534,
0995       534,  534,  534,  534,  534,  534,  534,  534,  534,  534,
0996       534,  745,  745,  745,  232,  232,  232,  232,  232,  233,
0997 
0998       234,  234,  234,  234,  234,  234,  235,  236,  237,  238,
0999       239,  240,  244,  244,  244,  244,  244,  244,  244,  244,
1000       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
1001       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
1002       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
1003       378,  378,  378,  378,  378,  378,  378,  378,  378,  378,
1004       378,  378,  378,  378,  378,  378,  378,  378,  378,  378,
1005       378,  378,  378,  378,  378,  378,  378,  378,  378,  378,
1006       378,  378,  378,  378,  378,  378,  378,  378,  379,  379,
1007       379,  379,  379,  379,  379,  379,  379,  379,  379,  379,
1008 
1009       379,  379,  379,  379,  379,  379,  379,  379,  379,  379,
1010       379,  379,  379,  379,  379,  379,  379,  379,  379,  379,
1011       379,  379,  379,  379,  379,  379,  380,  380,  380,  380,
1012       380,  380,  380,  380,  380,  380,  380,  380,  380,  380,
1013       380,  380,  380,  380,  380,  380,  380,  380,  380,  380,
1014       380,  380,  380,  380,  380,  380,  380,  380,  380,  380,
1015       380,  380,  380,  380,  213,  213,  457,  213,  457,  213,
1016       458,  213,  458,  213,  459,  213,  460,  213,  461,  461,
1017       213,  461,  213,  213,  213,  462,  213,  462,  213,   71,
1018       745,   71,  261,  261,  261,  261,  261,  261,  261,  261,
1019 
1020       261,  261,  271,  271,  271,  271,  271,  271,  271,  271,
1021       271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
1022       271,  271,  341,  535,  535,  535,  535,  535,  535,  535,
1023       535,  535,  535,  535,  535,  535,  535,  535,  535,  535,
1024       535,  535,  271,  271,  271,  271,  271,  271,  271,  271,
1025       271,  271,  745,  468,  468,  468,  468,  468,  468,  468,
1026       468,  468,  468,  468,  468,  468,  468,  468,  468,  468,
1027       468,  468,  468,  468,  468,  468,  468,  468,  468,  468,
1028       468,  468,  468,  468,  468,  468,  468,  468,  468,  468,
1029       468,  342,  342,  342,  342,  342,  343,  344,  344,  344,
1030 
1031       344,  344,  344,  345,  346,  347,  348,  349,  350,  203,
1032       203,  203,  203,  203,  203,  203,  203,  203,  203,  203,
1033       203,  203,  342,  342,  342,  342,  342,  342,  342,  342,
1034       342,  342,  342,  342,  342,  342,  342,  342,  342,  342,
1035       342,  342,  342,  342,  342,  342,  342,  469,  469,  469,
1036       469,  469,  469,  469,  469,  469,  469,  469,  469,  469,
1037       469,  469,  469,  469,  469,  469,  469,  469,  469,  469,
1038       469,  469,  469,  469,  469,  469,  470,  470,  470,  470,
1039       470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
1040       470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
1041 
1042       470,  470,  470,  470,  470,  470,  470,  470,  471,  471,
1043       471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
1044       471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
1045       471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
1046       471,  471,  471,   71,  745,   72,  569,  569,  569,  569,
1047       569,  569,  569,  745,  745,  745,  412,  412,  412,  472,
1048       472,  472,  745,  745,  745,  412,  412,  412,  412,  745,
1049       536,  745,  745,  745,  745,  745,   73,  412,  412,  412,
1050       412,  412,  412,  412,  412,  412,  745,  745,  745,  745,
1051       745,  536,  412,  412,  412,  412,  538,  415,  538,  745,
1052 
1053       745,  539,  539,  539,  412,  412,  412,  412,  412,  412,
1054       745,  540,  745,  540,  745,  745,  745,  745,  415,  745,
1055       745,  745,  745,  745,  745,  540,  745,  540,  569,  569,
1056       569,  569,  569,  569,  569,  569,  569,  456,  456,  456,
1057       456,  456,  456,  456,  745,   74,   74,   74,  473,  474,
1058       475,  476,   76,   76,   76,   76,  477,   77,   78,   79,
1059        80,   81,   82,   71,  745,   72,  227,  227,  227,  227,
1060       227,  227,  227,  227,  456,  456,  456,  456,  456,  456,
1061       456,  456,  456,  456,  745,  745,  745,  745,  745,  577,
1062       541,  542,  543,  544,  745,  745,   73,  745,  545,  578,
1063 
1064       578,  578,  578,  578,  578,  578,  578,  578,  578,  207,
1065       207,  207,  478,  478,  478,  478,  478,  478,  478,  478,
1066       478,  478,  745,  745,  745,  745,  745,  207,  207,  207,
1067       207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
1068       478,  478,  478,  478,  478,  478,  478,  207,  207,  207,
1069       207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
1070       207,  207,  207,  207,  207,   74,   74,   74,   74,   74,
1071        75,   76,   76,   76,   76,   76,   76,   77,   78,   79,
1072        80,   81,   82,   70,   70,   70,   70,   70,   70,   70,
1073        70,   70,   70,   70,   70,   70,   74,   74,  479,   74,
1074 
1075       479,   74,  480,   74,  480,   74,  481,   74,  482,   74,
1076       483,  483,   74,  483,   74,   74,   74,  484,   74,  484,
1077        74,   74,  485,   74,   74,   74,   74,   74,   74,   74,
1078        74,   74,   74,   74,  745,  745,   74,  745,   74,  745,
1079        74,  745,   74,  745,   74,  745,   74,  745,   74,   74,
1080       745,   74,  745,  745,  745,   74,  745,   74,   74,   74,
1081        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
1082        74,  745,  745,   74,  745,   74,  745,   74,  745,   74,
1083       745,   74,  745,   74,  745,   74,   74,  745,   74,  745,
1084       745,  745,   74,  745,   74,  486,   71,  745,   71,  207,
1085 
1086       207,  207,  478,  478,  478,  478,  478,  478,  478,  478,
1087       478,  478,  487,  487,  487,  745,  745,  745,  745,  745,
1088       745,  487,  487,  487,  487,  745,  745,  745,  745,  341,
1089       203,  203,  203,  487,  487,  487,  487,  487,  487,  203,
1090       203,  203,  203,  745,  207,  207,  207,  207,  207,  207,
1091       207,  203,  203,  203,  203,  203,  203,  589,  589,  589,
1092       589,  589,  589,  589,  589,  589,  745,  745,  745,  203,
1093       207,  207,  207,  598,  598,  598,  598,  598,  598,  598,
1094       598,  598,  598,  207,  207,  207,  207,  598,  598,  598,
1095       598,  598,  598,  598,  598,  598,  745,  745,  342,  342,
1096 
1097       342,  342,  342,  343,  344,  344,  344,  344,  344,  344,
1098       345,  346,  347,  348,  349,  350,  488,  488,  488,  488,
1099       488,  488,  488,  488,  488,  488,  488,  488,  488,  488,
1100       488,  488,  488,  488,  488,  488,  488,  488,  488,  488,
1101       488,  488,  488,  488,  488,  488,  488,  488,  488,  488,
1102       488,  488,  488,  488,  489,  489,  489,  489,  489,  489,
1103       489,  489,  489,  489,  489,  489,  489,  489,  489,  489,
1104       489,  489,  489,  489,  489,  489,  489,  489,  489,  489,
1105       489,  489,  489,  489,  489,  489,  489,  489,  489,  489,
1106       489,  489,  100,  127,  745,  129,  129,  129,  745,  100,
1107 
1108       745,  745,  745,  745,  745,  130,  131,  130,  478,  478,
1109       478,  745,  207,  207,  207,  207,  207,  207,  207,  130,
1110       131,  130,  745,  745,  127,  231,  139,  139,  139,  207,
1111       207,  207,  207,  207,  207,  207,  130,  131,  130,  132,
1112       745,  745,  539,  539,  539,  745,  449,  449,  449,  745,
1113       130,  131,  130,  745,  745,  745,  450,  132,  450,  745,
1114       745,  745,  745,  127,  745,  330,  330,  330,  745,  745,
1115       450,  745,  450,  745,  745,  331,  332,  331,  745,  745,
1116       745,  745,  745,  745,  134,  135,  136,  137,   84,  331,
1117       332,  331,  138,  745,  232,  232,  232,  232,  232,  233,
1118 
1119       234,  234,  234,  234,  234,  234,  235,  236,  237,  238,
1120       239,  240,  100,  745,  745,  140,  141,  142,  143,  100,
1121       745,  745,  745,  144,  745,  745,  745,  745,  490,  490,
1122       490,  541,  542,  543,  544,  451,  452,  453,  454,  545,
1123       745,  745,  745,  455,  745,  231,  207,  207,  207,  207,
1124       207,  207,  207,  745,  333,  334,  335,  336,  745,  745,
1125       745,  745,  337,  207,  207,  207,  478,  478,  478,  478,
1126       478,  478,  478,  478,  478,  478,  478,  478,  478,  478,
1127       478,  478,  478,  745,  745,  745,  632,  632,  632,  207,
1128       207,  207,  207,  207,  207,  207,  478,  478,  478,  745,
1129 
1130       207,  207,  207,  207,  207,  207,  207,  367,  367,  367,
1131       367,  367,  367,  367,  232,  232,  232,  491,  492,  493,
1132       494,  234,  234,  234,  234,  495,  235,  236,  237,  238,
1133       239,  240,  100,  745,  745,  745,  745,  745,  745,  100,
1134       618,  618,  618,  618,  618,  618,  618,  745,  496,  496,
1135       496,  745,  745,  745,  745,  745,  745,  496,  496,  496,
1136       496,  745,  745,  745,  745,  231,  745,  745,  745,  496,
1137       496,  496,  496,  496,  496,  634,  635,  636,  637,  599,
1138       599,  599,  745,  638,  745,  745,  745,  366,  599,  599,
1139       599,  599,  745,  367,  367,  367,  367,  367,  367,  367,
1140 
1141       599,  599,  599,  599,  599,  599,  606,  606,  606,  606,
1142       606,  606,  606,  606,  606,  745,  745,  745,  203,  367,
1143       367,  367,  506,  506,  506,  506,  506,  506,  506,  506,
1144       506,  506,  745,  745,  232,  232,  232,  232,  232,  233,
1145       234,  234,  234,  234,  234,  234,  235,  236,  237,  238,
1146       239,  240,  229,  229,  229,  745,  745,  745,  745,  745,
1147       745,  229,  229,  229,  229,  745,  367,  367,  367,  367,
1148       367,  367,  367,  229,  229,  229,  229,  229,  229,  618,
1149       618,  618,  618,  618,  618,  618,  618,  618,  506,  506,
1150       506,  229,  367,  367,  367,  367,  367,  367,  367,  745,
1151 
1152       497,  497,  497,  497,  497,  497,  497,  497,  497,  497,
1153       497,  497,  497,  497,  497,  497,  497,  497,  497,  497,
1154       497,  497,  497,  497,  497,  497,  497,  497,  497,  497,
1155       497,  497,  497,  497,  497,  497,  497,  497,  498,  498,
1156       498,  498,  498,  498,  498,  498,  498,  498,  498,  498,
1157       498,  498,  498,  498,  498,  498,  498,  498,  498,  498,
1158       498,  498,  498,  498,  498,  498,  498,  498,  498,  498,
1159       498,  498,  498,  498,  498,  498,  499,  499,  499,  499,
1160       499,  499,  499,  499,  499,  499,  499,  499,  499,  499,
1161       499,  499,  499,  499,  499,  499,  499,  499,  499,  499,
1162 
1163       499,  499,  499,  499,  499,  499,  499,  499,  499,  499,
1164       499,  499,  499,  499,  230,  745,  745,  745,  745,  745,
1165       230,  745,  745,  500,  500,  500,  745,  745,  745,  229,
1166       229,  229,  229,  229,  229,  229,  745,  745,  229,  229,
1167       229,  229,  745,  745,  229,  229,  229,  229,  229,  229,
1168       229,  229,  229,  229,  229,  229,  745,  619,  745,  619,
1169       745,  620,  229,  620,  745,  621,  745,  622,  745,  623,
1170       623,  745,  623,  745,  745,  745,  624,  745,  624,  367,
1171       367,  367,  506,  506,  506,  506,  506,  506,  506,  506,
1172       506,  506,  367,  367,  367,  627,  627,  627,  627,  627,
1173 
1174       627,  627,  627,  627,  627,  382,  382,  382,  382,  382,
1175       382,  382,  501,  502,  503,  504,  745,  745,  745,  745,
1176       505,  367,  367,  367,  367,  367,  367,  367,  367,  367,
1177       367,  367,  367,  367,  506,  506,  506,  506,  506,  506,
1178       506,  367,  367,  367,  367,  367,  367,  367,  367,  367,
1179       367,  367,  367,  367,  367,  367,  367,  367,  367,  229,
1180       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
1181       229,  229,  232,  232,  507,  232,  507,  232,  508,  232,
1182       508,  232,  509,  232,  510,  232,  511,  511,  232,  511,
1183       232,  232,  232,  512,  232,  512,  232,  232,  513,  232,
1184 
1185       232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
1186       745,  745,  232,  745,  232,  745,  232,  745,  232,  745,
1187       232,  745,  232,  745,  232,  232,  745,  232,  745,  745,
1188       745,  232,  745,  232,  232,  232,  232,  232,  232,  232,
1189       232,  232,  232,  232,  232,  232,  232,  745,  745,  232,
1190       745,  232,  745,  232,  745,  232,  745,  232,  745,  232,
1191       745,  232,  232,  745,  232,  745,  745,  745,  232,  745,
1192       232,  514,  244,  244,  244,  244,  244,  244,  244,  244,
1193       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
1194       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
1195 
1196       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
1197       516,  516,  516,  516,  516,  516,  516,  516,  516,  516,
1198       516,  516,  516,  516,  516,  516,  516,  516,  516,  516,
1199       516,  516,  516,  516,  516,  516,  516,  516,  516,  516,
1200       516,  516,  516,  516,  516,  516,  516,  516,  517,  517,
1201       517,  517,  517,  517,  517,  517,  517,  517,  517,  517,
1202       517,  517,  517,  517,  517,  517,  517,  517,  517,  517,
1203       517,  517,  517,  517,  517,  517,  517,  517,  517,  517,
1204       517,  517,  517,  517,  517,  517,  213,  213,  570,  213,
1205       570,  213,  571,  213,  571,  213,  572,  213,  573,  213,
1206 
1207       574,  574,  213,  574,  213,  213,  213,  575,  213,  575,
1208       213,   71,  745,   71,  367,  367,  367,  367,  627,  627,
1209       627,  627,  627,  627,  627,  627,  627,  367,  367,  367,
1210       506,  506,  506,  506,  506,  506,  506,  506,  506,  506,
1211       745,  745,  745,  745,  341,  506,  506,  506,  506,  506,
1212       506,  506,  745,  745,  745,  745,  745,  745,  367,  367,
1213       367,  367,  367,  367,  367,  506,  506,  506,  745,  367,
1214       367,  367,  367,  367,  367,  367,  628,  628,  628,  745,
1215       745,  745,  745,  745,  745,  628,  628,  628,  628,  390,
1216       390,  390,  390,  390,  390,  390,  745,  628,  628,  628,
1217 
1218       628,  628,  628,  382,  382,  382,  382,  382,  382,  382,
1219       382,  382,  382,  342,  342,  342,  342,  342,  343,  344,
1220       344,  344,  344,  344,  344,  345,  346,  347,  348,  349,
1221       350,   71,  745,   71,  382,  382,  382,  382,  382,  382,
1222       382,  382,  382,  382,  745,  745,  745,  579,  579,  579,
1223       629,  629,  629,  629,  629,  629,  629,  629,  629,  629,
1224       745,  745,  745,  745,  341,  629,  629,  629,  629,  629,
1225       629,  629,  629,  629,  382,  382,  382,  382,  382,  382,
1226       382,  382,  382,  382,  390,  390,  390,  390,  390,  390,
1227       390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
1228 
1229       390,  390,  390,  390,  630,  630,  630,  630,  630,  630,
1230       630,  630,  630,  630,  630,  630,  630,  630,  630,  630,
1231       630,  630,  630,  390,  390,  390,  390,  390,  390,  390,
1232       390,  390,  390,  342,  342,  342,  580,  581,  582,  583,
1233       344,  344,  344,  344,  584,  345,  346,  347,  348,  349,
1234       350,   71,  745,   71,  539,  539,  539,  539,  539,  539,
1235       539,  745,  745,  468,  468,  468,  745,  585,  585,  585,
1236       671,  671,  671,  671,  671,  671,  585,  585,  585,  585,
1237       745,  745,  745,  745,  341,  745,  745,  745,  585,  585,
1238       585,  585,  585,  585,  539,  539,  539,  539,  539,  539,
1239 
1240       539,  539,  539,  745,  745,  745,  467,  745,  745,  261,
1241       261,  261,  569,  569,  569,  569,  569,  569,  569,  262,
1242       263,  262,  569,  569,  569,  569,  569,  569,  569,  569,
1243       569,  569,  745,  262,  263,  262,  569,  569,  569,  569,
1244       569,  569,  569,  569,  569,  569,  468,  468,  468,  468,
1245       468,  468,  468,  342,  342,  342,  342,  342,  343,  344,
1246       344,  344,  344,  344,  344,  345,  346,  347,  348,  349,
1247       350,  203,  203,  203,  745,  745,  745,  745,  745,  745,
1248       203,  203,  203,  203,  367,  367,  367,  367,  367,  367,
1249       367,  745,  203,  203,  203,  203,  203,  203,  264,  265,
1250 
1251       266,  267,  745,  745,  745,  745,  268,  606,  606,  606,
1252       203,  367,  367,  367,  367,  367,  367,  367,  745,  586,
1253       586,  586,  586,  586,  586,  586,  586,  586,  586,  586,
1254       586,  586,  586,  586,  586,  586,  586,  586,  586,  586,
1255       586,  586,  586,  586,  586,  586,  586,  586,  586,  586,
1256       586,  586,  586,  586,  586,  586,  586,  587,  587,  587,
1257       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
1258       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
1259       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
1260       587,  587,  587,  587,  587,  588,  588,  588,  588,  588,
1261 
1262       588,  588,  588,  588,  588,  588,  588,  588,  588,  588,
1263       588,  588,  588,  588,  588,  588,  588,  588,  588,  588,
1264       588,  588,  588,  588,  588,  588,  588,  588,  588,  588,
1265       588,  588,  588,   71,  745,   72,  271,  271,  271,  367,
1266       367,  367,  367,  367,  367,  367,  272,  745,  272,  664,
1267       664,  664,  664,  664,  664,  664,  664,  664,  664,  745,
1268       272,  745,  272,  631,  745,  631,   73,  745,  632,  632,
1269       632,  745,  539,  539,  539,  745,  745,  745,  633,  745,
1270       633,  745,  540,  745,  540,  745,  745,  639,  745,  639,
1271       745,  640,  633,  640,  633,  641,  540,  642,  540,  643,
1272 
1273       643,  745,  643,   85,   85,   85,  644,  745,  644,  683,
1274       683,  683,  683,  683,  683,  683,  683,  683,  683,  745,
1275       745,  745,  745,  647,  745,  273,  274,  275,  276,  745,
1276       745,  745,  745,  277,  745,   74,   74,   74,   74,   74,
1277        75,   76,   76,   76,   76,   76,   76,   77,   78,   79,
1278        80,   81,   82,   71,  745,   72,  745,  634,  635,  636,
1279       637,  541,  542,  543,  544,  638,  745,  745,  745,  545,
1280       207,  683,  683,  683,  683,  683,  683,  683,  683,  683,
1281       745,  745,  745,  745,  745,  745,   73,  745,  745,  745,
1282        86,   87,   88,   89,   90,   91,  745,   92,   93,   94,
1283 
1284        95,  367,  367,  367,  606,  606,  606,  606,  606,  606,
1285       606,  606,  606,  606,  745,  745,  745,  207,  207,  207,
1286       207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
1287       589,  589,  589,  589,  589,  589,  589,  207,  207,  207,
1288       207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
1289       207,  207,  207,  207,  207,   74,   74,   74,   74,   74,
1290        75,   76,   76,   76,   76,   76,   76,   77,   78,   79,
1291        80,   81,   82,   70,   70,   70,   70,   70,   70,   70,
1292        70,   70,   70,   70,   70,   70,   74,   74,  590,   74,
1293       590,   74,  591,   74,  591,   74,  592,   74,  593,   74,
1294 
1295       594,  594,   74,  594,   74,   74,   74,  595,   74,  595,
1296        74,   74,  596,   74,   74,   74,   74,   74,   74,   74,
1297        74,   74,   74,   74,  745,  745,   74,  745,   74,  745,
1298        74,  745,   74,  745,   74,  745,   74,  745,   74,   74,
1299       745,   74,  745,  745,  745,   74,  745,   74,   74,   74,
1300        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
1301        74,  745,  745,   74,  745,   74,  745,   74,  745,   74,
1302       745,   74,  745,   74,  745,   74,   74,  745,   74,  745,
1303       745,  745,   74,  745,   74,  597,   71,  745,   72,   85,
1304        85,   85,  468,  468,  468,  468,  468,  468,  468,  745,
1305 
1306       745,  745,  472,  472,  472,  671,  671,  671,  671,  671,
1307       671,  671,  671,  671,  648,  745,  745,  745,  745,   73,
1308       449,  449,  449,  632,  632,  632,  632,  632,  632,  632,
1309       450,  745,  450,  745,  745,  127,  745,  330,  330,  330,
1310       745,  745,  745,  745,  450,   84,  450,  331,  332,  331,
1311       539,  539,  539,  539,  539,  539,  539,  589,  589,  589,
1312       745,  331,  332,  331,  207,  207,  207,  207,  207,  207,
1313       207,  207,  207,  207,  745,  745,   86,   87,   88,   89,
1314        90,   91,  745,   92,   93,   94,   95,  745,   74,   74,
1315        74,  473,  474,  475,  476,   76,   76,   76,   76,  477,
1316 
1317        77,   78,   79,   80,   81,   82,  100,  745,  745,  451,
1318       452,  453,  454,  100,  745,  745,  745,  455,  745,  745,
1319       745,  745,  600,  600,  600,  745,  333,  334,  335,  336,
1320       745,  745,  745,  745,  337,  745,  745,  745,  745,  231,
1321       589,  589,  589,  589,  589,  589,  589,  632,  632,  632,
1322       632,  632,  632,  632,  632,  632,  207,  207,  207,  207,
1323       207,  207,  207,  207,  207,  207,  589,  589,  589,  745,
1324       745,  745,  745,  207,  207,  207,  207,  207,  207,  207,
1325       207,  207,  207,  367,  367,  367,  367,  367,  367,  367,
1326       745,  745,  745,  745,  745,  745,  684,  684,  684,  684,
1327 
1328       684,  684,  684,  684,  684,  745,  745,  745,  232,  232,
1329       232,  601,  602,  603,  604,  234,  234,  234,  234,  605,
1330       235,  236,  237,  238,  239,  240,  100,  204,  204,  204,
1331       745,  745,  745,  100,  745,  745,  204,  204,  204,  204,
1332       715,  715,  715,  715,  715,  715,  715,  745,  204,  204,
1333       204,  204,  204,  204,  745,  745,  745,  745,  745,  231,
1334       367,  367,  367,  606,  606,  606,  606,  606,  606,  606,
1335       606,  606,  606,  367,  367,  367,  693,  693,  693,  693,
1336       693,  693,  693,  693,  693,  693,  745,  745,  745,  745,
1337       367,  367,  367,  367,  367,  367,  367,  367,  367,  367,
1338 
1339       367,  367,  367,  606,  606,  606,  606,  606,  606,  606,
1340       367,  367,  367,  367,  367,  367,  367,  367,  367,  367,
1341       367,  367,  367,  367,  367,  367,  367,  367,  232,  232,
1342       232,  232,  232,  233,  234,  234,  234,  234,  234,  234,
1343       235,  236,  237,  238,  239,  240,  229,  229,  229,  229,
1344       229,  229,  229,  229,  229,  229,  229,  229,  229,  232,
1345       232,  607,  232,  607,  232,  608,  232,  608,  232,  609,
1346       232,  610,  232,  611,  611,  232,  611,  232,  232,  232,
1347       612,  232,  612,  232,  232,  613,  232,  232,  232,  232,
1348       232,  232,  232,  232,  232,  232,  232,  745,  745,  232,
1349 
1350       745,  232,  745,  232,  745,  232,  745,  232,  745,  232,
1351       745,  232,  232,  745,  232,  745,  745,  745,  232,  745,
1352       232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
1353       232,  232,  232,  232,  745,  745,  232,  745,  232,  745,
1354       232,  745,  232,  745,  232,  745,  232,  745,  232,  232,
1355       745,  232,  745,  745,  745,  232,  745,  232,  614,  100,
1356       745,  745,  745,  606,  606,  606,  100,  367,  367,  367,
1357       367,  367,  367,  367,  745,  615,  615,  615,  745,  745,
1358       745,  745,  745,  745,  615,  615,  615,  615,  745,  745,
1359       745,  745,  231,  745,  745,  745,  615,  615,  615,  615,
1360 
1361       615,  615,  367,  367,  367,  367,  693,  693,  693,  693,
1362       693,  693,  693,  693,  693,  367,  367,  367,  606,  606,
1363       606,  606,  606,  606,  606,  606,  606,  606,  606,  606,
1364       606,  606,  606,  606,  606,  745,  745,  745,  745,  745,
1365       745,  367,  367,  367,  367,  367,  367,  367,  367,  367,
1366       367,  618,  618,  618,  618,  618,  618,  618,  618,  618,
1367       618,  232,  232,  232,  232,  232,  233,  234,  234,  234,
1368       234,  234,  234,  235,  236,  237,  238,  239,  240,  616,
1369       616,  616,  616,  616,  616,  616,  616,  616,  616,  616,
1370       616,  616,  616,  616,  616,  616,  616,  616,  616,  616,
1371 
1372       616,  616,  616,  616,  616,  616,  616,  616,  616,  616,
1373       616,  616,  616,  616,  616,  616,  616,  617,  617,  617,
1374       617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
1375       617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
1376       617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
1377       617,  617,  617,  617,  617,  230,  745,  745,  745,  745,
1378       745,  230,  745,  745,  500,  500,  500,  745,  745,  745,
1379       229,  229,  229,  229,  229,  229,  229,  745,  745,  229,
1380       229,  229,  229,  745,  745,  229,  229,  229,  229,  229,
1381       229,  229,  229,  229,  229,  229,  229,  367,  367,  367,
1382 
1383       618,  618,  618,  618,  618,  618,  618,  618,  618,  618,
1384       367,  367,  367,  695,  695,  695,  695,  695,  695,  695,
1385       695,  695,  695,  367,  367,  367,  367,  695,  695,  695,
1386       695,  695,  695,  695,  695,  695,  367,  367,  367,  618,
1387       618,  618,  618,  618,  618,  618,  618,  618,  618,  745,
1388       745,  745,  745,  501,  502,  503,  504,  745,  745,  745,
1389       745,  505,  244,  244,  244,  244,  244,  244,  244,  244,
1390       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
1391       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
1392       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
1393 
1394        71,  745,   71,  618,  618,  618,  745,  367,  367,  367,
1395       367,  367,  367,  367,  745,  745,  665,  665,  665,  745,
1396       745,  618,  618,  618,  618,  618,  618,  618,  745,  745,
1397       745,  745,  745,  341,  367,  367,  367,  367,  367,  367,
1398       367,  618,  618,  618,  745,  367,  367,  367,  367,  367,
1399       367,  367,  241,  241,  241,  382,  382,  382,  745,  745,
1400       745,  241,  241,  241,  241,  250,  745,  250,  745,  745,
1401       390,  390,  390,  241,  241,  241,  241,  241,  241,  250,
1402       262,  250,  262,  539,  539,  539,  539,  539,  539,  539,
1403       539,  539,  539,  745,  262,  745,  262,  745,  745,  745,
1404 
1405       745,  745,  342,  342,  342,  666,  667,  668,  669,  344,
1406       344,  344,  344,  670,  345,  346,  347,  348,  349,  350,
1407        71,  696,   71,  696,  745,  697,  745,  697,  745,  698,
1408       745,  699,  745,  700,  700,  745,  700,  745,  745,  745,
1409       701,  745,  701,  745,  383,  384,  385,  386,  745,  745,
1410       745,  745,  387,  341,  745,  745,  745,  745,  745,  391,
1411       392,  393,  394,  745,  745,  745,  745,  395,  539,  539,
1412       539,  539,  539,  539,  539,  539,  539,  539,  745,  745,
1413       745,  745,  745,  745,  468,  468,  468,  468,  468,  468,
1414       468,  468,  468,  468,  468,  468,  468,  671,  671,  671,
1415 
1416       671,  671,  671,  671,  468,  468,  468,  468,  468,  468,
1417       468,  468,  468,  468,  468,  468,  468,  468,  468,  468,
1418       468,  468,  342,  342,  342,  342,  342,  343,  344,  344,
1419       344,  344,  344,  344,  345,  346,  347,  348,  349,  350,
1420       203,  203,  203,  203,  203,  203,  203,  203,  203,  203,
1421       203,  203,  203,  342,  342,  672,  342,  672,  342,  673,
1422       342,  673,  342,  674,  342,  675,  342,  676,  676,  342,
1423       676,  342,  342,  342,  677,  342,  677,  342,  342,  678,
1424       342,  342,  342,  342,  342,  342,  342,  342,  342,  342,
1425       342,  745,  745,  342,  745,  342,  745,  342,  745,  342,
1426 
1427       745,  342,  745,  342,  745,  342,  342,  745,  342,  745,
1428       745,  745,  342,  745,  342,  342,  342,  342,  342,  342,
1429       342,  342,  342,  342,  342,  342,  342,  342,  745,  745,
1430       342,  745,  342,  745,  342,  745,  342,  745,  342,  745,
1431       342,  745,  342,  342,  745,  342,  745,  745,  745,  342,
1432       745,  342,  679,   71,  745,   71,  704,  704,  704,  704,
1433       704,  704,  704,  704,  704,  704,  745,  745,  745,  680,
1434       680,  680,  745,  745,  745,  745,  745,  745,  680,  680,
1435       680,  680,  745,  745,  745,  745,  341,  745,  745,  745,
1436       680,  680,  680,  680,  680,  680,  704,  704,  704,  704,
1437 
1438       704,  704,  704,  704,  704,  539,  539,  539,  539,  539,
1439       539,  539,  539,  539,  539,  203,  203,  203,  745,  745,
1440       745,  745,  745,  745,  203,  203,  203,  203,  745,  468,
1441       468,  468,  468,  468,  468,  468,  203,  203,  203,  203,
1442       203,  203,  715,  715,  715,  715,  715,  715,  715,  715,
1443       715,  745,  745,  745,  745,  342,  342,  342,  342,  342,
1444       343,  344,  344,  344,  344,  344,  344,  345,  346,  347,
1445       348,  349,  350,  681,  681,  681,  681,  681,  681,  681,
1446       681,  681,  681,  681,  681,  681,  681,  681,  681,  681,
1447       681,  681,  681,  681,  681,  681,  681,  681,  681,  681,
1448 
1449       681,  681,  681,  681,  681,  681,  681,  681,  681,  681,
1450       681,  682,  682,  682,  682,  682,  682,  682,  682,  682,
1451       682,  682,  682,  682,  682,  682,  682,  682,  682,  682,
1452       682,  682,  682,  682,  682,  682,  682,  682,  682,  682,
1453       682,  682,  682,  682,  682,  682,  682,  682,  682,   71,
1454       745,   72,  632,  632,  632,  745,  745,  745,  468,  468,
1455       468,  745,  633,  745,  633,  671,  671,  671,  671,  671,
1456       671,  745,  745,  745,  745,  745,  633,  745,  633,  468,
1457       468,  468,   73,  449,  449,  449,  671,  671,  671,  671,
1458       671,  671,  745,  450,  745,  450,  671,  671,  671,  745,
1459 
1460       468,  468,  468,  468,  468,  468,  468,  450,   84,  450,
1461       716,  745,  716,  745,  717,  745,  717,  745,  718,  745,
1462       719,  745,  720,  720,  745,  720,  745,  745,  745,  721,
1463       745,  721,  468,  468,  468,  468,  468,  468,  468,  745,
1464       745,  634,  635,  636,  637,  745,  745,  745,  745,  638,
1465       745,   74,   74,   74,   74,   74,   75,   76,   76,   76,
1466        76,   76,   76,   77,   78,   79,   80,   81,   82,   71,
1467       745,   72,  451,  452,  453,  454,  745,  745,  745,  745,
1468       455,  468,  468,  468,  724,  724,  724,  724,  724,  724,
1469       724,  724,  724,  724,  745,  745,  745,  725,  725,  725,
1470 
1471       745,  745,   73,  665,  665,  665,  725,  725,  725,  725,
1472       745,  745,  203,  203,  203,  203,  745,  745,  725,  725,
1473       725,  725,  725,  725,  203,  203,  203,  203,  203,  203,
1474       745,  745,  745,  207,  207,  207,  207,  207,  207,  207,
1475       207,  207,  207,  207,  207,  207,  207,  207,  207,  589,
1476       589,  589,  589,  589,  589,  589,  589,  589,  589,  207,
1477       207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
1478       207,   74,   74,   74,   74,   74,   75,   76,   76,   76,
1479        76,   76,   76,   77,   78,   79,   80,   81,   82,   71,
1480       745,   72,  666,  667,  668,  669,  745,  745,  745,  745,
1481 
1482       670,  745,  745,  745,  745,  472,  472,  472,  468,  468,
1483       468,  468,  724,  724,  724,  724,  724,  724,  724,  724,
1484       724,  745,   73,  671,  671,  671,  671,  671,  671,  671,
1485       745,  745,  745,  745,  745,  745,  468,  468,  468,  468,
1486       468,  468,  468,  671,  671,  671,  745,  468,  468,  468,
1487       468,  468,  468,  468,  468,  468,  468,  468,  468,  468,
1488       468,  229,  229,  229,  745,  745,  745,  367,  367,  367,
1489       229,  229,  229,  229,  684,  684,  684,  684,  684,  684,
1490       745,  745,  229,  229,  229,  229,  229,  229,  745,  745,
1491       745,   74,   74,   74,  473,  474,  475,  476,   76,   76,
1492 
1493        76,   76,  477,   77,   78,   79,   80,   81,   82,  100,
1494       367,  367,  367,  745,  745,  745,  100,  684,  684,  684,
1495       684,  684,  684,  367,  367,  367,  726,  726,  726,  726,
1496       726,  726,  726,  726,  726,  726,  745,  745,  745,  745,
1497       745,  745,  231,  367,  367,  367,  367,  726,  726,  726,
1498       726,  726,  726,  726,  726,  726,  367,  367,  367,  745,
1499       745,  745,  745,  684,  684,  684,  684,  684,  684,  684,
1500       684,  684,  745,  367,  367,  367,  367,  367,  367,  367,
1501       684,  684,  684,  684,  684,  684,  684,  745,  745,  745,
1502       745,  745,  745,  367,  367,  367,  367,  367,  367,  367,
1503 
1504       684,  684,  684,  745,  367,  367,  367,  367,  367,  367,
1505       367,  232,  232,  232,  232,  232,  233,  234,  234,  234,
1506       234,  234,  234,  235,  236,  237,  238,  239,  240,  100,
1507       364,  364,  364,  745,  745,  745,  100,  745,  745,  364,
1508       364,  364,  364,  745,  745,  745,  745,  745,  230,  745,
1509       745,  364,  364,  364,  364,  364,  364,  229,  229,  229,
1510       745,  745,  231,  745,  745,  745,  229,  229,  229,  229,
1511       632,  632,  632,  632,  632,  632,  632,  745,  229,  229,
1512       229,  229,  229,  229,  727,  727,  727,  727,  727,  727,
1513       727,  727,  727,  367,  367,  367,  367,  367,  367,  367,
1514 
1515       367,  367,  367,  367,  367,  367,  684,  684,  684,  684,
1516       684,  684,  684,  367,  367,  367,  367,  367,  367,  367,
1517       367,  367,  367,  367,  367,  367,  367,  367,  367,  367,
1518       367,  232,  232,  232,  232,  232,  233,  234,  234,  234,
1519       234,  234,  234,  235,  236,  237,  238,  239,  240,  229,
1520       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
1521       229,  229,  232,  232,  685,  232,  685,  232,  686,  232,
1522       686,  232,  687,  232,  688,  232,  689,  689,  232,  689,
1523       232,  232,  232,  690,  232,  690,  232,  232,  691,  232,
1524       232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
1525 
1526       745,  745,  232,  745,  232,  745,  232,  745,  232,  745,
1527       232,  745,  232,  745,  232,  232,  745,  232,  745,  745,
1528       745,  232,  745,  232,  232,  232,  232,  232,  232,  232,
1529       232,  232,  232,  232,  232,  232,  232,  745,  745,  232,
1530       745,  232,  745,  232,  745,  232,  745,  232,  745,  232,
1531       745,  232,  232,  745,  232,  745,  745,  745,  232,  745,
1532       232,  692,  100,  600,  600,  600,  745,  745,  745,  100,
1533       745,  745,  229,  229,  229,  229,  745,  745,  600,  600,
1534       600,  745,  745,  745,  229,  229,  229,  229,  229,  229,
1535       745,  745,  745,  745,  745,  231,  632,  632,  632,  632,
1536 
1537       632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
1538       632,  632,  632,  632,  632,  632,  727,  727,  727,  727,
1539       727,  727,  727,  727,  727,  727,  632,  632,  632,  632,
1540       632,  632,  632,  632,  632,  632,  745,  539,  539,  539,
1541       745,  745,  745,  745,  745,  745,  745,  540,  745,  540,
1542       745,  745,  601,  602,  603,  604,  745,  745,  745,  745,
1543       605,  540,  745,  540,  232,  232,  232,  601,  602,  603,
1544       604,  234,  234,  234,  234,  605,  235,  236,  237,  238,
1545       239,  240,  100,  745,  745,  745,  715,  715,  715,  100,
1546       468,  468,  468,  468,  468,  468,  468,  745,  694,  694,
1547 
1548       694,  745,  745,  745,  745,  745,  745,  694,  694,  694,
1549       694,  745,  745,  745,  745,  231,  745,  745,  745,  694,
1550       694,  694,  694,  694,  694,  745,  541,  542,  543,  544,
1551       203,  203,  203,  745,  545,  745,  745,  745,  745,  203,
1552       203,  203,  203,  745,  745,  745,  745,  745,  745,  745,
1553       745,  203,  203,  203,  203,  203,  203,  468,  468,  468,
1554       715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
1555       468,  468,  468,  715,  715,  715,  715,  715,  715,  715,
1556       715,  715,  715,  745,  232,  232,  232,  232,  232,  233,
1557       234,  234,  234,  234,  234,  234,  235,  236,  237,  238,
1558 
1559       239,  240,  230,  745,  745,  465,  465,  465,  745,  745,
1560       745,  500,  500,  500,  465,  465,  465,  465,  745,  745,
1561       229,  229,  229,  229,  745,  745,  465,  465,  465,  465,
1562       465,  465,  229,  229,  229,  229,  229,  229,  468,  468,
1563       468,  735,  735,  735,  735,  735,  735,  735,  735,  735,
1564       735,  468,  468,  468,  468,  735,  735,  735,  735,  735,
1565       735,  735,  735,  735,  468,  468,  468,  715,  715,  715,
1566       715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
1567       715,  715,  715,  715,  745,  745,  745,  745,  745,  745,
1568       468,  468,  468,  468,  468,  468,  468,  745,  745,  745,
1569 
1570       501,  502,  503,  504,  745,  745,  745,  745,  505,   71,
1571       745,   72,  715,  715,  715,  745,  468,  468,  468,  468,
1572       468,  468,  468,  745,  745,  229,  229,  229,  745,  745,
1573       745,  745,  745,  745,  229,  229,  229,  229,  745,  745,
1574       745,  745,   73,  665,  665,  665,  229,  229,  229,  229,
1575       229,  229,  203,  203,  203,  203,  745,  745,  745,  745,
1576       632,  632,  632,  745,  203,  203,  203,  203,  203,  203,
1577       633,  745,  633,  745,  745,  745,  745,  745,  203,  203,
1578       203,  745,  745,  745,  633,  745,  633,  203,  203,  203,
1579       203,  745,  745,  745,  745,  745,  745,  745,  745,  203,
1580 
1581       203,  203,  203,  203,  203,  745,  745,  745,  745,  745,
1582       745,   74,   74,   74,   74,   74,   75,   76,   76,   76,
1583        76,   76,   76,   77,   78,   79,   80,   81,   82,  745,
1584       745,  745,  666,  667,  668,  669,  745,  745,  745,  745,
1585       670,  745,  745,  745,  745,  745,  745,  745,  745,  634,
1586       635,  636,  637,  745,  745,  745,  745,  638,   65,   65,
1587        65,   65,   65,   65,   65,   65,   65,   65,   65,   70,
1588        70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
1589        83,  745,   83,   83,   83,   83,   83,   83,   83,   83,
1590        83,   99,   99,   99,   99,   99,   99,   99,   99,   99,
1591 
1592        99,   99,  180,  180,  745,  180,  180,  181,  181,  181,
1593       181,  181,  181,  183,  183,  183,  183,  183,  183,  194,
1594       194,  194,  196,  196,  196,  196,  196,  196,  199,  745,
1595       199,  745,  199,  199,  199,  199,  199,  199,  199,  200,
1596       745,  200,  200,  200,  200,  200,  200,  200,  200,  200,
1597       203,  203,  203,  203,  203,  203,  203,  203,  203,  203,
1598       203,   83,  745,   83,   83,   83,   83,   83,   83,   83,
1599        83,   83,   84,   84,  745,   84,   84,  211,  211,  211,
1600       211,  211,  211,  213,  213,  213,  213,  213,  213,  224,
1601       224,  224,  226,  226,  226,  226,  226,  226,  229,  229,
1602 
1603       229,  229,  229,  229,  229,  229,  229,  229,  229,  260,
1604       745,  260,  260,  260,  260,  260,  260,  260,  260,  260,
1605       181,  181,  181,  181,  181,  181,  339,  339,  339,  339,
1606       339,  339,  180,  180,  180,  180,  180,  180,  340,  340,
1607       340,  340,  340,  340,  340,  340,  340,  199,  745,  199,
1608       745,  199,  199,  199,  199,  199,  199,  199,  200,  745,
1609       200,  745,  745,  200,  200,  200,  200,  200,  200,  203,
1610       203,  203,  203,  203,  203,  203,  203,  203,  203,  203,
1611        70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
1612        70,  211,  211,  211,  211,  211,  211,  362,  362,  362,
1613 
1614       362,  362,  362,   84,   84,   84,   84,   84,   84,  363,
1615       363,  363,  363,  363,  363,  363,  363,  363,  229,  229,
1616       229,  229,  229,  229,  229,  229,  229,  229,  229,  260,
1617       745,  260,  260,  260,  260,  260,  260,  260,  260,  260,
1618       211,  211,  211,  211,  211,  211,  213,  213,  213,  213,
1619       213,  213,  203,  203,  203,  203,  203,  203,  203,  203,
1620       203,  203,  203,   70,   70,   70,   70,   70,   70,   70,
1621        70,   70,   70,   70,  229,  229,  229,  229,  229,  229,
1622       229,  229,  229,  229,  229,  211,  211,  211,  211,  211,
1623       211,  213,  213,  213,  213,  213,  213,  203,  203,  203,
1624 
1625       203,  203,  203,  203,  203,  203,  203,  203,   70,   70,
1626        70,   70,   70,   70,   70,   70,   70,   70,   70,  229,
1627       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
1628       211,  211,  211,  211,  211,  211,  203,  203,  203,  203,
1629       203,  203,  203,  203,  203,  203,  203,   70,   70,   70,
1630        70,   70,   70,   70,   70,   70,   70,   70,  229,  229,
1631       229,  229,  229,  229,  229,  229,  229,  229,  229,    5,
1632       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
1633       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
1634       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
1635 
1636       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
1637       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
1638       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
1639       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
1640       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
1641       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
1642       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
1643       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
1644       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
1645       745,  745
1646 
1647     } ;
1648 
1649 static yyconst flex_int16_t yy_chk[8893] =
1650     {   0,
1651         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1652         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1653         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1654         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1655         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1656         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1657         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1658         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1659         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1660         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1661 
1662         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1663         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1664         1,    1,    3,    4,   12,   12,   12,   14,   19,   36,
1665        23,   21,    3,    4,   10,   23,   10,   28,   28,   19,
1666        21,   21,   23,   14,   30,   30,   36,   37,   36,   45,
1667        38,   38,   48,   47,   45,   67,  795,   39,   38,   42,
1668        67,   40,   39,   37,   38,   48,   22,   10,   22,   22,
1669        22,   39,   40,   42,   40,   25,   47,   25,   25,   25,
1670        41,   44,   49,   40,   52,   50,   43,   25,   25,   25,
1671        25,   41,   43,   50,   41,   44,   49,  315,  169,   43,
1672 
1673       167,   25,   25,   25,   35,   35,   35,  167,   25,  169,
1674       315,   12,   12,   12,   12,   12,   12,  201,   12,   12,
1675        12,   12,  201,   52,   35,   57,   57,   57,   57,   57,
1676        57,   57,   82,   82,   82,  303,   10,   10,   10,   10,
1677        10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
1678        10,   10,   10,   10,   15,   46,  303,   22,   22,   22,
1679        22,   15,  784,   46,   46,   22,   25,   25,   25,   25,
1680       110,  110,  110,   46,   25,  317,   46,   58,   58,   58,
1681        58,   58,   58,   58,   58,   58,  176,   15,  176,  175,
1682       317,   35,   35,   35,   35,   35,   35,  175,   35,   35,
1683 
1684        35,   35,   61,   61,   61,   61,  189,  189,  189,   61,
1685        62,   62,   62,   62,   62,   64,   64,   64,   64,   64,
1686        64,   64,   64,   80,   80,   80,   80,   80,   80,  562,
1687        61,  562,   84,   84,   84,  198,  198,  198,   64,   76,
1688        76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
1689        76,   76,  219,  219,  219,  308,   15,   15,   15,   15,
1690        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
1691        15,   15,   15,   15,   24,  308,   24,   24,   24,   88,
1692        88,   88,   88,   88,   88,   88,   24,   24,   24,   24,
1693       300,   24,   73,  307,   73,  228,  228,  228,  300,   73,
1694 
1695        24,   24,   24,   92,   92,   92,   92,   24,   73,   73,
1696        92,  240,  240,  240,  307,   85,   85,   85,   24,   84,
1697        84,   84,   84,   84,   84,   73,   84,   84,   84,   84,
1698        73,   92,  302,  299,   73,   93,   93,   93,   93,   93,
1699       302,   73,  299,  312,   73,  760,   73,   73,   78,   78,
1700        78,   78,   78,   78,   78,   78,   78,  108,  108,  108,
1701       108,  108,  108,  321,  312,   24,   24,   24,   24,  257,
1702       257,  257,  321,   24,   59,   59,   59,   59,   59,   59,
1703        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
1704        59,   59,   59,   59,   59,   59,   59,   59,   59,   70,
1705 
1706       314,   70,   85,   85,   85,   85,   85,   85,  314,   85,
1707        85,   85,   85,   89,   89,   89,   89,   89,   89,   89,
1708        89,   89,   95,   95,   95,   95,   95,   95,   95,   95,
1709       749,  101,   70,  101,  259,  259,  259,  744,  101,  238,
1710       238,  238,  238,  238,  238,   95,  304,  101,  101,  104,
1711       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
1712       104,  104,  151,  304,  101,  305,  151,  306,  306,  101,
1713       151,  305,  306,  101,  285,  285,  285,  292,  292,  292,
1714       101,  151,  309,  101,  504,  101,  101,  106,  106,  106,
1715       106,  106,  106,  106,  106,  106,  294,  294,  294,  309,
1716 
1717       743,   70,   70,   70,   70,   70,   70,   70,   70,   70,
1718        70,   70,   70,   70,   70,   70,   70,   70,   70,   74,
1719       504,   74,  119,  119,  119,  119,  119,  119,  119,  120,
1720       120,  120,  120,  120,  120,  120,  120,  120,  121,  310,
1721       121,  311,  121,  318,  121,  435,  121,  325,  121,  310,
1722       121,  121,   74,  121,  435,  325,  318,  121,  311,  121,
1723       134,  134,  134,  134,  134,  134,  134,  135,  135,  135,
1724       135,  135,  135,  135,  135,  135,  140,  140,  140,  140,
1725       140,  140,  140,   74,   74,   74,   74,   74,   74,   74,
1726        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
1727 
1728        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
1729        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
1730        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
1731        74,   74,   74,   74,   74,   74,   74,   74,   74,   75,
1732        75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
1733        75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
1734        75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
1735        75,   75,   75,   75,   75,   75,   75,   77,   77,   77,
1736        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
1737        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
1738 
1739        77,   77,   77,   77,   77,   77,   79,   79,   79,   79,
1740        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
1741        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
1742        79,   79,   79,   79,   79,   79,   79,   79,   81,   81,
1743        81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
1744        81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
1745        81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
1746        81,   81,   81,   90,   90,   90,   90,   90,   90,   90,
1747        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
1748        90,   90,   90,   90,   90,   90,   90,   90,   99,  118,
1749 
1750       118,  118,  320,  319,  324,   99,  319,  328,  320,  118,
1751       118,  118,  141,  141,  141,  141,  141,  141,  141,  141,
1752       141,  324,  322,  118,  118,  118,  322,  327,  328,  440,
1753       737,   99,  127,  127,  127,  190,  190,  190,  190,  190,
1754       190,  190,  127,  127,  127,  327,  440,  128,  323,  128,
1755       128,  128,  323,  270,  270,  270,  127,  127,  127,  128,
1756       128,  128,  128,  326,  131,  423,  131,  329,  419,  131,
1757       131,  131,  419,  128,  128,  128,  326,  423,  329,  131,
1758       128,  131,  348,  348,  348,  348,  348,  348,  118,  118,
1759       118,  118,  734,  131,  733,  131,  118,  350,  350,  350,
1760 
1761        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
1762        99,   99,   99,   99,   99,   99,   99,   99,  102,  443,
1763       732,  127,  127,  127,  127,  102,  401,  401,  401,  127,
1764       220,  220,  220,  220,  220,  220,  220,  443,  128,  128,
1765       128,  128,  270,  270,  270,  270,  128,  403,  403,  403,
1766       270,  102,  409,  409,  409,  411,  411,  411,  131,  131,
1767       131,  131,  731,  448,  445,  427,  131,  184,  184,  184,
1768       184,  184,  184,  184,  184,  184,  184,  426,  427,  445,
1769       448,  426,  102,  102,  102,  102,  102,  102,  102,  102,
1770       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
1771 
1772       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
1773       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
1774       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
1775       102,  102,  102,  102,  102,  102,  102,  102,  103,  103,
1776       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
1777       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
1778       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
1779       103,  103,  103,  103,  103,  103,  105,  105,  105,  105,
1780       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
1781       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
1782 
1783       105,  105,  105,  105,  105,  107,  107,  107,  107,  107,
1784       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
1785       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
1786       107,  107,  107,  107,  107,  107,  107,  109,  109,  109,
1787       109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
1788       109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
1789       109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
1790       109,  109,  129,  418,  129,  129,  129,  414,  133,  729,
1791       133,  133,  133,  418,  129,  129,  129,  444,  432,  133,
1792       133,  133,  133,  414,  432,  714,  444,  420,  129,  129,
1793 
1794       129,  133,  133,  133,  133,  133,  133,  136,  420,  136,
1795       712,  136,  438,  136,  414,  136,  421,  136,  438,  136,
1796       136,  139,  136,  139,  139,  139,  136,  421,  136,  428,
1797       710,  442,  428,  139,  139,  139,  139,  186,  186,  186,
1798       186,  186,  186,  186,  186,  186,  186,  139,  139,  139,
1799       442,  429,  561,  561,  139,  258,  258,  258,  258,  258,
1800       258,  258,  429,  129,  129,  129,  129,  709,  142,  433,
1801       142,  129,  142,  433,  142,  439,  142,  441,  142,  439,
1802       142,  142,  182,  142,  182,  182,  182,  142,  437,  142,
1803       441,  661,  661,  437,  182,  182,  182,  192,  192,  192,
1804 
1805       192,  192,  192,  192,  192,  192,  558,  447,  182,  182,
1806       182,  447,  139,  139,  139,  139,  462,  462,  462,  558,
1807       139,  214,  214,  214,  214,  214,  214,  214,  214,  214,
1808       214,  216,  216,  216,  216,  216,  216,  216,  216,  216,
1809       216,  222,  222,  222,  222,  222,  222,  222,  222,  222,
1810       231,  537,  231,  234,  234,  234,  234,  234,  234,  234,
1811       234,  234,  234,  234,  234,  234,  231,  231,  464,  464,
1812       464,  707,  537,  182,  182,  182,  182,  523,  523,  523,
1813       563,  182,  203,  563,  203,  525,  525,  525,  231,  531,
1814       531,  531,  231,  533,  533,  533,  548,  549,  647,  231,
1815 
1816       548,  549,  231,  647,  231,  231,  236,  236,  236,  236,
1817       236,  236,  236,  236,  236,  203,  244,  264,  264,  264,
1818       264,  264,  264,  264,  552,  244,  244,  244,  705,  567,
1819       713,  713,  552,  567,  244,  244,  244,  244,  273,  273,
1820       273,  273,  273,  273,  273,  555,  244,  244,  244,  244,
1821       244,  244,  251,  555,  251,  553,  663,  251,  251,  251,
1822       559,  553,  663,  670,  244,  662,  651,  251,  559,  251,
1823       252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
1824       651,  251,  660,  251,  203,  203,  203,  203,  203,  203,
1825       203,  203,  203,  203,  203,  203,  203,  203,  203,  203,
1826 
1827       203,  203,  204,  659,  204,  253,  253,  253,  253,  253,
1828       253,  253,  253,  253,  253,  254,  254,  254,  254,  254,
1829       254,  254,  254,  254,  254,  255,  255,  255,  255,  255,
1830       255,  255,  255,  255,  658,  204,  256,  256,  256,  256,
1831       256,  256,  256,  256,  256,  256,  251,  251,  251,  251,
1832       575,  575,  575,  657,  251,  261,  261,  261,  286,  286,
1833       286,  286,  286,  286,  286,  261,  261,  261,  263,  566,
1834       263,  656,  655,  263,  263,  263,  648,  566,  708,  261,
1835       261,  261,  708,  263,  648,  263,  265,  265,  265,  265,
1836       265,  265,  265,  265,  265,  649,  654,  263,  653,  263,
1837 
1838       577,  577,  577,  649,  204,  204,  204,  204,  204,  204,
1839       204,  204,  204,  204,  204,  204,  204,  204,  204,  204,
1840       204,  204,  205,  650,  205,  271,  271,  271,  293,  293,
1841       293,  293,  293,  293,  293,  271,  650,  271,  205,  205,
1842       205,  644,  644,  644,  261,  261,  261,  261,  652,  271,
1843       638,  271,  261,  730,  706,  205,  646,  646,  646,  730,
1844       738,  652,  263,  263,  263,  263,  706,  266,  738,  266,
1845       263,  266,  669,  266,  728,  266,  711,  266,  728,  266,
1846       266,  637,  266,  701,  701,  701,  266,  711,  266,  274,
1847       274,  274,  274,  274,  274,  274,  274,  274,  280,  280,
1848 
1849       280,  280,  280,  280,  280,  280,  280,  280,  669,  703,
1850       703,  703,  736,  739,  271,  271,  271,  271,  739,  573,
1851       568,  736,  271,  565,  205,  205,  205,  205,  205,  205,
1852       205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
1853       205,  205,  206,  564,  206,  281,  281,  281,  281,  281,
1854       281,  281,  281,  281,  281,  560,  740,  741,  206,  206,
1855       206,  740,  741,  557,  556,  554,  742,  206,  206,  206,
1856       206,  742,  551,  550,  545,  206,  544,  505,  460,  206,
1857       206,  206,  206,  206,  206,  454,  275,  450,  275,  446,
1858       275,  436,  275,  434,  275,  431,  275,  206,  275,  275,
1859 
1860       430,  275,  278,  278,  278,  275,  279,  275,  279,  279,
1861       279,  278,  278,  278,  278,  425,  424,  279,  279,  279,
1862       279,  279,  279,  278,  278,  278,  278,  278,  278,  279,
1863       279,  279,  279,  279,  279,  422,  395,  394,  387,  279,
1864       386,  363,  362,  279,  206,  206,  206,  206,  206,  206,
1865       206,  206,  206,  206,  206,  206,  206,  206,  206,  206,
1866       206,  206,  207,  361,  207,  282,  282,  282,  282,  282,
1867       282,  282,  282,  282,  282,  283,  283,  283,  283,  283,
1868       283,  283,  283,  283,  284,  284,  284,  284,  284,  284,
1869       284,  284,  284,  284,  340,  207,  287,  287,  287,  287,
1870 
1871       287,  287,  287,  287,  287,  287,  288,  288,  288,  288,
1872       288,  288,  288,  288,  288,  288,  289,  289,  289,  289,
1873       289,  289,  289,  289,  289,  289,  290,  290,  290,  290,
1874       290,  290,  290,  290,  290,  291,  291,  291,  291,  291,
1875       291,  291,  291,  291,  291,  339,  297,  297,  297,  333,
1876       333,  333,  333,  333,  333,  333,  358,  358,  358,  358,
1877       358,  358,  358,  336,  207,  207,  207,  207,  207,  207,
1878       207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
1879       207,  207,  208,  297,  208,  334,  334,  334,  334,  334,
1880       334,  334,  334,  334,  337,  337,  337,  337,  337,  337,
1881 
1882       337,  337,  344,  344,  344,  344,  344,  344,  344,  344,
1883       344,  344,  344,  344,  344,  208,  331,  337,  346,  346,
1884       346,  346,  346,  346,  346,  346,  346,  316,  313,  301,
1885       277,  276,  268,  297,  297,  297,  297,  297,  297,  267,
1886       297,  297,  297,  297,  217,  187,  208,  208,  208,  208,
1887       208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
1888       208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
1889       208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
1890       208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
1891       208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
1892 
1893       208,  208,  209,  209,  209,  209,  209,  209,  209,  209,
1894       209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
1895       209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
1896       209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
1897       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
1898       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
1899       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
1900       210,  210,  210,  210,  210,  210,  210,  210,  229,  298,
1901       298,  298,  177,  174,  173,  229,  172,  171,  170,  168,
1902       341,  165,  164,  163,  162,  161,  160,  341,  383,  383,
1903 
1904       383,  383,  383,  383,  383,  159,  341,  341,  158,  157,
1905       330,  229,  330,  330,  330,  156,  155,  154,  153,  152,
1906       149,  298,  330,  330,  330,  145,  144,  143,  341,  138,
1907       137,  123,  341,  122,  117,   91,  330,  330,  330,  341,
1908        68,   60,  341,   34,  341,  341,  391,  391,  391,  391,
1909       391,  391,  391,   29,  330,  381,  381,  381,   18,  389,
1910       389,  389,   13,    9,    7,    5,  298,  298,  298,  298,
1911       298,  298,    0,  298,  298,  298,  298,    0,    0,    0,
1912       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
1913       229,  229,  229,  229,  229,  229,  229,  229,  232,    0,
1914 
1915         0,  330,  330,  330,  330,  232,    0,    0,    0,  330,
1916       384,  384,  384,  384,  384,  384,  384,  384,  384,  353,
1917       353,  353,  353,  353,  353,  353,    0,    0,    0,    0,
1918         0,  232,  353,  353,  353,  353,  353,  353,  353,  353,
1919       353,    0,    0,    0,  381,  381,  381,  381,  389,  389,
1920       389,  389,  381,    0,    0,    0,  389,    0,    0,    0,
1921         0,    0,  232,  232,  232,  232,  232,  232,  232,  232,
1922       232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
1923       232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
1924       232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
1925 
1926       232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
1927       232,  232,  232,  232,  232,  232,  232,  232,  233,  233,
1928       233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
1929       233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
1930       233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
1931       233,  233,  233,  233,  233,  233,  235,  235,  235,  235,
1932       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
1933       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
1934       235,  235,  235,  235,  235,  237,  237,  237,  237,  237,
1935       237,  237,  237,  237,  237,  237,  237,  237,  237,  237,
1936 
1937       237,  237,  237,  237,  237,  237,  237,  237,  237,  237,
1938       237,  237,  237,  237,  237,  237,  237,  239,  239,  239,
1939       239,  239,  239,  239,  239,  239,  239,  239,  239,  239,
1940       239,  239,  239,  239,  239,  239,  239,  239,  239,  239,
1941       239,  239,  239,  239,  239,  239,  239,  239,  239,  239,
1942       239,  239,  241,  367,  367,  367,  382,  382,  382,  241,
1943         0,    0,  367,  367,  367,  367,  382,    0,  382,    0,
1944         0,    0,    0,    0,  367,  367,  367,  367,  367,  367,
1945       382,  332,  382,  332,    0,  241,  332,  332,  332,    0,
1946         0,    0,  367,    0,    0,    0,  332,    0,  332,    0,
1947 
1948       373,  373,  373,  373,  373,  373,  373,    0,    0,    0,
1949       332,    0,  332,  373,  373,  373,  373,  373,  373,  373,
1950       373,  373,    0,  385,    0,  385,    0,  385,  332,  385,
1951         0,  385,    0,  385,    0,  385,  385,    0,  385,    0,
1952         0,    0,  385,    0,  385,  382,  382,  382,  382,    0,
1953         0,    0,    0,  382,  241,  241,  241,  241,  241,  241,
1954       241,  241,  241,  241,  241,  241,  241,  241,  241,  241,
1955       241,  241,  242,    0,    0,  332,  332,  332,  332,  242,
1956         0,    0,    0,  332,    0,  377,  377,  377,  242,  242,
1957       242,    0,    0,    0,  377,  377,  377,  377,  402,  402,
1958 
1959       402,  402,  402,  402,  402,  242,  377,  377,  377,  377,
1960       377,  377,    0,    0,    0,  388,  388,  388,    0,    0,
1961         0,    0,    0,    0,  377,  388,  388,  388,  392,  392,
1962       392,  392,  392,  392,  392,  392,  392,    0,    0,  388,
1963       388,  388,    0,    0,    0,    0,  390,  390,  390,  410,
1964       410,  410,  410,  410,  410,  410,  390,    0,  390,  396,
1965       396,  396,  396,  396,  396,  396,  396,  396,  396,    0,
1966       390,    0,  390,    0,  242,  242,  242,  242,  242,  242,
1967       242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
1968       242,  242,  243,    0,    0,    0,    0,    0,    0,  243,
1969 
1970         0,    0,    0,    0,  388,  388,  388,  388,  243,  243,
1971       243,    0,  388,    0,    0,    0,    0,  243,  243,  243,
1972       243,    0,    0,    0,    0,  243,    0,    0,    0,  243,
1973       243,  243,  243,  243,  243,  390,  390,  390,  390,    0,
1974       393,    0,  393,  390,  393,    0,  393,  243,  393,    0,
1975       393,    0,  393,  393,    0,  393,    0,    0,    0,  393,
1976         0,  393,  397,  397,  397,  397,  397,  397,  397,  397,
1977       397,  397,  398,  398,  398,  398,  398,  398,  398,  398,
1978       398,  398,  399,  399,  399,  399,  399,  399,  399,  399,
1979       399,    0,    0,    0,  243,  243,  243,  243,  243,  243,
1980 
1981       243,  243,  243,  243,  243,  243,  243,  243,  243,  243,
1982       243,  243,  245,  245,  245,  245,  245,  245,  245,  245,
1983       245,  245,  245,  245,  245,  245,  245,  245,  245,  245,
1984       245,  245,  245,  245,  245,  245,  245,  245,  245,  245,
1985       245,  245,  245,  245,  245,  245,  245,  245,  245,  245,
1986       246,  246,  246,  246,  246,  246,  246,  246,  246,  246,
1987       246,  246,  246,  246,  246,  246,  246,  246,  246,  246,
1988       246,  246,  246,  246,  246,  246,  246,  246,  246,  246,
1989       246,  246,  246,  246,  246,  246,  246,  246,  247,  247,
1990       247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
1991 
1992       247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
1993       247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
1994       247,  247,  247,  247,  247,  247,  248,  248,  248,  248,
1995       248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
1996       248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
1997       248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
1998       248,  248,  248,  248,  335,  335,  335,  335,  335,  335,
1999       335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
2000       335,  335,  335,  335,  335,  335,  335,  335,  335,  342,
2001         0,  342,  400,  400,  400,  400,  400,  400,  400,  400,
2002 
2003       400,  400,  404,  404,  404,  404,  404,  404,  404,  404,
2004       404,  404,  405,  405,  405,  405,  405,  405,  405,  405,
2005       405,  405,  342,  406,  406,  406,  406,  406,  406,  406,
2006       406,  406,  406,  407,  407,  407,  407,  407,  407,  407,
2007       407,  407,  408,  408,  408,  408,  408,  408,  408,  408,
2008       408,  408,    0,  342,  342,  342,  342,  342,  342,  342,
2009       342,  342,  342,  342,  342,  342,  342,  342,  342,  342,
2010       342,  342,  342,  342,  342,  342,  342,  342,  342,  342,
2011       342,  342,  342,  342,  342,  342,  342,  342,  342,  342,
2012       342,  342,  342,  342,  342,  342,  342,  342,  342,  342,
2013 
2014       342,  342,  342,  342,  342,  342,  342,  342,  342,  343,
2015       343,  343,  343,  343,  343,  343,  343,  343,  343,  343,
2016       343,  343,  343,  343,  343,  343,  343,  343,  343,  343,
2017       343,  343,  343,  343,  343,  343,  343,  343,  343,  343,
2018       343,  343,  343,  343,  343,  343,  343,  345,  345,  345,
2019       345,  345,  345,  345,  345,  345,  345,  345,  345,  345,
2020       345,  345,  345,  345,  345,  345,  345,  345,  345,  345,
2021       345,  345,  345,  345,  345,  345,  347,  347,  347,  347,
2022       347,  347,  347,  347,  347,  347,  347,  347,  347,  347,
2023       347,  347,  347,  347,  347,  347,  347,  347,  347,  347,
2024 
2025       347,  347,  347,  347,  347,  347,  347,  347,  349,  349,
2026       349,  349,  349,  349,  349,  349,  349,  349,  349,  349,
2027       349,  349,  349,  349,  349,  349,  349,  349,  349,  349,
2028       349,  349,  349,  349,  349,  349,  349,  349,  349,  349,
2029       349,  349,  349,  351,    0,  351,  451,  451,  451,  451,
2030       451,  451,  451,    0,    0,    0,  412,  412,  412,  351,
2031       351,  351,    0,    0,    0,  412,  412,  412,  412,    0,
2032       412,    0,    0,    0,    0,    0,  351,  412,  412,  412,
2033       412,  412,  412,  413,  413,  413,    0,    0,    0,    0,
2034         0,  412,  413,  413,  413,  413,  415,  413,  415,    0,
2035 
2036         0,  415,  415,  415,  413,  413,  413,  413,  413,  413,
2037         0,  415,    0,  415,    0,    0,    0,    0,  413,    0,
2038         0,    0,    0,    0,    0,  415,    0,  415,  452,  452,
2039       452,  452,  452,  452,  452,  452,  452,  463,  463,  463,
2040       463,  463,  463,  463,    0,  351,  351,  351,  351,  351,
2041       351,  351,  351,  351,  351,  351,  351,  351,  351,  351,
2042       351,  351,  351,  352,    0,  352,  455,  455,  455,  455,
2043       455,  455,  455,  455,  457,  457,  457,  457,  457,  457,
2044       457,  457,  457,  457,    0,    0,    0,    0,    0,  455,
2045       415,  415,  415,  415,    0,    0,  352,    0,  415,  459,
2046 
2047       459,  459,  459,  459,  459,  459,  459,  459,  459,  479,
2048       479,  479,  479,  479,  479,  479,  479,  479,  479,  479,
2049       479,  479,    0,    0,    0,    0,    0,  352,  352,  352,
2050       352,  352,  352,  352,  352,  352,  352,  352,  352,  352,
2051       352,  352,  352,  352,  352,  352,  352,  352,  352,  352,
2052       352,  352,  352,  352,  352,  352,  352,  352,  352,  352,
2053       352,  352,  352,  352,  352,  352,  352,  352,  352,  352,
2054       352,  352,  352,  352,  352,  352,  352,  352,  352,  352,
2055       352,  352,  352,  354,  354,  354,  354,  354,  354,  354,
2056       354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
2057 
2058       354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
2059       354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
2060       354,  355,  355,  355,  355,  355,  355,  355,  355,  355,
2061       355,  355,  355,  355,    0,    0,  355,    0,  355,    0,
2062       355,    0,  355,    0,  355,    0,  355,    0,  355,  355,
2063         0,  355,    0,    0,    0,  355,    0,  355,  356,  356,
2064       356,  356,  356,  356,  356,  356,  356,  356,  356,  356,
2065       356,    0,    0,  356,    0,  356,    0,  356,    0,  356,
2066         0,  356,    0,  356,    0,  356,  356,    0,  356,    0,
2067         0,    0,  356,    0,  356,  356,  357,    0,  357,  480,
2068 
2069       480,  480,  480,  480,  480,  480,  480,  480,  480,  480,
2070       480,  480,  357,  357,  357,    0,    0,    0,    0,    0,
2071         0,  357,  357,  357,  357,    0,    0,    0,    0,  357,
2072       468,  468,  468,  357,  357,  357,  357,  357,  357,  468,
2073       468,  468,  468,    0,  474,  474,  474,  474,  474,  474,
2074       474,  468,  468,  468,  468,  468,  468,  474,  474,  474,
2075       474,  474,  474,  474,  474,  474,    0,    0,    0,  468,
2076       481,  481,  481,  481,  481,  481,  481,  481,  481,  481,
2077       481,  481,  481,  482,  482,  482,  482,  482,  482,  482,
2078       482,  482,  482,  482,  482,  482,    0,    0,  357,  357,
2079 
2080       357,  357,  357,  357,  357,  357,  357,  357,  357,  357,
2081       357,  357,  357,  357,  357,  357,  359,  359,  359,  359,
2082       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
2083       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
2084       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
2085       359,  359,  359,  359,  360,  360,  360,  360,  360,  360,
2086       360,  360,  360,  360,  360,  360,  360,  360,  360,  360,
2087       360,  360,  360,  360,  360,  360,  360,  360,  360,  360,
2088       360,  360,  360,  360,  360,  360,  360,  360,  360,  360,
2089       360,  360,  364,  416,    0,  416,  416,  416,    0,  364,
2090 
2091         0,    0,    0,    0,    0,  416,  416,  416,  484,  484,
2092       484,    0,  484,  484,  484,  484,  484,  484,  484,  416,
2093       416,  416,    0,    0,  417,  364,  417,  417,  417,  488,
2094       488,  488,  488,  488,  488,  488,  417,  417,  417,  417,
2095         0,    0,  538,  538,  538,    0,  449,  449,  449,    0,
2096       417,  417,  417,    0,    0,    0,  449,  417,  449,    0,
2097         0,    0,    0,  456,    0,  456,  456,  456,    0,    0,
2098       449,    0,  449,    0,    0,  456,  456,  456,    0,    0,
2099         0,    0,    0,    0,  416,  416,  416,  416,  449,  456,
2100       456,  456,  416,    0,  364,  364,  364,  364,  364,  364,
2101 
2102       364,  364,  364,  364,  364,  364,  364,  364,  364,  364,
2103       364,  364,  365,    0,    0,  417,  417,  417,  417,  365,
2104         0,    0,    0,  417,    0,    0,    0,    0,  365,  365,
2105       365,  538,  538,  538,  538,  449,  449,  449,  449,  538,
2106         0,    0,    0,  449,    0,  365,  489,  489,  489,  489,
2107       489,  489,  489,    0,  456,  456,  456,  456,    0,    0,
2108         0,    0,  456,  483,  483,  483,  483,  483,  483,  483,
2109       483,  483,  483,  483,  483,  483,  485,  485,  485,  485,
2110       485,  485,  485,    0,    0,    0,  631,  631,  631,  485,
2111       485,  485,  485,  485,  485,  485,  486,  486,  486,    0,
2112 
2113       486,  486,  486,  486,  486,  486,  486,  497,  497,  497,
2114       497,  497,  497,  497,  365,  365,  365,  365,  365,  365,
2115       365,  365,  365,  365,  365,  365,  365,  365,  365,  365,
2116       365,  365,  366,    0,    0,    0,    0,    0,    0,  366,
2117       501,  501,  501,  501,  501,  501,  501,    0,  366,  366,
2118       366,    0,    0,    0,    0,    0,    0,  366,  366,  366,
2119       366,    0,    0,    0,    0,  366,    0,    0,    0,  366,
2120       366,  366,  366,  366,  366,  631,  631,  631,  631,  487,
2121       487,  487,    0,  631,    0,    0,    0,  366,  487,  487,
2122       487,  487,    0,  492,  492,  492,  492,  492,  492,  492,
2123 
2124       487,  487,  487,  487,  487,  487,  492,  492,  492,  492,
2125       492,  492,  492,  492,  492,    0,    0,    0,  487,  507,
2126       507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
2127       507,  507,    0,    0,  366,  366,  366,  366,  366,  366,
2128       366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
2129       366,  366,  368,  368,  368,    0,    0,    0,    0,    0,
2130         0,  368,  368,  368,  368,    0,  502,  502,  502,  502,
2131       502,  502,  502,  368,  368,  368,  368,  368,  368,  502,
2132       502,  502,  502,  502,  502,  502,  502,  502,  512,  512,
2133       512,  368,  512,  512,  512,  512,  512,  512,  512,    0,
2134 
2135       368,  368,  368,  368,  368,  368,  368,  368,  368,  368,
2136       368,  368,  368,  368,  368,  368,  368,  368,  368,  368,
2137       368,  368,  368,  368,  368,  368,  368,  368,  368,  368,
2138       368,  368,  368,  368,  368,  368,  368,  368,  369,  369,
2139       369,  369,  369,  369,  369,  369,  369,  369,  369,  369,
2140       369,  369,  369,  369,  369,  369,  369,  369,  369,  369,
2141       369,  369,  369,  369,  369,  369,  369,  369,  369,  369,
2142       369,  369,  369,  369,  369,  369,  370,  370,  370,  370,
2143       370,  370,  370,  370,  370,  370,  370,  370,  370,  370,
2144       370,  370,  370,  370,  370,  370,  370,  370,  370,  370,
2145 
2146       370,  370,  370,  370,  370,  370,  370,  370,  370,  370,
2147       370,  370,  370,  370,  371,    0,    0,    0,    0,    0,
2148       500,    0,    0,  371,  371,  371,    0,    0,    0,  500,
2149       500,  500,  371,  371,  371,  371,    0,    0,  500,  500,
2150       500,  500,    0,    0,  371,  371,  371,  371,  371,  371,
2151       500,  500,  500,  500,  500,  500,    0,  503,    0,  503,
2152         0,  503,  371,  503,    0,  503,    0,  503,    0,  503,
2153       503,    0,  503,    0,    0,    0,  503,    0,  503,  508,
2154       508,  508,  508,  508,  508,  508,  508,  508,  508,  508,
2155       508,  508,  509,  509,  509,  509,  509,  509,  509,  509,
2156 
2157       509,  509,  509,  509,  509,  524,  524,  524,  524,  524,
2158       524,  524,  371,  371,  371,  371,    0,    0,    0,    0,
2159       371,  372,  372,  372,  372,  372,  372,  372,  372,  372,
2160       372,  372,  372,  372,  372,  372,  372,  372,  372,  372,
2161       372,  372,  372,  372,  372,  372,  372,  372,  372,  372,
2162       372,  372,  372,  372,  372,  372,  372,  372,  372,  374,
2163       374,  374,  374,  374,  374,  374,  374,  374,  374,  374,
2164       374,  374,  374,  374,  374,  374,  374,  374,  374,  374,
2165       374,  374,  374,  374,  374,  374,  374,  374,  374,  374,
2166       374,  374,  374,  374,  374,  374,  374,  375,  375,  375,
2167 
2168       375,  375,  375,  375,  375,  375,  375,  375,  375,  375,
2169         0,    0,  375,    0,  375,    0,  375,    0,  375,    0,
2170       375,    0,  375,    0,  375,  375,    0,  375,    0,    0,
2171         0,  375,    0,  375,  376,  376,  376,  376,  376,  376,
2172       376,  376,  376,  376,  376,  376,  376,    0,    0,  376,
2173         0,  376,    0,  376,    0,  376,    0,  376,    0,  376,
2174         0,  376,  376,    0,  376,    0,    0,    0,  376,    0,
2175       376,  376,  378,  378,  378,  378,  378,  378,  378,  378,
2176       378,  378,  378,  378,  378,  378,  378,  378,  378,  378,
2177       378,  378,  378,  378,  378,  378,  378,  378,  378,  378,
2178 
2179       378,  378,  378,  378,  378,  378,  378,  378,  378,  378,
2180       379,  379,  379,  379,  379,  379,  379,  379,  379,  379,
2181       379,  379,  379,  379,  379,  379,  379,  379,  379,  379,
2182       379,  379,  379,  379,  379,  379,  379,  379,  379,  379,
2183       379,  379,  379,  379,  379,  379,  379,  379,  380,  380,
2184       380,  380,  380,  380,  380,  380,  380,  380,  380,  380,
2185       380,  380,  380,  380,  380,  380,  380,  380,  380,  380,
2186       380,  380,  380,  380,  380,  380,  380,  380,  380,  380,
2187       380,  380,  380,  380,  380,  380,  453,  453,  453,  453,
2188       453,  453,  453,  453,  453,  453,  453,  453,  453,  453,
2189 
2190       453,  453,  453,  453,  453,  453,  453,  453,  453,  453,
2191       453,  465,    0,  465,  510,  510,  510,  510,  510,  510,
2192       510,  510,  510,  510,  510,  510,  510,  511,  511,  511,
2193       511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
2194         0,    0,    0,    0,  465,  513,  513,  513,  513,  513,
2195       513,  513,    0,    0,    0,    0,    0,    0,  513,  513,
2196       513,  513,  513,  513,  513,  514,  514,  514,    0,  514,
2197       514,  514,  514,  514,  514,  514,  515,  515,  515,    0,
2198         0,    0,    0,    0,    0,  515,  515,  515,  515,  532,
2199       532,  532,  532,  532,  532,  532,    0,  515,  515,  515,
2200 
2201       515,  515,  515,  518,  518,  518,  518,  518,  518,  518,
2202       518,  518,  518,  465,  465,  465,  465,  465,  465,  465,
2203       465,  465,  465,  465,  465,  465,  465,  465,  465,  465,
2204       465,  466,    0,  466,  519,  519,  519,  519,  519,  519,
2205       519,  519,  519,  519,    0,    0,    0,  466,  466,  466,
2206       520,  520,  520,  520,  520,  520,  520,  520,  520,  520,
2207         0,    0,    0,    0,  466,  521,  521,  521,  521,  521,
2208       521,  521,  521,  521,  522,  522,  522,  522,  522,  522,
2209       522,  522,  522,  522,  526,  526,  526,  526,  526,  526,
2210       526,  526,  526,  526,  527,  527,  527,  527,  527,  527,
2211 
2212       527,  527,  527,  527,  528,  528,  528,  528,  528,  528,
2213       528,  528,  528,  528,  529,  529,  529,  529,  529,  529,
2214       529,  529,  529,  530,  530,  530,  530,  530,  530,  530,
2215       530,  530,  530,  466,  466,  466,  466,  466,  466,  466,
2216       466,  466,  466,  466,  466,  466,  466,  466,  466,  466,
2217       466,  467,    0,  467,  541,  541,  541,  541,  541,  541,
2218       541,    0,    0,  672,  672,  672,    0,  467,  467,  467,
2219       672,  672,  672,  672,  672,  672,  467,  467,  467,  467,
2220         0,    0,    0,    0,  467,    0,    0,    0,  467,  467,
2221       467,  467,  467,  467,  542,  542,  542,  542,  542,  542,
2222 
2223       542,  542,  542,    0,    0,    0,  467,    0,    0,  534,
2224       534,  534,  576,  576,  576,  576,  576,  576,  576,  534,
2225       534,  534,  570,  570,  570,  570,  570,  570,  570,  570,
2226       570,  570,    0,  534,  534,  534,  571,  571,  571,  571,
2227       571,  571,  571,  571,  571,  571,  586,  586,  586,  586,
2228       586,  586,  586,  467,  467,  467,  467,  467,  467,  467,
2229       467,  467,  467,  467,  467,  467,  467,  467,  467,  467,
2230       467,  469,  469,  469,    0,    0,    0,    0,    0,    0,
2231       469,  469,  469,  469,  616,  616,  616,  616,  616,  616,
2232       616,    0,  469,  469,  469,  469,  469,  469,  534,  534,
2233 
2234       534,  534,    0,    0,    0,    0,  534,  612,  612,  612,
2235       469,  612,  612,  612,  612,  612,  612,  612,    0,  469,
2236       469,  469,  469,  469,  469,  469,  469,  469,  469,  469,
2237       469,  469,  469,  469,  469,  469,  469,  469,  469,  469,
2238       469,  469,  469,  469,  469,  469,  469,  469,  469,  469,
2239       469,  469,  469,  469,  469,  469,  469,  470,  470,  470,
2240       470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
2241       470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
2242       470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
2243       470,  470,  470,  470,  470,  471,  471,  471,  471,  471,
2244 
2245       471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
2246       471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
2247       471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
2248       471,  471,  471,  472,    0,  472,  535,  535,  535,  617,
2249       617,  617,  617,  617,  617,  617,  535,    0,  535,  572,
2250       572,  572,  572,  572,  572,  572,  572,  572,  572,    0,
2251       535,    0,  535,  536,    0,  536,  472,    0,  536,  536,
2252       536,    0,  539,  539,  539,    0,    0,    0,  536,    0,
2253       536,    0,  539,    0,  539,    0,    0,  543,    0,  543,
2254         0,  543,  536,  543,  536,  543,  539,  543,  539,  543,
2255 
2256       543,    0,  543,  546,  546,  546,  543,    0,  543,  592,
2257       592,  592,  592,  592,  592,  592,  592,  592,  592,    0,
2258         0,    0,    0,  546,    0,  535,  535,  535,  535,    0,
2259         0,    0,    0,  535,    0,  472,  472,  472,  472,  472,
2260       472,  472,  472,  472,  472,  472,  472,  472,  472,  472,
2261       472,  472,  472,  473,    0,  473,    0,  536,  536,  536,
2262       536,  539,  539,  539,  539,  536,    0,    0,    0,  539,
2263       593,  593,  593,  593,  593,  593,  593,  593,  593,  593,
2264         0,    0,    0,    0,    0,    0,  473,    0,    0,    0,
2265       546,  546,  546,  546,  546,  546,    0,  546,  546,  546,
2266 
2267       546,  607,  607,  607,  607,  607,  607,  607,  607,  607,
2268       607,  607,  607,  607,    0,    0,    0,  473,  473,  473,
2269       473,  473,  473,  473,  473,  473,  473,  473,  473,  473,
2270       473,  473,  473,  473,  473,  473,  473,  473,  473,  473,
2271       473,  473,  473,  473,  473,  473,  473,  473,  473,  473,
2272       473,  473,  473,  473,  473,  473,  473,  473,  473,  473,
2273       473,  473,  473,  473,  473,  473,  473,  473,  473,  473,
2274       473,  473,  473,  475,  475,  475,  475,  475,  475,  475,
2275       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
2276       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
2277 
2278       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
2279       475,  476,  476,  476,  476,  476,  476,  476,  476,  476,
2280       476,  476,  476,  476,    0,    0,  476,    0,  476,    0,
2281       476,    0,  476,    0,  476,    0,  476,    0,  476,  476,
2282         0,  476,    0,    0,    0,  476,    0,  476,  477,  477,
2283       477,  477,  477,  477,  477,  477,  477,  477,  477,  477,
2284       477,    0,    0,  477,    0,  477,    0,  477,    0,  477,
2285         0,  477,    0,  477,    0,  477,  477,    0,  477,    0,
2286         0,    0,  477,    0,  477,  477,  478,    0,  478,  547,
2287       547,  547,  581,  581,  581,  581,  581,  581,  581,    0,
2288 
2289         0,    0,  478,  478,  478,  581,  581,  581,  581,  581,
2290       581,  581,  581,  581,  547,    0,    0,    0,    0,  478,
2291       569,  569,  569,  634,  634,  634,  634,  634,  634,  634,
2292       569,    0,  569,    0,    0,  578,    0,  578,  578,  578,
2293         0,    0,    0,    0,  569,  569,  569,  578,  578,  578,
2294       645,  645,  645,  645,  645,  645,  645,  595,  595,  595,
2295         0,  578,  578,  578,  595,  595,  595,  595,  595,  595,
2296       595,  595,  595,  595,    0,    0,  547,  547,  547,  547,
2297       547,  547,    0,  547,  547,  547,  547,    0,  478,  478,
2298       478,  478,  478,  478,  478,  478,  478,  478,  478,  478,
2299 
2300       478,  478,  478,  478,  478,  478,  490,    0,    0,  569,
2301       569,  569,  569,  490,    0,    0,    0,  569,    0,    0,
2302         0,    0,  490,  490,  490,    0,  578,  578,  578,  578,
2303         0,    0,    0,    0,  578,    0,    0,    0,    0,  490,
2304       596,  596,  596,  596,  596,  596,  596,  635,  635,  635,
2305       635,  635,  635,  635,  635,  635,  596,  596,  596,  596,
2306       596,  596,  596,  596,  596,  596,  597,  597,  597,    0,
2307         0,    0,    0,  597,  597,  597,  597,  597,  597,  597,
2308       597,  597,  597,  602,  602,  602,  602,  602,  602,  602,
2309         0,    0,    0,    0,    0,    0,  602,  602,  602,  602,
2310 
2311       602,  602,  602,  602,  602,    0,    0,    0,  490,  490,
2312       490,  490,  490,  490,  490,  490,  490,  490,  490,  490,
2313       490,  490,  490,  490,  490,  490,  491,  599,  599,  599,
2314         0,    0,    0,  491,    0,    0,  599,  599,  599,  599,
2315       666,  666,  666,  666,  666,  666,  666,    0,  599,  599,
2316       599,  599,  599,  599,    0,    0,    0,    0,    0,  491,
2317       608,  608,  608,  608,  608,  608,  608,  608,  608,  608,
2318       608,  608,  608,  609,  609,  609,  609,  609,  609,  609,
2319       609,  609,  609,  609,  609,  609,    0,    0,    0,    0,
2320       491,  491,  491,  491,  491,  491,  491,  491,  491,  491,
2321 
2322       491,  491,  491,  491,  491,  491,  491,  491,  491,  491,
2323       491,  491,  491,  491,  491,  491,  491,  491,  491,  491,
2324       491,  491,  491,  491,  491,  491,  491,  491,  491,  491,
2325       491,  491,  491,  491,  491,  491,  491,  491,  491,  491,
2326       491,  491,  491,  491,  491,  491,  493,  493,  493,  493,
2327       493,  493,  493,  493,  493,  493,  493,  493,  493,  493,
2328       493,  493,  493,  493,  493,  493,  493,  493,  493,  493,
2329       493,  493,  493,  493,  493,  493,  493,  493,  493,  493,
2330       493,  493,  493,  493,  494,  494,  494,  494,  494,  494,
2331       494,  494,  494,  494,  494,  494,  494,    0,    0,  494,
2332 
2333         0,  494,    0,  494,    0,  494,    0,  494,    0,  494,
2334         0,  494,  494,    0,  494,    0,    0,    0,  494,    0,
2335       494,  495,  495,  495,  495,  495,  495,  495,  495,  495,
2336       495,  495,  495,  495,    0,    0,  495,    0,  495,    0,
2337       495,    0,  495,    0,  495,    0,  495,    0,  495,  495,
2338         0,  495,    0,    0,    0,  495,    0,  495,  495,  496,
2339         0,    0,    0,  614,  614,  614,  496,  614,  614,  614,
2340       614,  614,  614,  614,    0,  496,  496,  496,    0,    0,
2341         0,    0,    0,    0,  496,  496,  496,  496,    0,    0,
2342         0,    0,  496,    0,    0,    0,  496,  496,  496,  496,
2343 
2344       496,  496,  610,  610,  610,  610,  610,  610,  610,  610,
2345       610,  610,  610,  610,  610,  611,  611,  611,  611,  611,
2346       611,  611,  611,  611,  611,  611,  611,  611,  613,  613,
2347       613,  613,  613,  613,  613,    0,    0,    0,    0,    0,
2348         0,  613,  613,  613,  613,  613,  613,  613,  619,  619,
2349       619,  619,  619,  619,  619,  619,  619,  619,  619,  619,
2350       619,  496,  496,  496,  496,  496,  496,  496,  496,  496,
2351       496,  496,  496,  496,  496,  496,  496,  496,  496,  498,
2352       498,  498,  498,  498,  498,  498,  498,  498,  498,  498,
2353       498,  498,  498,  498,  498,  498,  498,  498,  498,  498,
2354 
2355       498,  498,  498,  498,  498,  498,  498,  498,  498,  498,
2356       498,  498,  498,  498,  498,  498,  498,  499,  499,  499,
2357       499,  499,  499,  499,  499,  499,  499,  499,  499,  499,
2358       499,  499,  499,  499,  499,  499,  499,  499,  499,  499,
2359       499,  499,  499,  499,  499,  499,  499,  499,  499,  499,
2360       499,  499,  499,  499,  499,  506,    0,    0,    0,    0,
2361         0,  618,    0,    0,  506,  506,  506,    0,    0,    0,
2362       618,  618,  618,  506,  506,  506,  506,    0,    0,  618,
2363       618,  618,  618,    0,    0,  506,  506,  506,  506,  506,
2364       506,  618,  618,  618,  618,  618,  618,  620,  620,  620,
2365 
2366       620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
2367       621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
2368       621,  621,  621,  622,  622,  622,  622,  622,  622,  622,
2369       622,  622,  622,  622,  622,  622,  623,  623,  623,  623,
2370       623,  623,  623,  623,  623,  623,  623,  623,  623,    0,
2371         0,    0,    0,  506,  506,  506,  506,    0,    0,    0,
2372         0,  506,  516,  516,  516,  516,  516,  516,  516,  516,
2373       516,  516,  516,  516,  516,  516,  516,  516,  516,  516,
2374       516,  516,  516,  516,  516,  516,  516,  516,  516,  516,
2375       516,  516,  516,  516,  516,  516,  516,  516,  516,  516,
2376 
2377       579,    0,  579,  624,  624,  624,    0,  624,  624,  624,
2378       624,  624,  624,  624,    0,    0,  579,  579,  579,    0,
2379         0,  625,  625,  625,  625,  625,  625,  625,    0,    0,
2380         0,    0,    0,  579,  625,  625,  625,  625,  625,  625,
2381       625,  626,  626,  626,    0,  626,  626,  626,  626,  626,
2382       626,  626,  628,  628,  628,  629,  629,  629,    0,    0,
2383         0,  628,  628,  628,  628,  629,    0,  629,    0,    0,
2384       630,  630,  630,  628,  628,  628,  628,  628,  628,  629,
2385       630,  629,  630,  639,  639,  639,  639,  639,  639,  639,
2386       639,  639,  639,    0,  630,    0,  630,    0,    0,    0,
2387 
2388         0,    0,  579,  579,  579,  579,  579,  579,  579,  579,
2389       579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
2390       580,  636,  580,  636,    0,  636,    0,  636,    0,  636,
2391         0,  636,    0,  636,  636,    0,  636,    0,    0,    0,
2392       636,    0,  636,    0,  629,  629,  629,  629,    0,    0,
2393         0,    0,  629,  580,    0,    0,    0,    0,    0,  630,
2394       630,  630,  630,    0,    0,    0,    0,  630,  640,  640,
2395       640,  640,  640,  640,  640,  640,  640,  640,    0,    0,
2396         0,    0,    0,    0,  580,  580,  580,  580,  580,  580,
2397       580,  580,  580,  580,  580,  580,  580,  580,  580,  580,
2398 
2399       580,  580,  580,  580,  580,  580,  580,  580,  580,  580,
2400       580,  580,  580,  580,  580,  580,  580,  580,  580,  580,
2401       580,  580,  580,  580,  580,  580,  580,  580,  580,  580,
2402       580,  580,  580,  580,  580,  580,  580,  580,  580,  580,
2403       582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
2404       582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
2405       582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
2406       582,  582,  582,  582,  582,  582,  582,  582,  583,  583,
2407       583,  583,  583,  583,  583,  583,  583,  583,  583,  583,
2408       583,    0,    0,  583,    0,  583,    0,  583,    0,  583,
2409 
2410         0,  583,    0,  583,    0,  583,  583,    0,  583,    0,
2411         0,    0,  583,    0,  583,  584,  584,  584,  584,  584,
2412       584,  584,  584,  584,  584,  584,  584,  584,    0,    0,
2413       584,    0,  584,    0,  584,    0,  584,    0,  584,    0,
2414       584,    0,  584,  584,    0,  584,    0,    0,    0,  584,
2415         0,  584,  584,  585,    0,  585,  641,  641,  641,  641,
2416       641,  641,  641,  641,  641,  641,    0,    0,    0,  585,
2417       585,  585,    0,    0,    0,    0,    0,    0,  585,  585,
2418       585,  585,    0,    0,    0,    0,  585,    0,    0,    0,
2419       585,  585,  585,  585,  585,  585,  642,  642,  642,  642,
2420 
2421       642,  642,  642,  642,  642,  643,  643,  643,  643,  643,
2422       643,  643,  643,  643,  643,  665,  665,  665,    0,    0,
2423         0,    0,    0,    0,  665,  665,  665,  665,    0,  667,
2424       667,  667,  667,  667,  667,  667,  665,  665,  665,  665,
2425       665,  665,  667,  667,  667,  667,  667,  667,  667,  667,
2426       667,    0,    0,    0,    0,  585,  585,  585,  585,  585,
2427       585,  585,  585,  585,  585,  585,  585,  585,  585,  585,
2428       585,  585,  585,  587,  587,  587,  587,  587,  587,  587,
2429       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
2430       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
2431 
2432       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
2433       587,  588,  588,  588,  588,  588,  588,  588,  588,  588,
2434       588,  588,  588,  588,  588,  588,  588,  588,  588,  588,
2435       588,  588,  588,  588,  588,  588,  588,  588,  588,  588,
2436       588,  588,  588,  588,  588,  588,  588,  588,  588,  589,
2437         0,  589,  632,  632,  632,    0,    0,    0,  673,  673,
2438       673,    0,  632,    0,  632,  673,  673,  673,  673,  673,
2439       673,    0,    0,    0,    0,    0,  632,    0,  632,  676,
2440       676,  676,  589,  664,  664,  664,  676,  676,  676,  676,
2441       676,  676,    0,  664,    0,  664,  677,  677,  677,    0,
2442 
2443       677,  677,  677,  677,  677,  677,  677,  664,  664,  664,
2444       668,    0,  668,    0,  668,    0,  668,    0,  668,    0,
2445       668,    0,  668,  668,    0,  668,    0,    0,    0,  668,
2446         0,  668,  681,  681,  681,  681,  681,  681,  681,    0,
2447         0,  632,  632,  632,  632,    0,    0,    0,    0,  632,
2448         0,  589,  589,  589,  589,  589,  589,  589,  589,  589,
2449       589,  589,  589,  589,  589,  589,  589,  589,  589,  590,
2450         0,  590,  664,  664,  664,  664,    0,    0,    0,    0,
2451       664,  674,  674,  674,  674,  674,  674,  674,  674,  674,
2452       674,  674,  674,  674,    0,    0,    0,  680,  680,  680,
2453 
2454         0,    0,  590,  671,  671,  671,  680,  680,  680,  680,
2455         0,    0,  671,  671,  671,  671,    0,    0,  680,  680,
2456       680,  680,  680,  680,  671,  671,  671,  671,  671,  671,
2457         0,    0,    0,  590,  590,  590,  590,  590,  590,  590,
2458       590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
2459       590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
2460       590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
2461       590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
2462       590,  590,  590,  590,  590,  590,  590,  590,  590,  598,
2463         0,  598,  671,  671,  671,  671,    0,    0,    0,    0,
2464 
2465       671,    0,    0,    0,    0,  598,  598,  598,  675,  675,
2466       675,  675,  675,  675,  675,  675,  675,  675,  675,  675,
2467       675,    0,  598,  678,  678,  678,  678,  678,  678,  678,
2468         0,    0,    0,    0,    0,    0,  678,  678,  678,  678,
2469       678,  678,  678,  679,  679,  679,    0,  679,  679,  679,
2470       679,  679,  679,  679,  682,  682,  682,  682,  682,  682,
2471       682,  684,  684,  684,    0,    0,    0,  685,  685,  685,
2472       684,  684,  684,  684,  685,  685,  685,  685,  685,  685,
2473         0,    0,  684,  684,  684,  684,  684,  684,    0,    0,
2474         0,  598,  598,  598,  598,  598,  598,  598,  598,  598,
2475 
2476       598,  598,  598,  598,  598,  598,  598,  598,  598,  600,
2477       686,  686,  686,    0,    0,    0,  600,  686,  686,  686,
2478       686,  686,  686,  687,  687,  687,  687,  687,  687,  687,
2479       687,  687,  687,  687,  687,  687,    0,    0,    0,    0,
2480         0,    0,  600,  688,  688,  688,  688,  688,  688,  688,
2481       688,  688,  688,  688,  688,  688,  689,  689,  689,    0,
2482         0,    0,    0,  689,  689,  689,  689,  689,  689,  690,
2483       690,  690,    0,  690,  690,  690,  690,  690,  690,  690,
2484       691,  691,  691,  691,  691,  691,  691,    0,    0,    0,
2485         0,    0,    0,  691,  691,  691,  691,  691,  691,  691,
2486 
2487       692,  692,  692,    0,  692,  692,  692,  692,  692,  692,
2488       692,  600,  600,  600,  600,  600,  600,  600,  600,  600,
2489       600,  600,  600,  600,  600,  600,  600,  600,  600,  601,
2490       694,  694,  694,    0,    0,    0,  601,    0,    0,  694,
2491       694,  694,  694,    0,    0,    0,    0,    0,  695,    0,
2492         0,  694,  694,  694,  694,  694,  694,  695,  695,  695,
2493         0,    0,  601,    0,    0,    0,  695,  695,  695,  695,
2494       702,  702,  702,  702,  702,  702,  702,    0,  695,  695,
2495       695,  695,  695,  695,  699,  699,  699,  699,  699,  699,
2496       699,  699,  699,  601,  601,  601,  601,  601,  601,  601,
2497 
2498       601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
2499       601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
2500       601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
2501       601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
2502       601,  601,  601,  601,  601,  601,  601,  601,  601,  603,
2503       603,  603,  603,  603,  603,  603,  603,  603,  603,  603,
2504       603,  603,  603,  603,  603,  603,  603,  603,  603,  603,
2505       603,  603,  603,  603,  603,  603,  603,  603,  603,  603,
2506       603,  603,  603,  603,  603,  603,  603,  604,  604,  604,
2507       604,  604,  604,  604,  604,  604,  604,  604,  604,  604,
2508 
2509         0,    0,  604,    0,  604,    0,  604,    0,  604,    0,
2510       604,    0,  604,    0,  604,  604,    0,  604,    0,    0,
2511         0,  604,    0,  604,  605,  605,  605,  605,  605,  605,
2512       605,  605,  605,  605,  605,  605,  605,    0,    0,  605,
2513         0,  605,    0,  605,    0,  605,    0,  605,    0,  605,
2514         0,  605,  605,    0,  605,    0,    0,    0,  605,    0,
2515       605,  605,  606,  693,  693,  693,    0,    0,    0,  606,
2516         0,    0,  693,  693,  693,  693,    0,    0,  606,  606,
2517       606,    0,    0,    0,  693,  693,  693,  693,  693,  693,
2518         0,    0,    0,    0,    0,  606,  696,  696,  696,  696,
2519 
2520       696,  696,  696,  696,  696,  696,  697,  697,  697,  697,
2521       697,  697,  697,  697,  697,  697,  698,  698,  698,  698,
2522       698,  698,  698,  698,  698,  698,  700,  700,  700,  700,
2523       700,  700,  700,  700,  700,  700,    0,  704,  704,  704,
2524         0,    0,    0,    0,    0,    0,    0,  704,    0,  704,
2525         0,    0,  693,  693,  693,  693,    0,    0,    0,    0,
2526       693,  704,    0,  704,  606,  606,  606,  606,  606,  606,
2527       606,  606,  606,  606,  606,  606,  606,  606,  606,  606,
2528       606,  606,  615,    0,    0,    0,  721,  721,  721,  615,
2529       721,  721,  721,  721,  721,  721,  721,    0,  615,  615,
2530 
2531       615,    0,    0,    0,    0,    0,    0,  615,  615,  615,
2532       615,    0,    0,    0,    0,  615,    0,    0,    0,  615,
2533       615,  615,  615,  615,  615,    0,  704,  704,  704,  704,
2534       715,  715,  715,    0,  704,    0,    0,    0,    0,  715,
2535       715,  715,  715,    0,    0,    0,    0,    0,    0,    0,
2536         0,  715,  715,  715,  715,  715,  715,  716,  716,  716,
2537       716,  716,  716,  716,  716,  716,  716,  716,  716,  716,
2538       717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
2539       717,  717,  717,    0,  615,  615,  615,  615,  615,  615,
2540       615,  615,  615,  615,  615,  615,  615,  615,  615,  615,
2541 
2542       615,  615,  627,    0,    0,  725,  725,  725,    0,    0,
2543         0,  627,  627,  627,  725,  725,  725,  725,    0,    0,
2544       627,  627,  627,  627,    0,    0,  725,  725,  725,  725,
2545       725,  725,  627,  627,  627,  627,  627,  627,  718,  718,
2546       718,  718,  718,  718,  718,  718,  718,  718,  718,  718,
2547       718,  719,  719,  719,  719,  719,  719,  719,  719,  719,
2548       719,  719,  719,  719,  720,  720,  720,  720,  720,  720,
2549       720,  720,  720,  720,  720,  720,  720,  722,  722,  722,
2550       722,  722,  722,  722,    0,    0,    0,    0,    0,    0,
2551       722,  722,  722,  722,  722,  722,  722,    0,    0,    0,
2552 
2553       627,  627,  627,  627,    0,    0,    0,    0,  627,  683,
2554         0,  683,  723,  723,  723,    0,  723,  723,  723,  723,
2555       723,  723,  723,    0,    0,  726,  726,  726,    0,    0,
2556         0,    0,    0,    0,  726,  726,  726,  726,    0,    0,
2557         0,    0,  683,  724,  724,  724,  726,  726,  726,  726,
2558       726,  726,  724,  724,  724,  724,    0,    0,    0,    0,
2559       727,  727,  727,    0,  724,  724,  724,  724,  724,  724,
2560       727,    0,  727,    0,    0,    0,    0,    0,  735,  735,
2561       735,    0,    0,    0,  727,    0,  727,  735,  735,  735,
2562       735,    0,    0,    0,    0,    0,    0,    0,    0,  735,
2563 
2564       735,  735,  735,  735,  735,    0,    0,    0,    0,    0,
2565         0,  683,  683,  683,  683,  683,  683,  683,  683,  683,
2566       683,  683,  683,  683,  683,  683,  683,  683,  683,    0,
2567         0,    0,  724,  724,  724,  724,    0,    0,    0,    0,
2568       724,    0,    0,    0,    0,    0,    0,    0,    0,  727,
2569       727,  727,  727,    0,    0,    0,    0,  727,  746,  746,
2570       746,  746,  746,  746,  746,  746,  746,  746,  746,  747,
2571       747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
2572       748,    0,  748,  748,  748,  748,  748,  748,  748,  748,
2573       748,  750,  750,  750,  750,  750,  750,  750,  750,  750,
2574 
2575       750,  750,  751,  751,    0,  751,  751,  752,  752,  752,
2576       752,  752,  752,  753,  753,  753,  753,  753,  753,  754,
2577       754,  754,  755,  755,  755,  755,  755,  755,  756,    0,
2578       756,    0,  756,  756,  756,  756,  756,  756,  756,  757,
2579         0,  757,  757,  757,  757,  757,  757,  757,  757,  757,
2580       758,  758,  758,  758,  758,  758,  758,  758,  758,  758,
2581       758,  759,    0,  759,  759,  759,  759,  759,  759,  759,
2582       759,  759,  761,  761,    0,  761,  761,  762,  762,  762,
2583       762,  762,  762,  763,  763,  763,  763,  763,  763,  764,
2584       764,  764,  765,  765,  765,  765,  765,  765,  766,  766,
2585 
2586       766,  766,  766,  766,  766,  766,  766,  766,  766,  767,
2587         0,  767,  767,  767,  767,  767,  767,  767,  767,  767,
2588       768,  768,  768,  768,  768,  768,  769,  769,  769,  769,
2589       769,  769,  770,  770,  770,  770,  770,  770,  771,  771,
2590       771,  771,  771,  771,  772,  772,  772,  773,    0,  773,
2591         0,  773,  773,  773,  773,  773,  773,  773,  774,    0,
2592       774,    0,    0,  774,  774,  774,  774,  774,  774,  775,
2593       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
2594       776,  776,  776,  776,  776,  776,  776,  776,  776,  776,
2595       776,  777,  777,  777,  777,  777,  777,  778,  778,  778,
2596 
2597       778,  778,  778,  779,  779,  779,  779,  779,  779,  780,
2598       780,  780,  780,  780,  780,  781,  781,  781,  782,  782,
2599       782,  782,  782,  782,  782,  782,  782,  782,  782,  783,
2600         0,  783,  783,  783,  783,  783,  783,  783,  783,  783,
2601       785,  785,  785,  785,  785,  785,  786,  786,  786,  786,
2602       786,  786,  787,  787,  787,  787,  787,  787,  787,  787,
2603       787,  787,  787,  788,  788,  788,  788,  788,  788,  788,
2604       788,  788,  788,  788,  789,  789,  789,  789,  789,  789,
2605       789,  789,  789,  789,  789,  790,  790,  790,  790,  790,
2606       790,  791,  791,  791,  791,  791,  791,  792,  792,  792,
2607 
2608       792,  792,  792,  792,  792,  792,  792,  792,  793,  793,
2609       793,  793,  793,  793,  793,  793,  793,  793,  793,  794,
2610       794,  794,  794,  794,  794,  794,  794,  794,  794,  794,
2611       796,  796,  796,  796,  796,  796,  797,  797,  797,  797,
2612       797,  797,  797,  797,  797,  797,  797,  798,  798,  798,
2613       798,  798,  798,  798,  798,  798,  798,  798,  799,  799,
2614       799,  799,  799,  799,  799,  799,  799,  799,  799,  745,
2615       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
2616       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
2617       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
2618 
2619       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
2620       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
2621       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
2622       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
2623       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
2624       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
2625       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
2626       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
2627       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
2628       745,  745
2629 
2630     } ;
2631 
2632 /* The intent behind this definition is that it'll catch
2633  * any uses of REJECT which flex missed.
2634  */
2635 #define REJECT reject_used_but_not_detected
2636 #define yymore() yymore_used_but_not_detected
2637 #define YY_MORE_ADJ 0
2638 #define YY_RESTORE_YY_MORE_OFFSET
2639 #line 1 "cc.ll"
2640 #line 2 "cc.ll"
2641 /*--   Copyright (C) 2009 Jonathan Schmidt-Dominé <devel@the-user.org>
2642 --   Derived from the KDevelop-Java-Lexer
2643 --
2644 --   This library is free software; you can redistribute it and/or
2645 --   modify it under the terms of the GNU Library General Public
2646 --   License as published by the Free Software Foundation; either
2647 --   version 2 of the License, or (at your option) any later version.
2648 --
2649 --   This library is distributed in the hope that it will be useful,
2650 --   but WITHOUT ANY WARRANTY; without even the implied warranty of
2651 --   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
2652 --   Library General Public License for more details.
2653 --
2654 --   You should have received a copy of the GNU Library General Public License
2655 --   along with this library; see the file COPYING.LIB.  If not, write to
2656 --   the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
2657 --   Boston, MA 02111-1307, USA.*/
2658 #line 27 "cc.ll"
2659 
2660 #define DONT_INCLUDE_FLEXLEXER
2661 #include "lexer.h"
2662 #include <QDebug>
2663 
2664 /* UTF-8 sequences, generated with the Unicode.hs script from
2665 * http://lists.gnu.org/archive/html/help-flex/2005-01/msg00043.html */
2666 /* \u0024, \u0041-\u005a, \u005f, \u0061-\u007a: one byte in UTF-8 */
2667 /* \u00c0-\u00d6, \u00d8-\u00f6, \u00f8-\u00ff */
2668 /* \u0100-\u1fff */
2669 /* \u3040-\u318f */
2670 /* \u3300-\u337f */
2671 /* \u3400-\u3d2d */
2672 /* \u4e00-\u9fff */
2673 /* \uf900-\ufaff */
2674 /* \u0030-\u0039: ISO-LATIN-1 digits */
2675 /* \u0660-\u0669, \u06f0-\u06f9: Arabic-Indic and extended Ar.-Indic digits */
2676 /* \u0966-\u096f, \u09e6-\u09ef: Devanagari digits */
2677 /* \u0a66-\u0a6f, \u0ae6-\u0aef */
2678 /* \u0b66-\u0b6f, \u0be7-\u0bef */
2679 /* \u0c66-\u0c6f, \u0ce6-\u0cef, \u0d66-\u0d6f */
2680 /* \u0e50-\u0e59, \u0ed0-\u0ed9 */
2681 /* \u1040-\u1049 */
2682 /* \uff10-\uff19: Fullwidth digits */
2683 /* \u0080-\uffff */
2684 /* \u10000-\u1fffff */
2685 /* \u200000-\u3ffffff */
2686 /* \u4000000-\u7fffffff */
2687 /* Any multi-byte Unicode character. Single-byte ones are just . in lex. */
2688 /* non-Unicode stuff */
2689 
2690 #line 2691 "cclexer.cpp"
2691 
2692 #define INITIAL 0
2693 #define IN_BLOCKCOMMENT 1
2694 
2695 #ifndef YY_NO_UNISTD_H
2696 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2697  * down here because we want the user's section 1 to have been scanned first.
2698  * The user has a chance to override it with an option.
2699  */
2700 #include <unistd.h>
2701 #endif
2702 
2703 #ifndef YY_EXTRA_TYPE
2704 #define YY_EXTRA_TYPE void *
2705 #endif
2706 
2707 #ifndef yytext_ptr
2708 static void yy_flex_strncpy (char *,yyconst char *,int );
2709 #endif
2710 
2711 #ifdef YY_NEED_STRLEN
2712 static int yy_flex_strlen (yyconst char * );
2713 #endif
2714 
2715 #ifndef YY_NO_INPUT
2716 
2717 #endif
2718 
2719 /* Amount of stuff to slurp up with each read. */
2720 #ifndef YY_READ_BUF_SIZE
2721 #define YY_READ_BUF_SIZE 8192
2722 #endif
2723 
2724 /* Copy whatever the last rule matched to the standard output. */
2725 #ifndef ECHO
2726 #define ECHO LexerOutput( yytext, yyleng )
2727 #endif
2728 
2729 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
2730  * is returned in "result".
2731  */
2732 #ifndef YY_INPUT
2733 #define YY_INPUT(buf,result,max_size) \
2734 \
2735     if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \
2736         YY_FATAL_ERROR( "input in flex scanner failed" );
2737 
2738 #endif
2739 
2740 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2741  * we don't want an extra ';' after the "return" because that will cause
2742  * some compilers to complain about unreachable statements.
2743  */
2744 #ifndef yyterminate
2745 #define yyterminate() return YY_NULL
2746 #endif
2747 
2748 /* Number of entries by which start-condition stack grows. */
2749 #ifndef YY_START_STACK_INCR
2750 #define YY_START_STACK_INCR 25
2751 #endif
2752 
2753 /* Report a fatal error. */
2754 #ifndef YY_FATAL_ERROR
2755 #define YY_FATAL_ERROR(msg) LexerError( msg )
2756 #endif
2757 
2758 /* end tables serialization structures and prototypes */
2759 
2760 /* Default declaration of generated scanner - a define so the user can
2761  * easily add parameters.
2762  */
2763 #ifndef YY_DECL
2764 #define YY_DECL_IS_OURS 1
2765 #define YY_DECL int yyFlexLexer::yylex()
2766 #endif /* !YY_DECL */
2767 
2768 /* Code executed at the beginning of each rule, after yytext and yyleng
2769  * have been set up.
2770  */
2771 #ifndef YY_USER_ACTION
2772 #define YY_USER_ACTION
2773 #endif
2774 
2775 /* Code executed at the end of each rule. */
2776 #ifndef YY_BREAK
2777 #define YY_BREAK break;
2778 #endif
2779 
2780 #define YY_RULE_SETUP \
2781     YY_USER_ACTION
2782 
2783 /** The main scanner function which does all the work.
2784  */
2785 YY_DECL
2786 {
2787     register yy_state_type yy_current_state;
2788     register char *yy_cp, *yy_bp;
2789     register int yy_act;
2790     
2791     if ( !(yy_init) )
2792         {
2793         (yy_init) = 1;
2794 
2795 #ifdef YY_USER_INIT
2796         YY_USER_INIT;
2797 #endif
2798 
2799         if ( ! (yy_start) )
2800             (yy_start) = 1; /* first start state */
2801 
2802         if ( ! yyin )
2803             yyin = & std::cin;
2804 
2805         if ( ! yyout )
2806             yyout = & std::cout;
2807 
2808         if ( ! YY_CURRENT_BUFFER ) {
2809             yyensure_buffer_stack ();
2810             YY_CURRENT_BUFFER_LVALUE =
2811                 yy_create_buffer( yyin, YY_BUF_SIZE );
2812         }
2813 
2814         yy_load_buffer_state(  );
2815         }
2816 
2817     {
2818 #line 122 "cc.ll"
2819 
2820 
2821  /* whitespace, newlines, preprocessor-statements and comments */
2822 
2823 #line 2824 "cclexer.cpp"
2824 
2825     while ( 1 )     /* loops until end-of-file is reached */
2826         {
2827         yy_cp = (yy_c_buf_p);
2828 
2829         /* Support of yytext. */
2830         *yy_cp = (yy_hold_char);
2831 
2832         /* yy_bp points to the position in yy_ch_buf of the start of
2833          * the current run.
2834          */
2835         yy_bp = yy_cp;
2836 
2837         yy_current_state = (yy_start);
2838 yy_match:
2839         do
2840             {
2841             register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
2842             if ( yy_accept[yy_current_state] )
2843                 {
2844                 (yy_last_accepting_state) = yy_current_state;
2845                 (yy_last_accepting_cpos) = yy_cp;
2846                 }
2847             while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2848                 {
2849                 yy_current_state = (int) yy_def[yy_current_state];
2850                 if ( yy_current_state >= 746 )
2851                     yy_c = yy_meta[(unsigned int) yy_c];
2852                 }
2853             yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2854             ++yy_cp;
2855             }
2856         while ( yy_base[yy_current_state] != 8770 );
2857 
2858 yy_find_action:
2859         yy_act = yy_accept[yy_current_state];
2860         if ( yy_act == 0 )
2861             { /* have to back up */
2862             yy_cp = (yy_last_accepting_cpos);
2863             yy_current_state = (yy_last_accepting_state);
2864             yy_act = yy_accept[yy_current_state];
2865             }
2866 
2867         YY_DO_BEFORE_ACTION;
2868 
2869 do_action:  /* This label is used only to access EOF actions. */
2870 
2871         switch ( yy_act )
2872     { /* beginning of action switch */
2873             case 0: /* must back up */
2874             /* undo the effects of YY_DO_BEFORE_ACTION */
2875             *yy_cp = (yy_hold_char);
2876             yy_cp = (yy_last_accepting_cpos);
2877             yy_current_state = (yy_last_accepting_state);
2878             goto yy_find_action;
2879 
2880 case 1:
2881 YY_RULE_SETUP
2882 #line 126 "cc.ll"
2883 /* skip */ ;
2884     YY_BREAK
2885 case 2:
2886 /* rule 2 can match eol */
2887 YY_RULE_SETUP
2888 #line 127 "cc.ll"
2889 /* skip */ ;
2890     YY_BREAK
2891 case 3:
2892 YY_RULE_SETUP
2893 #line 129 "cc.ll"
2894 /* line comments, skip */ ;
2895     YY_BREAK
2896 case 4:
2897 YY_RULE_SETUP
2898 #line 130 "cc.ll"
2899 /* preprocessor statement, skip */ ;
2900     YY_BREAK
2901 case 5:
2902 YY_RULE_SETUP
2903 #line 132 "cc.ll"
2904 BEGIN(IN_BLOCKCOMMENT);
2905     YY_BREAK
2906 
2907 case 6:
2908 YY_RULE_SETUP
2909 #line 134 "cc.ll"
2910 /* eat anything that's not a '*' */ ;
2911     YY_BREAK
2912 case 7:
2913 YY_RULE_SETUP
2914 #line 135 "cc.ll"
2915 /* eat up '*'s that are not followed by slashes or newlines */;
2916     YY_BREAK
2917 case 8:
2918 /* rule 8 can match eol */
2919 YY_RULE_SETUP
2920 #line 136 "cc.ll"
2921 /* skip */ ;
2922     YY_BREAK
2923 case 9:
2924 YY_RULE_SETUP
2925 #line 137 "cc.ll"
2926 BEGIN(INITIAL);
2927     YY_BREAK
2928 case YY_STATE_EOF(IN_BLOCKCOMMENT):
2929 #line 138 "cc.ll"
2930 {
2931     qWarning() << "Encountered end of file in an unclosed block comment";
2932     return Parser::Token_EOF;
2933 }
2934     YY_BREAK
2935 
2936 /* separators */
2937 case 10:
2938 YY_RULE_SETUP
2939 #line 147 "cc.ll"
2940 return Parser::Token_LPAREN;
2941     YY_BREAK
2942 case 11:
2943 YY_RULE_SETUP
2944 #line 148 "cc.ll"
2945 return Parser::Token_RPAREN;
2946     YY_BREAK
2947 case 12:
2948 YY_RULE_SETUP
2949 #line 149 "cc.ll"
2950 return Parser::Token_LBRACE;
2951     YY_BREAK
2952 case 13:
2953 YY_RULE_SETUP
2954 #line 150 "cc.ll"
2955 return Parser::Token_RBRACE;
2956     YY_BREAK
2957 case 14:
2958 YY_RULE_SETUP
2959 #line 151 "cc.ll"
2960 return Parser::Token_LBRACKET;
2961     YY_BREAK
2962 case 15:
2963 YY_RULE_SETUP
2964 #line 152 "cc.ll"
2965 return Parser::Token_RBRACKET;
2966     YY_BREAK
2967 case 16:
2968 YY_RULE_SETUP
2969 #line 153 "cc.ll"
2970 return Parser::Token_COMMA;
2971     YY_BREAK
2972 case 17:
2973 YY_RULE_SETUP
2974 #line 154 "cc.ll"
2975 return Parser::Token_SEMICOLON;
2976     YY_BREAK
2977 case 18:
2978 YY_RULE_SETUP
2979 #line 155 "cc.ll"
2980 return Parser::Token_DOT;
2981     YY_BREAK
2982 case 19:
2983 YY_RULE_SETUP
2984 #line 156 "cc.ll"
2985 return Parser::Token_ARROW;
2986     YY_BREAK
2987 case 20:
2988 YY_RULE_SETUP
2989 #line 157 "cc.ll"
2990 return Parser::Token_COLON;
2991     YY_BREAK
2992 /* operators */
2993 case 21:
2994 YY_RULE_SETUP
2995 #line 162 "cc.ll"
2996 return Parser::Token_QUESTION;
2997     YY_BREAK
2998 case 22:
2999 YY_RULE_SETUP
3000 #line 163 "cc.ll"
3001 return Parser::Token_NOT;
3002     YY_BREAK
3003 case 23:
3004 YY_RULE_SETUP
3005 #line 164 "cc.ll"
3006 return Parser::Token_TILDE;
3007     YY_BREAK
3008 case 24:
3009 YY_RULE_SETUP
3010 #line 165 "cc.ll"
3011 return Parser::Token_EQUAL_EQUAL;
3012     YY_BREAK
3013 case 25:
3014 YY_RULE_SETUP
3015 #line 166 "cc.ll"
3016 return Parser::Token_LESS;
3017     YY_BREAK
3018 case 26:
3019 YY_RULE_SETUP
3020 #line 167 "cc.ll"
3021 return Parser::Token_LESS_EQUAL;
3022     YY_BREAK
3023 case 27:
3024 YY_RULE_SETUP
3025 #line 168 "cc.ll"
3026 return Parser::Token_GREATER;
3027     YY_BREAK
3028 case 28:
3029 YY_RULE_SETUP
3030 #line 169 "cc.ll"
3031 return Parser::Token_GREATER_EQUAL;
3032     YY_BREAK
3033 case 29:
3034 YY_RULE_SETUP
3035 #line 170 "cc.ll"
3036 return Parser::Token_NOT_EQUAL;
3037     YY_BREAK
3038 case 30:
3039 YY_RULE_SETUP
3040 #line 171 "cc.ll"
3041 return Parser::Token_AND_AND;
3042     YY_BREAK
3043 case 31:
3044 YY_RULE_SETUP
3045 #line 172 "cc.ll"
3046 return Parser::Token_OR_OR;
3047     YY_BREAK
3048 case 32:
3049 YY_RULE_SETUP
3050 #line 173 "cc.ll"
3051 return Parser::Token_PLUS_PLUS;
3052     YY_BREAK
3053 case 33:
3054 YY_RULE_SETUP
3055 #line 174 "cc.ll"
3056 return Parser::Token_MINUS_MINUS;
3057     YY_BREAK
3058 case 34:
3059 YY_RULE_SETUP
3060 #line 175 "cc.ll"
3061 return Parser::Token_EQUAL;
3062     YY_BREAK
3063 case 35:
3064 YY_RULE_SETUP
3065 #line 176 "cc.ll"
3066 return Parser::Token_PLUS;
3067     YY_BREAK
3068 case 36:
3069 YY_RULE_SETUP
3070 #line 177 "cc.ll"
3071 return Parser::Token_PLUS_EQUAL;
3072     YY_BREAK
3073 case 37:
3074 YY_RULE_SETUP
3075 #line 178 "cc.ll"
3076 return Parser::Token_MINUS;
3077     YY_BREAK
3078 case 38:
3079 YY_RULE_SETUP
3080 #line 179 "cc.ll"
3081 return Parser::Token_MINUS_EQUAL;
3082     YY_BREAK
3083 case 39:
3084 YY_RULE_SETUP
3085 #line 180 "cc.ll"
3086 return Parser::Token_STAR;
3087     YY_BREAK
3088 case 40:
3089 YY_RULE_SETUP
3090 #line 181 "cc.ll"
3091 return Parser::Token_STAR_EQUAL;
3092     YY_BREAK
3093 case 41:
3094 YY_RULE_SETUP
3095 #line 182 "cc.ll"
3096 return Parser::Token_DIVIDE;
3097     YY_BREAK
3098 case 42:
3099 YY_RULE_SETUP
3100 #line 183 "cc.ll"
3101 return Parser::Token_DIVIDE_EQUAL;
3102     YY_BREAK
3103 case 43:
3104 YY_RULE_SETUP
3105 #line 184 "cc.ll"
3106 return Parser::Token_AND;
3107     YY_BREAK
3108 case 44:
3109 YY_RULE_SETUP
3110 #line 185 "cc.ll"
3111 return Parser::Token_AND_EQUAL;
3112     YY_BREAK
3113 case 45:
3114 YY_RULE_SETUP
3115 #line 186 "cc.ll"
3116 return Parser::Token_OR;
3117     YY_BREAK
3118 case 46:
3119 YY_RULE_SETUP
3120 #line 187 "cc.ll"
3121 return Parser::Token_OR_EQUAL;
3122     YY_BREAK
3123 case 47:
3124 YY_RULE_SETUP
3125 #line 188 "cc.ll"
3126 return Parser::Token_XOR;
3127     YY_BREAK
3128 case 48:
3129 YY_RULE_SETUP
3130 #line 189 "cc.ll"
3131 return Parser::Token_XOR_EQUAL;
3132     YY_BREAK
3133 case 49:
3134 YY_RULE_SETUP
3135 #line 190 "cc.ll"
3136 return Parser::Token_REMAINDER;
3137     YY_BREAK
3138 case 50:
3139 YY_RULE_SETUP
3140 #line 191 "cc.ll"
3141 return Parser::Token_REMAINDER_EQUAL;
3142     YY_BREAK
3143 case 51:
3144 YY_RULE_SETUP
3145 #line 192 "cc.ll"
3146 return Parser::Token_LSHIFT;
3147     YY_BREAK
3148 case 52:
3149 YY_RULE_SETUP
3150 #line 193 "cc.ll"
3151 return Parser::Token_LSHIFT_EQUAL;
3152     YY_BREAK
3153 case 53:
3154 YY_RULE_SETUP
3155 #line 194 "cc.ll"
3156 return Parser::Token_RSHIFT;
3157     YY_BREAK
3158 case 54:
3159 YY_RULE_SETUP
3160 #line 195 "cc.ll"
3161 return Parser::Token_RSHIFT_EQUAL;
3162     YY_BREAK
3163 case 55:
3164 YY_RULE_SETUP
3165 #line 196 "cc.ll"
3166 return Parser::Token_ELLIPSIS;
3167     YY_BREAK
3168 /* keywords */
3169 case 56:
3170 YY_RULE_SETUP
3171 #line 200 "cc.ll"
3172 return Parser::Token_BREAK;
3173     YY_BREAK
3174 case 57:
3175 YY_RULE_SETUP
3176 #line 201 "cc.ll"
3177 return Parser::Token_CASE;
3178     YY_BREAK
3179 case 58:
3180 YY_RULE_SETUP
3181 #line 202 "cc.ll"
3182 return Parser::Token_CONTINUE;
3183     YY_BREAK
3184 case 59:
3185 YY_RULE_SETUP
3186 #line 203 "cc.ll"
3187 return Parser::Token_DEFAULT;
3188     YY_BREAK
3189 case 60:
3190 YY_RULE_SETUP
3191 #line 204 "cc.ll"
3192 return Parser::Token_DO;
3193     YY_BREAK
3194 case 61:
3195 YY_RULE_SETUP
3196 #line 205 "cc.ll"
3197 return Parser::Token_ELSE;
3198     YY_BREAK
3199 case 62:
3200 YY_RULE_SETUP
3201 #line 206 "cc.ll"
3202 return Parser::Token_ENUM;
3203     YY_BREAK
3204 case 63:
3205 YY_RULE_SETUP
3206 #line 207 "cc.ll"
3207 return Parser::Token_FOR;
3208     YY_BREAK
3209 case 64:
3210 YY_RULE_SETUP
3211 #line 208 "cc.ll"
3212 return Parser::Token_GOTO;
3213     YY_BREAK
3214 case 65:
3215 YY_RULE_SETUP
3216 #line 209 "cc.ll"
3217 return Parser::Token_IF;
3218     YY_BREAK
3219 case 66:
3220 YY_RULE_SETUP
3221 #line 210 "cc.ll"
3222 return Parser::Token_RETURN;
3223     YY_BREAK
3224 case 67:
3225 YY_RULE_SETUP
3226 #line 211 "cc.ll"
3227 return Parser::Token_SWITCH;
3228     YY_BREAK
3229 case 68:
3230 YY_RULE_SETUP
3231 #line 212 "cc.ll"
3232 return Parser::Token_WHILE;
3233     YY_BREAK
3234 case 69:
3235 YY_RULE_SETUP
3236 #line 213 "cc.ll"
3237 return Parser::Token_STATIC;
3238     YY_BREAK
3239 case 70:
3240 YY_RULE_SETUP
3241 #line 214 "cc.ll"
3242 return Parser::Token_VOLATILE;
3243     YY_BREAK
3244 case 71:
3245 YY_RULE_SETUP
3246 #line 215 "cc.ll"
3247 return Parser::Token_VOLATILE;
3248     YY_BREAK
3249 case 72:
3250 YY_RULE_SETUP
3251 #line 216 "cc.ll"
3252 return Parser::Token_CONST;
3253     YY_BREAK
3254 case 73:
3255 YY_RULE_SETUP
3256 #line 217 "cc.ll"
3257 return Parser::Token_TYPEDEF;
3258     YY_BREAK
3259 case 74:
3260 YY_RULE_SETUP
3261 #line 218 "cc.ll"
3262 return Parser::Token_EXTERN;
3263     YY_BREAK
3264 case 75:
3265 YY_RULE_SETUP
3266 #line 219 "cc.ll"
3267 return Parser::Token_AUTO;
3268     YY_BREAK
3269 case 76:
3270 YY_RULE_SETUP
3271 #line 220 "cc.ll"
3272 return Parser::Token_REGISTER;
3273     YY_BREAK
3274 case 77:
3275 YY_RULE_SETUP
3276 #line 221 "cc.ll"
3277 return Parser::Token_VOID;
3278     YY_BREAK
3279 case 78:
3280 YY_RULE_SETUP
3281 #line 222 "cc.ll"
3282 return Parser::Token_INT;
3283     YY_BREAK
3284 case 79:
3285 YY_RULE_SETUP
3286 #line 223 "cc.ll"
3287 return Parser::Token_CHAR;
3288     YY_BREAK
3289 case 80:
3290 YY_RULE_SETUP
3291 #line 224 "cc.ll"
3292 return Parser::Token_SHORT;
3293     YY_BREAK
3294 case 81:
3295 YY_RULE_SETUP
3296 #line 225 "cc.ll"
3297 return Parser::Token_LONG;
3298     YY_BREAK
3299 case 82:
3300 YY_RULE_SETUP
3301 #line 226 "cc.ll"
3302 return Parser::Token_SIGNED;
3303     YY_BREAK
3304 case 83:
3305 YY_RULE_SETUP
3306 #line 227 "cc.ll"
3307 return Parser::Token_UNSIGNED;
3308     YY_BREAK
3309 case 84:
3310 YY_RULE_SETUP
3311 #line 228 "cc.ll"
3312 return Parser::Token_FLOAT;
3313     YY_BREAK
3314 case 85:
3315 YY_RULE_SETUP
3316 #line 229 "cc.ll"
3317 return Parser::Token_DOUBLE;
3318     YY_BREAK
3319 case 86:
3320 YY_RULE_SETUP
3321 #line 230 "cc.ll"
3322 return Parser::Token_UNION;
3323     YY_BREAK
3324 case 87:
3325 YY_RULE_SETUP
3326 #line 231 "cc.ll"
3327 return Parser::Token_ASM;
3328     YY_BREAK
3329 case 88:
3330 YY_RULE_SETUP
3331 #line 232 "cc.ll"
3332 return Parser::Token_ASM;
3333     YY_BREAK
3334 case 89:
3335 YY_RULE_SETUP
3336 #line 233 "cc.ll"
3337 return Parser::Token_EXTENSION;
3338     YY_BREAK
3339 case 90:
3340 YY_RULE_SETUP
3341 #line 234 "cc.ll"
3342 return Parser::Token_INLINE;
3343     YY_BREAK
3344 case 91:
3345 YY_RULE_SETUP
3346 #line 235 "cc.ll"
3347 return Parser::Token_INLINE;
3348     YY_BREAK
3349 /* characters and strings (C with unicode-support) */
3350 case 92:
3351 YY_RULE_SETUP
3352 #line 239 "cc.ll"
3353 return Parser::Token_X_CONSTANT;
3354     YY_BREAK
3355 case 93:
3356 /* rule 93 can match eol */
3357 YY_RULE_SETUP
3358 #line 240 "cc.ll"
3359 {
3360     qWarning() << QString("Invalid character literal: %1").arg(yytext);
3361     return Parser::Token_X_CONSTANT;
3362 }
3363     YY_BREAK
3364 case 94:
3365 YY_RULE_SETUP
3366 #line 245 "cc.ll"
3367 return Parser::Token_STRING_LITERAL;
3368     YY_BREAK
3369 case 95:
3370 /* rule 95 can match eol */
3371 YY_RULE_SETUP
3372 #line 246 "cc.ll"
3373 {
3374     qWarning() << QString("Invalid string literal: %1").arg(yytext);
3375     return Parser::Token_STRING_LITERAL;
3376 }
3377     YY_BREAK
3378 /* identifiers and number literals */
3379 case 96:
3380 YY_RULE_SETUP
3381 #line 254 "cc.ll"
3382 return Parser::Token_IDENTIFIER;
3383     YY_BREAK
3384 case 97:
3385 YY_RULE_SETUP
3386 #line 256 "cc.ll"
3387 return Parser::Token_X_CONSTANT;
3388     YY_BREAK
3389 case 98:
3390 YY_RULE_SETUP
3391 #line 257 "cc.ll"
3392 return Parser::Token_X_CONSTANT;
3393     YY_BREAK
3394 /* everything else is not a valid lexeme */
3395 case 99:
3396 YY_RULE_SETUP
3397 #line 262 "cc.ll"
3398 {
3399                         qWarning() << "INVALID TOKEN";
3400                         exit(-1);
3401                    }
3402     YY_BREAK
3403 case 100:
3404 YY_RULE_SETUP
3405 #line 267 "cc.ll"
3406 ECHO;
3407     YY_BREAK
3408 #line 3409 "cclexer.cpp"
3409 case YY_STATE_EOF(INITIAL):
3410     yyterminate();
3411 
3412     case YY_END_OF_BUFFER:
3413         {
3414         /* Amount of text matched not including the EOB char. */
3415         int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3416 
3417         /* Undo the effects of YY_DO_BEFORE_ACTION. */
3418         *yy_cp = (yy_hold_char);
3419         YY_RESTORE_YY_MORE_OFFSET
3420 
3421         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3422             {
3423             /* We're scanning a new file or input source.  It's
3424              * possible that this happened because the user
3425              * just pointed yyin at a new source and called
3426              * yylex().  If so, then we have to assure
3427              * consistency between YY_CURRENT_BUFFER and our
3428              * globals.  Here is the right place to do so, because
3429              * this is the first action (other than possibly a
3430              * back-up) that will match for the new input source.
3431              */
3432             (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3433             YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
3434             YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3435             }
3436 
3437         /* Note that here we test for yy_c_buf_p "<=" to the position
3438          * of the first EOB in the buffer, since yy_c_buf_p will
3439          * already have been incremented past the NUL character
3440          * (since all states make transitions on EOB to the
3441          * end-of-buffer state).  Contrast this with the test
3442          * in input().
3443          */
3444         if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3445             { /* This was really a NUL. */
3446             yy_state_type yy_next_state;
3447 
3448             (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3449 
3450             yy_current_state = yy_get_previous_state(  );
3451 
3452             /* Okay, we're now positioned to make the NUL
3453              * transition.  We couldn't have
3454              * yy_get_previous_state() go ahead and do it
3455              * for us because it doesn't know how to deal
3456              * with the possibility of jamming (and we don't
3457              * want to build jamming into it because then it
3458              * will run more slowly).
3459              */
3460 
3461             yy_next_state = yy_try_NUL_trans( yy_current_state );
3462 
3463             yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3464 
3465             if ( yy_next_state )
3466                 {
3467                 /* Consume the NUL. */
3468                 yy_cp = ++(yy_c_buf_p);
3469                 yy_current_state = yy_next_state;
3470                 goto yy_match;
3471                 }
3472 
3473             else
3474                 {
3475                 yy_cp = (yy_c_buf_p);
3476                 goto yy_find_action;
3477                 }
3478             }
3479 
3480         else switch ( yy_get_next_buffer(  ) )
3481             {
3482             case EOB_ACT_END_OF_FILE:
3483                 {
3484                 (yy_did_buffer_switch_on_eof) = 0;
3485 
3486                 if ( yywrap(  ) )
3487                     {
3488                     /* Note: because we've taken care in
3489                      * yy_get_next_buffer() to have set up
3490                      * yytext, we can now set up
3491                      * yy_c_buf_p so that if some total
3492                      * hoser (like flex itself) wants to
3493                      * call the scanner after we return the
3494                      * YY_NULL, it'll still work - another
3495                      * YY_NULL will get returned.
3496                      */
3497                     (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3498 
3499                     yy_act = YY_STATE_EOF(YY_START);
3500                     goto do_action;
3501                     }
3502 
3503                 else
3504                     {
3505                     if ( ! (yy_did_buffer_switch_on_eof) )
3506                         YY_NEW_FILE;
3507                     }
3508                 break;
3509                 }
3510 
3511             case EOB_ACT_CONTINUE_SCAN:
3512                 (yy_c_buf_p) =
3513                     (yytext_ptr) + yy_amount_of_matched_text;
3514 
3515                 yy_current_state = yy_get_previous_state(  );
3516 
3517                 yy_cp = (yy_c_buf_p);
3518                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3519                 goto yy_match;
3520 
3521             case EOB_ACT_LAST_MATCH:
3522                 (yy_c_buf_p) =
3523                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3524 
3525                 yy_current_state = yy_get_previous_state(  );
3526 
3527                 yy_cp = (yy_c_buf_p);
3528                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3529                 goto yy_find_action;
3530             }
3531         break;
3532         }
3533 
3534     default:
3535         YY_FATAL_ERROR(
3536             "fatal flex scanner internal error--no action found" );
3537     } /* end of action switch */
3538         } /* end of scanning one token */
3539     } /* end of user's declarations */
3540 } /* end of yylex */
3541 
3542 /* The contents of this function are C++ specific, so the () macro is not used.
3543  */
3544 yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout )
3545 {
3546     yyin = arg_yyin;
3547     yyout = arg_yyout;
3548     yy_c_buf_p = 0;
3549     yy_init = 0;
3550     yy_start = 0;
3551     yy_flex_debug = 0;
3552     yylineno = 1;   // this will only get updated if %option yylineno
3553 
3554     yy_did_buffer_switch_on_eof = 0;
3555 
3556     yy_looking_for_trail_begin = 0;
3557     yy_more_flag = 0;
3558     yy_more_len = 0;
3559     yy_more_offset = yy_prev_more_offset = 0;
3560 
3561     yy_start_stack_ptr = yy_start_stack_depth = 0;
3562     yy_start_stack = NULL;
3563 
3564     yy_buffer_stack = 0;
3565     yy_buffer_stack_top = 0;
3566     yy_buffer_stack_max = 0;
3567 
3568     yy_state_buf = 0;
3569 
3570 }
3571 
3572 /* The contents of this function are C++ specific, so the () macro is not used.
3573  */
3574 yyFlexLexer::~yyFlexLexer()
3575 {
3576     delete [] yy_state_buf;
3577     yyfree(yy_start_stack  );
3578     yy_delete_buffer( YY_CURRENT_BUFFER );
3579     yyfree(yy_buffer_stack  );
3580 }
3581 
3582 /* The contents of this function are C++ specific, so the () macro is not used.
3583  */
3584 void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out )
3585 {
3586     if ( new_in )
3587         {
3588         yy_delete_buffer( YY_CURRENT_BUFFER );
3589         yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE  ) );
3590         }
3591 
3592     if ( new_out )
3593         yyout = new_out;
3594 }
3595 
3596 #ifdef YY_INTERACTIVE
3597 int yyFlexLexer::LexerInput( char* buf, int /* max_size */ )
3598 #else
3599 int yyFlexLexer::LexerInput( char* buf, int max_size )
3600 #endif
3601 {
3602     if ( yyin->eof() || yyin->fail() )
3603         return 0;
3604 
3605 #ifdef YY_INTERACTIVE
3606     yyin->get( buf[0] );
3607 
3608     if ( yyin->eof() )
3609         return 0;
3610 
3611     if ( yyin->bad() )
3612         return -1;
3613 
3614     return 1;
3615 
3616 #else
3617     (void) yyin->read( buf, max_size );
3618 
3619     if ( yyin->bad() )
3620         return -1;
3621     else
3622         return yyin->gcount();
3623 #endif
3624 }
3625 
3626 void yyFlexLexer::LexerOutput( const char* buf, int size )
3627 {
3628     (void) yyout->write( buf, size );
3629 }
3630 
3631 /* yy_get_next_buffer - try to read in a new buffer
3632  *
3633  * Returns a code representing an action:
3634  *  EOB_ACT_LAST_MATCH -
3635  *  EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3636  *  EOB_ACT_END_OF_FILE - end of file
3637  */
3638 int yyFlexLexer::yy_get_next_buffer()
3639 {
3640         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3641     register char *source = (yytext_ptr);
3642     register int number_to_move, i;
3643     int ret_val;
3644 
3645     if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3646         YY_FATAL_ERROR(
3647         "fatal flex scanner internal error--end of buffer missed" );
3648 
3649     if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3650         { /* Don't try to fill the buffer, so this is an EOF. */
3651         if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3652             {
3653             /* We matched a single character, the EOB, so
3654              * treat this as a final EOF.
3655              */
3656             return EOB_ACT_END_OF_FILE;
3657             }
3658 
3659         else
3660             {
3661             /* We matched some text prior to the EOB, first
3662              * process it.
3663              */
3664             return EOB_ACT_LAST_MATCH;
3665             }
3666         }
3667 
3668     /* Try to read more data. */
3669 
3670     /* First move last chars to start of buffer. */
3671     number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
3672 
3673     for ( i = 0; i < number_to_move; ++i )
3674         *(dest++) = *(source++);
3675 
3676     if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3677         /* don't do the read, it's not guaranteed to return an EOF,
3678          * just force an EOF
3679          */
3680         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3681 
3682     else
3683         {
3684             yy_size_t num_to_read =
3685             YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3686 
3687         while ( num_to_read <= 0 )
3688             { /* Not enough room in the buffer - grow it. */
3689 
3690             /* just a shorter name for the current buffer */
3691             YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
3692 
3693             int yy_c_buf_p_offset =
3694                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
3695 
3696             if ( b->yy_is_our_buffer )
3697                 {
3698                 yy_size_t new_size = b->yy_buf_size * 2;
3699 
3700                 if ( new_size <= 0 )
3701                     b->yy_buf_size += b->yy_buf_size / 8;
3702                 else
3703                     b->yy_buf_size *= 2;
3704 
3705                 b->yy_ch_buf = (char *)
3706                     /* Include room in for 2 EOB chars. */
3707                     yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
3708                 }
3709             else
3710                 /* Can't grow it, we don't own it. */
3711                 b->yy_ch_buf = 0;
3712 
3713             if ( ! b->yy_ch_buf )
3714                 YY_FATAL_ERROR(
3715                 "fatal error - scanner input buffer overflow" );
3716 
3717             (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
3718 
3719             num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3720                         number_to_move - 1;
3721 
3722             }
3723 
3724         if ( num_to_read > YY_READ_BUF_SIZE )
3725             num_to_read = YY_READ_BUF_SIZE;
3726 
3727         /* Read in more data. */
3728         YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3729             (yy_n_chars), num_to_read );
3730 
3731         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3732         }
3733 
3734     if ( (yy_n_chars) == 0 )
3735         {
3736         if ( number_to_move == YY_MORE_ADJ )
3737             {
3738             ret_val = EOB_ACT_END_OF_FILE;
3739             yyrestart( yyin  );
3740             }
3741 
3742         else
3743             {
3744             ret_val = EOB_ACT_LAST_MATCH;
3745             YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3746                 YY_BUFFER_EOF_PENDING;
3747             }
3748         }
3749 
3750     else
3751         ret_val = EOB_ACT_CONTINUE_SCAN;
3752 
3753     if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
3754         /* Extend the array by 50%, plus the number we really need. */
3755         yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
3756         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
3757         if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3758             YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
3759     }
3760 
3761     (yy_n_chars) += number_to_move;
3762     YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3763     YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3764 
3765     (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3766 
3767     return ret_val;
3768 }
3769 
3770 /* yy_get_previous_state - get the state just before the EOB char was reached */
3771 
3772     yy_state_type yyFlexLexer::yy_get_previous_state()
3773 {
3774     register yy_state_type yy_current_state;
3775     register char *yy_cp;
3776     
3777     yy_current_state = (yy_start);
3778 
3779     for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3780         {
3781         register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3782         if ( yy_accept[yy_current_state] )
3783             {
3784             (yy_last_accepting_state) = yy_current_state;
3785             (yy_last_accepting_cpos) = yy_cp;
3786             }
3787         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3788             {
3789             yy_current_state = (int) yy_def[yy_current_state];
3790             if ( yy_current_state >= 746 )
3791                 yy_c = yy_meta[(unsigned int) yy_c];
3792             }
3793         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3794         }
3795 
3796     return yy_current_state;
3797 }
3798 
3799 /* yy_try_NUL_trans - try to make a transition on the NUL character
3800  *
3801  * synopsis
3802  *  next_state = yy_try_NUL_trans( current_state );
3803  */
3804     yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state )
3805 {
3806     register int yy_is_jam;
3807         register char *yy_cp = (yy_c_buf_p);
3808 
3809     register YY_CHAR yy_c = 1;
3810     if ( yy_accept[yy_current_state] )
3811         {
3812         (yy_last_accepting_state) = yy_current_state;
3813         (yy_last_accepting_cpos) = yy_cp;
3814         }
3815     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3816         {
3817         yy_current_state = (int) yy_def[yy_current_state];
3818         if ( yy_current_state >= 746 )
3819             yy_c = yy_meta[(unsigned int) yy_c];
3820         }
3821     yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3822     yy_is_jam = (yy_current_state == 745);
3823 
3824         return yy_is_jam ? 0 : yy_current_state;
3825 }
3826 
3827     void yyFlexLexer::yyunput( int c, register char* yy_bp)
3828 {
3829     register char *yy_cp;
3830     
3831     yy_cp = (yy_c_buf_p);
3832 
3833     /* undo effects of setting up yytext */
3834     *yy_cp = (yy_hold_char);
3835 
3836     if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3837         { /* need to shift things up to make room */
3838         /* +2 for EOB chars. */
3839         register yy_size_t number_to_move = (yy_n_chars) + 2;
3840         register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
3841                     YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
3842         register char *source =
3843                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
3844 
3845         while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3846             *--dest = *--source;
3847 
3848         yy_cp += (int) (dest - source);
3849         yy_bp += (int) (dest - source);
3850         YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
3851             (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
3852 
3853         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3854             YY_FATAL_ERROR( "flex scanner push-back overflow" );
3855         }
3856 
3857     *--yy_cp = (char) c;
3858 
3859     (yytext_ptr) = yy_bp;
3860     (yy_hold_char) = *yy_cp;
3861     (yy_c_buf_p) = yy_cp;
3862 }
3863 
3864     int yyFlexLexer::yyinput()
3865 {
3866     int c;
3867     
3868     *(yy_c_buf_p) = (yy_hold_char);
3869 
3870     if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3871         {
3872         /* yy_c_buf_p now points to the character we want to return.
3873          * If this occurs *before* the EOB characters, then it's a
3874          * valid NUL; if not, then we've hit the end of the buffer.
3875          */
3876         if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3877             /* This was really a NUL. */
3878             *(yy_c_buf_p) = '\0';
3879 
3880         else
3881             { /* need more input */
3882             yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
3883             ++(yy_c_buf_p);
3884 
3885             switch ( yy_get_next_buffer(  ) )
3886                 {
3887                 case EOB_ACT_LAST_MATCH:
3888                     /* This happens because yy_g_n_b()
3889                      * sees that we've accumulated a
3890                      * token and flags that we need to
3891                      * try matching the token before
3892                      * proceeding.  But for input(),
3893                      * there's no matching to consider.
3894                      * So convert the EOB_ACT_LAST_MATCH
3895                      * to EOB_ACT_END_OF_FILE.
3896                      */
3897 
3898                     /* Reset buffer status. */
3899                     yyrestart( yyin );
3900 
3901                     /*FALLTHROUGH*/
3902 
3903                 case EOB_ACT_END_OF_FILE:
3904                     {
3905                     if ( yywrap(  ) )
3906                         return EOF;
3907 
3908                     if ( ! (yy_did_buffer_switch_on_eof) )
3909                         YY_NEW_FILE;
3910 #ifdef __cplusplus
3911                     return yyinput();
3912 #else
3913                     return input();
3914 #endif
3915                     }
3916 
3917                 case EOB_ACT_CONTINUE_SCAN:
3918                     (yy_c_buf_p) = (yytext_ptr) + offset;
3919                     break;
3920                 }
3921             }
3922         }
3923 
3924     c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
3925     *(yy_c_buf_p) = '\0';   /* preserve yytext */
3926     (yy_hold_char) = *++(yy_c_buf_p);
3927 
3928     return c;
3929 }
3930 
3931 /** Immediately switch to a different input stream.
3932  * @param input_file A readable stream.
3933  * 
3934  * @note This function does not reset the start condition to @c INITIAL .
3935  */
3936     void yyFlexLexer::yyrestart( std::istream* input_file )
3937 {
3938     
3939     if ( ! YY_CURRENT_BUFFER ){
3940         yyensure_buffer_stack ();
3941         YY_CURRENT_BUFFER_LVALUE =
3942             yy_create_buffer( yyin, YY_BUF_SIZE );
3943     }
3944 
3945     yy_init_buffer( YY_CURRENT_BUFFER, input_file );
3946     yy_load_buffer_state(  );
3947 }
3948 
3949 /** Switch to a different input buffer.
3950  * @param new_buffer The new input buffer.
3951  * 
3952  */
3953     void yyFlexLexer::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
3954 {
3955     
3956     /* TODO. We should be able to replace this entire function body
3957      * with
3958      *      yypop_buffer_state();
3959      *      yypush_buffer_state(new_buffer);
3960      */
3961     yyensure_buffer_stack ();
3962     if ( YY_CURRENT_BUFFER == new_buffer )
3963         return;
3964 
3965     if ( YY_CURRENT_BUFFER )
3966         {
3967         /* Flush out information for old buffer. */
3968         *(yy_c_buf_p) = (yy_hold_char);
3969         YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3970         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3971         }
3972 
3973     YY_CURRENT_BUFFER_LVALUE = new_buffer;
3974     yy_load_buffer_state(  );
3975 
3976     /* We don't actually know whether we did this switch during
3977      * EOF (yywrap()) processing, but the only time this flag
3978      * is looked at is after yywrap() is called, so it's safe
3979      * to go ahead and always set it.
3980      */
3981     (yy_did_buffer_switch_on_eof) = 1;
3982 }
3983 
3984     void yyFlexLexer::yy_load_buffer_state()
3985 {
3986         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3987     (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3988     yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3989     (yy_hold_char) = *(yy_c_buf_p);
3990 }
3991 
3992 /** Allocate and initialize an input buffer state.
3993  * @param file A readable stream.
3994  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
3995  * 
3996  * @return the allocated buffer state.
3997  */
3998     YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size )
3999 {
4000     YY_BUFFER_STATE b;
4001     
4002     b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
4003     if ( ! b )
4004         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4005 
4006     b->yy_buf_size = size;
4007 
4008     /* yy_ch_buf has to be 2 characters longer than the size given because
4009      * we need to put in 2 end-of-buffer characters.
4010      */
4011     b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
4012     if ( ! b->yy_ch_buf )
4013         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4014 
4015     b->yy_is_our_buffer = 1;
4016 
4017     yy_init_buffer( b, file );
4018 
4019     return b;
4020 }
4021 
4022 /** Destroy the buffer.
4023  * @param b a buffer created with yy_create_buffer()
4024  * 
4025  */
4026     void yyFlexLexer::yy_delete_buffer( YY_BUFFER_STATE b )
4027 {
4028     
4029     if ( ! b )
4030         return;
4031 
4032     if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4033         YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4034 
4035     if ( b->yy_is_our_buffer )
4036         yyfree((void *) b->yy_ch_buf  );
4037 
4038     yyfree((void *) b  );
4039 }
4040 
4041 /* Initializes or reinitializes a buffer.
4042  * This function is sometimes called more than once on the same buffer,
4043  * such as during a yyrestart() or at EOF.
4044  */
4045     void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file )
4046 
4047 {
4048     int oerrno = errno;
4049     
4050     yy_flush_buffer( b );
4051 
4052     b->yy_input_file = file;
4053     b->yy_fill_buffer = 1;
4054 
4055     /* If b is the current buffer, then yy_init_buffer was _probably_
4056      * called from yyrestart() or through yy_get_next_buffer.
4057      * In that case, we don't want to reset the lineno or column.
4058      */
4059     if (b != YY_CURRENT_BUFFER){
4060         b->yy_bs_lineno = 1;
4061         b->yy_bs_column = 0;
4062     }
4063 
4064     b->yy_is_interactive = 0;
4065     errno = oerrno;
4066 }
4067 
4068 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4069  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4070  * 
4071  */
4072     void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b )
4073 {
4074         if ( ! b )
4075         return;
4076 
4077     b->yy_n_chars = 0;
4078 
4079     /* We always need two end-of-buffer characters.  The first causes
4080      * a transition to the end-of-buffer state.  The second causes
4081      * a jam in that state.
4082      */
4083     b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4084     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4085 
4086     b->yy_buf_pos = &b->yy_ch_buf[0];
4087 
4088     b->yy_at_bol = 1;
4089     b->yy_buffer_status = YY_BUFFER_NEW;
4090 
4091     if ( b == YY_CURRENT_BUFFER )
4092         yy_load_buffer_state(  );
4093 }
4094 
4095 /** Pushes the new state onto the stack. The new state becomes
4096  *  the current state. This function will allocate the stack
4097  *  if necessary.
4098  *  @param new_buffer The new state.
4099  *  
4100  */
4101 void yyFlexLexer::yypush_buffer_state (YY_BUFFER_STATE new_buffer)
4102 {
4103         if (new_buffer == NULL)
4104         return;
4105 
4106     yyensure_buffer_stack();
4107 
4108     /* This block is copied from yy_switch_to_buffer. */
4109     if ( YY_CURRENT_BUFFER )
4110         {
4111         /* Flush out information for old buffer. */
4112         *(yy_c_buf_p) = (yy_hold_char);
4113         YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4114         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4115         }
4116 
4117     /* Only push if top exists. Otherwise, replace top. */
4118     if (YY_CURRENT_BUFFER)
4119         (yy_buffer_stack_top)++;
4120     YY_CURRENT_BUFFER_LVALUE = new_buffer;
4121 
4122     /* copied from yy_switch_to_buffer. */
4123     yy_load_buffer_state(  );
4124     (yy_did_buffer_switch_on_eof) = 1;
4125 }
4126 
4127 /** Removes and deletes the top of the stack, if present.
4128  *  The next element becomes the new top.
4129  *  
4130  */
4131 void yyFlexLexer::yypop_buffer_state (void)
4132 {
4133         if (!YY_CURRENT_BUFFER)
4134         return;
4135 
4136     yy_delete_buffer(YY_CURRENT_BUFFER );
4137     YY_CURRENT_BUFFER_LVALUE = NULL;
4138     if ((yy_buffer_stack_top) > 0)
4139         --(yy_buffer_stack_top);
4140 
4141     if (YY_CURRENT_BUFFER) {
4142         yy_load_buffer_state(  );
4143         (yy_did_buffer_switch_on_eof) = 1;
4144     }
4145 }
4146 
4147 /* Allocates the stack if it does not exist.
4148  *  Guarantees space for at least one push.
4149  */
4150 void yyFlexLexer::yyensure_buffer_stack(void)
4151 {
4152     yy_size_t num_to_alloc;
4153     
4154     if (!(yy_buffer_stack)) {
4155 
4156         /* First allocation is just for 2 elements, since we don't know if this
4157          * scanner will even need a stack. We use 2 instead of 1 to avoid an
4158          * immediate realloc on the next call.
4159          */
4160         num_to_alloc = 1;
4161         (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
4162                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
4163                                 );
4164         if ( ! (yy_buffer_stack) )
4165             YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4166                                   
4167         memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4168                 
4169         (yy_buffer_stack_max) = num_to_alloc;
4170         (yy_buffer_stack_top) = 0;
4171         return;
4172     }
4173 
4174     if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
4175 
4176         /* Increase the buffer to prepare for a possible push. */
4177         int grow_size = 8 /* arbitrary grow size */;
4178 
4179         num_to_alloc = (yy_buffer_stack_max) + grow_size;
4180         (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
4181                                 ((yy_buffer_stack),
4182                                 num_to_alloc * sizeof(struct yy_buffer_state*)
4183                                 );
4184         if ( ! (yy_buffer_stack) )
4185             YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4186 
4187         /* zero only the new slots.*/
4188         memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4189         (yy_buffer_stack_max) = num_to_alloc;
4190     }
4191 }
4192 
4193     void yyFlexLexer::yy_push_state( int new_state )
4194 {
4195         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
4196         {
4197         yy_size_t new_size;
4198 
4199         (yy_start_stack_depth) += YY_START_STACK_INCR;
4200         new_size = (yy_start_stack_depth) * sizeof( int );
4201 
4202         if ( ! (yy_start_stack) )
4203             (yy_start_stack) = (int *) yyalloc(new_size  );
4204 
4205         else
4206             (yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size  );
4207 
4208         if ( ! (yy_start_stack) )
4209             YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
4210         }
4211 
4212     (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
4213 
4214     BEGIN(new_state);
4215 }
4216 
4217     void yyFlexLexer::yy_pop_state()
4218 {
4219         if ( --(yy_start_stack_ptr) < 0 )
4220         YY_FATAL_ERROR( "start-condition stack underflow" );
4221 
4222     BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
4223 }
4224 
4225     int yyFlexLexer::yy_top_state()
4226 {
4227         return (yy_start_stack)[(yy_start_stack_ptr) - 1];
4228 }
4229 
4230 #ifndef YY_EXIT_FAILURE
4231 #define YY_EXIT_FAILURE 2
4232 #endif
4233 
4234 void yyFlexLexer::LexerError( yyconst char msg[] )
4235 {
4236         std::cerr << msg << std::endl;
4237     exit( YY_EXIT_FAILURE );
4238 }
4239 
4240 /* Redefine yyless() so it works in section 3 code. */
4241 
4242 #undef yyless
4243 #define yyless(n) \
4244     do \
4245         { \
4246         /* Undo effects of setting up yytext. */ \
4247         int yyless_macro_arg = (n); \
4248         YY_LESS_LINENO(yyless_macro_arg);\
4249         yytext[yyleng] = (yy_hold_char); \
4250         (yy_c_buf_p) = yytext + yyless_macro_arg; \
4251         (yy_hold_char) = *(yy_c_buf_p); \
4252         *(yy_c_buf_p) = '\0'; \
4253         yyleng = yyless_macro_arg; \
4254         } \
4255     while ( 0 )
4256 
4257 /* Accessor  methods (get/set functions) to struct members. */
4258 
4259 /*
4260  * Internal utility routines.
4261  */
4262 
4263 #ifndef yytext_ptr
4264 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4265 {
4266     register int i;
4267     for ( i = 0; i < n; ++i )
4268         s1[i] = s2[i];
4269 }
4270 #endif
4271 
4272 #ifdef YY_NEED_STRLEN
4273 static int yy_flex_strlen (yyconst char * s )
4274 {
4275     register int n;
4276     for ( n = 0; s[n]; ++n )
4277         ;
4278 
4279     return n;
4280 }
4281 #endif
4282 
4283 void *yyalloc (yy_size_t  size )
4284 {
4285     return (void *) malloc( size );
4286 }
4287 
4288 void *yyrealloc  (void * ptr, yy_size_t  size )
4289 {
4290     /* The cast to (char *) in the following accommodates both
4291      * implementations that use char* generic pointers, and those
4292      * that use void* generic pointers.  It works with the latter
4293      * because both ANSI C and C++ allow castless assignment from
4294      * any pointer type to void*, and deal with argument conversions
4295      * as though doing an assignment.
4296      */
4297     return (void *) realloc( (char *) ptr, size );
4298 }
4299 
4300 void yyfree (void * ptr )
4301 {
4302     free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
4303 }
4304 
4305 #define YYTABLES_NAME "yytables"
4306 
4307 #line 267 "cc.ll"
4308 
4309 
4310 
4311 namespace cc
4312 {
4313 
4314 Lexer::Lexer( Parser *parser, char *contents )
4315 {
4316     restart( parser, contents );
4317 }
4318 
4319 void Lexer::restart( Parser *parser, char *contents )
4320 {
4321     m_parser = parser;
4322     m_locationTable = parser->tokenStream->locationTable();
4323     m_contents = contents;
4324     m_tokenBegin = m_tokenEnd = 0;
4325     m_currentOffset = 0;
4326 
4327     // check for and ignore the UTF-8 byte order mark
4328     unsigned char *ucontents = (unsigned char *) m_contents;
4329     if ( ucontents[0] == 0xEF && ucontents[1] == 0xBB && ucontents[2] == 0xBF )
4330     {
4331         m_tokenBegin = m_tokenEnd = 3;
4332         m_currentOffset = 3;
4333     }
4334 
4335     yyrestart(NULL);
4336     BEGIN(INITIAL); // is not set automatically by yyrestart()
4337 }
4338 
4339 // reads a character, and returns 1 as the number of characters read
4340 // (or 0 when the end of the string is reached)
4341 int Lexer::LexerInput( char *buf, int /*max_size*/ )
4342 {
4343     int c = m_contents[ m_currentOffset++ ];
4344 
4345     switch(c)
4346     {
4347     case '\r':
4348         c = '\n'; // only have one single line break character: '\n'
4349         if ( m_contents[m_currentOffset + 1] == '\n' )
4350         {
4351             m_currentOffset++;
4352             m_tokenEnd++;
4353         }
4354 
4355         // fall through
4356     case '\n':
4357         m_locationTable->newline( m_currentOffset - 1 );
4358         break;
4359 
4360     default:
4361         break;
4362     }
4363 
4364     return (c == 0) ? 0 : (buf[0] = c, 1);
4365 }
4366 
4367 } // end of namespace cc
4368