#ifndef lint
static const char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93";
#endif
#define YYBYACC 1
#define YYMAJOR 1
#define YYMINOR 9
#define yyclearin (yychar=(-1))
#define yyerrok (yyerrflag=0)
#define YYRECOVERING (yyerrflag!=0)
extern int yyparse(void);
#define YYPREFIX "yy"
#line 2 "a2p.y"
/* $RCSfile: a2p.y,v $$Revision: 4.1 $$Date: 92/08/07 18:29:12 $
*
* Copyright (C) 1991, 1992, 1993, 1994, 1996, 1997, 1999, 2000,
* by Larry Wall and others
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
*
* $Log: a2p.y,v $
*/
#include "INTERN.h"
#include "a2p.h"
int root;
int begins = Nullop;
int ends = Nullop;
#line 32 "y.tab.c"
#define BEGIN 257
#define END 258
#define REGEX 259
#define SEMINEW 260
#define NEWLINE 261
#define COMMENT 262
#define FUN1 263
#define FUNN 264
#define GRGR 265
#define PRINT 266
#define PRINTF 267
#define SPRINTF_OLD 268
#define SPRINTF_NEW 269
#define SPLIT 270
#define IF 271
#define ELSE 272
#define WHILE 273
#define FOR 274
#define IN 275
#define EXIT 276
#define NEXT 277
#define BREAK 278
#define CONTINUE 279
#define RET 280
#define GETLINE 281
#define DO 282
#define SUB 283
#define GSUB 284
#define MATCH 285
#define FUNCTION 286
#define USERFUN 287
#define DELETE 288
#define ASGNOP 289
#define OROR 290
#define ANDAND 291
#define NUMBER 292
#define VAR 293
#define SUBSTR 294
#define INDEX 295
#define MATCHOP 296
#define RELOP 297
#define OR 298
#define STRING 299
#define UMINUS 300
#define NOT 301
#define INCR 302
#define DECR 303
#define FIELD 304
#define VFIELD 305
#define SVFIELD 306
#define YYERRCODE 256
short yylhs[] = { -1,
0, 3, 6, 6, 2, 2, 7, 7, 7, 7,
7, 7, 9, 8, 8, 11, 11, 11, 11, 11,
15, 15, 15, 15, 14, 14, 14, 14, 13, 13,
13, 13, 12, 12, 12, 12, 18, 18, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 17, 17, 17, 17, 17, 10,
10, 10, 19, 19, 19, 1, 1, 20, 20, 20,
20, 4, 4, 21, 21, 22, 22, 22, 22, 5,
5, 23, 23, 23, 23, 26, 26, 24, 24, 24,
24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
27, 27, 27, 25, 25, 25, 25, 25, 25, 25,
25,
};
short yylen[] = { 2,
2, 6, 5, 2, 3, 0, 1, 5, 10, 4,
1, 1, 1, 1, 3, 1, 1, 1, 1, 5,
3, 4, 4, 2, 3, 3, 3, 3, 3, 3,
1, 3, 1, 2, 5, 3, 1, 1, 1, 1,
1, 3, 3, 3, 3, 3, 3, 3, 2, 2,
2, 2, 2, 2, 3, 1, 2, 3, 4, 3,
4, 1, 3, 4, 4, 4, 4, 2, 8, 6,
8, 8, 6, 6, 6, 6, 6, 6, 6, 6,
8, 8, 8, 8, 1, 4, 1, 1, 2, 1,
1, 0, 4, 4, 3, 2, 0, 1, 1, 1,
1, 2, 0, 1, 1, 2, 2, 2, 2, 2,
0, 3, 2, 2, 1, 1, 0, 1, 4, 2,
4, 2, 1, 1, 1, 2, 1, 1, 2, 5,
1, 1, 1, 6, 9, 6, 7, 10, 9, 6,
5,
};
short yydefred[] = { 97,
0, 0, 99, 100, 101, 98, 0, 96, 0, 0,
31, 0, 0, 38, 0, 0, 0, 0, 0, 0,
0, 0, 40, 0, 0, 0, 41, 0, 0, 0,
0, 0, 87, 0, 88, 103, 0, 11, 0, 97,
0, 0, 0, 17, 18, 19, 0, 0, 0, 103,
103, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
51, 52, 0, 0, 0, 0, 0, 0, 4, 0,
103, 0, 103, 103, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
49, 50, 0, 68, 0, 0, 0, 0, 63, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 104, 105, 0, 102, 55,
32, 28, 21, 0, 0, 0, 0, 0, 0, 30,
0, 0, 0, 0, 48, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 103, 103, 0, 0,
64, 65, 67, 0, 0, 0, 0, 0, 0, 0,
0, 13, 66, 86, 0, 0, 103, 0, 0, 0,
0, 0, 0, 124, 123, 127, 0, 103, 0, 103,
10, 103, 0, 110, 0, 115, 0, 0, 0, 22,
0, 61, 95, 0, 0, 97, 3, 0, 0, 0,
0, 0, 0, 0, 103, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 103,
103, 103, 103, 103, 8, 0, 0, 0, 0, 0,
73, 0, 78, 0, 77, 0, 80, 0, 79, 0,
75, 76, 0, 70, 0, 74, 132, 131, 133, 0,
0, 0, 0, 0, 116, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
103, 0, 0, 0, 103, 103, 103, 0, 0, 0,
103, 72, 71, 82, 81, 84, 83, 0, 69, 0,
0, 0, 0, 0, 0, 130, 0, 0, 0, 136,
140, 0, 0, 0, 9, 103, 103, 0, 137, 0,
0, 103, 135, 139, 0, 138,
};
short yydgoto[] = { 1,
2, 7, 38, 74, 128, 39, 40, 41, 171, 104,
75, 193, 44, 45, 46, 47, 48, 49, 106, 8,
129, 234, 194, 195, 196, 266, 260,
};
short yysindex[] = { 0,
0, -52, 0, 0, 0, 0, 6281, 0, -83, -65,
0, 27, 28, 0, 43, 46, 29, 48, 50, 51,
-218, 64, 0, -14, 65, 66, 0, 8153, 8153, 6722,
-176, -176, 0, 8153, 0, 0, 6722, 0, -165, 0,
-38, -13, 6376, 0, 0, 0, -32, -232, 8198, 0,
0, 7770, 8198, 8198, 8153, 8153, 47, 7835, 7883, 8153,
69, 8198, 8198, 8153, 8153, 6722, -57, -267, -57, 0,
0, 0, -2, -210, -41, 79, 80, 85, 0, -52,
0, 8153, 0, 0, 6722, 8153, 7931, 8153, 8153, 8153,
-32, -166, 8153, 8153, 8153, 8153, 8153, 8153, -150, 6722,
0, 0, 6770, 0, 3731, 88, -210, -210, 0, 1055,
93, 94, 6815, 184, 8153, 92, 6892, 96, 6939, 7003,
8198, 97, 44, 7048, 7094, 0, 0, 5585, 0, 0,
0, 0, 0, -210, 7172, 2108, 2108, -60, 7216, 0,
184, 184, 184, 184, 0, 45, 45, -57, -57, -57,
-57, -176, -60, 6770, 6332, 32, 0, 0, 5632, 5700,
0, 0, 0, -148, 184, 8153, 8153, 8153, 8153, 8001,
102, 0, 0, 0, 8153, 8153, 0, 8198, 8198, 107,
121, 127, 8153, 0, 0, 0, 8153, 0, -130, 0,
0, 0, 8045, 0, -43, 0, 5899, 8153, -119, 0,
8153, 0, 0, 1434, 1434, 0, 0, 37, 5431, 6447,
6491, 6548, 134, 7281, 0, 6611, 7327, -210, -45, -45,
6722, 6722, 2656, 8045, 8045, 4777, 90, -210, -210, 0,
0, 0, 0, 0, 0, 8045, 8045, 8045, 8045, -52,
0, 8105, 0, 8153, 0, 8153, 0, 8153, 0, 8153,
0, 0, -96, 0, 8153, 0, 0, 0, 0, 8153,
8153, -39, -37, 7371, 0, 124, -89, 8198, 5967, -210,
-210, -210, -210, -210, 144, 7449, 7493, 7560, 7604, 7648,
0, 7726, 8045, 8045, 0, 0, 0, 6659, 146, 95,
0, 0, 0, 0, 0, 0, 0, -210, 0, 4777,
4777, 4777, 2656, -51, 6722, 0, -210, 6014, -85, 0,
0, 151, 2656, -35, 0, 0, 0, 152, 0, 4777,
4777, 0, 0, 0, 4777, 0,
};
short yyrindex[] = { 0,
0, 2742, 0, 0, 0, 0, 194, 0, 0, 0,
0, 56, 0, 0, 111, 0, 3174, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 2475, 0,
2531, 2375, 4311, 0, 0, 0, 2057, 1630, 3897, 0,
0, 0, 154, 154, 0, 0, 382, 0, 0, 0,
0, 154, 105, 0, 0, 0, 818, 872, 1143, 0,
0, 0, 437, 6065, 0, -54, -49, -44, 0, 2798,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2324, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 4263, 492, 6065, 6065, 0, 0,
0, 0, 0, 3222, 0, 0, 0, 0, 0, 0,
154, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 6065, 0, 0, 0, 2425, 0, 0,
3462, 3507, 3552, 3621, 0, 1956, 2007, 1197, 1251, 1522,
1576, 3119, 1901, 0, -23, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3830, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 504, 504, 0,
0, 0, 13, 0, 0, 0, 103, 0, 0, 0,
0, 0, 123, 0, 0, 0, 0, 0, 763, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 4830, 173, 242,
0, 0, 140, 297, 350, 0, 0, 6065, 4878, 0,
0, 0, 0, 0, 0, 3945, 4017, 4106, 4208, 2848,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 141, 0, 0, 0, 105, 0, 4952,
5145, 5219, 5266, 5318, 0, 0, 0, 0, 0, 0,
0, 0, 398, 484, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 6065, 0, 0,
0, 0, 161, 0, 0, 0, 5534, 0, 6180, 0,
0, 0, 161, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
};
short yygindex[] = { 0,
-17, 0, 0, 4597, -87, 0, 0, 0, 0, 12,
23, 4555, -12, -8, -3, 8435, 4752, 0, -70, 0,
0, 0, -124, -191, 0, -264, -7,
};
#define YYTABLESIZE 8719
short yytable[] = { 130,
85, 285, 82, 286, 97, 319, 6, 313, 17, 95,
93, 82, 94, 18, 96, 233, 258, 16, 19, 159,
160, 82, 80, 82, 76, 82, 281, 82, 77, 42,
85, 265, 156, 78, 101, 102, 98, 85, 312, 50,
85, 85, 85, 85, 85, 85, 197, 85, 318, 82,
126, 127, 70, 125, 99, 62, 100, 51, 85, 85,
85, 98, 85, 85, 111, 112, 52, 53, 61, 101,
102, 125, 203, 122, 123, 158, 63, 241, 259, 99,
242, 97, 54, 156, 81, 55, 95, 58, 56, 59,
60, 96, 62, 85, 85, 79, 62, 62, 62, 62,
62, 267, 62, 62, 64, 65, 115, 138, 121, 99,
37, 265, 85, 62, 62, 62, 24, 62, 62, 131,
132, 265, 153, 85, 85, 133, 145, 33, 34, 35,
152, 158, 172, 162, 163, 166, 174, 173, 98, 168,
269, 76, 215, 128, 208, 77, 221, 37, 62, 62,
78, 37, 37, 37, 37, 37, 99, 37, 199, 200,
222, 128, 227, 118, 126, 127, 223, 62, 37, 37,
37, 84, 37, 37, 251, 309, 310, 311, 62, 62,
268, 118, 288, 289, 292, 305, 316, 306, 240, 219,
220, 317, 322, 1, 92, 323, 324, 92, 117, 118,
326, 117, 0, 37, 37, 0, 0, 3, 4, 5,
308, 0, 261, 120, 0, 0, 230, 231, 232, 257,
0, 0, 37, 66, 0, 0, 28, 0, 29, 83,
84, 120, 0, 37, 37, 17, 17, 0, 83, 84,
18, 18, 92, 262, 263, 19, 19, 0, 83, 84,
83, 84, 83, 84, 83, 84, 0, 85, 85, 85,
85, 85, 85, 85, 85, 85, 16, 16, 85, 85,
85, 0, 125, 125, 125, 85, 83, 84, 0, 290,
0, 85, 122, 85, 85, 85, 85, 85, 0, 85,
85, 85, 85, 85, 85, 85, 85, 85, 0, 85,
122, 85, 85, 85, 85, 85, 85, 0, 0, 0,
304, 0, 62, 62, 62, 62, 62, 62, 62, 62,
62, 24, 0, 62, 62, 62, 0, 314, 0, 0,
62, 0, 33, 34, 35, 0, 62, 126, 62, 62,
62, 62, 62, 0, 62, 62, 62, 62, 62, 62,
62, 62, 62, 0, 62, 126, 62, 62, 62, 62,
62, 62, 128, 128, 128, 0, 0, 37, 37, 37,
37, 37, 37, 37, 37, 37, 0, 0, 37, 37,
37, 57, 118, 118, 118, 37, 0, 0, 0, 0,
129, 37, 0, 37, 37, 37, 37, 37, 0, 37,
37, 37, 37, 37, 37, 37, 37, 37, 129, 37,
0, 37, 37, 37, 37, 37, 37, 0, 57, 0,
0, 57, 57, 57, 57, 57, 57, 0, 57, 0,
0, 0, 120, 120, 120, 0, 89, 0, 119, 57,
57, 0, 0, 57, 57, 0, 12, 13, 0, 0,
0, 14, 15, 16, 0, 0, 119, 0, 0, 0,
0, 0, 0, 0, 17, 0, 18, 19, 20, 0,
22, 0, 0, 89, 57, 57, 89, 89, 89, 89,
89, 89, 27, 89, 0, 31, 32, 33, 34, 35,
0, 91, 0, 57, 89, 89, 89, 0, 89, 89,
0, 122, 122, 122, 57, 57, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 121, 0, 0, 0, 91, 89,
89, 91, 91, 91, 91, 0, 91, 0, 91, 0,
0, 0, 121, 0, 92, 0, 0, 0, 0, 91,
91, 91, 0, 91, 91, 0, 126, 126, 126, 89,
89, 0, 92, 0, 0, 92, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 91, 91, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 91, 0, 0, 0, 0, 0, 129,
129, 129, 0, 0, 91, 91, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 92, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 57, 57,
57, 57, 57, 57, 57, 57, 57, 0, 0, 57,
57, 57, 0, 0, 0, 0, 57, 119, 119, 119,
0, 0, 57, 0, 57, 57, 57, 57, 57, 0,
57, 57, 57, 57, 57, 57, 57, 57, 57, 0,
57, 0, 57, 57, 57, 57, 57, 57, 0, 0,
0, 0, 0, 89, 89, 89, 89, 89, 89, 89,
89, 89, 0, 0, 89, 89, 89, 0, 0, 0,
0, 89, 0, 0, 0, 0, 0, 89, 0, 89,
89, 89, 89, 89, 0, 89, 89, 89, 89, 89,
89, 89, 89, 89, 0, 89, 0, 89, 89, 89,
89, 89, 89, 121, 121, 121, 0, 0, 91, 91,
91, 91, 91, 91, 91, 91, 91, 0, 0, 91,
91, 91, 23, 92, 92, 92, 91, 0, 92, 0,
0, 0, 91, 0, 91, 91, 91, 91, 91, 0,
91, 91, 91, 91, 91, 91, 91, 91, 91, 0,
91, 0, 91, 91, 91, 91, 91, 91, 0, 23,
0, 0, 23, 23, 23, 23, 23, 23, 0, 23,
0, 0, 0, 0, 0, 0, 0, 54, 0, 0,
23, 23, 23, 0, 23, 23, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 54, 23, 23, 54, 54, 54,
54, 54, 54, 0, 54, 0, 0, 0, 0, 0,
0, 39, 0, 0, 23, 54, 54, 54, 0, 54,
54, 0, 0, 0, 0, 23, 23, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 39, 0,
54, 39, 39, 39, 39, 39, 39, 0, 39, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 39,
39, 39, 0, 39, 39, 0, 0, 0, 0, 0,
54, 54, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 39, 39, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 39, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 39, 39, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 23,
23, 23, 23, 23, 23, 23, 23, 23, 0, 0,
23, 23, 23, 0, 0, 0, 0, 23, 0, 0,
0, 0, 0, 23, 0, 23, 23, 23, 23, 23,
0, 23, 23, 0, 23, 23, 23, 23, 23, 23,
0, 23, 0, 23, 23, 23, 23, 23, 23, 0,
0, 0, 0, 0, 54, 54, 54, 54, 54, 54,
54, 54, 54, 0, 0, 54, 54, 54, 0, 0,
0, 0, 54, 0, 66, 161, 0, 28, 54, 29,
54, 54, 54, 54, 54, 0, 54, 54, 54, 54,
54, 54, 54, 54, 54, 0, 54, 86, 54, 54,
54, 54, 54, 54, 0, 0, 0, 0, 39, 39,
39, 39, 39, 39, 39, 39, 39, 0, 0, 39,
39, 39, 53, 0, 0, 0, 39, 0, 0, 0,
0, 0, 39, 0, 39, 39, 39, 39, 39, 0,
39, 39, 39, 39, 39, 39, 39, 39, 39, 0,
39, 0, 39, 0, 0, 39, 39, 39, 0, 53,
0, 0, 53, 53, 53, 53, 53, 53, 0, 53,
0, 0, 0, 0, 0, 0, 44, 0, 0, 0,
53, 53, 53, 0, 53, 53, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 44, 0, 53, 44, 44, 44, 44,
44, 44, 0, 44, 0, 0, 0, 0, 0, 0,
45, 0, 0, 0, 44, 44, 44, 0, 44, 44,
0, 0, 0, 0, 0, 53, 53, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 45, 0, 44,
45, 45, 45, 45, 45, 45, 0, 45, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 45, 45,
45, 0, 45, 45, 0, 0, 0, 12, 13, 44,
44, 0, 14, 15, 16, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 17, 0, 18, 19, 20,
0, 22, 0, 45, 0, 0, 23, 24, 25, 26,
0, 0, 0, 27, 0, 0, 31, 32, 33, 34,
35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 45, 45, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 53,
53, 53, 53, 53, 53, 53, 53, 53, 0, 0,
53, 53, 53, 0, 0, 0, 0, 53, 0, 0,
0, 0, 0, 53, 0, 53, 53, 53, 53, 53,
0, 53, 53, 53, 53, 53, 53, 53, 53, 53,
0, 53, 0, 53, 53, 53, 53, 53, 53, 0,
0, 0, 0, 44, 44, 44, 44, 44, 44, 44,
44, 44, 0, 0, 44, 44, 44, 0, 0, 0,
0, 44, 0, 66, 0, 0, 28, 44, 29, 44,
44, 44, 44, 44, 0, 44, 44, 44, 44, 44,
44, 44, 44, 44, 0, 44, 0, 44, 44, 44,
44, 44, 44, 0, 0, 0, 0, 45, 45, 45,
45, 45, 45, 45, 45, 45, 0, 0, 45, 45,
45, 46, 0, 0, 0, 45, 0, 0, 0, 0,
0, 45, 0, 45, 45, 45, 45, 45, 0, 45,
45, 45, 45, 45, 45, 45, 45, 45, 0, 45,
0, 45, 45, 45, 45, 45, 45, 0, 46, 0,
0, 46, 46, 46, 46, 46, 46, 0, 46, 0,
0, 0, 0, 0, 0, 47, 0, 0, 0, 46,
46, 46, 0, 46, 46, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 47, 0, 46, 47, 47, 47, 47, 47,
47, 0, 47, 0, 0, 0, 0, 0, 0, 39,
0, 0, 0, 47, 47, 47, 0, 47, 47, 0,
0, 0, 0, 0, 46, 46, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 39, 0, 47, 39,
39, 39, 39, 39, 39, 0, 39, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 39, 39, 39,
0, 39, 39, 0, 126, 127, 12, 13, 47, 47,
0, 14, 15, 16, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 17, 0, 18, 19, 20, 0,
22, 0, 39, 39, 0, 23, 24, 25, 26, 0,
0, 0, 27, 0, 0, 31, 32, 33, 34, 35,
0, 39, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 39, 39, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 46, 46,
46, 46, 46, 46, 46, 46, 46, 0, 0, 46,
46, 46, 0, 0, 0, 0, 46, 0, 0, 0,
0, 0, 46, 0, 46, 46, 46, 46, 46, 0,
46, 46, 46, 46, 46, 46, 46, 46, 46, 0,
46, 0, 46, 46, 46, 46, 46, 46, 0, 0,
0, 0, 47, 47, 47, 47, 47, 47, 47, 47,
47, 0, 0, 47, 47, 47, 0, 0, 0, 0,
47, 0, 0, 0, 0, 0, 47, 0, 47, 47,
47, 47, 47, 0, 47, 47, 47, 47, 47, 47,
47, 47, 47, 0, 47, 0, 47, 47, 47, 47,
47, 47, 0, 0, 0, 0, 39, 39, 39, 39,
39, 39, 39, 39, 39, 0, 0, 39, 39, 39,
36, 0, 0, 0, 39, 0, 0, 0, 0, 0,
39, 0, 39, 39, 39, 39, 39, 0, 0, 39,
39, 39, 39, 39, 39, 39, 39, 0, 39, 0,
39, 0, 0, 39, 39, 39, 0, 36, 0, 0,
36, 36, 36, 36, 36, 36, 0, 36, 0, 0,
0, 0, 0, 0, 0, 42, 0, 0, 36, 36,
36, 0, 36, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 36, 36, 42, 42, 0, 42, 42,
42, 0, 0, 0, 0, 0, 43, 0, 0, 0,
0, 0, 36, 42, 42, 42, 0, 42, 42, 0,
0, 0, 0, 36, 36, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 43, 43, 42, 43,
43, 43, 0, 0, 0, 0, 33, 0, 0, 0,
0, 0, 0, 0, 43, 43, 43, 0, 43, 43,
0, 0, 0, 0, 0, 0, 0, 0, 42, 42,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 33, 33, 0, 43,
33, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 33, 33, 33, 0, 33, 33,
0, 0, 0, 0, 0, 0, 0, 0, 0, 43,
43, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 37, 0, 33,
28, 0, 29, 0, 0, 0, 0, 36, 36, 36,
36, 36, 36, 36, 36, 36, 0, 0, 36, 36,
36, 0, 0, 0, 0, 36, 0, 0, 0, 33,
33, 36, 0, 36, 36, 36, 36, 36, 0, 36,
0, 0, 36, 36, 36, 36, 36, 36, 0, 36,
0, 36, 36, 36, 36, 36, 36, 0, 0, 0,
0, 0, 42, 42, 42, 42, 42, 42, 42, 42,
42, 0, 0, 42, 42, 42, 0, 0, 0, 0,
42, 0, 0, 0, 0, 0, 42, 0, 42, 42,
42, 42, 42, 0, 42, 42, 42, 42, 42, 42,
42, 42, 42, 0, 42, 0, 42, 42, 42, 42,
42, 42, 0, 43, 43, 43, 43, 43, 43, 43,
43, 43, 0, 0, 43, 43, 43, 0, 0, 0,
0, 43, 0, 0, 0, 0, 0, 43, 0, 43,
43, 43, 43, 43, 0, 43, 43, 43, 43, 43,
43, 43, 43, 43, 0, 43, 0, 43, 43, 43,
43, 43, 43, 33, 33, 33, 33, 33, 33, 33,
33, 33, 0, 34, 33, 33, 33, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 33, 0, 33,
33, 33, 33, 33, 0, 33, 33, 33, 33, 33,
33, 33, 33, 33, 0, 33, 0, 33, 33, 33,
33, 33, 33, 34, 34, 0, 11, 34, 126, 127,
12, 13, 0, 0, 14, 14, 15, 16, 0, 0,
0, 34, 34, 34, 0, 34, 34, 0, 17, 0,
18, 19, 20, 0, 22, 0, 0, 0, 0, 23,
24, 25, 26, 0, 0, 0, 27, 0, 30, 31,
32, 33, 34, 35, 14, 0, 34, 14, 0, 14,
0, 0, 0, 0, 15, 0, 0, 0, 0, 0,
0, 0, 0, 14, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 34, 34, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 15, 0, 0, 15, 0, 15,
0, 0, 0, 0, 12, 0, 0, 0, 0, 0,
0, 0, 0, 15, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 14, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 12, 0, 0, 12, 0, 12,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7, 0, 0, 12, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 15, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7, 0, 0, 7, 0, 7, 0, 0, 0, 0,
34, 34, 34, 34, 34, 34, 34, 34, 34, 7,
0, 34, 34, 34, 0, 0, 0, 12, 0, 0,
0, 0, 0, 0, 34, 0, 34, 34, 34, 34,
34, 0, 34, 34, 34, 34, 34, 34, 34, 34,
34, 0, 34, 0, 34, 34, 34, 34, 34, 34,
0, 14, 14, 14, 14, 14, 14, 14, 14, 0,
0, 0, 14, 14, 14, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 14, 0, 14, 14, 14,
14, 14, 0, 0, 0, 0, 14, 14, 14, 14,
0, 0, 0, 14, 0, 14, 14, 14, 14, 14,
14, 15, 15, 15, 15, 15, 15, 15, 15, 0,
0, 0, 15, 15, 15, 66, 0, 0, 28, 0,
29, 0, 0, 0, 0, 15, 0, 15, 15, 15,
15, 15, 0, 0, 0, 0, 15, 15, 15, 15,
0, 0, 0, 15, 0, 15, 15, 15, 15, 15,
15, 12, 12, 12, 12, 0, 12, 12, 12, 0,
0, 6, 12, 12, 12, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 12, 0, 12, 12, 12,
12, 12, 0, 0, 0, 0, 12, 12, 12, 12,
0, 0, 0, 12, 0, 12, 12, 12, 12, 12,
12, 6, 0, 0, 6, 0, 6, 7, 7, 7,
7, 7, 7, 7, 7, 0, 0, 5, 7, 7,
7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 7, 0, 7, 7, 7, 7, 7, 0, 0,
0, 0, 7, 7, 7, 7, 0, 0, 0, 7,
0, 7, 7, 7, 7, 7, 7, 5, 0, 0,
5, 0, 5, 0, 0, 0, 0, 2, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 2, 0, 0,
2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 12, 13,
5, 178, 179, 14, 15, 16, 0, 0, 0, 0,
0, 183, 184, 185, 186, 187, 17, 0, 18, 19,
20, 0, 22, 189, 0, 0, 0, 23, 24, 25,
26, 0, 0, 0, 27, 0, 0, 31, 32, 33,
34, 35, 0, 0, 0, 0, 0, 0, 0, 0,
2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 6, 6,
6, 0, 0, 0, 6, 6, 0, 0, 0, 6,
6, 6, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 6, 0, 6, 6, 6, 6, 6, 0,
0, 0, 0, 6, 6, 6, 6, 0, 0, 0,
6, 0, 6, 6, 6, 6, 6, 6, 0, 0,
0, 0, 0, 0, 5, 5, 5, 0, 0, 0,
5, 5, 0, 0, 0, 5, 5, 5, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 5, 0,
5, 5, 5, 5, 5, 0, 0, 0, 0, 5,
5, 5, 5, 0, 0, 0, 5, 0, 5, 5,
5, 5, 5, 5, 2, 2, 2, 0, 0, 0,
2, 2, 0, 0, 0, 2, 2, 2, 60, 0,
0, 0, 0, 0, 0, 0, 0, 0, 2, 0,
2, 2, 2, 2, 2, 0, 0, 0, 0, 2,
2, 2, 2, 0, 0, 0, 2, 0, 2, 2,
2, 2, 2, 2, 0, 60, 0, 0, 60, 60,
60, 60, 60, 60, 0, 60, 0, 0, 0, 0,
0, 0, 0, 56, 0, 0, 60, 60, 60, 0,
60, 60, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
56, 60, 60, 56, 56, 56, 56, 56, 56, 0,
56, 58, 0, 0, 0, 0, 0, 0, 0, 0,
60, 56, 56, 0, 0, 56, 56, 0, 0, 0,
0, 60, 60, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 58, 0,
0, 0, 58, 58, 0, 58, 56, 56, 58, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 58,
58, 58, 0, 58, 58, 56, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 56, 56, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 58, 58, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 58, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 58, 58, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 60, 60, 60, 60, 60,
60, 60, 60, 60, 0, 0, 60, 60, 60, 0,
0, 0, 0, 60, 0, 0, 0, 0, 0, 60,
0, 60, 60, 60, 60, 60, 0, 60, 60, 60,
60, 0, 60, 60, 60, 60, 0, 60, 0, 60,
60, 60, 0, 0, 0, 0, 0, 0, 0, 0,
56, 56, 56, 56, 56, 56, 56, 56, 56, 0,
0, 56, 56, 56, 0, 0, 0, 0, 56, 0,
0, 0, 0, 0, 56, 0, 56, 56, 56, 56,
56, 29, 56, 56, 56, 56, 0, 56, 56, 56,
56, 0, 56, 0, 56, 56, 56, 0, 58, 58,
58, 58, 58, 58, 0, 0, 58, 0, 0, 0,
0, 0, 0, 0, 0, 0, 58, 0, 29, 0,
0, 0, 29, 29, 0, 29, 25, 58, 29, 0,
58, 58, 58, 58, 58, 58, 58, 58, 58, 29,
29, 29, 58, 29, 29, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 25, 0, 0, 0, 25, 25, 0,
25, 27, 0, 25, 29, 29, 0, 0, 0, 0,
0, 0, 0, 0, 25, 25, 25, 0, 25, 25,
0, 0, 0, 29, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 29, 29, 0, 0, 27, 0,
0, 0, 27, 27, 0, 27, 0, 0, 27, 25,
25, 0, 0, 0, 0, 0, 0, 0, 0, 27,
27, 27, 0, 27, 27, 0, 0, 0, 25, 0,
26, 0, 0, 0, 0, 0, 0, 0, 0, 25,
25, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 27, 27, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 26, 0, 0,
0, 26, 26, 27, 26, 0, 0, 26, 0, 0,
0, 0, 0, 0, 27, 27, 0, 0, 26, 26,
26, 0, 26, 26, 0, 0, 0, 0, 0, 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, 0, 0, 29, 29,
29, 29, 29, 29, 0, 0, 29, 0, 0, 0,
0, 0, 26, 0, 0, 0, 29, 0, 0, 0,
0, 0, 0, 26, 26, 0, 0, 29, 0, 0,
29, 29, 29, 29, 29, 29, 29, 29, 29, 0,
0, 0, 29, 25, 25, 25, 25, 25, 25, 0,
66, 25, 0, 28, 157, 29, 0, 0, 0, 0,
0, 25, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 25, 86, 0, 25, 25, 25, 25, 25,
25, 25, 25, 25, 0, 0, 0, 25, 27, 27,
27, 27, 27, 27, 0, 0, 27, 0, 0, 0,
0, 0, 0, 0, 0, 0, 27, 0, 0, 59,
0, 0, 0, 0, 0, 0, 0, 27, 0, 0,
27, 27, 27, 27, 27, 27, 27, 27, 27, 0,
0, 0, 27, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 59, 0, 0, 0,
59, 59, 0, 59, 0, 0, 59, 26, 26, 26,
26, 26, 26, 0, 0, 26, 0, 59, 59, 59,
0, 59, 59, 0, 0, 26, 92, 0, 0, 0,
0, 0, 0, 0, 0, 0, 26, 0, 0, 26,
26, 26, 26, 26, 26, 26, 26, 26, 0, 0,
0, 26, 59, 59, 0, 0, 0, 0, 0, 0,
0, 0, 0, 92, 0, 0, 0, 92, 92, 0,
92, 59, 0, 92, 20, 0, 0, 0, 0, 0,
0, 0, 59, 59, 92, 92, 92, 0, 92, 92,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 20, 0, 0, 0, 20, 20, 0, 20, 92,
92, 20, 0, 12, 13, 0, 0, 0, 14, 15,
16, 0, 20, 20, 20, 0, 20, 0, 92, 0,
0, 17, 0, 18, 19, 20, 35, 22, 0, 92,
92, 0, 23, 24, 25, 26, 0, 0, 0, 27,
0, 0, 31, 32, 33, 34, 35, 20, 20, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 35, 0, 0, 20, 35, 35, 0,
35, 0, 0, 35, 0, 0, 0, 20, 20, 0,
0, 0, 0, 0, 35, 35, 35, 0, 35, 0,
0, 0, 0, 0, 0, 0, 59, 59, 59, 59,
59, 59, 0, 0, 59, 0, 0, 0, 0, 0,
0, 0, 0, 0, 59, 93, 0, 0, 0, 35,
35, 0, 0, 0, 0, 59, 0, 0, 59, 59,
59, 59, 59, 59, 59, 59, 59, 0, 35, 0,
59, 0, 0, 0, 0, 0, 0, 0, 0, 35,
35, 0, 93, 0, 0, 0, 93, 93, 0, 93,
0, 0, 93, 92, 92, 92, 92, 92, 92, 0,
0, 92, 0, 93, 93, 93, 0, 93, 0, 0,
0, 92, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 92, 0, 0, 92, 92, 92, 0, 0,
0, 0, 92, 92, 0, 0, 0, 92, 93, 93,
0, 20, 20, 20, 20, 20, 20, 94, 0, 20,
0, 0, 0, 0, 0, 0, 0, 93, 0, 20,
0, 0, 0, 0, 0, 0, 0, 0, 93, 93,
20, 0, 0, 20, 20, 20, 0, 0, 0, 0,
20, 20, 0, 0, 94, 20, 0, 0, 94, 94,
0, 94, 0, 0, 94, 0, 0, 0, 0, 0,
0, 0, 90, 0, 0, 94, 94, 94, 0, 94,
0, 0, 0, 35, 35, 35, 35, 35, 35, 0,
0, 35, 0, 0, 0, 0, 0, 0, 0, 0,
0, 35, 0, 0, 0, 0, 0, 0, 0, 90,
94, 94, 35, 90, 90, 35, 35, 35, 0, 90,
16, 0, 35, 35, 0, 0, 0, 35, 0, 94,
90, 90, 90, 0, 90, 0, 0, 0, 0, 0,
94, 94, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 16, 0, 0,
0, 16, 16, 0, 16, 90, 90, 16, 0, 0,
0, 0, 93, 93, 93, 93, 93, 93, 16, 16,
93, 0, 0, 0, 90, 0, 0, 0, 0, 0,
93, 0, 0, 0, 0, 90, 90, 0, 0, 0,
0, 93, 0, 0, 93, 93, 93, 0, 0, 0,
0, 93, 93, 16, 16, 0, 93, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 16, 16, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 94, 94, 94, 94, 94, 94,
0, 0, 94, 0, 0, 0, 0, 0, 0, 0,
0, 0, 94, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 94, 0, 0, 94, 94, 94, 0,
0, 0, 0, 94, 94, 0, 0, 0, 94, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 90,
90, 90, 90, 90, 90, 0, 0, 90, 0, 0,
0, 0, 0, 0, 0, 0, 0, 90, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 90, 0,
0, 90, 90, 90, 0, 0, 0, 0, 90, 90,
0, 43, 0, 90, 0, 0, 0, 16, 16, 16,
16, 16, 16, 0, 0, 16, 0, 0, 0, 0,
0, 0, 0, 0, 43, 16, 0, 0, 0, 0,
0, 43, 0, 0, 0, 0, 16, 0, 0, 16,
16, 16, 0, 105, 0, 0, 110, 105, 105, 113,
114, 16, 117, 119, 120, 0, 105, 105, 124, 125,
43, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 135, 0, 0, 43,
139, 141, 142, 143, 144, 0, 107, 108, 0, 0,
0, 0, 0, 0, 43, 0, 0, 155, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 165,
0, 0, 0, 0, 0, 105, 0, 134, 0, 136,
137, 0, 0, 0, 0, 0, 0, 0, 0, 0,
43, 43, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 155, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
209, 210, 211, 212, 214, 0, 0, 0, 0, 216,
217, 0, 105, 105, 0, 0, 0, 224, 0, 0,
0, 225, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 236, 204, 205, 237, 0, 0, 238, 239,
0, 0, 0, 0, 0, 0, 0, 0, 57, 0,
0, 0, 0, 218, 0, 43, 43, 264, 0, 68,
68, 0, 71, 72, 226, 68, 228, 0, 229, 0,
0, 0, 0, 0, 68, 0, 276, 0, 277, 0,
278, 0, 279, 0, 280, 0, 0, 0, 0, 282,
0, 253, 0, 0, 283, 284, 66, 0, 0, 28,
0, 29, 105, 0, 0, 0, 270, 271, 272, 273,
274, 0, 0, 0, 0, 192, 0, 0, 0, 0,
0, 0, 43, 0, 68, 68, 68, 68, 68, 68,
0, 0, 0, 0, 0, 0, 68, 0, 0, 43,
0, 68, 0, 0, 68, 68, 0, 0, 68, 114,
68, 68, 114, 0, 114, 68, 68, 298, 0, 0,
0, 300, 301, 302, 0, 0, 68, 307, 114, 0,
68, 0, 68, 68, 68, 68, 0, 0, 0, 190,
0, 0, 0, 202, 0, 0, 68, 0, 0, 0,
0, 0, 320, 321, 0, 0, 68, 113, 325, 0,
113, 0, 113, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 113, 0, 0, 0,
0, 0, 0, 0, 68, 0, 0, 0, 0, 0,
0, 0, 114, 0, 114, 0, 0, 0, 0, 0,
68, 68, 68, 68, 0, 68, 0, 68, 68, 0,
0, 0, 0, 0, 0, 68, 68, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 68, 68, 68,
68, 107, 0, 0, 107, 0, 107, 0, 0, 0,
113, 0, 113, 0, 0, 0, 0, 0, 0, 0,
107, 0, 0, 0, 0, 68, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 68, 68, 68,
68, 68, 0, 68, 68, 68, 177, 126, 127, 12,
13, 0, 178, 179, 14, 15, 16, 180, 0, 181,
182, 0, 183, 184, 185, 186, 187, 17, 188, 18,
19, 20, 0, 22, 189, 0, 0, 0, 23, 24,
25, 26, 0, 0, 107, 27, 107, 0, 31, 32,
33, 34, 35, 0, 0, 0, 0, 0, 0, 114,
0, 0, 114, 114, 0, 114, 114, 114, 114, 114,
114, 114, 114, 114, 0, 114, 114, 114, 114, 114,
114, 114, 114, 114, 114, 0, 114, 114, 0, 0,
0, 114, 114, 114, 114, 0, 0, 0, 114, 0,
0, 114, 114, 114, 114, 114, 0, 113, 0, 0,
113, 113, 0, 113, 113, 113, 113, 113, 113, 113,
113, 113, 0, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 0, 113, 113, 0, 0, 0, 113,
113, 113, 113, 0, 0, 0, 113, 0, 0, 113,
113, 113, 113, 113, 108, 0, 0, 108, 0, 108,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 108, 0, 0, 0, 0, 0, 0,
0, 107, 0, 0, 107, 107, 0, 107, 107, 107,
107, 107, 107, 107, 107, 107, 0, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 0, 107, 107,
0, 0, 0, 107, 107, 107, 107, 0, 0, 0,
107, 0, 0, 107, 107, 107, 107, 107, 109, 0,
0, 109, 0, 109, 0, 0, 0, 108, 0, 108,
0, 0, 0, 0, 0, 0, 0, 109, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 106, 0, 0, 106, 0,
106, 0, 0, 0, 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, 109, 0, 109, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 112, 0, 0,
112, 0, 112, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 112, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 106, 0,
106, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 108, 0, 0, 108, 108, 0,
108, 108, 108, 108, 108, 108, 108, 108, 108, 0,
108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
0, 108, 108, 0, 0, 0, 108, 108, 108, 108,
112, 0, 112, 108, 0, 0, 108, 108, 108, 108,
108, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
66, 243, 0, 28, 244, 29, 0, 0, 109, 0,
0, 109, 109, 0, 109, 109, 109, 109, 109, 109,
109, 109, 109, 86, 109, 109, 109, 109, 109, 109,
109, 109, 109, 109, 0, 109, 109, 0, 0, 0,
109, 109, 109, 109, 0, 0, 0, 109, 0, 0,
109, 109, 109, 109, 109, 106, 0, 0, 106, 106,
0, 106, 106, 106, 106, 106, 106, 106, 106, 106,
0, 106, 106, 106, 106, 106, 106, 106, 106, 106,
106, 0, 106, 106, 0, 0, 0, 106, 106, 106,
106, 0, 0, 0, 106, 0, 0, 106, 106, 106,
106, 106, 0, 141, 0, 0, 141, 112, 141, 0,
112, 112, 0, 112, 112, 112, 112, 112, 112, 112,
112, 112, 141, 112, 112, 112, 112, 112, 112, 112,
112, 112, 112, 0, 112, 112, 0, 0, 0, 112,
112, 112, 112, 0, 0, 0, 112, 0, 0, 112,
112, 112, 112, 112, 66, 0, 0, 28, 0, 29,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 192, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 141, 0, 141, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 66, 0, 0, 28, 0, 29, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
192, 0, 0, 12, 13, 0, 0, 0, 14, 15,
16, 0, 0, 0, 0, 0, 0, 190, 0, 191,
0, 17, 0, 18, 19, 20, 0, 22, 0, 0,
0, 0, 23, 24, 25, 26, 0, 0, 0, 27,
0, 0, 31, 32, 33, 34, 35, 0, 0, 66,
0, 0, 28, 0, 29, 0, 0, 0, 0, 0,
0, 0, 0, 0, 190, 0, 206, 0, 192, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 141, 0, 0, 141, 141, 0, 141,
141, 141, 141, 141, 141, 141, 141, 141, 0, 141,
141, 141, 141, 141, 141, 141, 141, 141, 141, 0,
141, 141, 190, 0, 207, 141, 141, 141, 141, 0,
0, 0, 141, 0, 0, 141, 141, 141, 141, 141,
0, 0, 0, 0, 177, 0, 0, 12, 13, 0,
178, 179, 14, 15, 16, 180, 0, 181, 182, 0,
183, 184, 185, 186, 187, 17, 188, 18, 19, 20,
0, 22, 189, 0, 0, 0, 23, 24, 25, 26,
0, 0, 0, 27, 0, 0, 31, 32, 33, 34,
35, 177, 0, 0, 12, 13, 0, 178, 179, 14,
15, 16, 180, 0, 181, 182, 0, 183, 184, 185,
186, 187, 17, 188, 18, 19, 20, 0, 22, 189,
0, 0, 0, 23, 24, 25, 26, 0, 0, 0,
27, 0, 0, 31, 32, 33, 34, 35, 66, 0,
0, 28, 0, 29, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 192, 0, 177,
0, 0, 12, 13, 0, 178, 179, 14, 15, 16,
180, 0, 181, 182, 0, 183, 184, 185, 186, 187,
17, 188, 18, 19, 20, 0, 22, 189, 0, 0,
0, 23, 24, 25, 26, 0, 0, 0, 27, 0,
0, 31, 32, 33, 34, 35, 66, 0, 0, 28,
0, 29, 0, 0, 0, 0, 0, 0, 0, 0,
0, 190, 0, 235, 0, 192, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 66, 0, 0, 28, 0, 29, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 192, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 190,
0, 291, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 111, 0, 0, 111, 0, 111,
0, 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, 190, 0, 315, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 177, 0,
0, 12, 13, 0, 178, 179, 14, 15, 16, 180,
0, 181, 182, 0, 183, 184, 185, 186, 187, 17,
188, 18, 19, 20, 0, 22, 189, 111, 0, 111,
23, 24, 25, 26, 0, 0, 0, 27, 0, 0,
31, 32, 33, 34, 35, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 134,
0, 0, 134, 0, 134, 0, 177, 0, 0, 12,
13, 0, 178, 179, 14, 15, 16, 180, 134, 181,
182, 0, 183, 184, 185, 186, 187, 17, 188, 18,
19, 20, 0, 22, 189, 0, 0, 0, 23, 24,
25, 26, 0, 0, 0, 27, 0, 0, 31, 32,
33, 34, 35, 177, 0, 0, 12, 13, 0, 178,
179, 14, 15, 16, 180, 0, 181, 182, 0, 183,
184, 185, 186, 187, 17, 188, 18, 19, 20, 0,
22, 189, 134, 0, 134, 23, 24, 25, 26, 0,
0, 0, 27, 0, 0, 31, 32, 33, 34, 35,
37, 0, 0, 28, 111, 29, 0, 111, 111, 0,
111, 111, 111, 111, 111, 111, 0, 111, 111, 0,
111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
0, 111, 111, 0, 0, 0, 111, 111, 111, 111,
0, 0, 0, 111, 0, 0, 111, 111, 111, 111,
111, 66, 0, 0, 28, 157, 29, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 89, 0, 90, 86, 0, 0, 0, 0, 0,
0, 0, 0, 36, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 66, 0, 0, 28, 0,
29, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 89, 0, 90, 86, 134,
0, 0, 134, 134, 0, 134, 134, 134, 134, 134,
134, 0, 134, 134, 0, 134, 134, 134, 134, 134,
134, 134, 134, 134, 134, 0, 134, 134, 0, 0,
0, 134, 134, 134, 134, 0, 0, 0, 134, 0,
0, 134, 134, 134, 134, 134, 66, 245, 0, 28,
246, 29, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 86,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
66, 247, 0, 28, 248, 29, 0, 9, 10, 11,
0, 0, 0, 12, 13, 0, 0, 0, 14, 15,
16, 0, 0, 86, 0, 0, 0, 0, 0, 0,
0, 17, 0, 18, 19, 20, 21, 22, 0, 0,
0, 0, 23, 24, 25, 26, 0, 0, 0, 27,
0, 30, 31, 32, 33, 34, 35, 66, 249, 0,
28, 250, 29, 0, 12, 13, 0, 0, 0, 14,
15, 16, 0, 0, 0, 0, 0, 0, 0, 0,
86, 0, 17, 0, 18, 19, 20, 0, 22, 0,
0, 0, 0, 23, 24, 25, 26, 87, 88, 0,
27, 0, 0, 31, 32, 33, 34, 35, 12, 13,
0, 0, 0, 14, 15, 16, 0, 0, 0, 0,
66, 254, 0, 28, 255, 29, 17, 0, 18, 19,
20, 0, 22, 0, 0, 0, 0, 23, 24, 25,
26, 87, 88, 86, 27, 0, 0, 31, 32, 33,
34, 35, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 37, 0,
0, 28, 0, 29, 0, 0, 0, 0, 0, 12,
13, 0, 0, 0, 14, 15, 16, 303, 0, 0,
0, 0, 0, 0, 0, 0, 0, 17, 0, 18,
19, 20, 0, 22, 0, 0, 0, 0, 23, 24,
25, 26, 0, 0, 0, 27, 0, 0, 31, 32,
33, 34, 35, 12, 13, 0, 0, 0, 14, 15,
16, 37, 0, 0, 28, 0, 29, 0, 0, 0,
0, 17, 0, 18, 19, 20, 0, 22, 0, 0,
0, 0, 23, 24, 25, 26, 0, 0, 0, 27,
0, 0, 31, 32, 33, 34, 35, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 154,
12, 13, 28, 0, 29, 14, 15, 16, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 17, 0,
18, 19, 20, 0, 22, 0, 0, 0, 0, 23,
24, 25, 26, 0, 0, 0, 27, 0, 0, 31,
32, 33, 34, 35, 66, 0, 0, 28, 164, 29,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 12, 13, 0, 0, 86, 14, 15,
16, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 17, 0, 18, 19, 20, 0, 22, 0, 0,
0, 0, 23, 24, 25, 26, 0, 0, 0, 27,
0, 0, 31, 32, 33, 34, 35, 11, 0, 0,
0, 12, 13, 0, 0, 0, 14, 15, 16, 0,
0, 66, 0, 0, 28, 167, 29, 0, 0, 17,
0, 18, 19, 20, 0, 22, 0, 0, 0, 0,
23, 24, 25, 26, 86, 0, 0, 27, 0, 30,
31, 32, 33, 34, 35, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 66, 0,
11, 28, 169, 29, 12, 13, 0, 0, 0, 14,
15, 16, 0, 0, 0, 0, 0, 0, 0, 0,
0, 86, 17, 0, 18, 19, 20, 0, 22, 0,
0, 0, 0, 23, 24, 25, 26, 0, 0, 0,
27, 0, 30, 31, 32, 33, 34, 35, 11, 0,
0, 0, 12, 13, 0, 0, 0, 14, 15, 16,
0, 0, 66, 0, 0, 28, 170, 29, 0, 0,
17, 0, 18, 19, 20, 0, 22, 0, 0, 0,
0, 23, 24, 25, 26, 86, 0, 0, 27, 0,
30, 31, 32, 33, 34, 35, 0, 12, 13, 0,
0, 0, 14, 15, 16, 0, 0, 66, 0, 0,
28, 175, 29, 0, 0, 17, 0, 18, 19, 20,
0, 22, 0, 0, 0, 0, 23, 24, 25, 26,
86, 0, 0, 27, 0, 0, 31, 32, 33, 34,
35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 66, 0, 0, 28, 176, 29, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 12, 13, 86, 0, 0, 14,
15, 16, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 17, 0, 18, 19, 20, 0, 22, 0,
0, 0, 0, 23, 24, 25, 26, 0, 0, 0,
27, 0, 0, 31, 32, 33, 34, 35, 0, 0,
0, 12, 13, 0, 0, 0, 14, 15, 16, 0,
0, 66, 0, 0, 28, 0, 29, 0, 0, 17,
0, 18, 19, 20, 0, 22, 0, 0, 0, 198,
23, 24, 25, 26, 86, 0, 0, 27, 0, 0,
31, 32, 33, 34, 35, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 66, 0, 0, 28, 0,
29, 0, 0, 0, 0, 12, 13, 0, 0, 0,
14, 15, 16, 201, 0, 0, 0, 0, 86, 0,
0, 0, 0, 17, 0, 18, 19, 20, 0, 22,
0, 0, 0, 0, 23, 24, 25, 26, 0, 0,
0, 27, 0, 0, 31, 32, 33, 34, 35, 0,
12, 13, 0, 0, 0, 14, 15, 16, 0, 0,
66, 252, 0, 28, 0, 29, 0, 0, 17, 0,
18, 19, 20, 0, 22, 0, 0, 0, 0, 23,
24, 25, 26, 86, 0, 0, 27, 0, 0, 31,
32, 33, 34, 35, 0, 0, 12, 13, 0, 0,
0, 14, 15, 16, 0, 0, 66, 256, 0, 28,
0, 29, 0, 0, 17, 0, 18, 19, 20, 0,
22, 0, 0, 0, 0, 23, 24, 25, 26, 86,
0, 0, 27, 0, 0, 31, 32, 33, 34, 35,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
66, 287, 0, 28, 0, 29, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 86, 12, 13, 0, 0, 0, 14,
15, 16, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 17, 0, 18, 19, 20, 0, 22, 0,
0, 0, 0, 23, 24, 25, 26, 0, 0, 0,
27, 0, 0, 31, 32, 33, 34, 35, 12, 13,
0, 0, 0, 14, 15, 16, 0, 0, 66, 293,
0, 28, 0, 29, 0, 0, 17, 0, 18, 19,
20, 0, 22, 0, 0, 0, 0, 23, 24, 25,
26, 86, 0, 0, 27, 0, 0, 31, 32, 33,
34, 35, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 66, 294, 0, 28, 0, 29, 0, 0,
0, 0, 0, 12, 13, 0, 0, 0, 14, 15,
16, 0, 0, 0, 0, 86, 0, 0, 0, 0,
0, 17, 0, 18, 19, 20, 0, 22, 0, 0,
0, 0, 23, 24, 25, 26, 0, 0, 0, 27,
0, 0, 31, 32, 33, 34, 35, 0, 0, 12,
13, 0, 0, 0, 14, 15, 16, 0, 0, 66,
295, 0, 28, 0, 29, 0, 0, 17, 0, 18,
19, 20, 0, 22, 0, 0, 0, 0, 23, 24,
25, 26, 86, 0, 0, 27, 0, 0, 31, 32,
33, 34, 35, 12, 13, 0, 0, 0, 14, 15,
16, 0, 0, 66, 296, 0, 28, 0, 29, 0,
0, 17, 0, 18, 19, 20, 0, 22, 0, 0,
0, 0, 23, 24, 25, 26, 86, 0, 0, 27,
0, 0, 31, 32, 33, 34, 35, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 66, 297, 0,
28, 0, 29, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
86, 12, 13, 0, 0, 0, 14, 15, 16, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 17,
0, 18, 19, 20, 0, 22, 0, 0, 0, 0,
23, 24, 25, 26, 0, 0, 0, 27, 0, 0,
31, 32, 33, 34, 35, 12, 13, 0, 0, 0,
14, 15, 16, 0, 0, 66, 299, 0, 28, 0,
29, 0, 0, 17, 0, 18, 19, 20, 0, 22,
0, 0, 0, 0, 23, 24, 25, 26, 86, 0,
0, 27, 0, 0, 31, 32, 33, 34, 35, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 66,
109, 0, 28, 0, 29, 0, 0, 0, 0, 0,
0, 0, 12, 13, 0, 0, 0, 14, 15, 16,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
17, 0, 18, 19, 20, 0, 22, 0, 0, 0,
0, 23, 24, 25, 26, 0, 0, 0, 27, 0,
0, 31, 32, 33, 34, 35, 12, 13, 0, 0,
0, 14, 15, 16, 66, 0, 0, 28, 0, 29,
0, 0, 0, 0, 17, 0, 18, 19, 20, 0,
22, 0, 0, 0, 0, 23, 24, 25, 26, 0,
0, 0, 27, 0, 0, 31, 32, 33, 34, 35,
12, 13, 0, 0, 0, 14, 15, 16, 0, 0,
0, 0, 66, 0, 0, 28, 0, 29, 17, 0,
18, 19, 20, 0, 22, 0, 0, 0, 0, 23,
24, 25, 26, 0, 0, 0, 27, 0, 0, 31,
32, 33, 34, 35, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
66, 0, 0, 28, 0, 29, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 12, 13,
0, 0, 0, 14, 15, 16, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 17, 0, 18, 19,
20, 0, 22, 0, 0, 0, 0, 23, 24, 25,
26, 0, 0, 0, 27, 0, 0, 31, 32, 33,
34, 35, 12, 13, 0, 0, 0, 14, 15, 16,
66, 0, 0, 28, 0, 29, 0, 0, 0, 0,
17, 0, 18, 19, 20, 0, 22, 0, 0, 0,
0, 23, 24, 25, 26, 0, 0, 0, 27, 0,
0, 31, 32, 33, 34, 35, 0, 0, 0, 0,
0, 0, 0, 0, 66, 0, 0, 28, 0, 29,
0, 0, 0, 116, 0, 0, 0, 12, 13, 0,
0, 0, 14, 15, 16, 0, 0, 86, 0, 0,
0, 0, 0, 0, 0, 17, 0, 18, 19, 20,
0, 22, 0, 0, 0, 0, 23, 24, 25, 26,
0, 0, 0, 27, 0, 0, 31, 32, 33, 34,
35, 118, 0, 0, 66, 12, 13, 28, 0, 29,
14, 15, 16, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 17, 0, 18, 19, 20, 0, 22,
0, 0, 0, 0, 23, 24, 25, 26, 0, 0,
0, 27, 0, 0, 31, 32, 33, 34, 35, 140,
0, 0, 66, 12, 13, 28, 0, 29, 14, 15,
16, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 17, 0, 18, 19, 20, 0, 22, 0, 0,
0, 0, 23, 24, 25, 26, 0, 0, 0, 27,
0, 0, 31, 32, 33, 34, 35, 103, 0, 0,
28, 0, 29, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 213,
0, 0, 0, 12, 13, 0, 0, 0, 14, 15,
16, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 17, 0, 18, 19, 20, 0, 22, 0, 0,
0, 0, 23, 24, 25, 26, 0, 0, 0, 27,
0, 0, 31, 32, 33, 34, 35, 12, 13, 0,
0, 0, 14, 15, 16, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 17, 0, 18, 19, 20,
0, 22, 0, 0, 0, 0, 23, 24, 25, 26,
0, 0, 0, 27, 0, 0, 31, 32, 33, 34,
35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 275, 0, 0, 0, 12, 13, 0,
0, 0, 14, 15, 16, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 17, 0, 18, 19, 20,
0, 22, 0, 0, 0, 0, 23, 24, 25, 26,
0, 0, 0, 27, 0, 0, 31, 32, 33, 34,
35, 0, 0, 0, 0, 12, 13, 0, 0, 0,
14, 15, 16, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 17, 0, 18, 19, 20, 0, 22,
0, 0, 0, 0, 23, 24, 25, 26, 0, 0,
0, 27, 0, 0, 31, 32, 33, 34, 35, 0,
12, 13, 67, 69, 0, 14, 15, 16, 73, 0,
0, 0, 0, 0, 0, 0, 0, 91, 17, 0,
18, 19, 20, 0, 22, 0, 0, 0, 0, 23,
24, 25, 26, 0, 0, 0, 27, 0, 0, 31,
32, 33, 34, 35, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 146, 147, 148,
149, 150, 151, 0, 0, 0, 0, 0, 0, 91,
0, 0, 0, 0, 91, 0, 0, 91, 91, 0,
0, 91, 0, 91, 91, 0, 0, 0, 91, 91,
0, 0, 0, 0, 0, 0, 0, 0, 0, 91,
0, 0, 0, 91, 0, 91, 91, 91, 91, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 91,
0, 0, 0, 0, 0, 0, 0, 0, 0, 91,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 91, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 91, 91, 91, 91, 0, 91, 0,
91, 91, 0, 0, 0, 0, 0, 0, 91, 91,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
91, 91, 91, 91, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 91, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
91, 91, 91, 91, 91, 0, 91, 91, 91,
};
short yycheck[] = { 41,
0, 41, 63, 41, 37, 41, 59, 59, 63, 42,
43, 63, 45, 63, 47, 59, 62, 41, 63, 107,
108, 63, 40, 63, 37, 63, 123, 63, 37, 7,
44, 223, 103, 37, 302, 303, 94, 37, 303, 123,
40, 41, 42, 43, 44, 45, 134, 47, 313, 63,
261, 262, 30, 41, 112, 0, 289, 123, 58, 59,
60, 94, 62, 63, 53, 54, 40, 40, 287, 302,
303, 59, 41, 62, 63, 44, 91, 41, 124, 112,
44, 37, 40, 154, 123, 40, 42, 40, 60, 40,
40, 47, 37, 93, 94, 261, 41, 42, 43, 44,
45, 226, 47, 40, 40, 40, 60, 85, 40, 112,
0, 303, 112, 58, 59, 60, 293, 62, 63, 41,
41, 313, 100, 123, 124, 41, 293, 304, 305, 306,
281, 44, 121, 41, 41, 44, 93, 41, 94, 44,
228, 154, 41, 41, 293, 154, 40, 37, 93, 94,
154, 41, 42, 43, 44, 45, 112, 47, 136, 137,
40, 59, 293, 41, 261, 262, 40, 112, 58, 59,
60, 291, 62, 63, 41, 300, 301, 302, 123, 124,
91, 59, 59, 273, 41, 40, 272, 93, 206, 178,
179, 41, 41, 0, 41, 320, 321, 93, 59, 59,
325, 41, -1, 93, 94, -1, -1, 260, 261, 262,
298, -1, 220, 41, -1, -1, 260, 261, 262, 265,
-1, -1, 112, 40, -1, -1, 43, -1, 45, 290,
291, 59, -1, 123, 124, 290, 291, -1, 290, 291,
290, 291, 275, 221, 222, 290, 291, -1, 290, 291,
290, 291, 290, 291, 290, 291, -1, 257, 258, 259,
260, 261, 262, 263, 264, 265, 290, 291, 268, 269,
270, -1, 260, 261, 262, 275, 290, 291, -1, 268,
-1, 281, 41, 283, 284, 285, 286, 287, -1, 289,
290, 291, 292, 293, 294, 295, 296, 297, -1, 299,
59, 301, 302, 303, 304, 305, 306, -1, -1, -1,
288, -1, 257, 258, 259, 260, 261, 262, 263, 264,
265, 293, -1, 268, 269, 270, -1, 305, -1, -1,
275, -1, 304, 305, 306, -1, 281, 41, 283, 284,
285, 286, 287, -1, 289, 290, 291, 292, 293, 294,
295, 296, 297, -1, 299, 59, 301, 302, 303, 304,
305, 306, 260, 261, 262, -1, -1, 257, 258, 259,
260, 261, 262, 263, 264, 265, -1, -1, 268, 269,
270, 0, 260, 261, 262, 275, -1, -1, -1, -1,
41, 281, -1, 283, 284, 285, 286, 287, -1, 289,
290, 291, 292, 293, 294, 295, 296, 297, 59, 299,
-1, 301, 302, 303, 304, 305, 306, -1, 37, -1,
-1, 40, 41, 42, 43, 44, 45, -1, 47, -1,
-1, -1, 260, 261, 262, -1, 0, -1, 41, 58,
59, -1, -1, 62, 63, -1, 263, 264, -1, -1,
-1, 268, 269, 270, -1, -1, 59, -1, -1, -1,
-1, -1, -1, -1, 281, -1, 283, 284, 285, -1,
287, -1, -1, 37, 93, 94, 40, 41, 42, 43,
44, 45, 299, 47, -1, 302, 303, 304, 305, 306,
-1, 0, -1, 112, 58, 59, 60, -1, 62, 63,
-1, 260, 261, 262, 123, 124, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 41, -1, -1, -1, 37, 93,
94, 40, 41, 42, 43, -1, 45, -1, 47, -1,
-1, -1, 59, -1, 41, -1, -1, -1, -1, 58,
59, 60, -1, 62, 63, -1, 260, 261, 262, 123,
124, -1, 59, -1, -1, 62, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 93, 94, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 112, -1, -1, -1, -1, -1, 260,
261, 262, -1, -1, 123, 124, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 124, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 257, 258,
259, 260, 261, 262, 263, 264, 265, -1, -1, 268,
269, 270, -1, -1, -1, -1, 275, 260, 261, 262,
-1, -1, 281, -1, 283, 284, 285, 286, 287, -1,
289, 290, 291, 292, 293, 294, 295, 296, 297, -1,
299, -1, 301, 302, 303, 304, 305, 306, -1, -1,
-1, -1, -1, 257, 258, 259, 260, 261, 262, 263,
264, 265, -1, -1, 268, 269, 270, -1, -1, -1,
-1, 275, -1, -1, -1, -1, -1, 281, -1, 283,
284, 285, 286, 287, -1, 289, 290, 291, 292, 293,
294, 295, 296, 297, -1, 299, -1, 301, 302, 303,
304, 305, 306, 260, 261, 262, -1, -1, 257, 258,
259, 260, 261, 262, 263, 264, 265, -1, -1, 268,
269, 270, 0, 260, 261, 262, 275, -1, 265, -1,
-1, -1, 281, -1, 283, 284, 285, 286, 287, -1,
289, 290, 291, 292, 293, 294, 295, 296, 297, -1,
299, -1, 301, 302, 303, 304, 305, 306, -1, 37,
-1, -1, 40, 41, 42, 43, 44, 45, -1, 47,
-1, -1, -1, -1, -1, -1, -1, 0, -1, -1,
58, 59, 60, -1, 62, 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, 37, 93, 94, 40, 41, 42,
43, 44, 45, -1, 47, -1, -1, -1, -1, -1,
-1, 0, -1, -1, 112, 58, 59, 60, -1, 62,
63, -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, -1, -1, 37, -1,
93, 40, 41, 42, 43, 44, 45, -1, 47, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 58,
59, 60, -1, 62, 63, -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, -1, -1, -1, 93, 94, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 112, -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, -1, -1, -1, -1, 257,
258, 259, 260, 261, 262, 263, 264, 265, -1, -1,
268, 269, 270, -1, -1, -1, -1, 275, -1, -1,
-1, -1, -1, 281, -1, 283, 284, 285, 286, 287,
-1, 289, 290, -1, 292, 293, 294, 295, 296, 297,
-1, 299, -1, 301, 302, 303, 304, 305, 306, -1,
-1, -1, -1, -1, 257, 258, 259, 260, 261, 262,
263, 264, 265, -1, -1, 268, 269, 270, -1, -1,
-1, -1, 275, -1, 40, 41, -1, 43, 281, 45,
283, 284, 285, 286, 287, -1, 289, 290, 291, 292,
293, 294, 295, 296, 297, -1, 299, 63, 301, 302,
303, 304, 305, 306, -1, -1, -1, -1, 257, 258,
259, 260, 261, 262, 263, 264, 265, -1, -1, 268,
269, 270, 0, -1, -1, -1, 275, -1, -1, -1,
-1, -1, 281, -1, 283, 284, 285, 286, 287, -1,
289, 290, 291, 292, 293, 294, 295, 296, 297, -1,
299, -1, 301, -1, -1, 304, 305, 306, -1, 37,
-1, -1, 40, 41, 42, 43, 44, 45, -1, 47,
-1, -1, -1, -1, -1, -1, 0, -1, -1, -1,
58, 59, 60, -1, 62, 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, 37, -1, 93, 40, 41, 42, 43,
44, 45, -1, 47, -1, -1, -1, -1, -1, -1,
0, -1, -1, -1, 58, 59, 60, -1, 62, 63,
-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, -1, 37, -1, 93,
40, 41, 42, 43, 44, 45, -1, 47, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 58, 59,
60, -1, 62, 63, -1, -1, -1, 263, 264, 123,
124, -1, 268, 269, 270, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 281, -1, 283, 284, 285,
-1, 287, -1, 93, -1, -1, 292, 293, 294, 295,
-1, -1, -1, 299, -1, -1, 302, 303, 304, 305,
306, -1, -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, -1, -1, -1, -1, -1, 257,
258, 259, 260, 261, 262, 263, 264, 265, -1, -1,
268, 269, 270, -1, -1, -1, -1, 275, -1, -1,
-1, -1, -1, 281, -1, 283, 284, 285, 286, 287,
-1, 289, 290, 291, 292, 293, 294, 295, 296, 297,
-1, 299, -1, 301, 302, 303, 304, 305, 306, -1,
-1, -1, -1, 257, 258, 259, 260, 261, 262, 263,
264, 265, -1, -1, 268, 269, 270, -1, -1, -1,
-1, 275, -1, 40, -1, -1, 43, 281, 45, 283,
284, 285, 286, 287, -1, 289, 290, 291, 292, 293,
294, 295, 296, 297, -1, 299, -1, 301, 302, 303,
304, 305, 306, -1, -1, -1, -1, 257, 258, 259,
260, 261, 262, 263, 264, 265, -1, -1, 268, 269,
270, 0, -1, -1, -1, 275, -1, -1, -1, -1,
-1, 281, -1, 283, 284, 285, 286, 287, -1, 289,
290, 291, 292, 293, 294, 295, 296, 297, -1, 299,
-1, 301, 302, 303, 304, 305, 306, -1, 37, -1,
-1, 40, 41, 42, 43, 44, 45, -1, 47, -1,
-1, -1, -1, -1, -1, 0, -1, -1, -1, 58,
59, 60, -1, 62, 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, 37, -1, 93, 40, 41, 42, 43, 44,
45, -1, 47, -1, -1, -1, -1, -1, -1, 0,
-1, -1, -1, 58, 59, 60, -1, 62, 63, -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, -1, 37, -1, 93, 40,
41, 42, 43, 44, 45, -1, 47, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 58, 59, 60,
-1, 62, 63, -1, 261, 262, 263, 264, 123, 124,
-1, 268, 269, 270, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 281, -1, 283, 284, 285, -1,
287, -1, 93, 94, -1, 292, 293, 294, 295, -1,
-1, -1, 299, -1, -1, 302, 303, 304, 305, 306,
-1, 112, -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, -1, -1, -1, -1, -1, 257, 258,
259, 260, 261, 262, 263, 264, 265, -1, -1, 268,
269, 270, -1, -1, -1, -1, 275, -1, -1, -1,
-1, -1, 281, -1, 283, 284, 285, 286, 287, -1,
289, 290, 291, 292, 293, 294, 295, 296, 297, -1,
299, -1, 301, 302, 303, 304, 305, 306, -1, -1,
-1, -1, 257, 258, 259, 260, 261, 262, 263, 264,
265, -1, -1, 268, 269, 270, -1, -1, -1, -1,
275, -1, -1, -1, -1, -1, 281, -1, 283, 284,
285, 286, 287, -1, 289, 290, 291, 292, 293, 294,
295, 296, 297, -1, 299, -1, 301, 302, 303, 304,
305, 306, -1, -1, -1, -1, 257, 258, 259, 260,
261, 262, 263, 264, 265, -1, -1, 268, 269, 270,
0, -1, -1, -1, 275, -1, -1, -1, -1, -1,
281, -1, 283, 284, 285, 286, 287, -1, -1, 290,
291, 292, 293, 294, 295, 296, 297, -1, 299, -1,
301, -1, -1, 304, 305, 306, -1, 37, -1, -1,
40, 41, 42, 43, 44, 45, -1, 47, -1, -1,
-1, -1, -1, -1, -1, 0, -1, -1, 58, 59,
60, -1, 62, -1, -1, -1, -1, -1, -1, -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, 94, 40, 41, -1, 43, 44,
45, -1, -1, -1, -1, -1, 0, -1, -1, -1,
-1, -1, 112, 58, 59, 60, -1, 62, 63, -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, -1, -1, 40, 41, 93, 43,
44, 45, -1, -1, -1, -1, 0, -1, -1, -1,
-1, -1, -1, -1, 58, 59, 60, -1, 62, 63,
-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, 40, 41, -1, 93,
44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 58, 59, 60, -1, 62, 63,
-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, 40, -1, 93,
43, -1, 45, -1, -1, -1, -1, 257, 258, 259,
260, 261, 262, 263, 264, 265, -1, -1, 268, 269,
270, -1, -1, -1, -1, 275, -1, -1, -1, 123,
124, 281, -1, 283, 284, 285, 286, 287, -1, 289,
-1, -1, 292, 293, 294, 295, 296, 297, -1, 299,
-1, 301, 302, 303, 304, 305, 306, -1, -1, -1,
-1, -1, 257, 258, 259, 260, 261, 262, 263, 264,
265, -1, -1, 268, 269, 270, -1, -1, -1, -1,
275, -1, -1, -1, -1, -1, 281, -1, 283, 284,
285, 286, 287, -1, 289, 290, 291, 292, 293, 294,
295, 296, 297, -1, 299, -1, 301, 302, 303, 304,
305, 306, -1, 257, 258, 259, 260, 261, 262, 263,
264, 265, -1, -1, 268, 269, 270, -1, -1, -1,
-1, 275, -1, -1, -1, -1, -1, 281, -1, 283,
284, 285, 286, 287, -1, 289, 290, 291, 292, 293,
294, 295, 296, 297, -1, 299, -1, 301, 302, 303,
304, 305, 306, 257, 258, 259, 260, 261, 262, 263,
264, 265, -1, 0, 268, 269, 270, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 281, -1, 283,
284, 285, 286, 287, -1, 289, 290, 291, 292, 293,
294, 295, 296, 297, -1, 299, -1, 301, 302, 303,
304, 305, 306, 40, 41, -1, 259, 44, 261, 262,
263, 264, -1, -1, 0, 268, 269, 270, -1, -1,
-1, 58, 59, 60, -1, 62, 63, -1, 281, -1,
283, 284, 285, -1, 287, -1, -1, -1, -1, 292,
293, 294, 295, -1, -1, -1, 299, -1, 301, 302,
303, 304, 305, 306, 40, -1, 93, 43, -1, 45,
-1, -1, -1, -1, 0, -1, -1, -1, -1, -1,
-1, -1, -1, 59, -1, -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, 40, -1, -1, 43, -1, 45,
-1, -1, -1, -1, 0, -1, -1, -1, -1, -1,
-1, -1, -1, 59, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 123, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 40, -1, -1, 43, -1, 45,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
0, -1, -1, 59, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -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,
40, -1, -1, 43, -1, 45, -1, -1, -1, -1,
257, 258, 259, 260, 261, 262, 263, 264, 265, 59,
-1, 268, 269, 270, -1, -1, -1, 123, -1, -1,
-1, -1, -1, -1, 281, -1, 283, 284, 285, 286,
287, -1, 289, 290, 291, 292, 293, 294, 295, 296,
297, -1, 299, -1, 301, 302, 303, 304, 305, 306,
-1, 257, 258, 259, 260, 261, 262, 263, 264, -1,
-1, -1, 268, 269, 270, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 281, -1, 283, 284, 285,
286, 287, -1, -1, -1, -1, 292, 293, 294, 295,
-1, -1, -1, 299, -1, 301, 302, 303, 304, 305,
306, 257, 258, 259, 260, 261, 262, 263, 264, -1,
-1, -1, 268, 269, 270, 40, -1, -1, 43, -1,
45, -1, -1, -1, -1, 281, -1, 283, 284, 285,
286, 287, -1, -1, -1, -1, 292, 293, 294, 295,
-1, -1, -1, 299, -1, 301, 302, 303, 304, 305,
306, 257, 258, 259, 260, -1, 262, 263, 264, -1,
-1, 0, 268, 269, 270, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 281, -1, 283, 284, 285,
286, 287, -1, -1, -1, -1, 292, 293, 294, 295,
-1, -1, -1, 299, -1, 301, 302, 303, 304, 305,
306, 40, -1, -1, 43, -1, 45, 257, 258, 259,
260, 261, 262, 263, 264, -1, -1, 0, 268, 269,
270, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 281, -1, 283, 284, 285, 286, 287, -1, -1,
-1, -1, 292, 293, 294, 295, -1, -1, -1, 299,
-1, 301, 302, 303, 304, 305, 306, 40, -1, -1,
43, -1, 45, -1, -1, -1, -1, 0, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -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, 40, -1, -1,
43, -1, 45, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 263, 264,
123, 266, 267, 268, 269, 270, -1, -1, -1, -1,
-1, 276, 277, 278, 279, 280, 281, -1, 283, 284,
285, -1, 287, 288, -1, -1, -1, 292, 293, 294,
295, -1, -1, -1, 299, -1, -1, 302, 303, 304,
305, 306, -1, -1, -1, -1, -1, -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, 257, 258,
259, -1, -1, -1, 263, 264, -1, -1, -1, 268,
269, 270, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 281, -1, 283, 284, 285, 286, 287, -1,
-1, -1, -1, 292, 293, 294, 295, -1, -1, -1,
299, -1, 301, 302, 303, 304, 305, 306, -1, -1,
-1, -1, -1, -1, 257, 258, 259, -1, -1, -1,
263, 264, -1, -1, -1, 268, 269, 270, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 281, -1,
283, 284, 285, 286, 287, -1, -1, -1, -1, 292,
293, 294, 295, -1, -1, -1, 299, -1, 301, 302,
303, 304, 305, 306, 257, 258, 259, -1, -1, -1,
263, 264, -1, -1, -1, 268, 269, 270, 0, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 281, -1,
283, 284, 285, 286, 287, -1, -1, -1, -1, 292,
293, 294, 295, -1, -1, -1, 299, -1, 301, 302,
303, 304, 305, 306, -1, 37, -1, -1, 40, 41,
42, 43, 44, 45, -1, 47, -1, -1, -1, -1,
-1, -1, -1, 0, -1, -1, 58, 59, 60, -1,
62, 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,
37, 93, 94, 40, 41, 42, 43, 44, 45, -1,
47, 0, -1, -1, -1, -1, -1, -1, -1, -1,
112, 58, 59, -1, -1, 62, 63, -1, -1, -1,
-1, 123, 124, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 37, -1,
-1, -1, 41, 42, -1, 44, 93, 94, 47, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 58,
59, 60, -1, 62, 63, 112, -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, 93, 94, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 112, -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, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 257, 258, 259, 260, 261,
262, 263, 264, 265, -1, -1, 268, 269, 270, -1,
-1, -1, -1, 275, -1, -1, -1, -1, -1, 281,
-1, 283, 284, 285, 286, 287, -1, 289, 290, 291,
292, -1, 294, 295, 296, 297, -1, 299, -1, 301,
302, 303, -1, -1, -1, -1, -1, -1, -1, -1,
257, 258, 259, 260, 261, 262, 263, 264, 265, -1,
-1, 268, 269, 270, -1, -1, -1, -1, 275, -1,
-1, -1, -1, -1, 281, -1, 283, 284, 285, 286,
287, 0, 289, 290, 291, 292, -1, 294, 295, 296,
297, -1, 299, -1, 301, 302, 303, -1, 257, 258,
259, 260, 261, 262, -1, -1, 265, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 275, -1, 37, -1,
-1, -1, 41, 42, -1, 44, 0, 286, 47, -1,
289, 290, 291, 292, 293, 294, 295, 296, 297, 58,
59, 60, 301, 62, 63, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 37, -1, -1, -1, 41, 42, -1,
44, 0, -1, 47, 93, 94, -1, -1, -1, -1,
-1, -1, -1, -1, 58, 59, 60, -1, 62, 63,
-1, -1, -1, 112, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 123, 124, -1, -1, 37, -1,
-1, -1, 41, 42, -1, 44, -1, -1, 47, 93,
94, -1, -1, -1, -1, -1, -1, -1, -1, 58,
59, 60, -1, 62, 63, -1, -1, -1, 112, -1,
0, -1, -1, -1, -1, -1, -1, -1, -1, 123,
124, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 93, 94, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 37, -1, -1,
-1, 41, 42, 112, 44, -1, -1, 47, -1, -1,
-1, -1, -1, -1, 123, 124, -1, -1, 58, 59,
60, -1, 62, 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, 94, -1, -1, -1, 257, 258,
259, 260, 261, 262, -1, -1, 265, -1, -1, -1,
-1, -1, 112, -1, -1, -1, 275, -1, -1, -1,
-1, -1, -1, 123, 124, -1, -1, 286, -1, -1,
289, 290, 291, 292, 293, 294, 295, 296, 297, -1,
-1, -1, 301, 257, 258, 259, 260, 261, 262, -1,
40, 265, -1, 43, 44, 45, -1, -1, -1, -1,
-1, 275, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 286, 63, -1, 289, 290, 291, 292, 293,
294, 295, 296, 297, -1, -1, -1, 301, 257, 258,
259, 260, 261, 262, -1, -1, 265, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 275, -1, -1, 0,
-1, -1, -1, -1, -1, -1, -1, 286, -1, -1,
289, 290, 291, 292, 293, 294, 295, 296, 297, -1,
-1, -1, 301, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 37, -1, -1, -1,
41, 42, -1, 44, -1, -1, 47, 257, 258, 259,
260, 261, 262, -1, -1, 265, -1, 58, 59, 60,
-1, 62, 63, -1, -1, 275, 0, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 286, -1, -1, 289,
290, 291, 292, 293, 294, 295, 296, 297, -1, -1,
-1, 301, 93, 94, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 37, -1, -1, -1, 41, 42, -1,
44, 112, -1, 47, 0, -1, -1, -1, -1, -1,
-1, -1, 123, 124, 58, 59, 60, -1, 62, 63,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 37, -1, -1, -1, 41, 42, -1, 44, 93,
94, 47, -1, 263, 264, -1, -1, -1, 268, 269,
270, -1, 58, 59, 60, -1, 62, -1, 112, -1,
-1, 281, -1, 283, 284, 285, 0, 287, -1, 123,
124, -1, 292, 293, 294, 295, -1, -1, -1, 299,
-1, -1, 302, 303, 304, 305, 306, 93, 94, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 37, -1, -1, 112, 41, 42, -1,
44, -1, -1, 47, -1, -1, -1, 123, 124, -1,
-1, -1, -1, -1, 58, 59, 60, -1, 62, -1,
-1, -1, -1, -1, -1, -1, 257, 258, 259, 260,
261, 262, -1, -1, 265, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 275, 0, -1, -1, -1, 93,
94, -1, -1, -1, -1, 286, -1, -1, 289, 290,
291, 292, 293, 294, 295, 296, 297, -1, 112, -1,
301, -1, -1, -1, -1, -1, -1, -1, -1, 123,
124, -1, 37, -1, -1, -1, 41, 42, -1, 44,
-1, -1, 47, 257, 258, 259, 260, 261, 262, -1,
-1, 265, -1, 58, 59, 60, -1, 62, -1, -1,
-1, 275, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 286, -1, -1, 289, 290, 291, -1, -1,
-1, -1, 296, 297, -1, -1, -1, 301, 93, 94,
-1, 257, 258, 259, 260, 261, 262, 0, -1, 265,
-1, -1, -1, -1, -1, -1, -1, 112, -1, 275,
-1, -1, -1, -1, -1, -1, -1, -1, 123, 124,
286, -1, -1, 289, 290, 291, -1, -1, -1, -1,
296, 297, -1, -1, 37, 301, -1, -1, 41, 42,
-1, 44, -1, -1, 47, -1, -1, -1, -1, -1,
-1, -1, 0, -1, -1, 58, 59, 60, -1, 62,
-1, -1, -1, 257, 258, 259, 260, 261, 262, -1,
-1, 265, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 275, -1, -1, -1, -1, -1, -1, -1, 37,
93, 94, 286, 41, 42, 289, 290, 291, -1, 47,
0, -1, 296, 297, -1, -1, -1, 301, -1, 112,
58, 59, 60, -1, 62, -1, -1, -1, -1, -1,
123, 124, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 37, -1, -1,
-1, 41, 42, -1, 44, 93, 94, 47, -1, -1,
-1, -1, 257, 258, 259, 260, 261, 262, 58, 59,
265, -1, -1, -1, 112, -1, -1, -1, -1, -1,
275, -1, -1, -1, -1, 123, 124, -1, -1, -1,
-1, 286, -1, -1, 289, 290, 291, -1, -1, -1,
-1, 296, 297, 93, 94, -1, 301, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 112, -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, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 257, 258, 259, 260, 261, 262,
-1, -1, 265, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 275, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 286, -1, -1, 289, 290, 291, -1,
-1, -1, -1, 296, 297, -1, -1, -1, 301, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 257,
258, 259, 260, 261, 262, -1, -1, 265, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 275, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 286, -1,
-1, 289, 290, 291, -1, -1, -1, -1, 296, 297,
-1, 7, -1, 301, -1, -1, -1, 257, 258, 259,
260, 261, 262, -1, -1, 265, -1, -1, -1, -1,
-1, -1, -1, -1, 30, 275, -1, -1, -1, -1,
-1, 37, -1, -1, -1, -1, 286, -1, -1, 289,
290, 291, -1, 49, -1, -1, 52, 53, 54, 55,
56, 301, 58, 59, 60, -1, 62, 63, 64, 65,
66, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 82, -1, -1, 85,
86, 87, 88, 89, 90, -1, 50, 51, -1, -1,
-1, -1, -1, -1, 100, -1, -1, 103, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 115,
-1, -1, -1, -1, -1, 121, -1, 81, -1, 83,
84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
136, 137, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 154, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
166, 167, 168, 169, 170, -1, -1, -1, -1, 175,
176, -1, 178, 179, -1, -1, -1, 183, -1, -1,
-1, 187, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 198, 157, 158, 201, -1, -1, 204, 205,
-1, -1, -1, -1, -1, -1, -1, -1, 17, -1,
-1, -1, -1, 177, -1, 221, 222, 223, -1, 28,
29, -1, 31, 32, 188, 34, 190, -1, 192, -1,
-1, -1, -1, -1, 43, -1, 242, -1, 244, -1,
246, -1, 248, -1, 250, -1, -1, -1, -1, 255,
-1, 215, -1, -1, 260, 261, 40, -1, -1, 43,
-1, 45, 268, -1, -1, -1, 230, 231, 232, 233,
234, -1, -1, -1, -1, 59, -1, -1, -1, -1,
-1, -1, 288, -1, 93, 94, 95, 96, 97, 98,
-1, -1, -1, -1, -1, -1, 105, -1, -1, 305,
-1, 110, -1, -1, 113, 114, -1, -1, 117, 40,
119, 120, 43, -1, 45, 124, 125, 281, -1, -1,
-1, 285, 286, 287, -1, -1, 135, 291, 59, -1,
139, -1, 141, 142, 143, 144, -1, -1, -1, 123,
-1, -1, -1, 152, -1, -1, 155, -1, -1, -1,
-1, -1, 316, 317, -1, -1, 165, 40, 322, -1,
43, -1, 45, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 59, -1, -1, -1,
-1, -1, -1, -1, 193, -1, -1, -1, -1, -1,
-1, -1, 123, -1, 125, -1, -1, -1, -1, -1,
209, 210, 211, 212, -1, 214, -1, 216, 217, -1,
-1, -1, -1, -1, -1, 224, 225, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 236, 237, 238,
239, 40, -1, -1, 43, -1, 45, -1, -1, -1,
123, -1, 125, -1, -1, -1, -1, -1, -1, -1,
59, -1, -1, -1, -1, 264, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 276, 277, 278,
279, 280, -1, 282, 283, 284, 260, 261, 262, 263,
264, -1, 266, 267, 268, 269, 270, 271, -1, 273,
274, -1, 276, 277, 278, 279, 280, 281, 282, 283,
284, 285, -1, 287, 288, -1, -1, -1, 292, 293,
294, 295, -1, -1, 123, 299, 125, -1, 302, 303,
304, 305, 306, -1, -1, -1, -1, -1, -1, 260,
-1, -1, 263, 264, -1, 266, 267, 268, 269, 270,
271, 272, 273, 274, -1, 276, 277, 278, 279, 280,
281, 282, 283, 284, 285, -1, 287, 288, -1, -1,
-1, 292, 293, 294, 295, -1, -1, -1, 299, -1,
-1, 302, 303, 304, 305, 306, -1, 260, -1, -1,
263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
273, 274, -1, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, -1, -1, -1, 292,
293, 294, 295, -1, -1, -1, 299, -1, -1, 302,
303, 304, 305, 306, 40, -1, -1, 43, -1, 45,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 59, -1, -1, -1, -1, -1, -1,
-1, 260, -1, -1, 263, 264, -1, 266, 267, 268,
269, 270, 271, 272, 273, 274, -1, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, -1, 287, 288,
-1, -1, -1, 292, 293, 294, 295, -1, -1, -1,
299, -1, -1, 302, 303, 304, 305, 306, 40, -1,
-1, 43, -1, 45, -1, -1, -1, 123, -1, 125,
-1, -1, -1, -1, -1, -1, -1, 59, -1, -1,
-1, -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, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 59, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 123, -1, 125, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 40, -1, -1,
43, -1, 45, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 59, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 123, -1,
125, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 260, -1, -1, 263, 264, -1,
266, 267, 268, 269, 270, 271, 272, 273, 274, -1,
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
-1, 287, 288, -1, -1, -1, 292, 293, 294, 295,
123, -1, 125, 299, -1, -1, 302, 303, 304, 305,
306, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
40, 41, -1, 43, 44, 45, -1, -1, 260, -1,
-1, 263, 264, -1, 266, 267, 268, 269, 270, 271,
272, 273, 274, 63, 276, 277, 278, 279, 280, 281,
282, 283, 284, 285, -1, 287, 288, -1, -1, -1,
292, 293, 294, 295, -1, -1, -1, 299, -1, -1,
302, 303, 304, 305, 306, 260, -1, -1, 263, 264,
-1, 266, 267, 268, 269, 270, 271, 272, 273, 274,
-1, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, -1, 287, 288, -1, -1, -1, 292, 293, 294,
295, -1, -1, -1, 299, -1, -1, 302, 303, 304,
305, 306, -1, 40, -1, -1, 43, 260, 45, -1,
263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
273, 274, 59, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, -1, -1, -1, 292,
293, 294, 295, -1, -1, -1, 299, -1, -1, 302,
303, 304, 305, 306, 40, -1, -1, 43, -1, 45,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 59, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 123, -1, 125, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 40, -1, -1, 43, -1, 45, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
59, -1, -1, 263, 264, -1, -1, -1, 268, 269,
270, -1, -1, -1, -1, -1, -1, 123, -1, 125,
-1, 281, -1, 283, 284, 285, -1, 287, -1, -1,
-1, -1, 292, 293, 294, 295, -1, -1, -1, 299,
-1, -1, 302, 303, 304, 305, 306, -1, -1, 40,
-1, -1, 43, -1, 45, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 123, -1, 125, -1, 59, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 260, -1, -1, 263, 264, -1, 266,
267, 268, 269, 270, 271, 272, 273, 274, -1, 276,
277, 278, 279, 280, 281, 282, 283, 284, 285, -1,
287, 288, 123, -1, 125, 292, 293, 294, 295, -1,
-1, -1, 299, -1, -1, 302, 303, 304, 305, 306,
-1, -1, -1, -1, 260, -1, -1, 263, 264, -1,
266, 267, 268, 269, 270, 271, -1, 273, 274, -1,
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
-1, 287, 288, -1, -1, -1, 292, 293, 294, 295,
-1, -1, -1, 299, -1, -1, 302, 303, 304, 305,
306, 260, -1, -1, 263, 264, -1, 266, 267, 268,
269, 270, 271, -1, 273, 274, -1, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, -1, 287, 288,
-1, -1, -1, 292, 293, 294, 295, -1, -1, -1,
299, -1, -1, 302, 303, 304, 305, 306, 40, -1,
-1, 43, -1, 45, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 59, -1, 260,
-1, -1, 263, 264, -1, 266, 267, 268, 269, 270,
271, -1, 273, 274, -1, 276, 277, 278, 279, 280,
281, 282, 283, 284, 285, -1, 287, 288, -1, -1,
-1, 292, 293, 294, 295, -1, -1, -1, 299, -1,
-1, 302, 303, 304, 305, 306, 40, -1, -1, 43,
-1, 45, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 123, -1, 125, -1, 59, -1, -1, -1, -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,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 59, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 123,
-1, 125, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 40, -1, -1, 43, -1, 45,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 59, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -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, 260, -1,
-1, 263, 264, -1, 266, 267, 268, 269, 270, 271,
-1, 273, 274, -1, 276, 277, 278, 279, 280, 281,
282, 283, 284, 285, -1, 287, 288, 123, -1, 125,
292, 293, 294, 295, -1, -1, -1, 299, -1, -1,
302, 303, 304, 305, 306, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 40,
-1, -1, 43, -1, 45, -1, 260, -1, -1, 263,
264, -1, 266, 267, 268, 269, 270, 271, 59, 273,
274, -1, 276, 277, 278, 279, 280, 281, 282, 283,
284, 285, -1, 287, 288, -1, -1, -1, 292, 293,
294, 295, -1, -1, -1, 299, -1, -1, 302, 303,
304, 305, 306, 260, -1, -1, 263, 264, -1, 266,
267, 268, 269, 270, 271, -1, 273, 274, -1, 276,
277, 278, 279, 280, 281, 282, 283, 284, 285, -1,
287, 288, 123, -1, 125, 292, 293, 294, 295, -1,
-1, -1, 299, -1, -1, 302, 303, 304, 305, 306,
40, -1, -1, 43, 260, 45, -1, 263, 264, -1,
266, 267, 268, 269, 270, 271, -1, 273, 274, -1,
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
-1, 287, 288, -1, -1, -1, 292, 293, 294, 295,
-1, -1, -1, 299, -1, -1, 302, 303, 304, 305,
306, 40, -1, -1, 43, 44, 45, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 60, -1, 62, 63, -1, -1, -1, -1, -1,
-1, -1, -1, 123, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 40, -1, -1, 43, -1,
45, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 60, -1, 62, 63, 260,
-1, -1, 263, 264, -1, 266, 267, 268, 269, 270,
271, -1, 273, 274, -1, 276, 277, 278, 279, 280,
281, 282, 283, 284, 285, -1, 287, 288, -1, -1,
-1, 292, 293, 294, 295, -1, -1, -1, 299, -1,
-1, 302, 303, 304, 305, 306, 40, 41, -1, 43,
44, 45, -1, -1, -1, -1, -1, -1, -1, -1,
-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,
40, 41, -1, 43, 44, 45, -1, 257, 258, 259,
-1, -1, -1, 263, 264, -1, -1, -1, 268, 269,
270, -1, -1, 63, -1, -1, -1, -1, -1, -1,
-1, 281, -1, 283, 284, 285, 286, 287, -1, -1,
-1, -1, 292, 293, 294, 295, -1, -1, -1, 299,
-1, 301, 302, 303, 304, 305, 306, 40, 41, -1,
43, 44, 45, -1, 263, 264, -1, -1, -1, 268,
269, 270, -1, -1, -1, -1, -1, -1, -1, -1,
63, -1, 281, -1, 283, 284, 285, -1, 287, -1,
-1, -1, -1, 292, 293, 294, 295, 296, 297, -1,
299, -1, -1, 302, 303, 304, 305, 306, 263, 264,
-1, -1, -1, 268, 269, 270, -1, -1, -1, -1,
40, 41, -1, 43, 44, 45, 281, -1, 283, 284,
285, -1, 287, -1, -1, -1, -1, 292, 293, 294,
295, 296, 297, 63, 299, -1, -1, 302, 303, 304,
305, 306, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 40, -1,
-1, 43, -1, 45, -1, -1, -1, -1, -1, 263,
264, -1, -1, -1, 268, 269, 270, 59, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 281, -1, 283,
284, 285, -1, 287, -1, -1, -1, -1, 292, 293,
294, 295, -1, -1, -1, 299, -1, -1, 302, 303,
304, 305, 306, 263, 264, -1, -1, -1, 268, 269,
270, 40, -1, -1, 43, -1, 45, -1, -1, -1,
-1, 281, -1, 283, 284, 285, -1, 287, -1, -1,
-1, -1, 292, 293, 294, 295, -1, -1, -1, 299,
-1, -1, 302, 303, 304, 305, 306, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 40,
263, 264, 43, -1, 45, 268, 269, 270, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 281, -1,
283, 284, 285, -1, 287, -1, -1, -1, -1, 292,
293, 294, 295, -1, -1, -1, 299, -1, -1, 302,
303, 304, 305, 306, 40, -1, -1, 43, 44, 45,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 263, 264, -1, -1, 63, 268, 269,
270, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 281, -1, 283, 284, 285, -1, 287, -1, -1,
-1, -1, 292, 293, 294, 295, -1, -1, -1, 299,
-1, -1, 302, 303, 304, 305, 306, 259, -1, -1,
-1, 263, 264, -1, -1, -1, 268, 269, 270, -1,
-1, 40, -1, -1, 43, 44, 45, -1, -1, 281,
-1, 283, 284, 285, -1, 287, -1, -1, -1, -1,
292, 293, 294, 295, 63, -1, -1, 299, -1, 301,
302, 303, 304, 305, 306, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 40, -1,
259, 43, 44, 45, 263, 264, -1, -1, -1, 268,
269, 270, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 63, 281, -1, 283, 284, 285, -1, 287, -1,
-1, -1, -1, 292, 293, 294, 295, -1, -1, -1,
299, -1, 301, 302, 303, 304, 305, 306, 259, -1,
-1, -1, 263, 264, -1, -1, -1, 268, 269, 270,
-1, -1, 40, -1, -1, 43, 44, 45, -1, -1,
281, -1, 283, 284, 285, -1, 287, -1, -1, -1,
-1, 292, 293, 294, 295, 63, -1, -1, 299, -1,
301, 302, 303, 304, 305, 306, -1, 263, 264, -1,
-1, -1, 268, 269, 270, -1, -1, 40, -1, -1,
43, 44, 45, -1, -1, 281, -1, 283, 284, 285,
-1, 287, -1, -1, -1, -1, 292, 293, 294, 295,
63, -1, -1, 299, -1, -1, 302, 303, 304, 305,
306, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 40, -1, -1, 43, 44, 45, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 263, 264, 63, -1, -1, 268,
269, 270, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 281, -1, 283, 284, 285, -1, 287, -1,
-1, -1, -1, 292, 293, 294, 295, -1, -1, -1,
299, -1, -1, 302, 303, 304, 305, 306, -1, -1,
-1, 263, 264, -1, -1, -1, 268, 269, 270, -1,
-1, 40, -1, -1, 43, -1, 45, -1, -1, 281,
-1, 283, 284, 285, -1, 287, -1, -1, -1, 58,
292, 293, 294, 295, 63, -1, -1, 299, -1, -1,
302, 303, 304, 305, 306, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 40, -1, -1, 43, -1,
45, -1, -1, -1, -1, 263, 264, -1, -1, -1,
268, 269, 270, 58, -1, -1, -1, -1, 63, -1,
-1, -1, -1, 281, -1, 283, 284, 285, -1, 287,
-1, -1, -1, -1, 292, 293, 294, 295, -1, -1,
-1, 299, -1, -1, 302, 303, 304, 305, 306, -1,
263, 264, -1, -1, -1, 268, 269, 270, -1, -1,
40, 41, -1, 43, -1, 45, -1, -1, 281, -1,
283, 284, 285, -1, 287, -1, -1, -1, -1, 292,
293, 294, 295, 63, -1, -1, 299, -1, -1, 302,
303, 304, 305, 306, -1, -1, 263, 264, -1, -1,
-1, 268, 269, 270, -1, -1, 40, 41, -1, 43,
-1, 45, -1, -1, 281, -1, 283, 284, 285, -1,
287, -1, -1, -1, -1, 292, 293, 294, 295, 63,
-1, -1, 299, -1, -1, 302, 303, 304, 305, 306,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
40, 41, -1, 43, -1, 45, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 63, 263, 264, -1, -1, -1, 268,
269, 270, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 281, -1, 283, 284, 285, -1, 287, -1,
-1, -1, -1, 292, 293, 294, 295, -1, -1, -1,
299, -1, -1, 302, 303, 304, 305, 306, 263, 264,
-1, -1, -1, 268, 269, 270, -1, -1, 40, 41,
-1, 43, -1, 45, -1, -1, 281, -1, 283, 284,
285, -1, 287, -1, -1, -1, -1, 292, 293, 294,
295, 63, -1, -1, 299, -1, -1, 302, 303, 304,
305, 306, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 40, 41, -1, 43, -1, 45, -1, -1,
-1, -1, -1, 263, 264, -1, -1, -1, 268, 269,
270, -1, -1, -1, -1, 63, -1, -1, -1, -1,
-1, 281, -1, 283, 284, 285, -1, 287, -1, -1,
-1, -1, 292, 293, 294, 295, -1, -1, -1, 299,
-1, -1, 302, 303, 304, 305, 306, -1, -1, 263,
264, -1, -1, -1, 268, 269, 270, -1, -1, 40,
41, -1, 43, -1, 45, -1, -1, 281, -1, 283,
284, 285, -1, 287, -1, -1, -1, -1, 292, 293,
294, 295, 63, -1, -1, 299, -1, -1, 302, 303,
304, 305, 306, 263, 264, -1, -1, -1, 268, 269,
270, -1, -1, 40, 41, -1, 43, -1, 45, -1,
-1, 281, -1, 283, 284, 285, -1, 287, -1, -1,
-1, -1, 292, 293, 294, 295, 63, -1, -1, 299,
-1, -1, 302, 303, 304, 305, 306, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 40, 41, -1,
43, -1, 45, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
63, 263, 264, -1, -1, -1, 268, 269, 270, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 281,
-1, 283, 284, 285, -1, 287, -1, -1, -1, -1,
292, 293, 294, 295, -1, -1, -1, 299, -1, -1,
302, 303, 304, 305, 306, 263, 264, -1, -1, -1,
268, 269, 270, -1, -1, 40, 41, -1, 43, -1,
45, -1, -1, 281, -1, 283, 284, 285, -1, 287,
-1, -1, -1, -1, 292, 293, 294, 295, 63, -1,
-1, 299, -1, -1, 302, 303, 304, 305, 306, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 40,
41, -1, 43, -1, 45, -1, -1, -1, -1, -1,
-1, -1, 263, 264, -1, -1, -1, 268, 269, 270,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
281, -1, 283, 284, 285, -1, 287, -1, -1, -1,
-1, 292, 293, 294, 295, -1, -1, -1, 299, -1,
-1, 302, 303, 304, 305, 306, 263, 264, -1, -1,
-1, 268, 269, 270, 40, -1, -1, 43, -1, 45,
-1, -1, -1, -1, 281, -1, 283, 284, 285, -1,
287, -1, -1, -1, -1, 292, 293, 294, 295, -1,
-1, -1, 299, -1, -1, 302, 303, 304, 305, 306,
263, 264, -1, -1, -1, 268, 269, 270, -1, -1,
-1, -1, 40, -1, -1, 43, -1, 45, 281, -1,
283, 284, 285, -1, 287, -1, -1, -1, -1, 292,
293, 294, 295, -1, -1, -1, 299, -1, -1, 302,
303, 304, 305, 306, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
40, -1, -1, 43, -1, 45, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 263, 264,
-1, -1, -1, 268, 269, 270, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 281, -1, 283, 284,
285, -1, 287, -1, -1, -1, -1, 292, 293, 294,
295, -1, -1, -1, 299, -1, -1, 302, 303, 304,
305, 306, 263, 264, -1, -1, -1, 268, 269, 270,
40, -1, -1, 43, -1, 45, -1, -1, -1, -1,
281, -1, 283, 284, 285, -1, 287, -1, -1, -1,
-1, 292, 293, 294, 295, -1, -1, -1, 299, -1,
-1, 302, 303, 304, 305, 306, -1, -1, -1, -1,
-1, -1, -1, -1, 40, -1, -1, 43, -1, 45,
-1, -1, -1, 259, -1, -1, -1, 263, 264, -1,
-1, -1, 268, 269, 270, -1, -1, 63, -1, -1,
-1, -1, -1, -1, -1, 281, -1, 283, 284, 285,
-1, 287, -1, -1, -1, -1, 292, 293, 294, 295,
-1, -1, -1, 299, -1, -1, 302, 303, 304, 305,
306, 259, -1, -1, 40, 263, 264, 43, -1, 45,
268, 269, 270, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 281, -1, 283, 284, 285, -1, 287,
-1, -1, -1, -1, 292, 293, 294, 295, -1, -1,
-1, 299, -1, -1, 302, 303, 304, 305, 306, 259,
-1, -1, 40, 263, 264, 43, -1, 45, 268, 269,
270, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 281, -1, 283, 284, 285, -1, 287, -1, -1,
-1, -1, 292, 293, 294, 295, -1, -1, -1, 299,
-1, -1, 302, 303, 304, 305, 306, 40, -1, -1,
43, -1, 45, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 259,
-1, -1, -1, 263, 264, -1, -1, -1, 268, 269,
270, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 281, -1, 283, 284, 285, -1, 287, -1, -1,
-1, -1, 292, 293, 294, 295, -1, -1, -1, 299,
-1, -1, 302, 303, 304, 305, 306, 263, 264, -1,
-1, -1, 268, 269, 270, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 281, -1, 283, 284, 285,
-1, 287, -1, -1, -1, -1, 292, 293, 294, 295,
-1, -1, -1, 299, -1, -1, 302, 303, 304, 305,
306, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 259, -1, -1, -1, 263, 264, -1,
-1, -1, 268, 269, 270, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 281, -1, 283, 284, 285,
-1, 287, -1, -1, -1, -1, 292, 293, 294, 295,
-1, -1, -1, 299, -1, -1, 302, 303, 304, 305,
306, -1, -1, -1, -1, 263, 264, -1, -1, -1,
268, 269, 270, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 281, -1, 283, 284, 285, -1, 287,
-1, -1, -1, -1, 292, 293, 294, 295, -1, -1,
-1, 299, -1, -1, 302, 303, 304, 305, 306, -1,
263, 264, 28, 29, -1, 268, 269, 270, 34, -1,
-1, -1, -1, -1, -1, -1, -1, 43, 281, -1,
283, 284, 285, -1, 287, -1, -1, -1, -1, 292,
293, 294, 295, -1, -1, -1, 299, -1, -1, 302,
303, 304, 305, 306, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
96, 97, 98, -1, -1, -1, -1, -1, -1, 105,
-1, -1, -1, -1, 110, -1, -1, 113, 114, -1,
-1, 117, -1, 119, 120, -1, -1, -1, 124, 125,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 135,
-1, -1, -1, 139, -1, 141, 142, 143, 144, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 155,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 165,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 193, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 209, 210, 211, 212, -1, 214, -1,
216, 217, -1, -1, -1, -1, -1, -1, 224, 225,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
236, 237, 238, 239, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 264, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
276, 277, 278, 279, 280, -1, 282, 283, 284,
};
#define YYFINAL 1
#ifndef YYDEBUG
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 306
#if YYDEBUG
const 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,"'p'",0,0,0,0,0,0,0,
0,0,0,"'{'","'|'","'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"BEGIN","END","REGEX","SEMINEW",
"NEWLINE","COMMENT","FUN1","FUNN","GRGR","PRINT","PRINTF","SPRINTF_OLD",
"SPRINTF_NEW","SPLIT","IF","ELSE","WHILE","FOR","IN","EXIT","NEXT","BREAK",
"CONTINUE","RET","GETLINE","DO","SUB","GSUB","MATCH","FUNCTION","USERFUN",
"DELETE","ASGNOP","OROR","ANDAND","NUMBER","VAR","SUBSTR","INDEX","MATCHOP",
"RELOP","OR","STRING","UMINUS","NOT","INCR","DECR","FIELD","VFIELD","SVFIELD",
};
const char *yyrule[] = {
"$accept : program",
"program : junk hunks",
"begin : BEGIN '{' maybe states '}' junk",
"end : END '{' maybe states '}'",
"end : end NEWLINE",
"hunks : hunks hunk junk",
"hunks :",
"hunk : patpat",
"hunk : patpat '{' maybe states '}'",
"hunk : FUNCTION USERFUN '(' arg_list ')' maybe '{' maybe states '}'",
"hunk : '{' maybe states '}'",
"hunk : begin",
"hunk : end",
"arg_list : expr_list",
"patpat : cond",
"patpat : cond ',' cond",
"cond : expr",
"cond : match",
"cond : rel",
"cond : compound_cond",
"cond : cond '?' expr ':' expr",
"compound_cond : '(' compound_cond ')'",
"compound_cond : cond ANDAND maybe cond",
"compound_cond : cond OROR maybe cond",
"compound_cond : NOT cond",
"rel : expr RELOP expr",
"rel : expr '>' expr",
"rel : expr '<' expr",
"rel : '(' rel ')'",
"match : expr MATCHOP expr",
"match : expr MATCHOP REGEX",
"match : REGEX",
"match : '(' match ')'",
"expr : term",
"expr : expr term",
"expr : expr '?' expr ':' expr",
"expr : variable ASGNOP cond",
"sprintf : SPRINTF_NEW",
"sprintf : SPRINTF_OLD",
"term : variable",
"term : NUMBER",
"term : STRING",
"term : term '+' term",
"term : term '-' term",
"term : term '*' term",
"term : term '/' term",
"term : term '%' term",
"term : term '^' term",
"term : term IN VAR",
"term : variable INCR",
"term : variable DECR",
"term : INCR variable",
"term : DECR variable",
"term : '-' term",
"term : '+' term",
"term : '(' cond ')'",
"term : GETLINE",
"term : GETLINE variable",
"term : GETLINE '<' expr",
"term : GETLINE variable '<' expr",
"term : term 'p' GETLINE",
"term : term 'p' GETLINE variable",
"term : FUN1",
"term : FUN1 '(' ')'",
"term : FUN1 '(' expr ')'",
"term : FUNN '(' expr_list ')'",
"term : USERFUN '(' expr_list ')'",
"term : SPRINTF_NEW '(' expr_list ')'",
"term : sprintf expr_list",
"term : SUBSTR '(' expr ',' expr ',' expr ')'",
"term : SUBSTR '(' expr ',' expr ')'",
"term : SPLIT '(' expr ',' VAR ',' expr ')'",
"term : SPLIT '(' expr ',' VAR ',' REGEX ')'",
"term : SPLIT '(' expr ',' VAR ')'",
"term : INDEX '(' expr ',' expr ')'",
"term : MATCH '(' expr ',' REGEX ')'",
"term : MATCH '(' expr ',' expr ')'",
"term : SUB '(' expr ',' expr ')'",
"term : SUB '(' REGEX ',' expr ')'",
"term : GSUB '(' expr ',' expr ')'",
"term : GSUB '(' REGEX ',' expr ')'",
"term : SUB '(' expr ',' expr ',' expr ')'",
"term : SUB '(' REGEX ',' expr ',' expr ')'",
"term : GSUB '(' expr ',' expr ',' expr ')'",
"term : GSUB '(' REGEX ',' expr ',' expr ')'",
"variable : VAR",
"variable : VAR '[' expr_list ']'",
"variable : FIELD",
"variable : SVFIELD",
"variable : VFIELD term",
"expr_list : expr",
"expr_list : clist",
"expr_list :",
"clist : expr ',' maybe expr",
"clist : clist ',' maybe expr",
"clist : '(' clist ')'",
"junk : junk hunksep",
"junk :",
"hunksep : ';'",
"hunksep : SEMINEW",
"hunksep : NEWLINE",
"hunksep : COMMENT",
"maybe : maybe nlstuff",
"maybe :",
"nlstuff : NEWLINE",
"nlstuff : COMMENT",
"separator : ';' maybe",
"separator : SEMINEW maybe",
"separator : NEWLINE maybe",
"separator : COMMENT maybe",
"states : states statement",
"states :",
"statement : simple separator maybe",
"statement : ';' maybe",
"statement : SEMINEW maybe",
"statement : compound",
"simpnull : simple",
"simpnull :",
"simple : expr",
"simple : PRINT expr_list redir expr",
"simple : PRINT expr_list",
"simple : PRINTF expr_list redir expr",
"simple : PRINTF expr_list",
"simple : BREAK",
"simple : NEXT",
"simple : EXIT",
"simple : EXIT expr",
"simple : CONTINUE",
"simple : RET",
"simple : RET expr",
"simple : DELETE VAR '[' expr_list ']'",
"redir : '>'",
"redir : GRGR",
"redir : '|'",
"compound : IF '(' cond ')' maybe statement",
"compound : IF '(' cond ')' maybe statement ELSE maybe statement",
"compound : WHILE '(' cond ')' maybe statement",
"compound : DO maybe statement WHILE '(' cond ')'",
"compound : FOR '(' simpnull ';' cond ';' simpnull ')' maybe statement",
"compound : FOR '(' simpnull ';' ';' simpnull ')' maybe statement",
"compound : FOR '(' expr ')' maybe statement",
"compound : '{' maybe states '}' maybe",
};
#endif
#ifndef YYSTYPE
typedef int YYSTYPE;
#endif
#ifdef YYSTACKSIZE
#undef YYMAXDEPTH
#define YYMAXDEPTH YYSTACKSIZE
#else
#ifdef YYMAXDEPTH
#define YYSTACKSIZE YYMAXDEPTH
#else
#define YYSTACKSIZE 500
#define YYMAXDEPTH 500
#endif
#endif
int yydebug;
int yynerrs;
int yyerrflag;
int yychar;
short *yyssp;
YYSTYPE *yyvsp;
YYSTYPE yyval;
YYSTYPE yylval;
short yyss[YYSTACKSIZE];
YYSTYPE yyvs[YYSTACKSIZE];
#define yystacksize YYSTACKSIZE
#line 429 "a2p.y"
int yyparse (void);
#include "a2py.c"
#line 2178 "y.tab.c"
#define YYABORT goto yyabort
#define YYREJECT goto yyabort
#define YYACCEPT goto yyaccept
#define YYERROR goto yyerrlab
#if YYDEBUG
# if defined(WIN32)
EXTERN_C _CRTIMP char *getenv(const char *);
# else
EXTERN_C char *getenv(const char *);
# endif
#endif
int
yyparse(void)
{
int yym, yyn, yystate;
#if YYDEBUG
const char *yys;
if ((yys = getenv("YYDEBUG")))
{
yyn = *yys;
if (yyn >= '0' && yyn <= '9')
yydebug = yyn - '0';
}
#endif
yynerrs = 0;
yyerrflag = 0;
yychar = (-1);
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 >= yyss + yystacksize - 1)
{
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;
#ifdef lint
#endif
yyerror("syntax error");
#ifdef lint
#endif
++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 >= yyss + yystacksize - 1)
{
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 52 "a2p.y"
{ root = oper4(OPROG,yyvsp[-1],begins,yyvsp[0],ends); }
break;
case 2:
#line 56 "a2p.y"
{ begins = oper4(OJUNK,begins,yyvsp[-3],yyvsp[-2],yyvsp[0]); in_begin = FALSE;
yyval = Nullop; }
break;
case 3:
#line 61 "a2p.y"
{ ends = oper3(OJUNK,ends,yyvsp[-2],yyvsp[-1]); yyval = Nullop; }
break;
case 4:
#line 63 "a2p.y"
{ yyval = yyvsp[-1]; }
break;
case 5:
#line 67 "a2p.y"
{ yyval = oper3(OHUNKS,yyvsp[-2],yyvsp[-1],yyvsp[0]); }
break;
case 6:
#line 69 "a2p.y"
{ yyval = Nullop; }
break;
case 7:
#line 73 "a2p.y"
{ yyval = oper1(OHUNK,yyvsp[0]); need_entire = TRUE; }
break;
case 8:
#line 75 "a2p.y"
{ yyval = oper2(OHUNK,yyvsp[-4],oper2(OJUNK,yyvsp[-2],yyvsp[-1])); }
break;
case 9:
#line 77 "a2p.y"
{ fixfargs(yyvsp[-8],yyvsp[-6],0); yyval = oper5(OUSERDEF,yyvsp[-8],yyvsp[-6],yyvsp[-4],yyvsp[-2],yyvsp[-1]); }
break;
case 10:
#line 79 "a2p.y"
{ yyval = oper2(OHUNK,Nullop,oper2(OJUNK,yyvsp[-2],yyvsp[-1])); }
break;
case 13:
#line 85 "a2p.y"
{ yyval = rememberargs(yyval); }
break;
case 14:
#line 89 "a2p.y"
{ yyval = oper1(OPAT,yyvsp[0]); }
break;
case 15:
#line 91 "a2p.y"
{ yyval = oper2(ORANGE,yyvsp[-2],yyvsp[0]); }
break;
case 20:
#line 99 "a2p.y"
{ yyval = oper3(OCOND,yyvsp[-4],yyvsp[-2],yyvsp[0]); }
break;
case 21:
#line 104 "a2p.y"
{ yyval = oper1(OCPAREN,yyvsp[-1]); }
break;
case 22:
#line 106 "a2p.y"
{ yyval = oper3(OCANDAND,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
break;
case 23:
#line 108 "a2p.y"
{ yyval = oper3(OCOROR,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
break;
case 24:
#line 110 "a2p.y"
{ yyval = oper1(OCNOT,yyvsp[0]); }
break;
case 25:
#line 114 "a2p.y"
{ yyval = oper3(ORELOP,yyvsp[-1],yyvsp[-2],yyvsp[0]); }
break;
case 26:
#line 116 "a2p.y"
{ yyval = oper3(ORELOP,string(">",1),yyvsp[-2],yyvsp[0]); }
break;
case 27:
#line 118 "a2p.y"
{ yyval = oper3(ORELOP,string("<",1),yyvsp[-2],yyvsp[0]); }
break;
case 28:
#line 120 "a2p.y"
{ yyval = oper1(ORPAREN,yyvsp[-1]); }
break;
case 29:
#line 124 "a2p.y"
{ yyval = oper3(OMATCHOP,yyvsp[-1],yyvsp[-2],yyvsp[0]); }
break;
case 30:
#line 126 "a2p.y"
{ yyval = oper3(OMATCHOP,yyvsp[-1],yyvsp[-2],oper1(OREGEX,yyvsp[0])); }
break;
case 31:
#line 128 "a2p.y"
{ yyval = oper1(OREGEX,yyvsp[0]); }
break;
case 32:
#line 130 "a2p.y"
{ yyval = oper1(OMPAREN,yyvsp[-1]); }
break;
case 33:
#line 134 "a2p.y"
{ yyval = yyvsp[0]; }
break;
case 34:
#line 136 "a2p.y"
{ yyval = oper2(OCONCAT,yyvsp[-1],yyvsp[0]); }
break;
case 35:
#line 138 "a2p.y"
{ yyval = oper3(OCOND,yyvsp[-4],yyvsp[-2],yyvsp[0]); }
break;
case 36:
#line 140 "a2p.y"
{
yyval = oper3(OASSIGN,yyvsp[-1],yyvsp[-2],yyvsp[0]);
if ((ops[yyvsp[-2]].ival & 255) == OFLD)
lval_field = TRUE;
else if ((ops[yyvsp[-2]].ival & 255) == OVFLD)
lval_field = TRUE;
}
break;
case 39:
#line 153 "a2p.y"
{ yyval = yyvsp[0]; }
break;
case 40:
#line 155 "a2p.y"
{ yyval = oper1(ONUM,yyvsp[0]); }
break;
case 41:
#line 157 "a2p.y"
{ yyval = oper1(OSTR,yyvsp[0]); }
break;
case 42:
#line 159 "a2p.y"
{ yyval = oper2(OADD,yyvsp[-2],yyvsp[0]); }
break;
case 43:
#line 161 "a2p.y"
{ yyval = oper2(OSUBTRACT,yyvsp[-2],yyvsp[0]); }
break;
case 44:
#line 163 "a2p.y"
{ yyval = oper2(OMULT,yyvsp[-2],yyvsp[0]); }
break;
case 45:
#line 165 "a2p.y"
{ yyval = oper2(ODIV,yyvsp[-2],yyvsp[0]); }
break;
case 46:
#line 167 "a2p.y"
{ yyval = oper2(OMOD,yyvsp[-2],yyvsp[0]); }
break;
case 47:
#line 169 "a2p.y"
{ yyval = oper2(OPOW,yyvsp[-2],yyvsp[0]); }
break;
case 48:
#line 171 "a2p.y"
{ yyval = oper2(ODEFINED,aryrefarg(yyvsp[0]),yyvsp[-2]); }
break;
case 49:
#line 173 "a2p.y"
{
yyval = oper1(OPOSTINCR,yyvsp[-1]);
if ((ops[yyvsp[-1]].ival & 255) == OFLD)
lval_field = TRUE;
else if ((ops[yyvsp[-1]].ival & 255) == OVFLD)
lval_field = TRUE;
}
break;
case 50:
#line 181 "a2p.y"
{
yyval = oper1(OPOSTDECR,yyvsp[-1]);
if ((ops[yyvsp[-1]].ival & 255) == OFLD)
lval_field = TRUE;
else if ((ops[yyvsp[-1]].ival & 255) == OVFLD)
lval_field = TRUE;
}
break;
case 51:
#line 189 "a2p.y"
{
yyval = oper1(OPREINCR,yyvsp[0]);
if ((ops[yyvsp[0]].ival & 255) == OFLD)
lval_field = TRUE;
else if ((ops[yyvsp[0]].ival & 255) == OVFLD)
lval_field = TRUE;
}
break;
case 52:
#line 197 "a2p.y"
{
yyval = oper1(OPREDECR,yyvsp[0]);
if ((ops[yyvsp[0]].ival & 255) == OFLD)
lval_field = TRUE;
else if ((ops[yyvsp[0]].ival & 255) == OVFLD)
lval_field = TRUE;
}
break;
case 53:
#line 205 "a2p.y"
{ yyval = oper1(OUMINUS,yyvsp[0]); }
break;
case 54:
#line 207 "a2p.y"
{ yyval = oper1(OUPLUS,yyvsp[0]); }
break;
case 55:
#line 209 "a2p.y"
{ yyval = oper1(OPAREN,yyvsp[-1]); }
break;
case 56:
#line 211 "a2p.y"
{ yyval = oper0(OGETLINE); }
break;
case 57:
#line 213 "a2p.y"
{ yyval = oper1(OGETLINE,yyvsp[0]); }
break;
case 58:
#line 215 "a2p.y"
{ yyval = oper3(OGETLINE,Nullop,string("<",1),yyvsp[0]);
if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
break;
case 59:
#line 218 "a2p.y"
{ yyval = oper3(OGETLINE,yyvsp[-2],string("<",1),yyvsp[0]);
if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
break;
case 60:
#line 221 "a2p.y"
{ yyval = oper3(OGETLINE,Nullop,string("|",1),yyvsp[-2]);
if (ops[yyvsp[-2]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
break;
case 61:
#line 224 "a2p.y"
{ yyval = oper3(OGETLINE,yyvsp[0],string("|",1),yyvsp[-3]);
if (ops[yyvsp[-3]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
break;
case 62:
#line 227 "a2p.y"
{ yyval = oper0(yyvsp[0]); need_entire = do_chop = TRUE; }
break;
case 63:
#line 229 "a2p.y"
{ yyval = oper1(yyvsp[-2],Nullop); need_entire = do_chop = TRUE; }
break;
case 64:
#line 231 "a2p.y"
{ yyval = oper1(yyvsp[-3],yyvsp[-1]); }
break;
case 65:
#line 233 "a2p.y"
{ yyval = oper1(yyvsp[-3],yyvsp[-1]); }
break;
case 66:
#line 235 "a2p.y"
{ yyval = oper2(OUSERFUN,yyvsp[-3],yyvsp[-1]); }
break;
case 67:
#line 237 "a2p.y"
{ yyval = oper1(OSPRINTF,yyvsp[-1]); }
break;
case 68:
#line 239 "a2p.y"
{ yyval = oper1(OSPRINTF,yyvsp[0]); }
break;
case 69:
#line 241 "a2p.y"
{ yyval = oper3(OSUBSTR,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
break;
case 70:
#line 243 "a2p.y"
{ yyval = oper2(OSUBSTR,yyvsp[-3],yyvsp[-1]); }
break;
case 71:
#line 245 "a2p.y"
{ yyval = oper3(OSPLIT,yyvsp[-5],aryrefarg(numary(yyvsp[-3])),yyvsp[-1]); }
break;
case 72:
#line 247 "a2p.y"
{ yyval = oper3(OSPLIT,yyvsp[-5],aryrefarg(numary(yyvsp[-3])),oper1(OREGEX,yyvsp[-1]));}
break;
case 73:
#line 249 "a2p.y"
{ yyval = oper2(OSPLIT,yyvsp[-3],aryrefarg(numary(yyvsp[-1]))); }
break;
case 74:
#line 251 "a2p.y"
{ yyval = oper2(OINDEX,yyvsp[-3],yyvsp[-1]); }
break;
case 75:
#line 253 "a2p.y"
{ yyval = oper2(OMATCH,yyvsp[-3],oper1(OREGEX,yyvsp[-1])); }
break;
case 76:
#line 255 "a2p.y"
{ yyval = oper2(OMATCH,yyvsp[-3],yyvsp[-1]); }
break;
case 77:
#line 257 "a2p.y"
{ yyval = oper2(OSUB,yyvsp[-3],yyvsp[-1]); }
break;
case 78:
#line 259 "a2p.y"
{ yyval = oper2(OSUB,oper1(OREGEX,yyvsp[-3]),yyvsp[-1]); }
break;
case 79:
#line 261 "a2p.y"
{ yyval = oper2(OGSUB,yyvsp[-3],yyvsp[-1]); }
break;
case 80:
#line 263 "a2p.y"
{ yyval = oper2(OGSUB,oper1(OREGEX,yyvsp[-3]),yyvsp[-1]); }
break;
case 81:
#line 265 "a2p.y"
{ yyval = oper3(OSUB,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
break;
case 82:
#line 267 "a2p.y"
{ yyval = oper3(OSUB,oper1(OREGEX,yyvsp[-5]),yyvsp[-3],yyvsp[-1]); }
break;
case 83:
#line 269 "a2p.y"
{ yyval = oper3(OGSUB,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
break;
case 84:
#line 271 "a2p.y"
{ yyval = oper3(OGSUB,oper1(OREGEX,yyvsp[-5]),yyvsp[-3],yyvsp[-1]); }
break;
case 85:
#line 275 "a2p.y"
{ yyval = oper1(OVAR,yyvsp[0]); }
break;
case 86:
#line 277 "a2p.y"
{ yyval = oper2(OVAR,aryrefarg(yyvsp[-3]),yyvsp[-1]); }
break;
case 87:
#line 279 "a2p.y"
{ yyval = oper1(OFLD,yyvsp[0]); }
break;
case 88:
#line 281 "a2p.y"
{ yyval = oper1(OVFLD,oper1(OVAR,yyvsp[0])); }
break;
case 89:
#line 283 "a2p.y"
{ yyval = oper1(OVFLD,yyvsp[0]); }
break;
case 92:
#line 290 "a2p.y"
{ yyval = Nullop; }
break;
case 93:
#line 294 "a2p.y"
{ yyval = oper3(OCOMMA,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
break;
case 94:
#line 296 "a2p.y"
{ yyval = oper3(OCOMMA,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
break;
case 95:
#line 298 "a2p.y"
{ yyval = yyvsp[-1]; }
break;
case 96:
#line 302 "a2p.y"
{ yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); }
break;
case 97:
#line 304 "a2p.y"
{ yyval = Nullop; }
break;
case 98:
#line 308 "a2p.y"
{ yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); }
break;
case 99:
#line 310 "a2p.y"
{ yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); }
break;
case 100:
#line 312 "a2p.y"
{ yyval = oper0(ONEWLINE); }
break;
case 101:
#line 314 "a2p.y"
{ yyval = oper1(OCOMMENT,yyvsp[0]); }
break;
case 102:
#line 318 "a2p.y"
{ yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); }
break;
case 103:
#line 320 "a2p.y"
{ yyval = Nullop; }
break;
case 104:
#line 324 "a2p.y"
{ yyval = oper0(ONEWLINE); }
break;
case 105:
#line 326 "a2p.y"
{ yyval = oper1(OCOMMENT,yyvsp[0]); }
break;
case 106:
#line 331 "a2p.y"
{ yyval = oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0]); }
break;
case 107:
#line 333 "a2p.y"
{ yyval = oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0]); }
break;
case 108:
#line 335 "a2p.y"
{ yyval = oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0]); }
break;
case 109:
#line 337 "a2p.y"
{ yyval = oper2(OJUNK,oper1(OSCOMMENT,yyvsp[-1]),yyvsp[0]); }
break;
case 110:
#line 341 "a2p.y"
{ yyval = oper2(OSTATES,yyvsp[-1],yyvsp[0]); }
break;
case 111:
#line 343 "a2p.y"
{ yyval = Nullop; }
break;
case 112:
#line 348 "a2p.y"
{ yyval = oper2(OJUNK,oper2(OSTATE,yyvsp[-2],yyvsp[-1]),yyvsp[0]); }
break;
case 113:
#line 350 "a2p.y"
{ yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0])); }
break;
case 114:
#line 352 "a2p.y"
{ yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0])); }
break;
case 117:
#line 358 "a2p.y"
{ yyval = Nullop; }
break;
case 119:
#line 364 "a2p.y"
{ yyval = oper3(OPRINT,yyvsp[-2],yyvsp[-1],yyvsp[0]);
do_opens = TRUE;
saw_ORS = saw_OFS = TRUE;
if (!yyvsp[-2]) need_entire = TRUE;
if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
break;
case 120:
#line 370 "a2p.y"
{ yyval = oper1(OPRINT,yyvsp[0]);
if (!yyvsp[0]) need_entire = TRUE;
saw_ORS = saw_OFS = TRUE;
}
break;
case 121:
#line 375 "a2p.y"
{ yyval = oper3(OPRINTF,yyvsp[-2],yyvsp[-1],yyvsp[0]);
do_opens = TRUE;
if (!yyvsp[-2]) need_entire = TRUE;
if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
break;
case 122:
#line 380 "a2p.y"
{ yyval = oper1(OPRINTF,yyvsp[0]);
if (!yyvsp[0]) need_entire = TRUE;
}
break;
case 123:
#line 384 "a2p.y"
{ yyval = oper0(OBREAK); }
break;
case 124:
#line 386 "a2p.y"
{ yyval = oper0(ONEXT); }
break;
case 125:
#line 388 "a2p.y"
{ yyval = oper0(OEXIT); }
break;
case 126:
#line 390 "a2p.y"
{ yyval = oper1(OEXIT,yyvsp[0]); }
break;
case 127:
#line 392 "a2p.y"
{ yyval = oper0(OCONTINUE); }
break;
case 128:
#line 394 "a2p.y"
{ yyval = oper0(ORETURN); }
break;
case 129:
#line 396 "a2p.y"
{ yyval = oper1(ORETURN,yyvsp[0]); }
break;
case 130:
#line 398 "a2p.y"
{ yyval = oper2(ODELETE,aryrefarg(yyvsp[-3]),yyvsp[-1]); }
break;
case 131:
#line 402 "a2p.y"
{ yyval = oper1(OREDIR,string(">",1)); }
break;
case 132:
#line 404 "a2p.y"
{ yyval = oper1(OREDIR,string(">>",2)); }
break;
case 133:
#line 406 "a2p.y"
{ yyval = oper1(OREDIR,string("|",1)); }
break;
case 134:
#line 411 "a2p.y"
{ yyval = oper2(OIF,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
break;
case 135:
#line 413 "a2p.y"
{ yyval = oper3(OIF,yyvsp[-6],bl(yyvsp[-3],yyvsp[-4]),bl(yyvsp[0],yyvsp[-1])); }
break;
case 136:
#line 415 "a2p.y"
{ yyval = oper2(OWHILE,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
break;
case 137:
#line 417 "a2p.y"
{ yyval = oper2(ODO,bl(yyvsp[-4],yyvsp[-5]),yyvsp[-1]); }
break;
case 138:
#line 419 "a2p.y"
{ yyval = oper4(OFOR,yyvsp[-7],yyvsp[-5],yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
break;
case 139:
#line 421 "a2p.y"
{ yyval = oper4(OFOR,yyvsp[-6],string("",0),yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
break;
case 140:
#line 423 "a2p.y"
{ yyval = oper2(OFORIN,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
break;
case 141:
#line 425 "a2p.y"
{ yyval = oper3(OBLOCK,oper2(OJUNK,yyvsp[-3],yyvsp[-2]),Nullop,yyvsp[0]); }
break;
#line 2878 "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 >= yyss + yystacksize - 1)
{
goto yyoverflow;
}
*++yyssp = yystate;
*++yyvsp = yyval;
goto yyloop;
yyoverflow:
yyerror("yacc stack overflow");
yyabort:
return (1);
yyaccept:
return (0);
}