source: vendors/AGRIF/dev/LIB/fortran.c @ 14107

Last change on this file since 14107 was 14107, checked in by nicolasmartin, 8 months ago

Reintegration of dev_r12970_AGRIF_CMEMS to AGRIF/dev

  • Property svn:keywords set to Id
File size: 524.8 KB
Line 
1/* A Bison parser, made by GNU Bison 3.0.4.  */
2
3/* Bison implementation for Yacc-like parsers in C
4
5   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
6
7   This program is free software: you can redistribute it and/or modify
8   it under the terms of the GNU General Public License as published by
9   the Free Software Foundation, either version 3 of the License, or
10   (at your option) any later version.
11
12   This program is distributed in the hope that it will be useful,
13   but WITHOUT ANY WARRANTY; without even the implied warranty of
14   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15   GNU General Public License for more details.
16
17   You should have received a copy of the GNU General Public License
18   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19
20/* As a special exception, you may create a larger work that contains
21   part or all of the Bison parser skeleton and distribute that work
22   under terms of your choice, so long as that work isn't itself a
23   parser generator using the skeleton or a modified version thereof
24   as a parser skeleton.  Alternatively, if you modify or redistribute
25   the parser skeleton itself, you may (at your option) remove this
26   special exception, which will cause the skeleton and the resulting
27   Bison output files to be licensed under the GNU General Public
28   License without this special exception.
29
30   This special exception was added by the Free Software Foundation in
31   version 2.2 of Bison.  */
32
33/* C LALR(1) parser skeleton written by Richard Stallman, by
34   simplifying the original so-called "semantic" parser.  */
35
36/* All symbols defined below should begin with yy or YY, to avoid
37   infringing on user name space.  This should be done even for local
38   variables, as they might otherwise be expanded by user macros.
39   There are some unavoidable exceptions within include files to
40   define necessary library symbols; they are noted "INFRINGES ON
41   USER NAME SPACE" below.  */
42
43/* Identify Bison output.  */
44#define YYBISON 1
45
46/* Bison version.  */
47#define YYBISON_VERSION "3.0.4"
48
49/* Skeleton name.  */
50#define YYSKELETON_NAME "yacc.c"
51
52/* Pure parsers.  */
53#define YYPURE 0
54
55/* Push parsers.  */
56#define YYPUSH 0
57
58/* Pull parsers.  */
59#define YYPULL 1
60
61
62/* Substitute the variable and function names.  */
63#define yyparse         fortran_parse
64#define yylex           fortran_lex
65#define yyerror         fortran_error
66#define yydebug         fortran_debug
67#define yynerrs         fortran_nerrs
68
69#define yylval          fortran_lval
70#define yychar          fortran_char
71
72/* Copy the first part of user declarations.  */
73#line 36 "fortran.y" /* yacc.c:339  */
74
75#define YYMAXDEPTH 1000
76#include <stdlib.h>
77#include <stdio.h>
78#include <string.h>
79#include "decl.h"
80
81extern int line_num_input;
82
83char c_selectorname[LONG_M];
84char ligne[LONG_M];
85char truename[LONG_VNAME];
86char identcopy[LONG_VNAME];
87int c_selectorgiven=0;
88listvar *curlistvar;
89int in_select_case_stmt=0;
90typedim c_selectordim;
91listcouple *coupletmp;
92int removeline=0;
93int token_since_endofstmt = 0;
94int increment_nbtokens = 1;
95int in_complex_literal = 0;
96int close_or_connect = 0;
97int in_io_control_spec = 0;
98int intent_spec = 0;
99long int my_position;
100long int my_position_before;
101int suborfun = 0;
102int indeclaration = 0;
103int endoffile = 0;
104int in_inquire = 0;
105int in_char_selector = 0;
106int in_kind_selector =0;
107int char_length_toreset = 0;
108
109typedim my_dim;
110
111listvar *test;
112
113char linebuf1[1024];
114char linebuf2[1024];
115
116int fortran_error(const char *s)
117{
118  if (endoffile == 1) 
119  {
120  endoffile = 0;
121  return 0;
122  }
123    printf("%s line %d, file %s culprit = |%s|\n", s, line_num_input, cur_filename, strcat(linebuf1, linebuf2));
124    exit(1);
125}
126
127
128#line 129 "fortran.tab.c" /* yacc.c:339  */
129
130# ifndef YY_NULLPTR
131#  if defined __cplusplus && 201103L <= __cplusplus
132#   define YY_NULLPTR nullptr
133#  else
134#   define YY_NULLPTR 0
135#  endif
136# endif
137
138/* Enabling verbose error messages.  */
139#ifdef YYERROR_VERBOSE
140# undef YYERROR_VERBOSE
141# define YYERROR_VERBOSE 1
142#else
143# define YYERROR_VERBOSE 0
144#endif
145
146
147/* Debug traces.  */
148#ifndef YYDEBUG
149# define YYDEBUG 1
150#endif
151#if YYDEBUG
152extern int fortran_debug;
153#endif
154
155/* Token type.  */
156#ifndef YYTOKENTYPE
157# define YYTOKENTYPE
158  enum yytokentype
159  {
160    TOK_EQV = 258,
161    TOK_NEQV = 259,
162    TOK_OR = 260,
163    TOK_XOR = 261,
164    TOK_AND = 262,
165    TOK_NOT = 263,
166    TOK_LT = 264,
167    TOK_GT = 265,
168    TOK_LE = 266,
169    TOK_GE = 267,
170    TOK_EQ = 268,
171    TOK_NE = 269,
172    TOK_DSLASH = 270,
173    TOK_SLASH = 271,
174    TOK_DASTER = 272,
175    TOK_SEMICOLON = 273,
176    TOK_PARAMETER = 274,
177    TOK_RESULT = 275,
178    TOK_ONLY = 276,
179    TOK_INCLUDE = 277,
180    TOK_SUBROUTINE = 278,
181    TOK_PROGRAM = 279,
182    TOK_FUNCTION = 280,
183    TOK_LABEL_FORMAT = 281,
184    TOK_LABEL_CONTINUE = 282,
185    TOK_LABEL_END_DO = 283,
186    TOK_MAX = 284,
187    TOK_TANH = 285,
188    TOK_COMMENT = 286,
189    TOK_WHERE = 287,
190    TOK_ELSEWHEREPAR = 288,
191    TOK_ELSEWHERE = 289,
192    TOK_ENDWHERE = 290,
193    TOK_MAXVAL = 291,
194    TOK_TRIM = 292,
195    TOK_NULL_PTR = 293,
196    TOK_SUM = 294,
197    TOK_SQRT = 295,
198    TOK_CASE = 296,
199    TOK_SELECTCASE = 297,
200    TOK_FILE = 298,
201    TOK_REC = 299,
202    TOK_NAME_EQ = 300,
203    TOK_IOLENGTH = 301,
204    TOK_ACCESS = 302,
205    TOK_ACTION = 303,
206    TOK_FORM = 304,
207    TOK_RECL = 305,
208    TOK_STATUS = 306,
209    TOK_UNIT = 307,
210    TOK_OPENED = 308,
211    TOK_FMT = 309,
212    TOK_NML = 310,
213    TOK_END = 311,
214    TOK_EOR = 312,
215    TOK_EOF = 313,
216    TOK_ERR = 314,
217    TOK_POSITION = 315,
218    TOK_IOSTAT = 316,
219    TOK_IOMSG = 317,
220    TOK_EXIST = 318,
221    TOK_MIN = 319,
222    TOK_FLOAT = 320,
223    TOK_EXP = 321,
224    TOK_LEN = 322,
225    TOK_COS = 323,
226    TOK_COSH = 324,
227    TOK_ACOS = 325,
228    TOK_NINT = 326,
229    TOK_CYCLE = 327,
230    TOK_SIN = 328,
231    TOK_SINH = 329,
232    TOK_ASIN = 330,
233    TOK_EQUIVALENCE = 331,
234    TOK_BACKSPACE = 332,
235    TOK_LOG = 333,
236    TOK_TAN = 334,
237    TOK_ATAN = 335,
238    TOK_RECURSIVE = 336,
239    TOK_ABS = 337,
240    TOK_MOD = 338,
241    TOK_SIGN = 339,
242    TOK_MINLOC = 340,
243    TOK_MAXLOC = 341,
244    TOK_EXIT = 342,
245    TOK_KIND = 343,
246    TOK_MOLD = 344,
247    TOK_SOURCE = 345,
248    TOK_ERRMSG = 346,
249    TOK_MINVAL = 347,
250    TOK_PUBLIC = 348,
251    TOK_PRIVATE = 349,
252    TOK_ALLOCATABLE = 350,
253    TOK_RETURN = 351,
254    TOK_THEN = 352,
255    TOK_ELSEIF = 353,
256    TOK_ELSE = 354,
257    TOK_ENDIF = 355,
258    TOK_PRINT = 356,
259    TOK_PLAINGOTO = 357,
260    TOK_LOGICALIF = 358,
261    TOK_LOGICALIF_PAR = 359,
262    TOK_PLAINDO = 360,
263    TOK_CONTAINS = 361,
264    TOK_ENDDO = 362,
265    TOK_MODULE = 363,
266    TOK_ENDMODULE = 364,
267    TOK_WHILE = 365,
268    TOK_CONCURRENT = 366,
269    TOK_ALLOCATE = 367,
270    TOK_OPEN = 368,
271    TOK_CLOSE = 369,
272    TOK_INQUIRE = 370,
273    TOK_WRITE_PAR = 371,
274    TOK_WRITE = 372,
275    TOK_FLUSH = 373,
276    TOK_READ_PAR = 374,
277    TOK_READ = 375,
278    TOK_REWIND = 376,
279    TOK_DEALLOCATE = 377,
280    TOK_NULLIFY = 378,
281    TOK_DIMENSION = 379,
282    TOK_ENDSELECT = 380,
283    TOK_EXTERNAL = 381,
284    TOK_INTENT = 382,
285    TOK_INTRINSIC = 383,
286    TOK_NAMELIST = 384,
287    TOK_DEFAULT = 385,
288    TOK_OPTIONAL = 386,
289    TOK_POINTER = 387,
290    TOK_CONTINUE = 388,
291    TOK_SAVE = 389,
292    TOK_TARGET = 390,
293    TOK_IMPLICIT = 391,
294    TOK_NONE = 392,
295    TOK_CALL = 393,
296    TOK_STAT = 394,
297    TOK_POINT_TO = 395,
298    TOK_COMMON = 396,
299    TOK_GLOBAL = 397,
300    TOK_LEFTAB = 398,
301    TOK_RIGHTAB = 399,
302    TOK_PAUSE = 400,
303    TOK_PROCEDURE = 401,
304    TOK_STOP = 402,
305    TOK_FOURDOTS = 403,
306    TOK_HEXA = 404,
307    TOK_ASSIGNTYPE = 405,
308    TOK_OUT = 406,
309    TOK_INOUT = 407,
310    TOK_IN = 408,
311    TOK_USE = 409,
312    TOK_EQUALEQUAL = 410,
313    TOK_SLASHEQUAL = 411,
314    TOK_INFEQUAL = 412,
315    TOK_SUPEQUAL = 413,
316    TOK_TRUE = 414,
317    TOK_FALSE = 415,
318    TOK_LABEL = 416,
319    TOK_LABEL_DJVIEW = 417,
320    TOK_PLAINDO_LABEL_DJVIEW = 418,
321    TOK_PLAINDO_LABEL = 419,
322    TOK_TYPE = 420,
323    TOK_TYPEPAR = 421,
324    TOK_ENDTYPE = 422,
325    TOK_COMMACOMPLEX = 423,
326    TOK_REAL = 424,
327    TOK_INTEGER = 425,
328    TOK_LOGICAL = 426,
329    TOK_DOUBLEPRECISION = 427,
330    TOK_ENDSUBROUTINE = 428,
331    TOK_ENDFUNCTION = 429,
332    TOK_ENDPROGRAM = 430,
333    TOK_ENDUNIT = 431,
334    TOK_CHARACTER = 432,
335    TOK_CHAR_CONSTANT = 433,
336    TOK_CHAR_CUT = 434,
337    TOK_DATA = 435,
338    TOK_CHAR_MESSAGE = 436,
339    TOK_CSTREAL = 437,
340    TOK_COMPLEX = 438,
341    TOK_DOUBLECOMPLEX = 439,
342    TOK_NAME = 440,
343    TOK_CSTINT = 441
344  };
345#endif
346
347/* Value type.  */
348#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
349
350union YYSTYPE
351{
352#line 91 "fortran.y" /* yacc.c:355  */
353
354    char        na[LONG_M];
355    listdim     *d;
356    listvar     *l;
357    listcouple  *lc;
358    listname    *lnn;
359    typedim     dim1;
360    variable    *v;
361
362#line 363 "fortran.tab.c" /* yacc.c:355  */
363};
364
365typedef union YYSTYPE YYSTYPE;
366# define YYSTYPE_IS_TRIVIAL 1
367# define YYSTYPE_IS_DECLARED 1
368#endif
369
370
371extern YYSTYPE fortran_lval;
372
373int fortran_parse (void);
374
375
376
377/* Copy the second part of user declarations.  */
378
379#line 380 "fortran.tab.c" /* yacc.c:358  */
380
381#ifdef short
382# undef short
383#endif
384
385#ifdef YYTYPE_UINT8
386typedef YYTYPE_UINT8 yytype_uint8;
387#else
388typedef unsigned char yytype_uint8;
389#endif
390
391#ifdef YYTYPE_INT8
392typedef YYTYPE_INT8 yytype_int8;
393#else
394typedef signed char yytype_int8;
395#endif
396
397#ifdef YYTYPE_UINT16
398typedef YYTYPE_UINT16 yytype_uint16;
399#else
400typedef unsigned short int yytype_uint16;
401#endif
402
403#ifdef YYTYPE_INT16
404typedef YYTYPE_INT16 yytype_int16;
405#else
406typedef short int yytype_int16;
407#endif
408
409#ifndef YYSIZE_T
410# ifdef __SIZE_TYPE__
411#  define YYSIZE_T __SIZE_TYPE__
412# elif defined size_t
413#  define YYSIZE_T size_t
414# elif ! defined YYSIZE_T
415#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
416#  define YYSIZE_T size_t
417# else
418#  define YYSIZE_T unsigned int
419# endif
420#endif
421
422#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
423
424#ifndef YY_
425# if defined YYENABLE_NLS && YYENABLE_NLS
426#  if ENABLE_NLS
427#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
428#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
429#  endif
430# endif
431# ifndef YY_
432#  define YY_(Msgid) Msgid
433# endif
434#endif
435
436#ifndef YY_ATTRIBUTE
437# if (defined __GNUC__                                               \
438      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
439     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
440#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
441# else
442#  define YY_ATTRIBUTE(Spec) /* empty */
443# endif
444#endif
445
446#ifndef YY_ATTRIBUTE_PURE
447# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
448#endif
449
450#ifndef YY_ATTRIBUTE_UNUSED
451# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
452#endif
453
454#if !defined _Noreturn \
455     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
456# if defined _MSC_VER && 1200 <= _MSC_VER
457#  define _Noreturn __declspec (noreturn)
458# else
459#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
460# endif
461#endif
462
463/* Suppress unused-variable warnings by "using" E.  */
464#if ! defined lint || defined __GNUC__
465# define YYUSE(E) ((void) (E))
466#else
467# define YYUSE(E) /* empty */
468#endif
469
470#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
471/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
472# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
473    _Pragma ("GCC diagnostic push") \
474    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
475    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
476# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
477    _Pragma ("GCC diagnostic pop")
478#else
479# define YY_INITIAL_VALUE(Value) Value
480#endif
481#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
482# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
483# define YY_IGNORE_MAYBE_UNINITIALIZED_END
484#endif
485#ifndef YY_INITIAL_VALUE
486# define YY_INITIAL_VALUE(Value) /* Nothing. */
487#endif
488
489
490#if ! defined yyoverflow || YYERROR_VERBOSE
491
492/* The parser invokes alloca or malloc; define the necessary symbols.  */
493
494# ifdef YYSTACK_USE_ALLOCA
495#  if YYSTACK_USE_ALLOCA
496#   ifdef __GNUC__
497#    define YYSTACK_ALLOC __builtin_alloca
498#   elif defined __BUILTIN_VA_ARG_INCR
499#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
500#   elif defined _AIX
501#    define YYSTACK_ALLOC __alloca
502#   elif defined _MSC_VER
503#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
504#    define alloca _alloca
505#   else
506#    define YYSTACK_ALLOC alloca
507#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
508#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
509      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
510#     ifndef EXIT_SUCCESS
511#      define EXIT_SUCCESS 0
512#     endif
513#    endif
514#   endif
515#  endif
516# endif
517
518# ifdef YYSTACK_ALLOC
519   /* Pacify GCC's 'empty if-body' warning.  */
520#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
521#  ifndef YYSTACK_ALLOC_MAXIMUM
522    /* The OS might guarantee only one guard page at the bottom of the stack,
523       and a page size can be as small as 4096 bytes.  So we cannot safely
524       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
525       to allow for a few compiler-allocated temporary stack slots.  */
526#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
527#  endif
528# else
529#  define YYSTACK_ALLOC YYMALLOC
530#  define YYSTACK_FREE YYFREE
531#  ifndef YYSTACK_ALLOC_MAXIMUM
532#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
533#  endif
534#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
535       && ! ((defined YYMALLOC || defined malloc) \
536             && (defined YYFREE || defined free)))
537#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
538#   ifndef EXIT_SUCCESS
539#    define EXIT_SUCCESS 0
540#   endif
541#  endif
542#  ifndef YYMALLOC
543#   define YYMALLOC malloc
544#   if ! defined malloc && ! defined EXIT_SUCCESS
545void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
546#   endif
547#  endif
548#  ifndef YYFREE
549#   define YYFREE free
550#   if ! defined free && ! defined EXIT_SUCCESS
551void free (void *); /* INFRINGES ON USER NAME SPACE */
552#   endif
553#  endif
554# endif
555#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
556
557
558#if (! defined yyoverflow \
559     && (! defined __cplusplus \
560         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
561
562/* A type that is properly aligned for any stack member.  */
563union yyalloc
564{
565  yytype_int16 yyss_alloc;
566  YYSTYPE yyvs_alloc;
567};
568
569/* The size of the maximum gap between one aligned stack and the next.  */
570# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
571
572/* The size of an array large to enough to hold all stacks, each with
573   N elements.  */
574# define YYSTACK_BYTES(N) \
575     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
576      + YYSTACK_GAP_MAXIMUM)
577
578# define YYCOPY_NEEDED 1
579
580/* Relocate STACK from its old location to the new one.  The
581   local variables YYSIZE and YYSTACKSIZE give the old and new number of
582   elements in the stack, and YYPTR gives the new location of the
583   stack.  Advance YYPTR to a properly aligned location for the next
584   stack.  */
585# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
586    do                                                                  \
587      {                                                                 \
588        YYSIZE_T yynewbytes;                                            \
589        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
590        Stack = &yyptr->Stack_alloc;                                    \
591        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
592        yyptr += yynewbytes / sizeof (*yyptr);                          \
593      }                                                                 \
594    while (0)
595
596#endif
597
598#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
599/* Copy COUNT objects from SRC to DST.  The source and destination do
600   not overlap.  */
601# ifndef YYCOPY
602#  if defined __GNUC__ && 1 < __GNUC__
603#   define YYCOPY(Dst, Src, Count) \
604      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
605#  else
606#   define YYCOPY(Dst, Src, Count)              \
607      do                                        \
608        {                                       \
609          YYSIZE_T yyi;                         \
610          for (yyi = 0; yyi < (Count); yyi++)   \
611            (Dst)[yyi] = (Src)[yyi];            \
612        }                                       \
613      while (0)
614#  endif
615# endif
616#endif /* !YYCOPY_NEEDED */
617
618/* YYFINAL -- State number of the termination state.  */
619#define YYFINAL  2
620/* YYLAST -- Last index in YYTABLE.  */
621#define YYLAST   4539
622
623/* YYNTOKENS -- Number of terminals.  */
624#define YYNTOKENS  203
625/* YYNNTS -- Number of nonterminals.  */
626#define YYNNTS  524
627/* YYNRULES -- Number of rules.  */
628#define YYNRULES  1070
629/* YYNSTATES -- Number of states.  */
630#define YYNSTATES  1734
631
632/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
633   by yylex, with out-of-bounds checking.  */
634#define YYUNDEFTOK  2
635#define YYMAXUTOK   441
636
637#define YYTRANSLATE(YYX)                                                \
638  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
639
640/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
641   as returned by yylex, without out-of-bounds checking.  */
642static const yytype_uint8 yytranslate[] =
643{
644       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
645     197,     2,     2,     2,     2,     2,     2,     2,     2,     2,
646       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
647       2,     2,     2,     2,     2,     2,     2,   199,     2,     2,
648     193,   194,    21,    19,     3,    20,     2,   198,     2,     2,
649       2,     2,     2,     2,     2,     2,     2,     2,     4,     2,
650     195,     5,   196,     2,     2,     2,     2,     2,     2,     2,
651       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
652       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
653       2,   201,     2,   202,     2,   200,     2,     2,     2,     2,
654       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
655       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
656       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
657       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
658       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
659       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
660       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
661       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
662       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
663       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
664       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
665       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
666       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
667       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
668       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
669       2,     2,     2,     2,     2,     2,     1,     2,     6,     7,
670       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
671      18,    22,    23,    24,    25,    26,    27,    28,    29,    30,
672      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
673      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
674      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
675      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
676      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
677      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
678      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
679     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
680     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
681     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
682     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
683     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
684     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
685     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
686     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
687     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
688     191,   192
689};
690
691#if YYDEBUG
692  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
693static const yytype_uint16 yyrline[] =
694{
695       0,   514,   514,   515,   517,   518,   519,   521,   523,   524,
696     525,   526,   529,   530,   531,   533,   534,   542,   560,   564,
697     565,   566,   570,   571,   584,   852,   853,  1104,  1105,  1106,
698    1107,  1108,  1110,  1111,  1115,  1116,  1117,  1118,  1119,  1120,
699    1121,  1122,  1123,  1124,  1125,  1126,  1127,  1128,  1129,  1130,
700    1131,  1132,  1133,  1134,  1135,  1137,  1138,  1139,  1140,  1143,
701    1144,  1147,  1148,  1149,  1153,  1164,  1165,  1166,  1166,  1167,
702    1167,  1169,  1170,  1170,  1179,  1191,  1192,  1195,  1196,  1199,
703    1200,  1203,  1204,  1205,  1206,  1207,  1208,  1209,  1211,  1258,
704    1259,  1260,  1261,  1262,  1263,  1264,  1266,  1269,  1270,  1271,
705    1272,  1274,  1275,  1285,  1286,  1338,  1341,  1342,  1367,  1368,
706    1372,  1373,  1386,  1387,  1388,  1389,  1390,  1391,  1392,  1393,
707    1394,  1395,  1396,  1397,  1398,  1401,  1402,  1406,  1409,  1410,
708    1414,  1415,  1419,  1420,  1423,  1424,  1428,  1432,  1433,  1436,
709    1437,  1441,  1442,  1446,  1447,  1448,  1449,  1450,  1451,  1452,
710    1453,  1454,  1459,  1460,  1461,  1462,  1463,  1471,  1472,  1473,
711    1474,  1475,  1476,  1477,  1478,  1479,  1480,  1481,  1482,  1483,
712    1505,  1506,  1507,  1508,  1509,  1510,  1511,  1512,  1513,  1514,
713    1515,  1516,  1520,  1523,  1528,  1529,  1533,  1534,  1535,  1536,
714    1538,  1542,  1561,  1562,  1566,  1567,  1571,  1572,  1576,  1580,
715    1581,  1582,  1593,  1593,  1595,  1596,  1601,  1601,  1603,  1603,
716    1605,  1605,  1607,  1607,  1609,  1609,  1611,  1611,  1616,  1617,
717    1623,  1625,  1627,  1634,  1635,  1640,  1641,  1646,  1647,  1663,
718    1664,  1669,  1670,  1677,  1683,  1684,  1685,  1689,  1690,  1691,
719    1694,  1695,  1700,  1701,  1706,  1707,  1708,  1709,  1710,  1714,
720    1716,  1718,  1719,  1723,  1725,  1730,  1731,  1732,  1736,  1737,
721    1741,  1741,  1746,  1747,  1750,  1751,  1754,  1755,  1758,  1759,
722    1763,  1766,  1767,  1770,  1774,  1775,  1778,  1779,  1783,  1784,
723    1788,  1792,  1795,  1796,  1797,  1800,  1801,  1805,  1806,  1807,
724    1807,  1808,  1811,  1812,  1816,  1839,  1840,  1844,  1845,  1848,
725    1849,  1853,  1854,  1855,  1859,  1864,  1866,  1869,  1870,  1874,
726    1875,  1879,  1880,  1883,  1884,  1888,  1889,  1893,  1894,  1895,
727    1899,  1901,  1916,  1920,  1924,  1928,  1929,  1934,  1935,  1939,
728    1944,  1946,  1951,  1955,  1956,  1955,  2023,  2024,  2027,  2028,
729    2032,  2033,  2037,  2038,  2040,  2040,  2042,  2044,  2044,  2046,
730    2047,  2049,  2051,  2053,  2055,  2060,  2062,  2067,  2101,  2104,
731    2107,  2108,  2112,  2118,  2124,  2133,  2137,  2139,  2144,  2145,
732    2145,  2150,  2152,  2154,  2156,  2158,  2162,  2168,  2177,  2179,
733    2184,  2189,  2193,  2199,  2208,  2210,  2215,  2221,  2230,  2235,
734    2258,  2259,  2278,  2279,  2283,  2284,  2288,  2292,  2294,  2296,
735    2302,  2301,  2320,  2321,  2325,  2327,  2332,  2333,  2338,  2337,
736    2352,  2353,  2356,  2357,  2361,  2371,  2373,  2379,  2381,  2386,
737    2387,  2391,  2397,  2404,  2406,  2411,  2412,  2416,  2420,  2425,
738    2427,  2429,  2431,  2432,  2433,  2434,  2435,  2439,  2440,  2456,
739    2457,  2458,  2459,  2460,  2461,  2462,  2468,  2476,  2481,  2483,
740    2481,  2528,  2528,  2537,  2537,  2550,  2551,  2550,  2570,  2572,
741    2577,  2594,  2595,  2594,  2602,  2603,  2606,  2607,  2610,  2611,
742    2615,  2617,  2618,  2622,  2626,  2630,  2632,  2631,  2643,  2644,
743    2648,  2651,  2652,  2656,  2657,  2661,  2664,  2665,  2667,  2668,
744    2672,  2676,  2679,  2680,  2684,  2684,  2687,  2688,  2692,  2693,
745    2694,  2699,  2700,  2699,  2709,  2710,  2718,  2724,  2732,  2733,
746    2736,  2738,  2737,  2747,  2749,  2757,  2763,  2763,  2772,  2773,
747    2774,  2775,  2784,  2787,  2800,  2803,  2807,  2811,  2814,  2818,
748    2821,  2824,  2828,  2829,  2831,  2846,  2851,  2856,  2857,  2862,
749    2864,  2864,  2876,  2880,  2885,  2890,  2892,  2899,  2900,  2902,
750    2924,  2926,  2928,  2930,  2932,  2934,  2936,  2937,  2939,  2941,
751    2945,  2947,  2949,  2951,  2953,  2956,  2970,  2974,  2975,  2974,
752    2983,  2984,  2988,  2989,  2993,  2994,  2998,  3002,  3006,  3007,
753    3011,  3015,  3016,  3019,  3020,  3024,  3025,  3029,  3032,  3033,
754    3037,  3041,  3045,  3046,  3045,  3051,  3052,  3055,  3056,  3060,
755    3061,  3065,  3066,  3075,  3085,  3086,  3087,  3088,  3093,  3098,
756    3099,  3103,  3104,  3111,  3112,  3114,  3116,  3117,  3122,  3126,
757    3128,  3132,  3134,  3139,  3140,  3145,  3148,  3149,  3154,  3155,
758    3156,  3157,  3158,  3159,  3160,  3161,  3162,  3164,  3165,  3167,
759    3172,  3173,  3179,  3180,  3186,  3187,  3192,  3193,  3198,  3202,
760    3206,  3210,  3211,  3215,  3218,  3222,  3226,  3230,  3231,  3234,
761    3238,  3245,  3249,  3253,  3256,  3260,  3266,  3267,  3279,  3280,
762    3281,  3289,  3290,  3294,  3295,  3299,  3300,  3304,  3308,  3312,
763    3315,  3324,  3328,  3329,  3330,  3334,  3338,  3341,  3342,  3345,
764    3346,  3349,  3350,  3354,  3358,  3359,  3360,  3364,  3368,  3372,
765    3373,  3377,  3378,  3383,  3384,  3388,  3392,  3395,  3396,  3401,
766    3402,  3406,  3411,  3412,  3423,  3424,  3425,  3426,  3429,  3430,
767    3431,  3432,  3436,  3437,  3438,  3439,  3444,  3445,  3446,  3447,
768    3451,  3455,  3464,  3465,  3469,  3470,  3481,  3482,  3488,  3498,
769    3503,  3504,  3505,  3506,  3507,  3508,  3509,  3510,  3511,  3512,
770    3513,  3514,  3515,  3516,  3517,  3518,  3519,  3529,  3530,  3533,
771    3534,  3545,  3550,  3553,  3554,  3558,  3562,  3565,  3566,  3567,
772    3570,  3573,  3574,  3575,  3578,  3582,  3583,  3584,  3588,  3589,
773    3593,  3594,  3598,  3599,  3603,  3607,  3610,  3611,  3612,  3615,
774    3619,  3619,  3620,  3620,  3624,  3625,  3629,  3629,  3630,  3630,
775    3635,  3635,  3636,  3640,  3641,  3646,  3647,  3648,  3649,  3653,
776    3657,  3658,  3662,  3666,  3670,  3674,  3675,  3679,  3680,  3684,
777    3685,  3686,  3690,  3694,  3698,  3698,  3698,  3701,  3702,  3706,
778    3707,  3708,  3709,  3710,  3711,  3712,  3713,  3714,  3715,  3716,
779    3720,  3724,  3728,  3728,  3732,  3733,  3737,  3738,  3739,  3740,
780    3741,  3746,  3745,  3751,  3750,  3755,  3756,  3761,  3760,  3766,
781    3765,  3773,  3774,  3776,  3777,  3780,  3784,  3785,  3786,  3787,
782    3788,  3789,  3790,  3791,  3792,  3793,  3794,  3798,  3799,  3800,
783    3803,  3804,  3807,  3808,  3812,  3813,  3817,  3818,  3822,  3825,
784    3826,  3836,  3840,  3841,  3845,  3846,  3850,  3851,  3855,  3856,
785    3857,  3858,  3859,  3863,  3864,  3868,  3869,  3873,  3874,  3875,
786    3876,  3877,  3883,  3882,  3886,  3885,  3890,  3894,  3895,  3899,
787    3900,  3901,  3902,  3903,  3904,  3905,  3906,  3907,  3908,  3909,
788    3913,  3917,  3917,  3920,  3921,  3926,  3925,  3946,  3945,  3970,
789    3971,  3974,  3975,  3978,  3981,  3982,  3985,  3986,  3989,  3990,
790    3993,  3994,  3998,  4003,  4002,  4041,  4040,  4092,  4093,  4094,
791    4098,  4099,  4104,  4107,  4108,  4111,  4112,  4117,  4116,  4130,
792    4131,  4130,  4142,  4143,  4145,  4146,  4149,  4153,  4156,  4162,
793    4166,  4175,  4185,  4187,  4196,  4204,  4212,  4220,  4224,  4228,
794    4229,  4232,  4233,  4236,  4240,  4244,  4245,  4248,  4252,  4253,
795    4253,  4260,  4259,  4273,  4272,  4285,  4286,  4285,  4300,  4300,
796    4324,  4325,  4326,  4330,  4331,  4336,  4344,  4355,  4356,  4366,
797    4369,  4370,  4374,  4375,  4379,  4381,  4383,  4388,  4393,  4394,
798    4392,  4418,  4443,  4448,  4449,  4453,  4470,  4469,  4474,  4475,
799    4479,  4484,  4483,  4498,  4515,  4520,  4564,  4565,  4569,  4570,
800    4570,  4575,  4576,  4581,  4593,  4607,  4609,  4614,  4615,  4620,
801    4619,  4655,  4656,  4763,  4764,  4765,  4766,  4767,  4784,  4877,
802    4878
803};
804#endif
805
806#if YYDEBUG || YYERROR_VERBOSE || 0
807/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
808   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
809static const char *const yytname[] =
810{
811  "$end", "error", "$undefined", "','", "':'", "'='", "TOK_EQV",
812  "TOK_NEQV", "TOK_OR", "TOK_XOR", "TOK_AND", "TOK_NOT", "TOK_LT",
813  "TOK_GT", "TOK_LE", "TOK_GE", "TOK_EQ", "TOK_NE", "TOK_DSLASH", "'+'",
814  "'-'", "'*'", "TOK_SLASH", "TOK_DASTER", "TOK_SEMICOLON",
815  "TOK_PARAMETER", "TOK_RESULT", "TOK_ONLY", "TOK_INCLUDE",
816  "TOK_SUBROUTINE", "TOK_PROGRAM", "TOK_FUNCTION", "TOK_LABEL_FORMAT",
817  "TOK_LABEL_CONTINUE", "TOK_LABEL_END_DO", "TOK_MAX", "TOK_TANH",
818  "TOK_COMMENT", "TOK_WHERE", "TOK_ELSEWHEREPAR", "TOK_ELSEWHERE",
819  "TOK_ENDWHERE", "TOK_MAXVAL", "TOK_TRIM", "TOK_NULL_PTR", "TOK_SUM",
820  "TOK_SQRT", "TOK_CASE", "TOK_SELECTCASE", "TOK_FILE", "TOK_REC",
821  "TOK_NAME_EQ", "TOK_IOLENGTH", "TOK_ACCESS", "TOK_ACTION", "TOK_FORM",
822  "TOK_RECL", "TOK_STATUS", "TOK_UNIT", "TOK_OPENED", "TOK_FMT", "TOK_NML",
823  "TOK_END", "TOK_EOR", "TOK_EOF", "TOK_ERR", "TOK_POSITION", "TOK_IOSTAT",
824  "TOK_IOMSG", "TOK_EXIST", "TOK_MIN", "TOK_FLOAT", "TOK_EXP", "TOK_LEN",
825  "TOK_COS", "TOK_COSH", "TOK_ACOS", "TOK_NINT", "TOK_CYCLE", "TOK_SIN",
826  "TOK_SINH", "TOK_ASIN", "TOK_EQUIVALENCE", "TOK_BACKSPACE", "TOK_LOG",
827  "TOK_TAN", "TOK_ATAN", "TOK_RECURSIVE", "TOK_ABS", "TOK_MOD", "TOK_SIGN",
828  "TOK_MINLOC", "TOK_MAXLOC", "TOK_EXIT", "TOK_KIND", "TOK_MOLD",
829  "TOK_SOURCE", "TOK_ERRMSG", "TOK_MINVAL", "TOK_PUBLIC", "TOK_PRIVATE",
830  "TOK_ALLOCATABLE", "TOK_RETURN", "TOK_THEN", "TOK_ELSEIF", "TOK_ELSE",
831  "TOK_ENDIF", "TOK_PRINT", "TOK_PLAINGOTO", "TOK_LOGICALIF",
832  "TOK_LOGICALIF_PAR", "TOK_PLAINDO", "TOK_CONTAINS", "TOK_ENDDO",
833  "TOK_MODULE", "TOK_ENDMODULE", "TOK_WHILE", "TOK_CONCURRENT",
834  "TOK_ALLOCATE", "TOK_OPEN", "TOK_CLOSE", "TOK_INQUIRE", "TOK_WRITE_PAR",
835  "TOK_WRITE", "TOK_FLUSH", "TOK_READ_PAR", "TOK_READ", "TOK_REWIND",
836  "TOK_DEALLOCATE", "TOK_NULLIFY", "TOK_DIMENSION", "TOK_ENDSELECT",
837  "TOK_EXTERNAL", "TOK_INTENT", "TOK_INTRINSIC", "TOK_NAMELIST",
838  "TOK_DEFAULT", "TOK_OPTIONAL", "TOK_POINTER", "TOK_CONTINUE", "TOK_SAVE",
839  "TOK_TARGET", "TOK_IMPLICIT", "TOK_NONE", "TOK_CALL", "TOK_STAT",
840  "TOK_POINT_TO", "TOK_COMMON", "TOK_GLOBAL", "TOK_LEFTAB", "TOK_RIGHTAB",
841  "TOK_PAUSE", "TOK_PROCEDURE", "TOK_STOP", "TOK_FOURDOTS", "TOK_HEXA",
842  "TOK_ASSIGNTYPE", "TOK_OUT", "TOK_INOUT", "TOK_IN", "TOK_USE",
843  "TOK_EQUALEQUAL", "TOK_SLASHEQUAL", "TOK_INFEQUAL", "TOK_SUPEQUAL",
844  "TOK_TRUE", "TOK_FALSE", "TOK_LABEL", "TOK_LABEL_DJVIEW",
845  "TOK_PLAINDO_LABEL_DJVIEW", "TOK_PLAINDO_LABEL", "TOK_TYPE",
846  "TOK_TYPEPAR", "TOK_ENDTYPE", "TOK_COMMACOMPLEX", "TOK_REAL",
847  "TOK_INTEGER", "TOK_LOGICAL", "TOK_DOUBLEPRECISION", "TOK_ENDSUBROUTINE",
848  "TOK_ENDFUNCTION", "TOK_ENDPROGRAM", "TOK_ENDUNIT", "TOK_CHARACTER",
849  "TOK_CHAR_CONSTANT", "TOK_CHAR_CUT", "TOK_DATA", "TOK_CHAR_MESSAGE",
850  "TOK_CSTREAL", "TOK_COMPLEX", "TOK_DOUBLECOMPLEX", "TOK_NAME",
851  "TOK_CSTINT", "'('", "')'", "'<'", "'>'", "'\\n'", "'/'", "'%'", "'_'",
852  "'['", "']'", "$accept", "input", "line", "line-break",
853  "suite_line_list", "suite_line", "fin_line", "program-unit",
854  "external-subprogram", "filename", "opt_comma", "uexpr", "signe",
855  "operation", "after_slash", "after_equal", "lhs", "beforefunctionuse",
856  "array_ele_substring_func_ref", "$@4", "$@5", "begin_array", "$@6",
857  "structure_component", "funarglist", "funargs", "funarg", "triplet",
858  "ident", "simple_const", "string_constant", "opt_substring", "opt_expr",
859  "specification-part", "opt-use-stmt-list",
860  "opt-declaration-construct-list", "declaration-construct-list",
861  "declaration-construct", "opt-execution-part", "execution-part",
862  "opt-execution-part-construct-list", "execution-part-construct-list",
863  "execution-part-construct", "opt-internal-subprogram-part",
864  "internal-subprogram-part", "opt-internal-subprogram",
865  "internal-subprogram-list", "internal-subprogram",
866  "other-specification-stmt", "executable-construct", "action-stmt",
867  "keyword", "scalar-constant", "constant", "literal-constant",
868  "named-constant", "opt-label", "label", "opt-label-djview",
869  "label-djview", "type-param-value", "declaration-type-spec", "$@7",
870  "intrinsic-type-spec", "$@8", "$@9", "$@10", "$@11", "$@12", "$@13",
871  "opt-kind-selector", "kind-selector", "signed-int-literal-constant",
872  "int-literal-constant", "kind-param", "signed-real-literal-constant",
873  "real-literal-constant", "complex-literal-constant", "real-part",
874  "imag-part", "opt-char_length-star", "opt-char-selector",
875  "char-selector", "length-selector", "char-length",
876  "char-literal-constant", "logical-literal-constant", "derived-type-def",
877  "$@14", "derived-type-stmt", "opt-type-attr-spec-list-comma-fourdots",
878  "opt-type-attr-spec-list-comma", "type-attr-spec-list", "type-attr-spec",
879  "type-param-name-list", "type-param-name", "end-type-stmt",
880  "opt-component-part", "component-part", "component-def-stmt",
881  "data-component-def-stmt", "opt-component-attr-spec-list-comma-2points",
882  "component-attr-spec-list", "component-attr-spec", "$@15",
883  "component-decl-list", "component-decl", "opt-component-array-spec",
884  "component-array-spec", "opt-component-initialization",
885  "component-initialization", "initial-data-target", "derived-type-spec",
886  "type-param-spec-list", "type-param-spec", "structure-constructor",
887  "component-spec-list", "component-spec", "component-data-source",
888  "array-constructor", "ac-spec", "lbracket", "rbracket", "ac-value-list",
889  "ac-value", "ac-implied-do", "ac-implied-do-control", "ac-do-variable",
890  "type-declaration-stmt", "$@16", "$@17", "opt-attr-spec-construct",
891  "opt-attr-spec-comma-list", "attr-spec-comma-list", "attr-spec", "$@18",
892  "$@19", "entity-decl-list", "entity-decl", "object-name",
893  "object-name-noident", "opt-initialization", "initialization",
894  "null-init", "access-spec", "opt-array-spec-par", "$@20", "array-spec",
895  "explicit-shape-spec-list", "explicit-shape-spec", "lower-bound",
896  "upper-bound", "assumed-shape-spec-list", "assumed-shape-spec",
897  "deferred-shape-spec-list", "deferred-shape-spec", "assumed-size-spec",
898  "opt-explicit-shape-spec-list-comma", "opt-lower-bound-2points",
899  "implied-shape-spec-list", "implied-shape-spec", "intent-spec",
900  "access-stmt", "$@21", "opt-access-id-list", "access-id-list",
901  "access-id", "data-stmt", "$@22", "opt-data-stmt-set-nlist",
902  "data-stmt-set-nlist", "data-stmt-set", "data-stmt-object-list",
903  "data-stmt-value-list", "data-stmt-object", "data-implied-do",
904  "data-i-do-object-list", "data-i-do-object", "data-i-do-variable",
905  "data-stmt-value", "opt-data-stmt-star", "data-stmt-constant",
906  "scalar-constant-subobject", "constant-subobject", "dimension-stmt",
907  "$@23", "$@24", "array-name-spec-list", "$@25", "$@26", "parameter-stmt",
908  "$@27", "$@28", "named-constant-def-list", "named-constant-def",
909  "save-stmt", "$@29", "$@30", "opt-TOK_FOURDOTS", "opt-saved-entity-list",
910  "saved-entity-list", "saved-entity", "proc-pointer-name",
911  "get_my_position", "implicit-stmt", "$@31", "implicit-spec-list",
912  "implicit-spec", "letter-spec-list", "letter-spec", "namelist-stmt",
913  "opt-namelist-other", "namelist-group-object-list",
914  "namelist-group-object", "equivalence-stmt", "equivalence-set-list",
915  "equivalence-set", "$@32", "equivalence-object-list",
916  "equivalence-object", "common-stmt", "$@33", "$@34",
917  "opt-common-block-name", "common-block-name", "opt-comma",
918  "opt-common-block-list", "$@35", "common-block-object-list",
919  "common-block-object", "$@36", "designator", "scalar-variable",
920  "variable", "variable-name", "scalar-logical-variable",
921  "logical-variable", "char-variable", "scalar-default-char-variable",
922  "default-char-variable", "scalar-int-variable", "int-variable",
923  "substring", "substring-range", "data-ref", "opt-part-ref", "part-ref",
924  "$@37", "scalar-structure-component", "structure-component",
925  "array-element", "array-section", "section-subscript-list",
926  "section-subscript", "section_subscript_ambiguous", "vector-subscript",
927  "allocate-stmt", "$@38", "$@39", "opt-alloc-opt-list-comma",
928  "alloc-opt-list", "alloc-opt", "stat-variable", "errmsg-variable",
929  "allocation-list", "allocation", "allocate-object",
930  "opt-allocate-shape-spec-list-par", "allocate-shape-spec-list",
931  "allocate-shape-spec", "opt-lower-bound-expr", "lower-bound-expr",
932  "upper-bound-expr", "deallocate-stmt", "$@40", "$@41",
933  "allocate-object-list", "opt-dealloc-opt-list-comma", "dealloc-opt-list",
934  "dealloc-opt", "primary", "level-1-expr", "mult-operand", "add-operand",
935  "level-2-expr", "power-op", "mult-op", "add-op", "level-3-expr",
936  "concat-op", "level-4-expr", "rel-op", "and-operand", "or-operand",
937  "equiv-operand", "level-5-expr", "not-op", "and-op", "or-op", "equiv-op",
938  "expr", "scalar-default-char-expr", "default-char-expr", "int-expr",
939  "opt-scalar-int-expr", "scalar-int-expr", "specification-expr",
940  "constant-expr", "scalar-default-char-constant-expr",
941  "default-char-constant-expr", "scalar-int-constant-expr",
942  "int-constant-expr", "assignment-stmt", "pointer-assignment-stmt",
943  "opt-bounds-spec-list-par", "bounds-spec-list", "bounds-remapping-list",
944  "bounds-spec", "bounds-remapping", "data-target",
945  "procedure-component-name", "proc-component-ref", "proc-target",
946  "where-stmt", "where-construct", "opt-where-body-construct",
947  "opt-masked-elsewhere-construct", "opt-elsewhere-construct",
948  "where-construct-stmt", "where-body-construct", "where-assignment-stmt",
949  "mask-expr", "masked-elsewhere-stmt", "elsewhere-stmt", "end-where-stmt",
950  "forall-header", "block", "opt-execution-part-construct", "do-construct",
951  "block-do-construct", "label-do-stmt", "label-do-stmt-djview",
952  "nonlabel-do-stmt", "loop-control", "do-variable", "do-block", "end-do",
953  "end-do-stmt", "nonblock-do-construct", "action-term-do-construct",
954  "do-term-action-stmt", "do-term-action-stmt-special",
955  "outer-shared-do-construct", "label-do-stmt-djview-do-block-list",
956  "inner-shared-do-construct", "do-term-shared-stmt",
957  "opt-do-construct-name", "cycle-stmt", "if-construct",
958  "opt-else-if-stmt-block", "else-if-stmt-block", "opt-else-stmt-block",
959  "else-stmt-block", "if-then-stmt", "else-if-stmt", "else-stmt",
960  "end-if-stmt", "if-stmt", "case-construct", "opt_case-stmt-block",
961  "case-stmt-block", "select-case-stmt", "$@42", "$@43", "case-stmt",
962  "end-select-stmt", "$@44", "$@45", "case-selector", "$@46",
963  "case-value-range-list", "case-value-range", "case-value", "exit-stmt",
964  "goto-stmt", "arithmetic-if-stmt", "continue-stmt", "stop-stmt",
965  "stop-code", "io-unit", "file-unit-number", "internal-file-variable",
966  "open-stmt", "$@47", "$@48", "connect-spec-list", "connect-spec",
967  "file-name-expr", "iomsg-variable", "close-stmt", "$@49",
968  "close-spec-list", "close-spec", "read-stmt", "$@50", "$@51",
969  "write-stmt", "$@52", "$@53", "print-stmt", "io-control-spec-list",
970  "namelist-group-name", "io-control-spec", "format", "input-item-list",
971  "input-item", "output-item-list", "output-item", "io-implied-do",
972  "io-implied-do-object-list", "io-implied-do-object",
973  "io-implied-do-control", "rewind-stmt", "position-spec-list",
974  "position-spec", "flush-stmt", "flush-spec-list", "flush-spec",
975  "inquire-stmt", "$@54", "$@55", "set_in_inquire", "inquire-spec-list",
976  "inquire-spec", "format-stmt", "module", "$@56",
977  "opt-module-subprogram-part", "module-stmt", "$@57", "end-module-stmt",
978  "$@58", "opt-tok-module", "opt-ident", "module-subprogram-part",
979  "opt-module-subprogram-list", "module-subprogram-list",
980  "module-subprogram", "use-stmt-list", "save_olduse", "use-stmt", "$@59",
981  "$@60", "opt-module-nature-2points", "opt-only-list", "main-program",
982  "opt-specification-part", "program-stmt", "$@61", "end-program-stmt",
983  "$@62", "$@63", "opt-tok-program", "opt-tok-name", "module-nature",
984  "opt-rename-list", "rename-list", "rename", "only-list", "only",
985  "only-use-name", "generic-spec", "external-stmt", "external-name-list",
986  "external-name", "intrinsic-stmt", "intrinsic-procedure-name-list",
987  "intrinsic-procedure-name", "function-reference", "$@64", "call-stmt",
988  "$@65", "$@66", "$@67", "$@68", "before-call-stmt", "$@69",
989  "procedure-designator", "actual-arg-spec-list", "actual-arg-spec",
990  "actual-arg", "opt-prefix", "prefix", "prefix-spec",
991  "function-subprogram", "function-stmt", "$@70", "$@71", "function-name",
992  "dummy-arg-name", "opt-suffix", "suffix", "end-function-stmt", "$@72",
993  "opt-tok-function", "subroutine-subprogram", "subroutine-stmt", "$@73",
994  "subroutine-name", "end-subroutine-stmt", "close_subroutine",
995  "opt-tok-subroutine", "opt-dummy-arg-list-par", "$@74",
996  "opt-dummy-arg-list", "dummy-arg-list", "dummy-arg", "return-stmt",
997  "contains-stmt", "$@75", "opt_name", "after_rewind",
998  "declare_after_percent", "pointer_name_list", YY_NULLPTR
999};
1000#endif
1001
1002# ifdef YYPRINT
1003/* YYTOKNUM[NUM] -- (External) token number corresponding to the
1004   (internal) symbol number NUM (which must be that of a token).  */
1005static const yytype_uint16 yytoknum[] =
1006{
1007       0,   256,   257,    44,    58,    61,   258,   259,   260,   261,
1008     262,   263,   264,   265,   266,   267,   268,   269,   270,    43,
1009      45,    42,   271,   272,   273,   274,   275,   276,   277,   278,
1010     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
1011     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
1012     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
1013     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
1014     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
1015     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
1016     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
1017     349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
1018     359,   360,   361,   362,   363,   364,   365,   366,   367,   368,
1019     369,   370,   371,   372,   373,   374,   375,   376,   377,   378,
1020     379,   380,   381,   382,   383,   384,   385,   386,   387,   388,
1021     389,   390,   391,   392,   393,   394,   395,   396,   397,   398,
1022     399,   400,   401,   402,   403,   404,   405,   406,   407,   408,
1023     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
1024     419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
1025     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
1026     439,   440,   441,    40,    41,    60,    62,    10,    47,    37,
1027      95,    91,    93
1028};
1029# endif
1030
1031#define YYPACT_NINF -1435
1032
1033#define yypact_value_is_default(Yystate) \
1034  (!!((Yystate) == (-1435)))
1035
1036#define YYTABLE_NINF -1022
1037
1038#define yytable_value_is_error(Yytable_value) \
1039  0
1040
1041  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1042     STATE-NUM.  */
1043static const yytype_int16 yypact[] =
1044{
1045   -1435,  1099, -1435, -1435, -1435,    46,   134, -1435, -1435, -1435,
1046     164,  1017, -1435, -1435,   130,   230, -1435, -1435, -1435, -1435,
1047     585, -1435,   200, -1435,   200,   488,   798, -1435, -1435,   200,
1048   -1435,   200, -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435,
1049   -1435, -1435, -1435,    77,   242,   305, -1435, -1435, -1435,   748,
1050   -1435, -1435,  3966,   377,   200, -1435,   450,  4246,   232,   353,
1051   -1435, -1435,  4246,  4246, -1435,   133,   133,    79,    79,    79,
1052      79,    93,    79,  1456, -1435, -1435, -1435, -1435, -1435, -1435,
1053     133,   379, -1435, -1435,    94,    78,   429,   576, -1435, -1435,
1054      94,   106, -1435, -1435,   919, -1435,   607, -1435,   444, -1435,
1055    3966, -1435, -1435,   511,   705,   473, -1435, -1435, -1435,   523,
1056     356, -1435, -1435, -1435,   573, -1435, -1435,   568,   569, -1435,
1057   -1435, -1435, -1435,   -42,   724, -1435,   521, -1435, -1435, -1435,
1058   -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435,
1059   -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435,
1060     622, -1435, -1435, -1435,   483,   557,   578,  1918,   337,    66,
1061     -35,   593,   596, -1435,  3686,  3710,   609,   613,  3445,   818,
1062     719, -1435,  4145, -1435,   995, -1435, -1435, -1435, -1435, -1435,
1063   -1435, -1435, -1435, -1435, -1435, -1435, -1435,   794, -1435, -1435,
1064   -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435,
1065   -1435, -1435,   643, -1435, -1435,   666, -1435,   668,   719,   719,
1066     130,   130,   654,  3492, -1435, -1435, -1435, -1435, -1435,   549,
1067     894, -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435,
1068   -1435,  3734, -1435, -1435, -1435,   663,   669,  3764, -1435,   214,
1069     874, -1435, -1435, -1435,   713, -1435, -1435,   473, -1435,    83,
1070   -1435, -1435,  3734, -1435, -1435,   870, -1435,   733,    88,  1349,
1071     704, -1435, -1435,   885,   896,   760,  2264, -1435, -1435, -1435,
1072   -1435,   716,   739,   130, -1435,   113, -1435, -1435,   130,   434,
1073     133,   706, -1435,   114, -1435, -1435,   744,   753,   604,   130,
1074     133,   695,   762,   448,   599,   122,   646, -1435, -1435, -1435,
1075   -1435,   369, -1435, -1435,  3445,  3021,  3764,   133,   915,   934,
1076    3764,   710,   107, -1435,   766,   429,   429,   433,  3812,  3764,
1077     801,  3764,  3764,   767, -1435,  4067,   537,   791,   857,   226,
1078   -1435, -1435, -1435,   709, -1435, -1435, -1435,  3764,  3764,   294,
1079     444, -1435, -1435,   133,   133,   130,   133, -1435, -1435, -1435,
1080   -1435, -1435,   782,  3204, -1435,   133,  3352,   133, -1435,   787,
1081     130, -1435, -1435, -1435, -1435, -1435, -1435, -1435,   133,   393,
1082     133, -1435, -1435, -1435,  4168, -1435, -1435, -1435,  3764,   796,
1083    2939,  2939,  3021, -1435,   653,   229,   407, -1435, -1435,   788,
1084     133, -1435, -1435, -1435, -1435, -1435, -1435,   988,   806,  1456,
1085   -1435, -1435,   996,  1000,   100,  3734,   859,  1004, -1435, -1435,
1086   -1435,   726,   726,   506,   836, -1435,   837,   839,  1349,   821,
1087    1456,  1456, -1435,   817, -1435,  1349, -1435, -1435,  1349, -1435,
1088   -1435,  1349,   846,   733, -1435, -1435, -1435, -1435, -1435, -1435,
1089   -1435, -1435, -1435, -1435, -1435, -1435, -1435,  2264,  2264, -1435,
1090    3764, -1435,  3764, -1435, -1435,  3764, -1435,   833,   842,   905,
1091     379,   130,   841, -1435, -1435,  1025,   130,   114,   706,   130,
1092   -1435,   124, -1435,  1013, -1435,   847,   848, -1435,   130,  1034,
1093   -1435, -1435,   133, -1435,   851, -1435,  1043, -1435, -1435, -1435,
1094   -1435, -1435, -1435, -1435,   125,   919,   919,  1106,  3764,    94,
1095      94,  1036,   130,   133, -1435,   112, -1435, -1435, -1435,   131,
1096     854,   130,   940,  3764,   858,  1047, -1435,   260,   880,   750,
1097   -1435, -1435,   891,   875,   911,  1064,   133, -1435,  1070, -1435,
1098   -1435,   884,   237, -1435,   887,   142, -1435, -1435,    96,   878,
1099   -1435, -1435, -1435, -1435,   133,  1079, -1435,   108,   109, -1435,
1100   -1435,   905,   133,   890,   787, -1435, -1435,    94,  1084,   980,
1101    1222, -1435, -1435, -1435, -1435,   386, -1435,   374, -1435,   914,
1102     822, -1435, -1435,   974, -1435,   923,   133,   937, -1435, -1435,
1103   -1435,   922,   930,   130,   130,   130,   787,  2868,  2533,  3764,
1104      66,   905,   905,   821, -1435,   110, -1435,   130,  3764,    66,
1105     905,   905, -1435,   119, -1435,   130,   787, -1435,   121,   130,
1106     939,   406, -1435,   951, -1435,   941, -1435, -1435,  1132,  3503,
1107    3021,   947,    66,    66,    66,   905, -1435, -1435, -1435, -1435,
1108   -1435, -1435,   126, -1435, -1435, -1435,   129,   150,    48,   905,
1109   -1435, -1435, -1435,  1104, -1435, -1435, -1435, -1435,   403,   954,
1110   -1435, -1435, -1435, -1435,  3764,   130,   222,   133,   222,   964,
1111   -1435,   966, -1435,  3764, -1435,   955,  1456,  3764,  3764, -1435,
1112    1148,   821, -1435,  3734, -1435, -1435, -1435, -1435,   233,   979,
1113   -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435,   733,    88,
1114    1136, -1435,   885,   896, -1435,  3764,  1151,   137, -1435,   257,
1115    1154, -1435, -1435,   968, -1435, -1435,  3764, -1435,  3764,   130,
1116   -1435,   744,   130,   787,  1140,   973,  1165, -1435,   695,   130,
1117     978,   599,   133,   919, -1435, -1435,   983, -1435,  1157, -1435,
1118   -1435,   225, -1435,   986, -1435, -1435,   679, -1435,  1157, -1435,
1119    1159,   501, -1435,   993,   130,   133,   130,   133,  1570,    66,
1120    3764,   219,   139, -1435, -1435,   217, -1435,   130,  3843,   130,
1121    1069,  3764,   133, -1435,  3764,   558, -1435,   787,   410, -1435,
1122   -1435, -1435, -1435,   989, -1435,   998, -1435, -1435, -1435, -1435,
1123   -1435, -1435, -1435, -1435,  1185, -1435,  1005, -1435,   891,   130,
1124     766,  1011,  1204, -1435, -1435, -1435,  1206, -1435, -1435, -1435,
1125     133,  1019,   523,   130,  1021,   130,  3764,  3764, -1435,  3764,
1126    1072, -1435,   133,   130, -1435, -1435,   130,   133,  1046,   447,
1127    1026,  3896,  1029,  1203,   905, -1435, -1435, -1435, -1435, -1435,
1128   -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435,
1129   -1435, -1435,   791, -1435, -1435,  1086,  3764,   472, -1435,   728,
1130   -1435, -1435, -1435, -1435,  1080,  1223,   130,  1128,   449, -1435,
1131   -1435, -1435, -1435,  1242, -1435,  1053,  3764,  3764,  3764,  3764,
1132    3764,  1243,  3764,    66,  3764,   905, -1435,   140, -1435,  3764,
1133    1244,   905,   905,   905,   905,  3764,   905,    66,   905,   905,
1134   -1435,   149, -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435,
1135   -1435, -1435,  3204,   133, -1435, -1435, -1435, -1435,  3352,   133,
1136   -1435,  1250,   787, -1435,  3764, -1435,   797, -1435, -1435, -1435,
1137    1217,  4269,  3392,  3764, -1435, -1435, -1435, -1435, -1435, -1435,
1138   -1435, -1435, -1435,  2939,  3843,  1048,  1048,   130, -1435, -1435,
1139    3764,   888, -1435,  1607,   133,   130, -1435,   133,   133,   214,
1140    1249, -1435, -1435,   162, -1435, -1435, -1435, -1435, -1435,  1061,
1141    1253, -1435,   130,  1063,  1227,  1233,  1071, -1435,   165,   172,
1142    1073,  3734, -1435, -1435, -1435, -1435, -1435,  1074,   176,  3764,
1143     842, -1435,   905,  3764,  1075,  1260, -1435, -1435,  1261, -1435,
1144   -1435, -1435, -1435,   848,   642, -1435, -1435,   184, -1435,   223,
1145   -1435,  1265, -1435,   130, -1435,  1456,   486, -1435, -1435,  3576,
1146    1106, -1435, -1435, -1435, -1435,  1163,   130,   130,  3764,  1268,
1147   -1435, -1435,  3624,  1036, -1435,  1679,  3764, -1435,  3843, -1435,
1148     167, -1435, -1435,   133,  1090,   130, -1435, -1435,  1085, -1435,
1149     275, -1435, -1435,  1087,   170, -1435,   133,   130, -1435, -1435,
1150     875,   133, -1435,  1252, -1435, -1435, -1435,  1094,   133,   133,
1151     237,   130,  1266,   187, -1435, -1435, -1435, -1435, -1435, -1435,
1152    1283, -1435,  1285, -1435,   905,   130,   130,    94,   133,   130,
1153    3764,  2816,  2752,  3174, -1435,   787,  3764,  4347, -1435,   791,
1154    1098,   133,   130,   518, -1435, -1435, -1435, -1435,   191, -1435,
1155   -1435,  1108,   130, -1435,   133,   241,  1101,  3764, -1435, -1435,
1156   -1435, -1435, -1435, -1435, -1435, -1435,  3764, -1435, -1435, -1435,
1157   -1435,  2868, -1435, -1435,   905,  1109, -1435, -1435, -1435, -1435,
1158   -1435, -1435, -1435, -1435, -1435, -1435,  3102, -1435, -1435,   130,
1159   -1435,   130,   255,  1112, -1435,  1113, -1435, -1435,  1111, -1435,
1160    1045,   224,  1303,  3764,    66,   905, -1435,   195, -1435, -1435,
1161   -1435,   133,  1306,  3843, -1435,   133,  1308, -1435, -1435,   177,
1162    1118,   540,   555, -1435, -1435,   653,  3764, -1435,   196, -1435,
1163    1311,   130,   133,   130,   130,  3764,  3764, -1435, -1435,   222,
1164    1290, -1435,  1108, -1435,  1108, -1435,  1224, -1435,  1246, -1435,
1165   -1435,   223,  1126,  1316, -1435, -1435, -1435, -1435, -1435, -1435,
1166     133,   197, -1435,  1130, -1435,  3764,   787,   178,  1782, -1435,
1167     133,   604,   978,   133,  3764,   233,   455, -1435, -1435, -1435,
1168   -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435,  1321,
1169     205, -1435, -1435,  1133, -1435, -1435, -1435, -1435,   133, -1435,
1170    3764,    66, -1435, -1435,  3764,  1323, -1435,   821, -1435,  1328,
1171   -1435,  3843,   130,   130,  1230, -1435,   558, -1435,  1870,  1252,
1172     787,   130,   130,  1782,   749, -1435,   130,  1782,   549,   251,
1173    1782,  1143,   130,   130, -1435,  1161,  1019, -1435, -1435,  3764,
1174     133,   130,   133,   130,  1160,  3764, -1435, -1435, -1435, -1435,
1175   -1435,   -68,   405,   746,   789,   877,   513,   539,  1162,  3764,
1176    1149, -1435,   905,  1164,   482,  1167,  1012,  1804,   208,  1168,
1177   -1435,  1258,   130,   133,   130,  1359,  1207,  1361, -1435,   133,
1178   -1435, -1435,   130,   905,  1360,  1366, -1435, -1435, -1435,   209,
1179   -1435,  3764,  1367, -1435, -1435,   133, -1435,  3843, -1435,   133,
1180     905,  1365, -1435,  1369, -1435, -1435, -1435, -1435, -1435,  3764,
1181      66,  3764, -1435, -1435, -1435,  3392,   133,   130,   133,   130,
1182    1048,   133,   130,   560,   133,   130,   133,   130,   653, -1435,
1183    1607, -1435,  3764,   130,   444, -1435, -1435,   133, -1435,  1181,
1184   -1435, -1435, -1435, -1435,  1370,  1372, -1435,  3764,   130,   905,
1185   -1435, -1435,  1375, -1435,   130,  1357, -1435,  1187,  1381, -1435,
1186    1382, -1435,  1384, -1435,  1387, -1435, -1435,  3764,  1364,  1388,
1187   -1435, -1435,  1389,   130, -1435, -1435,   130,  1391, -1435, -1435,
1188    3812,  3812, -1435,   130, -1435, -1435, -1435,  3764,  3843, -1435,
1189     133,  1870, -1435, -1435,  1198,  1392,  1394,  1387,   252, -1435,
1190    1202, -1435, -1435, -1435,  1208,  1209, -1435,  3764,   623, -1435,
1191   -1435,  1214, -1435, -1435, -1435,   130,   130,   771, -1435, -1435,
1192   -1435, -1435, -1435, -1435,   968, -1435,   263, -1435, -1435,  1218,
1193   -1435, -1435,  1733,  3764,  3764,  3764,  3764,  3764,  3764,  3764,
1194    3764,  3764,  3764,  3764,  3764,  3764,  3764,  2233,  3764,  2376,
1195    2487, -1435, -1435,  4347,   567,   130,  1210,  1221,  1226,   130,
1196     133, -1435, -1435,   905,   120,   133,  3764, -1435, -1435, -1435,
1197     130,  1306,   130, -1435,   905,   371,   133,   133,   133,  1225,
1198    1418, -1435, -1435,   130,   130, -1435,   130,   133,   130,   130,
1199     130, -1435, -1435,   130,  1231,   133, -1435,   133,  3764,  1456,
1200    1421, -1435,  3764,  1235, -1435,  3764,  3654,  1903,  1424,  1425,
1201    1409, -1435, -1435,  3764,   848,  3764, -1435, -1435, -1435,  1426,
1202   -1435,  1238,   130,  1241, -1435,  3764,  3764,  3764,   623, -1435,
1203   -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435,  1782,
1204      22, -1435, -1435, -1435,  3764, -1435, -1435, -1435, -1435, -1435,
1205   -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435,
1206   -1435,  3764,  3764, -1435, -1435, -1435,  3764, -1435,  3764, -1435,
1207     133,   130,  1207, -1435, -1435,  1435, -1435, -1435, -1435, -1435,
1208   -1435,   130, -1435, -1435, -1435,   130, -1435,   133, -1435, -1435,
1209     130,   130,   130,  4347,    66,   130,  1248,   130,   133,   130,
1210    1251,  1255,  3764, -1435,  1422, -1435, -1435, -1435, -1435,  1436,
1211   -1435, -1435, -1435, -1435, -1435,  1165,   212,  3764, -1435, -1435,
1212   -1435, -1435, -1435,  1257,  1149,  1259,  2014,  1270,  1271,  1272,
1213   -1435, -1435, -1435, -1435, -1435,   130,   133,  1210,   130,   133,
1214   -1435,   130, -1435, -1435,  1440,   787, -1435,  3764, -1435,  1443,
1215   -1435, -1435,  2155,  1451, -1435, -1435,  1455, -1435,   905, -1435,
1216     130, -1435,   130,  3764, -1435,  1274,  3764,  3764,  1458,  2014,
1217    3764, -1435, -1435, -1435,  1452, -1435,  3764, -1435,  1465,  3764,
1218   -1435,  3764, -1435, -1435
1219};
1220
1221  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1222     Performed when YYTABLE does not specify something else to do.  Zero
1223     means the default is an error.  */
1224static const yytype_uint16 yydefact[] =
1225{
1226       2,     0,     1,     6,     8,     0,     0,    17,     9,  1026,
1227    1025,     0,    18,     3,     4,     5,    12,    15,    20,  1024,
1228       0,    21,   106,    19,   106,     0,   202,  1022,    22,   106,
1229      23,   106,    24,    18,   967,   935,   208,   206,   216,   210,
1230     214,   212,    88,   305,     0,     0,     7,    11,    18,   202,
1231     203,   964,   108,     0,   107,   950,   192,   192,     0,     0,
1232    1025,  1023,   192,   192,    16,     0,     0,   218,   218,   218,
1233     218,   242,   218,     0,   204,   205,    10,    13,    14,   455,
1234       0,     0,   366,   367,    25,     0,   464,     0,   501,   194,
1235      25,   264,   255,   257,     0,   256,    88,   195,   539,   105,
1236     109,   110,   116,     0,   193,     0,   112,   260,   117,   202,
1237     402,   143,   145,   146,     0,   113,   151,     0,     0,   115,
1238     150,   147,   144,   523,     0,   521,   532,   537,   520,   518,
1239     519,   118,   119,   120,   709,   707,   707,   710,   736,   737,
1240     121,   707,   122,   124,   114,   148,   149,   123,   952,   951,
1241       0,   193,   931,   934,   202,     0,     0,   103,     0,     0,
1242       0,     0,     0,   916,     0,     0,     0,     0,     0,    88,
1243     134,   126,   192,   152,     0,   157,   163,   158,   173,   179,
1244     156,   687,   153,   162,   155,   170,   154,   786,   165,   164,
1245     181,   161,   178,   172,   160,   175,   180,   174,   177,   166,
1246     171,   159,  1001,   176,  1043,  1048,  1031,     0,   134,   134,
1247     968,   936,     0,     0,   209,   219,   207,   217,   211,     0,
1248       0,   215,   243,   244,   213,   201,   648,   621,   622,   200,
1249    1011,     0,   258,   259,  1012,   231,   225,     0,   323,   539,
1250       0,   604,   309,   616,   186,   187,   189,   190,   188,     0,
1251     307,   605,     0,   603,   608,   609,   611,   613,   623,     0,
1252     626,   640,   642,   644,   646,   653,     0,   656,   659,   199,
1253     606,     0,     0,   930,   494,     0,   492,    26,   723,     0,
1254       0,     0,   993,     0,   991,   465,     0,     0,   504,   715,
1255       0,     0,     0,     0,     0,   508,     0,   415,   420,   523,
1256     419,     0,   540,   111,     0,     0,     0,     0,    88,     0,
1257     657,   202,   336,   400,     0,   464,   464,   202,     0,     0,
1258       0,     0,   657,   536,   731,   192,   196,   196,   767,   957,
1259    1059,   474,   943,   202,   946,   948,   949,     0,     0,    88,
1260     539,   167,   104,     0,     0,   810,     0,  1062,  1061,   169,
1261     567,   824,     0,     0,   822,     0,     0,     0,   592,     0,
1262     815,   655,   663,   665,   817,   662,   818,   664,     0,     0,
1263       0,   969,   135,   127,   192,   130,   132,   133,     0,     0,
1264       0,     0,     0,  1008,   689,     0,     0,   787,   707,  1005,
1265       0,  1049,  1041,  1028,   474,   474,   222,     0,     0,     0,
1266     254,   251,     0,     0,     0,     0,     0,   322,   325,   328,
1267     327,     0,     0,   539,   616,   235,   187,     0,     0,     0,
1268       0,     0,   306,     0,   618,     0,   619,   620,     0,   617,
1269     223,     0,   186,   614,   630,   632,   631,   633,   628,   629,
1270     625,   634,   635,   637,   639,   636,   638,     0,     0,   649,
1271       0,   650,     0,   651,   652,     0,   641,   999,     0,     0,
1272       0,   491,     0,   705,   730,     0,   725,     0,     0,   989,
1273     997,     0,   995,     0,   506,     0,     0,   505,   717,   267,
1274     268,   270,     0,   265,     0,   427,     0,   423,   543,   426,
1275     542,   425,   509,   408,   508,     0,     0,     0,     0,    25,
1276      25,   547,  1057,     0,   879,   225,   878,   655,   877,     0,
1277       0,   814,     0,     0,     0,     0,   658,   282,     0,   202,
1278     278,   280,     0,     0,     0,   339,     0,   406,   403,   404,
1279     407,     0,   466,   476,     0,     0,   478,    88,   603,     0,
1280     522,   682,   683,   684,     0,     0,   590,     0,     0,   673,
1281     675,     0,     0,     0,     0,   708,   198,    25,     0,     0,
1282     192,   707,   712,   732,   738,     0,   758,   192,   713,     0,
1283     771,   768,   707,     0,   958,     0,     0,     0,   932,   947,
1284     698,     0,     0,   765,   811,   812,     0,     0,     0,     0,
1285       0,     0,     0,   656,   907,     0,   905,   903,     0,     0,
1286       0,     0,   898,     0,   896,   894,     0,  1069,     0,   816,
1287       0,   202,   962,     0,   131,     0,   842,   820,     0,     0,
1288       0,     0,     0,     0,     0,     0,    88,   527,   823,   866,
1289     819,   821,     0,   869,   863,   868,     0,     0,     0,     0,
1290     697,   695,   696,   691,   688,   694,   802,   800,     0,   796,
1291     788,   785,   789,  1003,     0,  1002,  1051,     0,  1051,     0,
1292    1027,     0,  1040,     0,   220,     0,     0,     0,     0,   249,
1293       0,   327,   320,     0,   228,   227,   232,   226,     0,   187,
1294     607,   310,   308,   324,   321,   186,   610,   612,   615,   624,
1295     627,   643,   645,   647,   998,     0,     0,     0,   458,   524,
1296       0,   498,   500,   532,   499,   493,     0,   729,     0,   990,
1297     992,     0,   994,     0,     0,   515,   510,   513,     0,   262,
1298       0,     0,     0,     0,   412,   416,   539,   432,   223,   433,
1299     229,   437,   435,     0,   436,   434,     0,   417,   437,   446,
1300     304,     0,   365,     0,   722,     0,   714,     0,   551,     0,
1301       0,   539,     0,   548,   556,   565,   566,  1058,     0,   861,
1302       0,     0,     0,   534,   657,     0,   283,     0,     0,   261,
1303     279,   351,   343,     0,   346,     0,   349,   350,   352,   353,
1304     354,   340,   342,   359,   334,   355,   368,   337,     0,   401,
1305       0,     0,   449,   358,   470,   462,   467,   468,   471,   472,
1306       0,     0,   202,   475,     0,   670,   677,     0,   672,     0,
1307       0,   679,     0,   666,   533,   538,   719,     0,     0,     0,
1308       0,     0,     0,     0,   193,   740,   744,   741,   755,   739,
1309     749,   746,   733,   751,   743,   753,   756,   752,   754,   745,
1310     750,   742,   759,   707,   757,     0,     0,     0,   769,     0,
1311     772,   707,   770,   976,     0,   977,  1060,   939,     0,   792,
1312     581,   543,   582,   570,   578,   583,     0,     0,     0,     0,
1313       0,     0,     0,     0,     0,     0,   829,     0,   827,     0,
1314       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1315     919,     0,   917,   908,   911,   531,   909,   530,   529,   841,
1316     528,   910,     0,     0,   899,   902,   901,   900,     0,     0,
1317     595,   597,     0,   168,     0,   136,   202,   139,   141,   142,
1318     972,   192,     0,     0,   820,   867,   871,   865,   870,   872,
1319     873,   874,   875,     0,   857,   851,     0,   855,  1010,  1009,
1320       0,     0,   687,     0,     0,   794,   798,     0,     0,   539,
1321       0,  1018,  1017,     0,  1013,  1015,  1056,  1032,  1055,     0,
1322    1052,  1053,  1042,     0,  1038,  1046,     0,   253,     0,     0,
1323       0,     0,   326,   191,   239,   237,   238,     0,     0,     0,
1324       0,   456,     0,   657,     0,     0,   996,   524,   486,   488,
1325     490,   507,   516,     0,   502,   269,   273,     0,   271,   539,
1326     424,     0,   428,   409,   413,   540,     0,   430,   431,     0,
1327       0,   414,   429,   224,   230,     0,   724,   716,     0,   552,
1328     559,   555,     0,     0,   541,   560,     0,   550,     0,   886,
1329       0,   884,   887,     0,     0,   667,   535,   288,     0,   291,
1330       0,   285,   287,   295,     0,   292,     0,   274,   344,   347,
1331       0,     0,   369,   240,   341,   405,   451,     0,     0,     0,
1332       0,   477,   483,     0,   481,   479,   680,   681,   678,   591,
1333       0,   674,     0,   676,     0,   668,   721,    25,     0,   734,
1334       0,  1067,  1065,     0,   747,     0,     0,   192,   761,   760,
1335       0,     0,   780,     0,   773,   766,   774,   959,     0,   953,
1336     940,   941,   693,   685,     0,     0,     0,     0,   580,   840,
1337     654,   834,   831,   832,   835,   838,     0,   830,   833,   837,
1338     836,     0,   825,   921,     0,     0,   922,   923,   929,   920,
1339     526,   928,   525,   924,   926,   925,     0,   912,   906,   904,
1340     897,   895,     0,     0,  1070,     0,   140,   973,   974,   784,
1341       0,   193,     0,     0,     0,     0,   846,     0,   844,   876,
1342     864,     0,   859,     0,   882,     0,   853,   880,   883,     0,
1343       0,     0,     0,   687,   686,   690,     0,   809,     0,   803,
1344     805,   795,     0,   797,  1004,     0,     0,  1006,  1050,     0,
1345    1033,  1039,   941,  1047,   941,   221,     0,   250,     0,   247,
1346     246,   539,     0,     0,   332,   233,  1000,   661,   460,   459,
1347       0,     0,   496,     0,   728,     0,     0,   508,   390,   514,
1348       0,     0,     0,     0,     0,     0,   191,   439,   183,   184,
1349     185,   441,   442,   444,   445,   443,   438,   440,   311,     0,
1350       0,   313,   315,   679,   317,   318,   319,   418,     0,   553,
1351       0,     0,   557,   549,     0,   561,   564,   886,   891,     0,
1352     889,     0,   862,   777,     0,   289,     0,   284,     0,   240,
1353       0,   281,   275,   390,     0,   356,   335,   390,     0,   360,
1354     390,     0,   450,   463,   469,     0,     0,   480,   677,     0,
1355       0,   718,     0,   735,     0,     0,    32,    33,    91,    71,
1356      94,   258,   259,   255,   257,   256,   231,   225,     0,     0,
1357      27,    63,    65,    62,   539,    28,   101,   656,     0,     0,
1358     762,     0,   781,     0,   782,     0,     0,   978,   979,     0,
1359     942,   937,   793,     0,     0,   571,   572,   579,   568,     0,
1360     585,     0,     0,   839,   828,     0,   927,     0,   918,     0,
1361       0,     0,   596,   598,   599,   593,   790,   975,   970,     0,
1362       0,     0,   847,   849,   848,     0,     0,   858,     0,   852,
1363       0,     0,   856,     0,     0,   701,     0,   703,   692,   807,
1364       0,   801,   806,   799,   539,  1016,  1014,     0,  1054,     0,
1365    1029,  1034,  1045,  1045,     0,     0,   329,     0,   457,     0,
1366     495,   533,   726,   489,   485,     0,   384,     0,   371,   376,
1367       0,   379,   372,   382,   373,   386,   374,   392,     0,   375,
1368     394,   660,   381,   503,   511,   272,   263,     0,   236,   234,
1369       0,     0,   312,   775,   554,   558,   562,     0,     0,   885,
1370       0,     0,   286,   388,     0,   297,     0,   298,   299,   293,
1371       0,   398,   399,   397,     0,     0,   241,     0,     0,   357,
1372     361,     0,   453,   484,   482,   669,   720,     0,    31,  1064,
1373    1066,    30,  1068,    66,   532,    67,    72,  1063,    95,    98,
1374      96,   102,     0,     0,     0,     0,     0,     0,     0,     0,
1375       0,     0,     0,     0,     0,     0,     0,    55,     0,     0,
1376       0,    29,   748,   192,     0,   783,   960,     0,     0,   954,
1377       0,   577,   574,     0,     0,     0,     0,   584,   587,   589,
1378     826,   914,   913,   601,     0,     0,     0,     0,     0,     0,
1379       0,   850,   845,   843,   860,   881,   854,     0,   699,   702,
1380     704,   804,   808,  1007,     0,     0,  1036,     0,     0,     0,
1381       0,   497,     0,     0,   517,   391,   385,     0,     0,     0,
1382       0,   380,   396,   392,     0,     0,   316,   314,   563,     0,
1383     890,     0,   776,     0,   296,     0,     0,     0,     0,   294,
1384     300,   345,   348,   370,   362,   364,   363,   304,   452,   390,
1385       0,    64,    64,    64,     0,    54,    60,    39,    49,    51,
1386      50,    52,    45,    40,    47,    46,    38,    48,    34,    35,
1387      36,     0,     0,    53,    56,    37,     0,    42,     0,    41,
1388       0,   778,   987,   955,   986,   961,   982,   985,   984,   981,
1389     980,   938,   576,   575,   573,   569,   586,     0,   602,   600,
1390     594,   791,   971,   192,     0,   700,     0,  1030,     0,  1044,
1391       0,     0,     0,   727,     0,   377,   378,   381,   384,     0,
1392     383,   387,   393,   389,   395,   512,     0,     0,   888,   290,
1393     301,   303,   302,     0,    74,    61,    75,     0,     0,     0,
1394      59,    57,    58,    44,    43,   779,     0,     0,   915,     0,
1395    1035,  1037,   245,   248,   330,     0,   385,     0,   421,     0,
1396     454,    72,    87,    76,    77,    80,    79,    68,     0,    73,
1397     956,   983,   813,     0,   487,     0,     0,     0,    85,     0,
1398      86,    70,   331,   422,   892,    84,     0,    78,    81,     0,
1399      83,     0,   893,    82
1400};
1401
1402  /* YYPGOTO[NTERM-NUM].  */
1403static const yytype_int16 yypgoto[] =
1404{
1405   -1435, -1435, -1435,  1093, -1435,  1423,   428, -1435, -1435, -1435,
1406   -1435, -1435, -1435, -1435, -1435, -1435,  -116, -1435, -1435, -1435,
1407   -1435, -1435, -1435, -1435,  -650, -1435,  -248, -1435,   -11, -1435,
1408   -1435, -1435, -1435, -1435, -1435, -1435, -1435,  1378,   889, -1435,
1409   -1435, -1435,   -85,   756, -1435, -1435, -1435,   565, -1435,   -76,
1410    -894,  -632, -1435, -1435,   476,   478,   -45,    63, -1435,   659,
1411    -215,   -67, -1435,  1466, -1435, -1435, -1435, -1435, -1435, -1435,
1412     712, -1435,  -223,  -180,  1076,  -453,  -209, -1435, -1435, -1435,
1413     216, -1435, -1435, -1435,   211,   -33, -1435, -1435, -1435, -1435,
1414   -1435, -1435, -1435,   772, -1435,   271, -1435, -1435, -1435,   975,
1415   -1435, -1435, -1435,   231, -1435, -1435,   234, -1435,    54, -1435,
1416   -1435,  -966,  1485, -1435,  1078,   494, -1435,    70,    73, -1435,
1417    1254, -1435, -1435,  1100,  -599, -1435, -1435, -1435, -1435, -1435,
1418   -1435, -1435, -1435, -1435,   720, -1435, -1435, -1435,   457, -1435,
1419   -1435, -1435, -1435,  -963,  -258, -1435, -1435, -1185, -1148, -1434,
1420   -1170, -1219, -1435,   -48, -1105,   -47, -1435, -1435,    99, -1435,
1421     -53, -1435, -1435, -1435, -1435, -1435,   727, -1435, -1435, -1435,
1422   -1435,  -418, -1435, -1435,  1027,  -249, -1435,   800, -1435,   512,
1423    -362, -1435,   522, -1435, -1435, -1435, -1435, -1435, -1435, -1435,
1424   -1435, -1435, -1435, -1435,   547, -1435, -1435, -1435,   -16, -1435,
1425   -1435,   469, -1435,     1, -1435, -1435, -1435,   730, -1435,   249,
1426   -1435, -1435,  -152,   328, -1435, -1435,  1088, -1435, -1435,  -918,
1427   -1435, -1435, -1435, -1435,  -267,  -469, -1435, -1435,   -18,   554,
1428   -1435,  1353, -1435,  1911,  -451,   660, -1435, -1435,  -798, -1435,
1429    -535, -1435,  -458,  -285,  -290, -1435,   997, -1435, -1435,  -262,
1430    -288, -1435, -1435,   530, -1435, -1435,   994, -1435, -1435, -1435,
1431   -1435,    41,    32,   207, -1435,   453,  -557, -1435, -1435,    43,
1432   -1435,  -261,   220,  1002, -1435, -1435, -1435, -1435, -1435,    38,
1433   -1435, -1435,   272,   -39,  1120, -1435, -1435,  -189,  1117, -1435,
1434    1302, -1435,  1119,  1121,  1115, -1435, -1435, -1435, -1435, -1435,
1435    1996,  -787,  -145,  -166,   807,   -37,  -831, -1298, -1435, -1435,
1436    -210, -1435,   -34,   456, -1435, -1435, -1435,   765,   768,  -501,
1437     774, -1435,  1264,  -375,  -372,  -866, -1435, -1435, -1435, -1435,
1438    -820,  -805, -1435, -1435, -1435, -1435,  -107, -1435,   471, -1435,
1439   -1435,  1018, -1435,   -80,  -695,  -119,  1267, -1435, -1435, -1435,
1440   -1435, -1435, -1435, -1435,  1020, -1435, -1435, -1435,   493, -1435,
1441    -495, -1435, -1435, -1435, -1435, -1435, -1435,  1016, -1435, -1435,
1442    1200, -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1435,
1443   -1435,   204, -1085, -1435,  1028, -1435,     2, -1435, -1435,   972,
1444    -149, -1435,  1035, -1435, -1435, -1435,   466,   718,   999,  1039,
1445   -1435, -1435,   236,  1044, -1435, -1435,  1049, -1435, -1435,     5,
1446    1232,   982,   673,  -232,   671,   238,  -864,  -960,  -876, -1435,
1447     174, -1435,  1054, -1435,   708,  1057, -1435,   721,  1060, -1435,
1448   -1435, -1435, -1435,   489,   508, -1435, -1435, -1435, -1435, -1435,
1449   -1435, -1435, -1435,  -376, -1435, -1435, -1435,  1291, -1435, -1435,
1450    1575, -1435, -1435, -1435, -1435, -1435,   780, -1435, -1435, -1435,
1451   -1435, -1435, -1435, -1435, -1435, -1435, -1435, -1026, -1435,   -54,
1452   -1435, -1400, -1435,  1354,  1166, -1435, -1435,   925,  -477, -1435,
1453    1082, -1435, -1435, -1435, -1435, -1435, -1435,  1001,   943,   460,
1454     467, -1435, -1435,  1625,  -141, -1435, -1435, -1435, -1435, -1435,
1455   -1435, -1435, -1435, -1435, -1435,  -123, -1435, -1435, -1435, -1435,
1456     261, -1435, -1435, -1435,  1003, -1435,   464,   535, -1435, -1435,
1457   -1435, -1435, -1435,   570
1458};
1459
1460  /* YYDEFGOTO[NTERM-NUM].  */
1461static const yytype_int16 yydefgoto[] =
1462{
1463      -1,     1,    13,    14,    15,    16,    46,    17,    18,    33,
1464     279,  1308,  1309,  1501,  1613,  1595,  1310,  1676,  1311,  1591,
1465    1592,  1312,  1593,  1313,  1677,  1703,  1704,  1705,   340,  1315,
1466    1316,  1480,   341,    51,    52,    99,   100,   101,   170,   171,
1467     373,   374,   375,   371,   372,   915,   916,   917,   102,   172,
1468     173,   240,  1227,  1228,   241,   974,   174,   104,   559,  1087,
1469     242,    19,    20,    44,    68,    67,    70,    72,    71,    69,
1470     214,   215,   243,   244,   676,   415,   245,   246,   417,   977,
1471    1279,   221,   222,   223,   401,   247,   248,   106,   311,   107,
1472     292,   293,   479,   480,   997,   998,   769,   518,   519,   520,
1473     521,   767,  1040,  1041,  1441,  1044,  1045,  1269,  1444,  1579,
1474    1580,   732,   733,   249,   250,   734,  1240,  1241,  1242,   251,
1475     406,   252,   684,   407,   408,   409,  1202,  1203,   108,   109,
1476    1051,   523,   524,   525,   781,  1273,  1274,   784,   785,   794,
1477     786,  1459,  1460,   735,   110,  1053,  1277,  1407,  1408,  1409,
1478    1410,  1411,  1412,  1413,  1414,  1415,  1416,  1417,  1418,  1419,
1479    1420,  1454,   111,   526,   313,   528,   529,   112,   722,   493,
1480     494,   295,   296,   736,   297,   298,   486,   487,  1001,   737,
1481    1007,  1236,   738,   739,   113,   114,  1058,   792,  1280,  1589,
1482     115,   272,  1210,   697,   698,   116,   117,  1059,   286,   795,
1483     796,   797,   798,    53,   119,   800,   535,   536,  1063,  1064,
1484     120,  1217,   988,   989,   121,   275,   276,   459,  1211,   700,
1485     122,   288,  1220,   476,   799,   495,   994,  1564,   716,   717,
1486    1218,   253,   539,   124,   860,  1131,  1132,   628,   899,   900,
1487    1632,   897,   125,   514,   126,   323,   127,   501,   489,   128,
1488     129,   130,   752,   753,  1027,   754,   175,   586,  1515,  1106,
1489    1335,  1336,  1633,  1512,   863,   864,   865,  1108,  1339,  1340,
1490    1341,  1342,  1068,   176,   606,  1526,   911,  1143,  1353,  1354,
1491     254,   255,   256,   257,   258,   425,   428,   259,   260,   447,
1492     261,   448,   262,   263,   264,   265,   266,   450,   452,   455,
1493     267,  1109,  1110,   268,   515,   354,  1422,  1208,   364,   365,
1494     366,   367,   177,   178,   320,   547,   548,   549,   550,  1245,
1495     542,   543,  1246,   179,   180,   384,   643,   941,   181,   644,
1496     645,   581,   942,  1173,  1174,   707,   324,   325,   182,   134,
1497     135,   561,   136,   280,   465,   326,   562,   563,   137,   138,
1498     564,   829,   139,   565,   566,  1088,   343,   183,   184,   570,
1499     571,   849,   850,   141,   572,   851,  1095,   185,   186,   386,
1500     387,   187,  1527,  1104,   388,   651,   947,  1182,   648,   943,
1501    1178,  1179,  1180,   188,   189,   190,   191,   192,   368,   629,
1502     630,   631,   193,   587,  1345,   877,   878,  1111,   901,   194,
1503     922,  1157,  1158,   195,  1165,  1371,   196,  1161,  1368,   197,
1504     632,   633,   634,   635,  1166,  1167,  1030,  1031,  1032,  1259,
1505    1260,  1571,   198,   603,   604,   199,   595,   596,   200,  1349,
1506    1637,   352,   891,   892,   377,    21,   331,   152,    22,    66,
1507     578,  1510,  1101,  1331,   153,   332,   333,   334,    54,   329,
1508      55,  1329,  1686,   575,  1623,    23,    56,    24,    65,   612,
1509     613,  1528,  1148,  1358,   854,  1099,  1327,  1624,  1625,  1626,
1510    1627,   530,   145,   283,   284,   146,   471,   472,   270,   695,
1511     201,   390,   948,   654,  1387,   202,   638,   271,   953,   954,
1512     955,    25,    26,    27,    28,    29,   658,  1545,   207,   958,
1513    1390,  1391,   660,  1648,  1192,    30,    31,   657,   205,   662,
1514    1546,  1194,   392,   656,   959,   960,   961,   203,   154,   576,
1515     349,  1084,  1590,   608
1516};
1517
1518  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1519     positive, shift that token.  If negative, reduce the rule whose
1520     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1521static const yytype_int16 yytable[] =
1522{
1523      43,   702,   363,   398,   488,   404,   491,   103,   701,   641,
1524     290,   150,   642,   335,   414,   355,   357,   327,   131,   105,
1525     742,   477,   950,   362,   105,   723,  1002,  1149,   416,   105,
1526     105,   336,   490,   481,   328,   429,   269,   553,  1103,   400,
1527    1233,    98,   312,  1235,   729,   485,    98,   363,   418,   910,
1528     812,    98,    98,   118,   142,   103,   896,   143,   545,  1168,
1529    1168,   105,   239,   950,  1212,   906,   131,   105,  1258,   431,
1530    1162,   105,  1328,   509,   972,   848,  1175,   724,   430,   432,
1531    1112,  1113,  1114,    98,  1126,  1127,   421,  1119,  1450,    98,
1532     932,  1379,  1455,    98,   314,  1461,   376,   277,  1446,  -523,
1533     212,   118,   142,   668,   318,   143,  1628,   227,   228,   291,
1534     522,   807,   809,   902,   219,  -195,   460,   468,     4,   151,
1535    1445,  1655,   908,   -89,   912,   492,   -89,   711,   492,   933,
1536     414,  1299,   933,   414,   758,  1170,  -195,     4,     4,   105,
1537     980,  1655,  1023,  1121,   416,   802,  -410,   416,     4,  -411,
1538     637,   319,  1136,   936,    47,     4,   347,     4,     8,  1584,
1539     508,    98,   348,  1447,   418,  1186,     4,   418,  1196,   703,
1540    1261,   704,   230,  1270,     4,  1198,  -195,     8,     8,  1186,
1541    1370,   492,   414,   269,   665,   828,  -410,  1222,     8,  -411,
1542    1286,     4,   335,  1320,     4,     8,   416,     8,  1365,  1380,
1543    1399,     4,     4,  1258,   594,   681,     8,   602,  1431,   679,
1544     336,   912,  1516,    42,     8,  1697,   418,  1333,  1325,  -182,
1545     433,  1025,   346,   234,  1022,   976,   413,  1360,  -730,   573,
1546      32,     8,   281,    89,     8,   508,   508,   508,   432,    42,
1547     555,     8,     8,   956,   517,   685,  1006,  1559,   685,   376,
1548     534,   432,   227,   228,    49,   474,  1457,  1577,    97,   475,
1549    -266,  -338,   990,   765,   782,  1334,  -540,   503,   464,   282,
1550      73,  1446,   213,   516,   727,  1294,  1204,   422,  1266,  1670,
1551     236,   652,   546,    98,  -540,   516,   220,  1628,   730,   614,
1552    -523,    12,   105,  1445,   669,  -523,   861,  1542,   376,   531,
1553     532,  1439,   808,   810,   903,  1004,  -195,  1378,   741,  -195,
1554      12,    12,   412,   909,    98,   913,   861,   728,  -764,  -410,
1555     934,    12,  -411,   935,   862,    34,  1346,    48,    12,  1343,
1556      12,   981,   577,  1024,  1122,   756,  1447,  1656,  1333,    12,
1557    1120,   105,   413,  1137,   862,   413,  1125,    12,   607,  1128,
1558     640,   105,  1350,  1134,  1094,    35,  1187,  1656,  -764,  1197,
1559    -474,     4,   269,    98,    12,   646,  1199,    12,   506,  1008,
1560    1206,  1026,   972,    98,    12,    12,  1012,  1239,  1223,   433,
1561     574,  1287,  1326,   269,   269,  1446,  1334,  1659,   926,  1366,
1562    1381,  1400,   688,  1559,   413,   659,   661,  1458,  1578,  1432,
1563    1351,     8,  1502,  1517,  1673,  1446,  1698,   302,    92,    93,
1564     239,    95,   302,   957,   766,    42,   302,  -540,   310,   745,
1565     747,   235,   647,   204,    42,   236,   105,     4,    42,  1267,
1566      47,   488,    42,   491,     4, -1020,    74, -1020,   876,   890,
1567     893,   610,   842,   506,   506,   506,    42,   639,   699,   904,
1568     302,   968,   517,   966,   385,   975,  -539,   969,   970,   490,
1569     481,    64,   105,   105,   731,   852,   429,     8,  1350,   730,
1570     918,     4,   485,     4,     8,   508,    76,   817,  1258,   498,
1571     499,  1551,  1630,  1521,    98,    98,   726,  -197,   919,   741,
1572     751,  -764,  1585,     9,  1168,  1586,     4,   363,   430,    75,
1573     431,   363,   363,   498,   499,   227,   228,  1042,   132,   430,
1574     285,     8, -1020,     8, -1020,   823,  1351,    58,   105,    59,
1575      60,   793,   845,   133,   702,  1221,   827,   105,   344,   742,
1576     782,   701,  1014,   742,    12,  1511,     8,   148,   649,   500,
1577      98,    89,     4,    98,   206,   140,  1070,  -464,  1072,    98,
1578     462,   463,  1511,  1232,   950,   557,   132,   729,   105,   105,
1579     144,  1013,   832,   500,     4,   837,    97,   105,   105,   832,
1580       9,   133,   274,  1290,  1531,   699,   533,   558,    11,     4,
1581      98,    98,     8,   285,     4,  1352,  1561,   147,  -137,    98,
1582      98,     4,   105,   140,   944,   699,   -90,    60,   287,   -90,
1583      12,  1046,   483,    48,     8,    11,   105,    12,   144,  1149,
1584     230,   301,  1671,   304,    98,  1672,    89,    89,   305,     8,
1585    1364,   306,   474,   824,     8,    42,   475,   938,    98,   269,
1586     151,     8,  -933,    92,    93,   147,    95,   302,  1078,   484,
1587      42,    97,    97,   949,    12,   492,    12,  1103,  1005,   496,
1588     307,   232,   233,   894,  -539,    11,  -236,    82,    83,  1037,
1589    -508,   234,   905,  1091,  -508,  -944,   310,   973,   497,    12,
1590      92,    93,   357,    95,   235,  1476,  1477,    42,   236,  1225,
1591    -236,   -61,  1010,   506,   949,   929,   930,   931,  1038,   235,
1592     105,   155,   703,   236,   704,    11,  1039,   686,  1213,   302,
1593     687,  1011,   987,   315,   -93,   556,   557,   -93,   316,  1323,
1594     999,   317,    98,   411,   322,    12,   434,   435,   436,   437,
1595     438,   439,   440,  1117,  1089,  1657,  1561,   516,   558,   321,
1596     -92,  1374,  1561,  1469,   330,   534,  1129,    12, -1020,   412,
1597   -1020,   236,   399,  1569,  1096,  1657,  1376,   230,  1405,  1149,
1598     337,  1537,    12,   594,   426,   427,  1043,    12,  1620,   602,
1599      36,    37,    38,    39,    12,   990,   453,   454,    40,  1069,
1600     546,   338,   546,  1156,    41,   918,     5, -1020,     6, -1020,
1601     216,   217,   218,  1231,   224,     7,   350,   727,   508,   351,
1602      42,   105,   294,   919,    82,    83,     9,   416,   234,  1239,
1603     641,   730,   358,   642,    57,   414,   359,    92,    93,    62,
1604      95,    63,  1020,    98,    42,   861,  1392,   741,  1393,   416,
1605      89,   741,   369,    60,   640,   105, -1020, -1021, -1020, -1021,
1606     728,   370,   569,  1115,  1093,     9,   389,    92,    93,   418,
1607      95,   385,   105,   862,    42,    97,   396,    98,   105,   105,
1608     105,   105,   861,   105,  1473,   105,   105,   756,  1481,   391,
1609     414,   393,    10,   411,    98,   441,   442,   443,   444,   412,
1610      98,    98,    98,    98,   416,    98,  1150,    98,    98,   420,
1611     862,    11,    11,  -276,     9,     9,  1159,  -223,   105,    92,
1612      93,  -945,    95,   424,   418,   449,   308,   282,   225,   445,
1613     446,  1144,   105,   105,   451,   226,  1451,  1452,  1453,   457,
1614      98,    60,    60,   227,   228,   229,   771,   674,   675,   512,
1615      11,   639,    11,  -277,    98,    98,   569,   847,  1171,  1172,
1616     -97,   -97,   458,   -97,   602,   470,  1118,   -97,    89,   513,
1617     -97,   702,  1678,  1679,   473,    77,   516,   551,   701,   105,
1618    1133,   208,   209,   482,  1424,    92,    93,   527,    95,   556,
1619    1201,   569,    42,    97,   394,   395,   554,   402,   269,    11,
1620      11,   699,   876,  -100,  -100,   588,  -100,   731,    42,  -138,
1621    -100,   742,   653,  -100,  1151,   560,   567,   890,   403,   616,
1622      82,    83,   772,   663,   239,  1226,   506,  1292,   239,   726,
1623     664,   666,  1429,   641,  1362,   667,   642,   673,  1042,   672,
1624    -234,  -229,   751,   678,  1427,   680,   730,   413,   230,   683,
1625    -224,   773,  1474,   774,   775,   776,  1474,   694,   777,   778,
1626     708,   779,   780,   696,   706,   713,   741,   718,   714,   715,
1627     748,   105,  1150,   231,   720,   430,   721,   226,   760,   793,
1628     761,   764,   763,   768,   105,   227,   228,   749,   363,   232,
1629     233,   -99,   -99,    98,   -99,   787,   783,   788,   -99,   234,
1630     546,   -99,  1314,   790,   607,   791,    98,   804,    92,    93,
1631     801,    95,   235,   806,   814,    42,   236,   237,   818,    92,
1632      93,   105,    95,   819,   699,   238,    42,   304,   400,     2,
1633       3,   742,   305,    92,    93,   378,    95,   846,   853,   703,
1634      42,   704,   294,    98,   855,   379,   858,   380,   105,   857,
1635     381,   382,   105,     4,   859,   227,   228,     5, -1020,     6,
1636   -1020,   699,   914,   920,   307,   921,     7,   923,   927,   383,
1637      98,   640,   105,   940,    98,   946,   964,   304,   965,   967,
1638     824,   971,   305,  -230,   440,  1359,   979,   982,   210,   211,
1639     230,   983,   991,     8,    98,   379,   992,   380,   993,   996,
1640     381,   382,  1033,   273,  1384,   949,  1005,   278,  1006,  1009,
1641    -447,  1421,  1048,   289,   307,   231,     9,  1015,  1050,   383,
1642     750,  1049,    36,    37,    38,    39,  1479,    93,  1052,    95,
1643      40,   232,   233,    42,  1056,   987,    41,  1057,    42,  1060,
1644    1062,   234,  1066,    10,  1428,  1077,  1156,  1363,  1074,  1080,
1645      92,    93,  1085,    95,   235,   307,  1098,    42,   236,   237,
1646     230,  1421,    92,    93,  1097,    95,  1421,   238,   639,    42,
1647    1421,  1163,  1100,  1421,   990,  1105,  1107,  1147,  1116,  1124,
1648    1721,   345,  1069,  1142,  1185,  1188,  1189,  1190,  1191,  1043,
1649     820,   360,  1193,  1215,  1216,  1195,  1248,  1200,  1205,  1214,
1650    1224,    11,  1250,  1278,  -202,  -202,  -202,  -202,  1265,   105,
1651    1268,   234,  -202,   105,  1264,  1281,  1285,  1288,  -202,  1289,
1652      92,    93,  1321,    95,   235,  1338,    12,    42,   236,  1330,
1653     105,    98,  1357,  1347,  1069,    98,  1355,  1356,  1361,  1261,
1654     305,  1370,  1373,  1086,  1435,  1382,  1389,   105,  1394,  1395,
1655    1396,  1397,    98,   379,  1401,   380,  1430,  1437,   381,   382,
1656     159,  1438,  -522,  1440,  1651,  -197,  1462,   105,  1650,    98,
1657     161,   162,   307,   163,   640,   105,   164,   383,  1472,   821,
1658     166,   822,  1463,  1507,  1467,  1666,  1470,  1475,  1478,    98,
1659    1550,  1504,  1503,  1506,  1508,  1513,   105,    98,   461,  1514,
1660    1524,  1519,  1525,   466,  1544,  1548,   469,  1549,  1552,  1553,
1661    1421,  1554,   363,   478,  1555,  1562,  1556,  1557,   699,    89,
1662    1558,  1563,  1574,  -380,  1565,  1575,  1581,   502,  1576,   363,
1663     511,  1622,  1582,  1583,  1421,   123,    92,    93,  1588,    95,
1664     123,  -255,  1629,    42,    97,   123,   123,  1326,  1474,  1643,
1665     239,  1644,  1646,  1530,  1652,   105,  1654,  1201,  1443,  1662,
1666    1663,  1667,  1668,   640,   105,  1669,   583,   584,  1687,   585,
1667    1696,   639,  1690,  1713,  1695,  1692,  1716,   299,   597,  1693,
1668     605,  1700,  1701,   123,  1719,  1729,    98,   299,  1150,  1720,
1669     225,   609,  1726,   611,  1707,  1708,  1709,   226,  1723,  1731,
1670     105,  1727,    78,   230,  1674,   227,   228,   229,   303,   546,
1671     105,  1146,  1229,   655,  1230,  1448,    50,  1715,   677,  1456,
1672     995,   105,    98,  1425,   770,  1573,    45,  1442,   231,   682,
1673    1234,  1567,    98,  1566,  1449,   670,   423,  1275,  1054,  1660,
1674    1664,  1661,   269,    98,   232,   233,  1560,  1055,  1421,  1421,
1675    1421,  1000,  1247,   725,   234,   123,  1421,  1209,  1237,  1284,
1676     639,   363,  1065,    92,    93,  1464,    95,   235,  1421,  1421,
1677      42,   236,   237,  1714,  1403,   105,  1665,  1219,   705,  1135,
1678     238,   815,  1421,  1253,   825,  1634,  1638,  1523,  1337,  1636,
1679     709,  1518,   826,  1639,   712,   690,   824,   689,   456,   691,
1680     693,  1036,  1071,   692,  1018,   719,   830,  1073,  1067,  1675,
1681     230,   226,   544,   843,  1541,   844,   650,  1344,   831,   227,
1682     228,   925,   744,   746,   568,   833,   757,  1123,  1150,   834,
1683     907,  1532,   759,   928,   835,   231,  1160,  1169,  1535,   836,
1684     105,  1176,  1570,   636,   838,  1694,  1140,   839,   226,   789,
1685     840,   232,   233,  1138,   579,  1348,   227,   228,   803,   149,
1686    1699,   234,    98,  1711,   710,   467,   986,   805,   978,   939,
1687      92,    93,   841,    95,   235,   813,  1386,    42,   236,   237,
1688     816,    61,  1385,  1388,  1547,  1318,     0,   238,     0,     0,
1689       0,   963,     0,     0,     0,     0,     0,     0,     0,   856,
1690       0,   538,     0,     0,     0,   105,  1722,     0,   123,  1724,
1691       0,     0,     0,  1254,   987,     0,     0,     0,     0,     0,
1692     226,     0,  1732,     0,   230,     0,     0,    98,   227,   228,
1693       0,     0,     0,     0,     0,     0,  1151,  1689,     0,     0,
1694       0,     0,     0,     0,     0,     0,     0,     0,     0,   231,
1695       0,     0,     0,     0,     0,     0,     0,   123,     0,     0,
1696     937,   230,     0,   538,   538,   232,   233,   299,  1594,     0,
1697       0,   945,     0,     0,   226,   234,     0,     0,     0,     0,
1698     962,     0,   227,   228,    92,    93,   231,    95,   235,     0,
1699       0,    42,   236,   237,     0,     0,     0,     0,     0,     0,
1700       0,   238,   232,   233,     0,     0,     0,     0,     0,     0,
1701       0,     0,   234,     0,     0,     0,  1406,     0,     0,     0,
1702       0,    92,    93,   226,    95,   235,     0,     0,    42,   236,
1703     237,   227,   228,   230,     0,     0,     0,     0,   238,  1482,
1704    1483,  1484,  1485,  1486,  1487,  1003,  1488,  1489,  1490,  1491,
1705    1492,  1493,     0,  1494,  1495,  1496,  1497,  1498,   231,     0,
1706       0,     0,     0,     0,     0,     0,     0,     0,  1016,     0,
1707    1017,     0,     0,     0,   232,   233,     0,     0,   299,   299,
1708     740,     0,     0,     0,   234,  1035,     0,   230,     0,     0,
1709       0,  1047,     0,    92,    93,     0,    95,   235,     0,     0,
1710      42,   236,   237,     0,  1443,     0,     0,     0,     0,     0,
1711     238,   226,   231,     0,     0,     0,     0,     0,     0,   227,
1712     228,     0,     0,  1061,     0,     0,     0,     0,   232,   233,
1713       0,     0,     0,     0,   299,  1075,   230,  1658,   234,     0,
1714    1076,     0,  1079,   299,   226,     0,     0,    92,    93,     0,
1715      95,   235,   227,   228,    42,   236,   237,     0,     0,   226,
1716       0,   231,     0,     0,   238,     0,     0,   227,   228,     0,
1717    1092,     0,  -763,     0,   299,   299,     0,   232,   233,     0,
1718       0,  1102,     0,   299,   299,     0,     0,   234,     0,     0,
1719       0,     0,     0,     0,     0,     0,    92,    93,     0,    95,
1720     235,     0,   538,    42,   236,   237,     0,     0,   299,     0,
1721       0,     0,  -763,   238,     0,     0,     0,     0,     0,     0,
1722       0,     0,   299,     0,   230,     0,  1139,     0,   680,  1499,
1723    1500,     0,  1141,     0,     0,   300,     0,   538,     0,     0,
1724       0,     0,     0,     0,     0,   309,     0,     0,  1702,   231,
1725       0,     0,     0,     0,     0,   226,     0,   230,     0,     0,
1726       0,     0,     0,   227,   228,   232,   233,  1181,     0,     0,
1727    1183,  1184,   230,     0,     0,   234,     0,     0,   538,     0,
1728       0,     0,   231,     0,    92,    93,     0,    95,   235,     0,
1729       0,    42,   236,   237,     0,     0,     0,   231,   232,   233,
1730       0,   238,     0,     0,     0,     0,   299,     0,   234,     0,
1731       0,     0,     0,   232,   233,     0,     0,    92,    93,     0,
1732      95,   235,     0,   234,    42,   236,   237,     0,     0,     0,
1733       0,     0,    92,    93,   238,    95,   235,     0,     0,   339,
1734     236,   237,     0,     0,     0,  -763,     0,     0,     0,   238,
1735       0,     0,     0,  1262,     0,     0,  1263,     0,     0,     0,
1736       0,     0,     0,     0,     0,     0,     0,  1271,   230,  1272,
1737       0,     0,     0,     0,  1276,     0,     0,     0,     0,     0,
1738       0,  1282,  1283,   342,     0,     0,     0,     0,     0,  1717,
1739       0,     0,     0,   231,   361,     0,   226,     0,     0,     0,
1740    1291,  1293,     0,     0,   227,   228,     0,   299,     0,   232,
1741     233,     0,     0,     0,  1322,     0,  1324,     0,     0,   234,
1742       0,     0,     0,     0,     0,     0,     0,  1332,    92,    93,
1743       0,    95,   235,     0,     0,    42,   236,   237,     0,     0,
1744       0,   299,     0,     0,     0,   238,     0,     0,     0,     0,
1745       0,     0,     0,     0,     0,     0,     0,   410,   299,   540,
1746       0,     0,     0,   419,   299,   299,   299,   299,  1611,   299,
1747       0,   299,   299,     0,   226,     0,     0,     0,   410,     0,
1748       0,     0,   227,   228,  1367,  1612,     0,     0,  1369,     0,
1749       0,     0,  1372,     0,  1375,  1377,     0,     0,     0,     0,
1750       0,     0,     0,     0,   123,  1383,     0,     0,     0,   230,
1751       0,     0,     0,   227,   228,     0,   538,     0,   299,   299,
1752       0,   627,   627,     0,     0,     0,     0,     0,     0,     0,
1753       0,   507,   510,  1398,   231,     0,     0,     0,     0,     0,
1754    1404,     0,     0,  1423,   541,     0,  1426,   552,     0,     0,
1755     232,   233,     0,     0,     0,     0,     0,     0,     0,     0,
1756     234,     0,     0,   580,   582,     0,     0,     0,     0,    92,
1757      93,  1433,    95,   235,     0,     0,    42,   236,   237,   593,
1758       0,     0,   593,     0,     0,     0,   238,   230,     0,   740,
1759       0,     0,   538,   740,     0,     0,     0,     0,     0,     0,
1760       0,     0,     0,     0,   615,     0,   361,   361,   507,     0,
1761       0,  1616,   231,  1465,     0,  1466,     0,   226,   230,     0,
1762       0,     0,     0,     0,     0,   227,   228,     0,   232,   233,
1763       0,   671,     0,     0,     0,     0,   300,   300,   234,     0,
1764       0,     0,     0,   231,     0,     0,  1505,    92,    93,     0,
1765      95,   235,  1509,     0,    42,   236,   237,   299,     0,   232,
1766     233,     0,     0,     0,   238,     0,     0,     0,  1520,   234,
1767     123,     0,  1522,     0,     0,     0,     0,     0,    92,    93,
1768       0,    95,   235,     0,     0,    42,   236,   237,     0,  1533,
1769       0,  1534,   811,     0,  1536,   238,  1538,  1539,     0,  1540,
1770       0,     0,     0,     0,     0,     0,     0,   299,     0,     0,
1771    1543,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1772       0,     0,  1618,     0,   743,     0,     0,   755,   226,     0,
1773     230,     0,   895,   898,   299,     0,   227,   228,   299,   762,
1774       0,   895,   898,     0,     0,     0,     0,     0,     0,     0,
1775       0,     0,     0,     0,     0,   231,     0,     0,   299,     0,
1776     627,     0,     0,  1572,     0,     0,   895,     0,   538,   538,
1777       0,   232,   233,     0,   226,     0,     0,     0,     0,     0,
1778     309,   234,   227,   228,     0,     0,     0,     0,     0,     0,
1779      92,    93,     0,    95,   235,   951,     0,    42,   236,   237,
1780       0,     0,     0,     0,     0,     0,     0,   238,     0,     0,
1781       0,     0,   879,     0,   880,   881,   882,   883,     0,   884,
1782       0,   885,   886,     0,     0,     0,     0,  1621,   887,     0,
1783     888,     0,   889,  1631,     0,     0,   951,     0,  1635,     0,
1784       0,   230,     0,     0,     0,     0,   507,     0,     0,  1640,
1785    1641,  1642,     0,     0,     0,     0,     0,     0,     0,     0,
1786    1645,     0,     0,     0,   300,     0,   231,     0,  1647,     0,
1787    1649,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1788     952,     0,   232,   233,     0,     0,     0,   230,     0,     0,
1789       0,     0,   234,     0,     0,     0,     0,     0,     0,   410,
1790       0,    92,    93,     0,    95,   235,     0,     0,    42,   236,
1791     237,     0,   231,     0,     0,     0,   299,     0,   238,     0,
1792       0,   952,     0,     0,     0,     0,     0,     0,   232,   233,
1793       0,     0,   984,   299,   985,     0,     0,     0,   234,     0,
1794       0,     0,     0,  1685,     0,     0,     0,    92,    93,     0,
1795      95,   235,     0,   299,    42,   236,   237,     0,     0,     0,
1796    1688,   299,     0,     0,   238,   309,     0,     0,     0,     0,
1797       0,  1691,     0,     0,  1019,     0,  1021,     0,     0,     0,
1798       0,     0,     0,     0,  1029,     0,     0,  1034,  -225,  -225,
1799    -225,     0,  -225,     0,  -225,  -225,  -225,  -225,  -225,  -225,
1800    -225,  -225,  -225,  -225,  -225,  -225,  -225,     0,     0,  1710,
1801       0,     0,  1712,   538,   538,     0,   895,     0,     0,     0,
1802       0,     0,   895,   898,   898,   895,     0,  1130,     0,   895,
1803    1130,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1804       0,  1587,     0,     0,     0,     0,  -225,     0,     0,     0,
1805     299,     0,   -88,   -88,   -88,     0,   -88,     0,   -88,   -88,
1806     -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,
1807     -88,     0,  1090,     0,   627,     0,  1164,  1164,     0,     0,
1808       0,     0,     0,     0,     0,     0,   123,     0,     0,     0,
1809       0,     0,   507,   507,   507,   507,   299,     0,     0,     0,
1810     507,     0,     0,     0,     0,   507,     0,   299,     0,   226,
1811     -88,     0,     0,     0,     0,     0,     0,   227,   228,     0,
1812       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1813       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1814    1145,     0,     0,  -225,  -225,  -225,  -225,   866,     0,     0,
1815    1243,   867,   868,   869,   870,   871,   872,     0,     0,   361,
1816    1029,  1587,     0,   873,   874,   875,   580,     0,     0,  1177,
1817       0,     0,     0,     0,  -225,     0,     0,  -225,  -225,  -225,
1818     226,     0,   412,     0,     0,     0,     0,     0,   227,   228,
1819     617,     0,     0,     0,     0,     0,     0,   410,     0,     0,
1820       0,     0,     0,     0,     0,  1207,     0,   -88,   -88,   -88,
1821     -88,     0,     0,     0,     0,   811,     0,     0,     0,   618,
1822       0,     0,   230,     0,     0,     0,   123,   619,     0,   620,
1823     621,   622,   623,     0,   624,  1244,   625,     0,   -88,   -88,
1824       0,   -88,   -88,   -88,  1249,   -88,     0,   231,  1252,   755,
1825       0,  1255,  1256,     0,  1257,     0,     0,     0,     0,     0,
1826       0,     0,   226,   232,   233,   898,     0,     0,     0,     0,
1827     227,   228,   504,   234,     0,     0,     0,     0,     0,     0,
1828       0,     0,    92,    93,     0,    95,   235,     0,     0,    42,
1829     236,   237,   309,   230,     0,     0,   895,     0,     0,   238,
1830       0,     0,     0,     0,     0,     0,   580,     0,     0,  1317,
1831       0,     0,  1319,     0,     0,     0,     0,     0,   231,     0,
1832       0,     0,     0,     0,     0,     0,   951,   951,     0,     0,
1833       0,     0,     0,     0,   232,   233,    89,     0,     0,     0,
1834       0,     0,   507,   226,   234,     0,     0,     0,     0,     0,
1835       0,   227,   228,    92,    93,     0,    95,   235,     0,     0,
1836     626,   505,   237,     0,     0,     0,     0,     0,     0,     0,
1837     238,     0,     0,     0,     0,   230,     0,     0,     0,     0,
1838       0,   879,     0,   880,     0,   882,   883,     0,   884,  1029,
1839     885,   886,     0,     0,     0,     0,     0,   887,     0,   888,
1840     231,   889,  1177,     0,     0,     0,     0,     0,     0,     0,
1841       0,   952,   952,     0,     0,  1295,   232,   233,    89,     0,
1842       0,     0,     0,  1296,  1297,     0,   234,     0,     0,     0,
1843       0,     0,     0,     0,     0,    92,    93,     0,    95,   235,
1844       0,  1402,    42,   505,   237,   226,     0,     0,  1298,     0,
1845       0,     0,   238,   227,   228,     0,   230,     0,     0,     0,
1846       0,     0,   598,     0,     0,     0,     0,     0,     0,   599,
1847       0,   600,   601,     0,   898,     0,  1434,     0,     0,     0,
1848    1436,   231,     0,     0,     0,     0,     0,  1029,     0,     0,
1849       0,   898,   589,     0,     0,     0,     0,   232,   233,   590,
1850       0,   591,   592,     0,     0,     0,     0,   234,     0,     0,
1851       0,  1164,     0,  1299,     0,     0,    92,    93,     0,    95,
1852     235,  1468,     0,    42,   236,   237,     0,     0,   230,     0,
1853       0,     0,     0,   238,     0,  1471,     0,     0,     0,     0,
1854       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1855       0,     0,     0,   231,     0,     0,     0,     0,   230,  1300,
1856       0,     0,     0,     0,     0,     0,     0,     0,     0,  1301,
1857    1302,  1243,  1243,  1029,     0,     0,     0,     0,     0,   234,
1858       0,     0,     0,   231,     0,  1529,     0,   507,  1303,  1304,
1859       0,  1305,  1306,   226,     0,    42,  1307,   237,     0,   232,
1860     233,   227,   228,     0,     0,   238,  1177,     0,  1177,   234,
1861       0,     0,     0,     0,     0,     0,     0,     0,    92,    93,
1862       0,    95,   235,     0,     0,    42,   236,   237,     0,     0,
1863       0,     0,     0,   226,     0,   238,     0,     0,     0,     0,
1864     598,   227,   228,     0,     0,     0,     0,   599,     0,   600,
1865     601,     0,     0,     0,   895,     0,  1244,  1244,     0,     0,
1866       0,     0,     0,  1568,  1029,   895,     0,     0,     0,     0,
1867       0,     0,     0,     0,     0,     0,     0,     0,     0,  1152,
1868    1153,     0,     0,  1207,     0,     0,   226,  1154,     0,  1155,
1869       0,     0,     0,     0,   227,   228,     0,     0,     0,     4,
1870       0,     0,     0,     0,     0,     0,   230,     0,  1596,  1597,
1871    1598,  1599,  1600,  1601,  1602,  1603,  1604,  1605,  1606,  1607,
1872    1608,  1609,  1610,  1614,  1615,  1617,  1619,     0,     0,     0,
1873       0,   231,     0,   226,     0,     0,     0,     0,     0,     8,
1874       0,   227,   228,     0,   226,     0,   230,   232,   233,     0,
1875       0,     0,   227,   228,   924,     0,     0,   234,     0,     0,
1876       0,     0,     0,     0,     0,     0,    92,    93,     0,    95,
1877     235,   231,     0,    42,   236,   237,     0,     0,  1653,     0,
1878       0,     0,     0,   238,     0,     0,     0,   232,   233,     0,
1879       0,     0,     0,     0,     0,     0,     0,   234,     0,   230,
1880       0,     0,     0,  1207,     0,     0,    92,    93,     0,    95,
1881     235,     0,     0,    42,   236,   237,   397,   226,     0,     0,
1882    1680,     0,     0,   238,   231,   227,   228,     0,     0,     0,
1883       0,     0,     0,     0,     0,     0,     0,  1681,  1682,     0,
1884     232,   233,  1683,     0,  1684,     0,   230,     0,     0,     0,
1885     234,     0,     0,     0,     0,     0,     0,   230,     0,    92,
1886      93,     0,    95,   235,     0,   226,    42,   236,   237,     0,
1887       0,   231,    12,   227,   228,  1251,   238,     0,     0,     0,
1888       0,     0,   231,     0,     0,     0,     0,   232,   233,     0,
1889       0,     0,     0,     0,     0,   226,     0,   234,   232,   233,
1890       0,     0,  1706,   227,   228,  -393,    92,    93,   234,    95,
1891     235,     0,     0,    42,   236,   237,     0,    92,    93,     0,
1892      95,   235,     0,   238,    42,   236,   237,   226,  1718,     0,
1893     230,     0,     0,     0,   238,   227,   228,     0,     0,     0,
1894       0,     0,     0,  1725,     0,  1706,  1728,     0,     0,     0,
1895       0,   226,  1730,     0,     0,   231,     0,  1733,     0,   227,
1896     228,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1897       0,   232,   233,     0,     0,   226,     0,     0,   230,     0,
1898       0,   234,     0,   227,   228,     0,     0,     0,     0,     0,
1899      92,    93,     0,    95,   235,     0,     0,   537,   236,   237,
1900    1238,     0,     0,   231,     0,   226,     0,   238,   230,     0,
1901       0,     0,     0,   227,   228,     0,     0,     0,     0,   232,
1902     233,     0,     0,     0,     0,     0,     0,     0,     0,   234,
1903       0,     0,     0,   231,     0,     0,     0,     0,    92,    93,
1904     230,    95,   235,     0,     0,    42,   236,   237,     0,   232,
1905     233,     0,     0,   226,     0,   238,     0,     0,     0,   234,
1906       0,   227,   228,     0,   230,   231,     0,     0,    92,    93,
1907       0,    95,   235,     0,     0,    42,   236,   237,     0,     0,
1908       0,   232,   233,     0,   226,   238,     0,     0,   230,   231,
1909       0,   234,   227,   228,     0,     0,     0,     0,     0,     0,
1910      92,    93,     0,    95,   235,   232,   233,    42,   236,   353,
1911       0,     0,     0,   231,     0,   234,     0,   238,   230,     0,
1912       0,     0,     0,     0,    92,    93,     0,    95,   235,   232,
1913     233,    42,   236,   356,     0,     0,     0,   226,     0,   234,
1914       0,   238,     0,   231,     0,   227,   228,     0,    92,    93,
1915       0,    95,   235,     0,     0,    42,   236,   405,     0,   232,
1916     233,     0,     0,     0,     0,   238,   230,     0,     0,   234,
1917       0,     0,     0,     0,     0,     0,     0,     0,    92,    93,
1918       0,    95,   235,     0,     0,    42,   236,   237,     0,     0,
1919       0,   231,     0,     0,     0,   238,     0,   230,     0,     0,
1920       0,     0,     0,     0,     0,     0,     0,   232,   233,     0,
1921       0,     0,     0,     0,     0,     0,     0,   234,     0,     0,
1922       0,    79,   231,     0,     0,     0,    92,    93,    80,    95,
1923     235,     0,     0,   537,   236,   237,     0,     0,   232,   233,
1924       0,     0,     0,   238,     0,     0,     0,     0,   234,     0,
1925     230,     0,     0,     0,     0,     0,     0,    92,    93,     0,
1926      95,   235,     0,     0,    42,   236,  1028,     0,     0,     0,
1927       0,     0,     0,     0,   238,   231,     0,     0,    81,     0,
1928       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1929       0,   232,   233,     0,     0,    82,    83,     0,     0,     0,
1930       0,   234,     0,     0,     0,     0,     0,    84,     0,     0,
1931      92,    93,     0,    95,   235,     0,     0,  1081,  1082,  1083,
1932       0,     0,     0,     0,     0,     0,  -448,   238,    85,    80,
1933      86,    87,     0,     0,     0,   155,  -461,     0,  -474,     0,
1934       0,     0,     0,    88,  -706,   156,     0,     0,     0,     0,
1935       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1936       0,     0,     0,    89,     0,     0,    90,    91,  -333,     0,
1937       0,  -333,  -333,  -333,  -333,   157,     0,     0,     0,  -333,
1938      92,    93,    94,    95,     0,  -333,     0,    96,    97,     0,
1939     158,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1940       0,  -706,  -706,  -706,     0,   159,     0,    80,    84,     0,
1941    -706,     0,   160,   155,     0,   161,   162,     0,   163,     0,
1942       0,   164,     0,   156,   165,   166,   167,     0,  -706,     0,
1943      80,     0,     0,     0,     0,     0,   155,     0,     0,     0,
1944       0,     0,     0,     0,     0,     0,   156,     0,     0,     0,
1945     168,     0,     0,   157,     0,     0,     0,     0,     0,     0,
1946       0,     0,     0,     0,    89,  -706,  -706,    90,   158,     0,
1947       0,     0,     0,     0,     0,     0,   157,     0,     0,     0,
1948       0,    92,    93,   159,    95,     0,    84,  -128,   169,    97,
1949     160,   158,     0,   161,   162,     0,   163,     0,     0,   164,
1950       0,     0,   165,   166,   167,     0,   159,     0,     0,    84,
1951    -129,     0,     0,   160,   155,     0,   161,   162,     0,   163,
1952       0,     0,   164,     0,   156,   165,   166,   167,   168,     0,
1953       0,     0,     0,     0,     0,     0,     0,   820,     0,     0,
1954       0,     0,    89,     0,     0,    90,     0,     0,     0,     0,
1955       0,   168,     0,     0,   157,     0,     0,  -128,     0,    92,
1956      93,     0,    95,     0,     0,    89,   169,    97,    90,   158,
1957       0,     0,     0,     0,     0,     0,     0,   157,     0,     0,
1958    -129,     0,    92,    93,   159,    95,     0,    84,  -125,   169,
1959      97,   160,   158,     0,   161,   162,     0,   163,     0,     0,
1960     164,     0,  1033,   165,   166,   167,     0,   159,     0,     0,
1961       0,     0,     0,     0,   160,   820,     0,   161,   162,     0,
1962     163,     0,     0,   164,     0,     0,   165,   166,   167,   168,
1963       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1964       0,     0,     0,    89,     0,     0,    90,     0,     0,     0,
1965       0,     0,   168,     0,     0,   157,     0,     0,  -125,     0,
1966      92,    93,     0,    95,     0,     0,    89,   169,    97,     0,
1967     158,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1968       0,     0,     0,    92,    93,   159,    95,     0,     0,     0,
1969      42,    97,   160,     0,     0,   161,   162,     0,   163,     0,
1970       0,   164,     0,     0,   165,   166,   167,     0,     0,     0,
1971       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1972       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1973     168,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1974       0,     0,     0,     0,    89,     0,     0,     0,     0,     0,
1975       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1976       0,    92,    93,     0,    95,     0,     0,     0,    42,    97
1977};
1978
1979static const yytype_int16 yycheck[] =
1980{
1981      11,   459,   168,   213,   294,   220,   294,    52,   459,   384,
1982      90,    56,   384,   154,   237,   164,   165,   136,    52,    52,
1983     497,   288,   654,   168,    57,   494,   721,   921,   237,    62,
1984      63,   154,   294,   291,   141,   258,    73,   322,   858,   219,
1985    1006,    52,   109,  1006,   497,   294,    57,   213,   237,   606,
1986     551,    62,    63,    52,    52,   100,   591,    52,   319,   935,
1987     936,    94,    73,   695,   982,   600,   100,   100,  1028,   258,
1988     934,   104,  1098,   305,   673,   570,   942,   495,   258,   259,
1989     867,   868,   869,    94,   882,   883,     3,   874,  1273,   100,
1990     625,  1176,  1277,   104,   110,  1280,   172,     3,  1268,     3,
1991      21,   100,   100,     3,   146,   100,  1506,    19,    20,     3,
1992       3,     3,     3,     3,    21,     3,     3,     3,    24,    56,
1993    1268,  1555,     3,   191,     3,     3,   194,     3,     3,     3,
1994     353,   109,     3,   356,     3,   940,    24,    24,    24,   172,
1995       3,  1575,     3,     3,   353,     3,    24,   356,    24,    24,
1996     382,   193,     3,     3,    24,    24,   191,    24,    64,  1457,
1997     305,   172,   197,  1268,   353,     3,    24,   356,     3,   459,
1998       3,   459,   124,     3,    24,     3,    64,    64,    64,     3,
1999       3,     3,   405,   220,   399,   560,    64,     3,    64,    64,
2000       3,    24,   333,  1087,    24,    64,   405,    64,     3,     3,
2001       3,    24,    24,  1163,   353,   420,    64,   356,     3,   418,
2002     333,     3,     3,   191,    64,     3,   405,    97,    27,     5,
2003     259,     4,   159,   175,     5,   678,   237,     3,     5,     3,
2004     184,    64,   154,   167,    64,   380,   381,   382,   418,   191,
2005     325,    64,    64,    21,   311,   425,    21,  1417,   428,   325,
2006     317,   431,    19,    20,    24,    18,     5,     5,   192,    22,
2007     154,   154,   713,     3,   522,   145,     3,   304,   279,   191,
2008     193,  1441,   193,   310,   497,  1080,   971,   194,     3,  1577,
2009     192,   388,   319,   294,    21,   322,   193,  1687,   497,   374,
2010     194,   197,   325,  1441,   194,   199,   586,  1382,   374,   315,
2011     316,  1261,   194,   194,   194,   723,   194,  1173,   497,   197,
2012     197,   197,   200,   194,   325,   194,   606,   497,    24,   197,
2013     194,   197,   197,   194,   586,   191,  1124,   197,   197,  1116,
2014     197,   194,   331,   194,   194,   501,  1441,  1556,    97,   197,
2015     875,   374,   353,   194,   606,   356,   881,   197,   359,   884,
2016     384,   384,    97,   888,   849,   191,   194,  1576,    64,   194,
2017     160,    24,   399,   374,   197,   136,   194,   197,   305,   731,
2018     194,   154,   971,   384,   197,   197,   738,  1009,   194,   418,
2019     154,   194,   191,   420,   421,  1555,   145,  1557,   620,   194,
2020     194,   194,   431,  1563,   405,   394,   395,   146,   146,   194,
2021     145,    64,   194,   194,  1589,  1575,   194,   193,   184,   185,
2022     421,   187,   193,   191,   154,   191,   193,   154,   193,   499,
2023     500,   188,   193,   191,   191,   192,   459,    24,   191,   154,
2024      24,   721,   191,   721,    24,    29,   194,    31,   587,   588,
2025     589,    48,   561,   380,   381,   382,   191,   384,   459,   598,
2026     193,   666,   519,   663,    47,   678,   199,   667,   668,   721,
2027     718,    33,   495,   496,   497,   572,   689,    64,    97,   678,
2028     611,    24,   721,    24,    64,   620,    48,   557,  1438,   110,
2029     111,  1399,  1508,  1347,   495,   496,   497,   113,   611,   678,
2030     501,   197,  1458,    87,  1370,  1458,    24,   663,   678,   194,
2031     689,   667,   668,   110,   111,    19,    20,   765,    52,   689,
2032     154,    64,    29,    64,    31,   560,   145,    29,   551,    31,
2033     114,   532,   567,    52,   982,   994,   560,   560,   191,  1006,
2034     788,   982,   741,  1010,   197,  1333,    64,   160,   131,   170,
2035     551,   167,    24,   554,   191,    52,   807,   191,   809,   560,
2036     116,   117,  1350,  1006,  1186,   169,   100,  1010,   591,   592,
2037      52,   741,   560,   170,    24,   560,   192,   600,   601,   567,
2038      87,   100,   193,  1074,  1361,   586,   143,   191,   172,    24,
2039     591,   592,    64,   154,    24,  1142,  1417,    52,   182,   600,
2040     601,    24,   625,   100,   191,   606,   191,   114,    22,   194,
2041     197,   191,   154,   197,    64,   172,   639,   197,   100,  1503,
2042     124,     4,  1578,   102,   625,  1578,   167,   167,   107,    64,
2043    1155,   110,    18,   560,    64,   191,    22,   638,   639,   666,
2044     567,    64,   182,   184,   185,   100,   187,   193,   191,   191,
2045     191,   192,   192,   654,   197,     3,   197,  1467,   193,     3,
2046     139,   165,   166,   590,   199,   172,   174,    99,   100,   101,
2047      18,   175,   599,   191,    22,   182,   193,   678,    22,   197,
2048     184,   185,   821,   187,   188,   193,   194,   191,   192,   193,
2049     174,   199,     3,   620,   695,   622,   623,   624,   130,   188,
2050     723,    38,   982,   192,   982,   172,   138,   425,   983,   193,
2051     428,    22,   713,   130,   191,   168,   169,   194,   140,   191,
2052     721,   142,   723,   200,   193,   197,    12,    13,    14,    15,
2053      16,    17,    18,   872,   843,  1556,  1557,   764,   191,     5,
2054     191,   191,  1563,   194,   112,   802,   885,   197,    29,   200,
2055      31,   192,   193,  1438,   851,  1576,   191,   124,  1217,  1643,
2056     193,   191,   197,   902,    21,    22,   767,   197,   191,   908,
2057     175,   176,   177,   178,   197,  1216,     6,     7,   183,   806,
2058     807,   193,   809,   922,   189,   916,    28,    29,    30,    31,
2059      68,    69,    70,  1006,    72,    37,   193,  1010,   933,   193,
2060     191,   824,   193,   916,    99,   100,    87,  1006,   175,  1431,
2061    1175,  1010,   193,  1175,    24,  1028,   193,   184,   185,    29,
2062     187,    31,   749,   824,   191,  1105,  1192,  1006,  1194,  1028,
2063     167,  1010,     4,   114,   858,   858,    29,    29,    31,    31,
2064    1010,   112,   104,   870,   106,    87,   193,   184,   185,  1028,
2065     187,    47,   875,  1105,   191,   192,   192,   858,   881,   882,
2066     883,   884,  1142,   886,  1312,   888,   889,  1023,  1316,   193,
2067    1083,   193,   114,   200,   875,   161,   162,   163,   164,   200,
2068     881,   882,   883,   884,  1083,   886,   921,   888,   889,     5,
2069    1142,   172,   172,   173,    87,    87,   923,   174,   921,   184,
2070     185,   182,   187,    23,  1083,    10,   191,   191,     4,   195,
2071     196,   912,   935,   936,     8,    11,   157,   158,   159,   193,
2072     921,   114,   114,    19,    20,    21,    25,   191,   192,     4,
2073     172,   858,   172,   173,   935,   936,   104,   105,    40,    41,
2074     184,   185,   193,   187,  1083,   191,   873,   191,   167,     5,
2075     194,  1399,  1592,  1593,   191,   197,   983,   146,  1399,   982,
2076     887,    62,    63,   191,  1221,   184,   185,   191,   187,   168,
2077     971,   104,   191,   192,   208,   209,   199,    73,  1005,   172,
2078     172,   982,  1121,   184,   185,   193,   187,  1010,   191,   182,
2079     191,  1458,   194,   194,   921,   326,   327,  1136,    94,   193,
2080      99,   100,   101,     5,  1005,  1006,   933,  1077,  1009,  1010,
2081     194,     5,  1225,  1378,  1153,     5,  1378,     3,  1266,   150,
2082     174,   174,  1023,   174,  1224,   194,  1225,  1028,   124,   202,
2083     174,   130,  1312,   132,   133,   134,  1316,   194,   137,   138,
2084       5,   140,   141,   191,   193,    22,  1225,     3,   191,   191,
2085       4,  1074,  1087,   149,   193,  1225,     3,    11,   194,  1060,
2086     110,     4,   194,   173,  1087,    19,    20,    21,  1224,   165,
2087     166,   184,   185,  1074,   187,   154,   191,     3,   191,   175,
2088    1107,   194,  1083,     3,  1085,   191,  1087,   199,   184,   185,
2089     193,   187,   188,     4,   194,   191,   192,   193,     4,   184,
2090     185,  1124,   187,   113,  1105,   201,   191,   102,  1278,     0,
2091       1,  1578,   107,   184,   185,   110,   187,   193,   134,  1399,
2092     191,  1399,   193,  1124,   191,   120,   194,   122,  1151,   182,
2093     125,   126,  1155,    24,   194,    19,    20,    28,    29,    30,
2094      31,  1142,   193,   182,   139,   194,    37,     5,   191,   144,
2095    1151,  1175,  1175,    39,  1155,   191,   182,   102,   182,   194,
2096    1087,     3,   107,   174,    18,   110,     5,     3,    65,    66,
2097     124,   193,    22,    64,  1175,   120,   193,   122,     3,   191,
2098     125,   126,   103,    80,  1185,  1186,   193,    84,    21,   193,
2099      21,  1218,   193,    90,   139,   149,    87,   194,     3,   144,
2100     154,   193,   175,   176,   177,   178,   184,   185,   193,   187,
2101     183,   165,   166,   191,   193,  1216,   189,     3,   191,     3,
2102     191,   175,   191,   114,  1225,   169,  1365,  1154,   146,   193,
2103     184,   185,   193,   187,   188,   139,     3,   191,   192,   193,
2104     124,  1268,   184,   185,   154,   187,  1273,   201,  1175,   191,
2105    1277,   193,   114,  1280,  1695,     3,   193,    30,     5,     5,
2106    1708,   158,  1289,     3,     5,   194,     3,   194,    31,  1270,
2107      38,   168,    29,     3,     3,   194,   103,   194,   194,   194,
2108       5,   172,     4,    21,   175,   176,   177,   178,   193,  1312,
2109     193,   175,   183,  1316,   194,   191,    20,     4,   189,     4,
2110     184,   185,   194,   187,   188,   194,   197,   191,   192,   191,
2111    1333,  1312,   191,   194,  1341,  1316,   194,   194,     5,     3,
2112     107,     3,   194,   110,  1251,     4,    26,  1350,    94,    73,
2113     194,     5,  1333,   120,   194,   122,     5,     4,   125,   126,
2114     108,     3,   199,   103,  1549,   113,   193,  1370,  1548,  1350,
2115     118,   119,   139,   121,  1378,  1378,   124,   144,   199,   127,
2116     128,   129,   191,   146,   194,  1565,   194,   193,   191,  1370,
2117    1397,   103,   194,     4,     3,     5,  1399,  1378,   275,     3,
2118       5,     4,     3,   280,   193,     5,   283,     5,     3,    22,
2119    1417,   194,  1548,   290,     3,    21,     4,     3,  1399,   167,
2120       3,     3,   194,     4,     3,     3,   194,   304,     4,  1565,
2121     307,   191,   194,   194,  1441,    52,   184,   185,   194,   187,
2122      57,   193,   191,   191,   192,    62,    63,   191,  1708,   194,
2123    1431,     3,   191,  1360,     3,  1458,   191,  1438,     4,     4,
2124      21,     5,   194,  1467,  1467,   194,   343,   344,     3,   346,
2125       4,  1378,   194,     3,    22,   194,     3,    94,   355,   194,
2126     357,   194,   193,   100,     3,     3,  1467,   104,  1503,     4,
2127       4,   368,     4,   370,   194,   194,   194,    11,   194,     4,
2128    1503,  1719,    49,   124,  1590,    19,    20,    21,   100,  1516,
2129    1513,   916,  1006,   390,  1006,  1269,    20,  1697,   412,  1278,
2130     718,  1524,  1503,  1222,   519,  1441,    11,  1266,   149,   421,
2131    1006,  1431,  1513,  1430,  1270,   405,   252,  1050,   788,  1557,
2132    1563,  1558,  1549,  1524,   165,   166,  1417,   790,  1555,  1556,
2133    1557,   721,  1010,   496,   175,   172,  1563,   980,  1006,  1060,
2134    1467,  1697,   802,   184,   185,  1286,   187,   188,  1575,  1576,
2135     191,   192,   193,  1695,  1216,  1578,  1564,   993,   460,   889,
2136     201,   554,  1589,  1023,   560,  1514,  1524,  1350,  1105,  1516,
2137     467,  1341,   560,  1525,   471,   448,  1503,   447,   266,   450,
2138     455,   764,   807,   452,     4,   482,   560,   809,   804,  1590,
2139     124,    11,   318,   565,  1380,   565,   386,  1121,   560,    19,
2140      20,   619,   499,   500,   327,   560,   503,   879,  1643,   560,
2141     601,  1365,   509,   621,   560,   149,   933,   936,  1370,   560,
2142    1643,     4,  1438,   381,   560,  1652,   908,   560,    11,   526,
2143     560,   165,   166,   902,   333,  1136,    19,    20,   535,    54,
2144    1667,   175,  1643,  1687,   468,   281,   711,   544,   695,   638,
2145     184,   185,   560,   187,   188,   552,  1186,   191,   192,   193,
2146     557,    26,  1185,  1189,  1393,  1085,    -1,   201,    -1,    -1,
2147      -1,   658,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   576,
2148      -1,   318,    -1,    -1,    -1,  1708,  1713,    -1,   325,  1716,
2149      -1,    -1,    -1,     4,  1695,    -1,    -1,    -1,    -1,    -1,
2150      11,    -1,  1729,    -1,   124,    -1,    -1,  1708,    19,    20,
2151      -1,    -1,    -1,    -1,    -1,    -1,  1643,  1644,    -1,    -1,
2152      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   149,
2153      -1,    -1,    -1,    -1,    -1,    -1,    -1,   374,    -1,    -1,
2154     637,   124,    -1,   380,   381,   165,   166,   384,     5,    -1,
2155      -1,   648,    -1,    -1,    11,   175,    -1,    -1,    -1,    -1,
2156     657,    -1,    19,    20,   184,   185,   149,   187,   188,    -1,
2157      -1,   191,   192,   193,    -1,    -1,    -1,    -1,    -1,    -1,
2158      -1,   201,   165,   166,    -1,    -1,    -1,    -1,    -1,    -1,
2159      -1,    -1,   175,    -1,    -1,    -1,     4,    -1,    -1,    -1,
2160      -1,   184,   185,    11,   187,   188,    -1,    -1,   191,   192,
2161     193,    19,    20,   124,    -1,    -1,    -1,    -1,   201,     5,
2162       6,     7,     8,     9,    10,   722,    12,    13,    14,    15,
2163      16,    17,    -1,    19,    20,    21,    22,    23,   149,    -1,
2164      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   745,    -1,
2165     747,    -1,    -1,    -1,   165,   166,    -1,    -1,   495,   496,
2166     497,    -1,    -1,    -1,   175,   762,    -1,   124,    -1,    -1,
2167      -1,   768,    -1,   184,   185,    -1,   187,   188,    -1,    -1,
2168     191,   192,   193,    -1,     4,    -1,    -1,    -1,    -1,    -1,
2169     201,    11,   149,    -1,    -1,    -1,    -1,    -1,    -1,    19,
2170      20,    -1,    -1,   800,    -1,    -1,    -1,    -1,   165,   166,
2171      -1,    -1,    -1,    -1,   551,   812,   124,     4,   175,    -1,
2172     817,    -1,   819,   560,    11,    -1,    -1,   184,   185,    -1,
2173     187,   188,    19,    20,   191,   192,   193,    -1,    -1,    11,
2174      -1,   149,    -1,    -1,   201,    -1,    -1,    19,    20,    -1,
2175     847,    -1,    24,    -1,   591,   592,    -1,   165,   166,    -1,
2176      -1,   858,    -1,   600,   601,    -1,    -1,   175,    -1,    -1,
2177      -1,    -1,    -1,    -1,    -1,    -1,   184,   185,    -1,   187,
2178     188,    -1,   619,   191,   192,   193,    -1,    -1,   625,    -1,
2179      -1,    -1,    64,   201,    -1,    -1,    -1,    -1,    -1,    -1,
2180      -1,    -1,   639,    -1,   124,    -1,   903,    -1,   194,   195,
2181     196,    -1,   909,    -1,    -1,    94,    -1,   654,    -1,    -1,
2182      -1,    -1,    -1,    -1,    -1,   104,    -1,    -1,     4,   149,
2183      -1,    -1,    -1,    -1,    -1,    11,    -1,   124,    -1,    -1,
2184      -1,    -1,    -1,    19,    20,   165,   166,   944,    -1,    -1,
2185     947,   948,   124,    -1,    -1,   175,    -1,    -1,   695,    -1,
2186      -1,    -1,   149,    -1,   184,   185,    -1,   187,   188,    -1,
2187      -1,   191,   192,   193,    -1,    -1,    -1,   149,   165,   166,
2188      -1,   201,    -1,    -1,    -1,    -1,   723,    -1,   175,    -1,
2189      -1,    -1,    -1,   165,   166,    -1,    -1,   184,   185,    -1,
2190     187,   188,    -1,   175,   191,   192,   193,    -1,    -1,    -1,
2191      -1,    -1,   184,   185,   201,   187,   188,    -1,    -1,   191,
2192     192,   193,    -1,    -1,    -1,   197,    -1,    -1,    -1,   201,
2193      -1,    -1,    -1,  1030,    -1,    -1,  1033,    -1,    -1,    -1,
2194      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1044,   124,  1046,
2195      -1,    -1,    -1,    -1,  1051,    -1,    -1,    -1,    -1,    -1,
2196      -1,  1058,  1059,   157,    -1,    -1,    -1,    -1,    -1,     4,
2197      -1,    -1,    -1,   149,   168,    -1,    11,    -1,    -1,    -1,
2198    1077,  1078,    -1,    -1,    19,    20,    -1,   824,    -1,   165,
2199     166,    -1,    -1,    -1,  1091,    -1,  1093,    -1,    -1,   175,
2200      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1104,   184,   185,
2201      -1,   187,   188,    -1,    -1,   191,   192,   193,    -1,    -1,
2202      -1,   858,    -1,    -1,    -1,   201,    -1,    -1,    -1,    -1,
2203      -1,    -1,    -1,    -1,    -1,    -1,    -1,   231,   875,   318,
2204      -1,    -1,    -1,   237,   881,   882,   883,   884,     5,   886,
2205      -1,   888,   889,    -1,    11,    -1,    -1,    -1,   252,    -1,
2206      -1,    -1,    19,    20,  1161,    22,    -1,    -1,  1165,    -1,
2207      -1,    -1,  1169,    -1,  1171,  1172,    -1,    -1,    -1,    -1,
2208      -1,    -1,    -1,    -1,   921,  1182,    -1,    -1,    -1,   124,
2209      -1,    -1,    -1,    19,    20,    -1,   933,    -1,   935,   936,
2210      -1,   380,   381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2211      -1,   305,   306,  1210,   149,    -1,    -1,    -1,    -1,    -1,
2212    1217,    -1,    -1,  1220,   318,    -1,  1223,   321,    -1,    -1,
2213     165,   166,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2214     175,    -1,    -1,   337,   338,    -1,    -1,    -1,    -1,   184,
2215     185,  1248,   187,   188,    -1,    -1,   191,   192,   193,   353,
2216      -1,    -1,   356,    -1,    -1,    -1,   201,   124,    -1,  1006,
2217      -1,    -1,  1009,  1010,    -1,    -1,    -1,    -1,    -1,    -1,
2218      -1,    -1,    -1,    -1,   378,    -1,   380,   381,   382,    -1,
2219      -1,     5,   149,  1290,    -1,  1292,    -1,    11,   124,    -1,
2220      -1,    -1,    -1,    -1,    -1,    19,    20,    -1,   165,   166,
2221      -1,   405,    -1,    -1,    -1,    -1,   495,   496,   175,    -1,
2222      -1,    -1,    -1,   149,    -1,    -1,  1323,   184,   185,    -1,
2223     187,   188,  1329,    -1,   191,   192,   193,  1074,    -1,   165,
2224     166,    -1,    -1,    -1,   201,    -1,    -1,    -1,  1345,   175,
2225    1087,    -1,  1349,    -1,    -1,    -1,    -1,    -1,   184,   185,
2226      -1,   187,   188,    -1,    -1,   191,   192,   193,    -1,  1366,
2227      -1,  1368,   551,    -1,  1371,   201,  1373,  1374,    -1,  1376,
2228      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1124,    -1,    -1,
2229    1387,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2230      -1,    -1,     5,    -1,   498,    -1,    -1,   501,    11,    -1,
2231     124,    -1,   591,   592,  1151,    -1,    19,    20,  1155,   513,
2232      -1,   600,   601,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2233      -1,    -1,    -1,    -1,    -1,   149,    -1,    -1,  1175,    -1,
2234     619,    -1,    -1,  1440,    -1,    -1,   625,    -1,  1185,  1186,
2235      -1,   165,   166,    -1,    11,    -1,    -1,    -1,    -1,    -1,
2236     639,   175,    19,    20,    -1,    -1,    -1,    -1,    -1,    -1,
2237     184,   185,    -1,   187,   188,   654,    -1,   191,   192,   193,
2238      -1,    -1,    -1,    -1,    -1,    -1,    -1,   201,    -1,    -1,
2239      -1,    -1,    49,    -1,    51,    52,    53,    54,    -1,    56,
2240      -1,    58,    59,    -1,    -1,    -1,    -1,  1504,    65,    -1,
2241      67,    -1,    69,  1510,    -1,    -1,   695,    -1,  1515,    -1,
2242      -1,   124,    -1,    -1,    -1,    -1,   620,    -1,    -1,  1526,
2243    1527,  1528,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2244    1537,    -1,    -1,    -1,   723,    -1,   149,