This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Simplify parser’s handling of my/local
[perl5.git] / perly.tab
1 /* -*- buffer-read-only: t -*-
2    !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
3    This file is built by regen_perly.pl from perly.y.
4    Any changes made here will be lost!
5  */
6
7 #define YYFINAL  14
8 /* YYLAST -- Last index in YYTABLE.  */
9 #define YYLAST   2913
10
11 /* YYNTOKENS -- Number of terminals.  */
12 #define YYNTOKENS  105
13 /* YYNNTS -- Number of nonterminals.  */
14 #define YYNNTS  77
15 /* YYNRULES -- Number of rules.  */
16 #define YYNRULES  252
17 /* YYNRULES -- Number of states.  */
18 #define YYNSTATES  508
19
20 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
21 #define YYUNDEFTOK  2
22 #define YYMAXUTOK   337
23
24 #define YYTRANSLATE(YYX)                                                \
25   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
26
27 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
28 static const yytype_uint8 yytranslate[] =
29 {
30        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
31        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
32        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
33        2,     2,     2,    88,     2,     2,   102,    16,    17,     2,
34      100,    99,   103,    14,    77,    13,    19,   104,     2,     2,
35        2,     2,     2,     2,     2,     2,     2,     2,    80,   101,
36        2,    18,     2,    79,    15,     2,     2,     2,     2,     2,
37        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
38        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
39        2,    11,     2,    12,     2,     2,     2,     2,     2,     2,
40        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
41        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
42        2,     2,     2,     9,     2,    10,    89,     2,     2,     2,
43        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
44        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
45        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
46        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
47        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
48        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
49        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
50        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
51        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
52        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
53        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
54        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
55        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
56        5,     6,     7,     8,    20,    21,    22,    23,    24,    25,
57       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
58       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
59       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
60       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
61       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
62       76,    78,    81,    82,    83,    84,    85,    86,    87,    90,
63       91,    92,    93,    94,    95,    96,    97,    98
64 };
65
66 #if YYDEBUG
67 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
68    YYRHS.  */
69 static const yytype_uint16 yyprhs[] =
70 {
71        0,     0,     3,     4,     9,    10,    14,    15,    19,    20,
72       24,    25,    29,    30,    34,    39,    47,    48,    53,    54,
73       55,    58,    59,    62,    64,    66,    69,    72,    74,    79,
74       80,    88,    89,   100,   105,   106,   114,   122,   130,   137,
75      144,   147,   156,   165,   166,   167,   181,   191,   200,   201,
76      213,   223,   231,   234,   235,   244,   247,   249,   252,   253,
77      257,   259,   261,   265,   269,   273,   277,   281,   285,   286,
78      289,   296,   297,   300,   301,   302,   304,   305,   307,   309,
79      311,   313,   315,   316,   317,   318,   319,   321,   323,   324,
80      326,   327,   330,   332,   335,   337,   338,   342,   344,   346,
81      350,   354,   358,   360,   363,   367,   369,   373,   379,   386,
82      390,   394,   400,   403,   408,   409,   415,   417,   419,   425,
83      430,   436,   441,   447,   454,   460,   465,   471,   476,   480,
84      487,   492,   498,   502,   506,   510,   514,   518,   522,   526,
85      530,   534,   538,   542,   546,   550,   554,   557,   560,   563,
86      566,   569,   572,   575,   578,   581,   585,   588,   593,   597,
87      603,   612,   615,   618,   620,   622,   624,   626,   632,   635,
88      637,   640,   644,   646,   649,   651,   653,   655,   657,   659,
89      661,   666,   671,   677,   683,   685,   687,   691,   696,   700,
90      705,   710,   715,   720,   725,   727,   730,   733,   735,   738,
91      741,   743,   746,   748,   751,   753,   757,   759,   763,   765,
92      769,   774,   775,   782,   784,   786,   788,   790,   794,   797,
93      801,   804,   806,   808,   810,   811,   813,   814,   816,   817,
94      820,   822,   824,   826,   828,   830,   832,   835,   838,   841,
95      844,   847,   852,   855,   857,   861,   863,   867,   869,   873,
96      875,   877,   879
97 };
98
99 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
100 static const yytype_int16 yyrhs[] =
101 {
102      106,     0,    -1,    -1,     3,   107,   115,   118,    -1,    -1,
103        4,   108,   167,    -1,    -1,     5,   109,   113,    -1,    -1,
104        6,   110,   122,    -1,    -1,     7,   111,   120,    -1,    -1,
105        8,   112,   118,    -1,     9,   115,   118,    10,    -1,    18,
106      115,   101,    71,   119,   101,    19,    -1,    -1,     9,   117,
107      118,    10,    -1,    -1,    -1,   118,   120,    -1,    -1,   119,
108      130,    -1,   122,    -1,   121,    -1,    33,   122,    -1,    33,
109      121,    -1,    32,    -1,    34,   144,   141,   114,    -1,    -1,
110       35,   145,   142,   123,   146,   147,   151,    -1,    -1,    35,
111      145,   142,   124,   115,   149,   147,     9,   118,    10,    -1,
112       37,    20,    20,   101,    -1,    -1,    38,   142,   125,    20,
113       20,   166,   101,    -1,    41,   100,   115,   139,    99,   116,
114      133,    -1,    42,   100,   115,   139,    99,   116,   133,    -1,
115       47,   100,   115,   139,    99,   116,    -1,    48,   100,   115,
116      139,    99,   116,    -1,    49,   113,    -1,    39,   100,   115,
117      137,    99,   135,   116,   134,    -1,    40,   100,   115,   138,
118       99,   135,   116,   134,    -1,    -1,    -1,    46,   100,   115,
119      140,   101,   126,   137,   101,   127,   135,   140,    99,   116,
120       -1,    46,    67,   115,   169,   100,   139,    99,   116,   134,
121       -1,    46,   173,   100,   115,   139,    99,   116,   134,    -1,
122       -1,    46,    90,    67,   115,   170,   128,   100,   139,    99,
123      116,   134,    -1,    46,    90,   171,   100,   115,   139,    99,
124      116,   134,    -1,    46,   100,   115,   139,    99,   116,   134,
125       -1,   113,   134,    -1,    -1,    37,    20,    20,     9,   115,
126      129,   118,    10,    -1,   132,   101,    -1,   101,    -1,    23,
127      131,    -1,    -1,    70,   118,    71,    -1,     1,    -1,   152,
128       -1,   152,    41,   152,    -1,   152,    42,   152,    -1,   152,
129       39,   152,    -1,   152,    40,   138,    -1,   152,    46,   152,
130       -1,   152,    48,   152,    -1,    -1,    43,   116,    -1,    44,
131      100,   139,    99,   116,   133,    -1,    -1,    45,   113,    -1,
132       -1,    -1,   132,    -1,    -1,   152,    -1,   152,    -1,   152,
133       -1,   136,    -1,    20,    -1,    -1,    -1,    -1,    -1,    20,
134       -1,    25,    -1,    -1,    23,    -1,    -1,    69,    23,    -1,
135       69,    -1,    69,    23,    -1,    69,    -1,    -1,   100,   150,
136       99,    -1,   113,    -1,   101,    -1,   152,    75,   152,    -1,
137      152,    74,   152,    -1,   152,    73,   152,    -1,   153,    -1,
138      153,    77,    -1,   153,    77,   162,    -1,   162,    -1,    57,
139      181,   153,    -1,    55,   100,   181,   152,    99,    -1,   162,
140       98,   156,   100,   167,    99,    -1,   162,    98,   156,    -1,
141       21,   181,   166,    -1,    22,   181,   100,   167,    99,    -1,
142       57,   166,    -1,    55,   100,   167,    99,    -1,    -1,    30,
143      143,   113,   155,   166,    -1,    21,    -1,   173,    -1,   180,
144        9,   152,   101,    10,    -1,   173,    11,   152,    12,    -1,
145      162,    98,    11,   152,    12,    -1,   157,    11,   152,    12,
146       -1,   173,     9,   152,   101,    10,    -1,   162,    98,     9,
147      152,   101,    10,    -1,   157,     9,   152,   101,    10,    -1,
148      162,    98,   100,    99,    -1,   162,    98,   100,   152,    99,
149       -1,   157,   100,   152,    99,    -1,   157,   100,    99,    -1,
150      100,   152,    99,    11,   152,    12,    -1,    26,    11,   152,
151       12,    -1,   100,    99,    11,   152,    12,    -1,   162,    78,
152      162,    -1,   162,    92,   162,    -1,   162,    60,   162,    -1,
153      162,    61,   162,    -1,   162,    86,   162,    -1,   162,    58,
154      162,    -1,   162,    59,   162,    -1,   162,    85,   162,    -1,
155      162,    84,   162,    -1,   162,    51,   162,    -1,   162,    83,
156      162,    -1,   162,    82,   162,    -1,   162,    81,   162,    -1,
157      162,    87,   162,    -1,    13,   162,    -1,    14,   162,    -1,
158       88,   162,    -1,    89,   162,    -1,   162,    95,    -1,   162,
159       94,    -1,   162,    93,    -1,    97,   162,    -1,    96,   162,
160       -1,    11,   152,    12,    -1,    11,    12,    -1,    64,   152,
161      101,    10,    -1,    64,   101,    10,    -1,    36,   143,   146,
162      147,   113,    -1,    36,   143,   115,   149,   147,     9,   118,
163       10,    -1,    63,   162,    -1,    63,   113,    -1,   158,    -1,
164      159,    -1,   160,    -1,   161,    -1,   162,    79,   162,    80,
165      162,    -1,    90,   162,    -1,   164,    -1,    66,   162,    -1,
166      100,   152,    99,    -1,    26,    -1,   100,    99,    -1,   173,
167       -1,   177,    -1,   175,    -1,   174,    -1,   176,    -1,   157,
168       -1,   178,    11,   152,    12,    -1,   179,    11,   152,    12,
169       -1,   178,     9,   152,   101,    10,    -1,   179,     9,   152,
170      101,    10,    -1,    23,    -1,   172,    -1,   172,   100,    99,
171       -1,   172,   100,   152,    99,    -1,    65,   145,   166,    -1,
172      162,    98,   102,   103,    -1,   162,    98,    15,   103,    -1,
173      162,    98,    16,   103,    -1,   162,    98,    17,   103,    -1,
174      162,    98,   103,   103,    -1,    50,    -1,    50,   162,    -1,
175       76,   153,    -1,    56,    -1,    56,   113,    -1,    56,   162,
176       -1,    68,    -1,    68,   162,    -1,    29,    -1,    29,   162,
177       -1,    53,    -1,    53,   100,    99,    -1,    27,    -1,    27,
178      100,    99,    -1,    28,    -1,    54,   100,    99,    -1,    54,
179      100,   152,    99,    -1,    -1,    24,   163,   100,   153,   168,
180       99,    -1,    20,    -1,   154,    -1,    52,    -1,    31,    -1,
181       67,   165,   148,    -1,    67,   165,    -1,   100,   152,    99,
182       -1,   100,    99,    -1,   173,    -1,   175,    -1,   174,    -1,
183       -1,   153,    -1,    -1,   152,    -1,    -1,   104,   152,    -1,
184      173,    -1,   173,    -1,   174,    -1,   175,    -1,   170,    -1,
185      172,    -1,    17,   181,    -1,   102,   181,    -1,    15,   181,
186       -1,    16,   181,    -1,    62,   181,    -1,   162,    98,    62,
187      103,    -1,   103,   181,    -1,   174,    -1,   162,    98,    15,
188       -1,   175,    -1,   162,    98,    16,    -1,   177,    -1,   162,
189       98,   103,    -1,    20,    -1,   173,    -1,   113,    -1,    25,
190       -1
191 };
192
193 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
194 static const yytype_uint16 yyrline[] =
195 {
196        0,   115,   115,   114,   125,   124,   134,   133,   146,   145,
197      158,   157,   170,   169,   181,   189,   197,   201,   209,   215,
198      216,   226,   227,   236,   240,   244,   248,   255,   257,   268,
199      267,   301,   300,   339,   347,   346,   355,   361,   367,   372,
200      374,   376,   383,   391,   393,   390,   410,   415,   422,   421,
201      436,   444,   450,   457,   456,   471,   475,   483,   501,   502,
202      507,   509,   511,   513,   515,   517,   519,   522,   528,   529,
203      534,   545,   546,   552,   558,   559,   564,   567,   571,   576,
204      580,   584,   585,   589,   595,   600,   605,   606,   611,   612,
205      617,   618,   620,   625,   627,   633,   632,   651,   652,   656,
206      658,   660,   662,   666,   668,   673,   677,   681,   685,   691,
207      696,   702,   708,   710,   713,   712,   723,   724,   728,   732,
208      735,   740,   745,   748,   752,   756,   759,   764,   768,   771,
209      773,   775,   780,   782,   784,   789,   791,   793,   795,   797,
210      799,   801,   803,   805,   807,   809,   814,   816,   819,   821,
211      823,   826,   829,   840,   843,   850,   852,   854,   856,   858,
212      861,   875,   877,   881,   882,   883,   884,   885,   887,   889,
213      891,   893,   895,   897,   899,   901,   903,   905,   907,   909,
214      911,   921,   931,   941,   951,   953,   955,   958,   963,   967,
215      969,   971,   973,   976,   978,   981,   983,   985,   987,   989,
216      991,   993,   995,   997,  1000,  1002,  1004,  1006,  1008,  1010,
217     1014,  1017,  1016,  1029,  1030,  1031,  1036,  1040,  1042,  1047,
218     1049,  1052,  1054,  1056,  1061,  1063,  1068,  1069,  1074,  1075,
219     1081,  1085,  1086,  1087,  1090,  1091,  1094,  1098,  1102,  1108,
220     1114,  1116,  1120,  1124,  1125,  1129,  1130,  1134,  1135,  1140,
221     1142,  1144,  1147
222 };
223 #endif
224
225 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
226 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
227    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
228 static const char *const yytname[] =
229 {
230   "$end", "error", "$undefined", "GRAMPROG", "GRAMEXPR", "GRAMBLOCK",
231   "GRAMBARESTMT", "GRAMFULLSTMT", "GRAMSTMTSEQ", "'{'", "'}'", "'['",
232   "']'", "'-'", "'+'", "'@'", "'%'", "'&'", "'='", "'.'", "WORD", "METHOD",
233   "FUNCMETH", "THING", "PMFUNC", "PRIVATEREF", "QWLIST", "FUNC0OP",
234   "FUNC0SUB", "UNIOPSUB", "LSTOPSUB", "PLUGEXPR", "PLUGSTMT", "LABEL",
235   "FORMAT", "SUB", "ANONSUB", "PACKAGE", "USE", "WHILE", "UNTIL", "IF",
236   "UNLESS", "ELSE", "ELSIF", "CONTINUE", "FOR", "GIVEN", "WHEN", "DEFAULT",
237   "LOOPEX", "DOTDOT", "YADAYADA", "FUNC0", "FUNC1", "FUNC", "UNIOP",
238   "LSTOP", "RELOP", "EQOP", "MULOP", "ADDOP", "DOLSHARP", "DO",
239   "HASHBRACK", "NOAMP", "LOCAL", "MY", "REQUIRE", "COLONATTR",
240   "FORMLBRACK", "FORMRBRACK", "PREC_LOW", "DOROP", "OROP", "ANDOP",
241   "NOTOP", "','", "ASSIGNOP", "'?'", "':'", "DORDOR", "OROR", "ANDAND",
242   "BITOROP", "BITANDOP", "SHIFTOP", "MATCHOP", "'!'", "'~'", "REFGEN",
243   "UMINUS", "POWOP", "POSTJOIN", "POSTDEC", "POSTINC", "PREDEC", "PREINC",
244   "ARROW", "')'", "'('", "';'", "'$'", "'*'", "'/'", "$accept", "grammar",
245   "@1", "@2", "@3", "@4", "@5", "@6", "block", "formblock", "remember",
246   "mblock", "mremember", "stmtseq", "formstmtseq", "fullstmt",
247   "labfullstmt", "barestmt", "@7", "@8", "@9", "@10", "@11", "@12", "@13",
248   "formline", "formarg", "sideff", "else", "cont", "mintro", "nexpr",
249   "texpr", "iexpr", "mexpr", "mnexpr", "formname", "startsub",
250   "startanonsub", "startformsub", "subname", "proto", "subattrlist",
251   "myattrlist", "subsignature", "@14", "optsubbody", "expr", "listexpr",
252   "listop", "@15", "method", "subscripted", "termbinop", "termunop",
253   "anonymous", "termdo", "term", "@16", "myattrterm", "myterm",
254   "optlistexpr", "optexpr", "optrepl", "my_scalar", "my_var",
255   "refgen_topic", "amper", "scalar", "ary", "hsh", "arylen", "star",
256   "sliceme", "kvslice", "gelem", "indirob", 0
257 };
258 #endif
259
260 # ifdef YYPRINT
261 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
262    token YYLEX-NUM.  */
263 static const yytype_uint16 yytoknum[] =
264 {
265        0,   256,   257,   258,   259,   260,   261,   262,   263,   123,
266      125,    91,    93,    45,    43,    64,    37,    38,    61,    46,
267      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
268      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
269      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
270      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
271      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
272      314,   315,   316,   317,   318,   319,   320,    44,   321,    63,
273       58,   322,   323,   324,   325,   326,   327,   328,    33,   126,
274      329,   330,   331,   332,   333,   334,   335,   336,   337,    41,
275       40,    59,    36,    42,    47
276 };
277 # endif
278
279 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
280 static const yytype_uint8 yyr1[] =
281 {
282        0,   105,   107,   106,   108,   106,   109,   106,   110,   106,
283      111,   106,   112,   106,   113,   114,   115,   116,   117,   118,
284      118,   119,   119,   120,   120,   121,   121,   122,   122,   123,
285      122,   124,   122,   122,   125,   122,   122,   122,   122,   122,
286      122,   122,   122,   126,   127,   122,   122,   122,   128,   122,
287      122,   122,   122,   129,   122,   122,   122,   130,   131,   131,
288      132,   132,   132,   132,   132,   132,   132,   132,   133,   133,
289      133,   134,   134,   135,   136,   136,   137,   137,   138,   139,
290      140,   141,   141,   142,   143,   144,   145,   145,   146,   146,
291      147,   147,   147,   148,   148,   150,   149,   151,   151,   152,
292      152,   152,   152,   153,   153,   153,   154,   154,   154,   154,
293      154,   154,   154,   154,   155,   154,   156,   156,   157,   157,
294      157,   157,   157,   157,   157,   157,   157,   157,   157,   157,
295      157,   157,   158,   158,   158,   158,   158,   158,   158,   158,
296      158,   158,   158,   158,   158,   158,   159,   159,   159,   159,
297      159,   159,   159,   159,   159,   160,   160,   160,   160,   160,
298      160,   161,   161,   162,   162,   162,   162,   162,   162,   162,
299      162,   162,   162,   162,   162,   162,   162,   162,   162,   162,
300      162,   162,   162,   162,   162,   162,   162,   162,   162,   162,
301      162,   162,   162,   162,   162,   162,   162,   162,   162,   162,
302      162,   162,   162,   162,   162,   162,   162,   162,   162,   162,
303      162,   163,   162,   162,   162,   162,   162,   164,   164,   165,
304      165,   165,   165,   165,   166,   166,   167,   167,   168,   168,
305      169,   170,   170,   170,   171,   171,   172,   173,   174,   175,
306      176,   176,   177,   178,   178,   179,   179,   180,   180,   181,
307      181,   181,   181
308 };
309
310 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
311 static const yytype_uint8 yyr2[] =
312 {
313        0,     2,     0,     4,     0,     3,     0,     3,     0,     3,
314        0,     3,     0,     3,     4,     7,     0,     4,     0,     0,
315        2,     0,     2,     1,     1,     2,     2,     1,     4,     0,
316        7,     0,    10,     4,     0,     7,     7,     7,     6,     6,
317        2,     8,     8,     0,     0,    13,     9,     8,     0,    11,
318        9,     7,     2,     0,     8,     2,     1,     2,     0,     3,
319        1,     1,     3,     3,     3,     3,     3,     3,     0,     2,
320        6,     0,     2,     0,     0,     1,     0,     1,     1,     1,
321        1,     1,     0,     0,     0,     0,     1,     1,     0,     1,
322        0,     2,     1,     2,     1,     0,     3,     1,     1,     3,
323        3,     3,     1,     2,     3,     1,     3,     5,     6,     3,
324        3,     5,     2,     4,     0,     5,     1,     1,     5,     4,
325        5,     4,     5,     6,     5,     4,     5,     4,     3,     6,
326        4,     5,     3,     3,     3,     3,     3,     3,     3,     3,
327        3,     3,     3,     3,     3,     3,     2,     2,     2,     2,
328        2,     2,     2,     2,     2,     3,     2,     4,     3,     5,
329        8,     2,     2,     1,     1,     1,     1,     5,     2,     1,
330        2,     3,     1,     2,     1,     1,     1,     1,     1,     1,
331        4,     4,     5,     5,     1,     1,     3,     4,     3,     4,
332        4,     4,     4,     4,     1,     2,     2,     1,     2,     2,
333        1,     2,     1,     2,     1,     3,     1,     3,     1,     3,
334        4,     0,     6,     1,     1,     1,     1,     3,     2,     3,
335        2,     1,     1,     1,     0,     1,     0,     1,     0,     2,
336        1,     1,     1,     1,     1,     1,     2,     2,     2,     2,
337        2,     4,     2,     1,     3,     1,     3,     1,     3,     1,
338        1,     1,     1
339 };
340
341 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
342    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
343    means the default is an error.  */
344 static const yytype_uint8 yydefact[] =
345 {
346        0,     2,     4,     6,     8,    10,    12,     0,    16,   226,
347        0,     0,     0,    19,     1,    19,     0,     0,     0,     0,
348        0,     0,   213,     0,     0,   184,   211,   172,   206,   208,
349      202,    84,   216,    84,   194,   215,   204,     0,     0,   197,
350      224,     0,     0,     0,     0,     0,     0,   200,     0,     0,
351        0,     0,     0,     0,     0,     0,     0,   227,   102,   214,
352      179,   163,   164,   165,   166,   105,   169,     5,   185,   174,
353      177,   176,   178,   175,     0,     0,     0,    16,     7,    60,
354       27,    85,     0,     0,    83,     0,     0,     0,     0,     0,
355        0,     0,     0,    56,    71,     9,     0,    61,     0,    11,
356       24,    23,     0,     0,   156,     0,   146,   147,   249,   252,
357      251,   250,   238,   239,   236,   224,     0,     0,     0,     0,
358      203,     0,    88,   195,     0,     0,   226,   198,   199,   249,
359      225,   112,   250,     0,   240,   162,   161,     0,     0,    86,
360       87,   224,   170,     0,   218,   221,   223,   222,   201,   196,
361      148,   149,   168,   154,   153,   173,     0,   237,   242,     0,
362        0,     0,   103,     0,     0,     0,     0,     0,     0,     0,
363        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
364        0,   152,   151,   150,     0,     0,     0,     0,     0,     0,
365        0,     0,     0,    19,    82,    83,     0,    34,    16,    16,
366       16,    16,    16,     0,    16,     0,    16,    16,    40,     0,
367       52,    55,     0,     0,     0,     0,     0,     0,    26,    25,
368       20,   155,   110,   226,     0,     0,   207,   114,    89,     0,
369       90,   205,   209,     0,     0,     0,   106,   158,     0,   188,
370      220,     0,    94,   217,     0,   171,   101,   100,    99,   104,
371        0,     0,   128,     0,   141,   137,   138,   134,   135,   132,
372        0,   144,   143,   142,   140,   139,   136,   145,   133,     0,
373        0,   244,   246,     0,   116,     0,     0,     0,   248,   109,
374      117,   186,     0,     0,     0,     0,     0,     0,     0,     0,
375        0,    81,     0,    29,     0,     0,    76,     0,     0,     0,
376        0,    16,   234,     0,   235,   231,   232,   233,     0,    16,
377        0,     0,    72,    64,    65,    78,    62,    63,    66,    67,
378        0,   228,   130,   224,    95,    90,    92,     0,   210,   113,
379        0,   157,   219,    93,     0,     0,     0,   121,   127,     0,
380        0,     0,   190,   191,   192,   241,   125,     0,   189,   193,
381      226,   187,     0,   119,     0,   180,     0,   181,     0,    14,
382       16,    28,    88,    16,    16,    33,     0,     0,    77,     0,
383        0,    79,     0,     0,   230,     0,    16,    75,    80,     0,
384        0,    61,     0,     0,     0,   111,     0,     0,   115,     0,
385        0,    91,   159,   107,   131,     0,   124,   167,     0,   120,
386      126,     0,   122,   182,   183,   118,     0,    90,     0,    53,
387      224,    73,    73,     0,     0,     0,    48,     0,     0,    43,
388        0,     0,     0,   229,   212,    96,    19,   129,   123,   108,
389        0,     0,    90,    19,     0,     0,     0,    18,    68,    68,
390        0,     0,     0,    71,    76,     0,    38,    39,     0,    21,
391       98,    97,    30,     0,     0,    35,    71,    71,    19,     0,
392        0,    36,    37,     0,     0,     0,    51,     0,    71,   160,
393        0,    19,    54,    41,    42,     0,    69,     0,    71,     0,
394       71,    44,    47,    58,     0,    22,     0,    17,     0,    46,
395        0,    50,    73,    19,    57,    15,    32,     0,    71,     0,
396        0,    68,    49,     0,    59,    70,     0,    45
397 };
398
399 /* YYDEFGOTO[NTERM-NUM].  */
400 static const yytype_int16 yydefgoto[] =
401 {
402       -1,     7,     8,     9,    10,    11,    12,    13,    94,   361,
403       15,   438,   458,   102,   470,   220,   100,   101,   362,   363,
404      295,   444,   492,   441,   433,   485,   494,    96,   461,   210,
405      435,   378,   367,   314,   370,   380,   292,   197,   121,   194,
406      141,   230,   327,   243,   325,   389,   452,    97,    58,    59,
407      323,   279,    60,    61,    62,    63,    64,    65,   117,    66,
408      144,   131,    67,   387,   373,   302,   303,    68,    69,    70,
409       71,    72,    73,    74,    75,    76,   157
410 };
411
412 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
413    STATE-NUM.  */
414 #define YYPACT_NINF -400
415 static const yytype_int16 yypact[] =
416 {
417      565,  -400,  -400,  -400,  -400,  -400,  -400,    73,  -400,  2699,
418       69,  1486,  1389,  -400,  -400,  -400,  1955,  2699,  2699,    49,
419       49,    49,  -400,    49,    49,  -400,  -400,    76,    -8,  -400,
420     2699,  -400,  -400,  -400,  2699,  -400,    -3,     8,    11,  1862,
421     1767,    49,  1862,  2048,    22,  2699,     1,  2699,  2699,  2699,
422     2699,  2699,  2699,  2699,  2141,    49,    49,   -19,    14,  -400,
423        9,  -400,  -400,  -400,  -400,  2770,  -400,  -400,    24,    68,
424       72,   106,  -400,   105,   118,   165,   109,  -400,  -400,  -400,
425     -400,  -400,    22,   111,  -400,    39,    50,    62,    65,   -14,
426       77,    95,    69,  -400,    87,  -400,    48,   506,  1389,  -400,
427     -400,  -400,   612,   710,  -400,    70,   490,   490,  -400,  -400,
428     -400,  -400,  -400,  -400,  -400,  2699,    96,   101,  2699,   107,
429      410,    69,    16,  2770,   120,  2234,  1767,  -400,   410,   516,
430       14,  -400,   440,  2699,  -400,  -400,   410,   159,    93,  -400,
431     -400,  2699,   410,  2327,   136,  -400,  -400,  -400,   410,    14,
432      490,   490,   490,   258,   258,   210,   152,  -400,  -400,  2699,
433     2699,  2699,  2699,  2699,  2699,  2420,  2699,  2699,  2699,  2699,
434     2699,  2699,  2699,  2699,  2699,  2699,  2699,  2699,  2699,  2699,
435     2699,  -400,  -400,  -400,   131,  2513,  2699,  2699,  2699,  2699,
436     2699,  2699,  2699,  -400,   200,  -400,   223,  -400,  -400,  -400,
437     -400,  -400,  -400,    55,  -400,   146,  -400,  -400,  -400,    69,
438     -400,  -400,  2699,  2699,  2699,  2699,  2699,  2699,  -400,  -400,
439     -400,  -400,  -400,  2699,  2699,    98,  -400,  -400,  -400,   148,
440      160,  -400,  -400,   163,   150,  2699,    14,  -400,   240,  -400,
441     -400,   293,   232,  -400,  2699,   245,   192,   192,  -400,  2770,
442      209,   125,  -400,   531,  1567,  2033,   371,   695,   203,  2770,
443     2725,  1658,  1658,  1752,  1847,  1940,   278,   490,   490,  2699,
444     2699,   170,   172,   182,  -400,   183,  2606,    32,   184,   168,
445     -400,  -400,   597,   249,   129,   273,   141,   436,   149,   486,
446      807,  -400,   252,   189,    -6,   279,  2699,  2699,  2699,  2699,
447      198,  -400,  -400,   202,  -400,  -400,  -400,  -400,  1579,  -400,
448     2699,  2699,  -400,   -19,  -400,   -19,   -19,   -19,   -19,   -19,
449      208,   -29,  -400,  2699,  -400,   160,   285,    69,  -400,  -400,
450      617,  -400,  -400,  -400,   167,  2699,   299,  -400,  -400,  2699,
451      582,   179,  -400,  -400,  -400,  -400,  -400,   630,  -400,  -400,
452     2699,  -400,   306,  -400,   308,  -400,   319,  -400,   332,  -400,
453     -400,  -400,   320,  -400,  -400,  -400,   329,   259,   -19,   263,
454      264,   -19,   270,   257,  -400,    21,  -400,  -400,  -400,   280,
455      282,   286,  2699,   281,   287,  -400,  2699,   288,  -400,   289,
456      381,  -400,  -400,  -400,  -400,   185,  -400,  2815,   398,  -400,
457     -400,   292,  -400,  -400,  -400,  -400,   314,   160,   148,  -400,
458     2699,  -400,  -400,   408,   408,  2699,  -400,  2699,   408,  -400,
459      321,   408,   408,   -19,  -400,  -400,  -400,  -400,  -400,  -400,
460      350,     6,   160,  -400,   322,   408,   408,  -400,    18,    18,
461      325,   328,   334,    87,  2699,   408,  -400,  -400,   904,  -400,
462     -400,  -400,  -400,   425,  1001,  -400,    87,    87,  -400,   408,
463      336,  -400,  -400,   408,  2699,   408,  -400,   340,    87,  -400,
464        3,  -400,  -400,  -400,  -400,  1098,  -400,  2699,    87,   338,
465       87,  -400,  -400,   372,   426,  -400,  1195,  -400,   345,  -400,
466      408,  -400,  -400,  -400,  -400,  -400,  -400,   408,    87,  1672,
467     1292,    18,  -400,   347,  -400,  -400,   408,  -400
468 };
469
470 /* YYPGOTO[NTERM-NUM].  */
471 static const yytype_int16 yypgoto[] =
472 {
473     -400,  -400,  -400,  -400,  -400,  -400,  -400,  -400,     4,  -400,
474      113,   -81,  -400,   -15,  -400,   435,   355,    -9,  -400,  -400,
475     -400,  -400,  -400,  -400,  -400,  -400,  -400,  -307,  -399,   -30,
476     -380,  -400,    17,   157,  -289,   -44,  -400,   265,   429,  -400,
477      385,   112,  -313,  -400,    67,  -400,  -400,    -5,   -35,  -400,
478     -400,  -400,  -400,  -400,  -400,  -400,  -400,   227,  -400,  -400,
479     -400,  -106,  -118,  -400,  -400,   108,  -400,   284,    44,   -40,
480      -39,  -400,  -400,  -400,  -400,  -400,    10
481 };
482
483 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
484    positive, shift that token.  If negative, reduce the rule which
485    number is the opposite.  If zero, do what YYDEFACT says.
486    If YYTABLE_NINF, syntax error.  */
487 #define YYTABLE_NINF -248
488 static const yytype_int16 yytable[] =
489 {
490      103,   377,    95,   364,    57,   130,   146,   147,   234,   222,
491      372,   105,   390,   149,    78,    77,    19,    20,   163,   379,
492      164,   383,   384,   110,   110,   110,   483,   110,   110,   112,
493      113,   114,   436,   115,   116,   239,    19,    20,   138,   228,
494      462,    77,   139,   127,   110,   110,   135,   140,   162,   156,
495      133,   134,   108,   202,   159,   160,   161,   109,    77,   110,
496      110,   459,   460,   111,   111,   111,   158,   111,   111,   108,
497       19,    20,    21,    14,   109,   386,   203,   186,    77,   187,
498      130,  -243,   221,  -243,   132,   111,   204,   118,    55,   219,
499      145,   162,   119,   420,   431,   365,   208,   124,   236,   111,
500      111,   143,   505,    55,   484,   320,   130,   450,   125,   165,
501      322,   126,   499,   225,  -247,  -245,   -16,  -245,   192,   453,
502      233,    57,   301,    55,   185,   227,   440,   188,   442,   189,
503      110,   196,   209,   205,    55,   348,   235,   337,   241,   198,
504      269,   353,   270,   159,   160,   161,   271,   272,   273,   211,
505      199,    55,   274,   355,   246,   247,   248,    55,   250,   251,
506      253,   357,   200,   306,   307,   201,   159,   160,   161,   237,
507      132,   159,   160,   161,   190,   479,   191,   206,   290,   394,
508      282,   283,   284,   285,   286,   287,   288,   289,   488,   321,
509      193,   399,   377,   275,   238,   207,   223,   427,   159,   160,
510      161,   224,   159,   160,   161,   242,   226,   313,   315,   316,
511      317,   318,   319,   312,   159,   160,   161,   388,    57,   231,
512      291,   244,   159,   160,   161,   159,   160,   161,   280,   326,
513      330,   276,   401,   277,   278,   229,   159,   160,   161,   334,
514      159,   160,   161,   294,   106,   107,   309,   305,   324,   329,
515      331,   245,   159,   160,   161,   333,   335,   120,   159,   160,
516      161,   123,   328,   169,   340,   341,   128,   161,   350,   136,
517      360,   347,   142,   342,   148,   343,   150,   151,   152,   153,
518      154,   110,   159,   160,   161,   344,   345,   349,   130,   -31,
519      179,   368,   315,   371,   371,   180,   181,   182,   183,   366,
520       55,   184,   376,   381,   434,   371,   371,   385,   391,   396,
521      336,   296,   297,   298,   299,   300,   402,   308,   403,   310,
522      311,   111,   159,   160,   161,   212,   213,   214,   215,   404,
523      395,   392,   216,   439,   217,   306,   307,   443,   169,   170,
524      446,   447,   405,   228,   374,    57,   159,   160,   161,   410,
525      352,  -248,  -248,  -248,   456,   457,   184,   415,   411,   159,
526      160,   161,   412,   413,   468,   179,   159,   160,   161,   414,
527      180,   181,   182,   183,   354,   130,   184,   371,   476,   418,
528      421,   423,   478,   419,   480,   -79,   422,   424,   425,   249,
529      426,   429,   332,   254,   255,   256,   257,   258,   259,   260,
530      261,   262,   263,   264,   265,   266,   267,   268,   428,   498,
531      371,   448,   371,   466,   375,   430,   501,   437,   454,   305,
532      445,   449,   382,   455,   463,   507,   473,   474,   464,   167,
533     -248,   169,   170,   465,   471,   451,   477,   490,   482,   368,
534     -174,   481,   493,   475,   497,   495,   506,    99,   489,   186,
535      491,   187,  -174,   218,   369,   503,   486,   178,   179,   371,
536      293,   467,   122,   180,   181,   182,   183,   195,   502,   184,
537      169,   170,   371,   406,   407,   432,   408,   409,   500,  -174,
538     -174,  -174,  -174,   416,     0,     0,  -174,   304,  -174,   417,
539        0,  -174,     0,     0,     0,     0,   178,   179,  -174,  -174,
540     -174,  -174,   180,   181,   182,   183,     0,     0,   184,   159,
541      160,   161,     0,  -174,  -174,  -174,  -213,  -174,  -174,  -174,
542     -174,  -174,  -174,  -174,  -174,  -174,  -174,  -174,  -213,     0,
543        0,     0,  -174,  -174,  -174,  -174,     0,   356,  -174,  -174,
544        0,  -174,     0,     0,  -174,   212,   213,   214,   215,     0,
545        0,     0,   216,     0,   217,  -213,  -213,  -213,  -213,   159,
546      160,   161,  -213,     0,  -213,     0,   397,  -213,     1,     2,
547        3,     4,     5,     6,  -213,  -213,  -213,  -213,     0,   159,
548      160,   161,   180,   181,   182,   183,     0,   358,   184,  -213,
549     -213,  -213,     0,  -213,  -213,  -213,  -213,  -213,  -213,  -213,
550     -213,  -213,  -213,  -213,   159,   160,   161,     0,  -213,  -213,
551     -213,  -213,   -13,    79,  -213,  -213,     0,  -213,     0,     0,
552     -213,    77,     0,    16,     0,    17,    18,    19,    20,    21,
553      338,     0,    22,    23,    24,    25,    26,     0,    27,    28,
554       29,    30,    31,    32,    80,    98,    81,    82,    33,    83,
555       84,    85,    86,    87,    88,   159,   160,   161,    89,    90,
556       91,    92,    34,     0,    35,    36,    37,    38,    39,    40,
557      159,   160,   161,     0,    41,    42,    43,    44,    45,    46,
558       47,     0,     0,   398,     0,     0,     0,     0,    48,     0,
559      159,   160,   161,     0,     0,     0,   351,     0,     0,     0,
560       49,    50,    51,   159,   160,   161,     0,     0,    52,    53,
561       -3,    79,    54,    93,    55,    56,   393,     0,     0,    77,
562        0,    16,     0,    17,    18,    19,    20,    21,     0,   400,
563       22,    23,    24,    25,    26,     0,    27,    28,    29,    30,
564       31,    32,    80,    98,    81,    82,    33,    83,    84,    85,
565       86,    87,    88,     0,     0,     0,    89,    90,    91,    92,
566       34,     0,    35,    36,    37,    38,    39,    40,     0,     0,
567        0,     0,    41,    42,    43,    44,    45,    46,    47,     0,
568        0,     0,   179,     0,     0,     0,    48,   180,   181,   182,
569      183,     0,     0,   184,     0,     0,     0,     0,    49,    50,
570       51,     0,     0,     0,     0,     0,    52,    53,    79,     0,
571       54,    93,    55,    56,     0,     0,    77,   359,    16,     0,
572       17,    18,    19,    20,    21,     0,     0,    22,    23,    24,
573       25,    26,     0,    27,    28,    29,    30,    31,    32,    80,
574       98,    81,    82,    33,    83,    84,    85,    86,    87,    88,
575        0,     0,     0,    89,    90,    91,    92,    34,     0,    35,
576       36,    37,    38,    39,    40,     0,     0,     0,     0,    41,
577       42,    43,    44,    45,    46,    47,     0,     0,     0,     0,
578        0,     0,     0,    48,     0,     0,     0,     0,     0,     0,
579        0,     0,     0,     0,     0,    49,    50,    51,     0,     0,
580        0,     0,     0,    52,    53,    79,     0,    54,    93,    55,
581       56,     0,     0,    77,   469,    16,     0,    17,    18,    19,
582       20,    21,     0,     0,    22,    23,    24,    25,    26,     0,
583       27,    28,    29,    30,    31,    32,    80,    98,    81,    82,
584       33,    83,    84,    85,    86,    87,    88,     0,     0,     0,
585       89,    90,    91,    92,    34,     0,    35,    36,    37,    38,
586       39,    40,     0,     0,     0,     0,    41,    42,    43,    44,
587       45,    46,    47,     0,     0,     0,     0,     0,     0,     0,
588       48,     0,     0,     0,     0,     0,     0,     0,     0,     0,
589        0,     0,    49,    50,    51,     0,     0,     0,     0,     0,
590       52,    53,    79,     0,    54,    93,    55,    56,     0,     0,
591       77,   472,    16,     0,    17,    18,    19,    20,    21,     0,
592        0,    22,    23,    24,    25,    26,     0,    27,    28,    29,
593       30,    31,    32,    80,    98,    81,    82,    33,    83,    84,
594       85,    86,    87,    88,     0,     0,     0,    89,    90,    91,
595       92,    34,     0,    35,    36,    37,    38,    39,    40,     0,
596        0,     0,     0,    41,    42,    43,    44,    45,    46,    47,
597        0,     0,     0,     0,     0,     0,     0,    48,     0,     0,
598        0,     0,     0,     0,     0,     0,     0,     0,     0,    49,
599       50,    51,     0,     0,     0,     0,     0,    52,    53,    79,
600        0,    54,    93,    55,    56,     0,     0,    77,   487,    16,
601        0,    17,    18,    19,    20,    21,     0,     0,    22,    23,
602       24,    25,    26,     0,    27,    28,    29,    30,    31,    32,
603       80,    98,    81,    82,    33,    83,    84,    85,    86,    87,
604       88,     0,     0,     0,    89,    90,    91,    92,    34,     0,
605       35,    36,    37,    38,    39,    40,     0,     0,     0,     0,
606       41,    42,    43,    44,    45,    46,    47,     0,     0,     0,
607        0,     0,     0,     0,    48,     0,     0,     0,     0,     0,
608        0,     0,     0,     0,     0,     0,    49,    50,    51,     0,
609        0,     0,     0,     0,    52,    53,    79,     0,    54,    93,
610       55,    56,     0,     0,    77,   496,    16,     0,    17,    18,
611       19,    20,    21,     0,     0,    22,    23,    24,    25,    26,
612        0,    27,    28,    29,    30,    31,    32,    80,    98,    81,
613       82,    33,    83,    84,    85,    86,    87,    88,     0,     0,
614        0,    89,    90,    91,    92,    34,     0,    35,    36,    37,
615       38,    39,    40,     0,     0,     0,     0,    41,    42,    43,
616       44,    45,    46,    47,     0,     0,     0,     0,     0,     0,
617        0,    48,     0,     0,     0,     0,     0,     0,     0,     0,
618        0,     0,     0,    49,    50,    51,     0,     0,     0,     0,
619        0,    52,    53,    79,     0,    54,    93,    55,    56,     0,
620        0,    77,     0,    16,     0,    17,    18,    19,    20,    21,
621        0,     0,    22,    23,    24,    25,    26,     0,    27,    28,
622       29,    30,    31,    32,    80,    98,    81,    82,    33,    83,
623       84,    85,    86,    87,    88,     0,     0,     0,    89,    90,
624       91,    92,    34,     0,    35,    36,    37,    38,    39,    40,
625        0,     0,     0,     0,    41,    42,    43,    44,    45,    46,
626       47,     0,     0,   504,     0,     0,     0,     0,    48,     0,
627        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
628       49,    50,    51,     0,     0,     0,     0,     0,    52,    53,
629       79,     0,    54,    93,    55,    56,     0,     0,    77,     0,
630       16,     0,    17,    18,    19,    20,    21,     0,     0,    22,
631       23,    24,    25,    26,     0,    27,    28,    29,    30,    31,
632       32,    80,    98,    81,    82,    33,    83,    84,    85,    86,
633       87,    88,     0,     0,     0,    89,    90,    91,    92,    34,
634        0,    35,    36,    37,    38,    39,    40,     0,     0,     0,
635        0,    41,    42,    43,    44,    45,    46,    47,     0,     0,
636        0,     0,     0,     0,     0,    48,     0,     0,     0,     0,
637        0,     0,     0,     0,     0,     0,     0,    49,    50,    51,
638        0,     0,     0,     0,     0,    52,    53,    79,     0,    54,
639       93,    55,    56,     0,     0,    77,     0,    16,     0,    17,
640       18,    19,    20,    21,     0,     0,    22,    23,    24,    25,
641       26,     0,    27,    28,    29,    30,    31,    32,    80,     0,
642       81,    82,    33,    83,    84,    85,    86,    87,    88,     0,
643        0,     0,    89,    90,    91,    92,    34,     0,    35,    36,
644       37,    38,    39,    40,     0,     0,     0,     0,    41,    42,
645       43,    44,    45,    46,    47,     0,     0,     0,     0,     0,
646        0,     0,    48,     0,     0,     0,     0,     0,     0,     0,
647        0,     0,     0,     0,    49,    50,    51,     0,     0,     0,
648       79,     0,    52,    53,     0,     0,    54,    93,    55,    56,
649       16,     0,    17,    18,    19,    20,    21,     0,     0,    22,
650       23,    24,    25,    26,     0,    27,    28,    29,    30,    31,
651       32,     0,     0,     0,     0,    33,     0,     0,  -248,     0,
652        0,     0,     0,     0,     0,   167,   168,   169,   170,    34,
653        0,    35,    36,    37,    38,    39,    40,     0,     0,     0,
654        0,    41,    42,    43,    44,    45,    46,    47,   173,   174,
655      175,   176,   177,   178,   179,    48,     0,     0,     0,   180,
656      181,   182,   183,     0,     0,   184,     0,    49,    50,    51,
657        0,     0,     0,    79,     0,    52,    53,     0,     0,    54,
658      -74,    55,    56,    16,     0,    17,    18,    19,    20,    21,
659        0,     0,    22,    23,    24,    25,    26,     0,    27,    28,
660       29,    30,    31,    32,     0,     0,     0,     0,    33,     0,
661        0,     0,     0,     0,     0,     0,   167,   168,   169,   170,
662        0,     0,    34,     0,    35,    36,    37,    38,    39,    40,
663        0,     0,     0,     0,    41,    42,    43,    44,    45,    46,
664       47,   175,   176,   177,   178,   179,     0,     0,    48,     0,
665      180,   181,   182,   183,     0,     0,   184,     0,     0,     0,
666       49,    50,    51,     0,     0,     0,     0,     0,    52,    53,
667        0,   -74,    54,     0,    55,    56,    77,     0,    16,     0,
668       17,    18,    19,    20,    21,     0,     0,   129,    23,    24,
669       25,    26,   109,    27,    28,    29,    30,    31,    32,     0,
670        0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
671      167,   168,   169,   170,     0,     0,     0,    34,     0,    35,
672       36,    37,    38,    39,    40,     0,     0,     0,     0,    41,
673       42,    43,    44,    45,    46,    47,   176,   177,   178,   179,
674        0,     0,     0,    48,   180,   181,   182,   183,     0,     0,
675      184,     0,     0,     0,     0,    49,    50,    51,     0,     0,
676        0,     0,     0,    52,    53,     0,     0,    54,     0,    55,
677       56,    77,     0,    16,     0,    17,    18,    19,    20,    21,
678        0,     0,    22,    23,    24,    25,    26,     0,    27,    28,
679       29,    30,    31,    32,     0,     0,     0,     0,    33,     0,
680        0,     0,     0,     0,     0,   167,   168,   169,   170,     0,
681        0,     0,    34,     0,    35,    36,    37,    38,    39,    40,
682        0,     0,     0,     0,    41,    42,    43,    44,    45,    46,
683       47,     0,   177,   178,   179,     0,     0,     0,    48,   180,
684      181,   182,   183,     0,     0,   184,     0,     0,     0,     0,
685       49,    50,    51,     0,     0,     0,     0,     0,    52,    53,
686        0,     0,    54,     0,    55,    56,    16,   104,    17,    18,
687       19,    20,    21,     0,     0,    22,    23,    24,    25,    26,
688        0,    27,    28,    29,    30,    31,    32,     0,     0,     0,
689        0,    33,     0,     0,     0,     0,     0,     0,   167,   168,
690      169,   170,     0,     0,     0,    34,     0,    35,    36,    37,
691       38,    39,    40,     0,     0,     0,     0,    41,    42,    43,
692       44,    45,    46,    47,     0,     0,   178,   179,     0,     0,
693        0,    48,   180,   181,   182,   183,     0,     0,   184,     0,
694        0,     0,     0,    49,    50,    51,     0,     0,     0,     0,
695        0,    52,    53,     0,     0,    54,     0,    55,    56,    16,
696        0,    17,    18,    19,    20,    21,     0,     0,    22,    23,
697       24,    25,    26,     0,    27,    28,    29,    30,    31,    32,
698        0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
699        0,  -248,     0,   169,   170,     0,     0,     0,    34,     0,
700       35,    36,    37,    38,    39,    40,     0,     0,     0,     0,
701       41,    42,    43,    44,    45,    46,    47,     0,     0,   178,
702      179,     0,     0,     0,    48,   180,   181,   182,   183,     0,
703        0,   184,     0,     0,     0,     0,    49,    50,    51,     0,
704        0,     0,     0,     0,    52,    53,     0,     0,    54,   137,
705       55,    56,    16,     0,    17,    18,    19,    20,    21,     0,
706        0,    22,    23,    24,    25,    26,     0,    27,    28,    29,
707       30,    31,    32,     0,     0,     0,     0,    33,     0,     0,
708        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
709        0,    34,     0,    35,    36,    37,    38,    39,    40,     0,
710        0,     0,     0,    41,    42,    43,    44,    45,    46,    47,
711        0,     0,     0,     0,     0,     0,     0,    48,     0,     0,
712        0,     0,     0,     0,     0,     0,     0,     0,     0,    49,
713       50,    51,     0,     0,     0,     0,     0,    52,    53,     0,
714      155,    54,     0,    55,    56,    16,     0,    17,    18,    19,
715       20,    21,     0,     0,    22,    23,    24,    25,    26,     0,
716       27,    28,    29,    30,    31,    32,     0,     0,     0,     0,
717       33,     0,     0,     0,     0,     0,     0,     0,     0,     0,
718        0,     0,     0,     0,    34,     0,    35,    36,    37,    38,
719       39,    40,     0,     0,     0,     0,    41,    42,    43,    44,
720       45,    46,    47,     0,     0,     0,     0,     0,     0,     0,
721       48,     0,     0,     0,     0,     0,     0,     0,     0,     0,
722        0,     0,    49,    50,    51,     0,     0,     0,     0,     0,
723       52,    53,     0,   232,    54,     0,    55,    56,    16,     0,
724       17,    18,    19,    20,    21,     0,     0,    22,    23,    24,
725       25,    26,     0,    27,    28,    29,    30,    31,    32,     0,
726        0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
727        0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
728       36,    37,    38,    39,    40,     0,     0,     0,     0,    41,
729       42,    43,    44,    45,    46,    47,     0,     0,     0,     0,
730        0,     0,     0,    48,     0,     0,     0,     0,     0,     0,
731        0,     0,     0,     0,     0,    49,    50,    51,     0,     0,
732        0,     0,     0,    52,    53,     0,   240,    54,     0,    55,
733       56,    16,     0,    17,    18,    19,    20,    21,     0,     0,
734       22,    23,    24,    25,    26,     0,    27,    28,    29,    30,
735       31,    32,     0,     0,     0,     0,    33,     0,     0,     0,
736        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
737       34,     0,    35,    36,    37,    38,    39,    40,     0,     0,
738        0,     0,    41,    42,    43,    44,    45,    46,    47,     0,
739        0,     0,     0,     0,     0,     0,    48,     0,     0,     0,
740        0,     0,     0,     0,     0,     0,     0,     0,    49,    50,
741       51,     0,     0,     0,     0,     0,    52,    53,     0,   252,
742       54,     0,    55,    56,    16,     0,    17,    18,    19,    20,
743       21,     0,     0,    22,    23,    24,    25,    26,     0,    27,
744       28,    29,    30,    31,    32,     0,     0,     0,     0,    33,
745        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
746        0,     0,     0,    34,     0,    35,    36,    37,    38,    39,
747       40,     0,     0,     0,     0,    41,    42,    43,    44,    45,
748       46,    47,     0,     0,     0,     0,     0,     0,     0,    48,
749        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
750        0,    49,    50,    51,     0,     0,     0,     0,     0,    52,
751       53,     0,   281,    54,     0,    55,    56,    16,     0,    17,
752       18,    19,    20,    21,     0,     0,    22,    23,    24,    25,
753       26,     0,    27,    28,    29,    30,    31,    32,     0,     0,
754        0,     0,    33,     0,     0,     0,     0,     0,     0,     0,
755        0,     0,     0,     0,     0,     0,    34,     0,    35,    36,
756       37,    38,    39,    40,     0,     0,     0,     0,    41,    42,
757       43,    44,    45,    46,    47,     0,     0,     0,     0,     0,
758        0,     0,    48,     0,     0,     0,     0,     0,     0,     0,
759        0,     0,     0,     0,    49,    50,    51,     0,     0,     0,
760        0,     0,    52,    53,     0,   346,    54,     0,    55,    56,
761       16,     0,    17,    18,    19,    20,    21,     0,     0,    22,
762       23,    24,    25,    26,     0,    27,    28,    29,    30,    31,
763       32,     0,     0,     0,     0,    33,     0,     0,     0,     0,
764        0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
765        0,    35,    36,    37,    38,    39,    40,     0,     0,     0,
766        0,    41,    42,    43,    44,    45,    46,    47,     0,     0,
767        0,     0,     0,     0,     0,    48,   166,     0,     0,     0,
768        0,     0,     0,   167,   168,   169,   170,    49,    50,    51,
769        0,     0,     0,     0,     0,    52,    53,     0,     0,    54,
770        0,    55,    56,   171,   172,   339,   173,   174,   175,   176,
771      177,   178,   179,     0,     0,     0,     0,   180,   181,   182,
772      183,   166,     0,   184,     0,     0,     0,     0,   167,   168,
773      169,   170,     0,     0,     0,     0,     0,     0,     0,     0,
774        0,     0,     0,     0,     0,     0,     0,     0,   171,   172,
775        0,   173,   174,   175,   176,   177,   178,   179,     0,     0,
776        0,     0,   180,   181,   182,   183,   166,     0,   184,     0,
777        0,     0,     0,   167,   168,   169,   170,     0,     0,     0,
778        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
779        0,     0,     0,     0,   172,     0,   173,   174,   175,   176,
780      177,   178,   179,     0,     0,     0,     0,   180,   181,   182,
781      183,     0,     0,   184
782 };
783
784 static const yytype_int16 yycheck[] =
785 {
786       15,   308,    11,     9,     9,    40,    46,    46,   126,   115,
787      299,    16,   325,    48,    10,     9,    15,    16,     9,   308,
788       11,   310,   311,    19,    20,    21,    23,    23,    24,    19,
789       20,    21,   412,    23,    24,   141,    15,    16,    43,    23,
790      439,     9,    20,    39,    40,    41,    42,    25,    77,    54,
791       40,    41,    20,    67,    73,    74,    75,    25,     9,    55,
792       56,    43,    44,    19,    20,    21,    56,    23,    24,    20,
793       15,    16,    17,     0,    25,   104,    90,     9,     9,    11,
794      115,     9,    12,    11,    40,    41,   100,    11,   102,    98,
795       46,    77,   100,   382,   407,   101,    92,   100,   133,    55,
796       56,   100,   501,   102,   101,   223,   141,   101,   100,   100,
797       12,   100,   492,   118,     9,     9,   100,    11,     9,   432,
798      125,   126,    67,   102,   100,   121,   415,     9,   417,    11,
799      126,    20,    45,    89,   102,   103,   126,    12,   143,   100,
800        9,    12,    11,    73,    74,    75,    15,    16,    17,   101,
801      100,   102,    21,    12,   159,   160,   161,   102,   163,   164,
802      165,    12,   100,   203,   203,   100,    73,    74,    75,    10,
803      126,    73,    74,    75,     9,   464,    11,   100,   193,    12,
804      185,   186,   187,   188,   189,   190,   191,   192,   477,   224,
805       77,    12,   499,    62,   101,   100,   100,    12,    73,    74,
806       75,   100,    73,    74,    75,    69,    99,   212,   213,   214,
807      215,   216,   217,   209,    73,    74,    75,   323,   223,    99,
808       20,    11,    73,    74,    75,    73,    74,    75,   184,    69,
809      235,   100,   350,   102,   103,   122,    73,    74,    75,   244,
810       73,    74,    75,    20,    17,    18,   100,   203,   100,    99,
811       10,    99,    73,    74,    75,    23,    11,    30,    73,    74,
812       75,    34,    99,    60,   269,   270,    39,    75,   100,    42,
813       18,   276,    45,   103,    47,   103,    49,    50,    51,    52,
814       53,   277,    73,    74,    75,   103,   103,   103,   323,   100,
815       87,   296,   297,   298,   299,    92,    93,    94,    95,    20,
816      102,    98,   100,   308,   410,   310,   311,    99,    23,    10,
817      101,   198,   199,   200,   201,   202,    10,   204,    10,   206,
818      207,   277,    73,    74,    75,    39,    40,    41,    42,    10,
819      335,   327,    46,   414,    48,   375,   375,   418,    60,    61,
820      421,   422,    10,    23,   300,   350,    73,    74,    75,    20,
821      101,    93,    94,    95,   435,   436,    98,   100,    99,    73,
822       74,    75,    99,    99,   445,    87,    73,    74,    75,    99,
823       92,    93,    94,    95,   101,   410,    98,   382,   459,    99,
824       99,   386,   463,   101,   465,    99,    99,    99,    99,   162,
825        9,    99,    99,   166,   167,   168,   169,   170,   171,   172,
826      173,   174,   175,   176,   177,   178,   179,   180,    10,   490,
827      415,   426,   417,   443,   301,   101,   497,     9,   433,   375,
828       99,    71,   309,   101,    99,   506,   456,   457,   100,    58,
829       59,    60,    61,    99,     9,   431,   100,    99,   468,   444,
830        0,   101,    70,   458,    99,    19,    99,    12,   478,     9,
831      480,    11,    12,    98,   297,   499,   471,    86,    87,   464,
832      195,   444,    33,    92,    93,    94,    95,    82,   498,    98,
833       60,    61,   477,   360,   362,   408,   363,   364,   493,    39,
834       40,    41,    42,   375,    -1,    -1,    46,   203,    48,   376,
835       -1,    51,    -1,    -1,    -1,    -1,    86,    87,    58,    59,
836       60,    61,    92,    93,    94,    95,    -1,    -1,    98,    73,
837       74,    75,    -1,    73,    74,    75,     0,    77,    78,    79,
838       80,    81,    82,    83,    84,    85,    86,    87,    12,    -1,
839       -1,    -1,    92,    93,    94,    95,    -1,   101,    98,    99,
840       -1,   101,    -1,    -1,   104,    39,    40,    41,    42,    -1,
841       -1,    -1,    46,    -1,    48,    39,    40,    41,    42,    73,
842       74,    75,    46,    -1,    48,    -1,   339,    51,     3,     4,
843        5,     6,     7,     8,    58,    59,    60,    61,    -1,    73,
844       74,    75,    92,    93,    94,    95,    -1,   101,    98,    73,
845       74,    75,    -1,    77,    78,    79,    80,    81,    82,    83,
846       84,    85,    86,    87,    73,    74,    75,    -1,    92,    93,
847       94,    95,     0,     1,    98,    99,    -1,   101,    -1,    -1,
848      104,     9,    -1,    11,    -1,    13,    14,    15,    16,    17,
849       99,    -1,    20,    21,    22,    23,    24,    -1,    26,    27,
850       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
851       38,    39,    40,    41,    42,    73,    74,    75,    46,    47,
852       48,    49,    50,    -1,    52,    53,    54,    55,    56,    57,
853       73,    74,    75,    -1,    62,    63,    64,    65,    66,    67,
854       68,    -1,    -1,   101,    -1,    -1,    -1,    -1,    76,    -1,
855       73,    74,    75,    -1,    -1,    -1,    99,    -1,    -1,    -1,
856       88,    89,    90,    73,    74,    75,    -1,    -1,    96,    97,
857        0,     1,   100,   101,   102,   103,    99,    -1,    -1,     9,
858       -1,    11,    -1,    13,    14,    15,    16,    17,    -1,    99,
859       20,    21,    22,    23,    24,    -1,    26,    27,    28,    29,
860       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
861       40,    41,    42,    -1,    -1,    -1,    46,    47,    48,    49,
862       50,    -1,    52,    53,    54,    55,    56,    57,    -1,    -1,
863       -1,    -1,    62,    63,    64,    65,    66,    67,    68,    -1,
864       -1,    -1,    87,    -1,    -1,    -1,    76,    92,    93,    94,
865       95,    -1,    -1,    98,    -1,    -1,    -1,    -1,    88,    89,
866       90,    -1,    -1,    -1,    -1,    -1,    96,    97,     1,    -1,
867      100,   101,   102,   103,    -1,    -1,     9,    10,    11,    -1,
868       13,    14,    15,    16,    17,    -1,    -1,    20,    21,    22,
869       23,    24,    -1,    26,    27,    28,    29,    30,    31,    32,
870       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
871       -1,    -1,    -1,    46,    47,    48,    49,    50,    -1,    52,
872       53,    54,    55,    56,    57,    -1,    -1,    -1,    -1,    62,
873       63,    64,    65,    66,    67,    68,    -1,    -1,    -1,    -1,
874       -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,
875       -1,    -1,    -1,    -1,    -1,    88,    89,    90,    -1,    -1,
876       -1,    -1,    -1,    96,    97,     1,    -1,   100,   101,   102,
877      103,    -1,    -1,     9,    10,    11,    -1,    13,    14,    15,
878       16,    17,    -1,    -1,    20,    21,    22,    23,    24,    -1,
879       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
880       36,    37,    38,    39,    40,    41,    42,    -1,    -1,    -1,
881       46,    47,    48,    49,    50,    -1,    52,    53,    54,    55,
882       56,    57,    -1,    -1,    -1,    -1,    62,    63,    64,    65,
883       66,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
884       76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
885       -1,    -1,    88,    89,    90,    -1,    -1,    -1,    -1,    -1,
886       96,    97,     1,    -1,   100,   101,   102,   103,    -1,    -1,
887        9,    10,    11,    -1,    13,    14,    15,    16,    17,    -1,
888       -1,    20,    21,    22,    23,    24,    -1,    26,    27,    28,
889       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
890       39,    40,    41,    42,    -1,    -1,    -1,    46,    47,    48,
891       49,    50,    -1,    52,    53,    54,    55,    56,    57,    -1,
892       -1,    -1,    -1,    62,    63,    64,    65,    66,    67,    68,
893       -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,    -1,
894       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
895       89,    90,    -1,    -1,    -1,    -1,    -1,    96,    97,     1,
896       -1,   100,   101,   102,   103,    -1,    -1,     9,    10,    11,
897       -1,    13,    14,    15,    16,    17,    -1,    -1,    20,    21,
898       22,    23,    24,    -1,    26,    27,    28,    29,    30,    31,
899       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
900       42,    -1,    -1,    -1,    46,    47,    48,    49,    50,    -1,
901       52,    53,    54,    55,    56,    57,    -1,    -1,    -1,    -1,
902       62,    63,    64,    65,    66,    67,    68,    -1,    -1,    -1,
903       -1,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,
904       -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    -1,
905       -1,    -1,    -1,    -1,    96,    97,     1,    -1,   100,   101,
906      102,   103,    -1,    -1,     9,    10,    11,    -1,    13,    14,
907       15,    16,    17,    -1,    -1,    20,    21,    22,    23,    24,
908       -1,    26,    27,    28,    29,    30,    31,    32,    33,    34,
909       35,    36,    37,    38,    39,    40,    41,    42,    -1,    -1,
910       -1,    46,    47,    48,    49,    50,    -1,    52,    53,    54,
911       55,    56,    57,    -1,    -1,    -1,    -1,    62,    63,    64,
912       65,    66,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,
913       -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
914       -1,    -1,    -1,    88,    89,    90,    -1,    -1,    -1,    -1,
915       -1,    96,    97,     1,    -1,   100,   101,   102,   103,    -1,
916       -1,     9,    -1,    11,    -1,    13,    14,    15,    16,    17,
917       -1,    -1,    20,    21,    22,    23,    24,    -1,    26,    27,
918       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
919       38,    39,    40,    41,    42,    -1,    -1,    -1,    46,    47,
920       48,    49,    50,    -1,    52,    53,    54,    55,    56,    57,
921       -1,    -1,    -1,    -1,    62,    63,    64,    65,    66,    67,
922       68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    76,    -1,
923       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
924       88,    89,    90,    -1,    -1,    -1,    -1,    -1,    96,    97,
925        1,    -1,   100,   101,   102,   103,    -1,    -1,     9,    -1,
926       11,    -1,    13,    14,    15,    16,    17,    -1,    -1,    20,
927       21,    22,    23,    24,    -1,    26,    27,    28,    29,    30,
928       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
929       41,    42,    -1,    -1,    -1,    46,    47,    48,    49,    50,
930       -1,    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,
931       -1,    62,    63,    64,    65,    66,    67,    68,    -1,    -1,
932       -1,    -1,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,
933       -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,
934       -1,    -1,    -1,    -1,    -1,    96,    97,     1,    -1,   100,
935      101,   102,   103,    -1,    -1,     9,    -1,    11,    -1,    13,
936       14,    15,    16,    17,    -1,    -1,    20,    21,    22,    23,
937       24,    -1,    26,    27,    28,    29,    30,    31,    32,    -1,
938       34,    35,    36,    37,    38,    39,    40,    41,    42,    -1,
939       -1,    -1,    46,    47,    48,    49,    50,    -1,    52,    53,
940       54,    55,    56,    57,    -1,    -1,    -1,    -1,    62,    63,
941       64,    65,    66,    67,    68,    -1,    -1,    -1,    -1,    -1,
942       -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
943       -1,    -1,    -1,    -1,    88,    89,    90,    -1,    -1,    -1,
944        1,    -1,    96,    97,    -1,    -1,   100,   101,   102,   103,
945       11,    -1,    13,    14,    15,    16,    17,    -1,    -1,    20,
946       21,    22,    23,    24,    -1,    26,    27,    28,    29,    30,
947       31,    -1,    -1,    -1,    -1,    36,    -1,    -1,    51,    -1,
948       -1,    -1,    -1,    -1,    -1,    58,    59,    60,    61,    50,
949       -1,    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,
950       -1,    62,    63,    64,    65,    66,    67,    68,    81,    82,
951       83,    84,    85,    86,    87,    76,    -1,    -1,    -1,    92,
952       93,    94,    95,    -1,    -1,    98,    -1,    88,    89,    90,
953       -1,    -1,    -1,     1,    -1,    96,    97,    -1,    -1,   100,
954      101,   102,   103,    11,    -1,    13,    14,    15,    16,    17,
955       -1,    -1,    20,    21,    22,    23,    24,    -1,    26,    27,
956       28,    29,    30,    31,    -1,    -1,    -1,    -1,    36,    -1,
957       -1,    -1,    -1,    -1,    -1,    -1,    58,    59,    60,    61,
958       -1,    -1,    50,    -1,    52,    53,    54,    55,    56,    57,
959       -1,    -1,    -1,    -1,    62,    63,    64,    65,    66,    67,
960       68,    83,    84,    85,    86,    87,    -1,    -1,    76,    -1,
961       92,    93,    94,    95,    -1,    -1,    98,    -1,    -1,    -1,
962       88,    89,    90,    -1,    -1,    -1,    -1,    -1,    96,    97,
963       -1,    99,   100,    -1,   102,   103,     9,    -1,    11,    -1,
964       13,    14,    15,    16,    17,    -1,    -1,    20,    21,    22,
965       23,    24,    25,    26,    27,    28,    29,    30,    31,    -1,
966       -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,    -1,
967       58,    59,    60,    61,    -1,    -1,    -1,    50,    -1,    52,
968       53,    54,    55,    56,    57,    -1,    -1,    -1,    -1,    62,
969       63,    64,    65,    66,    67,    68,    84,    85,    86,    87,
970       -1,    -1,    -1,    76,    92,    93,    94,    95,    -1,    -1,
971       98,    -1,    -1,    -1,    -1,    88,    89,    90,    -1,    -1,
972       -1,    -1,    -1,    96,    97,    -1,    -1,   100,    -1,   102,
973      103,     9,    -1,    11,    -1,    13,    14,    15,    16,    17,
974       -1,    -1,    20,    21,    22,    23,    24,    -1,    26,    27,
975       28,    29,    30,    31,    -1,    -1,    -1,    -1,    36,    -1,
976       -1,    -1,    -1,    -1,    -1,    58,    59,    60,    61,    -1,
977       -1,    -1,    50,    -1,    52,    53,    54,    55,    56,    57,
978       -1,    -1,    -1,    -1,    62,    63,    64,    65,    66,    67,
979       68,    -1,    85,    86,    87,    -1,    -1,    -1,    76,    92,
980       93,    94,    95,    -1,    -1,    98,    -1,    -1,    -1,    -1,
981       88,    89,    90,    -1,    -1,    -1,    -1,    -1,    96,    97,
982       -1,    -1,   100,    -1,   102,   103,    11,    12,    13,    14,
983       15,    16,    17,    -1,    -1,    20,    21,    22,    23,    24,
984       -1,    26,    27,    28,    29,    30,    31,    -1,    -1,    -1,
985       -1,    36,    -1,    -1,    -1,    -1,    -1,    -1,    58,    59,
986       60,    61,    -1,    -1,    -1,    50,    -1,    52,    53,    54,
987       55,    56,    57,    -1,    -1,    -1,    -1,    62,    63,    64,
988       65,    66,    67,    68,    -1,    -1,    86,    87,    -1,    -1,
989       -1,    76,    92,    93,    94,    95,    -1,    -1,    98,    -1,
990       -1,    -1,    -1,    88,    89,    90,    -1,    -1,    -1,    -1,
991       -1,    96,    97,    -1,    -1,   100,    -1,   102,   103,    11,
992       -1,    13,    14,    15,    16,    17,    -1,    -1,    20,    21,
993       22,    23,    24,    -1,    26,    27,    28,    29,    30,    31,
994       -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,
995       -1,    58,    -1,    60,    61,    -1,    -1,    -1,    50,    -1,
996       52,    53,    54,    55,    56,    57,    -1,    -1,    -1,    -1,
997       62,    63,    64,    65,    66,    67,    68,    -1,    -1,    86,
998       87,    -1,    -1,    -1,    76,    92,    93,    94,    95,    -1,
999       -1,    98,    -1,    -1,    -1,    -1,    88,    89,    90,    -1,
1000       -1,    -1,    -1,    -1,    96,    97,    -1,    -1,   100,   101,
1001      102,   103,    11,    -1,    13,    14,    15,    16,    17,    -1,
1002       -1,    20,    21,    22,    23,    24,    -1,    26,    27,    28,
1003       29,    30,    31,    -1,    -1,    -1,    -1,    36,    -1,    -1,
1004       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1005       -1,    50,    -1,    52,    53,    54,    55,    56,    57,    -1,
1006       -1,    -1,    -1,    62,    63,    64,    65,    66,    67,    68,
1007       -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,    -1,
1008       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
1009       89,    90,    -1,    -1,    -1,    -1,    -1,    96,    97,    -1,
1010       99,   100,    -1,   102,   103,    11,    -1,    13,    14,    15,
1011       16,    17,    -1,    -1,    20,    21,    22,    23,    24,    -1,
1012       26,    27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,
1013       36,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1014       -1,    -1,    -1,    -1,    50,    -1,    52,    53,    54,    55,
1015       56,    57,    -1,    -1,    -1,    -1,    62,    63,    64,    65,
1016       66,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1017       76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1018       -1,    -1,    88,    89,    90,    -1,    -1,    -1,    -1,    -1,
1019       96,    97,    -1,    99,   100,    -1,   102,   103,    11,    -1,
1020       13,    14,    15,    16,    17,    -1,    -1,    20,    21,    22,
1021       23,    24,    -1,    26,    27,    28,    29,    30,    31,    -1,
1022       -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,    -1,
1023       -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,    52,
1024       53,    54,    55,    56,    57,    -1,    -1,    -1,    -1,    62,
1025       63,    64,    65,    66,    67,    68,    -1,    -1,    -1,    -1,
1026       -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,
1027       -1,    -1,    -1,    -1,    -1,    88,    89,    90,    -1,    -1,
1028       -1,    -1,    -1,    96,    97,    -1,    99,   100,    -1,   102,
1029      103,    11,    -1,    13,    14,    15,    16,    17,    -1,    -1,
1030       20,    21,    22,    23,    24,    -1,    26,    27,    28,    29,
1031       30,    31,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,
1032       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1033       50,    -1,    52,    53,    54,    55,    56,    57,    -1,    -1,
1034       -1,    -1,    62,    63,    64,    65,    66,    67,    68,    -1,
1035       -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,    -1,    -1,
1036       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,
1037       90,    -1,    -1,    -1,    -1,    -1,    96,    97,    -1,    99,
1038      100,    -1,   102,   103,    11,    -1,    13,    14,    15,    16,
1039       17,    -1,    -1,    20,    21,    22,    23,    24,    -1,    26,
1040       27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,    36,
1041       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1042       -1,    -1,    -1,    50,    -1,    52,    53,    54,    55,    56,
1043       57,    -1,    -1,    -1,    -1,    62,    63,    64,    65,    66,
1044       67,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,
1045       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1046       -1,    88,    89,    90,    -1,    -1,    -1,    -1,    -1,    96,
1047       97,    -1,    99,   100,    -1,   102,   103,    11,    -1,    13,
1048       14,    15,    16,    17,    -1,    -1,    20,    21,    22,    23,
1049       24,    -1,    26,    27,    28,    29,    30,    31,    -1,    -1,
1050       -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1051       -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,    52,    53,
1052       54,    55,    56,    57,    -1,    -1,    -1,    -1,    62,    63,
1053       64,    65,    66,    67,    68,    -1,    -1,    -1,    -1,    -1,
1054       -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1055       -1,    -1,    -1,    -1,    88,    89,    90,    -1,    -1,    -1,
1056       -1,    -1,    96,    97,    -1,    99,   100,    -1,   102,   103,
1057       11,    -1,    13,    14,    15,    16,    17,    -1,    -1,    20,
1058       21,    22,    23,    24,    -1,    26,    27,    28,    29,    30,
1059       31,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,
1060       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,
1061       -1,    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,
1062       -1,    62,    63,    64,    65,    66,    67,    68,    -1,    -1,
1063       -1,    -1,    -1,    -1,    -1,    76,    51,    -1,    -1,    -1,
1064       -1,    -1,    -1,    58,    59,    60,    61,    88,    89,    90,
1065       -1,    -1,    -1,    -1,    -1,    96,    97,    -1,    -1,   100,
1066       -1,   102,   103,    78,    79,    80,    81,    82,    83,    84,
1067       85,    86,    87,    -1,    -1,    -1,    -1,    92,    93,    94,
1068       95,    51,    -1,    98,    -1,    -1,    -1,    -1,    58,    59,
1069       60,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1070       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
1071       -1,    81,    82,    83,    84,    85,    86,    87,    -1,    -1,
1072       -1,    -1,    92,    93,    94,    95,    51,    -1,    98,    -1,
1073       -1,    -1,    -1,    58,    59,    60,    61,    -1,    -1,    -1,
1074       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1075       -1,    -1,    -1,    -1,    79,    -1,    81,    82,    83,    84,
1076       85,    86,    87,    -1,    -1,    -1,    -1,    92,    93,    94,
1077       95,    -1,    -1,    98
1078 };
1079
1080 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1081    symbol of state STATE-NUM.  */
1082 static const yytype_uint8 yystos[] =
1083 {
1084        0,     3,     4,     5,     6,     7,     8,   106,   107,   108,
1085      109,   110,   111,   112,     0,   115,    11,    13,    14,    15,
1086       16,    17,    20,    21,    22,    23,    24,    26,    27,    28,
1087       29,    30,    31,    36,    50,    52,    53,    54,    55,    56,
1088       57,    62,    63,    64,    65,    66,    67,    68,    76,    88,
1089       89,    90,    96,    97,   100,   102,   103,   152,   153,   154,
1090      157,   158,   159,   160,   161,   162,   164,   167,   172,   173,
1091      174,   175,   176,   177,   178,   179,   180,     9,   113,     1,
1092       32,    34,    35,    37,    38,    39,    40,    41,    42,    46,
1093       47,    48,    49,   101,   113,   122,   132,   152,    33,   120,
1094      121,   122,   118,   118,    12,   152,   162,   162,    20,    25,
1095      113,   173,   181,   181,   181,   181,   181,   163,    11,   100,
1096      162,   143,   143,   162,   100,   100,   100,   113,   162,    20,
1097      153,   166,   173,   181,   181,   113,   162,   101,   152,    20,
1098       25,   145,   162,   100,   165,   173,   174,   175,   162,   153,
1099      162,   162,   162,   162,   162,    99,   152,   181,   181,    73,
1100       74,    75,    77,     9,    11,   100,    51,    58,    59,    60,
1101       61,    78,    79,    81,    82,    83,    84,    85,    86,    87,
1102       92,    93,    94,    95,    98,   100,     9,    11,     9,    11,
1103        9,    11,     9,   115,   144,   145,    20,   142,   100,   100,
1104      100,   100,    67,    90,   100,   173,   100,   100,   113,    45,
1105      134,   101,    39,    40,    41,    42,    46,    48,   121,   122,
1106      120,    12,   166,   100,   100,   152,    99,   113,    23,   115,
1107      146,    99,    99,   152,   167,   181,   153,    10,   101,   166,
1108       99,   152,    69,   148,    11,    99,   152,   152,   152,   162,
1109      152,   152,    99,   152,   162,   162,   162,   162,   162,   162,
1110      162,   162,   162,   162,   162,   162,   162,   162,   162,     9,
1111       11,    15,    16,    17,    21,    62,   100,   102,   103,   156,
1112      173,    99,   152,   152,   152,   152,   152,   152,   152,   152,
1113      118,    20,   141,   142,    20,   125,   115,   115,   115,   115,
1114      115,    67,   170,   171,   172,   173,   174,   175,   115,   100,
1115      115,   115,   113,   152,   138,   152,   152,   152,   152,   152,
1116      167,   153,    12,   155,   100,   149,    69,   147,    99,    99,
1117      152,    10,    99,    23,   152,    11,   101,    12,    99,    80,
1118      152,   152,   103,   103,   103,   103,    99,   152,   103,   103,
1119      100,    99,   101,    12,   101,    12,   101,    12,   101,    10,
1120       18,   114,   123,   124,     9,   101,    20,   137,   152,   138,
1121      139,   152,   139,   169,   173,   115,   100,   132,   136,   139,
1122      140,   152,   115,   139,   139,    99,   104,   168,   166,   150,
1123      147,    23,   113,    99,    12,   152,    10,   162,   101,    12,
1124       99,   167,    10,    10,    10,    10,   115,   146,   115,   115,
1125       20,    99,    99,    99,    99,   100,   170,   115,    99,   101,
1126      139,    99,    99,   152,    99,    99,     9,    12,    10,    99,
1127      101,   147,   149,   129,   166,   135,   135,     9,   116,   116,
1128      139,   128,   139,   116,   126,    99,   116,   116,   118,    71,
1129      101,   113,   151,   147,   118,   101,   116,   116,   117,    43,
1130       44,   133,   133,    99,   100,    99,   134,   137,   116,    10,
1131      119,     9,    10,   134,   134,   118,   116,   100,   116,   139,
1132      116,   101,   134,    23,   101,   130,   118,    10,   139,   134,
1133       99,   134,   127,    70,   131,    19,    10,    99,   116,   135,
1134      118,   116,   134,   140,    71,   133,    99,   116
1135 };
1136
1137 typedef enum {
1138         toketype_ival, toketype_opval, toketype_pval
1139 } toketypes;
1140
1141 /* type of each token/terminal */
1142 static const toketypes yy_type_tab[] =
1143 {
1144   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1145   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1146   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval,
1147   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
1148   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_pval,
1149   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1150   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1151   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1152   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1153   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1154   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1155   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1156   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1157   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1158   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1159   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_ival,
1160   toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval,
1161   toketype_opval, toketype_opval, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1162   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval,
1163   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival,
1164   toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_opval,
1165   toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval,
1166   toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
1167   toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval,
1168   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
1169   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
1170   toketype_opval, toketype_opval, toketype_opval, toketype_opval
1171 };
1172
1173 /* Generated from:
1174  * 70adb6e1be5382fb5c8cd783cd886cb4725c98a3e69c54eb16da5d7829d929aa perly.y
1175  * 3e1dff60f26df8933d7aed0c0e87177a0f022c14800c0707eb62a7db4196ac98 regen_perly.pl
1176  * ex: set ro: */