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