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];
5286 NODE *node = (yyvsp[(2) - (2)].
node);
5287 while (node->nd_next) {
5288 node = node->nd_next;
5310 (yyval.
node) = (yyvsp[(1) - (2)].node);
5370 (yyvsp[(4) - (5)].node));
5384 (yyval.
node) = (yyvsp[(1) - (4)].node);
5385 if ((yyvsp[(2) - (4)].node)) {
5386 (yyval.
node) =
NEW_RESCUE((yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].
node), (yyvsp[(3) - (4)].node));
5388 else if ((yyvsp[(3) - (4)].node)) {
5389 rb_warn0(
"else without rescue is useless");
5392 if ((yyvsp[(4) - (4)].node)) {
5419 (yyval.
node) = (yyvsp[(1) - (2)].node);
5447 #line 1007 "parse.y"
5458 #line 1015 "parse.y"
5465 #line 1021 "parse.y"
5467 (yyval.
node) = (yyvsp[(1) - (1)].node);
5472 #line 1025 "parse.y"
5474 yyerror(
"BEGIN is permitted only at toplevel");
5483 #line 1033 "parse.y"
5487 (yyvsp[(4) - (5)].node));
5498 #line 1045 "parse.y"
5503 #line 1046 "parse.y"
5514 #line 1054 "parse.y"
5525 #line 1062 "parse.y"
5530 buf[1] = (char)(yyvsp[(3) - (3)].node)->nd_nth;
5539 #line 1073 "parse.y"
5542 yyerror(
"can't make alias for the number variables");
5552 #line 1083 "parse.y"
5555 (yyval.
node) = (yyvsp[(2) - (2)].node);
5563 #line 1091 "parse.y"
5575 #line 1100 "parse.y"
5587 #line 1109 "parse.y"
5590 if ((yyvsp[(1) - (3)].node) &&
nd_type((yyvsp[(1) - (3)].node)) ==
NODE_BEGIN) {
5594 (yyval.
node) =
NEW_WHILE(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node), 1);
5603 #line 1122 "parse.y"
5606 if ((yyvsp[(1) - (3)].node) &&
nd_type((yyvsp[(1) - (3)].node)) ==
NODE_BEGIN) {
5607 (yyval.
node) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node)->nd_body, 0);
5610 (yyval.
node) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node), 1);
5619 #line 1135 "parse.y"
5631 #line 1144 "parse.y"
5634 rb_warn0(
"END in method; use at_exit");
5638 NODE_SCOPE, 0 , (yyvsp[(3) - (4)].node) , 0 ));
5646 #line 1157 "parse.y"
5650 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5651 (yyval.
node) = (yyvsp[(1) - (3)].node);
5659 #line 1167 "parse.y"
5662 (yyval.
node) =
new_op_assign((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].node));
5667 #line 1172 "parse.y"
5673 if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].
node) =
NEW_ZARRAY();
5674 args =
arg_concat((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
5675 if ((yyvsp[(5) - (6)].
id) ==
tOROP) {
5676 (yyvsp[(5) - (6)].
id) = 0;
5678 else if ((yyvsp[(5) - (6)].
id) ==
tANDOP) {
5679 (yyvsp[(5) - (6)].
id) = 1;
5691 #line 1193 "parse.y"
5694 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
5699 #line 1198 "parse.y"
5702 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
5707 #line 1203 "parse.y"
5720 #line 1213 "parse.y"
5728 #line 1218 "parse.y"
5741 #line 1228 "parse.y"
5753 #line 1237 "parse.y"
5756 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5757 (yyval.
node) = (yyvsp[(1) - (3)].node);
5765 #line 1246 "parse.y"
5768 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5769 (yyval.
node) = (yyvsp[(1) - (3)].node);
5777 #line 1258 "parse.y"
5789 #line 1267 "parse.y"
5801 #line 1280 "parse.y"
5812 #line 1288 "parse.y"
5823 #line 1296 "parse.y"
5834 #line 1304 "parse.y"
5845 #line 1315 "parse.y"
5849 (yyval.
node) = (yyvsp[(1) - (1)].node);
5858 #line 1332 "parse.y"
5861 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
5870 #line 1343 "parse.y"
5881 #line 1353 "parse.y"
5894 #line 1365 "parse.y"
5905 #line 1375 "parse.y"
5908 (yyval.
node) = (yyvsp[(1) - (2)].node);
5917 #line 1384 "parse.y"
5921 (yyvsp[(1) - (3)].
node)->
nd_args = (yyvsp[(2) - (3)].node);
5922 (yyvsp[(3) - (3)].
node)->
nd_iter = (yyvsp[(1) - (3)].node);
5923 (yyval.
node) = (yyvsp[(3) - (3)].node);
5933 #line 1397 "parse.y"
5936 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
5945 #line 1406 "parse.y"
5949 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
5950 (yyval.
node) = (yyvsp[(5) - (5)].node);
5960 #line 1418 "parse.y"
5963 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
5972 #line 1427 "parse.y"
5976 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
5977 (yyval.
node) = (yyvsp[(5) - (5)].node);
5987 #line 1439 "parse.y"
5999 #line 1448 "parse.y"
6011 #line 1457 "parse.y"
6022 #line 1465 "parse.y"
6033 #line 1473 "parse.y"
6044 #line 1484 "parse.y"
6047 (yyval.
node) = (yyvsp[(2) - (3)].node);
6055 #line 1495 "parse.y"
6066 #line 1505 "parse.y"
6077 #line 1513 "parse.y"
6088 #line 1521 "parse.y"
6099 #line 1529 "parse.y"
6111 #line 1538 "parse.y"
6122 #line 1546 "parse.y"
6134 #line 1555 "parse.y"
6145 #line 1563 "parse.y"
6157 #line 1572 "parse.y"
6168 #line 1580 "parse.y"
6180 #line 1592 "parse.y"
6183 (yyval.
node) = (yyvsp[(2) - (3)].node);
6191 #line 1602 "parse.y"
6202 #line 1610 "parse.y"
6213 #line 1620 "parse.y"
6224 #line 1628 "parse.y"
6235 #line 1638 "parse.y"
6242 #line 1642 "parse.y"
6249 #line 1646 "parse.y"
6252 (yyval.
node) =
aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node));
6260 #line 1654 "parse.y"
6263 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6271 #line 1662 "parse.y"
6274 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6282 #line 1670 "parse.y"
6285 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6293 #line 1678 "parse.y"
6297 yyerror(
"dynamic constant assignment");
6308 #line 1690 "parse.y"
6312 yyerror(
"dynamic constant assignment");
6321 #line 1700 "parse.y"
6334 #line 1712 "parse.y"
6346 #line 1721 "parse.y"
6358 #line 1730 "parse.y"
6361 (yyval.
node) =
aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node));
6369 #line 1738 "parse.y"
6372 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6380 #line 1746 "parse.y"
6383 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6391 #line 1754 "parse.y"
6394 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6402 #line 1762 "parse.y"
6406 yyerror(
"dynamic constant assignment");
6418 #line 1775 "parse.y"
6422 yyerror(
"dynamic constant assignment");
6434 #line 1788 "parse.y"
6446 #line 1799 "parse.y"
6449 yyerror(
"class/module name must be CONSTANT");
6457 #line 1810 "parse.y"
6468 #line 1818 "parse.y"
6479 #line 1826 "parse.y"
6490 #line 1839 "parse.y"
6493 (yyval.
id) = (yyvsp[(1) - (1)].
id);
6498 #line 1844 "parse.y"
6502 (yyval.
id) = (yyvsp[(1) - (1)].
id);
6510 #line 1859 "parse.y"
6521 #line 1870 "parse.y"
6532 #line 1877 "parse.y"
6537 #line 1878 "parse.y"
6548 #line 1887 "parse.y"
6553 #line 1888 "parse.y"
6558 #line 1889 "parse.y"
6563 #line 1890 "parse.y"
6568 #line 1891 "parse.y"
6573 #line 1892 "parse.y"
6578 #line 1893 "parse.y"
6583 #line 1894 "parse.y"
6588 #line 1895 "parse.y"
6593 #line 1896 "parse.y"
6598 #line 1897 "parse.y"
6603 #line 1898 "parse.y"
6608 #line 1899 "parse.y"
6613 #line 1900 "parse.y"
6618 #line 1901 "parse.y"
6623 #line 1902 "parse.y"
6628 #line 1903 "parse.y"
6633 #line 1904 "parse.y"
6638 #line 1905 "parse.y"
6643 #line 1906 "parse.y"
6648 #line 1907 "parse.y"
6653 #line 1908 "parse.y"
6658 #line 1909 "parse.y"
6663 #line 1910 "parse.y"
6668 #line 1911 "parse.y"
6673 #line 1912 "parse.y"
6678 #line 1913 "parse.y"
6683 #line 1914 "parse.y"
6688 #line 1915 "parse.y"
6693 #line 1916 "parse.y"
6698 #line 1934 "parse.y"
6710 #line 1943 "parse.y"
6723 #line 1953 "parse.y"
6726 (yyval.
node) =
new_op_assign((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].node));
6731 #line 1958 "parse.y"
6739 (yyval.
node) =
new_op_assign((yyvsp[(1) - (5)].node), (yyvsp[(2) - (5)].
id), (yyvsp[(3) - (5)].node));
6744 #line 1968 "parse.y"
6750 if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].
node) =
NEW_ZARRAY();
6752 args =
NEW_ARGSCAT((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
6755 args =
arg_concat((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
6757 if ((yyvsp[(5) - (6)].
id) ==
tOROP) {
6758 (yyvsp[(5) - (6)].
id) = 0;
6760 else if ((yyvsp[(5) - (6)].
id) ==
tANDOP) {
6761 (yyvsp[(5) - (6)].
id) = 1;
6773 #line 1994 "parse.y"
6776 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
6781 #line 1999 "parse.y"
6784 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
6789 #line 2004 "parse.y"
6797 #line 2009 "parse.y"
6810 #line 2019 "parse.y"
6823 #line 2029 "parse.y"
6837 #line 2040 "parse.y"
6854 #line 2054 "parse.y"
6871 #line 2068 "parse.y"
6882 #line 2076 "parse.y"
6893 #line 2084 "parse.y"
6904 #line 2092 "parse.y"
6915 #line 2100 "parse.y"
6926 #line 2108 "parse.y"
6937 #line 2116 "parse.y"
6949 #line 2125 "parse.y"
6961 #line 2134 "parse.y"
6972 #line 2142 "parse.y"
6983 #line 2150 "parse.y"
6994 #line 2158 "parse.y"
7005 #line 2166 "parse.y"
7016 #line 2174 "parse.y"
7027 #line 2182 "parse.y"
7038 #line 2190 "parse.y"
7049 #line 2198 "parse.y"
7060 #line 2206 "parse.y"
7071 #line 2214 "parse.y"
7082 #line 2222 "parse.y"
7093 #line 2230 "parse.y"
7104 #line 2238 "parse.y"
7118 #line 2249 "parse.y"
7129 #line 2257 "parse.y"
7140 #line 2265 "parse.y"
7151 #line 2273 "parse.y"
7162 #line 2281 "parse.y"
7173 #line 2289 "parse.y"
7184 #line 2297 "parse.y"
7195 #line 2304 "parse.y"
7200 #line 2305 "parse.y"
7213 #line 2315 "parse.y"
7217 (yyval.
node) =
NEW_IF(
cond((yyvsp[(1) - (6)].node)), (yyvsp[(3) - (6)].
node), (yyvsp[(6) - (6)].node));
7226 #line 2325 "parse.y"
7228 (yyval.
node) = (yyvsp[(1) - (1)].node);
7233 #line 2331 "parse.y"
7237 (yyval.
node) = (yyvsp[(1) - (1)].node);
7246 #line 2344 "parse.y"
7248 (yyval.
node) = (yyvsp[(1) - (2)].node);
7253 #line 2348 "parse.y"
7264 #line 2356 "parse.y"
7275 #line 2366 "parse.y"
7278 (yyval.
node) = (yyvsp[(2) - (3)].node);
7286 #line 2382 "parse.y"
7288 (yyval.
node) = (yyvsp[(1) - (2)].node);
7293 #line 2386 "parse.y"
7304 #line 2394 "parse.y"
7315 #line 2404 "parse.y"
7327 #line 2413 "parse.y"
7338 #line 2421 "parse.y"
7351 #line 2431 "parse.y"
7363 #line 2448 "parse.y"
7371 #line 2453 "parse.y"
7375 (yyval.
node) = (yyvsp[(2) - (2)].node);
7380 #line 2461 "parse.y"
7391 #line 2471 "parse.y"
7393 (yyval.
node) = (yyvsp[(2) - (2)].node);
7398 #line 2475 "parse.y"
7405 #line 2481 "parse.y"
7416 #line 2489 "parse.y"
7427 #line 2497 "parse.y"
7431 if ((n1 =
splat_array((yyvsp[(1) - (3)].node))) != 0) {
7444 #line 2511 "parse.y"
7461 #line 2527 "parse.y"
7465 if ((n1 =
splat_array((yyvsp[(1) - (3)].node))) != 0) {
7478 #line 2541 "parse.y"
7483 (n1 =
splat_array((yyvsp[(1) - (4)].node))) != 0) {
7496 #line 2556 "parse.y"
7507 #line 2576 "parse.y"
7518 #line 2584 "parse.y"
7530 #line 2594 "parse.y"
7534 if ((yyvsp[(3) - (4)].node) ==
NULL) {
7540 nd_set_line((yyvsp[(3) - (4)].node), (yyvsp[(2) - (4)].num));
7551 #line 2611 "parse.y"
7556 #line 2612 "parse.y"
7567 #line 2619 "parse.y"
7572 #line 2620 "parse.y"
7575 (yyval.
node) = (yyvsp[(2) - (4)].node);
7583 #line 2628 "parse.y"
7586 (yyval.
node) = (yyvsp[(2) - (3)].node);
7594 #line 2636 "parse.y"
7605 #line 2644 "parse.y"
7616 #line 2652 "parse.y"
7619 if ((yyvsp[(2) - (3)].node) == 0) {
7623 (yyval.
node) = (yyvsp[(2) - (3)].node);
7632 #line 2665 "parse.y"
7643 #line 2673 "parse.y"
7654 #line 2681 "parse.y"
7665 #line 2689 "parse.y"
7676 #line 2697 "parse.y"
7687 #line 2704 "parse.y"
7692 #line 2705 "parse.y"
7705 #line 2715 "parse.y"
7716 #line 2723 "parse.y"
7727 #line 2731 "parse.y"
7730 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
7731 (yyval.
node) = (yyvsp[(2) - (2)].node);
7740 #line 2742 "parse.y"
7744 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
7745 (yyval.
node) = (yyvsp[(2) - (2)].node);
7753 #line 2752 "parse.y"
7755 (yyval.
node) = (yyvsp[(2) - (2)].node);
7760 #line 2759 "parse.y"
7763 (yyval.
node) =
NEW_IF(
cond((yyvsp[(2) - (6)].node)), (yyvsp[(4) - (6)].node), (yyvsp[(5) - (6)].
node));
7772 #line 2771 "parse.y"
7775 (yyval.
node) =
NEW_UNLESS(
cond((yyvsp[(2) - (6)].node)), (yyvsp[(4) - (6)].
node), (yyvsp[(5) - (6)].node));
7784 #line 2779 "parse.y"
7789 #line 2779 "parse.y"
7794 #line 2782 "parse.y"
7806 #line 2790 "parse.y"
7811 #line 2790 "parse.y"
7816 #line 2793 "parse.y"
7828 #line 2804 "parse.y"
7840 #line 2813 "parse.y"
7851 #line 2821 "parse.y"
7856 #line 2823 "parse.y"
7861 #line 2826 "parse.y"
7906 m->nd_next = (yyvsp[(2) - (9)].
node);
7915 tbl[0] = 1; tbl[1] =
id;
7916 (yyval.
node) =
NEW_FOR(0, (yyvsp[(5) - (9)].node), scope);
7925 #line 2887 "parse.y"
7928 yyerror(
"class definition in method body");
7938 #line 2898 "parse.y"
7941 (yyval.
node) =
NEW_CLASS((yyvsp[(2) - (6)].node), (yyvsp[(5) - (6)].
node), (yyvsp[(3) - (6)].node));
7951 #line 2908 "parse.y"
7959 #line 2913 "parse.y"
7968 #line 2920 "parse.y"
7983 #line 2932 "parse.y"
7986 yyerror(
"module definition in method body");
7996 #line 2943 "parse.y"
8009 #line 2953 "parse.y"
8019 #line 2962 "parse.y"
8036 #line 2975 "parse.y"
8041 #line 2976 "parse.y"
8050 #line 2984 "parse.y"
8055 (yyval.
node) =
NEW_DEFS((yyvsp[(2) - (9)].node), (yyvsp[(5) - (9)].
id), (yyvsp[(7) - (9)].node), body);
8066 #line 2997 "parse.y"
8077 #line 3005 "parse.y"
8088 #line 3013 "parse.y"
8099 #line 3021 "parse.y"
8110 #line 3031 "parse.y"
8114 (yyval.
node) = (yyvsp[(1) - (1)].node);
8123 #line 3043 "parse.y"
8130 #line 3049 "parse.y"
8137 #line 3055 "parse.y"
8144 #line 3061 "parse.y"
8151 #line 3067 "parse.y"
8158 #line 3073 "parse.y"
8165 #line 3079 "parse.y"
8172 #line 3085 "parse.y"
8179 #line 3091 "parse.y"
8186 #line 3097 "parse.y"
8197 #line 3107 "parse.y"
8204 #line 3137 "parse.y"
8207 (yyval.
node) =
NEW_IF(
cond((yyvsp[(2) - (5)].node)), (yyvsp[(4) - (5)].
node), (yyvsp[(5) - (5)].node));
8216 #line 3149 "parse.y"
8219 (yyval.
node) = (yyvsp[(2) - (2)].node);
8227 #line 3163 "parse.y"
8238 #line 3171 "parse.y"
8241 (yyval.
node) = (yyvsp[(2) - (3)].node);
8249 #line 3181 "parse.y"
8260 #line 3189 "parse.y"
8271 #line 3199 "parse.y"
8282 #line 3207 "parse.y"
8294 #line 3216 "parse.y"
8306 #line 3225 "parse.y"
8317 #line 3233 "parse.y"
8328 #line 3241 "parse.y"
8340 #line 3250 "parse.y"
8355 #line 3262 "parse.y"
8366 #line 3270 "parse.y"
8377 #line 3281 "parse.y"
8379 (yyval.
node) =
new_args_tail((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].
id));
8384 #line 3285 "parse.y"
8391 #line 3289 "parse.y"
8398 #line 3293 "parse.y"
8405 #line 3299 "parse.y"
8407 (yyval.
node) = (yyvsp[(2) - (2)].node);
8412 #line 3303 "parse.y"
8419 #line 3309 "parse.y"
8421 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), (yyvsp[(5) - (6)].
id),
Qnone, (yyvsp[(6) - (6)].
node));
8426 #line 3313 "parse.y"
8428 (yyval.
node) =
new_args((yyvsp[(1) - (8)].node), (yyvsp[(3) - (8)].
node), (yyvsp[(5) - (8)].
id), (yyvsp[(7) - (8)].
node), (yyvsp[(8) - (8)].node));
8433 #line 3317 "parse.y"
8440 #line 3321 "parse.y"
8442 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node),
Qnone, (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
8447 #line 3325 "parse.y"
8454 #line 3329 "parse.y"
8465 #line 3337 "parse.y"
8467 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node),
Qnone, (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
8472 #line 3341 "parse.y"
8479 #line 3345 "parse.y"
8486 #line 3349 "parse.y"
8488 (yyval.
node) =
new_args(
Qnone, (yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
8493 #line 3353 "parse.y"
8500 #line 3357 "parse.y"
8507 #line 3361 "parse.y"
8514 #line 3365 "parse.y"
8521 #line 3369 "parse.y"
8528 #line 3376 "parse.y"
8535 #line 3382 "parse.y"
8547 #line 3391 "parse.y"
8559 #line 3400 "parse.y"
8562 (yyval.
node) = (yyvsp[(2) - (4)].node);
8570 #line 3411 "parse.y"
8577 #line 3415 "parse.y"
8588 #line 3441 "parse.y"
8599 #line 3449 "parse.y"
8606 #line 3454 "parse.y"
8613 #line 3457 "parse.y"
8621 #line 3463 "parse.y"
8634 #line 3475 "parse.y"
8637 (yyval.
node) = (yyvsp[(2) - (4)].node);
8645 #line 3483 "parse.y"
8648 (yyval.
node) = (yyvsp[(1) - (1)].node);
8656 #line 3493 "parse.y"
8658 (yyval.
node) = (yyvsp[(2) - (3)].node);
8663 #line 3497 "parse.y"
8665 (yyval.
node) = (yyvsp[(2) - (3)].node);
8670 #line 3503 "parse.y"
8680 #line 3512 "parse.y"
8693 #line 3524 "parse.y"
8702 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
8703 (yyval.
node) = (yyvsp[(2) - (2)].node);
8712 #line 3540 "parse.y"
8715 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
8724 #line 3549 "parse.y"
8728 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
8729 (yyval.
node) = (yyvsp[(5) - (5)].node);
8739 #line 3561 "parse.y"
8743 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
8744 (yyval.
node) = (yyvsp[(5) - (5)].node);
8754 #line 3575 "parse.y"
8757 (yyval.
node) = (yyvsp[(1) - (2)].node);
8766 #line 3584 "parse.y"
8775 #line 3590 "parse.y"
8778 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(5) - (5)].node));
8788 #line 3600 "parse.y"
8797 #line 3606 "parse.y"
8800 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(5) - (5)].node));
8810 #line 3616 "parse.y"
8813 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id), 0);
8821 #line 3624 "parse.y"
8830 #line 3630 "parse.y"
8844 #line 3641 "parse.y"
8853 #line 3647 "parse.y"
8867 #line 3658 "parse.y"
8878 #line 3666 "parse.y"
8889 #line 3674 "parse.y"
8892 if ((yyvsp[(1) - (4)].node) &&
nd_type((yyvsp[(1) - (4)].node)) ==
NODE_SELF)
8895 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node),
tAREF, (yyvsp[(3) - (4)].node));
8904 #line 3688 "parse.y"
8915 #line 3697 "parse.y"
8928 #line 3707 "parse.y"
8939 #line 3716 "parse.y"
8952 #line 3730 "parse.y"
8955 (yyval.
node) =
NEW_WHEN((yyvsp[(2) - (5)].node), (yyvsp[(4) - (5)].
node), (yyvsp[(5) - (5)].node));
8963 #line 3746 "parse.y"
8966 if ((yyvsp[(3) - (6)].node)) {
8970 (yyval.
node) =
NEW_RESBODY((yyvsp[(2) - (6)].node), (yyvsp[(5) - (6)].
node), (yyvsp[(6) - (6)].node));
8983 #line 3766 "parse.y"
8994 #line 3774 "parse.y"
9005 #line 3785 "parse.y"
9007 (yyval.
node) = (yyvsp[(2) - (2)].node);
9012 #line 3792 "parse.y"
9015 (yyval.
node) = (yyvsp[(2) - (2)].node);
9023 #line 3804 "parse.y"
9034 #line 3815 "parse.y"
9037 NODE *node = (yyvsp[(1) - (1)].
node);
9044 (yyval.
node) = node;
9052 #line 3834 "parse.y"
9063 #line 3844 "parse.y"
9066 (yyval.
node) = (yyvsp[(2) - (3)].node);
9074 #line 3854 "parse.y"
9077 NODE *node = (yyvsp[(2) - (3)].
node);
9094 (yyval.
node) = node;
9102 #line 3881 "parse.y"
9106 NODE *node = (yyvsp[(2) - (3)].
node);
9130 for (list = (prev = node)->
nd_next;
list; list = list->nd_next) {
9132 VALUE tail = list->nd_head->nd_lit;
9134 VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
9140 prev->nd_next = list->nd_next;
9153 if (!node->nd_next) {
9160 (yyval.
node) = node;
9168 #line 3946 "parse.y"
9180 #line 3955 "parse.y"
9183 (yyval.
node) = (yyvsp[(2) - (3)].node);
9191 #line 3965 "parse.y"
9202 #line 3973 "parse.y"
9213 #line 3991 "parse.y"
9224 #line 4001 "parse.y"
9236 #line 4010 "parse.y"
9239 (yyval.
node) = (yyvsp[(2) - (3)].node);
9247 #line 4020 "parse.y"
9258 #line 4028 "parse.y"
9271 #line 4040 "parse.y"
9283 #line 4049 "parse.y"
9286 (yyval.
node) = (yyvsp[(2) - (3)].node);
9294 #line 4059 "parse.y"
9306 #line 4068 "parse.y"
9309 (yyval.
node) = (yyvsp[(2) - (3)].node);
9317 #line 4078 "parse.y"
9328 #line 4086 "parse.y"
9339 #line 4096 "parse.y"
9350 #line 4104 "parse.y"
9365 #line 4118 "parse.y"
9376 #line 4126 "parse.y"
9387 #line 4136 "parse.y"
9398 #line 4144 "parse.y"
9409 #line 4154 "parse.y"
9420 #line 4162 "parse.y"
9423 NODE *
head = (yyvsp[(1) - (2)].
node), *tail = (yyvsp[(2) - (2)].node);
9425 (yyval.
node) = tail;
9428 (yyval.
node) = head;
9450 #line 4192 "parse.y"
9459 #line 4198 "parse.y"
9472 #line 4208 "parse.y"
9482 #line 4214 "parse.y"
9491 #line 4219 "parse.y"
9499 #line 4224 "parse.y"
9506 if ((yyvsp[(5) - (6)].node)) (yyvsp[(5) - (6)].node)->flags &= ~
NODE_FL_NEWLINE;
9515 #line 4239 "parse.y"
9526 #line 4247 "parse.y"
9537 #line 4255 "parse.y"
9548 #line 4266 "parse.y"
9552 (yyval.
id) = (yyvsp[(2) - (2)].
id);
9560 #line 4283 "parse.y"
9572 #line 4296 "parse.y"
9583 #line 4304 "parse.y"
9594 #line 4320 "parse.y"
9599 #line 4321 "parse.y"
9604 #line 4322 "parse.y"
9609 #line 4323 "parse.y"
9614 #line 4324 "parse.y"
9619 #line 4325 "parse.y"
9624 #line 4326 "parse.y"
9629 #line 4330 "parse.y"
9645 #line 4343 "parse.y"
9656 #line 4353 "parse.y"
9667 #line 4361 "parse.y"
9678 #line 4375 "parse.y"
9689 #line 4383 "parse.y"
9697 #line 4388 "parse.y"
9699 (yyval.
node) = (yyvsp[(3) - (4)].node);
9704 #line 4392 "parse.y"
9717 #line 4404 "parse.y"
9720 (yyval.
node) = (yyvsp[(2) - (3)].node);
9730 #line 4414 "parse.y"
9732 (yyval.
node) = (yyvsp[(1) - (2)].node);
9739 #line 4422 "parse.y"
9741 (yyval.
node) =
new_args_tail((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].
id));
9746 #line 4426 "parse.y"
9753 #line 4430 "parse.y"
9760 #line 4434 "parse.y"
9767 #line 4440 "parse.y"
9769 (yyval.
node) = (yyvsp[(2) - (2)].node);
9774 #line 4444 "parse.y"
9781 #line 4450 "parse.y"
9783 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), (yyvsp[(5) - (6)].
id),
Qnone, (yyvsp[(6) - (6)].
node));
9788 #line 4454 "parse.y"
9790 (yyval.
node) =
new_args((yyvsp[(1) - (8)].node), (yyvsp[(3) - (8)].
node), (yyvsp[(5) - (8)].
id), (yyvsp[(7) - (8)].
node), (yyvsp[(8) - (8)].node));
9795 #line 4458 "parse.y"
9802 #line 4462 "parse.y"
9804 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node),
Qnone, (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
9809 #line 4466 "parse.y"
9816 #line 4470 "parse.y"
9818 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node),
Qnone, (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
9823 #line 4474 "parse.y"
9830 #line 4478 "parse.y"
9837 #line 4482 "parse.y"
9839 (yyval.
node) =
new_args(
Qnone, (yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
9844 #line 4486 "parse.y"
9851 #line 4490 "parse.y"
9858 #line 4494 "parse.y"
9865 #line 4498 "parse.y"
9872 #line 4502 "parse.y"
9879 #line 4506 "parse.y"
9887 #line 4513 "parse.y"
9890 yyerror(
"formal argument cannot be a constant");
9899 #line 4522 "parse.y"
9902 yyerror(
"formal argument cannot be an instance variable");
9911 #line 4531 "parse.y"
9914 yyerror(
"formal argument cannot be a global variable");
9923 #line 4540 "parse.y"
9926 yyerror(
"formal argument cannot be a class variable");
9935 #line 4552 "parse.y"
9938 (yyval.
id) = (yyvsp[(1) - (1)].
id);
9943 #line 4559 "parse.y"
9955 #line 4568 "parse.y"
9975 #line 4594 "parse.y"
9978 (yyval.
node) = (yyvsp[(1) - (3)].node);
9989 #line 4607 "parse.y"
10002 #line 4619 "parse.y"
10015 #line 4631 "parse.y"
10018 (yyval.
node) = (yyvsp[(1) - (1)].node);
10026 #line 4639 "parse.y"
10029 NODE *kws = (yyvsp[(1) - (3)].
node);
10031 while (kws->nd_next) {
10032 kws = kws->nd_next;
10034 kws->nd_next = (yyvsp[(3) - (3)].
node);
10035 (yyval.
node) = (yyvsp[(1) - (3)].node);
10043 #line 4656 "parse.y"
10046 (yyval.
node) = (yyvsp[(1) - (1)].node);
10054 #line 4664 "parse.y"
10057 NODE *kws = (yyvsp[(1) - (3)].
node);
10059 while (kws->nd_next) {
10060 kws = kws->nd_next;
10062 kws->nd_next = (yyvsp[(3) - (3)].
node);
10063 (yyval.
node) = (yyvsp[(1) - (3)].node);
10071 #line 4684 "parse.y"
10074 (yyval.
id) = (yyvsp[(2) - (2)].
id);
10079 #line 4689 "parse.y"
10086 #line 4695 "parse.y"
10099 #line 4707 "parse.y"
10112 #line 4719 "parse.y"
10115 (yyval.
node) = (yyvsp[(1) - (1)].node);
10123 #line 4727 "parse.y"
10128 while (opts->nd_next) {
10129 opts = opts->nd_next;
10131 opts->nd_next = (yyvsp[(3) - (3)].
node);
10132 (yyval.
node) = (yyvsp[(1) - (3)].node);
10140 #line 4743 "parse.y"
10143 (yyval.
node) = (yyvsp[(1) - (1)].node);
10151 #line 4751 "parse.y"
10156 while (opts->nd_next) {
10157 opts = opts->nd_next;
10159 opts->nd_next = (yyvsp[(3) - (3)].
node);
10160 (yyval.
node) = (yyvsp[(1) - (3)].node);
10168 #line 4771 "parse.y"
10172 yyerror(
"rest argument must be local variable");
10176 (yyval.
id) = (yyvsp[(2) - (2)].
id);
10184 #line 4784 "parse.y"
10196 #line 4799 "parse.y"
10200 yyerror(
"block argument must be local variable");
10202 yyerror(
"duplicated block argument name");
10206 (yyval.
id) = (yyvsp[(2) - (2)].
id);
10214 #line 4816 "parse.y"
10216 (yyval.
id) = (yyvsp[(2) - (2)].
id);
10221 #line 4820 "parse.y"
10232 #line 4830 "parse.y"
10236 (yyval.
node) = (yyvsp[(1) - (1)].node);
10245 #line 4839 "parse.y"
10250 #line 4840 "parse.y"
10253 if ((yyvsp[(3) - (4)].node) == 0) {
10254 yyerror(
"can't define singleton method for ().");
10257 switch (
nd_type((yyvsp[(3) - (4)].node))) {
10266 yyerror(
"can't define singleton method for literals");
10272 (yyval.
node) = (yyvsp[(3) - (4)].node);
10280 #line 4870 "parse.y"
10283 (yyval.
node) = (yyvsp[(1) - (2)].node);
10291 #line 4887 "parse.y"
10302 #line 4897 "parse.y"
10313 #line 4905 "parse.y"
10324 #line 4913 "parse.y"
10335 #line 4971 "parse.y"
10340 #line 4976 "parse.y"
10345 #line 4980 "parse.y"
10357 #line 10356 "parse.c"
10376 if (0 <= yystate && yystate <=
YYLAST && yycheck[yystate] == *yyssp)
10392 #if ! YYERROR_VERBOSE
10402 if (yymsg != yymsgbuf)
10406 yymsg_alloc = yyalloc;
10414 if (0 < yysize && yysize <= yymsg_alloc)
10431 if (yyerrstatus == 3)
10436 if (yychar <=
YYEOF)
10439 if (yychar ==
YYEOF)
10444 yydestruct (
"Error: discarding",
10445 yytoken, &yylval, parser);
10489 yyn = yytable[
yyn];
10500 yydestruct (
"Error: popping",
10501 yystos[yystate], yyvsp, parser);
10546 yydestruct (
"Cleanup: discarding lookahead",
10547 yytoken, &yylval, parser);
10552 while (yyssp != yyss)
10554 yydestruct (
"Cleanup: popping",
10555 yystos[*yyssp], yyvsp, parser);
10562 #if YYERROR_VERBOSE
10563 if (yymsg != yymsgbuf)
10567 return YYID (yyresult);
10571 #line 4988 "parse.y"
10576 # define yylval (*((YYSTYPE*)(parser->parser_yylval)))
10585 # define nextc() parser_nextc(parser)
10586 # define pushback(c) parser_pushback(parser, (c))
10587 # define newtok() parser_newtok(parser)
10588 # define tokspace(n) parser_tokspace(parser, (n))
10589 # define tokadd(c) parser_tokadd(parser, (c))
10590 # define tok_hex(numlen) parser_tok_hex(parser, (numlen))
10591 # define read_escape(flags,e) parser_read_escape(parser, (flags), (e))
10592 # define tokadd_escape(e) parser_tokadd_escape(parser, (e))
10593 # define regx_options() parser_regx_options(parser)
10594 # define tokadd_string(f,t,p,n,e) parser_tokadd_string(parser,(f),(t),(p),(n),(e))
10595 # define parse_string(n) parser_parse_string(parser,(n))
10596 # define tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc))
10597 # define here_document(n) parser_here_document(parser,(n))
10598 # define heredoc_identifier() parser_heredoc_identifier(parser)
10599 # define heredoc_restore(n) parser_heredoc_restore(parser,(n))
10600 # define whole_match_p(e,l,i) parser_whole_match_p(parser,(e),(l),(i))
10603 # define set_yylval_str(x) (yylval.node = NEW_STR(x))
10604 # define set_yylval_num(x) (yylval.num = (x))
10605 # define set_yylval_id(x) (yylval.id = (x))
10606 # define set_yylval_name(x) (yylval.id = (x))
10607 # define set_yylval_literal(x) (yylval.node = NEW_LIT(x))
10608 # define set_yylval_node(x) (yylval.node = (x))
10609 # define yylval_id() (yylval.id)
10611 static inline VALUE
10612 ripper_yylval_id(
ID x)
10616 # define set_yylval_str(x) (void)(x)
10617 # define set_yylval_num(x) (void)(x)
10618 # define set_yylval_id(x) (void)(x)
10619 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x))
10620 # define set_yylval_literal(x) (void)(x)
10621 # define set_yylval_node(x) (void)(x)
10622 # define yylval_id() yylval.id
10626 #define ripper_flush(p) (void)(p)
10628 #define ripper_flush(p) ((p)->tokp = (p)->parser_lex_p)
10630 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val))
10637 return lex_p > parser->tokp;
10650 ripper_dispatch_scan_event(
struct parser_params *parser,
int t)
10652 if (!ripper_has_scan_event(parser))
return;
10653 yylval_rval = ripper_scan_event_val(parser, t);
10657 ripper_dispatch_ignored_scan_event(
struct parser_params *parser,
int t)
10659 if (!ripper_has_scan_event(parser))
return;
10660 (
void)ripper_scan_event_val(parser, t);
10664 ripper_dispatch_delayed_token(
struct parser_params *parser,
int t)
10667 const char *saved_tokp = parser->tokp;
10670 parser->tokp =
lex_pbeg + parser->delayed_col;
10672 parser->delayed =
Qnil;
10674 parser->tokp = saved_tokp;
10685 #undef SIGN_EXTEND_CHAR
10687 # define SIGN_EXTEND_CHAR(c) ((signed char)(c))
10690 # define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128)
10693 #define parser_encoding_name() (current_enc->name)
10694 #define parser_mbclen() mbclen((lex_p-1),lex_pend,current_enc)
10695 #define parser_precise_mbclen() rb_enc_precise_mbclen((lex_p-1),lex_pend,current_enc)
10696 #define is_identchar(p,e,enc) (rb_enc_isalnum(*(p),(enc)) || (*(p)) == '_' || !ISASCII(*(p)))
10697 #define parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,current_enc))
10699 #define parser_isascii() ISASCII(*(lex_p-1))
10707 for (p =
lex_pbeg; p < pend; p++) {
10709 column = (((column - 1) / 8) + 1) * 8;
10720 for (p =
lex_pbeg; p < pend; p++) {
10721 if (*p !=
' ' && *p !=
'\t') {
10728 #undef token_info_push
10745 #undef token_info_pop
10752 if (!ptinfo)
return;
10758 if (linenum == ptinfo->
linenum) {
10766 "mismatched indentations at '%s' with '%s' at %d",
10779 const int max_line_margin = 30;
10780 const char *
p, *pe;
10788 if (*p ==
'\n')
break;
10795 if (*pe ==
'\n')
break;
10802 const char *pre =
"", *post =
"";
10804 if (len > max_line_margin * 2 + 10) {
10805 if (
lex_p - p > max_line_margin) {
10809 if (pe -
lex_p > max_line_margin) {
10816 MEMCPY(buf, p,
char, len);
10821 p2 =
buf; pe = buf +
len;
10824 if (*p2 !=
'\t') *p2 =
' ';
10832 dispatch1(parse_error,
STR_NEW2(msg));
10844 CONST_ID(script_lines,
"SCRIPT_LINES__");
10865 RBASIC(lines)->klass = 0;
10867 RARRAY(lines)->as.heap.len =
n;
10927 if (parser->
nerr) {
10937 return (
VALUE)tree;
10962 char *beg, *
end, *pend;
10972 while (end < pend) {
10973 if (*end++ ==
'\n')
break;
10983 if (
NIL_P(line))
return line;
11082 #define STR_FUNC_ESCAPE 0x01
11083 #define STR_FUNC_EXPAND 0x02
11084 #define STR_FUNC_REGEXP 0x04
11085 #define STR_FUNC_QWORDS 0x08
11086 #define STR_FUNC_SYMBOL 0x10
11087 #define STR_FUNC_INDENT 0x20
11117 #define lex_goto_eol(parser) ((parser)->parser_lex_p = (parser)->parser_lex_pend)
11118 #define lex_eol_p() (lex_p >= lex_pend)
11119 #define peek(c) peek_n((c), 0)
11120 #define peek_n(c,n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n])
11143 if (
NIL_P(parser->delayed)) {
11147 parser->tokp,
lex_pend - parser->tokp);
11149 parser->delayed_col = (
int)(parser->tokp -
lex_pbeg);
11153 parser->tokp,
lex_pend - parser->tokp);
11169 c = (
unsigned char)*
lex_p++;
11170 if (c ==
'\r' &&
peek(
'\n')) {
11181 if (c == -1)
return;
11188 #define was_bol() (lex_p == lex_pbeg + 1)
11190 #define tokfix() (tokenbuf[tokidx]='\0')
11191 #define tok() tokenbuf
11192 #define toklen() tokidx
11193 #define toklast() (tokidx>0?tokenbuf[tokidx-1]:0)
11240 yyerror(
"invalid hex escape");
11247 #define tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n))
11252 int string_literal,
int symbol_literal,
int regexp_literal)
11272 yyerror(
"invalid Unicode escape");
11275 if (codepoint > 0x10ffff) {
11276 yyerror(
"invalid Unicode codepoint (too large)");
11280 if (regexp_literal) {
11283 else if (codepoint >= 0x80) {
11285 if (string_literal)
tokaddmbc(codepoint, *encp);
11287 else if (string_literal) {
11290 }
while (string_literal && (
peek(
' ') ||
peek(
'\t')));
11293 yyerror(
"unterminated Unicode escape");
11297 if (regexp_literal) {
tokadd(
'}'); }
11303 yyerror(
"invalid Unicode escape");
11307 if (regexp_literal) {
11310 else if (codepoint >= 0x80) {
11312 if (string_literal)
tokaddmbc(codepoint, *encp);
11314 else if (string_literal) {
11322 #define ESCAPE_CONTROL 1
11323 #define ESCAPE_META 2
11332 switch (c =
nextc()) {
11357 case '0':
case '1':
case '2':
case '3':
11358 case '4':
case '5':
case '6':
case '7':
11366 if (numlen == 0)
return 0;
11377 if ((c =
nextc()) !=
'-') {
11381 if ((c =
nextc()) ==
'\\') {
11382 if (
peek(
'u'))
goto eof;
11383 return read_escape(flags|ESCAPE_META, encp) | 0x80;
11385 else if (c == -1 || !
ISASCII(c))
goto eof;
11387 return ((c & 0xff) | 0x80);
11391 if ((c =
nextc()) !=
'-') {
11397 if ((c =
nextc())==
'\\') {
11398 if (
peek(
'u'))
goto eof;
11403 else if (c == -1 || !
ISASCII(c))
goto eof;
11408 yyerror(
"Invalid escape character syntax");
11431 switch (c =
nextc()) {
11435 case '0':
case '1':
case '2':
case '3':
11436 case '4':
case '5':
case '6':
case '7':
11439 if (numlen == 0)
goto eof;
11448 if (numlen == 0)
return -1;
11455 if ((c =
nextc()) !=
'-') {
11465 if ((c =
nextc()) !=
'-') {
11473 if (flags & ESCAPE_CONTROL)
goto eof;
11477 if ((c =
nextc()) ==
'\\') {
11480 else if (c == -1)
goto eof;
11486 yyerror(
"Invalid escape character syntax");
11553 #define tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c))
11559 case '$':
case '*':
case '+':
case '.':
11560 case '?':
case '^':
case '|':
11561 case ')':
case ']':
case '}':
case '>':
11570 int func,
int term,
int paren,
long *nest,
11574 int has_nonascii = 0;
11577 static const char mixed_msg[] =
"%s mixed within %s source";
11579 #define mixed_error(enc1, enc2) if (!errbuf) { \
11580 size_t len = sizeof(mixed_msg) - 4; \
11581 len += strlen(rb_enc_name(enc1)); \
11582 len += strlen(rb_enc_name(enc2)); \
11583 errbuf = ALLOCA_N(char, len); \
11584 snprintf(errbuf, len, mixed_msg, \
11585 rb_enc_name(enc1), \
11586 rb_enc_name(enc2)); \
11589 #define mixed_escape(beg, enc1, enc2) do { \
11590 const char *pos = lex_p; \
11592 mixed_error((enc1), (enc2)); \
11596 while ((c =
nextc()) != -1) {
11597 if (paren && c == paren) {
11600 else if (c == term) {
11601 if (!nest || !*nest) {
11609 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
11614 else if (c ==
'\\') {
11615 const char *beg =
lex_p - 1;
11620 if (func & STR_FUNC_EXPAND)
continue;
11629 if ((func & STR_FUNC_EXPAND) == 0) {
11636 if (has_nonascii && enc != *encp) {
11642 if (c == -1)
return -1;
11644 if ((func & STR_FUNC_EXPAND) == 0)
tokadd(
'\\');
11647 if (func & STR_FUNC_REGEXP) {
11655 if (has_nonascii && enc != *encp) {
11660 else if (func & STR_FUNC_EXPAND) {
11662 if (func & STR_FUNC_ESCAPE)
tokadd(
'\\');
11665 else if ((func & STR_FUNC_QWORDS) &&
ISSPACE(c)) {
11668 else if (c != term && !(paren && c == paren)) {
11678 if (enc != *encp) {
11691 if (enc != *encp) {
11702 #define NEW_STRTERM(func, term, paren) \
11703 rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0)
11709 if (!
NIL_P(parser->delayed)) {
11710 ptrdiff_t
len =
lex_p - parser->tokp;
11715 parser->tokp =
lex_p;
11719 #define flush_string_content(enc) ripper_flush_string_content(parser, (enc))
11721 #define flush_string_content(enc) ((void)(enc))
11728 #define BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0)
11729 #define SPECIAL_PUNCT(idx) ( \
11730 BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', idx) | \
11731 BIT('!', idx) | BIT('@', idx) | BIT('/', idx) | BIT('\\', idx) | \
11732 BIT(';', idx) | BIT(',', idx) | BIT('.', idx) | BIT('=', idx) | \
11733 BIT(':', idx) | BIT('<', idx) | BIT('>', idx) | BIT('\"', idx) | \
11734 BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \
11742 #undef SPECIAL_PUNCT
11748 if (c <= 0x20 || 0x7e < c)
return 0;
11749 return (ruby_global_name_punct_bits[(c - 0x20) / 32] >> (c % 32)) & 1;
11756 const char *p =
lex_p;
11762 if ((c = *p) ==
'-') {
11771 if ((c = *p) ==
'@') {
11791 int func = (
int)quote->nd_func;
11803 if (c == term && !quote->nd_nest) {
11804 if (func & STR_FUNC_QWORDS) {
11805 quote->nd_func = -1;
11867 while ((c =
nextc()) != -1 && c != term) {
11914 line = here->nd_orig;
11928 const char *eos,
long len,
int indent)
11934 while (*p &&
ISSPACE(*p)) p++;
11937 if (n < 0 || (n > 0 && p[len] !=
'\n' && p[len] !=
'\r'))
return FALSE;
11938 return strncmp(eos, p, len) == 0;
11945 if (!
NIL_P(parser->delayed))
11948 ripper_dispatch_ignored_scan_event(parser,
tHEREDOC_END);
11951 #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser)
11953 #define dispatch_heredoc_end() ((void)0)
11959 int c,
func, indent = 0;
11960 const char *eos, *
p, *pend;
11969 if ((c =
nextc()) == -1) {
11973 if (
NIL_P(parser->delayed)) {
11978 ((len =
lex_p - parser->tokp) > 0 &&
11979 (str =
STR_NEW3(parser->tokp, len, enc, func), 1))) {
12002 switch (pend[-1]) {
12004 if (--pend == p || pend[-1] !=
'\r') {
12018 if (
nextc() == -1) {
12036 if (parser->
eofp)
goto error;
12046 if ((c =
nextc()) == -1)
goto error;
12063 rb_warning0(
"ambiguous first argument; put parentheses or even spaces");
12068 #define arg_ambiguous() (arg_ambiguous_gen(parser), 1)
12075 yyerror(
"formal argument must be local variable");
12093 if (len > 5 && name[nlen = len - 5] ==
'-') {
12094 if (
rb_memcicmp(name + nlen + 1,
"unix", 4) == 0)
12097 if (len > 4 && name[nlen = len - 4] ==
'-') {
12100 if (
rb_memcicmp(name + nlen + 1,
"mac", 3) == 0 &&
12101 !(len == 8 &&
rb_memcicmp(name,
"utf8-mac", len) == 0))
12116 excargs[1] =
rb_sprintf(
"unknown encoding name: %s", name);
12133 for (i = 0; i <
n; ++
i) {
12171 case 't':
case 'T':
12177 case 'f':
case 'F':
12200 static const char *
12208 if (str[i-1] ==
'*' && str[i-2] ==
'-') {
12209 return str + i + 1;
12214 if (i + 1 >= len)
return 0;
12215 if (str[i+1] !=
'-') {
12218 else if (str[i-1] !=
'-') {
12222 return str + i + 2;
12237 const char *beg, *
end, *vbeg, *vend;
12238 #define str_copy(_s, _p, _n) ((_s) \
12239 ? (void)(rb_str_resize((_s), (_n)), \
12240 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \
12241 : (void)((_s) = STR_NEW((_p), (_n))))
12243 if (len <= 7)
return FALSE;
12247 len = end - beg - 3;
12258 for (; len > 0 && *
str; str++, --
len) {
12260 case '\'':
case '"':
case ':':
case ';':
12265 for (beg = str; len > 0; str++, --
len) {
12267 case '\'':
case '"':
case ':':
case ';':
12275 for (end = str; len > 0 &&
ISSPACE(*str); str++, --
len);
12277 if (*str !=
':')
continue;
12279 do str++;
while (--len > 0 &&
ISSPACE(*str));
12282 for (vbeg = ++str; --len > 0 && *str !=
'"'; str++) {
12283 if (*str ==
'\\') {
12295 for (vbeg = str; len > 0 && *str !=
'"' && *str !=
';' && !
ISSPACE(*str); --
len, str++);
12298 while (len > 0 && (*str ==
';' ||
ISSPACE(*str))) --len, str++;
12303 for (i = 0; i <
n; ++
i) {
12304 if (s[i] ==
'-') s[
i] =
'_';
12311 n = (*p->
length)(parser, vbeg, n);
12317 }
while (++p < magic_comments +
numberof(magic_comments));
12331 const char *beg =
str;
12335 if (send - str <= 6)
return;
12337 case 'C':
case 'c': str += 6;
continue;
12338 case 'O':
case 'o': str += 5;
continue;
12339 case 'D':
case 'd': str += 4;
continue;
12340 case 'I':
case 'i': str += 3;
continue;
12341 case 'N':
case 'n': str += 2;
continue;
12342 case 'G':
case 'g': str += 1;
continue;
12343 case '=':
case ':':
12356 if (++str >= send)
return;
12359 if (*str !=
'=' && *str !=
':')
return;
12364 while ((*str ==
'-' || *str ==
'_' ||
ISALNUM(*str)) && ++str < send);
12380 (
unsigned char)
lex_p[0] == 0xbb &&
12381 (
unsigned char)
lex_p[1] == 0xbf) {
12395 #define IS_ARG() IS_lex_state(EXPR_ARG_ANY)
12396 #define IS_END() IS_lex_state(EXPR_END_ANY)
12397 #define IS_BEG() IS_lex_state(EXPR_BEG_ANY)
12398 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c))
12399 #define IS_LABEL_POSSIBLE() ((IS_lex_state(EXPR_BEG | EXPR_ENDFN) && !cmd_state) || IS_ARG())
12400 #define IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1))
12401 #define IS_AFTER_OPERATOR() IS_lex_state(EXPR_FNAME | EXPR_DOT)
12404 #define ambiguous_operator(op, syn) ( \
12405 rb_warning0("`"op"' after local variable is interpreted as binary operator"), \
12406 rb_warning0("even though it seems like "syn""))
12408 #define ambiguous_operator(op, syn) dispatch2(operator_ambiguous, ripper_intern(op), rb_str_new_cstr(syn))
12410 #define warn_balanced(op, syn) ((void) \
12411 (!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN|EXPR_ENDARG) && \
12412 space_seen && !ISSPACE(c) && \
12413 (ambiguous_operator(op, syn), 0)))
12419 int space_seen = 0;
12425 int fallthru =
FALSE;
12451 switch (c =
nextc()) {
12459 case ' ':
case '\t':
case '\f':
case '\r':
12463 while ((c =
nextc())) {
12465 case ' ':
case '\t':
case '\f':
case '\r':
12474 ripper_dispatch_scan_event(parser,
tSP);
12487 ripper_dispatch_scan_event(parser,
tCOMMENT);
12492 if (
IS_lex_state(EXPR_BEG | EXPR_VALUE | EXPR_CLASS | EXPR_FNAME | EXPR_DOT)) {
12501 while ((c =
nextc())) {
12503 case ' ':
case '\t':
case '\f':
case '\r':
12508 if ((c =
nextc()) !=
'.') {
12521 parser->tokp =
lex_p;
12524 goto normal_newline;
12533 if ((c =
nextc()) ==
'*') {
12534 if ((c =
nextc()) ==
'=') {
12541 rb_warning0(
"`**' interpreted as argument prefix");
12560 rb_warning0(
"`*' interpreted as argument prefix");
12599 int first_p =
TRUE;
12608 ripper_dispatch_scan_event(parser,
tEMBDOC);
12617 if (c !=
'=')
continue;
12618 if (strncmp(
lex_p,
"end", 3) == 0 &&
12632 if ((c =
nextc()) ==
'=') {
12633 if ((c =
nextc()) ==
'=') {
12642 else if (c ==
'>') {
12654 (!
IS_ARG() || space_seen)) {
12656 if (token)
return token;
12667 if ((c =
nextc()) ==
'>') {
12674 if ((c =
nextc()) ==
'=') {
12688 if ((c =
nextc()) ==
'=') {
12692 if ((c =
nextc()) ==
'=') {
12760 rb_warnI(
"invalid character syntax; use ?\\%c", c2);
12777 else if (c ==
'\\') {
12806 if ((c =
nextc()) ==
'&') {
12808 if ((c =
nextc()) ==
'=') {
12816 else if (c ==
'=') {
12823 rb_warning0(
"`&' interpreted as argument prefix");
12837 if ((c =
nextc()) ==
'|') {
12839 if ((c =
nextc()) ==
'=') {
12919 if ((c =
nextc()) ==
'.') {
12920 if ((c =
nextc()) ==
'.') {
12928 yyerror(
"no .<digit> floating literal anymore; put 0 before dot");
12934 case '0':
case '1':
case '2':
case '3':
case '4':
12935 case '5':
case '6':
case '7':
case '8':
case '9':
12937 int is_float, seen_point, seen_e, nondigit;
12939 is_float = seen_point = seen_e = nondigit = 0;
12942 if (c ==
'-' || c ==
'+') {
12947 #define no_digits() do {yyerror("numeric literal without digits"); return 0;} while (0)
12950 if (c ==
'x' || c ==
'X') {
12956 if (nondigit)
break;
12963 }
while ((c =
nextc()) != -1);
12967 if (
toklen() == start) {
12970 else if (nondigit)
goto trailing_uc;
12974 if (c ==
'b' || c ==
'B') {
12977 if (c ==
'0' || c ==
'1') {
12980 if (nondigit)
break;
12984 if (c !=
'0' && c !=
'1')
break;
12987 }
while ((c =
nextc()) != -1);
12991 if (
toklen() == start) {
12994 else if (nondigit)
goto trailing_uc;
12998 if (c ==
'd' || c ==
'D') {
13004 if (nondigit)
break;
13011 }
while ((c =
nextc()) != -1);
13015 if (
toklen() == start) {
13018 else if (nondigit)
goto trailing_uc;
13026 if (c ==
'o' || c ==
'O') {
13029 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
13033 if (c >=
'0' && c <=
'7') {
13038 if (nondigit)
break;
13042 if (c < '0' || c >
'9')
break;
13043 if (c >
'7')
goto invalid_octal;
13046 }
while ((c =
nextc()) != -1);
13050 if (nondigit)
goto trailing_uc;
13059 if (c >
'7' && c <=
'9') {
13061 yyerror(
"Invalid octal digit");
13063 else if (c ==
'.' || c ==
'e' || c ==
'E') {
13075 case '0':
case '1':
case '2':
case '3':
case '4':
13076 case '5':
case '6':
case '7':
case '8':
case '9':
13082 if (nondigit)
goto trailing_uc;
13083 if (seen_point || seen_e) {
13088 if (c0 == -1 || !
ISDIGIT(c0)) {
13116 if (c !=
'-' && c !=
'+')
continue;
13122 if (nondigit)
goto decode_num;
13137 snprintf(tmp,
sizeof(tmp),
"trailing `%c' in number", nondigit);
13143 if (
errno == ERANGE) {
13204 if ((c =
nextc()) ==
'=') {
13220 if ((c =
nextc()) ==
'=') {
13240 if ((c =
nextc()) !=
'@') {
13267 if ((c =
nextc()) ==
']') {
13268 if ((c =
nextc()) ==
'=') {
13280 else if (
IS_ARG() && space_seen) {
13315 ripper_dispatch_scan_event(parser,
tSP);
13329 if (c == -1 || !
ISALNUM(c)) {
13336 yyerror(
"unknown type of %string");
13340 if (c == -1 || term == -1) {
13345 if (term ==
'(') term =
')';
13346 else if (term ==
'[') term =
']';
13347 else if (term ==
'{') term =
'}';
13348 else if (term ==
'<') term =
'>';
13398 yyerror(
"unknown type of %string");
13402 if ((c =
nextc()) ==
'=') {
13479 case '1':
case '2':
case '3':
13480 case '4':
case '5':
case '6':
13481 case '7':
case '8':
case '9':
13486 }
while (c != -1 &&
ISDIGIT(c));
13532 ripper_dispatch_scan_event(parser,
k__END__);
13555 switch (
tok()[0]) {
13556 case '@':
case '$':
13560 if ((c ==
'!' || c ==
'?') && !
peek(
'=')) {
13573 switch (
tok()[0]) {
13580 if (
tok()[1] ==
'@')
13626 if (state == EXPR_FNAME) {
13640 if (
CMDARG_P() && state != EXPR_CMDARG)
13642 if (state & (EXPR_BEG | EXPR_ENDARG))
13646 if (state & (EXPR_BEG | EXPR_VALUE))
13649 if (kw->
id[0] != kw->
id[1])
13686 yylex(
void *lval,
void *p)
13700 if (!
NIL_P(parser->delayed)) {
13701 ripper_dispatch_delayed_token(parser, t);
13705 ripper_dispatch_scan_event(parser, t);
13747 if (orig == (
NODE*)1)
return;
13756 #define parser_warning(node, mesg) parser_warning(parser, (node), (mesg))
13763 #define parser_warn(node, mesg) parser_warn(parser, (node), (mesg))
13770 if (tail == 0)
return head;
13772 if (h == 0)
return tail;
13811 tail->nd_end =
tail;
13813 end->nd_next =
tail;
13814 h->nd_end = tail->nd_end;
13824 if (list == 0)
return NEW_LIST(item);
13825 if (list->nd_next) {
13826 last = list->nd_next->nd_end;
13832 list->nd_alen += 1;
13834 list->nd_next->nd_end = last->nd_next;
13844 if (head->nd_next) {
13845 last = head->nd_next->nd_end;
13851 head->nd_alen += tail->nd_alen;
13852 last->nd_next =
tail;
13853 if (tail->nd_next) {
13854 head->nd_next->nd_end = tail->nd_next->nd_end;
13857 head->nd_next->nd_end =
tail;
13866 if (
NIL_P(tail))
return 1;
13887 if (!head)
return tail;
13888 if (!tail)
return head;
13898 if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
13901 lit = headlast->nd_lit;
13904 lit = head->nd_lit;
13924 tail->nd_lit = head->nd_lit;
13928 else if (
NIL_P(tail->nd_lit)) {
13930 head->nd_alen += tail->nd_alen - 1;
13931 head->nd_next->nd_end->nd_next = tail->nd_next;
13932 head->nd_next->nd_end = tail->nd_next->nd_end;
13935 else if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
13937 lit = headlast->nd_lit;
13940 tail->nd_lit =
Qnil;
13945 tail->nd_head =
NEW_STR(tail->nd_lit);
14092 static const char *
14095 static const char names[][12] = {
14096 "EXPR_BEG",
"EXPR_END",
"EXPR_ENDARG",
"EXPR_ENDFN",
"EXPR_ARG",
14097 "EXPR_CMDARG",
"EXPR_MID",
"EXPR_FNAME",
"EXPR_DOT",
"EXPR_CLASS",
14102 return names[
ffs(state)];
14117 # define assignable_result(x) get_value(lhs)
14118 # define parser_yyerror(parser, x) dispatch1(assign_error, lhs)
14120 # define assignable_result(x) (x)
14125 yyerror(
"Can't change the value of self");
14128 yyerror(
"Can't assign to nil");
14131 yyerror(
"Can't assign to true");
14134 yyerror(
"Can't assign to false");
14137 yyerror(
"Can't assign to __FILE__");
14140 yyerror(
"Can't assign to __LINE__");
14143 yyerror(
"Can't assign to __ENCODING__");
14177 yyerror(
"dynamic constant assignment");
14186 #undef assignable_result
14187 #undef parser_yyerror
14194 if (name == idUScore)
return 1;
14201 #define LVAR_USED ((ID)1 << (sizeof(ID) * CHAR_BIT - 1))
14209 yyerror(
"duplicated argument name");
14221 yyerror(
"duplicated argument name");
14260 id &= ~ID_SCOPE_MASK;
14289 if (!node2)
return node1;
14292 if (node1->nd_head)
14293 node1->nd_head =
arg_concat(node1->nd_head, node2);
14305 node1->nd_body =
list_concat(node1->nd_body, node2);
14314 if (!node1)
return NEW_LIST(node2);
14319 node1->nd_head =
arg_append(node1->nd_head, node2);
14340 if (!lhs)
return 0;
14352 lhs->nd_value = rhs;
14357 lhs->nd_args =
arg_append(lhs->nd_args, rhs);
14388 if (!cond)
yyerror(
"void value expression");
14393 while (node->nd_next) {
14394 node = node->nd_next;
14396 node = node->nd_head;
14400 node = node->nd_body;
14404 if (!node->nd_body) {
14405 node = node->nd_else;
14408 else if (!node->nd_else) {
14409 node = node->nd_body;
14413 node = node->nd_else;
14419 node = node->nd_2nd;
14433 const char *useless = 0;
14440 switch (node->nd_mid) {
14471 useless =
"a variable";
14474 useless =
"a constant";
14481 useless =
"a literal";
14506 useless =
"defined?";
14514 rb_warnS(
"possibly useless use of %s in void context", useless);
14527 if (!node->nd_next)
return;
14529 node = node->nd_next;
14536 NODE **
n = &node, *n1 = node;
14538 *n = n1 = n1->nd_body;
14546 NODE *node = *body;
14552 #define subnodes(n1, n2) \
14553 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \
14554 (!node->n2) ? (body = &node->n1, 1) : \
14555 (reduce_nodes(&node->n1), body = &node->n2, 1))
14565 *body = node = node->nd_stts;
14569 *body = node = node->nd_body;
14573 body = &node->nd_end->nd_head;
14579 body = &node->nd_body;
14588 if (node->nd_else) {
14589 body = &node->nd_resq;
14607 if (!node)
return 1;
14610 if (!(node = node->nd_head))
break;
14614 }
while ((node = node->nd_next) != 0);
14633 yyerror(
"multiple assignment in conditional");
14647 if (!node->nd_value)
return 1;
14650 parser_warn(node->nd_value,
"found = in conditional, should be ==");
14672 for (node = *rootnode; node; node = next) {
14676 next = node->nd_next;
14677 head = node->nd_head;
14680 switch (type =
nd_type(head)) {
14683 val =
rb_range_new(head->nd_beg->nd_lit, head->nd_end->nd_lit,
14688 head->nd_lit =
val;
14703 if (node == 0)
return 0;
14711 return cond0(parser, node);
14717 if (!node)
return 1;
14738 if (node == 0)
return 0;
14745 rb_warn0(
"string literal in condition");
14755 node->nd_1st =
cond0(parser, node->nd_1st);
14756 node->nd_2nd =
cond0(parser, node->nd_2nd);
14761 node->nd_beg =
range_op(parser, node->nd_beg);
14762 node->nd_end =
range_op(parser, node->nd_end);
14795 if (node == 0)
return 0;
14796 return cond0(parser, node);
14804 NODE *node = left, *second;
14805 while ((second = node->nd_2nd) != 0 && (
enum node_type)
nd_type(second) == type) {
14808 node->nd_2nd =
NEW_NODE(type, second, right, 0);
14811 return NEW_NODE(type, left, right, 0);
14828 if (node->nd_next == 0) {
14829 node = node->nd_head;
14850 switch (
TYPE(node->nd_lit)) {
14879 node2->nd_head = node1;
14893 args->
pre_init = m ? m->nd_next : 0;
14947 lit = node->nd_lit;
14966 ID vid = lhs->nd_vid;
14968 lhs->nd_value = rhs;
14971 asgn->nd_aid = vid;
14974 else if (op ==
tANDOP) {
14975 lhs->nd_value = rhs;
14997 else if (op ==
tANDOP) {
15013 else if (op ==
tANDOP) {
15029 return dispatch3(opassign, lhs, op, rhs);
15035 VALUE recv = dispatch3(field, lhs, type, attr);
15036 return dispatch3(opassign, recv, op, rhs);
15046 if (!local->
used)
return;
15050 if (cnt != local->
vars->
pos) {
15051 rb_bug(
"local->used->pos != local->vars->pos");
15053 for (i = 0; i <
cnt; ++
i) {
15054 if (!v[i] || (u[i] &
LVAR_USED))
continue;
15069 local->
used = !(inherit_dvars &&
15097 for (i = 0; i <
cnt; i++) {
15098 buf[
i] = src->
tbl[
i];
15111 if (cnt <= 0)
return 0;
15142 vars =
lvtbl->vars;
15143 args =
lvtbl->args;
15144 used =
lvtbl->used;
15149 if (used) used = used->
prev;
15165 static const struct vtable *
15173 return lvtbl->args;
15181 if ((tmp =
lvtbl->used) != 0) {
15197 while (
lvtbl->args != lvargs) {
15199 if (!
lvtbl->args) {
15220 args =
lvtbl->args;
15221 vars =
lvtbl->vars;
15222 used =
lvtbl->used;
15235 if (used) used = used->
prev;
15288 "regexp encoding option '%c' differs from source encoding '%s'",
15317 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
15323 const char *
s = (
const char *)name;
15340 rb_warningS(
"named capture conflicts a local variable - %s",
15420 NODE *scope = node;
15423 if (!node)
return node;
15427 node = node->nd_body;
15431 node = node->nd_body;
15438 prelude->nd_body = node;
15439 scope->nd_body = prelude;
15442 scope->nd_body = node;
15452 NODE *scope = node;
15455 if (!node)
return node;
15459 node = node->nd_body;
15463 node = node->nd_body;
15479 prelude->nd_body = node;
15480 scope->nd_body = prelude;
15483 scope->nd_body = node;
15489 static const struct {
15495 {
'+',
"+(binary)"},
15496 {
'-',
"-(binary)"},
15516 #define op_tbl_count numberof(op_tbl)
15518 #ifndef ENABLE_SELECTOR_NAMESPACE
15519 #define ENABLE_SELECTOR_NAMESPACE 0
15526 #if ENABLE_SELECTOR_NAMESPACE
15538 #if ENABLE_SELECTOR_NAMESPACE
15545 ivar2_cmp(
struct ivar2_key *key1,
struct ivar2_key *key2)
15547 if (key1->id == key2->id && key1->klass == key2->klass) {
15554 ivar2_hash(
struct ivar2_key *
key)
15556 return (key->id << 8) ^ (key->klass >> 2);
15570 #if ENABLE_SELECTOR_NAMESPACE
15578 (
void)lex_state_name(-1);
15607 if (m >= e)
return 0;
15611 else if (*m ==
'-') {
15625 return m == e ? mb + 1 : 0;
15643 const char *
m =
name;
15644 const char *
e = m +
len;
15647 if (!m || len <= 0)
return -1;
15667 case '<': ++
m;
break;
15668 case '=':
if (*++m ==
'>') ++
m;
break;
15675 case '>':
case '=': ++
m;
break;
15681 case '~': ++
m;
break;
15682 case '=':
if (*++m ==
'=') ++
m;
break;
15683 default:
return -1;
15688 if (*++m ==
'*') ++
m;
15691 case '+':
case '-':
15692 if (*++m ==
'@') ++
m;
15695 case '|':
case '^':
case '&':
case '/':
case '%':
case '~':
case '`':
15700 if (*++m !=
']')
return -1;
15701 if (*++m ==
'=') ++
m;
15705 if (len == 1)
return ID_JUNK;
15707 case '=':
case '~': ++
m;
break;
15708 default:
return -1;
15719 case '!':
case '?':
15732 return m == e ? type : -1;
15796 fake_str.
as.
heap.ptr = (
char *)name;
15798 str = (
VALUE)&fake_str;
15812 const char *
name, *
m, *
e;
15860 if (*
op_tbl[i].name == *m &&
15861 strcmp(
op_tbl[i].name, m) == 0) {
15868 if (m[last] ==
'=') {
15896 if (m - name < len)
id =
ID_JUNK;
15950 name[0] = (char)
id;
15973 if (
RBASIC(str)->klass == 0)
15984 id2 = (
id & ~ID_SCOPE_MASK) |
ID_CONST;
15991 if (
RBASIC(str)->klass == 0)
16004 if (!str)
return 0;
16098 VALUE name = *namep;
16149 fake_str.
as.
heap.ptr = (
char *)ptr;
16159 fake_str.
as.
heap.len = len - 1;
16257 parser->parser_ruby_sourcefile_string =
Qnil;
16258 parser->delayed =
Qnil;
16260 parser->result =
Qnil;
16261 parser->parsing_thread =
Qnil;
16262 parser->toplevel_p =
TRUE;
16271 #define parser_mark ripper_parser_mark
16272 #define parser_free ripper_parser_free
16290 rb_gc_mark(p->parser_ruby_sourcefile_string);
16312 prev = local->
prev;
16326 size_t size =
sizeof(*p);
16328 if (!ptr)
return 0;
16331 size +=
sizeof(*local);
16356 #undef rb_reserved_word
16440 yydebug =
RTEST(flag);
16445 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE))
16446 #define NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0)
16447 #define ADD2HEAP(n, c, p) ((parser->heap = (n))->u1.node = (p), \
16448 (n)->u3.cnt = (c), (p))
16476 if (ptr && (n = parser->
heap) !=
NULL) {
16478 if (n->
u1.
node == ptr) {
16495 while ((
n = *prev) !=
NULL) {
16496 if (
n->u1.node == ptr) {
16497 *prev =
n->u2.node;
16501 prev = &
n->u2.node;
16509 #ifdef RIPPER_DEBUG
16510 extern int rb_is_pointer_to_heap(
VALUE);
16516 if (x ==
Qfalse)
return x;
16517 if (x ==
Qtrue)
return x;
16518 if (x ==
Qnil)
return x;
16523 if (!rb_is_pointer_to_heap(x))
16536 return ((
NODE *)x)->nd_rval;
16545 #define validate(x) ((x) = get_value(x))
16557 return rb_funcall(parser->value, mid, 1, a);
16565 return rb_funcall(parser->value, mid, 2, a, b);
16574 return rb_funcall(parser->value, mid, 3, a, b, c);
16584 return rb_funcall(parser->value, mid, 4, a, b, c, d);
16595 return rb_funcall(parser->value, mid, 5, a, b, c, d, e);
16608 return rb_funcall(parser->value, mid, 7, a, b, c, d, e, f, g);
16611 static const struct kw_assoc {
16614 } keyword_to_name[] = {
16667 keyword_id_to_str(
ID id)
16669 const struct kw_assoc *
a;
16671 for (a = keyword_to_name; a->id; a++) {
16678 #undef ripper_id2sym
16680 ripper_id2sym(
ID id)
16690 if ((name = keyword_id_to_str(
id))) {
16703 rb_bug(
"cannot convert ID to string: %ld", (
unsigned long)
id);
16721 ripper_get_value(
VALUE v)
16728 return nd->nd_rval;
16737 va_start(args, fmt);
16744 ripper_warn0(
struct parser_params *parser,
const char *fmt)
16750 ripper_warnI(
struct parser_params *parser,
const char *fmt,
int a)
16757 ripper_warnS(
struct parser_params *parser,
const char *fmt,
const char *str)
16764 ripper_warning0(
struct parser_params *parser,
const char *fmt)
16770 ripper_warningS(
struct parser_params *parser,
const char *fmt,
const char *str)
16795 #define ripper_initialized_p(r) ((r)->parser_lex_input != 0)
16814 rb_scan_args(argc, argv,
"12", &src, &fname, &lineno);
16824 if (
NIL_P(fname)) {
16832 parser->parser_ruby_sourcefile_string = fname;
16839 struct ripper_args {
16846 ripper_parse0(
VALUE parser_v)
16852 ripper_yyparse((
void*)parser);
16853 return parser->result;
16857 ripper_ensure(
VALUE parser_v)
16862 parser->parsing_thread =
Qnil;
16873 ripper_parse(
VALUE self)
16878 if (!ripper_initialized_p(parser)) {
16881 if (!
NIL_P(parser->parsing_thread)) {
16888 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
16890 return parser->result;
16901 ripper_column(
VALUE self)
16907 if (!ripper_initialized_p(parser)) {
16910 if (
NIL_P(parser->parsing_thread))
return Qnil;
16922 ripper_filename(
VALUE self)
16927 if (!ripper_initialized_p(parser)) {
16930 return parser->parser_ruby_sourcefile_string;
16941 ripper_lineno(
VALUE self)
16946 if (!ripper_initialized_p(parser)) {
16949 if (
NIL_P(parser->parsing_thread))
return Qnil;
16953 #ifdef RIPPER_DEBUG
16989 InitVM_ripper(
void)
17005 #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 NODE * call_bin_op_gen(struct parser_params *, NODE *, ID, NODE *)
struct local_vars * parser_lvtbl
static YYSIZE_T yytnamerr(char *yyres, const char *yystr)
VALUE rb_ary_unshift(VALUE ary, VALUE item)
static ID ripper_token2eventid(int tok)
static ID internal_id_gen(struct parser_params *)
int rb_is_attrset_id(ID id)
int rb_enc_codelen(int c, rb_encoding *enc)
#define shadowing_lvar(name)
static void arg_ambiguous_gen(struct parser_params *parser)
static long parser_encode_length(struct parser_params *parser, const char *name, long len)
#define RE_OPTION_ENCODING_IDX(o)
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)
void rb_bug(const char *fmt,...)
#define NEW_DASGN_CURR(v, val)
#define mixed_escape(beg, enc1, enc2)
static const yytype_uint8 yyr2[]
static NODE * attrset_gen(struct parser_params *, NODE *, ID)
void rb_enc_copy(VALUE obj1, VALUE obj2)
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)
#define rb_gc_mark_locations(start, end)
size_t strlen(const char *)
yytype_int16 yyssa[YYINITDEPTH]
VALUE parser_lex_nextline
VALUE rb_make_exception(int argc, VALUE *argv)
#define scan_oct(s, l, e)
static NODE * negate_lit(NODE *)
const char * rb_obj_classname(VALUE)
#define dispatch_heredoc_end()
static NODE * node_assign_gen(struct parser_params *, NODE *, NODE *)
int parser_ruby__end__seen
static void local_push_gen(struct parser_params *, int)
static int vtable_size(const struct vtable *tbl)
#define formal_argument(id)
static void fixpos(NODE *, NODE *)
static NODE * arg_concat_gen(struct parser_params *, 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 NODE * evstr2dstr_gen(struct parser_params *, NODE *)
VALUE rb_str_buf_append(VALUE, VALUE)
static int nodeline(NODE *node)
static int token_info_has_nonspaces(struct parser_params *parser, const char *token)
#define keyword_do_LAMBDA
static NODE * arg_blk_pass(NODE *, NODE *)
#define IS_LABEL_POSSIBLE()
#define is_asgn_or_id(id)
static void reg_fragment_setenc_gen(struct parser_params *, VALUE, int)
int parser_compile_for_eval
int parser_token_info_enabled
#define parser_precise_mbclen()
static ID formal_argument_gen(struct parser_params *, ID)
static int parser_read_escape(struct parser_params *parser, int flags, rb_encoding **encp)
#define NEW_OP_CDECL(v, op, val)
static YYSIZE_T yysyntax_error(char *yyresult, int yystate, int yychar)
static VALUE reg_compile_gen(struct parser_params *, VALUE, int)
static ID register_symid(ID, const char *, long, rb_encoding *)
static void FILE * yyoutput
SSL_METHOD *(* func)(void)
#define rb_usascii_str_new2
#define RE_OPTION_ENCODING(e)
static ID * vtable_tblcpy(ID *buf, const struct vtable *src)
void rb_define_global_const(const char *, VALUE)
#define set_yylval_str(x)
void rb_gc_force_recycle(VALUE)
static const yytype_uint16 yyr1[]
#define set_yylval_literal(x)
#define ADD2HEAP(n, c, p)
#define keyword__ENCODING__
VALUE rb_parser_end_seen_p(VALUE vparser)
#define literal_concat(h, t)
static void block_dup_check_gen(struct parser_params *, NODE *, NODE *)
struct token_info token_info
stack_type parser_cmdarg_stack
static int lvar_defined_gen(struct parser_params *, ID)
VALUE rb_enc_from_encoding(rb_encoding *encoding)
#define token_info_push(token)
static ID * local_tbl_gen(struct parser_params *)
#define rb_enc_isalnum(c, enc)
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 rb_enc_prev_char(s, p, e, enc)
VALUE rb_ary_push(VALUE ary, VALUE item)
unsigned short int yytype_uint16
static int parser_yylex(struct parser_params *parser)
rb_encoding * rb_enc_compatible(VALUE str1, VALUE str2)
#define new_args_tail(k, kr, b)
static NODE * new_evstr_gen(struct parser_params *, NODE *)
#define NEW_MATCH2(n1, n2)
VALUE op_sym[tLAST_OP_ID]
VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline)
static int parser_regx_options(struct parser_params *)
VALUE rb_enc_str_new(const char *, long, rb_encoding *)
#define warn_balanced(op, syn)
static void set_file_encoding(struct parser_params *parser, const char *str, const char *send)
static NODE * newline_node(NODE *)
VALUE rb_funcall(VALUE, ID, int,...)
Calls a method.
static void ripper_init_eventids1_table(VALUE self)
void rb_raise(VALUE exc, const char *fmt,...)
static const yytype_uint16 yyprhs[]
#define block_dup_check(n1, n2)
VALUE rb_enc_associate(VALUE obj, rb_encoding *enc)
static void warn_unused_var(struct parser_params *parser, struct local_vars *local)
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
void rb_compile_warn(const char *file, int line, const char *fmt,...)
#define attrset(node, id)
#define new_const_op_assign(lhs, op, rhs)
int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc)
static size_t parser_memsize(const void *ptr)
static NODE * new_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
void(* rb_magic_comment_setter_t)(struct parser_params *parser, const char *name, const char *val)
static struct @118 op_tbl[]
static NODE * gettable_gen(struct parser_params *, ID)
static struct symbols global_symbols
static NODE * cond0(struct parser_params *, NODE *)
#define NEW_CVASGN(v, val)
#define reg_compile(str, options)
static int local_var_gen(struct parser_params *, ID)
#define str_copy(_s, _p, _n)
#define NEW_OP_ASGN_OR(i, val)
static NODE * match_op_gen(struct parser_params *, NODE *, NODE *)
#define ENCODING_IS_ASCII8BIT(obj)
static VALUE parse(int argc, VALUE *argv, VALUE self)
ID rb_check_id(volatile VALUE *namep)
Returns ID for the given name if it is interned already, or 0.
ID rb_check_id_cstr(const char *ptr, long len, rb_encoding *enc)
rb_encoding * rb_utf8_encoding(void)
static int dvar_defined_gen(struct parser_params *, ID, int)
static NODE * new_yield_gen(struct parser_params *, NODE *)
#define RE_OPTION_ENCODING_NONE(o)
static void yytype_int16 * bottom
static char * parser_tokspace(struct parser_params *parser, int n)
#define rb_enc_isdigit(c, enc)
#define tokadd_string(f, t, p, n, e)
#define ENC_CODERANGE_BROKEN
VALUE rb_sym_all_symbols(void)
#define is_identchar(p, e, enc)
VALUE rb_str_append(VALUE, VALUE)
#define RUBY_DTRACE_PARSE_BEGIN(arg0, arg1)
static void parser_heredoc_restore(struct parser_params *parser, NODE *here)
#define NEW_CLASS(n, b, s)
static NODE * remove_begin(NODE *)
static int is_global_name_punct(const char c)
static struct st_hash_type symhash
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)
#define ENCODING_GET(obj)
static const yytype_int16 yytable[]
NODE * parser_deferred_nodes
static int dyna_in_block_gen(struct parser_params *)
static const rb_data_type_t parser_data_type
#define nd_set_type(n, t)
#define logop(type, node1, node2)
static rb_encoding * must_be_ascii_compatible(VALUE s)
#define MEMZERO(p, type, n)
static void dyna_pop_1(struct parser_params *parser)
void rb_exc_raise(VALUE mesg)
#define NEW_UNLESS(c, t, e)
static NODE * new_const_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
VALUE rb_usascii_str_new(const char *, long)
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
int rb_is_method_name(VALUE name)
static void warn_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
#define NEW_OP_ASGN_AND(i, val)
static VALUE coverage(const char *f, int n)
#define parser_warning(node, mesg)
static void parser_free(void *ptr)
static YYSIZE_T const char * yystr
enum lex_state_e parser_lex_state
VALUE parser_lex_lastline
NODE * rb_parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
static void parser_initialize(struct parser_params *parser)
#define scan_hex(s, l, e)
static struct vtable * dyna_push_gen(struct parser_params *)
static void parser_set_encode(struct parser_params *parser, const char *name)
#define rb_intern_str(string)
#define lex_goto_eol(parser)
int rb_char_to_option_kcode(int c, int *option, int *kcode)
#define TypedData_Get_Struct(obj, type, data_type, sval)
void rb_compile_error_append(const char *fmt,...)
#define StringValuePtr(v)
#define match_op(node1, node2)
static enum node_type nodetype(NODE *node)
#define NEW_STRTERM(func, term, paren)
const rb_data_type_t * parent
#define NEW_RESCUE(b, res, e)
VALUE rb_parser_encoding(VALUE vparser)
#define reg_named_capture_assign(regexp, match)
struct parser_params * parser
static void magic_comment_encoding(struct parser_params *parser, const char *name, const char *val)
#define NEW_NODE(t, a0, a1, a2)
#define NEW_ENSURE(b, en)
RUBY_EXTERN VALUE rb_mKernel
char * ruby_strdup(const char *)
static int e_option_supplied(struct parser_params *parser)
NODE * rb_compile_string(const char *f, VALUE s, int line)
static struct vtable * vtable_alloc(struct vtable *prev)
int rb_ascii8bit_encindex(void)
static int is_special_global_name(const char *m, const char *e, rb_encoding *enc)
static const yytype_uint16 yyrline[]
void rb_define_const(VALUE, const char *, VALUE)
#define NEW_WHEN(c, t, e)
top_stmt escape_Qundef($1)
static char *char * yydest
VALUE rb_define_class(const char *name, VALUE super)
Defines a top-level class.
static int reg_fragment_check_gen(struct parser_params *, VALUE, int)
static NODE * dsym_node_gen(struct parser_params *, NODE *)
static NODE * new_attr_op_assign_gen(struct parser_params *parser, NODE *lhs, ID attr, ID op, NODE *rhs)
static void no_blockarg(struct parser_params *parser, NODE *node)
static struct magic_comment magic_comments[]
#define MBCLEN_CHARFOUND_P(ret)
static NODE * splat_array(NODE *)
static void parser_mark(void *ptr)
NODE * rb_parser_append_print(VALUE vparser, NODE *node)
static void parser_tokadd(struct parser_params *parser, int c)
#define nd_set_line(n, l)
static void ripper_init_eventids1(void)
static int sym_check_asciionly(VALUE str)
static ID intern_str(VALUE str)
static VALUE lex_get_str(struct parser_params *parser, VALUE s)
static int assign_in_cond(struct parser_params *parser, NODE *node)
#define NEW_ARGS_AUX(r, b)
#define TypedData_Wrap_Struct(klass, data_type, sval)
static void void_expr_gen(struct parser_params *, NODE *)
static int reg_named_capture_assign_iter(const OnigUChar *name, const OnigUChar *name_end, int back_num, int *back_refs, OnigRegex regex, void *arg0)
#define RUBY_FUNC_EXPORTED
unsigned char buf[MIME_BUF_SIZE]
VALUE rb_suppress_tracing(VALUE(*func)(VALUE), VALUE arg)
VALUE rb_enc_associate_index(VALUE obj, int idx)
int rb_parse_in_main(void)
#define IS_AFTER_OPERATOR()
const char * parser_lex_pend
static void parser_tokaddmbc(struct parser_params *parser, int c, rb_encoding *enc)
#define ALLOCA_N(type, n)
#define ENC_CODERANGE_UNKNOWN
void rb_gc_mark_symbols(void)
#define set_yylval_num(x)
#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)
#define parser_encoding_name()
token_info * parser_token_info
#define new_op_assign(lhs, op, rhs)
static NODE * list_append_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_str_buf_cat(VALUE, const char *, long)
void * rb_parser_malloc(struct parser_params *parser, size_t size)
static const yytype_int16 yycheck[]
static int literal_node(NODE *node)
static int dvar_curr_gen(struct parser_params *, ID)
static int rb_str_symname_type(VALUE name)
static int rb_enc_symname_type(const char *name, long len, rb_encoding *enc)
#define NEW_LASGN(v, val)
#define flush_string_content(enc)
VALUE rb_obj_as_string(VALUE)
#define NEW_OPT_ARG(i, v)
VALUE rb_hash_aset(VALUE, VALUE, VALUE)
int rb_dvar_defined(ID id)
VALUE rb_str_resize(VALUE, long)
int st_foreach(st_table *, int(*)(ANYARGS), st_data_t)
static int parser_yyerror(struct parser_params *, const char *)
#define RUBY_DTRACE_PARSE_END_ENABLED()
static const yytype_int16 yypgoto[]
int rb_symname_p(const char *name)
static int parser_tokadd_mbchar(struct parser_params *parser, int c)
VALUE rb_thread_current(void)
#define token_info_pop(token)
VALUE rb_range_new(VALUE, VALUE, int)
VALUE rb_sprintf(const char *format,...)
#define rb_enc_mbcput(c, buf, enc)
static VALUE debug_lines(const char *f)
#define rb_node_newnode(type, a1, a2, a3)
#define mixed_error(enc1, enc2)
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)
#define reg_fragment_setenc(str, options)
static int value_expr_gen(struct parser_params *, NODE *)
static const yytype_int16 yyrhs[]
static int parser_whole_match_p(struct parser_params *parser, const char *eos, long len, int indent)
static const char * magic_comment_marker(const char *str, long len)
int rb_is_local_id(ID id)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
static const yytype_uint8 yytranslate[]
static void Init_id(void)
static char * parser_newtok(struct parser_params *parser)
static void fixup_nodes(NODE **)
rb_encoding * rb_usascii_encoding(void)
unsigned char yytype_uint8
#define list_concat(h, t)
#define rb_reserved_word(str, len)
#define heredoc_restore(n)
#define NEW_UNTIL(c, b, n)
#define NEW_MATCH3(r, n2)
struct parser_params * parser
VALUE rb_str_buf_new(long)
stack_type parser_cond_stack
#define IS_lex_state_for(x, ls)
static NODE * arg_append_gen(struct parser_params *, NODE *, NODE *)
static void ripper_init_eventids2(void)
int rb_const_defined_at(VALUE, ID)
#define heredoc_identifier()
static VALUE parser_str_new(const char *p, long n, rb_encoding *enc, int func, rb_encoding *enc0)
static int parser_magic_comment(struct parser_params *parser, const char *str, long len)
int rb_is_global_id(ID id)
static int arg_var_gen(struct parser_params *, ID)
#define call_bin_op(recv, id, arg1)
#define rb_warn4S(file, line, fmt, a)
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)
static VALUE yycompile0(VALUE arg)
#define NEW_RESBODY(a, ex, n)
#define assignable_result(x)
static int parser_tokadd_escape(struct parser_params *parser, rb_encoding **encp)
static int parser_tokadd_string(struct parser_params *, int, int, int, long *, rb_encoding **)
VALUE rb_reg_check_preprocess(VALUE)
expr ripper_intern("and")
static NODE * assignable_gen(struct parser_params *, ID, NODE *)
RUBY_EXTERN VALUE rb_cString
#define dvar_defined_get(id)
#define RUBY_DTRACE_PARSE_BEGIN_ENABLED()
static NODE * new_args_gen(struct parser_params *, NODE *, NODE *, ID, NODE *, NODE *)
static int vtable_included(const struct vtable *tbl, ID id)
VALUE rb_vsprintf(const char *, va_list)
static VALUE lex_io_gets(struct parser_params *parser, VALUE io)
#define MEMCPY(p1, p2, type, n)
#define parser_is_identchar()
#define set_yylval_node(x)
static void const char * yymsg
static void vtable_free(struct vtable *tbl)
#define NEW_GASGN(v, val)
#define NEW_ARGSPUSH(a, b)
int rb_is_const_name(VALUE name)
int rb_is_local_name(VALUE name)
#define reg_fragment_check(str, options)
yy_symbol_value_print(yyoutput, yytype, yyvaluep, parser)
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)
static void reduce_nodes_gen(struct parser_params *, NODE **)
#define NEW_DEFS(r, i, a, d)
void rb_gc_mark_parser(void)
#define YYSTACK_ALLOC_MAXIMUM
#define set_yylval_name(x)
static NODE * reg_named_capture_assign_gen(struct parser_params *parser, VALUE regexp, NODE *match)
static void parser_pushback(struct parser_params *parser, int c)
void rb_parser_free(struct parser_params *parser, void *ptr)
static const yytype_uint16 yydefact[]
static int parser_here_document(struct parser_params *, NODE *)
#define parser_warn(node, mesg)
static NODE * ret_args_gen(struct parser_params *, NODE *)
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)
static void dyna_pop_gen(struct parser_params *, const struct vtable *)
NODE * parser_lex_strterm
top_stmts dispatch0(stmts_new)
static void local_pop_gen(struct parser_params *)
#define NEW_ATTRASGN(r, m, a)
static int simple_re_meta(int c)
#define new_attr_op_assign(lhs, type, attr, op, rhs)
#define aryset(node1, node2)
#define list_append(l, i)
st_index_t rb_str_hash(VALUE)
#define NEW_OP_ASGN2(r, i, o, val)
#define tokaddmbc(c, enc)
#define STR_NEW3(p, n, e, func)
static const yytype_int16 yypact[]
void rb_compile_warning(const char *file, int line, const char *fmt,...)
RUBY_EXTERN VALUE rb_cObject
static void warning_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
static int symbols_i(VALUE sym, ID value, VALUE ary)
static void parser_prepare(struct parser_params *parser)
static struct parser_params * parser_new(void)
#define new_args(f, o, r, p, t)
static void rb_backref_error_gen(struct parser_params *, NODE *)
static NODE * logop_gen(struct parser_params *, enum node_type, NODE *, NODE *)
static void void_stmts_gen(struct parser_params *, NODE *)
struct rb_encoding_entry * list
void * rb_parser_calloc(struct parser_params *parser, size_t nelem, size_t size)
static const yytype_int16 yydefgoto[]
#define STRNCASECMP(s1, s2, n)
rb_encoding * rb_filesystem_encoding(void)
VALUE rb_make_backtrace(void)
static int yylex(void *, void *)
#define node_assign(node1, node2)
#define NEW_OP_ASGN1(p, id, a)
static int parser_parse_string(struct parser_params *, NODE *)
VALUE rb_ary_new2(long capa)
#define YYSTACK_RELOCATE(Stack)
#define ruby_eval_tree_begin
#define is_instance_id(id)
VALUE rb_str_new(const char *, long)
const char * parser_lex_pbeg
static NODE * cond_gen(struct parser_params *, NODE *)
int rb_is_class_id(ID id)
VALUE rb_parser_new(void)
static NODE * list_concat_gen(struct parser_params *, NODE *, NODE *)
#define NEW_CDECL(v, val, path)
static int is_private_local_id(ID name)
static int comment_at_top(struct parser_params *parser)
const char * parser_lex_p
static void dispose_string(VALUE str)
static int parser_nextc(struct parser_params *parser)
#define rb_enc_asciicompat(enc)
#define read_escape(flags, e)
static const char *const yytname[]
int rb_is_instance_name(VALUE name)
int parser_ruby_sourceline
const char * rb_id2name(ID id)
#define call_uni_op(recv, id)
static ID register_symid_str(ID, VALUE)
#define rb_enc_isupper(c, enc)
static ID shadowing_lvar_gen(struct parser_params *, ID)
static int token_info_get_column(struct parser_params *parser, const char *token)
#define YY_STACK_PRINT(Bottom, Top)
static NODE * yycompile(struct parser_params *parser, const char *f, int line)
#define rb_enc_isascii(c, enc)
int rb_str_hash_cmp(VALUE, VALUE)
static void vtable_add(struct vtable *tbl, ID id)
static const yytype_uint16 yystos[]
static int is_static_content(NODE *node)
rb_encoding * rb_ascii8bit_encoding(void)
int rb_is_junk_name(VALUE name)
int rb_enc_find_index(const char *name)
static NODE * aryset_gen(struct parser_params *, NODE *, NODE *)
static int parser_heredoc_identifier(struct parser_params *parser)
RUBY_FUNC_EXPORTED const unsigned int ruby_global_name_punct_bits[(0x7e-0x20+31)/32]
static int parser_tokadd_utf8(struct parser_params *parser, rb_encoding **encp, int string_literal, int symbol_literal, int regexp_literal)
#define RSTRING_GETMEM(str, ptrvar, lenvar)
static NODE * block_append_gen(struct parser_params *, NODE *, NODE *)
ID rb_intern3(const char *name, long len, rb_encoding *enc)
#define NEW_DEFN(i, a, d, p)
static void new_bv_gen(struct parser_params *, ID)
#define assignable(id, node)
void * rb_parser_realloc(struct parser_params *parser, void *ptr, size_t size)
st_table * st_init_numtable_with_size(st_index_t)
VALUE rb_cstr_to_inum(const char *str, int base, int badcheck)
static NODE * range_op(struct parser_params *parser, NODE *node)
static int parser_tok_hex(struct parser_params *parser, size_t *numlen)
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)
#define block_append(h, t)
VALUE rb_parser_get_yydebug(VALUE self)
VALUE(* parser_lex_gets)(struct parser_params *, VALUE)
#define rb_enc_isalpha(c, enc)
static NODE * literal_concat_gen(struct parser_params *, NODE *, NODE *)
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 NODE * call_uni_op_gen(struct parser_params *, NODE *, ID)
static int literal_concat0(struct parser_params *, VALUE, VALUE)
static struct kwtable * reserved_word(const char *, unsigned int)
int rb_enc_str_coderange(VALUE)
int rb_local_defined(ID id)
#define IS_LABEL_SUFFIX(n)
NODE * parser_eval_tree_begin
static int match(VALUE str, VALUE pat, VALUE hash, int(*cb)(VALUE, VALUE))
static NODE * parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
static void parser_set_token_info(struct parser_params *parser, const char *name, const char *val)
static VALUE lex_getline(struct parser_params *parser)
static NODE * node_newnode(struct parser_params *, enum node_type, VALUE, VALUE, VALUE)
#define RTYPEDDATA_TYPE(v)
#define whole_match_p(e, l, i)
unsigned long ruby_scan_oct(const char *, size_t, size_t *)
static int parser_peek_variable_name(struct parser_params *parser)
#define is_attrset_id(id)
static void YYSTYPE * yyvsp
static int local_id_gen(struct parser_params *, ID)
#define SPECIAL_PUNCT(idx)
#define rb_backref_error(n)
static void ripper_init_eventids2_table(VALUE self)
static NODE * new_args_tail_gen(struct parser_params *, NODE *, ID, ID)
#define rb_warningS(fmt, a)
VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc)
rb_encoding * rb_enc_from_index(int index)
#define NEW_BLOCK_PASS(b)
int rb_is_global_name(VALUE name)