47 #define YYBISON_VERSION "2.5" 50 #define YYSKELETON_NAME "yacc.c" 62 #define YYLSP_NEEDED 0 73 # error needs pure parser 76 #define PARSER_DEBUG 0 79 #define YYERROR_VERBOSE 1 80 #define YYSTACK_USE_ALLOCA 0 95 #ifndef WARN_PAST_SCOPE 96 # define WARN_PAST_SCOPE 0 101 #define YYMALLOC(size) rb_parser_malloc(parser, (size)) 102 #define YYREALLOC(ptr, size) rb_parser_realloc(parser, (ptr), (size)) 103 #define YYCALLOC(nelem, size) rb_parser_calloc(parser, (nelem), (size)) 104 #define YYFREE(ptr) rb_parser_free(parser, (ptr)) 105 #define YYFPRINTF rb_parser_printf 106 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL 107 # define YY_LOCATION_PRINT(File, Loc) \ 108 rb_parser_printf(parser, "%d.%d-%d.%d", \ 109 (Loc).first_line, (Loc).first_column, \ 110 (Loc).last_line, (Loc).last_column) 116 #define malloc YYMALLOC 117 #define realloc YYREALLOC 118 #define calloc YYCALLOC 139 #define DEF_EXPR(n) EXPR_##n = (1 << EXPR_##n##_bit) 158 #define IS_lex_state_for(x, ls) ((x) & (ls)) 159 #define IS_lex_state_all_for(x, ls) (((x) & (ls)) == (ls)) 160 #define IS_lex_state(ls) IS_lex_state_for(lex_state, (ls)) 161 #define IS_lex_state_all(ls) IS_lex_state_all_for(lex_state, (ls)) 163 # define SET_LEX_STATE(ls) \ 164 (lex_state = (yydebug ? trace_lex_state(lex_state, (ls), __LINE__) : \ 165 (enum lex_state_e)(ls))) 171 # define SHOW_BITSTACK(stack, name) (yydebug ? show_bitstack(stack, name, __LINE__) : (void)0) 172 # define BITSTACK_PUSH(stack, n) (((stack) = ((stack)<<1)|((n)&1)), SHOW_BITSTACK(stack, #stack"(push)")) 173 # define BITSTACK_POP(stack) (((stack) = (stack) >> 1), SHOW_BITSTACK(stack, #stack"(pop)")) 174 # define BITSTACK_LEXPOP(stack) (((stack) = ((stack) >> 1) | ((stack) & 1)), SHOW_BITSTACK(stack, #stack"(lexpop)")) 175 # define BITSTACK_SET_P(stack) (SHOW_BITSTACK(stack, #stack), (stack)&1) 176 # define BITSTACK_SET(stack, n) ((stack)=(n), SHOW_BITSTACK(stack, #stack"(set)")) 178 #define COND_PUSH(n) BITSTACK_PUSH(cond_stack, (n)) 179 #define COND_POP() BITSTACK_POP(cond_stack) 180 #define COND_LEXPOP() BITSTACK_LEXPOP(cond_stack) 181 #define COND_P() BITSTACK_SET_P(cond_stack) 182 #define COND_SET(n) BITSTACK_SET(cond_stack, (n)) 184 #define CMDARG_PUSH(n) BITSTACK_PUSH(cmdarg_stack, (n)) 185 #define CMDARG_POP() BITSTACK_POP(cmdarg_stack) 186 #define CMDARG_LEXPOP() BITSTACK_LEXPOP(cmdarg_stack) 187 #define CMDARG_P() BITSTACK_SET_P(cmdarg_stack) 188 #define CMDARG_SET(n) BITSTACK_SET(cmdarg_stack, (n)) 208 #define DVARS_INHERIT ((void*)1) 209 #define DVARS_TOPSCOPE NULL 210 #define DVARS_SPECIAL_P(tbl) (!POINTER_P(tbl)) 211 #define POINTER_P(val) ((VALUE)(val) & ~(VALUE)3) 234 if (
VTBL_DEBUG) printf(
"vtable_alloc: %p\n", (
void *)tbl);
241 if (
VTBL_DEBUG)printf(
"vtable_free: %p\n", (
void *)tbl);
254 rb_bug(
"vtable_add: vtable is not allocated (%p)", (
void *)tbl);
258 if (tbl->pos == tbl->capa) {
259 tbl->capa = tbl->capa * 2;
262 tbl->tbl[tbl->pos++] =
id;
269 if (tbl->
pos < n)
rb_bug(
"vtable_pop: unreachable");
280 for (i = 0; i < tbl->
pos; i++) {
281 if (tbl->
tbl[i] ==
id) {
361 unsigned int past_scope_enabled: 1;
385 VALUE parsing_thread;
390 #define intern_cstr(n,l,en) rb_intern3(n,l,en) 392 #define intern_cstr(n,l,en) rb_intern3(n,l,en) 395 #define STR_NEW(p,n) rb_enc_str_new((p),(n),current_enc) 396 #define STR_NEW0() rb_enc_str_new(0,0,current_enc) 397 #define STR_NEW2(p) rb_enc_str_new((p),strlen(p),current_enc) 398 #define STR_NEW3(p,n,e,func) parser_str_new((p),(n),(e),(func),current_enc) 399 #define TOK_INTERN() intern_cstr(tok(), toklen(), current_enc) 402 #define yyerror(msg) parser_yyerror(parser, (msg)) 404 #define lex_strterm (parser->lex.strterm) 405 #define lex_state (parser->lex.state) 406 #define cond_stack (parser->cond_stack) 407 #define cmdarg_stack (parser->cmdarg_stack) 408 #define paren_nest (parser->lex.paren_nest) 409 #define lpar_beg (parser->lex.lpar_beg) 410 #define brace_nest (parser->lex.brace_nest) 411 #define in_single (parser->in_single) 412 #define in_def (parser->in_def) 413 #define in_main (parser->in_main) 414 #define in_defined (parser->in_defined) 415 #define tokenbuf (parser->tokenbuf) 416 #define tokidx (parser->tokidx) 417 #define toksiz (parser->toksiz) 418 #define tokline (parser->tokline) 419 #define lex_input (parser->lex.input) 420 #define lex_lastline (parser->lex.lastline) 421 #define lex_nextline (parser->lex.nextline) 422 #define lex_pbeg (parser->lex.pbeg) 423 #define lex_p (parser->lex.pcur) 424 #define lex_pend (parser->lex.pend) 425 #define heredoc_end (parser->heredoc_end) 426 #define heredoc_indent (parser->heredoc_indent) 427 #define heredoc_line_indent (parser->heredoc_line_indent) 428 #define command_start (parser->command_start) 429 #define lex_gets_ptr (parser->lex.gets_ptr) 430 #define lex_gets (parser->lex.gets) 431 #define lvtbl (parser->lvtbl) 432 #define ruby__end__seen (parser->ruby__end__seen) 433 #define ruby_sourceline (parser->ruby_sourceline) 434 #define ruby_sourcefile (parser->ruby_sourcefile) 435 #define ruby_sourcefile_string (parser->ruby_sourcefile_string) 436 #define current_enc (parser->enc) 437 #define current_arg (parser->cur_arg) 438 #define yydebug (parser->yydebug) 440 #define compile_for_eval (0) 442 #define compile_for_eval (parser->base_block != 0 && !in_main) 443 #define ruby_eval_tree (parser->eval_tree) 444 #define ruby_eval_tree_begin (parser->eval_tree_begin) 445 #define ruby_debug_lines (parser->debug_lines) 446 #define ruby_coverage (parser->coverage) 449 #define CALL_Q_P(q) ((q) == tANDDOT) 450 #define NODE_CALL_Q(q) (CALL_Q_P(q) ? NODE_QCALL : NODE_CALL) 451 #define NEW_QCALL(q,r,m,a) NEW_NODE(NODE_CALL_Q(q),r,m,a) 453 #define lambda_beginning_p() (lpar_beg && lpar_beg == paren_nest) 458 #define yyparse ruby_yyparse 461 #define rb_node_newnode(type, a1, a2, a3) node_newnode(parser, (type), (a1), (a2), (a3)) 464 #define cond(node) cond_gen(parser, (node), FALSE) 465 #define method_cond(node) cond_gen(parser, (node), TRUE) 467 #define new_if(cc,left,right) new_if_gen(parser, (cc), (left), (right)) 468 #define new_unless(cc,left,right) new_if_gen(parser, (cc), (right), (left)) 470 #define logop(type,node1,node2) logop_gen(parser, (type), (node1), (node2)) 479 #define value_expr(node) value_expr_gen(parser, (node) = remove_begin(node)) 480 #define void_expr0(node) void_expr_gen(parser, (node)) 481 #define void_expr(node) void_expr0((node) = remove_begin(node)) 483 #define void_stmts(node) void_stmts_gen(parser, (node)) 485 #define reduce_nodes(n) reduce_nodes_gen(parser,(n)) 487 #define block_dup_check(n1,n2) block_dup_check_gen(parser,(n1),(n2)) 490 #define block_append(h,t) block_append_gen(parser,(h),(t)) 492 #define list_append(l,i) list_append_gen(parser,(l),(i)) 495 #define arg_append(h,t) arg_append_gen(parser,(h),(t)) 497 #define arg_concat(h,t) arg_concat_gen(parser,(h),(t)) 499 #define literal_concat(h,t) literal_concat_gen(parser,(h),(t)) 502 #define new_evstr(n) new_evstr_gen(parser,(n)) 504 #define evstr2dstr(n) evstr2dstr_gen(parser,(n)) 508 #define call_bin_op(recv,id,arg1) call_bin_op_gen(parser, (recv),(id),(arg1)) 510 #define call_uni_op(recv,id) call_uni_op_gen(parser, (recv),(id)) 513 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t)) 515 #define new_args_tail(k,kr,b) new_args_tail_gen(parser, (k),(kr),(b)) 516 #define new_kw_arg(k) ((k) ? NEW_KW_ARG(0, (k)) : 0) 520 #define ret_args(node) ret_args_gen(parser, (node)) 523 #define new_yield(node) new_yield_gen(parser, (node)) 525 #define dsym_node(node) dsym_node_gen(parser, (node)) 528 #define gettable(id) gettable_gen(parser,(id)) 530 #define assignable(id,node) assignable_gen(parser, (id), (node)) 533 #define aryset(node1,node2) aryset_gen(parser, (node1), (node2)) 535 #define attrset(node,q,id) attrset_gen(parser, (node), (q), (id)) 538 #define rb_backref_error(n) rb_backref_error_gen(parser,(n)) 540 #define node_assign(node1, node2) node_assign_gen(parser, (node1), (node2)) 544 #define new_attr_op_assign(lhs, type, attr, op, rhs) new_attr_op_assign_gen(parser, (lhs), (type), (attr), (op), (rhs)) 546 #define new_const_op_assign(lhs, op, rhs) new_const_op_assign_gen(parser, (lhs), (op), (rhs)) 548 #define const_path_field(w, n) NEW_COLON2(w, n) 549 #define top_const_field(n) NEW_COLON3(n) 551 #define const_decl(path) const_decl_gen(parser, path) 553 #define var_field(n) (n) 554 #define backref_assign_error(n, a) (rb_backref_error(n), NEW_BEGIN(0)) 559 #define new_hash(hash) new_hash_gen(parser, (hash)) 561 #define new_defined(expr) NEW_DEFINED(remove_begin_all(expr)) 564 #define new_regexp(node, opt) new_regexp_gen(parser, node, opt) 567 #define new_xstring(node) new_xstring_gen(parser, node) 568 #define new_string1(str) (str) 570 #define new_brace_body(param, stmt) NEW_ITER(param, stmt) 571 #define new_do_body(param, stmt) NEW_ITER(param, stmt) 574 #define match_op(node1,node2) match_op_gen(parser, (node1), (node2)) 577 #define local_tbl() local_tbl_gen(parser) 580 #define reg_compile(str,options) reg_compile_gen(parser, (str), (options)) 582 #define reg_fragment_setenc(str,options) reg_fragment_setenc_gen(parser, (str), (options)) 584 #define reg_fragment_check(str,options) reg_fragment_check_gen(parser, (str), (options)) 586 #define reg_named_capture_assign(regexp) reg_named_capture_assign_gen(parser,(regexp)) 589 # define heredoc_dedent(str) parser_heredoc_dedent(parser, (str)) 591 #define get_id(id) (id) 592 #define get_value(val) (val) 594 #define NODE_RIPPER NODE_CDECL 603 ripper_is_node_yylval(
VALUE n)
608 #define value_expr(node) ((void)(node)) 609 #define remove_begin(node) (node) 610 #define rb_dvar_defined(id, base) 0 611 #define rb_local_defined(id, base) 0 612 static ID ripper_get_id(
VALUE);
613 #define get_id(id) ripper_get_id(id) 615 #define get_value(val) ripper_get_value(val) 617 #define assignable(lhs,node) assignable_gen(parser, (lhs)) 619 #define id_is_var(id) id_is_var_gen(parser, (id)) 621 #define node_assign(node1, node2) dispatch2(assign, (node1), (node2)) 625 #define new_attr_op_assign(lhs, type, attr, op, rhs) new_attr_op_assign_gen(parser, (lhs), (type), (attr), (op), (rhs)) 626 #define new_const_op_assign(lhs, op, rhs) new_op_assign(lhs, op, rhs) 629 #define new_regexp(node, opt) new_regexp_gen(parser, node, opt) 632 #define new_xstring(str) new_xstring_gen(parser, str) 633 #define new_string1(str) dispatch1(string_literal, str) 635 #define new_brace_body(param, stmt) dispatch2(brace_block, escape_Qundef(param), stmt) 636 #define new_do_body(param, stmt) dispatch2(do_block, escape_Qundef(param), stmt) 638 #define const_path_field(w, n) dispatch2(const_path_field, (w), (n)) 639 #define top_const_field(n) dispatch1(top_const_field, (n)) 641 #define const_decl(path) const_decl_gen(parser, path) 643 #define var_field(n) dispatch1(var_field, (n)) 645 #define assign_error(a) assign_error_gen(parser, (a)) 646 #define backref_assign_error(n, a) assign_error(a) 652 #define new_op_assign(lhs, op, rhs) new_op_assign_gen(parser, (lhs), (op), (rhs)) 659 #define formal_argument(id) formal_argument_gen(parser, (id)) 661 #define shadowing_lvar(name) shadowing_lvar_gen(parser, (name)) 663 #define new_bv(id) new_bv_gen(parser, (id)) 666 #define local_push(top) local_push_gen(parser,(top)) 668 #define local_pop() local_pop_gen(parser) 670 #define local_var(id) local_var_gen(parser, (id)) 672 #define arg_var(id) arg_var_gen(parser, (id)) 674 #define local_id(id) local_id_gen(parser, (id)) 676 #define internal_id() internal_id_gen(parser) 679 #define dyna_push() dyna_push_gen(parser) 681 #define dyna_pop(node) dyna_pop_gen(parser, (node)) 683 #define dyna_in_block() dyna_in_block_gen(parser) 684 #define dyna_var(id) local_var(id) 686 #define dvar_defined(id) dvar_defined_gen(parser, (id), 0) 687 #define dvar_defined_get(id) dvar_defined_gen(parser, (id), 1) 689 #define dvar_curr(id) dvar_curr_gen(parser, (id)) 692 #define lvar_defined(id) lvar_defined_gen(parser, (id)) 694 #define RE_OPTION_ONCE (1<<16) 695 #define RE_OPTION_ENCODING_SHIFT 8 696 #define RE_OPTION_ENCODING(e) (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT) 697 #define RE_OPTION_ENCODING_IDX(o) (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff) 698 #define RE_OPTION_ENCODING_NONE(o) ((o)&RE_OPTION_ARG_ENCODING_NONE) 699 #define RE_OPTION_MASK 0xff 700 #define RE_OPTION_ARG_ENCODING_NONE 32 702 #define NODE_STRTERM NODE_ZARRAY 703 #define NODE_HEREDOC NODE_ARRAY 704 #define SIGN_EXTEND(x,n) (((1<<(n)-1)^((x)&~(~0<<(n))))-(1<<(n)-1)) 705 #define nd_func u1.id 706 #if SIZEOF_SHORT == 2 707 #define nd_term(node) ((signed short)(node)->u2.id) 709 #define nd_term(node) SIGN_EXTEND((node)->u2.id, CHAR_BIT*2) 711 #define nd_paren(node) (char)((node)->u2.id >> CHAR_BIT*2) 712 #define nd_nest u3.cnt 717 #define RIPPER_VERSION "0.1.0" 719 static inline VALUE intern_sym(
const char *
name);
732 #define ripper_error() ripper_error_gen(parser) 734 #define dispatch0(n) ripper_dispatch0(parser, TOKEN_PASTE(ripper_id_, n)) 735 #define dispatch1(n,a) ripper_dispatch1(parser, TOKEN_PASTE(ripper_id_, n), (a)) 736 #define dispatch2(n,a,b) ripper_dispatch2(parser, TOKEN_PASTE(ripper_id_, n), (a), (b)) 737 #define dispatch3(n,a,b,c) ripper_dispatch3(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c)) 738 #define dispatch4(n,a,b,c,d) ripper_dispatch4(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d)) 739 #define dispatch5(n,a,b,c,d,e) ripper_dispatch5(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e)) 740 #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)) 742 #define yyparse ripper_yyparse 744 #define ripper_intern(s) ID2SYM(rb_intern(s)) 747 #define ripper_id2sym(id) (rb_ispunct((int)(id)) ? \ 748 ID2SYM(id) : ripper_id2sym(id)) 751 #define arg_new() dispatch0(args_new) 752 #define arg_add(l,a) dispatch2(args_add, (l), (a)) 753 #define arg_add_star(l,a) dispatch2(args_add_star, (l), (a)) 754 #define arg_add_block(l,b) dispatch2(args_add_block, (l), (b)) 755 #define arg_add_optblock(l,b) ((b)==Qundef? (l) : dispatch2(args_add_block, (l), (b))) 756 #define bare_assoc(v) dispatch1(bare_assoc_hash, (v)) 757 #define arg_add_assocs(l,b) arg_add((l), bare_assoc(b)) 759 #define args2mrhs(a) dispatch1(mrhs_new_from_args, (a)) 760 #define mrhs_new() dispatch0(mrhs_new) 761 #define mrhs_add(l,a) dispatch2(mrhs_add, (l), (a)) 762 #define mrhs_add_star(l,a) dispatch2(mrhs_add_star, (l), (a)) 764 #define mlhs_new() dispatch0(mlhs_new) 765 #define mlhs_add(l,a) dispatch2(mlhs_add, (l), (a)) 766 #define mlhs_add_star(l,a) dispatch2(mlhs_add_star, (l), (a)) 768 #define params_new(pars, opts, rest, pars2, kws, kwrest, blk) \ 769 dispatch7(params, (pars), (opts), (rest), (pars2), (kws), (kwrest), (blk)) 771 #define blockvar_new(p,v) dispatch2(block_var, (p), (v)) 772 #define blockvar_add_star(l,a) dispatch2(block_var_add_star, (l), (a)) 773 #define blockvar_add_block(l,a) dispatch2(block_var_add_block, (l), (a)) 775 #define method_optarg(m,a) ((a)==Qundef ? (m) : dispatch2(method_add_arg,(m),(a))) 776 #define method_arg(m,a) dispatch2(method_add_arg,(m),(a)) 777 #define method_add_block(m,b) dispatch2(method_add_block, (m), (b)) 779 #define escape_Qundef(x) ((x)==Qundef ? Qnil : (x)) 786 return params_new(f, o, r, p, k, kr, escape_Qundef(b));
788 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t)) 795 #define new_args_tail(k,kr,b) new_args_tail_gen(parser, (k),(kr),(b)) 797 #define new_defined(expr) dispatch1(defined, (expr)) 800 # define heredoc_dedent(str) parser_heredoc_dedent(parser, (str)) 805 #define ripper_id2sym(id) id 810 # define ifndef_ripper(x) (x) 813 # define ifndef_ripper(x) 816 # define rb_warn0(fmt) WARN_CALL(WARN_ARGS(fmt, 1)) 817 # define rb_warn1(fmt,a) WARN_CALL(WARN_ARGS(fmt, 2), (a)) 818 # define rb_warn2(fmt,a,b) WARN_CALL(WARN_ARGS(fmt, 3), (a), (b)) 819 # define rb_warn3(fmt,a,b,c) WARN_CALL(WARN_ARGS(fmt, 4), (a), (b), (c)) 820 # define rb_warn4(fmt,a,b,c,d) WARN_CALL(WARN_ARGS(fmt, 5), (a), (b), (c), (d)) 821 # define rb_warning0(fmt) WARNING_CALL(WARNING_ARGS(fmt, 1)) 822 # define rb_warning1(fmt,a) WARNING_CALL(WARNING_ARGS(fmt, 2), (a)) 823 # define rb_warning2(fmt,a,b) WARNING_CALL(WARNING_ARGS(fmt, 3), (a), (b)) 824 # define rb_warning3(fmt,a,b,c) WARNING_CALL(WARNING_ARGS(fmt, 4), (a), (b), (c)) 825 # define rb_warning4(fmt,a,b,c,d) WARNING_CALL(WARNING_ARGS(fmt, 5), (a), (b), (c), (d)) 826 # define rb_warn0L(l,fmt) WARN_CALL(WARN_ARGS_L(l, fmt, 1)) 827 # define rb_warn1L(l,fmt,a) WARN_CALL(WARN_ARGS_L(l, fmt, 2), (a)) 828 # define rb_warn2L(l,fmt,a,b) WARN_CALL(WARN_ARGS_L(l, fmt, 3), (a), (b)) 829 # define rb_warn3L(l,fmt,a,b,c) WARN_CALL(WARN_ARGS_L(l, fmt, 4), (a), (b), (c)) 830 # define rb_warn4L(l,fmt,a,b,c,d) WARN_CALL(WARN_ARGS_L(l, fmt, 5), (a), (b), (c), (d)) 831 # define rb_warning0L(l,fmt) WARNING_CALL(WARNING_ARGS_L(l, fmt, 1)) 832 # define rb_warning1L(l,fmt,a) WARNING_CALL(WARNING_ARGS_L(l, fmt, 2), (a)) 833 # define rb_warning2L(l,fmt,a,b) WARNING_CALL(WARNING_ARGS_L(l, fmt, 3), (a), (b)) 834 # define rb_warning3L(l,fmt,a,b,c) WARNING_CALL(WARNING_ARGS_L(l, fmt, 4), (a), (b), (c)) 835 # define rb_warning4L(l,fmt,a,b,c,d) WARNING_CALL(WARNING_ARGS_L(l, fmt, 5), (a), (b), (c), (d)) 838 # define WARN_S_L(s,l) STR_NEW(s,l) 839 # define WARN_S(s) STR_NEW2(s) 840 # define WARN_I(i) INT2NUM(i) 841 # define PRIsWARN "s" 842 # define WARN_ARGS(fmt,n) parser->value, id_warn, n, rb_usascii_str_new_lit(fmt) 843 # define WARN_ARGS_L(l,fmt,n) WARN_ARGS(fmt,n) 844 # define WARN_CALL rb_funcall 845 # define WARNING_ARGS(fmt,n) parser->value, id_warning, n, rb_usascii_str_new_lit(fmt) 846 # define WARNING_ARGS_L(l, fmt,n) WARNING_ARGS(fmt,n) 847 # define WARNING_CALL rb_funcall 848 static void ripper_compile_error(
struct parser_params*,
const char *fmt, ...);
849 # define compile_error ripper_compile_error 850 # define PARSER_ARG parser, 852 # define WARN_S_L(s,l) s 855 # define PRIsWARN PRIsVALUE 856 # define WARN_ARGS(fmt,n) WARN_ARGS_L(ruby_sourceline,fmt,n) 857 # define WARN_ARGS_L(l,fmt,n) ruby_sourcefile, (l), (fmt) 858 # define WARN_CALL rb_compile_warn 859 # define WARNING_ARGS(fmt,n) WARN_ARGS(fmt,n) 860 # define WARNING_ARGS_L(l,fmt,n) WARN_ARGS_L(l,fmt,n) 861 # define WARNING_CALL rb_compile_warning 863 # define compile_error parser_compile_error 864 # define PARSER_ARG parser, 872 #define YYMAXDEPTH 10000 878 #define token_info_push(token) token_info_push_gen(parser, (token), rb_strlen_lit(token)) 879 #define token_info_pop(token) token_info_pop_gen(parser, (token), rb_strlen_lit(token)) 891 #ifdef YYERROR_VERBOSE 892 # undef YYERROR_VERBOSE 893 # define YYERROR_VERBOSE 1 895 # define YYERROR_VERBOSE 0 899 #ifndef YYTOKEN_TABLE 900 # define YYTOKEN_TABLE 0 1032 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 1037 #line 828 "ripper.y" 1043 const struct vtable *vars;
1048 #line 1049 "parse.c" 1050 # define YYSTYPE_IS_TRIVIAL 1 1051 # define yystype YYSTYPE 1052 # define YYSTYPE_IS_DECLARED 1 1060 #line 1061 "parse.c" 1074 #elif (defined __STDC__ || defined __C99__FUNC__ \ 1075 || defined __cplusplus || defined _MSC_VER) 1081 #ifdef YYTYPE_UINT16 1094 # ifdef __SIZE_TYPE__ 1095 # define YYSIZE_T __SIZE_TYPE__ 1096 # elif defined size_t 1097 # define YYSIZE_T size_t 1098 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 1099 || defined __cplusplus || defined _MSC_VER) 1100 # include <stddef.h> 1101 # define YYSIZE_T size_t 1103 # define YYSIZE_T unsigned int 1107 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) 1110 # if defined YYENABLE_NLS && YYENABLE_NLS 1112 # include <libintl.h> 1113 # define YY_(msgid) dgettext ("bison-runtime", msgid) 1117 # define YY_(msgid) msgid 1122 #if ! defined lint || defined __GNUC__ 1123 # define YYUSE(e) ((void) (e)) 1130 # define YYID(n) (n) 1132 #if (defined __STDC__ || defined __C99__FUNC__ \ 1133 || defined __cplusplus || defined _MSC_VER) 1146 #if ! defined yyoverflow || YYERROR_VERBOSE 1150 # ifdef YYSTACK_USE_ALLOCA 1151 # if YYSTACK_USE_ALLOCA 1153 # define YYSTACK_ALLOC __builtin_alloca 1154 # elif defined __BUILTIN_VA_ARG_INCR 1155 # include <alloca.h> 1157 # define YYSTACK_ALLOC __alloca 1158 # elif defined _MSC_VER 1159 # include <malloc.h> 1160 # define alloca _alloca 1162 # define YYSTACK_ALLOC alloca 1163 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 1164 || defined __cplusplus || defined _MSC_VER) 1165 # include <stdlib.h> 1166 # ifndef EXIT_SUCCESS 1167 # define EXIT_SUCCESS 0 1174 # ifdef YYSTACK_ALLOC 1176 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0)) 1177 # ifndef YYSTACK_ALLOC_MAXIMUM 1182 # define YYSTACK_ALLOC_MAXIMUM 4032 1185 # define YYSTACK_ALLOC YYMALLOC 1186 # define YYSTACK_FREE YYFREE 1187 # ifndef YYSTACK_ALLOC_MAXIMUM 1188 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 1190 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 1191 && ! ((defined YYMALLOC || defined malloc) \ 1192 && (defined YYFREE || defined free))) 1193 # include <stdlib.h> 1194 # ifndef EXIT_SUCCESS 1195 # define EXIT_SUCCESS 0 1199 # define YYMALLOC malloc 1200 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 1201 || defined __cplusplus || defined _MSC_VER) 1206 # define YYFREE free 1207 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 1208 || defined __cplusplus || defined _MSC_VER) 1216 #if (! defined yyoverflow \ 1217 && (! defined __cplusplus \ 1218 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 1228 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 1232 # define YYSTACK_BYTES(N) \ 1233 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ 1234 + YYSTACK_GAP_MAXIMUM) 1236 # define YYCOPY_NEEDED 1 1243 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 1246 YYSIZE_T yynewbytes; \ 1247 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 1248 Stack = &yyptr->Stack_alloc; \ 1249 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 1250 yyptr += yynewbytes / sizeof (*yyptr); \ 1256 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED 1260 # if defined __GNUC__ && 1 < __GNUC__ 1261 # define YYCOPY(To, From, Count) \ 1262 __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 1264 # define YYCOPY(To, From, Count) \ 1268 for (yyi = 0; yyi < (Count); yyi++) \ 1269 (To)[yyi] = (From)[yyi]; \ 1279 #define YYLAST 11794 1282 #define YYNTOKENS 146 1286 #define YYNRULES 642 1288 #define YYNSTATES 1085 1291 #define YYUNDEFTOK 2 1292 #define YYMAXUTOK 353 1294 #define YYTRANSLATE(YYX) \ 1295 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 1300 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1301 145, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1302 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1303 2, 2, 143, 131, 2, 2, 2, 129, 124, 2,
1304 139, 140, 127, 125, 137, 126, 144, 128, 2, 2,
1305 2, 2, 2, 2, 2, 2, 2, 2, 119, 142,
1306 121, 117, 120, 118, 2, 2, 2, 2, 2, 2,
1307 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1308 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1309 2, 136, 2, 141, 123, 2, 138, 2, 2, 2,
1310 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1311 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1312 2, 2, 2, 134, 122, 135, 132, 2, 81, 82,
1313 68, 69, 70, 2, 71, 85, 86, 76, 75, 72,
1314 73, 74, 79, 80, 83, 84, 2, 2, 77, 78,
1315 87, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1316 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1317 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1318 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1319 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1320 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1321 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1322 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1323 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1324 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1325 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1326 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1327 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1328 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1329 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1330 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1331 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1332 65, 66, 67, 88, 89, 90, 91, 92, 93, 94,
1333 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1334 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1343 0, 0, 3, 4, 7, 10, 12, 14, 18, 21,
1344 23, 24, 30, 35, 38, 40, 42, 46, 49, 51,
1345 52, 58, 59, 64, 68, 72, 76, 79, 83, 87,
1346 91, 95, 99, 104, 106, 110, 114, 118, 120, 124,
1347 128, 135, 141, 147, 153, 159, 163, 165, 169, 171,
1348 173, 177, 181, 185, 188, 190, 192, 194, 196, 198,
1349 203, 204, 209, 211, 214, 218, 223, 229, 234, 240,
1350 243, 246, 249, 252, 255, 257, 261, 263, 267, 269,
1351 272, 276, 282, 285, 290, 293, 298, 300, 304, 306,
1352 310, 313, 317, 319, 323, 325, 327, 332, 336, 340,
1353 344, 348, 351, 353, 355, 357, 362, 366, 370, 374,
1354 378, 381, 383, 385, 387, 390, 392, 396, 398, 400,
1355 402, 404, 406, 408, 410, 412, 414, 416, 417, 422,
1356 424, 426, 428, 430, 432, 434, 436, 438, 440, 442,
1357 444, 446, 448, 450, 452, 454, 456, 458, 460, 462,
1358 464, 466, 468, 470, 472, 474, 476, 478, 480, 482,
1359 484, 486, 488, 490, 492, 494, 496, 498, 500, 502,
1360 504, 506, 508, 510, 512, 514, 516, 518, 520, 522,
1361 524, 526, 528, 530, 532, 534, 536, 538, 540, 542,
1362 544, 546, 548, 550, 552, 554, 556, 558, 560, 562,
1363 564, 568, 572, 579, 585, 591, 597, 603, 608, 612,
1364 616, 620, 624, 628, 632, 636, 640, 644, 649, 652,
1365 655, 659, 663, 667, 671, 675, 679, 683, 687, 691,
1366 695, 699, 703, 707, 710, 713, 717, 721, 725, 729,
1367 730, 735, 742, 744, 746, 748, 751, 756, 759, 761,
1368 765, 769, 771, 773, 775, 777, 780, 785, 788, 790,
1369 793, 796, 801, 803, 804, 807, 810, 813, 815, 817,
1370 820, 824, 829, 831, 833, 837, 842, 845, 847, 849,
1371 851, 853, 855, 857, 859, 861, 863, 865, 867, 868,
1372 873, 874, 878, 879, 880, 886, 890, 894, 897, 901,
1373 905, 907, 912, 916, 918, 919, 926, 931, 935, 938,
1374 940, 943, 946, 953, 960, 961, 962, 970, 971, 972,
1375 980, 986, 991, 992, 993, 1003, 1004, 1011, 1012, 1020,
1376 1021, 1027, 1028, 1029, 1037, 1038, 1039, 1049, 1051, 1053,
1377 1055, 1057, 1059, 1061, 1063, 1065, 1067, 1069, 1071, 1073,
1378 1075, 1077, 1079, 1081, 1083, 1085, 1088, 1090, 1092, 1094,
1379 1100, 1102, 1105, 1107, 1109, 1111, 1115, 1117, 1121, 1123,
1380 1128, 1135, 1139, 1145, 1148, 1153, 1155, 1159, 1164, 1167,
1381 1170, 1172, 1175, 1176, 1183, 1192, 1197, 1204, 1209, 1212,
1382 1219, 1222, 1227, 1234, 1237, 1242, 1245, 1250, 1252, 1254,
1383 1256, 1260, 1262, 1267, 1269, 1274, 1276, 1280, 1282, 1284,
1384 1285, 1286, 1287, 1288, 1295, 1300, 1302, 1306, 1310, 1311,
1385 1316, 1319, 1324, 1330, 1336, 1339, 1340, 1346, 1347, 1353,
1386 1357, 1358, 1363, 1364, 1369, 1372, 1374, 1379, 1380, 1385,
1387 1386, 1391, 1392, 1393, 1398, 1399, 1400, 1405, 1411, 1413,
1388 1415, 1422, 1424, 1426, 1428, 1430, 1433, 1435, 1438, 1440,
1389 1442, 1444, 1446, 1448, 1450, 1452, 1455, 1459, 1463, 1467,
1390 1471, 1475, 1476, 1480, 1482, 1485, 1489, 1493, 1494, 1498,
1391 1502, 1506, 1510, 1514, 1515, 1519, 1520, 1524, 1525, 1528,
1392 1529, 1532, 1533, 1536, 1538, 1539, 1543, 1544, 1545, 1546,
1393 1547, 1548, 1557, 1559, 1561, 1563, 1565, 1568, 1570, 1572,
1394 1574, 1576, 1580, 1582, 1585, 1587, 1589, 1591, 1593, 1595,
1395 1597, 1599, 1601, 1603, 1605, 1607, 1609, 1611, 1613, 1615,
1396 1617, 1619, 1621, 1623, 1625, 1627, 1629, 1630, 1635, 1636,
1397 1640, 1641, 1645, 1650, 1653, 1656, 1658, 1661, 1662, 1669,
1398 1678, 1683, 1690, 1695, 1702, 1705, 1710, 1717, 1720, 1725,
1399 1728, 1733, 1735, 1736, 1738, 1740, 1742, 1744, 1746, 1748,
1400 1750, 1752, 1756, 1758, 1762, 1764, 1767, 1769, 1772, 1774,
1401 1776, 1780, 1782, 1786, 1788, 1790, 1793, 1795, 1799, 1803,
1402 1805, 1809, 1811, 1815, 1817, 1819, 1822, 1824, 1826, 1828,
1403 1831, 1834, 1836, 1838, 1839, 1844, 1846, 1849, 1851, 1855,
1404 1859, 1862, 1867, 1870, 1872, 1874, 1876, 1878, 1880, 1882,
1405 1884, 1886, 1888, 1890, 1892, 1894, 1896, 1898, 1900, 1902,
1406 1903, 1905, 1906, 1908, 1911, 1914, 1915, 1917, 1919, 1921,
1413 147, 0, -1, -1, 148, 149, -1, 150, 355, -1,
1414 362, -1, 151, -1, 150, 361, 151, -1, 1, 151,
1415 -1, 158, -1, -1, 47, 152, 134, 149, 135, -1,
1416 154, 276, 237, 279, -1, 155, 355, -1, 362, -1,
1417 156, -1, 155, 361, 156, -1, 1, 158, -1, 158,
1418 -1, -1, 47, 157, 134, 149, 135, -1, -1, 45,
1419 182, 159, 182, -1, 45, 54, 54, -1, 45, 54,
1420 66, -1, 45, 54, 65, -1, 6, 183, -1, 158,
1421 40, 163, -1, 158, 41, 163, -1, 158, 42, 163,
1422 -1, 158, 43, 163, -1, 158, 44, 158, -1, 48,
1423 134, 154, 135, -1, 160, -1, 170, 117, 164, -1,
1424 177, 117, 202, -1, 170, 117, 201, -1, 162, -1,
1425 177, 117, 161, -1, 314, 90, 161, -1, 222, 136,
1426 194, 358, 90, 161, -1, 222, 353, 52, 90, 161,
1427 -1, 222, 353, 56, 90, 161, -1, 222, 88, 56,
1428 90, 161, -1, 222, 88, 52, 90, 161, -1, 315,
1429 90, 161, -1, 164, -1, 164, 44, 158, -1, 160,
1430 -1, 164, -1, 162, 37, 162, -1, 162, 38, 162,
1431 -1, 39, 356, 162, -1, 131, 164, -1, 187, -1,
1432 162, -1, 169, -1, 165, -1, 259, -1, 259, 354,
1433 350, 196, -1, -1, 97, 167, 268, 135, -1, 349,
1434 -1, 168, 196, -1, 168, 196, 166, -1, 222, 353,
1435 350, 196, -1, 222, 353, 350, 196, 166, -1, 222,
1436 88, 350, 196, -1, 222, 88, 350, 196, 166, -1,
1437 32, 196, -1, 31, 196, -1, 30, 195, -1, 21,
1438 195, -1, 22, 195, -1, 172, -1, 92, 171, 357,
1439 -1, 172, -1, 92, 171, 357, -1, 174, -1, 174,
1440 173, -1, 174, 98, 176, -1, 174, 98, 176, 137,
1441 175, -1, 174, 98, -1, 174, 98, 137, 175, -1,
1442 98, 176, -1, 98, 176, 137, 175, -1, 98, -1,
1443 98, 137, 175, -1, 176, -1, 92, 171, 357, -1,
1444 173, 137, -1, 174, 173, 137, -1, 173, -1, 175,
1445 137, 173, -1, 311, -1, 312, -1, 222, 136, 194,
1446 358, -1, 222, 353, 52, -1, 222, 88, 52, -1,
1447 222, 353, 56, -1, 222, 88, 56, -1, 89, 56,
1448 -1, 315, -1, 311, -1, 312, -1, 222, 136, 194,
1449 358, -1, 222, 353, 52, -1, 222, 88, 52, -1,
1450 222, 353, 56, -1, 222, 88, 56, -1, 89, 56,
1451 -1, 315, -1, 52, -1, 56, -1, 89, 178, -1,
1452 178, -1, 222, 88, 178, -1, 52, -1, 56, -1,
1453 53, -1, 185, -1, 186, -1, 180, -1, 306, -1,
1454 181, -1, 308, -1, 182, -1, -1, 183, 137, 184,
1455 182, -1, 122, -1, 123, -1, 124, -1, 71, -1,
1456 72, -1, 73, -1, 79, -1, 80, -1, 120, -1,
1457 75, -1, 121, -1, 76, -1, 74, -1, 85, -1,
1458 86, -1, 125, -1, 126, -1, 127, -1, 98, -1,
1459 128, -1, 129, -1, 70, -1, 99, -1, 131, -1,
1460 132, -1, 68, -1, 69, -1, 83, -1, 84, -1,
1461 138, -1, 49, -1, 50, -1, 51, -1, 47, -1,
1462 48, -1, 45, -1, 37, -1, 7, -1, 21, -1,
1463 16, -1, 3, -1, 5, -1, 46, -1, 26, -1,
1464 15, -1, 14, -1, 10, -1, 9, -1, 36, -1,
1465 20, -1, 25, -1, 4, -1, 22, -1, 34, -1,
1466 39, -1, 38, -1, 23, -1, 8, -1, 24, -1,
1467 30, -1, 33, -1, 32, -1, 13, -1, 35, -1,
1468 6, -1, 17, -1, 31, -1, 11, -1, 12, -1,
1469 18, -1, 19, -1, 177, 117, 191, -1, 314, 90,
1470 191, -1, 222, 136, 194, 358, 90, 191, -1, 222,
1471 353, 52, 90, 191, -1, 222, 353, 56, 90, 191,
1472 -1, 222, 88, 52, 90, 191, -1, 222, 88, 56,
1473 90, 191, -1, 89, 56, 90, 191, -1, 315, 90,
1474 191, -1, 187, 81, 187, -1, 187, 82, 187, -1,
1475 187, 125, 187, -1, 187, 126, 187, -1, 187, 127,
1476 187, -1, 187, 128, 187, -1, 187, 129, 187, -1,
1477 187, 70, 187, -1, 130, 310, 70, 187, -1, 68,
1478 187, -1, 69, 187, -1, 187, 122, 187, -1, 187,
1479 123, 187, -1, 187, 124, 187, -1, 187, 71, 187,
1480 -1, 187, 120, 187, -1, 187, 75, 187, -1, 187,
1481 121, 187, -1, 187, 76, 187, -1, 187, 72, 187,
1482 -1, 187, 73, 187, -1, 187, 74, 187, -1, 187,
1483 79, 187, -1, 187, 80, 187, -1, 131, 187, -1,
1484 132, 187, -1, 187, 85, 187, -1, 187, 86, 187,
1485 -1, 187, 77, 187, -1, 187, 78, 187, -1, -1,
1486 46, 356, 188, 187, -1, 187, 118, 187, 356, 119,
1487 187, -1, 203, -1, 187, -1, 362, -1, 200, 359,
1488 -1, 200, 137, 347, 359, -1, 347, 359, -1, 187,
1489 -1, 187, 44, 187, -1, 139, 194, 357, -1, 362,
1490 -1, 192, -1, 362, -1, 195, -1, 200, 137, -1,
1491 200, 137, 347, 137, -1, 347, 137, -1, 169, -1,
1492 200, 199, -1, 347, 199, -1, 200, 137, 347, 199,
1493 -1, 198, -1, -1, 197, 195, -1, 100, 189, -1,
1494 137, 198, -1, 362, -1, 189, -1, 98, 189, -1,
1495 200, 137, 189, -1, 200, 137, 98, 189, -1, 202,
1496 -1, 189, -1, 200, 137, 189, -1, 200, 137, 98,
1497 189, -1, 98, 189, -1, 280, -1, 281, -1, 284,
1498 -1, 285, -1, 286, -1, 291, -1, 289, -1, 292,
1499 -1, 313, -1, 315, -1, 53, -1, -1, 223, 204,
1500 153, 233, -1, -1, 93, 205, 357, -1, -1, -1,
1501 93, 206, 158, 207, 357, -1, 92, 154, 140, -1,
1502 222, 88, 56, -1, 89, 56, -1, 95, 190, 141,
1503 -1, 96, 346, 135, -1, 30, -1, 31, 139, 195,
1504 357, -1, 31, 139, 357, -1, 31, -1, -1, 46,
1505 356, 139, 208, 162, 357, -1, 39, 139, 162, 357,
1506 -1, 39, 139, 357, -1, 168, 265, -1, 260, -1,
1507 260, 265, -1, 101, 250, -1, 224, 163, 234, 154,
1508 236, 233, -1, 225, 163, 234, 154, 237, 233, -1,
1509 -1, -1, 226, 209, 163, 235, 210, 154, 233, -1,
1510 -1, -1, 227, 211, 163, 235, 212, 154, 233, -1,
1511 228, 163, 355, 274, 233, -1, 228, 355, 274, 233,
1512 -1, -1, -1, 229, 238, 25, 213, 163, 235, 214,
1513 154, 233, -1, -1, 230, 179, 316, 215, 153, 233,
1514 -1, -1, 230, 85, 162, 216, 360, 153, 233, -1,
1515 -1, 231, 179, 217, 153, 233, -1, -1, -1, 232,
1516 180, 218, 219, 318, 153, 233, -1, -1, -1, 232,
1517 344, 352, 220, 180, 221, 318, 153, 233, -1, 21,
1518 -1, 22, -1, 23, -1, 24, -1, 203, -1, 7,
1519 -1, 11, -1, 12, -1, 18, -1, 19, -1, 16,
1520 -1, 20, -1, 3, -1, 4, -1, 5, -1, 10,
1521 -1, 360, -1, 13, -1, 360, 13, -1, 360, -1,
1522 27, -1, 237, -1, 14, 163, 234, 154, 236, -1,
1523 362, -1, 15, 154, -1, 177, -1, 170, -1, 324,
1524 -1, 92, 241, 357, -1, 239, -1, 240, 137, 239,
1525 -1, 240, -1, 240, 137, 98, 324, -1, 240, 137,
1526 98, 324, 137, 240, -1, 240, 137, 98, -1, 240,
1527 137, 98, 137, 240, -1, 98, 324, -1, 98, 324,
1528 137, 240, -1, 98, -1, 98, 137, 240, -1, 331,
1529 137, 334, 343, -1, 331, 343, -1, 334, 343, -1,
1530 342, -1, 137, 242, -1, -1, 327, 137, 337, 137,
1531 340, 243, -1, 327, 137, 337, 137, 340, 137, 327,
1532 243, -1, 327, 137, 337, 243, -1, 327, 137, 337,
1533 137, 327, 243, -1, 327, 137, 340, 243, -1, 327,
1534 137, -1, 327, 137, 340, 137, 327, 243, -1, 327,
1535 243, -1, 337, 137, 340, 243, -1, 337, 137, 340,
1536 137, 327, 243, -1, 337, 243, -1, 337, 137, 327,
1537 243, -1, 340, 243, -1, 340, 137, 327, 243, -1,
1538 242, -1, 362, -1, 246, -1, 122, 247, 122, -1,
1539 78, -1, 122, 244, 247, 122, -1, 356, -1, 356,
1540 142, 248, 356, -1, 249, -1, 248, 137, 249, -1,
1541 52, -1, 323, -1, -1, -1, -1, -1, 251, 252,
1542 255, 253, 254, 256, -1, 139, 322, 247, 140, -1,
1543 322, -1, 114, 154, 135, -1, 29, 154, 233, -1,
1544 -1, 28, 258, 271, 10, -1, 169, 257, -1, 259,
1545 354, 350, 193, -1, 259, 354, 350, 193, 265, -1,
1546 259, 354, 350, 196, 257, -1, 168, 192, -1, -1,
1547 222, 353, 350, 261, 193, -1, -1, 222, 88, 350,
1548 262, 192, -1, 222, 88, 351, -1, -1, 222, 353,
1549 263, 192, -1, -1, 222, 88, 264, 192, -1, 32,
1550 192, -1, 32, -1, 222, 136, 194, 358, -1, -1,
1551 134, 266, 268, 135, -1, -1, 26, 267, 271, 10,
1552 -1, -1, -1, 269, 270, 245, 154, -1, -1, -1,
1553 272, 273, 245, 154, -1, 17, 200, 234, 154, 275,
1554 -1, 237, -1, 274, -1, 8, 277, 278, 234, 154,
1555 276, -1, 362, -1, 189, -1, 202, -1, 362, -1,
1556 91, 177, -1, 362, -1, 9, 154, -1, 362, -1,
1557 309, -1, 306, -1, 308, -1, 282, -1, 64, -1,
1558 283, -1, 282, 283, -1, 103, 295, 113, -1, 104,
1559 296, 113, -1, 105, 297, 67, -1, 106, 143, 113,
1560 -1, 106, 287, 113, -1, -1, 287, 288, 143, -1,
1561 298, -1, 288, 298, -1, 108, 143, 113, -1, 108,
1562 290, 113, -1, -1, 290, 288, 143, -1, 107, 143,
1563 113, -1, 107, 293, 113, -1, 109, 143, 113, -1,
1564 109, 294, 113, -1, -1, 293, 63, 143, -1, -1,
1565 294, 63, 143, -1, -1, 295, 298, -1, -1, 296,
1566 298, -1, -1, 297, 298, -1, 63, -1, -1, 112,
1567 299, 305, -1, -1, -1, -1, -1, -1, 110, 300,
1568 301, 302, 303, 304, 154, 111, -1, 54, -1, 55,
1569 -1, 57, -1, 315, -1, 102, 307, -1, 180, -1,
1570 55, -1, 54, -1, 57, -1, 102, 296, 113, -1,
1571 310, -1, 130, 310, -1, 59, -1, 60, -1, 61,
1572 -1, 62, -1, 52, -1, 55, -1, 54, -1, 56,
1573 -1, 57, -1, 34, -1, 33, -1, 35, -1, 36,
1574 -1, 50, -1, 49, -1, 51, -1, 311, -1, 312,
1575 -1, 311, -1, 312, -1, 65, -1, 66, -1, -1,
1576 121, 317, 163, 360, -1, -1, 139, 322, 357, -1,
1577 -1, 319, 322, 360, -1, 332, 137, 334, 343, -1,
1578 332, 343, -1, 334, 343, -1, 342, -1, 137, 320,
1579 -1, -1, 327, 137, 338, 137, 340, 321, -1, 327,
1580 137, 338, 137, 340, 137, 327, 321, -1, 327, 137,
1581 338, 321, -1, 327, 137, 338, 137, 327, 321, -1,
1582 327, 137, 340, 321, -1, 327, 137, 340, 137, 327,
1583 321, -1, 327, 321, -1, 338, 137, 340, 321, -1,
1584 338, 137, 340, 137, 327, 321, -1, 338, 321, -1,
1585 338, 137, 327, 321, -1, 340, 321, -1, 340, 137,
1586 327, 321, -1, 320, -1, -1, 56, -1, 55, -1,
1587 54, -1, 57, -1, 323, -1, 52, -1, 324, -1,
1588 325, -1, 92, 241, 357, -1, 326, -1, 327, 137,
1589 326, -1, 58, -1, 328, 189, -1, 328, -1, 328,
1590 222, -1, 328, -1, 330, -1, 331, 137, 330, -1,
1591 329, -1, 332, 137, 329, -1, 70, -1, 99, -1,
1592 333, 52, -1, 333, -1, 325, 117, 189, -1, 325,
1593 117, 222, -1, 336, -1, 337, 137, 336, -1, 335,
1594 -1, 338, 137, 335, -1, 127, -1, 98, -1, 339,
1595 52, -1, 339, -1, 124, -1, 100, -1, 341, 52,
1596 -1, 137, 342, -1, 362, -1, 313, -1, -1, 139,
1597 345, 162, 357, -1, 362, -1, 347, 359, -1, 348,
1598 -1, 347, 137, 348, -1, 189, 91, 189, -1, 58,
1599 189, -1, 103, 295, 115, 189, -1, 99, 189, -1,
1600 52, -1, 56, -1, 53, -1, 52, -1, 56, -1,
1601 53, -1, 185, -1, 52, -1, 53, -1, 185, -1,
1602 144, -1, 88, -1, 144, -1, 87, -1, 353, -1,
1603 88, -1, -1, 361, -1, -1, 145, -1, 356, 140,
1604 -1, 356, 141, -1, -1, 145, -1, 137, -1, 142,
1605 -1, 145, -1, 360, -1, 361, 142, -1, -1
1611 0, 994, 994, 994, 1025, 1035, 1044, 1052, 1060, 1066,
1612 1068, 1067, 1088, 1121, 1131, 1140, 1148, 1156, 1162, 1167,
1613 1166, 1187, 1187, 1195, 1203, 1214, 1225, 1233, 1242, 1251,
1614 1264, 1277, 1286, 1298, 1299, 1309, 1314, 1323, 1326, 1331,
1615 1336, 1357, 1362, 1367, 1372, 1377, 1384, 1392, 1401, 1404,
1616 1405, 1413, 1421, 1429, 1437, 1440, 1452, 1453, 1456, 1457,
1617 1469, 1468, 1484, 1494, 1503, 1516, 1525, 1537, 1546, 1558,
1618 1567, 1576, 1584, 1592, 1602, 1603, 1613, 1614, 1624, 1632,
1619 1640, 1648, 1657, 1665, 1674, 1682, 1691, 1699, 1710, 1711,
1620 1721, 1729, 1739, 1747, 1757, 1761, 1765, 1773, 1781, 1789,
1621 1797, 1801, 1805, 1812, 1821, 1830, 1838, 1846, 1854, 1862,
1622 1866, 1870, 1877, 1886, 1889, 1897, 1905, 1915, 1916, 1917,
1623 1918, 1923, 1934, 1935, 1938, 1946, 1949, 1957, 1957, 1967,
1624 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977,
1625 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987,
1626 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1999,
1627 1999, 1999, 2000, 2000, 2001, 2001, 2001, 2002, 2002, 2002,
1628 2002, 2003, 2003, 2003, 2003, 2004, 2004, 2004, 2005, 2005,
1629 2005, 2005, 2006, 2006, 2006, 2006, 2007, 2007, 2007, 2007,
1630 2008, 2008, 2008, 2008, 2009, 2009, 2009, 2009, 2010, 2010,
1631 2013, 2017, 2021, 2047, 2052, 2057, 2062, 2067, 2072, 2077,
1632 2087, 2097, 2105, 2113, 2121, 2129, 2137, 2145, 2154, 2162,
1633 2170, 2178, 2186, 2194, 2202, 2210, 2218, 2226, 2234, 2242,
1634 2250, 2258, 2272, 2280, 2288, 2296, 2304, 2312, 2320, 2328,
1635 2328, 2337, 2347, 2353, 2365, 2366, 2370, 2378, 2388, 2396,
1636 2407, 2417, 2418, 2421, 2422, 2423, 2427, 2435, 2445, 2454,
1637 2462, 2472, 2481, 2490, 2490, 2502, 2512, 2516, 2522, 2530,
1638 2538, 2552, 2568, 2569, 2572, 2586, 2601, 2611, 2612, 2613,
1639 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2630, 2629,
1640 2657, 2657, 2666, 2670, 2665, 2679, 2687, 2695, 2703, 2716,
1641 2724, 2732, 2740, 2748, 2756, 2756, 2765, 2773, 2781, 2791,
1642 2792, 2802, 2806, 2818, 2830, 2830, 2830, 2841, 2841, 2841,
1643 2852, 2863, 2872, 2874, 2871, 2920, 2919, 2941, 2940, 2962,
1644 2961, 2983, 2988, 2982, 3008, 3009, 3008, 3033, 3041, 3049,
1645 3057, 3067, 3079, 3085, 3091, 3097, 3103, 3109, 3115, 3121,
1646 3127, 3133, 3143, 3149, 3154, 3155, 3162, 3167, 3170, 3171,
1647 3184, 3185, 3195, 3196, 3199, 3207, 3217, 3225, 3235, 3243,
1648 3252, 3261, 3269, 3277, 3286, 3298, 3306, 3317, 3321, 3325,
1649 3329, 3335, 3340, 3345, 3349, 3353, 3357, 3361, 3365, 3373,
1650 3377, 3381, 3385, 3389, 3393, 3397, 3401, 3405, 3411, 3412,
1651 3418, 3428, 3437, 3449, 3453, 3463, 3470, 3479, 3487, 3493,
1652 3496, 3501, 3504, 3493, 3523, 3531, 3537, 3542, 3549, 3548,
1653 3563, 3579, 3588, 3600, 3614, 3624, 3623, 3640, 3639, 3655,
1654 3664, 3663, 3680, 3679, 3696, 3704, 3712, 3727, 3726, 3740,
1655 3739, 3754, 3755, 3754, 3764, 3765, 3764, 3774, 3786, 3787,
1656 3790, 3809, 3812, 3820, 3828, 3831, 3835, 3838, 3846, 3849,
1657 3850, 3858, 3861, 3878, 3879, 3880, 3890, 3896, 3902, 3908,
1658 3917, 3928, 3935, 3945, 3953, 3963, 3972, 3983, 3990, 4008,
1659 4017, 4027, 4036, 4047, 4054, 4065, 4072, 4087, 4094, 4105,
1660 4112, 4123, 4130, 4171, 4173, 4172, 4188, 4194, 4198, 4202,
1661 4206, 4187, 4228, 4236, 4244, 4252, 4255, 4266, 4267, 4268,
1662 4269, 4272, 4283, 4284, 4295, 4296, 4297, 4298, 4301, 4302,
1663 4303, 4304, 4305, 4308, 4309, 4310, 4311, 4312, 4313, 4314,
1664 4317, 4330, 4340, 4348, 4358, 4359, 4363, 4362, 4372, 4381,
1665 4391, 4391, 4405, 4409, 4413, 4417, 4423, 4428, 4433, 4437,
1666 4441, 4445, 4449, 4453, 4457, 4461, 4465, 4469, 4473, 4477,
1667 4481, 4485, 4490, 4496, 4506, 4516, 4526, 4538, 4539, 4546,
1668 4555, 4564, 4583, 4590, 4604, 4613, 4623, 4635, 4644, 4655,
1669 4663, 4674, 4682, 4692, 4693, 4696, 4701, 4708, 4720, 4732,
1670 4740, 4756, 4764, 4780, 4781, 4784, 4797, 4808, 4809, 4812,
1671 4829, 4833, 4843, 4853, 4853, 4882, 4883, 4893, 4900, 4924,
1672 4936, 4944, 4952, 4966, 4967, 4968, 4971, 4972, 4973, 4974,
1673 4977, 4978, 4979, 4982, 4987, 4994, 5002, 5012, 5013, 5023,
1674 5024, 5027, 5028, 5031, 5034, 5037, 5038, 5039, 5042, 5043,
1679 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE 1684 "\"end-of-input\"",
"error",
"$undefined",
"keyword_class",
1685 "keyword_module",
"keyword_def",
"keyword_undef",
"keyword_begin",
1686 "keyword_rescue",
"keyword_ensure",
"keyword_end",
"keyword_if",
1687 "keyword_unless",
"keyword_then",
"keyword_elsif",
"keyword_else",
1688 "keyword_case",
"keyword_when",
"keyword_while",
"keyword_until",
1689 "keyword_for",
"keyword_break",
"keyword_next",
"keyword_redo",
1690 "keyword_retry",
"keyword_in",
"keyword_do",
"keyword_do_cond",
1691 "keyword_do_block",
"keyword_do_LAMBDA",
"keyword_return",
1692 "keyword_yield",
"keyword_super",
"keyword_self",
"keyword_nil",
1693 "keyword_true",
"keyword_false",
"keyword_and",
"keyword_or",
1694 "keyword_not",
"modifier_if",
"modifier_unless",
"modifier_while",
1695 "modifier_until",
"modifier_rescue",
"keyword_alias",
"keyword_defined",
1696 "keyword_BEGIN",
"keyword_END",
"keyword__LINE__",
"keyword__FILE__",
1697 "keyword__ENCODING__",
"tIDENTIFIER",
"tFID",
"tGVAR",
"tIVAR",
1698 "tCONSTANT",
"tCVAR",
"tLABEL",
"tINTEGER",
"tFLOAT",
"tRATIONAL",
1699 "tIMAGINARY",
"tSTRING_CONTENT",
"tCHAR",
"tNTH_REF",
"tBACK_REF",
1700 "tREGEXP_END",
"\"unary+\"",
"\"unary-\"",
"\"**\"",
"\"<=>\"",
"\"==\"",
1701 "\"===\"",
"\"!=\"",
"\">=\"",
"\"<=\"",
"\"&&\"",
"\"||\"",
"\"=~\"",
1702 "\"!~\"",
"\"..\"",
"\"...\"",
"\"[]\"",
"\"[]=\"",
"\"<<\"",
"\">>\"",
1703 "\"&.\"",
"\"::\"",
"\":: at EXPR_BEG\"",
"tOP_ASGN",
"\"=>\"",
"\"(\"",
1704 "\"( arg\"",
"\")\"",
"\"[\"",
"\"{\"",
"\"{ arg\"",
"\"*\"",
1705 "\"**arg\"",
"\"&\"",
"\"->\"",
"tSYMBEG",
"tSTRING_BEG",
"tXSTRING_BEG",
1706 "tREGEXP_BEG",
"tWORDS_BEG",
"tQWORDS_BEG",
"tSYMBOLS_BEG",
1707 "tQSYMBOLS_BEG",
"tSTRING_DBEG",
"tSTRING_DEND",
"tSTRING_DVAR",
1708 "tSTRING_END",
"tLAMBEG",
"tLABEL_END",
"tLOWEST",
"'='",
"'?'",
"':'",
1709 "'>'",
"'<'",
"'|'",
"'^'",
"'&'",
"'+'",
"'-'",
"'*'",
"'/'",
"'%'",
1710 "tUMINUS_NUM",
"'!'",
"'~'",
"tLAST_TOKEN",
"'{'",
"'}'",
"'['",
"','",
1711 "'`'",
"'('",
"')'",
"']'",
"';'",
"' '",
"'.'",
"'\\n'",
"$accept",
1712 "program",
"$@1",
"top_compstmt",
"top_stmts",
"top_stmt",
"$@2",
1713 "bodystmt",
"compstmt",
"stmts",
"stmt_or_begin",
"$@3",
"stmt",
"$@4",
1714 "command_asgn",
"command_rhs",
"expr",
"expr_value",
"command_call",
1715 "block_command",
"cmd_brace_block",
"@5",
"fcall",
"command",
"mlhs",
1716 "mlhs_inner",
"mlhs_basic",
"mlhs_item",
"mlhs_head",
"mlhs_post",
1717 "mlhs_node",
"lhs",
"cname",
"cpath",
"fname",
"fsym",
"fitem",
1718 "undef_list",
"$@6",
"op",
"reswords",
"arg",
"$@7",
"arg_value",
1719 "aref_args",
"arg_rhs",
"paren_args",
"opt_paren_args",
"opt_call_args",
1720 "call_args",
"command_args",
"@8",
"block_arg",
"opt_block_arg",
"args",
1721 "mrhs_arg",
"mrhs",
"primary",
"@9",
"$@10",
"$@11",
"$@12",
"$@13",
1722 "$@14",
"$@15",
"$@16",
"$@17",
"$@18",
"$@19",
"@20",
"@21",
"@22",
1723 "@23",
"@24",
"@25",
"@26",
"primary_value",
"k_begin",
"k_if",
1724 "k_unless",
"k_while",
"k_until",
"k_case",
"k_for",
"k_class",
1725 "k_module",
"k_def",
"k_end",
"then",
"do",
"if_tail",
"opt_else",
1726 "for_var",
"f_marg",
"f_marg_list",
"f_margs",
"block_args_tail",
1727 "opt_block_args_tail",
"block_param",
"opt_block_param",
1728 "block_param_def",
"opt_bv_decl",
"bv_decls",
"bvar",
"lambda",
"@27",
1729 "@28",
"@29",
"@30",
"f_larglist",
"lambda_body",
"do_block",
"@31",
1730 "block_call",
"method_call",
"@32",
"@33",
"@34",
"@35",
"brace_block",
1731 "@36",
"@37",
"brace_body",
"@38",
"@39",
"do_body",
"@40",
"@41",
1732 "case_body",
"cases",
"opt_rescue",
"exc_list",
"exc_var",
"opt_ensure",
1733 "literal",
"strings",
"string",
"string1",
"xstring",
"regexp",
"words",
1734 "word_list",
"word",
"symbols",
"symbol_list",
"qwords",
"qsymbols",
1735 "qword_list",
"qsym_list",
"string_contents",
"xstring_contents",
1736 "regexp_contents",
"string_content",
"@42",
"@43",
"@44",
"@45",
"@46",
1737 "@47",
"string_dvar",
"symbol",
"sym",
"dsym",
"numeric",
1738 "simple_numeric",
"user_variable",
"keyword_variable",
"var_ref",
1739 "var_lhs",
"backref",
"superclass",
"$@48",
"f_arglist",
"@49",
1740 "args_tail",
"opt_args_tail",
"f_args",
"f_bad_arg",
"f_norm_arg",
1741 "f_arg_asgn",
"f_arg_item",
"f_arg",
"f_label",
"f_kw",
"f_block_kw",
1742 "f_block_kwarg",
"f_kwarg",
"kwrest_mark",
"f_kwrest",
"f_opt",
1743 "f_block_opt",
"f_block_optarg",
"f_optarg",
"restarg_mark",
1744 "f_rest_arg",
"blkarg_mark",
"f_block_arg",
"opt_f_block_arg",
1745 "singleton",
"$@50",
"assoc_list",
"assocs",
"assoc",
"operation",
1746 "operation2",
"operation3",
"dot_or_colon",
"call_op",
"call_op2",
1747 "opt_terms",
"opt_nl",
"rparen",
"rbracket",
"trailer",
"term",
"terms",
1755 static const yytype_uint16 yytoknum[] =
1757 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1758 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1759 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1760 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1761 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1762 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1763 315, 316, 317, 318, 319, 320, 321, 322, 130, 131,
1764 132, 134, 139, 140, 141, 138, 137, 148, 149, 142,
1765 143, 128, 129, 144, 145, 135, 136, 150, 323, 324,
1766 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1767 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1768 345, 346, 347, 348, 349, 350, 351, 61, 63, 58,
1769 62, 60, 124, 94, 38, 43, 45, 42, 47, 37,
1770 352, 33, 126, 353, 123, 125, 91, 44, 96, 40,
1771 41, 93, 59, 32, 46, 10
1776 static const yytype_uint16
yyr1[] =
1778 0, 146, 148, 147, 149, 150, 150, 150, 150, 151,
1779 152, 151, 153, 154, 155, 155, 155, 155, 156, 157,
1780 156, 159, 158, 158, 158, 158, 158, 158, 158, 158,
1781 158, 158, 158, 158, 158, 158, 158, 158, 160, 160,
1782 160, 160, 160, 160, 160, 160, 161, 161, 161, 162,
1783 162, 162, 162, 162, 162, 163, 164, 164, 165, 165,
1784 167, 166, 168, 169, 169, 169, 169, 169, 169, 169,
1785 169, 169, 169, 169, 170, 170, 171, 171, 172, 172,
1786 172, 172, 172, 172, 172, 172, 172, 172, 173, 173,
1787 174, 174, 175, 175, 176, 176, 176, 176, 176, 176,
1788 176, 176, 176, 177, 177, 177, 177, 177, 177, 177,
1789 177, 177, 178, 178, 179, 179, 179, 180, 180, 180,
1790 180, 180, 181, 181, 182, 182, 183, 184, 183, 185,
1791 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
1792 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
1793 185, 185, 185, 185, 185, 185, 185, 185, 185, 186,
1794 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
1795 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
1796 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
1797 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
1798 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
1799 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
1800 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
1801 187, 187, 187, 187, 187, 187, 187, 187, 187, 188,
1802 187, 187, 187, 189, 190, 190, 190, 190, 191, 191,
1803 192, 193, 193, 194, 194, 194, 194, 194, 195, 195,
1804 195, 195, 195, 197, 196, 198, 199, 199, 200, 200,
1805 200, 200, 201, 201, 202, 202, 202, 203, 203, 203,
1806 203, 203, 203, 203, 203, 203, 203, 203, 204, 203,
1807 205, 203, 206, 207, 203, 203, 203, 203, 203, 203,
1808 203, 203, 203, 203, 208, 203, 203, 203, 203, 203,
1809 203, 203, 203, 203, 209, 210, 203, 211, 212, 203,
1810 203, 203, 213, 214, 203, 215, 203, 216, 203, 217,
1811 203, 218, 219, 203, 220, 221, 203, 203, 203, 203,
1812 203, 222, 223, 224, 225, 226, 227, 228, 229, 230,
1813 231, 232, 233, 234, 234, 234, 235, 235, 236, 236,
1814 237, 237, 238, 238, 239, 239, 240, 240, 241, 241,
1815 241, 241, 241, 241, 241, 241, 241, 242, 242, 242,
1816 242, 243, 243, 244, 244, 244, 244, 244, 244, 244,
1817 244, 244, 244, 244, 244, 244, 244, 244, 245, 245,
1818 246, 246, 246, 247, 247, 248, 248, 249, 249, 251,
1819 252, 253, 254, 250, 255, 255, 256, 256, 258, 257,
1820 259, 259, 259, 259, 260, 261, 260, 262, 260, 260,
1821 263, 260, 264, 260, 260, 260, 260, 266, 265, 267,
1822 265, 269, 270, 268, 272, 273, 271, 274, 275, 275,
1823 276, 276, 277, 277, 277, 278, 278, 279, 279, 280,
1824 280, 280, 281, 282, 282, 282, 283, 284, 285, 286,
1825 286, 287, 287, 288, 288, 289, 289, 290, 290, 291,
1826 291, 292, 292, 293, 293, 294, 294, 295, 295, 296,
1827 296, 297, 297, 298, 299, 298, 300, 301, 302, 303,
1828 304, 298, 305, 305, 305, 305, 306, 307, 307, 307,
1829 307, 308, 309, 309, 310, 310, 310, 310, 311, 311,
1830 311, 311, 311, 312, 312, 312, 312, 312, 312, 312,
1831 313, 313, 314, 314, 315, 315, 317, 316, 316, 318,
1832 319, 318, 320, 320, 320, 320, 321, 321, 322, 322,
1833 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
1834 322, 322, 322, 323, 323, 323, 323, 324, 324, 325,
1835 326, 326, 327, 327, 328, 329, 329, 330, 330, 331,
1836 331, 332, 332, 333, 333, 334, 334, 335, 336, 337,
1837 337, 338, 338, 339, 339, 340, 340, 341, 341, 342,
1838 343, 343, 344, 345, 344, 346, 346, 347, 347, 348,
1839 348, 348, 348, 349, 349, 349, 350, 350, 350, 350,
1840 351, 351, 351, 352, 352, 353, 353, 354, 354, 355,
1841 355, 356, 356, 357, 358, 359, 359, 359, 360, 360,
1848 0, 2, 0, 2, 2, 1, 1, 3, 2, 1,
1849 0, 5, 4, 2, 1, 1, 3, 2, 1, 0,
1850 5, 0, 4, 3, 3, 3, 2, 3, 3, 3,
1851 3, 3, 4, 1, 3, 3, 3, 1, 3, 3,
1852 6, 5, 5, 5, 5, 3, 1, 3, 1, 1,
1853 3, 3, 3, 2, 1, 1, 1, 1, 1, 4,
1854 0, 4, 1, 2, 3, 4, 5, 4, 5, 2,
1855 2, 2, 2, 2, 1, 3, 1, 3, 1, 2,
1856 3, 5, 2, 4, 2, 4, 1, 3, 1, 3,
1857 2, 3, 1, 3, 1, 1, 4, 3, 3, 3,
1858 3, 2, 1, 1, 1, 4, 3, 3, 3, 3,
1859 2, 1, 1, 1, 2, 1, 3, 1, 1, 1,
1860 1, 1, 1, 1, 1, 1, 1, 0, 4, 1,
1861 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1862 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1863 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1864 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1865 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1866 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1867 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1868 3, 3, 6, 5, 5, 5, 5, 4, 3, 3,
1869 3, 3, 3, 3, 3, 3, 3, 4, 2, 2,
1870 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1871 3, 3, 3, 2, 2, 3, 3, 3, 3, 0,
1872 4, 6, 1, 1, 1, 2, 4, 2, 1, 3,
1873 3, 1, 1, 1, 1, 2, 4, 2, 1, 2,
1874 2, 4, 1, 0, 2, 2, 2, 1, 1, 2,
1875 3, 4, 1, 1, 3, 4, 2, 1, 1, 1,
1876 1, 1, 1, 1, 1, 1, 1, 1, 0, 4,
1877 0, 3, 0, 0, 5, 3, 3, 2, 3, 3,
1878 1, 4, 3, 1, 0, 6, 4, 3, 2, 1,
1879 2, 2, 6, 6, 0, 0, 7, 0, 0, 7,
1880 5, 4, 0, 0, 9, 0, 6, 0, 7, 0,
1881 5, 0, 0, 7, 0, 0, 9, 1, 1, 1,
1882 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1883 1, 1, 1, 1, 1, 2, 1, 1, 1, 5,
1884 1, 2, 1, 1, 1, 3, 1, 3, 1, 4,
1885 6, 3, 5, 2, 4, 1, 3, 4, 2, 2,
1886 1, 2, 0, 6, 8, 4, 6, 4, 2, 6,
1887 2, 4, 6, 2, 4, 2, 4, 1, 1, 1,
1888 3, 1, 4, 1, 4, 1, 3, 1, 1, 0,
1889 0, 0, 0, 6, 4, 1, 3, 3, 0, 4,
1890 2, 4, 5, 5, 2, 0, 5, 0, 5, 3,
1891 0, 4, 0, 4, 2, 1, 4, 0, 4, 0,
1892 4, 0, 0, 4, 0, 0, 4, 5, 1, 1,
1893 6, 1, 1, 1, 1, 2, 1, 2, 1, 1,
1894 1, 1, 1, 1, 1, 2, 3, 3, 3, 3,
1895 3, 0, 3, 1, 2, 3, 3, 0, 3, 3,
1896 3, 3, 3, 0, 3, 0, 3, 0, 2, 0,
1897 2, 0, 2, 1, 0, 3, 0, 0, 0, 0,
1898 0, 8, 1, 1, 1, 1, 2, 1, 1, 1,
1899 1, 3, 1, 2, 1, 1, 1, 1, 1, 1,
1900 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1901 1, 1, 1, 1, 1, 1, 0, 4, 0, 3,
1902 0, 3, 4, 2, 2, 1, 2, 0, 6, 8,
1903 4, 6, 4, 6, 2, 4, 6, 2, 4, 2,
1904 4, 1, 0, 1, 1, 1, 1, 1, 1, 1,
1905 1, 3, 1, 3, 1, 2, 1, 2, 1, 1,
1906 3, 1, 3, 1, 1, 2, 1, 3, 3, 1,
1907 3, 1, 3, 1, 1, 2, 1, 1, 1, 2,
1908 2, 1, 1, 0, 4, 1, 2, 1, 3, 3,
1909 2, 4, 2, 1, 1, 1, 1, 1, 1, 1,
1910 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
1911 1, 0, 1, 2, 2, 0, 1, 1, 1, 1,
1920 2, 0, 0, 1, 0, 349, 350, 351, 0, 342,
1921 343, 344, 347, 345, 346, 348, 337, 338, 339, 340,
1922 300, 263, 263, 524, 523, 525, 526, 631, 0, 631,
1923 10, 0, 528, 527, 529, 613, 615, 520, 519, 614,
1924 522, 514, 515, 516, 517, 463, 534, 535, 0, 0,
1925 0, 0, 292, 642, 642, 86, 409, 489, 487, 489,
1926 491, 471, 483, 477, 485, 0, 0, 0, 3, 629,
1927 6, 9, 33, 37, 49, 57, 263, 56, 0, 74,
1928 0, 78, 88, 0, 54, 242, 0, 288, 0, 0,
1929 314, 317, 629, 0, 0, 0, 0, 58, 309, 277,
1930 278, 462, 464, 279, 280, 281, 283, 282, 284, 460,
1931 461, 459, 512, 530, 531, 285, 0, 286, 62, 5,
1932 8, 169, 180, 170, 193, 166, 186, 176, 175, 196,
1933 197, 191, 174, 173, 168, 194, 198, 199, 178, 167,
1934 181, 185, 187, 179, 172, 188, 195, 190, 189, 182,
1935 192, 177, 165, 184, 183, 164, 171, 162, 163, 159,
1936 160, 161, 117, 119, 118, 154, 155, 150, 132, 133,
1937 134, 141, 138, 140, 135, 136, 156, 157, 142, 143,
1938 147, 151, 137, 139, 129, 130, 131, 144, 145, 146,
1939 148, 149, 152, 153, 158, 122, 124, 126, 26, 120,
1940 121, 123, 125, 0, 0, 0, 0, 0, 0, 0,
1941 487, 0, 258, 0, 243, 268, 72, 262, 642, 0,
1942 530, 531, 0, 286, 642, 607, 73, 71, 631, 70,
1943 0, 642, 434, 69, 631, 632, 0, 0, 21, 239,
1944 0, 0, 337, 338, 300, 303, 435, 0, 218, 0,
1945 219, 297, 0, 19, 0, 0, 629, 15, 18, 631,
1946 76, 14, 631, 0, 0, 635, 635, 244, 0, 0,
1947 635, 605, 631, 0, 0, 0, 84, 341, 0, 94,
1948 95, 102, 311, 410, 509, 508, 510, 507, 0, 506,
1949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1950 0, 513, 53, 233, 234, 638, 639, 4, 640, 630,
1951 0, 0, 0, 0, 0, 0, 0, 439, 437, 424,
1952 63, 308, 418, 420, 0, 90, 0, 82, 79, 0,
1953 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1954 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1955 0, 0, 0, 0, 0, 0, 626, 432, 642, 625,
1956 430, 0, 55, 0, 0, 0, 0, 629, 0, 630,
1957 0, 363, 362, 0, 0, 530, 531, 286, 112, 113,
1958 0, 0, 115, 538, 0, 530, 531, 286, 329, 189,
1959 182, 192, 177, 159, 160, 161, 117, 118, 603, 331,
1960 602, 0, 628, 627, 0, 310, 465, 0, 0, 127,
1961 610, 297, 269, 612, 265, 0, 0, 0, 0, 259,
1962 267, 432, 642, 430, 0, 0, 0, 260, 631, 0,
1963 302, 264, 631, 254, 642, 642, 253, 631, 307, 52,
1964 23, 25, 24, 0, 304, 0, 0, 0, 432, 430,
1965 0, 17, 0, 631, 295, 13, 630, 75, 291, 293,
1966 298, 637, 636, 245, 637, 247, 299, 606, 0, 101,
1967 513, 92, 87, 0, 432, 642, 430, 562, 493, 496,
1968 494, 511, 490, 466, 488, 467, 468, 492, 469, 470,
1969 0, 473, 479, 0, 480, 475, 476, 0, 481, 0,
1970 482, 0, 641, 7, 27, 28, 29, 30, 31, 50,
1971 51, 444, 441, 60, 64, 444, 0, 34, 273, 0,
1972 36, 272, 631, 0, 80, 91, 48, 38, 46, 0,
1973 248, 268, 200, 35, 0, 286, 216, 223, 228, 229,
1974 230, 225, 227, 237, 238, 231, 232, 209, 210, 235,
1975 236, 631, 224, 226, 220, 221, 222, 211, 212, 213,
1976 214, 215, 616, 618, 617, 619, 0, 263, 429, 631,
1977 616, 618, 617, 619, 0, 263, 0, 642, 354, 0,
1978 353, 0, 0, 0, 0, 0, 0, 297, 432, 642,
1979 430, 322, 327, 112, 113, 114, 536, 325, 432, 642,
1980 430, 0, 0, 332, 624, 623, 334, 616, 617, 263,
1981 39, 248, 201, 45, 208, 0, 0, 609, 0, 270,
1982 266, 642, 616, 617, 631, 616, 617, 608, 301, 633,
1983 250, 255, 257, 306, 22, 0, 240, 0, 32, 427,
1984 425, 207, 0, 77, 16, 631, 635, 0, 85, 620,
1985 100, 631, 616, 617, 568, 565, 564, 563, 566, 574,
1986 583, 0, 594, 584, 598, 597, 593, 562, 411, 561,
1987 415, 567, 569, 570, 572, 547, 576, 581, 642, 586,
1988 642, 591, 547, 596, 547, 0, 545, 497, 0, 472,
1989 474, 484, 478, 486, 217, 0, 445, 0, 442, 441,
1990 0, 276, 0, 89, 83, 0, 0, 0, 0, 432,
1991 642, 430, 0, 0, 0, 433, 67, 0, 0, 436,
1992 0, 0, 431, 65, 642, 352, 289, 642, 642, 451,
1993 642, 355, 642, 357, 315, 356, 318, 0, 0, 321,
1994 620, 296, 631, 616, 617, 0, 0, 0, 0, 112,
1995 113, 116, 631, 0, 631, 540, 0, 252, 421, 59,
1996 251, 128, 611, 271, 261, 0, 0, 436, 0, 0,
1997 642, 631, 11, 0, 294, 246, 93, 436, 0, 375,
1998 366, 368, 631, 364, 631, 412, 0, 0, 554, 575,
1999 0, 543, 601, 585, 0, 544, 0, 557, 595, 0,
2000 559, 599, 498, 502, 503, 504, 495, 505, 440, 642,
2001 438, 642, 0, 419, 0, 274, 81, 47, 249, 616,
2002 617, 631, 616, 617, 0, 44, 205, 43, 206, 68,
2003 428, 634, 0, 41, 203, 42, 204, 66, 426, 452,
2004 453, 642, 454, 0, 642, 360, 0, 0, 358, 0,
2005 0, 0, 320, 0, 0, 436, 0, 0, 0, 0,
2006 436, 330, 604, 562, 0, 562, 335, 422, 423, 0,
2007 256, 305, 20, 631, 0, 373, 0, 571, 0, 403,
2008 0, 587, 546, 573, 547, 547, 582, 642, 600, 547,
2009 592, 547, 570, 547, 499, 401, 631, 0, 399, 398,
2010 0, 61, 275, 436, 241, 40, 202, 0, 0, 456,
2011 361, 0, 12, 458, 0, 312, 313, 0, 0, 270,
2012 642, 323, 0, 537, 326, 631, 0, 0, 540, 365,
2013 376, 0, 371, 367, 414, 0, 0, 0, 413, 0,
2014 550, 0, 552, 542, 0, 558, 0, 555, 560, 500,
2015 397, 631, 0, 570, 382, 578, 579, 642, 642, 589,
2016 382, 382, 380, 446, 443, 0, 455, 0, 530, 531,
2017 286, 0, 457, 0, 316, 319, 448, 449, 447, 0,
2018 328, 539, 333, 541, 0, 0, 374, 0, 369, 407,
2019 631, 405, 408, 0, 0, 547, 547, 547, 547, 0,
2020 0, 400, 0, 388, 390, 0, 577, 0, 378, 379,
2021 0, 393, 0, 395, 297, 432, 642, 430, 642, 642,
2022 0, 0, 372, 0, 0, 404, 417, 416, 551, 0,
2023 548, 553, 556, 0, 402, 588, 381, 382, 382, 297,
2024 432, 580, 642, 382, 590, 382, 382, 620, 296, 631,
2025 616, 617, 450, 359, 324, 336, 370, 406, 547, 501,
2026 0, 385, 0, 387, 620, 296, 377, 0, 394, 0,
2027 391, 396, 436, 549, 382, 382, 382, 382, 386, 0,
2028 383, 389, 392, 382, 384
2034 -1, 1, 2, 68, 69, 70, 240, 576, 577, 256,
2035 257, 452, 258, 443, 72, 527, 73, 363, 74, 75,
2036 514, 699, 247, 77, 78, 259, 79, 80, 81, 472,
2037 82, 213, 382, 383, 195, 196, 197, 198, 615, 565,
2038 200, 84, 445, 215, 264, 532, 232, 758, 432, 433,
2039 229, 230, 217, 419, 434, 520, 521, 85, 361, 262,
2040 263, 645, 635, 365, 850, 366, 851, 745, 979, 748,
2041 746, 601, 603, 755, 756, 928, 249, 87, 88, 89,
2042 90, 91, 92, 93, 94, 95, 96, 726, 579, 734,
2043 847, 848, 374, 780, 781, 782, 1036, 1004, 951, 897,
2044 898, 878, 990, 991, 282, 283, 477, 785, 880, 668,
2045 938, 323, 515, 97, 98, 724, 717, 574, 566, 321,
2046 512, 511, 697, 698, 811, 695, 696, 809, 586, 978,
2047 728, 841, 908, 912, 99, 100, 101, 102, 103, 104,
2048 105, 294, 490, 106, 298, 107, 108, 296, 300, 290,
2049 288, 292, 482, 688, 687, 802, 894, 949, 999, 806,
2050 109, 289, 110, 111, 112, 220, 221, 115, 222, 223,
2051 597, 747, 864, 865, 882, 788, 670, 671, 672, 892,
2052 674, 675, 676, 677, 956, 957, 678, 679, 680, 681,
2053 959, 960, 682, 683, 684, 685, 686, 791, 401, 602,
2054 269, 435, 225, 118, 639, 568, 606, 600, 404, 307,
2055 429, 430, 719, 463, 580, 369, 261
2060 #define YYPACT_NINF -876 2063 -876, 96, 3133, -876, 8152, -876, -876, -876, 7646, -876,
2064 -876, -876, -876, -876, -876, -876, 8269, 8269, -876, -876,
2065 8269, 4485, 4071, -876, -876, -876, -876, 235, 7510, -1,
2066 -876, 81, -876, -876, -876, 3381, 4209, -876, -876, 3519,
2067 -876, -876, -876, -876, -876, -876, -876, -876, 9673, 9673,
2068 172, 5845, -3, 8620, 8971, 7912, -876, 7374, -876, -876,
2069 -876, 234, 278, 284, 295, 1381, 9790, 9673, -876, 333,
2070 -876, 1276, -876, 125, -876, -876, 141, 406, 329, -876,
2071 318, 10024, -876, 363, 2119, 45, 338, -876, 9907, 9907,
2072 -876, -876, 6746, 10137, 10250, 10363, 7237, 12, 67, -876,
2073 -876, 380, -876, -876, -876, -876, -876, -876, -876, -876,
2074 -876, -876, -876, 225, 574, -876, 395, 598, -876, -876,
2075 -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
2076 -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
2077 -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
2078 -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
2079 -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
2080 -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
2081 -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
2082 -876, -876, -876, -876, -876, -876, -876, -876, 387, -876,
2083 -876, -876, -876, 388, 9673, 473, 5977, 9673, 9673, 9673,
2084 -876, 9673, -876, 454, 2119, 451, -876, -876, 442, 421,
2085 51, 210, 503, 268, 472, -876, -876, -876, 6629, -876,
2086 8269, 8269, -876, -876, 6863, -876, 9907, 523, -876, 488,
2087 507, 6109, -876, -876, -876, 524, 533, 141, -876, 606,
2088 572, 629, 8386, -876, 5845, 504, 333, -876, 1276, -1,
2089 550, -876, -1, 8386, 534, -11, 76, -876, 451, 548,
2090 76, -876, -1, 621, 1381, 10476, 549, -876, 702, 883,
2091 974, 976, -876, -876, -876, -876, -876, -876, 505, -876,
2092 674, 712, 492, 582, 1109, 590, 40, 593, 1152, 601,
2093 47, 626, -876, -876, -876, -876, -876, -876, -876, 6980,
2094 9907, 9907, 9907, 9907, 8386, 9907, 9907, -876, -876, -876,
2095 624, -876, -876, -876, 9088, -876, 5845, 8032, 581, 9088,
2096 9673, 9673, 9673, 9673, 9673, 9673, 9673, 9673, 9673, 9673,
2097 9673, 9673, 9673, 9673, 9673, 9673, 9673, 9673, 9673, 9673,
2098 9673, 9673, 9673, 9673, 9673, 9673, -876, 1985, 8269, -876,
2099 2365, 5182, 125, 116, 116, 9907, 9907, 333, 726, 587,
2100 698, -876, -876, 1000, 733, 66, 129, 136, 52, 730,
2101 9907, 583, -876, 634, 1012, -876, -876, -876, -876, 25,
2102 27, 29, 30, 39, 88, 90, 216, 291, -876, -876,
2103 -876, 299, -876, -876, 2639, -876, -876, 9790, 9790, -876,
2104 -876, 322, -876, -876, -876, 425, 9673, 9673, 8503, -876,
2105 -876, 10765, 8269, 10846, 9673, 9673, 8737, -876, -1, 625,
2106 -876, -876, -1, -876, 635, 637, -876, 49, -876, -876,
2107 -876, -876, -876, 7646, -876, 9673, 6252, 641, 10765, 10846,
2108 9673, 1276, 649, -1, -876, -876, 7097, 648, -876, 1276,
2109 -876, 8854, -876, -876, 8971, -876, -876, -876, 488, 1014,
2110 -876, -876, 654, 10476, 10927, 8269, 11008, 1156, -876, -876,
2111 -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
2112 287, -876, -876, 657, -876, -876, -876, 390, -876, 663,
2113 -876, 9673, -876, -876, -876, -876, -876, -876, -876, -876,
2114 -876, -876, -876, -876, -876, -876, 9673, -876, 660, 676,
2115 -876, -876, -1, 10476, 679, -876, -876, -876, 767, 719,
2116 1264, -876, -876, -876, 1017, 323, 572, 2443, 2443, 2443,
2117 2443, 969, 969, 3497, 3359, 2443, 2443, 3221, 3221, 818,
2118 818, 2710, 969, 969, 834, 834, 765, 542, 542, 572,
2119 572, 572, 4623, 3657, 4899, 3795, 533, 690, -876, -1,
2120 643, -876, 740, -876, 533, 4347, 830, 833, -876, 5325,
2121 831, 5611, 256, 256, 726, 9205, 830, 147, 11089, 8269,
2122 11170, -876, 125, -876, 1014, -876, -876, -876, 11251, 8269,
2123 2639, 5182, 9907, -876, -876, -876, -876, -876, -876, 1288,
2124 -876, 1391, -876, -876, -876, 7646, 9673, -876, 9673, 451,
2125 -876, 472, 3243, 3933, -1, 339, 382, -876, -876, -876,
2126 -876, 8503, 8737, -876, -876, 9907, 2119, 708, -876, -876,
2127 -876, -876, 6252, 274, -876, -1, 76, 10476, 654, 424,
2128 306, -1, 411, 461, -876, -876, -876, -876, -876, -876,
2129 -876, 1214, -876, -876, -876, -876, -876, 1584, -876, -876,
2130 -876, -876, -876, 731, -876, 710, 9673, -876, 717, 803,
2131 722, -876, 724, 810, 728, 815, -876, -876, 1224, -876,
2132 -876, -876, -876, -876, 572, 860, -876, 738, -876, -876,
2133 865, 739, 9322, -876, 654, 10476, 8386, 9790, 9673, 11332,
2134 8269, 11413, 763, 9790, 9790, -876, 624, 533, 754, 741,
2135 9790, 9790, -876, 624, 533, -876, -876, 9439, 882, -876,
2136 571, -876, 882, -876, -876, -876, -876, 830, 82, -876,
2137 72, 103, -1, 155, 162, 9907, 333, 9907, 5182, 898,
2138 306, -876, -1, 830, 49, 762, 7782, -876, 67, 406,
2139 -876, -876, -876, -876, -876, 9673, 9673, 404, 9673, 9673,
2140 773, 49, -876, 780, -876, -876, -876, 528, 1214, 576,
2141 -876, 779, -1, -876, -1, -876, 9673, 1584, -876, -876,
2142 699, -876, -876, -876, 377, -876, 1584, -876, -876, 1175,
2143 -876, -876, -876, -876, -876, -876, -876, -876, -876, 33,
2144 -876, 33, 782, -876, 9673, 785, 654, -876, 2119, 4761,
2145 5037, -1, 432, 563, 9673, -876, -876, -876, -876, -876,
2146 -876, -876, 9790, -876, -876, -876, -876, -876, -876, 660,
2147 -876, 837, -876, 5728, 921, -876, 9907, 830, -876, 830,
2148 6395, 6395, -876, 9556, 5468, 165, 256, 5182, 333, 830,
2149 -876, -876, -876, 1584, 5182, 1584, -876, -876, -876, 9673,
2150 8737, -876, -876, -1, 1230, 799, 1310, -876, 801, 806,
2151 65, -876, -876, -876, 812, 813, -876, 722, -876, 816,
2152 -876, 829, -876, 816, -876, -876, 1489, 6395, -876, -876,
2153 6109, -876, 832, 662, 2119, -876, -876, 10589, 116, -876,
2154 -876, 6395, -876, -876, 116, -876, -876, 830, 830, -876,
2155 344, -876, 830, -876, -876, -1, 830, 333, 762, -876,
2156 841, 1230, 595, -876, -876, 1382, 6395, 6109, -876, 1584,
2157 -876, 1175, -876, -876, 1175, -876, 1175, -876, -876, -876,
2158 -876, -1, 845, 835, 842, 10702, -876, 843, 722, -876,
2159 846, 847, -876, -876, -876, 931, -876, 1027, 152, 171,
2160 184, 5182, -876, 5325, -876, -876, -876, -876, -876, 6395,
2161 -876, -876, -876, -876, 5182, 1230, 841, 1230, 851, -876,
2162 185, -876, -876, 830, 854, 816, 868, 816, 816, 6512,
2163 869, -876, 10702, 1584, -876, 951, 1051, 699, -876, -876,
2164 1584, -876, 1175, -876, 199, 11494, 8269, 11575, 833, 571,
2165 830, 830, 841, 1230, 1382, -876, -876, -876, -876, 1175,
2166 -876, -876, -876, 902, -876, 1051, -876, 878, 884, -876,
2167 11656, -876, 722, 888, -876, 892, 888, 94, 106, -1,
2168 265, 321, -876, -876, -876, -876, 841, -876, 816, -876,
2169 1584, -876, 1175, -876, 881, 894, -876, 1175, -876, 1175,
2170 -876, -876, 342, -876, 888, 901, 888, 888, -876, 1175,
2171 -876, -876, -876, 888, -876
2177 -876, -876, -876, -382, -876, 15, -876, -543, 2, -876,
2178 575, -876, 43, -876, -209, -325, 180, -58, -59, -876,
2179 -592, -876, 817, -5, 950, -162, 20, -71, -876, -443,
2180 -9, 2093, -302, 949, -56, -876, -12, -876, -876, 5,
2181 -876, 1150, -876, 196, -876, 166, -27, 326, -332, 89,
2182 -13, -876, -401, -159, 7, -876, -308, -26, -876, -876,
2183 -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
2184 -876, -876, -876, -876, -876, -876, 57, -876, -876, -876,
2185 -876, -876, -876, -876, -876, -876, -876, 159, -356, -546,
2186 38, -656, -876, -792, -817, 282, 150, -336, -876, 241,
2187 -876, -749, -876, 41, -876, -876, -876, -876, -876, -876,
2188 -876, 308, -876, -876, -876, -876, -876, -876, -876, -92,
2189 -876, -876, 369, -876, -876, 555, -876, -876, -566, -876,
2190 54, -876, -876, -876, -876, -876, -876, 978, -876, -876,
2191 -876, -876, 777, -876, -876, -876, -876, -876, -876, 872,
2192 1024, -876, 53, -876, -876, -876, -876, -876, -876, -876,
2193 14, -876, 28, -876, -30, 1683, 1997, 988, 2151, 1319,
2194 -876, -876, 158, -876, -457, 111, -586, -847, -415, -329,
2195 -744, 178, -259, 300, 104, -876, -876, -876, 182, -757,
2196 -875, 86, 316, -876, -721, -876, -70, -582, -876, -876,
2197 -876, 105, -394, -876, -319, -876, -876, -83, -876, -42,
2198 -25, 78, -535, -222, -64, -15, -2
2204 #define YYTABLE_NINF -643 2207 119, 287, 236, 360, 239, 308, 405, 302, 581, 233,
2208 328, 212, 212, 199, 403, 212, 238, 620, 737, 120,
2209 669, 533, 201, 218, 218, 620, 569, 218, 308, 277,
2210 648, 364, 627, 199, 367, 301, 202, 736, 567, 890,
2211 399, 575, 201, 883, 465, 71, 276, 71, 467, 319,
2212 368, 267, 271, 255, 309, 277, 202, 930, 753, 86,
2213 265, 86, 199, 320, 637, 427, 885, 277, 277, 277,
2214 627, 260, 844, 219, 219, 891, 849, 219, -613, 595,
2215 704, 784, 610, 613, 933, 609, 315, 316, 992, 767,
2216 624, -103, 453, 317, 936, 578, 3, -107, 795, 356,
2217 402, 199, 567, 493, 575, 216, 226, -107, 86, 227,
2218 499, 895, 278, -524, 986, -523, 777, -525, -526, -109,
2219 526, 224, 224, 219, 829, 224, 461, -528, -109, 578,
2220 640, 837, -341, -341, 462, 1044, 423, -290, 278, -518,
2221 -518, -532, -290, 651, 235, 219, 219, 952, 673, 219,
2222 373, 384, 384, 494, -104, 896, 359, 640, 266, 270,
2223 500, -111, 315, 316, 522, -103, 449, 317, -103, -524,
2224 1022, -523, -110, -525, -526, 961, -527, 992, -529, 937,
2225 -106, -341, 890, -528, -104, 1044, -613, -108, -518, -341,
2226 -105, -613, 308, 933, 235, 476, -518, -111, 526, 526,
2227 883, 318, 1000, -94, 471, 859, 1056, 855, 255, -98,
2228 669, -616, -110, 464, 455, 241, 420, 860, 996, 853,
2229 319, 462, 420, 212, 305, 212, 212, 306, 251, 436,
2230 620, 620, -527, -616, -529, 218, -107, 218, 627, -107,
2231 -100, 456, -617, 447, 470, -617, 783, 468, -109, 277,
2232 268, -109, 504, 505, 506, 507, 255, 742, 305, 883,
2233 773, 306, 816, 86, 976, 517, -95, 752, 362, 362,
2234 528, 640, 362, -102, 260, 318, 427, 925, -106, 927,
2235 231, 640, 1038, 733, -101, 219, 903, 219, 219, 1045,
2236 590, 219, -97, 219, -103, 451, 751, -103, 86, -99,
2237 -533, 277, -96, 308, -518, 943, 459, 582, 583, 86,
2238 921, 86, 438, -104, 922, -532, -104, 428, 524, 431,
2239 86, 926, 1024, 883, 503, 584, -111, -104, 255, -111,
2240 235, 519, 278, 224, -108, 224, 519, 457, 673, 1075,
2241 458, -110, -103, 484, -110, 487, 260, 491, 528, 528,
2242 478, 491, 71, 212, 977, -105, 436, 508, 425, 843,
2243 -518, 585, -94, 783, 875, 573, 86, 219, 219, 219,
2244 219, 86, 219, 219, 234, 1008, 1009, 293, 821, -521,
2245 235, 219, 854, 86, 278, -111, 534, 604, 825, 827,
2246 567, -75, 575, -296, -296, 833, 835, 479, 305, 480,
2247 410, 306, 471, 412, 413, 414, 669, -106, 669, 573,
2248 -106, -89, 450, 408, 437, 219, 439, 212, 86, 840,
2249 436, 295, 219, 219, 775, 356, 357, 297, 573, 768,
2250 689, 634, 420, 420, 322, -521, -97, 219, 299, -110,
2251 -111, 1021, -296, 605, 119, -617, 324, 277, 199, -98,
2252 -296, 711, 471, 478, 573, 325, -106, 201, 673, 783,
2253 1066, 783, 764, -108, 534, 534, -108, 673, 484, 620,
2254 212, 202, 769, 436, 358, 305, 627, 664, 306, 219,
2255 329, 573, 359, 58, -105, 407, -99, -105, 478, 71,
2256 362, 362, 362, 362, 869, 509, 510, 277, 526, -108,
2257 479, 665, 480, 86, 526, 526, 628, 905, 356, 421,
2258 630, 526, 526, 86, 1072, 633, 783, 988, 735, 735,
2259 518, -105, 720, 621, 409, 531, 712, 234, -97, 411,
2260 278, 643, 219, 692, 673, 479, 673, 480, 483, 715,
2261 616, -98, 417, 690, 718, 362, 362, 722, -97, -106,
2262 690, -97, 971, -96, 716, 478, -97, 422, 973, 486,
2263 592, -98, 723, -616, -98, 359, 646, 953, 478, -98,
2264 783, 416, 783, 612, 614, 729, 776, 440, -99, 418,
2265 278, 730, 757, 732, 212, 846, 843, 436, 441, 442,
2266 612, 614, 738, 424, 212, 573, 759, 436, -99, 718,
2267 703, -99, 479, 761, 480, 573, -99, 760, 783, 426,
2268 673, 764, 330, 617, 619, 479, 641, 480, 481, 420,
2269 199, 277, 268, 526, 1011, 1013, 718, 444, 654, 201,
2270 655, 656, 657, 658, 471, 593, 86, 955, 86, 594,
2271 119, 446, 330, 202, 454, -96, 219, 654, 528, 655,
2272 656, 657, 658, 721, 528, 528, 219, 619, 86, 219,
2273 268, 528, 528, 228, -533, -96, 867, -74, -96, 353,
2274 354, 355, 231, -96, 953, 460, 792, 469, 792, 277,
2275 -108, 953, 857, 466, 1049, 71, 473, 856, 408, 858,
2276 830, -104, 219, 356, 448, 488, 501, 757, 640, 86,
2277 866, 1061, 1063, 492, 278, 212, 495, 1068, 436, 1070,
2278 1071, -95, 701, 874, 498, -111, 573, 718, 525, 450,
2279 888, 513, 760, 774, 888, 842, 845, 718, 845, 502,
2280 845, 953, 987, 720, 519, -102, 770, 478, 1078, 1080,
2281 1081, 1082, 422, 585, 955, 739, -110, 1084, 955, 817,
2282 359, 955, 832, 955, 587, 596, -614, 659, 591, 879,
2283 -106, 199, 278, 86, 534, 629, -101, 219, 420, 660,
2284 534, 534, 631, 528, 632, 478, 638, 534, 534, -105,
2285 -97, 531, 754, 642, 479, -89, 480, 483, 914, 356,
2286 474, 647, 735, 797, 923, 800, 718, -268, 663, 664,
2287 691, 955, 219, 955, 219, 86, 693, 899, 955, 899,
2288 955, 706, 762, 702, 763, 771, 705, -521, -521, 76,
2289 955, 76, 479, 665, 480, 485, 962, 619, 268, -427,
2290 721, 832, 862, 76, 76, 330, 707, 76, 475, 909,
2291 725, 727, 913, 772, 731, 910, 359, 787, 786, 871,
2292 343, 344, 917, 918, 790, 793, 920, -108, -105, 794,
2293 877, 796, 798, 983, -614, 799, -521, 801, 76, -614,
2294 808, 879, 789, 810, -521, 813, -269, -99, -96, 826,
2295 828, 277, 824, 76, 1017, 792, 834, 836, 330, 534,
2296 351, 352, 353, 354, 355, 831, 852, 843, 815, 963,
2297 86, 863, 964, 219, 330, 76, 76, 86, 86, 76,
2298 870, 86, 861, 972, 86, 872, 876, 901, 845, 343,
2299 344, 86, -270, 839, -620, 362, 879, 362, 907, 277,
2300 911, 826, 828, 962, 834, 836, 931, 888, 993, 994,
2301 962, 934, 962, 351, 352, 353, 354, 355, 935, 939,
2302 941, 929, 1002, 944, 86, 792, 792, 86, 350, 351,
2303 352, 353, 354, 355, 967, 1025, 946, 1001, 86, -271,
2304 -530, -530, 887, 1018, 889, 1019, 277, 893, 985, 1003,
2305 1007, 1020, 881, 1010, 1012, -620, -620, 1014, 1023, 1027,
2306 962, 1034, 962, 86, 86, 940, 942, 962, 906, 962,
2307 945, 1033, 947, 981, 948, 1029, 915, 1039, 916, 962,
2308 902, 212, 1006, 1059, 436, 1060, 729, 845, 924, -530,
2309 -616, 1062, 573, 76, 718, 1067, 362, -530, 86, 1069,
2310 86, 644, -620, -617, -620, 906, 86, -616, 1079, 330,
2311 792, 86, -620, 371, 388, 76, 950, 76, 76, 919,
2312 838, 76, 900, 76, 343, 344, 86, 1053, 76, 1035,
2313 873, -531, -531, -286, -286, 1057, 268, 868, 812, 76,
2314 700, 76, 1052, 219, 954, 497, 974, 975, 958, 406,
2315 76, 980, 415, 291, 400, 982, 984, 356, 588, 1037,
2316 886, 348, 349, 350, 351, 352, 353, 354, 355, 356,
2317 598, -297, -297, 884, 356, 709, 1028, 1030, 1031, 1032,
2318 -531, 1041, -286, 0, 356, 1015, 0, 995, -531, 997,
2319 -286, 0, 0, 0, 998, 0, 76, 76, 76, 76,
2320 76, 76, 76, 76, 0, 0, 589, 0, 356, 1040,
2321 0, 76, 0, 76, 359, 0, 76, 0, 599, 0,
2322 -297, 0, 1026, 710, 0, 0, 359, 0, -297, 0,
2323 0, 359, 0, 1016, 0, 0, 214, 214, 0, 1073,
2324 214, 359, 478, 0, 0, 76, 0, 0, 76, 1054,
2325 1055, 0, 76, 76, 0, 958, 0, 599, 1043, 1042,
2326 1046, 0, 958, 0, 958, 359, 0, 76, 248, 250,
2327 0, 0, 0, 214, 214, 0, 0, 1058, 654, 0,
2328 655, 656, 657, 658, 659, 478, 303, 304, 0, 479,
2329 0, 480, 489, 0, 76, 76, 660, 654, 0, 655,
2330 656, 657, 658, 659, 0, 0, 0, 0, 1074, 76,
2331 1076, 0, 958, 0, 958, 660, 0, 1077, 661, 958,
2332 0, 958, 0, 0, 662, 663, 664, 1083, 0, 0,
2333 0, 958, 479, 76, 480, 496, 654, 661, 655, 656,
2334 657, 658, 0, 76, 663, 664, 0, 0, 803, 804,
2335 665, 805, 654, 666, 655, 656, 657, 658, -642, 46,
2336 47, 0, 76, 0, 0, 667, -642, -642, -642, 665,
2337 0, -642, -642, -642, 0, -642, 778, 0, 708, 0,
2338 0, 0, 779, 0, -642, -642, 310, 311, 312, 313,
2339 314, 117, 778, 117, 0, -642, -642, 0, -642, -642,
2340 -642, -642, -642, 0, 330, 331, 332, 333, 334, 335,
2341 336, 337, 338, 339, 340, 341, 342, 0, 0, 343,
2342 344, 0, 0, 0, 214, 0, 0, 214, 214, 214,
2343 0, 303, 654, 0, 655, 656, 657, 658, 0, 0,
2344 117, 0, 0, 0, 281, -642, -642, 0, 214, 0,
2345 214, 214, 345, 0, 346, 347, 348, 349, 350, 351,
2346 352, 353, 354, 355, 0, 0, 76, 0, 76, -642,
2347 281, -243, 778, 0, 0, 0, 76, 0, 932, 0,
2348 0, 0, 377, 387, 387, 0, 76, 0, 76, 76,
2349 0, 0, -642, -642, 0, 0, 0, 231, -642, 0,
2350 -642, 0, -642, -642, 989, 708, 655, 656, 657, 658,
2351 41, 42, 43, 44, 0, 0, 0, 0, 0, 0,
2352 0, 0, 76, 0, 0, 0, 0, 0, 0, 76,
2353 0, 330, 331, 332, 333, 334, 335, 336, 337, 338,
2354 339, 340, 341, 342, 214, 0, 343, 344, 0, 530,
2355 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
2356 546, 547, 548, 549, 550, 551, 552, 553, 554, 555,
2357 556, 557, 558, 559, 560, 561, 0, 0, 214, 345,
2358 0, 346, 347, 348, 349, 350, 351, 352, 353, 354,
2359 355, 0, 0, 76, 76, 117, 0, 76, 0, 0,
2360 76, 76, 0, 0, 0, 0, 0, 76, 76, 0,
2361 0, 654, 0, 655, 656, 657, 658, 659, 0, 0,
2362 0, 0, 0, 0, 0, 0, 0, 611, 611, 660,
2363 117, 0, 76, 0, 76, 76, 611, 214, 214, 0,
2364 0, 117, 214, 117, 611, 611, 214, 0, 0, 0,
2365 0, 661, 117, 0, 0, 0, 0, 662, 663, 664,
2366 0, 0, 0, 0, 281, 636, 0, 0, 0, 0,
2367 611, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2368 0, 214, 0, 665, 214, 0, 666, 0, 0, 0,
2369 0, 0, 0, 0, 0, 214, 0, 0, 117, 0,
2370 0, 0, 0, 117, 235, 0, 654, 0, 655, 656,
2371 657, 658, 659, 0, 0, 117, 281, 0, 535, 76,
2372 0, 694, 0, 0, 660, 0, 0, 0, 0, 0,
2373 76, 0, 0, 76, 0, 0, 214, 76, 76, 0,
2374 0, 76, 0, 0, 76, 0, 661, 0, 0, 0,
2375 117, 76, 662, 663, 664, 113, 0, 113, 0, 0,
2376 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2377 0, 0, 0, 0, 0, 0, 0, 0, 665, 0,
2378 0, 666, 0, 0, 76, 0, 0, 76, 0, 0,
2379 0, 0, 0, 0, 0, 0, 535, 535, 76, 0,
2380 0, 0, 0, 0, 113, 214, 0, 0, 279, 214,
2381 0, 0, 0, 0, 0, 0, 0, 0, 0, 214,
2382 0, 0, 0, 76, 76, 0, 0, 0, 0, 0,
2383 0, 0, 0, 0, 279, 117, 214, 0, 214, 0,
2384 0, 0, 0, 0, 0, 117, 375, 385, 385, 385,
2385 0, 214, 214, 0, 0, 0, 0, 0, 76, 0,
2386 76, 0, 281, 0, 0, 0, 76, 0, 0, 0,
2387 0, 76, 0, 0, 0, 0, 0, 0, 0, 0,
2388 0, 0, 0, 0, 0, 0, 76, 0, 0, 0,
2389 0, 0, 0, 0, 0, 0, 214, 0, 0, 0,
2390 0, 0, 0, 76, 0, 0, 0, 0, 0, 0,
2391 0, 0, 281, 0, 0, 0, 0, 0, 0, 0,
2392 0, 0, 214, 0, 0, 0, 0, 611, 818, 0,
2393 214, 0, 0, 611, 611, 0, 0, 0, 0, 0,
2394 611, 611, 0, 0, 0, 0, 0, 214, 0, 0,
2395 0, 0, 0, 0, 0, 0, 0, 0, 0, 113,
2396 0, 0, 0, 0, 0, 0, 0, 0, 117, 0,
2397 117, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2398 0, 0, 0, 0, 0, 611, 611, 0, 611, 611,
2399 117, 0, 0, 0, 113, 0, 0, 0, 0, 0,
2400 0, 0, 0, 0, 0, 113, 214, 113, 0, 0,
2401 0, 0, 0, 0, 0, 0, 113, 0, 0, 0,
2402 0, 0, 0, 0, 0, 0, 0, 0, 279, 0,
2403 0, 117, 0, 0, 214, 0, 281, 0, 0, 0,
2404 0, 0, 0, 0, 904, 0, 0, 0, 0, 0,
2405 0, 0, 611, 0, 0, 0, 0, 0, 0, 0,
2406 0, 0, 113, 0, 0, 0, 0, 113, 0, 114,
2407 0, 114, 0, 214, 0, 0, 0, 807, 0, 113,
2408 279, 0, 0, 0, 0, 0, 0, 0, 0, 611,
2409 214, 0, 0, 0, 281, 117, 535, 0, 0, 0,
2410 0, 0, 535, 535, 0, 0, 0, 562, 563, 535,
2411 535, 564, 0, 0, 113, 0, 0, 0, 114, 0,
2412 0, 0, 280, 165, 166, 167, 168, 169, 170, 171,
2413 172, 173, 0, 0, 174, 175, 0, 117, 176, 177,
2414 178, 179, 0, 0, 0, 0, 0, 0, 280, 0,
2415 0, 0, 0, 180, 181, 0, 0, 0, 0, 0,
2416 376, 386, 386, 386, 0, 83, 0, 83, 0, 0,
2417 0, 0, 0, 0, 0, 182, 183, 184, 185, 186,
2418 187, 188, 189, 190, 191, 0, 192, 193, 0, 0,
2419 0, 0, 0, 194, 0, 0, 0, 0, 0, 113,
2420 0, 0, 0, 0, 0, 0, 0, 0, 0, 113,
2421 0, 0, 0, 0, 83, 0, 0, 0, 0, 0,
2422 0, 535, 0, 116, 0, 116, 279, 0, 0, 0,
2423 0, 0, 117, 0, 0, 0, 214, 0, 0, 117,
2424 117, 0, 0, 117, 0, 0, 117, 0, 0, 0,
2425 0, 0, 0, 117, 0, 0, 372, 0, 0, 330,
2426 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
2427 341, 342, 116, 114, 343, 344, 279, 0, 0, 0,
2428 0, 0, 0, 0, 0, 0, 117, 0, 0, 117,
2429 0, 0, 0, 0, 0, 0, 970, 0, 0, 0,
2430 117, 0, 0, 0, 0, 0, 0, 345, 114, 346,
2431 347, 348, 349, 350, 351, 352, 353, 354, 355, 114,
2432 0, 114, 0, 0, 0, 117, 117, 0, 0, 0,
2433 114, 0, 113, 0, 113, 0, 0, 0, 0, 0,
2434 0, 0, 280, 0, 387, 0, 0, 0, 0, 0,
2435 0, 0, 0, 0, 113, 0, 0, 0, 0, 0,
2436 117, 0, 117, 0, 0, 0, 0, 0, 117, 83,
2437 0, 0, 0, 117, 0, 0, 114, 0, 0, 0,
2438 0, 114, 0, 0, 0, 0, 0, 0, 117, 0,
2439 0, 387, 0, 114, 280, 113, 0, 0, 0, 0,
2440 279, 0, 0, 0, 83, 0, 0, 0, 0, 0,
2441 0, 0, 0, 0, 0, 83, 0, 83, 0, 0,
2442 0, 0, 0, 0, 0, 0, 83, 116, 114, 0,
2443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2445 0, 0, 0, 0, 0, 0, 0, 0, 279, 113,
2446 0, 0, 116, 0, 0, 0, 0, 0, 0, 0,
2447 0, 0, 83, 116, 0, 116, 0, 83, 0, 0,
2448 0, 0, 0, 0, 116, 0, 0, 570, 571, 83,
2449 0, 572, 529, 0, 0, 0, 0, 0, 0, 0,
2450 0, 113, 0, 165, 166, 167, 168, 169, 170, 171,
2451 172, 173, 0, 114, 174, 175, 0, 0, 176, 177,
2452 178, 179, 0, 114, 83, 0, 0, 0, 0, 0,
2453 116, 0, 0, 180, 181, 116, 0, 0, 0, 0,
2454 280, 0, 0, 0, 0, 0, 0, 116, 0, 0,
2455 116, 0, 0, 0, 0, 182, 183, 184, 185, 186,
2456 187, 188, 189, 190, 191, 0, 192, 193, 0, 0,
2457 529, 529, 0, 194, 0, 0, 0, 0, 0, 0,
2458 0, 0, 116, 330, -643, -643, -643, -643, 335, 336,
2459 280, 0, -643, -643, 0, 0, 113, 0, 343, 344,
2460 0, 0, 0, 113, 113, 0, 0, 113, 0, 83,
2461 113, 0, 0, 0, 0, 0, 0, 113, 0, 83,
2462 0, 0, 0, 0, 0, 0, 0, 0, 116, 116,
2463 0, 0, 0, 346, 347, 348, 349, 350, 351, 352,
2464 353, 354, 355, 0, 0, 0, 114, 0, 114, 0,
2465 113, 0, 0, 113, 0, 0, 0, 0, 0, 0,
2466 968, 0, 0, 0, 113, 0, 0, 116, 114, 0,
2467 0, 0, 0, 0, 0, 0, 0, 116, 0, 0,
2468 0, 0, 0, 0, 0, 0, 0, 0, 0, 113,
2469 113, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2470 0, 0, 0, 0, 0, 0, 0, 0, 385, 114,
2471 0, 0, 0, 0, 280, 0, 0, 0, 0, 0,
2472 0, 0, 0, 0, 113, 0, 113, 0, 0, 0,
2473 0, 0, 113, 0, 0, 0, 0, 113, 0, 0,
2474 0, 0, 83, 0, 83, 0, 0, 0, 0, 0,
2475 0, 0, 113, 0, 0, 385, 0, 0, 0, 0,
2476 0, 607, 571, 0, 83, 608, 0, 0, 0, 0,
2477 0, 0, 280, 114, 0, 0, 0, 165, 166, 167,
2478 168, 169, 170, 171, 172, 173, 0, 0, 174, 175,
2479 0, 0, 176, 177, 178, 179, 0, 0, 0, 0,
2480 116, 0, 116, 0, 0, 83, 0, 180, 181, 0,
2481 0, 0, 0, 0, 0, 114, 0, 0, 0, 0,
2482 0, 0, 116, 0, 0, 0, 0, 0, 0, 182,
2483 183, 184, 185, 186, 187, 188, 189, 190, 191, 0,
2484 192, 193, 0, 0, 0, 0, 0, 194, 0, 0,
2485 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
2486 340, 341, 342, 116, 0, 343, 344, 0, 0, 83,
2487 529, 0, 0, 0, 0, 0, 529, 529, 0, 0,
2488 0, 0, 0, 529, 529, 0, 0, 0, 0, 0,
2489 0, 0, 0, 0, 0, 0, 0, 0, 345, 0,
2490 346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
2491 114, 83, 0, 0, 0, 0, 0, 114, 114, 0,
2492 0, 114, 0, 0, 114, 235, 0, 116, 116, 0,
2493 0, 114, 0, 0, 116, 116, 0, 0, 0, 0,
2494 0, 116, 116, 0, 0, 0, 0, 0, 0, 0,
2495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2496 0, 0, 0, 0, 114, 0, 0, 114, 0, 116,
2497 0, 0, 0, 0, 969, 0, 0, 0, 114, 0,
2498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2499 0, 0, 0, 0, 0, 529, 0, 0, 0, 0,
2500 0, 0, 0, 114, 114, 0, 83, 0, 0, 0,
2501 0, 0, 0, 83, 83, 0, 0, 83, 0, 0,
2502 83, 0, 386, 0, 0, 0, 0, 83, 0, 0,
2503 0, 0, 0, 0, 0, 0, 0, 0, 114, 0,
2504 114, 0, 0, 0, 0, 0, 114, 0, 0, 0,
2505 0, 114, 0, 116, 0, 0, 0, 0, 0, 0,
2506 83, 0, 0, 83, 116, 0, 114, 0, 0, 386,
2507 966, 116, 116, 0, 83, 116, 0, 0, 116, 0,
2508 0, 0, 0, 0, 0, 116, 0, 0, 0, 0,
2509 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,
2510 83, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2511 0, 0, 0, 0, 0, 0, 0, 0, 116, 0,
2512 0, 116, 0, 0, 0, 0, 0, 0, 0, 0,
2513 0, 0, 116, 0, 83, 0, 83, 0, 0, 0,
2514 0, 0, 83, 0, 0, 0, 0, 83, 0, 0,
2515 0, 0, 0, 0, 0, 0, 0, 116, 116, 0,
2516 0, 0, 83, 0, 0, 0, 0, 0, 0, 0,
2517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2519 0, 0, 116, 0, 116, 0, 0, 0, 0, 0,
2520 116, 0, 0, -642, 4, 116, 5, 6, 7, 8,
2521 9, 0, 0, 0, 10, 11, 0, 0, 0, 12,
2522 116, 13, 14, 15, 16, 17, 18, 19, 0, 0,
2523 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
2524 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
2525 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2526 40, 0, 41, 42, 43, 44, 0, 45, 46, 47,
2527 0, 48, 49, 0, 0, 0, 0, 0, 0, 0,
2528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2529 0, 0, 50, 0, 0, 51, 52, 0, 53, 54,
2530 0, 55, 0, 0, 56, 57, 58, 59, 60, 61,
2531 62, 63, 64, -620, 0, 0, 0, 0, 0, 0,
2532 0, -620, -620, -620, 0, 0, -620, -620, -620, 0,
2533 -620, 0, 0, 65, 66, 67, 0, 0, 0, -620,
2534 -620, -620, -620, 0, 0, -642, 0, 0, -642, 0,
2535 -620, -620, 0, -620, -620, -620, -620, -620, 0, 0,
2536 0, 330, 331, 332, 333, 334, 335, 336, 337, 338,
2537 339, 340, -643, -643, 0, 0, 343, 344, 0, 0,
2538 0, 0, 0, -620, -620, -620, -620, -620, -620, -620,
2539 -620, -620, -620, -620, -620, -620, 0, 0, -620, -620,
2540 -620, -620, 0, 765, -620, 0, 0, 0, 0, 0,
2541 -620, 346, 347, 348, 349, 350, 351, 352, 353, 354,
2542 355, 0, 0, 0, -620, 0, 0, -620, 0, 0,
2543 -107, -620, -620, -620, -620, -620, -620, -620, -620, -620,
2544 -620, -620, -620, 0, 0, 0, 0, -620, -620, -620,
2545 -620, -518, 0, -620, -620, -620, 0, -620, -620, -518,
2546 -518, -518, 0, 0, -518, -518, -518, 0, -518, 0,
2547 0, 0, 0, 0, 0, 0, -518, 0, -518, -518,
2548 -518, 0, 0, 0, 0, 0, 0, 0, -518, -518,
2549 0, -518, -518, -518, -518, -518, 0, 0, 0, 330,
2550 331, 332, 333, 334, 335, 336, 337, 0, 339, 340,
2551 0, 0, 0, 0, 343, 344, 0, 0, 0, 0,
2552 0, -518, -518, -518, -518, -518, -518, -518, -518, -518,
2553 -518, -518, -518, -518, 0, 0, -518, -518, -518, -518,
2554 0, -518, -518, 0, 0, 0, 0, 0, -518, 346,
2555 347, 348, 349, 350, 351, 352, 353, 354, 355, 0,
2556 0, 0, -518, 0, 0, -518, 0, 0, -518, -518,
2557 -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
2558 -518, 0, 0, 0, 0, 0, -518, -518, -518, -521,
2559 0, -518, -518, -518, 0, -518, -518, -521, -521, -521,
2560 0, 0, -521, -521, -521, 0, -521, 0, 0, 0,
2561 0, 0, 0, 0, -521, 0, -521, -521, -521, 0,
2562 0, 0, 0, 0, 0, 0, -521, -521, 0, -521,
2563 -521, -521, -521, -521, 0, 0, 0, 330, 331, 332,
2564 333, 334, 335, 336, 0, 0, 339, 340, 0, 0,
2565 0, 0, 343, 344, 0, 0, 0, 0, 0, -521,
2566 -521, -521, -521, -521, -521, -521, -521, -521, -521, -521,
2567 -521, -521, 0, 0, -521, -521, -521, -521, 0, -521,
2568 -521, 0, 0, 0, 0, 0, -521, 346, 347, 348,
2569 349, 350, 351, 352, 353, 354, 355, 0, 0, 0,
2570 -521, 0, 0, -521, 0, 0, -521, -521, -521, -521,
2571 -521, -521, -521, -521, -521, -521, -521, -521, -521, 0,
2572 0, 0, 0, 0, -521, -521, -521, -621, 0, -521,
2573 -521, -521, 0, -521, -521, -621, -621, -621, 0, 0,
2574 -621, -621, -621, 0, -621, 0, 0, 0, 0, 0,
2575 0, 0, 0, -621, -621, -621, -621, 0, 0, 0,
2576 0, 0, 0, 0, -621, -621, 0, -621, -621, -621,
2577 -621, -621, 0, 0, 0, 0, 0, 0, 0, 0,
2578 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2579 0, 0, 0, 0, 0, 0, 0, -621, -621, -621,
2580 -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
2581 0, 0, -621, -621, -621, -621, 0, 0, -621, 0,
2582 0, 0, 0, 0, -621, 0, 0, 0, 0, 0,
2583 0, 0, 0, 0, 0, 0, 0, 0, -621, 0,
2584 0, -621, 0, 0, 0, -621, -621, -621, -621, -621,
2585 -621, -621, -621, -621, -621, -621, -621, 0, 0, 0,
2586 0, -621, -621, -621, -621, -622, 0, -621, -621, -621,
2587 0, -621, -621, -622, -622, -622, 0, 0, -622, -622,
2588 -622, 0, -622, 0, 0, 0, 0, 0, 0, 0,
2589 0, -622, -622, -622, -622, 0, 0, 0, 0, 0,
2590 0, 0, -622, -622, 0, -622, -622, -622, -622, -622,
2591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2593 0, 0, 0, 0, 0, -622, -622, -622, -622, -622,
2594 -622, -622, -622, -622, -622, -622, -622, -622, 0, 0,
2595 -622, -622, -622, -622, 0, 0, -622, 0, 0, 0,
2596 0, 0, -622, 0, 0, 0, 0, 0, 0, 0,
2597 0, 0, 0, 0, 0, 0, -622, 0, 0, -622,
2598 0, 0, 0, -622, -622, -622, -622, -622, -622, -622,
2599 -622, -622, -622, -622, -622, 0, 0, 0, 0, -622,
2600 -622, -622, -622, -296, 0, -622, -622, -622, 0, -622,
2601 -622, -296, -296, -296, 0, 0, -296, -296, -296, 0,
2602 -296, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2603 -296, -296, -296, 0, 0, 0, 0, 0, 0, 0,
2604 -296, -296, 0, -296, -296, -296, -296, -296, 0, 0,
2605 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2606 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2607 0, 0, 0, -296, -296, -296, -296, -296, -296, -296,
2608 -296, -296, -296, -296, -296, -296, 0, 0, -296, -296,
2609 -296, -296, 0, 766, -296, 0, 0, 0, 0, 0,
2610 -296, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2611 0, 0, 0, 0, -296, 0, 0, -296, 0, 0,
2612 -109, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2613 -296, -296, -296, 0, 0, 0, 0, 0, -296, -296,
2614 -296, -435, 0, -296, -296, -296, 0, -296, -296, -435,
2615 -435, -435, 0, 0, -435, -435, -435, 0, -435, 0,
2616 0, 0, 0, 0, 0, 0, 0, -435, -435, -435,
2617 0, 0, 0, 0, 0, 0, 0, 0, -435, -435,
2618 0, -435, -435, -435, -435, -435, 0, 0, 0, 0,
2619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2621 0, -435, -435, -435, -435, -435, -435, -435, -435, -435,
2622 -435, -435, -435, -435, 0, 0, -435, -435, -435, -435,
2623 0, 0, -435, 0, 0, 0, 0, 0, -435, 0,
2624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2625 0, 0, -435, 0, 0, 0, 0, 0, 0, -435,
2626 0, -435, -435, -435, -435, -435, -435, -435, -435, -435,
2627 -435, 0, 0, 0, 0, -435, -435, -435, -435, -287,
2628 231, -435, -435, -435, 0, -435, -435, -287, -287, -287,
2629 0, 0, -287, -287, -287, 0, -287, 0, 0, 0,
2630 0, 0, 0, 0, 0, 0, -287, -287, -287, 0,
2631 0, 0, 0, 0, 0, 0, -287, -287, 0, -287,
2632 -287, -287, -287, -287, 0, 0, 0, 0, 0, 0,
2633 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2634 0, 0, 0, 0, 0, 0, 0, 0, 0, -287,
2635 -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
2636 -287, -287, 0, 0, -287, -287, -287, -287, 0, 0,
2637 -287, 0, 0, 0, 0, 0, -287, 0, 0, 0,
2638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2639 -287, 0, 0, -287, 0, 0, 0, -287, -287, -287,
2640 -287, -287, -287, -287, -287, -287, -287, -287, -287, 0,
2641 0, 0, 0, 0, -287, -287, -287, -425, 0, -287,
2642 -287, -287, 0, -287, -287, -425, -425, -425, 0, 0,
2643 -425, -425, -425, 0, -425, 0, 0, 0, 0, 0,
2644 0, 0, 0, -425, -425, -425, 0, 0, 0, 0,
2645 0, 0, 0, 0, -425, -425, 0, -425, -425, -425,
2646 -425, -425, 0, 0, 0, 0, 0, 0, 0, 0,
2647 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2648 0, 0, 0, 0, 0, 0, 0, -425, -425, -425,
2649 -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
2650 0, 0, -425, -425, -425, -425, 0, 0, -425, 0,
2651 0, 0, 0, 0, -425, 0, 0, 0, 0, 0,
2652 0, 0, 0, 0, 0, 0, 0, 0, -425, 0,
2653 0, 0, 0, 0, 0, -425, 0, -425, -425, -425,
2654 -425, -425, -425, -425, -425, -425, -425, 0, 0, 0,
2655 0, -425, -425, -425, -425, -303, -425, -425, -425, -425,
2656 0, -425, -425, -303, -303, -303, 0, 0, -303, -303,
2657 -303, 0, -303, 0, 0, 0, 0, 0, 0, 0,
2658 0, 0, -303, -303, 0, 0, 0, 0, 0, 0,
2659 0, 0, -303, -303, 0, -303, -303, -303, -303, -303,
2660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2662 0, 0, 0, 0, 0, -303, -303, -303, -303, -303,
2663 -303, -303, -303, -303, -303, -303, -303, -303, 0, 0,
2664 -303, -303, -303, -303, 0, 0, -303, 0, 0, 0,
2665 0, 0, -303, 0, 0, 0, 0, 0, 0, 0,
2666 0, 0, 0, 0, 0, 0, -303, 0, 0, 0,
2667 0, 0, 0, -303, 0, -303, -303, -303, -303, -303,
2668 -303, -303, -303, -303, -303, 0, 0, 0, 0, 0,
2669 -303, -303, -303, -620, 228, -303, -303, -303, 0, -303,
2670 -303, -620, -620, -620, 0, 0, 0, -620, -620, 0,
2671 -620, 0, 0, 0, 0, 0, 0, 0, 0, -620,
2672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2673 -620, -620, 0, -620, -620, -620, -620, -620, 0, 0,
2674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2676 0, 0, 0, -620, -620, -620, -620, -620, -620, -620,
2677 -620, -620, -620, -620, -620, -620, 0, 0, -620, -620,
2678 -620, -620, 0, 713, 0, 0, 0, 0, 0, 0,
2679 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2680 0, 0, 0, 0, -620, 0, 0, 0, 0, 0,
2681 -107, -620, 0, -620, -620, -620, -620, -620, -620, -620,
2682 -620, -620, -620, 0, 0, 0, 0, -620, -620, -620,
2683 -98, -620, 0, -620, 0, -620, 0, -620, -620, -620,
2684 -620, -620, 0, 0, 0, -620, -620, 0, -620, 0,
2685 0, 0, 0, 0, 0, 0, 0, -620, 0, 0,
2686 0, 0, 0, 0, 0, 0, 0, 0, -620, -620,
2687 0, -620, -620, -620, -620, -620, 0, 0, 0, 0,
2688 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2689 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2690 0, -620, -620, -620, -620, -620, -620, -620, -620, -620,
2691 -620, -620, -620, -620, 0, 0, -620, -620, -620, -620,
2692 0, 713, 0, 0, 0, 0, 0, 0, 0, 0,
2693 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2694 0, 0, -620, 0, 0, 0, 0, 0, -107, -620,
2695 0, -620, -620, -620, -620, -620, -620, -620, -620, -620,
2696 -620, 0, 0, 0, 0, -620, -620, -620, -620, -296,
2697 0, -620, 0, -620, 0, -620, -620, -296, -296, -296,
2698 0, 0, 0, -296, -296, 0, -296, 0, 0, 0,
2699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2700 0, 0, 0, 0, 0, 0, -296, -296, 0, -296,
2701 -296, -296, -296, -296, 0, 0, 0, 0, 0, 0,
2702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2703 0, 0, 0, 0, 0, 0, 0, 0, 0, -296,
2704 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2705 -296, -296, 0, 0, -296, -296, -296, -296, 0, 714,
2706 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2708 -296, 0, 0, 0, 0, 0, -109, -296, 0, -296,
2709 -296, -296, -296, -296, -296, -296, -296, -296, -296, 0,
2710 0, 0, 0, 0, -296, -296, -100, -296, 0, -296,
2711 0, -296, 0, -296, -296, -296, -296, -296, 0, 0,
2712 0, -296, -296, 0, -296, 0, 0, 0, 0, 0,
2713 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2714 0, 0, 0, 0, -296, -296, 0, -296, -296, -296,
2715 -296, -296, 0, 0, 0, 0, 0, 0, 0, 0,
2716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2717 0, 0, 0, 0, 0, 0, 0, -296, -296, -296,
2718 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2719 0, 0, -296, -296, -296, -296, 0, 714, 0, 0,
2720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2721 0, 0, 0, 0, 0, 0, 0, 0, -296, 0,
2722 0, 0, 0, 0, -109, -296, 0, -296, -296, -296,
2723 -296, -296, -296, -296, -296, -296, -296, 0, 0, 0,
2724 0, 0, -296, -296, -296, 0, 0, -296, 0, -296,
2725 0, -296, -296, 252, 0, 5, 6, 7, 8, 9,
2726 -642, -642, -642, 10, 11, 0, 0, -642, 12, 0,
2727 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2728 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2729 0, 27, 0, 0, 0, 0, 0, 28, 29, 253,
2730 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2731 0, 41, 42, 43, 44, 0, 45, 46, 47, 0,
2732 48, 49, 0, 0, 0, 0, 0, 0, 0, 0,
2733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2734 0, 50, 0, 0, 51, 52, 0, 53, 54, 0,
2735 55, 0, 0, 56, 57, 58, 59, 60, 61, 62,
2736 63, 64, 0, 0, 0, 0, 0, 0, 0, 0,
2737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2738 0, 0, 65, 66, 67, 0, 0, 0, 0, 0,
2739 0, 0, 0, 0, -642, 0, 252, -642, 5, 6,
2740 7, 8, 9, 0, 0, -642, 10, 11, 0, -642,
2741 -642, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2742 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
2743 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2744 28, 29, 253, 31, 32, 33, 34, 35, 36, 37,
2745 38, 39, 40, 0, 41, 42, 43, 44, 0, 45,
2746 46, 47, 0, 48, 49, 0, 0, 0, 0, 0,
2747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2748 0, 0, 0, 0, 50, 0, 0, 51, 52, 0,
2749 53, 54, 0, 55, 0, 0, 56, 57, 58, 59,
2750 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
2751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2752 0, 0, 0, 0, 0, 65, 66, 67, 0, 0,
2753 0, 0, 0, 0, 0, 0, 0, -642, 0, 252,
2754 -642, 5, 6, 7, 8, 9, 0, 0, -642, 10,
2755 11, 0, 0, -642, 12, -642, 13, 14, 15, 16,
2756 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2757 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2758 0, 0, 0, 28, 29, 253, 31, 32, 33, 34,
2759 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
2760 44, 0, 45, 46, 47, 0, 48, 49, 0, 0,
2761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2762 0, 0, 0, 0, 0, 0, 0, 50, 0, 0,
2763 51, 52, 0, 53, 54, 0, 55, 0, 0, 56,
2764 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
2765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2766 0, 0, 0, 0, 0, 0, 0, 0, 65, 66,
2767 67, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2768 -642, 0, 252, -642, 5, 6, 7, 8, 9, 0,
2769 0, -642, 10, 11, 0, 0, -642, 12, 0, 13,
2770 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2771 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2772 27, 0, 0, 0, 0, 0, 28, 29, 253, 31,
2773 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2774 41, 42, 43, 44, 0, 45, 46, 47, 0, 48,
2775 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2777 50, 0, 0, 51, 52, 0, 53, 54, 0, 55,
2778 0, 0, 56, 57, 58, 59, 60, 61, 62, 63,
2779 64, 0, 0, 0, 0, 0, 0, 0, 0, 252,
2780 0, 5, 6, 7, 8, 9, 0, -642, -642, 10,
2781 11, 65, 66, 67, 12, 0, 13, 14, 15, 16,
2782 17, 18, 19, -642, 0, 0, -642, 0, 20, 21,
2783 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2784 0, 0, 0, 28, 29, 253, 31, 32, 33, 34,
2785 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
2786 44, 0, 45, 46, 47, 0, 48, 49, 0, 0,
2787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2788 0, 0, 0, 0, 0, 0, 0, 50, 0, 0,
2789 51, 52, 0, 53, 54, 0, 55, 0, 0, 56,
2790 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
2791 0, 0, 0, 0, 0, 0, 252, 0, 5, 6,
2792 7, 8, 9, 0, 0, 0, 10, 11, 65, 66,
2793 67, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2794 -642, 0, 0, -642, 0, 20, 21, 22, 23, 24,
2795 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2796 28, 29, 253, 31, 32, 33, 34, 35, 36, 37,
2797 38, 39, 40, 0, 41, 42, 43, 44, 0, 45,
2798 46, 47, 0, 48, 49, 0, 0, 0, 0, 0,
2799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2800 0, 0, 0, 0, 50, 0, 0, 254, 52, 0,
2801 53, 54, 0, 55, 0, 0, 56, 57, 58, 59,
2802 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
2803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2804 0, 0, 0, 0, 0, 65, 66, 67, 252, 0,
2805 5, 6, 7, 8, 9, -642, 0, -642, 10, 11,
2806 -642, 0, 0, 12, 0, 13, 14, 15, 16, 17,
2807 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2808 23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
2809 0, 0, 28, 29, 253, 31, 32, 33, 34, 35,
2810 36, 37, 38, 39, 40, 0, 41, 42, 43, 44,
2811 0, 45, 46, 47, 0, 48, 49, 0, 0, 0,
2812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2813 0, 0, 0, 0, 0, 0, 50, 0, 0, 51,
2814 52, 0, 53, 54, 0, 55, 0, 0, 56, 57,
2815 58, 59, 60, 61, 62, 63, 64, 0, 0, 0,
2816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2817 0, 0, 0, 0, 0, 0, 0, 65, 66, 67,
2818 252, 0, 5, 6, 7, 8, 9, -642, 0, -642,
2819 10, 11, -642, 0, 0, 12, 0, 13, 14, 15,
2820 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2821 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2822 0, 0, 0, 0, 28, 29, 253, 31, 32, 33,
2823 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2824 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
2825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2826 0, 0, 0, 0, 0, 0, 0, 0, 50, 0,
2827 0, 51, 52, 0, 53, 54, 0, 55, 0, 0,
2828 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
2829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2830 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,
2831 66, 67, 0, 0, -642, 0, 0, 0, 0, 0,
2832 0, -642, 0, 4, -642, 5, 6, 7, 8, 9,
2833 0, 0, 0, 10, 11, 0, 0, 0, 12, 0,
2834 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2835 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2836 0, 27, 0, 0, 0, 0, 0, 28, 29, 30,
2837 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2838 0, 41, 42, 43, 44, 0, 45, 46, 47, 0,
2839 48, 49, 0, 0, 0, 0, 0, 0, 0, 0,
2840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2841 0, 50, 0, 0, 51, 52, 0, 53, 54, 0,
2842 55, 0, 0, 56, 57, 58, 59, 60, 61, 62,
2843 63, 64, 0, 0, 0, 0, 0, 0, 0, 0,
2844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2845 0, 0, 65, 66, 67, 0, 0, -642, 0, 0,
2846 0, 0, 0, 0, -642, 0, 252, -642, 5, 6,
2847 7, 8, 9, 0, 0, -642, 10, 11, 0, 0,
2848 0, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2849 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
2850 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2851 28, 29, 253, 31, 32, 33, 34, 35, 36, 37,
2852 38, 39, 40, 0, 41, 42, 43, 44, 0, 45,
2853 46, 47, 0, 48, 49, 0, 0, 0, 0, 0,
2854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2855 0, 0, 0, 0, 50, 0, 0, 51, 52, 0,
2856 53, 54, 0, 55, 0, 0, 56, 57, 58, 59,
2857 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
2858 0, 0, 0, 252, 0, 5, 6, 7, 8, 9,
2859 0, 0, 0, 10, 11, 65, 66, 67, 12, 0,
2860 13, 14, 15, 16, 17, 18, 19, -642, 0, 0,
2861 -642, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2862 0, 27, 0, 0, 0, 0, 0, 28, 29, 253,
2863 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2864 0, 41, 42, 43, 44, 0, 45, 46, 47, 0,
2865 48, 49, 0, 0, 0, 0, 0, 0, 0, 0,
2866 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2867 0, 50, 0, 0, 51, 52, 0, 53, 54, 0,
2868 55, 0, 0, 56, 57, 58, 59, 60, 61, 62,
2869 63, 64, 0, -642, 0, 0, 0, 0, 0, 0,
2870 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2871 10, 11, 65, 66, 67, 12, 0, 13, 14, 15,
2872 16, 17, 18, 19, -642, 0, 0, -642, 0, 20,
2873 21, 22, 23, 24, 25, 26, 0, 0, 203, 0,
2874 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2875 34, 35, 36, 37, 38, 39, 40, 204, 41, 42,
2876 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
2877 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2878 0, 0, 0, 0, 0, 0, 0, 0, 205, 0,
2879 0, 206, 52, 0, 53, 54, 0, 207, 208, 209,
2880 56, 57, 210, 59, 60, 61, 62, 63, 64, 0,
2881 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2882 6, 7, 0, 9, 0, 0, 0, 10, 11, 65,
2883 211, 67, 12, 0, 13, 14, 15, 16, 17, 18,
2884 19, 0, 0, 0, 235, 0, 20, 21, 22, 23,
2885 24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
2886 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2887 37, 38, 39, 40, 0, 41, 42, 43, 44, 0,
2888 45, 46, 47, 0, 48, 49, 0, 0, 0, 0,
2889 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2890 0, 0, 0, 0, 0, 205, 0, 0, 206, 52,
2891 0, 53, 54, 0, 0, 0, 0, 56, 57, 58,
2892 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
2893 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
2894 9, 0, 0, 0, 10, 11, 65, 66, 67, 12,
2895 0, 13, 14, 15, 16, 17, 18, 19, 305, 0,
2896 0, 306, 0, 20, 21, 22, 23, 24, 25, 26,
2897 0, 0, 27, 0, 0, 0, 0, 0, 0, 29,
2898 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2899 40, 0, 41, 42, 43, 44, 0, 45, 46, 47,
2900 0, 48, 49, 0, 0, 0, 0, 0, 0, 0,
2901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2902 0, 0, 205, 0, 0, 206, 52, 0, 53, 54,
2903 0, 0, 0, 0, 56, 57, 58, 59, 60, 61,
2904 62, 63, 64, 0, 0, 0, 0, 0, 0, 0,
2905 0, 0, 0, 5, 6, 7, 8, 9, 0, 0,
2906 0, 10, 11, 65, 66, 67, 12, 0, 13, 14,
2907 15, 16, 17, 18, 19, 0, 0, 0, 235, 0,
2908 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
2909 0, 0, 0, 0, 0, 28, 29, 30, 31, 32,
2910 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2911 42, 43, 44, 0, 45, 46, 47, 0, 48, 49,
2912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2913 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,
2914 0, 0, 51, 52, 0, 53, 54, 0, 55, 0,
2915 0, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2917 5, 6, 7, 8, 9, 0, 0, 0, 10, 11,
2918 65, 66, 67, 12, 0, 13, 14, 15, 16, 17,
2919 18, 19, 502, 0, 0, 0, 0, 20, 21, 22,
2920 23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
2921 0, 0, 28, 29, 253, 31, 32, 33, 34, 35,
2922 36, 37, 38, 39, 40, 0, 41, 42, 43, 44,
2923 0, 45, 46, 47, 0, 48, 49, 0, 0, 0,
2924 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2925 0, 0, 0, 0, 0, 0, 50, 0, 0, 51,
2926 52, 0, 53, 54, 0, 55, 0, 0, 56, 57,
2927 58, 59, 60, 61, 62, 63, 64, 0, 0, 0,
2928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2929 0, 0, 0, 0, 0, 0, 0, 65, 66, 67,
2930 0, 0, 0, 0, 0, 0, 0, 0, 0, 502,
2931 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2932 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2933 141, 142, 143, 144, 0, 0, 0, 145, 146, 147,
2934 389, 390, 391, 392, 152, 153, 154, 0, 0, 0,
2935 0, 0, 155, 156, 157, 158, 393, 394, 395, 396,
2936 163, 37, 38, 397, 40, 0, 0, 0, 0, 0,
2937 0, 0, 0, 0, 0, 165, 166, 167, 168, 169,
2938 170, 171, 172, 173, 0, 0, 174, 175, 0, 0,
2939 176, 177, 178, 179, 0, 0, 0, 0, 0, 0,
2940 0, 0, 0, 0, 0, 180, 181, 0, 0, 0,
2941 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2942 0, 0, 0, 0, 0, 0, 0, 182, 183, 184,
2943 185, 186, 187, 188, 189, 190, 191, 0, 192, 193,
2944 0, 0, 0, 0, 0, 194, 398, 121, 122, 123,
2945 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2946 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2947 144, 0, 0, 0, 145, 146, 147, 148, 149, 150,
2948 151, 152, 153, 154, 0, 0, 0, 0, 0, 155,
2949 156, 157, 158, 159, 160, 161, 162, 163, 284, 285,
2950 164, 286, 0, 0, 0, 0, 0, 0, 0, 0,
2951 0, 0, 165, 166, 167, 168, 169, 170, 171, 172,
2952 173, 0, 0, 174, 175, 0, 0, 176, 177, 178,
2953 179, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2954 0, 0, 180, 181, 0, 0, 0, 0, 0, 0,
2955 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2956 0, 0, 0, 0, 182, 183, 184, 185, 186, 187,
2957 188, 189, 190, 191, 0, 192, 193, 0, 0, 0,
2958 0, 0, 194, 121, 122, 123, 124, 125, 126, 127,
2959 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2960 138, 139, 140, 141, 142, 143, 144, 0, 0, 0,
2961 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2962 0, 0, 0, 0, 0, 155, 156, 157, 158, 159,
2963 160, 161, 162, 163, 237, 0, 164, 0, 0, 0,
2964 0, 0, 0, 0, 0, 0, 0, 0, 165, 166,
2965 167, 168, 169, 170, 171, 172, 173, 0, 0, 174,
2966 175, 0, 0, 176, 177, 178, 179, 0, 0, 0,
2967 0, 0, 0, 0, 0, 0, 0, 0, 180, 181,
2968 0, 0, 57, 0, 0, 0, 0, 0, 0, 0,
2969 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2970 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
2971 0, 192, 193, 0, 0, 0, 0, 0, 194, 121,
2972 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2973 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2974 142, 143, 144, 0, 0, 0, 145, 146, 147, 148,
2975 149, 150, 151, 152, 153, 154, 0, 0, 0, 0,
2976 0, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2977 0, 0, 164, 0, 0, 0, 0, 0, 0, 0,
2978 0, 0, 0, 0, 165, 166, 167, 168, 169, 170,
2979 171, 172, 173, 0, 0, 174, 175, 0, 0, 176,
2980 177, 178, 179, 0, 0, 0, 0, 0, 0, 0,
2981 0, 0, 0, 0, 180, 181, 0, 0, 57, 0,
2982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2983 0, 0, 0, 0, 0, 0, 182, 183, 184, 185,
2984 186, 187, 188, 189, 190, 191, 0, 192, 193, 0,
2985 0, 0, 0, 0, 194, 121, 122, 123, 124, 125,
2986 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2987 136, 137, 138, 139, 140, 141, 142, 143, 144, 0,
2988 0, 0, 145, 146, 147, 148, 149, 150, 151, 152,
2989 153, 154, 0, 0, 0, 0, 0, 155, 156, 157,
2990 158, 159, 160, 161, 162, 163, 0, 0, 164, 0,
2991 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2992 165, 166, 167, 168, 169, 170, 171, 172, 173, 0,
2993 0, 174, 175, 0, 0, 176, 177, 178, 179, 0,
2994 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2995 180, 181, 0, 0, 0, 0, 0, 0, 0, 0,
2996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2997 0, 0, 182, 183, 184, 185, 186, 187, 188, 189,
2998 190, 191, 0, 192, 193, 5, 6, 7, 0, 9,
2999 194, 0, 0, 10, 11, 0, 0, 0, 12, 0,
3000 13, 14, 15, 242, 243, 18, 19, 0, 0, 0,
3001 0, 0, 244, 245, 246, 23, 24, 25, 26, 0,
3002 0, 203, 0, 0, 0, 0, 0, 0, 272, 0,
3003 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3004 0, 41, 42, 43, 44, 0, 45, 46, 47, 0,
3005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3006 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3007 0, 273, 0, 0, 206, 52, 0, 53, 54, 0,
3008 0, 0, 0, 56, 57, 58, 59, 60, 61, 62,
3009 63, 64, 0, 0, 0, 0, 0, 0, 0, 0,
3010 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
3011 0, 0, 274, 10, 11, 0, 0, 0, 12, 275,
3012 13, 14, 15, 242, 243, 18, 19, 0, 0, 0,
3013 0, 0, 244, 245, 246, 23, 24, 25, 26, 0,
3014 0, 203, 0, 0, 0, 0, 0, 0, 272, 0,
3015 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3016 0, 41, 42, 43, 44, 0, 45, 46, 47, 0,
3017 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3018 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3019 0, 273, 0, 0, 206, 52, 0, 53, 54, 0,
3020 0, 0, 0, 56, 57, 58, 59, 60, 61, 62,
3021 63, 64, 0, 0, 0, 0, 0, 0, 0, 0,
3022 0, 0, 0, 0, 0, 5, 6, 7, 8, 9,
3023 0, 0, 274, 10, 11, 0, 0, 0, 12, 523,
3024 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
3025 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
3026 0, 27, 0, 0, 0, 0, 0, 28, 29, 30,
3027 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3028 0, 41, 42, 43, 44, 0, 45, 46, 47, 0,
3029 48, 49, 0, 0, 0, 0, 0, 0, 0, 0,
3030 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3031 0, 50, 0, 0, 51, 52, 0, 53, 54, 0,
3032 55, 0, 0, 56, 57, 58, 59, 60, 61, 62,
3033 63, 64, 0, 0, 0, 0, 0, 0, 0, 0,
3034 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
3035 10, 11, 65, 66, 67, 12, 0, 13, 14, 15,
3036 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
3037 21, 22, 23, 24, 25, 26, 0, 0, 203, 0,
3038 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
3039 34, 35, 36, 37, 38, 39, 40, 204, 41, 42,
3040 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
3041 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3042 0, 0, 0, 0, 0, 0, 0, 0, 205, 0,
3043 0, 206, 52, 0, 53, 54, 0, 207, 208, 209,
3044 56, 57, 210, 59, 60, 61, 62, 63, 64, 0,
3045 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
3046 6, 7, 8, 9, 0, 0, 0, 10, 11, 65,
3047 211, 67, 12, 0, 13, 14, 15, 16, 17, 18,
3048 19, 0, 0, 0, 0, 0, 20, 21, 22, 23,
3049 24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
3050 0, 28, 29, 0, 31, 32, 33, 34, 35, 36,
3051 37, 38, 39, 40, 0, 41, 42, 43, 44, 0,
3052 45, 46, 47, 0, 48, 49, 0, 0, 0, 0,
3053 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3054 0, 0, 0, 0, 0, 50, 0, 0, 51, 52,
3055 0, 53, 54, 0, 55, 0, 0, 56, 57, 58,
3056 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
3057 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
3058 9, 0, 0, 0, 10, 11, 65, 66, 67, 12,
3059 0, 13, 14, 15, 242, 243, 18, 19, 0, 0,
3060 0, 0, 0, 244, 245, 246, 23, 24, 25, 26,
3061 0, 0, 203, 0, 0, 0, 0, 0, 0, 29,
3062 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
3063 40, 204, 41, 42, 43, 44, 0, 45, 46, 47,
3064 0, 48, 49, 0, 0, 0, 0, 0, 0, 0,
3065 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3066 0, 0, 205, 0, 0, 206, 52, 0, 53, 54,
3067 0, 618, 208, 209, 56, 57, 210, 59, 60, 61,
3068 62, 63, 64, 0, 0, 0, 0, 0, 0, 0,
3069 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
3070 0, 10, 11, 65, 211, 67, 12, 0, 13, 14,
3071 15, 242, 243, 18, 19, 0, 0, 0, 0, 0,
3072 244, 245, 246, 23, 24, 25, 26, 0, 0, 203,
3073 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
3074 33, 34, 35, 36, 37, 38, 39, 40, 204, 41,
3075 42, 43, 44, 0, 45, 46, 47, 0, 48, 49,
3076 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3077 0, 0, 0, 0, 0, 0, 0, 0, 0, 205,
3078 0, 0, 206, 52, 0, 53, 54, 0, 207, 208,
3079 0, 56, 57, 210, 59, 60, 61, 62, 63, 64,
3080 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3081 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
3082 65, 211, 67, 12, 0, 13, 14, 15, 242, 243,
3083 18, 19, 0, 0, 0, 0, 0, 244, 245, 246,
3084 23, 24, 25, 26, 0, 0, 203, 0, 0, 0,
3085 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
3086 36, 37, 38, 39, 40, 204, 41, 42, 43, 44,
3087 0, 45, 46, 47, 0, 48, 49, 0, 0, 0,
3088 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3089 0, 0, 0, 0, 0, 0, 205, 0, 0, 206,
3090 52, 0, 53, 54, 0, 0, 208, 209, 56, 57,
3091 210, 59, 60, 61, 62, 63, 64, 0, 0, 0,
3092 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
3093 0, 9, 0, 0, 0, 10, 11, 65, 211, 67,
3094 12, 0, 13, 14, 15, 242, 243, 18, 19, 0,
3095 0, 0, 0, 0, 244, 245, 246, 23, 24, 25,
3096 26, 0, 0, 203, 0, 0, 0, 0, 0, 0,
3097 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
3098 39, 40, 204, 41, 42, 43, 44, 0, 45, 46,
3099 47, 0, 48, 49, 0, 0, 0, 0, 0, 0,
3100 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3101 0, 0, 0, 205, 0, 0, 206, 52, 0, 53,
3102 54, 0, 618, 208, 0, 56, 57, 210, 59, 60,
3103 61, 62, 63, 64, 0, 0, 0, 0, 0, 0,
3104 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
3105 0, 0, 10, 11, 65, 211, 67, 12, 0, 13,
3106 14, 15, 242, 243, 18, 19, 0, 0, 0, 0,
3107 0, 244, 245, 246, 23, 24, 25, 26, 0, 0,
3108 203, 0, 0, 0, 0, 0, 0, 29, 0, 0,
3109 32, 33, 34, 35, 36, 37, 38, 39, 40, 204,
3110 41, 42, 43, 44, 0, 45, 46, 47, 0, 48,
3111 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3112 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3113 205, 0, 0, 206, 52, 0, 53, 54, 0, 0,
3114 208, 0, 56, 57, 210, 59, 60, 61, 62, 63,
3115 64, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3116 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
3117 11, 65, 211, 67, 12, 0, 13, 14, 15, 16,
3118 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
3119 22, 23, 24, 25, 26, 0, 0, 203, 0, 0,
3120 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
3121 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
3122 44, 0, 45, 46, 47, 0, 48, 49, 0, 0,
3123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3124 0, 0, 0, 0, 0, 0, 0, 205, 0, 0,
3125 206, 52, 0, 53, 54, 0, 516, 0, 0, 56,
3126 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
3127 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
3128 7, 0, 9, 0, 0, 0, 10, 11, 65, 211,
3129 67, 12, 0, 13, 14, 15, 242, 243, 18, 19,
3130 0, 0, 0, 0, 0, 244, 245, 246, 23, 24,
3131 25, 26, 0, 0, 203, 0, 0, 0, 0, 0,
3132 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
3133 38, 39, 40, 0, 41, 42, 43, 44, 0, 45,
3134 46, 47, 0, 48, 49, 0, 0, 0, 0, 0,
3135 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3136 0, 0, 0, 0, 205, 0, 0, 206, 52, 0,
3137 53, 54, 0, 207, 0, 0, 56, 57, 58, 59,
3138 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
3139 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
3140 0, 0, 0, 10, 11, 65, 211, 67, 12, 0,
3141 13, 14, 15, 242, 243, 18, 19, 0, 0, 0,
3142 0, 0, 244, 245, 246, 23, 24, 25, 26, 0,
3143 0, 203, 0, 0, 0, 0, 0, 0, 29, 0,
3144 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3145 0, 41, 42, 43, 44, 0, 45, 46, 47, 0,
3146 48, 49, 0, 0, 0, 0, 0, 0, 0, 0,
3147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3148 0, 205, 0, 0, 206, 52, 0, 53, 54, 0,
3149 814, 0, 0, 56, 57, 58, 59, 60, 61, 62,
3150 63, 64, 0, 0, 0, 0, 0, 0, 0, 0,
3151 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
3152 10, 11, 65, 211, 67, 12, 0, 13, 14, 15,
3153 242, 243, 18, 19, 0, 0, 0, 0, 0, 244,
3154 245, 246, 23, 24, 25, 26, 0, 0, 203, 0,
3155 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
3156 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
3157 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
3158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3159 0, 0, 0, 0, 0, 0, 0, 0, 205, 0,
3160 0, 206, 52, 0, 53, 54, 0, 516, 0, 0,
3161 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
3162 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
3163 6, 7, 0, 9, 0, 0, 0, 10, 11, 65,
3164 211, 67, 12, 0, 13, 14, 15, 242, 243, 18,
3165 19, 0, 0, 0, 0, 0, 244, 245, 246, 23,
3166 24, 25, 26, 0, 0, 203, 0, 0, 0, 0,
3167 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
3168 37, 38, 39, 40, 0, 41, 42, 43, 44, 0,
3169 45, 46, 47, 0, 48, 49, 0, 0, 0, 0,
3170 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3171 0, 0, 0, 0, 0, 205, 0, 0, 206, 52,
3172 0, 53, 54, 0, 618, 0, 0, 56, 57, 58,
3173 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
3174 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
3175 9, 0, 0, 0, 10, 11, 65, 211, 67, 12,
3176 0, 13, 14, 15, 242, 243, 18, 19, 0, 0,
3177 0, 0, 0, 244, 245, 246, 23, 24, 25, 26,
3178 0, 0, 203, 0, 0, 0, 0, 0, 0, 29,
3179 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
3180 40, 0, 41, 42, 43, 44, 0, 45, 46, 47,
3181 0, 48, 49, 0, 0, 0, 0, 0, 0, 0,
3182 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3183 0, 0, 205, 0, 0, 206, 52, 0, 53, 54,
3184 0, 0, 0, 0, 56, 57, 58, 59, 60, 61,
3185 62, 63, 64, 0, 0, 0, 0, 0, 0, 0,
3186 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
3187 0, 10, 11, 65, 211, 67, 12, 0, 13, 14,
3188 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
3189 20, 21, 22, 23, 24, 25, 26, 0, 0, 203,
3190 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
3191 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
3192 42, 43, 44, 0, 45, 46, 47, 0, 48, 49,
3193 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3194 0, 0, 0, 0, 0, 0, 0, 0, 0, 205,
3195 0, 0, 206, 52, 0, 53, 54, 0, 0, 0,
3196 0, 56, 57, 58, 59, 60, 61, 62, 63, 64,
3197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3198 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
3199 65, 211, 67, 12, 0, 13, 14, 15, 16, 17,
3200 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
3201 23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
3202 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
3203 36, 37, 38, 39, 40, 0, 41, 42, 43, 44,
3204 0, 45, 46, 47, 0, 48, 49, 0, 0, 0,
3205 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3206 0, 0, 0, 0, 0, 0, 205, 0, 0, 206,
3207 52, 0, 53, 54, 0, 0, 0, 0, 56, 57,
3208 58, 59, 60, 61, 62, 63, 64, 0, 0, 0,
3209 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
3210 0, 9, 0, 0, 0, 10, 11, 65, 66, 67,
3211 12, 0, 13, 14, 15, 242, 243, 18, 19, 0,
3212 0, 0, 0, 0, 244, 245, 246, 23, 24, 25,
3213 26, 0, 0, 203, 0, 0, 0, 0, 0, 0,
3214 272, 0, 0, 32, 33, 34, 35, 36, 37, 38,
3215 39, 40, 0, 41, 42, 43, 44, 0, 45, 46,
3216 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3217 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3218 0, 0, 0, 273, 0, 0, 326, 52, 0, 53,
3219 54, 0, 327, 0, 0, 56, 57, 58, 59, 60,
3220 61, 62, 63, 64, 0, 0, 0, 0, 0, 0,
3221 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
3222 0, 0, 0, 12, 274, 13, 14, 15, 242, 243,
3223 18, 19, 0, 0, 0, 0, 0, 244, 245, 246,
3224 23, 24, 25, 26, 0, 0, 203, 0, 0, 0,
3225 0, 0, 0, 272, 0, 0, 32, 33, 34, 35,
3226 36, 37, 38, 39, 40, 0, 41, 42, 43, 44,
3227 0, 45, 46, 47, 0, 0, 0, 0, 0, 0,
3228 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3229 0, 0, 0, 0, 0, 0, 370, 0, 0, 51,
3230 52, 0, 53, 54, 0, 55, 0, 0, 56, 57,
3231 58, 59, 60, 61, 62, 63, 64, 0, 0, 0,
3232 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
3233 0, 10, 11, 0, 0, 0, 12, 274, 13, 14,
3234 15, 242, 243, 18, 19, 0, 0, 0, 0, 0,
3235 244, 245, 246, 23, 24, 25, 26, 0, 0, 203,
3236 0, 0, 0, 0, 0, 0, 272, 0, 0, 32,
3237 33, 34, 378, 36, 37, 38, 379, 40, 0, 41,
3238 42, 43, 44, 0, 45, 46, 47, 0, 0, 0,
3239 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3240 0, 0, 0, 0, 0, 380, 0, 0, 0, 381,
3241 0, 0, 206, 52, 0, 53, 54, 0, 0, 0,
3242 0, 56, 57, 58, 59, 60, 61, 62, 63, 64,
3243 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
3244 9, 0, 0, 0, 10, 11, 0, 0, 0, 12,
3245 274, 13, 14, 15, 242, 243, 18, 19, 0, 0,
3246 0, 0, 0, 244, 245, 246, 23, 24, 25, 26,
3247 0, 0, 203, 0, 0, 0, 0, 0, 0, 272,
3248 0, 0, 32, 33, 34, 378, 36, 37, 38, 379,
3249 40, 0, 41, 42, 43, 44, 0, 45, 46, 47,
3250 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3251 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3252 0, 0, 381, 0, 0, 206, 52, 0, 53, 54,
3253 0, 0, 0, 0, 56, 57, 58, 59, 60, 61,
3254 62, 63, 64, 0, 0, 0, 0, 0, 0, 5,
3255 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
3256 0, 0, 12, 274, 13, 14, 15, 242, 243, 18,
3257 19, 0, 0, 0, 0, 0, 244, 245, 246, 23,
3258 24, 25, 26, 0, 0, 203, 0, 0, 0, 0,
3259 0, 0, 272, 0, 0, 32, 33, 34, 35, 36,
3260 37, 38, 39, 40, 0, 41, 42, 43, 44, 0,
3261 45, 46, 47, 0, 0, 0, 0, 0, 0, 0,
3262 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3263 0, 0, 0, 0, 0, 273, 0, 0, 326, 52,
3264 0, 53, 54, 0, 0, 0, 0, 56, 57, 58,
3265 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
3266 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
3267 10, 11, 0, 0, 0, 12, 274, 13, 14, 15,
3268 242, 243, 18, 19, 0, 0, 0, 0, 0, 244,
3269 245, 246, 23, 24, 25, 26, 0, 0, 203, 0,
3270 0, 0, 0, 0, 0, 272, 0, 0, 32, 33,
3271 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
3272 43, 44, 0, 45, 46, 47, 0, 0, 0, 0,
3273 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3274 0, 0, 0, 0, 0, 0, 0, 0, 965, 0,
3275 0, 206, 52, 0, 53, 54, 0, 0, 0, 0,
3276 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
3277 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
3278 0, 0, 0, 10, 11, 0, 0, 0, 12, 274,
3279 13, 14, 15, 242, 243, 18, 19, 0, 0, 0,
3280 0, 0, 244, 245, 246, 23, 24, 25, 26, 0,
3281 0, 203, 0, 0, 0, 0, 0, 0, 272, 0,
3282 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3283 0, 41, 42, 43, 44, 0, 45, 46, 47, 0,
3284 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3286 0, 1005, 0, 0, 206, 52, 0, 53, 54, 0,
3287 0, 0, 0, 56, 57, 58, 59, 60, 61, 62,
3288 63, 64, 0, 0, 0, 0, 0, 622, 563, 0,
3289 0, 623, 0, 0, 0, 0, 0, 0, 0, 0,
3290 0, 0, 274, 165, 166, 167, 168, 169, 170, 171,
3291 172, 173, 0, 0, 174, 175, 0, 0, 176, 177,
3292 178, 179, 0, 0, 0, 0, 0, 0, 0, 0,
3293 0, 0, 0, 180, 181, 0, 0, 0, 0, 0,
3294 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3295 0, 0, 0, 0, 0, 182, 183, 184, 185, 186,
3296 187, 188, 189, 190, 191, 0, 192, 193, 625, 571,
3297 0, 0, 626, 194, 0, 0, 0, 0, 0, 0,
3298 0, 0, 0, 0, 165, 166, 167, 168, 169, 170,
3299 171, 172, 173, 0, 0, 174, 175, 0, 0, 176,
3300 177, 178, 179, 0, 0, 0, 0, 0, 0, 0,
3301 0, 0, 0, 0, 180, 181, 0, 0, 0, 0,
3302 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3303 0, 0, 0, 0, 0, 0, 182, 183, 184, 185,
3304 186, 187, 188, 189, 190, 191, 0, 192, 193, 649,
3305 563, 0, 0, 650, 194, 0, 0, 0, 0, 0,
3306 0, 0, 0, 0, 0, 165, 166, 167, 168, 169,
3307 170, 171, 172, 173, 0, 0, 174, 175, 0, 0,
3308 176, 177, 178, 179, 0, 0, 0, 0, 0, 0,
3309 0, 0, 0, 0, 0, 180, 181, 0, 0, 0,
3310 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3311 0, 0, 0, 0, 0, 0, 0, 182, 183, 184,
3312 185, 186, 187, 188, 189, 190, 191, 0, 192, 193,
3313 652, 571, 0, 0, 653, 194, 0, 0, 0, 0,
3314 0, 0, 0, 0, 0, 0, 165, 166, 167, 168,
3315 169, 170, 171, 172, 173, 0, 0, 174, 175, 0,
3316 0, 176, 177, 178, 179, 0, 0, 0, 0, 0,
3317 0, 0, 0, 0, 0, 0, 180, 181, 0, 0,
3318 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3319 0, 0, 0, 0, 0, 0, 0, 0, 182, 183,
3320 184, 185, 186, 187, 188, 189, 190, 191, 0, 192,
3321 193, 740, 563, 0, 0, 741, 194, 0, 0, 0,
3322 0, 0, 0, 0, 0, 0, 0, 165, 166, 167,
3323 168, 169, 170, 171, 172, 173, 0, 0, 174, 175,
3324 0, 0, 176, 177, 178, 179, 0, 0, 0, 0,
3325 0, 0, 0, 0, 0, 0, 0, 180, 181, 0,
3326 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3327 0, 0, 0, 0, 0, 0, 0, 0, 0, 182,
3328 183, 184, 185, 186, 187, 188, 189, 190, 191, 0,
3329 192, 193, 743, 571, 0, 0, 744, 194, 0, 0,
3330 0, 0, 0, 0, 0, 0, 0, 0, 165, 166,
3331 167, 168, 169, 170, 171, 172, 173, 0, 0, 174,
3332 175, 0, 0, 176, 177, 178, 179, 0, 0, 0,
3333 0, 0, 0, 0, 0, 0, 0, 0, 180, 181,
3334 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3335 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3336 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
3337 0, 192, 193, 749, 563, 0, 0, 750, 194, 0,
3338 0, 0, 0, 0, 0, 0, 0, 0, 0, 165,
3339 166, 167, 168, 169, 170, 171, 172, 173, 0, 0,
3340 174, 175, 0, 0, 176, 177, 178, 179, 0, 0,
3341 0, 0, 0, 0, 0, 0, 0, 0, 0, 180,
3342 181, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3344 0, 182, 183, 184, 185, 186, 187, 188, 189, 190,
3345 191, 0, 192, 193, 819, 563, 0, 0, 820, 194,
3346 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3347 165, 166, 167, 168, 169, 170, 171, 172, 173, 0,
3348 0, 174, 175, 0, 0, 176, 177, 178, 179, 0,
3349 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3350 180, 181, 0, 0, 0, 0, 0, 0, 0, 0,
3351 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3352 0, 0, 182, 183, 184, 185, 186, 187, 188, 189,
3353 190, 191, 0, 192, 193, 822, 571, 0, 0, 823,
3354 194, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3355 0, 165, 166, 167, 168, 169, 170, 171, 172, 173,
3356 0, 0, 174, 175, 0, 0, 176, 177, 178, 179,
3357 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3358 0, 180, 181, 0, 0, 0, 0, 0, 0, 0,
3359 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3360 0, 0, 0, 182, 183, 184, 185, 186, 187, 188,
3361 189, 190, 191, 0, 192, 193, 1047, 563, 0, 0,
3362 1048, 194, 0, 0, 0, 0, 0, 0, 0, 0,
3363 0, 0, 165, 166, 167, 168, 169, 170, 171, 172,
3364 173, 0, 0, 174, 175, 0, 0, 176, 177, 178,
3365 179, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3366 0, 0, 180, 181, 0, 0, 0, 0, 0, 0,
3367 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3368 0, 0, 0, 0, 182, 183, 184, 185, 186, 187,
3369 188, 189, 190, 191, 0, 192, 193, 1050, 571, 0,
3370 0, 1051, 194, 0, 0, 0, 0, 0, 0, 0,
3371 0, 0, 0, 165, 166, 167, 168, 169, 170, 171,
3372 172, 173, 0, 0, 174, 175, 0, 0, 176, 177,
3373 178, 179, 0, 0, 0, 0, 0, 0, 0, 0,
3374 0, 0, 0, 180, 181, 0, 0, 0, 0, 0,
3375 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3376 0, 0, 0, 0, 0, 182, 183, 184, 185, 186,
3377 187, 188, 189, 190, 191, 0, 192, 193, 1064, 563,
3378 0, 0, 1065, 194, 0, 0, 0, 0, 0, 0,
3379 0, 0, 0, 0, 165, 166, 167, 168, 169, 170,
3380 171, 172, 173, 0, 0, 174, 175, 0, 0, 176,
3381 177, 178, 179, 0, 0, 0, 0, 0, 0, 0,
3382 0, 0, 0, 0, 180, 181, 0, 0, 0, 0,
3383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3384 0, 0, 0, 0, 0, 0, 182, 183, 184, 185,
3385 186, 187, 188, 189, 190, 191, 0, 192, 193, 0,
3389 #define yypact_value_is_default(yystate) \ 3390 ((yystate) == (-876)) 3392 #define yytable_value_is_error(yytable_value) \ 3393 ((yytable_value) == (-643)) 3397 2, 57, 27, 86, 29, 69, 98, 66, 364, 22,
3398 81, 16, 17, 8, 97, 20, 28, 418, 584, 4,
3399 477, 329, 8, 16, 17, 426, 358, 20, 92, 55,
3400 473, 89, 426, 28, 92, 65, 8, 583, 357, 796,
3401 96, 360, 28, 787, 266, 2, 55, 4, 270, 76,
3402 92, 53, 54, 51, 69, 81, 28, 874, 601, 2,
3403 53, 4, 57, 76, 446, 224, 787, 93, 94, 95,
3404 464, 51, 728, 16, 17, 796, 732, 20, 26, 381,
3405 523, 667, 407, 408, 876, 404, 37, 38, 935, 624,
3406 422, 25, 254, 26, 29, 13, 0, 25, 680, 87,
3407 88, 96, 421, 63, 423, 16, 17, 13, 51, 20,
3408 63, 78, 55, 88, 931, 88, 651, 88, 88, 13,
3409 329, 16, 17, 66, 716, 20, 137, 88, 25, 13,
3410 449, 723, 87, 88, 145, 1010, 219, 140, 81, 87,
3411 88, 90, 145, 475, 145, 88, 89, 896, 477, 92,
3412 93, 94, 95, 113, 25, 122, 144, 476, 53, 54,
3413 113, 25, 37, 38, 326, 13, 249, 26, 117, 144,
3414 987, 144, 25, 144, 144, 896, 88, 1024, 88, 114,
3415 25, 136, 939, 144, 13, 1060, 134, 25, 136, 144,
3416 25, 139, 256, 985, 145, 278, 144, 13, 407, 408,
3417 944, 134, 951, 137, 275, 748, 1023, 742, 206, 137,
3418 667, 139, 13, 137, 256, 134, 218, 752, 939, 137,
3419 247, 145, 224, 228, 142, 230, 231, 145, 56, 231,
3420 631, 632, 144, 139, 144, 228, 142, 230, 632, 145,
3421 137, 256, 139, 241, 274, 139, 661, 272, 142, 275,
3422 54, 145, 310, 311, 312, 313, 254, 589, 142, 1003,
3423 642, 145, 705, 206, 920, 324, 137, 599, 88, 89,
3424 329, 590, 92, 137, 254, 134, 435, 863, 13, 865,
3425 139, 600, 1003, 27, 137, 228, 821, 230, 231, 1010,
3426 373, 234, 137, 236, 142, 252, 598, 145, 241, 137,
3427 90, 327, 137, 367, 88, 887, 263, 365, 366, 252,
3428 856, 254, 234, 142, 857, 90, 145, 228, 327, 230,
3429 263, 864, 137, 1067, 309, 367, 142, 117, 326, 145,
3430 145, 324, 275, 228, 13, 230, 329, 259, 667, 1060,
3431 262, 142, 117, 290, 145, 292, 326, 294, 407, 408,
3432 63, 298, 309, 358, 920, 13, 358, 314, 90, 15,
3433 144, 17, 137, 778, 779, 360, 309, 310, 311, 312,
3434 313, 314, 315, 316, 139, 957, 958, 143, 710, 88,
3435 145, 324, 738, 326, 327, 117, 329, 88, 713, 714,
3436 709, 117, 711, 87, 88, 720, 721, 110, 142, 112,
3437 204, 145, 473, 207, 208, 209, 863, 142, 865, 404,
3438 145, 137, 90, 90, 234, 358, 236, 422, 361, 727,
3439 422, 143, 365, 366, 646, 87, 88, 143, 423, 90,
3440 143, 443, 434, 435, 28, 144, 25, 380, 143, 117,
3441 117, 984, 136, 144, 446, 139, 117, 473, 443, 25,
3442 144, 534, 523, 63, 449, 137, 117, 443, 787, 874,
3443 1042, 876, 621, 142, 407, 408, 145, 796, 415, 870,
3444 475, 443, 90, 475, 136, 142, 870, 100, 145, 422,
3445 117, 476, 144, 103, 142, 90, 25, 145, 63, 446,
3446 310, 311, 312, 313, 90, 315, 316, 523, 707, 117,
3447 110, 124, 112, 446, 713, 714, 428, 832, 87, 88,
3448 432, 720, 721, 456, 1049, 437, 931, 932, 582, 583,
3449 324, 117, 90, 418, 137, 329, 551, 139, 117, 56,
3450 473, 453, 475, 143, 863, 110, 865, 112, 113, 566,
3451 115, 117, 91, 490, 569, 365, 366, 574, 137, 117,
3452 497, 140, 908, 25, 567, 63, 145, 136, 914, 67,
3453 380, 137, 575, 139, 140, 144, 461, 896, 63, 145,
3454 985, 117, 987, 407, 408, 577, 647, 54, 117, 137,
3455 523, 579, 609, 581, 589, 14, 15, 589, 65, 66,
3456 424, 425, 585, 90, 599, 590, 609, 599, 137, 624,
3457 522, 140, 110, 615, 112, 600, 145, 609, 1023, 137,
3458 939, 770, 70, 417, 418, 110, 450, 112, 113, 621,
3459 615, 647, 426, 832, 960, 961, 651, 139, 52, 615,
3460 54, 55, 56, 57, 705, 52, 579, 896, 581, 56,
3461 642, 134, 70, 615, 140, 117, 589, 52, 707, 54,
3462 55, 56, 57, 90, 713, 714, 599, 461, 601, 602,
3463 464, 720, 721, 139, 90, 137, 758, 117, 140, 127,
3464 128, 129, 139, 145, 1003, 141, 678, 56, 680, 705,
3465 117, 1010, 746, 135, 1016, 642, 137, 745, 90, 747,
3466 717, 117, 635, 87, 88, 113, 70, 724, 1017, 642,
3467 756, 1037, 1038, 113, 647, 710, 113, 1043, 710, 1045,
3468 1046, 137, 516, 137, 113, 117, 711, 742, 137, 90,
3469 790, 97, 724, 645, 794, 727, 728, 752, 730, 142,
3470 732, 1060, 137, 90, 727, 137, 631, 63, 1074, 1075,
3471 1076, 1077, 136, 17, 1003, 586, 117, 1083, 1007, 706,
3472 144, 1010, 90, 1012, 56, 121, 26, 58, 25, 784,
3473 117, 756, 705, 706, 707, 140, 137, 710, 770, 70,
3474 713, 714, 137, 832, 137, 63, 135, 720, 721, 117,
3475 137, 585, 602, 134, 110, 137, 112, 113, 846, 87,
3476 88, 137, 856, 682, 858, 684, 821, 137, 99, 100,
3477 143, 1060, 745, 1062, 747, 748, 143, 809, 1067, 811,
3478 1069, 44, 616, 137, 618, 635, 137, 87, 88, 2,
3479 1079, 4, 110, 124, 112, 113, 896, 631, 632, 139,
3480 90, 90, 754, 16, 17, 70, 117, 20, 136, 841,
3481 10, 8, 844, 135, 13, 843, 144, 137, 117, 771,
3482 85, 86, 850, 851, 137, 52, 854, 117, 117, 137,
3483 782, 137, 52, 927, 134, 137, 136, 52, 51, 139,
3484 10, 896, 676, 135, 144, 10, 137, 137, 137, 713,
3485 714, 907, 119, 66, 967, 887, 720, 721, 70, 832,
3486 125, 126, 127, 128, 129, 141, 737, 15, 702, 897,
3487 843, 139, 900, 846, 70, 88, 89, 850, 851, 92,
3488 137, 854, 753, 911, 857, 135, 137, 135, 920, 85,
3489 86, 864, 137, 727, 26, 745, 951, 747, 91, 955,
3490 9, 765, 766, 1003, 768, 769, 137, 1007, 936, 937,
3491 1010, 140, 1012, 125, 126, 127, 128, 129, 142, 137,
3492 137, 873, 117, 137, 897, 957, 958, 900, 124, 125,
3493 126, 127, 128, 129, 907, 990, 137, 122, 911, 137,
3494 87, 88, 790, 971, 796, 973, 1002, 799, 137, 137,
3495 137, 979, 786, 137, 137, 87, 88, 56, 137, 135,
3496 1060, 122, 1062, 936, 937, 884, 885, 1067, 832, 1069,
3497 889, 999, 891, 925, 893, 137, 847, 56, 849, 1079,
3498 814, 1016, 955, 111, 1016, 137, 1018, 1019, 859, 136,
3499 139, 137, 1017, 206, 1049, 137, 846, 144, 971, 137,
3500 973, 456, 134, 139, 136, 869, 979, 139, 137, 70,
3501 1042, 984, 144, 93, 95, 228, 896, 230, 231, 853,
3502 724, 234, 811, 236, 85, 86, 999, 1019, 241, 1002,
3503 778, 87, 88, 87, 88, 1024, 870, 759, 699, 252,
3504 515, 254, 1018, 1016, 896, 298, 917, 918, 896, 101,
3505 263, 922, 210, 59, 96, 926, 928, 87, 88, 1003,
3506 790, 122, 123, 124, 125, 126, 127, 128, 129, 87,
3507 88, 87, 88, 787, 87, 88, 995, 996, 997, 998,
3508 136, 1007, 136, -1, 87, 88, -1, 939, 144, 941,
3509 144, -1, -1, -1, 946, -1, 309, 310, 311, 312,
3510 313, 314, 315, 316, -1, -1, 136, -1, 87, 88,
3511 -1, 324, -1, 326, 144, -1, 329, -1, 136, -1,
3512 136, -1, 993, 136, -1, -1, 144, -1, 144, -1,
3513 -1, 144, -1, 136, -1, -1, 16, 17, -1, 1058,
3514 20, 144, 63, -1, -1, 358, -1, -1, 361, 1020,
3515 1021, -1, 365, 366, -1, 1003, -1, 136, 1010, 1007,
3516 1012, -1, 1010, -1, 1012, 144, -1, 380, 48, 49,
3517 -1, -1, -1, 53, 54, -1, -1, 1029, 52, -1,
3518 54, 55, 56, 57, 58, 63, 66, 67, -1, 110,
3519 -1, 112, 113, -1, 407, 408, 70, 52, -1, 54,
3520 55, 56, 57, 58, -1, -1, -1, -1, 1060, 422,
3521 1062, -1, 1060, -1, 1062, 70, -1, 1069, 92, 1067,
3522 -1, 1069, -1, -1, 98, 99, 100, 1079, -1, -1,
3523 -1, 1079, 110, 446, 112, 113, 52, 92, 54, 55,
3524 56, 57, -1, 456, 99, 100, -1, -1, 54, 55,
3525 124, 57, 52, 127, 54, 55, 56, 57, 0, 65,
3526 66, -1, 475, -1, -1, 139, 8, 9, 10, 124,
3527 -1, 13, 14, 15, -1, 17, 92, -1, 44, -1,
3528 -1, -1, 98, -1, 26, 27, 40, 41, 42, 43,
3529 44, 2, 92, 4, -1, 37, 38, -1, 40, 41,
3530 42, 43, 44, -1, 70, 71, 72, 73, 74, 75,
3531 76, 77, 78, 79, 80, 81, 82, -1, -1, 85,
3532 86, -1, -1, -1, 204, -1, -1, 207, 208, 209,
3533 -1, 211, 52, -1, 54, 55, 56, 57, -1, -1,
3534 51, -1, -1, -1, 55, 87, 88, -1, 228, -1,
3535 230, 231, 118, -1, 120, 121, 122, 123, 124, 125,
3536 126, 127, 128, 129, -1, -1, 579, -1, 581, 111,
3537 81, 137, 92, -1, -1, -1, 589, -1, 98, -1,
3538 -1, -1, 93, 94, 95, -1, 599, -1, 601, 602,
3539 -1, -1, 134, 135, -1, -1, -1, 139, 140, -1,
3540 142, -1, 144, 145, 52, 44, 54, 55, 56, 57,
3541 59, 60, 61, 62, -1, -1, -1, -1, -1, -1,
3542 -1, -1, 635, -1, -1, -1, -1, -1, -1, 642,
3543 -1, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3544 79, 80, 81, 82, 324, -1, 85, 86, -1, 329,
3545 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
3546 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
3547 350, 351, 352, 353, 354, 355, -1, -1, 358, 118,
3548 -1, 120, 121, 122, 123, 124, 125, 126, 127, 128,
3549 129, -1, -1, 706, 707, 206, -1, 710, -1, -1,
3550 713, 714, -1, -1, -1, -1, -1, 720, 721, -1,
3551 -1, 52, -1, 54, 55, 56, 57, 58, -1, -1,
3552 -1, -1, -1, -1, -1, -1, -1, 407, 408, 70,
3553 241, -1, 745, -1, 747, 748, 416, 417, 418, -1,
3554 -1, 252, 422, 254, 424, 425, 426, -1, -1, -1,
3555 -1, 92, 263, -1, -1, -1, -1, 98, 99, 100,
3556 -1, -1, -1, -1, 275, 445, -1, -1, -1, -1,
3557 450, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3558 -1, 461, -1, 124, 464, -1, 127, -1, -1, -1,
3559 -1, -1, -1, -1, -1, 475, -1, -1, 309, -1,
3560 -1, -1, -1, 314, 145, -1, 52, -1, 54, 55,
3561 56, 57, 58, -1, -1, 326, 327, -1, 329, 832,
3562 -1, 501, -1, -1, 70, -1, -1, -1, -1, -1,
3563 843, -1, -1, 846, -1, -1, 516, 850, 851, -1,
3564 -1, 854, -1, -1, 857, -1, 92, -1, -1, -1,
3565 361, 864, 98, 99, 100, 2, -1, 4, -1, -1,
3566 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3567 -1, -1, -1, -1, -1, -1, -1, -1, 124, -1,
3568 -1, 127, -1, -1, 897, -1, -1, 900, -1, -1,
3569 -1, -1, -1, -1, -1, -1, 407, 408, 911, -1,
3570 -1, -1, -1, -1, 51, 585, -1, -1, 55, 589,
3571 -1, -1, -1, -1, -1, -1, -1, -1, -1, 599,
3572 -1, -1, -1, 936, 937, -1, -1, -1, -1, -1,
3573 -1, -1, -1, -1, 81, 446, 616, -1, 618, -1,
3574 -1, -1, -1, -1, -1, 456, 93, 94, 95, 96,
3575 -1, 631, 632, -1, -1, -1, -1, -1, 971, -1,
3576 973, -1, 473, -1, -1, -1, 979, -1, -1, -1,
3577 -1, 984, -1, -1, -1, -1, -1, -1, -1, -1,
3578 -1, -1, -1, -1, -1, -1, 999, -1, -1, -1,
3579 -1, -1, -1, -1, -1, -1, 676, -1, -1, -1,
3580 -1, -1, -1, 1016, -1, -1, -1, -1, -1, -1,
3581 -1, -1, 523, -1, -1, -1, -1, -1, -1, -1,
3582 -1, -1, 702, -1, -1, -1, -1, 707, 708, -1,
3583 710, -1, -1, 713, 714, -1, -1, -1, -1, -1,
3584 720, 721, -1, -1, -1, -1, -1, 727, -1, -1,
3585 -1, -1, -1, -1, -1, -1, -1, -1, -1, 206,
3586 -1, -1, -1, -1, -1, -1, -1, -1, 579, -1,
3587 581, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3588 -1, -1, -1, -1, -1, 765, 766, -1, 768, 769,
3589 601, -1, -1, -1, 241, -1, -1, -1, -1, -1,
3590 -1, -1, -1, -1, -1, 252, 786, 254, -1, -1,
3591 -1, -1, -1, -1, -1, -1, 263, -1, -1, -1,
3592 -1, -1, -1, -1, -1, -1, -1, -1, 275, -1,
3593 -1, 642, -1, -1, 814, -1, 647, -1, -1, -1,
3594 -1, -1, -1, -1, 824, -1, -1, -1, -1, -1,
3595 -1, -1, 832, -1, -1, -1, -1, -1, -1, -1,
3596 -1, -1, 309, -1, -1, -1, -1, 314, -1, 2,
3597 -1, 4, -1, 853, -1, -1, -1, 688, -1, 326,
3598 327, -1, -1, -1, -1, -1, -1, -1, -1, 869,
3599 870, -1, -1, -1, 705, 706, 707, -1, -1, -1,
3600 -1, -1, 713, 714, -1, -1, -1, 52, 53, 720,
3601 721, 56, -1, -1, 361, -1, -1, -1, 51, -1,
3602 -1, -1, 55, 68, 69, 70, 71, 72, 73, 74,
3603 75, 76, -1, -1, 79, 80, -1, 748, 83, 84,
3604 85, 86, -1, -1, -1, -1, -1, -1, 81, -1,
3605 -1, -1, -1, 98, 99, -1, -1, -1, -1, -1,
3606 93, 94, 95, 96, -1, 2, -1, 4, -1, -1,
3607 -1, -1, -1, -1, -1, 120, 121, 122, 123, 124,
3608 125, 126, 127, 128, 129, -1, 131, 132, -1, -1,
3609 -1, -1, -1, 138, -1, -1, -1, -1, -1, 446,
3610 -1, -1, -1, -1, -1, -1, -1, -1, -1, 456,
3611 -1, -1, -1, -1, 51, -1, -1, -1, -1, -1,
3612 -1, 832, -1, 2, -1, 4, 473, -1, -1, -1,
3613 -1, -1, 843, -1, -1, -1, 1016, -1, -1, 850,
3614 851, -1, -1, 854, -1, -1, 857, -1, -1, -1,
3615 -1, -1, -1, 864, -1, -1, 93, -1, -1, 70,
3616 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3617 81, 82, 51, 206, 85, 86, 523, -1, -1, -1,
3618 -1, -1, -1, -1, -1, -1, 897, -1, -1, 900,
3619 -1, -1, -1, -1, -1, -1, 907, -1, -1, -1,
3620 911, -1, -1, -1, -1, -1, -1, 118, 241, 120,
3621 121, 122, 123, 124, 125, 126, 127, 128, 129, 252,
3622 -1, 254, -1, -1, -1, 936, 937, -1, -1, -1,
3623 263, -1, 579, -1, 581, -1, -1, -1, -1, -1,
3624 -1, -1, 275, -1, 955, -1, -1, -1, -1, -1,
3625 -1, -1, -1, -1, 601, -1, -1, -1, -1, -1,
3626 971, -1, 973, -1, -1, -1, -1, -1, 979, 206,
3627 -1, -1, -1, 984, -1, -1, 309, -1, -1, -1,
3628 -1, 314, -1, -1, -1, -1, -1, -1, 999, -1,
3629 -1, 1002, -1, 326, 327, 642, -1, -1, -1, -1,
3630 647, -1, -1, -1, 241, -1, -1, -1, -1, -1,
3631 -1, -1, -1, -1, -1, 252, -1, 254, -1, -1,
3632 -1, -1, -1, -1, -1, -1, 263, 206, 361, -1,
3633 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3634 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3635 -1, -1, -1, -1, -1, -1, -1, -1, 705, 706,
3636 -1, -1, 241, -1, -1, -1, -1, -1, -1, -1,
3637 -1, -1, 309, 252, -1, 254, -1, 314, -1, -1,
3638 -1, -1, -1, -1, 263, -1, -1, 52, 53, 326,
3639 -1, 56, 329, -1, -1, -1, -1, -1, -1, -1,
3640 -1, 748, -1, 68, 69, 70, 71, 72, 73, 74,
3641 75, 76, -1, 446, 79, 80, -1, -1, 83, 84,
3642 85, 86, -1, 456, 361, -1, -1, -1, -1, -1,
3643 309, -1, -1, 98, 99, 314, -1, -1, -1, -1,
3644 473, -1, -1, -1, -1, -1, -1, 326, -1, -1,
3645 329, -1, -1, -1, -1, 120, 121, 122, 123, 124,
3646 125, 126, 127, 128, 129, -1, 131, 132, -1, -1,
3647 407, 408, -1, 138, -1, -1, -1, -1, -1, -1,
3648 -1, -1, 361, 70, 71, 72, 73, 74, 75, 76,
3649 523, -1, 79, 80, -1, -1, 843, -1, 85, 86,
3650 -1, -1, -1, 850, 851, -1, -1, 854, -1, 446,
3651 857, -1, -1, -1, -1, -1, -1, 864, -1, 456,
3652 -1, -1, -1, -1, -1, -1, -1, -1, 407, 408,
3653 -1, -1, -1, 120, 121, 122, 123, 124, 125, 126,
3654 127, 128, 129, -1, -1, -1, 579, -1, 581, -1,
3655 897, -1, -1, 900, -1, -1, -1, -1, -1, -1,
3656 907, -1, -1, -1, 911, -1, -1, 446, 601, -1,
3657 -1, -1, -1, -1, -1, -1, -1, 456, -1, -1,
3658 -1, -1, -1, -1, -1, -1, -1, -1, -1, 936,
3659 937, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3660 -1, -1, -1, -1, -1, -1, -1, -1, 955, 642,
3661 -1, -1, -1, -1, 647, -1, -1, -1, -1, -1,
3662 -1, -1, -1, -1, 971, -1, 973, -1, -1, -1,
3663 -1, -1, 979, -1, -1, -1, -1, 984, -1, -1,
3664 -1, -1, 579, -1, 581, -1, -1, -1, -1, -1,
3665 -1, -1, 999, -1, -1, 1002, -1, -1, -1, -1,
3666 -1, 52, 53, -1, 601, 56, -1, -1, -1, -1,
3667 -1, -1, 705, 706, -1, -1, -1, 68, 69, 70,
3668 71, 72, 73, 74, 75, 76, -1, -1, 79, 80,
3669 -1, -1, 83, 84, 85, 86, -1, -1, -1, -1,
3670 579, -1, 581, -1, -1, 642, -1, 98, 99, -1,
3671 -1, -1, -1, -1, -1, 748, -1, -1, -1, -1,
3672 -1, -1, 601, -1, -1, -1, -1, -1, -1, 120,
3673 121, 122, 123, 124, 125, 126, 127, 128, 129, -1,
3674 131, 132, -1, -1, -1, -1, -1, 138, -1, -1,
3675 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3676 80, 81, 82, 642, -1, 85, 86, -1, -1, 706,
3677 707, -1, -1, -1, -1, -1, 713, 714, -1, -1,
3678 -1, -1, -1, 720, 721, -1, -1, -1, -1, -1,
3679 -1, -1, -1, -1, -1, -1, -1, -1, 118, -1,
3680 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
3681 843, 748, -1, -1, -1, -1, -1, 850, 851, -1,
3682 -1, 854, -1, -1, 857, 145, -1, 706, 707, -1,
3683 -1, 864, -1, -1, 713, 714, -1, -1, -1, -1,
3684 -1, 720, 721, -1, -1, -1, -1, -1, -1, -1,
3685 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3686 -1, -1, -1, -1, 897, -1, -1, 900, -1, 748,
3687 -1, -1, -1, -1, 907, -1, -1, -1, 911, -1,
3688 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3689 -1, -1, -1, -1, -1, 832, -1, -1, -1, -1,
3690 -1, -1, -1, 936, 937, -1, 843, -1, -1, -1,
3691 -1, -1, -1, 850, 851, -1, -1, 854, -1, -1,
3692 857, -1, 955, -1, -1, -1, -1, 864, -1, -1,
3693 -1, -1, -1, -1, -1, -1, -1, -1, 971, -1,
3694 973, -1, -1, -1, -1, -1, 979, -1, -1, -1,
3695 -1, 984, -1, 832, -1, -1, -1, -1, -1, -1,
3696 897, -1, -1, 900, 843, -1, 999, -1, -1, 1002,
3697 907, 850, 851, -1, 911, 854, -1, -1, 857, -1,
3698 -1, -1, -1, -1, -1, 864, -1, -1, -1, -1,
3699 -1, -1, -1, -1, -1, -1, -1, -1, -1, 936,
3700 937, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3701 -1, -1, -1, -1, -1, -1, -1, -1, 897, -1,
3702 -1, 900, -1, -1, -1, -1, -1, -1, -1, -1,
3703 -1, -1, 911, -1, 971, -1, 973, -1, -1, -1,
3704 -1, -1, 979, -1, -1, -1, -1, 984, -1, -1,
3705 -1, -1, -1, -1, -1, -1, -1, 936, 937, -1,
3706 -1, -1, 999, -1, -1, -1, -1, -1, -1, -1,
3707 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3708 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3709 -1, -1, 971, -1, 973, -1, -1, -1, -1, -1,
3710 979, -1, -1, 0, 1, 984, 3, 4, 5, 6,
3711 7, -1, -1, -1, 11, 12, -1, -1, -1, 16,
3712 999, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3713 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3714 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
3715 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3716 57, -1, 59, 60, 61, 62, -1, 64, 65, 66,
3717 -1, 68, 69, -1, -1, -1, -1, -1, -1, -1,
3718 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3719 -1, -1, 89, -1, -1, 92, 93, -1, 95, 96,
3720 -1, 98, -1, -1, 101, 102, 103, 104, 105, 106,
3721 107, 108, 109, 0, -1, -1, -1, -1, -1, -1,
3722 -1, 8, 9, 10, -1, -1, 13, 14, 15, -1,
3723 17, -1, -1, 130, 131, 132, -1, -1, -1, 26,
3724 27, 28, 29, -1, -1, 142, -1, -1, 145, -1,
3725 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3726 -1, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3727 79, 80, 81, 82, -1, -1, 85, 86, -1, -1,
3728 -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
3729 77, 78, 79, 80, 81, 82, -1, -1, 85, 86,
3730 87, 88, -1, 90, 91, -1, -1, -1, -1, -1,
3731 97, 120, 121, 122, 123, 124, 125, 126, 127, 128,
3732 129, -1, -1, -1, 111, -1, -1, 114, -1, -1,
3733 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
3734 127, 128, 129, -1, -1, -1, -1, 134, 135, 136,
3735 137, 0, -1, 140, 141, 142, -1, 144, 145, 8,
3736 9, 10, -1, -1, 13, 14, 15, -1, 17, -1,
3737 -1, -1, -1, -1, -1, -1, 25, -1, 27, 28,
3738 29, -1, -1, -1, -1, -1, -1, -1, 37, 38,
3739 -1, 40, 41, 42, 43, 44, -1, -1, -1, 70,
3740 71, 72, 73, 74, 75, 76, 77, -1, 79, 80,
3741 -1, -1, -1, -1, 85, 86, -1, -1, -1, -1,
3742 -1, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3743 79, 80, 81, 82, -1, -1, 85, 86, 87, 88,
3744 -1, 90, 91, -1, -1, -1, -1, -1, 97, 120,
3745 121, 122, 123, 124, 125, 126, 127, 128, 129, -1,
3746 -1, -1, 111, -1, -1, 114, -1, -1, 117, 118,
3747 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
3748 129, -1, -1, -1, -1, -1, 135, 136, 137, 0,
3749 -1, 140, 141, 142, -1, 144, 145, 8, 9, 10,
3750 -1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
3751 -1, -1, -1, -1, 25, -1, 27, 28, 29, -1,
3752 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3753 41, 42, 43, 44, -1, -1, -1, 70, 71, 72,
3754 73, 74, 75, 76, -1, -1, 79, 80, -1, -1,
3755 -1, -1, 85, 86, -1, -1, -1, -1, -1, 70,
3756 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3757 81, 82, -1, -1, 85, 86, 87, 88, -1, 90,
3758 91, -1, -1, -1, -1, -1, 97, 120, 121, 122,
3759 123, 124, 125, 126, 127, 128, 129, -1, -1, -1,
3760 111, -1, -1, 114, -1, -1, 117, 118, 119, 120,
3761 121, 122, 123, 124, 125, 126, 127, 128, 129, -1,
3762 -1, -1, -1, -1, 135, 136, 137, 0, -1, 140,
3763 141, 142, -1, 144, 145, 8, 9, 10, -1, -1,
3764 13, 14, 15, -1, 17, -1, -1, -1, -1, -1,
3765 -1, -1, -1, 26, 27, 28, 29, -1, -1, -1,
3766 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
3767 43, 44, -1, -1, -1, -1, -1, -1, -1, -1,
3768 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3769 -1, -1, -1, -1, -1, -1, -1, 70, 71, 72,
3770 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3771 -1, -1, 85, 86, 87, 88, -1, -1, 91, -1,
3772 -1, -1, -1, -1, 97, -1, -1, -1, -1, -1,
3773 -1, -1, -1, -1, -1, -1, -1, -1, 111, -1,
3774 -1, 114, -1, -1, -1, 118, 119, 120, 121, 122,
3775 123, 124, 125, 126, 127, 128, 129, -1, -1, -1,
3776 -1, 134, 135, 136, 137, 0, -1, 140, 141, 142,
3777 -1, 144, 145, 8, 9, 10, -1, -1, 13, 14,
3778 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3779 -1, 26, 27, 28, 29, -1, -1, -1, -1, -1,
3780 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3781 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3782 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3783 -1, -1, -1, -1, -1, 70, 71, 72, 73, 74,
3784 75, 76, 77, 78, 79, 80, 81, 82, -1, -1,
3785 85, 86, 87, 88, -1, -1, 91, -1, -1, -1,
3786 -1, -1, 97, -1, -1, -1, -1, -1, -1, -1,
3787 -1, -1, -1, -1, -1, -1, 111, -1, -1, 114,
3788 -1, -1, -1, 118, 119, 120, 121, 122, 123, 124,
3789 125, 126, 127, 128, 129, -1, -1, -1, -1, 134,
3790 135, 136, 137, 0, -1, 140, 141, 142, -1, 144,
3791 145, 8, 9, 10, -1, -1, 13, 14, 15, -1,
3792 17, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3793 27, 28, 29, -1, -1, -1, -1, -1, -1, -1,
3794 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3795 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3796 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3797 -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
3798 77, 78, 79, 80, 81, 82, -1, -1, 85, 86,
3799 87, 88, -1, 90, 91, -1, -1, -1, -1, -1,
3800 97, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3801 -1, -1, -1, -1, 111, -1, -1, 114, -1, -1,
3802 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
3803 127, 128, 129, -1, -1, -1, -1, -1, 135, 136,
3804 137, 0, -1, 140, 141, 142, -1, 144, 145, 8,
3805 9, 10, -1, -1, 13, 14, 15, -1, 17, -1,
3806 -1, -1, -1, -1, -1, -1, -1, 26, 27, 28,
3807 -1, -1, -1, -1, -1, -1, -1, -1, 37, 38,
3808 -1, 40, 41, 42, 43, 44, -1, -1, -1, -1,
3809 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3810 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3811 -1, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3812 79, 80, 81, 82, -1, -1, 85, 86, 87, 88,
3813 -1, -1, 91, -1, -1, -1, -1, -1, 97, -1,
3814 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3815 -1, -1, 111, -1, -1, -1, -1, -1, -1, 118,
3816 -1, 120, 121, 122, 123, 124, 125, 126, 127, 128,
3817 129, -1, -1, -1, -1, 134, 135, 136, 137, 0,
3818 139, 140, 141, 142, -1, 144, 145, 8, 9, 10,
3819 -1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
3820 -1, -1, -1, -1, -1, -1, 27, 28, 29, -1,
3821 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3822 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
3823 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3824 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
3825 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3826 81, 82, -1, -1, 85, 86, 87, 88, -1, -1,
3827 91, -1, -1, -1, -1, -1, 97, -1, -1, -1,
3828 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3829 111, -1, -1, 114, -1, -1, -1, 118, 119, 120,
3830 121, 122, 123, 124, 125, 126, 127, 128, 129, -1,
3831 -1, -1, -1, -1, 135, 136, 137, 0, -1, 140,
3832 141, 142, -1, 144, 145, 8, 9, 10, -1, -1,
3833 13, 14, 15, -1, 17, -1, -1, -1, -1, -1,
3834 -1, -1, -1, 26, 27, 28, -1, -1, -1, -1,
3835 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
3836 43, 44, -1, -1, -1, -1, -1, -1, -1, -1,
3837 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3838 -1, -1, -1, -1, -1, -1, -1, 70, 71, 72,
3839 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3840 -1, -1, 85, 86, 87, 88, -1, -1, 91, -1,
3841 -1, -1, -1, -1, 97, -1, -1, -1, -1, -1,
3842 -1, -1, -1, -1, -1, -1, -1, -1, 111, -1,
3843 -1, -1, -1, -1, -1, 118, -1, 120, 121, 122,
3844 123, 124, 125, 126, 127, 128, 129, -1, -1, -1,
3845 -1, 134, 135, 136, 137, 0, 139, 140, 141, 142,
3846 -1, 144, 145, 8, 9, 10, -1, -1, 13, 14,
3847 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3848 -1, -1, 27, 28, -1, -1, -1, -1, -1, -1,
3849 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3850 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3851 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3852 -1, -1, -1, -1, -1, 70, 71, 72, 73, 74,
3853 75, 76, 77, 78, 79, 80, 81, 82, -1, -1,
3854 85, 86, 87, 88, -1, -1, 91, -1, -1, -1,
3855 -1, -1, 97, -1, -1, -1, -1, -1, -1, -1,
3856 -1, -1, -1, -1, -1, -1, 111, -1, -1, -1,
3857 -1, -1, -1, 118, -1, 120, 121, 122, 123, 124,
3858 125, 126, 127, 128, 129, -1, -1, -1, -1, -1,
3859 135, 136, 137, 0, 139, 140, 141, 142, -1, 144,
3860 145, 8, 9, 10, -1, -1, -1, 14, 15, -1,
3861 17, -1, -1, -1, -1, -1, -1, -1, -1, 26,
3862 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3863 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3864 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3865 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3866 -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
3867 77, 78, 79, 80, 81, 82, -1, -1, 85, 86,
3868 87, 88, -1, 90, -1, -1, -1, -1, -1, -1,
3869 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3870 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1,
3871 117, 118, -1, 120, 121, 122, 123, 124, 125, 126,
3872 127, 128, 129, -1, -1, -1, -1, 134, 135, 136,
3873 137, 0, -1, 140, -1, 142, -1, 144, 145, 8,
3874 9, 10, -1, -1, -1, 14, 15, -1, 17, -1,
3875 -1, -1, -1, -1, -1, -1, -1, 26, -1, -1,
3876 -1, -1, -1, -1, -1, -1, -1, -1, 37, 38,
3877 -1, 40, 41, 42, 43, 44, -1, -1, -1, -1,
3878 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3879 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3880 -1, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3881 79, 80, 81, 82, -1, -1, 85, 86, 87, 88,
3882 -1, 90, -1, -1, -1, -1, -1, -1, -1, -1,
3883 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3884 -1, -1, 111, -1, -1, -1, -1, -1, 117, 118,
3885 -1, 120, 121, 122, 123, 124, 125, 126, 127, 128,
3886 129, -1, -1, -1, -1, 134, 135, 136, 137, 0,
3887 -1, 140, -1, 142, -1, 144, 145, 8, 9, 10,
3888 -1, -1, -1, 14, 15, -1, 17, -1, -1, -1,
3889 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3890 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3891 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
3892 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3893 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
3894 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3895 81, 82, -1, -1, 85, 86, 87, 88, -1, 90,
3896 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3897 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3898 111, -1, -1, -1, -1, -1, 117, 118, -1, 120,
3899 121, 122, 123, 124, 125, 126, 127, 128, 129, -1,
3900 -1, -1, -1, -1, 135, 136, 137, 0, -1, 140,
3901 -1, 142, -1, 144, 145, 8, 9, 10, -1, -1,
3902 -1, 14, 15, -1, 17, -1, -1, -1, -1, -1,
3903 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3904 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
3905 43, 44, -1, -1, -1, -1, -1, -1, -1, -1,
3906 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3907 -1, -1, -1, -1, -1, -1, -1, 70, 71, 72,
3908 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3909 -1, -1, 85, 86, 87, 88, -1, 90, -1, -1,
3910 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3911 -1, -1, -1, -1, -1, -1, -1, -1, 111, -1,
3912 -1, -1, -1, -1, 117, 118, -1, 120, 121, 122,
3913 123, 124, 125, 126, 127, 128, 129, -1, -1, -1,
3914 -1, -1, 135, 136, 137, -1, -1, 140, -1, 142,
3915 -1, 144, 145, 1, -1, 3, 4, 5, 6, 7,
3916 8, 9, 10, 11, 12, -1, -1, 15, 16, -1,
3917 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3918 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3919 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3920 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3921 -1, 59, 60, 61, 62, -1, 64, 65, 66, -1,
3922 68, 69, -1, -1, -1, -1, -1, -1, -1, -1,
3923 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3924 -1, 89, -1, -1, 92, 93, -1, 95, 96, -1,
3925 98, -1, -1, 101, 102, 103, 104, 105, 106, 107,
3926 108, 109, -1, -1, -1, -1, -1, -1, -1, -1,
3927 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3928 -1, -1, 130, 131, 132, -1, -1, -1, -1, -1,
3929 -1, -1, -1, -1, 142, -1, 1, 145, 3, 4,
3930 5, 6, 7, -1, -1, 10, 11, 12, -1, 14,
3931 15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3932 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3933 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3934 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3935 55, 56, 57, -1, 59, 60, 61, 62, -1, 64,
3936 65, 66, -1, 68, 69, -1, -1, -1, -1, -1,
3937 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3938 -1, -1, -1, -1, 89, -1, -1, 92, 93, -1,
3939 95, 96, -1, 98, -1, -1, 101, 102, 103, 104,
3940 105, 106, 107, 108, 109, -1, -1, -1, -1, -1,
3941 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3942 -1, -1, -1, -1, -1, 130, 131, 132, -1, -1,
3943 -1, -1, -1, -1, -1, -1, -1, 142, -1, 1,
3944 145, 3, 4, 5, 6, 7, -1, -1, 10, 11,
3945 12, -1, -1, 15, 16, 17, 18, 19, 20, 21,
3946 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3947 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3948 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3949 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
3950 62, -1, 64, 65, 66, -1, 68, 69, -1, -1,
3951 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3952 -1, -1, -1, -1, -1, -1, -1, 89, -1, -1,
3953 92, 93, -1, 95, 96, -1, 98, -1, -1, 101,
3954 102, 103, 104, 105, 106, 107, 108, 109, -1, -1,
3955 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3956 -1, -1, -1, -1, -1, -1, -1, -1, 130, 131,
3957 132, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3958 142, -1, 1, 145, 3, 4, 5, 6, 7, -1,
3959 -1, 10, 11, 12, -1, -1, 15, 16, -1, 18,
3960 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3961 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3962 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3963 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3964 59, 60, 61, 62, -1, 64, 65, 66, -1, 68,
3965 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3966 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3967 89, -1, -1, 92, 93, -1, 95, 96, -1, 98,
3968 -1, -1, 101, 102, 103, 104, 105, 106, 107, 108,
3969 109, -1, -1, -1, -1, -1, -1, -1, -1, 1,
3970 -1, 3, 4, 5, 6, 7, -1, 9, 10, 11,
3971 12, 130, 131, 132, 16, -1, 18, 19, 20, 21,
3972 22, 23, 24, 142, -1, -1, 145, -1, 30, 31,
3973 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3974 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3975 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
3976 62, -1, 64, 65, 66, -1, 68, 69, -1, -1,
3977 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3978 -1, -1, -1, -1, -1, -1, -1, 89, -1, -1,
3979 92, 93, -1, 95, 96, -1, 98, -1, -1, 101,
3980 102, 103, 104, 105, 106, 107, 108, 109, -1, -1,
3981 -1, -1, -1, -1, -1, -1, 1, -1, 3, 4,
3982 5, 6, 7, -1, -1, -1, 11, 12, 130, 131,
3983 132, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3984 142, -1, -1, 145, -1, 30, 31, 32, 33, 34,
3985 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3986 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3987 55, 56, 57, -1, 59, 60, 61, 62, -1, 64,
3988 65, 66, -1, 68, 69, -1, -1, -1, -1, -1,
3989 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3990 -1, -1, -1, -1, 89, -1, -1, 92, 93, -1,
3991 95, 96, -1, 98, -1, -1, 101, 102, 103, 104,
3992 105, 106, 107, 108, 109, -1, -1, -1, -1, -1,
3993 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3994 -1, -1, -1, -1, -1, 130, 131, 132, 1, -1,
3995 3, 4, 5, 6, 7, 140, -1, 142, 11, 12,
3996 145, -1, -1, 16, -1, 18, 19, 20, 21, 22,
3997 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3998 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3999 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
4000 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
4001 -1, 64, 65, 66, -1, 68, 69, -1, -1, -1,
4002 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4003 -1, -1, -1, -1, -1, -1, 89, -1, -1, 92,
4004 93, -1, 95, 96, -1, 98, -1, -1, 101, 102,
4005 103, 104, 105, 106, 107, 108, 109, -1, -1, -1,
4006 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4007 -1, -1, -1, -1, -1, -1, -1, 130, 131, 132,
4008 1, -1, 3, 4, 5, 6, 7, 140, -1, 142,
4009 11, 12, 145, -1, -1, 16, -1, 18, 19, 20,
4010 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4011 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4012 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
4013 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4014 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
4015 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4016 -1, -1, -1, -1, -1, -1, -1, -1, 89, -1,
4017 -1, 92, 93, -1, 95, 96, -1, 98, -1, -1,
4018 101, 102, 103, 104, 105, 106, 107, 108, 109, -1,
4019 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4020 -1, -1, -1, -1, -1, -1, -1, -1, -1, 130,
4021 131, 132, -1, -1, 135, -1, -1, -1, -1, -1,
4022 -1, 142, -1, 1, 145, 3, 4, 5, 6, 7,
4023 -1, -1, -1, 11, 12, -1, -1, -1, 16, -1,
4024 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4025 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4026 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
4027 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4028 -1, 59, 60, 61, 62, -1, 64, 65, 66, -1,
4029 68, 69, -1, -1, -1, -1, -1, -1, -1, -1,
4030 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4031 -1, 89, -1, -1, 92, 93, -1, 95, 96, -1,
4032 98, -1, -1, 101, 102, 103, 104, 105, 106, 107,
4033 108, 109, -1, -1, -1, -1, -1, -1, -1, -1,
4034 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4035 -1, -1, 130, 131, 132, -1, -1, 135, -1, -1,
4036 -1, -1, -1, -1, 142, -1, 1, 145, 3, 4,
4037 5, 6, 7, -1, -1, 10, 11, 12, -1, -1,
4038 -1, 16, -1, 18, 19, 20, 21, 22, 23, 24,
4039 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4040 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4041 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
4042 55, 56, 57, -1, 59, 60, 61, 62, -1, 64,
4043 65, 66, -1, 68, 69, -1, -1, -1, -1, -1,
4044 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4045 -1, -1, -1, -1, 89, -1, -1, 92, 93, -1,
4046 95, 96, -1, 98, -1, -1, 101, 102, 103, 104,
4047 105, 106, 107, 108, 109, -1, -1, -1, -1, -1,
4048 -1, -1, -1, 1, -1, 3, 4, 5, 6, 7,
4049 -1, -1, -1, 11, 12, 130, 131, 132, 16, -1,
4050 18, 19, 20, 21, 22, 23, 24, 142, -1, -1,
4051 145, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4052 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
4053 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4054 -1, 59, 60, 61, 62, -1, 64, 65, 66, -1,
4055 68, 69, -1, -1, -1, -1, -1, -1, -1, -1,
4056 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4057 -1, 89, -1, -1, 92, 93, -1, 95, 96, -1,
4058 98, -1, -1, 101, 102, 103, 104, 105, 106, 107,
4059 108, 109, -1, 111, -1, -1, -1, -1, -1, -1,
4060 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4061 11, 12, 130, 131, 132, 16, -1, 18, 19, 20,
4062 21, 22, 23, 24, 142, -1, -1, 145, -1, 30,
4063 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4064 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4065 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
4066 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
4067 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4068 -1, -1, -1, -1, -1, -1, -1, -1, 89, -1,
4069 -1, 92, 93, -1, 95, 96, -1, 98, 99, 100,
4070 101, 102, 103, 104, 105, 106, 107, 108, 109, -1,
4071 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4072 4, 5, -1, 7, -1, -1, -1, 11, 12, 130,
4073 131, 132, 16, -1, 18, 19, 20, 21, 22, 23,
4074 24, -1, -1, -1, 145, -1, 30, 31, 32, 33,
4075 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4076 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4077 54, 55, 56, 57, -1, 59, 60, 61, 62, -1,
4078 64, 65, 66, -1, 68, 69, -1, -1, -1, -1,
4079 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4080 -1, -1, -1, -1, -1, 89, -1, -1, 92, 93,
4081 -1, 95, 96, -1, -1, -1, -1, 101, 102, 103,
4082 104, 105, 106, 107, 108, 109, -1, -1, -1, -1,
4083 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
4084 7, -1, -1, -1, 11, 12, 130, 131, 132, 16,
4085 -1, 18, 19, 20, 21, 22, 23, 24, 142, -1,
4086 -1, 145, -1, 30, 31, 32, 33, 34, 35, 36,
4087 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
4088 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
4089 57, -1, 59, 60, 61, 62, -1, 64, 65, 66,
4090 -1, 68, 69, -1, -1, -1, -1, -1, -1, -1,
4091 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4092 -1, -1, 89, -1, -1, 92, 93, -1, 95, 96,
4093 -1, -1, -1, -1, 101, 102, 103, 104, 105, 106,
4094 107, 108, 109, -1, -1, -1, -1, -1, -1, -1,
4095 -1, -1, -1, 3, 4, 5, 6, 7, -1, -1,
4096 -1, 11, 12, 130, 131, 132, 16, -1, 18, 19,
4097 20, 21, 22, 23, 24, -1, -1, -1, 145, -1,
4098 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4099 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
4100 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4101 60, 61, 62, -1, 64, 65, 66, -1, 68, 69,
4102 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4103 -1, -1, -1, -1, -1, -1, -1, -1, -1, 89,
4104 -1, -1, 92, 93, -1, 95, 96, -1, 98, -1,
4105 -1, 101, 102, 103, 104, 105, 106, 107, 108, 109,
4106 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4107 3, 4, 5, 6, 7, -1, -1, -1, 11, 12,
4108 130, 131, 132, 16, -1, 18, 19, 20, 21, 22,
4109 23, 24, 142, -1, -1, -1, -1, 30, 31, 32,
4110 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4111 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
4112 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
4113 -1, 64, 65, 66, -1, 68, 69, -1, -1, -1,
4114 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4115 -1, -1, -1, -1, -1, -1, 89, -1, -1, 92,
4116 93, -1, 95, 96, -1, 98, -1, -1, 101, 102,
4117 103, 104, 105, 106, 107, 108, 109, -1, -1, -1,
4118 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4119 -1, -1, -1, -1, -1, -1, -1, 130, 131, 132,
4120 -1, -1, -1, -1, -1, -1, -1, -1, -1, 142,
4121 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
4122 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
4123 23, 24, 25, 26, -1, -1, -1, 30, 31, 32,
4124 33, 34, 35, 36, 37, 38, 39, -1, -1, -1,
4125 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
4126 53, 54, 55, 56, 57, -1, -1, -1, -1, -1,
4127 -1, -1, -1, -1, -1, 68, 69, 70, 71, 72,
4128 73, 74, 75, 76, -1, -1, 79, 80, -1, -1,
4129 83, 84, 85, 86, -1, -1, -1, -1, -1, -1,
4130 -1, -1, -1, -1, -1, 98, 99, -1, -1, -1,
4131 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4132 -1, -1, -1, -1, -1, -1, -1, 120, 121, 122,
4133 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
4134 -1, -1, -1, -1, -1, 138, 139, 3, 4, 5,
4135 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
4136 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
4137 26, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4138 36, 37, 38, 39, -1, -1, -1, -1, -1, 45,
4139 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
4140 56, 57, -1, -1, -1, -1, -1, -1, -1, -1,
4141 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
4142 76, -1, -1, 79, 80, -1, -1, 83, 84, 85,
4143 86, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4144 -1, -1, 98, 99, -1, -1, -1, -1, -1, -1,
4145 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4146 -1, -1, -1, -1, 120, 121, 122, 123, 124, 125,
4147 126, 127, 128, 129, -1, 131, 132, -1, -1, -1,
4148 -1, -1, 138, 3, 4, 5, 6, 7, 8, 9,
4149 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
4150 20, 21, 22, 23, 24, 25, 26, -1, -1, -1,
4151 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
4152 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
4153 50, 51, 52, 53, 54, -1, 56, -1, -1, -1,
4154 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
4155 70, 71, 72, 73, 74, 75, 76, -1, -1, 79,
4156 80, -1, -1, 83, 84, 85, 86, -1, -1, -1,
4157 -1, -1, -1, -1, -1, -1, -1, -1, 98, 99,
4158 -1, -1, 102, -1, -1, -1, -1, -1, -1, -1,
4159 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4160 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
4161 -1, 131, 132, -1, -1, -1, -1, -1, 138, 3,
4162 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
4163 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
4164 24, 25, 26, -1, -1, -1, 30, 31, 32, 33,
4165 34, 35, 36, 37, 38, 39, -1, -1, -1, -1,
4166 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
4167 -1, -1, 56, -1, -1, -1, -1, -1, -1, -1,
4168 -1, -1, -1, -1, 68, 69, 70, 71, 72, 73,
4169 74, 75, 76, -1, -1, 79, 80, -1, -1, 83,
4170 84, 85, 86, -1, -1, -1, -1, -1, -1, -1,
4171 -1, -1, -1, -1, 98, 99, -1, -1, 102, -1,
4172 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4173 -1, -1, -1, -1, -1, -1, 120, 121, 122, 123,
4174 124, 125, 126, 127, 128, 129, -1, 131, 132, -1,
4175 -1, -1, -1, -1, 138, 3, 4, 5, 6, 7,
4176 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
4177 18, 19, 20, 21, 22, 23, 24, 25, 26, -1,
4178 -1, -1, 30, 31, 32, 33, 34, 35, 36, 37,
4179 38, 39, -1, -1, -1, -1, -1, 45, 46, 47,
4180 48, 49, 50, 51, 52, 53, -1, -1, 56, -1,
4181 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4182 68, 69, 70, 71, 72, 73, 74, 75, 76, -1,
4183 -1, 79, 80, -1, -1, 83, 84, 85, 86, -1,
4184 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4185 98, 99, -1, -1, -1, -1, -1, -1, -1, -1,
4186 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4187 -1, -1, 120, 121, 122, 123, 124, 125, 126, 127,
4188 128, 129, -1, 131, 132, 3, 4, 5, -1, 7,
4189 138, -1, -1, 11, 12, -1, -1, -1, 16, -1,
4190 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4191 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4192 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4193 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4194 -1, 59, 60, 61, 62, -1, 64, 65, 66, -1,
4195 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4196 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4197 -1, 89, -1, -1, 92, 93, -1, 95, 96, -1,
4198 -1, -1, -1, 101, 102, 103, 104, 105, 106, 107,
4199 108, 109, -1, -1, -1, -1, -1, -1, -1, -1,
4200 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4201 -1, -1, 130, 11, 12, -1, -1, -1, 16, 137,
4202 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4203 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4204 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4205 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4206 -1, 59, 60, 61, 62, -1, 64, 65, 66, -1,
4207 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4208 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4209 -1, 89, -1, -1, 92, 93, -1, 95, 96, -1,
4210 -1, -1, -1, 101, 102, 103, 104, 105, 106, 107,
4211 108, 109, -1, -1, -1, -1, -1, -1, -1, -1,
4212 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7,
4213 -1, -1, 130, 11, 12, -1, -1, -1, 16, 137,
4214 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4215 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4216 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
4217 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4218 -1, 59, 60, 61, 62, -1, 64, 65, 66, -1,
4219 68, 69, -1, -1, -1, -1, -1, -1, -1, -1,
4220 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4221 -1, 89, -1, -1, 92, 93, -1, 95, 96, -1,
4222 98, -1, -1, 101, 102, 103, 104, 105, 106, 107,
4223 108, 109, -1, -1, -1, -1, -1, -1, -1, -1,
4224 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4225 11, 12, 130, 131, 132, 16, -1, 18, 19, 20,
4226 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4227 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4228 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4229 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
4230 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
4231 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4232 -1, -1, -1, -1, -1, -1, -1, -1, 89, -1,
4233 -1, 92, 93, -1, 95, 96, -1, 98, 99, 100,
4234 101, 102, 103, 104, 105, 106, 107, 108, 109, -1,
4235 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4236 4, 5, 6, 7, -1, -1, -1, 11, 12, 130,
4237 131, 132, 16, -1, 18, 19, 20, 21, 22, 23,
4238 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4239 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4240 -1, 45, 46, -1, 48, 49, 50, 51, 52, 53,
4241 54, 55, 56, 57, -1, 59, 60, 61, 62, -1,
4242 64, 65, 66, -1, 68, 69, -1, -1, -1, -1,
4243 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4244 -1, -1, -1, -1, -1, 89, -1, -1, 92, 93,
4245 -1, 95, 96, -1, 98, -1, -1, 101, 102, 103,
4246 104, 105, 106, 107, 108, 109, -1, -1, -1, -1,
4247 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
4248 7, -1, -1, -1, 11, 12, 130, 131, 132, 16,
4249 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4250 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4251 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
4252 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
4253 57, 58, 59, 60, 61, 62, -1, 64, 65, 66,
4254 -1, 68, 69, -1, -1, -1, -1, -1, -1, -1,
4255 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4256 -1, -1, 89, -1, -1, 92, 93, -1, 95, 96,
4257 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
4258 107, 108, 109, -1, -1, -1, -1, -1, -1, -1,
4259 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4260 -1, 11, 12, 130, 131, 132, 16, -1, 18, 19,
4261 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4262 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4263 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4264 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
4265 60, 61, 62, -1, 64, 65, 66, -1, 68, 69,
4266 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4267 -1, -1, -1, -1, -1, -1, -1, -1, -1, 89,
4268 -1, -1, 92, 93, -1, 95, 96, -1, 98, 99,
4269 -1, 101, 102, 103, 104, 105, 106, 107, 108, 109,
4270 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4271 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4272 130, 131, 132, 16, -1, 18, 19, 20, 21, 22,
4273 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4274 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4275 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4276 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
4277 -1, 64, 65, 66, -1, 68, 69, -1, -1, -1,
4278 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4279 -1, -1, -1, -1, -1, -1, 89, -1, -1, 92,
4280 93, -1, 95, 96, -1, -1, 99, 100, 101, 102,
4281 103, 104, 105, 106, 107, 108, 109, -1, -1, -1,
4282 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
4283 -1, 7, -1, -1, -1, 11, 12, 130, 131, 132,
4284 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
4285 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4286 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
4287 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
4288 56, 57, 58, 59, 60, 61, 62, -1, 64, 65,
4289 66, -1, 68, 69, -1, -1, -1, -1, -1, -1,
4290 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4291 -1, -1, -1, 89, -1, -1, 92, 93, -1, 95,
4292 96, -1, 98, 99, -1, 101, 102, 103, 104, 105,
4293 106, 107, 108, 109, -1, -1, -1, -1, -1, -1,
4294 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4295 -1, -1, 11, 12, 130, 131, 132, 16, -1, 18,
4296 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4297 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4298 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4299 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
4300 59, 60, 61, 62, -1, 64, 65, 66, -1, 68,
4301 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4302 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4303 89, -1, -1, 92, 93, -1, 95, 96, -1, -1,
4304 99, -1, 101, 102, 103, 104, 105, 106, 107, 108,
4305 109, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4306 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
4307 12, 130, 131, 132, 16, -1, 18, 19, 20, 21,
4308 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4309 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4310 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4311 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
4312 62, -1, 64, 65, 66, -1, 68, 69, -1, -1,
4313 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4314 -1, -1, -1, -1, -1, -1, -1, 89, -1, -1,
4315 92, 93, -1, 95, 96, -1, 98, -1, -1, 101,
4316 102, 103, 104, 105, 106, 107, 108, 109, -1, -1,
4317 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
4318 5, -1, 7, -1, -1, -1, 11, 12, 130, 131,
4319 132, 16, -1, 18, 19, 20, 21, 22, 23, 24,
4320 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4321 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4322 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
4323 55, 56, 57, -1, 59, 60, 61, 62, -1, 64,
4324 65, 66, -1, 68, 69, -1, -1, -1, -1, -1,
4325 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4326 -1, -1, -1, -1, 89, -1, -1, 92, 93, -1,
4327 95, 96, -1, 98, -1, -1, 101, 102, 103, 104,
4328 105, 106, 107, 108, 109, -1, -1, -1, -1, -1,
4329 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4330 -1, -1, -1, 11, 12, 130, 131, 132, 16, -1,
4331 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4332 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4333 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4334 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4335 -1, 59, 60, 61, 62, -1, 64, 65, 66, -1,
4336 68, 69, -1, -1, -1, -1, -1, -1, -1, -1,
4337 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4338 -1, 89, -1, -1, 92, 93, -1, 95, 96, -1,
4339 98, -1, -1, 101, 102, 103, 104, 105, 106, 107,
4340 108, 109, -1, -1, -1, -1, -1, -1, -1, -1,
4341 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4342 11, 12, 130, 131, 132, 16, -1, 18, 19, 20,
4343 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4344 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4345 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4346 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4347 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
4348 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4349 -1, -1, -1, -1, -1, -1, -1, -1, 89, -1,
4350 -1, 92, 93, -1, 95, 96, -1, 98, -1, -1,
4351 101, 102, 103, 104, 105, 106, 107, 108, 109, -1,
4352 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4353 4, 5, -1, 7, -1, -1, -1, 11, 12, 130,
4354 131, 132, 16, -1, 18, 19, 20, 21, 22, 23,
4355 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4356 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4357 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4358 54, 55, 56, 57, -1, 59, 60, 61, 62, -1,
4359 64, 65, 66, -1, 68, 69, -1, -1, -1, -1,
4360 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4361 -1, -1, -1, -1, -1, 89, -1, -1, 92, 93,
4362 -1, 95, 96, -1, 98, -1, -1, 101, 102, 103,
4363 104, 105, 106, 107, 108, 109, -1, -1, -1, -1,
4364 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
4365 7, -1, -1, -1, 11, 12, 130, 131, 132, 16,
4366 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4367 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4368 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
4369 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
4370 57, -1, 59, 60, 61, 62, -1, 64, 65, 66,
4371 -1, 68, 69, -1, -1, -1, -1, -1, -1, -1,
4372 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4373 -1, -1, 89, -1, -1, 92, 93, -1, 95, 96,
4374 -1, -1, -1, -1, 101, 102, 103, 104, 105, 106,
4375 107, 108, 109, -1, -1, -1, -1, -1, -1, -1,
4376 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4377 -1, 11, 12, 130, 131, 132, 16, -1, 18, 19,
4378 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4379 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4380 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4381 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4382 60, 61, 62, -1, 64, 65, 66, -1, 68, 69,
4383 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4384 -1, -1, -1, -1, -1, -1, -1, -1, -1, 89,
4385 -1, -1, 92, 93, -1, 95, 96, -1, -1, -1,
4386 -1, 101, 102, 103, 104, 105, 106, 107, 108, 109,
4387 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4388 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4389 130, 131, 132, 16, -1, 18, 19, 20, 21, 22,
4390 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4391 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4392 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4393 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
4394 -1, 64, 65, 66, -1, 68, 69, -1, -1, -1,
4395 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4396 -1, -1, -1, -1, -1, -1, 89, -1, -1, 92,
4397 93, -1, 95, 96, -1, -1, -1, -1, 101, 102,
4398 103, 104, 105, 106, 107, 108, 109, -1, -1, -1,
4399 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
4400 -1, 7, -1, -1, -1, 11, 12, 130, 131, 132,
4401 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
4402 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4403 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
4404 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
4405 56, 57, -1, 59, 60, 61, 62, -1, 64, 65,
4406 66, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4407 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4408 -1, -1, -1, 89, -1, -1, 92, 93, -1, 95,
4409 96, -1, 98, -1, -1, 101, 102, 103, 104, 105,
4410 106, 107, 108, 109, -1, -1, -1, -1, -1, -1,
4411 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4412 -1, -1, -1, 16, 130, 18, 19, 20, 21, 22,
4413 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4414 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4415 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4416 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
4417 -1, 64, 65, 66, -1, -1, -1, -1, -1, -1,
4418 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4419 -1, -1, -1, -1, -1, -1, 89, -1, -1, 92,
4420 93, -1, 95, 96, -1, 98, -1, -1, 101, 102,
4421 103, 104, 105, 106, 107, 108, 109, -1, -1, -1,
4422 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4423 -1, 11, 12, -1, -1, -1, 16, 130, 18, 19,
4424 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4425 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4426 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4427 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4428 60, 61, 62, -1, 64, 65, 66, -1, -1, -1,
4429 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4430 -1, -1, -1, -1, -1, 85, -1, -1, -1, 89,
4431 -1, -1, 92, 93, -1, 95, 96, -1, -1, -1,
4432 -1, 101, 102, 103, 104, 105, 106, 107, 108, 109,
4433 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
4434 7, -1, -1, -1, 11, 12, -1, -1, -1, 16,
4435 130, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4436 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4437 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
4438 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
4439 57, -1, 59, 60, 61, 62, -1, 64, 65, 66,
4440 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4441 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4442 -1, -1, 89, -1, -1, 92, 93, -1, 95, 96,
4443 -1, -1, -1, -1, 101, 102, 103, 104, 105, 106,
4444 107, 108, 109, -1, -1, -1, -1, -1, -1, 3,
4445 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
4446 -1, -1, 16, 130, 18, 19, 20, 21, 22, 23,
4447 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4448 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4449 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4450 54, 55, 56, 57, -1, 59, 60, 61, 62, -1,
4451 64, 65, 66, -1, -1, -1, -1, -1, -1, -1,
4452 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4453 -1, -1, -1, -1, -1, 89, -1, -1, 92, 93,
4454 -1, 95, 96, -1, -1, -1, -1, 101, 102, 103,
4455 104, 105, 106, 107, 108, 109, -1, -1, -1, -1,
4456 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4457 11, 12, -1, -1, -1, 16, 130, 18, 19, 20,
4458 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4459 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4460 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4461 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4462 61, 62, -1, 64, 65, 66, -1, -1, -1, -1,
4463 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4464 -1, -1, -1, -1, -1, -1, -1, -1, 89, -1,
4465 -1, 92, 93, -1, 95, 96, -1, -1, -1, -1,
4466 101, 102, 103, 104, 105, 106, 107, 108, 109, -1,
4467 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4468 -1, -1, -1, 11, 12, -1, -1, -1, 16, 130,
4469 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4470 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4471 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4472 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4473 -1, 59, 60, 61, 62, -1, 64, 65, 66, -1,
4474 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4475 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4476 -1, 89, -1, -1, 92, 93, -1, 95, 96, -1,
4477 -1, -1, -1, 101, 102, 103, 104, 105, 106, 107,
4478 108, 109, -1, -1, -1, -1, -1, 52, 53, -1,
4479 -1, 56, -1, -1, -1, -1, -1, -1, -1, -1,
4480 -1, -1, 130, 68, 69, 70, 71, 72, 73, 74,
4481 75, 76, -1, -1, 79, 80, -1, -1, 83, 84,
4482 85, 86, -1, -1, -1, -1, -1, -1, -1, -1,
4483 -1, -1, -1, 98, 99, -1, -1, -1, -1, -1,
4484 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4485 -1, -1, -1, -1, -1, 120, 121, 122, 123, 124,
4486 125, 126, 127, 128, 129, -1, 131, 132, 52, 53,
4487 -1, -1, 56, 138, -1, -1, -1, -1, -1, -1,
4488 -1, -1, -1, -1, 68, 69, 70, 71, 72, 73,
4489 74, 75, 76, -1, -1, 79, 80, -1, -1, 83,
4490 84, 85, 86, -1, -1, -1, -1, -1, -1, -1,
4491 -1, -1, -1, -1, 98, 99, -1, -1, -1, -1,
4492 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4493 -1, -1, -1, -1, -1, -1, 120, 121, 122, 123,
4494 124, 125, 126, 127, 128, 129, -1, 131, 132, 52,
4495 53, -1, -1, 56, 138, -1, -1, -1, -1, -1,
4496 -1, -1, -1, -1, -1, 68, 69, 70, 71, 72,
4497 73, 74, 75, 76, -1, -1, 79, 80, -1, -1,
4498 83, 84, 85, 86, -1, -1, -1, -1, -1, -1,
4499 -1, -1, -1, -1, -1, 98, 99, -1, -1, -1,
4500 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4501 -1, -1, -1, -1, -1, -1, -1, 120, 121, 122,
4502 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
4503 52, 53, -1, -1, 56, 138, -1, -1, -1, -1,
4504 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
4505 72, 73, 74, 75, 76, -1, -1, 79, 80, -1,
4506 -1, 83, 84, 85, 86, -1, -1, -1, -1, -1,
4507 -1, -1, -1, -1, -1, -1, 98, 99, -1, -1,
4508 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4509 -1, -1, -1, -1, -1, -1, -1, -1, 120, 121,
4510 122, 123, 124, 125, 126, 127, 128, 129, -1, 131,
4511 132, 52, 53, -1, -1, 56, 138, -1, -1, -1,
4512 -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
4513 71, 72, 73, 74, 75, 76, -1, -1, 79, 80,
4514 -1, -1, 83, 84, 85, 86, -1, -1, -1, -1,
4515 -1, -1, -1, -1, -1, -1, -1, 98, 99, -1,
4516 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4517 -1, -1, -1, -1, -1, -1, -1, -1, -1, 120,
4518 121, 122, 123, 124, 125, 126, 127, 128, 129, -1,
4519 131, 132, 52, 53, -1, -1, 56, 138, -1, -1,
4520 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
4521 70, 71, 72, 73, 74, 75, 76, -1, -1, 79,
4522 80, -1, -1, 83, 84, 85, 86, -1, -1, -1,
4523 -1, -1, -1, -1, -1, -1, -1, -1, 98, 99,
4524 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4525 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4526 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
4527 -1, 131, 132, 52, 53, -1, -1, 56, 138, -1,
4528 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
4529 69, 70, 71, 72, 73, 74, 75, 76, -1, -1,
4530 79, 80, -1, -1, 83, 84, 85, 86, -1, -1,
4531 -1, -1, -1, -1, -1, -1, -1, -1, -1, 98,
4532 99, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4533 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4534 -1, 120, 121, 122, 123, 124, 125, 126, 127, 128,
4535 129, -1, 131, 132, 52, 53, -1, -1, 56, 138,
4536 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4537 68, 69, 70, 71, 72, 73, 74, 75, 76, -1,
4538 -1, 79, 80, -1, -1, 83, 84, 85, 86, -1,
4539 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4540 98, 99, -1, -1, -1, -1, -1, -1, -1, -1,
4541 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4542 -1, -1, 120, 121, 122, 123, 124, 125, 126, 127,
4543 128, 129, -1, 131, 132, 52, 53, -1, -1, 56,
4544 138, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4545 -1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
4546 -1, -1, 79, 80, -1, -1, 83, 84, 85, 86,
4547 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4548 -1, 98, 99, -1, -1, -1, -1, -1, -1, -1,
4549 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4550 -1, -1, -1, 120, 121, 122, 123, 124, 125, 126,
4551 127, 128, 129, -1, 131, 132, 52, 53, -1, -1,
4552 56, 138, -1, -1, -1, -1, -1, -1, -1, -1,
4553 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
4554 76, -1, -1, 79, 80, -1, -1, 83, 84, 85,
4555 86, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4556 -1, -1, 98, 99, -1, -1, -1, -1, -1, -1,
4557 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4558 -1, -1, -1, -1, 120, 121, 122, 123, 124, 125,
4559 126, 127, 128, 129, -1, 131, 132, 52, 53, -1,
4560 -1, 56, 138, -1, -1, -1, -1, -1, -1, -1,
4561 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
4562 75, 76, -1, -1, 79, 80, -1, -1, 83, 84,
4563 85, 86, -1, -1, -1, -1, -1, -1, -1, -1,
4564 -1, -1, -1, 98, 99, -1, -1, -1, -1, -1,
4565 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4566 -1, -1, -1, -1, -1, 120, 121, 122, 123, 124,
4567 125, 126, 127, 128, 129, -1, 131, 132, 52, 53,
4568 -1, -1, 56, 138, -1, -1, -1, -1, -1, -1,
4569 -1, -1, -1, -1, 68, 69, 70, 71, 72, 73,
4570 74, 75, 76, -1, -1, 79, 80, -1, -1, 83,
4571 84, 85, 86, -1, -1, -1, -1, -1, -1, -1,
4572 -1, -1, -1, -1, 98, 99, -1, -1, -1, -1,
4573 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4574 -1, -1, -1, -1, -1, -1, 120, 121, 122, 123,
4575 124, 125, 126, 127, 128, 129, -1, 131, 132, -1,
4583 0, 147, 148, 0, 1, 3, 4, 5, 6, 7,
4584 11, 12, 16, 18, 19, 20, 21, 22, 23, 24,
4585 30, 31, 32, 33, 34, 35, 36, 39, 45, 46,
4586 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4587 57, 59, 60, 61, 62, 64, 65, 66, 68, 69,
4588 89, 92, 93, 95, 96, 98, 101, 102, 103, 104,
4589 105, 106, 107, 108, 109, 130, 131, 132, 149, 150,
4590 151, 158, 160, 162, 164, 165, 168, 169, 170, 172,
4591 173, 174, 176, 177, 187, 203, 222, 223, 224, 225,
4592 226, 227, 228, 229, 230, 231, 232, 259, 260, 280,
4593 281, 282, 283, 284, 285, 286, 289, 291, 292, 306,
4594 308, 309, 310, 311, 312, 313, 314, 315, 349, 362,
4595 151, 3, 4, 5, 6, 7, 8, 9, 10, 11,
4596 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
4597 22, 23, 24, 25, 26, 30, 31, 32, 33, 34,
4598 35, 36, 37, 38, 39, 45, 46, 47, 48, 49,
4599 50, 51, 52, 53, 56, 68, 69, 70, 71, 72,
4600 73, 74, 75, 76, 79, 80, 83, 84, 85, 86,
4601 98, 99, 120, 121, 122, 123, 124, 125, 126, 127,
4602 128, 129, 131, 132, 138, 180, 181, 182, 183, 185,
4603 186, 306, 308, 39, 58, 89, 92, 98, 99, 100,
4604 103, 131, 169, 177, 187, 189, 195, 198, 200, 222,
4605 311, 312, 314, 315, 347, 348, 195, 195, 139, 196,
4606 197, 139, 192, 196, 139, 145, 356, 54, 182, 356,
4607 152, 134, 21, 22, 30, 31, 32, 168, 187, 222,
4608 187, 56, 1, 47, 92, 154, 155, 156, 158, 171,
4609 172, 362, 205, 206, 190, 200, 347, 362, 189, 346,
4610 347, 362, 46, 89, 130, 137, 176, 203, 222, 311,
4611 312, 315, 250, 251, 54, 55, 57, 180, 296, 307,
4612 295, 296, 297, 143, 287, 143, 293, 143, 290, 143,
4613 294, 310, 164, 187, 187, 142, 145, 355, 360, 361,
4614 40, 41, 42, 43, 44, 37, 38, 26, 134, 192,
4615 196, 265, 28, 257, 117, 137, 92, 98, 173, 117,
4616 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
4617 80, 81, 82, 85, 86, 118, 120, 121, 122, 123,
4618 124, 125, 126, 127, 128, 129, 87, 88, 136, 144,
4619 353, 204, 162, 163, 163, 209, 211, 163, 355, 361,
4620 89, 170, 177, 222, 238, 311, 312, 315, 52, 56,
4621 85, 89, 178, 179, 222, 311, 312, 315, 179, 33,
4622 34, 35, 36, 49, 50, 51, 52, 56, 139, 180,
4623 313, 344, 88, 353, 354, 265, 283, 90, 90, 137,
4624 189, 56, 189, 189, 189, 295, 117, 91, 137, 199,
4625 362, 88, 136, 353, 90, 90, 137, 199, 195, 356,
4626 357, 195, 194, 195, 200, 347, 362, 162, 357, 162,
4627 54, 65, 66, 159, 139, 188, 134, 154, 88, 353,
4628 90, 158, 157, 171, 140, 355, 361, 357, 357, 158,
4629 141, 137, 145, 359, 137, 359, 135, 359, 356, 56,
4630 310, 173, 175, 137, 88, 136, 353, 252, 63, 110,
4631 112, 113, 298, 113, 298, 113, 67, 298, 113, 113,
4632 288, 298, 113, 63, 113, 113, 113, 288, 113, 63,
4633 113, 70, 142, 151, 163, 163, 163, 163, 158, 162,
4634 162, 267, 266, 97, 166, 258, 98, 164, 189, 200,
4635 201, 202, 171, 137, 176, 137, 160, 161, 164, 177,
4636 187, 189, 191, 202, 222, 315, 187, 187, 187, 187,
4637 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
4638 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
4639 187, 187, 52, 53, 56, 185, 264, 350, 351, 194,
4640 52, 53, 56, 185, 263, 350, 153, 154, 13, 234,
4641 360, 234, 163, 163, 355, 17, 274, 56, 88, 136,
4642 353, 25, 162, 52, 56, 178, 121, 316, 88, 136,
4643 353, 217, 345, 218, 88, 144, 352, 52, 56, 350,
4644 161, 187, 191, 161, 191, 184, 115, 189, 98, 189,
4645 198, 347, 52, 56, 194, 52, 56, 348, 357, 140,
4646 357, 137, 137, 357, 182, 208, 187, 149, 135, 350,
4647 350, 191, 134, 357, 156, 207, 347, 137, 175, 52,
4648 56, 194, 52, 56, 52, 54, 55, 56, 57, 58,
4649 70, 92, 98, 99, 100, 124, 127, 139, 255, 320,
4650 322, 323, 324, 325, 326, 327, 328, 329, 332, 333,
4651 334, 335, 338, 339, 340, 341, 342, 300, 299, 143,
4652 298, 143, 143, 143, 187, 271, 272, 268, 269, 167,
4653 271, 189, 137, 357, 175, 137, 44, 117, 44, 88,
4654 136, 353, 356, 90, 90, 192, 196, 262, 356, 358,
4655 90, 90, 192, 196, 261, 10, 233, 8, 276, 362,
4656 154, 13, 154, 27, 235, 360, 235, 274, 200, 233,
4657 52, 56, 194, 52, 56, 213, 216, 317, 215, 52,
4658 56, 178, 194, 153, 162, 219, 220, 192, 193, 196,
4659 362, 182, 189, 189, 199, 90, 90, 358, 90, 90,
4660 347, 162, 135, 149, 357, 359, 173, 358, 92, 98,
4661 239, 240, 241, 324, 322, 253, 117, 137, 321, 189,
4662 137, 343, 362, 52, 137, 343, 137, 321, 52, 137,
4663 321, 52, 301, 54, 55, 57, 305, 315, 10, 273,
4664 135, 270, 268, 10, 98, 189, 175, 158, 187, 52,
4665 56, 194, 52, 56, 119, 161, 191, 161, 191, 166,
4666 192, 141, 90, 161, 191, 161, 191, 166, 193, 189,
4667 202, 277, 362, 15, 237, 362, 14, 236, 237, 237,
4668 210, 212, 233, 137, 234, 358, 163, 360, 163, 153,
4669 358, 233, 357, 139, 318, 319, 180, 265, 257, 90,
4670 137, 357, 135, 241, 137, 324, 137, 357, 247, 356,
4671 254, 189, 320, 326, 338, 340, 329, 334, 342, 327,
4672 335, 340, 325, 327, 302, 78, 122, 245, 246, 362,
4673 245, 135, 189, 358, 187, 161, 191, 91, 278, 362,
4674 154, 9, 279, 362, 163, 233, 233, 154, 154, 189,
4675 154, 235, 153, 360, 233, 322, 153, 322, 221, 357,
4676 240, 137, 98, 239, 140, 142, 29, 114, 256, 137,
4677 321, 137, 321, 343, 137, 321, 137, 321, 321, 303,
4678 242, 244, 247, 325, 327, 328, 330, 331, 334, 336,
4679 337, 340, 342, 154, 154, 89, 177, 222, 311, 312,
4680 315, 234, 154, 234, 233, 233, 237, 274, 275, 214,
4681 233, 357, 233, 360, 318, 137, 240, 137, 324, 52,
4682 248, 249, 323, 154, 154, 327, 340, 327, 327, 304,
4683 247, 122, 117, 137, 243, 89, 222, 137, 343, 343,
4684 137, 243, 137, 243, 56, 88, 136, 353, 154, 154,
4685 154, 153, 240, 137, 137, 356, 233, 135, 321, 137,
4686 321, 321, 321, 154, 122, 222, 242, 337, 340, 56,
4687 88, 330, 334, 327, 336, 340, 327, 52, 56, 194,
4688 52, 56, 276, 236, 233, 233, 240, 249, 327, 111,
4689 137, 243, 137, 243, 52, 56, 343, 137, 243, 137,
4690 243, 243, 358, 321, 327, 340, 327, 327, 243, 137,
4691 243, 243, 243, 327, 243
4694 #define yyerrok (yyerrstatus = 0) 4695 #define yyclearin (yychar = YYEMPTY) 4696 #define YYEMPTY (-2) 4699 #define YYACCEPT goto yyacceptlab 4700 #define YYABORT goto yyabortlab 4701 #define YYERROR goto yyerrorlab 4711 #define YYFAIL goto yyerrlab 4719 #define YYRECOVERING() (!!yyerrstatus) 4721 #define YYBACKUP(Token, Value) \ 4723 if (yychar == YYEMPTY && yylen == 1) \ 4732 parser_yyerror (parser, YY_("syntax error: cannot back up")); \ 4739 #define YYERRCODE 256 4746 #define YYRHSLOC(Rhs, K) ((Rhs)[K]) 4747 #ifndef YYLLOC_DEFAULT 4748 # define YYLLOC_DEFAULT(Current, Rhs, N) \ 4752 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ 4753 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ 4754 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ 4755 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ 4759 (Current).first_line = (Current).last_line = \ 4760 YYRHSLOC (Rhs, 0).last_line; \ 4761 (Current).first_column = (Current).last_column = \ 4762 YYRHSLOC (Rhs, 0).last_column; \ 4770 #ifndef YY_LOCATION_PRINT 4771 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 4778 # define YYLEX yylex (&yylval, YYLEX_PARAM) 4780 # define YYLEX yylex (&yylval, parser) 4788 # define YYFPRINTF fprintf 4791 # define YYDPRINTF(Args) \ 4797 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 4801 YYFPRINTF (parser, "%s ", Title); \ 4802 yy_symbol_print (stderr, \ 4803 Type, Value, parser); \ 4804 YYFPRINTF (parser, "\n"); \ 4814 #if (defined __STDC__ || defined __C99__FUNC__ \ 4815 || defined __cplusplus || defined _MSC_VER) 4823 YYSTYPE const *
const yyvaluep;
4832 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
4848 #if (defined __STDC__ || defined __C99__FUNC__ \ 4849 || defined __cplusplus || defined _MSC_VER) 4857 YYSTYPE const *
const yyvaluep;
4862 YYFPRINTF (parser,
"token %s (", yytname[yytype]);
4864 YYFPRINTF (parser,
"nterm %s (", yytname[yytype]);
4875 #if (defined __STDC__ || defined __C99__FUNC__ \ 4876 || defined __cplusplus || defined _MSC_VER) 4882 yytype_int16 *yybottom;
4883 yytype_int16 *yytop;
4887 for (; yybottom <= yytop; yybottom++)
4889 int yybot = *yybottom;
4895 # define YY_STACK_PRINT(Bottom, Top) \ 4898 yy_stack_print ((Bottom), (Top), parser); \ 4906 #if (defined __STDC__ || defined __C99__FUNC__ \ 4907 || defined __cplusplus || defined _MSC_VER) 4918 int yynrhs = yyr2[yyrule];
4920 unsigned long int yylno = yyrline[yyrule];
4921 YYFPRINTF (parser,
"Reducing stack by rule %d (line %lu):\n",
4924 for (yyi = 0; yyi < yynrhs; yyi++)
4928 &(yyvsp[(yyi + 1) - (yynrhs)])
4934 # define YY_REDUCE_PRINT(Rule) \ 4937 yy_reduce_print (yyvsp, Rule, parser); \ 4946 # define YYDPRINTF(Args) 4947 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) 4948 # define YY_STACK_PRINT(Bottom, Top) 4949 # define YY_REDUCE_PRINT(Rule) 4955 # define YYINITDEPTH 200 4966 # define YYMAXDEPTH 10000 4973 # if defined __GLIBC__ && defined _STRING_H 4974 # define yystrlen strlen 4977 #if (defined __STDC__ || defined __C99__FUNC__ \ 4978 || defined __cplusplus || defined _MSC_VER) 4988 for (yylen = 0; yystr[yylen]; yylen++)
4996 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE 4997 # define yystpcpy stpcpy 5001 #if (defined __STDC__ || defined __C99__FUNC__ \ 5002 || defined __cplusplus || defined _MSC_VER) 5004 yystpcpy (
char *yydest,
const char *yysrc)
5013 const char *yys = yysrc;
5015 while ((*yyd++ = *yys++) !=
'\0')
5037 char const *yyp = yystr;
5044 goto do_not_strip_quotes;
5048 goto do_not_strip_quotes;
5061 do_not_strip_quotes: ;
5067 return yystpcpy (yyres, yystr) - yyres;
5081 yytype_int16 *yyssp,
int yytoken)
5086 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
5088 const char *yyformat = 0;
5090 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
5124 int yyn = yypact[*yyssp];
5125 yyarg[yycount++] = yytname[yytoken];
5131 int yyxbegin = yyn < 0 ? -yyn : 0;
5133 int yychecklim =
YYLAST - yyn + 1;
5137 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
5138 if (yycheck[yyx + yyn] == yyx && yyx !=
YYTERROR 5141 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
5147 yyarg[yycount++] = yytname[yyx];
5148 yysize1 = yysize +
yytnamerr (0, yytname[yyx]);
5149 if (! (yysize <= yysize1
5159 # define YYCASE_(N, S) \ 5164 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
5165 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
5166 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
5167 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
5168 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
5172 yysize1 = yysize +
yystrlen (yyformat);
5177 if (*yymsg_alloc < yysize)
5179 *yymsg_alloc = 2 * yysize;
5180 if (! (yysize <= *yymsg_alloc
5192 while ((*yyp = *yyformat) !=
'\0')
5193 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
5213 #if (defined __STDC__ || defined __C99__FUNC__ \ 5214 || defined __cplusplus || defined _MSC_VER) 5243 #ifdef YYPARSE_PARAM 5244 #if defined __STDC__ || defined __cplusplus 5245 int yyparse (
void *YYPARSE_PARAM);
5250 #if defined __STDC__ || defined __cplusplus 5262 #ifdef YYPARSE_PARAM 5263 #if (defined __STDC__ || defined __C99__FUNC__ \ 5264 || defined __cplusplus || defined _MSC_VER) 5270 void *YYPARSE_PARAM;
5273 #if (defined __STDC__ || defined __C99__FUNC__ \ 5274 || defined __cplusplus || defined _MSC_VER) 5307 yytype_int16 *yyssp;
5327 char *yymsg = yymsgbuf;
5328 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
5331 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) 5342 YYDPRINTF ((parser,
"Starting parse\n"));
5369 if (yyss + yystacksize - 1 <= yyssp)
5372 YYSIZE_T yysize = yyssp - yyss + 1;
5380 yytype_int16 *yyss1 = yyss;
5386 yyoverflow (
YY_(
"memory exhausted"),
5387 &yyss1, yysize *
sizeof (*yyssp),
5388 &yyvs1, yysize *
sizeof (*yyvsp),
5395 # ifndef YYSTACK_RELOCATE 5396 goto yyexhaustedlab;
5400 goto yyexhaustedlab;
5406 yytype_int16 *yyss1 = yyss;
5410 goto yyexhaustedlab;
5413 # undef YYSTACK_RELOCATE 5420 yyssp = yyss + yysize - 1;
5421 yyvsp = yyvs + yysize - 1;
5423 YYDPRINTF ((parser,
"Stack size increased to %lu\n",
5424 (
unsigned long int) yystacksize));
5426 if (yyss + yystacksize - 1 <= yyssp)
5430 YYDPRINTF ((parser,
"Entering state %d\n", yystate));
5446 yyn = yypact[yystate];
5455 YYDPRINTF ((parser,
"Reading a token: "));
5459 if (yychar <=
YYEOF)
5461 yychar = yytoken =
YYEOF;
5462 YYDPRINTF ((parser,
"Now at end of input.\n"));
5473 if (yyn < 0 ||
YYLAST < yyn || yycheck[yyn] != yytoken)
5505 yyn = yydefact[yystate];
5526 yyval = yyvsp[1-yylen];
5535 #line 994 "ripper.y" 5549 #line 1003 "ripper.y" 5556 NODE *node = (yyvsp[(2) - (2)].
val);
5557 while (node->nd_next) {
5558 node = node->nd_next;
5565 (yyval.
val) = (yyvsp[(2) - (2)].
val);
5566 parser->result = dispatch1(program, (yyval.
val));
5575 #line 1026 "ripper.y" 5581 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5588 #line 1036 "ripper.y" 5593 (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new),
5594 dispatch0(void_stmt));
5602 #line 1045 "ripper.y" 5607 (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5615 #line 1053 "ripper.y" 5620 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5628 #line 1061 "ripper.y" 5637 #line 1068 "ripper.y" 5649 #line 1075 "ripper.y" 5653 (yyvsp[(4) - (5)].
val));
5658 (yyval.
val) = dispatch1(BEGIN, (yyvsp[(4) - (5)].
val));
5666 #line 1092 "ripper.y" 5669 (yyval.
val) = (yyvsp[(1) - (4)].
val);
5670 if ((yyvsp[(2) - (4)].
val)) {
5673 else if ((yyvsp[(3) - (4)].
val)) {
5674 rb_warn0(
"else without rescue is useless");
5677 if ((yyvsp[(4) - (4)].
val)) {
5687 (yyval.
val) = dispatch4(bodystmt,
5688 escape_Qundef((yyvsp[(1) - (4)].
val)),
5689 escape_Qundef((yyvsp[(2) - (4)].
val)),
5690 escape_Qundef((yyvsp[(3) - (4)].
val)),
5691 escape_Qundef((yyvsp[(4) - (4)].
val)));
5699 #line 1122 "ripper.y" 5705 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5712 #line 1132 "ripper.y" 5717 (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new),
5718 dispatch0(void_stmt));
5726 #line 1141 "ripper.y" 5731 (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5739 #line 1149 "ripper.y" 5744 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5752 #line 1157 "ripper.y" 5761 #line 1163 "ripper.y" 5763 (yyval.
val) = (yyvsp[(1) - (1)].
val);
5770 #line 1167 "ripper.y" 5772 yyerror(
"BEGIN is permitted only at toplevel");
5783 #line 1175 "ripper.y" 5787 (yyvsp[(4) - (5)].
val));
5792 (yyval.
val) = dispatch1(BEGIN, (yyvsp[(4) - (5)].
val));
5800 #line 1187 "ripper.y" 5807 #line 1188 "ripper.y" 5812 (yyval.
val) = dispatch2(
alias, (yyvsp[(2) - (4)].
val), (yyvsp[(4) - (4)].
val));
5820 #line 1196 "ripper.y" 5825 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5833 #line 1204 "ripper.y" 5838 buf[1] = (char)(yyvsp[(3) - (3)].
val)->nd_nth;
5841 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5849 #line 1215 "ripper.y" 5852 yyerror(
"can't make alias for the number variables");
5855 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5856 (yyval.
val) = dispatch1(alias_error, (yyval.
val));
5865 #line 1226 "ripper.y" 5868 (yyval.
val) = (yyvsp[(2) - (2)].
val);
5870 (yyval.
val) = dispatch1(undef, (yyvsp[(2) - (2)].
val));
5878 #line 1234 "ripper.y" 5884 (yyval.
val) = dispatch2(if_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5892 #line 1243 "ripper.y" 5898 (yyval.
val) = dispatch2(unless_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5906 #line 1252 "ripper.y" 5916 (yyval.
val) = dispatch2(while_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5924 #line 1265 "ripper.y" 5934 (yyval.
val) = dispatch2(until_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5942 #line 1278 "ripper.y" 5948 (yyval.
val) = dispatch2(rescue_mod, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5956 #line 1287 "ripper.y" 5959 rb_warn0(
"END in method; use at_exit");
5965 (yyval.
val) = dispatch1(
END, (yyvsp[(3) - (4)].
val));
5973 #line 1300 "ripper.y" 5978 (yyval.
val) = (yyvsp[(1) - (3)].
val);
5980 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5988 #line 1310 "ripper.y" 5998 #line 1315 "ripper.y" 6002 (yyval.
val) = (yyvsp[(1) - (3)].
val);
6004 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6012 #line 1327 "ripper.y" 6022 #line 1332 "ripper.y" 6032 #line 1337 "ripper.y" 6040 if ((yyvsp[(5) - (6)].
val) ==
tOROP) {
6041 (yyvsp[(5) - (6)].
val) = 0;
6043 else if ((yyvsp[(5) - (6)].
val) ==
tANDOP) {
6044 (yyvsp[(5) - (6)].
val) = 1;
6049 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (6)].
val), escape_Qundef((yyvsp[(3) - (6)].
val)));
6050 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].
val));
6058 #line 1358 "ripper.y" 6068 #line 1363 "ripper.y" 6078 #line 1368 "ripper.y" 6088 #line 1373 "ripper.y" 6098 #line 1378 "ripper.y" 6108 #line 1385 "ripper.y" 6112 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6121 #line 1393 "ripper.y" 6127 (yyval.
val) = dispatch2(rescue_mod, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6135 #line 1406 "ripper.y" 6140 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"and"), (yyvsp[(3) - (3)].
val));
6148 #line 1414 "ripper.y" 6153 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"or"), (yyvsp[(3) - (3)].
val));
6161 #line 1422 "ripper.y" 6166 (yyval.
val) = dispatch2(unary, ripper_intern(
"not"), (yyvsp[(3) - (3)].
val));
6174 #line 1430 "ripper.y" 6187 #line 1441 "ripper.y" 6191 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6194 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6202 #line 1458 "ripper.y" 6205 (yyval.
val) =
NEW_QCALL((yyvsp[(2) - (4)].
val), (yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
6207 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), (yyvsp[(2) - (4)].
val), (yyvsp[(3) - (4)].
val));
6208 (yyval.
val) = method_arg((yyval.
val), (yyvsp[(4) - (4)].
val));
6216 #line 1469 "ripper.y" 6228 #line 1476 "ripper.y" 6230 (yyval.
val) = (yyvsp[(3) - (4)].
val);
6240 #line 1485 "ripper.y" 6253 #line 1495 "ripper.y" 6256 (yyval.
val) = (yyvsp[(1) - (2)].
val);
6259 (yyval.
val) = dispatch2(command, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
6267 #line 1504 "ripper.y" 6273 (yyval.
val) = (yyvsp[(3) - (3)].
val);
6276 (yyval.
val) = dispatch2(command, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
6277 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(3) - (3)].
val));
6285 #line 1517 "ripper.y" 6288 (yyval.
val) =
NEW_QCALL((yyvsp[(2) - (4)].
val), (yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
6291 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (4)].
val), (yyvsp[(2) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
6299 #line 1526 "ripper.y" 6304 (yyval.
val) = (yyvsp[(5) - (5)].
val);
6307 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
6308 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
6316 #line 1538 "ripper.y" 6319 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
6322 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (4)].
val),
ID2SYM(
idCOLON2), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
6330 #line 1547 "ripper.y" 6335 (yyval.
val) = (yyvsp[(5) - (5)].
val);
6338 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (5)].
val),
ID2SYM(
idCOLON2), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
6339 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
6347 #line 1559 "ripper.y" 6353 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].
val));
6361 #line 1568 "ripper.y" 6367 (yyval.
val) = dispatch1(yield, (yyvsp[(2) - (2)].
val));
6375 #line 1577 "ripper.y" 6380 (yyval.
val) = dispatch1(
return, (yyvsp[(2) - (2)].
val));
6388 #line 1585 "ripper.y" 6393 (yyval.
val) = dispatch1(
break, (yyvsp[(2) - (2)].
val));
6401 #line 1593 "ripper.y" 6406 (yyval.
val) = dispatch1(next, (yyvsp[(2) - (2)].
val));
6414 #line 1604 "ripper.y" 6417 (yyval.
val) = (yyvsp[(2) - (3)].
val);
6419 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6427 #line 1615 "ripper.y" 6432 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6440 #line 1625 "ripper.y" 6445 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6453 #line 1633 "ripper.y" 6458 (yyval.
val) = mlhs_add((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
6466 #line 1641 "ripper.y" 6471 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6479 #line 1649 "ripper.y" 6484 (yyvsp[(1) - (5)].
val) = mlhs_add_star((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
6485 (yyval.
val) = mlhs_add((yyvsp[(1) - (5)].
val), (yyvsp[(5) - (5)].
val));
6493 #line 1658 "ripper.y" 6498 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (2)].
val),
Qnil);
6506 #line 1666 "ripper.y" 6511 (yyvsp[(1) - (4)].
val) = mlhs_add_star((yyvsp[(1) - (4)].
val),
Qnil);
6512 (yyval.
val) = mlhs_add((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val));
6520 #line 1675 "ripper.y" 6525 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (2)].
val));
6533 #line 1683 "ripper.y" 6538 (yyvsp[(2) - (4)].
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (4)].
val));
6539 (yyval.
val) = mlhs_add((yyvsp[(2) - (4)].
val), (yyvsp[(4) - (4)].
val));
6547 #line 1692 "ripper.y" 6552 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6560 #line 1700 "ripper.y" 6565 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6566 (yyval.
val) = mlhs_add((yyval.
val), (yyvsp[(3) - (3)].
val));
6574 #line 1712 "ripper.y" 6577 (yyval.
val) = (yyvsp[(2) - (3)].
val);
6579 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6587 #line 1722 "ripper.y" 6592 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (2)].
val));
6600 #line 1730 "ripper.y" 6605 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
6613 #line 1740 "ripper.y" 6618 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
6626 #line 1748 "ripper.y" 6631 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6639 #line 1758 "ripper.y" 6648 #line 1762 "ripper.y" 6657 #line 1766 "ripper.y" 6662 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (4)].
val), escape_Qundef((yyvsp[(3) - (4)].
val)));
6670 #line 1774 "ripper.y" 6673 (yyval.
val) =
attrset((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
6675 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
6683 #line 1782 "ripper.y" 6696 #line 1790 "ripper.y" 6699 (yyval.
val) =
attrset((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
6701 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
6709 #line 1798 "ripper.y" 6718 #line 1802 "ripper.y" 6727 #line 1806 "ripper.y" 6737 #line 1813 "ripper.y" 6751 #line 1822 "ripper.y" 6765 #line 1831 "ripper.y" 6770 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (4)].
val), escape_Qundef((yyvsp[(3) - (4)].
val)));
6778 #line 1839 "ripper.y" 6781 (yyval.
val) =
attrset((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
6783 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
6791 #line 1847 "ripper.y" 6804 #line 1855 "ripper.y" 6807 (yyval.
val) =
attrset((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
6809 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
6817 #line 1863 "ripper.y" 6826 #line 1867 "ripper.y" 6835 #line 1871 "ripper.y" 6845 #line 1878 "ripper.y" 6848 yyerror(
"class/module name must be CONSTANT");
6850 (yyval.
val) = dispatch1(class_name_error, (yyvsp[(1) - (1)].
val));
6859 #line 1890 "ripper.y" 6864 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].
val));
6872 #line 1898 "ripper.y" 6877 (yyval.
val) = dispatch1(const_ref, (yyvsp[(1) - (1)].
val));
6885 #line 1906 "ripper.y" 6890 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6898 #line 1919 "ripper.y" 6901 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6908 #line 1924 "ripper.y" 6912 (yyval.
val) = (yyvsp[(1) - (1)].
id);
6914 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6922 #line 1939 "ripper.y" 6927 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].
val));
6935 #line 1950 "ripper.y" 6948 #line 1957 "ripper.y" 6955 #line 1958 "ripper.y" 6968 #line 1967 "ripper.y" 6975 #line 1968 "ripper.y" 6982 #line 1969 "ripper.y" 6989 #line 1970 "ripper.y" 6996 #line 1971 "ripper.y" 7003 #line 1972 "ripper.y" 7010 #line 1973 "ripper.y" 7017 #line 1974 "ripper.y" 7024 #line 1975 "ripper.y" 7031 #line 1976 "ripper.y" 7038 #line 1977 "ripper.y" 7045 #line 1978 "ripper.y" 7052 #line 1979 "ripper.y" 7059 #line 1980 "ripper.y" 7066 #line 1981 "ripper.y" 7073 #line 1982 "ripper.y" 7080 #line 1983 "ripper.y" 7087 #line 1984 "ripper.y" 7094 #line 1985 "ripper.y" 7101 #line 1986 "ripper.y" 7108 #line 1987 "ripper.y" 7115 #line 1988 "ripper.y" 7122 #line 1989 "ripper.y" 7129 #line 1990 "ripper.y" 7136 #line 1991 "ripper.y" 7143 #line 1992 "ripper.y" 7150 #line 1993 "ripper.y" 7157 #line 1994 "ripper.y" 7164 #line 1995 "ripper.y" 7171 #line 1996 "ripper.y" 7178 #line 2014 "ripper.y" 7187 #line 2018 "ripper.y" 7196 #line 2022 "ripper.y" 7209 if ((yyvsp[(5) - (6)].
val) ==
tOROP) {
7210 (yyvsp[(5) - (6)].
val) = 0;
7212 else if ((yyvsp[(5) - (6)].
val) ==
tANDOP) {
7213 (yyvsp[(5) - (6)].
val) = 1;
7218 (yyvsp[(1) - (6)].
val) = dispatch2(aref_field, (yyvsp[(1) - (6)].
val), escape_Qundef((yyvsp[(3) - (6)].
val)));
7219 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (6)].
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].
val));
7227 #line 2048 "ripper.y" 7237 #line 2053 "ripper.y" 7247 #line 2058 "ripper.y" 7257 #line 2063 "ripper.y" 7267 #line 2068 "ripper.y" 7277 #line 2073 "ripper.y" 7287 #line 2078 "ripper.y" 7294 (yyval.
val) = dispatch2(dot2, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7302 #line 2088 "ripper.y" 7309 (yyval.
val) = dispatch2(dot3, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7317 #line 2098 "ripper.y" 7322 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'+'), (yyvsp[(3) - (3)].
val));
7330 #line 2106 "ripper.y" 7335 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'-'), (yyvsp[(3) - (3)].
val));
7343 #line 2114 "ripper.y" 7348 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'*'), (yyvsp[(3) - (3)].
val));
7356 #line 2122 "ripper.y" 7361 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'/'), (yyvsp[(3) - (3)].
val));
7369 #line 2130 "ripper.y" 7374 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'%'), (yyvsp[(3) - (3)].
val));
7382 #line 2138 "ripper.y" 7387 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
idPow), (yyvsp[(3) - (3)].
val));
7395 #line 2146 "ripper.y" 7400 (yyval.
val) = dispatch3(binary, (yyvsp[(2) - (4)].
val),
ID2SYM(
idPow), (yyvsp[(4) - (4)].
val));
7409 #line 2155 "ripper.y" 7422 #line 2163 "ripper.y" 7435 #line 2171 "ripper.y" 7440 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'|'), (yyvsp[(3) - (3)].
val));
7448 #line 2179 "ripper.y" 7453 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'^'), (yyvsp[(3) - (3)].
val));
7461 #line 2187 "ripper.y" 7466 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'&'), (yyvsp[(3) - (3)].
val));
7474 #line 2195 "ripper.y" 7479 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
idCmp), (yyvsp[(3) - (3)].
val));
7487 #line 2203 "ripper.y" 7492 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'>'), (yyvsp[(3) - (3)].
val));
7500 #line 2211 "ripper.y" 7505 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
idGE), (yyvsp[(3) - (3)].
val));
7513 #line 2219 "ripper.y" 7518 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'<'), (yyvsp[(3) - (3)].
val));
7526 #line 2227 "ripper.y" 7531 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
idLE), (yyvsp[(3) - (3)].
val));
7539 #line 2235 "ripper.y" 7544 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
idEq), (yyvsp[(3) - (3)].
val));
7552 #line 2243 "ripper.y" 7557 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
idEqq), (yyvsp[(3) - (3)].
val));
7565 #line 2251 "ripper.y" 7570 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
idNeq), (yyvsp[(3) - (3)].
val));
7578 #line 2259 "ripper.y" 7597 #line 2273 "ripper.y" 7610 #line 2281 "ripper.y" 7615 (yyval.
val) = dispatch2(unary,
ID2SYM(
'!'), (yyvsp[(2) - (2)].
val));
7623 #line 2289 "ripper.y" 7628 (yyval.
val) = dispatch2(unary,
ID2SYM(
'~'), (yyvsp[(2) - (2)].
val));
7636 #line 2297 "ripper.y" 7649 #line 2305 "ripper.y" 7662 #line 2313 "ripper.y" 7675 #line 2321 "ripper.y" 7688 #line 2328 "ripper.y" 7695 #line 2329 "ripper.y" 7701 (yyval.
val) = dispatch1(defined, (yyvsp[(4) - (4)].
val));
7709 #line 2338 "ripper.y" 7713 (yyval.
val) =
new_if((yyvsp[(1) - (6)].
val), (yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].
val));
7716 (yyval.
val) = dispatch3(ifop, (yyvsp[(1) - (6)].
val), (yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].
val));
7724 #line 2348 "ripper.y" 7726 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7733 #line 2354 "ripper.y" 7737 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7740 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7748 #line 2367 "ripper.y" 7750 (yyval.
val) = (yyvsp[(1) - (2)].
val);
7757 #line 2371 "ripper.y" 7762 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val));
7770 #line 2379 "ripper.y" 7775 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7783 #line 2389 "ripper.y" 7787 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7796 #line 2397 "ripper.y" 7802 (yyval.
val) = dispatch2(rescue_mod, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7810 #line 2408 "ripper.y" 7813 (yyval.
val) = (yyvsp[(2) - (3)].
val);
7815 (yyval.
val) = dispatch1(arg_paren, escape_Qundef((yyvsp[(2) - (3)].
val)));
7823 #line 2424 "ripper.y" 7825 (yyval.
val) = (yyvsp[(1) - (2)].
val);
7832 #line 2428 "ripper.y" 7837 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val));
7845 #line 2436 "ripper.y" 7850 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7858 #line 2446 "ripper.y" 7864 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7872 #line 2455 "ripper.y" 7877 (yyval.
val) = arg_add_optblock((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
7885 #line 2463 "ripper.y" 7891 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7892 (yyval.
val) = arg_add_optblock((yyval.
val), (yyvsp[(2) - (2)].
val));
7900 #line 2473 "ripper.y" 7906 (yyval.
val) = arg_add_optblock(arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val)), (yyvsp[(4) - (4)].
val));
7914 #line 2484 "ripper.y" 7916 (yyval.
val) = arg_add_block(arg_new(), (yyvsp[(1) - (1)].
val));
7923 #line 2490 "ripper.y" 7933 #line 2495 "ripper.y" 7937 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7944 #line 2503 "ripper.y" 7949 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7957 #line 2513 "ripper.y" 7959 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7966 #line 2517 "ripper.y" 7975 #line 2523 "ripper.y" 7980 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7988 #line 2531 "ripper.y" 7993 (yyval.
val) = arg_add_star(arg_new(), (yyvsp[(2) - (2)].
val));
8001 #line 2539 "ripper.y" 8012 (yyval.
val) = arg_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
8020 #line 2553 "ripper.y" 8031 (yyval.
val) = arg_add_star((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val));
8039 #line 2573 "ripper.y" 8050 (yyval.
val) = mrhs_add(args2mrhs((yyvsp[(1) - (3)].
val)), (yyvsp[(3) - (3)].
val));
8058 #line 2587 "ripper.y" 8070 (yyval.
val) = mrhs_add_star(args2mrhs((yyvsp[(1) - (4)].
val)), (yyvsp[(4) - (4)].
val));
8078 #line 2602 "ripper.y" 8083 (yyval.
val) = mrhs_add_star(mrhs_new(), (yyvsp[(2) - (2)].
val));
8091 #line 2622 "ripper.y" 8096 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (1)].
val)), arg_new());
8104 #line 2630 "ripper.y" 8118 #line 2640 "ripper.y" 8122 if ((yyvsp[(3) - (4)].
val) ==
NULL) {
8133 (yyval.
val) = dispatch1(begin, (yyvsp[(3) - (4)].
val));
8141 #line 2657 "ripper.y" 8148 #line 2658 "ripper.y" 8153 (yyval.
val) = dispatch1(paren, 0);
8161 #line 2666 "ripper.y" 8171 #line 2670 "ripper.y" 8178 #line 2671 "ripper.y" 8182 (yyval.
val) = (yyvsp[(3) - (5)].
val);
8184 (yyval.
val) = dispatch1(paren, (yyvsp[(3) - (5)].
val));
8192 #line 2680 "ripper.y" 8195 (yyval.
val) = (yyvsp[(2) - (3)].
val);
8197 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].
val));
8205 #line 2688 "ripper.y" 8210 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
8218 #line 2696 "ripper.y" 8223 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].
val));
8231 #line 2704 "ripper.y" 8234 if ((yyvsp[(2) - (3)].
val) == 0) {
8238 (yyval.
val) = (yyvsp[(2) - (3)].
val);
8241 (yyval.
val) = dispatch1(array, escape_Qundef((yyvsp[(2) - (3)].
val)));
8249 #line 2717 "ripper.y" 8254 (yyval.
val) = dispatch1(
hash, escape_Qundef((yyvsp[(2) - (3)].
val)));
8262 #line 2725 "ripper.y" 8267 (yyval.
val) = dispatch0(return0);
8275 #line 2733 "ripper.y" 8280 (yyval.
val) = dispatch1(yield, dispatch1(paren, (yyvsp[(3) - (4)].
val)));
8288 #line 2741 "ripper.y" 8293 (yyval.
val) = dispatch1(yield, dispatch1(paren, arg_new()));
8301 #line 2749 "ripper.y" 8306 (yyval.
val) = dispatch0(yield0);
8314 #line 2756 "ripper.y" 8321 #line 2757 "ripper.y" 8327 (yyval.
val) = dispatch1(defined, (yyvsp[(5) - (6)].
val));
8335 #line 2766 "ripper.y" 8340 (yyval.
val) = dispatch2(unary, ripper_intern(
"not"), (yyvsp[(3) - (4)].
val));
8348 #line 2774 "ripper.y" 8353 (yyval.
val) = dispatch2(unary, ripper_intern(
"not"),
Qnil);
8361 #line 2782 "ripper.y" 8365 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8367 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].
val)), arg_new());
8368 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(2) - (2)].
val));
8376 #line 2793 "ripper.y" 8381 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8383 (yyval.
val) = method_add_block((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
8391 #line 2803 "ripper.y" 8393 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8400 #line 2810 "ripper.y" 8403 (yyval.
val) =
new_if((yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), (yyvsp[(5) - (6)].
val));
8406 (yyval.
val) = dispatch3(
if, (yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), escape_Qundef((yyvsp[(5) - (6)].
val)));
8414 #line 2822 "ripper.y" 8420 (yyval.
val) = dispatch3(unless, (yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), escape_Qundef((yyvsp[(5) - (6)].
val)));
8428 #line 2830 "ripper.y" 8435 #line 2830 "ripper.y" 8442 #line 2833 "ripper.y" 8448 (yyval.
val) = dispatch2(
while, (yyvsp[(3) - (7)].
val), (yyvsp[(6) - (7)].
val));
8456 #line 2841 "ripper.y" 8463 #line 2841 "ripper.y" 8470 #line 2844 "ripper.y" 8476 (yyval.
val) = dispatch2(until, (yyvsp[(3) - (7)].
val), (yyvsp[(6) - (7)].
val));
8484 #line 2855 "ripper.y" 8490 (yyval.
val) = dispatch2(
case, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val));
8498 #line 2864 "ripper.y" 8503 (yyval.
val) = dispatch2(
case,
Qnil, (yyvsp[(3) - (4)].
val));
8511 #line 2872 "ripper.y" 8518 #line 2874 "ripper.y" 8525 #line 2877 "ripper.y" 8552 m->nd_next = (yyvsp[(2) - (9)].
val);
8561 tbl[0] = 1; tbl[1] =
id;
8565 (yyval.
val) = dispatch3(
for, (yyvsp[(2) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(8) - (9)].
val));
8573 #line 2920 "ripper.y" 8576 yyerror(
"class definition in method body");
8588 #line 2931 "ripper.y" 8594 (yyval.
val) = dispatch3(
class, (yyvsp[(2) - (6)].
val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].
val));
8603 #line 2941 "ripper.y" 8615 #line 2950 "ripper.y" 8621 (yyval.
val) = dispatch2(sclass, (yyvsp[(3) - (7)].
val), (yyvsp[(6) - (7)].
val));
8624 in_def = ((yyvsp[(4) - (7)].
num) >> 1) & 1;
8632 #line 2962 "ripper.y" 8635 yyerror(
"module definition in method body");
8647 #line 2973 "ripper.y" 8653 (yyval.
val) = dispatch2(module, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val));
8662 #line 2983 "ripper.y" 8673 #line 2988 "ripper.y" 8683 #line 2995 "ripper.y" 8691 (yyval.
val) = dispatch3(def, (yyvsp[(2) - (7)].
val), (yyvsp[(5) - (7)].
val), (yyvsp[(6) - (7)].
val));
8702 #line 3008 "ripper.y" 8709 #line 3009 "ripper.y" 8723 #line 3020 "ripper.y" 8728 (yyval.
val) =
NEW_DEFS((yyvsp[(2) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(7) - (9)].
val), body);
8731 (yyval.
val) = dispatch5(defs, (yyvsp[(2) - (9)].
val), (yyvsp[(3) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(7) - (9)].
val), (yyvsp[(8) - (9)].
val));
8742 #line 3034 "ripper.y" 8747 (yyval.
val) = dispatch1(
break, arg_new());
8755 #line 3042 "ripper.y" 8760 (yyval.
val) = dispatch1(next, arg_new());
8768 #line 3050 "ripper.y" 8773 (yyval.
val) = dispatch0(redo);
8781 #line 3058 "ripper.y" 8786 (yyval.
val) = dispatch0(retry);
8794 #line 3068 "ripper.y" 8798 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8801 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8809 #line 3080 "ripper.y" 8818 #line 3086 "ripper.y" 8827 #line 3092 "ripper.y" 8836 #line 3098 "ripper.y" 8845 #line 3104 "ripper.y" 8854 #line 3110 "ripper.y" 8863 #line 3116 "ripper.y" 8872 #line 3122 "ripper.y" 8881 #line 3128 "ripper.y" 8890 #line 3134 "ripper.y" 8903 #line 3144 "ripper.y" 8912 #line 3152 "ripper.y" 8919 #line 3158 "ripper.y" 8920 { (yyval.
val) = (yyvsp[(2) - (2)].
val); }
8926 #line 3165 "ripper.y" 8933 #line 3174 "ripper.y" 8936 (yyval.
val) =
new_if((yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
8939 (yyval.
val) = dispatch3(elsif, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), escape_Qundef((yyvsp[(5) - (5)].
val)));
8947 #line 3186 "ripper.y" 8950 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8952 (yyval.
val) = dispatch1(
else, (yyvsp[(2) - (2)].
val));
8960 #line 3200 "ripper.y" 8965 (yyval.
val) = dispatch1(mlhs_paren, (yyval.
val));
8973 #line 3208 "ripper.y" 8976 (yyval.
val) = (yyvsp[(2) - (3)].
val);
8978 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
8986 #line 3218 "ripper.y" 8991 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
8999 #line 3226 "ripper.y" 9004 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
9012 #line 3236 "ripper.y" 9017 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9025 #line 3244 "ripper.y" 9031 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (4)].
val), (yyval.
val));
9039 #line 3253 "ripper.y" 9045 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (6)].
val), (yyval.
val));
9053 #line 3262 "ripper.y" 9058 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].
val),
Qnil);
9066 #line 3270 "ripper.y" 9071 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (5)].
val), (yyvsp[(5) - (5)].
val));
9079 #line 3278 "ripper.y" 9085 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyval.
val));
9093 #line 3287 "ripper.y" 9102 (yyval.
val) = mlhs_add_star((yyval.
val), (yyvsp[(4) - (4)].
val));
9110 #line 3299 "ripper.y" 9115 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
9123 #line 3307 "ripper.y" 9128 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
9136 #line 3318 "ripper.y" 9145 #line 3322 "ripper.y" 9154 #line 3326 "ripper.y" 9163 #line 3330 "ripper.y" 9172 #line 3336 "ripper.y" 9174 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9181 #line 3340 "ripper.y" 9190 #line 3346 "ripper.y" 9199 #line 3350 "ripper.y" 9201 (yyval.
val) =
new_args((yyvsp[(1) - (8)].
val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].
val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].
val));
9208 #line 3354 "ripper.y" 9217 #line 3358 "ripper.y" 9226 #line 3362 "ripper.y" 9235 #line 3366 "ripper.y" 9240 dispatch1(excessed_comma, (yyval.
val));
9248 #line 3374 "ripper.y" 9257 #line 3378 "ripper.y" 9266 #line 3382 "ripper.y" 9275 #line 3386 "ripper.y" 9284 #line 3390 "ripper.y" 9293 #line 3394 "ripper.y" 9302 #line 3398 "ripper.y" 9311 #line 3402 "ripper.y" 9320 #line 3406 "ripper.y" 9329 #line 3413 "ripper.y" 9338 #line 3419 "ripper.y" 9345 escape_Qundef((yyvsp[(2) - (3)].
val)));
9353 #line 3429 "ripper.y" 9367 #line 3438 "ripper.y" 9371 (yyval.
val) = (yyvsp[(2) - (4)].
val);
9373 (yyval.
val) = blockvar_new(escape_Qundef((yyvsp[(2) - (4)].
val)), escape_Qundef((yyvsp[(3) - (4)].
val)));
9381 #line 3450 "ripper.y" 9390 #line 3454 "ripper.y" 9395 (yyval.
val) = (yyvsp[(3) - (4)].
val);
9403 #line 3466 "ripper.y" 9412 #line 3473 "ripper.y" 9421 #line 3480 "ripper.y" 9434 #line 3488 "ripper.y" 9443 #line 3493 "ripper.y" 9452 #line 3496 "ripper.y" 9462 #line 3501 "ripper.y" 9471 #line 3504 "ripper.y" 9481 #line 3509 "ripper.y" 9490 (yyval.
val) = dispatch2(lambda, (yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].
val));
9499 #line 3524 "ripper.y" 9502 (yyval.
val) = (yyvsp[(2) - (4)].
val);
9504 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (4)].
val));
9512 #line 3532 "ripper.y" 9514 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9521 #line 3538 "ripper.y" 9524 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9531 #line 3543 "ripper.y" 9533 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9540 #line 3549 "ripper.y" 9551 #line 3555 "ripper.y" 9553 (yyval.
val) = (yyvsp[(3) - (4)].
val);
9563 #line 3564 "ripper.y" 9573 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9576 (yyval.
val) = method_add_block((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9584 #line 3580 "ripper.y" 9587 (yyval.
val) =
NEW_QCALL((yyvsp[(2) - (4)].
val), (yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
9589 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), (yyvsp[(2) - (4)].
val), (yyvsp[(3) - (4)].
val));
9590 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9598 #line 3589 "ripper.y" 9603 (yyval.
val) = (yyvsp[(5) - (5)].
val);
9606 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
9607 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
9615 #line 3601 "ripper.y" 9620 (yyval.
val) = (yyvsp[(5) - (5)].
val);
9623 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
9624 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
9632 #line 3615 "ripper.y" 9635 (yyval.
val) = (yyvsp[(1) - (2)].
val);
9638 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].
val)), (yyvsp[(2) - (2)].
val));
9646 #line 3624 "ripper.y" 9657 #line 3630 "ripper.y" 9660 (yyval.
val) =
NEW_QCALL((yyvsp[(2) - (5)].
val), (yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
9663 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val));
9664 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(5) - (5)].
val));
9672 #line 3640 "ripper.y" 9683 #line 3646 "ripper.y" 9686 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
9690 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(5) - (5)].
val));
9698 #line 3656 "ripper.y" 9711 #line 3664 "ripper.y" 9722 #line 3670 "ripper.y" 9725 (yyval.
val) =
NEW_QCALL((yyvsp[(2) - (4)].
val), (yyvsp[(1) - (4)].
val), idCall, (yyvsp[(4) - (4)].
val));
9728 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), (yyvsp[(2) - (4)].
val),
ID2SYM(idCall));
9729 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9737 #line 3680 "ripper.y" 9748 #line 3686 "ripper.y" 9756 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9764 #line 3697 "ripper.y" 9769 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].
val));
9777 #line 3705 "ripper.y" 9782 (yyval.
val) = dispatch0(zsuper);
9790 #line 3713 "ripper.y" 9799 (yyval.
val) = dispatch2(aref, (yyvsp[(1) - (4)].
val), escape_Qundef((yyvsp[(3) - (4)].
val)));
9807 #line 3727 "ripper.y" 9818 #line 3733 "ripper.y" 9820 (yyval.
val) = (yyvsp[(3) - (4)].
val);
9830 #line 3740 "ripper.y" 9841 #line 3746 "ripper.y" 9843 (yyval.
val) = (yyvsp[(3) - (4)].
val);
9853 #line 3754 "ripper.y" 9860 #line 3755 "ripper.y" 9867 #line 3757 "ripper.y" 9878 #line 3764 "ripper.y" 9885 #line 3765 "ripper.y" 9892 #line 3767 "ripper.y" 9903 #line 3777 "ripper.y" 9906 (yyval.
val) =
NEW_WHEN((yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
9908 (yyval.
val) = dispatch3(when, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), escape_Qundef((yyvsp[(5) - (5)].
val)));
9916 #line 3793 "ripper.y" 9919 if ((yyvsp[(3) - (6)].
val)) {
9924 fixpos((yyval.
val), (yyvsp[(2) - (6)].
val)?(yyvsp[(2) - (6)].
val):(yyvsp[(5) - (6)].
val));
9926 (yyval.
val) = dispatch4(rescue,
9927 escape_Qundef((yyvsp[(2) - (6)].
val)),
9928 escape_Qundef((yyvsp[(3) - (6)].
val)),
9929 escape_Qundef((yyvsp[(5) - (6)].
val)),
9930 escape_Qundef((yyvsp[(6) - (6)].
val)));
9938 #line 3813 "ripper.y" 9951 #line 3821 "ripper.y" 9956 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9964 #line 3832 "ripper.y" 9966 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9973 #line 3839 "ripper.y" 9976 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9978 (yyval.
val) = dispatch1(ensure, (yyvsp[(2) - (2)].
val));
9986 #line 3851 "ripper.y" 9991 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].
val));
9999 #line 3862 "ripper.y" 10002 NODE *node = (yyvsp[(1) - (1)].
val);
10009 (yyval.
val) = node;
10011 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10019 #line 3881 "ripper.y" 10024 (yyval.
val) = dispatch2(string_concat, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10032 #line 3891 "ripper.y" 10041 #line 3897 "ripper.y" 10050 #line 3903 "ripper.y" 10059 #line 3909 "ripper.y" 10064 (yyval.
val) = dispatch0(words_new);
10065 (yyval.
val) = dispatch1(array, (yyval.
val));
10073 #line 3918 "ripper.y" 10076 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10078 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
10086 #line 3928 "ripper.y" 10091 (yyval.
val) = dispatch0(words_new);
10099 #line 3936 "ripper.y" 10104 (yyval.
val) = dispatch2(words_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
10112 #line 3948 "ripper.y" 10114 (yyval.
val) = dispatch0(word_new);
10115 (yyval.
val) = dispatch2(word_add, (yyval.
val), (yyvsp[(1) - (1)].
val));
10122 #line 3954 "ripper.y" 10127 (yyval.
val) = dispatch2(word_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10135 #line 3964 "ripper.y" 10140 (yyval.
val) = dispatch0(symbols_new);
10141 (yyval.
val) = dispatch1(array, (yyval.
val));
10149 #line 3973 "ripper.y" 10152 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10154 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
10162 #line 3983 "ripper.y" 10167 (yyval.
val) = dispatch0(symbols_new);
10175 #line 3991 "ripper.y" 10188 (yyval.
val) = dispatch2(symbols_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
10196 #line 4009 "ripper.y" 10201 (yyval.
val) = dispatch0(qwords_new);
10202 (yyval.
val) = dispatch1(array, (yyval.
val));
10210 #line 4018 "ripper.y" 10213 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10215 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
10223 #line 4028 "ripper.y" 10228 (yyval.
val) = dispatch0(qsymbols_new);
10229 (yyval.
val) = dispatch1(array, (yyval.
val));
10237 #line 4037 "ripper.y" 10240 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10242 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
10250 #line 4047 "ripper.y" 10255 (yyval.
val) = dispatch0(qwords_new);
10263 #line 4055 "ripper.y" 10268 (yyval.
val) = dispatch2(qwords_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
10276 #line 4065 "ripper.y" 10281 (yyval.
val) = dispatch0(qsymbols_new);
10289 #line 4073 "ripper.y" 10298 (yyval.
val) = dispatch2(qsymbols_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
10306 #line 4087 "ripper.y" 10311 (yyval.
val) = dispatch0(string_content);
10319 #line 4095 "ripper.y" 10324 (yyval.
val) = dispatch2(string_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10332 #line 4105 "ripper.y" 10337 (yyval.
val) = dispatch0(xstring_new);
10345 #line 4113 "ripper.y" 10350 (yyval.
val) = dispatch2(xstring_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10358 #line 4123 "ripper.y" 10363 (yyval.
val) = ripper_new_yylval(0, dispatch0(regexp_new), 0);
10371 #line 4131 "ripper.y" 10374 NODE *head = (yyvsp[(1) - (2)].
val), *tail = (yyvsp[(2) - (2)].
val);
10376 (yyval.
val) = tail;
10379 (yyval.
val) = head;
10395 VALUE s1 = 1, s2 = 0, n1 = (yyvsp[(1) - (2)].
val), n2 = (yyvsp[(2) - (2)].
val);
10396 if (ripper_is_node_yylval(n1)) {
10397 s1 =
RNODE(n1)->nd_cval;
10398 n1 =
RNODE(n1)->nd_rval;
10400 if (ripper_is_node_yylval(n2)) {
10401 s2 =
RNODE(n2)->nd_cval;
10402 n2 =
RNODE(n2)->nd_rval;
10404 (yyval.
val) = dispatch2(regexp_add, n1, n2);
10406 (yyval.
val) = ripper_new_yylval(0, (yyval.
val), s2);
10415 #line 4173 "ripper.y" 10426 #line 4179 "ripper.y" 10432 (yyval.
val) = dispatch1(string_dvar, (yyvsp[(3) - (3)].
val));
10440 #line 4188 "ripper.y" 10452 #line 4194 "ripper.y" 10462 #line 4198 "ripper.y" 10472 #line 4202 "ripper.y" 10482 #line 4206 "ripper.y" 10492 #line 4211 "ripper.y" 10505 (yyval.
val) = dispatch1(string_embexpr, (yyvsp[(7) - (8)].
val));
10513 #line 4229 "ripper.y" 10518 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10526 #line 4237 "ripper.y" 10531 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10539 #line 4245 "ripper.y" 10544 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10552 #line 4256 "ripper.y" 10556 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10558 (yyval.
val) = dispatch1(symbol, (yyvsp[(2) - (2)].
val));
10566 #line 4273 "ripper.y" 10572 (yyval.
val) = dispatch1(dyna_symbol, (yyvsp[(2) - (3)].
val));
10580 #line 4285 "ripper.y" 10583 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10594 #line 4308 "ripper.y" 10601 #line 4309 "ripper.y" 10608 #line 4310 "ripper.y" 10615 #line 4311 "ripper.y" 10622 #line 4312 "ripper.y" 10629 #line 4313 "ripper.y" 10636 #line 4314 "ripper.y" 10643 #line 4318 "ripper.y" 10648 if (id_is_var(
get_id((yyvsp[(1) - (1)].
val)))) {
10649 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10652 (yyval.
val) = dispatch1(vcall, (yyvsp[(1) - (1)].
val));
10661 #line 4331 "ripper.y" 10666 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10674 #line 4341 "ripper.y" 10687 #line 4349 "ripper.y" 10700 #line 4363 "ripper.y" 10710 #line 4368 "ripper.y" 10712 (yyval.
val) = (yyvsp[(3) - (4)].
val);
10719 #line 4372 "ripper.y" 10732 #line 4382 "ripper.y" 10735 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10737 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].
val));
10747 #line 4391 "ripper.y" 10758 #line 4397 "ripper.y" 10761 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10770 #line 4406 "ripper.y" 10779 #line 4410 "ripper.y" 10788 #line 4414 "ripper.y" 10797 #line 4418 "ripper.y" 10806 #line 4424 "ripper.y" 10808 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10815 #line 4428 "ripper.y" 10824 #line 4434 "ripper.y" 10833 #line 4438 "ripper.y" 10835 (yyval.
val) =
new_args((yyvsp[(1) - (8)].
val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].
val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].
val));
10842 #line 4442 "ripper.y" 10851 #line 4446 "ripper.y" 10860 #line 4450 "ripper.y" 10869 #line 4454 "ripper.y" 10878 #line 4458 "ripper.y" 10887 #line 4462 "ripper.y" 10896 #line 4466 "ripper.y" 10905 #line 4470 "ripper.y" 10914 #line 4474 "ripper.y" 10923 #line 4478 "ripper.y" 10932 #line 4482 "ripper.y" 10941 #line 4486 "ripper.y" 10950 #line 4490 "ripper.y" 10960 #line 4497 "ripper.y" 10963 yyerror(
"formal argument cannot be a constant");
10966 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10975 #line 4507 "ripper.y" 10978 yyerror(
"formal argument cannot be an instance variable");
10981 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10990 #line 4517 "ripper.y" 10993 yyerror(
"formal argument cannot be a global variable");
10996 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
11005 #line 4527 "ripper.y" 11008 yyerror(
"formal argument cannot be a class variable");
11011 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
11020 #line 4540 "ripper.y" 11023 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11030 #line 4547 "ripper.y" 11035 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11042 #line 4556 "ripper.y" 11056 #line 4565 "ripper.y" 11070 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
11078 #line 4586 "ripper.y" 11087 #line 4591 "ripper.y" 11090 (yyval.
val) = (yyvsp[(1) - (3)].
val);
11103 #line 4605 "ripper.y" 11108 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11115 #line 4614 "ripper.y" 11130 #line 4624 "ripper.y" 11145 #line 4636 "ripper.y" 11159 #line 4645 "ripper.y" 11173 #line 4656 "ripper.y" 11176 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11186 #line 4664 "ripper.y" 11199 #line 4675 "ripper.y" 11202 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11212 #line 4683 "ripper.y" 11225 #line 4697 "ripper.y" 11228 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11235 #line 4702 "ripper.y" 11245 #line 4709 "ripper.y" 11260 #line 4721 "ripper.y" 11275 #line 4733 "ripper.y" 11278 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11288 #line 4741 "ripper.y" 11291 NODE *opts = (yyvsp[(1) - (3)].
val);
11293 while (opts->nd_next) {
11294 opts = opts->nd_next;
11296 opts->nd_next = (yyvsp[(3) - (3)].
val);
11297 (yyval.
val) = (yyvsp[(1) - (3)].
val);
11307 #line 4757 "ripper.y" 11310 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11320 #line 4765 "ripper.y" 11323 NODE *opts = (yyvsp[(1) - (3)].
val);
11325 while (opts->nd_next) {
11326 opts = opts->nd_next;
11328 opts->nd_next = (yyvsp[(3) - (3)].
val);
11329 (yyval.
val) = (yyvsp[(1) - (3)].
val);
11339 #line 4785 "ripper.y" 11343 yyerror(
"rest argument must be local variable");
11347 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11349 (yyval.
val) = dispatch1(rest_param, (yyvsp[(2) - (2)].
val));
11357 #line 4798 "ripper.y" 11363 (yyval.
val) = dispatch1(rest_param,
Qnil);
11371 #line 4813 "ripper.y" 11375 yyerror(
"block argument must be local variable");
11377 yyerror(
"duplicated block argument name");
11381 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11383 (yyval.
val) = dispatch1(blockarg, (yyvsp[(2) - (2)].
val));
11391 #line 4830 "ripper.y" 11393 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11400 #line 4834 "ripper.y" 11413 #line 4844 "ripper.y" 11417 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11420 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11428 #line 4853 "ripper.y" 11435 #line 4854 "ripper.y" 11438 if ((yyvsp[(3) - (4)].
val) == 0) {
11439 yyerror(
"can't define singleton method for ().");
11451 yyerror(
"can't define singleton method for literals");
11457 (yyval.
val) = (yyvsp[(3) - (4)].
val);
11459 (yyval.
val) = dispatch1(paren, (yyvsp[(3) - (4)].
val));
11467 #line 4884 "ripper.y" 11470 (yyval.
val) = (yyvsp[(1) - (2)].
val);
11472 (yyval.
val) = dispatch1(assoclist_from_args, (yyvsp[(1) - (2)].
val));
11480 #line 4896 "ripper.y" 11489 #line 4901 "ripper.y" 11492 NODE *assocs = (yyvsp[(1) - (3)].
val);
11493 NODE *tail = (yyvsp[(3) - (3)].
val);
11498 if (assocs->nd_head &&
11502 tail = tail->nd_next->nd_head->nd_head;
11506 (yyval.
val) = assocs;
11516 #line 4925 "ripper.y" 11525 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
11533 #line 4937 "ripper.y" 11538 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
11546 #line 4945 "ripper.y" 11551 (yyval.
val) = dispatch2(assoc_new, dispatch1(dyna_symbol, (yyvsp[(2) - (4)].
val)), (yyvsp[(4) - (4)].
val));
11559 #line 4953 "ripper.y" 11563 !((yyvsp[(2) - (2)].
val)->nd_head && (yyvsp[(2) - (2)].
val)->
nd_head->nd_alen))
11568 (yyval.
val) = dispatch1(assoc_splat, (yyvsp[(2) - (2)].
val));
11576 #line 4985 "ripper.y" 11577 { (yyval.
val) = (yyvsp[(1) - (1)].
val); }
11583 #line 4990 "ripper.y" 11584 { (yyval.
val) = (yyvsp[(1) - (1)].
val); }
11590 #line 4995 "ripper.y" 11603 #line 5003 "ripper.y" 11616 #line 5014 "ripper.y" 11629 #line 5042 "ripper.y" 11636 #line 5047 "ripper.y" 11643 #line 5051 "ripper.y" 11656 #line 11655 "parse.c" 11684 yystate = yypgoto[yyn -
YYNTOKENS] + *yyssp;
11685 if (0 <= yystate && yystate <=
YYLAST && yycheck[yystate] == *yyssp)
11686 yystate = yytable[yystate];
11705 #if ! YYERROR_VERBOSE 11708 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ 11711 char const *yymsgp =
YY_(
"syntax error");
11712 int yysyntax_error_status;
11714 if (yysyntax_error_status == 0)
11716 else if (yysyntax_error_status == 1)
11718 if (yymsg != yymsgbuf)
11724 yymsg_alloc =
sizeof yymsgbuf;
11725 yysyntax_error_status = 2;
11734 if (yysyntax_error_status == 2)
11735 goto yyexhaustedlab;
11737 # undef YYSYNTAX_ERROR 11743 if (yyerrstatus == 3)
11748 if (yychar <=
YYEOF)
11751 if (yychar ==
YYEOF)
11757 yytoken, &yylval, parser);
11795 yyn = yypact[yystate];
11801 yyn = yytable[yyn];
11813 yystos[yystate], yyvsp, parser);
11843 #if !defined(yyoverflow) || YYERROR_VERBOSE 11859 yydestruct (
"Cleanup: discarding lookahead",
11860 yytoken, &yylval, parser);
11866 while (yyssp != yyss)
11869 yystos[*yyssp], yyvsp, parser);
11876 #if YYERROR_VERBOSE 11877 if (yymsg != yymsgbuf)
11881 return YYID (yyresult);
11887 #line 5059 "ripper.y" 11892 # define yylval (*parser->lval) 11901 # define nextc() parser_nextc(parser) 11902 # define pushback(c) parser_pushback(parser, (c)) 11903 # define newtok() parser_newtok(parser) 11904 # define tokspace(n) parser_tokspace(parser, (n)) 11905 # define tokadd(c) parser_tokadd(parser, (c)) 11906 # define tok_hex(numlen) parser_tok_hex(parser, (numlen)) 11907 # define read_escape(flags,e) parser_read_escape(parser, (flags), (e)) 11908 # define tokadd_escape(e) parser_tokadd_escape(parser, (e)) 11909 # define regx_options() parser_regx_options(parser) 11910 # define tokadd_string(f,t,p,n,e) parser_tokadd_string(parser,(f),(t),(p),(n),(e)) 11911 # define parse_string(n) parser_parse_string(parser,(n)) 11912 # define tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc)) 11913 # define here_document(n) parser_here_document(parser,(n)) 11914 # define heredoc_identifier() parser_heredoc_identifier(parser) 11915 # define heredoc_restore(n) parser_heredoc_restore(parser,(n)) 11916 # define whole_match_p(e,l,i) parser_whole_match_p(parser,(e),(l),(i)) 11917 # define number_literal_suffix(f) parser_number_literal_suffix(parser, (f)) 11918 # define set_number_literal(v, t, f) parser_set_number_literal(parser, (v), (t), (f)) 11919 # define set_integer_literal(v, f) parser_set_integer_literal(parser, (v), (f)) 11922 # define set_yylval_str(x) (yylval.node = NEW_STR(x)) 11923 # define set_yylval_num(x) (yylval.num = (x)) 11924 # define set_yylval_id(x) (yylval.id = (x)) 11925 # define set_yylval_name(x) (yylval.id = (x)) 11926 # define set_yylval_literal(x) (yylval.node = NEW_LIT(x)) 11927 # define set_yylval_node(x) (yylval.node = (x)) 11928 # define yylval_id() (yylval.id) 11930 static inline VALUE 11931 ripper_yylval_id(
ID x)
11933 return ripper_new_yylval(x,
ID2SYM(x), 0);
11935 # define set_yylval_str(x) (yylval.val = (x)) 11936 # define set_yylval_num(x) (yylval.val = ripper_new_yylval((x), 0, 0)) 11937 # define set_yylval_id(x) (void)(x) 11938 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x)) 11939 # define set_yylval_literal(x) (void)(x) 11940 # define set_yylval_node(x) (void)(x) 11941 # define yylval_id() yylval.id 11945 #define ripper_flush(p) (void)(p) 11946 #define dispatch_scan_event(t) ((void)0) 11947 #define dispatch_delayed_token(t) ((void)0) 11948 #define has_delayed_token() (0) 11950 #define ripper_flush(p) ((p)->tokp = (p)->lex.pcur) 11952 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val)) 11954 static inline VALUE 11955 intern_sym(
const char *
name)
11966 return lex_p > parser->tokp;
11979 ripper_dispatch_scan_event(
struct parser_params *parser,
int t)
11981 if (!ripper_has_scan_event(parser))
return;
11982 yylval_rval = ripper_scan_event_val(parser, t);
11984 #define dispatch_scan_event(t) ripper_dispatch_scan_event(parser, t) 11987 ripper_dispatch_delayed_token(
struct parser_params *parser,
int t)
11990 const char *saved_tokp = parser->tokp;
11993 parser->tokp =
lex_pbeg + parser->delayed_col;
11995 parser->delayed =
Qnil;
11997 parser->tokp = saved_tokp;
11999 #define dispatch_delayed_token(t) ripper_dispatch_delayed_token(parser, t) 12000 #define has_delayed_token() (!NIL_P(parser->delayed)) 12006 #define parser_encoding_name() (current_enc->name) 12007 #define parser_mbclen() mbclen((lex_p-1),lex_pend,current_enc) 12008 #define is_identchar(p,e,enc) (rb_enc_isalnum((unsigned char)(*(p)),(enc)) || (*(p)) == '_' || !ISASCII(*(p))) 12009 #define parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,current_enc)) 12011 #define parser_isascii() ISASCII(*(lex_p-1)) 12018 for (p =
lex_pbeg; p < pend; p++) {
12031 for (p =
lex_pbeg; p < pend; p++) {
12032 if (*p !=
' ' && *p !=
'\t') {
12063 if (!ptinfo)
return;
12071 "mismatched indentations at '%s' with '%s' at %d",
12093 const int max_line_margin = 30;
12094 const char *p, *pe;
12095 const char *pre =
"", *post =
"";
12096 const char *code =
"", *caret =
"", *newline =
"";
12105 if (*(p-1) ==
'\n')
break;
12112 if (*pe ==
'\n')
break;
12120 if (len > max_line_margin * 2 + 10) {
12121 if (
lex_p - p > max_line_margin) {
12125 if (pe -
lex_p > max_line_margin) {
12131 i = (int)(
lex_p - p);
12136 *p2++ = *p++ ==
'\t' ?
'\t' :
' ';
12147 pre, (
int)len, code, post, newline,
12150 dispatch1(parse_error,
STR_NEW2(msg));
12163 CONST_ID(script_lines,
"SCRIPT_LINES__");
12179 if (
RTEST(coverages) &&
RBASIC(coverages)->klass == 0) {
12219 #define RUBY_DTRACE_PARSE_HOOK(name) \ 12220 if (RUBY_DTRACE_PARSE_##name##_ENABLED()) { \ 12221 RUBY_DTRACE_PARSE_##name(ruby_sourcefile, ruby_sourceline); \ 12235 if (parser->error_p) {
12236 VALUE mesg = parser->error_buffer;
12248 VALUE opt = parser->compile_option;
12253 return (
VALUE)tree;
12279 char *beg, *end, *start;
12290 end = memchr(beg,
'\n', len);
12291 if (end) len = ++end - beg;
12300 if (
NIL_P(line))
return line;
12402 node =
yycompile(parser, fname, start);
12409 #define STR_FUNC_ESCAPE 0x01 12410 #define STR_FUNC_EXPAND 0x02 12411 #define STR_FUNC_REGEXP 0x04 12412 #define STR_FUNC_QWORDS 0x08 12413 #define STR_FUNC_SYMBOL 0x10 12414 #define STR_FUNC_INDENT 0x20 12415 #define STR_FUNC_LABEL 0x40 12416 #define STR_TERM_END -1 12447 #define lex_goto_eol(parser) ((parser)->lex.pcur = (parser)->lex.pend) 12448 #define lex_eol_p() (lex_p >= lex_pend) 12449 #define peek(c) peek_n((c), 0) 12450 #define peek_n(c,n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n]) 12451 #define peekc() peekc_n(0) 12452 #define peekc_n(n) (lex_p+(n) < lex_pend ? (unsigned char)lex_p[n] : -1) 12476 parser->tokp,
lex_pend - parser->tokp);
12478 parser->delayed_col = (int)(parser->tokp -
lex_pbeg);
12482 parser->tokp,
lex_pend - parser->tokp);
12509 rb_warn0(
"encountered \\r in middle of line, treated as a mere space");
12522 c = (
unsigned char)*
lex_p++;
12533 if (c == -1)
return;
12540 #define was_bol() (lex_p == lex_pbeg + 1) 12542 #define tokfix() (tokenbuf[tokidx]='\0') 12543 #define tok() tokenbuf 12544 #define toklen() tokidx 12545 #define toklast() (tokidx>0?tokenbuf[tokidx-1]:0) 12592 yyerror(
"invalid hex escape");
12599 #define tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n)) 12603 int regexp_literal,
int wide)
12607 if (wide ? (numlen == 0) : (numlen < 4)) {
12608 yyerror(
"invalid Unicode escape");
12611 if (codepoint > 0x10ffff) {
12612 yyerror(
"invalid Unicode codepoint (too large)");
12615 if ((codepoint & 0xfffff800) == 0xd800) {
12616 yyerror(
"invalid Unicode codepoint");
12620 if (regexp_literal) {
12623 else if (codepoint >= 0x80) {
12636 int string_literal,
int symbol_literal,
int regexp_literal)
12645 const int open_brace =
'{', close_brace =
'}';
12649 if (
peek(open_brace)) {
12653 while (!string_literal || c != close_brace) {
12654 if (regexp_literal)
tokadd(last);
12660 if (!string_literal)
break;
12663 if (c != close_brace) {
12664 yyerror(
"unterminated Unicode escape");
12668 if (regexp_literal)
tokadd(close_brace);
12680 #define ESCAPE_CONTROL 1 12681 #define ESCAPE_META 2 12690 switch (c =
nextc()) {
12715 case '0':
case '1':
case '2':
case '3':
12716 case '4':
case '5':
case '6':
case '7':
12724 if (numlen == 0)
return 0;
12735 if ((c =
nextc()) !=
'-') {
12739 if ((c =
nextc()) ==
'\\') {
12740 if (
peek(
'u'))
goto eof;
12741 return read_escape(flags|ESCAPE_META, encp) | 0x80;
12743 else if (c == -1 || !
ISASCII(c))
goto eof;
12745 return ((c & 0xff) | 0x80);
12749 if ((c =
nextc()) !=
'-') {
12755 if ((c =
nextc())==
'\\') {
12756 if (
peek(
'u'))
goto eof;
12761 else if (c == -1 || !
ISASCII(c))
goto eof;
12766 yyerror(
"Invalid escape character syntax");
12789 switch (c =
nextc()) {
12793 case '0':
case '1':
case '2':
case '3':
12794 case '4':
case '5':
case '6':
case '7':
12797 if (numlen == 0)
goto eof;
12806 if (numlen == 0)
return -1;
12813 if ((c =
nextc()) !=
'-') {
12823 if ((c =
nextc()) !=
'-') {
12831 if (flags & ESCAPE_CONTROL)
goto eof;
12835 if ((c =
nextc()) ==
'\\') {
12838 else if (c == -1)
goto eof;
12844 yyerror(
"Invalid escape character syntax");
12901 if (len < 0)
return -1;
12908 #define tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c)) 12914 case '$':
case '*':
case '+':
case '.':
12915 case '?':
case '^':
case '|':
12916 case ')':
case ']':
case '}':
case '>':
12934 else if (c ==
'\t') {
12939 else if (c !=
'\n') {
12951 int func,
int term,
int paren,
long *nest,
12955 int has_nonascii = 0;
12958 static const char mixed_msg[] =
"%s mixed within %s source";
12960 #define mixed_error(enc1, enc2) if (!errbuf) { \ 12961 size_t len = sizeof(mixed_msg) - 4; \ 12962 len += strlen(rb_enc_name(enc1)); \ 12963 len += strlen(rb_enc_name(enc2)); \ 12964 errbuf = ALLOCA_N(char, len); \ 12965 snprintf(errbuf, len, mixed_msg, \ 12966 rb_enc_name(enc1), \ 12967 rb_enc_name(enc2)); \ 12970 #define mixed_escape(beg, enc1, enc2) do { \ 12971 const char *pos = lex_p; \ 12973 mixed_error((enc1), (enc2)); \ 12977 while ((c =
nextc()) != -1) {
12982 if (paren && c == paren) {
12985 else if (c == term) {
12986 if (!nest || !*nest) {
12994 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
12999 else if (c ==
'\\') {
13000 const char *beg =
lex_p - 1;
13005 if (func & STR_FUNC_EXPAND)
continue;
13014 if ((func & STR_FUNC_EXPAND) == 0) {
13021 if (has_nonascii && enc != *encp) {
13027 if (c == -1)
return -1;
13029 if ((func & STR_FUNC_EXPAND) == 0)
tokadd(
'\\');
13032 if (func & STR_FUNC_REGEXP) {
13040 if (has_nonascii && enc != *encp) {
13045 else if (func & STR_FUNC_EXPAND) {
13047 if (func & STR_FUNC_ESCAPE)
tokadd(
'\\');
13050 else if ((func & STR_FUNC_QWORDS) &&
ISSPACE(c)) {
13053 else if (c != term && !(paren && c == paren)) {
13063 if (enc != *encp) {
13076 if (enc != *encp) {
13087 #define NEW_STRTERM(func, term, paren) \ 13088 rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0) 13095 if (!ripper_is_node_yylval(content))
13096 content = ripper_new_yylval(0, 0, content);
13098 ptrdiff_t
len =
lex_p - parser->tokp;
13103 parser->tokp =
lex_p;
13107 if (
yylval.val != content)
13112 #define flush_string_content(enc) ripper_flush_string_content(parser, (enc)) 13114 #define flush_string_content(enc) ((void)(enc)) 13121 #define BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0) 13122 #define SPECIAL_PUNCT(idx) ( \ 13123 BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', idx) | \ 13124 BIT('!', idx) | BIT('@', idx) | BIT('/', idx) | BIT('\\', idx) | \ 13125 BIT(';', idx) | BIT(',', idx) | BIT('.', idx) | BIT('=', idx) | \ 13126 BIT(':', idx) | BIT('<', idx) | BIT('>', idx) | BIT('\"', idx) | \ 13127 BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \ 13135 #undef SPECIAL_PUNCT 13142 const char *p =
lex_p;
13148 if ((c = *p) ==
'-') {
13157 if ((c = *p) ==
'@') {
13186 int func = (int)quote->nd_func;
13198 if (c ==
term && !quote->nd_nest) {
13199 if (func & STR_FUNC_QWORDS) {
13252 else if (c ==
'~') {
13270 while ((c =
nextc()) != -1 && c !=
term) {
13272 if (!newline && c ==
'\n') newline = 1;
13273 else if (newline) newline = 2;
13281 rb_warn0(
"here document identifier ends with a newline");
13328 line = here->nd_orig;
13348 for (i = 0; i < len && col < width; i++) {
13349 if (str[i] ==
' ') {
13352 else if (str[i] ==
'\t') {
13354 if (n > width)
break;
13366 MEMMOVE(str, str + i,
char, len - i);
13375 NODE *node, *str_node;
13379 if (indent <= 0)
return root;
13381 if (!root)
return root;
13383 node = str_node = root;
13387 VALUE lit = str_node->nd_lit;
13393 if ((str_node = node->nd_head) != 0) {
13409 if (indent <= 0)
return array;
13429 const char *eos,
long len,
int indent)
13435 while (*p &&
ISSPACE(*p)) p++;
13438 if (n < 0)
return FALSE;
13439 if (n > 0 && p[len] !=
'\n') {
13440 if (p[len] !=
'\r')
return FALSE;
13441 if (n <= 1 || p[len+1] !=
'\n')
return FALSE;
13443 return strncmp(eos, p, len) == 0;
13446 #define NUM_SUFFIX_R (1<<0) 13447 #define NUM_SUFFIX_I (1<<1) 13448 #define NUM_SUFFIX_ALL 3 13454 const char *lastp =
lex_p;
13456 while ((c =
nextc()) != -1) {
13459 mask &= ~NUM_SUFFIX_I;
13466 mask &= ~NUM_SUFFIX_R;
13477 yyerror(
"unexpected fraction part after numeric literal");
13523 #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser) 13525 #define dispatch_heredoc_end() ((void)0) 13531 int c,
func, indent = 0;
13532 const char *eos, *p, *
pend;
13541 if ((c =
nextc()) == -1) {
13552 else if ((len =
lex_p - parser->tokp) > 0) {
13583 switch (pend[-1]) {
13585 if (--pend == p || pend[-1] !=
'\r') {
13612 if (
nextc() == -1) {
13633 if (parser->
eofp)
goto error;
13648 if ((c =
nextc()) == -1)
goto error;
13669 rb_warning1(
"ambiguous first argument; put parentheses or a space even after `%c' operator",
WARN_I(c));
13674 #define arg_ambiguous(c) (arg_ambiguous_gen(parser, (c)), 1) 13684 yyerror(
"formal argument cannot be a constant");
13687 yyerror(
"formal argument cannot be an instance variable");
13690 yyerror(
"formal argument cannot be a global variable");
13693 yyerror(
"formal argument cannot be a class variable");
13696 yyerror(
"formal argument must be local variable");
13700 lhs = dispatch1(param_error, lhs);
13721 if (len > 5 && name[nlen = len - 5] ==
'-') {
13722 if (
rb_memcicmp(name + nlen + 1,
"unix", 4) == 0)
13725 if (len > 4 && name[nlen = len - 4] ==
'-') {
13728 if (
rb_memcicmp(name + nlen + 1,
"mac", 3) == 0 &&
13729 !(len == 8 &&
rb_memcicmp(name,
"utf8-mac", len) == 0))
13744 excargs[1] =
rb_sprintf(
"unknown encoding name: %s", name);
13761 for (i = 0; i < n; ++i) {
13796 case 't':
case 'T':
13801 case 'f':
case 'F':
13837 # if WARN_PAST_SCOPE 13839 parser_set_past_scope(
struct parser_params *parser,
const char *name,
const char *
val)
13842 if (b >= 0) parser->past_scope_enabled = b;
13857 # if WARN_PAST_SCOPE 13858 {
"warn_past_scope", parser_set_past_scope},
13862 static const char *
13870 if (str[i-1] ==
'*' && str[i-2] ==
'-') {
13871 return str + i + 1;
13876 if (i + 1 >= len)
return 0;
13877 if (str[i+1] !=
'-') {
13880 else if (str[i-1] !=
'-') {
13884 return str + i + 2;
13899 VALUE name = 0, val = 0;
13900 const char *beg, *end, *vbeg, *vend;
13901 #define str_copy(_s, _p, _n) ((_s) \ 13902 ? (void)(rb_str_resize((_s), (_n)), \ 13903 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \ 13904 : (void)((_s) = STR_NEW((_p), (_n)))) 13906 if (len <= 7)
return FALSE;
13912 len = end - beg - 3;
13922 for (; len > 0 && *str; str++, --
len) {
13924 case '\'':
case '"':
case ':':
case ';':
13929 for (beg = str; len > 0; str++, --
len) {
13931 case '\'':
case '"':
case ':':
case ';':
13939 for (end = str; len > 0 &&
ISSPACE(*str); str++, --
len);
13942 if (!indicator)
return FALSE;
13946 do str++;
while (--len > 0 &&
ISSPACE(*str));
13949 for (vbeg = ++str; --len > 0 && *str !=
'"'; str++) {
13950 if (*str ==
'\\') {
13962 for (vbeg = str; len > 0 && *str !=
'"' && *str !=
';' && !
ISSPACE(*str); --
len, str++);
13966 while (len > 0 && (*str ==
';' ||
ISSPACE(*str))) --len, str++;
13969 while (len > 0 && (
ISSPACE(*str))) --len, str++;
13970 if (len)
return FALSE;
13976 for (i = 0; i < n; ++i) {
13977 if (s[i] ==
'-') s[i] =
'_';
13983 n = (*p->
length)(parser, vbeg, n);
13989 }
while (++p < magic_comments +
numberof(magic_comments));
14003 const char *beg = str;
14007 if (send - str <= 6)
return;
14009 case 'C':
case 'c': str += 6;
continue;
14010 case 'O':
case 'o': str += 5;
continue;
14011 case 'D':
case 'd': str += 4;
continue;
14012 case 'I':
case 'i': str += 3;
continue;
14013 case 'N':
case 'n': str += 2;
continue;
14014 case 'G':
case 'g': str += 1;
continue;
14015 case '=':
case ':':
14028 if (++str >= send)
return;
14031 if (*str !=
'=' && *str !=
':')
return;
14036 while ((*str ==
'-' || *str ==
'_' ||
ISALNUM(*str)) && ++str < send);
14052 (
unsigned char)
lex_p[0] == 0xbb &&
14053 (
unsigned char)
lex_p[1] == 0xbf) {
14068 #define IS_ARG() IS_lex_state(EXPR_ARG_ANY) 14069 #define IS_END() IS_lex_state(EXPR_END_ANY) 14070 #define IS_BEG() (IS_lex_state(EXPR_BEG_ANY) || IS_lex_state_all(EXPR_ARG|EXPR_LABELED)) 14071 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c)) 14072 #define IS_LABEL_POSSIBLE() (\ 14073 (IS_lex_state(EXPR_LABEL|EXPR_ENDFN) && !cmd_state) || \ 14075 #define IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1)) 14076 #define IS_AFTER_OPERATOR() IS_lex_state(EXPR_FNAME | EXPR_DOT) 14079 #define ambiguous_operator(op, syn) ( \ 14080 rb_warning0("`"op"' after local variable or literal is interpreted as binary operator"), \ 14081 rb_warning0("even though it seems like "syn"")) 14083 #define ambiguous_operator(op, syn) dispatch2(operator_ambiguous, ripper_intern(op), rb_str_new_cstr(syn)) 14085 #define warn_balanced(op, syn) ((void) \ 14086 (!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN) && \ 14087 space_seen && !ISSPACE(c) && \ 14088 (ambiguous_operator(op, syn), 0))) 14094 char *point = &str[seen_point];
14095 size_t fraclen = len-seen_point-1;
14096 memmove(point, point+1, fraclen+1);
14104 int is_float, seen_point, seen_e, nondigit;
14107 is_float = seen_point = seen_e = nondigit = 0;
14110 if (c ==
'-' || c ==
'+') {
14115 #define no_digits() do {yyerror("numeric literal without digits"); return 0;} while (0) 14118 if (c ==
'x' || c ==
'X') {
14124 if (nondigit)
break;
14131 }
while ((c =
nextc()) != -1);
14135 if (
toklen() == start) {
14138 else if (nondigit)
goto trailing_uc;
14142 if (c ==
'b' || c ==
'B') {
14145 if (c ==
'0' || c ==
'1') {
14148 if (nondigit)
break;
14152 if (c !=
'0' && c !=
'1')
break;
14155 }
while ((c =
nextc()) != -1);
14159 if (
toklen() == start) {
14162 else if (nondigit)
goto trailing_uc;
14166 if (c ==
'd' || c ==
'D') {
14172 if (nondigit)
break;
14179 }
while ((c =
nextc()) != -1);
14183 if (
toklen() == start) {
14186 else if (nondigit)
goto trailing_uc;
14194 if (c ==
'o' || c ==
'O') {
14197 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
14201 if (c >=
'0' && c <=
'7') {
14206 if (nondigit)
break;
14210 if (c < '0' || c >
'9')
break;
14211 if (c >
'7')
goto invalid_octal;
14214 }
while ((c =
nextc()) != -1);
14218 if (nondigit)
goto trailing_uc;
14227 if (c >
'7' && c <=
'9') {
14229 yyerror(
"Invalid octal digit");
14231 else if (c ==
'.' || c ==
'e' || c ==
'E') {
14243 case '0':
case '1':
case '2':
case '3':
case '4':
14244 case '5':
case '6':
case '7':
case '8':
case '9':
14250 if (nondigit)
goto trailing_uc;
14251 if (seen_point || seen_e) {
14256 if (c0 == -1 || !
ISDIGIT(c0)) {
14281 if (c !=
'-' && c !=
'+' && !
ISDIGIT(c)) {
14290 nondigit = (c ==
'-' || c ==
'+') ? c : 0;
14294 if (nondigit)
goto decode_num;
14309 snprintf(tmp,
sizeof(tmp),
"trailing `%c' in number", nondigit);
14324 if (
errno == ERANGE) {
14391 const char *start =
lex_p - 1, *p = start;
14394 if (n < 0)
return -1;
14397 rb_warn2(
"`?' just followed by `%.*s' is interpreted as" \
14398 " a conditional operator, put a space after `?'",
14403 else if (c ==
'\\') {
14438 if (c == -1 || !
ISALNUM(c)) {
14445 yyerror(
"unknown type of %string");
14449 if (c == -1 || term == -1) {
14454 if (term ==
'(') term =
')';
14455 else if (term ==
'[') term =
']';
14456 else if (term ==
'{') term =
'}';
14457 else if (term ==
'<') term =
'>';
14507 yyerror(
"unknown type of %string");
14511 if ((c =
nextc()) ==
'=') {
14552 const unsigned long nth_ref_max =
14553 ((FIXNUM_MAX < INT_MAX) ? FIXNUM_MAX : INT_MAX) >> 1;
14557 if (overflow || n > nth_ref_max) {
14634 case '1':
case '2':
case '3':
14635 case '4':
case '5':
case '6':
14636 case '7':
case '8':
case '9':
14641 }
while (c != -1 &&
ISDIGIT(c));
14673 register int c =
nextc();
14683 if (result ==
tIVAR) {
14693 if (result ==
tIVAR) {
14721 if ((c ==
'!' || c ==
'?') && !
peek(
'=')) {
14734 register int c =
nextc();
14735 if (c ==
'=' && !
peek(
'~') && !
peek(
'>') &&
14792 if (kw->
id[0] != kw->
id[1])
14827 int space_seen = 0;
14831 int fallthru =
FALSE;
14854 token ==
tLABEL_END ? EXPR_BEG|EXPR_LABEL : EXPR_END|EXPR_ENDARG;
14867 switch (c =
nextc()) {
14875 case ' ':
case '\t':
case '\f':
case '\r':
14879 while ((c =
nextc())) {
14881 case ' ':
case '\t':
case '\f':
case '\r':
14908 c = (
IS_lex_state(EXPR_BEG|EXPR_CLASS|EXPR_FNAME|EXPR_DOT) &&
14916 goto normal_newline;
14920 while ((c =
nextc())) {
14922 case ' ':
case '\t':
case '\f':
case '\r':
14929 if (
peek(
'.') == (c ==
'&')) {
14942 parser->tokp =
lex_p;
14945 goto normal_newline;
14954 if ((c =
nextc()) ==
'*') {
14955 if ((c =
nextc()) ==
'=') {
14962 rb_warning0(
"`**' interpreted as argument prefix");
14981 rb_warning0(
"`*' interpreted as argument prefix");
15019 int first_p =
TRUE;
15034 if (c !=
'=')
continue;
15035 if (c ==
'=' && strncmp(
lex_p,
"end", 3) == 0 &&
15047 if ((c =
nextc()) ==
'=') {
15048 if ((c =
nextc()) ==
'=') {
15057 else if (c ==
'>') {
15071 if (token)
return token;
15082 if ((c =
nextc()) ==
'>') {
15089 if ((c =
nextc()) ==
'=') {
15103 if ((c =
nextc()) ==
'=') {
15107 if ((c =
nextc()) ==
'=') {
15147 if ((c =
nextc()) ==
'&') {
15149 if ((c =
nextc()) ==
'=') {
15157 else if (c ==
'=') {
15162 else if (c ==
'.') {
15168 rb_warning0(
"`&' interpreted as argument prefix");
15182 if ((c =
nextc()) ==
'|') {
15184 if ((c =
nextc()) ==
'=') {
15264 if ((c =
nextc()) ==
'.') {
15265 if ((c =
nextc()) ==
'.') {
15273 yyerror(
"no .<digit> floating literal anymore; put 0 before dot");
15278 case '0':
case '1':
case '2':
case '3':
case '4':
15279 case '5':
case '6':
case '7':
case '8':
case '9':
15332 if ((c =
nextc()) ==
'=') {
15348 if ((c =
nextc()) ==
'=') {
15368 if ((c =
nextc()) !=
'@') {
15386 rb_warning0(
"parentheses after method name is interpreted as " 15387 "an argument list, not a decomposed argument");
15399 if ((c =
nextc()) ==
']') {
15400 if ((c =
nextc()) ==
'=') {
15498 parser->
lval = lval;
15545 if (orig == (
NODE*)1)
return;
15554 #define parser_warning(node, mesg) parser_warning(parser, (node), (mesg)) 15561 #define parser_warn(node, mesg) parser_warn(parser, (node), (mesg)) 15566 NODE *end, *h = head, *nd;
15568 if (tail == 0)
return head;
15570 if (h == 0)
return tail;
15609 tail->nd_end = tail;
15611 end->nd_next = tail;
15612 h->nd_end = tail->nd_end;
15622 if (list == 0)
return NEW_LIST(item);
15623 if (list->nd_next) {
15624 last = list->nd_next->nd_end;
15630 list->nd_alen += 1;
15632 list->nd_next->nd_end = last->nd_next;
15642 if (head->nd_next) {
15643 last = head->nd_next->nd_end;
15649 head->nd_alen += tail->nd_alen;
15650 last->nd_next = tail;
15651 if (tail->nd_next) {
15652 head->nd_next->nd_end = tail->nd_next->nd_end;
15655 head->nd_next->nd_end = tail;
15664 if (
NIL_P(tail))
return 1;
15685 if (!head)
return tail;
15686 if (!tail)
return head;
15706 if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
15709 lit = headlast->nd_lit;
15712 lit = head->nd_lit;
15732 tail->nd_lit = head->nd_lit;
15736 else if (
NIL_P(tail->nd_lit)) {
15738 head->nd_alen += tail->nd_alen - 1;
15739 head->nd_next->nd_end->nd_next = tail->nd_next;
15740 head->nd_next->nd_end = tail->nd_next->nd_end;
15743 else if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
15745 lit = headlast->nd_lit;
15748 tail->nd_lit =
Qnil;
15753 tail->nd_head =
NEW_STR(tail->nd_lit);
15841 # if WARN_PAST_SCOPE 15887 # if WARN_PAST_SCOPE 15911 NODE *kws = kwlist;
15912 while (kws->nd_next) {
15913 kws = kws->nd_next;
15931 VALUE src = node->nd_lit;
15947 for (list = (prev = node)->
nd_next;
list; list = list->nd_next) {
15949 VALUE tail = list->nd_head->nd_lit;
15951 VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
15957 prev->nd_next = list->nd_next;
15970 if (!node->nd_next) {
15971 VALUE src = node->nd_lit;
16023 if (ripper_is_node_yylval(re)) {
16024 src =
RNODE(re)->nd_cval;
16025 re =
RNODE(re)->nd_rval;
16027 if (ripper_is_node_yylval(opt)) {
16028 options = (int)
RNODE(opt)->nd_tag;
16029 opt =
RNODE(opt)->nd_rval;
16034 return dispatch2(regexp_literal, re, opt);
16040 return dispatch1(xstring_literal, str);
16045 "EXPR_BEG",
"EXPR_END",
"EXPR_ENDARG",
"EXPR_ENDFN",
"EXPR_ARG",
16046 "EXPR_CMDARG",
"EXPR_MID",
"EXPR_FNAME",
"EXPR_DOT",
"EXPR_CLASS",
16047 "EXPR_LABEL",
"EXPR_LABELED",
"EXPR_FITEM",
16054 unsigned int mask = 1;
16055 static const char none[] =
"EXPR_NONE";
16058 if ((
unsigned)state & mask) {
16094 for (; mask && !(stack & mask); mask >>= 1)
continue;
16095 for (; mask; mask >>= 1)
rb_str_cat(mesg, stack & mask ?
"1" :
"0", 1);
16111 # define assignable_result(x) get_value(lhs) 16112 # define parser_yyerror(parser, x) assign_error_gen(parser, lhs) 16114 # define assignable_result(x) (x) 16119 yyerror(
"Can't change the value of self");
16122 yyerror(
"Can't assign to nil");
16125 yyerror(
"Can't assign to true");
16128 yyerror(
"Can't assign to false");
16131 yyerror(
"Can't assign to __FILE__");
16134 yyerror(
"Can't assign to __LINE__");
16137 yyerror(
"Can't assign to __ENCODING__");
16171 yyerror(
"dynamic constant assignment");
16180 #undef assignable_result 16181 #undef parser_yyerror 16188 if (name == idUScore)
return 1;
16195 #define LVAR_USED ((ID)1 << (sizeof(ID) * CHAR_BIT - 1)) 16203 yyerror(
"duplicated argument name");
16216 yyerror(
"duplicated argument name");
16280 if (!node2)
return node1;
16283 if (node1->nd_head)
16284 node1->nd_head =
arg_concat(node1->nd_head, node2);
16296 node1->nd_body =
list_concat(node1->nd_body, node2);
16305 if (!node1)
return NEW_LIST(node2);
16310 node1->nd_head =
arg_append(node1->nd_head, node2);
16331 if (!lhs)
return 0;
16343 lhs->nd_value = rhs;
16348 lhs->nd_args =
arg_append(lhs->nd_args, rhs);
16374 if (!cond)
yyerror(
"void value expression");
16379 while (node->nd_next) {
16380 node = node->nd_next;
16382 node = node->nd_head;
16386 node = node->nd_body;
16390 if (!node->nd_body) {
16391 node = node->nd_else;
16394 else if (!node->nd_else) {
16395 node = node->nd_body;
16399 node = node->nd_else;
16405 node = node->nd_2nd;
16419 const char *useless = 0;
16426 switch (node->nd_mid) {
16457 useless =
"a variable";
16460 useless =
"a constant";
16467 useless =
"a literal";
16492 useless =
"defined?";
16509 if (!node->nd_next)
return;
16511 node = node->nd_next;
16518 NODE **n = &node, *n1 = node;
16520 *n = n1 = n1->nd_body;
16528 NODE **n = &node, *n1 = node;
16530 *n = n1 = n1->nd_body;
16538 NODE *node = *body;
16544 #define subnodes(n1, n2) \ 16545 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \ 16546 (!node->n2) ? (body = &node->n1, 1) : \ 16547 (reduce_nodes(&node->n1), body = &node->n2, 1)) 16557 *body = node = node->nd_stts;
16561 *body = node = node->nd_body;
16565 body = &node->nd_end->nd_head;
16571 body = &node->nd_body;
16580 if (node->nd_else) {
16581 body = &node->nd_resq;
16599 if (!node)
return 1;
16602 if (!(node = node->nd_head))
break;
16606 }
while ((node = node->nd_next) != 0);
16636 if (!node->nd_value)
return 1;
16639 parser_warn(node->nd_value,
"found = in conditional, should be ==");
16663 if (node == 0)
return 0;
16677 if (!node)
return 1;
16698 if (node == 0)
return 0;
16705 if (!method_op)
rb_warn0(
"string literal in condition");
16716 node->nd_1st =
cond0(parser, node->nd_1st,
FALSE);
16717 node->nd_2nd =
cond0(parser, node->nd_2nd,
FALSE);
16722 node->nd_beg =
range_op(parser, node->nd_beg);
16723 node->nd_end =
range_op(parser, node->nd_end);
16758 if (node == 0)
return 0;
16759 return cond0(parser, node, method_op);
16765 if (!cc)
return right;
16775 NODE *node = left, *second;
16776 while ((second = node->nd_2nd) != 0 && (
enum node_type)
nd_type(second) == type) {
16779 node->nd_2nd =
NEW_NODE(type, second, right, 0);
16782 return NEW_NODE(type, left, right, 0);
16799 if (node->nd_next == 0) {
16800 node = node->nd_head;
16821 int type =
TYPE(lit);
16847 rb_bug(
"unknown literal type (%d) passed to negate_lit", type);
16857 node2->nd_head = node1;
16871 args->
pre_init = m ? m->nd_next : 0;
16913 NODE *val_node = kwn->nd_body->nd_value;
16914 ID vid = kwn->nd_body->nd_vid;
16916 if (val_node == (
NODE *)-1) {
16923 kwn = kwn->nd_next;
16967 lit = node->nd_lit;
16984 node->nd_next->nd_end = node->nd_next;
16985 node->nd_next->nd_next = 0;
16998 while (hash && hash->nd_head && hash->nd_next) {
16999 NODE *head = hash->nd_head;
17000 NODE *value = hash->nd_next;
17001 NODE *next = value->nd_next;
17005 st_lookup(literal_keys, (key = head->nd_lit), &data)) {
17007 "key %+"PRIsVALUE" is duplicated and overwritten on line %d",
17008 head->nd_lit,
nd_line(head));
17009 head = ((
NODE *)data)->nd_next;
17010 head->nd_head =
block_append(head->nd_head, value->nd_head);
17020 if (!result) result =
hash;
17041 ID vid = lhs->nd_vid;
17043 lhs->nd_value = rhs;
17050 asgn->nd_aid = vid;
17054 else if (op ==
tANDOP) {
17055 lhs->nd_value = rhs;
17078 else if (op ==
tANDOP) {
17094 else if (op ==
tANDOP) {
17111 yyerror(
"dynamic constant assignment");
17119 return dispatch3(opassign, lhs, op, rhs);
17125 VALUE recv = dispatch3(field, lhs, type, attr);
17126 return dispatch3(opassign, recv, op, rhs);
17133 assign_error(path);
17141 a = dispatch1(assign_error, a);
17153 if (!local->
used)
return;
17157 if (cnt != local->
vars->
pos) {
17158 rb_bug(
"local->used->pos != local->vars->pos");
17160 for (i = 0; i <
cnt; ++i) {
17161 if (!v[i] || (u[i] &
LVAR_USED))
continue;
17176 local->
used = !(inherit_dvars &&
17179 # if WARN_PAST_SCOPE 17195 # if WARN_PAST_SCOPE 17196 while (
lvtbl->past) {
17215 int cnt = cnt_args + cnt_vars;
17219 if (cnt <= 0)
return 0;
17223 for (i = 0, j = cnt_args+1; i < cnt_vars; ++i) {
17229 if (--j < cnt)
REALLOC_N(buf,
ID, (cnt = j) + 1);
17253 struct vtable *vars, *args, *used;
17255 vars =
lvtbl->vars;
17256 args =
lvtbl->args;
17257 used =
lvtbl->used;
17262 if (used) used = used->
prev;
17278 static const struct vtable *
17286 return lvtbl->args;
17292 struct vtable *tmp = *vtblp;
17293 *vtblp = tmp->
prev;
17294 # if WARN_PAST_SCOPE 17295 if (parser->past_scope_enabled) {
17309 if ((tmp =
lvtbl->used) != 0) {
17321 while (
lvtbl->args != lvargs) {
17323 if (!
lvtbl->args) {
17341 struct vtable *vars, *args, *used;
17344 args =
lvtbl->args;
17345 vars =
lvtbl->vars;
17346 used =
lvtbl->used;
17359 if (used) used = used->
prev;
17380 "regexp encoding option '%c' differs from source encoding '%s'",
17451 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
17457 const char *s = (
const char *)name;
17540 NODE *scope = node;
17543 if (!node)
return node;
17547 node = node->nd_body;
17551 node = node->nd_body;
17558 prelude->nd_body = node;
17559 scope->nd_body = prelude;
17562 scope->nd_body = node;
17572 NODE *scope = node;
17575 if (!node)
return node;
17579 node = node->nd_body;
17583 node = node->nd_body;
17599 prelude->nd_body = node;
17600 scope->nd_body = prelude;
17603 scope->nd_body = node;
17633 parser->delayed =
Qnil;
17634 parser->result =
Qnil;
17635 parser->parsing_thread =
Qnil;
17644 #define parser_mark ripper_parser_mark 17645 #define parser_free ripper_parser_free 17685 for (local =
lvtbl; local; local =
prev) {
17687 prev = local->
prev;
17692 while ((ptinfo = parser->
token_info) != 0) {
17705 size_t size =
sizeof(*parser);
17708 for (local =
lvtbl; local; local = local->
prev) {
17709 size +=
sizeof(*local);
17730 #undef rb_reserved_word 17743 &parser_data_type, p);
17762 #define rb_parser_end_seen_p ripper_parser_end_seen_p 17763 #define rb_parser_encoding ripper_parser_encoding 17764 #define rb_parser_get_yydebug ripper_parser_get_yydebug 17765 #define rb_parser_set_yydebug ripper_parser_set_yydebug 17766 static VALUE ripper_parser_end_seen_p(
VALUE vparser);
17767 static VALUE ripper_parser_encoding(
VALUE vparser);
17768 static VALUE ripper_parser_get_yydebug(
VALUE self);
17778 ripper_error_p(
VALUE vparser)
17844 yydebug =
RTEST(flag);
17850 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE)) 17851 #define NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0) 17852 #define ADD2HEAP(n, c, p) ((parser->heap = (n))->u1.node = (p), \ 17853 (n)->u3.cnt = (c), (p)) 17870 void *ptr =
xcalloc(nelem, size);
17881 if (ptr && (n = parser->
heap) !=
NULL) {
17883 if (n->
u1.
node == ptr) {
17900 while ((n = *prev) !=
NULL) {
17901 if (n->u1.node == ptr) {
17946 #ifdef RIPPER_DEBUG 17947 extern int rb_is_pointer_to_heap(
VALUE);
17953 if (x ==
Qfalse)
return x;
17954 if (x ==
Qtrue)
return x;
17955 if (x ==
Qnil)
return x;
17960 if (!rb_is_pointer_to_heap(x))
17972 if (
nd_type(x) != NODE_RIPPER) {
17975 return ((
NODE *)x)->nd_rval;
17984 #define validate(x) ((x) = get_value(x)) 17996 return rb_funcall(parser->value, mid, 1, a);
18004 return rb_funcall(parser->value, mid, 2, a, b);
18013 return rb_funcall(parser->value, mid, 3, a, b, c);
18023 return rb_funcall(parser->value, mid, 4, a, b, c, d);
18034 return rb_funcall(parser->value, mid, 5, a, b, c, d, e);
18047 return rb_funcall(parser->value, mid, 7, a, b, c, d, e, f, g);
18050 static const struct kw_assoc {
18053 } keyword_to_name[] = {
18106 keyword_id_to_str(
ID id)
18108 const struct kw_assoc *a;
18110 for (a = keyword_to_name; a->id; a++) {
18117 #undef ripper_id2sym 18124 if (
id == (
ID)(
signed char)
id) {
18129 if ((name = keyword_id_to_str(
id))) {
18133 rb_bug(
"cannot convert ID to string: %ld", (
unsigned long)
id);
18139 ripper_get_id(
VALUE v)
18144 if (
nd_type(nd) != NODE_RIPPER)
return 0;
18149 ripper_get_value(
VALUE v)
18156 return nd->nd_rval;
18166 ripper_compile_error(
struct parser_params *parser,
const char *fmt, ...)
18171 va_start(args, fmt);
18175 ripper_error_gen(parser);
18184 "gets returned %"PRIsVALUE" (expected String or nil)",
18197 ripper_s_allocate(
VALUE klass)
18201 &parser_data_type, p);
18206 #define ripper_initialized_p(r) ((r)->lex.input != 0) 18222 VALUE src, fname, lineno;
18225 rb_scan_args(argc, argv,
"12", &src, &fname, &lineno);
18230 lex_gets = ripper_lex_get_generic;
18238 if (
NIL_P(fname)) {
18255 struct ripper_args {
18262 ripper_parse0(
VALUE parser_v)
18268 ripper_yyparse((
void*)parser);
18269 return parser->result;
18273 ripper_ensure(
VALUE parser_v)
18278 parser->parsing_thread =
Qnil;
18289 ripper_parse(
VALUE self)
18294 if (!ripper_initialized_p(parser)) {
18297 if (!
NIL_P(parser->parsing_thread)) {
18304 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
18306 return parser->result;
18317 ripper_column(
VALUE self)
18323 if (!ripper_initialized_p(parser)) {
18326 if (
NIL_P(parser->parsing_thread))
return Qnil;
18338 ripper_filename(
VALUE self)
18343 if (!ripper_initialized_p(parser)) {
18357 ripper_lineno(
VALUE self)
18362 if (!ripper_initialized_p(parser)) {
18365 if (
NIL_P(parser->parsing_thread))
return Qnil;
18369 #ifdef RIPPER_DEBUG 18403 InitVM_ripper(
void)
18421 #ifdef RIPPER_DEBUG #define STRNCASECMP(s1, s2, n)
void rb_define_global_const(const char *, VALUE)
static int token_info_has_nonspaces(struct parser_params *parser, const char *pend)
static int parser_get_bool(struct parser_params *parser, const char *name, const char *val)
static YYSIZE_T yytnamerr(char *yyres, const char *yystr)
ONIG_EXTERN int onig_foreach_name(OnigRegex reg, int(*func)(const OnigUChar *, const OnigUChar *, int, int *, OnigRegex, void *), void *arg)
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_enc_codelen(int c, rb_encoding *enc)
static NODE * list_concat(NODE *, NODE *)
#define NEW_OP_ASGN_AND(i, val)
static NODE * remove_begin(NODE *)
#define MBCLEN_CHARFOUND_P(ret)
#define NEW_STRTERM(func, term, paren)
static const yytype_int16 yydefgoto[]
#define RRATIONAL_SET_NUM(rat, n)
#define NEW_OP_ASGN1(p, id, a)
static int parser_precise_mbclen(struct parser_params *parser, const char *p)
static NODE * arg_blk_pass(NODE *, NODE *)
static ID internal_id_gen(struct parser_params *)
void rb_bug(const char *fmt,...)
#define RUBY_TYPED_FREE_IMMEDIATELY
static NODE * logop_gen(struct parser_params *, enum node_type, NODE *, NODE *)
static const struct kwtable * reserved_word(const char *, unsigned int)
NODE * rb_parser_compile_string_path(VALUE vparser, VALUE f, VALUE s, int line)
long rb_str_coderange_scan_restartable(const char *, const char *, rb_encoding *, int *)
static VALUE parser_reg_compile(struct parser_params *parser, VALUE str, int options)
static int comment_at_top(struct parser_params *parser)
#define RE_OPTION_ENCODING_IDX(o)
#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)
#define scan_oct(s, l, e)
VALUE rb_make_exception(int argc, const VALUE *argv)
#define reg_compile(str, options)
static NODE * call_uni_op_gen(struct parser_params *, NODE *, ID)
static void fixpos(NODE *, NODE *)
#define backref_assign_error(n, a)
ID rb_intern2(const char *, long)
static unsigned int hash(str, len) register const char *str
static void reduce_nodes_gen(struct parser_params *, NODE **)
void rb_define_singleton_method(VALUE obj, const char *name, VALUE(*func)(ANYARGS), int argc)
Defines a singleton method for obj.
static NODE * call_bin_op_gen(struct parser_params *, NODE *, ID, NODE *)
static int parser_string_term(struct parser_params *parser, int func)
#define ripper_id2sym(id)
static int parser_tokadd_utf8(struct parser_params *parser, rb_encoding **encp, int string_literal, int symbol_literal, int regexp_literal)
#define rb_usascii_str_new2
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)
#define reg_named_capture_assign(regexp)
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)
NODE * rb_parser_compile_file_path(VALUE vparser, VALUE fname, VALUE file, int start)
static YYSIZE_T yystrlen(char *yystr) const
VALUE rb_parser_end_seen_p(VALUE vparser)
#define TypedData_Get_Struct(obj, type, data_type, sval)
#define intern_cstr(n, l, en)
struct token_info token_info
#define new_op_assign(lhs, op, rhs)
#define new_args(f, o, r, p, t)
static int parser_nextline(struct parser_params *parser)
VALUE rb_suppress_tracing(VALUE(*func)(VALUE), VALUE arg)
void rb_define_private_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
VALUE rb_enc_from_encoding(rb_encoding *encoding)
#define token_info_push(token)
int rb_enc_symname2_p(const char *, long, rb_encoding *)
static int parser_here_document(struct parser_params *, NODE *)
static NODE * parser_compile_string(VALUE vparser, VALUE fname, VALUE s, int line)
#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 *)
#define attrset(node, q, id)
static int reg_named_capture_assign_iter(const OnigUChar *name, const OnigUChar *name_end, int back_num, int *back_refs, OnigRegex regex, void *arg0)
struct local_vars * lvtbl
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)
unsigned int command_start
VALUE rb_ary_tmp_new(long capa)
const struct kwtable * rb_reserved_word(const char *str, unsigned int len)
int rb_local_defined(ID id, const struct rb_block *base_block)
#define is_identchar(p, e, enc)
VALUE rb_funcall(VALUE, ID, int,...)
Calls a method.
NODE * rb_parser_compile_file(VALUE vparser, const char *f, VALUE file, int start)
#define warn_balanced(op, syn)
#define match_op(node1, node2)
void rb_str_set_len(VALUE, long)
static NODE * attrset_gen(struct parser_params *, NODE *, ID, ID)
VALUE rb_io_gets_internal(VALUE io)
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,...)
static int parse_gvar(struct parser_params *parser, const enum lex_state_e last_state)
#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 *)
#define dispatch_scan_event(t)
void rb_compile_warn(const char *file, int line, const char *fmt,...)
static NODE * range_op(struct parser_params *parser, NODE *node)
#define NEW_OP_ASGN2(r, t, i, o, val)
static NODE * cond0(struct parser_params *, NODE *, int)
static void arg_ambiguous_gen(struct parser_params *parser, char c)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
static NODE * remove_begin_all(NODE *)
#define SET_LEX_STATE(ls)
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)
VALUE rb_io_write(VALUE, VALUE)
#define new_brace_body(param, stmt)
static int parser_whole_match_p(struct parser_params *parser, const char *eos, long len, int indent)
#define RE_OPTION_ENCODING(e)
static void show_bitstack(stack_type, const char *, int)
#define RCOMPLEX_SET_IMAG(cmp, i)
static void parser_initialize(struct parser_params *parser)
static NODE * node_newnode(struct parser_params *, enum node_type, VALUE, VALUE, VALUE)
void rb_gc_force_recycle(VALUE obj)
#define MEMO_NEW(a, b, c)
static const yytype_uint16 yyr1[]
#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 call_bin_op(recv, id, arg1)
static enum node_type nodetype(NODE *node)
VALUE rb_str_buf_append(VALUE, VALUE)
static VALUE lex_getline(struct parser_params *parser)
static NODE * ret_args_gen(struct parser_params *, NODE *)
static const yytype_int16 yytable[]
VALUE rb_syntax_error_append(VALUE exc, VALUE file, int line, int column, rb_encoding *enc, const char *fmt, va_list args)
#define new_regexp(node, opt)
#define new_xstring(node)
static NODE * yycompile(struct parser_params *parser, VALUE fname, int line)
#define st_init_numtable_with_size
VALUE rb_parser_set_yydebug(VALUE self, VALUE flag)
#define ENC_CODERANGE_7BIT
const char * rb_obj_classname(VALUE)
RUBY_EXTERN void * memmove(void *, const void *, size_t)
RUBY_FUNC_EXPORTED VALUE rb_parser_reg_compile(struct parser_params *parser, VALUE str, int options)
#define IS_lex_state_all(ls)
RUBY_EXTERN unsigned long ruby_scan_digits(const char *str, ssize_t len, int base, size_t *retlen, int *overflow)
#define list_append(l, i)
static int simple_re_meta(int c)
VALUE rb_str_buf_cat(VALUE, const char *, long)
RUBY_SYMBOL_EXPORT_BEGIN typedef unsigned long st_data_t
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 void vtable_pop(struct vtable *tbl, int n)
static NODE * list_append_gen(struct parser_params *, NODE *, NODE *)
static const char lex_state_names[][13]
unsigned int ruby__end__seen
VALUE ruby_sourcefile_string
struct parser_params::@99 lex
static rb_encoding * must_be_ascii_compatible(VALUE s)
static int parser_number_literal_suffix(struct parser_params *parser, int mask)
#define RB_TYPE_P(obj, type)
static int parser_tokadd_string(struct parser_params *, int, int, int, long *, rb_encoding **)
static void next_state(struct MT *mt)
static NODE * reg_named_capture_assign_gen(struct parser_params *parser, VALUE regexp)
#define assignable_result(x)
#define NEW_ATTRASGN(r, m, a)
static VALUE coverage(VALUE fname, int n)
void rb_parser_printf(struct parser_params *parser, const char *fmt,...)
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)
#define whole_match_p(e, l, i)
#define heredoc_line_indent
static NODE * new_if_gen(struct parser_params *, NODE *, NODE *, NODE *)
#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 *)
#define rb_intern_str(string)
static const yytype_uint16 yystos[]
#define rb_rational_raw1(x)
static char * parser_tokspace(struct parser_params *parser, int n)
VALUE rb_hash_aset(VALUE hash, VALUE key, VALUE val)
static void parser_free(void *ptr)
static int parse_numvar(struct parser_params *parser)
static void token_info_pop_gen(struct parser_params *, const char *token, size_t len)
#define heredoc_dedent(str)
#define literal_concat(h, t)
RUBY_EXTERN VALUE rb_cObject
static int parser_tokadd_escape(struct parser_params *parser, rb_encoding **encp)
static int dvar_curr_gen(struct parser_params *, ID)
VALUE rb_parser_encoding(VALUE vparser)
static const yytype_uint16 yyrline[]
struct parser_params * parser
#define 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[]
const struct rb_block * base_block
#define new_if(cc, left, right)
VALUE rb_obj_as_string(VALUE)
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)
#define set_yylval_name(x)
static NODE * new_attr_op_assign_gen(struct parser_params *parser, NODE *lhs, ID atype, ID attr, ID op, NODE *rhs)
static char * parser_newtok(struct parser_params *parser)
RUBY_EXTERN VALUE rb_mKernel
#define rb_warning1(fmt, a)
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)
VALUE rb_define_class(const char *name, VALUE super)
Defines a top-level class.
#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 new_unless(cc, left, right)
#define lex_goto_eol(parser)
static void local_var_gen(struct parser_params *, ID)
NODE * rb_parser_append_print(VALUE vparser, NODE *node)
static void ripper_init_eventids1(void)
static void vtable_add(struct vtable *tbl, ID id)
#define top_const_field(n)
VALUE rb_rational_new(VALUE, VALUE)
#define ALLOCA_N(type, n)
#define flush_string_content(enc)
#define NEW_OP_CDECL(v, op, val)
VALUE rb_parser_set_context(VALUE vparser, const struct rb_block *base, int main)
#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)
#define RUBY_FUNC_EXPORTED
#define MEMCPY(p1, p2, type, n)
VALUE rb_enc_associate_index(VALUE obj, int idx)
static int parser_nextc(struct parser_params *parser)
static void dyna_pop_vtable(struct parser_params *parser, struct vtable **vtblp)
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 *)
#define set_integer_literal(v, f)
VALUE rb_class_new_instance(int, const VALUE *, VALUE)
#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)
static void magic_comment_encoding(struct parser_params *parser, const char *name, const char *val)
RUBY_EXTERN VALUE rb_int_positive_pow(long x, unsigned long y)
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)
#define set_yylval_num(x)
#define NEW_BLOCK_PASS(b)
VALUE rb_str_subseq(VALUE, long, long)
static void dispose_string(VALUE str)
static NODE * aryset_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_funcallv_public(VALUE, ID, int, const VALUE *)
Calls a method.
static ID shadowing_lvar_gen(struct parser_params *, ID)
#define set_number_literal(v, t, f)
#define new_do_body(param, stmt)
#define REALLOC_N(var, type, n)
#define new_attr_op_assign(lhs, type, attr, op, rhs)
static int shadowing_lvar_0(struct parser_params *parser, ID name)
int rb_dvar_defined(ID id, const struct rb_block *base_block)
#define has_delayed_token()
static int yylex(YYSTYPE *, struct parser_params *)
#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)
int rb_enc_precise_mbclen(const char *p, const char *e, rb_encoding *enc)
static int parser_cr(struct parser_params *parser, int c)
static void set_file_encoding(struct parser_params *parser, const char *str, const char *send)
void rb_fatal(const char *fmt,...)
#define MEMMOVE(p1, p2, type, n)
static const struct magic_comment magic_comments[]
VALUE rb_str_vcatf(VALUE, const char *, va_list)
static int parser_parse_string(struct parser_params *, NODE *)
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)
static NODE * new_regexp_gen(struct parser_params *, NODE *, int)
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]
#define rb_warn3L(l, fmt, a, b, c)
VALUE rb_assoc_new(VALUE car, VALUE cdr)
#define rb_warn1L(l, fmt, a)
static void parser_set_compile_option_flag(struct parser_params *parser, const char *name, const char *val)
rb_encoding * rb_usascii_encoding(void)
#define rb_enc_isalnum(c, enc)
static void rb_backref_error_gen(struct parser_params *, NODE *)
unsigned char yytype_uint8
#define NEW_PRELUDE(p, b, o)
static const yytype_int16 yyrhs[]
#define heredoc_restore(n)
static void parser_prepare(struct parser_params *parser)
static NODE * const_decl_gen(struct parser_params *parser, NODE *path)
static int options(unsigned char *cp)
static const char *const yytname[]
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
static NODE * cond_gen(struct parser_params *, NODE *, int)
static int parse_percent(struct parser_params *parser, const int space_seen, const enum lex_state_e last_state)
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 parse_atmark(struct parser_params *parser, const enum lex_state_e last_state)
VALUE rb_obj_hide(VALUE obj)
static int parser_heredoc_identifier(struct parser_params *parser)
static int value_expr_gen(struct parser_params *, NODE *)
static void arg_var_gen(struct parser_params *, ID)
#define NEW_ENSURE(b, en)
static int reg_fragment_check_gen(struct parser_params *, VALUE, int)
static const yytype_int16 yycheck[]
#define RUBY_DTRACE_PARSE_HOOK(name)
const char * rb_id2name(ID)
static void parser_compile_error(struct parser_params *, const char *fmt,...)
static VALUE negate_lit(VALUE)
#define rb_enc_asciicompat(enc)
VALUE rb_ensure(VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*e_proc)(ANYARGS), VALUE data2)
VALUE rb_str_new_cstr(const char *)
RUBY_FUNC_EXPORTED int rb_reg_fragment_setenc(struct parser_params *, VALUE, int)
#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)
static const yytype_int16 yypgoto[]
unsigned int token_info_enabled
static enum lex_state_e trace_lex_state(enum lex_state_e from, enum lex_state_e to, int line)
static int parse_qmark(struct parser_params *parser, int space_seen)
VALUE rb_sym_intern_ascii_cstr(const char *ptr)
static VALUE append_lex_state_name(enum lex_state_e state, VALUE buf)
static int literal_concat0(struct parser_params *, VALUE, VALUE)
static ID * local_tbl_gen(struct parser_params *)
#define const_path_field(w, n)
int rb_respond_to(VALUE, ID)
register unsigned int len
static int parser_yyerror(struct parser_params *, const char *)
static void warning_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
static int append_literal_keys(st_data_t k, st_data_t v, st_data_t h)
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]
void rb_str_modify(VALUE)
const struct vtable * vars
int rb_const_defined_at(VALUE, ID)
static VALUE reg_compile_gen(struct parser_params *, VALUE, int)
#define ENCODING_GET(obj)
rb_encoding * rb_enc_get(VALUE obj)
static const yytype_uint8 yytranslate[]
VALUE rb_ident_hash_new(void)
#define ADD2HEAP(n, c, p)
static int is_private_local_id(ID name)
static void yy_stack_print(yytype_int16 *yybottom, yytype_int16 *yytop, parser)
#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 RARRAY_AREF(a, i)
static ID tokenize_ident(struct parser_params *parser, const enum lex_state_e last_state)
#define read_escape(flags, e)
#define dispatch_delayed_token(t)
static NODE * literal_concat_gen(struct parser_params *, NODE *, NODE *)
#define parser_warn(node, mesg)
void rb_set_errinfo(VALUE err)
VALUE rb_complex_raw(VALUE x, VALUE y)
#define NEW_UNTIL(c, b, n)
#define node_assign(node1, node2)
static void void_stmts_gen(struct parser_params *, NODE *)
static NODE * new_xstring_gen(struct parser_params *, NODE *)
VALUE rb_str_catf(VALUE str, const char *format,...)
#define YYSTACK_ALLOC_MAXIMUM
#define NEW_QCALL(q, r, m, a)
#define new_defined(expr)
static const rb_data_type_t parser_data_type
void rb_compile_warning(const char *file, int line, const char *fmt,...)
VALUE rb_big_norm(VALUE x)
static const yytype_uint16 yydefact[]
static NODE * remove_duplicate_keys(struct parser_params *parser, NODE *hash)
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 int parser_set_integer_literal(struct parser_params *parser, VALUE v, int suffix)
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)
VALUE rb_str_cat_cstr(VALUE, const char *)
#define NEW_CVASGN(v, val)
static void new_bv_gen(struct parser_params *, ID)
static void reg_fragment_enc_error(struct parser_params *parser, VALUE str, int c)
static int is_global_name_punct(const int c)
static NODE * new_hash_gen(struct parser_params *parser, NODE *hash)
static int id_type(ID id)
#define TypedData_Make_Struct(klass, type, data_type, sval)
#define NEW_MATCH3(r, n2)
#define number_literal_suffix(f)
#define STR_NEW3(p, n, e, func)
static const char * magic_comment_marker(const char *str, long len)
static int parser_tokadd_codepoint(struct parser_params *parser, rb_encoding **encp, int regexp_literal, int wide)
#define NEW_OPT_ARG(i, v)
static int parser_magic_comment(struct parser_params *parser, const char *str, long len)
#define IS_LABEL_POSSIBLE()
VALUE rb_ary_tmp_new_fill(long capa)
#define method_cond(node)
VALUE rb_filesystem_str_new_cstr(const char *)
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)
static int parser_tok_hex(struct parser_params *parser, size_t *numlen)
#define RE_OPTION_ENCODING_NONE(o)
#define dvar_defined_get(id)
#define ruby_eval_tree_begin
#define ruby_sourcefile_string
#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)
static int parse_ident(struct parser_params *parser, int c, int cmd_state)
#define NEW_CALL(r, m, a)
rb_encoding * rb_ascii8bit_encoding(void)
#define lambda_beginning_p()
int rb_enc_find_index(const char *name)
static NODE * splat_array(NODE *)
static struct vtable * vtable_alloc(struct vtable *prev)
#define RCOMPLEX_SET_REAL(cmp, r)
static int parser_update_heredoc_indent(struct parser_params *parser, int c)
#define CONST_ID(var, str)
static int parse_numeric(struct parser_params *parser, int c)
RUBY_EXTERN VALUE rb_stdout
static void token_info_push_gen(struct parser_params *, const char *token, size_t len)
VALUE rb_str_intern(VALUE)
#define rb_intern_const(str)
#define mixed_error(enc1, enc2)
static VALUE parse_rational(struct parser_params *parser, char *str, int len, int seen_point)
#define NEW_MATCH2(n1, n2)
static const struct vtable * dyna_push_gen(struct parser_params *)
NODE * rb_parser_compile_cstr(VALUE vparser, const char *f, const char *s, int len, int line)
void * rb_parser_realloc(struct parser_params *parser, void *ptr, size_t size)
#define shadowing_lvar(name)
VALUE rb_cstr_to_inum(const char *str, int base, int badcheck)
static int parser_set_number_literal(struct parser_params *parser, VALUE v, int type, int suffix)
static int tokadd_ident(struct parser_params *parser, int c)
#define rb_enc_mbcput(c, buf, enc)
#define NEW_DEFN(i, a, d, p)
#define reg_fragment_check(str, options)
VALUE rb_str_buf_new(long)
VALUE rb_usascii_str_new(const char *, long)
static NODE * parser_heredoc_dedent(struct parser_params *, NODE *)
#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 NODE * assignable_gen(struct parser_params *, ID, NODE *)
VALUE rb_parser_get_yydebug(VALUE self)
#define NEW_LASGN(v, val)
static VALUE debug_lines(VALUE fname)
#define yypact_value_is_default(yystate)
#define ENCODING_SET(obj, i)
static int dedent_string(VALUE string, int width)
static NODE * kwd_append(NODE *, NODE *)
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
VALUE rb_str_append(VALUE, VALUE)
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_string(VALUE vparser, const char *f, VALUE s, int line)
static void vtable_free(struct vtable *tbl)
#define rb_enc_prev_char(s, p, e, enc)
static int token_info_get_column(struct parser_params *parser, const char *pend)
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)
rb_encoding * rb_enc_from_index(int index)
#define aryset(node1, node2)
#define IS_AFTER_OPERATOR()
VALUE rb_obj_class(VALUE)
VALUE rb_str_new(const char *, long)
static NODE * new_args_gen(struct parser_params *, NODE *, NODE *, ID, NODE *, NODE *)
#define rb_warn2(fmt, a, b)
static int parser_tokadd_mbchar(struct parser_params *parser, int c)