#include <sys/cdefs.h>
#ifndef lint
#if 0
static char yysccsid[] = "@(#)yaccpar	1.9 (Berkeley) 02/21/93";
#else
__IDSTRING(yyrcsid, "$NetBSD: skeleton.c,v 1.14 1997/10/20 03:41:16 lukem Exp $");
#endif
#endif
#include <stdlib.h>
#define YYBYACC 1
#define YYMAJOR 1
#define YYMINOR 9
#define YYLEX yylex()
#define YYEMPTY -1
#define yyclearin (yychar=(YYEMPTY))
#define yyerrok (yyerrflag=0)
#define YYRECOVERING (yyerrflag!=0)
#define YYPREFIX "yy"
#line 26 "awkgram.y"
#include <stdio.h>
#include <string.h>
#include "awk.h"

void checkdup(Node *list, Cell *item);
int yywrap(void) { return(1); }

Node	*beginloc = 0;
Node	*endloc = 0;
int	infunc	= 0;	/* = 1 if in arglist or body of func */
int	inloop	= 0;	/* = 1 if in while, for, do */
char	*curfname = 0;	/* current function name */
Node	*arglist = 0;	/* list of args for current function */
#line 41 "awkgram.y"
typedef union {
	Node	*p;
	Cell	*cp;
	int	i;
	char	*s;
} YYSTYPE;
#line 41 "y.tab.c"
#define FIRSTTOKEN 257
#define PROGRAM 258
#define PASTAT 259
#define PASTAT2 260
#define XBEGIN 261
#define XEND 262
#define NL 263
#define ARRAY 264
#define MATCH 265
#define NOTMATCH 266
#define MATCHOP 267
#define FINAL 268
#define DOT 269
#define ALL 270
#define CCL 271
#define NCCL 272
#define CHAR 273
#define OR 274
#define STAR 275
#define QUEST 276
#define PLUS 277
#define EMPTYRE 278
#define AND 279
#define BOR 280
#define APPEND 281
#define EQ 282
#define GE 283
#define GT 284
#define LE 285
#define LT 286
#define NE 287
#define IN 288
#define ARG 289
#define BLTIN 290
#define BREAK 291
#define CLOSE 292
#define CONTINUE 293
#define DELETE 294
#define DO 295
#define EXIT 296
#define FOR 297
#define FUNC 298
#define SUB 299
#define GSUB 300
#define IF 301
#define INDEX 302
#define LSUBSTR 303
#define MATCHFCN 304
#define NEXT 305
#define NEXTFILE 306
#define ADD 307
#define MINUS 308
#define MULT 309
#define DIVIDE 310
#define MOD 311
#define ASSIGN 312
#define ASGNOP 313
#define ADDEQ 314
#define SUBEQ 315
#define MULTEQ 316
#define DIVEQ 317
#define MODEQ 318
#define POWEQ 319
#define PRINT 320
#define PRINTF 321
#define SPRINTF 322
#define ELSE 323
#define INTEST 324
#define CONDEXPR 325
#define POSTINCR 326
#define PREINCR 327
#define POSTDECR 328
#define PREDECR 329
#define VAR 330
#define IVAR 331
#define VARNF 332
#define CALL 333
#define NUMBER 334
#define STRING 335
#define REGEXPR 336
#define GETLINE 337
#define RETURN 338
#define SPLIT 339
#define SUBSTR 340
#define WHILE 341
#define CAT 342
#define NOT 343
#define UMINUS 344
#define POWER 345
#define DECR 346
#define INCR 347
#define INDIRECT 348
#define LASTTOKEN 349
#define YYERRCODE 256
short yylhs[] = {                                        -1,
    0,    0,   36,   36,   37,   37,   33,   33,   26,   26,
   24,   24,   40,   22,   41,   22,   42,   22,   20,   20,
   23,   30,   30,   34,   34,   35,   35,   29,   29,   15,
   15,    1,    1,   10,   11,   11,   11,   11,   11,   11,
   11,   43,   11,   12,   12,    6,    6,    3,    3,    3,
    3,    3,    3,    3,    3,    3,    3,    3,    2,    2,
    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
    2,    2,    2,    2,    2,    2,    2,    4,    4,    5,
    5,    7,    7,    7,   39,   39,   28,   28,   28,   28,
   31,   31,    9,    9,   44,   13,   32,   32,   14,   14,
   14,   14,   14,   14,   14,   14,   27,   27,   16,   16,
   45,   46,   16,   16,   16,   16,   16,   16,   16,   16,
   16,   16,   16,   16,   47,   16,   16,   17,   17,   38,
   38,    8,    8,    8,    8,    8,    8,    8,    8,    8,
    8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
    8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
    8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
    8,    8,    8,   18,   18,   18,   18,   21,   21,   21,
   19,   19,   19,   25,
};
short yylen[] = {                                         2,
    1,    1,    1,    2,    1,    2,    1,    2,    1,    2,
    1,    2,    0,   12,    0,   10,    0,    8,    1,    1,
    4,    1,    2,    1,    2,    0,    1,    0,    1,    0,
    1,    1,    3,    1,    1,    4,    3,    6,    3,    4,
    4,    0,    9,    1,    3,    1,    3,    3,    5,    3,
    3,    3,    3,    3,    5,    2,    1,    1,    3,    5,
    3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    3,    5,    4,    3,    2,    1,    1,    3,    3,    1,
    3,    0,    1,    3,    1,    1,    1,    1,    2,    2,
    1,    2,    1,    2,    0,    4,    1,    2,    4,    4,
    4,    2,    5,    2,    1,    1,    1,    2,    2,    2,
    0,    0,    9,    3,    2,    1,    4,    2,    3,    2,
    2,    3,    2,    2,    0,    3,    2,    1,    2,    1,
    1,    4,    3,    3,    3,    3,    3,    3,    2,    2,
    2,    3,    4,    1,    3,    4,    2,    2,    2,    2,
    2,    4,    3,    2,    1,    6,    6,    3,    6,    6,
    1,    8,    8,    6,    4,    1,    6,    6,    8,    8,
    8,    6,    1,    1,    4,    1,    2,    0,    1,    3,
    1,    1,    1,    4,
};
short yydefred[] = {                                      0,
    2,   87,   88,    0,    1,    0,    0,   89,   90,    0,
    0,   22,    0,   95,  182,    0,    0,    0,  130,  131,
    0,    0,    0,  181,  176,  183,    0,  161,  166,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
   76,    0,   44,    0,   93,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,   19,
   20,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   94,  148,  149,  177,    0,    0,    3,
    5,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,  150,  151,    0,  106,   23,    0,    0,    0,
    0,    9,    0,    0,    0,    0,    0,   85,   86,    0,
    0,    0,    0,  128,    0,  116,    0,  125,    0,    0,
    0,    0,    0,    0,    7,  158,    0,    0,    0,    0,
  142,    0,    0,    0,    0,    0,    0,    0,  145,    0,
    0,    0,    0,    0,    0,    0,   69,    0,    0,    0,
    0,    0,    0,   71,    0,    4,    0,    6,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   45,    0,
    0,   24,    0,  127,    0,  109,    0,  110,    0,    0,
  115,    0,    0,  120,  121,    0,  123,    0,  124,   39,
  129,    0,    0,   10,    0,    0,    0,    0,    0,    0,
    0,   57,    0,    0,    0,   40,   41,    8,    0,    0,
    0,   96,  143,    0,  179,    0,    0,    0,  165,  146,
    0,    0,    0,   73,    0,    0,    0,   36,  175,   25,
  108,    0,  114,   31,    0,    0,    0,  122,    0,   11,
    0,  126,  112,   91,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,   72,
    0,   97,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,   12,  117,    0,
   92,    0,    0,    0,   52,   54,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,   98,    0,  180,  156,
  157,  160,  159,  164,    0,  172,    0,   38,  103,    0,
    0,    0,    0,    0,    0,    0,  168,    0,  167,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   55,    0,
    0,    0,    0,    0,  162,  163,  171,    0,    0,    0,
    0,  170,  169,   43,    0,    0,   18,    0,    0,    0,
  113,   16,    0,    0,   14,
};
short yydgoto[] = {                                       4,
    5,  122,  208,   53,  209,  143,  210,   40,   41,   42,
   43,   44,   45,  123,  245,  124,  125,   46,   47,   62,
  226,  126,  127,  251,  128,  129,  186,    6,    7,  130,
  255,  273,  224,  187,  184,   91,   92,   49,  131,  364,
  359,  350,  308,   54,  205,  290,  203,
};
short yysindex[] = {                                    -56,
    0,    0,    0,    0,    0,  -48, 8245,    0,    0, -101,
 -101,    0, 9019,    0,    0,   15, 9347, -249,    0,    0,
   25,   27,   39,    0,    0,    0,   48,    0,    0,  109,
   52,   66, 9347, 9347, 9038,  128,  128, 9347, 7871,  -37,
    0,   -4,    0,  -25,    0, -184,  -67, 4704,   74, 4704,
 4704, 6570,  105, -239, 8458, 9019, 9347,  -37, -130,    0,
    0,  120, 9019, 9019, 9019, 8510, 9347, -141, 9019, 9019,
 -180, -180, -180,    0,    0,    0,    0, -168, 9019,    0,
    0, 9019, 9019, 9019, 9019, 9019, 9019, -274, 9019,  -37,
 8570, 8622, 9099, 9347, 9347, 9347, 9347, 9347, 9019, 4704,
 8245, 9019,    0,    0, 9019,    0,    0,  -91,  -23,  -23,
 -274,    0, 8382,  137,  141,  -23,  -23,    0,    0, 8382,
  147, 7871,  -23,    0, 4765,    0, 5721,    0,  -58, 4704,
 9151, 9019, 4827, 5094,    0,    0, 8695,  -66, 8695,  174,
    0, 7871,  115, 7051,  -96, 7137, 7137,  117,    0,  123,
  -37, 9347, 7137, 7137,  128, 2208,    0, 2208, 2208, 2208,
 2208, 2208, 2208,    0, 7233,    0, 8193,    0, 1353, 9347,
 -180,  -35,  -35, -180, -180, -180, -101, 5154,    0, 7871,
  -16,    0,  -13,    0,  -91,    0,  -13,    0,  161, 6656,
    0, 6229, 9019,    0,    0, 6656,    0, 9019,    0,    0,
    0,  -88, 5721,    0, 5721, 5214, 9019, 8307,  221,  -85,
  -37,    0,  -18, 7137,  221,    0,    0,    0, 7871, -274,
 7871,    0,    0, 8695,    0,  130, 8695, 8695,    0,    0,
  -37,   33, 8695,    0, 9019,  -37, 4704,    0,    0,    0,
    0, 9019,    0,    0,  212,  -87, 7304,    0, 7304,    0,
 5274,    0,    0,    0,   14,  132, 9216, -274, 9216,  -37,
 8768, 8828, 8880, 9347, 9347, 9347, 9216, 8695, 8695,    0,
 7871,    0,   76, -202, 7390,  256, 7461,  261,  195, 6823,
 7871, 5541,   -7,   -9, -274,   76,   76,    0,    0,  -30,
    0,   65, 9019, 2208,    0,    0, 3456, 8958, 6317, 8307,
  -37,  -37,  -37, 8307, 6909, 6980,    0, -101,    0,    0,
    0,    0,    0,    0, 8695,    0, 8695,    0,    0,  -91,
 9019,  304,  320, -274,  229, 9216,    0,   53,    0,   53,
 4704, 7557,  321, 7643, 6229, 7714,   76, 9019,    0,   65,
 8307,  325,  339, 5601,    0,    0,    0,  304,  -91, 5721,
 7785,    0,    0,    0,   76, 6229,    0,  -23, 5721,  304,
    0,    0,   76, 5721,    0,
};
short yyrindex[] = {                                   2901,
    0,    0,    0,    0,    0, 2995,  382,    0,    0,    0,
    0,    0,    0,    0,    0,   89,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0, 3261,
    0,    0,    0,    0,    0,    0,    0,    0,   63, 2636,
    0, 2782,    0, 2901,    0, 1665,    1,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0, 2018, 1571,    0,
    0,    0,    0,    0,    0,    0,    0,  183,    0,    0,
  495,  583,  677,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0, 2730,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  386,    0,    0,    0,    0,    0,    0, 4376,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,  -32,    0,    0,    0,    0,    0,    0, 5988,    0,
   -6,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,   34,    0,    0,  323,    0,    0,    0,    0,    0,
 2283,    0,    0,    0, 3348,  151,    0,  645, 1139, 2345,
 3323, 3410, 3439,    0,    0,    0, 3855,    0,   57,    0,
  989, 1836, 1930, 1077, 1171, 1483, 2834,    0,    0,   96,
    0,    0, 4314,    0, 4376,    0, 4498,    0,   -8,    0,
    0,  331,    0,    0,    0,    0,    0,    0,    0,    0,
    0, 5661,    0,    0,    0,    0,    0,  -12,  134,   41,
 8042,    0, 4229,    0, 7967,    0,    0,    0,  355,    0,
  359,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 2371,    0,    0,    0,    0, 2465,    0,    0,    0,    0,
    0,    0,    0,    0,    0, 4045,    0,    0,    0,    0,
    0,    0,    0,    0, 4643,    0,    0,    0,    0, 8124,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
   97,    0,  269,    0,    0, 7967,    0, 7967,    0,    0,
  144,    0,    0, 9277,    0, 6048, 6108,    0,    0,    0,
    0,  170,    0,  449,    0,    0,    0,  535,  795,   46,
   50,   54,   80,  508,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0, 5782,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0, 7967,    0,  363,    0, 6168,    0,    0,    0,
  528,    0,    0,    0,    0,    0,    0,    0, 5782,    0,
    0,    0,    0,    0, 6435,  363,    0,    0,    0,    0,
    0,    0, 6495,    0,    0,
};
short yygindex[] = {                                      0,
    0, 4176, -191, -182,    0,   37,    0, 3893,  -14,  311,
  315,    0,  -49, -138, -304,  400,   23, 3676,  -26,    0,
    0,    0,    0,    0,    0,    0,  -97,    0,  381,    7,
    0,  237,  356,  -28, -116,  369,  396,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,
};
#define YYTABLESIZE 9695
short yytable[] = {                                      97,
  174,   97,    3,  105,   96,   94,   96,   95,  105,   93,
    9,   93,  188,   48,   15,  191,   50,   51,  194,  195,
   74,   12,  197,  105,  256,  199,  105,  135,   80,  157,
  348,   80,  104,    3,   82,  185,  135,  174,  264,   99,
  174,  174,  174,  174,  174,  174,   80,  174,  100,  320,
  104,  360,   82,  244,   55,   24,   61,   26,  174,  174,
  218,  164,   34,  174,   63,  294,   64,  297,  241,  298,
  299,  300,  133,  134,   46,  304,  239,   46,   65,  183,
   60,  102,  215,   61,  189,  319,   81,   66,  144,   81,
   99,   69,  243,  174,  100,   59,  140,   61,  248,  102,
   61,  148,  150,   61,   81,   70,   34,   48,   99,   34,
  325,   80,  100,  132,   61,   61,  212,   82,   12,   61,
  101,   34,  178,  174,  174,  144,   46,  309,  102,  144,
  144,  144,  144,  144,  341,  144,   59,   47,  101,   59,
   47,  181,   59,   60,  152,  138,  144,  144,  135,   61,
   70,  144,  206,   59,   59,  223,  183,  229,  135,  145,
  135,  103,  104,  230,   98,  246,  135,  321,  155,   81,
  272,  182,  292,  135,   83,  135,  192,  276,  278,   61,
  193,  144,  154,  237,   60,   34,  198,   60,   59,   47,
   60,   70,   83,  270,   70,  265,  244,   70,  266,    1,
  285,   60,   60,  335,  204,  279,    2,  295,   70,   70,
   84,  144,  144,   70,    8,  103,  104,  244,   59,  154,
  222,  220,  154,  154,  154,  154,  154,  154,   84,  154,
  105,  296,  356,  225,  250,  314,   60,    2,  135,  182,
  154,  154,  212,   70,  212,  154,  212,  212,  212,  240,
   80,  242,  212,  182,  104,  183,   82,   83,  322,  282,
  361,  174,  174,  174,  135,  333,   60,  174,   80,  340,
  284,   80,  135,   70,   82,  154,  291,   82,  283,  174,
  174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
  174,  183,  174,   84,  267,  218,  311,  339,  174,  174,
  174,  313,  174,  102,  174,  154,  154,   98,   81,   98,
  323,  212,   99,  174,  331,  218,  100,   61,   61,   61,
  183,   15,  174,   34,   34,   34,   81,  103,  104,   81,
  174,  174,  174,  174,  174,  174,   61,  174,  307,  174,
  174,   15,  101,  174,  272,  174,  174,  174,  174,  144,
  144,  144,  324,  344,   61,  144,   59,   59,   59,  338,
   34,  346,   24,  178,   26,  352,  178,  144,  144,  144,
  144,  144,  144,  144,  144,  144,  144,  144,  144,  353,
  144,   32,   24,   25,   26,   33,  144,  144,  144,   30,
  144,   42,  144,   59,   67,   78,   83,   15,   78,   79,
   38,  144,   79,   30,   60,   60,   60,  137,  139,  177,
  144,   70,   70,   70,   83,  179,   15,   83,  144,  144,
  144,  144,  144,  144,  101,  144,    0,  144,  144,   70,
   70,  144,   84,  144,  144,  144,  144,    0,   24,   25,
   26,   60,    0,  154,  154,  154,    0,    0,   70,  154,
   84,    0,    0,   84,    0,    0,   38,   24,   25,   26,
    0,  154,  154,  154,  154,  154,  154,  154,    0,  154,
  154,  154,  154,    0,  154,   38,    0,    0,    0,    0,
  154,  154,  154,  286,  154,  287,  154,   70,    0,   53,
    0,    0,   53,    0,  140,  154,    0,    0,    0,    0,
    0,  227,  228,    0,  154,    0,   53,   53,  232,  233,
    0,   53,  154,  154,  154,  154,  154,  154,    0,  154,
    0,  154,  154,    0,  201,  154,  202,  154,  154,  154,
  154,  140,  201,  201,  140,  140,  140,  140,  140,  140,
    0,  140,    0,    0,    0,    0,    0,    0,   48,    0,
    0,   48,  140,  140,    0,    0,    0,  140,  337,    0,
    0,    0,    0,    0,  263,   48,   48,    0,   49,  268,
  269,   49,   53,    0,    0,   51,  261,  201,   51,    0,
    0,  274,  139,    0,  355,   49,   49,  140,    0,    0,
    0,    0,   51,   51,    0,    0,  363,   51,    0,    0,
    0,    0,  252,  262,  253,  201,    0,    0,    0,    0,
    0,  139,    0,    0,    0,    0,    0,  140,  140,  139,
    0,    0,  139,  139,  139,  139,  139,  139,    0,  139,
    0,   48,    0,    0,  315,  317,    0,    0,    0,    0,
  139,  139,    0,    0,   63,  139,    0,    0,    0,    0,
  289,   49,    0,    0,    0,    0,    0,    0,   51,    0,
  328,  330,  261,    0,    0,  261,  261,  261,  261,    0,
    0,    0,  261,    0,    0,  139,  141,    0,    0,    0,
  139,  201,    0,    0,    0,   63,    0,    0,   63,  262,
    0,   63,  262,  262,  262,  262,    0,    0,    0,  262,
    0,    0,   63,   63,    0,  139,  139,   63,    0,  261,
    0,   53,    0,  141,    0,    0,  141,  141,  141,  141,
  141,  141,    0,  141,    0,    0,    0,   53,   53,   53,
    0,    0,   53,    0,  141,  141,  262,   63,    0,  141,
    0,    0,    0,  201,    0,    0,    0,    0,    0,  357,
    0,    0,    0,    0,    0,  140,  140,  140,  362,    0,
    0,  140,    0,  365,    0,    0,    0,   63,    0,  141,
   48,    0,    0,  140,  140,  140,  140,  140,  140,  140,
  140,  140,  140,  140,  140,   53,  140,    0,   48,    0,
   49,   48,  140,  140,  140,    0,  140,   51,  140,  141,
  141,    0,    0,    0,    0,    0,    0,  140,   49,    0,
    0,   49,    0,   51,   51,   51,  140,    0,   51,    0,
    0,    0,    0,    0,  140,  140,  140,  140,  140,  140,
    0,  140,    0,  140,  140,   50,    0,  140,   50,    0,
  140,  140,  140,  139,  139,  139,    0,    0,    0,  139,
    0,    0,   50,   50,    0,    0,    0,   50,    0,    0,
    0,  139,  139,  139,  139,  139,  139,  139,  139,  139,
  139,  139,  139,    0,  139,    0,    0,    0,    0,    0,
  139,  139,  139,    0,  139,    0,  139,    0,    0,    0,
    0,    0,    0,    0,    0,  139,    0,    0,    0,    0,
    0,    0,    0,    0,  139,   63,   63,   63,    0,    0,
    0,    0,  139,  139,  139,  139,  139,  139,   50,  139,
    0,  139,  139,   63,   63,  139,    0,    0,  139,  139,
  139,    0,    0,    0,    0,    0,    0,  141,  141,  141,
    0,    0,   63,  141,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,  141,  141,  141,  141,  141,
  141,  141,  141,  141,  141,  141,  141,    0,  141,    0,
    0,    0,    0,    0,  141,  141,  141,    0,  141,    0,
  141,   63,    0,    0,    0,    0,    0,    0,  136,  141,
    0,    0,    0,    0,    0,    0,    0,    0,  141,    0,
    0,    0,    0,    0,    0,    0,  141,  141,  141,  141,
  141,  141,    0,  141,    0,  141,  141,    0,    0,  141,
    0,    0,  141,  141,  141,  136,    0,    0,  136,  136,
  136,  136,  136,  136,    0,  136,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,  136,  136,    0,    0,
    0,  136,    0,    0,    0,    0,    0,   50,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,   50,   50,  135,    0,   50,    0,
    0,  136,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,  136,  136,  135,    0,    0,  135,  135,  135,  135,
  135,  135,    0,  135,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,  135,  135,    0,    0,   64,  135,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,  135,
  137,    0,    0,    0,    0,    0,    0,    0,    0,   64,
    0,    0,   64,    0,    0,   64,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,   64,   64,    0,  135,
  135,   64,    0,    0,    0,    0,    0,  137,    0,    0,
  137,  137,  137,  137,  137,  137,    0,  137,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,  137,  137,
    0,   64,    0,  137,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,  136,
  136,  136,    0,    0,    0,  136,    0,    0,    0,    0,
    0,   64,    0,  137,    0,    0,    0,  136,  136,  136,
  136,  136,  136,  136,  136,  136,  136,  136,  136,    0,
  136,    0,    0,    0,    0,    0,  136,  136,  136,    0,
  136,    0,  136,  137,  137,    0,    0,    0,    0,    0,
    0,  136,    0,    0,    0,    0,    0,    0,    0,    0,
  136,    0,    0,    0,    0,    0,    0,    0,  136,  136,
  136,  136,  136,  136,    0,  136,    0,  136,  136,    0,
    0,  136,    0,    0,  136,  136,  136,  135,  135,  135,
    0,    0,    0,  135,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,  135,  135,  135,  135,  135,
  135,  135,  135,  135,  135,  135,  135,    0,  135,    0,
    0,    0,    0,    0,  135,  135,  135,    0,  135,    0,
  135,    0,    0,    0,    0,    0,    0,    0,    0,  135,
    0,    0,   56,    0,    0,   33,    0,   34,  135,   64,
   64,   64,    0,    0,    0,    0,  135,  135,  135,  135,
  135,  135,    0,  135,    0,  135,  135,   64,   64,  135,
    0,    0,  135,  135,  135,    0,    0,    0,    0,    0,
    0,  137,  137,  137,    0,    0,   64,  137,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,  137,
  137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
  137,    0,  137,    0,    0,    0,    0,    0,  137,  137,
  137,    0,  137,    0,  137,   64,   78,    0,    0,    0,
    0,    0,  138,  137,    0,    0,    0,    0,    0,    0,
    0,    0,  137,    0,    0,    0,    0,    0,    0,    0,
  137,  137,  137,  137,  137,  137,    0,  137,    0,  137,
  137,    0,    0,  137,    0,    0,  137,  137,  137,  138,
    0,    0,  138,  138,  138,  138,  138,  138,    0,  138,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  138,  138,    0,    0,    0,  138,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  173,    0,    0,    0,    0,  138,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,  138,  138,  173,    0,    0,
  173,  173,  173,  173,  173,  173,    0,  173,    0,   79,
    0,    0,    0,    0,    0,    0,    0,    0,  173,  173,
    0,   80,    0,  173,   82,   83,   84,   85,   86,   87,
   88,   15,   16,    0,   17,    0,    0,    0,    0,    0,
    0,   19,   20,    0,   21,    0,   22,    0,    0,    0,
    0,    0,    0,  173,  173,    0,    0,    0,    0,    0,
    0,    0,    0,    0,   23,    0,    0,    0,    0,    0,
    0,    0,   24,   25,   26,   27,   28,   29,    0,   30,
    0,   31,   32,  173,  173,   57,    0,    0,   36,   37,
   38,  173,    0,    0,  173,  173,  173,  173,  173,  173,
    0,  173,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,  173,  173,    0,    0,    0,  173,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,  138,  138,  138,    0,    0,    0,  138,
    0,    0,    0,    0,    0,    0,    0,  173,    0,    0,
    0,  138,  138,  138,  138,  138,  138,  138,  138,  138,
  138,  138,  138,    0,  138,    0,    0,    0,    0,    0,
  138,  138,  138,    0,  138,    0,  138,  173,  173,    0,
    0,    0,    0,    0,    0,  138,    0,    0,    0,    0,
    0,    0,    0,    0,  138,    0,    0,    0,    0,    0,
    0,    0,  138,  138,  138,  138,  138,  138,    0,  138,
    0,  138,  138,    0,    0,  138,    0,    0,  138,  138,
  138,  173,  173,  173,    0,  133,    0,  173,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,  173,
  173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
  173,    0,  173,    0,    0,    0,    0,    0,  173,  173,
  173,    0,  173,    0,  173,  133,  133,    0,  133,  133,
  133,    0,    0,  173,    0,    0,    0,    0,    0,    0,
    0,    0,  173,  133,  133,    0,    0,    0,  133,    0,
  173,  173,  173,  173,  173,  173,    0,  173,    0,  173,
  173,    0,    0,  173,    0,  173,    0,    0,  173,    0,
    0,    0,    0,    0,    0,  173,  173,  173,  133,  134,
    0,  173,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,  173,  173,    0,  173,  173,  173,  173,
  173,  173,  173,  173,  173,    0,  173,    0,  133,  133,
    0,    0,  173,  173,  173,    0,  173,    0,  173,  134,
  134,    0,  134,  134,  134,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,  173,  134,  134,    0,
    0,    0,  134,    0,  173,  173,  173,  173,  173,  173,
    0,  173,    0,  173,  173,    0,    0,  173,    0,  173,
    0,    0,  173,    0,    0,    0,    0,  147,    0,    0,
    0,    0,  134,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,  134,  134,    0,    0,    0,  147,  147,    0,
    0,  147,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,  147,  147,    0,    0,    0,
  147,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,  133,  133,  133,    0,
    0,    0,  133,    0,    0,    0,    0,    0,    0,    0,
  147,    0,    0,    0,  133,  133,  133,  133,  133,  133,
  133,  133,  133,  133,  133,  133,    0,  133,    0,    0,
    0,    0,    0,  133,  133,  133,    0,  133,    0,  133,
  147,  147,    0,    0,    0,    0,    0,    0,  133,    0,
    0,    0,    0,    0,    0,    0,    0,  133,    0,    0,
    0,    0,    0,    0,    0,  133,  133,  133,  133,  133,
  133,    0,  133,    0,  133,  133,    0,    0,  133,    0,
    0,  133,  133,  133,    0,    0,    0,    0,    0,    0,
  134,  134,  134,    0,    0,    0,  134,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,  134,  134,
  134,  134,  134,  134,  134,  134,  134,  134,  134,  134,
    0,  134,    0,    0,    0,    0,    0,  134,  134,  134,
    0,  134,    0,  134,    0,    0,    0,    0,    0,    0,
    0,    0,  134,    0,    0,    0,    0,   56,    0,    0,
   33,  134,   34,    0,    0,    0,    0,    0,    0,  134,
  134,  134,  134,  134,  134,    0,  134,    0,  134,  134,
    0,    0,  134,    0,    0,  134,  134,  134,  147,  147,
  147,    0,  153,    0,  147,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,  147,  147,  147,  147,
  147,  147,  147,  147,  147,  147,  147,  147,    0,  147,
    0,    0,    0,    0,    0,  147,  147,  147,    0,  147,
    0,  147,  153,  153,    0,    0,  153,    0,    0,    0,
  147,    0,    0,    0,    0,    0,    0,    0,    0,  147,
  153,  153,    0,    0,   65,  153,    0,  147,  147,  147,
  147,  147,  147,    0,  147,    0,  147,  147,    0,    0,
  147,    0,    0,  147,  147,  147,    0,    0,    0,    0,
  152,    0,    0,    0,    0,  153,    0,    0,    0,    0,
    0,    0,    0,    0,    0,   65,    0,    0,   65,    0,
    0,   65,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   65,   65,    0,  153,  153,   65,    0,    0,
  152,  152,    0,    0,  152,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,  152,  152,
    0,    0,    0,  152,    0,    0,    0,   65,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,  152,  132,    0,    0,   65,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,  152,  152,    0,   15,   16,    0,   17,
    0,    0,    0,    0,  132,  132,   19,   20,  132,   21,
    0,   22,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,  132,  132,    0,    0,    0,  132,    0,   23,
    0,    0,    0,    0,    0,    0,    0,   24,   25,   26,
   27,   28,   29,  153,  153,  153,   31,   32,    0,  153,
   57,    0,    0,   36,   37,   38,    0,  132,    0,    0,
    0,  153,  153,  153,  153,  153,  153,  153,  153,  153,
  153,  153,  153,    0,  153,    0,    0,    0,    0,    0,
  153,  153,  153,    0,  153,    0,  153,  132,  132,    0,
    0,    0,    0,    0,    0,  153,    0,    0,    0,    0,
    0,    0,    0,    0,  153,   65,   65,   65,    0,    0,
    0,    0,  153,  153,  153,  153,  153,  153,    0,  153,
    0,  153,  153,   65,   65,  153,    0,    0,  153,  153,
  153,  152,  152,  152,    0,   77,    0,  152,    0,    0,
    0,    0,   65,    0,    0,    0,    0,    0,    0,  152,
  152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
  152,    0,  152,    0,    0,    0,    0,    0,  152,  152,
  152,    0,  152,    0,  152,   77,   77,    0,    0,   77,
    0,   65,    0,  152,    0,    0,    0,    0,    0,    0,
    0,    0,  152,   77,   77,    0,    0,    0,   77,    0,
  152,  152,  152,  152,  152,  152,    0,  152,    0,  152,
  152,    0,    0,  152,    0,    0,  152,  152,  152,    0,
    0,    0,    0,    0,    0,  132,  132,  132,   77,   75,
    0,  132,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,  132,  132,  132,  132,  132,  132,  132,
  132,  132,  132,  132,  132,    0,  132,    0,   77,   77,
    0,    0,  132,  132,  132,    0,  132,    0,  132,   75,
   75,    0,    0,   75,    0,    0,    0,  132,    0,    0,
    0,   35,    0,    0,    0,    0,  132,   75,   75,    0,
    0,    0,   75,    0,  132,  132,  132,  132,  132,  132,
    0,  132,    0,  132,  132,    0,    0,  132,    0,    0,
  132,  132,  132,    0,    0,    0,    0,    0,    0,    0,
    0,   35,   75,    0,   35,    0,   35,    0,   35,    0,
    0,    0,    0,   37,    0,    0,    0,    0,    0,    0,
   35,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   75,   75,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   37,    0,    0,   37,    0,   37,    0,
   37,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   37,    0,    0,    0,   77,   77,   77,    0,
   28,    0,   77,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,   77,   77,    0,   77,   77,   77,
   77,   77,   77,   77,   77,   77,    0,   77,    0,    0,
    0,    0,    0,   77,   77,   77,    0,   77,    0,   77,
   28,    0,    0,   28,    0,   28,    0,   28,    0,    0,
    0,    0,    0,    0,    0,    0,    0,   77,    0,    0,
    0,    0,    0,    0,    0,   77,   77,   77,   77,   77,
   77,    0,   77,    0,   77,   77,    0,    0,   77,    0,
    0,   77,   77,   77,    0,    0,    0,    0,    0,    0,
   75,   75,   75,    0,   29,    0,   75,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   75,   75,
    0,   75,   75,   75,   75,   75,   75,   75,   75,   75,
    0,   75,    0,   28,    0,    0,    0,   75,   75,   75,
    0,   75,    0,   75,   29,    0,    0,   29,    0,   29,
    0,   29,   35,   35,   35,    0,    0,    0,    0,    0,
    0,   75,    0,    0,    0,    0,    0,    0,    0,   75,
   75,   75,   75,   75,   75,    0,   75,    0,   75,   75,
   35,   35,   75,   35,    0,   75,   75,   75,    0,   35,
   35,   35,    0,   35,    0,   35,    0,    0,    0,    0,
    0,    0,    0,    0,   37,   37,   37,    0,    0,    0,
    0,    0,    0,   35,    0,    0,    0,    0,    0,    0,
    0,   35,   35,   35,   35,   35,   35,   29,   35,    0,
   35,   35,   37,   37,   35,   37,    0,   35,   35,   35,
    0,   37,   37,   37,    0,   37,    0,   37,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,   37,    0,    0,    0,    0,
    0,   28,   28,   37,   37,   37,   37,   37,   37,    0,
   37,    0,   37,   37,    0,    0,   37,    0,    0,   37,
   37,   37,    0,    0,    0,    0,    0,    0,    0,   28,
   28,    0,   28,    0,    0,    0,    0,    0,   28,   28,
   28,    0,   28,    0,   28,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   28,    0,    0,    0,    0,    0,    0,    0,
   28,   28,   28,   28,   28,   28,    0,   28,    0,   28,
   28,    0,    0,   28,    0,    0,   28,   28,   28,    0,
    0,    0,    0,    0,    0,   29,   29,    0,    0,    0,
  155,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   29,   29,    0,   29,    0,    0,    0,
    0,    0,   29,   29,   29,    0,   29,  155,   29,    0,
  155,  155,  155,  155,  155,  155,    0,  155,    0,    0,
    0,    0,    0,    0,    0,    0,   29,    0,  155,  155,
    0,    0,   66,  155,   29,   29,   29,   29,   29,   29,
    0,   29,    0,   29,   29,    0,    0,   29,    0,    0,
   29,   29,   29,    0,    0,    0,    0,   74,    0,    0,
    0,    0,    0,  155,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   66,    0,    0,   66,    0,    0,   66,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
   66,   66,    0,  155,  155,   66,    0,   74,   74,    0,
   74,   74,   74,    0,   74,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,   74,   74,    0,    0,   67,
   74,    0,    0,    0,    0,   66,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   68,    0,
   74,    0,    0,    0,    0,   66,    0,    0,    0,    0,
   67,    0,    0,   67,    0,    0,   67,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,   67,   67,    0,
   74,   74,   67,    0,    0,    0,    0,    0,    0,   68,
    0,    0,   68,    0,    0,   68,    0,    0,    0,    0,
    0,    0,    0,    0,    0,   56,   68,   68,   33,    0,
   34,   68,   67,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,  326,    0,    0,    0,    0,  259,    0,
    0,  155,  155,  155,    0,    0,    0,  155,    0,    0,
    0,   68,   67,    0,    0,    0,    0,    0,    0,  155,
  155,  155,  155,  155,  155,  155,    0,  155,  155,    0,
  155,    0,  155,    0,    0,    0,    0,    0,  155,  155,
  155,   68,  155,    0,  155,    0,    0,    0,    0,    0,
    0,    0,    0,  155,    0,    0,    0,    0,    0,    0,
    0,    0,  155,   66,   66,   66,    0,    0,    0,    0,
    0,    0,    0,  155,  155,  155,    0,  155,    0,  155,
  155,   66,   66,  155,    0,  155,  155,  155,   74,   74,
   74,    0,    0,    0,   74,    0,    0,    0,    0,    0,
   66,    0,    0,    0,    0,    0,   74,   74,    0,   74,
   74,   74,   74,   74,   74,   74,    0,   74,    0,   74,
    0,    0,    0,    0,    0,   74,   74,   74,    0,   74,
    0,   74,    0,    0,    0,    0,    0,    0,    0,   66,
    0,    0,    0,    0,    0,    0,    0,    0,    0,   74,
   67,   67,   67,    0,    0,    0,    0,    0,    0,    0,
   74,   74,   74,    0,   74,    0,   74,   74,   67,   67,
   74,    0,   59,   74,   74,    0,    0,    0,    0,   68,
   68,   68,    0,    0,    0,   68,    0,   67,   59,   59,
   59,   75,   76,   59,   59,    0,    0,   68,   68,    0,
    0,    0,  257,    0,    0,    0,    0,   59,    0,    0,
    0,    0,   59,    0,   80,   81,   68,    0,    0,    0,
    0,    0,   59,  258,   15,   16,   67,   17,    0,    0,
    0,    0,    0,    0,   19,   20,    0,   21,    0,   22,
    0,    0,    0,    0,    0,    0,    0,    0,   59,   59,
   59,   59,   59,   59,    0,   68,    0,   23,    0,    0,
    0,    0,    0,    0,    0,   24,   25,   26,   27,   28,
   29,    0,   30,    0,   31,   32,    0,   59,   57,    0,
    0,   36,   37,   38,    0,    0,  213,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,   59,    0,   59,
    0,   59,   59,    0,    0,    0,    0,   59,   59,   59,
  234,   59,    0,   59,   59,   59,   59,   59,   59,    0,
   59,    0,   59,    0,   59,   59,    0,    0,    0,    0,
    0,    0,    0,    0,   62,   59,    0,    0,    0,    0,
    0,    0,    0,    0,    0,   59,    0,    0,    0,    0,
    0,   59,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   59,    0,    0,    0,    0,    0,   59,
    0,    0,    0,    0,   59,   62,   59,    0,   62,    0,
    0,   62,    0,    0,    0,    0,    0,    0,    0,   58,
    0,    0,   62,   62,    0,    0,    0,   62,    0,    0,
    0,    0,   59,    0,   59,   71,   72,   73,    0,    0,
   77,   90,  213,    0,  213,    0,  213,  213,  213,   59,
   59,   59,  213,    0,   90,    0,   59,   62,    0,   73,
   59,    0,   59,    0,    0,   59,   59,    0,    0,  151,
    0,    0,    0,    0,    0,    0,    0,    0,    0,   59,
    0,    0,   59,   59,   59,   59,    0,   62,    0,   59,
   59,   59,    0,    0,    0,  171,  172,  173,  174,  175,
  176,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,  213,    0,  342,    0,  343,    0,   59,    0,   59,
    0,   59,    0,    0,   90,    0,   59,    0,    0,    0,
    0,    0,    0,  211,    0,    0,   59,    0,    0,    0,
    0,    0,    0,    0,   90,    0,   90,    0,   90,   90,
    0,    0,    0,    0,  231,   90,   90,    0,   90,    0,
   90,   90,   90,   90,   90,   90,    0,   90,    0,   90,
    0,   90,  236,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   90,    0,    0,    0,    0,    0,    0,    0,
    0,  174,   90,    0,  174,    0,  174,  174,   90,  174,
    0,  174,    0,    0,    0,    0,    0,    0,    0,    0,
  260,    0,    0,  174,    0,    0,   90,  174,    0,    0,
    0,   90,    0,   90,    0,   62,   62,   62,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   62,   62,    0,    0,    0,    0,   90,
    0,   90,    0,    0,    0,    0,    0,    0,    0,  211,
    0,  211,   62,  211,  211,  211,  301,  302,  303,  211,
    0,    0,    0,   90,    0,    0,    0,   90,  174,   90,
    0,    0,   90,   90,    0,    0,    0,    0,    0,    0,
    0,    0,   39,    0,    0,    0,  260,    0,   52,  260,
  260,  260,  260,    0,    0,    0,  260,   90,   90,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,  211,    0,
    0,    0,    0,    0,   90,    0,   90,    0,   90,    0,
  142,  144,    0,  260,    0,    0,    0,    0,  146,  147,
  142,  142,    0,   90,  153,  154,    0,    0,    0,    0,
    0,    0,    0,    0,  156,    0,    0,  158,  159,  160,
  161,  162,  163,    0,  165,  173,  167,  169,  173,  173,
  173,  173,  173,  173,   39,  173,   39,  180,    0,    0,
  142,    0,    0,    0,    0,    0,  173,  173,  190,    0,
    0,  173,    0,    0,    0,  196,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,  214,    0,    0,
    0,  174,  219,    0,  221,    0,    0,    0,    0,    0,
    0,    0,    0,  174,  174,    0,  174,  174,  174,  174,
  174,  174,    0,  174,  174,    0,  174,    0,    0,    0,
    0,    0,    0,  174,  174,    0,  174,    0,  174,    0,
    0,    0,  173,   27,   27,    0,   27,  174,   27,    0,
   27,    0,    0,    0,    0,    0,  174,    0,  247,    0,
    0,    0,   27,  249,  174,  174,  174,  174,  174,  174,
    0,  174,   52,  174,  174,    0,    0,  174,    0,  174,
  174,  174,  174,    0,    0,    0,    0,    0,    0,  271,
    0,    0,  275,  277,    0,    0,    0,    0,  280,    0,
  281,    0,    0,    0,    0,   26,    0,  142,   26,    0,
   26,    0,   26,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,   26,    0,   27,    0,   27,    0,
    0,    0,    0,  305,  306,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   52,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  332,  173,  334,    0,    0,  173,  336,    0,   26,    0,
   26,    0,    0,    0,    0,    0,    0,  173,  173,  173,
    0,    0,  173,  351,    0,    0,  173,  173,  173,    0,
  173,    0,    0,    0,    0,    0,    0,  173,  173,    0,
  173,    0,  173,    0,    0,    0,    0,  107,    0,    0,
  107,    0,  107,    0,  107,    0,    0,    0,    0,    0,
  173,    0,    0,    0,    0,    0,  107,    0,  173,  173,
  173,  173,  173,  173,    0,  173,    0,  173,  173,   27,
    0,  173,    0,  173,    0,    0,  173,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   27,   27,   27,   27,   27,   27,   27,   27,
   27,    0,   27,   27,   27,   27,    0,   27,   27,   27,
  107,    0,  107,    0,    0,    0,    0,    0,    0,    0,
    0,   26,    0,   27,   27,   27,   27,    0,    0,    0,
    0,    0,    0,   27,   27,   27,   27,   27,   27,    0,
   27,   27,   27,   27,   27,    0,   27,    0,    0,   27,
   27,   27,    0,    0,   26,   26,   26,   26,   26,   26,
   26,   26,   26,    0,   26,   26,   26,   26,    0,   26,
   26,   26,  119,    0,    0,  119,    0,  119,    0,  119,
    0,    0,    0,    0,    0,   26,   26,   26,   26,    0,
    0,  119,    0,    0,    0,   26,   26,   26,   26,   26,
   26,    0,   26,   26,   26,   26,   26,    0,   26,    0,
    0,   26,   26,   26,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   13,    0,    0,   33,    0,   34,    0,
   14,    0,    0,  107,    0,    0,    0,    0,    0,    0,
    0,    0,  108,    0,    0,  119,    0,  119,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,  107,  107,  107,  107,
  107,  107,  107,  107,  107,    0,  107,  107,  107,  107,
    0,  107,  107,  107,   13,    0,    0,   33,    0,   34,
    0,   14,    0,    0,    0,    0,    0,  107,  107,  107,
  107,    0,    0,  108,    0,    0,   12,  107,  107,  107,
  107,  107,  107,    0,  107,  107,  107,  107,  107,    0,
  107,    0,    0,  107,  107,  107,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,   13,    0,    0,   33,
    0,   34,    0,   14,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,  108,    0,   12,    0,  200,
    0,    0,    0,    0,    0,    0,    0,    0,  119,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,  119,  119,  119,  119,  119,  119,  119,  119,  119,
    0,  119,  119,  119,  119,    0,  119,  119,  119,   12,
    0,  216,    0,    0,    0,    0,    0,    0,    0,  106,
    0,    0,  119,  119,  119,  119,  107,    0,    0,    0,
    0,    0,  119,  119,  119,  119,  119,  119,    0,  119,
  119,  119,  119,  119,    0,  119,    0,    0,  119,  119,
  119,    0,   15,   16,  109,   17,  110,  111,  112,  113,
  114,    0,   19,   20,  115,   21,    0,   22,  116,  117,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  106,    0,    0,  118,  119,   23,    0,    0,    0,    0,
    0,    0,    0,   24,   25,   26,   27,   28,   29,    0,
   30,  120,   31,   32,  121,    0,   35,    0,    0,   36,
   37,   38,    0,   15,   16,  109,   17,  110,  111,  112,
  113,  114,    0,   19,   20,  115,   21,    0,   22,  116,
  117,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,  106,    0,  118,  119,   23,    0,    0,    0,
    0,    0,    0,    0,   24,   25,   26,   27,   28,   29,
    0,   30,  120,   31,   32,  121,    0,   35,    0,    0,
   36,   37,   38,    0,    0,   15,   16,  109,   17,  110,
  111,  112,  113,  114,    0,   19,   20,  115,   21,    0,
   22,  116,  117,   13,    0,    0,   33,    0,   34,    0,
   14,    0,    0,    0,    0,    0,  118,  119,   23,    0,
    0,    0,  108,    0,    0,    0,   24,   25,   26,   27,
   28,   29,    0,   30,  120,   31,   32,  121,    0,   35,
    0,    0,   36,   37,   38,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   13,    0,    0,   33,    0,   34,    0,
   14,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,  108,    0,    0,    0,   12,    0,  217,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   13,    0,    0,   33,    0,   34,    0,
   14,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,  108,    0,    0,    0,   12,    0,  238,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   13,    0,    0,   33,    0,   34,    0,
   14,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,  108,    0,    0,    0,   12,    0,  254,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,  106,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   15,   16,  109,   17,  110,  111,  112,  113,
  114,    0,   19,   20,  115,   21,   12,   22,  116,  117,
    0,    0,    0,    0,    0,    0,    0,    0,    0,  106,
    0,    0,    0,  118,  119,   23,    0,    0,    0,    0,
    0,    0,    0,   24,   25,   26,   27,   28,   29,    0,
   30,  120,   31,   32,  121,    0,   35,    0,    0,   36,
   37,   38,   15,   16,  109,   17,  110,  111,  112,  113,
  114,    0,   19,   20,  115,   21,    0,   22,  116,  117,
    0,    0,    0,    0,    0,    0,    0,    0,    0,  106,
    0,    0,    0,  118,  119,   23,    0,    0,    0,    0,
    0,    0,    0,   24,   25,   26,   27,   28,   29,    0,
   30,  120,   31,   32,  121,    0,   35,    0,    0,   36,
   37,   38,   15,   16,  109,   17,  110,  111,  112,  113,
  114,    0,   19,   20,  115,   21,    0,   22,  116,  117,
    0,    0,    0,    0,    0,    0,    0,    0,    0,  106,
    0,    0,    0,  118,  119,   23,  288,    0,    0,    0,
    0,    0,    0,   24,   25,   26,   27,   28,   29,    0,
   30,  120,   31,   32,  121,    0,   35,    0,    0,   36,
   37,   38,   15,   16,  109,   17,  110,  111,  112,  113,
  114,    0,   19,   20,  115,   21,    0,   22,  116,  117,
   13,    0,    0,   33,    0,   34,    0,   14,    0,    0,
    0,    0,    0,  118,  119,   23,    0,    0,    0,  108,
    0,    0,    0,   24,   25,   26,   27,   28,   29,    0,
   30,  120,   31,   32,  121,    0,   35,    0,    0,   36,
   37,   38,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
   13,    0,    0,   33,    0,   34,    0,   14,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,  108,
    0,    0,    0,   12,    0,  318,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  118,    0,    0,  118,    0,  118,    0,  118,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,  118,
    0,    0,    0,   12,    0,  354,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
   13,    0,    0,   33,    0,   34,    0,   14,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,  108,
    0,    0,    0,  118,    0,  118,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,  106,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,   26,   26,    0,   26,    0,   26,    0,   26,   15,
   16,  109,   17,  110,  111,  112,  113,  114,    0,   19,
   20,  115,   21,   12,   22,  116,  117,    0,    0,    0,
    0,    0,    0,    0,    0,    0,  106,    0,    0,    0,
  118,  119,   23,    0,    0,    0,    0,    0,    0,    0,
   24,   25,   26,   27,   28,   29,    0,   30,  120,   31,
   32,  121,    0,   35,    0,    0,   36,   37,   38,   15,
   16,  109,   17,  110,  111,  112,  113,  114,    0,   19,
   20,  115,   21,    0,   22,  116,  117,    0,    0,    0,
    0,    0,    0,    0,    0,    0,  118,    0,    0,    0,
  118,  119,   23,    0,    0,    0,    0,    0,    0,    0,
   24,   25,   26,   27,   28,   29,    0,   30,  120,   31,
   32,  121,    0,   35,    0,    0,   36,   37,   38,  118,
  118,  118,  118,  118,  118,  118,  118,  118,    0,  118,
  118,  118,  118,    0,  118,  118,  118,    0,    0,    0,
    0,    0,    0,    0,    0,    0,  106,    0,    0,    0,
  118,  118,  118,    0,    0,    0,    0,    0,    0,    0,
  118,  118,  118,  118,  118,  118,    0,  118,  118,  118,
  118,  118,    0,  118,    0,    0,  118,  118,  118,   15,
   16,  109,   17,  110,  111,  112,  113,  114,    0,   19,
   20,  115,   21,    0,   22,  116,  117,  111,    0,    0,
  111,    0,  111,    0,  111,    0,    0,   26,    0,    0,
  118,  119,   23,    0,    0,    0,  111,    0,    0,    0,
   24,   25,   26,   27,   28,   29,    0,   30,  120,   31,
   32,  121,    0,   35,    0,    0,   36,   37,   38,    0,
   26,   26,    0,   26,    0,   26,    0,    0,    0,    0,
   26,   26,    0,   26,    0,   26,    0,   21,    0,    0,
   21,    0,   21,    0,   21,    0,    0,    0,    0,    0,
    0,   26,   26,   26,    0,    0,   21,    0,    0,    0,
  111,   26,   26,   26,   26,   26,   26,    0,   26,    0,
   26,   26,    0,    0,   26,    0,    0,   26,   26,   26,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,  184,    0,    0,
  184,    0,  184,    0,  184,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,  184,    0,    0,    0,
   21,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,   17,    0,    0,
   17,    0,   17,    0,   17,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,   17,    0,    0,    0,
  184,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,  111,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   13,    0,
    0,   33,    0,   34,    0,   14,  111,  111,  111,  111,
  111,  111,  111,  111,  111,    0,  111,  111,  111,  111,
   17,  111,  111,  111,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   21,    0,    0,    0,  111,  111,  111,
    0,    0,    0,    0,    0,    0,    0,  111,  111,  111,
  111,  111,  111,    0,  111,  111,  111,  111,  111,    0,
  111,    0,    0,  111,  111,  111,   21,   21,   21,   21,
   21,   21,   21,   21,   21,    0,   21,   21,   21,   21,
    0,   21,   21,   21,    0,    0,   56,    0,    0,   33,
    0,   34,    0,  184,    0,    0,    0,   21,   21,   21,
    0,    0,    0,    0,    0,    0,    0,   21,   21,   21,
   21,   21,   21,    0,   21,   21,   21,   21,   21,    0,
   21,    0,    0,   21,   21,   21,  184,  184,  184,  184,
  184,  184,  184,  184,  184,    0,  184,  184,  184,  184,
    0,  184,  184,  184,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   17,    0,    0,    0,  184,  184,  184,
    0,    0,    0,    0,    0,    0,    0,  184,  184,  184,
  184,  184,  184,    0,  184,  184,  184,  184,  184,    0,
  184,    0,    0,  184,  184,  184,   17,   17,   17,   17,
   17,   17,   17,   17,   17,    0,   17,   17,   17,   17,
    0,   17,   17,   17,   15,    0,    0,   15,    0,   15,
    0,   15,    0,    0,  106,    0,    0,   17,   17,   17,
    0,    0,    0,   15,    0,    0,    0,   17,   17,   17,
   17,   17,   17,    0,   17,   17,   17,   17,   17,    0,
   17,    0,    0,   17,   17,   17,    0,   15,   16,    0,
   17,    0,  111,    0,    0,    0,    0,   19,   20,    0,
   21,    0,   22,    0,   13,    0,    0,   13,    0,   13,
    0,   13,    0,    0,    0,    0,    0,    0,  118,  119,
   23,    0,    0,   13,    0,    0,    0,   15,   24,   25,
   26,   27,   28,   29,    0,   30,    0,   31,   32,    0,
    0,   35,    0,    0,   36,   37,   38,    0,    0,    0,
    0,    0,    0,  257,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,   80,    0,    0,    0,    0,
    0,    0,    0,    0,  258,   15,   16,    0,   17,   56,
  136,    0,   33,  135,   34,   19,   20,   13,   21,    0,
   22,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   89,    0,    0,    0,    0,    0,   23,    0,
    0,    0,    0,    0,    0,    0,   24,   25,   26,   27,
   28,   29,    0,   30,    0,   31,   32,    0,    0,   57,
    0,    0,   36,   37,   38,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
   15,    0,    0,   78,    0,   56,    0,    0,   33,    0,
   34,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,  185,    0,    0,    0,   89,    0,
    0,    0,    0,   15,   15,   15,   15,   15,   15,   15,
   15,   15,    0,   15,   15,   15,   15,    0,   15,   15,
   15,    0,    0,    0,    0,    0,    0,    0,    0,    0,
   13,    0,    0,    0,   15,   15,   15,    0,    0,    0,
    0,    0,    0,    0,   15,   15,   15,   15,   15,   15,
    0,   15,   15,   15,   15,   15,    0,   15,    0,   78,
   15,   15,   15,   13,   13,   13,   13,   13,   13,   13,
   13,   13,    0,   13,   13,   13,   13,    0,   13,   13,
   13,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,   13,   13,   13,    0,    0,    0,
    0,    0,    0,    0,   13,   13,   13,   13,   13,   13,
    0,   13,   13,   13,   13,   13,   79,   13,    0,    0,
   13,   13,   13,    0,    0,    0,    0,    0,   80,   81,
    0,   82,   83,   84,   85,   86,   87,   88,   15,   16,
    0,   17,   56,  316,    0,   33,  135,   34,   19,   20,
    0,   21,    0,   22,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,   89,    0,    0,    0,    0,
    0,   23,    0,    0,    0,    0,    0,    0,    0,   24,
   25,   26,   27,   28,   29,    0,   30,    0,   31,   32,
    0,    0,   57,    0,    0,   36,   37,   38,  182,    0,
    0,    0,   79,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,   80,   81,    0,   82,   83,   84,
   85,   86,   87,   88,   15,   16,   78,   17,   56,  327,
    0,   33,  135,   34,   19,   20,    0,   21,    0,   22,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,   89,    0,    0,    0,    0,    0,   23,    0,    0,
    0,    0,    0,    0,    0,   24,   25,   26,   27,   28,
   29,    0,   30,    0,   31,   32,    0,    0,   57,    0,
    0,   36,   37,   38,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,   56,
  329,    0,   33,  135,   34,    0,    0,    0,    0,    0,
    0,    0,   78,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   89,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,   79,
   56,  136,    0,   33,    0,   34,    0,    0,    0,    0,
    0,   80,   81,   78,   82,   83,   84,   85,   86,   87,
   88,   15,   16,   89,   17,    0,    0,    0,    0,    0,
    0,   19,   20,    0,   21,    0,   22,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,   23,    0,    0,    0,    0,    0,
    0,    0,   24,   25,   26,   27,   28,   29,    0,   30,
    0,   31,   32,    0,    0,   57,    0,    0,   36,   37,
   38,    0,    0,    0,   78,   79,   56,    0,    0,   33,
  135,   34,    0,    0,    0,    0,    0,   80,   81,    0,
   82,   83,   84,   85,   86,   87,   88,   15,   16,   89,
   17,    0,    0,    0,    0,    0,    0,   19,   20,    0,
   21,    0,   22,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
   23,    0,    0,    0,    0,    0,    0,    0,   24,   25,
   26,   27,   28,   29,    0,   30,   79,   31,   32,    0,
    0,   57,    0,    0,   36,   37,   38,    0,   80,   81,
   78,   82,   83,   84,   85,   86,   87,   88,   15,   16,
    0,   17,   56,    0,    0,   33,    0,   34,   19,   20,
    0,   21,    0,   22,    0,    0,    0,    0,    0,    0,
  235,    0,    0,    0,    0,   89,    0,    0,    0,    0,
    0,   23,    0,    0,    0,    0,    0,    0,    0,   24,
   25,   26,   27,   28,   29,    0,   30,   79,   31,   32,
    0,    0,   57,    0,    0,   36,   37,   38,    0,   80,
   81,    0,   82,   83,   84,   85,   86,   87,   88,   15,
   16,    0,   17,   56,  272,    0,   33,    0,   34,   19,
   20,    0,   21,    0,   22,    0,   78,    0,    0,    0,
    0,    0,    0,    0,    0,    0,   89,    0,    0,    0,
    0,    0,   23,    0,    0,    0,    0,    0,    0,    0,
   24,   25,   26,   27,   28,   29,    0,   30,    0,   31,
   32,    0,    0,   57,    0,    0,   36,   37,   38,    0,
    0,    0,    0,   79,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,   80,   81,    0,   82,   83,
   84,   85,   86,   87,   88,   15,   16,   78,   17,   56,
  310,    0,   33,    0,   34,   19,   20,    0,   21,    0,
   22,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   89,    0,    0,    0,    0,    0,   23,    0,
    0,    0,    0,    0,    0,    0,   24,   25,   26,   27,
   28,   29,    0,   30,    0,   31,   32,    0,    0,   57,
    0,    0,   36,   37,   38,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,   79,
   56,  312,    0,   33,    0,   34,    0,    0,    0,    0,
    0,   80,   81,   78,   82,   83,   84,   85,   86,   87,
   88,   15,   16,   89,   17,    0,    0,    0,    0,    0,
    0,   19,   20,    0,   21,    0,   22,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,   23,    0,    0,    0,    0,    0,
    0,    0,   24,   25,   26,   27,   28,   29,    0,   30,
   79,   31,   32,    0,    0,   57,    0,    0,   36,   37,
   38,    0,   80,   81,   78,   82,   83,   84,   85,   86,
   87,   88,   15,   16,    0,   17,   56,  345,    0,   33,
    0,   34,   19,   20,    0,   21,    0,   22,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,   89,
    0,    0,    0,    0,    0,   23,    0,    0,    0,    0,
    0,    0,    0,   24,   25,   26,   27,   28,   29,    0,
   30,    0,   31,   32,    0,    0,   57,    0,    0,   36,
   37,   38,    0,    0,    0,    0,   79,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   80,   81,
    0,   82,   83,   84,   85,   86,   87,   88,   15,   16,
   78,   17,   56,  347,    0,   33,    0,   34,   19,   20,
    0,   21,    0,   22,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,   89,    0,    0,    0,    0,
    0,   23,    0,    0,    0,    0,    0,    0,    0,   24,
   25,   26,   27,   28,   29,    0,   30,   79,   31,   32,
    0,    0,   57,    0,    0,   36,   37,   38,    0,   80,
   81,    0,   82,   83,   84,   85,   86,   87,   88,   15,
   16,    0,   17,   56,    0,    0,   33,    0,   34,   19,
   20,    0,   21,    0,   22,    0,   78,    0,    0,    0,
    0,    0,  349,    0,    0,    0,   89,    0,    0,    0,
    0,    0,   23,    0,    0,    0,    0,    0,    0,    0,
   24,   25,   26,   27,   28,   29,    0,   30,    0,   31,
   32,    0,    0,   57,    0,    0,   36,   37,   38,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   79,   56,  358,    0,   33,    0,   34,
    0,    0,    0,    0,    0,   80,   81,   78,   82,   83,
   84,   85,   86,   87,   88,   15,   16,   89,   17,    0,
    0,    0,    0,    0,    0,   19,   20,    0,   21,    0,
   22,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   23,    0,
    0,    0,    0,    0,    0,    0,   24,   25,   26,   27,
   28,   29,    0,   30,    0,   31,   32,    0,    0,   57,
    0,    0,   36,   37,   38,    0,    0,    0,   78,   79,
   56,    0,    0,   33,    0,   34,    0,    0,    0,    0,
    0,   80,   81,    0,   82,   83,   84,   85,   86,   87,
   88,   15,   16,   89,   17,    0,    0,    0,    0,    0,
    0,   19,   20,    0,   21,    0,   22,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,   23,    0,    0,    0,    0,    0,
    0,    0,   24,   25,   26,   27,   28,   29,    0,   30,
   79,   31,   32,    0,    0,   57,    0,    0,   36,   37,
   38,    0,   80,   81,   78,   82,   83,   84,   85,   86,
   87,   88,   15,   16,    0,   17,   93,    0,    0,   93,
    0,   93,   19,   20,    0,   21,    0,   22,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,   93,
    0,    0,    0,    0,    0,   23,    0,    0,    0,    0,
    0,    0,    0,   24,   25,   26,   27,   28,   29,    0,
   30,   79,   31,   32,    0,    0,   57,    0,    0,   36,
   37,   38,    0,   80,   81,    0,   82,   83,   84,   85,
   86,   87,   88,   15,   16,    0,   17,    0,    0,    0,
    0,   58,   58,   19,   20,   58,   21,    0,   22,    0,
   93,    0,    0,    0,    0,    0,    0,    0,    0,   58,
   58,    0,    0,    0,   58,    0,   23,    0,    0,    0,
    0,    0,    0,    0,   24,   25,   26,   27,   28,   29,
    0,   30,    0,   31,   32,    0,    0,   57,    0,    0,
   36,   37,   38,    0,    0,    0,    0,   79,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,   80,
   81,    0,   82,   83,   84,   85,   86,   87,   88,   15,
   16,    0,   17,   56,   56,   58,    0,   56,    0,   19,
   20,    0,   21,    0,   22,    0,    0,    0,    0,    0,
    0,   56,   56,    0,    0,    0,   56,    0,    0,    0,
    0,    0,   23,    0,    0,    0,    0,    0,    0,    0,
   24,   25,   26,   27,   28,   29,    0,   30,    0,   31,
   32,    0,    0,   57,    0,    0,   36,   37,   38,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   56,   93,    0,   33,    0,   34,    0,    0,
    0,    0,    0,    0,    0,   93,   93,   56,   93,   93,
   93,   93,   93,   93,   93,   93,   93,    0,   93,    0,
    0,    0,    0,    0,    0,   93,   93,    0,   93,    0,
   93,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,   13,    0,    0,   33,   93,   34,
    0,   14,    0,    0,    0,    0,   93,   93,   93,   93,
   93,   93,    0,   93,   58,   93,   93,    0,   58,   93,
    0,    0,   93,   93,   93,    0,   78,    0,    0,    0,
   58,   58,   58,    0,    0,   58,    0,    0,    0,   58,
   58,   58,    0,   58,    0,    0,    0,    0,    0,    0,
   58,   58,    0,   58,    0,   58,   56,    0,    0,   33,
    0,   34,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   58,    0,    0,    0,   12,    0,  259,
    0,   58,   58,   58,   58,   58,   58,    0,   58,    0,
   58,   58,    0,    0,   58,    0,   56,   58,   58,   58,
   56,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   56,   56,   56,    0,    0,   56,    0,    0,
    0,   56,   56,   56,    0,   56,    0,    0,    0,    0,
    0,   13,   56,   56,   33,   56,   34,   56,   14,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  185,    0,    0,    0,    0,   56,    0,    0,    0,    0,
    0,    0,    0,   56,   56,   56,   56,   56,   56,   79,
   56,    0,   56,   56,    0,    0,   56,    0,    0,   56,
   56,   56,    0,    0,   82,   83,   84,   85,   86,   87,
   88,   15,   16,    0,   17,    0,    0,    0,    0,    0,
    0,   19,   20,    0,   21,    0,   22,   13,  141,    0,
   33,    0,   34,    0,   14,   10,   11,    0,    0,    0,
    0,    0,    0,    0,   23,    0,    0,    0,    0,    0,
    0,    0,   24,   25,   26,   27,   28,   29,    0,   30,
    0,   31,   32,   15,   16,   57,   17,    0,   36,   37,
   38,    0,   18,   19,   20,    0,   21,    0,   22,   13,
  149,    0,   33,    0,   34,    0,   14,    0,    0,    0,
    0,    0,    0,    0,    0,    0,   23,    0,    0,    0,
    0,    0,    0,  257,   24,   25,   26,   27,   28,   29,
    0,   30,    0,   31,   32,   80,   81,   35,    0,    0,
   36,   37,   38,    0,  258,   15,   16,    0,   17,    0,
    0,    0,    0,    0,    0,   19,   20,    0,   21,   13,
   22,    0,   33,    0,   34,    0,   14,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   23,    0,
    0,    0,    0,    0,    0,    0,   24,   25,   26,   27,
   28,   29,    0,   30,  182,   31,   32,    0,    0,   57,
    0,    0,   36,   37,   38,    0,    0,    0,    0,    0,
    0,   13,    0,    0,   33,    0,   34,    0,   14,    0,
   15,   16,    0,   17,    0,    0,    0,    0,    0,    0,
   19,   20,    0,   21,    0,   22,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   23,    0,    0,    0,    0,    0,    0,
    0,   24,   25,   26,   27,   28,   29,    0,   30,    0,
   31,   32,    0,    0,   35,    0,    0,   36,   37,   38,
    0,    0,    0,    0,   13,    0,    0,   33,    0,   34,
    0,   14,    0,    0,    0,    0,   15,   16,    0,   17,
    0,    0,    0,    0,    0,    0,   19,   20,    0,   21,
    0,   22,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,   23,
    0,    0,    0,    0,    0,    0,    0,   24,   25,   26,
   27,   28,   29,    0,   30,    0,   31,   32,   15,   16,
   35,   17,    0,   36,   37,   38,    0,  293,   19,   20,
   33,   21,   34,   22,   14,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,   23,  166,    0,    0,    0,    0,    0,    0,   24,
   25,   26,   27,   28,   29,    0,   30,    0,   31,   32,
    0,    0,   35,    0,    0,   36,   37,   38,   15,   16,
    0,   17,    0,    0,    0,    0,    0,  293,   19,   20,
   33,   21,   34,   22,   14,    0,    0,    0,    0,    0,
    0,    0,    0,    0,  168,    0,    0,    0,    0,    0,
    0,   23,    0,    0,    0,    0,    0,    0,    0,   24,
   25,   26,   27,   28,   29,    0,   30,    0,   31,   32,
   15,   16,   35,   17,    0,   36,   37,   38,    0,  293,
   19,   20,   33,   21,   34,   22,   14,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   23,    0,    0,    0,    0,    0,    0,
    0,   24,   25,   26,   27,   28,   29,  218,   30,    0,
   31,   32,    0,    0,   35,    0,    0,   36,   37,   38,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   15,   16,    0,   17,    0,    0,    0,
    0,    0,    0,   19,   20,    0,   21,   56,   22,    0,
   33,    0,   34,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,   23,    0,    0,    0,
    0,    0,    0,    0,   24,   25,   26,   27,   28,   29,
  166,   30,    0,   31,   32,    0,    0,   35,    0,    0,
   36,   37,   38,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,   15,   16,   13,   17,
    0,   33,    0,   34,    0,   14,   19,   20,    0,   21,
    0,   22,    0,    0,    0,    0,    0,   56,    0,    0,
   33,    0,   34,    0,   14,    0,    0,    0,    0,   23,
  168,    0,    0,    0,    0,    0,    0,   24,   25,   26,
   27,   28,   29,    0,   30,    0,   31,   32,    0,    0,
   35,    0,    0,   36,   37,   38,   15,   16,    0,   17,
    0,    0,    0,    0,    0,    0,   19,   20,    0,   21,
    0,   22,    0,    0,    0,    0,    0,    0,   56,    0,
    0,   33,  218,   34,    0,    0,    0,    0,    0,   23,
    0,    0,    0,    0,    0,    0,    0,   24,   25,   26,
   27,   28,   29,    0,   30,    0,   31,   32,   15,   16,
   35,   17,    0,   36,   37,   38,    0,    0,   19,   20,
    0,   21,    0,   22,    0,    0,    0,    0,    0,    0,
  207,    0,    0,   33,    0,   34,    0,   14,    0,    0,
    0,   23,    0,    0,    0,    0,    0,    0,    0,   24,
   25,   26,   27,   28,   29,    0,   30,    0,   31,   32,
    0,    0,   35,    0,  257,   36,   37,   38,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,  258,   15,   16,    0,   17,
    0,    0,    0,    0,    0,  293,   19,   20,   33,   21,
   34,   22,   14,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,   23,
    0,    0,    0,    0,    0,    0,    0,   24,   25,   26,
   27,   28,   29,    0,   30,    0,   31,   32,    0,    0,
   57,    0,    0,   36,   37,   38,    0,   15,   16,    0,
   17,    0,    0,    0,    0,    0,   26,   19,   20,   26,
   21,   26,   22,   26,    0,    0,   15,   16,    0,   17,
    0,    0,    0,    0,    0,    0,   19,   20,    0,   21,
   23,   22,    0,    0,    0,    0,    0,    0,   24,   25,
   26,   27,   28,   29,    0,   30,    0,   31,   32,   23,
    0,   35,    0,    0,   36,   37,   38,   24,   25,   26,
   27,   28,   29,    0,   30,    0,   31,   32,    0,    0,
   35,    0,    0,   36,   37,   38,   56,   15,   16,   33,
   17,   34,    0,    0,    0,    0,    0,   19,   20,    0,
   21,    0,   22,    0,    0,    0,    0,    0,    0,    0,
    0,  170,    0,    0,    0,    0,    0,    0,    0,    0,
   23,    0,    0,    0,    0,    0,    0,    0,   24,   25,
   26,   27,   28,   29,    0,   30,    0,   31,   32,   15,
   16,   57,   17,    0,   36,   37,   38,    0,    0,   19,
   20,    0,   21,    0,   22,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   23,    0,    0,    0,    0,    0,    0,    0,
   24,   25,   26,   27,   28,   29,    0,   30,    0,   31,
   32,    0,    0,   35,    0,    0,   36,   37,   38,    0,
    0,    0,    0,    0,   15,   16,    0,   17,    0,    0,
    0,    0,    0,    0,   19,   20,    0,   21,    0,   22,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,   23,    0,    0,
    0,    0,    0,    0,    0,   24,   25,   26,   27,   28,
   29,    0,   30,    0,   31,   32,    0,    0,   35,    0,
    0,   36,   37,   38,    0,   26,   26,    0,   26,    0,
    0,    0,    0,    0,    0,   26,   26,    0,   26,    0,
   26,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   26,    0,
    0,    0,    0,    0,    0,    0,   26,   26,   26,   26,
   26,   26,    0,   26,    0,   26,   26,    0,    0,   26,
    0,    0,   26,   26,   26,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,   15,   16,    0,   17,    0,
    0,    0,    0,    0,    0,   19,   20,    0,   21,    0,
   22,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   23,    0,
    0,    0,    0,    0,    0,    0,   24,   25,   26,   27,
   28,   29,    0,   30,    0,   31,   32,    0,    0,   57,
    0,    0,   36,   37,   38,
};
short yycheck[] = {                                      37,
    0,   37,   59,   91,   42,   43,   42,   45,   41,   47,
   59,   47,  110,    7,  289,  113,   10,   11,  116,  117,
   35,  123,  120,   91,  207,  123,   59,   44,   41,   79,
  335,   44,   41,   59,   41,   59,   44,   37,  124,   44,
   40,   41,   42,   43,   44,   45,   59,   47,   42,   59,
   59,  356,   59,  192,   40,  330,    0,  332,   58,   59,
  263,   88,    0,   63,   40,  257,   40,  259,  185,  261,
  262,  263,   50,   51,   41,  267,   93,   44,   40,  108,
  330,   41,  132,  333,  111,   93,   41,   40,    0,   44,
   41,   40,  190,   93,   41,    0,  336,   41,  196,   59,
   44,   65,   66,   47,   59,   40,   44,  101,   59,   47,
  293,  124,   59,   40,   58,   59,  131,  124,  123,   63,
   41,   59,  100,  123,  124,   37,   93,  330,  313,   41,
   42,   43,   44,   45,  326,   47,   41,   41,   59,   44,
   44,  105,   47,    0,  286,   41,   58,   59,   44,   93,
    0,   63,  130,   58,   59,   41,  185,   41,   44,   40,
   44,  346,  347,   41,  345,  192,   44,  284,  337,  124,
   41,  263,   41,   44,   41,   44,   40,  227,  228,  123,
   40,   93,    0,  177,   41,  123,   40,   44,   93,   93,
   47,   41,   59,  220,   44,  281,  335,   47,  284,  256,
  288,   58,   59,  320,  263,  232,  263,  257,   58,   59,
   41,  123,  124,   63,  263,  346,  347,  356,  123,   37,
   47,  288,   40,   41,   42,   43,   44,   45,   59,   47,
  263,  258,  349,  330,  323,   41,   93,  263,   44,  263,
   58,   59,  257,   93,  259,   63,  261,  262,  263,  263,
  263,   91,  267,  263,  263,  284,  263,  124,  285,  237,
  358,  261,  262,  263,   44,  315,  123,  267,  281,   41,
   59,  284,   44,  123,  281,   93,  263,  284,  242,  279,
  280,  281,  282,  283,  284,  285,  286,  287,  288,  289,
  290,  320,  292,  124,  313,  263,   41,  324,  298,  299,
  300,   41,  302,  263,  304,  123,  124,  345,  263,  345,
  341,  326,  263,  313,  308,  263,  263,  261,  262,  263,
  349,  289,  322,  261,  262,  263,  281,  346,  347,  284,
  330,  331,  332,  333,  334,  335,  280,  337,  263,  339,
  340,  289,  263,  343,   41,  345,  346,  347,  348,  261,
  262,  263,  288,  331,  298,  267,  261,  262,  263,   40,
  298,   41,  330,   41,  332,   41,   44,  279,  280,  281,
  282,  283,  284,  285,  286,  287,  288,  289,  290,   41,
  292,    0,  330,  331,  332,    0,  298,  299,  300,   59,
  302,  123,  304,  298,  286,   41,  263,  289,   44,   41,
  348,  313,   44,   41,  261,  262,  263,   52,   53,   99,
  322,  261,  262,  263,  281,  101,  289,  284,  330,  331,
  332,  333,  334,  335,   44,  337,   -1,  339,  340,  279,
  280,  343,  263,  345,  346,  347,  348,   -1,  330,  331,
  332,  298,   -1,  261,  262,  263,   -1,   -1,  298,  267,
  281,   -1,   -1,  284,   -1,   -1,  348,  330,  331,  332,
   -1,  279,  280,  281,  282,  283,  284,  285,   -1,  287,
  288,  289,  290,   -1,  292,  348,   -1,   -1,   -1,   -1,
  298,  299,  300,  247,  302,  249,  304,  337,   -1,   41,
   -1,   -1,   44,   -1,    0,  313,   -1,   -1,   -1,   -1,
   -1,  146,  147,   -1,  322,   -1,   58,   59,  153,  154,
   -1,   63,  330,  331,  332,  333,  334,  335,   -1,  337,
   -1,  339,  340,   -1,  125,  343,  127,  345,  346,  347,
  348,   37,  133,  134,   40,   41,   42,   43,   44,   45,
   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,   41,   -1,
   -1,   44,   58,   59,   -1,   -1,   -1,   63,  322,   -1,
   -1,   -1,   -1,   -1,  209,   58,   59,   -1,   41,  214,
  215,   44,  124,   -1,   -1,   41,  208,  178,   44,   -1,
   -1,  226,    0,   -1,  348,   58,   59,   93,   -1,   -1,
   -1,   -1,   58,   59,   -1,   -1,  360,   63,   -1,   -1,
   -1,   -1,  203,  208,  205,  206,   -1,   -1,   -1,   -1,
   -1,  256,   -1,   -1,   -1,   -1,   -1,  123,  124,   37,
   -1,   -1,   40,   41,   42,   43,   44,   45,   -1,   47,
   -1,  124,   -1,   -1,  279,  280,   -1,   -1,   -1,   -1,
   58,   59,   -1,   -1,    0,   63,   -1,   -1,   -1,   -1,
  251,  124,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  305,  306,  294,   -1,   -1,  297,  298,  299,  300,   -1,
   -1,   -1,  304,   -1,   -1,   93,    0,   -1,   -1,   -1,
  325,  282,   -1,   -1,   -1,   41,   -1,   -1,   44,  294,
   -1,   47,  297,  298,  299,  300,   -1,   -1,   -1,  304,
   -1,   -1,   58,   59,   -1,  123,  124,   63,   -1,  341,
   -1,  263,   -1,   37,   -1,   -1,   40,   41,   42,   43,
   44,   45,   -1,   47,   -1,   -1,   -1,  279,  280,  281,
   -1,   -1,  284,   -1,   58,   59,  341,   93,   -1,   63,
   -1,   -1,   -1,  344,   -1,   -1,   -1,   -1,   -1,  350,
   -1,   -1,   -1,   -1,   -1,  261,  262,  263,  359,   -1,
   -1,  267,   -1,  364,   -1,   -1,   -1,  123,   -1,   93,
  263,   -1,   -1,  279,  280,  281,  282,  283,  284,  285,
  286,  287,  288,  289,  290,  337,  292,   -1,  281,   -1,
  263,  284,  298,  299,  300,   -1,  302,  263,  304,  123,
  124,   -1,   -1,   -1,   -1,   -1,   -1,  313,  281,   -1,
   -1,  284,   -1,  279,  280,  281,  322,   -1,  284,   -1,
   -1,   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,
   -1,  337,   -1,  339,  340,   41,   -1,  343,   44,   -1,
  346,  347,  348,  261,  262,  263,   -1,   -1,   -1,  267,
   -1,   -1,   58,   59,   -1,   -1,   -1,   63,   -1,   -1,
   -1,  279,  280,  281,  282,  283,  284,  285,  286,  287,
  288,  289,  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,
  298,  299,  300,   -1,  302,   -1,  304,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  313,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  322,  261,  262,  263,   -1,   -1,
   -1,   -1,  330,  331,  332,  333,  334,  335,  124,  337,
   -1,  339,  340,  279,  280,  343,   -1,   -1,  346,  347,
  348,   -1,   -1,   -1,   -1,   -1,   -1,  261,  262,  263,
   -1,   -1,  298,  267,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  279,  280,  281,  282,  283,
  284,  285,  286,  287,  288,  289,  290,   -1,  292,   -1,
   -1,   -1,   -1,   -1,  298,  299,  300,   -1,  302,   -1,
  304,  337,   -1,   -1,   -1,   -1,   -1,   -1,    0,  313,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,  333,
  334,  335,   -1,  337,   -1,  339,  340,   -1,   -1,  343,
   -1,   -1,  346,  347,  348,   37,   -1,   -1,   40,   41,
   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,   -1,   -1,
   -1,   63,   -1,   -1,   -1,   -1,   -1,  263,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  280,  281,    0,   -1,  284,   -1,
   -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,  123,  124,   37,   -1,   -1,   40,   41,   42,   43,
   44,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   58,   59,   -1,   -1,    0,   63,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,
    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   41,
   -1,   -1,   44,   -1,   -1,   47,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,   -1,  123,
  124,   63,   -1,   -1,   -1,   -1,   -1,   37,   -1,   -1,
   40,   41,   42,   43,   44,   45,   -1,   47,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,
   -1,   93,   -1,   63,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  261,
  262,  263,   -1,   -1,   -1,  267,   -1,   -1,   -1,   -1,
   -1,  123,   -1,   93,   -1,   -1,   -1,  279,  280,  281,
  282,  283,  284,  285,  286,  287,  288,  289,  290,   -1,
  292,   -1,   -1,   -1,   -1,   -1,  298,  299,  300,   -1,
  302,   -1,  304,  123,  124,   -1,   -1,   -1,   -1,   -1,
   -1,  313,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,
  332,  333,  334,  335,   -1,  337,   -1,  339,  340,   -1,
   -1,  343,   -1,   -1,  346,  347,  348,  261,  262,  263,
   -1,   -1,   -1,  267,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  279,  280,  281,  282,  283,
  284,  285,  286,  287,  288,  289,  290,   -1,  292,   -1,
   -1,   -1,   -1,   -1,  298,  299,  300,   -1,  302,   -1,
  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  313,
   -1,   -1,   40,   -1,   -1,   43,   -1,   45,  322,  261,
  262,  263,   -1,   -1,   -1,   -1,  330,  331,  332,  333,
  334,  335,   -1,  337,   -1,  339,  340,  279,  280,  343,
   -1,   -1,  346,  347,  348,   -1,   -1,   -1,   -1,   -1,
   -1,  261,  262,  263,   -1,   -1,  298,  267,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  279,
  280,  281,  282,  283,  284,  285,  286,  287,  288,  289,
  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,  298,  299,
  300,   -1,  302,   -1,  304,  337,  124,   -1,   -1,   -1,
   -1,   -1,    0,  313,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  330,  331,  332,  333,  334,  335,   -1,  337,   -1,  339,
  340,   -1,   -1,  343,   -1,   -1,  346,  347,  348,   37,
   -1,   -1,   40,   41,   42,   43,   44,   45,   -1,   47,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   58,   59,   -1,   -1,   -1,   63,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    0,   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  123,  124,   37,   -1,   -1,
   40,   41,   42,   43,   44,   45,   -1,   47,   -1,  267,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,
   -1,  279,   -1,   63,  282,  283,  284,  285,  286,  287,
  288,  289,  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,
   -1,  299,  300,   -1,  302,   -1,  304,   -1,   -1,   -1,
   -1,   -1,   -1,   93,    0,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,  337,
   -1,  339,  340,  123,  124,  343,   -1,   -1,  346,  347,
  348,   37,   -1,   -1,   40,   41,   42,   43,   44,   45,
   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   58,   59,   -1,   -1,   -1,   63,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  261,  262,  263,   -1,   -1,   -1,  267,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,
   -1,  279,  280,  281,  282,  283,  284,  285,  286,  287,
  288,  289,  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,
  298,  299,  300,   -1,  302,   -1,  304,  123,  124,   -1,
   -1,   -1,   -1,   -1,   -1,  313,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,  337,
   -1,  339,  340,   -1,   -1,  343,   -1,   -1,  346,  347,
  348,  261,  262,  263,   -1,    0,   -1,  267,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  279,
  280,  281,  282,  283,  284,  285,  286,  287,  288,  289,
  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,  298,  299,
  300,   -1,  302,   -1,  304,   40,   41,   -1,   43,   44,
   45,   -1,   -1,  313,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  322,   58,   59,   -1,   -1,   -1,   63,   -1,
  330,  331,  332,  333,  334,  335,   -1,  337,   -1,  339,
  340,   -1,   -1,  343,   -1,  345,   -1,   -1,  348,   -1,
   -1,   -1,   -1,   -1,   -1,  261,  262,  263,   93,    0,
   -1,  267,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  279,  280,   -1,  282,  283,  284,  285,
  286,  287,  288,  289,  290,   -1,  292,   -1,  123,  124,
   -1,   -1,  298,  299,  300,   -1,  302,   -1,  304,   40,
   41,   -1,   43,   44,   45,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  322,   58,   59,   -1,
   -1,   -1,   63,   -1,  330,  331,  332,  333,  334,  335,
   -1,  337,   -1,  339,  340,   -1,   -1,  343,   -1,  345,
   -1,   -1,  348,   -1,   -1,   -1,   -1,    0,   -1,   -1,
   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  123,  124,   -1,   -1,   -1,   40,   41,   -1,
   -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   58,   59,   -1,   -1,   -1,
   63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  261,  262,  263,   -1,
   -1,   -1,  267,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   93,   -1,   -1,   -1,  279,  280,  281,  282,  283,  284,
  285,  286,  287,  288,  289,  290,   -1,  292,   -1,   -1,
   -1,   -1,   -1,  298,  299,  300,   -1,  302,   -1,  304,
  123,  124,   -1,   -1,   -1,   -1,   -1,   -1,  313,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  330,  331,  332,  333,  334,
  335,   -1,  337,   -1,  339,  340,   -1,   -1,  343,   -1,
   -1,  346,  347,  348,   -1,   -1,   -1,   -1,   -1,   -1,
  261,  262,  263,   -1,   -1,   -1,  267,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  279,  280,
  281,  282,  283,  284,  285,  286,  287,  288,  289,  290,
   -1,  292,   -1,   -1,   -1,   -1,   -1,  298,  299,  300,
   -1,  302,   -1,  304,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  313,   -1,   -1,   -1,   -1,   40,   -1,   -1,
   43,  322,   45,   -1,   -1,   -1,   -1,   -1,   -1,  330,
  331,  332,  333,  334,  335,   -1,  337,   -1,  339,  340,
   -1,   -1,  343,   -1,   -1,  346,  347,  348,  261,  262,
  263,   -1,    0,   -1,  267,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  279,  280,  281,  282,
  283,  284,  285,  286,  287,  288,  289,  290,   -1,  292,
   -1,   -1,   -1,   -1,   -1,  298,  299,  300,   -1,  302,
   -1,  304,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,
  313,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,
   58,   59,   -1,   -1,    0,   63,   -1,  330,  331,  332,
  333,  334,  335,   -1,  337,   -1,  339,  340,   -1,   -1,
  343,   -1,   -1,  346,  347,  348,   -1,   -1,   -1,   -1,
    0,   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   41,   -1,   -1,   44,   -1,
   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   58,   59,   -1,  123,  124,   63,   -1,   -1,
   40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,
   -1,   -1,   -1,   63,   -1,   -1,   -1,   93,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   93,    0,   -1,   -1,  123,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  123,  124,   -1,  289,  290,   -1,  292,
   -1,   -1,   -1,   -1,   40,   41,  299,  300,   44,  302,
   -1,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   58,   59,   -1,   -1,   -1,   63,   -1,  322,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,
  333,  334,  335,  261,  262,  263,  339,  340,   -1,  267,
  343,   -1,   -1,  346,  347,  348,   -1,   93,   -1,   -1,
   -1,  279,  280,  281,  282,  283,  284,  285,  286,  287,
  288,  289,  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,
  298,  299,  300,   -1,  302,   -1,  304,  123,  124,   -1,
   -1,   -1,   -1,   -1,   -1,  313,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  322,  261,  262,  263,   -1,   -1,
   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,  337,
   -1,  339,  340,  279,  280,  343,   -1,   -1,  346,  347,
  348,  261,  262,  263,   -1,    0,   -1,  267,   -1,   -1,
   -1,   -1,  298,   -1,   -1,   -1,   -1,   -1,   -1,  279,
  280,  281,  282,  283,  284,  285,  286,  287,  288,  289,
  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,  298,  299,
  300,   -1,  302,   -1,  304,   40,   41,   -1,   -1,   44,
   -1,  337,   -1,  313,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  322,   58,   59,   -1,   -1,   -1,   63,   -1,
  330,  331,  332,  333,  334,  335,   -1,  337,   -1,  339,
  340,   -1,   -1,  343,   -1,   -1,  346,  347,  348,   -1,
   -1,   -1,   -1,   -1,   -1,  261,  262,  263,   93,    0,
   -1,  267,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  279,  280,  281,  282,  283,  284,  285,
  286,  287,  288,  289,  290,   -1,  292,   -1,  123,  124,
   -1,   -1,  298,  299,  300,   -1,  302,   -1,  304,   40,
   41,   -1,   -1,   44,   -1,   -1,   -1,  313,   -1,   -1,
   -1,    0,   -1,   -1,   -1,   -1,  322,   58,   59,   -1,
   -1,   -1,   63,   -1,  330,  331,  332,  333,  334,  335,
   -1,  337,   -1,  339,  340,   -1,   -1,  343,   -1,   -1,
  346,  347,  348,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   40,   93,   -1,   43,   -1,   45,   -1,   47,   -1,
   -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,
   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,   -1,
   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   59,   -1,   -1,   -1,  261,  262,  263,   -1,
    0,   -1,  267,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  279,  280,   -1,  282,  283,  284,
  285,  286,  287,  288,  289,  290,   -1,  292,   -1,   -1,
   -1,   -1,   -1,  298,  299,  300,   -1,  302,   -1,  304,
   40,   -1,   -1,   43,   -1,   45,   -1,   47,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  330,  331,  332,  333,  334,
  335,   -1,  337,   -1,  339,  340,   -1,   -1,  343,   -1,
   -1,  346,  347,  348,   -1,   -1,   -1,   -1,   -1,   -1,
  261,  262,  263,   -1,    0,   -1,  267,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  279,  280,
   -1,  282,  283,  284,  285,  286,  287,  288,  289,  290,
   -1,  292,   -1,  123,   -1,   -1,   -1,  298,  299,  300,
   -1,  302,   -1,  304,   40,   -1,   -1,   43,   -1,   45,
   -1,   47,  261,  262,  263,   -1,   -1,   -1,   -1,   -1,
   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,
  331,  332,  333,  334,  335,   -1,  337,   -1,  339,  340,
  289,  290,  343,  292,   -1,  346,  347,  348,   -1,  298,
  299,  300,   -1,  302,   -1,  304,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  261,  262,  263,   -1,   -1,   -1,
   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,  330,  331,  332,  333,  334,  335,  123,  337,   -1,
  339,  340,  289,  290,  343,  292,   -1,  346,  347,  348,
   -1,  298,  299,  300,   -1,  302,   -1,  304,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,
   -1,  261,  262,  330,  331,  332,  333,  334,  335,   -1,
  337,   -1,  339,  340,   -1,   -1,  343,   -1,   -1,  346,
  347,  348,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  289,
  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,  298,  299,
  300,   -1,  302,   -1,  304,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  330,  331,  332,  333,  334,  335,   -1,  337,   -1,  339,
  340,   -1,   -1,  343,   -1,   -1,  346,  347,  348,   -1,
   -1,   -1,   -1,   -1,   -1,  261,  262,   -1,   -1,   -1,
    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  289,  290,   -1,  292,   -1,   -1,   -1,
   -1,   -1,  298,  299,  300,   -1,  302,   37,  304,   -1,
   40,   41,   42,   43,   44,   45,   -1,   47,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  322,   -1,   58,   59,
   -1,   -1,    0,   63,  330,  331,  332,  333,  334,  335,
   -1,  337,   -1,  339,  340,   -1,   -1,  343,   -1,   -1,
  346,  347,  348,   -1,   -1,   -1,   -1,    0,   -1,   -1,
   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   41,   -1,   -1,   44,   -1,   -1,   47,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   58,   59,   -1,  123,  124,   63,   -1,   40,   41,   -1,
   43,   44,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   58,   59,   -1,   -1,    0,
   63,   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,   -1,
   93,   -1,   -1,   -1,   -1,  123,   -1,   -1,   -1,   -1,
   41,   -1,   -1,   44,   -1,   -1,   47,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,   -1,
  123,  124,   63,   -1,   -1,   -1,   -1,   -1,   -1,   41,
   -1,   -1,   44,   -1,   -1,   47,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   40,   58,   59,   43,   -1,
   45,   63,   93,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   58,   -1,   -1,   -1,   -1,   63,   -1,
   -1,  261,  262,  263,   -1,   -1,   -1,  267,   -1,   -1,
   -1,   93,  123,   -1,   -1,   -1,   -1,   -1,   -1,  279,
  280,  281,  282,  283,  284,  285,   -1,  287,  288,   -1,
  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,  298,  299,
  300,  123,  302,   -1,  304,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  313,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  322,  261,  262,  263,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  333,  334,  335,   -1,  337,   -1,  339,
  340,  279,  280,  343,   -1,  345,  346,  347,  261,  262,
  263,   -1,   -1,   -1,  267,   -1,   -1,   -1,   -1,   -1,
  298,   -1,   -1,   -1,   -1,   -1,  279,  280,   -1,  282,
  283,  284,  285,  286,  287,  288,   -1,  290,   -1,  292,
   -1,   -1,   -1,   -1,   -1,  298,  299,  300,   -1,  302,
   -1,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  337,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,
  261,  262,  263,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  333,  334,  335,   -1,  337,   -1,  339,  340,  279,  280,
  343,   -1,   17,  346,  347,   -1,   -1,   -1,   -1,  261,
  262,  263,   -1,   -1,   -1,   30,   -1,  298,   33,   34,
   35,   36,   37,   38,   39,   -1,   -1,  279,  280,   -1,
   -1,   -1,  267,   -1,   -1,   -1,   -1,   52,   -1,   -1,
   -1,   -1,   57,   -1,  279,  280,  298,   -1,   -1,   -1,
   -1,   -1,   67,  288,  289,  290,  337,  292,   -1,   -1,
   -1,   -1,   -1,   -1,  299,  300,   -1,  302,   -1,  304,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   94,
   95,   96,   97,   98,   -1,  337,   -1,  322,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  330,  331,  332,  333,  334,
  335,   -1,  337,   -1,  339,  340,   -1,  122,  343,   -1,
   -1,  346,  347,  348,   -1,   -1,  131,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  142,   -1,  144,
   -1,  146,  147,   -1,   -1,   -1,   -1,  152,  153,  154,
  155,  156,   -1,  158,  159,  160,  161,  162,  163,   -1,
  165,   -1,  167,   -1,  169,  170,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,    0,  180,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  190,   -1,   -1,   -1,   -1,
   -1,  196,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  208,   -1,   -1,   -1,   -1,   -1,  214,
   -1,   -1,   -1,   -1,  219,   41,  221,   -1,   44,   -1,
   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   17,
   -1,   -1,   58,   59,   -1,   -1,   -1,   63,   -1,   -1,
   -1,   -1,  247,   -1,  249,   33,   34,   35,   -1,   -1,
   38,   39,  257,   -1,  259,   -1,  261,  262,  263,  264,
  265,  266,  267,   -1,   52,   -1,  271,   93,   -1,   57,
  275,   -1,  277,   -1,   -1,  280,  281,   -1,   -1,   67,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  294,
   -1,   -1,  297,  298,  299,  300,   -1,  123,   -1,  304,
  305,  306,   -1,   -1,   -1,   93,   94,   95,   96,   97,
   98,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,  326,   -1,  328,   -1,  330,   -1,  332,   -1,  334,
   -1,  336,   -1,   -1,  122,   -1,  341,   -1,   -1,   -1,
   -1,   -1,   -1,  131,   -1,   -1,  351,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  142,   -1,  144,   -1,  146,  147,
   -1,   -1,   -1,   -1,  152,  153,  154,   -1,  156,   -1,
  158,  159,  160,  161,  162,  163,   -1,  165,   -1,  167,
   -1,  169,  170,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  180,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   37,  190,   -1,   40,   -1,   42,   43,  196,   45,
   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  208,   -1,   -1,   59,   -1,   -1,  214,   63,   -1,   -1,
   -1,  219,   -1,  221,   -1,  261,  262,  263,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  279,  280,   -1,   -1,   -1,   -1,  247,
   -1,  249,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,
   -1,  259,  298,  261,  262,  263,  264,  265,  266,  267,
   -1,   -1,   -1,  271,   -1,   -1,   -1,  275,  124,  277,
   -1,   -1,  280,  281,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,    7,   -1,   -1,   -1,  294,   -1,   13,  297,
  298,  299,  300,   -1,   -1,   -1,  304,  305,  306,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  326,   -1,
   -1,   -1,   -1,   -1,  332,   -1,  334,   -1,  336,   -1,
   55,   56,   -1,  341,   -1,   -1,   -1,   -1,   63,   64,
   65,   66,   -1,  351,   69,   70,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   79,   -1,   -1,   82,   83,   84,
   85,   86,   87,   -1,   89,   37,   91,   92,   40,   41,
   42,   43,   44,   45,   99,   47,  101,  102,   -1,   -1,
  105,   -1,   -1,   -1,   -1,   -1,   58,   59,  113,   -1,
   -1,   63,   -1,   -1,   -1,  120,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  132,   -1,   -1,
   -1,  267,  137,   -1,  139,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  279,  280,   -1,  282,  283,  284,  285,
  286,  287,   -1,  289,  290,   -1,  292,   -1,   -1,   -1,
   -1,   -1,   -1,  299,  300,   -1,  302,   -1,  304,   -1,
   -1,   -1,  124,   40,   41,   -1,   43,  313,   45,   -1,
   47,   -1,   -1,   -1,   -1,   -1,  322,   -1,  193,   -1,
   -1,   -1,   59,  198,  330,  331,  332,  333,  334,  335,
   -1,  337,  207,  339,  340,   -1,   -1,  343,   -1,  345,
  346,  347,  348,   -1,   -1,   -1,   -1,   -1,   -1,  224,
   -1,   -1,  227,  228,   -1,   -1,   -1,   -1,  233,   -1,
  235,   -1,   -1,   -1,   -1,   40,   -1,  242,   43,   -1,
   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   59,   -1,  123,   -1,  125,   -1,
   -1,   -1,   -1,  268,  269,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  293,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  315,  263,  317,   -1,   -1,  267,  321,   -1,  123,   -1,
  125,   -1,   -1,   -1,   -1,   -1,   -1,  279,  280,  281,
   -1,   -1,  284,  338,   -1,   -1,  288,  289,  290,   -1,
  292,   -1,   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,
  302,   -1,  304,   -1,   -1,   -1,   -1,   40,   -1,   -1,
   43,   -1,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,
  322,   -1,   -1,   -1,   -1,   -1,   59,   -1,  330,  331,
  332,  333,  334,  335,   -1,  337,   -1,  339,  340,  256,
   -1,  343,   -1,  345,   -1,   -1,  348,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
  297,   -1,  299,  300,  301,  302,   -1,  304,  305,  306,
  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,  256,   -1,  320,  321,  322,  323,   -1,   -1,   -1,
   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,
  337,  338,  339,  340,  341,   -1,  343,   -1,   -1,  346,
  347,  348,   -1,   -1,  289,  290,  291,  292,  293,  294,
  295,  296,  297,   -1,  299,  300,  301,  302,   -1,  304,
  305,  306,   40,   -1,   -1,   43,   -1,   45,   -1,   47,
   -1,   -1,   -1,   -1,   -1,  320,  321,  322,  323,   -1,
   -1,   59,   -1,   -1,   -1,  330,  331,  332,  333,  334,
  335,   -1,  337,  338,  339,  340,  341,   -1,  343,   -1,
   -1,  346,  347,  348,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,   -1,
   47,   -1,   -1,  256,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  289,  290,  291,  292,
  293,  294,  295,  296,  297,   -1,  299,  300,  301,  302,
   -1,  304,  305,  306,   40,   -1,   -1,   43,   -1,   45,
   -1,   47,   -1,   -1,   -1,   -1,   -1,  320,  321,  322,
  323,   -1,   -1,   59,   -1,   -1,  123,  330,  331,  332,
  333,  334,  335,   -1,  337,  338,  339,  340,  341,   -1,
  343,   -1,   -1,  346,  347,  348,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,
   -1,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   59,   -1,  123,   -1,  125,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  256,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
   -1,  299,  300,  301,  302,   -1,  304,  305,  306,  123,
   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  256,
   -1,   -1,  320,  321,  322,  323,  263,   -1,   -1,   -1,
   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,  337,
  338,  339,  340,  341,   -1,  343,   -1,   -1,  346,  347,
  348,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
  297,   -1,  299,  300,  301,  302,   -1,  304,  305,  306,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  256,   -1,   -1,  320,  321,  322,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,
  337,  338,  339,  340,  341,   -1,  343,   -1,   -1,  346,
  347,  348,   -1,  289,  290,  291,  292,  293,  294,  295,
  296,  297,   -1,  299,  300,  301,  302,   -1,  304,  305,
  306,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  256,   -1,  320,  321,  322,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,
   -1,  337,  338,  339,  340,  341,   -1,  343,   -1,   -1,
  346,  347,  348,   -1,   -1,  289,  290,  291,  292,  293,
  294,  295,  296,  297,   -1,  299,  300,  301,  302,   -1,
  304,  305,  306,   40,   -1,   -1,   43,   -1,   45,   -1,
   47,   -1,   -1,   -1,   -1,   -1,  320,  321,  322,   -1,
   -1,   -1,   59,   -1,   -1,   -1,  330,  331,  332,  333,
  334,  335,   -1,  337,  338,  339,  340,  341,   -1,  343,
   -1,   -1,  346,  347,  348,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,   -1,
   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   59,   -1,   -1,   -1,  123,   -1,  125,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,   -1,
   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   59,   -1,   -1,   -1,  123,   -1,  125,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,   -1,
   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   59,   -1,   -1,   -1,  123,   -1,  125,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  256,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
  297,   -1,  299,  300,  301,  302,  123,  304,  305,  306,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  256,
   -1,   -1,   -1,  320,  321,  322,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,
  337,  338,  339,  340,  341,   -1,  343,   -1,   -1,  346,
  347,  348,  289,  290,  291,  292,  293,  294,  295,  296,
  297,   -1,  299,  300,  301,  302,   -1,  304,  305,  306,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  256,
   -1,   -1,   -1,  320,  321,  322,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,
  337,  338,  339,  340,  341,   -1,  343,   -1,   -1,  346,
  347,  348,  289,  290,  291,  292,  293,  294,  295,  296,
  297,   -1,  299,  300,  301,  302,   -1,  304,  305,  306,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  256,
   -1,   -1,   -1,  320,  321,  322,  263,   -1,   -1,   -1,
   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,
  337,  338,  339,  340,  341,   -1,  343,   -1,   -1,  346,
  347,  348,  289,  290,  291,  292,  293,  294,  295,  296,
  297,   -1,  299,  300,  301,  302,   -1,  304,  305,  306,
   40,   -1,   -1,   43,   -1,   45,   -1,   47,   -1,   -1,
   -1,   -1,   -1,  320,  321,  322,   -1,   -1,   -1,   59,
   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,
  337,  338,  339,  340,  341,   -1,  343,   -1,   -1,  346,
  347,  348,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   40,   -1,   -1,   43,   -1,   45,   -1,   47,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
   -1,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   40,   -1,   -1,   43,   -1,   45,   -1,   47,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
   -1,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   40,   -1,   -1,   43,   -1,   45,   -1,   47,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
   -1,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  256,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   40,   41,   -1,   43,   -1,   45,   -1,   47,  289,
  290,  291,  292,  293,  294,  295,  296,  297,   -1,  299,
  300,  301,  302,  123,  304,  305,  306,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  256,   -1,   -1,   -1,
  320,  321,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  330,  331,  332,  333,  334,  335,   -1,  337,  338,  339,
  340,  341,   -1,  343,   -1,   -1,  346,  347,  348,  289,
  290,  291,  292,  293,  294,  295,  296,  297,   -1,  299,
  300,  301,  302,   -1,  304,  305,  306,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  256,   -1,   -1,   -1,
  320,  321,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  330,  331,  332,  333,  334,  335,   -1,  337,  338,  339,
  340,  341,   -1,  343,   -1,   -1,  346,  347,  348,  289,
  290,  291,  292,  293,  294,  295,  296,  297,   -1,  299,
  300,  301,  302,   -1,  304,  305,  306,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  256,   -1,   -1,   -1,
  320,  321,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  330,  331,  332,  333,  334,  335,   -1,  337,  338,  339,
  340,  341,   -1,  343,   -1,   -1,  346,  347,  348,  289,
  290,  291,  292,  293,  294,  295,  296,  297,   -1,  299,
  300,  301,  302,   -1,  304,  305,  306,   40,   -1,   -1,
   43,   -1,   45,   -1,   47,   -1,   -1,  256,   -1,   -1,
  320,  321,  322,   -1,   -1,   -1,   59,   -1,   -1,   -1,
  330,  331,  332,  333,  334,  335,   -1,  337,  338,  339,
  340,  341,   -1,  343,   -1,   -1,  346,  347,  348,   -1,
  289,  290,   -1,  292,   -1,  294,   -1,   -1,   -1,   -1,
  299,  300,   -1,  302,   -1,  304,   -1,   40,   -1,   -1,
   43,   -1,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,
   -1,  320,  321,  322,   -1,   -1,   59,   -1,   -1,   -1,
  123,  330,  331,  332,  333,  334,  335,   -1,  337,   -1,
  339,  340,   -1,   -1,  343,   -1,   -1,  346,  347,  348,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,
   43,   -1,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,
  123,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,
   43,   -1,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,
  123,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  256,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,
   -1,   43,   -1,   45,   -1,   47,  289,  290,  291,  292,
  293,  294,  295,  296,  297,   -1,  299,  300,  301,  302,
  123,  304,  305,  306,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  256,   -1,   -1,   -1,  320,  321,  322,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,
  333,  334,  335,   -1,  337,  338,  339,  340,  341,   -1,
  343,   -1,   -1,  346,  347,  348,  289,  290,  291,  292,
  293,  294,  295,  296,  297,   -1,  299,  300,  301,  302,
   -1,  304,  305,  306,   -1,   -1,   40,   -1,   -1,   43,
   -1,   45,   -1,  256,   -1,   -1,   -1,  320,  321,  322,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,
  333,  334,  335,   -1,  337,  338,  339,  340,  341,   -1,
  343,   -1,   -1,  346,  347,  348,  289,  290,  291,  292,
  293,  294,  295,  296,  297,   -1,  299,  300,  301,  302,
   -1,  304,  305,  306,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  256,   -1,   -1,   -1,  320,  321,  322,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,
  333,  334,  335,   -1,  337,  338,  339,  340,  341,   -1,
  343,   -1,   -1,  346,  347,  348,  289,  290,  291,  292,
  293,  294,  295,  296,  297,   -1,  299,  300,  301,  302,
   -1,  304,  305,  306,   40,   -1,   -1,   43,   -1,   45,
   -1,   47,   -1,   -1,  256,   -1,   -1,  320,  321,  322,
   -1,   -1,   -1,   59,   -1,   -1,   -1,  330,  331,  332,
  333,  334,  335,   -1,  337,  338,  339,  340,  341,   -1,
  343,   -1,   -1,  346,  347,  348,   -1,  289,  290,   -1,
  292,   -1,  294,   -1,   -1,   -1,   -1,  299,  300,   -1,
  302,   -1,  304,   -1,   40,   -1,   -1,   43,   -1,   45,
   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  320,  321,
  322,   -1,   -1,   59,   -1,   -1,   -1,  123,  330,  331,
  332,  333,  334,  335,   -1,  337,   -1,  339,  340,   -1,
   -1,  343,   -1,   -1,  346,  347,  348,   -1,   -1,   -1,
   -1,   -1,   -1,  267,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  279,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  288,  289,  290,   -1,  292,   40,
   41,   -1,   43,   44,   45,  299,  300,  123,  302,   -1,
  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   63,   -1,   -1,   -1,   -1,   -1,  322,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,  333,
  334,  335,   -1,  337,   -1,  339,  340,   -1,   -1,  343,
   -1,   -1,  346,  347,  348,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  256,   -1,   -1,  124,   -1,   40,   -1,   -1,   43,   -1,
   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   63,   -1,
   -1,   -1,   -1,  289,  290,  291,  292,  293,  294,  295,
  296,  297,   -1,  299,  300,  301,  302,   -1,  304,  305,
  306,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  256,   -1,   -1,   -1,  320,  321,  322,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,
   -1,  337,  338,  339,  340,  341,   -1,  343,   -1,  124,
  346,  347,  348,  289,  290,  291,  292,  293,  294,  295,
  296,  297,   -1,  299,  300,  301,  302,   -1,  304,  305,
  306,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  320,  321,  322,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,
   -1,  337,  338,  339,  340,  341,  267,  343,   -1,   -1,
  346,  347,  348,   -1,   -1,   -1,   -1,   -1,  279,  280,
   -1,  282,  283,  284,  285,  286,  287,  288,  289,  290,
   -1,  292,   40,   41,   -1,   43,   44,   45,  299,  300,
   -1,  302,   -1,  304,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   63,   -1,   -1,   -1,   -1,
   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,
  331,  332,  333,  334,  335,   -1,  337,   -1,  339,  340,
   -1,   -1,  343,   -1,   -1,  346,  347,  348,  263,   -1,
   -1,   -1,  267,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  279,  280,   -1,  282,  283,  284,
  285,  286,  287,  288,  289,  290,  124,  292,   40,   41,
   -1,   43,   44,   45,  299,  300,   -1,  302,   -1,  304,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   63,   -1,   -1,   -1,   -1,   -1,  322,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  330,  331,  332,  333,  334,
  335,   -1,  337,   -1,  339,  340,   -1,   -1,  343,   -1,
   -1,  346,  347,  348,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,
   41,   -1,   43,   44,   45,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  124,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  267,
   40,   41,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,
   -1,  279,  280,  124,  282,  283,  284,  285,  286,  287,
  288,  289,  290,   63,  292,   -1,   -1,   -1,   -1,   -1,
   -1,  299,  300,   -1,  302,   -1,  304,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,  337,
   -1,  339,  340,   -1,   -1,  343,   -1,   -1,  346,  347,
  348,   -1,   -1,   -1,  124,  267,   40,   -1,   -1,   43,
   44,   45,   -1,   -1,   -1,   -1,   -1,  279,  280,   -1,
  282,  283,  284,  285,  286,  287,  288,  289,  290,   63,
  292,   -1,   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,
  302,   -1,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,
  332,  333,  334,  335,   -1,  337,  267,  339,  340,   -1,
   -1,  343,   -1,   -1,  346,  347,  348,   -1,  279,  280,
  124,  282,  283,  284,  285,  286,  287,  288,  289,  290,
   -1,  292,   40,   -1,   -1,   43,   -1,   45,  299,  300,
   -1,  302,   -1,  304,   -1,   -1,   -1,   -1,   -1,   -1,
   58,   -1,   -1,   -1,   -1,   63,   -1,   -1,   -1,   -1,
   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,
  331,  332,  333,  334,  335,   -1,  337,  267,  339,  340,
   -1,   -1,  343,   -1,   -1,  346,  347,  348,   -1,  279,
  280,   -1,  282,  283,  284,  285,  286,  287,  288,  289,
  290,   -1,  292,   40,   41,   -1,   43,   -1,   45,  299,
  300,   -1,  302,   -1,  304,   -1,  124,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   63,   -1,   -1,   -1,
   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  330,  331,  332,  333,  334,  335,   -1,  337,   -1,  339,
  340,   -1,   -1,  343,   -1,   -1,  346,  347,  348,   -1,
   -1,   -1,   -1,  267,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  279,  280,   -1,  282,  283,
  284,  285,  286,  287,  288,  289,  290,  124,  292,   40,
   41,   -1,   43,   -1,   45,  299,  300,   -1,  302,   -1,
  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   63,   -1,   -1,   -1,   -1,   -1,  322,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,  333,
  334,  335,   -1,  337,   -1,  339,  340,   -1,   -1,  343,
   -1,   -1,  346,  347,  348,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  267,
   40,   41,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,
   -1,  279,  280,  124,  282,  283,  284,  285,  286,  287,
  288,  289,  290,   63,  292,   -1,   -1,   -1,   -1,   -1,
   -1,  299,  300,   -1,  302,   -1,  304,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,  337,
  267,  339,  340,   -1,   -1,  343,   -1,   -1,  346,  347,
  348,   -1,  279,  280,  124,  282,  283,  284,  285,  286,
  287,  288,  289,  290,   -1,  292,   40,   41,   -1,   43,
   -1,   45,  299,  300,   -1,  302,   -1,  304,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   63,
   -1,   -1,   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,
  337,   -1,  339,  340,   -1,   -1,  343,   -1,   -1,  346,
  347,  348,   -1,   -1,   -1,   -1,  267,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  279,  280,
   -1,  282,  283,  284,  285,  286,  287,  288,  289,  290,
  124,  292,   40,   41,   -1,   43,   -1,   45,  299,  300,
   -1,  302,   -1,  304,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   63,   -1,   -1,   -1,   -1,
   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,
  331,  332,  333,  334,  335,   -1,  337,  267,  339,  340,
   -1,   -1,  343,   -1,   -1,  346,  347,  348,   -1,  279,
  280,   -1,  282,  283,  284,  285,  286,  287,  288,  289,
  290,   -1,  292,   40,   -1,   -1,   43,   -1,   45,  299,
  300,   -1,  302,   -1,  304,   -1,  124,   -1,   -1,   -1,
   -1,   -1,   59,   -1,   -1,   -1,   63,   -1,   -1,   -1,
   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  330,  331,  332,  333,  334,  335,   -1,  337,   -1,  339,
  340,   -1,   -1,  343,   -1,   -1,  346,  347,  348,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  267,   40,   41,   -1,   43,   -1,   45,
   -1,   -1,   -1,   -1,   -1,  279,  280,  124,  282,  283,
  284,  285,  286,  287,  288,  289,  290,   63,  292,   -1,
   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,  302,   -1,
  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,  333,
  334,  335,   -1,  337,   -1,  339,  340,   -1,   -1,  343,
   -1,   -1,  346,  347,  348,   -1,   -1,   -1,  124,  267,
   40,   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,
   -1,  279,  280,   -1,  282,  283,  284,  285,  286,  287,
  288,  289,  290,   63,  292,   -1,   -1,   -1,   -1,   -1,
   -1,  299,  300,   -1,  302,   -1,  304,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,  337,
  267,  339,  340,   -1,   -1,  343,   -1,   -1,  346,  347,
  348,   -1,  279,  280,  124,  282,  283,  284,  285,  286,
  287,  288,  289,  290,   -1,  292,   40,   -1,   -1,   43,
   -1,   45,  299,  300,   -1,  302,   -1,  304,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   63,
   -1,   -1,   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,
  337,  267,  339,  340,   -1,   -1,  343,   -1,   -1,  346,
  347,  348,   -1,  279,  280,   -1,  282,  283,  284,  285,
  286,  287,  288,  289,  290,   -1,  292,   -1,   -1,   -1,
   -1,   40,   41,  299,  300,   44,  302,   -1,  304,   -1,
  124,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,
   59,   -1,   -1,   -1,   63,   -1,  322,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,
   -1,  337,   -1,  339,  340,   -1,   -1,  343,   -1,   -1,
  346,  347,  348,   -1,   -1,   -1,   -1,  267,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  279,
  280,   -1,  282,  283,  284,  285,  286,  287,  288,  289,
  290,   -1,  292,   40,   41,  124,   -1,   44,   -1,  299,
  300,   -1,  302,   -1,  304,   -1,   -1,   -1,   -1,   -1,
   -1,   58,   59,   -1,   -1,   -1,   63,   -1,   -1,   -1,
   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  330,  331,  332,  333,  334,  335,   -1,  337,   -1,  339,
  340,   -1,   -1,  343,   -1,   -1,  346,  347,  348,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   40,  267,   -1,   43,   -1,   45,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  279,  280,  124,  282,  283,
  284,  285,  286,  287,  288,  289,  290,   -1,  292,   -1,
   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,  302,   -1,
  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,  322,   45,
   -1,   47,   -1,   -1,   -1,   -1,  330,  331,  332,  333,
  334,  335,   -1,  337,  263,  339,  340,   -1,  267,  343,
   -1,   -1,  346,  347,  348,   -1,  124,   -1,   -1,   -1,
  279,  280,  281,   -1,   -1,  284,   -1,   -1,   -1,  288,
  289,  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,   -1,
  299,  300,   -1,  302,   -1,  304,   40,   -1,   -1,   43,
   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  322,   -1,   -1,   -1,  123,   -1,   63,
   -1,  330,  331,  332,  333,  334,  335,   -1,  337,   -1,
  339,  340,   -1,   -1,  343,   -1,  263,  346,  347,  348,
  267,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  279,  280,  281,   -1,   -1,  284,   -1,   -1,
   -1,  288,  289,  290,   -1,  292,   -1,   -1,   -1,   -1,
   -1,   40,  299,  300,   43,  302,   45,  304,   47,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   59,   -1,   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,  267,
  337,   -1,  339,  340,   -1,   -1,  343,   -1,   -1,  346,
  347,  348,   -1,   -1,  282,  283,  284,  285,  286,  287,
  288,  289,  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,
   -1,  299,  300,   -1,  302,   -1,  304,   40,   41,   -1,
   43,   -1,   45,   -1,   47,  261,  262,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,  337,
   -1,  339,  340,  289,  290,  343,  292,   -1,  346,  347,
  348,   -1,  298,  299,  300,   -1,  302,   -1,  304,   40,
   41,   -1,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  322,   -1,   -1,   -1,
   -1,   -1,   -1,  267,  330,  331,  332,  333,  334,  335,
   -1,  337,   -1,  339,  340,  279,  280,  343,   -1,   -1,
  346,  347,  348,   -1,  288,  289,  290,   -1,  292,   -1,
   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,  302,   40,
  304,   -1,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,  333,
  334,  335,   -1,  337,  263,  339,  340,   -1,   -1,  343,
   -1,   -1,  346,  347,  348,   -1,   -1,   -1,   -1,   -1,
   -1,   40,   -1,   -1,   43,   -1,   45,   -1,   47,   -1,
  289,  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,   -1,
  299,  300,   -1,  302,   -1,  304,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,  330,  331,  332,  333,  334,  335,   -1,  337,   -1,
  339,  340,   -1,   -1,  343,   -1,   -1,  346,  347,  348,
   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,
   -1,   47,   -1,   -1,   -1,   -1,  289,  290,   -1,  292,
   -1,   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,  302,
   -1,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,
  333,  334,  335,   -1,  337,   -1,  339,  340,  289,  290,
  343,  292,   -1,  346,  347,  348,   -1,   40,  299,  300,
   43,  302,   45,  304,   47,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,  322,  263,   -1,   -1,   -1,   -1,   -1,   -1,  330,
  331,  332,  333,  334,  335,   -1,  337,   -1,  339,  340,
   -1,   -1,  343,   -1,   -1,  346,  347,  348,  289,  290,
   -1,  292,   -1,   -1,   -1,   -1,   -1,   40,  299,  300,
   43,  302,   45,  304,   47,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  263,   -1,   -1,   -1,   -1,   -1,
   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,
  331,  332,  333,  334,  335,   -1,  337,   -1,  339,  340,
  289,  290,  343,  292,   -1,  346,  347,  348,   -1,   40,
  299,  300,   43,  302,   45,  304,   47,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,  330,  331,  332,  333,  334,  335,  263,  337,   -1,
  339,  340,   -1,   -1,  343,   -1,   -1,  346,  347,  348,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  289,  290,   -1,  292,   -1,   -1,   -1,
   -1,   -1,   -1,  299,  300,   -1,  302,   40,  304,   -1,
   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  322,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,
  263,  337,   -1,  339,  340,   -1,   -1,  343,   -1,   -1,
  346,  347,  348,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  289,  290,   40,  292,
   -1,   43,   -1,   45,   -1,   47,  299,  300,   -1,  302,
   -1,  304,   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,
   43,   -1,   45,   -1,   47,   -1,   -1,   -1,   -1,  322,
  263,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,
  333,  334,  335,   -1,  337,   -1,  339,  340,   -1,   -1,
  343,   -1,   -1,  346,  347,  348,  289,  290,   -1,  292,
   -1,   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,  302,
   -1,  304,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,
   -1,   43,  263,   45,   -1,   -1,   -1,   -1,   -1,  322,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,
  333,  334,  335,   -1,  337,   -1,  339,  340,  289,  290,
  343,  292,   -1,  346,  347,  348,   -1,   -1,  299,  300,
   -1,  302,   -1,  304,   -1,   -1,   -1,   -1,   -1,   -1,
   40,   -1,   -1,   43,   -1,   45,   -1,   47,   -1,   -1,
   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,
  331,  332,  333,  334,  335,   -1,  337,   -1,  339,  340,
   -1,   -1,  343,   -1,  267,  346,  347,  348,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  288,  289,  290,   -1,  292,
   -1,   -1,   -1,   -1,   -1,   40,  299,  300,   43,  302,
   45,  304,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,
  333,  334,  335,   -1,  337,   -1,  339,  340,   -1,   -1,
  343,   -1,   -1,  346,  347,  348,   -1,  289,  290,   -1,
  292,   -1,   -1,   -1,   -1,   -1,   40,  299,  300,   43,
  302,   45,  304,   47,   -1,   -1,  289,  290,   -1,  292,
   -1,   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,  302,
  322,  304,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,
  332,  333,  334,  335,   -1,  337,   -1,  339,  340,  322,
   -1,  343,   -1,   -1,  346,  347,  348,  330,  331,  332,
  333,  334,  335,   -1,  337,   -1,  339,  340,   -1,   -1,
  343,   -1,   -1,  346,  347,  348,   40,  289,  290,   43,
  292,   45,   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,
  302,   -1,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,  313,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,
  332,  333,  334,  335,   -1,  337,   -1,  339,  340,  289,
  290,  343,  292,   -1,  346,  347,  348,   -1,   -1,  299,
  300,   -1,  302,   -1,  304,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  330,  331,  332,  333,  334,  335,   -1,  337,   -1,  339,
  340,   -1,   -1,  343,   -1,   -1,  346,  347,  348,   -1,
   -1,   -1,   -1,   -1,  289,  290,   -1,  292,   -1,   -1,
   -1,   -1,   -1,   -1,  299,  300,   -1,  302,   -1,  304,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  330,  331,  332,  333,  334,
  335,   -1,  337,   -1,  339,  340,   -1,   -1,  343,   -1,
   -1,  346,  347,  348,   -1,  289,  290,   -1,  292,   -1,
   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,  302,   -1,
  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,  333,
  334,  335,   -1,  337,   -1,  339,  340,   -1,   -1,  343,
   -1,   -1,  346,  347,  348,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  289,  290,   -1,  292,   -1,
   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,  302,   -1,
  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,  333,
  334,  335,   -1,  337,   -1,  339,  340,   -1,   -1,  343,
   -1,   -1,  346,  347,  348,
};
#define YYFINAL 4
#ifndef YYDEBUG
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 349
#if YYDEBUG
char *yyname[] = {
"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,"'%'",0,0,"'('","')'","'*'","'+'","','","'-'",0,"'/'",0,0,0,0,0,0,0,0,0,0,
"':'","';'",0,0,0,"'?'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
"'['",0,"']'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'{'",
"'|'","'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"FIRSTTOKEN","PROGRAM","PASTAT","PASTAT2",
"XBEGIN","XEND","NL","ARRAY","MATCH","NOTMATCH","MATCHOP","FINAL","DOT","ALL",
"CCL","NCCL","CHAR","OR","STAR","QUEST","PLUS","EMPTYRE","AND","BOR","APPEND",
"EQ","GE","GT","LE","LT","NE","IN","ARG","BLTIN","BREAK","CLOSE","CONTINUE",
"DELETE","DO","EXIT","FOR","FUNC","SUB","GSUB","IF","INDEX","LSUBSTR",
"MATCHFCN","NEXT","NEXTFILE","ADD","MINUS","MULT","DIVIDE","MOD","ASSIGN",
"ASGNOP","ADDEQ","SUBEQ","MULTEQ","DIVEQ","MODEQ","POWEQ","PRINT","PRINTF",
"SPRINTF","ELSE","INTEST","CONDEXPR","POSTINCR","PREINCR","POSTDECR","PREDECR",
"VAR","IVAR","VARNF","CALL","NUMBER","STRING","REGEXPR","GETLINE","RETURN",
"SPLIT","SUBSTR","WHILE","CAT","NOT","UMINUS","POWER","DECR","INCR","INDIRECT",
"LASTTOKEN",
};
char *yyrule[] = {
"$accept : program",
"program : pas",
"program : error",
"and : AND",
"and : and NL",
"bor : BOR",
"bor : bor NL",
"comma : ','",
"comma : comma NL",
"do : DO",
"do : do NL",
"else : ELSE",
"else : else NL",
"$$1 :",
"for : FOR '(' opt_simple_stmt ';' opt_nl pattern ';' opt_nl opt_simple_stmt rparen $$1 stmt",
"$$2 :",
"for : FOR '(' opt_simple_stmt ';' ';' opt_nl opt_simple_stmt rparen $$2 stmt",
"$$3 :",
"for : FOR '(' varname IN varname rparen $$3 stmt",
"funcname : VAR",
"funcname : CALL",
"if : IF '(' pattern rparen",
"lbrace : '{'",
"lbrace : lbrace NL",
"nl : NL",
"nl : nl NL",
"opt_nl :",
"opt_nl : nl",
"opt_pst :",
"opt_pst : pst",
"opt_simple_stmt :",
"opt_simple_stmt : simple_stmt",
"pas : opt_pst",
"pas : opt_pst pa_stats opt_pst",
"pa_pat : pattern",
"pa_stat : pa_pat",
"pa_stat : pa_pat lbrace stmtlist '}'",
"pa_stat : pa_pat ',' pa_pat",
"pa_stat : pa_pat ',' pa_pat lbrace stmtlist '}'",
"pa_stat : lbrace stmtlist '}'",
"pa_stat : XBEGIN lbrace stmtlist '}'",
"pa_stat : XEND lbrace stmtlist '}'",
"$$4 :",
"pa_stat : FUNC funcname '(' varlist rparen $$4 lbrace stmtlist '}'",
"pa_stats : pa_stat",
"pa_stats : pa_stats opt_pst pa_stat",
"patlist : pattern",
"patlist : patlist comma pattern",
"ppattern : var ASGNOP ppattern",
"ppattern : ppattern '?' ppattern ':' ppattern",
"ppattern : ppattern bor ppattern",
"ppattern : ppattern and ppattern",
"ppattern : ppattern MATCHOP reg_expr",
"ppattern : ppattern MATCHOP ppattern",
"ppattern : ppattern IN varname",
"ppattern : '(' plist ')' IN varname",
"ppattern : ppattern term",
"ppattern : re",
"ppattern : term",
"pattern : var ASGNOP pattern",
"pattern : pattern '?' pattern ':' pattern",
"pattern : pattern bor pattern",
"pattern : pattern and pattern",
"pattern : pattern EQ pattern",
"pattern : pattern GE pattern",
"pattern : pattern GT pattern",
"pattern : pattern LE pattern",
"pattern : pattern LT pattern",
"pattern : pattern NE pattern",
"pattern : pattern MATCHOP reg_expr",
"pattern : pattern MATCHOP pattern",
"pattern : pattern IN varname",
"pattern : '(' plist ')' IN varname",
"pattern : pattern '|' GETLINE var",
"pattern : pattern '|' GETLINE",
"pattern : pattern term",
"pattern : re",
"pattern : term",
"plist : pattern comma pattern",
"plist : plist comma pattern",
"pplist : ppattern",
"pplist : pplist comma ppattern",
"prarg :",
"prarg : pplist",
"prarg : '(' plist ')'",
"print : PRINT",
"print : PRINTF",
"pst : NL",
"pst : ';'",
"pst : pst NL",
"pst : pst ';'",
"rbrace : '}'",
"rbrace : rbrace NL",
"re : reg_expr",
"re : NOT re",
"$$5 :",
"reg_expr : '/' $$5 REGEXPR '/'",
"rparen : ')'",
"rparen : rparen NL",
"simple_stmt : print prarg '|' term",
"simple_stmt : print prarg APPEND term",
"simple_stmt : print prarg GT term",
"simple_stmt : print prarg",
"simple_stmt : DELETE varname '[' patlist ']'",
"simple_stmt : DELETE varname",
"simple_stmt : pattern",
"simple_stmt : error",
"st : nl",
"st : ';' opt_nl",
"stmt : BREAK st",
"stmt : CONTINUE st",
"$$6 :",
"$$7 :",
"stmt : do $$6 stmt $$7 WHILE '(' pattern ')' st",
"stmt : EXIT pattern st",
"stmt : EXIT st",
"stmt : for",
"stmt : if stmt else stmt",
"stmt : if stmt",
"stmt : lbrace stmtlist rbrace",
"stmt : NEXT st",
"stmt : NEXTFILE st",
"stmt : RETURN pattern st",
"stmt : RETURN st",
"stmt : simple_stmt st",
"$$8 :",
"stmt : while $$8 stmt",
"stmt : ';' opt_nl",
"stmtlist : stmt",
"stmtlist : stmtlist stmt",
"subop : SUB",
"subop : GSUB",
"term : term '/' ASGNOP term",
"term : term '+' term",
"term : term '-' term",
"term : term '*' term",
"term : term '/' term",
"term : term '%' term",
"term : term POWER term",
"term : '-' term",
"term : '+' term",
"term : NOT term",
"term : BLTIN '(' ')'",
"term : BLTIN '(' patlist ')'",
"term : BLTIN",
"term : CALL '(' ')'",
"term : CALL '(' patlist ')'",
"term : CLOSE term",
"term : DECR var",
"term : INCR var",
"term : var DECR",
"term : var INCR",
"term : GETLINE var LT term",
"term : GETLINE LT term",
"term : GETLINE var",
"term : GETLINE",
"term : INDEX '(' pattern comma pattern ')'",
"term : INDEX '(' pattern comma reg_expr ')'",
"term : '(' pattern ')'",
"term : MATCHFCN '(' pattern comma reg_expr ')'",
"term : MATCHFCN '(' pattern comma pattern ')'",
"term : NUMBER",
"term : SPLIT '(' pattern comma varname comma pattern ')'",
"term : SPLIT '(' pattern comma varname comma reg_expr ')'",
"term : SPLIT '(' pattern comma varname ')'",
"term : SPRINTF '(' patlist ')'",
"term : STRING",
"term : subop '(' reg_expr comma pattern ')'",
"term : subop '(' pattern comma pattern ')'",
"term : subop '(' reg_expr comma pattern comma var ')'",
"term : subop '(' pattern comma pattern comma var ')'",
"term : SUBSTR '(' pattern comma pattern comma pattern ')'",
"term : SUBSTR '(' pattern comma pattern ')'",
"term : var",
"var : varname",
"var : varname '[' patlist ']'",
"var : IVAR",
"var : INDIRECT term",
"varlist :",
"varlist : VAR",
"varlist : varlist comma VAR",
"varname : VAR",
"varname : ARG",
"varname : VARNF",
"while : WHILE '(' pattern rparen",
};
#endif
#ifdef YYSTACKSIZE
#undef YYMAXDEPTH
#define YYMAXDEPTH YYSTACKSIZE
#else
#ifdef YYMAXDEPTH
#define YYSTACKSIZE YYMAXDEPTH
#else
#define YYSTACKSIZE 10000
#define YYMAXDEPTH 10000
#endif
#endif
#define YYINITSTACKSIZE 200
int yydebug;
int yynerrs;
int yyerrflag;
int yychar;
short *yyssp;
YYSTYPE *yyvsp;
YYSTYPE yyval;
YYSTYPE yylval;
short *yyss;
short *yysslim;
YYSTYPE *yyvs;
int yystacksize;
#line 446 "awkgram.y"

void setfname(Cell *p)
{
	if (isarr(p))
		SYNTAX("%s is an array, not a function", p->nval);
	else if (isfcn(p))
		SYNTAX("you can't define function %s more than once", p->nval);
	curfname = p->nval;
}

int constnode(Node *p)
{
	return isvalue(p) && ((Cell *) (p->narg[0]))->csub == CCON;
}

char *strnode(Node *p)
{
	return ((Cell *)(p->narg[0]))->sval;
}

Node *notnull(Node *n)
{
	switch (n->nobj) {
	case LE: case LT: case EQ: case NE: case GT: case GE:
	case BOR: case AND: case NOT:
		return n;
	default:
		return op2(NE, n, nullnode);
	}
}

void checkdup(Node *vl, Cell *cp)	/* check if name already in list */
{
	char *s = cp->nval;
	for ( ; vl; vl = vl->nnext) {
		if (strcmp(s, ((Cell *)(vl->narg[0]))->nval) == 0) {
			SYNTAX("duplicate argument %s", s);
			break;
		}
	}
}
#line 2534 "y.tab.c"
/* allocate initial stack or double stack size, up to YYMAXDEPTH */
int yyparse __P((void));
static int yygrowstack __P((void));
static int yygrowstack()
{
    int newsize, i;
    short *newss;
    YYSTYPE *newvs;

    if ((newsize = yystacksize) == 0)
        newsize = YYINITSTACKSIZE;
    else if (newsize >= YYMAXDEPTH)
        return -1;
    else if ((newsize *= 2) > YYMAXDEPTH)
        newsize = YYMAXDEPTH;
    i = yyssp - yyss;
    if ((newss = (short *)realloc(yyss, newsize * sizeof *newss)) == NULL)
        return -1;
    yyss = newss;
    yyssp = newss + i;
    if ((newvs = (YYSTYPE *)realloc(yyvs, newsize * sizeof *newvs)) == NULL)
        return -1;
    yyvs = newvs;
    yyvsp = newvs + i;
    yystacksize = newsize;
    yysslim = yyss + newsize - 1;
    return 0;
}

#define YYABORT goto yyabort
#define YYREJECT goto yyabort
#define YYACCEPT goto yyaccept
#define YYERROR goto yyerrlab
int
yyparse()
{
    int yym, yyn, yystate;
#if YYDEBUG
    char *yys;

    if ((yys = getenv("YYDEBUG")) != NULL)
    {
        yyn = *yys;
        if (yyn >= '0' && yyn <= '9')
            yydebug = yyn - '0';
    }
#endif

    yynerrs = 0;
    yyerrflag = 0;
    yychar = (-1);

    if (yyss == NULL && yygrowstack()) goto yyoverflow;
    yyssp = yyss;
    yyvsp = yyvs;
    *yyssp = yystate = 0;

yyloop:
    if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
    if (yychar < 0)
    {
        if ((yychar = yylex()) < 0) yychar = 0;
#if YYDEBUG
        if (yydebug)
        {
            yys = 0;
            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
            if (!yys) yys = "illegal-symbol";
            printf("%sdebug: state %d, reading %d (%s)\n",
                    YYPREFIX, yystate, yychar, yys);
        }
#endif
    }
    if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
    {
#if YYDEBUG
        if (yydebug)
            printf("%sdebug: state %d, shifting to state %d\n",
                    YYPREFIX, yystate, yytable[yyn]);
#endif
        if (yyssp >= yysslim && yygrowstack())
        {
            goto yyoverflow;
        }
        *++yyssp = yystate = yytable[yyn];
        *++yyvsp = yylval;
        yychar = (-1);
        if (yyerrflag > 0)  --yyerrflag;
        goto yyloop;
    }
    if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
    {
        yyn = yytable[yyn];
        goto yyreduce;
    }
    if (yyerrflag) goto yyinrecovery;
    goto yynewerror;
yynewerror:
    yyerror("syntax error");
    goto yyerrlab;
yyerrlab:
    ++yynerrs;
yyinrecovery:
    if (yyerrflag < 3)
    {
        yyerrflag = 3;
        for (;;)
        {
            if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
                    yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
            {
#if YYDEBUG
                if (yydebug)
                    printf("%sdebug: state %d, error recovery shifting\
 to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
#endif
                if (yyssp >= yysslim && yygrowstack())
                {
                    goto yyoverflow;
                }
                *++yyssp = yystate = yytable[yyn];
                *++yyvsp = yylval;
                goto yyloop;
            }
            else
            {
#if YYDEBUG
                if (yydebug)
                    printf("%sdebug: error recovery discarding state %d\n",
                            YYPREFIX, *yyssp);
#endif
                if (yyssp <= yyss) goto yyabort;
                --yyssp;
                --yyvsp;
            }
        }
    }
    else
    {
        if (yychar == 0) goto yyabort;
#if YYDEBUG
        if (yydebug)
        {
            yys = 0;
            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
            if (!yys) yys = "illegal-symbol";
            printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
                    YYPREFIX, yystate, yychar, yys);
        }
#endif
        yychar = (-1);
        goto yyloop;
    }
yyreduce:
#if YYDEBUG
    if (yydebug)
        printf("%sdebug: state %d, reducing by rule %d (%s)\n",
                YYPREFIX, yystate, yyn, yyrule[yyn]);
#endif
    yym = yylen[yyn];
    yyval = yyvsp[1-yym];
    switch (yyn)
    {
case 1:
#line 98 "awkgram.y"
{ if (errorflag==0)
			winner = (Node *)stat3(PROGRAM, beginloc, yyvsp[0].p, endloc); }
break;
case 2:
#line 100 "awkgram.y"
{ yyclearin; bracecheck(); SYNTAX("bailing out"); }
break;
case 13:
#line 124 "awkgram.y"
{inloop++;}
break;
case 14:
#line 125 "awkgram.y"
{ --inloop; yyval.p = stat4(FOR, yyvsp[-9].p, notnull(yyvsp[-6].p), yyvsp[-3].p, yyvsp[0].p); }
break;
case 15:
#line 126 "awkgram.y"
{inloop++;}
break;
case 16:
#line 127 "awkgram.y"
{ --inloop; yyval.p = stat4(FOR, yyvsp[-7].p, NIL, yyvsp[-3].p, yyvsp[0].p); }
break;
case 17:
#line 128 "awkgram.y"
{inloop++;}
break;
case 18:
#line 129 "awkgram.y"
{ --inloop; yyval.p = stat3(IN, yyvsp[-5].p, makearr(yyvsp[-3].p), yyvsp[0].p); }
break;
case 19:
#line 133 "awkgram.y"
{ setfname(yyvsp[0].cp); }
break;
case 20:
#line 134 "awkgram.y"
{ setfname(yyvsp[0].cp); }
break;
case 21:
#line 138 "awkgram.y"
{ yyval.p = notnull(yyvsp[-1].p); }
break;
case 26:
#line 150 "awkgram.y"
{ yyval.i = 0; }
break;
case 28:
#line 155 "awkgram.y"
{ yyval.i = 0; }
break;
case 30:
#line 161 "awkgram.y"
{ yyval.p = 0; }
break;
case 32:
#line 166 "awkgram.y"
{ yyval.p = 0; }
break;
case 33:
#line 167 "awkgram.y"
{ yyval.p = yyvsp[-1].p; }
break;
case 34:
#line 171 "awkgram.y"
{ yyval.p = notnull(yyvsp[0].p); }
break;
case 35:
#line 175 "awkgram.y"
{ yyval.p = stat2(PASTAT, yyvsp[0].p, stat2(PRINT, rectonode(), NIL)); }
break;
case 36:
#line 176 "awkgram.y"
{ yyval.p = stat2(PASTAT, yyvsp[-3].p, yyvsp[-1].p); }
break;
case 37:
#line 177 "awkgram.y"
{ yyval.p = pa2stat(yyvsp[-2].p, yyvsp[0].p, stat2(PRINT, rectonode(), NIL)); }
break;
case 38:
#line 178 "awkgram.y"
{ yyval.p = pa2stat(yyvsp[-5].p, yyvsp[-3].p, yyvsp[-1].p); }
break;
case 39:
#line 179 "awkgram.y"
{ yyval.p = stat2(PASTAT, NIL, yyvsp[-1].p); }
break;
case 40:
#line 181 "awkgram.y"
{ beginloc = linkum(beginloc, yyvsp[-1].p); yyval.p = 0; }
break;
case 41:
#line 183 "awkgram.y"
{ endloc = linkum(endloc, yyvsp[-1].p); yyval.p = 0; }
break;
case 42:
#line 184 "awkgram.y"
{infunc++;}
break;
case 43:
#line 185 "awkgram.y"
{ infunc--; curfname=0; defn((Cell *)yyvsp[-7].p, yyvsp[-5].p, yyvsp[-1].p); yyval.p = 0; }
break;
case 45:
#line 190 "awkgram.y"
{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); }
break;
case 47:
#line 195 "awkgram.y"
{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); }
break;
case 48:
#line 199 "awkgram.y"
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
break;
case 49:
#line 201 "awkgram.y"
{ yyval.p = op3(CONDEXPR, notnull(yyvsp[-4].p), yyvsp[-2].p, yyvsp[0].p); }
break;
case 50:
#line 203 "awkgram.y"
{ yyval.p = op2(BOR, notnull(yyvsp[-2].p), notnull(yyvsp[0].p)); }
break;
case 51:
#line 205 "awkgram.y"
{ yyval.p = op2(AND, notnull(yyvsp[-2].p), notnull(yyvsp[0].p)); }
break;
case 52:
#line 206 "awkgram.y"
{ yyval.p = op3(yyvsp[-1].i, NIL, yyvsp[-2].p, (Node*)makedfa(yyvsp[0].s, 0)); }
break;
case 53:
#line 208 "awkgram.y"
{ if (constnode(yyvsp[0].p))
			yyval.p = op3(yyvsp[-1].i, NIL, yyvsp[-2].p, (Node*)makedfa(strnode(yyvsp[0].p), 0));
		  else
			yyval.p = op3(yyvsp[-1].i, (Node *)1, yyvsp[-2].p, yyvsp[0].p); }
break;
case 54:
#line 212 "awkgram.y"
{ yyval.p = op2(INTEST, yyvsp[-2].p, makearr(yyvsp[0].p)); }
break;
case 55:
#line 213 "awkgram.y"
{ yyval.p = op2(INTEST, yyvsp[-3].p, makearr(yyvsp[0].p)); }
break;
case 56:
#line 214 "awkgram.y"
{ yyval.p = op2(CAT, yyvsp[-1].p, yyvsp[0].p); }
break;
case 59:
#line 220 "awkgram.y"
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
break;
case 60:
#line 222 "awkgram.y"
{ yyval.p = op3(CONDEXPR, notnull(yyvsp[-4].p), yyvsp[-2].p, yyvsp[0].p); }
break;
case 61:
#line 224 "awkgram.y"
{ yyval.p = op2(BOR, notnull(yyvsp[-2].p), notnull(yyvsp[0].p)); }
break;
case 62:
#line 226 "awkgram.y"
{ yyval.p = op2(AND, notnull(yyvsp[-2].p), notnull(yyvsp[0].p)); }
break;
case 63:
#line 227 "awkgram.y"
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
break;
case 64:
#line 228 "awkgram.y"
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
break;
case 65:
#line 229 "awkgram.y"
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
break;
case 66:
#line 230 "awkgram.y"
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
break;
case 67:
#line 231 "awkgram.y"
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
break;
case 68:
#line 232 "awkgram.y"
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
break;
case 69:
#line 233 "awkgram.y"
{ yyval.p = op3(yyvsp[-1].i, NIL, yyvsp[-2].p, (Node*)makedfa(yyvsp[0].s, 0)); }
break;
case 70:
#line 235 "awkgram.y"
{ if (constnode(yyvsp[0].p))
			yyval.p = op3(yyvsp[-1].i, NIL, yyvsp[-2].p, (Node*)makedfa(strnode(yyvsp[0].p), 0));
		  else
			yyval.p = op3(yyvsp[-1].i, (Node *)1, yyvsp[-2].p, yyvsp[0].p); }
break;
case 71:
#line 239 "awkgram.y"
{ yyval.p = op2(INTEST, yyvsp[-2].p, makearr(yyvsp[0].p)); }
break;
case 72:
#line 240 "awkgram.y"
{ yyval.p = op2(INTEST, yyvsp[-3].p, makearr(yyvsp[0].p)); }
break;
case 73:
#line 241 "awkgram.y"
{ 
			if (safe) SYNTAX("cmd | getline is unsafe");
			else yyval.p = op3(GETLINE, yyvsp[0].p, itonp(yyvsp[-2].i), yyvsp[-3].p); }
break;
case 74:
#line 244 "awkgram.y"
{ 
			if (safe) SYNTAX("cmd | getline is unsafe");
			else yyval.p = op3(GETLINE, (Node*)0, itonp(yyvsp[-1].i), yyvsp[-2].p); }
break;
case 75:
#line 247 "awkgram.y"
{ yyval.p = op2(CAT, yyvsp[-1].p, yyvsp[0].p); }
break;
case 78:
#line 253 "awkgram.y"
{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); }
break;
case 79:
#line 254 "awkgram.y"
{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); }
break;
case 81:
#line 259 "awkgram.y"
{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); }
break;
case 82:
#line 263 "awkgram.y"
{ yyval.p = rectonode(); }
break;
case 84:
#line 265 "awkgram.y"
{ yyval.p = yyvsp[-1].p; }
break;
case 93:
#line 282 "awkgram.y"
{ yyval.p = op3(MATCH, NIL, rectonode(), (Node*)makedfa(yyvsp[0].s, 0)); }
break;
case 94:
#line 283 "awkgram.y"
{ yyval.p = op1(NOT, notnull(yyvsp[0].p)); }
break;
case 95:
#line 287 "awkgram.y"
{startreg();}
break;
case 96:
#line 287 "awkgram.y"
{ yyval.s = yyvsp[-1].s; }
break;
case 99:
#line 295 "awkgram.y"
{ 
			if (safe) SYNTAX("print | is unsafe");
			else yyval.p = stat3(yyvsp[-3].i, yyvsp[-2].p, itonp(yyvsp[-1].i), yyvsp[0].p); }
break;
case 100:
#line 298 "awkgram.y"
{
			if (safe) SYNTAX("print >> is unsafe");
			else yyval.p = stat3(yyvsp[-3].i, yyvsp[-2].p, itonp(yyvsp[-1].i), yyvsp[0].p); }
break;
case 101:
#line 301 "awkgram.y"
{
			if (safe) SYNTAX("print > is unsafe");
			else yyval.p = stat3(yyvsp[-3].i, yyvsp[-2].p, itonp(yyvsp[-1].i), yyvsp[0].p); }
break;
case 102:
#line 304 "awkgram.y"
{ yyval.p = stat3(yyvsp[-1].i, yyvsp[0].p, NIL, NIL); }
break;
case 103:
#line 305 "awkgram.y"
{ yyval.p = stat2(DELETE, makearr(yyvsp[-3].p), yyvsp[-1].p); }
break;
case 104:
#line 306 "awkgram.y"
{ yyval.p = stat2(DELETE, makearr(yyvsp[0].p), 0); }
break;
case 105:
#line 307 "awkgram.y"
{ yyval.p = exptostat(yyvsp[0].p); }
break;
case 106:
#line 308 "awkgram.y"
{ yyclearin; SYNTAX("illegal statement"); }
break;
case 109:
#line 317 "awkgram.y"
{ if (!inloop) SYNTAX("break illegal outside of loops");
				  yyval.p = stat1(BREAK, NIL); }
break;
case 110:
#line 319 "awkgram.y"
{  if (!inloop) SYNTAX("continue illegal outside of loops");
				  yyval.p = stat1(CONTINUE, NIL); }
break;
case 111:
#line 321 "awkgram.y"
{inloop++;}
break;
case 112:
#line 321 "awkgram.y"
{--inloop;}
break;
case 113:
#line 322 "awkgram.y"
{ yyval.p = stat2(DO, yyvsp[-6].p, notnull(yyvsp[-2].p)); }
break;
case 114:
#line 323 "awkgram.y"
{ yyval.p = stat1(EXIT, yyvsp[-1].p); }
break;
case 115:
#line 324 "awkgram.y"
{ yyval.p = stat1(EXIT, NIL); }
break;
case 117:
#line 326 "awkgram.y"
{ yyval.p = stat3(IF, yyvsp[-3].p, yyvsp[-2].p, yyvsp[0].p); }
break;
case 118:
#line 327 "awkgram.y"
{ yyval.p = stat3(IF, yyvsp[-1].p, yyvsp[0].p, NIL); }
break;
case 119:
#line 328 "awkgram.y"
{ yyval.p = yyvsp[-1].p; }
break;
case 120:
#line 329 "awkgram.y"
{ if (infunc)
				SYNTAX("next is illegal inside a function");
			  yyval.p = stat1(NEXT, NIL); }
break;
case 121:
#line 332 "awkgram.y"
{ if (infunc)
				SYNTAX("nextfile is illegal inside a function");
			  yyval.p = stat1(NEXTFILE, NIL); }
break;
case 122:
#line 335 "awkgram.y"
{ yyval.p = stat1(RETURN, yyvsp[-1].p); }
break;
case 123:
#line 336 "awkgram.y"
{ yyval.p = stat1(RETURN, NIL); }
break;
case 125:
#line 338 "awkgram.y"
{inloop++;}
break;
case 126:
#line 338 "awkgram.y"
{ --inloop; yyval.p = stat2(WHILE, yyvsp[-2].p, yyvsp[0].p); }
break;
case 127:
#line 339 "awkgram.y"
{ yyval.p = 0; }
break;
case 129:
#line 344 "awkgram.y"
{ yyval.p = linkum(yyvsp[-1].p, yyvsp[0].p); }
break;
case 132:
#line 352 "awkgram.y"
{ yyval.p = op2(DIVEQ, yyvsp[-3].p, yyvsp[0].p); }
break;
case 133:
#line 353 "awkgram.y"
{ yyval.p = op2(ADD, yyvsp[-2].p, yyvsp[0].p); }
break;
case 134:
#line 354 "awkgram.y"
{ yyval.p = op2(MINUS, yyvsp[-2].p, yyvsp[0].p); }
break;
case 135:
#line 355 "awkgram.y"
{ yyval.p = op2(MULT, yyvsp[-2].p, yyvsp[0].p); }
break;
case 136:
#line 356 "awkgram.y"
{ yyval.p = op2(DIVIDE, yyvsp[-2].p, yyvsp[0].p); }
break;
case 137:
#line 357 "awkgram.y"
{ yyval.p = op2(MOD, yyvsp[-2].p, yyvsp[0].p); }
break;
case 138:
#line 358 "awkgram.y"
{ yyval.p = op2(POWER, yyvsp[-2].p, yyvsp[0].p); }
break;
case 139:
#line 359 "awkgram.y"
{ yyval.p = op1(UMINUS, yyvsp[0].p); }
break;
case 140:
#line 360 "awkgram.y"
{ yyval.p = yyvsp[0].p; }
break;
case 141:
#line 361 "awkgram.y"
{ yyval.p = op1(NOT, notnull(yyvsp[0].p)); }
break;
case 142:
#line 362 "awkgram.y"
{ yyval.p = op2(BLTIN, itonp(yyvsp[-2].i), rectonode()); }
break;
case 143:
#line 363 "awkgram.y"
{ yyval.p = op2(BLTIN, itonp(yyvsp[-3].i), yyvsp[-1].p); }
break;
case 144:
#line 364 "awkgram.y"
{ yyval.p = op2(BLTIN, itonp(yyvsp[0].i), rectonode()); }
break;
case 145:
#line 365 "awkgram.y"
{ yyval.p = op2(CALL, celltonode(yyvsp[-2].cp,CVAR), NIL); }
break;
case 146:
#line 366 "awkgram.y"
{ yyval.p = op2(CALL, celltonode(yyvsp[-3].cp,CVAR), yyvsp[-1].p); }
break;
case 147:
#line 367 "awkgram.y"
{ yyval.p = op1(CLOSE, yyvsp[0].p); }
break;
case 148:
#line 368 "awkgram.y"
{ yyval.p = op1(PREDECR, yyvsp[0].p); }
break;
case 149:
#line 369 "awkgram.y"
{ yyval.p = op1(PREINCR, yyvsp[0].p); }
break;
case 150:
#line 370 "awkgram.y"
{ yyval.p = op1(POSTDECR, yyvsp[-1].p); }
break;
case 151:
#line 371 "awkgram.y"
{ yyval.p = op1(POSTINCR, yyvsp[-1].p); }
break;
case 152:
#line 372 "awkgram.y"
{ yyval.p = op3(GETLINE, yyvsp[-2].p, itonp(yyvsp[-1].i), yyvsp[0].p); }
break;
case 153:
#line 373 "awkgram.y"
{ yyval.p = op3(GETLINE, NIL, itonp(yyvsp[-1].i), yyvsp[0].p); }
break;
case 154:
#line 374 "awkgram.y"
{ yyval.p = op3(GETLINE, yyvsp[0].p, NIL, NIL); }
break;
case 155:
#line 375 "awkgram.y"
{ yyval.p = op3(GETLINE, NIL, NIL, NIL); }
break;
case 156:
#line 377 "awkgram.y"
{ yyval.p = op2(INDEX, yyvsp[-3].p, yyvsp[-1].p); }
break;
case 157:
#line 379 "awkgram.y"
{ SYNTAX("index() doesn't permit regular expressions");
		  yyval.p = op2(INDEX, yyvsp[-3].p, (Node*)yyvsp[-1].s); }
break;
case 158:
#line 381 "awkgram.y"
{ yyval.p = yyvsp[-1].p; }
break;
case 159:
#line 383 "awkgram.y"
{ yyval.p = op3(MATCHFCN, NIL, yyvsp[-3].p, (Node*)makedfa(yyvsp[-1].s, 1)); }
break;
case 160:
#line 385 "awkgram.y"
{ if (constnode(yyvsp[-1].p))
			yyval.p = op3(MATCHFCN, NIL, yyvsp[-3].p, (Node*)makedfa(strnode(yyvsp[-1].p), 1));
		  else
			yyval.p = op3(MATCHFCN, (Node *)1, yyvsp[-3].p, yyvsp[-1].p); }
break;
case 161:
#line 389 "awkgram.y"
{ yyval.p = celltonode(yyvsp[0].cp, CCON); }
break;
case 162:
#line 391 "awkgram.y"
{ yyval.p = op4(SPLIT, yyvsp[-5].p, makearr(yyvsp[-3].p), yyvsp[-1].p, (Node*)STRING); }
break;
case 163:
#line 393 "awkgram.y"
{ yyval.p = op4(SPLIT, yyvsp[-5].p, makearr(yyvsp[-3].p), (Node*)makedfa(yyvsp[-1].s, 1), (Node *)REGEXPR); }
break;
case 164:
#line 395 "awkgram.y"
{ yyval.p = op4(SPLIT, yyvsp[-3].p, makearr(yyvsp[-1].p), NIL, (Node*)STRING); }
break;
case 165:
#line 396 "awkgram.y"
{ yyval.p = op1(yyvsp[-3].i, yyvsp[-1].p); }
break;
case 166:
#line 397 "awkgram.y"
{ yyval.p = celltonode(yyvsp[0].cp, CCON); }
break;
case 167:
#line 399 "awkgram.y"
{ yyval.p = op4(yyvsp[-5].i, NIL, (Node*)makedfa(yyvsp[-3].s, 1), yyvsp[-1].p, rectonode()); }
break;
case 168:
#line 401 "awkgram.y"
{ if (constnode(yyvsp[-3].p))
			yyval.p = op4(yyvsp[-5].i, NIL, (Node*)makedfa(strnode(yyvsp[-3].p), 1), yyvsp[-1].p, rectonode());
		  else
			yyval.p = op4(yyvsp[-5].i, (Node *)1, yyvsp[-3].p, yyvsp[-1].p, rectonode()); }
break;
case 169:
#line 406 "awkgram.y"
{ yyval.p = op4(yyvsp[-7].i, NIL, (Node*)makedfa(yyvsp[-5].s, 1), yyvsp[-3].p, yyvsp[-1].p); }
break;
case 170:
#line 408 "awkgram.y"
{ if (constnode(yyvsp[-5].p))
			yyval.p = op4(yyvsp[-7].i, NIL, (Node*)makedfa(strnode(yyvsp[-5].p), 1), yyvsp[-3].p, yyvsp[-1].p);
		  else
			yyval.p = op4(yyvsp[-7].i, (Node *)1, yyvsp[-5].p, yyvsp[-3].p, yyvsp[-1].p); }
break;
case 171:
#line 413 "awkgram.y"
{ yyval.p = op3(SUBSTR, yyvsp[-5].p, yyvsp[-3].p, yyvsp[-1].p); }
break;
case 172:
#line 415 "awkgram.y"
{ yyval.p = op3(SUBSTR, yyvsp[-3].p, yyvsp[-1].p, NIL); }
break;
case 175:
#line 421 "awkgram.y"
{ yyval.p = op2(ARRAY, makearr(yyvsp[-3].p), yyvsp[-1].p); }
break;
case 176:
#line 422 "awkgram.y"
{ yyval.p = op1(INDIRECT, celltonode(yyvsp[0].cp, CVAR)); }
break;
case 177:
#line 423 "awkgram.y"
{ yyval.p = op1(INDIRECT, yyvsp[0].p); }
break;
case 178:
#line 427 "awkgram.y"
{ arglist = yyval.p = 0; }
break;
case 179:
#line 428 "awkgram.y"
{ arglist = yyval.p = celltonode(yyvsp[0].cp,CVAR); }
break;
case 180:
#line 429 "awkgram.y"
{
			checkdup(yyvsp[-2].p, yyvsp[0].cp);
			arglist = yyval.p = linkum(yyvsp[-2].p,celltonode(yyvsp[0].cp,CVAR)); }
break;
case 181:
#line 435 "awkgram.y"
{ yyval.p = celltonode(yyvsp[0].cp, CVAR); }
break;
case 182:
#line 436 "awkgram.y"
{ yyval.p = op1(ARG, itonp(yyvsp[0].i)); }
break;
case 183:
#line 437 "awkgram.y"
{ yyval.p = op1(VARNF, (Node *) yyvsp[0].cp); }
break;
case 184:
#line 442 "awkgram.y"
{ yyval.p = notnull(yyvsp[-1].p); }
break;
#line 3295 "y.tab.c"
    }
    yyssp -= yym;
    yystate = *yyssp;
    yyvsp -= yym;
    yym = yylhs[yyn];
    if (yystate == 0 && yym == 0)
    {
#if YYDEBUG
        if (yydebug)
            printf("%sdebug: after reduction, shifting from state 0 to\
 state %d\n", YYPREFIX, YYFINAL);
#endif
        yystate = YYFINAL;
        *++yyssp = YYFINAL;
        *++yyvsp = yyval;
        if (yychar < 0)
        {
            if ((yychar = yylex()) < 0) yychar = 0;
#if YYDEBUG
            if (yydebug)
            {
                yys = 0;
                if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
                if (!yys) yys = "illegal-symbol";
                printf("%sdebug: state %d, reading %d (%s)\n",
                        YYPREFIX, YYFINAL, yychar, yys);
            }
#endif
        }
        if (yychar == 0) goto yyaccept;
        goto yyloop;
    }
    if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
            yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
        yystate = yytable[yyn];
    else
        yystate = yydgoto[yym];
#if YYDEBUG
    if (yydebug)
        printf("%sdebug: after reduction, shifting from state %d \
to state %d\n", YYPREFIX, *yyssp, yystate);
#endif
    if (yyssp >= yysslim && yygrowstack())
    {
        goto yyoverflow;
    }
    *++yyssp = yystate;
    *++yyvsp = yyval;
    goto yyloop;
yyoverflow:
    yyerror("yacc stack overflow");
yyabort:
    return (1);
yyaccept:
    return (0);
}


syntax highlighted by Code2HTML, v. 0.9.1