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))
166 # define BITSTACK_PUSH(stack, n) ((stack) = ((stack)<<1)|((n)&1))
167 # define BITSTACK_POP(stack) ((stack) = (stack) >> 1)
168 # define BITSTACK_LEXPOP(stack) ((stack) = ((stack) >> 1) | ((stack) & 1))
169 # define BITSTACK_SET_P(stack) ((stack)&1)
171 #define COND_PUSH(n) BITSTACK_PUSH(cond_stack, (n))
172 #define COND_POP() BITSTACK_POP(cond_stack)
173 #define COND_LEXPOP() BITSTACK_LEXPOP(cond_stack)
174 #define COND_P() BITSTACK_SET_P(cond_stack)
176 #define CMDARG_PUSH(n) BITSTACK_PUSH(cmdarg_stack, (n))
177 #define CMDARG_POP() BITSTACK_POP(cmdarg_stack)
178 #define CMDARG_LEXPOP() BITSTACK_LEXPOP(cmdarg_stack)
179 #define CMDARG_P() BITSTACK_SET_P(cmdarg_stack)
196 #define DVARS_INHERIT ((void*)1)
197 #define DVARS_TOPSCOPE NULL
198 #define DVARS_SPECIAL_P(tbl) (!POINTER_P(tbl))
199 #define POINTER_P(val) ((VALUE)(val) & ~(VALUE)3)
222 if (
VTBL_DEBUG) printf(
"vtable_alloc: %p\n", (
void *)tbl);
229 if (
VTBL_DEBUG)printf(
"vtable_free: %p\n", (
void *)tbl);
242 rb_bug(
"vtable_add: vtable is not allocated (%p)", (
void *)tbl);
259 for (i = 0; i < tbl->
pos; i++) {
260 if (tbl->
tbl[i] ==
id) {
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))
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
1615 static const yytype_uint16 yytoknum[] =
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,
1636 static const yytype_uint16
yyr1[] =
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)
4535 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
4551 #if (defined __STDC__ || defined __C99__FUNC__ \
4552 || defined __cplusplus || defined _MSC_VER)
4557 yy_symbol_print (yyoutput, yytype, yyvaluep, parser)
4565 YYFPRINTF (yyoutput,
"token %s (", yytname[yytype]);
4567 YYFPRINTF (yyoutput,
"nterm %s (", yytname[yytype]);
4578 #if (defined __STDC__ || defined __C99__FUNC__ \
4579 || defined __cplusplus || defined _MSC_VER)
4581 yy_stack_print (yytype_int16 *
yybottom, yytype_int16 *
yytop)
4584 yy_stack_print (yybottom, yytop)
4585 yytype_int16 *yybottom;
4586 yytype_int16 *yytop;
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)
4615 yy_reduce_print (yyvsp, yyrule, parser)
4621 int yynrhs = yyr2[
yyrule];
4624 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu):\n",
4627 for (yyi = 0; yyi < yynrhs; yyi++)
4630 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + 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)
4683 yystrlen (
const char *
yystr)
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)
4710 yystpcpy (yydest, 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: ;
4768 return yystrlen (yystr);
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];
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)
4841 if (yycheck[yyx + yyn] == yyx && yyx !=
YYTERROR
4844 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
4850 yyarg[yycount++] = yytname[yyx];
4851 yysize1 = yysize +
yytnamerr (0, 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)
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;
5083 yytype_int16 *yyss1 =
yyss;
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;
5109 yytype_int16 *yyss1 =
yyss;
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: "));
5164 yychar = yytoken =
YYEOF;
5165 YYDPRINTF ((stderr,
"Now at end of input.\n"));
5176 if (yyn < 0 ||
YYLAST < yyn || yycheck[yyn] != yytoken)
5229 yyval = yyvsp[1-
yylen];
5238 #line 863 "ripper.y"
5252 #line 872 "ripper.y"
5259 NODE *node = (yyvsp[(2) - (2)].
val);
5260 while (node->nd_next) {
5261 node = node->nd_next;
5268 (yyval.
val) = (yyvsp[(2) - (2)].
val);
5269 parser->result = dispatch1(program, (yyval.
val));
5278 #line 895 "ripper.y"
5285 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5292 #line 906 "ripper.y"
5297 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new),
5306 #line 915 "ripper.y"
5311 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5319 #line 923 "ripper.y"
5324 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5332 #line 931 "ripper.y"
5341 #line 938 "ripper.y"
5353 #line 945 "ripper.y"
5357 (yyvsp[(4) - (5)].
val));
5362 (yyval.
val) = dispatch1(BEGIN, (yyvsp[(4) - (5)].
val));
5370 #line 962 "ripper.y"
5373 (yyval.
val) = (yyvsp[(1) - (4)].
val);
5374 if ((yyvsp[(2) - (4)].
val)) {
5377 else if ((yyvsp[(3) - (4)].
val)) {
5378 rb_warn0(
"else without rescue is useless");
5381 if ((yyvsp[(4) - (4)].
val)) {
5403 #line 992 "ripper.y"
5410 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5417 #line 1003 "ripper.y"
5422 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new),
5431 #line 1012 "ripper.y"
5436 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5444 #line 1020 "ripper.y"
5449 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5457 #line 1028 "ripper.y"
5466 #line 1034 "ripper.y"
5468 (yyval.
val) = (yyvsp[(1) - (1)].
val);
5475 #line 1038 "ripper.y"
5477 yyerror(
"BEGIN is permitted only at toplevel");
5488 #line 1046 "ripper.y"
5492 (yyvsp[(4) - (5)].
val));
5497 (yyval.
val) = dispatch1(BEGIN, (yyvsp[(4) - (5)].
val));
5505 #line 1058 "ripper.y"
5512 #line 1059 "ripper.y"
5517 (yyval.
val) = dispatch2(
alias, (yyvsp[(2) - (4)].
val), (yyvsp[(4) - (4)].
val));
5525 #line 1067 "ripper.y"
5530 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5538 #line 1075 "ripper.y"
5543 buf[1] = (char)(yyvsp[(3) - (3)].
val)->nd_nth;
5546 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5554 #line 1086 "ripper.y"
5557 yyerror(
"can't make alias for the number variables");
5560 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5561 (yyval.
val) = dispatch1(alias_error, (yyval.
val));
5569 #line 1096 "ripper.y"
5572 (yyval.
val) = (yyvsp[(2) - (2)].
val);
5574 (yyval.
val) = dispatch1(undef, (yyvsp[(2) - (2)].
val));
5582 #line 1104 "ripper.y"
5588 (yyval.
val) = dispatch2(if_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5596 #line 1113 "ripper.y"
5602 (yyval.
val) = dispatch2(unless_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5610 #line 1122 "ripper.y"
5620 (yyval.
val) = dispatch2(while_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5628 #line 1135 "ripper.y"
5638 (yyval.
val) = dispatch2(until_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5646 #line 1148 "ripper.y"
5652 (yyval.
val) = dispatch2(rescue_mod, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5660 #line 1157 "ripper.y"
5663 rb_warn0(
"END in method; use at_exit");
5669 (yyval.
val) = dispatch1(
END, (yyvsp[(3) - (4)].
val));
5677 #line 1170 "ripper.y"
5682 (yyval.
val) = (yyvsp[(1) - (3)].
val);
5684 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5692 #line 1180 "ripper.y"
5702 #line 1185 "ripper.y"
5710 if ((yyvsp[(5) - (6)].
val) ==
tOROP) {
5711 (yyvsp[(5) - (6)].
val) = 0;
5713 else if ((yyvsp[(5) - (6)].
val) ==
tANDOP) {
5714 (yyvsp[(5) - (6)].
val) = 1;
5720 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].
val));
5728 #line 1206 "ripper.y"
5738 #line 1211 "ripper.y"
5748 #line 1216 "ripper.y"
5754 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
5755 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
5763 #line 1226 "ripper.y"
5773 #line 1231 "ripper.y"
5779 (yyval.
val) = dispatch2(assign, dispatch1(var_field, (yyvsp[(1) - (3)].
val)), (yyvsp[(3) - (3)].
val));
5780 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
5788 #line 1241 "ripper.y"
5794 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5802 #line 1250 "ripper.y"
5806 (yyval.
val) = (yyvsp[(1) - (3)].
val);
5808 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5816 #line 1262 "ripper.y"
5822 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5830 #line 1271 "ripper.y"
5836 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5844 #line 1284 "ripper.y"
5857 #line 1292 "ripper.y"
5870 #line 1300 "ripper.y"
5883 #line 1308 "ripper.y"
5888 (yyval.
val) = dispatch2(unary, ripper_id2sym(
'!'), (yyvsp[(2) - (2)].
val));
5896 #line 1319 "ripper.y"
5900 (yyval.
val) = (yyvsp[(1) - (1)].
val);
5903 (yyval.
val) = (yyvsp[(1) - (1)].
val);
5911 #line 1336 "ripper.y"
5914 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
5916 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), (yyvsp[(2) - (4)].
val), (yyvsp[(3) - (4)].
val));
5917 (yyval.
val) = method_arg((yyval.
val), (yyvsp[(4) - (4)].
val));
5925 #line 1347 "ripper.y"
5938 #line 1357 "ripper.y"
5953 #line 1369 "ripper.y"
5966 #line 1379 "ripper.y"
5969 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5972 (yyval.
val) = dispatch2(command, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
5980 #line 1388 "ripper.y"
5986 (yyval.
val) = (yyvsp[(3) - (3)].
val);
5989 (yyval.
val) = dispatch2(command, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
5990 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(3) - (3)].
val));
5998 #line 1401 "ripper.y"
6001 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
6004 (yyval.
val) = dispatch4(
command_call, (yyvsp[(1) - (4)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
6012 #line 1410 "ripper.y"
6017 (yyval.
val) = (yyvsp[(5) - (5)].
val);
6020 (yyval.
val) = dispatch4(
command_call, (yyvsp[(1) - (5)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
6021 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
6029 #line 1422 "ripper.y"
6032 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
6043 #line 1431 "ripper.y"
6048 (yyval.
val) = (yyvsp[(5) - (5)].
val);
6052 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
6060 #line 1443 "ripper.y"
6066 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].
val));
6074 #line 1452 "ripper.y"
6080 (yyval.
val) = dispatch1(yield, (yyvsp[(2) - (2)].
val));
6088 #line 1461 "ripper.y"
6093 (yyval.
val) = dispatch1(
return, (yyvsp[(2) - (2)].
val));
6101 #line 1469 "ripper.y"
6106 (yyval.
val) = dispatch1(
break, (yyvsp[(2) - (2)].
val));
6114 #line 1477 "ripper.y"
6119 (yyval.
val) = dispatch1(next, (yyvsp[(2) - (2)].
val));
6127 #line 1488 "ripper.y"
6130 (yyval.
val) = (yyvsp[(2) - (3)].
val);
6132 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6140 #line 1499 "ripper.y"
6145 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6153 #line 1509 "ripper.y"
6158 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6166 #line 1517 "ripper.y"
6171 (yyval.
val) = mlhs_add((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
6179 #line 1525 "ripper.y"
6184 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6192 #line 1533 "ripper.y"
6197 (yyvsp[(1) - (5)].
val) = mlhs_add_star((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
6198 (yyval.
val) = mlhs_add((yyvsp[(1) - (5)].
val), (yyvsp[(5) - (5)].
val));
6206 #line 1542 "ripper.y"
6211 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (2)].
val),
Qnil);
6219 #line 1550 "ripper.y"
6224 (yyvsp[(1) - (4)].
val) = mlhs_add_star((yyvsp[(1) - (4)].
val),
Qnil);
6225 (yyval.
val) = mlhs_add((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val));
6233 #line 1559 "ripper.y"
6238 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (2)].
val));
6246 #line 1567 "ripper.y"
6251 (yyvsp[(2) - (4)].
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (4)].
val));
6252 (yyval.
val) = mlhs_add((yyvsp[(2) - (4)].
val), (yyvsp[(4) - (4)].
val));
6260 #line 1576 "ripper.y"
6265 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6273 #line 1584 "ripper.y"
6278 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6279 (yyval.
val) = mlhs_add((yyval.
val), (yyvsp[(3) - (3)].
val));
6287 #line 1596 "ripper.y"
6290 (yyval.
val) = (yyvsp[(2) - (3)].
val);
6292 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6300 #line 1606 "ripper.y"
6305 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (2)].
val));
6313 #line 1614 "ripper.y"
6318 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
6326 #line 1624 "ripper.y"
6331 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
6339 #line 1632 "ripper.y"
6344 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6352 #line 1642 "ripper.y"
6361 #line 1646 "ripper.y"
6370 #line 1650 "ripper.y"
6383 #line 1658 "ripper.y"
6388 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6396 #line 1666 "ripper.y"
6401 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6409 #line 1674 "ripper.y"
6414 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6422 #line 1682 "ripper.y"
6426 yyerror(
"dynamic constant assignment");
6430 yyerror(
"dynamic constant assignment");
6431 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6439 #line 1694 "ripper.y"
6443 yyerror(
"dynamic constant assignment");
6446 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (2)].
val));
6454 #line 1704 "ripper.y"
6460 (yyval.
val) = dispatch1(var_field, (yyvsp[(1) - (1)].
val));
6461 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6469 #line 1716 "ripper.y"
6475 (yyval.
val) = dispatch1(var_field, (yyval.
val));
6483 #line 1725 "ripper.y"
6489 (yyval.
val) = dispatch1(var_field, (yyval.
val));
6497 #line 1734 "ripper.y"
6510 #line 1742 "ripper.y"
6515 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6523 #line 1750 "ripper.y"
6536 #line 1758 "ripper.y"
6541 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6549 #line 1766 "ripper.y"
6553 yyerror(
"dynamic constant assignment");
6556 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6558 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6567 #line 1779 "ripper.y"
6571 yyerror(
"dynamic constant assignment");
6574 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (2)].
val));
6576 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6585 #line 1792 "ripper.y"
6591 (yyval.
val) = dispatch1(assign_error, (yyvsp[(1) - (1)].
val));
6599 #line 1803 "ripper.y"
6602 yyerror(
"class/module name must be CONSTANT");
6604 (yyval.
val) = dispatch1(class_name_error, (yyvsp[(1) - (1)].
val));
6612 #line 1814 "ripper.y"
6617 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].
val));
6625 #line 1822 "ripper.y"
6630 (yyval.
val) = dispatch1(const_ref, (yyvsp[(1) - (1)].
val));
6638 #line 1830 "ripper.y"
6643 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6651 #line 1843 "ripper.y"
6654 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6661 #line 1848 "ripper.y"
6665 (yyval.
val) = (yyvsp[(1) - (1)].
id);
6667 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6675 #line 1863 "ripper.y"
6680 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].
val));
6688 #line 1874 "ripper.y"
6701 #line 1881 "ripper.y"
6708 #line 1882 "ripper.y"
6721 #line 1891 "ripper.y"
6728 #line 1892 "ripper.y"
6735 #line 1893 "ripper.y"
6742 #line 1894 "ripper.y"
6749 #line 1895 "ripper.y"
6756 #line 1896 "ripper.y"
6763 #line 1897 "ripper.y"
6770 #line 1898 "ripper.y"
6777 #line 1899 "ripper.y"
6784 #line 1900 "ripper.y"
6791 #line 1901 "ripper.y"
6798 #line 1902 "ripper.y"
6805 #line 1903 "ripper.y"
6812 #line 1904 "ripper.y"
6819 #line 1905 "ripper.y"
6826 #line 1906 "ripper.y"
6833 #line 1907 "ripper.y"
6840 #line 1908 "ripper.y"
6847 #line 1909 "ripper.y"
6854 #line 1910 "ripper.y"
6861 #line 1911 "ripper.y"
6868 #line 1912 "ripper.y"
6875 #line 1913 "ripper.y"
6882 #line 1914 "ripper.y"
6889 #line 1915 "ripper.y"
6896 #line 1916 "ripper.y"
6903 #line 1917 "ripper.y"
6910 #line 1918 "ripper.y"
6917 #line 1919 "ripper.y"
6924 #line 1920 "ripper.y"
6931 #line 1938 "ripper.y"
6937 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6945 #line 1947 "ripper.y"
6952 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (5)].
val), dispatch2(rescue_mod, (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val)));
6960 #line 1957 "ripper.y"
6970 #line 1962 "ripper.y"
6976 (yyvsp[(3) - (5)].
val) = dispatch2(rescue_mod, (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
6985 #line 1972 "ripper.y"
6998 if ((yyvsp[(5) - (6)].
val) ==
tOROP) {
6999 (yyvsp[(5) - (6)].
val) = 0;
7001 else if ((yyvsp[(5) - (6)].
val) ==
tANDOP) {
7002 (yyvsp[(5) - (6)].
val) = 1;
7007 (yyvsp[(1) - (6)].
val) = dispatch2(aref_field, (yyvsp[(1) - (6)].
val),
escape_Qundef((yyvsp[(3) - (6)].
val)));
7008 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (6)].
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].
val));
7016 #line 1998 "ripper.y"
7026 #line 2003 "ripper.y"
7036 #line 2008 "ripper.y"
7046 #line 2013 "ripper.y"
7052 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
7053 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
7061 #line 2023 "ripper.y"
7067 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (4)].
val));
7068 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
7076 #line 2033 "ripper.y"
7082 (yyval.
val) = dispatch1(var_field, (yyvsp[(1) - (3)].
val));
7083 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
7084 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
7092 #line 2044 "ripper.y"
7103 (yyval.
val) = dispatch2(dot2, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7111 #line 2058 "ripper.y"
7122 (yyval.
val) = dispatch2(dot3, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7130 #line 2072 "ripper.y"
7135 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'+'), (yyvsp[(3) - (3)].
val));
7143 #line 2080 "ripper.y"
7148 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'-'), (yyvsp[(3) - (3)].
val));
7156 #line 2088 "ripper.y"
7161 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'*'), (yyvsp[(3) - (3)].
val));
7169 #line 2096 "ripper.y"
7174 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'/'), (yyvsp[(3) - (3)].
val));
7182 #line 2104 "ripper.y"
7187 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'%'), (yyvsp[(3) - (3)].
val));
7195 #line 2112 "ripper.y"
7208 #line 2120 "ripper.y"
7222 #line 2129 "ripper.y"
7235 #line 2137 "ripper.y"
7248 #line 2145 "ripper.y"
7253 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'|'), (yyvsp[(3) - (3)].
val));
7261 #line 2153 "ripper.y"
7266 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'^'), (yyvsp[(3) - (3)].
val));
7274 #line 2161 "ripper.y"
7279 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'&'), (yyvsp[(3) - (3)].
val));
7287 #line 2169 "ripper.y"
7300 #line 2177 "ripper.y"
7305 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'>'), (yyvsp[(3) - (3)].
val));
7313 #line 2185 "ripper.y"
7326 #line 2193 "ripper.y"
7331 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'<'), (yyvsp[(3) - (3)].
val));
7339 #line 2201 "ripper.y"
7352 #line 2209 "ripper.y"
7365 #line 2217 "ripper.y"
7378 #line 2225 "ripper.y"
7391 #line 2233 "ripper.y"
7407 #line 2244 "ripper.y"
7420 #line 2252 "ripper.y"
7425 (yyval.
val) = dispatch2(unary,
ID2SYM(
'!'), (yyvsp[(2) - (2)].
val));
7433 #line 2260 "ripper.y"
7438 (yyval.
val) = dispatch2(unary,
ID2SYM(
'~'), (yyvsp[(2) - (2)].
val));
7446 #line 2268 "ripper.y"
7459 #line 2276 "ripper.y"
7472 #line 2284 "ripper.y"
7485 #line 2292 "ripper.y"
7498 #line 2299 "ripper.y"
7505 #line 2300 "ripper.y"
7512 (yyval.
val) = dispatch1(defined, (yyvsp[(4) - (4)].
val));
7520 #line 2310 "ripper.y"
7527 (yyval.
val) = dispatch3(ifop, (yyvsp[(1) - (6)].
val), (yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].
val));
7535 #line 2320 "ripper.y"
7537 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7544 #line 2326 "ripper.y"
7548 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7551 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7559 #line 2339 "ripper.y"
7561 (yyval.
val) = (yyvsp[(1) - (2)].
val);
7568 #line 2343 "ripper.y"
7573 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val));
7581 #line 2351 "ripper.y"
7586 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7594 #line 2361 "ripper.y"
7597 (yyval.
val) = (yyvsp[(2) - (3)].
val);
7607 #line 2377 "ripper.y"
7609 (yyval.
val) = (yyvsp[(1) - (2)].
val);
7616 #line 2381 "ripper.y"
7621 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val));
7629 #line 2389 "ripper.y"
7634 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7642 #line 2399 "ripper.y"
7648 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7656 #line 2408 "ripper.y"
7661 (yyval.
val) = arg_add_optblock((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
7669 #line 2416 "ripper.y"
7675 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7676 (yyval.
val) = arg_add_optblock((yyval.
val), (yyvsp[(2) - (2)].
val));
7684 #line 2426 "ripper.y"
7690 (yyval.
val) = arg_add_optblock(arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val)), (yyvsp[(4) - (4)].
val));
7698 #line 2437 "ripper.y"
7700 (yyval.
val) = arg_add_block(arg_new(), (yyvsp[(1) - (1)].
val));
7707 #line 2443 "ripper.y"
7717 #line 2448 "ripper.y"
7721 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7728 #line 2456 "ripper.y"
7733 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7741 #line 2466 "ripper.y"
7743 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7750 #line 2470 "ripper.y"
7759 #line 2476 "ripper.y"
7764 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7772 #line 2484 "ripper.y"
7777 (yyval.
val) = arg_add_star(arg_new(), (yyvsp[(2) - (2)].
val));
7785 #line 2492 "ripper.y"
7796 (yyval.
val) = arg_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7804 #line 2506 "ripper.y"
7815 (yyval.
val) = arg_add_star((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val));
7823 #line 2526 "ripper.y"
7834 (yyval.
val) = mrhs_add(args2mrhs((yyvsp[(1) - (3)].
val)), (yyvsp[(3) - (3)].
val));
7842 #line 2540 "ripper.y"
7854 (yyval.
val) = mrhs_add_star(args2mrhs((yyvsp[(1) - (4)].
val)), (yyvsp[(4) - (4)].
val));
7862 #line 2555 "ripper.y"
7867 (yyval.
val) = mrhs_add_star(mrhs_new(), (yyvsp[(2) - (2)].
val));
7875 #line 2575 "ripper.y"
7880 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (1)].
val)), arg_new());
7888 #line 2583 "ripper.y"
7902 #line 2593 "ripper.y"
7906 if ((yyvsp[(3) - (4)].
val) ==
NULL) {
7917 (yyval.
val) = dispatch1(begin, (yyvsp[(3) - (4)].
val));
7925 #line 2610 "ripper.y"
7932 #line 2611 "ripper.y"
7937 (yyval.
val) = dispatch1(paren, 0);
7945 #line 2619 "ripper.y"
7955 #line 2623 "ripper.y"
7962 #line 2624 "ripper.y"
7966 (yyval.
val) = (yyvsp[(3) - (5)].
val);
7968 (yyval.
val) = dispatch1(paren, (yyvsp[(3) - (5)].
val));
7976 #line 2633 "ripper.y"
7979 (yyval.
val) = (yyvsp[(2) - (3)].
val);
7981 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].
val));
7989 #line 2641 "ripper.y"
7994 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
8002 #line 2649 "ripper.y"
8007 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].
val));
8015 #line 2657 "ripper.y"
8018 if ((yyvsp[(2) - (3)].
val) == 0) {
8022 (yyval.
val) = (yyvsp[(2) - (3)].
val);
8033 #line 2670 "ripper.y"
8046 #line 2678 "ripper.y"
8059 #line 2686 "ripper.y"
8064 (yyval.
val) = dispatch1(yield, dispatch1(paren, (yyvsp[(3) - (4)].
val)));
8072 #line 2694 "ripper.y"
8077 (yyval.
val) = dispatch1(yield, dispatch1(paren, arg_new()));
8085 #line 2702 "ripper.y"
8098 #line 2709 "ripper.y"
8105 #line 2710 "ripper.y"
8112 (yyval.
val) = dispatch1(defined, (yyvsp[(5) - (6)].
val));
8120 #line 2720 "ripper.y"
8133 #line 2728 "ripper.y"
8146 #line 2736 "ripper.y"
8150 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8152 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].
val)), arg_new());
8153 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(2) - (2)].
val));
8161 #line 2747 "ripper.y"
8166 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8168 (yyval.
val) = method_add_block((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
8176 #line 2757 "ripper.y"
8178 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8185 #line 2764 "ripper.y"
8199 #line 2776 "ripper.y"
8213 #line 2784 "ripper.y"
8220 #line 2784 "ripper.y"
8227 #line 2787 "ripper.y"
8233 (yyval.
val) = dispatch2(
while, (yyvsp[(3) - (7)].
val), (yyvsp[(6) - (7)].
val));
8241 #line 2795 "ripper.y"
8248 #line 2795 "ripper.y"
8255 #line 2798 "ripper.y"
8261 (yyval.
val) = dispatch2(until, (yyvsp[(3) - (7)].
val), (yyvsp[(6) - (7)].
val));
8269 #line 2809 "ripper.y"
8275 (yyval.
val) = dispatch2(
case, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val));
8283 #line 2818 "ripper.y"
8288 (yyval.
val) = dispatch2(
case,
Qnil, (yyvsp[(3) - (4)].
val));
8296 #line 2826 "ripper.y"
8303 #line 2828 "ripper.y"
8310 #line 2831 "ripper.y"
8355 m->nd_next = (yyvsp[(2) - (9)].
val);
8364 tbl[0] = 1; tbl[1] =
id;
8368 (yyval.
val) = dispatch3(
for, (yyvsp[(2) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(8) - (9)].
val));
8376 #line 2892 "ripper.y"
8379 yyerror(
"class definition in method body");
8391 #line 2903 "ripper.y"
8397 (yyval.
val) = dispatch3(
class, (yyvsp[(2) - (6)].
val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].
val));
8406 #line 2913 "ripper.y"
8416 #line 2918 "ripper.y"
8427 #line 2925 "ripper.y"
8433 (yyval.
val) = dispatch2(sclass, (yyvsp[(3) - (8)].
val), (yyvsp[(7) - (8)].
val));
8444 #line 2937 "ripper.y"
8447 yyerror(
"module definition in method body");
8459 #line 2948 "ripper.y"
8465 (yyval.
val) = dispatch2(module, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val));
8474 #line 2958 "ripper.y"
8486 #line 2967 "ripper.y"
8494 (yyval.
val) = dispatch3(def, (yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), (yyvsp[(5) - (6)].
val));
8505 #line 2980 "ripper.y"
8512 #line 2981 "ripper.y"
8523 #line 2989 "ripper.y"
8528 (yyval.
val) =
NEW_DEFS((yyvsp[(2) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(7) - (9)].
val), body);
8531 (yyval.
val) = dispatch5(defs, (yyvsp[(2) - (9)].
val), (yyvsp[(3) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(7) - (9)].
val), (yyvsp[(8) - (9)].
val));
8541 #line 3002 "ripper.y"
8546 (yyval.
val) = dispatch1(
break, arg_new());
8554 #line 3010 "ripper.y"
8559 (yyval.
val) = dispatch1(next, arg_new());
8567 #line 3018 "ripper.y"
8580 #line 3026 "ripper.y"
8593 #line 3036 "ripper.y"
8597 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8600 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8608 #line 3048 "ripper.y"
8617 #line 3054 "ripper.y"
8626 #line 3060 "ripper.y"
8635 #line 3066 "ripper.y"
8644 #line 3072 "ripper.y"
8653 #line 3078 "ripper.y"
8662 #line 3084 "ripper.y"
8671 #line 3090 "ripper.y"
8680 #line 3096 "ripper.y"
8689 #line 3102 "ripper.y"
8702 #line 3112 "ripper.y"
8711 #line 3120 "ripper.y"
8718 #line 3126 "ripper.y"
8719 { (yyval.
val) = (yyvsp[(2) - (2)].
val); }
8725 #line 3133 "ripper.y"
8732 #line 3142 "ripper.y"
8746 #line 3154 "ripper.y"
8749 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8751 (yyval.
val) = dispatch1(
else, (yyvsp[(2) - (2)].
val));
8759 #line 3168 "ripper.y"
8764 (yyval.
val) = dispatch1(mlhs_paren, (yyval.
val));
8772 #line 3176 "ripper.y"
8775 (yyval.
val) = (yyvsp[(2) - (3)].
val);
8777 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
8785 #line 3186 "ripper.y"
8790 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
8798 #line 3194 "ripper.y"
8803 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
8811 #line 3204 "ripper.y"
8816 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8824 #line 3212 "ripper.y"
8830 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (4)].
val), (yyval.
val));
8838 #line 3221 "ripper.y"
8844 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (6)].
val), (yyval.
val));
8852 #line 3230 "ripper.y"
8857 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].
val),
Qnil);
8865 #line 3238 "ripper.y"
8870 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (5)].
val), (yyvsp[(5) - (5)].
val));
8878 #line 3246 "ripper.y"
8884 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyval.
val));
8892 #line 3255 "ripper.y"
8901 (yyval.
val) = mlhs_add_star((yyval.
val), (yyvsp[(4) - (4)].
val));
8909 #line 3267 "ripper.y"
8914 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
8922 #line 3275 "ripper.y"
8927 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
8935 #line 3286 "ripper.y"
8944 #line 3290 "ripper.y"
8953 #line 3294 "ripper.y"
8962 #line 3298 "ripper.y"
8971 #line 3304 "ripper.y"
8973 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8980 #line 3308 "ripper.y"
8989 #line 3314 "ripper.y"
8998 #line 3318 "ripper.y"
9000 (yyval.
val) =
new_args((yyvsp[(1) - (8)].
val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].
val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].
val));
9007 #line 3322 "ripper.y"
9016 #line 3326 "ripper.y"
9025 #line 3330 "ripper.y"
9034 #line 3334 "ripper.y"
9039 dispatch1(excessed_comma, (yyval.
val));
9047 #line 3342 "ripper.y"
9056 #line 3346 "ripper.y"
9065 #line 3350 "ripper.y"
9074 #line 3354 "ripper.y"
9083 #line 3358 "ripper.y"
9092 #line 3362 "ripper.y"
9101 #line 3366 "ripper.y"
9110 #line 3370 "ripper.y"
9119 #line 3374 "ripper.y"
9128 #line 3381 "ripper.y"
9137 #line 3387 "ripper.y"
9151 #line 3396 "ripper.y"
9165 #line 3405 "ripper.y"
9168 (yyval.
val) = (yyvsp[(2) - (4)].
val);
9178 #line 3416 "ripper.y"
9187 #line 3420 "ripper.y"
9192 (yyval.
val) = (yyvsp[(3) - (4)].
val);
9200 #line 3432 "ripper.y"
9209 #line 3439 "ripper.y"
9218 #line 3446 "ripper.y"
9231 #line 3454 "ripper.y"
9240 #line 3459 "ripper.y"
9249 #line 3462 "ripper.y"
9259 #line 3467 "ripper.y"
9268 #line 3470 "ripper.y"
9278 #line 3475 "ripper.y"
9287 (yyval.
val) = dispatch2(lambda, (yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].
val));
9296 #line 3490 "ripper.y"
9299 (yyval.
val) = (yyvsp[(2) - (4)].
val);
9301 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (4)].
val));
9309 #line 3498 "ripper.y"
9311 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9318 #line 3504 "ripper.y"
9320 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9327 #line 3508 "ripper.y"
9329 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9336 #line 3514 "ripper.y"
9348 #line 3523 "ripper.y"
9363 #line 3535 "ripper.y"
9373 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9376 (yyval.
val) = method_add_block((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9384 #line 3551 "ripper.y"
9387 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
9389 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), (yyvsp[(2) - (4)].
val), (yyvsp[(3) - (4)].
val));
9390 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9398 #line 3560 "ripper.y"
9403 (yyval.
val) = (yyvsp[(5) - (5)].
val);
9406 (yyval.
val) = dispatch4(
command_call, (yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
9407 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
9415 #line 3572 "ripper.y"
9420 (yyval.
val) = (yyvsp[(5) - (5)].
val);
9423 (yyval.
val) = dispatch4(
command_call, (yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
9424 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
9432 #line 3586 "ripper.y"
9435 (yyval.
val) = (yyvsp[(1) - (2)].
val);
9438 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].
val)), (yyvsp[(2) - (2)].
val));
9446 #line 3595 "ripper.y"
9457 #line 3601 "ripper.y"
9460 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
9463 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (5)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
9464 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(5) - (5)].
val));
9472 #line 3611 "ripper.y"
9483 #line 3617 "ripper.y"
9486 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
9489 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (5)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
9490 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(5) - (5)].
val));
9498 #line 3627 "ripper.y"
9511 #line 3635 "ripper.y"
9522 #line 3641 "ripper.y"
9528 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), ripper_id2sym(
'.'),
9530 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9538 #line 3652 "ripper.y"
9549 #line 3658 "ripper.y"
9557 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9565 #line 3669 "ripper.y"
9570 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].
val));
9578 #line 3677 "ripper.y"
9591 #line 3685 "ripper.y"
9608 #line 3699 "ripper.y"
9621 #line 3708 "ripper.y"
9636 #line 3718 "ripper.y"
9649 #line 3727 "ripper.y"
9664 #line 3741 "ripper.y"
9667 (yyval.
val) =
NEW_WHEN((yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
9677 #line 3757 "ripper.y"
9680 if ((yyvsp[(3) - (6)].
val)) {
9685 fixpos((yyval.
val), (yyvsp[(2) - (6)].
val)?(yyvsp[(2) - (6)].
val):(yyvsp[(5) - (6)].
val));
9687 (yyval.
val) = dispatch4(rescue,
9699 #line 3777 "ripper.y"
9712 #line 3785 "ripper.y"
9717 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9725 #line 3796 "ripper.y"
9727 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9734 #line 3803 "ripper.y"
9737 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9739 (yyval.
val) = dispatch1(ensure, (yyvsp[(2) - (2)].
val));
9747 #line 3815 "ripper.y"
9752 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].
val));
9760 #line 3826 "ripper.y"
9763 NODE *node = (yyvsp[(1) - (1)].
val);
9772 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9780 #line 3845 "ripper.y"
9785 (yyval.
val) = dispatch2(string_concat, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9793 #line 3855 "ripper.y"
9796 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9798 (yyval.
val) = dispatch1(string_literal, (yyvsp[(2) - (3)].
val));
9806 #line 3865 "ripper.y"
9809 NODE *node = (yyvsp[(2) - (3)].
val);
9828 (yyval.
val) = dispatch1(xstring_literal, (yyvsp[(2) - (3)].
val));
9836 #line 3892 "ripper.y"
9840 NODE *node = (yyvsp[(2) - (3)].
val);
9864 for (list = (prev = node)->
nd_next;
list; list = list->nd_next) {
9866 VALUE tail = list->nd_head->nd_lit;
9868 VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
9874 prev->nd_next = list->nd_next;
9887 if (!node->nd_next) {
9896 (yyval.
val) = dispatch2(regexp_literal, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
9904 #line 3957 "ripper.y"
9910 (yyval.
val) = dispatch1(array, (yyval.
val));
9918 #line 3966 "ripper.y"
9921 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9923 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
9931 #line 3976 "ripper.y"
9944 #line 3984 "ripper.y"
9949 (yyval.
val) = dispatch2(words_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
9957 #line 3996 "ripper.y"
9960 (yyval.
val) = dispatch2(word_add, (yyval.
val), (yyvsp[(1) - (1)].
val));
9967 #line 4002 "ripper.y"
9972 (yyval.
val) = dispatch2(word_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9980 #line 4012 "ripper.y"
9986 (yyval.
val) = dispatch1(array, (yyval.
val));
9994 #line 4021 "ripper.y"
9997 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9999 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
10007 #line 4031 "ripper.y"
10020 #line 4039 "ripper.y"
10033 (yyval.
val) = dispatch2(symbols_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
10041 #line 4057 "ripper.y"
10047 (yyval.
val) = dispatch1(array, (yyval.
val));
10055 #line 4066 "ripper.y"
10058 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10060 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
10068 #line 4076 "ripper.y"
10074 (yyval.
val) = dispatch1(array, (yyval.
val));
10082 #line 4085 "ripper.y"
10085 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10087 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
10095 #line 4095 "ripper.y"
10108 #line 4103 "ripper.y"
10113 (yyval.
val) = dispatch2(qwords_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
10121 #line 4113 "ripper.y"
10134 #line 4121 "ripper.y"
10143 (yyval.
val) = dispatch2(qsymbols_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
10151 #line 4135 "ripper.y"
10164 #line 4143 "ripper.y"
10169 (yyval.
val) = dispatch2(string_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10177 #line 4153 "ripper.y"
10190 #line 4161 "ripper.y"
10195 (yyval.
val) = dispatch2(xstring_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10203 #line 4171 "ripper.y"
10216 #line 4179 "ripper.y"
10219 NODE *
head = (yyvsp[(1) - (2)].
val), *tail = (yyvsp[(2) - (2)].
val);
10221 (yyval.
val) = tail;
10224 (yyval.
val) = head;
10240 (yyval.
val) = dispatch2(regexp_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10248 #line 4209 "ripper.y"
10259 #line 4215 "ripper.y"
10266 (yyval.
val) = dispatch1(string_dvar, (yyvsp[(3) - (3)].
val));
10274 #line 4225 "ripper.y"
10286 #line 4231 "ripper.y"
10297 #line 4236 "ripper.y"
10307 #line 4241 "ripper.y"
10317 (yyval.
val) = dispatch1(string_embexpr, (yyvsp[(5) - (6)].
val));
10325 #line 4256 "ripper.y"
10330 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10338 #line 4264 "ripper.y"
10343 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10351 #line 4272 "ripper.y"
10356 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10364 #line 4283 "ripper.y"
10368 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10370 (yyval.
val) = dispatch1(symbol, (yyvsp[(2) - (2)].
val));
10378 #line 4300 "ripper.y"
10384 (yyval.
val) = dispatch1(dyna_symbol, (yyvsp[(2) - (3)].
val));
10392 #line 4312 "ripper.y"
10405 #line 4334 "ripper.y"
10412 #line 4335 "ripper.y"
10419 #line 4336 "ripper.y"
10426 #line 4337 "ripper.y"
10433 #line 4338 "ripper.y"
10440 #line 4339 "ripper.y"
10447 #line 4340 "ripper.y"
10454 #line 4344 "ripper.y"
10459 if (id_is_var(
get_id((yyvsp[(1) - (1)].
val)))) {
10460 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10463 (yyval.
val) = dispatch1(vcall, (yyvsp[(1) - (1)].
val));
10472 #line 4357 "ripper.y"
10477 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10485 #line 4367 "ripper.y"
10490 (yyval.
val) = dispatch1(var_field, (yyval.
val));
10498 #line 4375 "ripper.y"
10503 (yyval.
val) = dispatch1(var_field, (yyval.
val));
10511 #line 4389 "ripper.y"
10524 #line 4397 "ripper.y"
10534 #line 4402 "ripper.y"
10536 (yyval.
val) = (yyvsp[(3) - (4)].
val);
10543 #line 4406 "ripper.y"
10558 #line 4418 "ripper.y"
10561 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10563 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].
val));
10573 #line 4427 "ripper.y"
10575 (yyval.
num) = parser->parser_in_kwarg;
10576 parser->parser_in_kwarg = 1;
10583 #line 4432 "ripper.y"
10585 parser->parser_in_kwarg = (yyvsp[(1) - (3)].
num);
10586 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10595 #line 4441 "ripper.y"
10604 #line 4445 "ripper.y"
10613 #line 4449 "ripper.y"
10622 #line 4453 "ripper.y"
10631 #line 4459 "ripper.y"
10633 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10640 #line 4463 "ripper.y"
10649 #line 4469 "ripper.y"
10658 #line 4473 "ripper.y"
10660 (yyval.
val) =
new_args((yyvsp[(1) - (8)].
val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].
val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].
val));
10667 #line 4477 "ripper.y"
10676 #line 4481 "ripper.y"
10685 #line 4485 "ripper.y"
10694 #line 4489 "ripper.y"
10703 #line 4493 "ripper.y"
10712 #line 4497 "ripper.y"
10721 #line 4501 "ripper.y"
10730 #line 4505 "ripper.y"
10739 #line 4509 "ripper.y"
10748 #line 4513 "ripper.y"
10757 #line 4517 "ripper.y"
10766 #line 4521 "ripper.y"
10775 #line 4525 "ripper.y"
10785 #line 4532 "ripper.y"
10788 yyerror(
"formal argument cannot be a constant");
10791 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10799 #line 4541 "ripper.y"
10802 yyerror(
"formal argument cannot be an instance variable");
10805 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10813 #line 4550 "ripper.y"
10816 yyerror(
"formal argument cannot be a global variable");
10819 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10827 #line 4559 "ripper.y"
10830 yyerror(
"formal argument cannot be a class variable");
10833 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10841 #line 4571 "ripper.y"
10844 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10851 #line 4578 "ripper.y"
10865 #line 4587 "ripper.y"
10879 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
10887 #line 4608 "ripper.y"
10896 #line 4613 "ripper.y"
10899 (yyval.
val) = (yyvsp[(1) - (3)].
val);
10912 #line 4627 "ripper.y"
10915 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10922 #line 4634 "ripper.y"
10936 #line 4643 "ripper.y"
10950 #line 4654 "ripper.y"
10964 #line 4663 "ripper.y"
10978 #line 4674 "ripper.y"
10981 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10991 #line 4682 "ripper.y"
10994 NODE *kws = (yyvsp[(1) - (3)].
val);
10996 while (kws->nd_next) {
10997 kws = kws->nd_next;
10999 kws->nd_next = (yyvsp[(3) - (3)].
val);
11000 (yyval.
val) = (yyvsp[(1) - (3)].
val);
11010 #line 4699 "ripper.y"
11013 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11023 #line 4707 "ripper.y"
11026 NODE *kws = (yyvsp[(1) - (3)].
val);
11028 while (kws->nd_next) {
11029 kws = kws->nd_next;
11031 kws->nd_next = (yyvsp[(3) - (3)].
val);
11032 (yyval.
val) = (yyvsp[(1) - (3)].
val);
11042 #line 4727 "ripper.y"
11045 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11052 #line 4732 "ripper.y"
11061 #line 4738 "ripper.y"
11076 #line 4750 "ripper.y"
11091 #line 4762 "ripper.y"
11094 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11104 #line 4770 "ripper.y"
11109 while (opts->nd_next) {
11110 opts = opts->nd_next;
11112 opts->nd_next = (yyvsp[(3) - (3)].
val);
11113 (yyval.
val) = (yyvsp[(1) - (3)].
val);
11123 #line 4786 "ripper.y"
11126 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11136 #line 4794 "ripper.y"
11141 while (opts->nd_next) {
11142 opts = opts->nd_next;
11144 opts->nd_next = (yyvsp[(3) - (3)].
val);
11145 (yyval.
val) = (yyvsp[(1) - (3)].
val);
11155 #line 4814 "ripper.y"
11159 yyerror(
"rest argument must be local variable");
11163 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11165 (yyval.
val) = dispatch1(rest_param, (yyvsp[(2) - (2)].
val));
11173 #line 4827 "ripper.y"
11179 (yyval.
val) = dispatch1(rest_param,
Qnil);
11187 #line 4842 "ripper.y"
11191 yyerror(
"block argument must be local variable");
11193 yyerror(
"duplicated block argument name");
11197 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11199 (yyval.
val) = dispatch1(blockarg, (yyvsp[(2) - (2)].
val));
11207 #line 4859 "ripper.y"
11209 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11216 #line 4863 "ripper.y"
11229 #line 4873 "ripper.y"
11233 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11236 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11244 #line 4882 "ripper.y"
11251 #line 4883 "ripper.y"
11254 if ((yyvsp[(3) - (4)].
val) == 0) {
11255 yyerror(
"can't define singleton method for ().");
11267 yyerror(
"can't define singleton method for literals");
11273 (yyval.
val) = (yyvsp[(3) - (4)].
val);
11275 (yyval.
val) = dispatch1(paren, (yyvsp[(3) - (4)].
val));
11283 #line 4913 "ripper.y"
11286 (yyval.
val) = (yyvsp[(1) - (2)].
val);
11288 (yyval.
val) = dispatch1(assoclist_from_args, (yyvsp[(1) - (2)].
val));
11296 #line 4925 "ripper.y"
11305 #line 4930 "ripper.y"
11318 #line 4940 "ripper.y"
11327 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
11335 #line 4952 "ripper.y"
11340 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
11348 #line 4960 "ripper.y"
11353 (yyval.
val) = dispatch1(assoc_splat, (yyvsp[(2) - (2)].
val));
11361 #line 4990 "ripper.y"
11362 { (yyval.
val) = (yyvsp[(1) - (1)].
val); }
11368 #line 4995 "ripper.y"
11369 { (yyval.
val) = (yyvsp[(1) - (1)].
val); }
11375 #line 5018 "ripper.y"
11382 #line 5023 "ripper.y"
11389 #line 5027 "ripper.y"
11402 #line 11401 "parse.c"
11431 if (0 <= yystate && yystate <=
YYLAST && yycheck[yystate] == *yyssp)
11451 #if ! YYERROR_VERBOSE
11454 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
11457 char const *yymsgp =
YY_(
"syntax error");
11458 int yysyntax_error_status;
11460 if (yysyntax_error_status == 0)
11462 else if (yysyntax_error_status == 1)
11464 if (yymsg != yymsgbuf)
11471 yysyntax_error_status = 2;
11480 if (yysyntax_error_status == 2)
11481 goto yyexhaustedlab;
11483 # undef YYSYNTAX_ERROR
11489 if (yyerrstatus == 3)
11494 if (yychar <=
YYEOF)
11497 if (yychar ==
YYEOF)
11503 yytoken, &yylval, parser);
11547 yyn = yytable[
yyn];
11559 yystos[yystate], yyvsp, parser);
11589 #if !defined(yyoverflow) || YYERROR_VERBOSE
11605 yydestruct (
"Cleanup: discarding lookahead",
11606 yytoken, &yylval, parser);
11612 while (yyssp != yyss)
11615 yystos[*yyssp], yyvsp, parser);
11622 #if YYERROR_VERBOSE
11623 if (yymsg != yymsgbuf)
11627 return YYID (yyresult);
11633 #line 5035 "ripper.y"
11638 # define yylval (*((YYSTYPE*)(parser->parser_yylval)))
11647 # define nextc() parser_nextc(parser)
11648 # define pushback(c) parser_pushback(parser, (c))
11649 # define newtok() parser_newtok(parser)
11650 # define tokspace(n) parser_tokspace(parser, (n))
11651 # define tokadd(c) parser_tokadd(parser, (c))
11652 # define tok_hex(numlen) parser_tok_hex(parser, (numlen))
11653 # define read_escape(flags,e) parser_read_escape(parser, (flags), (e))
11654 # define tokadd_escape(e) parser_tokadd_escape(parser, (e))
11655 # define regx_options() parser_regx_options(parser)
11656 # define tokadd_string(f,t,p,n,e) parser_tokadd_string(parser,(f),(t),(p),(n),(e))
11657 # define parse_string(n) parser_parse_string(parser,(n))
11658 # define tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc))
11659 # define here_document(n) parser_here_document(parser,(n))
11660 # define heredoc_identifier() parser_heredoc_identifier(parser)
11661 # define heredoc_restore(n) parser_heredoc_restore(parser,(n))
11662 # define whole_match_p(e,l,i) parser_whole_match_p(parser,(e),(l),(i))
11663 # define number_literal_suffix(f) parser_number_literal_suffix(parser, (f))
11664 # define set_number_literal(v, t, f) parser_set_number_literal(parser, (v), (t), (f))
11665 # define set_integer_literal(v, f) parser_set_integer_literal(parser, (v), (f))
11668 # define set_yylval_str(x) (yylval.node = NEW_STR(x))
11669 # define set_yylval_num(x) (yylval.num = (x))
11670 # define set_yylval_id(x) (yylval.id = (x))
11671 # define set_yylval_name(x) (yylval.id = (x))
11672 # define set_yylval_literal(x) (yylval.node = NEW_LIT(x))
11673 # define set_yylval_node(x) (yylval.node = (x))
11674 # define yylval_id() (yylval.id)
11676 static inline VALUE
11677 ripper_yylval_id(
ID x)
11681 # define set_yylval_str(x) (void)(x)
11682 # define set_yylval_num(x) (void)(x)
11683 # define set_yylval_id(x) (void)(x)
11684 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x))
11685 # define set_yylval_literal(x) (void)(x)
11686 # define set_yylval_node(x) (void)(x)
11687 # define yylval_id() yylval.id
11691 #define ripper_flush(p) (void)(p)
11693 #define ripper_flush(p) ((p)->tokp = (p)->parser_lex_p)
11695 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val))
11702 return lex_p > parser->tokp;
11715 ripper_dispatch_scan_event(
struct parser_params *parser,
int t)
11717 if (!ripper_has_scan_event(parser))
return;
11718 yylval_rval = ripper_scan_event_val(parser, t);
11722 ripper_dispatch_ignored_scan_event(
struct parser_params *parser,
int t)
11724 if (!ripper_has_scan_event(parser))
return;
11725 (
void)ripper_scan_event_val(parser, t);
11729 ripper_dispatch_delayed_token(
struct parser_params *parser,
int t)
11732 const char *saved_tokp = parser->tokp;
11735 parser->tokp =
lex_pbeg + parser->delayed_col;
11737 parser->delayed =
Qnil;
11739 parser->tokp = saved_tokp;
11750 #undef SIGN_EXTEND_CHAR
11752 # define SIGN_EXTEND_CHAR(c) ((signed char)(c))
11755 # define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128)
11758 #define parser_encoding_name() (current_enc->name)
11759 #define parser_mbclen() mbclen((lex_p-1),lex_pend,current_enc)
11760 #define parser_precise_mbclen() rb_enc_precise_mbclen((lex_p-1),lex_pend,current_enc)
11761 #define is_identchar(p,e,enc) (rb_enc_isalnum((unsigned char)(*(p)),(enc)) || (*(p)) == '_' || !ISASCII(*(p)))
11762 #define parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,current_enc))
11764 #define parser_isascii() ISASCII(*(lex_p-1))
11772 for (p =
lex_pbeg; p < pend; p++) {
11774 column = (((column - 1) / 8) + 1) * 8;
11785 for (p =
lex_pbeg; p < pend; p++) {
11786 if (*p !=
' ' && *p !=
'\t') {
11793 #undef token_info_push
11810 #undef token_info_pop
11817 if (!ptinfo)
return;
11823 if (linenum == ptinfo->
linenum) {
11831 "mismatched indentations at '%s' with '%s' at %d",
11844 const int max_line_margin = 30;
11845 const char *
p, *pe;
11853 if (*p ==
'\n')
break;
11860 if (*pe ==
'\n')
break;
11867 const char *pre =
"", *post =
"";
11869 if (len > max_line_margin * 2 + 10) {
11870 if (
lex_p - p > max_line_margin) {
11874 if (pe -
lex_p > max_line_margin) {
11881 MEMCPY(buf, p,
char, len);
11886 p2 =
buf; pe = buf +
len;
11889 if (*p2 !=
'\t') *p2 =
' ';
11897 dispatch1(parse_error,
STR_NEW2(msg));
11909 CONST_ID(script_lines,
"SCRIPT_LINES__");
11930 RARRAY(lines)->as.heap.len =
n;
11991 if (parser->
nerr) {
12001 return (
VALUE)tree;
12027 char *beg, *
end, *pend;
12037 while (end < pend) {
12038 if (*end++ ==
'\n')
break;
12048 if (
NIL_P(line))
return line;
12152 node =
yycompile(parser, fname, start);
12159 #define STR_FUNC_ESCAPE 0x01
12160 #define STR_FUNC_EXPAND 0x02
12161 #define STR_FUNC_REGEXP 0x04
12162 #define STR_FUNC_QWORDS 0x08
12163 #define STR_FUNC_SYMBOL 0x10
12164 #define STR_FUNC_INDENT 0x20
12194 #define lex_goto_eol(parser) ((parser)->parser_lex_p = (parser)->parser_lex_pend)
12195 #define lex_eol_p() (lex_p >= lex_pend)
12196 #define peek(c) peek_n((c), 0)
12197 #define peek_n(c,n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n])
12220 if (
NIL_P(parser->delayed)) {
12224 parser->tokp,
lex_pend - parser->tokp);
12226 parser->delayed_col = (
int)(parser->tokp -
lex_pbeg);
12230 parser->tokp,
lex_pend - parser->tokp);
12246 c = (
unsigned char)*
lex_p++;
12264 if (c == -1)
return;
12271 #define was_bol() (lex_p == lex_pbeg + 1)
12273 #define tokfix() (tokenbuf[tokidx]='\0')
12274 #define tok() tokenbuf
12275 #define toklen() tokidx
12276 #define toklast() (tokidx>0?tokenbuf[tokidx-1]:0)
12323 yyerror(
"invalid hex escape");
12330 #define tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n))
12335 int string_literal,
int symbol_literal,
int regexp_literal)
12355 yyerror(
"invalid Unicode escape");
12358 if (codepoint > 0x10ffff) {
12359 yyerror(
"invalid Unicode codepoint (too large)");
12363 if (regexp_literal) {
12366 else if (codepoint >= 0x80) {
12368 if (string_literal)
tokaddmbc(codepoint, *encp);
12370 else if (string_literal) {
12373 }
while (string_literal && (
peek(
' ') ||
peek(
'\t')));
12376 yyerror(
"unterminated Unicode escape");
12380 if (regexp_literal) {
tokadd(
'}'); }
12386 yyerror(
"invalid Unicode escape");
12390 if (regexp_literal) {
12393 else if (codepoint >= 0x80) {
12395 if (string_literal)
tokaddmbc(codepoint, *encp);
12397 else if (string_literal) {
12405 #define ESCAPE_CONTROL 1
12406 #define ESCAPE_META 2
12415 switch (c =
nextc()) {
12440 case '0':
case '1':
case '2':
case '3':
12441 case '4':
case '5':
case '6':
case '7':
12449 if (numlen == 0)
return 0;
12460 if ((c =
nextc()) !=
'-') {
12464 if ((c =
nextc()) ==
'\\') {
12465 if (
peek(
'u'))
goto eof;
12466 return read_escape(flags|ESCAPE_META, encp) | 0x80;
12468 else if (c == -1 || !
ISASCII(c))
goto eof;
12470 return ((c & 0xff) | 0x80);
12474 if ((c =
nextc()) !=
'-') {
12480 if ((c =
nextc())==
'\\') {
12481 if (
peek(
'u'))
goto eof;
12486 else if (c == -1 || !
ISASCII(c))
goto eof;
12491 yyerror(
"Invalid escape character syntax");
12514 switch (c =
nextc()) {
12518 case '0':
case '1':
case '2':
case '3':
12519 case '4':
case '5':
case '6':
case '7':
12522 if (numlen == 0)
goto eof;
12531 if (numlen == 0)
return -1;
12538 if ((c =
nextc()) !=
'-') {
12548 if ((c =
nextc()) !=
'-') {
12556 if (flags & ESCAPE_CONTROL)
goto eof;
12560 if ((c =
nextc()) ==
'\\') {
12563 else if (c == -1)
goto eof;
12569 yyerror(
"Invalid escape character syntax");
12636 #define tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c))
12642 case '$':
case '*':
case '+':
case '.':
12643 case '?':
case '^':
case '|':
12644 case ')':
case ']':
case '}':
case '>':
12653 int func,
int term,
int paren,
long *nest,
12657 int has_nonascii = 0;
12660 static const char mixed_msg[] =
"%s mixed within %s source";
12662 #define mixed_error(enc1, enc2) if (!errbuf) { \
12663 size_t len = sizeof(mixed_msg) - 4; \
12664 len += strlen(rb_enc_name(enc1)); \
12665 len += strlen(rb_enc_name(enc2)); \
12666 errbuf = ALLOCA_N(char, len); \
12667 snprintf(errbuf, len, mixed_msg, \
12668 rb_enc_name(enc1), \
12669 rb_enc_name(enc2)); \
12672 #define mixed_escape(beg, enc1, enc2) do { \
12673 const char *pos = lex_p; \
12675 mixed_error((enc1), (enc2)); \
12679 while ((c =
nextc()) != -1) {
12680 if (paren && c == paren) {
12683 else if (c == term) {
12684 if (!nest || !*nest) {
12692 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
12697 else if (c ==
'\\') {
12698 const char *beg =
lex_p - 1;
12703 if (func & STR_FUNC_EXPAND)
continue;
12712 if ((func & STR_FUNC_EXPAND) == 0) {
12719 if (has_nonascii && enc != *encp) {
12725 if (c == -1)
return -1;
12727 if ((func & STR_FUNC_EXPAND) == 0)
tokadd(
'\\');
12730 if (func & STR_FUNC_REGEXP) {
12738 if (has_nonascii && enc != *encp) {
12743 else if (func & STR_FUNC_EXPAND) {
12745 if (func & STR_FUNC_ESCAPE)
tokadd(
'\\');
12748 else if ((func & STR_FUNC_QWORDS) &&
ISSPACE(c)) {
12751 else if (c != term && !(paren && c == paren)) {
12761 if (enc != *encp) {
12774 if (enc != *encp) {
12785 #define NEW_STRTERM(func, term, paren) \
12786 rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0)
12792 if (!
NIL_P(parser->delayed)) {
12793 ptrdiff_t
len =
lex_p - parser->tokp;
12798 parser->tokp =
lex_p;
12802 #define flush_string_content(enc) ripper_flush_string_content(parser, (enc))
12804 #define flush_string_content(enc) ((void)(enc))
12811 #define BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0)
12812 #define SPECIAL_PUNCT(idx) ( \
12813 BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', idx) | \
12814 BIT('!', idx) | BIT('@', idx) | BIT('/', idx) | BIT('\\', idx) | \
12815 BIT(';', idx) | BIT(',', idx) | BIT('.', idx) | BIT('=', idx) | \
12816 BIT(':', idx) | BIT('<', idx) | BIT('>', idx) | BIT('\"', idx) | \
12817 BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \
12825 #undef SPECIAL_PUNCT
12831 if (c <= 0x20 || 0x7e < c)
return 0;
12832 return (ruby_global_name_punct_bits[(c - 0x20) / 32] >> (c % 32)) & 1;
12839 const char *p =
lex_p;
12845 if ((c = *p) ==
'-') {
12854 if ((c = *p) ==
'@') {
12874 int func = (
int)quote->nd_func;
12886 if (c == term && !quote->nd_nest) {
12887 if (func & STR_FUNC_QWORDS) {
12888 quote->nd_func = -1;
12950 while ((c =
nextc()) != -1 && c != term) {
12998 line = here->nd_orig;
13012 const char *eos,
long len,
int indent)
13018 while (*p &&
ISSPACE(*p)) p++;
13021 if (n < 0)
return FALSE;
13022 if (n > 0 && p[len] !=
'\n') {
13023 if (p[len] !=
'\r')
return FALSE;
13024 if (n <= 1 || p[len+1] !=
'\n')
return FALSE;
13026 return strncmp(eos, p, len) == 0;
13029 #define NUM_SUFFIX_R (1<<0)
13030 #define NUM_SUFFIX_I (1<<1)
13031 #define NUM_SUFFIX_ALL 3
13037 const char *lastp =
lex_p;
13039 while ((c =
nextc()) != -1) {
13042 mask &= ~NUM_SUFFIX_I;
13049 mask &= ~NUM_SUFFIX_R;
13088 if (!
NIL_P(parser->delayed))
13091 ripper_dispatch_ignored_scan_event(parser,
tHEREDOC_END);
13094 #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser)
13096 #define dispatch_heredoc_end() ((void)0)
13102 int c,
func, indent = 0;
13103 const char *eos, *
p, *pend;
13112 if ((c =
nextc()) == -1) {
13116 if (
NIL_P(parser->delayed)) {
13121 ((len =
lex_p - parser->tokp) > 0 &&
13122 (str =
STR_NEW3(parser->tokp, len, enc, func), 1))) {
13144 switch (pend[-1]) {
13146 if (--pend == p || pend[-1] !=
'\r') {
13160 if (
nextc() == -1) {
13181 if (parser->
eofp)
goto error;
13191 if ((c =
nextc()) == -1)
goto error;
13208 rb_warning0(
"ambiguous first argument; put parentheses or even spaces");
13213 #define arg_ambiguous() (arg_ambiguous_gen(parser), 1)
13220 yyerror(
"formal argument must be local variable");
13238 if (len > 5 && name[nlen = len - 5] ==
'-') {
13239 if (
rb_memcicmp(name + nlen + 1,
"unix", 4) == 0)
13242 if (len > 4 && name[nlen = len - 4] ==
'-') {
13245 if (
rb_memcicmp(name + nlen + 1,
"mac", 3) == 0 &&
13246 !(len == 8 &&
rb_memcicmp(name,
"utf8-mac", len) == 0))
13261 excargs[1] =
rb_sprintf(
"unknown encoding name: %s", name);
13278 for (i = 0; i <
n; ++
i) {
13316 case 't':
case 'T':
13322 case 'f':
case 'F':
13345 static const char *
13353 if (str[i-1] ==
'*' && str[i-2] ==
'-') {
13354 return str + i + 1;
13359 if (i + 1 >= len)
return 0;
13360 if (str[i+1] !=
'-') {
13363 else if (str[i-1] !=
'-') {
13367 return str + i + 2;
13382 const char *beg, *
end, *vbeg, *vend;
13383 #define str_copy(_s, _p, _n) ((_s) \
13384 ? (void)(rb_str_resize((_s), (_n)), \
13385 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \
13386 : (void)((_s) = STR_NEW((_p), (_n))))
13388 if (len <= 7)
return FALSE;
13392 len = end - beg - 3;
13403 for (; len > 0 && *
str; str++, --
len) {
13405 case '\'':
case '"':
case ':':
case ';':
13410 for (beg = str; len > 0; str++, --
len) {
13412 case '\'':
case '"':
case ':':
case ';':
13420 for (end = str; len > 0 &&
ISSPACE(*str); str++, --
len);
13422 if (*str !=
':')
continue;
13424 do str++;
while (--len > 0 &&
ISSPACE(*str));
13427 for (vbeg = ++str; --len > 0 && *str !=
'"'; str++) {
13428 if (*str ==
'\\') {
13440 for (vbeg = str; len > 0 && *str !=
'"' && *str !=
';' && !
ISSPACE(*str); --
len, str++);
13443 while (len > 0 && (*str ==
';' ||
ISSPACE(*str))) --len, str++;
13448 for (i = 0; i <
n; ++
i) {
13449 if (s[i] ==
'-') s[
i] =
'_';
13456 n = (*p->
length)(parser, vbeg, n);
13462 }
while (++p < magic_comments +
numberof(magic_comments));
13476 const char *beg =
str;
13480 if (send - str <= 6)
return;
13482 case 'C':
case 'c': str += 6;
continue;
13483 case 'O':
case 'o': str += 5;
continue;
13484 case 'D':
case 'd': str += 4;
continue;
13485 case 'I':
case 'i': str += 3;
continue;
13486 case 'N':
case 'n': str += 2;
continue;
13487 case 'G':
case 'g': str += 1;
continue;
13488 case '=':
case ':':
13501 if (++str >= send)
return;
13504 if (*str !=
'=' && *str !=
':')
return;
13509 while ((*str ==
'-' || *str ==
'_' ||
ISALNUM(*str)) && ++str < send);
13525 (
unsigned char)
lex_p[0] == 0xbb &&
13526 (
unsigned char)
lex_p[1] == 0xbf) {
13540 #define IS_ARG() IS_lex_state(EXPR_ARG_ANY)
13541 #define IS_END() IS_lex_state(EXPR_END_ANY)
13542 #define IS_BEG() IS_lex_state(EXPR_BEG_ANY)
13543 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c))
13544 #define IS_LABEL_POSSIBLE() ((IS_lex_state(EXPR_BEG | EXPR_ENDFN) && !cmd_state) || IS_ARG())
13545 #define IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1))
13546 #define IS_AFTER_OPERATOR() IS_lex_state(EXPR_FNAME | EXPR_DOT)
13549 #define ambiguous_operator(op, syn) ( \
13550 rb_warning0("`"op"' after local variable or literal is interpreted as binary operator"), \
13551 rb_warning0("even though it seems like "syn""))
13553 #define ambiguous_operator(op, syn) dispatch2(operator_ambiguous, ripper_intern(op), rb_str_new_cstr(syn))
13555 #define warn_balanced(op, syn) ((void) \
13556 (!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN|EXPR_ENDARG) && \
13557 space_seen && !ISSPACE(c) && \
13558 (ambiguous_operator(op, syn), 0)))
13566 const unsigned long nth_ref_max =
13567 ((FIXNUM_MAX < INT_MAX) ? FIXNUM_MAX : INT_MAX) >> 1;
13571 if (overflow || n > nth_ref_max) {
13573 rb_warnS(
"`%s' is too big for a number variable, always nil",
tok());
13585 int space_seen = 0;
13591 int fallthru =
FALSE;
13617 switch (c =
nextc()) {
13625 case ' ':
case '\t':
case '\f':
case '\r':
13629 while ((c =
nextc())) {
13631 case ' ':
case '\t':
case '\f':
case '\r':
13640 ripper_dispatch_scan_event(parser,
tSP);
13653 ripper_dispatch_scan_event(parser,
tCOMMENT);
13658 if (
IS_lex_state(EXPR_BEG | EXPR_VALUE | EXPR_CLASS | EXPR_FNAME | EXPR_DOT | EXPR_LABELARG)) {
13666 goto normal_newline;
13670 while ((c =
nextc())) {
13672 case ' ':
case '\t':
case '\f':
case '\r':
13677 if ((c =
nextc()) !=
'.') {
13690 parser->tokp =
lex_p;
13693 goto normal_newline;
13702 if ((c =
nextc()) ==
'*') {
13703 if ((c =
nextc()) ==
'=') {
13710 rb_warning0(
"`**' interpreted as argument prefix");
13729 rb_warning0(
"`*' interpreted as argument prefix");
13768 int first_p =
TRUE;
13777 ripper_dispatch_scan_event(parser,
tEMBDOC);
13786 if (c !=
'=')
continue;
13787 if (strncmp(
lex_p,
"end", 3) == 0 &&
13801 if ((c =
nextc()) ==
'=') {
13802 if ((c =
nextc()) ==
'=') {
13811 else if (c ==
'>') {
13823 (!
IS_ARG() || space_seen)) {
13825 if (token)
return token;
13836 if ((c =
nextc()) ==
'>') {
13843 if ((c =
nextc()) ==
'=') {
13857 if ((c =
nextc()) ==
'=') {
13861 if ((c =
nextc()) ==
'=') {
13929 rb_warnI(
"invalid character syntax; use ?\\%c", c2);
13946 else if (c ==
'\\') {
13975 if ((c =
nextc()) ==
'&') {
13977 if ((c =
nextc()) ==
'=') {
13985 else if (c ==
'=') {
13992 rb_warning0(
"`&' interpreted as argument prefix");
14006 if ((c =
nextc()) ==
'|') {
14008 if ((c =
nextc()) ==
'=') {
14088 if ((c =
nextc()) ==
'.') {
14089 if ((c =
nextc()) ==
'.') {
14097 yyerror(
"no .<digit> floating literal anymore; put 0 before dot");
14103 case '0':
case '1':
case '2':
case '3':
case '4':
14104 case '5':
case '6':
case '7':
case '8':
case '9':
14106 int is_float, seen_point, seen_e, nondigit;
14109 is_float = seen_point = seen_e = nondigit = 0;
14112 if (c ==
'-' || c ==
'+') {
14117 #define no_digits() do {yyerror("numeric literal without digits"); return 0;} while (0)
14120 if (c ==
'x' || c ==
'X') {
14126 if (nondigit)
break;
14133 }
while ((c =
nextc()) != -1);
14137 if (
toklen() == start) {
14140 else if (nondigit)
goto trailing_uc;
14144 if (c ==
'b' || c ==
'B') {
14147 if (c ==
'0' || c ==
'1') {
14150 if (nondigit)
break;
14154 if (c !=
'0' && c !=
'1')
break;
14157 }
while ((c =
nextc()) != -1);
14161 if (
toklen() == start) {
14164 else if (nondigit)
goto trailing_uc;
14168 if (c ==
'd' || c ==
'D') {
14174 if (nondigit)
break;
14181 }
while ((c =
nextc()) != -1);
14185 if (
toklen() == start) {
14188 else if (nondigit)
goto trailing_uc;
14196 if (c ==
'o' || c ==
'O') {
14199 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
14203 if (c >=
'0' && c <=
'7') {
14208 if (nondigit)
break;
14212 if (c < '0' || c >
'9')
break;
14213 if (c >
'7')
goto invalid_octal;
14216 }
while ((c =
nextc()) != -1);
14220 if (nondigit)
goto trailing_uc;
14229 if (c >
'7' && c <=
'9') {
14231 yyerror(
"Invalid octal digit");
14233 else if (c ==
'.' || c ==
'e' || c ==
'E') {
14245 case '0':
case '1':
case '2':
case '3':
case '4':
14246 case '5':
case '6':
case '7':
case '8':
case '9':
14252 if (nondigit)
goto trailing_uc;
14253 if (seen_point || seen_e) {
14258 if (c0 == -1 || !
ISDIGIT(c0)) {
14283 if (c !=
'-' && c !=
'+' && !
ISDIGIT(c)) {
14292 nondigit = (c ==
'-' || c ==
'+') ? c : 0;
14296 if (nondigit)
goto decode_num;
14311 snprintf(tmp,
sizeof(tmp),
"trailing `%c' in number", nondigit);
14321 char *point = &
tok()[seen_point];
14322 size_t fraclen =
toklen()-seen_point-1;
14324 memmove(point, point+1, fraclen+1);
14330 if (
errno == ERANGE) {
14392 if ((c =
nextc()) ==
'=') {
14408 if ((c =
nextc()) ==
'=') {
14428 if ((c =
nextc()) !=
'@') {
14455 if ((c =
nextc()) ==
']') {
14456 if ((c =
nextc()) ==
'=') {
14468 else if (
IS_ARG() && space_seen) {
14503 ripper_dispatch_scan_event(parser,
tSP);
14517 if (c == -1 || !
ISALNUM(c)) {
14524 yyerror(
"unknown type of %string");
14528 if (c == -1 || term == -1) {
14533 if (term ==
'(') term =
')';
14534 else if (term ==
'[') term =
']';
14535 else if (term ==
'{') term =
'}';
14536 else if (term ==
'<') term =
'>';
14586 yyerror(
"unknown type of %string");
14590 if ((c =
nextc()) ==
'=') {
14666 case '1':
case '2':
case '3':
14667 case '4':
case '5':
case '6':
14668 case '7':
case '8':
case '9':
14673 }
while (c != -1 &&
ISDIGIT(c));
14719 ripper_dispatch_scan_event(parser,
k__END__);
14742 switch (
tok()[0]) {
14743 case '@':
case '$':
14747 if ((c ==
'!' || c ==
'?') && !
peek(
'=')) {
14760 switch (
tok()[0]) {
14767 if (
tok()[1] ==
'@')
14836 if (kw->
id[0] != kw->
id[1])
14873 yylex(
void *lval,
void *p)
14887 if (!
NIL_P(parser->delayed)) {
14888 ripper_dispatch_delayed_token(parser, t);
14892 ripper_dispatch_scan_event(parser, t);
14934 if (orig == (
NODE*)1)
return;
14943 #define parser_warning(node, mesg) parser_warning(parser, (node), (mesg))
14950 #define parser_warn(node, mesg) parser_warn(parser, (node), (mesg))
14957 if (tail == 0)
return head;
14959 if (h == 0)
return tail;
14998 tail->nd_end =
tail;
15000 end->nd_next =
tail;
15001 h->nd_end = tail->nd_end;
15011 if (list == 0)
return NEW_LIST(item);
15012 if (list->nd_next) {
15013 last = list->nd_next->nd_end;
15019 list->nd_alen += 1;
15021 list->nd_next->nd_end = last->nd_next;
15031 if (head->nd_next) {
15032 last = head->nd_next->nd_end;
15038 head->nd_alen += tail->nd_alen;
15039 last->nd_next =
tail;
15040 if (tail->nd_next) {
15041 head->nd_next->nd_end = tail->nd_next->nd_end;
15044 head->nd_next->nd_end =
tail;
15053 if (
NIL_P(tail))
return 1;
15074 if (!head)
return tail;
15075 if (!tail)
return head;
15085 if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
15088 lit = headlast->nd_lit;
15091 lit = head->nd_lit;
15111 tail->nd_lit = head->nd_lit;
15115 else if (
NIL_P(tail->nd_lit)) {
15117 head->nd_alen += tail->nd_alen - 1;
15118 head->nd_next->nd_end->nd_next = tail->nd_next;
15119 head->nd_next->nd_end = tail->nd_next->nd_end;
15122 else if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
15124 lit = headlast->nd_lit;
15127 tail->nd_lit =
Qnil;
15132 tail->nd_head =
NEW_STR(tail->nd_lit);
15278 static const char *
15281 static const char names[][12] = {
15282 "EXPR_BEG",
"EXPR_END",
"EXPR_ENDARG",
"EXPR_ENDFN",
"EXPR_ARG",
15283 "EXPR_CMDARG",
"EXPR_MID",
"EXPR_FNAME",
"EXPR_DOT",
"EXPR_CLASS",
15288 return names[
ffs(state)];
15303 # define assignable_result(x) get_value(lhs)
15304 # define parser_yyerror(parser, x) dispatch1(assign_error, lhs)
15306 # define assignable_result(x) (x)
15311 yyerror(
"Can't change the value of self");
15314 yyerror(
"Can't assign to nil");
15317 yyerror(
"Can't assign to true");
15320 yyerror(
"Can't assign to false");
15323 yyerror(
"Can't assign to __FILE__");
15326 yyerror(
"Can't assign to __LINE__");
15329 yyerror(
"Can't assign to __ENCODING__");
15363 yyerror(
"dynamic constant assignment");
15372 #undef assignable_result
15373 #undef parser_yyerror
15380 if (name == idUScore)
return 1;
15387 #define LVAR_USED ((ID)1 << (sizeof(ID) * CHAR_BIT - 1))
15395 yyerror(
"duplicated argument name");
15408 yyerror(
"duplicated argument name");
15473 int scope = (
int)(
id & ID_SCOPE_MASK);
15482 id_type_names[scope],
ID2SYM(
id));
15486 id &= ~ID_SCOPE_MASK;
15515 if (!node2)
return node1;
15518 if (node1->nd_head)
15519 node1->nd_head =
arg_concat(node1->nd_head, node2);
15531 node1->nd_body =
list_concat(node1->nd_body, node2);
15540 if (!node1)
return NEW_LIST(node2);
15545 node1->nd_head =
arg_append(node1->nd_head, node2);
15566 if (!lhs)
return 0;
15578 lhs->nd_value = rhs;
15583 lhs->nd_args =
arg_append(lhs->nd_args, rhs);
15609 if (!cond)
yyerror(
"void value expression");
15614 while (node->nd_next) {
15615 node = node->nd_next;
15617 node = node->nd_head;
15621 node = node->nd_body;
15625 if (!node->nd_body) {
15626 node = node->nd_else;
15629 else if (!node->nd_else) {
15630 node = node->nd_body;
15634 node = node->nd_else;
15640 node = node->nd_2nd;
15654 const char *useless = 0;
15661 switch (node->nd_mid) {
15692 useless =
"a variable";
15695 useless =
"a constant";
15702 useless =
"a literal";
15727 useless =
"defined?";
15735 rb_warnS(
"possibly useless use of %s in void context", useless);
15748 if (!node->nd_next)
return;
15750 node = node->nd_next;
15757 NODE **
n = &node, *n1 = node;
15759 *n = n1 = n1->nd_body;
15767 NODE **
n = &node, *n1 = node;
15769 *n = n1 = n1->nd_body;
15777 NODE *node = *body;
15783 #define subnodes(n1, n2) \
15784 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \
15785 (!node->n2) ? (body = &node->n1, 1) : \
15786 (reduce_nodes(&node->n1), body = &node->n2, 1))
15796 *body = node = node->nd_stts;
15800 *body = node = node->nd_body;
15804 body = &node->nd_end->nd_head;
15810 body = &node->nd_body;
15819 if (node->nd_else) {
15820 body = &node->nd_resq;
15838 if (!node)
return 1;
15841 if (!(node = node->nd_head))
break;
15845 }
while ((node = node->nd_next) != 0);
15864 yyerror(
"multiple assignment in conditional");
15878 if (!node->nd_value)
return 1;
15881 parser_warn(node->nd_value,
"found = in conditional, should be ==");
15903 for (node = *rootnode; node; node = next) {
15907 next = node->nd_next;
15908 head = node->nd_head;
15911 switch (type =
nd_type(head)) {
15914 val =
rb_range_new(head->nd_beg->nd_lit, head->nd_end->nd_lit,
15919 head->nd_lit =
val;
15934 if (node == 0)
return 0;
15942 return cond0(parser, node);
15948 if (!node)
return 1;
15969 if (node == 0)
return 0;
15976 rb_warn0(
"string literal in condition");
15986 node->nd_1st =
cond0(parser, node->nd_1st);
15987 node->nd_2nd =
cond0(parser, node->nd_2nd);
15992 node->nd_beg =
range_op(parser, node->nd_beg);
15993 node->nd_end =
range_op(parser, node->nd_end);
16026 if (node == 0)
return 0;
16027 return cond0(parser, node);
16035 NODE *node = left, *second;
16036 while ((second = node->nd_2nd) != 0 && (
enum node_type)
nd_type(second) == type) {
16039 node->nd_2nd =
NEW_NODE(type, second, right, 0);
16042 return NEW_NODE(type, left, right, 0);
16059 if (node->nd_next == 0) {
16060 node = node->nd_head;
16081 switch (
TYPE(node->nd_lit)) {
16103 rb_bug(
"unknown literal type passed to negate_lit");
16113 node2->nd_head = node1;
16127 args->
pre_init = m ? m->nd_next : 0;
16164 kw_rest_arg->nd_cflag =
check;
16186 lit = node->nd_lit;
16205 ID vid = lhs->nd_vid;
16207 lhs->nd_value = rhs;
16210 asgn->nd_aid = vid;
16213 else if (op ==
tANDOP) {
16214 lhs->nd_value = rhs;
16236 else if (op ==
tANDOP) {
16252 else if (op ==
tANDOP) {
16268 return dispatch3(opassign, lhs, op, rhs);
16274 VALUE recv = dispatch3(field, lhs, type, attr);
16275 return dispatch3(opassign, recv, op, rhs);
16285 if (!local->
used)
return;
16289 if (cnt != local->
vars->
pos) {
16290 rb_bug(
"local->used->pos != local->vars->pos");
16292 for (i = 0; i <
cnt; ++
i) {
16293 if (!v[i] || (u[i] &
LVAR_USED))
continue;
16308 local->
used = !(inherit_dvars &&
16337 int cnt = cnt_args + cnt_vars;
16341 if (cnt <= 0)
return 0;
16345 for (i = 0, j = cnt_args+1; i < cnt_vars; ++
i) {
16351 if (--j < cnt)
REALLOC_N(buf,
ID, (cnt = j) + 1);
16379 vars =
lvtbl->vars;
16380 args =
lvtbl->args;
16381 used =
lvtbl->used;
16386 if (used) used = used->
prev;
16402 static const struct vtable *
16410 return lvtbl->args;
16418 if ((tmp =
lvtbl->used) != 0) {
16434 while (
lvtbl->args != lvargs) {
16436 if (!
lvtbl->args) {
16457 args =
lvtbl->args;
16458 vars =
lvtbl->vars;
16459 used =
lvtbl->used;
16472 if (used) used = used->
prev;
16525 "regexp encoding option '%c' differs from source encoding '%s'",
16553 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
16559 const char *
s = (
const char *)name;
16576 rb_warningS(
"named capture conflicts a local variable - %s",
16656 NODE *scope = node;
16659 if (!node)
return node;
16663 node = node->nd_body;
16667 node = node->nd_body;
16674 prelude->nd_body = node;
16675 scope->nd_body = prelude;
16678 scope->nd_body = node;
16688 NODE *scope = node;
16691 if (!node)
return node;
16695 node = node->nd_body;
16699 node = node->nd_body;
16715 prelude->nd_body = node;
16716 scope->nd_body = prelude;
16719 scope->nd_body = node;
16725 static const struct {
16750 #define op_tbl_count numberof(op_tbl)
16752 #ifndef ENABLE_SELECTOR_NAMESPACE
16753 #define ENABLE_SELECTOR_NAMESPACE 0
16760 #if ENABLE_SELECTOR_NAMESPACE
16773 #if ENABLE_SELECTOR_NAMESPACE
16780 ivar2_cmp(
struct ivar2_key *key1,
struct ivar2_key *key2)
16782 if (key1->id == key2->id && key1->klass == key2->klass) {
16789 ivar2_hash(
struct ivar2_key *
key)
16791 return (key->id << 8) ^ (key->klass >> 2);
16805 #if ENABLE_SELECTOR_NAMESPACE
16813 (
void)lex_state_name(-1);
16846 if (m >= e)
return 0;
16850 else if (*m ==
'-') {
16851 if (++m >= e)
return 0;
16864 return m == e ? mb + 1 : 0;
16879 #define IDSET_ATTRSET_FOR_SYNTAX ((1U<<ID_LOCAL)|(1U<<ID_CONST))
16880 #define IDSET_ATTRSET_FOR_INTERN (~(~0U<<ID_SCOPE_MASK) & ~(1U<<ID_ATTRSET))
16885 const char *
m =
name;
16886 const char *
e = m +
len;
16889 if (!m || len <= 0)
return -1;
16909 case '<': ++
m;
break;
16910 case '=':
if (*++m ==
'>') ++
m;
break;
16917 case '>':
case '=': ++
m;
break;
16923 case '~': ++
m;
break;
16924 case '=':
if (*++m ==
'=') ++
m;
break;
16925 default:
return -1;
16930 if (*++m ==
'*') ++
m;
16933 case '+':
case '-':
16934 if (*++m ==
'@') ++
m;
16937 case '|':
case '^':
case '&':
case '/':
case '%':
case '~':
case '`':
16942 if (*++m !=
']')
return -1;
16943 if (*++m ==
'=') ++
m;
16947 if (len == 1)
return ID_JUNK;
16949 case '=':
case '~': ++
m;
break;
16950 default:
return -1;
16962 case '!':
case '?':
16968 if (!(allowed_attrset & (1
U << type)))
return -1;
16975 return m == e ? type : -1;
17042 fake_str->as.heap.len =
len;
17043 fake_str->as.heap.ptr = (
char *)name;
17044 fake_str->as.heap.aux.capa =
len;
17045 return (
VALUE)fake_str;
17067 const char *
name, *
m, *
e;
17089 if (len < 2)
goto junk;
17098 if (len < 3)
goto junk;
17103 if (len < 2)
goto junk;
17119 if (*
op_tbl[i].name == *m &&
17120 strcmp(
op_tbl[i].name, m) == 0) {
17128 if (name[last] ==
'=') {
17130 if (last > 1 && name[last-1] ==
'=')
17140 else if (
id == 0) {
17212 name[0] = (char)
id;
17239 if (
RBASIC(str)->klass == 0)
17245 ID id_stem = (
id & ~ID_SCOPE_MASK);
17262 if (
RBASIC(str)->klass == 0)
17275 if (!str)
return 0;
17369 VALUE name = *namep;
17420 fake_str.
as.
heap.len = len - 1;
17520 parser->delayed =
Qnil;
17522 parser->result =
Qnil;
17523 parser->parsing_thread =
Qnil;
17524 parser->toplevel_p =
TRUE;
17533 #define parser_mark ripper_parser_mark
17534 #define parser_free ripper_parser_free
17574 prev = local->
prev;
17585 size_t size =
sizeof(*p);
17587 if (!ptr)
return 0;
17590 size +=
sizeof(*local);
17611 #undef rb_reserved_word
17695 yydebug =
RTEST(flag);
17700 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE))
17701 #define NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0)
17702 #define ADD2HEAP(n, c, p) ((parser->heap = (n))->u1.node = (p), \
17703 (n)->u3.cnt = (c), (p))
17731 if (ptr && (n = parser->
heap) !=
NULL) {
17733 if (n->
u1.
node == ptr) {
17750 while ((
n = *prev) !=
NULL) {
17751 if (
n->u1.node == ptr) {
17752 *prev =
n->u2.node;
17756 prev = &
n->u2.node;
17764 #ifdef RIPPER_DEBUG
17765 extern int rb_is_pointer_to_heap(
VALUE);
17771 if (x ==
Qfalse)
return x;
17772 if (x ==
Qtrue)
return x;
17773 if (x ==
Qnil)
return x;
17778 if (!rb_is_pointer_to_heap(x))
17793 return ((
NODE *)x)->nd_rval;
17802 #define validate(x) ((x) = get_value(x))
17814 return rb_funcall(parser->value, mid, 1, a);
17822 return rb_funcall(parser->value, mid, 2, a, b);
17831 return rb_funcall(parser->value, mid, 3, a, b, c);
17841 return rb_funcall(parser->value, mid, 4, a, b, c, d);
17852 return rb_funcall(parser->value, mid, 5, a, b, c, d, e);
17865 return rb_funcall(parser->value, mid, 7, a, b, c, d, e, f, g);
17868 static const struct kw_assoc {
17871 } keyword_to_name[] = {
17924 keyword_id_to_str(
ID id)
17926 const struct kw_assoc *
a;
17928 for (a = keyword_to_name; a->id; a++) {
17935 #undef ripper_id2sym
17937 ripper_id2sym(
ID id)
17947 if ((name = keyword_id_to_str(
id))) {
17960 rb_bug(
"cannot convert ID to string: %ld", (
unsigned long)
id);
17978 ripper_get_value(
VALUE v)
17985 return nd->nd_rval;
17994 va_start(args, fmt);
18001 ripper_warn0(
struct parser_params *parser,
const char *fmt)
18007 ripper_warnI(
struct parser_params *parser,
const char *fmt,
int a)
18014 ripper_warnS(
struct parser_params *parser,
const char *fmt,
const char *str)
18021 ripper_warning0(
struct parser_params *parser,
const char *fmt)
18027 ripper_warningS(
struct parser_params *parser,
const char *fmt,
const char *str)
18052 #define ripper_initialized_p(r) ((r)->parser_lex_input != 0)
18071 rb_scan_args(argc, argv,
"12", &src, &fname, &lineno);
18081 if (
NIL_P(fname)) {
18096 struct ripper_args {
18103 ripper_parse0(
VALUE parser_v)
18109 ripper_yyparse((
void*)parser);
18110 return parser->result;
18114 ripper_ensure(
VALUE parser_v)
18119 parser->parsing_thread =
Qnil;
18130 ripper_parse(
VALUE self)
18135 if (!ripper_initialized_p(parser)) {
18138 if (!
NIL_P(parser->parsing_thread)) {
18145 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
18147 return parser->result;
18158 ripper_column(
VALUE self)
18164 if (!ripper_initialized_p(parser)) {
18167 if (
NIL_P(parser->parsing_thread))
return Qnil;
18179 ripper_filename(
VALUE self)
18184 if (!ripper_initialized_p(parser)) {
18198 ripper_lineno(
VALUE self)
18203 if (!ripper_initialized_p(parser)) {
18206 if (
NIL_P(parser->parsing_thread))
return Qnil;
18210 #ifdef RIPPER_DEBUG
18246 InitVM_ripper(
void)
18263 #ifdef RIPPER_DEBUG
#define rb_enc_islower(c, enc)
char * parser_ruby_sourcefile
#define RB_TYPE_P(obj, type)
RUBY_SYMBOL_EXPORT_BEGIN typedef unsigned long st_data_t
#define NEW_ARGSCAT(a, b)
VALUE rb_const_get_at(VALUE, ID)
static YYSIZE_T yytnamerr(char *yyres, const char *yystr)
struct local_vars * parser_lvtbl
VALUE rb_ary_unshift(VALUE ary, VALUE item)
static ID ripper_token2eventid(int tok)
#define IS_LABEL_SUFFIX(n)
#define new_args_tail(k, kr, b)
int rb_is_attrset_id(ID id)
int rb_enc_codelen(int c, rb_encoding *enc)
#define parser_precise_mbclen()
static NODE * remove_begin(NODE *)
#define NEW_STRTERM(func, term, paren)
static const yytype_int16 yydefgoto[]
#define list_concat(h, t)
static struct parser_params * parser_new(void)
int onig_foreach_name(regex_t *reg, int(*func)(const UChar *, const UChar *, int, int *, regex_t *, void *), void *arg)
st_table * st_init_table_with_size(const struct st_hash_type *, st_index_t)
#define NEW_IASGN(v, val)
VALUE rb_get_coverages(void)
static char *char * yydest
static NODE * arg_blk_pass(NODE *, NODE *)
static ID internal_id_gen(struct parser_params *)
void rb_bug(const char *fmt,...)
#define NEW_DASGN_CURR(v, val)
void rb_enc_copy(VALUE obj1, VALUE obj2)
static NODE * logop_gen(struct parser_params *, enum node_type, NODE *, NODE *)
void rb_mark_tbl(struct st_table *)
int rb_is_class_name(VALUE name)
NODE * rb_parser_compile_file(volatile VALUE vparser, const char *f, VALUE file, int start)
static int comment_at_top(struct parser_params *parser)
#define RE_OPTION_ENCODING_IDX(o)
#define rb_gc_mark_locations(start, end)
size_t strlen(const char *)
#define assignable(id, node)
yytype_int16 yyssa[YYINITDEPTH]
static size_t parser_memsize(const void *ptr)
VALUE parser_lex_nextline
VALUE rb_make_exception(int argc, VALUE *argv)
#define scan_oct(s, l, e)
const char * rb_obj_classname(VALUE)
#define IDSET_ATTRSET_FOR_SYNTAX
#define reg_compile(str, options)
static NODE * call_uni_op_gen(struct parser_params *, NODE *, ID)
int parser_ruby__end__seen
static void fixpos(NODE *, NODE *)
#define NEW_CALL(r, m, a)
int st_lookup(st_table *, st_data_t, st_data_t *)
void st_add_direct(st_table *, st_data_t, st_data_t)
static void reduce_nodes_gen(struct parser_params *, NODE **)
VALUE rb_str_buf_append(VALUE, VALUE)
struct RString::@95::@96 heap
static NODE * call_bin_op_gen(struct parser_params *, NODE *, ID, NODE *)
static int parser_tokadd_utf8(struct parser_params *parser, rb_encoding **encp, int string_literal, int symbol_literal, int regexp_literal)
int parser_compile_for_eval
int parser_token_info_enabled
#define NEW_OP_CDECL(v, op, val)
VALUE rb_rational_new(VALUE, VALUE)
static NODE * new_const_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
rb_funcall(memo->yielder, id_lshift, 1, rb_assoc_new(memo->prev_value, memo->prev_elts))
SSL_METHOD *(* func)(void)
static void parser_heredoc_restore(struct parser_params *parser, NODE *here)
#define rb_usascii_str_new2
static int yysyntax_error(YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
void rb_define_global_const(const char *, VALUE)
static NODE * gettable_gen(struct parser_params *, ID)
#define str_copy(_s, _p, _n)
void rb_gc_force_recycle(VALUE)
RUBY_EXTERN void * memmove(void *, const void *, size_t)
static struct symbols global_symbols
VALUE rb_parser_end_seen_p(VALUE vparser)
struct token_info token_info
#define new_op_assign(lhs, op, rhs)
stack_type parser_cmdarg_stack
static NODE * parser_compile_string(volatile VALUE vparser, VALUE fname, VALUE s, int line)
#define new_args(f, o, r, p, t)
VALUE rb_enc_from_encoding(rb_encoding *encoding)
static YYSIZE_T const char * yystr
#define token_info_push(token)
#define rb_enc_isalnum(c, enc)
static int parser_here_document(struct parser_params *, NODE *)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
long(* rb_magic_comment_length_t)(struct parser_params *parser, const char *name, long len)
#define logop(type, node1, node2)
#define rb_enc_prev_char(s, p, e, enc)
VALUE rb_ary_push(VALUE ary, VALUE item)
static NODE * evstr2dstr_gen(struct parser_params *, NODE *)
static int reg_named_capture_assign_iter(const OnigUChar *name, const OnigUChar *name_end, int back_num, int *back_refs, OnigRegex regex, void *arg0)
static void warn_unused_var(struct parser_params *parser, struct local_vars *local)
unsigned short int yytype_uint16
rb_encoding * rb_enc_compatible(VALUE str1, VALUE str2)
#define is_identchar(p, e, enc)
#define NEW_MATCH2(n1, n2)
VALUE op_sym[tLAST_OP_ID]
VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline)
VALUE rb_enc_str_new(const char *, long, rb_encoding *)
#define warn_balanced(op, syn)
#define match_op(node1, node2)
static void ripper_init_eventids1_table(VALUE self)
#define reg_fragment_setenc(str, options)
static NODE * match_op_gen(struct parser_params *, NODE *, NODE *)
void rb_raise(VALUE exc, const char *fmt,...)
#define rb_warn4S(file, line, fmt, a)
static NODE * node_assign_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_enc_associate(VALUE obj, rb_encoding *enc)
static NODE * block_append_gen(struct parser_params *, NODE *, NODE *)
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
static NODE * newline_node(NODE *)
void rb_compile_warn(const char *file, int line, const char *fmt,...)
static NODE * range_op(struct parser_params *parser, NODE *node)
primary_value operation2 command_args prec tLOWEST
static NODE * remove_begin_all(NODE *)
int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc)
static void parser_pushback(struct parser_params *parser, int c)
static int lvar_defined_gen(struct parser_params *, ID)
void(* rb_magic_comment_setter_t)(struct parser_params *parser, const char *name, const char *val)
#define parser_is_identchar()
#define NEW_CVASGN(v, val)
static int parser_whole_match_p(struct parser_params *parser, const char *eos, long len, int indent)
#define RE_OPTION_ENCODING(e)
#define rb_backref_error(n)
VALUE rb_int_positive_pow(long x, unsigned long y)
#define NEW_OP_ASGN_OR(i, val)
static void parser_initialize(struct parser_params *parser)
#define ENCODING_IS_ASCII8BIT(obj)
static NODE * node_newnode(struct parser_params *, enum node_type, VALUE, VALUE, VALUE)
static const yytype_uint16 yyr1[]
ID rb_check_id(volatile VALUE *namep)
Returns ID for the given name if it is interned already, or 0.
ID rb_check_id_cstr(const char *ptr, long len, rb_encoding *enc)
rb_encoding * rb_utf8_encoding(void)
static long parser_encode_length(struct parser_params *parser, const char *name, long len)
#define is_instance_id(id)
#define call_bin_op(recv, id, arg1)
#define rb_enc_isdigit(c, enc)
static enum node_type nodetype(NODE *node)
#define ENC_CODERANGE_BROKEN
VALUE rb_sym_all_symbols(void)
static VALUE lex_getline(struct parser_params *parser)
static NODE * ret_args_gen(struct parser_params *, NODE *)
static const yytype_int16 yytable[]
VALUE rb_str_new_frozen(VALUE)
#define RUBY_DTRACE_PARSE_BEGIN(arg0, arg1)
VALUE parser_ruby_sourcefile_string
#define NEW_CLASS(n, b, s)
int rb_enc_symname2_p(const char *name, long len, rb_encoding *enc)
static NODE * yycompile(struct parser_params *parser, VALUE fname, int line)
VALUE rb_parser_set_yydebug(VALUE self, VALUE flag)
#define NEW_PRELUDE(p, b)
static int yylex(void *, void *)
#define ENCODING_GET(obj)
#define list_append(l, i)
NODE * parser_deferred_nodes
static int simple_re_meta(int c)
void rb_name_error(ID id, const char *fmt,...)
static int e_option_supplied(struct parser_params *parser)
static void block_dup_check_gen(struct parser_params *, NODE *, NODE *)
#define SPECIAL_PUNCT(idx)
#define nd_set_type(n, t)
static int vtable_size(const struct vtable *tbl)
static int assign_in_cond(struct parser_params *parser, NODE *node)
#define MEMZERO(p, type, n)
void rb_exc_raise(VALUE mesg)
#define NEW_UNLESS(c, t, e)
static NODE * list_append_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_usascii_str_new(const char *, long)
static rb_encoding * must_be_ascii_compatible(VALUE s)
int rb_is_const_id(ID id)
int rb_is_instance_id(ID id)
#define RUBY_DTRACE_PARSE_END(arg0, arg1)
static int parser_number_literal_suffix(struct parser_params *parser, int mask)
static int parser_tokadd_string(struct parser_params *, int, int, int, long *, rb_encoding **)
int rb_is_method_name(VALUE name)
#define assignable_result(x)
static VALUE coverage(VALUE fname, int n)
#define NEW_OP_ASGN_AND(i, val)
static NODE * arg_concat_gen(struct parser_params *, NODE *, NODE *)
#define parser_warning(node, mesg)
static int parser_regx_options(struct parser_params *)
enum lex_state_e parser_lex_state
#define whole_match_p(e, l, i)
VALUE parser_lex_lastline
NODE * rb_parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
#define set_yylval_literal(x)
static int parser_yylex(struct parser_params *parser)
static VALUE parser_str_new(const char *p, long n, rb_encoding *enc, int func, rb_encoding *enc0)
#define scan_hex(s, l, e)
static int dyna_in_block_gen(struct parser_params *)
#define rb_intern_str(string)
static const yytype_uint16 yystos[]
int rb_char_to_option_kcode(int c, int *option, int *kcode)
static char * parser_tokspace(struct parser_params *parser, int n)
#define TypedData_Get_Struct(obj, type, data_type, sval)
void rb_compile_error_append(const char *fmt,...)
void rb_compile_error_with_enc(const char *file, int line, void *enc, const char *fmt,...)
static void parser_free(void *ptr)
static int parse_numvar(struct parser_params *parser)
#define StringValuePtr(v)
#define literal_concat(h, t)
static int symbols_i(VALUE sym, ID value, VALUE ary)
const rb_data_type_t * parent
#define NEW_RESCUE(b, res, e)
static int parser_tokadd_escape(struct parser_params *parser, rb_encoding **encp)
static int dvar_curr_gen(struct parser_params *, ID)
VALUE rb_parser_encoding(VALUE vparser)
static const yytype_uint16 yyrline[]
struct parser_params * parser
#define NEW_NODE(t, a0, a1, a2)
#define yytable_value_is_error(yytable_value)
#define NEW_ENSURE(b, en)
RUBY_EXTERN VALUE rb_mKernel
NODE * rb_compile_string(const char *f, VALUE s, int line)
static const yytype_uint16 yyprhs[]
#define RARRAY_AREF(a, i)
static NODE * list_concat_gen(struct parser_params *, NODE *, NODE *)
#define is_attrset_id(id)
#define set_yylval_name(x)
#define IDSET_ATTRSET_FOR_INTERN
static char * parser_newtok(struct parser_params *parser)
static int vtable_included(const struct vtable *tbl, ID id)
#define block_dup_check(n1, n2)
void rb_define_const(VALUE, const char *, VALUE)
static NODE * arg_append_gen(struct parser_params *, NODE *, NODE *)
static void local_push_gen(struct parser_params *, int)
#define NEW_WHEN(c, t, e)
top_stmt escape_Qundef($1)
static void const char * yymsg
VALUE rb_define_class(const char *name, VALUE super)
Defines a top-level class.
#define heredoc_identifier()
static void parser_set_token_info(struct parser_params *parser, const char *name, const char *val)
static struct st_hash_type symhash
#define new_const_op_assign(lhs, op, rhs)
static void parser_tokadd(struct parser_params *parser, int c)
static void parser_mark(void *ptr)
#define lex_goto_eol(parser)
#define MBCLEN_CHARFOUND_P(ret)
NODE * rb_parser_append_print(VALUE vparser, NODE *node)
#define nd_set_line(n, l)
static void ripper_init_eventids1(void)
static void vtable_add(struct vtable *tbl, ID id)
#define flush_string_content(enc)
#define NEW_ARGS_AUX(r, b)
#define TypedData_Wrap_Struct(klass, data_type, sval)
#define tokadd_string(f, t, p, n, e)
static NODE * new_yield_gen(struct parser_params *, NODE *)
static VALUE lex_get_str(struct parser_params *parser, VALUE s)
#define RUBY_FUNC_EXPORTED
unsigned char buf[MIME_BUF_SIZE]
VALUE rb_suppress_tracing(VALUE(*func)(VALUE), VALUE arg)
VALUE rb_enc_associate_index(VALUE obj, int idx)
int rb_parse_in_main(void)
static int parser_nextc(struct parser_params *parser)
const char * parser_lex_pend
static ID formal_argument_gen(struct parser_params *, ID)
static void void_expr_gen(struct parser_params *, NODE *)
#define ALLOCA_N(type, n)
static NODE * dsym_node_gen(struct parser_params *, NODE *)
#define set_integer_literal(v, f)
#define ENC_CODERANGE_UNKNOWN
static ID intern_str(VALUE str)
#define YY_REDUCE_PRINT(Rule)
YYSTYPE yyvsa[YYINITDEPTH]
NODE * rb_parser_while_loop(VALUE vparser, NODE *node, int chop, int split)
NODE * rb_compile_cstr(const char *f, const char *s, int len, int line)
token_info * parser_token_info
static void magic_comment_encoding(struct parser_params *parser, const char *name, const char *val)
VALUE rb_str_buf_cat(VALUE, const char *, long)
void * rb_parser_malloc(struct parser_params *parser, size_t size)
static VALUE setup_fake_str(struct RString *fake_str, const char *name, long len)
static int parser_peek_variable_name(struct parser_params *parser)
#define NEW_LASGN(v, val)
static VALUE yycompile0(VALUE arg)
#define mixed_escape(beg, enc1, enc2)
VALUE rb_obj_as_string(VALUE)
#define set_yylval_num(x)
static ID register_symid_str(ID, VALUE)
#define NEW_OPT_ARG(i, v)
int rb_dvar_defined(ID id)
static void dispose_string(VALUE str)
VALUE rb_str_resize(VALUE, long)
static NODE * aryset_gen(struct parser_params *, NODE *, NODE *)
int st_foreach(st_table *, int(*)(ANYARGS), st_data_t)
#define RUBY_DTRACE_PARSE_END_ENABLED()
static ID shadowing_lvar_gen(struct parser_params *, ID)
#define set_number_literal(v, t, f)
#define rb_rational_raw1(x)
int rb_symname_p(const char *name)
#define new_attr_op_assign(lhs, type, attr, op, rhs)
VALUE rb_thread_current(void)
static int shadowing_lvar_0(struct parser_params *parser, ID name)
#define token_info_pop(token)
static void dyna_pop_gen(struct parser_params *, const struct vtable *)
#define rb_ascii8bit_encindex()
VALUE rb_range_new(VALUE, VALUE, int)
static NODE * new_evstr_gen(struct parser_params *, NODE *)
VALUE rb_sprintf(const char *format,...)
#define rb_enc_mbcput(c, buf, enc)
#define IS_lex_state_for(x, ls)
static void reg_fragment_setenc_gen(struct parser_params *, VALUE, int)
#define rb_node_newnode(type, a1, a2, a3)
#define RUBY_TYPED_FREE_IMMEDIATELY
static void set_file_encoding(struct parser_params *parser, const char *str, const char *send)
int rb_is_attrset_name(VALUE name)
#define NEW_DASGN(v, val)
int rb_enc_symname_p(const char *name, rb_encoding *enc)
#define NEW_POSTARG(i, v)
#define CONST_ID(var, str)
static int parser_parse_string(struct parser_params *, NODE *)
#define rb_warningS(fmt, a)
static NODE * new_args_tail_gen(struct parser_params *, NODE *, ID, ID)
static int dvar_defined_gen(struct parser_params *, ID, int)
int rb_is_local_id(ID id)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
static int local_id_gen(struct parser_params *, ID)
VALUE rb_assoc_new(VALUE car, VALUE cdr)
static void Init_id(void)
rb_encoding * rb_usascii_encoding(void)
static void rb_backref_error_gen(struct parser_params *, NODE *)
unsigned char yytype_uint8
void rb_gc_mark_symbols(int full_mark)
static const yytype_int16 yyrhs[]
static void arg_ambiguous_gen(struct parser_params *parser)
#define RBASIC_SET_CLASS_RAW(obj, cls)
#define heredoc_restore(n)
static void parser_prepare(struct parser_params *parser)
static NODE * cond_gen(struct parser_params *, NODE *)
static int rb_enc_symname_type(const char *name, long len, rb_encoding *enc, unsigned int allowed_attrset)
#define rb_reserved_word(str, len)
#define NEW_UNTIL(c, b, n)
static const char *const yytname[]
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
#define NEW_MATCH3(r, n2)
VALUE rb_str_buf_new(long)
stack_type parser_cond_stack
static void FILE * yyoutput
static void ripper_init_eventids2(void)
int rb_const_defined_at(VALUE, ID)
static void dyna_pop_1(struct parser_params *parser)
static int parser_read_escape(struct parser_params *parser, int flags, rb_encoding **encp)
static int parser_heredoc_identifier(struct parser_params *parser)
static int value_expr_gen(struct parser_params *, NODE *)
rb_hash_aset(hash, RARRAY_AREF(key_value_pair, 0), RARRAY_AREF(key_value_pair, 1))
static int rb_str_symname_type(VALUE name, unsigned int allowed_attrset)
int rb_is_global_id(ID id)
static int reg_fragment_check_gen(struct parser_params *, VALUE, int)
static const yytype_int16 yycheck[]
VALUE rb_attr_get(VALUE, ID)
#define rb_enc_ispunct(c, enc)
VALUE rb_ensure(VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*e_proc)(ANYARGS), VALUE data2)
#define NEW_RESBODY(a, ex, n)
static NODE * new_attr_op_assign_gen(struct parser_params *parser, NODE *lhs, ID attr, ID op, NODE *rhs)
#define set_yylval_str(x)
static struct @92 op_tbl[]
VALUE rb_reg_check_preprocess(VALUE)
static NODE * assignable_gen(struct parser_params *, ID, NODE *)
expr ripper_intern("and")
static int is_static_content(NODE *node)
RUBY_EXTERN VALUE rb_cString
#define RUBY_DTRACE_PARSE_BEGIN_ENABLED()
static const yytype_int16 yypgoto[]
static int arg_var_gen(struct parser_params *, ID)
static int literal_concat0(struct parser_params *, VALUE, VALUE)
static ID * local_tbl_gen(struct parser_params *)
static int is_global_name_punct(const int c)
VALUE rb_vsprintf(const char *, va_list)
#define reg_named_capture_assign(regexp, match)
#define MEMCPY(p1, p2, type, n)
static int parser_yyerror(struct parser_params *, const char *)
#define NEW_GASGN(v, val)
yydestruct("Cleanup: discarding lookahead", yytoken,&yylval, parser)
static void warning_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
#define NEW_ARGSPUSH(a, b)
int rb_is_const_name(VALUE name)
static void yytype_int16 * yybottom
#define is_asgn_or_id(id)
static void parser_tokaddmbc(struct parser_params *parser, int c, rb_encoding *enc)
static NODE * attrset_gen(struct parser_params *, NODE *, ID)
int rb_is_local_name(VALUE name)
static struct vtable * dyna_push_gen(struct parser_params *)
unsigned long ruby_scan_digits(const char *str, ssize_t len, int base, size_t *retlen, int *overflow)
yy_symbol_value_print(yyoutput, yytype, yyvaluep, parser)
static VALUE reg_compile_gen(struct parser_params *, VALUE, int)
VALUE rb_str_cat(VALUE, const char *, long)
#define ENC_CODERANGE_7BIT
rb_encoding * rb_enc_get(VALUE obj)
#define NEW_WHILE(c, b, n)
#define NEW_DEFS(r, i, a, d)
void rb_gc_mark_parser(void)
static const yytype_uint8 yytranslate[]
#define ADD2HEAP(n, c, p)
static int is_private_local_id(ID name)
static void no_blockarg(struct parser_params *parser, NODE *node)
static void local_pop_gen(struct parser_params *)
void rb_parser_free(struct parser_params *parser, void *ptr)
#define read_escape(flags, e)
static NODE * literal_concat_gen(struct parser_params *, NODE *, NODE *)
static struct magic_comment magic_comments[]
#define parser_warn(node, mesg)
void rb_set_errinfo(VALUE err)
#define rb_enc_isspace(c, enc)
NODE * parser_lex_strterm
top_stmts dispatch0(stmts_new)
#define RUBY_DTRACE_SYMBOL_CREATE_ENABLED()
#define NEW_ATTRASGN(r, m, a)
VALUE rb_complex_raw(VALUE x, VALUE y)
static int token_info_get_column(struct parser_params *parser, const char *token)
#define node_assign(node1, node2)
static void void_stmts_gen(struct parser_params *, NODE *)
static int local_var_gen(struct parser_params *, ID)
static int token_info_has_nonspaces(struct parser_params *parser, const char *token)
st_index_t rb_str_hash(VALUE)
#define NEW_OP_ASGN2(r, i, o, val)
#define YYSTACK_ALLOC_MAXIMUM
#define new_defined(expr)
static const rb_data_type_t parser_data_type
void rb_compile_warning(const char *file, int line, const char *fmt,...)
RUBY_EXTERN VALUE rb_cObject
static const yytype_uint16 yydefact[]
static NODE * new_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
#define parser_encoding_name()
static int parser_set_integer_literal(struct parser_params *parser, VALUE v, int suffix)
static const yytype_int16 yypact[]
static VALUE lex_io_gets(struct parser_params *parser, VALUE io)
struct rb_encoding_entry * list
void * rb_parser_calloc(struct parser_params *parser, size_t nelem, size_t size)
#define STRNCASECMP(s1, s2, n)
VALUE rb_make_backtrace(void)
static void new_bv_gen(struct parser_params *, ID)
static NODE * negate_lit(NODE *)
#define number_literal_suffix(f)
static void fixup_nodes(NODE **)
#define STR_NEW3(p, n, e, func)
static const char * magic_comment_marker(const char *str, long len)
#define NEW_OP_ASGN1(p, id, a)
static int parser_magic_comment(struct parser_params *parser, const char *str, long len)
#define RUBY_DTRACE_SYMBOL_CREATE(arg0, arg1, arg2)
#define IS_LABEL_POSSIBLE()
static const char id_type_names[][9]
VALUE rb_str_new(const char *, long)
const char * parser_lex_pbeg
int rb_is_class_id(ID id)
VALUE rb_parser_new(void)
struct parser_params * parser
static void parser_set_encode(struct parser_params *parser, const char *name)
#define call_uni_op(recv, id)
#define NEW_CDECL(v, val, path)
static int literal_node(NODE *node)
#define set_yylval_node(x)
static void YYSTYPE * yyvsp
const char * parser_lex_p
static int parser_tok_hex(struct parser_params *parser, size_t *numlen)
#define RE_OPTION_ENCODING_NONE(o)
#define rb_enc_asciicompat(enc)
#define dvar_defined_get(id)
int rb_is_instance_name(VALUE name)
int parser_ruby_sourceline
const char * rb_id2name(ID id)
#define ruby_eval_tree_begin
VALUE rb_str_intern(VALUE)
#define ruby_sourcefile_string
#define formal_argument(id)
#define rb_enc_isupper(c, enc)
static int nodeline(NODE *node)
#define dispatch_heredoc_end()
static const yytype_uint8 yyr2[]
#define RBASIC_CLEAR_CLASS(obj)
#define YY_STACK_PRINT(Bottom, Top)
#define rb_enc_isascii(c, enc)
int rb_str_hash_cmp(VALUE, VALUE)
NODE * rb_parser_compile_string_path(volatile VALUE vparser, VALUE f, VALUE s, int line)
static NODE * cond0(struct parser_params *, NODE *)
rb_encoding * rb_ascii8bit_encoding(void)
int rb_is_junk_name(VALUE name)
int rb_enc_find_index(const char *name)
static NODE * splat_array(NODE *)
static struct vtable * vtable_alloc(struct vtable *prev)
RUBY_FUNC_EXPORTED const unsigned int ruby_global_name_punct_bits[(0x7e-0x20+31)/32]
#define RSTRING_GETMEM(str, ptrvar, lenvar)
ID rb_intern3(const char *name, long len, rb_encoding *enc)
#define attrset(node, id)
#define mixed_error(enc1, enc2)
static ID register_symid(ID, const char *, long, rb_encoding *)
#define NEW_DEFN(i, a, d, p)
#define RARRAY_ASET(a, i, v)
void * rb_parser_realloc(struct parser_params *parser, void *ptr, size_t size)
#define shadowing_lvar(name)
st_table * st_init_numtable_with_size(st_index_t)
VALUE rb_cstr_to_inum(const char *str, int base, int badcheck)
static int parser_set_number_literal(struct parser_params *parser, VALUE v, int type, int suffix)
#define reg_fragment_check(str, options)
int rb_parse_in_eval(void)
YYSTYPE const *const yyvaluep
#define ENCODING_SET(obj, i)
int rb_memcicmp(const void *, const void *, long)
VALUE rb_filesystem_str_new_cstr(const char *)
ID rb_intern2(const char *name, long len)
NODE * rb_compile_file(const char *f, VALUE file, int start)
static int is_special_global_name(const char *m, const char *e, rb_encoding *enc)
VALUE rb_parser_get_yydebug(VALUE self)
VALUE(* parser_lex_gets)(struct parser_params *, VALUE)
#define rb_enc_isalpha(c, enc)
static VALUE debug_lines(VALUE fname)
NODE * rb_parser_compile_cstr(volatile VALUE vparser, const char *f, const char *s, int len, int line)
VALUE rb_check_string_type(VALUE)
#define REALLOC_N(var, type, n)
#define yypact_value_is_default(yystate)
static struct kwtable * reserved_word(const char *, unsigned int)
int rb_enc_str_coderange(VALUE)
int rb_local_defined(ID id)
NODE * parser_eval_tree_begin
static int match(VALUE str, VALUE pat, VALUE hash, int(*cb)(VALUE, VALUE))
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
static void warn_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
#define block_append(h, t)
NODE * rb_parser_compile_file_path(volatile VALUE vparser, VALUE fname, VALUE file, int start)
static void vtable_free(struct vtable *tbl)
#define RTYPEDDATA_TYPE(v)
unsigned long ruby_scan_oct(const char *, size_t, size_t *)
#define tokaddmbc(c, enc)
static void ripper_init_eventids2_table(VALUE self)
VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc)
static int sym_check_asciionly(VALUE str)
rb_encoding * rb_enc_from_index(int index)
#define aryset(node1, node2)
static NODE * reg_named_capture_assign_gen(struct parser_params *parser, VALUE regexp, NODE *match)
#define IS_AFTER_OPERATOR()
#define NEW_BLOCK_PASS(b)
static NODE * new_args_gen(struct parser_params *, NODE *, NODE *, ID, NODE *, NODE *)
int rb_is_global_name(VALUE name)
static int parser_tokadd_mbchar(struct parser_params *parser, int c)