47 #define YYBISON_VERSION "2.5"
50 #define YYSKELETON_NAME "yacc.c"
62 #define YYLSP_NEEDED 0
73 #define PARSER_DEBUG 0
76 #define YYERROR_VERBOSE 1
77 #define YYSTACK_USE_ALLOCA 0
92 #define numberof(array) (int)(sizeof(array) / sizeof((array)[0]))
94 #define YYMALLOC(size) rb_parser_malloc(parser, (size))
95 #define YYREALLOC(ptr, size) rb_parser_realloc(parser, (ptr), (size))
96 #define YYCALLOC(nelem, size) rb_parser_calloc(parser, (nelem), (size))
97 #define YYFREE(ptr) rb_parser_free(parser, (ptr))
98 #define malloc YYMALLOC
99 #define realloc YYREALLOC
100 #define calloc YYCALLOC
106 #define REGISTER_SYMID(id, name) register_symid((id), (name), strlen(name), enc)
110 #define is_notop_id(id) ((id)>tLAST_OP_ID)
111 #define is_local_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_LOCAL)
112 #define is_global_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_GLOBAL)
113 #define is_instance_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_INSTANCE)
114 #define is_attrset_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_ATTRSET)
115 #define is_const_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CONST)
116 #define is_class_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CLASS)
117 #define is_junk_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_JUNK)
118 #define id_type(id) (is_notop_id(id) ? (int)((id)&ID_SCOPE_MASK) : -1)
120 #define is_asgn_or_id(id) ((is_notop_id(id)) && \
121 (((id)&ID_SCOPE_MASK) == ID_GLOBAL || \
122 ((id)&ID_SCOPE_MASK) == ID_INSTANCE || \
123 ((id)&ID_SCOPE_MASK) == ID_CLASS))
141 #define DEF_EXPR(n) EXPR_##n = (1 << EXPR_##n##_bit)
157 #define IS_lex_state_for(x, ls) ((x) & (ls))
158 #define IS_lex_state(ls) IS_lex_state_for(lex_state, (ls))
161 static const char *lex_state_name(
enum lex_state_e state);
166 # define BITSTACK_PUSH(stack, n) ((stack) = ((stack)<<1)|((n)&1))
167 # define BITSTACK_POP(stack) ((stack) = (stack) >> 1)
168 # define BITSTACK_LEXPOP(stack) ((stack) = ((stack) >> 1) | ((stack) & 1))
169 # define BITSTACK_SET_P(stack) ((stack)&1)
171 #define COND_PUSH(n) BITSTACK_PUSH(cond_stack, (n))
172 #define COND_POP() BITSTACK_POP(cond_stack)
173 #define COND_LEXPOP() BITSTACK_LEXPOP(cond_stack)
174 #define COND_P() BITSTACK_SET_P(cond_stack)
176 #define CMDARG_PUSH(n) BITSTACK_PUSH(cmdarg_stack, (n))
177 #define CMDARG_POP() BITSTACK_POP(cmdarg_stack)
178 #define CMDARG_LEXPOP() BITSTACK_LEXPOP(cmdarg_stack)
179 #define CMDARG_P() BITSTACK_SET_P(cmdarg_stack)
196 #define DVARS_INHERIT ((void*)1)
197 #define DVARS_TOPSCOPE NULL
198 #define DVARS_SPECIAL_P(tbl) (!POINTER_P(tbl))
199 #define POINTER_P(val) ((VALUE)(val) & ~(VALUE)3)
222 if (
VTBL_DEBUG) printf(
"vtable_alloc: %p\n", (
void *)tbl);
229 if (
VTBL_DEBUG)printf(
"vtable_free: %p\n", (
void *)tbl);
242 rb_bug(
"vtable_add: vtable is not allocated (%p)", (
void *)tbl);
259 for (i = 0; i < tbl->
pos; i++) {
260 if (tbl->
tbl[i] ==
id) {
345 VALUE parser_ruby_sourcefile_string;
353 VALUE parsing_thread;
358 #define STR_NEW(p,n) rb_enc_str_new((p),(n),current_enc)
359 #define STR_NEW0() rb_enc_str_new(0,0,current_enc)
360 #define STR_NEW2(p) rb_enc_str_new((p),strlen(p),current_enc)
361 #define STR_NEW3(p,n,e,func) parser_str_new((p),(n),(e),(func),current_enc)
362 #define ENC_SINGLE(cr) ((cr)==ENC_CODERANGE_7BIT)
363 #define TOK_INTERN(mb) rb_intern3(tok(), toklen(), current_enc)
366 #define yyerror(msg) parser_yyerror(parser, (msg))
368 #define lex_strterm (parser->parser_lex_strterm)
369 #define lex_state (parser->parser_lex_state)
370 #define cond_stack (parser->parser_cond_stack)
371 #define cmdarg_stack (parser->parser_cmdarg_stack)
372 #define class_nest (parser->parser_class_nest)
373 #define paren_nest (parser->parser_paren_nest)
374 #define lpar_beg (parser->parser_lpar_beg)
375 #define brace_nest (parser->parser_brace_nest)
376 #define in_single (parser->parser_in_single)
377 #define in_def (parser->parser_in_def)
378 #define compile_for_eval (parser->parser_compile_for_eval)
379 #define cur_mid (parser->parser_cur_mid)
380 #define in_defined (parser->parser_in_defined)
381 #define tokenbuf (parser->parser_tokenbuf)
382 #define tokidx (parser->parser_tokidx)
383 #define toksiz (parser->parser_toksiz)
384 #define tokline (parser->parser_tokline)
385 #define lex_input (parser->parser_lex_input)
386 #define lex_lastline (parser->parser_lex_lastline)
387 #define lex_nextline (parser->parser_lex_nextline)
388 #define lex_pbeg (parser->parser_lex_pbeg)
389 #define lex_p (parser->parser_lex_p)
390 #define lex_pend (parser->parser_lex_pend)
391 #define heredoc_end (parser->parser_heredoc_end)
392 #define command_start (parser->parser_command_start)
393 #define deferred_nodes (parser->parser_deferred_nodes)
394 #define lex_gets_ptr (parser->parser_lex_gets_ptr)
395 #define lex_gets (parser->parser_lex_gets)
396 #define lvtbl (parser->parser_lvtbl)
397 #define ruby__end__seen (parser->parser_ruby__end__seen)
398 #define ruby_sourceline (parser->parser_ruby_sourceline)
399 #define ruby_sourcefile (parser->parser_ruby_sourcefile)
400 #define current_enc (parser->enc)
401 #define yydebug (parser->parser_yydebug)
404 #define ruby_eval_tree (parser->parser_eval_tree)
405 #define ruby_eval_tree_begin (parser->parser_eval_tree_begin)
406 #define ruby_debug_lines (parser->debug_lines)
407 #define ruby_coverage (parser->coverage)
411 static int yylex(
void*,
void*);
413 static int yylex(
void*);
417 #define yyparse ruby_yyparse
420 #define rb_node_newnode(type, a1, a2, a3) node_newnode(parser, (type), (a1), (a2), (a3))
423 #define cond(node) cond_gen(parser, (node))
425 #define logop(type,node1,node2) logop_gen(parser, (type), (node1), (node2))
433 #define value_expr(node) value_expr_gen(parser, (node) = remove_begin(node))
434 #define void_expr0(node) void_expr_gen(parser, (node))
435 #define void_expr(node) void_expr0((node) = remove_begin(node))
437 #define void_stmts(node) void_stmts_gen(parser, (node))
439 #define reduce_nodes(n) reduce_nodes_gen(parser,(n))
441 #define block_dup_check(n1,n2) block_dup_check_gen(parser,(n1),(n2))
444 #define block_append(h,t) block_append_gen(parser,(h),(t))
446 #define list_append(l,i) list_append_gen(parser,(l),(i))
448 #define list_concat(h,t) list_concat_gen(parser,(h),(t))
450 #define arg_append(h,t) arg_append_gen(parser,(h),(t))
452 #define arg_concat(h,t) arg_concat_gen(parser,(h),(t))
454 #define literal_concat(h,t) literal_concat_gen(parser,(h),(t))
457 #define new_evstr(n) new_evstr_gen(parser,(n))
459 #define evstr2dstr(n) evstr2dstr_gen(parser,(n))
463 #define call_bin_op(recv,id,arg1) call_bin_op_gen(parser, (recv),(id),(arg1))
465 #define call_uni_op(recv,id) call_uni_op_gen(parser, (recv),(id))
468 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t))
470 #define new_args_tail(k,kr,b) new_args_tail_gen(parser, (k),(kr),(b))
474 #define ret_args(node) ret_args_gen(parser, (node))
477 #define new_yield(node) new_yield_gen(parser, (node))
479 #define dsym_node(node) dsym_node_gen(parser, (node))
482 #define gettable(id) gettable_gen(parser,(id))
484 #define assignable(id,node) assignable_gen(parser, (id), (node))
487 #define aryset(node1,node2) aryset_gen(parser, (node1), (node2))
489 #define attrset(node,id) attrset_gen(parser, (node), (id))
492 #define rb_backref_error(n) rb_backref_error_gen(parser,(n))
494 #define node_assign(node1, node2) node_assign_gen(parser, (node1), (node2))
498 #define new_attr_op_assign(lhs, type, attr, op, rhs) new_attr_op_assign_gen(parser, (lhs), (attr), (op), (rhs))
500 #define new_const_op_assign(lhs, op, rhs) new_const_op_assign_gen(parser, (lhs), (op), (rhs))
503 #define match_op(node1,node2) match_op_gen(parser, (node1), (node2))
506 #define local_tbl() local_tbl_gen(parser)
511 #define reg_compile(str,options) reg_compile_gen(parser, (str), (options))
513 #define reg_fragment_setenc(str,options) reg_fragment_setenc_gen(parser, (str), (options))
515 #define reg_fragment_check(str,options) reg_fragment_check_gen(parser, (str), (options))
517 #define reg_named_capture_assign(regexp,match) reg_named_capture_assign_gen(parser,(regexp),(match))
519 #define get_id(id) (id)
520 #define get_value(val) (val)
522 #define value_expr(node) ((void)(node))
523 #define remove_begin(node) (node)
524 #define rb_dvar_defined(id) 0
525 #define rb_local_defined(id) 0
526 static ID ripper_get_id(
VALUE);
527 #define get_id(id) ripper_get_id(id)
529 #define get_value(val) ripper_get_value(val)
531 #define assignable(lhs,node) assignable_gen(parser, (lhs))
533 #define id_is_var(id) id_is_var_gen(parser, (id))
535 #define node_assign(node1, node2) dispatch2(assign, (node1), (node2))
539 #define new_attr_op_assign(lhs, type, attr, op, rhs) new_attr_op_assign_gen(parser, (lhs), (type), (attr), (op), (rhs))
543 #define new_op_assign(lhs, op, rhs) new_op_assign_gen(parser, (lhs), (op), (rhs))
546 #define formal_argument(id) formal_argument_gen(parser, (id))
548 #define shadowing_lvar(name) shadowing_lvar_gen(parser, (name))
550 #define new_bv(id) new_bv_gen(parser, (id))
553 #define local_push(top) local_push_gen(parser,(top))
555 #define local_pop() local_pop_gen(parser)
557 #define local_var(id) local_var_gen(parser, (id))
559 #define arg_var(id) arg_var_gen(parser, (id))
561 #define local_id(id) local_id_gen(parser, (id))
563 #define internal_id() internal_id_gen(parser)
566 #define dyna_push() dyna_push_gen(parser)
568 #define dyna_pop(node) dyna_pop_gen(parser, (node))
570 #define dyna_in_block() dyna_in_block_gen(parser)
571 #define dyna_var(id) local_var(id)
573 #define dvar_defined(id) dvar_defined_gen(parser, (id), 0)
574 #define dvar_defined_get(id) dvar_defined_gen(parser, (id), 1)
576 #define dvar_curr(id) dvar_curr_gen(parser, (id))
579 #define lvar_defined(id) lvar_defined_gen(parser, (id))
581 #define RE_OPTION_ONCE (1<<16)
582 #define RE_OPTION_ENCODING_SHIFT 8
583 #define RE_OPTION_ENCODING(e) (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT)
584 #define RE_OPTION_ENCODING_IDX(o) (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff)
585 #define RE_OPTION_ENCODING_NONE(o) ((o)&RE_OPTION_ARG_ENCODING_NONE)
586 #define RE_OPTION_MASK 0xff
587 #define RE_OPTION_ARG_ENCODING_NONE 32
589 #define NODE_STRTERM NODE_ZARRAY
590 #define NODE_HEREDOC NODE_ARRAY
591 #define SIGN_EXTEND(x,n) (((1<<(n)-1)^((x)&~(~0<<(n))))-(1<<(n)-1))
592 #define nd_func u1.id
593 #if SIZEOF_SHORT == 2
594 #define nd_term(node) ((signed short)(node)->u2.id)
596 #define nd_term(node) SIGN_EXTEND((node)->u2.id, CHAR_BIT*2)
598 #define nd_paren(node) (char)((node)->u2.id >> CHAR_BIT*2)
599 #define nd_nest u3.cnt
604 #define RIPPER_VERSION "0.1.0"
617 #define dispatch0(n) ripper_dispatch0(parser, TOKEN_PASTE(ripper_id_, n))
618 #define dispatch1(n,a) ripper_dispatch1(parser, TOKEN_PASTE(ripper_id_, n), (a))
619 #define dispatch2(n,a,b) ripper_dispatch2(parser, TOKEN_PASTE(ripper_id_, n), (a), (b))
620 #define dispatch3(n,a,b,c) ripper_dispatch3(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c))
621 #define dispatch4(n,a,b,c,d) ripper_dispatch4(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d))
622 #define dispatch5(n,a,b,c,d,e) ripper_dispatch5(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e))
623 #define dispatch7(n,a,b,c,d,e,f,g) ripper_dispatch7(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e), (f), (g))
625 #define yyparse ripper_yyparse
627 #define ripper_intern(s) ID2SYM(rb_intern(s))
628 static VALUE ripper_id2sym(
ID);
630 #define ripper_id2sym(id) ((id) < 256 && rb_ispunct(id) ? \
631 ID2SYM(id) : ripper_id2sym(id))
634 #define arg_new() dispatch0(args_new)
635 #define arg_add(l,a) dispatch2(args_add, (l), (a))
636 #define arg_add_star(l,a) dispatch2(args_add_star, (l), (a))
637 #define arg_add_block(l,b) dispatch2(args_add_block, (l), (b))
638 #define arg_add_optblock(l,b) ((b)==Qundef? (l) : dispatch2(args_add_block, (l), (b)))
639 #define bare_assoc(v) dispatch1(bare_assoc_hash, (v))
640 #define arg_add_assocs(l,b) arg_add((l), bare_assoc(b))
642 #define args2mrhs(a) dispatch1(mrhs_new_from_args, (a))
643 #define mrhs_new() dispatch0(mrhs_new)
644 #define mrhs_add(l,a) dispatch2(mrhs_add, (l), (a))
645 #define mrhs_add_star(l,a) dispatch2(mrhs_add_star, (l), (a))
647 #define mlhs_new() dispatch0(mlhs_new)
648 #define mlhs_add(l,a) dispatch2(mlhs_add, (l), (a))
649 #define mlhs_add_star(l,a) dispatch2(mlhs_add_star, (l), (a))
651 #define params_new(pars, opts, rest, pars2, kws, kwrest, blk) \
652 dispatch7(params, (pars), (opts), (rest), (pars2), (kws), (kwrest), (blk))
654 #define blockvar_new(p,v) dispatch2(block_var, (p), (v))
655 #define blockvar_add_star(l,a) dispatch2(block_var_add_star, (l), (a))
656 #define blockvar_add_block(l,a) dispatch2(block_var_add_block, (l), (a))
658 #define method_optarg(m,a) ((a)==Qundef ? (m) : dispatch2(method_add_arg,(m),(a)))
659 #define method_arg(m,a) dispatch2(method_add_arg,(m),(a))
660 #define method_add_block(m,b) dispatch2(method_add_block, (m), (b))
662 #define escape_Qundef(x) ((x)==Qundef ? Qnil : (x))
671 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t))
678 #define new_args_tail(k,kr,b) new_args_tail_gen(parser, (k),(kr),(b))
686 # define ifndef_ripper(x) (x)
689 # define ifndef_ripper(x)
693 # define rb_warn0(fmt) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt))
694 # define rb_warnI(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
695 # define rb_warnS(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
696 # define rb_warn4S(file,line,fmt,a) rb_compile_warn((file), (line), (fmt), (a))
697 # define rb_warning0(fmt) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt))
698 # define rb_warningS(fmt,a) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt), (a))
700 # define rb_warn0(fmt) ripper_warn0(parser, (fmt))
701 # define rb_warnI(fmt,a) ripper_warnI(parser, (fmt), (a))
702 # define rb_warnS(fmt,a) ripper_warnS(parser, (fmt), (a))
703 # define rb_warn4S(file,line,fmt,a) ripper_warnS(parser, (fmt), (a))
704 # define rb_warning0(fmt) ripper_warning0(parser, (fmt))
705 # define rb_warningS(fmt,a) ripper_warningS(parser, (fmt), (a))
706 static void ripper_warn0(
struct parser_params*,
const char*);
707 static void ripper_warnI(
struct parser_params*,
const char*,
int);
708 static void ripper_warnS(
struct parser_params*,
const char*,
const char*);
709 static void ripper_warning0(
struct parser_params*,
const char*);
710 static void ripper_warningS(
struct parser_params*,
const char*,
const char*);
714 static void ripper_compile_error(
struct parser_params*,
const char *fmt, ...);
715 # define rb_compile_error ripper_compile_error
716 # define compile_error ripper_compile_error
717 # define PARSER_ARG parser,
719 # define rb_compile_error rb_compile_error_with_enc
720 # define compile_error parser->nerr++,rb_compile_error_with_enc
721 # define PARSER_ARG ruby_sourcefile, ruby_sourceline, current_enc,
729 #define YYMAXDEPTH 10000
736 #define token_info_push(token) (RTEST(ruby_verbose) ? token_info_push(parser, (token)) : (void)0)
737 #define token_info_pop(token) (RTEST(ruby_verbose) ? token_info_pop(parser, (token)) : (void)0)
739 #define token_info_push(token)
740 #define token_info_pop(token)
753 #ifdef YYERROR_VERBOSE
754 # undef YYERROR_VERBOSE
755 # define YYERROR_VERBOSE 1
757 # define YYERROR_VERBOSE 0
761 #ifndef YYTOKEN_TABLE
762 # define YYTOKEN_TABLE 0
890 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
908 # define YYSTYPE_IS_TRIVIAL 1
909 # define yystype YYSTYPE
910 # define YYSTYPE_IS_DECLARED 1
932 #elif (defined __STDC__ || defined __C99__FUNC__ \
933 || defined __cplusplus || defined _MSC_VER)
952 # ifdef __SIZE_TYPE__
953 # define YYSIZE_T __SIZE_TYPE__
954 # elif defined size_t
955 # define YYSIZE_T size_t
956 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
957 || defined __cplusplus || defined _MSC_VER)
959 # define YYSIZE_T size_t
961 # define YYSIZE_T unsigned int
965 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
968 # if defined YYENABLE_NLS && YYENABLE_NLS
970 # include <libintl.h>
971 # define YY_(msgid) dgettext ("bison-runtime", msgid)
975 # define YY_(msgid) msgid
980 #if ! defined lint || defined __GNUC__
981 # define YYUSE(e) ((void) (e))
990 #if (defined __STDC__ || defined __C99__FUNC__ \
991 || defined __cplusplus || defined _MSC_VER)
1004 #if ! defined yyoverflow || YYERROR_VERBOSE
1008 # ifdef YYSTACK_USE_ALLOCA
1009 # if YYSTACK_USE_ALLOCA
1011 # define YYSTACK_ALLOC __builtin_alloca
1012 # elif defined __BUILTIN_VA_ARG_INCR
1013 # include <alloca.h>
1015 # define YYSTACK_ALLOC __alloca
1016 # elif defined _MSC_VER
1017 # include <malloc.h>
1018 # define alloca _alloca
1020 # define YYSTACK_ALLOC alloca
1021 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1022 || defined __cplusplus || defined _MSC_VER)
1023 # include <stdlib.h>
1024 # ifndef EXIT_SUCCESS
1025 # define EXIT_SUCCESS 0
1032 # ifdef YYSTACK_ALLOC
1034 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
1035 # ifndef YYSTACK_ALLOC_MAXIMUM
1040 # define YYSTACK_ALLOC_MAXIMUM 4032
1043 # define YYSTACK_ALLOC YYMALLOC
1044 # define YYSTACK_FREE YYFREE
1045 # ifndef YYSTACK_ALLOC_MAXIMUM
1046 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1048 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
1049 && ! ((defined YYMALLOC || defined malloc) \
1050 && (defined YYFREE || defined free)))
1051 # include <stdlib.h>
1052 # ifndef EXIT_SUCCESS
1053 # define EXIT_SUCCESS 0
1057 # define YYMALLOC malloc
1058 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1059 || defined __cplusplus || defined _MSC_VER)
1064 # define YYFREE free
1065 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1066 || defined __cplusplus || defined _MSC_VER)
1074 #if (! defined yyoverflow \
1075 && (! defined __cplusplus \
1076 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1086 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
1090 # define YYSTACK_BYTES(N) \
1091 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
1092 + YYSTACK_GAP_MAXIMUM)
1094 # define YYCOPY_NEEDED 1
1101 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1104 YYSIZE_T yynewbytes; \
1105 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1106 Stack = &yyptr->Stack_alloc; \
1107 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
1108 yyptr += yynewbytes / sizeof (*yyptr); \
1114 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1118 # if defined __GNUC__ && 1 < __GNUC__
1119 # define YYCOPY(To, From, Count) \
1120 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1122 # define YYCOPY(To, From, Count) \
1126 for (yyi = 0; yyi < (Count); yyi++) \
1127 (To)[yyi] = (From)[yyi]; \
1137 #define YYLAST 11084
1140 #define YYNTOKENS 142
1144 #define YYNRULES 619
1146 #define YYNSTATES 1056
1149 #define YYUNDEFTOK 2
1150 #define YYMAXUTOK 352
1152 #define YYTRANSLATE(YYX) \
1153 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1158 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1159 141, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1160 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1161 2, 2, 140, 127, 2, 2, 2, 125, 120, 2,
1162 136, 137, 123, 121, 134, 122, 133, 124, 2, 2,
1163 2, 2, 2, 2, 2, 2, 2, 2, 115, 139,
1164 117, 113, 116, 114, 2, 2, 2, 2, 2, 2,
1165 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1166 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1167 2, 132, 2, 138, 119, 2, 135, 2, 2, 2,
1168 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1169 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1170 2, 2, 2, 130, 118, 131, 128, 2, 79, 80,
1171 66, 67, 68, 2, 69, 83, 84, 74, 73, 70,
1172 71, 72, 77, 78, 81, 82, 2, 2, 2, 2,
1173 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1174 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1175 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1176 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1177 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1178 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1179 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1180 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1181 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1182 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1183 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1184 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1185 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1186 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1187 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1188 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1189 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1190 65, 75, 76, 85, 86, 87, 88, 89, 90, 91,
1191 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1192 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1201 0, 0, 3, 4, 7, 10, 12, 14, 18, 21,
1202 23, 24, 30, 35, 38, 40, 42, 46, 49, 51,
1203 52, 58, 59, 64, 68, 72, 76, 79, 83, 87,
1204 91, 95, 99, 104, 106, 110, 114, 121, 127, 133,
1205 139, 145, 149, 153, 157, 161, 163, 167, 171, 173,
1206 177, 181, 185, 188, 190, 192, 194, 196, 198, 203,
1207 204, 210, 212, 215, 219, 224, 230, 235, 241, 244,
1208 247, 250, 253, 256, 258, 262, 264, 268, 270, 273,
1209 277, 283, 286, 291, 294, 299, 301, 305, 307, 311,
1210 314, 318, 320, 324, 326, 328, 333, 337, 341, 345,
1211 349, 352, 354, 356, 358, 363, 367, 371, 375, 379,
1212 382, 384, 386, 388, 391, 393, 397, 399, 401, 403,
1213 405, 407, 409, 411, 413, 415, 417, 418, 423, 425,
1214 427, 429, 431, 433, 435, 437, 439, 441, 443, 445,
1215 447, 449, 451, 453, 455, 457, 459, 461, 463, 465,
1216 467, 469, 471, 473, 475, 477, 479, 481, 483, 485,
1217 487, 489, 491, 493, 495, 497, 499, 501, 503, 505,
1218 507, 509, 511, 513, 515, 517, 519, 521, 523, 525,
1219 527, 529, 531, 533, 535, 537, 539, 541, 543, 545,
1220 547, 549, 551, 553, 555, 557, 559, 561, 563, 565,
1221 569, 575, 579, 585, 592, 598, 604, 610, 616, 621,
1222 625, 629, 633, 637, 641, 645, 649, 653, 657, 662,
1223 667, 670, 673, 677, 681, 685, 689, 693, 697, 701,
1224 705, 709, 713, 717, 721, 725, 728, 731, 735, 739,
1225 743, 747, 748, 753, 760, 762, 764, 766, 769, 774,
1226 777, 781, 783, 785, 787, 789, 792, 797, 800, 802,
1227 805, 808, 813, 815, 816, 819, 822, 825, 827, 829,
1228 832, 836, 841, 845, 850, 853, 855, 857, 859, 861,
1229 863, 865, 867, 869, 871, 873, 875, 876, 881, 882,
1230 886, 887, 892, 896, 900, 903, 907, 911, 913, 918,
1231 922, 924, 925, 932, 937, 941, 944, 946, 949, 952,
1232 959, 966, 967, 968, 976, 977, 978, 986, 992, 997,
1233 998, 999, 1009, 1010, 1017, 1018, 1019, 1028, 1029, 1035,
1234 1036, 1043, 1044, 1045, 1055, 1057, 1059, 1061, 1063, 1065,
1235 1067, 1069, 1071, 1073, 1075, 1077, 1079, 1081, 1083, 1085,
1236 1087, 1089, 1091, 1094, 1096, 1098, 1100, 1106, 1108, 1111,
1237 1113, 1115, 1117, 1121, 1123, 1127, 1129, 1134, 1141, 1145,
1238 1151, 1154, 1159, 1161, 1165, 1170, 1173, 1176, 1178, 1181,
1239 1182, 1189, 1198, 1203, 1210, 1215, 1218, 1225, 1228, 1233,
1240 1240, 1243, 1248, 1251, 1256, 1258, 1260, 1262, 1266, 1268,
1241 1273, 1275, 1280, 1282, 1286, 1288, 1290, 1291, 1292, 1293,
1242 1299, 1304, 1306, 1310, 1314, 1315, 1321, 1324, 1329, 1335,
1243 1341, 1344, 1345, 1351, 1352, 1358, 1362, 1363, 1368, 1369,
1244 1374, 1377, 1379, 1384, 1385, 1391, 1392, 1398, 1404, 1406,
1245 1408, 1415, 1417, 1419, 1421, 1423, 1426, 1428, 1431, 1433,
1246 1435, 1437, 1439, 1441, 1443, 1445, 1448, 1452, 1456, 1460,
1247 1464, 1468, 1469, 1473, 1475, 1478, 1482, 1486, 1487, 1491,
1248 1495, 1499, 1503, 1507, 1508, 1512, 1513, 1517, 1518, 1521,
1249 1522, 1525, 1526, 1529, 1531, 1532, 1536, 1537, 1538, 1539,
1250 1546, 1548, 1550, 1552, 1554, 1557, 1559, 1561, 1563, 1565,
1251 1569, 1571, 1573, 1576, 1579, 1581, 1583, 1585, 1587, 1589,
1252 1591, 1593, 1595, 1597, 1599, 1601, 1603, 1605, 1607, 1609,
1253 1611, 1613, 1615, 1617, 1618, 1623, 1626, 1630, 1633, 1638,
1254 1641, 1644, 1646, 1649, 1650, 1657, 1666, 1671, 1678, 1683,
1255 1690, 1693, 1698, 1705, 1708, 1713, 1716, 1721, 1723, 1724,
1256 1726, 1728, 1730, 1732, 1734, 1736, 1738, 1742, 1744, 1748,
1257 1751, 1754, 1756, 1760, 1762, 1766, 1768, 1770, 1773, 1775,
1258 1779, 1783, 1785, 1789, 1791, 1795, 1797, 1799, 1802, 1804,
1259 1806, 1808, 1811, 1814, 1816, 1818, 1819, 1824, 1826, 1829,
1260 1831, 1835, 1839, 1842, 1845, 1847, 1849, 1851, 1853, 1855,
1261 1857, 1859, 1861, 1863, 1865, 1867, 1869, 1870, 1872, 1873,
1262 1875, 1878, 1881, 1882, 1884, 1886, 1888, 1890, 1892, 1895
1268 143, 0, -1, -1, 144, 145, -1, 146, 332, -1,
1269 339, -1, 147, -1, 146, 338, 147, -1, 1, 147,
1270 -1, 154, -1, -1, 47, 148, 130, 145, 131, -1,
1271 150, 261, 229, 264, -1, 151, 332, -1, 339, -1,
1272 152, -1, 151, 338, 152, -1, 1, 154, -1, 154,
1273 -1, -1, 47, 153, 130, 145, 131, -1, -1, 45,
1274 177, 155, 177, -1, 45, 54, 54, -1, 45, 54,
1275 64, -1, 45, 54, 63, -1, 6, 178, -1, 154,
1276 40, 158, -1, 154, 41, 158, -1, 154, 42, 158,
1277 -1, 154, 43, 158, -1, 154, 44, 154, -1, 48,
1278 130, 150, 131, -1, 156, -1, 165, 113, 159, -1,
1279 296, 87, 159, -1, 214, 132, 188, 335, 87, 159,
1280 -1, 214, 133, 52, 87, 159, -1, 214, 133, 56,
1281 87, 159, -1, 214, 85, 56, 87, 159, -1, 214,
1282 85, 52, 87, 159, -1, 297, 87, 159, -1, 172,
1283 113, 195, -1, 165, 113, 184, -1, 165, 113, 195,
1284 -1, 157, -1, 172, 113, 159, -1, 172, 113, 156,
1285 -1, 159, -1, 157, 37, 157, -1, 157, 38, 157,
1286 -1, 39, 333, 157, -1, 127, 159, -1, 182, -1,
1287 157, -1, 164, -1, 160, -1, 250, -1, 250, 331,
1288 329, 190, -1, -1, 94, 162, 237, 150, 131, -1,
1289 328, -1, 163, 190, -1, 163, 190, 161, -1, 214,
1290 133, 329, 190, -1, 214, 133, 329, 190, 161, -1,
1291 214, 85, 329, 190, -1, 214, 85, 329, 190, 161,
1292 -1, 32, 190, -1, 31, 190, -1, 30, 189, -1,
1293 21, 189, -1, 22, 189, -1, 167, -1, 89, 166,
1294 334, -1, 167, -1, 89, 166, 334, -1, 169, -1,
1295 169, 168, -1, 169, 95, 171, -1, 169, 95, 171,
1296 134, 170, -1, 169, 95, -1, 169, 95, 134, 170,
1297 -1, 95, 171, -1, 95, 171, 134, 170, -1, 95,
1298 -1, 95, 134, 170, -1, 171, -1, 89, 166, 334,
1299 -1, 168, 134, -1, 169, 168, 134, -1, 168, -1,
1300 170, 134, 168, -1, 293, -1, 294, -1, 214, 132,
1301 188, 335, -1, 214, 133, 52, -1, 214, 85, 52,
1302 -1, 214, 133, 56, -1, 214, 85, 56, -1, 86,
1303 56, -1, 297, -1, 293, -1, 294, -1, 214, 132,
1304 188, 335, -1, 214, 133, 52, -1, 214, 85, 52,
1305 -1, 214, 133, 56, -1, 214, 85, 56, -1, 86,
1306 56, -1, 297, -1, 52, -1, 56, -1, 86, 173,
1307 -1, 173, -1, 214, 85, 173, -1, 52, -1, 56,
1308 -1, 53, -1, 180, -1, 181, -1, 175, -1, 289,
1309 -1, 176, -1, 291, -1, 177, -1, -1, 178, 134,
1310 179, 177, -1, 118, -1, 119, -1, 120, -1, 69,
1311 -1, 70, -1, 71, -1, 77, -1, 78, -1, 116,
1312 -1, 73, -1, 117, -1, 74, -1, 72, -1, 83,
1313 -1, 84, -1, 121, -1, 122, -1, 123, -1, 95,
1314 -1, 124, -1, 125, -1, 68, -1, 96, -1, 127,
1315 -1, 128, -1, 66, -1, 67, -1, 81, -1, 82,
1316 -1, 135, -1, 49, -1, 50, -1, 51, -1, 47,
1317 -1, 48, -1, 45, -1, 37, -1, 7, -1, 21,
1318 -1, 16, -1, 3, -1, 5, -1, 46, -1, 26,
1319 -1, 15, -1, 14, -1, 10, -1, 9, -1, 36,
1320 -1, 20, -1, 25, -1, 4, -1, 22, -1, 34,
1321 -1, 39, -1, 38, -1, 23, -1, 8, -1, 24,
1322 -1, 30, -1, 33, -1, 32, -1, 13, -1, 35,
1323 -1, 6, -1, 17, -1, 31, -1, 11, -1, 12,
1324 -1, 18, -1, 19, -1, 172, 113, 182, -1, 172,
1325 113, 182, 44, 182, -1, 296, 87, 182, -1, 296,
1326 87, 182, 44, 182, -1, 214, 132, 188, 335, 87,
1327 182, -1, 214, 133, 52, 87, 182, -1, 214, 133,
1328 56, 87, 182, -1, 214, 85, 52, 87, 182, -1,
1329 214, 85, 56, 87, 182, -1, 86, 56, 87, 182,
1330 -1, 297, 87, 182, -1, 182, 79, 182, -1, 182,
1331 80, 182, -1, 182, 121, 182, -1, 182, 122, 182,
1332 -1, 182, 123, 182, -1, 182, 124, 182, -1, 182,
1333 125, 182, -1, 182, 68, 182, -1, 126, 59, 68,
1334 182, -1, 126, 60, 68, 182, -1, 66, 182, -1,
1335 67, 182, -1, 182, 118, 182, -1, 182, 119, 182,
1336 -1, 182, 120, 182, -1, 182, 69, 182, -1, 182,
1337 116, 182, -1, 182, 73, 182, -1, 182, 117, 182,
1338 -1, 182, 74, 182, -1, 182, 70, 182, -1, 182,
1339 71, 182, -1, 182, 72, 182, -1, 182, 77, 182,
1340 -1, 182, 78, 182, -1, 127, 182, -1, 128, 182,
1341 -1, 182, 83, 182, -1, 182, 84, 182, -1, 182,
1342 75, 182, -1, 182, 76, 182, -1, -1, 46, 333,
1343 183, 182, -1, 182, 114, 182, 333, 115, 182, -1,
1344 196, -1, 182, -1, 339, -1, 194, 336, -1, 194,
1345 134, 326, 336, -1, 326, 336, -1, 136, 188, 334,
1346 -1, 339, -1, 186, -1, 339, -1, 189, -1, 194,
1347 134, -1, 194, 134, 326, 134, -1, 326, 134, -1,
1348 164, -1, 194, 193, -1, 326, 193, -1, 194, 134,
1349 326, 193, -1, 192, -1, -1, 191, 189, -1, 97,
1350 184, -1, 134, 192, -1, 339, -1, 184, -1, 95,
1351 184, -1, 194, 134, 184, -1, 194, 134, 95, 184,
1352 -1, 194, 134, 184, -1, 194, 134, 95, 184, -1,
1353 95, 184, -1, 265, -1, 266, -1, 269, -1, 270,
1354 -1, 271, -1, 276, -1, 274, -1, 277, -1, 295,
1355 -1, 297, -1, 53, -1, -1, 215, 197, 149, 225,
1356 -1, -1, 90, 198, 334, -1, -1, 90, 157, 199,
1357 334, -1, 89, 150, 137, -1, 214, 85, 56, -1,
1358 86, 56, -1, 92, 185, 138, -1, 93, 325, 131,
1359 -1, 30, -1, 31, 136, 189, 334, -1, 31, 136,
1360 334, -1, 31, -1, -1, 46, 333, 136, 200, 157,
1361 334, -1, 39, 136, 157, 334, -1, 39, 136, 334,
1362 -1, 163, 256, -1, 251, -1, 251, 256, -1, 98,
1363 242, -1, 216, 158, 226, 150, 228, 225, -1, 217,
1364 158, 226, 150, 229, 225, -1, -1, -1, 218, 201,
1365 158, 227, 202, 150, 225, -1, -1, -1, 219, 203,
1366 158, 227, 204, 150, 225, -1, 220, 158, 332, 259,
1367 225, -1, 220, 332, 259, 225, -1, -1, -1, 221,
1368 230, 25, 205, 158, 227, 206, 150, 225, -1, -1,
1369 222, 174, 298, 207, 149, 225, -1, -1, -1, 222,
1370 83, 157, 208, 337, 209, 149, 225, -1, -1, 223,
1371 174, 210, 149, 225, -1, -1, 224, 175, 211, 300,
1372 149, 225, -1, -1, -1, 224, 323, 331, 212, 175,
1373 213, 300, 149, 225, -1, 21, -1, 22, -1, 23,
1374 -1, 24, -1, 196, -1, 7, -1, 11, -1, 12,
1375 -1, 18, -1, 19, -1, 16, -1, 20, -1, 3,
1376 -1, 4, -1, 5, -1, 10, -1, 337, -1, 13,
1377 -1, 337, 13, -1, 337, -1, 27, -1, 229, -1,
1378 14, 158, 226, 150, 228, -1, 339, -1, 15, 150,
1379 -1, 172, -1, 165, -1, 305, -1, 89, 233, 334,
1380 -1, 231, -1, 232, 134, 231, -1, 232, -1, 232,
1381 134, 95, 305, -1, 232, 134, 95, 305, 134, 232,
1382 -1, 232, 134, 95, -1, 232, 134, 95, 134, 232,
1383 -1, 95, 305, -1, 95, 305, 134, 232, -1, 95,
1384 -1, 95, 134, 232, -1, 310, 134, 313, 322, -1,
1385 310, 322, -1, 313, 322, -1, 321, -1, 134, 234,
1386 -1, -1, 307, 134, 316, 134, 319, 235, -1, 307,
1387 134, 316, 134, 319, 134, 307, 235, -1, 307, 134,
1388 316, 235, -1, 307, 134, 316, 134, 307, 235, -1,
1389 307, 134, 319, 235, -1, 307, 134, -1, 307, 134,
1390 319, 134, 307, 235, -1, 307, 235, -1, 316, 134,
1391 319, 235, -1, 316, 134, 319, 134, 307, 235, -1,
1392 316, 235, -1, 316, 134, 307, 235, -1, 319, 235,
1393 -1, 319, 134, 307, 235, -1, 234, -1, 339, -1,
1394 238, -1, 118, 239, 118, -1, 76, -1, 118, 236,
1395 239, 118, -1, 333, -1, 333, 139, 240, 333, -1,
1396 241, -1, 240, 134, 241, -1, 52, -1, 304, -1,
1397 -1, -1, -1, 243, 244, 246, 245, 247, -1, 136,
1398 303, 239, 137, -1, 303, -1, 111, 150, 131, -1,
1399 29, 150, 10, -1, -1, 28, 249, 237, 150, 10,
1400 -1, 164, 248, -1, 250, 331, 329, 187, -1, 250,
1401 331, 329, 187, 256, -1, 250, 331, 329, 190, 248,
1402 -1, 163, 186, -1, -1, 214, 133, 329, 252, 187,
1403 -1, -1, 214, 85, 329, 253, 186, -1, 214, 85,
1404 330, -1, -1, 214, 133, 254, 186, -1, -1, 214,
1405 85, 255, 186, -1, 32, 186, -1, 32, -1, 214,
1406 132, 188, 335, -1, -1, 130, 257, 237, 150, 131,
1407 -1, -1, 26, 258, 237, 150, 10, -1, 17, 194,
1408 226, 150, 260, -1, 229, -1, 259, -1, 8, 262,
1409 263, 226, 150, 261, -1, 339, -1, 184, -1, 195,
1410 -1, 339, -1, 88, 172, -1, 339, -1, 9, 150,
1411 -1, 339, -1, 292, -1, 289, -1, 291, -1, 267,
1412 -1, 62, -1, 268, -1, 267, 268, -1, 100, 280,
1413 110, -1, 101, 281, 110, -1, 102, 282, 65, -1,
1414 103, 140, 110, -1, 103, 272, 110, -1, -1, 272,
1415 273, 140, -1, 283, -1, 273, 283, -1, 105, 140,
1416 110, -1, 105, 275, 110, -1, -1, 275, 273, 140,
1417 -1, 104, 140, 110, -1, 104, 278, 110, -1, 106,
1418 140, 110, -1, 106, 279, 110, -1, -1, 278, 61,
1419 140, -1, -1, 279, 61, 140, -1, -1, 280, 283,
1420 -1, -1, 281, 283, -1, -1, 282, 283, -1, 61,
1421 -1, -1, 109, 284, 288, -1, -1, -1, -1, 107,
1422 285, 286, 287, 150, 108, -1, 54, -1, 55, -1,
1423 57, -1, 297, -1, 99, 290, -1, 175, -1, 55,
1424 -1, 54, -1, 57, -1, 99, 281, 110, -1, 59,
1425 -1, 60, -1, 126, 59, -1, 126, 60, -1, 52,
1426 -1, 55, -1, 54, -1, 56, -1, 57, -1, 34,
1427 -1, 33, -1, 35, -1, 36, -1, 50, -1, 49,
1428 -1, 51, -1, 293, -1, 294, -1, 293, -1, 294,
1429 -1, 63, -1, 64, -1, 337, -1, -1, 117, 299,
1430 158, 337, -1, 1, 337, -1, 136, 303, 334, -1,
1431 303, 337, -1, 311, 134, 313, 322, -1, 311, 322,
1432 -1, 313, 322, -1, 321, -1, 134, 301, -1, -1,
1433 307, 134, 317, 134, 319, 302, -1, 307, 134, 317,
1434 134, 319, 134, 307, 302, -1, 307, 134, 317, 302,
1435 -1, 307, 134, 317, 134, 307, 302, -1, 307, 134,
1436 319, 302, -1, 307, 134, 319, 134, 307, 302, -1,
1437 307, 302, -1, 317, 134, 319, 302, -1, 317, 134,
1438 319, 134, 307, 302, -1, 317, 302, -1, 317, 134,
1439 307, 302, -1, 319, 302, -1, 319, 134, 307, 302,
1440 -1, 301, -1, -1, 56, -1, 55, -1, 54, -1,
1441 57, -1, 304, -1, 52, -1, 305, -1, 89, 233,
1442 334, -1, 306, -1, 307, 134, 306, -1, 58, 184,
1443 -1, 58, 214, -1, 309, -1, 310, 134, 309, -1,
1444 308, -1, 311, 134, 308, -1, 68, -1, 96, -1,
1445 312, 52, -1, 312, -1, 52, 113, 184, -1, 52,
1446 113, 214, -1, 315, -1, 316, 134, 315, -1, 314,
1447 -1, 317, 134, 314, -1, 123, -1, 95, -1, 318,
1448 52, -1, 318, -1, 120, -1, 97, -1, 320, 52,
1449 -1, 134, 321, -1, 339, -1, 295, -1, -1, 136,
1450 324, 157, 334, -1, 339, -1, 326, 336, -1, 327,
1451 -1, 326, 134, 327, -1, 184, 88, 184, -1, 58,
1452 184, -1, 96, 184, -1, 52, -1, 56, -1, 53,
1453 -1, 52, -1, 56, -1, 53, -1, 180, -1, 52,
1454 -1, 53, -1, 180, -1, 133, -1, 85, -1, -1,
1455 338, -1, -1, 141, -1, 333, 137, -1, 333, 138,
1456 -1, -1, 141, -1, 134, -1, 139, -1, 141, -1,
1457 337, -1, 338, 139, -1, -1
1463 0, 854, 854, 854, 885, 896, 905, 913, 921, 927,
1464 929, 928, 949, 982, 993, 1002, 1010, 1018, 1024, 1029,
1465 1028, 1049, 1049, 1057, 1065, 1076, 1086, 1094, 1103, 1112,
1466 1125, 1138, 1147, 1159, 1160, 1170, 1175, 1196, 1201, 1206,
1467 1216, 1221, 1231, 1240, 1249, 1258, 1261, 1270, 1282, 1283,
1468 1291, 1299, 1307, 1315, 1318, 1330, 1331, 1334, 1335, 1347,
1469 1346, 1368, 1378, 1387, 1400, 1409, 1421, 1430, 1442, 1451,
1470 1460, 1468, 1476, 1486, 1487, 1497, 1498, 1508, 1516, 1524,
1471 1532, 1541, 1549, 1558, 1566, 1575, 1583, 1594, 1595, 1605,
1472 1613, 1623, 1631, 1641, 1645, 1649, 1657, 1665, 1673, 1681,
1473 1693, 1703, 1715, 1724, 1733, 1741, 1749, 1757, 1765, 1778,
1474 1791, 1802, 1810, 1813, 1821, 1829, 1839, 1840, 1841, 1842,
1475 1847, 1858, 1859, 1862, 1870, 1873, 1881, 1881, 1891, 1892,
1476 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902,
1477 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912,
1478 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1923, 1923,
1479 1923, 1924, 1924, 1925, 1925, 1925, 1926, 1926, 1926, 1926,
1480 1927, 1927, 1927, 1927, 1928, 1928, 1928, 1929, 1929, 1929,
1481 1929, 1930, 1930, 1930, 1930, 1931, 1931, 1931, 1931, 1932,
1482 1932, 1932, 1932, 1933, 1933, 1933, 1933, 1934, 1934, 1937,
1483 1946, 1956, 1961, 1971, 1997, 2002, 2007, 2012, 2022, 2032,
1484 2043, 2057, 2071, 2079, 2087, 2095, 2103, 2111, 2119, 2128,
1485 2137, 2145, 2153, 2161, 2169, 2177, 2185, 2193, 2201, 2209,
1486 2217, 2225, 2233, 2241, 2252, 2260, 2268, 2276, 2284, 2292,
1487 2300, 2308, 2308, 2318, 2328, 2334, 2346, 2347, 2351, 2359,
1488 2369, 2379, 2380, 2383, 2384, 2385, 2389, 2397, 2407, 2416,
1489 2424, 2434, 2443, 2452, 2452, 2464, 2474, 2478, 2484, 2492,
1490 2500, 2514, 2530, 2544, 2559, 2569, 2570, 2571, 2572, 2573,
1491 2574, 2575, 2576, 2577, 2578, 2579, 2588, 2587, 2615, 2615,
1492 2623, 2623, 2631, 2639, 2647, 2655, 2668, 2676, 2684, 2692,
1493 2700, 2708, 2708, 2718, 2726, 2734, 2744, 2745, 2755, 2759,
1494 2771, 2783, 2783, 2783, 2794, 2794, 2794, 2805, 2816, 2825,
1495 2827, 2824, 2891, 2890, 2912, 2917, 2911, 2936, 2935, 2957,
1496 2956, 2979, 2980, 2979, 3000, 3008, 3016, 3024, 3034, 3046,
1497 3052, 3058, 3064, 3070, 3076, 3082, 3088, 3094, 3100, 3110,
1498 3116, 3121, 3122, 3129, 3134, 3137, 3138, 3151, 3152, 3162,
1499 3163, 3166, 3174, 3184, 3192, 3202, 3210, 3219, 3228, 3236,
1500 3244, 3253, 3265, 3273, 3284, 3288, 3292, 3296, 3302, 3307,
1501 3312, 3316, 3320, 3324, 3328, 3332, 3340, 3344, 3348, 3352,
1502 3356, 3360, 3364, 3368, 3372, 3378, 3379, 3385, 3394, 3403,
1503 3414, 3418, 3428, 3435, 3444, 3452, 3458, 3461, 3466, 3458,
1504 3482, 3490, 3500, 3504, 3511, 3510, 3531, 3547, 3556, 3568,
1505 3582, 3592, 3591, 3608, 3607, 3623, 3632, 3631, 3649, 3648,
1506 3665, 3673, 3681, 3696, 3695, 3715, 3714, 3735, 3747, 3748,
1507 3751, 3770, 3773, 3781, 3789, 3792, 3796, 3799, 3807, 3810,
1508 3811, 3819, 3822, 3839, 3840, 3841, 3851, 3861, 3888, 3953,
1509 3962, 3973, 3980, 3990, 3998, 4008, 4017, 4028, 4035, 4047,
1510 4056, 4066, 4075, 4086, 4093, 4104, 4111, 4126, 4133, 4144,
1511 4151, 4162, 4169, 4198, 4200, 4199, 4216, 4222, 4227, 4215,
1512 4246, 4254, 4262, 4270, 4273, 4284, 4285, 4286, 4287, 4290,
1513 4301, 4302, 4303, 4311, 4321, 4322, 4323, 4324, 4325, 4328,
1514 4329, 4330, 4331, 4332, 4333, 4334, 4337, 4350, 4360, 4368,
1515 4378, 4379, 4382, 4391, 4390, 4399, 4411, 4421, 4429, 4433,
1516 4437, 4441, 4447, 4452, 4457, 4461, 4465, 4469, 4473, 4477,
1517 4481, 4485, 4489, 4493, 4497, 4501, 4505, 4509, 4514, 4520,
1518 4529, 4538, 4547, 4558, 4559, 4566, 4575, 4594, 4601, 4614,
1519 4626, 4638, 4646, 4663, 4671, 4687, 4688, 4691, 4696, 4702,
1520 4714, 4726, 4734, 4750, 4758, 4774, 4775, 4778, 4791, 4802,
1521 4803, 4806, 4823, 4827, 4837, 4847, 4847, 4876, 4877, 4887,
1522 4894, 4904, 4912, 4920, 4932, 4933, 4934, 4937, 4938, 4939,
1523 4940, 4943, 4944, 4945, 4948, 4953, 4960, 4961, 4964, 4965,
1524 4968, 4971, 4974, 4975, 4976, 4979, 4980, 4983, 4984, 4988
1528 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1533 "\"end-of-input\"",
"error",
"$undefined",
"keyword_class",
1534 "keyword_module",
"keyword_def",
"keyword_undef",
"keyword_begin",
1535 "keyword_rescue",
"keyword_ensure",
"keyword_end",
"keyword_if",
1536 "keyword_unless",
"keyword_then",
"keyword_elsif",
"keyword_else",
1537 "keyword_case",
"keyword_when",
"keyword_while",
"keyword_until",
1538 "keyword_for",
"keyword_break",
"keyword_next",
"keyword_redo",
1539 "keyword_retry",
"keyword_in",
"keyword_do",
"keyword_do_cond",
1540 "keyword_do_block",
"keyword_do_LAMBDA",
"keyword_return",
1541 "keyword_yield",
"keyword_super",
"keyword_self",
"keyword_nil",
1542 "keyword_true",
"keyword_false",
"keyword_and",
"keyword_or",
1543 "keyword_not",
"modifier_if",
"modifier_unless",
"modifier_while",
1544 "modifier_until",
"modifier_rescue",
"keyword_alias",
"keyword_defined",
1545 "keyword_BEGIN",
"keyword_END",
"keyword__LINE__",
"keyword__FILE__",
1546 "keyword__ENCODING__",
"tIDENTIFIER",
"tFID",
"tGVAR",
"tIVAR",
1547 "tCONSTANT",
"tCVAR",
"tLABEL",
"tINTEGER",
"tFLOAT",
"tSTRING_CONTENT",
1548 "tCHAR",
"tNTH_REF",
"tBACK_REF",
"tREGEXP_END",
"\"unary+\"",
1549 "\"unary-\"",
"\"**\"",
"\"<=>\"",
"\"==\"",
"\"===\"",
"\"!=\"",
1550 "\">=\"",
"\"<=\"",
"\"&&\"",
"\"||\"",
"\"=~\"",
"\"!~\"",
"\"..\"",
1551 "\"...\"",
"\"[]\"",
"\"[]=\"",
"\"<<\"",
"\">>\"",
"\"::\"",
1552 "\":: at EXPR_BEG\"",
"tOP_ASGN",
"\"=>\"",
"\"(\"",
"\"( arg\"",
1553 "\")\"",
"\"[\"",
"\"{\"",
"\"{ arg\"",
"\"*\"",
"\"**arg\"",
"\"&\"",
1554 "\"->\"",
"tSYMBEG",
"tSTRING_BEG",
"tXSTRING_BEG",
"tREGEXP_BEG",
1555 "tWORDS_BEG",
"tQWORDS_BEG",
"tSYMBOLS_BEG",
"tQSYMBOLS_BEG",
1556 "tSTRING_DBEG",
"tSTRING_DEND",
"tSTRING_DVAR",
"tSTRING_END",
"tLAMBEG",
1557 "tLOWEST",
"'='",
"'?'",
"':'",
"'>'",
"'<'",
"'|'",
"'^'",
"'&'",
"'+'",
1558 "'-'",
"'*'",
"'/'",
"'%'",
"tUMINUS_NUM",
"'!'",
"'~'",
"tLAST_TOKEN",
1559 "'{'",
"'}'",
"'['",
"'.'",
"','",
"'`'",
"'('",
"')'",
"']'",
"';'",
1560 "' '",
"'\\n'",
"$accept",
"program",
"$@1",
"top_compstmt",
"top_stmts",
1561 "top_stmt",
"$@2",
"bodystmt",
"compstmt",
"stmts",
"stmt_or_begin",
1562 "$@3",
"stmt",
"$@4",
"command_asgn",
"expr",
"expr_value",
1563 "command_call",
"block_command",
"cmd_brace_block",
"@5",
"fcall",
1564 "command",
"mlhs",
"mlhs_inner",
"mlhs_basic",
"mlhs_item",
"mlhs_head",
1565 "mlhs_post",
"mlhs_node",
"lhs",
"cname",
"cpath",
"fname",
"fsym",
1566 "fitem",
"undef_list",
"$@6",
"op",
"reswords",
"arg",
"$@7",
1567 "arg_value",
"aref_args",
"paren_args",
"opt_paren_args",
1568 "opt_call_args",
"call_args",
"command_args",
"@8",
"block_arg",
1569 "opt_block_arg",
"args",
"mrhs",
"primary",
"@9",
"$@10",
"$@11",
"$@12",
1570 "$@13",
"$@14",
"$@15",
"$@16",
"$@17",
"$@18",
"@19",
"@20",
"@21",
1571 "@22",
"@23",
"$@24",
"$@25",
"primary_value",
"k_begin",
"k_if",
1572 "k_unless",
"k_while",
"k_until",
"k_case",
"k_for",
"k_class",
1573 "k_module",
"k_def",
"k_end",
"then",
"do",
"if_tail",
"opt_else",
1574 "for_var",
"f_marg",
"f_marg_list",
"f_margs",
"block_args_tail",
1575 "opt_block_args_tail",
"block_param",
"opt_block_param",
1576 "block_param_def",
"opt_bv_decl",
"bv_decls",
"bvar",
"lambda",
"@26",
1577 "@27",
"@28",
"f_larglist",
"lambda_body",
"do_block",
"@29",
1578 "block_call",
"method_call",
"@30",
"@31",
"@32",
"@33",
"brace_block",
1579 "@34",
"@35",
"case_body",
"cases",
"opt_rescue",
"exc_list",
"exc_var",
1580 "opt_ensure",
"literal",
"strings",
"string",
"string1",
"xstring",
1581 "regexp",
"words",
"word_list",
"word",
"symbols",
"symbol_list",
1582 "qwords",
"qsymbols",
"qword_list",
"qsym_list",
"string_contents",
1583 "xstring_contents",
"regexp_contents",
"string_content",
"@36",
"@37",
1584 "@38",
"@39",
"string_dvar",
"symbol",
"sym",
"dsym",
"numeric",
1585 "user_variable",
"keyword_variable",
"var_ref",
"var_lhs",
"backref",
1586 "superclass",
"$@40",
"f_arglist",
"args_tail",
"opt_args_tail",
1587 "f_args",
"f_bad_arg",
"f_norm_arg",
"f_arg_item",
"f_arg",
"f_kw",
1588 "f_block_kw",
"f_block_kwarg",
"f_kwarg",
"kwrest_mark",
"f_kwrest",
1589 "f_opt",
"f_block_opt",
"f_block_optarg",
"f_optarg",
"restarg_mark",
1590 "f_rest_arg",
"blkarg_mark",
"f_block_arg",
"opt_f_block_arg",
1591 "singleton",
"$@41",
"assoc_list",
"assocs",
"assoc",
"operation",
1592 "operation2",
"operation3",
"dot_or_colon",
"opt_terms",
"opt_nl",
1593 "rparen",
"rbracket",
"trailer",
"term",
"terms",
"none", 0
1600 static const yytype_uint16 yytoknum[] =
1602 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1603 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1604 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1605 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1606 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1607 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1608 315, 316, 317, 318, 319, 320, 130, 131, 132, 134,
1609 139, 140, 141, 138, 137, 321, 322, 142, 143, 128,
1610 129, 144, 145, 135, 136, 323, 324, 325, 326, 327,
1611 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
1612 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
1613 348, 349, 350, 61, 63, 58, 62, 60, 124, 94,
1614 38, 43, 45, 42, 47, 37, 351, 33, 126, 352,
1615 123, 125, 91, 46, 44, 96, 40, 41, 93, 59,
1621 static const yytype_uint16
yyr1[] =
1623 0, 142, 144, 143, 145, 146, 146, 146, 146, 147,
1624 148, 147, 149, 150, 151, 151, 151, 151, 152, 153,
1625 152, 155, 154, 154, 154, 154, 154, 154, 154, 154,
1626 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
1627 154, 154, 154, 154, 154, 154, 156, 156, 157, 157,
1628 157, 157, 157, 157, 158, 159, 159, 160, 160, 162,
1629 161, 163, 164, 164, 164, 164, 164, 164, 164, 164,
1630 164, 164, 164, 165, 165, 166, 166, 167, 167, 167,
1631 167, 167, 167, 167, 167, 167, 167, 168, 168, 169,
1632 169, 170, 170, 171, 171, 171, 171, 171, 171, 171,
1633 171, 171, 172, 172, 172, 172, 172, 172, 172, 172,
1634 172, 173, 173, 174, 174, 174, 175, 175, 175, 175,
1635 175, 176, 176, 177, 177, 178, 179, 178, 180, 180,
1636 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
1637 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
1638 180, 180, 180, 180, 180, 180, 180, 180, 181, 181,
1639 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
1640 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
1641 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
1642 181, 181, 181, 181, 181, 181, 181, 181, 181, 182,
1643 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1644 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1645 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1646 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1647 182, 183, 182, 182, 182, 184, 185, 185, 185, 185,
1648 186, 187, 187, 188, 188, 188, 188, 188, 189, 189,
1649 189, 189, 189, 191, 190, 192, 193, 193, 194, 194,
1650 194, 194, 195, 195, 195, 196, 196, 196, 196, 196,
1651 196, 196, 196, 196, 196, 196, 197, 196, 198, 196,
1652 199, 196, 196, 196, 196, 196, 196, 196, 196, 196,
1653 196, 200, 196, 196, 196, 196, 196, 196, 196, 196,
1654 196, 201, 202, 196, 203, 204, 196, 196, 196, 205,
1655 206, 196, 207, 196, 208, 209, 196, 210, 196, 211,
1656 196, 212, 213, 196, 196, 196, 196, 196, 214, 215,
1657 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
1658 226, 226, 226, 227, 227, 228, 228, 229, 229, 230,
1659 230, 231, 231, 232, 232, 233, 233, 233, 233, 233,
1660 233, 233, 233, 233, 234, 234, 234, 234, 235, 235,
1661 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
1662 236, 236, 236, 236, 236, 237, 237, 238, 238, 238,
1663 239, 239, 240, 240, 241, 241, 243, 244, 245, 242,
1664 246, 246, 247, 247, 249, 248, 250, 250, 250, 250,
1665 251, 252, 251, 253, 251, 251, 254, 251, 255, 251,
1666 251, 251, 251, 257, 256, 258, 256, 259, 260, 260,
1667 261, 261, 262, 262, 262, 263, 263, 264, 264, 265,
1668 265, 265, 266, 267, 267, 267, 268, 269, 270, 271,
1669 271, 272, 272, 273, 273, 274, 274, 275, 275, 276,
1670 276, 277, 277, 278, 278, 279, 279, 280, 280, 281,
1671 281, 282, 282, 283, 284, 283, 285, 286, 287, 283,
1672 288, 288, 288, 288, 289, 290, 290, 290, 290, 291,
1673 292, 292, 292, 292, 293, 293, 293, 293, 293, 294,
1674 294, 294, 294, 294, 294, 294, 295, 295, 296, 296,
1675 297, 297, 298, 299, 298, 298, 300, 300, 301, 301,
1676 301, 301, 302, 302, 303, 303, 303, 303, 303, 303,
1677 303, 303, 303, 303, 303, 303, 303, 303, 303, 304,
1678 304, 304, 304, 305, 305, 306, 306, 307, 307, 308,
1679 309, 310, 310, 311, 311, 312, 312, 313, 313, 314,
1680 315, 316, 316, 317, 317, 318, 318, 319, 319, 320,
1681 320, 321, 322, 322, 323, 324, 323, 325, 325, 326,
1682 326, 327, 327, 327, 328, 328, 328, 329, 329, 329,
1683 329, 330, 330, 330, 331, 331, 332, 332, 333, 333,
1684 334, 335, 336, 336, 336, 337, 337, 338, 338, 339
1690 0, 2, 0, 2, 2, 1, 1, 3, 2, 1,
1691 0, 5, 4, 2, 1, 1, 3, 2, 1, 0,
1692 5, 0, 4, 3, 3, 3, 2, 3, 3, 3,
1693 3, 3, 4, 1, 3, 3, 6, 5, 5, 5,
1694 5, 3, 3, 3, 3, 1, 3, 3, 1, 3,
1695 3, 3, 2, 1, 1, 1, 1, 1, 4, 0,
1696 5, 1, 2, 3, 4, 5, 4, 5, 2, 2,
1697 2, 2, 2, 1, 3, 1, 3, 1, 2, 3,
1698 5, 2, 4, 2, 4, 1, 3, 1, 3, 2,
1699 3, 1, 3, 1, 1, 4, 3, 3, 3, 3,
1700 2, 1, 1, 1, 4, 3, 3, 3, 3, 2,
1701 1, 1, 1, 2, 1, 3, 1, 1, 1, 1,
1702 1, 1, 1, 1, 1, 1, 0, 4, 1, 1,
1703 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1704 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1705 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1706 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1707 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1708 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1709 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
1710 5, 3, 5, 6, 5, 5, 5, 5, 4, 3,
1711 3, 3, 3, 3, 3, 3, 3, 3, 4, 4,
1712 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
1713 3, 3, 3, 3, 3, 2, 2, 3, 3, 3,
1714 3, 0, 4, 6, 1, 1, 1, 2, 4, 2,
1715 3, 1, 1, 1, 1, 2, 4, 2, 1, 2,
1716 2, 4, 1, 0, 2, 2, 2, 1, 1, 2,
1717 3, 4, 3, 4, 2, 1, 1, 1, 1, 1,
1718 1, 1, 1, 1, 1, 1, 0, 4, 0, 3,
1719 0, 4, 3, 3, 2, 3, 3, 1, 4, 3,
1720 1, 0, 6, 4, 3, 2, 1, 2, 2, 6,
1721 6, 0, 0, 7, 0, 0, 7, 5, 4, 0,
1722 0, 9, 0, 6, 0, 0, 8, 0, 5, 0,
1723 6, 0, 0, 9, 1, 1, 1, 1, 1, 1,
1724 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1725 1, 1, 2, 1, 1, 1, 5, 1, 2, 1,
1726 1, 1, 3, 1, 3, 1, 4, 6, 3, 5,
1727 2, 4, 1, 3, 4, 2, 2, 1, 2, 0,
1728 6, 8, 4, 6, 4, 2, 6, 2, 4, 6,
1729 2, 4, 2, 4, 1, 1, 1, 3, 1, 4,
1730 1, 4, 1, 3, 1, 1, 0, 0, 0, 5,
1731 4, 1, 3, 3, 0, 5, 2, 4, 5, 5,
1732 2, 0, 5, 0, 5, 3, 0, 4, 0, 4,
1733 2, 1, 4, 0, 5, 0, 5, 5, 1, 1,
1734 6, 1, 1, 1, 1, 2, 1, 2, 1, 1,
1735 1, 1, 1, 1, 1, 2, 3, 3, 3, 3,
1736 3, 0, 3, 1, 2, 3, 3, 0, 3, 3,
1737 3, 3, 3, 0, 3, 0, 3, 0, 2, 0,
1738 2, 0, 2, 1, 0, 3, 0, 0, 0, 6,
1739 1, 1, 1, 1, 2, 1, 1, 1, 1, 3,
1740 1, 1, 2, 2, 1, 1, 1, 1, 1, 1,
1741 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1742 1, 1, 1, 0, 4, 2, 3, 2, 4, 2,
1743 2, 1, 2, 0, 6, 8, 4, 6, 4, 6,
1744 2, 4, 6, 2, 4, 2, 4, 1, 0, 1,
1745 1, 1, 1, 1, 1, 1, 3, 1, 3, 2,
1746 2, 1, 3, 1, 3, 1, 1, 2, 1, 3,
1747 3, 1, 3, 1, 3, 1, 1, 2, 1, 1,
1748 1, 2, 2, 1, 1, 0, 4, 1, 2, 1,
1749 3, 3, 2, 2, 1, 1, 1, 1, 1, 1,
1750 1, 1, 1, 1, 1, 1, 0, 1, 0, 1,
1751 2, 2, 0, 1, 1, 1, 1, 1, 2, 0
1759 2, 0, 0, 1, 0, 346, 347, 348, 0, 339,
1760 340, 341, 344, 342, 343, 345, 334, 335, 336, 337,
1761 297, 263, 263, 510, 509, 511, 512, 608, 0, 608,
1762 10, 0, 514, 513, 515, 594, 596, 506, 505, 595,
1763 508, 500, 501, 453, 520, 521, 0, 0, 0, 0,
1764 288, 619, 619, 85, 406, 479, 477, 479, 481, 461,
1765 473, 467, 475, 0, 0, 0, 3, 606, 6, 9,
1766 33, 45, 48, 56, 263, 55, 0, 73, 0, 77,
1767 87, 0, 53, 244, 0, 286, 0, 0, 311, 314,
1768 606, 0, 0, 0, 0, 57, 306, 275, 276, 452,
1769 454, 277, 278, 279, 281, 280, 282, 450, 451, 449,
1770 516, 517, 283, 0, 284, 61, 5, 8, 168, 179,
1771 169, 192, 165, 185, 175, 174, 195, 196, 190, 173,
1772 172, 167, 193, 197, 198, 177, 166, 180, 184, 186,
1773 178, 171, 187, 194, 189, 188, 181, 191, 176, 164,
1774 183, 182, 163, 170, 161, 162, 158, 159, 160, 116,
1775 118, 117, 153, 154, 149, 131, 132, 133, 140, 137,
1776 139, 134, 135, 155, 156, 141, 142, 146, 150, 136,
1777 138, 128, 129, 130, 143, 144, 145, 147, 148, 151,
1778 152, 157, 121, 123, 125, 26, 119, 120, 122, 124,
1779 0, 0, 0, 0, 0, 0, 0, 0, 258, 0,
1780 245, 268, 71, 262, 619, 0, 516, 517, 0, 284,
1781 619, 589, 72, 70, 608, 69, 0, 619, 430, 68,
1782 608, 609, 0, 0, 21, 241, 0, 0, 334, 335,
1783 297, 300, 431, 0, 220, 0, 221, 294, 0, 19,
1784 0, 0, 606, 15, 18, 608, 75, 14, 290, 608,
1785 0, 612, 612, 246, 0, 0, 612, 587, 608, 0,
1786 0, 0, 83, 338, 0, 93, 94, 101, 308, 407,
1787 497, 496, 498, 495, 0, 494, 0, 0, 0, 0,
1788 0, 0, 0, 0, 0, 0, 0, 502, 503, 52,
1789 235, 236, 615, 616, 4, 617, 607, 0, 0, 0,
1790 0, 0, 0, 0, 435, 433, 420, 62, 305, 414,
1791 416, 0, 89, 0, 81, 78, 0, 0, 0, 0,
1792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1794 0, 0, 0, 428, 619, 426, 0, 54, 0, 0,
1795 0, 0, 606, 0, 607, 0, 360, 359, 0, 0,
1796 516, 517, 284, 111, 112, 0, 0, 114, 0, 0,
1797 516, 517, 284, 327, 188, 181, 191, 176, 158, 159,
1798 160, 116, 117, 585, 329, 584, 0, 605, 604, 0,
1799 307, 455, 0, 0, 126, 592, 294, 269, 593, 265,
1800 0, 0, 0, 259, 267, 428, 619, 426, 0, 0,
1801 0, 260, 608, 0, 299, 264, 608, 254, 619, 619,
1802 253, 608, 304, 51, 23, 25, 24, 0, 301, 0,
1803 0, 0, 428, 426, 0, 17, 0, 608, 292, 13,
1804 607, 74, 608, 289, 295, 614, 613, 247, 614, 249,
1805 296, 588, 0, 100, 502, 503, 91, 86, 0, 428,
1806 619, 426, 548, 483, 486, 484, 499, 480, 456, 478,
1807 457, 458, 482, 459, 460, 0, 463, 469, 0, 470,
1808 465, 466, 0, 471, 0, 472, 0, 0, 618, 7,
1809 27, 28, 29, 30, 31, 49, 50, 619, 619, 59,
1810 63, 619, 0, 34, 43, 0, 44, 608, 0, 79,
1811 90, 47, 46, 0, 199, 268, 42, 217, 225, 230,
1812 231, 232, 227, 229, 239, 240, 233, 234, 210, 211,
1813 237, 238, 608, 226, 228, 222, 223, 224, 212, 213,
1814 214, 215, 216, 597, 599, 598, 600, 0, 263, 425,
1815 608, 597, 599, 598, 600, 0, 263, 0, 619, 351,
1816 0, 350, 0, 0, 0, 0, 0, 0, 294, 428,
1817 619, 426, 319, 324, 111, 112, 113, 0, 523, 322,
1818 522, 428, 619, 426, 0, 0, 548, 331, 597, 598,
1819 263, 35, 201, 41, 209, 0, 199, 591, 0, 270,
1820 266, 619, 597, 598, 608, 597, 598, 590, 298, 610,
1821 250, 255, 257, 303, 22, 0, 242, 0, 32, 423,
1822 421, 208, 0, 76, 16, 291, 612, 0, 84, 97,
1823 99, 608, 597, 598, 554, 551, 550, 549, 552, 0,
1824 565, 0, 576, 566, 580, 579, 575, 548, 408, 547,
1825 411, 553, 555, 557, 533, 563, 619, 568, 619, 573,
1826 533, 578, 533, 0, 531, 487, 0, 462, 464, 474,
1827 468, 476, 218, 219, 398, 608, 0, 396, 395, 0,
1828 619, 0, 274, 0, 88, 82, 0, 0, 0, 0,
1829 0, 0, 429, 66, 0, 0, 432, 0, 0, 427,
1830 64, 619, 349, 287, 619, 619, 441, 619, 352, 619,
1831 354, 312, 353, 315, 0, 0, 318, 601, 293, 608,
1832 597, 598, 0, 0, 525, 0, 0, 111, 112, 115,
1833 608, 0, 608, 548, 0, 0, 0, 252, 417, 58,
1834 251, 0, 127, 271, 261, 0, 0, 432, 0, 0,
1835 619, 608, 11, 0, 248, 92, 95, 0, 559, 554,
1836 0, 372, 363, 365, 608, 361, 608, 0, 0, 540,
1837 0, 529, 583, 567, 0, 530, 0, 543, 577, 0,
1838 545, 581, 488, 490, 491, 492, 485, 493, 554, 0,
1839 394, 608, 0, 379, 561, 619, 619, 571, 379, 379,
1840 377, 400, 0, 0, 0, 0, 0, 272, 80, 200,
1841 0, 40, 206, 39, 207, 67, 424, 611, 0, 37,
1842 204, 38, 205, 65, 422, 442, 443, 619, 444, 0,
1843 619, 357, 0, 0, 355, 0, 0, 0, 317, 0,
1844 0, 432, 0, 325, 0, 0, 432, 328, 586, 608,
1845 0, 527, 332, 418, 419, 202, 0, 256, 302, 20,
1846 569, 608, 0, 370, 0, 556, 0, 0, 0, 409,
1847 532, 558, 533, 533, 564, 619, 582, 533, 574, 533,
1848 533, 0, 0, 0, 560, 0, 397, 385, 387, 0,
1849 375, 376, 0, 390, 0, 392, 0, 436, 434, 0,
1850 415, 273, 243, 36, 203, 0, 0, 446, 358, 0,
1851 12, 448, 0, 309, 310, 0, 0, 270, 619, 320,
1852 0, 524, 323, 526, 330, 548, 362, 373, 0, 368,
1853 364, 410, 0, 0, 0, 536, 0, 538, 528, 0,
1854 544, 0, 541, 546, 0, 570, 294, 428, 399, 378,
1855 379, 379, 562, 619, 379, 572, 379, 379, 404, 608,
1856 402, 405, 60, 0, 445, 0, 102, 103, 110, 0,
1857 447, 0, 313, 316, 438, 439, 437, 0, 0, 0,
1858 0, 371, 0, 366, 413, 412, 533, 533, 533, 533,
1859 489, 601, 293, 0, 382, 0, 384, 374, 0, 391,
1860 0, 388, 393, 0, 401, 109, 428, 619, 426, 619,
1861 619, 0, 326, 0, 369, 0, 537, 0, 534, 539,
1862 542, 379, 379, 379, 379, 403, 601, 108, 608, 597,
1863 598, 440, 356, 321, 333, 367, 533, 383, 0, 380,
1864 386, 389, 432, 535, 379, 381
1870 -1, 1, 2, 66, 67, 68, 236, 567, 568, 252,
1871 253, 446, 254, 437, 70, 71, 358, 72, 73, 510,
1872 690, 243, 75, 76, 255, 77, 78, 79, 467, 80,
1873 209, 377, 378, 192, 193, 194, 195, 605, 556, 197,
1874 82, 439, 211, 260, 228, 748, 426, 427, 225, 226,
1875 213, 413, 428, 516, 83, 356, 259, 452, 625, 360,
1876 846, 361, 847, 732, 987, 736, 733, 930, 594, 596,
1877 746, 935, 245, 85, 86, 87, 88, 89, 90, 91,
1878 92, 93, 94, 713, 570, 721, 843, 844, 369, 772,
1879 773, 774, 959, 898, 801, 686, 687, 802, 969, 970,
1880 278, 279, 472, 777, 658, 879, 320, 511, 95, 96,
1881 711, 704, 565, 557, 318, 508, 507, 577, 986, 715,
1882 837, 916, 920, 97, 98, 99, 100, 101, 102, 103,
1883 290, 485, 104, 294, 105, 106, 292, 296, 286, 284,
1884 288, 477, 676, 675, 792, 891, 796, 107, 285, 108,
1885 109, 216, 217, 112, 218, 219, 589, 735, 744, 880,
1886 779, 745, 661, 662, 663, 664, 665, 804, 805, 666,
1887 667, 668, 669, 807, 808, 670, 671, 672, 673, 674,
1888 781, 396, 595, 265, 429, 221, 115, 629, 559, 399,
1889 304, 423, 424, 706, 457, 571, 364, 257
1894 #define YYPACT_NINF -810
1897 -810, 102, 2888, -810, 7502, -810, -810, -810, 7025, -810,
1898 -810, -810, -810, -810, -810, -810, 7615, 7615, -810, -810,
1899 7615, 4210, 3805, -810, -810, -810, -810, 190, 6892, -21,
1900 -810, 10, -810, -810, -810, 3130, 3940, -810, -810, 3265,
1901 -810, -810, -810, -810, -810, -810, 8971, 8971, 130, 5262,
1902 9084, 7954, 8293, 7284, -810, 6759, -810, -810, -810, 54,
1903 70, 225, 228, 515, 9197, 8971, -810, 245, -810, 1021,
1904 -810, 269, -810, -810, 73, 120, 87, -810, 98, 9310,
1905 -810, 148, 3109, 44, 359, -810, 9084, 9084, -810, -810,
1906 6149, 9419, 9528, 9637, 6625, 30, 86, -810, -810, 230,
1907 -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
1908 3, 385, -810, 348, 490, -810, -810, -810, -810, -810,
1909 -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
1910 -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
1911 -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
1912 -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
1913 -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
1914 -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
1915 -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
1916 -810, -810, -810, -810, -810, 285, -810, -810, -810, -810,
1917 253, 8971, 374, 5401, 8971, 8971, 8971, 8971, -810, 328,
1918 3109, 364, -810, -810, 313, 369, 208, 224, 395, 247,
1919 354, -810, -810, -810, 6036, -810, 7615, 7615, -810, -810,
1920 6262, -810, 9084, 844, -810, 360, 388, 5540, -810, -810,
1921 -810, 379, 400, 73, -810, 464, 463, 501, 7728, -810,
1922 5262, 402, 245, -810, 1021, -21, 437, -810, 269, -21,
1923 415, 8, 317, -810, 364, 440, 317, -810, -21, 525,
1924 615, 9746, 470, -810, 488, 508, 575, 612, -810, -810,
1925 -810, -810, -810, -810, 438, -810, 447, 451, 284, 475,
1926 540, 496, 60, 502, 576, 516, 61, 550, 565, -810,
1927 -810, -810, -810, -810, -810, -810, 6375, 9084, 9084, 9084,
1928 9084, 7728, 9084, 9084, -810, -810, -810, 549, -810, -810,
1929 -810, 8406, -810, 5262, 7393, 527, 8406, 8971, 8971, 8971,
1930 8971, 8971, 8971, 8971, 8971, 8971, 8971, 8971, 8971, 8971,
1931 8971, 8971, 8971, 8971, 8971, 8971, 8971, 8971, 8971, 8971,
1932 8971, 8971, 8971, 10025, 7615, 10102, 4619, 269, 110, 110,
1933 9084, 9084, 245, 654, 538, 631, -810, -810, 645, 668,
1934 85, 93, 108, 405, 410, 9084, 377, -810, 123, 661,
1935 -810, -810, -810, -810, 40, 42, 56, 167, 180, 279,
1936 332, 336, 343, -810, -810, -810, 30, -810, -810, 10179,
1937 -810, -810, 9197, 9197, -810, -810, 394, -810, -810, -810,
1938 8971, 8971, 7841, -810, -810, 10256, 7615, 10333, 8971, 8971,
1939 8067, -810, -21, 558, -810, -810, -21, -810, 564, 566,
1940 -810, 66, -810, -810, -810, -810, -810, 7025, -810, 8971,
1941 5671, 574, 10256, 10333, 8971, 1021, 581, -21, -810, -810,
1942 6488, 572, -21, -810, -810, 8180, -810, -810, 8293, -810,
1943 -810, -810, 360, 678, -810, -810, -810, 588, 9746, 10410,
1944 7615, 10487, 1081, -810, -810, -810, -810, -810, -810, -810,
1945 -810, -810, -810, -810, -810, 302, -810, -810, 594, -810,
1946 -810, -810, 306, -810, 597, -810, 8971, 8971, -810, -810,
1947 -810, -810, -810, -810, -810, -810, -810, 63, 63, -810,
1948 -810, 63, 8971, -810, 605, 607, -810, -21, 9746, 617,
1949 -810, -810, -810, 636, 1231, -810, -810, 463, 2567, 2567,
1950 2567, 2567, 976, 976, 2722, 2633, 2567, 2567, 3244, 3244,
1951 339, 339, 1305, 976, 976, 986, 986, 1119, 255, 255,
1952 463, 463, 463, 4345, 3400, 4480, 3535, 400, 620, -810,
1953 -21, 591, -810, 742, -810, 400, 4075, 747, 754, -810,
1954 4758, 756, 5036, 52, 52, 654, 8519, 747, 121, 10564,
1955 7615, 10641, -810, 269, -810, 678, -810, 245, -810, -810,
1956 -810, 10718, 7615, 10179, 4619, 9084, 1274, -810, -810, -810,
1957 1148, -810, 2322, -810, 3109, 7025, 2974, -810, 8971, 364,
1958 -810, 354, 2995, 3670, -21, 398, 497, -810, -810, -810,
1959 -810, 7841, 8067, -810, -810, 9084, 3109, 644, -810, -810,
1960 -810, 3109, 5671, 212, -810, -810, 317, 9746, 588, 495,
1961 323, -21, 337, 376, 676, -810, -810, -810, -810, 8971,
1962 -810, 896, -810, -810, -810, -810, -810, 1142, -810, -810,
1963 -810, -810, -810, -810, 656, -810, 657, 743, 663, -810,
1964 667, 750, 671, 760, -810, -810, 763, -810, -810, -810,
1965 -810, -810, 463, 463, -810, 793, 5810, -810, -810, 5540,
1966 63, 5810, 679, 8632, -810, 588, 9746, 9197, 8971, 699,
1967 9197, 9197, -810, 549, 400, 681, 759, 9197, 9197, -810,
1968 549, 400, -810, -810, 8745, 810, -810, 718, -810, 810,
1969 -810, -810, -810, -810, 747, 92, -810, 81, 149, -21,
1970 144, 155, 9084, 245, -810, 9084, 4619, 495, 323, -810,
1971 -21, 747, 66, 1142, 4619, 245, 7158, -810, 86, 120,
1972 -810, 8971, -810, -810, -810, 8971, 8971, 504, 8971, 8971,
1973 694, 66, -810, 700, -810, -810, 390, 8971, -810, -810,
1974 896, 473, -810, 702, -21, -810, -21, 124, 1142, -810,
1975 571, -810, -810, -810, 38, -810, 1142, -810, -810, 881,
1976 -810, -810, -810, -810, -810, -810, -810, -810, 720, 9855,
1977 -810, -21, 716, 703, -810, 707, 663, -810, 723, 724,
1978 -810, 725, 856, 737, 5540, 859, 8971, 740, 588, 3109,
1979 8971, -810, 3109, -810, 3109, -810, -810, -810, 9197, -810,
1980 3109, -810, 3109, -810, -810, 605, -810, 797, -810, 5149,
1981 872, -810, 9084, 747, -810, 747, 5810, 5810, -810, 8858,
1982 4897, 159, 52, -810, 245, 747, -810, -810, -810, -21,
1983 747, -810, -810, -810, -810, 3109, 8971, 8067, -810, -810,
1984 -810, -21, 875, 752, 953, -810, 762, 5810, 5540, -810,
1985 -810, -810, 753, 757, -810, 663, -810, 767, -810, 768,
1986 767, 5923, 9855, 848, 689, 787, -810, 1386, -810, 622,
1987 -810, -810, 1386, -810, 1533, -810, 1028, -810, -810, 778,
1988 -810, 784, 3109, -810, 3109, 9964, 110, -810, -810, 5810,
1989 -810, -810, 110, -810, -810, 747, 747, -810, 383, -810,
1990 4619, -810, -810, -810, -810, 1274, -810, 785, 875, 672,
1991 -810, -810, 911, 792, 1142, -810, 881, -810, -810, 881,
1992 -810, 881, -810, -810, 820, 689, -810, 10795, -810, -810,
1993 806, 809, -810, 663, 811, -810, 812, 811, -810, 352,
1994 -810, -810, -810, 891, -810, 691, 508, 575, 612, 4619,
1995 -810, 4758, -810, -810, -810, -810, -810, 5810, 747, 4619,
1996 875, 785, 875, 823, -810, -810, 767, 824, 767, 767,
1997 -810, 818, 826, 1386, -810, 1533, -810, -810, 1533, -810,
1998 1533, -810, -810, 1028, -810, 678, 10872, 7615, 10949, 754,
1999 718, 747, -810, 747, 785, 875, -810, 881, -810, -810,
2000 -810, 811, 825, 811, 811, -810, 49, 323, -21, 179,
2001 215, -810, -810, -810, -810, 785, 767, -810, 1533, -810,
2002 -810, -810, 216, -810, 811, -810
2008 -810, -810, -810, -382, -810, 26, -810, -549, -7, -810,
2009 513, -810, 33, -810, -315, -33, -63, -55, -810, -216,
2010 -810, 766, -13, 874, -164, 20, -73, -810, -409, 29,
2011 1882, -309, 882, -54, -810, -5, -810, -810, 6, -810,
2012 1208, -810, 1366, -810, -41, 256, -344, 78, -14, -810,
2013 -384, -205, -4, -304, -15, -810, -810, -810, -810, -810,
2014 -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
2015 -810, -810, 64, -810, -810, -810, -810, -810, -810, -810,
2016 -810, -810, -810, -1, -333, -519, -44, -623, -810, -789,
2017 -771, 211, 297, 71, -810, -437, -810, -693, -810, -29,
2018 -810, -810, -810, -810, -810, -810, 237, -810, -810, -810,
2019 -810, -810, -810, -810, -94, -810, -810, -531, -810, -31,
2020 -810, -810, -810, -810, -810, -810, 890, -810, -810, -810,
2021 -810, 701, -810, -810, -810, -810, -810, -810, -810, 940,
2022 -810, -126, -810, -810, -810, -810, -810, -3, -810, 11,
2023 -810, 1400, 1673, 905, 1898, 1689, -810, -810, 65, -451,
2024 -102, -385, -809, -588, -689, -289, 222, 107, -810, -810,
2025 -810, 18, -721, -764, 115, 235, -810, -634, -810, -37,
2026 -627, -810, -810, -810, 114, -388, -810, -324, -810, 623,
2027 -47, -9, -123, -568, -214, 21, -11, -2
2033 #define YYTABLE_NINF -620
2036 116, 283, 400, 208, 208, 198, 325, 208, 229, 299,
2037 560, 521, 214, 214, 196, 421, 214, 258, 232, 199,
2038 235, 659, 526, 234, 359, 198, 572, 362, 610, 558,
2039 117, 566, 617, 316, 196, 69, 610, 69, 273, 199,
2040 394, 785, 251, 363, 724, 741, 757, 261, 459, 263,
2041 267, 809, 461, 357, 357, 723, 306, 357, 627, 638,
2042 317, 196, -106, 775, 273, 888, 84, 586, 84, 256,
2043 617, 689, 614, 766, 691, 600, 273, 273, 273, 720,
2044 215, 215, 272, 876, 215, 940, 447, 660, 305, 881,
2045 -518, 558, 840, 566, 212, 222, 845, 971, 223, 314,
2046 196, 937, 3, 312, 313, 569, -106, 432, 895, 695,
2047 -102, 305, 314, 84, 215, 397, -102, 274, -103, 630,
2048 231, 488, 494, 569, 587, -510, 641, -509, 215, -338,
2049 220, 220, 451, -110, 220, 654, 453, -93, 965, 684,
2050 237, -511, 455, 274, 883, 659, -109, 630, 319, 456,
2051 215, 215, 889, 877, 215, 368, 379, 379, 655, 517,
2052 479, 851, 482, 398, 486, 262, 266, 991, 486, -105,
2053 489, 495, 856, -510, -108, -509, -338, -338, 900, 901,
2054 -107, 685, 775, 873, -104, -597, 247, 855, -106, -511,
2055 -106, 302, -105, 303, 289, 860, 251, 431, 466, 433,
2056 321, 940, 316, 315, 971, 449, 659, 231, 881, 227,
2057 291, 208, 414, 208, 208, -97, 315, -597, 414, -93,
2058 214, 1024, 214, 888, 421, 430, 849, -94, -107, -104,
2059 441, 302, 322, 303, 617, 878, 729, 610, 610, 965,
2060 588, 450, -101, 251, 500, 501, 502, 503, 740, 302,
2061 763, 303, -512, 814, 1045, -100, 273, 630, 948, 462,
2062 881, 326, 302, 961, 303, -514, 513, 84, 966, 630,
2063 256, 522, 776, 305, 357, 357, 357, 357, -96, 505,
2064 506, 445, 739, -99, 775, -598, 775, 818, 215, -98,
2065 215, 215, 659, -95, 215, -518, 215, 573, 574, 618,
2066 -512, 84, 422, 620, 425, 984, 312, 313, 623, 273,
2067 997, -519, 84, -514, 84, 575, 251, 515, -105, 881,
2068 -105, -102, 515, 327, 633, -74, 230, 357, 357, 635,
2069 56, 231, 499, 929, 419, 274, 1007, -103, 220, 69,
2070 220, 208, 583, 256, 504, 473, -88, 601, 603, 481,
2071 775, 993, 430, 519, -107, -104, -107, -104, 859, 678,
2072 -110, 564, -96, 473, -513, 293, 678, 473, 295, 1032,
2073 84, 215, 215, 215, 215, 84, 215, 215, 350, 351,
2074 352, 988, 521, 305, 302, 215, 303, 84, 274, 230,
2075 215, 474, 850, 475, 694, 466, 803, 985, 839, 590,
2076 576, -98, 775, 208, 775, 564, 754, 327, -293, 474,
2077 836, 475, -513, 474, 430, 475, -432, -515, 215, 404,
2078 84, -504, 764, 564, 215, 215, 414, 414, -507, 584,
2079 406, -594, 624, 585, 198, 402, -595, 775, 116, 215,
2080 1023, 410, 677, 196, 353, 466, 680, 412, 199, 564,
2081 -96, 458, 411, 273, 415, -293, -293, 208, 456, -598,
2082 348, 349, 350, 351, 352, -515, 215, 215, 430, -504,
2083 1052, -96, -519, 69, -96, -432, -507, 564, -96, 617,
2084 215, 444, 418, 610, 659, 758, 1013, 825, 420, -98,
2085 -504, 354, 355, 231, 833, -507, 438, 887, -103, 473,
2086 890, 416, 417, 273, 84, 688, 688, -109, 473, 688,
2087 -98, -105, 473, -98, 84, 224, 702, -98, 440, -94,
2088 -432, -601, -432, -432, 709, 769, 611, 645, 646, 647,
2089 648, 327, 274, 699, 215, -594, 227, -504, -504, 448,
2090 -595, -594, -507, -507, 703, 474, -595, 475, 476, 442,
2091 -73, 705, 710, 454, 474, 754, 475, 478, 474, 747,
2092 475, 480, 742, 717, 765, 719, 716, 208, 787, 636,
2093 790, 460, 725, 469, 297, 298, 726, 403, 430, 208,
2094 -601, 463, 274, 979, 759, 483, 749, 564, 444, 981,
2095 430, 866, 761, -516, 722, 722, 416, 443, 750, 564,
2096 752, 473, 198, -110, 468, 705, 487, 872, 734, 414,
2097 -107, 196, 490, 964, -109, 967, 199, -104, 496, 858,
2098 470, 471, 273, 466, -101, -601, 493, -601, -601, 649,
2099 116, -597, 705, 497, 84, -100, 84, 473, 868, 650,
2100 -516, -516, 522, 509, 215, 821, 823, 474, 810, 475,
2101 484, 875, 829, 831, 863, 996, 215, 998, 84, 215,
2102 -517, 520, 999, 826, 782, 69, 782, 653, 654, 852,
2103 747, 576, 854, 1038, 464, 465, 811, 498, 707, 812,
2104 799, 273, 813, 474, 815, 475, 491, 578, 688, 215,
2105 650, 655, 862, 582, 630, 619, 84, -284, 621, 357,
2106 622, 274, 357, 806, -105, 628, -88, -517, -517, 750,
2107 515, 632, 838, 841, 1031, 841, 1033, 841, 653, 654,
2108 705, 1034, 637, 848, 769, -96, 645, 646, 647, 648,
2109 579, 705, 842, 839, 679, 760, 933, 681, 1046, -268,
2110 857, 693, 655, 886, -284, -284, 591, 886, 936, 697,
2111 84, 696, 196, 84, 853, 84, -423, 712, 414, 1054,
2112 274, 215, 714, -294, 215, 215, 861, 811, 74, 718,
2113 74, 215, 215, 913, 957, 762, 1016, 580, 581, 922,
2114 945, 947, 74, 74, 273, 950, 74, 952, 953, 767,
2115 778, 780, 811, 592, 593, 783, 215, 784, 885, 215,
2116 84, 786, 788, 782, 782, 789, 992, 909, 84, 357,
2117 -294, -294, 791, -269, 820, 74, 74, 793, 794, 827,
2118 795, 592, 593, 1017, 1018, 839, 44, 45, 867, 708,
2119 74, 869, 918, 892, 896, 917, 874, 897, 921, 925,
2120 926, 899, 923, 928, 924, 798, 828, 645, 646, 647,
2121 648, 799, 74, 74, 932, -107, 74, 902, 904, 934,
2122 810, 650, 886, 894, 906, 810, 907, 810, 908, 910,
2123 942, 943, -104, 722, -270, 931, -98, 273, 84, 903,
2124 905, 919, 651, 782, 954, 915, 938, 944, 652, 653,
2125 654, 946, 215, -95, 1026, 1028, 1029, 1030, 434, 941,
2126 273, 949, 951, 84, 956, 958, 215, 435, 436, 972,
2127 84, 84, 980, 655, 84, 806, 656, 963, -271, 990,
2128 806, 994, 806, 995, 982, 983, 841, 769, 1000, 645,
2129 646, 647, 648, 769, 231, 645, 646, 647, 648, 649,
2130 1003, 84, 84, 1005, 1053, 1008, 1010, 1015, 769, 650,
2131 645, 646, 647, 648, -597, 84, 955, 1025, 1027, 1048,
2132 1014, 782, -598, 634, 770, 366, 810, 834, 810, 74,
2133 651, 810, 1019, 810, 1020, 383, 1042, 653, 654, 975,
2134 1021, 871, 800, 84, 1035, 770, 864, 1022, 1041, 401,
2135 74, 771, 74, 74, 84, 492, 74, 287, 74, 395,
2136 989, 655, 884, 74, 208, 769, 962, 645, 646, 647,
2137 648, 810, 960, 882, 74, 430, 74, 716, 841, 597,
2138 1043, 806, 1044, 806, 564, 0, 806, 0, 806, 705,
2139 0, 1004, 1006, 0, 0, 1009, 0, 1011, 1012, 0,
2140 0, 0, 770, 84, 327, 84, 0, 0, 939, 0,
2141 0, 84, 0, 84, 327, 0, 0, 0, 0, 340,
2142 341, 307, 308, 309, 310, 311, 806, 0, 0, 340,
2143 341, 0, 74, 74, 74, 74, 74, 74, 74, 74,
2144 968, 215, 645, 646, 647, 648, 0, 74, 0, 74,
2145 0, 0, 74, 0, 345, 346, 347, 348, 349, 350,
2146 351, 352, 1047, 1049, 1050, 1051, 347, 348, 349, 350,
2147 351, 352, 0, 0, 0, 0, 0, 0, 0, 0,
2148 74, 0, 74, 0, 0, 1055, 74, 74, 0, 0,
2149 0, 0, 0, 644, 0, 645, 646, 647, 648, 649,
2150 0, 74, 0, 0, 0, 0, 0, 0, -619, 650,
2151 0, 0, 0, 0, 0, 0, -619, -619, -619, 0,
2152 0, -619, -619, -619, 0, -619, 0, 0, 74, 74,
2153 651, 0, 0, 0, -619, -619, 652, 653, 654, 0,
2154 0, 0, 74, 0, 0, -619, -619, 327, -619, -619,
2155 -619, -619, -619, 0, 644, 0, 645, 646, 647, 648,
2156 649, 655, 340, 341, 656, 0, 74, 0, 0, 0,
2157 650, 0, 0, 0, 0, 0, 74, 657, 0, 0,
2158 0, 0, 0, 0, 210, 210, 0, 0, 210, 0,
2159 0, 651, 0, -619, 0, 0, 74, 652, 653, 654,
2160 348, 349, 350, 351, 352, 0, 0, 0, 0, 0,
2161 0, 0, 0, 0, 244, 246, -619, 0, 0, 210,
2162 210, 0, 655, 0, 0, 656, 0, 0, 0, 0,
2163 0, 0, 300, 301, 0, 698, 0, 0, -619, -619,
2164 0, -619, 0, 0, 227, -619, 0, -619, 0, -619,
2165 0, 0, 0, 0, 0, 0, 0, 0, 0, 327,
2166 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
2167 338, 339, 0, 0, 340, 341, 0, 0, 0, 0,
2168 0, 0, 0, 0, 0, 0, 644, 0, 645, 646,
2169 647, 648, 649, 0, 0, 0, 74, 0, 74, 0,
2170 0, 0, 650, 0, 0, 342, 74, 343, 344, 345,
2171 346, 347, 348, 349, 350, 351, 352, 0, 74, 0,
2172 74, 74, 0, 651, 0, -245, 0, 0, 0, 652,
2173 653, 654, 0, 327, 328, 329, 330, 331, 332, 333,
2174 334, 335, 336, 337, 338, 339, 0, 0, 340, 341,
2175 0, 74, 0, 0, 655, 0, 0, 656, 74, 0,
2176 0, 0, 110, 0, 110, 0, 0, 0, 0, 210,
2177 743, 0, 210, 210, 210, 300, 0, 0, 264, 342,
2178 0, 343, 344, 345, 346, 347, 348, 349, 350, 351,
2179 352, 0, 210, 0, 210, 210, 0, 0, 798, 0,
2180 645, 646, 647, 648, 799, 0, 231, 0, 0, 110,
2181 0, 0, 74, 275, 650, 74, 0, 74, 0, 0,
2182 0, 0, 0, 74, 0, 0, 74, 74, 0, 0,
2183 0, 0, 0, 74, 74, 651, 0, 0, 0, 275,
2184 0, 652, 653, 654, 0, 0, 0, 0, 0, 0,
2185 0, 370, 380, 380, 380, 0, 0, 0, 74, 0,
2186 0, 74, 74, 0, 0, 0, 655, 0, 0, 656,
2187 74, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2188 0, 0, 0, 0, 0, 0, 0, 0, 0, 210,
2189 0, 0, 0, 0, 524, 527, 528, 529, 530, 531,
2190 532, 533, 534, 535, 536, 537, 538, 539, 540, 541,
2191 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
2192 552, 0, 210, 0, 0, 0, 0, 405, 0, 0,
2193 407, 408, 409, 0, 0, 0, 0, 0, 0, 0,
2194 74, 0, 0, 0, 0, 769, 0, 645, 646, 647,
2195 648, 799, 0, 0, 74, 0, 0, 0, 0, 0,
2196 0, 650, 0, 110, 0, 74, 0, 0, 74, 0,
2197 602, 604, 74, 74, 0, 0, 74, 0, 606, 210,
2198 210, 0, 651, 0, 210, 0, 602, 604, 210, 653,
2199 654, 0, 0, 0, 0, 0, 0, 110, 0, 0,
2200 0, 0, 0, 74, 74, 0, 0, 626, 110, 0,
2201 110, 0, 631, 655, 0, 0, 0, 74, 0, 0,
2202 0, 0, 0, 210, 0, 0, 210, 0, 0, 0,
2203 0, 275, 0, 0, 0, 111, 0, 111, 210, 0,
2204 0, 0, 0, 0, 0, 74, 0, 514, 0, 0,
2205 0, 114, 525, 114, 0, 0, 74, 0, 0, 0,
2206 0, 0, 0, 0, 682, 683, 110, 0, 0, 0,
2207 0, 110, 0, 0, 0, 0, 0, 0, 0, 0,
2208 210, 0, 111, 110, 275, 0, 276, 0, 0, 0,
2209 0, 0, 0, 0, 0, 0, 0, 0, 114, 0,
2210 0, 0, 277, 0, 0, 74, 0, 74, 0, 0,
2211 0, 0, 276, 74, 0, 74, 110, 0, 0, 0,
2212 0, 0, 0, 0, 371, 381, 381, 381, 277, 0,
2213 0, 0, 0, 0, 0, 0, 0, 607, 609, 0,
2214 372, 382, 382, 74, 210, 0, 264, 0, 210, 0,
2215 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2216 210, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2217 0, 0, 0, 0, 0, 0, 210, 0, 0, 0,
2218 0, 609, 0, 0, 264, 0, 0, 0, 0, 210,
2219 210, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2220 110, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2221 110, 0, 0, 0, 0, 0, 0, 210, 0, 0,
2222 0, 0, 0, 0, 0, 0, 0, 0, 275, 0,
2223 0, 0, 0, 0, 0, 0, 111, 0, 692, 0,
2224 0, 0, 0, 0, 81, 0, 81, 0, 0, 0,
2225 0, 0, 114, 0, 0, 0, 0, 0, 0, 0,
2226 113, 210, 113, 0, 0, 606, 819, 0, 822, 824,
2227 111, 0, 0, 0, 0, 830, 832, 0, 275, 0,
2228 0, 111, 210, 111, 0, 0, 114, 0, 0, 0,
2229 0, 81, 0, 0, 0, 0, 0, 114, 0, 114,
2230 0, 0, 525, 0, 276, 0, 0, 113, 0, 0,
2231 0, 0, 0, 0, 0, 0, 0, 0, 0, 865,
2232 277, 0, 0, 822, 824, 0, 830, 832, 0, 0,
2233 110, 0, 110, 367, 753, 210, 0, 0, 0, 111,
2234 0, 0, 0, 0, 111, 0, 0, 609, 264, 0,
2235 0, 0, 0, 0, 110, 114, 111, 276, 0, 0,
2236 114, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2237 0, 0, 114, 277, 0, 768, 0, 0, 0, 0,
2238 0, 0, 0, 0, 210, 0, 0, 0, 912, 111,
2239 0, 0, 110, 0, 0, 0, 914, 275, 0, 0,
2240 0, 0, 0, 0, 0, 114, 0, 0, 0, 0,
2241 0, 0, 0, 0, 0, 0, 0, 210, 0, 817,
2242 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2243 0, 0, 0, 0, 914, 210, 0, 0, 0, 0,
2244 835, 0, 0, 0, 0, 81, 110, 0, 0, 110,
2245 0, 110, 0, 0, 0, 0, 275, 0, 0, 0,
2246 0, 113, 0, 0, 0, 0, 0, 0, 0, 0,
2247 0, 0, 0, 111, 0, 0, 0, 0, 0, 81,
2248 0, 0, 0, 111, 0, 0, 0, 0, 0, 114,
2249 81, 0, 81, 870, 0, 113, 110, 0, 0, 114,
2250 0, 276, 0, 0, 110, 0, 113, 0, 113, 0,
2251 0, 0, 0, 0, 0, 0, 0, 277, 0, 0,
2252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2253 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2254 0, 0, 911, 0, 0, 0, 0, 0, 81, 0,
2255 0, 276, 0, 81, 0, 0, 0, 0, 0, 380,
2256 0, 0, 0, 0, 113, 81, 0, 277, 523, 113,
2257 0, 0, 0, 0, 110, 927, 0, 0, 0, 0,
2258 0, 113, 0, 0, 0, 210, 0, 0, 0, 0,
2259 0, 0, 0, 264, 0, 0, 0, 0, 81, 110,
2260 0, 0, 0, 111, 0, 111, 110, 110, 0, 0,
2261 110, 0, 0, 0, 113, 0, 0, 0, 0, 114,
2262 0, 114, 0, 0, 0, 0, 0, 111, 0, 0,
2263 0, 0, 0, 0, 0, 0, 0, 110, 110, 0,
2264 0, 0, 0, 114, 0, 0, 0, 0, 0, 0,
2265 0, 110, 380, 0, 0, 0, 0, 0, 0, 0,
2266 0, 0, 0, 0, 0, 111, 0, 0, 0, 0,
2267 276, 0, 0, 0, 0, 976, 0, 0, 0, 110,
2268 0, 114, 81, 0, 0, 0, 277, 0, 0, 0,
2269 110, 0, 81, 0, 0, 0, 0, 0, 113, 0,
2270 0, 0, 0, 0, 0, 0, 0, 0, 113, 0,
2271 0, 0, 0, 0, 0, 0, 0, 0, 0, 111,
2272 0, 0, 111, 0, 111, 797, 751, 0, 0, 276,
2273 0, 0, 0, 0, 0, 114, 0, 0, 114, 110,
2274 114, 110, 0, 0, 0, 277, 0, 110, 0, 110,
2275 327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
2276 337, 338, 339, 0, 0, 340, 341, 0, 0, 111,
2277 0, 0, 0, 0, 0, 0, 0, 111, 0, 0,
2278 0, 0, 0, 0, 0, 114, 0, 0, 0, 0,
2279 0, 0, 0, 114, 0, 0, 342, 0, 343, 344,
2280 345, 346, 347, 348, 349, 350, 351, 352, 0, 0,
2281 0, 0, 81, 0, 81, 0, 0, 0, 0, 0,
2282 0, 0, 0, 0, 0, 0, 0, 0, 113, 0,
2283 113, 0, 381, 0, 0, 0, 81, 0, 0, 0,
2284 0, 0, 0, 0, 0, 0, 0, 111, 382, 0,
2285 0, 0, 113, 0, 0, 0, 0, 0, 0, 0,
2286 0, 0, 0, 114, 0, 0, 0, 0, 0, 0,
2287 0, 0, 111, 0, 81, 0, 0, 0, 0, 111,
2288 111, 0, 0, 111, 0, 0, 0, 0, 114, 0,
2289 113, 0, 0, 0, 0, 114, 114, 0, 0, 114,
2290 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2291 111, 111, 0, 0, 0, 0, 0, 0, 0, 0,
2292 0, 0, 0, 0, 111, 381, 114, 114, 81, 0,
2293 0, 81, 0, 81, 0, 0, 0, 0, 0, 523,
2294 114, 382, 0, 0, 113, 0, 0, 113, 977, 113,
2295 0, 0, 111, 0, 0, 0, 0, 0, 0, 0,
2296 0, 0, 0, 111, 978, 0, 0, 0, 114, 0,
2297 0, 0, 0, 0, 0, 0, 0, 0, 81, 114,
2298 0, 0, 0, 0, 0, 0, 81, 0, 0, 0,
2299 0, 0, 0, 0, 113, 327, -620, -620, -620, -620,
2300 332, 333, 113, 0, -620, -620, 0, 0, 0, 0,
2301 340, 341, 111, 0, 111, 0, 0, 0, 0, 0,
2302 111, 0, 111, 0, 0, 0, 0, 0, 114, 0,
2303 114, 0, 0, 0, 0, 0, 114, 0, 114, 0,
2304 0, 0, 0, 343, 344, 345, 346, 347, 348, 349,
2305 350, 351, 352, 0, 0, 0, 81, 0, 0, 0,
2306 0, 327, 328, 329, 330, 331, 332, 333, 334, 0,
2307 336, 337, 113, 0, 0, 0, 340, 341, 0, 0,
2308 0, 81, 0, 0, 0, 0, 0, 0, 81, 81,
2309 0, 0, 81, 0, 0, 0, 0, 113, 0, 0,
2310 0, 0, 0, 0, 113, 113, 0, 0, 113, 343,
2311 344, 345, 346, 347, 348, 349, 350, 351, 352, 81,
2312 81, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2313 0, 0, 0, 81, 0, 113, 113, 0, 0, 0,
2314 0, 0, 0, 0, 0, 0, 0, 0, 0, 113,
2315 327, 328, 329, 330, 331, 332, 333, 974, 0, 336,
2316 337, 81, 0, 0, 0, 340, 341, 0, 0, 0,
2317 0, 0, 81, 0, 0, 0, 0, 113, 0, 0,
2318 0, 0, 0, 0, 0, 0, 0, 0, 113, 0,
2319 0, 0, 0, 0, 0, 0, 0, 0, 343, 344,
2320 345, 346, 347, 348, 349, 350, 351, 352, 0, 0,
2321 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2322 0, 81, 0, 81, 0, 0, 0, 0, 0, 81,
2323 0, 81, 0, 0, 0, 0, 0, 113, 0, 113,
2324 0, 0, 0, 0, 0, 113, 0, 113, -619, 4,
2325 0, 5, 6, 7, 8, 9, 0, 0, 0, 10,
2326 11, 0, 0, 0, 12, 0, 13, 14, 15, 16,
2327 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2328 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2329 0, 0, 0, 28, 29, 30, 31, 32, 33, 34,
2330 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2331 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2332 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2333 0, 0, 0, 0, 48, 0, 0, 49, 50, 0,
2334 51, 52, 0, 53, 0, 0, 54, 55, 56, 57,
2335 58, 59, 60, 61, 62, -601, 0, 0, 0, 0,
2336 0, 0, 0, -601, -601, -601, 0, 0, -601, -601,
2337 -601, 0, -601, 0, 63, 64, 65, 0, 698, 0,
2338 0, -601, -601, -601, -601, 0, 0, -619, 0, -619,
2339 0, 0, -601, -601, 0, -601, -601, -601, -601, -601,
2340 0, 0, 327, 328, 329, 330, 331, 332, 333, 334,
2341 335, 336, 337, 338, 339, 0, 0, 340, 341, 0,
2342 0, 0, 0, -601, -601, -601, -601, -601, -601, -601,
2343 -601, -601, -601, -601, -601, -601, 0, 0, -601, -601,
2344 -601, 0, 755, -601, 0, 0, 0, 0, 342, -601,
2345 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
2346 0, 0, 0, -601, 0, 0, -601, 0, -106, -601,
2347 -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
2348 -601, 0, 0, 0, 0, -601, -601, -601, -601, -601,
2349 -504, 0, -601, -601, -601, 0, -601, 0, -504, -504,
2350 -504, 0, 0, -504, -504, -504, 0, -504, 0, 0,
2351 0, 0, 0, 0, 0, -504, 0, -504, -504, -504,
2352 0, 0, 0, 0, 0, 0, 0, -504, -504, 0,
2353 -504, -504, -504, -504, -504, 0, 0, 327, 328, 329,
2354 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
2355 0, 0, 340, 341, 0, 0, 0, 0, -504, -504,
2356 -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
2357 -504, 0, 0, -504, -504, -504, 0, -504, -504, 0,
2358 0, 0, 0, 342, -504, 343, 344, 345, 346, 347,
2359 348, 349, 350, 351, 352, 0, 0, 0, -504, 0,
2360 0, -504, 0, -504, -504, -504, -504, -504, -504, -504,
2361 -504, -504, -504, -504, -504, -504, 0, 0, 0, 0,
2362 0, -504, -504, -504, -504, -507, 0, -504, -504, -504,
2363 0, -504, 0, -507, -507, -507, 0, 0, -507, -507,
2364 -507, 0, -507, 0, 0, 0, 0, 0, 0, 0,
2365 -507, 0, -507, -507, -507, 0, 0, 0, 0, 0,
2366 0, 0, -507, -507, 0, -507, -507, -507, -507, -507,
2367 0, 0, 327, 328, 329, 330, 331, 332, 333, 334,
2368 335, 336, 337, -620, -620, 0, 0, 340, 341, 0,
2369 0, 0, 0, -507, -507, -507, -507, -507, -507, -507,
2370 -507, -507, -507, -507, -507, -507, 0, 0, -507, -507,
2371 -507, 0, -507, -507, 0, 0, 0, 0, 0, -507,
2372 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
2373 0, 0, 0, -507, 0, 0, -507, 0, -507, -507,
2374 -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
2375 -507, 0, 0, 0, 0, 0, -507, -507, -507, -507,
2376 -602, 0, -507, -507, -507, 0, -507, 0, -602, -602,
2377 -602, 0, 0, -602, -602, -602, 0, -602, 0, 0,
2378 0, 0, 0, 0, 0, 0, -602, -602, -602, -602,
2379 0, 0, 0, 0, 0, 0, 0, -602, -602, 0,
2380 -602, -602, -602, -602, -602, 0, 0, 0, 0, 0,
2381 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2382 0, 0, 0, 0, 0, 0, 0, 0, -602, -602,
2383 -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
2384 -602, 0, 0, -602, -602, -602, 0, 0, -602, 0,
2385 0, 0, 0, 0, -602, 0, 0, 0, 0, 0,
2386 0, 0, 0, 0, 0, 0, 0, 0, -602, 0,
2387 0, -602, 0, 0, -602, -602, -602, -602, -602, -602,
2388 -602, -602, -602, -602, -602, -602, 0, 0, 0, 0,
2389 -602, -602, -602, -602, -602, -603, 0, -602, -602, -602,
2390 0, -602, 0, -603, -603, -603, 0, 0, -603, -603,
2391 -603, 0, -603, 0, 0, 0, 0, 0, 0, 0,
2392 0, -603, -603, -603, -603, 0, 0, 0, 0, 0,
2393 0, 0, -603, -603, 0, -603, -603, -603, -603, -603,
2394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2396 0, 0, 0, -603, -603, -603, -603, -603, -603, -603,
2397 -603, -603, -603, -603, -603, -603, 0, 0, -603, -603,
2398 -603, 0, 0, -603, 0, 0, 0, 0, 0, -603,
2399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2400 0, 0, 0, -603, 0, 0, -603, 0, 0, -603,
2401 -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
2402 -603, 0, 0, 0, 0, -603, -603, -603, -603, -603,
2403 -293, 0, -603, -603, -603, 0, -603, 0, -293, -293,
2404 -293, 0, 0, -293, -293, -293, 0, -293, 0, 0,
2405 0, 0, 0, 0, 0, 0, 0, -293, -293, -293,
2406 0, 0, 0, 0, 0, 0, 0, -293, -293, 0,
2407 -293, -293, -293, -293, -293, 0, 0, 0, 0, 0,
2408 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2409 0, 0, 0, 0, 0, 0, 0, 0, -293, -293,
2410 -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
2411 -293, 0, 0, -293, -293, -293, 0, 756, -293, 0,
2412 0, 0, 0, 0, -293, 0, 0, 0, 0, 0,
2413 0, 0, 0, 0, 0, 0, 0, 0, -293, 0,
2414 0, -293, 0, -108, -293, -293, -293, -293, -293, -293,
2415 -293, -293, -293, -293, -293, -293, 0, 0, 0, 0,
2416 0, -293, -293, -293, -293, -431, 0, -293, -293, -293,
2417 0, -293, 0, -431, -431, -431, 0, 0, -431, -431,
2418 -431, 0, -431, 0, 0, 0, 0, 0, 0, 0,
2419 0, -431, -431, -431, 0, 0, 0, 0, 0, 0,
2420 0, 0, -431, -431, 0, -431, -431, -431, -431, -431,
2421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2423 0, 0, 0, -431, -431, -431, -431, -431, -431, -431,
2424 -431, -431, -431, -431, -431, -431, 0, 0, -431, -431,
2425 -431, 0, 0, -431, 0, 0, 0, 0, 0, -431,
2426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2427 0, 0, 0, -431, 0, 0, 0, 0, 0, -431,
2428 0, -431, -431, -431, -431, -431, -431, -431, -431, -431,
2429 -431, 0, 0, 0, 0, -431, -431, -431, -431, -431,
2430 -285, 227, -431, -431, -431, 0, -431, 0, -285, -285,
2431 -285, 0, 0, -285, -285, -285, 0, -285, 0, 0,
2432 0, 0, 0, 0, 0, 0, 0, -285, -285, -285,
2433 0, 0, 0, 0, 0, 0, 0, -285, -285, 0,
2434 -285, -285, -285, -285, -285, 0, 0, 0, 0, 0,
2435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2436 0, 0, 0, 0, 0, 0, 0, 0, -285, -285,
2437 -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
2438 -285, 0, 0, -285, -285, -285, 0, 0, -285, 0,
2439 0, 0, 0, 0, -285, 0, 0, 0, 0, 0,
2440 0, 0, 0, 0, 0, 0, 0, 0, -285, 0,
2441 0, -285, 0, 0, -285, -285, -285, -285, -285, -285,
2442 -285, -285, -285, -285, -285, -285, 0, 0, 0, 0,
2443 0, -285, -285, -285, -285, -421, 0, -285, -285, -285,
2444 0, -285, 0, -421, -421, -421, 0, 0, -421, -421,
2445 -421, 0, -421, 0, 0, 0, 0, 0, 0, 0,
2446 0, -421, -421, -421, 0, 0, 0, 0, 0, 0,
2447 0, 0, -421, -421, 0, -421, -421, -421, -421, -421,
2448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2450 0, 0, 0, -421, -421, -421, -421, -421, -421, -421,
2451 -421, -421, -421, -421, -421, -421, 0, 0, -421, -421,
2452 -421, 0, 0, -421, 0, 0, 0, 0, 0, -421,
2453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2454 0, 0, 0, -421, 0, 0, 0, 0, 0, -421,
2455 0, -421, -421, -421, -421, -421, -421, -421, -421, -421,
2456 -421, 0, 0, 0, 0, -421, -421, -421, -421, -421,
2457 -300, -421, -421, -421, -421, 0, -421, 0, -300, -300,
2458 -300, 0, 0, -300, -300, -300, 0, -300, 0, 0,
2459 0, 0, 0, 0, 0, 0, 0, -300, -300, 0,
2460 0, 0, 0, 0, 0, 0, 0, -300, -300, 0,
2461 -300, -300, -300, -300, -300, 0, 0, 0, 0, 0,
2462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2463 0, 0, 0, 0, 0, 0, 0, 0, -300, -300,
2464 -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
2465 -300, 0, 0, -300, -300, -300, 0, 0, -300, 0,
2466 0, 0, 0, 0, -300, 0, 0, 0, 0, 0,
2467 0, 0, 0, 0, 0, 0, 0, 0, -300, 0,
2468 0, 0, 0, 0, -300, 0, -300, -300, -300, -300,
2469 -300, -300, -300, -300, -300, -300, 0, 0, 0, 0,
2470 0, -300, -300, -300, -300, -601, 224, -300, -300, -300,
2471 0, -300, 0, -601, -601, -601, 0, 0, 0, -601,
2472 -601, 0, -601, 0, 0, 0, 0, 0, 0, 0,
2473 0, -601, 0, 0, 0, 0, 0, 0, 0, 0,
2474 0, 0, -601, -601, 0, -601, -601, -601, -601, -601,
2475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2477 0, 0, 0, -601, -601, -601, -601, -601, -601, -601,
2478 -601, -601, -601, -601, -601, -601, 0, 0, -601, -601,
2479 -601, 0, 700, 0, 0, 0, 0, 0, 0, 0,
2480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2481 0, 0, 0, -601, 0, 0, 0, 0, -106, -601,
2482 0, -601, -601, -601, -601, -601, -601, -601, -601, -601,
2483 -601, 0, 0, 0, 0, -601, -601, -601, -601, -97,
2484 -293, 0, -601, 0, -601, 0, -601, 0, -293, -293,
2485 -293, 0, 0, 0, -293, -293, 0, -293, 0, 0,
2486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2487 0, 0, 0, 0, 0, 0, 0, -293, -293, 0,
2488 -293, -293, -293, -293, -293, 0, 0, 0, 0, 0,
2489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2490 0, 0, 0, 0, 0, 0, 0, 0, -293, -293,
2491 -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
2492 -293, 0, 0, -293, -293, -293, 0, 701, 0, 0,
2493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2494 0, 0, 0, 0, 0, 0, 0, 0, -293, 0,
2495 0, 0, 0, -108, -293, 0, -293, -293, -293, -293,
2496 -293, -293, -293, -293, -293, -293, 0, 0, 0, 0,
2497 0, -293, -293, -293, -99, 0, 0, -293, 0, -293,
2498 248, -293, 5, 6, 7, 8, 9, -619, -619, -619,
2499 10, 11, 0, 0, -619, 12, 0, 13, 14, 15,
2500 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2501 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2502 0, 0, 0, 0, 28, 29, 249, 31, 32, 33,
2503 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2504 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2506 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2507 0, 51, 52, 0, 53, 0, 0, 54, 55, 56,
2508 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2510 0, 0, 0, 0, 0, 63, 64, 65, 0, 0,
2511 0, 0, 0, 0, 0, 0, 0, 0, -619, 248,
2512 -619, 5, 6, 7, 8, 9, 0, 0, -619, 10,
2513 11, 0, -619, -619, 12, 0, 13, 14, 15, 16,
2514 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2515 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2516 0, 0, 0, 28, 29, 249, 31, 32, 33, 34,
2517 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2518 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2520 0, 0, 0, 0, 48, 0, 0, 49, 50, 0,
2521 51, 52, 0, 53, 0, 0, 54, 55, 56, 57,
2522 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2524 0, 0, 0, 0, 63, 64, 65, 0, 0, 0,
2525 0, 0, 0, 0, 0, 0, 0, -619, 248, -619,
2526 5, 6, 7, 8, 9, 0, 0, -619, 10, 11,
2527 0, 0, -619, 12, -619, 13, 14, 15, 16, 17,
2528 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2529 23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
2530 0, 0, 28, 29, 249, 31, 32, 33, 34, 35,
2531 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
2532 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2534 0, 0, 0, 48, 0, 0, 49, 50, 0, 51,
2535 52, 0, 53, 0, 0, 54, 55, 56, 57, 58,
2536 59, 60, 61, 62, 0, 0, 0, 0, 0, 0,
2537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2538 0, 0, 0, 63, 64, 65, 0, 0, 0, 0,
2539 0, 0, 0, 0, 0, 0, -619, 248, -619, 5,
2540 6, 7, 8, 9, 0, 0, -619, 10, 11, 0,
2541 0, -619, 12, 0, 13, 14, 15, 16, 17, 18,
2542 19, 0, 0, 0, 0, 0, 20, 21, 22, 23,
2543 24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
2544 0, 28, 29, 249, 31, 32, 33, 34, 35, 36,
2545 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2546 45, 0, 46, 47, 0, 0, 0, 0, 0, 0,
2547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2548 0, 0, 48, 0, 0, 49, 50, 0, 51, 52,
2549 0, 53, 0, 0, 54, 55, 56, 57, 58, 59,
2550 60, 61, 62, 0, 0, 0, 0, 0, 0, 0,
2551 248, 0, 5, 6, 7, 8, 9, 0, -619, -619,
2552 10, 11, 63, 64, 65, 12, 0, 13, 14, 15,
2553 16, 17, 18, 19, 0, -619, 0, -619, 0, 20,
2554 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2555 0, 0, 0, 0, 28, 29, 249, 31, 32, 33,
2556 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2557 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2559 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2560 0, 51, 52, 0, 53, 0, 0, 54, 55, 56,
2561 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2562 0, 0, 0, 248, 0, 5, 6, 7, 8, 9,
2563 0, 0, 0, 10, 11, 63, 64, 65, 12, 0,
2564 13, 14, 15, 16, 17, 18, 19, 0, -619, 0,
2565 -619, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2566 0, 27, 0, 0, 0, 0, 0, 28, 29, 249,
2567 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2568 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2570 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2571 0, 250, 50, 0, 51, 52, 0, 53, 0, 0,
2572 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2574 0, 0, 0, 0, 0, 0, 0, 0, 63, 64,
2575 65, 0, 0, 0, 0, 0, 0, 0, 0, -619,
2576 0, -619, 248, -619, 5, 6, 7, 8, 9, 0,
2577 0, 0, 10, 11, 0, 0, 0, 12, 0, 13,
2578 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2579 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2580 27, 0, 0, 0, 0, 0, 28, 29, 249, 31,
2581 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2582 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2584 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
2585 49, 50, 0, 51, 52, 0, 53, 0, 0, 54,
2586 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2588 0, 0, 0, 0, 0, 0, 0, 63, 64, 65,
2589 0, 0, 0, 0, 0, 0, 0, 0, -619, 0,
2590 -619, 248, -619, 5, 6, 7, 8, 9, 0, 0,
2591 0, 10, 11, 0, 0, 0, 12, 0, 13, 14,
2592 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
2593 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
2594 0, 0, 0, 0, 0, 28, 29, 249, 31, 32,
2595 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2596 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2598 0, 0, 0, 0, 0, 0, 48, 0, 0, 49,
2599 50, 0, 51, 52, 0, 53, 0, 0, 54, 55,
2600 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2602 0, 0, 0, 0, 0, 0, 63, 64, 65, 0,
2603 0, -619, 4, 0, 5, 6, 7, 8, 9, -619,
2604 0, -619, 10, 11, 0, 0, 0, 12, 0, 13,
2605 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2606 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2607 27, 0, 0, 0, 0, 0, 28, 29, 30, 31,
2608 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2609 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2611 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
2612 49, 50, 0, 51, 52, 0, 53, 0, 0, 54,
2613 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2614 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2615 0, 0, 0, 0, 0, 0, 0, 63, 64, 65,
2616 0, 0, -619, 0, 0, 0, 0, 0, 0, 0,
2617 -619, 248, -619, 5, 6, 7, 8, 9, 0, 0,
2618 -619, 10, 11, 0, 0, 0, 12, 0, 13, 14,
2619 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
2620 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
2621 0, 0, 0, 0, 0, 28, 29, 249, 31, 32,
2622 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2623 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2625 0, 0, 0, 0, 0, 0, 48, 0, 0, 49,
2626 50, 0, 51, 52, 0, 53, 0, 0, 54, 55,
2627 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2628 0, 0, 0, 0, 248, 0, 5, 6, 7, 8,
2629 9, 0, 0, 0, 10, 11, 63, 64, 65, 12,
2630 0, 13, 14, 15, 16, 17, 18, 19, 0, -619,
2631 0, -619, 0, 20, 21, 22, 23, 24, 25, 26,
2632 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
2633 249, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2634 40, 0, 41, 42, 0, 43, 44, 45, 0, 46,
2635 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2636 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
2637 0, 0, 49, 50, 0, 51, 52, 0, 53, 0,
2638 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2639 0, -619, 0, 0, 0, 0, 0, 0, 0, 5,
2640 6, 7, 0, 9, 0, 0, 0, 10, 11, 63,
2641 64, 65, 12, 0, 13, 14, 15, 16, 17, 18,
2642 19, 0, -619, 0, -619, 0, 20, 21, 22, 23,
2643 24, 25, 26, 0, 0, 200, 0, 0, 0, 0,
2644 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2645 37, 38, 39, 40, 201, 41, 42, 0, 43, 44,
2646 45, 0, 46, 47, 0, 0, 0, 0, 0, 0,
2647 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2648 0, 0, 202, 0, 0, 203, 50, 0, 51, 52,
2649 0, 204, 205, 206, 54, 55, 56, 57, 58, 59,
2650 60, 61, 62, 0, 0, 0, 0, 0, 0, 0,
2651 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2652 10, 11, 63, 207, 65, 12, 0, 13, 14, 15,
2653 16, 17, 18, 19, 0, 0, 0, 231, 0, 20,
2654 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2655 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2656 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2657 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2658 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2659 0, 0, 0, 0, 0, 202, 0, 0, 203, 50,
2660 0, 51, 52, 0, 0, 0, 0, 54, 55, 56,
2661 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2662 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2663 0, 0, 0, 10, 11, 63, 64, 65, 12, 0,
2664 13, 14, 15, 16, 17, 18, 19, 0, 302, 0,
2665 303, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2666 0, 27, 0, 0, 0, 0, 0, 0, 29, 0,
2667 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2668 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2670 0, 0, 0, 0, 0, 0, 0, 0, 202, 0,
2671 0, 203, 50, 0, 51, 52, 0, 0, 0, 0,
2672 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2673 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2674 7, 8, 9, 0, 0, 0, 10, 11, 63, 64,
2675 65, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2676 0, 0, 0, 231, 0, 20, 21, 22, 23, 24,
2677 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2678 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2679 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2680 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2681 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2682 0, 48, 0, 0, 49, 50, 0, 51, 52, 0,
2683 53, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2684 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2685 0, 5, 6, 7, 8, 9, 0, 0, 0, 10,
2686 11, 63, 64, 65, 12, 0, 13, 14, 15, 16,
2687 17, 18, 19, 0, 498, 0, 0, 0, 20, 21,
2688 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2689 0, 0, 0, 28, 29, 249, 31, 32, 33, 34,
2690 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2691 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2693 0, 0, 0, 0, 48, 0, 0, 49, 50, 0,
2694 51, 52, 0, 53, 0, 0, 54, 55, 56, 57,
2695 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2697 0, 0, 0, 0, 63, 64, 65, 0, 0, 0,
2698 0, 0, 0, 0, 0, 0, 0, 498, 118, 119,
2699 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
2700 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2701 140, 141, 0, 0, 0, 142, 143, 144, 384, 385,
2702 386, 387, 149, 150, 151, 0, 0, 0, 0, 0,
2703 152, 153, 154, 155, 388, 389, 390, 391, 160, 37,
2704 38, 392, 40, 0, 0, 0, 0, 0, 0, 0,
2705 0, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2706 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
2707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2708 177, 178, 0, 0, 0, 0, 0, 0, 0, 0,
2709 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2710 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2711 188, 0, 189, 190, 0, 0, 0, 0, 0, 0,
2712 191, 393, 118, 119, 120, 121, 122, 123, 124, 125,
2713 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2714 136, 137, 138, 139, 140, 141, 0, 0, 0, 142,
2715 143, 144, 145, 146, 147, 148, 149, 150, 151, 0,
2716 0, 0, 0, 0, 152, 153, 154, 155, 156, 157,
2717 158, 159, 160, 280, 281, 161, 282, 0, 0, 0,
2718 0, 0, 0, 0, 0, 162, 163, 164, 165, 166,
2719 167, 168, 169, 170, 0, 0, 171, 172, 0, 0,
2720 173, 174, 175, 176, 0, 0, 0, 0, 0, 0,
2721 0, 0, 0, 0, 177, 178, 0, 0, 0, 0,
2722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2723 0, 0, 0, 0, 0, 179, 180, 181, 182, 183,
2724 184, 185, 186, 187, 188, 0, 189, 190, 0, 0,
2725 0, 0, 0, 0, 191, 118, 119, 120, 121, 122,
2726 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2727 133, 134, 135, 136, 137, 138, 139, 140, 141, 0,
2728 0, 0, 142, 143, 144, 145, 146, 147, 148, 149,
2729 150, 151, 0, 0, 0, 0, 0, 152, 153, 154,
2730 155, 156, 157, 158, 159, 160, 233, 0, 161, 0,
2731 0, 0, 0, 0, 0, 0, 0, 0, 162, 163,
2732 164, 165, 166, 167, 168, 169, 170, 0, 0, 171,
2733 172, 0, 0, 173, 174, 175, 176, 0, 0, 0,
2734 0, 0, 0, 0, 0, 0, 0, 177, 178, 0,
2735 0, 55, 0, 0, 0, 0, 0, 0, 0, 0,
2736 0, 0, 0, 0, 0, 0, 0, 0, 179, 180,
2737 181, 182, 183, 184, 185, 186, 187, 188, 0, 189,
2738 190, 0, 0, 0, 0, 0, 0, 191, 118, 119,
2739 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
2740 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2741 140, 141, 0, 0, 0, 142, 143, 144, 145, 146,
2742 147, 148, 149, 150, 151, 0, 0, 0, 0, 0,
2743 152, 153, 154, 155, 156, 157, 158, 159, 160, 0,
2744 0, 161, 0, 0, 0, 0, 0, 0, 0, 0,
2745 0, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2746 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
2747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2748 177, 178, 0, 0, 55, 0, 0, 0, 0, 0,
2749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2750 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2751 188, 0, 189, 190, 0, 0, 0, 0, 0, 0,
2752 191, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2753 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2754 137, 138, 139, 140, 141, 0, 0, 0, 142, 143,
2755 144, 145, 146, 147, 148, 149, 150, 151, 0, 0,
2756 0, 0, 0, 152, 153, 154, 155, 156, 157, 158,
2757 159, 160, 0, 0, 161, 0, 0, 0, 0, 0,
2758 0, 0, 0, 0, 162, 163, 164, 165, 166, 167,
2759 168, 169, 170, 0, 0, 171, 172, 0, 0, 173,
2760 174, 175, 176, 0, 0, 0, 0, 0, 0, 0,
2761 0, 0, 0, 177, 178, 0, 0, 0, 0, 0,
2762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2763 0, 0, 0, 0, 179, 180, 181, 182, 183, 184,
2764 185, 186, 187, 188, 0, 189, 190, 5, 6, 7,
2765 0, 9, 0, 191, 0, 10, 11, 0, 0, 0,
2766 12, 0, 13, 14, 15, 238, 239, 18, 19, 0,
2767 0, 0, 0, 0, 240, 241, 242, 23, 24, 25,
2768 26, 0, 0, 200, 0, 0, 0, 0, 0, 0,
2769 268, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2770 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2773 269, 0, 0, 203, 50, 0, 51, 52, 0, 0,
2774 0, 0, 54, 55, 56, 57, 58, 59, 60, 61,
2775 62, 0, 0, 0, 0, 0, 5, 6, 7, 0,
2776 9, 0, 0, 0, 10, 11, 0, 0, 0, 12,
2777 270, 13, 14, 15, 238, 239, 18, 19, 271, 0,
2778 0, 0, 0, 240, 241, 242, 23, 24, 25, 26,
2779 0, 0, 200, 0, 0, 0, 0, 0, 0, 268,
2780 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2781 40, 0, 41, 42, 0, 43, 44, 45, 0, 0,
2782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2783 0, 0, 0, 0, 0, 0, 0, 0, 0, 269,
2784 0, 0, 203, 50, 0, 51, 52, 0, 0, 0,
2785 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2786 0, 0, 0, 0, 0, 5, 6, 7, 8, 9,
2787 0, 0, 0, 10, 11, 0, 0, 0, 12, 270,
2788 13, 14, 15, 16, 17, 18, 19, 518, 0, 0,
2789 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2790 0, 27, 0, 0, 0, 0, 0, 28, 29, 30,
2791 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2792 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2794 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2795 0, 49, 50, 0, 51, 52, 0, 53, 0, 0,
2796 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2797 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2798 7, 0, 9, 0, 0, 0, 10, 11, 63, 64,
2799 65, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2800 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
2801 25, 26, 0, 0, 200, 0, 0, 0, 0, 0,
2802 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
2803 38, 39, 40, 201, 41, 42, 0, 43, 44, 45,
2804 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2806 0, 202, 0, 0, 203, 50, 0, 51, 52, 0,
2807 204, 205, 206, 54, 55, 56, 57, 58, 59, 60,
2808 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2809 0, 5, 6, 7, 8, 9, 0, 0, 0, 10,
2810 11, 63, 207, 65, 12, 0, 13, 14, 15, 16,
2811 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2812 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2813 0, 0, 0, 28, 29, 0, 31, 32, 33, 34,
2814 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2815 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2817 0, 0, 0, 0, 48, 0, 0, 49, 50, 0,
2818 51, 52, 0, 53, 0, 0, 54, 55, 56, 57,
2819 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2820 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2821 0, 0, 10, 11, 63, 64, 65, 12, 0, 13,
2822 14, 15, 238, 239, 18, 19, 0, 0, 0, 0,
2823 0, 240, 241, 242, 23, 24, 25, 26, 0, 0,
2824 200, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2825 32, 33, 34, 35, 36, 37, 38, 39, 40, 201,
2826 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2828 0, 0, 0, 0, 0, 0, 0, 202, 0, 0,
2829 203, 50, 0, 51, 52, 0, 608, 205, 206, 54,
2830 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2831 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2832 0, 9, 0, 0, 0, 10, 11, 63, 207, 65,
2833 12, 0, 13, 14, 15, 238, 239, 18, 19, 0,
2834 0, 0, 0, 0, 240, 241, 242, 23, 24, 25,
2835 26, 0, 0, 200, 0, 0, 0, 0, 0, 0,
2836 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2837 39, 40, 201, 41, 42, 0, 43, 44, 45, 0,
2838 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2840 202, 0, 0, 203, 50, 0, 51, 52, 0, 204,
2841 205, 0, 54, 55, 56, 57, 58, 59, 60, 61,
2842 62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2843 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2844 63, 207, 65, 12, 0, 13, 14, 15, 238, 239,
2845 18, 19, 0, 0, 0, 0, 0, 240, 241, 242,
2846 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
2847 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2848 36, 37, 38, 39, 40, 201, 41, 42, 0, 43,
2849 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2851 0, 0, 0, 202, 0, 0, 203, 50, 0, 51,
2852 52, 0, 0, 205, 206, 54, 55, 56, 57, 58,
2853 59, 60, 61, 62, 0, 0, 0, 0, 0, 0,
2854 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2855 0, 10, 11, 63, 207, 65, 12, 0, 13, 14,
2856 15, 238, 239, 18, 19, 0, 0, 0, 0, 0,
2857 240, 241, 242, 23, 24, 25, 26, 0, 0, 200,
2858 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
2859 33, 34, 35, 36, 37, 38, 39, 40, 201, 41,
2860 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2862 0, 0, 0, 0, 0, 0, 202, 0, 0, 203,
2863 50, 0, 51, 52, 0, 608, 205, 0, 54, 55,
2864 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2865 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
2866 9, 0, 0, 0, 10, 11, 63, 207, 65, 12,
2867 0, 13, 14, 15, 238, 239, 18, 19, 0, 0,
2868 0, 0, 0, 240, 241, 242, 23, 24, 25, 26,
2869 0, 0, 200, 0, 0, 0, 0, 0, 0, 29,
2870 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2871 40, 201, 41, 42, 0, 43, 44, 45, 0, 46,
2872 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2873 0, 0, 0, 0, 0, 0, 0, 0, 0, 202,
2874 0, 0, 203, 50, 0, 51, 52, 0, 0, 205,
2875 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2876 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2877 6, 7, 0, 9, 0, 0, 0, 10, 11, 63,
2878 207, 65, 12, 0, 13, 14, 15, 16, 17, 18,
2879 19, 0, 0, 0, 0, 0, 20, 21, 22, 23,
2880 24, 25, 26, 0, 0, 200, 0, 0, 0, 0,
2881 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2882 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2883 45, 0, 46, 47, 0, 0, 0, 0, 0, 0,
2884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2885 0, 0, 202, 0, 0, 203, 50, 0, 51, 52,
2886 0, 512, 0, 0, 54, 55, 56, 57, 58, 59,
2887 60, 61, 62, 0, 0, 0, 0, 0, 0, 0,
2888 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2889 10, 11, 63, 207, 65, 12, 0, 13, 14, 15,
2890 238, 239, 18, 19, 0, 0, 0, 0, 0, 240,
2891 241, 242, 23, 24, 25, 26, 0, 0, 200, 0,
2892 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2893 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2894 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2896 0, 0, 0, 0, 0, 202, 0, 0, 203, 50,
2897 0, 51, 52, 0, 204, 0, 0, 54, 55, 56,
2898 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2899 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2900 0, 0, 0, 10, 11, 63, 207, 65, 12, 0,
2901 13, 14, 15, 238, 239, 18, 19, 0, 0, 0,
2902 0, 0, 240, 241, 242, 23, 24, 25, 26, 0,
2903 0, 200, 0, 0, 0, 0, 0, 0, 29, 0,
2904 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2905 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2907 0, 0, 0, 0, 0, 0, 0, 0, 202, 0,
2908 0, 203, 50, 0, 51, 52, 0, 816, 0, 0,
2909 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2910 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2911 7, 0, 9, 0, 0, 0, 10, 11, 63, 207,
2912 65, 12, 0, 13, 14, 15, 238, 239, 18, 19,
2913 0, 0, 0, 0, 0, 240, 241, 242, 23, 24,
2914 25, 26, 0, 0, 200, 0, 0, 0, 0, 0,
2915 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
2916 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2917 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2918 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2919 0, 202, 0, 0, 203, 50, 0, 51, 52, 0,
2920 512, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2921 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2922 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2923 11, 63, 207, 65, 12, 0, 13, 14, 15, 238,
2924 239, 18, 19, 0, 0, 0, 0, 0, 240, 241,
2925 242, 23, 24, 25, 26, 0, 0, 200, 0, 0,
2926 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2927 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2928 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2930 0, 0, 0, 0, 202, 0, 0, 203, 50, 0,
2931 51, 52, 0, 608, 0, 0, 54, 55, 56, 57,
2932 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2933 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2934 0, 0, 10, 11, 63, 207, 65, 12, 0, 13,
2935 14, 15, 238, 239, 18, 19, 0, 0, 0, 0,
2936 0, 240, 241, 242, 23, 24, 25, 26, 0, 0,
2937 200, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2938 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2939 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2941 0, 0, 0, 0, 0, 0, 0, 202, 0, 0,
2942 203, 50, 0, 51, 52, 0, 0, 0, 0, 54,
2943 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2944 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2945 0, 9, 0, 0, 0, 10, 11, 63, 207, 65,
2946 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2947 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2948 26, 0, 0, 27, 0, 0, 0, 0, 0, 0,
2949 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2950 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2951 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2952 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2953 202, 0, 0, 203, 50, 0, 51, 52, 0, 0,
2954 0, 0, 54, 55, 56, 57, 58, 59, 60, 61,
2955 62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2956 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2957 63, 64, 65, 12, 0, 13, 14, 15, 16, 17,
2958 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2959 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
2960 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2961 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
2962 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2963 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2964 0, 0, 0, 202, 0, 0, 203, 50, 0, 51,
2965 52, 0, 0, 0, 0, 54, 55, 56, 57, 58,
2966 59, 60, 61, 62, 0, 0, 0, 0, 0, 0,
2967 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2968 0, 10, 11, 63, 207, 65, 12, 0, 13, 14,
2969 15, 238, 239, 18, 19, 0, 0, 0, 0, 0,
2970 240, 241, 242, 23, 24, 25, 26, 0, 0, 200,
2971 0, 0, 0, 0, 0, 0, 268, 0, 0, 32,
2972 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2973 42, 0, 43, 44, 45, 0, 0, 0, 0, 0,
2974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2975 0, 0, 0, 0, 0, 0, 269, 0, 0, 323,
2976 50, 0, 51, 52, 0, 324, 0, 0, 54, 55,
2977 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2978 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2979 10, 11, 0, 0, 0, 12, 270, 13, 14, 15,
2980 238, 239, 18, 19, 0, 0, 0, 0, 0, 240,
2981 241, 242, 23, 24, 25, 26, 0, 0, 200, 0,
2982 0, 0, 0, 0, 0, 268, 0, 0, 32, 33,
2983 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2984 0, 43, 44, 45, 0, 0, 0, 0, 0, 0,
2985 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2986 0, 0, 0, 0, 0, 365, 0, 0, 49, 50,
2987 0, 51, 52, 0, 53, 0, 0, 54, 55, 56,
2988 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2989 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2990 11, 0, 0, 0, 12, 270, 13, 14, 15, 238,
2991 239, 18, 19, 0, 0, 0, 0, 0, 240, 241,
2992 242, 23, 24, 25, 26, 0, 0, 200, 0, 0,
2993 0, 0, 0, 0, 268, 0, 0, 32, 33, 34,
2994 373, 36, 37, 38, 374, 40, 0, 41, 42, 0,
2995 43, 44, 45, 0, 0, 0, 0, 0, 0, 0,
2996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2997 0, 375, 0, 0, 376, 0, 0, 203, 50, 0,
2998 51, 52, 0, 0, 0, 0, 54, 55, 56, 57,
2999 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
3000 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
3001 0, 0, 0, 12, 270, 13, 14, 15, 238, 239,
3002 18, 19, 0, 0, 0, 0, 0, 240, 241, 242,
3003 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
3004 0, 0, 0, 268, 0, 0, 32, 33, 34, 373,
3005 36, 37, 38, 374, 40, 0, 41, 42, 0, 43,
3006 44, 45, 0, 0, 0, 0, 0, 0, 0, 0,
3007 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3008 0, 0, 0, 376, 0, 0, 203, 50, 0, 51,
3009 52, 0, 0, 0, 0, 54, 55, 56, 57, 58,
3010 59, 60, 61, 62, 0, 0, 0, 0, 0, 5,
3011 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
3012 0, 0, 12, 270, 13, 14, 15, 238, 239, 18,
3013 19, 0, 0, 0, 0, 0, 240, 241, 242, 23,
3014 24, 25, 26, 0, 0, 200, 0, 0, 0, 0,
3015 0, 0, 268, 0, 0, 32, 33, 34, 35, 36,
3016 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
3017 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3018 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3019 0, 0, 269, 0, 0, 323, 50, 0, 51, 52,
3020 0, 0, 0, 0, 54, 55, 56, 57, 58, 59,
3021 60, 61, 62, 0, 0, 0, 0, 0, 5, 6,
3022 7, 0, 9, 0, 0, 0, 10, 11, 0, 0,
3023 0, 12, 270, 13, 14, 15, 238, 239, 18, 19,
3024 0, 0, 0, 0, 0, 240, 241, 242, 23, 24,
3025 25, 26, 0, 0, 200, 0, 0, 0, 0, 0,
3026 0, 268, 0, 0, 32, 33, 34, 35, 36, 37,
3027 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
3028 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3029 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3030 0, 893, 0, 0, 203, 50, 0, 51, 52, 0,
3031 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
3032 61, 62, 0, 0, 0, 0, 0, 5, 6, 7,
3033 0, 9, 0, 0, 0, 10, 11, 0, 0, 0,
3034 12, 270, 13, 14, 15, 238, 239, 18, 19, 0,
3035 0, 0, 0, 0, 240, 241, 242, 23, 24, 25,
3036 26, 0, 0, 200, 0, 0, 0, 0, 0, 0,
3037 268, 0, 0, 32, 33, 34, 35, 36, 37, 38,
3038 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
3039 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3040 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3041 973, 0, 0, 203, 50, 0, 51, 52, 0, 0,
3042 0, 0, 54, 55, 56, 57, 58, 59, 60, 61,
3043 62, 0, 0, 0, 0, 0, 0, 553, 554, 0,
3044 0, 555, 0, 0, 0, 0, 0, 0, 0, 0,
3045 270, 162, 163, 164, 165, 166, 167, 168, 169, 170,
3046 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
3047 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3048 177, 178, 0, 0, 0, 0, 0, 0, 0, 0,
3049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3050 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3051 188, 0, 189, 190, 561, 562, 0, 0, 563, 0,
3052 191, 0, 0, 0, 0, 0, 0, 0, 162, 163,
3053 164, 165, 166, 167, 168, 169, 170, 0, 0, 171,
3054 172, 0, 0, 173, 174, 175, 176, 0, 0, 0,
3055 0, 0, 0, 0, 0, 0, 0, 177, 178, 0,
3056 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3057 0, 0, 0, 0, 0, 0, 0, 0, 179, 180,
3058 181, 182, 183, 184, 185, 186, 187, 188, 0, 189,
3059 190, 598, 562, 0, 0, 599, 0, 191, 0, 0,
3060 0, 0, 0, 0, 0, 162, 163, 164, 165, 166,
3061 167, 168, 169, 170, 0, 0, 171, 172, 0, 0,
3062 173, 174, 175, 176, 0, 0, 0, 0, 0, 0,
3063 0, 0, 0, 0, 177, 178, 0, 0, 0, 0,
3064 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3065 0, 0, 0, 0, 0, 179, 180, 181, 182, 183,
3066 184, 185, 186, 187, 188, 0, 189, 190, 612, 554,
3067 0, 0, 613, 0, 191, 0, 0, 0, 0, 0,
3068 0, 0, 162, 163, 164, 165, 166, 167, 168, 169,
3069 170, 0, 0, 171, 172, 0, 0, 173, 174, 175,
3070 176, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3071 0, 177, 178, 0, 0, 0, 0, 0, 0, 0,
3072 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3073 0, 0, 179, 180, 181, 182, 183, 184, 185, 186,
3074 187, 188, 0, 189, 190, 615, 562, 0, 0, 616,
3075 0, 191, 0, 0, 0, 0, 0, 0, 0, 162,
3076 163, 164, 165, 166, 167, 168, 169, 170, 0, 0,
3077 171, 172, 0, 0, 173, 174, 175, 176, 0, 0,
3078 0, 0, 0, 0, 0, 0, 0, 0, 177, 178,
3079 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3080 0, 0, 0, 0, 0, 0, 0, 0, 0, 179,
3081 180, 181, 182, 183, 184, 185, 186, 187, 188, 0,
3082 189, 190, 639, 554, 0, 0, 640, 0, 191, 0,
3083 0, 0, 0, 0, 0, 0, 162, 163, 164, 165,
3084 166, 167, 168, 169, 170, 0, 0, 171, 172, 0,
3085 0, 173, 174, 175, 176, 0, 0, 0, 0, 0,
3086 0, 0, 0, 0, 0, 177, 178, 0, 0, 0,
3087 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3088 0, 0, 0, 0, 0, 0, 179, 180, 181, 182,
3089 183, 184, 185, 186, 187, 188, 0, 189, 190, 642,
3090 562, 0, 0, 643, 0, 191, 0, 0, 0, 0,
3091 0, 0, 0, 162, 163, 164, 165, 166, 167, 168,
3092 169, 170, 0, 0, 171, 172, 0, 0, 173, 174,
3093 175, 176, 0, 0, 0, 0, 0, 0, 0, 0,
3094 0, 0, 177, 178, 0, 0, 0, 0, 0, 0,
3095 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3096 0, 0, 0, 179, 180, 181, 182, 183, 184, 185,
3097 186, 187, 188, 0, 189, 190, 727, 554, 0, 0,
3098 728, 0, 191, 0, 0, 0, 0, 0, 0, 0,
3099 162, 163, 164, 165, 166, 167, 168, 169, 170, 0,
3100 0, 171, 172, 0, 0, 173, 174, 175, 176, 0,
3101 0, 0, 0, 0, 0, 0, 0, 0, 0, 177,
3102 178, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3103 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3104 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
3105 0, 189, 190, 730, 562, 0, 0, 731, 0, 191,
3106 0, 0, 0, 0, 0, 0, 0, 162, 163, 164,
3107 165, 166, 167, 168, 169, 170, 0, 0, 171, 172,
3108 0, 0, 173, 174, 175, 176, 0, 0, 0, 0,
3109 0, 0, 0, 0, 0, 0, 177, 178, 0, 0,
3110 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3111 0, 0, 0, 0, 0, 0, 0, 179, 180, 181,
3112 182, 183, 184, 185, 186, 187, 188, 0, 189, 190,
3113 737, 554, 0, 0, 738, 0, 191, 0, 0, 0,
3114 0, 0, 0, 0, 162, 163, 164, 165, 166, 167,
3115 168, 169, 170, 0, 0, 171, 172, 0, 0, 173,
3116 174, 175, 176, 0, 0, 0, 0, 0, 0, 0,
3117 0, 0, 0, 177, 178, 0, 0, 0, 0, 0,
3118 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3119 0, 0, 0, 0, 179, 180, 181, 182, 183, 184,
3120 185, 186, 187, 188, 0, 189, 190, 1001, 554, 0,
3121 0, 1002, 0, 191, 0, 0, 0, 0, 0, 0,
3122 0, 162, 163, 164, 165, 166, 167, 168, 169, 170,
3123 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
3124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3125 177, 178, 0, 0, 0, 0, 0, 0, 0, 0,
3126 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3127 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3128 188, 0, 189, 190, 1036, 554, 0, 0, 1037, 0,
3129 191, 0, 0, 0, 0, 0, 0, 0, 162, 163,
3130 164, 165, 166, 167, 168, 169, 170, 0, 0, 171,
3131 172, 0, 0, 173, 174, 175, 176, 0, 0, 0,
3132 0, 0, 0, 0, 0, 0, 0, 177, 178, 0,
3133 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3134 0, 0, 0, 0, 0, 0, 0, 0, 179, 180,
3135 181, 182, 183, 184, 185, 186, 187, 188, 0, 189,
3136 190, 1039, 562, 0, 0, 1040, 0, 191, 0, 0,
3137 0, 0, 0, 0, 0, 162, 163, 164, 165, 166,
3138 167, 168, 169, 170, 0, 0, 171, 172, 0, 0,
3139 173, 174, 175, 176, 0, 0, 0, 0, 0, 0,
3140 0, 0, 0, 0, 177, 178, 0, 0, 0, 0,
3141 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3142 0, 0, 0, 0, 0, 179, 180, 181, 182, 183,
3143 184, 185, 186, 187, 188, 0, 189, 190, 0, 0,
3147 #define yypact_value_is_default(yystate) \
3148 ((yystate) == (-810))
3150 #define yytable_value_is_error(yytable_value) \
3151 ((yytable_value) == (-620))
3155 2, 55, 96, 16, 17, 8, 79, 20, 22, 64,
3156 354, 326, 16, 17, 8, 220, 20, 50, 27, 8,
3157 29, 472, 326, 28, 87, 28, 359, 90, 412, 353,
3158 4, 355, 420, 74, 28, 2, 420, 4, 53, 28,
3159 94, 668, 49, 90, 575, 594, 614, 51, 262, 51,
3160 52, 685, 266, 86, 87, 574, 67, 90, 440, 468,
3161 74, 55, 13, 651, 79, 786, 2, 376, 4, 49,
3162 458, 508, 416, 641, 511, 399, 91, 92, 93, 27,
3163 16, 17, 53, 776, 20, 874, 250, 472, 67, 778,
3164 87, 415, 715, 417, 16, 17, 719, 906, 20, 26,
3165 94, 872, 0, 37, 38, 13, 25, 230, 801, 518,
3166 25, 90, 26, 49, 50, 85, 113, 53, 25, 443,
3167 141, 61, 61, 13, 1, 85, 470, 85, 64, 85,
3168 16, 17, 255, 25, 20, 97, 259, 134, 902, 76,
3169 130, 85, 134, 79, 778, 596, 25, 471, 28, 141,
3170 86, 87, 786, 29, 90, 91, 92, 93, 120, 323,
3171 286, 729, 288, 133, 290, 51, 52, 938, 294, 25,
3172 110, 110, 740, 133, 25, 133, 132, 133, 805, 806,
3173 25, 118, 770, 771, 25, 136, 56, 736, 139, 133,
3174 141, 139, 13, 141, 140, 744, 203, 230, 271, 232,
3175 113, 990, 243, 130, 1013, 252, 657, 141, 897, 136,
3176 140, 224, 214, 226, 227, 134, 130, 136, 220, 134,
3177 224, 992, 226, 944, 429, 227, 134, 134, 13, 13,
3178 237, 139, 134, 141, 622, 111, 580, 621, 622, 1003,
3179 117, 252, 134, 250, 307, 308, 309, 310, 592, 139,
3180 632, 141, 85, 690, 1025, 134, 271, 581, 885, 268,
3181 949, 113, 139, 897, 141, 85, 321, 203, 902, 593,
3182 250, 326, 657, 252, 307, 308, 309, 310, 134, 312,
3183 313, 248, 591, 134, 872, 136, 874, 696, 224, 134,
3184 226, 227, 743, 134, 230, 87, 232, 360, 361, 422,
3185 133, 237, 224, 426, 226, 928, 37, 38, 431, 324,
3186 944, 87, 248, 133, 250, 362, 323, 321, 139, 1008,
3187 141, 113, 326, 68, 447, 113, 136, 360, 361, 452,
3188 100, 141, 306, 852, 87, 271, 963, 113, 224, 306,
3189 226, 354, 375, 323, 311, 61, 134, 402, 403, 65,
3190 938, 939, 354, 324, 139, 139, 141, 141, 743, 485,
3191 113, 355, 25, 61, 85, 140, 492, 61, 140, 1003,
3192 306, 307, 308, 309, 310, 311, 312, 313, 123, 124,
3193 125, 930, 697, 362, 139, 321, 141, 323, 324, 136,
3194 326, 107, 725, 109, 517, 468, 685, 928, 15, 378,
3195 17, 25, 990, 416, 992, 399, 611, 68, 85, 107,
3196 714, 109, 133, 107, 416, 109, 26, 85, 354, 134,
3197 356, 85, 636, 417, 360, 361, 428, 429, 85, 52,
3198 56, 26, 437, 56, 437, 87, 26, 1025, 440, 375,
3199 989, 113, 140, 437, 85, 518, 140, 134, 437, 443,
3200 113, 134, 88, 468, 85, 132, 133, 470, 141, 136,
3201 121, 122, 123, 124, 125, 133, 402, 403, 470, 133,
3202 1038, 134, 87, 440, 137, 85, 133, 471, 141, 867,
3203 416, 87, 87, 867, 935, 87, 134, 703, 134, 113,
3204 85, 132, 133, 141, 710, 85, 136, 786, 113, 61,
3205 789, 132, 133, 518, 440, 507, 508, 113, 61, 511,
3206 134, 113, 61, 137, 450, 136, 557, 141, 130, 134,
3207 130, 26, 132, 133, 565, 52, 412, 54, 55, 56,
3208 57, 68, 468, 542, 470, 130, 136, 132, 133, 137,
3209 130, 136, 132, 133, 558, 107, 136, 109, 110, 85,
3210 113, 560, 566, 138, 107, 760, 109, 110, 107, 600,
3211 109, 110, 595, 570, 637, 572, 568, 580, 670, 455,
3212 672, 131, 576, 85, 59, 60, 577, 87, 580, 592,
3213 85, 56, 518, 916, 87, 110, 600, 581, 87, 922,
3214 592, 87, 625, 85, 573, 574, 132, 133, 600, 593,
3215 605, 61, 605, 113, 134, 614, 110, 134, 587, 611,
3216 113, 605, 110, 902, 113, 904, 605, 113, 68, 742,
3217 132, 133, 637, 696, 134, 130, 110, 132, 133, 58,
3218 632, 136, 641, 68, 570, 134, 572, 61, 761, 68,
3219 132, 133, 697, 94, 580, 700, 701, 107, 685, 109,
3220 110, 774, 707, 708, 748, 944, 592, 946, 594, 595,
3221 85, 134, 951, 704, 666, 632, 668, 96, 97, 732,
3222 711, 17, 735, 1017, 59, 60, 685, 139, 87, 686,
3223 58, 696, 689, 107, 691, 109, 110, 56, 690, 625,
3224 68, 120, 746, 25, 1018, 137, 632, 85, 134, 732,
3225 134, 637, 735, 685, 113, 131, 134, 132, 133, 711,
3226 714, 130, 714, 715, 1003, 717, 1005, 719, 96, 97,
3227 729, 1010, 134, 724, 52, 134, 54, 55, 56, 57,
3228 85, 740, 14, 15, 140, 621, 859, 140, 1027, 134,
3229 741, 134, 120, 780, 132, 133, 85, 784, 871, 113,
3230 686, 134, 746, 689, 733, 691, 136, 10, 760, 1048,
3231 696, 697, 8, 85, 700, 701, 745, 776, 2, 13,
3232 4, 707, 708, 828, 85, 131, 85, 132, 133, 842,
3233 882, 883, 16, 17, 799, 887, 20, 889, 890, 113,
3234 134, 134, 801, 132, 133, 52, 732, 134, 780, 735,
3235 736, 134, 52, 805, 806, 134, 134, 814, 744, 842,
3236 132, 133, 52, 134, 115, 49, 50, 54, 55, 138,
3237 57, 132, 133, 132, 133, 15, 63, 64, 134, 87,
3238 64, 131, 839, 113, 118, 837, 134, 134, 840, 846,
3239 847, 134, 843, 850, 845, 52, 87, 54, 55, 56,
3240 57, 58, 86, 87, 855, 113, 90, 134, 134, 860,
3241 897, 68, 899, 799, 139, 902, 10, 904, 131, 10,
3242 877, 878, 113, 852, 134, 854, 134, 892, 814, 808,
3243 809, 9, 89, 885, 891, 88, 134, 134, 95, 96,
3244 97, 134, 828, 134, 996, 997, 998, 999, 54, 137,
3245 915, 134, 134, 839, 56, 118, 842, 63, 64, 131,
3246 846, 847, 919, 120, 850, 897, 123, 899, 134, 134,
3247 902, 10, 904, 131, 925, 926, 928, 52, 108, 54,
3248 55, 56, 57, 52, 141, 54, 55, 56, 57, 58,
3249 134, 877, 878, 134, 1046, 134, 134, 56, 52, 68,
3250 54, 55, 56, 57, 136, 891, 892, 134, 134, 134,
3251 969, 963, 136, 450, 89, 91, 1003, 711, 1005, 203,
3252 89, 1008, 979, 1010, 981, 93, 1020, 96, 97, 915,
3253 987, 770, 685, 919, 1013, 89, 749, 988, 1019, 99,
3254 224, 95, 226, 227, 930, 294, 230, 57, 232, 94,
3255 935, 120, 780, 237, 1017, 52, 899, 54, 55, 56,
3256 57, 1048, 897, 778, 248, 1017, 250, 1019, 1020, 396,
3257 1021, 1003, 1023, 1005, 1018, -1, 1008, -1, 1010, 1038,
3258 -1, 960, 961, -1, -1, 964, -1, 966, 967, -1,
3259 -1, -1, 89, 979, 68, 981, -1, -1, 95, -1,
3260 -1, 987, -1, 989, 68, -1, -1, -1, -1, 83,
3261 84, 40, 41, 42, 43, 44, 1048, -1, -1, 83,
3262 84, -1, 306, 307, 308, 309, 310, 311, 312, 313,
3263 52, 1017, 54, 55, 56, 57, -1, 321, -1, 323,
3264 -1, -1, 326, -1, 118, 119, 120, 121, 122, 123,
3265 124, 125, 1031, 1032, 1033, 1034, 120, 121, 122, 123,
3266 124, 125, -1, -1, -1, -1, -1, -1, -1, -1,
3267 354, -1, 356, -1, -1, 1054, 360, 361, -1, -1,
3268 -1, -1, -1, 52, -1, 54, 55, 56, 57, 58,
3269 -1, 375, -1, -1, -1, -1, -1, -1, 0, 68,
3270 -1, -1, -1, -1, -1, -1, 8, 9, 10, -1,
3271 -1, 13, 14, 15, -1, 17, -1, -1, 402, 403,
3272 89, -1, -1, -1, 26, 27, 95, 96, 97, -1,
3273 -1, -1, 416, -1, -1, 37, 38, 68, 40, 41,
3274 42, 43, 44, -1, 52, -1, 54, 55, 56, 57,
3275 58, 120, 83, 84, 123, -1, 440, -1, -1, -1,
3276 68, -1, -1, -1, -1, -1, 450, 136, -1, -1,
3277 -1, -1, -1, -1, 16, 17, -1, -1, 20, -1,
3278 -1, 89, -1, 85, -1, -1, 470, 95, 96, 97,
3279 121, 122, 123, 124, 125, -1, -1, -1, -1, -1,
3280 -1, -1, -1, -1, 46, 47, 108, -1, -1, 51,
3281 52, -1, 120, -1, -1, 123, -1, -1, -1, -1,
3282 -1, -1, 64, 65, -1, 44, -1, -1, 130, 131,
3283 -1, 133, -1, -1, 136, 137, -1, 139, -1, 141,
3284 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
3285 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3286 79, 80, -1, -1, 83, 84, -1, -1, -1, -1,
3287 -1, -1, -1, -1, -1, -1, 52, -1, 54, 55,
3288 56, 57, 58, -1, -1, -1, 570, -1, 572, -1,
3289 -1, -1, 68, -1, -1, 114, 580, 116, 117, 118,
3290 119, 120, 121, 122, 123, 124, 125, -1, 592, -1,
3291 594, 595, -1, 89, -1, 134, -1, -1, -1, 95,
3292 96, 97, -1, 68, 69, 70, 71, 72, 73, 74,
3293 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3294 -1, 625, -1, -1, 120, -1, -1, 123, 632, -1,
3295 -1, -1, 2, -1, 4, -1, -1, -1, -1, 201,
3296 136, -1, 204, 205, 206, 207, -1, -1, 52, 114,
3297 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3298 125, -1, 224, -1, 226, 227, -1, -1, 52, -1,
3299 54, 55, 56, 57, 58, -1, 141, -1, -1, 49,
3300 -1, -1, 686, 53, 68, 689, -1, 691, -1, -1,
3301 -1, -1, -1, 697, -1, -1, 700, 701, -1, -1,
3302 -1, -1, -1, 707, 708, 89, -1, -1, -1, 79,
3303 -1, 95, 96, 97, -1, -1, -1, -1, -1, -1,
3304 -1, 91, 92, 93, 94, -1, -1, -1, 732, -1,
3305 -1, 735, 736, -1, -1, -1, 120, -1, -1, 123,
3306 744, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3307 -1, -1, -1, -1, -1, -1, -1, -1, -1, 321,
3308 -1, -1, -1, -1, 326, 327, 328, 329, 330, 331,
3309 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
3310 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
3311 352, -1, 354, -1, -1, -1, -1, 201, -1, -1,
3312 204, 205, 206, -1, -1, -1, -1, -1, -1, -1,
3313 814, -1, -1, -1, -1, 52, -1, 54, 55, 56,
3314 57, 58, -1, -1, 828, -1, -1, -1, -1, -1,
3315 -1, 68, -1, 203, -1, 839, -1, -1, 842, -1,
3316 402, 403, 846, 847, -1, -1, 850, -1, 410, 411,
3317 412, -1, 89, -1, 416, -1, 418, 419, 420, 96,
3318 97, -1, -1, -1, -1, -1, -1, 237, -1, -1,
3319 -1, -1, -1, 877, 878, -1, -1, 439, 248, -1,
3320 250, -1, 444, 120, -1, -1, -1, 891, -1, -1,
3321 -1, -1, -1, 455, -1, -1, 458, -1, -1, -1,
3322 -1, 271, -1, -1, -1, 2, -1, 4, 470, -1,
3323 -1, -1, -1, -1, -1, 919, -1, 321, -1, -1,
3324 -1, 2, 326, 4, -1, -1, 930, -1, -1, -1,
3325 -1, -1, -1, -1, 496, 497, 306, -1, -1, -1,
3326 -1, 311, -1, -1, -1, -1, -1, -1, -1, -1,
3327 512, -1, 49, 323, 324, -1, 53, -1, -1, -1,
3328 -1, -1, -1, -1, -1, -1, -1, -1, 49, -1,
3329 -1, -1, 53, -1, -1, 979, -1, 981, -1, -1,
3330 -1, -1, 79, 987, -1, 989, 356, -1, -1, -1,
3331 -1, -1, -1, -1, 91, 92, 93, 94, 79, -1,
3332 -1, -1, -1, -1, -1, -1, -1, 411, 412, -1,
3333 91, 92, 93, 1017, 576, -1, 420, -1, 580, -1,
3334 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3335 592, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3336 -1, -1, -1, -1, -1, -1, 608, -1, -1, -1,
3337 -1, 455, -1, -1, 458, -1, -1, -1, -1, 621,
3338 622, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3339 440, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3340 450, -1, -1, -1, -1, -1, -1, 649, -1, -1,
3341 -1, -1, -1, -1, -1, -1, -1, -1, 468, -1,
3342 -1, -1, -1, -1, -1, -1, 203, -1, 512, -1,
3343 -1, -1, -1, -1, 2, -1, 4, -1, -1, -1,
3344 -1, -1, 203, -1, -1, -1, -1, -1, -1, -1,
3345 2, 693, 4, -1, -1, 697, 698, -1, 700, 701,
3346 237, -1, -1, -1, -1, 707, 708, -1, 518, -1,
3347 -1, 248, 714, 250, -1, -1, 237, -1, -1, -1,
3348 -1, 49, -1, -1, -1, -1, -1, 248, -1, 250,
3349 -1, -1, 576, -1, 271, -1, -1, 49, -1, -1,
3350 -1, -1, -1, -1, -1, -1, -1, -1, -1, 751,
3351 271, -1, -1, 755, 756, -1, 758, 759, -1, -1,
3352 570, -1, 572, 91, 608, 767, -1, -1, -1, 306,
3353 -1, -1, -1, -1, 311, -1, -1, 621, 622, -1,
3354 -1, -1, -1, -1, 594, 306, 323, 324, -1, -1,
3355 311, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3356 -1, -1, 323, 324, -1, 649, -1, -1, -1, -1,
3357 -1, -1, -1, -1, 816, -1, -1, -1, 820, 356,
3358 -1, -1, 632, -1, -1, -1, 828, 637, -1, -1,
3359 -1, -1, -1, -1, -1, 356, -1, -1, -1, -1,
3360 -1, -1, -1, -1, -1, -1, -1, 849, -1, 693,
3361 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3362 -1, -1, -1, -1, 866, 867, -1, -1, -1, -1,
3363 714, -1, -1, -1, -1, 203, 686, -1, -1, 689,
3364 -1, 691, -1, -1, -1, -1, 696, -1, -1, -1,
3365 -1, 203, -1, -1, -1, -1, -1, -1, -1, -1,
3366 -1, -1, -1, 440, -1, -1, -1, -1, -1, 237,
3367 -1, -1, -1, 450, -1, -1, -1, -1, -1, 440,
3368 248, -1, 250, 767, -1, 237, 736, -1, -1, 450,
3369 -1, 468, -1, -1, 744, -1, 248, -1, 250, -1,
3370 -1, -1, -1, -1, -1, -1, -1, 468, -1, -1,
3371 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3372 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3373 -1, -1, 816, -1, -1, -1, -1, -1, 306, -1,
3374 -1, 518, -1, 311, -1, -1, -1, -1, -1, 799,
3375 -1, -1, -1, -1, 306, 323, -1, 518, 326, 311,
3376 -1, -1, -1, -1, 814, 849, -1, -1, -1, -1,
3377 -1, 323, -1, -1, -1, 1017, -1, -1, -1, -1,
3378 -1, -1, -1, 867, -1, -1, -1, -1, 356, 839,
3379 -1, -1, -1, 570, -1, 572, 846, 847, -1, -1,
3380 850, -1, -1, -1, 356, -1, -1, -1, -1, 570,
3381 -1, 572, -1, -1, -1, -1, -1, 594, -1, -1,
3382 -1, -1, -1, -1, -1, -1, -1, 877, 878, -1,
3383 -1, -1, -1, 594, -1, -1, -1, -1, -1, -1,
3384 -1, 891, 892, -1, -1, -1, -1, -1, -1, -1,
3385 -1, -1, -1, -1, -1, 632, -1, -1, -1, -1,
3386 637, -1, -1, -1, -1, 915, -1, -1, -1, 919,
3387 -1, 632, 440, -1, -1, -1, 637, -1, -1, -1,
3388 930, -1, 450, -1, -1, -1, -1, -1, 440, -1,
3389 -1, -1, -1, -1, -1, -1, -1, -1, 450, -1,
3390 -1, -1, -1, -1, -1, -1, -1, -1, -1, 686,
3391 -1, -1, 689, -1, 691, 676, 44, -1, -1, 696,
3392 -1, -1, -1, -1, -1, 686, -1, -1, 689, 979,
3393 691, 981, -1, -1, -1, 696, -1, 987, -1, 989,
3394 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
3395 78, 79, 80, -1, -1, 83, 84, -1, -1, 736,
3396 -1, -1, -1, -1, -1, -1, -1, 744, -1, -1,
3397 -1, -1, -1, -1, -1, 736, -1, -1, -1, -1,
3398 -1, -1, -1, 744, -1, -1, 114, -1, 116, 117,
3399 118, 119, 120, 121, 122, 123, 124, 125, -1, -1,
3400 -1, -1, 570, -1, 572, -1, -1, -1, -1, -1,
3401 -1, -1, -1, -1, -1, -1, -1, -1, 570, -1,
3402 572, -1, 799, -1, -1, -1, 594, -1, -1, -1,
3403 -1, -1, -1, -1, -1, -1, -1, 814, 799, -1,
3404 -1, -1, 594, -1, -1, -1, -1, -1, -1, -1,
3405 -1, -1, -1, 814, -1, -1, -1, -1, -1, -1,
3406 -1, -1, 839, -1, 632, -1, -1, -1, -1, 846,
3407 847, -1, -1, 850, -1, -1, -1, -1, 839, -1,
3408 632, -1, -1, -1, -1, 846, 847, -1, -1, 850,
3409 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3410 877, 878, -1, -1, -1, -1, -1, -1, -1, -1,
3411 -1, -1, -1, -1, 891, 892, 877, 878, 686, -1,
3412 -1, 689, -1, 691, -1, -1, -1, -1, -1, 697,
3413 891, 892, -1, -1, 686, -1, -1, 689, 915, 691,
3414 -1, -1, 919, -1, -1, -1, -1, -1, -1, -1,
3415 -1, -1, -1, 930, 915, -1, -1, -1, 919, -1,
3416 -1, -1, -1, -1, -1, -1, -1, -1, 736, 930,
3417 -1, -1, -1, -1, -1, -1, 744, -1, -1, -1,
3418 -1, -1, -1, -1, 736, 68, 69, 70, 71, 72,
3419 73, 74, 744, -1, 77, 78, -1, -1, -1, -1,
3420 83, 84, 979, -1, 981, -1, -1, -1, -1, -1,
3421 987, -1, 989, -1, -1, -1, -1, -1, 979, -1,
3422 981, -1, -1, -1, -1, -1, 987, -1, 989, -1,
3423 -1, -1, -1, 116, 117, 118, 119, 120, 121, 122,
3424 123, 124, 125, -1, -1, -1, 814, -1, -1, -1,
3425 -1, 68, 69, 70, 71, 72, 73, 74, 75, -1,
3426 77, 78, 814, -1, -1, -1, 83, 84, -1, -1,
3427 -1, 839, -1, -1, -1, -1, -1, -1, 846, 847,
3428 -1, -1, 850, -1, -1, -1, -1, 839, -1, -1,
3429 -1, -1, -1, -1, 846, 847, -1, -1, 850, 116,
3430 117, 118, 119, 120, 121, 122, 123, 124, 125, 877,
3431 878, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3432 -1, -1, -1, 891, -1, 877, 878, -1, -1, -1,
3433 -1, -1, -1, -1, -1, -1, -1, -1, -1, 891,
3434 68, 69, 70, 71, 72, 73, 74, 915, -1, 77,
3435 78, 919, -1, -1, -1, 83, 84, -1, -1, -1,
3436 -1, -1, 930, -1, -1, -1, -1, 919, -1, -1,
3437 -1, -1, -1, -1, -1, -1, -1, -1, 930, -1,
3438 -1, -1, -1, -1, -1, -1, -1, -1, 116, 117,
3439 118, 119, 120, 121, 122, 123, 124, 125, -1, -1,
3440 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3441 -1, 979, -1, 981, -1, -1, -1, -1, -1, 987,
3442 -1, 989, -1, -1, -1, -1, -1, 979, -1, 981,
3443 -1, -1, -1, -1, -1, 987, -1, 989, 0, 1,
3444 -1, 3, 4, 5, 6, 7, -1, -1, -1, 11,
3445 12, -1, -1, -1, 16, -1, 18, 19, 20, 21,
3446 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3447 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3448 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3449 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3450 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3451 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3452 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3453 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
3454 102, 103, 104, 105, 106, 0, -1, -1, -1, -1,
3455 -1, -1, -1, 8, 9, 10, -1, -1, 13, 14,
3456 15, -1, 17, -1, 126, 127, 128, -1, 44, -1,
3457 -1, 26, 27, 28, 29, -1, -1, 139, -1, 141,
3458 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3459 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3460 76, 77, 78, 79, 80, -1, -1, 83, 84, -1,
3461 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
3462 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3463 85, -1, 87, 88, -1, -1, -1, -1, 114, 94,
3464 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3465 -1, -1, -1, 108, -1, -1, 111, -1, 113, 114,
3466 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3467 125, -1, -1, -1, -1, 130, 131, 132, 133, 134,
3468 0, -1, 137, 138, 139, -1, 141, -1, 8, 9,
3469 10, -1, -1, 13, 14, 15, -1, 17, -1, -1,
3470 -1, -1, -1, -1, -1, 25, -1, 27, 28, 29,
3471 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
3472 40, 41, 42, 43, 44, -1, -1, 68, 69, 70,
3473 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3474 -1, -1, 83, 84, -1, -1, -1, -1, 68, 69,
3475 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3476 80, -1, -1, 83, 84, 85, -1, 87, 88, -1,
3477 -1, -1, -1, 114, 94, 116, 117, 118, 119, 120,
3478 121, 122, 123, 124, 125, -1, -1, -1, 108, -1,
3479 -1, 111, -1, 113, 114, 115, 116, 117, 118, 119,
3480 120, 121, 122, 123, 124, 125, -1, -1, -1, -1,
3481 -1, 131, 132, 133, 134, 0, -1, 137, 138, 139,
3482 -1, 141, -1, 8, 9, 10, -1, -1, 13, 14,
3483 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3484 25, -1, 27, 28, 29, -1, -1, -1, -1, -1,
3485 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3486 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3487 76, 77, 78, 79, 80, -1, -1, 83, 84, -1,
3488 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
3489 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3490 85, -1, 87, 88, -1, -1, -1, -1, -1, 94,
3491 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3492 -1, -1, -1, 108, -1, -1, 111, -1, 113, 114,
3493 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3494 125, -1, -1, -1, -1, -1, 131, 132, 133, 134,
3495 0, -1, 137, 138, 139, -1, 141, -1, 8, 9,
3496 10, -1, -1, 13, 14, 15, -1, 17, -1, -1,
3497 -1, -1, -1, -1, -1, -1, 26, 27, 28, 29,
3498 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
3499 40, 41, 42, 43, 44, -1, -1, -1, -1, -1,
3500 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3501 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
3502 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3503 80, -1, -1, 83, 84, 85, -1, -1, 88, -1,
3504 -1, -1, -1, -1, 94, -1, -1, -1, -1, -1,
3505 -1, -1, -1, -1, -1, -1, -1, -1, 108, -1,
3506 -1, 111, -1, -1, 114, 115, 116, 117, 118, 119,
3507 120, 121, 122, 123, 124, 125, -1, -1, -1, -1,
3508 130, 131, 132, 133, 134, 0, -1, 137, 138, 139,
3509 -1, 141, -1, 8, 9, 10, -1, -1, 13, 14,
3510 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3511 -1, 26, 27, 28, 29, -1, -1, -1, -1, -1,
3512 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3513 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3514 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3515 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
3516 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3517 85, -1, -1, 88, -1, -1, -1, -1, -1, 94,
3518 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3519 -1, -1, -1, 108, -1, -1, 111, -1, -1, 114,
3520 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3521 125, -1, -1, -1, -1, 130, 131, 132, 133, 134,
3522 0, -1, 137, 138, 139, -1, 141, -1, 8, 9,
3523 10, -1, -1, 13, 14, 15, -1, 17, -1, -1,
3524 -1, -1, -1, -1, -1, -1, -1, 27, 28, 29,
3525 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
3526 40, 41, 42, 43, 44, -1, -1, -1, -1, -1,
3527 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3528 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
3529 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3530 80, -1, -1, 83, 84, 85, -1, 87, 88, -1,
3531 -1, -1, -1, -1, 94, -1, -1, -1, -1, -1,
3532 -1, -1, -1, -1, -1, -1, -1, -1, 108, -1,
3533 -1, 111, -1, 113, 114, 115, 116, 117, 118, 119,
3534 120, 121, 122, 123, 124, 125, -1, -1, -1, -1,
3535 -1, 131, 132, 133, 134, 0, -1, 137, 138, 139,
3536 -1, 141, -1, 8, 9, 10, -1, -1, 13, 14,
3537 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3538 -1, 26, 27, 28, -1, -1, -1, -1, -1, -1,
3539 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3540 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3541 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3542 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
3543 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3544 85, -1, -1, 88, -1, -1, -1, -1, -1, 94,
3545 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3546 -1, -1, -1, 108, -1, -1, -1, -1, -1, 114,
3547 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3548 125, -1, -1, -1, -1, 130, 131, 132, 133, 134,
3549 0, 136, 137, 138, 139, -1, 141, -1, 8, 9,
3550 10, -1, -1, 13, 14, 15, -1, 17, -1, -1,
3551 -1, -1, -1, -1, -1, -1, -1, 27, 28, 29,
3552 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
3553 40, 41, 42, 43, 44, -1, -1, -1, -1, -1,
3554 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3555 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
3556 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3557 80, -1, -1, 83, 84, 85, -1, -1, 88, -1,
3558 -1, -1, -1, -1, 94, -1, -1, -1, -1, -1,
3559 -1, -1, -1, -1, -1, -1, -1, -1, 108, -1,
3560 -1, 111, -1, -1, 114, 115, 116, 117, 118, 119,
3561 120, 121, 122, 123, 124, 125, -1, -1, -1, -1,
3562 -1, 131, 132, 133, 134, 0, -1, 137, 138, 139,
3563 -1, 141, -1, 8, 9, 10, -1, -1, 13, 14,
3564 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3565 -1, 26, 27, 28, -1, -1, -1, -1, -1, -1,
3566 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3567 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3568 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3569 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
3570 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3571 85, -1, -1, 88, -1, -1, -1, -1, -1, 94,
3572 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3573 -1, -1, -1, 108, -1, -1, -1, -1, -1, 114,
3574 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3575 125, -1, -1, -1, -1, 130, 131, 132, 133, 134,
3576 0, 136, 137, 138, 139, -1, 141, -1, 8, 9,
3577 10, -1, -1, 13, 14, 15, -1, 17, -1, -1,
3578 -1, -1, -1, -1, -1, -1, -1, 27, 28, -1,
3579 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
3580 40, 41, 42, 43, 44, -1, -1, -1, -1, -1,
3581 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3582 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
3583 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3584 80, -1, -1, 83, 84, 85, -1, -1, 88, -1,
3585 -1, -1, -1, -1, 94, -1, -1, -1, -1, -1,
3586 -1, -1, -1, -1, -1, -1, -1, -1, 108, -1,
3587 -1, -1, -1, -1, 114, -1, 116, 117, 118, 119,
3588 120, 121, 122, 123, 124, 125, -1, -1, -1, -1,
3589 -1, 131, 132, 133, 134, 0, 136, 137, 138, 139,
3590 -1, 141, -1, 8, 9, 10, -1, -1, -1, 14,
3591 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3592 -1, 26, -1, -1, -1, -1, -1, -1, -1, -1,
3593 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3594 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3595 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3596 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
3597 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3598 85, -1, 87, -1, -1, -1, -1, -1, -1, -1,
3599 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3600 -1, -1, -1, 108, -1, -1, -1, -1, 113, 114,
3601 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3602 125, -1, -1, -1, -1, 130, 131, 132, 133, 134,
3603 0, -1, 137, -1, 139, -1, 141, -1, 8, 9,
3604 10, -1, -1, -1, 14, 15, -1, 17, -1, -1,
3605 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3606 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
3607 40, 41, 42, 43, 44, -1, -1, -1, -1, -1,
3608 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3609 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
3610 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3611 80, -1, -1, 83, 84, 85, -1, 87, -1, -1,
3612 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3613 -1, -1, -1, -1, -1, -1, -1, -1, 108, -1,
3614 -1, -1, -1, 113, 114, -1, 116, 117, 118, 119,
3615 120, 121, 122, 123, 124, 125, -1, -1, -1, -1,
3616 -1, 131, 132, 133, 134, -1, -1, 137, -1, 139,
3617 1, 141, 3, 4, 5, 6, 7, 8, 9, 10,
3618 11, 12, -1, -1, 15, 16, -1, 18, 19, 20,
3619 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3620 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3621 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
3622 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3623 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3624 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3625 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3626 -1, 92, 93, -1, 95, -1, -1, 98, 99, 100,
3627 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
3628 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3629 -1, -1, -1, -1, -1, 126, 127, 128, -1, -1,
3630 -1, -1, -1, -1, -1, -1, -1, -1, 139, 1,
3631 141, 3, 4, 5, 6, 7, -1, -1, 10, 11,
3632 12, -1, 14, 15, 16, -1, 18, 19, 20, 21,
3633 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3634 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3635 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3636 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3637 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3638 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3639 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3640 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
3641 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
3642 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3643 -1, -1, -1, -1, 126, 127, 128, -1, -1, -1,
3644 -1, -1, -1, -1, -1, -1, -1, 139, 1, 141,
3645 3, 4, 5, 6, 7, -1, -1, 10, 11, 12,
3646 -1, -1, 15, 16, 17, 18, 19, 20, 21, 22,
3647 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3648 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3649 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
3650 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
3651 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3652 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3653 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3654 93, -1, 95, -1, -1, 98, 99, 100, 101, 102,
3655 103, 104, 105, 106, -1, -1, -1, -1, -1, -1,
3656 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3657 -1, -1, -1, 126, 127, 128, -1, -1, -1, -1,
3658 -1, -1, -1, -1, -1, -1, 139, 1, 141, 3,
3659 4, 5, 6, 7, -1, -1, 10, 11, 12, -1,
3660 -1, 15, 16, -1, 18, 19, 20, 21, 22, 23,
3661 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3662 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3663 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3664 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3665 64, -1, 66, 67, -1, -1, -1, -1, -1, -1,
3666 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3667 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3668 -1, 95, -1, -1, 98, 99, 100, 101, 102, 103,
3669 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
3670 1, -1, 3, 4, 5, 6, 7, -1, 9, 10,
3671 11, 12, 126, 127, 128, 16, -1, 18, 19, 20,
3672 21, 22, 23, 24, -1, 139, -1, 141, -1, 30,
3673 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3674 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
3675 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3676 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3677 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3678 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3679 -1, 92, 93, -1, 95, -1, -1, 98, 99, 100,
3680 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
3681 -1, -1, -1, 1, -1, 3, 4, 5, 6, 7,
3682 -1, -1, -1, 11, 12, 126, 127, 128, 16, -1,
3683 18, 19, 20, 21, 22, 23, 24, -1, 139, -1,
3684 141, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3685 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3686 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3687 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3688 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3689 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3690 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
3691 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3692 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3693 -1, -1, -1, -1, -1, -1, -1, -1, 126, 127,
3694 128, -1, -1, -1, -1, -1, -1, -1, -1, 137,
3695 -1, 139, 1, 141, 3, 4, 5, 6, 7, -1,
3696 -1, -1, 11, 12, -1, -1, -1, 16, -1, 18,
3697 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3698 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3699 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3700 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3701 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3702 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3703 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3704 89, 90, -1, 92, 93, -1, 95, -1, -1, 98,
3705 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
3706 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3707 -1, -1, -1, -1, -1, -1, -1, 126, 127, 128,
3708 -1, -1, -1, -1, -1, -1, -1, -1, 137, -1,
3709 139, 1, 141, 3, 4, 5, 6, 7, -1, -1,
3710 -1, 11, 12, -1, -1, -1, 16, -1, 18, 19,
3711 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3712 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3713 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
3714 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3715 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3716 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3717 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3718 90, -1, 92, 93, -1, 95, -1, -1, 98, 99,
3719 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
3720 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3721 -1, -1, -1, -1, -1, -1, 126, 127, 128, -1,
3722 -1, 131, 1, -1, 3, 4, 5, 6, 7, 139,
3723 -1, 141, 11, 12, -1, -1, -1, 16, -1, 18,
3724 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3725 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3726 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3727 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3728 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3729 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3730 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3731 89, 90, -1, 92, 93, -1, 95, -1, -1, 98,
3732 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
3733 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3734 -1, -1, -1, -1, -1, -1, -1, 126, 127, 128,
3735 -1, -1, 131, -1, -1, -1, -1, -1, -1, -1,
3736 139, 1, 141, 3, 4, 5, 6, 7, -1, -1,
3737 10, 11, 12, -1, -1, -1, 16, -1, 18, 19,
3738 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3739 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3740 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
3741 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3742 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3743 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3744 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3745 90, -1, 92, 93, -1, 95, -1, -1, 98, 99,
3746 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
3747 -1, -1, -1, -1, 1, -1, 3, 4, 5, 6,
3748 7, -1, -1, -1, 11, 12, 126, 127, 128, 16,
3749 -1, 18, 19, 20, 21, 22, 23, 24, -1, 139,
3750 -1, 141, -1, 30, 31, 32, 33, 34, 35, 36,
3751 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
3752 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3753 57, -1, 59, 60, -1, 62, 63, 64, -1, 66,
3754 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3755 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3756 -1, -1, 89, 90, -1, 92, 93, -1, 95, -1,
3757 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3758 -1, 108, -1, -1, -1, -1, -1, -1, -1, 3,
3759 4, 5, -1, 7, -1, -1, -1, 11, 12, 126,
3760 127, 128, 16, -1, 18, 19, 20, 21, 22, 23,
3761 24, -1, 139, -1, 141, -1, 30, 31, 32, 33,
3762 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3763 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3764 54, 55, 56, 57, 58, 59, 60, -1, 62, 63,
3765 64, -1, 66, 67, -1, -1, -1, -1, -1, -1,
3766 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3767 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3768 -1, 95, 96, 97, 98, 99, 100, 101, 102, 103,
3769 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
3770 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3771 11, 12, 126, 127, 128, 16, -1, 18, 19, 20,
3772 21, 22, 23, 24, -1, -1, -1, 141, -1, 30,
3773 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3774 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3775 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3776 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3777 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3778 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3779 -1, 92, 93, -1, -1, -1, -1, 98, 99, 100,
3780 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
3781 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
3782 -1, -1, -1, 11, 12, 126, 127, 128, 16, -1,
3783 18, 19, 20, 21, 22, 23, 24, -1, 139, -1,
3784 141, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3785 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
3786 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3787 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3788 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3789 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3790 -1, 89, 90, -1, 92, 93, -1, -1, -1, -1,
3791 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3792 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
3793 5, 6, 7, -1, -1, -1, 11, 12, 126, 127,
3794 128, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3795 -1, -1, -1, 141, -1, 30, 31, 32, 33, 34,
3796 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3797 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3798 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
3799 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3800 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3801 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3802 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
3803 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
3804 -1, 3, 4, 5, 6, 7, -1, -1, -1, 11,
3805 12, 126, 127, 128, 16, -1, 18, 19, 20, 21,
3806 22, 23, 24, -1, 139, -1, -1, -1, 30, 31,
3807 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3808 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3809 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3810 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3811 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3812 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3813 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
3814 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
3815 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3816 -1, -1, -1, -1, 126, 127, 128, -1, -1, -1,
3817 -1, -1, -1, -1, -1, -1, -1, 139, 3, 4,
3818 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3819 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3820 25, 26, -1, -1, -1, 30, 31, 32, 33, 34,
3821 35, 36, 37, 38, 39, -1, -1, -1, -1, -1,
3822 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3823 55, 56, 57, -1, -1, -1, -1, -1, -1, -1,
3824 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3825 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
3826 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3827 95, 96, -1, -1, -1, -1, -1, -1, -1, -1,
3828 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3829 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3830 125, -1, 127, 128, -1, -1, -1, -1, -1, -1,
3831 135, 136, 3, 4, 5, 6, 7, 8, 9, 10,
3832 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
3833 21, 22, 23, 24, 25, 26, -1, -1, -1, 30,
3834 31, 32, 33, 34, 35, 36, 37, 38, 39, -1,
3835 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
3836 51, 52, 53, 54, 55, 56, 57, -1, -1, -1,
3837 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
3838 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
3839 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
3840 -1, -1, -1, -1, 95, 96, -1, -1, -1, -1,
3841 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3842 -1, -1, -1, -1, -1, 116, 117, 118, 119, 120,
3843 121, 122, 123, 124, 125, -1, 127, 128, -1, -1,
3844 -1, -1, -1, -1, 135, 3, 4, 5, 6, 7,
3845 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
3846 18, 19, 20, 21, 22, 23, 24, 25, 26, -1,
3847 -1, -1, 30, 31, 32, 33, 34, 35, 36, 37,
3848 38, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3849 48, 49, 50, 51, 52, 53, 54, -1, 56, -1,
3850 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
3851 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
3852 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
3853 -1, -1, -1, -1, -1, -1, -1, 95, 96, -1,
3854 -1, 99, -1, -1, -1, -1, -1, -1, -1, -1,
3855 -1, -1, -1, -1, -1, -1, -1, -1, 116, 117,
3856 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
3857 128, -1, -1, -1, -1, -1, -1, 135, 3, 4,
3858 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3859 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3860 25, 26, -1, -1, -1, 30, 31, 32, 33, 34,
3861 35, 36, 37, 38, 39, -1, -1, -1, -1, -1,
3862 45, 46, 47, 48, 49, 50, 51, 52, 53, -1,
3863 -1, 56, -1, -1, -1, -1, -1, -1, -1, -1,
3864 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3865 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
3866 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3867 95, 96, -1, -1, 99, -1, -1, -1, -1, -1,
3868 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3869 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3870 125, -1, 127, 128, -1, -1, -1, -1, -1, -1,
3871 135, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3872 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3873 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
3874 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
3875 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3876 52, 53, -1, -1, 56, -1, -1, -1, -1, -1,
3877 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
3878 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
3879 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
3880 -1, -1, -1, 95, 96, -1, -1, -1, -1, -1,
3881 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3882 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121,
3883 122, 123, 124, 125, -1, 127, 128, 3, 4, 5,
3884 -1, 7, -1, 135, -1, 11, 12, -1, -1, -1,
3885 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3886 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3887 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
3888 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
3889 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3890 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3891 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3892 86, -1, -1, 89, 90, -1, 92, 93, -1, -1,
3893 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
3894 106, -1, -1, -1, -1, -1, 3, 4, 5, -1,
3895 7, -1, -1, -1, 11, 12, -1, -1, -1, 16,
3896 126, 18, 19, 20, 21, 22, 23, 24, 134, -1,
3897 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3898 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
3899 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
3900 57, -1, 59, 60, -1, 62, 63, 64, -1, -1,
3901 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3902 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3903 -1, -1, 89, 90, -1, 92, 93, -1, -1, -1,
3904 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3905 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7,
3906 -1, -1, -1, 11, 12, -1, -1, -1, 16, 126,
3907 18, 19, 20, 21, 22, 23, 24, 134, -1, -1,
3908 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3909 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3910 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3911 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3912 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3913 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3914 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
3915 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3916 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
3917 5, -1, 7, -1, -1, -1, 11, 12, 126, 127,
3918 128, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3919 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3920 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3921 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
3922 55, 56, 57, 58, 59, 60, -1, 62, 63, 64,
3923 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3924 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3925 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3926 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
3927 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
3928 -1, 3, 4, 5, 6, 7, -1, -1, -1, 11,
3929 12, 126, 127, 128, 16, -1, 18, 19, 20, 21,
3930 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3931 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3932 -1, -1, -1, 45, 46, -1, 48, 49, 50, 51,
3933 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3934 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3935 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3936 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3937 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
3938 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
3939 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3940 -1, -1, 11, 12, 126, 127, 128, 16, -1, 18,
3941 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3942 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3943 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3944 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
3945 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3946 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3947 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3948 89, 90, -1, 92, 93, -1, 95, 96, 97, 98,
3949 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
3950 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3951 -1, 7, -1, -1, -1, 11, 12, 126, 127, 128,
3952 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3953 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3954 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
3955 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
3956 56, 57, 58, 59, 60, -1, 62, 63, 64, -1,
3957 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3958 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3959 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3960 96, -1, 98, 99, 100, 101, 102, 103, 104, 105,
3961 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3962 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
3963 126, 127, 128, 16, -1, 18, 19, 20, 21, 22,
3964 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3965 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3966 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3967 53, 54, 55, 56, 57, 58, 59, 60, -1, 62,
3968 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3969 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3970 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3971 93, -1, -1, 96, 97, 98, 99, 100, 101, 102,
3972 103, 104, 105, 106, -1, -1, -1, -1, -1, -1,
3973 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3974 -1, 11, 12, 126, 127, 128, 16, -1, 18, 19,
3975 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3976 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3977 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
3978 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
3979 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3980 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3981 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3982 90, -1, 92, 93, -1, 95, 96, -1, 98, 99,
3983 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
3984 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
3985 7, -1, -1, -1, 11, 12, 126, 127, 128, 16,
3986 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3987 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3988 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
3989 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
3990 57, 58, 59, 60, -1, 62, 63, 64, -1, 66,
3991 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3992 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3993 -1, -1, 89, 90, -1, 92, 93, -1, -1, 96,
3994 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3995 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
3996 4, 5, -1, 7, -1, -1, -1, 11, 12, 126,
3997 127, 128, 16, -1, 18, 19, 20, 21, 22, 23,
3998 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3999 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4000 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4001 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
4002 64, -1, 66, 67, -1, -1, -1, -1, -1, -1,
4003 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4004 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
4005 -1, 95, -1, -1, 98, 99, 100, 101, 102, 103,
4006 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
4007 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4008 11, 12, 126, 127, 128, 16, -1, 18, 19, 20,
4009 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4010 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4011 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4012 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4013 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
4014 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4015 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
4016 -1, 92, 93, -1, 95, -1, -1, 98, 99, 100,
4017 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
4018 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4019 -1, -1, -1, 11, 12, 126, 127, 128, 16, -1,
4020 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4021 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4022 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4023 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4024 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
4025 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4026 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
4027 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
4028 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
4029 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
4030 5, -1, 7, -1, -1, -1, 11, 12, 126, 127,
4031 128, 16, -1, 18, 19, 20, 21, 22, 23, 24,
4032 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4033 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4034 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
4035 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
4036 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
4037 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4038 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
4039 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
4040 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
4041 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
4042 12, 126, 127, 128, 16, -1, 18, 19, 20, 21,
4043 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4044 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4045 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4046 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
4047 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
4048 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4049 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
4050 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
4051 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
4052 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4053 -1, -1, 11, 12, 126, 127, 128, 16, -1, 18,
4054 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4055 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4056 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4057 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4058 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
4059 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4060 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
4061 89, 90, -1, 92, 93, -1, -1, -1, -1, 98,
4062 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
4063 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
4064 -1, 7, -1, -1, -1, 11, 12, 126, 127, 128,
4065 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
4066 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4067 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
4068 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
4069 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
4070 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
4071 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4072 86, -1, -1, 89, 90, -1, 92, 93, -1, -1,
4073 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
4074 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4075 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4076 126, 127, 128, 16, -1, 18, 19, 20, 21, 22,
4077 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4078 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4079 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4080 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
4081 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
4082 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4083 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
4084 93, -1, -1, -1, -1, 98, 99, 100, 101, 102,
4085 103, 104, 105, 106, -1, -1, -1, -1, -1, -1,
4086 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4087 -1, 11, 12, 126, 127, 128, 16, -1, 18, 19,
4088 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4089 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4090 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4091 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4092 60, -1, 62, 63, 64, -1, -1, -1, -1, -1,
4093 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4094 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
4095 90, -1, 92, 93, -1, 95, -1, -1, 98, 99,
4096 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
4097 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4098 11, 12, -1, -1, -1, 16, 126, 18, 19, 20,
4099 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4100 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4101 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4102 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4103 -1, 62, 63, 64, -1, -1, -1, -1, -1, -1,
4104 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4105 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
4106 -1, 92, 93, -1, 95, -1, -1, 98, 99, 100,
4107 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
4108 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
4109 12, -1, -1, -1, 16, 126, 18, 19, 20, 21,
4110 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4111 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4112 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4113 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
4114 62, 63, 64, -1, -1, -1, -1, -1, -1, -1,
4115 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4116 -1, 83, -1, -1, 86, -1, -1, 89, 90, -1,
4117 92, 93, -1, -1, -1, -1, 98, 99, 100, 101,
4118 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
4119 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4120 -1, -1, -1, 16, 126, 18, 19, 20, 21, 22,
4121 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4122 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4123 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4124 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
4125 63, 64, -1, -1, -1, -1, -1, -1, -1, -1,
4126 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4127 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
4128 93, -1, -1, -1, -1, 98, 99, 100, 101, 102,
4129 103, 104, 105, 106, -1, -1, -1, -1, -1, 3,
4130 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
4131 -1, -1, 16, 126, 18, 19, 20, 21, 22, 23,
4132 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4133 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4134 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4135 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
4136 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4137 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4138 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
4139 -1, -1, -1, -1, 98, 99, 100, 101, 102, 103,
4140 104, 105, 106, -1, -1, -1, -1, -1, 3, 4,
4141 5, -1, 7, -1, -1, -1, 11, 12, -1, -1,
4142 -1, 16, 126, 18, 19, 20, 21, 22, 23, 24,
4143 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4144 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4145 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
4146 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
4147 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4148 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4149 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
4150 -1, -1, -1, 98, 99, 100, 101, 102, 103, 104,
4151 105, 106, -1, -1, -1, -1, -1, 3, 4, 5,
4152 -1, 7, -1, -1, -1, 11, 12, -1, -1, -1,
4153 16, 126, 18, 19, 20, 21, 22, 23, 24, -1,
4154 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4155 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
4156 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
4157 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
4158 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4159 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4160 86, -1, -1, 89, 90, -1, 92, 93, -1, -1,
4161 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
4162 106, -1, -1, -1, -1, -1, -1, 52, 53, -1,
4163 -1, 56, -1, -1, -1, -1, -1, -1, -1, -1,
4164 126, 66, 67, 68, 69, 70, 71, 72, 73, 74,
4165 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
4166 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4167 95, 96, -1, -1, -1, -1, -1, -1, -1, -1,
4168 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4169 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
4170 125, -1, 127, 128, 52, 53, -1, -1, 56, -1,
4171 135, -1, -1, -1, -1, -1, -1, -1, 66, 67,
4172 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
4173 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
4174 -1, -1, -1, -1, -1, -1, -1, 95, 96, -1,
4175 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4176 -1, -1, -1, -1, -1, -1, -1, -1, 116, 117,
4177 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
4178 128, 52, 53, -1, -1, 56, -1, 135, -1, -1,
4179 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
4180 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
4181 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
4182 -1, -1, -1, -1, 95, 96, -1, -1, -1, -1,
4183 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4184 -1, -1, -1, -1, -1, 116, 117, 118, 119, 120,
4185 121, 122, 123, 124, 125, -1, 127, 128, 52, 53,
4186 -1, -1, 56, -1, 135, -1, -1, -1, -1, -1,
4187 -1, -1, 66, 67, 68, 69, 70, 71, 72, 73,
4188 74, -1, -1, 77, 78, -1, -1, 81, 82, 83,
4189 84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4190 -1, 95, 96, -1, -1, -1, -1, -1, -1, -1,
4191 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4192 -1, -1, 116, 117, 118, 119, 120, 121, 122, 123,
4193 124, 125, -1, 127, 128, 52, 53, -1, -1, 56,
4194 -1, 135, -1, -1, -1, -1, -1, -1, -1, 66,
4195 67, 68, 69, 70, 71, 72, 73, 74, -1, -1,
4196 77, 78, -1, -1, 81, 82, 83, 84, -1, -1,
4197 -1, -1, -1, -1, -1, -1, -1, -1, 95, 96,
4198 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4199 -1, -1, -1, -1, -1, -1, -1, -1, -1, 116,
4200 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
4201 127, 128, 52, 53, -1, -1, 56, -1, 135, -1,
4202 -1, -1, -1, -1, -1, -1, 66, 67, 68, 69,
4203 70, 71, 72, 73, 74, -1, -1, 77, 78, -1,
4204 -1, 81, 82, 83, 84, -1, -1, -1, -1, -1,
4205 -1, -1, -1, -1, -1, 95, 96, -1, -1, -1,
4206 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4207 -1, -1, -1, -1, -1, -1, 116, 117, 118, 119,
4208 120, 121, 122, 123, 124, 125, -1, 127, 128, 52,
4209 53, -1, -1, 56, -1, 135, -1, -1, -1, -1,
4210 -1, -1, -1, 66, 67, 68, 69, 70, 71, 72,
4211 73, 74, -1, -1, 77, 78, -1, -1, 81, 82,
4212 83, 84, -1, -1, -1, -1, -1, -1, -1, -1,
4213 -1, -1, 95, 96, -1, -1, -1, -1, -1, -1,
4214 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4215 -1, -1, -1, 116, 117, 118, 119, 120, 121, 122,
4216 123, 124, 125, -1, 127, 128, 52, 53, -1, -1,
4217 56, -1, 135, -1, -1, -1, -1, -1, -1, -1,
4218 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
4219 -1, 77, 78, -1, -1, 81, 82, 83, 84, -1,
4220 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
4221 96, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4222 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4223 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
4224 -1, 127, 128, 52, 53, -1, -1, 56, -1, 135,
4225 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
4226 69, 70, 71, 72, 73, 74, -1, -1, 77, 78,
4227 -1, -1, 81, 82, 83, 84, -1, -1, -1, -1,
4228 -1, -1, -1, -1, -1, -1, 95, 96, -1, -1,
4229 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4230 -1, -1, -1, -1, -1, -1, -1, 116, 117, 118,
4231 119, 120, 121, 122, 123, 124, 125, -1, 127, 128,
4232 52, 53, -1, -1, 56, -1, 135, -1, -1, -1,
4233 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
4234 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
4235 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
4236 -1, -1, -1, 95, 96, -1, -1, -1, -1, -1,
4237 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4238 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121,
4239 122, 123, 124, 125, -1, 127, 128, 52, 53, -1,
4240 -1, 56, -1, 135, -1, -1, -1, -1, -1, -1,
4241 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
4242 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
4243 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4244 95, 96, -1, -1, -1, -1, -1, -1, -1, -1,
4245 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4246 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
4247 125, -1, 127, 128, 52, 53, -1, -1, 56, -1,
4248 135, -1, -1, -1, -1, -1, -1, -1, 66, 67,
4249 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
4250 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
4251 -1, -1, -1, -1, -1, -1, -1, 95, 96, -1,
4252 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4253 -1, -1, -1, -1, -1, -1, -1, -1, 116, 117,
4254 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
4255 128, 52, 53, -1, -1, 56, -1, 135, -1, -1,
4256 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
4257 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
4258 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
4259 -1, -1, -1, -1, 95, 96, -1, -1, -1, -1,
4260 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4261 -1, -1, -1, -1, -1, 116, 117, 118, 119, 120,
4262 121, 122, 123, 124, 125, -1, 127, 128, -1, -1,
4270 0, 143, 144, 0, 1, 3, 4, 5, 6, 7,
4271 11, 12, 16, 18, 19, 20, 21, 22, 23, 24,
4272 30, 31, 32, 33, 34, 35, 36, 39, 45, 46,
4273 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4274 57, 59, 60, 62, 63, 64, 66, 67, 86, 89,
4275 90, 92, 93, 95, 98, 99, 100, 101, 102, 103,
4276 104, 105, 106, 126, 127, 128, 145, 146, 147, 154,
4277 156, 157, 159, 160, 163, 164, 165, 167, 168, 169,
4278 171, 172, 182, 196, 214, 215, 216, 217, 218, 219,
4279 220, 221, 222, 223, 224, 250, 251, 265, 266, 267,
4280 268, 269, 270, 271, 274, 276, 277, 289, 291, 292,
4281 293, 294, 295, 296, 297, 328, 339, 147, 3, 4,
4282 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
4283 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
4284 25, 26, 30, 31, 32, 33, 34, 35, 36, 37,
4285 38, 39, 45, 46, 47, 48, 49, 50, 51, 52,
4286 53, 56, 66, 67, 68, 69, 70, 71, 72, 73,
4287 74, 77, 78, 81, 82, 83, 84, 95, 96, 116,
4288 117, 118, 119, 120, 121, 122, 123, 124, 125, 127,
4289 128, 135, 175, 176, 177, 178, 180, 181, 289, 291,
4290 39, 58, 86, 89, 95, 96, 97, 127, 164, 172,
4291 182, 184, 189, 192, 194, 214, 293, 294, 296, 297,
4292 326, 327, 189, 189, 136, 190, 191, 136, 186, 190,
4293 136, 141, 333, 54, 177, 333, 148, 130, 21, 22,
4294 30, 31, 32, 163, 182, 214, 182, 56, 1, 47,
4295 89, 150, 151, 152, 154, 166, 167, 339, 157, 198,
4296 185, 194, 326, 339, 184, 325, 326, 339, 46, 86,
4297 126, 134, 171, 196, 214, 293, 294, 297, 242, 243,
4298 54, 55, 57, 175, 281, 290, 280, 281, 282, 140,
4299 272, 140, 278, 140, 275, 140, 279, 59, 60, 159,
4300 182, 182, 139, 141, 332, 337, 338, 40, 41, 42,
4301 43, 44, 37, 38, 26, 130, 186, 190, 256, 28,
4302 248, 113, 134, 89, 95, 168, 113, 68, 69, 70,
4303 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
4304 83, 84, 114, 116, 117, 118, 119, 120, 121, 122,
4305 123, 124, 125, 85, 132, 133, 197, 157, 158, 158,
4306 201, 203, 158, 332, 338, 86, 165, 172, 214, 230,
4307 293, 294, 297, 52, 56, 83, 86, 173, 174, 214,
4308 293, 294, 297, 174, 33, 34, 35, 36, 49, 50,
4309 51, 52, 56, 136, 175, 295, 323, 85, 133, 331,
4310 256, 268, 87, 87, 134, 184, 56, 184, 184, 184,
4311 113, 88, 134, 193, 339, 85, 132, 133, 87, 87,
4312 134, 193, 189, 333, 334, 189, 188, 189, 194, 326,
4313 339, 157, 334, 157, 54, 63, 64, 155, 136, 183,
4314 130, 150, 85, 133, 87, 154, 153, 166, 137, 332,
4315 338, 334, 199, 334, 138, 134, 141, 336, 134, 336,
4316 131, 336, 333, 56, 59, 60, 168, 170, 134, 85,
4317 132, 133, 244, 61, 107, 109, 110, 283, 110, 283,
4318 110, 65, 283, 110, 110, 273, 283, 110, 61, 110,
4319 110, 110, 273, 110, 61, 110, 68, 68, 139, 147,
4320 158, 158, 158, 158, 154, 157, 157, 258, 257, 94,
4321 161, 249, 95, 159, 184, 194, 195, 166, 134, 171,
4322 134, 156, 159, 172, 182, 184, 195, 182, 182, 182,
4323 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
4324 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
4325 182, 182, 182, 52, 53, 56, 180, 255, 329, 330,
4326 188, 52, 53, 56, 180, 254, 329, 149, 150, 13,
4327 226, 337, 226, 158, 158, 332, 17, 259, 56, 85,
4328 132, 133, 25, 157, 52, 56, 173, 1, 117, 298,
4329 337, 85, 132, 133, 210, 324, 211, 331, 52, 56,
4330 329, 159, 182, 159, 182, 179, 182, 184, 95, 184,
4331 192, 326, 52, 56, 188, 52, 56, 327, 334, 137,
4332 334, 134, 134, 334, 177, 200, 182, 145, 131, 329,
4333 329, 182, 130, 334, 152, 334, 326, 134, 170, 52,
4334 56, 188, 52, 56, 52, 54, 55, 56, 57, 58,
4335 68, 89, 95, 96, 97, 120, 123, 136, 246, 301,
4336 303, 304, 305, 306, 307, 308, 311, 312, 313, 314,
4337 317, 318, 319, 320, 321, 285, 284, 140, 283, 140,
4338 140, 140, 182, 182, 76, 118, 237, 238, 339, 237,
4339 162, 237, 184, 134, 334, 170, 134, 113, 44, 333,
4340 87, 87, 186, 190, 253, 333, 335, 87, 87, 186,
4341 190, 252, 10, 225, 8, 261, 339, 150, 13, 150,
4342 27, 227, 337, 227, 259, 194, 225, 52, 56, 188,
4343 52, 56, 205, 208, 337, 299, 207, 52, 56, 173,
4344 188, 149, 157, 136, 300, 303, 212, 186, 187, 190,
4345 339, 44, 177, 184, 193, 87, 87, 335, 87, 87,
4346 326, 157, 131, 145, 336, 168, 335, 113, 184, 52,
4347 89, 95, 231, 232, 233, 305, 303, 245, 134, 302,
4348 134, 322, 339, 52, 134, 322, 134, 302, 52, 134,
4349 302, 52, 286, 54, 55, 57, 288, 297, 52, 58,
4350 234, 236, 239, 307, 309, 310, 313, 315, 316, 319,
4351 321, 333, 150, 150, 237, 150, 95, 184, 170, 182,
4352 115, 159, 182, 159, 182, 161, 186, 138, 87, 159,
4353 182, 159, 182, 161, 187, 184, 195, 262, 339, 15,
4354 229, 339, 14, 228, 229, 229, 202, 204, 225, 134,
4355 226, 335, 158, 337, 158, 149, 335, 225, 334, 303,
4356 149, 337, 175, 256, 248, 182, 87, 134, 334, 131,
4357 184, 233, 134, 305, 134, 334, 239, 29, 111, 247,
4358 301, 306, 317, 319, 308, 313, 321, 307, 314, 319,
4359 307, 287, 113, 86, 214, 239, 118, 134, 235, 134,
4360 322, 322, 134, 235, 134, 235, 139, 10, 131, 150,
4361 10, 184, 182, 159, 182, 88, 263, 339, 150, 9,
4362 264, 339, 158, 225, 225, 150, 150, 184, 150, 227,
4363 209, 337, 225, 334, 225, 213, 334, 232, 134, 95,
4364 231, 137, 150, 150, 134, 302, 134, 302, 322, 134,
4365 302, 134, 302, 302, 150, 214, 56, 85, 118, 234,
4366 316, 319, 309, 313, 307, 315, 319, 307, 52, 240,
4367 241, 304, 131, 86, 172, 214, 293, 294, 297, 226,
4368 150, 226, 225, 225, 229, 259, 260, 206, 149, 300,
4369 134, 232, 134, 305, 10, 131, 307, 319, 307, 307,
4370 108, 52, 56, 134, 235, 134, 235, 322, 134, 235,
4371 134, 235, 235, 134, 333, 56, 85, 132, 133, 150,
4372 150, 150, 225, 149, 232, 134, 302, 134, 302, 302,
4373 302, 307, 319, 307, 307, 241, 52, 56, 188, 52,
4374 56, 261, 228, 225, 225, 232, 307, 235, 134, 235,
4375 235, 235, 335, 302, 307, 235
4378 #define yyerrok (yyerrstatus = 0)
4379 #define yyclearin (yychar = YYEMPTY)
4380 #define YYEMPTY (-2)
4383 #define YYACCEPT goto yyacceptlab
4384 #define YYABORT goto yyabortlab
4385 #define YYERROR goto yyerrorlab
4395 #define YYFAIL goto yyerrlab
4403 #define YYRECOVERING() (!!yyerrstatus)
4405 #define YYBACKUP(Token, Value) \
4407 if (yychar == YYEMPTY && yylen == 1) \
4416 parser_yyerror (parser, YY_("syntax error: cannot back up")); \
4423 #define YYERRCODE 256
4430 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
4431 #ifndef YYLLOC_DEFAULT
4432 # define YYLLOC_DEFAULT(Current, Rhs, N) \
4436 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
4437 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
4438 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
4439 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
4443 (Current).first_line = (Current).last_line = \
4444 YYRHSLOC (Rhs, 0).last_line; \
4445 (Current).first_column = (Current).last_column = \
4446 YYRHSLOC (Rhs, 0).last_column; \
4454 #ifndef YY_LOCATION_PRINT
4455 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
4462 # define YYLEX yylex (&yylval, YYLEX_PARAM)
4464 # define YYLEX yylex (&yylval, parser)
4472 # define YYFPRINTF fprintf
4475 # define YYDPRINTF(Args) \
4481 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
4485 YYFPRINTF (stderr, "%s ", Title); \
4486 yy_symbol_print (stderr, \
4487 Type, Value, parser); \
4488 YYFPRINTF (stderr, "\n"); \
4498 #if (defined __STDC__ || defined __C99__FUNC__ \
4499 || defined __cplusplus || defined _MSC_VER)
4516 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
4532 #if (defined __STDC__ || defined __C99__FUNC__ \
4533 || defined __cplusplus || defined _MSC_VER)
4546 YYFPRINTF (yyoutput,
"token %s (", yytname[yytype]);
4548 YYFPRINTF (yyoutput,
"nterm %s (", yytname[yytype]);
4559 #if (defined __STDC__ || defined __C99__FUNC__ \
4560 || defined __cplusplus || defined _MSC_VER)
4566 yytype_int16 *yybottom;
4567 yytype_int16 *yytop;
4571 for (; yybottom <= yytop; yybottom++)
4573 int yybot = *yybottom;
4579 # define YY_STACK_PRINT(Bottom, Top) \
4582 yy_stack_print ((Bottom), (Top)); \
4590 #if (defined __STDC__ || defined __C99__FUNC__ \
4591 || defined __cplusplus || defined _MSC_VER)
4602 int yynrhs = yyr2[yyrule];
4604 unsigned long int yylno = yyrline[yyrule];
4605 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu):\n",
4608 for (yyi = 0; yyi < yynrhs; yyi++)
4612 &(yyvsp[(yyi + 1) - (yynrhs)])
4618 # define YY_REDUCE_PRINT(Rule) \
4621 yy_reduce_print (yyvsp, Rule, parser); \
4630 # define YYDPRINTF(Args)
4631 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
4632 # define YY_STACK_PRINT(Bottom, Top)
4633 # define YY_REDUCE_PRINT(Rule)
4639 # define YYINITDEPTH 200
4650 # define YYMAXDEPTH 10000
4657 # if defined __GLIBC__ && defined _STRING_H
4658 # define yystrlen strlen
4661 #if (defined __STDC__ || defined __C99__FUNC__ \
4662 || defined __cplusplus || defined _MSC_VER)
4672 for (yylen = 0; yystr[yylen]; yylen++)
4680 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4681 # define yystpcpy stpcpy
4685 #if (defined __STDC__ || defined __C99__FUNC__ \
4686 || defined __cplusplus || defined _MSC_VER)
4688 yystpcpy (
char *yydest,
const char *yysrc)
4697 const char *yys = yysrc;
4699 while ((*yyd++ = *yys++) !=
'\0')
4721 char const *yyp = yystr;
4728 goto do_not_strip_quotes;
4732 goto do_not_strip_quotes;
4745 do_not_strip_quotes: ;
4751 return yystpcpy (yyres, yystr) - yyres;
4765 yytype_int16 *yyssp,
int yytoken)
4770 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
4772 const char *yyformat = 0;
4774 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
4808 int yyn = yypact[*yyssp];
4809 yyarg[yycount++] = yytname[yytoken];
4815 int yyxbegin = yyn < 0 ? -yyn : 0;
4817 int yychecklim =
YYLAST - yyn + 1;
4821 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
4822 if (yycheck[yyx + yyn] == yyx && yyx !=
YYTERROR
4825 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
4831 yyarg[yycount++] = yytname[yyx];
4832 yysize1 = yysize +
yytnamerr (0, yytname[yyx]);
4833 if (! (yysize <= yysize1
4843 # define YYCASE_(N, S) \
4848 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
4849 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
4850 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
4851 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
4852 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
4856 yysize1 = yysize +
yystrlen (yyformat);
4861 if (*yymsg_alloc < yysize)
4863 *yymsg_alloc = 2 * yysize;
4864 if (! (yysize <= *yymsg_alloc
4876 while ((*yyp = *yyformat) !=
'\0')
4877 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
4897 #if (defined __STDC__ || defined __C99__FUNC__ \
4898 || defined __cplusplus || defined _MSC_VER)
4927 #ifdef YYPARSE_PARAM
4928 #if defined __STDC__ || defined __cplusplus
4929 int yyparse (
void *YYPARSE_PARAM);
4934 #if defined __STDC__ || defined __cplusplus
4946 #ifdef YYPARSE_PARAM
4947 #if (defined __STDC__ || defined __C99__FUNC__ \
4948 || defined __cplusplus || defined _MSC_VER)
4954 void *YYPARSE_PARAM;
4957 #if (defined __STDC__ || defined __C99__FUNC__ \
4958 || defined __cplusplus || defined _MSC_VER)
4991 yytype_int16 *yyssp;
5011 char *yymsg = yymsgbuf;
5012 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
5015 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
5026 YYDPRINTF ((stderr,
"Starting parse\n"));
5053 if (yyss + yystacksize - 1 <= yyssp)
5056 YYSIZE_T yysize = yyssp - yyss + 1;
5064 yytype_int16 *yyss1 = yyss;
5070 yyoverflow (
YY_(
"memory exhausted"),
5071 &yyss1, yysize *
sizeof (*yyssp),
5072 &yyvs1, yysize *
sizeof (*yyvsp),
5079 # ifndef YYSTACK_RELOCATE
5080 goto yyexhaustedlab;
5084 goto yyexhaustedlab;
5090 yytype_int16 *yyss1 = yyss;
5094 goto yyexhaustedlab;
5097 # undef YYSTACK_RELOCATE
5104 yyssp = yyss + yysize - 1;
5105 yyvsp = yyvs + yysize - 1;
5107 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
5108 (
unsigned long int) yystacksize));
5110 if (yyss + yystacksize - 1 <= yyssp)
5114 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
5130 yyn = yypact[yystate];
5139 YYDPRINTF ((stderr,
"Reading a token: "));
5143 if (yychar <=
YYEOF)
5145 yychar = yytoken =
YYEOF;
5146 YYDPRINTF ((stderr,
"Now at end of input.\n"));
5157 if (yyn < 0 ||
YYLAST < yyn || yycheck[yyn] != yytoken)
5189 yyn = yydefact[yystate];
5210 yyval = yyvsp[1-yylen];
5219 #line 854 "ripper.y"
5233 #line 863 "ripper.y"
5240 NODE *node = (yyvsp[(2) - (2)].
val);
5241 while (node->nd_next) {
5242 node = node->nd_next;
5249 (yyval.
val) = (yyvsp[(2) - (2)].
val);
5250 parser->result = dispatch1(program, (yyval.
val));
5259 #line 886 "ripper.y"
5266 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5273 #line 897 "ripper.y"
5278 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new),
5287 #line 906 "ripper.y"
5292 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5300 #line 914 "ripper.y"
5305 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5313 #line 922 "ripper.y"
5322 #line 929 "ripper.y"
5334 #line 936 "ripper.y"
5338 (yyvsp[(4) - (5)].
val));
5343 (yyval.
val) = dispatch1(BEGIN, (yyvsp[(4) - (5)].
val));
5351 #line 953 "ripper.y"
5354 (yyval.
val) = (yyvsp[(1) - (4)].
val);
5355 if ((yyvsp[(2) - (4)].
val)) {
5358 else if ((yyvsp[(3) - (4)].
val)) {
5359 rb_warn0(
"else without rescue is useless");
5362 if ((yyvsp[(4) - (4)].
val)) {
5384 #line 983 "ripper.y"
5391 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5398 #line 994 "ripper.y"
5403 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new),
5412 #line 1003 "ripper.y"
5417 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5425 #line 1011 "ripper.y"
5430 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5438 #line 1019 "ripper.y"
5447 #line 1025 "ripper.y"
5449 (yyval.
val) = (yyvsp[(1) - (1)].
val);
5456 #line 1029 "ripper.y"
5458 yyerror(
"BEGIN is permitted only at toplevel");
5469 #line 1037 "ripper.y"
5473 (yyvsp[(4) - (5)].
val));
5478 (yyval.
val) = dispatch1(BEGIN, (yyvsp[(4) - (5)].
val));
5486 #line 1049 "ripper.y"
5493 #line 1050 "ripper.y"
5498 (yyval.
val) = dispatch2(
alias, (yyvsp[(2) - (4)].
val), (yyvsp[(4) - (4)].
val));
5506 #line 1058 "ripper.y"
5511 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5519 #line 1066 "ripper.y"
5524 buf[1] = (char)(yyvsp[(3) - (3)].
val)->nd_nth;
5527 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5535 #line 1077 "ripper.y"
5538 yyerror(
"can't make alias for the number variables");
5541 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5542 (yyval.
val) = dispatch1(alias_error, (yyval.
val));
5550 #line 1087 "ripper.y"
5553 (yyval.
val) = (yyvsp[(2) - (2)].
val);
5555 (yyval.
val) = dispatch1(undef, (yyvsp[(2) - (2)].
val));
5563 #line 1095 "ripper.y"
5569 (yyval.
val) = dispatch2(if_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5577 #line 1104 "ripper.y"
5583 (yyval.
val) = dispatch2(unless_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5591 #line 1113 "ripper.y"
5601 (yyval.
val) = dispatch2(while_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5609 #line 1126 "ripper.y"
5619 (yyval.
val) = dispatch2(until_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5627 #line 1139 "ripper.y"
5633 (yyval.
val) = dispatch2(rescue_mod, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5641 #line 1148 "ripper.y"
5644 rb_warn0(
"END in method; use at_exit");
5650 (yyval.
val) = dispatch1(
END, (yyvsp[(3) - (4)].
val));
5658 #line 1161 "ripper.y"
5663 (yyval.
val) = (yyvsp[(1) - (3)].
val);
5665 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5673 #line 1171 "ripper.y"
5683 #line 1176 "ripper.y"
5691 if ((yyvsp[(5) - (6)].
val) ==
tOROP) {
5692 (yyvsp[(5) - (6)].
val) = 0;
5694 else if ((yyvsp[(5) - (6)].
val) ==
tANDOP) {
5695 (yyvsp[(5) - (6)].
val) = 1;
5701 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].
val));
5709 #line 1197 "ripper.y"
5719 #line 1202 "ripper.y"
5729 #line 1207 "ripper.y"
5735 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
5736 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
5744 #line 1217 "ripper.y"
5754 #line 1222 "ripper.y"
5760 (yyval.
val) = dispatch2(assign, dispatch1(var_field, (yyvsp[(1) - (3)].
val)), (yyvsp[(3) - (3)].
val));
5761 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
5769 #line 1232 "ripper.y"
5775 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5783 #line 1241 "ripper.y"
5787 (yyval.
val) = (yyvsp[(1) - (3)].
val);
5789 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5797 #line 1250 "ripper.y"
5801 (yyval.
val) = (yyvsp[(1) - (3)].
val);
5803 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5811 #line 1262 "ripper.y"
5817 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5825 #line 1271 "ripper.y"
5831 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5839 #line 1284 "ripper.y"
5852 #line 1292 "ripper.y"
5865 #line 1300 "ripper.y"
5878 #line 1308 "ripper.y"
5883 (yyval.
val) = dispatch2(unary, ripper_id2sym(
'!'), (yyvsp[(2) - (2)].
val));
5891 #line 1319 "ripper.y"
5895 (yyval.
val) = (yyvsp[(1) - (1)].
val);
5898 (yyval.
val) = (yyvsp[(1) - (1)].
val);
5906 #line 1336 "ripper.y"
5909 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
5911 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), (yyvsp[(2) - (4)].
val), (yyvsp[(3) - (4)].
val));
5912 (yyval.
val) = method_arg((yyval.
val), (yyvsp[(4) - (4)].
val));
5920 #line 1347 "ripper.y"
5933 #line 1357 "ripper.y"
5948 #line 1369 "ripper.y"
5961 #line 1379 "ripper.y"
5964 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5967 (yyval.
val) = dispatch2(command, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
5975 #line 1388 "ripper.y"
5981 (yyval.
val) = (yyvsp[(3) - (3)].
val);
5984 (yyval.
val) = dispatch2(command, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
5985 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(3) - (3)].
val));
5993 #line 1401 "ripper.y"
5996 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
5999 (yyval.
val) = dispatch4(
command_call, (yyvsp[(1) - (4)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
6007 #line 1410 "ripper.y"
6012 (yyval.
val) = (yyvsp[(5) - (5)].
val);
6015 (yyval.
val) = dispatch4(
command_call, (yyvsp[(1) - (5)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
6016 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
6024 #line 1422 "ripper.y"
6027 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
6038 #line 1431 "ripper.y"
6043 (yyval.
val) = (yyvsp[(5) - (5)].
val);
6047 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
6055 #line 1443 "ripper.y"
6061 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].
val));
6069 #line 1452 "ripper.y"
6075 (yyval.
val) = dispatch1(yield, (yyvsp[(2) - (2)].
val));
6083 #line 1461 "ripper.y"
6088 (yyval.
val) = dispatch1(
return, (yyvsp[(2) - (2)].
val));
6096 #line 1469 "ripper.y"
6101 (yyval.
val) = dispatch1(
break, (yyvsp[(2) - (2)].
val));
6109 #line 1477 "ripper.y"
6114 (yyval.
val) = dispatch1(next, (yyvsp[(2) - (2)].
val));
6122 #line 1488 "ripper.y"
6125 (yyval.
val) = (yyvsp[(2) - (3)].
val);
6127 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6135 #line 1499 "ripper.y"
6140 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6148 #line 1509 "ripper.y"
6153 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6161 #line 1517 "ripper.y"
6166 (yyval.
val) = mlhs_add((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
6174 #line 1525 "ripper.y"
6179 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6187 #line 1533 "ripper.y"
6192 (yyvsp[(1) - (5)].
val) = mlhs_add_star((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
6193 (yyval.
val) = mlhs_add((yyvsp[(1) - (5)].
val), (yyvsp[(5) - (5)].
val));
6201 #line 1542 "ripper.y"
6206 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (2)].
val),
Qnil);
6214 #line 1550 "ripper.y"
6219 (yyvsp[(1) - (4)].
val) = mlhs_add_star((yyvsp[(1) - (4)].
val),
Qnil);
6220 (yyval.
val) = mlhs_add((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val));
6228 #line 1559 "ripper.y"
6233 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (2)].
val));
6241 #line 1567 "ripper.y"
6246 (yyvsp[(2) - (4)].
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (4)].
val));
6247 (yyval.
val) = mlhs_add((yyvsp[(2) - (4)].
val), (yyvsp[(4) - (4)].
val));
6255 #line 1576 "ripper.y"
6260 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6268 #line 1584 "ripper.y"
6273 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6274 (yyval.
val) = mlhs_add((yyval.
val), (yyvsp[(3) - (3)].
val));
6282 #line 1596 "ripper.y"
6285 (yyval.
val) = (yyvsp[(2) - (3)].
val);
6287 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6295 #line 1606 "ripper.y"
6300 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (2)].
val));
6308 #line 1614 "ripper.y"
6313 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
6321 #line 1624 "ripper.y"
6326 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
6334 #line 1632 "ripper.y"
6339 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6347 #line 1642 "ripper.y"
6356 #line 1646 "ripper.y"
6365 #line 1650 "ripper.y"
6378 #line 1658 "ripper.y"
6383 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6391 #line 1666 "ripper.y"
6396 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6404 #line 1674 "ripper.y"
6409 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6417 #line 1682 "ripper.y"
6421 yyerror(
"dynamic constant assignment");
6425 yyerror(
"dynamic constant assignment");
6426 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6434 #line 1694 "ripper.y"
6438 yyerror(
"dynamic constant assignment");
6441 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (2)].
val));
6449 #line 1704 "ripper.y"
6455 (yyval.
val) = dispatch1(var_field, (yyvsp[(1) - (1)].
val));
6456 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6464 #line 1716 "ripper.y"
6470 (yyval.
val) = dispatch1(var_field, (yyval.
val));
6478 #line 1725 "ripper.y"
6484 (yyval.
val) = dispatch1(var_field, (yyval.
val));
6492 #line 1734 "ripper.y"
6505 #line 1742 "ripper.y"
6510 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6518 #line 1750 "ripper.y"
6531 #line 1758 "ripper.y"
6536 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6544 #line 1766 "ripper.y"
6548 yyerror(
"dynamic constant assignment");
6551 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6553 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6562 #line 1779 "ripper.y"
6566 yyerror(
"dynamic constant assignment");
6569 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (2)].
val));
6571 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6580 #line 1792 "ripper.y"
6586 (yyval.
val) = dispatch1(assign_error, (yyvsp[(1) - (1)].
val));
6594 #line 1803 "ripper.y"
6597 yyerror(
"class/module name must be CONSTANT");
6599 (yyval.
val) = dispatch1(class_name_error, (yyvsp[(1) - (1)].
val));
6607 #line 1814 "ripper.y"
6612 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].
val));
6620 #line 1822 "ripper.y"
6625 (yyval.
val) = dispatch1(const_ref, (yyvsp[(1) - (1)].
val));
6633 #line 1830 "ripper.y"
6638 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6646 #line 1843 "ripper.y"
6649 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6656 #line 1848 "ripper.y"
6660 (yyval.
val) = (yyvsp[(1) - (1)].
id);
6662 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6670 #line 1863 "ripper.y"
6675 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].
val));
6683 #line 1874 "ripper.y"
6696 #line 1881 "ripper.y"
6703 #line 1882 "ripper.y"
6716 #line 1891 "ripper.y"
6723 #line 1892 "ripper.y"
6730 #line 1893 "ripper.y"
6737 #line 1894 "ripper.y"
6744 #line 1895 "ripper.y"
6751 #line 1896 "ripper.y"
6758 #line 1897 "ripper.y"
6765 #line 1898 "ripper.y"
6772 #line 1899 "ripper.y"
6779 #line 1900 "ripper.y"
6786 #line 1901 "ripper.y"
6793 #line 1902 "ripper.y"
6800 #line 1903 "ripper.y"
6807 #line 1904 "ripper.y"
6814 #line 1905 "ripper.y"
6821 #line 1906 "ripper.y"
6828 #line 1907 "ripper.y"
6835 #line 1908 "ripper.y"
6842 #line 1909 "ripper.y"
6849 #line 1910 "ripper.y"
6856 #line 1911 "ripper.y"
6863 #line 1912 "ripper.y"
6870 #line 1913 "ripper.y"
6877 #line 1914 "ripper.y"
6884 #line 1915 "ripper.y"
6891 #line 1916 "ripper.y"
6898 #line 1917 "ripper.y"
6905 #line 1918 "ripper.y"
6912 #line 1919 "ripper.y"
6919 #line 1920 "ripper.y"
6926 #line 1938 "ripper.y"
6932 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6940 #line 1947 "ripper.y"
6947 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (5)].
val), dispatch2(rescue_mod, (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val)));
6955 #line 1957 "ripper.y"
6965 #line 1962 "ripper.y"
6971 (yyvsp[(3) - (5)].
val) = dispatch2(rescue_mod, (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
6980 #line 1972 "ripper.y"
6993 if ((yyvsp[(5) - (6)].
val) ==
tOROP) {
6994 (yyvsp[(5) - (6)].
val) = 0;
6996 else if ((yyvsp[(5) - (6)].
val) ==
tANDOP) {
6997 (yyvsp[(5) - (6)].
val) = 1;
7002 (yyvsp[(1) - (6)].
val) = dispatch2(aref_field, (yyvsp[(1) - (6)].
val),
escape_Qundef((yyvsp[(3) - (6)].
val)));
7003 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (6)].
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].
val));
7011 #line 1998 "ripper.y"
7021 #line 2003 "ripper.y"
7031 #line 2008 "ripper.y"
7041 #line 2013 "ripper.y"
7047 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
7048 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
7056 #line 2023 "ripper.y"
7062 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (4)].
val));
7063 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
7071 #line 2033 "ripper.y"
7077 (yyval.
val) = dispatch1(var_field, (yyvsp[(1) - (3)].
val));
7078 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
7079 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
7087 #line 2044 "ripper.y"
7098 (yyval.
val) = dispatch2(dot2, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7106 #line 2058 "ripper.y"
7117 (yyval.
val) = dispatch2(dot3, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7125 #line 2072 "ripper.y"
7130 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'+'), (yyvsp[(3) - (3)].
val));
7138 #line 2080 "ripper.y"
7143 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'-'), (yyvsp[(3) - (3)].
val));
7151 #line 2088 "ripper.y"
7156 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'*'), (yyvsp[(3) - (3)].
val));
7164 #line 2096 "ripper.y"
7169 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'/'), (yyvsp[(3) - (3)].
val));
7177 #line 2104 "ripper.y"
7182 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'%'), (yyvsp[(3) - (3)].
val));
7190 #line 2112 "ripper.y"
7203 #line 2120 "ripper.y"
7217 #line 2129 "ripper.y"
7231 #line 2138 "ripper.y"
7244 #line 2146 "ripper.y"
7257 #line 2154 "ripper.y"
7262 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'|'), (yyvsp[(3) - (3)].
val));
7270 #line 2162 "ripper.y"
7275 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'^'), (yyvsp[(3) - (3)].
val));
7283 #line 2170 "ripper.y"
7288 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'&'), (yyvsp[(3) - (3)].
val));
7296 #line 2178 "ripper.y"
7309 #line 2186 "ripper.y"
7314 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'>'), (yyvsp[(3) - (3)].
val));
7322 #line 2194 "ripper.y"
7335 #line 2202 "ripper.y"
7340 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'<'), (yyvsp[(3) - (3)].
val));
7348 #line 2210 "ripper.y"
7361 #line 2218 "ripper.y"
7374 #line 2226 "ripper.y"
7387 #line 2234 "ripper.y"
7400 #line 2242 "ripper.y"
7416 #line 2253 "ripper.y"
7429 #line 2261 "ripper.y"
7434 (yyval.
val) = dispatch2(unary,
ID2SYM(
'!'), (yyvsp[(2) - (2)].
val));
7442 #line 2269 "ripper.y"
7447 (yyval.
val) = dispatch2(unary,
ID2SYM(
'~'), (yyvsp[(2) - (2)].
val));
7455 #line 2277 "ripper.y"
7468 #line 2285 "ripper.y"
7481 #line 2293 "ripper.y"
7494 #line 2301 "ripper.y"
7507 #line 2308 "ripper.y"
7514 #line 2309 "ripper.y"
7521 (yyval.
val) = dispatch1(defined, (yyvsp[(4) - (4)].
val));
7529 #line 2319 "ripper.y"
7536 (yyval.
val) = dispatch3(ifop, (yyvsp[(1) - (6)].
val), (yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].
val));
7544 #line 2329 "ripper.y"
7546 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7553 #line 2335 "ripper.y"
7557 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7560 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7568 #line 2348 "ripper.y"
7570 (yyval.
val) = (yyvsp[(1) - (2)].
val);
7577 #line 2352 "ripper.y"
7582 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val));
7590 #line 2360 "ripper.y"
7595 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7603 #line 2370 "ripper.y"
7606 (yyval.
val) = (yyvsp[(2) - (3)].
val);
7616 #line 2386 "ripper.y"
7618 (yyval.
val) = (yyvsp[(1) - (2)].
val);
7625 #line 2390 "ripper.y"
7630 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val));
7638 #line 2398 "ripper.y"
7643 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7651 #line 2408 "ripper.y"
7657 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7665 #line 2417 "ripper.y"
7670 (yyval.
val) = arg_add_optblock((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
7678 #line 2425 "ripper.y"
7684 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7685 (yyval.
val) = arg_add_optblock((yyval.
val), (yyvsp[(2) - (2)].
val));
7693 #line 2435 "ripper.y"
7699 (yyval.
val) = arg_add_optblock(arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val)), (yyvsp[(4) - (4)].
val));
7707 #line 2446 "ripper.y"
7709 (yyval.
val) = arg_add_block(arg_new(), (yyvsp[(1) - (1)].
val));
7716 #line 2452 "ripper.y"
7726 #line 2457 "ripper.y"
7730 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7737 #line 2465 "ripper.y"
7742 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7750 #line 2475 "ripper.y"
7752 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7759 #line 2479 "ripper.y"
7768 #line 2485 "ripper.y"
7773 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7781 #line 2493 "ripper.y"
7786 (yyval.
val) = arg_add_star(arg_new(), (yyvsp[(2) - (2)].
val));
7794 #line 2501 "ripper.y"
7805 (yyval.
val) = arg_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7813 #line 2515 "ripper.y"
7824 (yyval.
val) = arg_add_star((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val));
7832 #line 2531 "ripper.y"
7843 (yyval.
val) = mrhs_add(args2mrhs((yyvsp[(1) - (3)].
val)), (yyvsp[(3) - (3)].
val));
7851 #line 2545 "ripper.y"
7863 (yyval.
val) = mrhs_add_star(args2mrhs((yyvsp[(1) - (4)].
val)), (yyvsp[(4) - (4)].
val));
7871 #line 2560 "ripper.y"
7876 (yyval.
val) = mrhs_add_star(mrhs_new(), (yyvsp[(2) - (2)].
val));
7884 #line 2580 "ripper.y"
7889 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (1)].
val)), arg_new());
7897 #line 2588 "ripper.y"
7911 #line 2598 "ripper.y"
7915 if ((yyvsp[(3) - (4)].
val) ==
NULL) {
7926 (yyval.
val) = dispatch1(begin, (yyvsp[(3) - (4)].
val));
7934 #line 2615 "ripper.y"
7941 #line 2616 "ripper.y"
7946 (yyval.
val) = dispatch1(paren, 0);
7954 #line 2623 "ripper.y"
7961 #line 2624 "ripper.y"
7964 (yyval.
val) = (yyvsp[(2) - (4)].
val);
7966 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (4)].
val));
7974 #line 2632 "ripper.y"
7977 (yyval.
val) = (yyvsp[(2) - (3)].
val);
7979 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].
val));
7987 #line 2640 "ripper.y"
7992 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
8000 #line 2648 "ripper.y"
8005 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].
val));
8013 #line 2656 "ripper.y"
8016 if ((yyvsp[(2) - (3)].
val) == 0) {
8020 (yyval.
val) = (yyvsp[(2) - (3)].
val);
8031 #line 2669 "ripper.y"
8044 #line 2677 "ripper.y"
8057 #line 2685 "ripper.y"
8062 (yyval.
val) = dispatch1(yield, dispatch1(paren, (yyvsp[(3) - (4)].
val)));
8070 #line 2693 "ripper.y"
8075 (yyval.
val) = dispatch1(yield, dispatch1(paren, arg_new()));
8083 #line 2701 "ripper.y"
8096 #line 2708 "ripper.y"
8103 #line 2709 "ripper.y"
8110 (yyval.
val) = dispatch1(defined, (yyvsp[(5) - (6)].
val));
8118 #line 2719 "ripper.y"
8131 #line 2727 "ripper.y"
8144 #line 2735 "ripper.y"
8148 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8150 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].
val)), arg_new());
8151 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(2) - (2)].
val));
8159 #line 2746 "ripper.y"
8164 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8166 (yyval.
val) = method_add_block((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
8174 #line 2756 "ripper.y"
8176 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8183 #line 2763 "ripper.y"
8197 #line 2775 "ripper.y"
8211 #line 2783 "ripper.y"
8218 #line 2783 "ripper.y"
8225 #line 2786 "ripper.y"
8231 (yyval.
val) = dispatch2(
while, (yyvsp[(3) - (7)].
val), (yyvsp[(6) - (7)].
val));
8239 #line 2794 "ripper.y"
8246 #line 2794 "ripper.y"
8253 #line 2797 "ripper.y"
8259 (yyval.
val) = dispatch2(until, (yyvsp[(3) - (7)].
val), (yyvsp[(6) - (7)].
val));
8267 #line 2808 "ripper.y"
8273 (yyval.
val) = dispatch2(
case, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val));
8281 #line 2817 "ripper.y"
8286 (yyval.
val) = dispatch2(
case,
Qnil, (yyvsp[(3) - (4)].
val));
8294 #line 2825 "ripper.y"
8301 #line 2827 "ripper.y"
8308 #line 2830 "ripper.y"
8353 m->nd_next = (yyvsp[(2) - (9)].
val);
8362 tbl[0] = 1; tbl[1] =
id;
8366 (yyval.
val) = dispatch3(
for, (yyvsp[(2) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(8) - (9)].
val));
8374 #line 2891 "ripper.y"
8377 yyerror(
"class definition in method body");
8389 #line 2902 "ripper.y"
8395 (yyval.
val) = dispatch3(
class, (yyvsp[(2) - (6)].
val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].
val));
8404 #line 2912 "ripper.y"
8414 #line 2917 "ripper.y"
8425 #line 2924 "ripper.y"
8431 (yyval.
val) = dispatch2(sclass, (yyvsp[(3) - (8)].
val), (yyvsp[(7) - (8)].
val));
8442 #line 2936 "ripper.y"
8445 yyerror(
"module definition in method body");
8457 #line 2947 "ripper.y"
8463 (yyval.
val) = dispatch2(module, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val));
8472 #line 2957 "ripper.y"
8484 #line 2966 "ripper.y"
8492 (yyval.
val) = dispatch3(def, (yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), (yyvsp[(5) - (6)].
val));
8503 #line 2979 "ripper.y"
8510 #line 2980 "ripper.y"
8521 #line 2988 "ripper.y"
8526 (yyval.
val) =
NEW_DEFS((yyvsp[(2) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(7) - (9)].
val), body);
8529 (yyval.
val) = dispatch5(defs, (yyvsp[(2) - (9)].
val), (yyvsp[(3) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(7) - (9)].
val), (yyvsp[(8) - (9)].
val));
8539 #line 3001 "ripper.y"
8544 (yyval.
val) = dispatch1(
break, arg_new());
8552 #line 3009 "ripper.y"
8557 (yyval.
val) = dispatch1(next, arg_new());
8565 #line 3017 "ripper.y"
8578 #line 3025 "ripper.y"
8591 #line 3035 "ripper.y"
8595 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8598 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8606 #line 3047 "ripper.y"
8615 #line 3053 "ripper.y"
8624 #line 3059 "ripper.y"
8633 #line 3065 "ripper.y"
8642 #line 3071 "ripper.y"
8651 #line 3077 "ripper.y"
8660 #line 3083 "ripper.y"
8669 #line 3089 "ripper.y"
8678 #line 3095 "ripper.y"
8687 #line 3101 "ripper.y"
8700 #line 3111 "ripper.y"
8709 #line 3119 "ripper.y"
8716 #line 3125 "ripper.y"
8717 { (yyval.
val) = (yyvsp[(2) - (2)].
val); }
8723 #line 3132 "ripper.y"
8730 #line 3141 "ripper.y"
8744 #line 3153 "ripper.y"
8747 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8749 (yyval.
val) = dispatch1(
else, (yyvsp[(2) - (2)].
val));
8757 #line 3167 "ripper.y"
8762 (yyval.
val) = dispatch1(mlhs_paren, (yyval.
val));
8770 #line 3175 "ripper.y"
8773 (yyval.
val) = (yyvsp[(2) - (3)].
val);
8775 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
8783 #line 3185 "ripper.y"
8788 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
8796 #line 3193 "ripper.y"
8801 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
8809 #line 3203 "ripper.y"
8814 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8822 #line 3211 "ripper.y"
8828 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (4)].
val), (yyval.
val));
8836 #line 3220 "ripper.y"
8842 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (6)].
val), (yyval.
val));
8850 #line 3229 "ripper.y"
8855 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].
val),
Qnil);
8863 #line 3237 "ripper.y"
8868 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (5)].
val), (yyvsp[(5) - (5)].
val));
8876 #line 3245 "ripper.y"
8882 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyval.
val));
8890 #line 3254 "ripper.y"
8899 (yyval.
val) = mlhs_add_star((yyval.
val), (yyvsp[(4) - (4)].
val));
8907 #line 3266 "ripper.y"
8912 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
8920 #line 3274 "ripper.y"
8925 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
8933 #line 3285 "ripper.y"
8942 #line 3289 "ripper.y"
8951 #line 3293 "ripper.y"
8960 #line 3297 "ripper.y"
8969 #line 3303 "ripper.y"
8971 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8978 #line 3307 "ripper.y"
8987 #line 3313 "ripper.y"
8996 #line 3317 "ripper.y"
8998 (yyval.
val) =
new_args((yyvsp[(1) - (8)].
val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].
val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].
val));
9005 #line 3321 "ripper.y"
9014 #line 3325 "ripper.y"
9023 #line 3329 "ripper.y"
9032 #line 3333 "ripper.y"
9037 dispatch1(excessed_comma, (yyval.
val));
9045 #line 3341 "ripper.y"
9054 #line 3345 "ripper.y"
9063 #line 3349 "ripper.y"
9072 #line 3353 "ripper.y"
9081 #line 3357 "ripper.y"
9090 #line 3361 "ripper.y"
9099 #line 3365 "ripper.y"
9108 #line 3369 "ripper.y"
9117 #line 3373 "ripper.y"
9126 #line 3380 "ripper.y"
9135 #line 3386 "ripper.y"
9149 #line 3395 "ripper.y"
9163 #line 3404 "ripper.y"
9166 (yyval.
val) = (yyvsp[(2) - (4)].
val);
9176 #line 3415 "ripper.y"
9185 #line 3419 "ripper.y"
9190 (yyval.
val) = (yyvsp[(3) - (4)].
val);
9198 #line 3431 "ripper.y"
9207 #line 3438 "ripper.y"
9216 #line 3445 "ripper.y"
9229 #line 3453 "ripper.y"
9238 #line 3458 "ripper.y"
9247 #line 3461 "ripper.y"
9257 #line 3466 "ripper.y"
9266 #line 3470 "ripper.y"
9273 (yyval.
val) = dispatch2(lambda, (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
9282 #line 3483 "ripper.y"
9285 (yyval.
val) = (yyvsp[(2) - (4)].
val);
9287 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (4)].
val));
9295 #line 3491 "ripper.y"
9298 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9300 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9308 #line 3501 "ripper.y"
9310 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9317 #line 3505 "ripper.y"
9319 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9326 #line 3511 "ripper.y"
9338 #line 3520 "ripper.y"
9353 #line 3532 "ripper.y"
9363 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9366 (yyval.
val) = method_add_block((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9374 #line 3548 "ripper.y"
9377 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
9379 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), (yyvsp[(2) - (4)].
val), (yyvsp[(3) - (4)].
val));
9380 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9388 #line 3557 "ripper.y"
9393 (yyval.
val) = (yyvsp[(5) - (5)].
val);
9396 (yyval.
val) = dispatch4(
command_call, (yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
9397 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
9405 #line 3569 "ripper.y"
9410 (yyval.
val) = (yyvsp[(5) - (5)].
val);
9413 (yyval.
val) = dispatch4(
command_call, (yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
9414 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
9422 #line 3583 "ripper.y"
9425 (yyval.
val) = (yyvsp[(1) - (2)].
val);
9428 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].
val)), (yyvsp[(2) - (2)].
val));
9436 #line 3592 "ripper.y"
9447 #line 3598 "ripper.y"
9450 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
9453 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (5)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
9454 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(5) - (5)].
val));
9462 #line 3608 "ripper.y"
9473 #line 3614 "ripper.y"
9476 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
9479 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (5)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
9480 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(5) - (5)].
val));
9488 #line 3624 "ripper.y"
9501 #line 3632 "ripper.y"
9512 #line 3638 "ripper.y"
9518 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), ripper_id2sym(
'.'),
9520 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9528 #line 3649 "ripper.y"
9539 #line 3655 "ripper.y"
9547 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9555 #line 3666 "ripper.y"
9560 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].
val));
9568 #line 3674 "ripper.y"
9581 #line 3682 "ripper.y"
9598 #line 3696 "ripper.y"
9611 #line 3705 "ripper.y"
9626 #line 3715 "ripper.y"
9639 #line 3724 "ripper.y"
9654 #line 3738 "ripper.y"
9657 (yyval.
val) =
NEW_WHEN((yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
9667 #line 3754 "ripper.y"
9670 if ((yyvsp[(3) - (6)].
val)) {
9675 fixpos((yyval.
val), (yyvsp[(2) - (6)].
val)?(yyvsp[(2) - (6)].
val):(yyvsp[(5) - (6)].
val));
9677 (yyval.
val) = dispatch4(rescue,
9689 #line 3774 "ripper.y"
9702 #line 3782 "ripper.y"
9707 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9715 #line 3793 "ripper.y"
9717 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9724 #line 3800 "ripper.y"
9727 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9729 (yyval.
val) = dispatch1(ensure, (yyvsp[(2) - (2)].
val));
9737 #line 3812 "ripper.y"
9742 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].
val));
9750 #line 3823 "ripper.y"
9753 NODE *node = (yyvsp[(1) - (1)].
val);
9762 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9770 #line 3842 "ripper.y"
9775 (yyval.
val) = dispatch2(string_concat, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9783 #line 3852 "ripper.y"
9786 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9788 (yyval.
val) = dispatch1(string_literal, (yyvsp[(2) - (3)].
val));
9796 #line 3862 "ripper.y"
9799 NODE *node = (yyvsp[(2) - (3)].
val);
9818 (yyval.
val) = dispatch1(xstring_literal, (yyvsp[(2) - (3)].
val));
9826 #line 3889 "ripper.y"
9830 NODE *node = (yyvsp[(2) - (3)].
val);
9838 VALUE src = node->nd_lit;
9854 for (list = (prev = node)->
nd_next;
list; list = list->nd_next) {
9856 VALUE tail = list->nd_head->nd_lit;
9858 VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
9864 prev->nd_next = list->nd_next;
9877 if (!node->nd_next) {
9878 VALUE src = node->nd_lit;
9886 (yyval.
val) = dispatch2(regexp_literal, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
9894 #line 3954 "ripper.y"
9900 (yyval.
val) = dispatch1(array, (yyval.
val));
9908 #line 3963 "ripper.y"
9911 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9913 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
9921 #line 3973 "ripper.y"
9934 #line 3981 "ripper.y"
9939 (yyval.
val) = dispatch2(words_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
9947 #line 3993 "ripper.y"
9950 (yyval.
val) = dispatch2(word_add, (yyval.
val), (yyvsp[(1) - (1)].
val));
9957 #line 3999 "ripper.y"
9962 (yyval.
val) = dispatch2(word_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9970 #line 4009 "ripper.y"
9976 (yyval.
val) = dispatch1(array, (yyval.
val));
9984 #line 4018 "ripper.y"
9987 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9989 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
9997 #line 4028 "ripper.y"
10010 #line 4036 "ripper.y"
10017 (yyval.
val) = dispatch2(symbols_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
10025 #line 4048 "ripper.y"
10031 (yyval.
val) = dispatch1(array, (yyval.
val));
10039 #line 4057 "ripper.y"
10042 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10044 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
10052 #line 4067 "ripper.y"
10058 (yyval.
val) = dispatch1(array, (yyval.
val));
10066 #line 4076 "ripper.y"
10069 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10071 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
10079 #line 4086 "ripper.y"
10092 #line 4094 "ripper.y"
10097 (yyval.
val) = dispatch2(qwords_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
10105 #line 4104 "ripper.y"
10118 #line 4112 "ripper.y"
10127 (yyval.
val) = dispatch2(qsymbols_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
10135 #line 4126 "ripper.y"
10148 #line 4134 "ripper.y"
10153 (yyval.
val) = dispatch2(string_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10161 #line 4144 "ripper.y"
10174 #line 4152 "ripper.y"
10179 (yyval.
val) = dispatch2(xstring_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10187 #line 4162 "ripper.y"
10200 #line 4170 "ripper.y"
10203 NODE *
head = (yyvsp[(1) - (2)].
val), *tail = (yyvsp[(2) - (2)].
val);
10205 (yyval.
val) = tail;
10208 (yyval.
val) = head;
10224 (yyval.
val) = dispatch2(regexp_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10232 #line 4200 "ripper.y"
10243 #line 4206 "ripper.y"
10250 (yyval.
val) = dispatch1(string_dvar, (yyvsp[(3) - (3)].
val));
10258 #line 4216 "ripper.y"
10270 #line 4222 "ripper.y"
10281 #line 4227 "ripper.y"
10291 #line 4232 "ripper.y"
10301 (yyval.
val) = dispatch1(string_embexpr, (yyvsp[(5) - (6)].
val));
10309 #line 4247 "ripper.y"
10314 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10322 #line 4255 "ripper.y"
10327 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10335 #line 4263 "ripper.y"
10340 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10348 #line 4274 "ripper.y"
10352 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10354 (yyval.
val) = dispatch1(symbol, (yyvsp[(2) - (2)].
val));
10362 #line 4291 "ripper.y"
10368 (yyval.
val) = dispatch1(dyna_symbol, (yyvsp[(2) - (3)].
val));
10376 #line 4304 "ripper.y"
10389 #line 4312 "ripper.y"
10402 #line 4328 "ripper.y"
10409 #line 4329 "ripper.y"
10416 #line 4330 "ripper.y"
10423 #line 4331 "ripper.y"
10430 #line 4332 "ripper.y"
10437 #line 4333 "ripper.y"
10444 #line 4334 "ripper.y"
10451 #line 4338 "ripper.y"
10456 if (id_is_var(
get_id((yyvsp[(1) - (1)].
val)))) {
10457 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10460 (yyval.
val) = dispatch1(vcall, (yyvsp[(1) - (1)].
val));
10469 #line 4351 "ripper.y"
10474 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10482 #line 4361 "ripper.y"
10487 (yyval.
val) = dispatch1(var_field, (yyval.
val));
10495 #line 4369 "ripper.y"
10500 (yyval.
val) = dispatch1(var_field, (yyval.
val));
10508 #line 4383 "ripper.y"
10521 #line 4391 "ripper.y"
10531 #line 4396 "ripper.y"
10533 (yyval.
val) = (yyvsp[(3) - (4)].
val);
10540 #line 4400 "ripper.y"
10555 #line 4412 "ripper.y"
10558 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10560 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].
val));
10570 #line 4422 "ripper.y"
10572 (yyval.
val) = (yyvsp[(1) - (2)].
val);
10581 #line 4430 "ripper.y"
10590 #line 4434 "ripper.y"
10599 #line 4438 "ripper.y"
10608 #line 4442 "ripper.y"
10617 #line 4448 "ripper.y"
10619 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10626 #line 4452 "ripper.y"
10635 #line 4458 "ripper.y"
10644 #line 4462 "ripper.y"
10646 (yyval.
val) =
new_args((yyvsp[(1) - (8)].
val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].
val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].
val));
10653 #line 4466 "ripper.y"
10662 #line 4470 "ripper.y"
10671 #line 4474 "ripper.y"
10680 #line 4478 "ripper.y"
10689 #line 4482 "ripper.y"
10698 #line 4486 "ripper.y"
10707 #line 4490 "ripper.y"
10716 #line 4494 "ripper.y"
10725 #line 4498 "ripper.y"
10734 #line 4502 "ripper.y"
10743 #line 4506 "ripper.y"
10752 #line 4510 "ripper.y"
10761 #line 4514 "ripper.y"
10771 #line 4521 "ripper.y"
10774 yyerror(
"formal argument cannot be a constant");
10777 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10785 #line 4530 "ripper.y"
10788 yyerror(
"formal argument cannot be an instance variable");
10791 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10799 #line 4539 "ripper.y"
10802 yyerror(
"formal argument cannot be a global variable");
10805 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10813 #line 4548 "ripper.y"
10816 yyerror(
"formal argument cannot be a class variable");
10819 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10827 #line 4560 "ripper.y"
10830 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10837 #line 4567 "ripper.y"
10851 #line 4576 "ripper.y"
10865 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
10873 #line 4597 "ripper.y"
10882 #line 4602 "ripper.y"
10885 (yyval.
val) = (yyvsp[(1) - (3)].
val);
10898 #line 4615 "ripper.y"
10913 #line 4627 "ripper.y"
10928 #line 4639 "ripper.y"
10931 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10941 #line 4647 "ripper.y"
10944 NODE *kws = (yyvsp[(1) - (3)].
val);
10946 while (kws->nd_next) {
10947 kws = kws->nd_next;
10949 kws->nd_next = (yyvsp[(3) - (3)].
val);
10950 (yyval.
val) = (yyvsp[(1) - (3)].
val);
10960 #line 4664 "ripper.y"
10963 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10973 #line 4672 "ripper.y"
10976 NODE *kws = (yyvsp[(1) - (3)].
val);
10978 while (kws->nd_next) {
10979 kws = kws->nd_next;
10981 kws->nd_next = (yyvsp[(3) - (3)].
val);
10982 (yyval.
val) = (yyvsp[(1) - (3)].
val);
10992 #line 4692 "ripper.y"
10995 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11002 #line 4697 "ripper.y"
11011 #line 4703 "ripper.y"
11026 #line 4715 "ripper.y"
11041 #line 4727 "ripper.y"
11044 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11054 #line 4735 "ripper.y"
11057 NODE *opts = (yyvsp[(1) - (3)].
val);
11059 while (opts->nd_next) {
11060 opts = opts->nd_next;
11062 opts->nd_next = (yyvsp[(3) - (3)].
val);
11063 (yyval.
val) = (yyvsp[(1) - (3)].
val);
11073 #line 4751 "ripper.y"
11076 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11086 #line 4759 "ripper.y"
11089 NODE *opts = (yyvsp[(1) - (3)].
val);
11091 while (opts->nd_next) {
11092 opts = opts->nd_next;
11094 opts->nd_next = (yyvsp[(3) - (3)].
val);
11095 (yyval.
val) = (yyvsp[(1) - (3)].
val);
11105 #line 4779 "ripper.y"
11109 yyerror(
"rest argument must be local variable");
11113 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11115 (yyval.
val) = dispatch1(rest_param, (yyvsp[(2) - (2)].
val));
11123 #line 4792 "ripper.y"
11129 (yyval.
val) = dispatch1(rest_param,
Qnil);
11137 #line 4807 "ripper.y"
11141 yyerror(
"block argument must be local variable");
11143 yyerror(
"duplicated block argument name");
11147 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11149 (yyval.
val) = dispatch1(blockarg, (yyvsp[(2) - (2)].
val));
11157 #line 4824 "ripper.y"
11159 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11166 #line 4828 "ripper.y"
11179 #line 4838 "ripper.y"
11183 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11186 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11194 #line 4847 "ripper.y"
11201 #line 4848 "ripper.y"
11204 if ((yyvsp[(3) - (4)].
val) == 0) {
11205 yyerror(
"can't define singleton method for ().");
11217 yyerror(
"can't define singleton method for literals");
11223 (yyval.
val) = (yyvsp[(3) - (4)].
val);
11225 (yyval.
val) = dispatch1(paren, (yyvsp[(3) - (4)].
val));
11233 #line 4878 "ripper.y"
11236 (yyval.
val) = (yyvsp[(1) - (2)].
val);
11238 (yyval.
val) = dispatch1(assoclist_from_args, (yyvsp[(1) - (2)].
val));
11246 #line 4890 "ripper.y"
11255 #line 4895 "ripper.y"
11268 #line 4905 "ripper.y"
11273 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
11281 #line 4913 "ripper.y"
11286 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
11294 #line 4921 "ripper.y"
11299 (yyval.
val) = dispatch1(assoc_splat, (yyvsp[(2) - (2)].
val));
11307 #line 4951 "ripper.y"
11308 { (yyval.
val) = (yyvsp[(1) - (1)].
val); }
11314 #line 4956 "ripper.y"
11315 { (yyval.
val) = (yyvsp[(1) - (1)].
val); }
11321 #line 4979 "ripper.y"
11328 #line 4984 "ripper.y"
11335 #line 4988 "ripper.y"
11348 #line 11347 "parse.c"
11376 yystate = yypgoto[yyn -
YYNTOKENS] + *yyssp;
11377 if (0 <= yystate && yystate <=
YYLAST && yycheck[yystate] == *yyssp)
11378 yystate = yytable[yystate];
11397 #if ! YYERROR_VERBOSE
11400 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
11403 char const *yymsgp =
YY_(
"syntax error");
11404 int yysyntax_error_status;
11406 if (yysyntax_error_status == 0)
11408 else if (yysyntax_error_status == 1)
11410 if (yymsg != yymsgbuf)
11416 yymsg_alloc =
sizeof yymsgbuf;
11417 yysyntax_error_status = 2;
11426 if (yysyntax_error_status == 2)
11427 goto yyexhaustedlab;
11429 # undef YYSYNTAX_ERROR
11435 if (yyerrstatus == 3)
11440 if (yychar <=
YYEOF)
11443 if (yychar ==
YYEOF)
11449 yytoken, &yylval, parser);
11487 yyn = yypact[yystate];
11493 yyn = yytable[yyn];
11505 yystos[yystate], yyvsp, parser);
11535 #if !defined(yyoverflow) || YYERROR_VERBOSE
11551 yydestruct (
"Cleanup: discarding lookahead",
11552 yytoken, &yylval, parser);
11558 while (yyssp != yyss)
11561 yystos[*yyssp], yyvsp, parser);
11568 #if YYERROR_VERBOSE
11569 if (yymsg != yymsgbuf)
11573 return YYID (yyresult);
11579 #line 4996 "ripper.y"
11584 # define yylval (*((YYSTYPE*)(parser->parser_yylval)))
11593 # define nextc() parser_nextc(parser)
11594 # define pushback(c) parser_pushback(parser, (c))
11595 # define newtok() parser_newtok(parser)
11596 # define tokspace(n) parser_tokspace(parser, (n))
11597 # define tokadd(c) parser_tokadd(parser, (c))
11598 # define tok_hex(numlen) parser_tok_hex(parser, (numlen))
11599 # define read_escape(flags,e) parser_read_escape(parser, (flags), (e))
11600 # define tokadd_escape(e) parser_tokadd_escape(parser, (e))
11601 # define regx_options() parser_regx_options(parser)
11602 # define tokadd_string(f,t,p,n,e) parser_tokadd_string(parser,(f),(t),(p),(n),(e))
11603 # define parse_string(n) parser_parse_string(parser,(n))
11604 # define tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc))
11605 # define here_document(n) parser_here_document(parser,(n))
11606 # define heredoc_identifier() parser_heredoc_identifier(parser)
11607 # define heredoc_restore(n) parser_heredoc_restore(parser,(n))
11608 # define whole_match_p(e,l,i) parser_whole_match_p(parser,(e),(l),(i))
11611 # define set_yylval_str(x) (yylval.node = NEW_STR(x))
11612 # define set_yylval_num(x) (yylval.num = (x))
11613 # define set_yylval_id(x) (yylval.id = (x))
11614 # define set_yylval_name(x) (yylval.id = (x))
11615 # define set_yylval_literal(x) (yylval.node = NEW_LIT(x))
11616 # define set_yylval_node(x) (yylval.node = (x))
11617 # define yylval_id() (yylval.id)
11619 static inline VALUE
11620 ripper_yylval_id(
ID x)
11624 # define set_yylval_str(x) (void)(x)
11625 # define set_yylval_num(x) (void)(x)
11626 # define set_yylval_id(x) (void)(x)
11627 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x))
11628 # define set_yylval_literal(x) (void)(x)
11629 # define set_yylval_node(x) (void)(x)
11630 # define yylval_id() yylval.id
11634 #define ripper_flush(p) (void)(p)
11636 #define ripper_flush(p) ((p)->tokp = (p)->parser_lex_p)
11638 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val))
11645 return lex_p > parser->tokp;
11658 ripper_dispatch_scan_event(
struct parser_params *parser,
int t)
11660 if (!ripper_has_scan_event(parser))
return;
11661 yylval_rval = ripper_scan_event_val(parser, t);
11665 ripper_dispatch_ignored_scan_event(
struct parser_params *parser,
int t)
11667 if (!ripper_has_scan_event(parser))
return;
11668 (void)ripper_scan_event_val(parser, t);
11672 ripper_dispatch_delayed_token(
struct parser_params *parser,
int t)
11675 const char *saved_tokp = parser->tokp;
11678 parser->tokp =
lex_pbeg + parser->delayed_col;
11680 parser->delayed =
Qnil;
11682 parser->tokp = saved_tokp;
11693 #undef SIGN_EXTEND_CHAR
11695 # define SIGN_EXTEND_CHAR(c) ((signed char)(c))
11698 # define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128)
11701 #define parser_encoding_name() (current_enc->name)
11702 #define parser_mbclen() mbclen((lex_p-1),lex_pend,current_enc)
11703 #define parser_precise_mbclen() rb_enc_precise_mbclen((lex_p-1),lex_pend,current_enc)
11704 #define is_identchar(p,e,enc) (rb_enc_isalnum(*(p),(enc)) || (*(p)) == '_' || !ISASCII(*(p)))
11705 #define parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,current_enc))
11707 #define parser_isascii() ISASCII(*(lex_p-1))
11715 for (p =
lex_pbeg; p < pend; p++) {
11717 column = (((column - 1) / 8) + 1) * 8;
11728 for (p =
lex_pbeg; p < pend; p++) {
11729 if (*p !=
' ' && *p !=
'\t') {
11736 #undef token_info_push
11753 #undef token_info_pop
11760 if (!ptinfo)
return;
11766 if (linenum == ptinfo->
linenum) {
11774 "mismatched indentations at '%s' with '%s' at %d",
11787 const int max_line_margin = 30;
11788 const char *
p, *pe;
11796 if (*p ==
'\n')
break;
11803 if (*pe ==
'\n')
break;
11810 const char *pre =
"", *post =
"";
11812 if (len > max_line_margin * 2 + 10) {
11813 if (
lex_p - p > max_line_margin) {
11817 if (pe -
lex_p > max_line_margin) {
11824 MEMCPY(buf, p,
char, len);
11828 i = (int)(
lex_p - p);
11829 p2 =
buf; pe = buf + len;
11832 if (*p2 !=
'\t') *p2 =
' ';
11840 dispatch1(parse_error,
STR_NEW2(msg));
11852 CONST_ID(script_lines,
"SCRIPT_LINES__");
11869 if (
RTEST(coverages) &&
RBASIC(coverages)->klass == 0) {
11873 RBASIC(lines)->klass = 0;
11875 RARRAY(lines)->as.heap.len = n;
11935 if (parser->
nerr) {
11945 return (
VALUE)tree;
11970 char *beg, *end, *pend;
11980 while (end < pend) {
11981 if (*end++ ==
'\n')
break;
11991 if (
NIL_P(line))
return line;
12090 #define STR_FUNC_ESCAPE 0x01
12091 #define STR_FUNC_EXPAND 0x02
12092 #define STR_FUNC_REGEXP 0x04
12093 #define STR_FUNC_QWORDS 0x08
12094 #define STR_FUNC_SYMBOL 0x10
12095 #define STR_FUNC_INDENT 0x20
12125 #define lex_goto_eol(parser) ((parser)->parser_lex_p = (parser)->parser_lex_pend)
12126 #define lex_eol_p() (lex_p >= lex_pend)
12127 #define peek(c) peek_n((c), 0)
12128 #define peek_n(c,n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n])
12151 if (
NIL_P(parser->delayed)) {
12155 parser->tokp,
lex_pend - parser->tokp);
12157 parser->delayed_col = (int)(parser->tokp -
lex_pbeg);
12161 parser->tokp,
lex_pend - parser->tokp);
12177 c = (
unsigned char)*
lex_p++;
12178 if (c ==
'\r' &&
peek(
'\n')) {
12189 if (c == -1)
return;
12196 #define was_bol() (lex_p == lex_pbeg + 1)
12198 #define tokfix() (tokenbuf[tokidx]='\0')
12199 #define tok() tokenbuf
12200 #define toklen() tokidx
12201 #define toklast() (tokidx>0?tokenbuf[tokidx-1]:0)
12248 yyerror(
"invalid hex escape");
12255 #define tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n))
12260 int string_literal,
int symbol_literal,
int regexp_literal)
12280 yyerror(
"invalid Unicode escape");
12283 if (codepoint > 0x10ffff) {
12284 yyerror(
"invalid Unicode codepoint (too large)");
12288 if (regexp_literal) {
12291 else if (codepoint >= 0x80) {
12293 if (string_literal)
tokaddmbc(codepoint, *encp);
12295 else if (string_literal) {
12298 }
while (string_literal && (
peek(
' ') ||
peek(
'\t')));
12301 yyerror(
"unterminated Unicode escape");
12305 if (regexp_literal) {
tokadd(
'}'); }
12311 yyerror(
"invalid Unicode escape");
12315 if (regexp_literal) {
12318 else if (codepoint >= 0x80) {
12320 if (string_literal)
tokaddmbc(codepoint, *encp);
12322 else if (string_literal) {
12330 #define ESCAPE_CONTROL 1
12331 #define ESCAPE_META 2
12340 switch (c =
nextc()) {
12365 case '0':
case '1':
case '2':
case '3':
12366 case '4':
case '5':
case '6':
case '7':
12374 if (numlen == 0)
return 0;
12385 if ((c =
nextc()) !=
'-') {
12389 if ((c =
nextc()) ==
'\\') {
12390 if (
peek(
'u'))
goto eof;
12391 return read_escape(flags|ESCAPE_META, encp) | 0x80;
12393 else if (c == -1 || !
ISASCII(c))
goto eof;
12395 return ((c & 0xff) | 0x80);
12399 if ((c =
nextc()) !=
'-') {
12405 if ((c =
nextc())==
'\\') {
12406 if (
peek(
'u'))
goto eof;
12411 else if (c == -1 || !
ISASCII(c))
goto eof;
12416 yyerror(
"Invalid escape character syntax");
12439 switch (c =
nextc()) {
12443 case '0':
case '1':
case '2':
case '3':
12444 case '4':
case '5':
case '6':
case '7':
12447 if (numlen == 0)
goto eof;
12456 if (numlen == 0)
return -1;
12463 if ((c =
nextc()) !=
'-') {
12473 if ((c =
nextc()) !=
'-') {
12481 if (flags & ESCAPE_CONTROL)
goto eof;
12485 if ((c =
nextc()) ==
'\\') {
12488 else if (c == -1)
goto eof;
12494 yyerror(
"Invalid escape character syntax");
12561 #define tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c))
12567 case '$':
case '*':
case '+':
case '.':
12568 case '?':
case '^':
case '|':
12569 case ')':
case ']':
case '}':
case '>':
12578 int func,
int term,
int paren,
long *nest,
12582 int has_nonascii = 0;
12585 static const char mixed_msg[] =
"%s mixed within %s source";
12587 #define mixed_error(enc1, enc2) if (!errbuf) { \
12588 size_t len = sizeof(mixed_msg) - 4; \
12589 len += strlen(rb_enc_name(enc1)); \
12590 len += strlen(rb_enc_name(enc2)); \
12591 errbuf = ALLOCA_N(char, len); \
12592 snprintf(errbuf, len, mixed_msg, \
12593 rb_enc_name(enc1), \
12594 rb_enc_name(enc2)); \
12597 #define mixed_escape(beg, enc1, enc2) do { \
12598 const char *pos = lex_p; \
12600 mixed_error((enc1), (enc2)); \
12604 while ((c =
nextc()) != -1) {
12605 if (paren && c == paren) {
12608 else if (c == term) {
12609 if (!nest || !*nest) {
12617 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
12622 else if (c ==
'\\') {
12623 const char *beg =
lex_p - 1;
12628 if (func & STR_FUNC_EXPAND)
continue;
12637 if ((func & STR_FUNC_EXPAND) == 0) {
12644 if (has_nonascii && enc != *encp) {
12650 if (c == -1)
return -1;
12652 if ((func & STR_FUNC_EXPAND) == 0)
tokadd(
'\\');
12655 if (func & STR_FUNC_REGEXP) {
12663 if (has_nonascii && enc != *encp) {
12668 else if (func & STR_FUNC_EXPAND) {
12670 if (func & STR_FUNC_ESCAPE)
tokadd(
'\\');
12673 else if ((func & STR_FUNC_QWORDS) &&
ISSPACE(c)) {
12676 else if (c != term && !(paren && c == paren)) {
12686 if (enc != *encp) {
12699 if (enc != *encp) {
12710 #define NEW_STRTERM(func, term, paren) \
12711 rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0)
12717 if (!
NIL_P(parser->delayed)) {
12718 ptrdiff_t len =
lex_p - parser->tokp;
12723 parser->tokp =
lex_p;
12727 #define flush_string_content(enc) ripper_flush_string_content(parser, (enc))
12729 #define flush_string_content(enc) ((void)(enc))
12736 #define BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0)
12737 #define SPECIAL_PUNCT(idx) ( \
12738 BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', idx) | \
12739 BIT('!', idx) | BIT('@', idx) | BIT('/', idx) | BIT('\\', idx) | \
12740 BIT(';', idx) | BIT(',', idx) | BIT('.', idx) | BIT('=', idx) | \
12741 BIT(':', idx) | BIT('<', idx) | BIT('>', idx) | BIT('\"', idx) | \
12742 BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \
12750 #undef SPECIAL_PUNCT
12756 if (c <= 0x20 || 0x7e < c)
return 0;
12757 return (ruby_global_name_punct_bits[(c - 0x20) / 32] >> (c % 32)) & 1;
12764 const char *p =
lex_p;
12770 if ((c = *p) ==
'-') {
12779 if ((c = *p) ==
'@') {
12799 int func = (int)quote->nd_func;
12811 if (c == term && !quote->nd_nest) {
12812 if (func & STR_FUNC_QWORDS) {
12813 quote->nd_func = -1;
12875 while ((c =
nextc()) != -1 && c != term) {
12922 line = here->nd_orig;
12936 const char *eos,
long len,
int indent)
12942 while (*p &&
ISSPACE(*p)) p++;
12945 if (n < 0 || (n > 0 && p[len] !=
'\n' && p[len] !=
'\r'))
return FALSE;
12946 return strncmp(eos, p, len) == 0;
12953 if (!
NIL_P(parser->delayed))
12956 ripper_dispatch_ignored_scan_event(parser,
tHEREDOC_END);
12959 #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser)
12961 #define dispatch_heredoc_end() ((void)0)
12967 int c,
func, indent = 0;
12968 const char *eos, *
p, *pend;
12977 if ((c =
nextc()) == -1) {
12981 if (
NIL_P(parser->delayed)) {
12986 ((len =
lex_p - parser->tokp) > 0 &&
12987 (str =
STR_NEW3(parser->tokp, len, enc, func), 1))) {
13010 switch (pend[-1]) {
13012 if (--pend == p || pend[-1] !=
'\r') {
13026 if (
nextc() == -1) {
13044 if (parser->
eofp)
goto error;
13054 if ((c =
nextc()) == -1)
goto error;
13071 rb_warning0(
"ambiguous first argument; put parentheses or even spaces");
13076 #define arg_ambiguous() (arg_ambiguous_gen(parser), 1)
13083 yyerror(
"formal argument must be local variable");
13101 if (len > 5 && name[nlen = len - 5] ==
'-') {
13102 if (
rb_memcicmp(name + nlen + 1,
"unix", 4) == 0)
13105 if (len > 4 && name[nlen = len - 4] ==
'-') {
13108 if (
rb_memcicmp(name + nlen + 1,
"mac", 3) == 0 &&
13109 !(len == 8 &&
rb_memcicmp(name,
"utf8-mac", len) == 0))
13124 excargs[1] =
rb_sprintf(
"unknown encoding name: %s", name);
13141 for (i = 0; i < n; ++
i) {
13179 case 't':
case 'T':
13185 case 'f':
case 'F':
13208 static const char *
13216 if (str[i-1] ==
'*' && str[i-2] ==
'-') {
13217 return str + i + 1;
13222 if (i + 1 >= len)
return 0;
13223 if (str[i+1] !=
'-') {
13226 else if (str[i-1] !=
'-') {
13230 return str + i + 2;
13245 const char *beg, *end, *vbeg, *vend;
13246 #define str_copy(_s, _p, _n) ((_s) \
13247 ? (void)(rb_str_resize((_s), (_n)), \
13248 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \
13249 : (void)((_s) = STR_NEW((_p), (_n))))
13251 if (len <= 7)
return FALSE;
13255 len = end - beg - 3;
13266 for (; len > 0 && *str; str++, --len) {
13268 case '\'':
case '"':
case ':':
case ';':
13273 for (beg = str; len > 0; str++, --len) {
13275 case '\'':
case '"':
case ':':
case ';':
13283 for (end = str; len > 0 &&
ISSPACE(*str); str++, --len);
13285 if (*str !=
':')
continue;
13287 do str++;
while (--len > 0 &&
ISSPACE(*str));
13290 for (vbeg = ++str; --len > 0 && *str !=
'"'; str++) {
13291 if (*str ==
'\\') {
13303 for (vbeg = str; len > 0 && *str !=
'"' && *str !=
';' && !
ISSPACE(*str); --len, str++);
13306 while (len > 0 && (*str ==
';' ||
ISSPACE(*str))) --len, str++;
13311 for (i = 0; i < n; ++
i) {
13312 if (s[i] ==
'-') s[
i] =
'_';
13319 n = (*p->
length)(parser, vbeg, n);
13325 }
while (++p < magic_comments +
numberof(magic_comments));
13339 const char *beg = str;
13343 if (send - str <= 6)
return;
13345 case 'C':
case 'c': str += 6;
continue;
13346 case 'O':
case 'o': str += 5;
continue;
13347 case 'D':
case 'd': str += 4;
continue;
13348 case 'I':
case 'i': str += 3;
continue;
13349 case 'N':
case 'n': str += 2;
continue;
13350 case 'G':
case 'g': str += 1;
continue;
13351 case '=':
case ':':
13364 if (++str >= send)
return;
13367 if (*str !=
'=' && *str !=
':')
return;
13372 while ((*str ==
'-' || *str ==
'_' ||
ISALNUM(*str)) && ++str < send);
13388 (
unsigned char)
lex_p[0] == 0xbb &&
13389 (
unsigned char)
lex_p[1] == 0xbf) {
13403 #define IS_ARG() IS_lex_state(EXPR_ARG_ANY)
13404 #define IS_END() IS_lex_state(EXPR_END_ANY)
13405 #define IS_BEG() IS_lex_state(EXPR_BEG_ANY)
13406 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c))
13407 #define IS_LABEL_POSSIBLE() ((IS_lex_state(EXPR_BEG | EXPR_ENDFN) && !cmd_state) || IS_ARG())
13408 #define IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1))
13409 #define IS_AFTER_OPERATOR() IS_lex_state(EXPR_FNAME | EXPR_DOT)
13412 #define ambiguous_operator(op, syn) ( \
13413 rb_warning0("`"op"' after local variable is interpreted as binary operator"), \
13414 rb_warning0("even though it seems like "syn""))
13416 #define ambiguous_operator(op, syn) dispatch2(operator_ambiguous, ripper_intern(op), rb_str_new_cstr(syn))
13418 #define warn_balanced(op, syn) ((void) \
13419 (!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN|EXPR_ENDARG) && \
13420 space_seen && !ISSPACE(c) && \
13421 (ambiguous_operator(op, syn), 0)))
13427 int space_seen = 0;
13433 int fallthru =
FALSE;
13459 switch (c =
nextc()) {
13467 case ' ':
case '\t':
case '\f':
case '\r':
13471 while ((c =
nextc())) {
13473 case ' ':
case '\t':
case '\f':
case '\r':
13482 ripper_dispatch_scan_event(parser,
tSP);
13495 ripper_dispatch_scan_event(parser,
tCOMMENT);
13500 if (
IS_lex_state(EXPR_BEG | EXPR_VALUE | EXPR_CLASS | EXPR_FNAME | EXPR_DOT)) {
13509 while ((c =
nextc())) {
13511 case ' ':
case '\t':
case '\f':
case '\r':
13516 if ((c =
nextc()) !=
'.') {
13529 parser->tokp =
lex_p;
13532 goto normal_newline;
13541 if ((c =
nextc()) ==
'*') {
13542 if ((c =
nextc()) ==
'=') {
13549 rb_warning0(
"`**' interpreted as argument prefix");
13568 rb_warning0(
"`*' interpreted as argument prefix");
13607 int first_p =
TRUE;
13616 ripper_dispatch_scan_event(parser,
tEMBDOC);
13625 if (c !=
'=')
continue;
13626 if (strncmp(
lex_p,
"end", 3) == 0 &&
13640 if ((c =
nextc()) ==
'=') {
13641 if ((c =
nextc()) ==
'=') {
13650 else if (c ==
'>') {
13662 (!
IS_ARG() || space_seen)) {
13664 if (token)
return token;
13675 if ((c =
nextc()) ==
'>') {
13682 if ((c =
nextc()) ==
'=') {
13696 if ((c =
nextc()) ==
'=') {
13700 if ((c =
nextc()) ==
'=') {
13768 rb_warnI(
"invalid character syntax; use ?\\%c", c2);
13785 else if (c ==
'\\') {
13814 if ((c =
nextc()) ==
'&') {
13816 if ((c =
nextc()) ==
'=') {
13824 else if (c ==
'=') {
13831 rb_warning0(
"`&' interpreted as argument prefix");
13845 if ((c =
nextc()) ==
'|') {
13847 if ((c =
nextc()) ==
'=') {
13927 if ((c =
nextc()) ==
'.') {
13928 if ((c =
nextc()) ==
'.') {
13936 yyerror(
"no .<digit> floating literal anymore; put 0 before dot");
13942 case '0':
case '1':
case '2':
case '3':
case '4':
13943 case '5':
case '6':
case '7':
case '8':
case '9':
13945 int is_float, seen_point, seen_e, nondigit;
13947 is_float = seen_point = seen_e = nondigit = 0;
13950 if (c ==
'-' || c ==
'+') {
13955 #define no_digits() do {yyerror("numeric literal without digits"); return 0;} while (0)
13958 if (c ==
'x' || c ==
'X') {
13964 if (nondigit)
break;
13971 }
while ((c =
nextc()) != -1);
13975 if (
toklen() == start) {
13978 else if (nondigit)
goto trailing_uc;
13982 if (c ==
'b' || c ==
'B') {
13985 if (c ==
'0' || c ==
'1') {
13988 if (nondigit)
break;
13992 if (c !=
'0' && c !=
'1')
break;
13995 }
while ((c =
nextc()) != -1);
13999 if (
toklen() == start) {
14002 else if (nondigit)
goto trailing_uc;
14006 if (c ==
'd' || c ==
'D') {
14012 if (nondigit)
break;
14019 }
while ((c =
nextc()) != -1);
14023 if (
toklen() == start) {
14026 else if (nondigit)
goto trailing_uc;
14034 if (c ==
'o' || c ==
'O') {
14037 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
14041 if (c >=
'0' && c <=
'7') {
14046 if (nondigit)
break;
14050 if (c < '0' || c >
'9')
break;
14051 if (c >
'7')
goto invalid_octal;
14054 }
while ((c =
nextc()) != -1);
14058 if (nondigit)
goto trailing_uc;
14067 if (c >
'7' && c <=
'9') {
14069 yyerror(
"Invalid octal digit");
14071 else if (c ==
'.' || c ==
'e' || c ==
'E') {
14083 case '0':
case '1':
case '2':
case '3':
case '4':
14084 case '5':
case '6':
case '7':
case '8':
case '9':
14090 if (nondigit)
goto trailing_uc;
14091 if (seen_point || seen_e) {
14096 if (c0 == -1 || !
ISDIGIT(c0)) {
14124 if (c !=
'-' && c !=
'+')
continue;
14130 if (nondigit)
goto decode_num;
14145 snprintf(tmp,
sizeof(tmp),
"trailing `%c' in number", nondigit);
14151 if (
errno == ERANGE) {
14212 if ((c =
nextc()) ==
'=') {
14228 if ((c =
nextc()) ==
'=') {
14248 if ((c =
nextc()) !=
'@') {
14275 if ((c =
nextc()) ==
']') {
14276 if ((c =
nextc()) ==
'=') {
14288 else if (
IS_ARG() && space_seen) {
14323 ripper_dispatch_scan_event(parser,
tSP);
14337 if (c == -1 || !
ISALNUM(c)) {
14344 yyerror(
"unknown type of %string");
14348 if (c == -1 || term == -1) {
14353 if (term ==
'(') term =
')';
14354 else if (term ==
'[') term =
']';
14355 else if (term ==
'{') term =
'}';
14356 else if (term ==
'<') term =
'>';
14406 yyerror(
"unknown type of %string");
14410 if ((c =
nextc()) ==
'=') {
14487 case '1':
case '2':
case '3':
14488 case '4':
case '5':
case '6':
14489 case '7':
case '8':
case '9':
14494 }
while (c != -1 &&
ISDIGIT(c));
14540 ripper_dispatch_scan_event(parser,
k__END__);
14563 switch (
tok()[0]) {
14564 case '@':
case '$':
14568 if ((c ==
'!' || c ==
'?') && !
peek(
'=')) {
14581 switch (
tok()[0]) {
14588 if (
tok()[1] ==
'@')
14634 if (state == EXPR_FNAME) {
14648 if (
CMDARG_P() && state != EXPR_CMDARG)
14650 if (state & (EXPR_BEG | EXPR_ENDARG))
14654 if (state & (EXPR_BEG | EXPR_VALUE))
14657 if (kw->
id[0] != kw->
id[1])
14708 if (!
NIL_P(parser->delayed)) {
14709 ripper_dispatch_delayed_token(parser, t);
14713 ripper_dispatch_scan_event(parser, t);
14755 if (orig == (
NODE*)1)
return;
14764 #define parser_warning(node, mesg) parser_warning(parser, (node), (mesg))
14771 #define parser_warn(node, mesg) parser_warn(parser, (node), (mesg))
14778 if (tail == 0)
return head;
14780 if (h == 0)
return tail;
14819 tail->nd_end =
tail;
14821 end->nd_next =
tail;
14822 h->nd_end = tail->nd_end;
14832 if (list == 0)
return NEW_LIST(item);
14833 if (list->nd_next) {
14834 last = list->nd_next->nd_end;
14840 list->nd_alen += 1;
14842 list->nd_next->nd_end = last->nd_next;
14852 if (head->nd_next) {
14853 last = head->nd_next->nd_end;
14859 head->nd_alen += tail->nd_alen;
14860 last->nd_next =
tail;
14861 if (tail->nd_next) {
14862 head->nd_next->nd_end = tail->nd_next->nd_end;
14865 head->nd_next->nd_end =
tail;
14874 if (
NIL_P(tail))
return 1;
14895 if (!head)
return tail;
14896 if (!tail)
return head;
14906 if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
14909 lit = headlast->nd_lit;
14912 lit = head->nd_lit;
14932 tail->nd_lit = head->nd_lit;
14936 else if (
NIL_P(tail->nd_lit)) {
14938 head->nd_alen += tail->nd_alen - 1;
14939 head->nd_next->nd_end->nd_next = tail->nd_next;
14940 head->nd_next->nd_end = tail->nd_next->nd_end;
14943 else if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
14945 lit = headlast->nd_lit;
14948 tail->nd_lit =
Qnil;
14953 tail->nd_head =
NEW_STR(tail->nd_lit);
15100 static const char *
15103 static const char names[][12] = {
15104 "EXPR_BEG",
"EXPR_END",
"EXPR_ENDARG",
"EXPR_ENDFN",
"EXPR_ARG",
15105 "EXPR_CMDARG",
"EXPR_MID",
"EXPR_FNAME",
"EXPR_DOT",
"EXPR_CLASS",
15110 return names[
ffs(state)];
15125 # define assignable_result(x) get_value(lhs)
15126 # define parser_yyerror(parser, x) dispatch1(assign_error, lhs)
15128 # define assignable_result(x) (x)
15133 yyerror(
"Can't change the value of self");
15136 yyerror(
"Can't assign to nil");
15139 yyerror(
"Can't assign to true");
15142 yyerror(
"Can't assign to false");
15145 yyerror(
"Can't assign to __FILE__");
15148 yyerror(
"Can't assign to __LINE__");
15151 yyerror(
"Can't assign to __ENCODING__");
15185 yyerror(
"dynamic constant assignment");
15194 #undef assignable_result
15195 #undef parser_yyerror
15202 if (name == idUScore)
return 1;
15209 #define LVAR_USED ((ID)1 << (sizeof(ID) * CHAR_BIT - 1))
15217 yyerror(
"duplicated argument name");
15229 yyerror(
"duplicated argument name");
15287 int scope = (int)(
id & ID_SCOPE_MASK);
15296 id_type_names[scope],
ID2SYM(
id));
15300 id &= ~ID_SCOPE_MASK;
15329 if (!node2)
return node1;
15332 if (node1->nd_head)
15333 node1->nd_head =
arg_concat(node1->nd_head, node2);
15345 node1->nd_body =
list_concat(node1->nd_body, node2);
15354 if (!node1)
return NEW_LIST(node2);
15359 node1->nd_head =
arg_append(node1->nd_head, node2);
15380 if (!lhs)
return 0;
15392 lhs->nd_value = rhs;
15397 lhs->nd_args =
arg_append(lhs->nd_args, rhs);
15428 if (!cond)
yyerror(
"void value expression");
15433 while (node->nd_next) {
15434 node = node->nd_next;
15436 node = node->nd_head;
15440 node = node->nd_body;
15444 if (!node->nd_body) {
15445 node = node->nd_else;
15448 else if (!node->nd_else) {
15449 node = node->nd_body;
15453 node = node->nd_else;
15459 node = node->nd_2nd;
15473 const char *useless = 0;
15480 switch (node->nd_mid) {
15511 useless =
"a variable";
15514 useless =
"a constant";
15521 useless =
"a literal";
15546 useless =
"defined?";
15554 rb_warnS(
"possibly useless use of %s in void context", useless);
15567 if (!node->nd_next)
return;
15569 node = node->nd_next;
15576 NODE **n = &node, *n1 = node;
15578 *n = n1 = n1->nd_body;
15586 NODE *node = *body;
15592 #define subnodes(n1, n2) \
15593 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \
15594 (!node->n2) ? (body = &node->n1, 1) : \
15595 (reduce_nodes(&node->n1), body = &node->n2, 1))
15605 *body = node = node->nd_stts;
15609 *body = node = node->nd_body;
15613 body = &node->nd_end->nd_head;
15619 body = &node->nd_body;
15628 if (node->nd_else) {
15629 body = &node->nd_resq;
15647 if (!node)
return 1;
15650 if (!(node = node->nd_head))
break;
15654 }
while ((node = node->nd_next) != 0);
15673 yyerror(
"multiple assignment in conditional");
15687 if (!node->nd_value)
return 1;
15690 parser_warn(node->nd_value,
"found = in conditional, should be ==");
15712 for (node = *rootnode; node; node = next) {
15716 next = node->nd_next;
15717 head = node->nd_head;
15720 switch (type =
nd_type(head)) {
15723 val =
rb_range_new(head->nd_beg->nd_lit, head->nd_end->nd_lit,
15728 head->nd_lit =
val;
15743 if (node == 0)
return 0;
15751 return cond0(parser, node);
15757 if (!node)
return 1;
15778 if (node == 0)
return 0;
15785 rb_warn0(
"string literal in condition");
15795 node->nd_1st =
cond0(parser, node->nd_1st);
15796 node->nd_2nd =
cond0(parser, node->nd_2nd);
15801 node->nd_beg =
range_op(parser, node->nd_beg);
15802 node->nd_end =
range_op(parser, node->nd_end);
15835 if (node == 0)
return 0;
15836 return cond0(parser, node);
15844 NODE *node = left, *second;
15845 while ((second = node->nd_2nd) != 0 && (
enum node_type)
nd_type(second) == type) {
15848 node->nd_2nd =
NEW_NODE(type, second, right, 0);
15851 return NEW_NODE(type, left, right, 0);
15868 if (node->nd_next == 0) {
15869 node = node->nd_head;
15890 switch (
TYPE(node->nd_lit)) {
15919 node2->nd_head = node1;
15933 args->
pre_init = m ? m->nd_next : 0;
15987 lit = node->nd_lit;
16006 ID vid = lhs->nd_vid;
16008 lhs->nd_value = rhs;
16011 asgn->nd_aid = vid;
16014 else if (op ==
tANDOP) {
16015 lhs->nd_value = rhs;
16037 else if (op ==
tANDOP) {
16053 else if (op ==
tANDOP) {
16069 return dispatch3(opassign, lhs, op, rhs);
16075 VALUE recv = dispatch3(field, lhs, type, attr);
16076 return dispatch3(opassign, recv, op, rhs);
16086 if (!local->
used)
return;
16090 if (cnt != local->
vars->
pos) {
16091 rb_bug(
"local->used->pos != local->vars->pos");
16093 for (i = 0; i <
cnt; ++
i) {
16094 if (!v[i] || (u[i] &
LVAR_USED))
continue;
16109 local->
used = !(inherit_dvars &&
16140 for (i = 0; i <
cnt; i++) {
16141 buf[
i] = src->
tbl[
i];
16154 if (cnt <= 0)
return 0;
16185 vars =
lvtbl->vars;
16186 args =
lvtbl->args;
16187 used =
lvtbl->used;
16192 if (used) used = used->
prev;
16208 static const struct vtable *
16216 return lvtbl->args;
16224 if ((tmp =
lvtbl->used) != 0) {
16240 while (
lvtbl->args != lvargs) {
16242 if (!
lvtbl->args) {
16263 args =
lvtbl->args;
16264 vars =
lvtbl->vars;
16265 used =
lvtbl->used;
16278 if (used) used = used->
prev;
16331 "regexp encoding option '%c' differs from source encoding '%s'",
16360 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
16365 long len = name_end -
name;
16366 const char *s = (
const char *)name;
16383 rb_warningS(
"named capture conflicts a local variable - %s",
16463 NODE *scope = node;
16466 if (!node)
return node;
16470 node = node->nd_body;
16474 node = node->nd_body;
16481 prelude->nd_body = node;
16482 scope->nd_body = prelude;
16485 scope->nd_body = node;
16495 NODE *scope = node;
16498 if (!node)
return node;
16502 node = node->nd_body;
16506 node = node->nd_body;
16522 prelude->nd_body = node;
16523 scope->nd_body = prelude;
16526 scope->nd_body = node;
16532 static const struct {
16557 #define op_tbl_count numberof(op_tbl)
16559 #ifndef ENABLE_SELECTOR_NAMESPACE
16560 #define ENABLE_SELECTOR_NAMESPACE 0
16567 #if ENABLE_SELECTOR_NAMESPACE
16579 #if ENABLE_SELECTOR_NAMESPACE
16586 ivar2_cmp(
struct ivar2_key *key1,
struct ivar2_key *key2)
16588 if (key1->id == key2->id && key1->klass == key2->klass) {
16595 ivar2_hash(
struct ivar2_key *
key)
16597 return (key->id << 8) ^ (key->klass >> 2);
16611 #if ENABLE_SELECTOR_NAMESPACE
16619 (void)lex_state_name(-1);
16648 if (m >= e)
return 0;
16652 else if (*m ==
'-') {
16666 return m == e ? mb + 1 : 0;
16681 #define IDSET_ATTRSET_FOR_SYNTAX ((1U<<ID_LOCAL)|(1U<<ID_CONST))
16682 #define IDSET_ATTRSET_FOR_INTERN (~(~0U<<(1<<ID_SCOPE_SHIFT)) & ~(1U<<ID_ATTRSET))
16687 const char *m =
name;
16688 const char *e = m + len;
16691 if (!m || len <= 0)
return -1;
16711 case '<': ++m;
break;
16712 case '=':
if (*++m ==
'>') ++m;
break;
16719 case '>':
case '=': ++m;
break;
16725 case '~': ++m;
break;
16726 case '=':
if (*++m ==
'=') ++m;
break;
16727 default:
return -1;
16732 if (*++m ==
'*') ++m;
16735 case '+':
case '-':
16736 if (*++m ==
'@') ++m;
16739 case '|':
case '^':
case '&':
case '/':
case '%':
case '~':
case '`':
16744 if (*++m !=
']')
return -1;
16745 if (*++m ==
'=') ++m;
16749 if (len == 1)
return ID_JUNK;
16751 case '=':
case '~': ++m;
break;
16752 default:
return -1;
16764 case '!':
case '?':
16768 if (m + 1 < e || *m !=
'=')
break;
16771 if (!(allowed_atttset & (1
U << type)))
return -1;
16778 return m == e ? type : -1;
16842 fake_str.
as.
heap.ptr = (
char *)name;
16844 str = (
VALUE)&fake_str;
16858 const char *
name, *m, *e;
16880 if (len < 2)
goto junk;
16889 if (len < 3)
goto junk;
16894 if (len < 2)
goto junk;
16910 if (*
op_tbl[i].name == *m &&
16911 strcmp(
op_tbl[i].name, m) == 0) {
16919 if (name[last] ==
'=') {
16921 if (last > 1 && name[last-1] ==
'=')
16931 else if (
id == 0) {
17003 name[0] = (char)
id;
17026 if (
RBASIC(str)->klass == 0)
17032 ID id_stem = (
id & ~ID_SCOPE_MASK);
17049 if (
RBASIC(str)->klass == 0)
17062 if (!str)
return 0;
17156 VALUE name = *namep;
17207 fake_str.
as.
heap.ptr = (
char *)ptr;
17217 fake_str.
as.
heap.len = len - 1;
17315 parser->parser_ruby_sourcefile_string =
Qnil;
17316 parser->delayed =
Qnil;
17318 parser->result =
Qnil;
17319 parser->parsing_thread =
Qnil;
17320 parser->toplevel_p =
TRUE;
17329 #define parser_mark ripper_parser_mark
17330 #define parser_free ripper_parser_free
17348 rb_gc_mark(p->parser_ruby_sourcefile_string);
17370 prev = local->
prev;
17384 size_t size =
sizeof(*p);
17386 if (!ptr)
return 0;
17389 size +=
sizeof(*local);
17414 #undef rb_reserved_word
17498 yydebug =
RTEST(flag);
17503 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE))
17504 #define NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0)
17505 #define ADD2HEAP(n, c, p) ((parser->heap = (n))->u1.node = (p), \
17506 (n)->u3.cnt = (c), (p))
17523 void *ptr =
xcalloc(nelem, size);
17534 if (ptr && (n = parser->
heap) !=
NULL) {
17536 if (n->
u1.
node == ptr) {
17553 while ((n = *prev) !=
NULL) {
17554 if (n->u1.node == ptr) {
17567 #ifdef RIPPER_DEBUG
17568 extern int rb_is_pointer_to_heap(
VALUE);
17574 if (x ==
Qfalse)
return x;
17575 if (x ==
Qtrue)
return x;
17576 if (x ==
Qnil)
return x;
17581 if (!rb_is_pointer_to_heap(x))
17594 return ((
NODE *)x)->nd_rval;
17603 #define validate(x) ((x) = get_value(x))
17615 return rb_funcall(parser->value, mid, 1, a);
17623 return rb_funcall(parser->value, mid, 2, a, b);
17632 return rb_funcall(parser->value, mid, 3, a, b, c);
17642 return rb_funcall(parser->value, mid, 4, a, b, c, d);
17653 return rb_funcall(parser->value, mid, 5, a, b, c, d, e);
17666 return rb_funcall(parser->value, mid, 7, a, b, c, d, e, f, g);
17669 static const struct kw_assoc {
17672 } keyword_to_name[] = {
17725 keyword_id_to_str(
ID id)
17727 const struct kw_assoc *a;
17729 for (a = keyword_to_name; a->id; a++) {
17736 #undef ripper_id2sym
17738 ripper_id2sym(
ID id)
17748 if ((name = keyword_id_to_str(
id))) {
17761 rb_bug(
"cannot convert ID to string: %ld", (
unsigned long)
id);
17779 ripper_get_value(
VALUE v)
17786 return nd->nd_rval;
17790 ripper_compile_error(
struct parser_params *parser,
const char *fmt, ...)
17795 va_start(args, fmt);
17802 ripper_warn0(
struct parser_params *parser,
const char *fmt)
17808 ripper_warnI(
struct parser_params *parser,
const char *fmt,
int a)
17815 ripper_warnS(
struct parser_params *parser,
const char *fmt,
const char *str)
17822 ripper_warning0(
struct parser_params *parser,
const char *fmt)
17828 ripper_warningS(
struct parser_params *parser,
const char *fmt,
const char *str)
17841 ripper_s_allocate(
VALUE klass)
17853 #define ripper_initialized_p(r) ((r)->parser_lex_input != 0)
17869 VALUE src, fname, lineno;
17872 rb_scan_args(argc, argv,
"12", &src, &fname, &lineno);
17882 if (
NIL_P(fname)) {
17890 parser->parser_ruby_sourcefile_string = fname;
17897 struct ripper_args {
17904 ripper_parse0(
VALUE parser_v)
17910 ripper_yyparse((
void*)parser);
17911 return parser->result;
17915 ripper_ensure(
VALUE parser_v)
17920 parser->parsing_thread =
Qnil;
17931 ripper_parse(
VALUE self)
17936 if (!ripper_initialized_p(parser)) {
17939 if (!
NIL_P(parser->parsing_thread)) {
17946 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
17948 return parser->result;
17959 ripper_column(
VALUE self)
17965 if (!ripper_initialized_p(parser)) {
17968 if (
NIL_P(parser->parsing_thread))
return Qnil;
17980 ripper_filename(
VALUE self)
17985 if (!ripper_initialized_p(parser)) {
17988 return parser->parser_ruby_sourcefile_string;
17999 ripper_lineno(
VALUE self)
18004 if (!ripper_initialized_p(parser)) {
18007 if (
NIL_P(parser->parsing_thread))
return Qnil;
18011 #ifdef RIPPER_DEBUG
18047 InitVM_ripper(
void)
18063 #ifdef RIPPER_DEBUG
static const struct @60 op_tbl[]
#define rb_enc_islower(c, enc)
char * parser_ruby_sourcefile
#define RB_TYPE_P(obj, type)
#define NEW_ARGSCAT(a, b)
VALUE rb_const_get_at(VALUE, ID)
static YYSIZE_T yytnamerr(char *yyres, const char *yystr)
struct local_vars * parser_lvtbl
VALUE rb_ary_unshift(VALUE ary, VALUE item)
static ID ripper_token2eventid(int tok)
#define IS_LABEL_SUFFIX(n)
#define new_args_tail(k, kr, b)
int rb_is_attrset_id(ID id)
int rb_enc_codelen(int c, rb_encoding *enc)
#define parser_precise_mbclen()
static NODE * remove_begin(NODE *)
#define NEW_STRTERM(func, term, paren)
static const yytype_int16 yydefgoto[]
#define list_concat(h, t)
static struct parser_params * parser_new(void)
int onig_foreach_name(regex_t *reg, int(*func)(const UChar *, const UChar *, int, int *, regex_t *, void *), void *arg)
st_table * st_init_table_with_size(const struct st_hash_type *, st_index_t)
#define NEW_IASGN(v, val)
VALUE rb_get_coverages(void)
static NODE * arg_blk_pass(NODE *, NODE *)
static ID internal_id_gen(struct parser_params *)
void rb_bug(const char *fmt,...)
#define NEW_DASGN_CURR(v, val)
void rb_enc_copy(VALUE obj1, VALUE obj2)
static NODE * logop_gen(struct parser_params *, enum node_type, NODE *, NODE *)
static const struct kwtable * reserved_word(const char *, unsigned int)
void rb_mark_tbl(struct st_table *)
int rb_is_class_name(VALUE name)
NODE * rb_parser_compile_file(volatile VALUE vparser, const char *f, VALUE file, int start)
static int comment_at_top(struct parser_params *parser)
#define RE_OPTION_ENCODING_IDX(o)
#define rb_gc_mark_locations(start, end)
size_t strlen(const char *)
#define assignable(id, node)
static size_t parser_memsize(const void *ptr)
VALUE parser_lex_nextline
VALUE rb_make_exception(int argc, VALUE *argv)
#define scan_oct(s, l, e)
const char * rb_obj_classname(VALUE)
#define IDSET_ATTRSET_FOR_SYNTAX
#define reg_compile(str, options)
static NODE * call_uni_op_gen(struct parser_params *, NODE *, ID)
int parser_ruby__end__seen
static void fixpos(NODE *, NODE *)
#define NEW_CALL(r, m, a)
int st_lookup(st_table *, st_data_t, st_data_t *)
void st_add_direct(st_table *, st_data_t, st_data_t)
static void reduce_nodes_gen(struct parser_params *, NODE **)
VALUE rb_str_buf_append(VALUE, VALUE)
static NODE * call_bin_op_gen(struct parser_params *, NODE *, ID, NODE *)
static int parser_tokadd_utf8(struct parser_params *parser, rb_encoding **encp, int string_literal, int symbol_literal, int regexp_literal)
int parser_compile_for_eval
int parser_token_info_enabled
#define NEW_OP_CDECL(v, op, val)
static NODE * new_const_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
static void parser_heredoc_restore(struct parser_params *parser, NODE *here)
#define rb_usascii_str_new2
static int yysyntax_error(YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
void rb_define_global_const(const char *, VALUE)
static NODE * gettable_gen(struct parser_params *, ID)
#define str_copy(_s, _p, _n)
void rb_gc_force_recycle(VALUE)
static struct symbols global_symbols
static YYSIZE_T yystrlen(char *yystr) const
VALUE rb_parser_end_seen_p(VALUE vparser)
struct token_info token_info
#define new_op_assign(lhs, op, rhs)
stack_type parser_cmdarg_stack
#define new_args(f, o, r, p, t)
VALUE rb_enc_from_encoding(rb_encoding *encoding)
#define token_info_push(token)
static VALUE debug_lines(const char *f)
#define rb_enc_isalnum(c, enc)
static int parser_here_document(struct parser_params *, NODE *)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
long(* rb_magic_comment_length_t)(struct parser_params *parser, const char *name, long len)
#define logop(type, node1, node2)
#define rb_enc_prev_char(s, p, e, enc)
VALUE rb_ary_push(VALUE ary, VALUE item)
static void yydestruct(char *yymsg, int yytype, YYSTYPE *yyvaluep, struct parser_params *parser) const
static NODE * evstr2dstr_gen(struct parser_params *, NODE *)
static int reg_named_capture_assign_iter(const OnigUChar *name, const OnigUChar *name_end, int back_num, int *back_refs, OnigRegex regex, void *arg0)
static void warn_unused_var(struct parser_params *parser, struct local_vars *local)
unsigned short int yytype_uint16
rb_encoding * rb_enc_compatible(VALUE str1, VALUE str2)
const struct kwtable * rb_reserved_word(const char *str, unsigned int len)
#define is_identchar(p, e, enc)
#define NEW_MATCH2(n1, n2)
VALUE op_sym[tLAST_OP_ID]
VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline)
VALUE rb_enc_str_new(const char *, long, rb_encoding *)
#define warn_balanced(op, syn)
#define match_op(node1, node2)
VALUE rb_funcall(VALUE, ID, int,...)
Calls a method.
static void ripper_init_eventids1_table(VALUE self)
#define reg_fragment_setenc(str, options)
static NODE * match_op_gen(struct parser_params *, NODE *, NODE *)
void rb_raise(VALUE exc, const char *fmt,...)
#define rb_warn4S(file, line, fmt, a)
static NODE * node_assign_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_enc_associate(VALUE obj, rb_encoding *enc)
static NODE * block_append_gen(struct parser_params *, NODE *, NODE *)
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
static NODE * newline_node(NODE *)
void rb_compile_warn(const char *file, int line, const char *fmt,...)
static NODE * range_op(struct parser_params *parser, NODE *node)
primary_value operation2 command_args prec tLOWEST
int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc)
VALUE rb_ary_new3(long n,...)
static void parser_pushback(struct parser_params *parser, int c)
static int lvar_defined_gen(struct parser_params *, ID)
void(* rb_magic_comment_setter_t)(struct parser_params *parser, const char *name, const char *val)
#define parser_is_identchar()
#define NEW_CVASGN(v, val)
static int parser_whole_match_p(struct parser_params *parser, const char *eos, long len, int indent)
#define RE_OPTION_ENCODING(e)
#define rb_backref_error(n)
#define NEW_OP_ASGN_OR(i, val)
static void parser_initialize(struct parser_params *parser)
#define ENCODING_IS_ASCII8BIT(obj)
static NODE * node_newnode(struct parser_params *, enum node_type, VALUE, VALUE, VALUE)
static const yytype_uint16 yyr1[]
ID rb_check_id(volatile VALUE *namep)
Returns ID for the given name if it is interned already, or 0.
ID rb_check_id_cstr(const char *ptr, long len, rb_encoding *enc)
static NODE * yycompile(struct parser_params *parser, const char *f, int line)
static ID * vtable_tblcpy(ID *buf, const struct vtable *src)
rb_encoding * rb_utf8_encoding(void)
static long parser_encode_length(struct parser_params *parser, const char *name, long len)
#define is_instance_id(id)
#define call_bin_op(recv, id, arg1)
#define rb_enc_isdigit(c, enc)
static enum node_type nodetype(NODE *node)
#define ENC_CODERANGE_BROKEN
VALUE rb_sym_all_symbols(void)
static VALUE lex_getline(struct parser_params *parser)
static NODE * ret_args_gen(struct parser_params *, NODE *)
VALUE rb_str_append(VALUE, VALUE)
static const yytype_int16 yytable[]
#define RUBY_DTRACE_PARSE_BEGIN(arg0, arg1)
#define NEW_CLASS(n, b, s)
int rb_enc_symname2_p(const char *name, long len, rb_encoding *enc)
VALUE rb_parser_set_yydebug(VALUE self, VALUE flag)
#define NEW_PRELUDE(p, b)
static int yylex(void *, void *)
#define ENCODING_GET(obj)
#define list_append(l, i)
NODE * parser_deferred_nodes
static int simple_re_meta(int c)
void rb_name_error(ID id, const char *fmt,...)
static int e_option_supplied(struct parser_params *parser)
static void block_dup_check_gen(struct parser_params *, NODE *, NODE *)
#define SPECIAL_PUNCT(idx)
#define nd_set_type(n, t)
static int vtable_size(const struct vtable *tbl)
static int assign_in_cond(struct parser_params *parser, NODE *node)
#define MEMZERO(p, type, n)
void rb_exc_raise(VALUE mesg)
#define NEW_UNLESS(c, t, e)
static NODE * list_append_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_usascii_str_new(const char *, long)
static rb_encoding * must_be_ascii_compatible(VALUE s)
int rb_is_const_id(ID id)
int rb_is_instance_id(ID id)
#define RUBY_DTRACE_PARSE_END(arg0, arg1)
struct RString::@63::@64 heap
static int parser_tokadd_string(struct parser_params *, int, int, int, long *, rb_encoding **)
int rb_is_method_name(VALUE name)
#define assignable_result(x)
#define NEW_OP_ASGN_AND(i, val)
static NODE * arg_concat_gen(struct parser_params *, NODE *, NODE *)
#define parser_warning(node, mesg)
static int parser_regx_options(struct parser_params *)
static void yy_symbol_value_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep, struct parser_params *parser)
enum lex_state_e parser_lex_state
#define whole_match_p(e, l, i)
VALUE parser_lex_lastline
NODE * rb_parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
#define set_yylval_literal(x)
static int parser_yylex(struct parser_params *parser)
static VALUE parser_str_new(const char *p, long n, rb_encoding *enc, int func, rb_encoding *enc0)
#define scan_hex(s, l, e)
static int dyna_in_block_gen(struct parser_params *)
static const yytype_uint16 yystos[]
int rb_char_to_option_kcode(int c, int *option, int *kcode)
static char * parser_tokspace(struct parser_params *parser, int n)
#define TypedData_Get_Struct(obj, type, data_type, sval)
void rb_compile_error_append(const char *fmt,...)
static void parser_free(void *ptr)
#define StringValuePtr(v)
#define literal_concat(h, t)
static int symbols_i(VALUE sym, ID value, VALUE ary)
const rb_data_type_t * parent
#define NEW_RESCUE(b, res, e)
static int parser_tokadd_escape(struct parser_params *parser, rb_encoding **encp)
static int dvar_curr_gen(struct parser_params *, ID)
VALUE rb_parser_encoding(VALUE vparser)
static const yytype_uint16 yyrline[]
struct parser_params * parser
#define NEW_NODE(t, a0, a1, a2)
#define yytable_value_is_error(yytable_value)
#define NEW_ENSURE(b, en)
RUBY_EXTERN VALUE rb_mKernel
char * ruby_strdup(const char *)
NODE * rb_compile_string(const char *f, VALUE s, int line)
static const yytype_uint16 yyprhs[]
static NODE * list_concat_gen(struct parser_params *, NODE *, NODE *)
int rb_ascii8bit_encindex(void)
static int is_global_name_punct(const char c)
#define is_attrset_id(id)
#define set_yylval_name(x)
#define IDSET_ATTRSET_FOR_INTERN
static char * parser_newtok(struct parser_params *parser)
static int vtable_included(const struct vtable *tbl, ID id)
#define block_dup_check(n1, n2)
void rb_define_const(VALUE, const char *, VALUE)
static NODE * arg_append_gen(struct parser_params *, NODE *, NODE *)
static void local_push_gen(struct parser_params *, int)
#define NEW_WHEN(c, t, e)
top_stmt escape_Qundef($1)
VALUE rb_define_class(const char *name, VALUE super)
Defines a top-level class.
ID rb_intern(const char *name)
#define heredoc_identifier()
static void parser_set_token_info(struct parser_params *parser, const char *name, const char *val)
#define new_const_op_assign(lhs, op, rhs)
static void parser_tokadd(struct parser_params *parser, int c)
static void parser_mark(void *ptr)
static void yy_reduce_print(YYSTYPE *yyvsp, int yyrule, struct parser_params *parser)
rb_atomic_t cnt[RUBY_NSIG]
#define lex_goto_eol(parser)
#define MBCLEN_CHARFOUND_P(ret)
NODE * rb_parser_append_print(VALUE vparser, NODE *node)
#define nd_set_line(n, l)
static void ripper_init_eventids1(void)
static void vtable_add(struct vtable *tbl, ID id)
char ary[RSTRING_EMBED_LEN_MAX+1]
static NODE * parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
#define flush_string_content(enc)
#define NEW_ARGS_AUX(r, b)
#define TypedData_Wrap_Struct(klass, data_type, sval)
static VALUE coverage(const char *f, int n)
#define tokadd_string(f, t, p, n, e)
static NODE * new_yield_gen(struct parser_params *, NODE *)
static VALUE lex_get_str(struct parser_params *parser, VALUE s)
static int rb_enc_symname_type(const char *name, long len, rb_encoding *enc, unsigned int allowed_atttset)
#define RUBY_FUNC_EXPORTED
VALUE rb_suppress_tracing(VALUE(*func)(VALUE), VALUE arg)
VALUE rb_enc_associate_index(VALUE obj, int idx)
int rb_parse_in_main(void)
static int parser_nextc(struct parser_params *parser)
const char * parser_lex_pend
static ID formal_argument_gen(struct parser_params *, ID)
static void void_expr_gen(struct parser_params *, NODE *)
#define ALLOCA_N(type, n)
static NODE * dsym_node_gen(struct parser_params *, NODE *)
#define ENC_CODERANGE_UNKNOWN
void rb_gc_mark_symbols(void)
static ID intern_str(VALUE str)
#define YY_REDUCE_PRINT(Rule)
NODE * rb_parser_while_loop(VALUE vparser, NODE *node, int chop, int split)
NODE * rb_compile_cstr(const char *f, const char *s, int len, int line)
token_info * parser_token_info
static void magic_comment_encoding(struct parser_params *parser, const char *name, const char *val)
static char * yystpcpy(char *yydest, const char *yysrc)
VALUE rb_str_buf_cat(VALUE, const char *, long)
void * rb_parser_malloc(struct parser_params *parser, size_t size)
static int parser_peek_variable_name(struct parser_params *parser)
#define NEW_LASGN(v, val)
static VALUE yycompile0(VALUE arg)
#define mixed_escape(beg, enc1, enc2)
VALUE rb_obj_as_string(VALUE)
#define set_yylval_num(x)
static ID register_symid_str(ID, VALUE)
#define NEW_OPT_ARG(i, v)
VALUE rb_hash_aset(VALUE, VALUE, VALUE)
int rb_dvar_defined(ID id)
static void dispose_string(VALUE str)
VALUE rb_str_resize(VALUE, long)
static NODE * aryset_gen(struct parser_params *, NODE *, NODE *)
int st_foreach(st_table *, int(*)(ANYARGS), st_data_t)
#define RUBY_DTRACE_PARSE_END_ENABLED()
static ID shadowing_lvar_gen(struct parser_params *, ID)
SSL_METHOD *(* func)(void)
int rb_symname_p(const char *name)
#define new_attr_op_assign(lhs, type, attr, op, rhs)
VALUE rb_thread_current(void)
static void yy_stack_print(yytype_int16 *yybottom, yytype_int16 *yytop)
#define token_info_pop(token)
static void dyna_pop_gen(struct parser_params *, const struct vtable *)
VALUE rb_range_new(VALUE, VALUE, int)
static NODE * new_evstr_gen(struct parser_params *, NODE *)
VALUE rb_sprintf(const char *format,...)
#define rb_enc_mbcput(c, buf, enc)
#define IS_lex_state_for(x, ls)
static void reg_fragment_setenc_gen(struct parser_params *, VALUE, int)
#define rb_node_newnode(type, a1, a2, a3)
static void set_file_encoding(struct parser_params *parser, const char *str, const char *send)
int rb_is_attrset_name(VALUE name)
#define NEW_DASGN(v, val)
int rb_enc_symname_p(const char *name, rb_encoding *enc)
#define NEW_POSTARG(i, v)
#define CONST_ID(var, str)
static const struct magic_comment magic_comments[]
static int parser_parse_string(struct parser_params *, NODE *)
#define rb_warningS(fmt, a)
static NODE * new_args_tail_gen(struct parser_params *, NODE *, ID, ID)
static int dvar_defined_gen(struct parser_params *, ID, int)
int rb_is_local_id(ID id)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
static int local_id_gen(struct parser_params *, ID)
unsigned char buf[MIME_BUF_SIZE]
VALUE rb_assoc_new(VALUE car, VALUE cdr)
static void Init_id(void)
rb_encoding * rb_usascii_encoding(void)
static void rb_backref_error_gen(struct parser_params *, NODE *)
unsigned char yytype_uint8
static const yytype_int16 yyrhs[]
static void arg_ambiguous_gen(struct parser_params *parser)
#define heredoc_restore(n)
static void parser_prepare(struct parser_params *parser)
static NODE * cond_gen(struct parser_params *, NODE *)
static int options(unsigned char *cp)
#define NEW_UNTIL(c, b, n)
static const char *const yytname[]
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
#define NEW_MATCH3(r, n2)
VALUE rb_str_buf_new(long)
stack_type parser_cond_stack
static void ripper_init_eventids2(void)
int rb_const_defined_at(VALUE, ID)
static void dyna_pop_1(struct parser_params *parser)
static int parser_read_escape(struct parser_params *parser, int flags, rb_encoding **encp)
static int parser_heredoc_identifier(struct parser_params *parser)
static int value_expr_gen(struct parser_params *, NODE *)
int rb_is_global_id(ID id)
static int reg_fragment_check_gen(struct parser_params *, VALUE, int)
static const yytype_int16 yycheck[]
VALUE rb_attr_get(VALUE, ID)
#define rb_enc_ispunct(c, enc)
VALUE rb_ensure(VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*e_proc)(ANYARGS), VALUE data2)
#define NEW_RESBODY(a, ex, n)
static NODE * new_attr_op_assign_gen(struct parser_params *parser, NODE *lhs, ID attr, ID op, NODE *rhs)
#define set_yylval_str(x)
VALUE rb_reg_check_preprocess(VALUE)
expr ripper_intern("and")
static int is_static_content(NODE *node)
RUBY_EXTERN VALUE rb_cString
#define RUBY_DTRACE_PARSE_BEGIN_ENABLED()
static const yytype_int16 yypgoto[]
static int arg_var_gen(struct parser_params *, ID)
static int literal_concat0(struct parser_params *, VALUE, VALUE)
static ID * local_tbl_gen(struct parser_params *)
VALUE rb_vsprintf(const char *, va_list)
#define reg_named_capture_assign(regexp, match)
#define MEMCPY(p1, p2, type, n)
static int parser_yyerror(struct parser_params *, const char *)
#define NEW_GASGN(v, val)
static void warning_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
#define NEW_ARGSPUSH(a, b)
int rb_is_const_name(VALUE name)
#define is_asgn_or_id(id)
static void parser_tokaddmbc(struct parser_params *parser, int c, rb_encoding *enc)
static void yy_symbol_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep, struct parser_params *parser)
static NODE * attrset_gen(struct parser_params *, NODE *, ID)
int rb_is_local_name(VALUE name)
const struct vtable * vars
static VALUE reg_compile_gen(struct parser_params *, VALUE, int)
VALUE rb_str_cat(VALUE, const char *, long)
#define ENC_CODERANGE_7BIT
rb_encoding * rb_enc_get(VALUE obj)
#define NEW_WHILE(c, b, n)
#define NEW_DEFS(r, i, a, d)
void rb_gc_mark_parser(void)
static const yytype_uint8 yytranslate[]
#define ADD2HEAP(n, c, p)
static int is_private_local_id(ID name)
static void no_blockarg(struct parser_params *parser, NODE *node)
static void local_pop_gen(struct parser_params *)
void rb_parser_free(struct parser_params *parser, void *ptr)
#define read_escape(flags, e)
static NODE * literal_concat_gen(struct parser_params *, NODE *, NODE *)
#define parser_warn(node, mesg)
ID rb_intern_str(VALUE str)
VALUE rb_external_str_new_with_enc(const char *ptr, long len, rb_encoding *)
void rb_set_errinfo(VALUE err)
#define rb_enc_isspace(c, enc)
NODE * parser_lex_strterm
top_stmts dispatch0(stmts_new)
#define NEW_ATTRASGN(r, m, a)
static int token_info_get_column(struct parser_params *parser, const char *token)
static const struct st_hash_type symhash
#define node_assign(node1, node2)
static void void_stmts_gen(struct parser_params *, NODE *)
static int local_var_gen(struct parser_params *, ID)
static int token_info_has_nonspaces(struct parser_params *parser, const char *token)
st_index_t rb_str_hash(VALUE)
#define NEW_OP_ASGN2(r, i, o, val)
#define YYSTACK_ALLOC_MAXIMUM
static const rb_data_type_t parser_data_type
void rb_compile_warning(const char *file, int line, const char *fmt,...)
RUBY_EXTERN VALUE rb_cObject
static const yytype_uint16 yydefact[]
static NODE * new_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
#define parser_encoding_name()
static const yytype_int16 yypact[]
static VALUE lex_io_gets(struct parser_params *parser, VALUE io)
struct rb_encoding_entry * list
void * rb_parser_calloc(struct parser_params *parser, size_t nelem, size_t size)
#define STRNCASECMP(s1, s2, n)
rb_encoding * rb_filesystem_encoding(void)
VALUE rb_make_backtrace(void)
static void new_bv_gen(struct parser_params *, ID)
static NODE * negate_lit(NODE *)
static void fixup_nodes(NODE **)
#define STR_NEW3(p, n, e, func)
static const char * magic_comment_marker(const char *str, long len)
#define NEW_OP_ASGN1(p, id, a)
static unsigned int hash(const char *str, unsigned int len)
static int parser_magic_comment(struct parser_params *parser, const char *str, long len)
#define IS_LABEL_POSSIBLE()
VALUE rb_ary_new2(long capa)
static const char id_type_names[][9]
VALUE rb_str_new(const char *, long)
const char * parser_lex_pbeg
int rb_is_class_id(ID id)
VALUE rb_parser_new(void)
static void parser_set_encode(struct parser_params *parser, const char *name)
#define call_uni_op(recv, id)
#define NEW_CDECL(v, val, path)
static int literal_node(NODE *node)
#define set_yylval_node(x)
const char * parser_lex_p
static int parser_tok_hex(struct parser_params *parser, size_t *numlen)
#define RE_OPTION_ENCODING_NONE(o)
#define rb_enc_asciicompat(enc)
#define dvar_defined_get(id)
int rb_is_instance_name(VALUE name)
int parser_ruby_sourceline
const char * rb_id2name(ID id)
#define ruby_eval_tree_begin
#define formal_argument(id)
#define rb_enc_isupper(c, enc)
static int nodeline(NODE *node)
#define dispatch_heredoc_end()
static const yytype_uint8 yyr2[]
#define YY_STACK_PRINT(Bottom, Top)
#define rb_enc_isascii(c, enc)
int rb_str_hash_cmp(VALUE, VALUE)
static NODE * cond0(struct parser_params *, NODE *)
rb_encoding * rb_ascii8bit_encoding(void)
int rb_is_junk_name(VALUE name)
int rb_enc_find_index(const char *name)
static NODE * splat_array(NODE *)
static struct vtable * vtable_alloc(struct vtable *prev)
RUBY_FUNC_EXPORTED const unsigned int ruby_global_name_punct_bits[(0x7e-0x20+31)/32]
#define RSTRING_GETMEM(str, ptrvar, lenvar)
ID rb_intern3(const char *name, long len, rb_encoding *enc)
#define attrset(node, id)
#define mixed_error(enc1, enc2)
static ID register_symid(ID, const char *, long, rb_encoding *)
#define NEW_DEFN(i, a, d, p)
static const struct vtable * dyna_push_gen(struct parser_params *)
void * rb_parser_realloc(struct parser_params *parser, void *ptr, size_t size)
#define shadowing_lvar(name)
st_table * st_init_numtable_with_size(st_index_t)
VALUE rb_cstr_to_inum(const char *str, int base, int badcheck)
#define reg_fragment_check(str, options)
int rb_parse_in_eval(void)
#define ENCODING_SET(obj, i)
int rb_memcicmp(const void *, const void *, long)
ID rb_intern2(const char *name, long len)
NODE * rb_compile_file(const char *f, VALUE file, int start)
static int is_special_global_name(const char *m, const char *e, rb_encoding *enc)
static NODE * assignable_gen(struct parser_params *, ID, NODE *)
VALUE rb_parser_get_yydebug(VALUE self)
VALUE(* parser_lex_gets)(struct parser_params *, VALUE)
#define rb_enc_isalpha(c, enc)
NODE * rb_parser_compile_cstr(volatile VALUE vparser, const char *f, const char *s, int len, int line)
static int rb_str_symname_type(VALUE name, unsigned int allowed_atttset)
VALUE rb_check_string_type(VALUE)
#define REALLOC_N(var, type, n)
#define yypact_value_is_default(yystate)
int rb_enc_str_coderange(VALUE)
int rb_local_defined(ID id)
NODE * parser_eval_tree_begin
static int match(VALUE str, VALUE pat, VALUE hash, int(*cb)(VALUE, VALUE))
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
static void warn_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
#define block_append(h, t)
static void vtable_free(struct vtable *tbl)
#define RTYPEDDATA_TYPE(v)
unsigned long ruby_scan_oct(const char *, size_t, size_t *)
#define tokaddmbc(c, enc)
static void ripper_init_eventids2_table(VALUE self)
VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc)
static int sym_check_asciionly(VALUE str)
rb_encoding * rb_enc_from_index(int index)
#define aryset(node1, node2)
static NODE * reg_named_capture_assign_gen(struct parser_params *parser, VALUE regexp, NODE *match)
#define IS_AFTER_OPERATOR()
#define NEW_BLOCK_PASS(b)
static NODE * new_args_gen(struct parser_params *, NODE *, NODE *, ID, NODE *, NODE *)
int rb_is_global_name(VALUE name)
static int parser_tokadd_mbchar(struct parser_params *parser, int c)