50 #define YYBISON_VERSION "2.3"
53 #define YYSKELETON_NAME "yacc.c"
59 #define YYLSP_NEEDED 0
185 #define END_OF_INPUT 0
186 #define keyword_class 258
187 #define keyword_module 259
188 #define keyword_def 260
189 #define keyword_undef 261
190 #define keyword_begin 262
191 #define keyword_rescue 263
192 #define keyword_ensure 264
193 #define keyword_end 265
194 #define keyword_if 266
195 #define keyword_unless 267
196 #define keyword_then 268
197 #define keyword_elsif 269
198 #define keyword_else 270
199 #define keyword_case 271
200 #define keyword_when 272
201 #define keyword_while 273
202 #define keyword_until 274
203 #define keyword_for 275
204 #define keyword_break 276
205 #define keyword_next 277
206 #define keyword_redo 278
207 #define keyword_retry 279
208 #define keyword_in 280
209 #define keyword_do 281
210 #define keyword_do_cond 282
211 #define keyword_do_block 283
212 #define keyword_do_LAMBDA 284
213 #define keyword_return 285
214 #define keyword_yield 286
215 #define keyword_super 287
216 #define keyword_self 288
217 #define keyword_nil 289
218 #define keyword_true 290
219 #define keyword_false 291
220 #define keyword_and 292
221 #define keyword_or 293
222 #define keyword_not 294
223 #define modifier_if 295
224 #define modifier_unless 296
225 #define modifier_while 297
226 #define modifier_until 298
227 #define modifier_rescue 299
228 #define keyword_alias 300
229 #define keyword_defined 301
230 #define keyword_BEGIN 302
231 #define keyword_END 303
232 #define keyword__LINE__ 304
233 #define keyword__FILE__ 305
234 #define keyword__ENCODING__ 306
235 #define tIDENTIFIER 307
239 #define tCONSTANT 311
244 #define tSTRING_CONTENT 316
247 #define tBACK_REF 319
248 #define tREGEXP_END 320
273 #define tLPAREN_ARG 328
277 #define tLBRACE_ARG 332
283 #define tSTRING_BEG 338
284 #define tXSTRING_BEG 339
285 #define tREGEXP_BEG 340
286 #define tWORDS_BEG 341
287 #define tQWORDS_BEG 342
288 #define tSYMBOLS_BEG 343
289 #define tQSYMBOLS_BEG 344
290 #define tSTRING_DBEG 345
291 #define tSTRING_DEND 346
292 #define tSTRING_DVAR 347
293 #define tSTRING_END 348
296 #define tUMINUS_NUM 351
297 #define tLAST_TOKEN 352
307 #define PARSER_DEBUG 0
310 #define YYERROR_VERBOSE 1
311 #define YYSTACK_USE_ALLOCA 0
326 #define numberof(array) (int)(sizeof(array) / sizeof((array)[0]))
328 #define YYMALLOC(size) rb_parser_malloc(parser, (size))
329 #define YYREALLOC(ptr, size) rb_parser_realloc(parser, (ptr), (size))
330 #define YYCALLOC(nelem, size) rb_parser_calloc(parser, (nelem), (size))
331 #define YYFREE(ptr) rb_parser_free(parser, (ptr))
332 #define malloc YYMALLOC
333 #define realloc YYREALLOC
334 #define calloc YYCALLOC
340 #define REGISTER_SYMID(id, name) register_symid((id), (name), strlen(name), enc)
344 #define is_notop_id(id) ((id)>tLAST_OP_ID)
345 #define is_local_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_LOCAL)
346 #define is_global_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_GLOBAL)
347 #define is_instance_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_INSTANCE)
348 #define is_attrset_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_ATTRSET)
349 #define is_const_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CONST)
350 #define is_class_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CLASS)
351 #define is_junk_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_JUNK)
352 #define id_type(id) (is_notop_id(id) ? (int)((id)&ID_SCOPE_MASK) : -1)
354 #define is_asgn_or_id(id) ((is_notop_id(id)) && \
355 (((id)&ID_SCOPE_MASK) == ID_GLOBAL || \
356 ((id)&ID_SCOPE_MASK) == ID_INSTANCE || \
357 ((id)&ID_SCOPE_MASK) == ID_CLASS))
375 #define DEF_EXPR(n) EXPR_##n = (1 << EXPR_##n##_bit)
391 #define IS_lex_state_for(x, ls) ((x) & (ls))
392 #define IS_lex_state(ls) IS_lex_state_for(lex_state, (ls))
400 # define BITSTACK_PUSH(stack, n) ((stack) = ((stack)<<1)|((n)&1))
401 # define BITSTACK_POP(stack) ((stack) = (stack) >> 1)
402 # define BITSTACK_LEXPOP(stack) ((stack) = ((stack) >> 1) | ((stack) & 1))
403 # define BITSTACK_SET_P(stack) ((stack)&1)
405 #define COND_PUSH(n) BITSTACK_PUSH(cond_stack, (n))
406 #define COND_POP() BITSTACK_POP(cond_stack)
407 #define COND_LEXPOP() BITSTACK_LEXPOP(cond_stack)
408 #define COND_P() BITSTACK_SET_P(cond_stack)
410 #define CMDARG_PUSH(n) BITSTACK_PUSH(cmdarg_stack, (n))
411 #define CMDARG_POP() BITSTACK_POP(cmdarg_stack)
412 #define CMDARG_LEXPOP() BITSTACK_LEXPOP(cmdarg_stack)
413 #define CMDARG_P() BITSTACK_SET_P(cmdarg_stack)
429 #define DVARS_INHERIT ((void*)1)
430 #define DVARS_TOPSCOPE NULL
431 #define DVARS_SPECIAL_P(tbl) (!POINTER_P(tbl))
432 #define POINTER_P(val) ((VALUE)(val) & ~(VALUE)3)
455 if (
VTBL_DEBUG) printf(
"vtable_alloc: %p\n", (
void *)tbl);
462 if (
VTBL_DEBUG)printf(
"vtable_free: %p\n", (
void *)tbl);
475 rb_bug(
"vtable_add: vtable is not allocated (%p)", (
void *)tbl);
492 for (i = 0; i < tbl->
pos; i++) {
493 if (tbl->
tbl[i] ==
id) {
578 VALUE parser_ruby_sourcefile_string;
586 VALUE parsing_thread;
591 #define STR_NEW(p,n) rb_enc_str_new((p),(n),current_enc)
592 #define STR_NEW0() rb_enc_str_new(0,0,current_enc)
593 #define STR_NEW2(p) rb_enc_str_new((p),strlen(p),current_enc)
594 #define STR_NEW3(p,n,e,func) parser_str_new((p),(n),(e),(func),current_enc)
595 #define ENC_SINGLE(cr) ((cr)==ENC_CODERANGE_7BIT)
596 #define TOK_INTERN(mb) rb_intern3(tok(), toklen(), current_enc)
599 #define yyerror(msg) parser_yyerror(parser, (msg))
601 #define YYLEX_PARAM parser
603 #define lex_strterm (parser->parser_lex_strterm)
604 #define lex_state (parser->parser_lex_state)
605 #define cond_stack (parser->parser_cond_stack)
606 #define cmdarg_stack (parser->parser_cmdarg_stack)
607 #define class_nest (parser->parser_class_nest)
608 #define paren_nest (parser->parser_paren_nest)
609 #define lpar_beg (parser->parser_lpar_beg)
610 #define brace_nest (parser->parser_brace_nest)
611 #define in_single (parser->parser_in_single)
612 #define in_def (parser->parser_in_def)
613 #define compile_for_eval (parser->parser_compile_for_eval)
614 #define cur_mid (parser->parser_cur_mid)
615 #define in_defined (parser->parser_in_defined)
616 #define tokenbuf (parser->parser_tokenbuf)
617 #define tokidx (parser->parser_tokidx)
618 #define toksiz (parser->parser_toksiz)
619 #define tokline (parser->parser_tokline)
620 #define lex_input (parser->parser_lex_input)
621 #define lex_lastline (parser->parser_lex_lastline)
622 #define lex_nextline (parser->parser_lex_nextline)
623 #define lex_pbeg (parser->parser_lex_pbeg)
624 #define lex_p (parser->parser_lex_p)
625 #define lex_pend (parser->parser_lex_pend)
626 #define heredoc_end (parser->parser_heredoc_end)
627 #define command_start (parser->parser_command_start)
628 #define deferred_nodes (parser->parser_deferred_nodes)
629 #define lex_gets_ptr (parser->parser_lex_gets_ptr)
630 #define lex_gets (parser->parser_lex_gets)
631 #define lvtbl (parser->parser_lvtbl)
632 #define ruby__end__seen (parser->parser_ruby__end__seen)
633 #define ruby_sourceline (parser->parser_ruby_sourceline)
634 #define ruby_sourcefile (parser->parser_ruby_sourcefile)
635 #define current_enc (parser->enc)
636 #define yydebug (parser->parser_yydebug)
639 #define ruby_eval_tree (parser->parser_eval_tree)
640 #define ruby_eval_tree_begin (parser->parser_eval_tree_begin)
641 #define ruby_debug_lines (parser->debug_lines)
642 #define ruby_coverage (parser->coverage)
645 static int yylex(
void*,
void*);
648 #define yyparse ruby_yyparse
651 #define rb_node_newnode(type, a1, a2, a3) node_newnode(parser, (type), (a1), (a2), (a3))
654 #define cond(node) cond_gen(parser, (node))
656 #define logop(type,node1,node2) logop_gen(parser, (type), (node1), (node2))
664 #define value_expr(node) value_expr_gen(parser, (node) = remove_begin(node))
665 #define void_expr0(node) void_expr_gen(parser, (node))
666 #define void_expr(node) void_expr0((node) = remove_begin(node))
668 #define void_stmts(node) void_stmts_gen(parser, (node))
670 #define reduce_nodes(n) reduce_nodes_gen(parser,(n))
672 #define block_dup_check(n1,n2) block_dup_check_gen(parser,(n1),(n2))
675 #define block_append(h,t) block_append_gen(parser,(h),(t))
677 #define list_append(l,i) list_append_gen(parser,(l),(i))
679 #define list_concat(h,t) list_concat_gen(parser,(h),(t))
681 #define arg_append(h,t) arg_append_gen(parser,(h),(t))
683 #define arg_concat(h,t) arg_concat_gen(parser,(h),(t))
685 #define literal_concat(h,t) literal_concat_gen(parser,(h),(t))
688 #define new_evstr(n) new_evstr_gen(parser,(n))
690 #define evstr2dstr(n) evstr2dstr_gen(parser,(n))
694 #define call_bin_op(recv,id,arg1) call_bin_op_gen(parser, (recv),(id),(arg1))
696 #define call_uni_op(recv,id) call_uni_op_gen(parser, (recv),(id))
699 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t))
701 #define new_args_tail(k,kr,b) new_args_tail_gen(parser, (k),(kr),(b))
705 #define ret_args(node) ret_args_gen(parser, (node))
708 #define new_yield(node) new_yield_gen(parser, (node))
710 #define dsym_node(node) dsym_node_gen(parser, (node))
713 #define gettable(id) gettable_gen(parser,(id))
715 #define assignable(id,node) assignable_gen(parser, (id), (node))
718 #define aryset(node1,node2) aryset_gen(parser, (node1), (node2))
720 #define attrset(node,id) attrset_gen(parser, (node), (id))
723 #define rb_backref_error(n) rb_backref_error_gen(parser,(n))
725 #define node_assign(node1, node2) node_assign_gen(parser, (node1), (node2))
729 #define new_attr_op_assign(lhs, type, attr, op, rhs) new_attr_op_assign_gen(parser, (lhs), (attr), (op), (rhs))
731 #define new_const_op_assign(lhs, op, rhs) new_const_op_assign_gen(parser, (lhs), (op), (rhs))
734 #define match_op(node1,node2) match_op_gen(parser, (node1), (node2))
737 #define local_tbl() local_tbl_gen(parser)
742 #define reg_compile(str,options) reg_compile_gen(parser, (str), (options))
744 #define reg_fragment_setenc(str,options) reg_fragment_setenc_gen(parser, (str), (options))
746 #define reg_fragment_check(str,options) reg_fragment_check_gen(parser, (str), (options))
748 #define reg_named_capture_assign(regexp,match) reg_named_capture_assign_gen(parser,(regexp),(match))
750 #define get_id(id) (id)
751 #define get_value(val) (val)
753 #define value_expr(node) ((void)(node))
754 #define remove_begin(node) (node)
755 #define rb_dvar_defined(id) 0
756 #define rb_local_defined(id) 0
757 static ID ripper_get_id(
VALUE);
758 #define get_id(id) ripper_get_id(id)
760 #define get_value(val) ripper_get_value(val)
762 #define assignable(lhs,node) assignable_gen(parser, (lhs))
764 #define id_is_var(id) id_is_var_gen(parser, (id))
766 #define node_assign(node1, node2) dispatch2(assign, (node1), (node2))
770 #define new_attr_op_assign(lhs, type, attr, op, rhs) new_attr_op_assign_gen(parser, (lhs), (type), (attr), (op), (rhs))
774 #define new_op_assign(lhs, op, rhs) new_op_assign_gen(parser, (lhs), (op), (rhs))
777 #define formal_argument(id) formal_argument_gen(parser, (id))
779 #define shadowing_lvar(name) shadowing_lvar_gen(parser, (name))
781 #define new_bv(id) new_bv_gen(parser, (id))
784 #define local_push(top) local_push_gen(parser,(top))
786 #define local_pop() local_pop_gen(parser)
788 #define local_var(id) local_var_gen(parser, (id))
790 #define arg_var(id) arg_var_gen(parser, (id))
792 #define local_id(id) local_id_gen(parser, (id))
794 #define internal_id() internal_id_gen(parser)
797 #define dyna_push() dyna_push_gen(parser)
799 #define dyna_pop(node) dyna_pop_gen(parser, (node))
801 #define dyna_in_block() dyna_in_block_gen(parser)
802 #define dyna_var(id) local_var(id)
804 #define dvar_defined(id) dvar_defined_gen(parser, (id), 0)
805 #define dvar_defined_get(id) dvar_defined_gen(parser, (id), 1)
807 #define dvar_curr(id) dvar_curr_gen(parser, (id))
810 #define lvar_defined(id) lvar_defined_gen(parser, (id))
812 #define RE_OPTION_ONCE (1<<16)
813 #define RE_OPTION_ENCODING_SHIFT 8
814 #define RE_OPTION_ENCODING(e) (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT)
815 #define RE_OPTION_ENCODING_IDX(o) (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff)
816 #define RE_OPTION_ENCODING_NONE(o) ((o)&RE_OPTION_ARG_ENCODING_NONE)
817 #define RE_OPTION_MASK 0xff
818 #define RE_OPTION_ARG_ENCODING_NONE 32
820 #define NODE_STRTERM NODE_ZARRAY
821 #define NODE_HEREDOC NODE_ARRAY
822 #define SIGN_EXTEND(x,n) (((1<<(n)-1)^((x)&~(~0<<(n))))-(1<<(n)-1))
823 #define nd_func u1.id
824 #if SIZEOF_SHORT == 2
825 #define nd_term(node) ((signed short)(node)->u2.id)
827 #define nd_term(node) SIGN_EXTEND((node)->u2.id, CHAR_BIT*2)
829 #define nd_paren(node) (char)((node)->u2.id >> CHAR_BIT*2)
830 #define nd_nest u3.cnt
835 #define RIPPER_VERSION "0.1.0"
848 #define dispatch0(n) ripper_dispatch0(parser, TOKEN_PASTE(ripper_id_, n))
849 #define dispatch1(n,a) ripper_dispatch1(parser, TOKEN_PASTE(ripper_id_, n), (a))
850 #define dispatch2(n,a,b) ripper_dispatch2(parser, TOKEN_PASTE(ripper_id_, n), (a), (b))
851 #define dispatch3(n,a,b,c) ripper_dispatch3(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c))
852 #define dispatch4(n,a,b,c,d) ripper_dispatch4(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d))
853 #define dispatch5(n,a,b,c,d,e) ripper_dispatch5(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e))
854 #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))
856 #define yyparse ripper_yyparse
858 #define ripper_intern(s) ID2SYM(rb_intern(s))
859 static VALUE ripper_id2sym(
ID);
861 #define ripper_id2sym(id) ((id) < 256 && rb_ispunct(id) ? \
862 ID2SYM(id) : ripper_id2sym(id))
865 #define arg_new() dispatch0(args_new)
866 #define arg_add(l,a) dispatch2(args_add, (l), (a))
867 #define arg_add_star(l,a) dispatch2(args_add_star, (l), (a))
868 #define arg_add_block(l,b) dispatch2(args_add_block, (l), (b))
869 #define arg_add_optblock(l,b) ((b)==Qundef? (l) : dispatch2(args_add_block, (l), (b)))
870 #define bare_assoc(v) dispatch1(bare_assoc_hash, (v))
871 #define arg_add_assocs(l,b) arg_add((l), bare_assoc(b))
873 #define args2mrhs(a) dispatch1(mrhs_new_from_args, (a))
874 #define mrhs_new() dispatch0(mrhs_new)
875 #define mrhs_add(l,a) dispatch2(mrhs_add, (l), (a))
876 #define mrhs_add_star(l,a) dispatch2(mrhs_add_star, (l), (a))
878 #define mlhs_new() dispatch0(mlhs_new)
879 #define mlhs_add(l,a) dispatch2(mlhs_add, (l), (a))
880 #define mlhs_add_star(l,a) dispatch2(mlhs_add_star, (l), (a))
882 #define params_new(pars, opts, rest, pars2, kws, kwrest, blk) \
883 dispatch7(params, (pars), (opts), (rest), (pars2), (kws), (kwrest), (blk))
885 #define blockvar_new(p,v) dispatch2(block_var, (p), (v))
886 #define blockvar_add_star(l,a) dispatch2(block_var_add_star, (l), (a))
887 #define blockvar_add_block(l,a) dispatch2(block_var_add_block, (l), (a))
889 #define method_optarg(m,a) ((a)==Qundef ? (m) : dispatch2(method_add_arg,(m),(a)))
890 #define method_arg(m,a) dispatch2(method_add_arg,(m),(a))
891 #define method_add_block(m,b) dispatch2(method_add_block, (m), (b))
893 #define escape_Qundef(x) ((x)==Qundef ? Qnil : (x))
902 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t))
909 #define new_args_tail(k,kr,b) new_args_tail_gen(parser, (k),(kr),(b))
917 # define ifndef_ripper(x) (x)
920 # define ifndef_ripper(x)
924 # define rb_warn0(fmt) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt))
925 # define rb_warnI(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
926 # define rb_warnS(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
927 # define rb_warn4S(file,line,fmt,a) rb_compile_warn((file), (line), (fmt), (a))
928 # define rb_warning0(fmt) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt))
929 # define rb_warningS(fmt,a) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt), (a))
931 # define rb_warn0(fmt) ripper_warn0(parser, (fmt))
932 # define rb_warnI(fmt,a) ripper_warnI(parser, (fmt), (a))
933 # define rb_warnS(fmt,a) ripper_warnS(parser, (fmt), (a))
934 # define rb_warn4S(file,line,fmt,a) ripper_warnS(parser, (fmt), (a))
935 # define rb_warning0(fmt) ripper_warning0(parser, (fmt))
936 # define rb_warningS(fmt,a) ripper_warningS(parser, (fmt), (a))
937 static void ripper_warn0(
struct parser_params*,
const char*);
938 static void ripper_warnI(
struct parser_params*,
const char*,
int);
939 static void ripper_warnS(
struct parser_params*,
const char*,
const char*);
940 static void ripper_warning0(
struct parser_params*,
const char*);
941 static void ripper_warningS(
struct parser_params*,
const char*,
const char*);
945 static void ripper_compile_error(
struct parser_params*,
const char *
fmt, ...);
946 # define rb_compile_error ripper_compile_error
947 # define compile_error ripper_compile_error
948 # define PARSER_ARG parser,
950 # define rb_compile_error rb_compile_error_with_enc
951 # define compile_error parser->nerr++,rb_compile_error_with_enc
952 # define PARSER_ARG ruby_sourcefile, ruby_sourceline, current_enc,
960 #define YYMAXDEPTH 10000
967 #define token_info_push(token) (RTEST(ruby_verbose) ? token_info_push(parser, (token)) : (void)0)
968 #define token_info_pop(token) (RTEST(ruby_verbose) ? token_info_pop(parser, (token)) : (void)0)
970 #define token_info_push(token)
971 #define token_info_pop(token)
981 #ifdef YYERROR_VERBOSE
982 # undef YYERROR_VERBOSE
983 # define YYERROR_VERBOSE 1
985 # define YYERROR_VERBOSE 0
989 #ifndef YYTOKEN_TABLE
990 # define YYTOKEN_TABLE 0
993 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
1004 #line 1005 "parse.c"
1006 # define yystype YYSTYPE
1007 # define YYSTYPE_IS_DECLARED 1
1008 # define YYSTYPE_IS_TRIVIAL 1
1017 #line 1018 "parse.c"
1031 #elif (defined __STDC__ || defined __C99__FUNC__ \
1032 || defined __cplusplus || defined _MSC_VER)
1038 #ifdef YYTYPE_UINT16
1051 # ifdef __SIZE_TYPE__
1052 # define YYSIZE_T __SIZE_TYPE__
1053 # elif defined size_t
1054 # define YYSIZE_T size_t
1055 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
1056 || defined __cplusplus || defined _MSC_VER)
1057 # include <stddef.h>
1058 # define YYSIZE_T size_t
1060 # define YYSIZE_T unsigned int
1064 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
1069 # include <libintl.h>
1070 # define YY_(msgid) dgettext ("bison-runtime", msgid)
1074 # define YY_(msgid) msgid
1079 #if ! defined lint || defined __GNUC__
1080 # define YYUSE(e) ((void) (e))
1087 # define YYID(n) (n)
1089 #if (defined __STDC__ || defined __C99__FUNC__ \
1090 || defined __cplusplus || defined _MSC_VER)
1103 #if ! defined yyoverflow || YYERROR_VERBOSE
1107 # ifdef YYSTACK_USE_ALLOCA
1108 # if YYSTACK_USE_ALLOCA
1110 # define YYSTACK_ALLOC __builtin_alloca
1111 # elif defined __BUILTIN_VA_ARG_INCR
1112 # include <alloca.h>
1114 # define YYSTACK_ALLOC __alloca
1115 # elif defined _MSC_VER
1116 # include <malloc.h>
1117 # define alloca _alloca
1119 # define YYSTACK_ALLOC alloca
1120 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1121 || defined __cplusplus || defined _MSC_VER)
1122 # include <stdlib.h>
1124 # define _STDLIB_H 1
1131 # ifdef YYSTACK_ALLOC
1133 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
1134 # ifndef YYSTACK_ALLOC_MAXIMUM
1139 # define YYSTACK_ALLOC_MAXIMUM 4032
1142 # define YYSTACK_ALLOC YYMALLOC
1143 # define YYSTACK_FREE YYFREE
1144 # ifndef YYSTACK_ALLOC_MAXIMUM
1145 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1147 # if (defined __cplusplus && ! defined _STDLIB_H \
1148 && ! ((defined YYMALLOC || defined malloc) \
1149 && (defined YYFREE || defined free)))
1150 # include <stdlib.h>
1152 # define _STDLIB_H 1
1156 # define YYMALLOC malloc
1157 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1158 || defined __cplusplus || defined _MSC_VER)
1163 # define YYFREE free
1164 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1165 || defined __cplusplus || defined _MSC_VER)
1173 #if (! defined yyoverflow \
1174 && (! defined __cplusplus \
1175 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1185 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
1189 # define YYSTACK_BYTES(N) \
1190 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
1191 + YYSTACK_GAP_MAXIMUM)
1196 # if defined __GNUC__ && 1 < __GNUC__
1197 # define YYCOPY(To, From, Count) \
1198 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1200 # define YYCOPY(To, From, Count) \
1204 for (yyi = 0; yyi < (Count); yyi++) \
1205 (To)[yyi] = (From)[yyi]; \
1216 # define YYSTACK_RELOCATE(Stack) \
1219 YYSIZE_T yynewbytes; \
1220 YYCOPY (&yyptr->Stack, Stack, yysize); \
1221 Stack = &yyptr->Stack; \
1222 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
1223 yyptr += yynewbytes / sizeof (*yyptr); \
1232 #define YYLAST 10982
1235 #define YYNTOKENS 142
1239 #define YYNRULES 618
1241 #define YYNSTATES 1055
1244 #define YYUNDEFTOK 2
1245 #define YYMAXUTOK 352
1247 #define YYTRANSLATE(YYX) \
1248 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1253 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1254 141, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1255 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1256 2, 2, 140, 127, 2, 2, 2, 125, 120, 2,
1257 136, 137, 123, 121, 134, 122, 133, 124, 2, 2,
1258 2, 2, 2, 2, 2, 2, 2, 2, 115, 139,
1259 117, 113, 116, 114, 2, 2, 2, 2, 2, 2,
1260 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1261 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1262 2, 132, 2, 138, 119, 2, 135, 2, 2, 2,
1263 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1264 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1265 2, 2, 2, 130, 118, 131, 128, 2, 79, 80,
1266 66, 67, 68, 2, 69, 83, 84, 74, 73, 70,
1267 71, 72, 77, 78, 81, 82, 2, 2, 2, 2,
1268 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1269 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1270 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1271 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1272 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1273 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1274 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1275 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1276 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1277 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1278 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1279 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1280 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1281 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1282 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1283 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1284 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1285 65, 75, 76, 85, 86, 87, 88, 89, 90, 91,
1286 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1287 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1296 0, 0, 3, 4, 7, 10, 12, 14, 18, 21,
1297 23, 24, 30, 35, 38, 40, 42, 46, 49, 51,
1298 52, 58, 59, 64, 68, 72, 76, 79, 83, 87,
1299 91, 95, 99, 104, 106, 110, 114, 121, 127, 133,
1300 139, 145, 149, 153, 157, 161, 163, 167, 171, 173,
1301 177, 181, 185, 188, 190, 192, 194, 196, 198, 203,
1302 204, 210, 212, 215, 219, 224, 230, 235, 241, 244,
1303 247, 250, 253, 256, 258, 262, 264, 268, 270, 273,
1304 277, 283, 286, 291, 294, 299, 301, 305, 307, 311,
1305 314, 318, 320, 324, 326, 328, 333, 337, 341, 345,
1306 349, 352, 354, 356, 358, 363, 367, 371, 375, 379,
1307 382, 384, 386, 388, 391, 393, 397, 399, 401, 403,
1308 405, 407, 409, 411, 413, 415, 417, 418, 423, 425,
1309 427, 429, 431, 433, 435, 437, 439, 441, 443, 445,
1310 447, 449, 451, 453, 455, 457, 459, 461, 463, 465,
1311 467, 469, 471, 473, 475, 477, 479, 481, 483, 485,
1312 487, 489, 491, 493, 495, 497, 499, 501, 503, 505,
1313 507, 509, 511, 513, 515, 517, 519, 521, 523, 525,
1314 527, 529, 531, 533, 535, 537, 539, 541, 543, 545,
1315 547, 549, 551, 553, 555, 557, 559, 561, 563, 565,
1316 569, 575, 579, 585, 592, 598, 604, 610, 616, 621,
1317 625, 629, 633, 637, 641, 645, 649, 653, 657, 662,
1318 667, 670, 673, 677, 681, 685, 689, 693, 697, 701,
1319 705, 709, 713, 717, 721, 725, 728, 731, 735, 739,
1320 743, 747, 748, 753, 760, 762, 764, 766, 769, 774,
1321 777, 781, 783, 785, 787, 789, 792, 797, 800, 802,
1322 805, 808, 813, 815, 816, 819, 822, 825, 827, 829,
1323 832, 836, 841, 845, 850, 853, 855, 857, 859, 861,
1324 863, 865, 867, 869, 871, 873, 875, 876, 881, 882,
1325 886, 887, 892, 896, 900, 903, 907, 911, 913, 918,
1326 922, 924, 925, 932, 937, 941, 944, 946, 949, 952,
1327 959, 966, 967, 968, 976, 977, 978, 986, 992, 997,
1328 998, 999, 1009, 1010, 1017, 1018, 1019, 1028, 1029, 1035,
1329 1036, 1043, 1044, 1045, 1055, 1057, 1059, 1061, 1063, 1065,
1330 1067, 1069, 1071, 1073, 1075, 1077, 1079, 1081, 1083, 1085,
1331 1087, 1089, 1091, 1094, 1096, 1098, 1100, 1106, 1108, 1111,
1332 1113, 1115, 1117, 1121, 1123, 1127, 1129, 1134, 1141, 1145,
1333 1151, 1154, 1159, 1161, 1165, 1170, 1173, 1176, 1178, 1181,
1334 1182, 1189, 1198, 1203, 1210, 1215, 1218, 1225, 1228, 1233,
1335 1240, 1243, 1248, 1251, 1256, 1258, 1260, 1262, 1266, 1268,
1336 1273, 1275, 1280, 1282, 1286, 1288, 1290, 1291, 1292, 1297,
1337 1302, 1304, 1308, 1312, 1313, 1319, 1322, 1327, 1333, 1339,
1338 1342, 1343, 1349, 1350, 1356, 1360, 1361, 1366, 1367, 1372,
1339 1375, 1377, 1382, 1383, 1389, 1390, 1396, 1402, 1404, 1406,
1340 1413, 1415, 1417, 1419, 1421, 1424, 1426, 1429, 1431, 1433,
1341 1435, 1437, 1439, 1441, 1443, 1446, 1450, 1454, 1458, 1462,
1342 1466, 1467, 1471, 1473, 1476, 1480, 1484, 1485, 1489, 1493,
1343 1497, 1501, 1505, 1506, 1510, 1511, 1515, 1516, 1519, 1520,
1344 1523, 1524, 1527, 1529, 1530, 1534, 1535, 1536, 1537, 1544,
1345 1546, 1548, 1550, 1552, 1555, 1557, 1559, 1561, 1563, 1567,
1346 1569, 1571, 1574, 1577, 1579, 1581, 1583, 1585, 1587, 1589,
1347 1591, 1593, 1595, 1597, 1599, 1601, 1603, 1605, 1607, 1609,
1348 1611, 1613, 1615, 1616, 1621, 1624, 1628, 1631, 1636, 1639,
1349 1642, 1644, 1647, 1648, 1655, 1664, 1669, 1676, 1681, 1688,
1350 1691, 1696, 1703, 1706, 1711, 1714, 1719, 1721, 1722, 1724,
1351 1726, 1728, 1730, 1732, 1734, 1736, 1740, 1742, 1746, 1749,
1352 1752, 1754, 1758, 1760, 1764, 1766, 1768, 1771, 1773, 1777,
1353 1781, 1783, 1787, 1789, 1793, 1795, 1797, 1800, 1802, 1804,
1354 1806, 1809, 1812, 1814, 1816, 1817, 1822, 1824, 1827, 1829,
1355 1833, 1837, 1840, 1843, 1845, 1847, 1849, 1851, 1853, 1855,
1356 1857, 1859, 1861, 1863, 1865, 1867, 1868, 1870, 1871, 1873,
1357 1876, 1879, 1880, 1882, 1884, 1886, 1888, 1890, 1893
1363 143, 0, -1, -1, 144, 145, -1, 146, 331, -1,
1364 338, -1, 147, -1, 146, 337, 147, -1, 1, 147,
1365 -1, 154, -1, -1, 47, 148, 130, 145, 131, -1,
1366 150, 260, 229, 263, -1, 151, 331, -1, 338, -1,
1367 152, -1, 151, 337, 152, -1, 1, 154, -1, 154,
1368 -1, -1, 47, 153, 130, 145, 131, -1, -1, 45,
1369 177, 155, 177, -1, 45, 54, 54, -1, 45, 54,
1370 64, -1, 45, 54, 63, -1, 6, 178, -1, 154,
1371 40, 158, -1, 154, 41, 158, -1, 154, 42, 158,
1372 -1, 154, 43, 158, -1, 154, 44, 154, -1, 48,
1373 130, 150, 131, -1, 156, -1, 165, 113, 159, -1,
1374 295, 87, 159, -1, 214, 132, 188, 334, 87, 159,
1375 -1, 214, 133, 52, 87, 159, -1, 214, 133, 56,
1376 87, 159, -1, 214, 85, 56, 87, 159, -1, 214,
1377 85, 52, 87, 159, -1, 296, 87, 159, -1, 172,
1378 113, 195, -1, 165, 113, 184, -1, 165, 113, 195,
1379 -1, 157, -1, 172, 113, 159, -1, 172, 113, 156,
1380 -1, 159, -1, 157, 37, 157, -1, 157, 38, 157,
1381 -1, 39, 332, 157, -1, 127, 159, -1, 182, -1,
1382 157, -1, 164, -1, 160, -1, 249, -1, 249, 330,
1383 328, 190, -1, -1, 94, 162, 237, 150, 131, -1,
1384 327, -1, 163, 190, -1, 163, 190, 161, -1, 214,
1385 133, 328, 190, -1, 214, 133, 328, 190, 161, -1,
1386 214, 85, 328, 190, -1, 214, 85, 328, 190, 161,
1387 -1, 32, 190, -1, 31, 190, -1, 30, 189, -1,
1388 21, 189, -1, 22, 189, -1, 167, -1, 89, 166,
1389 333, -1, 167, -1, 89, 166, 333, -1, 169, -1,
1390 169, 168, -1, 169, 95, 171, -1, 169, 95, 171,
1391 134, 170, -1, 169, 95, -1, 169, 95, 134, 170,
1392 -1, 95, 171, -1, 95, 171, 134, 170, -1, 95,
1393 -1, 95, 134, 170, -1, 171, -1, 89, 166, 333,
1394 -1, 168, 134, -1, 169, 168, 134, -1, 168, -1,
1395 170, 134, 168, -1, 292, -1, 293, -1, 214, 132,
1396 188, 334, -1, 214, 133, 52, -1, 214, 85, 52,
1397 -1, 214, 133, 56, -1, 214, 85, 56, -1, 86,
1398 56, -1, 296, -1, 292, -1, 293, -1, 214, 132,
1399 188, 334, -1, 214, 133, 52, -1, 214, 85, 52,
1400 -1, 214, 133, 56, -1, 214, 85, 56, -1, 86,
1401 56, -1, 296, -1, 52, -1, 56, -1, 86, 173,
1402 -1, 173, -1, 214, 85, 173, -1, 52, -1, 56,
1403 -1, 53, -1, 180, -1, 181, -1, 175, -1, 288,
1404 -1, 176, -1, 290, -1, 177, -1, -1, 178, 134,
1405 179, 177, -1, 118, -1, 119, -1, 120, -1, 69,
1406 -1, 70, -1, 71, -1, 77, -1, 78, -1, 116,
1407 -1, 73, -1, 117, -1, 74, -1, 72, -1, 83,
1408 -1, 84, -1, 121, -1, 122, -1, 123, -1, 95,
1409 -1, 124, -1, 125, -1, 68, -1, 96, -1, 127,
1410 -1, 128, -1, 66, -1, 67, -1, 81, -1, 82,
1411 -1, 135, -1, 49, -1, 50, -1, 51, -1, 47,
1412 -1, 48, -1, 45, -1, 37, -1, 7, -1, 21,
1413 -1, 16, -1, 3, -1, 5, -1, 46, -1, 26,
1414 -1, 15, -1, 14, -1, 10, -1, 9, -1, 36,
1415 -1, 20, -1, 25, -1, 4, -1, 22, -1, 34,
1416 -1, 39, -1, 38, -1, 23, -1, 8, -1, 24,
1417 -1, 30, -1, 33, -1, 32, -1, 13, -1, 35,
1418 -1, 6, -1, 17, -1, 31, -1, 11, -1, 12,
1419 -1, 18, -1, 19, -1, 172, 113, 182, -1, 172,
1420 113, 182, 44, 182, -1, 295, 87, 182, -1, 295,
1421 87, 182, 44, 182, -1, 214, 132, 188, 334, 87,
1422 182, -1, 214, 133, 52, 87, 182, -1, 214, 133,
1423 56, 87, 182, -1, 214, 85, 52, 87, 182, -1,
1424 214, 85, 56, 87, 182, -1, 86, 56, 87, 182,
1425 -1, 296, 87, 182, -1, 182, 79, 182, -1, 182,
1426 80, 182, -1, 182, 121, 182, -1, 182, 122, 182,
1427 -1, 182, 123, 182, -1, 182, 124, 182, -1, 182,
1428 125, 182, -1, 182, 68, 182, -1, 126, 59, 68,
1429 182, -1, 126, 60, 68, 182, -1, 66, 182, -1,
1430 67, 182, -1, 182, 118, 182, -1, 182, 119, 182,
1431 -1, 182, 120, 182, -1, 182, 69, 182, -1, 182,
1432 116, 182, -1, 182, 73, 182, -1, 182, 117, 182,
1433 -1, 182, 74, 182, -1, 182, 70, 182, -1, 182,
1434 71, 182, -1, 182, 72, 182, -1, 182, 77, 182,
1435 -1, 182, 78, 182, -1, 127, 182, -1, 128, 182,
1436 -1, 182, 83, 182, -1, 182, 84, 182, -1, 182,
1437 75, 182, -1, 182, 76, 182, -1, -1, 46, 332,
1438 183, 182, -1, 182, 114, 182, 332, 115, 182, -1,
1439 196, -1, 182, -1, 338, -1, 194, 335, -1, 194,
1440 134, 325, 335, -1, 325, 335, -1, 136, 188, 333,
1441 -1, 338, -1, 186, -1, 338, -1, 189, -1, 194,
1442 134, -1, 194, 134, 325, 134, -1, 325, 134, -1,
1443 164, -1, 194, 193, -1, 325, 193, -1, 194, 134,
1444 325, 193, -1, 192, -1, -1, 191, 189, -1, 97,
1445 184, -1, 134, 192, -1, 338, -1, 184, -1, 95,
1446 184, -1, 194, 134, 184, -1, 194, 134, 95, 184,
1447 -1, 194, 134, 184, -1, 194, 134, 95, 184, -1,
1448 95, 184, -1, 264, -1, 265, -1, 268, -1, 269,
1449 -1, 270, -1, 275, -1, 273, -1, 276, -1, 294,
1450 -1, 296, -1, 53, -1, -1, 215, 197, 149, 225,
1451 -1, -1, 90, 198, 333, -1, -1, 90, 157, 199,
1452 333, -1, 89, 150, 137, -1, 214, 85, 56, -1,
1453 86, 56, -1, 92, 185, 138, -1, 93, 324, 131,
1454 -1, 30, -1, 31, 136, 189, 333, -1, 31, 136,
1455 333, -1, 31, -1, -1, 46, 332, 136, 200, 157,
1456 333, -1, 39, 136, 157, 333, -1, 39, 136, 333,
1457 -1, 163, 255, -1, 250, -1, 250, 255, -1, 98,
1458 242, -1, 216, 158, 226, 150, 228, 225, -1, 217,
1459 158, 226, 150, 229, 225, -1, -1, -1, 218, 201,
1460 158, 227, 202, 150, 225, -1, -1, -1, 219, 203,
1461 158, 227, 204, 150, 225, -1, 220, 158, 331, 258,
1462 225, -1, 220, 331, 258, 225, -1, -1, -1, 221,
1463 230, 25, 205, 158, 227, 206, 150, 225, -1, -1,
1464 222, 174, 297, 207, 149, 225, -1, -1, -1, 222,
1465 83, 157, 208, 336, 209, 149, 225, -1, -1, 223,
1466 174, 210, 149, 225, -1, -1, 224, 175, 211, 299,
1467 149, 225, -1, -1, -1, 224, 322, 330, 212, 175,
1468 213, 299, 149, 225, -1, 21, -1, 22, -1, 23,
1469 -1, 24, -1, 196, -1, 7, -1, 11, -1, 12,
1470 -1, 18, -1, 19, -1, 16, -1, 20, -1, 3,
1471 -1, 4, -1, 5, -1, 10, -1, 336, -1, 13,
1472 -1, 336, 13, -1, 336, -1, 27, -1, 229, -1,
1473 14, 158, 226, 150, 228, -1, 338, -1, 15, 150,
1474 -1, 172, -1, 165, -1, 304, -1, 89, 233, 333,
1475 -1, 231, -1, 232, 134, 231, -1, 232, -1, 232,
1476 134, 95, 304, -1, 232, 134, 95, 304, 134, 232,
1477 -1, 232, 134, 95, -1, 232, 134, 95, 134, 232,
1478 -1, 95, 304, -1, 95, 304, 134, 232, -1, 95,
1479 -1, 95, 134, 232, -1, 309, 134, 312, 321, -1,
1480 309, 321, -1, 312, 321, -1, 320, -1, 134, 234,
1481 -1, -1, 306, 134, 315, 134, 318, 235, -1, 306,
1482 134, 315, 134, 318, 134, 306, 235, -1, 306, 134,
1483 315, 235, -1, 306, 134, 315, 134, 306, 235, -1,
1484 306, 134, 318, 235, -1, 306, 134, -1, 306, 134,
1485 318, 134, 306, 235, -1, 306, 235, -1, 315, 134,
1486 318, 235, -1, 315, 134, 318, 134, 306, 235, -1,
1487 315, 235, -1, 315, 134, 306, 235, -1, 318, 235,
1488 -1, 318, 134, 306, 235, -1, 234, -1, 338, -1,
1489 238, -1, 118, 239, 118, -1, 76, -1, 118, 236,
1490 239, 118, -1, 332, -1, 332, 139, 240, 332, -1,
1491 241, -1, 240, 134, 241, -1, 52, -1, 303, -1,
1492 -1, -1, 243, 244, 245, 246, -1, 136, 302, 239,
1493 137, -1, 302, -1, 111, 150, 131, -1, 29, 150,
1494 10, -1, -1, 28, 248, 237, 150, 10, -1, 164,
1495 247, -1, 249, 330, 328, 187, -1, 249, 330, 328,
1496 187, 255, -1, 249, 330, 328, 190, 247, -1, 163,
1497 186, -1, -1, 214, 133, 328, 251, 187, -1, -1,
1498 214, 85, 328, 252, 186, -1, 214, 85, 329, -1,
1499 -1, 214, 133, 253, 186, -1, -1, 214, 85, 254,
1500 186, -1, 32, 186, -1, 32, -1, 214, 132, 188,
1501 334, -1, -1, 130, 256, 237, 150, 131, -1, -1,
1502 26, 257, 237, 150, 10, -1, 17, 194, 226, 150,
1503 259, -1, 229, -1, 258, -1, 8, 261, 262, 226,
1504 150, 260, -1, 338, -1, 184, -1, 195, -1, 338,
1505 -1, 88, 172, -1, 338, -1, 9, 150, -1, 338,
1506 -1, 291, -1, 288, -1, 290, -1, 266, -1, 62,
1507 -1, 267, -1, 266, 267, -1, 100, 279, 110, -1,
1508 101, 280, 110, -1, 102, 281, 65, -1, 103, 140,
1509 110, -1, 103, 271, 110, -1, -1, 271, 272, 140,
1510 -1, 282, -1, 272, 282, -1, 105, 140, 110, -1,
1511 105, 274, 110, -1, -1, 274, 272, 140, -1, 104,
1512 140, 110, -1, 104, 277, 110, -1, 106, 140, 110,
1513 -1, 106, 278, 110, -1, -1, 277, 61, 140, -1,
1514 -1, 278, 61, 140, -1, -1, 279, 282, -1, -1,
1515 280, 282, -1, -1, 281, 282, -1, 61, -1, -1,
1516 109, 283, 287, -1, -1, -1, -1, 107, 284, 285,
1517 286, 150, 108, -1, 54, -1, 55, -1, 57, -1,
1518 296, -1, 99, 289, -1, 175, -1, 55, -1, 54,
1519 -1, 57, -1, 99, 280, 110, -1, 59, -1, 60,
1520 -1, 126, 59, -1, 126, 60, -1, 52, -1, 55,
1521 -1, 54, -1, 56, -1, 57, -1, 34, -1, 33,
1522 -1, 35, -1, 36, -1, 50, -1, 49, -1, 51,
1523 -1, 292, -1, 293, -1, 292, -1, 293, -1, 63,
1524 -1, 64, -1, 336, -1, -1, 117, 298, 158, 336,
1525 -1, 1, 336, -1, 136, 302, 333, -1, 302, 336,
1526 -1, 310, 134, 312, 321, -1, 310, 321, -1, 312,
1527 321, -1, 320, -1, 134, 300, -1, -1, 306, 134,
1528 316, 134, 318, 301, -1, 306, 134, 316, 134, 318,
1529 134, 306, 301, -1, 306, 134, 316, 301, -1, 306,
1530 134, 316, 134, 306, 301, -1, 306, 134, 318, 301,
1531 -1, 306, 134, 318, 134, 306, 301, -1, 306, 301,
1532 -1, 316, 134, 318, 301, -1, 316, 134, 318, 134,
1533 306, 301, -1, 316, 301, -1, 316, 134, 306, 301,
1534 -1, 318, 301, -1, 318, 134, 306, 301, -1, 300,
1535 -1, -1, 56, -1, 55, -1, 54, -1, 57, -1,
1536 303, -1, 52, -1, 304, -1, 89, 233, 333, -1,
1537 305, -1, 306, 134, 305, -1, 58, 184, -1, 58,
1538 214, -1, 308, -1, 309, 134, 308, -1, 307, -1,
1539 310, 134, 307, -1, 68, -1, 96, -1, 311, 52,
1540 -1, 311, -1, 52, 113, 184, -1, 52, 113, 214,
1541 -1, 314, -1, 315, 134, 314, -1, 313, -1, 316,
1542 134, 313, -1, 123, -1, 95, -1, 317, 52, -1,
1543 317, -1, 120, -1, 97, -1, 319, 52, -1, 134,
1544 320, -1, 338, -1, 294, -1, -1, 136, 323, 157,
1545 333, -1, 338, -1, 325, 335, -1, 326, -1, 325,
1546 134, 326, -1, 184, 88, 184, -1, 58, 184, -1,
1547 96, 184, -1, 52, -1, 56, -1, 53, -1, 52,
1548 -1, 56, -1, 53, -1, 180, -1, 52, -1, 53,
1549 -1, 180, -1, 133, -1, 85, -1, -1, 337, -1,
1550 -1, 141, -1, 332, 137, -1, 332, 138, -1, -1,
1551 141, -1, 134, -1, 139, -1, 141, -1, 336, -1,
1558 0, 850, 850, 850, 881, 892, 901, 909, 917, 923,
1559 925, 924, 945, 978, 989, 998, 1006, 1014, 1020, 1025,
1560 1024, 1045, 1045, 1053, 1061, 1072, 1082, 1090, 1099, 1108,
1561 1121, 1134, 1143, 1155, 1156, 1166, 1171, 1192, 1197, 1202,
1562 1212, 1217, 1227, 1236, 1245, 1254, 1257, 1266, 1278, 1279,
1563 1287, 1295, 1303, 1311, 1314, 1326, 1327, 1330, 1331, 1343,
1564 1342, 1364, 1374, 1383, 1396, 1405, 1417, 1426, 1438, 1447,
1565 1456, 1464, 1472, 1482, 1483, 1493, 1494, 1504, 1512, 1520,
1566 1528, 1537, 1545, 1554, 1562, 1571, 1579, 1590, 1591, 1601,
1567 1609, 1619, 1627, 1637, 1641, 1645, 1653, 1661, 1669, 1677,
1568 1689, 1699, 1711, 1720, 1729, 1737, 1745, 1753, 1761, 1774,
1569 1787, 1798, 1806, 1809, 1817, 1825, 1835, 1836, 1837, 1838,
1570 1843, 1854, 1855, 1858, 1866, 1869, 1877, 1877, 1887, 1888,
1571 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898,
1572 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908,
1573 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1919, 1919,
1574 1919, 1920, 1920, 1921, 1921, 1921, 1922, 1922, 1922, 1922,
1575 1923, 1923, 1923, 1923, 1924, 1924, 1924, 1925, 1925, 1925,
1576 1925, 1926, 1926, 1926, 1926, 1927, 1927, 1927, 1927, 1928,
1577 1928, 1928, 1928, 1929, 1929, 1929, 1929, 1930, 1930, 1933,
1578 1942, 1952, 1957, 1967, 1993, 1998, 2003, 2008, 2018, 2028,
1579 2039, 2053, 2067, 2075, 2083, 2091, 2099, 2107, 2115, 2124,
1580 2133, 2141, 2149, 2157, 2165, 2173, 2181, 2189, 2197, 2205,
1581 2213, 2221, 2229, 2237, 2248, 2256, 2264, 2272, 2280, 2288,
1582 2296, 2304, 2304, 2314, 2324, 2330, 2342, 2343, 2347, 2355,
1583 2365, 2375, 2376, 2379, 2380, 2381, 2385, 2393, 2403, 2412,
1584 2420, 2430, 2439, 2448, 2448, 2460, 2470, 2474, 2480, 2488,
1585 2496, 2510, 2526, 2540, 2555, 2565, 2566, 2567, 2568, 2569,
1586 2570, 2571, 2572, 2573, 2574, 2575, 2584, 2583, 2611, 2611,
1587 2619, 2619, 2627, 2635, 2643, 2651, 2664, 2672, 2680, 2688,
1588 2696, 2704, 2704, 2714, 2722, 2730, 2740, 2741, 2751, 2755,
1589 2767, 2779, 2779, 2779, 2790, 2790, 2790, 2801, 2812, 2821,
1590 2823, 2820, 2887, 2886, 2908, 2913, 2907, 2932, 2931, 2953,
1591 2952, 2975, 2976, 2975, 2996, 3004, 3012, 3020, 3030, 3042,
1592 3048, 3054, 3060, 3066, 3072, 3078, 3084, 3090, 3096, 3106,
1593 3112, 3117, 3118, 3125, 3130, 3133, 3134, 3147, 3148, 3158,
1594 3159, 3162, 3170, 3180, 3188, 3198, 3206, 3215, 3224, 3232,
1595 3240, 3249, 3261, 3269, 3280, 3284, 3288, 3292, 3298, 3303,
1596 3308, 3312, 3316, 3320, 3324, 3328, 3336, 3340, 3344, 3348,
1597 3352, 3356, 3360, 3364, 3368, 3374, 3375, 3381, 3390, 3399,
1598 3410, 3414, 3424, 3431, 3440, 3448, 3454, 3457, 3454, 3474,
1599 3482, 3492, 3496, 3503, 3502, 3523, 3539, 3548, 3560, 3574,
1600 3584, 3583, 3600, 3599, 3615, 3624, 3623, 3641, 3640, 3657,
1601 3665, 3673, 3688, 3687, 3707, 3706, 3727, 3739, 3740, 3743,
1602 3762, 3765, 3773, 3781, 3784, 3788, 3791, 3799, 3802, 3803,
1603 3811, 3814, 3831, 3832, 3833, 3843, 3853, 3880, 3945, 3954,
1604 3965, 3972, 3982, 3990, 4000, 4009, 4020, 4027, 4039, 4048,
1605 4058, 4067, 4078, 4085, 4096, 4103, 4118, 4125, 4136, 4143,
1606 4154, 4161, 4190, 4192, 4191, 4208, 4214, 4219, 4207, 4238,
1607 4246, 4254, 4262, 4265, 4276, 4277, 4278, 4279, 4282, 4293,
1608 4294, 4295, 4303, 4313, 4314, 4315, 4316, 4317, 4320, 4321,
1609 4322, 4323, 4324, 4325, 4326, 4329, 4342, 4352, 4360, 4370,
1610 4371, 4374, 4383, 4382, 4391, 4403, 4413, 4421, 4425, 4429,
1611 4433, 4439, 4444, 4449, 4453, 4457, 4461, 4465, 4469, 4473,
1612 4477, 4481, 4485, 4489, 4493, 4497, 4501, 4506, 4512, 4521,
1613 4530, 4539, 4550, 4551, 4558, 4567, 4586, 4593, 4606, 4618,
1614 4630, 4638, 4655, 4663, 4679, 4680, 4683, 4688, 4694, 4706,
1615 4718, 4726, 4742, 4750, 4766, 4767, 4770, 4783, 4794, 4795,
1616 4798, 4815, 4819, 4829, 4839, 4839, 4868, 4869, 4879, 4886,
1617 4896, 4904, 4912, 4924, 4925, 4926, 4929, 4930, 4931, 4932,
1618 4935, 4936, 4937, 4940, 4945, 4952, 4953, 4956, 4957, 4960,
1619 4963, 4966, 4967, 4968, 4971, 4972, 4975, 4976, 4980
1623 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1628 "\"end-of-input\"",
"error",
"$undefined",
"keyword_class",
1629 "keyword_module",
"keyword_def",
"keyword_undef",
"keyword_begin",
1630 "keyword_rescue",
"keyword_ensure",
"keyword_end",
"keyword_if",
1631 "keyword_unless",
"keyword_then",
"keyword_elsif",
"keyword_else",
1632 "keyword_case",
"keyword_when",
"keyword_while",
"keyword_until",
1633 "keyword_for",
"keyword_break",
"keyword_next",
"keyword_redo",
1634 "keyword_retry",
"keyword_in",
"keyword_do",
"keyword_do_cond",
1635 "keyword_do_block",
"keyword_do_LAMBDA",
"keyword_return",
1636 "keyword_yield",
"keyword_super",
"keyword_self",
"keyword_nil",
1637 "keyword_true",
"keyword_false",
"keyword_and",
"keyword_or",
1638 "keyword_not",
"modifier_if",
"modifier_unless",
"modifier_while",
1639 "modifier_until",
"modifier_rescue",
"keyword_alias",
"keyword_defined",
1640 "keyword_BEGIN",
"keyword_END",
"keyword__LINE__",
"keyword__FILE__",
1641 "keyword__ENCODING__",
"tIDENTIFIER",
"tFID",
"tGVAR",
"tIVAR",
1642 "tCONSTANT",
"tCVAR",
"tLABEL",
"tINTEGER",
"tFLOAT",
"tSTRING_CONTENT",
1643 "tCHAR",
"tNTH_REF",
"tBACK_REF",
"tREGEXP_END",
"\"unary+\"",
1644 "\"unary-\"",
"\"**\"",
"\"<=>\"",
"\"==\"",
"\"===\"",
"\"!=\"",
1645 "\">=\"",
"\"<=\"",
"\"&&\"",
"\"||\"",
"\"=~\"",
"\"!~\"",
"\"..\"",
1646 "\"...\"",
"\"[]\"",
"\"[]=\"",
"\"<<\"",
"\">>\"",
"\"::\"",
1647 "\":: at EXPR_BEG\"",
"tOP_ASGN",
"\"=>\"",
"\"(\"",
"\"( arg\"",
1648 "\")\"",
"\"[\"",
"\"{\"",
"\"{ arg\"",
"\"*\"",
"\"**arg\"",
"\"&\"",
1649 "\"->\"",
"tSYMBEG",
"tSTRING_BEG",
"tXSTRING_BEG",
"tREGEXP_BEG",
1650 "tWORDS_BEG",
"tQWORDS_BEG",
"tSYMBOLS_BEG",
"tQSYMBOLS_BEG",
1651 "tSTRING_DBEG",
"tSTRING_DEND",
"tSTRING_DVAR",
"tSTRING_END",
"tLAMBEG",
1652 "tLOWEST",
"'='",
"'?'",
"':'",
"'>'",
"'<'",
"'|'",
"'^'",
"'&'",
"'+'",
1653 "'-'",
"'*'",
"'/'",
"'%'",
"tUMINUS_NUM",
"'!'",
"'~'",
"tLAST_TOKEN",
1654 "'{'",
"'}'",
"'['",
"'.'",
"','",
"'`'",
"'('",
"')'",
"']'",
"';'",
1655 "' '",
"'\\n'",
"$accept",
"program",
"@1",
"top_compstmt",
"top_stmts",
1656 "top_stmt",
"@2",
"bodystmt",
"compstmt",
"stmts",
"stmt_or_begin",
"@3",
1657 "stmt",
"@4",
"command_asgn",
"expr",
"expr_value",
"command_call",
1658 "block_command",
"cmd_brace_block",
"@5",
"fcall",
"command",
"mlhs",
1659 "mlhs_inner",
"mlhs_basic",
"mlhs_item",
"mlhs_head",
"mlhs_post",
1660 "mlhs_node",
"lhs",
"cname",
"cpath",
"fname",
"fsym",
"fitem",
1661 "undef_list",
"@6",
"op",
"reswords",
"arg",
"@7",
"arg_value",
1662 "aref_args",
"paren_args",
"opt_paren_args",
"opt_call_args",
1663 "call_args",
"command_args",
"@8",
"block_arg",
"opt_block_arg",
"args",
1664 "mrhs",
"primary",
"@9",
"@10",
"@11",
"@12",
"@13",
"@14",
"@15",
"@16",
1665 "@17",
"@18",
"@19",
"@20",
"@21",
"@22",
"@23",
"@24",
"@25",
1666 "primary_value",
"k_begin",
"k_if",
"k_unless",
"k_while",
"k_until",
1667 "k_case",
"k_for",
"k_class",
"k_module",
"k_def",
"k_end",
"then",
"do",
1668 "if_tail",
"opt_else",
"for_var",
"f_marg",
"f_marg_list",
"f_margs",
1669 "block_args_tail",
"opt_block_args_tail",
"block_param",
1670 "opt_block_param",
"block_param_def",
"opt_bv_decl",
"bv_decls",
"bvar",
1671 "lambda",
"@26",
"@27",
"f_larglist",
"lambda_body",
"do_block",
"@28",
1672 "block_call",
"method_call",
"@29",
"@30",
"@31",
"@32",
"brace_block",
1673 "@33",
"@34",
"case_body",
"cases",
"opt_rescue",
"exc_list",
"exc_var",
1674 "opt_ensure",
"literal",
"strings",
"string",
"string1",
"xstring",
1675 "regexp",
"words",
"word_list",
"word",
"symbols",
"symbol_list",
1676 "qwords",
"qsymbols",
"qword_list",
"qsym_list",
"string_contents",
1677 "xstring_contents",
"regexp_contents",
"string_content",
"@35",
"@36",
1678 "@37",
"@38",
"string_dvar",
"symbol",
"sym",
"dsym",
"numeric",
1679 "user_variable",
"keyword_variable",
"var_ref",
"var_lhs",
"backref",
1680 "superclass",
"@39",
"f_arglist",
"args_tail",
"opt_args_tail",
"f_args",
1681 "f_bad_arg",
"f_norm_arg",
"f_arg_item",
"f_arg",
"f_kw",
"f_block_kw",
1682 "f_block_kwarg",
"f_kwarg",
"kwrest_mark",
"f_kwrest",
"f_opt",
1683 "f_block_opt",
"f_block_optarg",
"f_optarg",
"restarg_mark",
1684 "f_rest_arg",
"blkarg_mark",
"f_block_arg",
"opt_f_block_arg",
1685 "singleton",
"@40",
"assoc_list",
"assocs",
"assoc",
"operation",
1686 "operation2",
"operation3",
"dot_or_colon",
"opt_terms",
"opt_nl",
1687 "rparen",
"rbracket",
"trailer",
"term",
"terms",
"none", 0
1694 static const yytype_uint16 yytoknum[] =
1696 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1697 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1698 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1699 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1700 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1701 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1702 315, 316, 317, 318, 319, 320, 130, 131, 132, 134,
1703 139, 140, 141, 138, 137, 321, 322, 142, 143, 128,
1704 129, 144, 145, 135, 136, 323, 324, 325, 326, 327,
1705 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
1706 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
1707 348, 349, 350, 61, 63, 58, 62, 60, 124, 94,
1708 38, 43, 45, 42, 47, 37, 351, 33, 126, 352,
1709 123, 125, 91, 46, 44, 96, 40, 41, 93, 59,
1715 static const yytype_uint16
yyr1[] =
1717 0, 142, 144, 143, 145, 146, 146, 146, 146, 147,
1718 148, 147, 149, 150, 151, 151, 151, 151, 152, 153,
1719 152, 155, 154, 154, 154, 154, 154, 154, 154, 154,
1720 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
1721 154, 154, 154, 154, 154, 154, 156, 156, 157, 157,
1722 157, 157, 157, 157, 158, 159, 159, 160, 160, 162,
1723 161, 163, 164, 164, 164, 164, 164, 164, 164, 164,
1724 164, 164, 164, 165, 165, 166, 166, 167, 167, 167,
1725 167, 167, 167, 167, 167, 167, 167, 168, 168, 169,
1726 169, 170, 170, 171, 171, 171, 171, 171, 171, 171,
1727 171, 171, 172, 172, 172, 172, 172, 172, 172, 172,
1728 172, 173, 173, 174, 174, 174, 175, 175, 175, 175,
1729 175, 176, 176, 177, 177, 178, 179, 178, 180, 180,
1730 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
1731 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
1732 180, 180, 180, 180, 180, 180, 180, 180, 181, 181,
1733 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
1734 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
1735 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
1736 181, 181, 181, 181, 181, 181, 181, 181, 181, 182,
1737 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1738 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1739 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1740 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1741 182, 183, 182, 182, 182, 184, 185, 185, 185, 185,
1742 186, 187, 187, 188, 188, 188, 188, 188, 189, 189,
1743 189, 189, 189, 191, 190, 192, 193, 193, 194, 194,
1744 194, 194, 195, 195, 195, 196, 196, 196, 196, 196,
1745 196, 196, 196, 196, 196, 196, 197, 196, 198, 196,
1746 199, 196, 196, 196, 196, 196, 196, 196, 196, 196,
1747 196, 200, 196, 196, 196, 196, 196, 196, 196, 196,
1748 196, 201, 202, 196, 203, 204, 196, 196, 196, 205,
1749 206, 196, 207, 196, 208, 209, 196, 210, 196, 211,
1750 196, 212, 213, 196, 196, 196, 196, 196, 214, 215,
1751 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
1752 226, 226, 226, 227, 227, 228, 228, 229, 229, 230,
1753 230, 231, 231, 232, 232, 233, 233, 233, 233, 233,
1754 233, 233, 233, 233, 234, 234, 234, 234, 235, 235,
1755 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
1756 236, 236, 236, 236, 236, 237, 237, 238, 238, 238,
1757 239, 239, 240, 240, 241, 241, 243, 244, 242, 245,
1758 245, 246, 246, 248, 247, 249, 249, 249, 249, 250,
1759 251, 250, 252, 250, 250, 253, 250, 254, 250, 250,
1760 250, 250, 256, 255, 257, 255, 258, 259, 259, 260,
1761 260, 261, 261, 261, 262, 262, 263, 263, 264, 264,
1762 264, 265, 266, 266, 266, 267, 268, 269, 270, 270,
1763 271, 271, 272, 272, 273, 273, 274, 274, 275, 275,
1764 276, 276, 277, 277, 278, 278, 279, 279, 280, 280,
1765 281, 281, 282, 283, 282, 284, 285, 286, 282, 287,
1766 287, 287, 287, 288, 289, 289, 289, 289, 290, 291,
1767 291, 291, 291, 292, 292, 292, 292, 292, 293, 293,
1768 293, 293, 293, 293, 293, 294, 294, 295, 295, 296,
1769 296, 297, 298, 297, 297, 299, 299, 300, 300, 300,
1770 300, 301, 301, 302, 302, 302, 302, 302, 302, 302,
1771 302, 302, 302, 302, 302, 302, 302, 302, 303, 303,
1772 303, 303, 304, 304, 305, 305, 306, 306, 307, 308,
1773 309, 309, 310, 310, 311, 311, 312, 312, 313, 314,
1774 315, 315, 316, 316, 317, 317, 318, 318, 319, 319,
1775 320, 321, 321, 322, 323, 322, 324, 324, 325, 325,
1776 326, 326, 326, 327, 327, 327, 328, 328, 328, 328,
1777 329, 329, 329, 330, 330, 331, 331, 332, 332, 333,
1778 334, 335, 335, 335, 336, 336, 337, 337, 338
1784 0, 2, 0, 2, 2, 1, 1, 3, 2, 1,
1785 0, 5, 4, 2, 1, 1, 3, 2, 1, 0,
1786 5, 0, 4, 3, 3, 3, 2, 3, 3, 3,
1787 3, 3, 4, 1, 3, 3, 6, 5, 5, 5,
1788 5, 3, 3, 3, 3, 1, 3, 3, 1, 3,
1789 3, 3, 2, 1, 1, 1, 1, 1, 4, 0,
1790 5, 1, 2, 3, 4, 5, 4, 5, 2, 2,
1791 2, 2, 2, 1, 3, 1, 3, 1, 2, 3,
1792 5, 2, 4, 2, 4, 1, 3, 1, 3, 2,
1793 3, 1, 3, 1, 1, 4, 3, 3, 3, 3,
1794 2, 1, 1, 1, 4, 3, 3, 3, 3, 2,
1795 1, 1, 1, 2, 1, 3, 1, 1, 1, 1,
1796 1, 1, 1, 1, 1, 1, 0, 4, 1, 1,
1797 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1798 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1799 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1800 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1801 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1802 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1803 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
1804 5, 3, 5, 6, 5, 5, 5, 5, 4, 3,
1805 3, 3, 3, 3, 3, 3, 3, 3, 4, 4,
1806 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
1807 3, 3, 3, 3, 3, 2, 2, 3, 3, 3,
1808 3, 0, 4, 6, 1, 1, 1, 2, 4, 2,
1809 3, 1, 1, 1, 1, 2, 4, 2, 1, 2,
1810 2, 4, 1, 0, 2, 2, 2, 1, 1, 2,
1811 3, 4, 3, 4, 2, 1, 1, 1, 1, 1,
1812 1, 1, 1, 1, 1, 1, 0, 4, 0, 3,
1813 0, 4, 3, 3, 2, 3, 3, 1, 4, 3,
1814 1, 0, 6, 4, 3, 2, 1, 2, 2, 6,
1815 6, 0, 0, 7, 0, 0, 7, 5, 4, 0,
1816 0, 9, 0, 6, 0, 0, 8, 0, 5, 0,
1817 6, 0, 0, 9, 1, 1, 1, 1, 1, 1,
1818 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1819 1, 1, 2, 1, 1, 1, 5, 1, 2, 1,
1820 1, 1, 3, 1, 3, 1, 4, 6, 3, 5,
1821 2, 4, 1, 3, 4, 2, 2, 1, 2, 0,
1822 6, 8, 4, 6, 4, 2, 6, 2, 4, 6,
1823 2, 4, 2, 4, 1, 1, 1, 3, 1, 4,
1824 1, 4, 1, 3, 1, 1, 0, 0, 4, 4,
1825 1, 3, 3, 0, 5, 2, 4, 5, 5, 2,
1826 0, 5, 0, 5, 3, 0, 4, 0, 4, 2,
1827 1, 4, 0, 5, 0, 5, 5, 1, 1, 6,
1828 1, 1, 1, 1, 2, 1, 2, 1, 1, 1,
1829 1, 1, 1, 1, 2, 3, 3, 3, 3, 3,
1830 0, 3, 1, 2, 3, 3, 0, 3, 3, 3,
1831 3, 3, 0, 3, 0, 3, 0, 2, 0, 2,
1832 0, 2, 1, 0, 3, 0, 0, 0, 6, 1,
1833 1, 1, 1, 2, 1, 1, 1, 1, 3, 1,
1834 1, 2, 2, 1, 1, 1, 1, 1, 1, 1,
1835 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1836 1, 1, 0, 4, 2, 3, 2, 4, 2, 2,
1837 1, 2, 0, 6, 8, 4, 6, 4, 6, 2,
1838 4, 6, 2, 4, 2, 4, 1, 0, 1, 1,
1839 1, 1, 1, 1, 1, 3, 1, 3, 2, 2,
1840 1, 3, 1, 3, 1, 1, 2, 1, 3, 3,
1841 1, 3, 1, 3, 1, 1, 2, 1, 1, 1,
1842 2, 2, 1, 1, 0, 4, 1, 2, 1, 3,
1843 3, 2, 2, 1, 1, 1, 1, 1, 1, 1,
1844 1, 1, 1, 1, 1, 0, 1, 0, 1, 2,
1845 2, 0, 1, 1, 1, 1, 1, 2, 0
1853 2, 0, 0, 1, 0, 346, 347, 348, 0, 339,
1854 340, 341, 344, 342, 343, 345, 334, 335, 336, 337,
1855 297, 263, 263, 509, 508, 510, 511, 607, 0, 607,
1856 10, 0, 513, 512, 514, 593, 595, 505, 504, 594,
1857 507, 499, 500, 452, 519, 520, 0, 0, 0, 0,
1858 288, 618, 618, 85, 406, 478, 476, 478, 480, 460,
1859 472, 466, 474, 0, 0, 0, 3, 605, 6, 9,
1860 33, 45, 48, 56, 263, 55, 0, 73, 0, 77,
1861 87, 0, 53, 244, 0, 286, 0, 0, 311, 314,
1862 605, 0, 0, 0, 0, 57, 306, 275, 276, 451,
1863 453, 277, 278, 279, 281, 280, 282, 449, 450, 448,
1864 515, 516, 283, 0, 284, 61, 5, 8, 168, 179,
1865 169, 192, 165, 185, 175, 174, 195, 196, 190, 173,
1866 172, 167, 193, 197, 198, 177, 166, 180, 184, 186,
1867 178, 171, 187, 194, 189, 188, 181, 191, 176, 164,
1868 183, 182, 163, 170, 161, 162, 158, 159, 160, 116,
1869 118, 117, 153, 154, 149, 131, 132, 133, 140, 137,
1870 139, 134, 135, 155, 156, 141, 142, 146, 150, 136,
1871 138, 128, 129, 130, 143, 144, 145, 147, 148, 151,
1872 152, 157, 121, 123, 125, 26, 119, 120, 122, 124,
1873 0, 0, 0, 0, 0, 0, 0, 0, 258, 0,
1874 245, 268, 71, 262, 618, 0, 515, 516, 0, 284,
1875 618, 588, 72, 70, 607, 69, 0, 618, 429, 68,
1876 607, 608, 0, 0, 21, 241, 0, 0, 334, 335,
1877 297, 300, 430, 0, 220, 0, 221, 294, 0, 19,
1878 0, 0, 605, 15, 18, 607, 75, 14, 290, 607,
1879 0, 611, 611, 246, 0, 0, 611, 586, 607, 0,
1880 0, 0, 83, 338, 0, 93, 94, 101, 308, 407,
1881 496, 495, 497, 494, 0, 493, 0, 0, 0, 0,
1882 0, 0, 0, 0, 0, 0, 0, 501, 502, 52,
1883 235, 236, 614, 615, 4, 616, 606, 0, 0, 0,
1884 0, 0, 0, 0, 434, 432, 419, 62, 305, 413,
1885 415, 0, 89, 0, 81, 78, 0, 0, 0, 0,
1886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1887 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1888 0, 0, 0, 427, 618, 425, 0, 54, 0, 0,
1889 0, 0, 605, 0, 606, 0, 360, 359, 0, 0,
1890 515, 516, 284, 111, 112, 0, 0, 114, 0, 0,
1891 515, 516, 284, 327, 188, 181, 191, 176, 158, 159,
1892 160, 116, 117, 584, 329, 583, 0, 604, 603, 0,
1893 307, 454, 0, 0, 126, 591, 294, 269, 592, 265,
1894 0, 0, 0, 259, 267, 427, 618, 425, 0, 0,
1895 0, 260, 607, 0, 299, 264, 607, 254, 618, 618,
1896 253, 607, 304, 51, 23, 25, 24, 0, 301, 0,
1897 0, 0, 427, 425, 0, 17, 0, 607, 292, 13,
1898 606, 74, 607, 289, 295, 613, 612, 247, 613, 249,
1899 296, 587, 0, 100, 501, 502, 91, 86, 0, 427,
1900 618, 425, 547, 482, 485, 483, 498, 479, 455, 477,
1901 456, 457, 481, 458, 459, 0, 462, 468, 0, 469,
1902 464, 465, 0, 470, 0, 471, 0, 0, 617, 7,
1903 27, 28, 29, 30, 31, 49, 50, 618, 618, 59,
1904 63, 618, 0, 34, 43, 0, 44, 607, 0, 79,
1905 90, 47, 46, 0, 199, 268, 42, 217, 225, 230,
1906 231, 232, 227, 229, 239, 240, 233, 234, 210, 211,
1907 237, 238, 607, 226, 228, 222, 223, 224, 212, 213,
1908 214, 215, 216, 596, 598, 597, 599, 0, 263, 424,
1909 607, 596, 598, 597, 599, 0, 263, 0, 618, 351,
1910 0, 350, 0, 0, 0, 0, 0, 0, 294, 427,
1911 618, 425, 319, 324, 111, 112, 113, 0, 522, 322,
1912 521, 427, 618, 425, 0, 0, 547, 331, 596, 597,
1913 263, 35, 201, 41, 209, 0, 199, 590, 0, 270,
1914 266, 618, 596, 597, 607, 596, 597, 589, 298, 609,
1915 250, 255, 257, 303, 22, 0, 242, 0, 32, 422,
1916 420, 208, 0, 76, 16, 291, 611, 0, 84, 97,
1917 99, 607, 596, 597, 553, 550, 549, 548, 551, 0,
1918 564, 0, 575, 565, 579, 578, 574, 547, 0, 546,
1919 410, 552, 554, 556, 532, 562, 618, 567, 618, 572,
1920 532, 577, 532, 0, 530, 486, 0, 461, 463, 473,
1921 467, 475, 218, 219, 398, 607, 0, 396, 395, 0,
1922 618, 0, 274, 0, 88, 82, 0, 0, 0, 0,
1923 0, 0, 428, 66, 0, 0, 431, 0, 0, 426,
1924 64, 618, 349, 287, 618, 618, 440, 618, 352, 618,
1925 354, 312, 353, 315, 0, 0, 318, 600, 293, 607,
1926 596, 597, 0, 0, 524, 0, 0, 111, 112, 115,
1927 607, 0, 607, 547, 0, 0, 0, 252, 416, 58,
1928 251, 0, 127, 271, 261, 0, 0, 431, 0, 0,
1929 618, 607, 11, 0, 248, 92, 95, 0, 558, 553,
1930 0, 372, 363, 365, 607, 361, 607, 0, 0, 408,
1931 0, 539, 0, 528, 582, 566, 0, 529, 0, 542,
1932 576, 0, 544, 580, 487, 489, 490, 491, 484, 492,
1933 553, 0, 394, 607, 0, 379, 560, 618, 618, 570,
1934 379, 379, 377, 400, 0, 0, 0, 0, 0, 272,
1935 80, 200, 0, 40, 206, 39, 207, 67, 423, 610,
1936 0, 37, 204, 38, 205, 65, 421, 441, 442, 618,
1937 443, 0, 618, 357, 0, 0, 355, 0, 0, 0,
1938 317, 0, 0, 431, 0, 325, 0, 0, 431, 328,
1939 585, 607, 0, 526, 332, 417, 418, 202, 0, 256,
1940 302, 20, 568, 607, 0, 370, 0, 555, 0, 0,
1941 0, 531, 557, 532, 532, 563, 618, 581, 532, 573,
1942 532, 532, 0, 0, 0, 559, 0, 397, 385, 387,
1943 0, 375, 376, 0, 390, 0, 392, 0, 435, 433,
1944 0, 414, 273, 243, 36, 203, 0, 0, 445, 358,
1945 0, 12, 447, 0, 309, 310, 0, 0, 270, 618,
1946 320, 0, 523, 323, 525, 330, 547, 362, 373, 0,
1947 368, 364, 409, 412, 411, 0, 535, 0, 537, 527,
1948 0, 543, 0, 540, 545, 0, 569, 294, 427, 399,
1949 378, 379, 379, 561, 618, 379, 571, 379, 379, 404,
1950 607, 402, 405, 60, 0, 444, 0, 102, 103, 110,
1951 0, 446, 0, 313, 316, 437, 438, 436, 0, 0,
1952 0, 0, 371, 0, 366, 532, 532, 532, 532, 488,
1953 600, 293, 0, 382, 0, 384, 374, 0, 391, 0,
1954 388, 393, 0, 401, 109, 427, 618, 425, 618, 618,
1955 0, 326, 0, 369, 0, 536, 0, 533, 538, 541,
1956 379, 379, 379, 379, 403, 600, 108, 607, 596, 597,
1957 439, 356, 321, 333, 367, 532, 383, 0, 380, 386,
1958 389, 431, 534, 379, 381
1964 -1, 1, 2, 66, 67, 68, 236, 567, 568, 252,
1965 253, 446, 254, 437, 70, 71, 358, 72, 73, 510,
1966 690, 243, 75, 76, 255, 77, 78, 79, 467, 80,
1967 209, 377, 378, 192, 193, 194, 195, 605, 556, 197,
1968 82, 439, 211, 260, 228, 748, 426, 427, 225, 226,
1969 213, 413, 428, 516, 83, 356, 259, 452, 625, 360,
1970 848, 361, 849, 732, 988, 736, 733, 931, 594, 596,
1971 746, 936, 245, 85, 86, 87, 88, 89, 90, 91,
1972 92, 93, 94, 713, 570, 721, 845, 846, 369, 772,
1973 773, 774, 960, 899, 803, 686, 687, 804, 970, 971,
1974 278, 279, 472, 658, 779, 320, 511, 95, 96, 711,
1975 704, 565, 557, 318, 508, 507, 577, 987, 715, 839,
1976 917, 921, 97, 98, 99, 100, 101, 102, 103, 290,
1977 485, 104, 294, 105, 106, 292, 296, 286, 284, 288,
1978 477, 676, 675, 794, 892, 798, 107, 285, 108, 109,
1979 216, 217, 112, 218, 219, 589, 735, 744, 881, 781,
1980 745, 661, 662, 663, 664, 665, 806, 807, 666, 667,
1981 668, 669, 809, 810, 670, 671, 672, 673, 674, 783,
1982 396, 595, 265, 429, 221, 115, 629, 559, 399, 304,
1983 423, 424, 706, 457, 571, 364, 257
1988 #define YYPACT_NINF -804
1991 -804, 112, 2751, -804, 7365, -804, -804, -804, 6888, -804,
1992 -804, -804, -804, -804, -804, -804, 7478, 7478, -804, -804,
1993 7478, 4073, 3668, -804, -804, -804, -804, 335, 6755, -10,
1994 -804, 15, -804, -804, -804, 2993, 3803, -804, -804, 3128,
1995 -804, -804, -804, -804, -804, -804, 8834, 8834, 92, 5125,
1996 8947, 7817, 8156, 7147, -804, 6622, -804, -804, -804, 44,
1997 56, 182, 209, 544, 9060, 8834, -804, -9, -804, 845,
1998 -804, 130, -804, -804, 138, 266, 238, -804, 219, 9173,
1999 -804, 295, 2612, 398, 405, -804, 8947, 8947, -804, -804,
2000 6012, 9282, 9391, 9500, 6488, 30, 62, -804, -804, 316,
2001 -804, -804, -804, -804, -804, -804, -804, -804, -804, -804,
2002 564, 574, -804, 356, 634, -804, -804, -804, -804, -804,
2003 -804, -804, -804, -804, -804, -804, -804, -804, -804, -804,
2004 -804, -804, -804, -804, -804, -804, -804, -804, -804, -804,
2005 -804, -804, -804, -804, -804, -804, -804, -804, -804, -804,
2006 -804, -804, -804, -804, -804, -804, -804, -804, -804, -804,
2007 -804, -804, -804, -804, -804, -804, -804, -804, -804, -804,
2008 -804, -804, -804, -804, -804, -804, -804, -804, -804, -804,
2009 -804, -804, -804, -804, -804, -804, -804, -804, -804, -804,
2010 -804, -804, -804, -804, -804, 315, -804, -804, -804, -804,
2011 360, 8834, 402, 5264, 8834, 8834, 8834, 8834, -804, 388,
2012 2612, 430, -804, -804, 392, 422, 174, 185, 447, 291,
2013 408, -804, -804, -804, 5899, -804, 7478, 7478, -804, -804,
2014 6125, -804, 8947, 596, -804, 400, 420, 5403, -804, -804,
2015 -804, 423, 432, 138, -804, 546, 515, 720, 7591, -804,
2016 5125, 478, -9, -804, 845, -10, 487, -804, 130, -10,
2017 479, 180, 247, -804, 430, 491, 247, -804, -10, 582,
2018 577, 9609, 499, -804, 573, 578, 600, 654, -804, -804,
2019 -804, -804, -804, -804, 322, -804, 463, 486, 401, 532,
2020 504, 545, 55, 563, 518, 566, 63, 625, 650, -804,
2021 -804, -804, -804, -804, -804, -804, 6238, 8947, 8947, 8947,
2022 8947, 7591, 8947, 8947, -804, -804, -804, 608, -804, -804,
2023 -804, 8269, -804, 5125, 7256, 588, 8269, 8834, 8834, 8834,
2024 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834,
2025 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834,
2026 8834, 8834, 8834, 9888, 7478, 9965, 4482, 130, 116, 116,
2027 8947, 8947, -9, 707, 592, 678, -804, -804, 657, 711,
2028 65, 66, 69, 444, 571, 8947, 129, -804, 257, 670,
2029 -804, -804, -804, -804, 253, 334, 349, 370, 387, 458,
2030 477, 535, 539, -804, -804, -804, 30, -804, -804, 10042,
2031 -804, -804, 9060, 9060, -804, -804, 304, -804, -804, -804,
2032 8834, 8834, 7704, -804, -804, 10119, 7478, 10196, 8834, 8834,
2033 7930, -804, -10, 604, -804, -804, -10, -804, 603, 609,
2034 -804, 89, -804, -804, -804, -804, -804, 6888, -804, 8834,
2035 5534, 617, 10119, 10196, 8834, 845, 621, -10, -804, -804,
2036 6351, 618, -10, -804, -804, 8043, -804, -804, 8156, -804,
2037 -804, -804, 400, 692, -804, -804, -804, 619, 9609, 10273,
2038 7478, 10350, 1377, -804, -804, -804, -804, -804, -804, -804,
2039 -804, -804, -804, -804, -804, 283, -804, -804, 614, -804,
2040 -804, -804, 293, -804, 638, -804, 8834, 8834, -804, -804,
2041 -804, -804, -804, -804, -804, -804, -804, 29, 29, -804,
2042 -804, 29, 8834, -804, 649, 662, -804, -10, 9609, 674,
2043 -804, -804, -804, 691, 2023, -804, -804, 515, 2149, 2149,
2044 2149, 2149, 1118, 1118, 2550, 1796, 2149, 2149, 2837, 2837,
2045 524, 524, 10841, 1118, 1118, 1095, 1095, 1178, 52, 52,
2046 515, 515, 515, 4208, 3263, 4343, 3398, 432, 685, -804,
2047 -10, 722, -804, 732, -804, 432, 3938, 800, 804, -804,
2048 4621, 801, 4899, 70, 70, 707, 8382, 800, 85, 10427,
2049 7478, 10504, -804, 130, -804, 692, -804, -9, -804, -804,
2050 -804, 10581, 7478, 10042, 4482, 8947, 1481, -804, -804, -804,
2051 1147, -804, 2365, -804, 2612, 6888, 2484, -804, 8834, 430,
2052 -804, 408, 2858, 3533, -10, 328, 333, -804, -804, -804,
2053 -804, 7704, 7930, -804, -804, 8947, 2612, 700, -804, -804,
2054 -804, 2612, 5534, 364, -804, -804, 247, 9609, 619, 643,
2055 23, -10, 202, 323, 703, -804, -804, -804, -804, 8834,
2056 -804, 807, -804, -804, -804, -804, -804, 1551, 75, -804,
2057 -804, -804, -804, -804, 689, -804, 694, 780, 702, -804,
2058 717, 806, 733, 817, -804, -804, 789, -804, -804, -804,
2059 -804, -804, 515, 515, -804, 1086, 5673, -804, -804, 5403,
2060 29, 5673, 737, 8495, -804, 619, 9609, 9060, 8834, 726,
2061 9060, 9060, -804, 608, 432, 735, 747, 9060, 9060, -804,
2062 608, 432, -804, -804, 8608, 859, -804, 676, -804, 859,
2063 -804, -804, -804, -804, 800, 74, -804, 57, 61, -10,
2064 100, 108, 8947, -9, -804, 8947, 4482, 643, 23, -804,
2065 -10, 800, 89, 1551, 4482, -9, 7021, -804, 62, 266,
2066 -804, 8834, -804, -804, -804, 8834, 8834, 374, 8834, 8834,
2067 742, 89, -804, 749, -804, -804, 428, 8834, -804, -804,
2068 807, 708, -804, 744, -10, -804, -10, 5673, 5403, -804,
2069 1551, -804, 395, -804, -804, -804, 40, -804, 1551, -804,
2070 -804, 992, -804, -804, -804, -804, -804, -804, -804, -804,
2071 769, 9718, -804, -10, 773, 760, -804, 765, 702, -804,
2072 766, 771, -804, 764, 898, 778, 5403, 901, 8834, 781,
2073 619, 2612, 8834, -804, 2612, -804, 2612, -804, -804, -804,
2074 9060, -804, 2612, -804, 2612, -804, -804, 649, -804, 826,
2075 -804, 5012, 907, -804, 8947, 800, -804, 800, 5673, 5673,
2076 -804, 8721, 4760, 154, 70, -804, -9, 800, -804, -804,
2077 -804, -10, 800, -804, -804, -804, -804, 2612, 8834, 7930,
2078 -804, -804, -804, -10, 892, 784, 877, -804, 783, 912,
2079 792, -804, -804, 791, 802, -804, 702, -804, 809, -804,
2080 811, 809, 5786, 9718, 894, 697, 833, -804, 1627, -804,
2081 436, -804, -804, 1627, -804, 1699, -804, 883, -804, -804,
2082 821, -804, 819, 2612, -804, 2612, 9827, 116, -804, -804,
2083 5673, -804, -804, 116, -804, -804, 800, 800, -804, 289,
2084 -804, 4482, -804, -804, -804, -804, 1481, -804, 820, 892,
2085 743, -804, -804, -804, -804, 1551, -804, 992, -804, -804,
2086 992, -804, 992, -804, -804, 848, 697, -804, 10658, -804,
2087 -804, 823, 824, -804, 702, 825, -804, 829, 825, -804,
2088 277, -804, -804, -804, 904, -804, 706, 578, 600, 654,
2089 4482, -804, 4621, -804, -804, -804, -804, -804, 5673, 800,
2090 4482, 892, 820, 892, 834, 809, 836, 809, 809, -804,
2091 831, 837, 1627, -804, 1699, -804, -804, 1699, -804, 1699,
2092 -804, -804, 883, -804, 692, 10735, 7478, 10812, 804, 676,
2093 800, -804, 800, 820, 892, -804, 992, -804, -804, -804,
2094 825, 841, 825, 825, -804, 169, 23, -10, 139, 170,
2095 -804, -804, -804, -804, 820, 809, -804, 1699, -804, -804,
2096 -804, 241, -804, 825, -804
2102 -804, -804, -804, -386, -804, 41, -804, -542, 285, -804,
2103 527, -804, 35, -804, -310, -43, -70, 19, -804, -187,
2104 -804, 680, 9, 887, -154, 27, -73, -804, -404, 6,
2105 1733, -328, 886, -52, -804, -24, -804, -804, 13, -804,
2106 1007, -804, 909, -804, -72, 271, -336, 141, 5, -804,
2107 -320, -212, 58, -313, -21, -804, -804, -804, -804, -804,
2108 -804, -804, -804, -804, -804, -804, -804, -804, -804, -804,
2109 -804, -804, 49, -804, -804, -804, -804, -804, -804, -804,
2110 -804, -804, -804, -520, -348, -519, -36, -634, -804, -803,
2111 -773, 214, 300, 37, -804, -405, -804, -653, -804, -18,
2112 -804, -804, -804, -804, -804, 246, -804, -804, -804, -804,
2113 -804, -804, -804, -95, -804, -804, -535, -804, -22, -804,
2114 -804, -804, -804, -804, -804, 908, -804, -804, -804, -804,
2115 714, -804, -804, -804, -804, -804, -804, -804, 940, -804,
2116 -116, -804, -804, -804, -804, -804, 2, -804, 7, -804,
2117 1388, 1539, 906, 1901, 1724, -804, -804, 73, -450, -410,
2118 -412, -769, -627, -718, -134, 228, 111, -804, -804, -804,
2119 -83, -721, -786, 114, 233, -804, -574, -804, -463, -579,
2120 -804, -804, -804, 102, -374, -804, -322, -804, 622, -29,
2121 -15, -221, -578, -243, -62, -11, -2
2128 #define YYTABLE_NINF -619
2131 116, 400, 316, 283, 234, 305, 325, 258, 421, 432,
2132 198, 572, 232, 526, 235, 199, 521, 359, 560, 459,
2133 362, 196, 659, 461, 775, 208, 208, 229, 305, 208,
2134 198, 558, 273, 566, 451, 199, 757, 69, 453, 69,
2135 724, 196, 394, 357, 357, 117, 617, 357, 586, 263,
2136 267, 84, 741, 84, 627, 723, 306, 726, 273, 272,
2137 660, 363, 882, 766, 638, 215, 215, 889, 196, 215,
2138 273, 273, 273, 941, 214, 214, 256, 600, 214, 317,
2139 614, 842, -106, 299, 617, 847, -108, 569, 314, 787,
2140 -102, -103, 610, 558, -110, 566, 447, 720, 84, 215,
2141 610, 938, 274, 689, 777, 684, 691, 196, -293, 261,
2142 -109, 811, 3, 215, 695, 397, 488, 966, 220, 220,
2143 327, 630, 220, 878, 494, -105, 312, 313, 274, 569,
2144 302, 231, 303, -107, 641, 215, 215, 654, 972, 215,
2145 368, 379, 379, 775, 875, 237, 659, 685, 247, 630,
2146 896, 853, -105, 262, 266, -293, -293, 212, 222, -597,
2147 655, 223, 858, 398, 314, 489, 992, 312, 313, 517,
2148 479, 316, 482, 495, 486, 350, 351, 352, 486, -104,
2149 882, 584, -106, -107, 289, 585, 778, 431, 941, 433,
2150 305, -97, 315, -596, 857, -99, 291, -597, 466, -93,
2151 -94, 618, 862, -101, 850, 620, 884, 659, 851, 302,
2152 623, 303, 414, 302, 890, 303, 966, 421, 414, -100,
2153 1023, 859, 812, 449, 889, 430, 633, -96, 901, 902,
2154 231, 635, 882, 208, -96, 208, 208, 500, 501, 502,
2155 503, 450, -98, 972, 729, 776, 763, 775, 617, 775,
2156 273, 1044, 84, 462, -104, 302, 740, 303, 587, 630,
2157 789, -517, 792, 739, 357, 357, 357, 357, 315, 505,
2158 506, 630, -518, 215, 227, 215, 215, 256, -105, 215,
2159 -105, 215, 214, 445, 214, 816, 84, -102, -95, 882,
2160 573, 574, 820, 659, 319, 985, 694, 84, -103, 84,
2161 305, 610, 610, 273, 841, -596, 576, 949, -106, -107,
2162 -106, -107, 775, 994, 455, -96, 590, 357, 357, 887,
2163 274, 456, 293, 887, 962, 924, 220, 925, 220, 967,
2164 519, 861, 583, 575, 251, 930, -96, 933, -509, -96,
2165 513, 69, 935, -96, 473, 522, 504, 499, -98, 295,
2166 256, 321, 430, 322, 473, 84, 215, 215, 215, 215,
2167 84, 215, 215, 208, 775, 422, 775, 425, 564, 678,
2168 215, 996, 84, 274, 588, 215, 678, 852, 419, 515,
2169 -104, 458, -104, 473, 515, 1006, -509, 521, 456, 989,
2170 474, 444, 475, 764, 986, 466, 302, 775, 303, 754,
2171 474, 838, 475, 215, -110, 84, 983, 984, 326, 215,
2172 215, 1012, 564, 624, 430, 758, 56, -109, 231, -508,
2173 759, 601, 603, 677, 215, 208, 414, 414, 1031, 474,
2174 564, 475, 476, 680, -510, 812, -98, 887, 116, 198,
2175 812, -105, 812, 402, 199, 466, -107, 273, 1022, 404,
2176 196, 215, 215, 649, -431, -511, 564, -98, 406, 1051,
2177 -98, 868, 473, 650, -98, 215, 481, -508, 430, 1021,
2178 -593, 230, -513, 946, 948, 69, 231, -74, 951, 208,
2179 953, 954, -510, -338, 564, 702, 659, -104, 251, 84,
2180 353, 653, 654, 709, 801, 617, 230, 273, -88, 84,
2181 1042, 410, 1043, -511, 650, 688, 688, 415, 474, 688,
2182 475, 722, 722, -431, 611, 655, 827, 274, 411, 215,
2183 -513, 860, 441, 835, 473, 734, 412, 699, 747, -503,
2184 -338, -338, 653, 654, 418, 251, 438, 354, 355, 812,
2185 870, 812, 420, -512, 812, 705, 812, 473, 754, 610,
2186 440, 805, 742, 877, 416, 417, 655, 636, -431, 224,
2187 -431, -431, -514, 703, 765, 473, 716, 274, 227, 980,
2188 474, 710, 475, 478, -593, 982, -503, -503, 430, 473,
2189 -593, 752, 761, 327, 812, 1025, 1027, 1028, 1029, 208,
2190 430, -512, 327, 474, 564, 475, 480, -594, 750, 705,
2191 -73, 208, 808, 297, 298, 749, 564, 198, 251, 414,
2192 -514, 474, 199, 475, 484, 448, 273, 454, 196, 84,
2193 -503, 84, 460, 466, -506, 474, 705, 475, 491, 215,
2194 116, 442, 828, 468, 725, 1052, 464, 465, 463, 747,
2195 934, 215, 483, 84, 215, 348, 349, 350, 351, 352,
2196 434, -517, 937, 865, 888, 487, -506, 891, 469, 435,
2197 436, -518, 854, -515, 784, 856, 784, 69, -503, -600,
2198 813, 855, -506, 490, 215, 273, 493, -102, 416, 443,
2199 1037, 84, 74, 863, 74, -516, 274, -103, 688, 357,
2200 844, 841, 357, 496, 864, 630, 74, 74, -93, 886,
2201 74, -594, 509, -506, -506, 470, 471, -594, -94, 750,
2202 -515, -515, 840, 843, 705, 843, 522, 843, 497, 823,
2203 825, 403, 520, 760, 576, 705, 831, 833, -600, 74,
2204 74, 498, -516, -516, 578, 84, 582, 621, 84, -284,
2205 84, 619, 579, 622, 74, 274, 215, -110, 628, 215,
2206 215, 632, -88, 637, 679, 591, 215, 215, 414, 196,
2207 769, 813, 645, 646, 647, 648, 74, 74, -101, 965,
2208 74, 968, 515, -600, 923, -600, -600, -294, 681, -596,
2209 273, 215, 958, -268, 215, 84, -284, -284, 813, 580,
2210 581, 1015, 722, 84, 932, 769, 693, 645, 646, 647,
2211 648, 357, 592, 593, 697, 784, 784, 444, 696, 707,
2212 712, 995, 714, 997, 718, 808, 767, 964, 998, 708,
2213 808, -422, 808, 780, -294, -294, 84, 84, 782, 592,
2214 593, 762, 785, -109, 830, -105, 786, 918, 1016, 1017,
2215 922, 822, 874, 795, 796, -107, 797, 904, 906, 914,
2216 895, 788, 44, 45, -100, 717, -96, 719, 790, 769,
2217 -104, 645, 646, 647, 648, 84, -98, 791, 1030, 793,
2218 1032, -269, 273, 829, 841, 1033, 869, 993, 876, 215,
2219 871, -95, 893, 74, 784, 307, 308, 309, 310, 311,
2220 84, 897, 1045, 215, 898, 273, 770, 84, 84, 900,
2221 903, 84, 771, 907, 74, 905, 74, 74, 908, 909,
2222 74, 911, 74, 1053, 916, -270, 920, 74, 939, 808,
2223 942, 808, 943, 944, 808, 945, 808, 843, 74, 769,
2224 74, 645, 646, 647, 648, 969, 947, 645, 646, 647,
2225 648, 84, 956, 950, 769, 952, 645, 646, 647, 648,
2226 957, 959, 973, -271, 991, 1013, 999, 1002, 1004, 1007,
2227 1014, 264, 784, 1009, 808, 976, 770, -596, 1024, 84,
2228 1026, 814, 940, -597, 815, 1047, 817, 634, 366, 383,
2229 84, 770, 836, 1041, 873, 802, 74, 74, 74, 74,
2230 74, 74, 74, 74, 1034, 866, 1040, 287, 1003, 1005,
2231 395, 74, 1008, 74, 1010, 1011, 74, 401, 492, 990,
2232 885, 963, 961, 883, 430, 0, 716, 843, 597, 0,
2233 0, 0, 705, 210, 210, 208, 0, 210, 0, 84,
2234 564, 84, 0, 0, 74, 0, 74, 84, 0, 84,
2235 74, 74, 0, 0, 769, 0, 645, 646, 647, 648,
2236 649, 0, 0, 244, 246, 74, 0, 0, 210, 210,
2237 650, 0, 879, 880, 0, 215, 0, 1046, 1048, 1049,
2238 1050, 300, 301, 0, 0, 0, 0, 0, 0, 0,
2239 0, 651, 74, 74, 0, 0, 0, 0, 653, 654,
2240 1054, 0, 0, 0, 0, 0, 74, 0, 0, 0,
2241 0, 910, 0, 0, 0, 0, 0, 0, 0, 0,
2242 405, 0, 655, 407, 408, 409, 0, 0, 0, 0,
2243 74, 0, 0, 0, 0, 0, 919, 0, 0, 0,
2244 74, 0, 0, 926, 927, 0, 0, 929, 800, 0,
2245 645, 646, 647, 648, 801, 0, 0, -618, 0, 0,
2246 74, 0, 0, 0, 650, -618, -618, -618, 0, 0,
2247 -618, -618, -618, 327, -618, 0, 0, 0, 0, 0,
2248 0, 0, 0, -618, -618, 651, 0, 955, 340, 341,
2249 0, 652, 653, 654, -618, -618, 327, -618, -618, -618,
2250 -618, -618, 0, 0, 0, 0, 0, 0, 0, 0,
2251 0, 340, 341, 0, 0, 981, 655, 0, 210, 656,
2252 0, 210, 210, 210, 300, 347, 348, 349, 350, 351,
2253 352, 0, 0, 0, 0, 0, 0, 231, 0, 0,
2254 514, 210, -618, 210, 210, 525, 345, 346, 347, 348,
2255 349, 350, 351, 352, 0, 0, 327, 0, 0, 0,
2256 74, 0, 74, 0, 0, -618, 0, 0, 0, 0,
2257 74, 340, 341, 0, 0, 1018, 0, 1019, 0, 0,
2258 0, 0, 74, 1020, 74, 74, 0, -618, -618, 0,
2259 -618, 0, 0, 227, -618, 0, -618, 0, -618, 0,
2260 0, 0, 0, 0, 0, 0, 0, 0, 0, 348,
2261 349, 350, 351, 352, 0, 74, 0, 0, 0, 0,
2262 0, 0, 74, 0, 0, 0, 0, 0, 0, 0,
2263 607, 609, 0, 0, 0, 0, 0, 0, 210, 264,
2264 0, 0, 0, 524, 527, 528, 529, 530, 531, 532,
2265 533, 534, 535, 536, 537, 538, 539, 540, 541, 542,
2266 543, 544, 545, 546, 547, 548, 549, 550, 551, 552,
2267 0, 210, 0, 0, 609, 0, 74, 264, 0, 74,
2268 0, 74, 0, 0, 0, 0, 0, 74, 0, 0,
2269 74, 74, 0, 0, 0, 0, 0, 74, 74, 0,
2270 110, 0, 110, 0, 0, 0, 0, 0, 0, 0,
2271 0, 0, 0, 0, 0, 0, 0, 0, 0, 602,
2272 604, 0, 74, 0, 0, 74, 74, 606, 210, 210,
2273 0, 692, 0, 210, 74, 602, 604, 210, 0, 644,
2274 0, 645, 646, 647, 648, 649, 0, 110, 0, 0,
2275 0, 275, 0, 0, 0, 650, 626, 0, 0, 0,
2276 0, 631, 0, 0, 0, 0, 0, 74, 74, 0,
2277 0, 0, 210, 0, 0, 210, 651, 275, 0, 0,
2278 0, 0, 652, 653, 654, 0, 0, 210, 0, 370,
2279 380, 380, 380, 0, 0, 525, 0, 0, 0, 0,
2280 0, 0, 0, 0, 0, 0, 74, 655, 0, 0,
2281 656, 0, 0, 682, 683, 0, 0, 0, 0, 0,
2282 74, 0, 0, 657, 0, 0, 0, 753, 0, 210,
2283 0, 74, 0, 0, 74, 0, 0, 0, 74, 74,
2284 609, 264, 74, 644, 0, 645, 646, 647, 648, 649,
2285 0, 111, 0, 111, 0, 0, 0, 0, 0, 650,
2286 0, 0, 0, 0, 0, 0, 0, 0, 768, 0,
2287 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2288 651, 0, 74, 0, 0, 0, 652, 653, 654, 0,
2289 0, 0, 0, 210, 0, 0, 0, 210, 111, 0,
2290 0, 110, 276, 0, 0, 0, 0, 0, 0, 210,
2291 74, 655, 819, 644, 656, 645, 646, 647, 648, 649,
2292 0, 74, 0, 0, 0, 210, 0, 743, 276, 650,
2293 0, 0, 0, 837, 0, 110, 0, 0, 210, 210,
2294 371, 381, 381, 381, 0, 0, 110, 0, 110, 0,
2295 651, 0, 0, 0, 0, 0, 652, 653, 654, 0,
2296 0, 0, 0, 0, 0, 0, 210, 0, 0, 275,
2297 74, 0, 74, 0, 0, 0, 0, 0, 74, 0,
2298 74, 655, 0, 0, 656, 0, 872, 0, 0, 800,
2299 0, 645, 646, 647, 648, 801, 0, 0, 0, 0,
2300 0, 0, 0, 0, 110, 650, 74, 0, 0, 110,
2301 210, 0, 0, 0, 606, 821, 0, 824, 826, 0,
2302 0, 110, 275, 0, 832, 834, 651, 0, 0, 0,
2303 0, 210, 652, 653, 654, 0, 114, 912, 114, 0,
2304 0, 0, 0, 0, 0, 81, 0, 81, 0, 0,
2305 0, 0, 111, 0, 110, 0, 0, 655, 0, 0,
2306 656, 769, 0, 645, 646, 647, 648, 801, 867, 0,
2307 928, 0, 824, 826, 0, 832, 834, 650, 0, 0,
2308 0, 0, 0, 114, 210, 0, 111, 277, 264, 0,
2309 0, 0, 81, 0, 0, 0, 0, 111, 651, 111,
2310 0, 0, 0, 0, 0, 653, 654, 0, 0, 0,
2311 0, 0, 0, 277, 0, 0, 0, 0, 0, 0,
2312 276, 0, 0, 0, 0, 372, 382, 382, 0, 655,
2313 0, 0, 0, 0, 367, 210, 0, 0, 110, 913,
2314 0, 0, 0, 0, 0, 0, 0, 915, 110, 0,
2315 0, 0, 0, 0, 0, 111, 0, 0, 0, 0,
2316 111, 0, 0, 0, 0, 0, 275, 0, 210, 0,
2317 0, 0, 111, 276, 327, 328, 329, 330, 331, 332,
2318 333, 334, 0, 336, 337, 915, 210, 0, 0, 340,
2319 341, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2320 0, 0, 0, 0, 0, 111, 0, 0, 0, 0,
2321 0, 0, 0, 113, 0, 113, 275, 0, 0, 0,
2322 0, 0, 343, 344, 345, 346, 347, 348, 349, 350,
2323 351, 352, 0, 0, 0, 0, 0, 114, 0, 0,
2324 0, 0, 0, 0, 0, 0, 81, 0, 0, 0,
2325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2326 113, 0, 0, 0, 0, 0, 0, 0, 110, 0,
2327 110, 114, 0, 0, 0, 0, 0, 0, 0, 0,
2328 81, 0, 114, 0, 114, 0, 0, 0, 0, 111,
2329 0, 81, 110, 81, 0, 0, 0, 0, 0, 111,
2330 0, 0, 0, 0, 0, 277, 0, 0, 0, 0,
2331 0, 0, 0, 0, 0, 0, 0, 276, 0, 0,
2332 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2333 110, 0, 0, 210, 0, 275, 0, 0, 0, 0,
2334 114, 0, 0, 0, 0, 114, 0, 0, 0, 81,
2335 0, 0, 0, 0, 81, 0, 0, 114, 277, 0,
2336 0, 0, 0, 0, 0, 0, 81, 276, 0, 523,
2337 0, 0, 0, 0, 0, 0, 0, 698, 0, 0,
2338 0, 0, 0, 0, 110, 0, 0, 110, 0, 110,
2339 114, 0, 0, 0, 275, 0, 0, 0, 0, 81,
2340 0, 327, 328, 329, 330, 331, 332, 333, 334, 335,
2341 336, 337, 338, 339, 113, 0, 340, 341, 0, 111,
2342 0, 111, 0, 0, 0, 0, 0, 0, 0, 0,
2343 0, 0, 0, 0, 110, 0, 0, 0, 0, 0,
2344 0, 0, 110, 111, 0, 0, 0, 342, 113, 343,
2345 344, 345, 346, 347, 348, 349, 350, 351, 352, 113,
2346 0, 113, 0, 0, 0, 0, 0, -245, 0, 0,
2347 0, 0, 0, 0, 114, 110, 110, 0, 0, 0,
2348 0, 111, 0, 81, 114, 0, 276, 0, 0, 0,
2349 0, 0, 0, 81, 0, 0, 0, 0, 0, 380,
2350 0, 0, 277, 0, 0, 0, 0, 0, 0, 0,
2351 0, 0, 0, 0, 110, 0, 0, 113, 0, 0,
2352 0, 0, 113, 0, 0, 0, 0, 327, -619, -619,
2353 -619, -619, 332, 333, 113, 111, -619, -619, 111, 110,
2354 111, 0, 340, 341, 0, 276, 110, 110, 0, 0,
2355 110, 0, 277, 0, 0, 0, 0, 0, 0, 0,
2356 0, 0, 0, 0, 0, 0, 0, 113, 0, 0,
2357 0, 0, 0, 0, 0, 343, 344, 345, 346, 347,
2358 348, 349, 350, 351, 352, 111, 0, 0, 0, 0,
2359 110, 380, 0, 111, 0, 0, 0, 0, 0, 0,
2360 0, 0, 0, 0, 114, 0, 114, 0, 0, 0,
2361 0, 0, 0, 81, 977, 81, 0, 0, 110, 0,
2362 0, 0, 0, 0, 0, 0, 111, 111, 114, 110,
2363 0, 0, 0, 0, 0, 0, 0, 81, 0, 0,
2364 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2365 381, 113, 0, 0, 0, 0, 0, 0, 0, 0,
2366 0, 113, 0, 0, 0, 111, 114, 0, 0, 0,
2367 0, 277, 0, 0, 0, 81, 0, 0, 110, 0,
2368 110, 0, 0, 0, 0, 0, 110, 0, 110, 0,
2369 111, 0, 0, 0, 0, 0, 0, 111, 111, 0,
2370 0, 111, 0, 0, 0, 0, 0, 0, 0, 0,
2371 799, 0, 0, 0, 0, 0, 0, 0, 0, 751,
2372 114, 0, 0, 114, 0, 114, 0, 0, 0, 81,
2373 277, 0, 81, 0, 81, 0, 0, 0, 0, 0,
2374 523, 111, 381, 327, 328, 329, 330, 331, 332, 333,
2375 334, 335, 336, 337, 338, 339, 0, 0, 340, 341,
2376 0, 0, 0, 0, 0, 978, 0, 0, 0, 111,
2377 114, 0, 0, 0, 0, 0, 0, 0, 114, 81,
2378 111, 113, 0, 113, 0, 0, 0, 81, 0, 342,
2379 0, 343, 344, 345, 346, 347, 348, 349, 350, 351,
2380 352, 0, 0, 0, 0, 113, 0, 0, 0, 0,
2381 0, 114, 114, 0, 0, 0, 0, 0, 0, 0,
2382 81, 81, 0, 0, 0, 0, 0, 0, 0, 111,
2383 0, 111, 0, 0, 0, 382, 0, 111, 698, 111,
2384 0, 0, 0, 113, 0, 0, 0, 0, 0, 0,
2385 114, 0, 0, 0, 0, 0, 0, 0, 0, 81,
2386 0, 0, 327, 328, 329, 330, 331, 332, 333, 334,
2387 335, 336, 337, 338, 339, 114, 0, 340, 341, 0,
2388 0, 0, 114, 114, 81, 0, 114, 0, 0, 0,
2389 0, 81, 81, 0, 0, 81, 0, 113, 0, 0,
2390 113, 0, 113, 0, 0, 0, 0, 0, 342, 0,
2391 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
2392 0, 0, 0, 0, 0, 0, 114, 382, 327, 328,
2393 329, 330, 331, 332, 333, 81, 0, 336, 337, 0,
2394 0, 0, 0, 340, 341, 0, 0, 113, 0, 0,
2395 979, 0, 0, 0, 114, 113, 0, 0, 0, 975,
2396 0, 0, 0, 81, 0, 114, 0, 0, 0, 0,
2397 0, 0, 0, 0, 81, 0, 343, 344, 345, 346,
2398 347, 348, 349, 350, 351, 352, 0, 0, 113, 113,
2399 327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
2400 337, 338, 339, 0, 0, 340, 341, 0, 0, 0,
2401 0, 0, 0, 0, 114, 0, 114, 0, 0, 0,
2402 0, 0, 114, 81, 114, 81, 0, 113, 0, 0,
2403 0, 81, 0, 81, 0, 0, 342, 0, 343, 344,
2404 345, 346, 347, 348, 349, 350, 351, 352, 0, 0,
2405 0, 0, 113, 0, 0, 0, 0, 0, 0, 113,
2406 113, -618, 4, 113, 5, 6, 7, 8, 9, 0,
2407 0, 0, 10, 11, 0, 0, 0, 12, 0, 13,
2408 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2409 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2410 27, 0, 0, 113, 0, 0, 28, 29, 30, 31,
2411 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2412 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2413 0, 113, 0, 0, 0, 0, 0, 0, 0, 0,
2414 0, 0, 113, 0, 0, 0, 0, 48, 0, 0,
2415 49, 50, 0, 51, 52, 0, 53, 0, 0, 54,
2416 55, 56, 57, 58, 59, 60, 61, 62, -600, 0,
2417 0, 0, 0, 0, 0, 0, -600, -600, -600, 0,
2418 0, -600, -600, -600, 0, -600, 0, 63, 64, 65,
2419 0, 113, 0, 113, -600, -600, -600, -600, 0, 113,
2420 -618, 113, -618, 0, 0, -600, -600, 0, -600, -600,
2421 -600, -600, -600, 0, 0, 327, 328, 329, 330, 331,
2422 332, 333, 334, 335, 336, 337, -619, -619, 0, 0,
2423 340, 341, 0, 0, 0, 0, -600, -600, -600, -600,
2424 -600, -600, -600, -600, -600, -600, -600, -600, -600, 0,
2425 0, -600, -600, -600, 0, 755, -600, 0, 0, 0,
2426 0, 0, -600, 343, 344, 345, 346, 347, 348, 349,
2427 350, 351, 352, 0, 0, 0, -600, 0, 0, -600,
2428 0, -106, -600, -600, -600, -600, -600, -600, -600, -600,
2429 -600, -600, -600, -600, 0, 0, 0, 0, -600, -600,
2430 -600, -600, -600, -503, 0, -600, -600, -600, 0, -600,
2431 0, -503, -503, -503, 0, 0, -503, -503, -503, 0,
2432 -503, 0, 0, 0, 0, 0, 0, 0, -503, 0,
2433 -503, -503, -503, 0, 0, 0, 0, 0, 0, 0,
2434 -503, -503, 0, -503, -503, -503, -503, -503, 0, 0,
2435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2436 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2437 0, -503, -503, -503, -503, -503, -503, -503, -503, -503,
2438 -503, -503, -503, -503, 0, 0, -503, -503, -503, 0,
2439 -503, -503, 0, 0, 0, 0, 0, -503, 0, 0,
2440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2441 0, -503, 0, 0, -503, 0, -503, -503, -503, -503,
2442 -503, -503, -503, -503, -503, -503, -503, -503, -503, 0,
2443 0, 0, 0, 0, -503, -503, -503, -503, -506, 0,
2444 -503, -503, -503, 0, -503, 0, -506, -506, -506, 0,
2445 0, -506, -506, -506, 0, -506, 0, 0, 0, 0,
2446 0, 0, 0, -506, 0, -506, -506, -506, 0, 0,
2447 0, 0, 0, 0, 0, -506, -506, 0, -506, -506,
2448 -506, -506, -506, 0, 0, 0, 0, 0, 0, 0,
2449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2450 0, 0, 0, 0, 0, 0, -506, -506, -506, -506,
2451 -506, -506, -506, -506, -506, -506, -506, -506, -506, 0,
2452 0, -506, -506, -506, 0, -506, -506, 0, 0, 0,
2453 0, 0, -506, 0, 0, 0, 0, 0, 0, 0,
2454 0, 0, 0, 0, 0, 0, -506, 0, 0, -506,
2455 0, -506, -506, -506, -506, -506, -506, -506, -506, -506,
2456 -506, -506, -506, -506, 0, 0, 0, 0, 0, -506,
2457 -506, -506, -506, -601, 0, -506, -506, -506, 0, -506,
2458 0, -601, -601, -601, 0, 0, -601, -601, -601, 0,
2459 -601, 0, 0, 0, 0, 0, 0, 0, 0, -601,
2460 -601, -601, -601, 0, 0, 0, 0, 0, 0, 0,
2461 -601, -601, 0, -601, -601, -601, -601, -601, 0, 0,
2462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2464 0, -601, -601, -601, -601, -601, -601, -601, -601, -601,
2465 -601, -601, -601, -601, 0, 0, -601, -601, -601, 0,
2466 0, -601, 0, 0, 0, 0, 0, -601, 0, 0,
2467 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2468 0, -601, 0, 0, -601, 0, 0, -601, -601, -601,
2469 -601, -601, -601, -601, -601, -601, -601, -601, -601, 0,
2470 0, 0, 0, -601, -601, -601, -601, -601, -602, 0,
2471 -601, -601, -601, 0, -601, 0, -602, -602, -602, 0,
2472 0, -602, -602, -602, 0, -602, 0, 0, 0, 0,
2473 0, 0, 0, 0, -602, -602, -602, -602, 0, 0,
2474 0, 0, 0, 0, 0, -602, -602, 0, -602, -602,
2475 -602, -602, -602, 0, 0, 0, 0, 0, 0, 0,
2476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2477 0, 0, 0, 0, 0, 0, -602, -602, -602, -602,
2478 -602, -602, -602, -602, -602, -602, -602, -602, -602, 0,
2479 0, -602, -602, -602, 0, 0, -602, 0, 0, 0,
2480 0, 0, -602, 0, 0, 0, 0, 0, 0, 0,
2481 0, 0, 0, 0, 0, 0, -602, 0, 0, -602,
2482 0, 0, -602, -602, -602, -602, -602, -602, -602, -602,
2483 -602, -602, -602, -602, 0, 0, 0, 0, -602, -602,
2484 -602, -602, -602, -293, 0, -602, -602, -602, 0, -602,
2485 0, -293, -293, -293, 0, 0, -293, -293, -293, 0,
2486 -293, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2487 -293, -293, -293, 0, 0, 0, 0, 0, 0, 0,
2488 -293, -293, 0, -293, -293, -293, -293, -293, 0, 0,
2489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2491 0, -293, -293, -293, -293, -293, -293, -293, -293, -293,
2492 -293, -293, -293, -293, 0, 0, -293, -293, -293, 0,
2493 756, -293, 0, 0, 0, 0, 0, -293, 0, 0,
2494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2495 0, -293, 0, 0, -293, 0, -108, -293, -293, -293,
2496 -293, -293, -293, -293, -293, -293, -293, -293, -293, 0,
2497 0, 0, 0, 0, -293, -293, -293, -293, -430, 0,
2498 -293, -293, -293, 0, -293, 0, -430, -430, -430, 0,
2499 0, -430, -430, -430, 0, -430, 0, 0, 0, 0,
2500 0, 0, 0, 0, -430, -430, -430, 0, 0, 0,
2501 0, 0, 0, 0, 0, -430, -430, 0, -430, -430,
2502 -430, -430, -430, 0, 0, 0, 0, 0, 0, 0,
2503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2504 0, 0, 0, 0, 0, 0, -430, -430, -430, -430,
2505 -430, -430, -430, -430, -430, -430, -430, -430, -430, 0,
2506 0, -430, -430, -430, 0, 0, -430, 0, 0, 0,
2507 0, 0, -430, 0, 0, 0, 0, 0, 0, 0,
2508 0, 0, 0, 0, 0, 0, -430, 0, 0, 0,
2509 0, 0, -430, 0, -430, -430, -430, -430, -430, -430,
2510 -430, -430, -430, -430, 0, 0, 0, 0, -430, -430,
2511 -430, -430, -430, -285, 227, -430, -430, -430, 0, -430,
2512 0, -285, -285, -285, 0, 0, -285, -285, -285, 0,
2513 -285, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2514 -285, -285, -285, 0, 0, 0, 0, 0, 0, 0,
2515 -285, -285, 0, -285, -285, -285, -285, -285, 0, 0,
2516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2518 0, -285, -285, -285, -285, -285, -285, -285, -285, -285,
2519 -285, -285, -285, -285, 0, 0, -285, -285, -285, 0,
2520 0, -285, 0, 0, 0, 0, 0, -285, 0, 0,
2521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2522 0, -285, 0, 0, -285, 0, 0, -285, -285, -285,
2523 -285, -285, -285, -285, -285, -285, -285, -285, -285, 0,
2524 0, 0, 0, 0, -285, -285, -285, -285, -420, 0,
2525 -285, -285, -285, 0, -285, 0, -420, -420, -420, 0,
2526 0, -420, -420, -420, 0, -420, 0, 0, 0, 0,
2527 0, 0, 0, 0, -420, -420, -420, 0, 0, 0,
2528 0, 0, 0, 0, 0, -420, -420, 0, -420, -420,
2529 -420, -420, -420, 0, 0, 0, 0, 0, 0, 0,
2530 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2531 0, 0, 0, 0, 0, 0, -420, -420, -420, -420,
2532 -420, -420, -420, -420, -420, -420, -420, -420, -420, 0,
2533 0, -420, -420, -420, 0, 0, -420, 0, 0, 0,
2534 0, 0, -420, 0, 0, 0, 0, 0, 0, 0,
2535 0, 0, 0, 0, 0, 0, -420, 0, 0, 0,
2536 0, 0, -420, 0, -420, -420, -420, -420, -420, -420,
2537 -420, -420, -420, -420, 0, 0, 0, 0, -420, -420,
2538 -420, -420, -420, -300, -420, -420, -420, -420, 0, -420,
2539 0, -300, -300, -300, 0, 0, -300, -300, -300, 0,
2540 -300, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2541 -300, -300, 0, 0, 0, 0, 0, 0, 0, 0,
2542 -300, -300, 0, -300, -300, -300, -300, -300, 0, 0,
2543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2545 0, -300, -300, -300, -300, -300, -300, -300, -300, -300,
2546 -300, -300, -300, -300, 0, 0, -300, -300, -300, 0,
2547 0, -300, 0, 0, 0, 0, 0, -300, 0, 0,
2548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2549 0, -300, 0, 0, 0, 0, 0, -300, 0, -300,
2550 -300, -300, -300, -300, -300, -300, -300, -300, -300, 0,
2551 0, 0, 0, 0, -300, -300, -300, -300, -600, 224,
2552 -300, -300, -300, 0, -300, 0, -600, -600, -600, 0,
2553 0, 0, -600, -600, 0, -600, 0, 0, 0, 0,
2554 0, 0, 0, 0, -600, 0, 0, 0, 0, 0,
2555 0, 0, 0, 0, 0, -600, -600, 0, -600, -600,
2556 -600, -600, -600, 0, 0, 0, 0, 0, 0, 0,
2557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2558 0, 0, 0, 0, 0, 0, -600, -600, -600, -600,
2559 -600, -600, -600, -600, -600, -600, -600, -600, -600, 0,
2560 0, -600, -600, -600, 0, 700, 0, 0, 0, 0,
2561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2562 0, 0, 0, 0, 0, 0, -600, 0, 0, 0,
2563 0, -106, -600, 0, -600, -600, -600, -600, -600, -600,
2564 -600, -600, -600, -600, 0, 0, 0, 0, -600, -600,
2565 -600, -600, -97, -293, 0, -600, 0, -600, 0, -600,
2566 0, -293, -293, -293, 0, 0, 0, -293, -293, 0,
2567 -293, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2569 -293, -293, 0, -293, -293, -293, -293, -293, 0, 0,
2570 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2571 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2572 0, -293, -293, -293, -293, -293, -293, -293, -293, -293,
2573 -293, -293, -293, -293, 0, 0, -293, -293, -293, 0,
2574 701, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2576 0, -293, 0, 0, 0, 0, -108, -293, 0, -293,
2577 -293, -293, -293, -293, -293, -293, -293, -293, -293, 0,
2578 0, 0, 0, 0, -293, -293, -293, -99, 0, 0,
2579 -293, 0, -293, 248, -293, 5, 6, 7, 8, 9,
2580 -618, -618, -618, 10, 11, 0, 0, -618, 12, 0,
2581 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2582 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2583 0, 27, 0, 0, 0, 0, 0, 28, 29, 249,
2584 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2585 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2586 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2587 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2588 0, 49, 50, 0, 51, 52, 0, 53, 0, 0,
2589 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2591 0, 0, 0, 0, 0, 0, 0, 0, 63, 64,
2592 65, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2593 0, -618, 248, -618, 5, 6, 7, 8, 9, 0,
2594 0, -618, 10, 11, 0, -618, -618, 12, 0, 13,
2595 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2596 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2597 27, 0, 0, 0, 0, 0, 28, 29, 249, 31,
2598 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2599 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2600 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2601 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
2602 49, 50, 0, 51, 52, 0, 53, 0, 0, 54,
2603 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2604 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2605 0, 0, 0, 0, 0, 0, 0, 63, 64, 65,
2606 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2607 -618, 248, -618, 5, 6, 7, 8, 9, 0, 0,
2608 -618, 10, 11, 0, 0, -618, 12, -618, 13, 14,
2609 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
2610 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
2611 0, 0, 0, 0, 0, 28, 29, 249, 31, 32,
2612 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2613 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2614 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2615 0, 0, 0, 0, 0, 0, 48, 0, 0, 49,
2616 50, 0, 51, 52, 0, 53, 0, 0, 54, 55,
2617 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2618 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2619 0, 0, 0, 0, 0, 0, 63, 64, 65, 0,
2620 0, 0, 0, 0, 0, 0, 0, 0, 0, -618,
2621 248, -618, 5, 6, 7, 8, 9, 0, 0, -618,
2622 10, 11, 0, 0, -618, 12, 0, 13, 14, 15,
2623 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2624 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2625 0, 0, 0, 0, 28, 29, 249, 31, 32, 33,
2626 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2627 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2629 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2630 0, 51, 52, 0, 53, 0, 0, 54, 55, 56,
2631 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2632 0, 0, 0, 248, 0, 5, 6, 7, 8, 9,
2633 0, -618, -618, 10, 11, 63, 64, 65, 12, 0,
2634 13, 14, 15, 16, 17, 18, 19, 0, -618, 0,
2635 -618, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2636 0, 27, 0, 0, 0, 0, 0, 28, 29, 249,
2637 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2638 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2639 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2640 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2641 0, 49, 50, 0, 51, 52, 0, 53, 0, 0,
2642 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2643 0, 0, 0, 0, 0, 0, 248, 0, 5, 6,
2644 7, 8, 9, 0, 0, 0, 10, 11, 63, 64,
2645 65, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2646 0, -618, 0, -618, 0, 20, 21, 22, 23, 24,
2647 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2648 28, 29, 249, 31, 32, 33, 34, 35, 36, 37,
2649 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2650 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2652 0, 48, 0, 0, 250, 50, 0, 51, 52, 0,
2653 53, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2654 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2656 0, 63, 64, 65, 0, 0, 0, 0, 0, 0,
2657 0, 0, -618, 0, -618, 248, -618, 5, 6, 7,
2658 8, 9, 0, 0, 0, 10, 11, 0, 0, 0,
2659 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2660 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2661 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2662 29, 249, 31, 32, 33, 34, 35, 36, 37, 38,
2663 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2664 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2666 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2667 0, 0, 54, 55, 56, 57, 58, 59, 60, 61,
2668 62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2670 63, 64, 65, 0, 0, 0, 0, 0, 0, 0,
2671 0, -618, 0, -618, 248, -618, 5, 6, 7, 8,
2672 9, 0, 0, 0, 10, 11, 0, 0, 0, 12,
2673 0, 13, 14, 15, 16, 17, 18, 19, 0, 0,
2674 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
2675 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
2676 249, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2677 40, 0, 41, 42, 0, 43, 44, 45, 0, 46,
2678 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2679 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
2680 0, 0, 49, 50, 0, 51, 52, 0, 53, 0,
2681 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2682 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2683 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
2684 64, 65, 0, 0, -618, 4, 0, 5, 6, 7,
2685 8, 9, -618, 0, -618, 10, 11, 0, 0, 0,
2686 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2687 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2688 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2689 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
2690 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2691 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2693 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2694 0, 0, 54, 55, 56, 57, 58, 59, 60, 61,
2695 62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2697 63, 64, 65, 0, 0, -618, 0, 0, 0, 0,
2698 0, 0, 0, -618, 248, -618, 5, 6, 7, 8,
2699 9, 0, 0, -618, 10, 11, 0, 0, 0, 12,
2700 0, 13, 14, 15, 16, 17, 18, 19, 0, 0,
2701 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
2702 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
2703 249, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2704 40, 0, 41, 42, 0, 43, 44, 45, 0, 46,
2705 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2706 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
2707 0, 0, 49, 50, 0, 51, 52, 0, 53, 0,
2708 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2709 0, 0, 0, 0, 0, 0, 0, 248, 0, 5,
2710 6, 7, 8, 9, 0, 0, 0, 10, 11, 63,
2711 64, 65, 12, 0, 13, 14, 15, 16, 17, 18,
2712 19, 0, -618, 0, -618, 0, 20, 21, 22, 23,
2713 24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
2714 0, 28, 29, 249, 31, 32, 33, 34, 35, 36,
2715 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2716 45, 0, 46, 47, 0, 0, 0, 0, 0, 0,
2717 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2718 0, 0, 48, 0, 0, 49, 50, 0, 51, 52,
2719 0, 53, 0, 0, 54, 55, 56, 57, 58, 59,
2720 60, 61, 62, 0, -618, 0, 0, 0, 0, 0,
2721 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2722 10, 11, 63, 64, 65, 12, 0, 13, 14, 15,
2723 16, 17, 18, 19, 0, -618, 0, -618, 0, 20,
2724 21, 22, 23, 24, 25, 26, 0, 0, 200, 0,
2725 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2726 34, 35, 36, 37, 38, 39, 40, 201, 41, 42,
2727 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2729 0, 0, 0, 0, 0, 202, 0, 0, 203, 50,
2730 0, 51, 52, 0, 204, 205, 206, 54, 55, 56,
2731 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2732 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2733 0, 0, 0, 10, 11, 63, 207, 65, 12, 0,
2734 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2735 231, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2736 0, 27, 0, 0, 0, 0, 0, 0, 29, 0,
2737 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2738 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2740 0, 0, 0, 0, 0, 0, 0, 0, 202, 0,
2741 0, 203, 50, 0, 51, 52, 0, 0, 0, 0,
2742 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2743 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2744 7, 0, 9, 0, 0, 0, 10, 11, 63, 64,
2745 65, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2746 0, 302, 0, 303, 0, 20, 21, 22, 23, 24,
2747 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2748 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
2749 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2750 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2752 0, 202, 0, 0, 203, 50, 0, 51, 52, 0,
2753 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2754 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2755 0, 5, 6, 7, 8, 9, 0, 0, 0, 10,
2756 11, 63, 64, 65, 12, 0, 13, 14, 15, 16,
2757 17, 18, 19, 0, 0, 0, 231, 0, 20, 21,
2758 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2759 0, 0, 0, 28, 29, 30, 31, 32, 33, 34,
2760 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2761 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2763 0, 0, 0, 0, 48, 0, 0, 49, 50, 0,
2764 51, 52, 0, 53, 0, 0, 54, 55, 56, 57,
2765 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2766 0, 0, 0, 0, 5, 6, 7, 8, 9, 0,
2767 0, 0, 10, 11, 63, 64, 65, 12, 0, 13,
2768 14, 15, 16, 17, 18, 19, 0, 498, 0, 0,
2769 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2770 27, 0, 0, 0, 0, 0, 28, 29, 249, 31,
2771 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2772 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2774 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
2775 49, 50, 0, 51, 52, 0, 53, 0, 0, 54,
2776 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2777 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2778 0, 0, 0, 0, 0, 0, 0, 63, 64, 65,
2779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2780 498, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2781 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2782 137, 138, 139, 140, 141, 0, 0, 0, 142, 143,
2783 144, 384, 385, 386, 387, 149, 150, 151, 0, 0,
2784 0, 0, 0, 152, 153, 154, 155, 388, 389, 390,
2785 391, 160, 37, 38, 392, 40, 0, 0, 0, 0,
2786 0, 0, 0, 0, 162, 163, 164, 165, 166, 167,
2787 168, 169, 170, 0, 0, 171, 172, 0, 0, 173,
2788 174, 175, 176, 0, 0, 0, 0, 0, 0, 0,
2789 0, 0, 0, 177, 178, 0, 0, 0, 0, 0,
2790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2791 0, 0, 0, 0, 179, 180, 181, 182, 183, 184,
2792 185, 186, 187, 188, 0, 189, 190, 0, 0, 0,
2793 0, 0, 0, 191, 393, 118, 119, 120, 121, 122,
2794 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2795 133, 134, 135, 136, 137, 138, 139, 140, 141, 0,
2796 0, 0, 142, 143, 144, 145, 146, 147, 148, 149,
2797 150, 151, 0, 0, 0, 0, 0, 152, 153, 154,
2798 155, 156, 157, 158, 159, 160, 280, 281, 161, 282,
2799 0, 0, 0, 0, 0, 0, 0, 0, 162, 163,
2800 164, 165, 166, 167, 168, 169, 170, 0, 0, 171,
2801 172, 0, 0, 173, 174, 175, 176, 0, 0, 0,
2802 0, 0, 0, 0, 0, 0, 0, 177, 178, 0,
2803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2804 0, 0, 0, 0, 0, 0, 0, 0, 179, 180,
2805 181, 182, 183, 184, 185, 186, 187, 188, 0, 189,
2806 190, 0, 0, 0, 0, 0, 0, 191, 118, 119,
2807 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
2808 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2809 140, 141, 0, 0, 0, 142, 143, 144, 145, 146,
2810 147, 148, 149, 150, 151, 0, 0, 0, 0, 0,
2811 152, 153, 154, 155, 156, 157, 158, 159, 160, 233,
2812 0, 161, 0, 0, 0, 0, 0, 0, 0, 0,
2813 0, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2814 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
2815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2816 177, 178, 0, 0, 55, 0, 0, 0, 0, 0,
2817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2818 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2819 188, 0, 189, 190, 0, 0, 0, 0, 0, 0,
2820 191, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2821 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2822 137, 138, 139, 140, 141, 0, 0, 0, 142, 143,
2823 144, 145, 146, 147, 148, 149, 150, 151, 0, 0,
2824 0, 0, 0, 152, 153, 154, 155, 156, 157, 158,
2825 159, 160, 0, 0, 161, 0, 0, 0, 0, 0,
2826 0, 0, 0, 0, 162, 163, 164, 165, 166, 167,
2827 168, 169, 170, 0, 0, 171, 172, 0, 0, 173,
2828 174, 175, 176, 0, 0, 0, 0, 0, 0, 0,
2829 0, 0, 0, 177, 178, 0, 0, 55, 0, 0,
2830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2831 0, 0, 0, 0, 179, 180, 181, 182, 183, 184,
2832 185, 186, 187, 188, 0, 189, 190, 0, 0, 0,
2833 0, 0, 0, 191, 118, 119, 120, 121, 122, 123,
2834 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2835 134, 135, 136, 137, 138, 139, 140, 141, 0, 0,
2836 0, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2837 151, 0, 0, 0, 0, 0, 152, 153, 154, 155,
2838 156, 157, 158, 159, 160, 0, 0, 161, 0, 0,
2839 0, 0, 0, 0, 0, 0, 0, 162, 163, 164,
2840 165, 166, 167, 168, 169, 170, 0, 0, 171, 172,
2841 0, 0, 173, 174, 175, 176, 0, 0, 0, 0,
2842 0, 0, 0, 0, 0, 0, 177, 178, 0, 0,
2843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2844 0, 0, 0, 0, 0, 0, 0, 179, 180, 181,
2845 182, 183, 184, 185, 186, 187, 188, 0, 189, 190,
2846 5, 6, 7, 0, 9, 0, 191, 0, 10, 11,
2847 0, 0, 0, 12, 0, 13, 14, 15, 238, 239,
2848 18, 19, 0, 0, 0, 0, 0, 240, 241, 242,
2849 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
2850 0, 0, 0, 268, 0, 0, 32, 33, 34, 35,
2851 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
2852 44, 45, 0, 0, 0, 0, 0, 0, 0, 0,
2853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2854 0, 0, 0, 269, 0, 0, 203, 50, 0, 51,
2855 52, 0, 0, 0, 0, 54, 55, 56, 57, 58,
2856 59, 60, 61, 62, 0, 0, 0, 0, 0, 5,
2857 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
2858 0, 0, 12, 270, 13, 14, 15, 238, 239, 18,
2859 19, 271, 0, 0, 0, 0, 240, 241, 242, 23,
2860 24, 25, 26, 0, 0, 200, 0, 0, 0, 0,
2861 0, 0, 268, 0, 0, 32, 33, 34, 35, 36,
2862 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2863 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2865 0, 0, 269, 0, 0, 203, 50, 0, 51, 52,
2866 0, 0, 0, 0, 54, 55, 56, 57, 58, 59,
2867 60, 61, 62, 0, 0, 0, 0, 0, 5, 6,
2868 7, 8, 9, 0, 0, 0, 10, 11, 0, 0,
2869 0, 12, 270, 13, 14, 15, 16, 17, 18, 19,
2870 518, 0, 0, 0, 0, 20, 21, 22, 23, 24,
2871 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2872 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2873 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2874 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2876 0, 48, 0, 0, 49, 50, 0, 51, 52, 0,
2877 53, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2878 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2879 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2880 11, 63, 64, 65, 12, 0, 13, 14, 15, 16,
2881 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2882 22, 23, 24, 25, 26, 0, 0, 200, 0, 0,
2883 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2884 35, 36, 37, 38, 39, 40, 201, 41, 42, 0,
2885 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2887 0, 0, 0, 0, 202, 0, 0, 203, 50, 0,
2888 51, 52, 0, 204, 205, 206, 54, 55, 56, 57,
2889 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2890 0, 0, 0, 0, 5, 6, 7, 8, 9, 0,
2891 0, 0, 10, 11, 63, 207, 65, 12, 0, 13,
2892 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2893 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2894 27, 0, 0, 0, 0, 0, 28, 29, 0, 31,
2895 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2896 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2898 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
2899 49, 50, 0, 51, 52, 0, 53, 0, 0, 54,
2900 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2901 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2902 0, 9, 0, 0, 0, 10, 11, 63, 64, 65,
2903 12, 0, 13, 14, 15, 238, 239, 18, 19, 0,
2904 0, 0, 0, 0, 240, 241, 242, 23, 24, 25,
2905 26, 0, 0, 200, 0, 0, 0, 0, 0, 0,
2906 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2907 39, 40, 201, 41, 42, 0, 43, 44, 45, 0,
2908 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2910 202, 0, 0, 203, 50, 0, 51, 52, 0, 608,
2911 205, 206, 54, 55, 56, 57, 58, 59, 60, 61,
2912 62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2913 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2914 63, 207, 65, 12, 0, 13, 14, 15, 238, 239,
2915 18, 19, 0, 0, 0, 0, 0, 240, 241, 242,
2916 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
2917 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2918 36, 37, 38, 39, 40, 201, 41, 42, 0, 43,
2919 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2921 0, 0, 0, 202, 0, 0, 203, 50, 0, 51,
2922 52, 0, 204, 205, 0, 54, 55, 56, 57, 58,
2923 59, 60, 61, 62, 0, 0, 0, 0, 0, 0,
2924 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2925 0, 10, 11, 63, 207, 65, 12, 0, 13, 14,
2926 15, 238, 239, 18, 19, 0, 0, 0, 0, 0,
2927 240, 241, 242, 23, 24, 25, 26, 0, 0, 200,
2928 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
2929 33, 34, 35, 36, 37, 38, 39, 40, 201, 41,
2930 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2931 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2932 0, 0, 0, 0, 0, 0, 202, 0, 0, 203,
2933 50, 0, 51, 52, 0, 0, 205, 206, 54, 55,
2934 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2935 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
2936 9, 0, 0, 0, 10, 11, 63, 207, 65, 12,
2937 0, 13, 14, 15, 238, 239, 18, 19, 0, 0,
2938 0, 0, 0, 240, 241, 242, 23, 24, 25, 26,
2939 0, 0, 200, 0, 0, 0, 0, 0, 0, 29,
2940 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2941 40, 201, 41, 42, 0, 43, 44, 45, 0, 46,
2942 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2943 0, 0, 0, 0, 0, 0, 0, 0, 0, 202,
2944 0, 0, 203, 50, 0, 51, 52, 0, 608, 205,
2945 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2946 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2947 6, 7, 0, 9, 0, 0, 0, 10, 11, 63,
2948 207, 65, 12, 0, 13, 14, 15, 238, 239, 18,
2949 19, 0, 0, 0, 0, 0, 240, 241, 242, 23,
2950 24, 25, 26, 0, 0, 200, 0, 0, 0, 0,
2951 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2952 37, 38, 39, 40, 201, 41, 42, 0, 43, 44,
2953 45, 0, 46, 47, 0, 0, 0, 0, 0, 0,
2954 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2955 0, 0, 202, 0, 0, 203, 50, 0, 51, 52,
2956 0, 0, 205, 0, 54, 55, 56, 57, 58, 59,
2957 60, 61, 62, 0, 0, 0, 0, 0, 0, 0,
2958 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2959 10, 11, 63, 207, 65, 12, 0, 13, 14, 15,
2960 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2961 21, 22, 23, 24, 25, 26, 0, 0, 200, 0,
2962 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2963 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2964 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2965 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2966 0, 0, 0, 0, 0, 202, 0, 0, 203, 50,
2967 0, 51, 52, 0, 512, 0, 0, 54, 55, 56,
2968 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2969 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2970 0, 0, 0, 10, 11, 63, 207, 65, 12, 0,
2971 13, 14, 15, 238, 239, 18, 19, 0, 0, 0,
2972 0, 0, 240, 241, 242, 23, 24, 25, 26, 0,
2973 0, 200, 0, 0, 0, 0, 0, 0, 29, 0,
2974 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2975 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2976 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2977 0, 0, 0, 0, 0, 0, 0, 0, 202, 0,
2978 0, 203, 50, 0, 51, 52, 0, 204, 0, 0,
2979 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2980 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2981 7, 0, 9, 0, 0, 0, 10, 11, 63, 207,
2982 65, 12, 0, 13, 14, 15, 238, 239, 18, 19,
2983 0, 0, 0, 0, 0, 240, 241, 242, 23, 24,
2984 25, 26, 0, 0, 200, 0, 0, 0, 0, 0,
2985 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
2986 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2987 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2988 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2989 0, 202, 0, 0, 203, 50, 0, 51, 52, 0,
2990 818, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2991 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2992 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2993 11, 63, 207, 65, 12, 0, 13, 14, 15, 238,
2994 239, 18, 19, 0, 0, 0, 0, 0, 240, 241,
2995 242, 23, 24, 25, 26, 0, 0, 200, 0, 0,
2996 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2997 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2998 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2999 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3000 0, 0, 0, 0, 202, 0, 0, 203, 50, 0,
3001 51, 52, 0, 512, 0, 0, 54, 55, 56, 57,
3002 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
3003 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
3004 0, 0, 10, 11, 63, 207, 65, 12, 0, 13,
3005 14, 15, 238, 239, 18, 19, 0, 0, 0, 0,
3006 0, 240, 241, 242, 23, 24, 25, 26, 0, 0,
3007 200, 0, 0, 0, 0, 0, 0, 29, 0, 0,
3008 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
3009 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
3010 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3011 0, 0, 0, 0, 0, 0, 0, 202, 0, 0,
3012 203, 50, 0, 51, 52, 0, 608, 0, 0, 54,
3013 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
3014 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
3015 0, 9, 0, 0, 0, 10, 11, 63, 207, 65,
3016 12, 0, 13, 14, 15, 238, 239, 18, 19, 0,
3017 0, 0, 0, 0, 240, 241, 242, 23, 24, 25,
3018 26, 0, 0, 200, 0, 0, 0, 0, 0, 0,
3019 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
3020 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
3021 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
3022 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3023 202, 0, 0, 203, 50, 0, 51, 52, 0, 0,
3024 0, 0, 54, 55, 56, 57, 58, 59, 60, 61,
3025 62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3026 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
3027 63, 207, 65, 12, 0, 13, 14, 15, 16, 17,
3028 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
3029 23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
3030 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
3031 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
3032 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
3033 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3034 0, 0, 0, 202, 0, 0, 203, 50, 0, 51,
3035 52, 0, 0, 0, 0, 54, 55, 56, 57, 58,
3036 59, 60, 61, 62, 0, 0, 0, 0, 0, 0,
3037 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
3038 0, 10, 11, 63, 64, 65, 12, 0, 13, 14,
3039 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
3040 20, 21, 22, 23, 24, 25, 26, 0, 0, 200,
3041 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
3042 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
3043 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
3044 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3045 0, 0, 0, 0, 0, 0, 202, 0, 0, 203,
3046 50, 0, 51, 52, 0, 0, 0, 0, 54, 55,
3047 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
3048 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
3049 9, 0, 0, 0, 10, 11, 63, 207, 65, 12,
3050 0, 13, 14, 15, 238, 239, 18, 19, 0, 0,
3051 0, 0, 0, 240, 241, 242, 23, 24, 25, 26,
3052 0, 0, 200, 0, 0, 0, 0, 0, 0, 268,
3053 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
3054 40, 0, 41, 42, 0, 43, 44, 45, 0, 0,
3055 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3056 0, 0, 0, 0, 0, 0, 0, 0, 0, 269,
3057 0, 0, 323, 50, 0, 51, 52, 0, 324, 0,
3058 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3059 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
3060 0, 0, 0, 10, 11, 0, 0, 0, 12, 270,
3061 13, 14, 15, 238, 239, 18, 19, 0, 0, 0,
3062 0, 0, 240, 241, 242, 23, 24, 25, 26, 0,
3063 0, 200, 0, 0, 0, 0, 0, 0, 268, 0,
3064 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3065 0, 41, 42, 0, 43, 44, 45, 0, 0, 0,
3066 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3067 0, 0, 0, 0, 0, 0, 0, 0, 365, 0,
3068 0, 49, 50, 0, 51, 52, 0, 53, 0, 0,
3069 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
3070 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
3071 0, 0, 10, 11, 0, 0, 0, 12, 270, 13,
3072 14, 15, 238, 239, 18, 19, 0, 0, 0, 0,
3073 0, 240, 241, 242, 23, 24, 25, 26, 0, 0,
3074 200, 0, 0, 0, 0, 0, 0, 268, 0, 0,
3075 32, 33, 34, 373, 36, 37, 38, 374, 40, 0,
3076 41, 42, 0, 43, 44, 45, 0, 0, 0, 0,
3077 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3078 0, 0, 0, 0, 375, 0, 0, 376, 0, 0,
3079 203, 50, 0, 51, 52, 0, 0, 0, 0, 54,
3080 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
3081 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
3082 0, 10, 11, 0, 0, 0, 12, 270, 13, 14,
3083 15, 238, 239, 18, 19, 0, 0, 0, 0, 0,
3084 240, 241, 242, 23, 24, 25, 26, 0, 0, 200,
3085 0, 0, 0, 0, 0, 0, 268, 0, 0, 32,
3086 33, 34, 373, 36, 37, 38, 374, 40, 0, 41,
3087 42, 0, 43, 44, 45, 0, 0, 0, 0, 0,
3088 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3089 0, 0, 0, 0, 0, 0, 376, 0, 0, 203,
3090 50, 0, 51, 52, 0, 0, 0, 0, 54, 55,
3091 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
3092 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
3093 10, 11, 0, 0, 0, 12, 270, 13, 14, 15,
3094 238, 239, 18, 19, 0, 0, 0, 0, 0, 240,
3095 241, 242, 23, 24, 25, 26, 0, 0, 200, 0,
3096 0, 0, 0, 0, 0, 268, 0, 0, 32, 33,
3097 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
3098 0, 43, 44, 45, 0, 0, 0, 0, 0, 0,
3099 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3100 0, 0, 0, 0, 0, 269, 0, 0, 323, 50,
3101 0, 51, 52, 0, 0, 0, 0, 54, 55, 56,
3102 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
3103 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
3104 11, 0, 0, 0, 12, 270, 13, 14, 15, 238,
3105 239, 18, 19, 0, 0, 0, 0, 0, 240, 241,
3106 242, 23, 24, 25, 26, 0, 0, 200, 0, 0,
3107 0, 0, 0, 0, 268, 0, 0, 32, 33, 34,
3108 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
3109 43, 44, 45, 0, 0, 0, 0, 0, 0, 0,
3110 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3111 0, 0, 0, 0, 894, 0, 0, 203, 50, 0,
3112 51, 52, 0, 0, 0, 0, 54, 55, 56, 57,
3113 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
3114 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
3115 0, 0, 0, 12, 270, 13, 14, 15, 238, 239,
3116 18, 19, 0, 0, 0, 0, 0, 240, 241, 242,
3117 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
3118 0, 0, 0, 268, 0, 0, 32, 33, 34, 35,
3119 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
3120 44, 45, 0, 0, 0, 0, 0, 0, 0, 0,
3121 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3122 0, 0, 0, 974, 0, 0, 203, 50, 0, 51,
3123 52, 0, 0, 0, 0, 54, 55, 56, 57, 58,
3124 59, 60, 61, 62, 0, 0, 0, 0, 0, 0,
3125 553, 554, 0, 0, 555, 0, 0, 0, 0, 0,
3126 0, 0, 0, 270, 162, 163, 164, 165, 166, 167,
3127 168, 169, 170, 0, 0, 171, 172, 0, 0, 173,
3128 174, 175, 176, 0, 0, 0, 0, 0, 0, 0,
3129 0, 0, 0, 177, 178, 0, 0, 0, 0, 0,
3130 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3131 0, 0, 0, 0, 179, 180, 181, 182, 183, 184,
3132 185, 186, 187, 188, 0, 189, 190, 561, 562, 0,
3133 0, 563, 0, 191, 0, 0, 0, 0, 0, 0,
3134 0, 162, 163, 164, 165, 166, 167, 168, 169, 170,
3135 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
3136 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3137 177, 178, 0, 0, 0, 0, 0, 0, 0, 0,
3138 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3139 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3140 188, 0, 189, 190, 598, 562, 0, 0, 599, 0,
3141 191, 0, 0, 0, 0, 0, 0, 0, 162, 163,
3142 164, 165, 166, 167, 168, 169, 170, 0, 0, 171,
3143 172, 0, 0, 173, 174, 175, 176, 0, 0, 0,
3144 0, 0, 0, 0, 0, 0, 0, 177, 178, 0,
3145 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3146 0, 0, 0, 0, 0, 0, 0, 0, 179, 180,
3147 181, 182, 183, 184, 185, 186, 187, 188, 0, 189,
3148 190, 612, 554, 0, 0, 613, 0, 191, 0, 0,
3149 0, 0, 0, 0, 0, 162, 163, 164, 165, 166,
3150 167, 168, 169, 170, 0, 0, 171, 172, 0, 0,
3151 173, 174, 175, 176, 0, 0, 0, 0, 0, 0,
3152 0, 0, 0, 0, 177, 178, 0, 0, 0, 0,
3153 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3154 0, 0, 0, 0, 0, 179, 180, 181, 182, 183,
3155 184, 185, 186, 187, 188, 0, 189, 190, 615, 562,
3156 0, 0, 616, 0, 191, 0, 0, 0, 0, 0,
3157 0, 0, 162, 163, 164, 165, 166, 167, 168, 169,
3158 170, 0, 0, 171, 172, 0, 0, 173, 174, 175,
3159 176, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3160 0, 177, 178, 0, 0, 0, 0, 0, 0, 0,
3161 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3162 0, 0, 179, 180, 181, 182, 183, 184, 185, 186,
3163 187, 188, 0, 189, 190, 639, 554, 0, 0, 640,
3164 0, 191, 0, 0, 0, 0, 0, 0, 0, 162,
3165 163, 164, 165, 166, 167, 168, 169, 170, 0, 0,
3166 171, 172, 0, 0, 173, 174, 175, 176, 0, 0,
3167 0, 0, 0, 0, 0, 0, 0, 0, 177, 178,
3168 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3169 0, 0, 0, 0, 0, 0, 0, 0, 0, 179,
3170 180, 181, 182, 183, 184, 185, 186, 187, 188, 0,
3171 189, 190, 642, 562, 0, 0, 643, 0, 191, 0,
3172 0, 0, 0, 0, 0, 0, 162, 163, 164, 165,
3173 166, 167, 168, 169, 170, 0, 0, 171, 172, 0,
3174 0, 173, 174, 175, 176, 0, 0, 0, 0, 0,
3175 0, 0, 0, 0, 0, 177, 178, 0, 0, 0,
3176 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3177 0, 0, 0, 0, 0, 0, 179, 180, 181, 182,
3178 183, 184, 185, 186, 187, 188, 0, 189, 190, 727,
3179 554, 0, 0, 728, 0, 191, 0, 0, 0, 0,
3180 0, 0, 0, 162, 163, 164, 165, 166, 167, 168,
3181 169, 170, 0, 0, 171, 172, 0, 0, 173, 174,
3182 175, 176, 0, 0, 0, 0, 0, 0, 0, 0,
3183 0, 0, 177, 178, 0, 0, 0, 0, 0, 0,
3184 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3185 0, 0, 0, 179, 180, 181, 182, 183, 184, 185,
3186 186, 187, 188, 0, 189, 190, 730, 562, 0, 0,
3187 731, 0, 191, 0, 0, 0, 0, 0, 0, 0,
3188 162, 163, 164, 165, 166, 167, 168, 169, 170, 0,
3189 0, 171, 172, 0, 0, 173, 174, 175, 176, 0,
3190 0, 0, 0, 0, 0, 0, 0, 0, 0, 177,
3191 178, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3192 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3193 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
3194 0, 189, 190, 737, 554, 0, 0, 738, 0, 191,
3195 0, 0, 0, 0, 0, 0, 0, 162, 163, 164,
3196 165, 166, 167, 168, 169, 170, 0, 0, 171, 172,
3197 0, 0, 173, 174, 175, 176, 0, 0, 0, 0,
3198 0, 0, 0, 0, 0, 0, 177, 178, 0, 0,
3199 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3200 0, 0, 0, 0, 0, 0, 0, 179, 180, 181,
3201 182, 183, 184, 185, 186, 187, 188, 0, 189, 190,
3202 1000, 554, 0, 0, 1001, 0, 191, 0, 0, 0,
3203 0, 0, 0, 0, 162, 163, 164, 165, 166, 167,
3204 168, 169, 170, 0, 0, 171, 172, 0, 0, 173,
3205 174, 175, 176, 0, 0, 0, 0, 0, 0, 0,
3206 0, 0, 0, 177, 178, 0, 0, 0, 0, 0,
3207 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3208 0, 0, 0, 0, 179, 180, 181, 182, 183, 184,
3209 185, 186, 187, 188, 0, 189, 190, 1035, 554, 0,
3210 0, 1036, 0, 191, 0, 0, 0, 0, 0, 0,
3211 0, 162, 163, 164, 165, 166, 167, 168, 169, 170,
3212 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
3213 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3214 177, 178, 0, 0, 0, 0, 0, 0, 0, 0,
3215 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3216 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3217 188, 0, 189, 190, 1038, 562, 0, 0, 1039, 0,
3218 191, 0, 0, 0, 0, 0, 0, 0, 162, 163,
3219 164, 165, 166, 167, 168, 169, 170, 0, 0, 171,
3220 172, 0, 0, 173, 174, 175, 176, 0, 0, 0,
3221 0, 0, 0, 0, 0, 0, 0, 177, 178, 327,
3222 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
3223 338, 339, 0, 0, 340, 341, 0, 0, 179, 180,
3224 181, 182, 183, 184, 185, 186, 187, 188, 0, 189,
3225 190, 0, 0, 0, 0, 0, 0, 191, 0, 0,
3226 0, 0, 0, 0, 0, 342, 0, 343, 344, 345,
3227 346, 347, 348, 349, 350, 351, 352, 0, 0, 0,
3228 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3234 2, 96, 74, 55, 28, 67, 79, 50, 220, 230,
3235 8, 359, 27, 326, 29, 8, 326, 87, 354, 262,
3236 90, 8, 472, 266, 651, 16, 17, 22, 90, 20,
3237 28, 353, 53, 355, 255, 28, 614, 2, 259, 4,
3238 575, 28, 94, 86, 87, 4, 420, 90, 376, 51,
3239 52, 2, 594, 4, 440, 574, 67, 577, 79, 53,
3240 472, 90, 780, 641, 468, 16, 17, 788, 55, 20,
3241 91, 92, 93, 876, 16, 17, 49, 399, 20, 74,
3242 416, 715, 25, 64, 458, 719, 25, 13, 26, 668,
3243 25, 25, 412, 415, 25, 417, 250, 27, 49, 50,
3244 420, 874, 53, 508, 29, 76, 511, 94, 85, 51,
3245 25, 685, 0, 64, 518, 85, 61, 903, 16, 17,
3246 68, 443, 20, 776, 61, 25, 37, 38, 79, 13,
3247 139, 141, 141, 25, 470, 86, 87, 97, 907, 90,
3248 91, 92, 93, 770, 771, 130, 596, 118, 56, 471,
3249 803, 729, 13, 51, 52, 132, 133, 16, 17, 136,
3250 120, 20, 740, 133, 26, 110, 939, 37, 38, 323,
3251 286, 243, 288, 110, 290, 123, 124, 125, 294, 25,
3252 898, 52, 13, 13, 140, 56, 111, 230, 991, 232,
3253 252, 134, 130, 136, 736, 134, 140, 136, 271, 134,
3254 134, 422, 744, 134, 724, 426, 780, 657, 134, 139,
3255 431, 141, 214, 139, 788, 141, 1002, 429, 220, 134,
3256 993, 741, 685, 252, 945, 227, 447, 25, 807, 808,
3257 141, 452, 950, 224, 134, 226, 227, 307, 308, 309,
3258 310, 252, 134, 1012, 580, 657, 632, 874, 622, 876,
3259 271, 1024, 203, 268, 13, 139, 592, 141, 1, 581,
3260 670, 87, 672, 591, 307, 308, 309, 310, 130, 312,
3261 313, 593, 87, 224, 136, 226, 227, 250, 139, 230,
3262 141, 232, 224, 248, 226, 690, 237, 113, 134, 1007,
3263 360, 361, 696, 743, 28, 929, 517, 248, 113, 250,
3264 362, 621, 622, 324, 15, 136, 17, 886, 139, 139,
3265 141, 141, 939, 940, 134, 113, 378, 360, 361, 782,
3266 271, 141, 140, 786, 898, 845, 224, 847, 226, 903,
3267 324, 743, 375, 362, 49, 854, 134, 857, 85, 137,
3268 321, 306, 862, 141, 61, 326, 311, 306, 25, 140,
3269 323, 113, 354, 134, 61, 306, 307, 308, 309, 310,
3270 311, 312, 313, 354, 991, 224, 993, 226, 355, 485,
3271 321, 945, 323, 324, 117, 326, 492, 725, 87, 321,
3272 139, 134, 141, 61, 326, 964, 133, 697, 141, 931,
3273 107, 87, 109, 636, 929, 468, 139, 1024, 141, 611,
3274 107, 714, 109, 354, 113, 356, 926, 927, 113, 360,
3275 361, 134, 399, 437, 416, 87, 100, 113, 141, 85,
3276 87, 402, 403, 140, 375, 416, 428, 429, 1002, 107,
3277 417, 109, 110, 140, 85, 898, 113, 900, 440, 437,
3278 903, 113, 905, 87, 437, 518, 113, 468, 990, 134,
3279 437, 402, 403, 58, 26, 85, 443, 134, 56, 1037,
3280 137, 87, 61, 68, 141, 416, 65, 133, 470, 989,
3281 26, 136, 85, 883, 884, 440, 141, 113, 888, 470,
3282 890, 891, 133, 85, 471, 557, 936, 113, 203, 440,
3283 85, 96, 97, 565, 58, 869, 136, 518, 134, 450,
3284 1020, 113, 1022, 133, 68, 507, 508, 85, 107, 511,
3285 109, 573, 574, 85, 412, 120, 703, 468, 88, 470,
3286 133, 742, 237, 710, 61, 587, 134, 542, 600, 85,
3287 132, 133, 96, 97, 87, 250, 136, 132, 133, 1002,
3288 761, 1004, 134, 85, 1007, 560, 1009, 61, 760, 869,
3289 130, 685, 595, 774, 132, 133, 120, 455, 130, 136,
3290 132, 133, 85, 558, 637, 61, 568, 518, 136, 917,
3291 107, 566, 109, 110, 130, 923, 132, 133, 580, 61,
3292 136, 605, 625, 68, 1047, 995, 996, 997, 998, 580,
3293 592, 133, 68, 107, 581, 109, 110, 26, 600, 614,
3294 113, 592, 685, 59, 60, 600, 593, 605, 323, 611,
3295 133, 107, 605, 109, 110, 137, 637, 138, 605, 570,
3296 85, 572, 131, 696, 85, 107, 641, 109, 110, 580,
3297 632, 85, 704, 134, 576, 1045, 59, 60, 56, 711,
3298 861, 592, 110, 594, 595, 121, 122, 123, 124, 125,
3299 54, 87, 873, 748, 788, 110, 85, 791, 85, 63,
3300 64, 87, 732, 85, 666, 735, 668, 632, 133, 26,
3301 685, 733, 133, 110, 625, 696, 110, 113, 132, 133,
3302 1016, 632, 2, 745, 4, 85, 637, 113, 690, 732,
3303 14, 15, 735, 68, 746, 1017, 16, 17, 134, 782,
3304 20, 130, 94, 132, 133, 132, 133, 136, 134, 711,
3305 132, 133, 714, 715, 729, 717, 697, 719, 68, 700,
3306 701, 87, 134, 621, 17, 740, 707, 708, 85, 49,
3307 50, 139, 132, 133, 56, 686, 25, 134, 689, 85,
3308 691, 137, 85, 134, 64, 696, 697, 113, 131, 700,
3309 701, 130, 134, 134, 140, 85, 707, 708, 760, 746,
3310 52, 776, 54, 55, 56, 57, 86, 87, 134, 903,
3311 90, 905, 714, 130, 844, 132, 133, 85, 140, 136,
3312 801, 732, 85, 134, 735, 736, 132, 133, 803, 132,
3313 133, 85, 854, 744, 856, 52, 134, 54, 55, 56,
3314 57, 844, 132, 133, 113, 807, 808, 87, 134, 87,
3315 10, 945, 8, 947, 13, 898, 113, 900, 952, 87,
3316 903, 136, 905, 134, 132, 133, 777, 778, 134, 132,
3317 133, 131, 52, 113, 87, 113, 134, 839, 132, 133,
3318 842, 115, 134, 54, 55, 113, 57, 810, 811, 830,
3319 801, 134, 63, 64, 134, 570, 134, 572, 52, 52,
3320 113, 54, 55, 56, 57, 816, 134, 134, 1002, 52,
3321 1004, 134, 893, 138, 15, 1009, 134, 134, 134, 830,
3322 131, 134, 113, 203, 886, 40, 41, 42, 43, 44,
3323 841, 118, 1026, 844, 134, 916, 89, 848, 849, 134,
3324 134, 852, 95, 139, 224, 134, 226, 227, 10, 131,
3325 230, 10, 232, 1047, 88, 134, 9, 237, 134, 1002,
3326 137, 1004, 10, 131, 1007, 134, 1009, 929, 248, 52,
3327 250, 54, 55, 56, 57, 52, 134, 54, 55, 56,
3328 57, 892, 893, 134, 52, 134, 54, 55, 56, 57,
3329 56, 118, 131, 134, 134, 970, 108, 134, 134, 134,
3330 56, 52, 964, 134, 1047, 916, 89, 136, 134, 920,
3331 134, 686, 95, 136, 689, 134, 691, 450, 91, 93,
3332 931, 89, 711, 1019, 770, 685, 306, 307, 308, 309,
3333 310, 311, 312, 313, 1012, 749, 1018, 57, 961, 962,
3334 94, 321, 965, 323, 967, 968, 326, 99, 294, 936,
3335 782, 900, 898, 780, 1016, -1, 1018, 1019, 396, -1,
3336 -1, -1, 1037, 16, 17, 1016, -1, 20, -1, 980,
3337 1017, 982, -1, -1, 354, -1, 356, 988, -1, 990,
3338 360, 361, -1, -1, 52, -1, 54, 55, 56, 57,
3339 58, -1, -1, 46, 47, 375, -1, -1, 51, 52,
3340 68, -1, 777, 778, -1, 1016, -1, 1030, 1031, 1032,
3341 1033, 64, 65, -1, -1, -1, -1, -1, -1, -1,
3342 -1, 89, 402, 403, -1, -1, -1, -1, 96, 97,
3343 1053, -1, -1, -1, -1, -1, 416, -1, -1, -1,
3344 -1, 816, -1, -1, -1, -1, -1, -1, -1, -1,
3345 201, -1, 120, 204, 205, 206, -1, -1, -1, -1,
3346 440, -1, -1, -1, -1, -1, 841, -1, -1, -1,
3347 450, -1, -1, 848, 849, -1, -1, 852, 52, -1,
3348 54, 55, 56, 57, 58, -1, -1, 0, -1, -1,
3349 470, -1, -1, -1, 68, 8, 9, 10, -1, -1,
3350 13, 14, 15, 68, 17, -1, -1, -1, -1, -1,
3351 -1, -1, -1, 26, 27, 89, -1, 892, 83, 84,
3352 -1, 95, 96, 97, 37, 38, 68, 40, 41, 42,
3353 43, 44, -1, -1, -1, -1, -1, -1, -1, -1,
3354 -1, 83, 84, -1, -1, 920, 120, -1, 201, 123,
3355 -1, 204, 205, 206, 207, 120, 121, 122, 123, 124,
3356 125, -1, -1, -1, -1, -1, -1, 141, -1, -1,
3357 321, 224, 85, 226, 227, 326, 118, 119, 120, 121,
3358 122, 123, 124, 125, -1, -1, 68, -1, -1, -1,
3359 570, -1, 572, -1, -1, 108, -1, -1, -1, -1,
3360 580, 83, 84, -1, -1, 980, -1, 982, -1, -1,
3361 -1, -1, 592, 988, 594, 595, -1, 130, 131, -1,
3362 133, -1, -1, 136, 137, -1, 139, -1, 141, -1,
3363 -1, -1, -1, -1, -1, -1, -1, -1, -1, 121,
3364 122, 123, 124, 125, -1, 625, -1, -1, -1, -1,
3365 -1, -1, 632, -1, -1, -1, -1, -1, -1, -1,
3366 411, 412, -1, -1, -1, -1, -1, -1, 321, 420,
3367 -1, -1, -1, 326, 327, 328, 329, 330, 331, 332,
3368 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
3369 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
3370 -1, 354, -1, -1, 455, -1, 686, 458, -1, 689,
3371 -1, 691, -1, -1, -1, -1, -1, 697, -1, -1,
3372 700, 701, -1, -1, -1, -1, -1, 707, 708, -1,
3373 2, -1, 4, -1, -1, -1, -1, -1, -1, -1,
3374 -1, -1, -1, -1, -1, -1, -1, -1, -1, 402,
3375 403, -1, 732, -1, -1, 735, 736, 410, 411, 412,
3376 -1, 512, -1, 416, 744, 418, 419, 420, -1, 52,
3377 -1, 54, 55, 56, 57, 58, -1, 49, -1, -1,
3378 -1, 53, -1, -1, -1, 68, 439, -1, -1, -1,
3379 -1, 444, -1, -1, -1, -1, -1, 777, 778, -1,
3380 -1, -1, 455, -1, -1, 458, 89, 79, -1, -1,
3381 -1, -1, 95, 96, 97, -1, -1, 470, -1, 91,
3382 92, 93, 94, -1, -1, 576, -1, -1, -1, -1,
3383 -1, -1, -1, -1, -1, -1, 816, 120, -1, -1,
3384 123, -1, -1, 496, 497, -1, -1, -1, -1, -1,
3385 830, -1, -1, 136, -1, -1, -1, 608, -1, 512,
3386 -1, 841, -1, -1, 844, -1, -1, -1, 848, 849,
3387 621, 622, 852, 52, -1, 54, 55, 56, 57, 58,
3388 -1, 2, -1, 4, -1, -1, -1, -1, -1, 68,
3389 -1, -1, -1, -1, -1, -1, -1, -1, 649, -1,
3390 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3391 89, -1, 892, -1, -1, -1, 95, 96, 97, -1,
3392 -1, -1, -1, 576, -1, -1, -1, 580, 49, -1,
3393 -1, 203, 53, -1, -1, -1, -1, -1, -1, 592,
3394 920, 120, 693, 52, 123, 54, 55, 56, 57, 58,
3395 -1, 931, -1, -1, -1, 608, -1, 136, 79, 68,
3396 -1, -1, -1, 714, -1, 237, -1, -1, 621, 622,
3397 91, 92, 93, 94, -1, -1, 248, -1, 250, -1,
3398 89, -1, -1, -1, -1, -1, 95, 96, 97, -1,
3399 -1, -1, -1, -1, -1, -1, 649, -1, -1, 271,
3400 980, -1, 982, -1, -1, -1, -1, -1, 988, -1,
3401 990, 120, -1, -1, 123, -1, 767, -1, -1, 52,
3402 -1, 54, 55, 56, 57, 58, -1, -1, -1, -1,
3403 -1, -1, -1, -1, 306, 68, 1016, -1, -1, 311,
3404 693, -1, -1, -1, 697, 698, -1, 700, 701, -1,
3405 -1, 323, 324, -1, 707, 708, 89, -1, -1, -1,
3406 -1, 714, 95, 96, 97, -1, 2, 818, 4, -1,
3407 -1, -1, -1, -1, -1, 2, -1, 4, -1, -1,
3408 -1, -1, 203, -1, 356, -1, -1, 120, -1, -1,
3409 123, 52, -1, 54, 55, 56, 57, 58, 751, -1,
3410 851, -1, 755, 756, -1, 758, 759, 68, -1, -1,
3411 -1, -1, -1, 49, 767, -1, 237, 53, 869, -1,
3412 -1, -1, 49, -1, -1, -1, -1, 248, 89, 250,
3413 -1, -1, -1, -1, -1, 96, 97, -1, -1, -1,
3414 -1, -1, -1, 79, -1, -1, -1, -1, -1, -1,
3415 271, -1, -1, -1, -1, 91, 92, 93, -1, 120,
3416 -1, -1, -1, -1, 91, 818, -1, -1, 440, 822,
3417 -1, -1, -1, -1, -1, -1, -1, 830, 450, -1,
3418 -1, -1, -1, -1, -1, 306, -1, -1, -1, -1,
3419 311, -1, -1, -1, -1, -1, 468, -1, 851, -1,
3420 -1, -1, 323, 324, 68, 69, 70, 71, 72, 73,
3421 74, 75, -1, 77, 78, 868, 869, -1, -1, 83,
3422 84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3423 -1, -1, -1, -1, -1, 356, -1, -1, -1, -1,
3424 -1, -1, -1, 2, -1, 4, 518, -1, -1, -1,
3425 -1, -1, 116, 117, 118, 119, 120, 121, 122, 123,
3426 124, 125, -1, -1, -1, -1, -1, 203, -1, -1,
3427 -1, -1, -1, -1, -1, -1, 203, -1, -1, -1,
3428 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3429 49, -1, -1, -1, -1, -1, -1, -1, 570, -1,
3430 572, 237, -1, -1, -1, -1, -1, -1, -1, -1,
3431 237, -1, 248, -1, 250, -1, -1, -1, -1, 440,
3432 -1, 248, 594, 250, -1, -1, -1, -1, -1, 450,
3433 -1, -1, -1, -1, -1, 271, -1, -1, -1, -1,
3434 -1, -1, -1, -1, -1, -1, -1, 468, -1, -1,
3435 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3436 632, -1, -1, 1016, -1, 637, -1, -1, -1, -1,
3437 306, -1, -1, -1, -1, 311, -1, -1, -1, 306,
3438 -1, -1, -1, -1, 311, -1, -1, 323, 324, -1,
3439 -1, -1, -1, -1, -1, -1, 323, 518, -1, 326,
3440 -1, -1, -1, -1, -1, -1, -1, 44, -1, -1,
3441 -1, -1, -1, -1, 686, -1, -1, 689, -1, 691,
3442 356, -1, -1, -1, 696, -1, -1, -1, -1, 356,
3443 -1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3444 77, 78, 79, 80, 203, -1, 83, 84, -1, 570,
3445 -1, 572, -1, -1, -1, -1, -1, -1, -1, -1,
3446 -1, -1, -1, -1, 736, -1, -1, -1, -1, -1,
3447 -1, -1, 744, 594, -1, -1, -1, 114, 237, 116,
3448 117, 118, 119, 120, 121, 122, 123, 124, 125, 248,
3449 -1, 250, -1, -1, -1, -1, -1, 134, -1, -1,
3450 -1, -1, -1, -1, 440, 777, 778, -1, -1, -1,
3451 -1, 632, -1, 440, 450, -1, 637, -1, -1, -1,
3452 -1, -1, -1, 450, -1, -1, -1, -1, -1, 801,
3453 -1, -1, 468, -1, -1, -1, -1, -1, -1, -1,
3454 -1, -1, -1, -1, 816, -1, -1, 306, -1, -1,
3455 -1, -1, 311, -1, -1, -1, -1, 68, 69, 70,
3456 71, 72, 73, 74, 323, 686, 77, 78, 689, 841,
3457 691, -1, 83, 84, -1, 696, 848, 849, -1, -1,
3458 852, -1, 518, -1, -1, -1, -1, -1, -1, -1,
3459 -1, -1, -1, -1, -1, -1, -1, 356, -1, -1,
3460 -1, -1, -1, -1, -1, 116, 117, 118, 119, 120,
3461 121, 122, 123, 124, 125, 736, -1, -1, -1, -1,
3462 892, 893, -1, 744, -1, -1, -1, -1, -1, -1,
3463 -1, -1, -1, -1, 570, -1, 572, -1, -1, -1,
3464 -1, -1, -1, 570, 916, 572, -1, -1, 920, -1,
3465 -1, -1, -1, -1, -1, -1, 777, 778, 594, 931,
3466 -1, -1, -1, -1, -1, -1, -1, 594, -1, -1,
3467 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3468 801, 440, -1, -1, -1, -1, -1, -1, -1, -1,
3469 -1, 450, -1, -1, -1, 816, 632, -1, -1, -1,
3470 -1, 637, -1, -1, -1, 632, -1, -1, 980, -1,
3471 982, -1, -1, -1, -1, -1, 988, -1, 990, -1,
3472 841, -1, -1, -1, -1, -1, -1, 848, 849, -1,
3473 -1, 852, -1, -1, -1, -1, -1, -1, -1, -1,
3474 676, -1, -1, -1, -1, -1, -1, -1, -1, 44,
3475 686, -1, -1, 689, -1, 691, -1, -1, -1, 686,
3476 696, -1, 689, -1, 691, -1, -1, -1, -1, -1,
3477 697, 892, 893, 68, 69, 70, 71, 72, 73, 74,
3478 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3479 -1, -1, -1, -1, -1, 916, -1, -1, -1, 920,
3480 736, -1, -1, -1, -1, -1, -1, -1, 744, 736,
3481 931, 570, -1, 572, -1, -1, -1, 744, -1, 114,
3482 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3483 125, -1, -1, -1, -1, 594, -1, -1, -1, -1,
3484 -1, 777, 778, -1, -1, -1, -1, -1, -1, -1,
3485 777, 778, -1, -1, -1, -1, -1, -1, -1, 980,
3486 -1, 982, -1, -1, -1, 801, -1, 988, 44, 990,
3487 -1, -1, -1, 632, -1, -1, -1, -1, -1, -1,
3488 816, -1, -1, -1, -1, -1, -1, -1, -1, 816,
3489 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3490 76, 77, 78, 79, 80, 841, -1, 83, 84, -1,
3491 -1, -1, 848, 849, 841, -1, 852, -1, -1, -1,
3492 -1, 848, 849, -1, -1, 852, -1, 686, -1, -1,
3493 689, -1, 691, -1, -1, -1, -1, -1, 114, -1,
3494 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3495 -1, -1, -1, -1, -1, -1, 892, 893, 68, 69,
3496 70, 71, 72, 73, 74, 892, -1, 77, 78, -1,
3497 -1, -1, -1, 83, 84, -1, -1, 736, -1, -1,
3498 916, -1, -1, -1, 920, 744, -1, -1, -1, 916,
3499 -1, -1, -1, 920, -1, 931, -1, -1, -1, -1,
3500 -1, -1, -1, -1, 931, -1, 116, 117, 118, 119,
3501 120, 121, 122, 123, 124, 125, -1, -1, 777, 778,
3502 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
3503 78, 79, 80, -1, -1, 83, 84, -1, -1, -1,
3504 -1, -1, -1, -1, 980, -1, 982, -1, -1, -1,
3505 -1, -1, 988, 980, 990, 982, -1, 816, -1, -1,
3506 -1, 988, -1, 990, -1, -1, 114, -1, 116, 117,
3507 118, 119, 120, 121, 122, 123, 124, 125, -1, -1,
3508 -1, -1, 841, -1, -1, -1, -1, -1, -1, 848,
3509 849, 0, 1, 852, 3, 4, 5, 6, 7, -1,
3510 -1, -1, 11, 12, -1, -1, -1, 16, -1, 18,
3511 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3512 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3513 39, -1, -1, 892, -1, -1, 45, 46, 47, 48,
3514 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3515 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3516 -1, 920, -1, -1, -1, -1, -1, -1, -1, -1,
3517 -1, -1, 931, -1, -1, -1, -1, 86, -1, -1,
3518 89, 90, -1, 92, 93, -1, 95, -1, -1, 98,
3519 99, 100, 101, 102, 103, 104, 105, 106, 0, -1,
3520 -1, -1, -1, -1, -1, -1, 8, 9, 10, -1,
3521 -1, 13, 14, 15, -1, 17, -1, 126, 127, 128,
3522 -1, 980, -1, 982, 26, 27, 28, 29, -1, 988,
3523 139, 990, 141, -1, -1, 37, 38, -1, 40, 41,
3524 42, 43, 44, -1, -1, 68, 69, 70, 71, 72,
3525 73, 74, 75, 76, 77, 78, 79, 80, -1, -1,
3526 83, 84, -1, -1, -1, -1, 68, 69, 70, 71,
3527 72, 73, 74, 75, 76, 77, 78, 79, 80, -1,
3528 -1, 83, 84, 85, -1, 87, 88, -1, -1, -1,
3529 -1, -1, 94, 116, 117, 118, 119, 120, 121, 122,
3530 123, 124, 125, -1, -1, -1, 108, -1, -1, 111,
3531 -1, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3532 122, 123, 124, 125, -1, -1, -1, -1, 130, 131,
3533 132, 133, 134, 0, -1, 137, 138, 139, -1, 141,
3534 -1, 8, 9, 10, -1, -1, 13, 14, 15, -1,
3535 17, -1, -1, -1, -1, -1, -1, -1, 25, -1,
3536 27, 28, 29, -1, -1, -1, -1, -1, -1, -1,
3537 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3538 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3539 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3540 -1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3541 77, 78, 79, 80, -1, -1, 83, 84, 85, -1,
3542 87, 88, -1, -1, -1, -1, -1, 94, -1, -1,
3543 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3544 -1, 108, -1, -1, 111, -1, 113, 114, 115, 116,
3545 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
3546 -1, -1, -1, -1, 131, 132, 133, 134, 0, -1,
3547 137, 138, 139, -1, 141, -1, 8, 9, 10, -1,
3548 -1, 13, 14, 15, -1, 17, -1, -1, -1, -1,
3549 -1, -1, -1, 25, -1, 27, 28, 29, -1, -1,
3550 -1, -1, -1, -1, -1, 37, 38, -1, 40, 41,
3551 42, 43, 44, -1, -1, -1, -1, -1, -1, -1,
3552 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3553 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
3554 72, 73, 74, 75, 76, 77, 78, 79, 80, -1,
3555 -1, 83, 84, 85, -1, 87, 88, -1, -1, -1,
3556 -1, -1, 94, -1, -1, -1, -1, -1, -1, -1,
3557 -1, -1, -1, -1, -1, -1, 108, -1, -1, 111,
3558 -1, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3559 122, 123, 124, 125, -1, -1, -1, -1, -1, 131,
3560 132, 133, 134, 0, -1, 137, 138, 139, -1, 141,
3561 -1, 8, 9, 10, -1, -1, 13, 14, 15, -1,
3562 17, -1, -1, -1, -1, -1, -1, -1, -1, 26,
3563 27, 28, 29, -1, -1, -1, -1, -1, -1, -1,
3564 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3565 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3566 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3567 -1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3568 77, 78, 79, 80, -1, -1, 83, 84, 85, -1,
3569 -1, 88, -1, -1, -1, -1, -1, 94, -1, -1,
3570 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3571 -1, 108, -1, -1, 111, -1, -1, 114, 115, 116,
3572 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
3573 -1, -1, -1, 130, 131, 132, 133, 134, 0, -1,
3574 137, 138, 139, -1, 141, -1, 8, 9, 10, -1,
3575 -1, 13, 14, 15, -1, 17, -1, -1, -1, -1,
3576 -1, -1, -1, -1, 26, 27, 28, 29, -1, -1,
3577 -1, -1, -1, -1, -1, 37, 38, -1, 40, 41,
3578 42, 43, 44, -1, -1, -1, -1, -1, -1, -1,
3579 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3580 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
3581 72, 73, 74, 75, 76, 77, 78, 79, 80, -1,
3582 -1, 83, 84, 85, -1, -1, 88, -1, -1, -1,
3583 -1, -1, 94, -1, -1, -1, -1, -1, -1, -1,
3584 -1, -1, -1, -1, -1, -1, 108, -1, -1, 111,
3585 -1, -1, 114, 115, 116, 117, 118, 119, 120, 121,
3586 122, 123, 124, 125, -1, -1, -1, -1, 130, 131,
3587 132, 133, 134, 0, -1, 137, 138, 139, -1, 141,
3588 -1, 8, 9, 10, -1, -1, 13, 14, 15, -1,
3589 17, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3590 27, 28, 29, -1, -1, -1, -1, -1, -1, -1,
3591 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3592 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3593 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3594 -1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3595 77, 78, 79, 80, -1, -1, 83, 84, 85, -1,
3596 87, 88, -1, -1, -1, -1, -1, 94, -1, -1,
3597 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3598 -1, 108, -1, -1, 111, -1, 113, 114, 115, 116,
3599 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
3600 -1, -1, -1, -1, 131, 132, 133, 134, 0, -1,
3601 137, 138, 139, -1, 141, -1, 8, 9, 10, -1,
3602 -1, 13, 14, 15, -1, 17, -1, -1, -1, -1,
3603 -1, -1, -1, -1, 26, 27, 28, -1, -1, -1,
3604 -1, -1, -1, -1, -1, 37, 38, -1, 40, 41,
3605 42, 43, 44, -1, -1, -1, -1, -1, -1, -1,
3606 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3607 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
3608 72, 73, 74, 75, 76, 77, 78, 79, 80, -1,
3609 -1, 83, 84, 85, -1, -1, 88, -1, -1, -1,
3610 -1, -1, 94, -1, -1, -1, -1, -1, -1, -1,
3611 -1, -1, -1, -1, -1, -1, 108, -1, -1, -1,
3612 -1, -1, 114, -1, 116, 117, 118, 119, 120, 121,
3613 122, 123, 124, 125, -1, -1, -1, -1, 130, 131,
3614 132, 133, 134, 0, 136, 137, 138, 139, -1, 141,
3615 -1, 8, 9, 10, -1, -1, 13, 14, 15, -1,
3616 17, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3617 27, 28, 29, -1, -1, -1, -1, -1, -1, -1,
3618 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3619 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3620 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3621 -1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3622 77, 78, 79, 80, -1, -1, 83, 84, 85, -1,
3623 -1, 88, -1, -1, -1, -1, -1, 94, -1, -1,
3624 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3625 -1, 108, -1, -1, 111, -1, -1, 114, 115, 116,
3626 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
3627 -1, -1, -1, -1, 131, 132, 133, 134, 0, -1,
3628 137, 138, 139, -1, 141, -1, 8, 9, 10, -1,
3629 -1, 13, 14, 15, -1, 17, -1, -1, -1, -1,
3630 -1, -1, -1, -1, 26, 27, 28, -1, -1, -1,
3631 -1, -1, -1, -1, -1, 37, 38, -1, 40, 41,
3632 42, 43, 44, -1, -1, -1, -1, -1, -1, -1,
3633 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3634 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
3635 72, 73, 74, 75, 76, 77, 78, 79, 80, -1,
3636 -1, 83, 84, 85, -1, -1, 88, -1, -1, -1,
3637 -1, -1, 94, -1, -1, -1, -1, -1, -1, -1,
3638 -1, -1, -1, -1, -1, -1, 108, -1, -1, -1,
3639 -1, -1, 114, -1, 116, 117, 118, 119, 120, 121,
3640 122, 123, 124, 125, -1, -1, -1, -1, 130, 131,
3641 132, 133, 134, 0, 136, 137, 138, 139, -1, 141,
3642 -1, 8, 9, 10, -1, -1, 13, 14, 15, -1,
3643 17, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3644 27, 28, -1, -1, -1, -1, -1, -1, -1, -1,
3645 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3646 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3647 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3648 -1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3649 77, 78, 79, 80, -1, -1, 83, 84, 85, -1,
3650 -1, 88, -1, -1, -1, -1, -1, 94, -1, -1,
3651 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3652 -1, 108, -1, -1, -1, -1, -1, 114, -1, 116,
3653 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
3654 -1, -1, -1, -1, 131, 132, 133, 134, 0, 136,
3655 137, 138, 139, -1, 141, -1, 8, 9, 10, -1,
3656 -1, -1, 14, 15, -1, 17, -1, -1, -1, -1,
3657 -1, -1, -1, -1, 26, -1, -1, -1, -1, -1,
3658 -1, -1, -1, -1, -1, 37, 38, -1, 40, 41,
3659 42, 43, 44, -1, -1, -1, -1, -1, -1, -1,
3660 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3661 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
3662 72, 73, 74, 75, 76, 77, 78, 79, 80, -1,
3663 -1, 83, 84, 85, -1, 87, -1, -1, -1, -1,
3664 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3665 -1, -1, -1, -1, -1, -1, 108, -1, -1, -1,
3666 -1, 113, 114, -1, 116, 117, 118, 119, 120, 121,
3667 122, 123, 124, 125, -1, -1, -1, -1, 130, 131,
3668 132, 133, 134, 0, -1, 137, -1, 139, -1, 141,
3669 -1, 8, 9, 10, -1, -1, -1, 14, 15, -1,
3670 17, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3671 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3672 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3673 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3674 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3675 -1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3676 77, 78, 79, 80, -1, -1, 83, 84, 85, -1,
3677 87, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3678 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3679 -1, 108, -1, -1, -1, -1, 113, 114, -1, 116,
3680 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
3681 -1, -1, -1, -1, 131, 132, 133, 134, -1, -1,
3682 137, -1, 139, 1, 141, 3, 4, 5, 6, 7,
3683 8, 9, 10, 11, 12, -1, -1, 15, 16, -1,
3684 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3685 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3686 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3687 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3688 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3689 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3690 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3691 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
3692 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3693 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3694 -1, -1, -1, -1, -1, -1, -1, -1, 126, 127,
3695 128, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3696 -1, 139, 1, 141, 3, 4, 5, 6, 7, -1,
3697 -1, 10, 11, 12, -1, 14, 15, 16, -1, 18,
3698 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3699 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3700 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3701 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3702 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3703 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3704 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3705 89, 90, -1, 92, 93, -1, 95, -1, -1, 98,
3706 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
3707 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3708 -1, -1, -1, -1, -1, -1, -1, 126, 127, 128,
3709 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3710 139, 1, 141, 3, 4, 5, 6, 7, -1, -1,
3711 10, 11, 12, -1, -1, 15, 16, 17, 18, 19,
3712 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3713 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3714 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
3715 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3716 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3717 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3718 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3719 90, -1, 92, 93, -1, 95, -1, -1, 98, 99,
3720 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
3721 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3722 -1, -1, -1, -1, -1, -1, 126, 127, 128, -1,
3723 -1, -1, -1, -1, -1, -1, -1, -1, -1, 139,
3724 1, 141, 3, 4, 5, 6, 7, -1, -1, 10,
3725 11, 12, -1, -1, 15, 16, -1, 18, 19, 20,
3726 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3727 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3728 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
3729 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3730 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3731 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3732 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3733 -1, 92, 93, -1, 95, -1, -1, 98, 99, 100,
3734 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
3735 -1, -1, -1, 1, -1, 3, 4, 5, 6, 7,
3736 -1, 9, 10, 11, 12, 126, 127, 128, 16, -1,
3737 18, 19, 20, 21, 22, 23, 24, -1, 139, -1,
3738 141, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3739 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3740 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3741 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3742 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3743 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3744 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
3745 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3746 -1, -1, -1, -1, -1, -1, 1, -1, 3, 4,
3747 5, 6, 7, -1, -1, -1, 11, 12, 126, 127,
3748 128, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3749 -1, 139, -1, 141, -1, 30, 31, 32, 33, 34,
3750 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3751 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3752 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
3753 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3754 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3755 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3756 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
3757 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
3758 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3759 -1, 126, 127, 128, -1, -1, -1, -1, -1, -1,
3760 -1, -1, 137, -1, 139, 1, 141, 3, 4, 5,
3761 6, 7, -1, -1, -1, 11, 12, -1, -1, -1,
3762 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3763 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3764 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3765 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
3766 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3767 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3768 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3769 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3770 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
3771 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3772 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3773 126, 127, 128, -1, -1, -1, -1, -1, -1, -1,
3774 -1, 137, -1, 139, 1, 141, 3, 4, 5, 6,
3775 7, -1, -1, -1, 11, 12, -1, -1, -1, 16,
3776 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3777 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3778 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
3779 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3780 57, -1, 59, 60, -1, 62, 63, 64, -1, 66,
3781 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3782 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3783 -1, -1, 89, 90, -1, 92, 93, -1, 95, -1,
3784 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3785 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3786 -1, -1, -1, -1, -1, -1, -1, -1, -1, 126,
3787 127, 128, -1, -1, 131, 1, -1, 3, 4, 5,
3788 6, 7, 139, -1, 141, 11, 12, -1, -1, -1,
3789 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3790 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3791 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3792 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
3793 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3794 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3795 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3796 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3797 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
3798 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3799 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3800 126, 127, 128, -1, -1, 131, -1, -1, -1, -1,
3801 -1, -1, -1, 139, 1, 141, 3, 4, 5, 6,
3802 7, -1, -1, 10, 11, 12, -1, -1, -1, 16,
3803 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3804 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3805 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
3806 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3807 57, -1, 59, 60, -1, 62, 63, 64, -1, 66,
3808 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3809 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3810 -1, -1, 89, 90, -1, 92, 93, -1, 95, -1,
3811 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3812 -1, -1, -1, -1, -1, -1, -1, 1, -1, 3,
3813 4, 5, 6, 7, -1, -1, -1, 11, 12, 126,
3814 127, 128, 16, -1, 18, 19, 20, 21, 22, 23,
3815 24, -1, 139, -1, 141, -1, 30, 31, 32, 33,
3816 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3817 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3818 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3819 64, -1, 66, 67, -1, -1, -1, -1, -1, -1,
3820 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3821 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3822 -1, 95, -1, -1, 98, 99, 100, 101, 102, 103,
3823 104, 105, 106, -1, 108, -1, -1, -1, -1, -1,
3824 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3825 11, 12, 126, 127, 128, 16, -1, 18, 19, 20,
3826 21, 22, 23, 24, -1, 139, -1, 141, -1, 30,
3827 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3828 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3829 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3830 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3831 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3832 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3833 -1, 92, 93, -1, 95, 96, 97, 98, 99, 100,
3834 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
3835 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
3836 -1, -1, -1, 11, 12, 126, 127, 128, 16, -1,
3837 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3838 141, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3839 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
3840 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3841 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3842 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3843 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3844 -1, 89, 90, -1, 92, 93, -1, -1, -1, -1,
3845 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3846 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
3847 5, -1, 7, -1, -1, -1, 11, 12, 126, 127,
3848 128, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3849 -1, 139, -1, 141, -1, 30, 31, 32, 33, 34,
3850 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3851 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
3852 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
3853 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3854 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3855 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3856 -1, -1, -1, 98, 99, 100, 101, 102, 103, 104,
3857 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
3858 -1, 3, 4, 5, 6, 7, -1, -1, -1, 11,
3859 12, 126, 127, 128, 16, -1, 18, 19, 20, 21,
3860 22, 23, 24, -1, -1, -1, 141, -1, 30, 31,
3861 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3862 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3863 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3864 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3865 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3866 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3867 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
3868 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
3869 -1, -1, -1, -1, 3, 4, 5, 6, 7, -1,
3870 -1, -1, 11, 12, 126, 127, 128, 16, -1, 18,
3871 19, 20, 21, 22, 23, 24, -1, 139, -1, -1,
3872 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3873 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3874 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3875 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3876 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3877 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3878 89, 90, -1, 92, 93, -1, 95, -1, -1, 98,
3879 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
3880 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3881 -1, -1, -1, -1, -1, -1, -1, 126, 127, 128,
3882 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3883 139, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3884 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3885 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
3886 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
3887 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3888 52, 53, 54, 55, 56, 57, -1, -1, -1, -1,
3889 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
3890 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
3891 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
3892 -1, -1, -1, 95, 96, -1, -1, -1, -1, -1,
3893 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3894 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121,
3895 122, 123, 124, 125, -1, 127, 128, -1, -1, -1,
3896 -1, -1, -1, 135, 136, 3, 4, 5, 6, 7,
3897 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
3898 18, 19, 20, 21, 22, 23, 24, 25, 26, -1,
3899 -1, -1, 30, 31, 32, 33, 34, 35, 36, 37,
3900 38, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3901 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3902 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
3903 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
3904 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
3905 -1, -1, -1, -1, -1, -1, -1, 95, 96, -1,
3906 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3907 -1, -1, -1, -1, -1, -1, -1, -1, 116, 117,
3908 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
3909 128, -1, -1, -1, -1, -1, -1, 135, 3, 4,
3910 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3911 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3912 25, 26, -1, -1, -1, 30, 31, 32, 33, 34,
3913 35, 36, 37, 38, 39, -1, -1, -1, -1, -1,
3914 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3915 -1, 56, -1, -1, -1, -1, -1, -1, -1, -1,
3916 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3917 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
3918 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3919 95, 96, -1, -1, 99, -1, -1, -1, -1, -1,
3920 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3921 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3922 125, -1, 127, 128, -1, -1, -1, -1, -1, -1,
3923 135, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3924 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3925 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
3926 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
3927 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3928 52, 53, -1, -1, 56, -1, -1, -1, -1, -1,
3929 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
3930 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
3931 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
3932 -1, -1, -1, 95, 96, -1, -1, 99, -1, -1,
3933 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3934 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121,
3935 122, 123, 124, 125, -1, 127, 128, -1, -1, -1,
3936 -1, -1, -1, 135, 3, 4, 5, 6, 7, 8,
3937 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
3938 19, 20, 21, 22, 23, 24, 25, 26, -1, -1,
3939 -1, 30, 31, 32, 33, 34, 35, 36, 37, 38,
3940 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3941 49, 50, 51, 52, 53, -1, -1, 56, -1, -1,
3942 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
3943 69, 70, 71, 72, 73, 74, -1, -1, 77, 78,
3944 -1, -1, 81, 82, 83, 84, -1, -1, -1, -1,
3945 -1, -1, -1, -1, -1, -1, 95, 96, -1, -1,
3946 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3947 -1, -1, -1, -1, -1, -1, -1, 116, 117, 118,
3948 119, 120, 121, 122, 123, 124, 125, -1, 127, 128,
3949 3, 4, 5, -1, 7, -1, 135, -1, 11, 12,
3950 -1, -1, -1, 16, -1, 18, 19, 20, 21, 22,
3951 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3952 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3953 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3954 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
3955 63, 64, -1, -1, -1, -1, -1, -1, -1, -1,
3956 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3957 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3958 93, -1, -1, -1, -1, 98, 99, 100, 101, 102,
3959 103, 104, 105, 106, -1, -1, -1, -1, -1, 3,
3960 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
3961 -1, -1, 16, 126, 18, 19, 20, 21, 22, 23,
3962 24, 134, -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, -1, 59, 60, -1, 62, 63,
3966 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3967 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3968 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3969 -1, -1, -1, -1, 98, 99, 100, 101, 102, 103,
3970 104, 105, 106, -1, -1, -1, -1, -1, 3, 4,
3971 5, 6, 7, -1, -1, -1, 11, 12, -1, -1,
3972 -1, 16, 126, 18, 19, 20, 21, 22, 23, 24,
3973 134, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3974 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3975 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3976 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
3977 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3978 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3979 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3980 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
3981 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
3982 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3983 12, 126, 127, 128, 16, -1, 18, 19, 20, 21,
3984 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3985 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3986 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3987 52, 53, 54, 55, 56, 57, 58, 59, 60, -1,
3988 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3989 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3990 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3991 92, 93, -1, 95, 96, 97, 98, 99, 100, 101,
3992 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
3993 -1, -1, -1, -1, 3, 4, 5, 6, 7, -1,
3994 -1, -1, 11, 12, 126, 127, 128, 16, -1, 18,
3995 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3996 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3997 39, -1, -1, -1, -1, -1, 45, 46, -1, 48,
3998 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3999 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
4000 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4001 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
4002 89, 90, -1, 92, 93, -1, 95, -1, -1, 98,
4003 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
4004 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
4005 -1, 7, -1, -1, -1, 11, 12, 126, 127, 128,
4006 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
4007 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4008 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
4009 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
4010 56, 57, 58, 59, 60, -1, 62, 63, 64, -1,
4011 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
4012 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4013 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
4014 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
4015 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4016 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4017 126, 127, 128, 16, -1, 18, 19, 20, 21, 22,
4018 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4019 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4020 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4021 53, 54, 55, 56, 57, 58, 59, 60, -1, 62,
4022 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
4023 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4024 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
4025 93, -1, 95, 96, -1, 98, 99, 100, 101, 102,
4026 103, 104, 105, 106, -1, -1, -1, -1, -1, -1,
4027 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4028 -1, 11, 12, 126, 127, 128, 16, -1, 18, 19,
4029 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4030 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4031 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4032 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
4033 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
4034 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4035 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
4036 90, -1, 92, 93, -1, -1, 96, 97, 98, 99,
4037 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
4038 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
4039 7, -1, -1, -1, 11, 12, 126, 127, 128, 16,
4040 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4041 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4042 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
4043 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
4044 57, 58, 59, 60, -1, 62, 63, 64, -1, 66,
4045 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4046 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
4047 -1, -1, 89, 90, -1, 92, 93, -1, 95, 96,
4048 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
4049 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4050 4, 5, -1, 7, -1, -1, -1, 11, 12, 126,
4051 127, 128, 16, -1, 18, 19, 20, 21, 22, 23,
4052 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4053 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4054 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4055 54, 55, 56, 57, 58, 59, 60, -1, 62, 63,
4056 64, -1, 66, 67, -1, -1, -1, -1, -1, -1,
4057 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4058 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
4059 -1, -1, 96, -1, 98, 99, 100, 101, 102, 103,
4060 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
4061 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4062 11, 12, 126, 127, 128, 16, -1, 18, 19, 20,
4063 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4064 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4065 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4066 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4067 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
4068 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4069 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
4070 -1, 92, 93, -1, 95, -1, -1, 98, 99, 100,
4071 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
4072 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4073 -1, -1, -1, 11, 12, 126, 127, 128, 16, -1,
4074 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4075 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4076 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4077 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4078 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
4079 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4080 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
4081 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
4082 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
4083 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
4084 5, -1, 7, -1, -1, -1, 11, 12, 126, 127,
4085 128, 16, -1, 18, 19, 20, 21, 22, 23, 24,
4086 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4087 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4088 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
4089 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
4090 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
4091 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4092 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
4093 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
4094 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
4095 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
4096 12, 126, 127, 128, 16, -1, 18, 19, 20, 21,
4097 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4098 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4099 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4100 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
4101 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
4102 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4103 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
4104 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
4105 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
4106 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4107 -1, -1, 11, 12, 126, 127, 128, 16, -1, 18,
4108 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4109 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4110 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4111 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4112 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
4113 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4114 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
4115 89, 90, -1, 92, 93, -1, 95, -1, -1, 98,
4116 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
4117 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
4118 -1, 7, -1, -1, -1, 11, 12, 126, 127, 128,
4119 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
4120 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4121 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
4122 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
4123 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
4124 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
4125 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4126 86, -1, -1, 89, 90, -1, 92, 93, -1, -1,
4127 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
4128 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4129 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4130 126, 127, 128, 16, -1, 18, 19, 20, 21, 22,
4131 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4132 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4133 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4134 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
4135 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
4136 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4137 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
4138 93, -1, -1, -1, -1, 98, 99, 100, 101, 102,
4139 103, 104, 105, 106, -1, -1, -1, -1, -1, -1,
4140 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4141 -1, 11, 12, 126, 127, 128, 16, -1, 18, 19,
4142 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4143 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4144 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4145 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4146 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
4147 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4148 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
4149 90, -1, 92, 93, -1, -1, -1, -1, 98, 99,
4150 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
4151 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
4152 7, -1, -1, -1, 11, 12, 126, 127, 128, 16,
4153 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4154 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4155 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
4156 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
4157 57, -1, 59, 60, -1, 62, 63, 64, -1, -1,
4158 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4159 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
4160 -1, -1, 89, 90, -1, 92, 93, -1, 95, -1,
4161 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
4162 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4163 -1, -1, -1, 11, 12, -1, -1, -1, 16, 126,
4164 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4165 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4166 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4167 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4168 -1, 59, 60, -1, 62, 63, 64, -1, -1, -1,
4169 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4170 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
4171 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
4172 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
4173 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4174 -1, -1, 11, 12, -1, -1, -1, 16, 126, 18,
4175 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4176 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4177 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4178 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4179 59, 60, -1, 62, 63, 64, -1, -1, -1, -1,
4180 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4181 -1, -1, -1, -1, 83, -1, -1, 86, -1, -1,
4182 89, 90, -1, 92, 93, -1, -1, -1, -1, 98,
4183 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
4184 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4185 -1, 11, 12, -1, -1, -1, 16, 126, 18, 19,
4186 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4187 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4188 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4189 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4190 60, -1, 62, 63, 64, -1, -1, -1, -1, -1,
4191 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4192 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
4193 90, -1, 92, 93, -1, -1, -1, -1, 98, 99,
4194 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
4195 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4196 11, 12, -1, -1, -1, 16, 126, 18, 19, 20,
4197 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4198 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4199 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4200 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4201 -1, 62, 63, 64, -1, -1, -1, -1, -1, -1,
4202 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4203 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
4204 -1, 92, 93, -1, -1, -1, -1, 98, 99, 100,
4205 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
4206 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
4207 12, -1, -1, -1, 16, 126, 18, 19, 20, 21,
4208 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4209 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4210 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4211 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
4212 62, 63, 64, -1, -1, -1, -1, -1, -1, -1,
4213 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4214 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
4215 92, 93, -1, -1, -1, -1, 98, 99, 100, 101,
4216 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
4217 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4218 -1, -1, -1, 16, 126, 18, 19, 20, 21, 22,
4219 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4220 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4221 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4222 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
4223 63, 64, -1, -1, -1, -1, -1, -1, -1, -1,
4224 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4225 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
4226 93, -1, -1, -1, -1, 98, 99, 100, 101, 102,
4227 103, 104, 105, 106, -1, -1, -1, -1, -1, -1,
4228 52, 53, -1, -1, 56, -1, -1, -1, -1, -1,
4229 -1, -1, -1, 126, 66, 67, 68, 69, 70, 71,
4230 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
4231 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
4232 -1, -1, -1, 95, 96, -1, -1, -1, -1, -1,
4233 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4234 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121,
4235 122, 123, 124, 125, -1, 127, 128, 52, 53, -1,
4236 -1, 56, -1, 135, -1, -1, -1, -1, -1, -1,
4237 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
4238 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
4239 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4240 95, 96, -1, -1, -1, -1, -1, -1, -1, -1,
4241 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4242 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
4243 125, -1, 127, 128, 52, 53, -1, -1, 56, -1,
4244 135, -1, -1, -1, -1, -1, -1, -1, 66, 67,
4245 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
4246 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
4247 -1, -1, -1, -1, -1, -1, -1, 95, 96, -1,
4248 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4249 -1, -1, -1, -1, -1, -1, -1, -1, 116, 117,
4250 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
4251 128, 52, 53, -1, -1, 56, -1, 135, -1, -1,
4252 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
4253 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
4254 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
4255 -1, -1, -1, -1, 95, 96, -1, -1, -1, -1,
4256 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4257 -1, -1, -1, -1, -1, 116, 117, 118, 119, 120,
4258 121, 122, 123, 124, 125, -1, 127, 128, 52, 53,
4259 -1, -1, 56, -1, 135, -1, -1, -1, -1, -1,
4260 -1, -1, 66, 67, 68, 69, 70, 71, 72, 73,
4261 74, -1, -1, 77, 78, -1, -1, 81, 82, 83,
4262 84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4263 -1, 95, 96, -1, -1, -1, -1, -1, -1, -1,
4264 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4265 -1, -1, 116, 117, 118, 119, 120, 121, 122, 123,
4266 124, 125, -1, 127, 128, 52, 53, -1, -1, 56,
4267 -1, 135, -1, -1, -1, -1, -1, -1, -1, 66,
4268 67, 68, 69, 70, 71, 72, 73, 74, -1, -1,
4269 77, 78, -1, -1, 81, 82, 83, 84, -1, -1,
4270 -1, -1, -1, -1, -1, -1, -1, -1, 95, 96,
4271 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4272 -1, -1, -1, -1, -1, -1, -1, -1, -1, 116,
4273 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
4274 127, 128, 52, 53, -1, -1, 56, -1, 135, -1,
4275 -1, -1, -1, -1, -1, -1, 66, 67, 68, 69,
4276 70, 71, 72, 73, 74, -1, -1, 77, 78, -1,
4277 -1, 81, 82, 83, 84, -1, -1, -1, -1, -1,
4278 -1, -1, -1, -1, -1, 95, 96, -1, -1, -1,
4279 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4280 -1, -1, -1, -1, -1, -1, 116, 117, 118, 119,
4281 120, 121, 122, 123, 124, 125, -1, 127, 128, 52,
4282 53, -1, -1, 56, -1, 135, -1, -1, -1, -1,
4283 -1, -1, -1, 66, 67, 68, 69, 70, 71, 72,
4284 73, 74, -1, -1, 77, 78, -1, -1, 81, 82,
4285 83, 84, -1, -1, -1, -1, -1, -1, -1, -1,
4286 -1, -1, 95, 96, -1, -1, -1, -1, -1, -1,
4287 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4288 -1, -1, -1, 116, 117, 118, 119, 120, 121, 122,
4289 123, 124, 125, -1, 127, 128, 52, 53, -1, -1,
4290 56, -1, 135, -1, -1, -1, -1, -1, -1, -1,
4291 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
4292 -1, 77, 78, -1, -1, 81, 82, 83, 84, -1,
4293 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
4294 96, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4295 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4296 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
4297 -1, 127, 128, 52, 53, -1, -1, 56, -1, 135,
4298 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
4299 69, 70, 71, 72, 73, 74, -1, -1, 77, 78,
4300 -1, -1, 81, 82, 83, 84, -1, -1, -1, -1,
4301 -1, -1, -1, -1, -1, -1, 95, 96, -1, -1,
4302 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4303 -1, -1, -1, -1, -1, -1, -1, 116, 117, 118,
4304 119, 120, 121, 122, 123, 124, 125, -1, 127, 128,
4305 52, 53, -1, -1, 56, -1, 135, -1, -1, -1,
4306 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
4307 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
4308 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
4309 -1, -1, -1, 95, 96, -1, -1, -1, -1, -1,
4310 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4311 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121,
4312 122, 123, 124, 125, -1, 127, 128, 52, 53, -1,
4313 -1, 56, -1, 135, -1, -1, -1, -1, -1, -1,
4314 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
4315 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
4316 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4317 95, 96, -1, -1, -1, -1, -1, -1, -1, -1,
4318 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4319 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
4320 125, -1, 127, 128, 52, 53, -1, -1, 56, -1,
4321 135, -1, -1, -1, -1, -1, -1, -1, 66, 67,
4322 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
4323 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
4324 -1, -1, -1, -1, -1, -1, -1, 95, 96, 68,
4325 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
4326 79, 80, -1, -1, 83, 84, -1, -1, 116, 117,
4327 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
4328 128, -1, -1, -1, -1, -1, -1, 135, -1, -1,
4329 -1, -1, -1, -1, -1, 114, -1, 116, 117, 118,
4330 119, 120, 121, 122, 123, 124, 125, -1, -1, -1,
4331 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4339 0, 143, 144, 0, 1, 3, 4, 5, 6, 7,
4340 11, 12, 16, 18, 19, 20, 21, 22, 23, 24,
4341 30, 31, 32, 33, 34, 35, 36, 39, 45, 46,
4342 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4343 57, 59, 60, 62, 63, 64, 66, 67, 86, 89,
4344 90, 92, 93, 95, 98, 99, 100, 101, 102, 103,
4345 104, 105, 106, 126, 127, 128, 145, 146, 147, 154,
4346 156, 157, 159, 160, 163, 164, 165, 167, 168, 169,
4347 171, 172, 182, 196, 214, 215, 216, 217, 218, 219,
4348 220, 221, 222, 223, 224, 249, 250, 264, 265, 266,
4349 267, 268, 269, 270, 273, 275, 276, 288, 290, 291,
4350 292, 293, 294, 295, 296, 327, 338, 147, 3, 4,
4351 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
4352 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
4353 25, 26, 30, 31, 32, 33, 34, 35, 36, 37,
4354 38, 39, 45, 46, 47, 48, 49, 50, 51, 52,
4355 53, 56, 66, 67, 68, 69, 70, 71, 72, 73,
4356 74, 77, 78, 81, 82, 83, 84, 95, 96, 116,
4357 117, 118, 119, 120, 121, 122, 123, 124, 125, 127,
4358 128, 135, 175, 176, 177, 178, 180, 181, 288, 290,
4359 39, 58, 86, 89, 95, 96, 97, 127, 164, 172,
4360 182, 184, 189, 192, 194, 214, 292, 293, 295, 296,
4361 325, 326, 189, 189, 136, 190, 191, 136, 186, 190,
4362 136, 141, 332, 54, 177, 332, 148, 130, 21, 22,
4363 30, 31, 32, 163, 182, 214, 182, 56, 1, 47,
4364 89, 150, 151, 152, 154, 166, 167, 338, 157, 198,
4365 185, 194, 325, 338, 184, 324, 325, 338, 46, 86,
4366 126, 134, 171, 196, 214, 292, 293, 296, 242, 243,
4367 54, 55, 57, 175, 280, 289, 279, 280, 281, 140,
4368 271, 140, 277, 140, 274, 140, 278, 59, 60, 159,
4369 182, 182, 139, 141, 331, 336, 337, 40, 41, 42,
4370 43, 44, 37, 38, 26, 130, 186, 190, 255, 28,
4371 247, 113, 134, 89, 95, 168, 113, 68, 69, 70,
4372 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
4373 83, 84, 114, 116, 117, 118, 119, 120, 121, 122,
4374 123, 124, 125, 85, 132, 133, 197, 157, 158, 158,
4375 201, 203, 158, 331, 337, 86, 165, 172, 214, 230,
4376 292, 293, 296, 52, 56, 83, 86, 173, 174, 214,
4377 292, 293, 296, 174, 33, 34, 35, 36, 49, 50,
4378 51, 52, 56, 136, 175, 294, 322, 85, 133, 330,
4379 255, 267, 87, 87, 134, 184, 56, 184, 184, 184,
4380 113, 88, 134, 193, 338, 85, 132, 133, 87, 87,
4381 134, 193, 189, 332, 333, 189, 188, 189, 194, 325,
4382 338, 157, 333, 157, 54, 63, 64, 155, 136, 183,
4383 130, 150, 85, 133, 87, 154, 153, 166, 137, 331,
4384 337, 333, 199, 333, 138, 134, 141, 335, 134, 335,
4385 131, 335, 332, 56, 59, 60, 168, 170, 134, 85,
4386 132, 133, 244, 61, 107, 109, 110, 282, 110, 282,
4387 110, 65, 282, 110, 110, 272, 282, 110, 61, 110,
4388 110, 110, 272, 110, 61, 110, 68, 68, 139, 147,
4389 158, 158, 158, 158, 154, 157, 157, 257, 256, 94,
4390 161, 248, 95, 159, 184, 194, 195, 166, 134, 171,
4391 134, 156, 159, 172, 182, 184, 195, 182, 182, 182,
4392 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
4393 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
4394 182, 182, 182, 52, 53, 56, 180, 254, 328, 329,
4395 188, 52, 53, 56, 180, 253, 328, 149, 150, 13,
4396 226, 336, 226, 158, 158, 331, 17, 258, 56, 85,
4397 132, 133, 25, 157, 52, 56, 173, 1, 117, 297,
4398 336, 85, 132, 133, 210, 323, 211, 330, 52, 56,
4399 328, 159, 182, 159, 182, 179, 182, 184, 95, 184,
4400 192, 325, 52, 56, 188, 52, 56, 326, 333, 137,
4401 333, 134, 134, 333, 177, 200, 182, 145, 131, 328,
4402 328, 182, 130, 333, 152, 333, 325, 134, 170, 52,
4403 56, 188, 52, 56, 52, 54, 55, 56, 57, 58,
4404 68, 89, 95, 96, 97, 120, 123, 136, 245, 300,
4405 302, 303, 304, 305, 306, 307, 310, 311, 312, 313,
4406 316, 317, 318, 319, 320, 284, 283, 140, 282, 140,
4407 140, 140, 182, 182, 76, 118, 237, 238, 338, 237,
4408 162, 237, 184, 134, 333, 170, 134, 113, 44, 332,
4409 87, 87, 186, 190, 252, 332, 334, 87, 87, 186,
4410 190, 251, 10, 225, 8, 260, 338, 150, 13, 150,
4411 27, 227, 336, 227, 258, 194, 225, 52, 56, 188,
4412 52, 56, 205, 208, 336, 298, 207, 52, 56, 173,
4413 188, 149, 157, 136, 299, 302, 212, 186, 187, 190,
4414 338, 44, 177, 184, 193, 87, 87, 334, 87, 87,
4415 325, 157, 131, 145, 335, 168, 334, 113, 184, 52,
4416 89, 95, 231, 232, 233, 304, 302, 29, 111, 246,
4417 134, 301, 134, 321, 338, 52, 134, 321, 134, 301,
4418 52, 134, 301, 52, 285, 54, 55, 57, 287, 296,
4419 52, 58, 234, 236, 239, 306, 308, 309, 312, 314,
4420 315, 318, 320, 332, 150, 150, 237, 150, 95, 184,
4421 170, 182, 115, 159, 182, 159, 182, 161, 186, 138,
4422 87, 159, 182, 159, 182, 161, 187, 184, 195, 261,
4423 338, 15, 229, 338, 14, 228, 229, 229, 202, 204,
4424 225, 134, 226, 334, 158, 336, 158, 149, 334, 225,
4425 333, 302, 149, 336, 175, 255, 247, 182, 87, 134,
4426 333, 131, 184, 233, 134, 304, 134, 333, 239, 150,
4427 150, 300, 305, 316, 318, 307, 312, 320, 306, 313,
4428 318, 306, 286, 113, 86, 214, 239, 118, 134, 235,
4429 134, 321, 321, 134, 235, 134, 235, 139, 10, 131,
4430 150, 10, 184, 182, 159, 182, 88, 262, 338, 150,
4431 9, 263, 338, 158, 225, 225, 150, 150, 184, 150,
4432 227, 209, 336, 225, 333, 225, 213, 333, 232, 134,
4433 95, 231, 137, 10, 131, 134, 301, 134, 301, 321,
4434 134, 301, 134, 301, 301, 150, 214, 56, 85, 118,
4435 234, 315, 318, 308, 312, 306, 314, 318, 306, 52,
4436 240, 241, 303, 131, 86, 172, 214, 292, 293, 296,
4437 226, 150, 226, 225, 225, 229, 258, 259, 206, 149,
4438 299, 134, 232, 134, 304, 306, 318, 306, 306, 108,
4439 52, 56, 134, 235, 134, 235, 321, 134, 235, 134,
4440 235, 235, 134, 332, 56, 85, 132, 133, 150, 150,
4441 150, 225, 149, 232, 134, 301, 134, 301, 301, 301,
4442 306, 318, 306, 306, 241, 52, 56, 188, 52, 56,
4443 260, 228, 225, 225, 232, 306, 235, 134, 235, 235,
4444 235, 334, 301, 306, 235
4447 #define yyerrok (yyerrstatus = 0)
4448 #define yyclearin (yychar = YYEMPTY)
4449 #define YYEMPTY (-2)
4452 #define YYACCEPT goto yyacceptlab
4453 #define YYABORT goto yyabortlab
4454 #define YYERROR goto yyerrorlab
4461 #define YYFAIL goto yyerrlab
4463 #define YYRECOVERING() (!!yyerrstatus)
4465 #define YYBACKUP(Token, Value) \
4467 if (yychar == YYEMPTY && yylen == 1) \
4471 yytoken = YYTRANSLATE (yychar); \
4477 parser_yyerror (parser, YY_("syntax error: cannot back up")); \
4484 #define YYERRCODE 256
4491 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
4492 #ifndef YYLLOC_DEFAULT
4493 # define YYLLOC_DEFAULT(Current, Rhs, N) \
4497 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
4498 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
4499 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
4500 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
4504 (Current).first_line = (Current).last_line = \
4505 YYRHSLOC (Rhs, 0).last_line; \
4506 (Current).first_column = (Current).last_column = \
4507 YYRHSLOC (Rhs, 0).last_column; \
4517 #ifndef YY_LOCATION_PRINT
4518 # if YYLTYPE_IS_TRIVIAL
4519 # define YY_LOCATION_PRINT(File, Loc) \
4520 fprintf (File, "%d.%d-%d.%d", \
4521 (Loc).first_line, (Loc).first_column, \
4522 (Loc).last_line, (Loc).last_column)
4524 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
4532 # define YYLEX yylex (&yylval, YYLEX_PARAM)
4534 # define YYLEX yylex (&yylval)
4542 # define YYFPRINTF fprintf
4545 # define YYDPRINTF(Args) \
4551 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
4555 YYFPRINTF (stderr, "%s ", Title); \
4556 yy_symbol_print (stderr, \
4557 Type, Value, parser); \
4558 YYFPRINTF (stderr, "\n"); \
4568 #if (defined __STDC__ || defined __C99__FUNC__ \
4569 || defined __cplusplus || defined _MSC_VER)
4586 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
4602 #if (defined __STDC__ || defined __C99__FUNC__ \
4603 || defined __cplusplus || defined _MSC_VER)
4608 yy_symbol_print (yyoutput, yytype, yyvaluep, parser)
4616 YYFPRINTF (yyoutput,
"token %s (", yytname[yytype]);
4618 YYFPRINTF (yyoutput,
"nterm %s (", yytname[yytype]);
4629 #if (defined __STDC__ || defined __C99__FUNC__ \
4630 || defined __cplusplus || defined _MSC_VER)
4632 yy_stack_print (yytype_int16 *
bottom, yytype_int16 *
top)
4635 yy_stack_print (bottom, top)
4636 yytype_int16 *bottom;
4646 # define YY_STACK_PRINT(Bottom, Top) \
4649 yy_stack_print ((Bottom), (Top)); \
4657 #if (defined __STDC__ || defined __C99__FUNC__ \
4658 || defined __cplusplus || defined _MSC_VER)
4663 yy_reduce_print (yyvsp, yyrule, parser)
4669 int yynrhs = yyr2[
yyrule];
4672 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu):\n",
4675 for (yyi = 0; yyi < yynrhs; yyi++)
4677 fprintf (stderr,
" $%d = ", yyi + 1);
4678 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
4679 &(yyvsp[(yyi + 1) - (yynrhs)])
4681 fprintf (stderr,
"\n");
4685 # define YY_REDUCE_PRINT(Rule) \
4688 yy_reduce_print (yyvsp, Rule, parser); \
4697 # define YYDPRINTF(Args)
4698 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
4699 # define YY_STACK_PRINT(Bottom, Top)
4700 # define YY_REDUCE_PRINT(Rule)
4706 # define YYINITDEPTH 200
4717 # define YYMAXDEPTH 10000
4725 # if defined __GLIBC__ && defined _STRING_H
4726 # define yystrlen strlen
4729 #if (defined __STDC__ || defined __C99__FUNC__ \
4730 || defined __cplusplus || defined _MSC_VER)
4732 yystrlen (
const char *
yystr)
4740 for (yylen = 0; yystr[
yylen]; yylen++)
4748 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4749 # define yystpcpy stpcpy
4753 #if (defined __STDC__ || defined __C99__FUNC__ \
4754 || defined __cplusplus || defined _MSC_VER)
4759 yystpcpy (yydest, yysrc)
4767 while ((*yyd++ = *yys++) !=
'\0')
4789 char const *yyp =
yystr;
4796 goto do_not_strip_quotes;
4800 goto do_not_strip_quotes;
4813 do_not_strip_quotes: ;
4817 return yystrlen (yystr);
4819 return yystpcpy (yyres, yystr) - yyres;
4843 int yysize_overflow = 0;
4844 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
4845 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
4851 YY_(
"syntax error, unexpected %s");
4852 YY_(
"syntax error, unexpected %s, expecting %s");
4853 YY_(
"syntax error, unexpected %s, expecting %s or %s");
4854 YY_(
"syntax error, unexpected %s, expecting %s or %s or %s");
4855 YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s");
4859 static char const yyunexpected[] =
"syntax error, unexpected %s";
4860 static char const yyexpecting[] =
", expecting %s";
4861 static char const yyor[] =
" or %s";
4862 char yyformat[
sizeof yyunexpected
4863 +
sizeof yyexpecting - 1
4864 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
4865 * (
sizeof yyor - 1))];
4866 char const *yyprefix = yyexpecting;
4870 int yyxbegin = yyn < 0 ? -yyn : 0;
4873 int yychecklim =
YYLAST - yyn + 1;
4877 yyarg[0] = yytname[
yytype];
4878 yyfmt = yystpcpy (yyformat, yyunexpected);
4880 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
4881 if (yycheck[yyx + yyn] == yyx && yyx !=
YYTERROR)
4883 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
4887 yyformat[
sizeof yyunexpected - 1] =
'\0';
4890 yyarg[yycount++] = yytname[yyx];
4891 yysize1 = yysize +
yytnamerr (0, yytname[yyx]);
4892 yysize_overflow |= (yysize1 < yysize);
4894 yyfmt = yystpcpy (yyfmt, yyprefix);
4898 yyf =
YY_(yyformat);
4899 yysize1 = yysize + yystrlen (yyf);
4900 yysize_overflow |= (yysize1 < yysize);
4903 if (yysize_overflow)
4913 while ((*yyp = *yyf) !=
'\0')
4915 if (*yyp ==
'%' && yyf[1] ==
's' && yyi < yycount)
4938 #if (defined __STDC__ || defined __C99__FUNC__ \
4939 || defined __cplusplus || defined _MSC_VER)
4944 yydestruct (yymsg, yytype, yyvaluep, parser)
4969 #ifdef YYPARSE_PARAM
4970 #if defined __STDC__ || defined __cplusplus
4971 int yyparse (
void *YYPARSE_PARAM);
4976 #if defined __STDC__ || defined __cplusplus
4992 #ifdef YYPARSE_PARAM
4993 #if (defined __STDC__ || defined __C99__FUNC__ \
4994 || defined __cplusplus || defined _MSC_VER)
5000 void *YYPARSE_PARAM;
5003 #if (defined __STDC__ || defined __C99__FUNC__ \
5004 || defined __cplusplus || defined _MSC_VER)
5057 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
5070 YYDPRINTF ((stderr,
"Starting parse\n"));
5098 if (yyss + yystacksize - 1 <= yyssp)
5101 YYSIZE_T yysize = yyssp - yyss + 1;
5109 yytype_int16 *yyss1 =
yyss;
5116 yyoverflow (
YY_(
"memory exhausted"),
5117 &yyss1, yysize *
sizeof (*yyssp),
5118 &yyvs1, yysize *
sizeof (*yyvsp),
5126 # ifndef YYSTACK_RELOCATE
5137 yytype_int16 *yyss1 =
yyss;
5145 # undef YYSTACK_RELOCATE
5152 yyssp = yyss + yysize - 1;
5153 yyvsp = yyvs + yysize - 1;
5156 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
5157 (
unsigned long int) yystacksize));
5159 if (yyss + yystacksize - 1 <= yyssp)
5163 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
5185 YYDPRINTF ((stderr,
"Reading a token: "));
5191 yychar = yytoken =
YYEOF;
5192 YYDPRINTF ((stderr,
"Now at end of input.\n"));
5203 if (yyn < 0 ||
YYLAST < yyn || yycheck[yyn] != yytoken)
5226 if (yychar !=
YYEOF)
5260 yyval = yyvsp[1-
yylen];
5267 #line 850 "ripper.y"
5279 #line 859 "ripper.y"
5286 NODE *node = (yyvsp[(2) - (2)].
val);
5287 while (node->nd_next) {
5288 node = node->nd_next;
5295 (yyval.
val) = (yyvsp[(2) - (2)].
val);
5296 parser->result = dispatch1(program, (yyval.
val));
5303 #line 882 "ripper.y"
5310 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5315 #line 893 "ripper.y"
5320 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new),
5327 #line 902 "ripper.y"
5332 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5338 #line 910 "ripper.y"
5343 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5349 #line 918 "ripper.y"
5356 #line 925 "ripper.y"
5366 #line 932 "ripper.y"
5370 (yyvsp[(4) - (5)].
val));
5375 (yyval.
val) = dispatch1(BEGIN, (yyvsp[(4) - (5)].
val));
5381 #line 949 "ripper.y"
5384 (yyval.
val) = (yyvsp[(1) - (4)].
val);
5385 if ((yyvsp[(2) - (4)].
val)) {
5388 else if ((yyvsp[(3) - (4)].
val)) {
5389 rb_warn0(
"else without rescue is useless");
5392 if ((yyvsp[(4) - (4)].
val)) {
5412 #line 979 "ripper.y"
5419 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5424 #line 990 "ripper.y"
5429 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new),
5436 #line 999 "ripper.y"
5441 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5447 #line 1007 "ripper.y"
5452 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5458 #line 1015 "ripper.y"
5465 #line 1021 "ripper.y"
5467 (yyval.
val) = (yyvsp[(1) - (1)].
val);
5472 #line 1025 "ripper.y"
5474 yyerror(
"BEGIN is permitted only at toplevel");
5483 #line 1033 "ripper.y"
5487 (yyvsp[(4) - (5)].
val));
5492 (yyval.
val) = dispatch1(BEGIN, (yyvsp[(4) - (5)].
val));
5498 #line 1045 "ripper.y"
5503 #line 1046 "ripper.y"
5508 (yyval.
val) = dispatch2(
alias, (yyvsp[(2) - (4)].
val), (yyvsp[(4) - (4)].
val));
5514 #line 1054 "ripper.y"
5519 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5525 #line 1062 "ripper.y"
5530 buf[1] = (char)(yyvsp[(3) - (3)].
val)->nd_nth;
5533 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5539 #line 1073 "ripper.y"
5542 yyerror(
"can't make alias for the number variables");
5545 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5546 (yyval.
val) = dispatch1(alias_error, (yyval.
val));
5552 #line 1083 "ripper.y"
5555 (yyval.
val) = (yyvsp[(2) - (2)].
val);
5557 (yyval.
val) = dispatch1(undef, (yyvsp[(2) - (2)].
val));
5563 #line 1091 "ripper.y"
5569 (yyval.
val) = dispatch2(if_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5575 #line 1100 "ripper.y"
5581 (yyval.
val) = dispatch2(unless_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5587 #line 1109 "ripper.y"
5597 (yyval.
val) = dispatch2(while_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5603 #line 1122 "ripper.y"
5613 (yyval.
val) = dispatch2(until_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5619 #line 1135 "ripper.y"
5625 (yyval.
val) = dispatch2(rescue_mod, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5631 #line 1144 "ripper.y"
5634 rb_warn0(
"END in method; use at_exit");
5640 (yyval.
val) = dispatch1(
END, (yyvsp[(3) - (4)].
val));
5646 #line 1157 "ripper.y"
5651 (yyval.
val) = (yyvsp[(1) - (3)].
val);
5653 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5659 #line 1167 "ripper.y"
5667 #line 1172 "ripper.y"
5675 if ((yyvsp[(5) - (6)].
val) ==
tOROP) {
5676 (yyvsp[(5) - (6)].
val) = 0;
5678 else if ((yyvsp[(5) - (6)].
val) ==
tANDOP) {
5679 (yyvsp[(5) - (6)].
val) = 1;
5685 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].
val));
5691 #line 1193 "ripper.y"
5699 #line 1198 "ripper.y"
5707 #line 1203 "ripper.y"
5713 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
5714 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
5720 #line 1213 "ripper.y"
5728 #line 1218 "ripper.y"
5734 (yyval.
val) = dispatch2(assign, dispatch1(var_field, (yyvsp[(1) - (3)].
val)), (yyvsp[(3) - (3)].
val));
5735 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
5741 #line 1228 "ripper.y"
5747 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5753 #line 1237 "ripper.y"
5757 (yyval.
val) = (yyvsp[(1) - (3)].
val);
5759 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5765 #line 1246 "ripper.y"
5769 (yyval.
val) = (yyvsp[(1) - (3)].
val);
5771 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5777 #line 1258 "ripper.y"
5783 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5789 #line 1267 "ripper.y"
5795 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5801 #line 1280 "ripper.y"
5812 #line 1288 "ripper.y"
5823 #line 1296 "ripper.y"
5834 #line 1304 "ripper.y"
5839 (yyval.
val) = dispatch2(unary, ripper_id2sym(
'!'), (yyvsp[(2) - (2)].
val));
5845 #line 1315 "ripper.y"
5849 (yyval.
val) = (yyvsp[(1) - (1)].
val);
5852 (yyval.
val) = (yyvsp[(1) - (1)].
val);
5858 #line 1332 "ripper.y"
5861 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
5863 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), (yyvsp[(2) - (4)].
val), (yyvsp[(3) - (4)].
val));
5864 (yyval.
val) = method_arg((yyval.
val), (yyvsp[(4) - (4)].
val));
5870 #line 1343 "ripper.y"
5881 #line 1353 "ripper.y"
5894 #line 1365 "ripper.y"
5905 #line 1375 "ripper.y"
5908 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5911 (yyval.
val) = dispatch2(command, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
5917 #line 1384 "ripper.y"
5923 (yyval.
val) = (yyvsp[(3) - (3)].
val);
5926 (yyval.
val) = dispatch2(command, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
5927 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(3) - (3)].
val));
5933 #line 1397 "ripper.y"
5936 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
5939 (yyval.
val) = dispatch4(
command_call, (yyvsp[(1) - (4)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
5945 #line 1406 "ripper.y"
5950 (yyval.
val) = (yyvsp[(5) - (5)].
val);
5953 (yyval.
val) = dispatch4(
command_call, (yyvsp[(1) - (5)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
5954 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
5960 #line 1418 "ripper.y"
5963 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
5972 #line 1427 "ripper.y"
5977 (yyval.
val) = (yyvsp[(5) - (5)].
val);
5981 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
5987 #line 1439 "ripper.y"
5993 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].
val));
5999 #line 1448 "ripper.y"
6005 (yyval.
val) = dispatch1(yield, (yyvsp[(2) - (2)].
val));
6011 #line 1457 "ripper.y"
6016 (yyval.
val) = dispatch1(
return, (yyvsp[(2) - (2)].
val));
6022 #line 1465 "ripper.y"
6027 (yyval.
val) = dispatch1(
break, (yyvsp[(2) - (2)].
val));
6033 #line 1473 "ripper.y"
6038 (yyval.
val) = dispatch1(next, (yyvsp[(2) - (2)].
val));
6044 #line 1484 "ripper.y"
6047 (yyval.
val) = (yyvsp[(2) - (3)].
val);
6049 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6055 #line 1495 "ripper.y"
6060 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6066 #line 1505 "ripper.y"
6071 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6077 #line 1513 "ripper.y"
6082 (yyval.
val) = mlhs_add((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
6088 #line 1521 "ripper.y"
6093 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6099 #line 1529 "ripper.y"
6104 (yyvsp[(1) - (5)].
val) = mlhs_add_star((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
6105 (yyval.
val) = mlhs_add((yyvsp[(1) - (5)].
val), (yyvsp[(5) - (5)].
val));
6111 #line 1538 "ripper.y"
6116 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (2)].
val),
Qnil);
6122 #line 1546 "ripper.y"
6127 (yyvsp[(1) - (4)].
val) = mlhs_add_star((yyvsp[(1) - (4)].
val),
Qnil);
6128 (yyval.
val) = mlhs_add((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val));
6134 #line 1555 "ripper.y"
6139 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (2)].
val));
6145 #line 1563 "ripper.y"
6150 (yyvsp[(2) - (4)].
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (4)].
val));
6151 (yyval.
val) = mlhs_add((yyvsp[(2) - (4)].
val), (yyvsp[(4) - (4)].
val));
6157 #line 1572 "ripper.y"
6162 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6168 #line 1580 "ripper.y"
6173 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6174 (yyval.
val) = mlhs_add((yyval.
val), (yyvsp[(3) - (3)].
val));
6180 #line 1592 "ripper.y"
6183 (yyval.
val) = (yyvsp[(2) - (3)].
val);
6185 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6191 #line 1602 "ripper.y"
6196 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (2)].
val));
6202 #line 1610 "ripper.y"
6207 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
6213 #line 1620 "ripper.y"
6218 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
6224 #line 1628 "ripper.y"
6229 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6235 #line 1638 "ripper.y"
6242 #line 1642 "ripper.y"
6249 #line 1646 "ripper.y"
6260 #line 1654 "ripper.y"
6265 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6271 #line 1662 "ripper.y"
6276 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6282 #line 1670 "ripper.y"
6287 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6293 #line 1678 "ripper.y"
6297 yyerror(
"dynamic constant assignment");
6301 yyerror(
"dynamic constant assignment");
6302 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6308 #line 1690 "ripper.y"
6312 yyerror(
"dynamic constant assignment");
6315 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (2)].
val));
6321 #line 1700 "ripper.y"
6327 (yyval.
val) = dispatch1(var_field, (yyvsp[(1) - (1)].
val));
6328 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6334 #line 1712 "ripper.y"
6340 (yyval.
val) = dispatch1(var_field, (yyval.
val));
6346 #line 1721 "ripper.y"
6352 (yyval.
val) = dispatch1(var_field, (yyval.
val));
6358 #line 1730 "ripper.y"
6369 #line 1738 "ripper.y"
6374 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6380 #line 1746 "ripper.y"
6391 #line 1754 "ripper.y"
6396 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6402 #line 1762 "ripper.y"
6406 yyerror(
"dynamic constant assignment");
6409 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6411 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6418 #line 1775 "ripper.y"
6422 yyerror(
"dynamic constant assignment");
6425 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (2)].
val));
6427 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6434 #line 1788 "ripper.y"
6440 (yyval.
val) = dispatch1(assign_error, (yyvsp[(1) - (1)].
val));
6446 #line 1799 "ripper.y"
6449 yyerror(
"class/module name must be CONSTANT");
6451 (yyval.
val) = dispatch1(class_name_error, (yyvsp[(1) - (1)].
val));
6457 #line 1810 "ripper.y"
6462 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].
val));
6468 #line 1818 "ripper.y"
6473 (yyval.
val) = dispatch1(const_ref, (yyvsp[(1) - (1)].
val));
6479 #line 1826 "ripper.y"
6484 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6490 #line 1839 "ripper.y"
6493 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6498 #line 1844 "ripper.y"
6502 (yyval.
val) = (yyvsp[(1) - (1)].
id);
6504 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6510 #line 1859 "ripper.y"
6515 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].
val));
6521 #line 1870 "ripper.y"
6532 #line 1877 "ripper.y"
6537 #line 1878 "ripper.y"
6548 #line 1887 "ripper.y"
6553 #line 1888 "ripper.y"
6558 #line 1889 "ripper.y"
6563 #line 1890 "ripper.y"
6568 #line 1891 "ripper.y"
6573 #line 1892 "ripper.y"
6578 #line 1893 "ripper.y"
6583 #line 1894 "ripper.y"
6588 #line 1895 "ripper.y"
6593 #line 1896 "ripper.y"
6598 #line 1897 "ripper.y"
6603 #line 1898 "ripper.y"
6608 #line 1899 "ripper.y"
6613 #line 1900 "ripper.y"
6618 #line 1901 "ripper.y"
6623 #line 1902 "ripper.y"
6628 #line 1903 "ripper.y"
6633 #line 1904 "ripper.y"
6638 #line 1905 "ripper.y"
6643 #line 1906 "ripper.y"
6648 #line 1907 "ripper.y"
6653 #line 1908 "ripper.y"
6658 #line 1909 "ripper.y"
6663 #line 1910 "ripper.y"
6668 #line 1911 "ripper.y"
6673 #line 1912 "ripper.y"
6678 #line 1913 "ripper.y"
6683 #line 1914 "ripper.y"
6688 #line 1915 "ripper.y"
6693 #line 1916 "ripper.y"
6698 #line 1934 "ripper.y"
6704 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6710 #line 1943 "ripper.y"
6717 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (5)].
val), dispatch2(rescue_mod, (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val)));
6723 #line 1953 "ripper.y"
6731 #line 1958 "ripper.y"
6737 (yyvsp[(3) - (5)].
val) = dispatch2(rescue_mod, (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
6744 #line 1968 "ripper.y"
6757 if ((yyvsp[(5) - (6)].
val) ==
tOROP) {
6758 (yyvsp[(5) - (6)].
val) = 0;
6760 else if ((yyvsp[(5) - (6)].
val) ==
tANDOP) {
6761 (yyvsp[(5) - (6)].
val) = 1;
6766 (yyvsp[(1) - (6)].
val) = dispatch2(aref_field, (yyvsp[(1) - (6)].
val),
escape_Qundef((yyvsp[(3) - (6)].
val)));
6767 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (6)].
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].
val));
6773 #line 1994 "ripper.y"
6781 #line 1999 "ripper.y"
6789 #line 2004 "ripper.y"
6797 #line 2009 "ripper.y"
6803 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
6804 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
6810 #line 2019 "ripper.y"
6816 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (4)].
val));
6817 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
6823 #line 2029 "ripper.y"
6829 (yyval.
val) = dispatch1(var_field, (yyvsp[(1) - (3)].
val));
6830 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
6831 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6837 #line 2040 "ripper.y"
6848 (yyval.
val) = dispatch2(dot2, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6854 #line 2054 "ripper.y"
6865 (yyval.
val) = dispatch2(dot3, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6871 #line 2068 "ripper.y"
6876 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'+'), (yyvsp[(3) - (3)].
val));
6882 #line 2076 "ripper.y"
6887 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'-'), (yyvsp[(3) - (3)].
val));
6893 #line 2084 "ripper.y"
6898 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'*'), (yyvsp[(3) - (3)].
val));
6904 #line 2092 "ripper.y"
6909 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'/'), (yyvsp[(3) - (3)].
val));
6915 #line 2100 "ripper.y"
6920 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'%'), (yyvsp[(3) - (3)].
val));
6926 #line 2108 "ripper.y"
6937 #line 2116 "ripper.y"
6949 #line 2125 "ripper.y"
6961 #line 2134 "ripper.y"
6972 #line 2142 "ripper.y"
6983 #line 2150 "ripper.y"
6988 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'|'), (yyvsp[(3) - (3)].
val));
6994 #line 2158 "ripper.y"
6999 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'^'), (yyvsp[(3) - (3)].
val));
7005 #line 2166 "ripper.y"
7010 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'&'), (yyvsp[(3) - (3)].
val));
7016 #line 2174 "ripper.y"
7027 #line 2182 "ripper.y"
7032 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'>'), (yyvsp[(3) - (3)].
val));
7038 #line 2190 "ripper.y"
7049 #line 2198 "ripper.y"
7054 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'<'), (yyvsp[(3) - (3)].
val));
7060 #line 2206 "ripper.y"
7071 #line 2214 "ripper.y"
7082 #line 2222 "ripper.y"
7093 #line 2230 "ripper.y"
7104 #line 2238 "ripper.y"
7118 #line 2249 "ripper.y"
7129 #line 2257 "ripper.y"
7134 (yyval.
val) = dispatch2(unary,
ID2SYM(
'!'), (yyvsp[(2) - (2)].
val));
7140 #line 2265 "ripper.y"
7145 (yyval.
val) = dispatch2(unary,
ID2SYM(
'~'), (yyvsp[(2) - (2)].
val));
7151 #line 2273 "ripper.y"
7162 #line 2281 "ripper.y"
7173 #line 2289 "ripper.y"
7184 #line 2297 "ripper.y"
7195 #line 2304 "ripper.y"
7200 #line 2305 "ripper.y"
7207 (yyval.
val) = dispatch1(defined, (yyvsp[(4) - (4)].
val));
7213 #line 2315 "ripper.y"
7220 (yyval.
val) = dispatch3(ifop, (yyvsp[(1) - (6)].
val), (yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].
val));
7226 #line 2325 "ripper.y"
7228 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7233 #line 2331 "ripper.y"
7237 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7240 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7246 #line 2344 "ripper.y"
7248 (yyval.
val) = (yyvsp[(1) - (2)].
val);
7253 #line 2348 "ripper.y"
7258 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val));
7264 #line 2356 "ripper.y"
7269 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7275 #line 2366 "ripper.y"
7278 (yyval.
val) = (yyvsp[(2) - (3)].
val);
7286 #line 2382 "ripper.y"
7288 (yyval.
val) = (yyvsp[(1) - (2)].
val);
7293 #line 2386 "ripper.y"
7298 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val));
7304 #line 2394 "ripper.y"
7309 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7315 #line 2404 "ripper.y"
7321 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7327 #line 2413 "ripper.y"
7332 (yyval.
val) = arg_add_optblock((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
7338 #line 2421 "ripper.y"
7344 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7345 (yyval.
val) = arg_add_optblock((yyval.
val), (yyvsp[(2) - (2)].
val));
7351 #line 2431 "ripper.y"
7357 (yyval.
val) = arg_add_optblock(arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val)), (yyvsp[(4) - (4)].
val));
7363 #line 2442 "ripper.y"
7365 (yyval.
val) = arg_add_block(arg_new(), (yyvsp[(1) - (1)].
val));
7370 #line 2448 "ripper.y"
7378 #line 2453 "ripper.y"
7382 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7387 #line 2461 "ripper.y"
7392 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7398 #line 2471 "ripper.y"
7400 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7405 #line 2475 "ripper.y"
7412 #line 2481 "ripper.y"
7417 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7423 #line 2489 "ripper.y"
7428 (yyval.
val) = arg_add_star(arg_new(), (yyvsp[(2) - (2)].
val));
7434 #line 2497 "ripper.y"
7445 (yyval.
val) = arg_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7451 #line 2511 "ripper.y"
7462 (yyval.
val) = arg_add_star((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val));
7468 #line 2527 "ripper.y"
7479 (yyval.
val) = mrhs_add(args2mrhs((yyvsp[(1) - (3)].
val)), (yyvsp[(3) - (3)].
val));
7485 #line 2541 "ripper.y"
7497 (yyval.
val) = mrhs_add_star(args2mrhs((yyvsp[(1) - (4)].
val)), (yyvsp[(4) - (4)].
val));
7503 #line 2556 "ripper.y"
7508 (yyval.
val) = mrhs_add_star(mrhs_new(), (yyvsp[(2) - (2)].
val));
7514 #line 2576 "ripper.y"
7519 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (1)].
val)), arg_new());
7525 #line 2584 "ripper.y"
7537 #line 2594 "ripper.y"
7541 if ((yyvsp[(3) - (4)].
val) ==
NULL) {
7552 (yyval.
val) = dispatch1(begin, (yyvsp[(3) - (4)].
val));
7558 #line 2611 "ripper.y"
7563 #line 2612 "ripper.y"
7568 (yyval.
val) = dispatch1(paren, 0);
7574 #line 2619 "ripper.y"
7579 #line 2620 "ripper.y"
7582 (yyval.
val) = (yyvsp[(2) - (4)].
val);
7584 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (4)].
val));
7590 #line 2628 "ripper.y"
7593 (yyval.
val) = (yyvsp[(2) - (3)].
val);
7595 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].
val));
7601 #line 2636 "ripper.y"
7606 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7612 #line 2644 "ripper.y"
7617 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].
val));
7623 #line 2652 "ripper.y"
7626 if ((yyvsp[(2) - (3)].
val) == 0) {
7630 (yyval.
val) = (yyvsp[(2) - (3)].
val);
7639 #line 2665 "ripper.y"
7650 #line 2673 "ripper.y"
7661 #line 2681 "ripper.y"
7666 (yyval.
val) = dispatch1(yield, dispatch1(paren, (yyvsp[(3) - (4)].
val)));
7672 #line 2689 "ripper.y"
7677 (yyval.
val) = dispatch1(yield, dispatch1(paren, arg_new()));
7683 #line 2697 "ripper.y"
7694 #line 2704 "ripper.y"
7699 #line 2705 "ripper.y"
7706 (yyval.
val) = dispatch1(defined, (yyvsp[(5) - (6)].
val));
7712 #line 2715 "ripper.y"
7723 #line 2723 "ripper.y"
7734 #line 2731 "ripper.y"
7738 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7740 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].
val)), arg_new());
7741 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(2) - (2)].
val));
7747 #line 2742 "ripper.y"
7752 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7754 (yyval.
val) = method_add_block((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
7760 #line 2752 "ripper.y"
7762 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7767 #line 2759 "ripper.y"
7779 #line 2771 "ripper.y"
7791 #line 2779 "ripper.y"
7796 #line 2779 "ripper.y"
7801 #line 2782 "ripper.y"
7807 (yyval.
val) = dispatch2(
while, (yyvsp[(3) - (7)].
val), (yyvsp[(6) - (7)].
val));
7813 #line 2790 "ripper.y"
7818 #line 2790 "ripper.y"
7823 #line 2793 "ripper.y"
7829 (yyval.
val) = dispatch2(until, (yyvsp[(3) - (7)].
val), (yyvsp[(6) - (7)].
val));
7835 #line 2804 "ripper.y"
7841 (yyval.
val) = dispatch2(
case, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val));
7847 #line 2813 "ripper.y"
7852 (yyval.
val) = dispatch2(
case,
Qnil, (yyvsp[(3) - (4)].
val));
7858 #line 2821 "ripper.y"
7863 #line 2823 "ripper.y"
7868 #line 2826 "ripper.y"
7913 m->nd_next = (yyvsp[(2) - (9)].
val);
7922 tbl[0] = 1; tbl[1] =
id;
7926 (yyval.
val) = dispatch3(
for, (yyvsp[(2) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(8) - (9)].
val));
7932 #line 2887 "ripper.y"
7935 yyerror(
"class definition in method body");
7945 #line 2898 "ripper.y"
7951 (yyval.
val) = dispatch3(
class, (yyvsp[(2) - (6)].
val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].
val));
7958 #line 2908 "ripper.y"
7966 #line 2913 "ripper.y"
7975 #line 2920 "ripper.y"
7981 (yyval.
val) = dispatch2(sclass, (yyvsp[(3) - (8)].
val), (yyvsp[(7) - (8)].
val));
7990 #line 2932 "ripper.y"
7993 yyerror(
"module definition in method body");
8003 #line 2943 "ripper.y"
8009 (yyval.
val) = dispatch2(module, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val));
8016 #line 2953 "ripper.y"
8026 #line 2962 "ripper.y"
8034 (yyval.
val) = dispatch3(def, (yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), (yyvsp[(5) - (6)].
val));
8043 #line 2975 "ripper.y"
8048 #line 2976 "ripper.y"
8057 #line 2984 "ripper.y"
8062 (yyval.
val) =
NEW_DEFS((yyvsp[(2) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(7) - (9)].
val), body);
8065 (yyval.
val) = dispatch5(defs, (yyvsp[(2) - (9)].
val), (yyvsp[(3) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(7) - (9)].
val), (yyvsp[(8) - (9)].
val));
8073 #line 2997 "ripper.y"
8078 (yyval.
val) = dispatch1(
break, arg_new());
8084 #line 3005 "ripper.y"
8089 (yyval.
val) = dispatch1(next, arg_new());
8095 #line 3013 "ripper.y"
8106 #line 3021 "ripper.y"
8117 #line 3031 "ripper.y"
8121 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8124 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8130 #line 3043 "ripper.y"
8137 #line 3049 "ripper.y"
8144 #line 3055 "ripper.y"
8151 #line 3061 "ripper.y"
8158 #line 3067 "ripper.y"
8165 #line 3073 "ripper.y"
8172 #line 3079 "ripper.y"
8179 #line 3085 "ripper.y"
8186 #line 3091 "ripper.y"
8193 #line 3097 "ripper.y"
8204 #line 3107 "ripper.y"
8211 #line 3115 "ripper.y"
8216 #line 3121 "ripper.y"
8217 { (yyval.
val) = (yyvsp[(2) - (2)].
val); ;}
8221 #line 3128 "ripper.y"
8226 #line 3137 "ripper.y"
8238 #line 3149 "ripper.y"
8241 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8243 (yyval.
val) = dispatch1(
else, (yyvsp[(2) - (2)].
val));
8249 #line 3163 "ripper.y"
8254 (yyval.
val) = dispatch1(mlhs_paren, (yyval.
val));
8260 #line 3171 "ripper.y"
8263 (yyval.
val) = (yyvsp[(2) - (3)].
val);
8265 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
8271 #line 3181 "ripper.y"
8276 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
8282 #line 3189 "ripper.y"
8287 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
8293 #line 3199 "ripper.y"
8298 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8304 #line 3207 "ripper.y"
8310 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (4)].
val), (yyval.
val));
8316 #line 3216 "ripper.y"
8322 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (6)].
val), (yyval.
val));
8328 #line 3225 "ripper.y"
8333 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].
val),
Qnil);
8339 #line 3233 "ripper.y"
8344 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (5)].
val), (yyvsp[(5) - (5)].
val));
8350 #line 3241 "ripper.y"
8356 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyval.
val));
8362 #line 3250 "ripper.y"
8371 (yyval.
val) = mlhs_add_star((yyval.
val), (yyvsp[(4) - (4)].
val));
8377 #line 3262 "ripper.y"
8382 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
8388 #line 3270 "ripper.y"
8393 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
8399 #line 3281 "ripper.y"
8406 #line 3285 "ripper.y"
8413 #line 3289 "ripper.y"
8420 #line 3293 "ripper.y"
8427 #line 3299 "ripper.y"
8429 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8434 #line 3303 "ripper.y"
8441 #line 3309 "ripper.y"
8448 #line 3313 "ripper.y"
8450 (yyval.
val) =
new_args((yyvsp[(1) - (8)].
val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].
val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].
val));
8455 #line 3317 "ripper.y"
8462 #line 3321 "ripper.y"
8469 #line 3325 "ripper.y"
8476 #line 3329 "ripper.y"
8481 dispatch1(excessed_comma, (yyval.
val));
8487 #line 3337 "ripper.y"
8494 #line 3341 "ripper.y"
8501 #line 3345 "ripper.y"
8508 #line 3349 "ripper.y"
8515 #line 3353 "ripper.y"
8522 #line 3357 "ripper.y"
8529 #line 3361 "ripper.y"
8536 #line 3365 "ripper.y"
8543 #line 3369 "ripper.y"
8550 #line 3376 "ripper.y"
8557 #line 3382 "ripper.y"
8569 #line 3391 "ripper.y"
8581 #line 3400 "ripper.y"
8584 (yyval.
val) = (yyvsp[(2) - (4)].
val);
8592 #line 3411 "ripper.y"
8599 #line 3415 "ripper.y"
8604 (yyval.
val) = (yyvsp[(3) - (4)].
val);
8610 #line 3427 "ripper.y"
8617 #line 3434 "ripper.y"
8624 #line 3441 "ripper.y"
8635 #line 3449 "ripper.y"
8642 #line 3454 "ripper.y"
8649 #line 3457 "ripper.y"
8657 #line 3463 "ripper.y"
8663 (yyval.
val) = dispatch2(lambda, (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
8670 #line 3475 "ripper.y"
8673 (yyval.
val) = (yyvsp[(2) - (4)].
val);
8675 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (4)].
val));
8681 #line 3483 "ripper.y"
8684 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8686 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8692 #line 3493 "ripper.y"
8694 (yyval.
val) = (yyvsp[(2) - (3)].
val);
8699 #line 3497 "ripper.y"
8701 (yyval.
val) = (yyvsp[(2) - (3)].
val);
8706 #line 3503 "ripper.y"
8716 #line 3512 "ripper.y"
8729 #line 3524 "ripper.y"
8739 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8742 (yyval.
val) = method_add_block((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
8748 #line 3540 "ripper.y"
8751 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
8753 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), (yyvsp[(2) - (4)].
val), (yyvsp[(3) - (4)].
val));
8754 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
8760 #line 3549 "ripper.y"
8765 (yyval.
val) = (yyvsp[(5) - (5)].
val);
8768 (yyval.
val) = dispatch4(
command_call, (yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
8769 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
8775 #line 3561 "ripper.y"
8780 (yyval.
val) = (yyvsp[(5) - (5)].
val);
8783 (yyval.
val) = dispatch4(
command_call, (yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
8784 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
8790 #line 3575 "ripper.y"
8793 (yyval.
val) = (yyvsp[(1) - (2)].
val);
8796 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].
val)), (yyvsp[(2) - (2)].
val));
8802 #line 3584 "ripper.y"
8811 #line 3590 "ripper.y"
8814 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
8817 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (5)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
8818 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(5) - (5)].
val));
8824 #line 3600 "ripper.y"
8833 #line 3606 "ripper.y"
8836 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
8839 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (5)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
8840 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(5) - (5)].
val));
8846 #line 3616 "ripper.y"
8857 #line 3624 "ripper.y"
8866 #line 3630 "ripper.y"
8872 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), ripper_id2sym(
'.'),
8874 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
8880 #line 3641 "ripper.y"
8889 #line 3647 "ripper.y"
8897 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
8903 #line 3658 "ripper.y"
8908 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].
val));
8914 #line 3666 "ripper.y"
8925 #line 3674 "ripper.y"
8940 #line 3688 "ripper.y"
8951 #line 3697 "ripper.y"
8964 #line 3707 "ripper.y"
8975 #line 3716 "ripper.y"
8988 #line 3730 "ripper.y"
8991 (yyval.
val) =
NEW_WHEN((yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
8999 #line 3746 "ripper.y"
9002 if ((yyvsp[(3) - (6)].
val)) {
9007 fixpos((yyval.
val), (yyvsp[(2) - (6)].
val)?(yyvsp[(2) - (6)].
val):(yyvsp[(5) - (6)].
val));
9009 (yyval.
val) = dispatch4(rescue,
9019 #line 3766 "ripper.y"
9030 #line 3774 "ripper.y"
9035 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9041 #line 3785 "ripper.y"
9043 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9048 #line 3792 "ripper.y"
9051 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9053 (yyval.
val) = dispatch1(ensure, (yyvsp[(2) - (2)].
val));
9059 #line 3804 "ripper.y"
9064 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].
val));
9070 #line 3815 "ripper.y"
9073 NODE *node = (yyvsp[(1) - (1)].
val);
9082 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9088 #line 3834 "ripper.y"
9093 (yyval.
val) = dispatch2(string_concat, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9099 #line 3844 "ripper.y"
9102 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9104 (yyval.
val) = dispatch1(string_literal, (yyvsp[(2) - (3)].
val));
9110 #line 3854 "ripper.y"
9113 NODE *node = (yyvsp[(2) - (3)].
val);
9132 (yyval.
val) = dispatch1(xstring_literal, (yyvsp[(2) - (3)].
val));
9138 #line 3881 "ripper.y"
9142 NODE *node = (yyvsp[(2) - (3)].
val);
9166 for (list = (prev = node)->
nd_next;
list; list = list->nd_next) {
9168 VALUE tail = list->nd_head->nd_lit;
9170 VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
9176 prev->nd_next = list->nd_next;
9189 if (!node->nd_next) {
9198 (yyval.
val) = dispatch2(regexp_literal, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
9204 #line 3946 "ripper.y"
9210 (yyval.
val) = dispatch1(array, (yyval.
val));
9216 #line 3955 "ripper.y"
9219 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9221 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
9227 #line 3965 "ripper.y"
9238 #line 3973 "ripper.y"
9243 (yyval.
val) = dispatch2(words_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
9249 #line 3985 "ripper.y"
9252 (yyval.
val) = dispatch2(word_add, (yyval.
val), (yyvsp[(1) - (1)].
val));
9257 #line 3991 "ripper.y"
9262 (yyval.
val) = dispatch2(word_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9268 #line 4001 "ripper.y"
9274 (yyval.
val) = dispatch1(array, (yyval.
val));
9280 #line 4010 "ripper.y"
9283 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9285 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
9291 #line 4020 "ripper.y"
9302 #line 4028 "ripper.y"
9309 (yyval.
val) = dispatch2(symbols_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
9315 #line 4040 "ripper.y"
9321 (yyval.
val) = dispatch1(array, (yyval.
val));
9327 #line 4049 "ripper.y"
9330 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9332 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
9338 #line 4059 "ripper.y"
9344 (yyval.
val) = dispatch1(array, (yyval.
val));
9350 #line 4068 "ripper.y"
9353 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9355 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
9361 #line 4078 "ripper.y"
9372 #line 4086 "ripper.y"
9377 (yyval.
val) = dispatch2(qwords_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
9383 #line 4096 "ripper.y"
9394 #line 4104 "ripper.y"
9403 (yyval.
val) = dispatch2(qsymbols_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
9409 #line 4118 "ripper.y"
9420 #line 4126 "ripper.y"
9425 (yyval.
val) = dispatch2(string_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9431 #line 4136 "ripper.y"
9442 #line 4144 "ripper.y"
9447 (yyval.
val) = dispatch2(xstring_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9453 #line 4154 "ripper.y"
9464 #line 4162 "ripper.y"
9467 NODE *
head = (yyvsp[(1) - (2)].
val), *tail = (yyvsp[(2) - (2)].
val);
9488 (yyval.
val) = dispatch2(regexp_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9494 #line 4192 "ripper.y"
9503 #line 4198 "ripper.y"
9510 (yyval.
val) = dispatch1(string_dvar, (yyvsp[(3) - (3)].
val));
9516 #line 4208 "ripper.y"
9526 #line 4214 "ripper.y"
9535 #line 4219 "ripper.y"
9543 #line 4224 "ripper.y"
9553 (yyval.
val) = dispatch1(string_embexpr, (yyvsp[(5) - (6)].
val));
9559 #line 4239 "ripper.y"
9564 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
9570 #line 4247 "ripper.y"
9575 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
9581 #line 4255 "ripper.y"
9586 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
9592 #line 4266 "ripper.y"
9596 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9598 (yyval.
val) = dispatch1(symbol, (yyvsp[(2) - (2)].
val));
9604 #line 4283 "ripper.y"
9610 (yyval.
val) = dispatch1(dyna_symbol, (yyvsp[(2) - (3)].
val));
9616 #line 4296 "ripper.y"
9627 #line 4304 "ripper.y"
9638 #line 4320 "ripper.y"
9643 #line 4321 "ripper.y"
9648 #line 4322 "ripper.y"
9653 #line 4323 "ripper.y"
9658 #line 4324 "ripper.y"
9663 #line 4325 "ripper.y"
9668 #line 4326 "ripper.y"
9673 #line 4330 "ripper.y"
9678 if (id_is_var(
get_id((yyvsp[(1) - (1)].
val)))) {
9679 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
9682 (yyval.
val) = dispatch1(vcall, (yyvsp[(1) - (1)].
val));
9689 #line 4343 "ripper.y"
9694 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
9700 #line 4353 "ripper.y"
9705 (yyval.
val) = dispatch1(var_field, (yyval.
val));
9711 #line 4361 "ripper.y"
9716 (yyval.
val) = dispatch1(var_field, (yyval.
val));
9722 #line 4375 "ripper.y"
9733 #line 4383 "ripper.y"
9741 #line 4388 "ripper.y"
9743 (yyval.
val) = (yyvsp[(3) - (4)].
val);
9748 #line 4392 "ripper.y"
9761 #line 4404 "ripper.y"
9764 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9766 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].
val));
9774 #line 4414 "ripper.y"
9776 (yyval.
val) = (yyvsp[(1) - (2)].
val);
9783 #line 4422 "ripper.y"
9790 #line 4426 "ripper.y"
9797 #line 4430 "ripper.y"
9804 #line 4434 "ripper.y"
9811 #line 4440 "ripper.y"
9813 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9818 #line 4444 "ripper.y"
9825 #line 4450 "ripper.y"
9832 #line 4454 "ripper.y"
9834 (yyval.
val) =
new_args((yyvsp[(1) - (8)].
val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].
val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].
val));
9839 #line 4458 "ripper.y"
9846 #line 4462 "ripper.y"
9853 #line 4466 "ripper.y"
9860 #line 4470 "ripper.y"
9867 #line 4474 "ripper.y"
9874 #line 4478 "ripper.y"
9881 #line 4482 "ripper.y"
9888 #line 4486 "ripper.y"
9895 #line 4490 "ripper.y"
9902 #line 4494 "ripper.y"
9909 #line 4498 "ripper.y"
9916 #line 4502 "ripper.y"
9923 #line 4506 "ripper.y"
9931 #line 4513 "ripper.y"
9934 yyerror(
"formal argument cannot be a constant");
9937 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
9943 #line 4522 "ripper.y"
9946 yyerror(
"formal argument cannot be an instance variable");
9949 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
9955 #line 4531 "ripper.y"
9958 yyerror(
"formal argument cannot be a global variable");
9961 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
9967 #line 4540 "ripper.y"
9970 yyerror(
"formal argument cannot be a class variable");
9973 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
9979 #line 4552 "ripper.y"
9982 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9987 #line 4559 "ripper.y"
9999 #line 4568 "ripper.y"
10013 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
10019 #line 4589 "ripper.y"
10026 #line 4594 "ripper.y"
10029 (yyval.
val) = (yyvsp[(1) - (3)].
val);
10040 #line 4607 "ripper.y"
10053 #line 4619 "ripper.y"
10066 #line 4631 "ripper.y"
10069 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10077 #line 4639 "ripper.y"
10080 NODE *kws = (yyvsp[(1) - (3)].
val);
10082 while (kws->nd_next) {
10083 kws = kws->nd_next;
10085 kws->nd_next = (yyvsp[(3) - (3)].
val);
10086 (yyval.
val) = (yyvsp[(1) - (3)].
val);
10094 #line 4656 "ripper.y"
10097 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10105 #line 4664 "ripper.y"
10108 NODE *kws = (yyvsp[(1) - (3)].
val);
10110 while (kws->nd_next) {
10111 kws = kws->nd_next;
10113 kws->nd_next = (yyvsp[(3) - (3)].
val);
10114 (yyval.
val) = (yyvsp[(1) - (3)].
val);
10122 #line 4684 "ripper.y"
10125 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10130 #line 4689 "ripper.y"
10137 #line 4695 "ripper.y"
10150 #line 4707 "ripper.y"
10163 #line 4719 "ripper.y"
10166 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10174 #line 4727 "ripper.y"
10179 while (opts->nd_next) {
10180 opts = opts->nd_next;
10182 opts->nd_next = (yyvsp[(3) - (3)].
val);
10183 (yyval.
val) = (yyvsp[(1) - (3)].
val);
10191 #line 4743 "ripper.y"
10194 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10202 #line 4751 "ripper.y"
10207 while (opts->nd_next) {
10208 opts = opts->nd_next;
10210 opts->nd_next = (yyvsp[(3) - (3)].
val);
10211 (yyval.
val) = (yyvsp[(1) - (3)].
val);
10219 #line 4771 "ripper.y"
10223 yyerror(
"rest argument must be local variable");
10227 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10229 (yyval.
val) = dispatch1(rest_param, (yyvsp[(2) - (2)].
val));
10235 #line 4784 "ripper.y"
10241 (yyval.
val) = dispatch1(rest_param,
Qnil);
10247 #line 4799 "ripper.y"
10251 yyerror(
"block argument must be local variable");
10253 yyerror(
"duplicated block argument name");
10257 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10259 (yyval.
val) = dispatch1(blockarg, (yyvsp[(2) - (2)].
val));
10265 #line 4816 "ripper.y"
10267 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10272 #line 4820 "ripper.y"
10283 #line 4830 "ripper.y"
10287 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10290 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10296 #line 4839 "ripper.y"
10301 #line 4840 "ripper.y"
10304 if ((yyvsp[(3) - (4)].
val) == 0) {
10305 yyerror(
"can't define singleton method for ().");
10317 yyerror(
"can't define singleton method for literals");
10323 (yyval.
val) = (yyvsp[(3) - (4)].
val);
10325 (yyval.
val) = dispatch1(paren, (yyvsp[(3) - (4)].
val));
10331 #line 4870 "ripper.y"
10334 (yyval.
val) = (yyvsp[(1) - (2)].
val);
10336 (yyval.
val) = dispatch1(assoclist_from_args, (yyvsp[(1) - (2)].
val));
10342 #line 4882 "ripper.y"
10349 #line 4887 "ripper.y"
10360 #line 4897 "ripper.y"
10365 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
10371 #line 4905 "ripper.y"
10376 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10382 #line 4913 "ripper.y"
10387 (yyval.
val) = dispatch1(assoc_splat, (yyvsp[(2) - (2)].
val));
10393 #line 4943 "ripper.y"
10394 { (yyval.
val) = (yyvsp[(1) - (1)].
val); ;}
10398 #line 4948 "ripper.y"
10399 { (yyval.
val) = (yyvsp[(1) - (1)].
val); ;}
10403 #line 4971 "ripper.y"
10408 #line 4976 "ripper.y"
10413 #line 4980 "ripper.y"
10425 #line 10424 "parse.c"
10444 if (0 <= yystate && yystate <=
YYLAST && yycheck[yystate] == *yyssp)
10460 #if ! YYERROR_VERBOSE
10470 if (yymsg != yymsgbuf)
10474 yymsg_alloc = yyalloc;
10482 if (0 < yysize && yysize <= yymsg_alloc)
10499 if (yyerrstatus == 3)
10504 if (yychar <=
YYEOF)
10507 if (yychar ==
YYEOF)
10512 yydestruct (
"Error: discarding",
10513 yytoken, &yylval, parser);
10557 yyn = yytable[
yyn];
10568 yydestruct (
"Error: popping",
10569 yystos[yystate], yyvsp, parser);
10614 yydestruct (
"Cleanup: discarding lookahead",
10615 yytoken, &yylval, parser);
10620 while (yyssp != yyss)
10622 yydestruct (
"Cleanup: popping",
10623 yystos[*yyssp], yyvsp, parser);
10630 #if YYERROR_VERBOSE
10631 if (yymsg != yymsgbuf)
10635 return YYID (yyresult);
10639 #line 4988 "ripper.y"
10644 # define yylval (*((YYSTYPE*)(parser->parser_yylval)))
10653 # define nextc() parser_nextc(parser)
10654 # define pushback(c) parser_pushback(parser, (c))
10655 # define newtok() parser_newtok(parser)
10656 # define tokspace(n) parser_tokspace(parser, (n))
10657 # define tokadd(c) parser_tokadd(parser, (c))
10658 # define tok_hex(numlen) parser_tok_hex(parser, (numlen))
10659 # define read_escape(flags,e) parser_read_escape(parser, (flags), (e))
10660 # define tokadd_escape(e) parser_tokadd_escape(parser, (e))
10661 # define regx_options() parser_regx_options(parser)
10662 # define tokadd_string(f,t,p,n,e) parser_tokadd_string(parser,(f),(t),(p),(n),(e))
10663 # define parse_string(n) parser_parse_string(parser,(n))
10664 # define tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc))
10665 # define here_document(n) parser_here_document(parser,(n))
10666 # define heredoc_identifier() parser_heredoc_identifier(parser)
10667 # define heredoc_restore(n) parser_heredoc_restore(parser,(n))
10668 # define whole_match_p(e,l,i) parser_whole_match_p(parser,(e),(l),(i))
10671 # define set_yylval_str(x) (yylval.node = NEW_STR(x))
10672 # define set_yylval_num(x) (yylval.num = (x))
10673 # define set_yylval_id(x) (yylval.id = (x))
10674 # define set_yylval_name(x) (yylval.id = (x))
10675 # define set_yylval_literal(x) (yylval.node = NEW_LIT(x))
10676 # define set_yylval_node(x) (yylval.node = (x))
10677 # define yylval_id() (yylval.id)
10679 static inline VALUE
10680 ripper_yylval_id(
ID x)
10684 # define set_yylval_str(x) (void)(x)
10685 # define set_yylval_num(x) (void)(x)
10686 # define set_yylval_id(x) (void)(x)
10687 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x))
10688 # define set_yylval_literal(x) (void)(x)
10689 # define set_yylval_node(x) (void)(x)
10690 # define yylval_id() yylval.id
10694 #define ripper_flush(p) (void)(p)
10696 #define ripper_flush(p) ((p)->tokp = (p)->parser_lex_p)
10698 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val))
10705 return lex_p > parser->tokp;
10718 ripper_dispatch_scan_event(
struct parser_params *parser,
int t)
10720 if (!ripper_has_scan_event(parser))
return;
10721 yylval_rval = ripper_scan_event_val(parser, t);
10725 ripper_dispatch_ignored_scan_event(
struct parser_params *parser,
int t)
10727 if (!ripper_has_scan_event(parser))
return;
10728 (
void)ripper_scan_event_val(parser, t);
10732 ripper_dispatch_delayed_token(
struct parser_params *parser,
int t)
10735 const char *saved_tokp = parser->tokp;
10738 parser->tokp =
lex_pbeg + parser->delayed_col;
10740 parser->delayed =
Qnil;
10742 parser->tokp = saved_tokp;
10753 #undef SIGN_EXTEND_CHAR
10755 # define SIGN_EXTEND_CHAR(c) ((signed char)(c))
10758 # define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128)
10761 #define parser_encoding_name() (current_enc->name)
10762 #define parser_mbclen() mbclen((lex_p-1),lex_pend,current_enc)
10763 #define parser_precise_mbclen() rb_enc_precise_mbclen((lex_p-1),lex_pend,current_enc)
10764 #define is_identchar(p,e,enc) (rb_enc_isalnum(*(p),(enc)) || (*(p)) == '_' || !ISASCII(*(p)))
10765 #define parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,current_enc))
10767 #define parser_isascii() ISASCII(*(lex_p-1))
10775 for (p =
lex_pbeg; p < pend; p++) {
10777 column = (((column - 1) / 8) + 1) * 8;
10788 for (p =
lex_pbeg; p < pend; p++) {
10789 if (*p !=
' ' && *p !=
'\t') {
10796 #undef token_info_push
10813 #undef token_info_pop
10820 if (!ptinfo)
return;
10826 if (linenum == ptinfo->
linenum) {
10834 "mismatched indentations at '%s' with '%s' at %d",
10847 const int max_line_margin = 30;
10848 const char *
p, *pe;
10856 if (*p ==
'\n')
break;
10863 if (*pe ==
'\n')
break;
10870 const char *pre =
"", *post =
"";
10872 if (len > max_line_margin * 2 + 10) {
10873 if (
lex_p - p > max_line_margin) {
10877 if (pe -
lex_p > max_line_margin) {
10884 MEMCPY(buf, p,
char, len);
10889 p2 =
buf; pe = buf +
len;
10892 if (*p2 !=
'\t') *p2 =
' ';
10900 dispatch1(parse_error,
STR_NEW2(msg));
10912 CONST_ID(script_lines,
"SCRIPT_LINES__");
10933 RBASIC(lines)->klass = 0;
10935 RARRAY(lines)->as.heap.len =
n;
10995 if (parser->
nerr) {
11005 return (
VALUE)tree;
11030 char *beg, *
end, *pend;
11040 while (end < pend) {
11041 if (*end++ ==
'\n')
break;
11051 if (
NIL_P(line))
return line;
11150 #define STR_FUNC_ESCAPE 0x01
11151 #define STR_FUNC_EXPAND 0x02
11152 #define STR_FUNC_REGEXP 0x04
11153 #define STR_FUNC_QWORDS 0x08
11154 #define STR_FUNC_SYMBOL 0x10
11155 #define STR_FUNC_INDENT 0x20
11185 #define lex_goto_eol(parser) ((parser)->parser_lex_p = (parser)->parser_lex_pend)
11186 #define lex_eol_p() (lex_p >= lex_pend)
11187 #define peek(c) peek_n((c), 0)
11188 #define peek_n(c,n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n])
11211 if (
NIL_P(parser->delayed)) {
11215 parser->tokp,
lex_pend - parser->tokp);
11217 parser->delayed_col = (
int)(parser->tokp -
lex_pbeg);
11221 parser->tokp,
lex_pend - parser->tokp);
11237 c = (
unsigned char)*
lex_p++;
11238 if (c ==
'\r' &&
peek(
'\n')) {
11249 if (c == -1)
return;
11256 #define was_bol() (lex_p == lex_pbeg + 1)
11258 #define tokfix() (tokenbuf[tokidx]='\0')
11259 #define tok() tokenbuf
11260 #define toklen() tokidx
11261 #define toklast() (tokidx>0?tokenbuf[tokidx-1]:0)
11308 yyerror(
"invalid hex escape");
11315 #define tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n))
11320 int string_literal,
int symbol_literal,
int regexp_literal)
11340 yyerror(
"invalid Unicode escape");
11343 if (codepoint > 0x10ffff) {
11344 yyerror(
"invalid Unicode codepoint (too large)");
11348 if (regexp_literal) {
11351 else if (codepoint >= 0x80) {
11353 if (string_literal)
tokaddmbc(codepoint, *encp);
11355 else if (string_literal) {
11358 }
while (string_literal && (
peek(
' ') ||
peek(
'\t')));
11361 yyerror(
"unterminated Unicode escape");
11365 if (regexp_literal) {
tokadd(
'}'); }
11371 yyerror(
"invalid Unicode escape");
11375 if (regexp_literal) {
11378 else if (codepoint >= 0x80) {
11380 if (string_literal)
tokaddmbc(codepoint, *encp);
11382 else if (string_literal) {
11390 #define ESCAPE_CONTROL 1
11391 #define ESCAPE_META 2
11400 switch (c =
nextc()) {
11425 case '0':
case '1':
case '2':
case '3':
11426 case '4':
case '5':
case '6':
case '7':
11434 if (numlen == 0)
return 0;
11445 if ((c =
nextc()) !=
'-') {
11449 if ((c =
nextc()) ==
'\\') {
11450 if (
peek(
'u'))
goto eof;
11451 return read_escape(flags|ESCAPE_META, encp) | 0x80;
11453 else if (c == -1 || !
ISASCII(c))
goto eof;
11455 return ((c & 0xff) | 0x80);
11459 if ((c =
nextc()) !=
'-') {
11465 if ((c =
nextc())==
'\\') {
11466 if (
peek(
'u'))
goto eof;
11471 else if (c == -1 || !
ISASCII(c))
goto eof;
11476 yyerror(
"Invalid escape character syntax");
11499 switch (c =
nextc()) {
11503 case '0':
case '1':
case '2':
case '3':
11504 case '4':
case '5':
case '6':
case '7':
11507 if (numlen == 0)
goto eof;
11516 if (numlen == 0)
return -1;
11523 if ((c =
nextc()) !=
'-') {
11533 if ((c =
nextc()) !=
'-') {
11541 if (flags & ESCAPE_CONTROL)
goto eof;
11545 if ((c =
nextc()) ==
'\\') {
11548 else if (c == -1)
goto eof;
11554 yyerror(
"Invalid escape character syntax");
11621 #define tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c))
11627 case '$':
case '*':
case '+':
case '.':
11628 case '?':
case '^':
case '|':
11629 case ')':
case ']':
case '}':
case '>':
11638 int func,
int term,
int paren,
long *nest,
11642 int has_nonascii = 0;
11645 static const char mixed_msg[] =
"%s mixed within %s source";
11647 #define mixed_error(enc1, enc2) if (!errbuf) { \
11648 size_t len = sizeof(mixed_msg) - 4; \
11649 len += strlen(rb_enc_name(enc1)); \
11650 len += strlen(rb_enc_name(enc2)); \
11651 errbuf = ALLOCA_N(char, len); \
11652 snprintf(errbuf, len, mixed_msg, \
11653 rb_enc_name(enc1), \
11654 rb_enc_name(enc2)); \
11657 #define mixed_escape(beg, enc1, enc2) do { \
11658 const char *pos = lex_p; \
11660 mixed_error((enc1), (enc2)); \
11664 while ((c =
nextc()) != -1) {
11665 if (paren && c == paren) {
11668 else if (c == term) {
11669 if (!nest || !*nest) {
11677 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
11682 else if (c ==
'\\') {
11683 const char *beg =
lex_p - 1;
11688 if (func & STR_FUNC_EXPAND)
continue;
11697 if ((func & STR_FUNC_EXPAND) == 0) {
11704 if (has_nonascii && enc != *encp) {
11710 if (c == -1)
return -1;
11712 if ((func & STR_FUNC_EXPAND) == 0)
tokadd(
'\\');
11715 if (func & STR_FUNC_REGEXP) {
11723 if (has_nonascii && enc != *encp) {
11728 else if (func & STR_FUNC_EXPAND) {
11730 if (func & STR_FUNC_ESCAPE)
tokadd(
'\\');
11733 else if ((func & STR_FUNC_QWORDS) &&
ISSPACE(c)) {
11736 else if (c != term && !(paren && c == paren)) {
11746 if (enc != *encp) {
11759 if (enc != *encp) {
11770 #define NEW_STRTERM(func, term, paren) \
11771 rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0)
11777 if (!
NIL_P(parser->delayed)) {
11778 ptrdiff_t
len =
lex_p - parser->tokp;
11783 parser->tokp =
lex_p;
11787 #define flush_string_content(enc) ripper_flush_string_content(parser, (enc))
11789 #define flush_string_content(enc) ((void)(enc))
11796 #define BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0)
11797 #define SPECIAL_PUNCT(idx) ( \
11798 BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', idx) | \
11799 BIT('!', idx) | BIT('@', idx) | BIT('/', idx) | BIT('\\', idx) | \
11800 BIT(';', idx) | BIT(',', idx) | BIT('.', idx) | BIT('=', idx) | \
11801 BIT(':', idx) | BIT('<', idx) | BIT('>', idx) | BIT('\"', idx) | \
11802 BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \
11810 #undef SPECIAL_PUNCT
11816 if (c <= 0x20 || 0x7e < c)
return 0;
11817 return (ruby_global_name_punct_bits[(c - 0x20) / 32] >> (c % 32)) & 1;
11824 const char *p =
lex_p;
11830 if ((c = *p) ==
'-') {
11839 if ((c = *p) ==
'@') {
11859 int func = (
int)quote->nd_func;
11871 if (c == term && !quote->nd_nest) {
11872 if (func & STR_FUNC_QWORDS) {
11873 quote->nd_func = -1;
11935 while ((c =
nextc()) != -1 && c != term) {
11982 line = here->nd_orig;
11996 const char *eos,
long len,
int indent)
12002 while (*p &&
ISSPACE(*p)) p++;
12005 if (n < 0 || (n > 0 && p[len] !=
'\n' && p[len] !=
'\r'))
return FALSE;
12006 return strncmp(eos, p, len) == 0;
12013 if (!
NIL_P(parser->delayed))
12016 ripper_dispatch_ignored_scan_event(parser,
tHEREDOC_END);
12019 #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser)
12021 #define dispatch_heredoc_end() ((void)0)
12027 int c,
func, indent = 0;
12028 const char *eos, *
p, *pend;
12037 if ((c =
nextc()) == -1) {
12041 if (
NIL_P(parser->delayed)) {
12046 ((len =
lex_p - parser->tokp) > 0 &&
12047 (str =
STR_NEW3(parser->tokp, len, enc, func), 1))) {
12070 switch (pend[-1]) {
12072 if (--pend == p || pend[-1] !=
'\r') {
12086 if (
nextc() == -1) {
12104 if (parser->
eofp)
goto error;
12114 if ((c =
nextc()) == -1)
goto error;
12131 rb_warning0(
"ambiguous first argument; put parentheses or even spaces");
12136 #define arg_ambiguous() (arg_ambiguous_gen(parser), 1)
12143 yyerror(
"formal argument must be local variable");
12161 if (len > 5 && name[nlen = len - 5] ==
'-') {
12162 if (
rb_memcicmp(name + nlen + 1,
"unix", 4) == 0)
12165 if (len > 4 && name[nlen = len - 4] ==
'-') {
12168 if (
rb_memcicmp(name + nlen + 1,
"mac", 3) == 0 &&
12169 !(len == 8 &&
rb_memcicmp(name,
"utf8-mac", len) == 0))
12184 excargs[1] =
rb_sprintf(
"unknown encoding name: %s", name);
12201 for (i = 0; i <
n; ++
i) {
12239 case 't':
case 'T':
12245 case 'f':
case 'F':
12268 static const char *
12276 if (str[i-1] ==
'*' && str[i-2] ==
'-') {
12277 return str + i + 1;
12282 if (i + 1 >= len)
return 0;
12283 if (str[i+1] !=
'-') {
12286 else if (str[i-1] !=
'-') {
12290 return str + i + 2;
12305 const char *beg, *
end, *vbeg, *vend;
12306 #define str_copy(_s, _p, _n) ((_s) \
12307 ? (void)(rb_str_resize((_s), (_n)), \
12308 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \
12309 : (void)((_s) = STR_NEW((_p), (_n))))
12311 if (len <= 7)
return FALSE;
12315 len = end - beg - 3;
12326 for (; len > 0 && *
str; str++, --
len) {
12328 case '\'':
case '"':
case ':':
case ';':
12333 for (beg = str; len > 0; str++, --
len) {
12335 case '\'':
case '"':
case ':':
case ';':
12343 for (end = str; len > 0 &&
ISSPACE(*str); str++, --
len);
12345 if (*str !=
':')
continue;
12347 do str++;
while (--len > 0 &&
ISSPACE(*str));
12350 for (vbeg = ++str; --len > 0 && *str !=
'"'; str++) {
12351 if (*str ==
'\\') {
12363 for (vbeg = str; len > 0 && *str !=
'"' && *str !=
';' && !
ISSPACE(*str); --
len, str++);
12366 while (len > 0 && (*str ==
';' ||
ISSPACE(*str))) --len, str++;
12371 for (i = 0; i <
n; ++
i) {
12372 if (s[i] ==
'-') s[
i] =
'_';
12379 n = (*p->
length)(parser, vbeg, n);
12385 }
while (++p < magic_comments +
numberof(magic_comments));
12399 const char *beg =
str;
12403 if (send - str <= 6)
return;
12405 case 'C':
case 'c': str += 6;
continue;
12406 case 'O':
case 'o': str += 5;
continue;
12407 case 'D':
case 'd': str += 4;
continue;
12408 case 'I':
case 'i': str += 3;
continue;
12409 case 'N':
case 'n': str += 2;
continue;
12410 case 'G':
case 'g': str += 1;
continue;
12411 case '=':
case ':':
12424 if (++str >= send)
return;
12427 if (*str !=
'=' && *str !=
':')
return;
12432 while ((*str ==
'-' || *str ==
'_' ||
ISALNUM(*str)) && ++str < send);
12448 (
unsigned char)
lex_p[0] == 0xbb &&
12449 (
unsigned char)
lex_p[1] == 0xbf) {
12463 #define IS_ARG() IS_lex_state(EXPR_ARG_ANY)
12464 #define IS_END() IS_lex_state(EXPR_END_ANY)
12465 #define IS_BEG() IS_lex_state(EXPR_BEG_ANY)
12466 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c))
12467 #define IS_LABEL_POSSIBLE() ((IS_lex_state(EXPR_BEG | EXPR_ENDFN) && !cmd_state) || IS_ARG())
12468 #define IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1))
12469 #define IS_AFTER_OPERATOR() IS_lex_state(EXPR_FNAME | EXPR_DOT)
12472 #define ambiguous_operator(op, syn) ( \
12473 rb_warning0("`"op"' after local variable is interpreted as binary operator"), \
12474 rb_warning0("even though it seems like "syn""))
12476 #define ambiguous_operator(op, syn) dispatch2(operator_ambiguous, ripper_intern(op), rb_str_new_cstr(syn))
12478 #define warn_balanced(op, syn) ((void) \
12479 (!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN|EXPR_ENDARG) && \
12480 space_seen && !ISSPACE(c) && \
12481 (ambiguous_operator(op, syn), 0)))
12487 int space_seen = 0;
12493 int fallthru =
FALSE;
12519 switch (c =
nextc()) {
12527 case ' ':
case '\t':
case '\f':
case '\r':
12531 while ((c =
nextc())) {
12533 case ' ':
case '\t':
case '\f':
case '\r':
12542 ripper_dispatch_scan_event(parser,
tSP);
12555 ripper_dispatch_scan_event(parser,
tCOMMENT);
12560 if (
IS_lex_state(EXPR_BEG | EXPR_VALUE | EXPR_CLASS | EXPR_FNAME | EXPR_DOT)) {
12569 while ((c =
nextc())) {
12571 case ' ':
case '\t':
case '\f':
case '\r':
12576 if ((c =
nextc()) !=
'.') {
12589 parser->tokp =
lex_p;
12592 goto normal_newline;
12601 if ((c =
nextc()) ==
'*') {
12602 if ((c =
nextc()) ==
'=') {
12609 rb_warning0(
"`**' interpreted as argument prefix");
12628 rb_warning0(
"`*' interpreted as argument prefix");
12667 int first_p =
TRUE;
12676 ripper_dispatch_scan_event(parser,
tEMBDOC);
12685 if (c !=
'=')
continue;
12686 if (strncmp(
lex_p,
"end", 3) == 0 &&
12700 if ((c =
nextc()) ==
'=') {
12701 if ((c =
nextc()) ==
'=') {
12710 else if (c ==
'>') {
12722 (!
IS_ARG() || space_seen)) {
12724 if (token)
return token;
12735 if ((c =
nextc()) ==
'>') {
12742 if ((c =
nextc()) ==
'=') {
12756 if ((c =
nextc()) ==
'=') {
12760 if ((c =
nextc()) ==
'=') {
12828 rb_warnI(
"invalid character syntax; use ?\\%c", c2);
12845 else if (c ==
'\\') {
12874 if ((c =
nextc()) ==
'&') {
12876 if ((c =
nextc()) ==
'=') {
12884 else if (c ==
'=') {
12891 rb_warning0(
"`&' interpreted as argument prefix");
12905 if ((c =
nextc()) ==
'|') {
12907 if ((c =
nextc()) ==
'=') {
12987 if ((c =
nextc()) ==
'.') {
12988 if ((c =
nextc()) ==
'.') {
12996 yyerror(
"no .<digit> floating literal anymore; put 0 before dot");
13002 case '0':
case '1':
case '2':
case '3':
case '4':
13003 case '5':
case '6':
case '7':
case '8':
case '9':
13005 int is_float, seen_point, seen_e, nondigit;
13007 is_float = seen_point = seen_e = nondigit = 0;
13010 if (c ==
'-' || c ==
'+') {
13015 #define no_digits() do {yyerror("numeric literal without digits"); return 0;} while (0)
13018 if (c ==
'x' || c ==
'X') {
13024 if (nondigit)
break;
13031 }
while ((c =
nextc()) != -1);
13035 if (
toklen() == start) {
13038 else if (nondigit)
goto trailing_uc;
13042 if (c ==
'b' || c ==
'B') {
13045 if (c ==
'0' || c ==
'1') {
13048 if (nondigit)
break;
13052 if (c !=
'0' && c !=
'1')
break;
13055 }
while ((c =
nextc()) != -1);
13059 if (
toklen() == start) {
13062 else if (nondigit)
goto trailing_uc;
13066 if (c ==
'd' || c ==
'D') {
13072 if (nondigit)
break;
13079 }
while ((c =
nextc()) != -1);
13083 if (
toklen() == start) {
13086 else if (nondigit)
goto trailing_uc;
13094 if (c ==
'o' || c ==
'O') {
13097 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
13101 if (c >=
'0' && c <=
'7') {
13106 if (nondigit)
break;
13110 if (c < '0' || c >
'9')
break;
13111 if (c >
'7')
goto invalid_octal;
13114 }
while ((c =
nextc()) != -1);
13118 if (nondigit)
goto trailing_uc;
13127 if (c >
'7' && c <=
'9') {
13129 yyerror(
"Invalid octal digit");
13131 else if (c ==
'.' || c ==
'e' || c ==
'E') {
13143 case '0':
case '1':
case '2':
case '3':
case '4':
13144 case '5':
case '6':
case '7':
case '8':
case '9':
13150 if (nondigit)
goto trailing_uc;
13151 if (seen_point || seen_e) {
13156 if (c0 == -1 || !
ISDIGIT(c0)) {
13184 if (c !=
'-' && c !=
'+')
continue;
13190 if (nondigit)
goto decode_num;
13205 snprintf(tmp,
sizeof(tmp),
"trailing `%c' in number", nondigit);
13211 if (
errno == ERANGE) {
13272 if ((c =
nextc()) ==
'=') {
13288 if ((c =
nextc()) ==
'=') {
13308 if ((c =
nextc()) !=
'@') {
13335 if ((c =
nextc()) ==
']') {
13336 if ((c =
nextc()) ==
'=') {
13348 else if (
IS_ARG() && space_seen) {
13383 ripper_dispatch_scan_event(parser,
tSP);
13397 if (c == -1 || !
ISALNUM(c)) {
13404 yyerror(
"unknown type of %string");
13408 if (c == -1 || term == -1) {
13413 if (term ==
'(') term =
')';
13414 else if (term ==
'[') term =
']';
13415 else if (term ==
'{') term =
'}';
13416 else if (term ==
'<') term =
'>';
13466 yyerror(
"unknown type of %string");
13470 if ((c =
nextc()) ==
'=') {
13547 case '1':
case '2':
case '3':
13548 case '4':
case '5':
case '6':
13549 case '7':
case '8':
case '9':
13554 }
while (c != -1 &&
ISDIGIT(c));
13600 ripper_dispatch_scan_event(parser,
k__END__);
13623 switch (
tok()[0]) {
13624 case '@':
case '$':
13628 if ((c ==
'!' || c ==
'?') && !
peek(
'=')) {
13641 switch (
tok()[0]) {
13648 if (
tok()[1] ==
'@')
13694 if (state == EXPR_FNAME) {
13708 if (
CMDARG_P() && state != EXPR_CMDARG)
13710 if (state & (EXPR_BEG | EXPR_ENDARG))
13714 if (state & (EXPR_BEG | EXPR_VALUE))
13717 if (kw->
id[0] != kw->
id[1])
13754 yylex(
void *lval,
void *p)
13768 if (!
NIL_P(parser->delayed)) {
13769 ripper_dispatch_delayed_token(parser, t);
13773 ripper_dispatch_scan_event(parser, t);
13815 if (orig == (
NODE*)1)
return;
13824 #define parser_warning(node, mesg) parser_warning(parser, (node), (mesg))
13831 #define parser_warn(node, mesg) parser_warn(parser, (node), (mesg))
13838 if (tail == 0)
return head;
13840 if (h == 0)
return tail;
13879 tail->nd_end =
tail;
13881 end->nd_next =
tail;
13882 h->nd_end = tail->nd_end;
13892 if (list == 0)
return NEW_LIST(item);
13893 if (list->nd_next) {
13894 last = list->nd_next->nd_end;
13900 list->nd_alen += 1;
13902 list->nd_next->nd_end = last->nd_next;
13912 if (head->nd_next) {
13913 last = head->nd_next->nd_end;
13919 head->nd_alen += tail->nd_alen;
13920 last->nd_next =
tail;
13921 if (tail->nd_next) {
13922 head->nd_next->nd_end = tail->nd_next->nd_end;
13925 head->nd_next->nd_end =
tail;
13934 if (
NIL_P(tail))
return 1;
13955 if (!head)
return tail;
13956 if (!tail)
return head;
13966 if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
13969 lit = headlast->nd_lit;
13972 lit = head->nd_lit;
13992 tail->nd_lit = head->nd_lit;
13996 else if (
NIL_P(tail->nd_lit)) {
13998 head->nd_alen += tail->nd_alen - 1;
13999 head->nd_next->nd_end->nd_next = tail->nd_next;
14000 head->nd_next->nd_end = tail->nd_next->nd_end;
14003 else if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
14005 lit = headlast->nd_lit;
14008 tail->nd_lit =
Qnil;
14013 tail->nd_head =
NEW_STR(tail->nd_lit);
14160 static const char *
14163 static const char names[][12] = {
14164 "EXPR_BEG",
"EXPR_END",
"EXPR_ENDARG",
"EXPR_ENDFN",
"EXPR_ARG",
14165 "EXPR_CMDARG",
"EXPR_MID",
"EXPR_FNAME",
"EXPR_DOT",
"EXPR_CLASS",
14170 return names[
ffs(state)];
14185 # define assignable_result(x) get_value(lhs)
14186 # define parser_yyerror(parser, x) dispatch1(assign_error, lhs)
14188 # define assignable_result(x) (x)
14193 yyerror(
"Can't change the value of self");
14196 yyerror(
"Can't assign to nil");
14199 yyerror(
"Can't assign to true");
14202 yyerror(
"Can't assign to false");
14205 yyerror(
"Can't assign to __FILE__");
14208 yyerror(
"Can't assign to __LINE__");
14211 yyerror(
"Can't assign to __ENCODING__");
14245 yyerror(
"dynamic constant assignment");
14254 #undef assignable_result
14255 #undef parser_yyerror
14262 if (name == idUScore)
return 1;
14269 #define LVAR_USED ((ID)1 << (sizeof(ID) * CHAR_BIT - 1))
14277 yyerror(
"duplicated argument name");
14289 yyerror(
"duplicated argument name");
14328 id &= ~ID_SCOPE_MASK;
14357 if (!node2)
return node1;
14360 if (node1->nd_head)
14361 node1->nd_head =
arg_concat(node1->nd_head, node2);
14373 node1->nd_body =
list_concat(node1->nd_body, node2);
14382 if (!node1)
return NEW_LIST(node2);
14387 node1->nd_head =
arg_append(node1->nd_head, node2);
14408 if (!lhs)
return 0;
14420 lhs->nd_value = rhs;
14425 lhs->nd_args =
arg_append(lhs->nd_args, rhs);
14456 if (!cond)
yyerror(
"void value expression");
14461 while (node->nd_next) {
14462 node = node->nd_next;
14464 node = node->nd_head;
14468 node = node->nd_body;
14472 if (!node->nd_body) {
14473 node = node->nd_else;
14476 else if (!node->nd_else) {
14477 node = node->nd_body;
14481 node = node->nd_else;
14487 node = node->nd_2nd;
14501 const char *useless = 0;
14508 switch (node->nd_mid) {
14539 useless =
"a variable";
14542 useless =
"a constant";
14549 useless =
"a literal";
14574 useless =
"defined?";
14582 rb_warnS(
"possibly useless use of %s in void context", useless);
14595 if (!node->nd_next)
return;
14597 node = node->nd_next;
14604 NODE **
n = &node, *n1 = node;
14606 *n = n1 = n1->nd_body;
14614 NODE *node = *body;
14620 #define subnodes(n1, n2) \
14621 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \
14622 (!node->n2) ? (body = &node->n1, 1) : \
14623 (reduce_nodes(&node->n1), body = &node->n2, 1))
14633 *body = node = node->nd_stts;
14637 *body = node = node->nd_body;
14641 body = &node->nd_end->nd_head;
14647 body = &node->nd_body;
14656 if (node->nd_else) {
14657 body = &node->nd_resq;
14675 if (!node)
return 1;
14678 if (!(node = node->nd_head))
break;
14682 }
while ((node = node->nd_next) != 0);
14701 yyerror(
"multiple assignment in conditional");
14715 if (!node->nd_value)
return 1;
14718 parser_warn(node->nd_value,
"found = in conditional, should be ==");
14740 for (node = *rootnode; node; node = next) {
14744 next = node->nd_next;
14745 head = node->nd_head;
14748 switch (type =
nd_type(head)) {
14751 val =
rb_range_new(head->nd_beg->nd_lit, head->nd_end->nd_lit,
14756 head->nd_lit =
val;
14771 if (node == 0)
return 0;
14779 return cond0(parser, node);
14785 if (!node)
return 1;
14806 if (node == 0)
return 0;
14813 rb_warn0(
"string literal in condition");
14823 node->nd_1st =
cond0(parser, node->nd_1st);
14824 node->nd_2nd =
cond0(parser, node->nd_2nd);
14829 node->nd_beg =
range_op(parser, node->nd_beg);
14830 node->nd_end =
range_op(parser, node->nd_end);
14863 if (node == 0)
return 0;
14864 return cond0(parser, node);
14872 NODE *node = left, *second;
14873 while ((second = node->nd_2nd) != 0 && (
enum node_type)
nd_type(second) == type) {
14876 node->nd_2nd =
NEW_NODE(type, second, right, 0);
14879 return NEW_NODE(type, left, right, 0);
14896 if (node->nd_next == 0) {
14897 node = node->nd_head;
14918 switch (
TYPE(node->nd_lit)) {
14947 node2->nd_head = node1;
14961 args->
pre_init = m ? m->nd_next : 0;
15015 lit = node->nd_lit;
15034 ID vid = lhs->nd_vid;
15036 lhs->nd_value = rhs;
15039 asgn->nd_aid = vid;
15042 else if (op ==
tANDOP) {
15043 lhs->nd_value = rhs;
15065 else if (op ==
tANDOP) {
15081 else if (op ==
tANDOP) {
15097 return dispatch3(opassign, lhs, op, rhs);
15103 VALUE recv = dispatch3(field, lhs, type, attr);
15104 return dispatch3(opassign, recv, op, rhs);
15114 if (!local->
used)
return;
15118 if (cnt != local->
vars->
pos) {
15119 rb_bug(
"local->used->pos != local->vars->pos");
15121 for (i = 0; i <
cnt; ++
i) {
15122 if (!v[i] || (u[i] &
LVAR_USED))
continue;
15137 local->
used = !(inherit_dvars &&
15165 for (i = 0; i <
cnt; i++) {
15166 buf[
i] = src->
tbl[
i];
15179 if (cnt <= 0)
return 0;
15210 vars =
lvtbl->vars;
15211 args =
lvtbl->args;
15212 used =
lvtbl->used;
15217 if (used) used = used->
prev;
15233 static const struct vtable *
15241 return lvtbl->args;
15249 if ((tmp =
lvtbl->used) != 0) {
15265 while (
lvtbl->args != lvargs) {
15267 if (!
lvtbl->args) {
15288 args =
lvtbl->args;
15289 vars =
lvtbl->vars;
15290 used =
lvtbl->used;
15303 if (used) used = used->
prev;
15356 "regexp encoding option '%c' differs from source encoding '%s'",
15385 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
15391 const char *
s = (
const char *)name;
15408 rb_warningS(
"named capture conflicts a local variable - %s",
15488 NODE *scope = node;
15491 if (!node)
return node;
15495 node = node->nd_body;
15499 node = node->nd_body;
15506 prelude->nd_body = node;
15507 scope->nd_body = prelude;
15510 scope->nd_body = node;
15520 NODE *scope = node;
15523 if (!node)
return node;
15527 node = node->nd_body;
15531 node = node->nd_body;
15547 prelude->nd_body = node;
15548 scope->nd_body = prelude;
15551 scope->nd_body = node;
15557 static const struct {
15563 {
'+',
"+(binary)"},
15564 {
'-',
"-(binary)"},
15584 #define op_tbl_count numberof(op_tbl)
15586 #ifndef ENABLE_SELECTOR_NAMESPACE
15587 #define ENABLE_SELECTOR_NAMESPACE 0
15594 #if ENABLE_SELECTOR_NAMESPACE
15606 #if ENABLE_SELECTOR_NAMESPACE
15613 ivar2_cmp(
struct ivar2_key *key1,
struct ivar2_key *key2)
15615 if (key1->id == key2->id && key1->klass == key2->klass) {
15622 ivar2_hash(
struct ivar2_key *
key)
15624 return (key->id << 8) ^ (key->klass >> 2);
15638 #if ENABLE_SELECTOR_NAMESPACE
15646 (
void)lex_state_name(-1);
15675 if (m >= e)
return 0;
15679 else if (*m ==
'-') {
15693 return m == e ? mb + 1 : 0;
15711 const char *
m =
name;
15712 const char *
e = m +
len;
15715 if (!m || len <= 0)
return -1;
15735 case '<': ++
m;
break;
15736 case '=':
if (*++m ==
'>') ++
m;
break;
15743 case '>':
case '=': ++
m;
break;
15749 case '~': ++
m;
break;
15750 case '=':
if (*++m ==
'=') ++
m;
break;
15751 default:
return -1;
15756 if (*++m ==
'*') ++
m;
15759 case '+':
case '-':
15760 if (*++m ==
'@') ++
m;
15763 case '|':
case '^':
case '&':
case '/':
case '%':
case '~':
case '`':
15768 if (*++m !=
']')
return -1;
15769 if (*++m ==
'=') ++
m;
15773 if (len == 1)
return ID_JUNK;
15775 case '=':
case '~': ++
m;
break;
15776 default:
return -1;
15787 case '!':
case '?':
15800 return m == e ? type : -1;
15864 fake_str.
as.
heap.ptr = (
char *)name;
15866 str = (
VALUE)&fake_str;
15880 const char *
name, *
m, *
e;
15928 if (*
op_tbl[i].name == *m &&
15929 strcmp(
op_tbl[i].name, m) == 0) {
15936 if (m[last] ==
'=') {
15964 if (m - name < len)
id =
ID_JUNK;
16018 name[0] = (char)
id;
16041 if (
RBASIC(str)->klass == 0)
16052 id2 = (
id & ~ID_SCOPE_MASK) |
ID_CONST;
16059 if (
RBASIC(str)->klass == 0)
16072 if (!str)
return 0;
16166 VALUE name = *namep;
16217 fake_str.
as.
heap.ptr = (
char *)ptr;
16227 fake_str.
as.
heap.len = len - 1;
16325 parser->parser_ruby_sourcefile_string =
Qnil;
16326 parser->delayed =
Qnil;
16328 parser->result =
Qnil;
16329 parser->parsing_thread =
Qnil;
16330 parser->toplevel_p =
TRUE;
16339 #define parser_mark ripper_parser_mark
16340 #define parser_free ripper_parser_free
16358 rb_gc_mark(p->parser_ruby_sourcefile_string);
16380 prev = local->
prev;
16394 size_t size =
sizeof(*p);
16396 if (!ptr)
return 0;
16399 size +=
sizeof(*local);
16424 #undef rb_reserved_word
16508 yydebug =
RTEST(flag);
16513 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE))
16514 #define NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0)
16515 #define ADD2HEAP(n, c, p) ((parser->heap = (n))->u1.node = (p), \
16516 (n)->u3.cnt = (c), (p))
16544 if (ptr && (n = parser->
heap) !=
NULL) {
16546 if (n->
u1.
node == ptr) {
16563 while ((
n = *prev) !=
NULL) {
16564 if (
n->u1.node == ptr) {
16565 *prev =
n->u2.node;
16569 prev = &
n->u2.node;
16577 #ifdef RIPPER_DEBUG
16578 extern int rb_is_pointer_to_heap(
VALUE);
16584 if (x ==
Qfalse)
return x;
16585 if (x ==
Qtrue)
return x;
16586 if (x ==
Qnil)
return x;
16591 if (!rb_is_pointer_to_heap(x))
16604 return ((
NODE *)x)->nd_rval;
16613 #define validate(x) ((x) = get_value(x))
16625 return rb_funcall(parser->value, mid, 1, a);
16633 return rb_funcall(parser->value, mid, 2, a, b);
16642 return rb_funcall(parser->value, mid, 3, a, b, c);
16652 return rb_funcall(parser->value, mid, 4, a, b, c, d);
16663 return rb_funcall(parser->value, mid, 5, a, b, c, d, e);
16676 return rb_funcall(parser->value, mid, 7, a, b, c, d, e, f, g);
16679 static const struct kw_assoc {
16682 } keyword_to_name[] = {
16735 keyword_id_to_str(
ID id)
16737 const struct kw_assoc *
a;
16739 for (a = keyword_to_name; a->id; a++) {
16746 #undef ripper_id2sym
16748 ripper_id2sym(
ID id)
16758 if ((name = keyword_id_to_str(
id))) {
16771 rb_bug(
"cannot convert ID to string: %ld", (
unsigned long)
id);
16789 ripper_get_value(
VALUE v)
16796 return nd->nd_rval;
16805 va_start(args, fmt);
16812 ripper_warn0(
struct parser_params *parser,
const char *fmt)
16818 ripper_warnI(
struct parser_params *parser,
const char *fmt,
int a)
16825 ripper_warnS(
struct parser_params *parser,
const char *fmt,
const char *str)
16832 ripper_warning0(
struct parser_params *parser,
const char *fmt)
16838 ripper_warningS(
struct parser_params *parser,
const char *fmt,
const char *str)
16863 #define ripper_initialized_p(r) ((r)->parser_lex_input != 0)
16882 rb_scan_args(argc, argv,
"12", &src, &fname, &lineno);
16892 if (
NIL_P(fname)) {
16900 parser->parser_ruby_sourcefile_string = fname;
16907 struct ripper_args {
16914 ripper_parse0(
VALUE parser_v)
16920 ripper_yyparse((
void*)parser);
16921 return parser->result;
16925 ripper_ensure(
VALUE parser_v)
16930 parser->parsing_thread =
Qnil;
16941 ripper_parse(
VALUE self)
16946 if (!ripper_initialized_p(parser)) {
16949 if (!
NIL_P(parser->parsing_thread)) {
16956 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
16958 return parser->result;
16969 ripper_column(
VALUE self)
16975 if (!ripper_initialized_p(parser)) {
16978 if (
NIL_P(parser->parsing_thread))
return Qnil;
16990 ripper_filename(
VALUE self)
16995 if (!ripper_initialized_p(parser)) {
16998 return parser->parser_ruby_sourcefile_string;
17009 ripper_lineno(
VALUE self)
17014 if (!ripper_initialized_p(parser)) {
17017 if (
NIL_P(parser->parsing_thread))
return Qnil;
17021 #ifdef RIPPER_DEBUG
17057 InitVM_ripper(
void)
17073 #ifdef RIPPER_DEBUG
#define rb_enc_islower(c, enc)
char * parser_ruby_sourcefile
#define RB_TYPE_P(obj, type)
#define NEW_ARGSCAT(a, b)
VALUE rb_const_get_at(VALUE, ID)
static YYSIZE_T yytnamerr(char *yyres, const char *yystr)
struct local_vars * parser_lvtbl
VALUE rb_ary_unshift(VALUE ary, VALUE item)
static ID ripper_token2eventid(int tok)
#define IS_LABEL_SUFFIX(n)
#define new_args_tail(k, kr, b)
int rb_is_attrset_id(ID id)
int rb_enc_codelen(int c, rb_encoding *enc)
#define parser_precise_mbclen()
static NODE * remove_begin(NODE *)
#define NEW_STRTERM(func, term, paren)
static const yytype_int16 yydefgoto[]
#define list_concat(h, t)
static struct parser_params * parser_new(void)
int onig_foreach_name(regex_t *reg, int(*func)(const UChar *, const UChar *, int, int *, regex_t *, void *), void *arg)
st_table * st_init_table_with_size(const struct st_hash_type *, st_index_t)
#define NEW_IASGN(v, val)
VALUE rb_get_coverages(void)
static 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)
static YYSIZE_T yysyntax_error(char *yyresult, int yystate, int yychar)
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 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)
#define keyword_do_LAMBDA
static NODE * call_bin_op_gen(struct parser_params *, NODE *, ID, NODE *)
static int parser_tokadd_utf8(struct parser_params *parser, rb_encoding **encp, int string_literal, int symbol_literal, int regexp_literal)
int parser_compile_for_eval
int parser_token_info_enabled
#define NEW_OP_CDECL(v, op, val)
static NODE * new_const_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
SSL_METHOD *(* func)(void)
static void parser_heredoc_restore(struct parser_params *parser, NODE *here)
#define rb_usascii_str_new2
void rb_define_global_const(const char *, VALUE)
static NODE * gettable_gen(struct parser_params *, ID)
#define str_copy(_s, _p, _n)
void rb_gc_force_recycle(VALUE)
static struct symbols global_symbols
#define keyword__ENCODING__
VALUE rb_parser_end_seen_p(VALUE vparser)
struct token_info token_info
#define new_op_assign(lhs, op, rhs)
stack_type parser_cmdarg_stack
#define new_args(f, o, r, p, t)
VALUE rb_enc_from_encoding(rb_encoding *encoding)
static YYSIZE_T const char * yystr
#define token_info_push(token)
static VALUE debug_lines(const char *f)
#define rb_enc_isalnum(c, enc)
static int parser_here_document(struct parser_params *, NODE *)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
long(* rb_magic_comment_length_t)(struct parser_params *parser, const char *name, long len)
#define logop(type, node1, node2)
#define rb_enc_prev_char(s, p, e, enc)
VALUE rb_ary_push(VALUE ary, VALUE item)
static 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)
VALUE rb_funcall(VALUE, ID, int,...)
Calls a method.
static void ripper_init_eventids1_table(VALUE self)
#define reg_fragment_setenc(str, options)
static NODE * match_op_gen(struct parser_params *, NODE *, NODE *)
void rb_raise(VALUE exc, const char *fmt,...)
#define rb_warn4S(file, line, fmt, a)
static NODE * node_assign_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_enc_associate(VALUE obj, rb_encoding *enc)
static NODE * block_append_gen(struct parser_params *, NODE *, NODE *)
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
static NODE * newline_node(NODE *)
void rb_compile_warn(const char *file, int line, const char *fmt,...)
static NODE * range_op(struct parser_params *parser, NODE *node)
int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc)
VALUE rb_ary_new3(long n,...)
static void parser_pushback(struct parser_params *parser, int c)
static int lvar_defined_gen(struct parser_params *, ID)
void(* rb_magic_comment_setter_t)(struct parser_params *parser, const char *name, const char *val)
#define parser_is_identchar()
#define NEW_CVASGN(v, val)
static int parser_whole_match_p(struct parser_params *parser, const char *eos, long len, int indent)
#define RE_OPTION_ENCODING(e)
#define rb_backref_error(n)
#define NEW_OP_ASGN_OR(i, val)
static void parser_initialize(struct parser_params *parser)
#define ENCODING_IS_ASCII8BIT(obj)
static NODE * node_newnode(struct parser_params *, enum node_type, VALUE, VALUE, VALUE)
static const yytype_uint16 yyr1[]
ID rb_check_id(volatile VALUE *namep)
Returns ID for the given name if it is interned already, or 0.
ID rb_check_id_cstr(const char *ptr, long len, rb_encoding *enc)
static NODE * yycompile(struct parser_params *parser, const char *f, int line)
static ID * vtable_tblcpy(ID *buf, const struct vtable *src)
rb_encoding * rb_utf8_encoding(void)
static long parser_encode_length(struct parser_params *parser, const char *name, long len)
#define is_instance_id(id)
#define call_bin_op(recv, id, arg1)
#define rb_enc_isdigit(c, enc)
static enum node_type nodetype(NODE *node)
#define ENC_CODERANGE_BROKEN
VALUE rb_sym_all_symbols(void)
static VALUE lex_getline(struct parser_params *parser)
static NODE * ret_args_gen(struct parser_params *, NODE *)
VALUE rb_str_append(VALUE, VALUE)
static const yytype_int16 yytable[]
#define RUBY_DTRACE_PARSE_BEGIN(arg0, arg1)
#define NEW_CLASS(n, b, s)
int rb_enc_symname2_p(const char *name, long len, rb_encoding *enc)
VALUE rb_parser_set_yydebug(VALUE self, VALUE flag)
#define NEW_PRELUDE(p, b)
static int yylex(void *, void *)
#define ENCODING_GET(obj)
#define list_append(l, i)
NODE * parser_deferred_nodes
static int simple_re_meta(int c)
static int e_option_supplied(struct parser_params *parser)
static void block_dup_check_gen(struct parser_params *, NODE *, NODE *)
#define SPECIAL_PUNCT(idx)
#define nd_set_type(n, t)
static int vtable_size(const struct vtable *tbl)
static int assign_in_cond(struct parser_params *parser, NODE *node)
#define MEMZERO(p, type, n)
void rb_exc_raise(VALUE mesg)
#define NEW_UNLESS(c, t, e)
static NODE * list_append_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_usascii_str_new(const char *, long)
static rb_encoding * must_be_ascii_compatible(VALUE s)
int rb_is_const_id(ID id)
int rb_is_instance_id(ID id)
#define RUBY_DTRACE_PARSE_END(arg0, arg1)
struct RString::@63::@64 heap
static int parser_tokadd_string(struct parser_params *, int, int, int, long *, rb_encoding **)
int rb_is_method_name(VALUE name)
#define assignable_result(x)
#define NEW_OP_ASGN_AND(i, val)
static NODE * arg_concat_gen(struct parser_params *, NODE *, NODE *)
#define parser_warning(node, mesg)
static int parser_regx_options(struct parser_params *)
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,...)
static void parser_free(void *ptr)
#define StringValuePtr(v)
#define literal_concat(h, t)
static int symbols_i(VALUE sym, ID value, VALUE ary)
const rb_data_type_t * parent
#define NEW_RESCUE(b, res, e)
static int parser_tokadd_escape(struct parser_params *parser, rb_encoding **encp)
static int dvar_curr_gen(struct parser_params *, ID)
VALUE rb_parser_encoding(VALUE vparser)
static const yytype_uint16 yyrline[]
struct parser_params * parser
#define NEW_NODE(t, a0, a1, a2)
#define NEW_ENSURE(b, en)
RUBY_EXTERN VALUE rb_mKernel
static struct @60 op_tbl[]
char * ruby_strdup(const char *)
NODE * rb_compile_string(const char *f, VALUE s, int line)
static const yytype_uint16 yyprhs[]
static NODE * list_concat_gen(struct parser_params *, NODE *, NODE *)
int rb_ascii8bit_encindex(void)
static int is_global_name_punct(const char c)
#define is_attrset_id(id)
#define set_yylval_name(x)
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)
static NODE * parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
#define flush_string_content(enc)
#define NEW_ARGS_AUX(r, b)
#define TypedData_Wrap_Struct(klass, data_type, sval)
static VALUE coverage(const char *f, int n)
#define tokadd_string(f, t, p, n, e)
static NODE * new_yield_gen(struct parser_params *, NODE *)
static VALUE lex_get_str(struct parser_params *parser, VALUE s)
#define RUBY_FUNC_EXPORTED
unsigned char buf[MIME_BUF_SIZE]
VALUE rb_suppress_tracing(VALUE(*func)(VALUE), VALUE arg)
static int rb_str_symname_type(VALUE name)
VALUE rb_enc_associate_index(VALUE obj, int idx)
int rb_parse_in_main(void)
static int parser_nextc(struct parser_params *parser)
const char * parser_lex_pend
static ID formal_argument_gen(struct parser_params *, ID)
static void void_expr_gen(struct parser_params *, NODE *)
#define ALLOCA_N(type, n)
static NODE * dsym_node_gen(struct parser_params *, NODE *)
#define ENC_CODERANGE_UNKNOWN
void rb_gc_mark_symbols(void)
static ID intern_str(VALUE str)
#define YY_REDUCE_PRINT(Rule)
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 int parser_peek_variable_name(struct parser_params *parser)
#define NEW_LASGN(v, val)
static VALUE yycompile0(VALUE arg)
#define mixed_escape(beg, enc1, enc2)
VALUE rb_obj_as_string(VALUE)
#define set_yylval_num(x)
static ID register_symid_str(ID, VALUE)
#define NEW_OPT_ARG(i, v)
VALUE rb_hash_aset(VALUE, VALUE, VALUE)
int rb_dvar_defined(ID id)
static void dispose_string(VALUE str)
VALUE rb_str_resize(VALUE, long)
static NODE * aryset_gen(struct parser_params *, NODE *, NODE *)
int st_foreach(st_table *, int(*)(ANYARGS), st_data_t)
#define RUBY_DTRACE_PARSE_END_ENABLED()
static ID shadowing_lvar_gen(struct parser_params *, ID)
int rb_symname_p(const char *name)
#define new_attr_op_assign(lhs, type, attr, op, rhs)
VALUE rb_thread_current(void)
#define token_info_pop(token)
static void dyna_pop_gen(struct parser_params *, const struct vtable *)
VALUE rb_range_new(VALUE, VALUE, int)
static NODE * new_evstr_gen(struct parser_params *, NODE *)
VALUE rb_sprintf(const char *format,...)
#define rb_enc_mbcput(c, buf, enc)
#define IS_lex_state_for(x, ls)
static void reg_fragment_setenc_gen(struct parser_params *, VALUE, int)
static void yytype_int16 * bottom
#define rb_node_newnode(type, a1, a2, a3)
static void set_file_encoding(struct parser_params *parser, const char *str, const char *send)
int rb_is_attrset_name(VALUE name)
#define NEW_DASGN(v, val)
int rb_enc_symname_p(const char *name, rb_encoding *enc)
#define NEW_POSTARG(i, v)
#define CONST_ID(var, str)
static 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
static const yytype_int16 yyrhs[]
static void arg_ambiguous_gen(struct parser_params *parser)
#define heredoc_restore(n)
static void parser_prepare(struct parser_params *parser)
static NODE * cond_gen(struct parser_params *, NODE *)
#define rb_reserved_word(str, len)
#define NEW_UNTIL(c, b, n)
static const char *const yytname[]
#define NEW_MATCH3(r, n2)
struct parser_params * parser
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 *)
int rb_is_global_id(ID id)
static int reg_fragment_check_gen(struct parser_params *, VALUE, int)
static const yytype_int16 yycheck[]
VALUE rb_attr_get(VALUE, ID)
#define rb_enc_ispunct(c, enc)
VALUE rb_ensure(VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*e_proc)(ANYARGS), VALUE data2)
#define NEW_RESBODY(a, ex, n)
static NODE * new_attr_op_assign_gen(struct parser_params *parser, NODE *lhs, ID attr, ID op, NODE *rhs)
#define set_yylval_str(x)
VALUE rb_reg_check_preprocess(VALUE)
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 *)
VALUE rb_vsprintf(const char *, va_list)
#define reg_named_capture_assign(regexp, match)
#define MEMCPY(p1, p2, type, n)
static int parser_yyerror(struct parser_params *, const char *)
#define NEW_GASGN(v, val)
static void warning_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
#define NEW_ARGSPUSH(a, b)
int rb_is_const_name(VALUE name)
#define is_asgn_or_id(id)
static void parser_tokaddmbc(struct parser_params *parser, int c, rb_encoding *enc)
static NODE * attrset_gen(struct parser_params *, NODE *, ID)
int rb_is_local_name(VALUE name)
static struct vtable * dyna_push_gen(struct parser_params *)
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 int rb_enc_symname_type(const char *name, long len, rb_encoding *enc)
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)
VALUE rb_external_str_new_with_enc(const char *ptr, long len, rb_encoding *)
void rb_set_errinfo(VALUE err)
#define rb_enc_isspace(c, enc)
NODE * parser_lex_strterm
top_stmts dispatch0(stmts_new)
#define NEW_ATTRASGN(r, m, a)
static int token_info_get_column(struct parser_params *parser, const char *token)
#define node_assign(node1, node2)
static void void_stmts_gen(struct parser_params *, NODE *)
static int local_var_gen(struct parser_params *, ID)
static int token_info_has_nonspaces(struct parser_params *parser, const char *token)
st_index_t rb_str_hash(VALUE)
#define NEW_OP_ASGN2(r, i, o, val)
#define YYSTACK_ALLOC_MAXIMUM
static const rb_data_type_t parser_data_type
void rb_compile_warning(const char *file, int line, const char *fmt,...)
RUBY_EXTERN VALUE rb_cObject
static const yytype_uint16 yydefact[]
static NODE * new_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
#define parser_encoding_name()
static const yytype_int16 yypact[]
static VALUE lex_io_gets(struct parser_params *parser, VALUE io)
struct rb_encoding_entry * list
void * rb_parser_calloc(struct parser_params *parser, size_t nelem, size_t size)
#define STRNCASECMP(s1, s2, n)
rb_encoding * rb_filesystem_encoding(void)
VALUE rb_make_backtrace(void)
static void new_bv_gen(struct parser_params *, ID)
static NODE * negate_lit(NODE *)
static void fixup_nodes(NODE **)
#define STR_NEW3(p, n, e, func)
static const char * magic_comment_marker(const char *str, long len)
#define NEW_OP_ASGN1(p, id, a)
static int parser_magic_comment(struct parser_params *parser, const char *str, long len)
#define IS_LABEL_POSSIBLE()
VALUE rb_ary_new2(long capa)
VALUE rb_str_new(const char *, long)
const char * parser_lex_pbeg
int rb_is_class_id(ID id)
VALUE rb_parser_new(void)
static void parser_set_encode(struct parser_params *parser, const char *name)
#define call_uni_op(recv, id)
#define NEW_CDECL(v, val, path)
static int literal_node(NODE *node)
#define set_yylval_node(x)
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
#define formal_argument(id)
#define rb_enc_isupper(c, enc)
static int nodeline(NODE *node)
#define dispatch_heredoc_end()
static const yytype_uint8 yyr2[]
#define YY_STACK_PRINT(Bottom, Top)
#define rb_enc_isascii(c, enc)
int rb_str_hash_cmp(VALUE, VALUE)
#define YYSTACK_RELOCATE(Stack)
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)
void * rb_parser_realloc(struct parser_params *parser, void *ptr, size_t size)
#define shadowing_lvar(name)
st_table * st_init_numtable_with_size(st_index_t)
VALUE rb_cstr_to_inum(const char *str, int base, int badcheck)
#define reg_fragment_check(str, options)
int rb_parse_in_eval(void)
YYSTYPE const *const yyvaluep
#define ENCODING_SET(obj, i)
int rb_memcicmp(const void *, const void *, long)
ID rb_intern2(const char *name, long len)
NODE * rb_compile_file(const char *f, VALUE file, int start)
static int is_special_global_name(const char *m, const char *e, rb_encoding *enc)
VALUE rb_parser_get_yydebug(VALUE self)
VALUE(* parser_lex_gets)(struct parser_params *, VALUE)
#define rb_enc_isalpha(c, enc)
NODE * rb_parser_compile_cstr(volatile VALUE vparser, const char *f, const char *s, int len, int line)
VALUE rb_check_string_type(VALUE)
#define REALLOC_N(var, type, n)
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)
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)