1 #include <stdlib.h>
2 #include <string.h>
3 __SCCSID("@(#)yaccpar	1.9 (Berkeley) 02/21/93");
4 __RCSID("$MirOS: src/gnu/usr.bin/perl/x2p/a2p.c,v 1.2 2008/07/08 19:37:43 tg Exp $");
5 __RCSID("$miros: src/usr.bin/yacc/skeleton.c,v 1.6 2008/07/08 19:24:30 tg Exp $");
6 #define YYBYACC 1
7 #define YYMAJOR 1
8 #define YYMINOR 9
9 #define YYLEX yylex()
10 #define YYEMPTY -1
11 #define yyclearin (yychar=(YYEMPTY))
12 #define yyerrok (yyerrflag=0)
13 #define YYRECOVERING() (yyerrflag!=0)
14 int
15 #if defined(__cplusplus) || defined(__STDC__)
16 yyparse(void);
17 #else
18 yyparse();
19 #endif
20 #define YYPREFIX "yy"
21 #line 2 "a2p.y"
22 /* $RCSfile: a2p.y,v $$Revision: 1.8 $$Date: 2006/03/28 19:23:15 $
23  *
24  *    Copyright (C) 1991, 1992, 1993, 1994, 1996, 1997, 1999, 2000,
25  *    by Larry Wall and others
26  *
27  *    You may distribute under the terms of either the GNU General Public
28  *    License or the Artistic License, as specified in the README file.
29  *
30  * $Log: a2p.y,v $
31  * Revision 1.8  2006/03/28 19:23:15  millert
32  * merge in perl 5.8.8
33  *
34  * Revision 1.7  2003/12/03 03:02:53  millert
35  * Resolve conflicts for perl 5.8.2, remove old files, and add OpenBSD-specific scaffolding
36  *
37  */
38 
39 #include "INTERN.h"
40 #include "a2p.h"
41 
42 int root;
43 int begins = Nullop;
44 int ends = Nullop;
45 
46 #line 47 "y.tab.c"
47 #define BEGIN 257
48 #define END 258
49 #define REGEX 259
50 #define SEMINEW 260
51 #define NEWLINE 261
52 #define COMMENT 262
53 #define FUN1 263
54 #define FUNN 264
55 #define GRGR 265
56 #define PRINT 266
57 #define PRINTF 267
58 #define SPRINTF_OLD 268
59 #define SPRINTF_NEW 269
60 #define SPLIT 270
61 #define IF 271
62 #define ELSE 272
63 #define WHILE 273
64 #define FOR 274
65 #define IN 275
66 #define EXIT 276
67 #define NEXT 277
68 #define BREAK 278
69 #define CONTINUE 279
70 #define RET 280
71 #define GETLINE 281
72 #define DO 282
73 #define SUB 283
74 #define GSUB 284
75 #define MATCH 285
76 #define FUNCTION 286
77 #define USERFUN 287
78 #define DELETE 288
79 #define ASGNOP 289
80 #define OROR 290
81 #define ANDAND 291
82 #define NUMBER 292
83 #define VAR 293
84 #define SUBSTR 294
85 #define INDEX 295
86 #define MATCHOP 296
87 #define RELOP 297
88 #define OR 298
89 #define STRING 299
90 #define UMINUS 300
91 #define NOT 301
92 #define INCR 302
93 #define DECR 303
94 #define FIELD 304
95 #define VFIELD 305
96 #define SVFIELD 306
97 #define YYERRCODE 256
98 #if defined(__cplusplus) || defined(__STDC__)
99 const short yylhs[] =
100 #else
101 short yylhs[] =
102 #endif
103 	{                                        -1,
104     0,    3,    6,    6,    2,    2,    7,    7,    7,    7,
105     7,    7,    9,    8,    8,   11,   11,   11,   11,   11,
106    15,   15,   15,   15,   14,   14,   14,   14,   13,   13,
107    13,   13,   12,   12,   12,   12,   18,   18,   16,   16,
108    16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
109    16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
110    16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
111    16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
112    16,   16,   16,   16,   17,   17,   17,   17,   17,   10,
113    10,   10,   19,   19,   19,    1,    1,   20,   20,   20,
114    20,    4,    4,   21,   21,   22,   22,   22,   22,    5,
115     5,   23,   23,   23,   23,   26,   26,   24,   24,   24,
116    24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
117    27,   27,   27,   25,   25,   25,   25,   25,   25,   25,
118    25,
119 };
120 #if defined(__cplusplus) || defined(__STDC__)
121 const short yylen[] =
122 #else
123 short yylen[] =
124 #endif
125 	{                                         2,
126     2,    6,    5,    2,    3,    0,    1,    5,   10,    4,
127     1,    1,    1,    1,    3,    1,    1,    1,    1,    5,
128     3,    4,    4,    2,    3,    3,    3,    3,    3,    3,
129     1,    3,    1,    2,    5,    3,    1,    1,    1,    1,
130     1,    3,    3,    3,    3,    3,    3,    3,    2,    2,
131     2,    2,    2,    2,    3,    1,    2,    3,    4,    3,
132     4,    1,    3,    4,    4,    4,    4,    2,    8,    6,
133     8,    8,    6,    6,    6,    6,    6,    6,    6,    6,
134     8,    8,    8,    8,    1,    4,    1,    1,    2,    1,
135     1,    0,    4,    4,    3,    2,    0,    1,    1,    1,
136     1,    2,    0,    1,    1,    2,    2,    2,    2,    2,
137     0,    3,    2,    2,    1,    1,    0,    1,    4,    2,
138     4,    2,    1,    1,    1,    2,    1,    1,    2,    5,
139     1,    1,    1,    6,    9,    6,    7,   10,    9,    6,
140     5,
141 };
142 #if defined(__cplusplus) || defined(__STDC__)
143 const short yydefred[] =
144 #else
145 short yydefred[] =
146 #endif
147 	{                                     97,
148     0,    0,   99,  100,  101,   98,    0,   96,    0,    0,
149    31,    0,    0,   38,    0,    0,    0,    0,    0,    0,
150     0,    0,   40,    0,    0,    0,   41,    0,    0,    0,
151     0,    0,   87,    0,   88,  103,    0,   11,    0,   97,
152     0,    0,    0,   17,   18,   19,    0,    0,    0,  103,
153   103,    0,    0,    0,    0,    0,    0,    0,    0,    0,
154     0,    0,    0,    0,    0,    0,    0,    0,    0,   24,
155    51,   52,    0,    0,    0,    0,    0,    0,    4,    0,
156   103,    0,  103,  103,    0,    0,    0,    0,    0,    0,
157     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
158    49,   50,    0,   68,    0,    0,    0,    0,   63,    0,
159     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
160     0,    0,    0,    0,    0,  104,  105,    0,  102,   55,
161    32,   28,   21,    0,    0,    0,    0,    0,    0,   30,
162     0,    0,    0,    0,   48,    0,    0,    0,    0,    0,
163     0,    0,    0,    0,    0,    0,  103,  103,    0,    0,
164    64,   65,   67,    0,    0,    0,    0,    0,    0,    0,
165     0,   13,   66,   86,    0,    0,  103,    0,    0,    0,
166     0,    0,    0,  124,  123,  127,    0,  103,    0,  103,
167    10,  103,    0,  110,    0,  115,    0,    0,    0,   22,
168     0,   61,   95,    0,    0,   97,    3,    0,    0,    0,
169     0,    0,    0,    0,  103,    0,    0,    0,    0,    0,
170     0,    0,    0,    0,    0,    0,    0,    0,    0,  103,
171   103,  103,  103,  103,    8,    0,    0,    0,    0,    0,
172    73,    0,   78,    0,   77,    0,   80,    0,   79,    0,
173    75,   76,    0,   70,    0,   74,  132,  131,  133,    0,
174     0,    0,    0,    0,  116,    0,    0,    0,    0,    0,
175     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
176   103,    0,    0,    0,  103,  103,  103,    0,    0,    0,
177   103,   72,   71,   82,   81,   84,   83,    0,   69,    0,
178     0,    0,    0,    0,    0,  130,    0,    0,    0,  136,
179   140,    0,    0,    0,    9,  103,  103,    0,  137,    0,
180     0,  103,  135,  139,    0,  138,
181 };
182 #if defined(__cplusplus) || defined(__STDC__)
183 const short yydgoto[] =
184 #else
185 short yydgoto[] =
186 #endif
187 	{                                       1,
188     2,    7,   38,   74,  128,   39,   40,   41,  171,  104,
189    75,  193,   44,   45,   46,   47,   48,   49,  106,    8,
190   129,  234,  194,  195,  196,  266,  260,
191 };
192 #if defined(__cplusplus) || defined(__STDC__)
193 const short yysindex[] =
194 #else
195 short yysindex[] =
196 #endif
197 	{                                      0,
198     0,  -52,    0,    0,    0,    0, 6281,    0,  -83,  -65,
199     0,   27,   28,    0,   43,   46,   29,   48,   50,   51,
200  -218,   64,    0,  -14,   65,   66,    0, 8153, 8153, 6722,
201  -176, -176,    0, 8153,    0,    0, 6722,    0, -165,    0,
202   -38,  -13, 6376,    0,    0,    0,  -32, -232, 8198,    0,
203     0, 7770, 8198, 8198, 8153, 8153,   47, 7835, 7883, 8153,
204    69, 8198, 8198, 8153, 8153, 6722,  -57, -267,  -57,    0,
205     0,    0,   -2, -210,  -41,   79,   80,   85,    0,  -52,
206     0, 8153,    0,    0, 6722, 8153, 7931, 8153, 8153, 8153,
207   -32, -166, 8153, 8153, 8153, 8153, 8153, 8153, -150, 6722,
208     0,    0, 6770,    0, 3731,   88, -210, -210,    0, 1055,
209    93,   94, 6815,  184, 8153,   92, 6892,   96, 6939, 7003,
210  8198,   97,   44, 7048, 7094,    0,    0, 5585,    0,    0,
211     0,    0,    0, -210, 7172, 2108, 2108,  -60, 7216,    0,
212   184,  184,  184,  184,    0,   45,   45,  -57,  -57,  -57,
213   -57, -176,  -60, 6770, 6332,   32,    0,    0, 5632, 5700,
214     0,    0,    0, -148,  184, 8153, 8153, 8153, 8153, 8001,
215   102,    0,    0,    0, 8153, 8153,    0, 8198, 8198,  107,
216   121,  127, 8153,    0,    0,    0, 8153,    0, -130,    0,
217     0,    0, 8045,    0,  -43,    0, 5899, 8153, -119,    0,
218  8153,    0,    0, 1434, 1434,    0,    0,   37, 5431, 6447,
219  6491, 6548,  134, 7281,    0, 6611, 7327, -210,  -45,  -45,
220  6722, 6722, 2656, 8045, 8045, 4777,   90, -210, -210,    0,
221     0,    0,    0,    0,    0, 8045, 8045, 8045, 8045,  -52,
222     0, 8105,    0, 8153,    0, 8153,    0, 8153,    0, 8153,
223     0,    0,  -96,    0, 8153,    0,    0,    0,    0, 8153,
224  8153,  -39,  -37, 7371,    0,  124,  -89, 8198, 5967, -210,
225  -210, -210, -210, -210,  144, 7449, 7493, 7560, 7604, 7648,
226     0, 7726, 8045, 8045,    0,    0,    0, 6659,  146,   95,
227     0,    0,    0,    0,    0,    0,    0, -210,    0, 4777,
228  4777, 4777, 2656,  -51, 6722,    0, -210, 6014,  -85,    0,
229     0,  151, 2656,  -35,    0,    0,    0,  152,    0, 4777,
230  4777,    0,    0,    0, 4777,    0,};
231 #if defined(__cplusplus) || defined(__STDC__)
232 const short yyrindex[] =
233 #else
234 short yyrindex[] =
235 #endif
236 	{                                      0,
237     0, 2742,    0,    0,    0,    0,  194,    0,    0,    0,
238     0,   56,    0,    0,  111,    0, 3174,    0,    0,    0,
239     0,    0,    0,    1,    0,    0,    0,    0,    0,    0,
240     0,    0,    0,    0,    0,    0,    0,    0, 2475,    0,
241  2531, 2375, 4311,    0,    0,    0, 2057, 1630, 3897,    0,
242     0,    0,  154,  154,    0,    0,  382,    0,    0,    0,
243     0,  154,  105,    0,    0,    0,  818,  872, 1143,    0,
244     0,    0,  437, 6065,    0,  -54,  -49,  -44,    0, 2798,
245     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
246  2324,    0,    0,    0,    0,    0,    0,    0,    0,    0,
247     0,    0,    0,    0, 4263,  492, 6065, 6065,    0,    0,
248     0,    0,    0, 3222,    0,    0,    0,    0,    0,    0,
249   154,    0,    0,    0,    0,    0,    0,    0,    0,    0,
250     0,    0,    0, 6065,    0,    0,    0, 2425,    0,    0,
251  3462, 3507, 3552, 3621,    0, 1956, 2007, 1197, 1251, 1522,
252  1576, 3119, 1901,    0,  -23,    0,    0,    0,    0,    0,
253     0,    0,    0,    0, 3830,    0,    0,    0,    0,    0,
254     0,    0,    0,    0,    0,    0,    0,  504,  504,    0,
255     0,    0,   13,    0,    0,    0,  103,    0,    0,    0,
256     0,    0,  123,    0,    0,    0,    0,    0,  763,    0,
257     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
258     0,    0,    0,    0,    0,    0,    0, 4830,  173,  242,
259     0,    0,  140,  297,  350,    0,    0, 6065, 4878,    0,
260     0,    0,    0,    0,    0, 3945, 4017, 4106, 4208, 2848,
261     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
262     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
263     0,    0,    0,  141,    0,    0,    0,  105,    0, 4952,
264  5145, 5219, 5266, 5318,    0,    0,    0,    0,    0,    0,
265     0,    0,  398,  484,    0,    0,    0,    0,    0,    0,
266     0,    0,    0,    0,    0,    0,    0, 6065,    0,    0,
267     0,    0,  161,    0,    0,    0, 5534,    0, 6180,    0,
268     0,    0,  161,    0,    0,    0,    0,    0,    0,    0,
269     0,    0,    0,    0,    0,    0,};
270 #if defined(__cplusplus) || defined(__STDC__)
271 const short yygindex[] =
272 #else
273 short yygindex[] =
274 #endif
275 	{                                      0,
276   -17,    0,    0, 4597,  -87,    0,    0,    0,    0,   12,
277    23, 4555,  -12,   -8,   -3, 8435, 4752,    0,  -70,    0,
278     0,    0, -124, -191,    0, -264,   -7,
279 };
280 #define YYTABLESIZE 8719
281 #if defined(__cplusplus) || defined(__STDC__)
282 const short yytable[] =
283 #else
284 short yytable[] =
285 #endif
286 	{                                     130,
287    85,  285,   82,  286,   97,  319,    6,  313,   17,   95,
288    93,   82,   94,   18,   96,  233,  258,   16,   19,  159,
289   160,   82,   80,   82,   76,   82,  281,   82,   77,   42,
290    85,  265,  156,   78,  101,  102,   98,   85,  312,   50,
291    85,   85,   85,   85,   85,   85,  197,   85,  318,   82,
292   126,  127,   70,  125,   99,   62,  100,   51,   85,   85,
293    85,   98,   85,   85,  111,  112,   52,   53,   61,  101,
294   102,  125,  203,  122,  123,  158,   63,  241,  259,   99,
295   242,   97,   54,  156,   81,   55,   95,   58,   56,   59,
296    60,   96,   62,   85,   85,   79,   62,   62,   62,   62,
297    62,  267,   62,   62,   64,   65,  115,  138,  121,   99,
298    37,  265,   85,   62,   62,   62,   24,   62,   62,  131,
299   132,  265,  153,   85,   85,  133,  145,   33,   34,   35,
300   152,  158,  172,  162,  163,  166,  174,  173,   98,  168,
301   269,   76,  215,  128,  208,   77,  221,   37,   62,   62,
302    78,   37,   37,   37,   37,   37,   99,   37,  199,  200,
303   222,  128,  227,  118,  126,  127,  223,   62,   37,   37,
304    37,   84,   37,   37,  251,  309,  310,  311,   62,   62,
305   268,  118,  288,  289,  292,  305,  316,  306,  240,  219,
306   220,  317,  322,    1,   92,  323,  324,   92,  117,  118,
307   326,  117,    0,   37,   37,    0,    0,    3,    4,    5,
308   308,    0,  261,  120,    0,    0,  230,  231,  232,  257,
309     0,    0,   37,   66,    0,    0,   28,    0,   29,   83,
310    84,  120,    0,   37,   37,   17,   17,    0,   83,   84,
311    18,   18,   92,  262,  263,   19,   19,    0,   83,   84,
312    83,   84,   83,   84,   83,   84,    0,   85,   85,   85,
313    85,   85,   85,   85,   85,   85,   16,   16,   85,   85,
314    85,    0,  125,  125,  125,   85,   83,   84,    0,  290,
315     0,   85,  122,   85,   85,   85,   85,   85,    0,   85,
316    85,   85,   85,   85,   85,   85,   85,   85,    0,   85,
317   122,   85,   85,   85,   85,   85,   85,    0,    0,    0,
318   304,    0,   62,   62,   62,   62,   62,   62,   62,   62,
319    62,   24,    0,   62,   62,   62,    0,  314,    0,    0,
320    62,    0,   33,   34,   35,    0,   62,  126,   62,   62,
321    62,   62,   62,    0,   62,   62,   62,   62,   62,   62,
322    62,   62,   62,    0,   62,  126,   62,   62,   62,   62,
323    62,   62,  128,  128,  128,    0,    0,   37,   37,   37,
324    37,   37,   37,   37,   37,   37,    0,    0,   37,   37,
325    37,   57,  118,  118,  118,   37,    0,    0,    0,    0,
326   129,   37,    0,   37,   37,   37,   37,   37,    0,   37,
327    37,   37,   37,   37,   37,   37,   37,   37,  129,   37,
328     0,   37,   37,   37,   37,   37,   37,    0,   57,    0,
329     0,   57,   57,   57,   57,   57,   57,    0,   57,    0,
330     0,    0,  120,  120,  120,    0,   89,    0,  119,   57,
331    57,    0,    0,   57,   57,    0,   12,   13,    0,    0,
332     0,   14,   15,   16,    0,    0,  119,    0,    0,    0,
333     0,    0,    0,    0,   17,    0,   18,   19,   20,    0,
334    22,    0,    0,   89,   57,   57,   89,   89,   89,   89,
335    89,   89,   27,   89,    0,   31,   32,   33,   34,   35,
336     0,   91,    0,   57,   89,   89,   89,    0,   89,   89,
337     0,  122,  122,  122,   57,   57,    0,    0,    0,    0,
338     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
339     0,    0,    0,    0,  121,    0,    0,    0,   91,   89,
340    89,   91,   91,   91,   91,    0,   91,    0,   91,    0,
341     0,    0,  121,    0,   92,    0,    0,    0,    0,   91,
342    91,   91,    0,   91,   91,    0,  126,  126,  126,   89,
343    89,    0,   92,    0,    0,   92,    0,    0,    0,    0,
344     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
345     0,    0,    0,    0,   91,   91,    0,    0,    0,    0,
346     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
347     0,    0,    0,   91,    0,    0,    0,    0,    0,  129,
348   129,  129,    0,    0,   91,   91,    0,    0,    0,    0,
349     0,    0,    0,    0,    0,    0,    0,   92,    0,    0,
350     0,    0,    0,    0,    0,    0,    0,    0,   57,   57,
351    57,   57,   57,   57,   57,   57,   57,    0,    0,   57,
352    57,   57,    0,    0,    0,    0,   57,  119,  119,  119,
353     0,    0,   57,    0,   57,   57,   57,   57,   57,    0,
354    57,   57,   57,   57,   57,   57,   57,   57,   57,    0,
355    57,    0,   57,   57,   57,   57,   57,   57,    0,    0,
356     0,    0,    0,   89,   89,   89,   89,   89,   89,   89,
357    89,   89,    0,    0,   89,   89,   89,    0,    0,    0,
358     0,   89,    0,    0,    0,    0,    0,   89,    0,   89,
359    89,   89,   89,   89,    0,   89,   89,   89,   89,   89,
360    89,   89,   89,   89,    0,   89,    0,   89,   89,   89,
361    89,   89,   89,  121,  121,  121,    0,    0,   91,   91,
362    91,   91,   91,   91,   91,   91,   91,    0,    0,   91,
363    91,   91,   23,   92,   92,   92,   91,    0,   92,    0,
364     0,    0,   91,    0,   91,   91,   91,   91,   91,    0,
365    91,   91,   91,   91,   91,   91,   91,   91,   91,    0,
366    91,    0,   91,   91,   91,   91,   91,   91,    0,   23,
367     0,    0,   23,   23,   23,   23,   23,   23,    0,   23,
368     0,    0,    0,    0,    0,    0,    0,   54,    0,    0,
369    23,   23,   23,    0,   23,   23,    0,    0,    0,    0,
370     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
371     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
372     0,    0,    0,    0,   54,   23,   23,   54,   54,   54,
373    54,   54,   54,    0,   54,    0,    0,    0,    0,    0,
374     0,   39,    0,    0,   23,   54,   54,   54,    0,   54,
375    54,    0,    0,    0,    0,   23,   23,    0,    0,    0,
376     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
377     0,    0,    0,    0,    0,    0,    0,    0,   39,    0,
378    54,   39,   39,   39,   39,   39,   39,    0,   39,    0,
379     0,    0,    0,    0,    0,    0,    0,    0,    0,   39,
380    39,   39,    0,   39,   39,    0,    0,    0,    0,    0,
381    54,   54,    0,    0,    0,    0,    0,    0,    0,    0,
382     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
383     0,    0,    0,    0,   39,   39,    0,    0,    0,    0,
384     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
385     0,    0,    0,   39,    0,    0,    0,    0,    0,    0,
386     0,    0,    0,    0,   39,   39,    0,    0,    0,    0,
387     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
388     0,    0,    0,    0,    0,    0,    0,    0,    0,   23,
389    23,   23,   23,   23,   23,   23,   23,   23,    0,    0,
390    23,   23,   23,    0,    0,    0,    0,   23,    0,    0,
391     0,    0,    0,   23,    0,   23,   23,   23,   23,   23,
392     0,   23,   23,    0,   23,   23,   23,   23,   23,   23,
393     0,   23,    0,   23,   23,   23,   23,   23,   23,    0,
394     0,    0,    0,    0,   54,   54,   54,   54,   54,   54,
395    54,   54,   54,    0,    0,   54,   54,   54,    0,    0,
396     0,    0,   54,    0,   66,  161,    0,   28,   54,   29,
397    54,   54,   54,   54,   54,    0,   54,   54,   54,   54,
398    54,   54,   54,   54,   54,    0,   54,   86,   54,   54,
399    54,   54,   54,   54,    0,    0,    0,    0,   39,   39,
400    39,   39,   39,   39,   39,   39,   39,    0,    0,   39,
401    39,   39,   53,    0,    0,    0,   39,    0,    0,    0,
402     0,    0,   39,    0,   39,   39,   39,   39,   39,    0,
403    39,   39,   39,   39,   39,   39,   39,   39,   39,    0,
404    39,    0,   39,    0,    0,   39,   39,   39,    0,   53,
405     0,    0,   53,   53,   53,   53,   53,   53,    0,   53,
406     0,    0,    0,    0,    0,    0,   44,    0,    0,    0,
407    53,   53,   53,    0,   53,   53,    0,    0,    0,    0,
408     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
409     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
410     0,    0,    0,   44,    0,   53,   44,   44,   44,   44,
411    44,   44,    0,   44,    0,    0,    0,    0,    0,    0,
412    45,    0,    0,    0,   44,   44,   44,    0,   44,   44,
413     0,    0,    0,    0,    0,   53,   53,    0,    0,    0,
414     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
415     0,    0,    0,    0,    0,    0,    0,   45,    0,   44,
416    45,   45,   45,   45,   45,   45,    0,   45,    0,    0,
417     0,    0,    0,    0,    0,    0,    0,    0,   45,   45,
418    45,    0,   45,   45,    0,    0,    0,   12,   13,   44,
419    44,    0,   14,   15,   16,    0,    0,    0,    0,    0,
420     0,    0,    0,    0,    0,   17,    0,   18,   19,   20,
421     0,   22,    0,   45,    0,    0,   23,   24,   25,   26,
422     0,    0,    0,   27,    0,    0,   31,   32,   33,   34,
423    35,    0,    0,    0,    0,    0,    0,    0,    0,    0,
424     0,    0,    0,   45,   45,    0,    0,    0,    0,    0,
425     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426     0,    0,    0,    0,    0,    0,    0,    0,    0,   53,
427    53,   53,   53,   53,   53,   53,   53,   53,    0,    0,
428    53,   53,   53,    0,    0,    0,    0,   53,    0,    0,
429     0,    0,    0,   53,    0,   53,   53,   53,   53,   53,
430     0,   53,   53,   53,   53,   53,   53,   53,   53,   53,
431     0,   53,    0,   53,   53,   53,   53,   53,   53,    0,
432     0,    0,    0,   44,   44,   44,   44,   44,   44,   44,
433    44,   44,    0,    0,   44,   44,   44,    0,    0,    0,
434     0,   44,    0,   66,    0,    0,   28,   44,   29,   44,
435    44,   44,   44,   44,    0,   44,   44,   44,   44,   44,
436    44,   44,   44,   44,    0,   44,    0,   44,   44,   44,
437    44,   44,   44,    0,    0,    0,    0,   45,   45,   45,
438    45,   45,   45,   45,   45,   45,    0,    0,   45,   45,
439    45,   46,    0,    0,    0,   45,    0,    0,    0,    0,
440     0,   45,    0,   45,   45,   45,   45,   45,    0,   45,
441    45,   45,   45,   45,   45,   45,   45,   45,    0,   45,
442     0,   45,   45,   45,   45,   45,   45,    0,   46,    0,
443     0,   46,   46,   46,   46,   46,   46,    0,   46,    0,
444     0,    0,    0,    0,    0,   47,    0,    0,    0,   46,
445    46,   46,    0,   46,   46,    0,    0,    0,    0,    0,
446     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
447     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
448     0,    0,   47,    0,   46,   47,   47,   47,   47,   47,
449    47,    0,   47,    0,    0,    0,    0,    0,    0,   39,
450     0,    0,    0,   47,   47,   47,    0,   47,   47,    0,
451     0,    0,    0,    0,   46,   46,    0,    0,    0,    0,
452     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
453     0,    0,    0,    0,    0,    0,   39,    0,   47,   39,
454    39,   39,   39,   39,   39,    0,   39,    0,    0,    0,
455     0,    0,    0,    0,    0,    0,    0,   39,   39,   39,
456     0,   39,   39,    0,  126,  127,   12,   13,   47,   47,
457     0,   14,   15,   16,    0,    0,    0,    0,    0,    0,
458     0,    0,    0,    0,   17,    0,   18,   19,   20,    0,
459    22,    0,   39,   39,    0,   23,   24,   25,   26,    0,
460     0,    0,   27,    0,    0,   31,   32,   33,   34,   35,
461     0,   39,    0,    0,    0,    0,    0,    0,    0,    0,
462     0,    0,   39,   39,    0,    0,    0,    0,    0,    0,
463     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
464     0,    0,    0,    0,    0,    0,    0,    0,   46,   46,
465    46,   46,   46,   46,   46,   46,   46,    0,    0,   46,
466    46,   46,    0,    0,    0,    0,   46,    0,    0,    0,
467     0,    0,   46,    0,   46,   46,   46,   46,   46,    0,
468    46,   46,   46,   46,   46,   46,   46,   46,   46,    0,
469    46,    0,   46,   46,   46,   46,   46,   46,    0,    0,
470     0,    0,   47,   47,   47,   47,   47,   47,   47,   47,
471    47,    0,    0,   47,   47,   47,    0,    0,    0,    0,
472    47,    0,    0,    0,    0,    0,   47,    0,   47,   47,
473    47,   47,   47,    0,   47,   47,   47,   47,   47,   47,
474    47,   47,   47,    0,   47,    0,   47,   47,   47,   47,
475    47,   47,    0,    0,    0,    0,   39,   39,   39,   39,
476    39,   39,   39,   39,   39,    0,    0,   39,   39,   39,
477    36,    0,    0,    0,   39,    0,    0,    0,    0,    0,
478    39,    0,   39,   39,   39,   39,   39,    0,    0,   39,
479    39,   39,   39,   39,   39,   39,   39,    0,   39,    0,
480    39,    0,    0,   39,   39,   39,    0,   36,    0,    0,
481    36,   36,   36,   36,   36,   36,    0,   36,    0,    0,
482     0,    0,    0,    0,    0,   42,    0,    0,   36,   36,
483    36,    0,   36,    0,    0,    0,    0,    0,    0,    0,
484     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
485     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
486     0,    0,    0,   36,   36,   42,   42,    0,   42,   42,
487    42,    0,    0,    0,    0,    0,   43,    0,    0,    0,
488     0,    0,   36,   42,   42,   42,    0,   42,   42,    0,
489     0,    0,    0,   36,   36,    0,    0,    0,    0,    0,
490     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
491     0,    0,    0,    0,    0,    0,   43,   43,   42,   43,
492    43,   43,    0,    0,    0,    0,   33,    0,    0,    0,
493     0,    0,    0,    0,   43,   43,   43,    0,   43,   43,
494     0,    0,    0,    0,    0,    0,    0,    0,   42,   42,
495     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
496     0,    0,    0,    0,    0,    0,   33,   33,    0,   43,
497    33,    0,    0,    0,    0,    0,    0,    0,    0,    0,
498     0,    0,    0,    0,   33,   33,   33,    0,   33,   33,
499     0,    0,    0,    0,    0,    0,    0,    0,    0,   43,
500    43,    0,    0,    0,    0,    0,    0,    0,    0,    0,
501     0,    0,    0,    0,    0,    0,    0,   37,    0,   33,
502    28,    0,   29,    0,    0,    0,    0,   36,   36,   36,
503    36,   36,   36,   36,   36,   36,    0,    0,   36,   36,
504    36,    0,    0,    0,    0,   36,    0,    0,    0,   33,
505    33,   36,    0,   36,   36,   36,   36,   36,    0,   36,
506     0,    0,   36,   36,   36,   36,   36,   36,    0,   36,
507     0,   36,   36,   36,   36,   36,   36,    0,    0,    0,
508     0,    0,   42,   42,   42,   42,   42,   42,   42,   42,
509    42,    0,    0,   42,   42,   42,    0,    0,    0,    0,
510    42,    0,    0,    0,    0,    0,   42,    0,   42,   42,
511    42,   42,   42,    0,   42,   42,   42,   42,   42,   42,
512    42,   42,   42,    0,   42,    0,   42,   42,   42,   42,
513    42,   42,    0,   43,   43,   43,   43,   43,   43,   43,
514    43,   43,    0,    0,   43,   43,   43,    0,    0,    0,
515     0,   43,    0,    0,    0,    0,    0,   43,    0,   43,
516    43,   43,   43,   43,    0,   43,   43,   43,   43,   43,
517    43,   43,   43,   43,    0,   43,    0,   43,   43,   43,
518    43,   43,   43,   33,   33,   33,   33,   33,   33,   33,
519    33,   33,    0,   34,   33,   33,   33,    0,    0,    0,
520     0,    0,    0,    0,    0,    0,    0,   33,    0,   33,
521    33,   33,   33,   33,    0,   33,   33,   33,   33,   33,
522    33,   33,   33,   33,    0,   33,    0,   33,   33,   33,
523    33,   33,   33,   34,   34,    0,   11,   34,  126,  127,
524    12,   13,    0,    0,   14,   14,   15,   16,    0,    0,
525     0,   34,   34,   34,    0,   34,   34,    0,   17,    0,
526    18,   19,   20,    0,   22,    0,    0,    0,    0,   23,
527    24,   25,   26,    0,    0,    0,   27,    0,   30,   31,
528    32,   33,   34,   35,   14,    0,   34,   14,    0,   14,
529     0,    0,    0,    0,   15,    0,    0,    0,    0,    0,
530     0,    0,    0,   14,    0,    0,    0,    0,    0,    0,
531     0,    0,    0,    0,    0,    0,   34,   34,    0,    0,
532     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
533     0,    0,    0,    0,   15,    0,    0,   15,    0,   15,
534     0,    0,    0,    0,   12,    0,    0,    0,    0,    0,
535     0,    0,    0,   15,    0,    0,    0,    0,    0,    0,
536     0,    0,    0,    0,    0,    0,    0,   14,    0,    0,
537     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
538     0,    0,    0,    0,   12,    0,    0,   12,    0,   12,
539     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
540     7,    0,    0,   12,    0,    0,    0,    0,    0,    0,
541     0,    0,    0,    0,    0,    0,    0,   15,    0,    0,
542     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
543     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
544     7,    0,    0,    7,    0,    7,    0,    0,    0,    0,
545    34,   34,   34,   34,   34,   34,   34,   34,   34,    7,
546     0,   34,   34,   34,    0,    0,    0,   12,    0,    0,
547     0,    0,    0,    0,   34,    0,   34,   34,   34,   34,
548    34,    0,   34,   34,   34,   34,   34,   34,   34,   34,
549    34,    0,   34,    0,   34,   34,   34,   34,   34,   34,
550     0,   14,   14,   14,   14,   14,   14,   14,   14,    0,
551     0,    0,   14,   14,   14,    0,    0,    0,    0,    0,
552     0,    0,    0,    0,    0,   14,    0,   14,   14,   14,
553    14,   14,    0,    0,    0,    0,   14,   14,   14,   14,
554     0,    0,    0,   14,    0,   14,   14,   14,   14,   14,
555    14,   15,   15,   15,   15,   15,   15,   15,   15,    0,
556     0,    0,   15,   15,   15,   66,    0,    0,   28,    0,
557    29,    0,    0,    0,    0,   15,    0,   15,   15,   15,
558    15,   15,    0,    0,    0,    0,   15,   15,   15,   15,
559     0,    0,    0,   15,    0,   15,   15,   15,   15,   15,
560    15,   12,   12,   12,   12,    0,   12,   12,   12,    0,
561     0,    6,   12,   12,   12,    0,    0,    0,    0,    0,
562     0,    0,    0,    0,    0,   12,    0,   12,   12,   12,
563    12,   12,    0,    0,    0,    0,   12,   12,   12,   12,
564     0,    0,    0,   12,    0,   12,   12,   12,   12,   12,
565    12,    6,    0,    0,    6,    0,    6,    7,    7,    7,
566     7,    7,    7,    7,    7,    0,    0,    5,    7,    7,
567     7,    0,    0,    0,    0,    0,    0,    0,    0,    0,
568     0,    7,    0,    7,    7,    7,    7,    7,    0,    0,
569     0,    0,    7,    7,    7,    7,    0,    0,    0,    7,
570     0,    7,    7,    7,    7,    7,    7,    5,    0,    0,
571     5,    0,    5,    0,    0,    0,    0,    2,    0,    0,
572     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
573     0,    0,    0,    0,    6,    0,    0,    0,    0,    0,
574     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
575     0,    0,    0,    0,    0,    0,    0,    2,    0,    0,
576     2,    0,    2,    0,    0,    0,    0,    0,    0,    0,
577     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
578     0,    0,    0,    0,    0,    0,    0,    0,   12,   13,
579     5,  178,  179,   14,   15,   16,    0,    0,    0,    0,
580     0,  183,  184,  185,  186,  187,   17,    0,   18,   19,
581    20,    0,   22,  189,    0,    0,    0,   23,   24,   25,
582    26,    0,    0,    0,   27,    0,    0,   31,   32,   33,
583    34,   35,    0,    0,    0,    0,    0,    0,    0,    0,
584     2,    0,    0,    0,    0,    0,    0,    0,    0,    0,
585     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
586     0,    0,    0,    0,    0,    0,    0,    0,    6,    6,
587     6,    0,    0,    0,    6,    6,    0,    0,    0,    6,
588     6,    6,    0,    0,    0,    0,    0,    0,    0,    0,
589     0,    0,    6,    0,    6,    6,    6,    6,    6,    0,
590     0,    0,    0,    6,    6,    6,    6,    0,    0,    0,
591     6,    0,    6,    6,    6,    6,    6,    6,    0,    0,
592     0,    0,    0,    0,    5,    5,    5,    0,    0,    0,
593     5,    5,    0,    0,    0,    5,    5,    5,    0,    0,
594     0,    0,    0,    0,    0,    0,    0,    0,    5,    0,
595     5,    5,    5,    5,    5,    0,    0,    0,    0,    5,
596     5,    5,    5,    0,    0,    0,    5,    0,    5,    5,
597     5,    5,    5,    5,    2,    2,    2,    0,    0,    0,
598     2,    2,    0,    0,    0,    2,    2,    2,   60,    0,
599     0,    0,    0,    0,    0,    0,    0,    0,    2,    0,
600     2,    2,    2,    2,    2,    0,    0,    0,    0,    2,
601     2,    2,    2,    0,    0,    0,    2,    0,    2,    2,
602     2,    2,    2,    2,    0,   60,    0,    0,   60,   60,
603    60,   60,   60,   60,    0,   60,    0,    0,    0,    0,
604     0,    0,    0,   56,    0,    0,   60,   60,   60,    0,
605    60,   60,    0,    0,    0,    0,    0,    0,    0,    0,
606     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
607     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
608    56,   60,   60,   56,   56,   56,   56,   56,   56,    0,
609    56,   58,    0,    0,    0,    0,    0,    0,    0,    0,
610    60,   56,   56,    0,    0,   56,   56,    0,    0,    0,
611     0,   60,   60,    0,    0,    0,    0,    0,    0,    0,
612     0,    0,    0,    0,    0,    0,    0,    0,   58,    0,
613     0,    0,   58,   58,    0,   58,   56,   56,   58,    0,
614     0,    0,    0,    0,    0,    0,    0,    0,    0,   58,
615    58,   58,    0,   58,   58,   56,    0,    0,    0,    0,
616     0,    0,    0,    0,    0,    0,   56,   56,    0,    0,
617     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
618     0,    0,    0,    0,   58,   58,    0,    0,    0,    0,
619     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
620     0,    0,    0,   58,    0,    0,    0,    0,    0,    0,
621     0,    0,    0,    0,   58,   58,    0,    0,    0,    0,
622     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
623     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
624     0,    0,    0,    0,    0,   60,   60,   60,   60,   60,
625    60,   60,   60,   60,    0,    0,   60,   60,   60,    0,
626     0,    0,    0,   60,    0,    0,    0,    0,    0,   60,
627     0,   60,   60,   60,   60,   60,    0,   60,   60,   60,
628    60,    0,   60,   60,   60,   60,    0,   60,    0,   60,
629    60,   60,    0,    0,    0,    0,    0,    0,    0,    0,
630    56,   56,   56,   56,   56,   56,   56,   56,   56,    0,
631     0,   56,   56,   56,    0,    0,    0,    0,   56,    0,
632     0,    0,    0,    0,   56,    0,   56,   56,   56,   56,
633    56,   29,   56,   56,   56,   56,    0,   56,   56,   56,
634    56,    0,   56,    0,   56,   56,   56,    0,   58,   58,
635    58,   58,   58,   58,    0,    0,   58,    0,    0,    0,
636     0,    0,    0,    0,    0,    0,   58,    0,   29,    0,
637     0,    0,   29,   29,    0,   29,   25,   58,   29,    0,
638    58,   58,   58,   58,   58,   58,   58,   58,   58,   29,
639    29,   29,   58,   29,   29,    0,    0,    0,    0,    0,
640     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
641     0,    0,    0,   25,    0,    0,    0,   25,   25,    0,
642    25,   27,    0,   25,   29,   29,    0,    0,    0,    0,
643     0,    0,    0,    0,   25,   25,   25,    0,   25,   25,
644     0,    0,    0,   29,    0,    0,    0,    0,    0,    0,
645     0,    0,    0,    0,   29,   29,    0,    0,   27,    0,
646     0,    0,   27,   27,    0,   27,    0,    0,   27,   25,
647    25,    0,    0,    0,    0,    0,    0,    0,    0,   27,
648    27,   27,    0,   27,   27,    0,    0,    0,   25,    0,
649    26,    0,    0,    0,    0,    0,    0,    0,    0,   25,
650    25,    0,    0,    0,    0,    0,    0,    0,    0,    0,
651     0,    0,    0,    0,   27,   27,    0,    0,    0,    0,
652     0,    0,    0,    0,    0,    0,    0,   26,    0,    0,
653     0,   26,   26,   27,   26,    0,    0,   26,    0,    0,
654     0,    0,    0,    0,   27,   27,    0,    0,   26,   26,
655    26,    0,   26,   26,    0,    0,    0,    0,    0,    0,
656     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
657     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
658     0,    0,    0,   26,   26,    0,    0,    0,   29,   29,
659    29,   29,   29,   29,    0,    0,   29,    0,    0,    0,
660     0,    0,   26,    0,    0,    0,   29,    0,    0,    0,
661     0,    0,    0,   26,   26,    0,    0,   29,    0,    0,
662    29,   29,   29,   29,   29,   29,   29,   29,   29,    0,
663     0,    0,   29,   25,   25,   25,   25,   25,   25,    0,
664    66,   25,    0,   28,  157,   29,    0,    0,    0,    0,
665     0,   25,    0,    0,    0,    0,    0,    0,    0,    0,
666     0,    0,   25,   86,    0,   25,   25,   25,   25,   25,
667    25,   25,   25,   25,    0,    0,    0,   25,   27,   27,
668    27,   27,   27,   27,    0,    0,   27,    0,    0,    0,
669     0,    0,    0,    0,    0,    0,   27,    0,    0,   59,
670     0,    0,    0,    0,    0,    0,    0,   27,    0,    0,
671    27,   27,   27,   27,   27,   27,   27,   27,   27,    0,
672     0,    0,   27,    0,    0,    0,    0,    0,    0,    0,
673     0,    0,    0,    0,    0,    0,   59,    0,    0,    0,
674    59,   59,    0,   59,    0,    0,   59,   26,   26,   26,
675    26,   26,   26,    0,    0,   26,    0,   59,   59,   59,
676     0,   59,   59,    0,    0,   26,   92,    0,    0,    0,
677     0,    0,    0,    0,    0,    0,   26,    0,    0,   26,
678    26,   26,   26,   26,   26,   26,   26,   26,    0,    0,
679     0,   26,   59,   59,    0,    0,    0,    0,    0,    0,
680     0,    0,    0,   92,    0,    0,    0,   92,   92,    0,
681    92,   59,    0,   92,   20,    0,    0,    0,    0,    0,
682     0,    0,   59,   59,   92,   92,   92,    0,   92,   92,
683     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
684     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
685     0,   20,    0,    0,    0,   20,   20,    0,   20,   92,
686    92,   20,    0,   12,   13,    0,    0,    0,   14,   15,
687    16,    0,   20,   20,   20,    0,   20,    0,   92,    0,
688     0,   17,    0,   18,   19,   20,   35,   22,    0,   92,
689    92,    0,   23,   24,   25,   26,    0,    0,    0,   27,
690     0,    0,   31,   32,   33,   34,   35,   20,   20,    0,
691     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
692     0,    0,    0,   35,    0,    0,   20,   35,   35,    0,
693    35,    0,    0,   35,    0,    0,    0,   20,   20,    0,
694     0,    0,    0,    0,   35,   35,   35,    0,   35,    0,
695     0,    0,    0,    0,    0,    0,   59,   59,   59,   59,
696    59,   59,    0,    0,   59,    0,    0,    0,    0,    0,
697     0,    0,    0,    0,   59,   93,    0,    0,    0,   35,
698    35,    0,    0,    0,    0,   59,    0,    0,   59,   59,
699    59,   59,   59,   59,   59,   59,   59,    0,   35,    0,
700    59,    0,    0,    0,    0,    0,    0,    0,    0,   35,
701    35,    0,   93,    0,    0,    0,   93,   93,    0,   93,
702     0,    0,   93,   92,   92,   92,   92,   92,   92,    0,
703     0,   92,    0,   93,   93,   93,    0,   93,    0,    0,
704     0,   92,    0,    0,    0,    0,    0,    0,    0,    0,
705     0,    0,   92,    0,    0,   92,   92,   92,    0,    0,
706     0,    0,   92,   92,    0,    0,    0,   92,   93,   93,
707     0,   20,   20,   20,   20,   20,   20,   94,    0,   20,
708     0,    0,    0,    0,    0,    0,    0,   93,    0,   20,
709     0,    0,    0,    0,    0,    0,    0,    0,   93,   93,
710    20,    0,    0,   20,   20,   20,    0,    0,    0,    0,
711    20,   20,    0,    0,   94,   20,    0,    0,   94,   94,
712     0,   94,    0,    0,   94,    0,    0,    0,    0,    0,
713     0,    0,   90,    0,    0,   94,   94,   94,    0,   94,
714     0,    0,    0,   35,   35,   35,   35,   35,   35,    0,
715     0,   35,    0,    0,    0,    0,    0,    0,    0,    0,
716     0,   35,    0,    0,    0,    0,    0,    0,    0,   90,
717    94,   94,   35,   90,   90,   35,   35,   35,    0,   90,
718    16,    0,   35,   35,    0,    0,    0,   35,    0,   94,
719    90,   90,   90,    0,   90,    0,    0,    0,    0,    0,
720    94,   94,    0,    0,    0,    0,    0,    0,    0,    0,
721     0,    0,    0,    0,    0,    0,    0,   16,    0,    0,
722     0,   16,   16,    0,   16,   90,   90,   16,    0,    0,
723     0,    0,   93,   93,   93,   93,   93,   93,   16,   16,
724    93,    0,    0,    0,   90,    0,    0,    0,    0,    0,
725    93,    0,    0,    0,    0,   90,   90,    0,    0,    0,
726     0,   93,    0,    0,   93,   93,   93,    0,    0,    0,
727     0,   93,   93,   16,   16,    0,   93,    0,    0,    0,
728     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
729     0,    0,   16,    0,    0,    0,    0,    0,    0,    0,
730     0,    0,    0,   16,   16,    0,    0,    0,    0,    0,
731     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
732     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
733     0,    0,    0,    0,   94,   94,   94,   94,   94,   94,
734     0,    0,   94,    0,    0,    0,    0,    0,    0,    0,
735     0,    0,   94,    0,    0,    0,    0,    0,    0,    0,
736     0,    0,    0,   94,    0,    0,   94,   94,   94,    0,
737     0,    0,    0,   94,   94,    0,    0,    0,   94,    0,
738     0,    0,    0,    0,    0,    0,    0,    0,    0,   90,
739    90,   90,   90,   90,   90,    0,    0,   90,    0,    0,
740     0,    0,    0,    0,    0,    0,    0,   90,    0,    0,
741     0,    0,    0,    0,    0,    0,    0,    0,   90,    0,
742     0,   90,   90,   90,    0,    0,    0,    0,   90,   90,
743     0,   43,    0,   90,    0,    0,    0,   16,   16,   16,
744    16,   16,   16,    0,    0,   16,    0,    0,    0,    0,
745     0,    0,    0,    0,   43,   16,    0,    0,    0,    0,
746     0,   43,    0,    0,    0,    0,   16,    0,    0,   16,
747    16,   16,    0,  105,    0,    0,  110,  105,  105,  113,
748   114,   16,  117,  119,  120,    0,  105,  105,  124,  125,
749    43,    0,    0,    0,    0,    0,    0,    0,    0,    0,
750     0,    0,    0,    0,    0,    0,  135,    0,    0,   43,
751   139,  141,  142,  143,  144,    0,  107,  108,    0,    0,
752     0,    0,    0,    0,   43,    0,    0,  155,    0,    0,
753     0,    0,    0,    0,    0,    0,    0,    0,    0,  165,
754     0,    0,    0,    0,    0,  105,    0,  134,    0,  136,
755   137,    0,    0,    0,    0,    0,    0,    0,    0,    0,
756    43,   43,    0,    0,    0,    0,    0,    0,    0,    0,
757     0,    0,    0,    0,    0,    0,    0,    0,  155,    0,
758     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
759   209,  210,  211,  212,  214,    0,    0,    0,    0,  216,
760   217,    0,  105,  105,    0,    0,    0,  224,    0,    0,
761     0,  225,    0,    0,    0,    0,    0,    0,    0,    0,
762     0,    0,  236,  204,  205,  237,    0,    0,  238,  239,
763     0,    0,    0,    0,    0,    0,    0,    0,   57,    0,
764     0,    0,    0,  218,    0,   43,   43,  264,    0,   68,
765    68,    0,   71,   72,  226,   68,  228,    0,  229,    0,
766     0,    0,    0,    0,   68,    0,  276,    0,  277,    0,
767   278,    0,  279,    0,  280,    0,    0,    0,    0,  282,
768     0,  253,    0,    0,  283,  284,   66,    0,    0,   28,
769     0,   29,  105,    0,    0,    0,  270,  271,  272,  273,
770   274,    0,    0,    0,    0,  192,    0,    0,    0,    0,
771     0,    0,   43,    0,   68,   68,   68,   68,   68,   68,
772     0,    0,    0,    0,    0,    0,   68,    0,    0,   43,
773     0,   68,    0,    0,   68,   68,    0,    0,   68,  114,
774    68,   68,  114,    0,  114,   68,   68,  298,    0,    0,
775     0,  300,  301,  302,    0,    0,   68,  307,  114,    0,
776    68,    0,   68,   68,   68,   68,    0,    0,    0,  190,
777     0,    0,    0,  202,    0,    0,   68,    0,    0,    0,
778     0,    0,  320,  321,    0,    0,   68,  113,  325,    0,
779   113,    0,  113,    0,    0,    0,    0,    0,    0,    0,
780     0,    0,    0,    0,    0,    0,  113,    0,    0,    0,
781     0,    0,    0,    0,   68,    0,    0,    0,    0,    0,
782     0,    0,  114,    0,  114,    0,    0,    0,    0,    0,
783    68,   68,   68,   68,    0,   68,    0,   68,   68,    0,
784     0,    0,    0,    0,    0,   68,   68,    0,    0,    0,
785     0,    0,    0,    0,    0,    0,    0,   68,   68,   68,
786    68,  107,    0,    0,  107,    0,  107,    0,    0,    0,
787   113,    0,  113,    0,    0,    0,    0,    0,    0,    0,
788   107,    0,    0,    0,    0,   68,    0,    0,    0,    0,
789     0,    0,    0,    0,    0,    0,    0,   68,   68,   68,
790    68,   68,    0,   68,   68,   68,  177,  126,  127,   12,
791    13,    0,  178,  179,   14,   15,   16,  180,    0,  181,
792   182,    0,  183,  184,  185,  186,  187,   17,  188,   18,
793    19,   20,    0,   22,  189,    0,    0,    0,   23,   24,
794    25,   26,    0,    0,  107,   27,  107,    0,   31,   32,
795    33,   34,   35,    0,    0,    0,    0,    0,    0,  114,
796     0,    0,  114,  114,    0,  114,  114,  114,  114,  114,
797   114,  114,  114,  114,    0,  114,  114,  114,  114,  114,
798   114,  114,  114,  114,  114,    0,  114,  114,    0,    0,
799     0,  114,  114,  114,  114,    0,    0,    0,  114,    0,
800     0,  114,  114,  114,  114,  114,    0,  113,    0,    0,
801   113,  113,    0,  113,  113,  113,  113,  113,  113,  113,
802   113,  113,    0,  113,  113,  113,  113,  113,  113,  113,
803   113,  113,  113,    0,  113,  113,    0,    0,    0,  113,
804   113,  113,  113,    0,    0,    0,  113,    0,    0,  113,
805   113,  113,  113,  113,  108,    0,    0,  108,    0,  108,
806     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
807     0,    0,    0,  108,    0,    0,    0,    0,    0,    0,
808     0,  107,    0,    0,  107,  107,    0,  107,  107,  107,
809   107,  107,  107,  107,  107,  107,    0,  107,  107,  107,
810   107,  107,  107,  107,  107,  107,  107,    0,  107,  107,
811     0,    0,    0,  107,  107,  107,  107,    0,    0,    0,
812   107,    0,    0,  107,  107,  107,  107,  107,  109,    0,
813     0,  109,    0,  109,    0,    0,    0,  108,    0,  108,
814     0,    0,    0,    0,    0,    0,    0,  109,    0,    0,
815     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
816     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
817     0,    0,    0,    0,    0,  106,    0,    0,  106,    0,
818   106,    0,    0,    0,    0,    0,    0,    0,    0,    0,
819     0,    0,    0,    0,  106,    0,    0,    0,    0,    0,
820     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
821     0,  109,    0,  109,    0,    0,    0,    0,    0,    0,
822     0,    0,    0,    0,    0,    0,    0,  112,    0,    0,
823   112,    0,  112,    0,    0,    0,    0,    0,    0,    0,
824     0,    0,    0,    0,    0,    0,  112,    0,    0,    0,
825     0,    0,    0,    0,    0,    0,    0,    0,  106,    0,
826   106,    0,    0,    0,    0,    0,    0,    0,    0,    0,
827     0,    0,    0,    0,  108,    0,    0,  108,  108,    0,
828   108,  108,  108,  108,  108,  108,  108,  108,  108,    0,
829   108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
830     0,  108,  108,    0,    0,    0,  108,  108,  108,  108,
831   112,    0,  112,  108,    0,    0,  108,  108,  108,  108,
832   108,    0,    0,    0,    0,    0,    0,    0,    0,    0,
833     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
834    66,  243,    0,   28,  244,   29,    0,    0,  109,    0,
835     0,  109,  109,    0,  109,  109,  109,  109,  109,  109,
836   109,  109,  109,   86,  109,  109,  109,  109,  109,  109,
837   109,  109,  109,  109,    0,  109,  109,    0,    0,    0,
838   109,  109,  109,  109,    0,    0,    0,  109,    0,    0,
839   109,  109,  109,  109,  109,  106,    0,    0,  106,  106,
840     0,  106,  106,  106,  106,  106,  106,  106,  106,  106,
841     0,  106,  106,  106,  106,  106,  106,  106,  106,  106,
842   106,    0,  106,  106,    0,    0,    0,  106,  106,  106,
843   106,    0,    0,    0,  106,    0,    0,  106,  106,  106,
844   106,  106,    0,  141,    0,    0,  141,  112,  141,    0,
845   112,  112,    0,  112,  112,  112,  112,  112,  112,  112,
846   112,  112,  141,  112,  112,  112,  112,  112,  112,  112,
847   112,  112,  112,    0,  112,  112,    0,    0,    0,  112,
848   112,  112,  112,    0,    0,    0,  112,    0,    0,  112,
849   112,  112,  112,  112,   66,    0,    0,   28,    0,   29,
850     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
851     0,    0,    0,  192,    0,    0,    0,    0,    0,    0,
852     0,    0,    0,    0,    0,    0,  141,    0,  141,    0,
853     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
854     0,   66,    0,    0,   28,    0,   29,    0,    0,    0,
855     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
856   192,    0,    0,   12,   13,    0,    0,    0,   14,   15,
857    16,    0,    0,    0,    0,    0,    0,  190,    0,  191,
858     0,   17,    0,   18,   19,   20,    0,   22,    0,    0,
859     0,    0,   23,   24,   25,   26,    0,    0,    0,   27,
860     0,    0,   31,   32,   33,   34,   35,    0,    0,   66,
861     0,    0,   28,    0,   29,    0,    0,    0,    0,    0,
862     0,    0,    0,    0,  190,    0,  206,    0,  192,    0,
863     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
864     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
865     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
866     0,    0,    0,  141,    0,    0,  141,  141,    0,  141,
867   141,  141,  141,  141,  141,  141,  141,  141,    0,  141,
868   141,  141,  141,  141,  141,  141,  141,  141,  141,    0,
869   141,  141,  190,    0,  207,  141,  141,  141,  141,    0,
870     0,    0,  141,    0,    0,  141,  141,  141,  141,  141,
871     0,    0,    0,    0,  177,    0,    0,   12,   13,    0,
872   178,  179,   14,   15,   16,  180,    0,  181,  182,    0,
873   183,  184,  185,  186,  187,   17,  188,   18,   19,   20,
874     0,   22,  189,    0,    0,    0,   23,   24,   25,   26,
875     0,    0,    0,   27,    0,    0,   31,   32,   33,   34,
876    35,  177,    0,    0,   12,   13,    0,  178,  179,   14,
877    15,   16,  180,    0,  181,  182,    0,  183,  184,  185,
878   186,  187,   17,  188,   18,   19,   20,    0,   22,  189,
879     0,    0,    0,   23,   24,   25,   26,    0,    0,    0,
880    27,    0,    0,   31,   32,   33,   34,   35,   66,    0,
881     0,   28,    0,   29,    0,    0,    0,    0,    0,    0,
882     0,    0,    0,    0,    0,    0,    0,  192,    0,  177,
883     0,    0,   12,   13,    0,  178,  179,   14,   15,   16,
884   180,    0,  181,  182,    0,  183,  184,  185,  186,  187,
885    17,  188,   18,   19,   20,    0,   22,  189,    0,    0,
886     0,   23,   24,   25,   26,    0,    0,    0,   27,    0,
887     0,   31,   32,   33,   34,   35,   66,    0,    0,   28,
888     0,   29,    0,    0,    0,    0,    0,    0,    0,    0,
889     0,  190,    0,  235,    0,  192,    0,    0,    0,    0,
890     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
891     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
892     0,    0,    0,   66,    0,    0,   28,    0,   29,    0,
893     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
894     0,    0,  192,    0,    0,    0,    0,    0,    0,    0,
895     0,    0,    0,    0,    0,    0,    0,    0,    0,  190,
896     0,  291,    0,    0,    0,    0,    0,    0,    0,    0,
897     0,    0,    0,    0,  111,    0,    0,  111,    0,  111,
898     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
899     0,    0,    0,  111,    0,    0,    0,    0,    0,    0,
900     0,    0,    0,    0,    0,    0,  190,    0,  315,    0,
901     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
902     0,    0,    0,    0,    0,    0,    0,    0,  177,    0,
903     0,   12,   13,    0,  178,  179,   14,   15,   16,  180,
904     0,  181,  182,    0,  183,  184,  185,  186,  187,   17,
905   188,   18,   19,   20,    0,   22,  189,  111,    0,  111,
906    23,   24,   25,   26,    0,    0,    0,   27,    0,    0,
907    31,   32,   33,   34,   35,    0,    0,    0,    0,    0,
908     0,    0,    0,    0,    0,    0,    0,    0,    0,  134,
909     0,    0,  134,    0,  134,    0,  177,    0,    0,   12,
910    13,    0,  178,  179,   14,   15,   16,  180,  134,  181,
911   182,    0,  183,  184,  185,  186,  187,   17,  188,   18,
912    19,   20,    0,   22,  189,    0,    0,    0,   23,   24,
913    25,   26,    0,    0,    0,   27,    0,    0,   31,   32,
914    33,   34,   35,  177,    0,    0,   12,   13,    0,  178,
915   179,   14,   15,   16,  180,    0,  181,  182,    0,  183,
916   184,  185,  186,  187,   17,  188,   18,   19,   20,    0,
917    22,  189,  134,    0,  134,   23,   24,   25,   26,    0,
918     0,    0,   27,    0,    0,   31,   32,   33,   34,   35,
919    37,    0,    0,   28,  111,   29,    0,  111,  111,    0,
920   111,  111,  111,  111,  111,  111,    0,  111,  111,    0,
921   111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
922     0,  111,  111,    0,    0,    0,  111,  111,  111,  111,
923     0,    0,    0,  111,    0,    0,  111,  111,  111,  111,
924   111,   66,    0,    0,   28,  157,   29,    0,    0,    0,
925     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
926     0,   89,    0,   90,   86,    0,    0,    0,    0,    0,
927     0,    0,    0,   36,    0,    0,    0,    0,    0,    0,
928     0,    0,    0,    0,    0,   66,    0,    0,   28,    0,
929    29,    0,    0,    0,    0,    0,    0,    0,    0,    0,
930     0,    0,    0,    0,    0,   89,    0,   90,   86,  134,
931     0,    0,  134,  134,    0,  134,  134,  134,  134,  134,
932   134,    0,  134,  134,    0,  134,  134,  134,  134,  134,
933   134,  134,  134,  134,  134,    0,  134,  134,    0,    0,
934     0,  134,  134,  134,  134,    0,    0,    0,  134,    0,
935     0,  134,  134,  134,  134,  134,   66,  245,    0,   28,
936   246,   29,    0,    0,    0,    0,    0,    0,    0,    0,
937     0,    0,    0,    0,    0,    0,    0,    0,    0,   86,
938     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
939     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
940    66,  247,    0,   28,  248,   29,    0,    9,   10,   11,
941     0,    0,    0,   12,   13,    0,    0,    0,   14,   15,
942    16,    0,    0,   86,    0,    0,    0,    0,    0,    0,
943     0,   17,    0,   18,   19,   20,   21,   22,    0,    0,
944     0,    0,   23,   24,   25,   26,    0,    0,    0,   27,
945     0,   30,   31,   32,   33,   34,   35,   66,  249,    0,
946    28,  250,   29,    0,   12,   13,    0,    0,    0,   14,
947    15,   16,    0,    0,    0,    0,    0,    0,    0,    0,
948    86,    0,   17,    0,   18,   19,   20,    0,   22,    0,
949     0,    0,    0,   23,   24,   25,   26,   87,   88,    0,
950    27,    0,    0,   31,   32,   33,   34,   35,   12,   13,
951     0,    0,    0,   14,   15,   16,    0,    0,    0,    0,
952    66,  254,    0,   28,  255,   29,   17,    0,   18,   19,
953    20,    0,   22,    0,    0,    0,    0,   23,   24,   25,
954    26,   87,   88,   86,   27,    0,    0,   31,   32,   33,
955    34,   35,    0,    0,    0,    0,    0,    0,    0,    0,
956     0,    0,    0,    0,    0,    0,    0,    0,   37,    0,
957     0,   28,    0,   29,    0,    0,    0,    0,    0,   12,
958    13,    0,    0,    0,   14,   15,   16,  303,    0,    0,
959     0,    0,    0,    0,    0,    0,    0,   17,    0,   18,
960    19,   20,    0,   22,    0,    0,    0,    0,   23,   24,
961    25,   26,    0,    0,    0,   27,    0,    0,   31,   32,
962    33,   34,   35,   12,   13,    0,    0,    0,   14,   15,
963    16,   37,    0,    0,   28,    0,   29,    0,    0,    0,
964     0,   17,    0,   18,   19,   20,    0,   22,    0,    0,
965     0,    0,   23,   24,   25,   26,    0,    0,    0,   27,
966     0,    0,   31,   32,   33,   34,   35,    0,    0,    0,
967     0,    0,    0,    0,    0,    0,    0,    0,    0,  154,
968    12,   13,   28,    0,   29,   14,   15,   16,    0,    0,
969     0,    0,    0,    0,    0,    0,    0,    0,   17,    0,
970    18,   19,   20,    0,   22,    0,    0,    0,    0,   23,
971    24,   25,   26,    0,    0,    0,   27,    0,    0,   31,
972    32,   33,   34,   35,   66,    0,    0,   28,  164,   29,
973     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
974     0,    0,    0,   12,   13,    0,    0,   86,   14,   15,
975    16,    0,    0,    0,    0,    0,    0,    0,    0,    0,
976     0,   17,    0,   18,   19,   20,    0,   22,    0,    0,
977     0,    0,   23,   24,   25,   26,    0,    0,    0,   27,
978     0,    0,   31,   32,   33,   34,   35,   11,    0,    0,
979     0,   12,   13,    0,    0,    0,   14,   15,   16,    0,
980     0,   66,    0,    0,   28,  167,   29,    0,    0,   17,
981     0,   18,   19,   20,    0,   22,    0,    0,    0,    0,
982    23,   24,   25,   26,   86,    0,    0,   27,    0,   30,
983    31,   32,   33,   34,   35,    0,    0,    0,    0,    0,
984     0,    0,    0,    0,    0,    0,    0,    0,   66,    0,
985    11,   28,  169,   29,   12,   13,    0,    0,    0,   14,
986    15,   16,    0,    0,    0,    0,    0,    0,    0,    0,
987     0,   86,   17,    0,   18,   19,   20,    0,   22,    0,
988     0,    0,    0,   23,   24,   25,   26,    0,    0,    0,
989    27,    0,   30,   31,   32,   33,   34,   35,   11,    0,
990     0,    0,   12,   13,    0,    0,    0,   14,   15,   16,
991     0,    0,   66,    0,    0,   28,  170,   29,    0,    0,
992    17,    0,   18,   19,   20,    0,   22,    0,    0,    0,
993     0,   23,   24,   25,   26,   86,    0,    0,   27,    0,
994    30,   31,   32,   33,   34,   35,    0,   12,   13,    0,
995     0,    0,   14,   15,   16,    0,    0,   66,    0,    0,
996    28,  175,   29,    0,    0,   17,    0,   18,   19,   20,
997     0,   22,    0,    0,    0,    0,   23,   24,   25,   26,
998    86,    0,    0,   27,    0,    0,   31,   32,   33,   34,
999    35,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1000     0,    0,    0,   66,    0,    0,   28,  176,   29,    0,
1001     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1002     0,    0,    0,    0,   12,   13,   86,    0,    0,   14,
1003    15,   16,    0,    0,    0,    0,    0,    0,    0,    0,
1004     0,    0,   17,    0,   18,   19,   20,    0,   22,    0,
1005     0,    0,    0,   23,   24,   25,   26,    0,    0,    0,
1006    27,    0,    0,   31,   32,   33,   34,   35,    0,    0,
1007     0,   12,   13,    0,    0,    0,   14,   15,   16,    0,
1008     0,   66,    0,    0,   28,    0,   29,    0,    0,   17,
1009     0,   18,   19,   20,    0,   22,    0,    0,    0,  198,
1010    23,   24,   25,   26,   86,    0,    0,   27,    0,    0,
1011    31,   32,   33,   34,   35,    0,    0,    0,    0,    0,
1012     0,    0,    0,    0,    0,   66,    0,    0,   28,    0,
1013    29,    0,    0,    0,    0,   12,   13,    0,    0,    0,
1014    14,   15,   16,  201,    0,    0,    0,    0,   86,    0,
1015     0,    0,    0,   17,    0,   18,   19,   20,    0,   22,
1016     0,    0,    0,    0,   23,   24,   25,   26,    0,    0,
1017     0,   27,    0,    0,   31,   32,   33,   34,   35,    0,
1018    12,   13,    0,    0,    0,   14,   15,   16,    0,    0,
1019    66,  252,    0,   28,    0,   29,    0,    0,   17,    0,
1020    18,   19,   20,    0,   22,    0,    0,    0,    0,   23,
1021    24,   25,   26,   86,    0,    0,   27,    0,    0,   31,
1022    32,   33,   34,   35,    0,    0,   12,   13,    0,    0,
1023     0,   14,   15,   16,    0,    0,   66,  256,    0,   28,
1024     0,   29,    0,    0,   17,    0,   18,   19,   20,    0,
1025    22,    0,    0,    0,    0,   23,   24,   25,   26,   86,
1026     0,    0,   27,    0,    0,   31,   32,   33,   34,   35,
1027     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1028    66,  287,    0,   28,    0,   29,    0,    0,    0,    0,
1029     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1030     0,    0,    0,   86,   12,   13,    0,    0,    0,   14,
1031    15,   16,    0,    0,    0,    0,    0,    0,    0,    0,
1032     0,    0,   17,    0,   18,   19,   20,    0,   22,    0,
1033     0,    0,    0,   23,   24,   25,   26,    0,    0,    0,
1034    27,    0,    0,   31,   32,   33,   34,   35,   12,   13,
1035     0,    0,    0,   14,   15,   16,    0,    0,   66,  293,
1036     0,   28,    0,   29,    0,    0,   17,    0,   18,   19,
1037    20,    0,   22,    0,    0,    0,    0,   23,   24,   25,
1038    26,   86,    0,    0,   27,    0,    0,   31,   32,   33,
1039    34,   35,    0,    0,    0,    0,    0,    0,    0,    0,
1040     0,    0,   66,  294,    0,   28,    0,   29,    0,    0,
1041     0,    0,    0,   12,   13,    0,    0,    0,   14,   15,
1042    16,    0,    0,    0,    0,   86,    0,    0,    0,    0,
1043     0,   17,    0,   18,   19,   20,    0,   22,    0,    0,
1044     0,    0,   23,   24,   25,   26,    0,    0,    0,   27,
1045     0,    0,   31,   32,   33,   34,   35,    0,    0,   12,
1046    13,    0,    0,    0,   14,   15,   16,    0,    0,   66,
1047   295,    0,   28,    0,   29,    0,    0,   17,    0,   18,
1048    19,   20,    0,   22,    0,    0,    0,    0,   23,   24,
1049    25,   26,   86,    0,    0,   27,    0,    0,   31,   32,
1050    33,   34,   35,   12,   13,    0,    0,    0,   14,   15,
1051    16,    0,    0,   66,  296,    0,   28,    0,   29,    0,
1052     0,   17,    0,   18,   19,   20,    0,   22,    0,    0,
1053     0,    0,   23,   24,   25,   26,   86,    0,    0,   27,
1054     0,    0,   31,   32,   33,   34,   35,    0,    0,    0,
1055     0,    0,    0,    0,    0,    0,    0,   66,  297,    0,
1056    28,    0,   29,    0,    0,    0,    0,    0,    0,    0,
1057     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1058    86,   12,   13,    0,    0,    0,   14,   15,   16,    0,
1059     0,    0,    0,    0,    0,    0,    0,    0,    0,   17,
1060     0,   18,   19,   20,    0,   22,    0,    0,    0,    0,
1061    23,   24,   25,   26,    0,    0,    0,   27,    0,    0,
1062    31,   32,   33,   34,   35,   12,   13,    0,    0,    0,
1063    14,   15,   16,    0,    0,   66,  299,    0,   28,    0,
1064    29,    0,    0,   17,    0,   18,   19,   20,    0,   22,
1065     0,    0,    0,    0,   23,   24,   25,   26,   86,    0,
1066     0,   27,    0,    0,   31,   32,   33,   34,   35,    0,
1067     0,    0,    0,    0,    0,    0,    0,    0,    0,   66,
1068   109,    0,   28,    0,   29,    0,    0,    0,    0,    0,
1069     0,    0,   12,   13,    0,    0,    0,   14,   15,   16,
1070     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1071    17,    0,   18,   19,   20,    0,   22,    0,    0,    0,
1072     0,   23,   24,   25,   26,    0,    0,    0,   27,    0,
1073     0,   31,   32,   33,   34,   35,   12,   13,    0,    0,
1074     0,   14,   15,   16,   66,    0,    0,   28,    0,   29,
1075     0,    0,    0,    0,   17,    0,   18,   19,   20,    0,
1076    22,    0,    0,    0,    0,   23,   24,   25,   26,    0,
1077     0,    0,   27,    0,    0,   31,   32,   33,   34,   35,
1078    12,   13,    0,    0,    0,   14,   15,   16,    0,    0,
1079     0,    0,   66,    0,    0,   28,    0,   29,   17,    0,
1080    18,   19,   20,    0,   22,    0,    0,    0,    0,   23,
1081    24,   25,   26,    0,    0,    0,   27,    0,    0,   31,
1082    32,   33,   34,   35,    0,    0,    0,    0,    0,    0,
1083     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1084    66,    0,    0,   28,    0,   29,    0,    0,    0,    0,
1085     0,    0,    0,    0,    0,    0,    0,    0,   12,   13,
1086     0,    0,    0,   14,   15,   16,    0,    0,    0,    0,
1087     0,    0,    0,    0,    0,    0,   17,    0,   18,   19,
1088    20,    0,   22,    0,    0,    0,    0,   23,   24,   25,
1089    26,    0,    0,    0,   27,    0,    0,   31,   32,   33,
1090    34,   35,   12,   13,    0,    0,    0,   14,   15,   16,
1091    66,    0,    0,   28,    0,   29,    0,    0,    0,    0,
1092    17,    0,   18,   19,   20,    0,   22,    0,    0,    0,
1093     0,   23,   24,   25,   26,    0,    0,    0,   27,    0,
1094     0,   31,   32,   33,   34,   35,    0,    0,    0,    0,
1095     0,    0,    0,    0,   66,    0,    0,   28,    0,   29,
1096     0,    0,    0,  116,    0,    0,    0,   12,   13,    0,
1097     0,    0,   14,   15,   16,    0,    0,   86,    0,    0,
1098     0,    0,    0,    0,    0,   17,    0,   18,   19,   20,
1099     0,   22,    0,    0,    0,    0,   23,   24,   25,   26,
1100     0,    0,    0,   27,    0,    0,   31,   32,   33,   34,
1101    35,  118,    0,    0,   66,   12,   13,   28,    0,   29,
1102    14,   15,   16,    0,    0,    0,    0,    0,    0,    0,
1103     0,    0,    0,   17,    0,   18,   19,   20,    0,   22,
1104     0,    0,    0,    0,   23,   24,   25,   26,    0,    0,
1105     0,   27,    0,    0,   31,   32,   33,   34,   35,  140,
1106     0,    0,   66,   12,   13,   28,    0,   29,   14,   15,
1107    16,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1108     0,   17,    0,   18,   19,   20,    0,   22,    0,    0,
1109     0,    0,   23,   24,   25,   26,    0,    0,    0,   27,
1110     0,    0,   31,   32,   33,   34,   35,  103,    0,    0,
1111    28,    0,   29,    0,    0,    0,    0,    0,    0,    0,
1112     0,    0,    0,    0,    0,    0,    0,    0,    0,  213,
1113     0,    0,    0,   12,   13,    0,    0,    0,   14,   15,
1114    16,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1115     0,   17,    0,   18,   19,   20,    0,   22,    0,    0,
1116     0,    0,   23,   24,   25,   26,    0,    0,    0,   27,
1117     0,    0,   31,   32,   33,   34,   35,   12,   13,    0,
1118     0,    0,   14,   15,   16,    0,    0,    0,    0,    0,
1119     0,    0,    0,    0,    0,   17,    0,   18,   19,   20,
1120     0,   22,    0,    0,    0,    0,   23,   24,   25,   26,
1121     0,    0,    0,   27,    0,    0,   31,   32,   33,   34,
1122    35,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1123     0,    0,    0,  275,    0,    0,    0,   12,   13,    0,
1124     0,    0,   14,   15,   16,    0,    0,    0,    0,    0,
1125     0,    0,    0,    0,    0,   17,    0,   18,   19,   20,
1126     0,   22,    0,    0,    0,    0,   23,   24,   25,   26,
1127     0,    0,    0,   27,    0,    0,   31,   32,   33,   34,
1128    35,    0,    0,    0,    0,   12,   13,    0,    0,    0,
1129    14,   15,   16,    0,    0,    0,    0,    0,    0,    0,
1130     0,    0,    0,   17,    0,   18,   19,   20,    0,   22,
1131     0,    0,    0,    0,   23,   24,   25,   26,    0,    0,
1132     0,   27,    0,    0,   31,   32,   33,   34,   35,    0,
1133    12,   13,   67,   69,    0,   14,   15,   16,   73,    0,
1134     0,    0,    0,    0,    0,    0,    0,   91,   17,    0,
1135    18,   19,   20,    0,   22,    0,    0,    0,    0,   23,
1136    24,   25,   26,    0,    0,    0,   27,    0,    0,   31,
1137    32,   33,   34,   35,    0,    0,    0,    0,    0,    0,
1138     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1139     0,    0,    0,    0,    0,    0,    0,  146,  147,  148,
1140   149,  150,  151,    0,    0,    0,    0,    0,    0,   91,
1141     0,    0,    0,    0,   91,    0,    0,   91,   91,    0,
1142     0,   91,    0,   91,   91,    0,    0,    0,   91,   91,
1143     0,    0,    0,    0,    0,    0,    0,    0,    0,   91,
1144     0,    0,    0,   91,    0,   91,   91,   91,   91,    0,
1145     0,    0,    0,    0,    0,    0,    0,    0,    0,   91,
1146     0,    0,    0,    0,    0,    0,    0,    0,    0,   91,
1147     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1148     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1149     0,    0,    0,    0,    0,    0,    0,   91,    0,    0,
1150     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1151     0,    0,    0,   91,   91,   91,   91,    0,   91,    0,
1152    91,   91,    0,    0,    0,    0,    0,    0,   91,   91,
1153     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1154    91,   91,   91,   91,    0,    0,    0,    0,    0,    0,
1155     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1156     0,    0,    0,    0,    0,    0,    0,    0,   91,    0,
1157     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1158    91,   91,   91,   91,   91,    0,   91,   91,   91,
1159 };
1160 #if defined(__cplusplus) || defined(__STDC__)
1161 const short yycheck[] =
1162 #else
1163 short yycheck[] =
1164 #endif
1165 	{                                      41,
1166     0,   41,   63,   41,   37,   41,   59,   59,   63,   42,
1167    43,   63,   45,   63,   47,   59,   62,   41,   63,  107,
1168   108,   63,   40,   63,   37,   63,  123,   63,   37,    7,
1169    44,  223,  103,   37,  302,  303,   94,   37,  303,  123,
1170    40,   41,   42,   43,   44,   45,  134,   47,  313,   63,
1171   261,  262,   30,   41,  112,    0,  289,  123,   58,   59,
1172    60,   94,   62,   63,   53,   54,   40,   40,  287,  302,
1173   303,   59,   41,   62,   63,   44,   91,   41,  124,  112,
1174    44,   37,   40,  154,  123,   40,   42,   40,   60,   40,
1175    40,   47,   37,   93,   94,  261,   41,   42,   43,   44,
1176    45,  226,   47,   40,   40,   40,   60,   85,   40,  112,
1177     0,  303,  112,   58,   59,   60,  293,   62,   63,   41,
1178    41,  313,  100,  123,  124,   41,  293,  304,  305,  306,
1179   281,   44,  121,   41,   41,   44,   93,   41,   94,   44,
1180   228,  154,   41,   41,  293,  154,   40,   37,   93,   94,
1181   154,   41,   42,   43,   44,   45,  112,   47,  136,  137,
1182    40,   59,  293,   41,  261,  262,   40,  112,   58,   59,
1183    60,  291,   62,   63,   41,  300,  301,  302,  123,  124,
1184    91,   59,   59,  273,   41,   40,  272,   93,  206,  178,
1185   179,   41,   41,    0,   41,  320,  321,   93,   59,   59,
1186   325,   41,   -1,   93,   94,   -1,   -1,  260,  261,  262,
1187   298,   -1,  220,   41,   -1,   -1,  260,  261,  262,  265,
1188    -1,   -1,  112,   40,   -1,   -1,   43,   -1,   45,  290,
1189   291,   59,   -1,  123,  124,  290,  291,   -1,  290,  291,
1190   290,  291,  275,  221,  222,  290,  291,   -1,  290,  291,
1191   290,  291,  290,  291,  290,  291,   -1,  257,  258,  259,
1192   260,  261,  262,  263,  264,  265,  290,  291,  268,  269,
1193   270,   -1,  260,  261,  262,  275,  290,  291,   -1,  268,
1194    -1,  281,   41,  283,  284,  285,  286,  287,   -1,  289,
1195   290,  291,  292,  293,  294,  295,  296,  297,   -1,  299,
1196    59,  301,  302,  303,  304,  305,  306,   -1,   -1,   -1,
1197   288,   -1,  257,  258,  259,  260,  261,  262,  263,  264,
1198   265,  293,   -1,  268,  269,  270,   -1,  305,   -1,   -1,
1199   275,   -1,  304,  305,  306,   -1,  281,   41,  283,  284,
1200   285,  286,  287,   -1,  289,  290,  291,  292,  293,  294,
1201   295,  296,  297,   -1,  299,   59,  301,  302,  303,  304,
1202   305,  306,  260,  261,  262,   -1,   -1,  257,  258,  259,
1203   260,  261,  262,  263,  264,  265,   -1,   -1,  268,  269,
1204   270,    0,  260,  261,  262,  275,   -1,   -1,   -1,   -1,
1205    41,  281,   -1,  283,  284,  285,  286,  287,   -1,  289,
1206   290,  291,  292,  293,  294,  295,  296,  297,   59,  299,
1207    -1,  301,  302,  303,  304,  305,  306,   -1,   37,   -1,
1208    -1,   40,   41,   42,   43,   44,   45,   -1,   47,   -1,
1209    -1,   -1,  260,  261,  262,   -1,    0,   -1,   41,   58,
1210    59,   -1,   -1,   62,   63,   -1,  263,  264,   -1,   -1,
1211    -1,  268,  269,  270,   -1,   -1,   59,   -1,   -1,   -1,
1212    -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,   -1,
1213   287,   -1,   -1,   37,   93,   94,   40,   41,   42,   43,
1214    44,   45,  299,   47,   -1,  302,  303,  304,  305,  306,
1215    -1,    0,   -1,  112,   58,   59,   60,   -1,   62,   63,
1216    -1,  260,  261,  262,  123,  124,   -1,   -1,   -1,   -1,
1217    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1218    -1,   -1,   -1,   -1,   41,   -1,   -1,   -1,   37,   93,
1219    94,   40,   41,   42,   43,   -1,   45,   -1,   47,   -1,
1220    -1,   -1,   59,   -1,   41,   -1,   -1,   -1,   -1,   58,
1221    59,   60,   -1,   62,   63,   -1,  260,  261,  262,  123,
1222   124,   -1,   59,   -1,   -1,   62,   -1,   -1,   -1,   -1,
1223    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1224    -1,   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,   -1,
1225    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1226    -1,   -1,   -1,  112,   -1,   -1,   -1,   -1,   -1,  260,
1227   261,  262,   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,
1228    -1,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,   -1,
1229    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
1230   259,  260,  261,  262,  263,  264,  265,   -1,   -1,  268,
1231   269,  270,   -1,   -1,   -1,   -1,  275,  260,  261,  262,
1232    -1,   -1,  281,   -1,  283,  284,  285,  286,  287,   -1,
1233   289,  290,  291,  292,  293,  294,  295,  296,  297,   -1,
1234   299,   -1,  301,  302,  303,  304,  305,  306,   -1,   -1,
1235    -1,   -1,   -1,  257,  258,  259,  260,  261,  262,  263,
1236   264,  265,   -1,   -1,  268,  269,  270,   -1,   -1,   -1,
1237    -1,  275,   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,
1238   284,  285,  286,  287,   -1,  289,  290,  291,  292,  293,
1239   294,  295,  296,  297,   -1,  299,   -1,  301,  302,  303,
1240   304,  305,  306,  260,  261,  262,   -1,   -1,  257,  258,
1241   259,  260,  261,  262,  263,  264,  265,   -1,   -1,  268,
1242   269,  270,    0,  260,  261,  262,  275,   -1,  265,   -1,
1243    -1,   -1,  281,   -1,  283,  284,  285,  286,  287,   -1,
1244   289,  290,  291,  292,  293,  294,  295,  296,  297,   -1,
1245   299,   -1,  301,  302,  303,  304,  305,  306,   -1,   37,
1246    -1,   -1,   40,   41,   42,   43,   44,   45,   -1,   47,
1247    -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,
1248    58,   59,   60,   -1,   62,   63,   -1,   -1,   -1,   -1,
1249    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1250    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1251    -1,   -1,   -1,   -1,   37,   93,   94,   40,   41,   42,
1252    43,   44,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,
1253    -1,    0,   -1,   -1,  112,   58,   59,   60,   -1,   62,
1254    63,   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,   -1,
1255    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1256    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,
1257    93,   40,   41,   42,   43,   44,   45,   -1,   47,   -1,
1258    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,
1259    59,   60,   -1,   62,   63,   -1,   -1,   -1,   -1,   -1,
1260   123,  124,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1261    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1262    -1,   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,   -1,
1263    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1264    -1,   -1,   -1,  112,   -1,   -1,   -1,   -1,   -1,   -1,
1265    -1,   -1,   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,
1266    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1267    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,
1268   258,  259,  260,  261,  262,  263,  264,  265,   -1,   -1,
1269   268,  269,  270,   -1,   -1,   -1,   -1,  275,   -1,   -1,
1270    -1,   -1,   -1,  281,   -1,  283,  284,  285,  286,  287,
1271    -1,  289,  290,   -1,  292,  293,  294,  295,  296,  297,
1272    -1,  299,   -1,  301,  302,  303,  304,  305,  306,   -1,
1273    -1,   -1,   -1,   -1,  257,  258,  259,  260,  261,  262,
1274   263,  264,  265,   -1,   -1,  268,  269,  270,   -1,   -1,
1275    -1,   -1,  275,   -1,   40,   41,   -1,   43,  281,   45,
1276   283,  284,  285,  286,  287,   -1,  289,  290,  291,  292,
1277   293,  294,  295,  296,  297,   -1,  299,   63,  301,  302,
1278   303,  304,  305,  306,   -1,   -1,   -1,   -1,  257,  258,
1279   259,  260,  261,  262,  263,  264,  265,   -1,   -1,  268,
1280   269,  270,    0,   -1,   -1,   -1,  275,   -1,   -1,   -1,
1281    -1,   -1,  281,   -1,  283,  284,  285,  286,  287,   -1,
1282   289,  290,  291,  292,  293,  294,  295,  296,  297,   -1,
1283   299,   -1,  301,   -1,   -1,  304,  305,  306,   -1,   37,
1284    -1,   -1,   40,   41,   42,   43,   44,   45,   -1,   47,
1285    -1,   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,
1286    58,   59,   60,   -1,   62,   63,   -1,   -1,   -1,   -1,
1287    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1288    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1289    -1,   -1,   -1,   37,   -1,   93,   40,   41,   42,   43,
1290    44,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,
1291     0,   -1,   -1,   -1,   58,   59,   60,   -1,   62,   63,
1292    -1,   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,   -1,
1293    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1294    -1,   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   93,
1295    40,   41,   42,   43,   44,   45,   -1,   47,   -1,   -1,
1296    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,
1297    60,   -1,   62,   63,   -1,   -1,   -1,  263,  264,  123,
1298   124,   -1,  268,  269,  270,   -1,   -1,   -1,   -1,   -1,
1299    -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,
1300    -1,  287,   -1,   93,   -1,   -1,  292,  293,  294,  295,
1301    -1,   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,
1302   306,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1303    -1,   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,   -1,
1304    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1305    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,
1306   258,  259,  260,  261,  262,  263,  264,  265,   -1,   -1,
1307   268,  269,  270,   -1,   -1,   -1,   -1,  275,   -1,   -1,
1308    -1,   -1,   -1,  281,   -1,  283,  284,  285,  286,  287,
1309    -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
1310    -1,  299,   -1,  301,  302,  303,  304,  305,  306,   -1,
1311    -1,   -1,   -1,  257,  258,  259,  260,  261,  262,  263,
1312   264,  265,   -1,   -1,  268,  269,  270,   -1,   -1,   -1,
1313    -1,  275,   -1,   40,   -1,   -1,   43,  281,   45,  283,
1314   284,  285,  286,  287,   -1,  289,  290,  291,  292,  293,
1315   294,  295,  296,  297,   -1,  299,   -1,  301,  302,  303,
1316   304,  305,  306,   -1,   -1,   -1,   -1,  257,  258,  259,
1317   260,  261,  262,  263,  264,  265,   -1,   -1,  268,  269,
1318   270,    0,   -1,   -1,   -1,  275,   -1,   -1,   -1,   -1,
1319    -1,  281,   -1,  283,  284,  285,  286,  287,   -1,  289,
1320   290,  291,  292,  293,  294,  295,  296,  297,   -1,  299,
1321    -1,  301,  302,  303,  304,  305,  306,   -1,   37,   -1,
1322    -1,   40,   41,   42,   43,   44,   45,   -1,   47,   -1,
1323    -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,   58,
1324    59,   60,   -1,   62,   63,   -1,   -1,   -1,   -1,   -1,
1325    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1326    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1327    -1,   -1,   37,   -1,   93,   40,   41,   42,   43,   44,
1328    45,   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,    0,
1329    -1,   -1,   -1,   58,   59,   60,   -1,   62,   63,   -1,
1330    -1,   -1,   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,
1331    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1332    -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   93,   40,
1333    41,   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,
1334    -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,   60,
1335    -1,   62,   63,   -1,  261,  262,  263,  264,  123,  124,
1336    -1,  268,  269,  270,   -1,   -1,   -1,   -1,   -1,   -1,
1337    -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,   -1,
1338   287,   -1,   93,   94,   -1,  292,  293,  294,  295,   -1,
1339    -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,  306,
1340    -1,  112,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1341    -1,   -1,  123,  124,   -1,   -1,   -1,   -1,   -1,   -1,
1342    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1343    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
1344   259,  260,  261,  262,  263,  264,  265,   -1,   -1,  268,
1345   269,  270,   -1,   -1,   -1,   -1,  275,   -1,   -1,   -1,
1346    -1,   -1,  281,   -1,  283,  284,  285,  286,  287,   -1,
1347   289,  290,  291,  292,  293,  294,  295,  296,  297,   -1,
1348   299,   -1,  301,  302,  303,  304,  305,  306,   -1,   -1,
1349    -1,   -1,  257,  258,  259,  260,  261,  262,  263,  264,
1350   265,   -1,   -1,  268,  269,  270,   -1,   -1,   -1,   -1,
1351   275,   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,
1352   285,  286,  287,   -1,  289,  290,  291,  292,  293,  294,
1353   295,  296,  297,   -1,  299,   -1,  301,  302,  303,  304,
1354   305,  306,   -1,   -1,   -1,   -1,  257,  258,  259,  260,
1355   261,  262,  263,  264,  265,   -1,   -1,  268,  269,  270,
1356     0,   -1,   -1,   -1,  275,   -1,   -1,   -1,   -1,   -1,
1357   281,   -1,  283,  284,  285,  286,  287,   -1,   -1,  290,
1358   291,  292,  293,  294,  295,  296,  297,   -1,  299,   -1,
1359   301,   -1,   -1,  304,  305,  306,   -1,   37,   -1,   -1,
1360    40,   41,   42,   43,   44,   45,   -1,   47,   -1,   -1,
1361    -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,   58,   59,
1362    60,   -1,   62,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1363    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1364    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1365    -1,   -1,   -1,   93,   94,   40,   41,   -1,   43,   44,
1366    45,   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,
1367    -1,   -1,  112,   58,   59,   60,   -1,   62,   63,   -1,
1368    -1,   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,   -1,
1369    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1370    -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   93,   43,
1371    44,   45,   -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,
1372    -1,   -1,   -1,   -1,   58,   59,   60,   -1,   62,   63,
1373    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,  124,
1374    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1375    -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   93,
1376    44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1377    -1,   -1,   -1,   -1,   58,   59,   60,   -1,   62,   63,
1378    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,
1379   124,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1380    -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,   93,
1381    43,   -1,   45,   -1,   -1,   -1,   -1,  257,  258,  259,
1382   260,  261,  262,  263,  264,  265,   -1,   -1,  268,  269,
1383   270,   -1,   -1,   -1,   -1,  275,   -1,   -1,   -1,  123,
1384   124,  281,   -1,  283,  284,  285,  286,  287,   -1,  289,
1385    -1,   -1,  292,  293,  294,  295,  296,  297,   -1,  299,
1386    -1,  301,  302,  303,  304,  305,  306,   -1,   -1,   -1,
1387    -1,   -1,  257,  258,  259,  260,  261,  262,  263,  264,
1388   265,   -1,   -1,  268,  269,  270,   -1,   -1,   -1,   -1,
1389   275,   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,
1390   285,  286,  287,   -1,  289,  290,  291,  292,  293,  294,
1391   295,  296,  297,   -1,  299,   -1,  301,  302,  303,  304,
1392   305,  306,   -1,  257,  258,  259,  260,  261,  262,  263,
1393   264,  265,   -1,   -1,  268,  269,  270,   -1,   -1,   -1,
1394    -1,  275,   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,
1395   284,  285,  286,  287,   -1,  289,  290,  291,  292,  293,
1396   294,  295,  296,  297,   -1,  299,   -1,  301,  302,  303,
1397   304,  305,  306,  257,  258,  259,  260,  261,  262,  263,
1398   264,  265,   -1,    0,  268,  269,  270,   -1,   -1,   -1,
1399    -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,
1400   284,  285,  286,  287,   -1,  289,  290,  291,  292,  293,
1401   294,  295,  296,  297,   -1,  299,   -1,  301,  302,  303,
1402   304,  305,  306,   40,   41,   -1,  259,   44,  261,  262,
1403   263,  264,   -1,   -1,    0,  268,  269,  270,   -1,   -1,
1404    -1,   58,   59,   60,   -1,   62,   63,   -1,  281,   -1,
1405   283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,  292,
1406   293,  294,  295,   -1,   -1,   -1,  299,   -1,  301,  302,
1407   303,  304,  305,  306,   40,   -1,   93,   43,   -1,   45,
1408    -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,   -1,
1409    -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
1410    -1,   -1,   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,
1411    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1412    -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,
1413    -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,   -1,
1414    -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
1415    -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,   -1,
1416    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1417    -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,
1418    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1419     0,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
1420    -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,   -1,
1421    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1422    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1423    40,   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,
1424   257,  258,  259,  260,  261,  262,  263,  264,  265,   59,
1425    -1,  268,  269,  270,   -1,   -1,   -1,  123,   -1,   -1,
1426    -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,  286,
1427   287,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
1428   297,   -1,  299,   -1,  301,  302,  303,  304,  305,  306,
1429    -1,  257,  258,  259,  260,  261,  262,  263,  264,   -1,
1430    -1,   -1,  268,  269,  270,   -1,   -1,   -1,   -1,   -1,
1431    -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,
1432   286,  287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,
1433    -1,   -1,   -1,  299,   -1,  301,  302,  303,  304,  305,
1434   306,  257,  258,  259,  260,  261,  262,  263,  264,   -1,
1435    -1,   -1,  268,  269,  270,   40,   -1,   -1,   43,   -1,
1436    45,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,
1437   286,  287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,
1438    -1,   -1,   -1,  299,   -1,  301,  302,  303,  304,  305,
1439   306,  257,  258,  259,  260,   -1,  262,  263,  264,   -1,
1440    -1,    0,  268,  269,  270,   -1,   -1,   -1,   -1,   -1,
1441    -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,
1442   286,  287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,
1443    -1,   -1,   -1,  299,   -1,  301,  302,  303,  304,  305,
1444   306,   40,   -1,   -1,   43,   -1,   45,  257,  258,  259,
1445   260,  261,  262,  263,  264,   -1,   -1,    0,  268,  269,
1446   270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1447    -1,  281,   -1,  283,  284,  285,  286,  287,   -1,   -1,
1448    -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,
1449    -1,  301,  302,  303,  304,  305,  306,   40,   -1,   -1,
1450    43,   -1,   45,   -1,   -1,   -1,   -1,    0,   -1,   -1,
1451    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1452    -1,   -1,   -1,   -1,  123,   -1,   -1,   -1,   -1,   -1,
1453    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1454    -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,
1455    43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1456    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1457    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  263,  264,
1458   123,  266,  267,  268,  269,  270,   -1,   -1,   -1,   -1,
1459    -1,  276,  277,  278,  279,  280,  281,   -1,  283,  284,
1460   285,   -1,  287,  288,   -1,   -1,   -1,  292,  293,  294,
1461   295,   -1,   -1,   -1,  299,   -1,   -1,  302,  303,  304,
1462   305,  306,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1463   123,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1464    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1465    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
1466   259,   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,
1467   269,  270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1468    -1,   -1,  281,   -1,  283,  284,  285,  286,  287,   -1,
1469    -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,
1470   299,   -1,  301,  302,  303,  304,  305,  306,   -1,   -1,
1471    -1,   -1,   -1,   -1,  257,  258,  259,   -1,   -1,   -1,
1472   263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,   -1,
1473    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,   -1,
1474   283,  284,  285,  286,  287,   -1,   -1,   -1,   -1,  292,
1475   293,  294,  295,   -1,   -1,   -1,  299,   -1,  301,  302,
1476   303,  304,  305,  306,  257,  258,  259,   -1,   -1,   -1,
1477   263,  264,   -1,   -1,   -1,  268,  269,  270,    0,   -1,
1478    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,   -1,
1479   283,  284,  285,  286,  287,   -1,   -1,   -1,   -1,  292,
1480   293,  294,  295,   -1,   -1,   -1,  299,   -1,  301,  302,
1481   303,  304,  305,  306,   -1,   37,   -1,   -1,   40,   41,
1482    42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,   -1,
1483    -1,   -1,   -1,    0,   -1,   -1,   58,   59,   60,   -1,
1484    62,   63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1485    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1486    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1487    37,   93,   94,   40,   41,   42,   43,   44,   45,   -1,
1488    47,    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1489   112,   58,   59,   -1,   -1,   62,   63,   -1,   -1,   -1,
1490    -1,  123,  124,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1491    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,
1492    -1,   -1,   41,   42,   -1,   44,   93,   94,   47,   -1,
1493    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,
1494    59,   60,   -1,   62,   63,  112,   -1,   -1,   -1,   -1,
1495    -1,   -1,   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,
1496    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1497    -1,   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,   -1,
1498    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1499    -1,   -1,   -1,  112,   -1,   -1,   -1,   -1,   -1,   -1,
1500    -1,   -1,   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,
1501    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1502    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1503    -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,  261,
1504   262,  263,  264,  265,   -1,   -1,  268,  269,  270,   -1,
1505    -1,   -1,   -1,  275,   -1,   -1,   -1,   -1,   -1,  281,
1506    -1,  283,  284,  285,  286,  287,   -1,  289,  290,  291,
1507   292,   -1,  294,  295,  296,  297,   -1,  299,   -1,  301,
1508   302,  303,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1509   257,  258,  259,  260,  261,  262,  263,  264,  265,   -1,
1510    -1,  268,  269,  270,   -1,   -1,   -1,   -1,  275,   -1,
1511    -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,  286,
1512   287,    0,  289,  290,  291,  292,   -1,  294,  295,  296,
1513   297,   -1,  299,   -1,  301,  302,  303,   -1,  257,  258,
1514   259,  260,  261,  262,   -1,   -1,  265,   -1,   -1,   -1,
1515    -1,   -1,   -1,   -1,   -1,   -1,  275,   -1,   37,   -1,
1516    -1,   -1,   41,   42,   -1,   44,    0,  286,   47,   -1,
1517   289,  290,  291,  292,  293,  294,  295,  296,  297,   58,
1518    59,   60,  301,   62,   63,   -1,   -1,   -1,   -1,   -1,
1519    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1520    -1,   -1,   -1,   37,   -1,   -1,   -1,   41,   42,   -1,
1521    44,    0,   -1,   47,   93,   94,   -1,   -1,   -1,   -1,
1522    -1,   -1,   -1,   -1,   58,   59,   60,   -1,   62,   63,
1523    -1,   -1,   -1,  112,   -1,   -1,   -1,   -1,   -1,   -1,
1524    -1,   -1,   -1,   -1,  123,  124,   -1,   -1,   37,   -1,
1525    -1,   -1,   41,   42,   -1,   44,   -1,   -1,   47,   93,
1526    94,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,
1527    59,   60,   -1,   62,   63,   -1,   -1,   -1,  112,   -1,
1528     0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,
1529   124,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1530    -1,   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,   -1,
1531    -1,   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   -1,
1532    -1,   41,   42,  112,   44,   -1,   -1,   47,   -1,   -1,
1533    -1,   -1,   -1,   -1,  123,  124,   -1,   -1,   58,   59,
1534    60,   -1,   62,   63,   -1,   -1,   -1,   -1,   -1,   -1,
1535    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1536    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1537    -1,   -1,   -1,   93,   94,   -1,   -1,   -1,  257,  258,
1538   259,  260,  261,  262,   -1,   -1,  265,   -1,   -1,   -1,
1539    -1,   -1,  112,   -1,   -1,   -1,  275,   -1,   -1,   -1,
1540    -1,   -1,   -1,  123,  124,   -1,   -1,  286,   -1,   -1,
1541   289,  290,  291,  292,  293,  294,  295,  296,  297,   -1,
1542    -1,   -1,  301,  257,  258,  259,  260,  261,  262,   -1,
1543    40,  265,   -1,   43,   44,   45,   -1,   -1,   -1,   -1,
1544    -1,  275,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1545    -1,   -1,  286,   63,   -1,  289,  290,  291,  292,  293,
1546   294,  295,  296,  297,   -1,   -1,   -1,  301,  257,  258,
1547   259,  260,  261,  262,   -1,   -1,  265,   -1,   -1,   -1,
1548    -1,   -1,   -1,   -1,   -1,   -1,  275,   -1,   -1,    0,
1549    -1,   -1,   -1,   -1,   -1,   -1,   -1,  286,   -1,   -1,
1550   289,  290,  291,  292,  293,  294,  295,  296,  297,   -1,
1551    -1,   -1,  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1552    -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   -1,   -1,
1553    41,   42,   -1,   44,   -1,   -1,   47,  257,  258,  259,
1554   260,  261,  262,   -1,   -1,  265,   -1,   58,   59,   60,
1555    -1,   62,   63,   -1,   -1,  275,    0,   -1,   -1,   -1,
1556    -1,   -1,   -1,   -1,   -1,   -1,  286,   -1,   -1,  289,
1557   290,  291,  292,  293,  294,  295,  296,  297,   -1,   -1,
1558    -1,  301,   93,   94,   -1,   -1,   -1,   -1,   -1,   -1,
1559    -1,   -1,   -1,   37,   -1,   -1,   -1,   41,   42,   -1,
1560    44,  112,   -1,   47,    0,   -1,   -1,   -1,   -1,   -1,
1561    -1,   -1,  123,  124,   58,   59,   60,   -1,   62,   63,
1562    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1563    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1564    -1,   37,   -1,   -1,   -1,   41,   42,   -1,   44,   93,
1565    94,   47,   -1,  263,  264,   -1,   -1,   -1,  268,  269,
1566   270,   -1,   58,   59,   60,   -1,   62,   -1,  112,   -1,
1567    -1,  281,   -1,  283,  284,  285,    0,  287,   -1,  123,
1568   124,   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,
1569    -1,   -1,  302,  303,  304,  305,  306,   93,   94,   -1,
1570    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1571    -1,   -1,   -1,   37,   -1,   -1,  112,   41,   42,   -1,
1572    44,   -1,   -1,   47,   -1,   -1,   -1,  123,  124,   -1,
1573    -1,   -1,   -1,   -1,   58,   59,   60,   -1,   62,   -1,
1574    -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,
1575   261,  262,   -1,   -1,  265,   -1,   -1,   -1,   -1,   -1,
1576    -1,   -1,   -1,   -1,  275,    0,   -1,   -1,   -1,   93,
1577    94,   -1,   -1,   -1,   -1,  286,   -1,   -1,  289,  290,
1578   291,  292,  293,  294,  295,  296,  297,   -1,  112,   -1,
1579   301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,
1580   124,   -1,   37,   -1,   -1,   -1,   41,   42,   -1,   44,
1581    -1,   -1,   47,  257,  258,  259,  260,  261,  262,   -1,
1582    -1,  265,   -1,   58,   59,   60,   -1,   62,   -1,   -1,
1583    -1,  275,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1584    -1,   -1,  286,   -1,   -1,  289,  290,  291,   -1,   -1,
1585    -1,   -1,  296,  297,   -1,   -1,   -1,  301,   93,   94,
1586    -1,  257,  258,  259,  260,  261,  262,    0,   -1,  265,
1587    -1,   -1,   -1,   -1,   -1,   -1,   -1,  112,   -1,  275,
1588    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,  124,
1589   286,   -1,   -1,  289,  290,  291,   -1,   -1,   -1,   -1,
1590   296,  297,   -1,   -1,   37,  301,   -1,   -1,   41,   42,
1591    -1,   44,   -1,   -1,   47,   -1,   -1,   -1,   -1,   -1,
1592    -1,   -1,    0,   -1,   -1,   58,   59,   60,   -1,   62,
1593    -1,   -1,   -1,  257,  258,  259,  260,  261,  262,   -1,
1594    -1,  265,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1595    -1,  275,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   37,
1596    93,   94,  286,   41,   42,  289,  290,  291,   -1,   47,
1597     0,   -1,  296,  297,   -1,   -1,   -1,  301,   -1,  112,
1598    58,   59,   60,   -1,   62,   -1,   -1,   -1,   -1,   -1,
1599   123,  124,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1600    -1,   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   -1,
1601    -1,   41,   42,   -1,   44,   93,   94,   47,   -1,   -1,
1602    -1,   -1,  257,  258,  259,  260,  261,  262,   58,   59,
1603   265,   -1,   -1,   -1,  112,   -1,   -1,   -1,   -1,   -1,
1604   275,   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,   -1,
1605    -1,  286,   -1,   -1,  289,  290,  291,   -1,   -1,   -1,
1606    -1,  296,  297,   93,   94,   -1,  301,   -1,   -1,   -1,
1607    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1608    -1,   -1,  112,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1609    -1,   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,   -1,
1610    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1611    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1612    -1,   -1,   -1,   -1,  257,  258,  259,  260,  261,  262,
1613    -1,   -1,  265,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1614    -1,   -1,  275,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1615    -1,   -1,   -1,  286,   -1,   -1,  289,  290,  291,   -1,
1616    -1,   -1,   -1,  296,  297,   -1,   -1,   -1,  301,   -1,
1617    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,
1618   258,  259,  260,  261,  262,   -1,   -1,  265,   -1,   -1,
1619    -1,   -1,   -1,   -1,   -1,   -1,   -1,  275,   -1,   -1,
1620    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  286,   -1,
1621    -1,  289,  290,  291,   -1,   -1,   -1,   -1,  296,  297,
1622    -1,    7,   -1,  301,   -1,   -1,   -1,  257,  258,  259,
1623   260,  261,  262,   -1,   -1,  265,   -1,   -1,   -1,   -1,
1624    -1,   -1,   -1,   -1,   30,  275,   -1,   -1,   -1,   -1,
1625    -1,   37,   -1,   -1,   -1,   -1,  286,   -1,   -1,  289,
1626   290,  291,   -1,   49,   -1,   -1,   52,   53,   54,   55,
1627    56,  301,   58,   59,   60,   -1,   62,   63,   64,   65,
1628    66,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1629    -1,   -1,   -1,   -1,   -1,   -1,   82,   -1,   -1,   85,
1630    86,   87,   88,   89,   90,   -1,   50,   51,   -1,   -1,
1631    -1,   -1,   -1,   -1,  100,   -1,   -1,  103,   -1,   -1,
1632    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  115,
1633    -1,   -1,   -1,   -1,   -1,  121,   -1,   81,   -1,   83,
1634    84,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1635   136,  137,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1636    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  154,   -1,
1637    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1638   166,  167,  168,  169,  170,   -1,   -1,   -1,   -1,  175,
1639   176,   -1,  178,  179,   -1,   -1,   -1,  183,   -1,   -1,
1640    -1,  187,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1641    -1,   -1,  198,  157,  158,  201,   -1,   -1,  204,  205,
1642    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   17,   -1,
1643    -1,   -1,   -1,  177,   -1,  221,  222,  223,   -1,   28,
1644    29,   -1,   31,   32,  188,   34,  190,   -1,  192,   -1,
1645    -1,   -1,   -1,   -1,   43,   -1,  242,   -1,  244,   -1,
1646   246,   -1,  248,   -1,  250,   -1,   -1,   -1,   -1,  255,
1647    -1,  215,   -1,   -1,  260,  261,   40,   -1,   -1,   43,
1648    -1,   45,  268,   -1,   -1,   -1,  230,  231,  232,  233,
1649   234,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,
1650    -1,   -1,  288,   -1,   93,   94,   95,   96,   97,   98,
1651    -1,   -1,   -1,   -1,   -1,   -1,  105,   -1,   -1,  305,
1652    -1,  110,   -1,   -1,  113,  114,   -1,   -1,  117,   40,
1653   119,  120,   43,   -1,   45,  124,  125,  281,   -1,   -1,
1654    -1,  285,  286,  287,   -1,   -1,  135,  291,   59,   -1,
1655   139,   -1,  141,  142,  143,  144,   -1,   -1,   -1,  123,
1656    -1,   -1,   -1,  152,   -1,   -1,  155,   -1,   -1,   -1,
1657    -1,   -1,  316,  317,   -1,   -1,  165,   40,  322,   -1,
1658    43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1659    -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,
1660    -1,   -1,   -1,   -1,  193,   -1,   -1,   -1,   -1,   -1,
1661    -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,
1662   209,  210,  211,  212,   -1,  214,   -1,  216,  217,   -1,
1663    -1,   -1,   -1,   -1,   -1,  224,  225,   -1,   -1,   -1,
1664    -1,   -1,   -1,   -1,   -1,   -1,   -1,  236,  237,  238,
1665   239,   40,   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,
1666   123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1667    59,   -1,   -1,   -1,   -1,  264,   -1,   -1,   -1,   -1,
1668    -1,   -1,   -1,   -1,   -1,   -1,   -1,  276,  277,  278,
1669   279,  280,   -1,  282,  283,  284,  260,  261,  262,  263,
1670   264,   -1,  266,  267,  268,  269,  270,  271,   -1,  273,
1671   274,   -1,  276,  277,  278,  279,  280,  281,  282,  283,
1672   284,  285,   -1,  287,  288,   -1,   -1,   -1,  292,  293,
1673   294,  295,   -1,   -1,  123,  299,  125,   -1,  302,  303,
1674   304,  305,  306,   -1,   -1,   -1,   -1,   -1,   -1,  260,
1675    -1,   -1,  263,  264,   -1,  266,  267,  268,  269,  270,
1676   271,  272,  273,  274,   -1,  276,  277,  278,  279,  280,
1677   281,  282,  283,  284,  285,   -1,  287,  288,   -1,   -1,
1678    -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,
1679    -1,  302,  303,  304,  305,  306,   -1,  260,   -1,   -1,
1680   263,  264,   -1,  266,  267,  268,  269,  270,  271,  272,
1681   273,  274,   -1,  276,  277,  278,  279,  280,  281,  282,
1682   283,  284,  285,   -1,  287,  288,   -1,   -1,   -1,  292,
1683   293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,  302,
1684   303,  304,  305,  306,   40,   -1,   -1,   43,   -1,   45,
1685    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1686    -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
1687    -1,  260,   -1,   -1,  263,  264,   -1,  266,  267,  268,
1688   269,  270,  271,  272,  273,  274,   -1,  276,  277,  278,
1689   279,  280,  281,  282,  283,  284,  285,   -1,  287,  288,
1690    -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,
1691   299,   -1,   -1,  302,  303,  304,  305,  306,   40,   -1,
1692    -1,   43,   -1,   45,   -1,   -1,   -1,  123,   -1,  125,
1693    -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,
1694    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1695    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1696    -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,
1697    45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1698    -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,
1699    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1700    -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,
1701    -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,
1702    43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1703    -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,
1704    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,
1705   125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1706    -1,   -1,   -1,   -1,  260,   -1,   -1,  263,  264,   -1,
1707   266,  267,  268,  269,  270,  271,  272,  273,  274,   -1,
1708   276,  277,  278,  279,  280,  281,  282,  283,  284,  285,
1709    -1,  287,  288,   -1,   -1,   -1,  292,  293,  294,  295,
1710   123,   -1,  125,  299,   -1,   -1,  302,  303,  304,  305,
1711   306,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1712    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1713    40,   41,   -1,   43,   44,   45,   -1,   -1,  260,   -1,
1714    -1,  263,  264,   -1,  266,  267,  268,  269,  270,  271,
1715   272,  273,  274,   63,  276,  277,  278,  279,  280,  281,
1716   282,  283,  284,  285,   -1,  287,  288,   -1,   -1,   -1,
1717   292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,
1718   302,  303,  304,  305,  306,  260,   -1,   -1,  263,  264,
1719    -1,  266,  267,  268,  269,  270,  271,  272,  273,  274,
1720    -1,  276,  277,  278,  279,  280,  281,  282,  283,  284,
1721   285,   -1,  287,  288,   -1,   -1,   -1,  292,  293,  294,
1722   295,   -1,   -1,   -1,  299,   -1,   -1,  302,  303,  304,
1723   305,  306,   -1,   40,   -1,   -1,   43,  260,   45,   -1,
1724   263,  264,   -1,  266,  267,  268,  269,  270,  271,  272,
1725   273,  274,   59,  276,  277,  278,  279,  280,  281,  282,
1726   283,  284,  285,   -1,  287,  288,   -1,   -1,   -1,  292,
1727   293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,  302,
1728   303,  304,  305,  306,   40,   -1,   -1,   43,   -1,   45,
1729    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1730    -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
1731    -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,  125,   -1,
1732    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1733    -1,   40,   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,
1734    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1735    59,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,
1736   270,   -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,  125,
1737    -1,  281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,
1738    -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,
1739    -1,   -1,  302,  303,  304,  305,  306,   -1,   -1,   40,
1740    -1,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,
1741    -1,   -1,   -1,   -1,  123,   -1,  125,   -1,   59,   -1,
1742    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1743    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1744    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1745    -1,   -1,   -1,  260,   -1,   -1,  263,  264,   -1,  266,
1746   267,  268,  269,  270,  271,  272,  273,  274,   -1,  276,
1747   277,  278,  279,  280,  281,  282,  283,  284,  285,   -1,
1748   287,  288,  123,   -1,  125,  292,  293,  294,  295,   -1,
1749    -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,  306,
1750    -1,   -1,   -1,   -1,  260,   -1,   -1,  263,  264,   -1,
1751   266,  267,  268,  269,  270,  271,   -1,  273,  274,   -1,
1752   276,  277,  278,  279,  280,  281,  282,  283,  284,  285,
1753    -1,  287,  288,   -1,   -1,   -1,  292,  293,  294,  295,
1754    -1,   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,
1755   306,  260,   -1,   -1,  263,  264,   -1,  266,  267,  268,
1756   269,  270,  271,   -1,  273,  274,   -1,  276,  277,  278,
1757   279,  280,  281,  282,  283,  284,  285,   -1,  287,  288,
1758    -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,
1759   299,   -1,   -1,  302,  303,  304,  305,  306,   40,   -1,
1760    -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,
1761    -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,  260,
1762    -1,   -1,  263,  264,   -1,  266,  267,  268,  269,  270,
1763   271,   -1,  273,  274,   -1,  276,  277,  278,  279,  280,
1764   281,  282,  283,  284,  285,   -1,  287,  288,   -1,   -1,
1765    -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,
1766    -1,  302,  303,  304,  305,  306,   40,   -1,   -1,   43,
1767    -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1768    -1,  123,   -1,  125,   -1,   59,   -1,   -1,   -1,   -1,
1769    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1770    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1771    -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,   -1,
1772    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1773    -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1774    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,
1775    -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1776    -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,
1777    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1778    -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
1779    -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,  125,   -1,
1780    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1781    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  260,   -1,
1782    -1,  263,  264,   -1,  266,  267,  268,  269,  270,  271,
1783    -1,  273,  274,   -1,  276,  277,  278,  279,  280,  281,
1784   282,  283,  284,  285,   -1,  287,  288,  123,   -1,  125,
1785   292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,
1786   302,  303,  304,  305,  306,   -1,   -1,   -1,   -1,   -1,
1787    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,
1788    -1,   -1,   43,   -1,   45,   -1,  260,   -1,   -1,  263,
1789   264,   -1,  266,  267,  268,  269,  270,  271,   59,  273,
1790   274,   -1,  276,  277,  278,  279,  280,  281,  282,  283,
1791   284,  285,   -1,  287,  288,   -1,   -1,   -1,  292,  293,
1792   294,  295,   -1,   -1,   -1,  299,   -1,   -1,  302,  303,
1793   304,  305,  306,  260,   -1,   -1,  263,  264,   -1,  266,
1794   267,  268,  269,  270,  271,   -1,  273,  274,   -1,  276,
1795   277,  278,  279,  280,  281,  282,  283,  284,  285,   -1,
1796   287,  288,  123,   -1,  125,  292,  293,  294,  295,   -1,
1797    -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,  306,
1798    40,   -1,   -1,   43,  260,   45,   -1,  263,  264,   -1,
1799   266,  267,  268,  269,  270,  271,   -1,  273,  274,   -1,
1800   276,  277,  278,  279,  280,  281,  282,  283,  284,  285,
1801    -1,  287,  288,   -1,   -1,   -1,  292,  293,  294,  295,
1802    -1,   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,
1803   306,   40,   -1,   -1,   43,   44,   45,   -1,   -1,   -1,
1804    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1805    -1,   60,   -1,   62,   63,   -1,   -1,   -1,   -1,   -1,
1806    -1,   -1,   -1,  123,   -1,   -1,   -1,   -1,   -1,   -1,
1807    -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,
1808    45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1809    -1,   -1,   -1,   -1,   -1,   60,   -1,   62,   63,  260,
1810    -1,   -1,  263,  264,   -1,  266,  267,  268,  269,  270,
1811   271,   -1,  273,  274,   -1,  276,  277,  278,  279,  280,
1812   281,  282,  283,  284,  285,   -1,  287,  288,   -1,   -1,
1813    -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,
1814    -1,  302,  303,  304,  305,  306,   40,   41,   -1,   43,
1815    44,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1816    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   63,
1817    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1818    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1819    40,   41,   -1,   43,   44,   45,   -1,  257,  258,  259,
1820    -1,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,
1821   270,   -1,   -1,   63,   -1,   -1,   -1,   -1,   -1,   -1,
1822    -1,  281,   -1,  283,  284,  285,  286,  287,   -1,   -1,
1823    -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,
1824    -1,  301,  302,  303,  304,  305,  306,   40,   41,   -1,
1825    43,   44,   45,   -1,  263,  264,   -1,   -1,   -1,  268,
1826   269,  270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1827    63,   -1,  281,   -1,  283,  284,  285,   -1,  287,   -1,
1828    -1,   -1,   -1,  292,  293,  294,  295,  296,  297,   -1,
1829   299,   -1,   -1,  302,  303,  304,  305,  306,  263,  264,
1830    -1,   -1,   -1,  268,  269,  270,   -1,   -1,   -1,   -1,
1831    40,   41,   -1,   43,   44,   45,  281,   -1,  283,  284,
1832   285,   -1,  287,   -1,   -1,   -1,   -1,  292,  293,  294,
1833   295,  296,  297,   63,  299,   -1,   -1,  302,  303,  304,
1834   305,  306,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1835    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,
1836    -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,  263,
1837   264,   -1,   -1,   -1,  268,  269,  270,   59,   -1,   -1,
1838    -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,
1839   284,  285,   -1,  287,   -1,   -1,   -1,   -1,  292,  293,
1840   294,  295,   -1,   -1,   -1,  299,   -1,   -1,  302,  303,
1841   304,  305,  306,  263,  264,   -1,   -1,   -1,  268,  269,
1842   270,   40,   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,
1843    -1,  281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,
1844    -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,
1845    -1,   -1,  302,  303,  304,  305,  306,   -1,   -1,   -1,
1846    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,
1847   263,  264,   43,   -1,   45,  268,  269,  270,   -1,   -1,
1848    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,   -1,
1849   283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,  292,
1850   293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,  302,
1851   303,  304,  305,  306,   40,   -1,   -1,   43,   44,   45,
1852    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1853    -1,   -1,   -1,  263,  264,   -1,   -1,   63,  268,  269,
1854   270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1855    -1,  281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,
1856    -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,
1857    -1,   -1,  302,  303,  304,  305,  306,  259,   -1,   -1,
1858    -1,  263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,
1859    -1,   40,   -1,   -1,   43,   44,   45,   -1,   -1,  281,
1860    -1,  283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,
1861   292,  293,  294,  295,   63,   -1,   -1,  299,   -1,  301,
1862   302,  303,  304,  305,  306,   -1,   -1,   -1,   -1,   -1,
1863    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,
1864   259,   43,   44,   45,  263,  264,   -1,   -1,   -1,  268,
1865   269,  270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1866    -1,   63,  281,   -1,  283,  284,  285,   -1,  287,   -1,
1867    -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,
1868   299,   -1,  301,  302,  303,  304,  305,  306,  259,   -1,
1869    -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,  270,
1870    -1,   -1,   40,   -1,   -1,   43,   44,   45,   -1,   -1,
1871   281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,   -1,
1872    -1,  292,  293,  294,  295,   63,   -1,   -1,  299,   -1,
1873   301,  302,  303,  304,  305,  306,   -1,  263,  264,   -1,
1874    -1,   -1,  268,  269,  270,   -1,   -1,   40,   -1,   -1,
1875    43,   44,   45,   -1,   -1,  281,   -1,  283,  284,  285,
1876    -1,  287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,
1877    63,   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,
1878   306,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1879    -1,   -1,   -1,   40,   -1,   -1,   43,   44,   45,   -1,
1880    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1881    -1,   -1,   -1,   -1,  263,  264,   63,   -1,   -1,  268,
1882   269,  270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1883    -1,   -1,  281,   -1,  283,  284,  285,   -1,  287,   -1,
1884    -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,
1885   299,   -1,   -1,  302,  303,  304,  305,  306,   -1,   -1,
1886    -1,  263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,
1887    -1,   40,   -1,   -1,   43,   -1,   45,   -1,   -1,  281,
1888    -1,  283,  284,  285,   -1,  287,   -1,   -1,   -1,   58,
1889   292,  293,  294,  295,   63,   -1,   -1,  299,   -1,   -1,
1890   302,  303,  304,  305,  306,   -1,   -1,   -1,   -1,   -1,
1891    -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,
1892    45,   -1,   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,
1893   268,  269,  270,   58,   -1,   -1,   -1,   -1,   63,   -1,
1894    -1,   -1,   -1,  281,   -1,  283,  284,  285,   -1,  287,
1895    -1,   -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,
1896    -1,  299,   -1,   -1,  302,  303,  304,  305,  306,   -1,
1897   263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,   -1,
1898    40,   41,   -1,   43,   -1,   45,   -1,   -1,  281,   -1,
1899   283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,  292,
1900   293,  294,  295,   63,   -1,   -1,  299,   -1,   -1,  302,
1901   303,  304,  305,  306,   -1,   -1,  263,  264,   -1,   -1,
1902    -1,  268,  269,  270,   -1,   -1,   40,   41,   -1,   43,
1903    -1,   45,   -1,   -1,  281,   -1,  283,  284,  285,   -1,
1904   287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,   63,
1905    -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,  306,
1906    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1907    40,   41,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,
1908    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1909    -1,   -1,   -1,   63,  263,  264,   -1,   -1,   -1,  268,
1910   269,  270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1911    -1,   -1,  281,   -1,  283,  284,  285,   -1,  287,   -1,
1912    -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,
1913   299,   -1,   -1,  302,  303,  304,  305,  306,  263,  264,
1914    -1,   -1,   -1,  268,  269,  270,   -1,   -1,   40,   41,
1915    -1,   43,   -1,   45,   -1,   -1,  281,   -1,  283,  284,
1916   285,   -1,  287,   -1,   -1,   -1,   -1,  292,  293,  294,
1917   295,   63,   -1,   -1,  299,   -1,   -1,  302,  303,  304,
1918   305,  306,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1919    -1,   -1,   40,   41,   -1,   43,   -1,   45,   -1,   -1,
1920    -1,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,
1921   270,   -1,   -1,   -1,   -1,   63,   -1,   -1,   -1,   -1,
1922    -1,  281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,
1923    -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,
1924    -1,   -1,  302,  303,  304,  305,  306,   -1,   -1,  263,
1925   264,   -1,   -1,   -1,  268,  269,  270,   -1,   -1,   40,
1926    41,   -1,   43,   -1,   45,   -1,   -1,  281,   -1,  283,
1927   284,  285,   -1,  287,   -1,   -1,   -1,   -1,  292,  293,
1928   294,  295,   63,   -1,   -1,  299,   -1,   -1,  302,  303,
1929   304,  305,  306,  263,  264,   -1,   -1,   -1,  268,  269,
1930   270,   -1,   -1,   40,   41,   -1,   43,   -1,   45,   -1,
1931    -1,  281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,
1932    -1,   -1,  292,  293,  294,  295,   63,   -1,   -1,  299,
1933    -1,   -1,  302,  303,  304,  305,  306,   -1,   -1,   -1,
1934    -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,
1935    43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1936    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1937    63,  263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,
1938    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,
1939    -1,  283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,
1940   292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,
1941   302,  303,  304,  305,  306,  263,  264,   -1,   -1,   -1,
1942   268,  269,  270,   -1,   -1,   40,   41,   -1,   43,   -1,
1943    45,   -1,   -1,  281,   -1,  283,  284,  285,   -1,  287,
1944    -1,   -1,   -1,   -1,  292,  293,  294,  295,   63,   -1,
1945    -1,  299,   -1,   -1,  302,  303,  304,  305,  306,   -1,
1946    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,
1947    41,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,
1948    -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,  270,
1949    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1950   281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,   -1,
1951    -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,
1952    -1,  302,  303,  304,  305,  306,  263,  264,   -1,   -1,
1953    -1,  268,  269,  270,   40,   -1,   -1,   43,   -1,   45,
1954    -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,   -1,
1955   287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,   -1,
1956    -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,  306,
1957   263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,   -1,
1958    -1,   -1,   40,   -1,   -1,   43,   -1,   45,  281,   -1,
1959   283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,  292,
1960   293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,  302,
1961   303,  304,  305,  306,   -1,   -1,   -1,   -1,   -1,   -1,
1962    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1963    40,   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,
1964    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  263,  264,
1965    -1,   -1,   -1,  268,  269,  270,   -1,   -1,   -1,   -1,
1966    -1,   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,
1967   285,   -1,  287,   -1,   -1,   -1,   -1,  292,  293,  294,
1968   295,   -1,   -1,   -1,  299,   -1,   -1,  302,  303,  304,
1969   305,  306,  263,  264,   -1,   -1,   -1,  268,  269,  270,
1970    40,   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,
1971   281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,   -1,
1972    -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,
1973    -1,  302,  303,  304,  305,  306,   -1,   -1,   -1,   -1,
1974    -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,
1975    -1,   -1,   -1,  259,   -1,   -1,   -1,  263,  264,   -1,
1976    -1,   -1,  268,  269,  270,   -1,   -1,   63,   -1,   -1,
1977    -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,
1978    -1,  287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,
1979    -1,   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,
1980   306,  259,   -1,   -1,   40,  263,  264,   43,   -1,   45,
1981   268,  269,  270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1982    -1,   -1,   -1,  281,   -1,  283,  284,  285,   -1,  287,
1983    -1,   -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,
1984    -1,  299,   -1,   -1,  302,  303,  304,  305,  306,  259,
1985    -1,   -1,   40,  263,  264,   43,   -1,   45,  268,  269,
1986   270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1987    -1,  281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,
1988    -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,
1989    -1,   -1,  302,  303,  304,  305,  306,   40,   -1,   -1,
1990    43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1991    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  259,
1992    -1,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,
1993   270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1994    -1,  281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,
1995    -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,
1996    -1,   -1,  302,  303,  304,  305,  306,  263,  264,   -1,
1997    -1,   -1,  268,  269,  270,   -1,   -1,   -1,   -1,   -1,
1998    -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,
1999    -1,  287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,
2000    -1,   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,
2001   306,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2002    -1,   -1,   -1,  259,   -1,   -1,   -1,  263,  264,   -1,
2003    -1,   -1,  268,  269,  270,   -1,   -1,   -1,   -1,   -1,
2004    -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,
2005    -1,  287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,
2006    -1,   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,
2007   306,   -1,   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,
2008   268,  269,  270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2009    -1,   -1,   -1,  281,   -1,  283,  284,  285,   -1,  287,
2010    -1,   -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,
2011    -1,  299,   -1,   -1,  302,  303,  304,  305,  306,   -1,
2012   263,  264,   28,   29,   -1,  268,  269,  270,   34,   -1,
2013    -1,   -1,   -1,   -1,   -1,   -1,   -1,   43,  281,   -1,
2014   283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,  292,
2015   293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,  302,
2016   303,  304,  305,  306,   -1,   -1,   -1,   -1,   -1,   -1,
2017    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2018    -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   94,   95,
2019    96,   97,   98,   -1,   -1,   -1,   -1,   -1,   -1,  105,
2020    -1,   -1,   -1,   -1,  110,   -1,   -1,  113,  114,   -1,
2021    -1,  117,   -1,  119,  120,   -1,   -1,   -1,  124,  125,
2022    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  135,
2023    -1,   -1,   -1,  139,   -1,  141,  142,  143,  144,   -1,
2024    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  155,
2025    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  165,
2026    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2027    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2028    -1,   -1,   -1,   -1,   -1,   -1,   -1,  193,   -1,   -1,
2029    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2030    -1,   -1,   -1,  209,  210,  211,  212,   -1,  214,   -1,
2031   216,  217,   -1,   -1,   -1,   -1,   -1,   -1,  224,  225,
2032    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2033   236,  237,  238,  239,   -1,   -1,   -1,   -1,   -1,   -1,
2034    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2035    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  264,   -1,
2036    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2037   276,  277,  278,  279,  280,   -1,  282,  283,  284,
2038 };
2039 #define YYFINAL 1
2040 #ifndef YYDEBUG
2041 #define YYDEBUG 0
2042 #endif
2043 #define YYMAXTOKEN 306
2044 #if YYDEBUG
2045 #if defined(__cplusplus) || defined(__STDC__)
2046 const char * const yyname[] =
2047 #else
2048 char *yyname[] =
2049 #endif
2050 	{
2051 "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,
2052 0,0,0,"'%'",0,0,"'('","')'","'*'","'+'","','","'-'",0,"'/'",0,0,0,0,0,0,0,0,0,0,
2053 "':'","';'","'<'",0,"'>'","'?'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2054 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,
2055 0,0,0,"'{'","'|'","'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2056 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2057 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2058 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",
2059 "NEWLINE","COMMENT","FUN1","FUNN","GRGR","PRINT","PRINTF","SPRINTF_OLD",
2060 "SPRINTF_NEW","SPLIT","IF","ELSE","WHILE","FOR","IN","EXIT","NEXT","BREAK",
2061 "CONTINUE","RET","GETLINE","DO","SUB","GSUB","MATCH","FUNCTION","USERFUN",
2062 "DELETE","ASGNOP","OROR","ANDAND","NUMBER","VAR","SUBSTR","INDEX","MATCHOP",
2063 "RELOP","OR","STRING","UMINUS","NOT","INCR","DECR","FIELD","VFIELD","SVFIELD",
2064 };
2065 #if defined(__cplusplus) || defined(__STDC__)
2066 const char * const yyrule[] =
2067 #else
2068 char *yyrule[] =
2069 #endif
2070 	{"$accept : program",
2071 "program : junk hunks",
2072 "begin : BEGIN '{' maybe states '}' junk",
2073 "end : END '{' maybe states '}'",
2074 "end : end NEWLINE",
2075 "hunks : hunks hunk junk",
2076 "hunks :",
2077 "hunk : patpat",
2078 "hunk : patpat '{' maybe states '}'",
2079 "hunk : FUNCTION USERFUN '(' arg_list ')' maybe '{' maybe states '}'",
2080 "hunk : '{' maybe states '}'",
2081 "hunk : begin",
2082 "hunk : end",
2083 "arg_list : expr_list",
2084 "patpat : cond",
2085 "patpat : cond ',' cond",
2086 "cond : expr",
2087 "cond : match",
2088 "cond : rel",
2089 "cond : compound_cond",
2090 "cond : cond '?' expr ':' expr",
2091 "compound_cond : '(' compound_cond ')'",
2092 "compound_cond : cond ANDAND maybe cond",
2093 "compound_cond : cond OROR maybe cond",
2094 "compound_cond : NOT cond",
2095 "rel : expr RELOP expr",
2096 "rel : expr '>' expr",
2097 "rel : expr '<' expr",
2098 "rel : '(' rel ')'",
2099 "match : expr MATCHOP expr",
2100 "match : expr MATCHOP REGEX",
2101 "match : REGEX",
2102 "match : '(' match ')'",
2103 "expr : term",
2104 "expr : expr term",
2105 "expr : expr '?' expr ':' expr",
2106 "expr : variable ASGNOP cond",
2107 "sprintf : SPRINTF_NEW",
2108 "sprintf : SPRINTF_OLD",
2109 "term : variable",
2110 "term : NUMBER",
2111 "term : STRING",
2112 "term : term '+' term",
2113 "term : term '-' term",
2114 "term : term '*' term",
2115 "term : term '/' term",
2116 "term : term '%' term",
2117 "term : term '^' term",
2118 "term : term IN VAR",
2119 "term : variable INCR",
2120 "term : variable DECR",
2121 "term : INCR variable",
2122 "term : DECR variable",
2123 "term : '-' term",
2124 "term : '+' term",
2125 "term : '(' cond ')'",
2126 "term : GETLINE",
2127 "term : GETLINE variable",
2128 "term : GETLINE '<' expr",
2129 "term : GETLINE variable '<' expr",
2130 "term : term 'p' GETLINE",
2131 "term : term 'p' GETLINE variable",
2132 "term : FUN1",
2133 "term : FUN1 '(' ')'",
2134 "term : FUN1 '(' expr ')'",
2135 "term : FUNN '(' expr_list ')'",
2136 "term : USERFUN '(' expr_list ')'",
2137 "term : SPRINTF_NEW '(' expr_list ')'",
2138 "term : sprintf expr_list",
2139 "term : SUBSTR '(' expr ',' expr ',' expr ')'",
2140 "term : SUBSTR '(' expr ',' expr ')'",
2141 "term : SPLIT '(' expr ',' VAR ',' expr ')'",
2142 "term : SPLIT '(' expr ',' VAR ',' REGEX ')'",
2143 "term : SPLIT '(' expr ',' VAR ')'",
2144 "term : INDEX '(' expr ',' expr ')'",
2145 "term : MATCH '(' expr ',' REGEX ')'",
2146 "term : MATCH '(' expr ',' expr ')'",
2147 "term : SUB '(' expr ',' expr ')'",
2148 "term : SUB '(' REGEX ',' expr ')'",
2149 "term : GSUB '(' expr ',' expr ')'",
2150 "term : GSUB '(' REGEX ',' expr ')'",
2151 "term : SUB '(' expr ',' expr ',' expr ')'",
2152 "term : SUB '(' REGEX ',' expr ',' expr ')'",
2153 "term : GSUB '(' expr ',' expr ',' expr ')'",
2154 "term : GSUB '(' REGEX ',' expr ',' expr ')'",
2155 "variable : VAR",
2156 "variable : VAR '[' expr_list ']'",
2157 "variable : FIELD",
2158 "variable : SVFIELD",
2159 "variable : VFIELD term",
2160 "expr_list : expr",
2161 "expr_list : clist",
2162 "expr_list :",
2163 "clist : expr ',' maybe expr",
2164 "clist : clist ',' maybe expr",
2165 "clist : '(' clist ')'",
2166 "junk : junk hunksep",
2167 "junk :",
2168 "hunksep : ';'",
2169 "hunksep : SEMINEW",
2170 "hunksep : NEWLINE",
2171 "hunksep : COMMENT",
2172 "maybe : maybe nlstuff",
2173 "maybe :",
2174 "nlstuff : NEWLINE",
2175 "nlstuff : COMMENT",
2176 "separator : ';' maybe",
2177 "separator : SEMINEW maybe",
2178 "separator : NEWLINE maybe",
2179 "separator : COMMENT maybe",
2180 "states : states statement",
2181 "states :",
2182 "statement : simple separator maybe",
2183 "statement : ';' maybe",
2184 "statement : SEMINEW maybe",
2185 "statement : compound",
2186 "simpnull : simple",
2187 "simpnull :",
2188 "simple : expr",
2189 "simple : PRINT expr_list redir expr",
2190 "simple : PRINT expr_list",
2191 "simple : PRINTF expr_list redir expr",
2192 "simple : PRINTF expr_list",
2193 "simple : BREAK",
2194 "simple : NEXT",
2195 "simple : EXIT",
2196 "simple : EXIT expr",
2197 "simple : CONTINUE",
2198 "simple : RET",
2199 "simple : RET expr",
2200 "simple : DELETE VAR '[' expr_list ']'",
2201 "redir : '>'",
2202 "redir : GRGR",
2203 "redir : '|'",
2204 "compound : IF '(' cond ')' maybe statement",
2205 "compound : IF '(' cond ')' maybe statement ELSE maybe statement",
2206 "compound : WHILE '(' cond ')' maybe statement",
2207 "compound : DO maybe statement WHILE '(' cond ')'",
2208 "compound : FOR '(' simpnull ';' cond ';' simpnull ')' maybe statement",
2209 "compound : FOR '(' simpnull ';' ';' simpnull ')' maybe statement",
2210 "compound : FOR '(' expr ')' maybe statement",
2211 "compound : '{' maybe states '}' maybe",
2212 };
2213 #endif
2214 #ifndef YYSTYPE
2215 typedef int YYSTYPE;
2216 #endif
2217 #ifdef YYSTACKSIZE
2218 #undef YYMAXDEPTH
2219 #define YYMAXDEPTH YYSTACKSIZE
2220 #else
2221 #ifdef YYMAXDEPTH
2222 #define YYSTACKSIZE YYMAXDEPTH
2223 #else
2224 #define YYSTACKSIZE 10000
2225 #define YYMAXDEPTH 10000
2226 #endif
2227 #endif
2228 #define YYINITSTACKSIZE 200
2229 /* LINTUSED */
2230 int yydebug;
2231 int yynerrs;
2232 int yyerrflag;
2233 int yychar;
2234 short *yyssp;
2235 YYSTYPE *yyvsp;
2236 YYSTYPE yyval;
2237 YYSTYPE yylval;
2238 short *yyss;
2239 short *yysslim;
2240 YYSTYPE *yyvs;
2241 int yystacksize;
2242 #line 435 "a2p.y"
2243 
2244 int yyparse (void);
2245 
2246 #include "a2py.c"
2247 #line 2196 "y.tab.c"
2248 /* allocate initial stack or double stack size, up to YYMAXDEPTH */
2249 #if defined(__cplusplus) || defined(__STDC__)
yygrowstack(void)2250 static int yygrowstack(void)
2251 #else
2252 static int yygrowstack()
2253 #endif
2254 {
2255     int newsize, i;
2256     short *newss;
2257     YYSTYPE *newvs;
2258 
2259     if ((newsize = yystacksize) == 0)
2260         newsize = YYINITSTACKSIZE;
2261     else if (newsize >= YYMAXDEPTH)
2262         return -1;
2263     else if ((newsize *= 2) > YYMAXDEPTH)
2264         newsize = YYMAXDEPTH;
2265     i = yyssp - yyss;
2266 #ifdef SIZE_MAX
2267 #define YY_SIZE_MAX SIZE_MAX
2268 #else
2269 #define YY_SIZE_MAX 0xffffffffU
2270 #endif
2271     if (newsize && YY_SIZE_MAX / newsize < sizeof *newss)
2272         goto bail;
2273     newss = yyss ? (short *)realloc(yyss, newsize * sizeof *newss) :
2274       (short *)malloc(newsize * sizeof *newss); /* overflow check above */
2275     if (newss == NULL)
2276         goto bail;
2277     yyss = newss;
2278     yyssp = newss + i;
2279     if (newsize && YY_SIZE_MAX / newsize < sizeof *newvs)
2280         goto bail;
2281     newvs = yyvs ? (YYSTYPE *)realloc(yyvs, newsize * sizeof *newvs) :
2282       (YYSTYPE *)malloc(newsize * sizeof *newvs); /* overflow check above */
2283     if (newvs == NULL)
2284         goto bail;
2285     yyvs = newvs;
2286     yyvsp = newvs + i;
2287     yystacksize = newsize;
2288     yysslim = yyss + newsize - 1;
2289     return 0;
2290 bail:
2291     if (yyss)
2292             free(yyss);
2293     if (yyvs)
2294             free(yyvs);
2295     yyss = yyssp = NULL;
2296     yyvs = yyvsp = NULL;
2297     yystacksize = 0;
2298     return -1;
2299 }
2300 
2301 #define YYABORT goto yyabort
2302 #define YYREJECT goto yyabort
2303 #define YYACCEPT goto yyaccept
2304 #define YYERROR goto yyerrlab
2305 int
2306 #if defined(__cplusplus) || defined(__STDC__)
yyparse(void)2307 yyparse(void)
2308 #else
2309 yyparse()
2310 #endif
2311 {
2312     int yym, yyn, yystate;
2313 #if YYDEBUG
2314 #if defined(__cplusplus) || defined(__STDC__)
2315     const char *yys;
2316 #else /* !(defined(__cplusplus) || defined(__STDC__)) */
2317     char *yys;
2318 #endif /* !(defined(__cplusplus) || defined(__STDC__)) */
2319 
2320     if (((yys = getenv("YYDEBUG"))))
2321     {
2322         yyn = *yys;
2323         if (yyn >= '0' && yyn <= '9')
2324             yydebug = yyn - '0';
2325     }
2326 #endif /* YYDEBUG */
2327 
2328     yynerrs = 0;
2329     yyerrflag = 0;
2330     yychar = (-1);
2331 
2332     if (yyss == NULL && yygrowstack()) goto yyoverflow;
2333     yyssp = yyss;
2334     yyvsp = yyvs;
2335     *yyssp = yystate = 0;
2336 
2337 yyloop:
2338     if (((yyn = yydefred[yystate])) != 0) goto yyreduce;
2339     if (yychar < 0)
2340     {
2341         if ((yychar = yylex()) < 0) yychar = 0;
2342 #if YYDEBUG
2343         if (yydebug)
2344         {
2345             yys = 0;
2346             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
2347             if (!yys) yys = "illegal-symbol";
2348             printf("%sdebug: state %d, reading %d (%s)\n",
2349                     YYPREFIX, yystate, yychar, yys);
2350         }
2351 #endif
2352     }
2353     if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
2354             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
2355     {
2356 #if YYDEBUG
2357         if (yydebug)
2358             printf("%sdebug: state %d, shifting to state %d\n",
2359                     YYPREFIX, yystate, yytable[yyn]);
2360 #endif
2361         if (yyssp >= yysslim && yygrowstack())
2362         {
2363             goto yyoverflow;
2364         }
2365         *++yyssp = yystate = yytable[yyn];
2366         *++yyvsp = yylval;
2367         yychar = (-1);
2368         if (yyerrflag > 0)  --yyerrflag;
2369         goto yyloop;
2370     }
2371     if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
2372             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
2373     {
2374         yyn = yytable[yyn];
2375         goto yyreduce;
2376     }
2377     if (yyerrflag) goto yyinrecovery;
2378 #if defined(lint) || defined(__GNUC__)
2379 
2380 #endif
2381 
2382     yyerror("syntax error");
2383 #if defined(lint) || defined(__GNUC__)
2384 
2385 #endif
2386 
2387     ++yynerrs;
2388 yyinrecovery:
2389     if (yyerrflag < 3)
2390     {
2391         yyerrflag = 3;
2392         for (;;)
2393         {
2394             if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
2395                     yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
2396             {
2397 #if YYDEBUG
2398                 if (yydebug)
2399                     printf("%sdebug: state %d, error recovery shifting\
2400  to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
2401 #endif
2402                 if (yyssp >= yysslim && yygrowstack())
2403                 {
2404                     goto yyoverflow;
2405                 }
2406                 *++yyssp = yystate = yytable[yyn];
2407                 *++yyvsp = yylval;
2408                 goto yyloop;
2409             }
2410             else
2411             {
2412 #if YYDEBUG
2413                 if (yydebug)
2414                     printf("%sdebug: error recovery discarding state %d\n",
2415                             YYPREFIX, *yyssp);
2416 #endif
2417                 if (yyssp <= yyss) goto yyabort;
2418                 --yyssp;
2419                 --yyvsp;
2420             }
2421         }
2422     }
2423     else
2424     {
2425         if (yychar == 0) goto yyabort;
2426 #if YYDEBUG
2427         if (yydebug)
2428         {
2429             yys = 0;
2430             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
2431             if (!yys) yys = "illegal-symbol";
2432             printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
2433                     YYPREFIX, yystate, yychar, yys);
2434         }
2435 #endif
2436         yychar = (-1);
2437         goto yyloop;
2438     }
2439 yyreduce:
2440 #if YYDEBUG
2441     if (yydebug)
2442         printf("%sdebug: state %d, reducing by rule %d (%s)\n",
2443                 YYPREFIX, yystate, yyn, yyrule[yyn]);
2444 #endif
2445     yym = yylen[yyn];
2446     if (yym)
2447         yyval = yyvsp[1-yym];
2448     else
2449         memset(&yyval, 0, sizeof yyval);
2450     switch (yyn)
2451     {
2452 case 1:
2453 #line 58 "a2p.y"
2454 { root = oper4(OPROG,yyvsp[-1],begins,yyvsp[0],ends); }
2455 break;
2456 case 2:
2457 #line 62 "a2p.y"
2458 { begins = oper4(OJUNK,begins,yyvsp[-3],yyvsp[-2],yyvsp[0]); in_begin = FALSE;
2459 		    yyval = Nullop; }
2460 break;
2461 case 3:
2462 #line 67 "a2p.y"
2463 { ends = oper3(OJUNK,ends,yyvsp[-2],yyvsp[-1]); yyval = Nullop; }
2464 break;
2465 case 4:
2466 #line 69 "a2p.y"
2467 { yyval = yyvsp[-1]; }
2468 break;
2469 case 5:
2470 #line 73 "a2p.y"
2471 { yyval = oper3(OHUNKS,yyvsp[-2],yyvsp[-1],yyvsp[0]); }
2472 break;
2473 case 6:
2474 #line 75 "a2p.y"
2475 { yyval = Nullop; }
2476 break;
2477 case 7:
2478 #line 79 "a2p.y"
2479 { yyval = oper1(OHUNK,yyvsp[0]); need_entire = TRUE; }
2480 break;
2481 case 8:
2482 #line 81 "a2p.y"
2483 { yyval = oper2(OHUNK,yyvsp[-4],oper2(OJUNK,yyvsp[-2],yyvsp[-1])); }
2484 break;
2485 case 9:
2486 #line 83 "a2p.y"
2487 { fixfargs(yyvsp[-8],yyvsp[-6],0); yyval = oper5(OUSERDEF,yyvsp[-8],yyvsp[-6],yyvsp[-4],yyvsp[-2],yyvsp[-1]); }
2488 break;
2489 case 10:
2490 #line 85 "a2p.y"
2491 { yyval = oper2(OHUNK,Nullop,oper2(OJUNK,yyvsp[-2],yyvsp[-1])); }
2492 break;
2493 case 13:
2494 #line 91 "a2p.y"
2495 { yyval = rememberargs(yyval); }
2496 break;
2497 case 14:
2498 #line 95 "a2p.y"
2499 { yyval = oper1(OPAT,yyvsp[0]); }
2500 break;
2501 case 15:
2502 #line 97 "a2p.y"
2503 { yyval = oper2(ORANGE,yyvsp[-2],yyvsp[0]); }
2504 break;
2505 case 20:
2506 #line 105 "a2p.y"
2507 { yyval = oper3(OCOND,yyvsp[-4],yyvsp[-2],yyvsp[0]); }
2508 break;
2509 case 21:
2510 #line 110 "a2p.y"
2511 { yyval = oper1(OCPAREN,yyvsp[-1]); }
2512 break;
2513 case 22:
2514 #line 112 "a2p.y"
2515 { yyval = oper3(OCANDAND,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
2516 break;
2517 case 23:
2518 #line 114 "a2p.y"
2519 { yyval = oper3(OCOROR,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
2520 break;
2521 case 24:
2522 #line 116 "a2p.y"
2523 { yyval = oper1(OCNOT,yyvsp[0]); }
2524 break;
2525 case 25:
2526 #line 120 "a2p.y"
2527 { yyval = oper3(ORELOP,yyvsp[-1],yyvsp[-2],yyvsp[0]); }
2528 break;
2529 case 26:
2530 #line 122 "a2p.y"
2531 { yyval = oper3(ORELOP,string(">",1),yyvsp[-2],yyvsp[0]); }
2532 break;
2533 case 27:
2534 #line 124 "a2p.y"
2535 { yyval = oper3(ORELOP,string("<",1),yyvsp[-2],yyvsp[0]); }
2536 break;
2537 case 28:
2538 #line 126 "a2p.y"
2539 { yyval = oper1(ORPAREN,yyvsp[-1]); }
2540 break;
2541 case 29:
2542 #line 130 "a2p.y"
2543 { yyval = oper3(OMATCHOP,yyvsp[-1],yyvsp[-2],yyvsp[0]); }
2544 break;
2545 case 30:
2546 #line 132 "a2p.y"
2547 { yyval = oper3(OMATCHOP,yyvsp[-1],yyvsp[-2],oper1(OREGEX,yyvsp[0])); }
2548 break;
2549 case 31:
2550 #line 134 "a2p.y"
2551 { yyval = oper1(OREGEX,yyvsp[0]); }
2552 break;
2553 case 32:
2554 #line 136 "a2p.y"
2555 { yyval = oper1(OMPAREN,yyvsp[-1]); }
2556 break;
2557 case 33:
2558 #line 140 "a2p.y"
2559 { yyval = yyvsp[0]; }
2560 break;
2561 case 34:
2562 #line 142 "a2p.y"
2563 { yyval = oper2(OCONCAT,yyvsp[-1],yyvsp[0]); }
2564 break;
2565 case 35:
2566 #line 144 "a2p.y"
2567 { yyval = oper3(OCOND,yyvsp[-4],yyvsp[-2],yyvsp[0]); }
2568 break;
2569 case 36:
2570 #line 146 "a2p.y"
2571 {
2572 		    yyval = oper3(OASSIGN,yyvsp[-1],yyvsp[-2],yyvsp[0]);
2573 		    if ((ops[yyvsp[-2]].ival & 255) == OFLD)
2574 			lval_field = TRUE;
2575 		    else if ((ops[yyvsp[-2]].ival & 255) == OVFLD)
2576 			lval_field = TRUE;
2577 		}
2578 break;
2579 case 39:
2580 #line 159 "a2p.y"
2581 { yyval = yyvsp[0]; }
2582 break;
2583 case 40:
2584 #line 161 "a2p.y"
2585 { yyval = oper1(ONUM,yyvsp[0]); }
2586 break;
2587 case 41:
2588 #line 163 "a2p.y"
2589 { yyval = oper1(OSTR,yyvsp[0]); }
2590 break;
2591 case 42:
2592 #line 165 "a2p.y"
2593 { yyval = oper2(OADD,yyvsp[-2],yyvsp[0]); }
2594 break;
2595 case 43:
2596 #line 167 "a2p.y"
2597 { yyval = oper2(OSUBTRACT,yyvsp[-2],yyvsp[0]); }
2598 break;
2599 case 44:
2600 #line 169 "a2p.y"
2601 { yyval = oper2(OMULT,yyvsp[-2],yyvsp[0]); }
2602 break;
2603 case 45:
2604 #line 171 "a2p.y"
2605 { yyval = oper2(ODIV,yyvsp[-2],yyvsp[0]); }
2606 break;
2607 case 46:
2608 #line 173 "a2p.y"
2609 { yyval = oper2(OMOD,yyvsp[-2],yyvsp[0]); }
2610 break;
2611 case 47:
2612 #line 175 "a2p.y"
2613 { yyval = oper2(OPOW,yyvsp[-2],yyvsp[0]); }
2614 break;
2615 case 48:
2616 #line 177 "a2p.y"
2617 { yyval = oper2(ODEFINED,aryrefarg(yyvsp[0]),yyvsp[-2]); }
2618 break;
2619 case 49:
2620 #line 179 "a2p.y"
2621 {
2622 		    yyval = oper1(OPOSTINCR,yyvsp[-1]);
2623 		    if ((ops[yyvsp[-1]].ival & 255) == OFLD)
2624 			lval_field = TRUE;
2625 		    else if ((ops[yyvsp[-1]].ival & 255) == OVFLD)
2626 			lval_field = TRUE;
2627 		}
2628 break;
2629 case 50:
2630 #line 187 "a2p.y"
2631 {
2632 		    yyval = oper1(OPOSTDECR,yyvsp[-1]);
2633 		    if ((ops[yyvsp[-1]].ival & 255) == OFLD)
2634 			lval_field = TRUE;
2635 		    else if ((ops[yyvsp[-1]].ival & 255) == OVFLD)
2636 			lval_field = TRUE;
2637 		}
2638 break;
2639 case 51:
2640 #line 195 "a2p.y"
2641 {
2642 		    yyval = oper1(OPREINCR,yyvsp[0]);
2643 		    if ((ops[yyvsp[0]].ival & 255) == OFLD)
2644 			lval_field = TRUE;
2645 		    else if ((ops[yyvsp[0]].ival & 255) == OVFLD)
2646 			lval_field = TRUE;
2647 		}
2648 break;
2649 case 52:
2650 #line 203 "a2p.y"
2651 {
2652 		    yyval = oper1(OPREDECR,yyvsp[0]);
2653 		    if ((ops[yyvsp[0]].ival & 255) == OFLD)
2654 			lval_field = TRUE;
2655 		    else if ((ops[yyvsp[0]].ival & 255) == OVFLD)
2656 			lval_field = TRUE;
2657 		}
2658 break;
2659 case 53:
2660 #line 211 "a2p.y"
2661 { yyval = oper1(OUMINUS,yyvsp[0]); }
2662 break;
2663 case 54:
2664 #line 213 "a2p.y"
2665 { yyval = oper1(OUPLUS,yyvsp[0]); }
2666 break;
2667 case 55:
2668 #line 215 "a2p.y"
2669 { yyval = oper1(OPAREN,yyvsp[-1]); }
2670 break;
2671 case 56:
2672 #line 217 "a2p.y"
2673 { yyval = oper0(OGETLINE); }
2674 break;
2675 case 57:
2676 #line 219 "a2p.y"
2677 { yyval = oper1(OGETLINE,yyvsp[0]); }
2678 break;
2679 case 58:
2680 #line 221 "a2p.y"
2681 { yyval = oper3(OGETLINE,Nullop,string("<",1),yyvsp[0]);
2682 		    if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2683 break;
2684 case 59:
2685 #line 224 "a2p.y"
2686 { yyval = oper3(OGETLINE,yyvsp[-2],string("<",1),yyvsp[0]);
2687 		    if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2688 break;
2689 case 60:
2690 #line 227 "a2p.y"
2691 { yyval = oper3(OGETLINE,Nullop,string("|",1),yyvsp[-2]);
2692 		    if (ops[yyvsp[-2]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2693 break;
2694 case 61:
2695 #line 230 "a2p.y"
2696 { yyval = oper3(OGETLINE,yyvsp[0],string("|",1),yyvsp[-3]);
2697 		    if (ops[yyvsp[-3]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2698 break;
2699 case 62:
2700 #line 233 "a2p.y"
2701 { yyval = oper0(yyvsp[0]); need_entire = do_chop = TRUE; }
2702 break;
2703 case 63:
2704 #line 235 "a2p.y"
2705 { yyval = oper1(yyvsp[-2],Nullop); need_entire = do_chop = TRUE; }
2706 break;
2707 case 64:
2708 #line 237 "a2p.y"
2709 { yyval = oper1(yyvsp[-3],yyvsp[-1]); }
2710 break;
2711 case 65:
2712 #line 239 "a2p.y"
2713 { yyval = oper1(yyvsp[-3],yyvsp[-1]); }
2714 break;
2715 case 66:
2716 #line 241 "a2p.y"
2717 { yyval = oper2(OUSERFUN,yyvsp[-3],yyvsp[-1]); }
2718 break;
2719 case 67:
2720 #line 243 "a2p.y"
2721 { yyval = oper1(OSPRINTF,yyvsp[-1]); }
2722 break;
2723 case 68:
2724 #line 245 "a2p.y"
2725 { yyval = oper1(OSPRINTF,yyvsp[0]); }
2726 break;
2727 case 69:
2728 #line 247 "a2p.y"
2729 { yyval = oper3(OSUBSTR,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
2730 break;
2731 case 70:
2732 #line 249 "a2p.y"
2733 { yyval = oper2(OSUBSTR,yyvsp[-3],yyvsp[-1]); }
2734 break;
2735 case 71:
2736 #line 251 "a2p.y"
2737 { yyval = oper3(OSPLIT,yyvsp[-5],aryrefarg(numary(yyvsp[-3])),yyvsp[-1]); }
2738 break;
2739 case 72:
2740 #line 253 "a2p.y"
2741 { yyval = oper3(OSPLIT,yyvsp[-5],aryrefarg(numary(yyvsp[-3])),oper1(OREGEX,yyvsp[-1]));}
2742 break;
2743 case 73:
2744 #line 255 "a2p.y"
2745 { yyval = oper2(OSPLIT,yyvsp[-3],aryrefarg(numary(yyvsp[-1]))); }
2746 break;
2747 case 74:
2748 #line 257 "a2p.y"
2749 { yyval = oper2(OINDEX,yyvsp[-3],yyvsp[-1]); }
2750 break;
2751 case 75:
2752 #line 259 "a2p.y"
2753 { yyval = oper2(OMATCH,yyvsp[-3],oper1(OREGEX,yyvsp[-1])); }
2754 break;
2755 case 76:
2756 #line 261 "a2p.y"
2757 { yyval = oper2(OMATCH,yyvsp[-3],yyvsp[-1]); }
2758 break;
2759 case 77:
2760 #line 263 "a2p.y"
2761 { yyval = oper2(OSUB,yyvsp[-3],yyvsp[-1]); }
2762 break;
2763 case 78:
2764 #line 265 "a2p.y"
2765 { yyval = oper2(OSUB,oper1(OREGEX,yyvsp[-3]),yyvsp[-1]); }
2766 break;
2767 case 79:
2768 #line 267 "a2p.y"
2769 { yyval = oper2(OGSUB,yyvsp[-3],yyvsp[-1]); }
2770 break;
2771 case 80:
2772 #line 269 "a2p.y"
2773 { yyval = oper2(OGSUB,oper1(OREGEX,yyvsp[-3]),yyvsp[-1]); }
2774 break;
2775 case 81:
2776 #line 271 "a2p.y"
2777 { yyval = oper3(OSUB,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
2778 break;
2779 case 82:
2780 #line 273 "a2p.y"
2781 { yyval = oper3(OSUB,oper1(OREGEX,yyvsp[-5]),yyvsp[-3],yyvsp[-1]); }
2782 break;
2783 case 83:
2784 #line 275 "a2p.y"
2785 { yyval = oper3(OGSUB,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
2786 break;
2787 case 84:
2788 #line 277 "a2p.y"
2789 { yyval = oper3(OGSUB,oper1(OREGEX,yyvsp[-5]),yyvsp[-3],yyvsp[-1]); }
2790 break;
2791 case 85:
2792 #line 281 "a2p.y"
2793 { yyval = oper1(OVAR,yyvsp[0]); }
2794 break;
2795 case 86:
2796 #line 283 "a2p.y"
2797 { yyval = oper2(OVAR,aryrefarg(yyvsp[-3]),yyvsp[-1]); }
2798 break;
2799 case 87:
2800 #line 285 "a2p.y"
2801 { yyval = oper1(OFLD,yyvsp[0]); }
2802 break;
2803 case 88:
2804 #line 287 "a2p.y"
2805 { yyval = oper1(OVFLD,oper1(OVAR,yyvsp[0])); }
2806 break;
2807 case 89:
2808 #line 289 "a2p.y"
2809 { yyval = oper1(OVFLD,yyvsp[0]); }
2810 break;
2811 case 92:
2812 #line 296 "a2p.y"
2813 { yyval = Nullop; }
2814 break;
2815 case 93:
2816 #line 300 "a2p.y"
2817 { yyval = oper3(OCOMMA,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
2818 break;
2819 case 94:
2820 #line 302 "a2p.y"
2821 { yyval = oper3(OCOMMA,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
2822 break;
2823 case 95:
2824 #line 304 "a2p.y"
2825 { yyval = yyvsp[-1]; }
2826 break;
2827 case 96:
2828 #line 308 "a2p.y"
2829 { yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); }
2830 break;
2831 case 97:
2832 #line 310 "a2p.y"
2833 { yyval = Nullop; }
2834 break;
2835 case 98:
2836 #line 314 "a2p.y"
2837 { yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); }
2838 break;
2839 case 99:
2840 #line 316 "a2p.y"
2841 { yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); }
2842 break;
2843 case 100:
2844 #line 318 "a2p.y"
2845 { yyval = oper0(ONEWLINE); }
2846 break;
2847 case 101:
2848 #line 320 "a2p.y"
2849 { yyval = oper1(OCOMMENT,yyvsp[0]); }
2850 break;
2851 case 102:
2852 #line 324 "a2p.y"
2853 { yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); }
2854 break;
2855 case 103:
2856 #line 326 "a2p.y"
2857 { yyval = Nullop; }
2858 break;
2859 case 104:
2860 #line 330 "a2p.y"
2861 { yyval = oper0(ONEWLINE); }
2862 break;
2863 case 105:
2864 #line 332 "a2p.y"
2865 { yyval = oper1(OCOMMENT,yyvsp[0]); }
2866 break;
2867 case 106:
2868 #line 337 "a2p.y"
2869 { yyval = oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0]); }
2870 break;
2871 case 107:
2872 #line 339 "a2p.y"
2873 { yyval = oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0]); }
2874 break;
2875 case 108:
2876 #line 341 "a2p.y"
2877 { yyval = oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0]); }
2878 break;
2879 case 109:
2880 #line 343 "a2p.y"
2881 { yyval = oper2(OJUNK,oper1(OSCOMMENT,yyvsp[-1]),yyvsp[0]); }
2882 break;
2883 case 110:
2884 #line 347 "a2p.y"
2885 { yyval = oper2(OSTATES,yyvsp[-1],yyvsp[0]); }
2886 break;
2887 case 111:
2888 #line 349 "a2p.y"
2889 { yyval = Nullop; }
2890 break;
2891 case 112:
2892 #line 354 "a2p.y"
2893 { yyval = oper2(OJUNK,oper2(OSTATE,yyvsp[-2],yyvsp[-1]),yyvsp[0]); }
2894 break;
2895 case 113:
2896 #line 356 "a2p.y"
2897 { yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0])); }
2898 break;
2899 case 114:
2900 #line 358 "a2p.y"
2901 { yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0])); }
2902 break;
2903 case 117:
2904 #line 364 "a2p.y"
2905 { yyval = Nullop; }
2906 break;
2907 case 119:
2908 #line 370 "a2p.y"
2909 { yyval = oper3(OPRINT,yyvsp[-2],yyvsp[-1],yyvsp[0]);
2910 		    do_opens = TRUE;
2911 		    saw_ORS = saw_OFS = TRUE;
2912 		    if (!yyvsp[-2]) need_entire = TRUE;
2913 		    if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2914 break;
2915 case 120:
2916 #line 376 "a2p.y"
2917 { yyval = oper1(OPRINT,yyvsp[0]);
2918 		    if (!yyvsp[0]) need_entire = TRUE;
2919 		    saw_ORS = saw_OFS = TRUE;
2920 		}
2921 break;
2922 case 121:
2923 #line 381 "a2p.y"
2924 { yyval = oper3(OPRINTF,yyvsp[-2],yyvsp[-1],yyvsp[0]);
2925 		    do_opens = TRUE;
2926 		    if (!yyvsp[-2]) need_entire = TRUE;
2927 		    if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2928 break;
2929 case 122:
2930 #line 386 "a2p.y"
2931 { yyval = oper1(OPRINTF,yyvsp[0]);
2932 		    if (!yyvsp[0]) need_entire = TRUE;
2933 		}
2934 break;
2935 case 123:
2936 #line 390 "a2p.y"
2937 { yyval = oper0(OBREAK); }
2938 break;
2939 case 124:
2940 #line 392 "a2p.y"
2941 { yyval = oper0(ONEXT); }
2942 break;
2943 case 125:
2944 #line 394 "a2p.y"
2945 { yyval = oper0(OEXIT); }
2946 break;
2947 case 126:
2948 #line 396 "a2p.y"
2949 { yyval = oper1(OEXIT,yyvsp[0]); }
2950 break;
2951 case 127:
2952 #line 398 "a2p.y"
2953 { yyval = oper0(OCONTINUE); }
2954 break;
2955 case 128:
2956 #line 400 "a2p.y"
2957 { yyval = oper0(ORETURN); }
2958 break;
2959 case 129:
2960 #line 402 "a2p.y"
2961 { yyval = oper1(ORETURN,yyvsp[0]); }
2962 break;
2963 case 130:
2964 #line 404 "a2p.y"
2965 { yyval = oper2(ODELETE,aryrefarg(yyvsp[-3]),yyvsp[-1]); }
2966 break;
2967 case 131:
2968 #line 408 "a2p.y"
2969 { yyval = oper1(OREDIR,string(">",1)); }
2970 break;
2971 case 132:
2972 #line 410 "a2p.y"
2973 { yyval = oper1(OREDIR,string(">>",2)); }
2974 break;
2975 case 133:
2976 #line 412 "a2p.y"
2977 { yyval = oper1(OREDIR,string("|",1)); }
2978 break;
2979 case 134:
2980 #line 417 "a2p.y"
2981 { yyval = oper2(OIF,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
2982 break;
2983 case 135:
2984 #line 419 "a2p.y"
2985 { yyval = oper3(OIF,yyvsp[-6],bl(yyvsp[-3],yyvsp[-4]),bl(yyvsp[0],yyvsp[-1])); }
2986 break;
2987 case 136:
2988 #line 421 "a2p.y"
2989 { yyval = oper2(OWHILE,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
2990 break;
2991 case 137:
2992 #line 423 "a2p.y"
2993 { yyval = oper2(ODO,bl(yyvsp[-4],yyvsp[-5]),yyvsp[-1]); }
2994 break;
2995 case 138:
2996 #line 425 "a2p.y"
2997 { yyval = oper4(OFOR,yyvsp[-7],yyvsp[-5],yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
2998 break;
2999 case 139:
3000 #line 427 "a2p.y"
3001 { yyval = oper4(OFOR,yyvsp[-6],string("",0),yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
3002 break;
3003 case 140:
3004 #line 429 "a2p.y"
3005 { yyval = oper2(OFORIN,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
3006 break;
3007 case 141:
3008 #line 431 "a2p.y"
3009 { yyval = oper3(OBLOCK,oper2(OJUNK,yyvsp[-3],yyvsp[-2]),Nullop,yyvsp[0]); }
3010 break;
3011 #line 2960 "y.tab.c"
3012     }
3013     yyssp -= yym;
3014     yystate = *yyssp;
3015     yyvsp -= yym;
3016     yym = yylhs[yyn];
3017     if (yystate == 0 && yym == 0)
3018     {
3019 #if YYDEBUG
3020         if (yydebug)
3021             printf("%sdebug: after reduction, shifting from state 0 to\
3022  state %d\n", YYPREFIX, YYFINAL);
3023 #endif
3024         yystate = YYFINAL;
3025         *++yyssp = YYFINAL;
3026         *++yyvsp = yyval;
3027         if (yychar < 0)
3028         {
3029             if ((yychar = yylex()) < 0) yychar = 0;
3030 #if YYDEBUG
3031             if (yydebug)
3032             {
3033                 yys = 0;
3034                 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
3035                 if (!yys) yys = "illegal-symbol";
3036                 printf("%sdebug: state %d, reading %d (%s)\n",
3037                         YYPREFIX, YYFINAL, yychar, yys);
3038             }
3039 #endif
3040         }
3041         if (yychar == 0) goto yyaccept;
3042         goto yyloop;
3043     }
3044     if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
3045             yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
3046         yystate = yytable[yyn];
3047     else
3048         yystate = yydgoto[yym];
3049 #if YYDEBUG
3050     if (yydebug)
3051         printf("%sdebug: after reduction, shifting from state %d \
3052 to state %d\n", YYPREFIX, *yyssp, yystate);
3053 #endif
3054     if (yyssp >= yysslim && yygrowstack())
3055     {
3056         goto yyoverflow;
3057     }
3058     *++yyssp = yystate;
3059     *++yyvsp = yyval;
3060     goto yyloop;
3061 yyoverflow:
3062     yyerror("yacc stack overflow");
3063 yyabort:
3064     if (yyss)
3065             free(yyss);
3066     if (yyvs)
3067             free(yyvs);
3068     yyss = yyssp = NULL;
3069     yyvs = yyvsp = NULL;
3070     yystacksize = 0;
3071     return (1);
3072 yyaccept:
3073     if (yyss)
3074             free(yyss);
3075     if (yyvs)
3076             free(yyvs);
3077     yyss = yyssp = NULL;
3078     yyvs = yyvsp = NULL;
3079     yystacksize = 0;
3080     return (0);
3081 }
3082