47 #define YYBISON_VERSION "2.5" 50 #define YYSKELETON_NAME "yacc.c" 62 #define YYLSP_NEEDED 0 73 #define PARSER_DEBUG 0 76 #define YYERROR_VERBOSE 1 77 #define YYSTACK_USE_ALLOCA 0 92 #define YYMALLOC(size) rb_parser_malloc(parser, (size)) 93 #define YYREALLOC(ptr, size) rb_parser_realloc(parser, (ptr), (size)) 94 #define YYCALLOC(nelem, size) rb_parser_calloc(parser, (nelem), (size)) 95 #define YYFREE(ptr) rb_parser_free(parser, (ptr)) 96 #define malloc YYMALLOC 97 #define realloc YYREALLOC 98 #define calloc YYCALLOC 104 #define REGISTER_SYMID(id, name) register_symid((id), (name), strlen(name), enc) 108 #define is_notop_id(id) ((id)>tLAST_OP_ID) 109 #define is_local_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_LOCAL) 110 #define is_global_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_GLOBAL) 111 #define is_instance_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_INSTANCE) 112 #define is_attrset_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_ATTRSET) 113 #define is_const_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CONST) 114 #define is_class_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CLASS) 115 #define is_junk_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_JUNK) 116 #define id_type(id) (is_notop_id(id) ? (int)((id)&ID_SCOPE_MASK) : -1) 118 #define is_asgn_or_id(id) ((is_notop_id(id)) && \ 119 (((id)&ID_SCOPE_MASK) == ID_GLOBAL || \ 120 ((id)&ID_SCOPE_MASK) == ID_INSTANCE || \ 121 ((id)&ID_SCOPE_MASK) == ID_CLASS)) 140 #define DEF_EXPR(n) EXPR_##n = (1 << EXPR_##n##_bit) 153 EXPR_BEG_ANY = (EXPR_BEG | EXPR_VALUE | EXPR_MID | EXPR_CLASS | EXPR_LABELARG),
157 #define IS_lex_state_for(x, ls) ((x) & (ls)) 158 #define IS_lex_state(ls) IS_lex_state_for(lex_state, (ls)) 161 static const char *lex_state_name(
enum lex_state_e state);
166 # define BITSTACK_PUSH(stack, n) ((stack) = ((stack)<<1)|((n)&1)) 167 # define BITSTACK_POP(stack) ((stack) = (stack) >> 1) 168 # define BITSTACK_LEXPOP(stack) ((stack) = ((stack) >> 1) | ((stack) & 1)) 169 # define BITSTACK_SET_P(stack) ((stack)&1) 171 #define COND_PUSH(n) BITSTACK_PUSH(cond_stack, (n)) 172 #define COND_POP() BITSTACK_POP(cond_stack) 173 #define COND_LEXPOP() BITSTACK_LEXPOP(cond_stack) 174 #define COND_P() BITSTACK_SET_P(cond_stack) 176 #define CMDARG_PUSH(n) BITSTACK_PUSH(cmdarg_stack, (n)) 177 #define CMDARG_POP() BITSTACK_POP(cmdarg_stack) 178 #define CMDARG_LEXPOP() BITSTACK_LEXPOP(cmdarg_stack) 179 #define CMDARG_P() BITSTACK_SET_P(cmdarg_stack) 196 #define DVARS_INHERIT ((void*)1) 197 #define DVARS_TOPSCOPE NULL 198 #define DVARS_SPECIAL_P(tbl) (!POINTER_P(tbl)) 199 #define POINTER_P(val) ((VALUE)(val) & ~(VALUE)3) 242 rb_bug(
"vtable_add: vtable is not allocated (%p)", (
void *)
tbl);
246 if (
tbl->pos ==
tbl->capa) {
247 tbl->capa =
tbl->capa * 2;
259 for (i = 0; i <
tbl->pos; i++) {
260 if (
tbl->tbl[i] ==
id) {
356 VALUE parsing_thread;
361 #define STR_NEW(p,n) rb_enc_str_new((p),(n),current_enc) 362 #define STR_NEW0() rb_enc_str_new(0,0,current_enc) 363 #define STR_NEW2(p) rb_enc_str_new((p),strlen(p),current_enc) 364 #define STR_NEW3(p,n,e,func) parser_str_new((p),(n),(e),(func),current_enc) 365 #define ENC_SINGLE(cr) ((cr)==ENC_CODERANGE_7BIT) 366 #define TOK_INTERN(mb) rb_intern3(tok(), toklen(), current_enc) 369 #define yyerror(msg) parser_yyerror(parser, (msg)) 371 #define lex_strterm (parser->parser_lex_strterm) 372 #define lex_state (parser->parser_lex_state) 373 #define cond_stack (parser->parser_cond_stack) 374 #define cmdarg_stack (parser->parser_cmdarg_stack) 375 #define class_nest (parser->parser_class_nest) 376 #define paren_nest (parser->parser_paren_nest) 377 #define lpar_beg (parser->parser_lpar_beg) 378 #define brace_nest (parser->parser_brace_nest) 379 #define in_single (parser->parser_in_single) 380 #define in_def (parser->parser_in_def) 381 #define compile_for_eval (parser->parser_compile_for_eval) 382 #define cur_mid (parser->parser_cur_mid) 383 #define in_defined (parser->parser_in_defined) 384 #define tokenbuf (parser->parser_tokenbuf) 385 #define tokidx (parser->parser_tokidx) 386 #define toksiz (parser->parser_toksiz) 387 #define tokline (parser->parser_tokline) 388 #define lex_input (parser->parser_lex_input) 389 #define lex_lastline (parser->parser_lex_lastline) 390 #define lex_nextline (parser->parser_lex_nextline) 391 #define lex_pbeg (parser->parser_lex_pbeg) 392 #define lex_p (parser->parser_lex_p) 393 #define lex_pend (parser->parser_lex_pend) 394 #define heredoc_end (parser->parser_heredoc_end) 395 #define command_start (parser->parser_command_start) 396 #define deferred_nodes (parser->parser_deferred_nodes) 397 #define lex_gets_ptr (parser->parser_lex_gets_ptr) 398 #define lex_gets (parser->parser_lex_gets) 399 #define lvtbl (parser->parser_lvtbl) 400 #define ruby__end__seen (parser->parser_ruby__end__seen) 401 #define ruby_sourceline (parser->parser_ruby_sourceline) 402 #define ruby_sourcefile (parser->parser_ruby_sourcefile) 403 #define ruby_sourcefile_string (parser->parser_ruby_sourcefile_string) 404 #define current_enc (parser->enc) 405 #define yydebug (parser->parser_yydebug) 408 #define ruby_eval_tree (parser->parser_eval_tree) 409 #define ruby_eval_tree_begin (parser->parser_eval_tree_begin) 410 #define ruby_debug_lines (parser->debug_lines) 411 #define ruby_coverage (parser->coverage) 415 static int yylex(
void*,
void*);
417 static int yylex(
void*);
421 #define yyparse ruby_yyparse 424 #define rb_node_newnode(type, a1, a2, a3) node_newnode(parser, (type), (a1), (a2), (a3)) 427 #define cond(node) cond_gen(parser, (node)) 429 #define logop(type,node1,node2) logop_gen(parser, (type), (node1), (node2)) 438 #define value_expr(node) value_expr_gen(parser, (node) = remove_begin(node)) 439 #define void_expr0(node) void_expr_gen(parser, (node)) 440 #define void_expr(node) void_expr0((node) = remove_begin(node)) 442 #define void_stmts(node) void_stmts_gen(parser, (node)) 444 #define reduce_nodes(n) reduce_nodes_gen(parser,(n)) 446 #define block_dup_check(n1,n2) block_dup_check_gen(parser,(n1),(n2)) 449 #define block_append(h,t) block_append_gen(parser,(h),(t)) 451 #define list_append(l,i) list_append_gen(parser,(l),(i)) 453 #define list_concat(h,t) list_concat_gen(parser,(h),(t)) 455 #define arg_append(h,t) arg_append_gen(parser,(h),(t)) 457 #define arg_concat(h,t) arg_concat_gen(parser,(h),(t)) 459 #define literal_concat(h,t) literal_concat_gen(parser,(h),(t)) 462 #define new_evstr(n) new_evstr_gen(parser,(n)) 464 #define evstr2dstr(n) evstr2dstr_gen(parser,(n)) 468 #define call_bin_op(recv,id,arg1) call_bin_op_gen(parser, (recv),(id),(arg1)) 470 #define call_uni_op(recv,id) call_uni_op_gen(parser, (recv),(id)) 473 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t)) 475 #define new_args_tail(k,kr,b) new_args_tail_gen(parser, (k),(kr),(b)) 479 #define ret_args(node) ret_args_gen(parser, (node)) 482 #define new_yield(node) new_yield_gen(parser, (node)) 484 #define dsym_node(node) dsym_node_gen(parser, (node)) 487 #define gettable(id) gettable_gen(parser,(id)) 489 #define assignable(id,node) assignable_gen(parser, (id), (node)) 492 #define aryset(node1,node2) aryset_gen(parser, (node1), (node2)) 494 #define attrset(node,id) attrset_gen(parser, (node), (id)) 497 #define rb_backref_error(n) rb_backref_error_gen(parser,(n)) 499 #define node_assign(node1, node2) node_assign_gen(parser, (node1), (node2)) 503 #define new_attr_op_assign(lhs, type, attr, op, rhs) new_attr_op_assign_gen(parser, (lhs), (attr), (op), (rhs)) 505 #define new_const_op_assign(lhs, op, rhs) new_const_op_assign_gen(parser, (lhs), (op), (rhs)) 507 #define new_defined(expr) NEW_DEFINED(remove_begin_all(expr)) 510 #define match_op(node1,node2) match_op_gen(parser, (node1), (node2)) 513 #define local_tbl() local_tbl_gen(parser) 518 #define reg_compile(str,options) reg_compile_gen(parser, (str), (options)) 520 #define reg_fragment_setenc(str,options) reg_fragment_setenc_gen(parser, (str), (options)) 522 #define reg_fragment_check(str,options) reg_fragment_check_gen(parser, (str), (options)) 524 #define reg_named_capture_assign(regexp,match) reg_named_capture_assign_gen(parser,(regexp),(match)) 526 #define get_id(id) (id) 527 #define get_value(val) (val) 529 #define value_expr(node) ((void)(node)) 530 #define remove_begin(node) (node) 531 #define rb_dvar_defined(id) 0 532 #define rb_local_defined(id) 0 533 static ID ripper_get_id(
VALUE);
534 #define get_id(id) ripper_get_id(id) 536 #define get_value(val) ripper_get_value(val) 538 #define assignable(lhs,node) assignable_gen(parser, (lhs)) 540 #define id_is_var(id) id_is_var_gen(parser, (id)) 542 #define node_assign(node1, node2) dispatch2(assign, (node1), (node2)) 546 #define new_attr_op_assign(lhs, type, attr, op, rhs) new_attr_op_assign_gen(parser, (lhs), (type), (attr), (op), (rhs)) 550 #define new_op_assign(lhs, op, rhs) new_op_assign_gen(parser, (lhs), (op), (rhs)) 553 #define formal_argument(id) formal_argument_gen(parser, (id)) 555 #define shadowing_lvar(name) shadowing_lvar_gen(parser, (name)) 557 #define new_bv(id) new_bv_gen(parser, (id)) 560 #define local_push(top) local_push_gen(parser,(top)) 562 #define local_pop() local_pop_gen(parser) 564 #define local_var(id) local_var_gen(parser, (id)) 566 #define arg_var(id) arg_var_gen(parser, (id)) 568 #define local_id(id) local_id_gen(parser, (id)) 570 #define internal_id() internal_id_gen(parser) 573 #define dyna_push() dyna_push_gen(parser) 575 #define dyna_pop(node) dyna_pop_gen(parser, (node)) 577 #define dyna_in_block() dyna_in_block_gen(parser) 578 #define dyna_var(id) local_var(id) 580 #define dvar_defined(id) dvar_defined_gen(parser, (id), 0) 581 #define dvar_defined_get(id) dvar_defined_gen(parser, (id), 1) 583 #define dvar_curr(id) dvar_curr_gen(parser, (id)) 586 #define lvar_defined(id) lvar_defined_gen(parser, (id)) 588 #define RE_OPTION_ONCE (1<<16) 589 #define RE_OPTION_ENCODING_SHIFT 8 590 #define RE_OPTION_ENCODING(e) (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT) 591 #define RE_OPTION_ENCODING_IDX(o) (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff) 592 #define RE_OPTION_ENCODING_NONE(o) ((o)&RE_OPTION_ARG_ENCODING_NONE) 593 #define RE_OPTION_MASK 0xff 594 #define RE_OPTION_ARG_ENCODING_NONE 32 596 #define NODE_STRTERM NODE_ZARRAY 597 #define NODE_HEREDOC NODE_ARRAY 598 #define SIGN_EXTEND(x,n) (((1<<(n)-1)^((x)&~(~0<<(n))))-(1<<(n)-1)) 599 #define nd_func u1.id 600 #if SIZEOF_SHORT == 2 601 #define nd_term(node) ((signed short)(node)->u2.id) 603 #define nd_term(node) SIGN_EXTEND((node)->u2.id, CHAR_BIT*2) 605 #define nd_paren(node) (char)((node)->u2.id >> CHAR_BIT*2) 606 #define nd_nest u3.cnt 611 #define RIPPER_VERSION "0.1.0" 624 #define dispatch0(n) ripper_dispatch0(parser, TOKEN_PASTE(ripper_id_, n)) 625 #define dispatch1(n,a) ripper_dispatch1(parser, TOKEN_PASTE(ripper_id_, n), (a)) 626 #define dispatch2(n,a,b) ripper_dispatch2(parser, TOKEN_PASTE(ripper_id_, n), (a), (b)) 627 #define dispatch3(n,a,b,c) ripper_dispatch3(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c)) 628 #define dispatch4(n,a,b,c,d) ripper_dispatch4(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d)) 629 #define dispatch5(n,a,b,c,d,e) ripper_dispatch5(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e)) 630 #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)) 632 #define yyparse ripper_yyparse 634 #define ripper_intern(s) ID2SYM(rb_intern(s)) 635 static VALUE ripper_id2sym(
ID);
637 #define ripper_id2sym(id) ((id) < 256 && rb_ispunct(id) ? \ 638 ID2SYM(id) : ripper_id2sym(id)) 641 #define arg_new() dispatch0(args_new) 642 #define arg_add(l,a) dispatch2(args_add, (l), (a)) 643 #define arg_add_star(l,a) dispatch2(args_add_star, (l), (a)) 644 #define arg_add_block(l,b) dispatch2(args_add_block, (l), (b)) 645 #define arg_add_optblock(l,b) ((b)==Qundef? (l) : dispatch2(args_add_block, (l), (b))) 646 #define bare_assoc(v) dispatch1(bare_assoc_hash, (v)) 647 #define arg_add_assocs(l,b) arg_add((l), bare_assoc(b)) 649 #define args2mrhs(a) dispatch1(mrhs_new_from_args, (a)) 650 #define mrhs_new() dispatch0(mrhs_new) 651 #define mrhs_add(l,a) dispatch2(mrhs_add, (l), (a)) 652 #define mrhs_add_star(l,a) dispatch2(mrhs_add_star, (l), (a)) 654 #define mlhs_new() dispatch0(mlhs_new) 655 #define mlhs_add(l,a) dispatch2(mlhs_add, (l), (a)) 656 #define mlhs_add_star(l,a) dispatch2(mlhs_add_star, (l), (a)) 658 #define params_new(pars, opts, rest, pars2, kws, kwrest, blk) \ 659 dispatch7(params, (pars), (opts), (rest), (pars2), (kws), (kwrest), (blk)) 661 #define blockvar_new(p,v) dispatch2(block_var, (p), (v)) 662 #define blockvar_add_star(l,a) dispatch2(block_var_add_star, (l), (a)) 663 #define blockvar_add_block(l,a) dispatch2(block_var_add_block, (l), (a)) 665 #define method_optarg(m,a) ((a)==Qundef ? (m) : dispatch2(method_add_arg,(m),(a))) 666 #define method_arg(m,a) dispatch2(method_add_arg,(m),(a)) 667 #define method_add_block(m,b) dispatch2(method_add_block, (m), (b)) 669 #define escape_Qundef(x) ((x)==Qundef ? Qnil : (x)) 675 VALUE k =
t->u1.value, kr =
t->u2.value, b =
t->u3.value;
676 return params_new(
f, o, r, p, k, kr, escape_Qundef(b));
678 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t)) 685 #define new_args_tail(k,kr,b) new_args_tail_gen(parser, (k),(kr),(b)) 687 #define new_defined(expr) dispatch1(defined, (expr)) 695 # define ifndef_ripper(x) (x) 698 # define ifndef_ripper(x) 702 # define rb_warn0(fmt) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt)) 703 # define rb_warnI(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a)) 704 # define rb_warnS(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a)) 705 # define rb_warn4S(file,line,fmt,a) rb_compile_warn((file), (line), (fmt), (a)) 706 # define rb_warning0(fmt) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt)) 707 # define rb_warningS(fmt,a) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt), (a)) 709 # define rb_warn0(fmt) ripper_warn0(parser, (fmt)) 710 # define rb_warnI(fmt,a) ripper_warnI(parser, (fmt), (a)) 711 # define rb_warnS(fmt,a) ripper_warnS(parser, (fmt), (a)) 712 # define rb_warn4S(file,line,fmt,a) ripper_warnS(parser, (fmt), (a)) 713 # define rb_warning0(fmt) ripper_warning0(parser, (fmt)) 714 # define rb_warningS(fmt,a) ripper_warningS(parser, (fmt), (a)) 715 static void ripper_warn0(
struct parser_params*,
const char*);
716 static void ripper_warnI(
struct parser_params*,
const char*,
int);
717 static void ripper_warnS(
struct parser_params*,
const char*,
const char*);
718 static void ripper_warning0(
struct parser_params*,
const char*);
719 static void ripper_warningS(
struct parser_params*,
const char*,
const char*);
723 static void ripper_compile_error(
struct parser_params*,
const char *fmt, ...);
724 # define rb_compile_error ripper_compile_error 725 # define compile_error ripper_compile_error 726 # define PARSER_ARG parser, 728 # define rb_compile_error rb_compile_error_with_enc 729 # define compile_error parser->nerr++,rb_compile_error_with_enc 730 # define PARSER_ARG ruby_sourcefile, ruby_sourceline, current_enc, 738 #define YYMAXDEPTH 10000 745 #define token_info_push(token) (RTEST(ruby_verbose) ? token_info_push(parser, (token)) : (void)0) 746 #define token_info_pop(token) (RTEST(ruby_verbose) ? token_info_pop(parser, (token)) : (void)0) 748 #define token_info_push(token) 749 #define token_info_pop(token) 762 #ifdef YYERROR_VERBOSE 763 # undef YYERROR_VERBOSE 764 # define YYERROR_VERBOSE 1 766 # define YYERROR_VERBOSE 0 770 #ifndef YYTOKEN_TABLE 771 # define YYTOKEN_TABLE 0 901 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 919 # define YYSTYPE_IS_TRIVIAL 1 920 # define yystype YYSTYPE 921 # define YYSTYPE_IS_DECLARED 1 943 #elif (defined __STDC__ || defined __C99__FUNC__ \ 944 || defined __cplusplus || defined _MSC_VER) 963 # ifdef __SIZE_TYPE__ 964 # define YYSIZE_T __SIZE_TYPE__ 965 # elif defined size_t 966 # define YYSIZE_T size_t 967 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 968 || defined __cplusplus || defined _MSC_VER) 970 # define YYSIZE_T size_t 972 # define YYSIZE_T unsigned int 976 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) 979 # if defined YYENABLE_NLS && YYENABLE_NLS 981 # include <libintl.h> 982 # define YY_(msgid) dgettext ("bison-runtime", msgid) 986 # define YY_(msgid) msgid 991 #if ! defined lint || defined __GNUC__ 992 # define YYUSE(e) ((void) (e)) 1001 #if (defined __STDC__ || defined __C99__FUNC__ \ 1002 || defined __cplusplus || defined _MSC_VER) 1015 #if ! defined yyoverflow || YYERROR_VERBOSE 1019 # ifdef YYSTACK_USE_ALLOCA 1020 # if YYSTACK_USE_ALLOCA 1022 # define YYSTACK_ALLOC __builtin_alloca 1023 # elif defined __BUILTIN_VA_ARG_INCR 1024 # include <alloca.h> 1026 # define YYSTACK_ALLOC __alloca 1027 # elif defined _MSC_VER 1028 # include <malloc.h> 1029 # define alloca _alloca 1031 # define YYSTACK_ALLOC alloca 1032 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 1033 || defined __cplusplus || defined _MSC_VER) 1034 # include <stdlib.h> 1035 # ifndef EXIT_SUCCESS 1036 # define EXIT_SUCCESS 0 1043 # ifdef YYSTACK_ALLOC 1045 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0)) 1046 # ifndef YYSTACK_ALLOC_MAXIMUM 1051 # define YYSTACK_ALLOC_MAXIMUM 4032 1054 # define YYSTACK_ALLOC YYMALLOC 1055 # define YYSTACK_FREE YYFREE 1056 # ifndef YYSTACK_ALLOC_MAXIMUM 1057 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 1059 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 1060 && ! ((defined YYMALLOC || defined malloc) \ 1061 && (defined YYFREE || defined free))) 1062 # include <stdlib.h> 1063 # ifndef EXIT_SUCCESS 1064 # define EXIT_SUCCESS 0 1068 # define YYMALLOC malloc 1069 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 1070 || defined __cplusplus || defined _MSC_VER) 1075 # define YYFREE free 1076 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 1077 || defined __cplusplus || defined _MSC_VER) 1085 #if (! defined yyoverflow \ 1086 && (! defined __cplusplus \ 1087 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 1097 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 1101 # define YYSTACK_BYTES(N) \ 1102 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ 1103 + YYSTACK_GAP_MAXIMUM) 1105 # define YYCOPY_NEEDED 1 1112 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 1115 YYSIZE_T yynewbytes; \ 1116 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 1117 Stack = &yyptr->Stack_alloc; \ 1118 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 1119 yyptr += yynewbytes / sizeof (*yyptr); \ 1125 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED 1129 # if defined __GNUC__ && 1 < __GNUC__ 1130 # define YYCOPY(To, From, Count) \ 1131 __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 1133 # define YYCOPY(To, From, Count) \ 1137 for (yyi = 0; yyi < (Count); yyi++) \ 1138 (To)[yyi] = (From)[yyi]; \ 1148 #define YYLAST 11083 1151 #define YYNTOKENS 144 1155 #define YYNRULES 627 1157 #define YYNSTATES 1060 1160 #define YYUNDEFTOK 2 1161 #define YYMAXUTOK 354 1163 #define YYTRANSLATE(YYX) \ 1164 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 1169 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1170 143, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1171 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1172 2, 2, 142, 129, 2, 2, 2, 127, 122, 2,
1173 138, 139, 125, 123, 136, 124, 135, 126, 2, 2,
1174 2, 2, 2, 2, 2, 2, 2, 2, 117, 141,
1175 119, 115, 118, 116, 2, 2, 2, 2, 2, 2,
1176 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1177 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1178 2, 134, 2, 140, 121, 2, 137, 2, 2, 2,
1179 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1180 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1181 2, 2, 2, 132, 120, 133, 130, 2, 81, 82,
1182 68, 69, 70, 2, 71, 85, 86, 76, 75, 72,
1183 73, 74, 79, 80, 83, 84, 2, 2, 2, 2,
1184 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1185 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1186 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1187 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1188 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1189 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1190 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1191 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1192 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1193 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1194 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1195 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1196 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1197 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1198 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1199 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1200 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1201 65, 66, 67, 77, 78, 87, 88, 89, 90, 91,
1202 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1203 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1204 112, 113, 114, 128, 131
1212 0, 0, 3, 4, 7, 10, 12, 14, 18, 21,
1213 23, 24, 30, 35, 38, 40, 42, 46, 49, 51,
1214 52, 58, 59, 64, 68, 72, 76, 79, 83, 87,
1215 91, 95, 99, 104, 106, 110, 114, 121, 127, 133,
1216 139, 145, 149, 153, 157, 159, 163, 167, 169, 173,
1217 177, 181, 184, 186, 188, 190, 192, 194, 199, 200,
1218 206, 208, 211, 215, 220, 226, 231, 237, 240, 243,
1219 246, 249, 252, 254, 258, 260, 264, 266, 269, 273,
1220 279, 282, 287, 290, 295, 297, 301, 303, 307, 310,
1221 314, 316, 320, 322, 324, 329, 333, 337, 341, 345,
1222 348, 350, 352, 354, 359, 363, 367, 371, 375, 378,
1223 380, 382, 384, 387, 389, 393, 395, 397, 399, 401,
1224 403, 405, 407, 409, 411, 413, 414, 419, 421, 423,
1225 425, 427, 429, 431, 433, 435, 437, 439, 441, 443,
1226 445, 447, 449, 451, 453, 455, 457, 459, 461, 463,
1227 465, 467, 469, 471, 473, 475, 477, 479, 481, 483,
1228 485, 487, 489, 491, 493, 495, 497, 499, 501, 503,
1229 505, 507, 509, 511, 513, 515, 517, 519, 521, 523,
1230 525, 527, 529, 531, 533, 535, 537, 539, 541, 543,
1231 545, 547, 549, 551, 553, 555, 557, 559, 561, 565,
1232 571, 575, 581, 588, 594, 600, 606, 612, 617, 621,
1233 625, 629, 633, 637, 641, 645, 649, 653, 658, 661,
1234 664, 668, 672, 676, 680, 684, 688, 692, 696, 700,
1235 704, 708, 712, 716, 719, 722, 726, 730, 734, 738,
1236 739, 744, 751, 753, 755, 757, 760, 765, 768, 772,
1237 774, 776, 778, 780, 783, 788, 791, 793, 796, 799,
1238 804, 806, 807, 810, 813, 816, 818, 820, 823, 827,
1239 832, 834, 836, 840, 845, 848, 850, 852, 854, 856,
1240 858, 860, 862, 864, 866, 868, 870, 871, 876, 877,
1241 881, 882, 883, 889, 893, 897, 900, 904, 908, 910,
1242 915, 919, 921, 922, 929, 934, 938, 941, 943, 946,
1243 949, 956, 963, 964, 965, 973, 974, 975, 983, 989,
1244 994, 995, 996, 1006, 1007, 1014, 1015, 1016, 1025, 1026,
1245 1032, 1033, 1040, 1041, 1042, 1052, 1054, 1056, 1058, 1060,
1246 1062, 1064, 1066, 1068, 1070, 1072, 1074, 1076, 1078, 1080,
1247 1082, 1084, 1086, 1088, 1091, 1093, 1095, 1097, 1103, 1105,
1248 1108, 1110, 1112, 1114, 1118, 1120, 1124, 1126, 1131, 1138,
1249 1142, 1148, 1151, 1156, 1158, 1162, 1167, 1170, 1173, 1175,
1250 1178, 1179, 1186, 1195, 1200, 1207, 1212, 1215, 1222, 1225,
1251 1230, 1237, 1240, 1245, 1248, 1253, 1255, 1257, 1259, 1263,
1252 1265, 1270, 1272, 1277, 1279, 1283, 1285, 1287, 1288, 1289,
1253 1290, 1291, 1298, 1303, 1305, 1309, 1313, 1314, 1320, 1323,
1254 1328, 1334, 1340, 1343, 1344, 1350, 1351, 1357, 1361, 1362,
1255 1367, 1368, 1373, 1376, 1378, 1383, 1384, 1390, 1391, 1397,
1256 1403, 1405, 1407, 1414, 1416, 1418, 1420, 1422, 1425, 1427,
1257 1430, 1432, 1434, 1436, 1438, 1440, 1442, 1444, 1447, 1451,
1258 1455, 1459, 1463, 1467, 1468, 1472, 1474, 1477, 1481, 1485,
1259 1486, 1490, 1494, 1498, 1502, 1506, 1507, 1511, 1512, 1516,
1260 1517, 1520, 1521, 1524, 1525, 1528, 1530, 1531, 1535, 1536,
1261 1537, 1538, 1545, 1547, 1549, 1551, 1553, 1556, 1558, 1560,
1262 1562, 1564, 1568, 1570, 1573, 1575, 1577, 1579, 1581, 1583,
1263 1585, 1587, 1589, 1591, 1593, 1595, 1597, 1599, 1601, 1603,
1264 1605, 1607, 1609, 1611, 1613, 1615, 1617, 1619, 1620, 1625,
1265 1628, 1632, 1633, 1637, 1642, 1645, 1648, 1650, 1653, 1654,
1266 1661, 1670, 1675, 1682, 1687, 1694, 1697, 1702, 1709, 1712,
1267 1717, 1720, 1725, 1727, 1728, 1730, 1732, 1734, 1736, 1738,
1268 1740, 1742, 1746, 1748, 1752, 1754, 1757, 1759, 1762, 1764,
1269 1766, 1770, 1772, 1776, 1778, 1780, 1783, 1785, 1789, 1793,
1270 1795, 1799, 1801, 1805, 1807, 1809, 1812, 1814, 1816, 1818,
1271 1821, 1824, 1826, 1828, 1829, 1834, 1836, 1839, 1841, 1845,
1272 1849, 1852, 1855, 1857, 1859, 1861, 1863, 1865, 1867, 1869,
1273 1871, 1873, 1875, 1877, 1879, 1880, 1882, 1883, 1885, 1888,
1274 1891, 1892, 1894, 1896, 1898, 1900, 1902, 1905
1280 145, 0, -1, -1, 146, 147, -1, 148, 340, -1,
1281 347, -1, 149, -1, 148, 346, 149, -1, 1, 149,
1282 -1, 156, -1, -1, 47, 150, 132, 147, 133, -1,
1283 152, 266, 233, 269, -1, 153, 340, -1, 347, -1,
1284 154, -1, 153, 346, 154, -1, 1, 156, -1, 156,
1285 -1, -1, 47, 155, 132, 147, 133, -1, -1, 45,
1286 179, 157, 179, -1, 45, 54, 54, -1, 45, 54,
1287 66, -1, 45, 54, 65, -1, 6, 180, -1, 156,
1288 40, 160, -1, 156, 41, 160, -1, 156, 42, 160,
1289 -1, 156, 43, 160, -1, 156, 44, 156, -1, 48,
1290 132, 152, 133, -1, 158, -1, 167, 115, 161, -1,
1291 302, 89, 161, -1, 218, 134, 190, 343, 89, 161,
1292 -1, 218, 135, 52, 89, 161, -1, 218, 135, 56,
1293 89, 161, -1, 218, 87, 56, 89, 161, -1, 218,
1294 87, 52, 89, 161, -1, 303, 89, 161, -1, 174,
1295 115, 198, -1, 167, 115, 197, -1, 159, -1, 174,
1296 115, 161, -1, 174, 115, 158, -1, 161, -1, 159,
1297 37, 159, -1, 159, 38, 159, -1, 39, 341, 159,
1298 -1, 129, 161, -1, 184, -1, 159, -1, 166, -1,
1299 162, -1, 255, -1, 255, 339, 337, 192, -1, -1,
1300 96, 164, 241, 152, 133, -1, 336, -1, 165, 192,
1301 -1, 165, 192, 163, -1, 218, 135, 337, 192, -1,
1302 218, 135, 337, 192, 163, -1, 218, 87, 337, 192,
1303 -1, 218, 87, 337, 192, 163, -1, 32, 192, -1,
1304 31, 192, -1, 30, 191, -1, 21, 191, -1, 22,
1305 191, -1, 169, -1, 91, 168, 342, -1, 169, -1,
1306 91, 168, 342, -1, 171, -1, 171, 170, -1, 171,
1307 97, 173, -1, 171, 97, 173, 136, 172, -1, 171,
1308 97, -1, 171, 97, 136, 172, -1, 97, 173, -1,
1309 97, 173, 136, 172, -1, 97, -1, 97, 136, 172,
1310 -1, 173, -1, 91, 168, 342, -1, 170, 136, -1,
1311 171, 170, 136, -1, 170, -1, 172, 136, 170, -1,
1312 299, -1, 300, -1, 218, 134, 190, 343, -1, 218,
1313 135, 52, -1, 218, 87, 52, -1, 218, 135, 56,
1314 -1, 218, 87, 56, -1, 88, 56, -1, 303, -1,
1315 299, -1, 300, -1, 218, 134, 190, 343, -1, 218,
1316 135, 52, -1, 218, 87, 52, -1, 218, 135, 56,
1317 -1, 218, 87, 56, -1, 88, 56, -1, 303, -1,
1318 52, -1, 56, -1, 88, 175, -1, 175, -1, 218,
1319 87, 175, -1, 52, -1, 56, -1, 53, -1, 182,
1320 -1, 183, -1, 177, -1, 294, -1, 178, -1, 296,
1321 -1, 179, -1, -1, 180, 136, 181, 179, -1, 120,
1322 -1, 121, -1, 122, -1, 71, -1, 72, -1, 73,
1323 -1, 79, -1, 80, -1, 118, -1, 75, -1, 119,
1324 -1, 76, -1, 74, -1, 85, -1, 86, -1, 123,
1325 -1, 124, -1, 125, -1, 97, -1, 126, -1, 127,
1326 -1, 70, -1, 98, -1, 129, -1, 130, -1, 68,
1327 -1, 69, -1, 83, -1, 84, -1, 137, -1, 49,
1328 -1, 50, -1, 51, -1, 47, -1, 48, -1, 45,
1329 -1, 37, -1, 7, -1, 21, -1, 16, -1, 3,
1330 -1, 5, -1, 46, -1, 26, -1, 15, -1, 14,
1331 -1, 10, -1, 9, -1, 36, -1, 20, -1, 25,
1332 -1, 4, -1, 22, -1, 34, -1, 39, -1, 38,
1333 -1, 23, -1, 8, -1, 24, -1, 30, -1, 33,
1334 -1, 32, -1, 13, -1, 35, -1, 6, -1, 17,
1335 -1, 31, -1, 11, -1, 12, -1, 18, -1, 19,
1336 -1, 174, 115, 184, -1, 174, 115, 184, 44, 184,
1337 -1, 302, 89, 184, -1, 302, 89, 184, 44, 184,
1338 -1, 218, 134, 190, 343, 89, 184, -1, 218, 135,
1339 52, 89, 184, -1, 218, 135, 56, 89, 184, -1,
1340 218, 87, 52, 89, 184, -1, 218, 87, 56, 89,
1341 184, -1, 88, 56, 89, 184, -1, 303, 89, 184,
1342 -1, 184, 81, 184, -1, 184, 82, 184, -1, 184,
1343 123, 184, -1, 184, 124, 184, -1, 184, 125, 184,
1344 -1, 184, 126, 184, -1, 184, 127, 184, -1, 184,
1345 70, 184, -1, 128, 298, 70, 184, -1, 68, 184,
1346 -1, 69, 184, -1, 184, 120, 184, -1, 184, 121,
1347 184, -1, 184, 122, 184, -1, 184, 71, 184, -1,
1348 184, 118, 184, -1, 184, 75, 184, -1, 184, 119,
1349 184, -1, 184, 76, 184, -1, 184, 72, 184, -1,
1350 184, 73, 184, -1, 184, 74, 184, -1, 184, 79,
1351 184, -1, 184, 80, 184, -1, 129, 184, -1, 130,
1352 184, -1, 184, 85, 184, -1, 184, 86, 184, -1,
1353 184, 77, 184, -1, 184, 78, 184, -1, -1, 46,
1354 341, 185, 184, -1, 184, 116, 184, 341, 117, 184,
1355 -1, 199, -1, 184, -1, 347, -1, 196, 344, -1,
1356 196, 136, 334, 344, -1, 334, 344, -1, 138, 190,
1357 342, -1, 347, -1, 188, -1, 347, -1, 191, -1,
1358 196, 136, -1, 196, 136, 334, 136, -1, 334, 136,
1359 -1, 166, -1, 196, 195, -1, 334, 195, -1, 196,
1360 136, 334, 195, -1, 194, -1, -1, 193, 191, -1,
1361 99, 186, -1, 136, 194, -1, 347, -1, 186, -1,
1362 97, 186, -1, 196, 136, 186, -1, 196, 136, 97,
1363 186, -1, 198, -1, 186, -1, 196, 136, 186, -1,
1364 196, 136, 97, 186, -1, 97, 186, -1, 270, -1,
1365 271, -1, 274, -1, 275, -1, 276, -1, 281, -1,
1366 279, -1, 282, -1, 301, -1, 303, -1, 53, -1,
1367 -1, 219, 200, 151, 229, -1, -1, 92, 201, 342,
1368 -1, -1, -1, 92, 202, 159, 203, 342, -1, 91,
1369 152, 139, -1, 218, 87, 56, -1, 88, 56, -1,
1370 94, 187, 140, -1, 95, 333, 133, -1, 30, -1,
1371 31, 138, 191, 342, -1, 31, 138, 342, -1, 31,
1372 -1, -1, 46, 341, 138, 204, 159, 342, -1, 39,
1373 138, 159, 342, -1, 39, 138, 342, -1, 165, 261,
1374 -1, 256, -1, 256, 261, -1, 100, 246, -1, 220,
1375 160, 230, 152, 232, 229, -1, 221, 160, 230, 152,
1376 233, 229, -1, -1, -1, 222, 205, 160, 231, 206,
1377 152, 229, -1, -1, -1, 223, 207, 160, 231, 208,
1378 152, 229, -1, 224, 160, 340, 264, 229, -1, 224,
1379 340, 264, 229, -1, -1, -1, 225, 234, 25, 209,
1380 160, 231, 210, 152, 229, -1, -1, 226, 176, 304,
1381 211, 151, 229, -1, -1, -1, 226, 85, 159, 212,
1382 345, 213, 151, 229, -1, -1, 227, 176, 214, 151,
1383 229, -1, -1, 228, 177, 215, 306, 151, 229, -1,
1384 -1, -1, 228, 331, 339, 216, 177, 217, 306, 151,
1385 229, -1, 21, -1, 22, -1, 23, -1, 24, -1,
1386 199, -1, 7, -1, 11, -1, 12, -1, 18, -1,
1387 19, -1, 16, -1, 20, -1, 3, -1, 4, -1,
1388 5, -1, 10, -1, 345, -1, 13, -1, 345, 13,
1389 -1, 345, -1, 27, -1, 233, -1, 14, 160, 230,
1390 152, 232, -1, 347, -1, 15, 152, -1, 174, -1,
1391 167, -1, 312, -1, 91, 237, 342, -1, 235, -1,
1392 236, 136, 235, -1, 236, -1, 236, 136, 97, 312,
1393 -1, 236, 136, 97, 312, 136, 236, -1, 236, 136,
1394 97, -1, 236, 136, 97, 136, 236, -1, 97, 312,
1395 -1, 97, 312, 136, 236, -1, 97, -1, 97, 136,
1396 236, -1, 318, 136, 321, 330, -1, 318, 330, -1,
1397 321, 330, -1, 329, -1, 136, 238, -1, -1, 314,
1398 136, 324, 136, 327, 239, -1, 314, 136, 324, 136,
1399 327, 136, 314, 239, -1, 314, 136, 324, 239, -1,
1400 314, 136, 324, 136, 314, 239, -1, 314, 136, 327,
1401 239, -1, 314, 136, -1, 314, 136, 327, 136, 314,
1402 239, -1, 314, 239, -1, 324, 136, 327, 239, -1,
1403 324, 136, 327, 136, 314, 239, -1, 324, 239, -1,
1404 324, 136, 314, 239, -1, 327, 239, -1, 327, 136,
1405 314, 239, -1, 238, -1, 347, -1, 242, -1, 120,
1406 243, 120, -1, 78, -1, 120, 240, 243, 120, -1,
1407 341, -1, 341, 141, 244, 341, -1, 245, -1, 244,
1408 136, 245, -1, 52, -1, 311, -1, -1, -1, -1,
1409 -1, 247, 248, 251, 249, 250, 252, -1, 138, 310,
1410 243, 139, -1, 310, -1, 113, 152, 133, -1, 29,
1411 152, 10, -1, -1, 28, 254, 241, 152, 10, -1,
1412 166, 253, -1, 255, 339, 337, 189, -1, 255, 339,
1413 337, 189, 261, -1, 255, 339, 337, 192, 253, -1,
1414 165, 188, -1, -1, 218, 135, 337, 257, 189, -1,
1415 -1, 218, 87, 337, 258, 188, -1, 218, 87, 338,
1416 -1, -1, 218, 135, 259, 188, -1, -1, 218, 87,
1417 260, 188, -1, 32, 188, -1, 32, -1, 218, 134,
1418 190, 343, -1, -1, 132, 262, 241, 152, 133, -1,
1419 -1, 26, 263, 241, 152, 10, -1, 17, 196, 230,
1420 152, 265, -1, 233, -1, 264, -1, 8, 267, 268,
1421 230, 152, 266, -1, 347, -1, 186, -1, 198, -1,
1422 347, -1, 90, 174, -1, 347, -1, 9, 152, -1,
1423 347, -1, 297, -1, 294, -1, 296, -1, 272, -1,
1424 64, -1, 273, -1, 272, 273, -1, 102, 285, 112,
1425 -1, 103, 286, 112, -1, 104, 287, 67, -1, 105,
1426 142, 112, -1, 105, 277, 112, -1, -1, 277, 278,
1427 142, -1, 288, -1, 278, 288, -1, 107, 142, 112,
1428 -1, 107, 280, 112, -1, -1, 280, 278, 142, -1,
1429 106, 142, 112, -1, 106, 283, 112, -1, 108, 142,
1430 112, -1, 108, 284, 112, -1, -1, 283, 63, 142,
1431 -1, -1, 284, 63, 142, -1, -1, 285, 288, -1,
1432 -1, 286, 288, -1, -1, 287, 288, -1, 63, -1,
1433 -1, 111, 289, 293, -1, -1, -1, -1, 109, 290,
1434 291, 292, 152, 110, -1, 54, -1, 55, -1, 57,
1435 -1, 303, -1, 101, 295, -1, 177, -1, 55, -1,
1436 54, -1, 57, -1, 101, 286, 112, -1, 298, -1,
1437 128, 298, -1, 59, -1, 60, -1, 61, -1, 62,
1438 -1, 52, -1, 55, -1, 54, -1, 56, -1, 57,
1439 -1, 34, -1, 33, -1, 35, -1, 36, -1, 50,
1440 -1, 49, -1, 51, -1, 299, -1, 300, -1, 299,
1441 -1, 300, -1, 65, -1, 66, -1, 345, -1, -1,
1442 119, 305, 160, 345, -1, 1, 345, -1, 138, 310,
1443 342, -1, -1, 307, 310, 345, -1, 319, 136, 321,
1444 330, -1, 319, 330, -1, 321, 330, -1, 329, -1,
1445 136, 308, -1, -1, 314, 136, 325, 136, 327, 309,
1446 -1, 314, 136, 325, 136, 327, 136, 314, 309, -1,
1447 314, 136, 325, 309, -1, 314, 136, 325, 136, 314,
1448 309, -1, 314, 136, 327, 309, -1, 314, 136, 327,
1449 136, 314, 309, -1, 314, 309, -1, 325, 136, 327,
1450 309, -1, 325, 136, 327, 136, 314, 309, -1, 325,
1451 309, -1, 325, 136, 314, 309, -1, 327, 309, -1,
1452 327, 136, 314, 309, -1, 308, -1, -1, 56, -1,
1453 55, -1, 54, -1, 57, -1, 311, -1, 52, -1,
1454 312, -1, 91, 237, 342, -1, 313, -1, 314, 136,
1455 313, -1, 58, -1, 315, 186, -1, 315, -1, 315,
1456 218, -1, 315, -1, 317, -1, 318, 136, 317, -1,
1457 316, -1, 319, 136, 316, -1, 70, -1, 98, -1,
1458 320, 52, -1, 320, -1, 312, 115, 186, -1, 312,
1459 115, 218, -1, 323, -1, 324, 136, 323, -1, 322,
1460 -1, 325, 136, 322, -1, 125, -1, 97, -1, 326,
1461 52, -1, 326, -1, 122, -1, 99, -1, 328, 52,
1462 -1, 136, 329, -1, 347, -1, 301, -1, -1, 138,
1463 332, 159, 342, -1, 347, -1, 334, 344, -1, 335,
1464 -1, 334, 136, 335, -1, 186, 90, 186, -1, 58,
1465 186, -1, 98, 186, -1, 52, -1, 56, -1, 53,
1466 -1, 52, -1, 56, -1, 53, -1, 182, -1, 52,
1467 -1, 53, -1, 182, -1, 135, -1, 87, -1, -1,
1468 346, -1, -1, 143, -1, 341, 139, -1, 341, 140,
1469 -1, -1, 143, -1, 136, -1, 141, -1, 143, -1,
1470 345, -1, 346, 141, -1, -1
1476 0, 863, 863, 863, 894, 905, 914, 922, 930, 936,
1477 938, 937, 958, 991, 1002, 1011, 1019, 1027, 1033, 1038,
1478 1037, 1058, 1058, 1066, 1074, 1085, 1095, 1103, 1112, 1121,
1479 1134, 1147, 1156, 1168, 1169, 1179, 1184, 1205, 1210, 1215,
1480 1225, 1230, 1240, 1249, 1258, 1261, 1270, 1282, 1283, 1291,
1481 1299, 1307, 1315, 1318, 1330, 1331, 1334, 1335, 1347, 1346,
1482 1368, 1378, 1387, 1400, 1409, 1421, 1430, 1442, 1451, 1460,
1483 1468, 1476, 1486, 1487, 1497, 1498, 1508, 1516, 1524, 1532,
1484 1541, 1549, 1558, 1566, 1575, 1583, 1594, 1595, 1605, 1613,
1485 1623, 1631, 1641, 1645, 1649, 1657, 1665, 1673, 1681, 1693,
1486 1703, 1715, 1724, 1733, 1741, 1749, 1757, 1765, 1778, 1791,
1487 1802, 1810, 1813, 1821, 1829, 1839, 1840, 1841, 1842, 1847,
1488 1858, 1859, 1862, 1870, 1873, 1881, 1881, 1891, 1892, 1893,
1489 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903,
1490 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913,
1491 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1923, 1923, 1923,
1492 1924, 1924, 1925, 1925, 1925, 1926, 1926, 1926, 1926, 1927,
1493 1927, 1927, 1927, 1928, 1928, 1928, 1929, 1929, 1929, 1929,
1494 1930, 1930, 1930, 1930, 1931, 1931, 1931, 1931, 1932, 1932,
1495 1932, 1932, 1933, 1933, 1933, 1933, 1934, 1934, 1937, 1946,
1496 1956, 1961, 1971, 1997, 2002, 2007, 2012, 2022, 2032, 2043,
1497 2057, 2071, 2079, 2087, 2095, 2103, 2111, 2119, 2128, 2136,
1498 2144, 2152, 2160, 2168, 2176, 2184, 2192, 2200, 2208, 2216,
1499 2224, 2232, 2243, 2251, 2259, 2267, 2275, 2283, 2291, 2299,
1500 2299, 2309, 2319, 2325, 2337, 2338, 2342, 2350, 2360, 2370,
1501 2371, 2374, 2375, 2376, 2380, 2388, 2398, 2407, 2415, 2425,
1502 2434, 2443, 2443, 2455, 2465, 2469, 2475, 2483, 2491, 2505,
1503 2521, 2522, 2525, 2539, 2554, 2564, 2565, 2566, 2567, 2568,
1504 2569, 2570, 2571, 2572, 2573, 2574, 2583, 2582, 2610, 2610,
1505 2619, 2623, 2618, 2632, 2640, 2648, 2656, 2669, 2677, 2685,
1506 2693, 2701, 2709, 2709, 2719, 2727, 2735, 2745, 2746, 2756,
1507 2760, 2772, 2784, 2784, 2784, 2795, 2795, 2795, 2806, 2817,
1508 2826, 2828, 2825, 2892, 2891, 2913, 2918, 2912, 2937, 2936,
1509 2958, 2957, 2980, 2981, 2980, 3001, 3009, 3017, 3025, 3035,
1510 3047, 3053, 3059, 3065, 3071, 3077, 3083, 3089, 3095, 3101,
1511 3111, 3117, 3122, 3123, 3130, 3135, 3138, 3139, 3152, 3153,
1512 3163, 3164, 3167, 3175, 3185, 3193, 3203, 3211, 3220, 3229,
1513 3237, 3245, 3254, 3266, 3274, 3285, 3289, 3293, 3297, 3303,
1514 3308, 3313, 3317, 3321, 3325, 3329, 3333, 3341, 3345, 3349,
1515 3353, 3357, 3361, 3365, 3369, 3373, 3379, 3380, 3386, 3395,
1516 3404, 3415, 3419, 3429, 3436, 3445, 3453, 3459, 3462, 3467,
1517 3470, 3459, 3489, 3497, 3503, 3507, 3514, 3513, 3534, 3550,
1518 3559, 3571, 3585, 3595, 3594, 3611, 3610, 3626, 3635, 3634,
1519 3652, 3651, 3668, 3676, 3684, 3699, 3698, 3718, 3717, 3738,
1520 3750, 3751, 3754, 3773, 3776, 3784, 3792, 3795, 3799, 3802,
1521 3810, 3813, 3814, 3822, 3825, 3842, 3843, 3844, 3854, 3864,
1522 3891, 3956, 3965, 3976, 3983, 3993, 4001, 4011, 4020, 4031,
1523 4038, 4056, 4065, 4075, 4084, 4095, 4102, 4113, 4120, 4135,
1524 4142, 4153, 4160, 4171, 4178, 4207, 4209, 4208, 4225, 4231,
1525 4236, 4224, 4255, 4263, 4271, 4279, 4282, 4293, 4294, 4295,
1526 4296, 4299, 4310, 4311, 4321, 4322, 4323, 4324, 4327, 4328,
1527 4329, 4330, 4331, 4334, 4335, 4336, 4337, 4338, 4339, 4340,
1528 4343, 4356, 4366, 4374, 4384, 4385, 4388, 4397, 4396, 4405,
1529 4417, 4427, 4427, 4440, 4444, 4448, 4452, 4458, 4463, 4468,
1530 4472, 4476, 4480, 4484, 4488, 4492, 4496, 4500, 4504, 4508,
1531 4512, 4516, 4520, 4525, 4531, 4540, 4549, 4558, 4569, 4570,
1532 4577, 4586, 4605, 4612, 4626, 4633, 4642, 4653, 4662, 4673,
1533 4681, 4698, 4706, 4722, 4723, 4726, 4731, 4737, 4749, 4761,
1534 4769, 4785, 4793, 4809, 4810, 4813, 4826, 4837, 4838, 4841,
1535 4858, 4862, 4872, 4882, 4882, 4911, 4912, 4922, 4929, 4939,
1536 4951, 4959, 4971, 4972, 4973, 4976, 4977, 4978, 4979, 4982,
1537 4983, 4984, 4987, 4992, 4999, 5000, 5003, 5004, 5007, 5010,
1538 5013, 5014, 5015, 5018, 5019, 5022, 5023, 5027
1542 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE 1547 "\"end-of-input\"",
"error",
"$undefined",
"keyword_class",
1548 "keyword_module",
"keyword_def",
"keyword_undef",
"keyword_begin",
1549 "keyword_rescue",
"keyword_ensure",
"keyword_end",
"keyword_if",
1550 "keyword_unless",
"keyword_then",
"keyword_elsif",
"keyword_else",
1551 "keyword_case",
"keyword_when",
"keyword_while",
"keyword_until",
1552 "keyword_for",
"keyword_break",
"keyword_next",
"keyword_redo",
1553 "keyword_retry",
"keyword_in",
"keyword_do",
"keyword_do_cond",
1554 "keyword_do_block",
"keyword_do_LAMBDA",
"keyword_return",
1555 "keyword_yield",
"keyword_super",
"keyword_self",
"keyword_nil",
1556 "keyword_true",
"keyword_false",
"keyword_and",
"keyword_or",
1557 "keyword_not",
"modifier_if",
"modifier_unless",
"modifier_while",
1558 "modifier_until",
"modifier_rescue",
"keyword_alias",
"keyword_defined",
1559 "keyword_BEGIN",
"keyword_END",
"keyword__LINE__",
"keyword__FILE__",
1560 "keyword__ENCODING__",
"tIDENTIFIER",
"tFID",
"tGVAR",
"tIVAR",
1561 "tCONSTANT",
"tCVAR",
"tLABEL",
"tINTEGER",
"tFLOAT",
"tRATIONAL",
1562 "tIMAGINARY",
"tSTRING_CONTENT",
"tCHAR",
"tNTH_REF",
"tBACK_REF",
1563 "tREGEXP_END",
"\"unary+\"",
"\"unary-\"",
"\"**\"",
"\"<=>\"",
"\"==\"",
1564 "\"===\"",
"\"!=\"",
"\">=\"",
"\"<=\"",
"\"&&\"",
"\"||\"",
"\"=~\"",
1565 "\"!~\"",
"\"..\"",
"\"...\"",
"\"[]\"",
"\"[]=\"",
"\"<<\"",
"\">>\"",
1566 "\"::\"",
"\":: at EXPR_BEG\"",
"tOP_ASGN",
"\"=>\"",
"\"(\"",
1567 "\"( arg\"",
"\")\"",
"\"[\"",
"\"{\"",
"\"{ arg\"",
"\"*\"",
1568 "\"**arg\"",
"\"&\"",
"\"->\"",
"tSYMBEG",
"tSTRING_BEG",
"tXSTRING_BEG",
1569 "tREGEXP_BEG",
"tWORDS_BEG",
"tQWORDS_BEG",
"tSYMBOLS_BEG",
1570 "tQSYMBOLS_BEG",
"tSTRING_DBEG",
"tSTRING_DEND",
"tSTRING_DVAR",
1571 "tSTRING_END",
"tLAMBEG",
"tLOWEST",
"'='",
"'?'",
"':'",
"'>'",
"'<'",
1572 "'|'",
"'^'",
"'&'",
"'+'",
"'-'",
"'*'",
"'/'",
"'%'",
"tUMINUS_NUM",
1573 "'!'",
"'~'",
"tLAST_TOKEN",
"'{'",
"'}'",
"'['",
"'.'",
"','",
"'`'",
1574 "'('",
"')'",
"']'",
"';'",
"' '",
"'\\n'",
"$accept",
"program",
"$@1",
1575 "top_compstmt",
"top_stmts",
"top_stmt",
"$@2",
"bodystmt",
"compstmt",
1576 "stmts",
"stmt_or_begin",
"$@3",
"stmt",
"$@4",
"command_asgn",
"expr",
1577 "expr_value",
"command_call",
"block_command",
"cmd_brace_block",
"@5",
1578 "fcall",
"command",
"mlhs",
"mlhs_inner",
"mlhs_basic",
"mlhs_item",
1579 "mlhs_head",
"mlhs_post",
"mlhs_node",
"lhs",
"cname",
"cpath",
"fname",
1580 "fsym",
"fitem",
"undef_list",
"$@6",
"op",
"reswords",
"arg",
"$@7",
1581 "arg_value",
"aref_args",
"paren_args",
"opt_paren_args",
1582 "opt_call_args",
"call_args",
"command_args",
"@8",
"block_arg",
1583 "opt_block_arg",
"args",
"mrhs_arg",
"mrhs",
"primary",
"@9",
"$@10",
1584 "$@11",
"$@12",
"$@13",
"$@14",
"$@15",
"$@16",
"$@17",
"$@18",
"$@19",
1585 "@20",
"@21",
"@22",
"@23",
"@24",
"$@25",
"$@26",
"primary_value",
1586 "k_begin",
"k_if",
"k_unless",
"k_while",
"k_until",
"k_case",
"k_for",
1587 "k_class",
"k_module",
"k_def",
"k_end",
"then",
"do",
"if_tail",
1588 "opt_else",
"for_var",
"f_marg",
"f_marg_list",
"f_margs",
1589 "block_args_tail",
"opt_block_args_tail",
"block_param",
1590 "opt_block_param",
"block_param_def",
"opt_bv_decl",
"bv_decls",
"bvar",
1591 "lambda",
"@27",
"@28",
"@29",
"@30",
"f_larglist",
"lambda_body",
1592 "do_block",
"@31",
"block_call",
"method_call",
"@32",
"@33",
"@34",
1593 "@35",
"brace_block",
"@36",
"@37",
"case_body",
"cases",
"opt_rescue",
1594 "exc_list",
"exc_var",
"opt_ensure",
"literal",
"strings",
"string",
1595 "string1",
"xstring",
"regexp",
"words",
"word_list",
"word",
"symbols",
1596 "symbol_list",
"qwords",
"qsymbols",
"qword_list",
"qsym_list",
1597 "string_contents",
"xstring_contents",
"regexp_contents",
1598 "string_content",
"@38",
"@39",
"@40",
"@41",
"string_dvar",
"symbol",
1599 "sym",
"dsym",
"numeric",
"simple_numeric",
"user_variable",
1600 "keyword_variable",
"var_ref",
"var_lhs",
"backref",
"superclass",
1601 "$@42",
"f_arglist",
"@43",
"args_tail",
"opt_args_tail",
"f_args",
1602 "f_bad_arg",
"f_norm_arg",
"f_arg_item",
"f_arg",
"f_label",
"f_kw",
1603 "f_block_kw",
"f_block_kwarg",
"f_kwarg",
"kwrest_mark",
"f_kwrest",
1604 "f_opt",
"f_block_opt",
"f_block_optarg",
"f_optarg",
"restarg_mark",
1605 "f_rest_arg",
"blkarg_mark",
"f_block_arg",
"opt_f_block_arg",
1606 "singleton",
"$@44",
"assoc_list",
"assocs",
"assoc",
"operation",
1607 "operation2",
"operation3",
"dot_or_colon",
"opt_terms",
"opt_nl",
1608 "rparen",
"rbracket",
"trailer",
"term",
"terms",
"none", 0
1617 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1618 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1619 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1620 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1621 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1622 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1623 315, 316, 317, 318, 319, 320, 321, 322, 130, 131,
1624 132, 134, 139, 140, 141, 138, 137, 323, 324, 142,
1625 143, 128, 129, 144, 145, 135, 136, 325, 326, 327,
1626 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
1627 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
1628 348, 349, 350, 351, 352, 61, 63, 58, 62, 60,
1629 124, 94, 38, 43, 45, 42, 47, 37, 353, 33,
1630 126, 354, 123, 125, 91, 46, 44, 96, 40, 41,
1638 0, 144, 146, 145, 147, 148, 148, 148, 148, 149,
1639 150, 149, 151, 152, 153, 153, 153, 153, 154, 155,
1640 154, 157, 156, 156, 156, 156, 156, 156, 156, 156,
1641 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1642 156, 156, 156, 156, 156, 158, 158, 159, 159, 159,
1643 159, 159, 159, 160, 161, 161, 162, 162, 164, 163,
1644 165, 166, 166, 166, 166, 166, 166, 166, 166, 166,
1645 166, 166, 167, 167, 168, 168, 169, 169, 169, 169,
1646 169, 169, 169, 169, 169, 169, 170, 170, 171, 171,
1647 172, 172, 173, 173, 173, 173, 173, 173, 173, 173,
1648 173, 174, 174, 174, 174, 174, 174, 174, 174, 174,
1649 175, 175, 176, 176, 176, 177, 177, 177, 177, 177,
1650 178, 178, 179, 179, 180, 181, 180, 182, 182, 182,
1651 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1652 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1653 182, 182, 182, 182, 182, 182, 182, 183, 183, 183,
1654 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
1655 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
1656 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
1657 183, 183, 183, 183, 183, 183, 183, 183, 184, 184,
1658 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
1659 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
1660 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
1661 184, 184, 184, 184, 184, 184, 184, 184, 184, 185,
1662 184, 184, 184, 186, 187, 187, 187, 187, 188, 189,
1663 189, 190, 190, 190, 190, 190, 191, 191, 191, 191,
1664 191, 193, 192, 194, 195, 195, 196, 196, 196, 196,
1665 197, 197, 198, 198, 198, 199, 199, 199, 199, 199,
1666 199, 199, 199, 199, 199, 199, 200, 199, 201, 199,
1667 202, 203, 199, 199, 199, 199, 199, 199, 199, 199,
1668 199, 199, 204, 199, 199, 199, 199, 199, 199, 199,
1669 199, 199, 205, 206, 199, 207, 208, 199, 199, 199,
1670 209, 210, 199, 211, 199, 212, 213, 199, 214, 199,
1671 215, 199, 216, 217, 199, 199, 199, 199, 199, 218,
1672 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
1673 229, 230, 230, 230, 231, 231, 232, 232, 233, 233,
1674 234, 234, 235, 235, 236, 236, 237, 237, 237, 237,
1675 237, 237, 237, 237, 237, 238, 238, 238, 238, 239,
1676 239, 240, 240, 240, 240, 240, 240, 240, 240, 240,
1677 240, 240, 240, 240, 240, 240, 241, 241, 242, 242,
1678 242, 243, 243, 244, 244, 245, 245, 247, 248, 249,
1679 250, 246, 251, 251, 252, 252, 254, 253, 255, 255,
1680 255, 255, 256, 257, 256, 258, 256, 256, 259, 256,
1681 260, 256, 256, 256, 256, 262, 261, 263, 261, 264,
1682 265, 265, 266, 266, 267, 267, 267, 268, 268, 269,
1683 269, 270, 270, 270, 271, 272, 272, 272, 273, 274,
1684 275, 276, 276, 277, 277, 278, 278, 279, 279, 280,
1685 280, 281, 281, 282, 282, 283, 283, 284, 284, 285,
1686 285, 286, 286, 287, 287, 288, 289, 288, 290, 291,
1687 292, 288, 293, 293, 293, 293, 294, 295, 295, 295,
1688 295, 296, 297, 297, 298, 298, 298, 298, 299, 299,
1689 299, 299, 299, 300, 300, 300, 300, 300, 300, 300,
1690 301, 301, 302, 302, 303, 303, 304, 305, 304, 304,
1691 306, 307, 306, 308, 308, 308, 308, 309, 309, 310,
1692 310, 310, 310, 310, 310, 310, 310, 310, 310, 310,
1693 310, 310, 310, 310, 311, 311, 311, 311, 312, 312,
1694 313, 313, 314, 314, 315, 316, 316, 317, 317, 318,
1695 318, 319, 319, 320, 320, 321, 321, 322, 323, 324,
1696 324, 325, 325, 326, 326, 327, 327, 328, 328, 329,
1697 330, 330, 331, 332, 331, 333, 333, 334, 334, 335,
1698 335, 335, 336, 336, 336, 337, 337, 337, 337, 338,
1699 338, 338, 339, 339, 340, 340, 341, 341, 342, 343,
1700 344, 344, 344, 345, 345, 346, 346, 347
1706 0, 2, 0, 2, 2, 1, 1, 3, 2, 1,
1707 0, 5, 4, 2, 1, 1, 3, 2, 1, 0,
1708 5, 0, 4, 3, 3, 3, 2, 3, 3, 3,
1709 3, 3, 4, 1, 3, 3, 6, 5, 5, 5,
1710 5, 3, 3, 3, 1, 3, 3, 1, 3, 3,
1711 3, 2, 1, 1, 1, 1, 1, 4, 0, 5,
1712 1, 2, 3, 4, 5, 4, 5, 2, 2, 2,
1713 2, 2, 1, 3, 1, 3, 1, 2, 3, 5,
1714 2, 4, 2, 4, 1, 3, 1, 3, 2, 3,
1715 1, 3, 1, 1, 4, 3, 3, 3, 3, 2,
1716 1, 1, 1, 4, 3, 3, 3, 3, 2, 1,
1717 1, 1, 2, 1, 3, 1, 1, 1, 1, 1,
1718 1, 1, 1, 1, 1, 0, 4, 1, 1, 1,
1719 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1720 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1721 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1722 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1723 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1724 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1725 1, 1, 1, 1, 1, 1, 1, 1, 3, 5,
1726 3, 5, 6, 5, 5, 5, 5, 4, 3, 3,
1727 3, 3, 3, 3, 3, 3, 3, 4, 2, 2,
1728 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1729 3, 3, 3, 2, 2, 3, 3, 3, 3, 0,
1730 4, 6, 1, 1, 1, 2, 4, 2, 3, 1,
1731 1, 1, 1, 2, 4, 2, 1, 2, 2, 4,
1732 1, 0, 2, 2, 2, 1, 1, 2, 3, 4,
1733 1, 1, 3, 4, 2, 1, 1, 1, 1, 1,
1734 1, 1, 1, 1, 1, 1, 0, 4, 0, 3,
1735 0, 0, 5, 3, 3, 2, 3, 3, 1, 4,
1736 3, 1, 0, 6, 4, 3, 2, 1, 2, 2,
1737 6, 6, 0, 0, 7, 0, 0, 7, 5, 4,
1738 0, 0, 9, 0, 6, 0, 0, 8, 0, 5,
1739 0, 6, 0, 0, 9, 1, 1, 1, 1, 1,
1740 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1741 1, 1, 1, 2, 1, 1, 1, 5, 1, 2,
1742 1, 1, 1, 3, 1, 3, 1, 4, 6, 3,
1743 5, 2, 4, 1, 3, 4, 2, 2, 1, 2,
1744 0, 6, 8, 4, 6, 4, 2, 6, 2, 4,
1745 6, 2, 4, 2, 4, 1, 1, 1, 3, 1,
1746 4, 1, 4, 1, 3, 1, 1, 0, 0, 0,
1747 0, 6, 4, 1, 3, 3, 0, 5, 2, 4,
1748 5, 5, 2, 0, 5, 0, 5, 3, 0, 4,
1749 0, 4, 2, 1, 4, 0, 5, 0, 5, 5,
1750 1, 1, 6, 1, 1, 1, 1, 2, 1, 2,
1751 1, 1, 1, 1, 1, 1, 1, 2, 3, 3,
1752 3, 3, 3, 0, 3, 1, 2, 3, 3, 0,
1753 3, 3, 3, 3, 3, 0, 3, 0, 3, 0,
1754 2, 0, 2, 0, 2, 1, 0, 3, 0, 0,
1755 0, 6, 1, 1, 1, 1, 2, 1, 1, 1,
1756 1, 3, 1, 2, 1, 1, 1, 1, 1, 1,
1757 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1758 1, 1, 1, 1, 1, 1, 1, 0, 4, 2,
1759 3, 0, 3, 4, 2, 2, 1, 2, 0, 6,
1760 8, 4, 6, 4, 6, 2, 4, 6, 2, 4,
1761 2, 4, 1, 0, 1, 1, 1, 1, 1, 1,
1762 1, 3, 1, 3, 1, 2, 1, 2, 1, 1,
1763 3, 1, 3, 1, 1, 2, 1, 3, 3, 1,
1764 3, 1, 3, 1, 1, 2, 1, 1, 1, 2,
1765 2, 1, 1, 0, 4, 1, 2, 1, 3, 3,
1766 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1767 1, 1, 1, 1, 0, 1, 0, 1, 2, 2,
1768 0, 1, 1, 1, 1, 1, 2, 0
1776 2, 0, 0, 1, 0, 347, 348, 349, 0, 340,
1777 341, 342, 345, 343, 344, 346, 335, 336, 337, 338,
1778 298, 261, 261, 514, 513, 515, 516, 616, 0, 616,
1779 10, 0, 518, 517, 519, 602, 604, 510, 509, 603,
1780 512, 504, 505, 506, 507, 455, 524, 525, 0, 0,
1781 0, 0, 290, 627, 627, 84, 407, 481, 479, 481,
1782 483, 463, 475, 469, 477, 0, 0, 0, 3, 614,
1783 6, 9, 33, 44, 47, 55, 261, 54, 0, 72,
1784 0, 76, 86, 0, 52, 242, 0, 286, 0, 0,
1785 312, 315, 614, 0, 0, 0, 0, 56, 307, 275,
1786 276, 454, 456, 277, 278, 279, 281, 280, 282, 452,
1787 453, 451, 502, 520, 521, 283, 0, 284, 60, 5,
1788 8, 167, 178, 168, 191, 164, 184, 174, 173, 194,
1789 195, 189, 172, 171, 166, 192, 196, 197, 176, 165,
1790 179, 183, 185, 177, 170, 186, 193, 188, 187, 180,
1791 190, 175, 163, 182, 181, 162, 169, 160, 161, 157,
1792 158, 159, 115, 117, 116, 152, 153, 148, 130, 131,
1793 132, 139, 136, 138, 133, 134, 154, 155, 140, 141,
1794 145, 149, 135, 137, 127, 128, 129, 142, 143, 144,
1795 146, 147, 150, 151, 156, 120, 122, 124, 26, 118,
1796 119, 121, 123, 0, 0, 0, 0, 0, 0, 0,
1797 0, 256, 0, 243, 266, 70, 260, 627, 0, 520,
1798 521, 0, 284, 627, 597, 71, 69, 616, 68, 0,
1799 627, 432, 67, 616, 617, 0, 0, 21, 239, 0,
1800 0, 335, 336, 298, 301, 433, 0, 218, 0, 219,
1801 295, 0, 19, 0, 0, 614, 15, 18, 616, 74,
1802 14, 616, 0, 0, 620, 620, 244, 0, 0, 620,
1803 595, 616, 0, 0, 0, 82, 339, 0, 92, 93,
1804 100, 309, 408, 499, 498, 500, 497, 0, 496, 0,
1805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1806 503, 51, 233, 234, 623, 624, 4, 625, 615, 0,
1807 0, 0, 0, 0, 0, 0, 437, 435, 422, 61,
1808 306, 416, 418, 0, 88, 0, 80, 77, 0, 0,
1809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1811 0, 0, 0, 0, 0, 430, 627, 428, 0, 53,
1812 0, 0, 0, 0, 614, 0, 615, 0, 361, 360,
1813 0, 0, 520, 521, 284, 110, 111, 0, 0, 113,
1814 0, 0, 520, 521, 284, 328, 187, 180, 190, 175,
1815 157, 158, 159, 115, 116, 593, 330, 592, 0, 613,
1816 612, 0, 308, 457, 0, 0, 125, 600, 295, 267,
1817 601, 263, 0, 0, 0, 257, 265, 430, 627, 428,
1818 0, 0, 0, 258, 616, 0, 300, 262, 616, 252,
1819 627, 627, 251, 616, 305, 50, 23, 25, 24, 0,
1820 302, 0, 0, 0, 430, 428, 0, 17, 0, 616,
1821 293, 13, 615, 73, 289, 291, 296, 622, 621, 245,
1822 622, 247, 297, 596, 0, 99, 503, 90, 85, 0,
1823 430, 627, 428, 553, 485, 488, 486, 501, 482, 458,
1824 480, 459, 460, 484, 461, 462, 0, 465, 471, 0,
1825 472, 467, 468, 0, 473, 0, 474, 0, 626, 7,
1826 27, 28, 29, 30, 31, 48, 49, 627, 627, 58,
1827 62, 627, 0, 34, 271, 0, 43, 270, 616, 0,
1828 78, 89, 46, 45, 0, 198, 266, 42, 216, 223,
1829 228, 229, 230, 225, 227, 237, 238, 231, 232, 209,
1830 210, 235, 236, 616, 224, 226, 220, 221, 222, 211,
1831 212, 213, 214, 215, 605, 607, 606, 608, 0, 261,
1832 427, 616, 605, 607, 606, 608, 0, 261, 0, 627,
1833 352, 0, 351, 0, 0, 0, 0, 0, 0, 295,
1834 430, 627, 428, 320, 325, 110, 111, 112, 0, 527,
1835 323, 526, 430, 627, 428, 0, 0, 531, 332, 605,
1836 606, 261, 35, 200, 41, 208, 0, 198, 599, 0,
1837 268, 264, 627, 605, 606, 616, 605, 606, 598, 299,
1838 618, 248, 253, 255, 304, 22, 0, 240, 0, 32,
1839 425, 423, 207, 0, 75, 16, 616, 620, 0, 83,
1840 96, 98, 616, 605, 606, 559, 556, 555, 554, 557,
1841 564, 573, 0, 584, 574, 588, 587, 583, 553, 409,
1842 552, 413, 558, 560, 562, 538, 566, 571, 627, 576,
1843 627, 581, 538, 586, 538, 0, 536, 489, 0, 464,
1844 466, 476, 470, 478, 217, 399, 616, 0, 397, 396,
1845 0, 627, 0, 274, 0, 87, 81, 0, 0, 0,
1846 0, 0, 0, 431, 65, 0, 0, 434, 0, 0,
1847 429, 63, 627, 350, 287, 627, 627, 443, 627, 353,
1848 627, 355, 313, 354, 316, 0, 0, 319, 609, 294,
1849 616, 605, 606, 0, 0, 529, 0, 0, 110, 111,
1850 114, 616, 0, 616, 553, 0, 553, 0, 250, 419,
1851 57, 249, 0, 126, 269, 259, 0, 0, 434, 0,
1852 0, 627, 616, 11, 0, 292, 246, 91, 94, 0,
1853 373, 364, 366, 616, 362, 616, 410, 0, 0, 545,
1854 565, 0, 534, 591, 575, 0, 535, 0, 548, 585,
1855 0, 550, 589, 490, 492, 493, 494, 487, 495, 395,
1856 616, 0, 560, 380, 568, 569, 627, 627, 579, 380,
1857 380, 378, 401, 0, 0, 0, 0, 0, 272, 79,
1858 199, 0, 40, 205, 39, 206, 66, 426, 619, 0,
1859 37, 203, 38, 204, 64, 424, 444, 445, 627, 446,
1860 0, 627, 358, 0, 0, 356, 0, 0, 0, 318,
1861 0, 0, 434, 0, 326, 0, 0, 434, 329, 594,
1862 616, 0, 0, 333, 420, 421, 201, 0, 254, 303,
1863 20, 616, 0, 371, 0, 561, 0, 0, 577, 537,
1864 563, 538, 538, 572, 627, 590, 538, 582, 538, 560,
1865 538, 0, 0, 398, 0, 386, 388, 0, 567, 0,
1866 376, 377, 0, 391, 0, 393, 0, 438, 436, 0,
1867 417, 273, 241, 36, 202, 0, 0, 448, 359, 0,
1868 12, 450, 0, 310, 311, 0, 0, 268, 627, 321,
1869 0, 528, 324, 530, 331, 532, 531, 363, 374, 0,
1870 369, 365, 412, 0, 0, 411, 0, 541, 0, 543,
1871 533, 0, 549, 0, 546, 551, 0, 400, 578, 379,
1872 380, 380, 295, 430, 570, 627, 380, 580, 380, 380,
1873 405, 616, 403, 406, 59, 0, 447, 0, 101, 102,
1874 109, 0, 449, 0, 314, 317, 440, 441, 439, 0,
1875 0, 0, 0, 372, 0, 367, 0, 0, 538, 538,
1876 538, 538, 491, 0, 383, 0, 385, 609, 294, 375,
1877 0, 392, 0, 389, 394, 0, 402, 108, 430, 627,
1878 428, 627, 627, 0, 327, 0, 370, 0, 415, 414,
1879 542, 0, 539, 544, 547, 380, 380, 380, 380, 404,
1880 609, 107, 616, 605, 606, 442, 357, 322, 334, 368,
1881 538, 384, 0, 381, 387, 390, 434, 540, 380, 382
1887 -1, 1, 2, 68, 69, 70, 239, 568, 569, 255,
1888 256, 448, 257, 439, 72, 73, 360, 74, 75, 510,
1889 691, 246, 77, 78, 258, 79, 80, 81, 468, 82,
1890 212, 379, 380, 195, 196, 197, 198, 606, 557, 200,
1891 84, 441, 214, 263, 231, 749, 428, 429, 228, 229,
1892 216, 415, 430, 516, 517, 85, 358, 261, 262, 636,
1893 626, 362, 847, 363, 848, 733, 989, 737, 734, 930,
1894 595, 597, 747, 936, 248, 87, 88, 89, 90, 91,
1895 92, 93, 94, 95, 96, 714, 571, 722, 844, 845,
1896 371, 771, 772, 773, 959, 896, 800, 687, 688, 801,
1897 971, 972, 281, 282, 473, 776, 877, 659, 945, 322,
1898 511, 97, 98, 712, 705, 566, 558, 320, 508, 507,
1899 578, 988, 716, 838, 916, 920, 99, 100, 101, 102,
1900 103, 104, 105, 293, 486, 106, 297, 107, 108, 295,
1901 299, 289, 287, 291, 478, 678, 677, 793, 891, 797,
1902 109, 288, 110, 111, 112, 219, 220, 115, 221, 222,
1903 590, 736, 745, 746, 879, 779, 661, 662, 889, 664,
1904 665, 666, 667, 805, 806, 668, 669, 670, 671, 808,
1905 809, 672, 673, 674, 675, 676, 782, 398, 596, 268,
1906 431, 224, 118, 630, 560, 401, 306, 425, 426, 707,
1912 #define YYPACT_NINF -813 1915 -813, 111, 2847, -813, 7396, -813, -813, -813, 6911, -813,
1916 -813, -813, -813, -813, -813, -813, 7511, 7511, -813, -813,
1917 7511, 4052, 3641, -813, -813, -813, -813, -21, 6776, -35,
1918 -813, -12, -813, -813, -813, 2956, 3778, -813, -813, 3093,
1919 -813, -813, -813, -813, -813, -813, -813, -813, 8891, 8891,
1920 72, 5120, 30, 7856, 8201, 7174, -813, 6641, -813, -813,
1921 -813, 41, 84, 95, 136, 1005, 9006, 8891, -813, 230,
1922 -813, 1060, -813, 324, -813, -813, 142, 104, 168, -813,
1923 192, 9236, -813, 201, 3209, 40, 271, -813, 9121, 9121,
1924 -813, -813, 6021, 9347, 9458, 9569, 6505, 22, 97, -813,
1925 -813, 56, -813, -813, -813, -813, -813, -813, -813, -813,
1926 -813, -813, -813, 27, 472, -813, 243, 651, -813, -813,
1927 -813, -813, -813, -813, -813, -813, -813, -813, -813, -813,
1928 -813, -813, -813, -813, -813, -813, -813, -813, -813, -813,
1929 -813, -813, -813, -813, -813, -813, -813, -813, -813, -813,
1930 -813, -813, -813, -813, -813, -813, -813, -813, -813, -813,
1931 -813, -813, -813, -813, -813, -813, -813, -813, -813, -813,
1932 -813, -813, -813, -813, -813, -813, -813, -813, -813, -813,
1933 -813, -813, -813, -813, -813, -813, -813, -813, -813, -813,
1934 -813, -813, -813, -813, -813, -813, -813, -813, 207, -813,
1935 -813, -813, -813, 219, 8891, 330, 5261, 8891, 8891, 8891,
1936 8891, -813, 285, 3209, 343, -813, -813, 278, 301, 14,
1937 233, 348, 244, 284, -813, -813, -813, 5906, -813, 7511,
1938 7511, -813, -813, 6136, -813, 9121, 775, -813, 314, 354,
1939 5402, -813, -813, -813, 342, 364, 142, -813, 435, 422,
1940 687, 7626, -813, 5120, 369, 230, -813, 1060, -35, 408,
1941 -813, -35, 9121, 403, 329, 331, -813, 343, 420, 331,
1942 -813, -35, 510, 1005, 9680, 432, -813, 520, 565, 590,
1943 604, -813, -813, -813, -813, -813, -813, 502, -813, 513,
1944 523, 416, 465, 658, 469, 33, 476, 685, 488, 44,
1945 514, -813, -813, -813, -813, -813, -813, -813, 6251, 9121,
1946 9121, 9121, 9121, 7626, 9121, 9121, -813, -813, -813, 522,
1947 -813, -813, -813, 8316, -813, 5120, 7285, 528, 8316, 8891,
1948 8891, 8891, 8891, 8891, 8891, 8891, 8891, 8891, 8891, 8891,
1949 8891, 8891, 8891, 8891, 8891, 8891, 8891, 8891, 8891, 8891,
1950 8891, 8891, 8891, 8891, 8891, 9963, 7511, 10042, 4467, 324,
1951 112, 112, 9121, 9121, 230, 642, 530, 618, -813, -813,
1952 620, 655, 94, 108, 121, 312, 495, 9121, 139, -813,
1953 212, 644, -813, -813, -813, -813, 26, 292, 384, 458,
1954 467, 532, 562, 570, 582, -813, -813, -813, 22, -813,
1955 -813, 10121, -813, -813, 9006, 9006, -813, -813, 286, -813,
1956 -813, -813, 8891, 8891, 7741, -813, -813, 10200, 7511, 10279,
1957 8891, 8891, 7971, -813, -35, 544, -813, -813, -35, -813,
1958 550, 551, -813, 93, -813, -813, -813, -813, -813, 6911,
1959 -813, 8891, 5535, 576, 10200, 10279, 8891, 1060, 558, -35,
1960 -813, -813, 6366, 559, -813, 324, -813, 8086, -813, -813,
1961 8201, -813, -813, -813, 314, 648, -813, -813, 597, 9680,
1962 10358, 7511, 10437, 1164, -813, -813, -813, -813, -813, -813,
1963 -813, -813, -813, -813, -813, -813, 346, -813, -813, 556,
1964 -813, -813, -813, 347, -813, 584, -813, 8891, -813, -813,
1965 -813, -813, -813, -813, -813, -813, -813, 19, 19, -813,
1966 -813, 19, 8891, -813, 607, 608, -813, -813, -35, 9680,
1967 610, -813, -813, -813, 636, 2008, -813, -813, 422, 2309,
1968 2309, 2309, 2309, 1315, 1315, 2621, 1681, 2309, 2309, 3346,
1969 3346, 425, 425, 10940, 1315, 1315, 795, 795, 887, 337,
1970 337, 422, 422, 422, 4189, 3230, 4326, 3367, 364, 623,
1971 -813, -35, 688, -813, 706, -813, 364, 3915, 755, 763,
1972 -813, 4608, 771, 4890, 65, 65, 642, 8431, 755, 135,
1973 10516, 7511, 10595, -813, 324, -813, 648, -813, 230, -813,
1974 -813, -813, 10674, 7511, 10121, 4467, 9121, 647, -813, -813,
1975 -813, 1256, -813, 2935, -813, 3209, 6911, 3072, -813, 8891,
1976 343, -813, 284, 2529, 3504, -35, 381, 526, -813, -813,
1977 -813, -813, 7741, 7971, -813, -813, 9121, 3209, 657, -813,
1978 -813, -813, 3209, 5535, 262, -813, -35, 331, 9680, 597,
1979 505, 394, -35, 276, 351, -813, -813, -813, -813, -813,
1980 -813, -813, 950, -813, -813, -813, -813, -813, 1220, -813,
1981 -813, -813, -813, 678, -813, 674, 8891, -813, 676, 768,
1982 692, -813, 701, 786, 707, 800, -813, -813, 885, -813,
1983 -813, -813, -813, -813, 422, -813, 1115, 5676, -813, -813,
1984 5402, 19, 5676, 718, 8546, -813, 597, 9680, 9006, 8891,
1985 739, 9006, 9006, -813, 522, 364, 721, 717, 9006, 9006,
1986 -813, 522, 364, -813, -813, 8661, 842, -813, 664, -813,
1987 842, -813, -813, -813, -813, 755, 71, -813, 66, 80,
1988 -35, 141, 162, 9121, 230, -813, 9121, 4467, 505, 394,
1989 -813, -35, 755, 93, 1220, 4467, 1220, 7046, -813, 97,
1990 104, -813, 8891, -813, -813, -813, 8891, 8891, 557, 8891,
1991 8891, 728, 93, -813, 733, -813, -813, -813, 366, 950,
1992 459, -813, 732, -35, -813, -35, -813, 8891, 1220, -813,
1993 -813, 586, -813, -813, -813, 42, -813, 1220, -813, -813,
1994 1307, -813, -813, -813, -813, -813, -813, -813, -813, -813,
1995 -35, 751, 757, 737, 9791, -813, 740, 692, -813, 742,
1996 747, -813, 734, 877, 758, 5402, 878, 8891, 761, 597,
1997 3209, 8891, -813, 3209, -813, 3209, -813, -813, -813, 9006,
1998 -813, 3209, -813, 3209, -813, -813, 607, -813, 804, -813,
1999 5005, 890, -813, 9121, 755, -813, 755, 5676, 5676, -813,
2000 8776, 4749, 288, 65, -813, 230, 755, -813, -813, -813,
2001 -35, 755, 230, -813, -813, -813, 3209, 8891, 7971, -813,
2002 -813, -35, 873, 769, 1000, -813, 765, 73, -813, -813,
2003 -813, 772, 773, -813, 692, -813, 776, -813, 777, -813,
2004 776, 5791, 787, -813, 9791, 1220, -813, 855, 673, 586,
2005 -813, -813, 1220, -813, 1307, -813, 1016, -813, -813, 783,
2006 -813, 788, 3209, -813, 3209, 9902, 112, -813, -813, 5676,
2007 -813, -813, 112, -813, -813, 755, 755, -813, 542, -813,
2008 4467, -813, -813, -813, -813, -813, 647, -813, 796, 873,
2009 484, -813, -813, 5676, 5402, -813, 1220, -813, 1307, -813,
2010 -813, 1307, -813, 1307, -813, -813, 813, -813, 673, -813,
2011 799, 801, -813, 10753, -813, 692, 802, -813, 808, 802,
2012 -813, 367, -813, -813, -813, 875, -813, 681, 565, 590,
2013 604, 4467, -813, 4608, -813, -813, -813, -813, -813, 5676,
2014 755, 4467, 873, 796, 873, 811, 923, 815, 776, 817,
2015 776, 776, -813, 1220, -813, 1307, -813, 818, 820, -813,
2016 1307, -813, 1307, -813, -813, 1016, -813, 648, 10832, 7511,
2017 10911, 763, 664, 755, -813, 755, 796, 873, -813, -813,
2018 -813, 1307, -813, -813, -813, 802, 819, 802, 802, -813,
2019 169, 394, -35, 127, 146, -813, -813, -813, -813, 796,
2020 776, -813, 1307, -813, -813, -813, 180, -813, 802, -813
2026 -813, -813, -813, -361, -813, 29, -813, -540, -29, -813,
2027 515, -813, 43, -813, -301, -63, -71, 21, -813, -174,
2028 -813, 797, -10, 869, -158, 16, -76, -813, -395, 8,
2029 1783, -325, 870, -53, -813, -5, -813, -813, 3, -813,
2030 1127, -813, -19, -813, -67, 257, -317, 118, -3, -813,
2031 -390, -181, -4, -813, -313, -15, -813, -813, -813, -813,
2032 -813, -813, -813, -813, -813, -813, -813, -813, -813, -813,
2033 -813, -813, -813, -813, 55, -813, -813, -813, -813, -813,
2034 -813, -813, -813, -813, -813, -541, -344, -527, -45, -631,
2035 -813, -770, -784, 210, 290, 172, -813, -425, -813, -663,
2036 -813, -31, -813, -813, -813, -813, -813, -813, -813, 236,
2037 -813, -813, -813, -813, -813, -813, -813, -96, -813, -813,
2038 -556, -813, -34, -813, -813, -813, -813, -813, -813, 889,
2039 -813, -813, -813, -813, 691, -813, -813, -813, -813, -813,
2040 -813, -813, 933, -813, -97, -813, -813, -813, -813, -813,
2041 0, -813, 6, -813, -11, 1321, 1524, 897, 1945, 1604,
2042 -813, -813, 58, -813, -404, -154, -323, -812, 123, -717,
2043 87, 76, 215, 101, -813, -813, -813, -69, -711, -629,
2044 106, 237, -813, -616, -813, -44, -626, -813, -813, -813,
2045 98, -392, -813, -319, -813, 624, -46, -26, -168, -565,
2052 #define YYTABLE_NINF -628 2055 119, 235, 402, 238, 286, 327, 211, 211, 201, 318,
2056 211, 199, 217, 217, 202, 527, 217, 573, 361, 232,
2057 725, 364, 254, 237, 611, 359, 359, 522, 201, 359,
2058 618, 199, 611, 120, 202, 267, 559, 727, 567, 561,
2059 276, 307, 423, 396, 786, 71, 365, 71, 724, 264,
2060 758, 266, 270, 587, 300, 742, 308, 86, 461, 86,
2061 199, 880, 463, 275, 307, 434, 276, 259, 618, 660,
2062 810, 218, 218, 319, 639, 218, 887, 768, 276, 276,
2063 276, 628, 601, 690, 570, 841, 692, 301, 938, 846,
2064 453, -105, 721, 454, 973, 449, 489, 685, 559, 199,
2065 567, 615, 943, -522, 941, -107, 86, 495, 234, 399,
2066 277, 3, 876, -514, 223, 223, -522, 233, 223, -101,
2067 240, 218, 234, 316, 696, 570, 631, -339, 250, -101,
2068 314, 315, 321, -102, 215, 225, 277, 892, 226, 686,
2069 -104, 655, -101, 218, 218, 490, -109, 218, 370, 381,
2070 381, 265, 269, 631, 642, 993, 496, 400, 58, -106,
2071 -108, -514, 882, -92, 656, 852, -104, 518, 316, -288,
2072 433, 888, 435, -288, -339, -339, 857, 254, 880, 318,
2073 900, 901, -105, 292, 849, 407, 944, -106, 409, 410,
2074 411, 585, 480, -103, 483, 586, 487, 856, 467, 455,
2075 487, 858, -96, 973, -605, 861, 304, 850, 305, 451,
2076 1026, 443, 304, 588, 305, 416, -98, 211, -606, 211,
2077 211, 416, 941, 217, 254, 217, 294, 307, 432, 317,
2078 -92, 618, 611, 611, 880, 887, 234, 296, 500, 501,
2079 502, 503, 452, 1049, -93, 464, 359, 359, 359, 359,
2080 423, 505, 506, 304, 660, 305, 619, -100, 950, 276,
2081 621, 86, 466, 631, 730, 624, 815, 740, -104, 259,
2082 -104, -99, 764, 967, 317, 631, 741, -95, 298, 961,
2083 230, 634, 218, 323, 218, 218, 968, -106, 218, -106,
2084 218, 574, 575, 880, 447, 86, 254, 986, -97, 359,
2085 359, -95, 819, 923, 514, 924, 86, -605, 86, 526,
2086 -105, 276, -105, -103, 584, 932, 328, 218, 576, 515,
2087 934, -103, -523, -103, 515, 223, 929, 223, 324, 277,
2088 999, 589, 404, 421, 520, 775, 307, 499, -602, 1009,
2089 660, 259, 660, 406, 513, 424, 211, 427, -102, 523,
2090 695, 71, 591, 304, 432, 305, 504, 233, 355, -109,
2091 565, 314, 315, 86, 218, 218, 218, 218, 86, 218,
2092 218, 304, 987, 305, 967, 446, -97, -73, 218, -513,
2093 86, 277, 851, 218, 984, 985, 408, 1036, 417, 680,
2094 990, -95, -434, 467, 608, 610, 680, 522, -87, -508,
2095 412, -108, 837, 267, 565, 356, 357, 329, 211, 474,
2096 474, 218, -95, 86, 414, -95, 432, 218, 218, -95,
2097 422, 860, 565, 862, -94, 602, 604, -513, 416, 416,
2098 766, 755, 218, 413, 625, 418, 419, 420, 610, 201,
2099 119, 267, 199, 467, -602, 202, -508, -508, 565, 1024,
2100 -602, 1025, 440, -434, 276, 475, 475, 476, 476, 218,
2101 218, 211, 352, 353, 354, 457, -97, 460, 765, 432,
2102 759, -515, 458, 218, 458, 565, 618, 1056, 611, 474,
2103 227, -294, 1047, 482, 1048, 71, 442, -97, 679, 682,
2104 -97, 703, 329, 693, -97, 329, -104, 86, -434, 710,
2105 -434, -434, 230, 1015, 276, 689, 689, 86, 450, 689,
2106 234, 645, 612, 646, 647, 648, 649, 700, 788, -515,
2107 791, -603, 444, -72, 277, 475, 218, 476, -294, -294,
2108 826, -609, -606, 743, 748, 706, 645, 834, 646, 647,
2109 648, 649, 718, 456, 720, -516, 723, 723, 350, 351,
2110 352, 353, 354, 462, -518, 637, 704, 840, 526, 577,
2111 735, -523, 767, 762, 711, 474, 465, 717, 469, 418,
2112 445, 211, 981, 726, 277, 859, 474, 484, 983, 432,
2113 755, 488, -511, 211, 497, 565, 474, -102, 491, 706,
2114 754, 432, -609, -516, 869, 872, 663, 565, 750, 751,
2115 494, 753, -518, 610, 267, 875, 201, 470, -93, 199,
2116 416, 475, 202, 476, 477, 760, 706, 807, 509, -517,
2117 994, 467, 475, 276, 476, 479, 86, -603, 86, -511,
2118 -511, 119, 475, -603, 476, 481, 218, -609, 827, -609,
2119 -609, -106, 811, -605, 650, 748, 867, 780, 218, -519,
2120 86, 218, -520, 864, 471, 472, 651, -508, 813, 577,
2121 812, 814, 853, 816, 521, 855, 783, -517, 783, -511,
2122 359, 498, -103, 359, 579, 818, 71, -521, 843, 840,
2123 583, 218, 276, 620, 654, 655, 622, 623, 86, 689,
2124 633, -284, 933, 277, 863, -87, 836, -519, 681, -520,
2125 -520, 631, 1042, 937, 706, -508, 854, 580, 656, 629,
2126 751, 515, 884, 839, 842, 706, 842, -511, 842, 523,
2127 761, 474, 822, 824, -521, -521, 683, 947, 949, 830,
2128 832, 592, 952, 638, 954, -295, 955, 885, -284, -284,
2129 405, 885, 86, -266, 694, 86, 697, 86, 474, 812,
2130 199, 698, 277, 218, 581, 582, 218, 218, 878, 416,
2131 963, -425, 804, 218, 218, 713, -109, 475, 1018, 476,
2132 485, 715, 922, 803, 812, 774, 446, 708, 593, 594,
2133 359, 663, -295, -295, 719, 744, 909, -100, 218, 276,
2134 763, 218, 86, 777, 475, 709, 476, 492, 911, 76,
2135 86, 76, -108, -104, 783, 783, 829, 593, 594, 802,
2136 778, 918, 781, 76, 76, 1019, 1020, 76, 925, 926,
2137 784, -106, 928, -99, -95, 723, 807, 931, 785, 436,
2138 965, 927, -103, 807, 935, 807, 917, 787, 789, 921,
2139 437, 438, -97, 790, 1030, 1032, 1033, 1034, 76, 267,
2140 913, 811, 792, -94, -267, 885, 821, 840, 811, 898,
2141 811, 828, 956, 76, 868, 329, 870, 663, 874, 663,
2142 86, 893, 894, 895, 886, 906, 899, 890, 902, 276,
2143 342, 343, 783, 904, 218, 76, 76, 907, 910, 76,
2144 982, 908, 774, 873, 915, 86, 1057, -268, 218, 919,
2145 276, 663, 86, 86, 942, 939, 86, 957, 946, 948,
2146 663, 962, 951, 953, 996, 997, 974, 349, 350, 351,
2147 352, 353, 354, 1002, -269, 645, 842, 646, 647, 648,
2148 649, 1017, 992, 1028, 807, 1003, 807, 1005, 1010, 794,
2149 795, 807, 796, 807, 1012, 1016, 86, 1027, 1029, 958,
2150 46, 47, 1021, 1031, 1022, 1052, -605, 329, -606, 811,
2151 1023, 811, 368, 783, 769, 385, 811, 635, 811, 835,
2152 977, 804, 342, 343, 86, 804, 799, 1046, 804, 871,
2153 804, 903, 905, 807, 1039, 86, 865, 1045, 493, 966,
2154 403, 969, 290, 397, 991, 774, 883, 774, 86, 86,
2155 964, 960, 645, 76, 646, 647, 648, 649, 811, 211,
2156 350, 351, 352, 353, 354, 881, 706, 432, 802, 717,
2157 842, 0, 598, 565, 76, 802, 76, 76, 0, 0,
2158 76, 0, 76, 998, 0, 1000, 86, 76, 86, 0,
2159 1001, 769, 0, 0, 86, 0, 86, 770, 76, 0,
2160 76, 0, 645, 0, 646, 647, 648, 649, 0, 76,
2161 0, 0, 774, 995, 41, 42, 43, 44, 970, 663,
2162 646, 647, 648, 649, 218, 0, 0, 0, 0, 804,
2163 0, 804, 0, 0, 0, 0, 804, 0, 804, 0,
2164 1035, 769, 1037, 0, 0, 0, 0, 940, 0, 1038,
2165 309, 310, 311, 312, 313, 76, 76, 76, 76, 76,
2166 76, 76, 76, 0, 0, 774, 0, 774, 1050, 0,
2167 76, 0, 76, 0, 0, 76, 802, 0, 804, 0,
2168 0, 0, 1004, 1006, 0, 0, 0, 0, 1011, 1058,
2169 1013, 1014, 0, 213, 213, 0, 0, 213, 0, 0,
2170 774, 0, 0, 76, 0, 76, 0, 0, 0, 76,
2171 76, 0, 0, 0, 0, 0, 0, 645, 0, 646,
2172 647, 648, 649, 650, 76, 247, 249, 0, 0, 0,
2173 213, 213, 0, 0, 0, 651, 0, 0, 0, 0,
2174 0, 0, 0, 302, 303, 0, 0, 0, 0, 0,
2175 0, 76, 76, 0, 0, 0, 652, 1051, 1053, 1054,
2176 1055, 0, 653, 654, 655, 76, 645, 0, 646, 647,
2177 648, 649, 650, 0, 0, 0, 0, 0, 0, 0,
2178 1059, 0, 0, 0, 651, 0, 0, 656, 0, 76,
2179 657, 0, 0, 0, 0, 0, 0, 0, 0, 76,
2180 0, 0, 0, 0, 0, 652, -627, 0, 234, 0,
2181 0, 653, 654, 655, -627, -627, -627, 0, 76, -627,
2182 -627, -627, 645, -627, 646, 647, 648, 649, 650, 0,
2183 0, 0, -627, -627, 0, 0, 656, 0, 0, 657,
2184 651, 0, 0, -627, -627, 0, -627, -627, -627, -627,
2185 -627, 0, 658, 0, 0, 0, 0, 0, 0, 0,
2186 0, 652, 0, 0, 0, 0, 0, 653, 654, 655,
2187 0, 0, 0, 113, 0, 113, 0, 0, 0, 0,
2188 0, 213, 0, 0, 213, 213, 213, 302, 0, 0,
2189 0, 0, 656, -627, 0, 657, 0, 0, 0, 0,
2190 0, 0, 0, 0, 213, 0, 213, 213, 0, 645,
2191 0, 646, 647, 648, 649, 650, -627, 0, 76, 0,
2192 76, 0, 113, 0, 0, 0, 278, 651, 76, 0,
2193 0, 0, 0, 0, 0, 329, 0, 0, -627, -627,
2194 76, -627, 76, 76, 230, -627, 0, -627, 652, -627,
2195 342, 343, 278, 0, 0, 654, 655, 0, 0, 0,
2196 0, 0, 0, 0, 372, 382, 382, 382, 0, 0,
2197 0, 0, 0, 76, 0, 0, 0, 0, 0, 656,
2198 76, 0, 0, 0, 0, 347, 348, 349, 350, 351,
2199 352, 353, 354, 0, 0, 0, 0, 0, 0, 0,
2200 213, 0, 0, 0, 0, 525, 528, 529, 530, 531,
2201 532, 533, 534, 535, 536, 537, 538, 539, 540, 541,
2202 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
2203 552, 553, 0, 213, 76, 0, 0, 76, 0, 76,
2204 0, 0, 0, 0, 0, 76, 0, 0, 76, 76,
2205 0, 0, 0, 0, 0, 76, 76, 0, 0, 0,
2206 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2207 0, 0, 0, 0, 0, 0, 114, 113, 114, 0,
2208 76, 603, 605, 76, 76, 0, 0, 0, 0, 607,
2209 213, 213, 76, 0, 0, 213, 0, 603, 605, 213,
2210 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2211 0, 113, 0, 0, 0, 0, 0, 0, 627, 0,
2212 0, 0, 113, 632, 113, 114, 0, 0, 0, 279,
2213 0, 0, 0, 0, 213, 0, 0, 213, 0, 0,
2214 0, 0, 0, 0, 0, 278, 0, 0, 213, 0,
2215 0, 0, 0, 0, 0, 279, 117, 0, 117, 0,
2216 0, 0, 76, 0, 0, 0, 0, 373, 383, 383,
2217 383, 0, 0, 0, 684, 0, 76, 0, 0, 113,
2218 0, 0, 0, 0, 113, 0, 0, 76, 0, 213,
2219 76, 0, 0, 0, 76, 76, 113, 278, 76, 0,
2220 0, 0, 0, 0, 0, 117, 0, 0, 0, 280,
2221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2222 0, 0, 0, 0, 0, 0, 0, 0, 0, 113,
2223 0, 0, 0, 0, 0, 280, 0, 0, 76, 0,
2224 0, 0, 0, 0, 0, 0, 0, 374, 384, 384,
2225 0, 0, 0, 0, 213, 0, 0, 0, 213, 0,
2226 0, 0, 0, 0, 0, 0, 76, 0, 0, 0,
2227 213, 0, 0, 0, 0, 0, 0, 76, 0, 0,
2228 114, 0, 0, 0, 0, 0, 213, 0, 0, 0,
2229 76, 76, 0, 0, 0, 0, 0, 0, 0, 213,
2230 213, 329, 330, 331, 332, 333, 334, 335, 336, 0,
2231 338, 339, 0, 113, 114, 0, 342, 343, 0, 0,
2232 0, 0, 0, 113, 0, 114, 0, 114, 76, 0,
2233 76, 0, 0, 0, 0, 83, 76, 83, 76, 0,
2234 278, 0, 0, 213, 0, 0, 0, 0, 279, 345,
2235 346, 347, 348, 349, 350, 351, 352, 353, 354, 0,
2236 117, 0, 0, 0, 0, 0, 76, 0, 0, 0,
2237 0, 213, 0, 0, 0, 607, 820, 0, 823, 825,
2238 0, 0, 114, 0, 83, 831, 833, 114, 0, 0,
2239 278, 0, 213, 0, 117, 0, 0, 0, 0, 114,
2240 279, 0, 0, 0, 0, 117, 0, 117, 0, 0,
2241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2242 0, 0, 0, 0, 0, 0, 369, 0, 280, 866,
2243 0, 0, 114, 823, 825, 0, 831, 833, 0, 0,
2244 0, 0, 113, 0, 113, 0, 0, 0, 0, 0,
2245 0, 0, 0, 0, 213, 0, 0, 0, 0, 0,
2246 0, 0, 117, 0, 0, 0, 113, 117, 0, 0,
2247 0, 0, 0, 0, 0, 0, 0, 0, 0, 117,
2248 280, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2249 0, 0, 0, 0, 213, 0, 0, 116, 912, 116,
2250 0, 0, 0, 0, 113, 0, 914, 0, 0, 278,
2251 0, 0, 117, 0, 0, 0, 114, 0, 0, 0,
2252 0, 0, 0, 0, 0, 0, 114, 213, 0, 0,
2253 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,
2254 0, 0, 0, 279, 914, 213, 116, 0, 0, 0,
2255 0, 0, 0, 0, 0, 0, 0, 0, 113, 0,
2256 0, 113, 0, 113, 0, 0, 0, 0, 278, 0,
2257 0, 0, 0, 83, 0, 0, 0, 0, 0, 0,
2258 0, 0, 0, 0, 83, 0, 83, 0, 0, 0,
2259 0, 0, 0, 279, 0, 0, 117, 0, 0, 0,
2260 0, 0, 699, 0, 0, 0, 117, 0, 113, 0,
2261 0, 0, 0, 0, 0, 0, 113, 0, 0, 0,
2262 0, 0, 0, 280, 0, 0, 0, 0, 329, 330,
2263 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
2264 341, 83, 0, 342, 343, 114, 83, 114, 0, 0,
2265 0, 0, 0, 0, 0, 0, 0, 0, 83, 0,
2266 0, 524, 0, 0, 0, 0, 0, 0, 0, 114,
2267 0, 0, 0, 280, 344, 382, 345, 346, 347, 348,
2268 349, 350, 351, 352, 353, 354, 113, 0, 0, 0,
2269 0, 83, 0, 0, -243, 0, 213, 0, 0, 0,
2270 0, 116, 0, 0, 0, 0, 0, 114, 0, 0,
2271 0, 113, 279, 0, 0, 0, 0, 0, 113, 113,
2272 0, 0, 113, 0, 0, 117, 0, 117, 0, 0,
2273 0, 0, 0, 0, 0, 116, 0, 0, 0, 0,
2274 0, 0, 0, 0, 0, 0, 116, 0, 116, 117,
2275 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2276 0, 114, 113, 0, 114, 382, 114, 0, 0, 0,
2277 0, 279, 0, 0, 0, 83, 0, 0, 0, 0,
2278 0, 0, 0, 0, 0, 83, 978, 117, 0, 0,
2279 113, 0, 280, 0, 0, 0, 0, 0, 0, 0,
2280 0, 113, 0, 116, 0, 0, 0, 0, 116, 0,
2281 0, 114, 0, 0, 113, 113, 0, 0, 0, 114,
2282 116, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2283 0, 0, 798, 0, 0, 0, 0, 0, 0, 0,
2284 0, 117, 0, 0, 117, 0, 117, 0, 0, 0,
2285 0, 280, 113, 116, 113, 0, 0, 0, 0, 0,
2286 113, 0, 113, 0, 0, 0, 0, 0, 0, 0,
2287 0, 0, 0, 0, 0, 0, 0, 0, 383, 0,
2288 0, 0, 0, 0, 0, 0, 0, 0, 0, 114,
2289 0, 117, 0, 0, 0, 0, 0, 0, 0, 117,
2290 0, 0, 0, 0, 83, 0, 83, 0, 0, 0,
2291 0, 0, 0, 0, 114, 0, 0, 0, 0, 0,
2292 0, 114, 114, 0, 0, 114, 0, 0, 83, 329,
2293 -628, -628, -628, -628, 334, 335, 0, 116, -628, -628,
2294 0, 0, 0, 0, 342, 343, 0, 116, 0, 0,
2295 0, 0, 0, 0, 0, 0, 0, 0, 384, 0,
2296 0, 0, 0, 0, 0, 114, 83, 0, 383, 117,
2297 0, 0, 0, 0, 0, 0, 0, 345, 346, 347,
2298 348, 349, 350, 351, 352, 353, 354, 0, 0, 979,
2299 0, 0, 0, 114, 117, 0, 0, 0, 0, 0,
2300 0, 117, 117, 0, 114, 117, 0, 0, 0, 0,
2301 0, 0, 0, 0, 0, 0, 0, 114, 114, 0,
2302 83, 0, 0, 83, 0, 83, 0, 0, 0, 0,
2303 0, 524, 0, 0, 0, 0, 0, 0, 0, 0,
2304 0, 0, 0, 0, 0, 117, 0, 0, 384, 0,
2305 0, 0, 0, 0, 0, 114, 0, 114, 0, 0,
2306 0, 0, 0, 114, 0, 114, 116, 0, 116, 980,
2307 83, 0, 0, 117, 0, 0, 0, 0, 83, -609,
2308 0, 0, 0, 0, 117, 0, 0, -609, -609, -609,
2309 116, 0, -609, -609, -609, 0, -609, 117, 117, 0,
2310 0, 0, 0, 0, 0, -609, -609, -609, -609, 0,
2311 0, 0, 0, 0, 0, 0, -609, -609, 0, -609,
2312 -609, -609, -609, -609, 0, 0, 0, 0, 116, 0,
2313 0, 0, 0, 0, 0, 117, 0, 117, 0, 0,
2314 0, 0, 0, 117, 0, 117, 0, 0, 83, -609,
2315 -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
2316 -609, -609, 0, 0, -609, -609, -609, 0, 756, -609,
2317 0, 0, 0, 83, 0, -609, 0, 0, 0, 0,
2318 83, 83, 116, 0, 83, 116, 0, 116, 0, -609,
2319 0, 0, -609, 0, -105, -609, -609, -609, -609, -609,
2320 -609, -609, -609, -609, -609, -609, -609, 0, 0, 0,
2321 0, -609, -609, -609, -609, -609, 0, 0, -609, -609,
2322 -609, 0, -609, 0, 83, 0, 0, 0, 0, 0,
2323 0, 0, 116, 0, 0, 0, 0, 0, 0, 0,
2324 116, 329, 330, 331, 332, 333, 334, 335, 976, 0,
2325 338, 339, 83, 0, 0, 0, 342, 343, 0, 0,
2326 0, 0, 0, 83, 0, 0, 0, 0, 0, 0,
2327 0, 0, 0, 0, 0, 0, 83, 83, 0, 0,
2328 0, 0, 0, 0, 0, 0, 0, 0, 0, 345,
2329 346, 347, 348, 349, 350, 351, 352, 353, 354, 0,
2330 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2331 116, 0, 0, 0, 83, 0, 83, 0, 0, 0,
2332 0, 0, 83, 0, 83, 0, 0, 0, 0, 0,
2333 0, 0, 0, 0, 0, 116, 0, 0, 0, 0,
2334 0, 0, 116, 116, 0, 0, 116, 0, 0, 0,
2335 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2336 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2337 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2338 0, 0, 0, 0, 0, 0, 116, 0, 0, 0,
2339 0, 0, 0, 0, 0, 0, 0, -627, 4, 0,
2340 5, 6, 7, 8, 9, 0, 0, 0, 10, 11,
2341 0, 0, 0, 12, 116, 13, 14, 15, 16, 17,
2342 18, 19, 0, 0, 0, 116, 0, 20, 21, 22,
2343 23, 24, 25, 26, 0, 0, 27, 0, 116, 116,
2344 0, 0, 28, 29, 30, 31, 32, 33, 34, 35,
2345 36, 37, 38, 39, 40, 0, 41, 42, 43, 44,
2346 0, 45, 46, 47, 0, 48, 49, 0, 0, 0,
2347 0, 0, 0, 0, 0, 0, 116, 0, 116, 0,
2348 0, 0, 0, 0, 116, 50, 116, 0, 51, 52,
2349 0, 53, 54, 0, 55, 0, 0, 56, 57, 58,
2350 59, 60, 61, 62, 63, 64, -508, 0, 0, 0,
2351 0, 0, 0, 0, -508, -508, -508, 0, 0, -508,
2352 -508, -508, 0, -508, 0, 65, 66, 67, 0, 752,
2353 0, -508, 0, -508, -508, -508, 0, 0, -627, 0,
2354 -627, 0, 0, -508, -508, 0, -508, -508, -508, -508,
2355 -508, 0, 0, 0, 0, 329, 330, 331, 332, 333,
2356 334, 335, 336, 337, 338, 339, 340, 341, 0, 0,
2357 342, 343, 0, 0, 0, 0, -508, -508, -508, -508,
2358 -508, -508, -508, -508, -508, -508, -508, -508, -508, 0,
2359 0, -508, -508, -508, 0, -508, -508, 0, 0, 0,
2360 0, 344, -508, 345, 346, 347, 348, 349, 350, 351,
2361 352, 353, 354, 0, 0, 0, -508, 0, 0, -508,
2362 0, -508, -508, -508, -508, -508, -508, -508, -508, -508,
2363 -508, -508, -508, -508, 0, 0, 0, 0, 0, -508,
2364 -508, -508, -508, -511, 0, -508, -508, -508, 0, -508,
2365 0, -511, -511, -511, 0, 0, -511, -511, -511, 0,
2366 -511, 0, 0, 0, 0, 0, 699, 0, -511, 0,
2367 -511, -511, -511, 0, 0, 0, 0, 0, 0, 0,
2368 -511, -511, 0, -511, -511, -511, -511, -511, 0, 0,
2369 0, 0, 329, 330, 331, 332, 333, 334, 335, 336,
2370 337, 338, 339, 340, 341, 0, 0, 342, 343, 0,
2371 0, 0, 0, -511, -511, -511, -511, -511, -511, -511,
2372 -511, -511, -511, -511, -511, -511, 0, 0, -511, -511,
2373 -511, 0, -511, -511, 0, 0, 0, 0, 344, -511,
2374 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
2375 0, 0, 0, -511, 0, 0, -511, 0, -511, -511,
2376 -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
2377 -511, 0, 0, 0, 0, 0, -511, -511, -511, -511,
2378 -610, 0, -511, -511, -511, 0, -511, 0, -610, -610,
2379 -610, 0, 0, -610, -610, -610, 0, -610, 0, 0,
2380 0, 0, 0, 0, 0, 0, -610, -610, -610, -610,
2381 0, 0, 0, 0, 0, 0, 0, -610, -610, 0,
2382 -610, -610, -610, -610, -610, 0, 0, 0, 0, 329,
2383 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
2384 340, 341, 0, 0, 342, 343, 0, 0, 0, 0,
2385 -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
2386 -610, -610, -610, 0, 0, -610, -610, -610, 0, 0,
2387 -610, 0, 0, 0, 0, 344, -610, 345, 346, 347,
2388 348, 349, 350, 351, 352, 353, 354, 0, 0, 0,
2389 -610, 0, 0, -610, 0, 0, -610, -610, -610, -610,
2390 -610, -610, -610, -610, -610, -610, -610, -610, 0, 0,
2391 0, 0, -610, -610, -610, -610, -610, -611, 0, -610,
2392 -610, -610, 0, -610, 0, -611, -611, -611, 0, 0,
2393 -611, -611, -611, 0, -611, 0, 0, 0, 0, 0,
2394 0, 0, 0, -611, -611, -611, -611, 0, 0, 0,
2395 0, 0, 0, 0, -611, -611, 0, -611, -611, -611,
2396 -611, -611, 0, 0, 0, 0, 329, 330, 331, 332,
2397 333, 334, 335, 336, 337, 338, 339, -628, -628, 0,
2398 0, 342, 343, 0, 0, 0, 0, -611, -611, -611,
2399 -611, -611, -611, -611, -611, -611, -611, -611, -611, -611,
2400 0, 0, -611, -611, -611, 0, 0, -611, 0, 0,
2401 0, 0, 0, -611, 345, 346, 347, 348, 349, 350,
2402 351, 352, 353, 354, 0, 0, 0, -611, 0, 0,
2403 -611, 0, 0, -611, -611, -611, -611, -611, -611, -611,
2404 -611, -611, -611, -611, -611, 0, 0, 0, 0, -611,
2405 -611, -611, -611, -611, -294, 0, -611, -611, -611, 0,
2406 -611, 0, -294, -294, -294, 0, 0, -294, -294, -294,
2407 0, -294, 0, 0, 0, 0, 0, 0, 0, 0,
2408 0, -294, -294, -294, 0, 0, 0, 0, 0, 0,
2409 0, -294, -294, 0, -294, -294, -294, -294, -294, 0,
2410 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2411 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2412 0, 0, 0, 0, -294, -294, -294, -294, -294, -294,
2413 -294, -294, -294, -294, -294, -294, -294, 0, 0, -294,
2414 -294, -294, 0, 757, -294, 0, 0, 0, 0, 0,
2415 -294, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2416 0, 0, 0, 0, -294, 0, 0, -294, 0, -107,
2417 -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
2418 -294, -294, 0, 0, 0, 0, 0, -294, -294, -294,
2419 -294, -433, 0, -294, -294, -294, 0, -294, 0, -433,
2420 -433, -433, 0, 0, -433, -433, -433, 0, -433, 0,
2421 0, 0, 0, 0, 0, 0, 0, -433, -433, -433,
2422 0, 0, 0, 0, 0, 0, 0, 0, -433, -433,
2423 0, -433, -433, -433, -433, -433, 0, 0, 0, 0,
2424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2426 0, -433, -433, -433, -433, -433, -433, -433, -433, -433,
2427 -433, -433, -433, -433, 0, 0, -433, -433, -433, 0,
2428 0, -433, 0, 0, 0, 0, 0, -433, 0, 0,
2429 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2430 0, -433, 0, 0, 0, 0, 0, -433, 0, -433,
2431 -433, -433, -433, -433, -433, -433, -433, -433, -433, 0,
2432 0, 0, 0, -433, -433, -433, -433, -433, -285, 230,
2433 -433, -433, -433, 0, -433, 0, -285, -285, -285, 0,
2434 0, -285, -285, -285, 0, -285, 0, 0, 0, 0,
2435 0, 0, 0, 0, 0, -285, -285, -285, 0, 0,
2436 0, 0, 0, 0, 0, -285, -285, 0, -285, -285,
2437 -285, -285, -285, 0, 0, 0, 0, 0, 0, 0,
2438 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2439 0, 0, 0, 0, 0, 0, 0, 0, -285, -285,
2440 -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
2441 -285, 0, 0, -285, -285, -285, 0, 0, -285, 0,
2442 0, 0, 0, 0, -285, 0, 0, 0, 0, 0,
2443 0, 0, 0, 0, 0, 0, 0, 0, -285, 0,
2444 0, -285, 0, 0, -285, -285, -285, -285, -285, -285,
2445 -285, -285, -285, -285, -285, -285, 0, 0, 0, 0,
2446 0, -285, -285, -285, -285, -423, 0, -285, -285, -285,
2447 0, -285, 0, -423, -423, -423, 0, 0, -423, -423,
2448 -423, 0, -423, 0, 0, 0, 0, 0, 0, 0,
2449 0, -423, -423, -423, 0, 0, 0, 0, 0, 0,
2450 0, 0, -423, -423, 0, -423, -423, -423, -423, -423,
2451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2453 0, 0, 0, 0, 0, -423, -423, -423, -423, -423,
2454 -423, -423, -423, -423, -423, -423, -423, -423, 0, 0,
2455 -423, -423, -423, 0, 0, -423, 0, 0, 0, 0,
2456 0, -423, 0, 0, 0, 0, 0, 0, 0, 0,
2457 0, 0, 0, 0, 0, -423, 0, 0, 0, 0,
2458 0, -423, 0, -423, -423, -423, -423, -423, -423, -423,
2459 -423, -423, -423, 0, 0, 0, 0, -423, -423, -423,
2460 -423, -423, -301, -423, -423, -423, -423, 0, -423, 0,
2461 -301, -301, -301, 0, 0, -301, -301, -301, 0, -301,
2462 0, 0, 0, 0, 0, 0, 0, 0, 0, -301,
2463 -301, 0, 0, 0, 0, 0, 0, 0, 0, -301,
2464 -301, 0, -301, -301, -301, -301, -301, 0, 0, 0,
2465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2467 0, 0, -301, -301, -301, -301, -301, -301, -301, -301,
2468 -301, -301, -301, -301, -301, 0, 0, -301, -301, -301,
2469 0, 0, -301, 0, 0, 0, 0, 0, -301, 0,
2470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2471 0, 0, -301, 0, 0, 0, 0, 0, -301, 0,
2472 -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
2473 0, 0, 0, 0, 0, -301, -301, -301, -301, -609,
2474 227, -301, -301, -301, 0, -301, 0, -609, -609, -609,
2475 0, 0, 0, -609, -609, 0, -609, 0, 0, 0,
2476 0, 0, 0, 0, 0, -609, 0, 0, 0, 0,
2477 0, 0, 0, 0, 0, 0, -609, -609, 0, -609,
2478 -609, -609, -609, -609, 0, 0, 0, 0, 0, 0,
2479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2480 0, 0, 0, 0, 0, 0, 0, 0, 0, -609,
2481 -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
2482 -609, -609, 0, 0, -609, -609, -609, 0, 701, 0,
2483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2484 0, 0, 0, 0, 0, 0, 0, 0, 0, -609,
2485 0, 0, 0, 0, -105, -609, 0, -609, -609, -609,
2486 -609, -609, -609, -609, -609, -609, -609, 0, 0, 0,
2487 0, -609, -609, -609, -609, -96, -294, 0, -609, 0,
2488 -609, 0, -609, 0, -294, -294, -294, 0, 0, 0,
2489 -294, -294, 0, -294, 0, 0, 0, 0, 0, 0,
2490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2491 0, 0, 0, -294, -294, 0, -294, -294, -294, -294,
2492 -294, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2494 0, 0, 0, 0, 0, 0, -294, -294, -294, -294,
2495 -294, -294, -294, -294, -294, -294, -294, -294, -294, 0,
2496 0, -294, -294, -294, 0, 702, 0, 0, 0, 0,
2497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2498 0, 0, 0, 0, 0, 0, -294, 0, 0, 0,
2499 0, -107, -294, 0, -294, -294, -294, -294, -294, -294,
2500 -294, -294, -294, -294, 0, 0, 0, 0, 0, -294,
2501 -294, -294, -98, 0, 0, -294, 0, -294, 251, -294,
2502 5, 6, 7, 8, 9, -627, -627, -627, 10, 11,
2503 0, 0, -627, 12, 0, 13, 14, 15, 16, 17,
2504 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2505 23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
2506 0, 0, 28, 29, 252, 31, 32, 33, 34, 35,
2507 36, 37, 38, 39, 40, 0, 41, 42, 43, 44,
2508 0, 45, 46, 47, 0, 48, 49, 0, 0, 0,
2509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2510 0, 0, 0, 0, 0, 50, 0, 0, 51, 52,
2511 0, 53, 54, 0, 55, 0, 0, 56, 57, 58,
2512 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
2513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2514 0, 0, 0, 0, 0, 65, 66, 67, 0, 0,
2515 0, 0, 0, 0, 0, 0, 0, 0, -627, 251,
2516 -627, 5, 6, 7, 8, 9, 0, 0, -627, 10,
2517 11, 0, -627, -627, 12, 0, 13, 14, 15, 16,
2518 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2519 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2520 0, 0, 0, 28, 29, 252, 31, 32, 33, 34,
2521 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
2522 44, 0, 45, 46, 47, 0, 48, 49, 0, 0,
2523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2524 0, 0, 0, 0, 0, 0, 50, 0, 0, 51,
2525 52, 0, 53, 54, 0, 55, 0, 0, 56, 57,
2526 58, 59, 60, 61, 62, 63, 64, 0, 0, 0,
2527 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2528 0, 0, 0, 0, 0, 0, 65, 66, 67, 0,
2529 0, 0, 0, 0, 0, 0, 0, 0, 0, -627,
2530 251, -627, 5, 6, 7, 8, 9, 0, 0, -627,
2531 10, 11, 0, 0, -627, 12, -627, 13, 14, 15,
2532 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2533 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2534 0, 0, 0, 0, 28, 29, 252, 31, 32, 33,
2535 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2536 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
2537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2538 0, 0, 0, 0, 0, 0, 0, 50, 0, 0,
2539 51, 52, 0, 53, 54, 0, 55, 0, 0, 56,
2540 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
2541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2542 0, 0, 0, 0, 0, 0, 0, 65, 66, 67,
2543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2544 -627, 251, -627, 5, 6, 7, 8, 9, 0, 0,
2545 -627, 10, 11, 0, 0, -627, 12, 0, 13, 14,
2546 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
2547 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
2548 0, 0, 0, 0, 0, 28, 29, 252, 31, 32,
2549 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2550 42, 43, 44, 0, 45, 46, 47, 0, 48, 49,
2551 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2552 0, 0, 0, 0, 0, 0, 0, 0, 50, 0,
2553 0, 51, 52, 0, 53, 54, 0, 55, 0, 0,
2554 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
2555 0, 0, 0, 0, 0, 0, 251, 0, 5, 6,
2556 7, 8, 9, 0, -627, -627, 10, 11, 65, 66,
2557 67, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2558 0, -627, 0, -627, 0, 20, 21, 22, 23, 24,
2559 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2560 28, 29, 252, 31, 32, 33, 34, 35, 36, 37,
2561 38, 39, 40, 0, 41, 42, 43, 44, 0, 45,
2562 46, 47, 0, 48, 49, 0, 0, 0, 0, 0,
2563 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2564 0, 0, 0, 50, 0, 0, 51, 52, 0, 53,
2565 54, 0, 55, 0, 0, 56, 57, 58, 59, 60,
2566 61, 62, 63, 64, 0, 0, 0, 0, 0, 0,
2567 0, 251, 0, 5, 6, 7, 8, 9, 0, 0,
2568 0, 10, 11, 65, 66, 67, 12, 0, 13, 14,
2569 15, 16, 17, 18, 19, 0, -627, 0, -627, 0,
2570 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
2571 0, 0, 0, 0, 0, 28, 29, 252, 31, 32,
2572 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2573 42, 43, 44, 0, 45, 46, 47, 0, 48, 49,
2574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2575 0, 0, 0, 0, 0, 0, 0, 0, 50, 0,
2576 0, 253, 52, 0, 53, 54, 0, 55, 0, 0,
2577 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
2578 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2579 0, 0, 0, 0, 0, 0, 0, 0, 65, 66,
2580 67, 0, 0, 0, 0, 0, 0, 0, 0, -627,
2581 0, -627, 251, -627, 5, 6, 7, 8, 9, 0,
2582 0, 0, 10, 11, 0, 0, 0, 12, 0, 13,
2583 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2584 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2585 27, 0, 0, 0, 0, 0, 28, 29, 252, 31,
2586 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2587 41, 42, 43, 44, 0, 45, 46, 47, 0, 48,
2588 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2589 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,
2590 0, 0, 51, 52, 0, 53, 54, 0, 55, 0,
2591 0, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2593 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,
2594 66, 67, 0, 0, 0, 0, 0, 0, 0, 0,
2595 -627, 0, -627, 251, -627, 5, 6, 7, 8, 9,
2596 0, 0, 0, 10, 11, 0, 0, 0, 12, 0,
2597 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2598 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2599 0, 27, 0, 0, 0, 0, 0, 28, 29, 252,
2600 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2601 0, 41, 42, 43, 44, 0, 45, 46, 47, 0,
2602 48, 49, 0, 0, 0, 0, 0, 0, 0, 0,
2603 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2604 50, 0, 0, 51, 52, 0, 53, 54, 0, 55,
2605 0, 0, 56, 57, 58, 59, 60, 61, 62, 63,
2606 64, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2607 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2608 65, 66, 67, 0, 0, -627, 4, 0, 5, 6,
2609 7, 8, 9, -627, 0, -627, 10, 11, 0, 0,
2610 0, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2611 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
2612 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2613 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2614 38, 39, 40, 0, 41, 42, 43, 44, 0, 45,
2615 46, 47, 0, 48, 49, 0, 0, 0, 0, 0,
2616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2617 0, 0, 0, 50, 0, 0, 51, 52, 0, 53,
2618 54, 0, 55, 0, 0, 56, 57, 58, 59, 60,
2619 61, 62, 63, 64, 0, 0, 0, 0, 0, 0,
2620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2621 0, 0, 0, 65, 66, 67, 0, 0, -627, 0,
2622 0, 0, 0, 0, 0, 0, -627, 251, -627, 5,
2623 6, 7, 8, 9, 0, 0, -627, 10, 11, 0,
2624 0, 0, 12, 0, 13, 14, 15, 16, 17, 18,
2625 19, 0, 0, 0, 0, 0, 20, 21, 22, 23,
2626 24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
2627 0, 28, 29, 252, 31, 32, 33, 34, 35, 36,
2628 37, 38, 39, 40, 0, 41, 42, 43, 44, 0,
2629 45, 46, 47, 0, 48, 49, 0, 0, 0, 0,
2630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2631 0, 0, 0, 0, 50, 0, 0, 51, 52, 0,
2632 53, 54, 0, 55, 0, 0, 56, 57, 58, 59,
2633 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
2634 0, 0, 251, 0, 5, 6, 7, 8, 9, 0,
2635 0, 0, 10, 11, 65, 66, 67, 12, 0, 13,
2636 14, 15, 16, 17, 18, 19, 0, -627, 0, -627,
2637 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2638 27, 0, 0, 0, 0, 0, 28, 29, 252, 31,
2639 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2640 41, 42, 43, 44, 0, 45, 46, 47, 0, 48,
2641 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2642 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,
2643 0, 0, 51, 52, 0, 53, 54, 0, 55, 0,
2644 0, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2645 0, -627, 0, 0, 0, 0, 0, 0, 0, 5,
2646 6, 7, 0, 9, 0, 0, 0, 10, 11, 65,
2647 66, 67, 12, 0, 13, 14, 15, 16, 17, 18,
2648 19, 0, -627, 0, -627, 0, 20, 21, 22, 23,
2649 24, 25, 26, 0, 0, 203, 0, 0, 0, 0,
2650 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2651 37, 38, 39, 40, 204, 41, 42, 43, 44, 0,
2652 45, 46, 47, 0, 48, 49, 0, 0, 0, 0,
2653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2654 0, 0, 0, 0, 205, 0, 0, 206, 52, 0,
2655 53, 54, 0, 207, 208, 209, 56, 57, 58, 59,
2656 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
2657 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2658 0, 0, 10, 11, 65, 210, 67, 12, 0, 13,
2659 14, 15, 16, 17, 18, 19, 0, 0, 0, 234,
2660 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2661 27, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2662 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2663 41, 42, 43, 44, 0, 45, 46, 47, 0, 48,
2664 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2665 0, 0, 0, 0, 0, 0, 0, 0, 0, 205,
2666 0, 0, 206, 52, 0, 53, 54, 0, 0, 0,
2667 0, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2668 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2669 6, 7, 0, 9, 0, 0, 0, 10, 11, 65,
2670 66, 67, 12, 0, 13, 14, 15, 16, 17, 18,
2671 19, 0, 304, 0, 305, 0, 20, 21, 22, 23,
2672 24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
2673 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2674 37, 38, 39, 40, 0, 41, 42, 43, 44, 0,
2675 45, 46, 47, 0, 48, 49, 0, 0, 0, 0,
2676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2677 0, 0, 0, 0, 205, 0, 0, 206, 52, 0,
2678 53, 54, 0, 0, 0, 0, 56, 57, 58, 59,
2679 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
2680 0, 0, 0, 0, 5, 6, 7, 8, 9, 0,
2681 0, 0, 10, 11, 65, 66, 67, 12, 0, 13,
2682 14, 15, 16, 17, 18, 19, 0, 0, 0, 234,
2683 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2684 27, 0, 0, 0, 0, 0, 28, 29, 30, 31,
2685 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2686 41, 42, 43, 44, 0, 45, 46, 47, 0, 48,
2687 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2688 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,
2689 0, 0, 51, 52, 0, 53, 54, 0, 55, 0,
2690 0, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2691 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2692 6, 7, 8, 9, 0, 0, 0, 10, 11, 65,
2693 66, 67, 12, 0, 13, 14, 15, 16, 17, 18,
2694 19, 0, 498, 0, 0, 0, 20, 21, 22, 23,
2695 24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
2696 0, 28, 29, 252, 31, 32, 33, 34, 35, 36,
2697 37, 38, 39, 40, 0, 41, 42, 43, 44, 0,
2698 45, 46, 47, 0, 48, 49, 0, 0, 0, 0,
2699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2700 0, 0, 0, 0, 50, 0, 0, 51, 52, 0,
2701 53, 54, 0, 55, 0, 0, 56, 57, 58, 59,
2702 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
2703 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2704 0, 0, 0, 0, 65, 66, 67, 0, 0, 0,
2705 0, 0, 0, 0, 0, 0, 0, 498, 121, 122,
2706 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2707 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2708 143, 144, 0, 0, 0, 145, 146, 147, 386, 387,
2709 388, 389, 152, 153, 154, 0, 0, 0, 0, 0,
2710 155, 156, 157, 158, 390, 391, 392, 393, 163, 37,
2711 38, 394, 40, 0, 0, 0, 0, 0, 0, 0,
2712 0, 0, 0, 165, 166, 167, 168, 169, 170, 171,
2713 172, 173, 0, 0, 174, 175, 0, 0, 176, 177,
2714 178, 179, 0, 0, 0, 0, 0, 0, 0, 0,
2715 0, 0, 180, 181, 0, 0, 0, 0, 0, 0,
2716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2717 0, 0, 0, 182, 183, 184, 185, 186, 187, 188,
2718 189, 190, 191, 0, 192, 193, 0, 0, 0, 0,
2719 0, 0, 194, 395, 121, 122, 123, 124, 125, 126,
2720 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2721 137, 138, 139, 140, 141, 142, 143, 144, 0, 0,
2722 0, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2723 154, 0, 0, 0, 0, 0, 155, 156, 157, 158,
2724 159, 160, 161, 162, 163, 283, 284, 164, 285, 0,
2725 0, 0, 0, 0, 0, 0, 0, 0, 0, 165,
2726 166, 167, 168, 169, 170, 171, 172, 173, 0, 0,
2727 174, 175, 0, 0, 176, 177, 178, 179, 0, 0,
2728 0, 0, 0, 0, 0, 0, 0, 0, 180, 181,
2729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2730 0, 0, 0, 0, 0, 0, 0, 0, 0, 182,
2731 183, 184, 185, 186, 187, 188, 189, 190, 191, 0,
2732 192, 193, 0, 0, 0, 0, 0, 0, 194, 121,
2733 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2734 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2735 142, 143, 144, 0, 0, 0, 145, 146, 147, 148,
2736 149, 150, 151, 152, 153, 154, 0, 0, 0, 0,
2737 0, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2738 236, 0, 164, 0, 0, 0, 0, 0, 0, 0,
2739 0, 0, 0, 0, 165, 166, 167, 168, 169, 170,
2740 171, 172, 173, 0, 0, 174, 175, 0, 0, 176,
2741 177, 178, 179, 0, 0, 0, 0, 0, 0, 0,
2742 0, 0, 0, 180, 181, 0, 0, 57, 0, 0,
2743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2744 0, 0, 0, 0, 182, 183, 184, 185, 186, 187,
2745 188, 189, 190, 191, 0, 192, 193, 0, 0, 0,
2746 0, 0, 0, 194, 121, 122, 123, 124, 125, 126,
2747 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2748 137, 138, 139, 140, 141, 142, 143, 144, 0, 0,
2749 0, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2750 154, 0, 0, 0, 0, 0, 155, 156, 157, 158,
2751 159, 160, 161, 162, 163, 0, 0, 164, 0, 0,
2752 0, 0, 0, 0, 0, 0, 0, 0, 0, 165,
2753 166, 167, 168, 169, 170, 171, 172, 173, 0, 0,
2754 174, 175, 0, 0, 176, 177, 178, 179, 0, 0,
2755 0, 0, 0, 0, 0, 0, 0, 0, 180, 181,
2756 0, 0, 57, 0, 0, 0, 0, 0, 0, 0,
2757 0, 0, 0, 0, 0, 0, 0, 0, 0, 182,
2758 183, 184, 185, 186, 187, 188, 189, 190, 191, 0,
2759 192, 193, 0, 0, 0, 0, 0, 0, 194, 121,
2760 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2761 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2762 142, 143, 144, 0, 0, 0, 145, 146, 147, 148,
2763 149, 150, 151, 152, 153, 154, 0, 0, 0, 0,
2764 0, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2765 0, 0, 164, 0, 0, 0, 0, 0, 0, 0,
2766 0, 0, 0, 0, 165, 166, 167, 168, 169, 170,
2767 171, 172, 173, 0, 0, 174, 175, 0, 0, 176,
2768 177, 178, 179, 0, 0, 0, 0, 0, 0, 0,
2769 0, 0, 0, 180, 181, 0, 0, 0, 0, 0,
2770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2771 0, 0, 0, 0, 182, 183, 184, 185, 186, 187,
2772 188, 189, 190, 191, 0, 192, 193, 5, 6, 7,
2773 0, 9, 0, 194, 0, 10, 11, 0, 0, 0,
2774 12, 0, 13, 14, 15, 241, 242, 18, 19, 0,
2775 0, 0, 0, 0, 243, 244, 245, 23, 24, 25,
2776 26, 0, 0, 203, 0, 0, 0, 0, 0, 0,
2777 271, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2778 39, 40, 0, 41, 42, 43, 44, 0, 45, 46,
2779 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2781 0, 0, 272, 0, 0, 206, 52, 0, 53, 54,
2782 0, 0, 0, 0, 56, 57, 58, 59, 60, 61,
2783 62, 63, 64, 0, 0, 0, 0, 0, 5, 6,
2784 7, 0, 9, 0, 0, 0, 10, 11, 0, 0,
2785 0, 12, 273, 13, 14, 15, 241, 242, 18, 19,
2786 274, 0, 0, 0, 0, 243, 244, 245, 23, 24,
2787 25, 26, 0, 0, 203, 0, 0, 0, 0, 0,
2788 0, 271, 0, 0, 32, 33, 34, 35, 36, 37,
2789 38, 39, 40, 0, 41, 42, 43, 44, 0, 45,
2790 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2792 0, 0, 0, 272, 0, 0, 206, 52, 0, 53,
2793 54, 0, 0, 0, 0, 56, 57, 58, 59, 60,
2794 61, 62, 63, 64, 0, 0, 0, 0, 0, 5,
2795 6, 7, 8, 9, 0, 0, 0, 10, 11, 0,
2796 0, 0, 12, 273, 13, 14, 15, 16, 17, 18,
2797 19, 519, 0, 0, 0, 0, 20, 21, 22, 23,
2798 24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
2799 0, 28, 29, 30, 31, 32, 33, 34, 35, 36,
2800 37, 38, 39, 40, 0, 41, 42, 43, 44, 0,
2801 45, 46, 47, 0, 48, 49, 0, 0, 0, 0,
2802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2803 0, 0, 0, 0, 50, 0, 0, 51, 52, 0,
2804 53, 54, 0, 55, 0, 0, 56, 57, 58, 59,
2805 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
2806 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2807 0, 0, 10, 11, 65, 66, 67, 12, 0, 13,
2808 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2809 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2810 203, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2811 32, 33, 34, 35, 36, 37, 38, 39, 40, 204,
2812 41, 42, 43, 44, 0, 45, 46, 47, 0, 48,
2813 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2814 0, 0, 0, 0, 0, 0, 0, 0, 0, 205,
2815 0, 0, 206, 52, 0, 53, 54, 0, 207, 208,
2816 209, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2817 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2818 6, 7, 8, 9, 0, 0, 0, 10, 11, 65,
2819 210, 67, 12, 0, 13, 14, 15, 16, 17, 18,
2820 19, 0, 0, 0, 0, 0, 20, 21, 22, 23,
2821 24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
2822 0, 28, 29, 0, 31, 32, 33, 34, 35, 36,
2823 37, 38, 39, 40, 0, 41, 42, 43, 44, 0,
2824 45, 46, 47, 0, 48, 49, 0, 0, 0, 0,
2825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2826 0, 0, 0, 0, 50, 0, 0, 51, 52, 0,
2827 53, 54, 0, 55, 0, 0, 56, 57, 58, 59,
2828 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
2829 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2830 0, 0, 10, 11, 65, 66, 67, 12, 0, 13,
2831 14, 15, 241, 242, 18, 19, 0, 0, 0, 0,
2832 0, 243, 244, 245, 23, 24, 25, 26, 0, 0,
2833 203, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2834 32, 33, 34, 35, 36, 37, 38, 39, 40, 204,
2835 41, 42, 43, 44, 0, 45, 46, 47, 0, 48,
2836 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2837 0, 0, 0, 0, 0, 0, 0, 0, 0, 205,
2838 0, 0, 206, 52, 0, 53, 54, 0, 609, 208,
2839 209, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2840 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2841 6, 7, 0, 9, 0, 0, 0, 10, 11, 65,
2842 210, 67, 12, 0, 13, 14, 15, 241, 242, 18,
2843 19, 0, 0, 0, 0, 0, 243, 244, 245, 23,
2844 24, 25, 26, 0, 0, 203, 0, 0, 0, 0,
2845 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2846 37, 38, 39, 40, 204, 41, 42, 43, 44, 0,
2847 45, 46, 47, 0, 48, 49, 0, 0, 0, 0,
2848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2849 0, 0, 0, 0, 205, 0, 0, 206, 52, 0,
2850 53, 54, 0, 207, 208, 0, 56, 57, 58, 59,
2851 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
2852 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2853 0, 0, 10, 11, 65, 210, 67, 12, 0, 13,
2854 14, 15, 241, 242, 18, 19, 0, 0, 0, 0,
2855 0, 243, 244, 245, 23, 24, 25, 26, 0, 0,
2856 203, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2857 32, 33, 34, 35, 36, 37, 38, 39, 40, 204,
2858 41, 42, 43, 44, 0, 45, 46, 47, 0, 48,
2859 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2860 0, 0, 0, 0, 0, 0, 0, 0, 0, 205,
2861 0, 0, 206, 52, 0, 53, 54, 0, 0, 208,
2862 209, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2863 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2864 6, 7, 0, 9, 0, 0, 0, 10, 11, 65,
2865 210, 67, 12, 0, 13, 14, 15, 241, 242, 18,
2866 19, 0, 0, 0, 0, 0, 243, 244, 245, 23,
2867 24, 25, 26, 0, 0, 203, 0, 0, 0, 0,
2868 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2869 37, 38, 39, 40, 204, 41, 42, 43, 44, 0,
2870 45, 46, 47, 0, 48, 49, 0, 0, 0, 0,
2871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2872 0, 0, 0, 0, 205, 0, 0, 206, 52, 0,
2873 53, 54, 0, 609, 208, 0, 56, 57, 58, 59,
2874 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
2875 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2876 0, 0, 10, 11, 65, 210, 67, 12, 0, 13,
2877 14, 15, 241, 242, 18, 19, 0, 0, 0, 0,
2878 0, 243, 244, 245, 23, 24, 25, 26, 0, 0,
2879 203, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2880 32, 33, 34, 35, 36, 37, 38, 39, 40, 204,
2881 41, 42, 43, 44, 0, 45, 46, 47, 0, 48,
2882 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2883 0, 0, 0, 0, 0, 0, 0, 0, 0, 205,
2884 0, 0, 206, 52, 0, 53, 54, 0, 0, 208,
2885 0, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2886 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2887 6, 7, 0, 9, 0, 0, 0, 10, 11, 65,
2888 210, 67, 12, 0, 13, 14, 15, 16, 17, 18,
2889 19, 0, 0, 0, 0, 0, 20, 21, 22, 23,
2890 24, 25, 26, 0, 0, 203, 0, 0, 0, 0,
2891 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2892 37, 38, 39, 40, 0, 41, 42, 43, 44, 0,
2893 45, 46, 47, 0, 48, 49, 0, 0, 0, 0,
2894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2895 0, 0, 0, 0, 205, 0, 0, 206, 52, 0,
2896 53, 54, 0, 512, 0, 0, 56, 57, 58, 59,
2897 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
2898 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2899 0, 0, 10, 11, 65, 210, 67, 12, 0, 13,
2900 14, 15, 241, 242, 18, 19, 0, 0, 0, 0,
2901 0, 243, 244, 245, 23, 24, 25, 26, 0, 0,
2902 203, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2903 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2904 41, 42, 43, 44, 0, 45, 46, 47, 0, 48,
2905 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2906 0, 0, 0, 0, 0, 0, 0, 0, 0, 205,
2907 0, 0, 206, 52, 0, 53, 54, 0, 207, 0,
2908 0, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2909 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2910 6, 7, 0, 9, 0, 0, 0, 10, 11, 65,
2911 210, 67, 12, 0, 13, 14, 15, 241, 242, 18,
2912 19, 0, 0, 0, 0, 0, 243, 244, 245, 23,
2913 24, 25, 26, 0, 0, 203, 0, 0, 0, 0,
2914 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2915 37, 38, 39, 40, 0, 41, 42, 43, 44, 0,
2916 45, 46, 47, 0, 48, 49, 0, 0, 0, 0,
2917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2918 0, 0, 0, 0, 205, 0, 0, 206, 52, 0,
2919 53, 54, 0, 817, 0, 0, 56, 57, 58, 59,
2920 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
2921 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2922 0, 0, 10, 11, 65, 210, 67, 12, 0, 13,
2923 14, 15, 241, 242, 18, 19, 0, 0, 0, 0,
2924 0, 243, 244, 245, 23, 24, 25, 26, 0, 0,
2925 203, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2926 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2927 41, 42, 43, 44, 0, 45, 46, 47, 0, 48,
2928 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2929 0, 0, 0, 0, 0, 0, 0, 0, 0, 205,
2930 0, 0, 206, 52, 0, 53, 54, 0, 512, 0,
2931 0, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2932 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2933 6, 7, 0, 9, 0, 0, 0, 10, 11, 65,
2934 210, 67, 12, 0, 13, 14, 15, 241, 242, 18,
2935 19, 0, 0, 0, 0, 0, 243, 244, 245, 23,
2936 24, 25, 26, 0, 0, 203, 0, 0, 0, 0,
2937 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2938 37, 38, 39, 40, 0, 41, 42, 43, 44, 0,
2939 45, 46, 47, 0, 48, 49, 0, 0, 0, 0,
2940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2941 0, 0, 0, 0, 205, 0, 0, 206, 52, 0,
2942 53, 54, 0, 609, 0, 0, 56, 57, 58, 59,
2943 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
2944 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2945 0, 0, 10, 11, 65, 210, 67, 12, 0, 13,
2946 14, 15, 241, 242, 18, 19, 0, 0, 0, 0,
2947 0, 243, 244, 245, 23, 24, 25, 26, 0, 0,
2948 203, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2949 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2950 41, 42, 43, 44, 0, 45, 46, 47, 0, 48,
2951 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2952 0, 0, 0, 0, 0, 0, 0, 0, 0, 205,
2953 0, 0, 206, 52, 0, 53, 54, 0, 0, 0,
2954 0, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2955 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2956 6, 7, 0, 9, 0, 0, 0, 10, 11, 65,
2957 210, 67, 12, 0, 13, 14, 15, 16, 17, 18,
2958 19, 0, 0, 0, 0, 0, 20, 21, 22, 23,
2959 24, 25, 26, 0, 0, 203, 0, 0, 0, 0,
2960 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2961 37, 38, 39, 40, 0, 41, 42, 43, 44, 0,
2962 45, 46, 47, 0, 48, 49, 0, 0, 0, 0,
2963 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2964 0, 0, 0, 0, 205, 0, 0, 206, 52, 0,
2965 53, 54, 0, 0, 0, 0, 56, 57, 58, 59,
2966 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
2967 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2968 0, 0, 10, 11, 65, 210, 67, 12, 0, 13,
2969 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2970 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2971 27, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2972 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2973 41, 42, 43, 44, 0, 45, 46, 47, 0, 48,
2974 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2975 0, 0, 0, 0, 0, 0, 0, 0, 0, 205,
2976 0, 0, 206, 52, 0, 53, 54, 0, 0, 0,
2977 0, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2978 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2979 6, 7, 0, 9, 0, 0, 0, 10, 11, 65,
2980 66, 67, 12, 0, 13, 14, 15, 241, 242, 18,
2981 19, 0, 0, 0, 0, 0, 243, 244, 245, 23,
2982 24, 25, 26, 0, 0, 203, 0, 0, 0, 0,
2983 0, 0, 271, 0, 0, 32, 33, 34, 35, 36,
2984 37, 38, 39, 40, 0, 41, 42, 43, 44, 0,
2985 45, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2986 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2987 0, 0, 0, 0, 272, 0, 0, 325, 52, 0,
2988 53, 54, 0, 326, 0, 0, 56, 57, 58, 59,
2989 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
2990 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2991 0, 0, 0, 12, 273, 13, 14, 15, 241, 242,
2992 18, 19, 0, 0, 0, 0, 0, 243, 244, 245,
2993 23, 24, 25, 26, 0, 0, 203, 0, 0, 0,
2994 0, 0, 0, 271, 0, 0, 32, 33, 34, 35,
2995 36, 37, 38, 39, 40, 0, 41, 42, 43, 44,
2996 0, 45, 46, 47, 0, 0, 0, 0, 0, 0,
2997 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2998 0, 0, 0, 0, 0, 367, 0, 0, 51, 52,
2999 0, 53, 54, 0, 55, 0, 0, 56, 57, 58,
3000 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
3001 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
3002 11, 0, 0, 0, 12, 273, 13, 14, 15, 241,
3003 242, 18, 19, 0, 0, 0, 0, 0, 243, 244,
3004 245, 23, 24, 25, 26, 0, 0, 203, 0, 0,
3005 0, 0, 0, 0, 271, 0, 0, 32, 33, 34,
3006 375, 36, 37, 38, 376, 40, 0, 41, 42, 43,
3007 44, 0, 45, 46, 47, 0, 0, 0, 0, 0,
3008 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3009 0, 0, 0, 377, 0, 0, 378, 0, 0, 206,
3010 52, 0, 53, 54, 0, 0, 0, 0, 56, 57,
3011 58, 59, 60, 61, 62, 63, 64, 0, 0, 0,
3012 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
3013 10, 11, 0, 0, 0, 12, 273, 13, 14, 15,
3014 241, 242, 18, 19, 0, 0, 0, 0, 0, 243,
3015 244, 245, 23, 24, 25, 26, 0, 0, 203, 0,
3016 0, 0, 0, 0, 0, 271, 0, 0, 32, 33,
3017 34, 375, 36, 37, 38, 376, 40, 0, 41, 42,
3018 43, 44, 0, 45, 46, 47, 0, 0, 0, 0,
3019 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3020 0, 0, 0, 0, 0, 0, 0, 378, 0, 0,
3021 206, 52, 0, 53, 54, 0, 0, 0, 0, 56,
3022 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
3023 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
3024 0, 10, 11, 0, 0, 0, 12, 273, 13, 14,
3025 15, 241, 242, 18, 19, 0, 0, 0, 0, 0,
3026 243, 244, 245, 23, 24, 25, 26, 0, 0, 203,
3027 0, 0, 0, 0, 0, 0, 271, 0, 0, 32,
3028 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
3029 42, 43, 44, 0, 45, 46, 47, 0, 0, 0,
3030 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3031 0, 0, 0, 0, 0, 0, 0, 0, 272, 0,
3032 0, 325, 52, 0, 53, 54, 0, 0, 0, 0,
3033 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
3034 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
3035 0, 0, 10, 11, 0, 0, 0, 12, 273, 13,
3036 14, 15, 241, 242, 18, 19, 0, 0, 0, 0,
3037 0, 243, 244, 245, 23, 24, 25, 26, 0, 0,
3038 203, 0, 0, 0, 0, 0, 0, 271, 0, 0,
3039 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
3040 41, 42, 43, 44, 0, 45, 46, 47, 0, 0,
3041 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3042 0, 0, 0, 0, 0, 0, 0, 0, 0, 897,
3043 0, 0, 206, 52, 0, 53, 54, 0, 0, 0,
3044 0, 56, 57, 58, 59, 60, 61, 62, 63, 64,
3045 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
3046 0, 0, 0, 10, 11, 0, 0, 0, 12, 273,
3047 13, 14, 15, 241, 242, 18, 19, 0, 0, 0,
3048 0, 0, 243, 244, 245, 23, 24, 25, 26, 0,
3049 0, 203, 0, 0, 0, 0, 0, 0, 271, 0,
3050 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3051 0, 41, 42, 43, 44, 0, 45, 46, 47, 0,
3052 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3053 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3054 975, 0, 0, 206, 52, 0, 53, 54, 0, 0,
3055 0, 0, 56, 57, 58, 59, 60, 61, 62, 63,
3056 64, 0, 0, 0, 0, 554, 555, 0, 0, 556,
3057 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3058 273, 165, 166, 167, 168, 169, 170, 171, 172, 173,
3059 0, 0, 174, 175, 0, 0, 176, 177, 178, 179,
3060 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3061 180, 181, 0, 0, 0, 0, 0, 0, 0, 0,
3062 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3063 0, 182, 183, 184, 185, 186, 187, 188, 189, 190,
3064 191, 0, 192, 193, 562, 563, 0, 0, 564, 0,
3065 194, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3066 165, 166, 167, 168, 169, 170, 171, 172, 173, 0,
3067 0, 174, 175, 0, 0, 176, 177, 178, 179, 0,
3068 0, 0, 0, 0, 0, 0, 0, 0, 0, 180,
3069 181, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3070 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3071 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
3072 0, 192, 193, 599, 563, 0, 0, 600, 0, 194,
3073 0, 0, 0, 0, 0, 0, 0, 0, 0, 165,
3074 166, 167, 168, 169, 170, 171, 172, 173, 0, 0,
3075 174, 175, 0, 0, 176, 177, 178, 179, 0, 0,
3076 0, 0, 0, 0, 0, 0, 0, 0, 180, 181,
3077 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3078 0, 0, 0, 0, 0, 0, 0, 0, 0, 182,
3079 183, 184, 185, 186, 187, 188, 189, 190, 191, 0,
3080 192, 193, 613, 555, 0, 0, 614, 0, 194, 0,
3081 0, 0, 0, 0, 0, 0, 0, 0, 165, 166,
3082 167, 168, 169, 170, 171, 172, 173, 0, 0, 174,
3083 175, 0, 0, 176, 177, 178, 179, 0, 0, 0,
3084 0, 0, 0, 0, 0, 0, 0, 180, 181, 0,
3085 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3086 0, 0, 0, 0, 0, 0, 0, 0, 182, 183,
3087 184, 185, 186, 187, 188, 189, 190, 191, 0, 192,
3088 193, 616, 563, 0, 0, 617, 0, 194, 0, 0,
3089 0, 0, 0, 0, 0, 0, 0, 165, 166, 167,
3090 168, 169, 170, 171, 172, 173, 0, 0, 174, 175,
3091 0, 0, 176, 177, 178, 179, 0, 0, 0, 0,
3092 0, 0, 0, 0, 0, 0, 180, 181, 0, 0,
3093 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3094 0, 0, 0, 0, 0, 0, 0, 182, 183, 184,
3095 185, 186, 187, 188, 189, 190, 191, 0, 192, 193,
3096 640, 555, 0, 0, 641, 0, 194, 0, 0, 0,
3097 0, 0, 0, 0, 0, 0, 165, 166, 167, 168,
3098 169, 170, 171, 172, 173, 0, 0, 174, 175, 0,
3099 0, 176, 177, 178, 179, 0, 0, 0, 0, 0,
3100 0, 0, 0, 0, 0, 180, 181, 0, 0, 0,
3101 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3102 0, 0, 0, 0, 0, 0, 182, 183, 184, 185,
3103 186, 187, 188, 189, 190, 191, 0, 192, 193, 643,
3104 563, 0, 0, 644, 0, 194, 0, 0, 0, 0,
3105 0, 0, 0, 0, 0, 165, 166, 167, 168, 169,
3106 170, 171, 172, 173, 0, 0, 174, 175, 0, 0,
3107 176, 177, 178, 179, 0, 0, 0, 0, 0, 0,
3108 0, 0, 0, 0, 180, 181, 0, 0, 0, 0,
3109 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3110 0, 0, 0, 0, 0, 182, 183, 184, 185, 186,
3111 187, 188, 189, 190, 191, 0, 192, 193, 728, 555,
3112 0, 0, 729, 0, 194, 0, 0, 0, 0, 0,
3113 0, 0, 0, 0, 165, 166, 167, 168, 169, 170,
3114 171, 172, 173, 0, 0, 174, 175, 0, 0, 176,
3115 177, 178, 179, 0, 0, 0, 0, 0, 0, 0,
3116 0, 0, 0, 180, 181, 0, 0, 0, 0, 0,
3117 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3118 0, 0, 0, 0, 182, 183, 184, 185, 186, 187,
3119 188, 189, 190, 191, 0, 192, 193, 731, 563, 0,
3120 0, 732, 0, 194, 0, 0, 0, 0, 0, 0,
3121 0, 0, 0, 165, 166, 167, 168, 169, 170, 171,
3122 172, 173, 0, 0, 174, 175, 0, 0, 176, 177,
3123 178, 179, 0, 0, 0, 0, 0, 0, 0, 0,
3124 0, 0, 180, 181, 0, 0, 0, 0, 0, 0,
3125 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3126 0, 0, 0, 182, 183, 184, 185, 186, 187, 188,
3127 189, 190, 191, 0, 192, 193, 738, 555, 0, 0,
3128 739, 0, 194, 0, 0, 0, 0, 0, 0, 0,
3129 0, 0, 165, 166, 167, 168, 169, 170, 171, 172,
3130 173, 0, 0, 174, 175, 0, 0, 176, 177, 178,
3131 179, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3132 0, 180, 181, 0, 0, 0, 0, 0, 0, 0,
3133 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3134 0, 0, 182, 183, 184, 185, 186, 187, 188, 189,
3135 190, 191, 0, 192, 193, 1007, 555, 0, 0, 1008,
3136 0, 194, 0, 0, 0, 0, 0, 0, 0, 0,
3137 0, 165, 166, 167, 168, 169, 170, 171, 172, 173,
3138 0, 0, 174, 175, 0, 0, 176, 177, 178, 179,
3139 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3140 180, 181, 0, 0, 0, 0, 0, 0, 0, 0,
3141 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3142 0, 182, 183, 184, 185, 186, 187, 188, 189, 190,
3143 191, 0, 192, 193, 1040, 555, 0, 0, 1041, 0,
3144 194, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3145 165, 166, 167, 168, 169, 170, 171, 172, 173, 0,
3146 0, 174, 175, 0, 0, 176, 177, 178, 179, 0,
3147 0, 0, 0, 0, 0, 0, 0, 0, 0, 180,
3148 181, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3149 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3150 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
3151 0, 192, 193, 1043, 563, 0, 0, 1044, 0, 194,
3152 0, 0, 0, 0, 0, 0, 0, 0, 0, 165,
3153 166, 167, 168, 169, 170, 171, 172, 173, 0, 0,
3154 174, 175, 0, 0, 176, 177, 178, 179, 0, 0,
3155 0, 0, 0, 0, 0, 0, 0, 0, 180, 181,
3156 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
3157 339, 340, 341, 0, 0, 342, 343, 0, 0, 182,
3158 183, 184, 185, 186, 187, 188, 189, 190, 191, 0,
3159 192, 193, 0, 0, 0, 0, 0, 0, 194, 0,
3160 0, 0, 0, 0, 0, 0, 344, 0, 345, 346,
3161 347, 348, 349, 350, 351, 352, 353, 354, 0, 0,
3162 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3166 #define yypact_value_is_default(yystate) \ 3167 ((yystate) == (-813)) 3169 #define yytable_value_is_error(yytable_value) \ 3170 ((yytable_value) == (-628)) 3174 2, 27, 98, 29, 57, 81, 16, 17, 8, 76,
3175 20, 8, 16, 17, 8, 328, 20, 361, 89, 22,
3176 576, 92, 51, 28, 414, 88, 89, 328, 28, 92,
3177 422, 28, 422, 4, 28, 54, 355, 578, 357, 356,
3178 55, 69, 223, 96, 670, 2, 92, 4, 575, 53,
3179 615, 53, 54, 378, 65, 595, 69, 2, 265, 4,
3180 57, 778, 269, 55, 92, 233, 81, 51, 460, 473,
3181 686, 16, 17, 76, 469, 20, 787, 642, 93, 94,
3182 95, 442, 401, 508, 13, 716, 511, 66, 872, 720,
3183 258, 25, 27, 261, 906, 253, 63, 78, 417, 96,
3184 419, 418, 29, 89, 874, 25, 51, 63, 143, 87,
3185 55, 0, 775, 87, 16, 17, 89, 138, 20, 25,
3186 132, 66, 143, 26, 519, 13, 445, 87, 56, 115,
3187 37, 38, 28, 25, 16, 17, 81, 800, 20, 120,
3188 13, 99, 115, 88, 89, 112, 25, 92, 93, 94,
3189 95, 53, 54, 472, 471, 939, 112, 135, 102, 13,
3190 25, 135, 778, 136, 122, 730, 25, 325, 26, 139,
3191 233, 787, 235, 143, 134, 135, 741, 206, 895, 246,
3192 806, 807, 13, 142, 725, 204, 113, 25, 207, 208,
3193 209, 52, 289, 13, 291, 56, 293, 737, 274, 262,
3194 297, 742, 136, 1015, 138, 745, 141, 136, 143, 255,
3195 994, 240, 141, 1, 143, 217, 136, 227, 138, 229,
3196 230, 223, 992, 227, 253, 229, 142, 255, 230, 132,
3197 136, 623, 622, 623, 951, 946, 143, 142, 309, 310,
3198 311, 312, 255, 1027, 136, 271, 309, 310, 311, 312,
3199 431, 314, 315, 141, 658, 143, 424, 136, 884, 274,
3200 428, 206, 273, 582, 581, 433, 691, 592, 141, 253,
3201 143, 136, 633, 902, 132, 594, 593, 136, 142, 895,
3202 138, 449, 227, 115, 229, 230, 902, 141, 233, 143,
3203 235, 362, 363, 1010, 251, 240, 325, 928, 136, 362,
3204 363, 25, 697, 844, 323, 846, 251, 138, 253, 328,
3205 141, 326, 143, 25, 377, 856, 115, 262, 364, 323,
3206 861, 141, 89, 143, 328, 227, 853, 229, 136, 274,
3207 946, 119, 89, 89, 326, 658, 364, 308, 26, 965,
3208 744, 325, 746, 136, 323, 227, 356, 229, 115, 328,
3209 518, 308, 380, 141, 356, 143, 313, 138, 87, 115,
3210 357, 37, 38, 308, 309, 310, 311, 312, 313, 314,
3211 315, 141, 928, 143, 1003, 89, 25, 115, 323, 87,
3212 325, 326, 726, 328, 925, 926, 56, 1003, 87, 486,
3213 930, 115, 26, 469, 413, 414, 493, 698, 136, 87,
3214 115, 115, 715, 422, 401, 134, 135, 70, 418, 63,
3215 63, 356, 136, 358, 136, 139, 418, 362, 363, 143,
3216 136, 744, 419, 746, 136, 404, 405, 135, 430, 431,
3217 637, 612, 377, 90, 439, 134, 135, 89, 457, 439,
3218 442, 460, 439, 519, 132, 439, 134, 135, 445, 990,
3219 138, 991, 138, 87, 469, 109, 109, 111, 111, 404,
3220 405, 471, 125, 126, 127, 136, 115, 136, 636, 471,
3221 89, 87, 143, 418, 143, 472, 868, 1042, 868, 63,
3222 138, 87, 1023, 67, 1025, 442, 132, 136, 142, 142,
3223 139, 558, 70, 512, 143, 70, 115, 442, 132, 566,
3224 134, 135, 138, 136, 519, 507, 508, 452, 139, 511,
3225 143, 52, 414, 54, 55, 56, 57, 543, 672, 135,
3226 674, 26, 87, 115, 469, 109, 471, 111, 134, 135,
3227 704, 26, 138, 596, 601, 561, 52, 711, 54, 55,
3228 56, 57, 571, 140, 573, 87, 574, 575, 123, 124,
3229 125, 126, 127, 133, 87, 457, 559, 15, 577, 17,
3230 588, 89, 638, 626, 567, 63, 56, 569, 136, 134,
3231 135, 581, 916, 577, 519, 743, 63, 112, 922, 581,
3232 761, 112, 87, 593, 70, 582, 63, 115, 112, 615,
3233 609, 593, 87, 135, 762, 136, 473, 594, 601, 601,
3234 112, 606, 135, 622, 623, 773, 606, 87, 136, 606,
3235 612, 109, 606, 111, 112, 89, 642, 686, 96, 87,
3236 136, 697, 109, 638, 111, 112, 571, 132, 573, 134,
3237 135, 633, 109, 138, 111, 112, 581, 132, 705, 134,
3238 135, 115, 686, 138, 58, 712, 89, 666, 593, 87,
3239 595, 596, 87, 749, 134, 135, 70, 87, 687, 17,
3240 686, 690, 733, 692, 136, 736, 668, 135, 670, 87,
3241 733, 141, 115, 736, 56, 694, 633, 87, 14, 15,
3242 25, 626, 697, 139, 98, 99, 136, 136, 633, 691,
3243 132, 87, 860, 638, 747, 136, 715, 135, 142, 134,
3244 135, 1020, 1019, 871, 730, 135, 734, 87, 122, 133,
3245 712, 715, 781, 715, 716, 741, 718, 135, 720, 698,
3246 622, 63, 701, 702, 134, 135, 142, 881, 882, 708,
3247 709, 87, 886, 136, 888, 87, 890, 781, 134, 135,
3248 89, 785, 687, 136, 136, 690, 136, 692, 63, 775,
3249 747, 115, 697, 698, 134, 135, 701, 702, 777, 761,
3250 87, 138, 686, 708, 709, 10, 115, 109, 87, 111,
3251 112, 8, 843, 686, 800, 652, 89, 89, 134, 135,
3252 843, 658, 134, 135, 13, 138, 815, 136, 733, 804,
3253 133, 736, 737, 115, 109, 89, 111, 112, 817, 2,
3254 745, 4, 115, 115, 806, 807, 89, 134, 135, 686,
3255 136, 840, 136, 16, 17, 134, 135, 20, 847, 848,
3256 52, 115, 851, 136, 136, 853, 895, 855, 136, 54,
3257 899, 850, 115, 902, 862, 904, 838, 136, 52, 841,
3258 65, 66, 136, 136, 998, 999, 1000, 1001, 51, 868,
3259 829, 895, 52, 136, 136, 899, 117, 15, 902, 804,
3260 904, 140, 891, 66, 136, 70, 133, 744, 136, 746,
3261 815, 120, 115, 136, 787, 141, 136, 790, 136, 894,
3262 85, 86, 884, 136, 829, 88, 89, 10, 10, 92,
3263 919, 133, 769, 770, 90, 840, 1050, 136, 843, 9,
3264 915, 778, 847, 848, 139, 136, 851, 120, 136, 136,
3265 787, 56, 136, 136, 943, 944, 133, 122, 123, 124,
3266 125, 126, 127, 110, 136, 52, 928, 54, 55, 56,
3267 57, 56, 136, 10, 1003, 136, 1005, 136, 136, 54,
3268 55, 1010, 57, 1012, 136, 971, 891, 136, 133, 894,
3269 65, 66, 981, 136, 983, 136, 138, 70, 138, 1003,
3270 989, 1005, 93, 965, 91, 95, 1010, 452, 1012, 712,
3271 915, 895, 85, 86, 919, 899, 686, 1022, 902, 769,
3272 904, 809, 810, 1052, 1015, 930, 750, 1021, 297, 902,
3273 101, 904, 59, 96, 936, 872, 781, 874, 943, 944,
3274 899, 895, 52, 206, 54, 55, 56, 57, 1052, 1019,
3275 123, 124, 125, 126, 127, 778, 1042, 1019, 895, 1021,
3276 1022, -1, 398, 1020, 227, 902, 229, 230, -1, -1,
3277 233, -1, 235, 946, -1, 948, 981, 240, 983, -1,
3278 953, 91, -1, -1, 989, -1, 991, 97, 251, -1,
3279 253, -1, 52, -1, 54, 55, 56, 57, -1, 262,
3280 -1, -1, 939, 940, 59, 60, 61, 62, 52, 946,
3281 54, 55, 56, 57, 1019, -1, -1, -1, -1, 1003,
3282 -1, 1005, -1, -1, -1, -1, 1010, -1, 1012, -1,
3283 1003, 91, 1005, -1, -1, -1, -1, 97, -1, 1012,
3284 40, 41, 42, 43, 44, 308, 309, 310, 311, 312,
3285 313, 314, 315, -1, -1, 992, -1, 994, 1031, -1,
3286 323, -1, 325, -1, -1, 328, 1003, -1, 1052, -1,
3287 -1, -1, 960, 961, -1, -1, -1, -1, 966, 1052,
3288 968, 969, -1, 16, 17, -1, -1, 20, -1, -1,
3289 1027, -1, -1, 356, -1, 358, -1, -1, -1, 362,
3290 363, -1, -1, -1, -1, -1, -1, 52, -1, 54,
3291 55, 56, 57, 58, 377, 48, 49, -1, -1, -1,
3292 53, 54, -1, -1, -1, 70, -1, -1, -1, -1,
3293 -1, -1, -1, 66, 67, -1, -1, -1, -1, -1,
3294 -1, 404, 405, -1, -1, -1, 91, 1035, 1036, 1037,
3295 1038, -1, 97, 98, 99, 418, 52, -1, 54, 55,
3296 56, 57, 58, -1, -1, -1, -1, -1, -1, -1,
3297 1058, -1, -1, -1, 70, -1, -1, 122, -1, 442,
3298 125, -1, -1, -1, -1, -1, -1, -1, -1, 452,
3299 -1, -1, -1, -1, -1, 91, 0, -1, 143, -1,
3300 -1, 97, 98, 99, 8, 9, 10, -1, 471, 13,
3301 14, 15, 52, 17, 54, 55, 56, 57, 58, -1,
3302 -1, -1, 26, 27, -1, -1, 122, -1, -1, 125,
3303 70, -1, -1, 37, 38, -1, 40, 41, 42, 43,
3304 44, -1, 138, -1, -1, -1, -1, -1, -1, -1,
3305 -1, 91, -1, -1, -1, -1, -1, 97, 98, 99,
3306 -1, -1, -1, 2, -1, 4, -1, -1, -1, -1,
3307 -1, 204, -1, -1, 207, 208, 209, 210, -1, -1,
3308 -1, -1, 122, 87, -1, 125, -1, -1, -1, -1,
3309 -1, -1, -1, -1, 227, -1, 229, 230, -1, 52,
3310 -1, 54, 55, 56, 57, 58, 110, -1, 571, -1,
3311 573, -1, 51, -1, -1, -1, 55, 70, 581, -1,
3312 -1, -1, -1, -1, -1, 70, -1, -1, 132, 133,
3313 593, 135, 595, 596, 138, 139, -1, 141, 91, 143,
3314 85, 86, 81, -1, -1, 98, 99, -1, -1, -1,
3315 -1, -1, -1, -1, 93, 94, 95, 96, -1, -1,
3316 -1, -1, -1, 626, -1, -1, -1, -1, -1, 122,
3317 633, -1, -1, -1, -1, 120, 121, 122, 123, 124,
3318 125, 126, 127, -1, -1, -1, -1, -1, -1, -1,
3319 323, -1, -1, -1, -1, 328, 329, 330, 331, 332,
3320 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
3321 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
3322 353, 354, -1, 356, 687, -1, -1, 690, -1, 692,
3323 -1, -1, -1, -1, -1, 698, -1, -1, 701, 702,
3324 -1, -1, -1, -1, -1, 708, 709, -1, -1, -1,
3325 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3326 -1, -1, -1, -1, -1, -1, 2, 206, 4, -1,
3327 733, 404, 405, 736, 737, -1, -1, -1, -1, 412,
3328 413, 414, 745, -1, -1, 418, -1, 420, 421, 422,
3329 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3330 -1, 240, -1, -1, -1, -1, -1, -1, 441, -1,
3331 -1, -1, 251, 446, 253, 51, -1, -1, -1, 55,
3332 -1, -1, -1, -1, 457, -1, -1, 460, -1, -1,
3333 -1, -1, -1, -1, -1, 274, -1, -1, 471, -1,
3334 -1, -1, -1, -1, -1, 81, 2, -1, 4, -1,
3335 -1, -1, 815, -1, -1, -1, -1, 93, 94, 95,
3336 96, -1, -1, -1, 497, -1, 829, -1, -1, 308,
3337 -1, -1, -1, -1, 313, -1, -1, 840, -1, 512,
3338 843, -1, -1, -1, 847, 848, 325, 326, 851, -1,
3339 -1, -1, -1, -1, -1, 51, -1, -1, -1, 55,
3340 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3341 -1, -1, -1, -1, -1, -1, -1, -1, -1, 358,
3342 -1, -1, -1, -1, -1, 81, -1, -1, 891, -1,
3343 -1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
3344 -1, -1, -1, -1, 577, -1, -1, -1, 581, -1,
3345 -1, -1, -1, -1, -1, -1, 919, -1, -1, -1,
3346 593, -1, -1, -1, -1, -1, -1, 930, -1, -1,
3347 206, -1, -1, -1, -1, -1, 609, -1, -1, -1,
3348 943, 944, -1, -1, -1, -1, -1, -1, -1, 622,
3349 623, 70, 71, 72, 73, 74, 75, 76, 77, -1,
3350 79, 80, -1, 442, 240, -1, 85, 86, -1, -1,
3351 -1, -1, -1, 452, -1, 251, -1, 253, 981, -1,
3352 983, -1, -1, -1, -1, 2, 989, 4, 991, -1,
3353 469, -1, -1, 666, -1, -1, -1, -1, 274, 118,
3354 119, 120, 121, 122, 123, 124, 125, 126, 127, -1,
3355 206, -1, -1, -1, -1, -1, 1019, -1, -1, -1,
3356 -1, 694, -1, -1, -1, 698, 699, -1, 701, 702,
3357 -1, -1, 308, -1, 51, 708, 709, 313, -1, -1,
3358 519, -1, 715, -1, 240, -1, -1, -1, -1, 325,
3359 326, -1, -1, -1, -1, 251, -1, 253, -1, -1,
3360 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3361 -1, -1, -1, -1, -1, -1, 93, -1, 274, 752,
3362 -1, -1, 358, 756, 757, -1, 759, 760, -1, -1,
3363 -1, -1, 571, -1, 573, -1, -1, -1, -1, -1,
3364 -1, -1, -1, -1, 777, -1, -1, -1, -1, -1,
3365 -1, -1, 308, -1, -1, -1, 595, 313, -1, -1,
3366 -1, -1, -1, -1, -1, -1, -1, -1, -1, 325,
3367 326, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3368 -1, -1, -1, -1, 817, -1, -1, 2, 821, 4,
3369 -1, -1, -1, -1, 633, -1, 829, -1, -1, 638,
3370 -1, -1, 358, -1, -1, -1, 442, -1, -1, -1,
3371 -1, -1, -1, -1, -1, -1, 452, 850, -1, -1,
3372 -1, -1, -1, -1, -1, -1, -1, -1, -1, 206,
3373 -1, -1, -1, 469, 867, 868, 51, -1, -1, -1,
3374 -1, -1, -1, -1, -1, -1, -1, -1, 687, -1,
3375 -1, 690, -1, 692, -1, -1, -1, -1, 697, -1,
3376 -1, -1, -1, 240, -1, -1, -1, -1, -1, -1,
3377 -1, -1, -1, -1, 251, -1, 253, -1, -1, -1,
3378 -1, -1, -1, 519, -1, -1, 442, -1, -1, -1,
3379 -1, -1, 44, -1, -1, -1, 452, -1, 737, -1,
3380 -1, -1, -1, -1, -1, -1, 745, -1, -1, -1,
3381 -1, -1, -1, 469, -1, -1, -1, -1, 70, 71,
3382 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3383 82, 308, -1, 85, 86, 571, 313, 573, -1, -1,
3384 -1, -1, -1, -1, -1, -1, -1, -1, 325, -1,
3385 -1, 328, -1, -1, -1, -1, -1, -1, -1, 595,
3386 -1, -1, -1, 519, 116, 804, 118, 119, 120, 121,
3387 122, 123, 124, 125, 126, 127, 815, -1, -1, -1,
3388 -1, 358, -1, -1, 136, -1, 1019, -1, -1, -1,
3389 -1, 206, -1, -1, -1, -1, -1, 633, -1, -1,
3390 -1, 840, 638, -1, -1, -1, -1, -1, 847, 848,
3391 -1, -1, 851, -1, -1, 571, -1, 573, -1, -1,
3392 -1, -1, -1, -1, -1, 240, -1, -1, -1, -1,
3393 -1, -1, -1, -1, -1, -1, 251, -1, 253, 595,
3394 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3395 -1, 687, 891, -1, 690, 894, 692, -1, -1, -1,
3396 -1, 697, -1, -1, -1, 442, -1, -1, -1, -1,
3397 -1, -1, -1, -1, -1, 452, 915, 633, -1, -1,
3398 919, -1, 638, -1, -1, -1, -1, -1, -1, -1,
3399 -1, 930, -1, 308, -1, -1, -1, -1, 313, -1,
3400 -1, 737, -1, -1, 943, 944, -1, -1, -1, 745,
3401 325, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3402 -1, -1, 678, -1, -1, -1, -1, -1, -1, -1,
3403 -1, 687, -1, -1, 690, -1, 692, -1, -1, -1,
3404 -1, 697, 981, 358, 983, -1, -1, -1, -1, -1,
3405 989, -1, 991, -1, -1, -1, -1, -1, -1, -1,
3406 -1, -1, -1, -1, -1, -1, -1, -1, 804, -1,
3407 -1, -1, -1, -1, -1, -1, -1, -1, -1, 815,
3408 -1, 737, -1, -1, -1, -1, -1, -1, -1, 745,
3409 -1, -1, -1, -1, 571, -1, 573, -1, -1, -1,
3410 -1, -1, -1, -1, 840, -1, -1, -1, -1, -1,
3411 -1, 847, 848, -1, -1, 851, -1, -1, 595, 70,
3412 71, 72, 73, 74, 75, 76, -1, 442, 79, 80,
3413 -1, -1, -1, -1, 85, 86, -1, 452, -1, -1,
3414 -1, -1, -1, -1, -1, -1, -1, -1, 804, -1,
3415 -1, -1, -1, -1, -1, 891, 633, -1, 894, 815,
3416 -1, -1, -1, -1, -1, -1, -1, 118, 119, 120,
3417 121, 122, 123, 124, 125, 126, 127, -1, -1, 915,
3418 -1, -1, -1, 919, 840, -1, -1, -1, -1, -1,
3419 -1, 847, 848, -1, 930, 851, -1, -1, -1, -1,
3420 -1, -1, -1, -1, -1, -1, -1, 943, 944, -1,
3421 687, -1, -1, 690, -1, 692, -1, -1, -1, -1,
3422 -1, 698, -1, -1, -1, -1, -1, -1, -1, -1,
3423 -1, -1, -1, -1, -1, 891, -1, -1, 894, -1,
3424 -1, -1, -1, -1, -1, 981, -1, 983, -1, -1,
3425 -1, -1, -1, 989, -1, 991, 571, -1, 573, 915,
3426 737, -1, -1, 919, -1, -1, -1, -1, 745, 0,
3427 -1, -1, -1, -1, 930, -1, -1, 8, 9, 10,
3428 595, -1, 13, 14, 15, -1, 17, 943, 944, -1,
3429 -1, -1, -1, -1, -1, 26, 27, 28, 29, -1,
3430 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3431 41, 42, 43, 44, -1, -1, -1, -1, 633, -1,
3432 -1, -1, -1, -1, -1, 981, -1, 983, -1, -1,
3433 -1, -1, -1, 989, -1, 991, -1, -1, 815, 70,
3434 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3435 81, 82, -1, -1, 85, 86, 87, -1, 89, 90,
3436 -1, -1, -1, 840, -1, 96, -1, -1, -1, -1,
3437 847, 848, 687, -1, 851, 690, -1, 692, -1, 110,
3438 -1, -1, 113, -1, 115, 116, 117, 118, 119, 120,
3439 121, 122, 123, 124, 125, 126, 127, -1, -1, -1,
3440 -1, 132, 133, 134, 135, 136, -1, -1, 139, 140,
3441 141, -1, 143, -1, 891, -1, -1, -1, -1, -1,
3442 -1, -1, 737, -1, -1, -1, -1, -1, -1, -1,
3443 745, 70, 71, 72, 73, 74, 75, 76, 915, -1,
3444 79, 80, 919, -1, -1, -1, 85, 86, -1, -1,
3445 -1, -1, -1, 930, -1, -1, -1, -1, -1, -1,
3446 -1, -1, -1, -1, -1, -1, 943, 944, -1, -1,
3447 -1, -1, -1, -1, -1, -1, -1, -1, -1, 118,
3448 119, 120, 121, 122, 123, 124, 125, 126, 127, -1,
3449 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3450 815, -1, -1, -1, 981, -1, 983, -1, -1, -1,
3451 -1, -1, 989, -1, 991, -1, -1, -1, -1, -1,
3452 -1, -1, -1, -1, -1, 840, -1, -1, -1, -1,
3453 -1, -1, 847, 848, -1, -1, 851, -1, -1, -1,
3454 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3455 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3456 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3457 -1, -1, -1, -1, -1, -1, 891, -1, -1, -1,
3458 -1, -1, -1, -1, -1, -1, -1, 0, 1, -1,
3459 3, 4, 5, 6, 7, -1, -1, -1, 11, 12,
3460 -1, -1, -1, 16, 919, 18, 19, 20, 21, 22,
3461 23, 24, -1, -1, -1, 930, -1, 30, 31, 32,
3462 33, 34, 35, 36, -1, -1, 39, -1, 943, 944,
3463 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
3464 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
3465 -1, 64, 65, 66, -1, 68, 69, -1, -1, -1,
3466 -1, -1, -1, -1, -1, -1, 981, -1, 983, -1,
3467 -1, -1, -1, -1, 989, 88, 991, -1, 91, 92,
3468 -1, 94, 95, -1, 97, -1, -1, 100, 101, 102,
3469 103, 104, 105, 106, 107, 108, 0, -1, -1, -1,
3470 -1, -1, -1, -1, 8, 9, 10, -1, -1, 13,
3471 14, 15, -1, 17, -1, 128, 129, 130, -1, 44,
3472 -1, 25, -1, 27, 28, 29, -1, -1, 141, -1,
3473 143, -1, -1, 37, 38, -1, 40, 41, 42, 43,
3474 44, -1, -1, -1, -1, 70, 71, 72, 73, 74,
3475 75, 76, 77, 78, 79, 80, 81, 82, -1, -1,
3476 85, 86, -1, -1, -1, -1, 70, 71, 72, 73,
3477 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
3478 -1, 85, 86, 87, -1, 89, 90, -1, -1, -1,
3479 -1, 116, 96, 118, 119, 120, 121, 122, 123, 124,
3480 125, 126, 127, -1, -1, -1, 110, -1, -1, 113,
3481 -1, 115, 116, 117, 118, 119, 120, 121, 122, 123,
3482 124, 125, 126, 127, -1, -1, -1, -1, -1, 133,
3483 134, 135, 136, 0, -1, 139, 140, 141, -1, 143,
3484 -1, 8, 9, 10, -1, -1, 13, 14, 15, -1,
3485 17, -1, -1, -1, -1, -1, 44, -1, 25, -1,
3486 27, 28, 29, -1, -1, -1, -1, -1, -1, -1,
3487 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3488 -1, -1, 70, 71, 72, 73, 74, 75, 76, 77,
3489 78, 79, 80, 81, 82, -1, -1, 85, 86, -1,
3490 -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
3491 77, 78, 79, 80, 81, 82, -1, -1, 85, 86,
3492 87, -1, 89, 90, -1, -1, -1, -1, 116, 96,
3493 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
3494 -1, -1, -1, 110, -1, -1, 113, -1, 115, 116,
3495 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
3496 127, -1, -1, -1, -1, -1, 133, 134, 135, 136,
3497 0, -1, 139, 140, 141, -1, 143, -1, 8, 9,
3498 10, -1, -1, 13, 14, 15, -1, 17, -1, -1,
3499 -1, -1, -1, -1, -1, -1, 26, 27, 28, 29,
3500 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
3501 40, 41, 42, 43, 44, -1, -1, -1, -1, 70,
3502 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3503 81, 82, -1, -1, 85, 86, -1, -1, -1, -1,
3504 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3505 80, 81, 82, -1, -1, 85, 86, 87, -1, -1,
3506 90, -1, -1, -1, -1, 116, 96, 118, 119, 120,
3507 121, 122, 123, 124, 125, 126, 127, -1, -1, -1,
3508 110, -1, -1, 113, -1, -1, 116, 117, 118, 119,
3509 120, 121, 122, 123, 124, 125, 126, 127, -1, -1,
3510 -1, -1, 132, 133, 134, 135, 136, 0, -1, 139,
3511 140, 141, -1, 143, -1, 8, 9, 10, -1, -1,
3512 13, 14, 15, -1, 17, -1, -1, -1, -1, -1,
3513 -1, -1, -1, 26, 27, 28, 29, -1, -1, -1,
3514 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
3515 43, 44, -1, -1, -1, -1, 70, 71, 72, 73,
3516 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
3517 -1, 85, 86, -1, -1, -1, -1, 70, 71, 72,
3518 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3519 -1, -1, 85, 86, 87, -1, -1, 90, -1, -1,
3520 -1, -1, -1, 96, 118, 119, 120, 121, 122, 123,
3521 124, 125, 126, 127, -1, -1, -1, 110, -1, -1,
3522 113, -1, -1, 116, 117, 118, 119, 120, 121, 122,
3523 123, 124, 125, 126, 127, -1, -1, -1, -1, 132,
3524 133, 134, 135, 136, 0, -1, 139, 140, 141, -1,
3525 143, -1, 8, 9, 10, -1, -1, 13, 14, 15,
3526 -1, 17, -1, -1, -1, -1, -1, -1, -1, -1,
3527 -1, 27, 28, 29, -1, -1, -1, -1, -1, -1,
3528 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3529 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3530 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3531 -1, -1, -1, -1, 70, 71, 72, 73, 74, 75,
3532 76, 77, 78, 79, 80, 81, 82, -1, -1, 85,
3533 86, 87, -1, 89, 90, -1, -1, -1, -1, -1,
3534 96, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3535 -1, -1, -1, -1, 110, -1, -1, 113, -1, 115,
3536 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3537 126, 127, -1, -1, -1, -1, -1, 133, 134, 135,
3538 136, 0, -1, 139, 140, 141, -1, 143, -1, 8,
3539 9, 10, -1, -1, 13, 14, 15, -1, 17, -1,
3540 -1, -1, -1, -1, -1, -1, -1, 26, 27, 28,
3541 -1, -1, -1, -1, -1, -1, -1, -1, 37, 38,
3542 -1, 40, 41, 42, 43, 44, -1, -1, -1, -1,
3543 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3544 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3545 -1, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3546 79, 80, 81, 82, -1, -1, 85, 86, 87, -1,
3547 -1, 90, -1, -1, -1, -1, -1, 96, -1, -1,
3548 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3549 -1, 110, -1, -1, -1, -1, -1, 116, -1, 118,
3550 119, 120, 121, 122, 123, 124, 125, 126, 127, -1,
3551 -1, -1, -1, 132, 133, 134, 135, 136, 0, 138,
3552 139, 140, 141, -1, 143, -1, 8, 9, 10, -1,
3553 -1, 13, 14, 15, -1, 17, -1, -1, -1, -1,
3554 -1, -1, -1, -1, -1, 27, 28, 29, -1, -1,
3555 -1, -1, -1, -1, -1, 37, 38, -1, 40, 41,
3556 42, 43, 44, -1, -1, -1, -1, -1, -1, -1,
3557 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3558 -1, -1, -1, -1, -1, -1, -1, -1, 70, 71,
3559 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3560 82, -1, -1, 85, 86, 87, -1, -1, 90, -1,
3561 -1, -1, -1, -1, 96, -1, -1, -1, -1, -1,
3562 -1, -1, -1, -1, -1, -1, -1, -1, 110, -1,
3563 -1, 113, -1, -1, 116, 117, 118, 119, 120, 121,
3564 122, 123, 124, 125, 126, 127, -1, -1, -1, -1,
3565 -1, 133, 134, 135, 136, 0, -1, 139, 140, 141,
3566 -1, 143, -1, 8, 9, 10, -1, -1, 13, 14,
3567 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3568 -1, 26, 27, 28, -1, -1, -1, -1, -1, -1,
3569 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3570 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3571 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3572 -1, -1, -1, -1, -1, 70, 71, 72, 73, 74,
3573 75, 76, 77, 78, 79, 80, 81, 82, -1, -1,
3574 85, 86, 87, -1, -1, 90, -1, -1, -1, -1,
3575 -1, 96, -1, -1, -1, -1, -1, -1, -1, -1,
3576 -1, -1, -1, -1, -1, 110, -1, -1, -1, -1,
3577 -1, 116, -1, 118, 119, 120, 121, 122, 123, 124,
3578 125, 126, 127, -1, -1, -1, -1, 132, 133, 134,
3579 135, 136, 0, 138, 139, 140, 141, -1, 143, -1,
3580 8, 9, 10, -1, -1, 13, 14, 15, -1, 17,
3581 -1, -1, -1, -1, -1, -1, -1, -1, -1, 27,
3582 28, -1, -1, -1, -1, -1, -1, -1, -1, 37,
3583 38, -1, 40, 41, 42, 43, 44, -1, -1, -1,
3584 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3585 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3586 -1, -1, 70, 71, 72, 73, 74, 75, 76, 77,
3587 78, 79, 80, 81, 82, -1, -1, 85, 86, 87,
3588 -1, -1, 90, -1, -1, -1, -1, -1, 96, -1,
3589 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3590 -1, -1, 110, -1, -1, -1, -1, -1, 116, -1,
3591 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
3592 -1, -1, -1, -1, -1, 133, 134, 135, 136, 0,
3593 138, 139, 140, 141, -1, 143, -1, 8, 9, 10,
3594 -1, -1, -1, 14, 15, -1, 17, -1, -1, -1,
3595 -1, -1, -1, -1, -1, 26, -1, -1, -1, -1,
3596 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3597 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
3598 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3599 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
3600 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3601 81, 82, -1, -1, 85, 86, 87, -1, 89, -1,
3602 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3603 -1, -1, -1, -1, -1, -1, -1, -1, -1, 110,
3604 -1, -1, -1, -1, 115, 116, -1, 118, 119, 120,
3605 121, 122, 123, 124, 125, 126, 127, -1, -1, -1,
3606 -1, 132, 133, 134, 135, 136, 0, -1, 139, -1,
3607 141, -1, 143, -1, 8, 9, 10, -1, -1, -1,
3608 14, 15, -1, 17, -1, -1, -1, -1, -1, -1,
3609 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3610 -1, -1, -1, 37, 38, -1, 40, 41, 42, 43,
3611 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3612 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3613 -1, -1, -1, -1, -1, -1, 70, 71, 72, 73,
3614 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
3615 -1, 85, 86, 87, -1, 89, -1, -1, -1, -1,
3616 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3617 -1, -1, -1, -1, -1, -1, 110, -1, -1, -1,
3618 -1, 115, 116, -1, 118, 119, 120, 121, 122, 123,
3619 124, 125, 126, 127, -1, -1, -1, -1, -1, 133,
3620 134, 135, 136, -1, -1, 139, -1, 141, 1, 143,
3621 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3622 -1, -1, 15, 16, -1, 18, 19, 20, 21, 22,
3623 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3624 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3625 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
3626 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
3627 -1, 64, 65, 66, -1, 68, 69, -1, -1, -1,
3628 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3629 -1, -1, -1, -1, -1, 88, -1, -1, 91, 92,
3630 -1, 94, 95, -1, 97, -1, -1, 100, 101, 102,
3631 103, 104, 105, 106, 107, 108, -1, -1, -1, -1,
3632 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3633 -1, -1, -1, -1, -1, 128, 129, 130, -1, -1,
3634 -1, -1, -1, -1, -1, -1, -1, -1, 141, 1,
3635 143, 3, 4, 5, 6, 7, -1, -1, 10, 11,
3636 12, -1, 14, 15, 16, -1, 18, 19, 20, 21,
3637 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3638 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3639 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3640 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
3641 62, -1, 64, 65, 66, -1, 68, 69, -1, -1,
3642 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3643 -1, -1, -1, -1, -1, -1, 88, -1, -1, 91,
3644 92, -1, 94, 95, -1, 97, -1, -1, 100, 101,
3645 102, 103, 104, 105, 106, 107, 108, -1, -1, -1,
3646 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3647 -1, -1, -1, -1, -1, -1, 128, 129, 130, -1,
3648 -1, -1, -1, -1, -1, -1, -1, -1, -1, 141,
3649 1, 143, 3, 4, 5, 6, 7, -1, -1, 10,
3650 11, 12, -1, -1, 15, 16, 17, 18, 19, 20,
3651 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3652 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3653 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
3654 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3655 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
3656 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3657 -1, -1, -1, -1, -1, -1, -1, 88, -1, -1,
3658 91, 92, -1, 94, 95, -1, 97, -1, -1, 100,
3659 101, 102, 103, 104, 105, 106, 107, 108, -1, -1,
3660 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3661 -1, -1, -1, -1, -1, -1, -1, 128, 129, 130,
3662 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3663 141, 1, 143, 3, 4, 5, 6, 7, -1, -1,
3664 10, 11, 12, -1, -1, 15, 16, -1, 18, 19,
3665 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3666 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3667 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
3668 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3669 60, 61, 62, -1, 64, 65, 66, -1, 68, 69,
3670 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3671 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
3672 -1, 91, 92, -1, 94, 95, -1, 97, -1, -1,
3673 100, 101, 102, 103, 104, 105, 106, 107, 108, -1,
3674 -1, -1, -1, -1, -1, -1, 1, -1, 3, 4,
3675 5, 6, 7, -1, 9, 10, 11, 12, 128, 129,
3676 130, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3677 -1, 141, -1, 143, -1, 30, 31, 32, 33, 34,
3678 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3679 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3680 55, 56, 57, -1, 59, 60, 61, 62, -1, 64,
3681 65, 66, -1, 68, 69, -1, -1, -1, -1, -1,
3682 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3683 -1, -1, -1, 88, -1, -1, 91, 92, -1, 94,
3684 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
3685 105, 106, 107, 108, -1, -1, -1, -1, -1, -1,
3686 -1, 1, -1, 3, 4, 5, 6, 7, -1, -1,
3687 -1, 11, 12, 128, 129, 130, 16, -1, 18, 19,
3688 20, 21, 22, 23, 24, -1, 141, -1, 143, -1,
3689 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3690 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
3691 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3692 60, 61, 62, -1, 64, 65, 66, -1, 68, 69,
3693 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3694 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
3695 -1, 91, 92, -1, 94, 95, -1, 97, -1, -1,
3696 100, 101, 102, 103, 104, 105, 106, 107, 108, -1,
3697 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3698 -1, -1, -1, -1, -1, -1, -1, -1, 128, 129,
3699 130, -1, -1, -1, -1, -1, -1, -1, -1, 139,
3700 -1, 141, 1, 143, 3, 4, 5, 6, 7, -1,
3701 -1, -1, 11, 12, -1, -1, -1, 16, -1, 18,
3702 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3703 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3704 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3705 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3706 59, 60, 61, 62, -1, 64, 65, 66, -1, 68,
3707 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3708 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
3709 -1, -1, 91, 92, -1, 94, 95, -1, 97, -1,
3710 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
3711 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3712 -1, -1, -1, -1, -1, -1, -1, -1, -1, 128,
3713 129, 130, -1, -1, -1, -1, -1, -1, -1, -1,
3714 139, -1, 141, 1, 143, 3, 4, 5, 6, 7,
3715 -1, -1, -1, 11, 12, -1, -1, -1, 16, -1,
3716 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3717 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3718 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3719 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3720 -1, 59, 60, 61, 62, -1, 64, 65, 66, -1,
3721 68, 69, -1, -1, -1, -1, -1, -1, -1, -1,
3722 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3723 88, -1, -1, 91, 92, -1, 94, 95, -1, 97,
3724 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
3725 108, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3726 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3727 128, 129, 130, -1, -1, 133, 1, -1, 3, 4,
3728 5, 6, 7, 141, -1, 143, 11, 12, -1, -1,
3729 -1, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3730 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3731 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3732 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3733 55, 56, 57, -1, 59, 60, 61, 62, -1, 64,
3734 65, 66, -1, 68, 69, -1, -1, -1, -1, -1,
3735 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3736 -1, -1, -1, 88, -1, -1, 91, 92, -1, 94,
3737 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
3738 105, 106, 107, 108, -1, -1, -1, -1, -1, -1,
3739 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3740 -1, -1, -1, 128, 129, 130, -1, -1, 133, -1,
3741 -1, -1, -1, -1, -1, -1, 141, 1, 143, 3,
3742 4, 5, 6, 7, -1, -1, 10, 11, 12, -1,
3743 -1, -1, 16, -1, 18, 19, 20, 21, 22, 23,
3744 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3745 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3746 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3747 54, 55, 56, 57, -1, 59, 60, 61, 62, -1,
3748 64, 65, 66, -1, 68, 69, -1, -1, -1, -1,
3749 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3750 -1, -1, -1, -1, 88, -1, -1, 91, 92, -1,
3751 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
3752 104, 105, 106, 107, 108, -1, -1, -1, -1, -1,
3753 -1, -1, 1, -1, 3, 4, 5, 6, 7, -1,
3754 -1, -1, 11, 12, 128, 129, 130, 16, -1, 18,
3755 19, 20, 21, 22, 23, 24, -1, 141, -1, 143,
3756 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3757 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3758 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3759 59, 60, 61, 62, -1, 64, 65, 66, -1, 68,
3760 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3761 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
3762 -1, -1, 91, 92, -1, 94, 95, -1, 97, -1,
3763 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
3764 -1, 110, -1, -1, -1, -1, -1, -1, -1, 3,
3765 4, 5, -1, 7, -1, -1, -1, 11, 12, 128,
3766 129, 130, 16, -1, 18, 19, 20, 21, 22, 23,
3767 24, -1, 141, -1, 143, -1, 30, 31, 32, 33,
3768 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3769 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3770 54, 55, 56, 57, 58, 59, 60, 61, 62, -1,
3771 64, 65, 66, -1, 68, 69, -1, -1, -1, -1,
3772 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3773 -1, -1, -1, -1, 88, -1, -1, 91, 92, -1,
3774 94, 95, -1, 97, 98, 99, 100, 101, 102, 103,
3775 104, 105, 106, 107, 108, -1, -1, -1, -1, -1,
3776 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3777 -1, -1, 11, 12, 128, 129, 130, 16, -1, 18,
3778 19, 20, 21, 22, 23, 24, -1, -1, -1, 143,
3779 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3780 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3781 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3782 59, 60, 61, 62, -1, 64, 65, 66, -1, 68,
3783 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3784 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
3785 -1, -1, 91, 92, -1, 94, 95, -1, -1, -1,
3786 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
3787 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
3788 4, 5, -1, 7, -1, -1, -1, 11, 12, 128,
3789 129, 130, 16, -1, 18, 19, 20, 21, 22, 23,
3790 24, -1, 141, -1, 143, -1, 30, 31, 32, 33,
3791 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3792 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3793 54, 55, 56, 57, -1, 59, 60, 61, 62, -1,
3794 64, 65, 66, -1, 68, 69, -1, -1, -1, -1,
3795 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3796 -1, -1, -1, -1, 88, -1, -1, 91, 92, -1,
3797 94, 95, -1, -1, -1, -1, 100, 101, 102, 103,
3798 104, 105, 106, 107, 108, -1, -1, -1, -1, -1,
3799 -1, -1, -1, -1, 3, 4, 5, 6, 7, -1,
3800 -1, -1, 11, 12, 128, 129, 130, 16, -1, 18,
3801 19, 20, 21, 22, 23, 24, -1, -1, -1, 143,
3802 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3803 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3804 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3805 59, 60, 61, 62, -1, 64, 65, 66, -1, 68,
3806 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3807 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
3808 -1, -1, 91, 92, -1, 94, 95, -1, 97, -1,
3809 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
3810 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
3811 4, 5, 6, 7, -1, -1, -1, 11, 12, 128,
3812 129, 130, 16, -1, 18, 19, 20, 21, 22, 23,
3813 24, -1, 141, -1, -1, -1, 30, 31, 32, 33,
3814 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3815 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3816 54, 55, 56, 57, -1, 59, 60, 61, 62, -1,
3817 64, 65, 66, -1, 68, 69, -1, -1, -1, -1,
3818 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3819 -1, -1, -1, -1, 88, -1, -1, 91, 92, -1,
3820 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
3821 104, 105, 106, 107, 108, -1, -1, -1, -1, -1,
3822 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3823 -1, -1, -1, -1, 128, 129, 130, -1, -1, -1,
3824 -1, -1, -1, -1, -1, -1, -1, 141, 3, 4,
3825 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3826 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3827 25, 26, -1, -1, -1, 30, 31, 32, 33, 34,
3828 35, 36, 37, 38, 39, -1, -1, -1, -1, -1,
3829 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3830 55, 56, 57, -1, -1, -1, -1, -1, -1, -1,
3831 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
3832 75, 76, -1, -1, 79, 80, -1, -1, 83, 84,
3833 85, 86, -1, -1, -1, -1, -1, -1, -1, -1,
3834 -1, -1, 97, 98, -1, -1, -1, -1, -1, -1,
3835 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3836 -1, -1, -1, 118, 119, 120, 121, 122, 123, 124,
3837 125, 126, 127, -1, 129, 130, -1, -1, -1, -1,
3838 -1, -1, 137, 138, 3, 4, 5, 6, 7, 8,
3839 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
3840 19, 20, 21, 22, 23, 24, 25, 26, -1, -1,
3841 -1, 30, 31, 32, 33, 34, 35, 36, 37, 38,
3842 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3843 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3844 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
3845 69, 70, 71, 72, 73, 74, 75, 76, -1, -1,
3846 79, 80, -1, -1, 83, 84, 85, 86, -1, -1,
3847 -1, -1, -1, -1, -1, -1, -1, -1, 97, 98,
3848 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3849 -1, -1, -1, -1, -1, -1, -1, -1, -1, 118,
3850 119, 120, 121, 122, 123, 124, 125, 126, 127, -1,
3851 129, 130, -1, -1, -1, -1, -1, -1, 137, 3,
3852 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
3853 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
3854 24, 25, 26, -1, -1, -1, 30, 31, 32, 33,
3855 34, 35, 36, 37, 38, 39, -1, -1, -1, -1,
3856 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3857 54, -1, 56, -1, -1, -1, -1, -1, -1, -1,
3858 -1, -1, -1, -1, 68, 69, 70, 71, 72, 73,
3859 74, 75, 76, -1, -1, 79, 80, -1, -1, 83,
3860 84, 85, 86, -1, -1, -1, -1, -1, -1, -1,
3861 -1, -1, -1, 97, 98, -1, -1, 101, -1, -1,
3862 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3863 -1, -1, -1, -1, 118, 119, 120, 121, 122, 123,
3864 124, 125, 126, 127, -1, 129, 130, -1, -1, -1,
3865 -1, -1, -1, 137, 3, 4, 5, 6, 7, 8,
3866 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
3867 19, 20, 21, 22, 23, 24, 25, 26, -1, -1,
3868 -1, 30, 31, 32, 33, 34, 35, 36, 37, 38,
3869 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3870 49, 50, 51, 52, 53, -1, -1, 56, -1, -1,
3871 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
3872 69, 70, 71, 72, 73, 74, 75, 76, -1, -1,
3873 79, 80, -1, -1, 83, 84, 85, 86, -1, -1,
3874 -1, -1, -1, -1, -1, -1, -1, -1, 97, 98,
3875 -1, -1, 101, -1, -1, -1, -1, -1, -1, -1,
3876 -1, -1, -1, -1, -1, -1, -1, -1, -1, 118,
3877 119, 120, 121, 122, 123, 124, 125, 126, 127, -1,
3878 129, 130, -1, -1, -1, -1, -1, -1, 137, 3,
3879 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
3880 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
3881 24, 25, 26, -1, -1, -1, 30, 31, 32, 33,
3882 34, 35, 36, 37, 38, 39, -1, -1, -1, -1,
3883 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3884 -1, -1, 56, -1, -1, -1, -1, -1, -1, -1,
3885 -1, -1, -1, -1, 68, 69, 70, 71, 72, 73,
3886 74, 75, 76, -1, -1, 79, 80, -1, -1, 83,
3887 84, 85, 86, -1, -1, -1, -1, -1, -1, -1,
3888 -1, -1, -1, 97, 98, -1, -1, -1, -1, -1,
3889 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3890 -1, -1, -1, -1, 118, 119, 120, 121, 122, 123,
3891 124, 125, 126, 127, -1, 129, 130, 3, 4, 5,
3892 -1, 7, -1, 137, -1, 11, 12, -1, -1, -1,
3893 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3894 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3895 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
3896 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
3897 56, 57, -1, 59, 60, 61, 62, -1, 64, 65,
3898 66, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3899 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3900 -1, -1, 88, -1, -1, 91, 92, -1, 94, 95,
3901 -1, -1, -1, -1, 100, 101, 102, 103, 104, 105,
3902 106, 107, 108, -1, -1, -1, -1, -1, 3, 4,
3903 5, -1, 7, -1, -1, -1, 11, 12, -1, -1,
3904 -1, 16, 128, 18, 19, 20, 21, 22, 23, 24,
3905 136, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3906 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3907 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
3908 55, 56, 57, -1, 59, 60, 61, 62, -1, 64,
3909 65, 66, -1, -1, -1, -1, -1, -1, -1, -1,
3910 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3911 -1, -1, -1, 88, -1, -1, 91, 92, -1, 94,
3912 95, -1, -1, -1, -1, 100, 101, 102, 103, 104,
3913 105, 106, 107, 108, -1, -1, -1, -1, -1, 3,
3914 4, 5, 6, 7, -1, -1, -1, 11, 12, -1,
3915 -1, -1, 16, 128, 18, 19, 20, 21, 22, 23,
3916 24, 136, -1, -1, -1, -1, 30, 31, 32, 33,
3917 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3918 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3919 54, 55, 56, 57, -1, 59, 60, 61, 62, -1,
3920 64, 65, 66, -1, 68, 69, -1, -1, -1, -1,
3921 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3922 -1, -1, -1, -1, 88, -1, -1, 91, 92, -1,
3923 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
3924 104, 105, 106, 107, 108, -1, -1, -1, -1, -1,
3925 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3926 -1, -1, 11, 12, 128, 129, 130, 16, -1, 18,
3927 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3928 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3929 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3930 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
3931 59, 60, 61, 62, -1, 64, 65, 66, -1, 68,
3932 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3933 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
3934 -1, -1, 91, 92, -1, 94, 95, -1, 97, 98,
3935 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
3936 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
3937 4, 5, 6, 7, -1, -1, -1, 11, 12, 128,
3938 129, 130, 16, -1, 18, 19, 20, 21, 22, 23,
3939 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3940 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3941 -1, 45, 46, -1, 48, 49, 50, 51, 52, 53,
3942 54, 55, 56, 57, -1, 59, 60, 61, 62, -1,
3943 64, 65, 66, -1, 68, 69, -1, -1, -1, -1,
3944 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3945 -1, -1, -1, -1, 88, -1, -1, 91, 92, -1,
3946 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
3947 104, 105, 106, 107, 108, -1, -1, -1, -1, -1,
3948 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3949 -1, -1, 11, 12, 128, 129, 130, 16, -1, 18,
3950 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3951 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3952 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3953 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
3954 59, 60, 61, 62, -1, 64, 65, 66, -1, 68,
3955 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3956 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
3957 -1, -1, 91, 92, -1, 94, 95, -1, 97, 98,
3958 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
3959 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
3960 4, 5, -1, 7, -1, -1, -1, 11, 12, 128,
3961 129, 130, 16, -1, 18, 19, 20, 21, 22, 23,
3962 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3963 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3964 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3965 54, 55, 56, 57, 58, 59, 60, 61, 62, -1,
3966 64, 65, 66, -1, 68, 69, -1, -1, -1, -1,
3967 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3968 -1, -1, -1, -1, 88, -1, -1, 91, 92, -1,
3969 94, 95, -1, 97, 98, -1, 100, 101, 102, 103,
3970 104, 105, 106, 107, 108, -1, -1, -1, -1, -1,
3971 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3972 -1, -1, 11, 12, 128, 129, 130, 16, -1, 18,
3973 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3974 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3975 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3976 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
3977 59, 60, 61, 62, -1, 64, 65, 66, -1, 68,
3978 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3979 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
3980 -1, -1, 91, 92, -1, 94, 95, -1, -1, 98,
3981 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
3982 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
3983 4, 5, -1, 7, -1, -1, -1, 11, 12, 128,
3984 129, 130, 16, -1, 18, 19, 20, 21, 22, 23,
3985 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3986 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3987 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3988 54, 55, 56, 57, 58, 59, 60, 61, 62, -1,
3989 64, 65, 66, -1, 68, 69, -1, -1, -1, -1,
3990 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3991 -1, -1, -1, -1, 88, -1, -1, 91, 92, -1,
3992 94, 95, -1, 97, 98, -1, 100, 101, 102, 103,
3993 104, 105, 106, 107, 108, -1, -1, -1, -1, -1,
3994 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3995 -1, -1, 11, 12, 128, 129, 130, 16, -1, 18,
3996 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3997 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3998 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3999 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
4000 59, 60, 61, 62, -1, 64, 65, 66, -1, 68,
4001 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4002 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
4003 -1, -1, 91, 92, -1, 94, 95, -1, -1, 98,
4004 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
4005 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4006 4, 5, -1, 7, -1, -1, -1, 11, 12, 128,
4007 129, 130, 16, -1, 18, 19, 20, 21, 22, 23,
4008 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4009 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4010 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4011 54, 55, 56, 57, -1, 59, 60, 61, 62, -1,
4012 64, 65, 66, -1, 68, 69, -1, -1, -1, -1,
4013 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4014 -1, -1, -1, -1, 88, -1, -1, 91, 92, -1,
4015 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
4016 104, 105, 106, 107, 108, -1, -1, -1, -1, -1,
4017 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4018 -1, -1, 11, 12, 128, 129, 130, 16, -1, 18,
4019 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4020 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4021 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4022 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4023 59, 60, 61, 62, -1, 64, 65, 66, -1, 68,
4024 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4025 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
4026 -1, -1, 91, 92, -1, 94, 95, -1, 97, -1,
4027 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
4028 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4029 4, 5, -1, 7, -1, -1, -1, 11, 12, 128,
4030 129, 130, 16, -1, 18, 19, 20, 21, 22, 23,
4031 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4032 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4033 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4034 54, 55, 56, 57, -1, 59, 60, 61, 62, -1,
4035 64, 65, 66, -1, 68, 69, -1, -1, -1, -1,
4036 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4037 -1, -1, -1, -1, 88, -1, -1, 91, 92, -1,
4038 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
4039 104, 105, 106, 107, 108, -1, -1, -1, -1, -1,
4040 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4041 -1, -1, 11, 12, 128, 129, 130, 16, -1, 18,
4042 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4043 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4044 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4045 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4046 59, 60, 61, 62, -1, 64, 65, 66, -1, 68,
4047 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4048 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
4049 -1, -1, 91, 92, -1, 94, 95, -1, 97, -1,
4050 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
4051 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4052 4, 5, -1, 7, -1, -1, -1, 11, 12, 128,
4053 129, 130, 16, -1, 18, 19, 20, 21, 22, 23,
4054 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4055 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4056 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4057 54, 55, 56, 57, -1, 59, 60, 61, 62, -1,
4058 64, 65, 66, -1, 68, 69, -1, -1, -1, -1,
4059 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4060 -1, -1, -1, -1, 88, -1, -1, 91, 92, -1,
4061 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
4062 104, 105, 106, 107, 108, -1, -1, -1, -1, -1,
4063 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4064 -1, -1, 11, 12, 128, 129, 130, 16, -1, 18,
4065 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4066 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4067 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4068 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4069 59, 60, 61, 62, -1, 64, 65, 66, -1, 68,
4070 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4071 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
4072 -1, -1, 91, 92, -1, 94, 95, -1, -1, -1,
4073 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
4074 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4075 4, 5, -1, 7, -1, -1, -1, 11, 12, 128,
4076 129, 130, 16, -1, 18, 19, 20, 21, 22, 23,
4077 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4078 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4079 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4080 54, 55, 56, 57, -1, 59, 60, 61, 62, -1,
4081 64, 65, 66, -1, 68, 69, -1, -1, -1, -1,
4082 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4083 -1, -1, -1, -1, 88, -1, -1, 91, 92, -1,
4084 94, 95, -1, -1, -1, -1, 100, 101, 102, 103,
4085 104, 105, 106, 107, 108, -1, -1, -1, -1, -1,
4086 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4087 -1, -1, 11, 12, 128, 129, 130, 16, -1, 18,
4088 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4089 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4090 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4091 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4092 59, 60, 61, 62, -1, 64, 65, 66, -1, 68,
4093 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4094 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
4095 -1, -1, 91, 92, -1, 94, 95, -1, -1, -1,
4096 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
4097 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4098 4, 5, -1, 7, -1, -1, -1, 11, 12, 128,
4099 129, 130, 16, -1, 18, 19, 20, 21, 22, 23,
4100 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4101 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4102 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4103 54, 55, 56, 57, -1, 59, 60, 61, 62, -1,
4104 64, 65, 66, -1, -1, -1, -1, -1, -1, -1,
4105 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4106 -1, -1, -1, -1, 88, -1, -1, 91, 92, -1,
4107 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
4108 104, 105, 106, 107, 108, -1, -1, -1, -1, -1,
4109 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4110 -1, -1, -1, 16, 128, 18, 19, 20, 21, 22,
4111 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4112 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4113 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4114 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
4115 -1, 64, 65, 66, -1, -1, -1, -1, -1, -1,
4116 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4117 -1, -1, -1, -1, -1, 88, -1, -1, 91, 92,
4118 -1, 94, 95, -1, 97, -1, -1, 100, 101, 102,
4119 103, 104, 105, 106, 107, 108, -1, -1, -1, -1,
4120 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
4121 12, -1, -1, -1, 16, 128, 18, 19, 20, 21,
4122 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4123 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4124 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4125 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
4126 62, -1, 64, 65, 66, -1, -1, -1, -1, -1,
4127 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4128 -1, -1, -1, 85, -1, -1, 88, -1, -1, 91,
4129 92, -1, 94, 95, -1, -1, -1, -1, 100, 101,
4130 102, 103, 104, 105, 106, 107, 108, -1, -1, -1,
4131 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4132 11, 12, -1, -1, -1, 16, 128, 18, 19, 20,
4133 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4134 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4135 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4136 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4137 61, 62, -1, 64, 65, 66, -1, -1, -1, -1,
4138 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4139 -1, -1, -1, -1, -1, -1, -1, 88, -1, -1,
4140 91, 92, -1, 94, 95, -1, -1, -1, -1, 100,
4141 101, 102, 103, 104, 105, 106, 107, 108, -1, -1,
4142 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4143 -1, 11, 12, -1, -1, -1, 16, 128, 18, 19,
4144 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4145 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4146 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4147 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4148 60, 61, 62, -1, 64, 65, 66, -1, -1, -1,
4149 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4150 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
4151 -1, 91, 92, -1, 94, 95, -1, -1, -1, -1,
4152 100, 101, 102, 103, 104, 105, 106, 107, 108, -1,
4153 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4154 -1, -1, 11, 12, -1, -1, -1, 16, 128, 18,
4155 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4156 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4157 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4158 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4159 59, 60, 61, 62, -1, 64, 65, 66, -1, -1,
4160 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4161 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
4162 -1, -1, 91, 92, -1, 94, 95, -1, -1, -1,
4163 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
4164 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4165 -1, -1, -1, 11, 12, -1, -1, -1, 16, 128,
4166 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4167 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4168 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4169 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4170 -1, 59, 60, 61, 62, -1, 64, 65, 66, -1,
4171 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4172 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4173 88, -1, -1, 91, 92, -1, 94, 95, -1, -1,
4174 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
4175 108, -1, -1, -1, -1, 52, 53, -1, -1, 56,
4176 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4177 128, 68, 69, 70, 71, 72, 73, 74, 75, 76,
4178 -1, -1, 79, 80, -1, -1, 83, 84, 85, 86,
4179 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4180 97, 98, -1, -1, -1, -1, -1, -1, -1, -1,
4181 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4182 -1, 118, 119, 120, 121, 122, 123, 124, 125, 126,
4183 127, -1, 129, 130, 52, 53, -1, -1, 56, -1,
4184 137, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4185 68, 69, 70, 71, 72, 73, 74, 75, 76, -1,
4186 -1, 79, 80, -1, -1, 83, 84, 85, 86, -1,
4187 -1, -1, -1, -1, -1, -1, -1, -1, -1, 97,
4188 98, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4189 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4190 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
4191 -1, 129, 130, 52, 53, -1, -1, 56, -1, 137,
4192 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
4193 69, 70, 71, 72, 73, 74, 75, 76, -1, -1,
4194 79, 80, -1, -1, 83, 84, 85, 86, -1, -1,
4195 -1, -1, -1, -1, -1, -1, -1, -1, 97, 98,
4196 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4197 -1, -1, -1, -1, -1, -1, -1, -1, -1, 118,
4198 119, 120, 121, 122, 123, 124, 125, 126, 127, -1,
4199 129, 130, 52, 53, -1, -1, 56, -1, 137, -1,
4200 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
4201 70, 71, 72, 73, 74, 75, 76, -1, -1, 79,
4202 80, -1, -1, 83, 84, 85, 86, -1, -1, -1,
4203 -1, -1, -1, -1, -1, -1, -1, 97, 98, -1,
4204 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4205 -1, -1, -1, -1, -1, -1, -1, -1, 118, 119,
4206 120, 121, 122, 123, 124, 125, 126, 127, -1, 129,
4207 130, 52, 53, -1, -1, 56, -1, 137, -1, -1,
4208 -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
4209 71, 72, 73, 74, 75, 76, -1, -1, 79, 80,
4210 -1, -1, 83, 84, 85, 86, -1, -1, -1, -1,
4211 -1, -1, -1, -1, -1, -1, 97, 98, -1, -1,
4212 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4213 -1, -1, -1, -1, -1, -1, -1, 118, 119, 120,
4214 121, 122, 123, 124, 125, 126, 127, -1, 129, 130,
4215 52, 53, -1, -1, 56, -1, 137, -1, -1, -1,
4216 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
4217 72, 73, 74, 75, 76, -1, -1, 79, 80, -1,
4218 -1, 83, 84, 85, 86, -1, -1, -1, -1, -1,
4219 -1, -1, -1, -1, -1, 97, 98, -1, -1, -1,
4220 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4221 -1, -1, -1, -1, -1, -1, 118, 119, 120, 121,
4222 122, 123, 124, 125, 126, 127, -1, 129, 130, 52,
4223 53, -1, -1, 56, -1, 137, -1, -1, -1, -1,
4224 -1, -1, -1, -1, -1, 68, 69, 70, 71, 72,
4225 73, 74, 75, 76, -1, -1, 79, 80, -1, -1,
4226 83, 84, 85, 86, -1, -1, -1, -1, -1, -1,
4227 -1, -1, -1, -1, 97, 98, -1, -1, -1, -1,
4228 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4229 -1, -1, -1, -1, -1, 118, 119, 120, 121, 122,
4230 123, 124, 125, 126, 127, -1, 129, 130, 52, 53,
4231 -1, -1, 56, -1, 137, -1, -1, -1, -1, -1,
4232 -1, -1, -1, -1, 68, 69, 70, 71, 72, 73,
4233 74, 75, 76, -1, -1, 79, 80, -1, -1, 83,
4234 84, 85, 86, -1, -1, -1, -1, -1, -1, -1,
4235 -1, -1, -1, 97, 98, -1, -1, -1, -1, -1,
4236 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4237 -1, -1, -1, -1, 118, 119, 120, 121, 122, 123,
4238 124, 125, 126, 127, -1, 129, 130, 52, 53, -1,
4239 -1, 56, -1, 137, -1, -1, -1, -1, -1, -1,
4240 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
4241 75, 76, -1, -1, 79, 80, -1, -1, 83, 84,
4242 85, 86, -1, -1, -1, -1, -1, -1, -1, -1,
4243 -1, -1, 97, 98, -1, -1, -1, -1, -1, -1,
4244 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4245 -1, -1, -1, 118, 119, 120, 121, 122, 123, 124,
4246 125, 126, 127, -1, 129, 130, 52, 53, -1, -1,
4247 56, -1, 137, -1, -1, -1, -1, -1, -1, -1,
4248 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
4249 76, -1, -1, 79, 80, -1, -1, 83, 84, 85,
4250 86, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4251 -1, 97, 98, -1, -1, -1, -1, -1, -1, -1,
4252 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4253 -1, -1, 118, 119, 120, 121, 122, 123, 124, 125,
4254 126, 127, -1, 129, 130, 52, 53, -1, -1, 56,
4255 -1, 137, -1, -1, -1, -1, -1, -1, -1, -1,
4256 -1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
4257 -1, -1, 79, 80, -1, -1, 83, 84, 85, 86,
4258 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4259 97, 98, -1, -1, -1, -1, -1, -1, -1, -1,
4260 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4261 -1, 118, 119, 120, 121, 122, 123, 124, 125, 126,
4262 127, -1, 129, 130, 52, 53, -1, -1, 56, -1,
4263 137, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4264 68, 69, 70, 71, 72, 73, 74, 75, 76, -1,
4265 -1, 79, 80, -1, -1, 83, 84, 85, 86, -1,
4266 -1, -1, -1, -1, -1, -1, -1, -1, -1, 97,
4267 98, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4268 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4269 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
4270 -1, 129, 130, 52, 53, -1, -1, 56, -1, 137,
4271 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
4272 69, 70, 71, 72, 73, 74, 75, 76, -1, -1,
4273 79, 80, -1, -1, 83, 84, 85, 86, -1, -1,
4274 -1, -1, -1, -1, -1, -1, -1, -1, 97, 98,
4275 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
4276 80, 81, 82, -1, -1, 85, 86, -1, -1, 118,
4277 119, 120, 121, 122, 123, 124, 125, 126, 127, -1,
4278 129, 130, -1, -1, -1, -1, -1, -1, 137, -1,
4279 -1, -1, -1, -1, -1, -1, 116, -1, 118, 119,
4280 120, 121, 122, 123, 124, 125, 126, 127, -1, -1,
4281 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4289 0, 145, 146, 0, 1, 3, 4, 5, 6, 7,
4290 11, 12, 16, 18, 19, 20, 21, 22, 23, 24,
4291 30, 31, 32, 33, 34, 35, 36, 39, 45, 46,
4292 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4293 57, 59, 60, 61, 62, 64, 65, 66, 68, 69,
4294 88, 91, 92, 94, 95, 97, 100, 101, 102, 103,
4295 104, 105, 106, 107, 108, 128, 129, 130, 147, 148,
4296 149, 156, 158, 159, 161, 162, 165, 166, 167, 169,
4297 170, 171, 173, 174, 184, 199, 218, 219, 220, 221,
4298 222, 223, 224, 225, 226, 227, 228, 255, 256, 270,
4299 271, 272, 273, 274, 275, 276, 279, 281, 282, 294,
4300 296, 297, 298, 299, 300, 301, 302, 303, 336, 347,
4301 149, 3, 4, 5, 6, 7, 8, 9, 10, 11,
4302 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
4303 22, 23, 24, 25, 26, 30, 31, 32, 33, 34,
4304 35, 36, 37, 38, 39, 45, 46, 47, 48, 49,
4305 50, 51, 52, 53, 56, 68, 69, 70, 71, 72,
4306 73, 74, 75, 76, 79, 80, 83, 84, 85, 86,
4307 97, 98, 118, 119, 120, 121, 122, 123, 124, 125,
4308 126, 127, 129, 130, 137, 177, 178, 179, 180, 182,
4309 183, 294, 296, 39, 58, 88, 91, 97, 98, 99,
4310 129, 166, 174, 184, 186, 191, 194, 196, 218, 299,
4311 300, 302, 303, 334, 335, 191, 191, 138, 192, 193,
4312 138, 188, 192, 138, 143, 341, 54, 179, 341, 150,
4313 132, 21, 22, 30, 31, 32, 165, 184, 218, 184,
4314 56, 1, 47, 91, 152, 153, 154, 156, 168, 169,
4315 347, 201, 202, 187, 196, 334, 347, 186, 333, 334,
4316 347, 46, 88, 128, 136, 173, 199, 218, 299, 300,
4317 303, 246, 247, 54, 55, 57, 177, 286, 295, 285,
4318 286, 287, 142, 277, 142, 283, 142, 280, 142, 284,
4319 298, 161, 184, 184, 141, 143, 340, 345, 346, 40,
4320 41, 42, 43, 44, 37, 38, 26, 132, 188, 192,
4321 261, 28, 253, 115, 136, 91, 97, 170, 115, 70,
4322 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
4323 81, 82, 85, 86, 116, 118, 119, 120, 121, 122,
4324 123, 124, 125, 126, 127, 87, 134, 135, 200, 159,
4325 160, 160, 205, 207, 160, 340, 346, 88, 167, 174,
4326 218, 234, 299, 300, 303, 52, 56, 85, 88, 175,
4327 176, 218, 299, 300, 303, 176, 33, 34, 35, 36,
4328 49, 50, 51, 52, 56, 138, 177, 301, 331, 87,
4329 135, 339, 261, 273, 89, 89, 136, 186, 56, 186,
4330 186, 186, 115, 90, 136, 195, 347, 87, 134, 135,
4331 89, 89, 136, 195, 191, 341, 342, 191, 190, 191,
4332 196, 334, 347, 159, 342, 159, 54, 65, 66, 157,
4333 138, 185, 132, 152, 87, 135, 89, 156, 155, 168,
4334 139, 340, 346, 342, 342, 159, 140, 136, 143, 344,
4335 136, 344, 133, 344, 341, 56, 298, 170, 172, 136,
4336 87, 134, 135, 248, 63, 109, 111, 112, 288, 112,
4337 288, 112, 67, 288, 112, 112, 278, 288, 112, 63,
4338 112, 112, 112, 278, 112, 63, 112, 70, 141, 149,
4339 160, 160, 160, 160, 156, 159, 159, 263, 262, 96,
4340 163, 254, 97, 161, 186, 196, 197, 198, 168, 136,
4341 173, 136, 158, 161, 174, 184, 186, 198, 184, 184,
4342 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
4343 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
4344 184, 184, 184, 184, 52, 53, 56, 182, 260, 337,
4345 338, 190, 52, 53, 56, 182, 259, 337, 151, 152,
4346 13, 230, 345, 230, 160, 160, 340, 17, 264, 56,
4347 87, 134, 135, 25, 159, 52, 56, 175, 1, 119,
4348 304, 345, 87, 134, 135, 214, 332, 215, 339, 52,
4349 56, 337, 161, 184, 161, 184, 181, 184, 186, 97,
4350 186, 194, 334, 52, 56, 190, 52, 56, 335, 342,
4351 139, 342, 136, 136, 342, 179, 204, 184, 147, 133,
4352 337, 337, 184, 132, 342, 154, 203, 334, 136, 172,
4353 52, 56, 190, 52, 56, 52, 54, 55, 56, 57,
4354 58, 70, 91, 97, 98, 99, 122, 125, 138, 251,
4355 308, 310, 311, 312, 313, 314, 315, 316, 319, 320,
4356 321, 322, 325, 326, 327, 328, 329, 290, 289, 142,
4357 288, 142, 142, 142, 184, 78, 120, 241, 242, 347,
4358 241, 164, 241, 186, 136, 342, 172, 136, 115, 44,
4359 341, 89, 89, 188, 192, 258, 341, 343, 89, 89,
4360 188, 192, 257, 10, 229, 8, 266, 347, 152, 13,
4361 152, 27, 231, 345, 231, 264, 196, 229, 52, 56,
4362 190, 52, 56, 209, 212, 345, 305, 211, 52, 56,
4363 175, 190, 151, 159, 138, 306, 307, 216, 188, 189,
4364 192, 347, 44, 179, 186, 195, 89, 89, 343, 89,
4365 89, 334, 159, 133, 147, 342, 344, 170, 343, 91,
4366 97, 235, 236, 237, 312, 310, 249, 115, 136, 309,
4367 186, 136, 330, 347, 52, 136, 330, 136, 309, 52,
4368 136, 309, 52, 291, 54, 55, 57, 293, 303, 238,
4369 240, 243, 312, 314, 315, 317, 318, 321, 323, 324,
4370 327, 329, 341, 152, 152, 241, 152, 97, 186, 172,
4371 184, 117, 161, 184, 161, 184, 163, 188, 140, 89,
4372 161, 184, 161, 184, 163, 189, 186, 198, 267, 347,
4373 15, 233, 347, 14, 232, 233, 233, 206, 208, 229,
4374 136, 230, 343, 160, 345, 160, 151, 343, 229, 342,
4375 310, 151, 310, 177, 261, 253, 184, 89, 136, 342,
4376 133, 237, 136, 312, 136, 342, 243, 250, 186, 308,
4377 313, 325, 327, 316, 321, 329, 314, 322, 327, 312,
4378 314, 292, 243, 120, 115, 136, 239, 88, 218, 136,
4379 330, 330, 136, 239, 136, 239, 141, 10, 133, 152,
4380 10, 186, 184, 161, 184, 90, 268, 347, 152, 9,
4381 269, 347, 160, 229, 229, 152, 152, 186, 152, 231,
4382 213, 345, 229, 342, 229, 345, 217, 342, 236, 136,
4383 97, 235, 139, 29, 113, 252, 136, 309, 136, 309,
4384 330, 136, 309, 136, 309, 309, 152, 120, 218, 238,
4385 324, 327, 56, 87, 317, 321, 314, 323, 327, 314,
4386 52, 244, 245, 311, 133, 88, 174, 218, 299, 300,
4387 303, 230, 152, 230, 229, 229, 233, 264, 265, 210,
4388 151, 306, 136, 236, 136, 312, 152, 152, 314, 327,
4389 314, 314, 110, 136, 239, 136, 239, 52, 56, 330,
4390 136, 239, 136, 239, 239, 136, 341, 56, 87, 134,
4391 135, 152, 152, 152, 229, 151, 236, 136, 10, 133,
4392 309, 136, 309, 309, 309, 314, 327, 314, 314, 245,
4393 52, 56, 190, 52, 56, 266, 232, 229, 229, 236,
4394 314, 239, 136, 239, 239, 239, 343, 309, 314, 239
4397 #define yyerrok (yyerrstatus = 0) 4398 #define yyclearin (yychar = YYEMPTY) 4399 #define YYEMPTY (-2) 4402 #define YYACCEPT goto yyacceptlab 4403 #define YYABORT goto yyabortlab 4404 #define YYERROR goto yyerrorlab 4414 #define YYFAIL goto yyerrlab 4422 #define YYRECOVERING() (!!yyerrstatus) 4424 #define YYBACKUP(Token, Value) \ 4426 if (yychar == YYEMPTY && yylen == 1) \ 4435 parser_yyerror (parser, YY_("syntax error: cannot back up")); \ 4442 #define YYERRCODE 256 4449 #define YYRHSLOC(Rhs, K) ((Rhs)[K]) 4450 #ifndef YYLLOC_DEFAULT 4451 # define YYLLOC_DEFAULT(Current, Rhs, N) \ 4455 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ 4456 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ 4457 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ 4458 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ 4462 (Current).first_line = (Current).last_line = \ 4463 YYRHSLOC (Rhs, 0).last_line; \ 4464 (Current).first_column = (Current).last_column = \ 4465 YYRHSLOC (Rhs, 0).last_column; \ 4473 #ifndef YY_LOCATION_PRINT 4474 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 4481 # define YYLEX yylex (&yylval, YYLEX_PARAM) 4483 # define YYLEX yylex (&yylval, parser) 4491 # define YYFPRINTF fprintf 4494 # define YYDPRINTF(Args) \ 4500 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 4504 YYFPRINTF (stderr, "%s ", Title); \ 4505 yy_symbol_print (stderr, \ 4506 Type, Value, parser); \ 4507 YYFPRINTF (stderr, "\n"); \ 4517 #if (defined __STDC__ || defined __C99__FUNC__ \ 4518 || defined __cplusplus || defined _MSC_VER) 4526 YYSTYPE const *
const yyvaluep;
4535 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
4551 #if (defined __STDC__ || defined __C99__FUNC__ \ 4552 || defined __cplusplus || defined _MSC_VER) 4560 YYSTYPE const *
const yyvaluep;
4578 #if (defined __STDC__ || defined __C99__FUNC__ \ 4579 || defined __cplusplus || defined _MSC_VER) 4590 for (; yybottom <= yytop; yybottom++)
4592 int yybot = *yybottom;
4598 # define YY_STACK_PRINT(Bottom, Top) \ 4601 yy_stack_print ((Bottom), (Top)); \ 4609 #if (defined __STDC__ || defined __C99__FUNC__ \ 4610 || defined __cplusplus || defined _MSC_VER) 4621 int yynrhs =
yyr2[yyrule];
4623 unsigned long int yylno =
yyrline[yyrule];
4624 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu):\n",
4627 for (yyi = 0; yyi < yynrhs; yyi++)
4631 &(yyvsp[(yyi + 1) - (yynrhs)])
4637 # define YY_REDUCE_PRINT(Rule) \ 4640 yy_reduce_print (yyvsp, Rule, parser); \ 4649 # define YYDPRINTF(Args) 4650 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) 4651 # define YY_STACK_PRINT(Bottom, Top) 4652 # define YY_REDUCE_PRINT(Rule) 4658 # define YYINITDEPTH 200 4669 # define YYMAXDEPTH 10000 4676 # if defined __GLIBC__ && defined _STRING_H 4677 # define yystrlen strlen 4680 #if (defined __STDC__ || defined __C99__FUNC__ \ 4681 || defined __cplusplus || defined _MSC_VER) 4691 for (yylen = 0; yystr[yylen]; yylen++)
4699 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE 4700 # define yystpcpy stpcpy 4704 #if (defined __STDC__ || defined __C99__FUNC__ \ 4705 || defined __cplusplus || defined _MSC_VER) 4707 yystpcpy (
char *yydest,
const char *yysrc)
4716 const char *yys = yysrc;
4718 while ((*yyd++ = *yys++) !=
'\0')
4740 char const *yyp = yystr;
4747 goto do_not_strip_quotes;
4751 goto do_not_strip_quotes;
4764 do_not_strip_quotes: ;
4770 return yystpcpy (yyres, yystr) - yyres;
4789 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
4791 const char *yyformat = 0;
4793 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
4827 int yyn =
yypact[*yyssp];
4828 yyarg[yycount++] =
yytname[yytoken];
4834 int yyxbegin = yyn < 0 ? -yyn : 0;
4836 int yychecklim =
YYLAST - yyn + 1;
4840 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
4844 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
4850 yyarg[yycount++] =
yytname[yyx];
4852 if (! (yysize <= yysize1
4862 # define YYCASE_(N, S) \ 4867 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
4868 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
4869 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
4870 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
4871 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
4875 yysize1 = yysize +
yystrlen (yyformat);
4880 if (*yymsg_alloc < yysize)
4882 *yymsg_alloc = 2 * yysize;
4883 if (! (yysize <= *yymsg_alloc
4895 while ((*yyp = *yyformat) !=
'\0')
4896 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
4916 #if (defined __STDC__ || defined __C99__FUNC__ \ 4917 || defined __cplusplus || defined _MSC_VER) 4946 #ifdef YYPARSE_PARAM 4947 #if defined __STDC__ || defined __cplusplus 4948 int yyparse (
void *YYPARSE_PARAM);
4953 #if defined __STDC__ || defined __cplusplus 4965 #ifdef YYPARSE_PARAM 4966 #if (defined __STDC__ || defined __C99__FUNC__ \ 4967 || defined __cplusplus || defined _MSC_VER) 4973 void *YYPARSE_PARAM;
4976 #if (defined __STDC__ || defined __C99__FUNC__ \ 4977 || defined __cplusplus || defined _MSC_VER) 5030 char *yymsg = yymsgbuf;
5031 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
5034 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) 5045 YYDPRINTF ((stderr,
"Starting parse\n"));
5072 if (yyss + yystacksize - 1 <= yyssp)
5075 YYSIZE_T yysize = yyssp - yyss + 1;
5089 yyoverflow (
YY_(
"memory exhausted"),
5090 &yyss1, yysize *
sizeof (*yyssp),
5091 &yyvs1, yysize *
sizeof (*yyvsp),
5098 # ifndef YYSTACK_RELOCATE 5099 goto yyexhaustedlab;
5103 goto yyexhaustedlab;
5113 goto yyexhaustedlab;
5116 # undef YYSTACK_RELOCATE 5123 yyssp = yyss + yysize - 1;
5124 yyvsp = yyvs + yysize - 1;
5126 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
5127 (
unsigned long int) yystacksize));
5129 if (yyss + yystacksize - 1 <= yyssp)
5133 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
5158 YYDPRINTF ((stderr,
"Reading a token: "));
5162 if (yychar <=
YYEOF)
5164 yychar = yytoken =
YYEOF;
5165 YYDPRINTF ((stderr,
"Now at end of input.\n"));
5229 yyval = yyvsp[1-yylen];
5259 NODE *node = (yyvsp[(2) - (2)].
node);
5260 while (node->nd_next) {
5261 node = node->nd_next;
5285 (yyval.
node) = (yyvsp[(1) - (2)].node);
5357 (yyvsp[(4) - (5)].node));
5373 (yyval.
node) = (yyvsp[(1) - (4)].node);
5374 if ((yyvsp[(2) - (4)].node)) {
5375 (yyval.
node) =
NEW_RESCUE((yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].
node), (yyvsp[(3) - (4)].node));
5377 else if ((yyvsp[(3) - (4)].node)) {
5378 rb_warn0(
"else without rescue is useless");
5381 if ((yyvsp[(4) - (4)].node)) {
5410 (yyval.
node) = (yyvsp[(1) - (2)].node);
5417 #line 1003 "parse.y" 5431 #line 1012 "parse.y" 5444 #line 1020 "parse.y" 5457 #line 1028 "parse.y" 5466 #line 1034 "parse.y" 5468 (yyval.
node) = (yyvsp[(1) - (1)].node);
5475 #line 1038 "parse.y" 5477 yyerror(
"BEGIN is permitted only at toplevel");
5488 #line 1046 "parse.y" 5492 (yyvsp[(4) - (5)].node));
5505 #line 1058 "parse.y" 5512 #line 1059 "parse.y" 5525 #line 1067 "parse.y" 5538 #line 1075 "parse.y" 5543 buf[1] = (char)(yyvsp[(3) - (3)].node)->nd_nth;
5554 #line 1086 "parse.y" 5557 yyerror(
"can't make alias for the number variables");
5569 #line 1096 "parse.y" 5572 (yyval.
node) = (yyvsp[(2) - (2)].node);
5582 #line 1104 "parse.y" 5596 #line 1113 "parse.y" 5610 #line 1122 "parse.y" 5613 if ((yyvsp[(1) - (3)].node) &&
nd_type((yyvsp[(1) - (3)].node)) ==
NODE_BEGIN) {
5617 (yyval.
node) =
NEW_WHILE(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node), 1);
5628 #line 1135 "parse.y" 5631 if ((yyvsp[(1) - (3)].node) &&
nd_type((yyvsp[(1) - (3)].node)) ==
NODE_BEGIN) {
5632 (yyval.
node) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node)->nd_body, 0);
5635 (yyval.
node) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node), 1);
5646 #line 1148 "parse.y" 5660 #line 1157 "parse.y" 5663 rb_warn0(
"END in method; use at_exit");
5667 NODE_SCOPE, 0 , (yyvsp[(3) - (4)].node) , 0 ));
5677 #line 1170 "parse.y" 5681 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5682 (yyval.
node) = (yyvsp[(1) - (3)].node);
5692 #line 1180 "parse.y" 5695 (yyval.
node) =
new_op_assign((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].node));
5702 #line 1185 "parse.y" 5708 if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].
node) =
NEW_ZARRAY();
5709 args =
arg_concat((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
5710 if ((yyvsp[(5) - (6)].
id) ==
tOROP) {
5711 (yyvsp[(5) - (6)].
id) = 0;
5713 else if ((yyvsp[(5) - (6)].
id) ==
tANDOP) {
5714 (yyvsp[(5) - (6)].
id) = 1;
5728 #line 1206 "parse.y" 5731 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
5738 #line 1211 "parse.y" 5741 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
5748 #line 1216 "parse.y" 5763 #line 1226 "parse.y" 5766 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_intern(
"::"), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
5773 #line 1231 "parse.y" 5788 #line 1241 "parse.y" 5802 #line 1250 "parse.y" 5805 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5806 (yyval.
node) = (yyvsp[(1) - (3)].node);
5816 #line 1262 "parse.y" 5830 #line 1271 "parse.y" 5844 #line 1284 "parse.y" 5857 #line 1292 "parse.y" 5870 #line 1300 "parse.y" 5883 #line 1308 "parse.y" 5896 #line 1319 "parse.y" 5900 (yyval.
node) = (yyvsp[(1) - (1)].node);
5911 #line 1336 "parse.y" 5914 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
5925 #line 1347 "parse.y" 5938 #line 1357 "parse.y" 5953 #line 1369 "parse.y" 5966 #line 1379 "parse.y" 5969 (yyval.
node) = (yyvsp[(1) - (2)].node);
5980 #line 1388 "parse.y" 5984 (yyvsp[(1) - (3)].
node)->
nd_args = (yyvsp[(2) - (3)].node);
5985 (yyvsp[(3) - (3)].
node)->
nd_iter = (yyvsp[(1) - (3)].node);
5986 (yyval.
node) = (yyvsp[(3) - (3)].node);
5998 #line 1401 "parse.y" 6001 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
6012 #line 1410 "parse.y" 6016 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
6017 (yyval.
node) = (yyvsp[(5) - (5)].node);
6029 #line 1422 "parse.y" 6032 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
6043 #line 1431 "parse.y" 6047 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
6048 (yyval.
node) = (yyvsp[(5) - (5)].node);
6060 #line 1443 "parse.y" 6074 #line 1452 "parse.y" 6088 #line 1461 "parse.y" 6101 #line 1469 "parse.y" 6114 #line 1477 "parse.y" 6127 #line 1488 "parse.y" 6130 (yyval.
node) = (yyvsp[(2) - (3)].node);
6140 #line 1499 "parse.y" 6153 #line 1509 "parse.y" 6166 #line 1517 "parse.y" 6179 #line 1525 "parse.y" 6192 #line 1533 "parse.y" 6206 #line 1542 "parse.y" 6219 #line 1550 "parse.y" 6233 #line 1559 "parse.y" 6246 #line 1567 "parse.y" 6260 #line 1576 "parse.y" 6273 #line 1584 "parse.y" 6287 #line 1596 "parse.y" 6290 (yyval.
node) = (yyvsp[(2) - (3)].node);
6300 #line 1606 "parse.y" 6313 #line 1614 "parse.y" 6326 #line 1624 "parse.y" 6339 #line 1632 "parse.y" 6352 #line 1642 "parse.y" 6361 #line 1646 "parse.y" 6370 #line 1650 "parse.y" 6373 (yyval.
node) =
aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node));
6383 #line 1658 "parse.y" 6386 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6396 #line 1666 "parse.y" 6399 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6409 #line 1674 "parse.y" 6412 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6422 #line 1682 "parse.y" 6426 yyerror(
"dynamic constant assignment");
6439 #line 1694 "parse.y" 6443 yyerror(
"dynamic constant assignment");
6454 #line 1704 "parse.y" 6469 #line 1716 "parse.y" 6483 #line 1725 "parse.y" 6497 #line 1734 "parse.y" 6500 (yyval.
node) =
aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node));
6510 #line 1742 "parse.y" 6513 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6523 #line 1750 "parse.y" 6526 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6536 #line 1758 "parse.y" 6539 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6549 #line 1766 "parse.y" 6553 yyerror(
"dynamic constant assignment");
6567 #line 1779 "parse.y" 6571 yyerror(
"dynamic constant assignment");
6585 #line 1792 "parse.y" 6599 #line 1803 "parse.y" 6602 yyerror(
"class/module name must be CONSTANT");
6612 #line 1814 "parse.y" 6625 #line 1822 "parse.y" 6638 #line 1830 "parse.y" 6651 #line 1843 "parse.y" 6654 (yyval.
id) = (yyvsp[(1) - (1)].
id);
6661 #line 1848 "parse.y" 6665 (yyval.
id) = (yyvsp[(1) - (1)].
id);
6675 #line 1863 "parse.y" 6688 #line 1874 "parse.y" 6701 #line 1881 "parse.y" 6708 #line 1882 "parse.y" 6721 #line 1891 "parse.y" 6728 #line 1892 "parse.y" 6735 #line 1893 "parse.y" 6742 #line 1894 "parse.y" 6749 #line 1895 "parse.y" 6756 #line 1896 "parse.y" 6763 #line 1897 "parse.y" 6770 #line 1898 "parse.y" 6777 #line 1899 "parse.y" 6784 #line 1900 "parse.y" 6791 #line 1901 "parse.y" 6798 #line 1902 "parse.y" 6805 #line 1903 "parse.y" 6812 #line 1904 "parse.y" 6819 #line 1905 "parse.y" 6826 #line 1906 "parse.y" 6833 #line 1907 "parse.y" 6840 #line 1908 "parse.y" 6847 #line 1909 "parse.y" 6854 #line 1910 "parse.y" 6861 #line 1911 "parse.y" 6868 #line 1912 "parse.y" 6875 #line 1913 "parse.y" 6882 #line 1914 "parse.y" 6889 #line 1915 "parse.y" 6896 #line 1916 "parse.y" 6903 #line 1917 "parse.y" 6910 #line 1918 "parse.y" 6917 #line 1919 "parse.y" 6924 #line 1920 "parse.y" 6931 #line 1938 "parse.y" 6945 #line 1947 "parse.y" 6960 #line 1957 "parse.y" 6963 (yyval.
node) =
new_op_assign((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].node));
6970 #line 1962 "parse.y" 6978 (yyval.
node) =
new_op_assign((yyvsp[(1) - (5)].node), (yyvsp[(2) - (5)].
id), (yyvsp[(3) - (5)].node));
6985 #line 1972 "parse.y" 6991 if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].
node) =
NEW_ZARRAY();
6993 args =
NEW_ARGSCAT((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
6996 args =
arg_concat((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
6998 if ((yyvsp[(5) - (6)].
id) ==
tOROP) {
6999 (yyvsp[(5) - (6)].
id) = 0;
7001 else if ((yyvsp[(5) - (6)].
id) ==
tANDOP) {
7002 (yyvsp[(5) - (6)].
id) = 1;
7016 #line 1998 "parse.y" 7019 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
7026 #line 2003 "parse.y" 7029 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
7036 #line 2008 "parse.y" 7039 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_intern(
"::"), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
7046 #line 2013 "parse.y" 7061 #line 2023 "parse.y" 7076 #line 2033 "parse.y" 7092 #line 2044 "parse.y" 7111 #line 2058 "parse.y" 7130 #line 2072 "parse.y" 7143 #line 2080 "parse.y" 7156 #line 2088 "parse.y" 7169 #line 2096 "parse.y" 7182 #line 2104 "parse.y" 7195 #line 2112 "parse.y" 7208 #line 2120 "parse.y" 7222 #line 2129 "parse.y" 7235 #line 2137 "parse.y" 7248 #line 2145 "parse.y" 7261 #line 2153 "parse.y" 7274 #line 2161 "parse.y" 7287 #line 2169 "parse.y" 7300 #line 2177 "parse.y" 7313 #line 2185 "parse.y" 7326 #line 2193 "parse.y" 7339 #line 2201 "parse.y" 7352 #line 2209 "parse.y" 7365 #line 2217 "parse.y" 7378 #line 2225 "parse.y" 7391 #line 2233 "parse.y" 7407 #line 2244 "parse.y" 7420 #line 2252 "parse.y" 7433 #line 2260 "parse.y" 7446 #line 2268 "parse.y" 7459 #line 2276 "parse.y" 7472 #line 2284 "parse.y" 7485 #line 2292 "parse.y" 7498 #line 2299 "parse.y" 7505 #line 2300 "parse.y" 7520 #line 2310 "parse.y" 7524 (yyval.
node) =
NEW_IF(
cond((yyvsp[(1) - (6)].node)), (yyvsp[(3) - (6)].
node), (yyvsp[(6) - (6)].node));
7535 #line 2320 "parse.y" 7537 (yyval.
node) = (yyvsp[(1) - (1)].node);
7544 #line 2326 "parse.y" 7548 (yyval.
node) = (yyvsp[(1) - (1)].node);
7559 #line 2339 "parse.y" 7561 (yyval.
node) = (yyvsp[(1) - (2)].node);
7568 #line 2343 "parse.y" 7581 #line 2351 "parse.y" 7594 #line 2361 "parse.y" 7597 (yyval.
node) = (yyvsp[(2) - (3)].node);
7607 #line 2377 "parse.y" 7609 (yyval.
node) = (yyvsp[(1) - (2)].node);
7616 #line 2381 "parse.y" 7629 #line 2389 "parse.y" 7642 #line 2399 "parse.y" 7656 #line 2408 "parse.y" 7669 #line 2416 "parse.y" 7684 #line 2426 "parse.y" 7698 #line 2443 "parse.y" 7708 #line 2448 "parse.y" 7712 (yyval.
node) = (yyvsp[(2) - (2)].node);
7719 #line 2456 "parse.y" 7732 #line 2466 "parse.y" 7734 (yyval.
node) = (yyvsp[(2) - (2)].node);
7741 #line 2470 "parse.y" 7750 #line 2476 "parse.y" 7763 #line 2484 "parse.y" 7776 #line 2492 "parse.y" 7780 if ((n1 =
splat_array((yyvsp[(1) - (3)].node))) != 0) {
7795 #line 2506 "parse.y" 7814 #line 2526 "parse.y" 7818 if ((n1 =
splat_array((yyvsp[(1) - (3)].node))) != 0) {
7833 #line 2540 "parse.y" 7838 (n1 =
splat_array((yyvsp[(1) - (4)].node))) != 0) {
7853 #line 2555 "parse.y" 7866 #line 2575 "parse.y" 7879 #line 2583 "parse.y" 7893 #line 2593 "parse.y" 7897 if ((yyvsp[(3) - (4)].node) ==
NULL) {
7903 nd_set_line((yyvsp[(3) - (4)].node), (yyvsp[(2) - (4)].num));
7916 #line 2610 "parse.y" 7923 #line 2611 "parse.y" 7936 #line 2619 "parse.y" 7946 #line 2623 "parse.y" 7953 #line 2624 "parse.y" 7957 (yyval.
node) = (yyvsp[(3) - (5)].node);
7967 #line 2633 "parse.y" 7970 (yyval.
node) = (yyvsp[(2) - (3)].node);
7980 #line 2641 "parse.y" 7993 #line 2649 "parse.y" 8006 #line 2657 "parse.y" 8009 if ((yyvsp[(2) - (3)].node) == 0) {
8013 (yyval.
node) = (yyvsp[(2) - (3)].node);
8024 #line 2670 "parse.y" 8037 #line 2678 "parse.y" 8050 #line 2686 "parse.y" 8063 #line 2694 "parse.y" 8076 #line 2702 "parse.y" 8089 #line 2709 "parse.y" 8096 #line 2710 "parse.y" 8111 #line 2720 "parse.y" 8124 #line 2728 "parse.y" 8137 #line 2736 "parse.y" 8140 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
8141 (yyval.
node) = (yyvsp[(2) - (2)].node);
8152 #line 2747 "parse.y" 8156 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
8157 (yyval.
node) = (yyvsp[(2) - (2)].node);
8167 #line 2757 "parse.y" 8169 (yyval.
node) = (yyvsp[(2) - (2)].node);
8176 #line 2764 "parse.y" 8179 (yyval.
node) =
NEW_IF(
cond((yyvsp[(2) - (6)].node)), (yyvsp[(4) - (6)].node), (yyvsp[(5) - (6)].
node));
8190 #line 2776 "parse.y" 8193 (yyval.
node) =
NEW_UNLESS(
cond((yyvsp[(2) - (6)].node)), (yyvsp[(4) - (6)].
node), (yyvsp[(5) - (6)].node));
8204 #line 2784 "parse.y" 8211 #line 2784 "parse.y" 8218 #line 2787 "parse.y" 8232 #line 2795 "parse.y" 8239 #line 2795 "parse.y" 8246 #line 2798 "parse.y" 8260 #line 2809 "parse.y" 8274 #line 2818 "parse.y" 8287 #line 2826 "parse.y" 8294 #line 2828 "parse.y" 8301 #line 2831 "parse.y" 8346 m->nd_next = (yyvsp[(2) - (9)].
node);
8355 tbl[0] = 1; tbl[1] =
id;
8356 (yyval.
node) =
NEW_FOR(0, (yyvsp[(5) - (9)].node), scope);
8367 #line 2892 "parse.y" 8370 yyerror(
"class definition in method body");
8382 #line 2903 "parse.y" 8385 (yyval.
node) =
NEW_CLASS((yyvsp[(2) - (6)].node), (yyvsp[(5) - (6)].
node), (yyvsp[(3) - (6)].node));
8397 #line 2913 "parse.y" 8407 #line 2918 "parse.y" 8418 #line 2925 "parse.y" 8435 #line 2937 "parse.y" 8438 yyerror(
"module definition in method body");
8450 #line 2948 "parse.y" 8465 #line 2958 "parse.y" 8477 #line 2967 "parse.y" 8496 #line 2980 "parse.y" 8503 #line 2981 "parse.y" 8514 #line 2989 "parse.y" 8519 (yyval.
node) =
NEW_DEFS((yyvsp[(2) - (9)].node), (yyvsp[(5) - (9)].
id), (yyvsp[(7) - (9)].node), body);
8532 #line 3002 "parse.y" 8545 #line 3010 "parse.y" 8558 #line 3018 "parse.y" 8571 #line 3026 "parse.y" 8584 #line 3036 "parse.y" 8588 (yyval.
node) = (yyvsp[(1) - (1)].node);
8599 #line 3048 "parse.y" 8608 #line 3054 "parse.y" 8617 #line 3060 "parse.y" 8626 #line 3066 "parse.y" 8635 #line 3072 "parse.y" 8644 #line 3078 "parse.y" 8653 #line 3084 "parse.y" 8662 #line 3090 "parse.y" 8671 #line 3096 "parse.y" 8680 #line 3102 "parse.y" 8693 #line 3112 "parse.y" 8702 #line 3142 "parse.y" 8705 (yyval.
node) =
NEW_IF(
cond((yyvsp[(2) - (5)].node)), (yyvsp[(4) - (5)].
node), (yyvsp[(5) - (5)].node));
8716 #line 3154 "parse.y" 8719 (yyval.
node) = (yyvsp[(2) - (2)].node);
8729 #line 3168 "parse.y" 8742 #line 3176 "parse.y" 8745 (yyval.
node) = (yyvsp[(2) - (3)].node);
8755 #line 3186 "parse.y" 8768 #line 3194 "parse.y" 8781 #line 3204 "parse.y" 8794 #line 3212 "parse.y" 8808 #line 3221 "parse.y" 8822 #line 3230 "parse.y" 8835 #line 3238 "parse.y" 8848 #line 3246 "parse.y" 8862 #line 3255 "parse.y" 8879 #line 3267 "parse.y" 8892 #line 3275 "parse.y" 8905 #line 3286 "parse.y" 8907 (yyval.
node) =
new_args_tail((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].
id));
8914 #line 3290 "parse.y" 8923 #line 3294 "parse.y" 8932 #line 3298 "parse.y" 8941 #line 3304 "parse.y" 8943 (yyval.
node) = (yyvsp[(2) - (2)].node);
8950 #line 3308 "parse.y" 8959 #line 3314 "parse.y" 8961 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), (yyvsp[(5) - (6)].
id),
Qnone, (yyvsp[(6) - (6)].
node));
8968 #line 3318 "parse.y" 8970 (yyval.
node) =
new_args((yyvsp[(1) - (8)].node), (yyvsp[(3) - (8)].
node), (yyvsp[(5) - (8)].
id), (yyvsp[(7) - (8)].
node), (yyvsp[(8) - (8)].node));
8977 #line 3322 "parse.y" 8986 #line 3326 "parse.y" 8988 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node),
Qnone, (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
8995 #line 3330 "parse.y" 9004 #line 3334 "parse.y" 9017 #line 3342 "parse.y" 9019 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node),
Qnone, (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
9026 #line 3346 "parse.y" 9035 #line 3350 "parse.y" 9044 #line 3354 "parse.y" 9046 (yyval.
node) =
new_args(
Qnone, (yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
9053 #line 3358 "parse.y" 9062 #line 3362 "parse.y" 9071 #line 3366 "parse.y" 9080 #line 3370 "parse.y" 9089 #line 3374 "parse.y" 9098 #line 3381 "parse.y" 9107 #line 3387 "parse.y" 9121 #line 3396 "parse.y" 9135 #line 3405 "parse.y" 9138 (yyval.
node) = (yyvsp[(2) - (4)].node);
9148 #line 3416 "parse.y" 9157 #line 3420 "parse.y" 9170 #line 3446 "parse.y" 9183 #line 3454 "parse.y" 9192 #line 3459 "parse.y" 9201 #line 3462 "parse.y" 9211 #line 3467 "parse.y" 9220 #line 3470 "parse.y" 9230 #line 3475 "parse.y" 9248 #line 3490 "parse.y" 9251 (yyval.
node) = (yyvsp[(2) - (4)].node);
9261 #line 3498 "parse.y" 9263 (yyval.
node) = (yyvsp[(1) - (1)].node);
9270 #line 3504 "parse.y" 9272 (yyval.
node) = (yyvsp[(2) - (3)].node);
9279 #line 3508 "parse.y" 9281 (yyval.
node) = (yyvsp[(2) - (3)].node);
9288 #line 3514 "parse.y" 9300 #line 3523 "parse.y" 9315 #line 3535 "parse.y" 9324 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
9325 (yyval.
node) = (yyvsp[(2) - (2)].node);
9336 #line 3551 "parse.y" 9339 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
9350 #line 3560 "parse.y" 9354 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
9355 (yyval.
node) = (yyvsp[(5) - (5)].node);
9367 #line 3572 "parse.y" 9371 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
9372 (yyval.
node) = (yyvsp[(5) - (5)].node);
9384 #line 3586 "parse.y" 9387 (yyval.
node) = (yyvsp[(1) - (2)].node);
9398 #line 3595 "parse.y" 9409 #line 3601 "parse.y" 9412 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(5) - (5)].node));
9424 #line 3611 "parse.y" 9435 #line 3617 "parse.y" 9438 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(5) - (5)].node));
9450 #line 3627 "parse.y" 9453 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id), 0);
9463 #line 3635 "parse.y" 9474 #line 3641 "parse.y" 9490 #line 3652 "parse.y" 9501 #line 3658 "parse.y" 9517 #line 3669 "parse.y" 9530 #line 3677 "parse.y" 9543 #line 3685 "parse.y" 9546 if ((yyvsp[(1) - (4)].node) &&
nd_type((yyvsp[(1) - (4)].node)) ==
NODE_SELF)
9549 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node),
tAREF, (yyvsp[(3) - (4)].node));
9560 #line 3699 "parse.y" 9573 #line 3708 "parse.y" 9588 #line 3718 "parse.y" 9601 #line 3727 "parse.y" 9616 #line 3741 "parse.y" 9619 (yyval.
node) =
NEW_WHEN((yyvsp[(2) - (5)].node), (yyvsp[(4) - (5)].
node), (yyvsp[(5) - (5)].node));
9629 #line 3757 "parse.y" 9632 if ((yyvsp[(3) - (6)].node)) {
9636 (yyval.
node) =
NEW_RESBODY((yyvsp[(2) - (6)].node), (yyvsp[(5) - (6)].
node), (yyvsp[(6) - (6)].node));
9651 #line 3777 "parse.y" 9664 #line 3785 "parse.y" 9677 #line 3796 "parse.y" 9679 (yyval.
node) = (yyvsp[(2) - (2)].node);
9686 #line 3803 "parse.y" 9689 (yyval.
node) = (yyvsp[(2) - (2)].node);
9699 #line 3815 "parse.y" 9712 #line 3826 "parse.y" 9715 NODE *node = (yyvsp[(1) - (1)].
node);
9722 (yyval.
node) = node;
9732 #line 3845 "parse.y" 9745 #line 3855 "parse.y" 9748 (yyval.
node) = (yyvsp[(2) - (3)].node);
9758 #line 3865 "parse.y" 9761 NODE *node = (yyvsp[(2) - (3)].
node);
9778 (yyval.
node) = node;
9788 #line 3892 "parse.y" 9792 NODE *node = (yyvsp[(2) - (3)].
node);
9800 VALUE src = node->nd_lit;
9820 VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
9826 prev->nd_next =
list->nd_next;
9839 if (!node->nd_next) {
9840 VALUE src = node->nd_lit;
9846 (yyval.
node) = node;
9856 #line 3957 "parse.y" 9870 #line 3966 "parse.y" 9873 (yyval.
node) = (yyvsp[(2) - (3)].node);
9883 #line 3976 "parse.y" 9896 #line 3984 "parse.y" 9909 #line 4002 "parse.y" 9922 #line 4012 "parse.y" 9936 #line 4021 "parse.y" 9939 (yyval.
node) = (yyvsp[(2) - (3)].node);
9949 #line 4031 "parse.y" 9962 #line 4039 "parse.y" 9983 #line 4057 "parse.y" 9997 #line 4066 "parse.y" 10000 (yyval.
node) = (yyvsp[(2) - (3)].node);
10010 #line 4076 "parse.y" 10024 #line 4085 "parse.y" 10027 (yyval.
node) = (yyvsp[(2) - (3)].node);
10037 #line 4095 "parse.y" 10050 #line 4103 "parse.y" 10063 #line 4113 "parse.y" 10076 #line 4121 "parse.y" 10093 #line 4135 "parse.y" 10106 #line 4143 "parse.y" 10119 #line 4153 "parse.y" 10132 #line 4161 "parse.y" 10145 #line 4171 "parse.y" 10158 #line 4179 "parse.y" 10190 #line 4209 "parse.y" 10201 #line 4215 "parse.y" 10216 #line 4225 "parse.y" 10228 #line 4231 "parse.y" 10239 #line 4236 "parse.y" 10249 #line 4241 "parse.y" 10256 if ((yyvsp[(5) - (6)].node)) (yyvsp[(5) - (6)].node)->flags &= ~
NODE_FL_NEWLINE;
10267 #line 4256 "parse.y" 10280 #line 4264 "parse.y" 10293 #line 4272 "parse.y" 10306 #line 4283 "parse.y" 10310 (yyval.
id) = (yyvsp[(2) - (2)].
id);
10320 #line 4300 "parse.y" 10334 #line 4312 "parse.y" 10347 #line 4334 "parse.y" 10354 #line 4335 "parse.y" 10361 #line 4336 "parse.y" 10368 #line 4337 "parse.y" 10375 #line 4338 "parse.y" 10382 #line 4339 "parse.y" 10389 #line 4340 "parse.y" 10396 #line 4344 "parse.y" 10414 #line 4357 "parse.y" 10427 #line 4367 "parse.y" 10440 #line 4375 "parse.y" 10453 #line 4389 "parse.y" 10466 #line 4397 "parse.y" 10476 #line 4402 "parse.y" 10478 (yyval.
node) = (yyvsp[(3) - (4)].node);
10485 #line 4406 "parse.y" 10500 #line 4418 "parse.y" 10503 (yyval.
node) = (yyvsp[(2) - (3)].node);
10515 #line 4427 "parse.y" 10525 #line 4432 "parse.y" 10528 (yyval.
node) = (yyvsp[(2) - (3)].node);
10537 #line 4441 "parse.y" 10539 (yyval.
node) =
new_args_tail((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].
id));
10546 #line 4445 "parse.y" 10555 #line 4449 "parse.y" 10564 #line 4453 "parse.y" 10573 #line 4459 "parse.y" 10575 (yyval.
node) = (yyvsp[(2) - (2)].node);
10582 #line 4463 "parse.y" 10591 #line 4469 "parse.y" 10593 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), (yyvsp[(5) - (6)].
id),
Qnone, (yyvsp[(6) - (6)].
node));
10600 #line 4473 "parse.y" 10602 (yyval.
node) =
new_args((yyvsp[(1) - (8)].node), (yyvsp[(3) - (8)].
node), (yyvsp[(5) - (8)].
id), (yyvsp[(7) - (8)].
node), (yyvsp[(8) - (8)].node));
10609 #line 4477 "parse.y" 10618 #line 4481 "parse.y" 10620 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node),
Qnone, (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
10627 #line 4485 "parse.y" 10636 #line 4489 "parse.y" 10638 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node),
Qnone, (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
10645 #line 4493 "parse.y" 10654 #line 4497 "parse.y" 10663 #line 4501 "parse.y" 10665 (yyval.
node) =
new_args(
Qnone, (yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
10672 #line 4505 "parse.y" 10681 #line 4509 "parse.y" 10690 #line 4513 "parse.y" 10699 #line 4517 "parse.y" 10708 #line 4521 "parse.y" 10717 #line 4525 "parse.y" 10727 #line 4532 "parse.y" 10730 yyerror(
"formal argument cannot be a constant");
10741 #line 4541 "parse.y" 10744 yyerror(
"formal argument cannot be an instance variable");
10755 #line 4550 "parse.y" 10758 yyerror(
"formal argument cannot be a global variable");
10769 #line 4559 "parse.y" 10772 yyerror(
"formal argument cannot be a class variable");
10783 #line 4571 "parse.y" 10786 (yyval.
id) = (yyvsp[(1) - (1)].
id);
10793 #line 4578 "parse.y" 10807 #line 4587 "parse.y" 10829 #line 4613 "parse.y" 10832 (yyval.
node) = (yyvsp[(1) - (3)].node);
10845 #line 4627 "parse.y" 10848 (yyval.
id) = (yyvsp[(1) - (1)].
id);
10855 #line 4634 "parse.y" 10869 #line 4643 "parse.y" 10883 #line 4654 "parse.y" 10897 #line 4663 "parse.y" 10911 #line 4674 "parse.y" 10914 (yyval.
node) = (yyvsp[(1) - (1)].node);
10924 #line 4682 "parse.y" 10927 NODE *kws = (yyvsp[(1) - (3)].
node);
10929 while (kws->nd_next) {
10930 kws = kws->nd_next;
10932 kws->nd_next = (yyvsp[(3) - (3)].
node);
10933 (yyval.
node) = (yyvsp[(1) - (3)].node);
10943 #line 4699 "parse.y" 10946 (yyval.
node) = (yyvsp[(1) - (1)].node);
10956 #line 4707 "parse.y" 10959 NODE *kws = (yyvsp[(1) - (3)].
node);
10961 while (kws->nd_next) {
10962 kws = kws->nd_next;
10964 kws->nd_next = (yyvsp[(3) - (3)].
node);
10965 (yyval.
node) = (yyvsp[(1) - (3)].node);
10975 #line 4727 "parse.y" 10978 (yyval.
id) = (yyvsp[(2) - (2)].
id);
10985 #line 4732 "parse.y" 10994 #line 4738 "parse.y" 11009 #line 4750 "parse.y" 11024 #line 4762 "parse.y" 11027 (yyval.
node) = (yyvsp[(1) - (1)].node);
11037 #line 4770 "parse.y" 11040 NODE *opts = (yyvsp[(1) - (3)].
node);
11042 while (opts->nd_next) {
11043 opts = opts->nd_next;
11045 opts->nd_next = (yyvsp[(3) - (3)].
node);
11046 (yyval.
node) = (yyvsp[(1) - (3)].node);
11056 #line 4786 "parse.y" 11059 (yyval.
node) = (yyvsp[(1) - (1)].node);
11069 #line 4794 "parse.y" 11072 NODE *opts = (yyvsp[(1) - (3)].
node);
11074 while (opts->nd_next) {
11075 opts = opts->nd_next;
11077 opts->nd_next = (yyvsp[(3) - (3)].
node);
11078 (yyval.
node) = (yyvsp[(1) - (3)].node);
11088 #line 4814 "parse.y" 11092 yyerror(
"rest argument must be local variable");
11096 (yyval.
id) = (yyvsp[(2) - (2)].
id);
11106 #line 4827 "parse.y" 11120 #line 4842 "parse.y" 11124 yyerror(
"block argument must be local variable");
11126 yyerror(
"duplicated block argument name");
11130 (yyval.
id) = (yyvsp[(2) - (2)].
id);
11140 #line 4859 "parse.y" 11142 (yyval.
id) = (yyvsp[(2) - (2)].
id);
11149 #line 4863 "parse.y" 11162 #line 4873 "parse.y" 11166 (yyval.
node) = (yyvsp[(1) - (1)].node);
11177 #line 4882 "parse.y" 11184 #line 4883 "parse.y" 11187 if ((yyvsp[(3) - (4)].node) == 0) {
11188 yyerror(
"can't define singleton method for ().");
11191 switch (
nd_type((yyvsp[(3) - (4)].node))) {
11200 yyerror(
"can't define singleton method for literals");
11206 (yyval.
node) = (yyvsp[(3) - (4)].node);
11216 #line 4913 "parse.y" 11219 (yyval.
node) = (yyvsp[(1) - (2)].node);
11229 #line 4930 "parse.y" 11242 #line 4940 "parse.y" 11259 #line 4952 "parse.y" 11272 #line 4960 "parse.y" 11285 #line 5018 "parse.y" 11292 #line 5023 "parse.y" 11299 #line 5027 "parse.y" 11312 #line 11311 "parse.c" 11341 if (0 <= yystate && yystate <=
YYLAST &&
yycheck[yystate] == *yyssp)
11361 #if ! YYERROR_VERBOSE 11364 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ 11367 char const *yymsgp =
YY_(
"syntax error");
11368 int yysyntax_error_status;
11370 if (yysyntax_error_status == 0)
11372 else if (yysyntax_error_status == 1)
11374 if (yymsg != yymsgbuf)
11380 yymsg_alloc =
sizeof yymsgbuf;
11381 yysyntax_error_status = 2;
11390 if (yysyntax_error_status == 2)
11391 goto yyexhaustedlab;
11393 # undef YYSYNTAX_ERROR 11399 if (yyerrstatus == 3)
11404 if (yychar <=
YYEOF)
11407 if (yychar ==
YYEOF)
11413 yytoken, &
yylval, parser);
11469 yystos[yystate], yyvsp, parser);
11499 #if !defined(yyoverflow) || YYERROR_VERBOSE 11515 yydestruct (
"Cleanup: discarding lookahead",
11516 yytoken, &
yylval, parser);
11522 while (yyssp != yyss)
11525 yystos[*yyssp], yyvsp, parser);
11532 #if YYERROR_VERBOSE 11533 if (yymsg != yymsgbuf)
11537 return YYID (yyresult);
11543 #line 5035 "parse.y" 11548 # define yylval (*((YYSTYPE*)(parser->parser_yylval))) 11557 # define nextc() parser_nextc(parser) 11558 # define pushback(c) parser_pushback(parser, (c)) 11559 # define newtok() parser_newtok(parser) 11560 # define tokspace(n) parser_tokspace(parser, (n)) 11561 # define tokadd(c) parser_tokadd(parser, (c)) 11562 # define tok_hex(numlen) parser_tok_hex(parser, (numlen)) 11563 # define read_escape(flags,e) parser_read_escape(parser, (flags), (e)) 11564 # define tokadd_escape(e) parser_tokadd_escape(parser, (e)) 11565 # define regx_options() parser_regx_options(parser) 11566 # define tokadd_string(f,t,p,n,e) parser_tokadd_string(parser,(f),(t),(p),(n),(e)) 11567 # define parse_string(n) parser_parse_string(parser,(n)) 11568 # define tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc)) 11569 # define here_document(n) parser_here_document(parser,(n)) 11570 # define heredoc_identifier() parser_heredoc_identifier(parser) 11571 # define heredoc_restore(n) parser_heredoc_restore(parser,(n)) 11572 # define whole_match_p(e,l,i) parser_whole_match_p(parser,(e),(l),(i)) 11573 # define number_literal_suffix(f) parser_number_literal_suffix(parser, (f)) 11574 # define set_number_literal(v, t, f) parser_set_number_literal(parser, (v), (t), (f)) 11575 # define set_integer_literal(v, f) parser_set_integer_literal(parser, (v), (f)) 11578 # define set_yylval_str(x) (yylval.node = NEW_STR(x)) 11579 # define set_yylval_num(x) (yylval.num = (x)) 11580 # define set_yylval_id(x) (yylval.id = (x)) 11581 # define set_yylval_name(x) (yylval.id = (x)) 11582 # define set_yylval_literal(x) (yylval.node = NEW_LIT(x)) 11583 # define set_yylval_node(x) (yylval.node = (x)) 11584 # define yylval_id() (yylval.id) 11586 static inline VALUE 11587 ripper_yylval_id(
ID x)
11591 # define set_yylval_str(x) (void)(x) 11592 # define set_yylval_num(x) (void)(x) 11593 # define set_yylval_id(x) (void)(x) 11594 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x)) 11595 # define set_yylval_literal(x) (void)(x) 11596 # define set_yylval_node(x) (void)(x) 11597 # define yylval_id() yylval.id 11601 #define ripper_flush(p) (void)(p) 11603 #define ripper_flush(p) ((p)->tokp = (p)->parser_lex_p) 11605 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val)) 11612 return lex_p > parser->tokp;
11627 if (!ripper_has_scan_event(parser))
return;
11628 yylval_rval = ripper_scan_event_val(parser,
t);
11632 ripper_dispatch_ignored_scan_event(
struct parser_params *parser,
int t)
11634 if (!ripper_has_scan_event(parser))
return;
11635 (void)ripper_scan_event_val(parser,
t);
11639 ripper_dispatch_delayed_token(
struct parser_params *parser,
int t)
11642 const char *saved_tokp = parser->tokp;
11645 parser->tokp =
lex_pbeg + parser->delayed_col;
11647 parser->delayed =
Qnil;
11649 parser->tokp = saved_tokp;
11660 #undef SIGN_EXTEND_CHAR 11662 # define SIGN_EXTEND_CHAR(c) ((signed char)(c)) 11665 # define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128) 11668 #define parser_encoding_name() (current_enc->name) 11669 #define parser_mbclen() mbclen((lex_p-1),lex_pend,current_enc) 11670 #define parser_precise_mbclen() rb_enc_precise_mbclen((lex_p-1),lex_pend,current_enc) 11671 #define is_identchar(p,e,enc) (rb_enc_isalnum((unsigned char)(*(p)),(enc)) || (*(p)) == '_' || !ISASCII(*(p))) 11672 #define parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,current_enc)) 11674 #define parser_isascii() ISASCII(*(lex_p-1)) 11682 for (p =
lex_pbeg; p < pend; p++) {
11684 column = (((column - 1) / 8) + 1) * 8;
11695 for (p =
lex_pbeg; p < pend; p++) {
11696 if (*p !=
' ' && *p !=
'\t') {
11703 #undef token_info_push 11720 #undef token_info_pop 11727 if (!ptinfo)
return;
11733 if (linenum == ptinfo->
linenum) {
11741 "mismatched indentations at '%s' with '%s' at %d",
11754 const int max_line_margin = 30;
11755 const char *p, *pe;
11763 if (*p ==
'\n')
break;
11770 if (*pe ==
'\n')
break;
11777 const char *pre =
"", *post =
"";
11779 if (len > max_line_margin * 2 + 10) {
11780 if (
lex_p - p > max_line_margin) {
11784 if (pe -
lex_p > max_line_margin) {
11795 i = (int)(
lex_p - p);
11796 p2 =
buf; pe =
buf + len;
11799 if (*p2 !=
'\t') *p2 =
' ';
11819 CONST_ID(script_lines,
"SCRIPT_LINES__");
11835 if (
RTEST(coverages) &&
RBASIC(coverages)->klass == 0) {
11840 RARRAY(lines)->as.heap.len = n;
11891 parser->parser_ruby_sourceline);
11901 if (parser->nerr) {
11911 return (
VALUE)tree;
11937 char *beg, *end, *pend;
11947 while (end < pend) {
11948 if (*end++ ==
'\n')
break;
11958 if (
NIL_P(line))
return line;
12062 node =
yycompile(parser, fname, start);
12069 #define STR_FUNC_ESCAPE 0x01 12070 #define STR_FUNC_EXPAND 0x02 12071 #define STR_FUNC_REGEXP 0x04 12072 #define STR_FUNC_QWORDS 0x08 12073 #define STR_FUNC_SYMBOL 0x10 12074 #define STR_FUNC_INDENT 0x20 12104 #define lex_goto_eol(parser) ((parser)->parser_lex_p = (parser)->parser_lex_pend) 12105 #define lex_eol_p() (lex_p >= lex_pend) 12106 #define peek(c) peek_n((c), 0) 12107 #define peek_n(c,n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n]) 12130 if (
NIL_P(parser->delayed)) {
12134 parser->tokp,
lex_pend - parser->tokp);
12136 parser->delayed_col = (int)(parser->tokp -
lex_pbeg);
12140 parser->tokp,
lex_pend - parser->tokp);
12156 c = (
unsigned char)*
lex_p++;
12174 if (c == -1)
return;
12181 #define was_bol() (lex_p == lex_pbeg + 1) 12183 #define tokfix() (tokenbuf[tokidx]='\0') 12184 #define tok() tokenbuf 12185 #define toklen() tokidx 12186 #define toklast() (tokidx>0?tokenbuf[tokidx-1]:0) 12233 yyerror(
"invalid hex escape");
12240 #define tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n)) 12245 int string_literal,
int symbol_literal,
int regexp_literal)
12265 yyerror(
"invalid Unicode escape");
12268 if (codepoint > 0x10ffff) {
12269 yyerror(
"invalid Unicode codepoint (too large)");
12273 if (regexp_literal) {
12276 else if (codepoint >= 0x80) {
12278 if (string_literal)
tokaddmbc(codepoint, *encp);
12280 else if (string_literal) {
12283 }
while (string_literal && (
peek(
' ') ||
peek(
'\t')));
12286 yyerror(
"unterminated Unicode escape");
12290 if (regexp_literal) {
tokadd(
'}'); }
12296 yyerror(
"invalid Unicode escape");
12300 if (regexp_literal) {
12303 else if (codepoint >= 0x80) {
12305 if (string_literal)
tokaddmbc(codepoint, *encp);
12307 else if (string_literal) {
12315 #define ESCAPE_CONTROL 1 12316 #define ESCAPE_META 2 12325 switch (c =
nextc()) {
12350 case '0':
case '1':
case '2':
case '3':
12351 case '4':
case '5':
case '6':
case '7':
12359 if (numlen == 0)
return 0;
12370 if ((c =
nextc()) !=
'-') {
12374 if ((c =
nextc()) ==
'\\') {
12375 if (
peek(
'u'))
goto eof;
12378 else if (c == -1 || !
ISASCII(c))
goto eof;
12380 return ((c & 0xff) | 0x80);
12384 if ((c =
nextc()) !=
'-') {
12390 if ((c =
nextc())==
'\\') {
12391 if (
peek(
'u'))
goto eof;
12396 else if (c == -1 || !
ISASCII(c))
goto eof;
12401 yyerror(
"Invalid escape character syntax");
12424 switch (c =
nextc()) {
12428 case '0':
case '1':
case '2':
case '3':
12429 case '4':
case '5':
case '6':
case '7':
12432 if (numlen == 0)
goto eof;
12441 if (numlen == 0)
return -1;
12448 if ((c =
nextc()) !=
'-') {
12458 if ((c =
nextc()) !=
'-') {
12470 if ((c =
nextc()) ==
'\\') {
12473 else if (c == -1)
goto eof;
12479 yyerror(
"Invalid escape character syntax");
12546 #define tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c)) 12552 case '$':
case '*':
case '+':
case '.':
12553 case '?':
case '^':
case '|':
12554 case ')':
case ']':
case '}':
case '>':
12563 int func,
int term,
int paren,
long *nest,
12567 int has_nonascii = 0;
12570 static const char mixed_msg[] =
"%s mixed within %s source";
12572 #define mixed_error(enc1, enc2) if (!errbuf) { \ 12573 size_t len = sizeof(mixed_msg) - 4; \ 12574 len += strlen(rb_enc_name(enc1)); \ 12575 len += strlen(rb_enc_name(enc2)); \ 12576 errbuf = ALLOCA_N(char, len); \ 12577 snprintf(errbuf, len, mixed_msg, \ 12578 rb_enc_name(enc1), \ 12579 rb_enc_name(enc2)); \ 12582 #define mixed_escape(beg, enc1, enc2) do { \ 12583 const char *pos = lex_p; \ 12585 mixed_error((enc1), (enc2)); \ 12589 while ((c =
nextc()) != -1) {
12590 if (paren && c == paren) {
12593 else if (c == term) {
12594 if (!nest || !*nest) {
12602 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
12607 else if (c ==
'\\') {
12608 const char *beg =
lex_p - 1;
12629 if (has_nonascii &&
enc != *encp) {
12635 if (c == -1)
return -1;
12648 if (has_nonascii &&
enc != *encp) {
12661 else if (c != term && !(paren && c == paren)) {
12671 if (
enc != *encp) {
12684 if (
enc != *encp) {
12695 #define NEW_STRTERM(func, term, paren) \ 12696 rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0) 12702 if (!
NIL_P(parser->delayed)) {
12703 ptrdiff_t len =
lex_p - parser->tokp;
12708 parser->tokp =
lex_p;
12712 #define flush_string_content(enc) ripper_flush_string_content(parser, (enc)) 12714 #define flush_string_content(enc) ((void)(enc)) 12721 #define BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0) 12722 #define SPECIAL_PUNCT(idx) ( \ 12723 BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', idx) | \ 12724 BIT('!', idx) | BIT('@', idx) | BIT('/', idx) | BIT('\\', idx) | \ 12725 BIT(';', idx) | BIT(',', idx) | BIT('.', idx) | BIT('=', idx) | \ 12726 BIT(':', idx) | BIT('<', idx) | BIT('>', idx) | BIT('\"', idx) | \ 12727 BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \ 12735 #undef SPECIAL_PUNCT 12741 if (c <= 0x20 || 0x7e < c)
return 0;
12749 const char *p =
lex_p;
12755 if ((c = *p) ==
'-') {
12764 if ((c = *p) ==
'@') {
12784 int func = (int)quote->nd_func;
12796 if (c == term && !quote->nd_nest) {
12798 quote->nd_func = -1;
12860 while ((c =
nextc()) != -1 && c != term) {
12908 line = here->nd_orig;
12922 const char *eos,
long len,
int indent)
12928 while (*p &&
ISSPACE(*p)) p++;
12931 if (n < 0)
return FALSE;
12932 if (n > 0 && p[len] !=
'\n') {
12933 if (p[len] !=
'\r')
return FALSE;
12934 if (n <= 1 || p[len+1] !=
'\n')
return FALSE;
12936 return strncmp(eos, p, len) == 0;
12939 #define NUM_SUFFIX_R (1<<0) 12940 #define NUM_SUFFIX_I (1<<1) 12941 #define NUM_SUFFIX_ALL 3 12947 const char *lastp =
lex_p;
12949 while ((c =
nextc()) != -1) {
12998 if (!
NIL_P(parser->delayed))
13001 ripper_dispatch_ignored_scan_event(parser,
tHEREDOC_END);
13004 #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser) 13006 #define dispatch_heredoc_end() ((void)0) 13012 int c,
func, indent = 0;
13013 const char *eos, *p, *pend;
13022 if ((c =
nextc()) == -1) {
13026 if (
NIL_P(parser->delayed)) {
13031 ((len =
lex_p - parser->tokp) > 0 &&
13054 switch (pend[-1]) {
13056 if (--pend == p || pend[-1] !=
'\r') {
13070 if (
nextc() == -1) {
13091 if (parser->
eofp)
goto error;
13101 if ((c =
nextc()) == -1)
goto error;
13118 rb_warning0(
"ambiguous first argument; put parentheses or even spaces");
13123 #define arg_ambiguous() (arg_ambiguous_gen(parser), 1) 13130 yyerror(
"formal argument must be local variable");
13148 if (len > 5 &&
name[nlen = len - 5] ==
'-') {
13152 if (len > 4 &&
name[nlen = len - 4] ==
'-') {
13188 for (i = 0; i < n; ++i) {
13226 case 't':
case 'T':
13232 case 'f':
case 'F':
13255 static const char *
13263 if (str[i-1] ==
'*' && str[i-2] ==
'-') {
13264 return str + i + 1;
13269 if (i + 1 >= len)
return 0;
13270 if (str[i+1] !=
'-') {
13273 else if (str[i-1] !=
'-') {
13277 return str + i + 2;
13292 const char *beg, *end, *vbeg, *vend;
13293 #define str_copy(_s, _p, _n) ((_s) \ 13294 ? (void)(rb_str_resize((_s), (_n)), \ 13295 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \ 13296 : (void)((_s) = STR_NEW((_p), (_n)))) 13298 if (len <= 7)
return FALSE;
13302 len = end - beg - 3;
13313 for (; len > 0 && *str; str++, --len) {
13315 case '\'':
case '"':
case ':':
case ';':
13320 for (beg = str; len > 0; str++, --len) {
13322 case '\'':
case '"':
case ':':
case ';':
13330 for (end = str; len > 0 &&
ISSPACE(*str); str++, --len);
13332 if (*str !=
':')
continue;
13334 do str++;
while (--len > 0 &&
ISSPACE(*str));
13337 for (vbeg = ++str; --len > 0 && *str !=
'"'; str++) {
13338 if (*str ==
'\\') {
13350 for (vbeg = str; len > 0 && *str !=
'"' && *str !=
';' && !
ISSPACE(*str); --len, str++);
13353 while (len > 0 && (*str ==
';' ||
ISSPACE(*str))) --len, str++;
13358 for (i = 0; i < n; ++i) {
13359 if (s[i] ==
'-') s[i] =
'_';
13366 n = (*p->
length)(parser, vbeg, n);
13386 const char *beg = str;
13390 if (send - str <= 6)
return;
13392 case 'C':
case 'c': str += 6;
continue;
13393 case 'O':
case 'o': str += 5;
continue;
13394 case 'D':
case 'd': str += 4;
continue;
13395 case 'I':
case 'i': str += 3;
continue;
13396 case 'N':
case 'n': str += 2;
continue;
13397 case 'G':
case 'g': str += 1;
continue;
13398 case '=':
case ':':
13411 if (++str >= send)
return;
13414 if (*str !=
'=' && *str !=
':')
return;
13419 while ((*str ==
'-' || *str ==
'_' ||
ISALNUM(*str)) && ++str < send);
13435 (
unsigned char)
lex_p[0] == 0xbb &&
13436 (
unsigned char)
lex_p[1] == 0xbf) {
13450 #define IS_ARG() IS_lex_state(EXPR_ARG_ANY) 13451 #define IS_END() IS_lex_state(EXPR_END_ANY) 13452 #define IS_BEG() IS_lex_state(EXPR_BEG_ANY) 13453 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c)) 13454 #define IS_LABEL_POSSIBLE() ((IS_lex_state(EXPR_BEG | EXPR_ENDFN) && !cmd_state) || IS_ARG()) 13455 #define IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1)) 13456 #define IS_AFTER_OPERATOR() IS_lex_state(EXPR_FNAME | EXPR_DOT) 13459 #define ambiguous_operator(op, syn) ( \ 13460 rb_warning0("`"op"' after local variable or literal is interpreted as binary operator"), \ 13461 rb_warning0("even though it seems like "syn"")) 13463 #define ambiguous_operator(op, syn) dispatch2(operator_ambiguous, ripper_intern(op), rb_str_new_cstr(syn)) 13465 #define warn_balanced(op, syn) ((void) \ 13466 (!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN|EXPR_ENDARG) && \ 13467 space_seen && !ISSPACE(c) && \ 13468 (ambiguous_operator(op, syn), 0))) 13476 const unsigned long nth_ref_max =
13477 ((FIXNUM_MAX < INT_MAX) ? FIXNUM_MAX : INT_MAX) >> 1;
13481 if (overflow || n > nth_ref_max) {
13483 rb_warnS(
"`%s' is too big for a number variable, always nil",
tok());
13495 int space_seen = 0;
13501 int fallthru =
FALSE;
13527 switch (c =
nextc()) {
13535 case ' ':
case '\t':
case '\f':
case '\r':
13539 while ((c =
nextc())) {
13541 case ' ':
case '\t':
case '\f':
case '\r':
13550 ripper_dispatch_scan_event(parser,
tSP);
13563 ripper_dispatch_scan_event(parser,
tCOMMENT);
13568 if (
IS_lex_state(EXPR_BEG | EXPR_VALUE | EXPR_CLASS | EXPR_FNAME | EXPR_DOT | EXPR_LABELARG)) {
13576 goto normal_newline;
13580 while ((c =
nextc())) {
13582 case ' ':
case '\t':
case '\f':
case '\r':
13587 if ((c =
nextc()) !=
'.') {
13600 parser->tokp =
lex_p;
13603 goto normal_newline;
13612 if ((c =
nextc()) ==
'*') {
13613 if ((c =
nextc()) ==
'=') {
13620 rb_warning0(
"`**' interpreted as argument prefix");
13639 rb_warning0(
"`*' interpreted as argument prefix");
13678 int first_p =
TRUE;
13687 ripper_dispatch_scan_event(parser,
tEMBDOC);
13696 if (c !=
'=')
continue;
13697 if (strncmp(
lex_p,
"end", 3) == 0 &&
13711 if ((c =
nextc()) ==
'=') {
13712 if ((c =
nextc()) ==
'=') {
13721 else if (c ==
'>') {
13733 (!
IS_ARG() || space_seen)) {
13746 if ((c =
nextc()) ==
'>') {
13753 if ((c =
nextc()) ==
'=') {
13767 if ((c =
nextc()) ==
'=') {
13771 if ((c =
nextc()) ==
'=') {
13839 rb_warnI(
"invalid character syntax; use ?\\%c", c2);
13856 else if (c ==
'\\') {
13885 if ((c =
nextc()) ==
'&') {
13887 if ((c =
nextc()) ==
'=') {
13895 else if (c ==
'=') {
13902 rb_warning0(
"`&' interpreted as argument prefix");
13916 if ((c =
nextc()) ==
'|') {
13918 if ((c =
nextc()) ==
'=') {
13998 if ((c =
nextc()) ==
'.') {
13999 if ((c =
nextc()) ==
'.') {
14007 yyerror(
"no .<digit> floating literal anymore; put 0 before dot");
14013 case '0':
case '1':
case '2':
case '3':
case '4':
14014 case '5':
case '6':
case '7':
case '8':
case '9':
14016 int is_float, seen_point, seen_e, nondigit;
14019 is_float = seen_point = seen_e = nondigit = 0;
14022 if (c ==
'-' || c ==
'+') {
14027 #define no_digits() do {yyerror("numeric literal without digits"); return 0;} while (0) 14030 if (c ==
'x' || c ==
'X') {
14036 if (nondigit)
break;
14043 }
while ((c =
nextc()) != -1);
14047 if (
toklen() == start) {
14050 else if (nondigit)
goto trailing_uc;
14054 if (c ==
'b' || c ==
'B') {
14057 if (c ==
'0' || c ==
'1') {
14060 if (nondigit)
break;
14064 if (c !=
'0' && c !=
'1')
break;
14067 }
while ((c =
nextc()) != -1);
14071 if (
toklen() == start) {
14074 else if (nondigit)
goto trailing_uc;
14078 if (c ==
'd' || c ==
'D') {
14084 if (nondigit)
break;
14091 }
while ((c =
nextc()) != -1);
14095 if (
toklen() == start) {
14098 else if (nondigit)
goto trailing_uc;
14106 if (c ==
'o' || c ==
'O') {
14109 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
14113 if (c >=
'0' && c <=
'7') {
14118 if (nondigit)
break;
14122 if (c < '0' || c >
'9')
break;
14123 if (c >
'7')
goto invalid_octal;
14126 }
while ((c =
nextc()) != -1);
14130 if (nondigit)
goto trailing_uc;
14139 if (c >
'7' && c <=
'9') {
14141 yyerror(
"Invalid octal digit");
14143 else if (c ==
'.' || c ==
'e' || c ==
'E') {
14155 case '0':
case '1':
case '2':
case '3':
case '4':
14156 case '5':
case '6':
case '7':
case '8':
case '9':
14162 if (nondigit)
goto trailing_uc;
14163 if (seen_point || seen_e) {
14168 if (c0 == -1 || !
ISDIGIT(c0)) {
14193 if (c !=
'-' && c !=
'+' && !
ISDIGIT(c)) {
14202 nondigit = (c ==
'-' || c ==
'+') ? c : 0;
14206 if (nondigit)
goto decode_num;
14221 snprintf(tmp,
sizeof(tmp),
"trailing `%c' in number", nondigit);
14231 char *point = &
tok()[seen_point];
14232 size_t fraclen =
toklen()-seen_point-1;
14234 memmove(point, point+1, fraclen+1);
14240 if (
errno == ERANGE) {
14302 if ((c =
nextc()) ==
'=') {
14318 if ((c =
nextc()) ==
'=') {
14338 if ((c =
nextc()) !=
'@') {
14365 if ((c =
nextc()) ==
']') {
14366 if ((c =
nextc()) ==
'=') {
14378 else if (
IS_ARG() && space_seen) {
14413 ripper_dispatch_scan_event(parser,
tSP);
14427 if (c == -1 || !
ISALNUM(c)) {
14434 yyerror(
"unknown type of %string");
14438 if (c == -1 || term == -1) {
14443 if (term ==
'(') term =
')';
14444 else if (term ==
'[') term =
']';
14445 else if (term ==
'{') term =
'}';
14446 else if (term ==
'<') term =
'>';
14496 yyerror(
"unknown type of %string");
14500 if ((c =
nextc()) ==
'=') {
14576 case '1':
case '2':
case '3':
14577 case '4':
case '5':
case '6':
14578 case '7':
case '8':
case '9':
14583 }
while (c != -1 &&
ISDIGIT(c));
14629 ripper_dispatch_scan_event(parser,
k__END__);
14652 switch (
tok()[0]) {
14653 case '@':
case '$':
14657 if ((c ==
'!' || c ==
'?') && !
peek(
'=')) {
14670 switch (
tok()[0]) {
14677 if (
tok()[1] ==
'@')
14746 if (kw->
id[0] != kw->
id[1])
14797 if (!
NIL_P(parser->delayed)) {
14798 ripper_dispatch_delayed_token(parser,
t);
14802 ripper_dispatch_scan_event(parser,
t);
14844 if (orig == (
NODE*)1)
return;
14853 #define parser_warning(node, mesg) parser_warning(parser, (node), (mesg)) 14860 #define parser_warn(node, mesg) parser_warn(parser, (node), (mesg)) 14869 if (h == 0)
return tail;
14910 end->nd_next =
tail;
14911 h->nd_end =
tail->nd_end;
14922 if (
list->nd_next) {
14929 list->nd_alen += 1;
14931 list->nd_next->nd_end =
last->nd_next;
14941 if (
head->nd_next) {
14950 if (
tail->nd_next) {
14951 head->nd_next->nd_end =
tail->nd_next->nd_end;
14995 if (htype ==
NODE_DSTR && (headlast =
head->nd_next->nd_end->nd_head) &&
14998 lit = headlast->nd_lit;
15001 lit =
head->nd_lit;
15027 head->nd_alen +=
tail->nd_alen - 1;
15028 head->nd_next->nd_end->nd_next =
tail->nd_next;
15029 head->nd_next->nd_end =
tail->nd_next->nd_end;
15032 else if (htype ==
NODE_DSTR && (headlast =
head->nd_next->nd_end->nd_head) &&
15034 lit = headlast->nd_lit;
15188 static const char *
15191 static const char names[][12] = {
15192 "EXPR_BEG",
"EXPR_END",
"EXPR_ENDARG",
"EXPR_ENDFN",
"EXPR_ARG",
15193 "EXPR_CMDARG",
"EXPR_MID",
"EXPR_FNAME",
"EXPR_DOT",
"EXPR_CLASS",
15213 # define assignable_result(x) get_value(lhs) 15214 # define parser_yyerror(parser, x) dispatch1(assign_error, lhs) 15216 # define assignable_result(x) (x) 15221 yyerror(
"Can't change the value of self");
15224 yyerror(
"Can't assign to nil");
15227 yyerror(
"Can't assign to true");
15230 yyerror(
"Can't assign to false");
15233 yyerror(
"Can't assign to __FILE__");
15236 yyerror(
"Can't assign to __LINE__");
15239 yyerror(
"Can't assign to __ENCODING__");
15273 yyerror(
"dynamic constant assignment");
15282 #undef assignable_result 15283 #undef parser_yyerror 15290 if (
name == idUScore)
return 1;
15297 #define LVAR_USED ((ID)1 << (sizeof(ID) * CHAR_BIT - 1)) 15305 yyerror(
"duplicated argument name");
15318 yyerror(
"duplicated argument name");
15425 if (!node2)
return node1;
15428 if (node1->nd_head)
15429 node1->nd_head =
arg_concat(node1->nd_head, node2);
15441 node1->nd_body =
list_concat(node1->nd_body, node2);
15450 if (!node1)
return NEW_LIST(node2);
15455 node1->nd_head =
arg_append(node1->nd_head, node2);
15476 if (!lhs)
return 0;
15488 lhs->nd_value = rhs;
15493 lhs->nd_args =
arg_append(lhs->nd_args, rhs);
15524 while (node->nd_next) {
15525 node = node->nd_next;
15527 node = node->nd_head;
15531 node = node->nd_body;
15535 if (!node->nd_body) {
15536 node = node->nd_else;
15539 else if (!node->nd_else) {
15540 node = node->nd_body;
15544 node = node->nd_else;
15550 node = node->nd_2nd;
15564 const char *useless = 0;
15571 switch (node->nd_mid) {
15602 useless =
"a variable";
15605 useless =
"a constant";
15612 useless =
"a literal";
15637 useless =
"defined?";
15645 rb_warnS(
"possibly useless use of %s in void context", useless);
15658 if (!node->nd_next)
return;
15660 node = node->nd_next;
15667 NODE **n = &node, *n1 = node;
15669 *n = n1 = n1->nd_body;
15677 NODE **n = &node, *n1 = node;
15679 *n = n1 = n1->nd_body;
15687 NODE *node = *body;
15693 #define subnodes(n1, n2) \ 15694 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \ 15695 (!node->n2) ? (body = &node->n1, 1) : \ 15696 (reduce_nodes(&node->n1), body = &node->n2, 1)) 15706 *body = node = node->nd_stts;
15710 *body = node = node->nd_body;
15714 body = &node->nd_end->nd_head;
15720 body = &node->nd_body;
15729 if (node->nd_else) {
15730 body = &node->nd_resq;
15748 if (!node)
return 1;
15751 if (!(node = node->nd_head))
break;
15755 }
while ((node = node->nd_next) != 0);
15774 yyerror(
"multiple assignment in conditional");
15788 if (!node->nd_value)
return 1;
15791 parser_warn(node->nd_value,
"found = in conditional, should be ==");
15813 for (node = *rootnode; node; node = next) {
15817 next = node->nd_next;
15818 head = node->nd_head;
15844 if (node == 0)
return 0;
15852 return cond0(parser, node);
15858 if (!node)
return 1;
15879 if (node == 0)
return 0;
15886 rb_warn0(
"string literal in condition");
15896 node->nd_1st =
cond0(parser, node->nd_1st);
15897 node->nd_2nd =
cond0(parser, node->nd_2nd);
15902 node->nd_beg =
range_op(parser, node->nd_beg);
15903 node->nd_end =
range_op(parser, node->nd_end);
15936 if (node == 0)
return 0;
15937 return cond0(parser, node);
15945 NODE *node = left, *second;
15969 if (node->nd_next == 0) {
15970 node = node->nd_head;
15991 switch (
TYPE(node->nd_lit)) {
16013 rb_bug(
"unknown literal type passed to negate_lit");
16023 node2->nd_head = node1;
16037 args->
pre_init = m ? m->nd_next : 0;
16096 lit = node->nd_lit;
16115 ID vid = lhs->nd_vid;
16117 lhs->nd_value = rhs;
16120 asgn->nd_aid = vid;
16123 else if (op ==
tANDOP) {
16124 lhs->nd_value = rhs;
16146 else if (op ==
tANDOP) {
16162 else if (op ==
tANDOP) {
16178 return dispatch3(opassign, lhs, op, rhs);
16184 VALUE recv = dispatch3(field, lhs,
type, attr);
16185 return dispatch3(opassign, recv, op, rhs);
16195 if (!local->
used)
return;
16200 rb_bug(
"local->used->pos != local->vars->pos");
16202 for (i = 0; i <
cnt; ++i) {
16203 if (!v[i] || (u[i] &
LVAR_USED))
continue;
16218 local->
used = !(inherit_dvars &&
16247 int cnt = cnt_args + cnt_vars;
16251 if (
cnt <= 0)
return 0;
16255 for (i = 0, j = cnt_args+1; i < cnt_vars; ++i) {
16287 struct vtable *vars, *args, *used;
16289 vars =
lvtbl->vars;
16290 args =
lvtbl->args;
16291 used =
lvtbl->used;
16296 if (used) used = used->
prev;
16312 static const struct vtable *
16320 return lvtbl->args;
16328 if ((tmp =
lvtbl->used) != 0) {
16344 while (
lvtbl->args != lvargs) {
16346 if (!
lvtbl->args) {
16364 struct vtable *vars, *args, *used;
16367 args =
lvtbl->args;
16368 vars =
lvtbl->vars;
16369 used =
lvtbl->used;
16382 if (used) used = used->
prev;
16435 "regexp encoding option '%c' differs from source encoding '%s'",
16463 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
16468 long len = name_end -
name;
16469 const char *s = (
const char *)
name;
16486 rb_warningS(
"named capture conflicts a local variable - %s",
16566 NODE *scope = node;
16569 if (!node)
return node;
16573 node = node->nd_body;
16577 node = node->nd_body;
16584 prelude->nd_body = node;
16585 scope->nd_body = prelude;
16588 scope->nd_body = node;
16598 NODE *scope = node;
16601 if (!node)
return node;
16605 node = node->nd_body;
16609 node = node->nd_body;
16625 prelude->nd_body = node;
16626 scope->nd_body = prelude;
16629 scope->nd_body = node;
16635 static const struct {
16660 #define op_tbl_count numberof(op_tbl) 16662 #ifndef ENABLE_SELECTOR_NAMESPACE 16663 #define ENABLE_SELECTOR_NAMESPACE 0 16670 #if ENABLE_SELECTOR_NAMESPACE 16683 #if ENABLE_SELECTOR_NAMESPACE 16690 ivar2_cmp(
struct ivar2_key *key1,
struct ivar2_key *key2)
16692 if (key1->id == key2->id && key1->klass == key2->klass) {
16699 ivar2_hash(
struct ivar2_key *
key)
16701 return (
key->id << 8) ^ (
key->klass >> 2);
16715 #if ENABLE_SELECTOR_NAMESPACE 16723 (void)lex_state_name(-1);
16756 if (m >= e)
return 0;
16760 else if (*m ==
'-') {
16761 if (++m >= e)
return 0;
16774 return m == e ? mb + 1 : 0;
16789 #define IDSET_ATTRSET_FOR_SYNTAX ((1U<<ID_LOCAL)|(1U<<ID_CONST)) 16790 #define IDSET_ATTRSET_FOR_INTERN (~(~0U<<ID_SCOPE_MASK) & ~(1U<<ID_ATTRSET)) 16795 const char *m =
name;
16796 const char *e = m + len;
16799 if (!m || len <= 0)
return -1;
16819 case '<': ++m;
break;
16820 case '=':
if (*++m ==
'>') ++m;
break;
16827 case '>':
case '=': ++m;
break;
16833 case '~': ++m;
break;
16834 case '=':
if (*++m ==
'=') ++m;
break;
16835 default:
return -1;
16840 if (*++m ==
'*') ++m;
16843 case '+':
case '-':
16844 if (*++m ==
'@') ++m;
16847 case '|':
case '^':
case '&':
case '/':
case '%':
case '~':
case '`':
16852 if (*++m !=
']')
return -1;
16853 if (*++m ==
'=') ++m;
16857 if (len == 1)
return ID_JUNK;
16859 case '=':
case '~': ++m;
break;
16860 default:
return -1;
16872 case '!':
case '?':
16878 if (!(allowed_attrset & (1
U <<
type)))
return -1;
16885 return m == e ?
type : -1;
16952 fake_str->as.heap.len = len;
16953 fake_str->as.heap.ptr = (
char *)
name;
16954 fake_str->as.heap.aux.capa = len;
16955 return (
VALUE)fake_str;
16977 const char *
name, *m, *e;
16999 if (
len < 2)
goto junk;
17008 if (
len < 3)
goto junk;
17013 if (
len < 2)
goto junk;
17050 else if (
id == 0) {
17122 name[0] = (char)
id;
17149 if (
RBASIC(str)->klass == 0)
17172 if (
RBASIC(str)->klass == 0)
17185 if (!str)
return 0;
17430 parser->delayed =
Qnil;
17432 parser->result =
Qnil;
17433 parser->parsing_thread =
Qnil;
17434 parser->toplevel_p =
TRUE;
17443 #define parser_mark ripper_parser_mark 17444 #define parser_free ripper_parser_free 17495 size_t size =
sizeof(*p);
17497 if (!ptr)
return 0;
17500 size +=
sizeof(*local);
17521 #undef rb_reserved_word 17610 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE)) 17611 #define NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0) 17612 #define ADD2HEAP(n, c, p) ((parser->heap = (n))->u1.node = (p), \ 17613 (n)->u3.cnt = (c), (p)) 17641 if (ptr && (n = parser->
heap) !=
NULL) {
17643 if (n->
u1.
node == ptr) {
17660 while ((n = *prev) !=
NULL) {
17661 if (n->u1.node == ptr) {
17674 #ifdef RIPPER_DEBUG 17675 extern int rb_is_pointer_to_heap(
VALUE);
17681 if (x ==
Qfalse)
return x;
17682 if (x ==
Qtrue)
return x;
17683 if (x ==
Qnil)
return x;
17688 if (!rb_is_pointer_to_heap(x))
17703 return ((
NODE *)x)->nd_rval;
17712 #define validate(x) ((x) = get_value(x)) 17724 return rb_funcall(parser->value, mid, 1, a);
17732 return rb_funcall(parser->value, mid, 2, a, b);
17741 return rb_funcall(parser->value, mid, 3, a, b, c);
17751 return rb_funcall(parser->value, mid, 4, a, b, c, d);
17762 return rb_funcall(parser->value, mid, 5, a, b, c, d, e);
17775 return rb_funcall(parser->value, mid, 7, a, b, c, d, e,
f, g);
17778 static const struct kw_assoc {
17781 } keyword_to_name[] = {
17834 keyword_id_to_str(
ID id)
17836 const struct kw_assoc *a;
17838 for (a = keyword_to_name; a->id; a++) {
17845 #undef ripper_id2sym 17847 ripper_id2sym(
ID id)
17857 if ((
name = keyword_id_to_str(
id))) {
17870 rb_bug(
"cannot convert ID to string: %ld", (
unsigned long)
id);
17878 ripper_get_id(
VALUE v)
17888 ripper_get_value(
VALUE v)
17895 return nd->nd_rval;
17899 ripper_compile_error(
struct parser_params *parser,
const char *fmt, ...)
17904 va_start(args, fmt);
17911 ripper_warn0(
struct parser_params *parser,
const char *fmt)
17917 ripper_warnI(
struct parser_params *parser,
const char *fmt,
int a)
17924 ripper_warnS(
struct parser_params *parser,
const char *fmt,
const char *str)
17931 ripper_warning0(
struct parser_params *parser,
const char *fmt)
17937 ripper_warningS(
struct parser_params *parser,
const char *fmt,
const char *str)
17950 ripper_s_allocate(
VALUE klass)
17962 #define ripper_initialized_p(r) ((r)->parser_lex_input != 0) 17978 VALUE src, fname, lineno;
17991 if (
NIL_P(fname)) {
18006 struct ripper_args {
18013 ripper_parse0(
VALUE parser_v)
18019 ripper_yyparse((
void*)parser);
18020 return parser->result;
18024 ripper_ensure(
VALUE parser_v)
18029 parser->parsing_thread =
Qnil;
18040 ripper_parse(
VALUE self)
18045 if (!ripper_initialized_p(parser)) {
18048 if (!
NIL_P(parser->parsing_thread)) {
18055 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
18057 return parser->result;
18068 ripper_column(
VALUE self)
18074 if (!ripper_initialized_p(parser)) {
18077 if (
NIL_P(parser->parsing_thread))
return Qnil;
18089 ripper_filename(
VALUE self)
18094 if (!ripper_initialized_p(parser)) {
18108 ripper_lineno(
VALUE self)
18113 if (!ripper_initialized_p(parser)) {
18116 if (
NIL_P(parser->parsing_thread))
return Qnil;
18120 #ifdef RIPPER_DEBUG 18156 InitVM_ripper(
void)
18173 #ifdef RIPPER_DEBUG #define STRNCASECMP(s1, s2, n)
RUBY_EXTERN VALUE rb_cString
void rb_define_global_const(const char *, VALUE)
char * parser_ruby_sourcefile
#define RBASIC_CLEAR_CLASS(obj)
static const char id_type_names[][9]
static NODE * call_bin_op_gen(struct parser_params *, NODE *, ID, NODE *)
struct local_vars * parser_lvtbl
static YYSIZE_T yytnamerr(char *yyres, const char *yystr)
VALUE rb_ary_unshift(VALUE ary, VALUE item)
static ID ripper_token2eventid(int tok)
static ID internal_id_gen(struct parser_params *)
int rb_enc_codelen(int c, rb_encoding *enc)
#define NEW_OP_ASGN_AND(i, val)
#define YY_REDUCE_PRINT(Rule)
#define shadowing_lvar(name)
#define MBCLEN_CHARFOUND_P(ret)
static void arg_ambiguous_gen(struct parser_params *parser)
static long parser_encode_length(struct parser_params *parser, const char *name, long len)
#define RE_OPTION_ENCODING_IDX(o)
#define NEW_OP_ASGN1(p, id, a)
int onig_foreach_name(regex_t *reg, int(*func)(const UChar *, const UChar *, int, int *, regex_t *, void *), void *arg)
void * rb_parser_malloc(struct parser_params *parser, size_t size)
static void Init_id(void)
void rb_bug(const char *fmt,...)
#define mixed_escape(beg, enc1, enc2)
static const yytype_uint8 yyr2[]
int rb_is_local_name(VALUE name)
static NODE * attrset_gen(struct parser_params *, NODE *, ID)
void rb_enc_copy(VALUE obj1, VALUE obj2)
#define RUBY_TYPED_FREE_IMMEDIATELY
static const struct kwtable * reserved_word(const char *, unsigned int)
static VALUE setup_fake_str(struct RString *fake_str, const char *name, long len)
int rb_is_class_name(VALUE name)
#define rb_gc_mark_locations(start, end)
size_t strlen(const char *)
VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline)
int rb_is_attrset_name(VALUE name)
VALUE parser_lex_nextline
VALUE rb_make_exception(int argc, VALUE *argv)
#define scan_oct(s, l, e)
static NODE * negate_lit(NODE *)
#define dispatch_heredoc_end()
static NODE * node_assign_gen(struct parser_params *, NODE *, NODE *)
int parser_ruby__end__seen
static void local_push_gen(struct parser_params *, int)
static int vtable_size(const struct vtable *tbl)
#define formal_argument(id)
#define set_number_literal(v, t, f)
const struct kwtable * rb_reserved_word(const char *str, unsigned int len)
VALUE rb_range_new(VALUE, VALUE, int)
#define YY_STACK_PRINT(Bottom, Top)
static NODE * arg_concat_gen(struct parser_params *, NODE *, NODE *)
static const struct @132 op_tbl[]
ID rb_check_id(volatile VALUE *namep)
Returns ID for the given name if it is interned already, or 0.
static NODE * evstr2dstr_gen(struct parser_params *, NODE *)
static void yy_reduce_print(YYSTYPE *yyvsp, int yyrule, struct parser_params *parser)
static int nodeline(NODE *node)
static int token_info_has_nonspaces(struct parser_params *parser, const char *token)
static NODE * arg_blk_pass(NODE *, NODE *)
#define IS_LABEL_POSSIBLE()
#define is_asgn_or_id(id)
static void reg_fragment_setenc_gen(struct parser_params *, VALUE, int)
int parser_compile_for_eval
int parser_token_info_enabled
#define parser_precise_mbclen()
static ID formal_argument_gen(struct parser_params *, ID)
#define rb_usascii_str_new2
RUBY_FUNC_EXPORTED const unsigned int ruby_global_name_punct_bits[(0x7e - 0x20+31)/32]
static int parser_read_escape(struct parser_params *parser, int flags, rb_encoding **encp)
static VALUE reg_compile_gen(struct parser_params *, VALUE, int)
static ID register_symid(ID, const char *, long, rb_encoding *)
unsigned short int yytype_uint16
VALUE rb_str_cat(VALUE, const char *, long)
ID rb_intern_str(VALUE str)
VALUE rb_reg_check_preprocess(VALUE)
#define RE_OPTION_ENCODING(e)
NODE * rb_parser_while_loop(VALUE vparser, NODE *node, int chop, int split)
#define set_yylval_str(x)
static const yytype_uint16 yyr1[]
#define set_yylval_literal(x)
#define TypedData_Wrap_Struct(klass, data_type, sval)
#define yytable_value_is_error(yytable_value)
#define IDSET_ATTRSET_FOR_SYNTAX
#define ADD2HEAP(n, c, p)
VALUE rb_parser_encoding(VALUE vparser)
#define TypedData_Get_Struct(obj, type, data_type, sval)
#define literal_concat(h, t)
static void block_dup_check_gen(struct parser_params *, NODE *, NODE *)
stack_type parser_cmdarg_stack
static int lvar_defined_gen(struct parser_params *, ID)
VALUE rb_suppress_tracing(VALUE(*func)(VALUE), VALUE arg)
VALUE rb_enc_from_encoding(rb_encoding *encoding)
int rb_is_method_name(VALUE name)
static ID * local_tbl_gen(struct parser_params *)
#define new_defined(expr)
VALUE rb_ary_push(VALUE ary, VALUE item)
ID rb_intern3(const char *name, long len, rb_encoding *enc)
#define NEW_CLASS(n, b, s)
SSL_METHOD *(* func)(void)
NODE * rb_parser_compile_file(volatile VALUE vparser, const char *f, VALUE file, int start)
unsigned short int yytype_uint16
static int parser_yylex(struct parser_params *parser)
rb_encoding * rb_enc_compatible(VALUE str1, VALUE str2)
#define new_args_tail(k, kr, b)
static NODE * remove_begin_all(NODE *)
static NODE * new_evstr_gen(struct parser_params *, NODE *)
VALUE op_sym[tLAST_OP_ID]
int rb_is_junk_name(VALUE name)
static int parser_regx_options(struct parser_params *)
VALUE rb_funcall(VALUE, ID, int,...)
Calls a method.
static VALUE coverage(VALUE fname, int n)
static int rb_enc_symname_type(const char *name, long len, rb_encoding *enc, unsigned int allowed_attrset)
static void set_file_encoding(struct parser_params *parser, const char *str, const char *send)
static NODE * newline_node(NODE *)
int rb_enc_str_coderange(VALUE)
static void ripper_init_eventids1_table(VALUE self)
void rb_raise(VALUE exc, const char *fmt,...)
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
static const yytype_uint16 yyprhs[]
#define RSTRING_GETMEM(str, ptrvar, lenvar)
#define block_dup_check(n1, n2)
VALUE rb_enc_associate(VALUE obj, rb_encoding *enc)
static void warn_unused_var(struct parser_params *parser, struct local_vars *local)
const rb_data_type_t * parent
void rb_compile_warn(const char *file, int line, const char *fmt,...)
#define attrset(node, id)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
#define new_const_op_assign(lhs, op, rhs)
static NODE * assignable_gen(struct parser_params *, ID, NODE *)
int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc)
st_index_t rb_str_hash(VALUE)
#define nd_set_type(n, t)
static size_t parser_memsize(const void *ptr)
static NODE * new_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
static void fixpos(NODE *, NODE *)
unsigned long ruby_scan_digits(const char *str, ssize_t len, int base, size_t *retlen, int *overflow)
void rb_gc_mark(VALUE ptr)
static NODE * gettable_gen(struct parser_params *, ID)
#define rb_enc_islower(c, enc)
static struct symbols global_symbols
static NODE * cond0(struct parser_params *, NODE *)
void rb_gc_mark_parser(void)
#define reg_compile(str, options)
static int local_var_gen(struct parser_params *, ID)
#define str_copy(_s, _p, _n)
static NODE * match_op_gen(struct parser_params *, NODE *, NODE *)
static void yy_stack_print(yytype_int16 *yybottom, yytype_int16 *yytop)
#define NEW_IASGN(v, val)
rb_encoding * rb_utf8_encoding(void)
static int rb_str_symname_type(VALUE name, unsigned int allowed_attrset)
static int dvar_defined_gen(struct parser_params *, ID, int)
static NODE * new_yield_gen(struct parser_params *, NODE *)
#define RE_OPTION_ENCODING_NONE(o)
static char * parser_tokspace(struct parser_params *parser, int n)
int rb_enc_symname2_p(const char *name, long len, rb_encoding *enc)
#define tokadd_string(f, t, p, n, e)
VALUE rb_str_buf_append(VALUE, VALUE)
#define number_literal_suffix(f)
#define is_identchar(p, e, enc)
#define RUBY_DTRACE_PARSE_BEGIN(arg0, arg1)
VALUE parser_ruby_sourcefile_string
static void parser_heredoc_restore(struct parser_params *parser, NODE *here)
static NODE * remove_begin(NODE *)
NODE * rb_parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
#define ENC_CODERANGE_7BIT
const char * rb_obj_classname(VALUE)
static int parser_set_integer_literal(struct parser_params *parser, VALUE v, int suffix)
void rb_gc_force_recycle(VALUE p)
RUBY_EXTERN void * memmove(void *, const void *, size_t)
static const yytype_int16 yytable[]
NODE * parser_deferred_nodes
VALUE rb_str_buf_cat(VALUE, const char *, long)
RUBY_SYMBOL_EXPORT_BEGIN typedef unsigned long st_data_t
void rb_name_error(ID id, const char *fmt,...)
static int dyna_in_block_gen(struct parser_params *)
static const rb_data_type_t parser_data_type
#define logop(type, node1, node2)
static rb_encoding * must_be_ascii_compatible(VALUE s)
static void dyna_pop_1(struct parser_params *parser)
void rb_exc_raise(VALUE mesg)
static NODE * new_const_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
#define parser_warn(node, mesg)
#define RBASIC_SET_CLASS_RAW(obj, cls)
#define RUBY_DTRACE_PARSE_END(arg0, arg1)
#define RB_TYPE_P(obj, type)
static void warn_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
int st_lookup(st_table *, st_data_t, st_data_t *)
#define NEW_ATTRASGN(r, m, a)
#define MEMZERO(p, type, n)
int rb_is_instance_name(VALUE name)
static void parser_free(void *ptr)
enum lex_state_e parser_lex_state
int rb_is_local_id(ID id)
VALUE parser_lex_lastline
void * rb_parser_realloc(struct parser_params *parser, void *ptr, size_t size)
static void parser_initialize(struct parser_params *parser)
#define scan_hex(s, l, e)
static void parser_set_encode(struct parser_params *parser, const char *name)
#define lex_goto_eol(parser)
#define rb_rational_raw1(x)
VALUE rb_hash_aset(VALUE hash, VALUE key, VALUE val)
void rb_compile_error_append(const char *fmt,...)
void rb_compile_error_with_enc(const char *file, int line, void *enc, const char *fmt,...)
VALUE rb_parser_get_yydebug(VALUE self)
#define NEW_PRELUDE(p, b)
RUBY_EXTERN VALUE rb_cObject
#define match_op(node1, node2)
static enum node_type nodetype(NODE *node)
#define NEW_STRTERM(func, term, paren)
static const struct magic_comment magic_comments[]
#define rb_enc_isascii(c, enc)
#define reg_named_capture_assign(regexp, match)
struct parser_params * parser
static void magic_comment_encoding(struct parser_params *parser, const char *name, const char *val)
static int parser_number_literal_suffix(struct parser_params *parser, int mask)
void * rb_parser_calloc(struct parser_params *parser, size_t nelem, size_t size)
VALUE rb_get_coverages(void)
static int e_option_supplied(struct parser_params *parser)
static struct vtable * vtable_alloc(struct vtable *prev)
#define token_info_push(token)
VALUE rb_obj_as_string(VALUE)
#define NEW_ARGSPUSH(a, b)
static int is_special_global_name(const char *m, const char *e, rb_encoding *enc)
static const yytype_uint16 yyrline[]
#define NEW_UNLESS(c, t, e)
RUBY_EXTERN VALUE rb_mKernel
VALUE rb_thread_current(void)
NODE * rb_parser_compile_file_path(volatile VALUE vparser, VALUE fname, VALUE file, int start)
void st_add_direct(st_table *, st_data_t, st_data_t)
VALUE rb_define_class(const char *name, VALUE super)
Defines a top-level class.
int rb_is_attrset_id(ID id)
static int reg_fragment_check_gen(struct parser_params *, VALUE, int)
static NODE * dsym_node_gen(struct parser_params *, NODE *)
NODE * rb_compile_string(const char *f, VALUE s, int line)
void rb_define_const(VALUE, const char *, VALUE)
static NODE * new_attr_op_assign_gen(struct parser_params *parser, NODE *lhs, ID attr, ID op, NODE *rhs)
rb_atomic_t cnt[RUBY_NSIG]
static void no_blockarg(struct parser_params *parser, NODE *node)
static NODE * splat_array(NODE *)
static void parser_mark(void *ptr)
static void parser_tokadd(struct parser_params *parser, int c)
static YYSIZE_T yystrlen(char *yystr) const
static void ripper_init_eventids1(void)
static int sym_check_asciionly(VALUE str)
static ID intern_str(VALUE str)
char ary[RSTRING_EMBED_LEN_MAX+1]
VALUE rb_rational_new(VALUE, VALUE)
static VALUE lex_get_str(struct parser_params *parser, VALUE s)
#define ALLOCA_N(type, n)
static int assign_in_cond(struct parser_params *parser, NODE *node)
#define warn_balanced(op, syn)
#define NEW_OP_CDECL(v, op, val)
#define ENC_CODERANGE_UNKNOWN
static void void_expr_gen(struct parser_params *, NODE *)
static int reg_named_capture_assign_iter(const OnigUChar *name, const OnigUChar *name_end, int back_num, int *back_refs, OnigRegex regex, void *arg0)
#define RUBY_FUNC_EXPORTED
#define MEMCPY(p1, p2, type, n)
#define ENC_CODERANGE_BROKEN
#define rb_enc_isupper(c, enc)
VALUE rb_enc_associate_index(VALUE obj, int idx)
int rb_parse_in_main(void)
static VALUE debug_lines(VALUE fname)
#define IS_AFTER_OPERATOR()
const char * parser_lex_pend
static void parser_tokaddmbc(struct parser_params *parser, int c, rb_encoding *enc)
#define IDSET_ATTRSET_FOR_INTERN
#define set_yylval_num(x)
#define parser_encoding_name()
token_info * parser_token_info
#define new_op_assign(lhs, op, rhs)
VALUE rb_make_backtrace(void)
static NODE * list_append_gen(struct parser_params *, NODE *, NODE *)
#define NEW_WHEN(c, t, e)
static const yytype_int16 yycheck[]
VALUE rb_str_resize(VALUE, long)
static int literal_node(NODE *node)
static int dvar_curr_gen(struct parser_params *, ID)
#define NEW_DASGN(v, val)
#define flush_string_content(enc)
int rb_str_hash_cmp(VALUE, VALUE)
#define NEW_BLOCK_PASS(b)
int rb_dvar_defined(ID id)
static int parser_yyerror(struct parser_params *, const char *)
#define RUBY_DTRACE_PARSE_END_ENABLED()
#define REALLOC_N(var, type, n)
static const yytype_int16 yypgoto[]
static int parser_tokadd_mbchar(struct parser_params *parser, int c)
int rb_symname_p(const char *name)
VALUE rb_sprintf(const char *format,...)
#define set_integer_literal(v, f)
#define NEW_OP_ASGN_OR(i, val)
static void yydestruct(char *yymsg, int yytype, YYSTYPE *yyvaluep, struct parser_params *parser) const
#define rb_enc_isspace(c, enc)
#define ruby_sourcefile_string
#define parser_warning(node, mesg)
#define mixed_error(enc1, enc2)
#define reg_fragment_setenc(str, options)
static int value_expr_gen(struct parser_params *, NODE *)
static const yytype_int16 yyrhs[]
const char * rb_id2name(ID id)
static int parser_whole_match_p(struct parser_params *parser, const char *eos, long len, int indent)
#define NEW_RESCUE(b, res, e)
static const char * magic_comment_marker(const char *str, long len)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
static const yytype_uint8 yytranslate[]
unsigned char buf[MIME_BUF_SIZE]
static char * parser_newtok(struct parser_params *parser)
static void fixup_nodes(NODE **)
rb_encoding * rb_usascii_encoding(void)
#define rb_enc_isalnum(c, enc)
#define rb_enc_isdigit(c, enc)
unsigned char yytype_uint8
#define list_concat(h, t)
static int options(unsigned char *cp)
#define heredoc_restore(n)
stack_type parser_cond_stack
#define IS_lex_state_for(x, ls)
static NODE * arg_append_gen(struct parser_params *, NODE *, NODE *)
static void ripper_init_eventids2(void)
#define heredoc_identifier()
#define rb_enc_ispunct(c, enc)
static VALUE parser_str_new(const char *p, long n, rb_encoding *enc, int func, rb_encoding *enc0)
void rb_mark_tbl(st_table *tbl)
static int parser_magic_comment(struct parser_params *parser, const char *str, long len)
#define NEW_ENSURE(b, en)
#define token_info_pop(token)
static int arg_var_gen(struct parser_params *, ID)
#define call_bin_op(recv, id, arg1)
#define rb_warn4S(file, line, fmt, a)
#define rb_enc_asciicompat(enc)
VALUE rb_ensure(VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*e_proc)(ANYARGS), VALUE data2)
static VALUE yycompile0(VALUE arg)
int rb_char_to_option_kcode(int c, int *option, int *kcode)
#define assignable_result(x)
static int parser_tokadd_escape(struct parser_params *parser, rb_encoding **encp)
static int parser_tokadd_string(struct parser_params *, int, int, int, long *, rb_encoding **)
#define ENCODING_IS_ASCII8BIT(obj)
#define dvar_defined_get(id)
#define RUBY_DTRACE_PARSE_BEGIN_ENABLED()
#define rb_enc_isalpha(c, enc)
static NODE * new_args_gen(struct parser_params *, NODE *, NODE *, ID, NODE *, NODE *)
static int vtable_included(const struct vtable *tbl, ID id)
ID rb_intern(const char *name)
static int parser_set_number_literal(struct parser_params *parser, VALUE v, int type, int suffix)
static VALUE lex_io_gets(struct parser_params *parser, VALUE io)
NODE * rb_compile_cstr(const char *f, const char *s, int len, int line)
#define parser_is_identchar()
#define set_yylval_node(x)
static void yy_symbol_value_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep, struct parser_params *parser)
static void vtable_free(struct vtable *tbl)
#define reg_fragment_check(str, options)
#define RARRAY_ASET(a, i, v)
const struct vtable * vars
int rb_const_defined_at(VALUE, ID)
st_table * st_init_table_with_size(const struct st_hash_type *, st_index_t)
#define ENCODING_GET(obj)
rb_encoding * rb_enc_get(VALUE obj)
static void reduce_nodes_gen(struct parser_params *, NODE **)
#define YYSTACK_ALLOC_MAXIMUM
#define set_yylval_name(x)
#define NEW_GASGN(v, val)
static NODE * reg_named_capture_assign_gen(struct parser_params *parser, VALUE regexp, NODE *match)
static void parser_pushback(struct parser_params *parser, int c)
int rb_enc_symname_p(const char *name, rb_encoding *enc)
#define RARRAY_AREF(a, i)
static const yytype_uint16 yydefact[]
static int parser_here_document(struct parser_params *, NODE *)
VALUE rb_int_positive_pow(long x, unsigned long y)
int rb_is_const_name(VALUE name)
static NODE * ret_args_gen(struct parser_params *, NODE *)
void rb_set_errinfo(VALUE err)
static void dyna_pop_gen(struct parser_params *, const struct vtable *)
NODE * parser_lex_strterm
int rb_is_global_id(ID id)
static void local_pop_gen(struct parser_params *)
#define RUBY_DTRACE_SYMBOL_CREATE_ENABLED()
VALUE rb_complex_raw(VALUE x, VALUE y)
static int simple_re_meta(int c)
#define NEW_UNTIL(c, b, n)
#define new_attr_op_assign(lhs, type, attr, op, rhs)
#define aryset(node1, node2)
static const struct st_hash_type symhash
#define list_append(l, i)
#define tokaddmbc(c, enc)
#define STR_NEW3(p, n, e, func)
static const yytype_int16 yypact[]
void rb_compile_warning(const char *file, int line, const char *fmt,...)
VALUE rb_check_string_type(VALUE)
static void warning_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
#define yypact_value_is_default(yystate)
static int symbols_i(VALUE sym, ID value, VALUE ary)
static void parser_prepare(struct parser_params *parser)
static struct parser_params * parser_new(void)
#define NEW_WHILE(c, b, n)
static void yy_symbol_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep, struct parser_params *parser)
#define new_args(f, o, r, p, t)
static void rb_backref_error_gen(struct parser_params *, NODE *)
#define NEW_POSTARG(i, v)
static NODE * logop_gen(struct parser_params *, enum node_type, NODE *, NODE *)
VALUE rb_parser_new(void)
static void void_stmts_gen(struct parser_params *, NODE *)
static int parse_numvar(struct parser_params *parser)
struct rb_encoding_entry * list
static const yytype_int16 yydefgoto[]
static NODE * parser_compile_string(volatile VALUE vparser, VALUE fname, VALUE s, int line)
#define NEW_CVASGN(v, val)
static int yylex(void *, void *)
int rb_is_global_name(VALUE name)
#define NEW_OP_ASGN2(r, i, o, val)
#define NEW_MATCH3(r, n2)
long(* rb_magic_comment_length_t)(struct parser_params *parser, const char *name, long len)
#define node_assign(node1, node2)
#define NEW_OPT_ARG(i, v)
static unsigned int hash(const char *str, unsigned int len)
#define RUBY_DTRACE_SYMBOL_CREATE(arg0, arg1, arg2)
static int parser_parse_string(struct parser_params *, NODE *)
VALUE rb_filesystem_str_new_cstr(const char *)
#define ruby_eval_tree_begin
#define is_instance_id(id)
NODE * rb_parser_append_print(VALUE vparser, NODE *node)
ID rb_intern2(const char *name, long len)
const char * parser_lex_pbeg
static NODE * cond_gen(struct parser_params *, NODE *)
NODE * rb_parser_compile_cstr(volatile VALUE vparser, const char *f, const char *s, int len, int line)
static int shadowing_lvar_0(struct parser_params *parser, ID name)
VALUE rb_enc_str_new(const char *, long, rb_encoding *)
static NODE * list_concat_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_const_get_at(VALUE, ID)
static int is_global_name_punct(const int c)
static int is_private_local_id(ID name)
static int comment_at_top(struct parser_params *parser)
const char * parser_lex_p
static void dispose_string(VALUE str)
static int parser_nextc(struct parser_params *parser)
#define read_escape(flags, e)
static const char *const yytname[]
static char * yystpcpy(char *yydest, const char *yysrc)
int parser_ruby_sourceline
#define call_uni_op(recv, id)
static ID register_symid_str(ID, VALUE)
#define StringValuePtr(v)
struct RString::@109::@110 heap
static ID shadowing_lvar_gen(struct parser_params *, ID)
VALUE rb_str_new_frozen(VALUE)
static int token_info_get_column(struct parser_params *parser, const char *token)
unsigned char yytype_uint8
void(* rb_magic_comment_setter_t)(struct parser_params *parser, const char *name, const char *val)
static NODE * yycompile(struct parser_params *parser, VALUE fname, int line)
#define NEW_RESBODY(a, ex, n)
#define NEW_ARGSCAT(a, b)
#define NEW_DASGN_CURR(v, val)
static void vtable_add(struct vtable *tbl, ID id)
int rb_is_class_id(ID id)
#define NEW_CALL(r, m, a)
static const yytype_uint16 yystos[]
static int is_static_content(NODE *node)
rb_encoding * rb_ascii8bit_encoding(void)
int rb_enc_find_index(const char *name)
static NODE * aryset_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_parser_end_seen_p(VALUE vparser)
static int parser_heredoc_identifier(struct parser_params *parser)
int rb_is_const_id(ID id)
static int parser_tokadd_utf8(struct parser_params *parser, rb_encoding **encp, int string_literal, int symbol_literal, int regexp_literal)
static const struct vtable * dyna_push_gen(struct parser_params *)
#define CONST_ID(var, str)
static NODE * block_append_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_str_intern(VALUE)
#define NEW_MATCH2(n1, n2)
VALUE rb_parser_set_yydebug(VALUE self, VALUE flag)
static void new_bv_gen(struct parser_params *, ID)
#define assignable(id, node)
st_table * st_init_numtable_with_size(st_index_t)
VALUE rb_cstr_to_inum(const char *str, int base, int badcheck)
static NODE * range_op(struct parser_params *parser, NODE *node)
#define rb_enc_mbcput(c, buf, enc)
#define NEW_DEFN(i, a, d, p)
static int parser_tok_hex(struct parser_params *parser, size_t *numlen)
ID rb_check_id_cstr(const char *ptr, long len, rb_encoding *enc)
int rb_parse_in_eval(void)
NODE * rb_compile_file(const char *f, VALUE file, int start)
VALUE rb_str_buf_new(long)
VALUE rb_usascii_str_new(const char *, long)
#define rb_node_newnode(type, a1, a2, a3)
#define nd_set_line(n, l)
VALUE rb_vsprintf(const char *, va_list)
#define block_append(h, t)
VALUE(* parser_lex_gets)(struct parser_params *, VALUE)
#define RTYPEDDATA_TYPE(v)
#define NEW_LASGN(v, val)
struct token_info token_info
static NODE * literal_concat_gen(struct parser_params *, NODE *, NODE *)
static NODE * call_uni_op_gen(struct parser_params *, NODE *, ID)
static int literal_concat0(struct parser_params *, VALUE, VALUE)
int rb_is_instance_id(ID id)
void rb_parser_free(struct parser_params *parser, void *ptr)
#define ENCODING_SET(obj, i)
int rb_local_defined(ID id)
#define IS_LABEL_SUFFIX(n)
NODE * parser_eval_tree_begin
static int match(VALUE str, VALUE pat, VALUE hash, int(*cb)(VALUE, VALUE))
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
VALUE rb_str_append(VALUE, VALUE)
#define rb_ascii8bit_encindex()
int st_foreach(st_table *, int(*)(ANYARGS), st_data_t)
static void parser_set_token_info(struct parser_params *parser, const char *name, const char *val)
#define NEW_NODE(t, a0, a1, a2)
#define NEW_ARGS_AUX(r, b)
int rb_memcicmp(const void *, const void *, long)
NODE * rb_parser_compile_string_path(volatile VALUE vparser, VALUE f, VALUE s, int line)
static VALUE lex_getline(struct parser_params *parser)
VALUE rb_sym_all_symbols(void)
#define rb_enc_prev_char(s, p, e, enc)
static NODE * node_newnode(struct parser_params *, enum node_type, VALUE, VALUE, VALUE)
#define whole_match_p(e, l, i)
unsigned long ruby_scan_oct(const char *, size_t, size_t *)
static int yysyntax_error(YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
static int parser_peek_variable_name(struct parser_params *parser)
VALUE rb_attr_get(VALUE, ID)
#define is_attrset_id(id)
static int local_id_gen(struct parser_params *, ID)
#define SPECIAL_PUNCT(idx)
#define NEW_CDECL(v, val, path)
void rb_gc_mark_symbols(int full_mark)
#define rb_backref_error(n)
#define NEW_DEFS(r, i, a, d)
static void ripper_init_eventids2_table(VALUE self)
VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc)
static NODE * new_args_tail_gen(struct parser_params *, NODE *, ID, ID)
#define rb_warningS(fmt, a)
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
rb_encoding * rb_enc_from_index(int index)
VALUE rb_str_new(const char *, long)