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) 242 rb_bug(
"vtable_add: vtable is not allocated (%p)", (
void *)
tbl);
246 if (
tbl->pos ==
tbl->capa) {
247 tbl->capa =
tbl->capa * 2;
259 for (
i = 0;
i <
tbl->pos;
i++) {
260 if (
tbl->tbl[
i] ==
id) {
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 ruby_sourcefile_string (parser->parser_ruby_sourcefile_string) 401 #define current_enc (parser->enc) 402 #define yydebug (parser->parser_yydebug) 405 #define ruby_eval_tree (parser->parser_eval_tree) 406 #define ruby_eval_tree_begin (parser->parser_eval_tree_begin) 407 #define ruby_debug_lines (parser->debug_lines) 408 #define ruby_coverage (parser->coverage) 412 static int yylex(
void*,
void*);
414 static int yylex(
void*);
418 #define yyparse ruby_yyparse 421 #define rb_node_newnode(type, a1, a2, a3) node_newnode(parser, (type), (a1), (a2), (a3)) 424 #define cond(node) cond_gen(parser, (node)) 426 #define logop(type,node1,node2) logop_gen(parser, (type), (node1), (node2)) 434 #define value_expr(node) value_expr_gen(parser, (node) = remove_begin(node)) 435 #define void_expr0(node) void_expr_gen(parser, (node)) 436 #define void_expr(node) void_expr0((node) = remove_begin(node)) 438 #define void_stmts(node) void_stmts_gen(parser, (node)) 440 #define reduce_nodes(n) reduce_nodes_gen(parser,(n)) 442 #define block_dup_check(n1,n2) block_dup_check_gen(parser,(n1),(n2)) 445 #define block_append(h,t) block_append_gen(parser,(h),(t)) 447 #define list_append(l,i) list_append_gen(parser,(l),(i)) 449 #define list_concat(h,t) list_concat_gen(parser,(h),(t)) 451 #define arg_append(h,t) arg_append_gen(parser,(h),(t)) 453 #define arg_concat(h,t) arg_concat_gen(parser,(h),(t)) 455 #define literal_concat(h,t) literal_concat_gen(parser,(h),(t)) 458 #define new_evstr(n) new_evstr_gen(parser,(n)) 460 #define evstr2dstr(n) evstr2dstr_gen(parser,(n)) 464 #define call_bin_op(recv,id,arg1) call_bin_op_gen(parser, (recv),(id),(arg1)) 466 #define call_uni_op(recv,id) call_uni_op_gen(parser, (recv),(id)) 469 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t)) 471 #define new_args_tail(k,kr,b) new_args_tail_gen(parser, (k),(kr),(b)) 475 #define ret_args(node) ret_args_gen(parser, (node)) 478 #define new_yield(node) new_yield_gen(parser, (node)) 480 #define dsym_node(node) dsym_node_gen(parser, (node)) 483 #define gettable(id) gettable_gen(parser,(id)) 485 #define assignable(id,node) assignable_gen(parser, (id), (node)) 488 #define aryset(node1,node2) aryset_gen(parser, (node1), (node2)) 490 #define attrset(node,id) attrset_gen(parser, (node), (id)) 493 #define rb_backref_error(n) rb_backref_error_gen(parser,(n)) 495 #define node_assign(node1, node2) node_assign_gen(parser, (node1), (node2)) 499 #define new_attr_op_assign(lhs, type, attr, op, rhs) new_attr_op_assign_gen(parser, (lhs), (attr), (op), (rhs)) 501 #define new_const_op_assign(lhs, op, rhs) new_const_op_assign_gen(parser, (lhs), (op), (rhs)) 504 #define match_op(node1,node2) match_op_gen(parser, (node1), (node2)) 507 #define local_tbl() local_tbl_gen(parser) 512 #define reg_compile(str,options) reg_compile_gen(parser, (str), (options)) 514 #define reg_fragment_setenc(str,options) reg_fragment_setenc_gen(parser, (str), (options)) 516 #define reg_fragment_check(str,options) reg_fragment_check_gen(parser, (str), (options)) 518 #define reg_named_capture_assign(regexp,match) reg_named_capture_assign_gen(parser,(regexp),(match)) 520 #define get_id(id) (id) 521 #define get_value(val) (val) 523 #define value_expr(node) ((void)(node)) 524 #define remove_begin(node) (node) 525 #define rb_dvar_defined(id) 0 526 #define rb_local_defined(id) 0 527 static ID ripper_get_id(
VALUE);
528 #define get_id(id) ripper_get_id(id) 530 #define get_value(val) ripper_get_value(val) 532 #define assignable(lhs,node) assignable_gen(parser, (lhs)) 534 #define id_is_var(id) id_is_var_gen(parser, (id)) 536 #define node_assign(node1, node2) dispatch2(assign, (node1), (node2)) 540 #define new_attr_op_assign(lhs, type, attr, op, rhs) new_attr_op_assign_gen(parser, (lhs), (type), (attr), (op), (rhs)) 544 #define new_op_assign(lhs, op, rhs) new_op_assign_gen(parser, (lhs), (op), (rhs)) 547 #define formal_argument(id) formal_argument_gen(parser, (id)) 549 #define shadowing_lvar(name) shadowing_lvar_gen(parser, (name)) 551 #define new_bv(id) new_bv_gen(parser, (id)) 554 #define local_push(top) local_push_gen(parser,(top)) 556 #define local_pop() local_pop_gen(parser) 558 #define local_var(id) local_var_gen(parser, (id)) 560 #define arg_var(id) arg_var_gen(parser, (id)) 562 #define local_id(id) local_id_gen(parser, (id)) 564 #define internal_id() internal_id_gen(parser) 567 #define dyna_push() dyna_push_gen(parser) 569 #define dyna_pop(node) dyna_pop_gen(parser, (node)) 571 #define dyna_in_block() dyna_in_block_gen(parser) 572 #define dyna_var(id) local_var(id) 574 #define dvar_defined(id) dvar_defined_gen(parser, (id), 0) 575 #define dvar_defined_get(id) dvar_defined_gen(parser, (id), 1) 577 #define dvar_curr(id) dvar_curr_gen(parser, (id)) 580 #define lvar_defined(id) lvar_defined_gen(parser, (id)) 582 #define RE_OPTION_ONCE (1<<16) 583 #define RE_OPTION_ENCODING_SHIFT 8 584 #define RE_OPTION_ENCODING(e) (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT) 585 #define RE_OPTION_ENCODING_IDX(o) (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff) 586 #define RE_OPTION_ENCODING_NONE(o) ((o)&RE_OPTION_ARG_ENCODING_NONE) 587 #define RE_OPTION_MASK 0xff 588 #define RE_OPTION_ARG_ENCODING_NONE 32 590 #define NODE_STRTERM NODE_ZARRAY 591 #define NODE_HEREDOC NODE_ARRAY 592 #define SIGN_EXTEND(x,n) (((1<<(n)-1)^((x)&~(~0<<(n))))-(1<<(n)-1)) 593 #define nd_func u1.id 594 #if SIZEOF_SHORT == 2 595 #define nd_term(node) ((signed short)(node)->u2.id) 597 #define nd_term(node) SIGN_EXTEND((node)->u2.id, CHAR_BIT*2) 599 #define nd_paren(node) (char)((node)->u2.id >> CHAR_BIT*2) 600 #define nd_nest u3.cnt 605 #define RIPPER_VERSION "0.1.0" 618 #define dispatch0(n) ripper_dispatch0(parser, TOKEN_PASTE(ripper_id_, n)) 619 #define dispatch1(n,a) ripper_dispatch1(parser, TOKEN_PASTE(ripper_id_, n), (a)) 620 #define dispatch2(n,a,b) ripper_dispatch2(parser, TOKEN_PASTE(ripper_id_, n), (a), (b)) 621 #define dispatch3(n,a,b,c) ripper_dispatch3(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c)) 622 #define dispatch4(n,a,b,c,d) ripper_dispatch4(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d)) 623 #define dispatch5(n,a,b,c,d,e) ripper_dispatch5(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e)) 624 #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)) 626 #define yyparse ripper_yyparse 628 #define ripper_intern(s) ID2SYM(rb_intern(s)) 629 static VALUE ripper_id2sym(
ID);
631 #define ripper_id2sym(id) ((id) < 256 && rb_ispunct(id) ? \ 632 ID2SYM(id) : ripper_id2sym(id)) 635 #define arg_new() dispatch0(args_new) 636 #define arg_add(l,a) dispatch2(args_add, (l), (a)) 637 #define arg_add_star(l,a) dispatch2(args_add_star, (l), (a)) 638 #define arg_add_block(l,b) dispatch2(args_add_block, (l), (b)) 639 #define arg_add_optblock(l,b) ((b)==Qundef? (l) : dispatch2(args_add_block, (l), (b))) 640 #define bare_assoc(v) dispatch1(bare_assoc_hash, (v)) 641 #define arg_add_assocs(l,b) arg_add((l), bare_assoc(b)) 643 #define args2mrhs(a) dispatch1(mrhs_new_from_args, (a)) 644 #define mrhs_new() dispatch0(mrhs_new) 645 #define mrhs_add(l,a) dispatch2(mrhs_add, (l), (a)) 646 #define mrhs_add_star(l,a) dispatch2(mrhs_add_star, (l), (a)) 648 #define mlhs_new() dispatch0(mlhs_new) 649 #define mlhs_add(l,a) dispatch2(mlhs_add, (l), (a)) 650 #define mlhs_add_star(l,a) dispatch2(mlhs_add_star, (l), (a)) 652 #define params_new(pars, opts, rest, pars2, kws, kwrest, blk) \ 653 dispatch7(params, (pars), (opts), (rest), (pars2), (kws), (kwrest), (blk)) 655 #define blockvar_new(p,v) dispatch2(block_var, (p), (v)) 656 #define blockvar_add_star(l,a) dispatch2(block_var_add_star, (l), (a)) 657 #define blockvar_add_block(l,a) dispatch2(block_var_add_block, (l), (a)) 659 #define method_optarg(m,a) ((a)==Qundef ? (m) : dispatch2(method_add_arg,(m),(a))) 660 #define method_arg(m,a) dispatch2(method_add_arg,(m),(a)) 661 #define method_add_block(m,b) dispatch2(method_add_block, (m), (b)) 663 #define escape_Qundef(x) ((x)==Qundef ? Qnil : (x)) 670 return params_new(
f, o, r,
p, k, kr, escape_Qundef(b));
672 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t)) 679 #define new_args_tail(k,kr,b) new_args_tail_gen(parser, (k),(kr),(b)) 687 # define ifndef_ripper(x) (x) 690 # define ifndef_ripper(x) 694 # define rb_warn0(fmt) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt)) 695 # define rb_warnI(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a)) 696 # define rb_warnS(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a)) 697 # define rb_warn4S(file,line,fmt,a) rb_compile_warn((file), (line), (fmt), (a)) 698 # define rb_warning0(fmt) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt)) 699 # define rb_warningS(fmt,a) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt), (a)) 701 # define rb_warn0(fmt) ripper_warn0(parser, (fmt)) 702 # define rb_warnI(fmt,a) ripper_warnI(parser, (fmt), (a)) 703 # define rb_warnS(fmt,a) ripper_warnS(parser, (fmt), (a)) 704 # define rb_warn4S(file,line,fmt,a) ripper_warnS(parser, (fmt), (a)) 705 # define rb_warning0(fmt) ripper_warning0(parser, (fmt)) 706 # define rb_warningS(fmt,a) ripper_warningS(parser, (fmt), (a)) 707 static void ripper_warn0(
struct parser_params*,
const char*);
708 static void ripper_warnI(
struct parser_params*,
const char*,
int);
709 static void ripper_warnS(
struct parser_params*,
const char*,
const char*);
710 static void ripper_warning0(
struct parser_params*,
const char*);
711 static void ripper_warningS(
struct parser_params*,
const char*,
const char*);
715 static void ripper_compile_error(
struct parser_params*,
const char *fmt, ...);
716 # define rb_compile_error ripper_compile_error 717 # define compile_error ripper_compile_error 718 # define PARSER_ARG parser, 720 # define rb_compile_error rb_compile_error_with_enc 721 # define compile_error parser->nerr++,rb_compile_error_with_enc 722 # define PARSER_ARG ruby_sourcefile, ruby_sourceline, current_enc, 730 #define YYMAXDEPTH 10000 737 #define token_info_push(token) (RTEST(ruby_verbose) ? token_info_push(parser, (token)) : (void)0) 738 #define token_info_pop(token) (RTEST(ruby_verbose) ? token_info_pop(parser, (token)) : (void)0) 740 #define token_info_push(token) 741 #define token_info_pop(token) 754 #ifdef YYERROR_VERBOSE 755 # undef YYERROR_VERBOSE 756 # define YYERROR_VERBOSE 1 758 # define YYERROR_VERBOSE 0 762 #ifndef YYTOKEN_TABLE 763 # define YYTOKEN_TABLE 0 891 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 909 # define YYSTYPE_IS_TRIVIAL 1 910 # define yystype YYSTYPE 911 # define YYSTYPE_IS_DECLARED 1 933 #elif (defined __STDC__ || defined __C99__FUNC__ \ 934 || defined __cplusplus || defined _MSC_VER) 953 # ifdef __SIZE_TYPE__ 954 # define YYSIZE_T __SIZE_TYPE__ 955 # elif defined size_t 956 # define YYSIZE_T size_t 957 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 958 || defined __cplusplus || defined _MSC_VER) 960 # define YYSIZE_T size_t 962 # define YYSIZE_T unsigned int 966 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) 969 # if defined YYENABLE_NLS && YYENABLE_NLS 971 # include <libintl.h> 972 # define YY_(msgid) dgettext ("bison-runtime", msgid) 976 # define YY_(msgid) msgid 981 #if ! defined lint || defined __GNUC__ 982 # define YYUSE(e) ((void) (e)) 991 #if (defined __STDC__ || defined __C99__FUNC__ \ 992 || defined __cplusplus || defined _MSC_VER) 1005 #if ! defined yyoverflow || YYERROR_VERBOSE 1009 # ifdef YYSTACK_USE_ALLOCA 1010 # if YYSTACK_USE_ALLOCA 1012 # define YYSTACK_ALLOC __builtin_alloca 1013 # elif defined __BUILTIN_VA_ARG_INCR 1014 # include <alloca.h> 1016 # define YYSTACK_ALLOC __alloca 1017 # elif defined _MSC_VER 1018 # include <malloc.h> 1019 # define alloca _alloca 1021 # define YYSTACK_ALLOC alloca 1022 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 1023 || defined __cplusplus || defined _MSC_VER) 1024 # include <stdlib.h> 1025 # ifndef EXIT_SUCCESS 1026 # define EXIT_SUCCESS 0 1033 # ifdef YYSTACK_ALLOC 1035 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0)) 1036 # ifndef YYSTACK_ALLOC_MAXIMUM 1041 # define YYSTACK_ALLOC_MAXIMUM 4032 1044 # define YYSTACK_ALLOC YYMALLOC 1045 # define YYSTACK_FREE YYFREE 1046 # ifndef YYSTACK_ALLOC_MAXIMUM 1047 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 1049 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 1050 && ! ((defined YYMALLOC || defined malloc) \ 1051 && (defined YYFREE || defined free))) 1052 # include <stdlib.h> 1053 # ifndef EXIT_SUCCESS 1054 # define EXIT_SUCCESS 0 1058 # define YYMALLOC malloc 1059 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 1060 || defined __cplusplus || defined _MSC_VER) 1065 # define YYFREE free 1066 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 1067 || defined __cplusplus || defined _MSC_VER) 1075 #if (! defined yyoverflow \ 1076 && (! defined __cplusplus \ 1077 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 1087 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 1091 # define YYSTACK_BYTES(N) \ 1092 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ 1093 + YYSTACK_GAP_MAXIMUM) 1095 # define YYCOPY_NEEDED 1 1102 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 1105 YYSIZE_T yynewbytes; \ 1106 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 1107 Stack = &yyptr->Stack_alloc; \ 1108 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 1109 yyptr += yynewbytes / sizeof (*yyptr); \ 1115 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED 1119 # if defined __GNUC__ && 1 < __GNUC__ 1120 # define YYCOPY(To, From, Count) \ 1121 __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 1123 # define YYCOPY(To, From, Count) \ 1127 for (yyi = 0; yyi < (Count); yyi++) \ 1128 (To)[yyi] = (From)[yyi]; \ 1138 #define YYLAST 10700 1141 #define YYNTOKENS 142 1145 #define YYNRULES 620 1147 #define YYNSTATES 1057 1150 #define YYUNDEFTOK 2 1151 #define YYMAXUTOK 352 1153 #define YYTRANSLATE(YYX) \ 1154 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 1159 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1160 141, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1161 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1162 2, 2, 140, 127, 2, 2, 2, 125, 120, 2,
1163 136, 137, 123, 121, 134, 122, 133, 124, 2, 2,
1164 2, 2, 2, 2, 2, 2, 2, 2, 115, 139,
1165 117, 113, 116, 114, 2, 2, 2, 2, 2, 2,
1166 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1167 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1168 2, 132, 2, 138, 119, 2, 135, 2, 2, 2,
1169 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1170 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1171 2, 2, 2, 130, 118, 131, 128, 2, 79, 80,
1172 66, 67, 68, 2, 69, 83, 84, 74, 73, 70,
1173 71, 72, 77, 78, 81, 82, 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, 2, 2, 2, 2,
1184 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1185 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1186 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1187 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1188 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1189 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1190 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1191 65, 75, 76, 85, 86, 87, 88, 89, 90, 91,
1192 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1193 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1202 0, 0, 3, 4, 7, 10, 12, 14, 18, 21,
1203 23, 24, 30, 35, 38, 40, 42, 46, 49, 51,
1204 52, 58, 59, 64, 68, 72, 76, 79, 83, 87,
1205 91, 95, 99, 104, 106, 110, 114, 121, 127, 133,
1206 139, 145, 149, 153, 157, 161, 163, 167, 171, 173,
1207 177, 181, 185, 188, 190, 192, 194, 196, 198, 203,
1208 204, 210, 212, 215, 219, 224, 230, 235, 241, 244,
1209 247, 250, 253, 256, 258, 262, 264, 268, 270, 273,
1210 277, 283, 286, 291, 294, 299, 301, 305, 307, 311,
1211 314, 318, 320, 324, 326, 328, 333, 337, 341, 345,
1212 349, 352, 354, 356, 358, 363, 367, 371, 375, 379,
1213 382, 384, 386, 388, 391, 393, 397, 399, 401, 403,
1214 405, 407, 409, 411, 413, 415, 417, 418, 423, 425,
1215 427, 429, 431, 433, 435, 437, 439, 441, 443, 445,
1216 447, 449, 451, 453, 455, 457, 459, 461, 463, 465,
1217 467, 469, 471, 473, 475, 477, 479, 481, 483, 485,
1218 487, 489, 491, 493, 495, 497, 499, 501, 503, 505,
1219 507, 509, 511, 513, 515, 517, 519, 521, 523, 525,
1220 527, 529, 531, 533, 535, 537, 539, 541, 543, 545,
1221 547, 549, 551, 553, 555, 557, 559, 561, 563, 565,
1222 569, 575, 579, 585, 592, 598, 604, 610, 616, 621,
1223 625, 629, 633, 637, 641, 645, 649, 653, 657, 662,
1224 667, 670, 673, 677, 681, 685, 689, 693, 697, 701,
1225 705, 709, 713, 717, 721, 725, 728, 731, 735, 739,
1226 743, 747, 748, 753, 760, 762, 764, 766, 769, 774,
1227 777, 781, 783, 785, 787, 789, 792, 797, 800, 802,
1228 805, 808, 813, 815, 816, 819, 822, 825, 827, 829,
1229 832, 836, 841, 845, 850, 853, 855, 857, 859, 861,
1230 863, 865, 867, 869, 871, 873, 875, 876, 881, 882,
1231 886, 887, 888, 894, 898, 902, 905, 909, 913, 915,
1232 920, 924, 926, 927, 934, 939, 943, 946, 948, 951,
1233 954, 961, 968, 969, 970, 978, 979, 980, 988, 994,
1234 999, 1000, 1001, 1011, 1012, 1019, 1020, 1021, 1030, 1031,
1235 1037, 1038, 1045, 1046, 1047, 1057, 1059, 1061, 1063, 1065,
1236 1067, 1069, 1071, 1073, 1075, 1077, 1079, 1081, 1083, 1085,
1237 1087, 1089, 1091, 1093, 1096, 1098, 1100, 1102, 1108, 1110,
1238 1113, 1115, 1117, 1119, 1123, 1125, 1129, 1131, 1136, 1143,
1239 1147, 1153, 1156, 1161, 1163, 1167, 1172, 1175, 1178, 1180,
1240 1183, 1184, 1191, 1200, 1205, 1212, 1217, 1220, 1227, 1230,
1241 1235, 1242, 1245, 1250, 1253, 1258, 1260, 1262, 1264, 1268,
1242 1270, 1275, 1277, 1282, 1284, 1288, 1290, 1292, 1293, 1294,
1243 1295, 1301, 1306, 1308, 1312, 1316, 1317, 1323, 1326, 1331,
1244 1337, 1343, 1346, 1347, 1353, 1354, 1360, 1364, 1365, 1370,
1245 1371, 1376, 1379, 1381, 1386, 1387, 1393, 1394, 1400, 1406,
1246 1408, 1410, 1417, 1419, 1421, 1423, 1425, 1428, 1430, 1433,
1247 1435, 1437, 1439, 1441, 1443, 1445, 1447, 1450, 1454, 1458,
1248 1462, 1466, 1470, 1471, 1475, 1477, 1480, 1484, 1488, 1489,
1249 1493, 1497, 1501, 1505, 1509, 1510, 1514, 1515, 1519, 1520,
1250 1523, 1524, 1527, 1528, 1531, 1533, 1534, 1538, 1539, 1540,
1251 1541, 1548, 1550, 1552, 1554, 1556, 1559, 1561, 1563, 1565,
1252 1567, 1571, 1573, 1575, 1578, 1581, 1583, 1585, 1587, 1589,
1253 1591, 1593, 1595, 1597, 1599, 1601, 1603, 1605, 1607, 1609,
1254 1611, 1613, 1615, 1617, 1619, 1620, 1625, 1628, 1632, 1635,
1255 1640, 1643, 1646, 1648, 1651, 1652, 1659, 1668, 1673, 1680,
1256 1685, 1692, 1695, 1700, 1707, 1710, 1715, 1718, 1723, 1725,
1257 1726, 1728, 1730, 1732, 1734, 1736, 1738, 1740, 1744, 1746,
1258 1750, 1753, 1756, 1758, 1762, 1764, 1768, 1770, 1772, 1775,
1259 1777, 1781, 1785, 1787, 1791, 1793, 1797, 1799, 1801, 1804,
1260 1806, 1808, 1810, 1813, 1816, 1818, 1820, 1821, 1826, 1828,
1261 1831, 1833, 1837, 1841, 1844, 1847, 1849, 1851, 1853, 1855,
1262 1857, 1859, 1861, 1863, 1865, 1867, 1869, 1871, 1872, 1874,
1263 1875, 1877, 1880, 1883, 1884, 1886, 1888, 1890, 1892, 1894,
1270 143, 0, -1, -1, 144, 145, -1, 146, 333, -1,
1271 340, -1, 147, -1, 146, 339, 147, -1, 1, 147,
1272 -1, 154, -1, -1, 47, 148, 130, 145, 131, -1,
1273 150, 262, 230, 265, -1, 151, 333, -1, 340, -1,
1274 152, -1, 151, 339, 152, -1, 1, 154, -1, 154,
1275 -1, -1, 47, 153, 130, 145, 131, -1, -1, 45,
1276 177, 155, 177, -1, 45, 54, 54, -1, 45, 54,
1277 64, -1, 45, 54, 63, -1, 6, 178, -1, 154,
1278 40, 158, -1, 154, 41, 158, -1, 154, 42, 158,
1279 -1, 154, 43, 158, -1, 154, 44, 154, -1, 48,
1280 130, 150, 131, -1, 156, -1, 165, 113, 159, -1,
1281 297, 87, 159, -1, 215, 132, 188, 336, 87, 159,
1282 -1, 215, 133, 52, 87, 159, -1, 215, 133, 56,
1283 87, 159, -1, 215, 85, 56, 87, 159, -1, 215,
1284 85, 52, 87, 159, -1, 298, 87, 159, -1, 172,
1285 113, 195, -1, 165, 113, 184, -1, 165, 113, 195,
1286 -1, 157, -1, 172, 113, 159, -1, 172, 113, 156,
1287 -1, 159, -1, 157, 37, 157, -1, 157, 38, 157,
1288 -1, 39, 334, 157, -1, 127, 159, -1, 182, -1,
1289 157, -1, 164, -1, 160, -1, 251, -1, 251, 332,
1290 330, 190, -1, -1, 94, 162, 238, 150, 131, -1,
1291 329, -1, 163, 190, -1, 163, 190, 161, -1, 215,
1292 133, 330, 190, -1, 215, 133, 330, 190, 161, -1,
1293 215, 85, 330, 190, -1, 215, 85, 330, 190, 161,
1294 -1, 32, 190, -1, 31, 190, -1, 30, 189, -1,
1295 21, 189, -1, 22, 189, -1, 167, -1, 89, 166,
1296 335, -1, 167, -1, 89, 166, 335, -1, 169, -1,
1297 169, 168, -1, 169, 95, 171, -1, 169, 95, 171,
1298 134, 170, -1, 169, 95, -1, 169, 95, 134, 170,
1299 -1, 95, 171, -1, 95, 171, 134, 170, -1, 95,
1300 -1, 95, 134, 170, -1, 171, -1, 89, 166, 335,
1301 -1, 168, 134, -1, 169, 168, 134, -1, 168, -1,
1302 170, 134, 168, -1, 294, -1, 295, -1, 215, 132,
1303 188, 336, -1, 215, 133, 52, -1, 215, 85, 52,
1304 -1, 215, 133, 56, -1, 215, 85, 56, -1, 86,
1305 56, -1, 298, -1, 294, -1, 295, -1, 215, 132,
1306 188, 336, -1, 215, 133, 52, -1, 215, 85, 52,
1307 -1, 215, 133, 56, -1, 215, 85, 56, -1, 86,
1308 56, -1, 298, -1, 52, -1, 56, -1, 86, 173,
1309 -1, 173, -1, 215, 85, 173, -1, 52, -1, 56,
1310 -1, 53, -1, 180, -1, 181, -1, 175, -1, 290,
1311 -1, 176, -1, 292, -1, 177, -1, -1, 178, 134,
1312 179, 177, -1, 118, -1, 119, -1, 120, -1, 69,
1313 -1, 70, -1, 71, -1, 77, -1, 78, -1, 116,
1314 -1, 73, -1, 117, -1, 74, -1, 72, -1, 83,
1315 -1, 84, -1, 121, -1, 122, -1, 123, -1, 95,
1316 -1, 124, -1, 125, -1, 68, -1, 96, -1, 127,
1317 -1, 128, -1, 66, -1, 67, -1, 81, -1, 82,
1318 -1, 135, -1, 49, -1, 50, -1, 51, -1, 47,
1319 -1, 48, -1, 45, -1, 37, -1, 7, -1, 21,
1320 -1, 16, -1, 3, -1, 5, -1, 46, -1, 26,
1321 -1, 15, -1, 14, -1, 10, -1, 9, -1, 36,
1322 -1, 20, -1, 25, -1, 4, -1, 22, -1, 34,
1323 -1, 39, -1, 38, -1, 23, -1, 8, -1, 24,
1324 -1, 30, -1, 33, -1, 32, -1, 13, -1, 35,
1325 -1, 6, -1, 17, -1, 31, -1, 11, -1, 12,
1326 -1, 18, -1, 19, -1, 172, 113, 182, -1, 172,
1327 113, 182, 44, 182, -1, 297, 87, 182, -1, 297,
1328 87, 182, 44, 182, -1, 215, 132, 188, 336, 87,
1329 182, -1, 215, 133, 52, 87, 182, -1, 215, 133,
1330 56, 87, 182, -1, 215, 85, 52, 87, 182, -1,
1331 215, 85, 56, 87, 182, -1, 86, 56, 87, 182,
1332 -1, 298, 87, 182, -1, 182, 79, 182, -1, 182,
1333 80, 182, -1, 182, 121, 182, -1, 182, 122, 182,
1334 -1, 182, 123, 182, -1, 182, 124, 182, -1, 182,
1335 125, 182, -1, 182, 68, 182, -1, 126, 59, 68,
1336 182, -1, 126, 60, 68, 182, -1, 66, 182, -1,
1337 67, 182, -1, 182, 118, 182, -1, 182, 119, 182,
1338 -1, 182, 120, 182, -1, 182, 69, 182, -1, 182,
1339 116, 182, -1, 182, 73, 182, -1, 182, 117, 182,
1340 -1, 182, 74, 182, -1, 182, 70, 182, -1, 182,
1341 71, 182, -1, 182, 72, 182, -1, 182, 77, 182,
1342 -1, 182, 78, 182, -1, 127, 182, -1, 128, 182,
1343 -1, 182, 83, 182, -1, 182, 84, 182, -1, 182,
1344 75, 182, -1, 182, 76, 182, -1, -1, 46, 334,
1345 183, 182, -1, 182, 114, 182, 334, 115, 182, -1,
1346 196, -1, 182, -1, 340, -1, 194, 337, -1, 194,
1347 134, 327, 337, -1, 327, 337, -1, 136, 188, 335,
1348 -1, 340, -1, 186, -1, 340, -1, 189, -1, 194,
1349 134, -1, 194, 134, 327, 134, -1, 327, 134, -1,
1350 164, -1, 194, 193, -1, 327, 193, -1, 194, 134,
1351 327, 193, -1, 192, -1, -1, 191, 189, -1, 97,
1352 184, -1, 134, 192, -1, 340, -1, 184, -1, 95,
1353 184, -1, 194, 134, 184, -1, 194, 134, 95, 184,
1354 -1, 194, 134, 184, -1, 194, 134, 95, 184, -1,
1355 95, 184, -1, 266, -1, 267, -1, 270, -1, 271,
1356 -1, 272, -1, 277, -1, 275, -1, 278, -1, 296,
1357 -1, 298, -1, 53, -1, -1, 216, 197, 149, 226,
1358 -1, -1, 90, 198, 335, -1, -1, -1, 90, 199,
1359 157, 200, 335, -1, 89, 150, 137, -1, 215, 85,
1360 56, -1, 86, 56, -1, 92, 185, 138, -1, 93,
1361 326, 131, -1, 30, -1, 31, 136, 189, 335, -1,
1362 31, 136, 335, -1, 31, -1, -1, 46, 334, 136,
1363 201, 157, 335, -1, 39, 136, 157, 335, -1, 39,
1364 136, 335, -1, 163, 257, -1, 252, -1, 252, 257,
1365 -1, 98, 243, -1, 217, 158, 227, 150, 229, 226,
1366 -1, 218, 158, 227, 150, 230, 226, -1, -1, -1,
1367 219, 202, 158, 228, 203, 150, 226, -1, -1, -1,
1368 220, 204, 158, 228, 205, 150, 226, -1, 221, 158,
1369 333, 260, 226, -1, 221, 333, 260, 226, -1, -1,
1370 -1, 222, 231, 25, 206, 158, 228, 207, 150, 226,
1371 -1, -1, 223, 174, 299, 208, 149, 226, -1, -1,
1372 -1, 223, 83, 157, 209, 338, 210, 149, 226, -1,
1373 -1, 224, 174, 211, 149, 226, -1, -1, 225, 175,
1374 212, 301, 149, 226, -1, -1, -1, 225, 324, 332,
1375 213, 175, 214, 301, 149, 226, -1, 21, -1, 22,
1376 -1, 23, -1, 24, -1, 196, -1, 7, -1, 11,
1377 -1, 12, -1, 18, -1, 19, -1, 16, -1, 20,
1378 -1, 3, -1, 4, -1, 5, -1, 10, -1, 338,
1379 -1, 13, -1, 338, 13, -1, 338, -1, 27, -1,
1380 230, -1, 14, 158, 227, 150, 229, -1, 340, -1,
1381 15, 150, -1, 172, -1, 165, -1, 306, -1, 89,
1382 234, 335, -1, 232, -1, 233, 134, 232, -1, 233,
1383 -1, 233, 134, 95, 306, -1, 233, 134, 95, 306,
1384 134, 233, -1, 233, 134, 95, -1, 233, 134, 95,
1385 134, 233, -1, 95, 306, -1, 95, 306, 134, 233,
1386 -1, 95, -1, 95, 134, 233, -1, 311, 134, 314,
1387 323, -1, 311, 323, -1, 314, 323, -1, 322, -1,
1388 134, 235, -1, -1, 308, 134, 317, 134, 320, 236,
1389 -1, 308, 134, 317, 134, 320, 134, 308, 236, -1,
1390 308, 134, 317, 236, -1, 308, 134, 317, 134, 308,
1391 236, -1, 308, 134, 320, 236, -1, 308, 134, -1,
1392 308, 134, 320, 134, 308, 236, -1, 308, 236, -1,
1393 317, 134, 320, 236, -1, 317, 134, 320, 134, 308,
1394 236, -1, 317, 236, -1, 317, 134, 308, 236, -1,
1395 320, 236, -1, 320, 134, 308, 236, -1, 235, -1,
1396 340, -1, 239, -1, 118, 240, 118, -1, 76, -1,
1397 118, 237, 240, 118, -1, 334, -1, 334, 139, 241,
1398 334, -1, 242, -1, 241, 134, 242, -1, 52, -1,
1399 305, -1, -1, -1, -1, 244, 245, 247, 246, 248,
1400 -1, 136, 304, 240, 137, -1, 304, -1, 111, 150,
1401 131, -1, 29, 150, 10, -1, -1, 28, 250, 238,
1402 150, 10, -1, 164, 249, -1, 251, 332, 330, 187,
1403 -1, 251, 332, 330, 187, 257, -1, 251, 332, 330,
1404 190, 249, -1, 163, 186, -1, -1, 215, 133, 330,
1405 253, 187, -1, -1, 215, 85, 330, 254, 186, -1,
1406 215, 85, 331, -1, -1, 215, 133, 255, 186, -1,
1407 -1, 215, 85, 256, 186, -1, 32, 186, -1, 32,
1408 -1, 215, 132, 188, 336, -1, -1, 130, 258, 238,
1409 150, 131, -1, -1, 26, 259, 238, 150, 10, -1,
1410 17, 194, 227, 150, 261, -1, 230, -1, 260, -1,
1411 8, 263, 264, 227, 150, 262, -1, 340, -1, 184,
1412 -1, 195, -1, 340, -1, 88, 172, -1, 340, -1,
1413 9, 150, -1, 340, -1, 293, -1, 290, -1, 292,
1414 -1, 268, -1, 62, -1, 269, -1, 268, 269, -1,
1415 100, 281, 110, -1, 101, 282, 110, -1, 102, 283,
1416 65, -1, 103, 140, 110, -1, 103, 273, 110, -1,
1417 -1, 273, 274, 140, -1, 284, -1, 274, 284, -1,
1418 105, 140, 110, -1, 105, 276, 110, -1, -1, 276,
1419 274, 140, -1, 104, 140, 110, -1, 104, 279, 110,
1420 -1, 106, 140, 110, -1, 106, 280, 110, -1, -1,
1421 279, 61, 140, -1, -1, 280, 61, 140, -1, -1,
1422 281, 284, -1, -1, 282, 284, -1, -1, 283, 284,
1423 -1, 61, -1, -1, 109, 285, 289, -1, -1, -1,
1424 -1, 107, 286, 287, 288, 150, 108, -1, 54, -1,
1425 55, -1, 57, -1, 298, -1, 99, 291, -1, 175,
1426 -1, 55, -1, 54, -1, 57, -1, 99, 282, 110,
1427 -1, 59, -1, 60, -1, 126, 59, -1, 126, 60,
1428 -1, 52, -1, 55, -1, 54, -1, 56, -1, 57,
1429 -1, 34, -1, 33, -1, 35, -1, 36, -1, 50,
1430 -1, 49, -1, 51, -1, 294, -1, 295, -1, 294,
1431 -1, 295, -1, 63, -1, 64, -1, 338, -1, -1,
1432 117, 300, 158, 338, -1, 1, 338, -1, 136, 304,
1433 335, -1, 304, 338, -1, 312, 134, 314, 323, -1,
1434 312, 323, -1, 314, 323, -1, 322, -1, 134, 302,
1435 -1, -1, 308, 134, 318, 134, 320, 303, -1, 308,
1436 134, 318, 134, 320, 134, 308, 303, -1, 308, 134,
1437 318, 303, -1, 308, 134, 318, 134, 308, 303, -1,
1438 308, 134, 320, 303, -1, 308, 134, 320, 134, 308,
1439 303, -1, 308, 303, -1, 318, 134, 320, 303, -1,
1440 318, 134, 320, 134, 308, 303, -1, 318, 303, -1,
1441 318, 134, 308, 303, -1, 320, 303, -1, 320, 134,
1442 308, 303, -1, 302, -1, -1, 56, -1, 55, -1,
1443 54, -1, 57, -1, 305, -1, 52, -1, 306, -1,
1444 89, 234, 335, -1, 307, -1, 308, 134, 307, -1,
1445 58, 184, -1, 58, 215, -1, 310, -1, 311, 134,
1446 310, -1, 309, -1, 312, 134, 309, -1, 68, -1,
1447 96, -1, 313, 52, -1, 313, -1, 52, 113, 184,
1448 -1, 52, 113, 215, -1, 316, -1, 317, 134, 316,
1449 -1, 315, -1, 318, 134, 315, -1, 123, -1, 95,
1450 -1, 319, 52, -1, 319, -1, 120, -1, 97, -1,
1451 321, 52, -1, 134, 322, -1, 340, -1, 296, -1,
1452 -1, 136, 325, 157, 335, -1, 340, -1, 327, 337,
1453 -1, 328, -1, 327, 134, 328, -1, 184, 88, 184,
1454 -1, 58, 184, -1, 96, 184, -1, 52, -1, 56,
1455 -1, 53, -1, 52, -1, 56, -1, 53, -1, 180,
1456 -1, 52, -1, 53, -1, 180, -1, 133, -1, 85,
1457 -1, -1, 339, -1, -1, 141, -1, 334, 137, -1,
1458 334, 138, -1, -1, 141, -1, 134, -1, 139, -1,
1459 141, -1, 338, -1, 339, 139, -1, -1
1465 0, 855, 855, 855, 886, 897, 906, 914, 922, 928,
1466 930, 929, 950, 983, 994, 1003, 1011, 1019, 1025, 1030,
1467 1029, 1050, 1050, 1058, 1066, 1077, 1087, 1095, 1104, 1113,
1468 1126, 1139, 1148, 1160, 1161, 1171, 1176, 1197, 1202, 1207,
1469 1217, 1222, 1232, 1241, 1250, 1259, 1262, 1271, 1283, 1284,
1470 1292, 1300, 1308, 1316, 1319, 1331, 1332, 1335, 1336, 1348,
1471 1347, 1369, 1379, 1388, 1401, 1410, 1422, 1431, 1443, 1452,
1472 1461, 1469, 1477, 1487, 1488, 1498, 1499, 1509, 1517, 1525,
1473 1533, 1542, 1550, 1559, 1567, 1576, 1584, 1595, 1596, 1606,
1474 1614, 1624, 1632, 1642, 1646, 1650, 1658, 1666, 1674, 1682,
1475 1694, 1704, 1716, 1725, 1734, 1742, 1750, 1758, 1766, 1779,
1476 1792, 1803, 1811, 1814, 1822, 1830, 1840, 1841, 1842, 1843,
1477 1848, 1859, 1860, 1863, 1871, 1874, 1882, 1882, 1892, 1893,
1478 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903,
1479 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913,
1480 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1924, 1924,
1481 1924, 1925, 1925, 1926, 1926, 1926, 1927, 1927, 1927, 1927,
1482 1928, 1928, 1928, 1928, 1929, 1929, 1929, 1930, 1930, 1930,
1483 1930, 1931, 1931, 1931, 1931, 1932, 1932, 1932, 1932, 1933,
1484 1933, 1933, 1933, 1934, 1934, 1934, 1934, 1935, 1935, 1938,
1485 1947, 1957, 1962, 1972, 1998, 2003, 2008, 2013, 2023, 2033,
1486 2044, 2058, 2072, 2080, 2088, 2096, 2104, 2112, 2120, 2129,
1487 2138, 2146, 2154, 2162, 2170, 2178, 2186, 2194, 2202, 2210,
1488 2218, 2226, 2234, 2242, 2253, 2261, 2269, 2277, 2285, 2293,
1489 2301, 2309, 2309, 2319, 2329, 2335, 2347, 2348, 2352, 2360,
1490 2370, 2380, 2381, 2384, 2385, 2386, 2390, 2398, 2408, 2417,
1491 2425, 2435, 2444, 2453, 2453, 2465, 2475, 2479, 2485, 2493,
1492 2501, 2515, 2531, 2545, 2560, 2570, 2571, 2572, 2573, 2574,
1493 2575, 2576, 2577, 2578, 2579, 2580, 2589, 2588, 2616, 2616,
1494 2625, 2629, 2624, 2638, 2646, 2654, 2662, 2675, 2683, 2691,
1495 2699, 2707, 2715, 2715, 2725, 2733, 2741, 2751, 2752, 2762,
1496 2766, 2778, 2790, 2790, 2790, 2801, 2801, 2801, 2812, 2823,
1497 2832, 2834, 2831, 2898, 2897, 2919, 2924, 2918, 2943, 2942,
1498 2964, 2963, 2986, 2987, 2986, 3007, 3015, 3023, 3031, 3041,
1499 3053, 3059, 3065, 3071, 3077, 3083, 3089, 3095, 3101, 3107,
1500 3117, 3123, 3128, 3129, 3136, 3141, 3144, 3145, 3158, 3159,
1501 3169, 3170, 3173, 3181, 3191, 3199, 3209, 3217, 3226, 3235,
1502 3243, 3251, 3260, 3272, 3280, 3291, 3295, 3299, 3303, 3309,
1503 3314, 3319, 3323, 3327, 3331, 3335, 3339, 3347, 3351, 3355,
1504 3359, 3363, 3367, 3371, 3375, 3379, 3385, 3386, 3392, 3401,
1505 3410, 3421, 3425, 3435, 3442, 3451, 3459, 3465, 3468, 3473,
1506 3465, 3489, 3497, 3507, 3511, 3518, 3517, 3538, 3554, 3563,
1507 3575, 3589, 3599, 3598, 3615, 3614, 3630, 3639, 3638, 3656,
1508 3655, 3672, 3680, 3688, 3703, 3702, 3722, 3721, 3742, 3754,
1509 3755, 3758, 3777, 3780, 3788, 3796, 3799, 3803, 3806, 3814,
1510 3817, 3818, 3826, 3829, 3846, 3847, 3848, 3858, 3868, 3895,
1511 3960, 3969, 3980, 3987, 3997, 4005, 4015, 4024, 4035, 4042,
1512 4060, 4069, 4079, 4088, 4099, 4106, 4117, 4124, 4139, 4146,
1513 4157, 4164, 4175, 4182, 4211, 4213, 4212, 4229, 4235, 4240,
1514 4228, 4259, 4267, 4275, 4283, 4286, 4297, 4298, 4299, 4300,
1515 4303, 4314, 4315, 4316, 4324, 4334, 4335, 4336, 4337, 4338,
1516 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4350, 4363, 4373,
1517 4381, 4391, 4392, 4395, 4404, 4403, 4412, 4424, 4434, 4442,
1518 4446, 4450, 4454, 4460, 4465, 4470, 4474, 4478, 4482, 4486,
1519 4490, 4494, 4498, 4502, 4506, 4510, 4514, 4518, 4522, 4527,
1520 4533, 4542, 4551, 4560, 4571, 4572, 4579, 4588, 4607, 4614,
1521 4627, 4639, 4651, 4659, 4676, 4684, 4700, 4701, 4704, 4709,
1522 4715, 4727, 4739, 4747, 4763, 4771, 4787, 4788, 4791, 4804,
1523 4815, 4816, 4819, 4836, 4840, 4850, 4860, 4860, 4889, 4890,
1524 4900, 4907, 4917, 4925, 4933, 4945, 4946, 4947, 4950, 4951,
1525 4952, 4953, 4956, 4957, 4958, 4961, 4966, 4973, 4974, 4977,
1526 4978, 4981, 4984, 4987, 4988, 4989, 4992, 4993, 4996, 4997,
1531 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE 1536 "\"end-of-input\"",
"error",
"$undefined",
"keyword_class",
1537 "keyword_module",
"keyword_def",
"keyword_undef",
"keyword_begin",
1538 "keyword_rescue",
"keyword_ensure",
"keyword_end",
"keyword_if",
1539 "keyword_unless",
"keyword_then",
"keyword_elsif",
"keyword_else",
1540 "keyword_case",
"keyword_when",
"keyword_while",
"keyword_until",
1541 "keyword_for",
"keyword_break",
"keyword_next",
"keyword_redo",
1542 "keyword_retry",
"keyword_in",
"keyword_do",
"keyword_do_cond",
1543 "keyword_do_block",
"keyword_do_LAMBDA",
"keyword_return",
1544 "keyword_yield",
"keyword_super",
"keyword_self",
"keyword_nil",
1545 "keyword_true",
"keyword_false",
"keyword_and",
"keyword_or",
1546 "keyword_not",
"modifier_if",
"modifier_unless",
"modifier_while",
1547 "modifier_until",
"modifier_rescue",
"keyword_alias",
"keyword_defined",
1548 "keyword_BEGIN",
"keyword_END",
"keyword__LINE__",
"keyword__FILE__",
1549 "keyword__ENCODING__",
"tIDENTIFIER",
"tFID",
"tGVAR",
"tIVAR",
1550 "tCONSTANT",
"tCVAR",
"tLABEL",
"tINTEGER",
"tFLOAT",
"tSTRING_CONTENT",
1551 "tCHAR",
"tNTH_REF",
"tBACK_REF",
"tREGEXP_END",
"\"unary+\"",
1552 "\"unary-\"",
"\"**\"",
"\"<=>\"",
"\"==\"",
"\"===\"",
"\"!=\"",
1553 "\">=\"",
"\"<=\"",
"\"&&\"",
"\"||\"",
"\"=~\"",
"\"!~\"",
"\"..\"",
1554 "\"...\"",
"\"[]\"",
"\"[]=\"",
"\"<<\"",
"\">>\"",
"\"::\"",
1555 "\":: at EXPR_BEG\"",
"tOP_ASGN",
"\"=>\"",
"\"(\"",
"\"( arg\"",
1556 "\")\"",
"\"[\"",
"\"{\"",
"\"{ arg\"",
"\"*\"",
"\"**arg\"",
"\"&\"",
1557 "\"->\"",
"tSYMBEG",
"tSTRING_BEG",
"tXSTRING_BEG",
"tREGEXP_BEG",
1558 "tWORDS_BEG",
"tQWORDS_BEG",
"tSYMBOLS_BEG",
"tQSYMBOLS_BEG",
1559 "tSTRING_DBEG",
"tSTRING_DEND",
"tSTRING_DVAR",
"tSTRING_END",
"tLAMBEG",
1560 "tLOWEST",
"'='",
"'?'",
"':'",
"'>'",
"'<'",
"'|'",
"'^'",
"'&'",
"'+'",
1561 "'-'",
"'*'",
"'/'",
"'%'",
"tUMINUS_NUM",
"'!'",
"'~'",
"tLAST_TOKEN",
1562 "'{'",
"'}'",
"'['",
"'.'",
"','",
"'`'",
"'('",
"')'",
"']'",
"';'",
1563 "' '",
"'\\n'",
"$accept",
"program",
"$@1",
"top_compstmt",
"top_stmts",
1564 "top_stmt",
"$@2",
"bodystmt",
"compstmt",
"stmts",
"stmt_or_begin",
1565 "$@3",
"stmt",
"$@4",
"command_asgn",
"expr",
"expr_value",
1566 "command_call",
"block_command",
"cmd_brace_block",
"@5",
"fcall",
1567 "command",
"mlhs",
"mlhs_inner",
"mlhs_basic",
"mlhs_item",
"mlhs_head",
1568 "mlhs_post",
"mlhs_node",
"lhs",
"cname",
"cpath",
"fname",
"fsym",
1569 "fitem",
"undef_list",
"$@6",
"op",
"reswords",
"arg",
"$@7",
1570 "arg_value",
"aref_args",
"paren_args",
"opt_paren_args",
1571 "opt_call_args",
"call_args",
"command_args",
"@8",
"block_arg",
1572 "opt_block_arg",
"args",
"mrhs",
"primary",
"@9",
"$@10",
"$@11",
"$@12",
1573 "$@13",
"$@14",
"$@15",
"$@16",
"$@17",
"$@18",
"$@19",
"@20",
"@21",
1574 "@22",
"@23",
"@24",
"$@25",
"$@26",
"primary_value",
"k_begin",
"k_if",
1575 "k_unless",
"k_while",
"k_until",
"k_case",
"k_for",
"k_class",
1576 "k_module",
"k_def",
"k_end",
"then",
"do",
"if_tail",
"opt_else",
1577 "for_var",
"f_marg",
"f_marg_list",
"f_margs",
"block_args_tail",
1578 "opt_block_args_tail",
"block_param",
"opt_block_param",
1579 "block_param_def",
"opt_bv_decl",
"bv_decls",
"bvar",
"lambda",
"@27",
1580 "@28",
"@29",
"f_larglist",
"lambda_body",
"do_block",
"@30",
1581 "block_call",
"method_call",
"@31",
"@32",
"@33",
"@34",
"brace_block",
1582 "@35",
"@36",
"case_body",
"cases",
"opt_rescue",
"exc_list",
"exc_var",
1583 "opt_ensure",
"literal",
"strings",
"string",
"string1",
"xstring",
1584 "regexp",
"words",
"word_list",
"word",
"symbols",
"symbol_list",
1585 "qwords",
"qsymbols",
"qword_list",
"qsym_list",
"string_contents",
1586 "xstring_contents",
"regexp_contents",
"string_content",
"@37",
"@38",
1587 "@39",
"@40",
"string_dvar",
"symbol",
"sym",
"dsym",
"numeric",
1588 "user_variable",
"keyword_variable",
"var_ref",
"var_lhs",
"backref",
1589 "superclass",
"$@41",
"f_arglist",
"args_tail",
"opt_args_tail",
1590 "f_args",
"f_bad_arg",
"f_norm_arg",
"f_arg_item",
"f_arg",
"f_kw",
1591 "f_block_kw",
"f_block_kwarg",
"f_kwarg",
"kwrest_mark",
"f_kwrest",
1592 "f_opt",
"f_block_opt",
"f_block_optarg",
"f_optarg",
"restarg_mark",
1593 "f_rest_arg",
"blkarg_mark",
"f_block_arg",
"opt_f_block_arg",
1594 "singleton",
"$@42",
"assoc_list",
"assocs",
"assoc",
"operation",
1595 "operation2",
"operation3",
"dot_or_colon",
"opt_terms",
"opt_nl",
1596 "rparen",
"rbracket",
"trailer",
"term",
"terms",
"none", 0
1605 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1606 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1607 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1608 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1609 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1610 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1611 315, 316, 317, 318, 319, 320, 130, 131, 132, 134,
1612 139, 140, 141, 138, 137, 321, 322, 142, 143, 128,
1613 129, 144, 145, 135, 136, 323, 324, 325, 326, 327,
1614 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
1615 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
1616 348, 349, 350, 61, 63, 58, 62, 60, 124, 94,
1617 38, 43, 45, 42, 47, 37, 351, 33, 126, 352,
1618 123, 125, 91, 46, 44, 96, 40, 41, 93, 59,
1626 0, 142, 144, 143, 145, 146, 146, 146, 146, 147,
1627 148, 147, 149, 150, 151, 151, 151, 151, 152, 153,
1628 152, 155, 154, 154, 154, 154, 154, 154, 154, 154,
1629 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
1630 154, 154, 154, 154, 154, 154, 156, 156, 157, 157,
1631 157, 157, 157, 157, 158, 159, 159, 160, 160, 162,
1632 161, 163, 164, 164, 164, 164, 164, 164, 164, 164,
1633 164, 164, 164, 165, 165, 166, 166, 167, 167, 167,
1634 167, 167, 167, 167, 167, 167, 167, 168, 168, 169,
1635 169, 170, 170, 171, 171, 171, 171, 171, 171, 171,
1636 171, 171, 172, 172, 172, 172, 172, 172, 172, 172,
1637 172, 173, 173, 174, 174, 174, 175, 175, 175, 175,
1638 175, 176, 176, 177, 177, 178, 179, 178, 180, 180,
1639 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
1640 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
1641 180, 180, 180, 180, 180, 180, 180, 180, 181, 181,
1642 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
1643 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
1644 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
1645 181, 181, 181, 181, 181, 181, 181, 181, 181, 182,
1646 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1647 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1648 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1649 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1650 182, 183, 182, 182, 182, 184, 185, 185, 185, 185,
1651 186, 187, 187, 188, 188, 188, 188, 188, 189, 189,
1652 189, 189, 189, 191, 190, 192, 193, 193, 194, 194,
1653 194, 194, 195, 195, 195, 196, 196, 196, 196, 196,
1654 196, 196, 196, 196, 196, 196, 197, 196, 198, 196,
1655 199, 200, 196, 196, 196, 196, 196, 196, 196, 196,
1656 196, 196, 201, 196, 196, 196, 196, 196, 196, 196,
1657 196, 196, 202, 203, 196, 204, 205, 196, 196, 196,
1658 206, 207, 196, 208, 196, 209, 210, 196, 211, 196,
1659 212, 196, 213, 214, 196, 196, 196, 196, 196, 215,
1660 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
1661 226, 227, 227, 227, 228, 228, 229, 229, 230, 230,
1662 231, 231, 232, 232, 233, 233, 234, 234, 234, 234,
1663 234, 234, 234, 234, 234, 235, 235, 235, 235, 236,
1664 236, 237, 237, 237, 237, 237, 237, 237, 237, 237,
1665 237, 237, 237, 237, 237, 237, 238, 238, 239, 239,
1666 239, 240, 240, 241, 241, 242, 242, 244, 245, 246,
1667 243, 247, 247, 248, 248, 250, 249, 251, 251, 251,
1668 251, 252, 253, 252, 254, 252, 252, 255, 252, 256,
1669 252, 252, 252, 252, 258, 257, 259, 257, 260, 261,
1670 261, 262, 262, 263, 263, 263, 264, 264, 265, 265,
1671 266, 266, 266, 267, 268, 268, 268, 269, 270, 271,
1672 272, 272, 273, 273, 274, 274, 275, 275, 276, 276,
1673 277, 277, 278, 278, 279, 279, 280, 280, 281, 281,
1674 282, 282, 283, 283, 284, 285, 284, 286, 287, 288,
1675 284, 289, 289, 289, 289, 290, 291, 291, 291, 291,
1676 292, 293, 293, 293, 293, 294, 294, 294, 294, 294,
1677 295, 295, 295, 295, 295, 295, 295, 296, 296, 297,
1678 297, 298, 298, 299, 300, 299, 299, 301, 301, 302,
1679 302, 302, 302, 303, 303, 304, 304, 304, 304, 304,
1680 304, 304, 304, 304, 304, 304, 304, 304, 304, 304,
1681 305, 305, 305, 305, 306, 306, 307, 307, 308, 308,
1682 309, 310, 311, 311, 312, 312, 313, 313, 314, 314,
1683 315, 316, 317, 317, 318, 318, 319, 319, 320, 320,
1684 321, 321, 322, 323, 323, 324, 325, 324, 326, 326,
1685 327, 327, 328, 328, 328, 329, 329, 329, 330, 330,
1686 330, 330, 331, 331, 331, 332, 332, 333, 333, 334,
1687 334, 335, 336, 337, 337, 337, 338, 338, 339, 339,
1694 0, 2, 0, 2, 2, 1, 1, 3, 2, 1,
1695 0, 5, 4, 2, 1, 1, 3, 2, 1, 0,
1696 5, 0, 4, 3, 3, 3, 2, 3, 3, 3,
1697 3, 3, 4, 1, 3, 3, 6, 5, 5, 5,
1698 5, 3, 3, 3, 3, 1, 3, 3, 1, 3,
1699 3, 3, 2, 1, 1, 1, 1, 1, 4, 0,
1700 5, 1, 2, 3, 4, 5, 4, 5, 2, 2,
1701 2, 2, 2, 1, 3, 1, 3, 1, 2, 3,
1702 5, 2, 4, 2, 4, 1, 3, 1, 3, 2,
1703 3, 1, 3, 1, 1, 4, 3, 3, 3, 3,
1704 2, 1, 1, 1, 4, 3, 3, 3, 3, 2,
1705 1, 1, 1, 2, 1, 3, 1, 1, 1, 1,
1706 1, 1, 1, 1, 1, 1, 0, 4, 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, 1,
1710 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1711 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1712 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1713 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
1714 5, 3, 5, 6, 5, 5, 5, 5, 4, 3,
1715 3, 3, 3, 3, 3, 3, 3, 3, 4, 4,
1716 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
1717 3, 3, 3, 3, 3, 2, 2, 3, 3, 3,
1718 3, 0, 4, 6, 1, 1, 1, 2, 4, 2,
1719 3, 1, 1, 1, 1, 2, 4, 2, 1, 2,
1720 2, 4, 1, 0, 2, 2, 2, 1, 1, 2,
1721 3, 4, 3, 4, 2, 1, 1, 1, 1, 1,
1722 1, 1, 1, 1, 1, 1, 0, 4, 0, 3,
1723 0, 0, 5, 3, 3, 2, 3, 3, 1, 4,
1724 3, 1, 0, 6, 4, 3, 2, 1, 2, 2,
1725 6, 6, 0, 0, 7, 0, 0, 7, 5, 4,
1726 0, 0, 9, 0, 6, 0, 0, 8, 0, 5,
1727 0, 6, 0, 0, 9, 1, 1, 1, 1, 1,
1728 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1729 1, 1, 1, 2, 1, 1, 1, 5, 1, 2,
1730 1, 1, 1, 3, 1, 3, 1, 4, 6, 3,
1731 5, 2, 4, 1, 3, 4, 2, 2, 1, 2,
1732 0, 6, 8, 4, 6, 4, 2, 6, 2, 4,
1733 6, 2, 4, 2, 4, 1, 1, 1, 3, 1,
1734 4, 1, 4, 1, 3, 1, 1, 0, 0, 0,
1735 5, 4, 1, 3, 3, 0, 5, 2, 4, 5,
1736 5, 2, 0, 5, 0, 5, 3, 0, 4, 0,
1737 4, 2, 1, 4, 0, 5, 0, 5, 5, 1,
1738 1, 6, 1, 1, 1, 1, 2, 1, 2, 1,
1739 1, 1, 1, 1, 1, 1, 2, 3, 3, 3,
1740 3, 3, 0, 3, 1, 2, 3, 3, 0, 3,
1741 3, 3, 3, 3, 0, 3, 0, 3, 0, 2,
1742 0, 2, 0, 2, 1, 0, 3, 0, 0, 0,
1743 6, 1, 1, 1, 1, 2, 1, 1, 1, 1,
1744 3, 1, 1, 2, 2, 1, 1, 1, 1, 1,
1745 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1746 1, 1, 1, 1, 0, 4, 2, 3, 2, 4,
1747 2, 2, 1, 2, 0, 6, 8, 4, 6, 4,
1748 6, 2, 4, 6, 2, 4, 2, 4, 1, 0,
1749 1, 1, 1, 1, 1, 1, 1, 3, 1, 3,
1750 2, 2, 1, 3, 1, 3, 1, 1, 2, 1,
1751 3, 3, 1, 3, 1, 3, 1, 1, 2, 1,
1752 1, 1, 2, 2, 1, 1, 0, 4, 1, 2,
1753 1, 3, 3, 2, 2, 1, 1, 1, 1, 1,
1754 1, 1, 1, 1, 1, 1, 1, 0, 1, 0,
1755 1, 2, 2, 0, 1, 1, 1, 1, 1, 2,
1764 2, 0, 0, 1, 0, 347, 348, 349, 0, 340,
1765 341, 342, 345, 343, 344, 346, 335, 336, 337, 338,
1766 298, 263, 263, 511, 510, 512, 513, 609, 0, 609,
1767 10, 0, 515, 514, 516, 595, 597, 507, 506, 596,
1768 509, 501, 502, 454, 521, 522, 0, 0, 0, 0,
1769 290, 620, 620, 85, 407, 480, 478, 480, 482, 462,
1770 474, 468, 476, 0, 0, 0, 3, 607, 6, 9,
1771 33, 45, 48, 56, 263, 55, 0, 73, 0, 77,
1772 87, 0, 53, 244, 0, 286, 0, 0, 312, 315,
1773 607, 0, 0, 0, 0, 57, 307, 275, 276, 453,
1774 455, 277, 278, 279, 281, 280, 282, 451, 452, 450,
1775 517, 518, 283, 0, 284, 61, 5, 8, 168, 179,
1776 169, 192, 165, 185, 175, 174, 195, 196, 190, 173,
1777 172, 167, 193, 197, 198, 177, 166, 180, 184, 186,
1778 178, 171, 187, 194, 189, 188, 181, 191, 176, 164,
1779 183, 182, 163, 170, 161, 162, 158, 159, 160, 116,
1780 118, 117, 153, 154, 149, 131, 132, 133, 140, 137,
1781 139, 134, 135, 155, 156, 141, 142, 146, 150, 136,
1782 138, 128, 129, 130, 143, 144, 145, 147, 148, 151,
1783 152, 157, 121, 123, 125, 26, 119, 120, 122, 124,
1784 0, 0, 0, 0, 0, 0, 0, 0, 258, 0,
1785 245, 268, 71, 262, 620, 0, 517, 518, 0, 284,
1786 620, 590, 72, 70, 609, 69, 0, 620, 431, 68,
1787 609, 610, 0, 0, 21, 241, 0, 0, 335, 336,
1788 298, 301, 432, 0, 220, 0, 221, 295, 0, 19,
1789 0, 0, 607, 15, 18, 609, 75, 14, 609, 0,
1790 0, 613, 613, 246, 0, 0, 613, 588, 609, 0,
1791 0, 0, 83, 339, 0, 93, 94, 101, 309, 408,
1792 498, 497, 499, 496, 0, 495, 0, 0, 0, 0,
1793 0, 0, 0, 0, 0, 0, 0, 503, 504, 52,
1794 235, 236, 616, 617, 4, 618, 608, 0, 0, 0,
1795 0, 0, 0, 0, 436, 434, 421, 62, 306, 415,
1796 417, 0, 89, 0, 81, 78, 0, 0, 0, 0,
1797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1799 0, 0, 0, 429, 620, 427, 0, 54, 0, 0,
1800 0, 0, 607, 0, 608, 0, 361, 360, 0, 0,
1801 517, 518, 284, 111, 112, 0, 0, 114, 0, 0,
1802 517, 518, 284, 328, 188, 181, 191, 176, 158, 159,
1803 160, 116, 117, 586, 330, 585, 0, 606, 605, 0,
1804 308, 456, 0, 0, 126, 593, 295, 269, 594, 265,
1805 0, 0, 0, 259, 267, 429, 620, 427, 0, 0,
1806 0, 260, 609, 0, 300, 264, 609, 254, 620, 620,
1807 253, 609, 305, 51, 23, 25, 24, 0, 302, 0,
1808 0, 0, 429, 427, 0, 17, 0, 609, 293, 13,
1809 608, 74, 289, 291, 296, 615, 614, 247, 615, 249,
1810 297, 589, 0, 100, 503, 504, 91, 86, 0, 429,
1811 620, 427, 549, 484, 487, 485, 500, 481, 457, 479,
1812 458, 459, 483, 460, 461, 0, 464, 470, 0, 471,
1813 466, 467, 0, 472, 0, 473, 0, 0, 619, 7,
1814 27, 28, 29, 30, 31, 49, 50, 620, 620, 59,
1815 63, 620, 0, 34, 43, 0, 44, 609, 0, 79,
1816 90, 47, 46, 0, 199, 268, 42, 217, 225, 230,
1817 231, 232, 227, 229, 239, 240, 233, 234, 210, 211,
1818 237, 238, 609, 226, 228, 222, 223, 224, 212, 213,
1819 214, 215, 216, 598, 600, 599, 601, 0, 263, 426,
1820 609, 598, 600, 599, 601, 0, 263, 0, 620, 352,
1821 0, 351, 0, 0, 0, 0, 0, 0, 295, 429,
1822 620, 427, 320, 325, 111, 112, 113, 0, 524, 323,
1823 523, 429, 620, 427, 0, 0, 549, 332, 598, 599,
1824 263, 35, 201, 41, 209, 0, 199, 592, 0, 270,
1825 266, 620, 598, 599, 609, 598, 599, 591, 299, 611,
1826 250, 255, 257, 304, 22, 0, 242, 0, 32, 424,
1827 422, 208, 0, 76, 16, 609, 613, 0, 84, 97,
1828 99, 609, 598, 599, 555, 552, 551, 550, 553, 0,
1829 566, 0, 577, 567, 581, 580, 576, 549, 409, 548,
1830 412, 554, 556, 558, 534, 564, 620, 569, 620, 574,
1831 534, 579, 534, 0, 532, 488, 0, 463, 465, 475,
1832 469, 477, 218, 219, 399, 609, 0, 397, 396, 0,
1833 620, 0, 274, 0, 88, 82, 0, 0, 0, 0,
1834 0, 0, 430, 66, 0, 0, 433, 0, 0, 428,
1835 64, 620, 350, 287, 620, 620, 442, 620, 353, 620,
1836 355, 313, 354, 316, 0, 0, 319, 602, 294, 609,
1837 598, 599, 0, 0, 526, 0, 0, 111, 112, 115,
1838 609, 0, 609, 549, 0, 0, 0, 252, 418, 58,
1839 251, 0, 127, 271, 261, 0, 0, 433, 0, 0,
1840 620, 609, 11, 0, 292, 248, 92, 95, 0, 560,
1841 555, 0, 373, 364, 366, 609, 362, 609, 0, 0,
1842 541, 0, 530, 584, 568, 0, 531, 0, 544, 578,
1843 0, 546, 582, 489, 491, 492, 493, 486, 494, 555,
1844 0, 395, 609, 0, 380, 562, 620, 620, 572, 380,
1845 380, 378, 401, 0, 0, 0, 0, 0, 272, 80,
1846 200, 0, 40, 206, 39, 207, 67, 425, 612, 0,
1847 37, 204, 38, 205, 65, 423, 443, 444, 620, 445,
1848 0, 620, 358, 0, 0, 356, 0, 0, 0, 318,
1849 0, 0, 433, 0, 326, 0, 0, 433, 329, 587,
1850 609, 0, 528, 333, 419, 420, 202, 0, 256, 303,
1851 20, 570, 609, 0, 371, 0, 557, 0, 0, 0,
1852 410, 533, 559, 534, 534, 565, 620, 583, 534, 575,
1853 534, 534, 0, 0, 0, 561, 0, 398, 386, 388,
1854 0, 376, 377, 0, 391, 0, 393, 0, 437, 435,
1855 0, 416, 273, 243, 36, 203, 0, 0, 447, 359,
1856 0, 12, 449, 0, 310, 311, 0, 0, 270, 620,
1857 321, 0, 525, 324, 527, 331, 549, 363, 374, 0,
1858 369, 365, 411, 0, 0, 0, 537, 0, 539, 529,
1859 0, 545, 0, 542, 547, 0, 571, 295, 429, 400,
1860 379, 380, 380, 563, 620, 380, 573, 380, 380, 405,
1861 609, 403, 406, 60, 0, 446, 0, 102, 103, 110,
1862 0, 448, 0, 314, 317, 439, 440, 438, 0, 0,
1863 0, 0, 372, 0, 367, 414, 413, 534, 534, 534,
1864 534, 490, 602, 294, 0, 383, 0, 385, 375, 0,
1865 392, 0, 389, 394, 0, 402, 109, 429, 620, 427,
1866 620, 620, 0, 327, 0, 370, 0, 538, 0, 535,
1867 540, 543, 380, 380, 380, 380, 404, 602, 108, 609,
1868 598, 599, 441, 357, 322, 334, 368, 534, 384, 0,
1869 381, 387, 390, 433, 536, 380, 382
1875 -1, 1, 2, 66, 67, 68, 236, 567, 568, 252,
1876 253, 446, 254, 437, 70, 71, 358, 72, 73, 510,
1877 690, 243, 75, 76, 255, 77, 78, 79, 467, 80,
1878 209, 377, 378, 192, 193, 194, 195, 605, 556, 197,
1879 82, 439, 211, 260, 228, 748, 426, 427, 225, 226,
1880 213, 413, 428, 516, 83, 356, 258, 259, 635, 625,
1881 360, 847, 361, 848, 732, 988, 736, 733, 931, 594,
1882 596, 746, 936, 245, 85, 86, 87, 88, 89, 90,
1883 91, 92, 93, 94, 713, 570, 721, 844, 845, 369,
1884 773, 774, 775, 960, 899, 802, 686, 687, 803, 970,
1885 971, 278, 279, 472, 778, 658, 880, 320, 511, 95,
1886 96, 711, 704, 565, 557, 318, 508, 507, 577, 987,
1887 715, 838, 917, 921, 97, 98, 99, 100, 101, 102,
1888 103, 290, 485, 104, 294, 105, 106, 292, 296, 286,
1889 284, 288, 477, 676, 675, 793, 892, 797, 107, 285,
1890 108, 109, 216, 217, 112, 218, 219, 589, 735, 744,
1891 881, 780, 745, 661, 662, 663, 664, 665, 805, 806,
1892 666, 667, 668, 669, 808, 809, 670, 671, 672, 673,
1893 674, 782, 396, 595, 265, 429, 221, 115, 629, 559,
1894 399, 304, 423, 424, 706, 457, 571, 364, 257
1899 #define YYPACT_NINF -808 1902 -808, 134, 2562, -808, 7195, -808, -808, -808, 6718, -808,
1903 -808, -808, -808, -808, -808, -808, 7308, 7308, -808, -808,
1904 7308, 3884, 3479, -808, -808, -808, -808, 455, 6585, 17,
1905 -808, 60, -808, -808, -808, 2804, 3614, -808, -808, 2939,
1906 -808, -808, -808, -808, -808, -808, 8664, 8664, 140, 4955,
1907 462, 7647, 7986, 6977, -808, 6452, -808, -808, -808, 103,
1908 115, 126, 206, 117, 8777, 8664, -808, -25, -808, 1007,
1909 -808, 322, -808, -808, 141, 372, 352, -808, 337, 9003,
1910 -808, 379, 2918, 247, 278, -808, 8890, 8890, -808, -808,
1911 5842, 9112, 9221, 9330, 6318, 33, 65, -808, -808, 410,
1912 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1913 205, 409, -808, 441, 433, -808, -808, -808, -808, -808,
1914 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1915 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1916 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1917 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1918 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1919 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1920 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1921 -808, -808, -808, -808, -808, 396, -808, -808, -808, -808,
1922 427, 8664, 519, 5094, 8664, 8664, 8664, 8664, -808, 468,
1923 2918, 500, -808, -808, 463, 304, 22, 344, 517, 363,
1924 479, -808, -808, -808, 5729, -808, 7308, 7308, -808, -808,
1925 5955, -808, 8890, 498, -808, 482, 491, 5233, -808, -808,
1926 -808, 497, 499, 141, -808, 361, 570, 458, 7421, -808,
1927 4955, 505, -25, -808, 1007, 17, 538, -808, 17, 8890,
1928 515, 188, 318, -808, 500, 523, 318, -808, 17, 617,
1929 338, 9439, 540, -808, 474, 572, 613, 674, -808, -808,
1930 -808, -808, -808, -808, 522, -808, 601, 669, 284, 576,
1931 752, 577, 58, 582, 759, 584, 68, 609, 612, -808,
1932 -808, -808, -808, -808, -808, -808, 6068, 8890, 8890, 8890,
1933 8890, 7421, 8890, 8890, -808, -808, -808, 588, -808, -808,
1934 -808, 8099, -808, 4955, 7086, 561, 8099, 8664, 8664, 8664,
1935 8664, 8664, 8664, 8664, 8664, 8664, 8664, 8664, 8664, 8664,
1936 8664, 8664, 8664, 8664, 8664, 8664, 8664, 8664, 8664, 8664,
1937 8664, 8664, 8664, 2012, 7308, 9718, 4312, 322, 109, 109,
1938 8890, 8890, -25, 689, 563, 651, -808, -808, 685, 691,
1939 53, 57, 100, 328, 393, 8890, 568, -808, 199, 708,
1940 -808, -808, -808, -808, 55, 223, 249, 279, 283, 301,
1941 316, 384, 417, -808, -808, -808, 33, -808, -808, 9795,
1942 -808, -808, 8777, 8777, -808, -808, 414, -808, -808, -808,
1943 8664, 8664, 7534, -808, -808, 9872, 7308, 9949, 8664, 8664,
1944 7760, -808, 17, 595, -808, -808, 17, -808, 580, 599,
1945 -808, 61, -808, -808, -808, -808, -808, 6718, -808, 8664,
1946 5364, 604, 9872, 9949, 8664, 1007, 607, 17, -808, -808,
1947 6181, 618, -808, 322, -808, 7873, -808, -808, 7986, -808,
1948 -808, -808, 482, 769, -808, -808, -808, 622, 9439, 10026,
1949 7308, 10103, 1417, -808, -808, -808, -808, -808, -808, -808,
1950 -808, -808, -808, -808, -808, 244, -808, -808, 611, -808,
1951 -808, -808, 347, -808, 623, -808, 8664, 8664, -808, -808,
1952 -808, -808, -808, -808, -808, -808, -808, 51, 51, -808,
1953 -808, 51, 8664, -808, 628, 634, -808, 17, 9439, 655,
1954 -808, -808, -808, 678, 1866, -808, -808, 570, 2240, 2240,
1955 2240, 2240, 727, 727, 3323, 3188, 2240, 2240, 3053, 3053,
1956 415, 415, 1674, 727, 727, 907, 907, 660, 40, 40,
1957 570, 570, 570, 4019, 3074, 4154, 3209, 499, 661, -808,
1958 17, 535, -808, 688, -808, 499, 3749, 737, 790, -808,
1959 4451, 799, 4729, 66, 66, 689, 8212, 737, 147, 10180,
1960 7308, 10257, -808, 322, -808, 769, -808, -25, -808, -808,
1961 -808, 10334, 7308, 9795, 4312, 8890, 1538, -808, -808, -808,
1962 4173, -808, 2648, -808, 2918, 6718, 2783, -808, 8664, 500,
1963 -808, 479, 2669, 3344, 17, 420, 444, -808, -808, -808,
1964 -808, 7534, 7760, -808, -808, 8890, 2918, 672, -808, -808,
1965 -808, 2918, 5364, 2, -808, 17, 318, 9439, 622, 701,
1966 469, 17, 207, 224, 711, -808, -808, -808, -808, 8664,
1967 -808, 947, -808, -808, -808, -808, -808, 1789, -808, -808,
1968 -808, -808, -808, -808, 680, -808, 687, 773, 694, -808,
1969 698, 783, 704, 791, -808, -808, 834, -808, -808, -808,
1970 -808, -808, 570, 570, -808, 1322, 5503, -808, -808, 5233,
1971 51, 5503, 721, 8325, -808, 622, 9439, 8777, 8664, 741,
1972 8777, 8777, -808, 588, 499, 722, 818, 8777, 8777, -808,
1973 588, 499, -808, -808, 8438, 827, -808, 597, -808, 827,
1974 -808, -808, -808, -808, 737, 70, -808, 67, 136, 17,
1975 148, 149, 8890, -25, -808, 8890, 4312, 701, 469, -808,
1976 17, 737, 61, 1789, 4312, -25, 6851, -808, 65, 372,
1977 -808, 8664, -808, -808, -808, 8664, 8664, 466, 8664, 8664,
1978 731, 61, -808, 736, -808, -808, -808, 567, 8664, -808,
1979 -808, 947, 350, -808, 738, 17, -808, 17, 72, 1789,
1980 -808, 42, -808, -808, -808, 272, -808, 1789, -808, -808,
1981 892, -808, -808, -808, -808, -808, -808, -808, -808, 762,
1982 9548, -808, 17, 764, 746, -808, 751, 694, -808, 758,
1983 760, -808, 761, 893, 775, 5233, 899, 8664, 776, 622,
1984 2918, 8664, -808, 2918, -808, 2918, -808, -808, -808, 8777,
1985 -808, 2918, -808, 2918, -808, -808, 628, -808, 826, -808,
1986 4842, 909, -808, 8890, 737, -808, 737, 5503, 5503, -808,
1987 8551, 4590, 155, 66, -808, -25, 737, -808, -808, -808,
1988 17, 737, -808, -808, -808, -808, 2918, 8664, 7760, -808,
1989 -808, -808, 17, 1011, 789, 1003, -808, 793, 5503, 5233,
1990 -808, -808, -808, 798, 803, -808, 694, -808, 804, -808,
1991 811, 804, 5616, 9548, 877, 792, 808, -808, 1910, -808,
1992 490, -808, -808, 1910, -808, 1368, -808, 1032, -808, -808,
1993 820, -808, 819, 2918, -808, 2918, 9657, 109, -808, -808,
1994 5503, -808, -808, 109, -808, -808, 737, 737, -808, 130,
1995 -808, 4312, -808, -808, -808, -808, 1538, -808, 821, 1011,
1996 434, -808, -808, 944, 832, 1789, -808, 892, -808, -808,
1997 892, -808, 892, -808, -808, 850, 792, -808, 10411, -808,
1998 -808, 830, 831, -808, 694, 835, -808, 837, 835, -808,
1999 443, -808, -808, -808, 910, -808, 796, 572, 613, 674,
2000 4312, -808, 4451, -808, -808, -808, -808, -808, 5503, 737,
2001 4312, 1011, 821, 1011, 838, -808, -808, 804, 839, 804,
2002 804, -808, 840, 841, 1910, -808, 1368, -808, -808, 1368,
2003 -808, 1368, -808, -808, 1032, -808, 769, 10488, 7308, 10565,
2004 790, 597, 737, -808, 737, 821, 1011, -808, 892, -808,
2005 -808, -808, 835, 844, 835, 835, -808, 74, 469, 17,
2006 146, 158, -808, -808, -808, -808, 821, 804, -808, 1368,
2007 -808, -808, -808, 176, -808, 835, -808
2013 -808, -808, -808, -363, -808, 27, -808, -550, -21, -808,
2014 518, -808, 15, -808, -301, -51, -86, 41, -808, -268,
2015 -808, 413, -7, 888, -153, -4, -73, -808, -416, 7,
2016 1571, -315, 889, -53, -808, -5, -808, -808, 98, -808,
2017 870, -808, 735, -808, -44, 275, -340, 87, -11, -808,
2018 -386, -188, 4, -311, -20, -808, -808, -808, -808, -808,
2019 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
2020 -808, -808, -808, 64, -808, -808, -808, -808, -808, -808,
2021 -808, -808, -808, -808, 154, -347, -526, -34, -645, -808,
2022 -785, -779, 221, 309, 374, -808, -446, -808, -665, -808,
2023 -18, -808, -808, -808, -808, -808, -808, 248, -808, -808,
2024 -808, -808, -808, -808, -808, -93, -808, -808, -535, -808,
2025 -6, -808, -808, -808, -808, -808, -808, 918, -808, -808,
2026 -808, -808, 712, -808, -808, -808, -808, -808, -808, -808,
2027 963, -808, -142, -808, -808, -808, -808, -808, 10, -808,
2028 14, -808, 1081, 1361, 928, 1531, 1552, -808, -808, 89,
2029 -464, -372, -415, -783, -518, -723, 234, 242, 133, -808,
2030 -808, -808, 289, -708, -807, 128, 255, -808, -638, -808,
2031 228, -622, -808, -808, -808, 69, -383, -808, -348, -808,
2032 639, -26, 0, 48, -598, -208, 21, -14, -2
2038 #define YYTABLE_NINF -621 2041 116, 359, 283, 400, 362, 558, 325, 566, 659, 208,
2042 208, 229, 572, 208, 560, 526, 757, 69, 198, 69,
2043 214, 214, 199, 234, 214, 521, 610, 232, 251, 235,
2044 316, 117, 421, 273, 610, 357, 357, 617, 198, 357,
2045 724, 394, 199, 767, 741, 256, 786, 810, 723, 263,
2046 267, 600, 638, 306, 459, 261, 882, 660, 461, 273,
2047 272, 586, 689, 317, 363, 691, 84, 558, 84, 566,
2048 841, 273, 273, 273, 846, 617, 614, 627, -102, 889,
2049 215, 215, -103, 569, 215, 220, 220, -106, 305, 220,
2050 941, 314, -106, 720, 938, 630, 966, 447, 312, 313,
2051 649, 878, 695, 212, 222, 299, 196, 223, 327, -519,
2052 650, 305, 877, 84, 302, -74, 303, 274, 397, 488,
2053 262, 266, 569, 630, 972, -110, 196, 684, 215, 494,
2054 641, 852, 659, 776, 3, -102, -88, 896, 653, 654,
2055 -511, 884, 857, 274, 479, 840, 482, 576, 486, 890,
2056 215, 215, 486, 196, 215, 368, 379, 379, 231, -105,
2057 992, -108, 655, 350, 351, 352, 398, 314, 489, 685,
2058 517, -107, -109, -105, -107, 882, 297, 298, 495, 431,
2059 -104, 433, 251, 879, 901, 902, 856, -93, -511, -104,
2060 237, -94, 196, 659, 861, 315, 247, 966, 466, 316,
2061 587, -97, 231, -598, 850, 302, 941, 303, 453, 302,
2062 -598, 303, 414, -106, 1025, -106, 441, 208, 414, 208,
2063 208, 500, 501, 502, 503, 430, 449, 882, 214, 251,
2064 214, 972, -96, 630, -101, 610, 610, 889, 450, 617,
2065 729, 421, 777, 289, 815, 630, 256, 1046, 302, -98,
2066 303, 273, 740, 776, 874, 291, 357, 357, 357, 357,
2067 962, 505, 506, 445, 949, 967, 293, 84, 462, 763,
2068 -99, 315, -599, 305, 573, 574, 739, 227, 432, 659,
2069 819, -100, -96, -98, 985, -105, 882, -105, 215, -95,
2070 215, 215, -519, 220, 215, 220, 215, -107, 788, -107,
2071 791, 84, 251, 451, 273, 473, 452, 998, -510, 357,
2072 357, 422, 84, 425, 84, -104, 588, -104, -102, 256,
2073 -96, 69, 455, 215, 583, 515, 504, 930, 860, 456,
2074 515, 519, -339, 499, -512, 274, 575, -98, 302, -93,
2075 303, -96, 1008, 678, -96, 473, 295, 208, -96, 481,
2076 678, 474, 430, 475, -595, 776, -510, 776, -98, 312,
2077 313, -98, 513, 353, -513, -98, 1033, 522, -515, 654,
2078 84, 215, 215, 215, 215, 84, 215, 215, 851, -339,
2079 -339, 989, -512, 305, 677, 215, -514, 84, 274, 415,
2080 215, 474, 655, 475, 986, 466, 521, 464, 465, 590,
2081 319, -516, 770, 837, 645, 646, 647, 648, 473, 208,
2082 354, 355, -513, -505, 430, 74, -515, 74, 215, -596,
2083 84, 776, 994, 754, 215, 215, 414, 414, 765, 74,
2084 74, -520, 624, 74, -514, 826, 416, 417, 116, 215,
2085 1024, 1053, 834, 601, 603, 466, 442, 198, 273, -516,
2086 419, 199, 458, 564, 474, 69, 475, -103, -595, 456,
2087 -505, -505, 74, 208, -595, 321, 215, 215, 430, -505,
2088 618, 322, 659, 776, 620, 776, -110, 74, -508, 623,
2089 215, 611, 610, 327, 873, 617, 770, 680, 645, 646,
2090 647, 648, 326, 416, 443, 633, -520, 564, 273, 74,
2091 74, 444, -508, 74, 84, 688, 688, 758, 776, 688,
2092 56, 946, 948, 702, 84, 564, 951, -505, 953, 954,
2093 403, 709, -103, -596, 636, -508, -508, -109, 402, -596,
2094 404, 759, 274, -105, 215, 196, 348, 349, 350, 351,
2095 352, 564, 699, -94, 742, 444, -110, 703, 800, 717,
2096 -508, 719, 434, 867, -294, 710, 747, -107, 650, 469,
2097 705, 435, 436, 230, 766, 694, 716, -101, 993, 564,
2098 980, -109, 754, 208, 761, 406, 982, 1014, 430, -104,
2099 725, 410, 274, 473, 231, 208, 653, 654, 411, 749,
2100 430, 230, -100, -433, 722, 722, 231, 412, 750, -288,
2101 752, -294, -294, -288, 418, -599, 470, 471, 734, 414,
2102 655, 843, 840, 420, 705, 198, 74, 273, 438, 199,
2103 584, 440, 707, 466, 585, 1027, 1029, 1030, 1031, 474,
2104 116, 475, 476, 224, 84, 227, 84, 74, 327, 74,
2105 74, 705, 448, 74, 215, 74, 853, 69, -105, 855,
2106 74, -73, -433, 454, 460, 864, 215, -517, 84, 215,
2107 827, 74, 473, 74, 783, 813, 783, 747, 814, -96,
2108 816, 630, 74, 463, 468, 1054, 273, 496, 1039, 564,
2109 497, 357, 509, 764, 357, 812, 483, 487, 688, 215,
2110 760, 564, 490, 863, 493, 520, 84, -433, -518, -433,
2111 -433, 274, 498, 196, -517, -517, 576, 578, 474, 750,
2112 475, 478, 839, 842, 621, 842, 582, 842, 515, 74,
2113 74, 74, 74, 74, 74, 74, 74, -602, 327, 705,
2114 473, 726, 619, 622, 74, 628, 74, 632, 522, 74,
2115 705, 822, 824, 340, 341, -518, -518, 712, 830, 832,
2116 84, 679, -88, 84, 854, 84, 637, 923, 414, -284,
2117 274, 215, -268, 681, 215, 215, 862, 74, 693, 74,
2118 579, 215, 215, 74, 74, 708, 474, 812, 475, 480,
2119 273, 348, 349, 350, 351, 352, -602, 264, 74, 696,
2120 859, 697, 357, 591, 910, 327, 215, -424, 714, 215,
2121 84, -107, 812, 762, 783, 783, -284, -284, 84, 869,
2122 340, 341, 718, 473, 779, 74, 74, 580, 581, 919,
2123 473, 781, -98, 876, 768, 784, 926, 927, 785, 74,
2124 929, -602, 787, -602, -602, 789, 918, -598, 790, 922,
2125 592, 593, 840, 792, 196, 345, 346, 347, 348, 349,
2126 350, 351, 352, 74, -295, -269, 821, 943, 944, 474,
2127 828, 475, 484, 74, 895, 868, 474, 870, 475, 491,
2128 914, 955, 875, 273, 722, 893, 932, 958, 849, 84,
2129 898, 1017, 897, 74, 783, 900, 210, 210, 794, 795,
2130 210, 796, 903, 215, 905, 858, 273, 44, 45, 981,
2131 907, -295, -295, 908, 84, 829, 909, 215, 934, 911,
2132 -270, 84, 84, 811, 916, 84, 244, 246, 920, 804,
2133 937, 210, 210, 939, 592, 593, 959, 842, 1018, 1019,
2134 942, -104, 945, 957, 300, 301, 405, 947, 950, 407,
2135 408, 409, 84, 84, 770, 952, 645, 646, 647, 648,
2136 649, 973, -95, -271, 995, 991, 84, 956, 1001, 1020,
2137 650, 1021, 783, 996, 1004, 1006, 1016, 1022, 634, 1009,
2138 1015, 1011, 1026, 1028, 807, 327, -598, -599, 1049, 366,
2139 976, 651, 383, 74, 84, 74, 835, 1043, 653, 654,
2140 340, 341, 872, 74, 801, 84, 1036, 865, 924, 770,
2141 925, 645, 646, 647, 648, 74, 492, 74, 74, 887,
2142 933, 208, 655, 887, 1042, 935, 430, 401, 716, 842,
2143 287, 888, 395, 885, 891, 990, 961, 347, 348, 349,
2144 350, 351, 352, 963, 883, 597, 771, 0, 74, 705,
2145 0, 0, 772, 0, 84, 74, 84, 307, 308, 309,
2146 310, 311, 84, 0, 84, 770, 514, 645, 646, 647,
2147 648, 525, 0, 770, 0, 645, 646, 647, 648, 0,
2148 886, 210, 0, 0, 210, 210, 210, 300, 0, 0,
2149 983, 984, 215, 110, 969, 110, 645, 646, 647, 648,
2150 0, 0, 771, 0, 210, 0, 210, 210, 940, 74,
2151 771, 0, 74, 0, 74, 0, 0, 0, 0, 0,
2152 74, 0, 0, 74, 74, 0, 0, 564, 0, 0,
2153 74, 74, 0, 0, 0, 0, 811, 0, 887, 0,
2154 110, 811, 0, 811, 275, 0, 0, 965, 0, 968,
2155 0, 0, 0, 1023, 0, 74, 607, 609, 74, 74,
2156 0, 0, 0, 0, 0, 264, 0, 74, 0, 0,
2157 275, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2158 0, 0, 370, 380, 380, 380, 1044, 0, 1045, 997,
2159 0, 999, 0, 904, 906, 0, 1000, 807, 0, 964,
2160 609, 210, 807, 264, 807, 0, 524, 527, 528, 529,
2161 530, 531, 532, 533, 534, 535, 536, 537, 538, 539,
2162 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
2163 550, 551, 552, 0, 210, 0, 0, 0, 74, 0,
2164 0, 0, 811, 0, 811, 0, 0, 811, 1032, 811,
2165 1034, 0, 74, 0, 0, 1035, 0, 692, 0, 0,
2166 0, 0, 0, 74, 0, 0, 74, 0, 0, 0,
2167 74, 74, 1047, 0, 74, 0, 0, 0, 0, 0,
2168 0, 0, 602, 604, 0, 0, 0, 811, 0, 0,
2169 606, 210, 210, 1055, 110, 0, 210, 0, 602, 604,
2170 210, 74, 74, 807, 0, 807, 0, 0, 807, 0,
2171 807, 0, 0, 0, 0, 74, 0, 0, 0, 626,
2172 0, 525, 0, 0, 631, 0, 0, 0, 110, 0,
2173 0, 0, 0, 0, 0, 210, 0, 0, 210, 110,
2174 0, 110, 0, 74, 0, 1005, 1007, 0, 807, 1010,
2175 210, 1012, 1013, 753, 74, 0, 0, 0, 0, 0,
2176 0, 0, 275, 0, 0, 0, 609, 264, 0, 0,
2177 0, 0, 0, 111, 0, 111, 682, 683, 0, 0,
2178 0, 0, 0, 0, 799, 0, 645, 646, 647, 648,
2179 800, 0, 210, 0, 769, 0, 0, 110, 0, 0,
2180 650, 0, 110, 74, 0, 74, 0, 0, 0, 0,
2181 0, 74, 0, 74, 110, 275, 1048, 1050, 1051, 1052,
2182 111, 651, 0, 0, 276, 0, 0, 652, 653, 654,
2183 770, 0, 645, 646, 647, 648, 800, 0, 818, 1056,
2184 0, 74, 0, 0, 0, 0, 650, 110, 0, 0,
2185 276, 0, 655, 0, 0, 656, 210, 0, 0, 836,
2186 210, 0, 371, 381, 381, 381, 0, 651, 0, 0,
2187 0, 0, 210, 231, 653, 654, 0, 0, 0, 644,
2188 0, 645, 646, 647, 648, 649, 0, 0, 210, 0,
2189 0, 0, 0, 0, 0, 650, 0, 0, 655, 0,
2190 0, 210, 210, 0, 0, 0, 0, 0, 0, 0,
2191 0, 0, 0, 871, 0, 0, 651, 0, 0, 0,
2192 0, 0, 652, 653, 654, 0, 0, 0, 0, 210,
2193 0, 110, 0, 0, 0, 0, 0, 0, 0, 0,
2194 0, 110, 0, 113, 0, 113, 0, 655, 0, 0,
2195 656, 0, 0, 0, 0, 0, 0, 0, 0, 275,
2196 0, 0, 912, 657, 114, 0, 114, 0, 0, 0,
2197 0, 0, 0, 210, 111, 0, 0, 606, 820, 0,
2198 823, 825, 0, 81, 0, 81, 0, 831, 833, 0,
2199 113, 0, 0, 0, 210, 928, 0, 0, 0, 0,
2200 644, 0, 645, 646, 647, 648, 649, 0, 111, 275,
2201 0, 114, 0, 264, 0, 277, 650, 0, 0, 111,
2202 0, 111, 0, 0, 0, 0, 0, 0, 0, 0,
2203 81, 866, 0, 0, 0, 823, 825, 651, 831, 833,
2204 0, 277, 276, 652, 653, 654, 0, 0, 210, 0,
2205 0, 0, 0, 372, 382, 382, 0, 0, 0, 0,
2206 0, 110, 0, 110, 0, 0, 0, 0, 655, 0,
2207 0, 656, 367, 0, 0, 0, 0, 111, 0, 0,
2208 0, 0, 111, 0, 743, 110, 0, 0, 0, 0,
2209 0, 0, 0, 0, 111, 276, 0, 210, 0, 0,
2210 0, 913, 0, 0, 0, 0, 0, 0, 0, 915,
2211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2212 0, 0, 0, 110, 0, 0, 0, 111, 275, 0,
2213 210, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2214 0, 0, 0, 0, 113, 0, 0, 915, 210, 0,
2215 0, 0, 327, 328, 329, 330, 331, 332, 333, 334,
2216 335, 336, 337, 338, 339, 114, 0, 340, 341, 0,
2217 0, 0, 0, 0, 0, 0, 0, 110, 113, 0,
2218 110, 0, 110, 0, 81, 0, 0, 275, 0, 113,
2219 0, 113, 0, 0, 0, 0, 0, 0, 342, 114,
2220 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
2221 114, 111, 114, 0, 0, 0, 0, 0, 81, 0,
2222 0, 111, 0, 0, 0, 231, 0, 110, 0, 81,
2223 0, 81, 0, 277, 0, 110, 0, 0, 0, 276,
2224 0, 0, 0, 0, 0, 0, 0, 113, 0, 0,
2225 0, 644, 113, 645, 646, 647, 648, 649, 0, 0,
2226 0, 0, 0, 0, 113, 0, 0, 650, 114, 0,
2227 0, 0, 0, 114, 0, 0, 0, 0, 0, 0,
2228 0, 0, 0, 0, 0, 114, 277, 81, 651, 276,
2229 0, 380, 81, 0, 652, 653, 654, 113, 210, 0,
2230 0, 0, 0, 0, 81, 0, 110, 523, 0, 0,
2231 0, 0, 0, 0, 0, 0, 0, 0, 114, 655,
2232 698, 0, 656, 0, 0, 0, 0, 0, 0, 0,
2233 0, 110, 0, 0, 0, 0, 0, 81, 110, 110,
2234 0, 111, 110, 111, 327, 328, 329, 330, 331, 332,
2235 333, 334, 335, 336, 337, 338, 339, 0, 0, 340,
2236 341, 0, 0, 0, 0, 111, 0, 0, 0, 110,
2237 110, 0, 799, 0, 645, 646, 647, 648, 800, 0,
2238 0, 113, 0, 110, 380, 0, 0, 0, 650, 0,
2239 342, 113, 343, 344, 345, 346, 347, 348, 349, 350,
2240 351, 352, 114, 111, 0, 0, 0, 977, 276, 651,
2241 -245, 110, 114, 0, 0, 652, 653, 654, 0, 0,
2242 0, 81, 110, 0, 0, 0, 0, 0, 0, 0,
2243 277, 81, 0, 0, 0, 0, 0, 0, 0, 0,
2244 655, 0, 0, 656, 0, 0, 0, 0, 0, 0,
2245 0, 0, 0, 0, 0, 0, 0, 111, 0, 0,
2246 111, 0, 111, 0, 0, 0, 0, 276, 0, 0,
2247 0, 110, 0, 110, 553, 554, 0, 0, 555, 110,
2248 277, 110, 0, 0, 0, 0, 0, 0, 162, 163,
2249 164, 165, 166, 167, 168, 169, 170, 0, 0, 171,
2250 172, 0, 0, 173, 174, 175, 176, 111, 0, 0,
2251 0, 113, 0, 113, 0, 111, 0, 177, 178, 0,
2252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2253 0, 0, 114, 0, 114, 113, 0, 0, 179, 180,
2254 181, 182, 183, 184, 185, 186, 187, 188, 0, 189,
2255 190, 81, 0, 81, 0, 0, 114, 191, 0, 0,
2256 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2257 0, 381, 0, 113, 0, 81, 0, 0, 0, 0,
2258 0, 0, 0, 0, 0, 0, 111, 0, 0, 0,
2259 0, 0, 0, 0, 114, 0, 0, 0, 0, 277,
2260 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2261 0, 111, 0, 81, 0, 0, 0, 0, 111, 111,
2262 0, 0, 111, 0, 0, 0, 0, 113, 0, 0,
2263 113, 0, 113, 0, 0, 0, 0, 0, 798, 0,
2264 0, 0, 0, 0, 0, 0, 0, 0, 114, 111,
2265 111, 114, 0, 114, 0, 0, 0, 0, 277, 0,
2266 0, 0, 0, 111, 381, 0, 0, 81, 0, 0,
2267 81, 0, 81, 0, 0, 0, 0, 113, 523, 0,
2268 0, 0, 0, 0, 0, 113, 0, 978, 0, 0,
2269 0, 111, 0, 0, 0, 0, 0, 0, 114, 0,
2270 0, 0, 111, 0, 0, 0, 114, 0, 0, 0,
2271 0, 0, 0, 0, 0, 0, 0, 81, 327, -621,
2272 -621, -621, -621, 332, 333, 81, 0, -621, -621, 0,
2273 0, 0, 0, 340, 341, 0, 0, 0, 0, 0,
2274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2275 0, 111, 0, 111, 0, 0, 113, 0, 0, 111,
2276 0, 111, 382, 0, 0, 0, 343, 344, 345, 346,
2277 347, 348, 349, 350, 351, 352, 0, 114, 0, 0,
2278 0, 113, 0, 0, 0, 0, 0, 0, 113, 113,
2279 0, 0, 113, 0, 0, 0, 81, 0, 0, 0,
2280 0, 0, 114, 0, 0, 0, 0, 0, 0, 114,
2281 114, 0, 0, 114, 0, 0, 0, 0, 0, 113,
2282 113, 81, 0, 0, 0, 0, 0, 0, 81, 81,
2283 0, 0, 81, 113, 0, 0, 0, 0, 0, 0,
2284 114, 114, 0, 0, 0, 0, 0, 0, 0, 0,
2285 0, 0, 0, 0, 114, 382, 0, 0, 0, 81,
2286 81, 113, 0, 0, 0, 0, 0, 0, 0, 0,
2287 0, 0, 113, 81, 0, 0, 0, 0, 979, 0,
2288 0, 0, 114, 0, 0, 0, 0, 0, 0, 0,
2289 0, 0, 0, 114, 0, 0, 0, 975, 0, 0,
2290 0, 81, 0, 0, 0, 0, 0, 0, 0, 0,
2291 0, 0, 81, 0, 0, 0, 0, 0, 0, 0,
2292 0, 113, 0, 113, 0, 0, 0, 0, 0, 113,
2293 0, 113, 0, 0, 0, 0, 0, 0, 0, 0,
2294 0, 0, 114, 0, 114, 0, 0, 0, 0, 0,
2295 114, 0, 114, 0, 0, 0, 0, 0, 0, 0,
2296 0, 81, 0, 81, 0, 0, 0, 0, 0, 81,
2297 0, 81, -620, 4, 0, 5, 6, 7, 8, 9,
2298 0, 0, 0, 10, 11, 0, 0, 0, 12, 0,
2299 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2300 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2301 0, 27, 0, 0, 0, 0, 0, 28, 29, 30,
2302 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2303 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2304 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2305 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2306 0, 49, 50, 0, 51, 52, 0, 53, 0, 0,
2307 54, 55, 56, 57, 58, 59, 60, 61, 62, -602,
2308 0, 0, 0, 0, 0, 0, 0, -602, -602, -602,
2309 0, 0, -602, -602, -602, 0, -602, 0, 63, 64,
2310 65, 0, 751, 0, 0, -602, -602, -602, -602, 0,
2311 0, -620, 0, -620, 0, 0, -602, -602, 0, -602,
2312 -602, -602, -602, -602, 0, 0, 327, 328, 329, 330,
2313 331, 332, 333, 334, 335, 336, 337, 338, 339, 0,
2314 0, 340, 341, 0, 0, 0, 0, -602, -602, -602,
2315 -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
2316 0, 0, -602, -602, -602, 0, 755, -602, 0, 0,
2317 0, 0, 342, -602, 343, 344, 345, 346, 347, 348,
2318 349, 350, 351, 352, 0, 0, 0, -602, 0, 0,
2319 -602, 0, -106, -602, -602, -602, -602, -602, -602, -602,
2320 -602, -602, -602, -602, -602, 0, 0, 0, 0, -602,
2321 -602, -602, -602, -602, -505, 0, -602, -602, -602, 0,
2322 -602, 0, -505, -505, -505, 0, 0, -505, -505, -505,
2323 0, -505, 0, 0, 0, 0, 0, 698, 0, -505,
2324 0, -505, -505, -505, 0, 0, 0, 0, 0, 0,
2325 0, -505, -505, 0, -505, -505, -505, -505, -505, 0,
2326 0, 327, 328, 329, 330, 331, 332, 333, 334, 335,
2327 336, 337, 338, 339, 0, 0, 340, 341, 0, 0,
2328 0, 0, -505, -505, -505, -505, -505, -505, -505, -505,
2329 -505, -505, -505, -505, -505, 0, 0, -505, -505, -505,
2330 0, -505, -505, 0, 0, 0, 0, 342, -505, 343,
2331 344, 345, 346, 347, 348, 349, 350, 351, 352, 0,
2332 0, 0, -505, 0, 0, -505, 0, -505, -505, -505,
2333 -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
2334 0, 0, 0, 0, 0, -505, -505, -505, -505, -508,
2335 0, -505, -505, -505, 0, -505, 0, -508, -508, -508,
2336 0, 0, -508, -508, -508, 0, -508, 0, 0, 0,
2337 0, 0, 0, 0, -508, 0, -508, -508, -508, 0,
2338 0, 0, 0, 0, 0, 0, -508, -508, 0, -508,
2339 -508, -508, -508, -508, 0, 0, 327, 328, 329, 330,
2340 331, 332, 333, 334, 335, 336, 337, 338, 339, 0,
2341 0, 340, 341, 0, 0, 0, 0, -508, -508, -508,
2342 -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
2343 0, 0, -508, -508, -508, 0, -508, -508, 0, 0,
2344 0, 0, 342, -508, 343, 344, 345, 346, 347, 348,
2345 349, 350, 351, 352, 0, 0, 0, -508, 0, 0,
2346 -508, 0, -508, -508, -508, -508, -508, -508, -508, -508,
2347 -508, -508, -508, -508, -508, 0, 0, 0, 0, 0,
2348 -508, -508, -508, -508, -603, 0, -508, -508, -508, 0,
2349 -508, 0, -603, -603, -603, 0, 0, -603, -603, -603,
2350 0, -603, 0, 0, 0, 0, 0, 0, 0, 0,
2351 -603, -603, -603, -603, 0, 0, 0, 0, 0, 0,
2352 0, -603, -603, 0, -603, -603, -603, -603, -603, 0,
2353 0, 327, 328, 329, 330, 331, 332, 333, 334, 335,
2354 336, 337, -621, -621, 0, 0, 340, 341, 0, 0,
2355 0, 0, -603, -603, -603, -603, -603, -603, -603, -603,
2356 -603, -603, -603, -603, -603, 0, 0, -603, -603, -603,
2357 0, 0, -603, 0, 0, 0, 0, 0, -603, 343,
2358 344, 345, 346, 347, 348, 349, 350, 351, 352, 0,
2359 0, 0, -603, 0, 0, -603, 0, 0, -603, -603,
2360 -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
2361 0, 0, 0, 0, -603, -603, -603, -603, -603, -604,
2362 0, -603, -603, -603, 0, -603, 0, -604, -604, -604,
2363 0, 0, -604, -604, -604, 0, -604, 0, 0, 0,
2364 0, 0, 0, 0, 0, -604, -604, -604, -604, 0,
2365 0, 0, 0, 0, 0, 0, -604, -604, 0, -604,
2366 -604, -604, -604, -604, 0, 0, 327, 328, 329, 330,
2367 331, 332, 333, 334, 0, 336, 337, 0, 0, 0,
2368 0, 340, 341, 0, 0, 0, 0, -604, -604, -604,
2369 -604, -604, -604, -604, -604, -604, -604, -604, -604, -604,
2370 0, 0, -604, -604, -604, 0, 0, -604, 0, 0,
2371 0, 0, 0, -604, 343, 344, 345, 346, 347, 348,
2372 349, 350, 351, 352, 0, 0, 0, -604, 0, 0,
2373 -604, 0, 0, -604, -604, -604, -604, -604, -604, -604,
2374 -604, -604, -604, -604, -604, 0, 0, 0, 0, -604,
2375 -604, -604, -604, -604, -294, 0, -604, -604, -604, 0,
2376 -604, 0, -294, -294, -294, 0, 0, -294, -294, -294,
2377 0, -294, 0, 0, 0, 0, 0, 0, 0, 0,
2378 0, -294, -294, -294, 0, 0, 0, 0, 0, 0,
2379 0, -294, -294, 0, -294, -294, -294, -294, -294, 0,
2380 0, 327, 328, 329, 330, 331, 332, 333, 0, 0,
2381 336, 337, 0, 0, 0, 0, 340, 341, 0, 0,
2382 0, 0, -294, -294, -294, -294, -294, -294, -294, -294,
2383 -294, -294, -294, -294, -294, 0, 0, -294, -294, -294,
2384 0, 756, -294, 0, 0, 0, 0, 0, -294, 343,
2385 344, 345, 346, 347, 348, 349, 350, 351, 352, 0,
2386 0, 0, -294, 0, 0, -294, 0, -108, -294, -294,
2387 -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
2388 0, 0, 0, 0, 0, -294, -294, -294, -294, -432,
2389 0, -294, -294, -294, 0, -294, 0, -432, -432, -432,
2390 0, 0, -432, -432, -432, 0, -432, 0, 0, 0,
2391 0, 0, 0, 0, 0, -432, -432, -432, 0, 0,
2392 0, 0, 0, 0, 0, 0, -432, -432, 0, -432,
2393 -432, -432, -432, -432, 0, 0, 0, 0, 0, 0,
2394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2395 0, 0, 0, 0, 0, 0, 0, -432, -432, -432,
2396 -432, -432, -432, -432, -432, -432, -432, -432, -432, -432,
2397 0, 0, -432, -432, -432, 0, 0, -432, 0, 0,
2398 0, 0, 0, -432, 0, 0, 0, 0, 0, 0,
2399 0, 0, 0, 0, 0, 0, 0, -432, 0, 0,
2400 0, 0, 0, -432, 0, -432, -432, -432, -432, -432,
2401 -432, -432, -432, -432, -432, 0, 0, 0, 0, -432,
2402 -432, -432, -432, -432, -285, 227, -432, -432, -432, 0,
2403 -432, 0, -285, -285, -285, 0, 0, -285, -285, -285,
2404 0, -285, 0, 0, 0, 0, 0, 0, 0, 0,
2405 0, -285, -285, -285, 0, 0, 0, 0, 0, 0,
2406 0, -285, -285, 0, -285, -285, -285, -285, -285, 0,
2407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2408 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2409 0, 0, -285, -285, -285, -285, -285, -285, -285, -285,
2410 -285, -285, -285, -285, -285, 0, 0, -285, -285, -285,
2411 0, 0, -285, 0, 0, 0, 0, 0, -285, 0,
2412 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2413 0, 0, -285, 0, 0, -285, 0, 0, -285, -285,
2414 -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
2415 0, 0, 0, 0, 0, -285, -285, -285, -285, -422,
2416 0, -285, -285, -285, 0, -285, 0, -422, -422, -422,
2417 0, 0, -422, -422, -422, 0, -422, 0, 0, 0,
2418 0, 0, 0, 0, 0, -422, -422, -422, 0, 0,
2419 0, 0, 0, 0, 0, 0, -422, -422, 0, -422,
2420 -422, -422, -422, -422, 0, 0, 0, 0, 0, 0,
2421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2422 0, 0, 0, 0, 0, 0, 0, -422, -422, -422,
2423 -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
2424 0, 0, -422, -422, -422, 0, 0, -422, 0, 0,
2425 0, 0, 0, -422, 0, 0, 0, 0, 0, 0,
2426 0, 0, 0, 0, 0, 0, 0, -422, 0, 0,
2427 0, 0, 0, -422, 0, -422, -422, -422, -422, -422,
2428 -422, -422, -422, -422, -422, 0, 0, 0, 0, -422,
2429 -422, -422, -422, -422, -301, -422, -422, -422, -422, 0,
2430 -422, 0, -301, -301, -301, 0, 0, -301, -301, -301,
2431 0, -301, 0, 0, 0, 0, 0, 0, 0, 0,
2432 0, -301, -301, 0, 0, 0, 0, 0, 0, 0,
2433 0, -301, -301, 0, -301, -301, -301, -301, -301, 0,
2434 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2436 0, 0, -301, -301, -301, -301, -301, -301, -301, -301,
2437 -301, -301, -301, -301, -301, 0, 0, -301, -301, -301,
2438 0, 0, -301, 0, 0, 0, 0, 0, -301, 0,
2439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2440 0, 0, -301, 0, 0, 0, 0, 0, -301, 0,
2441 -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
2442 0, 0, 0, 0, 0, -301, -301, -301, -301, -602,
2443 224, -301, -301, -301, 0, -301, 0, -602, -602, -602,
2444 0, 0, 0, -602, -602, 0, -602, 0, 0, 0,
2445 0, 0, 0, 0, 0, -602, 0, 0, 0, 0,
2446 0, 0, 0, 0, 0, 0, -602, -602, 0, -602,
2447 -602, -602, -602, -602, 0, 0, 0, 0, 0, 0,
2448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2449 0, 0, 0, 0, 0, 0, 0, -602, -602, -602,
2450 -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
2451 0, 0, -602, -602, -602, 0, 700, 0, 0, 0,
2452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2453 0, 0, 0, 0, 0, 0, 0, -602, 0, 0,
2454 0, 0, -106, -602, 0, -602, -602, -602, -602, -602,
2455 -602, -602, -602, -602, -602, 0, 0, 0, 0, -602,
2456 -602, -602, -602, -97, -294, 0, -602, 0, -602, 0,
2457 -602, 0, -294, -294, -294, 0, 0, 0, -294, -294,
2458 0, -294, 0, -620, 0, 0, 0, 0, 0, 0,
2459 0, -620, -620, -620, 0, 0, -620, -620, -620, 0,
2460 -620, -294, -294, 0, -294, -294, -294, -294, -294, -620,
2461 -620, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2462 -620, -620, 0, -620, -620, -620, -620, -620, 0, 0,
2463 0, 0, -294, -294, -294, -294, -294, -294, -294, -294,
2464 -294, -294, -294, -294, -294, 0, 0, -294, -294, -294,
2465 0, 701, 0, 0, 0, 0, 0, 0, 0, 0,
2466 0, 0, 0, 0, 0, 0, 0, 0, -620, 0,
2467 0, 0, -294, 0, 0, 0, 0, -108, -294, 0,
2468 -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
2469 0, -620, 0, 0, 0, -294, -294, -294, -99, 0,
2470 0, -294, 0, -294, 0, -294, 0, 0, 0, 0,
2471 0, 0, 0, -620, -620, 0, -620, 0, 0, 227,
2472 -620, 0, -620, 248, -620, 5, 6, 7, 8, 9,
2473 -620, -620, -620, 10, 11, 0, 0, -620, 12, 0,
2474 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2475 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2476 0, 27, 0, 0, 0, 0, 0, 28, 29, 249,
2477 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2478 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2480 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2481 0, 49, 50, 0, 51, 52, 0, 53, 0, 0,
2482 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2484 0, 0, 0, 0, 0, 0, 0, 0, 63, 64,
2485 65, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2486 0, -620, 248, -620, 5, 6, 7, 8, 9, 0,
2487 0, -620, 10, 11, 0, -620, -620, 12, 0, 13,
2488 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2489 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2490 27, 0, 0, 0, 0, 0, 28, 29, 249, 31,
2491 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2492 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2494 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
2495 49, 50, 0, 51, 52, 0, 53, 0, 0, 54,
2496 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2498 0, 0, 0, 0, 0, 0, 0, 63, 64, 65,
2499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2500 -620, 248, -620, 5, 6, 7, 8, 9, 0, 0,
2501 -620, 10, 11, 0, 0, -620, 12, -620, 13, 14,
2502 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
2503 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
2504 0, 0, 0, 0, 0, 28, 29, 249, 31, 32,
2505 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2506 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2508 0, 0, 0, 0, 0, 0, 48, 0, 0, 49,
2509 50, 0, 51, 52, 0, 53, 0, 0, 54, 55,
2510 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2512 0, 0, 0, 0, 0, 0, 63, 64, 65, 0,
2513 0, 0, 0, 0, 0, 0, 0, 0, 0, -620,
2514 248, -620, 5, 6, 7, 8, 9, 0, 0, -620,
2515 10, 11, 0, 0, -620, 12, 0, 13, 14, 15,
2516 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2517 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2518 0, 0, 0, 0, 28, 29, 249, 31, 32, 33,
2519 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2520 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2522 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2523 0, 51, 52, 0, 53, 0, 0, 54, 55, 56,
2524 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2525 0, 0, 0, 248, 0, 5, 6, 7, 8, 9,
2526 0, -620, -620, 10, 11, 63, 64, 65, 12, 0,
2527 13, 14, 15, 16, 17, 18, 19, 0, -620, 0,
2528 -620, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2529 0, 27, 0, 0, 0, 0, 0, 28, 29, 249,
2530 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2531 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2533 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2534 0, 49, 50, 0, 51, 52, 0, 53, 0, 0,
2535 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2536 0, 0, 0, 0, 0, 0, 248, 0, 5, 6,
2537 7, 8, 9, 0, 0, 0, 10, 11, 63, 64,
2538 65, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2539 0, -620, 0, -620, 0, 20, 21, 22, 23, 24,
2540 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2541 28, 29, 249, 31, 32, 33, 34, 35, 36, 37,
2542 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2543 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2545 0, 48, 0, 0, 250, 50, 0, 51, 52, 0,
2546 53, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2547 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2549 0, 63, 64, 65, 0, 0, 0, 0, 0, 0,
2550 0, 0, -620, 0, -620, 248, -620, 5, 6, 7,
2551 8, 9, 0, 0, 0, 10, 11, 0, 0, 0,
2552 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2553 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2554 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2555 29, 249, 31, 32, 33, 34, 35, 36, 37, 38,
2556 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2557 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2559 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2560 0, 0, 54, 55, 56, 57, 58, 59, 60, 61,
2561 62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2563 63, 64, 65, 0, 0, 0, 0, 0, 0, 0,
2564 0, -620, 0, -620, 248, -620, 5, 6, 7, 8,
2565 9, 0, 0, 0, 10, 11, 0, 0, 0, 12,
2566 0, 13, 14, 15, 16, 17, 18, 19, 0, 0,
2567 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
2568 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
2569 249, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2570 40, 0, 41, 42, 0, 43, 44, 45, 0, 46,
2571 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2572 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
2573 0, 0, 49, 50, 0, 51, 52, 0, 53, 0,
2574 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2576 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
2577 64, 65, 0, 0, -620, 4, 0, 5, 6, 7,
2578 8, 9, -620, 0, -620, 10, 11, 0, 0, 0,
2579 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2580 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2581 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2582 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
2583 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2584 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2585 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2586 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2587 0, 0, 54, 55, 56, 57, 58, 59, 60, 61,
2588 62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2589 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2590 63, 64, 65, 0, 0, -620, 0, 0, 0, 0,
2591 0, 0, 0, -620, 248, -620, 5, 6, 7, 8,
2592 9, 0, 0, -620, 10, 11, 0, 0, 0, 12,
2593 0, 13, 14, 15, 16, 17, 18, 19, 0, 0,
2594 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
2595 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
2596 249, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2597 40, 0, 41, 42, 0, 43, 44, 45, 0, 46,
2598 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2599 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
2600 0, 0, 49, 50, 0, 51, 52, 0, 53, 0,
2601 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2602 0, 0, 0, 0, 0, 0, 0, 248, 0, 5,
2603 6, 7, 8, 9, 0, 0, 0, 10, 11, 63,
2604 64, 65, 12, 0, 13, 14, 15, 16, 17, 18,
2605 19, 0, -620, 0, -620, 0, 20, 21, 22, 23,
2606 24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
2607 0, 28, 29, 249, 31, 32, 33, 34, 35, 36,
2608 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2609 45, 0, 46, 47, 0, 0, 0, 0, 0, 0,
2610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2611 0, 0, 48, 0, 0, 49, 50, 0, 51, 52,
2612 0, 53, 0, 0, 54, 55, 56, 57, 58, 59,
2613 60, 61, 62, 0, -620, 0, 0, 0, 0, 0,
2614 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2615 10, 11, 63, 64, 65, 12, 0, 13, 14, 15,
2616 16, 17, 18, 19, 0, -620, 0, -620, 0, 20,
2617 21, 22, 23, 24, 25, 26, 0, 0, 200, 0,
2618 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2619 34, 35, 36, 37, 38, 39, 40, 201, 41, 42,
2620 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2621 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2622 0, 0, 0, 0, 0, 202, 0, 0, 203, 50,
2623 0, 51, 52, 0, 204, 205, 206, 54, 55, 56,
2624 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2625 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2626 0, 0, 0, 10, 11, 63, 207, 65, 12, 0,
2627 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2628 231, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2629 0, 27, 0, 0, 0, 0, 0, 0, 29, 0,
2630 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2631 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2633 0, 0, 0, 0, 0, 0, 0, 0, 202, 0,
2634 0, 203, 50, 0, 51, 52, 0, 0, 0, 0,
2635 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2636 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2637 7, 0, 9, 0, 0, 0, 10, 11, 63, 64,
2638 65, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2639 0, 302, 0, 303, 0, 20, 21, 22, 23, 24,
2640 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2641 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
2642 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2643 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2645 0, 202, 0, 0, 203, 50, 0, 51, 52, 0,
2646 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2647 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2648 0, 5, 6, 7, 8, 9, 0, 0, 0, 10,
2649 11, 63, 64, 65, 12, 0, 13, 14, 15, 16,
2650 17, 18, 19, 0, 0, 0, 231, 0, 20, 21,
2651 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2652 0, 0, 0, 28, 29, 30, 31, 32, 33, 34,
2653 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2654 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2656 0, 0, 0, 0, 48, 0, 0, 49, 50, 0,
2657 51, 52, 0, 53, 0, 0, 54, 55, 56, 57,
2658 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2659 0, 0, 0, 0, 5, 6, 7, 8, 9, 0,
2660 0, 0, 10, 11, 63, 64, 65, 12, 0, 13,
2661 14, 15, 16, 17, 18, 19, 0, 498, 0, 0,
2662 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2663 27, 0, 0, 0, 0, 0, 28, 29, 249, 31,
2664 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2665 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2667 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
2668 49, 50, 0, 51, 52, 0, 53, 0, 0, 54,
2669 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2671 0, 0, 0, 0, 0, 0, 0, 63, 64, 65,
2672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2673 498, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2674 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2675 137, 138, 139, 140, 141, 0, 0, 0, 142, 143,
2676 144, 384, 385, 386, 387, 149, 150, 151, 0, 0,
2677 0, 0, 0, 152, 153, 154, 155, 388, 389, 390,
2678 391, 160, 37, 38, 392, 40, 0, 0, 0, 0,
2679 0, 0, 0, 0, 162, 163, 164, 165, 166, 167,
2680 168, 169, 170, 0, 0, 171, 172, 0, 0, 173,
2681 174, 175, 176, 0, 0, 0, 0, 0, 0, 0,
2682 0, 0, 0, 177, 178, 0, 0, 0, 0, 0,
2683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2684 0, 0, 0, 0, 179, 180, 181, 182, 183, 184,
2685 185, 186, 187, 188, 0, 189, 190, 0, 0, 0,
2686 0, 0, 0, 191, 393, 118, 119, 120, 121, 122,
2687 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2688 133, 134, 135, 136, 137, 138, 139, 140, 141, 0,
2689 0, 0, 142, 143, 144, 145, 146, 147, 148, 149,
2690 150, 151, 0, 0, 0, 0, 0, 152, 153, 154,
2691 155, 156, 157, 158, 159, 160, 280, 281, 161, 282,
2692 0, 0, 0, 0, 0, 0, 0, 0, 162, 163,
2693 164, 165, 166, 167, 168, 169, 170, 0, 0, 171,
2694 172, 0, 0, 173, 174, 175, 176, 0, 0, 0,
2695 0, 0, 0, 0, 0, 0, 0, 177, 178, 0,
2696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2697 0, 0, 0, 0, 0, 0, 0, 0, 179, 180,
2698 181, 182, 183, 184, 185, 186, 187, 188, 0, 189,
2699 190, 0, 0, 0, 0, 0, 0, 191, 118, 119,
2700 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
2701 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2702 140, 141, 0, 0, 0, 142, 143, 144, 145, 146,
2703 147, 148, 149, 150, 151, 0, 0, 0, 0, 0,
2704 152, 153, 154, 155, 156, 157, 158, 159, 160, 233,
2705 0, 161, 0, 0, 0, 0, 0, 0, 0, 0,
2706 0, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2707 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
2708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2709 177, 178, 0, 0, 55, 0, 0, 0, 0, 0,
2710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2711 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2712 188, 0, 189, 190, 0, 0, 0, 0, 0, 0,
2713 191, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2714 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2715 137, 138, 139, 140, 141, 0, 0, 0, 142, 143,
2716 144, 145, 146, 147, 148, 149, 150, 151, 0, 0,
2717 0, 0, 0, 152, 153, 154, 155, 156, 157, 158,
2718 159, 160, 0, 0, 161, 0, 0, 0, 0, 0,
2719 0, 0, 0, 0, 162, 163, 164, 165, 166, 167,
2720 168, 169, 170, 0, 0, 171, 172, 0, 0, 173,
2721 174, 175, 176, 0, 0, 0, 0, 0, 0, 0,
2722 0, 0, 0, 177, 178, 0, 0, 55, 0, 0,
2723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2724 0, 0, 0, 0, 179, 180, 181, 182, 183, 184,
2725 185, 186, 187, 188, 0, 189, 190, 0, 0, 0,
2726 0, 0, 0, 191, 118, 119, 120, 121, 122, 123,
2727 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2728 134, 135, 136, 137, 138, 139, 140, 141, 0, 0,
2729 0, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2730 151, 0, 0, 0, 0, 0, 152, 153, 154, 155,
2731 156, 157, 158, 159, 160, 0, 0, 161, 0, 0,
2732 0, 0, 0, 0, 0, 0, 0, 162, 163, 164,
2733 165, 166, 167, 168, 169, 170, 0, 0, 171, 172,
2734 0, 0, 173, 174, 175, 176, 0, 0, 0, 0,
2735 0, 0, 0, 0, 0, 0, 177, 178, 0, 0,
2736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2737 0, 0, 0, 0, 0, 0, 0, 179, 180, 181,
2738 182, 183, 184, 185, 186, 187, 188, 0, 189, 190,
2739 5, 6, 7, 0, 9, 0, 191, 0, 10, 11,
2740 0, 0, 0, 12, 0, 13, 14, 15, 238, 239,
2741 18, 19, 0, 0, 0, 0, 0, 240, 241, 242,
2742 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
2743 0, 0, 0, 268, 0, 0, 32, 33, 34, 35,
2744 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
2745 44, 45, 0, 0, 0, 0, 0, 0, 0, 0,
2746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2747 0, 0, 0, 269, 0, 0, 203, 50, 0, 51,
2748 52, 0, 0, 0, 0, 54, 55, 56, 57, 58,
2749 59, 60, 61, 62, 0, 0, 0, 0, 0, 5,
2750 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
2751 0, 0, 12, 270, 13, 14, 15, 238, 239, 18,
2752 19, 271, 0, 0, 0, 0, 240, 241, 242, 23,
2753 24, 25, 26, 0, 0, 200, 0, 0, 0, 0,
2754 0, 0, 268, 0, 0, 32, 33, 34, 35, 36,
2755 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2756 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2758 0, 0, 269, 0, 0, 203, 50, 0, 51, 52,
2759 0, 0, 0, 0, 54, 55, 56, 57, 58, 59,
2760 60, 61, 62, 0, 0, 0, 0, 0, 5, 6,
2761 7, 8, 9, 0, 0, 0, 10, 11, 0, 0,
2762 0, 12, 270, 13, 14, 15, 16, 17, 18, 19,
2763 518, 0, 0, 0, 0, 20, 21, 22, 23, 24,
2764 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2765 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2766 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2767 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2769 0, 48, 0, 0, 49, 50, 0, 51, 52, 0,
2770 53, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2771 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2772 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2773 11, 63, 64, 65, 12, 0, 13, 14, 15, 16,
2774 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2775 22, 23, 24, 25, 26, 0, 0, 200, 0, 0,
2776 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2777 35, 36, 37, 38, 39, 40, 201, 41, 42, 0,
2778 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2780 0, 0, 0, 0, 202, 0, 0, 203, 50, 0,
2781 51, 52, 0, 204, 205, 206, 54, 55, 56, 57,
2782 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2783 0, 0, 0, 0, 5, 6, 7, 8, 9, 0,
2784 0, 0, 10, 11, 63, 207, 65, 12, 0, 13,
2785 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2786 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2787 27, 0, 0, 0, 0, 0, 28, 29, 0, 31,
2788 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2789 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2791 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
2792 49, 50, 0, 51, 52, 0, 53, 0, 0, 54,
2793 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2794 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2795 0, 9, 0, 0, 0, 10, 11, 63, 64, 65,
2796 12, 0, 13, 14, 15, 238, 239, 18, 19, 0,
2797 0, 0, 0, 0, 240, 241, 242, 23, 24, 25,
2798 26, 0, 0, 200, 0, 0, 0, 0, 0, 0,
2799 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2800 39, 40, 201, 41, 42, 0, 43, 44, 45, 0,
2801 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2803 202, 0, 0, 203, 50, 0, 51, 52, 0, 608,
2804 205, 206, 54, 55, 56, 57, 58, 59, 60, 61,
2805 62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2806 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2807 63, 207, 65, 12, 0, 13, 14, 15, 238, 239,
2808 18, 19, 0, 0, 0, 0, 0, 240, 241, 242,
2809 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
2810 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2811 36, 37, 38, 39, 40, 201, 41, 42, 0, 43,
2812 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2814 0, 0, 0, 202, 0, 0, 203, 50, 0, 51,
2815 52, 0, 204, 205, 0, 54, 55, 56, 57, 58,
2816 59, 60, 61, 62, 0, 0, 0, 0, 0, 0,
2817 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2818 0, 10, 11, 63, 207, 65, 12, 0, 13, 14,
2819 15, 238, 239, 18, 19, 0, 0, 0, 0, 0,
2820 240, 241, 242, 23, 24, 25, 26, 0, 0, 200,
2821 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
2822 33, 34, 35, 36, 37, 38, 39, 40, 201, 41,
2823 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2825 0, 0, 0, 0, 0, 0, 202, 0, 0, 203,
2826 50, 0, 51, 52, 0, 0, 205, 206, 54, 55,
2827 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2828 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
2829 9, 0, 0, 0, 10, 11, 63, 207, 65, 12,
2830 0, 13, 14, 15, 238, 239, 18, 19, 0, 0,
2831 0, 0, 0, 240, 241, 242, 23, 24, 25, 26,
2832 0, 0, 200, 0, 0, 0, 0, 0, 0, 29,
2833 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2834 40, 201, 41, 42, 0, 43, 44, 45, 0, 46,
2835 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2836 0, 0, 0, 0, 0, 0, 0, 0, 0, 202,
2837 0, 0, 203, 50, 0, 51, 52, 0, 608, 205,
2838 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2839 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2840 6, 7, 0, 9, 0, 0, 0, 10, 11, 63,
2841 207, 65, 12, 0, 13, 14, 15, 238, 239, 18,
2842 19, 0, 0, 0, 0, 0, 240, 241, 242, 23,
2843 24, 25, 26, 0, 0, 200, 0, 0, 0, 0,
2844 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2845 37, 38, 39, 40, 201, 41, 42, 0, 43, 44,
2846 45, 0, 46, 47, 0, 0, 0, 0, 0, 0,
2847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2848 0, 0, 202, 0, 0, 203, 50, 0, 51, 52,
2849 0, 0, 205, 0, 54, 55, 56, 57, 58, 59,
2850 60, 61, 62, 0, 0, 0, 0, 0, 0, 0,
2851 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2852 10, 11, 63, 207, 65, 12, 0, 13, 14, 15,
2853 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2854 21, 22, 23, 24, 25, 26, 0, 0, 200, 0,
2855 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2856 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2857 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2859 0, 0, 0, 0, 0, 202, 0, 0, 203, 50,
2860 0, 51, 52, 0, 512, 0, 0, 54, 55, 56,
2861 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2862 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2863 0, 0, 0, 10, 11, 63, 207, 65, 12, 0,
2864 13, 14, 15, 238, 239, 18, 19, 0, 0, 0,
2865 0, 0, 240, 241, 242, 23, 24, 25, 26, 0,
2866 0, 200, 0, 0, 0, 0, 0, 0, 29, 0,
2867 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2868 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2870 0, 0, 0, 0, 0, 0, 0, 0, 202, 0,
2871 0, 203, 50, 0, 51, 52, 0, 204, 0, 0,
2872 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2873 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2874 7, 0, 9, 0, 0, 0, 10, 11, 63, 207,
2875 65, 12, 0, 13, 14, 15, 238, 239, 18, 19,
2876 0, 0, 0, 0, 0, 240, 241, 242, 23, 24,
2877 25, 26, 0, 0, 200, 0, 0, 0, 0, 0,
2878 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
2879 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2880 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2881 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2882 0, 202, 0, 0, 203, 50, 0, 51, 52, 0,
2883 817, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2884 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2885 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2886 11, 63, 207, 65, 12, 0, 13, 14, 15, 238,
2887 239, 18, 19, 0, 0, 0, 0, 0, 240, 241,
2888 242, 23, 24, 25, 26, 0, 0, 200, 0, 0,
2889 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2890 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2891 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2893 0, 0, 0, 0, 202, 0, 0, 203, 50, 0,
2894 51, 52, 0, 512, 0, 0, 54, 55, 56, 57,
2895 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2896 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2897 0, 0, 10, 11, 63, 207, 65, 12, 0, 13,
2898 14, 15, 238, 239, 18, 19, 0, 0, 0, 0,
2899 0, 240, 241, 242, 23, 24, 25, 26, 0, 0,
2900 200, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2901 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2902 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2904 0, 0, 0, 0, 0, 0, 0, 202, 0, 0,
2905 203, 50, 0, 51, 52, 0, 608, 0, 0, 54,
2906 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2907 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2908 0, 9, 0, 0, 0, 10, 11, 63, 207, 65,
2909 12, 0, 13, 14, 15, 238, 239, 18, 19, 0,
2910 0, 0, 0, 0, 240, 241, 242, 23, 24, 25,
2911 26, 0, 0, 200, 0, 0, 0, 0, 0, 0,
2912 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2913 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2914 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2916 202, 0, 0, 203, 50, 0, 51, 52, 0, 0,
2917 0, 0, 54, 55, 56, 57, 58, 59, 60, 61,
2918 62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2919 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2920 63, 207, 65, 12, 0, 13, 14, 15, 16, 17,
2921 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2922 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
2923 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2924 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
2925 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2926 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2927 0, 0, 0, 202, 0, 0, 203, 50, 0, 51,
2928 52, 0, 0, 0, 0, 54, 55, 56, 57, 58,
2929 59, 60, 61, 62, 0, 0, 0, 0, 0, 0,
2930 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2931 0, 10, 11, 63, 207, 65, 12, 0, 13, 14,
2932 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
2933 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
2934 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
2935 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2936 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2938 0, 0, 0, 0, 0, 0, 202, 0, 0, 203,
2939 50, 0, 51, 52, 0, 0, 0, 0, 54, 55,
2940 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2941 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
2942 9, 0, 0, 0, 10, 11, 63, 64, 65, 12,
2943 0, 13, 14, 15, 238, 239, 18, 19, 0, 0,
2944 0, 0, 0, 240, 241, 242, 23, 24, 25, 26,
2945 0, 0, 200, 0, 0, 0, 0, 0, 0, 268,
2946 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2947 40, 0, 41, 42, 0, 43, 44, 45, 0, 0,
2948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2949 0, 0, 0, 0, 0, 0, 0, 0, 0, 269,
2950 0, 0, 323, 50, 0, 51, 52, 0, 324, 0,
2951 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2952 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2953 0, 0, 0, 10, 11, 0, 0, 0, 12, 270,
2954 13, 14, 15, 238, 239, 18, 19, 0, 0, 0,
2955 0, 0, 240, 241, 242, 23, 24, 25, 26, 0,
2956 0, 200, 0, 0, 0, 0, 0, 0, 268, 0,
2957 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2958 0, 41, 42, 0, 43, 44, 45, 0, 0, 0,
2959 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2960 0, 0, 0, 0, 0, 0, 0, 0, 365, 0,
2961 0, 49, 50, 0, 51, 52, 0, 53, 0, 0,
2962 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2963 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2964 0, 0, 10, 11, 0, 0, 0, 12, 270, 13,
2965 14, 15, 238, 239, 18, 19, 0, 0, 0, 0,
2966 0, 240, 241, 242, 23, 24, 25, 26, 0, 0,
2967 200, 0, 0, 0, 0, 0, 0, 268, 0, 0,
2968 32, 33, 34, 373, 36, 37, 38, 374, 40, 0,
2969 41, 42, 0, 43, 44, 45, 0, 0, 0, 0,
2970 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2971 0, 0, 0, 0, 375, 0, 0, 376, 0, 0,
2972 203, 50, 0, 51, 52, 0, 0, 0, 0, 54,
2973 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2974 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2975 0, 10, 11, 0, 0, 0, 12, 270, 13, 14,
2976 15, 238, 239, 18, 19, 0, 0, 0, 0, 0,
2977 240, 241, 242, 23, 24, 25, 26, 0, 0, 200,
2978 0, 0, 0, 0, 0, 0, 268, 0, 0, 32,
2979 33, 34, 373, 36, 37, 38, 374, 40, 0, 41,
2980 42, 0, 43, 44, 45, 0, 0, 0, 0, 0,
2981 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2982 0, 0, 0, 0, 0, 0, 376, 0, 0, 203,
2983 50, 0, 51, 52, 0, 0, 0, 0, 54, 55,
2984 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2985 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2986 10, 11, 0, 0, 0, 12, 270, 13, 14, 15,
2987 238, 239, 18, 19, 0, 0, 0, 0, 0, 240,
2988 241, 242, 23, 24, 25, 26, 0, 0, 200, 0,
2989 0, 0, 0, 0, 0, 268, 0, 0, 32, 33,
2990 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2991 0, 43, 44, 45, 0, 0, 0, 0, 0, 0,
2992 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2993 0, 0, 0, 0, 0, 269, 0, 0, 323, 50,
2994 0, 51, 52, 0, 0, 0, 0, 54, 55, 56,
2995 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2996 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2997 11, 0, 0, 0, 12, 270, 13, 14, 15, 238,
2998 239, 18, 19, 0, 0, 0, 0, 0, 240, 241,
2999 242, 23, 24, 25, 26, 0, 0, 200, 0, 0,
3000 0, 0, 0, 0, 268, 0, 0, 32, 33, 34,
3001 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
3002 43, 44, 45, 0, 0, 0, 0, 0, 0, 0,
3003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3004 0, 0, 0, 0, 894, 0, 0, 203, 50, 0,
3005 51, 52, 0, 0, 0, 0, 54, 55, 56, 57,
3006 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
3007 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
3008 0, 0, 0, 12, 270, 13, 14, 15, 238, 239,
3009 18, 19, 0, 0, 0, 0, 0, 240, 241, 242,
3010 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
3011 0, 0, 0, 268, 0, 0, 32, 33, 34, 35,
3012 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
3013 44, 45, 0, 0, 0, 0, 0, 0, 0, 0,
3014 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3015 0, 0, 0, 974, 0, 0, 203, 50, 0, 51,
3016 52, 0, 0, 0, 0, 54, 55, 56, 57, 58,
3017 59, 60, 61, 62, 0, 0, 0, 0, 0, 0,
3018 561, 562, 0, 0, 563, 0, 0, 0, 0, 0,
3019 0, 0, 0, 270, 162, 163, 164, 165, 166, 167,
3020 168, 169, 170, 0, 0, 171, 172, 0, 0, 173,
3021 174, 175, 176, 0, 0, 0, 0, 0, 0, 0,
3022 0, 0, 0, 177, 178, 0, 0, 0, 0, 0,
3023 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3024 0, 0, 0, 0, 179, 180, 181, 182, 183, 184,
3025 185, 186, 187, 188, 0, 189, 190, 598, 562, 0,
3026 0, 599, 0, 191, 0, 0, 0, 0, 0, 0,
3027 0, 162, 163, 164, 165, 166, 167, 168, 169, 170,
3028 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
3029 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3030 177, 178, 0, 0, 0, 0, 0, 0, 0, 0,
3031 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3032 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3033 188, 0, 189, 190, 612, 554, 0, 0, 613, 0,
3034 191, 0, 0, 0, 0, 0, 0, 0, 162, 163,
3035 164, 165, 166, 167, 168, 169, 170, 0, 0, 171,
3036 172, 0, 0, 173, 174, 175, 176, 0, 0, 0,
3037 0, 0, 0, 0, 0, 0, 0, 177, 178, 0,
3038 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3039 0, 0, 0, 0, 0, 0, 0, 0, 179, 180,
3040 181, 182, 183, 184, 185, 186, 187, 188, 0, 189,
3041 190, 615, 562, 0, 0, 616, 0, 191, 0, 0,
3042 0, 0, 0, 0, 0, 162, 163, 164, 165, 166,
3043 167, 168, 169, 170, 0, 0, 171, 172, 0, 0,
3044 173, 174, 175, 176, 0, 0, 0, 0, 0, 0,
3045 0, 0, 0, 0, 177, 178, 0, 0, 0, 0,
3046 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3047 0, 0, 0, 0, 0, 179, 180, 181, 182, 183,
3048 184, 185, 186, 187, 188, 0, 189, 190, 639, 554,
3049 0, 0, 640, 0, 191, 0, 0, 0, 0, 0,
3050 0, 0, 162, 163, 164, 165, 166, 167, 168, 169,
3051 170, 0, 0, 171, 172, 0, 0, 173, 174, 175,
3052 176, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3053 0, 177, 178, 0, 0, 0, 0, 0, 0, 0,
3054 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3055 0, 0, 179, 180, 181, 182, 183, 184, 185, 186,
3056 187, 188, 0, 189, 190, 642, 562, 0, 0, 643,
3057 0, 191, 0, 0, 0, 0, 0, 0, 0, 162,
3058 163, 164, 165, 166, 167, 168, 169, 170, 0, 0,
3059 171, 172, 0, 0, 173, 174, 175, 176, 0, 0,
3060 0, 0, 0, 0, 0, 0, 0, 0, 177, 178,
3061 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3062 0, 0, 0, 0, 0, 0, 0, 0, 0, 179,
3063 180, 181, 182, 183, 184, 185, 186, 187, 188, 0,
3064 189, 190, 727, 554, 0, 0, 728, 0, 191, 0,
3065 0, 0, 0, 0, 0, 0, 162, 163, 164, 165,
3066 166, 167, 168, 169, 170, 0, 0, 171, 172, 0,
3067 0, 173, 174, 175, 176, 0, 0, 0, 0, 0,
3068 0, 0, 0, 0, 0, 177, 178, 0, 0, 0,
3069 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3070 0, 0, 0, 0, 0, 0, 179, 180, 181, 182,
3071 183, 184, 185, 186, 187, 188, 0, 189, 190, 730,
3072 562, 0, 0, 731, 0, 191, 0, 0, 0, 0,
3073 0, 0, 0, 162, 163, 164, 165, 166, 167, 168,
3074 169, 170, 0, 0, 171, 172, 0, 0, 173, 174,
3075 175, 176, 0, 0, 0, 0, 0, 0, 0, 0,
3076 0, 0, 177, 178, 0, 0, 0, 0, 0, 0,
3077 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3078 0, 0, 0, 179, 180, 181, 182, 183, 184, 185,
3079 186, 187, 188, 0, 189, 190, 737, 554, 0, 0,
3080 738, 0, 191, 0, 0, 0, 0, 0, 0, 0,
3081 162, 163, 164, 165, 166, 167, 168, 169, 170, 0,
3082 0, 171, 172, 0, 0, 173, 174, 175, 176, 0,
3083 0, 0, 0, 0, 0, 0, 0, 0, 0, 177,
3084 178, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3085 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3086 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
3087 0, 189, 190, 1002, 554, 0, 0, 1003, 0, 191,
3088 0, 0, 0, 0, 0, 0, 0, 162, 163, 164,
3089 165, 166, 167, 168, 169, 170, 0, 0, 171, 172,
3090 0, 0, 173, 174, 175, 176, 0, 0, 0, 0,
3091 0, 0, 0, 0, 0, 0, 177, 178, 0, 0,
3092 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3093 0, 0, 0, 0, 0, 0, 0, 179, 180, 181,
3094 182, 183, 184, 185, 186, 187, 188, 0, 189, 190,
3095 1037, 554, 0, 0, 1038, 0, 191, 0, 0, 0,
3096 0, 0, 0, 0, 162, 163, 164, 165, 166, 167,
3097 168, 169, 170, 0, 0, 171, 172, 0, 0, 173,
3098 174, 175, 176, 0, 0, 0, 0, 0, 0, 0,
3099 0, 0, 0, 177, 178, 0, 0, 0, 0, 0,
3100 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3101 0, 0, 0, 0, 179, 180, 181, 182, 183, 184,
3102 185, 186, 187, 188, 0, 189, 190, 1040, 562, 0,
3103 0, 1041, 0, 191, 0, 0, 0, 0, 0, 0,
3104 0, 162, 163, 164, 165, 166, 167, 168, 169, 170,
3105 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
3106 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3107 177, 178, 0, 0, 0, 0, 0, 0, 0, 0,
3108 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3109 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3110 188, 0, 189, 190, 0, 0, 0, 0, 0, 0,
3114 #define yypact_value_is_default(yystate) \ 3115 ((yystate) == (-808)) 3117 #define yytable_value_is_error(yytable_value) \ 3118 ((yytable_value) == (-621)) 3122 2, 87, 55, 96, 90, 353, 79, 355, 472, 16,
3123 17, 22, 359, 20, 354, 326, 614, 2, 8, 4,
3124 16, 17, 8, 28, 20, 326, 412, 27, 49, 29,
3125 74, 4, 220, 53, 420, 86, 87, 420, 28, 90,
3126 575, 94, 28, 641, 594, 49, 668, 685, 574, 51,
3127 52, 399, 468, 67, 262, 51, 779, 472, 266, 79,
3128 53, 376, 508, 74, 90, 511, 2, 415, 4, 417,
3129 715, 91, 92, 93, 719, 458, 416, 440, 25, 787,
3130 16, 17, 25, 13, 20, 16, 17, 13, 67, 20,
3131 875, 26, 25, 27, 873, 443, 903, 250, 37, 38,
3132 58, 29, 518, 16, 17, 64, 8, 20, 68, 87,
3133 68, 90, 777, 49, 139, 113, 141, 53, 85, 61,
3134 51, 52, 13, 471, 907, 25, 28, 76, 64, 61,
3135 470, 729, 596, 651, 0, 113, 134, 802, 96, 97,
3136 85, 779, 740, 79, 286, 15, 288, 17, 290, 787,
3137 86, 87, 294, 55, 90, 91, 92, 93, 141, 13,
3138 939, 25, 120, 123, 124, 125, 133, 26, 110, 118,
3139 323, 13, 25, 25, 25, 898, 59, 60, 110, 230,
3140 25, 232, 203, 111, 806, 807, 736, 134, 133, 13,
3141 130, 134, 94, 657, 744, 130, 56, 1004, 271, 243,
3142 1, 134, 141, 136, 134, 139, 991, 141, 259, 139,
3143 136, 141, 214, 139, 993, 141, 237, 224, 220, 226,
3144 227, 307, 308, 309, 310, 227, 252, 950, 224, 250,
3145 226, 1014, 25, 581, 134, 621, 622, 945, 252, 622,
3146 580, 429, 657, 140, 690, 593, 250, 1026, 139, 25,
3147 141, 271, 592, 771, 772, 140, 307, 308, 309, 310,
3148 898, 312, 313, 248, 886, 903, 140, 203, 268, 632,
3149 134, 130, 136, 252, 360, 361, 591, 136, 230, 743,
3150 696, 134, 134, 134, 929, 139, 1009, 141, 224, 134,
3151 226, 227, 87, 224, 230, 226, 232, 139, 670, 141,
3152 672, 237, 323, 255, 324, 61, 258, 945, 85, 360,
3153 361, 224, 248, 226, 250, 139, 117, 141, 113, 323,
3154 113, 306, 134, 259, 375, 321, 311, 853, 743, 141,
3155 326, 324, 85, 306, 85, 271, 362, 113, 139, 134,
3156 141, 134, 964, 485, 137, 61, 140, 354, 141, 65,
3157 492, 107, 354, 109, 26, 873, 133, 875, 134, 37,
3158 38, 137, 321, 85, 85, 141, 1004, 326, 85, 97,
3159 306, 307, 308, 309, 310, 311, 312, 313, 725, 132,
3160 133, 931, 133, 362, 140, 321, 85, 323, 324, 85,
3161 326, 107, 120, 109, 929, 468, 697, 59, 60, 378,
3162 28, 85, 52, 714, 54, 55, 56, 57, 61, 416,
3163 132, 133, 133, 85, 416, 2, 133, 4, 354, 26,
3164 356, 939, 940, 611, 360, 361, 428, 429, 636, 16,
3165 17, 87, 437, 20, 133, 703, 132, 133, 440, 375,
3166 990, 1039, 710, 402, 403, 518, 85, 437, 468, 133,
3167 87, 437, 134, 355, 107, 440, 109, 113, 130, 141,
3168 132, 133, 49, 470, 136, 113, 402, 403, 470, 85,
3169 422, 134, 936, 991, 426, 993, 113, 64, 85, 431,
3170 416, 412, 868, 68, 134, 868, 52, 140, 54, 55,
3171 56, 57, 113, 132, 133, 447, 87, 399, 518, 86,
3172 87, 87, 85, 90, 440, 507, 508, 87, 1026, 511,
3173 100, 883, 884, 557, 450, 417, 888, 133, 890, 891,
3174 87, 565, 113, 130, 455, 132, 133, 113, 87, 136,
3175 134, 87, 468, 113, 470, 437, 121, 122, 123, 124,
3176 125, 443, 542, 134, 595, 87, 113, 558, 58, 570,
3177 133, 572, 54, 87, 85, 566, 600, 113, 68, 85,
3178 560, 63, 64, 136, 637, 517, 568, 134, 134, 471,
3179 917, 113, 760, 580, 625, 56, 923, 134, 580, 113,
3180 576, 113, 518, 61, 141, 592, 96, 97, 88, 600,
3181 592, 136, 134, 26, 573, 574, 141, 134, 600, 137,
3182 605, 132, 133, 141, 87, 136, 132, 133, 587, 611,
3183 120, 14, 15, 134, 614, 605, 203, 637, 136, 605,
3184 52, 130, 87, 696, 56, 997, 998, 999, 1000, 107,
3185 632, 109, 110, 136, 570, 136, 572, 224, 68, 226,
3186 227, 641, 137, 230, 580, 232, 732, 632, 113, 735,
3187 237, 113, 85, 138, 131, 748, 592, 85, 594, 595,
3188 704, 248, 61, 250, 666, 686, 668, 711, 689, 134,
3189 691, 1019, 259, 56, 134, 1047, 696, 68, 1018, 581,
3190 68, 732, 94, 635, 735, 685, 110, 110, 690, 625,
3191 621, 593, 110, 746, 110, 134, 632, 130, 85, 132,
3192 133, 637, 139, 605, 132, 133, 17, 56, 107, 711,
3193 109, 110, 714, 715, 134, 717, 25, 719, 714, 306,
3194 307, 308, 309, 310, 311, 312, 313, 26, 68, 729,
3195 61, 577, 137, 134, 321, 131, 323, 130, 697, 326,
3196 740, 700, 701, 83, 84, 132, 133, 10, 707, 708,
3197 686, 140, 134, 689, 733, 691, 134, 843, 760, 85,
3198 696, 697, 134, 140, 700, 701, 745, 354, 134, 356,
3199 85, 707, 708, 360, 361, 87, 107, 777, 109, 110,
3200 800, 121, 122, 123, 124, 125, 85, 52, 375, 134,
3201 742, 113, 843, 85, 815, 68, 732, 136, 8, 735,
3202 736, 113, 802, 131, 806, 807, 132, 133, 744, 761,
3203 83, 84, 13, 61, 134, 402, 403, 132, 133, 840,
3204 61, 134, 134, 775, 113, 52, 847, 848, 134, 416,
3205 851, 130, 134, 132, 133, 52, 838, 136, 134, 841,
3206 132, 133, 15, 52, 746, 118, 119, 120, 121, 122,
3207 123, 124, 125, 440, 85, 134, 115, 878, 879, 107,
3208 138, 109, 110, 450, 800, 134, 107, 131, 109, 110,
3209 829, 892, 134, 893, 853, 113, 855, 85, 724, 815,
3210 134, 85, 118, 470, 886, 134, 16, 17, 54, 55,
3211 20, 57, 134, 829, 134, 741, 916, 63, 64, 920,
3212 139, 132, 133, 10, 840, 87, 131, 843, 860, 10,
3213 134, 847, 848, 685, 88, 851, 46, 47, 9, 685,
3214 872, 51, 52, 134, 132, 133, 118, 929, 132, 133,
3215 137, 113, 134, 56, 64, 65, 201, 134, 134, 204,
3216 205, 206, 878, 879, 52, 134, 54, 55, 56, 57,
3217 58, 131, 134, 134, 10, 134, 892, 893, 108, 980,
3218 68, 982, 964, 131, 134, 134, 56, 988, 450, 134,
3219 970, 134, 134, 134, 685, 68, 136, 136, 134, 91,
3220 916, 89, 93, 570, 920, 572, 711, 1021, 96, 97,
3221 83, 84, 771, 580, 685, 931, 1014, 749, 844, 52,
3222 846, 54, 55, 56, 57, 592, 294, 594, 595, 781,
3223 856, 1018, 120, 785, 1020, 861, 1018, 99, 1020, 1021,
3224 57, 787, 94, 781, 790, 936, 898, 120, 121, 122,
3225 123, 124, 125, 900, 779, 396, 89, -1, 625, 1039,
3226 -1, -1, 95, -1, 980, 632, 982, 40, 41, 42,
3227 43, 44, 988, -1, 990, 52, 321, 54, 55, 56,
3228 57, 326, -1, 52, -1, 54, 55, 56, 57, -1,
3229 781, 201, -1, -1, 204, 205, 206, 207, -1, -1,
3230 926, 927, 1018, 2, 52, 4, 54, 55, 56, 57,
3231 -1, -1, 89, -1, 224, -1, 226, 227, 95, 686,
3232 89, -1, 689, -1, 691, -1, -1, -1, -1, -1,
3233 697, -1, -1, 700, 701, -1, -1, 1019, -1, -1,
3234 707, 708, -1, -1, -1, -1, 898, -1, 900, -1,
3235 49, 903, -1, 905, 53, -1, -1, 903, -1, 905,
3236 -1, -1, -1, 989, -1, 732, 411, 412, 735, 736,
3237 -1, -1, -1, -1, -1, 420, -1, 744, -1, -1,
3238 79, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3239 -1, -1, 91, 92, 93, 94, 1022, -1, 1024, 945,
3240 -1, 947, -1, 809, 810, -1, 952, 898, -1, 900,
3241 455, 321, 903, 458, 905, -1, 326, 327, 328, 329,
3242 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
3243 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
3244 350, 351, 352, -1, 354, -1, -1, -1, 815, -1,
3245 -1, -1, 1004, -1, 1006, -1, -1, 1009, 1004, 1011,
3246 1006, -1, 829, -1, -1, 1011, -1, 512, -1, -1,
3247 -1, -1, -1, 840, -1, -1, 843, -1, -1, -1,
3248 847, 848, 1028, -1, 851, -1, -1, -1, -1, -1,
3249 -1, -1, 402, 403, -1, -1, -1, 1049, -1, -1,
3250 410, 411, 412, 1049, 203, -1, 416, -1, 418, 419,
3251 420, 878, 879, 1004, -1, 1006, -1, -1, 1009, -1,
3252 1011, -1, -1, -1, -1, 892, -1, -1, -1, 439,
3253 -1, 576, -1, -1, 444, -1, -1, -1, 237, -1,
3254 -1, -1, -1, -1, -1, 455, -1, -1, 458, 248,
3255 -1, 250, -1, 920, -1, 961, 962, -1, 1049, 965,
3256 470, 967, 968, 608, 931, -1, -1, -1, -1, -1,
3257 -1, -1, 271, -1, -1, -1, 621, 622, -1, -1,
3258 -1, -1, -1, 2, -1, 4, 496, 497, -1, -1,
3259 -1, -1, -1, -1, 52, -1, 54, 55, 56, 57,
3260 58, -1, 512, -1, 649, -1, -1, 306, -1, -1,
3261 68, -1, 311, 980, -1, 982, -1, -1, -1, -1,
3262 -1, 988, -1, 990, 323, 324, 1032, 1033, 1034, 1035,
3263 49, 89, -1, -1, 53, -1, -1, 95, 96, 97,
3264 52, -1, 54, 55, 56, 57, 58, -1, 693, 1055,
3265 -1, 1018, -1, -1, -1, -1, 68, 356, -1, -1,
3266 79, -1, 120, -1, -1, 123, 576, -1, -1, 714,
3267 580, -1, 91, 92, 93, 94, -1, 89, -1, -1,
3268 -1, -1, 592, 141, 96, 97, -1, -1, -1, 52,
3269 -1, 54, 55, 56, 57, 58, -1, -1, 608, -1,
3270 -1, -1, -1, -1, -1, 68, -1, -1, 120, -1,
3271 -1, 621, 622, -1, -1, -1, -1, -1, -1, -1,
3272 -1, -1, -1, 768, -1, -1, 89, -1, -1, -1,
3273 -1, -1, 95, 96, 97, -1, -1, -1, -1, 649,
3274 -1, 440, -1, -1, -1, -1, -1, -1, -1, -1,
3275 -1, 450, -1, 2, -1, 4, -1, 120, -1, -1,
3276 123, -1, -1, -1, -1, -1, -1, -1, -1, 468,
3277 -1, -1, 817, 136, 2, -1, 4, -1, -1, -1,
3278 -1, -1, -1, 693, 203, -1, -1, 697, 698, -1,
3279 700, 701, -1, 2, -1, 4, -1, 707, 708, -1,
3280 49, -1, -1, -1, 714, 850, -1, -1, -1, -1,
3281 52, -1, 54, 55, 56, 57, 58, -1, 237, 518,
3282 -1, 49, -1, 868, -1, 53, 68, -1, -1, 248,
3283 -1, 250, -1, -1, -1, -1, -1, -1, -1, -1,
3284 49, 751, -1, -1, -1, 755, 756, 89, 758, 759,
3285 -1, 79, 271, 95, 96, 97, -1, -1, 768, -1,
3286 -1, -1, -1, 91, 92, 93, -1, -1, -1, -1,
3287 -1, 570, -1, 572, -1, -1, -1, -1, 120, -1,
3288 -1, 123, 91, -1, -1, -1, -1, 306, -1, -1,
3289 -1, -1, 311, -1, 136, 594, -1, -1, -1, -1,
3290 -1, -1, -1, -1, 323, 324, -1, 817, -1, -1,
3291 -1, 821, -1, -1, -1, -1, -1, -1, -1, 829,
3292 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3293 -1, -1, -1, 632, -1, -1, -1, 356, 637, -1,
3294 850, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3295 -1, -1, -1, -1, 203, -1, -1, 867, 868, -1,
3296 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3297 76, 77, 78, 79, 80, 203, -1, 83, 84, -1,
3298 -1, -1, -1, -1, -1, -1, -1, 686, 237, -1,
3299 689, -1, 691, -1, 203, -1, -1, 696, -1, 248,
3300 -1, 250, -1, -1, -1, -1, -1, -1, 114, 237,
3301 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3302 248, 440, 250, -1, -1, -1, -1, -1, 237, -1,
3303 -1, 450, -1, -1, -1, 141, -1, 736, -1, 248,
3304 -1, 250, -1, 271, -1, 744, -1, -1, -1, 468,
3305 -1, -1, -1, -1, -1, -1, -1, 306, -1, -1,
3306 -1, 52, 311, 54, 55, 56, 57, 58, -1, -1,
3307 -1, -1, -1, -1, 323, -1, -1, 68, 306, -1,
3308 -1, -1, -1, 311, -1, -1, -1, -1, -1, -1,
3309 -1, -1, -1, -1, -1, 323, 324, 306, 89, 518,
3310 -1, 800, 311, -1, 95, 96, 97, 356, 1018, -1,
3311 -1, -1, -1, -1, 323, -1, 815, 326, -1, -1,
3312 -1, -1, -1, -1, -1, -1, -1, -1, 356, 120,
3313 44, -1, 123, -1, -1, -1, -1, -1, -1, -1,
3314 -1, 840, -1, -1, -1, -1, -1, 356, 847, 848,
3315 -1, 570, 851, 572, 68, 69, 70, 71, 72, 73,
3316 74, 75, 76, 77, 78, 79, 80, -1, -1, 83,
3317 84, -1, -1, -1, -1, 594, -1, -1, -1, 878,
3318 879, -1, 52, -1, 54, 55, 56, 57, 58, -1,
3319 -1, 440, -1, 892, 893, -1, -1, -1, 68, -1,
3320 114, 450, 116, 117, 118, 119, 120, 121, 122, 123,
3321 124, 125, 440, 632, -1, -1, -1, 916, 637, 89,
3322 134, 920, 450, -1, -1, 95, 96, 97, -1, -1,
3323 -1, 440, 931, -1, -1, -1, -1, -1, -1, -1,
3324 468, 450, -1, -1, -1, -1, -1, -1, -1, -1,
3325 120, -1, -1, 123, -1, -1, -1, -1, -1, -1,
3326 -1, -1, -1, -1, -1, -1, -1, 686, -1, -1,
3327 689, -1, 691, -1, -1, -1, -1, 696, -1, -1,
3328 -1, 980, -1, 982, 52, 53, -1, -1, 56, 988,
3329 518, 990, -1, -1, -1, -1, -1, -1, 66, 67,
3330 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
3331 78, -1, -1, 81, 82, 83, 84, 736, -1, -1,
3332 -1, 570, -1, 572, -1, 744, -1, 95, 96, -1,
3333 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3334 -1, -1, 570, -1, 572, 594, -1, -1, 116, 117,
3335 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
3336 128, 570, -1, 572, -1, -1, 594, 135, -1, -1,
3337 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3338 -1, 800, -1, 632, -1, 594, -1, -1, -1, -1,
3339 -1, -1, -1, -1, -1, -1, 815, -1, -1, -1,
3340 -1, -1, -1, -1, 632, -1, -1, -1, -1, 637,
3341 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3342 -1, 840, -1, 632, -1, -1, -1, -1, 847, 848,
3343 -1, -1, 851, -1, -1, -1, -1, 686, -1, -1,
3344 689, -1, 691, -1, -1, -1, -1, -1, 676, -1,
3345 -1, -1, -1, -1, -1, -1, -1, -1, 686, 878,
3346 879, 689, -1, 691, -1, -1, -1, -1, 696, -1,
3347 -1, -1, -1, 892, 893, -1, -1, 686, -1, -1,
3348 689, -1, 691, -1, -1, -1, -1, 736, 697, -1,
3349 -1, -1, -1, -1, -1, 744, -1, 916, -1, -1,
3350 -1, 920, -1, -1, -1, -1, -1, -1, 736, -1,
3351 -1, -1, 931, -1, -1, -1, 744, -1, -1, -1,
3352 -1, -1, -1, -1, -1, -1, -1, 736, 68, 69,
3353 70, 71, 72, 73, 74, 744, -1, 77, 78, -1,
3354 -1, -1, -1, 83, 84, -1, -1, -1, -1, -1,
3355 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3356 -1, 980, -1, 982, -1, -1, 815, -1, -1, 988,
3357 -1, 990, 800, -1, -1, -1, 116, 117, 118, 119,
3358 120, 121, 122, 123, 124, 125, -1, 815, -1, -1,
3359 -1, 840, -1, -1, -1, -1, -1, -1, 847, 848,
3360 -1, -1, 851, -1, -1, -1, 815, -1, -1, -1,
3361 -1, -1, 840, -1, -1, -1, -1, -1, -1, 847,
3362 848, -1, -1, 851, -1, -1, -1, -1, -1, 878,
3363 879, 840, -1, -1, -1, -1, -1, -1, 847, 848,
3364 -1, -1, 851, 892, -1, -1, -1, -1, -1, -1,
3365 878, 879, -1, -1, -1, -1, -1, -1, -1, -1,
3366 -1, -1, -1, -1, 892, 893, -1, -1, -1, 878,
3367 879, 920, -1, -1, -1, -1, -1, -1, -1, -1,
3368 -1, -1, 931, 892, -1, -1, -1, -1, 916, -1,
3369 -1, -1, 920, -1, -1, -1, -1, -1, -1, -1,
3370 -1, -1, -1, 931, -1, -1, -1, 916, -1, -1,
3371 -1, 920, -1, -1, -1, -1, -1, -1, -1, -1,
3372 -1, -1, 931, -1, -1, -1, -1, -1, -1, -1,
3373 -1, 980, -1, 982, -1, -1, -1, -1, -1, 988,
3374 -1, 990, -1, -1, -1, -1, -1, -1, -1, -1,
3375 -1, -1, 980, -1, 982, -1, -1, -1, -1, -1,
3376 988, -1, 990, -1, -1, -1, -1, -1, -1, -1,
3377 -1, 980, -1, 982, -1, -1, -1, -1, -1, 988,
3378 -1, 990, 0, 1, -1, 3, 4, 5, 6, 7,
3379 -1, -1, -1, 11, 12, -1, -1, -1, 16, -1,
3380 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3381 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3382 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3383 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3384 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3385 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3386 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3387 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
3388 98, 99, 100, 101, 102, 103, 104, 105, 106, 0,
3389 -1, -1, -1, -1, -1, -1, -1, 8, 9, 10,
3390 -1, -1, 13, 14, 15, -1, 17, -1, 126, 127,
3391 128, -1, 44, -1, -1, 26, 27, 28, 29, -1,
3392 -1, 139, -1, 141, -1, -1, 37, 38, -1, 40,
3393 41, 42, 43, 44, -1, -1, 68, 69, 70, 71,
3394 72, 73, 74, 75, 76, 77, 78, 79, 80, -1,
3395 -1, 83, 84, -1, -1, -1, -1, 68, 69, 70,
3396 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3397 -1, -1, 83, 84, 85, -1, 87, 88, -1, -1,
3398 -1, -1, 114, 94, 116, 117, 118, 119, 120, 121,
3399 122, 123, 124, 125, -1, -1, -1, 108, -1, -1,
3400 111, -1, 113, 114, 115, 116, 117, 118, 119, 120,
3401 121, 122, 123, 124, 125, -1, -1, -1, -1, 130,
3402 131, 132, 133, 134, 0, -1, 137, 138, 139, -1,
3403 141, -1, 8, 9, 10, -1, -1, 13, 14, 15,
3404 -1, 17, -1, -1, -1, -1, -1, 44, -1, 25,
3405 -1, 27, 28, 29, -1, -1, -1, -1, -1, -1,
3406 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3407 -1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3408 77, 78, 79, 80, -1, -1, 83, 84, -1, -1,
3409 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3410 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3411 -1, 87, 88, -1, -1, -1, -1, 114, 94, 116,
3412 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
3413 -1, -1, 108, -1, -1, 111, -1, 113, 114, 115,
3414 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3415 -1, -1, -1, -1, -1, 131, 132, 133, 134, 0,
3416 -1, 137, 138, 139, -1, 141, -1, 8, 9, 10,
3417 -1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
3418 -1, -1, -1, -1, 25, -1, 27, 28, 29, -1,
3419 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3420 41, 42, 43, 44, -1, -1, 68, 69, 70, 71,
3421 72, 73, 74, 75, 76, 77, 78, 79, 80, -1,
3422 -1, 83, 84, -1, -1, -1, -1, 68, 69, 70,
3423 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3424 -1, -1, 83, 84, 85, -1, 87, 88, -1, -1,
3425 -1, -1, 114, 94, 116, 117, 118, 119, 120, 121,
3426 122, 123, 124, 125, -1, -1, -1, 108, -1, -1,
3427 111, -1, 113, 114, 115, 116, 117, 118, 119, 120,
3428 121, 122, 123, 124, 125, -1, -1, -1, -1, -1,
3429 131, 132, 133, 134, 0, -1, 137, 138, 139, -1,
3430 141, -1, 8, 9, 10, -1, -1, 13, 14, 15,
3431 -1, 17, -1, -1, -1, -1, -1, -1, -1, -1,
3432 26, 27, 28, 29, -1, -1, -1, -1, -1, -1,
3433 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3434 -1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3435 77, 78, 79, 80, -1, -1, 83, 84, -1, -1,
3436 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3437 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3438 -1, -1, 88, -1, -1, -1, -1, -1, 94, 116,
3439 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
3440 -1, -1, 108, -1, -1, 111, -1, -1, 114, 115,
3441 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3442 -1, -1, -1, -1, 130, 131, 132, 133, 134, 0,
3443 -1, 137, 138, 139, -1, 141, -1, 8, 9, 10,
3444 -1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
3445 -1, -1, -1, -1, -1, 26, 27, 28, 29, -1,
3446 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3447 41, 42, 43, 44, -1, -1, 68, 69, 70, 71,
3448 72, 73, 74, 75, -1, 77, 78, -1, -1, -1,
3449 -1, 83, 84, -1, -1, -1, -1, 68, 69, 70,
3450 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3451 -1, -1, 83, 84, 85, -1, -1, 88, -1, -1,
3452 -1, -1, -1, 94, 116, 117, 118, 119, 120, 121,
3453 122, 123, 124, 125, -1, -1, -1, 108, -1, -1,
3454 111, -1, -1, 114, 115, 116, 117, 118, 119, 120,
3455 121, 122, 123, 124, 125, -1, -1, -1, -1, 130,
3456 131, 132, 133, 134, 0, -1, 137, 138, 139, -1,
3457 141, -1, 8, 9, 10, -1, -1, 13, 14, 15,
3458 -1, 17, -1, -1, -1, -1, -1, -1, -1, -1,
3459 -1, 27, 28, 29, -1, -1, -1, -1, -1, -1,
3460 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3461 -1, 68, 69, 70, 71, 72, 73, 74, -1, -1,
3462 77, 78, -1, -1, -1, -1, 83, 84, -1, -1,
3463 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3464 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3465 -1, 87, 88, -1, -1, -1, -1, -1, 94, 116,
3466 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
3467 -1, -1, 108, -1, -1, 111, -1, 113, 114, 115,
3468 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3469 -1, -1, -1, -1, -1, 131, 132, 133, 134, 0,
3470 -1, 137, 138, 139, -1, 141, -1, 8, 9, 10,
3471 -1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
3472 -1, -1, -1, -1, -1, 26, 27, 28, -1, -1,
3473 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3474 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
3475 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3476 -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
3477 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3478 -1, -1, 83, 84, 85, -1, -1, 88, -1, -1,
3479 -1, -1, -1, 94, -1, -1, -1, -1, -1, -1,
3480 -1, -1, -1, -1, -1, -1, -1, 108, -1, -1,
3481 -1, -1, -1, 114, -1, 116, 117, 118, 119, 120,
3482 121, 122, 123, 124, 125, -1, -1, -1, -1, 130,
3483 131, 132, 133, 134, 0, 136, 137, 138, 139, -1,
3484 141, -1, 8, 9, 10, -1, -1, 13, 14, 15,
3485 -1, 17, -1, -1, -1, -1, -1, -1, -1, -1,
3486 -1, 27, 28, 29, -1, -1, -1, -1, -1, -1,
3487 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3488 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3489 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3490 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3491 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3492 -1, -1, 88, -1, -1, -1, -1, -1, 94, -1,
3493 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3494 -1, -1, 108, -1, -1, 111, -1, -1, 114, 115,
3495 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3496 -1, -1, -1, -1, -1, 131, 132, 133, 134, 0,
3497 -1, 137, 138, 139, -1, 141, -1, 8, 9, 10,
3498 -1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
3499 -1, -1, -1, -1, -1, 26, 27, 28, -1, -1,
3500 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3501 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
3502 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3503 -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
3504 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3505 -1, -1, 83, 84, 85, -1, -1, 88, -1, -1,
3506 -1, -1, -1, 94, -1, -1, -1, -1, -1, -1,
3507 -1, -1, -1, -1, -1, -1, -1, 108, -1, -1,
3508 -1, -1, -1, 114, -1, 116, 117, 118, 119, 120,
3509 121, 122, 123, 124, 125, -1, -1, -1, -1, 130,
3510 131, 132, 133, 134, 0, 136, 137, 138, 139, -1,
3511 141, -1, 8, 9, 10, -1, -1, 13, 14, 15,
3512 -1, 17, -1, -1, -1, -1, -1, -1, -1, -1,
3513 -1, 27, 28, -1, -1, -1, -1, -1, -1, -1,
3514 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3515 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3516 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3517 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3518 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3519 -1, -1, 88, -1, -1, -1, -1, -1, 94, -1,
3520 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3521 -1, -1, 108, -1, -1, -1, -1, -1, 114, -1,
3522 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3523 -1, -1, -1, -1, -1, 131, 132, 133, 134, 0,
3524 136, 137, 138, 139, -1, 141, -1, 8, 9, 10,
3525 -1, -1, -1, 14, 15, -1, 17, -1, -1, -1,
3526 -1, -1, -1, -1, -1, 26, -1, -1, -1, -1,
3527 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3528 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
3529 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3530 -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
3531 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3532 -1, -1, 83, 84, 85, -1, 87, -1, -1, -1,
3533 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3534 -1, -1, -1, -1, -1, -1, -1, 108, -1, -1,
3535 -1, -1, 113, 114, -1, 116, 117, 118, 119, 120,
3536 121, 122, 123, 124, 125, -1, -1, -1, -1, 130,
3537 131, 132, 133, 134, 0, -1, 137, -1, 139, -1,
3538 141, -1, 8, 9, 10, -1, -1, -1, 14, 15,
3539 -1, 17, -1, 0, -1, -1, -1, -1, -1, -1,
3540 -1, 8, 9, 10, -1, -1, 13, 14, 15, -1,
3541 17, 37, 38, -1, 40, 41, 42, 43, 44, 26,
3542 27, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3543 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3544 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3545 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3546 -1, 87, -1, -1, -1, -1, -1, -1, -1, -1,
3547 -1, -1, -1, -1, -1, -1, -1, -1, 85, -1,
3548 -1, -1, 108, -1, -1, -1, -1, 113, 114, -1,
3549 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3550 -1, 108, -1, -1, -1, 131, 132, 133, 134, -1,
3551 -1, 137, -1, 139, -1, 141, -1, -1, -1, -1,
3552 -1, -1, -1, 130, 131, -1, 133, -1, -1, 136,
3553 137, -1, 139, 1, 141, 3, 4, 5, 6, 7,
3554 8, 9, 10, 11, 12, -1, -1, 15, 16, -1,
3555 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3556 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3557 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3558 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3559 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3560 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3561 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3562 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
3563 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3564 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3565 -1, -1, -1, -1, -1, -1, -1, -1, 126, 127,
3566 128, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3567 -1, 139, 1, 141, 3, 4, 5, 6, 7, -1,
3568 -1, 10, 11, 12, -1, 14, 15, 16, -1, 18,
3569 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3570 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3571 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3572 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3573 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3574 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3575 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3576 89, 90, -1, 92, 93, -1, 95, -1, -1, 98,
3577 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
3578 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3579 -1, -1, -1, -1, -1, -1, -1, 126, 127, 128,
3580 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3581 139, 1, 141, 3, 4, 5, 6, 7, -1, -1,
3582 10, 11, 12, -1, -1, 15, 16, 17, 18, 19,
3583 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3584 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3585 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
3586 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3587 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3588 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3589 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3590 90, -1, 92, 93, -1, 95, -1, -1, 98, 99,
3591 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
3592 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3593 -1, -1, -1, -1, -1, -1, 126, 127, 128, -1,
3594 -1, -1, -1, -1, -1, -1, -1, -1, -1, 139,
3595 1, 141, 3, 4, 5, 6, 7, -1, -1, 10,
3596 11, 12, -1, -1, 15, 16, -1, 18, 19, 20,
3597 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3598 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3599 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
3600 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3601 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3602 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3603 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3604 -1, 92, 93, -1, 95, -1, -1, 98, 99, 100,
3605 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
3606 -1, -1, -1, 1, -1, 3, 4, 5, 6, 7,
3607 -1, 9, 10, 11, 12, 126, 127, 128, 16, -1,
3608 18, 19, 20, 21, 22, 23, 24, -1, 139, -1,
3609 141, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3610 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3611 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3612 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3613 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3614 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3615 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
3616 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3617 -1, -1, -1, -1, -1, -1, 1, -1, 3, 4,
3618 5, 6, 7, -1, -1, -1, 11, 12, 126, 127,
3619 128, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3620 -1, 139, -1, 141, -1, 30, 31, 32, 33, 34,
3621 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3622 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3623 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
3624 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3625 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3626 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3627 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
3628 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
3629 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3630 -1, 126, 127, 128, -1, -1, -1, -1, -1, -1,
3631 -1, -1, 137, -1, 139, 1, 141, 3, 4, 5,
3632 6, 7, -1, -1, -1, 11, 12, -1, -1, -1,
3633 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3634 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3635 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3636 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
3637 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3638 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3639 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3640 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3641 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
3642 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3643 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3644 126, 127, 128, -1, -1, -1, -1, -1, -1, -1,
3645 -1, 137, -1, 139, 1, 141, 3, 4, 5, 6,
3646 7, -1, -1, -1, 11, 12, -1, -1, -1, 16,
3647 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3648 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3649 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
3650 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3651 57, -1, 59, 60, -1, 62, 63, 64, -1, 66,
3652 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3653 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3654 -1, -1, 89, 90, -1, 92, 93, -1, 95, -1,
3655 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3656 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3657 -1, -1, -1, -1, -1, -1, -1, -1, -1, 126,
3658 127, 128, -1, -1, 131, 1, -1, 3, 4, 5,
3659 6, 7, 139, -1, 141, 11, 12, -1, -1, -1,
3660 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3661 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3662 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3663 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
3664 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3665 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3666 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3667 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3668 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
3669 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3670 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3671 126, 127, 128, -1, -1, 131, -1, -1, -1, -1,
3672 -1, -1, -1, 139, 1, 141, 3, 4, 5, 6,
3673 7, -1, -1, 10, 11, 12, -1, -1, -1, 16,
3674 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3675 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3676 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
3677 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3678 57, -1, 59, 60, -1, 62, 63, 64, -1, 66,
3679 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3680 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3681 -1, -1, 89, 90, -1, 92, 93, -1, 95, -1,
3682 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3683 -1, -1, -1, -1, -1, -1, -1, 1, -1, 3,
3684 4, 5, 6, 7, -1, -1, -1, 11, 12, 126,
3685 127, 128, 16, -1, 18, 19, 20, 21, 22, 23,
3686 24, -1, 139, -1, 141, -1, 30, 31, 32, 33,
3687 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3688 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3689 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3690 64, -1, 66, 67, -1, -1, -1, -1, -1, -1,
3691 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3692 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3693 -1, 95, -1, -1, 98, 99, 100, 101, 102, 103,
3694 104, 105, 106, -1, 108, -1, -1, -1, -1, -1,
3695 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3696 11, 12, 126, 127, 128, 16, -1, 18, 19, 20,
3697 21, 22, 23, 24, -1, 139, -1, 141, -1, 30,
3698 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3699 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3700 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3701 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3702 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3703 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3704 -1, 92, 93, -1, 95, 96, 97, 98, 99, 100,
3705 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
3706 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
3707 -1, -1, -1, 11, 12, 126, 127, 128, 16, -1,
3708 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3709 141, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3710 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
3711 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3712 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3713 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3714 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3715 -1, 89, 90, -1, 92, 93, -1, -1, -1, -1,
3716 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3717 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
3718 5, -1, 7, -1, -1, -1, 11, 12, 126, 127,
3719 128, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3720 -1, 139, -1, 141, -1, 30, 31, 32, 33, 34,
3721 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3722 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
3723 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
3724 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3725 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3726 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3727 -1, -1, -1, 98, 99, 100, 101, 102, 103, 104,
3728 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
3729 -1, 3, 4, 5, 6, 7, -1, -1, -1, 11,
3730 12, 126, 127, 128, 16, -1, 18, 19, 20, 21,
3731 22, 23, 24, -1, -1, -1, 141, -1, 30, 31,
3732 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3733 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3734 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3735 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3736 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3737 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3738 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
3739 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
3740 -1, -1, -1, -1, 3, 4, 5, 6, 7, -1,
3741 -1, -1, 11, 12, 126, 127, 128, 16, -1, 18,
3742 19, 20, 21, 22, 23, 24, -1, 139, -1, -1,
3743 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3744 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3745 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3746 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3748 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3749 89, 90, -1, 92, 93, -1, 95, -1, -1, 98,
3750 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
3751 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3752 -1, -1, -1, -1, -1, -1, -1, 126, 127, 128,
3753 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3754 139, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3755 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3756 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
3757 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
3758 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3759 52, 53, 54, 55, 56, 57, -1, -1, -1, -1,
3760 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
3761 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
3762 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
3763 -1, -1, -1, 95, 96, -1, -1, -1, -1, -1,
3764 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3765 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121,
3766 122, 123, 124, 125, -1, 127, 128, -1, -1, -1,
3767 -1, -1, -1, 135, 136, 3, 4, 5, 6, 7,
3768 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
3769 18, 19, 20, 21, 22, 23, 24, 25, 26, -1,
3770 -1, -1, 30, 31, 32, 33, 34, 35, 36, 37,
3771 38, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3772 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3773 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
3774 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
3775 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
3776 -1, -1, -1, -1, -1, -1, -1, 95, 96, -1,
3777 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3778 -1, -1, -1, -1, -1, -1, -1, -1, 116, 117,
3779 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
3780 128, -1, -1, -1, -1, -1, -1, 135, 3, 4,
3781 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3782 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3783 25, 26, -1, -1, -1, 30, 31, 32, 33, 34,
3784 35, 36, 37, 38, 39, -1, -1, -1, -1, -1,
3785 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3786 -1, 56, -1, -1, -1, -1, -1, -1, -1, -1,
3787 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3788 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
3789 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3790 95, 96, -1, -1, 99, -1, -1, -1, -1, -1,
3791 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3792 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3793 125, -1, 127, 128, -1, -1, -1, -1, -1, -1,
3794 135, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3795 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3796 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
3797 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
3798 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3799 52, 53, -1, -1, 56, -1, -1, -1, -1, -1,
3800 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
3801 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
3802 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
3803 -1, -1, -1, 95, 96, -1, -1, 99, -1, -1,
3804 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3805 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121,
3806 122, 123, 124, 125, -1, 127, 128, -1, -1, -1,
3807 -1, -1, -1, 135, 3, 4, 5, 6, 7, 8,
3808 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
3809 19, 20, 21, 22, 23, 24, 25, 26, -1, -1,
3810 -1, 30, 31, 32, 33, 34, 35, 36, 37, 38,
3811 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3812 49, 50, 51, 52, 53, -1, -1, 56, -1, -1,
3813 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
3814 69, 70, 71, 72, 73, 74, -1, -1, 77, 78,
3815 -1, -1, 81, 82, 83, 84, -1, -1, -1, -1,
3816 -1, -1, -1, -1, -1, -1, 95, 96, -1, -1,
3817 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3818 -1, -1, -1, -1, -1, -1, -1, 116, 117, 118,
3819 119, 120, 121, 122, 123, 124, 125, -1, 127, 128,
3820 3, 4, 5, -1, 7, -1, 135, -1, 11, 12,
3821 -1, -1, -1, 16, -1, 18, 19, 20, 21, 22,
3822 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3823 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3824 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3825 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
3826 63, 64, -1, -1, -1, -1, -1, -1, -1, -1,
3827 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3828 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3829 93, -1, -1, -1, -1, 98, 99, 100, 101, 102,
3830 103, 104, 105, 106, -1, -1, -1, -1, -1, 3,
3831 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
3832 -1, -1, 16, 126, 18, 19, 20, 21, 22, 23,
3833 24, 134, -1, -1, -1, -1, 30, 31, 32, 33,
3834 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3835 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3836 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3837 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3838 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3839 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3840 -1, -1, -1, -1, 98, 99, 100, 101, 102, 103,
3841 104, 105, 106, -1, -1, -1, -1, -1, 3, 4,
3842 5, 6, 7, -1, -1, -1, 11, 12, -1, -1,
3843 -1, 16, 126, 18, 19, 20, 21, 22, 23, 24,
3844 134, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3845 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3846 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3847 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
3848 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3849 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3850 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3851 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
3852 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
3853 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3854 12, 126, 127, 128, 16, -1, 18, 19, 20, 21,
3855 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3856 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3857 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3858 52, 53, 54, 55, 56, 57, 58, 59, 60, -1,
3859 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3860 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3861 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3862 92, 93, -1, 95, 96, 97, 98, 99, 100, 101,
3863 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
3864 -1, -1, -1, -1, 3, 4, 5, 6, 7, -1,
3865 -1, -1, 11, 12, 126, 127, 128, 16, -1, 18,
3866 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3867 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3868 39, -1, -1, -1, -1, -1, 45, 46, -1, 48,
3869 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3870 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3871 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3872 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3873 89, 90, -1, 92, 93, -1, 95, -1, -1, 98,
3874 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
3875 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3876 -1, 7, -1, -1, -1, 11, 12, 126, 127, 128,
3877 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3878 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3879 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
3880 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
3881 56, 57, 58, 59, 60, -1, 62, 63, 64, -1,
3882 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3883 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3884 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3885 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
3886 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3887 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
3888 126, 127, 128, 16, -1, 18, 19, 20, 21, 22,
3889 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3890 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3891 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3892 53, 54, 55, 56, 57, 58, 59, 60, -1, 62,
3893 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3894 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3895 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3896 93, -1, 95, 96, -1, 98, 99, 100, 101, 102,
3897 103, 104, 105, 106, -1, -1, -1, -1, -1, -1,
3898 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3899 -1, 11, 12, 126, 127, 128, 16, -1, 18, 19,
3900 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3901 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3902 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
3903 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
3904 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3905 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3906 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3907 90, -1, 92, 93, -1, -1, 96, 97, 98, 99,
3908 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
3909 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
3910 7, -1, -1, -1, 11, 12, 126, 127, 128, 16,
3911 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3912 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3913 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
3914 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
3915 57, 58, 59, 60, -1, 62, 63, 64, -1, 66,
3916 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3917 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3918 -1, -1, 89, 90, -1, 92, 93, -1, 95, 96,
3919 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3920 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
3921 4, 5, -1, 7, -1, -1, -1, 11, 12, 126,
3922 127, 128, 16, -1, 18, 19, 20, 21, 22, 23,
3923 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3924 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3925 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3926 54, 55, 56, 57, 58, 59, 60, -1, 62, 63,
3927 64, -1, 66, 67, -1, -1, -1, -1, -1, -1,
3928 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3929 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3930 -1, -1, 96, -1, 98, 99, 100, 101, 102, 103,
3931 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
3932 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3933 11, 12, 126, 127, 128, 16, -1, 18, 19, 20,
3934 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3935 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3936 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3937 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3938 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3939 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3940 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3941 -1, 92, 93, -1, 95, -1, -1, 98, 99, 100,
3942 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
3943 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
3944 -1, -1, -1, 11, 12, 126, 127, 128, 16, -1,
3945 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3946 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3947 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
3948 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3949 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3950 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3951 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3952 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
3953 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3954 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
3955 5, -1, 7, -1, -1, -1, 11, 12, 126, 127,
3956 128, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3957 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3958 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3959 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
3960 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
3961 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3962 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3963 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3964 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
3965 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
3966 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3967 12, 126, 127, 128, 16, -1, 18, 19, 20, 21,
3968 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3969 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3970 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3971 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3972 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3973 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3974 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3975 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
3976 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
3977 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3978 -1, -1, 11, 12, 126, 127, 128, 16, -1, 18,
3979 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3980 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3981 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3982 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3983 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3984 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3985 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3986 89, 90, -1, 92, 93, -1, 95, -1, -1, 98,
3987 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
3988 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3989 -1, 7, -1, -1, -1, 11, 12, 126, 127, 128,
3990 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3991 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3992 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
3993 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
3994 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3995 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3996 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3997 86, -1, -1, 89, 90, -1, 92, 93, -1, -1,
3998 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
3999 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4000 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4001 126, 127, 128, 16, -1, 18, 19, 20, 21, 22,
4002 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4003 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4004 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4005 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
4006 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
4007 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4008 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
4009 93, -1, -1, -1, -1, 98, 99, 100, 101, 102,
4010 103, 104, 105, 106, -1, -1, -1, -1, -1, -1,
4011 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4012 -1, 11, 12, 126, 127, 128, 16, -1, 18, 19,
4013 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4014 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4015 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4016 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4017 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
4018 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4019 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
4020 90, -1, 92, 93, -1, -1, -1, -1, 98, 99,
4021 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
4022 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
4023 7, -1, -1, -1, 11, 12, 126, 127, 128, 16,
4024 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4025 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4026 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
4027 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
4028 57, -1, 59, 60, -1, 62, 63, 64, -1, -1,
4029 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4030 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
4031 -1, -1, 89, 90, -1, 92, 93, -1, 95, -1,
4032 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
4033 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4034 -1, -1, -1, 11, 12, -1, -1, -1, 16, 126,
4035 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4036 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4037 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4038 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4039 -1, 59, 60, -1, 62, 63, 64, -1, -1, -1,
4040 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4041 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
4042 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
4043 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
4044 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4045 -1, -1, 11, 12, -1, -1, -1, 16, 126, 18,
4046 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4047 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4048 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4049 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4050 59, 60, -1, 62, 63, 64, -1, -1, -1, -1,
4051 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4052 -1, -1, -1, -1, 83, -1, -1, 86, -1, -1,
4053 89, 90, -1, 92, 93, -1, -1, -1, -1, 98,
4054 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
4055 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4056 -1, 11, 12, -1, -1, -1, 16, 126, 18, 19,
4057 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4058 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4059 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4060 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4061 60, -1, 62, 63, 64, -1, -1, -1, -1, -1,
4062 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4063 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
4064 90, -1, 92, 93, -1, -1, -1, -1, 98, 99,
4065 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
4066 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4067 11, 12, -1, -1, -1, 16, 126, 18, 19, 20,
4068 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4069 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4070 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4071 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4072 -1, 62, 63, 64, -1, -1, -1, -1, -1, -1,
4073 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4074 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
4075 -1, 92, 93, -1, -1, -1, -1, 98, 99, 100,
4076 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
4077 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
4078 12, -1, -1, -1, 16, 126, 18, 19, 20, 21,
4079 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4080 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4081 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4082 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
4083 62, 63, 64, -1, -1, -1, -1, -1, -1, -1,
4084 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4085 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
4086 92, 93, -1, -1, -1, -1, 98, 99, 100, 101,
4087 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
4088 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4089 -1, -1, -1, 16, 126, 18, 19, 20, 21, 22,
4090 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4091 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4092 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4093 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
4094 63, 64, -1, -1, -1, -1, -1, -1, -1, -1,
4095 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4096 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
4097 93, -1, -1, -1, -1, 98, 99, 100, 101, 102,
4098 103, 104, 105, 106, -1, -1, -1, -1, -1, -1,
4099 52, 53, -1, -1, 56, -1, -1, -1, -1, -1,
4100 -1, -1, -1, 126, 66, 67, 68, 69, 70, 71,
4101 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
4102 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
4103 -1, -1, -1, 95, 96, -1, -1, -1, -1, -1,
4104 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4105 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121,
4106 122, 123, 124, 125, -1, 127, 128, 52, 53, -1,
4107 -1, 56, -1, 135, -1, -1, -1, -1, -1, -1,
4108 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
4109 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
4110 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4111 95, 96, -1, -1, -1, -1, -1, -1, -1, -1,
4112 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4113 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
4114 125, -1, 127, 128, 52, 53, -1, -1, 56, -1,
4115 135, -1, -1, -1, -1, -1, -1, -1, 66, 67,
4116 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
4117 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
4118 -1, -1, -1, -1, -1, -1, -1, 95, 96, -1,
4119 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4120 -1, -1, -1, -1, -1, -1, -1, -1, 116, 117,
4121 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
4122 128, 52, 53, -1, -1, 56, -1, 135, -1, -1,
4123 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
4124 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
4125 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
4126 -1, -1, -1, -1, 95, 96, -1, -1, -1, -1,
4127 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4128 -1, -1, -1, -1, -1, 116, 117, 118, 119, 120,
4129 121, 122, 123, 124, 125, -1, 127, 128, 52, 53,
4130 -1, -1, 56, -1, 135, -1, -1, -1, -1, -1,
4131 -1, -1, 66, 67, 68, 69, 70, 71, 72, 73,
4132 74, -1, -1, 77, 78, -1, -1, 81, 82, 83,
4133 84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4134 -1, 95, 96, -1, -1, -1, -1, -1, -1, -1,
4135 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4136 -1, -1, 116, 117, 118, 119, 120, 121, 122, 123,
4137 124, 125, -1, 127, 128, 52, 53, -1, -1, 56,
4138 -1, 135, -1, -1, -1, -1, -1, -1, -1, 66,
4139 67, 68, 69, 70, 71, 72, 73, 74, -1, -1,
4140 77, 78, -1, -1, 81, 82, 83, 84, -1, -1,
4141 -1, -1, -1, -1, -1, -1, -1, -1, 95, 96,
4142 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4143 -1, -1, -1, -1, -1, -1, -1, -1, -1, 116,
4144 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
4145 127, 128, 52, 53, -1, -1, 56, -1, 135, -1,
4146 -1, -1, -1, -1, -1, -1, 66, 67, 68, 69,
4147 70, 71, 72, 73, 74, -1, -1, 77, 78, -1,
4148 -1, 81, 82, 83, 84, -1, -1, -1, -1, -1,
4149 -1, -1, -1, -1, -1, 95, 96, -1, -1, -1,
4150 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4151 -1, -1, -1, -1, -1, -1, 116, 117, 118, 119,
4152 120, 121, 122, 123, 124, 125, -1, 127, 128, 52,
4153 53, -1, -1, 56, -1, 135, -1, -1, -1, -1,
4154 -1, -1, -1, 66, 67, 68, 69, 70, 71, 72,
4155 73, 74, -1, -1, 77, 78, -1, -1, 81, 82,
4156 83, 84, -1, -1, -1, -1, -1, -1, -1, -1,
4157 -1, -1, 95, 96, -1, -1, -1, -1, -1, -1,
4158 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4159 -1, -1, -1, 116, 117, 118, 119, 120, 121, 122,
4160 123, 124, 125, -1, 127, 128, 52, 53, -1, -1,
4161 56, -1, 135, -1, -1, -1, -1, -1, -1, -1,
4162 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
4163 -1, 77, 78, -1, -1, 81, 82, 83, 84, -1,
4164 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
4165 96, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4166 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4167 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
4168 -1, 127, 128, 52, 53, -1, -1, 56, -1, 135,
4169 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
4170 69, 70, 71, 72, 73, 74, -1, -1, 77, 78,
4171 -1, -1, 81, 82, 83, 84, -1, -1, -1, -1,
4172 -1, -1, -1, -1, -1, -1, 95, 96, -1, -1,
4173 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4174 -1, -1, -1, -1, -1, -1, -1, 116, 117, 118,
4175 119, 120, 121, 122, 123, 124, 125, -1, 127, 128,
4176 52, 53, -1, -1, 56, -1, 135, -1, -1, -1,
4177 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
4178 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
4179 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
4180 -1, -1, -1, 95, 96, -1, -1, -1, -1, -1,
4181 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4182 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121,
4183 122, 123, 124, 125, -1, 127, 128, 52, 53, -1,
4184 -1, 56, -1, 135, -1, -1, -1, -1, -1, -1,
4185 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
4186 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
4187 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4188 95, 96, -1, -1, -1, -1, -1, -1, -1, -1,
4189 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4190 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
4191 125, -1, 127, 128, -1, -1, -1, -1, -1, -1,
4199 0, 143, 144, 0, 1, 3, 4, 5, 6, 7,
4200 11, 12, 16, 18, 19, 20, 21, 22, 23, 24,
4201 30, 31, 32, 33, 34, 35, 36, 39, 45, 46,
4202 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4203 57, 59, 60, 62, 63, 64, 66, 67, 86, 89,
4204 90, 92, 93, 95, 98, 99, 100, 101, 102, 103,
4205 104, 105, 106, 126, 127, 128, 145, 146, 147, 154,
4206 156, 157, 159, 160, 163, 164, 165, 167, 168, 169,
4207 171, 172, 182, 196, 215, 216, 217, 218, 219, 220,
4208 221, 222, 223, 224, 225, 251, 252, 266, 267, 268,
4209 269, 270, 271, 272, 275, 277, 278, 290, 292, 293,
4210 294, 295, 296, 297, 298, 329, 340, 147, 3, 4,
4211 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
4212 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
4213 25, 26, 30, 31, 32, 33, 34, 35, 36, 37,
4214 38, 39, 45, 46, 47, 48, 49, 50, 51, 52,
4215 53, 56, 66, 67, 68, 69, 70, 71, 72, 73,
4216 74, 77, 78, 81, 82, 83, 84, 95, 96, 116,
4217 117, 118, 119, 120, 121, 122, 123, 124, 125, 127,
4218 128, 135, 175, 176, 177, 178, 180, 181, 290, 292,
4219 39, 58, 86, 89, 95, 96, 97, 127, 164, 172,
4220 182, 184, 189, 192, 194, 215, 294, 295, 297, 298,
4221 327, 328, 189, 189, 136, 190, 191, 136, 186, 190,
4222 136, 141, 334, 54, 177, 334, 148, 130, 21, 22,
4223 30, 31, 32, 163, 182, 215, 182, 56, 1, 47,
4224 89, 150, 151, 152, 154, 166, 167, 340, 198, 199,
4225 185, 194, 327, 340, 184, 326, 327, 340, 46, 86,
4226 126, 134, 171, 196, 215, 294, 295, 298, 243, 244,
4227 54, 55, 57, 175, 282, 291, 281, 282, 283, 140,
4228 273, 140, 279, 140, 276, 140, 280, 59, 60, 159,
4229 182, 182, 139, 141, 333, 338, 339, 40, 41, 42,
4230 43, 44, 37, 38, 26, 130, 186, 190, 257, 28,
4231 249, 113, 134, 89, 95, 168, 113, 68, 69, 70,
4232 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
4233 83, 84, 114, 116, 117, 118, 119, 120, 121, 122,
4234 123, 124, 125, 85, 132, 133, 197, 157, 158, 158,
4235 202, 204, 158, 333, 339, 86, 165, 172, 215, 231,
4236 294, 295, 298, 52, 56, 83, 86, 173, 174, 215,
4237 294, 295, 298, 174, 33, 34, 35, 36, 49, 50,
4238 51, 52, 56, 136, 175, 296, 324, 85, 133, 332,
4239 257, 269, 87, 87, 134, 184, 56, 184, 184, 184,
4240 113, 88, 134, 193, 340, 85, 132, 133, 87, 87,
4241 134, 193, 189, 334, 335, 189, 188, 189, 194, 327,
4242 340, 157, 335, 157, 54, 63, 64, 155, 136, 183,
4243 130, 150, 85, 133, 87, 154, 153, 166, 137, 333,
4244 339, 335, 335, 157, 138, 134, 141, 337, 134, 337,
4245 131, 337, 334, 56, 59, 60, 168, 170, 134, 85,
4246 132, 133, 245, 61, 107, 109, 110, 284, 110, 284,
4247 110, 65, 284, 110, 110, 274, 284, 110, 61, 110,
4248 110, 110, 274, 110, 61, 110, 68, 68, 139, 147,
4249 158, 158, 158, 158, 154, 157, 157, 259, 258, 94,
4250 161, 250, 95, 159, 184, 194, 195, 166, 134, 171,
4251 134, 156, 159, 172, 182, 184, 195, 182, 182, 182,
4252 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
4253 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
4254 182, 182, 182, 52, 53, 56, 180, 256, 330, 331,
4255 188, 52, 53, 56, 180, 255, 330, 149, 150, 13,
4256 227, 338, 227, 158, 158, 333, 17, 260, 56, 85,
4257 132, 133, 25, 157, 52, 56, 173, 1, 117, 299,
4258 338, 85, 132, 133, 211, 325, 212, 332, 52, 56,
4259 330, 159, 182, 159, 182, 179, 182, 184, 95, 184,
4260 192, 327, 52, 56, 188, 52, 56, 328, 335, 137,
4261 335, 134, 134, 335, 177, 201, 182, 145, 131, 330,
4262 330, 182, 130, 335, 152, 200, 327, 134, 170, 52,
4263 56, 188, 52, 56, 52, 54, 55, 56, 57, 58,
4264 68, 89, 95, 96, 97, 120, 123, 136, 247, 302,
4265 304, 305, 306, 307, 308, 309, 312, 313, 314, 315,
4266 318, 319, 320, 321, 322, 286, 285, 140, 284, 140,
4267 140, 140, 182, 182, 76, 118, 238, 239, 340, 238,
4268 162, 238, 184, 134, 335, 170, 134, 113, 44, 334,
4269 87, 87, 186, 190, 254, 334, 336, 87, 87, 186,
4270 190, 253, 10, 226, 8, 262, 340, 150, 13, 150,
4271 27, 228, 338, 228, 260, 194, 226, 52, 56, 188,
4272 52, 56, 206, 209, 338, 300, 208, 52, 56, 173,
4273 188, 149, 157, 136, 301, 304, 213, 186, 187, 190,
4274 340, 44, 177, 184, 193, 87, 87, 336, 87, 87,
4275 327, 157, 131, 145, 335, 337, 168, 336, 113, 184,
4276 52, 89, 95, 232, 233, 234, 306, 304, 246, 134,
4277 303, 134, 323, 340, 52, 134, 323, 134, 303, 52,
4278 134, 303, 52, 287, 54, 55, 57, 289, 298, 52,
4279 58, 235, 237, 240, 308, 310, 311, 314, 316, 317,
4280 320, 322, 334, 150, 150, 238, 150, 95, 184, 170,
4281 182, 115, 159, 182, 159, 182, 161, 186, 138, 87,
4282 159, 182, 159, 182, 161, 187, 184, 195, 263, 340,
4283 15, 230, 340, 14, 229, 230, 230, 203, 205, 226,
4284 134, 227, 336, 158, 338, 158, 149, 336, 226, 335,
4285 304, 149, 338, 175, 257, 249, 182, 87, 134, 335,
4286 131, 184, 234, 134, 306, 134, 335, 240, 29, 111,
4287 248, 302, 307, 318, 320, 309, 314, 322, 308, 315,
4288 320, 308, 288, 113, 86, 215, 240, 118, 134, 236,
4289 134, 323, 323, 134, 236, 134, 236, 139, 10, 131,
4290 150, 10, 184, 182, 159, 182, 88, 264, 340, 150,
4291 9, 265, 340, 158, 226, 226, 150, 150, 184, 150,
4292 228, 210, 338, 226, 335, 226, 214, 335, 233, 134,
4293 95, 232, 137, 150, 150, 134, 303, 134, 303, 323,
4294 134, 303, 134, 303, 303, 150, 215, 56, 85, 118,
4295 235, 317, 320, 310, 314, 308, 316, 320, 308, 52,
4296 241, 242, 305, 131, 86, 172, 215, 294, 295, 298,
4297 227, 150, 227, 226, 226, 230, 260, 261, 207, 149,
4298 301, 134, 233, 134, 306, 10, 131, 308, 320, 308,
4299 308, 108, 52, 56, 134, 236, 134, 236, 323, 134,
4300 236, 134, 236, 236, 134, 334, 56, 85, 132, 133,
4301 150, 150, 150, 226, 149, 233, 134, 303, 134, 303,
4302 303, 303, 308, 320, 308, 308, 242, 52, 56, 188,
4303 52, 56, 262, 229, 226, 226, 233, 308, 236, 134,
4304 236, 236, 236, 336, 303, 308, 236
4307 #define yyerrok (yyerrstatus = 0) 4308 #define yyclearin (yychar = YYEMPTY) 4309 #define YYEMPTY (-2) 4312 #define YYACCEPT goto yyacceptlab 4313 #define YYABORT goto yyabortlab 4314 #define YYERROR goto yyerrorlab 4324 #define YYFAIL goto yyerrlab 4332 #define YYRECOVERING() (!!yyerrstatus) 4334 #define YYBACKUP(Token, Value) \ 4336 if (yychar == YYEMPTY && yylen == 1) \ 4345 parser_yyerror (parser, YY_("syntax error: cannot back up")); \ 4352 #define YYERRCODE 256 4359 #define YYRHSLOC(Rhs, K) ((Rhs)[K]) 4360 #ifndef YYLLOC_DEFAULT 4361 # define YYLLOC_DEFAULT(Current, Rhs, N) \ 4365 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ 4366 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ 4367 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ 4368 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ 4372 (Current).first_line = (Current).last_line = \ 4373 YYRHSLOC (Rhs, 0).last_line; \ 4374 (Current).first_column = (Current).last_column = \ 4375 YYRHSLOC (Rhs, 0).last_column; \ 4383 #ifndef YY_LOCATION_PRINT 4384 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 4391 # define YYLEX yylex (&yylval, YYLEX_PARAM) 4393 # define YYLEX yylex (&yylval, parser) 4401 # define YYFPRINTF fprintf 4404 # define YYDPRINTF(Args) \ 4410 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 4414 YYFPRINTF (stderr, "%s ", Title); \ 4415 yy_symbol_print (stderr, \ 4416 Type, Value, parser); \ 4417 YYFPRINTF (stderr, "\n"); \ 4427 #if (defined __STDC__ || defined __C99__FUNC__ \ 4428 || defined __cplusplus || defined _MSC_VER) 4436 YYSTYPE const *
const yyvaluep;
4445 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
4461 #if (defined __STDC__ || defined __C99__FUNC__ \ 4462 || defined __cplusplus || defined _MSC_VER) 4470 YYSTYPE const *
const yyvaluep;
4488 #if (defined __STDC__ || defined __C99__FUNC__ \ 4489 || defined __cplusplus || defined _MSC_VER) 4500 for (; yybottom <= yytop; yybottom++)
4502 int yybot = *yybottom;
4508 # define YY_STACK_PRINT(Bottom, Top) \ 4511 yy_stack_print ((Bottom), (Top)); \ 4519 #if (defined __STDC__ || defined __C99__FUNC__ \ 4520 || defined __cplusplus || defined _MSC_VER) 4531 int yynrhs =
yyr2[yyrule];
4533 unsigned long int yylno =
yyrline[yyrule];
4534 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu):\n",
4537 for (yyi = 0; yyi < yynrhs; yyi++)
4541 &(yyvsp[(yyi + 1) - (yynrhs)])
4547 # define YY_REDUCE_PRINT(Rule) \ 4550 yy_reduce_print (yyvsp, Rule, parser); \ 4559 # define YYDPRINTF(Args) 4560 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) 4561 # define YY_STACK_PRINT(Bottom, Top) 4562 # define YY_REDUCE_PRINT(Rule) 4568 # define YYINITDEPTH 200 4579 # define YYMAXDEPTH 10000 4586 # if defined __GLIBC__ && defined _STRING_H 4587 # define yystrlen strlen 4590 #if (defined __STDC__ || defined __C99__FUNC__ \ 4591 || defined __cplusplus || defined _MSC_VER) 4601 for (yylen = 0; yystr[yylen]; yylen++)
4609 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE 4610 # define yystpcpy stpcpy 4614 #if (defined __STDC__ || defined __C99__FUNC__ \ 4615 || defined __cplusplus || defined _MSC_VER) 4617 yystpcpy (
char *yydest,
const char *yysrc)
4626 const char *yys = yysrc;
4628 while ((*yyd++ = *yys++) !=
'\0')
4650 char const *yyp = yystr;
4657 goto do_not_strip_quotes;
4661 goto do_not_strip_quotes;
4674 do_not_strip_quotes: ;
4680 return yystpcpy (yyres, yystr) - yyres;
4699 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
4701 const char *yyformat = 0;
4703 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
4737 int yyn =
yypact[*yyssp];
4738 yyarg[yycount++] =
yytname[yytoken];
4744 int yyxbegin = yyn < 0 ? -yyn : 0;
4746 int yychecklim =
YYLAST - yyn + 1;
4750 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
4754 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
4760 yyarg[yycount++] =
yytname[yyx];
4762 if (! (yysize <= yysize1
4772 # define YYCASE_(N, S) \ 4777 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
4778 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
4779 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
4780 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
4781 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
4785 yysize1 = yysize +
yystrlen (yyformat);
4790 if (*yymsg_alloc < yysize)
4792 *yymsg_alloc = 2 * yysize;
4793 if (! (yysize <= *yymsg_alloc
4805 while ((*yyp = *yyformat) !=
'\0')
4806 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
4826 #if (defined __STDC__ || defined __C99__FUNC__ \ 4827 || defined __cplusplus || defined _MSC_VER) 4856 #ifdef YYPARSE_PARAM 4857 #if defined __STDC__ || defined __cplusplus 4858 int yyparse (
void *YYPARSE_PARAM);
4863 #if defined __STDC__ || defined __cplusplus 4875 #ifdef YYPARSE_PARAM 4876 #if (defined __STDC__ || defined __C99__FUNC__ \ 4877 || defined __cplusplus || defined _MSC_VER) 4883 void *YYPARSE_PARAM;
4886 #if (defined __STDC__ || defined __C99__FUNC__ \ 4887 || defined __cplusplus || defined _MSC_VER) 4940 char *yymsg = yymsgbuf;
4941 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
4944 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) 4955 YYDPRINTF ((stderr,
"Starting parse\n"));
4982 if (yyss + yystacksize - 1 <= yyssp)
4985 YYSIZE_T yysize = yyssp - yyss + 1;
4999 yyoverflow (
YY_(
"memory exhausted"),
5000 &yyss1, yysize *
sizeof (*yyssp),
5001 &yyvs1, yysize *
sizeof (*yyvsp),
5008 # ifndef YYSTACK_RELOCATE 5009 goto yyexhaustedlab;
5013 goto yyexhaustedlab;
5023 goto yyexhaustedlab;
5026 # undef YYSTACK_RELOCATE 5033 yyssp = yyss + yysize - 1;
5034 yyvsp = yyvs + yysize - 1;
5036 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
5037 (
unsigned long int) yystacksize));
5039 if (yyss + yystacksize - 1 <= yyssp)
5043 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
5068 YYDPRINTF ((stderr,
"Reading a token: "));
5072 if (yychar <=
YYEOF)
5074 yychar = yytoken =
YYEOF;
5075 YYDPRINTF ((stderr,
"Now at end of input.\n"));
5139 yyval = yyvsp[1-yylen];
5148 #line 855 "ripper.y" 5162 #line 864 "ripper.y" 5169 NODE *node = (yyvsp[(2) - (2)].
val);
5170 while (node->nd_next) {
5171 node = node->nd_next;
5178 (yyval.
val) = (yyvsp[(2) - (2)].
val);
5179 parser->result = dispatch1(program, (yyval.
val));
5188 #line 887 "ripper.y" 5195 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5202 #line 898 "ripper.y" 5207 (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new),
5208 dispatch0(void_stmt));
5216 #line 907 "ripper.y" 5221 (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5229 #line 915 "ripper.y" 5234 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5242 #line 923 "ripper.y" 5251 #line 930 "ripper.y" 5263 #line 937 "ripper.y" 5267 (yyvsp[(4) - (5)].
val));
5272 (yyval.
val) = dispatch1(BEGIN, (yyvsp[(4) - (5)].
val));
5280 #line 954 "ripper.y" 5283 (yyval.
val) = (yyvsp[(1) - (4)].
val);
5284 if ((yyvsp[(2) - (4)].
val)) {
5287 else if ((yyvsp[(3) - (4)].
val)) {
5288 rb_warn0(
"else without rescue is useless");
5291 if ((yyvsp[(4) - (4)].
val)) {
5301 (yyval.
val) = dispatch4(bodystmt,
5302 escape_Qundef((yyvsp[(1) - (4)].
val)),
5303 escape_Qundef((yyvsp[(2) - (4)].
val)),
5304 escape_Qundef((yyvsp[(3) - (4)].
val)),
5305 escape_Qundef((yyvsp[(4) - (4)].
val)));
5313 #line 984 "ripper.y" 5320 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5327 #line 995 "ripper.y" 5332 (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new),
5333 dispatch0(void_stmt));
5341 #line 1004 "ripper.y" 5346 (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5354 #line 1012 "ripper.y" 5359 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5367 #line 1020 "ripper.y" 5376 #line 1026 "ripper.y" 5378 (yyval.
val) = (yyvsp[(1) - (1)].
val);
5385 #line 1030 "ripper.y" 5387 yyerror(
"BEGIN is permitted only at toplevel");
5398 #line 1038 "ripper.y" 5402 (yyvsp[(4) - (5)].
val));
5407 (yyval.
val) = dispatch1(BEGIN, (yyvsp[(4) - (5)].
val));
5415 #line 1050 "ripper.y" 5422 #line 1051 "ripper.y" 5427 (yyval.
val) = dispatch2(
alias, (yyvsp[(2) - (4)].
val), (yyvsp[(4) - (4)].
val));
5435 #line 1059 "ripper.y" 5440 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5448 #line 1067 "ripper.y" 5453 buf[1] = (char)(yyvsp[(3) - (3)].
val)->nd_nth;
5456 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5464 #line 1078 "ripper.y" 5467 yyerror(
"can't make alias for the number variables");
5470 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5471 (yyval.
val) = dispatch1(alias_error, (yyval.
val));
5479 #line 1088 "ripper.y" 5482 (yyval.
val) = (yyvsp[(2) - (2)].
val);
5484 (yyval.
val) = dispatch1(undef, (yyvsp[(2) - (2)].
val));
5492 #line 1096 "ripper.y" 5498 (yyval.
val) = dispatch2(if_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5506 #line 1105 "ripper.y" 5512 (yyval.
val) = dispatch2(unless_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5520 #line 1114 "ripper.y" 5530 (yyval.
val) = dispatch2(while_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5538 #line 1127 "ripper.y" 5548 (yyval.
val) = dispatch2(until_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5556 #line 1140 "ripper.y" 5562 (yyval.
val) = dispatch2(rescue_mod, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5570 #line 1149 "ripper.y" 5573 rb_warn0(
"END in method; use at_exit");
5579 (yyval.
val) = dispatch1(
END, (yyvsp[(3) - (4)].
val));
5587 #line 1162 "ripper.y" 5592 (yyval.
val) = (yyvsp[(1) - (3)].
val);
5594 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5602 #line 1172 "ripper.y" 5612 #line 1177 "ripper.y" 5620 if ((yyvsp[(5) - (6)].
val) ==
tOROP) {
5621 (yyvsp[(5) - (6)].
val) = 0;
5623 else if ((yyvsp[(5) - (6)].
val) ==
tANDOP) {
5624 (yyvsp[(5) - (6)].
val) = 1;
5629 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (6)].
val), escape_Qundef((yyvsp[(3) - (6)].
val)));
5630 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].
val));
5638 #line 1198 "ripper.y" 5648 #line 1203 "ripper.y" 5658 #line 1208 "ripper.y" 5664 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
5665 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
5673 #line 1218 "ripper.y" 5683 #line 1223 "ripper.y" 5689 (yyval.
val) = dispatch2(assign, dispatch1(var_field, (yyvsp[(1) - (3)].
val)), (yyvsp[(3) - (3)].
val));
5690 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
5698 #line 1233 "ripper.y" 5704 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5712 #line 1242 "ripper.y" 5716 (yyval.
val) = (yyvsp[(1) - (3)].
val);
5718 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5726 #line 1251 "ripper.y" 5730 (yyval.
val) = (yyvsp[(1) - (3)].
val);
5732 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5740 #line 1263 "ripper.y" 5746 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5754 #line 1272 "ripper.y" 5760 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5768 #line 1285 "ripper.y" 5773 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"and"), (yyvsp[(3) - (3)].
val));
5781 #line 1293 "ripper.y" 5786 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"or"), (yyvsp[(3) - (3)].
val));
5794 #line 1301 "ripper.y" 5799 (yyval.
val) = dispatch2(unary, ripper_intern(
"not"), (yyvsp[(3) - (3)].
val));
5807 #line 1309 "ripper.y" 5812 (yyval.
val) = dispatch2(unary, ripper_id2sym(
'!'), (yyvsp[(2) - (2)].
val));
5820 #line 1320 "ripper.y" 5824 (yyval.
val) = (yyvsp[(1) - (1)].
val);
5827 (yyval.
val) = (yyvsp[(1) - (1)].
val);
5835 #line 1337 "ripper.y" 5838 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
5840 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), (yyvsp[(2) - (4)].
val), (yyvsp[(3) - (4)].
val));
5841 (yyval.
val) = method_arg((yyval.
val), (yyvsp[(4) - (4)].
val));
5849 #line 1348 "ripper.y" 5862 #line 1358 "ripper.y" 5868 (yyval.
val) = dispatch2(brace_block, escape_Qundef((yyvsp[(3) - (5)].
val)), (yyvsp[(4) - (5)].
val));
5877 #line 1370 "ripper.y" 5890 #line 1380 "ripper.y" 5893 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5896 (yyval.
val) = dispatch2(command, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
5904 #line 1389 "ripper.y" 5910 (yyval.
val) = (yyvsp[(3) - (3)].
val);
5913 (yyval.
val) = dispatch2(command, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
5914 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(3) - (3)].
val));
5922 #line 1402 "ripper.y" 5925 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
5928 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (4)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
5936 #line 1411 "ripper.y" 5941 (yyval.
val) = (yyvsp[(5) - (5)].
val);
5944 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (5)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
5945 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
5953 #line 1423 "ripper.y" 5956 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
5959 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (4)].
val), ripper_intern(
"::"), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
5967 #line 1432 "ripper.y" 5972 (yyval.
val) = (yyvsp[(5) - (5)].
val);
5975 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (5)].
val), ripper_intern(
"::"), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
5976 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
5984 #line 1444 "ripper.y" 5990 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].
val));
5998 #line 1453 "ripper.y" 6004 (yyval.
val) = dispatch1(yield, (yyvsp[(2) - (2)].
val));
6012 #line 1462 "ripper.y" 6017 (yyval.
val) = dispatch1(
return, (yyvsp[(2) - (2)].
val));
6025 #line 1470 "ripper.y" 6030 (yyval.
val) = dispatch1(
break, (yyvsp[(2) - (2)].
val));
6038 #line 1478 "ripper.y" 6043 (yyval.
val) = dispatch1(next, (yyvsp[(2) - (2)].
val));
6051 #line 1489 "ripper.y" 6054 (yyval.
val) = (yyvsp[(2) - (3)].
val);
6056 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6064 #line 1500 "ripper.y" 6069 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6077 #line 1510 "ripper.y" 6082 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6090 #line 1518 "ripper.y" 6095 (yyval.
val) = mlhs_add((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
6103 #line 1526 "ripper.y" 6108 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6116 #line 1534 "ripper.y" 6121 (yyvsp[(1) - (5)].
val) = mlhs_add_star((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
6122 (yyval.
val) = mlhs_add((yyvsp[(1) - (5)].
val), (yyvsp[(5) - (5)].
val));
6130 #line 1543 "ripper.y" 6135 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (2)].
val),
Qnil);
6143 #line 1551 "ripper.y" 6148 (yyvsp[(1) - (4)].
val) = mlhs_add_star((yyvsp[(1) - (4)].
val),
Qnil);
6149 (yyval.
val) = mlhs_add((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val));
6157 #line 1560 "ripper.y" 6162 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (2)].
val));
6170 #line 1568 "ripper.y" 6175 (yyvsp[(2) - (4)].
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (4)].
val));
6176 (yyval.
val) = mlhs_add((yyvsp[(2) - (4)].
val), (yyvsp[(4) - (4)].
val));
6184 #line 1577 "ripper.y" 6189 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6197 #line 1585 "ripper.y" 6202 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6203 (yyval.
val) = mlhs_add((yyval.
val), (yyvsp[(3) - (3)].
val));
6211 #line 1597 "ripper.y" 6214 (yyval.
val) = (yyvsp[(2) - (3)].
val);
6216 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6224 #line 1607 "ripper.y" 6229 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (2)].
val));
6237 #line 1615 "ripper.y" 6242 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
6250 #line 1625 "ripper.y" 6255 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
6263 #line 1633 "ripper.y" 6268 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6276 #line 1643 "ripper.y" 6285 #line 1647 "ripper.y" 6294 #line 1651 "ripper.y" 6299 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (4)].
val), escape_Qundef((yyvsp[(3) - (4)].
val)));
6307 #line 1659 "ripper.y" 6312 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6320 #line 1667 "ripper.y" 6325 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6333 #line 1675 "ripper.y" 6338 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6346 #line 1683 "ripper.y" 6350 yyerror(
"dynamic constant assignment");
6354 yyerror(
"dynamic constant assignment");
6355 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6363 #line 1695 "ripper.y" 6367 yyerror(
"dynamic constant assignment");
6370 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (2)].
val));
6378 #line 1705 "ripper.y" 6384 (yyval.
val) = dispatch1(var_field, (yyvsp[(1) - (1)].
val));
6385 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6393 #line 1717 "ripper.y" 6399 (yyval.
val) = dispatch1(var_field, (yyval.
val));
6407 #line 1726 "ripper.y" 6413 (yyval.
val) = dispatch1(var_field, (yyval.
val));
6421 #line 1735 "ripper.y" 6426 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (4)].
val), escape_Qundef((yyvsp[(3) - (4)].
val)));
6434 #line 1743 "ripper.y" 6439 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6447 #line 1751 "ripper.y" 6452 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_intern(
"::"), (yyvsp[(3) - (3)].
val));
6460 #line 1759 "ripper.y" 6465 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6473 #line 1767 "ripper.y" 6477 yyerror(
"dynamic constant assignment");
6480 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6482 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6491 #line 1780 "ripper.y" 6495 yyerror(
"dynamic constant assignment");
6498 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (2)].
val));
6500 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6509 #line 1793 "ripper.y" 6515 (yyval.
val) = dispatch1(assign_error, (yyvsp[(1) - (1)].
val));
6523 #line 1804 "ripper.y" 6526 yyerror(
"class/module name must be CONSTANT");
6528 (yyval.
val) = dispatch1(class_name_error, (yyvsp[(1) - (1)].
val));
6536 #line 1815 "ripper.y" 6541 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].
val));
6549 #line 1823 "ripper.y" 6554 (yyval.
val) = dispatch1(const_ref, (yyvsp[(1) - (1)].
val));
6562 #line 1831 "ripper.y" 6567 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6575 #line 1844 "ripper.y" 6578 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6585 #line 1849 "ripper.y" 6589 (yyval.
val) = (yyvsp[(1) - (1)].
id);
6591 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6599 #line 1864 "ripper.y" 6604 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].
val));
6612 #line 1875 "ripper.y" 6625 #line 1882 "ripper.y" 6632 #line 1883 "ripper.y" 6645 #line 1892 "ripper.y" 6652 #line 1893 "ripper.y" 6659 #line 1894 "ripper.y" 6666 #line 1895 "ripper.y" 6673 #line 1896 "ripper.y" 6680 #line 1897 "ripper.y" 6687 #line 1898 "ripper.y" 6694 #line 1899 "ripper.y" 6701 #line 1900 "ripper.y" 6708 #line 1901 "ripper.y" 6715 #line 1902 "ripper.y" 6722 #line 1903 "ripper.y" 6729 #line 1904 "ripper.y" 6736 #line 1905 "ripper.y" 6743 #line 1906 "ripper.y" 6750 #line 1907 "ripper.y" 6757 #line 1908 "ripper.y" 6764 #line 1909 "ripper.y" 6771 #line 1910 "ripper.y" 6778 #line 1911 "ripper.y" 6785 #line 1912 "ripper.y" 6792 #line 1913 "ripper.y" 6799 #line 1914 "ripper.y" 6806 #line 1915 "ripper.y" 6813 #line 1916 "ripper.y" 6820 #line 1917 "ripper.y" 6827 #line 1918 "ripper.y" 6834 #line 1919 "ripper.y" 6841 #line 1920 "ripper.y" 6848 #line 1921 "ripper.y" 6855 #line 1939 "ripper.y" 6861 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6869 #line 1948 "ripper.y" 6876 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (5)].
val), dispatch2(rescue_mod, (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val)));
6884 #line 1958 "ripper.y" 6894 #line 1963 "ripper.y" 6900 (yyvsp[(3) - (5)].
val) = dispatch2(rescue_mod, (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
6909 #line 1973 "ripper.y" 6922 if ((yyvsp[(5) - (6)].
val) ==
tOROP) {
6923 (yyvsp[(5) - (6)].
val) = 0;
6925 else if ((yyvsp[(5) - (6)].
val) ==
tANDOP) {
6926 (yyvsp[(5) - (6)].
val) = 1;
6931 (yyvsp[(1) - (6)].
val) = dispatch2(aref_field, (yyvsp[(1) - (6)].
val), escape_Qundef((yyvsp[(3) - (6)].
val)));
6932 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (6)].
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].
val));
6940 #line 1999 "ripper.y" 6950 #line 2004 "ripper.y" 6960 #line 2009 "ripper.y" 6970 #line 2014 "ripper.y" 6976 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
6977 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
6985 #line 2024 "ripper.y" 6991 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (4)].
val));
6992 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
7000 #line 2034 "ripper.y" 7006 (yyval.
val) = dispatch1(var_field, (yyvsp[(1) - (3)].
val));
7007 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
7008 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
7016 #line 2045 "ripper.y" 7027 (yyval.
val) = dispatch2(dot2, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7035 #line 2059 "ripper.y" 7046 (yyval.
val) = dispatch2(dot3, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7054 #line 2073 "ripper.y" 7059 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'+'), (yyvsp[(3) - (3)].
val));
7067 #line 2081 "ripper.y" 7072 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'-'), (yyvsp[(3) - (3)].
val));
7080 #line 2089 "ripper.y" 7085 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'*'), (yyvsp[(3) - (3)].
val));
7093 #line 2097 "ripper.y" 7098 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'/'), (yyvsp[(3) - (3)].
val));
7106 #line 2105 "ripper.y" 7111 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'%'), (yyvsp[(3) - (3)].
val));
7119 #line 2113 "ripper.y" 7124 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"**"), (yyvsp[(3) - (3)].
val));
7132 #line 2121 "ripper.y" 7137 (yyval.
val) = dispatch3(binary, (yyvsp[(2) - (4)].
val), ripper_intern(
"**"), (yyvsp[(4) - (4)].
val));
7138 (yyval.
val) = dispatch2(unary, ripper_intern(
"-@"), (yyval.
val));
7146 #line 2130 "ripper.y" 7151 (yyval.
val) = dispatch3(binary, (yyvsp[(2) - (4)].
val), ripper_intern(
"**"), (yyvsp[(4) - (4)].
val));
7152 (yyval.
val) = dispatch2(unary, ripper_intern(
"-@"), (yyval.
val));
7160 #line 2139 "ripper.y" 7165 (yyval.
val) = dispatch2(unary, ripper_intern(
"+@"), (yyvsp[(2) - (2)].
val));
7173 #line 2147 "ripper.y" 7178 (yyval.
val) = dispatch2(unary, ripper_intern(
"-@"), (yyvsp[(2) - (2)].
val));
7186 #line 2155 "ripper.y" 7191 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'|'), (yyvsp[(3) - (3)].
val));
7199 #line 2163 "ripper.y" 7204 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'^'), (yyvsp[(3) - (3)].
val));
7212 #line 2171 "ripper.y" 7217 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'&'), (yyvsp[(3) - (3)].
val));
7225 #line 2179 "ripper.y" 7230 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"<=>"), (yyvsp[(3) - (3)].
val));
7238 #line 2187 "ripper.y" 7243 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'>'), (yyvsp[(3) - (3)].
val));
7251 #line 2195 "ripper.y" 7256 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
">="), (yyvsp[(3) - (3)].
val));
7264 #line 2203 "ripper.y" 7269 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'<'), (yyvsp[(3) - (3)].
val));
7277 #line 2211 "ripper.y" 7282 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"<="), (yyvsp[(3) - (3)].
val));
7290 #line 2219 "ripper.y" 7295 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"=="), (yyvsp[(3) - (3)].
val));
7303 #line 2227 "ripper.y" 7308 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"==="), (yyvsp[(3) - (3)].
val));
7316 #line 2235 "ripper.y" 7321 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"!="), (yyvsp[(3) - (3)].
val));
7329 #line 2243 "ripper.y" 7337 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"=~"), (yyvsp[(3) - (3)].
val));
7345 #line 2254 "ripper.y" 7350 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"!~"), (yyvsp[(3) - (3)].
val));
7358 #line 2262 "ripper.y" 7363 (yyval.
val) = dispatch2(unary,
ID2SYM(
'!'), (yyvsp[(2) - (2)].
val));
7371 #line 2270 "ripper.y" 7376 (yyval.
val) = dispatch2(unary,
ID2SYM(
'~'), (yyvsp[(2) - (2)].
val));
7384 #line 2278 "ripper.y" 7389 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"<<"), (yyvsp[(3) - (3)].
val));
7397 #line 2286 "ripper.y" 7402 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
">>"), (yyvsp[(3) - (3)].
val));
7410 #line 2294 "ripper.y" 7415 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"&&"), (yyvsp[(3) - (3)].
val));
7423 #line 2302 "ripper.y" 7428 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"||"), (yyvsp[(3) - (3)].
val));
7436 #line 2309 "ripper.y" 7443 #line 2310 "ripper.y" 7450 (yyval.
val) = dispatch1(defined, (yyvsp[(4) - (4)].
val));
7458 #line 2320 "ripper.y" 7465 (yyval.
val) = dispatch3(ifop, (yyvsp[(1) - (6)].
val), (yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].
val));
7473 #line 2330 "ripper.y" 7475 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7482 #line 2336 "ripper.y" 7486 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7489 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7497 #line 2349 "ripper.y" 7499 (yyval.
val) = (yyvsp[(1) - (2)].
val);
7506 #line 2353 "ripper.y" 7511 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val));
7519 #line 2361 "ripper.y" 7524 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7532 #line 2371 "ripper.y" 7535 (yyval.
val) = (yyvsp[(2) - (3)].
val);
7537 (yyval.
val) = dispatch1(arg_paren, escape_Qundef((yyvsp[(2) - (3)].
val)));
7545 #line 2387 "ripper.y" 7547 (yyval.
val) = (yyvsp[(1) - (2)].
val);
7554 #line 2391 "ripper.y" 7559 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val));
7567 #line 2399 "ripper.y" 7572 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7580 #line 2409 "ripper.y" 7586 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7594 #line 2418 "ripper.y" 7599 (yyval.
val) = arg_add_optblock((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
7607 #line 2426 "ripper.y" 7613 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7614 (yyval.
val) = arg_add_optblock((yyval.
val), (yyvsp[(2) - (2)].
val));
7622 #line 2436 "ripper.y" 7628 (yyval.
val) = arg_add_optblock(arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val)), (yyvsp[(4) - (4)].
val));
7636 #line 2447 "ripper.y" 7638 (yyval.
val) = arg_add_block(arg_new(), (yyvsp[(1) - (1)].
val));
7645 #line 2453 "ripper.y" 7655 #line 2458 "ripper.y" 7659 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7666 #line 2466 "ripper.y" 7671 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7679 #line 2476 "ripper.y" 7681 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7688 #line 2480 "ripper.y" 7697 #line 2486 "ripper.y" 7702 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7710 #line 2494 "ripper.y" 7715 (yyval.
val) = arg_add_star(arg_new(), (yyvsp[(2) - (2)].
val));
7723 #line 2502 "ripper.y" 7734 (yyval.
val) = arg_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7742 #line 2516 "ripper.y" 7753 (yyval.
val) = arg_add_star((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val));
7761 #line 2532 "ripper.y" 7772 (yyval.
val) = mrhs_add(args2mrhs((yyvsp[(1) - (3)].
val)), (yyvsp[(3) - (3)].
val));
7780 #line 2546 "ripper.y" 7792 (yyval.
val) = mrhs_add_star(args2mrhs((yyvsp[(1) - (4)].
val)), (yyvsp[(4) - (4)].
val));
7800 #line 2561 "ripper.y" 7805 (yyval.
val) = mrhs_add_star(mrhs_new(), (yyvsp[(2) - (2)].
val));
7813 #line 2581 "ripper.y" 7818 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (1)].
val)), arg_new());
7826 #line 2589 "ripper.y" 7840 #line 2599 "ripper.y" 7844 if ((yyvsp[(3) - (4)].
val) ==
NULL) {
7855 (yyval.
val) = dispatch1(begin, (yyvsp[(3) - (4)].
val));
7863 #line 2616 "ripper.y" 7870 #line 2617 "ripper.y" 7875 (yyval.
val) = dispatch1(paren, 0);
7883 #line 2625 "ripper.y" 7893 #line 2629 "ripper.y" 7900 #line 2630 "ripper.y" 7904 (yyval.
val) = (yyvsp[(3) - (5)].
val);
7906 (yyval.
val) = dispatch1(paren, (yyvsp[(3) - (5)].
val));
7914 #line 2639 "ripper.y" 7917 (yyval.
val) = (yyvsp[(2) - (3)].
val);
7919 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].
val));
7927 #line 2647 "ripper.y" 7932 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7940 #line 2655 "ripper.y" 7945 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].
val));
7953 #line 2663 "ripper.y" 7956 if ((yyvsp[(2) - (3)].
val) == 0) {
7960 (yyval.
val) = (yyvsp[(2) - (3)].
val);
7963 (yyval.
val) = dispatch1(array, escape_Qundef((yyvsp[(2) - (3)].
val)));
7971 #line 2676 "ripper.y" 7976 (yyval.
val) = dispatch1(
hash, escape_Qundef((yyvsp[(2) - (3)].
val)));
7984 #line 2684 "ripper.y" 7989 (yyval.
val) = dispatch0(return0);
7997 #line 2692 "ripper.y" 8002 (yyval.
val) = dispatch1(yield, dispatch1(paren, (yyvsp[(3) - (4)].
val)));
8010 #line 2700 "ripper.y" 8015 (yyval.
val) = dispatch1(yield, dispatch1(paren, arg_new()));
8023 #line 2708 "ripper.y" 8028 (yyval.
val) = dispatch0(yield0);
8036 #line 2715 "ripper.y" 8043 #line 2716 "ripper.y" 8050 (yyval.
val) = dispatch1(defined, (yyvsp[(5) - (6)].
val));
8058 #line 2726 "ripper.y" 8063 (yyval.
val) = dispatch2(unary, ripper_intern(
"not"), (yyvsp[(3) - (4)].
val));
8071 #line 2734 "ripper.y" 8076 (yyval.
val) = dispatch2(unary, ripper_intern(
"not"),
Qnil);
8084 #line 2742 "ripper.y" 8088 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8090 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].
val)), arg_new());
8091 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(2) - (2)].
val));
8099 #line 2753 "ripper.y" 8104 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8106 (yyval.
val) = method_add_block((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
8114 #line 2763 "ripper.y" 8116 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8123 #line 2770 "ripper.y" 8129 (yyval.
val) = dispatch3(
if, (yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), escape_Qundef((yyvsp[(5) - (6)].
val)));
8137 #line 2782 "ripper.y" 8143 (yyval.
val) = dispatch3(unless, (yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), escape_Qundef((yyvsp[(5) - (6)].
val)));
8151 #line 2790 "ripper.y" 8158 #line 2790 "ripper.y" 8165 #line 2793 "ripper.y" 8171 (yyval.
val) = dispatch2(
while, (yyvsp[(3) - (7)].
val), (yyvsp[(6) - (7)].
val));
8179 #line 2801 "ripper.y" 8186 #line 2801 "ripper.y" 8193 #line 2804 "ripper.y" 8199 (yyval.
val) = dispatch2(until, (yyvsp[(3) - (7)].
val), (yyvsp[(6) - (7)].
val));
8207 #line 2815 "ripper.y" 8213 (yyval.
val) = dispatch2(
case, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val));
8221 #line 2824 "ripper.y" 8226 (yyval.
val) = dispatch2(
case,
Qnil, (yyvsp[(3) - (4)].
val));
8234 #line 2832 "ripper.y" 8241 #line 2834 "ripper.y" 8248 #line 2837 "ripper.y" 8293 m->nd_next = (yyvsp[(2) - (9)].
val);
8302 tbl[0] = 1; tbl[1] =
id;
8306 (yyval.
val) = dispatch3(
for, (yyvsp[(2) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(8) - (9)].
val));
8314 #line 2898 "ripper.y" 8317 yyerror(
"class definition in method body");
8329 #line 2909 "ripper.y" 8335 (yyval.
val) = dispatch3(
class, (yyvsp[(2) - (6)].
val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].
val));
8344 #line 2919 "ripper.y" 8354 #line 2924 "ripper.y" 8365 #line 2931 "ripper.y" 8371 (yyval.
val) = dispatch2(sclass, (yyvsp[(3) - (8)].
val), (yyvsp[(7) - (8)].
val));
8382 #line 2943 "ripper.y" 8385 yyerror(
"module definition in method body");
8397 #line 2954 "ripper.y" 8403 (yyval.
val) = dispatch2(module, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val));
8412 #line 2964 "ripper.y" 8424 #line 2973 "ripper.y" 8432 (yyval.
val) = dispatch3(def, (yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), (yyvsp[(5) - (6)].
val));
8443 #line 2986 "ripper.y" 8450 #line 2987 "ripper.y" 8461 #line 2995 "ripper.y" 8466 (yyval.
val) =
NEW_DEFS((yyvsp[(2) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(7) - (9)].
val), body);
8469 (yyval.
val) = dispatch5(defs, (yyvsp[(2) - (9)].
val), (yyvsp[(3) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(7) - (9)].
val), (yyvsp[(8) - (9)].
val));
8479 #line 3008 "ripper.y" 8484 (yyval.
val) = dispatch1(
break, arg_new());
8492 #line 3016 "ripper.y" 8497 (yyval.
val) = dispatch1(next, arg_new());
8505 #line 3024 "ripper.y" 8510 (yyval.
val) = dispatch0(redo);
8518 #line 3032 "ripper.y" 8523 (yyval.
val) = dispatch0(retry);
8531 #line 3042 "ripper.y" 8535 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8538 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8546 #line 3054 "ripper.y" 8555 #line 3060 "ripper.y" 8564 #line 3066 "ripper.y" 8573 #line 3072 "ripper.y" 8582 #line 3078 "ripper.y" 8591 #line 3084 "ripper.y" 8600 #line 3090 "ripper.y" 8609 #line 3096 "ripper.y" 8618 #line 3102 "ripper.y" 8627 #line 3108 "ripper.y" 8640 #line 3118 "ripper.y" 8649 #line 3126 "ripper.y" 8656 #line 3132 "ripper.y" 8657 { (yyval.
val) = (yyvsp[(2) - (2)].
val); }
8663 #line 3139 "ripper.y" 8670 #line 3148 "ripper.y" 8676 (yyval.
val) = dispatch3(elsif, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), escape_Qundef((yyvsp[(5) - (5)].
val)));
8684 #line 3160 "ripper.y" 8687 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8689 (yyval.
val) = dispatch1(
else, (yyvsp[(2) - (2)].
val));
8697 #line 3174 "ripper.y" 8702 (yyval.
val) = dispatch1(mlhs_paren, (yyval.
val));
8710 #line 3182 "ripper.y" 8713 (yyval.
val) = (yyvsp[(2) - (3)].
val);
8715 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
8723 #line 3192 "ripper.y" 8728 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
8736 #line 3200 "ripper.y" 8741 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
8749 #line 3210 "ripper.y" 8754 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8762 #line 3218 "ripper.y" 8768 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (4)].
val), (yyval.
val));
8776 #line 3227 "ripper.y" 8782 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (6)].
val), (yyval.
val));
8790 #line 3236 "ripper.y" 8795 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].
val),
Qnil);
8803 #line 3244 "ripper.y" 8808 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (5)].
val), (yyvsp[(5) - (5)].
val));
8816 #line 3252 "ripper.y" 8822 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyval.
val));
8830 #line 3261 "ripper.y" 8839 (yyval.
val) = mlhs_add_star((yyval.
val), (yyvsp[(4) - (4)].
val));
8847 #line 3273 "ripper.y" 8852 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
8860 #line 3281 "ripper.y" 8865 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
8873 #line 3292 "ripper.y" 8882 #line 3296 "ripper.y" 8891 #line 3300 "ripper.y" 8900 #line 3304 "ripper.y" 8909 #line 3310 "ripper.y" 8911 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8918 #line 3314 "ripper.y" 8927 #line 3320 "ripper.y" 8936 #line 3324 "ripper.y" 8938 (yyval.
val) =
new_args((yyvsp[(1) - (8)].
val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].
val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].
val));
8945 #line 3328 "ripper.y" 8954 #line 3332 "ripper.y" 8963 #line 3336 "ripper.y" 8972 #line 3340 "ripper.y" 8977 dispatch1(excessed_comma, (yyval.
val));
8985 #line 3348 "ripper.y" 8994 #line 3352 "ripper.y" 9003 #line 3356 "ripper.y" 9012 #line 3360 "ripper.y" 9021 #line 3364 "ripper.y" 9030 #line 3368 "ripper.y" 9039 #line 3372 "ripper.y" 9048 #line 3376 "ripper.y" 9057 #line 3380 "ripper.y" 9066 #line 3387 "ripper.y" 9075 #line 3393 "ripper.y" 9081 escape_Qundef((yyvsp[(2) - (3)].
val)));
9089 #line 3402 "ripper.y" 9103 #line 3411 "ripper.y" 9106 (yyval.
val) = (yyvsp[(2) - (4)].
val);
9108 (yyval.
val) = blockvar_new(escape_Qundef((yyvsp[(2) - (4)].
val)), escape_Qundef((yyvsp[(3) - (4)].
val)));
9116 #line 3422 "ripper.y" 9125 #line 3426 "ripper.y" 9130 (yyval.
val) = (yyvsp[(3) - (4)].
val);
9138 #line 3438 "ripper.y" 9147 #line 3445 "ripper.y" 9156 #line 3452 "ripper.y" 9169 #line 3460 "ripper.y" 9178 #line 3465 "ripper.y" 9187 #line 3468 "ripper.y" 9197 #line 3473 "ripper.y" 9206 #line 3477 "ripper.y" 9213 (yyval.
val) = dispatch2(lambda, (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
9222 #line 3490 "ripper.y" 9225 (yyval.
val) = (yyvsp[(2) - (4)].
val);
9227 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (4)].
val));
9235 #line 3498 "ripper.y" 9238 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9240 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9248 #line 3508 "ripper.y" 9250 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9257 #line 3512 "ripper.y" 9259 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9266 #line 3518 "ripper.y" 9278 #line 3527 "ripper.y" 9284 (yyval.
val) = dispatch2(do_block, escape_Qundef((yyvsp[(3) - (5)].
val)), (yyvsp[(4) - (5)].
val));
9293 #line 3539 "ripper.y" 9303 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9306 (yyval.
val) = method_add_block((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9314 #line 3555 "ripper.y" 9317 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
9319 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), (yyvsp[(2) - (4)].
val), (yyvsp[(3) - (4)].
val));
9320 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9328 #line 3564 "ripper.y" 9333 (yyval.
val) = (yyvsp[(5) - (5)].
val);
9336 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
9337 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
9345 #line 3576 "ripper.y" 9350 (yyval.
val) = (yyvsp[(5) - (5)].
val);
9353 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
9354 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
9362 #line 3590 "ripper.y" 9365 (yyval.
val) = (yyvsp[(1) - (2)].
val);
9368 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].
val)), (yyvsp[(2) - (2)].
val));
9376 #line 3599 "ripper.y" 9387 #line 3605 "ripper.y" 9390 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
9393 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (5)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
9394 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(5) - (5)].
val));
9402 #line 3615 "ripper.y" 9413 #line 3621 "ripper.y" 9416 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
9419 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (5)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
9420 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(5) - (5)].
val));
9428 #line 3631 "ripper.y" 9433 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (3)].
val), ripper_intern(
"::"), (yyvsp[(3) - (3)].
val));
9441 #line 3639 "ripper.y" 9452 #line 3645 "ripper.y" 9458 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), ripper_id2sym(
'.'),
9459 ripper_intern(
"call"));
9460 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9468 #line 3656 "ripper.y" 9479 #line 3662 "ripper.y" 9485 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), ripper_intern(
"::"),
9486 ripper_intern(
"call"));
9487 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9495 #line 3673 "ripper.y" 9500 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].
val));
9508 #line 3681 "ripper.y" 9513 (yyval.
val) = dispatch0(zsuper);
9521 #line 3689 "ripper.y" 9530 (yyval.
val) = dispatch2(aref, (yyvsp[(1) - (4)].
val), escape_Qundef((yyvsp[(3) - (4)].
val)));
9538 #line 3703 "ripper.y" 9551 #line 3712 "ripper.y" 9557 (yyval.
val) = dispatch2(brace_block, escape_Qundef((yyvsp[(3) - (5)].
val)), (yyvsp[(4) - (5)].
val));
9566 #line 3722 "ripper.y" 9579 #line 3731 "ripper.y" 9585 (yyval.
val) = dispatch2(do_block, escape_Qundef((yyvsp[(3) - (5)].
val)), (yyvsp[(4) - (5)].
val));
9594 #line 3745 "ripper.y" 9597 (yyval.
val) =
NEW_WHEN((yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
9599 (yyval.
val) = dispatch3(when, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), escape_Qundef((yyvsp[(5) - (5)].
val)));
9607 #line 3761 "ripper.y" 9610 if ((yyvsp[(3) - (6)].
val)) {
9615 fixpos((yyval.
val), (yyvsp[(2) - (6)].
val)?(yyvsp[(2) - (6)].
val):(yyvsp[(5) - (6)].
val));
9617 (yyval.
val) = dispatch4(rescue,
9618 escape_Qundef((yyvsp[(2) - (6)].
val)),
9619 escape_Qundef((yyvsp[(3) - (6)].
val)),
9620 escape_Qundef((yyvsp[(5) - (6)].
val)),
9621 escape_Qundef((yyvsp[(6) - (6)].
val)));
9629 #line 3781 "ripper.y" 9642 #line 3789 "ripper.y" 9647 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9655 #line 3800 "ripper.y" 9657 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9664 #line 3807 "ripper.y" 9667 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9669 (yyval.
val) = dispatch1(ensure, (yyvsp[(2) - (2)].
val));
9677 #line 3819 "ripper.y" 9682 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].
val));
9690 #line 3830 "ripper.y" 9693 NODE *node = (yyvsp[(1) - (1)].
val);
9702 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9710 #line 3849 "ripper.y" 9715 (yyval.
val) = dispatch2(string_concat, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9723 #line 3859 "ripper.y" 9726 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9728 (yyval.
val) = dispatch1(string_literal, (yyvsp[(2) - (3)].
val));
9736 #line 3869 "ripper.y" 9739 NODE *node = (yyvsp[(2) - (3)].
val);
9758 (yyval.
val) = dispatch1(xstring_literal, (yyvsp[(2) - (3)].
val));
9766 #line 3896 "ripper.y" 9770 NODE *node = (yyvsp[(2) - (3)].
val);
9778 VALUE src = node->nd_lit;
9798 VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
9804 prev->nd_next =
list->nd_next;
9817 if (!node->nd_next) {
9818 VALUE src = node->nd_lit;
9826 (yyval.
val) = dispatch2(regexp_literal, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
9834 #line 3961 "ripper.y" 9839 (yyval.
val) = dispatch0(words_new);
9840 (yyval.
val) = dispatch1(array, (yyval.
val));
9848 #line 3970 "ripper.y" 9851 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9853 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
9861 #line 3980 "ripper.y" 9866 (yyval.
val) = dispatch0(words_new);
9874 #line 3988 "ripper.y" 9879 (yyval.
val) = dispatch2(words_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
9887 #line 4000 "ripper.y" 9889 (yyval.
val) = dispatch0(word_new);
9890 (yyval.
val) = dispatch2(word_add, (yyval.
val), (yyvsp[(1) - (1)].
val));
9897 #line 4006 "ripper.y" 9902 (yyval.
val) = dispatch2(word_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9910 #line 4016 "ripper.y" 9915 (yyval.
val) = dispatch0(symbols_new);
9916 (yyval.
val) = dispatch1(array, (yyval.
val));
9924 #line 4025 "ripper.y" 9927 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9929 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
9937 #line 4035 "ripper.y" 9942 (yyval.
val) = dispatch0(symbols_new);
9950 #line 4043 "ripper.y" 9963 (yyval.
val) = dispatch2(symbols_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
9971 #line 4061 "ripper.y" 9976 (yyval.
val) = dispatch0(qwords_new);
9977 (yyval.
val) = dispatch1(array, (yyval.
val));
9985 #line 4070 "ripper.y" 9988 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9990 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
9998 #line 4080 "ripper.y" 10003 (yyval.
val) = dispatch0(qsymbols_new);
10004 (yyval.
val) = dispatch1(array, (yyval.
val));
10012 #line 4089 "ripper.y" 10015 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10017 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
10025 #line 4099 "ripper.y" 10030 (yyval.
val) = dispatch0(qwords_new);
10038 #line 4107 "ripper.y" 10043 (yyval.
val) = dispatch2(qwords_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
10051 #line 4117 "ripper.y" 10056 (yyval.
val) = dispatch0(qsymbols_new);
10064 #line 4125 "ripper.y" 10073 (yyval.
val) = dispatch2(qsymbols_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
10081 #line 4139 "ripper.y" 10086 (yyval.
val) = dispatch0(string_content);
10094 #line 4147 "ripper.y" 10099 (yyval.
val) = dispatch2(string_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10107 #line 4157 "ripper.y" 10112 (yyval.
val) = dispatch0(xstring_new);
10120 #line 4165 "ripper.y" 10125 (yyval.
val) = dispatch2(xstring_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10133 #line 4175 "ripper.y" 10138 (yyval.
val) = dispatch0(regexp_new);
10146 #line 4183 "ripper.y" 10170 (yyval.
val) = dispatch2(regexp_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10178 #line 4213 "ripper.y" 10189 #line 4219 "ripper.y" 10196 (yyval.
val) = dispatch1(string_dvar, (yyvsp[(3) - (3)].
val));
10204 #line 4229 "ripper.y" 10216 #line 4235 "ripper.y" 10227 #line 4240 "ripper.y" 10237 #line 4245 "ripper.y" 10247 (yyval.
val) = dispatch1(string_embexpr, (yyvsp[(5) - (6)].
val));
10255 #line 4260 "ripper.y" 10260 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10268 #line 4268 "ripper.y" 10273 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10281 #line 4276 "ripper.y" 10286 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10294 #line 4287 "ripper.y" 10298 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10300 (yyval.
val) = dispatch1(symbol, (yyvsp[(2) - (2)].
val));
10308 #line 4304 "ripper.y" 10314 (yyval.
val) = dispatch1(dyna_symbol, (yyvsp[(2) - (3)].
val));
10322 #line 4317 "ripper.y" 10327 (yyval.
val) = dispatch2(unary, ripper_intern(
"-@"), (yyvsp[(2) - (2)].
val));
10335 #line 4325 "ripper.y" 10340 (yyval.
val) = dispatch2(unary, ripper_intern(
"-@"), (yyvsp[(2) - (2)].
val));
10348 #line 4341 "ripper.y" 10355 #line 4342 "ripper.y" 10362 #line 4343 "ripper.y" 10369 #line 4344 "ripper.y" 10376 #line 4345 "ripper.y" 10383 #line 4346 "ripper.y" 10390 #line 4347 "ripper.y" 10397 #line 4351 "ripper.y" 10402 if (id_is_var(
get_id((yyvsp[(1) - (1)].
val)))) {
10403 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10406 (yyval.
val) = dispatch1(vcall, (yyvsp[(1) - (1)].
val));
10415 #line 4364 "ripper.y" 10420 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10428 #line 4374 "ripper.y" 10433 (yyval.
val) = dispatch1(var_field, (yyval.
val));
10441 #line 4382 "ripper.y" 10446 (yyval.
val) = dispatch1(var_field, (yyval.
val));
10454 #line 4396 "ripper.y" 10467 #line 4404 "ripper.y" 10477 #line 4409 "ripper.y" 10479 (yyval.
val) = (yyvsp[(3) - (4)].
val);
10486 #line 4413 "ripper.y" 10501 #line 4425 "ripper.y" 10504 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10506 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].
val));
10516 #line 4435 "ripper.y" 10518 (yyval.
val) = (yyvsp[(1) - (2)].
val);
10527 #line 4443 "ripper.y" 10536 #line 4447 "ripper.y" 10545 #line 4451 "ripper.y" 10554 #line 4455 "ripper.y" 10563 #line 4461 "ripper.y" 10565 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10572 #line 4465 "ripper.y" 10581 #line 4471 "ripper.y" 10590 #line 4475 "ripper.y" 10592 (yyval.
val) =
new_args((yyvsp[(1) - (8)].
val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].
val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].
val));
10599 #line 4479 "ripper.y" 10608 #line 4483 "ripper.y" 10617 #line 4487 "ripper.y" 10626 #line 4491 "ripper.y" 10635 #line 4495 "ripper.y" 10644 #line 4499 "ripper.y" 10653 #line 4503 "ripper.y" 10662 #line 4507 "ripper.y" 10671 #line 4511 "ripper.y" 10680 #line 4515 "ripper.y" 10689 #line 4519 "ripper.y" 10698 #line 4523 "ripper.y" 10707 #line 4527 "ripper.y" 10717 #line 4534 "ripper.y" 10720 yyerror(
"formal argument cannot be a constant");
10723 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10731 #line 4543 "ripper.y" 10734 yyerror(
"formal argument cannot be an instance variable");
10737 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10745 #line 4552 "ripper.y" 10748 yyerror(
"formal argument cannot be a global variable");
10751 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10759 #line 4561 "ripper.y" 10762 yyerror(
"formal argument cannot be a class variable");
10765 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10773 #line 4573 "ripper.y" 10776 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10783 #line 4580 "ripper.y" 10797 #line 4589 "ripper.y" 10811 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
10819 #line 4610 "ripper.y" 10828 #line 4615 "ripper.y" 10831 (yyval.
val) = (yyvsp[(1) - (3)].
val);
10844 #line 4628 "ripper.y" 10859 #line 4640 "ripper.y" 10874 #line 4652 "ripper.y" 10877 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10887 #line 4660 "ripper.y" 10890 NODE *kws = (yyvsp[(1) - (3)].
val);
10892 while (kws->nd_next) {
10893 kws = kws->nd_next;
10895 kws->nd_next = (yyvsp[(3) - (3)].
val);
10896 (yyval.
val) = (yyvsp[(1) - (3)].
val);
10906 #line 4677 "ripper.y" 10909 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10919 #line 4685 "ripper.y" 10922 NODE *kws = (yyvsp[(1) - (3)].
val);
10924 while (kws->nd_next) {
10925 kws = kws->nd_next;
10927 kws->nd_next = (yyvsp[(3) - (3)].
val);
10928 (yyval.
val) = (yyvsp[(1) - (3)].
val);
10938 #line 4705 "ripper.y" 10941 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10948 #line 4710 "ripper.y" 10957 #line 4716 "ripper.y" 10972 #line 4728 "ripper.y" 10987 #line 4740 "ripper.y" 10990 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11000 #line 4748 "ripper.y" 11003 NODE *opts = (yyvsp[(1) - (3)].
val);
11005 while (opts->nd_next) {
11006 opts = opts->nd_next;
11008 opts->nd_next = (yyvsp[(3) - (3)].
val);
11009 (yyval.
val) = (yyvsp[(1) - (3)].
val);
11019 #line 4764 "ripper.y" 11022 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11032 #line 4772 "ripper.y" 11035 NODE *opts = (yyvsp[(1) - (3)].
val);
11037 while (opts->nd_next) {
11038 opts = opts->nd_next;
11040 opts->nd_next = (yyvsp[(3) - (3)].
val);
11041 (yyval.
val) = (yyvsp[(1) - (3)].
val);
11051 #line 4792 "ripper.y" 11055 yyerror(
"rest argument must be local variable");
11059 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11061 (yyval.
val) = dispatch1(rest_param, (yyvsp[(2) - (2)].
val));
11069 #line 4805 "ripper.y" 11075 (yyval.
val) = dispatch1(rest_param,
Qnil);
11083 #line 4820 "ripper.y" 11087 yyerror(
"block argument must be local variable");
11089 yyerror(
"duplicated block argument name");
11093 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11095 (yyval.
val) = dispatch1(blockarg, (yyvsp[(2) - (2)].
val));
11103 #line 4837 "ripper.y" 11105 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11112 #line 4841 "ripper.y" 11125 #line 4851 "ripper.y" 11129 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11132 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11140 #line 4860 "ripper.y" 11147 #line 4861 "ripper.y" 11150 if ((yyvsp[(3) - (4)].
val) == 0) {
11151 yyerror(
"can't define singleton method for ().");
11163 yyerror(
"can't define singleton method for literals");
11169 (yyval.
val) = (yyvsp[(3) - (4)].
val);
11171 (yyval.
val) = dispatch1(paren, (yyvsp[(3) - (4)].
val));
11179 #line 4891 "ripper.y" 11182 (yyval.
val) = (yyvsp[(1) - (2)].
val);
11184 (yyval.
val) = dispatch1(assoclist_from_args, (yyvsp[(1) - (2)].
val));
11192 #line 4903 "ripper.y" 11201 #line 4908 "ripper.y" 11214 #line 4918 "ripper.y" 11219 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
11227 #line 4926 "ripper.y" 11232 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
11240 #line 4934 "ripper.y" 11245 (yyval.
val) = dispatch1(assoc_splat, (yyvsp[(2) - (2)].
val));
11253 #line 4964 "ripper.y" 11254 { (yyval.
val) = (yyvsp[(1) - (1)].
val); }
11260 #line 4969 "ripper.y" 11261 { (yyval.
val) = (yyvsp[(1) - (1)].
val); }
11267 #line 4992 "ripper.y" 11274 #line 4997 "ripper.y" 11281 #line 5001 "ripper.y" 11294 #line 11293 "parse.c" 11323 if (0 <= yystate && yystate <=
YYLAST &&
yycheck[yystate] == *yyssp)
11343 #if ! YYERROR_VERBOSE 11346 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ 11349 char const *yymsgp =
YY_(
"syntax error");
11350 int yysyntax_error_status;
11352 if (yysyntax_error_status == 0)
11354 else if (yysyntax_error_status == 1)
11356 if (yymsg != yymsgbuf)
11362 yymsg_alloc =
sizeof yymsgbuf;
11363 yysyntax_error_status = 2;
11372 if (yysyntax_error_status == 2)
11373 goto yyexhaustedlab;
11375 # undef YYSYNTAX_ERROR 11381 if (yyerrstatus == 3)
11386 if (yychar <=
YYEOF)
11389 if (yychar ==
YYEOF)
11395 yytoken, &
yylval, parser);
11451 yystos[yystate], yyvsp, parser);
11481 #if !defined(yyoverflow) || YYERROR_VERBOSE 11497 yydestruct (
"Cleanup: discarding lookahead",
11498 yytoken, &
yylval, parser);
11504 while (yyssp != yyss)
11507 yystos[*yyssp], yyvsp, parser);
11514 #if YYERROR_VERBOSE 11515 if (yymsg != yymsgbuf)
11519 return YYID (yyresult);
11525 #line 5009 "ripper.y" 11530 # define yylval (*((YYSTYPE*)(parser->parser_yylval))) 11539 # define nextc() parser_nextc(parser) 11540 # define pushback(c) parser_pushback(parser, (c)) 11541 # define newtok() parser_newtok(parser) 11542 # define tokspace(n) parser_tokspace(parser, (n)) 11543 # define tokadd(c) parser_tokadd(parser, (c)) 11544 # define tok_hex(numlen) parser_tok_hex(parser, (numlen)) 11545 # define read_escape(flags,e) parser_read_escape(parser, (flags), (e)) 11546 # define tokadd_escape(e) parser_tokadd_escape(parser, (e)) 11547 # define regx_options() parser_regx_options(parser) 11548 # define tokadd_string(f,t,p,n,e) parser_tokadd_string(parser,(f),(t),(p),(n),(e)) 11549 # define parse_string(n) parser_parse_string(parser,(n)) 11550 # define tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc)) 11551 # define here_document(n) parser_here_document(parser,(n)) 11552 # define heredoc_identifier() parser_heredoc_identifier(parser) 11553 # define heredoc_restore(n) parser_heredoc_restore(parser,(n)) 11554 # define whole_match_p(e,l,i) parser_whole_match_p(parser,(e),(l),(i)) 11557 # define set_yylval_str(x) (yylval.node = NEW_STR(x)) 11558 # define set_yylval_num(x) (yylval.num = (x)) 11559 # define set_yylval_id(x) (yylval.id = (x)) 11560 # define set_yylval_name(x) (yylval.id = (x)) 11561 # define set_yylval_literal(x) (yylval.node = NEW_LIT(x)) 11562 # define set_yylval_node(x) (yylval.node = (x)) 11563 # define yylval_id() (yylval.id) 11565 static inline VALUE 11566 ripper_yylval_id(
ID x)
11570 # define set_yylval_str(x) (void)(x) 11571 # define set_yylval_num(x) (void)(x) 11572 # define set_yylval_id(x) (void)(x) 11573 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x)) 11574 # define set_yylval_literal(x) (void)(x) 11575 # define set_yylval_node(x) (void)(x) 11576 # define yylval_id() yylval.id 11580 #define ripper_flush(p) (void)(p) 11582 #define ripper_flush(p) ((p)->tokp = (p)->parser_lex_p) 11584 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val)) 11591 return lex_p > parser->tokp;
11604 ripper_dispatch_scan_event(
struct parser_params *parser,
int t)
11606 if (!ripper_has_scan_event(parser))
return;
11607 yylval_rval = ripper_scan_event_val(parser, t);
11611 ripper_dispatch_ignored_scan_event(
struct parser_params *parser,
int t)
11613 if (!ripper_has_scan_event(parser))
return;
11614 (void)ripper_scan_event_val(parser, t);
11618 ripper_dispatch_delayed_token(
struct parser_params *parser,
int t)
11621 const char *saved_tokp = parser->tokp;
11624 parser->tokp =
lex_pbeg + parser->delayed_col;
11626 parser->delayed =
Qnil;
11628 parser->tokp = saved_tokp;
11639 #undef SIGN_EXTEND_CHAR 11641 # define SIGN_EXTEND_CHAR(c) ((signed char)(c)) 11644 # define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128) 11647 #define parser_encoding_name() (current_enc->name) 11648 #define parser_mbclen() mbclen((lex_p-1),lex_pend,current_enc) 11649 #define parser_precise_mbclen() rb_enc_precise_mbclen((lex_p-1),lex_pend,current_enc) 11650 #define is_identchar(p,e,enc) (rb_enc_isalnum(*(p),(enc)) || (*(p)) == '_' || !ISASCII(*(p))) 11651 #define parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,current_enc)) 11653 #define parser_isascii() ISASCII(*(lex_p-1)) 11663 column = (((column - 1) / 8) + 1) * 8;
11675 if (*
p !=
' ' && *
p !=
'\t') {
11682 #undef token_info_push 11699 #undef token_info_pop 11706 if (!ptinfo)
return;
11712 if (linenum == ptinfo->
linenum) {
11720 "mismatched indentations at '%s' with '%s' at %d",
11733 const int max_line_margin = 30;
11734 const char *
p, *pe;
11742 if (*
p ==
'\n')
break;
11749 if (*pe ==
'\n')
break;
11756 const char *pre =
"", *post =
"";
11758 if (len > max_line_margin * 2 + 10) {
11759 if (
lex_p -
p > max_line_margin) {
11763 if (pe -
lex_p > max_line_margin) {
11775 p2 =
buf; pe =
buf + len;
11778 if (*p2 !=
'\t') *p2 =
' ';
11798 CONST_ID(script_lines,
"SCRIPT_LINES__");
11814 if (
RTEST(coverages) &&
RBASIC(coverages)->klass == 0) {
11817 RBASIC(lines)->klass = 0;
11819 RARRAY(lines)->as.heap.len = n;
11869 parser->parser_ruby_sourceline);
11879 if (parser->nerr) {
11889 return (
VALUE)tree;
11915 char *beg, *end, *pend;
11925 while (end < pend) {
11926 if (*end++ ==
'\n')
break;
11936 if (
NIL_P(line))
return line;
12040 node =
yycompile(parser, fname, start);
12047 #define STR_FUNC_ESCAPE 0x01 12048 #define STR_FUNC_EXPAND 0x02 12049 #define STR_FUNC_REGEXP 0x04 12050 #define STR_FUNC_QWORDS 0x08 12051 #define STR_FUNC_SYMBOL 0x10 12052 #define STR_FUNC_INDENT 0x20 12082 #define lex_goto_eol(parser) ((parser)->parser_lex_p = (parser)->parser_lex_pend) 12083 #define lex_eol_p() (lex_p >= lex_pend) 12084 #define peek(c) peek_n((c), 0) 12085 #define peek_n(c,n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n]) 12108 if (
NIL_P(parser->delayed)) {
12112 parser->tokp,
lex_pend - parser->tokp);
12114 parser->delayed_col = (int)(parser->tokp -
lex_pbeg);
12118 parser->tokp,
lex_pend - parser->tokp);
12134 c = (
unsigned char)*
lex_p++;
12135 if (c ==
'\r' &&
peek(
'\n')) {
12146 if (c == -1)
return;
12153 #define was_bol() (lex_p == lex_pbeg + 1) 12155 #define tokfix() (tokenbuf[tokidx]='\0') 12156 #define tok() tokenbuf 12157 #define toklen() tokidx 12158 #define toklast() (tokidx>0?tokenbuf[tokidx-1]:0) 12205 yyerror(
"invalid hex escape");
12212 #define tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n)) 12217 int string_literal,
int symbol_literal,
int regexp_literal)
12237 yyerror(
"invalid Unicode escape");
12240 if (codepoint > 0x10ffff) {
12241 yyerror(
"invalid Unicode codepoint (too large)");
12245 if (regexp_literal) {
12248 else if (codepoint >= 0x80) {
12250 if (string_literal)
tokaddmbc(codepoint, *encp);
12252 else if (string_literal) {
12255 }
while (string_literal && (
peek(
' ') ||
peek(
'\t')));
12258 yyerror(
"unterminated Unicode escape");
12262 if (regexp_literal) {
tokadd(
'}'); }
12268 yyerror(
"invalid Unicode escape");
12272 if (regexp_literal) {
12275 else if (codepoint >= 0x80) {
12277 if (string_literal)
tokaddmbc(codepoint, *encp);
12279 else if (string_literal) {
12287 #define ESCAPE_CONTROL 1 12288 #define ESCAPE_META 2 12297 switch (c =
nextc()) {
12322 case '0':
case '1':
case '2':
case '3':
12323 case '4':
case '5':
case '6':
case '7':
12331 if (numlen == 0)
return 0;
12342 if ((c =
nextc()) !=
'-') {
12346 if ((c =
nextc()) ==
'\\') {
12347 if (
peek(
'u'))
goto eof;
12350 else if (c == -1 || !
ISASCII(c))
goto eof;
12352 return ((c & 0xff) | 0x80);
12356 if ((c =
nextc()) !=
'-') {
12362 if ((c =
nextc())==
'\\') {
12363 if (
peek(
'u'))
goto eof;
12368 else if (c == -1 || !
ISASCII(c))
goto eof;
12373 yyerror(
"Invalid escape character syntax");
12396 switch (c =
nextc()) {
12400 case '0':
case '1':
case '2':
case '3':
12401 case '4':
case '5':
case '6':
case '7':
12404 if (numlen == 0)
goto eof;
12413 if (numlen == 0)
return -1;
12420 if ((c =
nextc()) !=
'-') {
12430 if ((c =
nextc()) !=
'-') {
12442 if ((c =
nextc()) ==
'\\') {
12445 else if (c == -1)
goto eof;
12451 yyerror(
"Invalid escape character syntax");
12518 #define tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c)) 12524 case '$':
case '*':
case '+':
case '.':
12525 case '?':
case '^':
case '|':
12526 case ')':
case ']':
case '}':
case '>':
12535 int func,
int term,
int paren,
long *nest,
12539 int has_nonascii = 0;
12542 static const char mixed_msg[] =
"%s mixed within %s source";
12544 #define mixed_error(enc1, enc2) if (!errbuf) { \ 12545 size_t len = sizeof(mixed_msg) - 4; \ 12546 len += strlen(rb_enc_name(enc1)); \ 12547 len += strlen(rb_enc_name(enc2)); \ 12548 errbuf = ALLOCA_N(char, len); \ 12549 snprintf(errbuf, len, mixed_msg, \ 12550 rb_enc_name(enc1), \ 12551 rb_enc_name(enc2)); \ 12554 #define mixed_escape(beg, enc1, enc2) do { \ 12555 const char *pos = lex_p; \ 12557 mixed_error((enc1), (enc2)); \ 12561 while ((c =
nextc()) != -1) {
12562 if (paren && c == paren) {
12565 else if (c == term) {
12566 if (!nest || !*nest) {
12574 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
12579 else if (c ==
'\\') {
12580 const char *beg =
lex_p - 1;
12601 if (has_nonascii &&
enc != *encp) {
12607 if (c == -1)
return -1;
12620 if (has_nonascii &&
enc != *encp) {
12633 else if (c != term && !(paren && c == paren)) {
12643 if (
enc != *encp) {
12656 if (
enc != *encp) {
12667 #define NEW_STRTERM(func, term, paren) \ 12668 rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0) 12674 if (!
NIL_P(parser->delayed)) {
12675 ptrdiff_t len =
lex_p - parser->tokp;
12680 parser->tokp =
lex_p;
12684 #define flush_string_content(enc) ripper_flush_string_content(parser, (enc)) 12686 #define flush_string_content(enc) ((void)(enc)) 12693 #define BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0) 12694 #define SPECIAL_PUNCT(idx) ( \ 12695 BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', idx) | \ 12696 BIT('!', idx) | BIT('@', idx) | BIT('/', idx) | BIT('\\', idx) | \ 12697 BIT(';', idx) | BIT(',', idx) | BIT('.', idx) | BIT('=', idx) | \ 12698 BIT(':', idx) | BIT('<', idx) | BIT('>', idx) | BIT('\"', idx) | \ 12699 BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \ 12707 #undef SPECIAL_PUNCT 12713 if (c <= 0x20 || 0x7e < c)
return 0;
12727 if ((c = *
p) ==
'-') {
12736 if ((c = *
p) ==
'@') {
12756 int func = (int)quote->nd_func;
12768 if (c == term && !quote->nd_nest) {
12770 quote->nd_func = -1;
12832 while ((c =
nextc()) != -1 && c != term) {
12879 line = here->nd_orig;
12893 const char *eos,
long len,
int indent)
12902 if (n < 0 || (n > 0 &&
p[len] !=
'\n' &&
p[len] !=
'\r'))
return FALSE;
12903 return strncmp(eos,
p, len) == 0;
12910 if (!
NIL_P(parser->delayed))
12913 ripper_dispatch_ignored_scan_event(parser,
tHEREDOC_END);
12916 #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser) 12918 #define dispatch_heredoc_end() ((void)0) 12924 int c,
func, indent = 0;
12925 const char *eos, *
p, *pend;
12934 if ((c =
nextc()) == -1) {
12938 if (
NIL_P(parser->delayed)) {
12943 ((len =
lex_p - parser->tokp) > 0 &&
12967 switch (pend[-1]) {
12969 if (--pend ==
p || pend[-1] !=
'\r') {
12983 if (
nextc() == -1) {
13004 if (parser->
eofp)
goto error;
13014 if ((c =
nextc()) == -1)
goto error;
13031 rb_warning0(
"ambiguous first argument; put parentheses or even spaces");
13036 #define arg_ambiguous() (arg_ambiguous_gen(parser), 1) 13043 yyerror(
"formal argument must be local variable");
13061 if (len > 5 &&
name[nlen = len - 5] ==
'-') {
13065 if (len > 4 &&
name[nlen = len - 4] ==
'-') {
13101 for (
i = 0;
i < n; ++
i) {
13139 case 't':
case 'T':
13145 case 'f':
case 'F':
13168 static const char *
13176 if (str[
i-1] ==
'*' && str[
i-2] ==
'-') {
13177 return str +
i + 1;
13182 if (
i + 1 >= len)
return 0;
13183 if (str[
i+1] !=
'-') {
13186 else if (str[
i-1] !=
'-') {
13190 return str +
i + 2;
13205 const char *beg, *end, *vbeg, *vend;
13206 #define str_copy(_s, _p, _n) ((_s) \ 13207 ? (void)(rb_str_resize((_s), (_n)), \ 13208 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \ 13209 : (void)((_s) = STR_NEW((_p), (_n)))) 13211 if (len <= 7)
return FALSE;
13215 len = end - beg - 3;
13226 for (; len > 0 && *str; str++, --len) {
13228 case '\'':
case '"':
case ':':
case ';':
13233 for (beg = str; len > 0; str++, --len) {
13235 case '\'':
case '"':
case ':':
case ';':
13243 for (end = str; len > 0 &&
ISSPACE(*str); str++, --len);
13245 if (*str !=
':')
continue;
13247 do str++;
while (--len > 0 &&
ISSPACE(*str));
13250 for (vbeg = ++str; --len > 0 && *str !=
'"'; str++) {
13251 if (*str ==
'\\') {
13263 for (vbeg = str; len > 0 && *str !=
'"' && *str !=
';' && !
ISSPACE(*str); --len, str++);
13266 while (len > 0 && (*str ==
';' ||
ISSPACE(*str))) --len, str++;
13271 for (
i = 0;
i < n; ++
i) {
13272 if (s[
i] ==
'-') s[
i] =
'_';
13279 n = (*
p->length)(parser, vbeg, n);
13299 const char *beg = str;
13303 if (send - str <= 6)
return;
13305 case 'C':
case 'c': str += 6;
continue;
13306 case 'O':
case 'o': str += 5;
continue;
13307 case 'D':
case 'd': str += 4;
continue;
13308 case 'I':
case 'i': str += 3;
continue;
13309 case 'N':
case 'n': str += 2;
continue;
13310 case 'G':
case 'g': str += 1;
continue;
13311 case '=':
case ':':
13324 if (++str >= send)
return;
13327 if (*str !=
'=' && *str !=
':')
return;
13332 while ((*str ==
'-' || *str ==
'_' ||
ISALNUM(*str)) && ++str < send);
13348 (
unsigned char)
lex_p[0] == 0xbb &&
13349 (
unsigned char)
lex_p[1] == 0xbf) {
13363 #define IS_ARG() IS_lex_state(EXPR_ARG_ANY) 13364 #define IS_END() IS_lex_state(EXPR_END_ANY) 13365 #define IS_BEG() IS_lex_state(EXPR_BEG_ANY) 13366 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c)) 13367 #define IS_LABEL_POSSIBLE() ((IS_lex_state(EXPR_BEG | EXPR_ENDFN) && !cmd_state) || IS_ARG()) 13368 #define IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1)) 13369 #define IS_AFTER_OPERATOR() IS_lex_state(EXPR_FNAME | EXPR_DOT) 13372 #define ambiguous_operator(op, syn) ( \ 13373 rb_warning0("`"op"' after local variable is interpreted as binary operator"), \ 13374 rb_warning0("even though it seems like "syn"")) 13376 #define ambiguous_operator(op, syn) dispatch2(operator_ambiguous, ripper_intern(op), rb_str_new_cstr(syn)) 13378 #define warn_balanced(op, syn) ((void) \ 13379 (!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN|EXPR_ENDARG) && \ 13380 space_seen && !ISSPACE(c) && \ 13381 (ambiguous_operator(op, syn), 0))) 13387 int space_seen = 0;
13393 int fallthru =
FALSE;
13419 switch (c =
nextc()) {
13427 case ' ':
case '\t':
case '\f':
case '\r':
13431 while ((c =
nextc())) {
13433 case ' ':
case '\t':
case '\f':
case '\r':
13442 ripper_dispatch_scan_event(parser,
tSP);
13455 ripper_dispatch_scan_event(parser,
tCOMMENT);
13460 if (
IS_lex_state(EXPR_BEG | EXPR_VALUE | EXPR_CLASS | EXPR_FNAME | EXPR_DOT)) {
13469 while ((c =
nextc())) {
13471 case ' ':
case '\t':
case '\f':
case '\r':
13476 if ((c =
nextc()) !=
'.') {
13489 parser->tokp =
lex_p;
13492 goto normal_newline;
13501 if ((c =
nextc()) ==
'*') {
13502 if ((c =
nextc()) ==
'=') {
13509 rb_warning0(
"`**' interpreted as argument prefix");
13528 rb_warning0(
"`*' interpreted as argument prefix");
13567 int first_p =
TRUE;
13576 ripper_dispatch_scan_event(parser,
tEMBDOC);
13585 if (c !=
'=')
continue;
13586 if (strncmp(
lex_p,
"end", 3) == 0 &&
13600 if ((c =
nextc()) ==
'=') {
13601 if ((c =
nextc()) ==
'=') {
13610 else if (c ==
'>') {
13622 (!
IS_ARG() || space_seen)) {
13635 if ((c =
nextc()) ==
'>') {
13642 if ((c =
nextc()) ==
'=') {
13656 if ((c =
nextc()) ==
'=') {
13660 if ((c =
nextc()) ==
'=') {
13728 rb_warnI(
"invalid character syntax; use ?\\%c", c2);
13745 else if (c ==
'\\') {
13774 if ((c =
nextc()) ==
'&') {
13776 if ((c =
nextc()) ==
'=') {
13784 else if (c ==
'=') {
13791 rb_warning0(
"`&' interpreted as argument prefix");
13805 if ((c =
nextc()) ==
'|') {
13807 if ((c =
nextc()) ==
'=') {
13887 if ((c =
nextc()) ==
'.') {
13888 if ((c =
nextc()) ==
'.') {
13896 yyerror(
"no .<digit> floating literal anymore; put 0 before dot");
13902 case '0':
case '1':
case '2':
case '3':
case '4':
13903 case '5':
case '6':
case '7':
case '8':
case '9':
13905 int is_float, seen_point, seen_e, nondigit;
13907 is_float = seen_point = seen_e = nondigit = 0;
13910 if (c ==
'-' || c ==
'+') {
13915 #define no_digits() do {yyerror("numeric literal without digits"); return 0;} while (0) 13918 if (c ==
'x' || c ==
'X') {
13924 if (nondigit)
break;
13931 }
while ((c =
nextc()) != -1);
13935 if (
toklen() == start) {
13938 else if (nondigit)
goto trailing_uc;
13942 if (c ==
'b' || c ==
'B') {
13945 if (c ==
'0' || c ==
'1') {
13948 if (nondigit)
break;
13952 if (c !=
'0' && c !=
'1')
break;
13955 }
while ((c =
nextc()) != -1);
13959 if (
toklen() == start) {
13962 else if (nondigit)
goto trailing_uc;
13966 if (c ==
'd' || c ==
'D') {
13972 if (nondigit)
break;
13979 }
while ((c =
nextc()) != -1);
13983 if (
toklen() == start) {
13986 else if (nondigit)
goto trailing_uc;
13994 if (c ==
'o' || c ==
'O') {
13997 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
14001 if (c >=
'0' && c <=
'7') {
14006 if (nondigit)
break;
14010 if (c < '0' || c >
'9')
break;
14011 if (c >
'7')
goto invalid_octal;
14014 }
while ((c =
nextc()) != -1);
14018 if (nondigit)
goto trailing_uc;
14027 if (c >
'7' && c <=
'9') {
14029 yyerror(
"Invalid octal digit");
14031 else if (c ==
'.' || c ==
'e' || c ==
'E') {
14043 case '0':
case '1':
case '2':
case '3':
case '4':
14044 case '5':
case '6':
case '7':
case '8':
case '9':
14050 if (nondigit)
goto trailing_uc;
14051 if (seen_point || seen_e) {
14056 if (c0 == -1 || !
ISDIGIT(c0)) {
14084 if (c !=
'-' && c !=
'+')
continue;
14090 if (nondigit)
goto decode_num;
14105 snprintf(tmp,
sizeof(tmp),
"trailing `%c' in number", nondigit);
14111 if (
errno == ERANGE) {
14172 if ((c =
nextc()) ==
'=') {
14188 if ((c =
nextc()) ==
'=') {
14208 if ((c =
nextc()) !=
'@') {
14235 if ((c =
nextc()) ==
']') {
14236 if ((c =
nextc()) ==
'=') {
14248 else if (
IS_ARG() && space_seen) {
14283 ripper_dispatch_scan_event(parser,
tSP);
14297 if (c == -1 || !
ISALNUM(c)) {
14304 yyerror(
"unknown type of %string");
14308 if (c == -1 || term == -1) {
14313 if (term ==
'(') term =
')';
14314 else if (term ==
'[') term =
']';
14315 else if (term ==
'{') term =
'}';
14316 else if (term ==
'<') term =
'>';
14366 yyerror(
"unknown type of %string");
14370 if ((c =
nextc()) ==
'=') {
14447 case '1':
case '2':
case '3':
14448 case '4':
case '5':
case '6':
14449 case '7':
case '8':
case '9':
14454 }
while (c != -1 &&
ISDIGIT(c));
14500 ripper_dispatch_scan_event(parser,
k__END__);
14523 switch (
tok()[0]) {
14524 case '@':
case '$':
14528 if ((c ==
'!' || c ==
'?') && !
peek(
'=')) {
14541 switch (
tok()[0]) {
14548 if (
tok()[1] ==
'@')
14594 if (
state == EXPR_FNAME) {
14610 if (
state & (EXPR_BEG | EXPR_ENDARG))
14614 if (
state & (EXPR_BEG | EXPR_VALUE))
14617 if (kw->
id[0] != kw->
id[1])
14668 if (!
NIL_P(parser->delayed)) {
14669 ripper_dispatch_delayed_token(parser, t);
14673 ripper_dispatch_scan_event(parser, t);
14715 if (orig == (
NODE*)1)
return;
14724 #define parser_warning(node, mesg) parser_warning(parser, (node), (mesg)) 14731 #define parser_warn(node, mesg) parser_warn(parser, (node), (mesg)) 14740 if (h == 0)
return tail;
14781 end->nd_next =
tail;
14782 h->nd_end =
tail->nd_end;
14793 if (
list->nd_next) {
14800 list->nd_alen += 1;
14802 list->nd_next->nd_end =
last->nd_next;
14812 if (
head->nd_next) {
14821 if (
tail->nd_next) {
14822 head->nd_next->nd_end =
tail->nd_next->nd_end;
14866 if (htype ==
NODE_DSTR && (headlast =
head->nd_next->nd_end->nd_head) &&
14869 lit = headlast->nd_lit;
14872 lit =
head->nd_lit;
14898 head->nd_alen +=
tail->nd_alen - 1;
14899 head->nd_next->nd_end->nd_next =
tail->nd_next;
14900 head->nd_next->nd_end =
tail->nd_next->nd_end;
14903 else if (htype ==
NODE_DSTR && (headlast =
head->nd_next->nd_end->nd_head) &&
14905 lit = headlast->nd_lit;
15059 static const char *
15062 static const char names[][12] = {
15063 "EXPR_BEG",
"EXPR_END",
"EXPR_ENDARG",
"EXPR_ENDFN",
"EXPR_ARG",
15064 "EXPR_CMDARG",
"EXPR_MID",
"EXPR_FNAME",
"EXPR_DOT",
"EXPR_CLASS",
15084 # define assignable_result(x) get_value(lhs) 15085 # define parser_yyerror(parser, x) dispatch1(assign_error, lhs) 15087 # define assignable_result(x) (x) 15092 yyerror(
"Can't change the value of self");
15095 yyerror(
"Can't assign to nil");
15098 yyerror(
"Can't assign to true");
15101 yyerror(
"Can't assign to false");
15104 yyerror(
"Can't assign to __FILE__");
15107 yyerror(
"Can't assign to __LINE__");
15110 yyerror(
"Can't assign to __ENCODING__");
15144 yyerror(
"dynamic constant assignment");
15153 #undef assignable_result 15154 #undef parser_yyerror 15161 if (
name == idUScore)
return 1;
15168 #define LVAR_USED ((ID)1 << (sizeof(ID) * CHAR_BIT - 1)) 15176 yyerror(
"duplicated argument name");
15188 yyerror(
"duplicated argument name");
15288 if (!node2)
return node1;
15291 if (node1->nd_head)
15292 node1->nd_head =
arg_concat(node1->nd_head, node2);
15304 node1->nd_body =
list_concat(node1->nd_body, node2);
15313 if (!node1)
return NEW_LIST(node2);
15318 node1->nd_head =
arg_append(node1->nd_head, node2);
15339 if (!lhs)
return 0;
15351 lhs->nd_value = rhs;
15356 lhs->nd_args =
arg_append(lhs->nd_args, rhs);
15392 while (node->nd_next) {
15393 node = node->nd_next;
15395 node = node->nd_head;
15399 node = node->nd_body;
15403 if (!node->nd_body) {
15404 node = node->nd_else;
15407 else if (!node->nd_else) {
15408 node = node->nd_body;
15412 node = node->nd_else;
15418 node = node->nd_2nd;
15432 const char *useless = 0;
15439 switch (node->nd_mid) {
15470 useless =
"a variable";
15473 useless =
"a constant";
15480 useless =
"a literal";
15505 useless =
"defined?";
15513 rb_warnS(
"possibly useless use of %s in void context", useless);
15526 if (!node->nd_next)
return;
15528 node = node->nd_next;
15535 NODE **n = &node, *n1 = node;
15537 *n = n1 = n1->nd_body;
15545 NODE *node = *body;
15551 #define subnodes(n1, n2) \ 15552 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \ 15553 (!node->n2) ? (body = &node->n1, 1) : \ 15554 (reduce_nodes(&node->n1), body = &node->n2, 1)) 15564 *body = node = node->nd_stts;
15568 *body = node = node->nd_body;
15572 body = &node->nd_end->nd_head;
15578 body = &node->nd_body;
15587 if (node->nd_else) {
15588 body = &node->nd_resq;
15606 if (!node)
return 1;
15609 if (!(node = node->nd_head))
break;
15613 }
while ((node = node->nd_next) != 0);
15632 yyerror(
"multiple assignment in conditional");
15646 if (!node->nd_value)
return 1;
15649 parser_warn(node->nd_value,
"found = in conditional, should be ==");
15671 for (node = *rootnode; node; node = next) {
15675 next = node->nd_next;
15676 head = node->nd_head;
15702 if (node == 0)
return 0;
15710 return cond0(parser, node);
15716 if (!node)
return 1;
15737 if (node == 0)
return 0;
15744 rb_warn0(
"string literal in condition");
15754 node->nd_1st =
cond0(parser, node->nd_1st);
15755 node->nd_2nd =
cond0(parser, node->nd_2nd);
15760 node->nd_beg =
range_op(parser, node->nd_beg);
15761 node->nd_end =
range_op(parser, node->nd_end);
15794 if (node == 0)
return 0;
15795 return cond0(parser, node);
15803 NODE *node = left, *second;
15827 if (node->nd_next == 0) {
15828 node = node->nd_head;
15849 switch (
TYPE(node->nd_lit)) {
15878 node2->nd_head = node1;
15892 args->pre_init = m ? m->nd_next : 0;
15895 args->post_init =
p ?
p->nd_next : 0;
15896 args->first_post_arg =
p ?
p->nd_pid : 0;
15898 args->rest_arg = r;
15900 args->opt_args = o;
15919 args->block_arg = b;
15946 lit = node->nd_lit;
15965 ID vid = lhs->nd_vid;
15967 lhs->nd_value = rhs;
15970 asgn->nd_aid = vid;
15973 else if (op ==
tANDOP) {
15974 lhs->nd_value = rhs;
15996 else if (op ==
tANDOP) {
16012 else if (op ==
tANDOP) {
16028 return dispatch3(opassign, lhs, op, rhs);
16034 VALUE recv = dispatch3(field, lhs,
type, attr);
16035 return dispatch3(opassign, recv, op, rhs);
16045 if (!local->
used)
return;
16050 rb_bug(
"local->used->pos != local->vars->pos");
16052 for (
i = 0;
i <
cnt; ++
i) {
16068 local->
used = !(inherit_dvars &&
16097 int cnt = cnt_args + cnt_vars;
16101 if (
cnt <= 0)
return 0;
16105 for (
i = 0, j = cnt_args+1;
i < cnt_vars; ++
i) {
16139 vars =
lvtbl->vars;
16141 used =
lvtbl->used;
16146 if (used) used = used->
prev;
16162 static const struct vtable *
16170 return lvtbl->args;
16178 if ((tmp =
lvtbl->used) != 0) {
16194 while (
lvtbl->args != lvargs) {
16196 if (!
lvtbl->args) {
16218 vars =
lvtbl->vars;
16219 used =
lvtbl->used;
16232 if (used) used = used->
prev;
16285 "regexp encoding option '%c' differs from source encoding '%s'",
16314 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
16319 long len = name_end -
name;
16320 const char *s = (
const char *)
name;
16337 rb_warningS(
"named capture conflicts a local variable - %s",
16417 NODE *scope = node;
16420 if (!node)
return node;
16424 node = node->nd_body;
16428 node = node->nd_body;
16435 prelude->nd_body = node;
16436 scope->nd_body = prelude;
16439 scope->nd_body = node;
16449 NODE *scope = node;
16452 if (!node)
return node;
16456 node = node->nd_body;
16460 node = node->nd_body;
16476 prelude->nd_body = node;
16477 scope->nd_body = prelude;
16480 scope->nd_body = node;
16486 static const struct {
16511 #define op_tbl_count numberof(op_tbl) 16513 #ifndef ENABLE_SELECTOR_NAMESPACE 16514 #define ENABLE_SELECTOR_NAMESPACE 0 16521 #if ENABLE_SELECTOR_NAMESPACE 16533 #if ENABLE_SELECTOR_NAMESPACE 16540 ivar2_cmp(
struct ivar2_key *key1,
struct ivar2_key *key2)
16542 if (key1->id == key2->id && key1->klass == key2->klass) {
16549 ivar2_hash(
struct ivar2_key *
key)
16551 return (
key->id << 8) ^ (
key->klass >> 2);
16565 #if ENABLE_SELECTOR_NAMESPACE 16573 (void)lex_state_name(-1);
16602 if (m >= e)
return 0;
16606 else if (*m ==
'-') {
16620 return m == e ? mb + 1 : 0;
16635 #define IDSET_ATTRSET_FOR_SYNTAX ((1U<<ID_LOCAL)|(1U<<ID_CONST)) 16636 #define IDSET_ATTRSET_FOR_INTERN (~(~0U<<(1<<ID_SCOPE_SHIFT)) & ~(1U<<ID_ATTRSET)) 16641 const char *m =
name;
16642 const char *e = m + len;
16645 if (!m || len <= 0)
return -1;
16665 case '<': ++m;
break;
16666 case '=':
if (*++m ==
'>') ++m;
break;
16673 case '>':
case '=': ++m;
break;
16679 case '~': ++m;
break;
16680 case '=':
if (*++m ==
'=') ++m;
break;
16681 default:
return -1;
16686 if (*++m ==
'*') ++m;
16689 case '+':
case '-':
16690 if (*++m ==
'@') ++m;
16693 case '|':
case '^':
case '&':
case '/':
case '%':
case '~':
case '`':
16698 if (*++m !=
']')
return -1;
16699 if (*++m ==
'=') ++m;
16703 if (len == 1)
return ID_JUNK;
16705 case '=':
case '~': ++m;
break;
16706 default:
return -1;
16718 case '!':
case '?':
16722 if (m + 1 < e || *m !=
'=')
break;
16725 if (!(allowed_atttset & (1
U <<
type)))
return -1;
16732 return m == e ?
type : -1;
16798 str = (
VALUE)&fake_str;
16812 const char *
name, *m, *e;
16834 if (
len < 2)
goto junk;
16843 if (
len < 3)
goto junk;
16848 if (
len < 2)
goto junk;
16885 else if (
id == 0) {
16957 name[0] = (char)
id;
16980 if (
RBASIC(str)->klass == 0)
17003 if (
RBASIC(str)->klass == 0)
17016 if (!str)
return 0;
17270 parser->delayed =
Qnil;
17272 parser->result =
Qnil;
17273 parser->parsing_thread =
Qnil;
17274 parser->toplevel_p =
TRUE;
17283 #define parser_mark ripper_parser_mark 17284 #define parser_free ripper_parser_free 17319 if (
p->parser_tokenbuf) {
17320 xfree(
p->parser_tokenbuf);
17322 for (local =
p->parser_lvtbl; local; local =
prev) {
17335 size_t size =
sizeof(*p);
17337 if (!ptr)
return 0;
17338 size +=
p->parser_toksiz;
17339 for (local =
p->parser_lvtbl; local; local = local->
prev) {
17340 size +=
sizeof(*local);
17360 #undef rb_reserved_word 17449 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE)) 17450 #define NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0) 17451 #define ADD2HEAP(n, c, p) ((parser->heap = (n))->u1.node = (p), \ 17452 (n)->u3.cnt = (c), (p)) 17480 if (ptr && (n = parser->
heap) !=
NULL) {
17482 if (n->
u1.
node == ptr) {
17499 while ((n = *prev) !=
NULL) {
17500 if (n->u1.node == ptr) {
17513 #ifdef RIPPER_DEBUG 17514 extern int rb_is_pointer_to_heap(
VALUE);
17520 if (x ==
Qfalse)
return x;
17521 if (x ==
Qtrue)
return x;
17522 if (x ==
Qnil)
return x;
17527 if (!rb_is_pointer_to_heap(x))
17540 return ((
NODE *)x)->nd_rval;
17549 #define validate(x) ((x) = get_value(x)) 17561 return rb_funcall(parser->value, mid, 1, a);
17569 return rb_funcall(parser->value, mid, 2, a, b);
17578 return rb_funcall(parser->value, mid, 3, a, b, c);
17588 return rb_funcall(parser->value, mid, 4, a, b, c, d);
17599 return rb_funcall(parser->value, mid, 5, a, b, c, d, e);
17612 return rb_funcall(parser->value, mid, 7, a, b, c, d, e,
f, g);
17615 static const struct kw_assoc {
17618 } keyword_to_name[] = {
17671 keyword_id_to_str(
ID id)
17673 const struct kw_assoc *a;
17675 for (a = keyword_to_name; a->id; a++) {
17682 #undef ripper_id2sym 17684 ripper_id2sym(
ID id)
17694 if ((
name = keyword_id_to_str(
id))) {
17707 rb_bug(
"cannot convert ID to string: %ld", (
unsigned long)
id);
17725 ripper_get_value(
VALUE v)
17732 return nd->nd_rval;
17736 ripper_compile_error(
struct parser_params *parser,
const char *fmt, ...)
17741 va_start(
args, fmt);
17748 ripper_warn0(
struct parser_params *parser,
const char *fmt)
17754 ripper_warnI(
struct parser_params *parser,
const char *fmt,
int a)
17761 ripper_warnS(
struct parser_params *parser,
const char *fmt,
const char *str)
17768 ripper_warning0(
struct parser_params *parser,
const char *fmt)
17774 ripper_warningS(
struct parser_params *parser,
const char *fmt,
const char *str)
17787 ripper_s_allocate(
VALUE klass)
17799 #define ripper_initialized_p(r) ((r)->parser_lex_input != 0) 17815 VALUE src, fname, lineno;
17828 if (
NIL_P(fname)) {
17843 struct ripper_args {
17850 ripper_parse0(
VALUE parser_v)
17856 ripper_yyparse((
void*)parser);
17857 return parser->result;
17861 ripper_ensure(
VALUE parser_v)
17866 parser->parsing_thread =
Qnil;
17877 ripper_parse(
VALUE self)
17882 if (!ripper_initialized_p(parser)) {
17885 if (!
NIL_P(parser->parsing_thread)) {
17892 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
17894 return parser->result;
17905 ripper_column(
VALUE self)
17911 if (!ripper_initialized_p(parser)) {
17914 if (
NIL_P(parser->parsing_thread))
return Qnil;
17926 ripper_filename(
VALUE self)
17931 if (!ripper_initialized_p(parser)) {
17945 ripper_lineno(
VALUE self)
17950 if (!ripper_initialized_p(parser)) {
17953 if (
NIL_P(parser->parsing_thread))
return Qnil;
17957 #ifdef RIPPER_DEBUG 17993 InitVM_ripper(
void)
18009 #ifdef RIPPER_DEBUG #define STRNCASECMP(s1, s2, n)
RUBY_EXTERN VALUE rb_cString
static const struct @60 op_tbl[]
void rb_define_global_const(const char *, VALUE)
char * parser_ruby_sourcefile
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 NEW_OP_ASGN_AND(i, val)
#define parser_precise_mbclen()
static NODE * remove_begin(NODE *)
#define MBCLEN_CHARFOUND_P(ret)
#define NEW_STRTERM(func, term, paren)
static const yytype_int16 yydefgoto[]
#define list_concat(h, t)
static struct parser_params * parser_new(void)
#define NEW_OP_ASGN1(p, id, a)
int onig_foreach_name(regex_t *reg, int(*func)(const UChar *, const UChar *, int, int *, regex_t *, void *), void *arg)
static NODE * arg_blk_pass(NODE *, NODE *)
static void Init_id(void)
static ID internal_id_gen(struct parser_params *)
void rb_bug(const char *fmt,...)
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)
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)
VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline)
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)
#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 *)
VALUE rb_range_new(VALUE, VALUE, int)
static void reduce_nodes_gen(struct parser_params *, NODE **)
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
static NODE * new_const_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
VALUE rb_str_cat(VALUE, const char *, long)
static void parser_heredoc_restore(struct parser_params *parser, NODE *here)
VALUE rb_reg_check_preprocess(VALUE)
static int yysyntax_error(YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
static NODE * gettable_gen(struct parser_params *, ID)
#define str_copy(_s, _p, _n)
#define TypedData_Wrap_Struct(klass, data_type, sval)
static struct symbols global_symbols
static YYSIZE_T yystrlen(char *yystr) const
VALUE rb_parser_end_seen_p(VALUE vparser)
#define TypedData_Get_Struct(obj, type, data_type, sval)
struct token_info token_info
#define new_op_assign(lhs, op, rhs)
stack_type parser_cmdarg_stack
static NODE * parser_compile_string(volatile VALUE vparser, VALUE fname, VALUE s, int line)
#define new_args(f, o, r, p, t)
VALUE rb_suppress_tracing(VALUE(*func)(VALUE), VALUE arg)
VALUE rb_enc_from_encoding(rb_encoding *encoding)
#define token_info_push(token)
static int parser_here_document(struct parser_params *, NODE *)
#define logop(type, node1, node2)
VALUE rb_ary_push(VALUE ary, VALUE item)
static void yydestruct(char *yymsg, int yytype, YYSTYPE *yyvaluep, struct parser_params *parser) const
#define NEW_CLASS(n, b, s)
SSL_METHOD *(* func)(void)
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)
VALUE op_sym[tLAST_OP_ID]
VALUE rb_funcall(VALUE, ID, int,...)
Calls a method.
#define warn_balanced(op, syn)
struct RString::@73::@74 heap
#define match_op(node1, node2)
int rb_enc_str_coderange(VALUE)
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)
#define RSTRING_GETMEM(str, ptrvar, lenvar)
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 *)
const rb_data_type_t * parent
void rb_compile_warn(const char *file, int line, const char *fmt,...)
static NODE * range_op(struct parser_params *parser, NODE *node)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc)
st_index_t rb_str_hash(VALUE)
VALUE rb_ary_new3(long n,...)
static void parser_pushback(struct parser_params *parser, int c)
#define nd_set_type(n, t)
static int lvar_defined_gen(struct parser_params *, ID)
void rb_gc_mark(VALUE ptr)
#define parser_is_identchar()
#define rb_enc_islower(c, enc)
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)
static void parser_initialize(struct parser_params *parser)
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)
#define NEW_IASGN(v, val)
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)
static enum node_type nodetype(NODE *node)
VALUE rb_str_buf_append(VALUE, VALUE)
VALUE rb_sym_all_symbols(void)
static VALUE lex_getline(struct parser_params *parser)
static NODE * ret_args_gen(struct parser_params *, NODE *)
static const yytype_int16 yytable[]
#define RUBY_DTRACE_PARSE_BEGIN(arg0, arg1)
VALUE parser_ruby_sourcefile_string
int rb_enc_symname2_p(const char *name, long len, rb_encoding *enc)
static NODE * yycompile(struct parser_params *parser, VALUE fname, int line)
VALUE rb_parser_set_yydebug(VALUE self, VALUE flag)
#define ENC_CODERANGE_7BIT
const char * rb_obj_classname(VALUE)
void rb_gc_force_recycle(VALUE p)
static int yylex(void *, void *)
#define list_append(l, i)
NODE * parser_deferred_nodes
static int simple_re_meta(int c)
VALUE rb_str_buf_cat(VALUE, const char *, long)
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)
static int vtable_size(const struct vtable *tbl)
static int assign_in_cond(struct parser_params *parser, NODE *node)
void rb_exc_raise(VALUE mesg)
static NODE * list_append_gen(struct parser_params *, NODE *, NODE *)
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)
#define RB_TYPE_P(obj, type)
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)
int st_lookup(st_table *, st_data_t, st_data_t *)
#define NEW_ATTRASGN(r, m, a)
#define MEMZERO(p, type, n)
static VALUE coverage(VALUE fname, int n)
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[]
static char * parser_tokspace(struct parser_params *parser, int n)
void rb_compile_error_append(const char *fmt,...)
void rb_compile_error_with_enc(const char *file, int line, void *enc, const char *fmt,...)
static void parser_free(void *ptr)
#define NEW_PRELUDE(p, b)
#define literal_concat(h, t)
RUBY_EXTERN VALUE rb_cObject
static int symbols_i(VALUE sym, ID value, VALUE ary)
static int parser_tokadd_escape(struct parser_params *parser, rb_encoding **encp)
#define rb_enc_isascii(c, enc)
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 yytable_value_is_error(yytable_value)
VALUE rb_get_coverages(void)
NODE * rb_compile_string(const char *f, VALUE s, int line)
static const yytype_uint16 yyprhs[]
VALUE rb_obj_as_string(VALUE)
static NODE * list_concat_gen(struct parser_params *, NODE *, NODE *)
long(* rb_magic_comment_length_t)(struct parser_params *parser, const char *name, long len)
int rb_ascii8bit_encindex(void)
#define NEW_ARGSPUSH(a, b)
static int is_global_name_punct(const char c)
#define is_attrset_id(id)
#define set_yylval_name(x)
#define IDSET_ATTRSET_FOR_INTERN
#define NEW_UNLESS(c, t, e)
static char * parser_newtok(struct parser_params *parser)
RUBY_EXTERN VALUE rb_mKernel
VALUE rb_thread_current(void)
static int vtable_included(const struct vtable *tbl, ID id)
#define block_dup_check(n1, n2)
static NODE * arg_append_gen(struct parser_params *, NODE *, NODE *)
static void local_push_gen(struct parser_params *, int)
void st_add_direct(st_table *, st_data_t, st_data_t)
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)
void rb_define_const(VALUE, const char *, VALUE)
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)
NODE * rb_parser_append_print(VALUE vparser, NODE *node)
static void ripper_init_eventids1(void)
static void vtable_add(struct vtable *tbl, ID id)
char ary[RSTRING_EMBED_LEN_MAX+1]
#define ALLOCA_N(type, n)
#define flush_string_content(enc)
#define NEW_OP_CDECL(v, op, val)
#define ENC_CODERANGE_UNKNOWN
#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
#define MEMCPY(p1, p2, type, n)
#define ENC_CODERANGE_BROKEN
#define rb_enc_isupper(c, enc)
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 *)
static NODE * dsym_node_gen(struct parser_params *, NODE *)
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_make_backtrace(void)
void * rb_parser_malloc(struct parser_params *parser, size_t size)
#define NEW_WHEN(c, t, e)
VALUE rb_str_resize(VALUE, long)
#define NEW_DASGN(v, val)
void(* rb_magic_comment_setter_t)(struct parser_params *parser, const char *name, const char *val)
static int parser_peek_variable_name(struct parser_params *parser)
static VALUE yycompile0(VALUE arg)
#define mixed_escape(beg, enc1, enc2)
int rb_str_hash_cmp(VALUE, VALUE)
#define set_yylval_num(x)
static ID register_symid_str(ID, VALUE)
#define NEW_BLOCK_PASS(b)
int rb_dvar_defined(ID id)
static void dispose_string(VALUE str)
static NODE * aryset_gen(struct parser_params *, NODE *, NODE *)
#define RUBY_DTRACE_PARSE_END_ENABLED()
static ID shadowing_lvar_gen(struct parser_params *, ID)
#define REALLOC_N(var, type, n)
int rb_symname_p(const char *name)
#define new_attr_op_assign(lhs, type, attr, op, rhs)
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 *)
static NODE * new_evstr_gen(struct parser_params *, NODE *)
VALUE rb_sprintf(const char *format,...)
#define IS_lex_state_for(x, ls)
static void reg_fragment_setenc_gen(struct parser_params *, VALUE, int)
#define NEW_OP_ASGN_OR(i, val)
#define rb_enc_isspace(c, enc)
#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)
int rb_enc_symname_p(const char *name, rb_encoding *enc)
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)
#define NEW_RESCUE(b, res, e)
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)
rb_encoding * rb_usascii_encoding(void)
#define rb_enc_isalnum(c, enc)
static void rb_backref_error_gen(struct parser_params *, NODE *)
#define rb_enc_isdigit(c, enc)
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)
static const char *const yytname[]
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
stack_type parser_cond_stack
static void ripper_init_eventids2(void)
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)
#define rb_enc_ispunct(c, enc)
static int value_expr_gen(struct parser_params *, NODE *)
void rb_mark_tbl(st_table *tbl)
#define NEW_ENSURE(b, en)
int rb_is_global_id(ID id)
static int reg_fragment_check_gen(struct parser_params *, VALUE, int)
static const yytype_int16 yycheck[]
#define rb_enc_asciicompat(enc)
VALUE rb_ensure(VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*e_proc)(ANYARGS), VALUE data2)
static NODE * new_attr_op_assign_gen(struct parser_params *parser, NODE *lhs, ID attr, ID op, NODE *rhs)
#define set_yylval_str(x)
int rb_char_to_option_kcode(int c, int *option, int *kcode)
static int is_static_content(NODE *node)
#define ENCODING_IS_ASCII8BIT(obj)
#define RUBY_DTRACE_PARSE_BEGIN_ENABLED()
static const yytype_int16 yypgoto[]
static int arg_var_gen(struct parser_params *, ID)
#define rb_enc_isalpha(c, enc)
static int literal_concat0(struct parser_params *, VALUE, VALUE)
static ID * local_tbl_gen(struct parser_params *)
#define reg_named_capture_assign(regexp, match)
static int parser_yyerror(struct parser_params *, const char *)
static void warning_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
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)
RUBY_FUNC_EXPORTED const unsigned int ruby_global_name_punct_bits[(0x7e - 0x20+31)/32]
static NODE * attrset_gen(struct parser_params *, NODE *, ID)
int rb_is_local_name(VALUE name)
VALUE rb_usascii_str_new2(const char *)
const struct vtable * vars
int rb_const_defined_at(VALUE, ID)
static VALUE reg_compile_gen(struct parser_params *, VALUE, int)
st_table * st_init_table_with_size(const struct st_hash_type *, st_index_t)
#define ENCODING_GET(obj)
rb_encoding * rb_enc_get(VALUE obj)
void rb_gc_mark_parser(void)
static const yytype_uint8 yytranslate[]
#define ADD2HEAP(n, c, p)
static int is_private_local_id(ID name)
#define NEW_GASGN(v, val)
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)
void rb_set_errinfo(VALUE err)
NODE * parser_lex_strterm
#define NEW_UNTIL(c, b, n)
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)
#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,...)
VALUE rb_check_string_type(VALUE)
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()
#define NEW_WHILE(c, b, n)
static const yytype_int16 yypact[]
static VALUE lex_io_gets(struct parser_params *parser, VALUE io)
#define NEW_POSTARG(i, v)
struct rb_encoding_entry * list
void * rb_parser_calloc(struct parser_params *parser, size_t nelem, size_t size)
#define NEW_CVASGN(v, val)
static void new_bv_gen(struct parser_params *, ID)
static NODE * negate_lit(NODE *)
#define NEW_OP_ASGN2(r, i, o, val)
#define NEW_MATCH3(r, n2)
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_OPT_ARG(i, v)
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)
VALUE rb_filesystem_str_new_cstr(const char *)
static const char id_type_names[][9]
const char * parser_lex_pbeg
int rb_is_class_id(ID id)
VALUE rb_enc_str_new(const char *, long, rb_encoding *)
VALUE rb_parser_new(void)
VALUE rb_const_get_at(VALUE, ID)
static void parser_set_encode(struct parser_params *parser, const char *name)
#define call_uni_op(recv, id)
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 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 ruby_sourcefile_string
#define StringValuePtr(v)
#define formal_argument(id)
static int nodeline(NODE *node)
#define dispatch_heredoc_end()
VALUE rb_str_new_frozen(VALUE)
static const yytype_uint8 yyr2[]
#define NEW_RESBODY(a, ex, n)
#define NEW_ARGSCAT(a, b)
#define NEW_DASGN_CURR(v, val)
#define YY_STACK_PRINT(Bottom, Top)
NODE * rb_parser_compile_string_path(volatile VALUE vparser, VALUE f, VALUE s, int line)
#define NEW_CALL(r, m, a)
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)
#define CONST_ID(var, str)
ID rb_intern3(const char *name, long len, rb_encoding *enc)
#define attrset(node, id)
VALUE rb_str_intern(VALUE)
#define mixed_error(enc1, enc2)
static ID register_symid(ID, const char *, long, rb_encoding *)
#define NEW_MATCH2(n1, n2)
static const struct vtable * dyna_push_gen(struct parser_params *)
void * rb_parser_realloc(struct parser_params *parser, void *ptr, size_t size)
st_table * st_init_numtable_with_size(st_index_t)
#define shadowing_lvar(name)
VALUE rb_cstr_to_inum(const char *str, int base, int badcheck)
#define rb_enc_mbcput(c, buf, enc)
#define NEW_DEFN(i, a, d, p)
#define reg_fragment_check(str, options)
int rb_parse_in_eval(void)
VALUE rb_str_buf_new(long)
VALUE rb_usascii_str_new(const char *, long)
ID rb_intern2(const char *name, long len)
#define nd_set_line(n, l)
VALUE rb_vsprintf(const char *, va_list)
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 RTYPEDDATA_TYPE(v)
#define NEW_LASGN(v, val)
static VALUE debug_lines(VALUE fname)
VALUE rb_hash_aset(VALUE, VALUE, VALUE)
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)
#define yypact_value_is_default(yystate)
#define ENCODING_SET(obj, i)
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)
VALUE rb_str_append(VALUE, VALUE)
int st_foreach(st_table *, int(*)(ANYARGS), st_data_t)
static void warn_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
#define NEW_NODE(t, a0, a1, a2)
#define NEW_ARGS_AUX(r, b)
int rb_memcicmp(const void *, const void *, long)
#define block_append(h, t)
NODE * rb_parser_compile_file_path(volatile VALUE vparser, VALUE fname, VALUE file, int start)
static void vtable_free(struct vtable *tbl)
#define rb_enc_prev_char(s, p, e, enc)
unsigned long ruby_scan_oct(const char *, size_t, size_t *)
VALUE rb_attr_get(VALUE, ID)
#define tokaddmbc(c, enc)
#define NEW_CDECL(v, val, path)
#define NEW_DEFS(r, i, a, d)
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()
VALUE rb_str_new(const char *, long)
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)