50 #define YYBISON_VERSION "2.3"
53 #define YYSKELETON_NAME "yacc.c"
59 #define YYLSP_NEEDED 0
190 #define keyword_class 258
191 #define keyword_module 259
192 #define keyword_def 260
193 #define keyword_undef 261
194 #define keyword_begin 262
195 #define keyword_rescue 263
196 #define keyword_ensure 264
197 #define keyword_end 265
198 #define keyword_if 266
199 #define keyword_unless 267
200 #define keyword_then 268
201 #define keyword_elsif 269
202 #define keyword_else 270
203 #define keyword_case 271
204 #define keyword_when 272
205 #define keyword_while 273
206 #define keyword_until 274
207 #define keyword_for 275
208 #define keyword_break 276
209 #define keyword_next 277
210 #define keyword_redo 278
211 #define keyword_retry 279
212 #define keyword_in 280
213 #define keyword_do 281
214 #define keyword_do_cond 282
215 #define keyword_do_block 283
216 #define keyword_do_LAMBDA 284
217 #define keyword_return 285
218 #define keyword_yield 286
219 #define keyword_super 287
220 #define keyword_self 288
221 #define keyword_nil 289
222 #define keyword_true 290
223 #define keyword_false 291
224 #define keyword_and 292
225 #define keyword_or 293
226 #define keyword_not 294
227 #define modifier_if 295
228 #define modifier_unless 296
229 #define modifier_while 297
230 #define modifier_until 298
231 #define modifier_rescue 299
232 #define keyword_alias 300
233 #define keyword_defined 301
234 #define keyword_BEGIN 302
235 #define keyword_END 303
236 #define keyword__LINE__ 304
237 #define keyword__FILE__ 305
238 #define keyword__ENCODING__ 306
239 #define tIDENTIFIER 307
243 #define tCONSTANT 311
248 #define tSTRING_CONTENT 316
251 #define tBACK_REF 319
252 #define tREGEXP_END 320
277 #define tLPAREN_ARG 345
281 #define tLBRACE_ARG 349
286 #define tSTRING_BEG 354
287 #define tXSTRING_BEG 355
288 #define tREGEXP_BEG 356
289 #define tWORDS_BEG 357
290 #define tQWORDS_BEG 358
291 #define tSTRING_DBEG 359
292 #define tSTRING_DVAR 360
293 #define tSTRING_END 361
296 #define tUMINUS_NUM 364
298 #define idRespond_to 366
301 #define id_core_set_method_alias 369
302 #define id_core_set_variable_alias 370
303 #define id_core_undef_method 371
304 #define id_core_define_method 372
305 #define id_core_define_singleton_method 373
306 #define id_core_set_postexe 374
307 #define tLAST_TOKEN 375
317 #define YYERROR_VERBOSE 1
318 #define YYSTACK_USE_ALLOCA 0
332 #define numberof(array) (int)(sizeof(array) / sizeof((array)[0]))
334 #define YYMALLOC(size) rb_parser_malloc(parser, (size))
335 #define YYREALLOC(ptr, size) rb_parser_realloc(parser, (ptr), (size))
336 #define YYCALLOC(nelem, size) rb_parser_calloc(parser, (nelem), (size))
337 #define YYFREE(ptr) rb_parser_free(parser, (ptr))
338 #define malloc YYMALLOC
339 #define realloc YYREALLOC
340 #define calloc YYCALLOC
345 #define REGISTER_SYMID(id, name) register_symid((id), (name), strlen(name), enc)
349 #define is_notop_id(id) ((id)>tLAST_TOKEN)
350 #define is_local_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_LOCAL)
351 #define is_global_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_GLOBAL)
352 #define is_instance_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_INSTANCE)
353 #define is_attrset_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_ATTRSET)
354 #define is_const_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CONST)
355 #define is_class_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CLASS)
356 #define is_junk_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_JUNK)
358 #define is_asgn_or_id(id) ((is_notop_id(id)) && \
359 (((id)&ID_SCOPE_MASK) == ID_GLOBAL || \
360 ((id)&ID_SCOPE_MASK) == ID_INSTANCE || \
361 ((id)&ID_SCOPE_MASK) == ID_CLASS))
380 # define BITSTACK_PUSH(stack, n) ((stack) = ((stack)<<1)|((n)&1))
381 # define BITSTACK_POP(stack) ((stack) = (stack) >> 1)
382 # define BITSTACK_LEXPOP(stack) ((stack) = ((stack) >> 1) | ((stack) & 1))
383 # define BITSTACK_SET_P(stack) ((stack)&1)
385 #define COND_PUSH(n) BITSTACK_PUSH(cond_stack, (n))
386 #define COND_POP() BITSTACK_POP(cond_stack)
387 #define COND_LEXPOP() BITSTACK_LEXPOP(cond_stack)
388 #define COND_P() BITSTACK_SET_P(cond_stack)
390 #define CMDARG_PUSH(n) BITSTACK_PUSH(cmdarg_stack, (n))
391 #define CMDARG_POP() BITSTACK_POP(cmdarg_stack)
392 #define CMDARG_LEXPOP() BITSTACK_LEXPOP(cmdarg_stack)
393 #define CMDARG_P() BITSTACK_SET_P(cmdarg_stack)
409 #define DVARS_INHERIT ((void*)1)
410 #define DVARS_TOPSCOPE NULL
411 #define DVARS_SPECIAL_P(tbl) (!POINTER_P(tbl))
412 #define POINTER_P(val) ((VALUE)(val) & ~(VALUE)3)
435 if (
VTBL_DEBUG) printf(
"vtable_alloc: %p\n", (
void *)tbl);
442 if (
VTBL_DEBUG)printf(
"vtable_free: %p\n", (
void *)tbl);
455 rb_bug(
"vtable_add: vtable is not allocated (%p)", (
void *)tbl);
472 for (i = 0; i < tbl->
pos; i++) {
473 if (tbl->
tbl[i] ==
id) {
557 VALUE parser_ruby_sourcefile_string;
565 VALUE parsing_thread;
570 #define UTF8_ENC() (parser->utf8 ? parser->utf8 : \
571 (parser->utf8 = rb_utf8_encoding()))
572 #define STR_NEW(p,n) rb_enc_str_new((p),(n),parser->enc)
573 #define STR_NEW0() rb_enc_str_new(0,0,parser->enc)
574 #define STR_NEW2(p) rb_enc_str_new((p),strlen(p),parser->enc)
575 #define STR_NEW3(p,n,e,func) parser_str_new((p),(n),(e),(func),parser->enc)
576 #define ENC_SINGLE(cr) ((cr)==ENC_CODERANGE_7BIT)
577 #define TOK_INTERN(mb) rb_intern3(tok(), toklen(), parser->enc)
580 #define yyerror(msg) parser_yyerror(parser, (msg))
582 #define YYLEX_PARAM parser
584 #define lex_strterm (parser->parser_lex_strterm)
585 #define lex_state (parser->parser_lex_state)
586 #define cond_stack (parser->parser_cond_stack)
587 #define cmdarg_stack (parser->parser_cmdarg_stack)
588 #define class_nest (parser->parser_class_nest)
589 #define paren_nest (parser->parser_paren_nest)
590 #define lpar_beg (parser->parser_lpar_beg)
591 #define in_single (parser->parser_in_single)
592 #define in_def (parser->parser_in_def)
593 #define compile_for_eval (parser->parser_compile_for_eval)
594 #define cur_mid (parser->parser_cur_mid)
595 #define in_defined (parser->parser_in_defined)
596 #define tokenbuf (parser->parser_tokenbuf)
597 #define tokidx (parser->parser_tokidx)
598 #define toksiz (parser->parser_toksiz)
599 #define lex_input (parser->parser_lex_input)
600 #define lex_lastline (parser->parser_lex_lastline)
601 #define lex_nextline (parser->parser_lex_nextline)
602 #define lex_pbeg (parser->parser_lex_pbeg)
603 #define lex_p (parser->parser_lex_p)
604 #define lex_pend (parser->parser_lex_pend)
605 #define heredoc_end (parser->parser_heredoc_end)
606 #define command_start (parser->parser_command_start)
607 #define deferred_nodes (parser->parser_deferred_nodes)
608 #define lex_gets_ptr (parser->parser_lex_gets_ptr)
609 #define lex_gets (parser->parser_lex_gets)
610 #define lvtbl (parser->parser_lvtbl)
611 #define ruby__end__seen (parser->parser_ruby__end__seen)
612 #define ruby_sourceline (parser->parser_ruby_sourceline)
613 #define ruby_sourcefile (parser->parser_ruby_sourcefile)
614 #define current_enc (parser->enc)
615 #define yydebug (parser->parser_yydebug)
618 #define ruby_eval_tree (parser->parser_eval_tree)
619 #define ruby_eval_tree_begin (parser->parser_eval_tree_begin)
620 #define ruby_debug_lines (parser->debug_lines)
621 #define ruby_coverage (parser->coverage)
624 static int yylex(
void*,
void*);
627 #define yyparse ruby_yyparse
630 #define rb_node_newnode(type, a1, a2, a3) node_newnode(parser, (type), (a1), (a2), (a3))
633 #define cond(node) cond_gen(parser, (node))
635 #define logop(type,node1,node2) logop_gen(parser, (type), (node1), (node2))
643 #define value_expr(node) value_expr_gen(parser, (node) = remove_begin(node))
644 #define void_expr0(node) void_expr_gen(parser, (node))
645 #define void_expr(node) void_expr0((node) = remove_begin(node))
647 #define void_stmts(node) void_stmts_gen(parser, (node))
649 #define reduce_nodes(n) reduce_nodes_gen(parser,(n))
651 #define block_dup_check(n1,n2) block_dup_check_gen(parser,(n1),(n2))
654 #define block_append(h,t) block_append_gen(parser,(h),(t))
656 #define list_append(l,i) list_append_gen(parser,(l),(i))
658 #define list_concat(h,t) list_concat_gen(parser,(h),(t))
660 #define arg_append(h,t) arg_append_gen(parser,(h),(t))
662 #define arg_concat(h,t) arg_concat_gen(parser,(h),(t))
664 #define literal_concat(h,t) literal_concat_gen(parser,(h),(t))
667 #define new_evstr(n) new_evstr_gen(parser,(n))
669 #define evstr2dstr(n) evstr2dstr_gen(parser,(n))
673 #define call_bin_op(recv,id,arg1) call_bin_op_gen(parser, (recv),(id),(arg1))
675 #define call_uni_op(recv,id) call_uni_op_gen(parser, (recv),(id))
678 #define new_args(f,o,r,p,b) new_args_gen(parser, (f),(o),(r),(p),(b))
682 #define ret_args(node) ret_args_gen(parser, (node))
685 #define new_yield(node) new_yield_gen(parser, (node))
688 #define gettable(id) gettable_gen(parser,(id))
690 #define assignable(id,node) assignable_gen(parser, (id), (node))
693 #define aryset(node1,node2) aryset_gen(parser, (node1), (node2))
695 #define attrset(node,id) attrset_gen(parser, (node), (id))
698 #define rb_backref_error(n) rb_backref_error_gen(parser,(n))
700 #define node_assign(node1, node2) node_assign_gen(parser, (node1), (node2))
703 #define match_op(node1,node2) match_op_gen(parser, (node1), (node2))
706 #define local_tbl() local_tbl_gen(parser)
711 #define reg_compile(str,options) reg_compile_gen(parser, (str), (options))
713 #define reg_fragment_setenc(str,options) reg_fragment_setenc_gen(parser, (str), (options))
715 #define reg_fragment_check(str,options) reg_fragment_check_gen(parser, (str), (options))
717 #define reg_named_capture_assign(regexp,match) reg_named_capture_assign_gen(parser,(regexp),(match))
719 #define get_id(id) (id)
720 #define get_value(val) (val)
722 #define remove_begin(node) (node)
723 #define rb_dvar_defined(id) 0
724 #define rb_local_defined(id) 0
725 static ID ripper_get_id(
VALUE);
726 #define get_id(id) ripper_get_id(id)
728 #define get_value(val) ripper_get_value(val)
730 #define assignable(lhs,node) assignable_gen(parser, (lhs))
732 #define id_is_var(id) id_is_var_gen(parser, (id))
736 #define formal_argument(id) formal_argument_gen(parser, (id))
738 #define shadowing_lvar(name) shadowing_lvar_gen(parser, (name))
740 #define new_bv(id) new_bv_gen(parser, (id))
743 #define local_push(top) local_push_gen(parser,(top))
745 #define local_pop() local_pop_gen(parser)
747 #define local_var(id) local_var_gen(parser, (id));
749 #define arg_var(id) arg_var_gen(parser, (id))
751 #define local_id(id) local_id_gen(parser, (id))
753 #define internal_id() internal_id_gen(parser)
756 #define dyna_push() dyna_push_gen(parser)
758 #define dyna_pop(node) dyna_pop_gen(parser, (node))
760 #define dyna_in_block() dyna_in_block_gen(parser)
761 #define dyna_var(id) local_var(id)
763 #define dvar_defined(id) dvar_defined_gen(parser, (id), 0)
764 #define dvar_defined_get(id) dvar_defined_gen(parser, (id), 1)
766 #define dvar_curr(id) dvar_curr_gen(parser, (id))
769 #define lvar_defined(id) lvar_defined_gen(parser, (id))
771 #define RE_OPTION_ONCE (1<<16)
772 #define RE_OPTION_ENCODING_SHIFT 8
773 #define RE_OPTION_ENCODING(e) (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT)
774 #define RE_OPTION_ENCODING_IDX(o) (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff)
775 #define RE_OPTION_ENCODING_NONE(o) ((o)&RE_OPTION_ARG_ENCODING_NONE)
776 #define RE_OPTION_MASK 0xff
777 #define RE_OPTION_ARG_ENCODING_NONE 32
779 #define NODE_STRTERM NODE_ZARRAY
780 #define NODE_HEREDOC NODE_ARRAY
781 #define SIGN_EXTEND(x,n) (((1<<(n)-1)^((x)&~(~0<<(n))))-(1<<(n)-1))
782 #define nd_func u1.id
783 #if SIZEOF_SHORT == 2
784 #define nd_term(node) ((signed short)(node)->u2.id)
786 #define nd_term(node) SIGN_EXTEND((node)->u2.id, CHAR_BIT*2)
788 #define nd_paren(node) (char)((node)->u2.id >> CHAR_BIT*2)
789 #define nd_nest u3.cnt
794 #define RIPPER_VERSION "0.1.0"
798 static ID ripper_id_gets;
807 #define dispatch0(n) ripper_dispatch0(parser, TOKEN_PASTE(ripper_id_, n))
808 #define dispatch1(n,a) ripper_dispatch1(parser, TOKEN_PASTE(ripper_id_, n), (a))
809 #define dispatch2(n,a,b) ripper_dispatch2(parser, TOKEN_PASTE(ripper_id_, n), (a), (b))
810 #define dispatch3(n,a,b,c) ripper_dispatch3(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c))
811 #define dispatch4(n,a,b,c,d) ripper_dispatch4(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d))
812 #define dispatch5(n,a,b,c,d,e) ripper_dispatch5(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e))
814 #define yyparse ripper_yyparse
816 #define ripper_intern(s) ID2SYM(rb_intern(s))
819 #define ripper_id2sym(id) ((id) < 256 && rb_ispunct(id) ? \
820 ID2SYM(id) : ripper_id2sym(id))
823 #define arg_new() dispatch0(args_new)
824 #define arg_add(l,a) dispatch2(args_add, (l), (a))
825 #define arg_add_star(l,a) dispatch2(args_add_star, (l), (a))
826 #define arg_add_block(l,b) dispatch2(args_add_block, (l), (b))
827 #define arg_add_optblock(l,b) ((b)==Qundef? (l) : dispatch2(args_add_block, (l), (b)))
828 #define bare_assoc(v) dispatch1(bare_assoc_hash, (v))
829 #define arg_add_assocs(l,b) arg_add((l), bare_assoc(b))
831 #define args2mrhs(a) dispatch1(mrhs_new_from_args, (a))
832 #define mrhs_new() dispatch0(mrhs_new)
833 #define mrhs_add(l,a) dispatch2(mrhs_add, (l), (a))
834 #define mrhs_add_star(l,a) dispatch2(mrhs_add_star, (l), (a))
836 #define mlhs_new() dispatch0(mlhs_new)
837 #define mlhs_add(l,a) dispatch2(mlhs_add, (l), (a))
838 #define mlhs_add_star(l,a) dispatch2(mlhs_add_star, (l), (a))
840 #define params_new(pars, opts, rest, pars2, blk) \
841 dispatch5(params, (pars), (opts), (rest), (pars2), (blk))
843 #define blockvar_new(p,v) dispatch2(block_var, (p), (v))
844 #define blockvar_add_star(l,a) dispatch2(block_var_add_star, (l), (a))
845 #define blockvar_add_block(l,a) dispatch2(block_var_add_block, (l), (a))
847 #define method_optarg(m,a) ((a)==Qundef ? (m) : dispatch2(method_add_arg,(m),(a)))
848 #define method_arg(m,a) dispatch2(method_add_arg,(m),(a))
849 #define method_add_block(m,b) dispatch2(method_add_block, (m), (b))
851 #define escape_Qundef(x) ((x)==Qundef ? Qnil : (x))
858 # define ifndef_ripper(x) (x)
860 # define ifndef_ripper(x)
864 # define rb_warn0(fmt) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt))
865 # define rb_warnI(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
866 # define rb_warnS(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
867 # define rb_warning0(fmt) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt))
868 # define rb_warningS(fmt,a) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt), (a))
870 # define rb_warn0(fmt) ripper_warn0(parser, (fmt))
871 # define rb_warnI(fmt,a) ripper_warnI(parser, (fmt), (a))
872 # define rb_warnS(fmt,a) ripper_warnS(parser, (fmt), (a))
873 # define rb_warning0(fmt) ripper_warning0(parser, (fmt))
874 # define rb_warningS(fmt,a) ripper_warningS(parser, (fmt), (a))
875 static void ripper_warn0(
struct parser_params*,
const char*);
876 static void ripper_warnI(
struct parser_params*,
const char*,
int);
878 static void ripper_warnS(
struct parser_params*,
const char*,
const char*);
880 static void ripper_warning0(
struct parser_params*,
const char*);
881 static void ripper_warningS(
struct parser_params*,
const char*,
const char*);
885 static void ripper_compile_error(
struct parser_params*,
const char *fmt, ...);
886 # define rb_compile_error ripper_compile_error
887 # define compile_error ripper_compile_error
888 # define PARSER_ARG parser,
890 # define rb_compile_error rb_compile_error_with_enc
891 # define compile_error parser->nerr++,rb_compile_error_with_enc
892 # define PARSER_ARG ruby_sourcefile, ruby_sourceline, current_enc,
900 #define YYMAXDEPTH 10000
907 #define token_info_push(token) (RTEST(ruby_verbose) ? token_info_push(parser, (token)) : (void)0)
908 #define token_info_pop(token) (RTEST(ruby_verbose) ? token_info_pop(parser, (token)) : (void)0)
910 #define token_info_push(token)
911 #define token_info_pop(token)
921 #ifdef YYERROR_VERBOSE
922 # undef YYERROR_VERBOSE
923 # define YYERROR_VERBOSE 1
925 # define YYERROR_VERBOSE 0
929 #ifndef YYTOKEN_TABLE
930 # define YYTOKEN_TABLE 0
933 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
946 # define yystype YYSTYPE
947 # define YYSTYPE_IS_DECLARED 1
948 # define YYSTYPE_IS_TRIVIAL 1
971 #elif (defined __STDC__ || defined __C99__FUNC__ \
972 || defined __cplusplus || defined _MSC_VER)
991 # ifdef __SIZE_TYPE__
992 # define YYSIZE_T __SIZE_TYPE__
993 # elif defined size_t
994 # define YYSIZE_T size_t
995 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
996 || defined __cplusplus || defined _MSC_VER)
998 # define YYSIZE_T size_t
1000 # define YYSIZE_T unsigned int
1004 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
1009 # include <libintl.h>
1010 # define YY_(msgid) dgettext ("bison-runtime", msgid)
1014 # define YY_(msgid) msgid
1019 #if ! defined lint || defined __GNUC__
1020 # define YYUSE(e) ((void) (e))
1027 # define YYID(n) (n)
1029 #if (defined __STDC__ || defined __C99__FUNC__ \
1030 || defined __cplusplus || defined _MSC_VER)
1043 #if ! defined yyoverflow || YYERROR_VERBOSE
1047 # ifdef YYSTACK_USE_ALLOCA
1048 # if YYSTACK_USE_ALLOCA
1050 # define YYSTACK_ALLOC __builtin_alloca
1051 # elif defined __BUILTIN_VA_ARG_INCR
1052 # include <alloca.h>
1054 # define YYSTACK_ALLOC __alloca
1055 # elif defined _MSC_VER
1056 # include <malloc.h>
1057 # define alloca _alloca
1059 # define YYSTACK_ALLOC alloca
1060 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1061 || defined __cplusplus || defined _MSC_VER)
1062 # include <stdlib.h>
1064 # define _STDLIB_H 1
1071 # ifdef YYSTACK_ALLOC
1073 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
1074 # ifndef YYSTACK_ALLOC_MAXIMUM
1079 # define YYSTACK_ALLOC_MAXIMUM 4032
1082 # define YYSTACK_ALLOC YYMALLOC
1083 # define YYSTACK_FREE YYFREE
1084 # ifndef YYSTACK_ALLOC_MAXIMUM
1085 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1087 # if (defined __cplusplus && ! defined _STDLIB_H \
1088 && ! ((defined YYMALLOC || defined malloc) \
1089 && (defined YYFREE || defined free)))
1090 # include <stdlib.h>
1092 # define _STDLIB_H 1
1096 # define YYMALLOC malloc
1097 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1098 || defined __cplusplus || defined _MSC_VER)
1103 # define YYFREE free
1104 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1105 || defined __cplusplus || defined _MSC_VER)
1113 #if (! defined yyoverflow \
1114 && (! defined __cplusplus \
1115 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1125 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
1129 # define YYSTACK_BYTES(N) \
1130 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
1131 + YYSTACK_GAP_MAXIMUM)
1136 # if defined __GNUC__ && 1 < __GNUC__
1137 # define YYCOPY(To, From, Count) \
1138 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1140 # define YYCOPY(To, From, Count) \
1144 for (yyi = 0; yyi < (Count); yyi++) \
1145 (To)[yyi] = (From)[yyi]; \
1156 # define YYSTACK_RELOCATE(Stack) \
1159 YYSIZE_T yynewbytes; \
1160 YYCOPY (&yyptr->Stack, Stack, yysize); \
1161 Stack = &yyptr->Stack; \
1162 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
1163 yyptr += yynewbytes / sizeof (*yyptr); \
1172 #define YYLAST 10748
1175 #define YYNTOKENS 148
1179 #define YYNRULES 573
1181 #define YYNSTATES 991
1184 #define YYUNDEFTOK 2
1185 #define YYMAXUTOK 375
1187 #define YYTRANSLATE(YYX) \
1188 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1193 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1194 147, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1195 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1196 2, 2, 146, 123, 2, 2, 2, 121, 116, 2,
1197 142, 143, 119, 117, 140, 118, 139, 120, 2, 2,
1198 2, 2, 2, 2, 2, 2, 2, 2, 111, 145,
1199 113, 109, 112, 110, 2, 2, 2, 2, 2, 2,
1200 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1201 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1202 2, 138, 2, 144, 115, 2, 141, 2, 2, 2,
1203 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1204 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1205 2, 2, 2, 136, 114, 137, 124, 2, 2, 2,
1206 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1207 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1208 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1209 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1210 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1211 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1212 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1213 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1214 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1215 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1216 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1217 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1218 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1219 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1220 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1221 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1222 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1223 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1224 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1225 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1226 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1227 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1228 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1229 105, 106, 107, 108, 122, 125, 126, 127, 128, 129,
1230 130, 131, 132, 133, 134, 135
1238 0, 0, 3, 4, 7, 10, 12, 14, 18, 21,
1239 23, 24, 30, 35, 38, 40, 42, 46, 49, 50,
1240 55, 59, 63, 67, 70, 74, 78, 82, 86, 90,
1241 95, 97, 101, 105, 112, 118, 124, 130, 136, 140,
1242 144, 148, 152, 154, 158, 162, 164, 168, 172, 176,
1243 179, 181, 183, 185, 187, 189, 194, 199, 200, 206,
1244 209, 213, 218, 224, 229, 235, 238, 241, 244, 247,
1245 250, 252, 256, 258, 262, 264, 267, 271, 277, 280,
1246 285, 288, 293, 295, 299, 301, 305, 308, 312, 314,
1247 318, 320, 322, 327, 331, 335, 339, 343, 346, 348,
1248 350, 352, 357, 361, 365, 369, 373, 376, 378, 380,
1249 382, 385, 387, 391, 393, 395, 397, 399, 401, 403,
1250 405, 407, 409, 411, 412, 417, 419, 421, 423, 425,
1251 427, 429, 431, 433, 435, 437, 439, 441, 443, 445,
1252 447, 449, 451, 453, 455, 457, 459, 461, 463, 465,
1253 467, 469, 471, 473, 475, 477, 479, 481, 483, 485,
1254 487, 489, 491, 493, 495, 497, 499, 501, 503, 505,
1255 507, 509, 511, 513, 515, 517, 519, 521, 523, 525,
1256 527, 529, 531, 533, 535, 537, 539, 541, 543, 545,
1257 547, 549, 551, 553, 555, 557, 561, 567, 571, 577,
1258 584, 590, 596, 602, 608, 613, 617, 621, 625, 629,
1259 633, 637, 641, 645, 649, 654, 659, 662, 665, 669,
1260 673, 677, 681, 685, 689, 693, 697, 701, 705, 709,
1261 713, 717, 720, 723, 727, 731, 735, 739, 740, 745,
1262 752, 754, 756, 758, 761, 766, 769, 773, 775, 777,
1263 779, 781, 784, 789, 792, 794, 797, 800, 805, 807,
1264 808, 811, 814, 817, 819, 821, 824, 828, 833, 837,
1265 842, 845, 847, 849, 851, 853, 855, 857, 859, 861,
1266 863, 864, 869, 870, 875, 879, 883, 886, 890, 894,
1267 896, 901, 905, 907, 908, 915, 920, 924, 927, 929,
1268 932, 935, 942, 949, 950, 951, 959, 960, 961, 969,
1269 975, 980, 981, 982, 992, 993, 1000, 1001, 1002, 1011,
1270 1012, 1018, 1019, 1026, 1027, 1028, 1038, 1040, 1042, 1044,
1271 1046, 1048, 1050, 1052, 1054, 1056, 1058, 1060, 1062, 1064,
1272 1066, 1068, 1070, 1072, 1074, 1077, 1079, 1081, 1083, 1089,
1273 1091, 1094, 1096, 1098, 1100, 1104, 1106, 1110, 1112, 1117,
1274 1124, 1128, 1134, 1137, 1142, 1144, 1148, 1155, 1164, 1169,
1275 1176, 1181, 1184, 1191, 1194, 1199, 1206, 1209, 1214, 1217,
1276 1222, 1224, 1226, 1228, 1232, 1234, 1239, 1241, 1244, 1246,
1277 1250, 1252, 1254, 1255, 1256, 1261, 1266, 1268, 1272, 1276,
1278 1277, 1283, 1286, 1291, 1296, 1299, 1304, 1309, 1313, 1317,
1279 1321, 1324, 1326, 1331, 1332, 1338, 1339, 1345, 1351, 1353,
1280 1355, 1362, 1364, 1366, 1368, 1370, 1373, 1375, 1378, 1380,
1281 1382, 1384, 1386, 1388, 1390, 1392, 1395, 1399, 1403, 1407,
1282 1411, 1415, 1416, 1420, 1422, 1425, 1429, 1433, 1434, 1438,
1283 1439, 1442, 1443, 1446, 1447, 1450, 1452, 1453, 1457, 1458,
1284 1459, 1465, 1467, 1469, 1471, 1473, 1476, 1478, 1480, 1482,
1285 1484, 1488, 1490, 1492, 1495, 1498, 1500, 1502, 1504, 1506,
1286 1508, 1510, 1512, 1514, 1516, 1518, 1520, 1522, 1524, 1526,
1287 1528, 1530, 1532, 1534, 1536, 1537, 1542, 1545, 1549, 1552,
1288 1559, 1568, 1573, 1580, 1585, 1592, 1595, 1600, 1607, 1610,
1289 1615, 1618, 1623, 1625, 1626, 1628, 1630, 1632, 1634, 1636,
1290 1638, 1640, 1644, 1646, 1650, 1654, 1658, 1660, 1664, 1666,
1291 1670, 1672, 1674, 1677, 1679, 1681, 1683, 1686, 1689, 1691,
1292 1693, 1694, 1699, 1701, 1704, 1706, 1710, 1714, 1717, 1719,
1293 1721, 1723, 1725, 1727, 1729, 1731, 1733, 1735, 1737, 1739,
1294 1741, 1742, 1744, 1745, 1747, 1750, 1753, 1754, 1756, 1758,
1295 1760, 1762, 1764, 1767
1301 149, 0, -1, -1, 150, 151, -1, 152, 314, -1,
1302 321, -1, 153, -1, 152, 320, 153, -1, 1, 153,
1303 -1, 158, -1, -1, 47, 154, 136, 151, 137, -1,
1304 156, 256, 231, 259, -1, 157, 314, -1, 321, -1,
1305 158, -1, 157, 320, 158, -1, 1, 158, -1, -1,
1306 45, 180, 159, 180, -1, 45, 54, 54, -1, 45,
1307 54, 64, -1, 45, 54, 63, -1, 6, 181, -1,
1308 158, 40, 162, -1, 158, 41, 162, -1, 158, 42,
1309 162, -1, 158, 43, 162, -1, 158, 44, 158, -1,
1310 48, 136, 156, 137, -1, 160, -1, 168, 109, 163,
1311 -1, 286, 87, 163, -1, 216, 138, 191, 317, 87,
1312 163, -1, 216, 139, 52, 87, 163, -1, 216, 139,
1313 56, 87, 163, -1, 216, 85, 56, 87, 163, -1,
1314 216, 85, 52, 87, 163, -1, 287, 87, 163, -1,
1315 175, 109, 198, -1, 168, 109, 187, -1, 168, 109,
1316 198, -1, 161, -1, 175, 109, 163, -1, 175, 109,
1317 160, -1, 163, -1, 161, 37, 161, -1, 161, 38,
1318 161, -1, 39, 315, 161, -1, 123, 163, -1, 185,
1319 -1, 161, -1, 167, -1, 164, -1, 249, -1, 249,
1320 139, 311, 193, -1, 249, 85, 311, 193, -1, -1,
1321 94, 166, 237, 156, 137, -1, 310, 193, -1, 310,
1322 193, 165, -1, 216, 139, 311, 193, -1, 216, 139,
1323 311, 193, 165, -1, 216, 85, 311, 193, -1, 216,
1324 85, 311, 193, 165, -1, 32, 193, -1, 31, 193,
1325 -1, 30, 192, -1, 21, 192, -1, 22, 192, -1,
1326 170, -1, 89, 169, 316, -1, 170, -1, 89, 169,
1327 316, -1, 172, -1, 172, 171, -1, 172, 95, 174,
1328 -1, 172, 95, 174, 140, 173, -1, 172, 95, -1,
1329 172, 95, 140, 173, -1, 95, 174, -1, 95, 174,
1330 140, 173, -1, 95, -1, 95, 140, 173, -1, 174,
1331 -1, 89, 169, 316, -1, 171, 140, -1, 172, 171,
1332 140, -1, 171, -1, 173, 140, 171, -1, 283, -1,
1333 284, -1, 216, 138, 191, 317, -1, 216, 139, 52,
1334 -1, 216, 85, 52, -1, 216, 139, 56, -1, 216,
1335 85, 56, -1, 86, 56, -1, 287, -1, 283, -1,
1336 284, -1, 216, 138, 191, 317, -1, 216, 139, 52,
1337 -1, 216, 85, 52, -1, 216, 139, 56, -1, 216,
1338 85, 56, -1, 86, 56, -1, 287, -1, 52, -1,
1339 56, -1, 86, 176, -1, 176, -1, 216, 85, 176,
1340 -1, 52, -1, 56, -1, 53, -1, 183, -1, 184,
1341 -1, 178, -1, 279, -1, 179, -1, 281, -1, 180,
1342 -1, -1, 181, 140, 182, 180, -1, 114, -1, 115,
1343 -1, 116, -1, 69, -1, 70, -1, 71, -1, 77,
1344 -1, 78, -1, 112, -1, 73, -1, 113, -1, 74,
1345 -1, 72, -1, 83, -1, 84, -1, 117, -1, 118,
1346 -1, 119, -1, 95, -1, 120, -1, 121, -1, 68,
1347 -1, 123, -1, 124, -1, 66, -1, 67, -1, 81,
1348 -1, 82, -1, 141, -1, 49, -1, 50, -1, 51,
1349 -1, 47, -1, 48, -1, 45, -1, 37, -1, 7,
1350 -1, 21, -1, 16, -1, 3, -1, 5, -1, 46,
1351 -1, 26, -1, 15, -1, 14, -1, 10, -1, 9,
1352 -1, 36, -1, 20, -1, 25, -1, 4, -1, 22,
1353 -1, 34, -1, 39, -1, 38, -1, 23, -1, 8,
1354 -1, 24, -1, 30, -1, 33, -1, 32, -1, 13,
1355 -1, 35, -1, 6, -1, 17, -1, 31, -1, 11,
1356 -1, 12, -1, 18, -1, 19, -1, 175, 109, 185,
1357 -1, 175, 109, 185, 44, 185, -1, 286, 87, 185,
1358 -1, 286, 87, 185, 44, 185, -1, 216, 138, 191,
1359 317, 87, 185, -1, 216, 139, 52, 87, 185, -1,
1360 216, 139, 56, 87, 185, -1, 216, 85, 52, 87,
1361 185, -1, 216, 85, 56, 87, 185, -1, 86, 56,
1362 87, 185, -1, 287, 87, 185, -1, 185, 79, 185,
1363 -1, 185, 80, 185, -1, 185, 117, 185, -1, 185,
1364 118, 185, -1, 185, 119, 185, -1, 185, 120, 185,
1365 -1, 185, 121, 185, -1, 185, 68, 185, -1, 122,
1366 59, 68, 185, -1, 122, 60, 68, 185, -1, 66,
1367 185, -1, 67, 185, -1, 185, 114, 185, -1, 185,
1368 115, 185, -1, 185, 116, 185, -1, 185, 69, 185,
1369 -1, 185, 112, 185, -1, 185, 73, 185, -1, 185,
1370 113, 185, -1, 185, 74, 185, -1, 185, 70, 185,
1371 -1, 185, 71, 185, -1, 185, 72, 185, -1, 185,
1372 77, 185, -1, 185, 78, 185, -1, 123, 185, -1,
1373 124, 185, -1, 185, 83, 185, -1, 185, 84, 185,
1374 -1, 185, 75, 185, -1, 185, 76, 185, -1, -1,
1375 46, 315, 186, 185, -1, 185, 110, 185, 315, 111,
1376 185, -1, 199, -1, 185, -1, 321, -1, 197, 318,
1377 -1, 197, 140, 308, 318, -1, 308, 318, -1, 142,
1378 191, 316, -1, 321, -1, 189, -1, 321, -1, 192,
1379 -1, 197, 140, -1, 197, 140, 308, 140, -1, 308,
1380 140, -1, 167, -1, 197, 196, -1, 308, 196, -1,
1381 197, 140, 308, 196, -1, 195, -1, -1, 194, 192,
1382 -1, 96, 187, -1, 140, 195, -1, 321, -1, 187,
1383 -1, 95, 187, -1, 197, 140, 187, -1, 197, 140,
1384 95, 187, -1, 197, 140, 187, -1, 197, 140, 95,
1385 187, -1, 95, 187, -1, 260, -1, 261, -1, 264,
1386 -1, 265, -1, 266, -1, 269, -1, 285, -1, 287,
1387 -1, 53, -1, -1, 217, 200, 155, 227, -1, -1,
1388 90, 161, 201, 316, -1, 89, 156, 143, -1, 216,
1389 85, 56, -1, 86, 56, -1, 92, 188, 144, -1,
1390 93, 307, 137, -1, 30, -1, 31, 142, 192, 316,
1391 -1, 31, 142, 316, -1, 31, -1, -1, 46, 315,
1392 142, 202, 161, 316, -1, 39, 142, 161, 316, -1,
1393 39, 142, 316, -1, 310, 251, -1, 250, -1, 250,
1394 251, -1, 97, 242, -1, 218, 162, 228, 156, 230,
1395 227, -1, 219, 162, 228, 156, 231, 227, -1, -1,
1396 -1, 220, 203, 162, 229, 204, 156, 227, -1, -1,
1397 -1, 221, 205, 162, 229, 206, 156, 227, -1, 222,
1398 162, 314, 254, 227, -1, 222, 314, 254, 227, -1,
1399 -1, -1, 223, 232, 25, 207, 162, 229, 208, 156,
1400 227, -1, -1, 224, 177, 288, 209, 155, 227, -1,
1401 -1, -1, 224, 83, 161, 210, 319, 211, 155, 227,
1402 -1, -1, 225, 177, 212, 155, 227, -1, -1, 226,
1403 178, 213, 290, 155, 227, -1, -1, -1, 226, 305,
1404 313, 214, 178, 215, 290, 155, 227, -1, 21, -1,
1405 22, -1, 23, -1, 24, -1, 199, -1, 7, -1,
1406 11, -1, 12, -1, 18, -1, 19, -1, 16, -1,
1407 20, -1, 3, -1, 4, -1, 5, -1, 10, -1,
1408 319, -1, 13, -1, 319, 13, -1, 319, -1, 27,
1409 -1, 231, -1, 14, 162, 228, 156, 230, -1, 321,
1410 -1, 15, 156, -1, 175, -1, 168, -1, 293, -1,
1411 89, 235, 316, -1, 233, -1, 234, 140, 233, -1,
1412 234, -1, 234, 140, 95, 293, -1, 234, 140, 95,
1413 293, 140, 234, -1, 234, 140, 95, -1, 234, 140,
1414 95, 140, 234, -1, 95, 293, -1, 95, 293, 140,
1415 234, -1, 95, -1, 95, 140, 234, -1, 295, 140,
1416 298, 140, 301, 304, -1, 295, 140, 298, 140, 301,
1417 140, 295, 304, -1, 295, 140, 298, 304, -1, 295,
1418 140, 298, 140, 295, 304, -1, 295, 140, 301, 304,
1419 -1, 295, 140, -1, 295, 140, 301, 140, 295, 304,
1420 -1, 295, 304, -1, 298, 140, 301, 304, -1, 298,
1421 140, 301, 140, 295, 304, -1, 298, 304, -1, 298,
1422 140, 295, 304, -1, 301, 304, -1, 301, 140, 295,
1423 304, -1, 303, -1, 321, -1, 238, -1, 114, 239,
1424 114, -1, 76, -1, 114, 236, 239, 114, -1, 321,
1425 -1, 145, 240, -1, 241, -1, 240, 140, 241, -1,
1426 52, -1, 292, -1, -1, -1, 243, 244, 245, 246,
1427 -1, 142, 291, 239, 316, -1, 291, -1, 107, 156,
1428 137, -1, 29, 156, 10, -1, -1, 28, 248, 237,
1429 156, 10, -1, 167, 247, -1, 249, 139, 311, 190,
1430 -1, 249, 85, 311, 190, -1, 310, 189, -1, 216,
1431 139, 311, 190, -1, 216, 85, 311, 189, -1, 216,
1432 85, 312, -1, 216, 139, 189, -1, 216, 85, 189,
1433 -1, 32, 189, -1, 32, -1, 216, 138, 191, 317,
1434 -1, -1, 136, 252, 237, 156, 137, -1, -1, 26,
1435 253, 237, 156, 10, -1, 17, 197, 228, 156, 255,
1436 -1, 231, -1, 254, -1, 8, 257, 258, 228, 156,
1437 256, -1, 321, -1, 187, -1, 198, -1, 321, -1,
1438 88, 175, -1, 321, -1, 9, 156, -1, 321, -1,
1439 282, -1, 279, -1, 281, -1, 262, -1, 62, -1,
1440 263, -1, 262, 263, -1, 99, 271, 106, -1, 100,
1441 272, 106, -1, 101, 273, 65, -1, 102, 146, 106,
1442 -1, 102, 267, 106, -1, -1, 267, 268, 146, -1,
1443 274, -1, 268, 274, -1, 103, 146, 106, -1, 103,
1444 270, 106, -1, -1, 270, 61, 146, -1, -1, 271,
1445 274, -1, -1, 272, 274, -1, -1, 273, 274, -1,
1446 61, -1, -1, 105, 275, 278, -1, -1, -1, 104,
1447 276, 277, 156, 137, -1, 54, -1, 55, -1, 57,
1448 -1, 287, -1, 98, 280, -1, 178, -1, 55, -1,
1449 54, -1, 57, -1, 98, 272, 106, -1, 59, -1,
1450 60, -1, 122, 59, -1, 122, 60, -1, 52, -1,
1451 55, -1, 54, -1, 56, -1, 57, -1, 34, -1,
1452 33, -1, 35, -1, 36, -1, 50, -1, 49, -1,
1453 51, -1, 283, -1, 284, -1, 283, -1, 284, -1,
1454 63, -1, 64, -1, 319, -1, -1, 113, 289, 162,
1455 319, -1, 1, 319, -1, 142, 291, 316, -1, 291,
1456 319, -1, 295, 140, 299, 140, 301, 304, -1, 295,
1457 140, 299, 140, 301, 140, 295, 304, -1, 295, 140,
1458 299, 304, -1, 295, 140, 299, 140, 295, 304, -1,
1459 295, 140, 301, 304, -1, 295, 140, 301, 140, 295,
1460 304, -1, 295, 304, -1, 299, 140, 301, 304, -1,
1461 299, 140, 301, 140, 295, 304, -1, 299, 304, -1,
1462 299, 140, 295, 304, -1, 301, 304, -1, 301, 140,
1463 295, 304, -1, 303, -1, -1, 56, -1, 55, -1,
1464 54, -1, 57, -1, 292, -1, 52, -1, 293, -1,
1465 89, 235, 316, -1, 294, -1, 295, 140, 294, -1,
1466 52, 109, 187, -1, 52, 109, 216, -1, 297, -1,
1467 298, 140, 297, -1, 296, -1, 299, 140, 296, -1,
1468 119, -1, 95, -1, 300, 52, -1, 300, -1, 116,
1469 -1, 96, -1, 302, 52, -1, 140, 303, -1, 321,
1470 -1, 285, -1, -1, 142, 306, 161, 316, -1, 321,
1471 -1, 308, 318, -1, 309, -1, 308, 140, 309, -1,
1472 187, 88, 187, -1, 58, 187, -1, 52, -1, 56,
1473 -1, 53, -1, 52, -1, 56, -1, 53, -1, 183,
1474 -1, 52, -1, 53, -1, 183, -1, 139, -1, 85,
1475 -1, -1, 320, -1, -1, 147, -1, 315, 143, -1,
1476 315, 144, -1, -1, 147, -1, 140, -1, 145, -1,
1477 147, -1, 319, -1, 320, 145, -1, -1
1483 0, 782, 782, 782, 813, 824, 833, 841, 849, 855,
1484 857, 856, 880, 913, 924, 933, 941, 949, 955, 955,
1485 963, 971, 982, 992, 1000, 1009, 1018, 1031, 1044, 1053,
1486 1065, 1066, 1076, 1105, 1126, 1143, 1160, 1171, 1188, 1198,
1487 1207, 1216, 1225, 1228, 1237, 1249, 1250, 1258, 1266, 1274,
1488 1282, 1285, 1297, 1298, 1301, 1302, 1311, 1323, 1322, 1344,
1489 1353, 1365, 1374, 1386, 1395, 1407, 1416, 1425, 1433, 1441,
1490 1451, 1452, 1462, 1463, 1473, 1481, 1489, 1497, 1506, 1514,
1491 1523, 1531, 1540, 1548, 1559, 1560, 1570, 1578, 1588, 1596,
1492 1606, 1610, 1614, 1622, 1630, 1638, 1646, 1658, 1668, 1680,
1493 1689, 1698, 1706, 1714, 1722, 1730, 1743, 1756, 1767, 1775,
1494 1778, 1786, 1794, 1804, 1805, 1806, 1807, 1812, 1823, 1824,
1495 1827, 1835, 1838, 1846, 1846, 1856, 1857, 1858, 1859, 1860,
1496 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870,
1497 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880,
1498 1881, 1882, 1883, 1884, 1887, 1887, 1887, 1888, 1888, 1889,
1499 1889, 1889, 1890, 1890, 1890, 1890, 1891, 1891, 1891, 1891,
1500 1892, 1892, 1892, 1893, 1893, 1893, 1893, 1894, 1894, 1894,
1501 1894, 1895, 1895, 1895, 1895, 1896, 1896, 1896, 1896, 1897,
1502 1897, 1897, 1897, 1898, 1898, 1901, 1910, 1920, 1949, 1980,
1503 2006, 2023, 2040, 2057, 2068, 2079, 2090, 2104, 2118, 2126,
1504 2134, 2142, 2150, 2158, 2166, 2175, 2184, 2192, 2200, 2208,
1505 2216, 2224, 2232, 2240, 2248, 2256, 2264, 2272, 2280, 2288,
1506 2299, 2307, 2315, 2323, 2331, 2339, 2347, 2355, 2355, 2365,
1507 2375, 2381, 2393, 2394, 2398, 2406, 2416, 2426, 2427, 2430,
1508 2431, 2432, 2436, 2444, 2454, 2463, 2471, 2481, 2490, 2499,
1509 2499, 2511, 2521, 2525, 2531, 2539, 2547, 2561, 2577, 2591,
1510 2606, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624,
1511 2633, 2632, 2657, 2657, 2666, 2674, 2682, 2690, 2703, 2711,
1512 2719, 2727, 2735, 2743, 2743, 2753, 2761, 2769, 2780, 2781,
1513 2792, 2796, 2808, 2820, 2820, 2820, 2831, 2831, 2831, 2842,
1514 2853, 2862, 2864, 2861, 2928, 2927, 2949, 2954, 2948, 2973,
1515 2972, 2994, 2993, 3016, 3017, 3016, 3037, 3045, 3053, 3061,
1516 3071, 3083, 3089, 3095, 3101, 3107, 3113, 3119, 3125, 3131,
1517 3137, 3147, 3153, 3158, 3159, 3166, 3171, 3174, 3175, 3188,
1518 3189, 3199, 3200, 3203, 3211, 3221, 3229, 3239, 3247, 3256,
1519 3265, 3273, 3281, 3290, 3302, 3310, 3320, 3328, 3336, 3344,
1520 3352, 3360, 3369, 3377, 3385, 3393, 3401, 3409, 3417, 3425,
1521 3433, 3443, 3444, 3450, 3459, 3468, 3479, 3480, 3490, 3497,
1522 3506, 3514, 3520, 3523, 3520, 3541, 3549, 3559, 3563, 3570,
1523 3569, 3590, 3606, 3615, 3626, 3635, 3645, 3655, 3663, 3674,
1524 3685, 3693, 3701, 3716, 3715, 3735, 3734, 3755, 3767, 3768,
1525 3771, 3790, 3793, 3801, 3809, 3812, 3816, 3819, 3827, 3830,
1526 3831, 3839, 3842, 3859, 3860, 3861, 3871, 3881, 3908, 3973,
1527 3982, 3993, 4000, 4010, 4018, 4028, 4037, 4048, 4055, 4066,
1528 4073, 4084, 4091, 4102, 4109, 4138, 4140, 4139, 4156, 4162,
1529 4155, 4181, 4189, 4197, 4205, 4208, 4219, 4220, 4221, 4222,
1530 4225, 4255, 4256, 4257, 4265, 4275, 4276, 4277, 4278, 4279,
1531 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4291, 4304, 4314,
1532 4322, 4332, 4333, 4336, 4345, 4344, 4352, 4364, 4374, 4382,
1533 4390, 4398, 4406, 4414, 4422, 4430, 4438, 4446, 4454, 4462,
1534 4470, 4478, 4486, 4495, 4504, 4513, 4522, 4531, 4542, 4543,
1535 4550, 4559, 4578, 4585, 4598, 4610, 4622, 4630, 4646, 4654,
1536 4670, 4671, 4674, 4687, 4698, 4699, 4702, 4719, 4723, 4733,
1537 4743, 4743, 4772, 4773, 4783, 4790, 4800, 4808, 4818, 4819,
1538 4820, 4823, 4824, 4825, 4826, 4829, 4830, 4831, 4834, 4839,
1539 4846, 4847, 4850, 4851, 4854, 4857, 4860, 4861, 4862, 4865,
1540 4866, 4869, 4870, 4874
1544 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1549 "$end",
"error",
"$undefined",
"keyword_class",
"keyword_module",
1550 "keyword_def",
"keyword_undef",
"keyword_begin",
"keyword_rescue",
1551 "keyword_ensure",
"keyword_end",
"keyword_if",
"keyword_unless",
1552 "keyword_then",
"keyword_elsif",
"keyword_else",
"keyword_case",
1553 "keyword_when",
"keyword_while",
"keyword_until",
"keyword_for",
1554 "keyword_break",
"keyword_next",
"keyword_redo",
"keyword_retry",
1555 "keyword_in",
"keyword_do",
"keyword_do_cond",
"keyword_do_block",
1556 "keyword_do_LAMBDA",
"keyword_return",
"keyword_yield",
"keyword_super",
1557 "keyword_self",
"keyword_nil",
"keyword_true",
"keyword_false",
1558 "keyword_and",
"keyword_or",
"keyword_not",
"modifier_if",
1559 "modifier_unless",
"modifier_while",
"modifier_until",
"modifier_rescue",
1560 "keyword_alias",
"keyword_defined",
"keyword_BEGIN",
"keyword_END",
1561 "keyword__LINE__",
"keyword__FILE__",
"keyword__ENCODING__",
1562 "tIDENTIFIER",
"tFID",
"tGVAR",
"tIVAR",
"tCONSTANT",
"tCVAR",
"tLABEL",
1563 "tINTEGER",
"tFLOAT",
"tSTRING_CONTENT",
"tCHAR",
"tNTH_REF",
1564 "tBACK_REF",
"tREGEXP_END",
"tUPLUS",
"tUMINUS",
"tPOW",
"tCMP",
"tEQ",
1565 "tEQQ",
"tNEQ",
"tGEQ",
"tLEQ",
"tANDOP",
"tOROP",
"tMATCH",
"tNMATCH",
1566 "tDOT2",
"tDOT3",
"tAREF",
"tASET",
"tLSHFT",
"tRSHFT",
"tCOLON2",
1567 "tCOLON3",
"tOP_ASGN",
"tASSOC",
"tLPAREN",
"tLPAREN_ARG",
"tRPAREN",
1568 "tLBRACK",
"tLBRACE",
"tLBRACE_ARG",
"tSTAR",
"tAMPER",
"tLAMBDA",
1569 "tSYMBEG",
"tSTRING_BEG",
"tXSTRING_BEG",
"tREGEXP_BEG",
"tWORDS_BEG",
1570 "tQWORDS_BEG",
"tSTRING_DBEG",
"tSTRING_DVAR",
"tSTRING_END",
"tLAMBEG",
1571 "tLOWEST",
"'='",
"'?'",
"':'",
"'>'",
"'<'",
"'|'",
"'^'",
"'&'",
"'+'",
1572 "'-'",
"'*'",
"'/'",
"'%'",
"tUMINUS_NUM",
"'!'",
"'~'",
"idNULL",
1573 "idRespond_to",
"idIFUNC",
"idCFUNC",
"id_core_set_method_alias",
1574 "id_core_set_variable_alias",
"id_core_undef_method",
1575 "id_core_define_method",
"id_core_define_singleton_method",
1576 "id_core_set_postexe",
"tLAST_TOKEN",
"'{'",
"'}'",
"'['",
"'.'",
"','",
1577 "'`'",
"'('",
"')'",
"']'",
"';'",
"' '",
"'\\n'",
"$accept",
"program",
1578 "@1",
"top_compstmt",
"top_stmts",
"top_stmt",
"@2",
"bodystmt",
1579 "compstmt",
"stmts",
"stmt",
"@3",
"command_asgn",
"expr",
"expr_value",
1580 "command_call",
"block_command",
"cmd_brace_block",
"@4",
"command",
1581 "mlhs",
"mlhs_inner",
"mlhs_basic",
"mlhs_item",
"mlhs_head",
1582 "mlhs_post",
"mlhs_node",
"lhs",
"cname",
"cpath",
"fname",
"fsym",
1583 "fitem",
"undef_list",
"@5",
"op",
"reswords",
"arg",
"@6",
"arg_value",
1584 "aref_args",
"paren_args",
"opt_paren_args",
"opt_call_args",
1585 "call_args",
"command_args",
"@7",
"block_arg",
"opt_block_arg",
"args",
1586 "mrhs",
"primary",
"@8",
"@9",
"@10",
"@11",
"@12",
"@13",
"@14",
"@15",
1587 "@16",
"@17",
"@18",
"@19",
"@20",
"@21",
"@22",
"@23",
"primary_value",
1588 "k_begin",
"k_if",
"k_unless",
"k_while",
"k_until",
"k_case",
"k_for",
1589 "k_class",
"k_module",
"k_def",
"k_end",
"then",
"do",
"if_tail",
1590 "opt_else",
"for_var",
"f_marg",
"f_marg_list",
"f_margs",
"block_param",
1591 "opt_block_param",
"block_param_def",
"opt_bv_decl",
"bv_decls",
"bvar",
1592 "lambda",
"@24",
"@25",
"f_larglist",
"lambda_body",
"do_block",
"@26",
1593 "block_call",
"method_call",
"brace_block",
"@27",
"@28",
"case_body",
1594 "cases",
"opt_rescue",
"exc_list",
"exc_var",
"opt_ensure",
"literal",
1595 "strings",
"string",
"string1",
"xstring",
"regexp",
"words",
1596 "word_list",
"word",
"qwords",
"qword_list",
"string_contents",
1597 "xstring_contents",
"regexp_contents",
"string_content",
"@29",
"@30",
1598 "@31",
"string_dvar",
"symbol",
"sym",
"dsym",
"numeric",
1599 "user_variable",
"keyword_variable",
"var_ref",
"var_lhs",
"backref",
1600 "superclass",
"@32",
"f_arglist",
"f_args",
"f_bad_arg",
"f_norm_arg",
1601 "f_arg_item",
"f_arg",
"f_opt",
"f_block_opt",
"f_block_optarg",
1602 "f_optarg",
"restarg_mark",
"f_rest_arg",
"blkarg_mark",
"f_block_arg",
1603 "opt_f_block_arg",
"singleton",
"@33",
"assoc_list",
"assocs",
"assoc",
1604 "operation",
"operation2",
"operation3",
"dot_or_colon",
"opt_terms",
1605 "opt_nl",
"rparen",
"rbracket",
"trailer",
"term",
"terms",
"none", 0
1614 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1615 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1616 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1617 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1618 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1619 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1620 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1621 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1622 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1623 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1624 355, 356, 357, 358, 359, 360, 361, 362, 363, 61,
1625 63, 58, 62, 60, 124, 94, 38, 43, 45, 42,
1626 47, 37, 364, 33, 126, 365, 366, 367, 368, 369,
1627 370, 371, 372, 373, 374, 375, 123, 125, 91, 46,
1628 44, 96, 40, 41, 93, 59, 32, 10
1635 0, 148, 150, 149, 151, 152, 152, 152, 152, 153,
1636 154, 153, 155, 156, 157, 157, 157, 157, 159, 158,
1637 158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
1638 158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
1639 158, 158, 158, 160, 160, 161, 161, 161, 161, 161,
1640 161, 162, 163, 163, 164, 164, 164, 166, 165, 167,
1641 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
1642 168, 168, 169, 169, 170, 170, 170, 170, 170, 170,
1643 170, 170, 170, 170, 171, 171, 172, 172, 173, 173,
1644 174, 174, 174, 174, 174, 174, 174, 174, 174, 175,
1645 175, 175, 175, 175, 175, 175, 175, 175, 176, 176,
1646 177, 177, 177, 178, 178, 178, 178, 178, 179, 179,
1647 180, 180, 181, 182, 181, 183, 183, 183, 183, 183,
1648 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
1649 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
1650 183, 183, 183, 183, 184, 184, 184, 184, 184, 184,
1651 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
1652 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
1653 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
1654 184, 184, 184, 184, 184, 185, 185, 185, 185, 185,
1655 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
1656 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
1657 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
1658 185, 185, 185, 185, 185, 185, 185, 186, 185, 185,
1659 185, 187, 188, 188, 188, 188, 189, 190, 190, 191,
1660 191, 191, 191, 191, 192, 192, 192, 192, 192, 194,
1661 193, 195, 196, 196, 197, 197, 197, 197, 198, 198,
1662 198, 199, 199, 199, 199, 199, 199, 199, 199, 199,
1663 200, 199, 201, 199, 199, 199, 199, 199, 199, 199,
1664 199, 199, 199, 202, 199, 199, 199, 199, 199, 199,
1665 199, 199, 199, 203, 204, 199, 205, 206, 199, 199,
1666 199, 207, 208, 199, 209, 199, 210, 211, 199, 212,
1667 199, 213, 199, 214, 215, 199, 199, 199, 199, 199,
1668 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
1669 226, 227, 228, 228, 228, 229, 229, 230, 230, 231,
1670 231, 232, 232, 233, 233, 234, 234, 235, 235, 235,
1671 235, 235, 235, 235, 235, 235, 236, 236, 236, 236,
1672 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
1673 236, 237, 237, 238, 238, 238, 239, 239, 240, 240,
1674 241, 241, 243, 244, 242, 245, 245, 246, 246, 248,
1675 247, 249, 249, 249, 250, 250, 250, 250, 250, 250,
1676 250, 250, 250, 252, 251, 253, 251, 254, 255, 255,
1677 256, 256, 257, 257, 257, 258, 258, 259, 259, 260,
1678 260, 260, 261, 262, 262, 262, 263, 264, 265, 266,
1679 266, 267, 267, 268, 268, 269, 269, 270, 270, 271,
1680 271, 272, 272, 273, 273, 274, 275, 274, 276, 277,
1681 274, 278, 278, 278, 278, 279, 280, 280, 280, 280,
1682 281, 282, 282, 282, 282, 283, 283, 283, 283, 283,
1683 284, 284, 284, 284, 284, 284, 284, 285, 285, 286,
1684 286, 287, 287, 288, 289, 288, 288, 290, 290, 291,
1685 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
1686 291, 291, 291, 291, 292, 292, 292, 292, 293, 293,
1687 294, 294, 295, 295, 296, 297, 298, 298, 299, 299,
1688 300, 300, 301, 301, 302, 302, 303, 304, 304, 305,
1689 306, 305, 307, 307, 308, 308, 309, 309, 310, 310,
1690 310, 311, 311, 311, 311, 312, 312, 312, 313, 313,
1691 314, 314, 315, 315, 316, 317, 318, 318, 318, 319,
1698 0, 2, 0, 2, 2, 1, 1, 3, 2, 1,
1699 0, 5, 4, 2, 1, 1, 3, 2, 0, 4,
1700 3, 3, 3, 2, 3, 3, 3, 3, 3, 4,
1701 1, 3, 3, 6, 5, 5, 5, 5, 3, 3,
1702 3, 3, 1, 3, 3, 1, 3, 3, 3, 2,
1703 1, 1, 1, 1, 1, 4, 4, 0, 5, 2,
1704 3, 4, 5, 4, 5, 2, 2, 2, 2, 2,
1705 1, 3, 1, 3, 1, 2, 3, 5, 2, 4,
1706 2, 4, 1, 3, 1, 3, 2, 3, 1, 3,
1707 1, 1, 4, 3, 3, 3, 3, 2, 1, 1,
1708 1, 4, 3, 3, 3, 3, 2, 1, 1, 1,
1709 2, 1, 3, 1, 1, 1, 1, 1, 1, 1,
1710 1, 1, 1, 0, 4, 1, 1, 1, 1, 1,
1711 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1712 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1713 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1714 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1715 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1716 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1717 1, 1, 1, 1, 1, 3, 5, 3, 5, 6,
1718 5, 5, 5, 5, 4, 3, 3, 3, 3, 3,
1719 3, 3, 3, 3, 4, 4, 2, 2, 3, 3,
1720 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1721 3, 2, 2, 3, 3, 3, 3, 0, 4, 6,
1722 1, 1, 1, 2, 4, 2, 3, 1, 1, 1,
1723 1, 2, 4, 2, 1, 2, 2, 4, 1, 0,
1724 2, 2, 2, 1, 1, 2, 3, 4, 3, 4,
1725 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1726 0, 4, 0, 4, 3, 3, 2, 3, 3, 1,
1727 4, 3, 1, 0, 6, 4, 3, 2, 1, 2,
1728 2, 6, 6, 0, 0, 7, 0, 0, 7, 5,
1729 4, 0, 0, 9, 0, 6, 0, 0, 8, 0,
1730 5, 0, 6, 0, 0, 9, 1, 1, 1, 1,
1731 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1732 1, 1, 1, 1, 2, 1, 1, 1, 5, 1,
1733 2, 1, 1, 1, 3, 1, 3, 1, 4, 6,
1734 3, 5, 2, 4, 1, 3, 6, 8, 4, 6,
1735 4, 2, 6, 2, 4, 6, 2, 4, 2, 4,
1736 1, 1, 1, 3, 1, 4, 1, 2, 1, 3,
1737 1, 1, 0, 0, 4, 4, 1, 3, 3, 0,
1738 5, 2, 4, 4, 2, 4, 4, 3, 3, 3,
1739 2, 1, 4, 0, 5, 0, 5, 5, 1, 1,
1740 6, 1, 1, 1, 1, 2, 1, 2, 1, 1,
1741 1, 1, 1, 1, 1, 2, 3, 3, 3, 3,
1742 3, 0, 3, 1, 2, 3, 3, 0, 3, 0,
1743 2, 0, 2, 0, 2, 1, 0, 3, 0, 0,
1744 5, 1, 1, 1, 1, 2, 1, 1, 1, 1,
1745 3, 1, 1, 2, 2, 1, 1, 1, 1, 1,
1746 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1747 1, 1, 1, 1, 0, 4, 2, 3, 2, 6,
1748 8, 4, 6, 4, 6, 2, 4, 6, 2, 4,
1749 2, 4, 1, 0, 1, 1, 1, 1, 1, 1,
1750 1, 3, 1, 3, 3, 3, 1, 3, 1, 3,
1751 1, 1, 2, 1, 1, 1, 2, 2, 1, 1,
1752 0, 4, 1, 2, 1, 3, 3, 2, 1, 1,
1753 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1754 0, 1, 0, 1, 2, 2, 0, 1, 1, 1,
1763 2, 0, 0, 1, 0, 338, 339, 340, 0, 331,
1764 332, 333, 336, 334, 335, 337, 326, 327, 328, 329,
1765 289, 259, 259, 481, 480, 482, 483, 562, 0, 562,
1766 10, 0, 485, 484, 486, 475, 550, 477, 476, 478,
1767 479, 471, 472, 433, 491, 492, 0, 0, 0, 0,
1768 0, 573, 573, 82, 392, 451, 449, 451, 453, 441,
1769 447, 0, 0, 0, 3, 560, 6, 9, 30, 42,
1770 45, 53, 52, 0, 70, 0, 74, 84, 0, 50,
1771 240, 0, 280, 0, 0, 303, 306, 560, 0, 0,
1772 0, 0, 54, 298, 271, 272, 432, 434, 273, 274,
1773 275, 276, 430, 431, 429, 487, 488, 277, 0, 278,
1774 259, 5, 8, 164, 175, 165, 188, 161, 181, 171,
1775 170, 191, 192, 186, 169, 168, 163, 189, 193, 194,
1776 173, 162, 176, 180, 182, 174, 167, 183, 190, 185,
1777 184, 177, 187, 172, 160, 179, 178, 159, 166, 157,
1778 158, 154, 155, 156, 113, 115, 114, 149, 150, 146,
1779 128, 129, 130, 137, 134, 136, 131, 132, 151, 152,
1780 138, 139, 143, 133, 135, 125, 126, 127, 140, 141,
1781 142, 144, 145, 147, 148, 153, 118, 120, 122, 23,
1782 116, 117, 119, 121, 0, 0, 0, 0, 0, 0,
1783 0, 254, 0, 241, 264, 68, 258, 573, 0, 487,
1784 488, 0, 278, 573, 544, 69, 67, 562, 66, 0,
1785 573, 410, 65, 562, 563, 0, 0, 18, 237, 0,
1786 0, 326, 327, 289, 292, 411, 216, 0, 0, 217,
1787 286, 0, 0, 0, 560, 15, 562, 72, 14, 282,
1788 0, 566, 566, 242, 0, 0, 566, 542, 562, 0,
1789 0, 0, 80, 330, 0, 90, 91, 98, 300, 393,
1790 468, 467, 469, 466, 0, 465, 0, 0, 0, 0,
1791 0, 0, 0, 473, 474, 49, 231, 232, 569, 570,
1792 4, 571, 561, 0, 0, 0, 0, 0, 0, 0,
1793 399, 401, 0, 86, 0, 78, 75, 0, 0, 0,
1794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1796 0, 0, 0, 0, 0, 573, 0, 0, 51, 0,
1797 0, 0, 0, 560, 0, 561, 0, 352, 351, 0,
1798 0, 487, 488, 278, 108, 109, 0, 0, 111, 0,
1799 0, 487, 488, 278, 319, 184, 177, 187, 172, 154,
1800 155, 156, 113, 114, 540, 321, 539, 0, 0, 0,
1801 415, 413, 299, 435, 0, 0, 404, 59, 297, 123,
1802 547, 286, 265, 261, 0, 0, 0, 255, 263, 0,
1803 573, 0, 0, 0, 0, 256, 562, 0, 291, 260,
1804 562, 250, 573, 573, 249, 562, 296, 48, 20, 22,
1805 21, 0, 293, 0, 0, 0, 0, 0, 0, 17,
1806 562, 284, 13, 561, 71, 562, 287, 568, 567, 243,
1807 568, 245, 288, 543, 0, 97, 473, 474, 88, 83,
1808 0, 0, 573, 0, 513, 455, 458, 456, 470, 452,
1809 436, 450, 437, 438, 454, 439, 440, 0, 443, 445,
1810 0, 446, 0, 0, 572, 7, 24, 25, 26, 27,
1811 28, 46, 47, 573, 0, 31, 40, 0, 41, 562,
1812 0, 76, 87, 44, 43, 0, 195, 264, 39, 213,
1813 221, 226, 227, 228, 223, 225, 235, 236, 229, 230,
1814 206, 207, 233, 234, 562, 222, 224, 218, 219, 220,
1815 208, 209, 210, 211, 212, 551, 556, 552, 557, 409,
1816 259, 407, 562, 551, 553, 552, 554, 408, 259, 0,
1817 573, 343, 0, 342, 0, 0, 0, 0, 0, 0,
1818 286, 0, 573, 0, 311, 316, 108, 109, 110, 0,
1819 494, 314, 493, 0, 573, 0, 0, 0, 513, 559,
1820 558, 323, 551, 552, 259, 259, 573, 573, 32, 197,
1821 38, 205, 57, 60, 0, 195, 546, 0, 266, 262,
1822 573, 555, 552, 562, 551, 552, 545, 290, 564, 246,
1823 251, 253, 295, 19, 0, 238, 0, 29, 0, 573,
1824 204, 73, 16, 283, 566, 0, 81, 94, 96, 562,
1825 551, 552, 519, 516, 515, 514, 517, 0, 531, 535,
1826 534, 530, 513, 0, 396, 518, 520, 522, 573, 528,
1827 573, 533, 573, 0, 512, 459, 0, 442, 444, 448,
1828 214, 215, 384, 573, 0, 382, 381, 270, 0, 85,
1829 79, 0, 0, 0, 0, 0, 0, 406, 63, 0,
1830 412, 0, 0, 248, 405, 61, 247, 341, 281, 573,
1831 573, 421, 573, 344, 573, 346, 304, 345, 307, 0,
1832 0, 310, 555, 285, 562, 551, 552, 0, 0, 496,
1833 0, 0, 108, 109, 112, 562, 0, 562, 513, 0,
1834 0, 0, 403, 56, 402, 55, 0, 0, 0, 573,
1835 124, 267, 257, 0, 0, 412, 0, 0, 573, 562,
1836 11, 244, 89, 92, 0, 519, 0, 364, 355, 357,
1837 562, 353, 573, 0, 0, 394, 0, 505, 538, 0,
1838 508, 532, 0, 510, 536, 0, 461, 462, 463, 457,
1839 464, 519, 0, 573, 0, 573, 526, 573, 573, 380,
1840 386, 0, 0, 268, 77, 196, 0, 37, 202, 36,
1841 203, 64, 565, 0, 34, 200, 35, 201, 62, 422,
1842 423, 573, 424, 0, 573, 349, 0, 0, 347, 0,
1843 0, 0, 309, 0, 0, 412, 0, 317, 0, 0,
1844 412, 320, 541, 562, 0, 498, 324, 0, 0, 198,
1845 0, 0, 252, 294, 524, 562, 0, 362, 0, 521,
1846 562, 0, 0, 523, 573, 573, 537, 573, 529, 573,
1847 573, 0, 0, 390, 387, 388, 391, 0, 383, 371,
1848 373, 0, 376, 0, 378, 400, 269, 239, 33, 199,
1849 0, 0, 426, 350, 0, 12, 428, 0, 301, 302,
1850 0, 0, 266, 573, 312, 0, 495, 315, 497, 322,
1851 513, 416, 414, 0, 354, 365, 0, 360, 356, 395,
1852 398, 397, 0, 501, 0, 503, 0, 509, 0, 506,
1853 511, 460, 0, 525, 0, 385, 573, 573, 573, 527,
1854 573, 573, 0, 425, 0, 99, 100, 107, 0, 427,
1855 0, 305, 308, 418, 419, 417, 0, 0, 0, 58,
1856 0, 363, 0, 358, 573, 573, 573, 573, 286, 0,
1857 389, 0, 368, 0, 370, 377, 0, 374, 379, 106,
1858 0, 573, 0, 573, 573, 0, 318, 0, 361, 0,
1859 502, 0, 499, 504, 507, 555, 285, 573, 573, 573,
1860 573, 555, 105, 562, 551, 552, 420, 348, 313, 325,
1861 359, 573, 369, 0, 366, 372, 375, 412, 500, 573,
1868 -1, 1, 2, 64, 65, 66, 229, 539, 540, 244,
1869 245, 421, 68, 69, 339, 70, 71, 583, 719, 72,
1870 73, 246, 74, 75, 76, 449, 77, 202, 358, 359,
1871 186, 187, 188, 189, 584, 536, 191, 79, 423, 204,
1872 250, 529, 674, 410, 411, 218, 219, 206, 397, 412,
1873 488, 80, 337, 435, 604, 341, 800, 342, 801, 697,
1874 926, 701, 698, 875, 566, 568, 711, 880, 237, 82,
1875 83, 84, 85, 86, 87, 88, 89, 90, 91, 678,
1876 542, 686, 797, 798, 350, 738, 739, 740, 763, 654,
1877 655, 764, 844, 845, 268, 269, 454, 633, 745, 301,
1878 483, 92, 93, 388, 577, 576, 549, 925, 680, 791,
1879 861, 865, 94, 95, 96, 97, 98, 99, 100, 280,
1880 467, 101, 282, 276, 274, 278, 459, 646, 645, 755,
1881 759, 102, 275, 103, 104, 209, 210, 107, 211, 212,
1882 561, 700, 709, 710, 635, 636, 637, 638, 639, 766,
1883 767, 640, 641, 642, 643, 836, 747, 377, 567, 255,
1884 413, 214, 238, 608, 531, 571, 290, 407, 408, 670,
1890 #define YYPACT_NINF -747
1893 -747, 81, 2552, -747, 7102, -747, -747, -747, 6615, -747,
1894 -747, -747, -747, -747, -747, -747, 7320, 7320, -747, -747,
1895 7320, 3237, 2814, -747, -747, -747, -747, 100, 6476, -31,
1896 -747, -26, -747, -747, -747, 5715, 2955, -747, -747, 5842,
1897 -747, -747, -747, -747, -747, -747, 8519, 8519, 83, 4434,
1898 8628, 7538, 7865, 6878, -747, 6337, -747, -747, -747, -24,
1899 29, 252, 8737, 8519, -747, 193, -747, 1104, -747, 458,
1900 -747, -747, 129, 77, -747, 69, 8846, -747, 139, 2797,
1901 22, 41, -747, 8628, 8628, -747, -747, 5078, 8951, 9056,
1902 9161, 5588, 33, 46, -747, -747, 157, -747, -747, -747,
1903 -747, -747, -747, -747, -747, 25, 58, -747, 179, 613,
1904 51, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1905 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1906 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1907 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1908 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1909 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1910 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1911 -747, -747, -747, -747, -747, -747, -747, -747, -747, 134,
1912 -747, -747, -747, -747, 182, 8519, 279, 4564, 8519, 8519,
1913 8519, -747, 263, 2797, 260, -747, -747, 237, 207, 43,
1914 206, 298, 254, 265, -747, -747, -747, 4969, -747, 7320,
1915 7320, -747, -747, 5208, -747, 8628, 661, -747, 272, 287,
1916 4694, -747, -747, -747, 295, 307, -747, 304, 51, 416,
1917 619, 7211, 4434, 384, 193, 1104, -31, 399, -747, 458,
1918 419, 221, 300, -747, 260, 430, 300, -747, -31, 497,
1919 501, 9266, 442, -747, 351, 366, 383, 409, -747, -747,
1920 -747, -747, -747, -747, 644, -747, 754, 813, 605, 464,
1921 819, 478, 68, 530, 532, -747, -747, -747, -747, -747,
1922 -747, -747, 5317, 8628, 8628, 8628, 8628, 7211, 8628, 8628,
1923 -747, -747, 7974, -747, 4434, 6990, 470, 7974, 8519, 8519,
1924 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519,
1925 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519,
1926 8519, 8519, 8519, 8519, 9548, 7320, 9625, 3609, 458, 86,
1927 86, 8628, 8628, 193, 597, 480, 562, -747, -747, 454,
1928 601, 54, 76, 99, 331, 349, 8628, 481, -747, 45,
1929 473, -747, -747, -747, -747, 217, 286, 305, 318, 321,
1930 347, 363, 376, 381, -747, -747, -747, 391, 10549, 10549,
1931 -747, -747, -747, -747, 8737, 8737, -747, 535, -747, -747,
1932 -747, 388, -747, -747, 8519, 8519, 7429, -747, -747, 9702,
1933 7320, 9779, 8519, 8519, 7647, -747, -31, 492, -747, -747,
1934 -31, -747, 506, 539, -747, 106, -747, -747, -747, -747,
1935 -747, 6615, -747, 8519, 4029, 508, 9702, 9779, 8519, 1104,
1936 -31, -747, -747, 5445, 541, -31, -747, 7756, -747, -747,
1937 7865, -747, -747, -747, 272, 510, -747, -747, -747, 543,
1938 9266, 9856, 7320, 9933, 774, -747, -747, -747, -747, -747,
1939 -747, -747, -747, -747, -747, -747, -747, 313, -747, -747,
1940 491, -747, 8519, 8519, -747, -747, -747, -747, -747, -747,
1941 -747, -747, -747, 32, 8519, -747, 545, 546, -747, -31,
1942 9266, 551, -747, -747, -747, 566, 9473, -747, -747, 416,
1943 2184, 2184, 2184, 2184, 781, 781, 2273, 2938, 2184, 2184,
1944 1364, 1364, 662, 662, 2656, 781, 781, 927, 927, 768,
1945 397, 397, 416, 416, 416, 3378, 6083, 3464, 6197, -747,
1946 307, -747, -31, 647, -747, 660, -747, -747, 3096, 650,
1947 688, -747, 3754, 685, 4174, 56, 56, 597, 8083, 650,
1948 112, 10010, 7320, 10087, -747, 458, -747, 510, -747, 193,
1949 -747, -747, -747, 10164, 7320, 10241, 3609, 8628, 1131, -747,
1950 -747, -747, -747, -747, 1739, 1739, 32, 32, -747, 10608,
1951 -747, 2797, -747, -747, 6615, 10627, -747, 8519, 260, -747,
1952 265, 5969, 2673, -31, 490, 500, -747, -747, -747, -747,
1953 7429, 7647, -747, -747, 8628, 2797, 570, -747, 307, 307,
1954 2797, 213, 1104, -747, 300, 9266, 543, 505, 282, -31,
1955 38, 261, 603, -747, -747, -747, -747, 972, -747, -747,
1956 -747, -747, 1223, 66, -747, -747, -747, -747, 580, -747,
1957 583, 683, 589, 687, -747, -747, 893, -747, -747, -747,
1958 416, 416, -747, 576, 4839, -747, -747, 604, 8192, -747,
1959 543, 9266, 8737, 8519, 630, 8737, 8737, -747, 535, 608,
1960 677, 8737, 8737, -747, -747, 535, -747, -747, -747, 8301,
1961 740, -747, 588, -747, 740, -747, -747, -747, -747, 650,
1962 44, -747, 239, 257, -31, 141, 145, 8628, 193, -747,
1963 8628, 3609, 505, 282, -747, -31, 650, 106, 1223, 3609,
1964 193, 6754, -747, -747, -747, -747, 4839, 4694, 8519, 32,
1965 -747, -747, -747, 8519, 8519, 507, 8519, 8519, 636, 106,
1966 -747, -747, -747, 291, 8519, -747, 972, 457, -747, 651,
1967 -31, -747, 639, 4839, 4694, -747, 1223, -747, -747, 1223,
1968 -747, -747, 598, -747, -747, 4694, -747, -747, -747, -747,
1969 -747, 681, 1017, 639, 679, 654, -747, 656, 657, -747,
1970 -747, 789, 8519, 664, 543, 2797, 8519, -747, 2797, -747,
1971 2797, -747, -747, 8737, -747, 2797, -747, 2797, -747, 545,
1972 -747, 713, -747, 4304, 796, -747, 8628, 650, -747, 650,
1973 4839, 4839, -747, 8410, 3899, 189, 56, -747, 193, 650,
1974 -747, -747, -747, -31, 650, -747, -747, 799, 673, 2797,
1975 4694, 8519, 7647, -747, -747, -31, 884, 671, 1079, -747,
1976 -31, 803, 686, -747, 676, 678, -747, 684, -747, 694,
1977 684, 690, 9371, -747, 699, -747, -747, 711, -747, 1251,
1978 -747, 1251, -747, 598, -747, -747, 700, 2797, -747, 2797,
1979 9476, 86, -747, -747, 4839, -747, -747, 86, -747, -747,
1980 650, 650, -747, 365, -747, 3609, -747, -747, -747, -747,
1981 1131, -747, -747, 706, -747, 707, 884, 716, -747, -747,
1982 -747, -747, 1223, -747, 598, -747, 598, -747, 598, -747,
1983 -747, -747, 790, 520, 1017, -747, 708, 715, 684, -747,
1984 717, 684, 797, -747, 523, 366, 383, 409, 3609, -747,
1985 3754, -747, -747, -747, -747, -747, 4839, 650, 3609, -747,
1986 884, 707, 884, 721, 684, 727, 684, 684, -747, 10318,
1987 -747, 1251, -747, 598, -747, -747, 598, -747, -747, 510,
1988 10395, 7320, 10472, 688, 588, 650, -747, 650, 707, 884,
1989 -747, 598, -747, -747, -747, 730, 731, 684, 735, 684,
1990 684, 55, 282, -31, 128, 158, -747, -747, -747, -747,
1991 707, 684, -747, 598, -747, -747, -747, 163, -747, 684,
1998 -747, -747, -747, 452, -747, 28, -747, -545, 277, -747,
1999 39, -747, -293, 184, -58, 71, -747, -169, -747, -7,
2000 791, -142, -13, -37, -747, -396, -29, 1623, -312, 788,
2001 -54, -747, -25, -747, -747, 20, -747, 1066, -747, -45,
2002 -747, 11, 47, -324, 115, 5, -747, -322, -196, 53,
2003 -295, 8, -747, -747, -747, -747, -747, -747, -747, -747,
2004 -747, -747, -747, -747, -747, -747, -747, -747, 2, -747,
2005 -747, -747, -747, -747, -747, -747, -747, -747, -747, 205,
2006 -338, -516, -72, -618, -747, -722, -671, 147, -747, -489,
2007 -747, -600, -747, -12, -747, -747, -747, -747, -747, -747,
2008 -747, -747, -747, 798, -747, -747, -531, -747, -50, -747,
2009 -747, -747, -747, -747, -747, 811, -747, -747, -747, -747,
2010 -747, -747, -747, -747, 856, -747, -140, -747, -747, -747,
2011 -747, 7, -747, 12, -747, 1268, 1605, 823, 1289, 1575,
2012 -747, -747, 35, -387, -697, -568, -690, 273, -696, -746,
2013 72, 181, -747, -526, -747, -449, 270, -747, -747, -747,
2014 97, -360, 758, -276, -747, -747, -56, -4, 278, -585,
2022 #define YYTABLE_NINF -574
2025 111, 273, 544, 227, 81, 644, 81, 254, 725, 201,
2026 201, 532, 498, 201, 493, 192, 689, 405, 208, 208,
2027 193, 706, 208, 225, 262, 228, 340, 222, 190, 343,
2028 688, 344, 112, 221, 733, 192, 247, 375, 441, 306,
2029 193, 67, 443, 67, 596, 558, 559, 292, 190, 253,
2030 257, 81, 208, 838, 616, 264, 833, 541, 530, 741,
2031 538, 263, 794, -93, 208, 846, 799, 634, -103, 207,
2032 207, 291, 380, 207, 589, 190, 593, 380, 264, -99,
2033 596, 3, 589, 685, 263, 208, 208, 716, 717, 208,
2034 349, 360, 360, 291, 660, 743, 263, 263, 263, 541,
2035 430, -100, 574, 575, 251, 909, 888, -330, 652, 805,
2036 230, 190, -489, 213, 213, 387, 224, 213, 378, 644,
2037 810, 386, 279, 530, -107, 538, 334, 768, 619, 470,
2038 -489, 205, 215, 285, -99, 216, 461, -106, 464, 240,
2039 468, -102, 830, 298, 299, -490, 653, -93, 252, 256,
2040 390, 609, -99, 392, 393, 885, 809, 300, 560, 833,
2041 -330, -330, 489, 847, 814, -90, -102, -100, 741, 827,
2042 -104, -104, 379, 744, 471, 281, -101, 609, -93, 335,
2043 336, -93, 381, 644, 803, -93, 302, 381, 432, 288,
2044 288, 289, 289, 220, -90, 909, 838, -551, -91, 81,
2045 -103, 288, -103, 289, 769, 398, 833, 846, 888, 303,
2046 201, 398, 201, 201, -101, 931, -91, 405, 414, 208,
2047 835, 208, 208, 839, 448, 208, 433, 208, 694, 247,
2048 820, 288, 81, 289, 249, 476, 477, 478, 479, -98,
2049 705, 596, 223, 81, 81, 742, 221, 224, 307, 386,
2050 291, 704, -97, 224, 444, 923, 56, 486, 741, 644,
2051 741, 958, 497, 264, -103, 774, 384, 338, 338, 263,
2052 207, 338, 207, -102, 389, -102, 491, 609, 589, 589,
2053 429, -93, -105, 545, 546, -95, -95, 547, 980, 609,
2054 874, 247, 399, -490, 81, 208, 208, 208, 208, 81,
2055 208, 208, -481, -104, 208, -104, 81, 264, -101, 208,
2056 -101, 283, 284, 263, 213, -100, 213, -412, 741, 933,
2057 475, 813, -71, 907, 223, 910, 243, 648, 201, -92,
2058 927, 67, 406, 414, 409, 391, 480, 208, 288, 81,
2059 289, 403, 924, 208, 208, 400, 401, 537, 395, 291,
2060 586, 588, 804, -85, 528, 487, -481, -548, 208, 254,
2061 487, 437, 741, -107, 741, 562, 935, -285, 438, 493,
2062 -95, -480, 394, 485, 455, -549, -412, 396, 494, -94,
2063 793, -551, 548, 957, 790, 402, 208, 208, 987, 426,
2064 -482, 741, 588, 201, 722, 254, 603, -96, 414, -552,
2065 731, -95, 208, -483, -95, 404, -485, 415, -95, 417,
2066 398, 398, 537, 448, 422, 968, -475, 456, 457, 528,
2067 -285, -285, 111, 424, -552, -480, 81, -412, 192, -412,
2068 -412, 644, -484, 193, -478, 81, 451, 217, 537, 657,
2069 440, 190, 400, 427, -482, 201, 528, 438, -486, 220,
2070 414, -487, 264, 448, 208, 578, 580, -483, 263, 647,
2071 -485, -475, 596, 67, 537, 308, -478, -548, -488, -475,
2072 -475, 528, 612, -548, 243, 428, 569, 338, 338, 338,
2073 338, 656, 481, 482, 308, -549, -484, -478, -478, 452,
2074 453, -549, 264, 590, -278, 298, 299, -106, 263, 781,
2075 589, 416, -486, 497, -487, -487, 788, 425, -70, 735,
2076 664, 623, 624, 625, 626, -475, 331, 332, 333, 243,
2077 -478, -488, -488, 918, 434, 338, 338, 431, 669, 920,
2078 570, -555, 722, 556, 614, 668, 676, 557, 681, 551,
2079 555, 667, 721, 675, 81, 201, 81, -278, -278, 673,
2080 414, 687, 687, 445, 208, 588, 254, 201, 563, 720,
2081 446, 447, 414, 436, 537, 699, 208, 442, 81, 208,
2082 465, 528, 676, 676, 656, 656, 537, 726, 732, 713,
2083 715, 243, 450, 528, 469, 673, 673, 727, 398, 669,
2084 -555, 192, 552, 553, 821, -286, 193, 826, 472, -102,
2085 473, 690, 796, 793, 190, 939, 208, 676, 950, -104,
2086 492, 564, 565, 773, 548, 669, -101, 264, 550, 667,
2087 673, 712, 714, 263, 448, 474, 554, 973, 761, 582,
2088 623, 624, 625, 626, 789, 598, 748, 649, 748, 806,
2089 748, -555, 808, -555, -555, 607, 600, -551, -286, -286,
2090 735, 770, 623, 624, 625, 626, 81, 816, 564, 565,
2091 677, 951, 952, 264, 208, 627, 455, 208, 208, 263,
2092 463, 628, 629, 208, 208, 662, 609, 792, 795, 601,
2093 795, -85, 795, 615, 597, -264, 658, 627, 599, 824,
2094 669, 661, 630, 602, 629, 631, 679, 728, 683, 208,
2095 385, 669, 208, 81, 807, 455, 428, 730, 611, 456,
2096 457, 81, 734, 613, 630, 418, 815, 656, 81, 81,
2097 746, 762, -107, 749, 419, 420, 398, 856, -106, 752,
2098 308, 190, 487, 494, 671, 751, 777, 779, 867, 754,
2099 770, 776, 784, 786, -265, 81, 81, 672, 456, 457,
2100 458, 707, 782, -98, 691, 793, -102, 81, 872, -97,
2101 110, 770, 110, 748, 783, 748, 748, 659, 735, -104,
2102 623, 624, 625, 626, 110, 110, 822, 254, 110, 329,
2103 330, 331, 332, 333, 762, 208, -101, -93, 729, 862,
2104 842, 828, 866, 848, 849, 81, 851, 853, 208, 855,
2105 -95, 860, 81, 81, -266, 864, 81, 110, 110, 881,
2106 882, 886, 687, 890, 876, 455, 892, -92, 894, 682,
2107 110, 684, 81, 891, 896, 905, 622, 901, 623, 624,
2108 625, 626, 748, 748, 898, 748, 308, 748, 748, 904,
2109 -267, 110, 110, 929, 903, 110, 938, 930, 941, 308,
2110 263, 321, 322, 949, 858, 943, 932, 946, 456, 457,
2111 460, 959, 914, 627, 321, 322, 81, 961, 263, 628,
2112 629, 795, -551, -552, 455, 983, 606, 81, 364, 347,
2113 455, 338, 977, 825, 338, 329, 330, 331, 332, 333,
2114 630, 382, 940, 631, 802, 326, 327, 328, 329, 330,
2115 331, 332, 333, 976, 748, 748, 748, 383, 748, 748,
2116 750, 811, 753, 277, 376, 928, 632, 456, 457, 462,
2117 81, 906, 81, 456, 457, 466, 765, 834, 81, 0,
2118 81, 771, 748, 748, 748, 748, 735, 0, 623, 624,
2119 625, 626, 0, 0, 201, 0, 0, 756, 757, 414,
2120 758, 681, 795, 208, 0, 110, 44, 45, 0, 528,
2121 0, 0, 0, 537, 0, 748, 748, 748, 748, 669,
2122 528, 0, 0, 736, 0, 110, 0, 110, 110, 748,
2123 338, 110, 0, 110, 0, 812, 0, 748, 110, 0,
2124 0, 0, 0, 817, 818, 308, 0, 0, 0, 110,
2125 110, 0, 868, 0, 869, 0, 0, 823, 0, 0,
2126 321, 322, 0, 0, 877, 0, 0, 0, 829, 879,
2127 831, 832, 837, 0, 735, 840, 623, 624, 625, 626,
2128 0, 0, 841, 0, 0, 850, 0, 852, 854, 0,
2129 0, 0, 0, 328, 329, 330, 331, 332, 333, 0,
2130 110, 110, 110, 110, 110, 110, 110, 110, 0, 0,
2131 110, 736, 110, 0, 0, 110, 0, 737, 0, 843,
2132 863, 623, 624, 625, 626, 921, 922, 870, 871, 0,
2133 0, 873, 203, 203, 0, 0, 203, 0, 0, 0,
2134 0, 878, 0, 110, 0, 110, 0, 883, 0, 110,
2135 110, 0, 0, 884, 893, 895, 0, 897, 889, 899,
2136 900, 0, 236, 239, 110, 0, 0, 203, 203, 0,
2137 0, 0, 0, 0, 908, 0, 911, 0, 286, 287,
2138 0, 735, 956, 623, 624, 625, 626, 0, 0, 0,
2139 0, 919, 110, 110, 293, 294, 295, 296, 297, 0,
2140 0, 0, 0, 0, 0, 0, 0, 0, 110, 0,
2141 978, 0, 979, 0, 0, 934, 0, 936, 736, 0,
2142 0, 937, 0, 0, 887, 0, 942, 944, 945, 0,
2143 947, 948, 110, 622, 0, 623, 624, 625, 626, 0,
2144 0, 110, 0, 0, 0, 953, 0, 954, 0, 0,
2145 0, 0, 0, 955, 960, 962, 963, 964, 0, 0,
2146 110, 0, 0, 0, 967, 0, 969, 0, 0, 970,
2147 627, 0, 0, 0, 0, 0, 628, 629, 0, 0,
2148 0, 0, 0, 0, 981, 0, 0, 982, 984, 985,
2149 986, 0, 0, 0, 0, 0, 0, 630, 0, 0,
2150 631, 988, 0, 0, 0, 0, 989, 0, 0, 990,
2151 0, 203, 0, 0, 203, 203, 286, 0, 0, 0,
2152 105, 0, 105, 708, 0, 622, 0, 623, 624, 625,
2153 626, 0, 0, 203, 0, 203, 203, 0, 0, 0,
2154 0, 108, 0, 108, 0, 0, 0, 0, 0, 0,
2155 110, 0, 110, 761, 0, 623, 624, 625, 626, 0,
2156 110, 0, 627, 0, 0, 0, 0, 105, 628, 629,
2157 0, 265, 110, 0, 110, 110, 0, 0, 0, 0,
2158 0, 0, 0, 0, 0, 0, 0, 0, 108, 630,
2159 627, 0, 631, 0, 265, 0, 628, 629, 0, 0,
2160 0, 0, 0, 0, 0, 0, 351, 361, 361, 361,
2161 0, 0, 110, 0, 0, 0, 0, 630, 203, 0,
2162 631, 0, 0, 496, 499, 500, 501, 502, 503, 504,
2163 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
2164 515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
2165 0, 203, 0, 0, 0, 0, 0, 0, 0, 0,
2166 0, 0, 110, 0, 0, 0, 0, 0, 0, 0,
2167 110, 0, 0, 110, 110, 0, 0, 0, 0, 110,
2168 110, 0, 308, 309, 310, 311, 312, 313, 314, 315,
2169 316, 317, 318, -574, -574, 0, 0, 321, 322, 0,
2170 579, 581, 0, 0, 0, 110, 0, 0, 110, 110,
2171 585, 203, 203, 0, 0, 105, 203, 110, 579, 581,
2172 203, 0, 0, 0, 110, 110, 324, 325, 326, 327,
2173 328, 329, 330, 331, 332, 333, 108, 0, 0, 605,
2174 0, 0, 0, 0, 610, 0, 0, 0, 105, 0,
2175 0, 110, 110, 203, 0, 0, 203, 0, 0, 105,
2176 105, 0, 0, 110, 0, 0, 0, 0, 203, 108,
2177 0, 0, 0, 0, 0, 0, 0, 0, 0, 265,
2178 108, 108, 0, 0, 0, 0, 0, 0, 650, 651,
2179 0, 110, 0, 0, 0, 0, 0, 0, 0, 0,
2180 203, 110, 0, 0, 110, 0, 0, 0, 110, 110,
2181 105, 0, 110, 0, 0, 105, 0, 0, 0, 0,
2182 0, 0, 105, 265, 0, 0, 0, 109, 110, 109,
2183 0, 108, 0, 0, 0, 0, 108, 0, 0, 0,
2184 0, 0, 0, 108, 0, 0, 0, 0, 0, 0,
2185 0, 0, 0, 0, 0, 105, 0, 106, 0, 106,
2186 0, 0, 0, 0, 203, 0, 0, 0, 203, 0,
2187 0, 0, 110, 0, 109, 78, 108, 78, 267, 0,
2188 203, 0, 0, 110, 0, 0, 0, 0, 0, 0,
2189 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2190 0, 267, 0, 203, 106, 0, 0, 0, 266, 0,
2191 0, 0, 0, 353, 363, 363, 203, 203, 0, 0,
2192 0, 0, 78, 0, 0, 0, 110, 0, 110, 0,
2193 0, 266, 0, 0, 110, 0, 110, 0, 0, 0,
2194 0, 0, 105, 352, 362, 362, 362, 0, 0, 0,
2195 0, 105, 0, 0, 0, 0, 0, 0, 0, 110,
2196 0, 348, 0, 108, 0, 0, 0, 0, 265, 0,
2197 0, 0, 108, 0, 203, 0, 0, 0, 585, 775,
2198 0, 778, 780, 0, 0, 0, 0, 785, 787, -573,
2199 0, 0, 0, 0, 0, 203, 0, -573, -573, -573,
2200 0, 0, -573, -573, -573, 0, -573, 0, 265, 0,
2201 0, 0, 0, 0, 0, 0, -573, 0, 0, 0,
2202 0, 0, 109, 0, 0, 0, -573, -573, 0, -573,
2203 -573, -573, -573, -573, 819, 0, 0, 0, 0, 778,
2204 780, 0, 785, 787, 0, 0, 0, 0, 0, 0,
2205 203, 0, 106, 0, 0, 109, 0, 0, 0, 0,
2206 105, 0, 105, 0, 0, 0, 109, 109, 0, 0,
2207 78, 0, 0, 0, -573, 0, 0, 0, 0, 0,
2208 0, 108, 0, 108, 105, 106, 267, 0, 203, 0,
2209 0, 0, 857, 0, 0, 0, 106, 106, 0, 859,
2210 0, 0, 0, 78, 0, 108, 0, 0, 0, 0,
2211 0, 0, 0, 0, 78, 78, 266, 109, 0, 203,
2212 0, 0, 109, 0, 0, 0, -573, 0, -573, 109,
2213 267, 220, -573, 265, -573, 0, -573, 859, 203, 0,
2214 0, 0, 0, 0, 0, 0, 0, 106, 0, 0,
2215 0, 0, 106, 0, 0, 0, 0, 0, 0, 106,
2216 266, 0, 109, 0, 0, 78, 0, 0, 0, 0,
2217 78, 0, 105, 0, 0, 0, 0, 78, 0, 265,
2218 495, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2219 0, 0, 106, 108, 0, 0, 0, 0, 0, 0,
2220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2221 78, 0, 0, 0, 0, 0, 0, 0, 0, 105,
2222 0, 0, 0, 0, 0, 0, 0, 105, 0, 0,
2223 0, 0, 0, 0, 105, 105, 0, 0, 0, 0,
2224 108, 0, 0, 0, 0, 0, 0, 0, 108, 109,
2225 0, 0, 0, 0, 0, 108, 108, 0, 109, 0,
2226 0, 105, 105, 0, 0, 0, 0, 203, 0, 0,
2227 0, 0, 0, 105, 0, 267, 0, 0, 0, 106,
2228 0, 0, 108, 108, 0, 0, 0, 0, 106, 0,
2229 0, 0, 0, 0, 108, 0, 0, 78, 0, 0,
2230 0, 0, 0, 0, 0, 266, 78, 0, 0, 0,
2231 0, 105, 0, 0, 0, 267, 0, 0, 105, 105,
2232 0, 0, 105, 0, 0, 0, 0, 0, 0, 0,
2233 0, 0, 108, 0, 0, 0, 0, 0, 105, 108,
2234 108, 0, 0, 108, 0, 266, 0, 0, 0, 0,
2235 0, 0, 0, 0, 0, 0, 0, 0, 0, 108,
2236 361, 0, 0, 0, 0, 0, 0, 109, 0, 109,
2237 0, 0, 0, 0, 0, 0, 0, 0, 915, 0,
2238 0, 0, 105, 0, 0, 0, 0, 0, 0, 0,
2239 0, 109, 0, 105, 0, 0, 0, 106, 0, 106,
2240 0, 0, 0, 108, 0, 0, 0, 0, 0, 0,
2241 0, 0, 0, 0, 108, 78, 0, 78, 0, 0,
2242 0, 106, 0, 0, 0, 0, 0, 0, 0, 0,
2243 0, 0, 0, 0, 0, 0, 105, 0, 105, 78,
2244 267, 0, 0, 0, 105, 0, 105, 0, 0, 0,
2245 0, 0, 0, 0, 0, 0, 0, 108, 0, 108,
2246 0, 0, 0, 0, 0, 108, 0, 108, 0, 0,
2247 266, 760, 0, 0, 0, 0, 0, 0, 0, 109,
2248 0, 0, 0, 0, 0, 0, 267, 0, 0, 0,
2249 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2250 0, 0, 308, -574, -574, -574, -574, 313, 314, 106,
2251 0, -574, -574, 0, 0, 0, 266, 321, 322, 0,
2252 0, 0, 0, 0, 0, 0, 109, 78, 0, 0,
2253 0, 0, 0, 0, 109, 495, 0, 0, 0, 0,
2254 0, 109, 109, 0, 0, 0, 324, 325, 326, 327,
2255 328, 329, 330, 331, 332, 333, 106, 0, 0, 0,
2256 0, 0, 0, 0, 106, 0, 0, 0, 109, 109,
2257 0, 106, 106, 0, 78, 0, 0, 0, 0, 0,
2258 109, 0, 78, 0, 0, 0, 0, 0, 0, 78,
2259 78, 308, 309, 310, 311, 312, 313, 314, 106, 106,
2260 317, 318, 0, 0, 0, 0, 321, 322, 0, 0,
2261 106, 0, 0, 0, 0, 0, 78, 78, 109, 0,
2262 0, 0, 0, 0, 0, 109, 109, 0, 78, 109,
2263 0, 0, 0, 0, 0, 324, 325, 326, 327, 328,
2264 329, 330, 331, 332, 333, 109, 0, 0, 106, 0,
2265 0, 0, 0, 0, 0, 106, 106, 0, 0, 106,
2266 0, 0, 0, 0, 0, 0, 78, 363, 0, 0,
2267 0, 0, 0, 78, 78, 106, 0, 78, 0, 0,
2268 0, 0, 0, 0, 0, 917, 0, 0, 0, 109,
2269 0, 0, 0, 78, 0, 0, 0, 362, 0, 0,
2270 109, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2271 0, 0, 0, 0, 0, 916, 0, 0, 0, 106,
2272 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2273 106, 0, 0, 913, 0, 0, 0, 78, 0, 0,
2274 0, 0, 0, 109, 0, 109, 0, 0, 78, 0,
2275 0, 109, 0, 109, 0, 0, 0, 0, 0, 0,
2276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2277 0, 0, 0, 106, 0, 106, 0, 0, 0, 0,
2278 0, 106, 0, 106, 0, 0, 0, 0, 0, 0,
2279 0, 78, 0, 78, 0, 0, 0, 0, 0, 78,
2280 0, 78, -573, 4, 0, 5, 6, 7, 8, 9,
2281 0, 0, 0, 10, 11, 0, 0, 0, 12, 0,
2282 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2283 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2284 0, 27, 0, 0, 0, 0, 0, 28, 29, 30,
2285 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2286 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2287 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2288 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2289 0, 49, 50, 0, 51, 52, 0, 53, 0, 54,
2290 55, 56, 57, 58, 59, 60, 0, 0, 0, 0,
2291 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2292 0, 0, 0, -285, 61, 62, 63, 0, 0, 0,
2293 0, -285, -285, -285, 0, 0, -285, -285, -285, 0,
2294 -285, 0, 0, 0, 0, 0, 0, -573, 0, -573,
2295 -285, -285, -285, 0, 0, 0, 0, 0, 0, 0,
2296 -285, -285, 0, -285, -285, -285, -285, -285, 0, 0,
2297 0, 0, 0, 0, 308, 309, 310, 311, 312, 313,
2298 314, 315, 316, 317, 318, 319, 320, 0, 0, 321,
2299 322, -285, -285, -285, -285, -285, -285, -285, -285, -285,
2300 -285, -285, -285, -285, 0, 0, -285, -285, -285, 0,
2301 724, -285, 0, 0, 0, 0, 323, -285, 324, 325,
2302 326, 327, 328, 329, 330, 331, 332, 333, 0, 0,
2303 -285, 0, -105, -285, -285, -285, -285, -285, -285, -285,
2304 -285, -285, -285, -285, -285, 0, 0, 0, 0, 0,
2305 0, 0, 0, 224, 0, 0, 0, 0, 0, 0,
2306 -285, -285, -285, -285, -411, 0, -285, -285, -285, 0,
2307 -285, 0, -411, -411, -411, 0, 0, -411, -411, -411,
2308 0, -411, 0, 0, 0, 0, 0, 0, 0, 0,
2309 -411, -411, -411, 0, 0, 0, 0, 0, 0, 0,
2310 0, -411, -411, 0, -411, -411, -411, -411, -411, 0,
2311 0, 0, 0, 0, 0, 308, 309, 310, 311, 312,
2312 313, 314, 315, 316, 317, 318, 319, 320, 0, 0,
2313 321, 322, -411, -411, -411, -411, -411, -411, -411, -411,
2314 -411, -411, -411, -411, -411, 0, 0, -411, -411, -411,
2315 0, 0, -411, 0, 0, 0, 0, 323, -411, 324,
2316 325, 326, 327, 328, 329, 330, 331, 332, 333, 0,
2317 0, 0, 0, 0, -411, 0, -411, -411, -411, -411,
2318 -411, -411, -411, -411, -411, -411, 0, 0, 0, 0,
2319 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2320 -411, -411, -411, -411, -411, -279, 220, -411, -411, -411,
2321 0, -411, 0, -279, -279, -279, 0, 0, -279, -279,
2322 -279, 0, -279, 0, 0, 0, 0, 0, 0, 0,
2323 0, 0, -279, -279, -279, 0, 0, 0, 0, 0,
2324 0, 0, -279, -279, 0, -279, -279, -279, -279, -279,
2325 0, 0, 0, 0, 0, 0, 308, 309, 310, 311,
2326 312, 313, 314, 315, 0, 317, 318, 0, 0, 0,
2327 0, 321, 322, -279, -279, -279, -279, -279, -279, -279,
2328 -279, -279, -279, -279, -279, -279, 0, 0, -279, -279,
2329 -279, 0, 0, -279, 0, 0, 0, 0, 0, -279,
2330 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
2331 0, 0, -279, 0, 0, -279, -279, -279, -279, -279,
2332 -279, -279, -279, -279, -279, -279, -279, 0, 0, 0,
2333 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2334 0, 0, -279, -279, -279, -279, -573, 0, -279, -279,
2335 -279, 0, -279, 0, -573, -573, -573, 0, 0, -573,
2336 -573, -573, 0, -573, 0, 0, 0, 0, 0, 0,
2337 0, 0, -573, -573, -573, 0, 0, 0, 0, 0,
2338 0, 0, 0, -573, -573, 0, -573, -573, -573, -573,
2339 -573, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2340 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2341 0, 0, 0, 0, -573, -573, -573, -573, -573, -573,
2342 -573, -573, -573, -573, -573, -573, -573, 0, 0, -573,
2343 -573, -573, 0, 0, -573, 0, 0, 0, 0, 0,
2344 -573, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2345 0, 0, 0, 0, 0, 0, -573, 0, -573, -573,
2346 -573, -573, -573, -573, -573, -573, -573, -573, 0, 0,
2347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2348 0, 0, -573, -573, -573, -573, -573, -292, 220, -573,
2349 -573, -573, 0, -573, 0, -292, -292, -292, 0, 0,
2350 -292, -292, -292, 0, -292, 0, 0, 0, 0, 0,
2351 0, 0, 0, 0, -292, -292, 0, 0, 0, 0,
2352 0, 0, 0, 0, -292, -292, 0, -292, -292, -292,
2353 -292, -292, 0, 0, 0, 0, 0, 0, 0, 0,
2354 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2355 0, 0, 0, 0, 0, -292, -292, -292, -292, -292,
2356 -292, -292, -292, -292, -292, -292, -292, -292, 0, 0,
2357 -292, -292, -292, 0, 0, -292, 0, 0, 0, 0,
2358 0, -292, 0, 0, 0, 0, 0, 0, 0, 0,
2359 0, 0, 0, 0, 0, 0, 0, -292, 0, -292,
2360 -292, -292, -292, -292, -292, -292, -292, -292, -292, 0,
2361 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2362 0, 0, 0, 0, -292, -292, -292, -292, -555, 217,
2363 -292, -292, -292, 0, -292, 0, -555, -555, -555, 0,
2364 0, 0, -555, -555, 0, -555, 0, 0, 0, 0,
2365 0, 0, 0, 0, -555, 0, 0, 0, 0, 0,
2366 0, 0, 0, 0, 0, -555, -555, 0, -555, -555,
2367 -555, -555, -555, 0, 0, 0, 0, 0, 0, 0,
2368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2369 0, 0, 0, 0, 0, 0, -555, -555, -555, -555,
2370 -555, -555, -555, -555, -555, -555, -555, -555, -555, 0,
2371 0, -555, -555, -555, -285, 665, 0, 0, 0, 0,
2372 0, 0, -285, -285, -285, 0, 0, 0, -285, -285,
2373 0, -285, 0, 0, 0, 0, 0, -103, -555, 0,
2374 -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
2375 0, -285, -285, 0, -285, -285, -285, -285, -285, 0,
2376 0, 0, 0, 0, -555, -555, -555, -555, -94, 0,
2377 0, -555, 0, -555, 0, -555, 0, 0, 0, 0,
2378 0, 0, -285, -285, -285, -285, -285, -285, -285, -285,
2379 -285, -285, -285, -285, -285, 0, 0, -285, -285, -285,
2380 0, 666, 0, 0, 0, 0, 0, 0, 0, 0,
2381 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2382 0, 0, 0, -105, -285, 0, -285, -285, -285, -285,
2383 -285, -285, -285, -285, -285, -285, 0, 0, 0, 0,
2384 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2385 0, -285, -285, -285, -96, 0, 0, -285, 0, -285,
2386 241, -285, 5, 6, 7, 8, 9, -573, -573, -573,
2387 10, 11, 0, 0, -573, 12, 0, 13, 14, 15,
2388 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2389 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2390 0, 0, 0, 0, 28, 29, 0, 31, 32, 33,
2391 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2392 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2394 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2395 0, 51, 52, 0, 53, 0, 54, 55, 56, 57,
2396 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2398 0, 61, 62, 63, 0, 0, 0, 0, 0, 0,
2399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2400 0, 0, 0, 0, -573, 241, -573, 5, 6, 7,
2401 8, 9, 0, 0, -573, 10, 11, 0, -573, -573,
2402 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2403 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2404 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2405 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2406 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2407 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2408 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2409 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2410 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2411 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2412 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2414 0, 0, 0, 0, 0, 0, 0, 0, 0, -573,
2415 241, -573, 5, 6, 7, 8, 9, 0, 0, -573,
2416 10, 11, 0, 0, -573, 12, -573, 13, 14, 15,
2417 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2418 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2419 0, 0, 0, 0, 28, 29, 0, 31, 32, 33,
2420 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2421 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2423 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2424 0, 51, 52, 0, 53, 0, 54, 55, 56, 57,
2425 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2427 0, 61, 62, 63, 0, 0, 0, 0, 0, 0,
2428 4, 0, 5, 6, 7, 8, 9, 0, 0, 0,
2429 10, 11, 0, 0, -573, 12, -573, 13, 14, 15,
2430 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2431 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2432 0, 0, 0, 0, 28, 29, 30, 31, 32, 33,
2433 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2434 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2436 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2437 0, 51, 52, 0, 53, 0, 54, 55, 56, 57,
2438 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2440 0, 61, 62, 63, 0, 0, 0, 0, 0, 0,
2441 0, 0, 0, 0, 0, 0, -573, 0, 0, 0,
2442 0, 0, 0, 0, -573, 241, -573, 5, 6, 7,
2443 8, 9, 0, 0, -573, 10, 11, 0, 0, -573,
2444 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2445 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2446 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2447 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2448 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2449 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2451 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2452 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2454 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2455 0, 0, 0, 0, 0, 241, 0, 5, 6, 7,
2456 8, 9, 0, -573, -573, 10, 11, 0, 0, -573,
2457 12, -573, 13, 14, 15, 16, 17, 18, 19, 0,
2458 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2459 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2460 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2461 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2462 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2464 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2465 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2467 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2468 0, 0, 0, 0, 0, 241, 0, 5, 6, 7,
2469 8, 9, 0, 0, 0, 10, 11, 0, 0, -573,
2470 12, -573, 13, 14, 15, 16, 17, 18, 19, 0,
2471 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2472 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2473 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2474 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2475 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2477 48, 0, 0, 242, 50, 0, 51, 52, 0, 53,
2478 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2480 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2481 0, 0, 0, 0, 0, 241, 0, 5, 6, 7,
2482 8, 9, 0, 0, 0, 10, 11, -573, 0, -573,
2483 12, -573, 13, 14, 15, 16, 17, 18, 19, 0,
2484 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2485 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2486 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2487 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2488 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2490 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2491 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2493 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2494 0, 0, 0, 0, 0, 241, 0, 5, 6, 7,
2495 8, 9, 0, 0, 0, 10, 11, -573, 0, -573,
2496 12, -573, 13, 14, 15, 16, 17, 18, 19, 0,
2497 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2498 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2499 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2500 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2501 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2503 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2504 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2506 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2508 0, -573, 0, 0, 0, 0, 0, 0, 0, -573,
2509 241, -573, 5, 6, 7, 8, 9, 0, 0, -573,
2510 10, 11, 0, 0, 0, 12, 0, 13, 14, 15,
2511 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2512 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2513 0, 0, 0, 0, 28, 29, 0, 31, 32, 33,
2514 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2515 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2517 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2518 0, 51, 52, 0, 53, 0, 54, 55, 56, 57,
2519 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2521 0, 61, 62, 63, 0, 0, 0, 0, 0, 0,
2522 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2523 10, 11, 0, 0, -573, 12, -573, 13, 14, 15,
2524 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2525 21, 22, 23, 24, 25, 26, 0, 0, 194, 0,
2526 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2527 34, 35, 36, 37, 38, 39, 40, 195, 41, 42,
2528 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2530 0, 0, 0, 0, 0, 196, 0, 0, 197, 50,
2531 0, 51, 52, 0, 198, 199, 54, 55, 56, 57,
2532 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2533 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2534 11, 61, 200, 63, 12, 0, 13, 14, 15, 16,
2535 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2536 22, 23, 24, 25, 26, 0, 224, 27, 0, 0,
2537 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2538 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2539 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2541 0, 0, 0, 0, 196, 0, 0, 197, 50, 0,
2542 51, 52, 0, 0, 0, 54, 55, 56, 57, 58,
2543 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2545 61, 62, 63, 0, 0, 0, 0, 0, 0, 0,
2546 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2547 11, 0, 0, 288, 12, 289, 13, 14, 15, 16,
2548 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2549 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2550 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2551 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2552 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2553 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2554 0, 0, 0, 0, 196, 0, 0, 197, 50, 0,
2555 51, 52, 0, 0, 0, 54, 55, 56, 57, 58,
2556 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2557 5, 6, 7, 8, 9, 0, 0, 0, 10, 11,
2558 61, 62, 63, 12, 0, 13, 14, 15, 16, 17,
2559 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2560 23, 24, 25, 26, 0, 224, 27, 0, 0, 0,
2561 0, 0, 28, 29, 30, 31, 32, 33, 34, 35,
2562 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
2563 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2565 0, 0, 0, 48, 0, 0, 49, 50, 0, 51,
2566 52, 0, 53, 0, 54, 55, 56, 57, 58, 59,
2567 60, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2568 0, 0, 0, 0, 0, 0, 0, 0, 0, 61,
2569 62, 63, 0, 0, 0, 0, 0, 0, 5, 6,
2570 7, 8, 9, 0, 0, 0, 10, 11, 0, 0,
2571 0, 12, 474, 13, 14, 15, 16, 17, 18, 19,
2572 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
2573 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2574 28, 29, 0, 31, 32, 33, 34, 35, 36, 37,
2575 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2576 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2578 0, 48, 0, 0, 49, 50, 0, 51, 52, 0,
2579 53, 0, 54, 55, 56, 57, 58, 59, 60, 0,
2580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2581 0, 0, 0, 0, 0, 0, 0, 61, 62, 63,
2582 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2584 474, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2585 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2586 132, 133, 134, 135, 136, 0, 0, 0, 137, 138,
2587 139, 365, 366, 367, 368, 144, 145, 146, 0, 0,
2588 0, 0, 0, 147, 148, 149, 150, 369, 370, 371,
2589 372, 155, 37, 38, 373, 40, 0, 0, 0, 0,
2590 0, 0, 0, 0, 157, 158, 159, 160, 161, 162,
2591 163, 164, 165, 0, 0, 166, 167, 0, 0, 168,
2592 169, 170, 171, 0, 0, 0, 0, 0, 0, 0,
2593 0, 0, 0, 172, 0, 0, 0, 0, 0, 0,
2594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2595 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
2596 0, 183, 184, 0, 0, 0, 0, 0, -548, -548,
2597 -548, 0, -548, 0, 0, 0, -548, -548, 0, 185,
2598 374, -548, 0, -548, -548, -548, -548, -548, -548, -548,
2599 0, -548, 0, 0, 0, -548, -548, -548, -548, -548,
2600 -548, -548, 0, 0, -548, 0, 0, 0, 0, 0,
2601 0, -548, 0, 0, -548, -548, -548, -548, -548, -548,
2602 -548, -548, -548, -548, -548, -548, 0, -548, -548, -548,
2603 0, -548, -548, 0, 0, 0, 0, 0, 0, 0,
2604 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2605 0, -548, 0, 0, -548, -548, 0, -548, -548, 0,
2606 -548, -548, -548, -548, -548, -548, -548, -548, -548, 0,
2607 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2608 0, 0, 0, 0, 0, 0, 0, -548, -548, -548,
2609 0, 0, 0, 0, 0, -549, -549, -549, 0, -549,
2610 0, -548, 0, -549, -549, 0, 0, -548, -549, 0,
2611 -549, -549, -549, -549, -549, -549, -549, 0, -549, 0,
2612 0, 0, -549, -549, -549, -549, -549, -549, -549, 0,
2613 0, -549, 0, 0, 0, 0, 0, 0, -549, 0,
2614 0, -549, -549, -549, -549, -549, -549, -549, -549, -549,
2615 -549, -549, -549, 0, -549, -549, -549, 0, -549, -549,
2616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2617 0, 0, 0, 0, 0, 0, 0, 0, -549, 0,
2618 0, -549, -549, 0, -549, -549, 0, -549, -549, -549,
2619 -549, -549, -549, -549, -549, -549, 0, 0, 0, 0,
2620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2621 0, 0, 0, 0, -549, -549, -549, 0, 0, 0,
2622 0, 0, -551, -551, -551, 0, -551, 0, -549, 0,
2623 -551, -551, 0, 0, -549, -551, 0, -551, -551, -551,
2624 -551, -551, -551, -551, 0, 0, 0, 0, 0, -551,
2625 -551, -551, -551, -551, -551, -551, 0, 0, -551, 0,
2626 0, 0, 0, 0, 0, -551, 0, 0, -551, -551,
2627 -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
2628 0, -551, -551, -551, 0, -551, -551, 0, 0, 0,
2629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2630 0, 0, 0, 0, 0, -551, 723, 0, -551, -551,
2631 0, -551, -551, 0, -551, -551, -551, -551, -551, -551,
2632 -551, -551, -551, 0, 0, 0, 0, 0, -103, 0,
2633 0, 0, 0, 0, 0, 0, -553, -553, -553, 0,
2634 -553, -551, -551, -551, -553, -553, 0, 0, 0, -553,
2635 0, -553, -553, -553, -553, -553, -553, -553, 0, 0,
2636 0, -551, 0, -553, -553, -553, -553, -553, -553, -553,
2637 0, 0, -553, 0, 0, 0, 0, 0, 0, -553,
2638 0, 0, -553, -553, -553, -553, -553, -553, -553, -553,
2639 -553, -553, -553, -553, 0, -553, -553, -553, 0, -553,
2640 -553, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2641 0, 0, 0, 0, 0, 0, 0, 0, 0, -553,
2642 0, 0, -553, -553, 0, -553, -553, 0, -553, -553,
2643 -553, -553, -553, -553, -553, -553, -553, 0, 0, 0,
2644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2645 -554, -554, -554, 0, -554, -553, -553, -553, -554, -554,
2646 0, 0, 0, -554, 0, -554, -554, -554, -554, -554,
2647 -554, -554, 0, 0, 0, -553, 0, -554, -554, -554,
2648 -554, -554, -554, -554, 0, 0, -554, 0, 0, 0,
2649 0, 0, 0, -554, 0, 0, -554, -554, -554, -554,
2650 -554, -554, -554, -554, -554, -554, -554, -554, 0, -554,
2651 -554, -554, 0, -554, -554, 0, 0, 0, 0, 0,
2652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2653 0, 0, 0, -554, 0, 0, -554, -554, 0, -554,
2654 -554, 0, -554, -554, -554, -554, -554, -554, -554, -554,
2655 -554, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2656 0, 0, 0, 0, 0, 0, 0, 0, 0, -554,
2657 -554, -554, 0, 0, 0, 0, 0, 0, 0, 0,
2658 0, 0, 0, 0, 0, 0, 0, 0, 0, -554,
2659 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
2660 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2661 133, 134, 135, 136, 0, 0, 0, 137, 138, 139,
2662 140, 141, 142, 143, 144, 145, 146, 0, 0, 0,
2663 0, 0, 147, 148, 149, 150, 151, 152, 153, 154,
2664 155, 270, 271, 156, 272, 0, 0, 0, 0, 0,
2665 0, 0, 0, 157, 158, 159, 160, 161, 162, 163,
2666 164, 165, 0, 0, 166, 167, 0, 0, 168, 169,
2667 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
2668 0, 0, 172, 0, 0, 0, 0, 0, 0, 0,
2669 0, 0, 0, 0, 0, 0, 0, 0, 0, 173,
2670 174, 175, 176, 177, 178, 179, 180, 181, 182, 0,
2671 183, 184, 0, 0, 0, 0, 0, 0, 0, 0,
2672 0, 0, 0, 0, 0, 0, 0, 0, 185, 113,
2673 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2674 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2675 134, 135, 136, 0, 0, 0, 137, 138, 139, 140,
2676 141, 142, 143, 144, 145, 146, 0, 0, 0, 0,
2677 0, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2678 226, 0, 156, 0, 0, 0, 0, 0, 0, 0,
2679 0, 0, 157, 158, 159, 160, 161, 162, 163, 164,
2680 165, 0, 0, 166, 167, 0, 0, 168, 169, 170,
2681 171, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2682 0, 172, 0, 0, 55, 0, 0, 0, 0, 0,
2683 0, 0, 0, 0, 0, 0, 0, 0, 173, 174,
2684 175, 176, 177, 178, 179, 180, 181, 182, 0, 183,
2685 184, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2686 0, 0, 0, 0, 0, 0, 0, 185, 113, 114,
2687 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2688 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2689 135, 136, 0, 0, 0, 137, 138, 139, 140, 141,
2690 142, 143, 144, 145, 146, 0, 0, 0, 0, 0,
2691 147, 148, 149, 150, 151, 152, 153, 154, 155, 0,
2692 0, 156, 0, 0, 0, 0, 0, 0, 0, 0,
2693 0, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2694 0, 0, 166, 167, 0, 0, 168, 169, 170, 171,
2695 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2696 172, 0, 0, 55, 0, 0, 0, 0, 0, 0,
2697 0, 0, 0, 0, 0, 0, 0, 173, 174, 175,
2698 176, 177, 178, 179, 180, 181, 182, 0, 183, 184,
2699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2700 0, 0, 0, 0, 0, 0, 185, 113, 114, 115,
2701 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2702 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2703 136, 0, 0, 0, 137, 138, 139, 140, 141, 142,
2704 143, 144, 145, 146, 0, 0, 0, 0, 0, 147,
2705 148, 149, 150, 151, 152, 153, 154, 155, 0, 0,
2706 156, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2707 157, 158, 159, 160, 161, 162, 163, 164, 165, 0,
2708 0, 166, 167, 0, 0, 168, 169, 170, 171, 0,
2709 0, 0, 0, 0, 0, 0, 0, 0, 0, 172,
2710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2711 0, 0, 0, 0, 0, 0, 173, 174, 175, 176,
2712 177, 178, 179, 180, 181, 182, 0, 183, 184, 0,
2713 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2714 11, 0, 0, 0, 12, 185, 13, 14, 15, 231,
2715 232, 18, 19, 0, 0, 0, 0, 0, 233, 234,
2716 235, 23, 24, 25, 26, 0, 0, 194, 0, 0,
2717 0, 0, 0, 0, 258, 0, 0, 32, 33, 34,
2718 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2719 43, 44, 45, 0, 0, 0, 0, 0, 0, 0,
2720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2721 0, 0, 0, 0, 259, 0, 0, 197, 50, 0,
2722 51, 52, 0, 0, 0, 54, 55, 56, 57, 58,
2723 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2724 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2725 260, 10, 11, 0, 0, 0, 12, 0, 13, 14,
2726 15, 231, 232, 18, 19, 0, 0, 0, 261, 0,
2727 233, 234, 235, 23, 24, 25, 26, 0, 0, 194,
2728 0, 0, 0, 0, 0, 0, 258, 0, 0, 32,
2729 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2730 42, 0, 43, 44, 45, 0, 0, 0, 0, 0,
2731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2732 0, 0, 0, 0, 0, 0, 259, 0, 0, 197,
2733 50, 0, 51, 52, 0, 0, 0, 54, 55, 56,
2734 57, 58, 59, 60, 0, 0, 0, 0, 0, 0,
2735 0, 0, 0, 0, 0, 5, 6, 7, 8, 9,
2736 0, 0, 260, 10, 11, 0, 0, 0, 12, 0,
2737 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2738 490, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2739 0, 27, 0, 0, 0, 0, 0, 28, 29, 30,
2740 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2741 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2743 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2744 0, 49, 50, 0, 51, 52, 0, 53, 0, 54,
2745 55, 56, 57, 58, 59, 60, 0, 0, 0, 0,
2746 0, 0, 0, 0, 5, 6, 7, 8, 9, 0,
2747 0, 0, 10, 11, 61, 62, 63, 12, 0, 13,
2748 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2749 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2750 27, 0, 0, 0, 0, 0, 28, 29, 0, 31,
2751 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2752 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2754 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
2755 49, 50, 0, 51, 52, 0, 53, 0, 54, 55,
2756 56, 57, 58, 59, 60, 0, 0, 0, 0, 0,
2757 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2758 0, 10, 11, 61, 62, 63, 12, 0, 13, 14,
2759 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
2760 20, 21, 22, 23, 24, 25, 26, 0, 0, 194,
2761 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
2762 33, 34, 35, 36, 37, 38, 39, 40, 195, 41,
2763 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2765 0, 0, 0, 0, 0, 0, 196, 0, 0, 197,
2766 50, 0, 51, 52, 0, 198, 199, 54, 55, 56,
2767 57, 58, 59, 60, 0, 0, 0, 0, 0, 0,
2768 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2769 10, 11, 61, 200, 63, 12, 0, 13, 14, 15,
2770 231, 232, 18, 19, 0, 0, 0, 0, 0, 233,
2771 234, 235, 23, 24, 25, 26, 0, 0, 194, 0,
2772 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2773 34, 35, 36, 37, 38, 39, 40, 195, 41, 42,
2774 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2776 0, 0, 0, 0, 0, 196, 0, 0, 197, 50,
2777 0, 51, 52, 0, 587, 199, 54, 55, 56, 57,
2778 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2779 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2780 11, 61, 200, 63, 12, 0, 13, 14, 15, 231,
2781 232, 18, 19, 0, 0, 0, 0, 0, 233, 234,
2782 235, 23, 24, 25, 26, 0, 0, 194, 0, 0,
2783 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2784 35, 36, 37, 38, 39, 40, 195, 41, 42, 0,
2785 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2787 0, 0, 0, 0, 196, 0, 0, 197, 50, 0,
2788 51, 52, 0, 198, 0, 54, 55, 56, 57, 58,
2789 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2790 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2791 61, 200, 63, 12, 0, 13, 14, 15, 231, 232,
2792 18, 19, 0, 0, 0, 0, 0, 233, 234, 235,
2793 23, 24, 25, 26, 0, 0, 194, 0, 0, 0,
2794 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2795 36, 37, 38, 39, 40, 195, 41, 42, 0, 43,
2796 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2798 0, 0, 0, 196, 0, 0, 197, 50, 0, 51,
2799 52, 0, 0, 199, 54, 55, 56, 57, 58, 59,
2800 60, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2801 6, 7, 0, 9, 0, 0, 0, 10, 11, 61,
2802 200, 63, 12, 0, 13, 14, 15, 231, 232, 18,
2803 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2804 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
2805 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2806 37, 38, 39, 40, 195, 41, 42, 0, 43, 44,
2807 45, 0, 46, 47, 0, 0, 0, 0, 0, 0,
2808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2809 0, 0, 196, 0, 0, 197, 50, 0, 51, 52,
2810 0, 587, 0, 54, 55, 56, 57, 58, 59, 60,
2811 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2812 7, 0, 9, 0, 0, 0, 10, 11, 61, 200,
2813 63, 12, 0, 13, 14, 15, 231, 232, 18, 19,
2814 0, 0, 0, 0, 0, 233, 234, 235, 23, 24,
2815 25, 26, 0, 0, 194, 0, 0, 0, 0, 0,
2816 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
2817 38, 39, 40, 195, 41, 42, 0, 43, 44, 45,
2818 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2820 0, 196, 0, 0, 197, 50, 0, 51, 52, 0,
2821 0, 0, 54, 55, 56, 57, 58, 59, 60, 0,
2822 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2823 0, 9, 0, 0, 0, 10, 11, 61, 200, 63,
2824 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2825 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2826 26, 0, 0, 194, 0, 0, 0, 0, 0, 0,
2827 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2828 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2829 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2831 196, 0, 0, 197, 50, 0, 51, 52, 0, 484,
2832 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2833 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
2834 9, 0, 0, 0, 10, 11, 61, 200, 63, 12,
2835 0, 13, 14, 15, 231, 232, 18, 19, 0, 0,
2836 0, 0, 0, 233, 234, 235, 23, 24, 25, 26,
2837 0, 0, 194, 0, 0, 0, 0, 0, 0, 29,
2838 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2839 40, 0, 41, 42, 0, 43, 44, 45, 0, 46,
2840 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2841 0, 0, 0, 0, 0, 0, 0, 0, 0, 196,
2842 0, 0, 197, 50, 0, 51, 52, 0, 198, 0,
2843 54, 55, 56, 57, 58, 59, 60, 0, 0, 0,
2844 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2845 0, 0, 0, 10, 11, 61, 200, 63, 12, 0,
2846 13, 14, 15, 231, 232, 18, 19, 0, 0, 0,
2847 0, 0, 233, 234, 235, 23, 24, 25, 26, 0,
2848 0, 194, 0, 0, 0, 0, 0, 0, 29, 0,
2849 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2850 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2852 0, 0, 0, 0, 0, 0, 0, 0, 196, 0,
2853 0, 197, 50, 0, 51, 52, 0, 772, 0, 54,
2854 55, 56, 57, 58, 59, 60, 0, 0, 0, 0,
2855 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2856 0, 0, 10, 11, 61, 200, 63, 12, 0, 13,
2857 14, 15, 231, 232, 18, 19, 0, 0, 0, 0,
2858 0, 233, 234, 235, 23, 24, 25, 26, 0, 0,
2859 194, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2860 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2861 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2863 0, 0, 0, 0, 0, 0, 0, 196, 0, 0,
2864 197, 50, 0, 51, 52, 0, 484, 0, 54, 55,
2865 56, 57, 58, 59, 60, 0, 0, 0, 0, 0,
2866 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2867 0, 10, 11, 61, 200, 63, 12, 0, 13, 14,
2868 15, 231, 232, 18, 19, 0, 0, 0, 0, 0,
2869 233, 234, 235, 23, 24, 25, 26, 0, 0, 194,
2870 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
2871 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2872 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2874 0, 0, 0, 0, 0, 0, 196, 0, 0, 197,
2875 50, 0, 51, 52, 0, 587, 0, 54, 55, 56,
2876 57, 58, 59, 60, 0, 0, 0, 0, 0, 0,
2877 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2878 10, 11, 61, 200, 63, 12, 0, 13, 14, 15,
2879 231, 232, 18, 19, 0, 0, 0, 0, 0, 233,
2880 234, 235, 23, 24, 25, 26, 0, 0, 194, 0,
2881 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2882 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2883 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2885 0, 0, 0, 0, 0, 196, 0, 0, 197, 50,
2886 0, 51, 52, 0, 0, 0, 54, 55, 56, 57,
2887 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2888 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2889 11, 61, 200, 63, 12, 0, 13, 14, 15, 16,
2890 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2891 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2892 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2893 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2894 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2896 0, 0, 0, 0, 196, 0, 0, 197, 50, 0,
2897 51, 52, 0, 0, 0, 54, 55, 56, 57, 58,
2898 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2899 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2900 61, 62, 63, 12, 0, 13, 14, 15, 16, 17,
2901 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2902 23, 24, 25, 26, 0, 0, 194, 0, 0, 0,
2903 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2904 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
2905 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2907 0, 0, 0, 196, 0, 0, 197, 50, 0, 51,
2908 52, 0, 0, 0, 54, 55, 56, 57, 58, 59,
2909 60, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2910 6, 7, 0, 9, 0, 0, 0, 10, 11, 61,
2911 200, 63, 12, 0, 13, 14, 15, 231, 232, 18,
2912 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2913 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
2914 0, 0, 258, 0, 0, 32, 33, 34, 35, 36,
2915 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2916 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2918 0, 0, 259, 0, 0, 304, 50, 0, 51, 52,
2919 0, 305, 0, 54, 55, 56, 57, 58, 59, 60,
2920 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2921 0, 0, 10, 11, 0, 0, 0, 12, 260, 13,
2922 14, 15, 231, 232, 18, 19, 0, 0, 0, 0,
2923 0, 233, 234, 235, 23, 24, 25, 26, 0, 0,
2924 194, 0, 0, 0, 0, 0, 0, 258, 0, 0,
2925 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2926 41, 42, 0, 43, 44, 45, 0, 0, 0, 0,
2927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2928 0, 0, 0, 0, 0, 0, 0, 346, 0, 0,
2929 49, 50, 0, 51, 52, 0, 53, 0, 54, 55,
2930 56, 57, 58, 59, 60, 0, 0, 0, 0, 5,
2931 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
2932 0, 0, 12, 260, 13, 14, 15, 231, 232, 18,
2933 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2934 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
2935 0, 0, 258, 0, 0, 32, 33, 34, 354, 36,
2936 37, 38, 355, 40, 0, 41, 42, 0, 43, 44,
2937 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2938 0, 0, 0, 0, 0, 0, 0, 0, 0, 356,
2939 0, 0, 357, 0, 0, 197, 50, 0, 51, 52,
2940 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2941 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2942 0, 0, 10, 11, 0, 0, 0, 12, 260, 13,
2943 14, 15, 231, 232, 18, 19, 0, 0, 0, 0,
2944 0, 233, 234, 235, 23, 24, 25, 26, 0, 0,
2945 194, 0, 0, 0, 0, 0, 0, 258, 0, 0,
2946 32, 33, 34, 354, 36, 37, 38, 355, 40, 0,
2947 41, 42, 0, 43, 44, 45, 0, 0, 0, 0,
2948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2949 0, 0, 0, 0, 0, 0, 0, 357, 0, 0,
2950 197, 50, 0, 51, 52, 0, 0, 0, 54, 55,
2951 56, 57, 58, 59, 60, 0, 0, 0, 0, 5,
2952 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
2953 0, 0, 12, 260, 13, 14, 15, 231, 232, 18,
2954 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2955 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
2956 0, 0, 258, 0, 0, 32, 33, 34, 35, 36,
2957 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2958 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2959 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2960 0, 0, 259, 0, 0, 304, 50, 0, 51, 52,
2961 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2962 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2963 0, 0, 10, 11, 0, 0, 0, 12, 260, 13,
2964 14, 15, 231, 232, 18, 19, 0, 0, 0, 0,
2965 0, 233, 234, 235, 23, 24, 25, 26, 0, 0,
2966 194, 0, 0, 0, 0, 0, 0, 258, 0, 0,
2967 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2968 41, 42, 0, 43, 44, 45, 0, 0, 0, 0,
2969 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2970 0, 0, 0, 0, 0, 0, 0, 902, 0, 0,
2971 197, 50, 0, 51, 52, 0, 0, 0, 54, 55,
2972 56, 57, 58, 59, 60, 0, 0, 0, 0, 5,
2973 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
2974 0, 0, 12, 260, 13, 14, 15, 231, 232, 18,
2975 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2976 24, 25, 26, 0, 0, 194, 0, 663, 0, 0,
2977 0, 0, 258, 0, 0, 32, 33, 34, 35, 36,
2978 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2979 45, 308, 309, 310, 311, 312, 313, 314, 315, 316,
2980 317, 318, 319, 320, 0, 0, 321, 322, 0, 0,
2981 0, 0, 912, 0, 0, 197, 50, 0, 51, 52,
2982 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2983 0, 0, 0, 323, 0, 324, 325, 326, 327, 328,
2984 329, 330, 331, 332, 333, 0, 0, 0, 260, 0,
2985 525, 526, 0, 0, 527, 0, 0, 0, 0, 0,
2986 0, 0, 0, -241, 157, 158, 159, 160, 161, 162,
2987 163, 164, 165, 0, 0, 166, 167, 0, 0, 168,
2988 169, 170, 171, 0, 0, 0, 0, 0, 0, 0,
2989 0, 0, 0, 172, 0, 0, 0, 0, 0, 0,
2990 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2991 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
2992 0, 183, 184, 0, 0, 0, 0, 533, 534, 0,
2993 0, 535, 0, 0, 0, 0, 0, 0, 0, 185,
2994 220, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2995 0, 0, 166, 167, 0, 0, 168, 169, 170, 171,
2996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2997 172, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2998 0, 0, 0, 0, 0, 0, 0, 173, 174, 175,
2999 176, 177, 178, 179, 180, 181, 182, 0, 183, 184,
3000 0, 0, 0, 0, 591, 526, 0, 0, 592, 0,
3001 0, 0, 0, 0, 0, 0, 185, 220, 157, 158,
3002 159, 160, 161, 162, 163, 164, 165, 0, 0, 166,
3003 167, 0, 0, 168, 169, 170, 171, 0, 0, 0,
3004 0, 0, 0, 0, 0, 0, 0, 172, 0, 0,
3005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3006 0, 0, 0, 0, 173, 174, 175, 176, 177, 178,
3007 179, 180, 181, 182, 0, 183, 184, 0, 0, 0,
3008 0, 594, 534, 0, 0, 595, 0, 0, 0, 0,
3009 0, 0, 0, 185, 220, 157, 158, 159, 160, 161,
3010 162, 163, 164, 165, 0, 0, 166, 167, 0, 0,
3011 168, 169, 170, 171, 0, 0, 0, 0, 0, 0,
3012 0, 0, 0, 0, 172, 0, 0, 0, 0, 0,
3013 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3014 0, 173, 174, 175, 176, 177, 178, 179, 180, 181,
3015 182, 0, 183, 184, 0, 0, 0, 0, 617, 526,
3016 0, 0, 618, 0, 0, 0, 0, 0, 0, 0,
3017 185, 220, 157, 158, 159, 160, 161, 162, 163, 164,
3018 165, 0, 0, 166, 167, 0, 0, 168, 169, 170,
3019 171, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3020 0, 172, 0, 0, 0, 0, 0, 0, 0, 0,
3021 0, 0, 0, 0, 0, 0, 0, 0, 173, 174,
3022 175, 176, 177, 178, 179, 180, 181, 182, 0, 183,
3023 184, 0, 0, 0, 0, 620, 534, 0, 0, 621,
3024 0, 0, 0, 0, 0, 0, 0, 185, 220, 157,
3025 158, 159, 160, 161, 162, 163, 164, 165, 0, 0,
3026 166, 167, 0, 0, 168, 169, 170, 171, 0, 0,
3027 0, 0, 0, 0, 0, 0, 0, 0, 172, 0,
3028 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3029 0, 0, 0, 0, 0, 173, 174, 175, 176, 177,
3030 178, 179, 180, 181, 182, 0, 183, 184, 0, 0,
3031 0, 0, 692, 526, 0, 0, 693, 0, 0, 0,
3032 0, 0, 0, 0, 185, 220, 157, 158, 159, 160,
3033 161, 162, 163, 164, 165, 0, 0, 166, 167, 0,
3034 0, 168, 169, 170, 171, 0, 0, 0, 0, 0,
3035 0, 0, 0, 0, 0, 172, 0, 0, 0, 0,
3036 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3037 0, 0, 173, 174, 175, 176, 177, 178, 179, 180,
3038 181, 182, 0, 183, 184, 0, 0, 0, 0, 695,
3039 534, 0, 0, 696, 0, 0, 0, 0, 0, 0,
3040 0, 185, 220, 157, 158, 159, 160, 161, 162, 163,
3041 164, 165, 0, 0, 166, 167, 0, 0, 168, 169,
3042 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
3043 0, 0, 172, 0, 0, 0, 0, 0, 0, 0,
3044 0, 0, 0, 0, 0, 0, 0, 0, 0, 173,
3045 174, 175, 176, 177, 178, 179, 180, 181, 182, 0,
3046 183, 184, 0, 0, 0, 0, 702, 526, 0, 0,
3047 703, 0, 0, 0, 0, 0, 0, 0, 185, 220,
3048 157, 158, 159, 160, 161, 162, 163, 164, 165, 0,
3049 0, 166, 167, 0, 0, 168, 169, 170, 171, 0,
3050 0, 0, 0, 0, 0, 0, 0, 0, 0, 172,
3051 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3052 0, 0, 0, 0, 0, 0, 173, 174, 175, 176,
3053 177, 178, 179, 180, 181, 182, 0, 183, 184, 0,
3054 0, 0, 0, 572, 534, 0, 0, 573, 0, 0,
3055 0, 0, 0, 0, 0, 185, 220, 157, 158, 159,
3056 160, 161, 162, 163, 164, 165, 0, 0, 166, 167,
3057 0, 0, 168, 169, 170, 171, 0, 0, 0, 0,
3058 0, 0, 0, 0, 0, 0, 172, 0, 0, 0,
3059 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3060 0, 0, 0, 173, 174, 175, 176, 177, 178, 179,
3061 180, 181, 182, 0, 183, 184, 0, 0, 0, 0,
3062 965, 526, 0, 0, 966, 0, 0, 0, 0, 0,
3063 0, 0, 185, 220, 157, 158, 159, 160, 161, 162,
3064 163, 164, 165, 0, 0, 166, 167, 0, 0, 168,
3065 169, 170, 171, 0, 0, 0, 0, 0, 0, 0,
3066 0, 0, 0, 172, 0, 0, 0, 0, 0, 0,
3067 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3068 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
3069 0, 183, 184, 0, 0, 0, 0, 971, 526, 0,
3070 0, 972, 0, 0, 0, 0, 0, 0, 0, 185,
3071 220, 157, 158, 159, 160, 161, 162, 163, 164, 165,
3072 0, 0, 166, 167, 0, 0, 168, 169, 170, 171,
3073 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3074 172, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3075 0, 0, 0, 0, 0, 0, 0, 173, 174, 175,
3076 176, 177, 178, 179, 180, 181, 182, 0, 183, 184,
3077 0, 0, 0, 0, 974, 534, 0, 0, 975, 0,
3078 0, 0, 0, 0, 0, 0, 185, 220, 157, 158,
3079 159, 160, 161, 162, 163, 164, 165, 0, 0, 166,
3080 167, 0, 0, 168, 169, 170, 171, 0, 0, 0,
3081 0, 0, 0, 0, 0, 0, 0, 172, 0, 0,
3082 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3083 0, 0, 0, 0, 173, 174, 175, 176, 177, 178,
3084 179, 180, 181, 182, 0, 183, 184, 0, 0, 0,
3085 0, 572, 534, 0, 0, 573, 0, 0, 0, 0,
3086 0, 0, 0, 185, 220, 157, 158, 159, 160, 161,
3087 162, 163, 164, 165, 0, 0, 166, 167, 0, 0,
3088 168, 169, 170, 171, 0, 0, 0, 0, 0, 0,
3089 0, 0, 0, 0, 172, 0, 0, 0, 0, 0,
3090 0, 0, 718, 0, 0, 0, 0, 0, 0, 0,
3091 0, 173, 174, 175, 176, 177, 178, 179, 180, 181,
3092 182, 663, 183, 184, 0, 0, 308, 309, 310, 311,
3093 312, 313, 314, 315, 316, 317, 318, 319, 320, 0,
3094 185, 321, 322, 0, 0, 308, 309, 310, 311, 312,
3095 313, 314, 315, 316, 317, 318, 319, 320, 0, 0,
3096 321, 322, 0, 0, 0, 0, 0, 0, 323, 0,
3097 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
3098 0, 0, 0, 0, 0, 0, 0, 323, 0, 324,
3099 325, 326, 327, 328, 329, 330, 331, 332, 333
3104 2, 55, 340, 28, 2, 454, 4, 52, 593, 16,
3105 17, 335, 307, 20, 307, 8, 547, 213, 16, 17,
3106 8, 566, 20, 27, 53, 29, 84, 22, 8, 87,
3107 546, 87, 4, 22, 619, 28, 49, 91, 252, 76,
3108 28, 2, 256, 4, 404, 357, 1, 65, 28, 51,
3109 52, 49, 50, 749, 450, 53, 746, 13, 334, 627,
3110 336, 53, 680, 25, 62, 762, 684, 454, 13, 16,
3111 17, 65, 26, 20, 396, 55, 400, 26, 76, 25,
3112 440, 0, 404, 27, 76, 83, 84, 576, 577, 87,
3113 88, 89, 90, 87, 490, 29, 88, 89, 90, 13,
3114 242, 25, 378, 379, 51, 851, 828, 85, 76, 694,
3115 136, 91, 87, 16, 17, 110, 147, 20, 85, 568,
3116 705, 110, 146, 399, 25, 401, 85, 653, 452, 61,
3117 87, 16, 17, 62, 109, 20, 276, 25, 278, 56,
3118 280, 13, 742, 37, 38, 87, 114, 109, 51, 52,
3119 195, 427, 109, 198, 199, 826, 701, 28, 113, 849,
3120 138, 139, 304, 763, 709, 140, 25, 109, 736, 737,
3121 25, 13, 139, 107, 106, 146, 13, 453, 140, 138,
3122 139, 143, 136, 632, 140, 147, 109, 136, 244, 145,
3123 145, 147, 147, 142, 140, 941, 892, 142, 140, 197,
3124 145, 145, 147, 147, 653, 207, 896, 904, 930, 140,
3125 217, 213, 219, 220, 25, 886, 140, 413, 220, 217,
3126 746, 219, 220, 749, 261, 223, 244, 225, 552, 242,
3127 719, 145, 230, 147, 50, 293, 294, 295, 296, 140,
3128 564, 601, 142, 241, 242, 632, 235, 147, 109, 238,
3129 244, 563, 140, 147, 258, 873, 99, 302, 826, 708,
3130 828, 932, 307, 261, 25, 661, 87, 83, 84, 261,
3131 217, 87, 219, 145, 140, 147, 305, 553, 600, 601,
3132 241, 140, 25, 341, 342, 140, 25, 343, 959, 565,
3133 806, 304, 85, 87, 292, 293, 294, 295, 296, 297,
3134 298, 299, 85, 145, 302, 147, 304, 305, 145, 307,
3135 147, 59, 60, 305, 217, 109, 219, 26, 886, 887,
3136 292, 708, 109, 849, 142, 851, 49, 467, 335, 140,
3137 875, 292, 217, 335, 219, 56, 297, 335, 145, 337,
3138 147, 87, 873, 341, 342, 138, 139, 336, 88, 343,
3139 395, 396, 690, 140, 334, 302, 139, 26, 356, 404,
3140 307, 140, 930, 109, 932, 359, 892, 85, 147, 662,
3141 109, 85, 109, 302, 61, 26, 85, 140, 307, 140,
3142 15, 142, 17, 928, 679, 87, 384, 385, 973, 85,
3143 85, 959, 437, 400, 590, 440, 421, 140, 400, 142,
3144 614, 140, 400, 85, 143, 140, 85, 223, 147, 225,
3145 412, 413, 401, 450, 142, 941, 85, 104, 105, 399,
3146 138, 139, 424, 136, 142, 139, 424, 136, 421, 138,
3147 139, 880, 85, 421, 85, 433, 85, 142, 427, 484,
3148 140, 421, 138, 139, 139, 452, 426, 147, 85, 142,
3149 452, 85, 450, 490, 452, 384, 385, 139, 450, 146,
3150 139, 85, 822, 424, 453, 68, 85, 136, 85, 138,
3151 139, 451, 433, 142, 197, 87, 85, 293, 294, 295,
3152 296, 483, 298, 299, 68, 136, 139, 138, 139, 138,
3153 139, 142, 490, 396, 85, 37, 38, 109, 490, 668,
3154 822, 223, 139, 548, 138, 139, 675, 230, 109, 52,
3155 514, 54, 55, 56, 57, 139, 119, 120, 121, 242,
3156 139, 138, 139, 861, 246, 341, 342, 143, 532, 867,
3157 139, 26, 728, 52, 437, 530, 538, 56, 540, 85,
3158 356, 530, 587, 538, 542, 552, 544, 138, 139, 538,
3159 552, 545, 546, 56, 552, 600, 601, 564, 85, 584,
3160 59, 60, 564, 144, 553, 559, 564, 137, 566, 567,
3161 106, 551, 574, 575, 576, 577, 565, 87, 615, 574,
3162 575, 304, 140, 563, 106, 574, 575, 87, 590, 593,
3163 85, 584, 138, 139, 87, 85, 584, 140, 68, 109,
3164 68, 548, 14, 15, 584, 85, 604, 609, 85, 109,
3165 140, 138, 139, 658, 17, 619, 109, 615, 56, 608,
3166 609, 574, 575, 615, 661, 145, 25, 951, 52, 94,
3167 54, 55, 56, 57, 679, 143, 638, 146, 640, 697,
3168 642, 136, 700, 138, 139, 137, 140, 142, 138, 139,
3169 52, 653, 54, 55, 56, 57, 654, 711, 138, 139,
3170 10, 138, 139, 661, 662, 89, 61, 665, 666, 661,
3171 65, 95, 96, 671, 672, 109, 952, 679, 680, 140,
3172 682, 140, 684, 140, 406, 140, 140, 89, 410, 734,
3173 694, 140, 116, 415, 96, 119, 8, 600, 13, 697,
3174 87, 705, 700, 701, 698, 61, 87, 137, 430, 104,
3175 105, 709, 109, 435, 116, 54, 710, 719, 716, 717,
3176 140, 145, 109, 140, 63, 64, 728, 772, 109, 140,
3177 68, 711, 679, 662, 87, 52, 665, 666, 796, 52,
3178 742, 111, 671, 672, 140, 743, 744, 87, 104, 105,
3179 106, 567, 144, 140, 549, 15, 109, 755, 803, 140,
3180 2, 763, 4, 765, 87, 767, 768, 489, 52, 109,
3181 54, 55, 56, 57, 16, 17, 140, 822, 20, 117,
3182 118, 119, 120, 121, 145, 783, 109, 140, 604, 791,
3183 109, 140, 794, 114, 140, 793, 140, 140, 796, 10,
3184 140, 88, 800, 801, 140, 9, 804, 49, 50, 10,
3185 137, 140, 806, 10, 808, 61, 140, 140, 140, 542,
3186 62, 544, 820, 137, 140, 114, 52, 137, 54, 55,
3187 56, 57, 834, 835, 140, 837, 68, 839, 840, 140,
3188 140, 83, 84, 137, 842, 87, 56, 140, 140, 68,
3189 842, 83, 84, 56, 783, 140, 140, 140, 104, 105,
3190 106, 140, 860, 89, 83, 84, 864, 140, 860, 95,
3191 96, 873, 142, 142, 61, 140, 424, 875, 90, 88,
3192 61, 697, 954, 736, 700, 117, 118, 119, 120, 121,
3193 116, 93, 904, 119, 689, 114, 115, 116, 117, 118,
3194 119, 120, 121, 953, 906, 907, 908, 96, 910, 911,
3195 640, 706, 642, 57, 91, 880, 142, 104, 105, 106,
3196 918, 849, 920, 104, 105, 106, 653, 746, 926, -1,
3197 928, 654, 934, 935, 936, 937, 52, -1, 54, 55,
3198 56, 57, -1, -1, 951, -1, -1, 54, 55, 951,
3199 57, 953, 954, 951, -1, 197, 63, 64, -1, 939,
3200 -1, -1, -1, 952, -1, 967, 968, 969, 970, 973,
3201 950, -1, -1, 89, -1, 217, -1, 219, 220, 981,
3202 796, 223, -1, 225, -1, 707, -1, 989, 230, -1,
3203 -1, -1, -1, 716, 717, 68, -1, -1, -1, 241,
3204 242, -1, 797, -1, 799, -1, -1, 729, -1, -1,
3205 83, 84, -1, -1, 809, -1, -1, -1, 740, 814,
3206 743, 744, 749, -1, 52, 752, 54, 55, 56, 57,
3207 -1, -1, 755, -1, -1, 765, -1, 767, 768, -1,
3208 -1, -1, -1, 116, 117, 118, 119, 120, 121, -1,
3209 292, 293, 294, 295, 296, 297, 298, 299, -1, -1,
3210 302, 89, 304, -1, -1, 307, -1, 95, -1, 52,
3211 793, 54, 55, 56, 57, 870, 871, 800, 801, -1,
3212 -1, 804, 16, 17, -1, -1, 20, -1, -1, -1,
3213 -1, 813, -1, 335, -1, 337, -1, 820, -1, 341,
3214 342, -1, -1, 825, 834, 835, -1, 837, 830, 839,
3215 840, -1, 46, 47, 356, -1, -1, 51, 52, -1,
3216 -1, -1, -1, -1, 851, -1, 853, -1, 62, 63,
3217 -1, 52, 927, 54, 55, 56, 57, -1, -1, -1,
3218 -1, 864, 384, 385, 40, 41, 42, 43, 44, -1,
3219 -1, -1, -1, -1, -1, -1, -1, -1, 400, -1,
3220 955, -1, 957, -1, -1, 892, -1, 894, 89, -1,
3221 -1, 898, -1, -1, 95, -1, 906, 907, 908, -1,
3222 910, 911, 424, 52, -1, 54, 55, 56, 57, -1,
3223 -1, 433, -1, -1, -1, 918, -1, 920, -1, -1,
3224 -1, -1, -1, 926, 934, 935, 936, 937, -1, -1,
3225 452, -1, -1, -1, 941, -1, 943, -1, -1, 946,
3226 89, -1, -1, -1, -1, -1, 95, 96, -1, -1,
3227 -1, -1, -1, -1, 961, -1, -1, 967, 968, 969,
3228 970, -1, -1, -1, -1, -1, -1, 116, -1, -1,
3229 119, 981, -1, -1, -1, -1, 983, -1, -1, 989,
3230 -1, 195, -1, -1, 198, 199, 200, -1, -1, -1,
3231 2, -1, 4, 142, -1, 52, -1, 54, 55, 56,
3232 57, -1, -1, 217, -1, 219, 220, -1, -1, -1,
3233 -1, 2, -1, 4, -1, -1, -1, -1, -1, -1,
3234 542, -1, 544, 52, -1, 54, 55, 56, 57, -1,
3235 552, -1, 89, -1, -1, -1, -1, 49, 95, 96,
3236 -1, 53, 564, -1, 566, 567, -1, -1, -1, -1,
3237 -1, -1, -1, -1, -1, -1, -1, -1, 49, 116,
3238 89, -1, 119, -1, 76, -1, 95, 96, -1, -1,
3239 -1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
3240 -1, -1, 604, -1, -1, -1, -1, 116, 302, -1,
3241 119, -1, -1, 307, 308, 309, 310, 311, 312, 313,
3242 314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
3243 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
3244 -1, 335, -1, -1, -1, -1, -1, -1, -1, -1,
3245 -1, -1, 654, -1, -1, -1, -1, -1, -1, -1,
3246 662, -1, -1, 665, 666, -1, -1, -1, -1, 671,
3247 672, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3248 76, 77, 78, 79, 80, -1, -1, 83, 84, -1,
3249 384, 385, -1, -1, -1, 697, -1, -1, 700, 701,
3250 394, 395, 396, -1, -1, 197, 400, 709, 402, 403,
3251 404, -1, -1, -1, 716, 717, 112, 113, 114, 115,
3252 116, 117, 118, 119, 120, 121, 197, -1, -1, 423,
3253 -1, -1, -1, -1, 428, -1, -1, -1, 230, -1,
3254 -1, 743, 744, 437, -1, -1, 440, -1, -1, 241,
3255 242, -1, -1, 755, -1, -1, -1, -1, 452, 230,
3256 -1, -1, -1, -1, -1, -1, -1, -1, -1, 261,
3257 241, 242, -1, -1, -1, -1, -1, -1, 472, 473,
3258 -1, 783, -1, -1, -1, -1, -1, -1, -1, -1,
3259 484, 793, -1, -1, 796, -1, -1, -1, 800, 801,
3260 292, -1, 804, -1, -1, 297, -1, -1, -1, -1,
3261 -1, -1, 304, 305, -1, -1, -1, 2, 820, 4,
3262 -1, 292, -1, -1, -1, -1, 297, -1, -1, -1,
3263 -1, -1, -1, 304, -1, -1, -1, -1, -1, -1,
3264 -1, -1, -1, -1, -1, 337, -1, 2, -1, 4,
3265 -1, -1, -1, -1, 548, -1, -1, -1, 552, -1,
3266 -1, -1, 864, -1, 49, 2, 337, 4, 53, -1,
3267 564, -1, -1, 875, -1, -1, -1, -1, -1, -1,
3268 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3269 -1, 76, -1, 587, 49, -1, -1, -1, 53, -1,
3270 -1, -1, -1, 88, 89, 90, 600, 601, -1, -1,
3271 -1, -1, 49, -1, -1, -1, 918, -1, 920, -1,
3272 -1, 76, -1, -1, 926, -1, 928, -1, -1, -1,
3273 -1, -1, 424, 88, 89, 90, 91, -1, -1, -1,
3274 -1, 433, -1, -1, -1, -1, -1, -1, -1, 951,
3275 -1, 88, -1, 424, -1, -1, -1, -1, 450, -1,
3276 -1, -1, 433, -1, 658, -1, -1, -1, 662, 663,
3277 -1, 665, 666, -1, -1, -1, -1, 671, 672, 0,
3278 -1, -1, -1, -1, -1, 679, -1, 8, 9, 10,
3279 -1, -1, 13, 14, 15, -1, 17, -1, 490, -1,
3280 -1, -1, -1, -1, -1, -1, 27, -1, -1, -1,
3281 -1, -1, 197, -1, -1, -1, 37, 38, -1, 40,
3282 41, 42, 43, 44, 718, -1, -1, -1, -1, 723,
3283 724, -1, 726, 727, -1, -1, -1, -1, -1, -1,
3284 734, -1, 197, -1, -1, 230, -1, -1, -1, -1,
3285 542, -1, 544, -1, -1, -1, 241, 242, -1, -1,
3286 197, -1, -1, -1, 85, -1, -1, -1, -1, -1,
3287 -1, 542, -1, 544, 566, 230, 261, -1, 772, -1,
3288 -1, -1, 776, -1, -1, -1, 241, 242, -1, 783,
3289 -1, -1, -1, 230, -1, 566, -1, -1, -1, -1,
3290 -1, -1, -1, -1, 241, 242, 261, 292, -1, 803,
3291 -1, -1, 297, -1, -1, -1, 137, -1, 139, 304,
3292 305, 142, 143, 615, 145, -1, 147, 821, 822, -1,
3293 -1, -1, -1, -1, -1, -1, -1, 292, -1, -1,
3294 -1, -1, 297, -1, -1, -1, -1, -1, -1, 304,
3295 305, -1, 337, -1, -1, 292, -1, -1, -1, -1,
3296 297, -1, 654, -1, -1, -1, -1, 304, -1, 661,
3297 307, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3298 -1, -1, 337, 654, -1, -1, -1, -1, -1, -1,
3299 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3300 337, -1, -1, -1, -1, -1, -1, -1, -1, 701,
3301 -1, -1, -1, -1, -1, -1, -1, 709, -1, -1,
3302 -1, -1, -1, -1, 716, 717, -1, -1, -1, -1,
3303 701, -1, -1, -1, -1, -1, -1, -1, 709, 424,
3304 -1, -1, -1, -1, -1, 716, 717, -1, 433, -1,
3305 -1, 743, 744, -1, -1, -1, -1, 951, -1, -1,
3306 -1, -1, -1, 755, -1, 450, -1, -1, -1, 424,
3307 -1, -1, 743, 744, -1, -1, -1, -1, 433, -1,
3308 -1, -1, -1, -1, 755, -1, -1, 424, -1, -1,
3309 -1, -1, -1, -1, -1, 450, 433, -1, -1, -1,
3310 -1, 793, -1, -1, -1, 490, -1, -1, 800, 801,
3311 -1, -1, 804, -1, -1, -1, -1, -1, -1, -1,
3312 -1, -1, 793, -1, -1, -1, -1, -1, 820, 800,
3313 801, -1, -1, 804, -1, 490, -1, -1, -1, -1,
3314 -1, -1, -1, -1, -1, -1, -1, -1, -1, 820,
3315 842, -1, -1, -1, -1, -1, -1, 542, -1, 544,
3316 -1, -1, -1, -1, -1, -1, -1, -1, 860, -1,
3317 -1, -1, 864, -1, -1, -1, -1, -1, -1, -1,
3318 -1, 566, -1, 875, -1, -1, -1, 542, -1, 544,
3319 -1, -1, -1, 864, -1, -1, -1, -1, -1, -1,
3320 -1, -1, -1, -1, 875, 542, -1, 544, -1, -1,
3321 -1, 566, -1, -1, -1, -1, -1, -1, -1, -1,
3322 -1, -1, -1, -1, -1, -1, 918, -1, 920, 566,
3323 615, -1, -1, -1, 926, -1, 928, -1, -1, -1,
3324 -1, -1, -1, -1, -1, -1, -1, 918, -1, 920,
3325 -1, -1, -1, -1, -1, 926, -1, 928, -1, -1,
3326 615, 646, -1, -1, -1, -1, -1, -1, -1, 654,
3327 -1, -1, -1, -1, -1, -1, 661, -1, -1, -1,
3328 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3329 -1, -1, 68, 69, 70, 71, 72, 73, 74, 654,
3330 -1, 77, 78, -1, -1, -1, 661, 83, 84, -1,
3331 -1, -1, -1, -1, -1, -1, 701, 654, -1, -1,
3332 -1, -1, -1, -1, 709, 662, -1, -1, -1, -1,
3333 -1, 716, 717, -1, -1, -1, 112, 113, 114, 115,
3334 116, 117, 118, 119, 120, 121, 701, -1, -1, -1,
3335 -1, -1, -1, -1, 709, -1, -1, -1, 743, 744,
3336 -1, 716, 717, -1, 701, -1, -1, -1, -1, -1,
3337 755, -1, 709, -1, -1, -1, -1, -1, -1, 716,
3338 717, 68, 69, 70, 71, 72, 73, 74, 743, 744,
3339 77, 78, -1, -1, -1, -1, 83, 84, -1, -1,
3340 755, -1, -1, -1, -1, -1, 743, 744, 793, -1,
3341 -1, -1, -1, -1, -1, 800, 801, -1, 755, 804,
3342 -1, -1, -1, -1, -1, 112, 113, 114, 115, 116,
3343 117, 118, 119, 120, 121, 820, -1, -1, 793, -1,
3344 -1, -1, -1, -1, -1, 800, 801, -1, -1, 804,
3345 -1, -1, -1, -1, -1, -1, 793, 842, -1, -1,
3346 -1, -1, -1, 800, 801, 820, -1, 804, -1, -1,
3347 -1, -1, -1, -1, -1, 860, -1, -1, -1, 864,
3348 -1, -1, -1, 820, -1, -1, -1, 842, -1, -1,
3349 875, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3350 -1, -1, -1, -1, -1, 860, -1, -1, -1, 864,
3351 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3352 875, -1, -1, 860, -1, -1, -1, 864, -1, -1,
3353 -1, -1, -1, 918, -1, 920, -1, -1, 875, -1,
3354 -1, 926, -1, 928, -1, -1, -1, -1, -1, -1,
3355 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3356 -1, -1, -1, 918, -1, 920, -1, -1, -1, -1,
3357 -1, 926, -1, 928, -1, -1, -1, -1, -1, -1,
3358 -1, 918, -1, 920, -1, -1, -1, -1, -1, 926,
3359 -1, 928, 0, 1, -1, 3, 4, 5, 6, 7,
3360 -1, -1, -1, 11, 12, -1, -1, -1, 16, -1,
3361 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3362 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3363 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3364 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3365 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3366 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3367 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3368 -1, 89, 90, -1, 92, 93, -1, 95, -1, 97,
3369 98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
3370 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3371 -1, -1, -1, 0, 122, 123, 124, -1, -1, -1,
3372 -1, 8, 9, 10, -1, -1, 13, 14, 15, -1,
3373 17, -1, -1, -1, -1, -1, -1, 145, -1, 147,
3374 27, 28, 29, -1, -1, -1, -1, -1, -1, -1,
3375 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3376 -1, -1, -1, -1, 68, 69, 70, 71, 72, 73,
3377 74, 75, 76, 77, 78, 79, 80, -1, -1, 83,
3378 84, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3379 77, 78, 79, 80, -1, -1, 83, 84, 85, -1,
3380 87, 88, -1, -1, -1, -1, 110, 94, 112, 113,
3381 114, 115, 116, 117, 118, 119, 120, 121, -1, -1,
3382 107, -1, 109, 110, 111, 112, 113, 114, 115, 116,
3383 117, 118, 119, 120, 121, -1, -1, -1, -1, -1,
3384 -1, -1, -1, 147, -1, -1, -1, -1, -1, -1,
3385 137, 138, 139, 140, 0, -1, 143, 144, 145, -1,
3386 147, -1, 8, 9, 10, -1, -1, 13, 14, 15,
3387 -1, 17, -1, -1, -1, -1, -1, -1, -1, -1,
3388 26, 27, 28, -1, -1, -1, -1, -1, -1, -1,
3389 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3390 -1, -1, -1, -1, -1, 68, 69, 70, 71, 72,
3391 73, 74, 75, 76, 77, 78, 79, 80, -1, -1,
3392 83, 84, 68, 69, 70, 71, 72, 73, 74, 75,
3393 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3394 -1, -1, 88, -1, -1, -1, -1, 110, 94, 112,
3395 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
3396 -1, -1, -1, -1, 110, -1, 112, 113, 114, 115,
3397 116, 117, 118, 119, 120, 121, -1, -1, -1, -1,
3398 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3399 136, 137, 138, 139, 140, 0, 142, 143, 144, 145,
3400 -1, 147, -1, 8, 9, 10, -1, -1, 13, 14,
3401 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3402 -1, -1, 27, 28, 29, -1, -1, -1, -1, -1,
3403 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3404 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
3405 72, 73, 74, 75, -1, 77, 78, -1, -1, -1,
3406 -1, 83, 84, 68, 69, 70, 71, 72, 73, 74,
3407 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3408 85, -1, -1, 88, -1, -1, -1, -1, -1, 94,
3409 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3410 -1, -1, 107, -1, -1, 110, 111, 112, 113, 114,
3411 115, 116, 117, 118, 119, 120, 121, -1, -1, -1,
3412 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3413 -1, -1, 137, 138, 139, 140, 0, -1, 143, 144,
3414 145, -1, 147, -1, 8, 9, 10, -1, -1, 13,
3415 14, 15, -1, 17, -1, -1, -1, -1, -1, -1,
3416 -1, -1, 26, 27, 28, -1, -1, -1, -1, -1,
3417 -1, -1, -1, 37, 38, -1, 40, 41, 42, 43,
3418 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3419 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3420 -1, -1, -1, -1, 68, 69, 70, 71, 72, 73,
3421 74, 75, 76, 77, 78, 79, 80, -1, -1, 83,
3422 84, 85, -1, -1, 88, -1, -1, -1, -1, -1,
3423 94, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3424 -1, -1, -1, -1, -1, -1, 110, -1, 112, 113,
3425 114, 115, 116, 117, 118, 119, 120, 121, -1, -1,
3426 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3427 -1, -1, 136, 137, 138, 139, 140, 0, 142, 143,
3428 144, 145, -1, 147, -1, 8, 9, 10, -1, -1,
3429 13, 14, 15, -1, 17, -1, -1, -1, -1, -1,
3430 -1, -1, -1, -1, 27, 28, -1, -1, -1, -1,
3431 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
3432 43, 44, -1, -1, -1, -1, -1, -1, -1, -1,
3433 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3434 -1, -1, -1, -1, -1, 68, 69, 70, 71, 72,
3435 73, 74, 75, 76, 77, 78, 79, 80, -1, -1,
3436 83, 84, 85, -1, -1, 88, -1, -1, -1, -1,
3437 -1, 94, -1, -1, -1, -1, -1, -1, -1, -1,
3438 -1, -1, -1, -1, -1, -1, -1, 110, -1, 112,
3439 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
3440 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3441 -1, -1, -1, -1, 137, 138, 139, 140, 0, 142,
3442 143, 144, 145, -1, 147, -1, 8, 9, 10, -1,
3443 -1, -1, 14, 15, -1, 17, -1, -1, -1, -1,
3444 -1, -1, -1, -1, 26, -1, -1, -1, -1, -1,
3445 -1, -1, -1, -1, -1, 37, 38, -1, 40, 41,
3446 42, 43, 44, -1, -1, -1, -1, -1, -1, -1,
3447 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3448 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
3449 72, 73, 74, 75, 76, 77, 78, 79, 80, -1,
3450 -1, 83, 84, 85, 0, 87, -1, -1, -1, -1,
3451 -1, -1, 8, 9, 10, -1, -1, -1, 14, 15,
3452 -1, 17, -1, -1, -1, -1, -1, 109, 110, -1,
3453 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3454 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3455 -1, -1, -1, -1, 136, 137, 138, 139, 140, -1,
3456 -1, 143, -1, 145, -1, 147, -1, -1, -1, -1,
3457 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3458 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3459 -1, 87, -1, -1, -1, -1, -1, -1, -1, -1,
3460 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3461 -1, -1, -1, 109, 110, -1, 112, 113, 114, 115,
3462 116, 117, 118, 119, 120, 121, -1, -1, -1, -1,
3463 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3464 -1, 137, 138, 139, 140, -1, -1, 143, -1, 145,
3465 1, 147, 3, 4, 5, 6, 7, 8, 9, 10,
3466 11, 12, -1, -1, 15, 16, -1, 18, 19, 20,
3467 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3468 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3469 -1, -1, -1, -1, 45, 46, -1, 48, 49, 50,
3470 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3471 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3472 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3473 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3474 -1, 92, 93, -1, 95, -1, 97, 98, 99, 100,
3475 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3476 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3477 -1, 122, 123, 124, -1, -1, -1, -1, -1, -1,
3478 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3479 -1, -1, -1, -1, 145, 1, 147, 3, 4, 5,
3480 6, 7, -1, -1, 10, 11, 12, -1, 14, 15,
3481 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3482 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3483 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3484 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3485 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3486 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3487 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3488 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3489 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3490 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3491 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3492 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3493 -1, -1, -1, -1, -1, -1, -1, -1, -1, 145,
3494 1, 147, 3, 4, 5, 6, 7, -1, -1, 10,
3495 11, 12, -1, -1, 15, 16, 17, 18, 19, 20,
3496 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3497 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3498 -1, -1, -1, -1, 45, 46, -1, 48, 49, 50,
3499 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3500 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3501 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3502 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3503 -1, 92, 93, -1, 95, -1, 97, 98, 99, 100,
3504 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3505 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3506 -1, 122, 123, 124, -1, -1, -1, -1, -1, -1,
3507 1, -1, 3, 4, 5, 6, 7, -1, -1, -1,
3508 11, 12, -1, -1, 145, 16, 147, 18, 19, 20,
3509 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3510 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3511 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
3512 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3513 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3514 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3515 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3516 -1, 92, 93, -1, 95, -1, 97, 98, 99, 100,
3517 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3518 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3519 -1, 122, 123, 124, -1, -1, -1, -1, -1, -1,
3520 -1, -1, -1, -1, -1, -1, 137, -1, -1, -1,
3521 -1, -1, -1, -1, 145, 1, 147, 3, 4, 5,
3522 6, 7, -1, -1, 10, 11, 12, -1, -1, 15,
3523 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3524 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3525 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3526 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3527 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3528 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3529 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3530 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3531 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3532 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3533 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3534 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
3535 6, 7, -1, 9, 10, 11, 12, -1, -1, 145,
3536 16, 147, 18, 19, 20, 21, 22, 23, 24, -1,
3537 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3538 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3539 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3540 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3541 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3542 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3543 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3544 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3545 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3546 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3547 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
3548 6, 7, -1, -1, -1, 11, 12, -1, -1, 145,
3549 16, 147, 18, 19, 20, 21, 22, 23, 24, -1,
3550 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3551 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3552 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3553 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3554 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3555 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3556 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3557 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3558 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3559 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3560 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
3561 6, 7, -1, -1, -1, 11, 12, 143, -1, 145,
3562 16, 147, 18, 19, 20, 21, 22, 23, 24, -1,
3563 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3564 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3565 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3566 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3567 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3568 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3569 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3570 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3571 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3572 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3573 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
3574 6, 7, -1, -1, -1, 11, 12, 143, -1, 145,
3575 16, 147, 18, 19, 20, 21, 22, 23, 24, -1,
3576 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3577 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3578 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3579 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3580 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3581 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3582 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3583 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3584 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3585 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3586 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3587 -1, 137, -1, -1, -1, -1, -1, -1, -1, 145,
3588 1, 147, 3, 4, 5, 6, 7, -1, -1, 10,
3589 11, 12, -1, -1, -1, 16, -1, 18, 19, 20,
3590 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3591 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3592 -1, -1, -1, -1, 45, 46, -1, 48, 49, 50,
3593 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3594 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3595 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3596 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3597 -1, 92, 93, -1, 95, -1, 97, 98, 99, 100,
3598 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3599 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3600 -1, 122, 123, 124, -1, -1, -1, -1, -1, -1,
3601 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3602 11, 12, -1, -1, 145, 16, 147, 18, 19, 20,
3603 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3604 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3605 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3606 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3607 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3608 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3609 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3610 -1, 92, 93, -1, 95, 96, 97, 98, 99, 100,
3611 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3612 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3613 12, 122, 123, 124, 16, -1, 18, 19, 20, 21,
3614 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3615 32, 33, 34, 35, 36, -1, 147, 39, -1, -1,
3616 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3617 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3618 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3619 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3620 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3621 92, 93, -1, -1, -1, 97, 98, 99, 100, 101,
3622 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3623 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3624 122, 123, 124, -1, -1, -1, -1, -1, -1, -1,
3625 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3626 12, -1, -1, 145, 16, 147, 18, 19, 20, 21,
3627 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3628 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3629 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3630 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3631 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3632 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3633 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3634 92, 93, -1, -1, -1, 97, 98, 99, 100, 101,
3635 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3636 3, 4, 5, 6, 7, -1, -1, -1, 11, 12,
3637 122, 123, 124, 16, -1, 18, 19, 20, 21, 22,
3638 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3639 33, 34, 35, 36, -1, 147, 39, -1, -1, -1,
3640 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
3641 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
3642 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3643 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3644 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3645 93, -1, 95, -1, 97, 98, 99, 100, 101, 102,
3646 103, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3647 -1, -1, -1, -1, -1, -1, -1, -1, -1, 122,
3648 123, 124, -1, -1, -1, -1, -1, -1, 3, 4,
3649 5, 6, 7, -1, -1, -1, 11, 12, -1, -1,
3650 -1, 16, 145, 18, 19, 20, 21, 22, 23, 24,
3651 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3652 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3653 45, 46, -1, 48, 49, 50, 51, 52, 53, 54,
3654 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
3655 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3656 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3657 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3658 95, -1, 97, 98, 99, 100, 101, 102, 103, -1,
3659 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3660 -1, -1, -1, -1, -1, -1, -1, 122, 123, 124,
3661 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3662 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3663 145, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3664 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3665 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
3666 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
3667 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3668 52, 53, 54, 55, 56, 57, -1, -1, -1, -1,
3669 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
3670 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
3671 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
3672 -1, -1, -1, 95, -1, -1, -1, -1, -1, -1,
3673 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3674 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3675 -1, 123, 124, -1, -1, -1, -1, -1, 3, 4,
3676 5, -1, 7, -1, -1, -1, 11, 12, -1, 141,
3677 142, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3678 -1, 26, -1, -1, -1, 30, 31, 32, 33, 34,
3679 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3680 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
3681 55, 56, 57, 58, 59, 60, -1, 62, 63, 64,
3682 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3683 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3684 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3685 95, 96, 97, 98, 99, 100, 101, 102, 103, -1,
3686 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3687 -1, -1, -1, -1, -1, -1, -1, 122, 123, 124,
3688 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
3689 -1, 136, -1, 11, 12, -1, -1, 142, 16, -1,
3690 18, 19, 20, 21, 22, 23, 24, -1, 26, -1,
3691 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3692 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
3693 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3694 58, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3695 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3696 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3697 -1, 89, 90, -1, 92, 93, -1, 95, 96, 97,
3698 98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
3699 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3700 -1, -1, -1, -1, 122, 123, 124, -1, -1, -1,
3701 -1, -1, 3, 4, 5, -1, 7, -1, 136, -1,
3702 11, 12, -1, -1, 142, 16, -1, 18, 19, 20,
3703 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3704 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3705 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3706 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3707 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3708 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3709 -1, -1, -1, -1, -1, 86, 87, -1, 89, 90,
3710 -1, 92, 93, -1, 95, 96, 97, 98, 99, 100,
3711 101, 102, 103, -1, -1, -1, -1, -1, 109, -1,
3712 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
3713 7, 122, 123, 124, 11, 12, -1, -1, -1, 16,
3714 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3715 -1, 142, -1, 30, 31, 32, 33, 34, 35, 36,
3716 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
3717 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
3718 57, 58, 59, 60, -1, 62, 63, 64, -1, 66,
3719 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3720 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3721 -1, -1, 89, 90, -1, 92, 93, -1, 95, 96,
3722 97, 98, 99, 100, 101, 102, 103, -1, -1, -1,
3723 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3724 3, 4, 5, -1, 7, 122, 123, 124, 11, 12,
3725 -1, -1, -1, 16, -1, 18, 19, 20, 21, 22,
3726 23, 24, -1, -1, -1, 142, -1, 30, 31, 32,
3727 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3728 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3729 53, 54, 55, 56, 57, 58, 59, 60, -1, 62,
3730 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3731 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3732 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3733 93, -1, 95, 96, 97, 98, 99, 100, 101, 102,
3734 103, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3735 -1, -1, -1, -1, -1, -1, -1, -1, -1, 122,
3736 123, 124, -1, -1, -1, -1, -1, -1, -1, -1,
3737 -1, -1, -1, -1, -1, -1, -1, -1, -1, 142,
3738 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3739 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3740 23, 24, 25, 26, -1, -1, -1, 30, 31, 32,
3741 33, 34, 35, 36, 37, 38, 39, -1, -1, -1,
3742 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
3743 53, 54, 55, 56, 57, -1, -1, -1, -1, -1,
3744 -1, -1, -1, 66, 67, 68, 69, 70, 71, 72,
3745 73, 74, -1, -1, 77, 78, -1, -1, 81, 82,
3746 83, 84, -1, -1, -1, -1, -1, -1, -1, -1,
3747 -1, -1, 95, -1, -1, -1, -1, -1, -1, -1,
3748 -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
3749 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
3750 123, 124, -1, -1, -1, -1, -1, -1, -1, -1,
3751 -1, -1, -1, -1, -1, -1, -1, -1, 141, 3,
3752 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
3753 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
3754 24, 25, 26, -1, -1, -1, 30, 31, 32, 33,
3755 34, 35, 36, 37, 38, 39, -1, -1, -1, -1,
3756 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3757 54, -1, 56, -1, -1, -1, -1, -1, -1, -1,
3758 -1, -1, 66, 67, 68, 69, 70, 71, 72, 73,
3759 74, -1, -1, 77, 78, -1, -1, 81, 82, 83,
3760 84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3761 -1, 95, -1, -1, 98, -1, -1, -1, -1, -1,
3762 -1, -1, -1, -1, -1, -1, -1, -1, 112, 113,
3763 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
3764 124, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3765 -1, -1, -1, -1, -1, -1, -1, 141, 3, 4,
3766 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3767 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3768 25, 26, -1, -1, -1, 30, 31, 32, 33, 34,
3769 35, 36, 37, 38, 39, -1, -1, -1, -1, -1,
3770 45, 46, 47, 48, 49, 50, 51, 52, 53, -1,
3771 -1, 56, -1, -1, -1, -1, -1, -1, -1, -1,
3772 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3773 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
3774 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3775 95, -1, -1, 98, -1, -1, -1, -1, -1, -1,
3776 -1, -1, -1, -1, -1, -1, -1, 112, 113, 114,
3777 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
3778 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3779 -1, -1, -1, -1, -1, -1, 141, 3, 4, 5,
3780 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
3781 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
3782 26, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3783 36, 37, 38, 39, -1, -1, -1, -1, -1, 45,
3784 46, 47, 48, 49, 50, 51, 52, 53, -1, -1,
3785 56, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3786 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
3787 -1, 77, 78, -1, -1, 81, 82, 83, 84, -1,
3788 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
3789 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3790 -1, -1, -1, -1, -1, -1, 112, 113, 114, 115,
3791 116, 117, 118, 119, 120, 121, -1, 123, 124, -1,
3792 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3793 12, -1, -1, -1, 16, 141, 18, 19, 20, 21,
3794 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3795 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3796 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3797 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3798 62, 63, 64, -1, -1, -1, -1, -1, -1, -1,
3799 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3800 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3801 92, 93, -1, -1, -1, 97, 98, 99, 100, 101,
3802 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3803 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3804 122, 11, 12, -1, -1, -1, 16, -1, 18, 19,
3805 20, 21, 22, 23, 24, -1, -1, -1, 140, -1,
3806 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3807 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
3808 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3809 60, -1, 62, 63, 64, -1, -1, -1, -1, -1,
3810 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3811 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3812 90, -1, 92, 93, -1, -1, -1, 97, 98, 99,
3813 100, 101, 102, 103, -1, -1, -1, -1, -1, -1,
3814 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7,
3815 -1, -1, 122, 11, 12, -1, -1, -1, 16, -1,
3816 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3817 140, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3818 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3819 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3820 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3821 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3822 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3823 -1, 89, 90, -1, 92, 93, -1, 95, -1, 97,
3824 98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
3825 -1, -1, -1, -1, 3, 4, 5, 6, 7, -1,
3826 -1, -1, 11, 12, 122, 123, 124, 16, -1, 18,
3827 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3828 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3829 39, -1, -1, -1, -1, -1, 45, 46, -1, 48,
3830 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3831 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3832 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3833 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3834 89, 90, -1, 92, 93, -1, 95, -1, 97, 98,
3835 99, 100, 101, 102, 103, -1, -1, -1, -1, -1,
3836 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3837 -1, 11, 12, 122, 123, 124, 16, -1, 18, 19,
3838 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3839 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3840 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
3841 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
3842 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3843 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3844 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3845 90, -1, 92, 93, -1, 95, 96, 97, 98, 99,
3846 100, 101, 102, 103, -1, -1, -1, -1, -1, -1,
3847 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3848 11, 12, 122, 123, 124, 16, -1, 18, 19, 20,
3849 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3850 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3851 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3852 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3853 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3854 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3855 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3856 -1, 92, 93, -1, 95, 96, 97, 98, 99, 100,
3857 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3858 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3859 12, 122, 123, 124, 16, -1, 18, 19, 20, 21,
3860 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3861 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3862 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3863 52, 53, 54, 55, 56, 57, 58, 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, 97, 98, 99, 100, 101,
3868 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3869 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
3870 122, 123, 124, 16, -1, 18, 19, 20, 21, 22,
3871 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3872 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3873 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3874 53, 54, 55, 56, 57, 58, 59, 60, -1, 62,
3875 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3876 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3877 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3878 93, -1, -1, 96, 97, 98, 99, 100, 101, 102,
3879 103, -1, -1, -1, -1, -1, -1, -1, -1, 3,
3880 4, 5, -1, 7, -1, -1, -1, 11, 12, 122,
3881 123, 124, 16, -1, 18, 19, 20, 21, 22, 23,
3882 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3883 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3884 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3885 54, 55, 56, 57, 58, 59, 60, -1, 62, 63,
3886 64, -1, 66, 67, -1, -1, -1, -1, -1, -1,
3887 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3888 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3889 -1, 95, -1, 97, 98, 99, 100, 101, 102, 103,
3890 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
3891 5, -1, 7, -1, -1, -1, 11, 12, 122, 123,
3892 124, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3893 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3894 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3895 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
3896 55, 56, 57, 58, 59, 60, -1, 62, 63, 64,
3897 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3898 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3899 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3900 -1, -1, 97, 98, 99, 100, 101, 102, 103, -1,
3901 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3902 -1, 7, -1, -1, -1, 11, 12, 122, 123, 124,
3903 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3904 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3905 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
3906 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
3907 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3908 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3909 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3910 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3911 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3912 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
3913 7, -1, -1, -1, 11, 12, 122, 123, 124, 16,
3914 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3915 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3916 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
3917 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
3918 57, -1, 59, 60, -1, 62, 63, 64, -1, 66,
3919 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3920 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3921 -1, -1, 89, 90, -1, 92, 93, -1, 95, -1,
3922 97, 98, 99, 100, 101, 102, 103, -1, -1, -1,
3923 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
3924 -1, -1, -1, 11, 12, 122, 123, 124, 16, -1,
3925 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3926 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3927 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
3928 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3929 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3930 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3931 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3932 -1, 89, 90, -1, 92, 93, -1, 95, -1, 97,
3933 98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
3934 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3935 -1, -1, 11, 12, 122, 123, 124, 16, -1, 18,
3936 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3937 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3938 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3939 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3940 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3941 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3942 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3943 89, 90, -1, 92, 93, -1, 95, -1, 97, 98,
3944 99, 100, 101, 102, 103, -1, -1, -1, -1, -1,
3945 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3946 -1, 11, 12, 122, 123, 124, 16, -1, 18, 19,
3947 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3948 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3949 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
3950 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3951 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3952 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3953 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3954 90, -1, 92, 93, -1, 95, -1, 97, 98, 99,
3955 100, 101, 102, 103, -1, -1, -1, -1, -1, -1,
3956 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3957 11, 12, 122, 123, 124, 16, -1, 18, 19, 20,
3958 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3959 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3960 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3961 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3962 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3963 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3964 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3965 -1, 92, 93, -1, -1, -1, 97, 98, 99, 100,
3966 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3967 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3968 12, 122, 123, 124, 16, -1, 18, 19, 20, 21,
3969 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3970 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3971 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3972 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3973 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3974 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3975 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3976 92, 93, -1, -1, -1, 97, 98, 99, 100, 101,
3977 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3978 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
3979 122, 123, 124, 16, -1, 18, 19, 20, 21, 22,
3980 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3981 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3982 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3983 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
3984 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3985 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3986 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3987 93, -1, -1, -1, 97, 98, 99, 100, 101, 102,
3988 103, -1, -1, -1, -1, -1, -1, -1, -1, 3,
3989 4, 5, -1, 7, -1, -1, -1, 11, 12, 122,
3990 123, 124, 16, -1, 18, 19, 20, 21, 22, 23,
3991 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3992 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3993 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3994 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3995 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3996 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3997 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3998 -1, 95, -1, 97, 98, 99, 100, 101, 102, 103,
3999 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4000 -1, -1, 11, 12, -1, -1, -1, 16, 122, 18,
4001 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4002 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4003 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4004 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4005 59, 60, -1, 62, 63, 64, -1, -1, -1, -1,
4006 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4007 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
4008 89, 90, -1, 92, 93, -1, 95, -1, 97, 98,
4009 99, 100, 101, 102, 103, -1, -1, -1, -1, 3,
4010 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
4011 -1, -1, 16, 122, 18, 19, 20, 21, 22, 23,
4012 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4013 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4014 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4015 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
4016 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4017 -1, -1, -1, -1, -1, -1, -1, -1, -1, 83,
4018 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
4019 -1, -1, -1, 97, 98, 99, 100, 101, 102, 103,
4020 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4021 -1, -1, 11, 12, -1, -1, -1, 16, 122, 18,
4022 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4023 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4024 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4025 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4026 59, 60, -1, 62, 63, 64, -1, -1, -1, -1,
4027 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4028 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
4029 89, 90, -1, 92, 93, -1, -1, -1, 97, 98,
4030 99, 100, 101, 102, 103, -1, -1, -1, -1, 3,
4031 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
4032 -1, -1, 16, 122, 18, 19, 20, 21, 22, 23,
4033 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4034 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4035 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4036 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
4037 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4038 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4039 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
4040 -1, -1, -1, 97, 98, 99, 100, 101, 102, 103,
4041 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4042 -1, -1, 11, 12, -1, -1, -1, 16, 122, 18,
4043 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4044 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4045 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4046 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4047 59, 60, -1, 62, 63, 64, -1, -1, -1, -1,
4048 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4049 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
4050 89, 90, -1, 92, 93, -1, -1, -1, 97, 98,
4051 99, 100, 101, 102, 103, -1, -1, -1, -1, 3,
4052 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
4053 -1, -1, 16, 122, 18, 19, 20, 21, 22, 23,
4054 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4055 34, 35, 36, -1, -1, 39, -1, 44, -1, -1,
4056 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4057 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
4058 64, 68, 69, 70, 71, 72, 73, 74, 75, 76,
4059 77, 78, 79, 80, -1, -1, 83, 84, -1, -1,
4060 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
4061 -1, -1, -1, 97, 98, 99, 100, 101, 102, 103,
4062 -1, -1, -1, 110, -1, 112, 113, 114, 115, 116,
4063 117, 118, 119, 120, 121, -1, -1, -1, 122, -1,
4064 52, 53, -1, -1, 56, -1, -1, -1, -1, -1,
4065 -1, -1, -1, 140, 66, 67, 68, 69, 70, 71,
4066 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
4067 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
4068 -1, -1, -1, 95, -1, -1, -1, -1, -1, -1,
4069 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4070 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
4071 -1, 123, 124, -1, -1, -1, -1, 52, 53, -1,
4072 -1, 56, -1, -1, -1, -1, -1, -1, -1, 141,
4073 142, 66, 67, 68, 69, 70, 71, 72, 73, 74,
4074 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
4075 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4076 95, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4077 -1, -1, -1, -1, -1, -1, -1, 112, 113, 114,
4078 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
4079 -1, -1, -1, -1, 52, 53, -1, -1, 56, -1,
4080 -1, -1, -1, -1, -1, -1, 141, 142, 66, 67,
4081 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
4082 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
4083 -1, -1, -1, -1, -1, -1, -1, 95, -1, -1,
4084 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4085 -1, -1, -1, -1, 112, 113, 114, 115, 116, 117,
4086 118, 119, 120, 121, -1, 123, 124, -1, -1, -1,
4087 -1, 52, 53, -1, -1, 56, -1, -1, -1, -1,
4088 -1, -1, -1, 141, 142, 66, 67, 68, 69, 70,
4089 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
4090 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
4091 -1, -1, -1, -1, 95, -1, -1, -1, -1, -1,
4092 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4093 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
4094 121, -1, 123, 124, -1, -1, -1, -1, 52, 53,
4095 -1, -1, 56, -1, -1, -1, -1, -1, -1, -1,
4096 141, 142, 66, 67, 68, 69, 70, 71, 72, 73,
4097 74, -1, -1, 77, 78, -1, -1, 81, 82, 83,
4098 84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4099 -1, 95, -1, -1, -1, -1, -1, -1, -1, -1,
4100 -1, -1, -1, -1, -1, -1, -1, -1, 112, 113,
4101 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
4102 124, -1, -1, -1, -1, 52, 53, -1, -1, 56,
4103 -1, -1, -1, -1, -1, -1, -1, 141, 142, 66,
4104 67, 68, 69, 70, 71, 72, 73, 74, -1, -1,
4105 77, 78, -1, -1, 81, 82, 83, 84, -1, -1,
4106 -1, -1, -1, -1, -1, -1, -1, -1, 95, -1,
4107 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4108 -1, -1, -1, -1, -1, 112, 113, 114, 115, 116,
4109 117, 118, 119, 120, 121, -1, 123, 124, -1, -1,
4110 -1, -1, 52, 53, -1, -1, 56, -1, -1, -1,
4111 -1, -1, -1, -1, 141, 142, 66, 67, 68, 69,
4112 70, 71, 72, 73, 74, -1, -1, 77, 78, -1,
4113 -1, 81, 82, 83, 84, -1, -1, -1, -1, -1,
4114 -1, -1, -1, -1, -1, 95, -1, -1, -1, -1,
4115 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4116 -1, -1, 112, 113, 114, 115, 116, 117, 118, 119,
4117 120, 121, -1, 123, 124, -1, -1, -1, -1, 52,
4118 53, -1, -1, 56, -1, -1, -1, -1, -1, -1,
4119 -1, 141, 142, 66, 67, 68, 69, 70, 71, 72,
4120 73, 74, -1, -1, 77, 78, -1, -1, 81, 82,
4121 83, 84, -1, -1, -1, -1, -1, -1, -1, -1,
4122 -1, -1, 95, -1, -1, -1, -1, -1, -1, -1,
4123 -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
4124 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
4125 123, 124, -1, -1, -1, -1, 52, 53, -1, -1,
4126 56, -1, -1, -1, -1, -1, -1, -1, 141, 142,
4127 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
4128 -1, 77, 78, -1, -1, 81, 82, 83, 84, -1,
4129 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
4130 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4131 -1, -1, -1, -1, -1, -1, 112, 113, 114, 115,
4132 116, 117, 118, 119, 120, 121, -1, 123, 124, -1,
4133 -1, -1, -1, 52, 53, -1, -1, 56, -1, -1,
4134 -1, -1, -1, -1, -1, 141, 142, 66, 67, 68,
4135 69, 70, 71, 72, 73, 74, -1, -1, 77, 78,
4136 -1, -1, 81, 82, 83, 84, -1, -1, -1, -1,
4137 -1, -1, -1, -1, -1, -1, 95, -1, -1, -1,
4138 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4139 -1, -1, -1, 112, 113, 114, 115, 116, 117, 118,
4140 119, 120, 121, -1, 123, 124, -1, -1, -1, -1,
4141 52, 53, -1, -1, 56, -1, -1, -1, -1, -1,
4142 -1, -1, 141, 142, 66, 67, 68, 69, 70, 71,
4143 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
4144 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
4145 -1, -1, -1, 95, -1, -1, -1, -1, -1, -1,
4146 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4147 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
4148 -1, 123, 124, -1, -1, -1, -1, 52, 53, -1,
4149 -1, 56, -1, -1, -1, -1, -1, -1, -1, 141,
4150 142, 66, 67, 68, 69, 70, 71, 72, 73, 74,
4151 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
4152 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4153 95, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4154 -1, -1, -1, -1, -1, -1, -1, 112, 113, 114,
4155 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
4156 -1, -1, -1, -1, 52, 53, -1, -1, 56, -1,
4157 -1, -1, -1, -1, -1, -1, 141, 142, 66, 67,
4158 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
4159 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
4160 -1, -1, -1, -1, -1, -1, -1, 95, -1, -1,
4161 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4162 -1, -1, -1, -1, 112, 113, 114, 115, 116, 117,
4163 118, 119, 120, 121, -1, 123, 124, -1, -1, -1,
4164 -1, 52, 53, -1, -1, 56, -1, -1, -1, -1,
4165 -1, -1, -1, 141, 142, 66, 67, 68, 69, 70,
4166 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
4167 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
4168 -1, -1, -1, -1, 95, -1, -1, -1, -1, -1,
4169 -1, -1, 44, -1, -1, -1, -1, -1, -1, -1,
4170 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
4171 121, 44, 123, 124, -1, -1, 68, 69, 70, 71,
4172 72, 73, 74, 75, 76, 77, 78, 79, 80, -1,
4173 141, 83, 84, -1, -1, 68, 69, 70, 71, 72,
4174 73, 74, 75, 76, 77, 78, 79, 80, -1, -1,
4175 83, 84, -1, -1, -1, -1, -1, -1, 110, -1,
4176 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
4177 -1, -1, -1, -1, -1, -1, -1, 110, -1, 112,
4178 113, 114, 115, 116, 117, 118, 119, 120, 121
4185 0, 149, 150, 0, 1, 3, 4, 5, 6, 7,
4186 11, 12, 16, 18, 19, 20, 21, 22, 23, 24,
4187 30, 31, 32, 33, 34, 35, 36, 39, 45, 46,
4188 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4189 57, 59, 60, 62, 63, 64, 66, 67, 86, 89,
4190 90, 92, 93, 95, 97, 98, 99, 100, 101, 102,
4191 103, 122, 123, 124, 151, 152, 153, 158, 160, 161,
4192 163, 164, 167, 168, 170, 171, 172, 174, 175, 185,
4193 199, 216, 217, 218, 219, 220, 221, 222, 223, 224,
4194 225, 226, 249, 250, 260, 261, 262, 263, 264, 265,
4195 266, 269, 279, 281, 282, 283, 284, 285, 286, 287,
4196 310, 321, 153, 3, 4, 5, 6, 7, 8, 9,
4197 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
4198 20, 21, 22, 23, 24, 25, 26, 30, 31, 32,
4199 33, 34, 35, 36, 37, 38, 39, 45, 46, 47,
4200 48, 49, 50, 51, 52, 53, 56, 66, 67, 68,
4201 69, 70, 71, 72, 73, 74, 77, 78, 81, 82,
4202 83, 84, 95, 112, 113, 114, 115, 116, 117, 118,
4203 119, 120, 121, 123, 124, 141, 178, 179, 180, 181,
4204 183, 184, 279, 281, 39, 58, 86, 89, 95, 96,
4205 123, 167, 175, 185, 187, 192, 195, 197, 216, 283,
4206 284, 286, 287, 308, 309, 192, 192, 142, 193, 194,
4207 142, 189, 193, 142, 147, 315, 54, 180, 315, 154,
4208 136, 21, 22, 30, 31, 32, 185, 216, 310, 185,
4209 56, 1, 89, 156, 157, 158, 169, 170, 321, 161,
4210 188, 197, 308, 321, 187, 307, 308, 321, 46, 86,
4211 122, 140, 174, 199, 216, 283, 284, 287, 242, 243,
4212 54, 55, 57, 178, 272, 280, 271, 272, 273, 146,
4213 267, 146, 270, 59, 60, 163, 185, 185, 145, 147,
4214 314, 319, 320, 40, 41, 42, 43, 44, 37, 38,
4215 28, 247, 109, 140, 89, 95, 171, 109, 68, 69,
4216 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
4217 80, 83, 84, 110, 112, 113, 114, 115, 116, 117,
4218 118, 119, 120, 121, 85, 138, 139, 200, 161, 162,
4219 162, 203, 205, 162, 314, 320, 86, 168, 175, 216,
4220 232, 283, 284, 287, 52, 56, 83, 86, 176, 177,
4221 216, 283, 284, 287, 177, 33, 34, 35, 36, 49,
4222 50, 51, 52, 56, 142, 178, 285, 305, 85, 139,
4223 26, 136, 251, 263, 87, 87, 189, 193, 251, 140,
4224 187, 56, 187, 187, 109, 88, 140, 196, 321, 85,
4225 138, 139, 87, 87, 140, 196, 192, 315, 316, 192,
4226 191, 192, 197, 308, 321, 161, 316, 161, 54, 63,
4227 64, 159, 142, 186, 136, 156, 85, 139, 87, 158,
4228 169, 143, 314, 320, 316, 201, 144, 140, 147, 318,
4229 140, 318, 137, 318, 315, 56, 59, 60, 171, 173,
4230 140, 85, 138, 139, 244, 61, 104, 105, 106, 274,
4231 106, 274, 106, 65, 274, 106, 106, 268, 274, 106,
4232 61, 106, 68, 68, 145, 153, 162, 162, 162, 162,
4233 158, 161, 161, 248, 95, 163, 187, 197, 198, 169,
4234 140, 174, 140, 160, 163, 175, 185, 187, 198, 185,
4235 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
4236 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
4237 185, 185, 185, 185, 185, 52, 53, 56, 183, 189,
4238 311, 312, 191, 52, 53, 56, 183, 189, 311, 155,
4239 156, 13, 228, 319, 228, 162, 162, 314, 17, 254,
4240 56, 85, 138, 139, 25, 161, 52, 56, 176, 1,
4241 113, 288, 319, 85, 138, 139, 212, 306, 213, 85,
4242 139, 313, 52, 56, 311, 311, 253, 252, 163, 185,
4243 163, 185, 94, 165, 182, 185, 187, 95, 187, 195,
4244 308, 52, 56, 191, 52, 56, 309, 316, 143, 316,
4245 140, 140, 316, 180, 202, 185, 151, 137, 311, 311,
4246 185, 316, 158, 316, 308, 140, 173, 52, 56, 191,
4247 52, 56, 52, 54, 55, 56, 57, 89, 95, 96,
4248 116, 119, 142, 245, 291, 292, 293, 294, 295, 296,
4249 299, 300, 301, 302, 303, 276, 275, 146, 274, 146,
4250 185, 185, 76, 114, 237, 238, 321, 187, 140, 316,
4251 173, 140, 109, 44, 315, 87, 87, 189, 193, 315,
4252 317, 87, 87, 189, 190, 193, 321, 10, 227, 8,
4253 256, 321, 156, 13, 156, 27, 229, 319, 229, 254,
4254 197, 227, 52, 56, 191, 52, 56, 207, 210, 319,
4255 289, 209, 52, 56, 176, 191, 155, 161, 142, 290,
4256 291, 214, 190, 193, 190, 193, 237, 237, 44, 166,
4257 180, 187, 196, 87, 87, 317, 87, 87, 308, 161,
4258 137, 318, 171, 317, 109, 52, 89, 95, 233, 234,
4259 235, 293, 291, 29, 107, 246, 140, 304, 321, 140,
4260 304, 52, 140, 304, 52, 277, 54, 55, 57, 278,
4261 287, 52, 145, 236, 239, 295, 297, 298, 301, 303,
4262 321, 156, 95, 187, 173, 185, 111, 163, 185, 163,
4263 185, 165, 144, 87, 163, 185, 163, 185, 165, 187,
4264 198, 257, 321, 15, 231, 321, 14, 230, 231, 231,
4265 204, 206, 227, 140, 228, 317, 162, 319, 162, 155,
4266 317, 227, 316, 291, 155, 319, 178, 156, 156, 185,
4267 237, 87, 140, 316, 187, 235, 140, 293, 140, 316,
4268 239, 156, 156, 294, 299, 301, 303, 295, 296, 301,
4269 295, 156, 109, 52, 240, 241, 292, 239, 114, 140,
4270 304, 140, 304, 140, 304, 10, 187, 185, 163, 185,
4271 88, 258, 321, 156, 9, 259, 321, 162, 227, 227,
4272 156, 156, 187, 156, 229, 211, 319, 227, 316, 227,
4273 215, 10, 137, 156, 316, 234, 140, 95, 233, 316,
4274 10, 137, 140, 304, 140, 304, 140, 304, 140, 304,
4275 304, 137, 86, 216, 140, 114, 298, 301, 295, 297,
4276 301, 295, 86, 175, 216, 283, 284, 287, 228, 156,
4277 228, 227, 227, 231, 254, 255, 208, 155, 290, 137,
4278 140, 234, 140, 293, 295, 301, 295, 295, 56, 85,
4279 241, 140, 304, 140, 304, 304, 140, 304, 304, 56,
4280 85, 138, 139, 156, 156, 156, 227, 155, 234, 140,
4281 304, 140, 304, 304, 304, 52, 56, 295, 301, 295,
4282 295, 52, 56, 191, 52, 56, 256, 230, 227, 227,
4283 234, 295, 304, 140, 304, 304, 304, 317, 304, 295,
4287 #define yyerrok (yyerrstatus = 0)
4288 #define yyclearin (yychar = YYEMPTY)
4289 #define YYEMPTY (-2)
4292 #define YYACCEPT goto yyacceptlab
4293 #define YYABORT goto yyabortlab
4294 #define YYERROR goto yyerrorlab
4301 #define YYFAIL goto yyerrlab
4303 #define YYRECOVERING() (!!yyerrstatus)
4305 #define YYBACKUP(Token, Value) \
4307 if (yychar == YYEMPTY && yylen == 1) \
4311 yytoken = YYTRANSLATE (yychar); \
4317 parser_yyerror (parser, YY_("syntax error: cannot back up")); \
4324 #define YYERRCODE 256
4331 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
4332 #ifndef YYLLOC_DEFAULT
4333 # define YYLLOC_DEFAULT(Current, Rhs, N) \
4337 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
4338 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
4339 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
4340 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
4344 (Current).first_line = (Current).last_line = \
4345 YYRHSLOC (Rhs, 0).last_line; \
4346 (Current).first_column = (Current).last_column = \
4347 YYRHSLOC (Rhs, 0).last_column; \
4357 #ifndef YY_LOCATION_PRINT
4358 # if YYLTYPE_IS_TRIVIAL
4359 # define YY_LOCATION_PRINT(File, Loc) \
4360 fprintf (File, "%d.%d-%d.%d", \
4361 (Loc).first_line, (Loc).first_column, \
4362 (Loc).last_line, (Loc).last_column)
4364 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
4372 # define YYLEX yylex (&yylval, YYLEX_PARAM)
4374 # define YYLEX yylex (&yylval)
4382 # define YYFPRINTF fprintf
4385 # define YYDPRINTF(Args) \
4391 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
4395 YYFPRINTF (stderr, "%s ", Title); \
4396 yy_symbol_print (stderr, \
4397 Type, Value, parser); \
4398 YYFPRINTF (stderr, "\n"); \
4408 #if (defined __STDC__ || defined __C99__FUNC__ \
4409 || defined __cplusplus || defined _MSC_VER)
4426 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
4442 #if (defined __STDC__ || defined __C99__FUNC__ \
4443 || defined __cplusplus || defined _MSC_VER)
4456 YYFPRINTF (yyoutput,
"token %s (", yytname[yytype]);
4458 YYFPRINTF (yyoutput,
"nterm %s (", yytname[yytype]);
4469 #if (defined __STDC__ || defined __C99__FUNC__ \
4470 || defined __cplusplus || defined _MSC_VER)
4481 for (; bottom <=
top; ++bottom)
4486 # define YY_STACK_PRINT(Bottom, Top) \
4489 yy_stack_print ((Bottom), (Top)); \
4497 #if (defined __STDC__ || defined __C99__FUNC__ \
4498 || defined __cplusplus || defined _MSC_VER)
4509 int yynrhs = yyr2[yyrule];
4511 unsigned long int yylno = yyrline[yyrule];
4512 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu):\n",
4515 for (yyi = 0; yyi < yynrhs; yyi++)
4517 fprintf (stderr,
" $%d = ", yyi + 1);
4519 &(yyvsp[(yyi + 1) - (yynrhs)])
4521 fprintf (stderr,
"\n");
4525 # define YY_REDUCE_PRINT(Rule) \
4528 yy_reduce_print (yyvsp, Rule, parser); \
4537 # define YYDPRINTF(Args)
4538 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
4539 # define YY_STACK_PRINT(Bottom, Top)
4540 # define YY_REDUCE_PRINT(Rule)
4546 # define YYINITDEPTH 200
4557 # define YYMAXDEPTH 10000
4565 # if defined __GLIBC__ && defined _STRING_H
4566 # define yystrlen strlen
4569 #if (defined __STDC__ || defined __C99__FUNC__ \
4570 || defined __cplusplus || defined _MSC_VER)
4580 for (yylen = 0; yystr[yylen]; yylen++)
4588 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4589 # define yystpcpy stpcpy
4593 #if (defined __STDC__ || defined __C99__FUNC__ \
4594 || defined __cplusplus || defined _MSC_VER)
4596 yystpcpy (
char *yydest,
const char *yysrc)
4605 const char *yys = yysrc;
4607 while ((*yyd++ = *yys++) !=
'\0')
4629 char const *yyp = yystr;
4636 goto do_not_strip_quotes;
4640 goto do_not_strip_quotes;
4653 do_not_strip_quotes: ;
4659 return yystpcpy (yyres, yystr) - yyres;
4673 int yyn = yypact[yystate];
4683 int yysize_overflow = 0;
4684 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
4685 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
4691 YY_(
"syntax error, unexpected %s");
4692 YY_(
"syntax error, unexpected %s, expecting %s");
4693 YY_(
"syntax error, unexpected %s, expecting %s or %s");
4694 YY_(
"syntax error, unexpected %s, expecting %s or %s or %s");
4695 YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s");
4699 static char const yyunexpected[] =
"syntax error, unexpected %s";
4700 static char const yyexpecting[] =
", expecting %s";
4701 static char const yyor[] =
" or %s";
4702 char yyformat[
sizeof yyunexpected
4703 +
sizeof yyexpecting - 1
4704 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
4705 * (
sizeof yyor - 1))];
4706 char const *yyprefix = yyexpecting;
4710 int yyxbegin = yyn < 0 ? -yyn : 0;
4713 int yychecklim =
YYLAST - yyn + 1;
4717 yyarg[0] = yytname[yytype];
4718 yyfmt =
yystpcpy (yyformat, yyunexpected);
4720 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
4721 if (yycheck[yyx + yyn] == yyx && yyx !=
YYTERROR)
4723 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
4727 yyformat[
sizeof yyunexpected - 1] =
'\0';
4730 yyarg[yycount++] = yytname[yyx];
4731 yysize1 = yysize +
yytnamerr (0, yytname[yyx]);
4732 yysize_overflow |= (yysize1 < yysize);
4734 yyfmt =
yystpcpy (yyfmt, yyprefix);
4738 yyf =
YY_(yyformat);
4740 yysize_overflow |= (yysize1 < yysize);
4743 if (yysize_overflow)
4751 char *yyp = yyresult;
4753 while ((*yyp = *yyf) !=
'\0')
4755 if (*yyp ==
'%' && yyf[1] ==
's' && yyi < yycount)
4778 #if (defined __STDC__ || defined __C99__FUNC__ \
4779 || defined __cplusplus || defined _MSC_VER)
4809 #ifdef YYPARSE_PARAM
4810 #if defined __STDC__ || defined __cplusplus
4816 #if defined __STDC__ || defined __cplusplus
4832 #ifdef YYPARSE_PARAM
4833 #if (defined __STDC__ || defined __C99__FUNC__ \
4834 || defined __cplusplus || defined _MSC_VER)
4840 void *YYPARSE_PARAM;
4843 #if (defined __STDC__ || defined __C99__FUNC__ \
4844 || defined __cplusplus || defined _MSC_VER)
4873 char *yymsg = yymsgbuf;
4874 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
4897 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
4910 YYDPRINTF ((stderr,
"Starting parse\n"));
4938 if (yyss + yystacksize - 1 <= yyssp)
4941 YYSIZE_T yysize = yyssp - yyss + 1;
4956 yyoverflow (
YY_(
"memory exhausted"),
4957 &yyss1, yysize *
sizeof (*yyssp),
4958 &yyvs1, yysize *
sizeof (*yyvsp),
4966 # ifndef YYSTACK_RELOCATE
4967 goto yyexhaustedlab;
4971 goto yyexhaustedlab;
4981 goto yyexhaustedlab;
4985 # undef YYSTACK_RELOCATE
4992 yyssp = yyss + yysize - 1;
4993 yyvsp = yyvs + yysize - 1;
4996 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
4997 (
unsigned long int) yystacksize));
4999 if (yyss + yystacksize - 1 <= yyssp)
5003 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
5016 yyn = yypact[yystate];
5025 YYDPRINTF ((stderr,
"Reading a token: "));
5029 if (yychar <=
YYEOF)
5031 yychar = yytoken =
YYEOF;
5032 YYDPRINTF ((stderr,
"Now at end of input.\n"));
5043 if (yyn < 0 ||
YYLAST < yyn || yycheck[yyn] != yytoken)
5066 if (yychar !=
YYEOF)
5079 yyn = yydefact[yystate];
5100 yyval = yyvsp[1-yylen];
5126 NODE *node = (yyvsp[(2) - (2)].
node);
5127 while (node->nd_next) {
5128 node = node->nd_next;
5150 (yyval.
node) = (yyvsp[(1) - (2)].node);
5213 (yyvsp[(4) - (5)].node));
5227 (yyval.
node) = (yyvsp[(1) - (4)].node);
5228 if ((yyvsp[(2) - (4)].node)) {
5229 (yyval.
node) =
NEW_RESCUE((yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].
node), (yyvsp[(3) - (4)].node));
5231 else if ((yyvsp[(3) - (4)].node)) {
5232 rb_warn0(
"else without rescue is useless");
5235 if ((yyvsp[(4) - (4)].node)) {
5262 (yyval.
node) = (yyvsp[(1) - (2)].node);
5340 buf[1] = (char)(yyvsp[(3) - (3)].node)->nd_nth;
5352 yyerror(
"can't make alias for the number variables");
5365 (yyval.
node) = (yyvsp[(2) - (2)].node);
5373 #line 1001 "parse.y"
5385 #line 1010 "parse.y"
5397 #line 1019 "parse.y"
5400 if ((yyvsp[(1) - (3)].node) &&
nd_type((yyvsp[(1) - (3)].node)) ==
NODE_BEGIN) {
5404 (yyval.
node) =
NEW_WHILE(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node), 1);
5413 #line 1032 "parse.y"
5416 if ((yyvsp[(1) - (3)].node) &&
nd_type((yyvsp[(1) - (3)].node)) ==
NODE_BEGIN) {
5417 (yyval.
node) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node)->nd_body, 0);
5420 (yyval.
node) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node), 1);
5429 #line 1045 "parse.y"
5441 #line 1054 "parse.y"
5444 rb_warn0(
"END in method; use at_exit");
5448 NODE_SCOPE, 0 , (yyvsp[(3) - (4)].node) , 0 ));
5456 #line 1067 "parse.y"
5460 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5461 (yyval.
node) = (yyvsp[(1) - (3)].node);
5469 #line 1077 "parse.y"
5473 if ((yyvsp[(1) - (3)].node)) {
5475 if ((yyvsp[(2) - (3)].
id) ==
tOROP) {
5476 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5482 else if ((yyvsp[(2) - (3)].
id) ==
tANDOP) {
5483 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5487 (yyval.
node) = (yyvsp[(1) - (3)].node);
5501 #line 1106 "parse.y"
5507 if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].
node) =
NEW_ZARRAY();
5508 args =
arg_concat((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
5509 if ((yyvsp[(5) - (6)].
id) ==
tOROP) {
5510 (yyvsp[(5) - (6)].
id) = 0;
5512 else if ((yyvsp[(5) - (6)].
id) ==
tANDOP) {
5513 (yyvsp[(5) - (6)].
id) = 1;
5525 #line 1127 "parse.y"
5529 if ((yyvsp[(4) - (5)].
id) ==
tOROP) {
5530 (yyvsp[(4) - (5)].
id) = 0;
5532 else if ((yyvsp[(4) - (5)].
id) ==
tANDOP) {
5533 (yyvsp[(4) - (5)].
id) = 1;
5535 (yyval.
node) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
5545 #line 1144 "parse.y"
5549 if ((yyvsp[(4) - (5)].
id) ==
tOROP) {
5550 (yyvsp[(4) - (5)].
id) = 0;
5552 else if ((yyvsp[(4) - (5)].
id) ==
tANDOP) {
5553 (yyvsp[(4) - (5)].
id) = 1;
5555 (yyval.
node) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
5565 #line 1161 "parse.y"
5568 yyerror(
"constant re-assignment");
5579 #line 1172 "parse.y"
5583 if ((yyvsp[(4) - (5)].
id) ==
tOROP) {
5584 (yyvsp[(4) - (5)].
id) = 0;
5586 else if ((yyvsp[(4) - (5)].
id) ==
tANDOP) {
5587 (yyvsp[(4) - (5)].
id) = 1;
5589 (yyval.
node) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
5599 #line 1189 "parse.y"
5612 #line 1199 "parse.y"
5624 #line 1208 "parse.y"
5627 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5628 (yyval.
node) = (yyvsp[(1) - (3)].node);
5636 #line 1217 "parse.y"
5639 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5640 (yyval.
node) = (yyvsp[(1) - (3)].node);
5648 #line 1229 "parse.y"
5660 #line 1238 "parse.y"
5672 #line 1251 "parse.y"
5683 #line 1259 "parse.y"
5694 #line 1267 "parse.y"
5705 #line 1275 "parse.y"
5716 #line 1286 "parse.y"
5720 (yyval.
node) = (yyvsp[(1) - (1)].node);
5729 #line 1303 "parse.y"
5732 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
5741 #line 1312 "parse.y"
5744 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
5753 #line 1323 "parse.y"
5764 #line 1333 "parse.y"
5777 #line 1345 "parse.y"
5789 #line 1354 "parse.y"
5794 (yyval.
node) = (yyvsp[(3) - (3)].node);
5804 #line 1366 "parse.y"
5807 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
5816 #line 1375 "parse.y"
5820 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
5821 (yyval.
node) = (yyvsp[(5) - (5)].node);
5831 #line 1387 "parse.y"
5834 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
5843 #line 1396 "parse.y"
5847 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
5848 (yyval.
node) = (yyvsp[(5) - (5)].node);
5858 #line 1408 "parse.y"
5870 #line 1417 "parse.y"
5882 #line 1426 "parse.y"
5893 #line 1434 "parse.y"
5904 #line 1442 "parse.y"
5915 #line 1453 "parse.y"
5918 (yyval.
node) = (yyvsp[(2) - (3)].node);
5926 #line 1464 "parse.y"
5937 #line 1474 "parse.y"
5948 #line 1482 "parse.y"
5959 #line 1490 "parse.y"
5970 #line 1498 "parse.y"
5982 #line 1507 "parse.y"
5993 #line 1515 "parse.y"
6005 #line 1524 "parse.y"
6016 #line 1532 "parse.y"
6028 #line 1541 "parse.y"
6039 #line 1549 "parse.y"
6051 #line 1561 "parse.y"
6054 (yyval.
node) = (yyvsp[(2) - (3)].node);
6062 #line 1571 "parse.y"
6073 #line 1579 "parse.y"
6084 #line 1589 "parse.y"
6095 #line 1597 "parse.y"
6106 #line 1607 "parse.y"
6113 #line 1611 "parse.y"
6120 #line 1615 "parse.y"
6123 (yyval.
node) =
aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node));
6131 #line 1623 "parse.y"
6134 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6142 #line 1631 "parse.y"
6145 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6153 #line 1639 "parse.y"
6156 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6164 #line 1647 "parse.y"
6168 yyerror(
"dynamic constant assignment");
6179 #line 1659 "parse.y"
6183 yyerror(
"dynamic constant assignment");
6192 #line 1669 "parse.y"
6205 #line 1681 "parse.y"
6217 #line 1690 "parse.y"
6229 #line 1699 "parse.y"
6232 (yyval.
node) =
aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node));
6240 #line 1707 "parse.y"
6243 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6251 #line 1715 "parse.y"
6254 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6262 #line 1723 "parse.y"
6265 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6273 #line 1731 "parse.y"
6277 yyerror(
"dynamic constant assignment");
6289 #line 1744 "parse.y"
6293 yyerror(
"dynamic constant assignment");
6305 #line 1757 "parse.y"
6317 #line 1768 "parse.y"
6320 yyerror(
"class/module name must be CONSTANT");
6328 #line 1779 "parse.y"
6339 #line 1787 "parse.y"
6350 #line 1795 "parse.y"
6361 #line 1808 "parse.y"
6364 (yyval.
id) = (yyvsp[(1) - (1)].
id);
6369 #line 1813 "parse.y"
6373 (yyval.
id) = (yyvsp[(1) - (1)].
id);
6381 #line 1828 "parse.y"
6392 #line 1839 "parse.y"
6403 #line 1846 "parse.y"
6408 #line 1847 "parse.y"
6419 #line 1856 "parse.y"
6424 #line 1857 "parse.y"
6429 #line 1858 "parse.y"
6434 #line 1859 "parse.y"
6439 #line 1860 "parse.y"
6444 #line 1861 "parse.y"
6449 #line 1862 "parse.y"
6454 #line 1863 "parse.y"
6459 #line 1864 "parse.y"
6464 #line 1865 "parse.y"
6469 #line 1866 "parse.y"
6474 #line 1867 "parse.y"
6479 #line 1868 "parse.y"
6484 #line 1869 "parse.y"
6489 #line 1870 "parse.y"
6494 #line 1871 "parse.y"
6499 #line 1872 "parse.y"
6504 #line 1873 "parse.y"
6509 #line 1874 "parse.y"
6514 #line 1875 "parse.y"
6519 #line 1876 "parse.y"
6524 #line 1877 "parse.y"
6529 #line 1878 "parse.y"
6534 #line 1879 "parse.y"
6539 #line 1880 "parse.y"
6544 #line 1881 "parse.y"
6549 #line 1882 "parse.y"
6554 #line 1883 "parse.y"
6559 #line 1884 "parse.y"
6564 #line 1902 "parse.y"
6576 #line 1911 "parse.y"
6589 #line 1921 "parse.y"
6593 if ((yyvsp[(1) - (3)].node)) {
6595 if ((yyvsp[(2) - (3)].
id) ==
tOROP) {
6596 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
6602 else if ((yyvsp[(2) - (3)].
id) ==
tANDOP) {
6603 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
6607 (yyval.
node) = (yyvsp[(1) - (3)].node);
6621 #line 1950 "parse.y"
6626 if ((yyvsp[(1) - (5)].node)) {
6628 if ((yyvsp[(2) - (5)].
id) ==
tOROP) {
6629 (yyvsp[(1) - (5)].
node)->
nd_value = (yyvsp[(3) - (5)].node);
6635 else if ((yyvsp[(2) - (5)].
id) ==
tANDOP) {
6636 (yyvsp[(1) - (5)].
node)->
nd_value = (yyvsp[(3) - (5)].node);
6640 (yyval.
node) = (yyvsp[(1) - (5)].node);
6655 #line 1981 "parse.y"
6661 if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].
node) =
NEW_ZARRAY();
6663 args =
NEW_ARGSCAT((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
6666 args =
arg_concat((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
6668 if ((yyvsp[(5) - (6)].
id) ==
tOROP) {
6669 (yyvsp[(5) - (6)].
id) = 0;
6671 else if ((yyvsp[(5) - (6)].
id) ==
tANDOP) {
6672 (yyvsp[(5) - (6)].
id) = 1;
6684 #line 2007 "parse.y"
6688 if ((yyvsp[(4) - (5)].
id) ==
tOROP) {
6689 (yyvsp[(4) - (5)].
id) = 0;
6691 else if ((yyvsp[(4) - (5)].
id) ==
tANDOP) {
6692 (yyvsp[(4) - (5)].
id) = 1;
6694 (yyval.
node) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
6704 #line 2024 "parse.y"
6708 if ((yyvsp[(4) - (5)].
id) ==
tOROP) {
6709 (yyvsp[(4) - (5)].
id) = 0;
6711 else if ((yyvsp[(4) - (5)].
id) ==
tANDOP) {
6712 (yyvsp[(4) - (5)].
id) = 1;
6714 (yyval.
node) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
6724 #line 2041 "parse.y"
6728 if ((yyvsp[(4) - (5)].
id) ==
tOROP) {
6729 (yyvsp[(4) - (5)].
id) = 0;
6731 else if ((yyvsp[(4) - (5)].
id) ==
tANDOP) {
6732 (yyvsp[(4) - (5)].
id) = 1;
6734 (yyval.
node) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
6744 #line 2058 "parse.y"
6747 yyerror(
"constant re-assignment");
6758 #line 2069 "parse.y"
6761 yyerror(
"constant re-assignment");
6772 #line 2080 "parse.y"
6786 #line 2091 "parse.y"
6803 #line 2105 "parse.y"
6820 #line 2119 "parse.y"
6831 #line 2127 "parse.y"
6842 #line 2135 "parse.y"
6853 #line 2143 "parse.y"
6864 #line 2151 "parse.y"
6875 #line 2159 "parse.y"
6886 #line 2167 "parse.y"
6898 #line 2176 "parse.y"
6910 #line 2185 "parse.y"
6921 #line 2193 "parse.y"
6932 #line 2201 "parse.y"
6943 #line 2209 "parse.y"
6954 #line 2217 "parse.y"
6965 #line 2225 "parse.y"
6976 #line 2233 "parse.y"
6987 #line 2241 "parse.y"
6998 #line 2249 "parse.y"
7009 #line 2257 "parse.y"
7020 #line 2265 "parse.y"
7031 #line 2273 "parse.y"
7042 #line 2281 "parse.y"
7053 #line 2289 "parse.y"
7067 #line 2300 "parse.y"
7078 #line 2308 "parse.y"
7089 #line 2316 "parse.y"
7100 #line 2324 "parse.y"
7111 #line 2332 "parse.y"
7122 #line 2340 "parse.y"
7133 #line 2348 "parse.y"
7144 #line 2355 "parse.y"
7149 #line 2356 "parse.y"
7162 #line 2366 "parse.y"
7166 (yyval.
node) =
NEW_IF(
cond((yyvsp[(1) - (6)].node)), (yyvsp[(3) - (6)].
node), (yyvsp[(6) - (6)].node));
7175 #line 2376 "parse.y"
7177 (yyval.
node) = (yyvsp[(1) - (1)].node);
7182 #line 2382 "parse.y"
7186 (yyval.
node) = (yyvsp[(1) - (1)].node);
7195 #line 2395 "parse.y"
7197 (yyval.
node) = (yyvsp[(1) - (2)].node);
7202 #line 2399 "parse.y"
7213 #line 2407 "parse.y"
7224 #line 2417 "parse.y"
7227 (yyval.
node) = (yyvsp[(2) - (3)].node);
7235 #line 2433 "parse.y"
7237 (yyval.
node) = (yyvsp[(1) - (2)].node);
7242 #line 2437 "parse.y"
7253 #line 2445 "parse.y"
7264 #line 2455 "parse.y"
7276 #line 2464 "parse.y"
7287 #line 2472 "parse.y"
7300 #line 2482 "parse.y"
7312 #line 2499 "parse.y"
7320 #line 2504 "parse.y"
7324 (yyval.
node) = (yyvsp[(2) - (2)].node);
7329 #line 2512 "parse.y"
7340 #line 2522 "parse.y"
7342 (yyval.
node) = (yyvsp[(2) - (2)].node);
7347 #line 2526 "parse.y"
7354 #line 2532 "parse.y"
7365 #line 2540 "parse.y"
7376 #line 2548 "parse.y"
7380 if ((n1 =
splat_array((yyvsp[(1) - (3)].node))) != 0) {
7393 #line 2562 "parse.y"
7410 #line 2578 "parse.y"
7414 if ((n1 =
splat_array((yyvsp[(1) - (3)].node))) != 0) {
7427 #line 2592 "parse.y"
7432 (n1 =
splat_array((yyvsp[(1) - (4)].node))) != 0) {
7445 #line 2607 "parse.y"
7456 #line 2625 "parse.y"
7467 #line 2633 "parse.y"
7477 #line 2641 "parse.y"
7480 if ((yyvsp[(3) - (4)].node) ==
NULL) {
7486 nd_set_line((yyvsp[(3) - (4)].node), (yyvsp[(2) - (4)].num));
7497 #line 2657 "parse.y"
7502 #line 2658 "parse.y"
7504 rb_warning0(
"(...) interpreted as grouped expression");
7506 (yyval.
node) = (yyvsp[(2) - (4)].node);
7514 #line 2667 "parse.y"
7517 (yyval.
node) = (yyvsp[(2) - (3)].node);
7525 #line 2675 "parse.y"
7536 #line 2683 "parse.y"
7547 #line 2691 "parse.y"
7550 if ((yyvsp[(2) - (3)].node) == 0) {
7554 (yyval.
node) = (yyvsp[(2) - (3)].node);
7563 #line 2704 "parse.y"
7574 #line 2712 "parse.y"
7585 #line 2720 "parse.y"
7596 #line 2728 "parse.y"
7607 #line 2736 "parse.y"
7618 #line 2743 "parse.y"
7623 #line 2744 "parse.y"
7636 #line 2754 "parse.y"
7647 #line 2762 "parse.y"
7658 #line 2770 "parse.y"
7662 (yyval.
node) = (yyvsp[(2) - (2)].node);
7663 fixpos((yyvsp[(2) - (2)].node)->
nd_iter, (yyvsp[(2) - (2)].node));
7672 #line 2782 "parse.y"
7676 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
7677 (yyval.
node) = (yyvsp[(2) - (2)].node);
7686 #line 2793 "parse.y"
7688 (yyval.
node) = (yyvsp[(2) - (2)].node);
7693 #line 2800 "parse.y"
7696 (yyval.
node) =
NEW_IF(
cond((yyvsp[(2) - (6)].node)), (yyvsp[(4) - (6)].node), (yyvsp[(5) - (6)].
node));
7705 #line 2812 "parse.y"
7708 (yyval.
node) =
NEW_UNLESS(
cond((yyvsp[(2) - (6)].node)), (yyvsp[(4) - (6)].
node), (yyvsp[(5) - (6)].node));
7717 #line 2820 "parse.y"
7722 #line 2820 "parse.y"
7727 #line 2823 "parse.y"
7739 #line 2831 "parse.y"
7744 #line 2831 "parse.y"
7749 #line 2834 "parse.y"
7761 #line 2845 "parse.y"
7773 #line 2854 "parse.y"
7784 #line 2862 "parse.y"
7789 #line 2864 "parse.y"
7794 #line 2867 "parse.y"
7839 m->nd_next = (yyvsp[(2) - (9)].
node);
7848 tbl[0] = 1; tbl[1] =
id;
7849 (yyval.
node) =
NEW_FOR(0, (yyvsp[(5) - (9)].node), scope);
7858 #line 2928 "parse.y"
7861 yyerror(
"class definition in method body");
7871 #line 2939 "parse.y"
7874 (yyval.
node) =
NEW_CLASS((yyvsp[(2) - (6)].node), (yyvsp[(5) - (6)].
node), (yyvsp[(3) - (6)].node));
7884 #line 2949 "parse.y"
7892 #line 2954 "parse.y"
7901 #line 2961 "parse.y"
7916 #line 2973 "parse.y"
7919 yyerror(
"module definition in method body");
7929 #line 2984 "parse.y"
7942 #line 2994 "parse.y"
7952 #line 3003 "parse.y"
7969 #line 3016 "parse.y"
7974 #line 3017 "parse.y"
7983 #line 3025 "parse.y"
7988 (yyval.
node) =
NEW_DEFS((yyvsp[(2) - (9)].node), (yyvsp[(5) - (9)].
id), (yyvsp[(7) - (9)].node), body);
7999 #line 3038 "parse.y"
8010 #line 3046 "parse.y"
8021 #line 3054 "parse.y"
8032 #line 3062 "parse.y"
8043 #line 3072 "parse.y"
8047 (yyval.
node) = (yyvsp[(1) - (1)].node);
8056 #line 3084 "parse.y"
8063 #line 3090 "parse.y"
8070 #line 3096 "parse.y"
8077 #line 3102 "parse.y"
8084 #line 3108 "parse.y"
8091 #line 3114 "parse.y"
8098 #line 3120 "parse.y"
8105 #line 3126 "parse.y"
8112 #line 3132 "parse.y"
8119 #line 3138 "parse.y"
8130 #line 3148 "parse.y"
8137 #line 3178 "parse.y"
8140 (yyval.
node) =
NEW_IF(
cond((yyvsp[(2) - (5)].node)), (yyvsp[(4) - (5)].
node), (yyvsp[(5) - (5)].node));
8149 #line 3190 "parse.y"
8152 (yyval.
node) = (yyvsp[(2) - (2)].node);
8160 #line 3204 "parse.y"
8171 #line 3212 "parse.y"
8174 (yyval.
node) = (yyvsp[(2) - (3)].node);
8182 #line 3222 "parse.y"
8193 #line 3230 "parse.y"
8204 #line 3240 "parse.y"
8215 #line 3248 "parse.y"
8227 #line 3257 "parse.y"
8239 #line 3266 "parse.y"
8250 #line 3274 "parse.y"
8261 #line 3282 "parse.y"
8273 #line 3291 "parse.y"
8288 #line 3303 "parse.y"
8299 #line 3311 "parse.y"
8310 #line 3321 "parse.y"
8313 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), (yyvsp[(5) - (6)].
id), 0, (yyvsp[(6) - (6)].
id));
8321 #line 3329 "parse.y"
8324 (yyval.
node) =
new_args((yyvsp[(1) - (8)].node), (yyvsp[(3) - (8)].
node), (yyvsp[(5) - (8)].
id), (yyvsp[(7) - (8)].
node), (yyvsp[(8) - (8)].
id));
8332 #line 3337 "parse.y"
8335 (yyval.
node) =
new_args((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node), 0, 0, (yyvsp[(4) - (4)].
id));
8343 #line 3345 "parse.y"
8346 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), 0, (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
id));
8354 #line 3353 "parse.y"
8357 (yyval.
node) =
new_args((yyvsp[(1) - (4)].node), 0, (yyvsp[(3) - (4)].
id), 0, (yyvsp[(4) - (4)].
id));
8365 #line 3361 "parse.y"
8368 (yyval.
node) =
new_args((yyvsp[(1) - (2)].node), 0, 1, 0, 0);
8377 #line 3370 "parse.y"
8380 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), 0, (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
id));
8388 #line 3378 "parse.y"
8391 (yyval.
node) =
new_args((yyvsp[(1) - (2)].node), 0, 0, 0, (yyvsp[(2) - (2)].
id));
8399 #line 3386 "parse.y"
8402 (yyval.
node) =
new_args(0, (yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), 0, (yyvsp[(4) - (4)].
id));
8410 #line 3394 "parse.y"
8413 (yyval.
node) =
new_args(0, (yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
id));
8421 #line 3402 "parse.y"
8424 (yyval.
node) =
new_args(0, (yyvsp[(1) - (2)].node), 0, 0, (yyvsp[(2) - (2)].
id));
8432 #line 3410 "parse.y"
8435 (yyval.
node) =
new_args(0, (yyvsp[(1) - (4)].node), 0, (yyvsp[(3) - (4)].
node), (yyvsp[(4) - (4)].
id));
8443 #line 3418 "parse.y"
8446 (yyval.
node) =
new_args(0, 0, (yyvsp[(1) - (2)].
id), 0, (yyvsp[(2) - (2)].
id));
8454 #line 3426 "parse.y"
8457 (yyval.
node) =
new_args(0, 0, (yyvsp[(1) - (4)].
id), (yyvsp[(3) - (4)].
node), (yyvsp[(4) - (4)].
id));
8465 #line 3434 "parse.y"
8468 (yyval.
node) =
new_args(0, 0, 0, 0, (yyvsp[(1) - (1)].
id));
8476 #line 3445 "parse.y"
8483 #line 3451 "parse.y"
8495 #line 3460 "parse.y"
8507 #line 3469 "parse.y"
8510 (yyval.
node) = (yyvsp[(2) - (4)].node);
8518 #line 3481 "parse.y"
8529 #line 3507 "parse.y"
8540 #line 3515 "parse.y"
8547 #line 3520 "parse.y"
8554 #line 3523 "parse.y"
8562 #line 3529 "parse.y"
8566 (yyval.
node) = (yyvsp[(3) - (4)].node);
8576 #line 3542 "parse.y"
8587 #line 3550 "parse.y"
8598 #line 3560 "parse.y"
8600 (yyval.
node) = (yyvsp[(2) - (3)].node);
8605 #line 3564 "parse.y"
8607 (yyval.
node) = (yyvsp[(2) - (3)].node);
8612 #line 3570 "parse.y"
8622 #line 3579 "parse.y"
8635 #line 3591 "parse.y"
8644 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
8645 (yyval.
node) = (yyvsp[(2) - (2)].node);
8654 #line 3607 "parse.y"
8657 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
8666 #line 3616 "parse.y"
8669 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
8678 #line 3627 "parse.y"
8690 #line 3636 "parse.y"
8693 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
8703 #line 3646 "parse.y"
8706 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
8716 #line 3656 "parse.y"
8719 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id), 0);
8727 #line 3664 "parse.y"
8741 #line 3675 "parse.y"
8755 #line 3686 "parse.y"
8766 #line 3694 "parse.y"
8777 #line 3702 "parse.y"
8780 if ((yyvsp[(1) - (4)].node) &&
nd_type((yyvsp[(1) - (4)].node)) ==
NODE_SELF)
8783 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node),
tAREF, (yyvsp[(3) - (4)].node));
8792 #line 3716 "parse.y"
8803 #line 3725 "parse.y"
8816 #line 3735 "parse.y"
8827 #line 3744 "parse.y"
8840 #line 3758 "parse.y"
8843 (yyval.
node) =
NEW_WHEN((yyvsp[(2) - (5)].node), (yyvsp[(4) - (5)].
node), (yyvsp[(5) - (5)].node));
8851 #line 3774 "parse.y"
8854 if ((yyvsp[(3) - (6)].node)) {
8858 (yyval.
node) =
NEW_RESBODY((yyvsp[(2) - (6)].node), (yyvsp[(5) - (6)].
node), (yyvsp[(6) - (6)].node));
8871 #line 3794 "parse.y"
8882 #line 3802 "parse.y"
8893 #line 3813 "parse.y"
8895 (yyval.
node) = (yyvsp[(2) - (2)].node);
8900 #line 3820 "parse.y"
8903 (yyval.
node) = (yyvsp[(2) - (2)].node);
8911 #line 3832 "parse.y"
8922 #line 3843 "parse.y"
8925 NODE *node = (yyvsp[(1) - (1)].
node);
8932 (yyval.
node) = node;
8940 #line 3862 "parse.y"
8951 #line 3872 "parse.y"
8954 (yyval.
node) = (yyvsp[(2) - (3)].node);
8962 #line 3882 "parse.y"
8965 NODE *node = (yyvsp[(2) - (3)].
node);
8982 (yyval.
node) = node;
8990 #line 3909 "parse.y"
8994 NODE *node = (yyvsp[(2) - (3)].
node);
9002 VALUE src = node->nd_lit;
9018 for (list = (prev = node)->
nd_next;
list; list = list->nd_next) {
9020 VALUE tail = list->nd_head->nd_lit;
9022 VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
9028 prev->nd_next = list->nd_next;
9041 if (!node->nd_next) {
9042 VALUE src = node->nd_lit;
9048 (yyval.
node) = node;
9056 #line 3974 "parse.y"
9068 #line 3983 "parse.y"
9071 (yyval.
node) = (yyvsp[(2) - (3)].node);
9079 #line 3993 "parse.y"
9090 #line 4001 "parse.y"
9101 #line 4019 "parse.y"
9112 #line 4029 "parse.y"
9124 #line 4038 "parse.y"
9127 (yyval.
node) = (yyvsp[(2) - (3)].node);
9135 #line 4048 "parse.y"
9146 #line 4056 "parse.y"
9157 #line 4066 "parse.y"
9168 #line 4074 "parse.y"
9179 #line 4084 "parse.y"
9190 #line 4092 "parse.y"
9201 #line 4102 "parse.y"
9212 #line 4110 "parse.y"
9215 NODE *head = (yyvsp[(1) - (2)].
node), *tail = (yyvsp[(2) - (2)].node);
9217 (yyval.
node) = tail;
9220 (yyval.
node) = head;
9242 #line 4140 "parse.y"
9251 #line 4146 "parse.y"
9264 #line 4156 "parse.y"
9274 #line 4162 "parse.y"
9283 #line 4168 "parse.y"
9289 if ((yyvsp[(4) - (5)].node)) (yyvsp[(4) - (5)].node)->flags &= ~
NODE_FL_NEWLINE;
9298 #line 4182 "parse.y"
9309 #line 4190 "parse.y"
9320 #line 4198 "parse.y"
9331 #line 4209 "parse.y"
9335 (yyval.
id) = (yyvsp[(2) - (2)].
id);
9343 #line 4226 "parse.y"
9347 if (!((yyval.
node) = (yyvsp[(2) - (3)].
node))) {
9374 #line 4258 "parse.y"
9385 #line 4266 "parse.y"
9396 #line 4282 "parse.y"
9401 #line 4283 "parse.y"
9406 #line 4284 "parse.y"
9411 #line 4285 "parse.y"
9416 #line 4286 "parse.y"
9421 #line 4287 "parse.y"
9426 #line 4288 "parse.y"
9431 #line 4292 "parse.y"
9447 #line 4305 "parse.y"
9458 #line 4315 "parse.y"
9469 #line 4323 "parse.y"
9480 #line 4337 "parse.y"
9491 #line 4345 "parse.y"
9498 #line 4349 "parse.y"
9500 (yyval.
node) = (yyvsp[(3) - (4)].node);
9505 #line 4353 "parse.y"
9518 #line 4365 "parse.y"
9521 (yyval.
node) = (yyvsp[(2) - (3)].node);
9531 #line 4375 "parse.y"
9533 (yyval.
node) = (yyvsp[(1) - (2)].node);
9540 #line 4383 "parse.y"
9543 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), (yyvsp[(5) - (6)].
id), 0, (yyvsp[(6) - (6)].
id));
9551 #line 4391 "parse.y"
9554 (yyval.
node) =
new_args((yyvsp[(1) - (8)].node), (yyvsp[(3) - (8)].
node), (yyvsp[(5) - (8)].
id), (yyvsp[(7) - (8)].
node), (yyvsp[(8) - (8)].
id));
9562 #line 4399 "parse.y"
9565 (yyval.
node) =
new_args((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node), 0, 0, (yyvsp[(4) - (4)].
id));
9573 #line 4407 "parse.y"
9576 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), 0, (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
id));
9584 #line 4415 "parse.y"
9587 (yyval.
node) =
new_args((yyvsp[(1) - (4)].node), 0, (yyvsp[(3) - (4)].
id), 0, (yyvsp[(4) - (4)].
id));
9595 #line 4423 "parse.y"
9598 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), 0, (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
id));
9606 #line 4431 "parse.y"
9609 (yyval.
node) =
new_args((yyvsp[(1) - (2)].node), 0, 0, 0, (yyvsp[(2) - (2)].
id));
9617 #line 4439 "parse.y"
9620 (yyval.
node) =
new_args(0, (yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), 0, (yyvsp[(4) - (4)].
id));
9628 #line 4447 "parse.y"
9631 (yyval.
node) =
new_args(0, (yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
id));
9639 #line 4455 "parse.y"
9642 (yyval.
node) =
new_args(0, (yyvsp[(1) - (2)].node), 0, 0, (yyvsp[(2) - (2)].
id));
9650 #line 4463 "parse.y"
9653 (yyval.
node) =
new_args(0, (yyvsp[(1) - (4)].node), 0, (yyvsp[(3) - (4)].
node), (yyvsp[(4) - (4)].
id));
9661 #line 4471 "parse.y"
9664 (yyval.
node) =
new_args(0, 0, (yyvsp[(1) - (2)].
id), 0, (yyvsp[(2) - (2)].
id));
9672 #line 4479 "parse.y"
9675 (yyval.
node) =
new_args(0, 0, (yyvsp[(1) - (4)].
id), (yyvsp[(3) - (4)].
node), (yyvsp[(4) - (4)].
id));
9683 #line 4487 "parse.y"
9686 (yyval.
node) =
new_args(0, 0, 0, 0, (yyvsp[(1) - (1)].
id));
9694 #line 4495 "parse.y"
9705 #line 4505 "parse.y"
9708 yyerror(
"formal argument cannot be a constant");
9717 #line 4514 "parse.y"
9720 yyerror(
"formal argument cannot be an instance variable");
9729 #line 4523 "parse.y"
9732 yyerror(
"formal argument cannot be a global variable");
9741 #line 4532 "parse.y"
9744 yyerror(
"formal argument cannot be a class variable");
9753 #line 4544 "parse.y"
9756 (yyval.
id) = (yyvsp[(1) - (1)].
id);
9761 #line 4551 "parse.y"
9773 #line 4560 "parse.y"
9793 #line 4586 "parse.y"
9796 (yyval.
node) = (yyvsp[(1) - (3)].node);
9807 #line 4599 "parse.y"
9820 #line 4611 "parse.y"
9833 #line 4623 "parse.y"
9836 (yyval.
node) = (yyvsp[(1) - (1)].node);
9844 #line 4631 "parse.y"
9847 NODE *opts = (yyvsp[(1) - (3)].
node);
9849 while (opts->nd_next) {
9850 opts = opts->nd_next;
9852 opts->nd_next = (yyvsp[(3) - (3)].
node);
9853 (yyval.
node) = (yyvsp[(1) - (3)].node);
9861 #line 4647 "parse.y"
9864 (yyval.
node) = (yyvsp[(1) - (1)].node);
9872 #line 4655 "parse.y"
9875 NODE *opts = (yyvsp[(1) - (3)].
node);
9877 while (opts->nd_next) {
9878 opts = opts->nd_next;
9880 opts->nd_next = (yyvsp[(3) - (3)].
node);
9881 (yyval.
node) = (yyvsp[(1) - (3)].node);
9889 #line 4675 "parse.y"
9893 yyerror(
"rest argument must be local variable");
9897 (yyval.
id) = (yyvsp[(2) - (2)].
id);
9905 #line 4688 "parse.y"
9917 #line 4703 "parse.y"
9921 yyerror(
"block argument must be local variable");
9923 yyerror(
"duplicated block argument name");
9927 (yyval.
id) = (yyvsp[(2) - (2)].
id);
9935 #line 4720 "parse.y"
9937 (yyval.
id) = (yyvsp[(2) - (2)].
id);
9942 #line 4724 "parse.y"
9953 #line 4734 "parse.y"
9957 (yyval.
node) = (yyvsp[(1) - (1)].node);
9966 #line 4743 "parse.y"
9971 #line 4744 "parse.y"
9974 if ((yyvsp[(3) - (4)].node) == 0) {
9975 yyerror(
"can't define singleton method for ().");
9978 switch (
nd_type((yyvsp[(3) - (4)].node))) {
9987 yyerror(
"can't define singleton method for literals");
9993 (yyval.
node) = (yyvsp[(3) - (4)].node);
10001 #line 4774 "parse.y"
10004 (yyval.
node) = (yyvsp[(1) - (2)].node);
10012 #line 4791 "parse.y"
10023 #line 4801 "parse.y"
10034 #line 4809 "parse.y"
10045 #line 4865 "parse.y"
10050 #line 4870 "parse.y"
10055 #line 4874 "parse.y"
10067 #line 10066 "parse.c"
10085 yystate = yypgoto[yyn -
YYNTOKENS] + *yyssp;
10086 if (0 <= yystate && yystate <=
YYLAST && yycheck[yystate] == *yyssp)
10087 yystate = yytable[yystate];
10102 #if ! YYERROR_VERBOSE
10112 if (yymsg != yymsgbuf)
10116 yymsg_alloc = yyalloc;
10120 yymsg_alloc =
sizeof yymsgbuf;
10124 if (0 < yysize && yysize <= yymsg_alloc)
10133 goto yyexhaustedlab;
10141 if (yyerrstatus == 3)
10146 if (yychar <=
YYEOF)
10149 if (yychar ==
YYEOF)
10155 yytoken, &yylval, parser);
10193 yyn = yypact[yystate];
10199 yyn = yytable[yyn];
10211 yystos[yystate], yyvsp, parser);
10256 yydestruct (
"Cleanup: discarding lookahead",
10257 yytoken, &yylval, parser);
10262 while (yyssp != yyss)
10265 yystos[*yyssp], yyvsp, parser);
10272 #if YYERROR_VERBOSE
10273 if (yymsg != yymsgbuf)
10277 return YYID (yyresult);
10281 #line 4882 "parse.y"
10286 # define yylval (*((YYSTYPE*)(parser->parser_yylval)))
10295 # define nextc() parser_nextc(parser)
10296 # define pushback(c) parser_pushback(parser, (c))
10297 # define newtok() parser_newtok(parser)
10298 # define tokspace(n) parser_tokspace(parser, (n))
10299 # define tokadd(c) parser_tokadd(parser, (c))
10300 # define tok_hex(numlen) parser_tok_hex(parser, (numlen))
10301 # define read_escape(flags,e) parser_read_escape(parser, (flags), (e))
10302 # define tokadd_escape(e) parser_tokadd_escape(parser, (e))
10303 # define regx_options() parser_regx_options(parser)
10304 # define tokadd_string(f,t,p,n,e) parser_tokadd_string(parser,(f),(t),(p),(n),(e))
10305 # define parse_string(n) parser_parse_string(parser,(n))
10306 # define tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc))
10307 # define here_document(n) parser_here_document(parser,(n))
10308 # define heredoc_identifier() parser_heredoc_identifier(parser)
10309 # define heredoc_restore(n) parser_heredoc_restore(parser,(n))
10310 # define whole_match_p(e,l,i) parser_whole_match_p(parser,(e),(l),(i))
10313 # define set_yylval_str(x) (yylval.node = NEW_STR(x))
10314 # define set_yylval_num(x) (yylval.num = (x))
10315 # define set_yylval_id(x) (yylval.id = (x))
10316 # define set_yylval_name(x) (yylval.id = (x))
10317 # define set_yylval_literal(x) (yylval.node = NEW_LIT(x))
10318 # define set_yylval_node(x) (yylval.node = (x))
10319 # define yylval_id() (yylval.id)
10321 static inline VALUE
10322 ripper_yylval_id(
ID x)
10326 # define set_yylval_str(x) (void)(x)
10327 # define set_yylval_num(x) (void)(x)
10328 # define set_yylval_id(x) (void)(x)
10329 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x))
10330 # define set_yylval_literal(x) (void)(x)
10331 # define set_yylval_node(x) (void)(x)
10332 # define yylval_id() yylval.id
10336 #define ripper_flush(p) (void)(p)
10338 #define ripper_flush(p) ((p)->tokp = (p)->parser_lex_p)
10340 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val))
10347 return lex_p > parser->tokp;
10360 ripper_dispatch_scan_event(
struct parser_params *parser,
int t)
10362 if (!ripper_has_scan_event(parser))
return;
10363 yylval_rval = ripper_scan_event_val(parser, t);
10367 ripper_dispatch_ignored_scan_event(
struct parser_params *parser,
int t)
10369 if (!ripper_has_scan_event(parser))
return;
10370 (void)ripper_scan_event_val(parser, t);
10374 ripper_dispatch_delayed_token(
struct parser_params *parser,
int t)
10377 const char *saved_tokp = parser->tokp;
10380 parser->tokp =
lex_pbeg + parser->delayed_col;
10382 parser->delayed =
Qnil;
10384 parser->tokp = saved_tokp;
10395 #undef SIGN_EXTEND_CHAR
10397 # define SIGN_EXTEND_CHAR(c) ((signed char)(c))
10400 # define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128)
10403 #define parser_encoding_name() (parser->enc->name)
10404 #define parser_mbclen() mbclen((lex_p-1),lex_pend,parser->enc)
10405 #define parser_precise_mbclen() rb_enc_precise_mbclen((lex_p-1),lex_pend,parser->enc)
10406 #define is_identchar(p,e,enc) (rb_enc_isalnum(*(p),(enc)) || (*(p)) == '_' || !ISASCII(*(p)))
10407 #define parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,parser->enc))
10409 #define parser_isascii() ISASCII(*(lex_p-1))
10417 for (p =
lex_pbeg; p < pend; p++) {
10419 column = (((column - 1) / 8) + 1) * 8;
10430 for (p =
lex_pbeg; p < pend; p++) {
10431 if (*p !=
' ' && *p !=
'\t') {
10438 #undef token_info_push
10455 #undef token_info_pop
10462 if (!ptinfo)
return;
10468 if (linenum == ptinfo->
linenum) {
10476 "mismatched indentations at '%s' with '%s' at %d",
10489 const int max_line_margin = 30;
10490 const char *
p, *pe;
10498 if (*p ==
'\n')
break;
10505 if (*pe ==
'\n')
break;
10512 const char *pre =
"", *post =
"";
10514 if (len > max_line_margin * 2 + 10) {
10515 if (
lex_p - p > max_line_margin) {
10519 if (pe -
lex_p > max_line_margin) {
10526 MEMCPY(buf, p,
char, len);
10530 i = (int)(
lex_p - p);
10531 p2 =
buf; pe = buf +
len;
10534 if (*p2 !=
'\t') *p2 =
' ';
10542 dispatch1(parse_error,
STR_NEW2(msg));
10554 CONST_ID(script_lines,
"SCRIPT_LINES__");
10571 if (
RTEST(coverages) &&
RBASIC(coverages)->klass == 0) {
10575 RBASIC(lines)->klass = 0;
10577 RARRAY(lines)->as.heap.len = n;
10625 if (parser->
nerr) {
10635 return (
VALUE)tree;
10660 char *beg, *end, *pend;
10670 while (end < pend) {
10671 if (*end++ ==
'\n')
break;
10681 if (
NIL_P(line))
return line;
10705 volatile VALUE tmp;
10766 volatile VALUE tmp;
10782 #define STR_FUNC_ESCAPE 0x01
10783 #define STR_FUNC_EXPAND 0x02
10784 #define STR_FUNC_REGEXP 0x04
10785 #define STR_FUNC_QWORDS 0x08
10786 #define STR_FUNC_SYMBOL 0x10
10787 #define STR_FUNC_INDENT 0x20
10817 #define lex_goto_eol(parser) ((parser)->parser_lex_p = (parser)->parser_lex_pend)
10818 #define lex_eol_p() (lex_p >= lex_pend)
10819 #define peek(c) peek_n((c), 0)
10820 #define peek_n(c,n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n])
10843 if (
NIL_P(parser->delayed)) {
10847 parser->tokp,
lex_pend - parser->tokp);
10849 parser->delayed_col = (int)(parser->tokp -
lex_pbeg);
10853 parser->tokp,
lex_pend - parser->tokp);
10869 c = (
unsigned char)*
lex_p++;
10870 if (c ==
'\r' &&
peek(
'\n')) {
10881 if (c == -1)
return;
10888 #define was_bol() (lex_p == lex_pbeg + 1)
10890 #define tokfix() (tokenbuf[tokidx]='\0')
10891 #define tok() tokenbuf
10892 #define toklen() tokidx
10893 #define toklast() (tokidx>0?tokenbuf[tokidx-1]:0)
10939 yyerror(
"invalid hex escape");
10946 #define tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n))
10950 int string_literal,
int symbol_literal,
int regexp_literal)
10970 yyerror(
"invalid Unicode escape");
10973 if (codepoint > 0x10ffff) {
10974 yyerror(
"invalid Unicode codepoint (too large)");
10978 if (regexp_literal) {
10981 else if (codepoint >= 0x80) {
10983 if (string_literal)
tokaddmbc(codepoint, *encp);
10985 else if (string_literal) {
10988 }
while (string_literal && (
peek(
' ') ||
peek(
'\t')));
10991 yyerror(
"unterminated Unicode escape");
10995 if (regexp_literal) {
tokadd(
'}'); }
11001 yyerror(
"invalid Unicode escape");
11005 if (regexp_literal) {
11008 else if (codepoint >= 0x80) {
11010 if (string_literal)
tokaddmbc(codepoint, *encp);
11012 else if (string_literal) {
11020 #define ESCAPE_CONTROL 1
11021 #define ESCAPE_META 2
11030 switch (c =
nextc()) {
11055 case '0':
case '1':
case '2':
case '3':
11056 case '4':
case '5':
case '6':
case '7':
11064 if (numlen == 0)
return 0;
11075 if ((c =
nextc()) !=
'-') {
11079 if ((c =
nextc()) ==
'\\') {
11080 if (
peek(
'u'))
goto eof;
11081 return read_escape(flags|ESCAPE_META, encp) | 0x80;
11083 else if (c == -1 || !
ISASCII(c))
goto eof;
11085 return ((c & 0xff) | 0x80);
11089 if ((c =
nextc()) !=
'-') {
11095 if ((c =
nextc())==
'\\') {
11096 if (
peek(
'u'))
goto eof;
11101 else if (c == -1 || !
ISASCII(c))
goto eof;
11106 yyerror(
"Invalid escape character syntax");
11129 switch (c =
nextc()) {
11133 case '0':
case '1':
case '2':
case '3':
11134 case '4':
case '5':
case '6':
case '7':
11137 if (numlen == 0)
goto eof;
11146 if (numlen == 0)
return -1;
11153 if ((c =
nextc()) !=
'-') {
11163 if ((c =
nextc()) !=
'-') {
11171 if (flags & ESCAPE_CONTROL)
goto eof;
11175 if ((c =
nextc()) ==
'\\') {
11178 else if (c == -1)
goto eof;
11184 yyerror(
"Invalid escape character syntax");
11253 #define tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c))
11257 int func,
int term,
int paren,
long *nest,
11261 int has_nonascii = 0;
11264 static const char mixed_msg[] =
"%s mixed within %s source";
11266 #define mixed_error(enc1, enc2) if (!errbuf) { \
11267 size_t len = sizeof(mixed_msg) - 4; \
11268 len += strlen(rb_enc_name(enc1)); \
11269 len += strlen(rb_enc_name(enc2)); \
11270 errbuf = ALLOCA_N(char, len); \
11271 snprintf(errbuf, len, mixed_msg, \
11272 rb_enc_name(enc1), \
11273 rb_enc_name(enc2)); \
11276 #define mixed_escape(beg, enc1, enc2) do { \
11277 const char *pos = lex_p; \
11279 mixed_error((enc1), (enc2)); \
11283 while ((c =
nextc()) != -1) {
11284 if (paren && c == paren) {
11287 else if (c == term) {
11288 if (!nest || !*nest) {
11296 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
11301 else if (c ==
'\\') {
11302 const char *beg =
lex_p - 1;
11307 if (func & STR_FUNC_EXPAND)
continue;
11316 if ((func & STR_FUNC_EXPAND) == 0) {
11323 if (has_nonascii && enc != *encp) {
11329 if (c == -1)
return -1;
11331 if ((func & STR_FUNC_EXPAND) == 0)
tokadd(
'\\');
11334 if (func & STR_FUNC_REGEXP) {
11338 if (has_nonascii && enc != *encp) {
11343 else if (func & STR_FUNC_EXPAND) {
11345 if (func & STR_FUNC_ESCAPE)
tokadd(
'\\');
11348 else if ((func & STR_FUNC_QWORDS) &&
ISSPACE(c)) {
11351 else if (c != term && !(paren && c == paren)) {
11361 if (enc != *encp) {
11374 if (enc != *encp) {
11385 #define NEW_STRTERM(func, term, paren) \
11386 rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0)
11392 if (!
NIL_P(parser->delayed)) {
11393 ptrdiff_t
len =
lex_p - parser->tokp;
11398 parser->tokp =
lex_p;
11402 #define flush_string_content(enc) ripper_flush_string_content(parser, (enc))
11404 #define flush_string_content(enc) ((void)(enc))
11410 int func = (int)quote->nd_func;
11422 if (c == term && !quote->nd_nest) {
11423 if (func & STR_FUNC_QWORDS) {
11424 quote->nd_func = -1;
11437 switch (c =
nextc()) {
11491 while ((c =
nextc()) != -1 && c != term) {
11538 line = here->nd_orig;
11552 const char *eos,
long len,
int indent)
11558 while (*p &&
ISSPACE(*p)) p++;
11561 if (n < 0 || (n > 0 && p[len] !=
'\n' && p[len] !=
'\r'))
return FALSE;
11562 return strncmp(eos, p, len) == 0;
11569 if (!
NIL_P(parser->delayed))
11572 ripper_dispatch_ignored_scan_event(parser,
tHEREDOC_END);
11575 #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser)
11577 #define dispatch_heredoc_end() ((void)0)
11583 int c,
func, indent = 0;
11584 const char *eos, *
p, *pend;
11593 if ((c =
nextc()) == -1) {
11597 if (
NIL_P(parser->delayed)) {
11602 ((len =
lex_p - parser->tokp) > 0 &&
11603 (str =
STR_NEW3(parser->tokp, len, enc, func), 1))) {
11626 switch (pend[-1]) {
11628 if (--pend == p || pend[-1] !=
'\r') {
11642 if (
nextc() == -1) {
11652 switch (c =
nextc()) {
11665 if (parser->
eofp)
goto error;
11675 if ((c =
nextc()) == -1)
goto error;
11692 rb_warning0(
"ambiguous first argument; put parentheses or even spaces");
11697 #define arg_ambiguous() (arg_ambiguous_gen(parser), 1)
11704 yyerror(
"formal argument must be local variable");
11722 if (len > 5 && name[nlen = len - 5] ==
'-') {
11723 if (
rb_memcicmp(name + nlen + 1,
"unix", 4) == 0)
11726 if (len > 4 && name[nlen = len - 4] ==
'-') {
11729 if (
rb_memcicmp(name + nlen + 1,
"mac", 3) == 0 &&
11730 !(len == 8 &&
rb_memcicmp(name,
"utf8-mac", len) == 0))
11745 excargs[1] =
rb_sprintf(
"unknown encoding name: %s", name);
11762 for (i = 0; i < n; ++
i) {
11800 case 't':
case 'T':
11806 case 'f':
case 'F':
11829 static const char *
11837 if (str[i-1] ==
'*' && str[i-2] ==
'-') {
11838 return str + i + 1;
11843 if (i + 1 >= len)
return 0;
11844 if (str[i+1] !=
'-') {
11847 else if (str[i-1] !=
'-') {
11851 return str + i + 2;
11865 VALUE name = 0, val = 0;
11866 const char *beg, *end, *vbeg, *vend;
11867 #define str_copy(_s, _p, _n) ((_s) \
11868 ? (void)(rb_str_resize((_s), (_n)), \
11869 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \
11870 : (void)((_s) = STR_NEW((_p), (_n))))
11872 if (len <= 7)
return FALSE;
11876 len = end - beg - 3;
11887 for (; len > 0 && *str; str++, --
len) {
11889 case '\'':
case '"':
case ':':
case ';':
11894 for (beg = str; len > 0; str++, --
len) {
11896 case '\'':
case '"':
case ':':
case ';':
11904 for (end = str; len > 0 &&
ISSPACE(*str); str++, --
len);
11906 if (*str !=
':')
continue;
11908 do str++;
while (--len > 0 &&
ISSPACE(*str));
11911 for (vbeg = ++str; --len > 0 && *str !=
'"'; str++) {
11912 if (*str ==
'\\') {
11924 for (vbeg = str; len > 0 && *str !=
'"' && *str !=
';' && !
ISSPACE(*str); --
len, str++);
11927 while (len > 0 && (*str ==
';' ||
ISSPACE(*str))) --len, str++;
11932 for (i = 0; i < n; ++
i) {
11933 if (s[i] ==
'-') s[
i] =
'_';
11940 n = (*p->
length)(parser, vbeg, n);
11946 }
while (++p < magic_comments +
numberof(magic_comments));
11959 const char *beg = str;
11963 if (send - str <= 6)
return;
11965 case 'C':
case 'c': str += 6;
continue;
11966 case 'O':
case 'o': str += 5;
continue;
11967 case 'D':
case 'd': str += 4;
continue;
11968 case 'I':
case 'i': str += 3;
continue;
11969 case 'N':
case 'n': str += 2;
continue;
11970 case 'G':
case 'g': str += 1;
continue;
11971 case '=':
case ':':
11984 if (++str >= send)
return;
11987 if (*str !=
'=' && *str !=
':')
return;
11992 while ((*str ==
'-' || *str ==
'_' ||
ISALNUM(*str)) && ++str < send);
12008 (
unsigned char)
lex_p[0] == 0xbb &&
12009 (
unsigned char)
lex_p[1] == 0xbf) {
12023 #define IS_ARG() (lex_state == EXPR_ARG || lex_state == EXPR_CMDARG)
12024 #define IS_END() (lex_state == EXPR_END || lex_state == EXPR_ENDARG || lex_state == EXPR_ENDFN)
12025 #define IS_BEG() (lex_state == EXPR_BEG || lex_state == EXPR_MID || lex_state == EXPR_VALUE || lex_state == EXPR_CLASS)
12026 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c))
12027 #define IS_LABEL_POSSIBLE() ((lex_state == EXPR_BEG && !cmd_state) || IS_ARG())
12028 #define IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1))
12031 #define ambiguous_operator(op, syn) ( \
12032 rb_warning0("`"op"' after local variable is interpreted as binary operator"), \
12033 rb_warning0("even though it seems like "syn""))
12035 #define ambiguous_operator(op, syn) dispatch2(operator_ambiguous, ripper_intern(op), rb_str_new_cstr(syn))
12037 #define warn_balanced(op, syn) ((void) \
12038 (last_state != EXPR_CLASS && last_state != EXPR_DOT && \
12039 last_state != EXPR_FNAME && last_state != EXPR_ENDFN && \
12040 last_state != EXPR_ENDARG && \
12041 space_seen && !ISSPACE(c) && \
12042 (ambiguous_operator(op, syn), 0)))
12048 int space_seen = 0;
12054 int fallthru =
FALSE;
12080 switch (c =
nextc()) {
12088 case ' ':
case '\t':
case '\f':
case '\r':
12092 while ((c =
nextc())) {
12094 case ' ':
case '\t':
case '\f':
case '\r':
12103 ripper_dispatch_scan_event(parser,
tSP);
12116 ripper_dispatch_scan_event(parser,
tCOMMENT);
12137 while ((c =
nextc())) {
12139 case ' ':
case '\t':
case '\f':
case '\r':
12144 if ((c =
nextc()) !=
'.') {
12157 parser->tokp =
lex_p;
12160 goto normal_newline;
12169 if ((c =
nextc()) ==
'*') {
12170 if ((c =
nextc()) ==
'=') {
12186 rb_warning0(
"`*' interpreted as argument prefix");
12230 int first_p =
TRUE;
12239 ripper_dispatch_scan_event(parser,
tEMBDOC);
12248 if (c !=
'=')
continue;
12249 if (strncmp(
lex_p,
"end", 3) == 0 &&
12268 if ((c =
nextc()) ==
'=') {
12269 if ((c =
nextc()) ==
'=') {
12278 else if (c ==
'>') {
12291 (!
IS_ARG() || space_seen)) {
12293 if (token)
return token;
12302 if ((c =
nextc()) ==
'>') {
12309 if ((c =
nextc()) ==
'=') {
12328 if ((c =
nextc()) ==
'=') {
12332 if ((c =
nextc()) ==
'=') {
12400 rb_warnI(
"invalid character syntax; use ?\\%c", c2);
12417 else if (c ==
'\\') {
12446 if ((c =
nextc()) ==
'&') {
12448 if ((c =
nextc()) ==
'=') {
12456 else if (c ==
'=') {
12463 rb_warning0(
"`&' interpreted as argument prefix");
12482 if ((c =
nextc()) ==
'|') {
12484 if ((c =
nextc()) ==
'=') {
12569 if ((c =
nextc()) ==
'.') {
12570 if ((c =
nextc()) ==
'.') {
12578 yyerror(
"no .<digit> floating literal anymore; put 0 before dot");
12584 case '0':
case '1':
case '2':
case '3':
case '4':
12585 case '5':
case '6':
case '7':
case '8':
case '9':
12587 int is_float, seen_point, seen_e, nondigit;
12589 is_float = seen_point = seen_e = nondigit = 0;
12592 if (c ==
'-' || c ==
'+') {
12597 #define no_digits() do {yyerror("numeric literal without digits"); return 0;} while (0)
12600 if (c ==
'x' || c ==
'X') {
12606 if (nondigit)
break;
12613 }
while ((c =
nextc()) != -1);
12617 if (
toklen() == start) {
12620 else if (nondigit)
goto trailing_uc;
12624 if (c ==
'b' || c ==
'B') {
12627 if (c ==
'0' || c ==
'1') {
12630 if (nondigit)
break;
12634 if (c !=
'0' && c !=
'1')
break;
12637 }
while ((c =
nextc()) != -1);
12641 if (
toklen() == start) {
12644 else if (nondigit)
goto trailing_uc;
12648 if (c ==
'd' || c ==
'D') {
12654 if (nondigit)
break;
12661 }
while ((c =
nextc()) != -1);
12665 if (
toklen() == start) {
12668 else if (nondigit)
goto trailing_uc;
12676 if (c ==
'o' || c ==
'O') {
12679 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
12683 if (c >=
'0' && c <=
'7') {
12688 if (nondigit)
break;
12692 if (c < '0' || c >
'9')
break;
12693 if (c >
'7')
goto invalid_octal;
12696 }
while ((c =
nextc()) != -1);
12700 if (nondigit)
goto trailing_uc;
12709 if (c >
'7' && c <=
'9') {
12711 yyerror(
"Invalid octal digit");
12713 else if (c ==
'.' || c ==
'e' || c ==
'E') {
12725 case '0':
case '1':
case '2':
case '3':
case '4':
12726 case '5':
case '6':
case '7':
case '8':
case '9':
12732 if (nondigit)
goto trailing_uc;
12733 if (seen_point || seen_e) {
12738 if (c0 == -1 || !
ISDIGIT(c0)) {
12766 if (c !=
'-' && c !=
'+')
continue;
12772 if (nondigit)
goto decode_num;
12787 snprintf(tmp,
sizeof(tmp),
"trailing `%c' in number", nondigit);
12793 if (
errno == ERANGE) {
12851 if ((c =
nextc()) ==
'=') {
12872 if ((c =
nextc()) ==
'=') {
12897 if ((c =
nextc()) !=
'@') {
12924 if ((c =
nextc()) ==
']') {
12925 if ((c =
nextc()) ==
'=') {
12937 else if (
IS_ARG() && space_seen) {
12971 ripper_dispatch_scan_event(parser,
tSP);
12985 if (c == -1 || !
ISALNUM(c)) {
12992 yyerror(
"unknown type of %string");
12996 if (c == -1 || term == -1) {
13001 if (term ==
'(') term =
')';
13002 else if (term ==
'[') term =
']';
13003 else if (term ==
'{') term =
'}';
13004 else if (term ==
'<') term =
'>';
13042 yyerror(
"unknown type of %string");
13046 if ((c =
nextc()) ==
'=') {
13128 case '1':
case '2':
case '3':
13129 case '4':
case '5':
case '6':
13130 case '7':
case '8':
case '9':
13135 }
while (c != -1 &&
ISDIGIT(c));
13183 ripper_dispatch_scan_event(parser,
k__END__);
13206 switch (
tok()[0]) {
13207 case '@':
case '$':
13211 if ((c ==
'!' || c ==
'?') && !
peek(
'=')) {
13224 switch (
tok()[0]) {
13231 if (
tok()[1] ==
'@')
13298 if (kw->
id[0] != kw->
id[1])
13351 if (!
NIL_P(parser->delayed)) {
13352 ripper_dispatch_delayed_token(parser, t);
13356 ripper_dispatch_scan_event(parser, t);
13398 if (orig == (
NODE*)1)
return;
13407 #define parser_warning(node, mesg) parser_warning(parser, (node), (mesg))
13414 #define parser_warn(node, mesg) parser_warn(parser, (node), (mesg))
13419 NODE *end, *h = head, *nd;
13421 if (tail == 0)
return head;
13423 if (h == 0)
return tail;
13462 tail->nd_end = tail;
13464 end->nd_next = tail;
13465 h->nd_end = tail->nd_end;
13475 if (list == 0)
return NEW_LIST(item);
13476 if (list->nd_next) {
13477 last = list->nd_next->nd_end;
13483 list->nd_alen += 1;
13485 list->nd_next->nd_end = last->nd_next;
13495 if (head->nd_next) {
13496 last = head->nd_next->nd_end;
13502 head->nd_alen += tail->nd_alen;
13503 last->nd_next = tail;
13504 if (tail->nd_next) {
13505 head->nd_next->nd_end = tail->nd_next->nd_end;
13508 head->nd_next->nd_end = tail;
13517 if (
NIL_P(tail))
return 1;
13536 if (!head)
return tail;
13537 if (!tail)
return head;
13564 tail->nd_lit = head->nd_lit;
13568 else if (
NIL_P(tail->nd_lit)) {
13569 head->nd_alen += tail->nd_alen - 1;
13570 head->nd_next->nd_end->nd_next = tail->nd_next;
13571 head->nd_next->nd_end = tail->nd_next->nd_end;
13576 tail->nd_head =
NEW_STR(tail->nd_lit);
13715 switch (
id & ID_SCOPE_MASK) {
13740 # define assignable_result(x) get_value(lhs)
13741 # define parser_yyerror(parser, x) dispatch1(assign_error, lhs)
13743 # define assignable_result(x) (x)
13747 yyerror(
"Can't change the value of self");
13750 yyerror(
"Can't assign to nil");
13753 yyerror(
"Can't assign to true");
13756 yyerror(
"Can't assign to false");
13759 yyerror(
"Can't assign to __FILE__");
13762 yyerror(
"Can't assign to __LINE__");
13765 yyerror(
"Can't assign to __ENCODING__");
13799 yyerror(
"dynamic constant assignment");
13808 #undef assignable_result
13809 #undef parser_yyerror
13812 #define LVAR_USED ((int)1 << (sizeof(int) * CHAR_BIT - 1))
13817 if (idUScore == name)
return name;
13820 yyerror(
"duplicated argument name");
13832 yyerror(
"duplicated argument name");
13871 id &= ~ID_SCOPE_MASK;
13900 if (!node2)
return node1;
13903 if (node1->nd_head)
13904 node1->nd_head =
arg_concat(node1->nd_head, node2);
13916 node1->nd_body =
list_concat(node1->nd_body, node2);
13925 if (!node1)
return NEW_LIST(node2);
13930 node1->nd_head =
arg_append(node1->nd_head, node2);
13951 if (!lhs)
return 0;
13963 lhs->nd_value = rhs;
13968 lhs->nd_args =
arg_append(lhs->nd_args, rhs);
13999 if (!cond)
yyerror(
"void value expression");
14004 while (node->nd_next) {
14005 node = node->nd_next;
14007 node = node->nd_head;
14011 node = node->nd_body;
14015 if (!node->nd_body) {
14016 node = node->nd_else;
14019 else if (!node->nd_else) {
14020 node = node->nd_body;
14024 node = node->nd_else;
14030 node = node->nd_2nd;
14044 const char *useless = 0;
14051 switch (node->nd_mid) {
14082 useless =
"a variable";
14085 useless =
"a constant";
14092 useless =
"a literal";
14117 useless =
"defined?";
14125 rb_warnS(
"possibly useless use of %s in void context", useless);
14138 if (!node->nd_next)
return;
14140 node = node->nd_next;
14147 NODE **n = &node, *n1 = node;
14149 *n = n1 = n1->nd_body;
14157 NODE *node = *body;
14163 #define subnodes(n1, n2) \
14164 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \
14165 (!node->n2) ? (body = &node->n1, 1) : \
14166 (reduce_nodes(&node->n1), body = &node->n2, 1))
14176 *body = node = node->nd_stts;
14180 *body = node = node->nd_body;
14184 body = &node->nd_end->nd_head;
14190 body = &node->nd_body;
14199 if (node->nd_else) {
14200 body = &node->nd_resq;
14220 yyerror(
"multiple assignment in conditional");
14234 if (!node->nd_value)
return 1;
14235 switch (
nd_type(node->nd_value)) {
14242 parser_warn(node->nd_value,
"found = in conditional, should be ==");
14271 NODE *node, *next, *head;
14273 for (node = *rootnode; node; node = next) {
14277 next = node->nd_next;
14278 head = node->nd_head;
14281 switch (type =
nd_type(head)) {
14284 val =
rb_range_new(head->nd_beg->nd_lit, head->nd_end->nd_lit,
14289 head->nd_lit = val;
14304 if (node == 0)
return 0;
14312 return cond0(parser, node);
14318 if (!node)
return 1;
14339 if (node == 0)
return 0;
14346 rb_warn0(
"string literal in condition");
14356 node->nd_1st =
cond0(parser, node->nd_1st);
14357 node->nd_2nd =
cond0(parser, node->nd_2nd);
14362 node->nd_beg =
range_op(parser, node->nd_beg);
14363 node->nd_end =
range_op(parser, node->nd_end);
14396 if (node == 0)
return 0;
14397 return cond0(parser, node);
14405 NODE *node = left, *second;
14406 while ((second = node->nd_2nd) != 0 && (
enum node_type)
nd_type(second) == type) {
14409 node->nd_2nd =
NEW_NODE(type, second, right, 0);
14412 return NEW_NODE(type, left, right, 0);
14429 if (node->nd_next == 0) {
14430 node = node->nd_head;
14460 switch (
TYPE(node->nd_lit)) {
14480 node2->nd_head = node1;
14493 node =
NEW_ARGS(m ? m->nd_plen : 0, o);
14494 i1 = m ? m->nd_next : 0;
14499 node->nd_next->nd_next =
NEW_ARGS_AUX(p->nd_pid, p->nd_plen);
14518 if (!local->
used)
return;
14522 if (cnt != local->
vars->
pos) {
14523 rb_bug(
"local->used->pos != local->vars->pos");
14525 for (i = 0; i <
cnt; ++
i) {
14526 if (!v[i] || (u[i] &
LVAR_USED))
continue;
14527 if (idUScore == v[i])
continue;
14567 for (i = 0; i <
cnt; i++) {
14568 buf[
i] = src->
tbl[
i];
14581 if (cnt <= 0)
return 0;
14612 vars =
lvtbl->vars;
14613 args =
lvtbl->args;
14614 used =
lvtbl->used;
14619 if (used) used = used->
prev;
14635 static const struct vtable *
14643 return lvtbl->args;
14651 if ((tmp =
lvtbl->used) != 0) {
14667 while (
lvtbl->args != lvargs) {
14669 if (!
lvtbl->args) {
14690 args =
lvtbl->args;
14691 vars =
lvtbl->vars;
14692 used =
lvtbl->used;
14705 if (used) used = used->
prev;
14758 "regexp encoding option '%c' differs from source encoding '%s'",
14787 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
14793 const char *s = (
const char *)name;
14810 rb_warningS(
"named capture conflicts a local variable - %s",
14890 NODE *scope = node;
14893 if (!node)
return node;
14897 node = node->nd_body;
14901 node = node->nd_body;
14908 prelude->nd_body = node;
14909 scope->nd_body = prelude;
14912 scope->nd_body = node;
14922 NODE *scope = node;
14925 if (!node)
return node;
14929 node = node->nd_body;
14933 node = node->nd_body;
14949 prelude->nd_body = node;
14950 scope->nd_body = prelude;
14953 scope->nd_body = node;
14959 static const struct {
14965 {
'+',
"+(binary)"},
14966 {
'-',
"-(binary)"},
14985 #define op_tbl_count numberof(op_tbl)
14987 #ifndef ENABLE_SELECTOR_NAMESPACE
14988 #define ENABLE_SELECTOR_NAMESPACE 0
14995 #if ENABLE_SELECTOR_NAMESPACE
15007 #if ENABLE_SELECTOR_NAMESPACE
15014 ivar2_cmp(
struct ivar2_key *key1,
struct ivar2_key *key2)
15016 if (key1->id == key2->id && key1->klass == key2->klass) {
15023 ivar2_hash(
struct ivar2_key *
key)
15025 return (key->id << 8) ^ (key->klass >> 2);
15039 #if ENABLE_SELECTOR_NAMESPACE
15070 if (m >= e)
return 0;
15072 case '~':
case '*':
case '$':
case '?':
case '!':
case '@':
15073 case '/':
case '\\':
case ';':
case ',':
case '.':
case '=':
15074 case ':':
case '<':
case '>':
case '\"':
15075 case '&':
case '`':
case '\'':
case '+':
15093 return m == e ? mb + 1 : 0;
15111 const char *m =
name;
15112 const char *e = m +
len;
15113 int localid =
FALSE;
15115 if (!m || len <= 0)
return FALSE;
15125 if (*++m ==
'@') ++m;
15130 case '<': ++m;
break;
15131 case '=':
if (*++m ==
'>') ++m;
break;
15138 case '>':
case '=': ++m;
break;
15144 case '~': ++m;
break;
15145 case '=':
if (*++m ==
'=') ++m;
break;
15146 default:
return FALSE;
15151 if (*++m ==
'*') ++m;
15154 case '+':
case '-':
15155 if (*++m ==
'@') ++m;
15158 case '|':
case '^':
case '&':
case '/':
case '%':
case '~':
case '`':
15163 if (*++m !=
']')
return FALSE;
15164 if (*++m ==
'=') ++m;
15168 if (len == 1)
return TRUE;
15170 case '=':
case '~': ++m;
break;
15171 default:
return FALSE;
15183 case '!':
case '?':
case '=': ++m;
15204 const char *m =
name;
15205 const char *e = m +
len;
15216 fake_str.
as.
heap.ptr = (
char *)name;
15218 str = (
VALUE)&fake_str;
15264 if (*
op_tbl[i].name == *m &&
15265 strcmp(
op_tbl[i].name, m) == 0) {
15272 if (m[last] ==
'=') {
15302 if (m - name < len)
id =
ID_JUNK;
15309 for (; m <= name +
len; ++m) {
15310 if (!
ISASCII(*m))
goto mbstr;
15374 name[0] = (char)
id;
15397 if (
RBASIC(str)->klass == 0)
15408 id2 = (
id & ~ID_SCOPE_MASK) |
ID_CONST;
15415 if (
RBASIC(str)->klass == 0)
15428 if (!str)
return 0;
15530 parser->parser_ruby_sourcefile_string =
Qnil;
15531 parser->delayed =
Qnil;
15533 parser->result =
Qnil;
15534 parser->parsing_thread =
Qnil;
15535 parser->toplevel_p =
TRUE;
15544 #define parser_mark ripper_parser_mark
15545 #define parser_free ripper_parser_free
15563 rb_gc_mark(p->parser_ruby_sourcefile_string);
15585 prev = local->
prev;
15599 size_t size =
sizeof(*p);
15601 if (!ptr)
return 0;
15604 size +=
sizeof(*local);
15629 #undef rb_reserved_word
15713 yydebug =
RTEST(flag);
15718 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE))
15719 #define NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0)
15720 #define ADD2HEAP(n, c, p) ((parser->heap = (n))->u1.node = (p), \
15721 (n)->u3.cnt = (c), (p))
15738 void *ptr =
xcalloc(nelem, size);
15749 if (ptr && (n = parser->
heap) !=
NULL) {
15751 if (n->
u1.
node == ptr) {
15768 while ((n = *prev) !=
NULL) {
15769 if (n->u1.node == ptr) {
15782 #ifdef RIPPER_DEBUG
15783 extern int rb_is_pointer_to_heap(
VALUE);
15789 if (x ==
Qfalse)
return x;
15790 if (x ==
Qtrue)
return x;
15791 if (x ==
Qnil)
return x;
15796 if (!rb_is_pointer_to_heap(x))
15809 return ((
NODE *)x)->nd_rval;
15818 #define validate(x) ((x) = get_value(x))
15830 return rb_funcall(parser->value, mid, 1, a);
15838 return rb_funcall(parser->value, mid, 2, a, b);
15847 return rb_funcall(parser->value, mid, 3, a, b, c);
15857 return rb_funcall(parser->value, mid, 4, a, b, c, d);
15868 return rb_funcall(parser->value, mid, 5, a, b, c, d, e);
15871 static const struct kw_assoc {
15874 } keyword_to_name[] = {
15927 keyword_id_to_str(
ID id)
15929 const struct kw_assoc *a;
15931 for (a = keyword_to_name; a->id; a++) {
15938 #undef ripper_id2sym
15950 if ((name = keyword_id_to_str(
id))) {
15963 rb_bug(
"cannot convert ID to string: %ld", (
unsigned long)
id);
15981 ripper_get_value(
VALUE v)
15988 return nd->nd_rval;
15992 ripper_compile_error(
struct parser_params *parser,
const char *fmt, ...)
15997 va_start(args, fmt);
16004 ripper_warn0(
struct parser_params *parser,
const char *fmt)
16010 ripper_warnI(
struct parser_params *parser,
const char *fmt,
int a)
16018 ripper_warnS(
struct parser_params *parser,
const char *fmt,
const char *str)
16026 ripper_warning0(
struct parser_params *parser,
const char *fmt)
16032 ripper_warningS(
struct parser_params *parser,
const char *fmt,
const char *str)
16045 ripper_s_allocate(
VALUE klass)
16057 #define ripper_initialized_p(r) ((r)->parser_lex_input != 0)
16073 VALUE src, fname, lineno;
16076 rb_scan_args(argc, argv,
"12", &src, &fname, &lineno);
16086 if (
NIL_P(fname)) {
16094 parser->parser_ruby_sourcefile_string = fname;
16101 struct ripper_args {
16108 ripper_parse0(
VALUE parser_v)
16114 ripper_yyparse((
void*)parser);
16115 return parser->result;
16119 ripper_ensure(
VALUE parser_v)
16124 parser->parsing_thread =
Qnil;
16135 ripper_parse(
VALUE self)
16140 if (!ripper_initialized_p(parser)) {
16143 if (!
NIL_P(parser->parsing_thread)) {
16150 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
16152 return parser->result;
16163 ripper_column(
VALUE self)
16169 if (!ripper_initialized_p(parser)) {
16172 if (
NIL_P(parser->parsing_thread))
return Qnil;
16184 ripper_filename(
VALUE self)
16189 if (!ripper_initialized_p(parser)) {
16192 return parser->parser_ruby_sourcefile_string;
16203 ripper_lineno(
VALUE self)
16208 if (!ripper_initialized_p(parser)) {
16211 if (
NIL_P(parser->parsing_thread))
return Qnil;
16215 #ifdef RIPPER_DEBUG
16237 InitVM_ripper(
void)
16260 #ifdef RIPPER_DEBUG