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