diff --git a/src/mred/mred.cxx b/src/mred/mred.cxx index 77789e95a0..e67f55eb3d 100644 --- a/src/mred/mred.cxx +++ b/src/mred/mred.cxx @@ -3581,7 +3581,7 @@ static void pre_het(void *d) HiEventTramp *het = (HiEventTramp *)d; het->old_param = scheme_get_param(het->config, mred_het_param); - scheme_set_param(het->config, mred_het_param, scheme_make_pair((Scheme_Object *)het, scheme_null)); + scheme_set_param(het->config, mred_het_param, scheme_make_raw_pair((Scheme_Object *)het, scheme_null)); } static Scheme_Object *act_het(void *d) @@ -3739,7 +3739,7 @@ int mred_het_run_some(HiEventTrampProc do_f, void *do_data) { Scheme_Object *v; v = scheme_get_param(scheme_current_thread->init_config, mred_het_param); - if (SCHEME_PAIRP(v)) + if (SCHEME_RPAIRP(v)) het = (HiEventTramp *)SCHEME_CAR(v); else het = NULL; diff --git a/src/mzscheme/gc2/compact.c b/src/mzscheme/gc2/compact.c index 7c3483cf4f..df74788313 100644 --- a/src/mzscheme/gc2/compact.c +++ b/src/mzscheme/gc2/compact.c @@ -4424,6 +4424,97 @@ int GC_is_tagged(void *p) return page && (page->type == MTYPE_TAGGED); } +static void *next_tagged_start(void *p, int stop_at_p) +{ + MPage *page; + void **p2, **top; + int prev_was_p = 0; + + page = find_page(p); + if (page && (page->type == MTYPE_TAGGED)) { + p2 = (void **)page->block_start; + + if (page->flags & MFLAG_CONTINUED) + return NULL; + if (page->flags & MFLAG_BIGBLOCK) { + if (p == (void *)p2) { + if (stop_at_p) + return p; + } + return NULL; + } + + top = p2 + MPAGE_WORDS; + + while (p2 < top) { + Type_Tag tag; + long size; + + if (stop_at_p) { + if ((void *)p2 == p) + return p; + if ((unsigned long)p2 > (unsigned long)p) + break; + } + + tag = *(Type_Tag *)p2; + + if (tag == TAGGED_EOM) + break; + +#if ALIGN_DOUBLES + if (tag == SKIP) { + p2++; + } else { +#endif + if (prev_was_p) + return (void *)p2; + + { + Size_Proc size_proc; + + size_proc = size_table[tag]; + if (((long)size_proc) < 100) + size = (long)size_proc; + else + size = size_proc(p2); + } + + prev_was_p = (p == p2); + + p2 += size; +#if ALIGN_DOUBLES + } +#endif + } + } + + return NULL; +} + +int GC_is_tagged_start(void *p) +{ + if (next_tagged_start(p, 1)) + return 1; + else + return 0; +} + +void *GC_next_tagged_start(void *p) +{ + void *p2; + + while (1) { + p2 = next_tagged_start(p, 0); + if (p2) + return p2; + + p = (void *)(((long)p & MPAGE_START) + MPAGE_SIZE); + if (!p) + return NULL; + } +} + void *print_out_pointer(const char *prefix, void *p) { MPage *page; diff --git a/src/mzscheme/include/mzscheme.exp b/src/mzscheme/include/mzscheme.exp index 5615a0df10..9c6388c732 100644 --- a/src/mzscheme/include/mzscheme.exp +++ b/src/mzscheme/include/mzscheme.exp @@ -98,6 +98,7 @@ scheme_tail_call_waiting scheme_multiple_values scheme_uchar_table scheme_uchar_cases_table +scheme_uchar_cats_table scheme_uchar_ups scheme_uchar_downs scheme_uchar_titles @@ -196,6 +197,7 @@ scheme_make_closed_prim_w_everything scheme_prim_is_method scheme_make_pair scheme_make_immutable_pair +scheme_make_raw_pair scheme_make_byte_string scheme_make_sized_byte_string scheme_make_sized_offset_byte_string diff --git a/src/mzscheme/include/mzscheme3m.exp b/src/mzscheme/include/mzscheme3m.exp index b296ad113c..fe367e4269 100644 --- a/src/mzscheme/include/mzscheme3m.exp +++ b/src/mzscheme/include/mzscheme3m.exp @@ -98,6 +98,7 @@ scheme_tail_call_waiting scheme_multiple_values scheme_uchar_table scheme_uchar_cases_table +scheme_uchar_cats_table scheme_uchar_ups scheme_uchar_downs scheme_uchar_titles @@ -203,6 +204,7 @@ scheme_make_closed_prim_w_everything scheme_prim_is_method scheme_make_pair scheme_make_immutable_pair +scheme_make_raw_pair scheme_make_byte_string scheme_make_sized_byte_string scheme_make_sized_offset_byte_string diff --git a/src/mzscheme/include/mzwin.def b/src/mzscheme/include/mzwin.def index e643a58b16..8183e67641 100644 --- a/src/mzscheme/include/mzwin.def +++ b/src/mzscheme/include/mzwin.def @@ -100,6 +100,7 @@ EXPORTS scheme_multiple_values scheme_uchar_table scheme_uchar_cases_table + scheme_uchar_cats_table scheme_uchar_ups scheme_uchar_downs scheme_uchar_titles @@ -188,6 +189,7 @@ EXPORTS scheme_prim_is_method scheme_make_pair scheme_make_immutable_pair + scheme_make_raw_pair scheme_make_byte_string scheme_make_sized_byte_string scheme_make_sized_offset_byte_string diff --git a/src/mzscheme/include/scheme.h b/src/mzscheme/include/scheme.h index 6dad3a3fbb..8075b85630 100644 --- a/src/mzscheme/include/scheme.h +++ b/src/mzscheme/include/scheme.h @@ -402,6 +402,8 @@ typedef void (*Scheme_Type_Printer)(Scheme_Object *v, int for_display, Scheme_Pr #define SCHEME_IMMUTABLE_PAIRP(obj) (SCHEME_PAIRP(obj) && SCHEME_IMMUTABLEP(obj)) #define SCHEME_LISTP(obj) (SCHEME_NULLP(obj) || SCHEME_PAIRP(obj)) +#define SCHEME_RPAIRP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_raw_pair_type) + #define SCHEME_BOXP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_box_type) #define SCHEME_MUTABLE_BOXP(obj) (SCHEME_BOXP(obj) && SCHEME_MUTABLEP(obj)) #define SCHEME_IMMUTABLE_BOXP(obj) (SCHEME_BOXP(obj) && SCHEME_IMMUTABLEP(obj)) @@ -538,7 +540,7 @@ typedef void (*Scheme_Type_Printer)(Scheme_Object *v, int for_display, Scheme_Pr #define scheme_ispunc(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x4) #define scheme_iscontrol(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x8) #define scheme_isspace(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x10) -#define scheme_isxdigit(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x20) +/* #define scheme_isSOMETHING(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x20) - not yet used */ #define scheme_isdigit(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x40) #define scheme_isalpha(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x80) #define scheme_istitle(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x100) @@ -558,6 +560,9 @@ typedef void (*Scheme_Type_Printer)(Scheme_Object *v, int for_display, Scheme_Pr #define scheme_tofold(x) (x + scheme_uchar_folds[scheme_uchar_find(scheme_uchar_cases_table, x)]) #define scheme_combining_class(x) (scheme_uchar_combining_classes[scheme_uchar_find(scheme_uchar_cases_table, x)]) +#define scheme_general_category(x) ((scheme_uchar_find(scheme_uchar_cats_table, x)) & 0x1F) +/* Note: 3 bits available in the cats table */ + /*========================================================================*/ /* procedure values */ /*========================================================================*/ diff --git a/src/mzscheme/src/char.c b/src/mzscheme/src/char.c index 259c9ad97a..d351441935 100644 --- a/src/mzscheme/src/char.c +++ b/src/mzscheme/src/char.c @@ -58,9 +58,12 @@ static Scheme_Object *char_upcase (int argc, Scheme_Object *argv[]); static Scheme_Object *char_downcase (int argc, Scheme_Object *argv[]); static Scheme_Object *char_titlecase (int argc, Scheme_Object *argv[]); static Scheme_Object *char_foldcase (int argc, Scheme_Object *argv[]); +static Scheme_Object *char_general_category (int argc, Scheme_Object *argv[]); static Scheme_Object *char_utf8_length (int argc, Scheme_Object *argv[]); static Scheme_Object *char_map_list (int argc, Scheme_Object *argv[]); +static Scheme_Object *general_category_symbols[NUM_GENERAL_CATEGORIES]; + void scheme_init_portable_case(void) { init_uchar_table(); @@ -72,6 +75,7 @@ void scheme_init_char (Scheme_Env *env) int i; REGISTER_SO(scheme_char_constants); + REGISTER_SO(general_category_symbols); scheme_char_constants = (Scheme_Object **)scheme_malloc_eternal(256 * sizeof(Scheme_Object*)); @@ -229,6 +233,11 @@ void scheme_init_char (Scheme_Env *env) "char-foldcase", 1, 1, 1), env); + scheme_add_global_constant("char-general-category", + scheme_make_folding_prim(char_general_category, + "char-general-category", + 1, 1, 1), + env); scheme_add_global_constant("char-utf-8-length", scheme_make_folding_prim(char_utf8_length, @@ -386,6 +395,25 @@ GEN_RECASE(char_downcase, "char-downcase", scheme_tolower) GEN_RECASE(char_titlecase, "char-titlecase", scheme_totitle) GEN_RECASE(char_foldcase, "char-foldcase", scheme_tofold) +static Scheme_Object *char_general_category (int argc, Scheme_Object *argv[]) +{ + mzchar c; + int cat; + + if (!SCHEME_CHARP(argv[0])) + scheme_wrong_type("char-general-category", "character", 0, argc, argv); + + c = SCHEME_CHAR_VAL(argv[0]); + cat = scheme_general_category(c); + if (!general_category_symbols[cat]) { + Scheme_Object *s; + s = scheme_make_symbol(general_category_names[cat]); + general_category_symbols[cat] = s; + } + + return general_category_symbols[cat]; +} + static Scheme_Object *char_utf8_length (int argc, Scheme_Object *argv[]) { mzchar wc; diff --git a/src/mzscheme/src/cstartup.inc b/src/mzscheme/src/cstartup.inc index 43500e785c..a74b305cb9 100644 --- a/src/mzscheme/src/cstartup.inc +++ b/src/mzscheme/src/cstartup.inc @@ -1,7 +1,7 @@ { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,49,37,252,132,5,159,32,20,97,158,16,1,20, -23,65,98,101,103,105,110,0,16,0,83,158,39,20,94,114,65,35,37,115,116, -120,1,29,2,11,11,10,10,10,32,80,158,32,32,20,97,158,16,16,30,3, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,37,252,132,5,159,32,20,98,158,16,1,20, +24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,65,35,37,115,116, +120,1,29,2,11,11,10,10,10,32,80,158,32,32,20,98,158,16,16,30,3, 2,2,71,105,100,101,110,116,105,102,105,101,114,63,4,254,1,30,5,2,2, 69,115,116,120,45,110,117,108,108,63,6,254,1,30,7,2,2,71,115,116,120, 45,110,117,108,108,47,35,102,8,254,1,30,9,2,2,69,115,116,120,45,112, @@ -70,219 +70,202 @@ EVAL_ONE_SIZED_STR((char *)expr, 1425); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,49,90,252,237,10,159,32,20,97,158,16,1,20, -23,65,98,101,103,105,110,0,16,0,83,158,39,20,94,114,71,35,37,113,113, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,80,252,70,10,159,32,20,98,158,16,1,20, +24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,71,35,37,113,113, 45,97,110,100,45,111,114,1,29,2,11,11,10,10,10,32,80,158,32,32,20, -97,158,16,1,30,3,2,2,69,113,113,45,97,112,112,101,110,100,4,254,1, -16,0,11,11,16,1,2,4,33,11,16,3,62,111,114,5,70,113,117,97,115, -105,113,117,111,116,101,6,63,97,110,100,7,16,3,11,11,11,16,3,2,5, -2,6,2,7,32,35,95,16,5,93,2,6,27,83,160,41,32,33,38,27,83, -160,41,33,34,38,27,83,160,41,34,35,38,89,162,32,33,46,9,226,3,0, -1,2,87,94,28,248,80,158,36,32,197,250,22,252,38,2,11,6,10,10,98, +98,158,16,1,30,3,2,2,69,113,113,45,97,112,112,101,110,100,4,254,1, +16,0,11,11,16,1,2,4,33,11,16,3,63,97,110,100,5,62,111,114,6, +70,113,117,97,115,105,113,117,111,116,101,7,16,3,11,11,11,16,3,2,5, +2,6,2,7,32,35,95,16,5,93,2,7,27,20,15,159,33,32,38,27,20, +15,159,34,33,38,27,20,15,159,35,34,38,89,162,32,33,46,9,226,3,0, +1,2,87,94,28,248,80,158,36,32,197,250,22,252,39,2,11,6,10,10,98, 97,100,32,115,121,110,116,97,120,199,12,27,28,248,80,158,37,33,248,80,158, 38,34,199,28,248,80,158,37,35,248,80,158,38,34,248,80,158,39,34,200,248, -80,158,37,36,248,80,158,38,34,199,250,22,252,38,2,11,6,10,10,98,97, -100,32,115,121,110,116,97,120,200,250,22,252,38,2,11,6,10,10,98,97,100, +80,158,37,36,248,80,158,38,34,199,250,22,252,39,2,11,6,10,10,98,97, +100,32,115,121,110,116,97,120,200,250,22,252,39,2,11,6,10,10,98,97,100, 32,115,121,110,116,97,120,200,27,89,162,32,34,39,70,97,112,112,108,121,45, -99,111,110,115,8,223,5,28,248,80,158,33,35,195,249,22,59,83,160,41,37, -34,38,195,28,28,248,22,50,195,28,249,22,223,83,160,41,38,34,38,248,22, -52,197,10,249,22,223,83,160,41,39,34,38,248,22,52,197,11,250,22,61,248, -22,52,198,196,248,22,53,198,250,22,59,83,160,41,40,35,38,196,197,250,22, +99,111,110,115,8,223,5,28,248,80,158,33,35,195,249,22,59,20,15,159,34, +37,38,195,28,28,248,22,50,195,28,249,22,223,20,15,159,34,38,38,248,22, +52,197,10,249,22,223,20,15,159,34,39,38,248,22,52,197,11,250,22,61,248, +22,52,198,196,248,22,53,198,250,22,59,20,15,159,35,40,38,196,197,250,22, 209,197,27,91,159,33,11,20,12,95,33,249,194,200,32,89,162,32,34,55,62, 113,113,9,228,10,9,8,11,5,0,27,89,162,32,34,47,67,113,113,45,108, 105,115,116,10,225,6,2,1,27,248,80,158,36,36,197,27,248,80,158,37,34, -198,27,249,197,196,201,27,249,198,196,202,28,28,249,22,252,10,2,195,197,249, -22,252,10,2,194,196,11,199,249,199,28,249,22,252,10,2,197,199,28,248,80, -158,41,35,196,83,160,41,35,40,38,249,22,59,83,160,41,36,42,38,197,195, -28,249,22,252,10,2,196,198,28,248,80,158,41,35,195,83,160,41,35,40,38, -249,22,59,83,160,41,36,42,38,196,194,28,248,80,158,39,33,200,27,248,80, +198,27,249,197,196,201,27,249,198,196,202,28,28,249,22,252,11,2,195,197,249, +22,252,11,2,194,196,11,199,249,199,28,249,22,252,11,2,197,199,28,248,80, +158,41,35,196,20,15,159,40,35,38,249,22,59,20,15,159,42,36,38,197,195, +28,249,22,252,11,2,196,198,28,248,80,158,41,35,195,20,15,159,40,35,38, +249,22,59,20,15,159,42,36,38,196,194,28,248,80,158,39,33,200,27,248,80, 158,40,36,201,28,28,248,80,158,40,32,193,28,249,22,223,194,199,248,80,158, 40,37,201,11,11,27,248,80,158,41,34,202,87,94,28,28,248,80,158,41,33, -193,248,22,252,8,2,248,80,158,42,35,248,80,158,43,34,195,10,251,22,252, -38,2,67,117,110,113,117,111,116,101,11,6,30,30,101,120,112,101,99,116,115, +193,248,22,252,9,2,248,80,158,42,35,248,80,158,43,34,195,10,251,22,252, +39,2,67,117,110,113,117,111,116,101,11,6,30,30,101,120,112,101,99,116,115, 32,101,120,97,99,116,108,121,32,111,110,101,32,101,120,112,114,101,115,115,105, 111,110,201,205,12,28,248,22,186,203,248,80,158,41,36,193,249,196,203,248,22, -171,205,28,28,248,80,158,40,32,193,28,249,22,223,194,83,160,41,41,41,38, +171,205,28,28,248,80,158,40,32,193,28,249,22,223,194,20,15,159,41,41,38, 248,80,158,40,37,201,11,11,249,195,202,248,22,170,204,28,28,248,80,158,40, -32,193,28,249,22,223,194,200,248,80,158,40,37,201,11,11,251,22,252,38,2, +32,193,28,249,22,223,194,200,248,80,158,40,37,201,11,11,251,22,252,39,2, 76,117,110,113,117,111,116,101,45,115,112,108,105,99,105,110,103,12,6,33,33, 105,110,118,97,108,105,100,32,99,111,110,116,101,120,116,32,119,105,116,104,105, 110,32,113,117,97,115,105,113,117,111,116,101,200,204,28,28,248,80,158,40,33, 193,28,248,80,158,40,32,248,80,158,41,36,194,28,249,22,223,248,80,158,42, 36,195,200,248,80,158,40,37,193,11,11,11,27,248,80,158,41,34,194,87,94, -28,28,248,80,158,41,33,193,248,22,252,8,2,248,80,158,42,35,248,80,158, -43,34,195,10,251,22,252,38,2,2,11,6,30,30,101,120,112,101,99,116,115, +28,28,248,80,158,41,33,193,248,22,252,9,2,248,80,158,42,35,248,80,158, +43,34,195,10,251,22,252,39,2,2,11,6,30,30,101,120,112,101,99,116,115, 32,101,120,97,99,116,108,121,32,111,110,101,32,101,120,112,114,101,115,115,105, 111,110,201,205,12,27,248,80,158,42,36,194,27,248,80,158,43,34,204,27,249, -200,248,80,158,46,34,23,15,23,15,28,248,22,186,206,27,28,249,22,252,10, -2,195,196,28,248,80,158,45,35,194,83,160,41,35,44,38,249,22,59,83,160, -41,36,46,38,195,193,250,22,59,83,160,41,42,47,38,198,195,27,249,200,198, -248,22,171,23,17,28,28,249,22,252,10,2,195,196,249,22,252,10,2,194,198, -11,205,249,202,249,204,83,160,41,43,48,38,28,249,22,252,10,2,198,202,28, -248,80,158,49,35,197,83,160,41,35,48,38,249,22,59,83,160,41,36,50,38, -198,196,28,249,22,252,10,2,197,198,28,248,80,158,47,35,196,83,160,41,35, -46,38,249,22,59,83,160,41,36,48,38,197,195,249,195,202,203,28,28,248,22, +200,248,80,158,46,34,23,15,23,15,28,248,22,186,206,27,28,249,22,252,11, +2,195,196,28,248,80,158,45,35,194,20,15,159,44,35,38,249,22,59,20,15, +159,46,36,38,195,193,250,22,59,20,15,159,47,42,38,198,195,27,249,200,198, +248,22,171,23,17,28,28,249,22,252,11,2,195,196,249,22,252,11,2,194,198, +11,205,249,202,249,204,20,15,159,48,43,38,28,249,22,252,11,2,198,202,28, +248,80,158,49,35,197,20,15,159,48,35,38,249,22,59,20,15,159,50,36,38, +198,196,28,249,22,252,11,2,197,198,28,248,80,158,47,35,196,20,15,159,46, +35,38,249,22,59,20,15,159,48,36,38,197,195,249,195,202,203,28,28,248,22, 206,200,248,22,252,222,1,248,22,210,201,11,27,248,22,252,229,1,248,22,210, -202,27,249,197,195,204,28,249,22,252,10,2,195,194,201,249,22,59,83,160,41, -44,42,38,194,28,248,22,206,200,28,248,22,107,248,22,210,201,27,248,22,108, -248,22,210,202,27,249,197,195,204,28,249,22,252,10,2,195,194,201,249,22,59, -83,160,41,45,42,38,194,199,199,28,249,22,252,10,2,194,199,28,248,80,158, -42,35,193,83,160,41,35,41,38,249,22,59,83,160,41,36,43,38,194,192,201, -35,20,97,158,16,6,30,13,65,35,37,115,116,120,14,71,105,100,101,110,116, +202,27,249,197,195,204,28,249,22,252,11,2,195,194,201,249,22,59,20,15,159, +42,44,38,194,28,248,22,206,200,28,248,22,107,248,22,210,201,27,248,22,108, +248,22,210,202,27,249,197,195,204,28,249,22,252,11,2,195,194,201,249,22,59, +20,15,159,42,45,38,194,199,199,28,249,22,252,11,2,194,199,28,248,80,158, +42,35,193,20,15,159,41,35,38,249,22,59,20,15,159,43,36,38,194,192,201, +35,20,98,158,16,6,30,13,65,35,37,115,116,120,14,71,105,100,101,110,116, 105,102,105,101,114,63,15,2,30,16,2,14,69,115,116,120,45,112,97,105,114, 63,17,11,30,18,2,14,67,115,116,120,45,99,100,114,19,6,30,20,2,14, 69,115,116,120,45,110,117,108,108,63,21,10,30,22,2,14,67,115,116,120,45, 99,97,114,23,5,30,24,2,14,69,115,116,120,45,108,105,115,116,63,25,8, 16,14,18,16,2,97,64,104,101,114,101,26,37,97,35,10,32,11,16,8,2, -5,2,2,2,6,2,2,2,4,2,2,2,7,2,2,97,34,10,33,11,16, -32,69,97,112,112,101,110,100,47,35,102,27,2,14,71,115,116,120,45,110,117, -108,108,47,35,102,28,2,14,73,115,116,120,45,99,104,101,99,107,47,101,115, -99,29,2,14,2,25,2,14,70,115,116,120,45,114,111,116,97,116,101,30,2, -14,2,17,2,14,74,115,112,108,105,116,45,115,116,120,45,108,105,115,116,31, -2,14,71,115,116,120,45,114,111,116,97,116,101,42,32,2,14,2,21,2,14, -2,23,2,14,69,115,116,120,45,62,108,105,115,116,33,2,14,2,19,2,14, -67,99,111,110,115,47,35,102,34,2,14,2,15,2,14,71,115,116,120,45,118, -101,99,116,111,114,63,35,2,14,74,115,116,120,45,118,101,99,116,111,114,45, -114,101,102,36,2,14,96,33,8,254,1,11,16,0,9,18,16,2,158,2,11, -37,9,18,16,2,158,2,12,37,9,18,16,2,100,9,41,35,34,33,16,8, -40,11,2,26,71,117,110,113,117,111,116,101,45,115,116,120,37,1,20,117,110, -113,117,111,116,101,45,115,112,108,105,99,105,110,103,45,115,116,120,38,3,1, -7,101,110,118,50,50,52,57,39,2,39,2,39,16,4,39,11,67,105,110,45, -102,111,114,109,40,3,1,7,101,110,118,50,50,53,48,41,16,6,38,11,61, -120,42,63,111,108,100,43,3,1,7,101,110,118,50,50,53,50,44,2,44,9, -18,16,2,158,65,113,117,111,116,101,45,41,9,18,16,2,100,64,108,105,115, -116,46,43,35,34,33,40,39,16,6,42,11,61,97,47,61,100,48,3,1,7, -101,110,118,50,50,53,51,49,2,49,9,18,16,2,158,2,46,43,9,18,16, -2,158,65,108,105,115,116,42,50,43,9,18,16,2,158,2,50,43,9,18,16, -2,104,2,6,49,35,34,33,40,39,16,8,48,11,64,102,111,114,109,51,66, -110,111,114,109,97,108,52,2,8,3,1,7,101,110,118,50,50,53,49,53,2, -53,2,53,16,4,47,11,2,9,3,1,7,101,110,118,50,50,53,52,54,16, -6,46,11,2,42,65,108,101,118,101,108,55,3,1,7,101,110,118,50,50,53, -53,56,2,56,16,4,45,11,2,10,3,1,7,101,110,118,50,50,53,54,57, -16,4,44,11,65,102,105,114,115,116,58,3,1,7,101,110,118,50,50,54,50, -59,9,18,16,2,106,2,4,52,35,34,33,40,39,48,47,46,45,44,16,4, -51,11,64,114,101,115,116,60,3,1,7,101,110,118,50,50,54,53,61,16,8, -50,11,64,117,113,115,100,62,65,111,108,100,45,108,63,61,108,64,3,1,7, -101,110,118,50,50,54,55,65,2,65,2,65,9,18,16,2,158,94,107,2,45, -54,35,34,33,40,39,48,47,46,45,44,51,50,16,4,53,11,65,114,101,115, -116,120,66,3,1,7,101,110,118,50,50,54,57,67,158,2,12,54,54,9,18, -16,2,105,72,108,105,115,116,45,62,118,101,99,116,111,114,68,57,35,34,33, -40,39,48,47,46,45,16,4,56,11,2,64,3,1,7,101,110,118,50,50,55, -48,69,16,4,55,11,62,108,50,70,3,1,7,101,110,118,50,50,55,49,71, -9,18,16,2,105,63,98,111,120,72,8,28,35,34,33,40,39,48,47,46,45, -16,4,59,11,61,118,73,3,1,7,101,110,118,50,50,55,50,74,16,4,58, -11,62,113,118,75,3,1,7,101,110,118,50,50,55,51,76,9,11,16,5,93, -2,7,27,83,160,41,32,33,37,89,162,32,33,46,9,224,1,0,87,94,28, -248,80,158,34,32,195,12,250,22,252,38,2,11,6,10,10,98,97,100,32,115, -121,110,116,97,120,197,27,248,80,158,35,33,196,28,248,80,158,35,34,193,83, -160,41,33,34,37,28,28,248,80,158,35,35,193,248,80,158,35,34,248,80,158, -36,33,194,10,248,80,158,35,36,193,250,22,209,196,251,22,59,83,160,41,34, -41,37,248,80,158,42,36,200,249,22,51,83,160,41,35,43,37,248,80,158,44, -33,202,83,160,41,36,41,37,198,33,20,97,158,16,5,2,24,2,18,2,20, -2,16,2,22,16,5,18,16,2,97,2,26,8,29,35,34,33,9,18,16,2, -100,10,8,33,35,34,33,16,4,8,32,11,2,26,3,1,7,101,110,118,50, -50,55,53,77,16,4,8,31,11,2,42,3,1,7,101,110,118,50,50,55,54, -78,16,4,8,30,11,61,101,79,3,1,7,101,110,118,50,50,55,55,80,9, -18,16,2,158,62,105,102,81,8,33,9,18,16,2,158,2,7,8,33,9,18, -16,2,158,11,8,33,9,11,16,5,93,2,5,27,83,160,41,32,33,38,89, -162,32,33,49,9,224,1,0,87,94,28,248,80,158,34,32,195,250,22,252,38, -2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,197,12,27,248,80,158, -35,33,196,28,248,80,158,35,34,193,83,160,41,33,34,38,28,28,248,80,158, -35,35,193,248,80,158,35,34,248,80,158,36,33,194,11,248,80,158,35,36,193, -28,248,80,158,35,37,193,250,22,209,196,250,22,59,83,160,41,34,40,38,248, -22,59,249,22,59,67,111,114,45,112,97,114,116,82,248,80,158,44,36,202,251, -22,59,83,160,41,35,44,38,2,82,2,82,249,22,51,83,160,41,36,46,38, -248,80,158,47,33,205,198,250,22,252,38,2,11,6,10,10,98,97,100,32,115, -121,110,116,97,120,198,33,20,97,158,16,6,2,13,2,18,2,20,2,16,2, -22,2,24,16,5,18,16,2,158,2,26,8,29,9,18,16,2,100,11,8,37, -35,34,33,16,4,8,36,11,2,26,3,1,7,101,110,118,50,50,55,57,83, -16,4,8,35,11,2,42,3,1,7,101,110,118,50,50,56,48,84,16,4,8, -34,11,2,79,3,1,7,101,110,118,50,50,56,49,85,9,18,16,2,101,63, -108,101,116,86,8,39,35,34,33,8,36,8,35,8,34,16,4,8,38,11,63, -116,109,112,87,3,1,7,101,110,118,50,50,56,50,88,9,18,16,2,158,2, -81,8,39,9,18,16,2,158,2,5,8,39,9,11,93,83,159,32,93,80,159, -32,32,33,89,162,32,34,37,2,4,222,28,248,22,58,193,249,22,65,194,195, -250,22,252,39,2,2,12,6,11,11,112,114,111,112,101,114,32,108,105,115,116, -195,93,68,35,37,107,101,114,110,101,108,89,94,2,14,2,89,0}; - EVAL_ONE_SIZED_STR((char *)expr, 2810); +5,2,2,2,4,2,2,2,6,2,2,2,7,2,2,98,34,10,33,11,93, +159,2,14,9,11,16,0,96,33,8,254,1,11,16,0,9,18,16,2,158,2, +11,37,9,18,16,2,158,2,12,37,9,18,16,2,100,9,41,35,34,33,16, +8,40,11,2,26,71,117,110,113,117,111,116,101,45,115,116,120,27,1,20,117, +110,113,117,111,116,101,45,115,112,108,105,99,105,110,103,45,115,116,120,28,3, +1,7,101,110,118,50,50,52,57,29,2,29,2,29,16,4,39,11,67,105,110, +45,102,111,114,109,30,3,1,7,101,110,118,50,50,53,48,31,16,6,38,11, +61,120,32,63,111,108,100,33,3,1,7,101,110,118,50,50,53,50,34,2,34, +9,18,16,2,158,65,113,117,111,116,101,35,41,9,18,16,2,100,64,108,105, +115,116,36,43,35,34,33,40,39,16,6,42,11,61,97,37,61,100,38,3,1, +7,101,110,118,50,50,53,51,39,2,39,9,18,16,2,158,2,36,43,9,18, +16,2,158,65,108,105,115,116,42,40,43,9,18,16,2,158,2,40,43,9,18, +16,2,104,2,7,49,35,34,33,40,39,16,8,48,11,64,102,111,114,109,41, +66,110,111,114,109,97,108,42,2,8,3,1,7,101,110,118,50,50,53,49,43, +2,43,2,43,16,4,47,11,2,9,3,1,7,101,110,118,50,50,53,52,44, +16,6,46,11,2,32,65,108,101,118,101,108,45,3,1,7,101,110,118,50,50, +53,53,46,2,46,16,4,45,11,2,10,3,1,7,101,110,118,50,50,53,54, +47,16,4,44,11,65,102,105,114,115,116,48,3,1,7,101,110,118,50,50,54, +50,49,9,18,16,2,106,2,4,52,35,34,33,40,39,48,47,46,45,44,16, +4,51,11,64,114,101,115,116,50,3,1,7,101,110,118,50,50,54,53,51,16, +8,50,11,64,117,113,115,100,52,65,111,108,100,45,108,53,61,108,54,3,1, +7,101,110,118,50,50,54,55,55,2,55,2,55,9,18,16,2,158,94,107,2, +35,54,35,34,33,40,39,48,47,46,45,44,51,50,16,4,53,11,65,114,101, +115,116,120,56,3,1,7,101,110,118,50,50,54,57,57,158,2,12,54,54,9, +18,16,2,105,72,108,105,115,116,45,62,118,101,99,116,111,114,58,57,35,34, +33,40,39,48,47,46,45,16,4,56,11,2,54,3,1,7,101,110,118,50,50, +55,48,59,16,4,55,11,62,108,50,60,3,1,7,101,110,118,50,50,55,49, +61,9,18,16,2,105,63,98,111,120,62,8,28,35,34,33,40,39,48,47,46, +45,16,4,59,11,61,118,63,3,1,7,101,110,118,50,50,55,50,64,16,4, +58,11,62,113,118,65,3,1,7,101,110,118,50,50,55,51,66,9,11,16,5, +93,2,5,27,20,15,159,33,32,37,89,162,32,33,46,9,224,1,0,87,94, +28,248,80,158,34,32,195,12,250,22,252,39,2,11,6,10,10,98,97,100,32, +115,121,110,116,97,120,197,27,248,80,158,35,33,196,28,248,80,158,35,34,193, +20,15,159,34,33,37,28,28,248,80,158,35,35,193,248,80,158,35,34,248,80, +158,36,33,194,10,248,80,158,35,36,193,250,22,209,196,251,22,59,20,15,159, +41,34,37,248,80,158,42,36,200,249,22,51,20,15,159,43,35,37,248,80,158, +44,33,202,20,15,159,41,36,37,198,33,20,98,158,16,5,2,24,2,18,2, +20,2,16,2,22,16,5,18,16,2,97,2,26,8,29,35,34,33,9,18,16, +2,100,10,8,33,35,34,33,16,4,8,32,11,2,26,3,1,7,101,110,118, +50,50,55,53,67,16,4,8,31,11,2,32,3,1,7,101,110,118,50,50,55, +54,68,16,4,8,30,11,61,101,69,3,1,7,101,110,118,50,50,55,55,70, +9,18,16,2,158,62,105,102,71,8,33,9,18,16,2,158,2,5,8,33,9, +18,16,2,158,11,8,33,9,11,16,5,93,2,6,27,20,15,159,33,32,38, +89,162,32,33,49,9,224,1,0,87,94,28,248,80,158,34,32,195,250,22,252, +39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,197,12,27,248,80, +158,35,33,196,28,248,80,158,35,34,193,20,15,159,34,33,38,28,28,248,80, +158,35,35,193,248,80,158,35,34,248,80,158,36,33,194,11,248,80,158,35,36, +193,28,248,80,158,35,37,193,250,22,209,196,250,22,59,20,15,159,40,34,38, +248,22,59,249,22,59,67,111,114,45,112,97,114,116,72,248,80,158,44,36,202, +251,22,59,20,15,159,44,35,38,2,72,2,72,249,22,51,20,15,159,46,36, +38,248,80,158,47,33,205,198,250,22,252,39,2,11,6,10,10,98,97,100,32, +115,121,110,116,97,120,198,33,20,98,158,16,6,2,13,2,18,2,20,2,16, +2,22,2,24,16,5,18,16,2,158,2,26,8,29,9,18,16,2,100,11,8, +37,35,34,33,16,4,8,36,11,2,26,3,1,7,101,110,118,50,50,55,57, +73,16,4,8,35,11,2,32,3,1,7,101,110,118,50,50,56,48,74,16,4, +8,34,11,2,69,3,1,7,101,110,118,50,50,56,49,75,9,18,16,2,101, +63,108,101,116,76,8,39,35,34,33,8,36,8,35,8,34,16,4,8,38,11, +63,116,109,112,77,3,1,7,101,110,118,50,50,56,50,78,9,18,16,2,158, +2,71,8,39,9,18,16,2,158,2,6,8,39,9,11,93,83,159,32,93,80, +159,32,32,33,89,162,32,34,37,2,4,222,28,248,22,58,193,249,22,65,194, +195,250,22,252,40,2,2,12,6,11,11,112,114,111,112,101,114,32,108,105,115, +116,195,93,68,35,37,107,101,114,110,101,108,79,94,2,14,2,79,0}; + EVAL_ONE_SIZED_STR((char *)expr, 2643); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,49,58,252,151,5,159,32,20,97,158,16,1,20, -23,65,98,101,103,105,110,0,16,0,83,158,39,20,94,114,66,35,37,99,111, -110,100,1,29,2,11,11,10,10,10,32,80,158,32,32,20,97,158,16,0,16, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,44,252,209,4,159,32,20,98,158,16,1,20, +24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,66,35,37,99,111, +110,100,1,29,2,11,11,10,10,10,32,80,158,32,32,20,98,158,16,0,16, 0,11,11,16,0,32,11,16,1,64,99,111,110,100,3,16,1,11,16,1,2, -3,32,33,93,16,5,93,2,3,27,83,160,41,32,33,37,89,162,32,33,42, -9,224,1,0,87,94,28,248,80,158,34,32,195,250,22,252,38,2,11,6,10, +3,32,33,93,16,5,93,2,3,27,20,15,159,33,32,37,89,162,32,33,42, +9,224,1,0,87,94,28,248,80,158,34,32,195,250,22,252,39,2,11,6,10, 10,98,97,100,32,115,121,110,116,97,120,197,12,250,22,209,195,27,248,80,158, 38,33,199,249,91,159,33,11,20,12,95,33,192,89,162,32,34,55,64,108,111, -111,112,4,225,8,9,0,28,248,80,158,35,34,196,83,160,41,33,34,37,28, +111,112,4,225,8,9,0,28,248,80,158,35,34,196,20,15,159,34,33,37,28, 248,80,158,35,35,196,27,248,80,158,36,36,197,27,248,80,158,37,33,198,28, 248,80,158,37,35,194,27,248,80,158,38,36,195,27,248,80,158,39,33,196,27, -28,248,80,158,40,32,195,249,22,223,196,83,160,41,34,41,37,11,87,94,28, +28,248,80,158,40,32,195,249,22,223,196,20,15,159,41,34,37,11,87,94,28, 192,28,248,80,158,40,35,196,27,6,39,39,98,97,100,32,115,121,110,116,97, 120,32,40,96,101,108,115,101,39,32,99,108,97,117,115,101,32,109,117,115,116, -32,98,101,32,108,97,115,116,41,251,22,252,38,2,11,196,203,201,12,12,28, +32,98,101,32,108,97,115,116,41,251,22,252,39,2,11,196,203,201,12,12,28, 28,248,80,158,40,35,194,28,248,80,158,40,32,248,80,158,41,36,195,249,22, -223,248,80,158,42,36,196,83,160,41,35,41,37,11,11,28,28,248,80,158,40, +223,248,80,158,42,36,196,20,15,159,41,35,37,11,11,28,28,248,80,158,40, 35,248,80,158,41,33,195,248,80,158,40,34,248,80,158,41,33,248,80,158,42, -33,196,11,27,28,193,10,195,27,247,22,48,250,22,59,83,160,41,36,44,37, -248,22,59,249,22,59,198,199,251,22,59,83,160,41,37,48,37,199,249,22,59, +33,196,11,27,28,193,10,195,27,247,22,48,250,22,59,20,15,159,44,36,37, +248,22,59,249,22,59,198,199,251,22,59,20,15,159,48,37,37,199,249,22,59, 248,80,158,51,36,248,80,158,52,33,206,201,249,23,16,206,11,27,6,36,36, 98,97,100,32,115,121,110,116,97,120,32,40,98,97,100,32,99,108,97,117,115, -101,32,102,111,114,109,32,119,105,116,104,32,61,62,41,251,22,252,38,2,11, -196,203,201,28,192,28,201,250,22,59,83,160,41,38,42,37,10,249,22,51,83, -160,41,39,44,37,198,249,22,51,83,160,41,40,41,37,195,28,248,80,158,40, -34,194,27,247,22,48,250,22,59,83,160,41,41,43,37,248,22,59,249,22,59, -198,201,251,22,59,83,160,41,42,47,37,199,199,249,23,15,205,11,251,22,59, -83,160,41,43,43,37,198,249,22,51,83,160,41,44,45,37,199,249,203,201,11, +101,32,102,111,114,109,32,119,105,116,104,32,61,62,41,251,22,252,39,2,11, +196,203,201,28,192,28,201,250,22,59,20,15,159,42,38,37,10,249,22,51,20, +15,159,44,39,37,198,249,22,51,20,15,159,41,40,37,195,28,248,80,158,40, +34,194,27,247,22,48,250,22,59,20,15,159,43,41,37,248,22,59,249,22,59, +198,201,251,22,59,20,15,159,47,42,37,199,199,249,23,15,205,11,251,22,59, +20,15,159,43,43,37,198,249,22,51,20,15,159,45,44,37,199,249,203,201,11, 27,6,44,44,98,97,100,32,115,121,110,116,97,120,32,40,99,108,97,117,115, 101,32,105,115,32,110,111,116,32,97,32,116,101,115,116,45,118,97,108,117,101, -32,112,97,105,114,41,251,22,252,38,2,11,196,200,198,27,6,46,46,98,97, +32,112,97,105,114,41,251,22,252,39,2,11,196,200,198,27,6,46,46,98,97, 100,32,115,121,110,116,97,120,32,40,98,111,100,121,32,109,117,115,116,32,99, 111,110,116,97,105,110,32,97,32,108,105,115,116,32,111,102,32,112,97,105,114, -115,41,251,22,252,38,2,11,196,198,200,194,10,197,33,20,97,158,16,5,30, +115,41,251,22,252,39,2,11,196,198,200,194,10,197,33,20,98,158,16,5,30, 5,65,35,37,115,116,120,6,71,105,100,101,110,116,105,102,105,101,114,63,7, 2,30,8,2,6,67,115,116,120,45,99,100,114,9,6,30,10,2,6,69,115, 116,120,45,110,117,108,108,63,11,10,30,12,2,6,69,115,116,120,45,112,97, 105,114,63,13,11,30,14,2,6,67,115,116,120,45,99,97,114,15,5,16,13, 18,16,2,97,64,104,101,114,101,16,37,97,35,10,32,11,16,2,2,3,2, -2,97,34,10,33,11,16,38,63,97,110,100,17,71,35,37,113,113,45,97,110, -100,45,111,114,18,69,97,112,112,101,110,100,47,35,102,19,2,6,71,115,116, -120,45,110,117,108,108,47,35,102,20,2,6,73,115,116,120,45,99,104,101,99, -107,47,101,115,99,21,2,6,69,115,116,120,45,108,105,115,116,63,22,2,6, -70,115,116,120,45,114,111,116,97,116,101,23,2,6,2,13,2,6,74,115,112, -108,105,116,45,115,116,120,45,108,105,115,116,24,2,6,71,115,116,120,45,114, -111,116,97,116,101,42,25,2,6,2,11,2,6,2,15,2,6,69,115,116,120, -45,62,108,105,115,116,26,2,6,2,9,2,6,67,99,111,110,115,47,35,102, -27,2,6,2,7,2,6,62,111,114,28,2,18,70,113,117,97,115,105,113,117, -111,116,101,29,2,18,71,115,116,120,45,118,101,99,116,111,114,63,30,2,6, -74,115,116,120,45,118,101,99,116,111,114,45,114,101,102,31,2,6,96,33,8, -254,1,11,16,0,9,18,16,2,158,93,102,64,118,111,105,100,32,43,35,34, -33,16,4,42,11,2,16,3,1,7,101,110,118,50,50,56,54,33,16,4,41, -11,67,105,110,45,102,111,114,109,34,3,1,7,101,110,118,50,50,56,55,35, -16,6,40,11,64,102,111,114,109,36,66,115,101,114,114,111,114,37,3,1,7, -101,110,118,50,50,56,56,38,2,38,16,4,39,11,2,4,3,1,7,101,110, -118,50,50,57,48,39,16,6,38,11,65,116,101,115,116,115,40,66,102,105,114, -115,116,63,41,3,1,7,101,110,118,50,50,57,49,42,2,42,43,9,18,104, -64,101,108,115,101,43,46,35,34,33,42,41,40,39,38,16,6,45,11,64,108, -105,110,101,44,64,114,101,115,116,45,3,1,7,101,110,118,50,50,57,50,46, -2,46,16,6,44,11,64,116,101,115,116,47,65,118,97,108,117,101,48,3,1, -7,101,110,118,50,50,57,51,49,2,49,18,104,62,61,62,50,48,35,34,33, -42,41,40,39,38,45,16,8,47,11,2,47,2,48,65,101,108,115,101,63,51, -2,49,2,49,2,49,18,105,63,108,101,116,52,50,35,34,33,42,41,40,39, -38,45,47,16,4,49,11,63,103,101,110,53,3,1,7,101,110,118,50,50,57, -52,54,18,158,62,105,102,55,50,18,158,2,55,48,18,158,2,0,48,18,16, -2,158,2,0,48,9,18,105,2,52,52,35,34,33,42,41,40,39,38,45,47, -16,4,51,11,2,53,3,1,7,101,110,118,50,50,57,53,56,18,158,2,55, -52,18,16,2,158,2,55,48,9,18,16,2,158,2,0,48,9,11,9,93,68, -35,37,107,101,114,110,101,108,57,95,2,6,2,18,2,57,0}; - EVAL_ONE_SIZED_STR((char *)expr, 1444); +2,98,34,10,33,11,94,159,71,35,37,113,113,45,97,110,100,45,111,114,17, +9,11,159,2,6,9,11,16,0,96,33,8,254,1,11,16,0,9,18,16,2, +158,93,102,64,118,111,105,100,18,43,35,34,33,16,4,42,11,2,16,3,1, +7,101,110,118,50,50,56,54,19,16,4,41,11,67,105,110,45,102,111,114,109, +20,3,1,7,101,110,118,50,50,56,55,21,16,6,40,11,64,102,111,114,109, +22,66,115,101,114,114,111,114,23,3,1,7,101,110,118,50,50,56,56,24,2, +24,16,4,39,11,2,4,3,1,7,101,110,118,50,50,57,48,25,16,6,38, +11,65,116,101,115,116,115,26,66,102,105,114,115,116,63,27,3,1,7,101,110, +118,50,50,57,49,28,2,28,43,9,18,104,64,101,108,115,101,29,46,35,34, +33,42,41,40,39,38,16,6,45,11,64,108,105,110,101,30,64,114,101,115,116, +31,3,1,7,101,110,118,50,50,57,50,32,2,32,16,6,44,11,64,116,101, +115,116,33,65,118,97,108,117,101,34,3,1,7,101,110,118,50,50,57,51,35, +2,35,18,104,62,61,62,36,48,35,34,33,42,41,40,39,38,45,16,8,47, +11,2,33,2,34,65,101,108,115,101,63,37,2,35,2,35,2,35,18,105,63, +108,101,116,38,50,35,34,33,42,41,40,39,38,45,47,16,4,49,11,63,103, +101,110,39,3,1,7,101,110,118,50,50,57,52,40,18,158,62,105,102,41,50, +18,158,2,41,48,18,158,2,0,48,18,16,2,158,2,0,48,9,18,105,2, +38,52,35,34,33,42,41,40,39,38,45,47,16,4,51,11,2,39,3,1,7, +101,110,118,50,50,57,53,42,18,158,2,41,52,18,16,2,158,2,41,48,9, +18,16,2,158,2,0,48,9,11,9,93,68,35,37,107,101,114,110,101,108,43, +95,2,6,2,17,2,43,0}; + EVAL_ONE_SIZED_STR((char *)expr, 1246); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,49,24,252,36,4,159,32,20,97,158,16,1,20, -23,65,98,101,103,105,110,0,16,0,83,158,39,20,94,114,73,35,37,115,116, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,24,252,36,4,159,32,20,98,158,16,1,20, +24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,73,35,37,115,116, 114,117,99,116,45,105,110,102,111,1,29,2,11,11,10,10,10,32,80,158,32, -32,20,97,158,16,9,30,3,2,2,74,105,100,101,110,116,105,102,105,101,114, +32,20,98,158,16,9,30,3,2,2,74,105,100,101,110,116,105,102,105,101,114, 47,35,102,63,4,254,1,30,5,65,35,37,115,116,120,6,71,105,100,101,110, 116,105,102,105,101,114,63,7,2,30,8,2,2,71,105,100,47,35,102,45,108, 105,115,116,63,9,254,1,30,10,2,2,72,115,116,114,117,99,116,45,105,110, @@ -297,34 +280,34 @@ 11,11,16,2,2,9,2,4,34,11,16,6,2,19,2,15,2,21,2,17,2, 13,2,11,16,6,11,11,11,11,11,11,16,6,2,19,2,15,2,21,2,17, 2,13,2,11,38,38,9,100,83,159,32,93,80,159,32,32,33,89,162,32,33, -36,2,4,223,0,27,248,22,252,8,2,195,28,192,192,248,80,158,34,33,195, +36,2,4,223,0,27,248,22,252,9,2,195,28,192,192,248,80,158,34,33,195, 83,159,32,93,80,159,32,34,33,89,162,32,34,40,2,9,223,0,28,248,22, 57,195,10,28,248,22,50,195,28,248,22,57,248,22,53,196,27,248,22,52,196, -27,248,22,252,8,2,194,28,192,192,248,80,158,35,33,194,28,248,194,248,22, +27,248,22,252,9,2,194,28,192,192,248,80,158,35,33,194,28,248,194,248,22, 52,196,27,248,22,53,196,28,248,22,57,193,10,28,248,22,50,193,28,248,22, -57,248,22,53,194,27,248,22,52,194,27,248,22,252,8,2,194,28,192,192,248, +57,248,22,53,194,27,248,22,52,194,27,248,22,252,9,2,194,28,192,192,248, 80,158,36,33,194,28,248,195,248,22,52,194,27,248,22,53,194,28,248,22,57, 193,10,28,248,22,50,193,28,248,22,57,248,22,53,194,27,248,22,52,194,27, -248,22,252,8,2,194,28,192,192,248,80,158,37,33,194,28,248,196,248,22,52, +248,22,252,9,2,194,28,192,192,248,80,158,37,33,194,28,248,196,248,22,52, 194,249,80,159,36,34,33,197,248,22,53,195,11,11,11,11,11,11,83,159,32, 93,80,159,32,35,33,89,162,32,33,40,2,11,223,0,28,248,22,58,194,28, -249,22,181,248,22,64,196,38,28,27,248,22,52,195,27,248,22,252,8,2,194, -28,192,192,248,80,158,35,33,194,28,27,248,22,78,195,27,248,22,252,8,2, -194,28,192,192,248,80,158,35,33,194,28,27,248,22,87,195,27,248,22,252,8, +249,22,181,248,22,64,196,38,28,27,248,22,52,195,27,248,22,252,9,2,194, +28,192,192,248,80,158,35,33,194,28,27,248,22,78,195,27,248,22,252,9,2, +194,28,192,192,248,80,158,35,33,194,28,27,248,22,87,195,27,248,22,252,9, 2,194,28,192,192,248,80,158,35,33,194,28,27,80,158,33,33,27,249,22,70, 197,35,28,248,22,57,193,10,28,248,22,50,193,28,248,22,57,248,22,53,194, -27,248,22,52,194,27,248,22,252,8,2,194,28,192,192,248,80,158,37,33,194, +27,248,22,52,194,27,248,22,252,9,2,194,28,192,192,248,80,158,37,33,194, 28,248,194,248,22,52,194,27,248,22,53,194,28,248,22,57,193,10,28,248,22, -50,193,28,248,22,57,248,22,53,194,27,248,22,52,194,27,248,22,252,8,2, +50,193,28,248,22,57,248,22,53,194,27,248,22,52,194,27,248,22,252,9,2, 194,28,192,192,248,80,158,38,33,194,28,248,195,248,22,52,194,249,80,159,37, 34,33,196,248,22,53,195,11,11,11,11,28,27,80,159,33,32,33,27,249,22, 70,197,36,28,248,22,57,193,10,28,248,22,50,193,28,248,22,57,248,22,53, -194,27,248,22,52,194,27,248,22,252,8,2,194,28,192,192,248,80,158,37,33, +194,27,248,22,52,194,27,248,22,252,9,2,194,28,192,192,248,80,158,37,33, 194,28,248,194,248,22,52,194,27,248,22,53,194,28,248,22,57,193,10,28,248, -22,50,193,28,248,22,57,248,22,53,194,27,248,22,52,194,27,248,22,252,8, +22,50,193,28,248,22,57,248,22,53,194,27,248,22,52,194,27,248,22,252,9, 2,194,28,192,192,248,80,158,38,33,194,28,248,195,248,22,52,194,249,80,159, 37,34,33,196,248,22,53,195,11,11,11,11,27,27,249,22,70,197,37,27,248, -22,252,8,2,194,28,192,192,248,80,158,36,33,194,28,192,192,249,22,252,10, +22,252,9,2,194,28,192,192,248,80,158,36,33,194,28,192,192,249,22,252,11, 2,10,249,22,70,198,37,11,11,11,11,11,11,11,83,159,32,93,80,159,32, 36,33,22,52,83,159,32,93,80,159,32,37,33,22,78,83,159,32,93,80,159, 32,38,33,22,87,83,159,32,93,80,159,32,39,33,22,90,83,159,32,93,80, @@ -334,10 +317,10 @@ EVAL_ONE_SIZED_STR((char *)expr, 1073); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,49,27,252,223,3,159,32,20,97,158,16,1,20, -23,65,98,101,103,105,110,0,16,0,83,158,39,20,94,114,71,35,37,100,115, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,27,252,223,3,159,32,20,98,158,16,1,20, +24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,71,35,37,100,115, 45,104,101,108,112,101,114,1,29,2,11,11,10,10,10,32,80,158,32,32,20, -97,158,16,6,30,3,2,2,1,20,108,105,115,116,45,62,105,109,109,117,116, +98,158,16,6,30,3,2,2,1,20,108,105,115,116,45,62,105,109,109,117,116, 97,98,108,101,45,108,105,115,116,4,254,1,30,5,2,2,72,103,101,116,45, 115,116,120,45,105,110,102,111,6,254,1,30,7,73,35,37,115,116,114,117,99, 116,45,105,110,102,111,8,72,115,116,114,117,99,116,45,105,110,102,111,63,9, @@ -360,8 +343,8 @@ 51,248,22,52,196,194,27,248,22,80,195,27,249,22,51,248,22,52,198,196,28, 248,22,57,194,192,28,248,22,57,248,22,53,195,249,22,51,248,22,52,196,194, 249,198,248,22,80,196,249,22,51,248,22,52,198,196,194,9,27,28,197,249,22, -252,78,3,199,89,162,40,32,32,9,222,11,11,87,94,28,197,28,28,248,80, -158,36,34,193,248,22,252,8,2,248,80,158,37,35,194,10,251,22,252,38,2, +252,79,3,199,89,162,40,32,32,9,222,11,11,87,94,28,197,28,28,248,80, +158,36,34,193,248,22,252,9,2,248,80,158,37,35,194,10,251,22,252,39,2, 11,28,248,80,158,40,34,197,6,63,63,112,97,114,101,110,116,32,115,116,114, 117,99,116,32,105,110,102,111,114,109,97,116,105,111,110,32,100,111,101,115,32, 110,111,116,32,105,110,99,108,117,100,101,32,97,32,116,121,112,101,32,102,111, @@ -385,188 +368,172 @@ EVAL_ONE_SIZED_STR((char *)expr, 1004); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,49,121,252,239,12,159,32,20,97,158,16,1,20, -23,65,98,101,103,105,110,0,16,0,83,158,39,20,94,114,74,35,37,100,101, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,102,252,162,11,159,32,20,98,158,16,1,20, +24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,74,35,37,100,101, 102,105,110,101,45,101,116,45,97,108,1,29,2,11,11,10,10,10,32,80,158, -32,32,20,97,158,16,0,16,0,11,11,16,0,32,11,16,6,67,45,100,101, -102,105,110,101,3,74,45,100,101,102,105,110,101,45,115,121,110,116,97,120,4, -73,100,101,102,105,110,101,45,115,116,114,117,99,116,5,64,119,104,101,110,6, -66,117,110,108,101,115,115,7,66,108,101,116,47,101,99,8,16,6,11,11,11, +32,32,20,98,158,16,0,16,0,11,11,16,0,32,11,16,6,64,119,104,101, +110,3,66,117,110,108,101,115,115,4,74,45,100,101,102,105,110,101,45,115,121, +110,116,97,120,5,66,108,101,116,47,101,99,6,67,45,100,101,102,105,110,101, +7,73,100,101,102,105,110,101,45,115,116,114,117,99,116,8,16,6,11,11,11, 11,11,11,16,6,2,3,2,4,2,5,2,6,2,7,2,8,32,38,97,16, -5,94,2,3,2,4,27,83,160,41,32,33,37,27,89,162,32,33,35,69,109, +5,94,2,7,2,5,27,20,15,159,33,32,37,27,89,162,32,33,35,69,109, 107,45,100,101,102,105,110,101,9,224,2,1,89,162,32,33,51,9,225,1,0, 2,27,248,80,158,36,32,197,27,248,80,158,37,33,194,28,248,80,158,37,34, 193,250,22,209,198,250,22,61,200,248,22,59,199,249,80,158,44,35,248,80,158, -45,36,248,80,158,46,32,203,9,200,27,248,80,158,38,32,195,250,22,209,83, -160,41,33,40,37,250,22,59,201,248,22,59,248,80,158,45,33,201,250,22,61, +45,36,248,80,158,46,32,203,9,200,27,248,80,158,38,32,195,250,22,209,20, +15,159,40,33,37,250,22,59,201,248,22,59,248,80,158,45,33,201,250,22,61, 66,108,97,109,98,100,97,10,248,80,158,47,32,203,249,80,158,48,35,248,80, -158,49,36,204,9,201,249,22,7,248,195,83,160,41,34,37,37,248,195,83,160, -41,35,37,37,38,20,97,158,16,5,30,11,65,35,37,115,116,120,12,67,115, +158,49,36,204,9,201,249,22,7,248,195,20,15,159,37,34,37,248,195,20,15, +159,37,35,37,38,20,98,158,16,5,30,11,65,35,37,115,116,120,12,67,115, 116,120,45,99,100,114,13,6,30,14,2,12,67,115,116,120,45,99,97,114,15, 5,30,16,2,12,71,105,100,101,110,116,105,102,105,101,114,63,17,2,30,18, 71,35,37,113,113,45,97,110,100,45,111,114,19,69,113,113,45,97,112,112,101, 110,100,20,0,30,21,2,12,69,115,116,120,45,62,108,105,115,116,22,4,16, 4,18,16,2,97,64,104,101,114,101,23,37,97,35,10,32,11,16,12,2,3, 2,2,2,4,2,2,2,5,2,2,2,6,2,2,2,7,2,2,2,8,2, -2,97,34,10,33,11,16,54,69,97,112,112,101,110,100,47,35,102,24,2,12, -73,115,116,120,45,99,104,101,99,107,47,101,115,99,25,2,12,1,24,115,116, -114,117,99,116,45,105,110,102,111,45,97,99,99,101,115,115,111,114,45,105,100, -115,26,73,35,37,115,116,114,117,99,116,45,105,110,102,111,27,70,115,116,120, -45,114,111,116,97,116,101,28,2,12,2,15,2,12,71,115,116,120,45,114,111, -116,97,116,101,42,29,2,12,2,13,2,12,74,115,112,108,105,116,45,115,116, -120,45,108,105,115,116,30,2,12,67,99,111,110,115,47,35,102,31,2,12,72, -103,101,116,45,115,116,120,45,105,110,102,111,32,71,35,37,100,115,45,104,101, -108,112,101,114,33,2,17,2,12,79,115,116,114,117,99,116,45,105,110,102,111, -45,116,121,112,101,45,105,100,34,2,27,69,115,116,120,45,112,97,105,114,63, -35,2,12,69,115,116,120,45,110,117,108,108,63,36,2,12,1,26,115,116,114, -117,99,116,45,105,110,102,111,45,99,111,110,115,116,114,117,99,116,111,114,45, -105,100,37,2,27,71,115,116,120,45,110,117,108,108,47,35,102,38,2,12,64, -99,111,110,100,39,66,35,37,99,111,110,100,40,70,113,117,97,115,105,113,117, -111,116,101,41,2,19,63,97,110,100,42,2,19,69,115,116,120,45,108,105,115, -116,63,43,2,12,72,115,116,114,117,99,116,45,105,110,102,111,63,44,2,27, -1,23,115,116,114,117,99,116,45,105,110,102,111,45,109,117,116,97,116,111,114, -45,105,100,115,45,2,27,2,22,2,12,62,111,114,46,2,19,1,24,115,116, -114,117,99,116,45,105,110,102,111,45,112,114,101,100,105,99,97,116,101,45,105, -100,47,2,27,71,115,116,120,45,118,101,99,116,111,114,63,48,2,12,74,115, -116,120,45,118,101,99,116,111,114,45,114,101,102,49,2,12,96,33,8,254,1, -11,16,0,9,18,103,2,23,44,35,34,33,16,4,43,11,2,23,3,1,7, -101,110,118,50,51,50,52,50,16,4,42,11,64,98,97,115,101,51,3,1,7, -101,110,118,50,51,50,54,52,16,4,41,11,64,99,111,100,101,53,3,1,7, -101,110,118,50,51,50,55,54,16,4,40,11,64,98,111,100,121,55,3,1,7, -101,110,118,50,51,50,56,56,16,4,39,11,65,102,105,114,115,116,57,3,1, -7,101,110,118,50,51,50,57,58,16,4,38,11,65,112,98,111,100,121,59,3, -1,7,101,110,118,50,51,51,48,60,18,16,2,99,73,100,101,102,105,110,101, -45,118,97,108,117,101,115,61,46,35,34,33,43,16,4,45,11,2,9,3,1, -7,101,110,118,50,51,50,53,62,9,18,16,2,158,75,100,101,102,105,110,101, -45,115,121,110,116,97,120,101,115,63,46,9,11,16,5,93,2,6,89,162,32, -33,45,9,223,0,27,248,22,216,195,28,28,192,249,22,183,248,22,64,195,34, -11,250,22,209,83,160,41,32,36,34,250,22,59,83,160,41,33,39,34,248,80, -158,40,32,248,80,158,41,33,202,249,22,61,83,160,41,34,41,34,248,80,158, -42,33,248,80,158,43,33,204,197,250,22,252,38,2,11,6,10,10,98,97,100, -32,115,121,110,116,97,120,197,32,20,97,158,16,2,2,14,2,11,16,3,18, -99,2,23,49,35,34,33,16,4,48,11,61,120,64,3,1,7,101,110,118,50, -51,51,50,65,16,4,47,11,61,108,66,3,1,7,101,110,118,50,51,51,51, -67,18,158,62,105,102,68,49,18,158,2,0,49,11,16,5,93,2,7,89,162, -32,33,45,9,223,0,27,248,22,216,195,28,28,192,249,22,183,248,22,64,195, -34,11,250,22,209,83,160,41,32,36,32,251,22,59,83,160,41,33,40,32,248, -22,78,200,83,160,41,34,40,32,249,22,61,83,160,41,35,42,32,248,22,80, -202,197,250,22,252,38,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120, -197,32,20,97,158,16,0,16,4,18,99,2,23,52,35,34,33,16,4,51,11, -2,64,3,1,7,101,110,118,50,51,51,53,69,16,4,50,11,2,66,3,1, -7,101,110,118,50,51,51,54,70,18,158,2,68,52,18,158,93,158,64,118,111, -105,100,71,52,52,18,158,2,0,52,11,16,5,93,2,8,89,162,32,33,48, -9,223,0,27,248,22,216,195,28,28,192,28,249,22,183,248,22,64,195,34,248, -80,158,34,32,248,22,78,194,11,11,27,248,22,78,194,27,248,80,158,36,33, -248,80,158,37,33,198,250,22,209,83,160,41,32,38,36,249,22,59,67,99,97, -108,108,47,101,99,72,250,22,61,2,10,248,22,59,202,249,80,158,45,34,248, -80,158,46,35,203,9,199,250,22,252,38,2,11,6,10,10,98,97,100,32,115, -121,110,116,97,120,197,32,20,97,158,16,4,2,16,2,11,2,18,2,21,16, -1,18,100,2,23,56,35,34,33,16,4,55,11,2,53,3,1,7,101,110,118, -50,51,51,56,73,16,4,54,11,2,66,3,1,7,101,110,118,50,51,51,57, -74,16,6,53,11,63,118,97,114,75,65,101,120,112,114,115,76,3,1,7,101, -110,118,50,51,52,48,77,2,77,11,16,5,93,2,5,27,89,162,32,36,53, -69,109,97,107,101,45,99,111,114,101,78,223,1,250,22,59,70,108,101,116,45, -118,97,108,117,101,115,79,248,22,59,249,22,59,21,97,64,116,121,112,101,80, -65,109,97,107,101,114,81,64,112,114,101,100,82,66,97,99,99,101,115,115,83, -66,109,117,116,97,116,101,84,26,8,22,59,76,109,97,107,101,45,115,116,114, -117,99,116,45,116,121,112,101,85,249,22,59,65,113,117,111,116,101,86,23,17, -23,17,248,22,64,23,19,32,11,64,110,117,108,108,87,23,16,252,22,61,66, -118,97,108,117,101,115,88,2,80,2,81,2,82,249,80,158,42,32,249,91,159, -33,11,20,12,95,33,192,89,162,32,34,45,64,108,111,111,112,89,223,0,28, -248,22,57,194,9,250,22,61,251,22,59,1,26,109,97,107,101,45,115,116,114, -117,99,116,45,102,105,101,108,100,45,97,99,99,101,115,115,111,114,90,2,83, -201,249,22,59,2,86,248,22,52,203,251,22,59,1,25,109,97,107,101,45,115, -116,114,117,99,116,45,102,105,101,108,100,45,109,117,116,97,116,111,114,91,2, -84,201,249,22,59,2,86,248,22,52,203,249,197,248,22,53,199,248,22,170,200, -23,16,32,9,89,162,32,33,8,31,9,224,1,0,87,94,28,248,80,158,34, -33,195,250,22,252,38,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120, -197,12,27,248,80,158,35,34,248,80,158,36,35,197,27,89,162,33,34,40,72, -115,121,110,116,97,120,45,101,114,114,111,114,92,223,4,252,22,1,22,252,38, -2,11,198,197,199,27,89,162,32,34,47,78,98,117,105,108,100,45,115,116,114, -117,99,116,45,110,97,109,101,115,93,222,27,248,22,44,248,22,210,195,27,249, -22,2,22,44,249,22,2,22,210,199,249,22,2,22,42,249,22,65,250,22,59, -249,22,252,159,1,6,7,7,115,116,114,117,99,116,58,202,249,22,252,159,1, -6,5,5,109,97,107,101,45,202,249,22,252,159,1,202,6,1,1,63,249,22, -1,22,65,249,22,2,89,162,32,33,44,9,223,9,249,22,59,250,22,252,159, -1,197,6,1,1,45,198,252,22,252,159,1,6,4,4,115,101,116,45,199,6, -1,1,45,200,6,1,1,33,200,87,100,27,248,22,50,196,28,192,192,248,195, -6,17,17,101,109,112,116,121,32,100,101,99,108,97,114,97,116,105,111,110,27, -248,80,158,38,36,196,28,192,192,248,195,6,18,18,105,108,108,101,103,97,108, -32,117,115,101,32,111,102,32,96,46,39,27,250,22,184,34,248,22,64,199,35, -28,192,192,248,195,6,21,21,119,114,111,110,103,32,110,117,109,98,101,114,32, -111,102,32,112,97,114,116,115,27,248,80,158,38,33,248,22,52,197,28,192,192, -27,28,248,80,158,39,37,248,22,52,198,28,248,80,158,39,33,248,80,158,40, -38,248,22,52,199,28,248,80,158,39,37,248,80,158,40,35,248,22,52,199,28, -248,80,158,39,33,248,80,158,40,38,248,80,158,41,35,248,22,52,200,248,80, -158,39,39,248,80,158,40,35,248,80,158,41,35,248,22,52,200,11,11,11,11, -28,192,192,248,196,6,55,55,102,105,114,115,116,32,112,97,114,116,32,109,117, -115,116,32,98,101,32,97,110,32,105,100,101,110,116,105,102,105,101,114,32,111, -114,32,112,97,105,114,32,111,102,32,105,100,101,110,116,105,102,105,101,114,115, -27,248,80,158,38,36,248,22,78,197,28,192,192,28,248,80,158,38,37,248,22, -78,197,248,195,6,41,41,105,108,108,101,103,97,108,32,117,115,101,32,111,102, -32,96,46,39,32,105,110,32,102,105,101,108,100,32,110,97,109,101,32,115,101, -113,117,101,110,99,101,248,195,6,30,30,102,105,101,108,100,32,110,97,109,101, -115,32,109,117,115,116,32,98,101,32,97,32,115,101,113,117,101,110,99,101,249, -22,3,89,162,32,33,38,9,224,6,3,27,248,80,158,35,33,196,28,192,192, -249,195,6,27,27,102,105,101,108,100,32,110,97,109,101,32,110,111,116,32,97, -32,105,100,101,110,116,105,102,105,101,114,197,248,80,158,39,34,248,22,78,198, -28,249,22,71,247,22,252,80,3,21,93,70,101,120,112,114,101,115,115,105,111, -110,94,248,194,6,35,35,97,108,108,111,119,101,100,32,111,110,108,121,32,105, -110,32,100,101,102,105,110,105,116,105,111,110,32,99,111,110,116,101,120,116,115, -12,27,28,248,80,158,38,33,248,22,52,197,248,22,52,196,248,80,158,38,38, -248,22,52,197,27,248,80,158,39,34,248,22,78,198,27,28,248,22,57,248,22, -80,199,83,160,41,32,39,41,248,22,87,198,27,28,248,80,158,41,33,248,22, -52,200,11,248,80,158,41,38,248,80,158,42,35,248,22,52,201,27,249,22,2, -89,162,32,33,37,9,223,6,250,22,209,195,196,195,249,201,200,199,91,159,34, -11,90,161,34,32,11,251,80,158,47,40,23,16,199,198,10,27,250,22,209,83, -160,41,33,47,41,250,22,59,2,0,250,22,59,2,61,204,27,251,23,25,23, -21,28,23,19,69,105,110,115,112,101,99,116,111,114,95,11,23,15,23,20,28, -23,15,251,22,59,63,108,101,116,96,248,22,59,249,22,59,2,95,23,22,21, -95,2,68,96,2,68,2,95,94,63,110,111,116,97,94,70,105,110,115,112,101, -99,116,111,114,63,98,2,95,11,96,76,114,97,105,115,101,45,116,121,112,101, -45,101,114,114,111,114,99,94,2,86,2,5,6,15,15,105,110,115,112,101,99, -116,111,114,32,111,114,32,35,102,2,95,196,192,250,22,59,2,63,248,22,59, -23,17,203,23,16,28,196,250,22,218,195,75,100,105,115,97,112,112,101,97,114, -101,100,45,117,115,101,100,248,22,252,83,3,200,192,33,20,97,158,16,9,2, -18,2,16,2,21,2,11,30,101,2,12,2,43,8,30,102,2,12,2,35,11, -2,14,30,103,2,12,2,36,10,30,104,2,33,2,32,0,16,2,18,16,2, -158,93,101,77,99,117,114,114,101,110,116,45,105,110,115,112,101,99,116,111,114, -105,8,29,35,34,33,16,4,8,28,11,2,78,3,1,7,101,110,118,50,51, -52,50,106,16,4,59,11,63,115,116,120,107,3,1,7,101,110,118,50,51,52, -54,108,16,4,58,11,2,55,3,1,7,101,110,118,50,51,52,55,109,16,6, -57,11,2,92,2,93,3,1,7,101,110,118,50,51,52,56,110,2,110,8,29, -9,18,16,2,104,2,23,8,33,35,34,33,8,28,59,58,57,16,10,8,32, -11,64,110,97,109,101,111,71,102,105,101,108,100,45,110,97,109,101,115,112,2, -95,68,115,117,112,101,114,45,105,100,113,3,1,7,101,110,118,50,51,54,50, -114,2,114,2,114,2,114,16,4,8,31,11,73,100,101,102,105,110,101,100,45, -110,97,109,101,115,115,3,1,7,101,110,118,50,51,54,51,116,16,6,8,30, -11,76,115,117,112,101,114,45,105,100,47,115,116,114,117,99,116,58,117,68,115, -116,120,45,105,110,102,111,118,3,1,7,101,110,118,50,51,54,53,119,2,119, -9,11,9,93,68,35,37,107,101,114,110,101,108,120,98,2,120,2,12,2,19, -2,40,2,27,2,33,0}; - EVAL_ONE_SIZED_STR((char *)expr, 3324); +2,98,34,10,33,11,97,159,71,35,37,100,115,45,104,101,108,112,101,114,24, +9,11,159,73,35,37,115,116,114,117,99,116,45,105,110,102,111,25,9,11,159, +66,35,37,99,111,110,100,26,9,11,159,2,19,9,11,159,2,12,9,11,16, +0,96,33,8,254,1,11,16,0,9,18,103,2,23,44,35,34,33,16,4,43, +11,2,23,3,1,7,101,110,118,50,51,50,52,27,16,4,42,11,64,98,97, +115,101,28,3,1,7,101,110,118,50,51,50,54,29,16,4,41,11,64,99,111, +100,101,30,3,1,7,101,110,118,50,51,50,55,31,16,4,40,11,64,98,111, +100,121,32,3,1,7,101,110,118,50,51,50,56,33,16,4,39,11,65,102,105, +114,115,116,34,3,1,7,101,110,118,50,51,50,57,35,16,4,38,11,65,112, +98,111,100,121,36,3,1,7,101,110,118,50,51,51,48,37,18,16,2,99,73, +100,101,102,105,110,101,45,118,97,108,117,101,115,38,46,35,34,33,43,16,4, +45,11,2,9,3,1,7,101,110,118,50,51,50,53,39,9,18,16,2,158,75, +100,101,102,105,110,101,45,115,121,110,116,97,120,101,115,40,46,9,11,16,5, +93,2,3,89,162,32,33,45,9,223,0,27,248,22,216,195,28,28,192,249,22, +183,248,22,64,195,34,11,250,22,209,20,15,159,36,32,34,250,22,59,20,15, +159,39,33,34,248,80,158,40,32,248,80,158,41,33,202,249,22,61,20,15,159, +41,34,34,248,80,158,42,33,248,80,158,43,33,204,197,250,22,252,39,2,11, +6,10,10,98,97,100,32,115,121,110,116,97,120,197,32,20,98,158,16,2,2, +14,2,11,16,3,18,99,2,23,49,35,34,33,16,4,48,11,61,120,41,3, +1,7,101,110,118,50,51,51,50,42,16,4,47,11,61,108,43,3,1,7,101, +110,118,50,51,51,51,44,18,158,62,105,102,45,49,18,158,2,0,49,11,16, +5,93,2,4,89,162,32,33,45,9,223,0,27,248,22,216,195,28,28,192,249, +22,183,248,22,64,195,34,11,250,22,209,20,15,159,36,32,32,251,22,59,20, +15,159,40,33,32,248,22,78,200,20,15,159,40,34,32,249,22,61,20,15,159, +42,35,32,248,22,80,202,197,250,22,252,39,2,11,6,10,10,98,97,100,32, +115,121,110,116,97,120,197,32,20,98,158,16,0,16,4,18,99,2,23,52,35, +34,33,16,4,51,11,2,41,3,1,7,101,110,118,50,51,51,53,46,16,4, +50,11,2,43,3,1,7,101,110,118,50,51,51,54,47,18,158,2,45,52,18, +158,93,158,64,118,111,105,100,48,52,52,18,158,2,0,52,11,16,5,93,2, +6,89,162,32,33,48,9,223,0,27,248,22,216,195,28,28,192,28,249,22,183, +248,22,64,195,34,248,80,158,34,32,248,22,78,194,11,11,27,248,22,78,194, +27,248,80,158,36,33,248,80,158,37,33,198,250,22,209,20,15,159,38,32,36, +249,22,59,67,99,97,108,108,47,101,99,49,250,22,61,2,10,248,22,59,202, +249,80,158,45,34,248,80,158,46,35,203,9,199,250,22,252,39,2,11,6,10, +10,98,97,100,32,115,121,110,116,97,120,197,32,20,98,158,16,4,2,16,2, +11,2,18,2,21,16,1,18,100,2,23,56,35,34,33,16,4,55,11,2,30, +3,1,7,101,110,118,50,51,51,56,50,16,4,54,11,2,43,3,1,7,101, +110,118,50,51,51,57,51,16,6,53,11,63,118,97,114,52,65,101,120,112,114, +115,53,3,1,7,101,110,118,50,51,52,48,54,2,54,11,16,5,93,2,8, +27,89,162,32,36,53,69,109,97,107,101,45,99,111,114,101,55,223,1,250,22, +59,70,108,101,116,45,118,97,108,117,101,115,56,248,22,59,249,22,59,21,97, +64,116,121,112,101,57,65,109,97,107,101,114,58,64,112,114,101,100,59,66,97, +99,99,101,115,115,60,66,109,117,116,97,116,101,61,26,8,22,59,76,109,97, +107,101,45,115,116,114,117,99,116,45,116,121,112,101,62,249,22,59,65,113,117, +111,116,101,63,23,17,23,17,248,22,64,23,19,32,11,64,110,117,108,108,64, +23,16,252,22,61,66,118,97,108,117,101,115,65,2,57,2,58,2,59,249,80, +158,42,32,249,91,159,33,11,20,12,95,33,192,89,162,32,34,45,64,108,111, +111,112,66,223,0,28,248,22,57,194,9,250,22,61,251,22,59,1,26,109,97, +107,101,45,115,116,114,117,99,116,45,102,105,101,108,100,45,97,99,99,101,115, +115,111,114,67,2,60,201,249,22,59,2,63,248,22,52,203,251,22,59,1,25, +109,97,107,101,45,115,116,114,117,99,116,45,102,105,101,108,100,45,109,117,116, +97,116,111,114,68,2,61,201,249,22,59,2,63,248,22,52,203,249,197,248,22, +53,199,248,22,170,200,23,16,32,9,89,162,32,33,8,31,9,224,1,0,87, +94,28,248,80,158,34,33,195,250,22,252,39,2,11,6,10,10,98,97,100,32, +115,121,110,116,97,120,197,12,27,248,80,158,35,34,248,80,158,36,35,197,27, +89,162,33,34,40,72,115,121,110,116,97,120,45,101,114,114,111,114,69,223,4, +252,22,1,22,252,39,2,11,198,197,199,27,89,162,32,34,47,78,98,117,105, +108,100,45,115,116,114,117,99,116,45,110,97,109,101,115,70,222,27,248,22,44, +248,22,210,195,27,249,22,2,22,44,249,22,2,22,210,199,249,22,2,22,42, +249,22,65,250,22,59,249,22,252,159,1,6,7,7,115,116,114,117,99,116,58, +202,249,22,252,159,1,6,5,5,109,97,107,101,45,202,249,22,252,159,1,202, +6,1,1,63,249,22,1,22,65,249,22,2,89,162,32,33,44,9,223,9,249, +22,59,250,22,252,159,1,197,6,1,1,45,198,252,22,252,159,1,6,4,4, +115,101,116,45,199,6,1,1,45,200,6,1,1,33,200,87,100,27,248,22,50, +196,28,192,192,248,195,6,17,17,101,109,112,116,121,32,100,101,99,108,97,114, +97,116,105,111,110,27,248,80,158,38,36,196,28,192,192,248,195,6,18,18,105, +108,108,101,103,97,108,32,117,115,101,32,111,102,32,96,46,39,27,250,22,184, +34,248,22,64,199,35,28,192,192,248,195,6,21,21,119,114,111,110,103,32,110, +117,109,98,101,114,32,111,102,32,112,97,114,116,115,27,248,80,158,38,33,248, +22,52,197,28,192,192,27,28,248,80,158,39,37,248,22,52,198,28,248,80,158, +39,33,248,80,158,40,38,248,22,52,199,28,248,80,158,39,37,248,80,158,40, +35,248,22,52,199,28,248,80,158,39,33,248,80,158,40,38,248,80,158,41,35, +248,22,52,200,248,80,158,39,39,248,80,158,40,35,248,80,158,41,35,248,22, +52,200,11,11,11,11,28,192,192,248,196,6,55,55,102,105,114,115,116,32,112, +97,114,116,32,109,117,115,116,32,98,101,32,97,110,32,105,100,101,110,116,105, +102,105,101,114,32,111,114,32,112,97,105,114,32,111,102,32,105,100,101,110,116, +105,102,105,101,114,115,27,248,80,158,38,36,248,22,78,197,28,192,192,28,248, +80,158,38,37,248,22,78,197,248,195,6,41,41,105,108,108,101,103,97,108,32, +117,115,101,32,111,102,32,96,46,39,32,105,110,32,102,105,101,108,100,32,110, +97,109,101,32,115,101,113,117,101,110,99,101,248,195,6,30,30,102,105,101,108, +100,32,110,97,109,101,115,32,109,117,115,116,32,98,101,32,97,32,115,101,113, +117,101,110,99,101,249,22,3,89,162,32,33,38,9,224,6,3,27,248,80,158, +35,33,196,28,192,192,249,195,6,27,27,102,105,101,108,100,32,110,97,109,101, +32,110,111,116,32,97,32,105,100,101,110,116,105,102,105,101,114,197,248,80,158, +39,34,248,22,78,198,28,249,22,71,247,22,252,81,3,21,93,70,101,120,112, +114,101,115,115,105,111,110,71,248,194,6,35,35,97,108,108,111,119,101,100,32, +111,110,108,121,32,105,110,32,100,101,102,105,110,105,116,105,111,110,32,99,111, +110,116,101,120,116,115,12,27,28,248,80,158,38,33,248,22,52,197,248,22,52, +196,248,80,158,38,38,248,22,52,197,27,248,80,158,39,34,248,22,78,198,27, +28,248,22,57,248,22,80,199,20,15,159,39,32,41,248,22,87,198,27,28,248, +80,158,41,33,248,22,52,200,11,248,80,158,41,38,248,80,158,42,35,248,22, +52,201,27,249,22,2,89,162,32,33,37,9,223,6,250,22,209,195,196,195,249, +201,200,199,91,159,34,11,90,161,34,32,11,251,80,158,47,40,23,16,199,198, +10,27,250,22,209,20,15,159,47,33,41,250,22,59,2,0,250,22,59,2,38, +204,27,251,23,25,23,21,28,23,19,69,105,110,115,112,101,99,116,111,114,72, +11,23,15,23,20,28,23,15,251,22,59,63,108,101,116,73,248,22,59,249,22, +59,2,72,23,22,21,95,2,45,96,2,45,2,72,94,63,110,111,116,74,94, +70,105,110,115,112,101,99,116,111,114,63,75,2,72,11,96,76,114,97,105,115, +101,45,116,121,112,101,45,101,114,114,111,114,76,94,2,63,2,8,6,15,15, +105,110,115,112,101,99,116,111,114,32,111,114,32,35,102,2,72,196,192,250,22, +59,2,40,248,22,59,23,17,203,23,16,28,196,250,22,218,195,75,100,105,115, +97,112,112,101,97,114,101,100,45,117,115,101,77,248,22,252,84,3,200,192,33, +20,98,158,16,9,2,18,2,16,2,21,2,11,30,78,2,12,69,115,116,120, +45,108,105,115,116,63,79,8,30,80,2,12,69,115,116,120,45,112,97,105,114, +63,81,11,2,14,30,82,2,12,69,115,116,120,45,110,117,108,108,63,83,10, +30,84,2,24,72,103,101,116,45,115,116,120,45,105,110,102,111,85,0,16,2, +18,16,2,158,93,101,77,99,117,114,114,101,110,116,45,105,110,115,112,101,99, +116,111,114,86,8,29,35,34,33,16,4,8,28,11,2,55,3,1,7,101,110, +118,50,51,52,50,87,16,4,59,11,63,115,116,120,88,3,1,7,101,110,118, +50,51,52,54,89,16,4,58,11,2,32,3,1,7,101,110,118,50,51,52,55, +90,16,6,57,11,2,69,2,70,3,1,7,101,110,118,50,51,52,56,91,2, +91,8,29,9,18,16,2,104,2,23,8,33,35,34,33,8,28,59,58,57,16, +10,8,32,11,64,110,97,109,101,92,71,102,105,101,108,100,45,110,97,109,101, +115,93,2,72,68,115,117,112,101,114,45,105,100,94,3,1,7,101,110,118,50, +51,54,50,95,2,95,2,95,2,95,16,4,8,31,11,73,100,101,102,105,110, +101,100,45,110,97,109,101,115,96,3,1,7,101,110,118,50,51,54,51,97,16, +6,8,30,11,76,115,117,112,101,114,45,105,100,47,115,116,114,117,99,116,58, +98,68,115,116,120,45,105,110,102,111,99,3,1,7,101,110,118,50,51,54,53, +100,2,100,9,11,9,93,68,35,37,107,101,114,110,101,108,101,98,2,101,2, +12,2,19,2,26,2,25,2,24,0}; + EVAL_ONE_SIZED_STR((char *)expr, 2991); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,49,18,252,4,1,159,32,20,97,158,16,1,20, -23,65,98,101,103,105,110,0,16,0,83,158,39,20,94,114,74,35,37,115,109, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,18,252,4,1,159,32,20,98,158,16,1,20, +24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,74,35,37,115,109, 97,108,108,45,115,99,104,101,109,101,1,29,2,11,11,10,10,10,32,80,158, -32,32,20,97,158,16,0,16,0,11,11,16,0,32,11,16,10,63,97,110,100, -3,67,45,100,101,102,105,110,101,4,62,111,114,5,74,45,100,101,102,105,110, -101,45,115,121,110,116,97,120,6,64,99,111,110,100,7,73,100,101,102,105,110, -101,45,115,116,114,117,99,116,8,64,119,104,101,110,9,66,117,110,108,101,115, -115,10,70,113,117,97,115,105,113,117,111,116,101,11,66,108,101,116,47,101,99, -12,16,10,71,35,37,113,113,45,97,110,100,45,111,114,13,74,35,37,100,101, -102,105,110,101,45,101,116,45,97,108,14,2,13,2,14,66,35,37,99,111,110, -100,15,2,14,2,14,2,14,2,13,2,14,16,10,2,3,2,4,2,5,2, +32,32,20,98,158,16,0,16,0,11,11,16,0,32,11,16,10,64,119,104,101, +110,3,66,108,101,116,47,101,99,4,66,117,110,108,101,115,115,5,63,97,110, +100,6,74,45,100,101,102,105,110,101,45,115,121,110,116,97,120,7,62,111,114, +8,67,45,100,101,102,105,110,101,9,73,100,101,102,105,110,101,45,115,116,114, +117,99,116,10,64,99,111,110,100,11,70,113,117,97,115,105,113,117,111,116,101, +12,16,10,74,35,37,100,101,102,105,110,101,45,101,116,45,97,108,13,2,13, +2,13,71,35,37,113,113,45,97,110,100,45,111,114,14,2,13,2,14,2,13, +2,13,66,35,37,99,111,110,100,15,2,14,16,10,2,3,2,4,2,5,2, 6,2,7,2,8,2,9,2,10,2,11,2,12,32,42,9,9,97,68,35,37, -107,101,114,110,101,108,16,65,35,37,115,116,120,17,2,13,2,15,2,14,9, +107,101,114,110,101,108,16,65,35,37,115,116,120,17,2,14,2,15,2,13,9, 0}; EVAL_ONE_SIZED_STR((char *)expr, 273); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,49,190,252,131,37,159,32,20,97,158,16,1,20, -23,65,98,101,103,105,110,0,16,0,83,158,39,20,94,114,64,35,37,115,99, -1,29,2,11,11,10,10,10,48,80,158,32,32,20,97,158,16,37,30,3,2, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,181,252,227,36,159,32,20,98,158,16,1,20, +24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,64,35,37,115,99, +1,29,2,11,11,10,10,10,48,80,158,32,32,20,98,158,16,37,30,3,2, 2,64,46,46,46,63,4,254,1,30,5,2,2,68,115,116,120,45,109,101,109, 113,6,254,1,30,7,2,2,72,115,116,120,45,109,101,109,113,45,112,111,115, 8,254,1,30,9,2,2,73,115,116,120,45,109,101,109,113,42,45,112,111,115, @@ -606,461 +573,454 @@ 2,1,21,115,121,110,116,97,120,45,109,97,112,112,105,110,103,45,118,97,108, 118,97,114,76,254,1,30,77,2,2,1,26,115,101,116,45,115,121,110,116,97, 120,45,109,97,112,112,105,110,103,45,118,97,108,118,97,114,33,78,254,1,16, -2,18,98,63,46,46,46,79,38,97,36,10,32,11,16,114,2,54,2,2,2, -78,2,2,2,62,2,2,2,64,2,2,2,8,2,2,2,25,2,2,2,4, -2,2,2,76,2,2,2,56,2,2,2,16,2,2,2,68,2,2,2,70,2, -2,74,45,100,101,102,105,110,101,45,115,121,110,116,97,120,80,74,35,37,100, -101,102,105,110,101,45,101,116,45,97,108,81,74,115,121,110,116,97,120,45,109, -97,112,112,105,110,103,82,2,2,62,111,114,83,2,41,2,66,2,2,73,100, -101,102,105,110,101,45,115,116,114,117,99,116,84,2,81,2,60,2,2,67,45, -100,101,102,105,110,101,85,2,81,2,29,2,2,2,37,2,18,2,72,2,2, -2,19,2,18,71,115,116,120,45,110,117,108,108,47,35,102,86,2,18,2,10, -2,2,64,119,104,101,110,87,2,81,2,31,2,18,64,99,111,110,100,88,66, -35,37,99,111,110,100,89,66,117,110,108,101,115,115,90,2,81,2,27,2,2, -69,115,116,120,45,108,105,115,116,63,91,2,18,66,108,101,116,47,101,99,92, -2,81,69,115,116,120,45,62,108,105,115,116,93,2,18,2,12,2,2,74,115, -116,120,45,118,101,99,116,111,114,45,114,101,102,94,2,18,2,23,2,18,2, -39,2,18,2,21,2,18,73,115,116,120,45,99,104,101,99,107,47,101,115,99, -95,2,18,70,113,117,97,115,105,113,117,111,116,101,96,2,41,67,99,111,110, -115,47,35,102,97,2,18,74,115,112,108,105,116,45,115,116,120,45,108,105,115, -116,98,2,18,70,115,116,120,45,114,111,116,97,116,101,99,2,18,2,44,2, -2,71,115,116,120,45,114,111,116,97,116,101,42,100,2,18,2,46,2,2,63, -97,110,100,101,2,41,2,48,2,2,2,33,2,2,2,58,2,2,2,50,2, -2,2,35,2,2,2,14,2,2,2,6,2,2,2,74,2,2,69,97,112,112, -101,110,100,47,35,102,102,2,18,2,52,2,2,96,35,33,11,16,0,96,34, -8,254,1,11,16,0,16,4,33,11,61,115,103,3,1,7,101,110,118,50,51, -55,48,104,18,103,2,79,45,36,35,34,16,10,44,11,61,112,105,67,112,114, -111,116,111,45,114,106,61,107,107,64,100,101,115,116,108,3,1,7,101,110,118, -50,52,53,48,109,2,109,2,109,2,109,16,6,43,11,68,101,120,112,97,110, -100,101,114,110,63,116,111,112,111,3,1,7,101,110,118,50,52,53,52,112,3, -1,7,101,110,118,50,52,53,50,113,16,6,42,11,2,110,2,111,2,112,2, -113,16,10,41,11,69,108,111,99,97,108,45,116,111,112,114,73,117,115,101,45, -101,108,108,105,112,115,101,115,63,115,72,117,115,101,45,116,97,105,108,45,112, -111,115,116,65,104,97,115,104,33,117,3,1,7,101,110,118,50,52,53,54,118, -2,118,2,118,2,118,16,10,40,11,66,112,45,104,101,97,100,119,68,101,108, -45,99,111,117,110,116,120,66,114,101,115,116,45,112,121,67,108,97,115,116,45, -101,108,122,3,1,7,101,110,118,50,52,53,55,123,2,123,2,123,2,123,16, -4,39,11,64,108,111,111,112,124,3,1,7,101,110,118,50,52,54,48,125,11, -11,16,21,2,4,2,33,2,35,2,29,2,58,2,54,2,56,2,60,2,50, -2,16,2,52,2,27,2,25,2,14,2,62,2,12,2,74,2,78,2,66,2, -6,2,10,53,16,9,10,10,10,10,10,10,10,10,10,16,9,2,46,2,44, -2,48,2,68,2,64,2,8,2,72,2,76,2,70,16,9,11,11,11,11,11, -11,11,11,11,16,9,2,46,2,44,2,48,2,68,2,64,2,8,2,72,2, -76,2,70,41,41,93,16,5,93,2,82,253,22,60,248,247,22,252,85,3,83, -160,41,32,39,32,248,247,22,252,85,3,83,160,41,33,39,32,248,247,22,252, -85,3,83,160,41,34,39,32,249,22,60,248,247,22,252,85,3,83,160,41,35, -41,32,248,247,22,252,85,3,83,160,41,36,41,32,249,22,60,248,247,22,252, -85,3,83,160,41,37,41,32,248,247,22,252,85,3,83,160,41,38,41,32,10, -42,20,97,158,16,0,16,7,18,97,2,66,46,36,35,34,18,158,2,68,46, -18,158,2,70,46,18,158,2,76,46,18,158,2,72,46,18,158,2,78,46,18, -158,2,74,46,11,116,83,159,32,93,80,159,32,32,33,89,162,32,33,36,2, -4,223,0,28,248,22,41,248,22,210,195,249,22,223,195,83,160,41,32,34,8, -37,11,83,159,32,93,80,159,32,33,33,89,162,32,34,36,2,6,222,249,22, -5,89,162,32,33,36,9,223,2,28,248,22,206,194,249,22,221,194,195,11,195, -83,159,32,93,80,159,32,34,33,89,162,32,34,37,2,8,222,249,91,159,33, -11,20,12,95,33,192,89,162,32,34,44,2,124,224,3,0,28,248,22,57,196, -11,28,28,248,22,206,248,22,52,197,249,22,221,195,248,22,52,198,11,194,27, -248,22,170,196,27,248,22,53,198,28,248,22,57,193,11,28,28,248,22,206,248, -22,52,194,249,22,221,197,248,22,52,195,11,193,27,248,22,170,195,27,248,22, -53,195,28,248,22,57,193,11,28,28,248,22,206,248,22,52,194,249,22,221,199, -248,22,52,195,11,193,249,198,248,22,170,196,248,22,53,195,32,195,83,159,32, -93,80,159,32,35,33,89,162,32,34,37,2,10,222,249,91,159,33,11,20,12, -95,33,192,89,162,32,34,40,2,124,224,3,0,28,248,22,57,196,11,28,249, -22,221,195,248,91,159,33,11,20,12,95,33,192,89,162,32,33,39,2,124,223, -0,28,248,22,206,194,193,27,248,22,52,195,28,248,22,206,193,192,27,248,22, -52,194,28,248,22,206,193,192,27,248,22,52,194,28,248,22,206,193,192,248,196, -248,22,52,194,248,22,52,199,194,249,194,248,22,170,197,248,22,53,198,32,195, -83,159,32,93,80,159,32,36,33,89,162,32,34,36,2,12,222,28,249,22,252, -10,2,194,195,248,22,59,193,249,22,59,194,195,83,159,32,93,80,159,32,37, -33,89,162,32,38,50,2,14,223,0,91,159,33,11,20,12,95,33,91,159,35, -11,90,161,35,32,11,252,200,204,204,10,10,11,28,201,27,247,22,110,87,94, -248,91,159,33,11,20,12,95,33,192,89,162,32,33,43,2,124,226,9,8,2, -0,28,248,22,206,197,27,250,22,116,197,248,22,210,201,89,97,40,32,32,9, -222,87,94,28,249,22,5,89,162,32,33,36,9,223,7,249,22,221,195,194,194, -251,22,252,38,2,248,22,210,200,6,30,30,118,97,114,105,97,98,108,101,32, -117,115,101,100,32,116,119,105,99,101,32,105,110,32,112,97,116,116,101,114,110, -200,201,12,250,22,115,197,248,22,210,201,249,22,51,202,197,28,248,22,50,197, -87,94,248,193,248,22,52,198,248,193,248,22,53,198,12,194,193,28,249,22,252, -12,2,194,21,95,66,108,97,109,98,100,97,126,93,61,101,127,2,127,28,202, -21,95,2,126,94,2,127,79,109,111,100,117,108,101,45,105,100,101,110,116,105, -102,105,101,114,61,63,128,2,127,21,95,2,126,93,2,127,2,127,250,22,59, -2,126,249,22,61,2,127,249,80,158,43,50,28,23,17,21,93,2,128,9,9, -248,80,159,40,44,34,196,89,162,32,37,8,46,63,109,38,101,129,228,1,6, -5,3,2,0,28,28,200,28,248,80,158,38,45,199,27,248,80,158,39,40,200, -28,248,80,158,39,45,193,28,27,248,80,158,40,41,194,28,248,22,41,248,22, -210,194,249,22,223,194,83,160,41,32,41,8,37,11,248,22,252,8,2,27,248, -80,158,41,41,202,28,248,22,41,248,22,210,194,249,22,223,194,83,160,41,32, -42,8,37,11,11,11,11,11,28,248,80,158,38,39,248,80,158,39,40,248,80, -158,40,40,201,27,248,80,158,39,41,200,27,249,80,159,41,42,34,195,199,91, -159,35,11,90,161,35,32,11,252,202,201,201,10,11,11,28,201,250,22,7,249, -22,2,22,59,200,11,11,27,249,80,159,45,43,34,198,89,162,40,33,33,9, -222,10,250,22,7,250,22,59,2,126,21,93,2,127,251,22,61,62,105,102,130, -21,94,2,91,2,127,27,248,80,159,55,44,34,205,28,249,22,252,12,2,194, -21,94,64,108,105,115,116,131,2,127,28,23,26,21,94,2,93,2,127,21,94, -2,131,94,2,93,2,127,28,248,22,57,204,250,22,61,66,97,110,100,109,97, -112,132,250,22,59,2,126,21,93,2,127,198,21,93,94,2,93,2,127,250,22, -59,2,92,63,101,115,99,133,250,22,59,63,108,101,116,134,248,22,59,249,22, -59,61,108,135,250,22,61,63,109,97,112,136,250,22,59,2,126,21,93,2,127, -250,22,61,2,95,23,18,21,93,2,133,21,93,94,2,93,2,127,251,22,59, -2,130,21,94,65,110,117,108,108,63,137,2,135,249,22,59,65,113,117,111,116, -101,138,27,249,22,2,89,97,40,33,33,9,222,23,26,28,23,39,249,22,1, -22,61,194,192,249,22,61,28,23,38,2,100,2,99,21,93,2,135,21,93,11, -197,11,27,249,22,59,248,80,158,41,41,202,248,80,158,41,41,248,80,158,42, -40,203,27,248,80,158,40,40,248,80,158,41,40,202,91,159,34,11,90,161,34, -32,11,249,91,159,33,11,20,12,95,33,192,89,162,32,34,43,2,124,226,12, -9,8,0,28,248,80,158,36,39,197,249,22,7,199,10,28,248,80,158,36,45, -197,87,94,28,27,248,80,158,37,41,198,28,248,22,41,248,22,210,194,249,22, -223,194,83,160,41,32,38,8,37,11,251,22,252,38,2,248,22,210,198,6,54, -54,109,105,115,112,108,97,99,101,100,32,101,108,108,105,112,115,101,115,32,105, -110,32,112,97,116,116,101,114,110,32,40,102,111,108,108,111,119,115,32,111,116, -104,101,114,32,101,108,108,105,112,115,101,115,41,198,248,80,158,40,41,201,12, -249,194,248,80,158,38,40,199,248,22,170,200,249,22,7,248,22,170,200,11,196, -32,91,159,41,11,90,161,35,32,11,28,23,17,252,23,18,23,17,23,17,23, -26,11,11,250,22,7,11,11,11,90,161,35,35,11,252,23,18,23,16,23,25, -23,26,23,27,10,90,161,35,38,11,28,23,17,250,22,7,195,196,11,252,23, -18,23,17,23,17,23,26,28,23,27,248,22,252,8,2,202,11,11,28,23,17, -250,22,7,249,22,65,203,200,11,11,250,22,7,250,22,59,2,126,21,93,2, -127,250,22,59,71,108,101,116,42,45,118,97,108,117,101,115,139,248,22,59,249, -22,59,21,95,69,112,114,101,45,105,116,101,109,115,140,70,112,111,115,116,45, -105,116,101,109,115,141,63,111,107,63,142,251,22,59,2,98,2,127,23,25,23, -26,251,22,61,2,130,2,142,27,27,249,80,159,8,35,46,34,23,23,2,140, -27,249,80,159,8,36,46,34,23,21,2,141,28,23,23,249,80,159,8,36,47, -34,195,194,251,22,61,2,130,197,196,21,93,11,28,23,19,28,23,37,250,22, -59,2,134,21,93,94,63,99,97,112,143,96,2,130,94,67,115,121,110,116,97, -120,63,144,2,127,2,127,2,143,195,250,22,59,2,134,21,93,94,2,143,2, -127,195,192,21,93,11,28,202,202,199,28,200,23,26,11,28,248,80,158,38,45, -199,27,248,80,158,39,41,200,28,28,201,28,248,22,41,248,22,210,194,249,22, -223,194,83,160,41,32,40,8,37,11,11,28,28,248,80,158,39,45,248,80,158, -40,40,201,248,80,158,39,39,248,80,158,40,40,248,80,158,41,40,202,11,27, -248,80,158,40,41,248,80,158,41,40,202,252,199,197,197,11,23,16,11,251,22, -252,38,2,248,22,210,199,6,29,29,109,105,115,112,108,97,99,101,100,32,101, -108,108,105,112,115,101,115,32,105,110,32,112,97,116,116,101,114,110,199,196,91, -159,41,11,90,161,35,32,11,28,206,252,23,15,206,206,23,23,11,11,250,22, -7,11,11,11,90,161,35,35,11,252,23,15,248,80,158,53,40,23,22,23,22, -23,23,23,24,10,90,161,35,38,11,28,206,250,22,7,195,196,11,252,23,15, -206,206,23,23,28,23,24,248,22,252,8,2,202,11,11,28,206,250,22,7,249, -22,65,203,200,11,11,250,22,7,250,22,59,2,126,21,93,2,127,251,22,61, -2,130,21,94,2,31,2,127,27,27,249,80,159,8,29,46,34,23,20,21,94, -2,23,2,127,27,249,80,159,8,30,46,34,23,18,21,94,2,21,2,127,28, -23,20,249,80,159,8,30,47,34,195,194,251,22,61,2,130,197,196,21,93,11, -28,23,16,28,23,31,250,22,59,2,134,21,93,94,2,143,96,2,130,94,2, -144,2,127,2,127,2,143,195,250,22,59,2,134,21,93,94,2,143,2,127,195, -192,21,93,11,28,202,202,199,28,200,23,23,11,28,248,80,158,38,39,199,28, -196,250,22,7,9,11,11,250,22,7,2,86,11,11,28,248,80,158,38,48,199, -28,249,22,5,89,162,32,33,36,9,223,8,28,248,22,206,194,249,22,221,194, -195,11,197,28,196,250,22,7,9,11,11,250,22,7,250,22,59,2,126,21,93, -2,127,251,22,61,2,130,21,94,2,37,2,127,250,22,61,2,130,250,22,59, -2,128,2,127,249,22,59,72,113,117,111,116,101,45,115,121,110,116,97,120,145, -23,24,21,94,64,110,117,108,108,146,11,21,93,11,11,11,28,28,200,28,248, -22,41,248,22,210,200,249,22,223,200,83,160,41,32,39,8,37,11,11,251,22, -252,38,2,248,22,210,198,6,29,29,109,105,115,112,108,97,99,101,100,32,101, -108,108,105,112,115,101,115,32,105,110,32,112,97,116,116,101,114,110,198,202,28, -196,250,22,7,248,22,59,202,11,11,250,22,7,27,28,205,89,162,32,33,36, -64,119,114,97,112,147,222,250,22,59,2,126,21,93,2,127,195,89,162,32,33, -38,2,147,222,250,22,59,2,126,21,93,2,127,249,22,59,2,131,197,28,206, -248,193,21,96,1,20,100,97,116,117,109,45,62,115,121,110,116,97,120,45,111, -98,106,101,99,116,148,2,143,2,127,2,143,248,193,2,127,10,205,28,249,80, -158,39,49,200,11,27,248,22,252,229,1,248,22,210,201,28,28,197,11,27,248, -22,252,8,2,203,28,192,192,249,22,4,89,162,32,33,37,9,223,9,248,22, -252,8,2,28,248,22,41,248,22,210,196,249,22,223,196,83,160,41,32,35,8, -37,11,195,27,248,22,252,226,1,248,22,210,202,250,91,159,33,11,20,12,95, -33,192,89,162,32,35,54,2,124,228,11,6,14,12,4,0,28,248,22,186,199, -250,22,7,250,22,59,2,126,21,93,2,127,251,22,61,2,130,250,22,59,2, -39,2,127,206,23,18,21,93,11,202,11,91,159,35,11,90,161,35,32,11,27, -249,22,252,227,1,248,22,210,201,248,22,171,205,252,205,197,197,204,248,22,252, -8,2,23,17,11,250,198,248,22,171,205,28,205,205,196,27,249,80,159,46,46, -34,198,250,22,59,2,94,2,127,248,22,171,23,19,28,248,22,57,23,16,192, -28,197,249,80,159,46,47,34,194,23,17,251,22,61,2,130,196,23,19,21,93, -11,195,248,22,252,8,2,23,15,9,91,159,35,11,90,161,35,32,11,252,201, -200,23,15,23,17,23,18,11,28,200,250,22,7,195,11,11,250,22,7,250,22, -59,2,126,21,93,2,127,251,22,61,2,130,21,95,2,39,2,127,11,249,80, -159,53,46,34,204,21,94,72,118,101,99,116,111,114,45,62,108,105,115,116,149, -94,68,115,121,110,116,97,120,45,101,150,2,127,21,93,11,196,11,28,196,250, -22,7,9,11,11,250,22,7,250,22,59,2,126,21,93,2,127,250,22,61,2, -130,27,250,22,61,66,101,113,117,97,108,63,151,248,22,210,23,20,21,93,94, -2,150,2,127,28,23,20,250,22,59,2,101,21,94,2,144,2,127,195,192,21, -94,2,146,11,11,11,83,159,32,93,80,159,32,51,33,89,162,32,37,44,2, -44,223,0,253,80,159,38,37,34,199,200,201,202,11,203,83,159,32,93,80,159, -32,52,33,89,162,32,36,43,2,46,223,0,253,80,159,38,37,34,199,200,201, -202,10,11,83,159,32,93,80,159,32,44,33,89,162,32,33,36,2,29,222,28, -28,248,22,50,193,28,249,22,252,10,2,248,22,52,195,2,126,249,22,252,12, -2,248,22,78,195,21,93,2,127,11,11,248,22,87,193,249,22,61,194,21,93, -2,127,83,159,32,93,80,159,32,46,33,89,162,32,34,38,2,33,222,28,28, -248,22,50,193,28,249,22,252,10,2,248,22,52,195,2,126,249,22,252,12,2, -248,22,78,195,21,93,2,127,11,11,27,248,22,87,194,28,249,22,252,10,2, -194,2,127,194,28,28,248,22,50,193,28,249,22,252,10,2,248,22,52,195,2, -131,28,248,22,50,248,22,53,194,28,249,22,252,10,2,248,22,78,195,2,127, -248,22,57,248,22,80,194,11,11,11,11,249,22,59,2,131,196,249,22,59,195, -196,249,22,59,194,195,83,159,32,93,80,159,32,47,33,89,162,32,34,38,2, -35,222,28,28,248,22,50,193,28,249,22,252,10,2,248,22,52,195,2,131,28, -248,22,50,248,22,53,194,248,22,57,248,22,80,194,11,11,11,250,22,59,2, -97,248,22,78,196,196,250,22,59,2,102,195,196,83,159,32,93,80,159,32,53, -33,89,162,32,36,8,50,2,48,223,0,91,159,34,10,90,161,33,32,10,195, -90,161,33,33,10,89,162,32,38,8,43,2,110,226,2,5,3,1,28,28,199, -28,248,80,158,36,45,197,27,248,80,158,37,40,198,28,248,80,158,37,45,193, -28,27,248,80,158,38,41,194,28,248,22,41,248,22,210,194,249,22,223,194,83, -160,41,32,39,8,37,11,248,22,252,8,2,27,248,80,158,39,41,200,28,248, -22,41,248,22,210,194,249,22,223,194,83,160,41,32,40,8,37,11,11,11,11, -11,91,159,38,11,90,161,33,32,11,248,80,158,42,41,203,90,161,35,33,11, -250,91,159,33,11,20,12,95,33,192,89,162,32,35,47,2,124,224,13,0,28, -28,248,80,158,34,45,195,27,248,80,158,35,41,196,28,248,22,41,248,22,210, -194,249,22,223,194,83,160,41,32,36,8,37,11,11,27,248,80,158,35,40,196, -27,248,22,170,198,27,248,80,158,37,41,198,28,28,248,80,158,37,45,195,27, -248,80,158,38,41,196,28,248,22,41,248,22,210,194,249,22,223,194,83,160,41, -32,39,8,37,11,11,27,248,80,158,38,40,196,27,248,22,170,196,27,248,80, -158,40,41,198,28,28,248,80,158,40,45,195,27,248,80,158,41,41,196,28,248, -22,41,248,22,210,194,249,22,223,194,83,160,41,32,42,8,37,11,11,250,201, -248,80,158,43,40,198,248,22,170,197,248,80,158,43,41,198,250,22,7,196,197, -195,250,22,7,196,197,195,250,22,7,198,197,199,248,80,158,45,40,248,80,158, -46,40,23,15,32,248,80,158,45,41,248,80,158,46,40,23,15,90,161,33,36, -11,248,91,159,33,11,20,12,95,33,192,89,162,32,33,52,2,124,225,11,2, -0,28,248,22,186,196,193,249,22,209,11,249,22,59,27,248,22,171,201,28,248, -22,186,193,198,249,22,209,11,249,22,59,27,248,22,171,198,28,248,22,186,193, -203,249,22,209,11,249,22,59,248,23,15,248,22,171,198,83,160,41,33,48,8, -37,83,160,41,33,43,8,37,83,160,41,33,38,8,37,194,90,161,33,37,11, -28,203,249,80,159,43,42,34,198,202,11,87,94,28,248,22,57,198,251,22,1, -22,252,38,2,66,115,121,110,116,97,120,152,6,48,48,110,111,32,112,97,116, -116,101,114,110,32,118,97,114,105,97,98,108,101,115,32,98,101,102,111,114,101, -32,101,108,108,105,112,115,101,115,32,105,110,32,116,101,109,112,108,97,116,101, -28,249,22,252,10,2,205,201,248,22,59,204,249,22,59,205,201,12,27,28,204, -249,22,2,89,162,32,33,41,9,226,12,10,15,14,251,80,159,39,54,34,200, -196,198,197,200,11,27,28,205,248,91,159,33,11,20,12,95,33,192,89,162,32, -33,38,2,124,223,0,28,248,22,57,194,9,28,248,22,79,194,248,193,248,22, -53,195,249,22,51,248,22,77,196,248,195,248,22,53,197,194,11,27,28,206,248, -91,159,33,11,20,12,95,33,192,89,162,32,33,38,2,124,223,0,28,248,22, -57,194,9,28,248,22,79,194,249,22,51,248,22,77,196,248,195,248,22,53,197, -248,193,248,22,53,195,195,11,27,28,23,15,248,80,159,46,55,34,195,11,27, -28,23,16,248,80,159,47,55,34,195,11,27,28,248,22,57,196,12,28,248,22, -57,197,251,22,1,22,252,38,2,2,152,6,29,29,116,111,111,32,109,97,110, -121,32,101,108,108,105,112,115,101,115,32,105,110,32,116,101,109,112,108,97,116, -101,28,249,22,252,10,2,23,19,23,15,248,22,59,23,18,249,22,59,23,19, -23,15,12,27,253,24,19,23,15,23,24,23,25,10,23,27,23,28,27,253,24, -20,23,18,28,23,25,249,22,65,205,206,11,23,18,10,11,23,29,28,23,19, -250,22,59,2,126,21,93,61,114,153,27,27,27,249,22,2,89,162,32,33,41, -9,225,25,30,27,250,80,159,37,56,34,2,153,249,80,159,39,35,34,200,197, -196,204,28,28,249,22,181,33,248,22,64,195,28,249,22,181,32,23,17,28,248, -22,57,202,249,22,252,12,2,200,21,95,2,126,93,2,153,94,63,99,97,114, -154,2,153,11,11,11,248,22,52,193,28,28,249,22,181,34,248,22,64,195,28, -249,22,181,32,23,17,28,248,22,57,202,249,22,252,12,2,200,21,95,2,126, -93,2,153,95,2,131,94,2,154,2,153,94,64,99,97,100,114,155,2,153,11, -11,11,250,22,61,2,136,21,95,2,126,94,61,97,156,61,98,157,95,2,131, -2,156,2,157,249,80,158,8,28,50,197,9,91,159,33,11,20,12,95,33,27, -250,22,61,2,136,250,22,59,2,126,64,118,97,108,115,158,249,22,59,23,16, -28,248,22,57,23,20,2,158,21,95,66,97,112,112,101,110,100,159,68,115,104, -97,108,108,111,119,115,160,2,158,249,80,158,8,30,50,199,9,28,248,22,186, -23,18,192,27,250,22,59,65,97,112,112,108,121,161,2,159,196,27,248,22,171, -23,20,28,248,22,186,193,193,27,250,22,59,2,161,2,159,197,27,248,22,171, -195,28,248,22,186,193,193,249,199,250,22,59,2,161,2,159,198,248,22,171,195, -89,162,32,34,47,2,147,223,0,28,248,22,186,195,193,27,250,22,59,2,161, -2,159,197,27,248,22,171,197,28,248,22,186,193,193,27,250,22,59,2,161,2, -159,197,27,248,22,171,195,28,248,22,186,193,193,27,250,22,59,2,161,2,159, -197,27,248,22,171,195,28,248,22,186,193,193,249,200,250,22,59,2,161,2,159, -198,248,22,171,195,28,248,22,57,201,192,250,22,59,2,134,248,22,59,249,22, -59,2,160,249,22,61,2,131,249,80,158,8,32,50,249,22,2,89,162,32,33, -41,9,225,34,39,36,250,80,159,37,56,34,2,153,249,80,159,39,35,34,200, -197,196,23,20,9,195,27,248,80,159,55,57,34,199,28,249,22,252,10,2,194, -2,146,193,250,22,59,2,159,196,195,12,28,248,80,158,36,45,197,27,248,80, -158,37,41,198,28,28,200,28,248,22,41,248,22,210,194,249,22,223,194,83,160, -41,32,38,8,37,11,11,28,28,248,80,158,37,45,248,80,158,38,40,199,248, -80,158,37,39,248,80,158,38,40,248,80,158,39,40,200,11,27,248,80,158,38, -41,248,80,158,39,40,200,253,215,198,205,198,11,23,16,23,17,251,22,252,38, -2,2,152,6,30,30,109,105,115,112,108,97,99,101,100,32,101,108,108,105,112, -115,101,115,32,105,110,32,116,101,109,112,108,97,116,101,198,196,27,253,215,199, -205,199,23,15,23,16,23,17,27,253,216,248,80,158,45,40,206,206,23,15,23, -16,23,17,23,18,28,200,250,22,59,2,126,21,93,2,153,251,80,159,45,58, -34,206,248,80,159,46,57,34,201,248,80,159,46,57,34,200,206,12,28,249,80, -158,37,49,198,11,27,253,214,248,22,252,229,1,248,22,210,205,204,203,206,23, -15,23,16,28,198,250,22,59,2,126,21,93,2,153,249,22,59,72,108,105,115, -116,45,62,118,101,99,116,111,114,162,249,22,59,2,93,248,80,159,44,57,34, -200,12,28,248,80,158,36,48,197,28,249,22,5,89,162,32,33,36,9,223,6, -28,248,22,206,194,249,22,221,194,195,11,196,28,197,250,22,59,2,126,21,93, -2,153,249,22,59,2,145,201,12,28,197,27,249,22,5,89,162,32,33,36,9, -223,7,28,248,22,206,194,249,22,221,194,195,11,200,28,192,250,22,59,2,126, -21,93,2,153,250,80,159,42,56,34,2,153,249,80,159,44,34,34,205,206,23, -15,87,95,28,200,28,28,248,22,41,248,22,210,199,249,22,223,199,83,160,41, -32,38,8,37,11,251,22,252,38,2,2,152,6,30,30,109,105,115,112,108,97, +2,18,98,63,46,46,46,79,38,98,36,10,32,11,94,159,74,35,37,115,109, +97,108,108,45,115,99,104,101,109,101,80,9,11,159,2,18,9,11,16,62,2, +54,2,2,2,72,2,2,2,8,2,2,2,64,2,2,2,68,2,2,2,60, +2,2,74,115,121,110,116,97,120,45,109,97,112,112,105,110,103,81,2,2,2, +76,2,2,2,14,2,2,2,50,2,2,2,44,2,2,2,56,2,2,2,33, +2,2,2,46,2,2,2,29,2,2,2,25,2,2,2,48,2,2,2,58,2, +2,2,78,2,2,2,35,2,2,2,12,2,2,2,62,2,2,2,16,2,2, +2,6,2,2,2,10,2,2,2,27,2,2,2,74,2,2,2,4,2,2,2, +52,2,2,2,66,2,2,2,70,2,2,96,35,33,11,16,0,96,34,8,254, +1,11,16,0,16,4,33,11,61,115,82,3,1,7,101,110,118,50,51,55,48, +83,18,103,2,79,45,36,35,34,16,10,44,11,61,112,84,67,112,114,111,116, +111,45,114,85,61,107,86,64,100,101,115,116,87,3,1,7,101,110,118,50,52, +53,48,88,2,88,2,88,2,88,16,6,43,11,68,101,120,112,97,110,100,101, +114,89,63,116,111,112,90,3,1,7,101,110,118,50,52,53,52,91,3,1,7, +101,110,118,50,52,53,50,92,16,6,42,11,2,89,2,90,2,91,2,92,16, +10,41,11,69,108,111,99,97,108,45,116,111,112,93,73,117,115,101,45,101,108, +108,105,112,115,101,115,63,94,72,117,115,101,45,116,97,105,108,45,112,111,115, +95,65,104,97,115,104,33,96,3,1,7,101,110,118,50,52,53,54,97,2,97, +2,97,2,97,16,10,40,11,66,112,45,104,101,97,100,98,68,101,108,45,99, +111,117,110,116,99,66,114,101,115,116,45,112,100,67,108,97,115,116,45,101,108, +101,3,1,7,101,110,118,50,52,53,55,102,2,102,2,102,2,102,16,4,39, +11,64,108,111,111,112,103,3,1,7,101,110,118,50,52,54,48,104,11,11,16, +21,2,4,2,33,2,35,2,29,2,58,2,54,2,56,2,60,2,50,2,16, +2,52,2,27,2,25,2,14,2,62,2,12,2,74,2,78,2,66,2,6,2, +10,53,16,9,10,10,10,10,10,10,10,10,10,16,9,2,46,2,44,2,48, +2,68,2,64,2,8,2,72,2,76,2,70,16,9,11,11,11,11,11,11,11, +11,11,16,9,2,46,2,44,2,48,2,68,2,64,2,8,2,72,2,76,2, +70,41,41,93,16,5,93,2,81,253,22,60,248,247,22,252,86,3,20,15,159, +39,32,32,248,247,22,252,86,3,20,15,159,39,33,32,248,247,22,252,86,3, +20,15,159,39,34,32,249,22,60,248,247,22,252,86,3,20,15,159,41,35,32, +248,247,22,252,86,3,20,15,159,41,36,32,249,22,60,248,247,22,252,86,3, +20,15,159,41,37,32,248,247,22,252,86,3,20,15,159,41,38,32,10,42,20, +98,158,16,0,16,7,18,97,2,66,46,36,35,34,18,158,2,68,46,18,158, +2,70,46,18,158,2,76,46,18,158,2,72,46,18,158,2,78,46,18,158,2, +74,46,11,116,83,159,32,93,80,159,32,32,33,89,162,32,33,36,2,4,223, +0,28,248,22,41,248,22,210,195,249,22,223,195,20,15,159,34,32,8,37,11, +83,159,32,93,80,159,32,33,33,89,162,32,34,36,2,6,222,249,22,5,89, +162,32,33,36,9,223,2,28,248,22,206,194,249,22,221,194,195,11,195,83,159, +32,93,80,159,32,34,33,89,162,32,34,37,2,8,222,249,91,159,33,11,20, +12,95,33,192,89,162,32,34,44,2,103,224,3,0,28,248,22,57,196,11,28, +28,248,22,206,248,22,52,197,249,22,221,195,248,22,52,198,11,194,27,248,22, +170,196,27,248,22,53,198,28,248,22,57,193,11,28,28,248,22,206,248,22,52, +194,249,22,221,197,248,22,52,195,11,193,27,248,22,170,195,27,248,22,53,195, +28,248,22,57,193,11,28,28,248,22,206,248,22,52,194,249,22,221,199,248,22, +52,195,11,193,249,198,248,22,170,196,248,22,53,195,32,195,83,159,32,93,80, +159,32,35,33,89,162,32,34,37,2,10,222,249,91,159,33,11,20,12,95,33, +192,89,162,32,34,40,2,103,224,3,0,28,248,22,57,196,11,28,249,22,221, +195,248,91,159,33,11,20,12,95,33,192,89,162,32,33,39,2,103,223,0,28, +248,22,206,194,193,27,248,22,52,195,28,248,22,206,193,192,27,248,22,52,194, +28,248,22,206,193,192,27,248,22,52,194,28,248,22,206,193,192,248,196,248,22, +52,194,248,22,52,199,194,249,194,248,22,170,197,248,22,53,198,32,195,83,159, +32,93,80,159,32,36,33,89,162,32,34,36,2,12,222,28,249,22,252,11,2, +194,195,248,22,59,193,249,22,59,194,195,83,159,32,93,80,159,32,37,33,89, +162,32,38,50,2,14,223,0,91,159,33,11,20,12,95,33,91,159,35,11,90, +161,35,32,11,252,200,204,204,10,10,11,28,201,27,247,22,110,87,94,248,91, +159,33,11,20,12,95,33,192,89,162,32,33,43,2,103,226,9,8,2,0,28, +248,22,206,197,27,250,22,116,197,248,22,210,201,89,97,40,32,32,9,222,87, +94,28,249,22,5,89,162,32,33,36,9,223,7,249,22,221,195,194,194,251,22, +252,39,2,248,22,210,200,6,30,30,118,97,114,105,97,98,108,101,32,117,115, +101,100,32,116,119,105,99,101,32,105,110,32,112,97,116,116,101,114,110,200,201, +12,250,22,115,197,248,22,210,201,249,22,51,202,197,28,248,22,50,197,87,94, +248,193,248,22,52,198,248,193,248,22,53,198,12,194,193,28,249,22,252,13,2, +194,21,95,66,108,97,109,98,100,97,105,93,61,101,106,2,106,28,202,21,95, +2,105,94,2,106,79,109,111,100,117,108,101,45,105,100,101,110,116,105,102,105, +101,114,61,63,107,2,106,21,95,2,105,93,2,106,2,106,250,22,59,2,105, +249,22,61,2,106,249,80,158,43,50,28,23,17,21,93,2,107,9,9,248,80, +159,40,44,34,196,89,162,32,37,8,46,63,109,38,101,108,228,1,6,5,3, +2,0,28,28,200,28,248,80,158,38,45,199,27,248,80,158,39,40,200,28,248, +80,158,39,45,193,28,27,248,80,158,40,41,194,28,248,22,41,248,22,210,194, +249,22,223,194,20,15,159,41,32,8,37,11,248,22,252,9,2,27,248,80,158, +41,41,202,28,248,22,41,248,22,210,194,249,22,223,194,20,15,159,42,32,8, +37,11,11,11,11,11,28,248,80,158,38,39,248,80,158,39,40,248,80,158,40, +40,201,27,248,80,158,39,41,200,27,249,80,159,41,42,34,195,199,91,159,35, +11,90,161,35,32,11,252,202,201,201,10,11,11,28,201,250,22,7,249,22,2, +22,59,200,11,11,27,249,80,159,45,43,34,198,89,162,40,33,33,9,222,10, +250,22,7,250,22,59,2,105,21,93,2,106,251,22,61,62,105,102,109,21,94, +69,115,116,120,45,108,105,115,116,63,110,2,106,27,248,80,159,55,44,34,205, +28,249,22,252,13,2,194,21,94,64,108,105,115,116,111,2,106,28,23,26,21, +94,69,115,116,120,45,62,108,105,115,116,112,2,106,21,94,2,111,94,2,112, +2,106,28,248,22,57,204,250,22,61,66,97,110,100,109,97,112,113,250,22,59, +2,105,21,93,2,106,198,21,93,94,2,112,2,106,250,22,59,66,108,101,116, +47,101,99,114,63,101,115,99,115,250,22,59,63,108,101,116,116,248,22,59,249, +22,59,61,108,117,250,22,61,63,109,97,112,118,250,22,59,2,105,21,93,2, +106,250,22,61,73,115,116,120,45,99,104,101,99,107,47,101,115,99,119,23,18, +21,93,2,115,21,93,94,2,112,2,106,251,22,59,2,109,21,94,65,110,117, +108,108,63,120,2,117,249,22,59,65,113,117,111,116,101,121,27,249,22,2,89, +97,40,33,33,9,222,23,26,28,23,39,249,22,1,22,61,194,192,249,22,61, +28,23,38,71,115,116,120,45,114,111,116,97,116,101,42,122,70,115,116,120,45, +114,111,116,97,116,101,123,21,93,2,117,21,93,11,197,11,27,249,22,59,248, +80,158,41,41,202,248,80,158,41,41,248,80,158,42,40,203,27,248,80,158,40, +40,248,80,158,41,40,202,91,159,34,11,90,161,34,32,11,249,91,159,33,11, +20,12,95,33,192,89,162,32,34,43,2,103,226,12,9,8,0,28,248,80,158, +36,39,197,249,22,7,199,10,28,248,80,158,36,45,197,87,94,28,27,248,80, +158,37,41,198,28,248,22,41,248,22,210,194,249,22,223,194,20,15,159,38,32, +8,37,11,251,22,252,39,2,248,22,210,198,6,54,54,109,105,115,112,108,97, +99,101,100,32,101,108,108,105,112,115,101,115,32,105,110,32,112,97,116,116,101, +114,110,32,40,102,111,108,108,111,119,115,32,111,116,104,101,114,32,101,108,108, +105,112,115,101,115,41,198,248,80,158,40,41,201,12,249,194,248,80,158,38,40, +199,248,22,170,200,249,22,7,248,22,170,200,11,196,32,91,159,41,11,90,161, +35,32,11,28,23,17,252,23,18,23,17,23,17,23,26,11,11,250,22,7,11, +11,11,90,161,35,35,11,252,23,18,23,16,23,25,23,26,23,27,10,90,161, +35,38,11,28,23,17,250,22,7,195,196,11,252,23,18,23,17,23,17,23,26, +28,23,27,248,22,252,9,2,202,11,11,28,23,17,250,22,7,249,22,65,203, +200,11,11,250,22,7,250,22,59,2,105,21,93,2,106,250,22,59,71,108,101, +116,42,45,118,97,108,117,101,115,124,248,22,59,249,22,59,21,95,69,112,114, +101,45,105,116,101,109,115,125,70,112,111,115,116,45,105,116,101,109,115,126,63, +111,107,63,127,251,22,59,74,115,112,108,105,116,45,115,116,120,45,108,105,115, +116,128,2,106,23,25,23,26,251,22,61,2,109,2,127,27,27,249,80,159,8, +35,46,34,23,23,2,125,27,249,80,159,8,36,46,34,23,21,2,126,28,23, +23,249,80,159,8,36,47,34,195,194,251,22,61,2,109,197,196,21,93,11,28, +23,19,28,23,37,250,22,59,2,116,21,93,94,63,99,97,112,129,96,2,109, +94,67,115,121,110,116,97,120,63,130,2,106,2,106,2,129,195,250,22,59,2, +116,21,93,94,2,129,2,106,195,192,21,93,11,28,202,202,199,28,200,23,26, +11,28,248,80,158,38,45,199,27,248,80,158,39,41,200,28,28,201,28,248,22, +41,248,22,210,194,249,22,223,194,20,15,159,40,32,8,37,11,11,28,28,248, +80,158,39,45,248,80,158,40,40,201,248,80,158,39,39,248,80,158,40,40,248, +80,158,41,40,202,11,27,248,80,158,40,41,248,80,158,41,40,202,252,199,197, +197,11,23,16,11,251,22,252,39,2,248,22,210,199,6,29,29,109,105,115,112, +108,97,99,101,100,32,101,108,108,105,112,115,101,115,32,105,110,32,112,97,116, +116,101,114,110,199,196,91,159,41,11,90,161,35,32,11,28,206,252,23,15,206, +206,23,23,11,11,250,22,7,11,11,11,90,161,35,35,11,252,23,15,248,80, +158,53,40,23,22,23,22,23,23,23,24,10,90,161,35,38,11,28,206,250,22, +7,195,196,11,252,23,15,206,206,23,23,28,23,24,248,22,252,9,2,202,11, +11,28,206,250,22,7,249,22,65,203,200,11,11,250,22,7,250,22,59,2,105, +21,93,2,106,251,22,61,2,109,21,94,2,31,2,106,27,27,249,80,159,8, +29,46,34,23,20,21,94,2,23,2,106,27,249,80,159,8,30,46,34,23,18, +21,94,2,21,2,106,28,23,20,249,80,159,8,30,47,34,195,194,251,22,61, +2,109,197,196,21,93,11,28,23,16,28,23,31,250,22,59,2,116,21,93,94, +2,129,96,2,109,94,2,130,2,106,2,106,2,129,195,250,22,59,2,116,21, +93,94,2,129,2,106,195,192,21,93,11,28,202,202,199,28,200,23,23,11,28, +248,80,158,38,39,199,28,196,250,22,7,9,11,11,250,22,7,71,115,116,120, +45,110,117,108,108,47,35,102,131,11,11,28,248,80,158,38,48,199,28,249,22, +5,89,162,32,33,36,9,223,8,28,248,22,206,194,249,22,221,194,195,11,197, +28,196,250,22,7,9,11,11,250,22,7,250,22,59,2,105,21,93,2,106,251, +22,61,2,109,21,94,2,37,2,106,250,22,61,2,109,250,22,59,2,107,2, +106,249,22,59,72,113,117,111,116,101,45,115,121,110,116,97,120,132,23,24,21, +94,64,110,117,108,108,133,11,21,93,11,11,11,28,28,200,28,248,22,41,248, +22,210,200,249,22,223,200,20,15,159,39,32,8,37,11,11,251,22,252,39,2, +248,22,210,198,6,29,29,109,105,115,112,108,97,99,101,100,32,101,108,108,105, +112,115,101,115,32,105,110,32,112,97,116,116,101,114,110,198,202,28,196,250,22, +7,248,22,59,202,11,11,250,22,7,27,28,205,89,162,32,33,36,64,119,114, +97,112,134,222,250,22,59,2,105,21,93,2,106,195,89,162,32,33,38,2,134, +222,250,22,59,2,105,21,93,2,106,249,22,59,2,111,197,28,206,248,193,21, +96,1,20,100,97,116,117,109,45,62,115,121,110,116,97,120,45,111,98,106,101, +99,116,135,2,129,2,106,2,129,248,193,2,106,10,205,28,249,80,158,39,49, +200,11,27,248,22,252,229,1,248,22,210,201,28,28,197,11,27,248,22,252,9, +2,203,28,192,192,249,22,4,89,162,32,33,37,9,223,9,248,22,252,9,2, +28,248,22,41,248,22,210,196,249,22,223,196,20,15,159,35,32,8,37,11,195, +27,248,22,252,226,1,248,22,210,202,250,91,159,33,11,20,12,95,33,192,89, +162,32,35,54,2,103,228,11,6,14,12,4,0,28,248,22,186,199,250,22,7, +250,22,59,2,105,21,93,2,106,251,22,61,2,109,250,22,59,2,39,2,106, +206,23,18,21,93,11,202,11,91,159,35,11,90,161,35,32,11,27,249,22,252, +227,1,248,22,210,201,248,22,171,205,252,205,197,197,204,248,22,252,9,2,23, +17,11,250,198,248,22,171,205,28,205,205,196,27,249,80,159,46,46,34,198,250, +22,59,74,115,116,120,45,118,101,99,116,111,114,45,114,101,102,136,2,106,248, +22,171,23,19,28,248,22,57,23,16,192,28,197,249,80,159,46,47,34,194,23, +17,251,22,61,2,109,196,23,19,21,93,11,195,248,22,252,9,2,23,15,9, +91,159,35,11,90,161,35,32,11,252,201,200,23,15,23,17,23,18,11,28,200, +250,22,7,195,11,11,250,22,7,250,22,59,2,105,21,93,2,106,251,22,61, +2,109,21,95,2,39,2,106,11,249,80,159,53,46,34,204,21,94,72,118,101, +99,116,111,114,45,62,108,105,115,116,137,94,68,115,121,110,116,97,120,45,101, +138,2,106,21,93,11,196,11,28,196,250,22,7,9,11,11,250,22,7,250,22, +59,2,105,21,93,2,106,250,22,61,2,109,27,250,22,61,66,101,113,117,97, +108,63,139,248,22,210,23,20,21,93,94,2,138,2,106,28,23,20,250,22,59, +63,97,110,100,140,21,94,2,130,2,106,195,192,21,94,2,133,11,11,11,83, +159,32,93,80,159,32,51,33,89,162,32,37,44,2,44,223,0,253,80,159,38, +37,34,199,200,201,202,11,203,83,159,32,93,80,159,32,52,33,89,162,32,36, +43,2,46,223,0,253,80,159,38,37,34,199,200,201,202,10,11,83,159,32,93, +80,159,32,44,33,89,162,32,33,36,2,29,222,28,28,248,22,50,193,28,249, +22,252,11,2,248,22,52,195,2,105,249,22,252,13,2,248,22,78,195,21,93, +2,106,11,11,248,22,87,193,249,22,61,194,21,93,2,106,83,159,32,93,80, +159,32,46,33,89,162,32,34,38,2,33,222,28,28,248,22,50,193,28,249,22, +252,11,2,248,22,52,195,2,105,249,22,252,13,2,248,22,78,195,21,93,2, +106,11,11,27,248,22,87,194,28,249,22,252,11,2,194,2,106,194,28,28,248, +22,50,193,28,249,22,252,11,2,248,22,52,195,2,111,28,248,22,50,248,22, +53,194,28,249,22,252,11,2,248,22,78,195,2,106,248,22,57,248,22,80,194, +11,11,11,11,249,22,59,2,111,196,249,22,59,195,196,249,22,59,194,195,83, +159,32,93,80,159,32,47,33,89,162,32,34,38,2,35,222,28,28,248,22,50, +193,28,249,22,252,11,2,248,22,52,195,2,111,28,248,22,50,248,22,53,194, +248,22,57,248,22,80,194,11,11,11,250,22,59,67,99,111,110,115,47,35,102, +141,248,22,78,196,196,250,22,59,69,97,112,112,101,110,100,47,35,102,142,195, +196,83,159,32,93,80,159,32,53,33,89,162,32,36,8,50,2,48,223,0,91, +159,34,10,90,161,33,32,10,195,90,161,33,33,10,89,162,32,38,8,43,2, +89,226,2,5,3,1,28,28,199,28,248,80,158,36,45,197,27,248,80,158,37, +40,198,28,248,80,158,37,45,193,28,27,248,80,158,38,41,194,28,248,22,41, +248,22,210,194,249,22,223,194,20,15,159,39,32,8,37,11,248,22,252,9,2, +27,248,80,158,39,41,200,28,248,22,41,248,22,210,194,249,22,223,194,20,15, +159,40,32,8,37,11,11,11,11,11,91,159,38,11,90,161,33,32,11,248,80, +158,42,41,203,90,161,35,33,11,250,91,159,33,11,20,12,95,33,192,89,162, +32,35,47,2,103,224,13,0,28,28,248,80,158,34,45,195,27,248,80,158,35, +41,196,28,248,22,41,248,22,210,194,249,22,223,194,20,15,159,36,32,8,37, +11,11,27,248,80,158,35,40,196,27,248,22,170,198,27,248,80,158,37,41,198, +28,28,248,80,158,37,45,195,27,248,80,158,38,41,196,28,248,22,41,248,22, +210,194,249,22,223,194,20,15,159,39,32,8,37,11,11,27,248,80,158,38,40, +196,27,248,22,170,196,27,248,80,158,40,41,198,28,28,248,80,158,40,45,195, +27,248,80,158,41,41,196,28,248,22,41,248,22,210,194,249,22,223,194,20,15, +159,42,32,8,37,11,11,250,201,248,80,158,43,40,198,248,22,170,197,248,80, +158,43,41,198,250,22,7,196,197,195,250,22,7,196,197,195,250,22,7,198,197, +199,248,80,158,45,40,248,80,158,46,40,23,15,32,248,80,158,45,41,248,80, +158,46,40,23,15,90,161,33,36,11,248,91,159,33,11,20,12,95,33,192,89, +162,32,33,52,2,103,225,11,2,0,28,248,22,186,196,193,249,22,209,11,249, +22,59,27,248,22,171,201,28,248,22,186,193,198,249,22,209,11,249,22,59,27, +248,22,171,198,28,248,22,186,193,203,249,22,209,11,249,22,59,248,23,15,248, +22,171,198,20,15,159,48,33,8,37,20,15,159,43,33,8,37,20,15,159,38, +33,8,37,194,90,161,33,37,11,28,203,249,80,159,43,42,34,198,202,11,87, +94,28,248,22,57,198,251,22,1,22,252,39,2,66,115,121,110,116,97,120,143, +6,48,48,110,111,32,112,97,116,116,101,114,110,32,118,97,114,105,97,98,108, +101,115,32,98,101,102,111,114,101,32,101,108,108,105,112,115,101,115,32,105,110, +32,116,101,109,112,108,97,116,101,28,249,22,252,11,2,205,201,248,22,59,204, +249,22,59,205,201,12,27,28,204,249,22,2,89,162,32,33,41,9,226,12,10, +15,14,251,80,159,39,54,34,200,196,198,197,200,11,27,28,205,248,91,159,33, +11,20,12,95,33,192,89,162,32,33,38,2,103,223,0,28,248,22,57,194,9, +28,248,22,79,194,248,193,248,22,53,195,249,22,51,248,22,77,196,248,195,248, +22,53,197,194,11,27,28,206,248,91,159,33,11,20,12,95,33,192,89,162,32, +33,38,2,103,223,0,28,248,22,57,194,9,28,248,22,79,194,249,22,51,248, +22,77,196,248,195,248,22,53,197,248,193,248,22,53,195,195,11,27,28,23,15, +248,80,159,46,55,34,195,11,27,28,23,16,248,80,159,47,55,34,195,11,27, +28,248,22,57,196,12,28,248,22,57,197,251,22,1,22,252,39,2,2,143,6, +29,29,116,111,111,32,109,97,110,121,32,101,108,108,105,112,115,101,115,32,105, +110,32,116,101,109,112,108,97,116,101,28,249,22,252,11,2,23,19,23,15,248, +22,59,23,18,249,22,59,23,19,23,15,12,27,253,24,19,23,15,23,24,23, +25,10,23,27,23,28,27,253,24,20,23,18,28,23,25,249,22,65,205,206,11, +23,18,10,11,23,29,28,23,19,250,22,59,2,105,21,93,61,114,144,27,27, +27,249,22,2,89,162,32,33,41,9,225,25,30,27,250,80,159,37,56,34,2, +144,249,80,159,39,35,34,200,197,196,204,28,28,249,22,181,33,248,22,64,195, +28,249,22,181,32,23,17,28,248,22,57,202,249,22,252,13,2,200,21,95,2, +105,93,2,144,94,63,99,97,114,145,2,144,11,11,11,248,22,52,193,28,28, +249,22,181,34,248,22,64,195,28,249,22,181,32,23,17,28,248,22,57,202,249, +22,252,13,2,200,21,95,2,105,93,2,144,95,2,111,94,2,145,2,144,94, +64,99,97,100,114,146,2,144,11,11,11,250,22,61,2,118,21,95,2,105,94, +61,97,147,61,98,148,95,2,111,2,147,2,148,249,80,158,8,28,50,197,9, +91,159,33,11,20,12,95,33,27,250,22,61,2,118,250,22,59,2,105,64,118, +97,108,115,149,249,22,59,23,16,28,248,22,57,23,20,2,149,21,95,66,97, +112,112,101,110,100,150,68,115,104,97,108,108,111,119,115,151,2,149,249,80,158, +8,30,50,199,9,28,248,22,186,23,18,192,27,250,22,59,65,97,112,112,108, +121,152,2,150,196,27,248,22,171,23,20,28,248,22,186,193,193,27,250,22,59, +2,152,2,150,197,27,248,22,171,195,28,248,22,186,193,193,249,199,250,22,59, +2,152,2,150,198,248,22,171,195,89,162,32,34,47,2,134,223,0,28,248,22, +186,195,193,27,250,22,59,2,152,2,150,197,27,248,22,171,197,28,248,22,186, +193,193,27,250,22,59,2,152,2,150,197,27,248,22,171,195,28,248,22,186,193, +193,27,250,22,59,2,152,2,150,197,27,248,22,171,195,28,248,22,186,193,193, +249,200,250,22,59,2,152,2,150,198,248,22,171,195,28,248,22,57,201,192,250, +22,59,2,116,248,22,59,249,22,59,2,151,249,22,61,2,111,249,80,158,8, +32,50,249,22,2,89,162,32,33,41,9,225,34,39,36,250,80,159,37,56,34, +2,144,249,80,159,39,35,34,200,197,196,23,20,9,195,27,248,80,159,55,57, +34,199,28,249,22,252,11,2,194,2,133,193,250,22,59,2,150,196,195,12,28, +248,80,158,36,45,197,27,248,80,158,37,41,198,28,28,200,28,248,22,41,248, +22,210,194,249,22,223,194,20,15,159,38,32,8,37,11,11,28,28,248,80,158, +37,45,248,80,158,38,40,199,248,80,158,37,39,248,80,158,38,40,248,80,158, +39,40,200,11,27,248,80,158,38,41,248,80,158,39,40,200,253,215,198,205,198, +11,23,16,23,17,251,22,252,39,2,2,143,6,30,30,109,105,115,112,108,97, 99,101,100,32,101,108,108,105,112,115,101,115,32,105,110,32,116,101,109,112,108, -97,116,101,198,201,12,12,249,80,159,38,59,34,199,200,250,22,59,2,126,21, -93,2,153,249,22,59,2,145,202,28,28,28,248,22,41,248,22,210,198,249,22, -223,198,83,160,41,32,37,8,37,11,199,11,12,248,202,197,28,248,22,57,197, -28,197,21,95,2,126,93,2,153,2,146,12,28,197,250,22,59,2,126,21,93, -2,153,249,22,59,2,145,201,12,27,28,197,11,247,22,110,27,253,216,203,204, -203,10,28,204,248,22,171,248,22,64,206,11,28,204,11,89,162,32,33,40,9, -223,7,27,250,22,116,196,248,22,210,198,89,97,40,32,32,9,222,28,28,248, -22,50,193,249,22,5,89,162,32,33,36,9,223,4,249,22,221,195,194,194,11, -12,250,22,115,196,248,22,210,198,249,22,51,199,197,28,198,250,22,59,2,126, -21,94,2,153,63,115,114,99,163,27,251,22,61,2,148,249,22,59,2,145,28, -23,18,250,22,209,23,21,2,108,11,11,248,80,159,45,57,34,201,21,93,2, -163,28,248,80,159,41,8,28,34,203,250,22,59,2,134,21,93,94,64,101,120, -110,104,164,11,248,22,59,250,22,59,2,92,2,133,251,22,61,72,100,121,110, -97,109,105,99,45,119,105,110,100,165,251,22,59,2,126,9,21,95,64,115,101, -116,33,166,2,164,93,1,25,99,117,114,114,101,110,116,45,101,120,99,101,112, -116,105,111,110,45,104,97,110,100,108,101,114,167,249,22,59,2,167,250,22,59, -2,126,21,93,63,101,120,110,168,249,22,59,2,133,250,22,59,2,126,9,251, -22,59,2,130,21,94,70,101,120,110,58,98,114,101,97,107,63,169,2,168,21, -94,65,114,97,105,115,101,170,2,168,250,22,59,1,20,101,108,108,105,112,115, -105,115,45,99,111,117,110,116,45,101,114,114,111,114,171,249,22,59,2,138,23, -43,249,22,59,2,145,250,22,209,11,2,79,23,46,250,22,59,2,126,9,250, -22,61,2,134,248,22,59,249,22,59,61,118,172,23,20,21,93,95,2,126,9, -2,172,21,93,95,2,126,9,94,2,167,2,164,192,249,22,1,22,65,249,22, -118,197,89,162,32,34,34,9,222,193,83,159,32,93,80,159,32,57,33,89,162, -32,33,36,2,56,222,28,28,248,22,50,193,28,249,22,252,10,2,248,22,52, -195,2,126,249,22,252,12,2,248,22,78,195,21,93,2,153,11,11,248,22,87, -193,249,22,61,194,21,93,2,153,83,159,32,93,80,159,32,58,33,89,162,32, -36,46,2,58,223,0,28,28,248,22,50,195,28,249,22,252,10,2,248,22,52, -197,2,145,28,249,22,252,10,2,248,22,78,197,248,80,158,35,41,199,27,249, -22,252,10,2,198,2,146,28,192,192,28,248,22,50,197,28,249,22,252,10,2, -248,22,52,199,2,145,249,22,252,10,2,248,22,78,199,248,80,158,36,40,200, -11,11,11,11,11,249,22,59,2,145,198,28,248,22,206,194,27,250,22,209,197, -63,99,116,120,173,197,251,22,59,2,148,249,22,59,2,145,198,251,80,159,41, -58,34,11,203,204,205,249,22,59,2,145,198,28,249,22,252,10,2,197,2,146, -249,22,59,74,108,105,115,116,45,105,109,109,117,116,97,98,108,101,174,196,28, -28,248,22,50,196,249,22,71,248,22,52,198,21,94,2,174,75,108,105,115,116, -42,45,105,109,109,117,116,97,98,108,101,175,11,250,22,61,248,22,52,199,197, -249,80,158,37,50,248,22,53,201,9,28,28,248,22,50,196,249,22,252,10,2, -248,22,52,198,74,99,111,110,115,45,105,109,109,117,116,97,98,108,101,176,11, -250,22,61,2,175,197,249,80,158,37,50,248,22,53,201,9,28,28,248,22,50, -195,28,248,22,50,196,28,249,22,252,10,2,248,22,52,197,2,154,28,249,22, -252,10,2,248,22,52,198,63,99,100,114,177,28,248,22,41,248,22,78,196,249, -22,252,10,2,248,22,78,197,248,22,78,198,11,11,11,11,11,248,22,78,195, -250,22,59,2,176,197,198,83,159,32,93,80,159,32,56,33,89,162,32,35,38, -2,54,222,28,28,194,249,22,181,195,196,11,28,249,22,252,10,2,195,32,192, -28,249,22,252,10,2,195,33,249,22,59,2,177,194,28,249,22,252,10,2,195, -34,249,22,59,64,99,100,100,114,178,194,28,249,22,252,10,2,195,35,249,22, -59,65,99,100,100,100,114,179,194,28,249,22,252,10,2,195,36,249,22,59,66, -99,100,100,100,100,114,180,194,250,22,59,69,108,105,115,116,45,116,97,105,108, -181,195,196,28,249,22,252,10,2,195,32,249,22,59,2,154,194,28,249,22,252, -10,2,195,33,249,22,59,2,155,194,28,249,22,252,10,2,195,34,249,22,59, -65,99,97,100,100,114,182,194,28,249,22,252,10,2,195,35,249,22,59,66,99, -97,100,100,100,114,183,194,250,22,59,68,108,105,115,116,45,114,101,102,184,195, -196,83,159,32,93,80,159,32,42,33,89,162,32,34,38,2,25,223,0,249,91, -159,33,11,20,12,95,33,192,89,162,32,34,45,63,115,117,98,185,225,3,5, -0,28,28,196,28,248,80,158,35,45,196,27,248,80,158,36,40,197,28,248,80, -158,36,45,193,28,27,248,80,158,37,41,194,28,248,22,41,248,22,210,194,249, -22,223,194,83,160,41,32,38,8,37,11,248,22,252,8,2,27,248,80,158,38, -41,199,28,248,22,41,248,22,210,194,249,22,223,194,83,160,41,32,39,8,37, -11,11,11,11,11,27,249,195,248,80,158,38,41,199,10,249,22,65,249,22,2, -22,59,196,249,197,248,80,158,40,40,248,80,158,41,40,202,10,28,248,80,158, -35,45,196,27,248,80,158,36,41,197,28,28,197,28,248,80,158,36,48,193,28, -28,248,22,41,248,22,210,194,249,22,223,194,83,160,41,32,37,8,37,11,248, -80,158,36,45,248,80,158,37,40,198,11,11,11,249,195,248,80,158,38,41,248, -80,158,39,40,200,11,249,22,66,249,197,248,80,158,40,41,201,201,249,197,248, -80,158,40,40,201,201,28,248,80,158,35,48,196,28,249,22,5,89,162,32,33, -36,9,223,5,28,248,22,206,194,249,22,221,194,195,11,195,9,248,22,59,196, -28,249,80,158,36,49,197,11,249,194,248,22,252,229,1,248,22,210,199,198,9, -195,10,83,159,32,93,80,159,32,54,33,89,162,32,36,45,2,50,223,0,27, -249,22,5,89,162,32,33,39,9,223,4,27,28,248,22,50,195,248,22,52,195, -194,250,91,159,33,11,20,12,95,33,192,89,162,32,35,42,2,124,225,6,4, -0,28,28,248,22,50,196,248,22,50,197,11,250,195,248,22,52,199,248,22,52, -200,10,28,248,22,50,197,250,195,198,248,22,52,200,11,28,248,22,206,196,28, -248,22,206,197,28,249,22,221,197,198,249,22,51,28,199,195,196,248,22,252,8, -2,200,11,11,11,195,196,248,22,50,198,197,87,94,28,192,12,251,22,1,22, -252,38,2,2,152,6,49,49,116,111,111,32,102,101,119,32,101,108,108,105,112, -115,101,115,32,102,111,114,32,112,97,116,116,101,114,110,32,118,97,114,105,97, -98,108,101,32,105,110,32,116,101,109,112,108,97,116,101,27,248,91,159,33,11, -20,12,95,33,192,89,162,32,33,39,2,124,223,0,28,248,22,206,194,193,27, -248,22,52,195,28,248,22,206,193,192,27,248,22,52,194,28,248,22,206,193,192, -27,248,22,52,194,28,248,22,206,193,192,248,196,248,22,52,194,200,28,249,22, -252,10,2,203,194,248,22,59,202,249,22,59,203,194,192,83,159,32,93,80,159, -32,55,33,89,162,32,33,35,2,52,222,249,22,2,89,162,32,33,35,9,222, -248,91,159,33,11,20,12,95,33,192,89,162,32,33,39,2,124,223,0,28,248, -22,206,194,193,27,248,22,52,195,28,248,22,206,193,192,27,248,22,52,194,28, -248,22,206,193,192,27,248,22,52,194,28,248,22,206,193,192,248,196,248,22,52, -194,193,194,83,159,32,93,80,159,32,59,33,89,162,32,34,36,2,60,222,249, -22,3,89,162,32,33,36,9,223,2,28,248,22,50,194,248,91,159,33,11,20, -12,95,33,192,89,162,32,33,38,2,124,224,2,0,28,248,22,206,195,28,249, -22,221,196,195,250,22,252,38,2,2,152,6,50,50,109,105,115,115,105,110,103, -32,101,108,108,105,112,115,101,115,32,119,105,116,104,32,112,97,116,116,101,114, -110,32,118,97,114,105,97,98,108,101,32,105,110,32,116,101,109,112,108,97,116, -101,196,12,248,193,248,22,52,196,248,22,52,195,12,195,83,159,32,93,80,159, -32,38,33,89,162,32,33,39,2,16,223,0,28,248,80,158,33,45,194,27,248, -80,158,34,40,195,28,248,80,158,34,45,193,28,27,248,80,158,35,41,194,28, -248,22,41,248,22,210,194,249,22,223,194,83,160,41,32,36,8,37,11,248,22, -252,8,2,27,248,80,158,36,41,197,28,248,22,41,248,22,210,194,249,22,223, -194,83,160,41,32,37,8,37,11,11,11,11,83,159,32,93,80,159,32,43,33, -89,162,32,34,36,2,27,222,248,91,159,33,11,20,12,95,33,192,89,162,32, -33,40,2,124,224,3,0,28,248,22,57,195,9,28,248,194,248,22,52,196,249, -22,51,248,91,159,33,11,20,12,95,33,192,89,162,32,33,39,2,124,223,0, -28,248,22,206,194,193,27,248,22,52,195,28,248,22,206,193,192,27,248,22,52, -194,28,248,22,206,193,192,27,248,22,52,194,28,248,22,206,193,192,248,196,248, -22,52,194,248,22,52,198,248,195,248,22,53,198,248,193,248,22,53,196,193,83, -159,32,93,80,159,32,8,28,33,89,162,32,33,35,2,62,222,248,91,159,33, -11,20,12,95,33,192,89,162,32,33,36,2,124,223,0,28,248,22,57,194,11, -28,248,22,50,248,22,52,195,248,91,159,33,11,20,12,95,33,192,89,162,32, -33,38,2,124,223,0,28,248,22,57,194,11,28,248,22,50,248,22,52,195,10, -27,248,22,53,195,28,248,22,57,193,11,28,248,22,50,248,22,52,194,10,27, -248,22,53,194,28,248,22,57,193,11,28,248,22,50,248,22,52,194,10,248,195, -248,22,53,194,248,22,53,195,248,193,248,22,53,195,193,83,159,32,93,80,159, -32,8,29,33,89,162,32,33,39,2,64,223,0,28,248,80,158,33,45,194,28, -27,248,80,158,34,41,195,28,248,80,158,34,45,193,28,27,248,80,158,35,41, +97,116,101,198,196,27,253,215,199,205,199,23,15,23,16,23,17,27,253,216,248, +80,158,45,40,206,206,23,15,23,16,23,17,23,18,28,200,250,22,59,2,105, +21,93,2,144,251,80,159,45,58,34,206,248,80,159,46,57,34,201,248,80,159, +46,57,34,200,206,12,28,249,80,158,37,49,198,11,27,253,214,248,22,252,229, +1,248,22,210,205,204,203,206,23,15,23,16,28,198,250,22,59,2,105,21,93, +2,144,249,22,59,72,108,105,115,116,45,62,118,101,99,116,111,114,153,249,22, +59,2,112,248,80,159,44,57,34,200,12,28,248,80,158,36,48,197,28,249,22, +5,89,162,32,33,36,9,223,6,28,248,22,206,194,249,22,221,194,195,11,196, +28,197,250,22,59,2,105,21,93,2,144,249,22,59,2,132,201,12,28,197,27, +249,22,5,89,162,32,33,36,9,223,7,28,248,22,206,194,249,22,221,194,195, +11,200,28,192,250,22,59,2,105,21,93,2,144,250,80,159,42,56,34,2,144, +249,80,159,44,34,34,205,206,23,15,87,95,28,200,28,28,248,22,41,248,22, +210,199,249,22,223,199,20,15,159,38,32,8,37,11,251,22,252,39,2,2,143, +6,30,30,109,105,115,112,108,97,99,101,100,32,101,108,108,105,112,115,101,115, +32,105,110,32,116,101,109,112,108,97,116,101,198,201,12,12,249,80,159,38,59, +34,199,200,250,22,59,2,105,21,93,2,144,249,22,59,2,132,202,28,28,28, +248,22,41,248,22,210,198,249,22,223,198,20,15,159,37,32,8,37,11,199,11, +12,248,202,197,28,248,22,57,197,28,197,21,95,2,105,93,2,144,2,133,12, +28,197,250,22,59,2,105,21,93,2,144,249,22,59,2,132,201,12,27,28,197, +11,247,22,110,27,253,216,203,204,203,10,28,204,248,22,171,248,22,64,206,11, +28,204,11,89,162,32,33,40,9,223,7,27,250,22,116,196,248,22,210,198,89, +97,40,32,32,9,222,28,28,248,22,50,193,249,22,5,89,162,32,33,36,9, +223,4,249,22,221,195,194,194,11,12,250,22,115,196,248,22,210,198,249,22,51, +199,197,28,198,250,22,59,2,105,21,94,2,144,63,115,114,99,154,27,251,22, +61,2,135,249,22,59,2,132,28,23,18,250,22,209,23,21,2,87,11,11,248, +80,159,45,57,34,201,21,93,2,154,28,248,80,159,41,8,28,34,203,250,22, +59,2,116,21,93,94,64,101,120,110,104,155,11,248,22,59,250,22,59,2,114, +2,115,251,22,61,72,100,121,110,97,109,105,99,45,119,105,110,100,156,251,22, +59,2,105,9,21,95,64,115,101,116,33,157,2,155,93,1,25,99,117,114,114, +101,110,116,45,101,120,99,101,112,116,105,111,110,45,104,97,110,100,108,101,114, +158,249,22,59,2,158,250,22,59,2,105,21,93,63,101,120,110,159,249,22,59, +2,115,250,22,59,2,105,9,251,22,59,2,109,21,94,70,101,120,110,58,98, +114,101,97,107,63,160,2,159,21,94,65,114,97,105,115,101,161,2,159,250,22, +59,1,20,101,108,108,105,112,115,105,115,45,99,111,117,110,116,45,101,114,114, +111,114,162,249,22,59,2,121,23,43,249,22,59,2,132,250,22,209,11,2,79, +23,46,250,22,59,2,105,9,250,22,61,2,116,248,22,59,249,22,59,61,118, +163,23,20,21,93,95,2,105,9,2,163,21,93,95,2,105,9,94,2,158,2, +155,192,249,22,1,22,65,249,22,118,197,89,162,32,34,34,9,222,193,83,159, +32,93,80,159,32,57,33,89,162,32,33,36,2,56,222,28,28,248,22,50,193, +28,249,22,252,11,2,248,22,52,195,2,105,249,22,252,13,2,248,22,78,195, +21,93,2,144,11,11,248,22,87,193,249,22,61,194,21,93,2,144,83,159,32, +93,80,159,32,58,33,89,162,32,36,46,2,58,223,0,28,28,248,22,50,195, +28,249,22,252,11,2,248,22,52,197,2,132,28,249,22,252,11,2,248,22,78, +197,248,80,158,35,41,199,27,249,22,252,11,2,198,2,133,28,192,192,28,248, +22,50,197,28,249,22,252,11,2,248,22,52,199,2,132,249,22,252,11,2,248, +22,78,199,248,80,158,36,40,200,11,11,11,11,11,249,22,59,2,132,198,28, +248,22,206,194,27,250,22,209,197,63,99,116,120,164,197,251,22,59,2,135,249, +22,59,2,132,198,251,80,159,41,58,34,11,203,204,205,249,22,59,2,132,198, +28,249,22,252,11,2,197,2,133,249,22,59,74,108,105,115,116,45,105,109,109, +117,116,97,98,108,101,165,196,28,28,248,22,50,196,249,22,71,248,22,52,198, +21,94,2,165,75,108,105,115,116,42,45,105,109,109,117,116,97,98,108,101,166, +11,250,22,61,248,22,52,199,197,249,80,158,37,50,248,22,53,201,9,28,28, +248,22,50,196,249,22,252,11,2,248,22,52,198,74,99,111,110,115,45,105,109, +109,117,116,97,98,108,101,167,11,250,22,61,2,166,197,249,80,158,37,50,248, +22,53,201,9,28,28,248,22,50,195,28,248,22,50,196,28,249,22,252,11,2, +248,22,52,197,2,145,28,249,22,252,11,2,248,22,52,198,63,99,100,114,168, +28,248,22,41,248,22,78,196,249,22,252,11,2,248,22,78,197,248,22,78,198, +11,11,11,11,11,248,22,78,195,250,22,59,2,167,197,198,83,159,32,93,80, +159,32,56,33,89,162,32,35,38,2,54,222,28,28,194,249,22,181,195,196,11, +28,249,22,252,11,2,195,32,192,28,249,22,252,11,2,195,33,249,22,59,2, +168,194,28,249,22,252,11,2,195,34,249,22,59,64,99,100,100,114,169,194,28, +249,22,252,11,2,195,35,249,22,59,65,99,100,100,100,114,170,194,28,249,22, +252,11,2,195,36,249,22,59,66,99,100,100,100,100,114,171,194,250,22,59,69, +108,105,115,116,45,116,97,105,108,172,195,196,28,249,22,252,11,2,195,32,249, +22,59,2,145,194,28,249,22,252,11,2,195,33,249,22,59,2,146,194,28,249, +22,252,11,2,195,34,249,22,59,65,99,97,100,100,114,173,194,28,249,22,252, +11,2,195,35,249,22,59,66,99,97,100,100,100,114,174,194,250,22,59,68,108, +105,115,116,45,114,101,102,175,195,196,83,159,32,93,80,159,32,42,33,89,162, +32,34,38,2,25,223,0,249,91,159,33,11,20,12,95,33,192,89,162,32,34, +45,63,115,117,98,176,225,3,5,0,28,28,196,28,248,80,158,35,45,196,27, +248,80,158,36,40,197,28,248,80,158,36,45,193,28,27,248,80,158,37,41,194, +28,248,22,41,248,22,210,194,249,22,223,194,20,15,159,38,32,8,37,11,248, +22,252,9,2,27,248,80,158,38,41,199,28,248,22,41,248,22,210,194,249,22, +223,194,20,15,159,39,32,8,37,11,11,11,11,11,27,249,195,248,80,158,38, +41,199,10,249,22,65,249,22,2,22,59,196,249,197,248,80,158,40,40,248,80, +158,41,40,202,10,28,248,80,158,35,45,196,27,248,80,158,36,41,197,28,28, +197,28,248,80,158,36,48,193,28,28,248,22,41,248,22,210,194,249,22,223,194, +20,15,159,37,32,8,37,11,248,80,158,36,45,248,80,158,37,40,198,11,11, +11,249,195,248,80,158,38,41,248,80,158,39,40,200,11,249,22,66,249,197,248, +80,158,40,41,201,201,249,197,248,80,158,40,40,201,201,28,248,80,158,35,48, +196,28,249,22,5,89,162,32,33,36,9,223,5,28,248,22,206,194,249,22,221, +194,195,11,195,9,248,22,59,196,28,249,80,158,36,49,197,11,249,194,248,22, +252,229,1,248,22,210,199,198,9,195,10,83,159,32,93,80,159,32,54,33,89, +162,32,36,45,2,50,223,0,27,249,22,5,89,162,32,33,39,9,223,4,27, +28,248,22,50,195,248,22,52,195,194,250,91,159,33,11,20,12,95,33,192,89, +162,32,35,42,2,103,225,6,4,0,28,28,248,22,50,196,248,22,50,197,11, +250,195,248,22,52,199,248,22,52,200,10,28,248,22,50,197,250,195,198,248,22, +52,200,11,28,248,22,206,196,28,248,22,206,197,28,249,22,221,197,198,249,22, +51,28,199,195,196,248,22,252,9,2,200,11,11,11,195,196,248,22,50,198,197, +87,94,28,192,12,251,22,1,22,252,39,2,2,143,6,49,49,116,111,111,32, +102,101,119,32,101,108,108,105,112,115,101,115,32,102,111,114,32,112,97,116,116, +101,114,110,32,118,97,114,105,97,98,108,101,32,105,110,32,116,101,109,112,108, +97,116,101,27,248,91,159,33,11,20,12,95,33,192,89,162,32,33,39,2,103, +223,0,28,248,22,206,194,193,27,248,22,52,195,28,248,22,206,193,192,27,248, +22,52,194,28,248,22,206,193,192,27,248,22,52,194,28,248,22,206,193,192,248, +196,248,22,52,194,200,28,249,22,252,11,2,203,194,248,22,59,202,249,22,59, +203,194,192,83,159,32,93,80,159,32,55,33,89,162,32,33,35,2,52,222,249, +22,2,89,162,32,33,35,9,222,248,91,159,33,11,20,12,95,33,192,89,162, +32,33,39,2,103,223,0,28,248,22,206,194,193,27,248,22,52,195,28,248,22, +206,193,192,27,248,22,52,194,28,248,22,206,193,192,27,248,22,52,194,28,248, +22,206,193,192,248,196,248,22,52,194,193,194,83,159,32,93,80,159,32,59,33, +89,162,32,34,36,2,60,222,249,22,3,89,162,32,33,36,9,223,2,28,248, +22,50,194,248,91,159,33,11,20,12,95,33,192,89,162,32,33,38,2,103,224, +2,0,28,248,22,206,195,28,249,22,221,196,195,250,22,252,39,2,2,143,6, +50,50,109,105,115,115,105,110,103,32,101,108,108,105,112,115,101,115,32,119,105, +116,104,32,112,97,116,116,101,114,110,32,118,97,114,105,97,98,108,101,32,105, +110,32,116,101,109,112,108,97,116,101,196,12,248,193,248,22,52,196,248,22,52, +195,12,195,83,159,32,93,80,159,32,38,33,89,162,32,33,39,2,16,223,0, +28,248,80,158,33,45,194,27,248,80,158,34,40,195,28,248,80,158,34,45,193, +28,27,248,80,158,35,41,194,28,248,22,41,248,22,210,194,249,22,223,194,20, +15,159,36,32,8,37,11,248,22,252,9,2,27,248,80,158,36,41,197,28,248, +22,41,248,22,210,194,249,22,223,194,20,15,159,37,32,8,37,11,11,11,11, +83,159,32,93,80,159,32,43,33,89,162,32,34,36,2,27,222,248,91,159,33, +11,20,12,95,33,192,89,162,32,33,40,2,103,224,3,0,28,248,22,57,195, +9,28,248,194,248,22,52,196,249,22,51,248,91,159,33,11,20,12,95,33,192, +89,162,32,33,39,2,103,223,0,28,248,22,206,194,193,27,248,22,52,195,28, +248,22,206,193,192,27,248,22,52,194,28,248,22,206,193,192,27,248,22,52,194, +28,248,22,206,193,192,248,196,248,22,52,194,248,22,52,198,248,195,248,22,53, +198,248,193,248,22,53,196,193,83,159,32,93,80,159,32,8,28,33,89,162,32, +33,35,2,62,222,248,91,159,33,11,20,12,95,33,192,89,162,32,33,36,2, +103,223,0,28,248,22,57,194,11,28,248,22,50,248,22,52,195,248,91,159,33, +11,20,12,95,33,192,89,162,32,33,38,2,103,223,0,28,248,22,57,194,11, +28,248,22,50,248,22,52,195,10,27,248,22,53,195,28,248,22,57,193,11,28, +248,22,50,248,22,52,194,10,27,248,22,53,194,28,248,22,57,193,11,28,248, +22,50,248,22,52,194,10,248,195,248,22,53,194,248,22,53,195,248,193,248,22, +53,195,193,83,159,32,93,80,159,32,8,29,33,89,162,32,33,39,2,64,223, +0,28,248,80,158,33,45,194,28,27,248,80,158,34,41,195,28,248,80,158,34, +45,193,28,27,248,80,158,35,41,194,28,248,80,158,35,45,193,28,248,80,159, +35,8,29,33,248,80,158,36,41,194,248,80,159,35,8,29,33,248,80,158,36, +40,194,11,28,248,80,158,35,48,193,248,22,252,9,2,28,248,22,41,248,22, +210,195,249,22,223,195,20,15,159,37,32,8,37,11,10,27,248,80,158,35,40, 194,28,248,80,158,35,45,193,28,248,80,159,35,8,29,33,248,80,158,36,41, 194,248,80,159,35,8,29,33,248,80,158,36,40,194,11,28,248,80,158,35,48, -193,248,22,252,8,2,28,248,22,41,248,22,210,195,249,22,223,195,83,160,41, -32,37,8,37,11,10,27,248,80,158,35,40,194,28,248,80,158,35,45,193,28, -248,80,159,35,8,29,33,248,80,158,36,41,194,248,80,159,35,8,29,33,248, -80,158,36,40,194,11,28,248,80,158,35,48,193,248,22,252,8,2,28,248,22, -41,248,22,210,195,249,22,223,195,83,160,41,32,37,8,37,11,10,11,28,248, -80,158,34,48,193,248,22,252,8,2,28,248,22,41,248,22,210,195,249,22,223, -195,83,160,41,32,36,8,37,11,10,27,248,80,158,34,40,195,28,248,80,158, -34,45,193,28,27,248,80,158,35,41,194,28,248,80,158,35,45,193,28,248,80, +193,248,22,252,9,2,28,248,22,41,248,22,210,195,249,22,223,195,20,15,159, +37,32,8,37,11,10,11,28,248,80,158,34,48,193,248,22,252,9,2,28,248, +22,41,248,22,210,195,249,22,223,195,20,15,159,36,32,8,37,11,10,27,248, +80,158,34,40,195,28,248,80,158,34,45,193,28,27,248,80,158,35,41,194,28, +248,80,158,35,45,193,28,248,80,159,35,8,29,33,248,80,158,36,41,194,248, +80,159,35,8,29,33,248,80,158,36,40,194,11,28,248,80,158,35,48,193,248, +22,252,9,2,28,248,22,41,248,22,210,195,249,22,223,195,20,15,159,37,32, +8,37,11,10,27,248,80,158,35,40,194,28,248,80,158,35,45,193,28,248,80, 159,35,8,29,33,248,80,158,36,41,194,248,80,159,35,8,29,33,248,80,158, -36,40,194,11,28,248,80,158,35,48,193,248,22,252,8,2,28,248,22,41,248, -22,210,195,249,22,223,195,83,160,41,32,37,8,37,11,10,27,248,80,158,35, -40,194,28,248,80,158,35,45,193,28,248,80,159,35,8,29,33,248,80,158,36, -41,194,248,80,159,35,8,29,33,248,80,158,36,40,194,11,28,248,80,158,35, -48,193,248,22,252,8,2,28,248,22,41,248,22,210,195,249,22,223,195,83,160, -41,32,37,8,37,11,10,11,28,248,80,158,34,48,193,248,22,252,8,2,28, -248,22,41,248,22,210,195,249,22,223,195,83,160,41,32,36,8,37,11,10,11, -28,248,80,158,33,48,194,248,22,252,8,2,28,248,22,41,248,22,210,196,249, -22,223,196,83,160,41,32,35,8,37,11,10,83,159,32,99,80,159,32,8,30, -33,80,159,32,8,31,33,80,159,32,8,32,33,80,159,32,8,33,33,80,159, -32,8,34,33,80,159,32,8,35,33,80,159,32,8,36,33,27,247,22,252,112, -2,87,94,28,192,28,248,22,252,111,2,193,12,250,22,252,39,2,2,84,6, -15,15,105,110,115,112,101,99,116,111,114,32,111,114,32,35,102,195,12,91,159, -37,11,90,161,37,32,11,254,22,252,89,2,2,82,11,34,32,11,9,204,254, -22,7,199,200,201,250,22,252,91,2,205,32,65,100,101,112,116,104,186,250,22, -252,92,2,206,32,2,186,250,22,252,91,2,205,33,66,118,97,108,118,97,114, -187,250,22,252,92,2,206,33,2,187,95,68,35,37,107,101,114,110,101,108,188, -2,18,74,35,37,115,109,97,108,108,45,115,99,104,101,109,101,189,9,0}; - EVAL_ONE_SIZED_STR((char *)expr, 9616); +36,40,194,11,28,248,80,158,35,48,193,248,22,252,9,2,28,248,22,41,248, +22,210,195,249,22,223,195,20,15,159,37,32,8,37,11,10,11,28,248,80,158, +34,48,193,248,22,252,9,2,28,248,22,41,248,22,210,195,249,22,223,195,20, +15,159,36,32,8,37,11,10,11,28,248,80,158,33,48,194,248,22,252,9,2, +28,248,22,41,248,22,210,196,249,22,223,196,20,15,159,35,32,8,37,11,10, +83,159,32,99,80,159,32,8,30,33,80,159,32,8,31,33,80,159,32,8,32, +33,80,159,32,8,33,33,80,159,32,8,34,33,80,159,32,8,35,33,80,159, +32,8,36,33,27,247,22,252,113,2,87,94,28,192,28,248,22,252,112,2,193, +12,250,22,252,40,2,73,100,101,102,105,110,101,45,115,116,114,117,99,116,177, +6,15,15,105,110,115,112,101,99,116,111,114,32,111,114,32,35,102,195,12,91, +159,37,11,90,161,37,32,11,254,22,252,90,2,2,81,11,34,32,11,9,204, +254,22,7,199,200,201,250,22,252,92,2,205,32,65,100,101,112,116,104,178,250, +22,252,93,2,206,32,2,178,250,22,252,92,2,205,33,66,118,97,108,118,97, +114,179,250,22,252,93,2,206,33,2,179,95,68,35,37,107,101,114,110,101,108, +180,2,18,2,80,9,0}; + EVAL_ONE_SIZED_STR((char *)expr, 9456); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,49,155,252,55,17,159,32,20,97,158,16,1,20, -23,65,98,101,103,105,110,0,16,0,83,158,39,20,94,114,69,35,37,115,116, -120,99,97,115,101,1,29,2,11,11,10,10,10,32,80,158,32,32,20,97,158, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,133,252,150,15,159,32,20,98,158,16,1,20, +24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,69,35,37,115,116, +120,99,97,115,101,1,29,2,11,11,10,10,10,32,80,158,32,32,20,98,158, 16,1,30,3,2,2,1,20,101,108,108,105,112,115,105,115,45,99,111,117,110, 116,45,101,114,114,111,114,4,254,1,16,0,11,11,16,1,2,4,33,11,16, -2,73,115,121,110,116,97,120,45,99,97,115,101,42,42,5,66,115,121,110,116, -97,120,6,16,2,11,11,16,2,2,5,2,6,32,34,94,16,5,93,2,5, +2,66,115,121,110,116,97,120,5,73,115,121,110,116,97,120,45,99,97,115,101, +42,42,6,16,2,11,11,16,2,2,5,2,6,32,34,94,16,5,93,2,6, 89,162,32,33,8,32,9,223,0,91,159,33,10,90,161,33,32,10,28,248,80, 158,34,32,195,248,22,53,248,80,158,35,33,196,11,87,94,28,28,248,80,158, -34,32,195,249,22,183,248,22,64,210,35,11,12,250,22,252,38,2,11,6,8, +34,32,195,249,22,183,248,22,64,210,35,11,12,250,22,252,39,2,11,6,8, 8,98,97,100,32,102,111,114,109,197,27,248,22,52,209,27,248,22,78,210,27, 248,22,87,211,27,248,22,90,212,27,248,22,90,248,22,53,214,27,248,22,89, -248,22,53,215,87,96,28,248,80,158,40,32,195,12,250,22,252,38,2,248,22, +248,22,53,215,87,96,28,248,80,158,40,32,195,12,250,22,252,39,2,248,22, 210,201,6,56,56,101,120,112,101,99,116,101,100,32,97,32,112,97,114,101,110, 116,104,101,115,105,122,101,100,32,115,101,113,117,101,110,99,101,32,111,102,32, 108,105,116,101,114,97,108,32,105,100,101,110,116,105,102,105,101,114,115,197,249, 22,3,89,162,32,33,39,9,224,9,7,28,248,80,158,34,34,195,12,250,22, -252,38,2,248,22,210,196,6,28,28,108,105,116,101,114,97,108,32,105,115,32, +252,39,2,248,22,210,196,6,28,28,108,105,116,101,114,97,108,32,105,115,32, 110,111,116,32,97,110,32,105,100,101,110,116,105,102,105,101,114,197,248,80,158, 42,33,197,249,22,3,89,162,32,33,40,9,224,9,7,28,28,248,80,158,34, 32,195,250,22,184,34,248,22,64,248,80,158,38,33,199,35,11,12,250,22,252, -38,2,248,22,210,196,6,10,10,98,97,100,32,99,108,97,117,115,101,197,194, +39,2,248,22,210,196,6,10,10,98,97,100,32,99,108,97,117,115,101,197,194, 27,249,22,2,80,158,42,35,195,27,249,22,2,89,162,32,33,37,9,223,11, 28,248,80,158,33,36,248,80,158,34,37,248,80,158,35,37,196,248,80,158,33, 35,248,80,158,34,37,195,11,196,27,249,22,2,89,162,32,33,37,9,223,12, 27,248,80,158,34,37,248,80,158,35,37,196,28,248,80,158,34,36,193,248,80, -158,34,35,193,248,80,158,34,35,248,80,158,35,37,196,197,27,83,160,41,32, -43,41,27,83,160,41,33,44,41,27,249,22,2,89,162,32,33,41,9,225,15, +158,34,35,193,248,80,158,34,35,248,80,158,35,37,196,197,27,20,15,159,43, +32,41,27,20,15,159,44,33,41,27,249,22,2,89,162,32,33,41,9,225,15, 10,13,251,80,158,38,38,196,199,199,248,80,158,39,33,198,248,80,158,48,33, -200,27,28,248,80,158,47,34,201,249,22,223,202,83,160,41,34,48,41,11,250, -22,209,83,160,41,35,49,41,250,22,59,83,160,41,36,52,41,248,22,59,249, -22,59,204,28,248,22,210,23,21,23,19,250,22,59,83,160,41,37,58,41,249, -22,59,83,160,41,38,8,28,41,249,22,209,23,26,64,104,101,114,101,7,23, +200,27,28,248,80,158,47,34,201,249,22,223,202,20,15,159,48,34,41,11,250, +22,209,20,15,159,49,35,41,250,22,59,20,15,159,52,36,41,248,22,59,249, +22,59,204,28,248,22,210,23,21,23,19,250,22,59,20,15,159,58,37,41,249, +22,59,20,15,159,8,28,38,41,249,22,209,23,26,64,104,101,114,101,7,23, 22,251,91,159,33,11,20,12,95,33,192,89,162,32,36,8,42,64,108,111,111, -112,8,230,25,19,20,23,11,13,14,0,28,248,22,57,201,251,22,59,83,160, -41,39,43,41,11,6,10,10,98,97,100,32,115,121,110,116,97,120,197,27,251, +112,8,230,25,19,20,23,11,13,14,0,28,248,22,57,201,251,22,59,20,15, +159,43,39,41,11,6,10,10,98,97,100,32,115,121,110,116,97,120,197,27,251, 197,248,22,53,206,248,22,53,23,15,248,22,53,23,16,248,22,53,23,17,27, 248,22,52,203,27,248,22,52,205,27,248,22,52,23,15,27,248,22,52,23,17, 91,159,35,10,90,161,33,32,10,249,22,2,89,162,32,33,35,9,222,248,91, @@ -1069,35 +1029,35 @@ 206,193,192,27,248,22,52,194,28,248,22,206,193,192,248,196,248,22,52,194,193, 198,90,161,33,33,10,249,22,2,89,162,32,33,36,9,222,250,22,209,195,247, 22,48,11,209,90,161,33,34,10,248,22,171,248,22,64,209,27,28,248,22,52, -23,19,248,22,59,83,160,41,40,49,41,200,27,252,80,158,54,39,23,19,205, -205,248,80,158,55,33,23,21,248,22,252,8,2,23,19,27,28,206,249,22,252, -12,2,195,21,95,66,108,97,109,98,100,97,9,93,61,101,10,2,10,249,22, -252,12,2,195,21,95,2,9,94,2,10,79,109,111,100,117,108,101,45,105,100, -101,110,116,105,102,105,101,114,61,63,11,2,10,27,250,22,59,83,160,41,41, -54,41,248,22,59,249,22,59,23,20,28,199,23,19,250,22,61,250,22,209,83, -160,41,42,8,31,41,206,23,22,23,22,28,23,24,9,248,22,59,23,28,251, -22,59,83,160,41,43,58,41,28,200,10,23,21,250,22,59,83,160,41,44,8, -29,41,250,22,2,89,162,32,34,45,9,226,32,27,19,17,249,22,59,199,27, -249,80,158,40,40,201,212,27,28,249,22,181,214,195,28,249,22,252,10,2,195, -32,64,116,97,105,108,12,28,249,22,252,10,2,195,33,83,160,41,45,39,41, -28,249,22,252,10,2,195,34,83,160,41,46,39,41,28,249,22,252,10,2,195, -35,83,160,41,47,39,41,28,249,22,252,10,2,195,36,83,160,41,48,39,41, -2,12,28,249,22,252,10,2,195,32,83,160,41,49,39,41,28,249,22,252,10, -2,195,33,83,160,41,50,39,41,28,249,22,252,10,2,195,34,83,160,41,51, -39,41,28,249,22,252,10,2,195,35,83,160,41,52,39,41,11,28,249,22,252, -10,2,194,2,12,28,248,22,186,194,198,250,22,59,83,160,41,53,42,41,201, -196,28,192,249,22,59,194,200,250,22,59,83,160,41,54,42,41,201,196,24,17, -24,18,251,22,59,83,160,41,55,8,33,41,251,22,2,89,162,32,35,44,9, -223,37,249,22,59,248,22,59,196,250,22,59,83,160,41,56,37,41,249,91,159, +23,19,248,22,59,20,15,159,49,40,41,200,27,252,80,158,54,39,23,19,205, +205,248,80,158,55,33,23,21,248,22,252,9,2,23,19,27,28,206,249,22,252, +13,2,195,21,95,66,108,97,109,98,100,97,9,93,61,101,10,2,10,249,22, +252,13,2,195,21,95,2,9,94,2,10,79,109,111,100,117,108,101,45,105,100, +101,110,116,105,102,105,101,114,61,63,11,2,10,27,250,22,59,20,15,159,54, +41,41,248,22,59,249,22,59,23,20,28,199,23,19,250,22,61,250,22,209,20, +15,159,8,31,42,41,206,23,22,23,22,28,23,24,9,248,22,59,23,28,251, +22,59,20,15,159,58,43,41,28,200,10,23,21,250,22,59,20,15,159,8,29, +44,41,250,22,2,89,162,32,34,45,9,226,32,27,19,17,249,22,59,199,27, +249,80,158,40,40,201,212,27,28,249,22,181,214,195,28,249,22,252,11,2,195, +32,64,116,97,105,108,12,28,249,22,252,11,2,195,33,20,15,159,39,45,41, +28,249,22,252,11,2,195,34,20,15,159,39,46,41,28,249,22,252,11,2,195, +35,20,15,159,39,47,41,28,249,22,252,11,2,195,36,20,15,159,39,48,41, +2,12,28,249,22,252,11,2,195,32,20,15,159,39,49,41,28,249,22,252,11, +2,195,33,20,15,159,39,50,41,28,249,22,252,11,2,195,34,20,15,159,39, +51,41,28,249,22,252,11,2,195,35,20,15,159,39,52,41,11,28,249,22,252, +11,2,194,2,12,28,248,22,186,194,198,250,22,59,20,15,159,42,53,41,201, +196,28,192,249,22,59,194,200,250,22,59,20,15,159,42,54,41,201,196,24,17, +24,18,251,22,59,20,15,159,8,33,55,41,251,22,2,89,162,32,35,44,9, +223,37,249,22,59,248,22,59,196,250,22,59,20,15,159,37,56,41,249,91,159, 33,11,20,12,95,33,192,89,162,32,34,45,2,8,223,0,28,248,22,206,194, 194,27,248,22,52,195,27,248,22,170,197,28,248,22,206,194,192,27,248,22,52, 195,27,248,22,170,195,28,248,22,206,194,192,27,248,22,52,195,27,248,22,170, 195,28,248,22,206,194,192,249,200,248,22,52,196,248,22,170,195,201,32,249,22, -59,83,160,41,57,39,41,202,24,22,23,26,24,23,9,28,23,23,251,22,59, -83,160,41,58,8,37,41,23,27,23,25,23,21,23,21,202,28,201,250,22,59, -83,160,41,59,54,41,248,22,59,249,22,59,68,116,114,121,45,110,101,120,116, -13,250,22,59,83,160,41,8,28,8,28,41,247,22,59,23,20,195,192,23,16, -23,15,203,206,23,18,32,20,97,158,16,9,30,14,65,35,37,115,116,120,15, +59,20,15,159,39,57,41,202,24,22,23,26,24,23,9,28,23,23,251,22,59, +20,15,159,8,37,58,41,23,27,23,25,23,21,23,21,202,28,201,250,22,59, +20,15,159,54,59,41,248,22,59,249,22,59,68,116,114,121,45,110,101,120,116, +13,250,22,59,20,15,159,8,28,8,28,41,247,22,59,23,20,195,192,23,16, +23,15,203,206,23,18,32,20,98,158,16,9,30,14,65,35,37,115,116,120,15, 69,115,116,120,45,108,105,115,116,63,16,8,30,17,2,15,69,115,116,120,45, 62,108,105,115,116,18,4,30,19,2,15,71,105,100,101,110,116,105,102,105,101, 114,63,20,2,30,21,2,15,67,115,116,120,45,99,97,114,22,5,30,23,2, @@ -1105,233 +1065,209 @@ 45,99,100,114,26,6,30,27,64,35,37,115,99,28,74,103,101,116,45,109,97, 116,99,104,45,118,97,114,115,29,0,30,30,2,28,74,109,97,107,101,45,109, 97,116,99,104,38,101,110,118,31,1,30,32,2,28,72,115,116,120,45,109,101, -109,113,45,112,111,115,33,5,16,29,18,101,63,97,114,103,34,41,97,39,10, -32,11,16,58,69,97,112,112,101,110,100,47,35,102,35,2,15,73,115,116,120, -45,99,104,101,99,107,47,101,115,99,36,2,15,67,45,100,101,102,105,110,101, -37,74,35,37,100,101,102,105,110,101,45,101,116,45,97,108,38,70,115,116,120, -45,114,111,116,97,116,101,39,2,15,2,22,2,15,2,6,2,2,71,115,116, -120,45,114,111,116,97,116,101,42,40,2,15,2,26,2,15,74,115,112,108,105, -116,45,115,116,120,45,108,105,115,116,41,2,15,67,99,111,110,115,47,35,102, -42,2,15,73,100,101,102,105,110,101,45,115,116,114,117,99,116,43,2,38,2, -20,2,15,64,119,104,101,110,44,2,38,2,24,2,15,69,115,116,120,45,110, -117,108,108,63,45,2,15,66,117,110,108,101,115,115,46,2,38,66,108,101,116, -47,101,99,47,2,38,2,5,2,2,64,99,111,110,100,48,66,35,37,99,111, -110,100,49,70,113,117,97,115,105,113,117,111,116,101,50,71,35,37,113,113,45, -97,110,100,45,111,114,51,63,97,110,100,52,2,51,2,16,2,15,2,18,2, -15,2,4,2,2,62,111,114,53,2,51,74,45,100,101,102,105,110,101,45,115, -121,110,116,97,120,54,2,38,71,115,116,120,45,110,117,108,108,47,35,102,55, -2,15,71,115,116,120,45,118,101,99,116,111,114,63,56,2,15,74,115,116,120, -45,118,101,99,116,111,114,45,114,101,102,57,2,15,97,38,10,33,11,16,70, -2,35,2,15,2,36,2,15,2,37,2,38,72,110,111,45,101,108,108,105,112, -115,101,115,63,58,2,28,2,39,2,15,2,22,2,15,2,40,2,15,2,26, -2,15,2,41,2,15,2,29,2,28,2,42,2,15,75,115,121,110,116,97,120, -45,109,97,112,112,105,110,103,63,59,2,28,2,31,2,28,2,43,2,38,2, -20,2,15,2,44,2,38,2,24,2,15,2,45,2,15,2,46,2,38,72,109, -97,107,101,45,112,101,120,112,97,110,100,60,2,28,2,47,2,38,2,33,2, -28,2,48,2,49,79,109,97,107,101,45,115,121,110,116,97,120,45,109,97,112, -112,105,110,103,61,2,28,2,50,2,51,1,20,115,121,110,116,97,120,45,109, -97,112,112,105,110,103,45,100,101,112,116,104,62,2,28,2,52,2,51,2,16, -2,15,2,18,2,15,1,21,115,121,110,116,97,120,45,109,97,112,112,105,110, -103,45,118,97,108,118,97,114,63,2,28,2,53,2,51,2,54,2,38,2,55, -2,15,2,56,2,15,2,57,2,15,96,37,8,254,1,11,16,0,16,4,36, -11,61,120,64,3,1,7,101,110,118,50,53,52,52,65,16,4,35,11,61,108, -66,3,1,7,101,110,118,50,53,52,54,67,16,14,34,11,63,119,104,111,68, -71,97,114,103,45,105,115,45,115,116,120,63,69,64,101,120,112,114,70,63,107, -119,115,71,68,108,105,116,45,99,111,109,112,72,67,99,108,97,117,115,101,115, -73,3,1,7,101,110,118,50,53,52,57,74,2,74,2,74,2,74,2,74,2, -74,16,8,33,11,68,112,97,116,116,101,114,110,115,75,67,102,101,110,100,101, -114,115,76,67,97,110,115,119,101,114,115,77,3,1,7,101,110,118,50,53,53, -51,78,2,78,2,78,18,102,64,114,115,108,116,79,43,39,38,37,36,35,34, -33,16,4,42,11,2,34,3,1,7,101,110,118,50,53,53,55,80,18,102,2, -11,45,39,38,37,36,35,34,33,16,8,44,11,2,34,2,79,73,112,97,116, -116,101,114,110,45,118,97,114,115,115,81,2,80,2,80,2,80,18,102,2,7, -47,39,38,37,36,35,34,33,16,10,46,11,2,34,2,79,2,81,76,108,105, -116,45,99,111,109,112,45,105,115,45,109,111,100,63,82,2,80,2,80,2,80, -2,80,18,158,63,108,101,116,83,47,18,158,1,20,100,97,116,117,109,45,62, -115,121,110,116,97,120,45,111,98,106,101,99,116,84,47,18,158,72,113,117,111, -116,101,45,115,121,110,116,97,120,85,47,18,104,78,114,97,105,115,101,45,115, -121,110,116,97,120,45,101,114,114,111,114,86,50,39,38,37,36,35,34,33,46, -16,4,49,11,2,8,3,1,7,101,110,118,50,53,53,57,87,16,4,48,11, -1,20,117,110,102,108,97,116,45,112,97,116,116,101,114,110,45,118,97,114,115, -115,88,3,1,7,101,110,118,50,53,54,48,89,18,108,2,13,55,39,38,37, -36,35,34,33,46,49,48,16,4,54,11,64,114,101,115,116,90,3,1,7,101, -110,118,50,53,54,49,91,16,10,53,11,67,112,97,116,116,101,114,110,92,66, -102,101,110,100,101,114,93,79,117,110,102,108,97,116,45,112,97,116,116,101,114, -110,45,118,97,114,115,94,66,97,110,115,119,101,114,95,3,1,7,101,110,118, -50,53,54,50,96,2,96,2,96,2,96,16,8,52,11,76,116,97,105,108,45, -112,97,116,116,101,114,110,45,118,97,114,97,69,116,101,109,112,45,118,97,114, -115,98,72,112,97,116,116,101,114,110,45,118,97,114,115,99,3,1,7,101,110, -118,50,53,54,56,100,3,1,7,101,110,118,50,53,54,54,101,3,1,7,101, -110,118,50,53,54,52,102,16,8,51,11,2,97,2,98,2,99,2,100,2,101, -2,102,18,109,2,83,57,39,38,37,36,35,34,33,46,49,48,54,53,52,51, -16,8,56,11,71,100,111,45,116,114,121,45,110,101,120,116,103,64,109,116,99, -104,104,70,99,97,110,116,45,102,97,105,108,63,105,3,1,7,101,110,118,50, -53,55,52,106,2,106,2,106,18,158,2,7,57,18,158,62,105,102,107,57,18, -158,2,83,57,18,111,63,99,100,114,108,8,28,39,38,37,36,35,34,33,46, -49,48,54,53,52,51,56,16,6,59,11,71,112,97,116,116,101,114,110,45,118, -97,114,109,68,116,101,109,112,45,118,97,114,110,3,1,7,101,110,118,50,53, -55,53,111,2,111,16,4,58,11,63,112,111,115,112,3,1,7,101,110,118,50, -53,55,54,113,18,158,64,99,100,100,114,114,8,28,18,158,65,99,100,100,100, -114,115,8,28,18,158,66,99,100,100,100,100,114,116,8,28,18,158,63,99,97, -114,117,8,28,18,158,64,99,97,100,114,118,8,28,18,158,65,99,97,100,100, -114,119,8,28,18,158,66,99,97,100,100,100,114,120,8,28,18,112,69,108,105, -115,116,45,116,97,105,108,121,8,30,39,38,37,36,35,34,33,46,49,48,54, -53,52,51,56,59,58,16,4,8,29,11,68,97,99,99,101,115,115,111,114,122, -3,1,7,101,110,118,50,53,55,55,123,18,158,68,108,105,115,116,45,114,101, -102,124,8,30,18,158,1,22,108,101,116,114,101,99,45,115,121,110,116,97,120, -101,115,43,118,97,108,117,101,115,125,57,18,110,2,61,8,32,39,38,37,36, -35,34,33,46,49,48,54,53,52,51,56,16,8,8,31,11,2,109,78,117,110, -102,108,97,116,45,112,97,116,116,101,114,110,45,118,97,114,126,2,110,3,1, -7,101,110,118,50,53,55,56,127,2,127,2,127,18,158,2,85,8,32,18,158, -2,107,57,18,109,2,83,8,34,39,38,37,36,35,34,33,46,49,48,54,53, -52,51,16,10,8,33,11,2,103,2,104,2,105,61,109,128,2,106,2,106,2, -106,2,106,18,158,2,9,8,34,11,16,5,93,2,6,89,162,32,33,53,9, -223,0,91,159,33,10,90,161,33,32,10,83,160,41,32,33,42,87,94,28,28, -248,80,158,34,32,195,27,248,80,158,35,33,196,28,248,80,158,35,32,193,248, -80,158,35,34,248,80,158,36,33,194,11,11,12,250,22,252,38,2,11,6,8, -8,98,97,100,32,102,111,114,109,197,250,22,209,210,27,248,80,158,38,35,248, -80,158,39,33,200,27,251,80,158,42,36,197,11,9,11,27,249,22,2,89,162, -32,33,37,9,223,9,27,249,22,252,78,3,196,89,162,40,32,32,9,222,11, -28,248,80,158,34,37,193,192,11,195,28,28,28,248,22,57,193,10,248,22,252, -8,2,249,22,5,89,162,32,33,33,9,222,192,195,248,80,158,40,38,195,11, -249,22,59,83,160,41,33,41,42,196,27,249,91,159,33,11,20,12,95,33,192, -89,162,32,34,43,2,8,224,11,0,28,248,22,57,196,9,27,249,195,248,22, -53,198,248,22,53,199,28,248,22,52,197,249,22,51,249,91,159,33,11,20,12, -95,33,192,89,162,32,34,45,2,8,223,0,28,248,22,186,195,193,27,248,22, -59,195,27,248,22,171,197,28,248,22,186,193,193,27,248,22,59,195,27,248,22, -171,195,28,248,22,186,193,193,27,248,22,59,195,27,248,22,171,195,28,248,22, -186,193,193,249,200,248,22,59,196,248,22,171,195,248,22,52,200,248,80,158,39, -39,248,22,52,202,194,192,196,195,27,249,91,159,33,11,20,12,95,33,192,89, -162,32,34,40,2,8,223,0,28,248,22,57,195,9,27,249,195,248,22,53,197, -248,22,53,198,28,248,22,52,196,192,249,22,51,248,22,52,197,194,197,196,27, -251,80,158,46,36,201,198,197,201,27,249,91,159,33,11,20,12,95,33,192,89, -162,32,34,47,2,8,225,14,15,0,28,248,22,57,197,9,28,248,22,52,197, -249,22,51,250,22,209,248,22,52,201,248,22,210,248,80,158,41,40,248,22,52, -204,198,249,196,248,22,53,200,248,22,53,201,249,194,248,22,53,198,248,22,53, -199,199,198,28,248,80,158,44,41,199,248,22,52,193,250,22,59,250,22,209,24, -16,199,204,27,248,22,64,197,28,248,22,186,193,83,160,41,34,47,42,28,249, -22,181,194,33,248,22,52,197,249,22,51,83,160,41,35,49,42,198,249,22,59, -83,160,41,36,48,42,250,22,209,11,66,115,114,99,116,97,103,129,23,20,197, -32,20,97,158,16,10,2,23,2,25,30,130,2,15,2,45,10,2,21,30,131, -2,28,2,60,2,30,132,2,28,2,59,8,30,133,2,28,2,58,4,30,134, -2,28,2,62,6,30,135,2,28,2,63,7,2,19,16,5,18,100,2,7,8, -38,39,38,37,16,4,8,37,11,2,64,3,1,7,101,110,118,50,53,56,50, -136,16,4,8,36,11,68,104,101,114,101,45,115,116,120,137,3,1,7,101,110, -118,50,53,56,52,138,16,4,8,35,11,2,137,2,138,18,102,2,85,8,43, -39,38,37,8,37,16,4,8,42,11,2,137,2,138,16,4,8,41,11,2,92, -3,1,7,101,110,118,50,53,56,56,139,16,4,8,40,11,71,117,110,105,113, -117,101,45,118,97,114,115,140,3,1,7,101,110,118,50,53,56,57,141,16,4, -8,39,11,72,118,97,114,45,98,105,110,100,105,110,103,115,142,3,1,7,101, -110,118,50,53,57,48,143,18,105,9,8,47,39,38,37,8,37,8,42,8,41, -8,40,8,39,16,6,8,46,11,67,112,114,111,116,111,45,114,144,76,110,111, -110,45,112,97,116,116,101,114,110,45,118,97,114,115,145,3,1,7,101,110,118, -50,53,57,54,146,2,146,16,6,8,45,11,79,98,117,105,108,100,45,102,114, -111,109,45,116,101,109,112,108,97,116,101,147,61,114,148,3,1,7,101,110,118, -50,54,48,53,149,2,149,16,4,8,44,11,63,108,101,110,150,3,1,7,101, -110,118,50,54,48,56,151,18,158,65,108,105,115,116,42,152,8,47,18,104,2, -85,8,48,39,38,37,8,37,8,42,8,41,8,40,8,39,8,46,8,45,11, -93,83,159,32,93,80,159,32,32,33,89,162,32,34,38,2,4,222,251,22,252, -38,2,2,6,6,47,47,105,110,99,111,109,112,97,116,105,98,108,101,32,101, -108,108,105,112,115,105,115,32,109,97,116,99,104,32,99,111,117,110,116,115,32, -102,111,114,32,116,101,109,112,108,97,116,101,196,197,95,68,35,37,107,101,114, -110,101,108,153,2,15,74,35,37,115,109,97,108,108,45,115,99,104,101,109,101, -154,96,2,15,2,154,2,28,2,153,0}; - EVAL_ONE_SIZED_STR((char *)expr, 4420); +109,113,45,112,111,115,33,5,16,29,18,101,63,97,114,103,34,41,98,39,10, +32,11,94,159,74,35,37,115,109,97,108,108,45,115,99,104,101,109,101,35,9, +11,159,2,15,9,11,16,6,2,5,2,2,2,6,2,2,2,4,2,2,98, +38,10,33,11,95,159,2,28,9,11,159,2,35,9,11,159,2,15,9,11,16, +0,96,37,8,254,1,11,16,0,16,4,36,11,61,120,36,3,1,7,101,110, +118,50,53,52,52,37,16,4,35,11,61,108,38,3,1,7,101,110,118,50,53, +52,54,39,16,14,34,11,63,119,104,111,40,71,97,114,103,45,105,115,45,115, +116,120,63,41,64,101,120,112,114,42,63,107,119,115,43,68,108,105,116,45,99, +111,109,112,44,67,99,108,97,117,115,101,115,45,3,1,7,101,110,118,50,53, +52,57,46,2,46,2,46,2,46,2,46,2,46,16,8,33,11,68,112,97,116, +116,101,114,110,115,47,67,102,101,110,100,101,114,115,48,67,97,110,115,119,101, +114,115,49,3,1,7,101,110,118,50,53,53,51,50,2,50,2,50,18,102,64, +114,115,108,116,51,43,39,38,37,36,35,34,33,16,4,42,11,2,34,3,1, +7,101,110,118,50,53,53,55,52,18,102,2,11,45,39,38,37,36,35,34,33, +16,8,44,11,2,34,2,51,73,112,97,116,116,101,114,110,45,118,97,114,115, +115,53,2,52,2,52,2,52,18,102,2,7,47,39,38,37,36,35,34,33,16, +10,46,11,2,34,2,51,2,53,76,108,105,116,45,99,111,109,112,45,105,115, +45,109,111,100,63,54,2,52,2,52,2,52,2,52,18,158,63,108,101,116,55, +47,18,158,1,20,100,97,116,117,109,45,62,115,121,110,116,97,120,45,111,98, +106,101,99,116,56,47,18,158,72,113,117,111,116,101,45,115,121,110,116,97,120, +57,47,18,104,78,114,97,105,115,101,45,115,121,110,116,97,120,45,101,114,114, +111,114,58,50,39,38,37,36,35,34,33,46,16,4,49,11,2,8,3,1,7, +101,110,118,50,53,53,57,59,16,4,48,11,1,20,117,110,102,108,97,116,45, +112,97,116,116,101,114,110,45,118,97,114,115,115,60,3,1,7,101,110,118,50, +53,54,48,61,18,108,2,13,55,39,38,37,36,35,34,33,46,49,48,16,4, +54,11,64,114,101,115,116,62,3,1,7,101,110,118,50,53,54,49,63,16,10, +53,11,67,112,97,116,116,101,114,110,64,66,102,101,110,100,101,114,65,79,117, +110,102,108,97,116,45,112,97,116,116,101,114,110,45,118,97,114,115,66,66,97, +110,115,119,101,114,67,3,1,7,101,110,118,50,53,54,50,68,2,68,2,68, +2,68,16,8,52,11,76,116,97,105,108,45,112,97,116,116,101,114,110,45,118, +97,114,69,69,116,101,109,112,45,118,97,114,115,70,72,112,97,116,116,101,114, +110,45,118,97,114,115,71,3,1,7,101,110,118,50,53,54,56,72,3,1,7, +101,110,118,50,53,54,54,73,3,1,7,101,110,118,50,53,54,52,74,16,8, +51,11,2,69,2,70,2,71,2,72,2,73,2,74,18,109,2,55,57,39,38, +37,36,35,34,33,46,49,48,54,53,52,51,16,8,56,11,71,100,111,45,116, +114,121,45,110,101,120,116,75,64,109,116,99,104,76,70,99,97,110,116,45,102, +97,105,108,63,77,3,1,7,101,110,118,50,53,55,52,78,2,78,2,78,18, +158,2,7,57,18,158,62,105,102,79,57,18,158,2,55,57,18,111,63,99,100, +114,80,8,28,39,38,37,36,35,34,33,46,49,48,54,53,52,51,56,16,6, +59,11,71,112,97,116,116,101,114,110,45,118,97,114,81,68,116,101,109,112,45, +118,97,114,82,3,1,7,101,110,118,50,53,55,53,83,2,83,16,4,58,11, +63,112,111,115,84,3,1,7,101,110,118,50,53,55,54,85,18,158,64,99,100, +100,114,86,8,28,18,158,65,99,100,100,100,114,87,8,28,18,158,66,99,100, +100,100,100,114,88,8,28,18,158,63,99,97,114,89,8,28,18,158,64,99,97, +100,114,90,8,28,18,158,65,99,97,100,100,114,91,8,28,18,158,66,99,97, +100,100,100,114,92,8,28,18,112,69,108,105,115,116,45,116,97,105,108,93,8, +30,39,38,37,36,35,34,33,46,49,48,54,53,52,51,56,59,58,16,4,8, +29,11,68,97,99,99,101,115,115,111,114,94,3,1,7,101,110,118,50,53,55, +55,95,18,158,68,108,105,115,116,45,114,101,102,96,8,30,18,158,1,22,108, +101,116,114,101,99,45,115,121,110,116,97,120,101,115,43,118,97,108,117,101,115, +97,57,18,110,79,109,97,107,101,45,115,121,110,116,97,120,45,109,97,112,112, +105,110,103,98,8,32,39,38,37,36,35,34,33,46,49,48,54,53,52,51,56, +16,8,8,31,11,2,81,78,117,110,102,108,97,116,45,112,97,116,116,101,114, +110,45,118,97,114,99,2,82,3,1,7,101,110,118,50,53,55,56,100,2,100, +2,100,18,158,2,57,8,32,18,158,2,79,57,18,109,2,55,8,34,39,38, +37,36,35,34,33,46,49,48,54,53,52,51,16,10,8,33,11,2,75,2,76, +2,77,61,109,101,2,78,2,78,2,78,2,78,18,158,2,9,8,34,11,16, +5,93,2,5,89,162,32,33,53,9,223,0,91,159,33,10,90,161,33,32,10, +20,15,159,33,32,42,87,94,28,28,248,80,158,34,32,195,27,248,80,158,35, +33,196,28,248,80,158,35,32,193,248,80,158,35,34,248,80,158,36,33,194,11, +11,12,250,22,252,39,2,11,6,8,8,98,97,100,32,102,111,114,109,197,250, +22,209,210,27,248,80,158,38,35,248,80,158,39,33,200,27,251,80,158,42,36, +197,11,9,11,27,249,22,2,89,162,32,33,37,9,223,9,27,249,22,252,79, +3,196,89,162,40,32,32,9,222,11,28,248,80,158,34,37,193,192,11,195,28, +28,28,248,22,57,193,10,248,22,252,9,2,249,22,5,89,162,32,33,33,9, +222,192,195,248,80,158,40,38,195,11,249,22,59,20,15,159,41,33,42,196,27, +249,91,159,33,11,20,12,95,33,192,89,162,32,34,43,2,8,224,11,0,28, +248,22,57,196,9,27,249,195,248,22,53,198,248,22,53,199,28,248,22,52,197, +249,22,51,249,91,159,33,11,20,12,95,33,192,89,162,32,34,45,2,8,223, +0,28,248,22,186,195,193,27,248,22,59,195,27,248,22,171,197,28,248,22,186, +193,193,27,248,22,59,195,27,248,22,171,195,28,248,22,186,193,193,27,248,22, +59,195,27,248,22,171,195,28,248,22,186,193,193,249,200,248,22,59,196,248,22, +171,195,248,22,52,200,248,80,158,39,39,248,22,52,202,194,192,196,195,27,249, +91,159,33,11,20,12,95,33,192,89,162,32,34,40,2,8,223,0,28,248,22, +57,195,9,27,249,195,248,22,53,197,248,22,53,198,28,248,22,52,196,192,249, +22,51,248,22,52,197,194,197,196,27,251,80,158,46,36,201,198,197,201,27,249, +91,159,33,11,20,12,95,33,192,89,162,32,34,47,2,8,225,14,15,0,28, +248,22,57,197,9,28,248,22,52,197,249,22,51,250,22,209,248,22,52,201,248, +22,210,248,80,158,41,40,248,22,52,204,198,249,196,248,22,53,200,248,22,53, +201,249,194,248,22,53,198,248,22,53,199,199,198,28,248,80,158,44,41,199,248, +22,52,193,250,22,59,250,22,209,24,16,199,204,27,248,22,64,197,28,248,22, +186,193,20,15,159,47,34,42,28,249,22,181,194,33,248,22,52,197,249,22,51, +20,15,159,49,35,42,198,249,22,59,20,15,159,48,36,42,250,22,209,11,66, +115,114,99,116,97,103,102,23,20,197,32,20,98,158,16,10,2,23,2,25,30, +103,2,15,69,115,116,120,45,110,117,108,108,63,104,10,2,21,30,105,2,28, +72,109,97,107,101,45,112,101,120,112,97,110,100,106,2,30,107,2,28,75,115, +121,110,116,97,120,45,109,97,112,112,105,110,103,63,108,8,30,109,2,28,72, +110,111,45,101,108,108,105,112,115,101,115,63,110,4,30,111,2,28,1,20,115, +121,110,116,97,120,45,109,97,112,112,105,110,103,45,100,101,112,116,104,112,6, +30,113,2,28,1,21,115,121,110,116,97,120,45,109,97,112,112,105,110,103,45, +118,97,108,118,97,114,114,7,2,19,16,5,18,100,2,7,8,38,39,38,37, +16,4,8,37,11,2,36,3,1,7,101,110,118,50,53,56,50,115,16,4,8, +36,11,68,104,101,114,101,45,115,116,120,116,3,1,7,101,110,118,50,53,56, +52,117,16,4,8,35,11,2,116,2,117,18,102,2,57,8,43,39,38,37,8, +37,16,4,8,42,11,2,116,2,117,16,4,8,41,11,2,64,3,1,7,101, +110,118,50,53,56,56,118,16,4,8,40,11,71,117,110,105,113,117,101,45,118, +97,114,115,119,3,1,7,101,110,118,50,53,56,57,120,16,4,8,39,11,72, +118,97,114,45,98,105,110,100,105,110,103,115,121,3,1,7,101,110,118,50,53, +57,48,122,18,105,9,8,47,39,38,37,8,37,8,42,8,41,8,40,8,39, +16,6,8,46,11,67,112,114,111,116,111,45,114,123,76,110,111,110,45,112,97, +116,116,101,114,110,45,118,97,114,115,124,3,1,7,101,110,118,50,53,57,54, +125,2,125,16,6,8,45,11,79,98,117,105,108,100,45,102,114,111,109,45,116, +101,109,112,108,97,116,101,126,61,114,127,3,1,7,101,110,118,50,54,48,53, +128,2,128,16,4,8,44,11,63,108,101,110,129,3,1,7,101,110,118,50,54, +48,56,130,18,158,65,108,105,115,116,42,131,8,47,18,104,2,57,8,48,39, +38,37,8,37,8,42,8,41,8,40,8,39,8,46,8,45,11,93,83,159,32, +93,80,159,32,32,33,89,162,32,34,38,2,4,222,251,22,252,39,2,2,5, +6,47,47,105,110,99,111,109,112,97,116,105,98,108,101,32,101,108,108,105,112, +115,105,115,32,109,97,116,99,104,32,99,111,117,110,116,115,32,102,111,114,32, +116,101,109,112,108,97,116,101,196,197,95,68,35,37,107,101,114,110,101,108,132, +2,15,2,35,96,2,15,2,35,2,28,2,132,0}; + EVAL_ONE_SIZED_STR((char *)expr, 4003); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,49,71,252,5,7,159,32,20,97,158,16,1,20, -23,65,98,101,103,105,110,0,16,0,83,158,39,20,94,114,68,35,37,115,116, -120,108,111,99,1,29,2,11,11,10,10,10,32,80,158,32,32,20,97,158,16, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,65,252,188,6,159,32,20,98,158,16,1,20, +24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,68,35,37,115,116, +120,108,111,99,1,29,2,11,11,10,10,10,32,80,158,32,32,20,98,158,16, 2,30,3,2,2,68,108,111,99,45,105,110,115,112,4,254,1,30,5,2,2, 68,114,101,108,111,99,97,116,101,6,254,1,16,0,11,11,16,2,2,4,2, -6,34,11,16,3,71,115,121,110,116,97,120,45,99,97,115,101,7,72,115,121, -110,116,97,120,45,99,97,115,101,42,8,70,115,121,110,116,97,120,47,108,111, +6,34,11,16,3,72,115,121,110,116,97,120,45,99,97,115,101,42,7,71,115, +121,110,116,97,120,45,99,97,115,101,8,70,115,121,110,116,97,120,47,108,111, 99,9,16,3,11,11,11,16,3,2,7,2,8,2,9,32,35,95,16,5,93, -2,8,89,162,32,33,56,9,223,0,27,28,248,80,158,34,32,195,249,80,158, +2,7,89,162,32,33,56,9,223,0,27,28,248,80,158,34,32,195,249,80,158, 35,33,248,80,158,36,34,197,27,248,80,158,37,35,198,28,248,80,158,37,32, 193,249,80,158,38,33,248,80,158,39,34,195,27,248,80,158,40,35,196,28,248, 80,158,40,32,193,249,80,158,41,33,248,80,158,42,34,195,27,248,80,158,43, 35,196,28,248,80,158,43,32,193,249,80,158,44,33,248,80,158,45,34,195,27, 248,80,158,46,35,196,28,248,80,158,46,36,193,248,80,158,46,37,193,11,11, 11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27, -248,22,90,197,27,248,22,89,198,27,252,22,61,198,201,199,202,200,27,83,160, -41,32,40,38,250,22,209,83,160,41,33,43,38,250,22,209,83,160,41,34,46, -38,254,22,62,83,160,41,35,53,38,248,22,90,23,15,83,160,41,36,53,38, -248,22,78,23,15,248,22,89,23,15,248,22,87,23,15,248,22,52,23,15,83, -160,41,37,46,38,195,250,22,252,38,2,11,6,10,10,98,97,100,32,115,121, -110,116,97,120,197,32,20,97,158,16,6,30,10,65,35,37,115,116,120,11,69, +248,22,90,197,27,248,22,89,198,27,252,22,61,202,198,200,201,199,27,20,15, +159,40,32,38,250,22,209,20,15,159,43,33,38,250,22,209,20,15,159,46,34, +38,254,22,62,20,15,159,53,35,38,248,22,52,23,15,20,15,159,53,36,38, +248,22,90,23,15,248,22,87,23,15,248,22,89,23,15,248,22,78,23,15,20, +15,159,46,37,38,195,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121, +110,116,97,120,197,32,20,98,158,16,6,30,10,65,35,37,115,116,120,11,69, 115,116,120,45,112,97,105,114,63,12,11,30,13,2,11,67,99,111,110,115,47, 35,102,14,1,30,15,2,11,67,115,116,120,45,99,97,114,16,5,30,17,2, 11,67,115,116,120,45,99,100,114,18,6,30,19,2,11,69,115,116,120,45,108, 105,115,116,63,20,8,30,21,2,11,69,115,116,120,45,62,108,105,115,116,22, 4,16,6,18,16,2,95,66,115,114,99,116,97,103,23,34,93,8,252,53,7, 95,9,8,252,53,7,69,35,37,115,116,120,99,97,115,101,24,18,100,64,100, -101,115,116,25,41,97,40,10,32,11,16,26,2,6,2,2,67,45,100,101,102, -105,110,101,26,74,35,37,100,101,102,105,110,101,45,101,116,45,97,108,27,2, -9,2,2,2,4,2,2,66,115,121,110,116,97,120,28,2,24,74,45,100,101, -102,105,110,101,45,115,121,110,116,97,120,29,2,27,2,8,2,2,73,100,101, -102,105,110,101,45,115,116,114,117,99,116,30,2,27,2,7,2,2,64,119,104, -101,110,31,2,27,66,117,110,108,101,115,115,32,2,27,66,108,101,116,47,101, -99,33,2,27,73,115,121,110,116,97,120,45,99,97,115,101,42,42,34,2,24, -97,39,10,33,11,16,4,2,34,2,24,2,28,2,24,96,38,8,254,1,11, -16,0,16,4,37,11,63,115,116,120,35,3,1,7,101,110,118,50,54,49,50, -36,16,12,36,11,3,1,4,103,50,56,48,37,3,1,4,103,50,56,49,38, -3,1,4,103,50,56,50,39,3,1,4,103,50,56,51,40,3,1,4,103,50, -56,52,41,3,1,7,101,110,118,50,54,50,48,42,2,42,2,42,2,42,2, -42,16,12,35,11,61,95,43,64,115,116,120,101,44,62,107,108,45,64,105,100, -61,63,46,66,99,108,97,117,115,101,47,3,1,7,101,110,118,50,54,50,49, -48,2,48,2,48,2,48,2,48,18,158,63,99,116,120,49,41,18,158,2,34, -41,18,158,11,41,18,158,2,49,41,11,16,5,93,2,7,89,162,32,33,55, -9,223,0,27,28,248,80,158,34,32,195,249,80,158,35,33,248,80,158,36,34, -197,27,248,80,158,37,35,198,28,248,80,158,37,32,193,249,80,158,38,33,248, -80,158,39,34,195,27,248,80,158,40,35,196,28,248,80,158,40,32,193,249,80, -158,41,33,248,80,158,42,34,195,27,248,80,158,43,35,196,28,248,80,158,43, -36,193,248,80,158,43,37,193,11,11,11,11,28,192,27,248,22,52,194,27,248, -22,78,195,27,248,22,87,196,27,248,22,88,197,27,251,22,61,197,199,200,198, -27,83,160,41,32,39,38,250,22,209,83,160,41,33,42,38,250,22,209,83,160, -41,34,45,38,254,22,62,83,160,41,35,52,38,248,22,87,23,15,83,160,41, -36,52,38,248,22,78,23,15,248,22,88,23,15,83,160,41,37,52,38,248,22, -52,23,15,83,160,41,38,45,38,195,250,22,252,38,2,11,6,10,10,98,97, -100,32,115,121,110,116,97,120,197,32,20,97,158,16,6,2,10,2,13,2,15, -2,17,2,19,2,21,16,7,18,16,2,95,2,23,42,93,8,252,61,7,95, -9,8,252,61,7,2,24,18,100,2,25,46,40,39,38,16,4,45,11,2,35, -3,1,7,101,110,118,50,54,51,48,50,16,10,44,11,3,1,4,103,50,56, -53,51,3,1,4,103,50,56,54,52,3,1,4,103,50,56,55,53,3,1,4, -103,50,56,56,54,3,1,7,101,110,118,50,54,51,55,55,2,55,2,55,2, -55,16,10,43,11,2,43,2,44,2,45,2,47,3,1,7,101,110,118,50,54, -51,56,56,2,56,2,56,2,56,18,158,2,49,46,18,158,2,34,46,18,158, -11,46,18,158,79,109,111,100,117,108,101,45,105,100,101,110,116,105,102,105,101, -114,61,63,57,46,18,158,2,49,46,11,16,5,93,2,9,89,162,32,33,55, -9,223,0,27,28,248,80,158,34,32,195,249,80,158,35,33,248,80,158,36,34, -197,27,248,80,158,37,35,198,28,248,80,158,37,32,193,249,80,158,38,33,248, -80,158,39,34,195,27,248,80,158,40,35,196,28,248,80,158,40,32,193,249,80, -158,41,36,248,80,158,42,34,195,248,80,158,42,37,248,80,158,43,35,196,11, -11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,80,196,27,249, -22,61,195,196,27,83,160,41,32,38,38,250,22,209,83,160,41,33,41,38,250, -22,209,83,160,41,34,44,38,250,22,60,83,160,41,35,47,38,248,22,53,203, -250,22,209,83,160,41,36,50,38,249,22,60,83,160,41,37,52,38,248,22,52, -23,16,83,160,41,38,50,38,83,160,41,39,44,38,195,250,22,252,38,2,11, -6,10,10,98,97,100,32,115,121,110,116,97,120,197,32,20,97,158,16,6,2, -10,2,13,2,15,2,17,30,58,2,11,69,97,112,112,101,110,100,47,35,102, -59,0,30,60,2,11,71,115,116,120,45,110,117,108,108,47,35,102,61,9,16, -8,18,16,2,95,2,23,47,93,8,252,71,7,95,9,8,252,71,7,2,24, -18,100,2,25,51,40,39,38,16,4,50,11,2,35,3,1,7,101,110,118,50, -54,52,54,62,16,8,49,11,3,1,4,103,50,56,57,63,3,1,4,103,50, -57,48,64,3,1,4,103,50,57,49,65,3,1,7,101,110,118,50,54,53,50, -66,2,66,2,66,16,8,48,11,2,43,63,108,111,99,67,67,112,97,116,116, -101,114,110,68,3,1,7,101,110,118,50,54,53,51,69,2,69,2,69,18,158, -2,49,51,18,158,2,6,51,18,158,2,49,51,18,158,2,28,51,18,158,2, -49,51,18,158,2,49,51,11,94,83,159,32,93,80,159,32,32,33,247,22,252, -113,2,83,159,32,93,80,159,32,33,33,89,162,32,34,40,2,6,223,0,28, -248,22,215,194,27,250,22,209,198,248,22,210,199,197,251,22,232,196,199,80,159, -37,32,34,11,194,95,68,35,37,107,101,114,110,101,108,70,2,24,2,27,94, -2,70,2,24,0}; - EVAL_ONE_SIZED_STR((char *)expr, 1810); +101,115,116,25,41,98,40,10,32,11,94,159,74,35,37,100,101,102,105,110,101, +45,101,116,45,97,108,26,9,11,159,2,24,9,11,16,10,2,6,2,2,2, +4,2,2,2,7,2,2,2,8,2,2,2,9,2,2,98,39,10,33,11,93, +159,2,24,9,11,16,0,96,38,8,254,1,11,16,0,16,4,37,11,63,115, +116,120,27,3,1,7,101,110,118,50,54,49,50,28,16,12,36,11,3,1,4, +103,50,56,48,29,3,1,4,103,50,56,49,30,3,1,4,103,50,56,50,31, +3,1,4,103,50,56,51,32,3,1,4,103,50,56,52,33,3,1,7,101,110, +118,50,54,50,48,34,2,34,2,34,2,34,2,34,16,12,35,11,61,95,35, +64,115,116,120,101,36,62,107,108,37,64,105,100,61,63,38,66,99,108,97,117, +115,101,39,3,1,7,101,110,118,50,54,50,49,40,2,40,2,40,2,40,2, +40,18,158,63,99,116,120,41,41,18,158,73,115,121,110,116,97,120,45,99,97, +115,101,42,42,42,41,18,158,11,41,18,158,2,41,41,11,16,5,93,2,8, +89,162,32,33,55,9,223,0,27,28,248,80,158,34,32,195,249,80,158,35,33, +248,80,158,36,34,197,27,248,80,158,37,35,198,28,248,80,158,37,32,193,249, +80,158,38,33,248,80,158,39,34,195,27,248,80,158,40,35,196,28,248,80,158, +40,32,193,249,80,158,41,33,248,80,158,42,34,195,27,248,80,158,43,35,196, +28,248,80,158,43,36,193,248,80,158,43,37,193,11,11,11,11,28,192,27,248, +22,52,194,27,248,22,78,195,27,248,22,87,196,27,248,22,88,197,27,251,22, +61,200,197,198,199,27,20,15,159,39,32,38,250,22,209,20,15,159,42,33,38, +250,22,209,20,15,159,45,34,38,254,22,62,20,15,159,52,35,38,248,22,52, +23,15,20,15,159,52,36,38,248,22,88,23,15,248,22,87,23,15,20,15,159, +52,37,38,248,22,78,23,15,20,15,159,45,38,38,195,250,22,252,39,2,11, +6,10,10,98,97,100,32,115,121,110,116,97,120,197,32,20,98,158,16,6,2, +10,2,13,2,15,2,17,2,19,2,21,16,7,18,16,2,95,2,23,42,93, +8,252,61,7,95,9,8,252,61,7,2,24,18,100,2,25,46,40,39,38,16, +4,45,11,2,27,3,1,7,101,110,118,50,54,51,48,43,16,10,44,11,3, +1,4,103,50,56,53,44,3,1,4,103,50,56,54,45,3,1,4,103,50,56, +55,46,3,1,4,103,50,56,56,47,3,1,7,101,110,118,50,54,51,55,48, +2,48,2,48,2,48,16,10,43,11,2,35,2,36,2,37,2,39,3,1,7, +101,110,118,50,54,51,56,49,2,49,2,49,2,49,18,158,2,41,46,18,158, +2,42,46,18,158,11,46,18,158,79,109,111,100,117,108,101,45,105,100,101,110, +116,105,102,105,101,114,61,63,50,46,18,158,2,41,46,11,16,5,93,2,9, +89,162,32,33,55,9,223,0,27,28,248,80,158,34,32,195,249,80,158,35,33, +248,80,158,36,34,197,27,248,80,158,37,35,198,28,248,80,158,37,32,193,249, +80,158,38,33,248,80,158,39,34,195,27,248,80,158,40,35,196,28,248,80,158, +40,32,193,249,80,158,41,36,248,80,158,42,34,195,248,80,158,42,37,248,80, +158,43,35,196,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248, +22,80,196,27,249,22,61,195,196,27,20,15,159,38,32,38,250,22,209,20,15, +159,41,33,38,250,22,209,20,15,159,44,34,38,250,22,60,20,15,159,47,35, +38,248,22,53,203,250,22,209,20,15,159,50,36,38,249,22,60,20,15,159,52, +37,38,248,22,52,23,16,20,15,159,50,38,38,20,15,159,44,39,38,195,250, +22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,197,32,20, +98,158,16,6,2,10,2,13,2,15,2,17,30,51,2,11,69,97,112,112,101, +110,100,47,35,102,52,0,30,53,2,11,71,115,116,120,45,110,117,108,108,47, +35,102,54,9,16,8,18,16,2,95,2,23,47,93,8,252,71,7,95,9,8, +252,71,7,2,24,18,100,2,25,51,40,39,38,16,4,50,11,2,27,3,1, +7,101,110,118,50,54,52,54,55,16,8,49,11,3,1,4,103,50,56,57,56, +3,1,4,103,50,57,48,57,3,1,4,103,50,57,49,58,3,1,7,101,110, +118,50,54,53,50,59,2,59,2,59,16,8,48,11,2,35,63,108,111,99,60, +67,112,97,116,116,101,114,110,61,3,1,7,101,110,118,50,54,53,51,62,2, +62,2,62,18,158,2,41,51,18,158,2,6,51,18,158,2,41,51,18,158,66, +115,121,110,116,97,120,63,51,18,158,2,41,51,18,158,2,41,51,11,94,83, +159,32,93,80,159,32,32,33,247,22,252,114,2,83,159,32,93,80,159,32,33, +33,89,162,32,34,40,2,6,223,0,28,248,22,215,194,27,250,22,209,198,248, +22,210,199,197,251,22,232,196,199,80,159,37,32,34,11,194,95,68,35,37,107, +101,114,110,101,108,64,2,24,2,26,94,2,64,2,24,0}; + EVAL_ONE_SIZED_STR((char *)expr, 1737); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,49,115,252,66,10,159,32,20,97,158,16,1,20, -23,65,98,101,103,105,110,0,16,0,83,158,39,20,94,114,70,35,37,119,105, -116,104,45,115,116,120,1,29,2,11,11,10,10,10,32,80,158,32,32,20,97, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,87,252,135,8,159,32,20,98,158,16,1,20, +24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,70,35,37,119,105, +116,104,45,115,116,120,1,29,2,11,11,10,10,10,32,80,158,32,32,20,98, 158,16,7,30,3,2,2,76,119,105,116,104,45,115,121,110,116,97,120,45,102, 97,105,108,4,254,1,30,5,2,2,67,99,111,117,110,116,101,114,6,254,1, 30,7,2,2,73,97,112,112,101,110,100,45,110,117,109,98,101,114,8,254,1, @@ -1341,154 +1277,133 @@ 116,15,4,30,16,2,12,71,105,100,101,110,116,105,102,105,101,114,63,17,2, 16,0,11,11,16,3,2,8,2,6,2,4,35,11,16,2,2,10,71,119,105, 116,104,45,115,121,110,116,97,120,18,16,2,11,11,16,2,2,10,2,18,33, -34,93,16,5,93,2,18,89,162,32,33,56,9,223,0,27,249,22,209,83,160, -41,32,35,44,196,27,28,248,80,158,35,32,194,249,80,158,36,33,248,80,158, +34,93,16,5,93,2,18,89,162,32,33,56,9,223,0,27,249,22,209,20,15, +159,35,32,44,196,27,28,248,80,158,35,32,194,249,80,158,36,33,248,80,158, 37,34,196,27,248,80,158,38,35,197,28,248,80,158,38,32,193,28,248,80,158, 38,36,248,80,158,39,34,194,27,248,80,158,39,35,194,28,248,80,158,39,32, 193,249,80,158,40,33,248,80,158,41,34,195,27,248,80,158,42,35,196,28,248, 80,158,42,37,193,248,80,158,42,38,193,11,11,11,11,11,28,192,27,248,22, 52,194,27,248,22,78,195,27,248,22,80,196,249,80,158,39,39,200,27,249,22, -61,198,197,27,83,160,41,33,41,44,250,22,209,83,160,41,34,44,44,250,22, -209,83,160,41,35,47,44,249,22,56,83,160,41,36,49,44,201,83,160,41,37, -47,44,195,27,28,248,80,158,36,32,195,249,80,158,37,33,248,80,158,38,34, -197,27,248,80,158,39,35,198,28,248,80,158,39,32,193,249,80,158,40,40,27, -248,80,158,42,34,196,28,248,80,158,42,37,193,248,22,8,89,162,32,33,39, -9,224,10,1,27,249,22,2,89,162,32,33,45,9,224,4,5,249,80,158,35, -41,28,248,80,158,36,32,197,249,80,158,37,33,248,80,158,38,34,199,27,248, -80,158,39,35,200,28,248,80,158,39,32,193,249,80,158,40,33,248,80,158,41, -34,195,248,80,158,41,36,248,80,158,42,35,196,11,11,194,248,80,158,37,38, -196,28,248,22,57,193,21,94,9,9,248,80,158,35,42,193,11,27,248,80,158, -42,35,196,28,248,80,158,42,32,193,249,80,158,43,33,248,80,158,44,34,195, -27,248,80,158,45,35,196,28,248,80,158,45,37,193,248,80,158,45,38,193,11, -11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27, -248,22,90,197,27,248,22,89,198,27,248,22,216,27,83,160,41,38,43,44,250, -22,209,83,160,41,39,46,44,200,195,87,94,251,80,158,45,43,201,206,27,83, -160,41,40,46,44,250,22,209,83,160,41,41,49,44,204,195,9,27,249,22,2, -89,162,32,33,34,9,222,248,22,48,65,119,115,116,109,112,19,195,27,249,22, -2,89,162,32,33,36,9,222,250,22,209,195,64,104,101,114,101,20,195,196,27, -248,22,216,27,83,160,41,42,46,44,250,22,209,83,160,41,43,49,44,204,195, -250,22,209,83,160,41,44,47,44,250,22,59,63,108,101,116,21,251,22,2,89, -162,32,35,42,9,222,249,22,59,194,250,22,59,1,20,100,97,116,117,109,45, -62,115,121,110,116,97,120,45,111,98,106,101,99,116,22,249,22,59,72,113,117, -111,116,101,45,115,121,110,116,97,120,23,200,199,204,203,205,249,91,159,33,11, -20,12,95,33,192,89,162,32,34,57,64,108,111,111,112,24,226,21,13,14,0, -28,248,22,57,197,27,249,22,61,196,197,27,83,160,41,45,37,44,250,22,209, -83,160,41,46,40,44,250,22,209,83,160,41,47,43,44,249,22,56,83,160,41, -48,45,44,201,83,160,41,49,43,44,195,26,8,22,59,73,115,121,110,116,97, -120,45,99,97,115,101,42,42,25,11,10,248,22,52,205,9,79,109,111,100,117, -108,101,45,105,100,101,110,116,105,102,105,101,114,61,63,26,249,22,59,248,22, -52,23,16,249,204,248,22,53,23,17,248,22,53,23,18,249,22,59,65,95,101, -108,115,101,27,249,22,59,2,4,249,22,59,2,23,250,22,209,11,248,22,208, -248,22,52,23,24,248,22,52,23,23,202,200,23,16,250,22,252,38,2,11,6, -10,10,98,97,100,32,115,121,110,116,97,120,197,32,20,97,158,16,12,30,28, -2,12,69,115,116,120,45,112,97,105,114,63,29,11,30,30,2,12,67,99,111, -110,115,47,35,102,31,1,30,32,2,12,67,115,116,120,45,99,97,114,33,5, -30,34,2,12,67,115,116,120,45,99,100,114,35,6,30,36,2,12,71,115,116, -120,45,110,117,108,108,47,35,102,37,9,30,38,2,12,2,13,8,30,39,2, -12,2,15,4,30,40,68,35,37,115,116,120,108,111,99,41,68,114,101,108,111, -99,97,116,101,42,1,30,43,2,12,69,97,112,112,101,110,100,47,35,102,44, -0,30,45,2,12,73,115,116,120,45,99,104,101,99,107,47,101,115,99,46,7, -30,47,2,12,70,115,116,120,45,114,111,116,97,116,101,48,12,30,49,64,35, -37,115,99,50,74,103,101,116,45,109,97,116,99,104,45,118,97,114,115,51,0, -16,18,18,98,2,20,38,97,36,10,32,11,16,72,73,100,101,102,105,110,101, -45,115,116,114,117,99,116,52,74,35,37,100,101,102,105,110,101,45,101,116,45, -97,108,53,2,44,2,12,2,46,2,12,2,18,2,2,67,45,100,101,102,105, -110,101,54,2,53,71,115,121,110,116,97,120,45,99,97,115,101,55,2,41,2, -48,2,12,2,33,2,12,66,115,121,110,116,97,120,56,69,35,37,115,116,120, -99,97,115,101,57,71,115,116,120,45,114,111,116,97,116,101,42,58,2,12,2, -35,2,12,74,115,112,108,105,116,45,115,116,120,45,108,105,115,116,59,2,12, -2,8,2,2,2,31,2,12,2,37,2,12,2,17,2,12,72,115,121,110,116, -97,120,45,99,97,115,101,42,60,2,41,64,119,104,101,110,61,2,53,2,29, -2,12,69,115,116,120,45,110,117,108,108,63,62,2,12,66,117,110,108,101,115, -115,63,2,53,66,108,101,116,47,101,99,64,2,53,2,25,2,57,64,99,111, -110,100,65,66,35,37,99,111,110,100,66,2,10,2,2,70,113,117,97,115,105, -113,117,111,116,101,67,71,35,37,113,113,45,97,110,100,45,111,114,68,70,115, -121,110,116,97,120,47,108,111,99,69,2,41,63,97,110,100,70,2,68,2,13, -2,12,2,6,2,2,2,15,2,12,62,111,114,71,2,68,74,45,100,101,102, -105,110,101,45,115,121,110,116,97,120,72,2,53,2,4,2,2,71,115,116,120, -45,118,101,99,116,111,114,63,73,2,12,74,115,116,120,45,118,101,99,116,111, -114,45,114,101,102,74,2,12,97,35,10,33,11,16,36,2,70,2,68,72,115, -116,120,45,109,101,109,113,45,112,111,115,75,2,50,2,71,2,68,72,110,111, -45,101,108,108,105,112,115,101,115,63,76,2,50,2,69,2,41,1,20,115,121, -110,116,97,120,45,109,97,112,112,105,110,103,45,100,101,112,116,104,77,2,50, -79,109,97,107,101,45,115,121,110,116,97,120,45,109,97,112,112,105,110,103,78, -2,50,2,56,2,57,1,21,115,121,110,116,97,120,45,109,97,112,112,105,110, -103,45,118,97,108,118,97,114,79,2,50,2,65,2,66,75,115,121,110,116,97, -120,45,109,97,112,112,105,110,103,63,80,2,50,74,109,97,107,101,45,109,97, -116,99,104,38,101,110,118,81,2,50,2,55,2,41,2,60,2,41,2,51,2, -50,2,67,2,68,72,109,97,107,101,45,112,101,120,112,97,110,100,82,2,50, -2,25,2,57,96,34,8,254,1,11,16,0,16,4,33,11,61,120,83,3,1, -7,101,110,118,50,54,54,52,84,18,16,2,95,66,115,114,99,116,97,103,85, -39,93,8,252,104,7,95,9,8,252,104,7,2,57,18,100,64,100,101,115,116, -86,42,36,35,34,33,16,8,41,11,3,1,4,103,50,57,55,87,3,1,4, -103,50,57,56,88,3,1,4,103,50,57,57,89,3,1,7,101,110,118,50,54, -55,49,90,2,90,2,90,16,8,40,11,61,95,91,62,101,49,92,62,101,50, -93,3,1,7,101,110,118,50,54,55,50,94,2,94,2,94,18,158,63,99,116, -120,95,42,18,158,2,0,42,18,158,2,95,42,18,16,2,95,2,85,43,93, -8,252,106,7,95,9,8,252,106,7,2,57,18,100,2,86,46,36,35,34,33, -16,12,45,11,3,1,4,103,50,57,50,96,3,1,4,103,50,57,51,97,3, -1,4,103,50,57,52,98,3,1,4,103,50,57,53,99,3,1,4,103,50,57, -54,100,3,1,7,101,110,118,50,54,56,56,101,2,101,2,101,2,101,2,101, -16,12,44,11,2,91,63,111,117,116,102,62,105,110,103,2,92,2,93,3,1, -7,101,110,118,50,54,56,57,104,2,104,2,104,2,104,2,104,18,16,2,95, -2,85,47,93,8,252,122,7,95,9,8,252,122,7,2,57,18,101,2,86,49, -36,35,34,33,45,44,16,4,48,11,63,105,110,115,105,3,1,7,101,110,118, -50,54,57,53,106,18,16,2,95,2,85,50,93,8,252,123,7,95,9,8,252, -123,7,2,57,18,158,2,86,49,18,102,2,20,52,36,35,34,33,45,44,48, -16,8,51,11,64,116,109,112,115,107,65,104,101,114,101,115,108,64,111,117,116, -115,109,3,1,7,101,110,118,50,54,57,56,110,2,110,2,110,18,16,2,95, -2,85,53,93,8,252,128,7,95,9,8,252,128,7,2,57,18,103,2,86,55, -36,35,34,33,45,44,48,51,16,4,54,11,2,24,3,1,7,101,110,118,50, -55,48,51,111,18,158,2,95,55,18,158,2,0,55,18,158,2,95,55,11,96, -83,159,32,93,80,159,32,32,33,89,162,32,33,36,2,4,222,250,22,252,38, -2,2,18,6,20,20,98,105,110,100,105,110,103,32,109,97,116,99,104,32,102, -97,105,108,101,100,195,83,159,32,93,80,159,32,33,34,32,83,159,32,93,80, -159,32,34,33,89,162,32,33,38,2,8,223,0,87,94,83,160,34,11,80,159, -32,33,34,248,22,170,80,159,33,33,34,248,22,42,250,22,252,184,1,6,4, -4,126,97,126,115,197,80,159,36,33,34,83,159,32,93,80,159,32,35,33,89, -162,32,33,37,2,10,223,0,87,94,28,248,80,158,33,36,194,12,250,22,252, -39,2,2,10,6,11,11,115,121,110,116,97,120,32,112,97,105,114,196,27,248, -80,158,34,37,195,249,22,2,89,162,32,33,39,9,223,3,248,247,22,252,84, -3,28,248,22,41,195,249,22,209,11,248,80,159,36,34,34,197,28,248,22,252, -136,1,195,249,22,209,11,248,80,159,36,34,34,197,28,248,80,158,34,38,195, -249,22,209,11,248,80,159,36,34,34,248,22,210,198,249,22,209,11,248,80,159, -36,34,34,64,116,101,109,112,112,194,97,68,35,37,107,101,114,110,101,108,113, -2,12,2,41,74,35,37,115,109,97,108,108,45,115,99,104,101,109,101,114,2, -57,98,2,113,2,57,2,41,2,50,2,68,2,66,0}; - EVAL_ONE_SIZED_STR((char *)expr, 2639); +61,197,198,27,20,15,159,41,33,44,250,22,209,20,15,159,44,34,44,250,22, +209,20,15,159,47,35,44,250,22,62,20,15,159,50,36,44,248,22,53,203,248, +22,52,203,20,15,159,47,37,44,195,27,28,248,80,158,36,32,195,249,80,158, +37,33,248,80,158,38,34,197,27,248,80,158,39,35,198,28,248,80,158,39,32, +193,249,80,158,40,40,27,248,80,158,42,34,196,28,248,80,158,42,37,193,248, +22,9,89,162,32,33,39,9,224,10,1,27,249,22,2,89,162,32,33,45,9, +224,4,5,249,80,158,35,41,28,248,80,158,36,32,197,249,80,158,37,33,248, +80,158,38,34,199,27,248,80,158,39,35,200,28,248,80,158,39,32,193,249,80, +158,40,33,248,80,158,41,34,195,248,80,158,41,36,248,80,158,42,35,196,11, +11,194,248,80,158,37,38,196,28,248,22,57,193,21,94,9,9,248,80,158,35, +42,193,11,27,248,80,158,42,35,196,28,248,80,158,42,32,193,249,80,158,43, +33,248,80,158,44,34,195,27,248,80,158,45,35,196,28,248,80,158,45,37,193, +248,80,158,45,38,193,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78, +195,27,248,22,87,196,27,248,22,90,197,27,248,22,89,198,27,248,22,216,27, +20,15,159,43,38,44,250,22,209,20,15,159,46,39,44,200,195,87,94,251,80, +158,45,43,201,206,27,20,15,159,46,40,44,250,22,209,20,15,159,49,41,44, +204,195,9,27,249,22,2,89,162,32,33,34,9,222,248,22,48,65,119,115,116, +109,112,19,195,27,249,22,2,89,162,32,33,36,9,222,250,22,209,195,64,104, +101,114,101,20,195,196,27,248,22,216,27,20,15,159,46,42,44,250,22,209,20, +15,159,49,43,44,204,195,250,22,209,20,15,159,47,44,44,250,22,59,63,108, +101,116,21,251,22,2,89,162,32,35,42,9,222,249,22,59,194,250,22,59,1, +20,100,97,116,117,109,45,62,115,121,110,116,97,120,45,111,98,106,101,99,116, +22,249,22,59,72,113,117,111,116,101,45,115,121,110,116,97,120,23,200,199,204, +203,205,249,91,159,33,11,20,12,95,33,192,89,162,32,34,57,64,108,111,111, +112,24,226,21,13,14,0,28,248,22,57,197,27,249,22,61,197,196,27,20,15, +159,37,45,44,250,22,209,20,15,159,40,46,44,250,22,209,20,15,159,43,47, +44,250,22,62,20,15,159,46,48,44,248,22,53,203,248,22,52,203,20,15,159, +43,49,44,195,26,8,22,59,73,115,121,110,116,97,120,45,99,97,115,101,42, +42,25,11,10,248,22,52,205,9,79,109,111,100,117,108,101,45,105,100,101,110, +116,105,102,105,101,114,61,63,26,249,22,59,248,22,52,23,16,249,204,248,22, +53,23,17,248,22,53,23,18,249,22,59,65,95,101,108,115,101,27,249,22,59, +2,4,249,22,59,2,23,250,22,209,11,248,22,208,248,22,52,23,24,248,22, +52,23,23,202,200,23,16,250,22,252,39,2,11,6,10,10,98,97,100,32,115, +121,110,116,97,120,197,32,20,98,158,16,12,30,28,2,12,69,115,116,120,45, +112,97,105,114,63,29,11,30,30,2,12,67,99,111,110,115,47,35,102,31,1, +30,32,2,12,67,115,116,120,45,99,97,114,33,5,30,34,2,12,67,115,116, +120,45,99,100,114,35,6,30,36,2,12,71,115,116,120,45,110,117,108,108,47, +35,102,37,9,30,38,2,12,2,13,8,30,39,2,12,2,15,4,30,40,68, +35,37,115,116,120,108,111,99,41,68,114,101,108,111,99,97,116,101,42,1,30, +43,2,12,69,97,112,112,101,110,100,47,35,102,44,0,30,45,2,12,73,115, +116,120,45,99,104,101,99,107,47,101,115,99,46,7,30,47,2,12,70,115,116, +120,45,114,111,116,97,116,101,48,12,30,49,64,35,37,115,99,50,74,103,101, +116,45,109,97,116,99,104,45,118,97,114,115,51,0,16,18,18,98,2,20,38, +98,36,10,32,11,96,159,69,35,37,115,116,120,99,97,115,101,52,9,11,159, +74,35,37,115,109,97,108,108,45,115,99,104,101,109,101,53,9,11,159,2,41, +9,11,159,2,12,9,11,16,10,2,18,2,2,2,6,2,2,2,10,2,2, +2,8,2,2,2,4,2,2,98,35,10,33,11,97,159,66,35,37,99,111,110, +100,54,9,11,159,71,35,37,113,113,45,97,110,100,45,111,114,55,9,11,159, +2,50,9,11,159,2,41,9,11,159,2,52,9,11,16,0,96,34,8,254,1, +11,16,0,16,4,33,11,61,120,56,3,1,7,101,110,118,50,54,54,52,57, +18,16,2,95,66,115,114,99,116,97,103,58,39,93,8,252,104,7,95,9,8, +252,104,7,2,52,18,100,64,100,101,115,116,59,42,36,35,34,33,16,8,41, +11,3,1,4,103,50,57,55,60,3,1,4,103,50,57,56,61,3,1,4,103, +50,57,57,62,3,1,7,101,110,118,50,54,55,49,63,2,63,2,63,16,8, +40,11,61,95,64,62,101,49,65,62,101,50,66,3,1,7,101,110,118,50,54, +55,50,67,2,67,2,67,18,158,63,99,116,120,68,42,18,158,2,0,42,18, +158,2,68,42,18,16,2,95,2,58,43,93,8,252,106,7,95,9,8,252,106, +7,2,52,18,100,2,59,46,36,35,34,33,16,12,45,11,3,1,4,103,50, +57,50,69,3,1,4,103,50,57,51,70,3,1,4,103,50,57,52,71,3,1, +4,103,50,57,53,72,3,1,4,103,50,57,54,73,3,1,7,101,110,118,50, +54,56,56,74,2,74,2,74,2,74,2,74,16,12,44,11,2,64,63,111,117, +116,75,62,105,110,76,2,65,2,66,3,1,7,101,110,118,50,54,56,57,77, +2,77,2,77,2,77,2,77,18,16,2,95,2,58,47,93,8,252,122,7,95, +9,8,252,122,7,2,52,18,101,2,59,49,36,35,34,33,45,44,16,4,48, +11,63,105,110,115,78,3,1,7,101,110,118,50,54,57,53,79,18,16,2,95, +2,58,50,93,8,252,123,7,95,9,8,252,123,7,2,52,18,158,2,59,49, +18,102,2,20,52,36,35,34,33,45,44,48,16,8,51,11,64,116,109,112,115, +80,65,104,101,114,101,115,81,64,111,117,116,115,82,3,1,7,101,110,118,50, +54,57,56,83,2,83,2,83,18,16,2,95,2,58,53,93,8,252,128,7,95, +9,8,252,128,7,2,52,18,103,2,59,55,36,35,34,33,45,44,48,51,16, +4,54,11,2,24,3,1,7,101,110,118,50,55,48,51,84,18,158,2,68,55, +18,158,2,0,55,18,158,2,68,55,11,96,83,159,32,93,80,159,32,32,33, +89,162,32,33,36,2,4,222,250,22,252,39,2,2,18,6,20,20,98,105,110, +100,105,110,103,32,109,97,116,99,104,32,102,97,105,108,101,100,195,83,159,32, +93,80,159,32,33,34,32,83,159,32,93,80,159,32,34,33,89,162,32,33,38, +2,8,223,0,87,94,83,160,34,11,80,159,32,33,34,248,22,170,80,159,33, +33,34,248,22,42,250,22,252,184,1,6,4,4,126,97,126,115,197,80,159,36, +33,34,83,159,32,93,80,159,32,35,33,89,162,32,33,37,2,10,223,0,87, +94,28,248,80,158,33,36,194,12,250,22,252,40,2,2,10,6,11,11,115,121, +110,116,97,120,32,112,97,105,114,196,27,248,80,158,34,37,195,249,22,2,89, +162,32,33,39,9,223,3,248,247,22,252,85,3,28,248,22,41,195,249,22,209, +11,248,80,159,36,34,34,197,28,248,22,252,136,1,195,249,22,209,11,248,80, +159,36,34,34,197,28,248,80,158,34,38,195,249,22,209,11,248,80,159,36,34, +34,248,22,210,198,249,22,209,11,248,80,159,36,34,34,64,116,101,109,112,85, +194,97,68,35,37,107,101,114,110,101,108,86,2,12,2,41,2,53,2,52,98, +2,86,2,52,2,41,2,50,2,55,2,54,0}; + EVAL_ONE_SIZED_STR((char *)expr, 2196); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,49,192,252,55,32,159,32,20,97,158,16,1,20, -23,65,98,101,103,105,110,0,16,0,83,158,39,20,94,114,76,35,37,115,116, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,188,252,5,31,159,32,20,98,158,16,1,20, +24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,76,35,37,115,116, 120,99,97,115,101,45,115,99,104,101,109,101,1,29,2,11,11,10,10,10,32, -80,158,32,32,20,97,158,16,2,30,3,2,2,1,26,99,104,101,99,107,45, +80,158,32,32,20,98,158,16,2,30,3,2,2,1,26,99,104,101,99,107,45, 100,117,112,108,105,99,97,116,101,45,105,100,101,110,116,105,102,105,101,114,4, 254,1,30,5,65,35,37,115,116,120,6,71,105,100,101,110,116,105,102,105,101, 114,63,7,2,16,0,11,11,16,0,32,11,16,23,2,4,1,20,103,101,110, -101,114,97,116,101,45,116,101,109,112,111,114,97,114,105,101,115,8,63,97,110, -100,9,67,45,100,101,102,105,110,101,10,62,111,114,11,70,115,121,110,116,97, -120,47,108,111,99,12,72,108,101,116,45,115,121,110,116,97,120,101,115,13,71, -119,105,116,104,45,115,121,110,116,97,120,14,64,99,111,110,100,15,66,115,121, -110,116,97,120,16,72,115,121,110,116,97,120,45,114,117,108,101,115,17,75,108, -101,116,114,101,99,45,115,121,110,116,97,120,101,115,18,73,100,101,102,105,110, -101,45,115,116,114,117,99,116,19,72,115,121,110,116,97,120,45,99,97,115,101, -42,20,75,115,121,110,116,97,120,45,105,100,45,114,117,108,101,115,21,73,108, -101,116,114,101,99,45,115,121,110,116,97,120,22,71,115,121,110,116,97,120,45, -99,97,115,101,23,64,119,104,101,110,24,70,108,101,116,45,115,121,110,116,97, -120,25,66,117,110,108,101,115,115,26,70,113,117,97,115,105,113,117,111,116,101, -27,74,45,100,101,102,105,110,101,45,115,121,110,116,97,120,28,66,108,101,116, -47,101,99,29,16,23,11,70,35,37,119,105,116,104,45,115,116,120,30,71,35, -37,113,113,45,97,110,100,45,111,114,31,74,35,37,100,101,102,105,110,101,45, -101,116,45,97,108,32,2,31,68,35,37,115,116,120,108,111,99,33,11,2,30, -66,35,37,99,111,110,100,34,69,35,37,115,116,120,99,97,115,101,35,11,11, -2,32,2,33,11,11,2,33,2,32,11,2,32,2,31,2,32,2,32,16,23, +101,114,97,116,101,45,116,101,109,112,111,114,97,114,105,101,115,8,73,108,101, +116,114,101,99,45,115,121,110,116,97,120,9,63,97,110,100,10,71,115,121,110, +116,97,120,45,99,97,115,101,11,72,108,101,116,45,115,121,110,116,97,120,101, +115,12,72,115,121,110,116,97,120,45,99,97,115,101,42,13,66,117,110,108,101, +115,115,14,66,115,121,110,116,97,120,15,72,115,121,110,116,97,120,45,114,117, +108,101,115,16,73,100,101,102,105,110,101,45,115,116,114,117,99,116,17,66,108, +101,116,47,101,99,18,64,119,104,101,110,19,67,45,100,101,102,105,110,101,20, +75,115,121,110,116,97,120,45,105,100,45,114,117,108,101,115,21,74,45,100,101, +102,105,110,101,45,115,121,110,116,97,120,22,70,115,121,110,116,97,120,47,108, +111,99,23,70,108,101,116,45,115,121,110,116,97,120,24,62,111,114,25,64,99, +111,110,100,26,75,108,101,116,114,101,99,45,115,121,110,116,97,120,101,115,27, +70,113,117,97,115,105,113,117,111,116,101,28,71,119,105,116,104,45,115,121,110, +116,97,120,29,16,23,11,70,35,37,119,105,116,104,45,115,116,120,30,11,71, +35,37,113,113,45,97,110,100,45,111,114,31,68,35,37,115,116,120,108,111,99, +32,11,2,32,74,35,37,100,101,102,105,110,101,45,101,116,45,97,108,33,69, +35,37,115,116,120,99,97,115,101,34,11,2,33,2,33,2,33,2,33,11,2, +33,2,32,11,2,31,66,35,37,99,111,110,100,35,11,2,31,2,30,16,23, 2,4,2,8,2,9,2,10,2,11,2,12,2,13,2,14,2,15,2,16,2, 17,2,18,2,19,2,20,2,21,2,22,2,23,2,24,2,25,2,26,2,27, -2,28,2,29,34,55,98,16,5,93,2,18,89,162,32,33,50,9,223,0,27, -249,22,209,83,160,41,32,35,44,196,27,28,248,80,158,35,32,194,249,80,158, +2,28,2,29,34,55,98,16,5,93,2,27,89,162,32,33,50,9,223,0,27, +249,22,209,20,15,159,35,32,44,196,27,28,248,80,158,35,32,194,249,80,158, 36,33,248,80,158,37,34,196,27,248,80,158,38,35,197,28,248,80,158,38,32, 193,249,80,158,39,36,27,248,80,158,41,34,196,28,248,80,158,41,37,193,248, -22,8,89,162,32,33,39,9,224,9,1,27,249,22,2,89,162,32,33,47,9, +22,9,89,162,32,33,39,9,224,9,1,27,249,22,2,89,162,32,33,47,9, 224,4,5,249,80,158,35,38,28,248,80,158,36,32,197,249,80,158,37,36,27, 248,80,158,39,34,200,28,248,80,158,39,37,193,248,22,59,248,80,158,40,39, 194,11,27,248,80,158,39,35,200,28,248,80,158,39,32,193,249,80,158,40,33, @@ -1498,22 +1413,22 @@ 158,43,34,195,27,248,80,158,44,35,196,28,248,80,158,44,37,193,248,80,158, 44,39,193,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248, 22,87,196,27,248,22,90,197,27,248,22,89,198,249,80,158,41,42,202,27,251, -22,61,202,199,201,200,27,83,160,41,33,43,44,91,159,33,11,90,161,33,32, -11,83,160,38,32,33,11,247,248,22,8,89,162,32,33,40,9,226,13,2,3, +22,61,201,202,200,199,27,20,15,159,43,33,44,91,159,33,11,90,161,33,32, +11,83,160,38,32,33,11,247,248,22,9,89,162,32,33,40,9,226,13,2,3, 1,250,22,31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10,247,22, -252,183,2,248,22,252,183,2,89,162,32,33,36,9,224,3,1,248,193,89,162, -32,32,36,9,224,2,3,28,248,22,252,180,2,193,248,22,252,185,2,193,249, +252,184,2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193,89,162, +32,32,36,9,224,2,3,28,248,22,252,181,2,193,248,22,252,186,2,193,249, 80,158,35,43,21,98,1,22,108,101,116,114,101,99,45,115,121,110,116,97,120, 101,115,43,118,97,108,117,101,115,36,94,94,94,62,105,100,37,63,46,46,46, 38,64,101,120,112,114,39,2,38,9,65,98,111,100,121,49,40,64,98,111,100, -121,41,2,38,83,160,41,34,35,44,89,162,32,32,51,9,225,6,5,4,27, -250,22,209,83,160,41,35,38,44,250,22,209,83,160,41,36,41,44,252,22,62, -83,160,41,37,46,44,250,22,2,89,162,33,33,41,9,223,17,250,22,209,83, -160,41,38,35,44,249,22,60,248,22,52,199,248,22,78,199,83,160,41,39,35, -44,248,22,52,23,16,248,22,87,23,16,83,160,41,40,46,44,248,22,88,205, -248,22,78,205,83,160,41,41,41,44,197,89,162,32,32,33,9,223,0,192,89, -162,32,32,34,9,223,3,248,22,252,183,2,208,250,22,252,38,2,11,6,10, -10,98,97,100,32,115,121,110,116,97,120,196,32,20,97,158,16,12,30,42,2, +121,41,2,38,20,15,159,35,34,44,89,162,32,32,51,9,225,6,5,4,27, +250,22,209,20,15,159,38,35,44,250,22,209,20,15,159,41,36,44,252,22,62, +20,15,159,46,37,44,250,22,2,89,162,33,33,41,9,223,17,250,22,209,20, +15,159,35,38,44,249,22,60,248,22,52,199,248,22,78,199,20,15,159,35,39, +44,248,22,78,23,16,248,22,52,23,16,20,15,159,46,40,44,248,22,87,205, +248,22,88,205,20,15,159,41,41,44,197,89,162,32,32,33,9,223,0,192,89, +162,32,32,34,9,223,3,248,22,252,184,2,208,250,22,252,39,2,11,6,10, +10,98,97,100,32,115,121,110,116,97,120,196,32,20,98,158,16,12,30,42,2, 6,69,115,116,120,45,112,97,105,114,63,43,11,30,44,2,6,67,99,111,110, 115,47,35,102,45,1,30,46,2,6,67,115,116,120,45,99,97,114,47,5,30, 48,2,6,67,115,116,120,45,99,100,114,49,6,30,50,2,6,69,97,112,112, @@ -1521,383 +1436,368 @@ 63,53,8,30,54,2,6,73,115,116,120,45,99,104,101,99,107,47,101,115,99, 55,7,30,56,2,6,69,115,116,120,45,62,108,105,115,116,57,4,30,58,2, 6,71,115,116,120,45,110,117,108,108,47,35,102,59,9,30,60,2,6,70,115, -116,120,45,114,111,116,97,116,101,61,12,30,62,2,33,68,114,101,108,111,99, -97,116,101,63,1,30,64,2,35,1,20,101,108,108,105,112,115,105,115,45,99, +116,120,45,114,111,116,97,116,101,61,12,30,62,2,32,68,114,101,108,111,99, +97,116,101,63,1,30,64,2,34,1,20,101,108,108,105,112,115,105,115,45,99, 111,117,110,116,45,101,114,114,111,114,65,0,16,10,18,98,64,104,101,114,101, -66,38,97,36,10,32,11,16,80,2,19,2,32,2,51,2,6,2,55,2,6, -2,14,2,30,2,10,2,32,2,23,2,33,2,61,2,6,2,47,2,6,2, -16,2,35,71,115,116,120,45,114,111,116,97,116,101,42,67,2,6,2,49,2, -6,2,28,2,32,2,25,2,2,2,45,2,6,74,115,112,108,105,116,45,115, -116,120,45,108,105,115,116,68,2,6,2,59,2,6,2,15,2,34,2,20,2, -33,2,24,2,32,2,18,2,2,2,43,2,6,69,115,116,120,45,110,117,108, -108,63,69,2,6,2,26,2,32,2,7,2,6,2,29,2,32,73,115,121,110, -116,97,120,45,99,97,115,101,42,42,70,2,35,2,22,2,2,2,8,2,30, -2,27,2,31,2,12,2,33,2,13,2,2,2,9,2,31,2,53,2,6,2, -4,2,2,2,17,2,2,2,57,2,6,2,11,2,31,2,21,2,2,71,115, -116,120,45,118,101,99,116,111,114,63,71,2,6,74,115,116,120,45,118,101,99, -116,111,114,45,114,101,102,72,2,6,97,35,10,33,11,16,66,2,19,2,32, -2,51,2,6,2,55,2,6,2,14,2,30,2,10,2,32,2,23,2,33,2, -61,2,6,2,47,2,6,2,16,2,35,2,67,2,6,2,49,2,6,2,28, -2,32,2,45,2,6,2,68,2,6,2,59,2,6,2,15,2,34,2,20,2, -33,2,24,2,32,2,43,2,6,2,69,2,6,2,26,2,32,2,7,2,6, -2,29,2,32,2,70,2,35,2,8,2,30,2,27,2,31,2,12,2,33,2, -9,2,31,2,53,2,6,2,57,2,6,2,11,2,31,2,71,2,6,2,72, -2,6,96,34,8,254,1,11,16,0,16,4,33,11,63,115,116,120,73,3,1, -7,101,110,118,50,55,49,55,74,18,16,2,95,66,115,114,99,116,97,103,75, -39,93,8,252,163,7,95,9,8,252,163,7,2,35,18,16,2,99,2,38,44, -93,8,252,163,7,16,6,43,11,61,114,76,63,115,114,99,77,3,1,7,101, -110,118,50,55,51,56,78,2,78,16,4,42,11,64,101,120,110,104,79,3,1, -7,101,110,118,50,55,51,57,80,16,4,41,11,63,101,115,99,81,3,1,7, -101,110,118,50,55,52,48,82,16,4,40,11,63,101,120,110,83,3,1,7,101, -110,118,50,55,52,50,84,95,9,8,252,163,7,2,35,18,100,64,100,101,115, -116,85,47,36,35,34,33,16,12,46,11,3,1,4,103,51,48,48,86,3,1, -4,103,51,48,49,87,3,1,4,103,51,48,50,88,3,1,4,103,51,48,51, -89,3,1,4,103,51,48,52,90,3,1,7,101,110,118,50,55,51,48,91,2, -91,2,91,2,91,2,91,16,12,45,11,61,95,92,2,37,2,39,2,40,2, -41,3,1,7,101,110,118,50,55,51,49,93,2,93,2,93,2,93,2,93,18, -158,63,99,116,120,94,47,18,158,2,36,47,18,158,2,94,47,18,158,2,94, -47,18,158,9,47,18,158,2,94,47,11,16,5,93,2,22,89,162,32,33,50, -9,223,0,27,249,22,209,83,160,41,32,35,44,196,27,28,248,80,158,35,32, -194,249,80,158,36,33,248,80,158,37,34,196,27,248,80,158,38,35,197,28,248, -80,158,38,32,193,249,80,158,39,36,27,248,80,158,41,34,196,28,248,80,158, -41,37,193,248,22,8,89,162,32,33,39,9,224,9,1,27,249,22,2,89,162, -32,33,45,9,224,4,5,249,80,158,35,38,28,248,80,158,36,32,197,249,80, -158,37,33,248,80,158,38,34,199,27,248,80,158,39,35,200,28,248,80,158,39, -32,193,249,80,158,40,33,248,80,158,41,34,195,248,80,158,41,39,248,80,158, -42,35,196,11,11,194,248,80,158,37,40,196,28,248,22,57,193,21,94,9,9, -248,80,158,35,41,193,11,27,248,80,158,41,35,196,28,248,80,158,41,32,193, -249,80,158,42,33,248,80,158,43,34,195,27,248,80,158,44,35,196,28,248,80, -158,44,37,193,248,80,158,44,40,193,11,11,11,11,28,192,27,248,22,52,194, -27,248,22,78,195,27,248,22,87,196,27,248,22,90,197,27,248,22,89,198,249, -80,158,41,42,202,27,251,22,61,202,199,201,200,27,83,160,41,33,43,44,91, -159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,8,89,162,32, -33,40,9,226,13,2,3,1,250,22,31,89,162,32,32,36,9,225,6,3,7, -90,161,33,33,10,247,22,252,183,2,248,22,252,183,2,89,162,32,33,36,9, -224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22,252,180,2,193, -248,22,252,185,2,193,249,80,158,35,43,21,98,2,36,94,94,93,2,37,2, -39,2,38,9,2,40,2,41,2,38,83,160,41,34,35,44,89,162,32,32,51, -9,225,6,5,4,27,250,22,209,83,160,41,35,38,44,250,22,209,83,160,41, -36,41,44,252,22,62,83,160,41,37,46,44,250,22,2,89,162,33,33,45,9, -223,17,250,22,209,83,160,41,38,35,44,249,22,60,250,22,209,83,160,41,39, -40,44,248,22,60,248,22,52,203,83,160,41,40,40,44,248,22,78,199,83,160, -41,41,35,44,248,22,52,23,16,248,22,87,23,16,83,160,41,42,46,44,248, -22,88,205,248,22,78,205,83,160,41,43,41,44,197,89,162,32,32,33,9,223, -0,192,89,162,32,32,34,9,223,3,248,22,252,183,2,208,250,22,252,38,2, -11,6,10,10,98,97,100,32,115,121,110,116,97,120,196,32,20,97,158,16,12, -2,42,2,44,2,46,2,48,2,50,2,52,2,54,2,58,2,56,2,60,2, -62,2,64,16,12,18,98,2,66,49,36,35,34,16,4,48,11,2,73,3,1, -7,101,110,118,50,55,53,49,95,18,16,2,95,2,75,50,93,8,252,178,7, -95,9,8,252,178,7,2,35,18,16,2,99,2,38,55,93,8,252,178,7,16, -6,54,11,2,76,2,77,3,1,7,101,110,118,50,55,55,49,96,2,96,16, -4,53,11,2,79,3,1,7,101,110,118,50,55,55,50,97,16,4,52,11,2, -81,3,1,7,101,110,118,50,55,55,51,98,16,4,51,11,2,83,3,1,7, -101,110,118,50,55,55,53,99,95,9,8,252,178,7,2,35,18,100,2,85,58, -36,35,34,48,16,12,57,11,3,1,4,103,51,48,53,100,3,1,4,103,51, -48,54,101,3,1,4,103,51,48,55,102,3,1,4,103,51,48,56,103,3,1, -4,103,51,48,57,104,3,1,7,101,110,118,50,55,54,51,105,2,105,2,105, -2,105,2,105,16,12,56,11,2,92,2,37,2,39,2,40,2,41,3,1,7, -101,110,118,50,55,54,52,106,2,106,2,106,2,106,2,106,18,158,2,94,58, -18,158,2,36,58,18,158,2,94,58,18,158,2,94,58,18,158,2,94,58,18, -158,2,94,58,18,158,9,58,18,158,2,94,58,11,16,5,93,2,13,89,162, -32,33,52,9,223,0,27,249,22,209,83,160,41,32,35,47,196,27,28,248,80, +66,38,98,36,10,32,11,97,159,2,32,9,11,159,2,30,9,11,159,2,34, +9,11,159,2,6,9,11,159,74,35,37,115,109,97,108,108,45,115,99,104,101, +109,101,67,9,11,16,14,2,9,2,2,2,4,2,2,2,12,2,2,2,16, +2,2,2,21,2,2,2,24,2,2,2,27,2,2,98,35,10,33,11,97,159, +2,32,9,11,159,2,30,9,11,159,2,34,9,11,159,2,6,9,11,159,2, +67,9,11,16,0,96,34,8,254,1,11,16,0,16,4,33,11,63,115,116,120, +68,3,1,7,101,110,118,50,55,49,55,69,18,16,2,95,66,115,114,99,116, +97,103,70,39,93,8,252,163,7,95,9,8,252,163,7,2,34,18,16,2,99, +2,38,44,93,8,252,163,7,16,6,43,11,61,114,71,63,115,114,99,72,3, +1,7,101,110,118,50,55,51,56,73,2,73,16,4,42,11,64,101,120,110,104, +74,3,1,7,101,110,118,50,55,51,57,75,16,4,41,11,63,101,115,99,76, +3,1,7,101,110,118,50,55,52,48,77,16,4,40,11,63,101,120,110,78,3, +1,7,101,110,118,50,55,52,50,79,95,9,8,252,163,7,2,34,18,100,64, +100,101,115,116,80,47,36,35,34,33,16,12,46,11,3,1,4,103,51,48,48, +81,3,1,4,103,51,48,49,82,3,1,4,103,51,48,50,83,3,1,4,103, +51,48,51,84,3,1,4,103,51,48,52,85,3,1,7,101,110,118,50,55,51, +48,86,2,86,2,86,2,86,2,86,16,12,45,11,61,95,87,2,37,2,39, +2,40,2,41,3,1,7,101,110,118,50,55,51,49,88,2,88,2,88,2,88, +2,88,18,158,63,99,116,120,89,47,18,158,2,36,47,18,158,2,89,47,18, +158,2,89,47,18,158,9,47,18,158,2,89,47,11,16,5,93,2,9,89,162, +32,33,50,9,223,0,27,249,22,209,20,15,159,35,32,44,196,27,28,248,80, 158,35,32,194,249,80,158,36,33,248,80,158,37,34,196,27,248,80,158,38,35, 197,28,248,80,158,38,32,193,249,80,158,39,36,27,248,80,158,41,34,196,28, -248,80,158,41,37,193,248,22,8,89,162,32,33,39,9,224,9,1,27,249,22, -2,89,162,32,33,47,9,224,4,5,249,80,158,35,38,28,248,80,158,36,32, -197,249,80,158,37,36,27,248,80,158,39,34,200,28,248,80,158,39,37,193,248, -22,59,248,80,158,40,39,194,11,27,248,80,158,39,35,200,28,248,80,158,39, -32,193,249,80,158,40,33,248,80,158,41,34,195,248,80,158,41,40,248,80,158, -42,35,196,11,11,194,248,80,158,37,39,196,28,248,22,57,193,21,94,9,9, -248,80,158,35,41,193,11,27,248,80,158,41,35,196,28,248,80,158,41,32,193, -249,80,158,42,33,248,80,158,43,34,195,27,248,80,158,44,35,196,28,248,80, -158,44,37,193,248,80,158,44,39,193,11,11,11,11,28,192,27,248,22,52,194, -27,248,22,78,195,27,248,22,87,196,27,248,22,90,197,27,248,22,89,198,27, -249,22,209,83,160,41,33,42,47,249,22,2,80,158,44,42,248,22,216,27,83, -160,41,34,46,47,250,22,209,83,160,41,35,49,47,205,195,27,28,248,80,158, -42,37,194,248,22,8,89,162,32,33,39,9,224,10,2,27,249,22,2,89,162, -32,33,39,9,224,4,5,249,80,158,35,38,28,248,80,158,36,37,197,248,22, -59,248,80,158,37,39,198,11,194,248,80,158,37,39,196,28,248,22,57,193,9, -248,80,158,35,43,193,11,28,192,249,80,158,43,44,204,27,252,22,61,204,200, -205,203,202,27,83,160,41,36,45,47,91,159,33,11,90,161,33,32,11,83,160, -38,32,33,11,247,248,22,8,89,162,32,33,40,9,226,15,2,3,1,250,22, -31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10,247,22,252,183,2, -248,22,252,183,2,89,162,32,33,36,9,224,3,1,248,193,89,162,32,32,36, -9,224,2,3,28,248,22,252,180,2,193,248,22,252,185,2,193,249,80,158,35, -45,21,96,2,36,94,94,94,63,116,109,112,107,2,38,2,39,2,38,9,98, -2,36,94,94,94,2,37,2,38,95,66,118,97,108,117,101,115,108,94,1,23, -109,97,107,101,45,114,101,110,97,109,101,45,116,114,97,110,115,102,111,114,109, -101,114,109,94,72,113,117,111,116,101,45,115,121,110,116,97,120,110,2,107,2, -38,2,38,9,2,40,2,41,2,38,83,160,41,37,35,47,89,162,32,32,58, -9,225,6,5,4,27,250,22,209,83,160,41,38,38,47,250,22,209,83,160,41, -39,41,47,251,22,60,83,160,41,40,45,47,250,22,2,89,162,33,33,41,9, -223,16,250,22,209,83,160,41,41,35,47,249,22,60,248,22,52,199,248,22,78, -199,83,160,41,42,35,47,248,22,78,23,15,248,22,52,23,15,83,160,41,43, -45,47,250,22,209,83,160,41,44,48,47,252,22,62,83,160,41,45,53,47,250, -22,2,89,162,33,33,47,9,223,24,250,22,209,83,160,41,46,35,47,249,22, -60,248,22,52,199,250,22,209,83,160,41,47,40,47,249,22,56,83,160,41,48, -42,47,249,22,2,89,162,33,33,45,9,223,12,250,22,209,83,160,41,49,35, -47,249,22,60,83,160,41,50,37,47,250,22,209,83,160,41,51,40,47,249,22, -60,83,160,41,52,42,47,248,22,52,204,83,160,41,53,40,47,83,160,41,54, -35,47,248,22,78,206,83,160,41,55,40,47,83,160,41,56,35,47,248,22,87, -23,23,248,22,78,23,23,83,160,41,57,53,47,248,22,90,23,20,248,22,89, -23,20,83,160,41,58,48,47,83,160,41,59,41,47,197,89,162,32,32,33,9, -223,0,192,89,162,32,32,34,9,223,3,248,22,252,183,2,208,248,80,158,42, -46,83,160,41,8,28,42,47,250,22,252,38,2,11,6,10,10,98,97,100,32, -115,121,110,116,97,120,196,32,20,97,158,16,15,2,42,2,44,2,46,2,48, -2,50,2,52,2,54,2,56,2,58,2,60,30,111,2,30,2,8,0,30,112, -2,6,2,67,13,2,62,2,64,30,113,2,30,76,119,105,116,104,45,115,121, -110,116,97,120,45,102,97,105,108,114,3,16,29,18,98,2,66,8,28,36,35, -34,16,4,59,11,2,73,3,1,7,101,110,118,50,55,56,52,115,18,100,2, -66,8,31,36,35,34,59,16,12,8,30,11,3,1,4,103,51,49,48,116,3, -1,4,103,51,49,49,117,3,1,4,103,51,49,50,118,3,1,4,103,51,49, -51,119,3,1,4,103,51,49,52,120,3,1,7,101,110,118,50,55,57,55,121, -2,121,2,121,2,121,2,121,16,12,8,29,11,2,92,2,37,2,39,2,40, -2,41,3,1,7,101,110,118,50,55,57,56,122,2,122,2,122,2,122,2,122, -18,16,2,95,2,75,8,32,93,8,252,193,7,95,9,8,252,193,7,2,35, -18,158,2,85,8,31,18,16,2,95,2,75,8,33,93,8,252,199,7,95,9, -8,252,199,7,2,35,18,16,2,99,2,38,8,38,93,8,252,199,7,16,6, -8,37,11,2,76,2,77,3,1,7,101,110,118,50,56,49,55,123,2,123,16, -4,8,36,11,2,79,3,1,7,101,110,118,50,56,49,56,124,16,4,8,35, -11,2,81,3,1,7,101,110,118,50,56,49,57,125,16,4,8,34,11,2,83, -3,1,7,101,110,118,50,56,50,49,126,95,9,8,252,199,7,2,35,18,102, -2,85,8,41,36,35,34,59,8,30,8,29,16,4,8,40,11,3,1,4,103, -51,49,55,127,3,1,7,101,110,118,50,56,49,51,128,16,4,8,39,11,2, -107,3,1,7,101,110,118,50,56,49,52,129,18,158,2,94,8,41,18,158,2, -36,8,41,18,158,2,94,8,41,18,158,2,94,8,41,18,158,9,8,41,18, -158,2,94,8,41,18,158,2,36,8,41,18,158,2,94,8,41,18,158,2,94, -8,41,18,158,2,108,8,41,18,158,2,94,8,41,18,158,2,109,8,41,18, -158,2,94,8,41,18,158,2,110,8,41,18,158,2,94,8,41,18,158,2,94, -8,41,18,158,2,94,8,41,18,158,2,94,8,41,18,158,9,8,41,18,158, -2,94,8,41,18,158,2,94,8,41,18,16,2,158,94,16,2,158,94,16,2, -98,2,107,8,45,93,8,252,192,7,16,4,8,44,11,3,1,8,119,115,116, -109,112,51,49,53,130,3,1,7,101,110,118,50,56,48,53,131,16,4,8,43, -11,3,1,4,103,51,49,54,132,3,1,7,101,110,118,50,56,51,52,133,16, -4,8,42,11,65,95,101,108,115,101,134,3,1,7,101,110,118,50,56,51,53, -135,9,16,2,158,2,38,8,45,9,8,45,9,16,2,158,2,38,8,45,9, -8,45,95,9,8,252,192,7,2,30,11,16,5,93,2,25,89,162,32,33,50, -9,223,0,27,249,22,209,83,160,41,32,35,44,196,27,28,248,80,158,35,32, -194,249,80,158,36,33,248,80,158,37,34,196,27,248,80,158,38,35,197,28,248, -80,158,38,32,193,249,80,158,39,36,27,248,80,158,41,34,196,28,248,80,158, -41,37,193,248,22,8,89,162,32,33,39,9,224,9,1,27,249,22,2,89,162, -32,33,45,9,224,4,5,249,80,158,35,38,28,248,80,158,36,32,197,249,80, -158,37,33,248,80,158,38,34,199,27,248,80,158,39,35,200,28,248,80,158,39, -32,193,249,80,158,40,33,248,80,158,41,34,195,248,80,158,41,39,248,80,158, -42,35,196,11,11,194,248,80,158,37,40,196,28,248,22,57,193,21,94,9,9, -248,80,158,35,41,193,11,27,248,80,158,41,35,196,28,248,80,158,41,32,193, -249,80,158,42,33,248,80,158,43,34,195,27,248,80,158,44,35,196,28,248,80, -158,44,37,193,248,80,158,44,40,193,11,11,11,11,28,192,27,248,22,52,194, -27,248,22,78,195,27,248,22,87,196,27,248,22,90,197,27,248,22,89,198,249, -80,158,41,42,202,27,251,22,61,202,199,201,200,27,83,160,41,33,43,44,91, -159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,8,89,162,32, -33,40,9,226,13,2,3,1,250,22,31,89,162,32,32,36,9,225,6,3,7, -90,161,33,33,10,247,22,252,183,2,248,22,252,183,2,89,162,32,33,36,9, -224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22,252,180,2,193, -248,22,252,185,2,193,249,80,158,35,43,21,97,2,13,94,94,93,2,37,2, -39,2,38,2,40,2,41,2,38,83,160,41,34,35,44,89,162,32,32,50,9, -225,6,5,4,27,250,22,209,83,160,41,35,38,44,250,22,209,83,160,41,36, -41,44,251,22,62,83,160,41,37,45,44,250,22,2,89,162,33,33,45,9,223, -16,250,22,209,83,160,41,38,35,44,249,22,60,250,22,209,83,160,41,39,40, -44,248,22,60,248,22,52,203,83,160,41,40,40,44,248,22,78,199,83,160,41, -41,35,44,248,22,52,23,15,248,22,87,23,15,248,22,88,204,248,22,78,204, -83,160,41,42,41,44,197,89,162,32,32,33,9,223,0,192,89,162,32,32,34, -9,223,3,248,22,252,183,2,208,250,22,252,38,2,11,6,10,10,98,97,100, -32,115,121,110,116,97,120,196,32,20,97,158,16,12,2,42,2,44,2,46,2, -48,2,50,2,52,2,54,2,58,2,56,2,60,2,62,2,64,16,11,18,98, -2,66,8,47,36,35,34,16,4,8,46,11,2,73,3,1,7,101,110,118,50, -56,51,56,136,18,16,2,95,2,75,8,48,93,8,252,215,7,95,9,8,252, -215,7,2,35,18,16,2,99,2,38,8,53,93,8,252,215,7,16,6,8,52, -11,2,76,2,77,3,1,7,101,110,118,50,56,53,56,137,2,137,16,4,8, -51,11,2,79,3,1,7,101,110,118,50,56,53,57,138,16,4,8,50,11,2, -81,3,1,7,101,110,118,50,56,54,48,139,16,4,8,49,11,2,83,3,1, -7,101,110,118,50,56,54,50,140,95,9,8,252,215,7,2,35,18,100,2,85, -8,56,36,35,34,8,46,16,12,8,55,11,3,1,4,103,51,49,56,141,3, -1,4,103,51,49,57,142,3,1,4,103,51,50,48,143,3,1,4,103,51,50, -49,144,3,1,4,103,51,50,50,145,3,1,7,101,110,118,50,56,53,48,146, -2,146,2,146,2,146,2,146,16,12,8,54,11,2,92,2,37,2,39,2,40, -2,41,3,1,7,101,110,118,50,56,53,49,147,2,147,2,147,2,147,2,147, -18,158,2,94,8,56,18,158,2,13,8,56,18,158,2,94,8,56,18,158,2, -94,8,56,18,158,2,94,8,56,18,158,2,94,8,56,18,158,2,94,8,56, -11,16,5,93,2,17,89,162,32,33,52,9,223,0,27,89,162,32,32,36,68, -116,114,121,45,110,101,120,116,148,223,2,250,22,252,38,2,11,6,10,10,98, -97,100,32,115,121,110,116,97,120,195,27,28,248,80,158,35,32,196,249,80,158, -36,33,248,80,158,37,34,198,27,248,80,158,38,35,199,28,248,80,158,38,32, -193,249,80,158,39,36,27,248,80,158,41,34,196,28,248,80,158,41,37,193,248, -22,59,248,80,158,42,38,194,11,27,248,80,158,41,35,196,28,248,80,158,41, -37,193,248,22,8,89,162,32,33,39,9,224,9,1,27,249,22,2,89,162,32, -33,53,9,224,4,5,249,80,158,35,39,28,248,80,158,36,32,197,249,80,158, -37,36,27,248,80,158,39,34,200,28,248,80,158,39,32,193,249,80,158,40,33, -248,80,158,41,34,195,27,248,80,158,42,35,196,248,22,59,250,22,209,199,196, -199,11,27,248,80,158,39,35,200,28,248,80,158,39,32,193,249,80,158,40,33, -248,80,158,41,34,195,248,80,158,41,40,248,80,158,42,35,196,11,11,194,248, -80,158,37,38,196,28,248,22,57,193,21,94,9,9,248,80,158,35,41,193,11, -11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27,248, -22,90,197,27,248,22,89,198,28,249,22,4,80,158,41,42,248,22,216,27,83, -160,41,32,43,46,250,22,209,83,160,41,33,46,46,202,195,27,249,22,209,83, -160,41,34,42,46,249,22,2,89,162,32,33,36,9,222,248,22,43,248,22,44, -248,22,210,195,248,22,216,27,83,160,41,35,46,46,250,22,209,83,160,41,36, -49,46,204,195,27,28,248,80,158,42,37,194,248,80,158,42,38,194,11,28,192, -249,80,158,43,43,204,27,252,22,61,200,205,206,203,202,27,83,160,41,37,45, -46,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,8,89, -162,32,33,40,9,226,15,2,3,1,250,22,31,89,162,32,32,36,9,225,6, -3,7,90,161,33,33,10,247,22,252,183,2,248,22,252,183,2,89,162,32,33, -36,9,224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22,252,180, -2,193,248,22,252,185,2,193,249,80,158,35,44,21,95,66,108,97,109,98,100, -97,149,93,61,120,150,100,2,70,2,92,10,2,150,94,61,107,151,2,38,79, -109,111,100,117,108,101,45,105,100,101,110,116,105,102,105,101,114,61,63,152,94, -158,65,100,117,109,109,121,153,67,112,97,116,116,101,114,110,154,95,2,12,2, -150,68,116,101,109,112,108,97,116,101,155,2,38,83,160,41,38,35,46,89,162, -32,32,8,28,9,225,6,5,4,27,250,22,209,83,160,41,39,38,46,250,22, -209,83,160,41,40,41,46,250,22,60,83,160,41,41,44,46,83,160,41,42,44, -46,250,22,209,83,160,41,43,47,46,254,22,62,83,160,41,44,54,46,248,22, -87,23,21,83,160,41,45,54,46,83,160,41,46,54,46,248,22,78,23,21,83, -160,41,47,54,46,251,22,2,89,162,33,33,49,9,223,26,250,22,209,83,160, -41,48,35,46,249,22,60,250,22,209,83,160,41,49,40,46,249,22,56,248,22, -52,204,248,22,78,204,83,160,41,50,40,46,250,22,209,83,160,41,51,40,46, -250,22,60,83,160,41,52,43,46,83,160,41,53,43,46,248,22,87,205,83,160, -41,54,40,46,83,160,41,55,35,46,248,22,52,23,25,248,22,90,23,25,248, -22,89,23,25,83,160,41,56,47,46,83,160,41,57,41,46,197,89,162,32,32, -33,9,223,0,192,89,162,32,32,34,9,223,3,248,22,252,183,2,208,248,80, -158,42,45,83,160,41,58,42,46,247,198,247,193,32,20,97,158,16,14,2,42, -2,44,2,46,2,48,2,50,2,52,2,56,2,54,2,58,2,112,30,156,2, -6,2,7,2,2,62,2,64,2,113,16,27,18,16,2,95,2,75,8,57,93, -8,252,229,7,95,9,8,252,229,7,2,35,18,100,2,85,8,61,36,35,34, -16,4,8,60,11,2,150,3,1,7,101,110,118,50,56,55,49,157,16,12,8, -59,11,3,1,4,103,51,50,51,158,3,1,4,103,51,50,52,159,3,1,4, -103,51,50,53,160,3,1,4,103,51,50,54,161,3,1,4,103,51,50,55,162, -3,1,7,101,110,118,50,56,56,55,163,2,163,2,163,2,163,2,163,16,12, -8,58,11,2,92,2,151,67,107,101,121,119,111,114,100,164,2,154,2,155,3, -1,7,101,110,118,50,56,56,56,165,2,165,2,165,2,165,2,165,18,158,2, -66,8,61,18,16,2,95,2,75,8,62,93,8,252,231,7,95,9,8,252,231, -7,2,35,18,158,2,85,8,61,18,16,2,95,2,75,8,63,93,8,252,234, -7,95,9,8,252,234,7,2,35,18,16,2,99,2,38,8,68,93,8,252,234, -7,16,6,8,67,11,2,76,2,77,3,1,7,101,110,118,50,57,48,53,166, -2,166,16,4,8,66,11,2,79,3,1,7,101,110,118,50,57,48,54,167,16, -4,8,65,11,2,81,3,1,7,101,110,118,50,57,48,55,168,16,4,8,64, -11,2,83,3,1,7,101,110,118,50,57,48,57,169,95,9,8,252,234,7,2, -35,18,102,2,85,8,73,36,35,34,8,60,16,12,8,72,11,2,158,2,159, -2,160,2,161,2,162,2,163,2,163,2,163,2,163,2,163,16,12,8,71,11, -2,92,2,151,2,164,2,154,2,155,2,165,2,165,2,165,2,165,2,165,16, -4,8,70,11,3,1,4,103,51,51,48,170,3,1,7,101,110,118,50,57,48, -49,171,16,4,8,69,11,2,153,3,1,7,101,110,118,50,57,48,50,172,18, -158,2,94,8,73,18,158,2,149,8,73,18,158,93,16,2,158,2,150,8,73, -9,8,73,18,158,2,94,8,73,18,158,2,70,8,73,18,158,10,8,73,18, -158,2,150,8,73,18,158,2,152,8,73,18,158,2,94,8,73,18,158,2,94, -8,73,18,158,2,94,8,73,18,158,2,94,8,73,18,158,2,12,8,73,18, -158,2,150,8,73,18,158,2,94,8,73,18,158,2,94,8,73,18,158,2,94, -8,73,18,158,2,94,8,73,18,16,2,158,94,16,2,98,2,153,8,77,93, -8,252,230,7,16,4,8,76,11,3,1,8,119,115,116,109,112,51,50,56,173, -3,1,7,101,110,118,50,56,57,53,174,16,4,8,75,11,3,1,4,103,51, -50,57,175,3,1,7,101,110,118,50,57,49,56,176,16,4,8,74,11,2,134, -3,1,7,101,110,118,50,57,49,57,177,9,16,2,158,2,38,8,77,9,8, -77,95,9,8,252,230,7,2,30,11,16,5,93,2,21,89,162,32,33,48,9, -223,0,27,89,162,32,32,36,2,148,223,2,250,22,252,38,2,11,6,10,10, -98,97,100,32,115,121,110,116,97,120,195,27,28,248,80,158,35,32,196,249,80, -158,36,33,248,80,158,37,34,198,27,248,80,158,38,35,199,28,248,80,158,38, -32,193,249,80,158,39,36,27,248,80,158,41,34,196,28,248,80,158,41,37,193, -248,22,59,248,80,158,42,38,194,11,27,248,80,158,41,35,196,28,248,80,158, -41,37,193,248,22,8,89,162,32,33,39,9,224,9,1,27,249,22,2,89,162, -32,33,45,9,224,4,5,249,80,158,35,39,28,248,80,158,36,32,197,249,80, -158,37,33,248,80,158,38,34,199,27,248,80,158,39,35,200,28,248,80,158,39, -32,193,249,80,158,40,33,248,80,158,41,34,195,248,80,158,41,40,248,80,158, -42,35,196,11,11,194,248,80,158,37,38,196,28,248,22,57,193,21,93,9,248, -80,158,35,41,193,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27, -248,22,87,196,27,248,22,88,197,28,249,22,4,80,158,40,42,248,22,216,27, -83,160,41,32,42,45,250,22,209,83,160,41,33,45,45,201,195,249,80,158,40, -43,201,27,251,22,61,201,202,200,199,27,83,160,41,34,42,45,91,159,33,11, -90,161,33,32,11,83,160,38,32,33,11,247,248,22,8,89,162,32,33,40,9, -226,12,2,3,1,250,22,31,89,162,32,32,36,9,225,6,3,7,90,161,33, -33,10,247,22,252,183,2,248,22,252,183,2,89,162,32,33,36,9,224,3,1, -248,193,89,162,32,32,36,9,224,2,3,28,248,22,252,180,2,193,248,22,252, -185,2,193,249,80,158,35,44,21,94,1,21,109,97,107,101,45,115,101,116,33, -45,116,114,97,110,115,102,111,114,109,101,114,178,95,2,149,93,2,150,100,2, -70,2,92,10,2,150,94,2,151,2,38,2,152,94,2,154,95,2,12,2,150, -2,155,2,38,83,160,41,35,35,45,89,162,32,32,8,32,9,225,6,5,4, -27,250,22,209,83,160,41,36,38,45,250,22,209,83,160,41,37,41,45,249,22, -60,83,160,41,38,43,45,250,22,209,83,160,41,39,46,45,250,22,60,83,160, -41,40,49,45,83,160,41,41,49,45,250,22,209,83,160,41,42,52,45,254,22, -62,83,160,41,43,59,45,248,22,78,23,26,83,160,41,44,59,45,83,160,41, -45,59,45,248,22,52,23,26,83,160,41,46,59,45,250,22,2,89,162,33,33, -46,9,223,30,250,22,209,83,160,41,47,35,45,249,22,60,248,22,52,199,250, -22,209,83,160,41,48,40,45,250,22,60,83,160,41,49,43,45,83,160,41,50, -43,45,248,22,78,205,83,160,41,51,40,45,83,160,41,52,35,45,248,22,87, -23,29,248,22,88,23,29,83,160,41,53,52,45,83,160,41,54,46,45,83,160, -41,55,41,45,197,89,162,32,32,33,9,223,0,192,89,162,32,32,34,9,223, -3,248,22,252,183,2,208,247,197,247,193,32,20,97,158,16,13,2,42,2,44, -2,46,2,48,2,50,2,52,2,56,2,54,2,58,2,112,2,156,2,62,2, -64,16,24,18,16,2,95,2,75,8,78,93,8,252,248,7,95,9,8,252,248, -7,2,35,18,100,2,85,8,82,36,35,34,16,4,8,81,11,2,150,3,1, -7,101,110,118,50,57,50,50,179,16,10,8,80,11,3,1,4,103,51,51,49, -180,3,1,4,103,51,51,50,181,3,1,4,103,51,51,51,182,3,1,4,103, -51,51,52,183,3,1,7,101,110,118,50,57,51,53,184,2,184,2,184,2,184, -16,10,8,79,11,2,92,2,151,2,154,2,155,3,1,7,101,110,118,50,57, -51,54,185,2,185,2,185,2,185,18,16,2,95,2,75,8,83,93,8,252,250, -7,95,9,8,252,250,7,2,35,18,16,2,99,2,38,8,88,93,8,252,250, -7,16,6,8,87,11,2,76,2,77,3,1,7,101,110,118,50,57,52,50,186, -2,186,16,4,8,86,11,2,79,3,1,7,101,110,118,50,57,52,51,187,16, -4,8,85,11,2,81,3,1,7,101,110,118,50,57,52,52,188,16,4,8,84, -11,2,83,3,1,7,101,110,118,50,57,52,54,189,95,9,8,252,250,7,2, -35,18,158,2,85,8,82,18,158,2,94,8,82,18,158,2,178,8,82,18,158, -2,94,8,82,18,158,2,149,8,82,18,158,93,16,2,158,2,150,8,82,9, -8,82,18,158,2,94,8,82,18,158,2,70,8,82,18,158,10,8,82,18,158, -2,150,8,82,18,158,2,152,8,82,18,158,2,94,8,82,18,158,2,94,8, -82,18,158,2,12,8,82,18,158,2,150,8,82,18,158,2,94,8,82,18,158, -2,94,8,82,18,158,2,94,8,82,18,158,2,94,8,82,18,158,2,94,8, -82,11,93,83,159,32,93,80,159,32,32,33,89,162,32,33,35,2,4,223,0, -248,22,8,89,162,32,33,38,9,224,1,2,27,247,22,110,87,94,249,22,3, -89,162,32,33,43,9,226,4,3,5,2,87,94,28,248,80,158,36,33,197,12, -250,22,252,39,2,2,4,6,19,19,108,105,115,116,32,111,102,32,105,100,101, -110,116,105,102,105,101,114,115,197,27,250,22,116,196,248,22,210,201,89,97,40, -32,32,9,222,87,94,28,249,22,5,89,162,32,33,36,9,223,7,249,22,221, -195,194,194,248,195,198,12,250,22,115,196,248,22,210,201,249,22,51,202,197,195, -11,98,68,35,37,107,101,114,110,101,108,190,74,35,37,115,109,97,108,108,45, -115,99,104,101,109,101,191,2,6,2,35,2,30,2,33,98,2,190,2,191,2, -6,2,35,2,30,2,33,0}; - EVAL_ONE_SIZED_STR((char *)expr, 8260); +248,80,158,41,37,193,248,22,9,89,162,32,33,39,9,224,9,1,27,249,22, +2,89,162,32,33,45,9,224,4,5,249,80,158,35,38,28,248,80,158,36,32, +197,249,80,158,37,33,248,80,158,38,34,199,27,248,80,158,39,35,200,28,248, +80,158,39,32,193,249,80,158,40,33,248,80,158,41,34,195,248,80,158,41,39, +248,80,158,42,35,196,11,11,194,248,80,158,37,40,196,28,248,22,57,193,21, +94,9,9,248,80,158,35,41,193,11,27,248,80,158,41,35,196,28,248,80,158, +41,32,193,249,80,158,42,33,248,80,158,43,34,195,27,248,80,158,44,35,196, +28,248,80,158,44,37,193,248,80,158,44,40,193,11,11,11,11,28,192,27,248, +22,52,194,27,248,22,78,195,27,248,22,87,196,27,248,22,90,197,27,248,22, +89,198,249,80,158,41,42,202,27,251,22,61,201,202,200,199,27,20,15,159,43, +33,44,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,9, +89,162,32,33,40,9,226,13,2,3,1,250,22,31,89,162,32,32,36,9,225, +6,3,7,90,161,33,33,10,247,22,252,184,2,248,22,252,184,2,89,162,32, +33,36,9,224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22,252, +181,2,193,248,22,252,186,2,193,249,80,158,35,43,21,98,2,36,94,94,93, +2,37,2,39,2,38,9,2,40,2,41,2,38,20,15,159,35,34,44,89,162, +32,32,51,9,225,6,5,4,27,250,22,209,20,15,159,38,35,44,250,22,209, +20,15,159,41,36,44,252,22,62,20,15,159,46,37,44,250,22,2,89,162,33, +33,45,9,223,17,250,22,209,20,15,159,35,38,44,249,22,60,250,22,209,20, +15,159,40,39,44,248,22,60,248,22,52,203,20,15,159,40,40,44,248,22,78, +199,20,15,159,35,41,44,248,22,78,23,16,248,22,52,23,16,20,15,159,46, +42,44,248,22,87,205,248,22,88,205,20,15,159,41,43,44,197,89,162,32,32, +33,9,223,0,192,89,162,32,32,34,9,223,3,248,22,252,184,2,208,250,22, +252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,196,32,20,98, +158,16,12,2,42,2,44,2,46,2,48,2,50,2,52,2,54,2,58,2,56, +2,60,2,62,2,64,16,12,18,98,2,66,49,36,35,34,16,4,48,11,2, +68,3,1,7,101,110,118,50,55,53,49,90,18,16,2,95,2,70,50,93,8, +252,178,7,95,9,8,252,178,7,2,34,18,16,2,99,2,38,55,93,8,252, +178,7,16,6,54,11,2,71,2,72,3,1,7,101,110,118,50,55,55,49,91, +2,91,16,4,53,11,2,74,3,1,7,101,110,118,50,55,55,50,92,16,4, +52,11,2,76,3,1,7,101,110,118,50,55,55,51,93,16,4,51,11,2,78, +3,1,7,101,110,118,50,55,55,53,94,95,9,8,252,178,7,2,34,18,100, +2,80,58,36,35,34,48,16,12,57,11,3,1,4,103,51,48,53,95,3,1, +4,103,51,48,54,96,3,1,4,103,51,48,55,97,3,1,4,103,51,48,56, +98,3,1,4,103,51,48,57,99,3,1,7,101,110,118,50,55,54,51,100,2, +100,2,100,2,100,2,100,16,12,56,11,2,87,2,37,2,39,2,40,2,41, +3,1,7,101,110,118,50,55,54,52,101,2,101,2,101,2,101,2,101,18,158, +2,89,58,18,158,2,36,58,18,158,2,89,58,18,158,2,89,58,18,158,2, +89,58,18,158,2,89,58,18,158,9,58,18,158,2,89,58,11,16,5,93,2, +12,89,162,32,33,52,9,223,0,27,249,22,209,20,15,159,35,32,47,196,27, +28,248,80,158,35,32,194,249,80,158,36,33,248,80,158,37,34,196,27,248,80, +158,38,35,197,28,248,80,158,38,32,193,249,80,158,39,36,27,248,80,158,41, +34,196,28,248,80,158,41,37,193,248,22,9,89,162,32,33,39,9,224,9,1, +27,249,22,2,89,162,32,33,47,9,224,4,5,249,80,158,35,38,28,248,80, +158,36,32,197,249,80,158,37,36,27,248,80,158,39,34,200,28,248,80,158,39, +37,193,248,22,59,248,80,158,40,39,194,11,27,248,80,158,39,35,200,28,248, +80,158,39,32,193,249,80,158,40,33,248,80,158,41,34,195,248,80,158,41,40, +248,80,158,42,35,196,11,11,194,248,80,158,37,39,196,28,248,22,57,193,21, +94,9,9,248,80,158,35,41,193,11,27,248,80,158,41,35,196,28,248,80,158, +41,32,193,249,80,158,42,33,248,80,158,43,34,195,27,248,80,158,44,35,196, +28,248,80,158,44,37,193,248,80,158,44,39,193,11,11,11,11,28,192,27,248, +22,52,194,27,248,22,78,195,27,248,22,87,196,27,248,22,90,197,27,248,22, +89,198,27,249,22,209,20,15,159,42,33,47,249,22,2,80,158,44,42,248,22, +216,27,20,15,159,46,34,47,250,22,209,20,15,159,49,35,47,205,195,27,28, +248,80,158,42,37,194,248,22,9,89,162,32,33,39,9,224,10,2,27,249,22, +2,89,162,32,33,39,9,224,4,5,249,80,158,35,38,28,248,80,158,36,37, +197,248,22,59,248,80,158,37,39,198,11,194,248,80,158,37,39,196,28,248,22, +57,193,9,248,80,158,35,43,193,11,28,192,249,80,158,43,44,204,27,252,22, +61,202,205,203,204,200,27,20,15,159,45,36,47,91,159,33,11,90,161,33,32, +11,83,160,38,32,33,11,247,248,22,9,89,162,32,33,40,9,226,15,2,3, +1,250,22,31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10,247,22, +252,184,2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193,89,162, +32,32,36,9,224,2,3,28,248,22,252,181,2,193,248,22,252,186,2,193,249, +80,158,35,45,21,96,2,36,94,94,94,63,116,109,112,102,2,38,2,39,2, +38,9,98,2,36,94,94,94,2,37,2,38,95,66,118,97,108,117,101,115,103, +94,1,23,109,97,107,101,45,114,101,110,97,109,101,45,116,114,97,110,115,102, +111,114,109,101,114,104,94,72,113,117,111,116,101,45,115,121,110,116,97,120,105, +2,102,2,38,2,38,9,2,40,2,41,2,38,20,15,159,35,37,47,89,162, +32,32,58,9,225,6,5,4,27,250,22,209,20,15,159,38,38,47,250,22,209, +20,15,159,41,39,47,251,22,60,20,15,159,45,40,47,250,22,2,89,162,33, +33,41,9,223,16,250,22,209,20,15,159,35,41,47,249,22,60,248,22,52,199, +248,22,78,199,20,15,159,35,42,47,248,22,89,23,15,248,22,90,23,15,20, +15,159,45,43,47,250,22,209,20,15,159,48,44,47,252,22,62,20,15,159,53, +45,47,250,22,2,89,162,33,33,47,9,223,24,250,22,209,20,15,159,35,46, +47,249,22,60,248,22,52,199,250,22,209,20,15,159,40,47,47,249,22,56,20, +15,159,42,48,47,249,22,2,89,162,33,33,45,9,223,12,250,22,209,20,15, +159,35,49,47,249,22,60,20,15,159,37,50,47,250,22,209,20,15,159,40,51, +47,249,22,60,20,15,159,42,52,47,248,22,52,204,20,15,159,40,53,47,20, +15,159,35,54,47,248,22,78,206,20,15,159,40,55,47,20,15,159,35,56,47, +248,22,78,23,23,248,22,89,23,23,20,15,159,53,57,47,248,22,87,23,20, +248,22,52,23,20,20,15,159,48,58,47,20,15,159,41,59,47,197,89,162,32, +32,33,9,223,0,192,89,162,32,32,34,9,223,3,248,22,252,184,2,208,248, +80,158,42,46,20,15,159,42,8,28,47,250,22,252,39,2,11,6,10,10,98, +97,100,32,115,121,110,116,97,120,196,32,20,98,158,16,15,2,42,2,44,2, +46,2,48,2,50,2,52,2,54,2,56,2,58,2,60,30,106,2,30,2,8, +0,30,107,2,6,71,115,116,120,45,114,111,116,97,116,101,42,108,13,2,62, +2,64,30,109,2,30,76,119,105,116,104,45,115,121,110,116,97,120,45,102,97, +105,108,110,3,16,29,18,98,2,66,8,28,36,35,34,16,4,59,11,2,68, +3,1,7,101,110,118,50,55,56,52,111,18,100,2,66,8,31,36,35,34,59, +16,12,8,30,11,3,1,4,103,51,49,48,112,3,1,4,103,51,49,49,113, +3,1,4,103,51,49,50,114,3,1,4,103,51,49,51,115,3,1,4,103,51, +49,52,116,3,1,7,101,110,118,50,55,57,55,117,2,117,2,117,2,117,2, +117,16,12,8,29,11,2,87,2,37,2,39,2,40,2,41,3,1,7,101,110, +118,50,55,57,56,118,2,118,2,118,2,118,2,118,18,16,2,95,2,70,8, +32,93,8,252,193,7,95,9,8,252,193,7,2,34,18,158,2,80,8,31,18, +16,2,95,2,70,8,33,93,8,252,199,7,95,9,8,252,199,7,2,34,18, +16,2,99,2,38,8,38,93,8,252,199,7,16,6,8,37,11,2,71,2,72, +3,1,7,101,110,118,50,56,49,55,119,2,119,16,4,8,36,11,2,74,3, +1,7,101,110,118,50,56,49,56,120,16,4,8,35,11,2,76,3,1,7,101, +110,118,50,56,49,57,121,16,4,8,34,11,2,78,3,1,7,101,110,118,50, +56,50,49,122,95,9,8,252,199,7,2,34,18,102,2,80,8,41,36,35,34, +59,8,30,8,29,16,4,8,40,11,3,1,4,103,51,49,55,123,3,1,7, +101,110,118,50,56,49,51,124,16,4,8,39,11,2,102,3,1,7,101,110,118, +50,56,49,52,125,18,158,2,89,8,41,18,158,2,36,8,41,18,158,2,89, +8,41,18,158,2,89,8,41,18,158,9,8,41,18,158,2,89,8,41,18,158, +2,36,8,41,18,158,2,89,8,41,18,158,2,89,8,41,18,158,2,103,8, +41,18,158,2,89,8,41,18,158,2,104,8,41,18,158,2,89,8,41,18,158, +2,105,8,41,18,158,2,89,8,41,18,158,2,89,8,41,18,158,2,89,8, +41,18,158,2,89,8,41,18,158,9,8,41,18,158,2,89,8,41,18,158,2, +89,8,41,18,16,2,158,94,16,2,158,94,16,2,98,2,102,8,45,93,8, +252,192,7,16,4,8,44,11,3,1,8,119,115,116,109,112,51,49,53,126,3, +1,7,101,110,118,50,56,48,53,127,16,4,8,43,11,3,1,4,103,51,49, +54,128,3,1,7,101,110,118,50,56,51,52,129,16,4,8,42,11,65,95,101, +108,115,101,130,3,1,7,101,110,118,50,56,51,53,131,9,16,2,158,2,38, +8,45,9,8,45,9,16,2,158,2,38,8,45,9,8,45,95,9,8,252,192, +7,2,30,11,16,5,93,2,24,89,162,32,33,50,9,223,0,27,249,22,209, +20,15,159,35,32,44,196,27,28,248,80,158,35,32,194,249,80,158,36,33,248, +80,158,37,34,196,27,248,80,158,38,35,197,28,248,80,158,38,32,193,249,80, +158,39,36,27,248,80,158,41,34,196,28,248,80,158,41,37,193,248,22,9,89, +162,32,33,39,9,224,9,1,27,249,22,2,89,162,32,33,45,9,224,4,5, +249,80,158,35,38,28,248,80,158,36,32,197,249,80,158,37,33,248,80,158,38, +34,199,27,248,80,158,39,35,200,28,248,80,158,39,32,193,249,80,158,40,33, +248,80,158,41,34,195,248,80,158,41,39,248,80,158,42,35,196,11,11,194,248, +80,158,37,40,196,28,248,22,57,193,21,94,9,9,248,80,158,35,41,193,11, +27,248,80,158,41,35,196,28,248,80,158,41,32,193,249,80,158,42,33,248,80, +158,43,34,195,27,248,80,158,44,35,196,28,248,80,158,44,37,193,248,80,158, +44,40,193,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248, +22,87,196,27,248,22,90,197,27,248,22,89,198,249,80,158,41,42,202,27,251, +22,61,202,201,200,199,27,20,15,159,43,33,44,91,159,33,11,90,161,33,32, +11,83,160,38,32,33,11,247,248,22,9,89,162,32,33,40,9,226,13,2,3, +1,250,22,31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10,247,22, +252,184,2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193,89,162, +32,32,36,9,224,2,3,28,248,22,252,181,2,193,248,22,252,186,2,193,249, +80,158,35,43,21,97,2,12,94,94,93,2,37,2,39,2,38,2,40,2,41, +2,38,20,15,159,35,34,44,89,162,32,32,50,9,225,6,5,4,27,250,22, +209,20,15,159,38,35,44,250,22,209,20,15,159,41,36,44,251,22,62,20,15, +159,45,37,44,250,22,2,89,162,33,33,45,9,223,16,250,22,209,20,15,159, +35,38,44,249,22,60,250,22,209,20,15,159,40,39,44,248,22,60,248,22,52, +203,20,15,159,40,40,44,248,22,78,199,20,15,159,35,41,44,248,22,52,23, +15,248,22,78,23,15,248,22,87,204,248,22,88,204,20,15,159,41,42,44,197, +89,162,32,32,33,9,223,0,192,89,162,32,32,34,9,223,3,248,22,252,184, +2,208,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120, +196,32,20,98,158,16,12,2,42,2,44,2,46,2,48,2,50,2,52,2,54, +2,58,2,56,2,60,2,62,2,64,16,11,18,98,2,66,8,47,36,35,34, +16,4,8,46,11,2,68,3,1,7,101,110,118,50,56,51,56,132,18,16,2, +95,2,70,8,48,93,8,252,215,7,95,9,8,252,215,7,2,34,18,16,2, +99,2,38,8,53,93,8,252,215,7,16,6,8,52,11,2,71,2,72,3,1, +7,101,110,118,50,56,53,56,133,2,133,16,4,8,51,11,2,74,3,1,7, +101,110,118,50,56,53,57,134,16,4,8,50,11,2,76,3,1,7,101,110,118, +50,56,54,48,135,16,4,8,49,11,2,78,3,1,7,101,110,118,50,56,54, +50,136,95,9,8,252,215,7,2,34,18,100,2,80,8,56,36,35,34,8,46, +16,12,8,55,11,3,1,4,103,51,49,56,137,3,1,4,103,51,49,57,138, +3,1,4,103,51,50,48,139,3,1,4,103,51,50,49,140,3,1,4,103,51, +50,50,141,3,1,7,101,110,118,50,56,53,48,142,2,142,2,142,2,142,2, +142,16,12,8,54,11,2,87,2,37,2,39,2,40,2,41,3,1,7,101,110, +118,50,56,53,49,143,2,143,2,143,2,143,2,143,18,158,2,89,8,56,18, +158,2,12,8,56,18,158,2,89,8,56,18,158,2,89,8,56,18,158,2,89, +8,56,18,158,2,89,8,56,18,158,2,89,8,56,11,16,5,93,2,16,89, +162,32,33,52,9,223,0,27,89,162,32,32,36,68,116,114,121,45,110,101,120, +116,144,223,2,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116, +97,120,195,27,28,248,80,158,35,32,196,249,80,158,36,33,248,80,158,37,34, +198,27,248,80,158,38,35,199,28,248,80,158,38,32,193,249,80,158,39,36,27, +248,80,158,41,34,196,28,248,80,158,41,37,193,248,22,59,248,80,158,42,38, +194,11,27,248,80,158,41,35,196,28,248,80,158,41,37,193,248,22,9,89,162, +32,33,39,9,224,9,1,27,249,22,2,89,162,32,33,53,9,224,4,5,249, +80,158,35,39,28,248,80,158,36,32,197,249,80,158,37,36,27,248,80,158,39, +34,200,28,248,80,158,39,32,193,249,80,158,40,33,248,80,158,41,34,195,27, +248,80,158,42,35,196,248,22,59,250,22,209,199,196,199,11,27,248,80,158,39, +35,200,28,248,80,158,39,32,193,249,80,158,40,33,248,80,158,41,34,195,248, +80,158,41,40,248,80,158,42,35,196,11,11,194,248,80,158,37,38,196,28,248, +22,57,193,21,94,9,9,248,80,158,35,41,193,11,11,11,28,192,27,248,22, +52,194,27,248,22,78,195,27,248,22,87,196,27,248,22,90,197,27,248,22,89, +198,28,249,22,4,80,158,41,42,248,22,216,27,20,15,159,43,32,46,250,22, +209,20,15,159,46,33,46,202,195,27,249,22,209,20,15,159,42,34,46,249,22, +2,89,162,32,33,36,9,222,248,22,43,248,22,44,248,22,210,195,248,22,216, +27,20,15,159,46,35,46,250,22,209,20,15,159,49,36,46,204,195,27,28,248, +80,158,42,37,194,248,80,158,42,38,194,11,28,192,249,80,158,43,43,204,27, +252,22,61,200,203,206,202,205,27,20,15,159,45,37,46,91,159,33,11,90,161, +33,32,11,83,160,38,32,33,11,247,248,22,9,89,162,32,33,40,9,226,15, +2,3,1,250,22,31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10, +247,22,252,184,2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193, +89,162,32,32,36,9,224,2,3,28,248,22,252,181,2,193,248,22,252,186,2, +193,249,80,158,35,44,21,95,66,108,97,109,98,100,97,145,93,61,120,146,100, +73,115,121,110,116,97,120,45,99,97,115,101,42,42,147,2,87,10,2,146,94, +61,107,148,2,38,79,109,111,100,117,108,101,45,105,100,101,110,116,105,102,105, +101,114,61,63,149,94,158,65,100,117,109,109,121,150,67,112,97,116,116,101,114, +110,151,95,2,23,2,146,68,116,101,109,112,108,97,116,101,152,2,38,20,15, +159,35,38,46,89,162,32,32,8,28,9,225,6,5,4,27,250,22,209,20,15, +159,38,39,46,250,22,209,20,15,159,41,40,46,250,22,60,20,15,159,44,41, +46,20,15,159,44,42,46,250,22,209,20,15,159,47,43,46,254,22,62,20,15, +159,54,44,46,248,22,87,23,21,20,15,159,54,45,46,20,15,159,54,46,46, +248,22,89,23,21,20,15,159,54,47,46,251,22,2,89,162,33,33,49,9,223, +26,250,22,209,20,15,159,35,48,46,249,22,60,250,22,209,20,15,159,40,49, +46,249,22,56,248,22,52,204,248,22,78,204,20,15,159,40,50,46,250,22,209, +20,15,159,40,51,46,250,22,60,20,15,159,43,52,46,20,15,159,43,53,46, +248,22,87,205,20,15,159,40,54,46,20,15,159,35,55,46,248,22,52,23,25, +248,22,78,23,25,248,22,90,23,25,20,15,159,47,56,46,20,15,159,41,57, +46,197,89,162,32,32,33,9,223,0,192,89,162,32,32,34,9,223,3,248,22, +252,184,2,208,248,80,158,42,45,20,15,159,42,58,46,247,198,247,193,32,20, +98,158,16,14,2,42,2,44,2,46,2,48,2,50,2,52,2,56,2,54,2, +58,2,107,30,153,2,6,2,7,2,2,62,2,64,2,109,16,27,18,16,2, +95,2,70,8,57,93,8,252,229,7,95,9,8,252,229,7,2,34,18,100,2, +80,8,61,36,35,34,16,4,8,60,11,2,146,3,1,7,101,110,118,50,56, +55,49,154,16,12,8,59,11,3,1,4,103,51,50,51,155,3,1,4,103,51, +50,52,156,3,1,4,103,51,50,53,157,3,1,4,103,51,50,54,158,3,1, +4,103,51,50,55,159,3,1,7,101,110,118,50,56,56,55,160,2,160,2,160, +2,160,2,160,16,12,8,58,11,2,87,2,148,67,107,101,121,119,111,114,100, +161,2,151,2,152,3,1,7,101,110,118,50,56,56,56,162,2,162,2,162,2, +162,2,162,18,158,2,66,8,61,18,16,2,95,2,70,8,62,93,8,252,231, +7,95,9,8,252,231,7,2,34,18,158,2,80,8,61,18,16,2,95,2,70, +8,63,93,8,252,234,7,95,9,8,252,234,7,2,34,18,16,2,99,2,38, +8,68,93,8,252,234,7,16,6,8,67,11,2,71,2,72,3,1,7,101,110, +118,50,57,48,53,163,2,163,16,4,8,66,11,2,74,3,1,7,101,110,118, +50,57,48,54,164,16,4,8,65,11,2,76,3,1,7,101,110,118,50,57,48, +55,165,16,4,8,64,11,2,78,3,1,7,101,110,118,50,57,48,57,166,95, +9,8,252,234,7,2,34,18,102,2,80,8,71,36,35,34,8,60,8,59,8, +58,16,4,8,70,11,3,1,4,103,51,51,48,167,3,1,7,101,110,118,50, +57,48,49,168,16,4,8,69,11,2,150,3,1,7,101,110,118,50,57,48,50, +169,18,158,2,89,8,71,18,158,2,145,8,71,18,158,93,16,2,158,2,146, +8,71,9,8,71,18,158,2,89,8,71,18,158,2,147,8,71,18,158,10,8, +71,18,158,2,146,8,71,18,158,2,149,8,71,18,158,2,89,8,71,18,158, +2,89,8,71,18,158,2,89,8,71,18,158,2,89,8,71,18,158,2,23,8, +71,18,158,2,146,8,71,18,158,2,89,8,71,18,158,2,89,8,71,18,158, +2,89,8,71,18,158,2,89,8,71,18,16,2,158,94,16,2,98,2,150,8, +75,93,8,252,230,7,16,4,8,74,11,3,1,8,119,115,116,109,112,51,50, +56,170,3,1,7,101,110,118,50,56,57,53,171,16,4,8,73,11,3,1,4, +103,51,50,57,172,3,1,7,101,110,118,50,57,49,56,173,16,4,8,72,11, +2,130,3,1,7,101,110,118,50,57,49,57,174,9,16,2,158,2,38,8,75, +9,8,75,95,9,8,252,230,7,2,30,11,16,5,93,2,21,89,162,32,33, +48,9,223,0,27,89,162,32,32,36,2,144,223,2,250,22,252,39,2,11,6, +10,10,98,97,100,32,115,121,110,116,97,120,195,27,28,248,80,158,35,32,196, +249,80,158,36,33,248,80,158,37,34,198,27,248,80,158,38,35,199,28,248,80, +158,38,32,193,249,80,158,39,36,27,248,80,158,41,34,196,28,248,80,158,41, +37,193,248,22,59,248,80,158,42,38,194,11,27,248,80,158,41,35,196,28,248, +80,158,41,37,193,248,22,9,89,162,32,33,39,9,224,9,1,27,249,22,2, +89,162,32,33,45,9,224,4,5,249,80,158,35,39,28,248,80,158,36,32,197, +249,80,158,37,33,248,80,158,38,34,199,27,248,80,158,39,35,200,28,248,80, +158,39,32,193,249,80,158,40,33,248,80,158,41,34,195,248,80,158,41,40,248, +80,158,42,35,196,11,11,194,248,80,158,37,38,196,28,248,22,57,193,21,93, +9,248,80,158,35,41,193,11,11,11,28,192,27,248,22,52,194,27,248,22,78, +195,27,248,22,87,196,27,248,22,88,197,28,249,22,4,80,158,40,42,248,22, +216,27,20,15,159,42,32,45,250,22,209,20,15,159,45,33,45,201,195,249,80, +158,40,43,201,27,251,22,61,200,202,199,201,27,20,15,159,42,34,45,91,159, +33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,9,89,162,32,33, +40,9,226,12,2,3,1,250,22,31,89,162,32,32,36,9,225,6,3,7,90, +161,33,33,10,247,22,252,184,2,248,22,252,184,2,89,162,32,33,36,9,224, +3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22,252,181,2,193,248, +22,252,186,2,193,249,80,158,35,44,21,94,1,21,109,97,107,101,45,115,101, +116,33,45,116,114,97,110,115,102,111,114,109,101,114,175,95,2,145,93,2,146, +100,2,147,2,87,10,2,146,94,2,148,2,38,2,149,94,2,151,95,2,23, +2,146,2,152,2,38,20,15,159,35,35,45,89,162,32,32,8,32,9,225,6, +5,4,27,250,22,209,20,15,159,38,36,45,250,22,209,20,15,159,41,37,45, +249,22,60,20,15,159,43,38,45,250,22,209,20,15,159,46,39,45,250,22,60, +20,15,159,49,40,45,20,15,159,49,41,45,250,22,209,20,15,159,52,42,45, +254,22,62,20,15,159,59,43,45,248,22,78,23,26,20,15,159,59,44,45,20, +15,159,59,45,45,248,22,88,23,26,20,15,159,59,46,45,250,22,2,89,162, +33,33,46,9,223,30,250,22,209,20,15,159,35,47,45,249,22,60,248,22,52, +199,250,22,209,20,15,159,40,48,45,250,22,60,20,15,159,43,49,45,20,15, +159,43,50,45,248,22,78,205,20,15,159,40,51,45,20,15,159,35,52,45,248, +22,52,23,29,248,22,87,23,29,20,15,159,52,53,45,20,15,159,46,54,45, +20,15,159,41,55,45,197,89,162,32,32,33,9,223,0,192,89,162,32,32,34, +9,223,3,248,22,252,184,2,208,247,197,247,193,32,20,98,158,16,13,2,42, +2,44,2,46,2,48,2,50,2,52,2,56,2,54,2,58,2,107,2,153,2, +62,2,64,16,24,18,16,2,95,2,70,8,76,93,8,252,248,7,95,9,8, +252,248,7,2,34,18,100,2,80,8,80,36,35,34,16,4,8,79,11,2,146, +3,1,7,101,110,118,50,57,50,50,176,16,10,8,78,11,3,1,4,103,51, +51,49,177,3,1,4,103,51,51,50,178,3,1,4,103,51,51,51,179,3,1, +4,103,51,51,52,180,3,1,7,101,110,118,50,57,51,53,181,2,181,2,181, +2,181,16,10,8,77,11,2,87,2,148,2,151,2,152,3,1,7,101,110,118, +50,57,51,54,182,2,182,2,182,2,182,18,16,2,95,2,70,8,81,93,8, +252,250,7,95,9,8,252,250,7,2,34,18,16,2,99,2,38,8,86,93,8, +252,250,7,16,6,8,85,11,2,71,2,72,3,1,7,101,110,118,50,57,52, +50,183,2,183,16,4,8,84,11,2,74,3,1,7,101,110,118,50,57,52,51, +184,16,4,8,83,11,2,76,3,1,7,101,110,118,50,57,52,52,185,16,4, +8,82,11,2,78,3,1,7,101,110,118,50,57,52,54,186,95,9,8,252,250, +7,2,34,18,158,2,80,8,80,18,158,2,89,8,80,18,158,2,175,8,80, +18,158,2,89,8,80,18,158,2,145,8,80,18,158,93,16,2,158,2,146,8, +80,9,8,80,18,158,2,89,8,80,18,158,2,147,8,80,18,158,10,8,80, +18,158,2,146,8,80,18,158,2,149,8,80,18,158,2,89,8,80,18,158,2, +89,8,80,18,158,2,23,8,80,18,158,2,146,8,80,18,158,2,89,8,80, +18,158,2,89,8,80,18,158,2,89,8,80,18,158,2,89,8,80,18,158,2, +89,8,80,11,93,83,159,32,93,80,159,32,32,33,89,162,32,33,35,2,4, +223,0,248,22,9,89,162,32,33,38,9,224,1,2,27,247,22,110,87,94,249, +22,3,89,162,32,33,43,9,226,4,3,5,2,87,94,28,248,80,158,36,33, +197,12,250,22,252,40,2,2,4,6,19,19,108,105,115,116,32,111,102,32,105, +100,101,110,116,105,102,105,101,114,115,197,27,250,22,116,196,248,22,210,201,89, +97,40,32,32,9,222,87,94,28,249,22,5,89,162,32,33,36,9,223,7,249, +22,221,195,194,194,248,195,198,12,250,22,115,196,248,22,210,201,249,22,51,202, +197,195,11,98,68,35,37,107,101,114,110,101,108,187,2,67,2,6,2,34,2, +30,2,32,98,2,187,2,67,2,6,2,34,2,30,2,32,0}; + EVAL_ONE_SIZED_STR((char *)expr, 7954); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,49,133,252,242,14,159,32,20,97,158,16,1,20, -23,65,98,101,103,105,110,0,16,0,83,158,39,20,94,114,67,35,37,113,113, -115,116,120,1,29,2,11,11,10,10,10,32,80,158,32,32,20,97,158,16,2, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,102,252,138,12,159,32,20,98,158,16,1,20, +24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,67,35,37,113,113, +115,116,120,1,29,2,11,11,10,10,10,32,80,158,32,32,20,98,158,16,2, 30,3,2,2,79,99,104,101,99,107,45,115,112,108,105,99,105,110,103,45,108, 105,115,116,4,254,1,30,5,65,35,37,115,116,120,6,69,115,116,120,45,108, -105,115,116,63,7,8,16,0,11,11,16,1,2,4,33,11,16,4,68,117,110, -115,121,110,116,97,120,8,75,113,117,97,115,105,115,121,110,116,97,120,47,108, -111,99,9,77,117,110,115,121,110,116,97,120,45,115,112,108,105,99,105,110,103, -10,71,113,117,97,115,105,115,121,110,116,97,120,11,16,4,11,11,11,11,16, -4,2,8,2,9,2,10,2,11,32,36,94,16,5,94,2,8,2,10,27,89, -162,32,33,36,61,102,12,222,250,22,252,38,2,11,6,30,30,105,108,108,101, +105,115,116,63,7,8,16,0,11,11,16,1,2,4,33,11,16,4,71,113,117, +97,115,105,115,121,110,116,97,120,8,68,117,110,115,121,110,116,97,120,9,75, +113,117,97,115,105,115,121,110,116,97,120,47,108,111,99,10,77,117,110,115,121, +110,116,97,120,45,115,112,108,105,99,105,110,103,11,16,4,11,11,11,11,16, +4,2,8,2,9,2,10,2,11,32,36,94,16,5,94,2,9,2,11,27,89, +162,32,33,36,61,102,12,222,250,22,252,39,2,11,6,30,30,105,108,108,101, 103,97,108,32,111,117,116,115,105,100,101,32,111,102,32,113,117,97,115,105,115, -121,110,116,97,120,195,249,22,7,194,194,35,20,97,158,16,0,16,0,11,16, -5,94,2,11,2,9,27,89,162,32,35,42,62,113,113,13,223,1,27,83,160, -41,32,33,40,251,91,159,33,11,20,12,95,33,192,89,162,32,36,56,64,108, -111,111,112,14,226,6,7,5,0,27,249,22,209,83,160,41,33,38,40,199,27, +121,110,116,97,120,195,249,22,7,194,194,35,20,98,158,16,0,16,0,11,16, +5,94,2,8,2,10,27,89,162,32,35,42,62,113,113,13,223,1,27,20,15, +159,33,32,40,251,91,159,33,11,20,12,95,33,192,89,162,32,36,56,64,108, +111,111,112,14,226,6,7,5,0,27,249,22,209,20,15,159,38,33,40,199,27, 28,248,80,158,38,32,194,28,27,248,80,158,39,33,195,28,248,80,158,39,34, -193,28,249,22,223,194,83,160,41,34,40,40,9,11,11,27,248,80,158,39,35, +193,28,249,22,223,194,20,15,159,40,34,40,9,11,11,27,248,80,158,39,35, 195,28,248,80,158,39,32,193,249,80,158,40,36,248,80,158,41,33,195,248,80, 158,41,37,248,80,158,42,35,196,11,11,11,28,192,28,248,22,186,200,27,248, 22,52,248,80,158,40,38,21,93,62,117,113,15,249,204,194,248,22,59,249,22, 59,197,198,251,198,196,248,22,171,204,204,89,162,32,34,46,9,226,9,7,13, 10,249,195,250,22,209,199,249,22,59,248,80,158,43,33,200,203,197,199,27,28, -248,80,158,39,34,195,28,249,22,223,196,83,160,41,35,40,40,9,11,11,28, -192,251,22,252,38,2,11,6,25,25,109,105,115,117,115,101,32,119,105,116,104, +248,80,158,39,34,195,28,249,22,223,196,20,15,159,40,35,40,9,11,11,28, +192,251,22,252,39,2,11,6,25,25,109,105,115,117,115,101,32,119,105,116,104, 105,110,32,113,117,97,115,105,115,121,110,116,97,120,201,203,27,28,248,80,158, 40,32,196,249,80,158,41,36,27,248,80,158,43,33,199,28,248,80,158,43,32, 193,28,27,248,80,158,44,33,194,28,248,80,158,44,34,193,28,249,22,223,194, -83,160,41,36,45,40,9,11,11,27,248,80,158,44,35,194,28,248,80,158,44, +20,15,159,45,36,40,9,11,11,27,248,80,158,44,35,194,28,248,80,158,44, 32,193,249,80,158,45,39,248,80,158,46,33,195,248,80,158,46,37,248,80,158, 47,35,196,11,11,11,27,248,80,158,43,35,199,250,22,209,201,195,201,11,28, 192,27,248,22,52,194,27,248,22,53,195,28,248,22,186,204,27,89,162,32,34, 8,34,71,114,101,115,116,45,100,111,110,101,45,107,16,226,10,14,11,2,27, -249,22,209,83,160,41,37,38,40,248,22,52,248,80,158,40,38,21,93,63,117, -113,115,17,27,249,22,209,83,160,41,38,39,40,250,22,209,199,63,99,116,120, -18,199,249,198,250,22,209,200,250,22,61,201,83,160,41,39,45,40,206,200,249, -22,51,27,250,22,61,202,201,200,27,83,160,41,40,43,40,250,22,209,83,160, -41,41,46,40,250,22,209,83,160,41,42,49,40,249,22,60,250,22,209,83,160, -41,43,54,40,249,22,60,248,22,78,23,15,83,160,41,44,56,40,83,160,41, -45,54,40,250,22,209,83,160,41,46,54,40,250,22,60,83,160,41,47,57,40, -248,22,52,23,16,250,22,209,83,160,41,48,8,28,40,249,22,60,83,160,41, -49,8,30,40,248,22,80,23,21,83,160,41,50,8,28,40,83,160,41,51,54, -40,83,160,41,52,49,40,195,203,251,203,197,23,16,89,162,32,32,36,9,224, +249,22,209,20,15,159,38,37,40,248,22,52,248,80,158,40,38,21,93,63,117, +113,115,17,27,249,22,209,20,15,159,39,38,40,250,22,209,199,63,99,116,120, +18,199,249,198,250,22,209,200,250,22,61,201,20,15,159,45,39,40,206,200,249, +22,51,27,250,22,61,200,202,201,27,20,15,159,43,40,40,250,22,209,20,15, +159,46,41,40,250,22,209,20,15,159,49,42,40,249,22,60,250,22,209,20,15, +159,54,43,40,249,22,60,248,22,80,23,15,20,15,159,56,44,40,20,15,159, +54,45,40,250,22,209,20,15,159,54,46,40,250,22,60,20,15,159,57,47,40, +248,22,78,23,16,250,22,209,20,15,159,8,28,48,40,249,22,60,20,15,159, +8,30,49,40,248,22,52,23,21,20,15,159,8,28,50,40,20,15,159,54,51, +40,20,15,159,49,52,40,195,203,251,203,197,23,16,89,162,32,32,36,9,224, 5,4,249,194,195,9,196,251,202,197,248,22,171,23,16,89,162,32,32,46,9, 229,13,10,17,16,15,14,4,251,201,196,198,199,27,248,80,158,44,33,199,27, 9,89,162,32,34,47,9,226,10,7,0,1,249,197,250,22,209,199,249,22,51, @@ -1906,20 +1806,20 @@ 158,46,33,202,205,248,80,158,43,33,199,89,162,32,34,47,9,226,5,3,9, 0,249,197,250,22,209,199,249,22,51,199,203,199,249,22,65,197,201,251,201,197, 199,89,162,32,32,36,9,224,5,4,249,194,195,9,196,27,28,248,80,158,41, -34,197,28,249,22,223,198,83,160,41,53,42,40,9,11,11,28,192,251,22,252, -38,2,11,6,25,25,109,105,115,117,115,101,32,119,105,116,104,105,110,32,113, +34,197,28,249,22,223,198,20,15,159,42,53,40,9,11,11,28,192,251,22,252, +39,2,11,6,25,25,109,105,115,117,115,101,32,119,105,116,104,105,110,32,113, 117,97,115,105,115,121,110,116,97,120,203,205,27,28,248,80,158,42,32,198,28, -27,248,80,158,43,33,199,28,248,80,158,43,34,193,28,249,22,223,194,83,160, -41,54,44,40,9,11,11,27,248,80,158,43,35,199,28,248,80,158,43,32,193, +27,248,80,158,43,33,199,28,248,80,158,43,34,193,28,249,22,223,194,20,15, +159,44,54,40,9,11,11,27,248,80,158,43,35,199,28,248,80,158,43,32,193, 249,80,158,44,36,248,80,158,45,33,195,248,80,158,45,37,248,80,158,46,35, 196,11,11,11,28,192,251,202,196,248,22,170,23,16,23,16,89,162,32,34,45, 9,225,13,17,14,249,195,250,22,209,197,249,22,59,248,80,158,42,33,200,202, 197,198,28,248,22,50,248,22,210,204,250,91,159,33,11,20,12,95,33,192,89, 162,32,35,46,65,112,108,111,111,112,19,226,13,10,15,0,28,248,22,50,197, -28,27,248,22,52,198,27,28,248,80,158,38,34,194,27,249,22,223,196,83,160, -41,55,40,40,28,192,192,249,22,223,196,83,160,41,56,40,40,11,28,192,192, +28,27,248,22,52,198,27,28,248,80,158,38,34,194,27,249,22,223,196,20,15, +159,40,55,40,28,192,192,249,22,223,196,20,15,159,40,56,40,11,28,192,192, 28,248,80,158,38,32,194,27,248,80,158,39,33,195,28,248,80,158,39,34,193, -249,22,223,194,83,160,41,57,40,40,11,11,251,198,250,22,209,11,203,11,197, +249,22,223,194,20,15,159,40,57,40,11,11,251,198,250,22,209,11,203,11,197, 201,202,250,195,248,22,53,200,89,162,32,32,42,9,227,5,4,9,8,7,251, 200,248,22,52,197,199,197,89,162,32,34,45,9,224,6,4,249,195,249,22,51, 250,22,209,248,22,52,200,201,248,22,52,200,248,22,53,197,197,89,162,32,34, @@ -1933,22 +1833,22 @@ 15,23,16,89,162,32,34,43,9,224,17,14,249,195,250,22,209,197,248,22,252, 230,1,248,22,216,201,197,197,247,204,199,32,89,162,32,32,40,66,115,97,109, 101,45,107,21,226,8,7,6,4,250,22,209,195,248,199,198,196,89,162,32,34, -45,2,20,226,5,8,6,4,250,22,209,195,250,22,59,83,160,41,58,41,40, +45,2,20,226,5,8,6,4,250,22,209,195,250,22,59,20,15,159,41,58,40, 203,248,201,203,196,249,22,7,89,162,32,33,45,9,224,3,2,27,249,22,209, -83,160,41,59,36,40,197,27,28,248,80,158,36,32,194,249,80,158,37,39,248, +20,15,159,36,59,40,197,27,28,248,80,158,36,32,194,249,80,158,37,39,248, 80,158,38,33,196,27,248,80,158,39,35,197,28,248,80,158,39,32,193,249,80, 158,40,36,248,80,158,41,33,195,248,80,158,41,37,248,80,158,42,35,196,11, 11,28,192,27,248,22,52,194,27,248,22,53,195,250,199,201,195,89,162,32,33, -36,9,223,8,249,22,59,83,160,41,8,28,34,40,195,250,22,252,38,2,11, +36,9,223,8,249,22,59,20,15,159,34,8,28,40,195,250,22,252,39,2,11, 6,10,10,98,97,100,32,115,121,110,116,97,120,196,89,162,32,33,49,9,224, -3,2,27,249,22,209,83,160,41,8,29,36,40,197,27,28,248,80,158,36,32, +3,2,27,249,22,209,20,15,159,36,8,29,40,197,27,28,248,80,158,36,32, 194,249,80,158,37,39,248,80,158,38,33,196,27,248,80,158,39,35,197,28,248, 80,158,39,32,193,249,80,158,40,39,248,80,158,41,33,195,27,248,80,158,42, 35,196,28,248,80,158,42,32,193,249,80,158,43,36,248,80,158,44,33,195,248, 80,158,44,37,248,80,158,45,35,196,11,11,11,28,192,27,248,22,52,194,27, 248,22,78,195,27,248,22,80,196,250,200,202,195,89,162,32,33,38,9,224,9, -4,250,22,59,83,160,41,8,30,36,40,195,197,250,22,252,38,2,11,6,10, -10,98,97,100,32,115,121,110,116,97,120,196,35,20,97,158,16,8,30,22,2, +4,250,22,59,20,15,159,36,8,30,40,195,197,250,22,252,39,2,11,6,10, +10,98,97,100,32,115,121,110,116,97,120,196,35,20,98,158,16,8,30,22,2, 6,69,115,116,120,45,112,97,105,114,63,23,11,30,24,2,6,67,115,116,120, 45,99,97,114,25,5,30,26,2,6,71,105,100,101,110,116,105,102,105,101,114, 63,27,2,30,28,2,6,67,115,116,120,45,99,100,114,29,6,30,30,2,6, @@ -1956,104 +1856,75 @@ 110,117,108,108,47,35,102,33,9,30,34,70,35,37,119,105,116,104,45,115,116, 120,35,1,20,103,101,110,101,114,97,116,101,45,116,101,109,112,111,114,97,114, 105,101,115,36,0,30,37,2,6,67,99,111,110,115,47,35,102,38,1,16,31, -18,98,64,104,101,114,101,39,38,97,36,10,32,11,16,88,2,9,2,2,2, -31,2,6,66,115,121,110,116,97,120,40,69,35,37,115,116,120,99,97,115,101, -41,2,36,2,35,67,45,100,101,102,105,110,101,42,74,35,37,100,101,102,105, -110,101,45,101,116,45,97,108,43,72,115,121,110,116,97,120,45,99,97,115,101, -42,44,68,35,37,115,116,120,108,111,99,45,70,115,116,120,45,114,111,116,97, -116,101,46,2,6,73,115,116,120,45,99,104,101,99,107,47,101,115,99,47,2, -6,2,8,2,2,71,115,116,120,45,114,111,116,97,116,101,42,48,2,6,2, -29,2,6,74,45,100,101,102,105,110,101,45,115,121,110,116,97,120,49,2,43, -75,108,101,116,114,101,99,45,115,121,110,116,97,120,101,115,50,76,35,37,115, -116,120,99,97,115,101,45,115,99,104,101,109,101,51,2,7,2,6,73,100,101, -102,105,110,101,45,115,116,114,117,99,116,52,2,43,73,108,101,116,114,101,99, -45,115,121,110,116,97,120,53,2,51,71,115,121,110,116,97,120,45,99,97,115, -101,54,2,45,64,119,104,101,110,55,2,43,2,38,2,6,2,23,2,6,69, -115,116,120,45,110,117,108,108,63,56,2,6,66,117,110,108,101,115,115,57,2, -43,70,108,101,116,45,115,121,110,116,97,120,58,2,51,66,108,101,116,47,101, -99,59,2,43,2,25,2,6,64,99,111,110,100,60,66,35,37,99,111,110,100, -61,2,11,2,2,2,27,2,6,70,113,117,97,115,105,113,117,111,116,101,62, -71,35,37,113,113,45,97,110,100,45,111,114,63,70,115,121,110,116,97,120,47, -108,111,99,64,2,45,72,108,101,116,45,115,121,110,116,97,120,101,115,65,2, -51,69,115,116,120,45,62,108,105,115,116,66,2,6,71,119,105,116,104,45,115, -121,110,116,97,120,67,2,35,1,26,99,104,101,99,107,45,100,117,112,108,105, -99,97,116,101,45,105,100,101,110,116,105,102,105,101,114,68,2,51,72,115,121, -110,116,97,120,45,114,117,108,101,115,69,2,51,63,97,110,100,70,2,63,74, -115,112,108,105,116,45,115,116,120,45,108,105,115,116,71,2,6,62,111,114,72, -2,63,75,115,121,110,116,97,120,45,105,100,45,114,117,108,101,115,73,2,51, -2,4,2,2,2,33,2,6,2,10,2,2,74,115,116,120,45,118,101,99,116, -111,114,45,114,101,102,74,2,6,71,115,116,120,45,118,101,99,116,111,114,63, -75,2,6,97,35,10,33,11,16,78,2,31,2,6,2,40,2,41,2,36,2, -35,2,42,2,43,2,44,2,45,2,46,2,6,2,47,2,6,2,48,2,6, -2,29,2,6,2,49,2,43,2,50,2,51,2,7,2,6,2,52,2,43,2, -53,2,51,2,54,2,45,2,55,2,43,2,38,2,6,2,23,2,6,2,56, -2,6,2,57,2,43,2,58,2,51,2,59,2,43,2,25,2,6,2,60,2, -61,2,27,2,6,2,62,2,63,2,64,2,45,2,65,2,51,2,66,2,6, -2,67,2,35,2,68,2,51,2,69,2,51,2,70,2,63,2,71,2,6,2, -72,2,63,2,73,2,51,2,33,2,6,2,74,2,6,2,75,2,6,96,34, -8,254,1,11,16,0,16,8,33,11,68,111,114,105,103,45,115,116,120,76,64, -98,111,100,121,77,68,109,107,45,102,105,110,97,108,78,3,1,7,101,110,118, -50,57,54,57,79,2,79,2,79,18,101,2,39,42,36,35,34,33,16,4,41, -11,68,104,101,114,101,45,115,116,120,80,3,1,7,101,110,118,50,57,55,48, -81,16,4,40,11,2,14,3,1,7,101,110,118,50,57,55,49,82,16,10,39, -11,63,115,116,120,83,65,100,101,112,116,104,84,2,21,2,20,3,1,7,101, -110,118,50,57,55,50,85,2,85,2,85,2,85,18,158,2,8,42,18,158,2, -8,42,18,158,2,10,42,18,104,2,39,46,36,35,34,33,41,40,39,16,6, -45,11,3,1,4,103,51,51,55,86,3,1,4,103,51,51,56,87,3,1,7, -101,110,118,50,57,57,51,88,2,88,16,6,44,11,61,120,89,64,114,101,115, -116,90,3,1,7,101,110,118,50,57,57,52,91,2,91,16,6,43,11,66,114, -101,115,116,45,118,92,68,98,105,110,100,105,110,103,115,93,3,1,7,101,110, -118,50,57,57,56,94,2,94,18,158,2,39,46,18,108,63,46,46,46,95,51, -36,35,34,33,41,40,39,45,44,43,16,4,50,11,3,1,4,103,51,52,51, -96,3,1,7,101,110,118,51,48,48,54,97,16,4,49,11,64,116,101,109,112, -98,3,1,7,101,110,118,51,48,48,55,99,16,4,48,11,3,1,4,103,51, -52,53,100,3,1,7,101,110,118,51,48,49,54,101,16,4,47,11,2,18,3, -1,7,101,110,118,51,48,49,55,102,18,16,2,95,66,115,114,99,116,97,103, -103,52,93,8,252,38,8,95,9,8,252,38,8,2,41,18,158,64,100,101,115, -116,104,51,18,158,2,18,51,18,158,2,18,51,18,158,2,95,51,18,158,2, -18,51,18,158,2,18,51,18,158,2,4,51,18,158,2,18,51,18,158,72,113, -117,111,116,101,45,115,121,110,116,97,120,105,51,18,158,2,18,51,18,158,2, -18,51,18,158,2,18,51,18,158,2,10,42,18,158,2,11,42,18,106,2,8, -58,36,35,34,33,41,40,39,16,4,57,11,3,1,4,103,51,51,53,106,3, -1,7,101,110,118,51,48,52,48,107,16,4,56,11,65,95,101,108,115,101,108, -3,1,7,101,110,118,51,48,52,49,109,16,4,55,11,2,19,3,1,7,101, -110,118,51,48,52,52,110,16,4,54,11,61,108,111,3,1,7,101,110,118,51, -48,52,53,112,16,4,53,11,61,97,113,3,1,7,101,110,118,51,48,52,54, -114,18,158,2,11,58,18,158,2,10,58,18,16,2,100,2,67,8,28,36,35, -34,33,41,16,4,59,11,2,93,3,1,7,101,110,118,51,48,53,56,115,9, -18,99,2,39,8,31,36,35,34,16,4,8,30,11,2,13,3,1,7,101,110, -118,50,57,54,56,116,16,4,8,29,11,2,76,3,1,7,101,110,118,51,48, -53,57,117,18,102,2,40,8,35,36,35,34,8,30,8,29,16,6,8,34,11, -3,1,4,103,51,52,54,118,3,1,4,103,51,52,55,119,3,1,7,101,110, -118,51,48,54,52,120,2,120,16,6,8,33,11,61,95,121,2,83,3,1,7, -101,110,118,51,48,54,53,122,2,122,16,4,8,32,11,2,77,3,1,7,101, -110,118,51,48,54,56,123,18,99,2,39,8,37,36,35,34,8,30,16,4,8, -36,11,2,76,3,1,7,101,110,118,51,48,54,57,124,18,102,2,64,8,41, -36,35,34,8,30,8,36,16,8,8,40,11,3,1,4,103,51,52,56,125,3, -1,4,103,51,52,57,126,3,1,4,103,51,53,48,127,3,1,7,101,110,118, -51,48,55,53,128,2,128,2,128,16,8,8,39,11,2,121,63,108,111,99,129, -2,83,3,1,7,101,110,118,51,48,55,54,130,2,130,2,130,16,4,8,38, -11,2,77,3,1,7,101,110,118,51,48,56,48,131,11,93,83,159,32,93,80, -159,32,32,33,89,162,32,34,38,2,4,223,0,87,94,28,248,80,158,33,33, -194,12,250,22,252,39,2,2,10,6,18,18,112,114,111,112,101,114,32,115,121, -110,116,97,120,32,108,105,115,116,196,250,22,209,197,196,197,95,68,35,37,107, -101,114,110,101,108,132,2,51,2,6,95,2,132,2,51,2,6,0}; - EVAL_ONE_SIZED_STR((char *)expr, 3839); +18,98,64,104,101,114,101,39,38,98,36,10,32,11,94,159,2,6,9,11,159, +76,35,37,115,116,120,99,97,115,101,45,115,99,104,101,109,101,40,9,11,16, +10,2,8,2,2,2,10,2,2,2,9,2,2,2,4,2,2,2,11,2,2, +98,35,10,33,11,94,159,2,6,9,11,159,2,40,9,11,16,0,96,34,8, +254,1,11,16,0,16,8,33,11,68,111,114,105,103,45,115,116,120,41,64,98, +111,100,121,42,68,109,107,45,102,105,110,97,108,43,3,1,7,101,110,118,50, +57,54,57,44,2,44,2,44,18,101,2,39,42,36,35,34,33,16,4,41,11, +68,104,101,114,101,45,115,116,120,45,3,1,7,101,110,118,50,57,55,48,46, +16,4,40,11,2,14,3,1,7,101,110,118,50,57,55,49,47,16,10,39,11, +63,115,116,120,48,65,100,101,112,116,104,49,2,21,2,20,3,1,7,101,110, +118,50,57,55,50,50,2,50,2,50,2,50,18,158,2,9,42,18,158,2,9, +42,18,158,2,11,42,18,104,2,39,46,36,35,34,33,41,40,39,16,6,45, +11,3,1,4,103,51,51,55,51,3,1,4,103,51,51,56,52,3,1,7,101, +110,118,50,57,57,51,53,2,53,16,6,44,11,61,120,54,64,114,101,115,116, +55,3,1,7,101,110,118,50,57,57,52,56,2,56,16,6,43,11,66,114,101, +115,116,45,118,57,68,98,105,110,100,105,110,103,115,58,3,1,7,101,110,118, +50,57,57,56,59,2,59,18,158,2,39,46,18,108,63,46,46,46,60,51,36, +35,34,33,41,40,39,45,44,43,16,4,50,11,3,1,4,103,51,52,51,61, +3,1,7,101,110,118,51,48,48,54,62,16,4,49,11,64,116,101,109,112,63, +3,1,7,101,110,118,51,48,48,55,64,16,4,48,11,3,1,4,103,51,52, +53,65,3,1,7,101,110,118,51,48,49,54,66,16,4,47,11,2,18,3,1, +7,101,110,118,51,48,49,55,67,18,16,2,95,66,115,114,99,116,97,103,68, +52,93,8,252,38,8,95,9,8,252,38,8,69,35,37,115,116,120,99,97,115, +101,69,18,158,64,100,101,115,116,70,51,18,158,2,18,51,18,158,2,18,51, +18,158,2,60,51,18,158,2,18,51,18,158,2,18,51,18,158,2,4,51,18, +158,2,18,51,18,158,72,113,117,111,116,101,45,115,121,110,116,97,120,71,51, +18,158,2,18,51,18,158,2,18,51,18,158,2,18,51,18,158,2,11,42,18, +158,2,8,42,18,106,2,9,58,36,35,34,33,41,40,39,16,4,57,11,3, +1,4,103,51,51,53,72,3,1,7,101,110,118,51,48,52,48,73,16,4,56, +11,65,95,101,108,115,101,74,3,1,7,101,110,118,51,48,52,49,75,16,4, +55,11,2,19,3,1,7,101,110,118,51,48,52,52,76,16,4,54,11,61,108, +77,3,1,7,101,110,118,51,48,52,53,78,16,4,53,11,61,97,79,3,1, +7,101,110,118,51,48,52,54,80,18,158,2,8,58,18,158,2,11,58,18,16, +2,100,71,119,105,116,104,45,115,121,110,116,97,120,81,8,28,36,35,34,33, +41,16,4,59,11,2,58,3,1,7,101,110,118,51,48,53,56,82,9,18,99, +2,39,8,31,36,35,34,16,4,8,30,11,2,13,3,1,7,101,110,118,50, +57,54,56,83,16,4,8,29,11,2,41,3,1,7,101,110,118,51,48,53,57, +84,18,102,66,115,121,110,116,97,120,85,8,35,36,35,34,8,30,8,29,16, +6,8,34,11,3,1,4,103,51,52,54,86,3,1,4,103,51,52,55,87,3, +1,7,101,110,118,51,48,54,52,88,2,88,16,6,8,33,11,61,95,89,2, +48,3,1,7,101,110,118,51,48,54,53,90,2,90,16,4,8,32,11,2,42, +3,1,7,101,110,118,51,48,54,56,91,18,99,2,39,8,37,36,35,34,8, +30,16,4,8,36,11,2,41,3,1,7,101,110,118,51,48,54,57,92,18,102, +70,115,121,110,116,97,120,47,108,111,99,93,8,41,36,35,34,8,30,8,36, +16,8,8,40,11,3,1,4,103,51,52,56,94,3,1,4,103,51,52,57,95, +3,1,4,103,51,53,48,96,3,1,7,101,110,118,51,48,55,53,97,2,97, +2,97,16,8,8,39,11,2,89,63,108,111,99,98,2,48,3,1,7,101,110, +118,51,48,55,54,99,2,99,2,99,16,4,8,38,11,2,42,3,1,7,101, +110,118,51,48,56,48,100,11,93,83,159,32,93,80,159,32,32,33,89,162,32, +34,38,2,4,223,0,87,94,28,248,80,158,33,33,194,12,250,22,252,40,2, +2,11,6,18,18,112,114,111,112,101,114,32,115,121,110,116,97,120,32,108,105, +115,116,196,250,22,209,197,196,197,95,68,35,37,107,101,114,110,101,108,101,2, +40,2,6,95,2,101,2,40,2,6,0}; + EVAL_ONE_SIZED_STR((char *)expr, 3223); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,49,207,252,150,29,159,32,20,97,158,16,1,20, -23,65,98,101,103,105,110,0,16,0,83,158,39,20,94,114,68,35,37,100,101, -102,105,110,101,1,29,2,11,11,10,10,10,32,80,158,32,32,20,97,158,16, -0,16,0,11,11,16,0,32,11,16,4,77,100,101,102,105,110,101,45,102,111, -114,45,115,121,110,116,97,120,3,73,100,101,102,105,110,101,45,115,121,110,116, -97,120,4,76,98,101,103,105,110,45,102,111,114,45,115,121,110,116,97,120,5, -66,100,101,102,105,110,101,6,16,4,11,11,11,11,16,4,2,3,2,4,2, -5,2,6,32,36,94,16,5,95,2,6,2,4,2,3,27,89,162,32,33,34, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,165,252,59,26,159,32,20,98,158,16,1,20, +24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,68,35,37,100,101, +102,105,110,101,1,29,2,11,11,10,10,10,32,80,158,32,32,20,98,158,16, +0,16,0,11,11,16,0,32,11,16,4,66,100,101,102,105,110,101,3,76,98, +101,103,105,110,45,102,111,114,45,115,121,110,116,97,120,4,77,100,101,102,105, +110,101,45,102,111,114,45,115,121,110,116,97,120,5,73,100,101,102,105,110,101, +45,115,121,110,116,97,120,6,16,4,11,11,11,11,16,4,2,3,2,4,2, +5,2,6,32,36,94,16,5,95,2,3,2,6,2,5,27,89,162,32,33,34, 62,109,107,7,223,1,89,162,32,33,8,28,9,224,0,1,87,94,28,249,22, -71,247,22,252,80,3,21,93,70,101,120,112,114,101,115,115,105,111,110,8,250, -22,252,38,2,11,6,36,36,110,111,116,32,97,108,108,111,119,101,100,32,105, +71,247,22,252,81,3,21,93,70,101,120,112,114,101,115,115,105,111,110,8,250, +22,252,39,2,11,6,36,36,110,111,116,32,97,108,108,111,119,101,100,32,105, 110,32,97,110,32,101,120,112,114,101,115,115,105,111,110,32,99,111,110,116,101, -120,116,197,12,27,249,22,209,83,160,41,32,36,45,197,27,89,162,32,32,8, +120,116,197,12,27,249,22,209,20,15,159,36,32,45,197,27,89,162,32,32,8, 28,68,116,114,121,45,110,101,120,116,9,226,3,2,4,1,27,89,162,32,32, 50,2,9,226,4,3,2,1,27,89,162,32,32,8,31,2,9,226,4,3,2, 1,27,28,248,80,158,37,32,194,249,80,158,38,33,248,80,158,39,34,196,27, @@ -2062,354 +1933,313 @@ 198,195,198,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,80, 196,91,159,34,11,90,161,34,32,11,91,159,34,11,20,12,96,34,248,194,198, 89,162,32,33,55,72,115,105,109,112,108,101,45,112,114,111,116,111,10,224,11, -9,91,159,34,11,90,161,34,32,11,27,249,22,209,83,160,41,33,38,45,199, +9,91,159,34,11,90,161,34,32,11,27,249,22,209,20,15,159,38,33,45,199, 27,28,248,80,158,38,32,194,249,80,158,39,33,248,80,158,40,34,196,27,248, 80,158,41,35,197,28,248,80,158,41,36,193,248,80,158,41,37,193,11,11,28, -192,27,248,22,52,194,27,248,22,53,195,249,22,7,248,22,216,27,83,160,41, -34,43,45,250,22,209,83,160,41,35,46,45,199,195,89,162,32,33,51,9,225, -9,8,2,27,249,22,209,83,160,41,36,37,45,198,249,80,158,37,38,196,27, -249,22,61,197,198,27,83,160,41,37,39,45,250,22,209,83,160,41,38,42,45, -250,22,209,83,160,41,39,45,45,250,22,62,83,160,41,40,48,45,248,22,53, -203,248,22,52,203,83,160,41,41,45,45,195,27,28,248,80,158,39,32,195,249, -80,158,40,33,248,80,158,41,34,197,27,248,80,158,42,35,198,91,159,35,11, -90,161,35,32,11,250,80,158,47,39,198,33,11,28,194,27,28,248,22,206,197, -196,201,249,80,158,47,40,28,248,80,158,48,36,196,248,22,59,248,80,158,49, -37,197,11,250,22,209,197,199,197,11,11,28,192,27,248,22,52,194,27,248,22, -78,195,27,248,22,80,196,249,22,7,248,22,216,27,249,22,61,198,199,27,83, -160,41,42,46,45,250,22,209,83,160,41,43,49,45,249,22,65,248,22,53,199, -248,22,60,248,22,52,200,195,89,162,32,33,55,9,226,11,10,2,3,27,249, -22,209,83,160,41,44,38,45,199,249,80,158,38,38,197,27,250,22,61,200,199, -198,27,83,160,41,45,40,45,250,22,209,83,160,41,46,43,45,250,22,209,83, -160,41,47,46,45,250,22,62,83,160,41,48,49,45,249,22,65,248,22,78,205, -248,22,52,205,248,22,80,203,83,160,41,49,46,45,195,250,22,252,38,2,11, -6,10,10,98,97,100,32,115,121,110,116,97,120,197,87,95,249,22,3,89,162, -32,33,39,9,224,5,4,28,248,80,158,34,41,195,12,251,22,252,38,2,11, -6,40,40,110,111,116,32,97,110,32,105,100,101,110,116,105,102,105,101,114,32, -102,111,114,32,112,114,111,99,101,100,117,114,101,32,97,114,103,117,109,101,110, -116,196,198,194,27,248,80,158,37,42,194,28,192,251,22,252,38,2,11,6,29, -29,100,117,112,108,105,99,97,116,101,32,97,114,103,117,109,101,110,116,32,105, -100,101,110,116,105,102,105,101,114,199,196,12,193,89,162,32,33,47,73,103,101, -110,101,114,97,108,45,112,114,111,116,111,11,226,11,9,1,0,27,249,22,209, -83,160,41,50,38,45,199,27,89,162,32,32,54,2,9,228,5,4,3,2,6, -1,27,28,248,80,158,39,32,194,249,80,158,40,40,27,248,80,158,42,34,197, -28,248,80,158,42,32,193,249,80,158,43,33,248,80,158,44,34,195,27,248,80, -158,45,35,196,248,22,59,250,22,209,199,196,199,11,27,248,80,158,42,35,197, -250,22,209,199,195,199,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248, -22,80,196,91,159,34,11,90,161,34,32,11,248,202,27,249,22,61,200,199,27, -83,160,41,51,46,45,250,22,209,83,160,41,52,49,45,250,22,209,83,160,41, -53,52,45,199,83,160,41,54,52,45,195,27,248,202,201,249,22,7,195,89,162, -32,33,38,9,224,4,2,248,194,248,22,59,248,195,197,27,28,248,80,158,40, -32,195,249,80,158,41,33,248,80,158,42,34,197,27,248,80,158,43,35,198,250, -22,209,200,195,200,11,28,192,27,248,22,52,194,27,248,22,53,195,251,22,252, -38,2,11,6,82,82,98,97,100,32,115,121,110,116,97,120,32,40,110,111,116, -32,97,110,32,105,100,101,110,116,105,102,105,101,114,32,102,111,114,32,112,114, -111,99,101,100,117,114,101,32,110,97,109,101,44,32,97,110,100,32,110,111,116, -32,97,32,110,101,115,116,101,100,32,112,114,111,99,101,100,117,114,101,32,102, -111,114,109,41,204,197,250,22,252,38,2,11,6,10,10,98,97,100,32,115,121, -110,116,97,120,197,27,28,248,80,158,39,32,195,249,80,158,40,33,248,80,158, -41,34,197,27,248,80,158,42,35,198,250,22,209,200,195,200,11,28,192,27,248, -22,52,194,27,248,22,53,195,28,248,80,158,41,41,194,249,22,7,195,248,200, -204,247,195,247,193,87,95,28,248,80,158,42,36,195,12,250,22,252,38,2,11, -6,50,50,98,97,100,32,115,121,110,116,97,120,32,40,105,108,108,101,103,97, -108,32,117,115,101,32,111,102,32,96,46,39,32,102,111,114,32,112,114,111,99, -101,100,117,114,101,32,98,111,100,121,41,202,28,248,80,158,42,43,195,250,22, -252,38,2,11,6,46,46,98,97,100,32,115,121,110,116,97,120,32,40,110,111, -32,101,120,112,114,101,115,115,105,111,110,115,32,102,111,114,32,112,114,111,99, -101,100,117,114,101,32,98,111,100,121,41,202,12,27,249,22,209,83,160,41,55, -44,45,203,27,249,22,209,83,160,41,56,45,45,196,27,249,22,209,83,160,41, -57,46,45,248,199,200,249,80,158,46,38,204,27,250,22,61,198,199,200,27,83, -160,41,58,48,45,250,22,209,83,160,41,59,51,45,250,22,209,83,160,41,8, -28,54,45,250,22,60,248,22,80,203,250,22,209,83,160,41,8,29,8,28,45, -248,22,60,248,22,78,23,15,83,160,41,8,30,8,28,45,248,22,52,203,83, -160,41,8,31,54,45,195,250,22,252,38,2,11,6,10,10,98,97,100,32,115, -121,110,116,97,120,196,27,28,248,80,158,38,32,195,249,80,158,39,33,248,80, -158,40,34,197,27,248,80,158,41,35,198,28,248,80,158,41,32,193,27,28,248, -22,206,194,193,198,249,80,158,43,33,248,80,158,44,34,196,27,248,80,158,45, +192,27,248,22,52,194,27,248,22,53,195,249,22,7,248,22,216,27,20,15,159, +43,34,45,250,22,209,20,15,159,46,35,45,199,195,89,162,32,33,49,9,225, +9,8,2,27,249,22,209,20,15,159,37,36,45,198,249,80,158,37,38,196,27, +249,22,61,198,197,27,20,15,159,39,37,45,250,22,209,20,15,159,42,38,45, +250,22,209,20,15,159,45,39,45,249,22,56,20,15,159,47,40,45,201,20,15, +159,45,41,45,195,27,28,248,80,158,39,32,195,249,80,158,40,33,248,80,158, +41,34,197,27,248,80,158,42,35,198,91,159,35,11,90,161,35,32,11,250,80, +158,47,39,198,33,11,28,194,27,28,248,22,206,197,196,201,249,80,158,47,40, +28,248,80,158,48,36,196,248,22,59,248,80,158,49,37,197,11,250,22,209,197, +199,197,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,80,196, +249,22,7,248,22,216,27,249,22,61,198,199,27,20,15,159,46,42,45,250,22, +209,20,15,159,49,43,45,249,22,65,248,22,53,199,248,22,60,248,22,52,200, +195,89,162,32,33,55,9,226,11,10,2,3,27,249,22,209,20,15,159,38,44, +45,199,249,80,158,38,38,197,27,250,22,61,200,199,198,27,20,15,159,40,45, +45,250,22,209,20,15,159,43,46,45,250,22,209,20,15,159,46,47,45,250,22, +62,20,15,159,49,48,45,249,22,65,248,22,78,205,248,22,52,205,248,22,80, +203,20,15,159,46,49,45,195,250,22,252,39,2,11,6,10,10,98,97,100,32, +115,121,110,116,97,120,197,87,95,249,22,3,89,162,32,33,39,9,224,5,4, +28,248,80,158,34,41,195,12,251,22,252,39,2,11,6,40,40,110,111,116,32, +97,110,32,105,100,101,110,116,105,102,105,101,114,32,102,111,114,32,112,114,111, +99,101,100,117,114,101,32,97,114,103,117,109,101,110,116,196,198,194,27,248,80, +158,37,42,194,28,192,251,22,252,39,2,11,6,29,29,100,117,112,108,105,99, +97,116,101,32,97,114,103,117,109,101,110,116,32,105,100,101,110,116,105,102,105, +101,114,199,196,12,193,89,162,32,33,47,73,103,101,110,101,114,97,108,45,112, +114,111,116,111,11,226,11,9,1,0,27,249,22,209,20,15,159,38,50,45,199, +27,89,162,32,32,57,2,9,228,5,4,3,2,6,1,27,28,248,80,158,39, +32,194,249,80,158,40,40,27,248,80,158,42,34,197,28,248,80,158,42,32,193, +249,80,158,43,33,248,80,158,44,34,195,27,248,80,158,45,35,196,248,22,59, +250,22,209,199,196,199,11,27,248,80,158,42,35,197,250,22,209,199,195,199,11, +28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,80,196,91,159,34,11, +90,161,34,32,11,248,202,27,249,22,61,199,200,27,20,15,159,46,51,45,250, +22,209,20,15,159,49,52,45,250,22,209,20,15,159,52,53,45,249,22,56,248, +22,53,202,248,22,52,202,20,15,159,52,54,45,195,27,248,202,201,249,22,7, +195,89,162,32,33,38,9,224,4,2,248,194,248,22,59,248,195,197,27,28,248, +80,158,40,32,195,249,80,158,41,33,248,80,158,42,34,197,27,248,80,158,43, +35,198,250,22,209,200,195,200,11,28,192,27,248,22,52,194,27,248,22,53,195, +251,22,252,39,2,11,6,82,82,98,97,100,32,115,121,110,116,97,120,32,40, +110,111,116,32,97,110,32,105,100,101,110,116,105,102,105,101,114,32,102,111,114, +32,112,114,111,99,101,100,117,114,101,32,110,97,109,101,44,32,97,110,100,32, +110,111,116,32,97,32,110,101,115,116,101,100,32,112,114,111,99,101,100,117,114, +101,32,102,111,114,109,41,204,197,250,22,252,39,2,11,6,10,10,98,97,100, +32,115,121,110,116,97,120,197,27,28,248,80,158,39,32,195,249,80,158,40,33, +248,80,158,41,34,197,27,248,80,158,42,35,198,250,22,209,200,195,200,11,28, +192,27,248,22,52,194,27,248,22,53,195,28,248,80,158,41,41,194,249,22,7, +195,248,200,204,247,195,247,193,87,95,28,248,80,158,42,36,195,12,250,22,252, +39,2,11,6,50,50,98,97,100,32,115,121,110,116,97,120,32,40,105,108,108, +101,103,97,108,32,117,115,101,32,111,102,32,96,46,39,32,102,111,114,32,112, +114,111,99,101,100,117,114,101,32,98,111,100,121,41,202,28,248,80,158,42,43, +195,250,22,252,39,2,11,6,46,46,98,97,100,32,115,121,110,116,97,120,32, +40,110,111,32,101,120,112,114,101,115,115,105,111,110,115,32,102,111,114,32,112, +114,111,99,101,100,117,114,101,32,98,111,100,121,41,202,12,27,249,22,209,20, +15,159,44,55,45,203,27,249,22,209,20,15,159,45,56,45,196,27,249,22,209, +20,15,159,46,57,45,248,199,200,249,80,158,46,38,204,27,250,22,61,200,199, +198,27,20,15,159,48,58,45,250,22,209,20,15,159,51,59,45,250,22,209,20, +15,159,54,8,28,45,250,22,60,248,22,52,203,250,22,209,20,15,159,8,28, +8,29,45,248,22,60,248,22,78,23,15,20,15,159,8,28,8,30,45,248,22, +80,203,20,15,159,54,8,31,45,195,250,22,252,39,2,11,6,10,10,98,97, +100,32,115,121,110,116,97,120,196,27,28,248,80,158,38,32,195,249,80,158,39, +33,248,80,158,40,34,197,27,248,80,158,41,35,198,28,248,80,158,41,32,193, +27,28,248,22,206,194,193,198,249,80,158,43,33,248,80,158,44,34,196,27,248, +80,158,45,35,197,250,22,209,198,195,198,11,11,28,192,27,248,22,52,194,27, +248,22,78,195,27,248,22,80,196,28,248,80,158,41,32,194,247,196,251,22,252, +39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,202,197,247,193,27, +28,248,80,158,38,32,195,249,80,158,39,33,248,80,158,40,34,197,27,248,80, +158,41,35,198,28,248,80,158,41,32,193,27,28,248,22,206,194,193,198,249,80, +158,43,33,248,80,158,44,34,196,27,248,80,158,45,35,197,250,22,209,198,195, +198,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,80,196,28, +248,80,158,41,41,194,250,22,252,39,2,11,27,249,22,209,20,15,159,46,8, +32,45,204,27,28,248,80,158,46,32,194,249,80,158,47,33,248,80,158,48,34, +196,27,248,80,158,49,35,197,28,248,80,158,49,32,193,249,80,158,50,33,248, +80,158,51,34,195,27,248,80,158,52,35,196,28,248,80,158,52,36,193,248,80, +158,52,37,193,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248, +22,80,196,6,50,50,98,97,100,32,115,121,110,116,97,120,32,40,109,117,108, +116,105,112,108,101,32,101,120,112,114,101,115,115,105,111,110,115,32,97,102,116, +101,114,32,105,100,101,110,116,105,102,105,101,114,41,27,28,248,80,158,47,32, +195,249,80,158,48,33,248,80,158,49,34,197,27,248,80,158,50,35,198,28,248, +80,158,50,32,193,249,80,158,51,40,248,80,158,52,34,195,248,80,158,52,44, +248,80,158,53,35,196,11,11,28,192,27,248,22,52,194,27,248,22,53,195,6, +46,46,98,97,100,32,115,121,110,116,97,120,32,40,122,101,114,111,32,101,120, +112,114,101,115,115,105,111,110,115,32,97,102,116,101,114,32,105,100,101,110,116, +105,102,105,101,114,41,27,28,248,80,158,48,32,196,249,80,158,49,33,248,80, +158,50,34,198,27,248,80,158,51,35,199,28,248,80,158,51,32,193,27,28,248, +22,206,194,193,199,249,80,158,53,33,248,80,158,54,34,196,27,248,80,158,55, 35,197,250,22,209,198,195,198,11,11,28,192,27,248,22,52,194,27,248,22,78, -195,27,248,22,80,196,28,248,80,158,41,32,194,247,196,251,22,252,38,2,11, -6,10,10,98,97,100,32,115,121,110,116,97,120,202,197,247,193,27,28,248,80, -158,38,32,195,249,80,158,39,33,248,80,158,40,34,197,27,248,80,158,41,35, -198,28,248,80,158,41,32,193,27,28,248,22,206,194,193,198,249,80,158,43,33, -248,80,158,44,34,196,27,248,80,158,45,35,197,250,22,209,198,195,198,11,11, -28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,80,196,28,248,80,158, -41,41,194,250,22,252,38,2,11,27,249,22,209,83,160,41,8,32,46,45,204, -27,28,248,80,158,46,32,194,249,80,158,47,33,248,80,158,48,34,196,27,248, -80,158,49,35,197,28,248,80,158,49,32,193,249,80,158,50,33,248,80,158,51, -34,195,27,248,80,158,52,35,196,28,248,80,158,52,36,193,248,80,158,52,37, -193,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,80,196, -6,50,50,98,97,100,32,115,121,110,116,97,120,32,40,109,117,108,116,105,112, -108,101,32,101,120,112,114,101,115,115,105,111,110,115,32,97,102,116,101,114,32, -105,100,101,110,116,105,102,105,101,114,41,27,28,248,80,158,47,32,195,249,80, -158,48,33,248,80,158,49,34,197,27,248,80,158,50,35,198,28,248,80,158,50, -32,193,249,80,158,51,40,248,80,158,52,34,195,248,80,158,52,44,248,80,158, -53,35,196,11,11,28,192,27,248,22,52,194,27,248,22,53,195,6,46,46,98, -97,100,32,115,121,110,116,97,120,32,40,122,101,114,111,32,101,120,112,114,101, -115,115,105,111,110,115,32,97,102,116,101,114,32,105,100,101,110,116,105,102,105, -101,114,41,27,28,248,80,158,48,32,196,249,80,158,49,33,248,80,158,50,34, -198,27,248,80,158,51,35,199,28,248,80,158,51,32,193,27,28,248,22,206,194, -193,199,249,80,158,53,33,248,80,158,54,34,196,27,248,80,158,55,35,197,250, -22,209,198,195,198,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248, -22,80,196,6,31,31,98,97,100,32,115,121,110,116,97,120,32,40,105,108,108, -101,103,97,108,32,117,115,101,32,111,102,32,96,46,39,41,250,22,252,38,2, -11,6,10,10,98,97,100,32,115,121,110,116,97,120,198,201,247,196,247,193,27, -28,248,80,158,37,32,195,249,80,158,38,33,248,80,158,39,34,197,27,248,80, -158,40,35,198,28,248,80,158,40,32,193,249,80,158,41,33,248,80,158,42,34, -195,27,248,80,158,43,35,196,28,248,80,158,43,32,193,249,80,158,44,40,248, -80,158,45,34,195,248,80,158,45,44,248,80,158,46,35,196,11,11,11,28,192, -27,248,22,52,194,27,248,22,78,195,27,248,22,80,196,28,248,80,158,40,41, -194,27,249,22,209,83,160,41,8,33,42,45,201,249,80,158,42,38,203,27,250, -22,61,200,198,199,27,83,160,41,8,34,44,45,250,22,209,83,160,41,8,35, -47,45,250,22,209,83,160,41,8,36,50,45,250,22,60,248,22,78,203,250,22, -209,83,160,41,8,37,56,45,248,22,60,248,22,52,23,15,83,160,41,8,38, -56,45,248,22,80,203,83,160,41,8,39,50,45,195,247,196,247,193,250,22,7, -248,196,83,160,41,8,40,37,45,248,196,83,160,41,8,41,37,45,248,196,83, -160,41,8,42,37,45,37,20,97,158,16,13,30,12,65,35,37,115,116,120,13, -69,115,116,120,45,112,97,105,114,63,14,11,30,15,2,13,67,99,111,110,115, -47,35,102,16,1,30,17,2,13,67,115,116,120,45,99,97,114,18,5,30,19, -2,13,67,115,116,120,45,99,100,114,20,6,30,21,2,13,69,115,116,120,45, -108,105,115,116,63,22,8,30,23,2,13,69,115,116,120,45,62,108,105,115,116, -24,4,30,25,68,35,37,115,116,120,108,111,99,26,68,114,101,108,111,99,97, -116,101,27,1,30,28,2,13,74,115,112,108,105,116,45,115,116,120,45,108,105, -115,116,29,3,30,30,2,13,69,97,112,112,101,110,100,47,35,102,31,0,30, -32,2,13,71,105,100,101,110,116,105,102,105,101,114,63,33,2,30,34,76,35, -37,115,116,120,99,97,115,101,45,115,99,104,101,109,101,35,1,26,99,104,101, -99,107,45,100,117,112,108,105,99,97,116,101,45,105,100,101,110,116,105,102,105, -101,114,36,0,30,37,2,13,69,115,116,120,45,110,117,108,108,63,38,10,30, -39,2,13,71,115,116,120,45,110,117,108,108,47,35,102,40,9,16,43,18,99, -64,104,101,114,101,41,39,97,37,10,32,11,16,8,2,3,2,2,2,4,2, -2,2,5,2,2,2,6,2,2,97,36,10,33,11,16,86,75,113,117,97,115, -105,115,121,110,116,97,120,47,108,111,99,42,67,35,37,113,113,115,116,120,43, -2,31,2,13,66,115,121,110,116,97,120,44,69,35,37,115,116,120,99,97,115, -101,45,1,20,103,101,110,101,114,97,116,101,45,116,101,109,112,111,114,97,114, -105,101,115,46,70,35,37,119,105,116,104,45,115,116,120,47,67,45,100,101,102, -105,110,101,48,74,35,37,100,101,102,105,110,101,45,101,116,45,97,108,49,72, -115,121,110,116,97,120,45,99,97,115,101,42,50,2,26,70,115,116,120,45,114, -111,116,97,116,101,51,2,13,73,115,116,120,45,99,104,101,99,107,47,101,115, -99,52,2,13,68,117,110,115,121,110,116,97,120,53,2,43,71,115,116,120,45, -114,111,116,97,116,101,42,54,2,13,2,20,2,13,74,45,100,101,102,105,110, -101,45,115,121,110,116,97,120,55,2,49,75,108,101,116,114,101,99,45,115,121, -110,116,97,120,101,115,56,2,35,2,22,2,13,73,100,101,102,105,110,101,45, -115,116,114,117,99,116,57,2,49,73,108,101,116,114,101,99,45,115,121,110,116, -97,120,58,2,35,71,115,121,110,116,97,120,45,99,97,115,101,59,2,26,64, -119,104,101,110,60,2,49,2,16,2,13,2,14,2,13,2,38,2,13,66,117, -110,108,101,115,115,61,2,49,70,108,101,116,45,115,121,110,116,97,120,62,2, -35,66,108,101,116,47,101,99,63,2,49,2,18,2,13,64,99,111,110,100,64, -66,35,37,99,111,110,100,65,71,113,117,97,115,105,115,121,110,116,97,120,66, -2,43,2,33,2,13,70,113,117,97,115,105,113,117,111,116,101,67,71,35,37, -113,113,45,97,110,100,45,111,114,68,70,115,121,110,116,97,120,47,108,111,99, -69,2,26,72,108,101,116,45,115,121,110,116,97,120,101,115,70,2,35,2,24, -2,13,71,119,105,116,104,45,115,121,110,116,97,120,71,2,47,2,36,2,35, -72,115,121,110,116,97,120,45,114,117,108,101,115,72,2,35,63,97,110,100,73, -2,68,2,29,2,13,62,111,114,74,2,68,75,115,121,110,116,97,120,45,105, -100,45,114,117,108,101,115,75,2,35,2,40,2,13,77,117,110,115,121,110,116, -97,120,45,115,112,108,105,99,105,110,103,76,2,43,74,115,116,120,45,118,101, -99,116,111,114,45,114,101,102,77,2,13,71,115,116,120,45,118,101,99,116,111, -114,63,78,2,13,96,35,8,254,1,11,16,0,16,4,34,11,77,100,101,102, -105,110,101,45,118,97,108,117,101,115,45,115,116,120,79,3,1,7,101,110,118, -51,48,56,54,80,16,4,33,11,63,115,116,120,81,3,1,7,101,110,118,51, -48,56,55,82,18,102,2,41,43,37,36,35,34,33,16,8,42,11,3,1,4, -103,51,53,49,83,3,1,4,103,51,53,50,84,3,1,4,103,51,53,51,85, -3,1,7,101,110,118,51,49,48,50,86,2,86,2,86,16,8,41,11,61,95, -87,65,112,114,111,116,111,88,64,98,111,100,121,89,3,1,7,101,110,118,51, -49,48,51,90,2,90,2,90,16,6,40,11,2,10,2,11,3,1,7,101,110, -118,51,49,48,56,91,2,91,18,16,2,95,66,115,114,99,116,97,103,92,44, -93,8,252,114,8,95,9,8,252,114,8,2,45,18,104,64,100,101,115,116,93, -48,37,36,35,34,33,42,41,16,6,47,11,2,10,2,11,2,91,2,91,16, -6,46,11,3,1,4,103,51,54,54,94,3,1,4,103,51,54,55,95,3,1, -7,101,110,118,51,49,49,53,96,2,96,16,6,45,11,62,105,100,97,63,97, -114,103,98,3,1,7,101,110,118,51,49,49,54,99,2,99,18,158,2,41,48, -18,16,2,95,2,92,49,93,8,252,120,8,95,9,8,252,120,8,2,45,18, -158,2,93,48,18,158,63,99,116,120,100,48,18,158,66,108,97,109,98,100,97, -101,48,18,158,2,100,48,18,16,2,95,2,92,50,93,8,252,121,8,95,9, -8,252,121,8,2,45,18,104,2,93,53,37,36,35,34,33,42,41,47,16,8, -52,11,3,1,4,103,51,54,51,102,3,1,4,103,51,54,52,103,3,1,4, -103,51,54,53,104,3,1,7,101,110,118,51,49,52,49,105,2,105,2,105,16, -8,51,11,2,97,2,98,64,114,101,115,116,106,3,1,7,101,110,118,51,49, -52,50,107,2,107,2,107,18,158,2,41,53,18,16,2,95,2,92,54,93,8, -252,127,8,95,9,8,252,127,8,2,45,18,158,2,93,53,18,158,2,100,53, -18,158,2,101,53,18,158,2,100,53,18,158,2,41,43,18,16,2,95,2,92, -55,93,8,252,139,8,95,9,8,252,139,8,2,45,18,104,2,93,58,37,36, -35,34,33,42,41,40,16,8,57,11,3,1,4,103,51,55,54,108,3,1,4, -103,51,55,55,109,3,1,4,103,51,55,56,110,3,1,7,101,110,118,51,49, -55,51,111,2,111,2,111,16,8,56,11,69,115,111,109,101,116,104,105,110,103, -112,64,109,111,114,101,113,2,106,3,1,7,101,110,118,51,49,55,52,114,2, -114,2,114,18,158,2,100,58,18,158,2,100,58,18,102,2,41,8,28,37,36, -35,34,33,42,41,16,6,59,11,2,97,66,109,107,45,114,104,115,115,3,1, -7,101,110,118,51,49,48,55,116,2,116,18,158,2,41,8,28,18,158,2,41, -8,28,18,16,2,95,2,92,8,29,93,8,252,158,8,95,9,8,252,158,8, -2,45,18,158,2,93,8,28,18,158,2,100,8,28,18,158,2,100,8,28,18, -158,2,100,8,28,18,158,2,100,8,28,18,101,2,41,8,32,37,36,35,34, -33,16,8,8,31,11,3,1,4,103,51,53,55,117,3,1,4,103,51,53,56, -118,3,1,4,103,51,53,57,119,3,1,7,101,110,118,51,50,52,56,120,2, -120,2,120,16,8,8,30,11,2,87,2,97,2,106,3,1,7,101,110,118,51, -50,52,57,121,2,121,2,121,18,101,2,41,8,35,37,36,35,34,33,16,8, -8,34,11,3,1,4,103,51,54,48,122,3,1,4,103,51,54,49,123,3,1, -4,103,51,54,50,124,3,1,7,101,110,118,51,50,56,53,125,2,125,2,125, -16,8,8,33,11,2,87,2,97,64,101,120,112,114,126,3,1,7,101,110,118, -51,50,56,54,127,2,127,2,127,18,16,2,95,2,92,8,36,93,8,252,182, -8,95,9,8,252,182,8,2,45,18,158,2,93,8,35,18,158,2,100,8,35, -18,158,2,100,8,35,18,158,2,100,8,35,18,158,2,100,8,35,18,98,73, -100,101,102,105,110,101,45,118,97,108,117,101,115,128,8,38,37,36,35,16,4, -8,37,11,2,7,3,1,7,101,110,118,51,48,56,53,129,18,158,75,100,101, -102,105,110,101,45,115,121,110,116,97,120,101,115,130,8,38,18,158,1,24,100, -101,102,105,110,101,45,118,97,108,117,101,115,45,102,111,114,45,115,121,110,116, -97,120,131,8,38,11,16,5,93,2,5,89,162,32,33,8,32,9,223,0,27, -247,22,252,80,3,87,94,28,249,22,71,194,21,95,66,109,111,100,117,108,101, -132,72,109,111,100,117,108,101,45,98,101,103,105,110,133,69,116,111,112,45,108, -101,118,101,108,134,12,250,22,252,38,2,11,6,51,51,97,108,108,111,119,101, -100,32,111,110,108,121,32,97,116,32,116,104,101,32,116,111,112,45,108,101,118, -101,108,32,111,114,32,97,32,109,111,100,117,108,101,32,116,111,112,45,108,101, -118,101,108,197,27,249,22,209,83,160,41,32,36,42,197,27,28,248,80,158,36, -32,194,249,80,158,37,33,248,80,158,38,34,196,248,80,158,38,35,248,80,158, -39,36,197,11,28,192,83,160,41,33,35,42,27,89,162,32,32,51,2,9,225, -4,5,2,27,28,248,80,158,36,32,194,249,80,158,37,37,248,80,158,38,34, -196,27,248,80,158,39,36,197,28,248,80,158,39,38,193,248,80,158,39,39,193, -11,11,28,192,27,248,22,52,194,27,248,22,53,195,249,80,158,39,40,198,27, -83,160,41,34,40,42,250,22,209,83,160,41,35,43,42,250,22,209,83,160,41, -36,46,42,249,22,56,83,160,41,37,48,42,249,22,2,89,162,33,33,40,9, -223,18,250,22,209,83,160,41,38,35,42,249,22,60,83,160,41,39,37,42,248, -22,52,199,83,160,41,40,35,42,205,83,160,41,41,46,42,195,250,22,252,38, -2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,196,27,28,248,80,158, -38,32,196,249,80,158,39,37,248,80,158,40,34,198,27,248,80,158,41,36,199, -28,248,80,158,41,32,193,249,80,158,42,33,248,80,158,43,34,195,248,80,158, -43,35,248,80,158,44,36,196,11,11,28,192,27,248,22,52,194,27,248,22,53, -195,28,249,22,252,10,2,200,2,133,247,195,27,250,22,252,24,2,196,202,248, -22,216,83,160,41,42,44,42,27,249,22,209,83,160,41,43,43,42,195,27,28, -248,80,158,43,32,194,28,27,248,80,158,44,34,195,28,248,80,158,44,41,193, -28,249,22,224,194,83,160,41,44,45,42,9,11,11,27,248,80,158,44,36,195, -28,248,80,158,44,38,193,248,80,158,44,39,193,11,11,11,28,192,27,83,160, -41,45,43,42,250,22,209,83,160,41,46,46,42,250,22,209,83,160,41,47,49, -42,249,22,56,83,160,41,48,51,42,201,83,160,41,49,49,42,195,27,28,248, -80,158,44,32,195,28,27,248,80,158,45,34,196,28,248,80,158,45,41,193,28, -249,22,224,194,83,160,41,50,46,42,9,11,11,27,248,80,158,45,36,196,28, -248,80,158,45,32,193,249,80,158,46,33,27,248,80,158,48,34,196,28,248,80, -158,48,38,193,248,22,59,248,80,158,49,39,194,11,27,248,80,158,48,36,196, -28,248,80,158,48,32,193,249,80,158,49,33,248,80,158,50,34,195,248,80,158, -50,35,248,80,158,51,36,196,11,11,11,11,28,192,27,248,22,52,194,27,248, -22,53,195,27,249,22,61,196,195,27,83,160,41,51,47,42,250,22,209,83,160, -41,52,50,42,250,22,209,83,160,41,53,53,42,250,22,60,83,160,41,54,56, -42,248,22,52,203,248,22,53,203,83,160,41,55,53,42,195,27,28,248,80,158, -45,32,196,28,27,248,80,158,46,34,197,28,248,80,158,46,41,193,28,249,22, -224,194,83,160,41,56,47,42,9,11,11,27,248,80,158,46,36,197,28,248,80, -158,46,38,193,248,80,158,46,39,193,11,11,11,28,192,27,83,160,41,57,45, -42,250,22,209,83,160,41,58,48,42,250,22,209,83,160,41,59,51,42,249,22, -56,83,160,41,8,28,53,42,201,83,160,41,8,29,51,42,195,27,28,248,80, -158,46,32,197,28,27,248,80,158,47,34,198,28,248,80,158,47,41,193,28,249, -22,224,194,83,160,41,8,30,48,42,9,11,11,27,248,80,158,47,36,198,28, -248,80,158,47,38,193,248,80,158,47,39,193,11,11,11,28,192,27,83,160,41, -8,31,46,42,250,22,209,83,160,41,8,32,49,42,250,22,209,83,160,41,8, -33,52,42,249,22,56,83,160,41,8,34,54,42,201,83,160,41,8,35,52,42, -195,27,28,248,80,158,47,32,198,28,27,248,80,158,48,34,199,28,248,80,158, -48,41,193,28,249,22,224,194,83,160,41,8,36,49,42,9,11,11,27,248,80, -158,48,36,199,28,248,80,158,48,32,193,249,80,158,49,33,27,248,80,158,51, -34,196,28,248,80,158,51,38,193,248,22,59,248,80,158,52,39,194,11,27,248, -80,158,51,36,196,28,248,80,158,51,32,193,249,80,158,52,33,248,80,158,53, -34,195,248,80,158,53,35,248,80,158,54,36,196,11,11,11,11,28,192,27,248, -22,52,194,27,248,22,53,195,250,22,252,38,2,11,6,54,54,115,121,110,116, -97,120,32,100,101,102,105,110,105,116,105,111,110,115,32,110,111,116,32,97,108, -108,111,119,101,100,32,119,105,116,104,105,110,32,98,101,103,105,110,45,102,111, -114,45,115,121,110,116,97,120,204,27,83,160,41,8,37,47,42,250,22,209,83, -160,41,8,38,50,42,250,22,209,83,160,41,8,39,53,42,250,22,60,83,160, -41,8,40,56,42,83,160,41,8,41,56,42,250,22,209,83,160,41,8,42,59, -42,250,22,62,83,160,41,8,43,8,30,42,23,21,83,160,41,8,44,8,30, -42,83,160,41,8,45,59,42,83,160,41,8,46,53,42,195,247,193,32,20,97, -158,16,10,2,12,2,30,2,17,2,39,2,19,2,15,2,21,2,23,2,25, -2,32,16,47,18,99,2,41,8,41,37,36,35,16,4,8,40,11,2,81,3, -1,7,101,110,118,51,51,48,51,135,16,4,8,39,11,2,100,3,1,7,101, -110,118,51,51,48,52,136,18,158,93,16,2,101,2,0,8,44,37,36,35,8, -40,8,39,16,4,8,43,11,3,1,4,103,52,48,53,137,3,1,7,101,110, -118,51,51,48,57,138,16,4,8,42,11,2,87,3,1,7,101,110,118,51,51, -49,48,139,9,8,44,18,16,2,95,2,92,8,45,93,8,252,196,8,95,9, -8,252,196,8,2,45,18,101,2,93,8,48,37,36,35,8,40,8,39,16,6, -8,47,11,3,1,4,103,52,48,49,140,3,1,4,103,52,48,50,141,3,1, -7,101,110,118,51,51,49,56,142,2,142,16,6,8,46,11,2,87,64,101,108, -101,109,143,3,1,7,101,110,118,51,51,49,57,144,2,144,18,158,2,100,8, -48,18,158,2,0,8,48,18,158,2,100,8,48,18,158,2,5,8,48,18,158, -2,100,8,48,18,158,2,100,8,48,18,158,110,16,2,101,2,0,8,51,37, -36,35,8,40,8,39,16,6,8,50,11,3,1,4,103,52,48,51,145,3,1, -4,103,52,48,52,146,3,1,7,101,110,118,51,51,50,57,147,2,147,16,6, -8,49,11,2,87,2,143,3,1,7,101,110,118,51,51,51,48,148,2,148,9, -16,2,158,2,128,8,51,9,16,2,158,2,130,8,51,9,16,2,158,2,131, -8,51,9,16,2,158,64,115,101,116,33,149,8,51,9,16,2,158,70,108,101, -116,45,118,97,108,117,101,115,150,8,51,9,16,2,158,71,108,101,116,42,45, -118,97,108,117,101,115,151,8,51,9,16,2,158,73,108,101,116,114,101,99,45, -118,97,108,117,101,115,152,8,51,9,16,2,158,2,101,8,51,9,16,2,158, -71,99,97,115,101,45,108,97,109,98,100,97,153,8,51,9,16,2,158,62,105, -102,154,8,51,9,16,2,158,65,113,117,111,116,101,155,8,51,9,16,2,158, -1,22,108,101,116,114,101,99,45,115,121,110,116,97,120,101,115,43,118,97,108, -117,101,115,156,8,51,9,16,2,158,76,102,108,117,105,100,45,108,101,116,45, -115,121,110,116,97,120,157,8,51,9,16,2,158,1,22,119,105,116,104,45,99, -111,110,116,105,110,117,97,116,105,111,110,45,109,97,114,107,158,8,51,9,16, -2,158,65,35,37,97,112,112,159,8,51,9,16,2,158,65,35,37,116,111,112, -160,8,51,9,16,2,158,67,35,37,100,97,116,117,109,161,8,51,9,8,51, -18,102,2,41,8,53,37,36,35,8,40,8,39,8,50,8,49,16,4,8,52, -11,61,101,162,3,1,7,101,110,118,51,51,51,51,163,18,158,2,0,8,53, -18,16,2,95,2,92,8,54,93,8,252,211,8,95,9,8,252,211,8,2,45, -18,104,2,93,8,57,37,36,35,8,40,8,39,8,50,8,49,8,52,16,4, -8,56,11,3,1,4,103,52,49,51,164,3,1,7,101,110,118,51,51,51,57, -165,16,4,8,55,11,61,118,166,3,1,7,101,110,118,51,51,52,48,167,18, -158,2,100,8,57,18,158,2,5,8,57,18,158,2,100,8,57,18,158,2,128, -8,53,18,16,2,95,2,92,8,58,93,8,252,212,8,95,9,8,252,212,8, -2,45,18,104,2,93,8,61,37,36,35,8,40,8,39,8,50,8,49,8,52, -16,6,8,60,11,3,1,4,103,52,49,49,168,3,1,4,103,52,49,50,169, -3,1,7,101,110,118,51,51,53,48,170,2,170,16,6,8,59,11,2,97,2, -126,3,1,7,101,110,118,51,51,53,49,171,2,171,18,158,2,100,8,61,18, -158,2,131,8,61,18,158,2,100,8,61,18,158,67,114,101,113,117,105,114,101, -172,8,53,18,16,2,95,2,92,8,62,93,8,252,213,8,95,9,8,252,213, -8,2,45,18,104,2,93,8,65,37,36,35,8,40,8,39,8,50,8,49,8, -52,16,4,8,64,11,3,1,4,103,52,49,48,173,3,1,7,101,110,118,51, -51,54,48,174,16,4,8,63,11,2,166,3,1,7,101,110,118,51,51,54,49, -175,18,158,2,100,8,65,18,158,78,114,101,113,117,105,114,101,45,102,111,114, -45,115,121,110,116,97,120,176,8,65,18,158,2,100,8,65,18,158,1,20,114, -101,113,117,105,114,101,45,102,111,114,45,116,101,109,112,108,97,116,101,177,8, -53,18,16,2,95,2,92,8,66,93,8,252,214,8,95,9,8,252,214,8,2, -45,18,104,2,93,8,69,37,36,35,8,40,8,39,8,50,8,49,8,52,16, -4,8,68,11,3,1,4,103,52,48,57,178,3,1,7,101,110,118,51,51,54, -57,179,16,4,8,67,11,2,166,3,1,7,101,110,118,51,51,55,48,180,18, -158,2,100,8,69,18,158,2,172,8,69,18,158,2,100,8,69,18,158,2,130, -8,53,18,16,2,95,2,92,8,70,93,8,252,216,8,95,9,8,252,216,8, -2,45,18,104,2,93,8,73,37,36,35,8,40,8,39,8,50,8,49,8,52, -16,4,8,72,11,3,1,4,103,52,48,54,181,3,1,7,101,110,118,51,51, -56,53,182,16,4,8,71,11,65,111,116,104,101,114,183,3,1,7,101,110,118, -51,51,56,54,184,18,158,2,100,8,73,18,158,2,131,8,73,18,158,9,8, -73,18,158,2,100,8,73,18,158,2,0,8,73,18,16,2,103,93,16,2,158, -93,16,2,158,66,118,97,108,117,101,115,185,8,73,9,8,73,9,8,81,97, -8,80,10,32,11,16,58,2,31,2,13,2,52,2,13,2,48,2,49,2,51, -2,13,2,18,2,13,2,44,29,186,11,11,2,54,2,13,2,20,2,13,2, -29,2,13,2,16,2,13,2,57,2,49,2,33,2,13,2,60,2,49,2,14, -2,13,2,38,2,13,2,61,2,49,2,63,2,49,73,115,121,110,116,97,120, -45,99,97,115,101,42,42,187,2,186,2,64,2,65,2,67,2,68,2,73,2, -68,2,22,2,13,2,24,2,13,1,20,101,108,108,105,112,115,105,115,45,99, -111,117,110,116,45,101,114,114,111,114,188,2,186,2,74,2,68,2,55,2,49, -2,40,2,13,2,78,2,13,2,77,2,13,97,8,79,10,33,11,16,70,2, -31,2,13,2,52,2,13,2,48,2,49,72,110,111,45,101,108,108,105,112,115, -101,115,63,189,64,35,37,115,99,190,2,51,2,13,2,18,2,13,2,54,2, -13,2,20,2,13,2,29,2,13,74,103,101,116,45,109,97,116,99,104,45,118, -97,114,115,191,2,190,2,16,2,13,75,115,121,110,116,97,120,45,109,97,112, -112,105,110,103,63,192,2,190,74,109,97,107,101,45,109,97,116,99,104,38,101, -110,118,193,2,190,2,57,2,49,2,33,2,13,2,60,2,49,2,14,2,13, -2,38,2,13,2,61,2,49,72,109,97,107,101,45,112,101,120,112,97,110,100, -194,2,190,2,63,2,49,72,115,116,120,45,109,101,109,113,45,112,111,115,195, -2,190,2,64,2,65,79,109,97,107,101,45,115,121,110,116,97,120,45,109,97, -112,112,105,110,103,196,2,190,2,67,2,68,1,20,115,121,110,116,97,120,45, -109,97,112,112,105,110,103,45,100,101,112,116,104,197,2,190,2,73,2,68,2, -22,2,13,2,24,2,13,1,21,115,121,110,116,97,120,45,109,97,112,112,105, -110,103,45,118,97,108,118,97,114,198,2,190,2,74,2,68,2,55,2,49,2, -40,2,13,2,78,2,13,2,77,2,13,96,8,78,8,254,1,11,16,0,16, -4,8,77,11,61,120,199,3,1,6,101,110,118,51,55,55,200,16,4,8,76, -11,68,104,101,114,101,45,115,116,120,201,3,1,6,101,110,118,51,55,57,202, -16,4,8,75,11,2,201,2,202,13,16,3,33,2,186,2,45,93,8,252,216, -8,16,6,8,74,11,61,114,203,63,115,114,99,204,3,1,7,101,110,118,51, -51,56,57,205,2,205,95,9,8,252,216,8,2,45,18,158,2,100,8,73,18, -158,2,100,8,73,11,9,93,68,35,37,107,101,114,110,101,108,206,96,2,206, -2,35,2,13,2,43,0}; - EVAL_ONE_SIZED_STR((char *)expr, 7587); +195,27,248,22,80,196,6,31,31,98,97,100,32,115,121,110,116,97,120,32,40, +105,108,108,101,103,97,108,32,117,115,101,32,111,102,32,96,46,39,41,250,22, +252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,198,201,247,196, +247,193,27,28,248,80,158,37,32,195,249,80,158,38,33,248,80,158,39,34,197, +27,248,80,158,40,35,198,28,248,80,158,40,32,193,249,80,158,41,33,248,80, +158,42,34,195,27,248,80,158,43,35,196,28,248,80,158,43,32,193,249,80,158, +44,40,248,80,158,45,34,195,248,80,158,45,44,248,80,158,46,35,196,11,11, +11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,80,196,28,248,80, +158,40,41,194,27,249,22,209,20,15,159,42,8,33,45,201,249,80,158,42,38, +203,27,250,22,61,199,200,198,27,20,15,159,44,8,34,45,250,22,209,20,15, +159,47,8,35,45,250,22,209,20,15,159,50,8,36,45,250,22,60,248,22,80, +203,250,22,209,20,15,159,56,8,37,45,248,22,60,248,22,78,23,15,20,15, +159,56,8,38,45,248,22,52,203,20,15,159,50,8,39,45,195,247,196,247,193, +250,22,7,248,196,20,15,159,37,8,40,45,248,196,20,15,159,37,8,41,45, +248,196,20,15,159,37,8,42,45,37,20,98,158,16,13,30,12,65,35,37,115, +116,120,13,69,115,116,120,45,112,97,105,114,63,14,11,30,15,2,13,67,99, +111,110,115,47,35,102,16,1,30,17,2,13,67,115,116,120,45,99,97,114,18, +5,30,19,2,13,67,115,116,120,45,99,100,114,20,6,30,21,2,13,69,115, +116,120,45,108,105,115,116,63,22,8,30,23,2,13,69,115,116,120,45,62,108, +105,115,116,24,4,30,25,68,35,37,115,116,120,108,111,99,26,68,114,101,108, +111,99,97,116,101,27,1,30,28,2,13,74,115,112,108,105,116,45,115,116,120, +45,108,105,115,116,29,3,30,30,2,13,69,97,112,112,101,110,100,47,35,102, +31,0,30,32,2,13,71,105,100,101,110,116,105,102,105,101,114,63,33,2,30, +34,76,35,37,115,116,120,99,97,115,101,45,115,99,104,101,109,101,35,1,26, +99,104,101,99,107,45,100,117,112,108,105,99,97,116,101,45,105,100,101,110,116, +105,102,105,101,114,36,0,30,37,2,13,69,115,116,120,45,110,117,108,108,63, +38,10,30,39,2,13,71,115,116,120,45,110,117,108,108,47,35,102,40,9,16, +43,18,99,64,104,101,114,101,41,39,97,37,10,32,11,16,8,2,3,2,2, +2,4,2,2,2,5,2,2,2,6,2,2,98,36,10,33,11,95,159,67,35, +37,113,113,115,116,120,42,9,11,159,2,13,9,11,159,2,35,9,11,16,0, +96,35,8,254,1,11,16,0,16,4,34,11,77,100,101,102,105,110,101,45,118, +97,108,117,101,115,45,115,116,120,43,3,1,7,101,110,118,51,48,56,54,44, +16,4,33,11,63,115,116,120,45,3,1,7,101,110,118,51,48,56,55,46,18, +102,2,41,43,37,36,35,34,33,16,8,42,11,3,1,4,103,51,53,49,47, +3,1,4,103,51,53,50,48,3,1,4,103,51,53,51,49,3,1,7,101,110, +118,51,49,48,50,50,2,50,2,50,16,8,41,11,61,95,51,65,112,114,111, +116,111,52,64,98,111,100,121,53,3,1,7,101,110,118,51,49,48,51,54,2, +54,2,54,16,6,40,11,2,10,2,11,3,1,7,101,110,118,51,49,48,56, +55,2,55,18,16,2,95,66,115,114,99,116,97,103,56,44,93,8,252,114,8, +95,9,8,252,114,8,69,35,37,115,116,120,99,97,115,101,57,18,104,64,100, +101,115,116,58,48,37,36,35,34,33,42,41,16,6,47,11,2,10,2,11,2, +55,2,55,16,6,46,11,3,1,4,103,51,54,54,59,3,1,4,103,51,54, +55,60,3,1,7,101,110,118,51,49,49,53,61,2,61,16,6,45,11,62,105, +100,62,63,97,114,103,63,3,1,7,101,110,118,51,49,49,54,64,2,64,18, +158,2,41,48,18,16,2,95,2,56,49,93,8,252,120,8,95,9,8,252,120, +8,2,57,18,158,2,58,48,18,158,63,99,116,120,65,48,18,158,66,108,97, +109,98,100,97,66,48,18,158,2,65,48,18,16,2,95,2,56,50,93,8,252, +121,8,95,9,8,252,121,8,2,57,18,104,2,58,53,37,36,35,34,33,42, +41,47,16,8,52,11,3,1,4,103,51,54,51,67,3,1,4,103,51,54,52, +68,3,1,4,103,51,54,53,69,3,1,7,101,110,118,51,49,52,49,70,2, +70,2,70,16,8,51,11,2,62,2,63,64,114,101,115,116,71,3,1,7,101, +110,118,51,49,52,50,72,2,72,2,72,18,158,2,41,53,18,16,2,95,2, +56,54,93,8,252,127,8,95,9,8,252,127,8,2,57,18,158,2,58,53,18, +158,2,65,53,18,158,2,66,53,18,158,2,65,53,18,158,2,41,43,18,16, +2,95,2,56,55,93,8,252,139,8,95,9,8,252,139,8,2,57,18,104,2, +58,58,37,36,35,34,33,42,41,40,16,8,57,11,3,1,4,103,51,55,54, +73,3,1,4,103,51,55,55,74,3,1,4,103,51,55,56,75,3,1,7,101, +110,118,51,49,55,51,76,2,76,2,76,16,8,56,11,69,115,111,109,101,116, +104,105,110,103,77,64,109,111,114,101,78,2,71,3,1,7,101,110,118,51,49, +55,52,79,2,79,2,79,18,158,2,65,58,18,158,2,65,58,18,102,2,41, +8,28,37,36,35,34,33,42,41,16,6,59,11,2,62,66,109,107,45,114,104, +115,80,3,1,7,101,110,118,51,49,48,55,81,2,81,18,158,2,41,8,28, +18,158,2,41,8,28,18,16,2,95,2,56,8,29,93,8,252,158,8,95,9, +8,252,158,8,2,57,18,158,2,58,8,28,18,158,2,65,8,28,18,158,2, +65,8,28,18,158,2,65,8,28,18,158,2,65,8,28,18,101,2,41,8,32, +37,36,35,34,33,16,8,8,31,11,3,1,4,103,51,53,55,82,3,1,4, +103,51,53,56,83,3,1,4,103,51,53,57,84,3,1,7,101,110,118,51,50, +52,56,85,2,85,2,85,16,8,8,30,11,2,51,2,62,2,71,3,1,7, +101,110,118,51,50,52,57,86,2,86,2,86,18,101,2,41,8,35,37,36,35, +34,33,16,8,8,34,11,3,1,4,103,51,54,48,87,3,1,4,103,51,54, +49,88,3,1,4,103,51,54,50,89,3,1,7,101,110,118,51,50,56,53,90, +2,90,2,90,16,8,8,33,11,2,51,2,62,64,101,120,112,114,91,3,1, +7,101,110,118,51,50,56,54,92,2,92,2,92,18,16,2,95,2,56,8,36, +93,8,252,182,8,95,9,8,252,182,8,2,57,18,158,2,58,8,35,18,158, +2,65,8,35,18,158,2,65,8,35,18,158,2,65,8,35,18,158,2,65,8, +35,18,98,73,100,101,102,105,110,101,45,118,97,108,117,101,115,93,8,38,37, +36,35,16,4,8,37,11,2,7,3,1,7,101,110,118,51,48,56,53,94,18, +158,75,100,101,102,105,110,101,45,115,121,110,116,97,120,101,115,95,8,38,18, +158,1,24,100,101,102,105,110,101,45,118,97,108,117,101,115,45,102,111,114,45, +115,121,110,116,97,120,96,8,38,11,16,5,93,2,4,89,162,32,33,8,32, +9,223,0,27,247,22,252,81,3,87,94,28,249,22,71,194,21,95,66,109,111, +100,117,108,101,97,72,109,111,100,117,108,101,45,98,101,103,105,110,98,69,116, +111,112,45,108,101,118,101,108,99,12,250,22,252,39,2,11,6,51,51,97,108, +108,111,119,101,100,32,111,110,108,121,32,97,116,32,116,104,101,32,116,111,112, +45,108,101,118,101,108,32,111,114,32,97,32,109,111,100,117,108,101,32,116,111, +112,45,108,101,118,101,108,197,27,249,22,209,20,15,159,36,32,42,197,27,28, +248,80,158,36,32,194,249,80,158,37,33,248,80,158,38,34,196,248,80,158,38, +35,248,80,158,39,36,197,11,28,192,20,15,159,35,33,42,27,89,162,32,32, +51,2,9,225,4,5,2,27,28,248,80,158,36,32,194,249,80,158,37,37,248, +80,158,38,34,196,27,248,80,158,39,36,197,28,248,80,158,39,38,193,248,80, +158,39,39,193,11,11,28,192,27,248,22,52,194,27,248,22,53,195,249,80,158, +39,40,198,27,20,15,159,40,34,42,250,22,209,20,15,159,43,35,42,250,22, +209,20,15,159,46,36,42,249,22,56,20,15,159,48,37,42,249,22,2,89,162, +33,33,40,9,223,18,250,22,209,20,15,159,35,38,42,249,22,60,20,15,159, +37,39,42,248,22,52,199,20,15,159,35,40,42,205,20,15,159,46,41,42,195, +250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,196,27, +28,248,80,158,38,32,196,249,80,158,39,37,248,80,158,40,34,198,27,248,80, +158,41,36,199,28,248,80,158,41,32,193,249,80,158,42,33,248,80,158,43,34, +195,248,80,158,43,35,248,80,158,44,36,196,11,11,28,192,27,248,22,52,194, +27,248,22,53,195,28,249,22,252,11,2,200,2,98,247,195,27,250,22,252,25, +2,196,202,248,22,216,20,15,159,44,42,42,27,249,22,209,20,15,159,43,43, +42,195,27,28,248,80,158,43,32,194,28,27,248,80,158,44,34,195,28,248,80, +158,44,41,193,28,249,22,224,194,20,15,159,45,44,42,9,11,11,27,248,80, +158,44,36,195,28,248,80,158,44,38,193,248,80,158,44,39,193,11,11,11,28, +192,27,20,15,159,43,45,42,250,22,209,20,15,159,46,46,42,250,22,209,20, +15,159,49,47,42,249,22,56,20,15,159,51,48,42,201,20,15,159,49,49,42, +195,27,28,248,80,158,44,32,195,28,27,248,80,158,45,34,196,28,248,80,158, +45,41,193,28,249,22,224,194,20,15,159,46,50,42,9,11,11,27,248,80,158, +45,36,196,28,248,80,158,45,32,193,249,80,158,46,33,27,248,80,158,48,34, +196,28,248,80,158,48,38,193,248,22,59,248,80,158,49,39,194,11,27,248,80, +158,48,36,196,28,248,80,158,48,32,193,249,80,158,49,33,248,80,158,50,34, +195,248,80,158,50,35,248,80,158,51,36,196,11,11,11,11,28,192,27,248,22, +52,194,27,248,22,53,195,27,249,22,61,195,196,27,20,15,159,47,51,42,250, +22,209,20,15,159,50,52,42,250,22,209,20,15,159,53,53,42,250,22,60,20, +15,159,56,54,42,248,22,53,203,248,22,52,203,20,15,159,53,55,42,195,27, +28,248,80,158,45,32,196,28,27,248,80,158,46,34,197,28,248,80,158,46,41, +193,28,249,22,224,194,20,15,159,47,56,42,9,11,11,27,248,80,158,46,36, +197,28,248,80,158,46,38,193,248,80,158,46,39,193,11,11,11,28,192,27,20, +15,159,45,57,42,250,22,209,20,15,159,48,58,42,250,22,209,20,15,159,51, +59,42,249,22,56,20,15,159,53,8,28,42,201,20,15,159,51,8,29,42,195, +27,28,248,80,158,46,32,197,28,27,248,80,158,47,34,198,28,248,80,158,47, +41,193,28,249,22,224,194,20,15,159,48,8,30,42,9,11,11,27,248,80,158, +47,36,198,28,248,80,158,47,38,193,248,80,158,47,39,193,11,11,11,28,192, +27,20,15,159,46,8,31,42,250,22,209,20,15,159,49,8,32,42,250,22,209, +20,15,159,52,8,33,42,249,22,56,20,15,159,54,8,34,42,201,20,15,159, +52,8,35,42,195,27,28,248,80,158,47,32,198,28,27,248,80,158,48,34,199, +28,248,80,158,48,41,193,28,249,22,224,194,20,15,159,49,8,36,42,9,11, +11,27,248,80,158,48,36,199,28,248,80,158,48,32,193,249,80,158,49,33,27, +248,80,158,51,34,196,28,248,80,158,51,38,193,248,22,59,248,80,158,52,39, +194,11,27,248,80,158,51,36,196,28,248,80,158,51,32,193,249,80,158,52,33, +248,80,158,53,34,195,248,80,158,53,35,248,80,158,54,36,196,11,11,11,11, +28,192,27,248,22,52,194,27,248,22,53,195,250,22,252,39,2,11,6,54,54, +115,121,110,116,97,120,32,100,101,102,105,110,105,116,105,111,110,115,32,110,111, +116,32,97,108,108,111,119,101,100,32,119,105,116,104,105,110,32,98,101,103,105, +110,45,102,111,114,45,115,121,110,116,97,120,204,27,20,15,159,47,8,37,42, +250,22,209,20,15,159,50,8,38,42,250,22,209,20,15,159,53,8,39,42,250, +22,60,20,15,159,56,8,40,42,20,15,159,56,8,41,42,250,22,209,20,15, +159,59,8,42,42,250,22,62,20,15,159,8,30,8,43,42,23,21,20,15,159, +8,30,8,44,42,20,15,159,59,8,45,42,20,15,159,53,8,46,42,195,247, +193,32,20,98,158,16,10,2,12,2,30,2,17,2,39,2,19,2,15,2,21, +2,23,2,25,2,32,16,47,18,99,2,41,8,41,37,36,35,16,4,8,40, +11,2,45,3,1,7,101,110,118,51,51,48,51,100,16,4,8,39,11,2,65, +3,1,7,101,110,118,51,51,48,52,101,18,158,93,16,2,101,2,0,8,44, +37,36,35,8,40,8,39,16,4,8,43,11,3,1,4,103,52,48,53,102,3, +1,7,101,110,118,51,51,48,57,103,16,4,8,42,11,2,51,3,1,7,101, +110,118,51,51,49,48,104,9,8,44,18,16,2,95,2,56,8,45,93,8,252, +196,8,95,9,8,252,196,8,2,57,18,101,2,58,8,48,37,36,35,8,40, +8,39,16,6,8,47,11,3,1,4,103,52,48,49,105,3,1,4,103,52,48, +50,106,3,1,7,101,110,118,51,51,49,56,107,2,107,16,6,8,46,11,2, +51,64,101,108,101,109,108,3,1,7,101,110,118,51,51,49,57,109,2,109,18, +158,2,65,8,48,18,158,2,0,8,48,18,158,2,65,8,48,18,158,2,4, +8,48,18,158,2,65,8,48,18,158,2,65,8,48,18,158,110,16,2,101,2, +0,8,51,37,36,35,8,40,8,39,16,6,8,50,11,3,1,4,103,52,48, +51,110,3,1,4,103,52,48,52,111,3,1,7,101,110,118,51,51,50,57,112, +2,112,16,6,8,49,11,2,51,2,108,3,1,7,101,110,118,51,51,51,48, +113,2,113,9,16,2,158,2,93,8,51,9,16,2,158,2,95,8,51,9,16, +2,158,2,96,8,51,9,16,2,158,64,115,101,116,33,114,8,51,9,16,2, +158,70,108,101,116,45,118,97,108,117,101,115,115,8,51,9,16,2,158,71,108, +101,116,42,45,118,97,108,117,101,115,116,8,51,9,16,2,158,73,108,101,116, +114,101,99,45,118,97,108,117,101,115,117,8,51,9,16,2,158,2,66,8,51, +9,16,2,158,71,99,97,115,101,45,108,97,109,98,100,97,118,8,51,9,16, +2,158,62,105,102,119,8,51,9,16,2,158,65,113,117,111,116,101,120,8,51, +9,16,2,158,1,22,108,101,116,114,101,99,45,115,121,110,116,97,120,101,115, +43,118,97,108,117,101,115,121,8,51,9,16,2,158,76,102,108,117,105,100,45, +108,101,116,45,115,121,110,116,97,120,122,8,51,9,16,2,158,1,22,119,105, +116,104,45,99,111,110,116,105,110,117,97,116,105,111,110,45,109,97,114,107,123, +8,51,9,16,2,158,65,35,37,97,112,112,124,8,51,9,16,2,158,65,35, +37,116,111,112,125,8,51,9,16,2,158,67,35,37,100,97,116,117,109,126,8, +51,9,8,51,18,102,2,41,8,53,37,36,35,8,40,8,39,8,50,8,49, +16,4,8,52,11,61,101,127,3,1,7,101,110,118,51,51,51,51,128,18,158, +2,0,8,53,18,16,2,95,2,56,8,54,93,8,252,211,8,95,9,8,252, +211,8,2,57,18,104,2,58,8,57,37,36,35,8,40,8,39,8,50,8,49, +8,52,16,4,8,56,11,3,1,4,103,52,49,51,129,3,1,7,101,110,118, +51,51,51,57,130,16,4,8,55,11,61,118,131,3,1,7,101,110,118,51,51, +52,48,132,18,158,2,65,8,57,18,158,2,4,8,57,18,158,2,65,8,57, +18,158,2,93,8,53,18,16,2,95,2,56,8,58,93,8,252,212,8,95,9, +8,252,212,8,2,57,18,104,2,58,8,61,37,36,35,8,40,8,39,8,50, +8,49,8,52,16,6,8,60,11,3,1,4,103,52,49,49,133,3,1,4,103, +52,49,50,134,3,1,7,101,110,118,51,51,53,48,135,2,135,16,6,8,59, +11,2,62,2,91,3,1,7,101,110,118,51,51,53,49,136,2,136,18,158,2, +65,8,61,18,158,2,96,8,61,18,158,2,65,8,61,18,158,67,114,101,113, +117,105,114,101,137,8,53,18,16,2,95,2,56,8,62,93,8,252,213,8,95, +9,8,252,213,8,2,57,18,104,2,58,8,65,37,36,35,8,40,8,39,8, +50,8,49,8,52,16,4,8,64,11,3,1,4,103,52,49,48,138,3,1,7, +101,110,118,51,51,54,48,139,16,4,8,63,11,2,131,3,1,7,101,110,118, +51,51,54,49,140,18,158,2,65,8,65,18,158,78,114,101,113,117,105,114,101, +45,102,111,114,45,115,121,110,116,97,120,141,8,65,18,158,2,65,8,65,18, +158,1,20,114,101,113,117,105,114,101,45,102,111,114,45,116,101,109,112,108,97, +116,101,142,8,53,18,16,2,95,2,56,8,66,93,8,252,214,8,95,9,8, +252,214,8,2,57,18,104,2,58,8,69,37,36,35,8,40,8,39,8,50,8, +49,8,52,16,4,8,68,11,3,1,4,103,52,48,57,143,3,1,7,101,110, +118,51,51,54,57,144,16,4,8,67,11,2,131,3,1,7,101,110,118,51,51, +55,48,145,18,158,2,65,8,69,18,158,2,137,8,69,18,158,2,65,8,69, +18,158,2,95,8,53,18,16,2,95,2,56,8,70,93,8,252,216,8,95,9, +8,252,216,8,2,57,18,104,2,58,8,73,37,36,35,8,40,8,39,8,50, +8,49,8,52,16,4,8,72,11,3,1,4,103,52,48,54,146,3,1,7,101, +110,118,51,51,56,53,147,16,4,8,71,11,65,111,116,104,101,114,148,3,1, +7,101,110,118,51,51,56,54,149,18,158,2,65,8,73,18,158,2,96,8,73, +18,158,9,8,73,18,158,2,65,8,73,18,158,2,0,8,73,18,16,2,103, +93,16,2,158,93,16,2,158,66,118,97,108,117,101,115,150,8,73,9,8,73, +9,8,81,98,8,80,10,32,11,94,159,74,35,37,115,109,97,108,108,45,115, +99,104,101,109,101,151,9,11,159,2,13,9,11,16,6,66,115,121,110,116,97, +120,152,29,153,11,11,73,115,121,110,116,97,120,45,99,97,115,101,42,42,154, +2,153,1,20,101,108,108,105,112,115,105,115,45,99,111,117,110,116,45,101,114, +114,111,114,155,2,153,98,8,79,10,33,11,95,159,64,35,37,115,99,156,9, +11,159,2,151,9,11,159,2,13,9,11,16,0,96,8,78,8,254,1,11,16, +0,16,4,8,77,11,61,120,157,3,1,6,101,110,118,51,55,55,158,16,4, +8,76,11,68,104,101,114,101,45,115,116,120,159,3,1,6,101,110,118,51,55, +57,160,16,4,8,75,11,2,159,2,160,13,16,3,33,2,153,2,57,93,8, +252,216,8,16,6,8,74,11,61,114,161,63,115,114,99,162,3,1,7,101,110, +118,51,51,56,57,163,2,163,95,9,8,252,216,8,2,57,18,158,2,65,8, +73,18,158,2,65,8,73,11,9,93,68,35,37,107,101,114,110,101,108,164,96, +2,164,2,35,2,13,2,42,0}; + EVAL_ONE_SIZED_STR((char *)expr, 6728); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,49,252,211,1,252,168,91,159,32,20,97,158,16, -1,20,23,65,98,101,103,105,110,0,16,0,83,158,39,20,94,114,73,35,37, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,252,169,1,252,238,86,159,32,20,98,158,16, +1,20,24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,73,35,37, 109,111,114,101,45,115,99,104,101,109,101,1,29,2,11,11,10,10,10,46,80, -158,32,32,20,97,158,16,24,30,3,2,2,74,115,116,114,117,99,116,58,112, +158,32,32,20,98,158,16,24,30,3,2,2,74,115,116,114,117,99,116,58,112, 114,111,109,105,115,101,4,254,1,30,5,2,2,72,109,97,107,101,45,112,114, 111,109,105,115,101,6,254,1,30,7,2,2,68,112,114,111,109,105,115,101,63, 8,254,1,30,9,2,2,69,112,114,111,109,105,115,101,45,112,10,254,1,30, @@ -2444,1093 +2274,1035 @@ 101,99,107,45,102,111,114,45,98,114,101,97,107,51,254,1,16,0,11,11,16, 14,2,41,2,39,2,31,2,33,2,29,2,37,2,27,2,6,2,10,2,43, 2,12,2,35,2,25,2,4,46,11,16,18,2,49,2,23,2,45,2,16,2, -14,2,8,66,108,101,116,47,99,99,52,64,99,97,115,101,53,70,108,101,116, -45,115,116,114,117,99,116,54,69,102,108,117,105,100,45,108,101,116,55,73,119, -105,116,104,45,104,97,110,100,108,101,114,115,56,71,115,101,116,33,45,118,97, -108,117,101,115,57,78,112,97,114,97,109,101,116,101,114,105,122,101,45,98,114, -101,97,107,58,74,119,105,116,104,45,104,97,110,100,108,101,114,115,42,59,64, -116,105,109,101,60,65,100,101,108,97,121,61,72,112,97,114,97,109,101,116,101, -114,105,122,101,62,62,100,111,63,16,18,11,11,11,11,11,11,11,11,11,11, +14,2,8,64,116,105,109,101,52,69,102,108,117,105,100,45,108,101,116,53,70, +108,101,116,45,115,116,114,117,99,116,54,72,112,97,114,97,109,101,116,101,114, +105,122,101,55,65,100,101,108,97,121,56,62,100,111,57,71,115,101,116,33,45, +118,97,108,117,101,115,58,73,119,105,116,104,45,104,97,110,100,108,101,114,115, +59,74,119,105,116,104,45,104,97,110,100,108,101,114,115,42,60,78,112,97,114, +97,109,101,116,101,114,105,122,101,45,98,114,101,97,107,61,64,99,97,115,101, +62,66,108,101,116,47,99,99,63,16,18,11,11,11,11,11,11,11,11,11,11, 11,11,11,11,11,11,11,11,16,18,2,49,2,23,2,45,2,16,2,14,2, 8,2,52,2,53,2,54,2,55,2,56,2,57,2,58,2,59,2,60,2,61, 2,62,2,63,38,50,106,16,5,93,69,99,97,115,101,45,116,101,115,116,64, -89,162,32,33,57,9,223,0,27,249,22,209,83,160,41,32,35,40,196,27,28, +89,162,32,33,57,9,223,0,27,249,22,209,20,15,159,35,32,40,196,27,28, 248,80,158,35,32,194,249,80,158,36,33,248,80,158,37,34,196,27,248,80,158, 38,35,197,28,248,80,158,38,32,193,249,80,158,39,33,248,80,158,40,34,195, 27,248,80,158,41,35,196,28,248,80,158,41,32,193,249,80,158,42,36,27,248, 80,158,44,34,196,28,248,80,158,44,32,193,249,80,158,45,36,248,80,158,46, 34,195,248,80,158,46,37,248,80,158,47,35,196,11,248,80,158,43,37,248,80, 158,44,35,196,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248, -22,80,196,28,248,22,41,248,22,210,194,27,249,22,61,195,196,27,83,160,41, -33,39,40,250,22,209,83,160,41,34,42,40,250,22,209,83,160,41,35,45,40, -250,22,60,83,160,41,36,48,40,248,22,53,203,250,22,209,83,160,41,37,51, -40,249,22,60,83,160,41,38,53,40,248,22,52,23,16,83,160,41,39,51,40, -83,160,41,40,45,40,195,27,249,22,61,195,196,27,83,160,41,41,39,40,250, -22,209,83,160,41,42,42,40,250,22,209,83,160,41,43,45,40,250,22,60,83, -160,41,44,48,40,248,22,53,203,250,22,209,83,160,41,45,51,40,249,22,60, -83,160,41,46,53,40,248,22,52,23,16,83,160,41,47,51,40,83,160,41,48, -45,40,195,27,28,248,80,158,36,32,195,249,80,158,37,33,248,80,158,38,34, +22,80,196,28,248,22,41,248,22,210,194,27,249,22,61,195,196,27,20,15,159, +39,33,40,250,22,209,20,15,159,42,34,40,250,22,209,20,15,159,45,35,40, +250,22,60,20,15,159,48,36,40,248,22,53,203,250,22,209,20,15,159,51,37, +40,249,22,60,20,15,159,53,38,40,248,22,52,23,16,20,15,159,51,39,40, +20,15,159,45,40,40,195,27,249,22,61,195,196,27,20,15,159,39,41,40,250, +22,209,20,15,159,42,42,40,250,22,209,20,15,159,45,43,40,250,22,60,20, +15,159,48,44,40,248,22,53,203,250,22,209,20,15,159,51,45,40,249,22,60, +20,15,159,53,46,40,248,22,52,23,16,20,15,159,51,47,40,20,15,159,45, +48,40,195,27,28,248,80,158,36,32,195,249,80,158,37,33,248,80,158,38,34, 197,27,248,80,158,39,35,198,28,248,80,158,39,32,193,249,80,158,40,33,248, 80,158,41,34,195,27,248,80,158,42,35,196,28,248,80,158,42,32,193,249,80, 158,43,36,27,248,80,158,45,34,196,28,248,80,158,45,38,193,248,80,158,45, 39,193,11,248,80,158,44,37,248,80,158,45,35,196,11,11,11,28,192,27,248, -22,52,194,27,248,22,78,195,27,248,22,80,196,27,249,22,61,196,195,27,83, -160,41,49,40,40,250,22,209,83,160,41,50,43,40,250,22,209,83,160,41,51, -46,40,250,22,60,83,160,41,52,49,40,248,22,52,203,250,22,209,83,160,41, -53,52,40,249,22,60,83,160,41,54,54,40,248,22,53,23,16,83,160,41,55, -52,40,83,160,41,56,46,40,195,250,22,252,38,2,11,6,10,10,98,97,100, -32,115,121,110,116,97,120,197,32,20,97,158,16,8,30,65,65,35,37,115,116, +22,52,194,27,248,22,78,195,27,248,22,80,196,27,249,22,61,195,196,27,20, +15,159,40,49,40,250,22,209,20,15,159,43,50,40,250,22,209,20,15,159,46, +51,40,250,22,60,20,15,159,49,52,40,248,22,53,203,250,22,209,20,15,159, +52,53,40,249,22,60,20,15,159,54,54,40,248,22,52,23,16,20,15,159,52, +55,40,20,15,159,46,56,40,195,250,22,252,39,2,11,6,10,10,98,97,100, +32,115,121,110,116,97,120,197,32,20,98,158,16,8,30,65,65,35,37,115,116, 120,66,69,115,116,120,45,112,97,105,114,63,67,11,30,68,2,66,67,99,111, 110,115,47,35,102,69,1,30,70,2,66,67,115,116,120,45,99,97,114,71,5, 30,72,2,66,67,115,116,120,45,99,100,114,73,6,30,74,2,66,69,97,112, 112,101,110,100,47,35,102,75,0,30,76,2,66,71,115,116,120,45,110,117,108, 108,47,35,102,77,9,30,78,2,66,69,115,116,120,45,108,105,115,116,63,79, 8,30,80,2,66,69,115,116,120,45,62,108,105,115,116,81,4,16,25,18,98, -64,104,101,114,101,82,38,97,36,10,32,11,16,106,2,4,2,2,63,97,110, -100,83,71,35,37,113,113,45,97,110,100,45,111,114,84,2,16,2,2,62,111, -114,85,2,84,2,60,2,2,73,100,101,102,105,110,101,45,115,116,114,117,99, -116,86,74,35,37,100,101,102,105,110,101,45,101,116,45,97,108,87,2,57,2, -2,2,63,2,2,2,62,2,2,2,29,2,2,2,45,2,2,76,98,101,103, -105,110,45,102,111,114,45,115,121,110,116,97,120,88,68,35,37,100,101,102,105, -110,101,89,2,64,2,2,66,100,101,102,105,110,101,90,2,89,2,23,2,2, -2,25,2,2,64,119,104,101,110,91,2,87,2,8,2,2,64,99,111,110,100, -92,66,35,37,99,111,110,100,93,66,117,110,108,101,115,115,94,2,87,2,27, -2,2,2,58,2,2,66,108,101,116,47,101,99,95,2,87,2,10,2,2,2, -31,2,2,67,45,100,101,102,105,110,101,96,2,87,2,49,2,2,2,33,2, -2,2,35,2,2,1,22,98,114,101,97,107,45,112,97,114,97,109,101,116,101, -114,105,122,97,116,105,111,110,97,2,2,2,56,2,2,77,100,101,102,105,110, -101,45,102,111,114,45,115,121,110,116,97,120,98,2,89,70,113,117,97,115,105, -113,117,111,116,101,99,2,84,2,47,2,18,2,43,2,2,2,37,2,2,2, -53,2,2,2,59,2,2,2,19,2,18,2,39,2,2,2,41,2,2,74,45, -100,101,102,105,110,101,45,115,121,110,116,97,120,100,2,87,2,52,2,2,2, -61,2,2,2,54,2,2,2,51,2,18,67,112,114,111,109,105,115,101,101,2, -2,73,100,101,102,105,110,101,45,115,121,110,116,97,120,102,2,89,2,6,2, -2,2,14,2,2,2,55,2,2,2,12,2,2,2,21,2,18,97,35,10,33, -11,16,86,2,86,2,87,2,75,2,66,73,115,116,120,45,99,104,101,99,107, -47,101,115,99,103,2,66,71,119,105,116,104,45,115,121,110,116,97,120,104,70, -35,37,119,105,116,104,45,115,116,120,105,66,115,121,110,116,97,120,106,69,35, -37,115,116,120,99,97,115,101,107,72,115,121,110,116,97,120,45,99,97,115,101, -42,108,68,35,37,115,116,120,108,111,99,109,70,115,116,120,45,114,111,116,97, -116,101,110,2,66,2,96,2,87,2,71,2,66,68,117,110,115,121,110,116,97, -120,111,67,35,37,113,113,115,116,120,112,71,115,116,120,45,114,111,116,97,116, -101,42,113,2,66,2,73,2,66,2,100,2,87,2,69,2,66,74,115,112,108, -105,116,45,115,116,120,45,108,105,115,116,114,2,66,2,77,2,66,71,105,100, -101,110,116,105,102,105,101,114,63,115,2,66,71,115,121,110,116,97,120,45,99, -97,115,101,116,2,109,2,91,2,87,75,108,101,116,114,101,99,45,115,121,110, -116,97,120,101,115,117,76,35,37,115,116,120,99,97,115,101,45,115,99,104,101, -109,101,118,2,67,2,66,69,115,116,120,45,110,117,108,108,63,119,2,66,2, -94,2,87,70,108,101,116,45,115,121,110,116,97,120,120,2,118,2,95,2,87, -75,113,117,97,115,105,115,121,110,116,97,120,47,108,111,99,121,2,112,73,108, -101,116,114,101,99,45,115,121,110,116,97,120,122,2,118,71,113,117,97,115,105, -115,121,110,116,97,120,123,2,112,1,20,103,101,110,101,114,97,116,101,45,116, -101,109,112,111,114,97,114,105,101,115,124,2,105,2,99,2,84,70,115,121,110, -116,97,120,47,108,111,99,125,2,109,72,108,101,116,45,115,121,110,116,97,120, -101,115,126,2,118,2,83,2,84,2,79,2,66,1,26,99,104,101,99,107,45, -100,117,112,108,105,99,97,116,101,45,105,100,101,110,116,105,102,105,101,114,127, -2,118,72,115,121,110,116,97,120,45,114,117,108,101,115,128,2,118,2,81,2, -66,2,85,2,84,75,115,121,110,116,97,120,45,105,100,45,114,117,108,101,115, -129,2,118,77,117,110,115,121,110,116,97,120,45,115,112,108,105,99,105,110,103, -130,2,112,71,115,116,120,45,118,101,99,116,111,114,63,131,2,66,74,115,116, -120,45,118,101,99,116,111,114,45,114,101,102,132,2,66,2,92,2,93,96,34, -8,254,1,11,16,0,16,4,33,11,61,120,133,3,1,7,101,110,118,51,51, -57,49,134,18,16,2,95,66,115,114,99,116,97,103,135,39,93,8,252,245,8, -95,9,8,252,245,8,2,107,18,100,64,100,101,115,116,136,42,36,35,34,33, -16,8,41,11,3,1,4,103,52,49,55,137,3,1,4,103,52,49,56,138,3, -1,4,103,52,49,57,139,3,1,7,101,110,118,51,51,57,56,140,2,140,2, -140,16,6,40,11,61,95,141,61,107,142,3,1,7,101,110,118,51,51,57,57, -143,2,143,18,158,63,99,116,120,144,42,18,158,63,101,113,63,145,42,18,158, -2,144,42,18,158,65,113,117,111,116,101,146,42,18,158,2,144,42,18,158,2, -144,42,18,16,2,95,2,135,43,93,8,252,246,8,95,9,8,252,246,8,2, -107,18,158,2,136,42,18,158,2,144,42,18,158,64,101,113,118,63,147,42,18, -158,2,144,42,18,158,2,146,42,18,158,2,144,42,18,158,2,144,42,18,16, -2,95,2,135,44,93,8,252,247,8,95,9,8,252,247,8,2,107,18,100,2, -136,47,36,35,34,33,16,8,46,11,3,1,4,103,52,49,52,148,3,1,4, -103,52,49,53,149,3,1,4,103,52,49,54,150,3,1,7,101,110,118,51,52, -49,48,151,2,151,2,151,16,6,45,11,2,141,2,142,3,1,7,101,110,118, -51,52,49,49,152,2,152,18,158,2,144,47,18,158,64,109,101,109,118,153,47, -18,158,2,144,47,18,158,2,146,47,18,158,2,144,47,18,158,2,144,47,11, -16,5,93,2,53,89,162,32,33,8,36,9,223,0,27,249,22,209,83,160,41, -32,35,43,196,27,28,248,80,158,35,32,194,249,80,158,36,33,248,80,158,37, -34,196,27,248,80,158,38,35,197,28,248,80,158,38,32,193,249,80,158,39,36, -248,80,158,40,34,195,248,80,158,40,37,248,80,158,41,35,196,11,11,28,192, -27,248,22,52,194,27,248,22,53,195,27,83,160,41,33,37,43,250,22,209,83, -160,41,34,40,43,250,22,209,83,160,41,35,43,43,250,22,62,83,160,41,36, -46,43,202,83,160,41,37,46,43,83,160,41,38,43,43,195,27,28,248,80,158, -36,32,195,249,80,158,37,33,248,80,158,38,34,197,27,248,80,158,39,35,198, -28,248,80,158,39,32,193,249,80,158,40,33,248,80,158,41,34,195,27,248,80, -158,42,35,196,28,248,80,158,42,32,193,249,80,158,43,36,27,248,80,158,45, -34,196,28,248,80,158,45,32,193,28,27,248,80,158,46,34,194,28,248,80,158, -46,38,193,28,249,22,223,194,83,160,41,39,47,43,9,11,11,27,248,80,158, -46,35,194,28,248,80,158,46,32,193,249,80,158,47,33,248,80,158,48,34,195, -27,248,80,158,49,35,196,28,248,80,158,49,39,193,248,80,158,49,40,193,11, -11,11,11,248,80,158,44,37,248,80,158,45,35,196,11,11,11,28,192,27,248, -22,52,194,27,248,22,78,195,27,248,22,87,196,27,248,22,88,197,249,80,158, -41,41,202,27,250,22,61,200,199,198,27,83,160,41,40,43,43,250,22,209,83, -160,41,41,46,43,250,22,209,83,160,41,42,49,43,251,22,62,83,160,41,43, -53,43,248,22,52,204,248,22,78,204,248,22,80,204,83,160,41,44,49,43,195, -27,28,248,80,158,37,32,196,249,80,158,38,33,248,80,158,39,34,198,27,248, -80,158,40,35,199,28,248,80,158,40,32,193,249,80,158,41,33,248,80,158,42, -34,195,27,248,80,158,43,35,196,28,248,80,158,43,32,193,249,80,158,44,36, -27,248,80,158,46,34,196,28,248,80,158,46,32,193,249,80,158,47,36,27,248, -80,158,49,34,196,28,248,80,158,49,39,193,248,22,59,248,80,158,50,40,194, -11,27,248,80,158,49,35,196,28,248,80,158,49,32,193,249,80,158,50,33,248, -80,158,51,34,195,27,248,80,158,52,35,196,28,248,80,158,52,39,193,248,80, -158,52,40,193,11,11,11,248,80,158,45,37,248,80,158,46,35,196,11,11,11, -28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27,248,22,90, -197,27,248,22,89,198,249,80,158,43,41,204,27,251,22,61,202,201,200,199,27, -83,160,41,45,45,43,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11, -247,248,22,8,89,162,32,33,40,9,226,15,2,3,1,250,22,31,89,162,32, -32,36,9,225,6,3,7,90,161,33,33,10,247,22,252,183,2,248,22,252,183, -2,89,162,32,33,36,9,224,3,1,248,193,89,162,32,32,36,9,224,2,3, -28,248,22,252,180,2,193,248,22,252,185,2,193,249,80,158,35,42,21,95,62, -105,102,154,95,2,64,61,118,155,94,2,142,63,46,46,46,156,96,2,0,62, -101,49,157,62,101,50,158,2,156,83,160,41,46,35,43,89,162,32,32,52,9, -225,6,5,4,27,250,22,209,83,160,41,47,38,43,250,22,209,83,160,41,48, -41,43,250,22,60,83,160,41,49,44,43,250,22,209,83,160,41,50,47,43,250, -22,60,83,160,41,51,50,43,248,22,52,23,17,248,22,78,23,17,83,160,41, -52,47,43,250,22,209,83,160,41,53,47,43,250,22,62,83,160,41,54,50,43, -248,22,87,23,17,248,22,88,23,17,83,160,41,55,47,43,83,160,41,56,41, -43,197,89,162,32,32,33,9,223,0,192,89,162,32,32,34,9,223,3,248,22, -252,183,2,208,27,28,248,80,158,38,32,197,249,80,158,39,33,248,80,158,40, -34,199,27,248,80,158,41,35,200,28,248,80,158,41,32,193,249,80,158,42,33, -248,80,158,43,34,195,27,248,80,158,44,35,196,28,248,80,158,44,32,193,249, -80,158,45,36,27,248,80,158,47,34,196,28,248,80,158,47,32,193,249,80,158, -48,36,27,248,80,158,50,34,196,28,248,80,158,50,39,193,248,22,59,248,80, -158,51,40,194,11,27,248,80,158,50,35,196,28,248,80,158,50,32,193,249,80, -158,51,33,248,80,158,52,34,195,27,248,80,158,53,35,196,28,248,80,158,53, -39,193,248,22,59,248,80,158,54,40,194,11,11,11,27,248,80,158,47,35,196, -28,248,80,158,47,32,193,249,80,158,48,33,248,80,158,49,34,195,27,248,80, -158,50,35,196,28,248,80,158,50,39,193,248,80,158,50,40,193,11,11,11,11, -11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27,248,22, -90,197,27,249,22,70,199,36,27,249,22,70,200,37,27,249,22,69,201,38,249, -80,158,46,41,23,15,27,253,22,61,206,205,204,203,202,201,27,83,160,41,57, -48,43,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,8, -89,162,32,33,40,9,226,18,2,3,1,250,22,31,89,162,32,32,36,9,225, -6,3,7,90,161,33,33,10,247,22,252,183,2,248,22,252,183,2,89,162,32, -33,36,9,224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22,252, -180,2,193,248,22,252,185,2,193,249,80,158,35,42,21,95,63,108,101,116,159, -93,94,2,133,2,155,96,2,154,95,2,64,2,133,94,2,142,2,156,96,2, -0,2,157,2,158,2,156,97,2,53,2,133,62,99,49,160,62,99,50,161,2, -156,83,160,41,58,35,43,89,162,32,32,8,29,9,225,6,5,4,27,250,22, -209,83,160,41,59,38,43,250,22,209,83,160,41,8,28,41,43,250,22,60,83, -160,41,8,29,44,43,250,22,209,83,160,41,8,30,47,43,248,22,60,250,22, -209,83,160,41,8,31,51,43,249,22,60,83,160,41,8,32,53,43,248,22,52, -23,20,83,160,41,8,33,51,43,83,160,41,8,34,47,43,250,22,209,83,160, -41,8,35,47,43,251,22,60,83,160,41,8,36,51,43,250,22,209,83,160,41, -8,37,54,43,250,22,60,83,160,41,8,38,57,43,83,160,41,8,39,57,43, -248,22,78,23,24,83,160,41,8,40,54,43,250,22,209,83,160,41,8,41,54, -43,250,22,62,83,160,41,8,42,57,43,248,22,87,23,24,248,22,90,23,24, -83,160,41,8,43,54,43,250,22,209,83,160,41,8,44,54,43,251,22,62,83, -160,41,8,45,58,43,83,160,41,8,46,58,43,249,22,70,23,26,36,249,22, -69,23,26,37,83,160,41,8,47,54,43,83,160,41,8,48,47,43,83,160,41, -8,49,41,43,197,89,162,32,32,33,9,223,0,192,89,162,32,32,34,9,223, -3,248,22,252,183,2,208,27,28,248,80,158,39,32,198,249,80,158,40,33,248, -80,158,41,34,200,27,248,80,158,42,35,201,28,248,80,158,42,32,193,27,28, -248,22,206,194,193,201,249,80,158,44,33,248,80,158,45,34,196,27,248,80,158, -46,35,197,28,248,80,158,46,32,193,27,28,248,22,206,194,193,196,249,80,158, -48,36,27,248,80,158,50,34,197,28,248,80,158,50,32,193,249,80,158,51,33, -248,80,158,52,34,195,27,248,80,158,53,35,196,28,248,80,158,53,32,193,249, -80,158,54,33,248,80,158,55,34,195,27,248,80,158,56,35,196,28,248,80,158, -56,39,193,248,22,59,248,80,158,57,40,194,11,11,11,27,248,80,158,50,35, -197,250,22,209,198,195,198,11,11,11,28,192,27,248,22,52,194,27,248,22,78, -195,27,248,22,87,196,27,248,22,90,197,27,249,22,70,199,36,27,249,22,69, -200,37,251,22,252,38,2,11,6,33,33,98,97,100,32,115,121,110,116,97,120, -32,40,110,111,116,32,97,32,100,97,116,117,109,32,115,101,113,117,101,110,99, -101,41,23,17,199,27,28,248,80,158,40,32,199,249,80,158,41,33,248,80,158, -42,34,201,27,248,80,158,43,35,202,28,248,80,158,43,32,193,27,28,248,22, -206,194,193,202,249,80,158,45,33,248,80,158,46,34,196,27,248,80,158,47,35, -197,28,248,80,158,47,32,193,27,28,248,22,206,194,193,196,249,80,158,49,33, -248,80,158,50,34,196,27,248,80,158,51,35,197,250,22,209,198,195,198,11,11, -11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27,248,22, -88,197,251,22,252,38,2,11,6,52,52,98,97,100,32,115,121,110,116,97,120, -32,40,109,105,115,115,105,110,103,32,101,120,112,114,101,115,115,105,111,110,32, -97,102,116,101,114,32,100,97,116,117,109,32,115,101,113,117,101,110,99,101,41, -23,16,197,27,89,162,32,32,36,68,116,114,121,45,110,101,120,116,162,223,7, -250,22,252,38,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,195,27, -28,248,80,158,42,32,201,249,80,158,43,33,248,80,158,44,34,203,27,248,80, -158,45,35,204,250,22,209,206,195,206,11,28,192,27,248,22,52,194,27,248,22, -53,195,28,248,22,57,248,22,210,194,247,195,250,22,252,38,2,11,6,31,31, -98,97,100,32,115,121,110,116,97,120,32,40,105,108,108,101,103,97,108,32,117, -115,101,32,111,102,32,96,46,39,41,23,15,247,193,32,20,97,158,16,11,2, -65,2,68,2,70,2,72,2,74,2,76,30,163,2,66,2,115,2,2,78,2, -80,30,164,2,109,68,114,101,108,111,99,97,116,101,165,1,30,166,2,107,1, -20,101,108,108,105,112,115,105,115,45,99,111,117,110,116,45,101,114,114,111,114, -167,0,16,50,18,98,2,82,49,36,35,34,16,4,48,11,2,133,3,1,7, -101,110,118,51,52,49,56,168,18,16,2,95,2,135,50,93,8,252,34,9,95, -9,8,252,34,9,2,107,18,100,2,136,53,36,35,34,48,16,6,52,11,3, -1,4,103,52,52,56,169,3,1,4,103,52,52,57,170,3,1,7,101,110,118, -51,52,50,51,171,2,171,16,6,51,11,2,141,2,155,3,1,7,101,110,118, -51,52,50,52,172,2,172,18,158,2,144,53,18,158,2,0,53,18,16,2,103, -93,16,2,158,93,16,2,158,2,92,53,9,53,9,8,29,97,8,28,10,32, -11,16,58,2,75,2,66,2,103,2,66,2,96,2,87,2,110,2,66,2,71, -2,66,2,106,29,173,11,11,2,113,2,66,2,73,2,66,2,114,2,66,2, -69,2,66,2,86,2,87,2,115,2,66,2,91,2,87,2,67,2,66,2,119, -2,66,2,94,2,87,2,95,2,87,73,115,121,110,116,97,120,45,99,97,115, -101,42,42,174,2,173,2,92,2,93,2,99,2,84,2,83,2,84,2,79,2, -66,2,81,2,66,2,167,2,173,2,85,2,84,2,100,2,87,2,77,2,66, -2,131,2,66,2,132,2,66,97,59,10,33,11,16,70,2,75,2,66,2,103, -2,66,2,96,2,87,72,110,111,45,101,108,108,105,112,115,101,115,63,175,64, -35,37,115,99,176,2,110,2,66,2,71,2,66,2,113,2,66,2,73,2,66, -2,114,2,66,74,103,101,116,45,109,97,116,99,104,45,118,97,114,115,177,2, -176,2,69,2,66,75,115,121,110,116,97,120,45,109,97,112,112,105,110,103,63, -178,2,176,74,109,97,107,101,45,109,97,116,99,104,38,101,110,118,179,2,176, -2,86,2,87,2,115,2,66,2,91,2,87,2,67,2,66,2,119,2,66,2, -94,2,87,72,109,97,107,101,45,112,101,120,112,97,110,100,180,2,176,2,95, -2,87,72,115,116,120,45,109,101,109,113,45,112,111,115,181,2,176,2,92,2, -93,79,109,97,107,101,45,115,121,110,116,97,120,45,109,97,112,112,105,110,103, -182,2,176,2,99,2,84,1,20,115,121,110,116,97,120,45,109,97,112,112,105, -110,103,45,100,101,112,116,104,183,2,176,2,83,2,84,2,79,2,66,2,81, -2,66,1,21,115,121,110,116,97,120,45,109,97,112,112,105,110,103,45,118,97, -108,118,97,114,184,2,176,2,85,2,84,2,100,2,87,2,77,2,66,2,131, -2,66,2,132,2,66,96,58,8,254,1,11,16,0,16,4,57,11,2,133,3, -1,6,101,110,118,51,55,55,185,16,4,56,11,68,104,101,114,101,45,115,116, -120,186,3,1,6,101,110,118,51,55,57,187,16,4,55,11,2,186,2,187,13, -16,3,33,2,173,2,107,93,8,252,34,9,16,6,54,11,61,114,188,63,115, -114,99,189,3,1,7,101,110,118,51,52,50,56,190,2,190,95,9,8,252,34, -9,2,107,18,158,2,144,53,18,158,64,101,108,115,101,191,49,18,16,2,95, -2,135,8,30,93,8,252,36,9,95,9,8,252,36,9,2,107,18,100,2,136, -8,33,36,35,34,48,16,10,8,32,11,3,1,4,103,52,52,52,192,3,1, -4,103,52,52,53,193,3,1,4,103,52,52,54,194,3,1,4,103,52,52,55, -195,3,1,7,101,110,118,51,52,51,55,196,2,196,2,196,2,196,16,10,8, -31,11,2,141,2,155,2,157,2,158,3,1,7,101,110,118,51,52,51,56,197, -2,197,2,197,2,197,18,158,2,144,8,33,18,158,2,0,8,33,18,158,2, -144,8,33,18,16,2,95,2,135,8,34,93,8,252,38,9,95,9,8,252,38, -9,2,107,18,16,2,99,2,156,8,39,93,8,252,38,9,16,6,8,38,11, -2,188,2,189,3,1,7,101,110,118,51,52,54,49,198,2,198,16,4,8,37, -11,64,101,120,110,104,199,3,1,7,101,110,118,51,52,54,50,200,16,4,8, -36,11,63,101,115,99,201,3,1,7,101,110,118,51,52,54,51,202,16,4,8, -35,11,63,101,120,110,203,3,1,7,101,110,118,51,52,54,53,204,95,9,8, -252,38,9,2,107,18,100,2,136,8,42,36,35,34,48,16,12,8,41,11,3, -1,4,103,52,51,57,205,3,1,4,103,52,52,48,206,3,1,4,103,52,52, -49,207,3,1,4,103,52,52,50,208,3,1,4,103,52,52,51,209,3,1,7, -101,110,118,51,52,53,51,210,2,210,2,210,2,210,2,210,16,12,8,40,11, -2,141,2,155,2,142,2,157,2,158,3,1,7,101,110,118,51,52,53,52,211, -2,211,2,211,2,211,2,211,18,158,2,144,8,42,18,158,2,154,8,42,18, -158,2,144,8,42,18,158,2,64,8,42,18,158,2,144,8,42,18,158,2,144, -8,42,18,158,2,0,8,42,18,158,2,144,8,42,18,158,2,144,8,42,18, -16,2,95,2,135,8,43,93,8,252,41,9,95,9,8,252,41,9,2,107,18, -16,2,99,2,156,8,48,93,8,252,41,9,16,6,8,47,11,2,188,2,189, -3,1,7,101,110,118,51,52,57,49,212,2,212,16,4,8,46,11,2,199,3, -1,7,101,110,118,51,52,57,50,213,16,4,8,45,11,2,201,3,1,7,101, -110,118,51,52,57,51,214,16,4,8,44,11,2,203,3,1,7,101,110,118,51, -52,57,53,215,95,9,8,252,41,9,2,107,18,100,2,136,8,51,36,35,34, -48,16,16,8,50,11,3,1,4,103,52,51,50,216,3,1,4,103,52,51,51, -217,3,1,4,103,52,51,52,218,3,1,4,103,52,51,53,219,3,1,4,103, -52,51,54,220,3,1,4,103,52,51,55,221,3,1,4,103,52,51,56,222,3, -1,7,101,110,118,51,52,56,49,223,2,223,2,223,2,223,2,223,2,223,2, -223,16,16,8,49,11,2,141,2,155,2,142,2,157,2,158,2,160,2,161,3, -1,7,101,110,118,51,52,56,50,224,2,224,2,224,2,224,2,224,2,224,2, -224,18,158,2,144,8,51,18,158,2,159,8,51,18,158,2,144,8,51,18,158, -2,144,8,51,18,158,2,133,8,51,18,158,2,144,8,51,18,158,2,144,8, -51,18,158,2,144,8,51,18,158,2,154,8,51,18,158,2,144,8,51,18,158, -2,64,8,51,18,158,2,133,8,51,18,158,2,144,8,51,18,158,2,144,8, -51,18,158,2,0,8,51,18,158,2,144,8,51,18,158,2,144,8,51,18,158, -2,53,8,51,18,158,2,133,8,51,18,158,2,144,8,51,18,158,2,144,8, -51,18,158,2,144,8,51,11,16,5,93,2,63,89,162,32,33,8,29,9,223, -0,27,249,22,209,83,160,41,32,35,45,196,27,28,248,80,158,35,32,194,249, -80,158,36,33,248,80,158,37,34,196,27,248,80,158,38,35,197,28,248,80,158, -38,32,193,249,80,158,39,36,27,248,80,158,41,34,196,28,248,80,158,41,37, -193,248,22,8,89,162,32,33,39,9,224,9,1,27,249,22,2,89,162,32,33, -50,9,224,4,5,249,80,158,35,38,28,248,80,158,36,32,197,249,80,158,37, -33,248,80,158,38,34,199,27,248,80,158,39,35,200,28,248,80,158,39,32,193, -27,28,248,22,206,194,193,200,249,80,158,41,33,248,80,158,42,34,196,27,248, -80,158,43,35,197,248,22,59,250,22,209,199,196,199,11,11,194,248,80,158,37, -39,196,28,248,22,57,193,21,95,9,9,9,248,80,158,35,40,193,11,27,248, -80,158,41,35,196,28,248,80,158,41,32,193,249,80,158,42,36,27,248,80,158, -44,34,196,28,248,80,158,44,32,193,249,80,158,45,33,248,80,158,46,34,195, -27,248,80,158,47,35,196,28,248,80,158,47,37,193,248,22,59,248,80,158,48, -39,194,11,11,27,248,80,158,44,35,196,28,248,80,158,44,37,193,248,80,158, -44,39,193,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248, -22,87,196,27,248,22,90,197,27,249,22,70,199,36,27,249,22,70,200,37,27, -249,22,69,201,38,27,249,22,209,83,160,41,33,44,45,250,22,2,89,162,32, -34,43,9,224,15,16,27,249,22,209,83,160,41,34,36,45,198,27,248,80,158, -36,41,194,28,192,196,27,28,248,80,158,37,32,195,249,80,158,38,36,248,80, -158,39,34,197,248,80,158,39,41,248,80,158,40,35,198,11,28,192,192,250,22, -252,38,2,11,6,19,19,98,97,100,32,118,97,114,105,97,98,108,101,32,115, -121,110,116,97,120,198,248,22,216,27,83,160,41,35,49,45,250,22,209,83,160, -41,36,52,45,23,16,195,248,22,216,27,83,160,41,37,49,45,250,22,209,83, -160,41,38,52,45,206,195,27,28,248,80,158,44,37,194,248,80,158,44,39,194, -11,28,192,27,249,22,209,83,160,41,39,46,45,27,83,160,41,40,47,45,250, -22,209,83,160,41,41,50,45,202,195,27,248,80,158,46,41,194,28,192,249,80, -158,47,42,23,16,27,252,22,61,206,204,23,16,202,23,17,27,83,160,41,42, -49,45,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,8, -89,162,32,33,40,9,226,19,2,3,1,250,22,31,89,162,32,32,36,9,225, -6,3,7,90,161,33,33,10,247,22,252,183,2,248,22,252,183,2,89,162,32, -33,36,9,224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22,252, -180,2,193,248,22,252,185,2,193,249,80,158,35,43,21,96,2,159,66,100,111, -108,111,111,112,225,94,94,63,118,97,114,226,64,105,110,105,116,227,2,156,95, -2,154,94,63,110,111,116,228,62,101,48,229,96,2,0,61,99,230,2,156,95, -2,225,64,115,116,101,112,231,2,156,83,160,41,43,35,45,89,162,32,32,8, -34,9,225,6,5,4,27,250,22,209,83,160,41,44,38,45,250,22,209,83,160, -41,45,41,45,251,22,60,83,160,41,46,45,45,83,160,41,47,45,45,250,22, -2,89,162,33,33,41,9,223,16,250,22,209,83,160,41,48,35,45,249,22,60, -248,22,52,199,248,22,78,199,83,160,41,49,35,45,248,22,89,23,15,248,22, -87,23,15,250,22,209,83,160,41,50,48,45,250,22,60,83,160,41,51,51,45, -250,22,209,83,160,41,52,54,45,249,22,60,83,160,41,53,56,45,248,22,52, -23,23,83,160,41,54,54,45,250,22,209,83,160,41,55,54,45,249,22,56,83, -160,41,56,56,45,249,22,65,248,22,78,23,25,248,22,60,250,22,209,83,160, -41,57,8,30,45,249,22,56,83,160,41,58,8,32,45,248,22,90,23,31,83, -160,41,59,8,30,45,83,160,41,8,28,54,45,83,160,41,8,29,48,45,83, -160,41,8,30,41,45,197,89,162,32,32,33,9,223,0,192,89,162,32,32,34, -9,223,3,248,22,252,183,2,208,27,28,248,80,158,47,32,195,249,80,158,48, -33,248,80,158,49,34,197,27,248,80,158,50,35,198,28,248,80,158,50,37,193, -248,80,158,50,39,193,11,11,28,192,27,248,22,52,194,27,248,22,53,195,249, -80,158,50,42,23,19,27,254,22,61,23,19,23,17,202,203,23,21,23,15,23, -22,27,83,160,41,8,31,52,45,91,159,33,11,90,161,33,32,11,83,160,38, -32,33,11,247,248,22,8,89,162,32,33,40,9,226,22,2,3,1,250,22,31, -89,162,32,32,36,9,225,6,3,7,90,161,33,33,10,247,22,252,183,2,248, -22,252,183,2,89,162,32,33,36,9,224,3,1,248,193,89,162,32,32,36,9, -224,2,3,28,248,22,252,180,2,193,248,22,252,185,2,193,249,80,158,35,43, -21,96,2,159,2,225,94,94,2,226,2,227,2,156,96,2,154,2,229,96,2, -0,2,157,2,158,2,156,96,2,0,2,230,2,156,95,2,225,2,231,2,156, -83,160,41,8,32,35,45,89,162,32,32,8,36,9,225,6,5,4,27,250,22, -209,83,160,41,8,33,38,45,250,22,209,83,160,41,8,34,41,45,251,22,60, -83,160,41,8,35,45,45,83,160,41,8,36,45,45,250,22,2,89,162,33,33, -41,9,223,16,250,22,209,83,160,41,8,37,35,45,249,22,60,248,22,52,199, -248,22,78,199,83,160,41,8,38,35,45,249,22,69,23,16,38,249,22,70,23, -16,36,250,22,209,83,160,41,8,39,48,45,251,22,60,83,160,41,8,40,52, -45,248,22,52,23,19,250,22,209,83,160,41,8,41,55,45,250,22,62,83,160, -41,8,42,58,45,248,22,90,23,25,248,22,87,23,25,83,160,41,8,43,55, -45,250,22,209,83,160,41,8,44,55,45,249,22,56,83,160,41,8,45,57,45, -249,22,65,248,22,78,23,26,248,22,60,250,22,209,83,160,41,8,46,8,31, -45,249,22,56,83,160,41,8,47,8,33,45,249,22,70,23,33,37,83,160,41, -8,48,8,31,45,83,160,41,8,49,55,45,83,160,41,8,50,48,45,83,160, -41,8,51,41,45,197,89,162,32,32,33,9,223,0,192,89,162,32,32,34,9, -223,3,248,22,252,183,2,208,250,22,252,38,2,11,6,10,10,98,97,100,32, -115,121,110,116,97,120,197,248,80,158,44,44,83,160,41,8,52,44,45,250,22, -252,38,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,196,32,20,97, -158,16,13,2,65,2,68,2,70,2,72,2,74,2,78,30,232,2,66,2,103, -7,2,80,30,233,2,66,2,110,12,2,76,2,164,2,166,30,234,2,105,76, -119,105,116,104,45,115,121,110,116,97,120,45,102,97,105,108,235,3,16,53,18, -98,2,82,8,53,36,35,34,16,4,8,52,11,66,111,114,105,103,45,120,236, -3,1,7,101,110,118,51,53,52,53,237,18,100,2,82,8,56,36,35,34,8, -52,16,16,8,55,11,3,1,4,103,52,53,48,238,3,1,4,103,52,53,49, -239,3,1,4,103,52,53,50,240,3,1,4,103,52,53,51,241,3,1,4,103, -52,53,52,242,3,1,4,103,52,53,53,243,3,1,4,103,52,53,54,244,3, -1,7,101,110,118,51,53,54,50,245,2,245,2,245,2,245,2,245,2,245,2, -245,16,16,8,54,11,2,141,2,226,2,227,2,231,2,229,2,157,2,230,3, -1,7,101,110,118,51,53,54,51,246,2,246,2,246,2,246,2,246,2,246,2, -246,18,101,2,82,8,58,36,35,34,8,52,8,55,8,54,16,6,8,57,11, -2,155,61,115,247,3,1,7,101,110,118,51,53,55,51,248,2,248,18,16,2, -95,2,135,8,59,93,8,252,62,9,95,9,8,252,62,9,2,107,18,158,2, -136,8,56,18,16,2,95,2,135,8,60,93,8,252,63,9,95,9,8,252,63, -9,2,107,18,158,2,136,8,56,18,101,2,82,8,62,36,35,34,8,52,8, -55,8,54,16,4,8,61,11,3,1,4,103,52,54,49,249,3,1,7,101,110, -118,51,53,57,51,250,18,16,2,95,2,135,8,63,93,8,252,67,9,95,9, -8,252,67,9,2,107,18,158,2,136,8,62,18,16,2,95,2,135,8,64,93, -8,252,69,9,95,9,8,252,69,9,2,107,18,16,2,99,2,156,8,69,93, -8,252,69,9,16,6,8,68,11,2,188,2,189,3,1,7,101,110,118,51,54, -48,51,251,2,251,16,4,8,67,11,2,199,3,1,7,101,110,118,51,54,48, -52,252,252,0,16,4,8,66,11,2,201,3,1,7,101,110,118,51,54,48,53, -252,253,0,16,4,8,65,11,2,203,3,1,7,101,110,118,51,54,48,55,252, -254,0,95,9,8,252,69,9,2,107,18,158,2,136,8,62,18,158,2,144,8, -62,18,158,2,159,8,62,18,158,2,225,8,62,18,158,2,144,8,62,18,158, -2,144,8,62,18,158,2,144,8,62,18,158,2,154,8,62,18,158,2,144,8, -62,18,158,2,228,8,62,18,158,2,144,8,62,18,158,2,144,8,62,18,158, -2,0,8,62,18,158,2,144,8,62,18,158,2,225,8,62,18,158,2,144,8, -62,18,158,2,144,8,62,18,158,2,144,8,62,18,158,2,144,8,62,18,16, -2,95,2,135,8,70,93,8,252,72,9,95,9,8,252,72,9,2,107,18,16, -2,99,2,156,8,75,93,8,252,72,9,16,6,8,74,11,2,188,2,189,3, -1,7,101,110,118,51,54,50,51,252,255,0,2,252,255,0,16,4,8,73,11, -2,199,3,1,7,101,110,118,51,54,50,52,252,0,1,16,4,8,72,11,2, -201,3,1,7,101,110,118,51,54,50,53,252,1,1,16,4,8,71,11,2,203, -3,1,7,101,110,118,51,54,50,55,252,2,1,95,9,8,252,72,9,2,107, -18,103,2,136,8,78,36,35,34,8,52,8,55,8,54,8,61,16,6,8,77, -11,3,1,4,103,52,54,50,252,3,1,3,1,4,103,52,54,51,252,4,1, -3,1,7,101,110,118,51,54,49,56,252,5,1,2,252,5,1,16,4,8,76, -11,2,158,3,1,7,101,110,118,51,54,49,57,252,6,1,18,158,2,144,8, -78,18,158,2,159,8,78,18,158,2,225,8,78,18,158,2,144,8,78,18,158, -2,144,8,78,18,158,2,144,8,78,18,158,2,154,8,78,18,158,2,144,8, -78,18,158,2,0,8,78,18,158,2,144,8,78,18,158,2,144,8,78,18,158, -2,0,8,78,18,158,2,144,8,78,18,158,2,225,8,78,18,158,2,144,8, -78,18,158,2,144,8,78,18,158,2,144,8,78,18,158,2,144,8,78,18,16, -2,158,94,16,2,98,2,231,8,82,93,8,252,58,9,16,4,8,81,11,3, -1,8,119,115,116,109,112,52,53,55,252,7,1,3,1,7,101,110,118,51,53, -55,50,252,8,1,16,4,8,80,11,3,1,4,103,52,54,48,252,9,1,3, -1,7,101,110,118,51,54,51,54,252,10,1,16,4,8,79,11,65,95,101,108, -115,101,252,11,1,3,1,7,101,110,118,51,54,51,55,252,12,1,9,16,2, -158,2,156,8,82,9,8,82,95,9,8,252,58,9,2,105,11,16,5,93,2, -61,89,162,32,33,55,9,223,0,27,249,22,209,83,160,41,32,35,39,196,27, -28,248,80,158,35,32,194,249,80,158,36,33,248,80,158,37,34,196,27,248,80, -158,38,35,197,28,248,80,158,38,32,193,249,80,158,39,36,248,80,158,40,34, -195,248,80,158,40,37,248,80,158,41,35,196,11,11,28,192,27,248,22,52,194, -27,248,22,53,195,249,80,158,38,38,199,27,83,160,41,33,39,39,250,22,209, -83,160,41,34,42,39,250,22,209,83,160,41,35,45,39,249,22,60,83,160,41, -36,47,39,250,22,209,83,160,41,37,50,39,250,22,60,83,160,41,38,53,39, -83,160,41,39,53,39,23,17,83,160,41,40,50,39,83,160,41,41,45,39,195, -250,22,252,38,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,196,32, -20,97,158,16,7,2,65,2,68,2,70,2,72,2,74,2,76,2,164,16,10, -18,98,2,82,8,84,36,35,34,16,4,8,83,11,2,133,3,1,7,101,110, -118,51,54,52,48,252,13,1,18,16,2,95,2,135,8,85,93,8,252,82,9, -95,9,8,252,82,9,2,107,18,100,2,136,8,88,36,35,34,8,83,16,6, -8,87,11,3,1,4,103,52,54,52,252,14,1,3,1,4,103,52,54,53,252, -15,1,3,1,7,101,110,118,51,54,52,53,252,16,1,2,252,16,1,16,6, -8,86,11,2,61,63,101,120,112,252,17,1,3,1,7,101,110,118,51,54,52, -54,252,18,1,2,252,18,1,18,158,2,144,8,88,18,158,2,6,8,88,18, -158,2,144,8,88,18,158,66,108,97,109,98,100,97,252,19,1,8,88,18,158, -9,8,88,18,158,2,144,8,88,18,158,2,144,8,88,11,16,5,93,2,101, -253,22,60,248,247,22,252,85,3,83,160,41,32,39,32,248,247,22,252,85,3, -83,160,41,33,39,32,248,247,22,252,85,3,83,160,41,34,39,32,248,22,60, -248,247,22,252,85,3,83,160,41,35,40,32,248,22,60,248,247,22,252,85,3, -83,160,41,36,40,32,10,40,20,97,158,16,0,16,5,18,97,2,4,8,89, -36,35,34,18,158,2,6,8,89,18,158,2,8,8,89,18,158,2,10,8,89, -18,158,2,12,8,89,11,16,5,93,2,62,89,162,32,33,55,9,223,0,27, -249,22,209,83,160,41,32,35,45,196,27,28,248,80,158,35,32,194,249,80,158, +64,104,101,114,101,82,38,98,36,10,32,11,95,159,2,18,9,11,159,68,35, +37,100,101,102,105,110,101,83,9,11,159,74,35,37,115,109,97,108,108,45,115, +99,104,101,109,101,84,9,11,16,70,2,61,2,2,2,41,2,2,2,23,2, +2,2,35,2,2,2,27,2,2,2,6,2,2,2,63,2,2,2,31,2,2, +2,12,2,2,2,62,2,2,2,64,2,2,2,33,2,2,2,8,2,2,2, +56,2,2,1,22,98,114,101,97,107,45,112,97,114,97,109,101,116,101,114,105, +122,97,116,105,111,110,85,2,2,2,43,2,2,2,45,2,2,2,39,2,2, +2,49,2,2,2,52,2,2,2,59,2,2,2,57,2,2,67,112,114,111,109, +105,115,101,86,2,2,2,10,2,2,2,14,2,2,2,55,2,2,2,4,2, +2,2,60,2,2,2,29,2,2,2,58,2,2,2,54,2,2,2,37,2,2, +2,16,2,2,2,25,2,2,2,53,2,2,98,35,10,33,11,95,159,67,35, +37,113,113,115,116,120,87,9,11,159,76,35,37,115,116,120,99,97,115,101,45, +115,99,104,101,109,101,88,9,11,159,2,66,9,11,16,0,96,34,8,254,1, +11,16,0,16,4,33,11,61,120,89,3,1,7,101,110,118,51,51,57,49,90, +18,16,2,95,66,115,114,99,116,97,103,91,39,93,8,252,245,8,95,9,8, +252,245,8,69,35,37,115,116,120,99,97,115,101,92,18,100,64,100,101,115,116, +93,42,36,35,34,33,16,8,41,11,3,1,4,103,52,49,55,94,3,1,4, +103,52,49,56,95,3,1,4,103,52,49,57,96,3,1,7,101,110,118,51,51, +57,56,97,2,97,2,97,16,6,40,11,61,95,98,61,107,99,3,1,7,101, +110,118,51,51,57,57,100,2,100,18,158,63,99,116,120,101,42,18,158,63,101, +113,63,102,42,18,158,2,101,42,18,158,65,113,117,111,116,101,103,42,18,158, +2,101,42,18,158,2,101,42,18,16,2,95,2,91,43,93,8,252,246,8,95, +9,8,252,246,8,2,92,18,158,2,93,42,18,158,2,101,42,18,158,64,101, +113,118,63,104,42,18,158,2,101,42,18,158,2,103,42,18,158,2,101,42,18, +158,2,101,42,18,16,2,95,2,91,44,93,8,252,247,8,95,9,8,252,247, +8,2,92,18,100,2,93,47,36,35,34,33,16,8,46,11,3,1,4,103,52, +49,52,105,3,1,4,103,52,49,53,106,3,1,4,103,52,49,54,107,3,1, +7,101,110,118,51,52,49,48,108,2,108,2,108,16,6,45,11,2,98,2,99, +3,1,7,101,110,118,51,52,49,49,109,2,109,18,158,2,101,47,18,158,64, +109,101,109,118,110,47,18,158,2,101,47,18,158,2,103,47,18,158,2,101,47, +18,158,2,101,47,11,16,5,93,2,62,89,162,32,33,8,36,9,223,0,27, +249,22,209,20,15,159,35,32,43,196,27,28,248,80,158,35,32,194,249,80,158, 36,33,248,80,158,37,34,196,27,248,80,158,38,35,197,28,248,80,158,38,32, -193,28,248,80,158,38,36,248,80,158,39,34,194,27,248,80,158,39,35,194,28, -248,80,158,39,32,193,249,80,158,40,33,248,80,158,41,34,195,27,248,80,158, -42,35,196,28,248,80,158,42,37,193,248,80,158,42,38,193,11,11,11,11,11, -28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,80,196,27,249,22,61, -196,195,27,83,160,41,33,39,45,250,22,209,83,160,41,34,42,45,250,22,209, -83,160,41,35,45,45,250,22,62,83,160,41,36,48,45,83,160,41,37,48,45, -202,83,160,41,38,45,45,195,27,28,248,80,158,36,32,195,249,80,158,37,33, -248,80,158,38,34,197,27,248,80,158,39,35,198,28,248,80,158,39,32,193,249, -80,158,40,39,27,248,80,158,42,34,196,28,248,80,158,42,37,193,248,22,8, -89,162,32,33,39,9,224,10,1,27,249,22,2,89,162,32,33,45,9,224,4, -5,249,80,158,35,40,28,248,80,158,36,32,197,249,80,158,37,33,248,80,158, -38,34,199,27,248,80,158,39,35,200,28,248,80,158,39,32,193,249,80,158,40, -33,248,80,158,41,34,195,248,80,158,41,36,248,80,158,42,35,196,11,11,194, -248,80,158,37,38,196,28,248,22,57,193,21,94,9,9,248,80,158,35,41,193, -11,27,248,80,158,42,35,196,28,248,80,158,42,32,193,249,80,158,43,33,248, -80,158,44,34,195,27,248,80,158,45,35,196,28,248,80,158,45,37,193,248,80, -158,45,38,193,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27, -248,22,87,196,27,248,22,90,197,27,248,22,89,198,27,249,22,209,83,160,41, -39,43,45,249,22,1,22,65,250,22,2,22,59,248,22,216,27,83,160,41,40, -50,45,250,22,209,83,160,41,41,53,45,23,16,195,248,22,216,27,83,160,41, -42,50,45,250,22,209,83,160,41,43,53,45,23,15,195,27,28,248,80,158,43, -37,194,248,80,158,43,38,194,11,28,192,249,80,158,44,42,205,27,250,22,61, -200,201,198,27,83,160,41,44,46,45,91,159,33,11,90,161,33,32,11,83,160, -38,32,33,11,247,248,22,8,89,162,32,33,40,9,226,16,2,3,1,250,22, -31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10,247,22,252,183,2, -248,22,252,183,2,89,162,32,33,36,9,224,3,1,248,193,89,162,32,32,36, -9,224,2,3,28,248,22,252,180,2,193,248,22,252,185,2,193,249,80,158,35, -43,21,96,1,22,119,105,116,104,45,99,111,110,116,105,110,117,97,116,105,111, -110,45,109,97,114,107,252,20,1,2,21,96,2,19,95,1,27,99,111,110,116, -105,110,117,97,116,105,111,110,45,109,97,114,107,45,115,101,116,45,102,105,114, -115,116,252,21,1,11,2,21,63,112,47,118,252,22,1,2,156,97,2,159,9, -65,101,120,112,114,49,252,23,1,64,101,120,112,114,252,24,1,2,156,83,160, -41,45,35,45,89,162,32,32,54,9,225,6,5,4,27,250,22,209,83,160,41, -46,38,45,250,22,209,83,160,41,47,41,45,251,22,60,83,160,41,48,45,45, -83,160,41,49,45,45,250,22,209,83,160,41,50,48,45,250,22,62,83,160,41, -51,51,45,83,160,41,52,51,45,248,22,80,23,18,83,160,41,53,48,45,250, -22,209,83,160,41,54,48,45,251,22,62,83,160,41,55,52,45,83,160,41,56, -52,45,248,22,78,23,19,248,22,52,23,19,83,160,41,57,48,45,83,160,41, -58,41,45,197,89,162,32,32,33,9,223,0,192,89,162,32,32,34,9,223,3, -248,22,252,183,2,208,248,80,158,43,44,83,160,41,59,43,45,250,22,252,38, -2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,197,32,20,97,158,16, -13,2,65,2,68,2,70,2,72,2,76,2,78,2,80,2,74,2,232,2,233, -2,164,2,166,2,234,16,28,18,98,2,82,8,91,36,35,34,16,4,8,90, -11,63,115,116,120,252,25,1,3,1,7,101,110,118,51,54,53,51,252,26,1, -18,16,2,95,2,135,8,92,93,8,252,112,9,95,9,8,252,112,9,2,107, -18,100,2,136,8,95,36,35,34,8,90,16,8,8,94,11,3,1,4,103,52, -55,49,252,27,1,3,1,4,103,52,55,50,252,28,1,3,1,4,103,52,55, -51,252,29,1,3,1,7,101,110,118,51,54,54,48,252,30,1,2,252,30,1, -2,252,30,1,16,8,8,93,11,2,141,2,252,23,1,2,252,24,1,3,1, -7,101,110,118,51,54,54,49,252,31,1,2,252,31,1,2,252,31,1,18,158, -2,144,8,95,18,158,2,159,8,95,18,158,9,8,95,18,158,2,144,8,95, -18,100,2,82,8,98,36,35,34,8,90,16,12,8,97,11,3,1,4,103,52, -54,54,252,32,1,3,1,4,103,52,54,55,252,33,1,3,1,4,103,52,54, -56,252,34,1,3,1,4,103,52,54,57,252,35,1,3,1,4,103,52,55,48, -252,36,1,3,1,7,101,110,118,51,54,55,55,252,37,1,2,252,37,1,2, -252,37,1,2,252,37,1,2,252,37,1,16,12,8,96,11,2,141,65,112,97, -114,97,109,252,38,1,63,118,97,108,252,39,1,2,252,23,1,2,252,24,1, -3,1,7,101,110,118,51,54,55,56,252,40,1,2,252,40,1,2,252,40,1, -2,252,40,1,2,252,40,1,18,16,2,95,2,135,8,99,93,8,252,115,9, -95,9,8,252,115,9,2,107,18,158,2,136,8,98,18,16,2,95,2,135,8, -100,93,8,252,116,9,95,9,8,252,116,9,2,107,18,158,2,136,8,98,18, -16,2,95,2,135,8,101,93,8,252,119,9,95,9,8,252,119,9,2,107,18, -16,2,99,2,156,8,106,93,8,252,119,9,16,6,8,105,11,2,188,2,189, -3,1,7,101,110,118,51,54,57,53,252,41,1,2,252,41,1,16,4,8,104, -11,2,199,3,1,7,101,110,118,51,54,57,54,252,42,1,16,4,8,103,11, -2,201,3,1,7,101,110,118,51,54,57,55,252,43,1,16,4,8,102,11,2, -203,3,1,7,101,110,118,51,54,57,57,252,44,1,95,9,8,252,119,9,2, -107,18,102,2,136,8,109,36,35,34,8,90,8,97,8,96,16,4,8,108,11, -3,1,4,103,52,55,54,252,45,1,3,1,7,101,110,118,51,54,57,49,252, -46,1,16,4,8,107,11,2,252,22,1,3,1,7,101,110,118,51,54,57,50, -252,47,1,18,158,2,144,8,109,18,158,2,252,20,1,8,109,18,158,2,21, -8,109,18,158,2,144,8,109,18,158,2,19,8,109,18,158,95,16,2,158,2, -252,21,1,8,109,9,16,2,158,11,8,109,9,16,2,158,2,21,8,109,9, -8,109,18,158,2,144,8,109,18,158,2,144,8,109,18,158,2,159,8,109,18, -158,9,8,109,18,158,2,144,8,109,18,158,2,144,8,109,18,16,2,158,94, -16,2,98,2,252,22,1,8,113,93,8,252,114,9,16,4,8,112,11,3,1, -8,119,115,116,109,112,52,55,52,252,48,1,3,1,7,101,110,118,51,54,56, -53,252,49,1,16,4,8,111,11,3,1,4,103,52,55,53,252,50,1,3,1, -7,101,110,118,51,55,48,54,252,51,1,16,4,8,110,11,2,252,11,1,3, -1,7,101,110,118,51,55,48,55,252,52,1,9,16,2,158,2,156,8,113,9, -8,113,95,9,8,252,114,9,2,105,11,16,5,93,2,58,89,162,32,33,8, -36,9,223,0,27,249,22,209,83,160,41,32,35,39,196,27,28,248,80,158,35, +193,249,80,158,39,36,248,80,158,40,34,195,248,80,158,40,37,248,80,158,41, +35,196,11,11,28,192,27,248,22,52,194,27,248,22,53,195,27,20,15,159,37, +33,43,250,22,209,20,15,159,40,34,43,250,22,209,20,15,159,43,35,43,250, +22,62,20,15,159,46,36,43,202,20,15,159,46,37,43,20,15,159,43,38,43, +195,27,28,248,80,158,36,32,195,249,80,158,37,33,248,80,158,38,34,197,27, +248,80,158,39,35,198,28,248,80,158,39,32,193,249,80,158,40,33,248,80,158, +41,34,195,27,248,80,158,42,35,196,28,248,80,158,42,32,193,249,80,158,43, +36,27,248,80,158,45,34,196,28,248,80,158,45,32,193,28,27,248,80,158,46, +34,194,28,248,80,158,46,38,193,28,249,22,223,194,20,15,159,47,39,43,9, +11,11,27,248,80,158,46,35,194,28,248,80,158,46,32,193,249,80,158,47,33, +248,80,158,48,34,195,27,248,80,158,49,35,196,28,248,80,158,49,39,193,248, +80,158,49,40,193,11,11,11,11,248,80,158,44,37,248,80,158,45,35,196,11, +11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27,248, +22,88,197,249,80,158,41,41,202,27,250,22,61,198,199,200,27,20,15,159,43, +40,43,250,22,209,20,15,159,46,41,43,250,22,209,20,15,159,49,42,43,251, +22,62,20,15,159,53,43,43,248,22,80,204,248,22,78,204,248,22,52,204,20, +15,159,49,44,43,195,27,28,248,80,158,37,32,196,249,80,158,38,33,248,80, +158,39,34,198,27,248,80,158,40,35,199,28,248,80,158,40,32,193,249,80,158, +41,33,248,80,158,42,34,195,27,248,80,158,43,35,196,28,248,80,158,43,32, +193,249,80,158,44,36,27,248,80,158,46,34,196,28,248,80,158,46,32,193,249, +80,158,47,36,27,248,80,158,49,34,196,28,248,80,158,49,39,193,248,22,59, +248,80,158,50,40,194,11,27,248,80,158,49,35,196,28,248,80,158,49,32,193, +249,80,158,50,33,248,80,158,51,34,195,27,248,80,158,52,35,196,28,248,80, +158,52,39,193,248,80,158,52,40,193,11,11,11,248,80,158,45,37,248,80,158, +46,35,196,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22, +87,196,27,248,22,90,197,27,248,22,89,198,249,80,158,43,41,204,27,251,22, +61,202,200,199,201,27,20,15,159,45,45,43,91,159,33,11,90,161,33,32,11, +83,160,38,32,33,11,247,248,22,9,89,162,32,33,40,9,226,15,2,3,1, +250,22,31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10,247,22,252, +184,2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193,89,162,32, +32,36,9,224,2,3,28,248,22,252,181,2,193,248,22,252,186,2,193,249,80, +158,35,42,21,95,62,105,102,111,95,2,64,61,118,112,94,2,99,63,46,46, +46,113,96,2,0,62,101,49,114,62,101,50,115,2,113,20,15,159,35,46,43, +89,162,32,32,52,9,225,6,5,4,27,250,22,209,20,15,159,38,47,43,250, +22,209,20,15,159,41,48,43,250,22,60,20,15,159,44,49,43,250,22,209,20, +15,159,47,50,43,250,22,60,20,15,159,50,51,43,248,22,52,23,17,248,22, +88,23,17,20,15,159,47,52,43,250,22,209,20,15,159,47,53,43,250,22,62, +20,15,159,50,54,43,248,22,78,23,17,248,22,87,23,17,20,15,159,47,55, +43,20,15,159,41,56,43,197,89,162,32,32,33,9,223,0,192,89,162,32,32, +34,9,223,3,248,22,252,184,2,208,27,28,248,80,158,38,32,197,249,80,158, +39,33,248,80,158,40,34,199,27,248,80,158,41,35,200,28,248,80,158,41,32, +193,249,80,158,42,33,248,80,158,43,34,195,27,248,80,158,44,35,196,28,248, +80,158,44,32,193,249,80,158,45,36,27,248,80,158,47,34,196,28,248,80,158, +47,32,193,249,80,158,48,36,27,248,80,158,50,34,196,28,248,80,158,50,39, +193,248,22,59,248,80,158,51,40,194,11,27,248,80,158,50,35,196,28,248,80, +158,50,32,193,249,80,158,51,33,248,80,158,52,34,195,27,248,80,158,53,35, +196,28,248,80,158,53,39,193,248,22,59,248,80,158,54,40,194,11,11,11,27, +248,80,158,47,35,196,28,248,80,158,47,32,193,249,80,158,48,33,248,80,158, +49,34,195,27,248,80,158,50,35,196,28,248,80,158,50,39,193,248,80,158,50, +40,193,11,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248, +22,87,196,27,248,22,90,197,27,249,22,70,199,36,27,249,22,70,200,37,27, +249,22,69,201,38,249,80,158,46,41,23,15,27,253,22,61,206,202,204,203,205, +201,27,20,15,159,48,57,43,91,159,33,11,90,161,33,32,11,83,160,38,32, +33,11,247,248,22,9,89,162,32,33,40,9,226,18,2,3,1,250,22,31,89, +162,32,32,36,9,225,6,3,7,90,161,33,33,10,247,22,252,184,2,248,22, +252,184,2,89,162,32,33,36,9,224,3,1,248,193,89,162,32,32,36,9,224, +2,3,28,248,22,252,181,2,193,248,22,252,186,2,193,249,80,158,35,42,21, +95,63,108,101,116,116,93,94,2,89,2,112,96,2,111,95,2,64,2,89,94, +2,99,2,113,96,2,0,2,114,2,115,2,113,97,2,62,2,89,62,99,49, +117,62,99,50,118,2,113,20,15,159,35,58,43,89,162,32,32,8,29,9,225, +6,5,4,27,250,22,209,20,15,159,38,59,43,250,22,209,20,15,159,41,8, +28,43,250,22,60,20,15,159,44,8,29,43,250,22,209,20,15,159,47,8,30, +43,248,22,60,250,22,209,20,15,159,51,8,31,43,249,22,60,20,15,159,53, +8,32,43,248,22,52,23,20,20,15,159,51,8,33,43,20,15,159,47,8,34, +43,250,22,209,20,15,159,47,8,35,43,251,22,60,20,15,159,51,8,36,43, +250,22,209,20,15,159,54,8,37,43,250,22,60,20,15,159,57,8,38,43,20, +15,159,57,8,39,43,249,22,70,23,25,36,20,15,159,54,8,40,43,250,22, +209,20,15,159,54,8,41,43,250,22,62,20,15,159,57,8,42,43,248,22,87, +23,24,248,22,90,23,24,20,15,159,54,8,43,43,250,22,209,20,15,159,54, +8,44,43,251,22,62,20,15,159,58,8,45,43,20,15,159,58,8,46,43,248, +22,78,23,25,249,22,69,23,26,37,20,15,159,54,8,47,43,20,15,159,47, +8,48,43,20,15,159,41,8,49,43,197,89,162,32,32,33,9,223,0,192,89, +162,32,32,34,9,223,3,248,22,252,184,2,208,27,28,248,80,158,39,32,198, +249,80,158,40,33,248,80,158,41,34,200,27,248,80,158,42,35,201,28,248,80, +158,42,32,193,27,28,248,22,206,194,193,201,249,80,158,44,33,248,80,158,45, +34,196,27,248,80,158,46,35,197,28,248,80,158,46,32,193,27,28,248,22,206, +194,193,196,249,80,158,48,36,27,248,80,158,50,34,197,28,248,80,158,50,32, +193,249,80,158,51,33,248,80,158,52,34,195,27,248,80,158,53,35,196,28,248, +80,158,53,32,193,249,80,158,54,33,248,80,158,55,34,195,27,248,80,158,56, +35,196,28,248,80,158,56,39,193,248,22,59,248,80,158,57,40,194,11,11,11, +27,248,80,158,50,35,197,250,22,209,198,195,198,11,11,11,28,192,27,248,22, +52,194,27,248,22,78,195,27,248,22,87,196,27,248,22,90,197,27,249,22,70, +199,36,27,249,22,69,200,37,251,22,252,39,2,11,6,33,33,98,97,100,32, +115,121,110,116,97,120,32,40,110,111,116,32,97,32,100,97,116,117,109,32,115, +101,113,117,101,110,99,101,41,23,17,199,27,28,248,80,158,40,32,199,249,80, +158,41,33,248,80,158,42,34,201,27,248,80,158,43,35,202,28,248,80,158,43, +32,193,27,28,248,22,206,194,193,202,249,80,158,45,33,248,80,158,46,34,196, +27,248,80,158,47,35,197,28,248,80,158,47,32,193,27,28,248,22,206,194,193, +196,249,80,158,49,33,248,80,158,50,34,196,27,248,80,158,51,35,197,250,22, +209,198,195,198,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248, +22,87,196,27,248,22,88,197,251,22,252,39,2,11,6,52,52,98,97,100,32, +115,121,110,116,97,120,32,40,109,105,115,115,105,110,103,32,101,120,112,114,101, +115,115,105,111,110,32,97,102,116,101,114,32,100,97,116,117,109,32,115,101,113, +117,101,110,99,101,41,23,16,197,27,89,162,32,32,36,68,116,114,121,45,110, +101,120,116,119,223,7,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121, +110,116,97,120,195,27,28,248,80,158,42,32,201,249,80,158,43,33,248,80,158, +44,34,203,27,248,80,158,45,35,204,250,22,209,206,195,206,11,28,192,27,248, +22,52,194,27,248,22,53,195,28,248,22,57,248,22,210,194,247,195,250,22,252, +39,2,11,6,31,31,98,97,100,32,115,121,110,116,97,120,32,40,105,108,108, +101,103,97,108,32,117,115,101,32,111,102,32,96,46,39,41,23,15,247,193,32, +20,98,158,16,11,2,65,2,68,2,70,2,72,2,74,2,76,30,120,2,66, +71,105,100,101,110,116,105,102,105,101,114,63,121,2,2,78,2,80,30,122,68, +35,37,115,116,120,108,111,99,123,68,114,101,108,111,99,97,116,101,124,1,30, +125,2,92,1,20,101,108,108,105,112,115,105,115,45,99,111,117,110,116,45,101, +114,114,111,114,126,0,16,50,18,98,2,82,49,36,35,34,16,4,48,11,2, +89,3,1,7,101,110,118,51,52,49,56,127,18,16,2,95,2,91,50,93,8, +252,34,9,95,9,8,252,34,9,2,92,18,100,2,93,53,36,35,34,48,16, +6,52,11,3,1,4,103,52,52,56,128,3,1,4,103,52,52,57,129,3,1, +7,101,110,118,51,52,50,51,130,2,130,16,6,51,11,2,98,2,112,3,1, +7,101,110,118,51,52,50,52,131,2,131,18,158,2,101,53,18,158,2,0,53, +18,16,2,103,93,16,2,158,93,16,2,158,64,99,111,110,100,132,53,9,53, +9,8,29,98,8,28,10,32,11,94,159,2,84,9,11,159,2,66,9,11,16, +6,66,115,121,110,116,97,120,133,29,134,11,11,73,115,121,110,116,97,120,45, +99,97,115,101,42,42,135,2,134,2,126,2,134,98,59,10,33,11,95,159,64, +35,37,115,99,136,9,11,159,2,84,9,11,159,2,66,9,11,16,0,96,58, +8,254,1,11,16,0,16,4,57,11,2,89,3,1,6,101,110,118,51,55,55, +137,16,4,56,11,68,104,101,114,101,45,115,116,120,138,3,1,6,101,110,118, +51,55,57,139,16,4,55,11,2,138,2,139,13,16,3,33,2,134,2,92,93, +8,252,34,9,16,6,54,11,61,114,140,63,115,114,99,141,3,1,7,101,110, +118,51,52,50,56,142,2,142,95,9,8,252,34,9,2,92,18,158,2,101,53, +18,158,64,101,108,115,101,143,49,18,16,2,95,2,91,8,30,93,8,252,36, +9,95,9,8,252,36,9,2,92,18,100,2,93,8,33,36,35,34,48,16,10, +8,32,11,3,1,4,103,52,52,52,144,3,1,4,103,52,52,53,145,3,1, +4,103,52,52,54,146,3,1,4,103,52,52,55,147,3,1,7,101,110,118,51, +52,51,55,148,2,148,2,148,2,148,16,10,8,31,11,2,98,2,112,2,114, +2,115,3,1,7,101,110,118,51,52,51,56,149,2,149,2,149,2,149,18,158, +2,101,8,33,18,158,2,0,8,33,18,158,2,101,8,33,18,16,2,95,2, +91,8,34,93,8,252,38,9,95,9,8,252,38,9,2,92,18,16,2,99,2, +113,8,39,93,8,252,38,9,16,6,8,38,11,2,140,2,141,3,1,7,101, +110,118,51,52,54,49,150,2,150,16,4,8,37,11,64,101,120,110,104,151,3, +1,7,101,110,118,51,52,54,50,152,16,4,8,36,11,63,101,115,99,153,3, +1,7,101,110,118,51,52,54,51,154,16,4,8,35,11,63,101,120,110,155,3, +1,7,101,110,118,51,52,54,53,156,95,9,8,252,38,9,2,92,18,100,2, +93,8,42,36,35,34,48,16,12,8,41,11,3,1,4,103,52,51,57,157,3, +1,4,103,52,52,48,158,3,1,4,103,52,52,49,159,3,1,4,103,52,52, +50,160,3,1,4,103,52,52,51,161,3,1,7,101,110,118,51,52,53,51,162, +2,162,2,162,2,162,2,162,16,12,8,40,11,2,98,2,112,2,99,2,114, +2,115,3,1,7,101,110,118,51,52,53,52,163,2,163,2,163,2,163,2,163, +18,158,2,101,8,42,18,158,2,111,8,42,18,158,2,101,8,42,18,158,2, +64,8,42,18,158,2,101,8,42,18,158,2,101,8,42,18,158,2,0,8,42, +18,158,2,101,8,42,18,158,2,101,8,42,18,16,2,95,2,91,8,43,93, +8,252,41,9,95,9,8,252,41,9,2,92,18,16,2,99,2,113,8,48,93, +8,252,41,9,16,6,8,47,11,2,140,2,141,3,1,7,101,110,118,51,52, +57,49,164,2,164,16,4,8,46,11,2,151,3,1,7,101,110,118,51,52,57, +50,165,16,4,8,45,11,2,153,3,1,7,101,110,118,51,52,57,51,166,16, +4,8,44,11,2,155,3,1,7,101,110,118,51,52,57,53,167,95,9,8,252, +41,9,2,92,18,100,2,93,8,51,36,35,34,48,16,16,8,50,11,3,1, +4,103,52,51,50,168,3,1,4,103,52,51,51,169,3,1,4,103,52,51,52, +170,3,1,4,103,52,51,53,171,3,1,4,103,52,51,54,172,3,1,4,103, +52,51,55,173,3,1,4,103,52,51,56,174,3,1,7,101,110,118,51,52,56, +49,175,2,175,2,175,2,175,2,175,2,175,2,175,16,16,8,49,11,2,98, +2,112,2,99,2,114,2,115,2,117,2,118,3,1,7,101,110,118,51,52,56, +50,176,2,176,2,176,2,176,2,176,2,176,2,176,18,158,2,101,8,51,18, +158,2,116,8,51,18,158,2,101,8,51,18,158,2,101,8,51,18,158,2,89, +8,51,18,158,2,101,8,51,18,158,2,101,8,51,18,158,2,101,8,51,18, +158,2,111,8,51,18,158,2,101,8,51,18,158,2,64,8,51,18,158,2,89, +8,51,18,158,2,101,8,51,18,158,2,101,8,51,18,158,2,0,8,51,18, +158,2,101,8,51,18,158,2,101,8,51,18,158,2,62,8,51,18,158,2,89, +8,51,18,158,2,101,8,51,18,158,2,101,8,51,18,158,2,101,8,51,11, +16,5,93,2,57,89,162,32,33,8,29,9,223,0,27,249,22,209,20,15,159, +35,32,45,196,27,28,248,80,158,35,32,194,249,80,158,36,33,248,80,158,37, +34,196,27,248,80,158,38,35,197,28,248,80,158,38,32,193,249,80,158,39,36, +27,248,80,158,41,34,196,28,248,80,158,41,37,193,248,22,9,89,162,32,33, +39,9,224,9,1,27,249,22,2,89,162,32,33,50,9,224,4,5,249,80,158, +35,38,28,248,80,158,36,32,197,249,80,158,37,33,248,80,158,38,34,199,27, +248,80,158,39,35,200,28,248,80,158,39,32,193,27,28,248,22,206,194,193,200, +249,80,158,41,33,248,80,158,42,34,196,27,248,80,158,43,35,197,248,22,59, +250,22,209,199,196,199,11,11,194,248,80,158,37,39,196,28,248,22,57,193,21, +95,9,9,9,248,80,158,35,40,193,11,27,248,80,158,41,35,196,28,248,80, +158,41,32,193,249,80,158,42,36,27,248,80,158,44,34,196,28,248,80,158,44, +32,193,249,80,158,45,33,248,80,158,46,34,195,27,248,80,158,47,35,196,28, +248,80,158,47,37,193,248,22,59,248,80,158,48,39,194,11,11,27,248,80,158, +44,35,196,28,248,80,158,44,37,193,248,80,158,44,39,193,11,11,11,11,28, +192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27,248,22,90,197, +27,249,22,70,199,36,27,249,22,70,200,37,27,249,22,69,201,38,27,249,22, +209,20,15,159,44,33,45,250,22,2,89,162,32,34,43,9,224,15,16,27,249, +22,209,20,15,159,36,34,45,198,27,248,80,158,36,41,194,28,192,196,27,28, +248,80,158,37,32,195,249,80,158,38,36,248,80,158,39,34,197,248,80,158,39, +41,248,80,158,40,35,198,11,28,192,192,250,22,252,39,2,11,6,19,19,98, +97,100,32,118,97,114,105,97,98,108,101,32,115,121,110,116,97,120,198,248,22, +216,27,20,15,159,49,35,45,250,22,209,20,15,159,52,36,45,23,16,195,248, +22,216,27,20,15,159,49,37,45,250,22,209,20,15,159,52,38,45,206,195,27, +28,248,80,158,44,37,194,248,80,158,44,39,194,11,28,192,27,249,22,209,20, +15,159,46,39,45,27,20,15,159,47,40,45,250,22,209,20,15,159,50,41,45, +202,195,27,248,80,158,46,41,194,28,192,249,80,158,47,42,23,16,27,252,22, +61,23,16,202,23,17,206,204,27,20,15,159,49,42,45,91,159,33,11,90,161, +33,32,11,83,160,38,32,33,11,247,248,22,9,89,162,32,33,40,9,226,19, +2,3,1,250,22,31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10, +247,22,252,184,2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193, +89,162,32,32,36,9,224,2,3,28,248,22,252,181,2,193,248,22,252,186,2, +193,249,80,158,35,43,21,96,2,116,66,100,111,108,111,111,112,177,94,94,63, +118,97,114,178,64,105,110,105,116,179,2,113,95,2,111,94,63,110,111,116,180, +62,101,48,181,96,2,0,61,99,182,2,113,95,2,177,64,115,116,101,112,183, +2,113,20,15,159,35,43,45,89,162,32,32,8,34,9,225,6,5,4,27,250, +22,209,20,15,159,38,44,45,250,22,209,20,15,159,41,45,45,251,22,60,20, +15,159,45,46,45,20,15,159,45,47,45,250,22,2,89,162,33,33,41,9,223, +16,250,22,209,20,15,159,35,48,45,249,22,60,248,22,52,199,248,22,78,199, +20,15,159,35,49,45,248,22,87,23,15,248,22,52,23,15,250,22,209,20,15, +159,48,50,45,250,22,60,20,15,159,51,51,45,250,22,209,20,15,159,54,52, +45,249,22,60,20,15,159,56,53,45,248,22,90,23,23,20,15,159,54,54,45, +250,22,209,20,15,159,54,55,45,249,22,56,20,15,159,56,56,45,249,22,65, +248,22,89,23,25,248,22,60,250,22,209,20,15,159,8,30,57,45,249,22,56, +20,15,159,8,32,58,45,248,22,78,23,31,20,15,159,8,30,59,45,20,15, +159,54,8,28,45,20,15,159,48,8,29,45,20,15,159,41,8,30,45,197,89, +162,32,32,33,9,223,0,192,89,162,32,32,34,9,223,3,248,22,252,184,2, +208,27,28,248,80,158,47,32,195,249,80,158,48,33,248,80,158,49,34,197,27, +248,80,158,50,35,198,28,248,80,158,50,37,193,248,80,158,50,39,193,11,11, +28,192,27,248,22,52,194,27,248,22,53,195,249,80,158,50,42,23,19,27,254, +22,61,23,21,23,15,203,202,23,22,23,19,23,17,27,20,15,159,52,8,31, +45,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,9,89, +162,32,33,40,9,226,22,2,3,1,250,22,31,89,162,32,32,36,9,225,6, +3,7,90,161,33,33,10,247,22,252,184,2,248,22,252,184,2,89,162,32,33, +36,9,224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22,252,181, +2,193,248,22,252,186,2,193,249,80,158,35,43,21,96,2,116,2,177,94,94, +2,178,2,179,2,113,96,2,111,2,181,96,2,0,2,114,2,115,2,113,96, +2,0,2,182,2,113,95,2,177,2,183,2,113,20,15,159,35,8,32,45,89, +162,32,32,8,35,9,225,6,5,4,27,250,22,209,20,15,159,38,8,33,45, +250,22,209,20,15,159,41,8,34,45,251,22,60,20,15,159,45,8,35,45,20, +15,159,45,8,36,45,250,22,2,89,162,33,33,41,9,223,16,250,22,209,20, +15,159,35,8,37,45,249,22,60,248,22,52,199,248,22,78,199,20,15,159,35, +8,38,45,249,22,70,23,16,36,248,22,52,23,15,250,22,209,20,15,159,48, +8,39,45,251,22,60,20,15,159,52,8,40,45,249,22,70,23,20,37,250,22, +209,20,15,159,55,8,41,45,250,22,62,20,15,159,58,8,42,45,248,22,87, +23,25,248,22,90,23,25,20,15,159,55,8,43,45,250,22,209,20,15,159,55, +8,44,45,249,22,56,20,15,159,57,8,45,45,249,22,65,249,22,69,23,27, +38,248,22,60,250,22,209,20,15,159,8,31,8,46,45,249,22,56,20,15,159, +8,33,8,47,45,248,22,78,23,32,20,15,159,8,31,8,48,45,20,15,159, +55,8,49,45,20,15,159,48,8,50,45,20,15,159,41,8,51,45,197,89,162, +32,32,33,9,223,0,192,89,162,32,32,34,9,223,3,248,22,252,184,2,208, +250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,197,248, +80,158,44,44,20,15,159,44,8,52,45,250,22,252,39,2,11,6,10,10,98, +97,100,32,115,121,110,116,97,120,196,32,20,98,158,16,13,2,65,2,68,2, +70,2,72,2,74,2,78,30,184,2,66,73,115,116,120,45,99,104,101,99,107, +47,101,115,99,185,7,2,80,30,186,2,66,70,115,116,120,45,114,111,116,97, +116,101,187,12,2,76,2,122,2,125,30,188,70,35,37,119,105,116,104,45,115, +116,120,189,76,119,105,116,104,45,115,121,110,116,97,120,45,102,97,105,108,190, +3,16,53,18,98,2,82,8,53,36,35,34,16,4,8,52,11,66,111,114,105, +103,45,120,191,3,1,7,101,110,118,51,53,52,53,192,18,100,2,82,8,56, +36,35,34,8,52,16,16,8,55,11,3,1,4,103,52,53,48,193,3,1,4, +103,52,53,49,194,3,1,4,103,52,53,50,195,3,1,4,103,52,53,51,196, +3,1,4,103,52,53,52,197,3,1,4,103,52,53,53,198,3,1,4,103,52, +53,54,199,3,1,7,101,110,118,51,53,54,50,200,2,200,2,200,2,200,2, +200,2,200,2,200,16,16,8,54,11,2,98,2,178,2,179,2,183,2,181,2, +114,2,182,3,1,7,101,110,118,51,53,54,51,201,2,201,2,201,2,201,2, +201,2,201,2,201,18,101,2,82,8,58,36,35,34,8,52,8,55,8,54,16, +6,8,57,11,2,112,61,115,202,3,1,7,101,110,118,51,53,55,51,203,2, +203,18,16,2,95,2,91,8,59,93,8,252,62,9,95,9,8,252,62,9,2, +92,18,158,2,93,8,56,18,16,2,95,2,91,8,60,93,8,252,63,9,95, +9,8,252,63,9,2,92,18,158,2,93,8,56,18,101,2,82,8,62,36,35, +34,8,52,8,55,8,54,16,4,8,61,11,3,1,4,103,52,54,49,204,3, +1,7,101,110,118,51,53,57,51,205,18,16,2,95,2,91,8,63,93,8,252, +67,9,95,9,8,252,67,9,2,92,18,158,2,93,8,62,18,16,2,95,2, +91,8,64,93,8,252,69,9,95,9,8,252,69,9,2,92,18,16,2,99,2, +113,8,69,93,8,252,69,9,16,6,8,68,11,2,140,2,141,3,1,7,101, +110,118,51,54,48,51,206,2,206,16,4,8,67,11,2,151,3,1,7,101,110, +118,51,54,48,52,207,16,4,8,66,11,2,153,3,1,7,101,110,118,51,54, +48,53,208,16,4,8,65,11,2,155,3,1,7,101,110,118,51,54,48,55,209, +95,9,8,252,69,9,2,92,18,158,2,93,8,62,18,158,2,101,8,62,18, +158,2,116,8,62,18,158,2,177,8,62,18,158,2,101,8,62,18,158,2,101, +8,62,18,158,2,101,8,62,18,158,2,111,8,62,18,158,2,101,8,62,18, +158,2,180,8,62,18,158,2,101,8,62,18,158,2,101,8,62,18,158,2,0, +8,62,18,158,2,101,8,62,18,158,2,177,8,62,18,158,2,101,8,62,18, +158,2,101,8,62,18,158,2,101,8,62,18,158,2,101,8,62,18,16,2,95, +2,91,8,70,93,8,252,72,9,95,9,8,252,72,9,2,92,18,16,2,99, +2,113,8,75,93,8,252,72,9,16,6,8,74,11,2,140,2,141,3,1,7, +101,110,118,51,54,50,51,210,2,210,16,4,8,73,11,2,151,3,1,7,101, +110,118,51,54,50,52,211,16,4,8,72,11,2,153,3,1,7,101,110,118,51, +54,50,53,212,16,4,8,71,11,2,155,3,1,7,101,110,118,51,54,50,55, +213,95,9,8,252,72,9,2,92,18,103,2,93,8,78,36,35,34,8,52,8, +55,8,54,8,61,16,6,8,77,11,3,1,4,103,52,54,50,214,3,1,4, +103,52,54,51,215,3,1,7,101,110,118,51,54,49,56,216,2,216,16,4,8, +76,11,2,115,3,1,7,101,110,118,51,54,49,57,217,18,158,2,101,8,78, +18,158,2,116,8,78,18,158,2,177,8,78,18,158,2,101,8,78,18,158,2, +101,8,78,18,158,2,101,8,78,18,158,2,111,8,78,18,158,2,101,8,78, +18,158,2,0,8,78,18,158,2,101,8,78,18,158,2,101,8,78,18,158,2, +0,8,78,18,158,2,101,8,78,18,158,2,177,8,78,18,158,2,101,8,78, +18,158,2,101,8,78,18,158,2,101,8,78,18,158,2,101,8,78,18,16,2, +158,94,16,2,98,2,183,8,82,93,8,252,58,9,16,4,8,81,11,3,1, +8,119,115,116,109,112,52,53,55,218,3,1,7,101,110,118,51,53,55,50,219, +16,4,8,80,11,3,1,4,103,52,54,48,220,3,1,7,101,110,118,51,54, +51,54,221,16,4,8,79,11,65,95,101,108,115,101,222,3,1,7,101,110,118, +51,54,51,55,223,9,16,2,158,2,113,8,82,9,8,82,95,9,8,252,58, +9,2,189,11,16,5,93,2,56,89,162,32,33,55,9,223,0,27,249,22,209, +20,15,159,35,32,39,196,27,28,248,80,158,35,32,194,249,80,158,36,33,248, +80,158,37,34,196,27,248,80,158,38,35,197,28,248,80,158,38,32,193,249,80, +158,39,36,248,80,158,40,34,195,248,80,158,40,37,248,80,158,41,35,196,11, +11,28,192,27,248,22,52,194,27,248,22,53,195,249,80,158,38,38,199,27,20, +15,159,39,33,39,250,22,209,20,15,159,42,34,39,250,22,209,20,15,159,45, +35,39,249,22,60,20,15,159,47,36,39,250,22,209,20,15,159,50,37,39,250, +22,60,20,15,159,53,38,39,20,15,159,53,39,39,23,17,20,15,159,50,40, +39,20,15,159,45,41,39,195,250,22,252,39,2,11,6,10,10,98,97,100,32, +115,121,110,116,97,120,196,32,20,98,158,16,7,2,65,2,68,2,70,2,72, +2,74,2,76,2,122,16,10,18,98,2,82,8,84,36,35,34,16,4,8,83, +11,2,89,3,1,7,101,110,118,51,54,52,48,224,18,16,2,95,2,91,8, +85,93,8,252,82,9,95,9,8,252,82,9,2,92,18,100,2,93,8,88,36, +35,34,8,83,16,6,8,87,11,3,1,4,103,52,54,52,225,3,1,4,103, +52,54,53,226,3,1,7,101,110,118,51,54,52,53,227,2,227,16,6,8,86, +11,2,56,63,101,120,112,228,3,1,7,101,110,118,51,54,52,54,229,2,229, +18,158,2,101,8,88,18,158,2,6,8,88,18,158,2,101,8,88,18,158,66, +108,97,109,98,100,97,230,8,88,18,158,9,8,88,18,158,2,101,8,88,18, +158,2,101,8,88,11,16,5,93,2,86,253,22,60,248,247,22,252,86,3,20, +15,159,39,32,32,248,247,22,252,86,3,20,15,159,39,33,32,248,247,22,252, +86,3,20,15,159,39,34,32,248,22,60,248,247,22,252,86,3,20,15,159,40, +35,32,248,22,60,248,247,22,252,86,3,20,15,159,40,36,32,10,40,20,98, +158,16,0,16,5,18,97,2,4,8,89,36,35,34,18,158,2,6,8,89,18, +158,2,8,8,89,18,158,2,10,8,89,18,158,2,12,8,89,11,16,5,93, +2,55,89,162,32,33,55,9,223,0,27,249,22,209,20,15,159,35,32,45,196, +27,28,248,80,158,35,32,194,249,80,158,36,33,248,80,158,37,34,196,27,248, +80,158,38,35,197,28,248,80,158,38,32,193,28,248,80,158,38,36,248,80,158, +39,34,194,27,248,80,158,39,35,194,28,248,80,158,39,32,193,249,80,158,40, +33,248,80,158,41,34,195,27,248,80,158,42,35,196,28,248,80,158,42,37,193, +248,80,158,42,38,193,11,11,11,11,11,28,192,27,248,22,52,194,27,248,22, +78,195,27,248,22,80,196,27,249,22,61,195,196,27,20,15,159,39,33,45,250, +22,209,20,15,159,42,34,45,250,22,209,20,15,159,45,35,45,251,22,62,20, +15,159,49,36,45,20,15,159,49,37,45,248,22,53,204,248,22,52,204,20,15, +159,45,38,45,195,27,28,248,80,158,36,32,195,249,80,158,37,33,248,80,158, +38,34,197,27,248,80,158,39,35,198,28,248,80,158,39,32,193,249,80,158,40, +39,27,248,80,158,42,34,196,28,248,80,158,42,37,193,248,22,9,89,162,32, +33,39,9,224,10,1,27,249,22,2,89,162,32,33,45,9,224,4,5,249,80, +158,35,40,28,248,80,158,36,32,197,249,80,158,37,33,248,80,158,38,34,199, +27,248,80,158,39,35,200,28,248,80,158,39,32,193,249,80,158,40,33,248,80, +158,41,34,195,248,80,158,41,36,248,80,158,42,35,196,11,11,194,248,80,158, +37,38,196,28,248,22,57,193,21,94,9,9,248,80,158,35,41,193,11,27,248, +80,158,42,35,196,28,248,80,158,42,32,193,249,80,158,43,33,248,80,158,44, +34,195,27,248,80,158,45,35,196,28,248,80,158,45,37,193,248,80,158,45,38, +193,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87, +196,27,248,22,90,197,27,248,22,89,198,27,249,22,209,20,15,159,43,39,45, +249,22,1,22,65,250,22,2,22,59,248,22,216,27,20,15,159,50,40,45,250, +22,209,20,15,159,53,41,45,23,16,195,248,22,216,27,20,15,159,50,42,45, +250,22,209,20,15,159,53,43,45,23,15,195,27,28,248,80,158,43,37,194,248, +80,158,43,38,194,11,28,192,249,80,158,44,42,205,27,250,22,61,200,201,198, +27,20,15,159,46,44,45,91,159,33,11,90,161,33,32,11,83,160,38,32,33, +11,247,248,22,9,89,162,32,33,40,9,226,16,2,3,1,250,22,31,89,162, +32,32,36,9,225,6,3,7,90,161,33,33,10,247,22,252,184,2,248,22,252, +184,2,89,162,32,33,36,9,224,3,1,248,193,89,162,32,32,36,9,224,2, +3,28,248,22,252,181,2,193,248,22,252,186,2,193,249,80,158,35,43,21,96, +1,22,119,105,116,104,45,99,111,110,116,105,110,117,97,116,105,111,110,45,109, +97,114,107,231,2,21,96,2,19,95,1,27,99,111,110,116,105,110,117,97,116, +105,111,110,45,109,97,114,107,45,115,101,116,45,102,105,114,115,116,232,11,2, +21,63,112,47,118,233,2,113,97,2,116,9,65,101,120,112,114,49,234,64,101, +120,112,114,235,2,113,20,15,159,35,45,45,89,162,32,32,54,9,225,6,5, +4,27,250,22,209,20,15,159,38,46,45,250,22,209,20,15,159,41,47,45,251, +22,60,20,15,159,45,48,45,20,15,159,45,49,45,250,22,209,20,15,159,48, +50,45,250,22,62,20,15,159,51,51,45,20,15,159,51,52,45,248,22,80,23, +18,20,15,159,48,53,45,250,22,209,20,15,159,48,54,45,251,22,62,20,15, +159,52,55,45,20,15,159,52,56,45,248,22,78,23,19,248,22,52,23,19,20, +15,159,48,57,45,20,15,159,41,58,45,197,89,162,32,32,33,9,223,0,192, +89,162,32,32,34,9,223,3,248,22,252,184,2,208,248,80,158,43,44,20,15, +159,43,59,45,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116, +97,120,197,32,20,98,158,16,13,2,65,2,68,2,70,2,72,2,76,2,78, +2,80,2,74,2,184,2,186,2,122,2,125,2,188,16,28,18,98,2,82,8, +91,36,35,34,16,4,8,90,11,63,115,116,120,236,3,1,7,101,110,118,51, +54,53,51,237,18,16,2,95,2,91,8,92,93,8,252,112,9,95,9,8,252, +112,9,2,92,18,100,2,93,8,95,36,35,34,8,90,16,8,8,94,11,3, +1,4,103,52,55,49,238,3,1,4,103,52,55,50,239,3,1,4,103,52,55, +51,240,3,1,7,101,110,118,51,54,54,48,241,2,241,2,241,16,8,8,93, +11,2,98,2,234,2,235,3,1,7,101,110,118,51,54,54,49,242,2,242,2, +242,18,158,2,101,8,95,18,158,2,116,8,95,18,158,9,8,95,18,158,2, +101,8,95,18,100,2,82,8,98,36,35,34,8,90,16,12,8,97,11,3,1, +4,103,52,54,54,243,3,1,4,103,52,54,55,244,3,1,4,103,52,54,56, +245,3,1,4,103,52,54,57,246,3,1,4,103,52,55,48,247,3,1,7,101, +110,118,51,54,55,55,248,2,248,2,248,2,248,2,248,16,12,8,96,11,2, +98,65,112,97,114,97,109,249,63,118,97,108,250,2,234,2,235,3,1,7,101, +110,118,51,54,55,56,251,2,251,2,251,2,251,2,251,18,16,2,95,2,91, +8,99,93,8,252,115,9,95,9,8,252,115,9,2,92,18,158,2,93,8,98, +18,16,2,95,2,91,8,100,93,8,252,116,9,95,9,8,252,116,9,2,92, +18,158,2,93,8,98,18,16,2,95,2,91,8,101,93,8,252,119,9,95,9, +8,252,119,9,2,92,18,16,2,99,2,113,8,106,93,8,252,119,9,16,6, +8,105,11,2,140,2,141,3,1,7,101,110,118,51,54,57,53,252,252,0,2, +252,252,0,16,4,8,104,11,2,151,3,1,7,101,110,118,51,54,57,54,252, +253,0,16,4,8,103,11,2,153,3,1,7,101,110,118,51,54,57,55,252,254, +0,16,4,8,102,11,2,155,3,1,7,101,110,118,51,54,57,57,252,255,0, +95,9,8,252,119,9,2,92,18,102,2,93,8,109,36,35,34,8,90,8,97, +8,96,16,4,8,108,11,3,1,4,103,52,55,54,252,0,1,3,1,7,101, +110,118,51,54,57,49,252,1,1,16,4,8,107,11,2,233,3,1,7,101,110, +118,51,54,57,50,252,2,1,18,158,2,101,8,109,18,158,2,231,8,109,18, +158,2,21,8,109,18,158,2,101,8,109,18,158,2,19,8,109,18,158,95,16, +2,158,2,232,8,109,9,16,2,158,11,8,109,9,16,2,158,2,21,8,109, +9,8,109,18,158,2,101,8,109,18,158,2,101,8,109,18,158,2,116,8,109, +18,158,9,8,109,18,158,2,101,8,109,18,158,2,101,8,109,18,16,2,158, +94,16,2,98,2,233,8,113,93,8,252,114,9,16,4,8,112,11,3,1,8, +119,115,116,109,112,52,55,52,252,3,1,3,1,7,101,110,118,51,54,56,53, +252,4,1,16,4,8,111,11,3,1,4,103,52,55,53,252,5,1,3,1,7, +101,110,118,51,55,48,54,252,6,1,16,4,8,110,11,2,222,3,1,7,101, +110,118,51,55,48,55,252,7,1,9,16,2,158,2,113,8,113,9,8,113,95, +9,8,252,114,9,2,189,11,16,5,93,2,61,89,162,32,33,8,36,9,223, +0,27,249,22,209,20,15,159,35,32,39,196,27,28,248,80,158,35,32,194,249, +80,158,36,33,248,80,158,37,34,196,27,248,80,158,38,35,197,28,248,80,158, +38,32,193,249,80,158,39,33,248,80,158,40,34,195,27,248,80,158,41,35,196, +28,248,80,158,41,32,193,249,80,158,42,33,248,80,158,43,34,195,27,248,80, +158,44,35,196,28,248,80,158,44,36,193,248,80,158,44,37,193,11,11,11,11, +28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27,248,22,88, +197,249,80,158,40,38,201,27,250,22,61,200,198,199,27,20,15,159,42,33,39, +250,22,209,20,15,159,45,34,39,250,22,209,20,15,159,48,35,39,251,22,60, +20,15,159,52,36,39,20,15,159,52,37,39,250,22,209,20,15,159,55,38,39, +249,22,60,20,15,159,57,39,39,250,22,209,20,15,159,8,28,40,39,250,22, +62,20,15,159,8,31,41,39,248,22,52,23,23,20,15,159,8,31,42,39,20, +15,159,8,28,43,39,20,15,159,55,44,39,250,22,209,20,15,159,55,45,39, +250,22,60,20,15,159,58,46,39,20,15,159,58,47,39,250,22,209,20,15,159, +8,29,48,39,251,22,62,20,15,159,8,33,49,39,20,15,159,8,33,50,39, +248,22,80,23,25,248,22,78,23,25,20,15,159,8,29,51,39,20,15,159,55, +52,39,20,15,159,48,53,39,195,250,22,252,39,2,11,6,10,10,98,97,100, +32,115,121,110,116,97,120,196,32,20,98,158,16,7,2,65,2,68,2,70,2, +72,2,78,2,80,2,122,16,22,18,98,2,82,8,115,36,35,34,16,4,8, +114,11,2,236,3,1,7,101,110,118,51,55,49,48,252,8,1,18,16,2,95, +2,91,8,116,93,8,252,132,9,95,9,8,252,132,9,2,92,18,100,2,93, +8,119,36,35,34,8,114,16,10,8,118,11,3,1,4,103,52,55,55,252,9, +1,3,1,4,103,52,55,56,252,10,1,3,1,4,103,52,55,57,252,11,1, +3,1,4,103,52,56,48,252,12,1,3,1,7,101,110,118,51,55,49,55,252, +13,1,2,252,13,1,2,252,13,1,2,252,13,1,16,10,8,117,11,2,98, +69,98,111,111,108,45,101,120,112,114,252,14,1,2,234,2,235,3,1,7,101, +110,118,51,55,49,56,252,15,1,2,252,15,1,2,252,15,1,2,252,15,1, +18,158,2,101,8,119,18,158,2,231,8,119,18,158,2,47,8,119,18,158,2, +101,8,119,18,158,76,109,97,107,101,45,116,104,114,101,97,100,45,99,101,108, +108,252,16,1,8,119,18,158,2,101,8,119,18,158,63,97,110,100,252,17,1, +8,119,18,16,2,103,93,16,2,158,10,8,119,9,8,121,8,28,59,58,57, +56,55,13,16,3,33,2,134,2,92,93,8,252,132,9,16,6,8,120,11,2, +140,2,141,3,1,7,101,110,118,51,55,50,52,252,18,1,2,252,18,1,95, +9,8,252,132,9,2,92,18,158,2,101,8,119,18,158,2,101,8,119,18,158, +2,101,8,119,18,158,2,0,8,119,18,158,93,16,2,158,2,51,8,119,9, +8,119,18,158,2,101,8,119,18,158,2,116,8,119,18,158,9,8,119,18,158, +2,101,8,119,18,158,2,101,8,119,18,158,2,101,8,119,11,16,5,93,2, +85,253,22,60,248,247,22,252,86,3,20,15,159,39,32,32,248,247,22,252,86, +3,20,15,159,39,33,32,248,247,22,252,86,3,20,15,159,39,34,32,248,22, +60,248,247,22,252,86,3,20,15,159,40,35,32,248,22,60,248,247,22,252,86, +3,20,15,159,40,36,32,10,40,20,98,158,16,0,16,5,18,158,2,35,8, +89,18,158,2,37,8,89,18,158,2,39,8,89,18,158,2,41,8,89,18,158, +2,43,8,89,11,16,5,94,2,59,2,60,27,89,162,32,33,34,62,119,104, +252,19,1,223,1,89,162,32,33,55,9,224,0,1,27,249,22,209,20,15,159, +36,32,44,197,27,28,248,80,158,36,32,194,249,80,158,37,33,248,80,158,38, +34,196,27,248,80,158,39,35,197,28,248,80,158,39,32,193,28,248,80,158,39, +36,248,80,158,40,34,194,27,248,80,158,40,35,194,28,248,80,158,40,32,193, +249,80,158,41,33,248,80,158,42,34,195,27,248,80,158,43,35,196,28,248,80, +158,43,37,193,248,80,158,43,38,193,11,11,11,11,11,28,192,27,248,22,52, +194,27,248,22,78,195,27,248,22,80,196,249,80,158,40,39,201,27,249,22,61, +197,198,27,20,15,159,42,33,44,250,22,209,20,15,159,45,34,44,250,22,209, +20,15,159,48,35,44,251,22,62,20,15,159,52,36,44,20,15,159,52,37,44, +248,22,53,204,248,22,52,204,20,15,159,48,38,44,195,27,28,248,80,158,37, +32,195,249,80,158,38,33,248,80,158,39,34,197,27,248,80,158,40,35,198,28, +248,80,158,40,32,193,249,80,158,41,40,27,248,80,158,43,34,196,28,248,80, +158,43,37,193,248,22,9,89,162,32,33,39,9,224,11,1,27,249,22,2,89, +162,32,33,45,9,224,4,5,249,80,158,35,41,28,248,80,158,36,32,197,249, +80,158,37,33,248,80,158,38,34,199,27,248,80,158,39,35,200,28,248,80,158, +39,32,193,249,80,158,40,33,248,80,158,41,34,195,248,80,158,41,36,248,80, +158,42,35,196,11,11,194,248,80,158,37,38,196,28,248,22,57,193,21,94,9, +9,248,80,158,35,42,193,11,27,248,80,158,43,35,196,28,248,80,158,43,32, +193,249,80,158,44,33,248,80,158,45,34,195,27,248,80,158,46,35,196,28,248, +80,158,46,37,193,248,80,158,46,38,193,11,11,11,11,28,192,27,248,22,52, +194,27,248,22,78,195,27,248,22,87,196,27,248,22,90,197,27,248,22,89,198, +27,249,22,209,20,15,159,44,39,44,28,203,20,15,159,44,40,44,20,15,159, +44,41,44,249,80,158,44,39,205,27,252,22,61,203,204,201,200,202,27,20,15, +159,46,42,44,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248, +22,9,89,162,32,33,40,9,226,16,2,3,1,250,22,31,89,162,32,32,36, +9,225,6,3,7,90,161,33,33,10,247,22,252,184,2,248,22,252,184,2,89, +162,32,33,36,9,224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248, +22,252,181,2,193,248,22,252,186,2,193,249,80,158,35,43,21,95,2,116,94, +94,61,108,252,20,1,95,64,108,105,115,116,252,21,1,95,64,99,111,110,115, +252,22,1,64,112,114,101,100,252,23,1,67,104,97,110,100,108,101,114,252,24, +1,2,113,94,64,98,111,100,121,252,25,1,97,2,230,9,2,234,2,235,2, +113,95,2,116,93,94,63,98,112,122,252,26,1,95,2,232,11,2,47,96,2, +231,2,47,94,2,252,16,1,11,93,94,67,99,97,108,108,47,101,99,252,27, +1,95,2,230,93,2,99,96,2,231,2,47,2,252,26,1,95,2,55,93,94, +1,25,99,117,114,114,101,110,116,45,101,120,99,101,112,116,105,111,110,45,104, +97,110,100,108,101,114,252,28,1,95,2,230,93,61,101,252,29,1,94,2,99, +95,2,230,9,96,2,116,64,108,111,111,112,252,30,1,93,94,2,252,20,1, +2,252,20,1,96,2,132,94,94,65,110,117,108,108,63,252,31,1,2,252,20, +1,94,65,114,97,105,115,101,252,32,1,2,252,29,1,94,94,94,64,99,97, +97,114,252,33,1,2,252,20,1,2,252,29,1,63,117,113,49,252,34,1,94, +2,143,94,2,252,30,1,94,63,99,100,114,252,35,1,2,252,20,1,95,76, +99,97,108,108,45,119,105,116,104,45,118,97,108,117,101,115,252,36,1,2,252, +25,1,95,2,230,64,97,114,103,115,252,37,1,95,2,230,9,95,65,97,112, +112,108,121,252,38,1,66,118,97,108,117,101,115,252,39,1,2,252,37,1,20, +15,159,35,43,44,89,162,32,32,8,100,9,225,6,5,4,27,250,22,209,20, +15,159,38,44,44,250,22,209,20,15,159,41,45,44,250,22,60,20,15,159,44, +46,44,250,22,209,20,15,159,47,47,44,249,22,60,250,22,209,20,15,159,52, +48,44,249,22,60,20,15,159,54,49,44,250,22,209,20,15,159,57,50,44,249, +22,56,20,15,159,59,51,44,250,22,2,89,162,33,33,41,9,223,30,250,22, +209,20,15,159,35,52,44,250,22,60,20,15,159,38,53,44,248,22,52,200,248, +22,78,200,20,15,159,35,54,44,248,22,78,23,29,248,22,52,23,29,20,15, +159,57,55,44,20,15,159,52,56,44,250,22,209,20,15,159,52,57,44,249,22, +60,20,15,159,54,58,44,250,22,209,20,15,159,57,59,44,251,22,62,20,15, +159,8,29,8,28,44,20,15,159,8,29,8,29,44,248,22,89,23,28,248,22, +87,23,28,20,15,159,57,8,30,44,20,15,159,52,8,31,44,20,15,159,47, +8,32,44,250,22,209,20,15,159,47,8,33,44,250,22,60,20,15,159,50,8, +34,44,20,15,159,50,8,35,44,250,22,209,20,15,159,53,8,36,44,251,22, +60,20,15,159,57,8,37,44,20,15,159,57,8,38,44,20,15,159,57,8,39, +44,250,22,209,20,15,159,8,28,8,40,44,248,22,60,250,22,209,20,15,159, +8,32,8,41,44,249,22,60,20,15,159,8,34,8,42,44,250,22,209,20,15, +159,8,37,8,43,44,250,22,60,20,15,159,8,40,8,44,44,20,15,159,8, +40,8,45,44,250,22,209,20,15,159,8,43,8,46,44,251,22,60,20,15,159, +8,47,8,47,44,20,15,159,8,47,8,48,44,20,15,159,8,47,8,49,44, +250,22,209,20,15,159,8,50,8,50,44,250,22,62,20,15,159,8,53,8,51, +44,250,22,209,20,15,159,8,56,8,52,44,248,22,60,250,22,209,20,15,159, +8,60,8,53,44,249,22,60,20,15,159,8,62,8,54,44,250,22,209,20,15, +159,8,65,8,55,44,250,22,60,20,15,159,8,68,8,56,44,20,15,159,8, +68,8,57,44,250,22,209,20,15,159,8,71,8,58,44,249,22,60,20,15,159, +8,73,8,59,44,250,22,209,20,15,159,8,76,8,60,44,250,22,60,20,15, +159,8,79,8,61,44,20,15,159,8,79,8,62,44,250,22,209,20,15,159,8, +82,8,63,44,251,22,60,20,15,159,8,86,8,64,44,20,15,159,8,86,8, +65,44,20,15,159,8,86,8,66,44,250,22,209,20,15,159,8,89,8,67,44, +251,22,62,20,15,159,8,93,8,68,44,20,15,159,8,93,8,69,44,250,22, +209,20,15,159,8,96,8,70,44,249,22,60,20,15,159,8,98,8,71,44,248, +22,90,23,97,20,15,159,8,96,8,72,44,20,15,159,8,93,8,73,44,20, +15,159,8,89,8,74,44,20,15,159,8,82,8,75,44,20,15,159,8,76,8, +76,44,20,15,159,8,71,8,77,44,20,15,159,8,65,8,78,44,20,15,159, +8,60,8,79,44,20,15,159,8,56,8,80,44,20,15,159,8,53,8,81,44, +20,15,159,8,50,8,82,44,20,15,159,8,43,8,83,44,20,15,159,8,37, +8,84,44,20,15,159,8,32,8,85,44,20,15,159,8,28,8,86,44,20,15, +159,53,8,87,44,20,15,159,47,8,88,44,20,15,159,41,8,89,44,197,89, +162,32,32,33,9,223,0,192,89,162,32,32,34,9,223,3,248,22,252,184,2, +208,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,197, +249,22,7,248,195,10,248,195,11,37,20,98,158,16,12,2,65,2,68,2,70, +2,72,2,76,2,78,2,80,2,122,2,74,2,184,2,186,2,125,16,90,18, +99,2,82,8,124,36,35,34,16,4,8,123,11,74,100,105,115,97,98,108,101, +45,98,114,101,97,107,63,252,40,1,3,1,7,101,110,118,51,55,50,56,252, +41,1,16,4,8,122,11,2,236,3,1,7,101,110,118,51,55,50,57,252,42, +1,18,16,2,95,2,91,8,125,93,8,252,163,9,95,9,8,252,163,9,2, +92,18,101,2,93,8,128,36,35,34,8,123,8,122,16,8,8,127,11,3,1, +4,103,52,56,54,252,43,1,3,1,4,103,52,56,55,252,44,1,3,1,4, +103,52,56,56,252,45,1,3,1,7,101,110,118,51,55,51,54,252,46,1,2, +252,46,1,2,252,46,1,16,8,8,126,11,2,98,2,234,2,235,3,1,7, +101,110,118,51,55,51,55,252,47,1,2,252,47,1,2,252,47,1,18,158,2, +101,8,128,18,158,2,116,8,128,18,158,9,8,128,18,158,2,101,8,128,18, +101,2,82,8,131,36,35,34,8,123,8,122,16,12,8,130,11,3,1,4,103, +52,56,49,252,48,1,3,1,4,103,52,56,50,252,49,1,3,1,4,103,52, +56,51,252,50,1,3,1,4,103,52,56,52,252,51,1,3,1,4,103,52,56, +53,252,52,1,3,1,7,101,110,118,51,55,53,51,252,53,1,2,252,53,1, +2,252,53,1,2,252,53,1,2,252,53,1,16,12,8,129,11,2,98,2,252, +23,1,2,252,24,1,2,234,2,235,3,1,7,101,110,118,51,55,53,52,252, +54,1,2,252,54,1,2,252,54,1,2,252,54,1,2,252,54,1,18,158,95, +16,2,158,66,98,101,103,105,110,48,252,55,1,8,131,9,16,2,158,94,16, +2,158,94,16,2,158,64,99,100,97,114,252,56,1,8,131,9,16,2,158,2, +252,20,1,8,131,9,8,131,9,16,2,158,2,252,29,1,8,131,9,8,131, +9,16,2,158,96,16,2,158,2,231,8,131,9,16,2,158,2,47,8,131,9, +16,2,158,2,252,26,1,8,131,9,16,2,158,93,16,2,158,2,51,8,131, +9,8,131,9,8,131,9,8,131,18,158,96,16,2,158,2,231,8,131,9,16, +2,158,2,47,8,131,9,16,2,158,2,252,26,1,8,131,9,16,2,158,95, +16,2,158,2,0,8,131,9,16,2,158,93,16,2,158,2,51,8,131,9,8, +131,9,16,2,158,94,16,2,158,94,16,2,158,2,252,56,1,8,131,9,16, +2,158,2,252,20,1,8,131,9,8,131,9,16,2,158,2,252,29,1,8,131, +9,8,131,9,8,131,9,8,131,18,16,2,95,2,91,8,132,93,8,252,172, +9,95,9,8,252,172,9,2,92,18,16,2,99,2,113,8,137,93,8,252,172, +9,16,6,8,136,11,2,140,2,141,3,1,7,101,110,118,51,55,55,50,252, +57,1,2,252,57,1,16,4,8,135,11,2,151,3,1,7,101,110,118,51,55, +55,51,252,58,1,16,4,8,134,11,2,153,3,1,7,101,110,118,51,55,55, +52,252,59,1,16,4,8,133,11,2,155,3,1,7,101,110,118,51,55,55,54, +252,60,1,95,9,8,252,172,9,2,92,18,158,2,93,8,131,18,158,2,101, +8,131,18,158,2,116,8,131,18,158,2,101,8,131,18,158,2,101,8,131,18, +158,2,252,20,1,8,131,18,158,2,101,8,131,18,158,2,252,21,1,8,131, +18,158,2,101,8,131,18,158,2,252,22,1,8,131,18,158,2,101,8,131,18, +158,2,101,8,131,18,158,2,101,8,131,18,158,2,101,8,131,18,158,2,252, +25,1,8,131,18,158,2,101,8,131,18,158,2,230,8,131,18,158,9,8,131, +18,158,2,101,8,131,18,158,2,101,8,131,18,158,2,101,8,131,18,158,2, +101,8,131,18,158,2,116,8,131,18,158,93,16,2,158,94,16,2,158,2,252, +26,1,8,131,9,16,2,158,95,16,2,158,2,232,8,131,9,16,2,158,11, +8,131,9,16,2,158,2,47,8,131,9,8,131,9,8,131,9,8,131,18,158, +2,101,8,131,18,158,2,231,8,131,18,158,2,47,8,131,18,158,94,16,2, +158,2,252,16,1,8,131,9,16,2,158,11,8,131,9,8,131,18,158,2,101, +8,131,18,158,2,101,8,131,18,158,2,252,27,1,8,131,18,158,2,101,8, +131,18,158,2,230,8,131,18,158,93,16,2,158,2,99,8,131,9,8,131,18, +158,2,101,8,131,18,158,2,231,8,131,18,158,2,47,8,131,18,158,2,252, +26,1,8,131,18,158,2,101,8,131,18,158,2,55,8,131,18,158,2,101,8, +131,18,158,2,101,8,131,18,158,2,252,28,1,8,131,18,158,2,101,8,131, +18,158,2,230,8,131,18,158,93,16,2,158,2,252,29,1,8,131,9,8,131, +18,158,2,101,8,131,18,158,2,99,8,131,18,158,2,101,8,131,18,158,2, +230,8,131,18,158,9,8,131,18,158,2,101,8,131,18,158,2,116,8,131,18, +158,2,252,30,1,8,131,18,158,93,16,2,158,94,16,2,158,2,252,20,1, +8,131,9,16,2,158,2,252,20,1,8,131,9,8,131,9,8,131,18,158,2, +101,8,131,18,158,2,132,8,131,18,158,94,16,2,158,94,16,2,158,2,252, +31,1,8,131,9,16,2,158,2,252,20,1,8,131,9,8,131,9,16,2,158, +94,16,2,158,2,252,32,1,8,131,9,16,2,158,2,252,29,1,8,131,9, +8,131,9,8,131,18,158,2,101,8,131,18,158,94,16,2,158,94,16,2,158, +2,252,33,1,8,131,9,16,2,158,2,252,20,1,8,131,9,8,131,9,16, +2,158,2,252,29,1,8,131,9,8,131,18,158,2,101,8,131,18,16,2,105, +93,16,2,158,94,16,2,158,2,143,8,131,9,16,2,158,94,16,2,158,2, +252,30,1,8,131,9,16,2,158,94,16,2,158,2,252,35,1,8,131,9,16, +2,158,2,252,20,1,8,131,9,8,131,9,8,131,9,8,131,9,8,141,8, +28,59,58,57,56,55,13,16,3,33,2,134,2,92,93,8,252,172,9,16,6, +8,140,11,2,140,2,141,2,252,57,1,2,252,57,1,16,4,8,139,11,2, +151,2,252,58,1,16,4,8,138,11,2,153,2,252,59,1,95,9,8,252,172, +9,2,92,18,158,2,101,8,131,18,158,2,101,8,131,18,158,2,101,8,131, +18,158,2,101,8,131,18,158,2,101,8,131,18,158,2,101,8,131,18,158,2, +101,8,131,18,16,2,158,93,16,2,158,95,16,2,158,2,252,36,1,8,131, +9,16,2,158,2,252,25,1,8,131,9,16,2,158,95,16,2,158,2,230,8, +131,9,16,2,158,2,252,37,1,8,131,9,16,2,158,95,16,2,158,2,230, +8,131,9,16,2,158,9,8,131,9,16,2,158,95,16,2,158,2,252,38,1, +8,131,9,16,2,158,2,252,39,1,8,131,9,16,2,158,2,252,37,1,8, +131,9,8,131,9,8,131,9,8,131,9,8,131,9,8,141,95,9,8,252,172, +9,2,92,18,158,2,101,8,131,18,158,2,101,8,131,18,158,2,101,8,131, +18,158,2,101,8,131,18,158,2,101,8,131,18,158,2,101,8,131,18,158,2, +101,8,131,18,158,2,101,8,131,11,16,5,93,2,58,89,162,32,33,57,9, +223,0,27,249,22,209,20,15,159,35,32,46,196,27,28,248,80,158,35,32,194, +249,80,158,36,33,248,80,158,37,34,196,27,248,80,158,38,35,197,28,248,80, +158,38,32,193,28,248,80,158,38,36,248,80,158,39,34,194,27,248,80,158,39, +35,194,28,248,80,158,39,32,193,249,80,158,40,37,248,80,158,41,34,195,248, +80,158,41,36,248,80,158,42,35,196,11,11,11,11,28,192,27,248,22,52,194, +27,248,22,53,195,27,20,15,159,37,33,46,250,22,209,20,15,159,40,34,46, +250,22,209,20,15,159,43,35,46,250,22,62,20,15,159,46,36,46,250,22,209, +20,15,159,49,37,46,248,22,60,250,22,209,20,15,159,53,38,46,249,22,60, +20,15,159,55,39,46,23,19,20,15,159,53,40,46,20,15,159,49,41,46,20, +15,159,46,42,46,20,15,159,43,43,46,195,27,89,162,32,32,51,2,119,225, +3,4,2,27,89,162,32,32,36,2,119,223,1,250,22,252,39,2,11,6,10, +10,98,97,100,32,115,121,110,116,97,120,195,27,28,248,80,158,37,32,195,249, +80,158,38,33,248,80,158,39,34,197,27,248,80,158,40,35,198,28,248,80,158, +40,32,193,249,80,158,41,37,27,248,80,158,43,34,196,28,248,80,158,43,38, +193,248,22,59,248,80,158,44,39,194,11,27,248,80,158,43,35,196,28,248,80, +158,43,32,193,249,80,158,44,37,248,80,158,45,34,195,248,80,158,45,36,248, +80,158,46,35,196,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27, +248,22,80,196,28,27,248,80,158,41,39,27,20,15,159,42,44,46,250,22,209, +20,15,159,45,45,46,199,195,87,94,249,22,3,89,162,32,33,39,9,224,10, +9,28,248,80,158,34,40,195,12,251,22,252,39,2,11,6,17,17,110,111,116, +32,97,110,32,105,100,101,110,116,105,102,105,101,114,196,198,194,27,248,80,158, +42,41,194,28,192,251,22,252,39,2,11,6,20,20,100,117,112,108,105,99,97, +116,101,32,105,100,101,110,116,105,102,105,101,114,204,196,12,27,249,22,209,20, +15,159,42,46,46,248,80,158,43,42,27,20,15,159,44,47,46,250,22,209,20, +15,159,47,48,46,201,195,27,28,248,80,158,42,38,194,248,80,158,42,39,194, +11,28,192,249,80,158,43,43,202,27,250,22,61,200,198,201,27,20,15,159,45, +49,46,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,9, +89,162,32,33,40,9,226,15,2,3,1,250,22,31,89,162,32,32,36,9,225, +6,3,7,90,161,33,33,10,247,22,252,184,2,248,22,252,184,2,89,162,32, +33,36,9,224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22,252, +181,2,193,248,22,252,186,2,193,249,80,158,35,44,21,96,70,108,101,116,45, +118,97,108,117,101,115,252,61,1,93,94,94,64,116,101,109,112,252,62,1,2, +113,2,235,95,64,115,101,116,33,252,63,1,62,105,100,252,64,1,2,252,62, +1,2,113,20,15,159,35,50,46,89,162,32,32,56,9,225,6,5,4,27,250, +22,209,20,15,159,38,51,46,250,22,209,20,15,159,41,52,46,250,22,62,20, +15,159,44,53,46,250,22,209,20,15,159,47,54,46,248,22,60,250,22,209,20, +15,159,51,55,46,249,22,60,248,22,78,23,20,248,22,52,23,20,20,15,159, +51,56,46,20,15,159,47,57,46,250,22,2,89,162,33,33,41,9,223,15,250, +22,209,20,15,159,35,58,46,250,22,60,20,15,159,38,59,46,248,22,52,200, +248,22,78,200,20,15,159,35,8,28,46,248,22,80,206,248,22,78,206,20,15, +159,41,8,29,46,197,89,162,32,32,33,9,223,0,192,89,162,32,32,34,9, +223,3,248,22,252,184,2,208,248,80,158,42,45,20,15,159,42,8,30,46,247, +196,247,193,27,28,248,80,158,37,32,196,249,80,158,38,33,248,80,158,39,34, +198,27,248,80,158,40,35,199,28,248,80,158,40,32,193,249,80,158,41,37,27, +248,80,158,43,34,196,28,248,80,158,43,32,193,249,80,158,44,33,248,80,158, +45,34,195,248,80,158,45,36,248,80,158,46,35,196,11,27,248,80,158,43,35, +196,28,248,80,158,43,32,193,249,80,158,44,37,248,80,158,45,34,195,248,80, +158,45,36,248,80,158,46,35,196,11,11,11,28,192,27,248,22,52,194,27,248, +22,78,195,27,248,22,80,196,28,248,80,158,40,40,194,27,249,22,61,196,195, +27,20,15,159,41,8,31,46,250,22,209,20,15,159,44,8,32,46,250,22,209, +20,15,159,47,8,33,46,250,22,60,20,15,159,50,8,34,46,248,22,52,203, +248,22,53,203,20,15,159,47,8,35,46,195,247,196,247,193,32,20,98,158,16, +14,2,65,2,68,2,70,2,72,2,76,2,74,2,78,2,80,2,120,30,252, +65,1,2,88,1,26,99,104,101,99,107,45,100,117,112,108,105,99,97,116,101, +45,105,100,101,110,116,105,102,105,101,114,252,66,1,0,30,252,67,1,2,189, +1,20,103,101,110,101,114,97,116,101,45,116,101,109,112,111,114,97,114,105,101, +115,252,68,1,0,2,122,2,125,2,188,16,36,18,98,2,82,8,143,36,35, +34,16,4,8,142,11,2,236,3,1,7,101,110,118,51,55,56,53,252,69,1, +18,16,2,95,2,91,8,144,93,8,252,194,9,95,9,8,252,194,9,2,92, +18,100,2,93,8,147,36,35,34,8,142,16,6,8,146,11,3,1,4,103,52, +57,56,252,70,1,3,1,4,103,52,57,57,252,71,1,3,1,7,101,110,118, +51,55,57,49,252,72,1,2,252,72,1,16,6,8,145,11,2,98,2,235,3, +1,7,101,110,118,51,55,57,50,252,73,1,2,252,73,1,18,158,2,101,8, +147,18,158,2,252,61,1,8,147,18,158,2,101,8,147,18,158,2,101,8,147, +18,158,9,8,147,18,158,2,101,8,147,18,158,2,101,8,147,18,16,2,103, +93,16,2,158,93,16,2,158,64,118,111,105,100,252,74,1,8,147,9,8,147, +9,8,149,8,28,59,58,57,56,55,13,16,3,33,2,134,2,92,93,8,252, +194,9,16,6,8,148,11,2,140,2,141,3,1,7,101,110,118,51,55,57,54, +252,75,1,2,252,75,1,95,9,8,252,194,9,2,92,18,158,2,101,8,147, +18,16,2,95,2,91,8,150,93,8,252,195,9,95,9,8,252,195,9,2,92, +18,100,2,93,8,153,36,35,34,8,142,16,8,8,152,11,3,1,4,103,52, +57,50,252,76,1,3,1,4,103,52,57,51,252,77,1,3,1,4,103,52,57, +52,252,78,1,3,1,7,101,110,118,51,56,48,54,252,79,1,2,252,79,1, +2,252,79,1,16,8,8,151,11,2,98,2,252,64,1,2,235,3,1,7,101, +110,118,51,56,48,55,252,80,1,2,252,80,1,2,252,80,1,18,158,2,82, +8,153,18,16,2,95,2,91,8,154,93,8,252,199,9,95,9,8,252,199,9, +2,92,18,158,2,93,8,153,18,16,2,95,2,91,8,155,93,8,252,202,9, +95,9,8,252,202,9,2,92,18,16,2,99,2,113,8,160,93,8,252,202,9, +16,6,8,159,11,2,140,2,141,3,1,7,101,110,118,51,56,50,52,252,81, +1,2,252,81,1,16,4,8,158,11,2,151,3,1,7,101,110,118,51,56,50, +53,252,82,1,16,4,8,157,11,2,153,3,1,7,101,110,118,51,56,50,54, +252,83,1,16,4,8,156,11,2,155,3,1,7,101,110,118,51,56,50,56,252, +84,1,95,9,8,252,202,9,2,92,18,102,2,93,8,163,36,35,34,8,142, +8,152,8,151,16,4,8,162,11,3,1,4,103,53,48,50,252,85,1,3,1, +7,101,110,118,51,56,50,48,252,86,1,16,4,8,161,11,2,252,62,1,3, +1,7,101,110,118,51,56,50,49,252,87,1,18,158,2,101,8,163,18,158,2, +252,61,1,8,163,18,158,2,101,8,163,18,158,2,101,8,163,18,158,2,101, +8,163,18,158,2,101,8,163,18,158,2,101,8,163,18,158,2,252,63,1,8, +163,18,158,2,101,8,163,18,158,2,101,8,163,18,16,2,158,94,16,2,98, +2,252,62,1,8,167,93,8,252,198,9,16,4,8,166,11,3,1,8,119,115, +116,109,112,53,48,48,252,88,1,3,1,7,101,110,118,51,56,49,53,252,89, +1,16,4,8,165,11,3,1,4,103,53,48,49,252,90,1,3,1,7,101,110, +118,51,56,51,55,252,91,1,16,4,8,164,11,2,222,3,1,7,101,110,118, +51,56,51,56,252,92,1,9,16,2,158,2,113,8,167,9,8,167,95,9,8, +252,198,9,2,189,18,16,2,95,2,91,8,168,93,8,252,205,9,95,9,8, +252,205,9,2,92,18,100,2,93,8,171,36,35,34,8,142,16,8,8,170,11, +3,1,4,103,52,57,53,252,93,1,3,1,4,103,52,57,54,252,94,1,3, +1,4,103,52,57,55,252,95,1,3,1,7,101,110,118,51,56,52,53,252,96, +1,2,252,96,1,2,252,96,1,16,8,8,169,11,2,98,2,252,64,1,2, +235,3,1,7,101,110,118,51,56,52,54,252,97,1,2,252,97,1,2,252,97, +1,18,158,2,101,8,171,18,158,2,252,63,1,8,171,18,158,2,101,8,171, +11,16,5,93,2,63,89,162,32,33,8,32,9,223,0,27,249,22,209,20,15, +159,35,32,39,196,27,28,248,80,158,35,32,194,249,80,158,36,33,248,80,158, +37,34,196,27,248,80,158,38,35,197,28,248,80,158,38,32,193,249,80,158,39, +33,248,80,158,40,34,195,27,248,80,158,41,35,196,28,248,80,158,41,32,193, +249,80,158,42,33,248,80,158,43,34,195,27,248,80,158,44,35,196,28,248,80, +158,44,36,193,248,80,158,44,37,193,11,11,11,11,28,192,27,248,22,52,194, +27,248,22,78,195,27,248,22,87,196,27,248,22,88,197,249,80,158,40,38,201, +27,250,22,61,200,199,198,27,20,15,159,42,33,39,250,22,209,20,15,159,45, +34,39,250,22,209,20,15,159,48,35,39,249,22,60,20,15,159,50,36,39,250, +22,209,20,15,159,53,37,39,251,22,62,20,15,159,57,38,39,250,22,209,20, +15,159,8,28,39,39,248,22,60,248,22,52,23,21,20,15,159,8,28,40,39, +248,22,78,23,17,248,22,80,23,17,20,15,159,53,41,39,20,15,159,48,42, +39,195,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120, +196,32,20,98,158,16,7,2,65,2,68,2,70,2,72,2,78,2,80,2,122, +16,11,18,98,2,82,8,173,36,35,34,16,4,8,172,11,2,236,3,1,7, +101,110,118,51,56,53,50,252,98,1,18,16,2,95,2,91,8,174,93,8,252, +215,9,95,9,8,252,215,9,2,92,18,100,2,93,8,177,36,35,34,8,172, +16,10,8,176,11,3,1,4,103,53,48,51,252,99,1,3,1,4,103,53,48, +52,252,100,1,3,1,4,103,53,48,53,252,101,1,3,1,4,103,53,48,54, +252,102,1,3,1,7,101,110,118,51,56,53,57,252,103,1,2,252,103,1,2, +252,103,1,2,252,103,1,16,10,8,175,11,2,98,2,178,65,98,111,100,121, +49,252,104,1,2,252,25,1,3,1,7,101,110,118,51,56,54,48,252,105,1, +2,252,105,1,2,252,105,1,2,252,105,1,18,158,2,101,8,177,18,158,67, +99,97,108,108,47,99,99,252,106,1,8,177,18,158,2,101,8,177,18,158,2, +230,8,177,18,158,2,101,8,177,18,158,2,101,8,177,18,158,2,101,8,177, +18,158,2,101,8,177,11,16,5,93,2,54,89,162,32,33,55,9,223,0,27, +249,22,209,20,15,159,35,32,41,196,27,28,248,80,158,35,32,194,249,80,158, +36,33,248,80,158,37,34,196,27,248,80,158,38,35,197,28,248,80,158,38,32, +193,249,80,158,39,33,248,80,158,40,34,195,27,248,80,158,41,35,196,28,248, +80,158,41,32,193,249,80,158,42,36,27,248,80,158,44,34,196,28,248,80,158, +44,37,193,248,22,59,248,80,158,45,38,194,11,27,248,80,158,44,35,196,28, +248,80,158,44,32,193,249,80,158,45,33,248,80,158,46,34,195,27,248,80,158, +47,35,196,28,248,80,158,47,37,193,248,80,158,47,38,193,11,11,11,11,11, +28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27,248,22,90, +197,27,248,22,89,198,249,80,158,41,39,202,27,251,22,61,199,201,200,202,27, +20,15,159,43,33,41,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11, +247,248,22,9,89,162,32,33,40,9,226,13,2,3,1,250,22,31,89,162,32, +32,36,9,225,6,3,7,90,161,33,33,10,247,22,252,184,2,248,22,252,184, +2,89,162,32,33,36,9,224,3,1,248,193,89,162,32,32,36,9,224,2,3, +28,248,22,252,181,2,193,248,22,252,186,2,193,249,80,158,35,40,21,98,2, +116,9,95,73,100,101,102,105,110,101,45,115,116,114,117,99,116,252,107,1,64, +98,97,115,101,252,108,1,94,65,102,105,101,108,100,252,109,1,2,113,2,252, +104,1,2,252,25,1,2,113,20,15,159,35,34,41,89,162,32,32,54,9,225, +6,5,4,27,250,22,209,20,15,159,38,35,41,250,22,209,20,15,159,41,36, +41,252,22,62,20,15,159,46,37,41,20,15,159,46,38,41,250,22,209,20,15, +159,49,39,41,250,22,60,20,15,159,52,40,41,248,22,88,23,19,248,22,78, +23,19,20,15,159,49,41,41,248,22,87,205,248,22,52,205,20,15,159,41,42, +41,197,89,162,32,32,33,9,223,0,192,89,162,32,32,34,9,223,3,248,22, +252,184,2,208,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116, +97,120,196,32,20,98,158,16,9,2,65,2,68,2,70,2,72,2,74,2,78, +2,80,2,122,2,125,16,11,18,98,2,82,8,179,36,35,34,16,4,8,178, +11,2,236,3,1,7,101,110,118,51,56,54,56,252,110,1,18,16,2,95,2, +91,8,180,93,8,252,228,9,95,9,8,252,228,9,2,92,18,16,2,99,2, +113,8,185,93,8,252,228,9,16,6,8,184,11,2,140,2,141,3,1,7,101, +110,118,51,56,56,53,252,111,1,2,252,111,1,16,4,8,183,11,2,151,3, +1,7,101,110,118,51,56,56,54,252,112,1,16,4,8,182,11,2,153,3,1, +7,101,110,118,51,56,56,55,252,113,1,16,4,8,181,11,2,155,3,1,7, +101,110,118,51,56,56,57,252,114,1,95,9,8,252,228,9,2,92,18,100,2, +93,8,188,36,35,34,8,178,16,12,8,187,11,3,1,4,103,53,48,55,252, +115,1,3,1,4,103,53,48,56,252,116,1,3,1,4,103,53,48,57,252,117, +1,3,1,4,103,53,49,48,252,118,1,3,1,4,103,53,49,49,252,119,1, +3,1,7,101,110,118,51,56,55,55,252,120,1,2,252,120,1,2,252,120,1, +2,252,120,1,2,252,120,1,16,12,8,186,11,2,98,2,252,108,1,2,252, +109,1,2,252,104,1,2,252,25,1,3,1,7,101,110,118,51,56,55,56,252, +121,1,2,252,121,1,2,252,121,1,2,252,121,1,2,252,121,1,18,158,2, +101,8,188,18,158,2,116,8,188,18,158,9,8,188,18,158,2,101,8,188,18, +158,2,252,107,1,8,188,18,158,2,101,8,188,18,158,2,101,8,188,11,16, +5,93,2,53,89,162,32,33,53,9,223,0,27,249,22,209,20,15,159,35,32, +46,196,27,28,248,80,158,35,32,194,249,80,158,36,33,248,80,158,37,34,196, +27,248,80,158,38,35,197,28,248,80,158,38,32,193,28,248,80,158,38,36,248, +80,158,39,34,194,27,248,80,158,39,35,194,28,248,80,158,39,32,193,249,80, +158,40,33,248,80,158,41,34,195,27,248,80,158,42,35,196,28,248,80,158,42, +37,193,248,80,158,42,38,193,11,11,11,11,11,28,192,27,248,22,52,194,27, +248,22,78,195,27,248,22,80,196,249,80,158,39,39,200,27,249,22,61,198,197, +27,20,15,159,41,33,46,250,22,209,20,15,159,44,34,46,250,22,209,20,15, +159,47,35,46,250,22,62,20,15,159,50,36,46,20,15,159,50,37,46,202,20, +15,159,47,38,46,195,27,28,248,80,158,36,32,195,249,80,158,37,33,248,80, +158,38,34,197,27,248,80,158,39,35,198,28,248,80,158,39,32,193,249,80,158, +40,40,27,248,80,158,42,34,196,28,248,80,158,42,37,193,248,22,9,89,162, +32,33,39,9,224,10,1,27,249,22,2,89,162,32,33,45,9,224,4,5,249, +80,158,35,41,28,248,80,158,36,32,197,249,80,158,37,33,248,80,158,38,34, +199,27,248,80,158,39,35,200,28,248,80,158,39,32,193,249,80,158,40,33,248, +80,158,41,34,195,248,80,158,41,36,248,80,158,42,35,196,11,11,194,248,80, +158,37,38,196,28,248,22,57,193,21,94,9,9,248,80,158,35,42,193,11,27, +248,80,158,42,35,196,28,248,80,158,42,32,193,249,80,158,43,33,248,80,158, +44,34,195,27,248,80,158,45,35,196,28,248,80,158,45,37,193,248,80,158,45, +38,193,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22, +87,196,27,248,22,90,197,27,248,22,89,198,27,249,22,209,20,15,159,43,39, +46,248,80,158,44,43,27,20,15,159,45,40,46,250,22,209,20,15,159,48,41, +46,203,195,27,28,248,80,158,43,37,194,248,80,158,43,38,194,11,28,192,249, +80,158,44,39,205,27,252,22,61,202,205,200,203,204,27,20,15,159,46,42,46, +91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,9,89,162, +32,33,40,9,226,16,2,3,1,250,22,31,89,162,32,32,36,9,225,6,3, +7,90,161,33,33,10,247,22,252,184,2,248,22,252,184,2,89,162,32,33,36, +9,224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22,252,181,2, +193,248,22,252,186,2,193,249,80,158,35,44,21,95,2,116,94,94,63,116,109, +112,252,122,1,2,250,2,113,95,2,116,93,94,64,115,119,97,112,252,123,1, +96,2,230,9,96,2,116,93,94,2,202,2,252,122,1,95,2,252,63,1,2, +252,122,1,64,110,97,109,101,252,124,1,95,2,252,63,1,2,252,124,1,2, +202,2,113,96,72,100,121,110,97,109,105,99,45,119,105,110,100,252,125,1,2, +252,123,1,97,2,230,9,2,252,104,1,2,252,25,1,2,113,2,252,123,1, +20,15,159,35,43,46,89,162,32,32,8,40,9,225,6,5,4,27,250,22,209, +20,15,159,38,44,46,250,22,209,20,15,159,41,45,46,250,22,60,20,15,159, +44,46,46,250,22,2,89,162,33,33,41,9,223,15,250,22,209,20,15,159,35, +47,46,249,22,60,248,22,52,199,248,22,78,199,20,15,159,35,48,46,248,22, +87,206,248,22,89,206,250,22,209,20,15,159,47,49,46,250,22,60,20,15,159, +50,50,46,250,22,209,20,15,159,53,51,46,248,22,60,250,22,209,20,15,159, +57,52,46,249,22,60,20,15,159,59,53,46,250,22,209,20,15,159,8,30,54, +46,250,22,62,20,15,159,8,33,55,46,20,15,159,8,33,56,46,252,22,2, +89,162,33,33,51,9,223,38,250,22,209,20,15,159,35,57,46,251,22,60,20, +15,159,39,58,46,250,22,209,20,15,159,42,59,46,248,22,60,250,22,209,20, +15,159,46,8,28,46,249,22,60,20,15,159,48,8,29,46,248,22,52,23,18, +20,15,159,46,8,30,46,20,15,159,42,8,31,46,250,22,209,20,15,159,42, +8,32,46,250,22,60,20,15,159,45,8,33,46,248,22,52,23,15,248,22,87, +23,15,20,15,159,42,8,34,46,250,22,209,20,15,159,42,8,35,46,250,22, +62,20,15,159,45,8,36,46,248,22,87,23,15,20,15,159,45,8,37,46,20, +15,159,42,8,38,46,20,15,159,35,8,39,46,248,22,87,23,37,248,22,87, +23,37,248,22,78,23,37,248,22,78,23,37,20,15,159,8,30,8,40,46,20, +15,159,57,8,41,46,20,15,159,53,8,42,46,250,22,209,20,15,159,53,8, +43,46,251,22,62,20,15,159,57,8,44,46,20,15,159,57,8,45,46,250,22, +209,20,15,159,8,28,8,46,46,251,22,62,20,15,159,8,32,8,47,46,20, +15,159,8,32,8,48,46,248,22,90,23,31,248,22,52,23,31,20,15,159,8, +28,8,49,46,20,15,159,57,8,50,46,20,15,159,53,8,51,46,20,15,159, +47,8,52,46,20,15,159,41,8,53,46,197,89,162,32,32,33,9,223,0,192, +89,162,32,32,34,9,223,3,248,22,252,184,2,208,248,80,158,43,45,20,15, +159,43,8,54,46,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110, +116,97,120,197,32,20,98,158,16,14,2,65,2,68,2,70,2,72,2,76,2, +78,2,80,2,122,2,74,2,184,2,186,2,252,67,1,2,125,2,188,16,55, +18,98,2,82,8,190,36,35,34,16,4,8,189,11,2,236,3,1,7,101,110, +118,51,56,57,54,252,126,1,18,16,2,95,2,91,8,191,93,8,252,247,9, +95,9,8,252,247,9,2,92,18,100,2,93,8,194,36,35,34,8,189,16,8, +8,193,11,3,1,4,103,53,49,55,252,127,1,3,1,4,103,53,49,56,252, +128,1,3,1,4,103,53,49,57,252,129,1,3,1,7,101,110,118,51,57,48, +51,252,130,1,2,252,130,1,2,252,130,1,16,8,8,192,11,2,98,2,252, +104,1,2,252,25,1,3,1,7,101,110,118,51,57,48,52,252,131,1,2,252, +131,1,2,252,131,1,18,158,2,101,8,194,18,158,2,116,8,194,18,158,9, +8,194,18,158,2,101,8,194,18,100,2,82,8,197,36,35,34,8,189,16,12, +8,196,11,3,1,4,103,53,49,50,252,132,1,3,1,4,103,53,49,51,252, +133,1,3,1,4,103,53,49,52,252,134,1,3,1,4,103,53,49,53,252,135, +1,3,1,4,103,53,49,54,252,136,1,3,1,7,101,110,118,51,57,50,48, +252,137,1,2,252,137,1,2,252,137,1,2,252,137,1,2,252,137,1,16,12, +8,195,11,2,98,2,252,124,1,2,250,2,252,104,1,2,252,25,1,3,1, +7,101,110,118,51,57,50,49,252,138,1,2,252,138,1,2,252,138,1,2,252, +138,1,2,252,138,1,18,16,2,95,2,91,8,198,93,8,252,250,9,95,9, +8,252,250,9,2,92,18,158,2,93,8,197,18,16,2,95,2,91,8,199,93, +8,252,253,9,95,9,8,252,253,9,2,92,18,16,2,99,2,113,8,204,93, +8,252,253,9,16,6,8,203,11,2,140,2,141,3,1,7,101,110,118,51,57, +51,55,252,139,1,2,252,139,1,16,4,8,202,11,2,151,3,1,7,101,110, +118,51,57,51,56,252,140,1,16,4,8,201,11,2,153,3,1,7,101,110,118, +51,57,51,57,252,141,1,16,4,8,200,11,2,155,3,1,7,101,110,118,51, +57,52,49,252,142,1,95,9,8,252,253,9,2,92,18,102,2,93,8,207,36, +35,34,8,189,8,196,8,195,16,4,8,206,11,3,1,4,103,53,50,50,252, +143,1,3,1,7,101,110,118,51,57,51,51,252,144,1,16,4,8,205,11,2, +252,122,1,3,1,7,101,110,118,51,57,51,52,252,145,1,18,158,2,101,8, +207,18,158,2,116,8,207,18,158,2,101,8,207,18,158,2,101,8,207,18,158, +2,101,8,207,18,158,2,116,8,207,18,158,2,101,8,207,18,158,2,101,8, +207,18,158,2,252,123,1,8,207,18,158,2,101,8,207,18,158,2,230,8,207, +18,158,9,8,207,18,158,2,101,8,207,18,158,2,116,8,207,18,158,2,101, +8,207,18,158,2,101,8,207,18,158,2,202,8,207,18,158,2,101,8,207,18, +158,2,101,8,207,18,158,2,101,8,207,18,158,2,252,63,1,8,207,18,158, +2,101,8,207,18,158,2,101,8,207,18,158,2,252,63,1,8,207,18,16,2, +106,93,16,2,158,2,202,8,207,9,8,212,8,28,59,58,57,56,55,13,16, +3,33,2,134,2,92,93,8,252,253,9,16,6,8,211,11,2,140,2,141,2, +252,139,1,2,252,139,1,16,4,8,210,11,2,151,2,252,140,1,16,4,8, +209,11,2,153,2,252,141,1,16,4,8,208,11,64,118,97,108,115,252,146,1, +3,1,7,101,110,118,51,57,52,55,252,147,1,95,9,8,252,253,9,2,92, +18,158,2,101,8,207,18,158,2,101,8,207,18,158,2,101,8,207,18,158,2, +101,8,207,18,158,2,101,8,207,18,158,2,101,8,207,18,158,2,252,125,1, +8,207,18,158,2,252,123,1,8,207,18,158,2,101,8,207,18,158,2,230,8, +207,18,158,9,8,207,18,158,2,101,8,207,18,16,2,105,93,16,2,158,2, +252,123,1,8,207,9,8,213,8,28,59,58,57,56,55,13,16,3,33,2,134, +2,92,93,8,252,253,9,8,211,8,210,8,209,95,9,8,252,253,9,2,92, +18,158,2,101,8,207,18,158,2,101,8,207,18,158,2,101,8,207,18,16,2, +158,94,16,2,98,2,252,122,1,8,217,93,8,252,249,9,16,4,8,216,11, +3,1,8,119,115,116,109,112,53,50,48,252,148,1,3,1,7,101,110,118,51, +57,50,56,252,149,1,16,4,8,215,11,3,1,4,103,53,50,49,252,150,1, +3,1,7,101,110,118,51,57,53,50,252,151,1,16,4,8,214,11,2,222,3, +1,7,101,110,118,51,57,53,51,252,152,1,9,16,2,158,2,113,8,217,9, +8,217,95,9,8,252,249,9,2,189,11,16,5,93,2,52,89,162,32,33,8, +43,9,223,0,27,249,22,209,20,15,159,35,32,39,196,27,28,248,80,158,35, 32,194,249,80,158,36,33,248,80,158,37,34,196,27,248,80,158,38,35,197,28, 248,80,158,38,32,193,249,80,158,39,33,248,80,158,40,34,195,27,248,80,158, -41,35,196,28,248,80,158,41,32,193,249,80,158,42,33,248,80,158,43,34,195, -27,248,80,158,44,35,196,28,248,80,158,44,36,193,248,80,158,44,37,193,11, -11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27, -248,22,88,197,249,80,158,40,38,201,27,250,22,61,199,198,200,27,83,160,41, -33,42,39,250,22,209,83,160,41,34,45,39,250,22,209,83,160,41,35,48,39, -251,22,60,83,160,41,36,52,39,83,160,41,37,52,39,250,22,209,83,160,41, -38,55,39,249,22,60,83,160,41,39,57,39,250,22,209,83,160,41,40,8,28, -39,250,22,62,83,160,41,41,8,31,39,248,22,80,23,23,83,160,41,42,8, -31,39,83,160,41,43,8,28,39,83,160,41,44,55,39,250,22,209,83,160,41, -45,55,39,250,22,60,83,160,41,46,58,39,83,160,41,47,58,39,250,22,209, -83,160,41,48,8,29,39,251,22,62,83,160,41,49,8,33,39,83,160,41,50, -8,33,39,248,22,52,23,25,248,22,78,23,25,83,160,41,51,8,29,39,83, -160,41,52,55,39,83,160,41,53,48,39,195,250,22,252,38,2,11,6,10,10, -98,97,100,32,115,121,110,116,97,120,196,32,20,97,158,16,7,2,65,2,68, -2,70,2,72,2,78,2,80,2,164,16,22,18,98,2,82,8,115,36,35,34, -16,4,8,114,11,2,252,25,1,3,1,7,101,110,118,51,55,49,48,252,53, -1,18,16,2,95,2,135,8,116,93,8,252,132,9,95,9,8,252,132,9,2, -107,18,100,2,136,8,119,36,35,34,8,114,16,10,8,118,11,3,1,4,103, -52,55,55,252,54,1,3,1,4,103,52,55,56,252,55,1,3,1,4,103,52, -55,57,252,56,1,3,1,4,103,52,56,48,252,57,1,3,1,7,101,110,118, -51,55,49,55,252,58,1,2,252,58,1,2,252,58,1,2,252,58,1,16,10, -8,117,11,2,141,69,98,111,111,108,45,101,120,112,114,252,59,1,2,252,23, -1,2,252,24,1,3,1,7,101,110,118,51,55,49,56,252,60,1,2,252,60, -1,2,252,60,1,2,252,60,1,18,158,2,144,8,119,18,158,2,252,20,1, -8,119,18,158,2,47,8,119,18,158,2,144,8,119,18,158,76,109,97,107,101, -45,116,104,114,101,97,100,45,99,101,108,108,252,61,1,8,119,18,158,2,144, -8,119,18,158,2,83,8,119,18,16,2,103,93,16,2,158,10,8,119,9,8, -121,8,28,59,58,57,56,55,13,16,3,33,2,173,2,107,93,8,252,132,9, -16,6,8,120,11,2,188,2,189,3,1,7,101,110,118,51,55,50,52,252,62, -1,2,252,62,1,95,9,8,252,132,9,2,107,18,158,2,144,8,119,18,158, -2,144,8,119,18,158,2,144,8,119,18,158,2,0,8,119,18,158,93,16,2, -158,2,51,8,119,9,8,119,18,158,2,144,8,119,18,158,2,159,8,119,18, -158,9,8,119,18,158,2,144,8,119,18,158,2,144,8,119,18,158,2,144,8, -119,11,16,5,93,2,97,253,22,60,248,247,22,252,85,3,83,160,41,32,39, -32,248,247,22,252,85,3,83,160,41,33,39,32,248,247,22,252,85,3,83,160, -41,34,39,32,248,22,60,248,247,22,252,85,3,83,160,41,35,40,32,248,22, -60,248,247,22,252,85,3,83,160,41,36,40,32,10,40,20,97,158,16,0,16, -5,18,158,2,35,8,89,18,158,2,37,8,89,18,158,2,39,8,89,18,158, -2,41,8,89,18,158,2,43,8,89,11,16,5,94,2,56,2,59,27,89,162, -32,33,34,62,119,104,252,63,1,223,1,89,162,32,33,53,9,224,0,1,27, -249,22,209,83,160,41,32,36,44,197,27,28,248,80,158,36,32,194,249,80,158, -37,33,248,80,158,38,34,196,27,248,80,158,39,35,197,28,248,80,158,39,32, -193,28,248,80,158,39,36,248,80,158,40,34,194,27,248,80,158,40,35,194,28, -248,80,158,40,32,193,249,80,158,41,33,248,80,158,42,34,195,27,248,80,158, -43,35,196,28,248,80,158,43,37,193,248,80,158,43,38,193,11,11,11,11,11, -28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,80,196,249,80,158,40, -39,201,27,249,22,61,198,197,27,83,160,41,33,42,44,250,22,209,83,160,41, -34,45,44,250,22,209,83,160,41,35,48,44,250,22,62,83,160,41,36,51,44, -83,160,41,37,51,44,202,83,160,41,38,48,44,195,27,28,248,80,158,37,32, -195,249,80,158,38,33,248,80,158,39,34,197,27,248,80,158,40,35,198,28,248, -80,158,40,32,193,249,80,158,41,40,27,248,80,158,43,34,196,28,248,80,158, -43,37,193,248,22,8,89,162,32,33,39,9,224,11,1,27,249,22,2,89,162, -32,33,45,9,224,4,5,249,80,158,35,41,28,248,80,158,36,32,197,249,80, -158,37,33,248,80,158,38,34,199,27,248,80,158,39,35,200,28,248,80,158,39, -32,193,249,80,158,40,33,248,80,158,41,34,195,248,80,158,41,36,248,80,158, -42,35,196,11,11,194,248,80,158,37,38,196,28,248,22,57,193,21,94,9,9, -248,80,158,35,42,193,11,27,248,80,158,43,35,196,28,248,80,158,43,32,193, -249,80,158,44,33,248,80,158,45,34,195,27,248,80,158,46,35,196,28,248,80, -158,46,37,193,248,80,158,46,38,193,11,11,11,11,28,192,27,248,22,52,194, -27,248,22,78,195,27,248,22,87,196,27,248,22,90,197,27,248,22,89,198,27, -249,22,209,83,160,41,39,44,44,28,203,83,160,41,40,44,44,83,160,41,41, -44,44,249,80,158,44,39,205,27,252,22,61,202,201,200,203,204,27,83,160,41, -42,46,44,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22, -8,89,162,32,33,40,9,226,16,2,3,1,250,22,31,89,162,32,32,36,9, -225,6,3,7,90,161,33,33,10,247,22,252,183,2,248,22,252,183,2,89,162, -32,33,36,9,224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22, -252,180,2,193,248,22,252,185,2,193,249,80,158,35,43,21,95,2,159,94,94, -61,108,252,64,1,95,64,108,105,115,116,252,65,1,95,64,99,111,110,115,252, -66,1,64,112,114,101,100,252,67,1,67,104,97,110,100,108,101,114,252,68,1, -2,156,94,64,98,111,100,121,252,69,1,97,2,252,19,1,9,2,252,23,1, -2,252,24,1,2,156,95,2,159,93,94,63,98,112,122,252,70,1,95,2,252, -21,1,11,2,47,96,2,252,20,1,2,47,94,2,252,61,1,11,93,94,67, -99,97,108,108,47,101,99,252,71,1,95,2,252,19,1,93,2,142,96,2,252, -20,1,2,47,2,252,70,1,95,2,62,93,94,1,25,99,117,114,114,101,110, -116,45,101,120,99,101,112,116,105,111,110,45,104,97,110,100,108,101,114,252,72, -1,95,2,252,19,1,93,61,101,252,73,1,94,2,142,95,2,252,19,1,9, -96,2,159,64,108,111,111,112,252,74,1,93,94,2,252,64,1,2,252,64,1, -96,2,92,94,94,65,110,117,108,108,63,252,75,1,2,252,64,1,94,65,114, -97,105,115,101,252,76,1,2,252,73,1,94,94,94,64,99,97,97,114,252,77, -1,2,252,64,1,2,252,73,1,63,117,113,49,252,78,1,94,2,191,94,2, -252,74,1,94,63,99,100,114,252,79,1,2,252,64,1,95,76,99,97,108,108, -45,119,105,116,104,45,118,97,108,117,101,115,252,80,1,2,252,69,1,95,2, -252,19,1,64,97,114,103,115,252,81,1,95,2,252,19,1,9,95,65,97,112, -112,108,121,252,82,1,66,118,97,108,117,101,115,252,83,1,2,252,81,1,83, -160,41,43,35,44,89,162,32,32,8,100,9,225,6,5,4,27,250,22,209,83, -160,41,44,38,44,250,22,209,83,160,41,45,41,44,250,22,60,83,160,41,46, -44,44,250,22,209,83,160,41,47,47,44,249,22,60,250,22,209,83,160,41,48, -52,44,249,22,60,83,160,41,49,54,44,250,22,209,83,160,41,50,57,44,249, -22,56,83,160,41,51,59,44,250,22,2,89,162,33,33,41,9,223,30,250,22, -209,83,160,41,52,35,44,250,22,60,83,160,41,53,38,44,248,22,52,200,248, -22,78,200,83,160,41,54,35,44,248,22,89,23,29,248,22,90,23,29,83,160, -41,55,57,44,83,160,41,56,52,44,250,22,209,83,160,41,57,52,44,249,22, -60,83,160,41,58,54,44,250,22,209,83,160,41,59,57,44,251,22,62,83,160, -41,8,28,8,29,44,83,160,41,8,29,8,29,44,248,22,52,23,28,248,22, -78,23,28,83,160,41,8,30,57,44,83,160,41,8,31,52,44,83,160,41,8, -32,47,44,250,22,209,83,160,41,8,33,47,44,250,22,60,83,160,41,8,34, -50,44,83,160,41,8,35,50,44,250,22,209,83,160,41,8,36,53,44,251,22, -60,83,160,41,8,37,57,44,83,160,41,8,38,57,44,83,160,41,8,39,57, -44,250,22,209,83,160,41,8,40,8,28,44,248,22,60,250,22,209,83,160,41, -8,41,8,32,44,249,22,60,83,160,41,8,42,8,34,44,250,22,209,83,160, -41,8,43,8,37,44,250,22,60,83,160,41,8,44,8,40,44,83,160,41,8, -45,8,40,44,250,22,209,83,160,41,8,46,8,43,44,251,22,60,83,160,41, -8,47,8,47,44,83,160,41,8,48,8,47,44,83,160,41,8,49,8,47,44, -250,22,209,83,160,41,8,50,8,50,44,250,22,62,83,160,41,8,51,8,53, -44,250,22,209,83,160,41,8,52,8,56,44,248,22,60,250,22,209,83,160,41, -8,53,8,60,44,249,22,60,83,160,41,8,54,8,62,44,250,22,209,83,160, -41,8,55,8,65,44,250,22,60,83,160,41,8,56,8,68,44,83,160,41,8, -57,8,68,44,250,22,209,83,160,41,8,58,8,71,44,249,22,60,83,160,41, -8,59,8,73,44,250,22,209,83,160,41,8,60,8,76,44,250,22,60,83,160, -41,8,61,8,79,44,83,160,41,8,62,8,79,44,250,22,209,83,160,41,8, -63,8,82,44,251,22,60,83,160,41,8,64,8,86,44,83,160,41,8,65,8, -86,44,83,160,41,8,66,8,86,44,250,22,209,83,160,41,8,67,8,89,44, -251,22,62,83,160,41,8,68,8,93,44,83,160,41,8,69,8,93,44,250,22, -209,83,160,41,8,70,8,96,44,249,22,60,83,160,41,8,71,8,98,44,248, -22,87,23,97,83,160,41,8,72,8,96,44,83,160,41,8,73,8,93,44,83, -160,41,8,74,8,89,44,83,160,41,8,75,8,82,44,83,160,41,8,76,8, -76,44,83,160,41,8,77,8,71,44,83,160,41,8,78,8,65,44,83,160,41, -8,79,8,60,44,83,160,41,8,80,8,56,44,83,160,41,8,81,8,53,44, -83,160,41,8,82,8,50,44,83,160,41,8,83,8,43,44,83,160,41,8,84, -8,37,44,83,160,41,8,85,8,32,44,83,160,41,8,86,8,28,44,83,160, -41,8,87,53,44,83,160,41,8,88,47,44,83,160,41,8,89,41,44,197,89, -162,32,32,33,9,223,0,192,89,162,32,32,34,9,223,3,248,22,252,183,2, -208,250,22,252,38,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,197, -249,22,7,248,195,10,248,195,11,37,20,97,158,16,12,2,65,2,68,2,70, -2,72,2,76,2,78,2,80,2,164,2,74,2,232,2,233,2,166,16,90,18, -99,2,82,8,124,36,35,34,16,4,8,123,11,74,100,105,115,97,98,108,101, -45,98,114,101,97,107,63,252,84,1,3,1,7,101,110,118,51,55,50,56,252, -85,1,16,4,8,122,11,2,252,25,1,3,1,7,101,110,118,51,55,50,57, -252,86,1,18,16,2,95,2,135,8,125,93,8,252,163,9,95,9,8,252,163, -9,2,107,18,101,2,136,8,128,36,35,34,8,123,8,122,16,8,8,127,11, -3,1,4,103,52,56,54,252,87,1,3,1,4,103,52,56,55,252,88,1,3, -1,4,103,52,56,56,252,89,1,3,1,7,101,110,118,51,55,51,54,252,90, -1,2,252,90,1,2,252,90,1,16,8,8,126,11,2,141,2,252,23,1,2, -252,24,1,3,1,7,101,110,118,51,55,51,55,252,91,1,2,252,91,1,2, -252,91,1,18,158,2,144,8,128,18,158,2,159,8,128,18,158,9,8,128,18, -158,2,144,8,128,18,101,2,82,8,131,36,35,34,8,123,8,122,16,12,8, -130,11,3,1,4,103,52,56,49,252,92,1,3,1,4,103,52,56,50,252,93, -1,3,1,4,103,52,56,51,252,94,1,3,1,4,103,52,56,52,252,95,1, -3,1,4,103,52,56,53,252,96,1,3,1,7,101,110,118,51,55,53,51,252, -97,1,2,252,97,1,2,252,97,1,2,252,97,1,2,252,97,1,16,12,8, -129,11,2,141,2,252,67,1,2,252,68,1,2,252,23,1,2,252,24,1,3, -1,7,101,110,118,51,55,53,52,252,98,1,2,252,98,1,2,252,98,1,2, -252,98,1,2,252,98,1,18,158,95,16,2,158,66,98,101,103,105,110,48,252, -99,1,8,131,9,16,2,158,94,16,2,158,94,16,2,158,64,99,100,97,114, -252,100,1,8,131,9,16,2,158,2,252,64,1,8,131,9,8,131,9,16,2, -158,2,252,73,1,8,131,9,8,131,9,16,2,158,96,16,2,158,2,252,20, -1,8,131,9,16,2,158,2,47,8,131,9,16,2,158,2,252,70,1,8,131, -9,16,2,158,93,16,2,158,2,51,8,131,9,8,131,9,8,131,9,8,131, -18,158,96,16,2,158,2,252,20,1,8,131,9,16,2,158,2,47,8,131,9, -16,2,158,2,252,70,1,8,131,9,16,2,158,95,16,2,158,2,0,8,131, -9,16,2,158,93,16,2,158,2,51,8,131,9,8,131,9,16,2,158,94,16, -2,158,94,16,2,158,2,252,100,1,8,131,9,16,2,158,2,252,64,1,8, -131,9,8,131,9,16,2,158,2,252,73,1,8,131,9,8,131,9,8,131,9, -8,131,18,16,2,95,2,135,8,132,93,8,252,172,9,95,9,8,252,172,9, -2,107,18,16,2,99,2,156,8,137,93,8,252,172,9,16,6,8,136,11,2, -188,2,189,3,1,7,101,110,118,51,55,55,50,252,101,1,2,252,101,1,16, -4,8,135,11,2,199,3,1,7,101,110,118,51,55,55,51,252,102,1,16,4, -8,134,11,2,201,3,1,7,101,110,118,51,55,55,52,252,103,1,16,4,8, -133,11,2,203,3,1,7,101,110,118,51,55,55,54,252,104,1,95,9,8,252, -172,9,2,107,18,158,2,136,8,131,18,158,2,144,8,131,18,158,2,159,8, -131,18,158,2,144,8,131,18,158,2,144,8,131,18,158,2,252,64,1,8,131, -18,158,2,144,8,131,18,158,2,252,65,1,8,131,18,158,2,144,8,131,18, -158,2,252,66,1,8,131,18,158,2,144,8,131,18,158,2,144,8,131,18,158, -2,144,8,131,18,158,2,144,8,131,18,158,2,252,69,1,8,131,18,158,2, -144,8,131,18,158,2,252,19,1,8,131,18,158,9,8,131,18,158,2,144,8, -131,18,158,2,144,8,131,18,158,2,144,8,131,18,158,2,144,8,131,18,158, -2,159,8,131,18,158,93,16,2,158,94,16,2,158,2,252,70,1,8,131,9, -16,2,158,95,16,2,158,2,252,21,1,8,131,9,16,2,158,11,8,131,9, -16,2,158,2,47,8,131,9,8,131,9,8,131,9,8,131,18,158,2,144,8, -131,18,158,2,252,20,1,8,131,18,158,2,47,8,131,18,158,94,16,2,158, -2,252,61,1,8,131,9,16,2,158,11,8,131,9,8,131,18,158,2,144,8, -131,18,158,2,144,8,131,18,158,2,252,71,1,8,131,18,158,2,144,8,131, -18,158,2,252,19,1,8,131,18,158,93,16,2,158,2,142,8,131,9,8,131, -18,158,2,144,8,131,18,158,2,252,20,1,8,131,18,158,2,47,8,131,18, -158,2,252,70,1,8,131,18,158,2,144,8,131,18,158,2,62,8,131,18,158, -2,144,8,131,18,158,2,144,8,131,18,158,2,252,72,1,8,131,18,158,2, -144,8,131,18,158,2,252,19,1,8,131,18,158,93,16,2,158,2,252,73,1, -8,131,9,8,131,18,158,2,144,8,131,18,158,2,142,8,131,18,158,2,144, -8,131,18,158,2,252,19,1,8,131,18,158,9,8,131,18,158,2,144,8,131, -18,158,2,159,8,131,18,158,2,252,74,1,8,131,18,158,93,16,2,158,94, -16,2,158,2,252,64,1,8,131,9,16,2,158,2,252,64,1,8,131,9,8, -131,9,8,131,18,158,2,144,8,131,18,158,2,92,8,131,18,158,94,16,2, -158,94,16,2,158,2,252,75,1,8,131,9,16,2,158,2,252,64,1,8,131, -9,8,131,9,16,2,158,94,16,2,158,2,252,76,1,8,131,9,16,2,158, -2,252,73,1,8,131,9,8,131,9,8,131,18,158,2,144,8,131,18,158,94, -16,2,158,94,16,2,158,2,252,77,1,8,131,9,16,2,158,2,252,64,1, -8,131,9,8,131,9,16,2,158,2,252,73,1,8,131,9,8,131,18,158,2, -144,8,131,18,16,2,105,93,16,2,158,94,16,2,158,2,191,8,131,9,16, -2,158,94,16,2,158,2,252,74,1,8,131,9,16,2,158,94,16,2,158,2, -252,79,1,8,131,9,16,2,158,2,252,64,1,8,131,9,8,131,9,8,131, -9,8,131,9,8,141,8,28,59,58,57,56,55,13,16,3,33,2,173,2,107, -93,8,252,172,9,16,6,8,140,11,2,188,2,189,2,252,101,1,2,252,101, -1,16,4,8,139,11,2,199,2,252,102,1,16,4,8,138,11,2,201,2,252, -103,1,95,9,8,252,172,9,2,107,18,158,2,144,8,131,18,158,2,144,8, -131,18,158,2,144,8,131,18,158,2,144,8,131,18,158,2,144,8,131,18,158, -2,144,8,131,18,158,2,144,8,131,18,16,2,158,93,16,2,158,95,16,2, -158,2,252,80,1,8,131,9,16,2,158,2,252,69,1,8,131,9,16,2,158, -95,16,2,158,2,252,19,1,8,131,9,16,2,158,2,252,81,1,8,131,9, -16,2,158,95,16,2,158,2,252,19,1,8,131,9,16,2,158,9,8,131,9, -16,2,158,95,16,2,158,2,252,82,1,8,131,9,16,2,158,2,252,83,1, -8,131,9,16,2,158,2,252,81,1,8,131,9,8,131,9,8,131,9,8,131, -9,8,131,9,8,141,95,9,8,252,172,9,2,107,18,158,2,144,8,131,18, -158,2,144,8,131,18,158,2,144,8,131,18,158,2,144,8,131,18,158,2,144, -8,131,18,158,2,144,8,131,18,158,2,144,8,131,18,158,2,144,8,131,11, -16,5,93,2,57,89,162,32,33,57,9,223,0,27,249,22,209,83,160,41,32, -35,46,196,27,28,248,80,158,35,32,194,249,80,158,36,33,248,80,158,37,34, -196,27,248,80,158,38,35,197,28,248,80,158,38,32,193,28,248,80,158,38,36, -248,80,158,39,34,194,27,248,80,158,39,35,194,28,248,80,158,39,32,193,249, -80,158,40,37,248,80,158,41,34,195,248,80,158,41,36,248,80,158,42,35,196, -11,11,11,11,28,192,27,248,22,52,194,27,248,22,53,195,27,83,160,41,33, -37,46,250,22,209,83,160,41,34,40,46,250,22,209,83,160,41,35,43,46,250, -22,62,83,160,41,36,46,46,250,22,209,83,160,41,37,49,46,248,22,60,250, -22,209,83,160,41,38,53,46,249,22,60,83,160,41,39,55,46,23,19,83,160, -41,40,53,46,83,160,41,41,49,46,83,160,41,42,46,46,83,160,41,43,43, -46,195,27,89,162,32,32,51,2,162,225,3,4,2,27,89,162,32,32,36,2, -162,223,1,250,22,252,38,2,11,6,10,10,98,97,100,32,115,121,110,116,97, -120,195,27,28,248,80,158,37,32,195,249,80,158,38,33,248,80,158,39,34,197, -27,248,80,158,40,35,198,28,248,80,158,40,32,193,249,80,158,41,37,27,248, -80,158,43,34,196,28,248,80,158,43,38,193,248,22,59,248,80,158,44,39,194, -11,27,248,80,158,43,35,196,28,248,80,158,43,32,193,249,80,158,44,37,248, -80,158,45,34,195,248,80,158,45,36,248,80,158,46,35,196,11,11,11,28,192, -27,248,22,52,194,27,248,22,78,195,27,248,22,80,196,28,27,248,80,158,41, -39,27,83,160,41,44,42,46,250,22,209,83,160,41,45,45,46,199,195,87,94, -249,22,3,89,162,32,33,39,9,224,10,9,28,248,80,158,34,40,195,12,251, -22,252,38,2,11,6,17,17,110,111,116,32,97,110,32,105,100,101,110,116,105, -102,105,101,114,196,198,194,27,248,80,158,42,41,194,28,192,251,22,252,38,2, -11,6,20,20,100,117,112,108,105,99,97,116,101,32,105,100,101,110,116,105,102, -105,101,114,204,196,12,27,249,22,209,83,160,41,46,42,46,248,80,158,43,42, -27,83,160,41,47,44,46,250,22,209,83,160,41,48,47,46,201,195,27,28,248, -80,158,42,38,194,248,80,158,42,39,194,11,28,192,249,80,158,43,43,202,27, -250,22,61,198,200,201,27,83,160,41,49,45,46,91,159,33,11,90,161,33,32, -11,83,160,38,32,33,11,247,248,22,8,89,162,32,33,40,9,226,15,2,3, -1,250,22,31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10,247,22, -252,183,2,248,22,252,183,2,89,162,32,33,36,9,224,3,1,248,193,89,162, -32,32,36,9,224,2,3,28,248,22,252,180,2,193,248,22,252,185,2,193,249, -80,158,35,44,21,96,70,108,101,116,45,118,97,108,117,101,115,252,105,1,93, -94,94,64,116,101,109,112,252,106,1,2,156,2,252,24,1,95,64,115,101,116, -33,252,107,1,62,105,100,252,108,1,2,252,106,1,2,156,83,160,41,50,35, -46,89,162,32,32,56,9,225,6,5,4,27,250,22,209,83,160,41,51,38,46, -250,22,209,83,160,41,52,41,46,250,22,62,83,160,41,53,44,46,250,22,209, -83,160,41,54,47,46,248,22,60,250,22,209,83,160,41,55,51,46,249,22,60, -248,22,52,23,20,248,22,78,23,20,83,160,41,56,51,46,83,160,41,57,47, -46,250,22,2,89,162,33,33,41,9,223,15,250,22,209,83,160,41,58,35,46, -250,22,60,83,160,41,59,38,46,248,22,52,200,248,22,78,200,83,160,41,8, -28,35,46,248,22,80,206,248,22,52,206,83,160,41,8,29,41,46,197,89,162, -32,32,33,9,223,0,192,89,162,32,32,34,9,223,3,248,22,252,183,2,208, -248,80,158,42,45,83,160,41,8,30,42,46,247,196,247,193,27,28,248,80,158, -37,32,196,249,80,158,38,33,248,80,158,39,34,198,27,248,80,158,40,35,199, -28,248,80,158,40,32,193,249,80,158,41,37,27,248,80,158,43,34,196,28,248, -80,158,43,32,193,249,80,158,44,33,248,80,158,45,34,195,248,80,158,45,36, -248,80,158,46,35,196,11,27,248,80,158,43,35,196,28,248,80,158,43,32,193, -249,80,158,44,37,248,80,158,45,34,195,248,80,158,45,36,248,80,158,46,35, -196,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,80,196, -28,248,80,158,40,40,194,27,249,22,61,196,195,27,83,160,41,8,31,41,46, -250,22,209,83,160,41,8,32,44,46,250,22,209,83,160,41,8,33,47,46,250, -22,60,83,160,41,8,34,50,46,248,22,52,203,248,22,53,203,83,160,41,8, -35,47,46,195,247,196,247,193,32,20,97,158,16,14,2,65,2,68,2,70,2, -72,2,76,2,74,2,78,2,80,2,163,30,252,109,1,2,118,2,127,0,30, -252,110,1,2,105,2,124,0,2,164,2,166,2,234,16,36,18,98,2,82,8, -143,36,35,34,16,4,8,142,11,2,252,25,1,3,1,7,101,110,118,51,55, -56,53,252,111,1,18,16,2,95,2,135,8,144,93,8,252,194,9,95,9,8, -252,194,9,2,107,18,100,2,136,8,147,36,35,34,8,142,16,6,8,146,11, -3,1,4,103,52,57,56,252,112,1,3,1,4,103,52,57,57,252,113,1,3, -1,7,101,110,118,51,55,57,49,252,114,1,2,252,114,1,16,6,8,145,11, -2,141,2,252,24,1,3,1,7,101,110,118,51,55,57,50,252,115,1,2,252, -115,1,18,158,2,144,8,147,18,158,2,252,105,1,8,147,18,158,2,144,8, -147,18,158,2,144,8,147,18,158,9,8,147,18,158,2,144,8,147,18,158,2, -144,8,147,18,16,2,103,93,16,2,158,93,16,2,158,64,118,111,105,100,252, -116,1,8,147,9,8,147,9,8,149,8,28,59,58,57,56,55,13,16,3,33, -2,173,2,107,93,8,252,194,9,16,6,8,148,11,2,188,2,189,3,1,7, -101,110,118,51,55,57,54,252,117,1,2,252,117,1,95,9,8,252,194,9,2, -107,18,158,2,144,8,147,18,16,2,95,2,135,8,150,93,8,252,195,9,95, -9,8,252,195,9,2,107,18,100,2,136,8,153,36,35,34,8,142,16,8,8, -152,11,3,1,4,103,52,57,50,252,118,1,3,1,4,103,52,57,51,252,119, -1,3,1,4,103,52,57,52,252,120,1,3,1,7,101,110,118,51,56,48,54, -252,121,1,2,252,121,1,2,252,121,1,16,8,8,151,11,2,141,2,252,108, -1,2,252,24,1,3,1,7,101,110,118,51,56,48,55,252,122,1,2,252,122, -1,2,252,122,1,18,158,2,82,8,153,18,16,2,95,2,135,8,154,93,8, -252,199,9,95,9,8,252,199,9,2,107,18,158,2,136,8,153,18,16,2,95, -2,135,8,155,93,8,252,202,9,95,9,8,252,202,9,2,107,18,16,2,99, -2,156,8,160,93,8,252,202,9,16,6,8,159,11,2,188,2,189,3,1,7, -101,110,118,51,56,50,52,252,123,1,2,252,123,1,16,4,8,158,11,2,199, -3,1,7,101,110,118,51,56,50,53,252,124,1,16,4,8,157,11,2,201,3, -1,7,101,110,118,51,56,50,54,252,125,1,16,4,8,156,11,2,203,3,1, -7,101,110,118,51,56,50,56,252,126,1,95,9,8,252,202,9,2,107,18,102, -2,136,8,165,36,35,34,8,142,16,8,8,164,11,2,252,118,1,2,252,119, -1,2,252,120,1,2,252,121,1,2,252,121,1,2,252,121,1,16,8,8,163, -11,2,141,2,252,108,1,2,252,24,1,2,252,122,1,2,252,122,1,2,252, -122,1,16,4,8,162,11,3,1,4,103,53,48,50,252,127,1,3,1,7,101, -110,118,51,56,50,48,252,128,1,16,4,8,161,11,2,252,106,1,3,1,7, -101,110,118,51,56,50,49,252,129,1,18,158,2,144,8,165,18,158,2,252,105, -1,8,165,18,158,2,144,8,165,18,158,2,144,8,165,18,158,2,144,8,165, -18,158,2,144,8,165,18,158,2,144,8,165,18,158,2,252,107,1,8,165,18, -158,2,144,8,165,18,158,2,144,8,165,18,16,2,158,94,16,2,98,2,252, -106,1,8,169,93,8,252,198,9,16,4,8,168,11,3,1,8,119,115,116,109, -112,53,48,48,252,130,1,3,1,7,101,110,118,51,56,49,53,252,131,1,16, -4,8,167,11,3,1,4,103,53,48,49,252,132,1,3,1,7,101,110,118,51, -56,51,55,252,133,1,16,4,8,166,11,2,252,11,1,3,1,7,101,110,118, -51,56,51,56,252,134,1,9,16,2,158,2,156,8,169,9,8,169,95,9,8, -252,198,9,2,105,18,16,2,95,2,135,8,170,93,8,252,205,9,95,9,8, -252,205,9,2,107,18,100,2,136,8,173,36,35,34,8,142,16,8,8,172,11, -3,1,4,103,52,57,53,252,135,1,3,1,4,103,52,57,54,252,136,1,3, -1,4,103,52,57,55,252,137,1,3,1,7,101,110,118,51,56,52,53,252,138, -1,2,252,138,1,2,252,138,1,16,8,8,171,11,2,141,2,252,108,1,2, -252,24,1,3,1,7,101,110,118,51,56,52,54,252,139,1,2,252,139,1,2, -252,139,1,18,158,2,144,8,173,18,158,2,252,107,1,8,173,18,158,2,144, -8,173,11,16,5,93,2,52,89,162,32,33,8,32,9,223,0,27,249,22,209, -83,160,41,32,35,39,196,27,28,248,80,158,35,32,194,249,80,158,36,33,248, -80,158,37,34,196,27,248,80,158,38,35,197,28,248,80,158,38,32,193,249,80, -158,39,33,248,80,158,40,34,195,27,248,80,158,41,35,196,28,248,80,158,41, -32,193,249,80,158,42,33,248,80,158,43,34,195,27,248,80,158,44,35,196,28, -248,80,158,44,36,193,248,80,158,44,37,193,11,11,11,11,28,192,27,248,22, -52,194,27,248,22,78,195,27,248,22,87,196,27,248,22,88,197,249,80,158,40, -38,201,27,250,22,61,198,199,200,27,83,160,41,33,42,39,250,22,209,83,160, -41,34,45,39,250,22,209,83,160,41,35,48,39,249,22,60,83,160,41,36,50, -39,250,22,209,83,160,41,37,53,39,251,22,62,83,160,41,38,57,39,250,22, -209,83,160,41,39,8,28,39,248,22,60,248,22,80,23,21,83,160,41,40,8, -28,39,248,22,78,23,17,248,22,52,23,17,83,160,41,41,53,39,83,160,41, -42,48,39,195,250,22,252,38,2,11,6,10,10,98,97,100,32,115,121,110,116, -97,120,196,32,20,97,158,16,7,2,65,2,68,2,70,2,72,2,78,2,80, -2,164,16,11,18,98,2,82,8,175,36,35,34,16,4,8,174,11,2,252,25, -1,3,1,7,101,110,118,51,56,53,50,252,140,1,18,16,2,95,2,135,8, -176,93,8,252,215,9,95,9,8,252,215,9,2,107,18,100,2,136,8,179,36, -35,34,8,174,16,10,8,178,11,3,1,4,103,53,48,51,252,141,1,3,1, -4,103,53,48,52,252,142,1,3,1,4,103,53,48,53,252,143,1,3,1,4, -103,53,48,54,252,144,1,3,1,7,101,110,118,51,56,53,57,252,145,1,2, -252,145,1,2,252,145,1,2,252,145,1,16,10,8,177,11,2,141,2,226,65, -98,111,100,121,49,252,146,1,2,252,69,1,3,1,7,101,110,118,51,56,54, -48,252,147,1,2,252,147,1,2,252,147,1,2,252,147,1,18,158,2,144,8, -179,18,158,67,99,97,108,108,47,99,99,252,148,1,8,179,18,158,2,144,8, -179,18,158,2,252,19,1,8,179,18,158,2,144,8,179,18,158,2,144,8,179, -18,158,2,144,8,179,18,158,2,144,8,179,11,16,5,93,2,54,89,162,32, -33,55,9,223,0,27,249,22,209,83,160,41,32,35,41,196,27,28,248,80,158, -35,32,194,249,80,158,36,33,248,80,158,37,34,196,27,248,80,158,38,35,197, -28,248,80,158,38,32,193,249,80,158,39,33,248,80,158,40,34,195,27,248,80, -158,41,35,196,28,248,80,158,41,32,193,249,80,158,42,36,27,248,80,158,44, -34,196,28,248,80,158,44,37,193,248,22,59,248,80,158,45,38,194,11,27,248, -80,158,44,35,196,28,248,80,158,44,32,193,249,80,158,45,33,248,80,158,46, -34,195,27,248,80,158,47,35,196,28,248,80,158,47,37,193,248,80,158,47,38, -193,11,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22, -87,196,27,248,22,90,197,27,248,22,89,198,249,80,158,41,39,202,27,251,22, -61,201,202,199,200,27,83,160,41,33,43,41,91,159,33,11,90,161,33,32,11, -83,160,38,32,33,11,247,248,22,8,89,162,32,33,40,9,226,13,2,3,1, -250,22,31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10,247,22,252, -183,2,248,22,252,183,2,89,162,32,33,36,9,224,3,1,248,193,89,162,32, -32,36,9,224,2,3,28,248,22,252,180,2,193,248,22,252,185,2,193,249,80, -158,35,40,21,98,2,159,9,95,2,86,64,98,97,115,101,252,149,1,94,65, -102,105,101,108,100,252,150,1,2,156,2,252,146,1,2,252,69,1,2,156,83, -160,41,34,35,41,89,162,32,32,54,9,225,6,5,4,27,250,22,209,83,160, -41,35,38,41,250,22,209,83,160,41,36,41,41,252,22,62,83,160,41,37,46, -41,83,160,41,38,46,41,250,22,209,83,160,41,39,49,41,250,22,60,83,160, -41,40,52,41,248,22,78,23,19,248,22,52,23,19,83,160,41,41,49,41,248, -22,88,205,248,22,87,205,83,160,41,42,41,41,197,89,162,32,32,33,9,223, -0,192,89,162,32,32,34,9,223,3,248,22,252,183,2,208,250,22,252,38,2, -11,6,10,10,98,97,100,32,115,121,110,116,97,120,196,32,20,97,158,16,9, -2,65,2,68,2,70,2,72,2,74,2,78,2,80,2,164,2,166,16,11,18, -98,2,82,8,181,36,35,34,16,4,8,180,11,2,252,25,1,3,1,7,101, -110,118,51,56,54,56,252,151,1,18,16,2,95,2,135,8,182,93,8,252,228, -9,95,9,8,252,228,9,2,107,18,16,2,99,2,156,8,187,93,8,252,228, -9,16,6,8,186,11,2,188,2,189,3,1,7,101,110,118,51,56,56,53,252, -152,1,2,252,152,1,16,4,8,185,11,2,199,3,1,7,101,110,118,51,56, -56,54,252,153,1,16,4,8,184,11,2,201,3,1,7,101,110,118,51,56,56, -55,252,154,1,16,4,8,183,11,2,203,3,1,7,101,110,118,51,56,56,57, -252,155,1,95,9,8,252,228,9,2,107,18,100,2,136,8,190,36,35,34,8, -180,16,12,8,189,11,3,1,4,103,53,48,55,252,156,1,3,1,4,103,53, -48,56,252,157,1,3,1,4,103,53,48,57,252,158,1,3,1,4,103,53,49, -48,252,159,1,3,1,4,103,53,49,49,252,160,1,3,1,7,101,110,118,51, -56,55,55,252,161,1,2,252,161,1,2,252,161,1,2,252,161,1,2,252,161, -1,16,12,8,188,11,2,141,2,252,149,1,2,252,150,1,2,252,146,1,2, -252,69,1,3,1,7,101,110,118,51,56,55,56,252,162,1,2,252,162,1,2, -252,162,1,2,252,162,1,2,252,162,1,18,158,2,144,8,190,18,158,2,159, -8,190,18,158,9,8,190,18,158,2,144,8,190,18,158,2,86,8,190,18,158, -2,144,8,190,18,158,2,144,8,190,11,16,5,93,2,55,89,162,32,33,54, -9,223,0,27,249,22,209,83,160,41,32,35,46,196,27,28,248,80,158,35,32, -194,249,80,158,36,33,248,80,158,37,34,196,27,248,80,158,38,35,197,28,248, -80,158,38,32,193,28,248,80,158,38,36,248,80,158,39,34,194,27,248,80,158, -39,35,194,28,248,80,158,39,32,193,249,80,158,40,33,248,80,158,41,34,195, -27,248,80,158,42,35,196,28,248,80,158,42,37,193,248,80,158,42,38,193,11, -11,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,80,196, -249,80,158,39,39,200,27,249,22,61,197,198,27,83,160,41,33,41,46,250,22, -209,83,160,41,34,44,46,250,22,209,83,160,41,35,47,46,251,22,62,83,160, -41,36,51,46,83,160,41,37,51,46,248,22,53,204,248,22,52,204,83,160,41, -38,47,46,195,27,28,248,80,158,36,32,195,249,80,158,37,33,248,80,158,38, -34,197,27,248,80,158,39,35,198,28,248,80,158,39,32,193,249,80,158,40,40, -27,248,80,158,42,34,196,28,248,80,158,42,37,193,248,22,8,89,162,32,33, -39,9,224,10,1,27,249,22,2,89,162,32,33,45,9,224,4,5,249,80,158, -35,41,28,248,80,158,36,32,197,249,80,158,37,33,248,80,158,38,34,199,27, -248,80,158,39,35,200,28,248,80,158,39,32,193,249,80,158,40,33,248,80,158, -41,34,195,248,80,158,41,36,248,80,158,42,35,196,11,11,194,248,80,158,37, -38,196,28,248,22,57,193,21,94,9,9,248,80,158,35,42,193,11,27,248,80, -158,42,35,196,28,248,80,158,42,32,193,249,80,158,43,33,248,80,158,44,34, -195,27,248,80,158,45,35,196,28,248,80,158,45,37,193,248,80,158,45,38,193, -11,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196, -27,248,22,90,197,27,248,22,89,198,27,249,22,209,83,160,41,39,43,46,248, -80,158,44,43,27,83,160,41,40,45,46,250,22,209,83,160,41,41,48,46,203, -195,27,28,248,80,158,43,37,194,248,80,158,43,38,194,11,28,192,249,80,158, -44,39,205,27,252,22,61,200,205,202,203,204,27,83,160,41,42,46,46,91,159, -33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,8,89,162,32,33, -40,9,226,16,2,3,1,250,22,31,89,162,32,32,36,9,225,6,3,7,90, -161,33,33,10,247,22,252,183,2,248,22,252,183,2,89,162,32,33,36,9,224, -3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22,252,180,2,193,248, -22,252,185,2,193,249,80,158,35,44,21,95,2,159,94,94,63,116,109,112,252, -163,1,2,252,39,1,2,156,95,2,159,93,94,64,115,119,97,112,252,164,1, -96,2,252,19,1,9,96,2,159,93,94,2,247,2,252,163,1,95,2,252,107, -1,2,252,163,1,64,110,97,109,101,252,165,1,95,2,252,107,1,2,252,165, -1,2,247,2,156,96,72,100,121,110,97,109,105,99,45,119,105,110,100,252,166, -1,2,252,164,1,97,2,252,19,1,9,2,252,146,1,2,252,69,1,2,156, -2,252,164,1,83,160,41,43,35,46,89,162,32,32,8,40,9,225,6,5,4, -27,250,22,209,83,160,41,44,38,46,250,22,209,83,160,41,45,41,46,250,22, -60,83,160,41,46,44,46,250,22,2,89,162,33,33,41,9,223,15,250,22,209, -83,160,41,47,35,46,249,22,60,248,22,52,199,248,22,78,199,83,160,41,48, -35,46,248,22,52,206,248,22,89,206,250,22,209,83,160,41,49,47,46,250,22, -60,83,160,41,50,50,46,250,22,209,83,160,41,51,53,46,248,22,60,250,22, -209,83,160,41,52,57,46,249,22,60,83,160,41,53,59,46,250,22,209,83,160, -41,54,8,30,46,250,22,62,83,160,41,55,8,33,46,83,160,41,56,8,33, -46,252,22,2,89,162,33,33,51,9,223,38,250,22,209,83,160,41,57,35,46, -251,22,60,83,160,41,58,39,46,250,22,209,83,160,41,59,42,46,248,22,60, -250,22,209,83,160,41,8,28,46,46,249,22,60,83,160,41,8,29,48,46,248, -22,52,23,18,83,160,41,8,30,46,46,83,160,41,8,31,42,46,250,22,209, -83,160,41,8,32,42,46,250,22,60,83,160,41,8,33,45,46,248,22,52,23, -15,248,22,87,23,15,83,160,41,8,34,42,46,250,22,209,83,160,41,8,35, -42,46,250,22,62,83,160,41,8,36,45,46,248,22,87,23,15,83,160,41,8, -37,45,46,83,160,41,8,38,42,46,83,160,41,8,39,35,46,248,22,52,23, -37,248,22,52,23,37,248,22,78,23,37,248,22,78,23,37,83,160,41,8,40, -8,30,46,83,160,41,8,41,57,46,83,160,41,8,42,53,46,250,22,209,83, -160,41,8,43,53,46,251,22,62,83,160,41,8,44,57,46,83,160,41,8,45, -57,46,250,22,209,83,160,41,8,46,8,28,46,251,22,62,83,160,41,8,47, -8,32,46,83,160,41,8,48,8,32,46,248,22,90,23,31,248,22,87,23,31, -83,160,41,8,49,8,28,46,83,160,41,8,50,57,46,83,160,41,8,51,53, -46,83,160,41,8,52,47,46,83,160,41,8,53,41,46,197,89,162,32,32,33, -9,223,0,192,89,162,32,32,34,9,223,3,248,22,252,183,2,208,248,80,158, -43,45,83,160,41,8,54,43,46,250,22,252,38,2,11,6,10,10,98,97,100, -32,115,121,110,116,97,120,197,32,20,97,158,16,14,2,65,2,68,2,70,2, -72,2,76,2,78,2,80,2,164,2,74,2,232,2,233,2,252,110,1,2,166, -2,234,16,55,18,98,2,82,8,192,36,35,34,16,4,8,191,11,2,252,25, -1,3,1,7,101,110,118,51,56,57,54,252,167,1,18,16,2,95,2,135,8, -193,93,8,252,247,9,95,9,8,252,247,9,2,107,18,100,2,136,8,196,36, -35,34,8,191,16,8,8,195,11,3,1,4,103,53,49,55,252,168,1,3,1, -4,103,53,49,56,252,169,1,3,1,4,103,53,49,57,252,170,1,3,1,7, -101,110,118,51,57,48,51,252,171,1,2,252,171,1,2,252,171,1,16,8,8, -194,11,2,141,2,252,146,1,2,252,69,1,3,1,7,101,110,118,51,57,48, -52,252,172,1,2,252,172,1,2,252,172,1,18,158,2,144,8,196,18,158,2, -159,8,196,18,158,9,8,196,18,158,2,144,8,196,18,100,2,82,8,199,36, -35,34,8,191,16,12,8,198,11,3,1,4,103,53,49,50,252,173,1,3,1, -4,103,53,49,51,252,174,1,3,1,4,103,53,49,52,252,175,1,3,1,4, -103,53,49,53,252,176,1,3,1,4,103,53,49,54,252,177,1,3,1,7,101, -110,118,51,57,50,48,252,178,1,2,252,178,1,2,252,178,1,2,252,178,1, -2,252,178,1,16,12,8,197,11,2,141,2,252,165,1,2,252,39,1,2,252, -146,1,2,252,69,1,3,1,7,101,110,118,51,57,50,49,252,179,1,2,252, -179,1,2,252,179,1,2,252,179,1,2,252,179,1,18,16,2,95,2,135,8, -200,93,8,252,250,9,95,9,8,252,250,9,2,107,18,158,2,136,8,199,18, -16,2,95,2,135,8,201,93,8,252,253,9,95,9,8,252,253,9,2,107,18, -16,2,99,2,156,8,206,93,8,252,253,9,16,6,8,205,11,2,188,2,189, -3,1,7,101,110,118,51,57,51,55,252,180,1,2,252,180,1,16,4,8,204, -11,2,199,3,1,7,101,110,118,51,57,51,56,252,181,1,16,4,8,203,11, -2,201,3,1,7,101,110,118,51,57,51,57,252,182,1,16,4,8,202,11,2, -203,3,1,7,101,110,118,51,57,52,49,252,183,1,95,9,8,252,253,9,2, -107,18,102,2,136,8,209,36,35,34,8,191,8,198,8,197,16,4,8,208,11, -3,1,4,103,53,50,50,252,184,1,3,1,7,101,110,118,51,57,51,51,252, -185,1,16,4,8,207,11,2,252,163,1,3,1,7,101,110,118,51,57,51,52, -252,186,1,18,158,2,144,8,209,18,158,2,159,8,209,18,158,2,144,8,209, -18,158,2,144,8,209,18,158,2,144,8,209,18,158,2,159,8,209,18,158,2, -144,8,209,18,158,2,144,8,209,18,158,2,252,164,1,8,209,18,158,2,144, -8,209,18,158,2,252,19,1,8,209,18,158,9,8,209,18,158,2,144,8,209, -18,158,2,159,8,209,18,158,2,144,8,209,18,158,2,144,8,209,18,158,2, -247,8,209,18,158,2,144,8,209,18,158,2,144,8,209,18,158,2,144,8,209, -18,158,2,252,107,1,8,209,18,158,2,144,8,209,18,158,2,144,8,209,18, -158,2,252,107,1,8,209,18,16,2,106,93,16,2,158,2,247,8,209,9,8, -214,8,28,59,58,57,56,55,13,16,3,33,2,173,2,107,93,8,252,253,9, -16,6,8,213,11,2,188,2,189,2,252,180,1,2,252,180,1,16,4,8,212, -11,2,199,2,252,181,1,16,4,8,211,11,2,201,2,252,182,1,16,4,8, -210,11,64,118,97,108,115,252,187,1,3,1,7,101,110,118,51,57,52,55,252, -188,1,95,9,8,252,253,9,2,107,18,158,2,144,8,209,18,158,2,144,8, -209,18,158,2,144,8,209,18,158,2,144,8,209,18,158,2,144,8,209,18,158, -2,144,8,209,18,158,2,252,166,1,8,209,18,158,2,252,164,1,8,209,18, -158,2,144,8,209,18,158,2,252,19,1,8,209,18,158,9,8,209,18,158,2, -144,8,209,18,16,2,105,93,16,2,158,2,252,164,1,8,209,9,8,215,8, -28,59,58,57,56,55,13,16,3,33,2,173,2,107,93,8,252,253,9,8,213, -8,212,8,211,95,9,8,252,253,9,2,107,18,158,2,144,8,209,18,158,2, -144,8,209,18,158,2,144,8,209,18,16,2,158,94,16,2,98,2,252,163,1, -8,219,93,8,252,249,9,16,4,8,218,11,3,1,8,119,115,116,109,112,53, -50,48,252,189,1,3,1,7,101,110,118,51,57,50,56,252,190,1,16,4,8, -217,11,3,1,4,103,53,50,49,252,191,1,3,1,7,101,110,118,51,57,53, -50,252,192,1,16,4,8,216,11,2,252,11,1,3,1,7,101,110,118,51,57, -53,51,252,193,1,9,16,2,158,2,156,8,219,9,8,219,95,9,8,252,249, -9,2,105,11,16,5,93,2,60,89,162,32,33,8,43,9,223,0,27,249,22, -209,83,160,41,32,35,39,196,27,28,248,80,158,35,32,194,249,80,158,36,33, -248,80,158,37,34,196,27,248,80,158,38,35,197,28,248,80,158,38,32,193,249, -80,158,39,33,248,80,158,40,34,195,27,248,80,158,41,35,196,28,248,80,158, -41,36,193,248,80,158,41,37,193,11,11,11,28,192,27,248,22,52,194,27,248, -22,78,195,27,248,22,80,196,249,80,158,39,38,200,27,249,22,61,197,198,27, -83,160,41,33,41,39,250,22,209,83,160,41,34,44,39,250,22,209,83,160,41, -35,47,39,250,22,62,83,160,41,36,50,39,250,22,209,83,160,41,37,53,39, -248,22,60,250,22,209,83,160,41,38,57,39,249,22,60,83,160,41,39,59,39, -250,22,209,83,160,41,40,8,30,39,250,22,62,83,160,41,41,8,33,39,250, -22,209,83,160,41,42,8,36,39,251,22,62,83,160,41,43,8,40,39,83,160, -41,44,8,40,39,248,22,53,23,33,248,22,52,23,33,83,160,41,45,8,36, -39,83,160,41,46,8,33,39,83,160,41,47,8,30,39,83,160,41,48,57,39, -83,160,41,49,53,39,83,160,41,50,50,39,83,160,41,51,47,39,195,250,22, -252,38,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,196,32,20,97, -158,16,7,2,65,2,68,2,70,2,72,2,78,2,80,2,164,16,20,18,98, -2,82,8,221,36,35,34,16,4,8,220,11,2,252,25,1,3,1,7,101,110, -118,51,57,53,54,252,194,1,18,16,2,95,2,135,8,222,93,8,252,8,10, -95,9,8,252,8,10,2,107,18,100,2,136,8,225,36,35,34,8,220,16,8, -8,224,11,3,1,4,103,53,50,51,252,195,1,3,1,4,103,53,50,52,252, -196,1,3,1,4,103,53,50,53,252,197,1,3,1,7,101,110,118,51,57,54, -50,252,198,1,2,252,198,1,2,252,198,1,16,8,8,223,11,2,141,2,252, -23,1,2,252,24,1,3,1,7,101,110,118,51,57,54,51,252,199,1,2,252, -199,1,2,252,199,1,18,158,2,144,8,225,18,158,2,252,105,1,8,225,18, -158,2,144,8,225,18,158,2,144,8,225,18,158,96,16,2,158,2,155,8,225, -9,16,2,158,63,99,112,117,252,200,1,8,225,9,16,2,158,64,117,115,101, -114,252,201,1,8,225,9,16,2,158,62,103,99,252,202,1,8,225,9,8,225, -18,158,2,144,8,225,18,158,70,116,105,109,101,45,97,112,112,108,121,252,203, -1,8,225,18,158,2,144,8,225,18,158,2,252,19,1,8,225,18,158,9,8, -225,18,158,2,144,8,225,18,16,2,103,93,16,2,158,64,110,117,108,108,252, -204,1,8,225,9,8,227,8,28,59,58,57,56,55,13,16,3,33,2,173,2, -107,93,8,252,8,10,16,6,8,226,11,2,188,2,189,3,1,7,101,110,118, -51,57,54,56,252,205,1,2,252,205,1,95,9,8,252,8,10,2,107,18,158, -2,144,8,225,18,158,2,144,8,225,18,158,2,144,8,225,18,16,2,158,94, -16,2,158,97,16,2,158,66,112,114,105,110,116,102,252,206,1,8,225,9,16, -2,158,6,40,40,99,112,117,32,116,105,109,101,58,32,126,115,32,114,101,97, -108,32,116,105,109,101,58,32,126,115,32,103,99,32,116,105,109,101,58,32,126, -115,126,110,8,225,9,16,2,158,2,252,200,1,8,225,9,16,2,158,2,252, -201,1,8,225,9,16,2,158,2,252,202,1,8,225,9,8,225,9,16,2,158, -95,16,2,158,2,252,82,1,8,225,9,16,2,158,2,252,83,1,8,225,9, -16,2,158,2,155,8,225,9,8,225,9,8,227,95,9,8,252,8,10,2,107, -18,158,2,144,8,225,11,100,83,159,32,97,80,159,32,32,33,80,159,32,33, -33,80,159,32,34,33,80,159,32,35,33,80,159,32,36,33,27,247,22,252,112, -2,87,94,28,192,28,248,22,252,111,2,193,12,250,22,252,39,2,2,86,6, -15,15,105,110,115,112,101,99,116,111,114,32,111,114,32,35,102,195,12,91,159, -37,11,90,161,37,32,11,254,22,252,89,2,2,101,11,33,32,11,9,204,252, -22,7,197,198,199,250,22,252,91,2,203,32,61,112,252,207,1,250,22,252,92, -2,204,32,2,252,207,1,83,159,32,93,80,159,32,37,33,89,162,32,33,39, -2,14,223,0,87,94,28,248,80,159,33,34,34,194,12,250,22,252,39,2,2, -14,6,7,7,112,114,111,109,105,115,101,196,27,248,80,159,34,35,34,195,28, -248,22,0,193,27,249,22,6,195,22,59,87,94,28,248,22,0,248,80,159,36, -35,34,197,249,80,159,36,36,34,197,194,12,249,22,1,22,7,248,80,159,37, -35,34,198,249,22,1,22,7,194,83,159,32,93,80,159,32,38,33,89,162,32, -32,36,2,16,223,0,248,80,158,33,39,249,22,19,11,80,158,35,40,83,159, -32,93,80,159,32,41,33,89,162,32,34,40,2,23,223,0,87,95,28,248,22, -252,221,2,194,12,252,22,252,39,2,2,23,6,16,16,112,97,114,97,109,101, -116,101,114,105,122,97,116,105,111,110,32,198,199,28,28,248,22,0,195,249,22, -34,196,32,11,12,252,22,252,39,2,2,23,6,19,19,112,114,111,99,101,100, -117,114,101,32,40,97,114,105,116,121,32,48,41,33,198,199,20,14,159,80,158, -32,40,193,247,194,83,159,32,97,80,159,32,42,33,80,159,32,43,33,80,159, -32,44,33,80,159,32,45,33,80,159,32,46,33,252,22,252,89,2,2,97,11, -33,32,11,83,159,32,97,80,159,32,47,33,80,159,32,48,33,80,159,32,49, -33,80,159,32,50,33,80,159,32,51,33,27,247,22,252,112,2,87,94,28,192, -28,248,22,252,8,2,248,22,252,111,2,194,250,22,252,39,2,2,86,6,15, -15,105,110,115,112,101,99,116,111,114,32,111,114,32,35,102,195,12,12,91,159, -37,11,90,161,37,32,11,254,22,252,89,2,2,97,11,33,32,11,9,204,252, -22,7,197,198,199,250,22,252,91,2,203,32,64,99,101,108,108,252,208,1,250, -22,252,92,2,204,32,2,252,208,1,83,159,32,93,80,159,32,52,33,89,162, -32,32,36,2,45,223,0,248,80,159,33,43,34,249,22,19,11,80,158,35,53, -83,159,32,93,80,159,32,54,33,89,162,32,34,40,2,49,223,0,87,95,28, -248,80,159,33,44,34,194,12,252,22,252,39,2,2,49,6,22,22,98,114,101, -97,107,32,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,32,198, -199,28,28,248,22,0,195,249,22,34,196,32,11,12,252,22,252,39,2,2,23, -6,19,19,112,114,111,99,101,100,117,114,101,32,40,97,114,105,116,121,32,48, -41,33,198,199,83,158,36,20,92,94,20,14,159,80,158,32,53,249,80,159,34, -45,34,195,32,87,94,247,80,158,32,55,247,194,247,80,158,32,55,96,68,35, -37,107,101,114,110,101,108,252,209,1,74,35,37,115,109,97,108,108,45,115,99, -104,101,109,101,252,210,1,2,89,2,18,96,2,252,209,1,2,66,2,118,2, -112,0}; - EVAL_ONE_SIZED_STR((char *)expr, 23479); +41,35,196,28,248,80,158,41,36,193,248,80,158,41,37,193,11,11,11,28,192, +27,248,22,52,194,27,248,22,78,195,27,248,22,80,196,249,80,158,39,38,200, +27,249,22,61,197,198,27,20,15,159,41,33,39,250,22,209,20,15,159,44,34, +39,250,22,209,20,15,159,47,35,39,250,22,62,20,15,159,50,36,39,250,22, +209,20,15,159,53,37,39,248,22,60,250,22,209,20,15,159,57,38,39,249,22, +60,20,15,159,59,39,39,250,22,209,20,15,159,8,30,40,39,250,22,62,20, +15,159,8,33,41,39,250,22,209,20,15,159,8,36,42,39,251,22,62,20,15, +159,8,40,43,39,20,15,159,8,40,44,39,248,22,53,23,33,248,22,52,23, +33,20,15,159,8,36,45,39,20,15,159,8,33,46,39,20,15,159,8,30,47, +39,20,15,159,57,48,39,20,15,159,53,49,39,20,15,159,50,50,39,20,15, +159,47,51,39,195,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110, +116,97,120,196,32,20,98,158,16,7,2,65,2,68,2,70,2,72,2,78,2, +80,2,122,16,20,18,98,2,82,8,219,36,35,34,16,4,8,218,11,2,236, +3,1,7,101,110,118,51,57,53,54,252,153,1,18,16,2,95,2,91,8,220, +93,8,252,8,10,95,9,8,252,8,10,2,92,18,100,2,93,8,223,36,35, +34,8,218,16,8,8,222,11,3,1,4,103,53,50,51,252,154,1,3,1,4, +103,53,50,52,252,155,1,3,1,4,103,53,50,53,252,156,1,3,1,7,101, +110,118,51,57,54,50,252,157,1,2,252,157,1,2,252,157,1,16,8,8,221, +11,2,98,2,234,2,235,3,1,7,101,110,118,51,57,54,51,252,158,1,2, +252,158,1,2,252,158,1,18,158,2,101,8,223,18,158,2,252,61,1,8,223, +18,158,2,101,8,223,18,158,2,101,8,223,18,158,96,16,2,158,2,112,8, +223,9,16,2,158,63,99,112,117,252,159,1,8,223,9,16,2,158,64,117,115, +101,114,252,160,1,8,223,9,16,2,158,62,103,99,252,161,1,8,223,9,8, +223,18,158,2,101,8,223,18,158,70,116,105,109,101,45,97,112,112,108,121,252, +162,1,8,223,18,158,2,101,8,223,18,158,2,230,8,223,18,158,9,8,223, +18,158,2,101,8,223,18,16,2,103,93,16,2,158,64,110,117,108,108,252,163, +1,8,223,9,8,225,8,28,59,58,57,56,55,13,16,3,33,2,134,2,92, +93,8,252,8,10,16,6,8,224,11,2,140,2,141,3,1,7,101,110,118,51, +57,54,56,252,164,1,2,252,164,1,95,9,8,252,8,10,2,92,18,158,2, +101,8,223,18,158,2,101,8,223,18,158,2,101,8,223,18,16,2,158,94,16, +2,158,97,16,2,158,66,112,114,105,110,116,102,252,165,1,8,223,9,16,2, +158,6,40,40,99,112,117,32,116,105,109,101,58,32,126,115,32,114,101,97,108, +32,116,105,109,101,58,32,126,115,32,103,99,32,116,105,109,101,58,32,126,115, +126,110,8,223,9,16,2,158,2,252,159,1,8,223,9,16,2,158,2,252,160, +1,8,223,9,16,2,158,2,252,161,1,8,223,9,8,223,9,16,2,158,95, +16,2,158,2,252,38,1,8,223,9,16,2,158,2,252,39,1,8,223,9,16, +2,158,2,112,8,223,9,8,223,9,8,225,95,9,8,252,8,10,2,92,18, +158,2,101,8,223,11,100,83,159,32,97,80,159,32,32,33,80,159,32,33,33, +80,159,32,34,33,80,159,32,35,33,80,159,32,36,33,27,247,22,252,113,2, +87,94,28,192,28,248,22,252,112,2,193,12,250,22,252,40,2,2,252,107,1, +6,15,15,105,110,115,112,101,99,116,111,114,32,111,114,32,35,102,195,12,91, +159,37,11,90,161,37,32,11,254,22,252,90,2,2,86,11,33,32,11,9,204, +252,22,7,197,198,199,250,22,252,92,2,203,32,61,112,252,166,1,250,22,252, +93,2,204,32,2,252,166,1,83,159,32,93,80,159,32,37,33,89,162,32,33, +39,2,14,223,0,87,94,28,248,80,159,33,34,34,194,12,250,22,252,40,2, +2,14,6,7,7,112,114,111,109,105,115,101,196,27,248,80,159,34,35,34,195, +28,248,22,0,193,27,249,22,6,195,22,59,87,94,28,248,22,0,248,80,159, +36,35,34,197,249,80,159,36,36,34,197,194,12,249,22,1,22,7,248,80,159, +37,35,34,198,249,22,1,22,7,194,83,159,32,93,80,159,32,38,33,89,162, +32,32,36,2,16,223,0,248,80,158,33,39,249,22,19,11,80,158,35,40,83, +159,32,93,80,159,32,41,33,89,162,32,34,40,2,23,223,0,87,95,28,248, +22,252,222,2,194,12,252,22,252,40,2,2,23,6,16,16,112,97,114,97,109, +101,116,101,114,105,122,97,116,105,111,110,32,198,199,28,28,248,22,0,195,249, +22,34,196,32,11,12,252,22,252,40,2,2,23,6,19,19,112,114,111,99,101, +100,117,114,101,32,40,97,114,105,116,121,32,48,41,33,198,199,20,14,159,80, +158,32,40,193,247,194,83,159,32,97,80,159,32,42,33,80,159,32,43,33,80, +159,32,44,33,80,159,32,45,33,80,159,32,46,33,252,22,252,90,2,2,85, +11,33,32,11,83,159,32,97,80,159,32,47,33,80,159,32,48,33,80,159,32, +49,33,80,159,32,50,33,80,159,32,51,33,27,247,22,252,113,2,87,94,28, +192,28,248,22,252,9,2,248,22,252,112,2,194,250,22,252,40,2,2,252,107, +1,6,15,15,105,110,115,112,101,99,116,111,114,32,111,114,32,35,102,195,12, +12,91,159,37,11,90,161,37,32,11,254,22,252,90,2,2,85,11,33,32,11, +9,204,252,22,7,197,198,199,250,22,252,92,2,203,32,64,99,101,108,108,252, +167,1,250,22,252,93,2,204,32,2,252,167,1,83,159,32,93,80,159,32,52, +33,89,162,32,32,36,2,45,223,0,248,80,159,33,43,34,249,22,19,11,80, +158,35,53,83,159,32,93,80,159,32,54,33,89,162,32,34,40,2,49,223,0, +87,95,28,248,80,159,33,44,34,194,12,252,22,252,40,2,2,49,6,22,22, +98,114,101,97,107,32,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111, +110,32,198,199,28,28,248,22,0,195,249,22,34,196,32,11,12,252,22,252,40, +2,2,23,6,19,19,112,114,111,99,101,100,117,114,101,32,40,97,114,105,116, +121,32,48,41,33,198,199,83,158,36,20,93,94,20,14,159,80,158,32,53,249, +80,159,34,45,34,195,32,87,94,247,80,158,32,55,247,194,247,80,158,32,55, +96,68,35,37,107,101,114,110,101,108,252,168,1,2,84,2,83,2,18,96,2, +252,168,1,2,66,2,88,2,87,0}; + EVAL_ONE_SIZED_STR((char *)expr, 22269); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,49,252,215,1,252,5,55,159,32,20,97,158,16, -1,20,23,65,98,101,103,105,110,0,16,0,83,158,39,20,94,114,66,35,37, -109,105,115,99,1,29,2,11,11,10,10,10,44,80,158,32,32,20,97,158,16, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,252,149,1,252,77,49,159,32,20,98,158,16, +1,20,24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,66,35,37, +109,105,115,99,1,29,2,11,11,10,10,10,44,80,158,32,32,20,98,158,16, 47,30,3,2,2,72,112,97,116,104,45,115,116,114,105,110,103,63,4,254,1, 30,5,2,2,70,45,114,101,58,115,117,102,102,105,120,6,254,1,30,7,2, 2,79,112,97,116,104,45,114,101,112,108,97,99,101,45,115,117,102,102,105,120, @@ -3592,676 +3364,575 @@ 11,11,11,11,11,11,11,11,11,11,11,11,16,24,2,85,2,89,2,87,2, 47,2,40,2,28,2,69,2,83,2,91,2,22,2,24,2,18,2,49,2,67, 2,12,2,97,2,26,2,8,2,4,2,71,2,14,2,16,2,93,2,98,55, -56,93,16,5,93,2,98,89,162,32,33,8,64,9,223,0,27,249,22,209,83, -160,41,32,35,38,196,27,28,248,80,158,35,32,194,249,80,158,36,33,248,80, +56,93,16,5,93,2,98,89,162,32,33,8,64,9,223,0,27,249,22,209,20, +15,159,35,32,38,196,27,28,248,80,158,35,32,194,249,80,158,36,33,248,80, 158,37,34,196,27,248,80,158,38,35,197,28,248,80,158,38,32,193,249,80,158, 39,33,248,80,158,40,34,195,27,248,80,158,41,35,196,28,248,80,158,41,36, 193,248,80,158,41,37,193,11,11,11,28,192,27,248,22,52,194,27,248,22,78, -195,27,248,22,80,196,27,249,22,209,83,160,41,33,40,38,249,22,209,203,247, -22,48,27,249,22,209,83,160,41,34,41,38,249,22,209,204,247,22,48,27,249, -22,209,83,160,41,35,42,38,249,22,209,205,247,22,48,27,252,22,61,199,200, -202,201,198,27,83,160,41,36,42,38,250,22,209,83,160,41,37,45,38,250,22, -209,83,160,41,38,48,38,250,22,60,83,160,41,39,51,38,250,22,209,83,160, -41,40,54,38,248,22,60,250,22,209,83,160,41,41,58,38,249,22,56,248,22, -78,23,20,83,160,41,42,8,28,38,83,160,41,43,58,38,83,160,41,44,54, -38,250,22,209,83,160,41,45,54,38,251,22,60,83,160,41,46,58,38,250,22, -209,83,160,41,47,8,29,38,248,22,60,250,22,209,83,160,41,48,8,33,38, -249,22,60,248,22,52,23,27,250,22,209,83,160,41,49,8,38,38,250,22,60, -83,160,41,50,8,41,38,248,22,87,23,33,250,22,209,83,160,41,51,8,44, -38,250,22,60,83,160,41,52,8,47,38,250,22,209,83,160,41,53,8,50,38, -248,22,60,250,22,209,83,160,41,54,8,54,38,249,22,60,248,22,89,23,48, -250,22,209,83,160,41,55,8,59,38,249,22,60,83,160,41,56,8,61,38,248, -22,78,23,53,83,160,41,57,8,59,38,83,160,41,58,8,54,38,83,160,41, -59,8,50,38,250,22,209,83,160,41,8,28,8,50,38,251,22,62,83,160,41, -8,29,8,54,38,83,160,41,8,30,8,54,38,248,22,89,23,46,248,22,90, -23,46,83,160,41,8,31,8,50,38,83,160,41,8,32,8,44,38,83,160,41, -8,33,8,38,38,83,160,41,8,34,8,33,38,83,160,41,8,35,8,29,38, -250,22,209,83,160,41,8,36,8,29,38,250,22,60,83,160,41,8,37,8,32, -38,248,22,78,23,24,250,22,209,83,160,41,8,38,8,35,38,249,22,60,83, -160,41,8,39,8,37,38,248,22,52,23,29,83,160,41,8,40,8,35,38,83, -160,41,8,41,8,29,38,248,22,52,23,18,83,160,41,8,42,54,38,83,160, -41,8,43,48,38,195,250,22,252,38,2,11,6,10,10,98,97,100,32,115,121, -110,116,97,120,196,32,20,97,158,16,6,30,99,65,35,37,115,116,120,100,69, +195,27,248,22,80,196,27,249,22,209,20,15,159,40,33,38,249,22,209,203,247, +22,48,27,249,22,209,20,15,159,41,34,38,249,22,209,204,247,22,48,27,249, +22,209,20,15,159,42,35,38,249,22,209,205,247,22,48,27,252,22,61,202,200, +201,199,198,27,20,15,159,42,36,38,250,22,209,20,15,159,45,37,38,250,22, +209,20,15,159,48,38,38,250,22,60,20,15,159,51,39,38,250,22,209,20,15, +159,54,40,38,248,22,60,250,22,209,20,15,159,58,41,38,249,22,56,248,22, +78,23,20,20,15,159,8,28,42,38,20,15,159,58,43,38,20,15,159,54,44, +38,250,22,209,20,15,159,54,45,38,251,22,60,20,15,159,58,46,38,250,22, +209,20,15,159,8,29,47,38,248,22,60,250,22,209,20,15,159,8,33,48,38, +249,22,60,248,22,90,23,27,250,22,209,20,15,159,8,38,49,38,250,22,60, +20,15,159,8,41,50,38,248,22,52,23,33,250,22,209,20,15,159,8,44,51, +38,250,22,60,20,15,159,8,47,52,38,250,22,209,20,15,159,8,50,53,38, +248,22,60,250,22,209,20,15,159,8,54,54,38,249,22,60,248,22,89,23,48, +250,22,209,20,15,159,8,59,55,38,249,22,60,20,15,159,8,61,56,38,248, +22,78,23,53,20,15,159,8,59,57,38,20,15,159,8,54,58,38,20,15,159, +8,50,59,38,250,22,209,20,15,159,8,50,8,28,38,251,22,62,20,15,159, +8,54,8,29,38,20,15,159,8,54,8,30,38,248,22,89,23,46,248,22,87, +23,46,20,15,159,8,50,8,31,38,20,15,159,8,44,8,32,38,20,15,159, +8,38,8,33,38,20,15,159,8,33,8,34,38,20,15,159,8,29,8,35,38, +250,22,209,20,15,159,8,29,8,36,38,250,22,60,20,15,159,8,32,8,37, +38,248,22,78,23,24,250,22,209,20,15,159,8,35,8,38,38,249,22,60,20, +15,159,8,37,8,39,38,248,22,90,23,29,20,15,159,8,35,8,40,38,20, +15,159,8,29,8,41,38,248,22,90,23,18,20,15,159,54,8,42,38,20,15, +159,48,8,43,38,195,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121, +110,116,97,120,196,32,20,98,158,16,6,30,99,65,35,37,115,116,120,100,69, 115,116,120,45,112,97,105,114,63,101,11,30,102,2,100,67,99,111,110,115,47, 35,102,103,1,30,104,2,100,67,115,116,120,45,99,97,114,105,5,30,106,2, 100,67,115,116,120,45,99,100,114,107,6,30,108,2,100,69,115,116,120,45,108, 105,115,116,63,109,8,30,110,2,100,69,115,116,120,45,62,108,105,115,116,111, -4,16,44,18,98,64,104,101,114,101,112,38,97,36,10,32,11,16,162,64,99, -97,115,101,113,73,35,37,109,111,114,101,45,115,99,104,101,109,101,114,2,22, -2,2,2,47,2,2,2,34,2,2,2,53,2,2,2,57,2,2,2,83,2, -2,2,85,2,2,2,59,2,2,2,98,2,2,2,67,2,2,66,108,101,116, -47,99,99,115,2,114,2,63,2,2,2,36,2,2,2,30,2,2,63,97,110, -100,116,71,35,37,113,113,45,97,110,100,45,111,114,117,1,24,99,117,114,114, -101,110,116,45,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,118, -2,114,62,111,114,119,2,117,64,116,105,109,101,120,2,114,2,38,2,2,73, -100,101,102,105,110,101,45,115,116,114,117,99,116,121,74,35,37,100,101,102,105, -110,101,45,101,116,45,97,108,122,2,91,2,2,2,75,2,2,62,100,111,123, -2,114,72,112,97,114,97,109,101,116,101,114,105,122,101,124,2,114,2,79,2, -2,2,69,2,2,2,51,2,2,2,81,2,2,65,102,111,114,99,101,125,2, -114,2,32,2,2,66,100,101,102,105,110,101,126,68,35,37,100,101,102,105,110, -101,127,1,30,109,101,109,111,114,121,45,116,114,97,99,101,45,99,111,110,116, -105,110,117,97,116,105,111,110,45,109,97,114,107,128,70,35,37,109,101,109,116, -114,97,99,101,129,73,119,105,116,104,45,104,97,110,100,108,101,114,115,130,2, -114,64,119,104,101,110,131,2,122,68,112,114,111,109,105,115,101,63,132,2,114, -64,99,111,110,100,133,66,35,37,99,111,110,100,134,74,119,105,116,104,45,104, -97,110,100,108,101,114,115,42,135,2,114,2,89,2,2,78,112,97,114,97,109, -101,116,101,114,105,122,101,45,98,114,101,97,107,136,2,114,1,30,110,101,119, -45,109,101,109,116,114,97,99,101,45,116,114,97,99,107,105,110,103,45,102,117, -110,99,116,105,111,110,137,2,129,66,108,101,116,47,101,99,138,2,122,2,26, -2,2,1,30,99,117,114,114,101,110,116,45,98,114,101,97,107,45,112,97,114, -97,109,101,116,101,114,105,122,97,116,105,111,110,139,2,114,67,45,100,101,102, -105,110,101,140,2,122,2,55,2,2,1,32,99,97,108,108,45,119,105,116,104, -45,98,114,101,97,107,45,112,97,114,97,109,101,116,101,114,105,122,97,116,105, -111,110,141,2,114,1,31,117,110,105,111,110,101,100,45,109,101,109,116,114,97, -99,101,45,116,114,97,99,107,105,110,103,45,118,97,108,117,101,142,2,129,2, -10,2,2,2,71,2,2,71,115,101,116,33,45,118,97,108,117,101,115,143,2, -114,77,100,101,102,105,110,101,45,102,111,114,45,115,121,110,116,97,120,144,2, -127,2,18,2,2,2,87,2,2,2,16,2,2,76,98,101,103,105,110,45,102, -111,114,45,115,121,110,116,97,120,145,2,127,66,117,110,108,101,115,115,146,2, -122,2,20,2,2,2,61,2,2,2,97,2,2,2,4,2,2,2,95,2,2, -74,45,100,101,102,105,110,101,45,115,121,110,116,97,120,147,2,122,2,24,2, -2,1,26,99,97,108,108,45,119,105,116,104,45,112,97,114,97,109,101,116,101, -114,105,122,97,116,105,111,110,148,2,114,73,100,101,102,105,110,101,45,115,121, -110,116,97,120,149,2,127,2,40,2,2,2,73,2,2,65,100,101,108,97,121, -150,2,114,2,49,2,2,2,28,2,2,2,12,2,2,70,108,101,116,45,115, -116,114,117,99,116,151,2,114,2,6,2,2,2,77,2,2,69,102,108,117,105, -100,45,108,101,116,152,2,114,70,113,117,97,115,105,113,117,111,116,101,153,2, -117,2,8,2,2,2,65,2,2,2,14,2,2,2,93,2,2,97,35,10,33, -11,16,78,2,121,2,122,69,97,112,112,101,110,100,47,35,102,154,2,100,73, -115,116,120,45,99,104,101,99,107,47,101,115,99,155,2,100,71,119,105,116,104, -45,115,121,110,116,97,120,156,70,35,37,119,105,116,104,45,115,116,120,157,66, -115,121,110,116,97,120,158,69,35,37,115,116,120,99,97,115,101,159,72,115,121, -110,116,97,120,45,99,97,115,101,42,160,68,35,37,115,116,120,108,111,99,161, -70,115,116,120,45,114,111,116,97,116,101,162,2,100,2,140,2,122,2,105,2, -100,71,115,116,120,45,114,111,116,97,116,101,42,163,2,100,2,107,2,100,2, -147,2,122,2,103,2,100,74,115,112,108,105,116,45,115,116,120,45,108,105,115, -116,164,2,100,71,115,116,120,45,110,117,108,108,47,35,102,165,2,100,71,105, -100,101,110,116,105,102,105,101,114,63,166,2,100,71,115,121,110,116,97,120,45, -99,97,115,101,167,2,161,2,131,2,122,75,108,101,116,114,101,99,45,115,121, -110,116,97,120,101,115,168,76,35,37,115,116,120,99,97,115,101,45,115,99,104, -101,109,101,169,2,101,2,100,69,115,116,120,45,110,117,108,108,63,170,2,100, -2,146,2,122,70,108,101,116,45,115,121,110,116,97,120,171,2,169,2,138,2, -122,73,108,101,116,114,101,99,45,115,121,110,116,97,120,172,2,169,1,20,103, -101,110,101,114,97,116,101,45,116,101,109,112,111,114,97,114,105,101,115,173,2, -157,2,153,2,117,70,115,121,110,116,97,120,47,108,111,99,174,2,161,72,108, -101,116,45,115,121,110,116,97,120,101,115,175,2,169,2,116,2,117,2,109,2, -100,1,26,99,104,101,99,107,45,100,117,112,108,105,99,97,116,101,45,105,100, -101,110,116,105,102,105,101,114,176,2,169,72,115,121,110,116,97,120,45,114,117, -108,101,115,177,2,169,2,111,2,100,2,119,2,117,75,115,121,110,116,97,120, -45,105,100,45,114,117,108,101,115,178,2,169,71,115,116,120,45,118,101,99,116, -111,114,63,179,2,100,74,115,116,120,45,118,101,99,116,111,114,45,114,101,102, -180,2,100,2,133,2,134,96,34,8,254,1,11,16,0,16,4,33,11,61,120, -181,3,1,7,101,110,118,51,57,57,51,182,18,100,2,112,41,36,35,34,33, -16,8,40,11,3,1,4,103,53,50,54,183,3,1,4,103,53,50,55,184,3, -1,4,103,53,50,56,185,3,1,7,101,110,118,51,57,57,57,186,2,186,2, -186,16,8,39,11,61,95,187,64,97,114,103,115,188,64,98,111,100,121,189,3, -1,7,101,110,118,52,48,48,48,190,2,190,2,190,18,158,2,112,41,18,158, -2,112,41,18,16,2,95,66,115,114,99,116,97,103,191,42,93,8,252,57,10, -95,9,8,252,57,10,2,159,18,106,64,100,101,115,116,192,49,36,35,34,33, -40,39,16,4,48,11,3,1,4,103,53,51,51,193,3,1,7,101,110,118,52, -48,49,50,194,16,4,47,11,68,99,111,110,116,109,97,114,107,195,3,1,7, -101,110,118,52,48,49,51,196,16,4,46,11,3,1,4,103,53,51,53,197,3, -1,7,101,110,118,52,48,50,50,198,16,4,45,11,64,102,117,110,99,199,3, -1,7,101,110,118,52,48,50,51,200,16,4,44,11,3,1,4,103,53,51,55, -201,3,1,7,101,110,118,52,48,51,50,202,16,4,43,11,67,110,101,119,109, -97,114,107,203,3,1,7,101,110,118,52,48,51,51,204,18,158,63,99,116,120, -205,49,18,158,63,108,101,116,206,49,18,158,2,205,49,18,158,2,205,49,18, -16,2,103,93,16,2,158,11,49,9,57,97,56,10,32,11,16,58,2,154,2, -100,2,155,2,100,2,140,2,122,2,162,2,100,2,105,2,100,2,158,29,207, -11,11,2,163,2,100,2,107,2,100,2,164,2,100,2,103,2,100,2,121,2, -122,2,166,2,100,2,131,2,122,2,101,2,100,2,170,2,100,2,146,2,122, -2,138,2,122,73,115,121,110,116,97,120,45,99,97,115,101,42,42,208,2,207, -2,133,2,134,2,153,2,117,2,116,2,117,2,109,2,100,2,111,2,100,1, -20,101,108,108,105,112,115,105,115,45,99,111,117,110,116,45,101,114,114,111,114, -209,2,207,2,119,2,117,2,147,2,122,2,165,2,100,2,179,2,100,2,180, -2,100,97,55,10,33,11,16,70,2,154,2,100,2,155,2,100,2,140,2,122, -72,110,111,45,101,108,108,105,112,115,101,115,63,210,64,35,37,115,99,211,2, -162,2,100,2,105,2,100,2,163,2,100,2,107,2,100,2,164,2,100,74,103, -101,116,45,109,97,116,99,104,45,118,97,114,115,212,2,211,2,103,2,100,75, -115,121,110,116,97,120,45,109,97,112,112,105,110,103,63,213,2,211,74,109,97, -107,101,45,109,97,116,99,104,38,101,110,118,214,2,211,2,121,2,122,2,166, -2,100,2,131,2,122,2,101,2,100,2,170,2,100,2,146,2,122,72,109,97, -107,101,45,112,101,120,112,97,110,100,215,2,211,2,138,2,122,72,115,116,120, -45,109,101,109,113,45,112,111,115,216,2,211,2,133,2,134,79,109,97,107,101, -45,115,121,110,116,97,120,45,109,97,112,112,105,110,103,217,2,211,2,153,2, -117,1,20,115,121,110,116,97,120,45,109,97,112,112,105,110,103,45,100,101,112, -116,104,218,2,211,2,116,2,117,2,109,2,100,2,111,2,100,1,21,115,121, -110,116,97,120,45,109,97,112,112,105,110,103,45,118,97,108,118,97,114,219,2, -211,2,119,2,117,2,147,2,122,2,165,2,100,2,179,2,100,2,180,2,100, -96,54,8,254,1,11,16,0,16,4,53,11,2,181,3,1,6,101,110,118,51, -55,55,220,16,4,52,11,68,104,101,114,101,45,115,116,120,221,3,1,6,101, -110,118,51,55,57,222,16,4,51,11,2,221,2,222,13,16,3,33,2,207,2, -159,93,8,252,57,10,16,6,50,11,61,114,223,63,115,114,99,224,3,1,7, -101,110,118,52,48,51,54,225,2,225,95,9,8,252,57,10,2,159,18,158,2, -205,49,18,158,2,205,49,18,158,2,205,49,18,158,2,206,49,18,158,2,205, -49,18,158,2,205,49,18,158,2,205,49,18,158,66,108,97,109,98,100,97,226, -49,18,158,2,205,49,18,158,2,206,49,18,158,2,205,49,18,158,2,205,49, -18,158,2,205,49,18,158,2,142,49,18,158,2,205,49,18,158,2,205,49,18, -158,2,205,49,18,158,2,205,49,18,158,1,22,119,105,116,104,45,99,111,110, -116,105,110,117,97,116,105,111,110,45,109,97,114,107,227,49,18,158,2,128,49, -18,158,2,205,49,18,158,2,205,49,18,158,2,205,49,18,158,2,205,49,18, -158,2,205,49,18,158,2,205,49,18,158,64,115,101,116,33,228,49,18,158,2, -205,49,18,158,2,137,49,18,158,2,205,49,18,158,2,205,49,18,158,2,205, -49,18,158,2,205,49,11,134,83,159,32,93,80,159,32,32,33,89,162,32,33, -36,2,4,222,27,248,22,252,22,3,194,28,192,192,28,248,22,252,136,1,194, -27,248,22,252,35,3,195,28,192,192,248,22,252,36,3,195,11,83,159,32,93, -80,159,32,33,33,248,22,252,59,3,5,12,40,91,46,93,91,94,46,93,42, -124,41,36,83,159,32,93,80,159,32,34,33,89,162,32,34,45,2,8,223,0, -87,95,28,27,248,22,252,22,3,195,28,192,192,28,248,22,252,136,1,195,27, -248,22,252,35,3,196,28,192,192,248,22,252,36,3,196,11,12,252,22,252,39, -2,2,8,6,25,25,112,97,116,104,32,111,114,32,118,97,108,105,100,45,112, -97,116,104,32,115,116,114,105,110,103,32,198,199,28,28,248,22,252,136,1,195, -10,248,22,252,188,1,195,12,252,22,252,39,2,2,8,6,21,21,115,116,114, -105,110,103,32,111,114,32,98,121,116,101,32,115,116,114,105,110,103,33,198,199, -91,159,35,11,90,161,35,32,11,248,22,252,34,3,197,87,94,28,192,12,250, -22,252,40,2,2,8,6,36,36,99,97,110,110,111,116,32,97,100,100,32,97, -32,115,117,102,102,105,120,32,116,111,32,97,32,114,111,111,116,32,112,97,116, -104,58,32,199,27,248,22,252,26,3,250,22,252,67,3,80,159,40,33,34,248, -22,252,24,3,199,28,248,22,252,136,1,203,249,22,252,212,1,204,8,63,202, -28,248,22,252,22,3,194,249,22,252,33,3,195,194,192,83,159,32,93,80,159, -32,35,33,249,22,252,138,1,7,92,7,92,83,159,32,93,80,159,32,36,33, -89,162,32,33,43,2,12,223,0,87,94,28,27,248,22,252,22,3,195,28,192, -192,28,248,22,252,136,1,195,27,248,22,252,35,3,196,28,192,192,248,22,252, -36,3,196,11,12,250,22,252,39,2,76,110,111,114,109,97,108,45,112,97,116, -104,45,99,97,115,101,229,6,25,25,112,97,116,104,32,111,114,32,118,97,108, -105,100,45,112,97,116,104,32,115,116,114,105,110,103,196,28,249,22,252,10,2, -247,22,252,219,1,67,119,105,110,100,111,119,115,230,27,28,248,22,252,136,1, -195,194,248,22,252,23,3,195,28,249,22,252,62,3,0,21,35,114,120,34,94, -91,92,92,93,91,92,92,93,91,63,93,91,92,92,93,34,194,28,248,22,252, -136,1,195,248,22,252,25,3,195,194,27,248,22,252,175,1,194,248,22,252,25, -3,250,22,252,68,3,0,6,35,114,120,34,47,34,28,249,22,252,62,3,0, -22,35,114,120,34,91,47,92,92,93,91,46,32,93,43,91,47,92,92,93,42, -36,34,198,196,250,22,252,68,3,0,19,35,114,120,34,91,32,46,93,43,40, -91,47,92,92,93,42,41,36,34,199,6,2,2,92,49,80,159,38,35,34,28, -249,22,252,10,2,247,22,252,219,1,65,109,97,99,111,115,231,248,22,252,25, -3,248,22,252,175,1,28,248,22,252,136,1,196,195,248,22,252,23,3,196,28, -248,22,252,136,1,194,248,22,252,25,3,194,193,83,159,32,93,80,159,32,37, -33,91,159,34,11,90,161,33,33,11,89,162,32,33,36,65,99,104,101,99,107, -232,222,28,248,22,130,193,12,250,22,252,39,2,2,14,6,4,4,114,101,97, -108,195,20,12,95,33,89,162,32,34,44,2,14,224,0,1,87,95,248,193,195, -248,193,196,27,248,22,176,197,27,249,22,173,198,195,27,249,22,172,199,196,28, -249,22,181,199,199,28,250,22,184,196,32,195,28,248,22,133,198,32,0,3,48, -46,48,28,248,22,188,194,248,22,173,249,199,248,22,173,196,248,22,173,197,249, -198,195,194,0,6,43,110,97,110,46,48,89,162,32,34,46,72,102,105,110,100, -45,98,101,116,119,101,101,110,233,223,0,28,248,22,132,194,193,27,248,22,144, -195,27,248,22,144,197,28,249,22,182,195,194,248,22,170,194,249,22,172,195,248, -22,175,249,199,248,22,175,249,22,173,204,201,248,22,175,249,22,173,203,201,83, -159,32,93,80,159,32,38,33,89,162,32,32,39,2,16,222,91,159,36,11,90, -161,33,32,11,83,160,38,32,33,11,90,161,33,33,11,83,160,38,32,33,11, -90,161,33,34,11,83,160,38,32,33,11,90,161,33,35,11,89,162,32,32,33, -1,24,114,101,112,45,101,114,114,111,114,45,101,115,99,97,112,101,45,104,97, -110,100,108,101,114,234,223,1,247,207,250,22,31,89,162,32,32,36,9,225,6, -5,3,90,161,33,32,10,247,22,252,43,2,90,161,33,33,10,247,22,252,30, -2,87,94,248,22,252,43,2,195,248,22,252,30,2,11,89,162,32,32,35,9, -224,5,4,248,22,8,89,162,32,33,36,9,224,2,1,247,91,159,33,11,20, -12,95,33,192,89,162,32,32,37,69,114,101,112,108,45,108,111,111,112,235,226, -2,1,3,0,87,94,248,22,8,89,162,32,33,39,9,225,4,3,2,250,22, -31,89,162,32,32,36,9,225,5,4,6,87,94,248,22,252,30,2,210,90,161, -33,33,10,192,12,89,162,32,32,36,9,223,3,27,247,247,22,40,87,94,28, -248,22,252,70,1,193,248,194,12,12,249,22,6,89,162,32,32,35,9,223,2, -248,247,22,252,31,2,28,248,22,206,194,248,22,252,29,2,194,193,89,162,33, -33,35,9,222,249,22,3,247,22,39,194,89,162,32,32,35,9,224,5,4,90, -161,33,33,10,247,22,252,30,2,87,94,248,22,252,30,2,11,90,161,33,32, -10,11,12,247,192,89,162,32,32,36,9,225,5,4,3,87,95,248,22,252,43, -2,208,248,22,252,30,2,210,90,161,33,33,10,11,90,161,33,32,10,11,12, -83,159,32,93,80,159,32,39,33,89,162,32,33,43,2,18,222,87,94,28,27, -248,22,252,22,3,194,28,192,192,28,248,22,252,136,1,194,27,248,22,252,35, -3,195,28,192,192,248,22,252,36,3,195,11,12,250,22,252,39,2,2,18,6, -25,25,112,97,116,104,32,111,114,32,115,116,114,105,110,103,32,40,115,97,110, -115,32,110,117,108,41,195,91,159,35,11,90,161,35,32,11,248,22,252,34,3, -196,28,194,248,22,252,185,2,249,22,252,159,2,248,22,252,165,1,249,22,252, -184,1,6,36,36,108,111,97,100,47,99,100,58,32,99,97,110,110,111,116,32, -111,112,101,110,32,97,32,100,105,114,101,99,116,111,114,121,58,32,126,115,201, -247,22,15,28,248,22,252,188,1,193,87,94,28,248,22,252,28,3,193,12,248, -22,252,185,2,249,22,252,159,2,248,22,252,165,1,250,22,252,184,1,6,65, -65,108,111,97,100,47,99,100,58,32,100,105,114,101,99,116,111,114,121,32,111, -102,32,126,115,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,32,40, -99,117,114,114,101,110,116,32,100,105,114,101,99,116,111,114,121,32,105,115,32, -126,115,41,202,247,22,252,52,3,247,22,15,27,247,22,252,52,3,250,22,31, -89,162,32,32,34,9,223,4,248,22,252,52,3,193,89,162,32,32,34,9,223, -5,248,22,252,88,1,193,89,162,32,32,34,9,223,3,248,22,252,52,3,193, -248,22,252,88,1,196,83,159,32,93,80,159,32,40,33,89,162,32,35,39,2, -20,222,87,94,28,27,248,22,252,22,3,196,28,192,192,28,248,22,252,136,1, -196,27,248,22,252,35,3,197,28,192,192,248,22,252,36,3,197,11,12,250,22, -252,39,2,196,6,25,25,112,97,116,104,32,111,114,32,115,116,114,105,110,103, -32,40,115,97,110,115,32,110,117,108,41,197,28,248,22,252,37,3,195,248,193, -195,27,247,22,252,90,1,248,194,28,193,249,22,252,38,3,198,195,196,83,159, -32,93,80,159,32,41,33,89,162,32,33,37,2,22,223,0,250,80,159,35,40, -34,22,252,88,1,2,22,196,83,159,32,93,80,159,32,42,33,89,162,32,33, -37,2,24,223,0,250,80,159,35,40,34,22,252,55,3,2,24,196,83,159,32, -93,80,159,32,43,33,27,248,22,252,59,3,248,22,252,211,1,27,27,247,22, -252,219,1,28,249,22,72,194,21,96,64,117,110,105,120,236,64,98,101,111,115, -237,65,111,115,107,105,116,238,66,109,97,99,111,115,120,239,6,1,1,58,28, -249,22,72,194,21,94,2,230,2,231,6,1,1,59,12,250,22,252,184,1,6, -14,14,40,91,94,126,97,93,42,41,126,97,40,46,42,41,195,195,27,89,162, -32,35,38,69,99,111,110,115,45,112,97,116,104,240,222,28,249,22,252,194,1, -195,5,0,249,22,65,194,196,249,22,51,248,22,252,26,3,196,196,89,162,32, -34,39,2,26,224,0,1,87,95,28,28,248,22,252,188,1,195,10,248,22,252, -136,1,195,12,250,22,252,39,2,2,26,6,21,21,98,121,116,101,32,115,116, -114,105,110,103,32,111,114,32,115,116,114,105,110,103,197,28,28,248,22,58,196, -249,22,4,22,252,22,3,197,11,12,250,22,252,39,2,2,26,6,13,13,108, -105,115,116,32,111,102,32,112,97,116,104,115,198,248,91,159,33,11,20,12,95, -33,192,89,162,32,33,43,64,108,111,111,112,241,226,3,2,5,0,27,249,22, -252,61,3,197,199,28,192,250,199,197,248,22,78,196,248,197,248,22,87,197,250, -199,197,200,9,28,248,22,252,136,1,196,248,22,252,211,1,196,195,83,159,32, -93,80,159,32,44,33,89,162,32,34,42,2,28,223,0,87,95,28,27,248,22, -252,22,3,195,28,192,192,28,248,22,252,136,1,195,27,248,22,252,35,3,196, -28,192,192,248,22,252,36,3,196,11,12,250,22,252,39,2,2,28,6,25,25, -112,97,116,104,32,111,114,32,115,116,114,105,110,103,32,40,115,97,110,115,32, -110,117,108,41,196,28,28,194,28,27,248,22,252,22,3,196,28,192,192,28,248, -22,252,136,1,196,27,248,22,252,35,3,197,28,192,192,248,22,252,36,3,197, -11,248,22,252,35,3,195,11,10,12,250,22,252,39,2,2,28,6,29,29,35, -102,32,111,114,32,114,101,108,97,116,105,118,101,32,112,97,116,104,32,111,114, -32,115,116,114,105,110,103,197,91,159,33,11,20,12,95,33,28,28,248,22,252, -35,3,195,91,159,35,11,90,161,35,32,11,248,22,252,34,3,198,249,22,252, -10,2,194,68,114,101,108,97,116,105,118,101,242,11,27,248,22,252,217,1,6, -4,4,80,65,84,72,27,89,162,32,33,36,67,119,105,110,45,97,100,100,243, -222,28,249,22,252,10,2,247,22,252,219,1,2,230,249,22,51,248,22,252,26, -3,5,1,46,194,192,248,91,159,33,11,20,12,95,33,192,89,162,32,33,43, -2,241,225,6,4,0,28,248,22,57,196,11,27,248,22,252,38,3,248,22,52, -198,27,249,22,252,33,3,195,198,28,248,22,252,27,3,193,248,196,193,27,248, -22,53,199,28,248,22,57,193,11,27,248,22,252,38,3,248,22,52,195,27,249, -22,252,33,3,195,201,28,248,22,252,27,3,193,248,199,193,248,198,248,22,53, -196,28,194,248,194,249,80,159,39,43,34,197,9,9,27,248,22,252,38,3,196, -28,248,22,252,27,3,193,248,194,193,11,89,162,32,33,43,70,102,111,117,110, -100,45,101,120,101,99,244,224,3,0,28,193,91,159,35,11,90,161,35,32,11, -248,22,252,34,3,198,28,248,22,252,22,3,193,27,249,22,252,33,3,195,199, -28,28,248,22,252,28,3,193,10,248,22,252,27,3,193,192,27,248,22,252,39, -3,200,28,249,22,252,12,2,194,201,11,28,248,22,252,35,3,193,248,198,249, -22,252,33,3,197,195,248,198,193,11,194,83,159,32,93,80,159,32,45,33,89, -162,32,34,41,2,30,222,87,94,28,27,248,22,252,22,3,195,28,192,192,28, -248,22,252,136,1,195,27,248,22,252,35,3,196,28,192,192,248,22,252,36,3, -196,11,12,250,22,252,39,2,195,6,25,25,112,97,116,104,32,111,114,32,118, -97,108,105,100,45,112,97,116,104,32,115,116,114,105,110,103,196,28,248,22,252, -35,3,194,12,248,22,252,185,2,249,22,252,129,2,248,22,252,165,1,250,22, -252,184,1,6,29,29,126,97,58,32,105,110,118,97,108,105,100,32,114,101,108, -97,116,105,118,101,32,112,97,116,104,58,32,126,115,199,200,247,22,15,83,159, -32,93,80,159,32,46,33,89,162,32,35,38,2,32,223,0,87,94,249,80,159, -34,45,34,195,196,249,22,3,89,162,32,33,37,9,224,2,3,249,80,159,35, -45,34,194,196,197,83,159,32,93,80,159,32,47,33,89,162,32,35,38,2,34, -222,27,247,22,252,53,3,248,91,159,33,11,20,12,95,33,192,89,162,32,33, -49,65,99,108,111,111,112,245,227,5,4,3,2,0,28,248,22,57,198,248,22, -252,185,2,249,22,252,159,2,248,22,252,165,1,251,22,252,184,1,6,42,42, -126,97,58,32,99,111,108,108,101,99,116,105,111,110,32,110,111,116,32,102,111, -117,110,100,58,32,126,115,32,105,110,32,97,110,121,32,111,102,58,32,126,115, -202,28,248,22,57,205,203,250,22,1,22,252,33,3,206,23,15,201,247,22,15, -27,249,22,252,33,3,248,22,52,201,198,28,248,22,252,28,3,193,27,250,22, -1,22,252,33,3,196,201,28,248,22,252,28,3,193,192,248,195,248,22,53,201, -248,194,248,22,53,200,193,83,159,32,93,80,159,32,48,33,27,247,22,252,219, -1,28,249,22,252,10,2,194,2,230,5,4,46,100,108,108,28,249,22,72,194, -21,94,2,239,2,231,5,6,46,100,121,108,105,98,5,3,46,115,111,83,159, -32,93,80,159,32,49,33,249,80,159,34,34,34,248,22,252,26,3,5,10,95, -108,111,97,100,101,114,46,115,115,80,159,34,48,34,83,159,32,93,80,159,32, -50,33,249,22,252,219,2,27,27,89,162,32,35,41,67,100,97,116,101,62,61, -63,246,222,28,193,27,249,22,5,89,162,32,33,39,9,223,4,27,248,194,195, -27,250,22,252,47,3,196,11,89,162,40,32,32,9,222,11,28,192,249,22,51, -195,194,11,195,27,28,196,11,193,28,192,192,28,193,28,196,28,249,22,185,248, -22,53,196,248,22,53,199,193,11,11,11,11,89,162,32,34,8,31,1,25,100, -101,102,97,117,108,116,45,108,111,97,100,47,117,115,101,45,99,111,109,112,105, -108,101,100,247,224,4,0,87,94,28,27,248,22,252,22,3,196,28,192,192,28, -248,22,252,136,1,196,27,248,22,252,35,3,197,28,192,192,248,22,252,36,3, -197,11,12,250,22,252,39,2,2,49,6,25,25,112,97,116,104,32,111,114,32, -118,97,108,105,100,45,112,97,116,104,32,115,116,114,105,110,103,197,91,159,38, -11,90,161,33,32,11,28,248,22,252,37,3,201,200,27,247,22,252,90,1,28, -192,249,22,252,38,3,203,194,201,90,161,35,33,11,248,22,252,34,3,193,90, -161,33,36,11,28,249,22,252,10,2,195,2,242,64,115,97,109,101,248,193,90, -161,33,37,11,247,22,252,54,3,27,89,162,32,34,36,66,103,101,116,45,115, -111,249,224,8,5,89,162,32,33,44,9,226,1,0,3,2,252,22,252,33,3, -199,201,6,6,6,110,97,116,105,118,101,247,22,252,220,1,28,198,249,80,159, -42,34,34,199,80,159,42,48,34,197,27,89,162,32,33,41,62,122,111,250,225, -9,6,4,250,22,252,33,3,196,198,249,80,159,39,34,34,197,5,3,46,122, -111,27,249,196,199,10,27,249,197,80,159,45,49,34,11,27,249,22,5,89,162, -32,33,39,9,223,7,27,193,27,250,22,252,47,3,196,11,89,162,40,32,32, -9,222,11,28,192,249,22,51,195,194,11,204,27,89,162,32,33,40,68,119,105, -116,104,45,100,105,114,251,224,13,10,20,14,159,80,158,33,51,250,80,158,36, -52,249,22,19,11,80,158,38,51,22,252,90,1,28,248,22,252,22,3,196,195, -247,22,252,52,3,247,194,27,27,250,23,17,23,16,199,198,28,192,27,248,22, -252,55,3,248,22,52,195,91,159,34,11,90,161,34,32,11,248,195,248,22,42, -248,22,252,210,1,248,22,252,24,3,249,80,159,56,34,34,23,19,5,0,28, -192,87,94,28,23,20,28,249,22,252,10,2,195,23,22,12,248,22,252,185,2, -249,22,252,126,2,248,22,252,165,1,251,22,252,184,1,6,81,81,108,111,97, -100,45,101,120,116,101,110,115,105,111,110,58,32,101,120,112,101,99,116,101,100, -32,109,111,100,117,108,101,32,100,101,99,108,97,114,97,116,105,111,110,32,102, -111,114,32,96,126,97,39,44,32,102,111,117,110,100,32,126,97,32,116,104,114, -111,117,103,104,32,108,111,97,100,101,114,58,32,126,101,23,28,28,201,249,22, -252,184,1,6,27,27,109,111,100,117,108,101,32,100,101,99,108,97,114,97,116, -105,111,110,32,102,111,114,32,96,126,97,39,203,6,4,4,110,111,110,101,248, -22,52,204,247,22,15,12,192,11,11,28,192,248,194,193,27,250,23,17,23,16, -200,198,28,192,248,195,89,162,32,32,37,9,224,18,1,249,247,22,252,56,3, -248,22,52,195,195,27,250,23,18,23,17,202,199,28,192,248,196,89,162,32,32, -37,9,224,19,1,249,247,22,252,89,1,248,22,52,195,195,248,196,89,162,32, -32,36,9,224,19,10,249,247,22,252,89,1,194,195,192,89,162,32,33,36,9, -222,87,94,28,28,248,22,0,193,249,22,34,194,34,11,12,250,22,252,39,2, -2,40,6,19,19,112,114,111,99,101,100,117,114,101,32,40,97,114,105,116,121, -32,50,41,195,192,83,159,32,93,80,159,32,53,33,89,162,33,34,38,2,47, -223,0,87,94,87,94,249,80,159,34,45,34,2,47,195,249,22,3,89,162,32, -33,36,9,223,2,249,80,159,34,45,34,2,47,195,196,250,80,159,35,47,34, -2,47,196,197,83,159,32,93,80,159,32,54,33,89,162,32,33,36,2,49,223, -0,249,247,80,159,34,50,34,195,11,248,22,252,0,3,89,162,32,33,33,1, -20,100,101,102,97,117,108,116,45,114,101,97,100,101,114,45,103,117,97,114,100, -252,252,0,222,192,83,159,32,93,80,159,32,55,33,248,22,252,59,3,5,11, -40,46,43,63,41,47,43,40,46,42,41,83,159,32,93,80,159,32,56,33,248, -22,252,59,3,5,2,94,44,83,159,32,93,80,159,32,57,33,248,22,252,59, -3,5,39,94,91,45,97,45,122,65,45,90,48,45,57,95,46,32,93,43,40, -47,43,91,45,97,45,122,65,45,90,48,45,57,95,46,32,93,43,41,42,36, -83,159,32,93,80,159,32,58,33,248,22,110,64,119,101,97,107,252,253,0,83, -159,32,93,80,159,32,59,33,249,22,110,2,252,253,0,65,101,113,117,97,108, -252,254,0,83,159,32,93,80,159,32,8,28,33,247,22,48,83,159,32,93,80, -159,32,8,29,34,11,83,159,32,93,80,159,32,8,30,34,11,83,159,32,93, -80,159,32,8,31,33,89,162,32,33,36,2,67,223,0,91,159,34,11,90,161, -33,33,11,83,160,38,32,33,11,20,12,95,33,192,89,162,32,35,8,28,1, -29,115,116,97,110,100,97,114,100,45,109,111,100,117,108,101,45,110,97,109,101, -45,114,101,115,111,108,118,101,114,252,255,0,225,2,3,1,28,28,248,22,50, -196,249,22,252,10,2,248,22,52,198,66,112,108,97,110,101,116,252,0,1,11, -87,94,28,207,12,20,14,159,80,158,34,51,250,80,158,37,52,249,22,19,11, -80,158,39,51,22,252,210,2,196,90,161,33,32,10,249,22,235,21,95,63,108, -105,98,252,1,1,6,11,11,114,101,115,111,108,118,101,114,46,115,115,6,6, -6,112,108,97,110,101,116,1,27,112,108,97,110,101,116,45,109,111,100,117,108, -101,45,110,97,109,101,45,114,101,115,111,108,118,101,114,252,2,1,12,250,210, -198,199,200,28,195,27,89,162,32,32,45,67,103,101,116,45,100,105,114,252,3, -1,224,3,5,27,28,193,28,249,22,252,10,2,195,80,159,36,8,29,34,80, -159,34,8,30,34,27,248,22,252,213,1,248,22,44,196,28,249,22,252,62,3, -80,159,37,56,34,194,91,159,35,11,90,161,35,32,11,248,22,252,34,3,248, -22,252,26,3,250,22,252,197,1,200,33,248,22,252,191,1,201,87,95,83,160, -34,11,80,159,38,8,29,34,197,83,160,34,11,80,159,38,8,30,34,192,192, -11,11,28,192,192,27,247,22,252,90,1,28,192,192,247,22,252,52,3,27,28, -248,22,252,136,1,198,27,247,194,27,250,22,116,80,159,41,59,34,249,22,51, -204,198,89,162,40,32,32,9,222,11,28,192,192,27,248,22,252,211,1,201,28, -249,22,252,62,3,80,159,41,57,34,194,249,91,159,33,11,20,12,95,33,192, -89,162,32,34,45,2,241,224,10,0,27,249,22,252,61,3,80,159,36,55,34, -198,28,192,249,195,249,22,252,33,3,199,27,248,22,78,198,28,249,22,252,194, -1,194,5,1,46,2,248,28,249,22,252,194,1,194,5,2,46,46,62,117,112, -252,4,1,248,22,252,26,3,193,248,22,87,195,249,22,252,33,3,197,248,22, -252,26,3,199,196,194,248,22,59,249,22,252,159,1,6,72,72,32,40,114,101, -108,97,116,105,118,101,32,115,116,114,105,110,103,32,102,111,114,109,32,109,117, -115,116,32,99,111,110,116,97,105,110,32,111,110,108,121,32,97,45,122,44,32, -65,45,90,44,32,48,45,57,44,32,45,44,32,95,44,32,46,44,32,47,44, -32,97,110,100,32,6,37,37,115,112,97,99,101,44,32,119,105,116,104,32,110, -111,32,108,101,97,100,105,110,103,32,111,114,32,116,114,97,105,108,105,110,103, -32,47,41,28,248,22,252,22,3,198,28,248,22,252,36,3,198,197,248,22,59, -6,25,25,40,97,32,112,97,116,104,32,109,117,115,116,32,98,101,32,97,98, -115,111,108,117,116,101,41,28,28,248,22,50,198,248,22,252,8,2,248,22,58, -199,10,11,28,249,22,252,10,2,248,22,52,200,2,252,1,1,250,22,116,80, -159,39,59,34,249,22,51,202,247,22,252,53,3,89,162,32,32,40,9,224,7, -8,27,27,248,22,64,195,28,249,22,181,194,34,248,22,59,6,5,5,109,122, -108,105,98,28,249,22,183,194,34,248,22,80,195,11,28,192,28,249,22,4,89, -162,32,33,34,9,222,28,248,22,252,136,1,193,248,22,252,35,3,193,11,194, -28,248,22,252,136,1,248,22,78,195,28,248,22,252,35,3,248,22,78,195,27, -250,80,159,38,47,34,2,252,255,0,248,22,52,197,248,22,53,197,249,22,252, -33,3,194,248,22,78,197,11,11,11,11,28,249,22,252,10,2,248,22,52,200, -64,102,105,108,101,252,5,1,28,249,22,181,248,22,64,200,34,27,248,22,78, -199,28,248,22,252,136,1,193,28,27,248,22,252,22,3,194,28,192,192,28,248, -22,252,136,1,194,27,248,22,252,35,3,195,28,192,192,248,22,252,36,3,195, -11,249,22,252,38,3,194,247,196,11,11,11,11,87,94,28,28,248,22,252,22, -3,193,10,248,22,252,222,1,193,12,28,199,250,22,252,38,2,67,114,101,113, -117,105,114,101,252,6,1,249,22,252,184,1,6,17,17,98,97,100,32,109,111, -100,117,108,101,32,112,97,116,104,126,97,28,197,248,22,52,198,6,0,0,202, -250,22,252,39,2,2,252,255,0,249,22,252,184,1,6,13,13,109,111,100,117, -108,101,32,112,97,116,104,126,97,28,197,248,22,52,198,6,0,0,200,27,28, -248,22,252,222,1,194,249,22,252,227,1,195,32,248,22,252,40,3,248,22,252, -41,3,195,27,28,248,22,252,222,1,195,249,22,252,227,1,196,33,248,80,159, -39,36,34,194,91,159,35,11,90,161,35,32,11,28,248,22,252,222,1,198,250, -22,7,67,105,103,110,111,114,101,100,252,7,1,249,22,252,227,1,202,34,2, -252,7,1,248,22,252,34,3,197,27,28,248,22,252,222,1,199,249,22,252,227, -1,200,35,249,80,159,44,34,34,196,5,0,27,28,248,22,252,222,1,200,249, -22,252,227,1,201,36,249,22,252,184,1,6,3,3,44,126,97,248,22,252,210, -1,248,22,252,24,3,248,80,159,48,36,34,199,27,28,248,22,252,222,1,201, -249,22,252,227,1,202,37,248,22,42,249,22,252,159,1,196,248,22,252,210,1, -248,22,252,24,3,199,27,28,248,22,252,222,1,202,249,22,252,227,1,203,38, -27,249,22,252,61,3,80,159,48,33,34,248,22,252,24,3,201,28,192,248,22, -52,193,10,27,250,22,116,80,159,49,58,34,248,22,252,76,3,247,22,252,210, -2,89,162,32,32,38,9,223,17,27,247,22,110,87,94,250,22,115,80,159,36, -58,34,248,22,252,76,3,247,22,252,210,2,195,192,87,95,27,250,22,116,196, -198,89,162,40,32,32,9,222,11,87,94,28,192,28,28,248,22,41,193,10,249, -22,252,12,2,196,194,12,252,22,252,36,2,2,252,255,0,6,71,71,109,111, -100,117,108,101,32,112,114,101,118,105,111,117,115,108,121,32,108,111,97,100,101, -100,32,119,105,116,104,32,115,117,102,102,105,120,32,126,115,44,32,99,97,110, -110,111,116,32,108,111,97,100,32,119,105,116,104,32,115,117,102,102,105,120,32, -126,115,58,32,126,101,28,249,22,252,10,2,10,199,6,0,0,197,28,249,22, -252,10,2,10,201,6,0,0,199,23,15,12,28,192,12,87,95,27,249,22,17, -247,22,15,80,159,50,8,28,34,27,247,22,252,210,2,249,22,3,89,162,32, -33,46,9,226,13,14,2,3,28,249,22,252,12,2,248,22,53,199,197,28,249, -22,252,10,2,248,22,52,199,195,251,22,252,36,2,2,252,255,0,6,26,26, -99,121,99,108,101,32,105,110,32,108,111,97,100,105,110,103,32,97,116,32,126, -101,58,32,126,101,198,249,22,2,22,53,248,22,67,249,22,51,205,201,12,12, -195,27,248,22,42,198,20,14,159,80,159,48,8,28,34,249,22,51,247,22,252, -210,2,204,20,14,159,80,158,48,51,250,80,158,51,52,249,22,19,11,80,158, -53,51,22,234,195,249,247,80,159,50,50,34,205,248,22,42,248,22,252,210,1, -248,22,252,24,3,203,250,22,115,196,198,197,28,28,248,22,252,222,1,203,11, -27,248,22,252,136,1,23,17,28,192,192,28,248,22,50,23,17,249,22,252,10, -2,248,22,52,23,19,2,252,1,1,11,250,22,115,80,159,49,59,34,28,248, -22,252,136,1,23,19,249,22,51,23,20,247,23,16,249,22,51,23,20,247,22, -252,53,3,254,22,252,224,1,23,19,23,18,23,16,206,205,204,203,12,194,87, -94,28,207,250,210,198,199,200,12,27,250,22,116,80,159,38,58,34,248,22,252, -76,3,247,22,252,210,2,89,162,32,32,38,9,223,6,27,247,22,110,87,94, -250,22,115,80,159,36,58,34,248,22,252,76,3,247,22,252,210,2,195,192,250, -22,115,195,200,66,97,116,116,97,99,104,252,8,1,83,159,32,93,80,159,32, -8,32,33,89,162,32,32,49,2,69,223,0,249,80,159,34,43,34,27,248,22, -252,217,1,6,11,11,80,76,84,67,79,76,76,69,67,84,83,28,192,192,6, -0,0,249,22,51,250,22,252,33,3,248,22,252,51,3,69,97,100,100,111,110, -45,100,105,114,252,9,1,247,22,252,215,1,6,8,8,99,111,108,108,101,99, -116,115,27,249,22,5,89,162,32,33,36,9,222,27,247,193,28,192,28,248,22, -252,28,3,193,248,22,59,248,22,252,40,3,194,11,11,252,22,59,89,162,32, -32,35,9,222,27,248,22,252,217,1,6,7,7,80,76,84,72,79,77,69,28, -192,249,22,252,33,3,194,6,8,8,99,111,108,108,101,99,116,115,11,89,162, -32,32,36,9,223,12,249,80,159,34,44,34,248,22,252,51,3,69,101,120,101, -99,45,102,105,108,101,252,10,1,6,8,8,99,111,108,108,101,99,116,115,89, -162,32,32,38,9,223,12,249,80,159,34,44,34,248,22,252,51,3,2,252,10, -1,249,22,252,33,3,2,252,4,1,6,8,8,99,111,108,108,101,99,116,115, -89,162,32,32,39,9,223,12,249,80,159,34,44,34,248,22,252,51,3,2,252, -10,1,250,22,252,33,3,2,252,4,1,2,252,4,1,6,8,8,99,111,108, -108,101,99,116,115,89,162,32,32,40,9,223,12,249,80,159,34,44,34,248,22, -252,51,3,2,252,10,1,251,22,252,33,3,2,252,4,1,2,252,4,1,2, -252,4,1,6,8,8,99,111,108,108,101,99,116,115,28,192,192,9,83,159,32, -93,80,159,32,8,33,33,89,162,32,33,35,2,71,222,27,248,22,252,4,1, -194,28,192,192,248,22,252,5,1,194,83,159,32,97,80,159,32,8,34,33,80, -159,32,8,35,33,80,159,32,8,36,33,80,159,32,8,37,33,80,159,32,8, -38,33,26,9,22,252,89,2,63,101,118,116,252,11,1,11,33,32,11,248,22, -59,249,22,51,22,252,88,2,32,247,22,252,112,2,11,21,93,32,83,159,32, -93,80,159,32,8,39,33,89,162,32,33,37,2,83,223,0,87,94,28,28,248, -22,0,194,249,22,34,195,32,11,12,250,22,252,39,2,2,83,6,19,19,112, -114,111,99,101,100,117,114,101,32,40,97,114,105,116,121,32,48,41,196,248,80, -159,33,8,35,34,89,162,32,33,34,9,223,2,247,192,83,159,32,93,80,159, -32,8,40,33,89,162,32,33,36,2,85,222,87,94,28,248,22,252,251,2,193, -12,250,22,252,39,2,2,85,6,7,7,99,104,97,110,110,101,108,195,248,22, -252,237,2,193,83,159,32,93,80,159,32,8,41,33,89,162,32,33,36,2,87, -222,87,94,28,248,22,252,251,2,193,12,250,22,252,39,2,2,87,6,7,7, -99,104,97,110,110,101,108,195,249,22,252,238,2,32,194,83,159,32,93,80,159, -32,8,42,33,89,162,32,34,37,2,89,222,87,94,28,248,22,252,251,2,193, -12,250,22,252,39,2,2,89,6,7,7,99,104,97,110,110,101,108,195,28,248, -22,252,237,2,249,22,252,250,2,195,196,12,11,83,159,32,93,80,159,32,8, -43,33,89,162,32,32,32,2,91,222,247,22,252,210,2,83,159,32,93,80,159, -32,8,44,33,89,162,32,33,37,2,93,223,0,87,94,28,249,22,181,195,37, -12,250,22,252,39,2,2,93,6,1,1,53,196,248,80,159,33,8,45,34,11, -83,159,32,93,80,159,32,8,46,33,89,162,32,33,37,2,97,223,0,87,94, -28,249,22,181,195,37,12,250,22,252,39,2,2,97,6,1,1,53,196,248,80, -159,33,8,45,34,10,83,159,32,93,80,159,32,8,45,33,89,162,32,33,41, -2,95,223,0,27,248,22,252,188,2,65,101,109,112,116,121,252,12,1,27,247, -22,252,188,2,87,94,20,14,159,80,158,34,51,250,80,158,37,52,249,22,19, -11,80,158,39,51,22,252,210,2,196,87,96,249,22,239,194,66,35,37,114,53, -114,115,252,13,1,248,22,237,2,252,13,1,248,22,238,21,95,64,111,110,108, -121,252,14,1,68,109,122,115,99,104,101,109,101,252,15,1,2,177,28,195,12, -249,22,3,89,162,32,33,37,9,222,249,22,252,73,3,194,249,22,235,2,252, -15,1,196,21,15,203,63,99,97,114,252,16,1,63,99,100,114,252,17,1,64, -99,97,97,114,252,18,1,64,99,97,100,114,252,19,1,64,99,100,97,114,252, -20,1,64,99,100,100,114,252,21,1,65,99,97,97,97,114,252,22,1,65,99, -97,97,100,114,252,23,1,65,99,97,100,97,114,252,24,1,65,99,97,100,100, -114,252,25,1,65,99,100,97,97,114,252,26,1,65,99,100,97,100,114,252,27, -1,65,99,100,100,97,114,252,28,1,65,99,100,100,100,114,252,29,1,66,99, -97,97,97,97,114,252,30,1,66,99,97,97,97,100,114,252,31,1,66,99,97, -97,100,97,114,252,32,1,66,99,97,97,100,100,114,252,33,1,66,99,97,100, -97,97,114,252,34,1,66,99,97,100,97,100,114,252,35,1,66,99,97,100,100, -97,114,252,36,1,66,99,97,100,100,100,114,252,37,1,66,99,100,97,97,97, -114,252,38,1,66,99,100,97,97,100,114,252,39,1,66,99,100,97,100,97,114, -252,40,1,66,99,100,97,100,100,114,252,41,1,66,99,100,100,97,97,114,252, -42,1,66,99,100,100,97,100,114,252,43,1,66,99,100,100,100,97,114,252,44, -1,66,99,100,100,100,100,114,252,45,1,63,109,97,112,252,46,1,61,61,252, -47,1,61,60,252,48,1,61,62,252,49,1,62,60,61,252,50,1,62,62,61, -252,51,1,63,109,97,120,252,52,1,63,109,105,110,252,53,1,61,43,252,54, -1,61,45,252,55,1,61,42,252,56,1,61,47,252,57,1,63,97,98,115,252, -58,1,63,103,99,100,252,59,1,63,108,99,109,252,60,1,63,101,120,112,252, -61,1,63,108,111,103,252,62,1,63,115,105,110,252,63,1,63,99,111,115,252, -64,1,63,116,97,110,252,65,1,63,110,111,116,252,66,1,63,101,113,63,252, -67,1,1,30,99,97,108,108,45,119,105,116,104,45,99,117,114,114,101,110,116, -45,99,111,110,116,105,110,117,97,116,105,111,110,252,68,1,71,109,97,107,101, -45,115,116,114,105,110,103,252,69,1,74,115,121,109,98,111,108,45,62,115,116, -114,105,110,103,252,70,1,74,115,116,114,105,110,103,45,62,115,121,109,98,111, -108,252,71,1,76,109,97,107,101,45,114,101,99,116,97,110,103,117,108,97,114, -252,72,1,74,101,120,97,99,116,45,62,105,110,101,120,97,99,116,252,73,1, -74,105,110,101,120,97,99,116,45,62,101,120,97,99,116,252,74,1,74,110,117, -109,98,101,114,45,62,115,116,114,105,110,103,252,75,1,74,115,116,114,105,110, -103,45,62,110,117,109,98,101,114,252,76,1,2,14,72,111,117,116,112,117,116, -45,112,111,114,116,63,252,77,1,78,99,117,114,114,101,110,116,45,105,110,112, -117,116,45,112,111,114,116,252,78,1,79,99,117,114,114,101,110,116,45,111,117, -116,112,117,116,45,112,111,114,116,252,79,1,78,99,117,114,114,101,110,116,45, -101,114,114,111,114,45,112,111,114,116,252,80,1,75,111,112,101,110,45,105,110, -112,117,116,45,102,105,108,101,252,81,1,76,111,112,101,110,45,111,117,116,112, -117,116,45,102,105,108,101,252,82,1,76,99,108,111,115,101,45,105,110,112,117, -116,45,112,111,114,116,252,83,1,77,99,108,111,115,101,45,111,117,116,112,117, -116,45,112,111,114,116,252,84,1,79,119,105,116,104,45,111,117,116,112,117,116, -45,116,111,45,102,105,108,101,252,85,1,73,116,114,97,110,115,99,114,105,112, -116,45,111,110,252,86,1,74,116,114,97,110,115,99,114,105,112,116,45,111,102, -102,252,87,1,72,102,108,117,115,104,45,111,117,116,112,117,116,252,88,1,73, -115,116,114,105,110,103,45,108,101,110,103,116,104,252,89,1,72,115,116,114,105, -110,103,45,99,105,60,61,63,252,90,1,72,115,116,114,105,110,103,45,99,105, -62,61,63,252,91,1,73,115,116,114,105,110,103,45,97,112,112,101,110,100,252, -92,1,72,115,116,114,105,110,103,45,62,108,105,115,116,252,93,1,72,108,105, -115,116,45,62,115,116,114,105,110,103,252,94,1,72,115,116,114,105,110,103,45, -102,105,108,108,33,252,95,1,73,118,101,99,116,111,114,45,108,101,110,103,116, -104,252,96,1,72,118,101,99,116,111,114,45,62,108,105,115,116,252,97,1,72, -108,105,115,116,45,62,118,101,99,116,111,114,252,98,1,72,118,101,99,116,111, -114,45,102,105,108,108,33,252,99,1,76,99,104,97,114,45,97,108,112,104,97, -98,101,116,105,99,63,252,100,1,73,99,104,97,114,45,110,117,109,101,114,105, -99,63,252,101,1,76,99,104,97,114,45,119,104,105,116,101,115,112,97,99,101, -63,252,102,1,76,99,104,97,114,45,117,112,112,101,114,45,99,97,115,101,63, -252,103,1,76,99,104,97,114,45,108,111,119,101,114,45,99,97,115,101,63,252, -104,1,73,99,104,97,114,45,62,105,110,116,101,103,101,114,252,105,1,73,105, -110,116,101,103,101,114,45,62,99,104,97,114,252,106,1,73,99,104,97,114,45, -100,111,119,110,99,97,115,101,252,107,1,1,21,99,97,108,108,45,119,105,116, -104,45,111,117,116,112,117,116,45,102,105,108,101,252,108,1,1,20,99,97,108, -108,45,119,105,116,104,45,105,110,112,117,116,45,102,105,108,101,252,109,1,1, -20,119,105,116,104,45,105,110,112,117,116,45,102,114,111,109,45,102,105,108,101, -252,110,1,65,97,112,112,108,121,252,111,1,68,102,111,114,45,101,97,99,104, -252,112,1,67,115,121,109,98,111,108,63,252,113,1,65,112,97,105,114,63,252, -114,1,64,99,111,110,115,252,115,1,68,115,101,116,45,99,97,114,33,252,116, -1,68,115,101,116,45,99,100,114,33,252,117,1,65,110,117,108,108,63,252,118, -1,65,108,105,115,116,63,252,119,1,64,108,105,115,116,252,120,1,66,108,101, -110,103,116,104,252,121,1,66,97,112,112,101,110,100,252,122,1,67,114,101,118, -101,114,115,101,252,123,1,69,108,105,115,116,45,116,97,105,108,252,124,1,68, -108,105,115,116,45,114,101,102,252,125,1,64,109,101,109,113,252,126,1,64,109, -101,109,118,252,127,1,66,109,101,109,98,101,114,252,128,1,64,97,115,115,113, -252,129,1,64,97,115,115,118,252,130,1,65,97,115,115,111,99,252,131,1,70, -112,114,111,99,101,100,117,114,101,63,252,132,1,67,110,117,109,98,101,114,63, -252,133,1,68,99,111,109,112,108,101,120,63,252,134,1,65,114,101,97,108,63, -252,135,1,69,114,97,116,105,111,110,97,108,63,252,136,1,68,105,110,116,101, -103,101,114,63,252,137,1,66,101,120,97,99,116,63,252,138,1,68,105,110,101, -120,97,99,116,63,252,139,1,65,122,101,114,111,63,252,140,1,69,112,111,115, -105,116,105,118,101,63,252,141,1,69,110,101,103,97,116,105,118,101,63,252,142, -1,64,111,100,100,63,252,143,1,65,101,118,101,110,63,252,144,1,68,113,117, -111,116,105,101,110,116,252,145,1,69,114,101,109,97,105,110,100,101,114,252,146, -1,66,109,111,100,117,108,111,252,147,1,65,102,108,111,111,114,252,148,1,67, -99,101,105,108,105,110,103,252,149,1,68,116,114,117,110,99,97,116,101,252,150, -1,65,114,111,117,110,100,252,151,1,69,110,117,109,101,114,97,116,111,114,252, -152,1,71,100,101,110,111,109,105,110,97,116,111,114,252,153,1,64,97,115,105, -110,252,154,1,64,97,99,111,115,252,155,1,64,97,116,97,110,252,156,1,64, -115,113,114,116,252,157,1,64,101,120,112,116,252,158,1,70,109,97,107,101,45, -112,111,108,97,114,252,159,1,69,114,101,97,108,45,112,97,114,116,252,160,1, -69,105,109,97,103,45,112,97,114,116,252,161,1,65,97,110,103,108,101,252,162, -1,69,109,97,103,110,105,116,117,100,101,252,163,1,71,105,110,112,117,116,45, -112,111,114,116,63,252,164,1,64,114,101,97,100,252,165,1,69,114,101,97,100, -45,99,104,97,114,252,166,1,69,112,101,101,107,45,99,104,97,114,252,167,1, -71,101,111,102,45,111,98,106,101,99,116,63,252,168,1,71,99,104,97,114,45, -114,101,97,100,121,63,252,169,1,65,119,114,105,116,101,252,170,1,67,100,105, -115,112,108,97,121,252,171,1,67,110,101,119,108,105,110,101,252,172,1,70,119, -114,105,116,101,45,99,104,97,114,252,173,1,64,108,111,97,100,252,174,1,67, -115,116,114,105,110,103,63,252,175,1,66,115,116,114,105,110,103,252,176,1,70, -115,116,114,105,110,103,45,114,101,102,252,177,1,71,115,116,114,105,110,103,45, -115,101,116,33,252,178,1,68,115,116,114,105,110,103,61,63,252,179,1,69,115, -117,98,115,116,114,105,110,103,252,180,1,71,115,116,114,105,110,103,45,99,111, -112,121,252,181,1,71,115,116,114,105,110,103,45,99,105,61,63,252,182,1,68, -115,116,114,105,110,103,60,63,252,183,1,68,115,116,114,105,110,103,62,63,252, -184,1,69,115,116,114,105,110,103,60,61,63,252,185,1,69,115,116,114,105,110, -103,62,61,63,252,186,1,71,115,116,114,105,110,103,45,99,105,60,63,252,187, -1,71,115,116,114,105,110,103,45,99,105,62,63,252,188,1,67,118,101,99,116, -111,114,63,252,189,1,71,109,97,107,101,45,118,101,99,116,111,114,252,190,1, -66,118,101,99,116,111,114,252,191,1,70,118,101,99,116,111,114,45,114,101,102, -252,192,1,71,118,101,99,116,111,114,45,115,101,116,33,252,193,1,65,99,104, -97,114,63,252,194,1,66,99,104,97,114,61,63,252,195,1,66,99,104,97,114, -60,63,252,196,1,66,99,104,97,114,62,63,252,197,1,67,99,104,97,114,60, -61,63,252,198,1,67,99,104,97,114,62,61,63,252,199,1,69,99,104,97,114, -45,99,105,61,63,252,200,1,69,99,104,97,114,45,99,105,60,63,252,201,1, -69,99,104,97,114,45,99,105,62,63,252,202,1,70,99,104,97,114,45,99,105, -60,61,63,252,203,1,70,99,104,97,114,45,99,105,62,61,63,252,204,1,71, -99,104,97,114,45,117,112,99,97,115,101,252,205,1,68,98,111,111,108,101,97, -110,63,252,206,1,64,101,113,118,63,252,207,1,66,101,113,117,97,108,63,252, -208,1,2,125,76,99,97,108,108,45,119,105,116,104,45,118,97,108,117,101,115, -252,209,1,66,118,97,108,117,101,115,252,210,1,64,101,118,97,108,252,211,1, -2,71,2,93,2,97,2,91,72,100,121,110,97,109,105,99,45,119,105,110,100, -252,212,1,9,193,97,68,35,37,107,101,114,110,101,108,252,213,1,2,114,74, -35,37,115,109,97,108,108,45,115,99,104,101,109,101,252,214,1,2,129,2,127, -95,2,252,213,1,2,100,2,169,0}; - EVAL_ONE_SIZED_STR((char *)expr, 14100); +4,16,44,18,98,64,104,101,114,101,112,38,98,36,10,32,11,96,159,68,35, +37,100,101,102,105,110,101,113,9,11,159,70,35,37,109,101,109,116,114,97,99, +101,114,9,11,159,74,35,37,115,109,97,108,108,45,115,99,104,101,109,101,115, +9,11,159,73,35,37,109,111,114,101,45,115,99,104,101,109,101,116,9,11,16, +92,2,53,2,2,2,87,2,2,2,14,2,2,2,59,2,2,2,57,2,2, +2,22,2,2,2,63,2,2,2,30,2,2,2,47,2,2,2,71,2,2,2, +75,2,2,2,91,2,2,2,79,2,2,2,32,2,2,2,81,2,2,2,69, +2,2,2,51,2,2,2,83,2,2,2,95,2,2,2,85,2,2,2,67,2, +2,2,89,2,2,2,98,2,2,2,10,2,2,2,61,2,2,2,55,2,2, +2,18,2,2,2,65,2,2,2,20,2,2,2,34,2,2,2,16,2,2,2, +97,2,2,2,49,2,2,2,36,2,2,2,26,2,2,2,38,2,2,2,73, +2,2,2,8,2,2,2,24,2,2,2,40,2,2,2,12,2,2,2,28,2, +2,2,77,2,2,2,4,2,2,2,6,2,2,2,93,2,2,98,35,10,33, +11,94,159,76,35,37,115,116,120,99,97,115,101,45,115,99,104,101,109,101,117, +9,11,159,2,100,9,11,16,0,96,34,8,254,1,11,16,0,16,4,33,11, +61,120,118,3,1,7,101,110,118,51,57,57,51,119,18,100,2,112,41,36,35, +34,33,16,8,40,11,3,1,4,103,53,50,54,120,3,1,4,103,53,50,55, +121,3,1,4,103,53,50,56,122,3,1,7,101,110,118,51,57,57,57,123,2, +123,2,123,16,8,39,11,61,95,124,64,97,114,103,115,125,64,98,111,100,121, +126,3,1,7,101,110,118,52,48,48,48,127,2,127,2,127,18,158,2,112,41, +18,158,2,112,41,18,16,2,95,66,115,114,99,116,97,103,128,42,93,8,252, +57,10,95,9,8,252,57,10,69,35,37,115,116,120,99,97,115,101,129,18,106, +64,100,101,115,116,130,49,36,35,34,33,40,39,16,4,48,11,3,1,4,103, +53,51,51,131,3,1,7,101,110,118,52,48,49,50,132,16,4,47,11,68,99, +111,110,116,109,97,114,107,133,3,1,7,101,110,118,52,48,49,51,134,16,4, +46,11,3,1,4,103,53,51,53,135,3,1,7,101,110,118,52,48,50,50,136, +16,4,45,11,64,102,117,110,99,137,3,1,7,101,110,118,52,48,50,51,138, +16,4,44,11,3,1,4,103,53,51,55,139,3,1,7,101,110,118,52,48,51, +50,140,16,4,43,11,67,110,101,119,109,97,114,107,141,3,1,7,101,110,118, +52,48,51,51,142,18,158,63,99,116,120,143,49,18,158,63,108,101,116,144,49, +18,158,2,143,49,18,158,2,143,49,18,16,2,103,93,16,2,158,11,49,9, +57,98,56,10,32,11,94,159,2,115,9,11,159,2,100,9,11,16,6,66,115, +121,110,116,97,120,145,29,146,11,11,73,115,121,110,116,97,120,45,99,97,115, +101,42,42,147,2,146,1,20,101,108,108,105,112,115,105,115,45,99,111,117,110, +116,45,101,114,114,111,114,148,2,146,98,55,10,33,11,95,159,64,35,37,115, +99,149,9,11,159,2,115,9,11,159,2,100,9,11,16,0,96,54,8,254,1, +11,16,0,16,4,53,11,2,118,3,1,6,101,110,118,51,55,55,150,16,4, +52,11,68,104,101,114,101,45,115,116,120,151,3,1,6,101,110,118,51,55,57, +152,16,4,51,11,2,151,2,152,13,16,3,33,2,146,2,129,93,8,252,57, +10,16,6,50,11,61,114,153,63,115,114,99,154,3,1,7,101,110,118,52,48, +51,54,155,2,155,95,9,8,252,57,10,2,129,18,158,2,143,49,18,158,2, +143,49,18,158,2,143,49,18,158,2,144,49,18,158,2,143,49,18,158,2,143, +49,18,158,2,143,49,18,158,66,108,97,109,98,100,97,156,49,18,158,2,143, +49,18,158,2,144,49,18,158,2,143,49,18,158,2,143,49,18,158,2,143,49, +18,158,1,31,117,110,105,111,110,101,100,45,109,101,109,116,114,97,99,101,45, +116,114,97,99,107,105,110,103,45,118,97,108,117,101,157,49,18,158,2,143,49, +18,158,2,143,49,18,158,2,143,49,18,158,2,143,49,18,158,1,22,119,105, +116,104,45,99,111,110,116,105,110,117,97,116,105,111,110,45,109,97,114,107,158, +49,18,158,1,30,109,101,109,111,114,121,45,116,114,97,99,101,45,99,111,110, +116,105,110,117,97,116,105,111,110,45,109,97,114,107,159,49,18,158,2,143,49, +18,158,2,143,49,18,158,2,143,49,18,158,2,143,49,18,158,2,143,49,18, +158,2,143,49,18,158,64,115,101,116,33,160,49,18,158,2,143,49,18,158,1, +30,110,101,119,45,109,101,109,116,114,97,99,101,45,116,114,97,99,107,105,110, +103,45,102,117,110,99,116,105,111,110,161,49,18,158,2,143,49,18,158,2,143, +49,18,158,2,143,49,18,158,2,143,49,11,134,83,159,32,93,80,159,32,32, +33,89,162,32,33,36,2,4,222,27,248,22,252,23,3,194,28,192,192,28,248, +22,252,136,1,194,27,248,22,252,36,3,195,28,192,192,248,22,252,37,3,195, +11,83,159,32,93,80,159,32,33,33,248,22,252,60,3,5,12,40,91,46,93, +91,94,46,93,42,124,41,36,83,159,32,93,80,159,32,34,33,89,162,32,34, +45,2,8,223,0,87,95,28,27,248,22,252,23,3,195,28,192,192,28,248,22, +252,136,1,195,27,248,22,252,36,3,196,28,192,192,248,22,252,37,3,196,11, +12,252,22,252,40,2,2,8,6,25,25,112,97,116,104,32,111,114,32,118,97, +108,105,100,45,112,97,116,104,32,115,116,114,105,110,103,32,198,199,28,28,248, +22,252,136,1,195,10,248,22,252,188,1,195,12,252,22,252,40,2,2,8,6, +21,21,115,116,114,105,110,103,32,111,114,32,98,121,116,101,32,115,116,114,105, +110,103,33,198,199,91,159,35,11,90,161,35,32,11,248,22,252,35,3,197,87, +94,28,192,12,250,22,252,41,2,2,8,6,36,36,99,97,110,110,111,116,32, +97,100,100,32,97,32,115,117,102,102,105,120,32,116,111,32,97,32,114,111,111, +116,32,112,97,116,104,58,32,199,27,248,22,252,27,3,250,22,252,68,3,80, +159,40,33,34,248,22,252,25,3,199,28,248,22,252,136,1,203,249,22,252,212, +1,204,8,63,202,28,248,22,252,23,3,194,249,22,252,34,3,195,194,192,83, +159,32,93,80,159,32,35,33,249,22,252,138,1,7,92,7,92,83,159,32,93, +80,159,32,36,33,89,162,32,33,43,2,12,223,0,87,94,28,27,248,22,252, +23,3,195,28,192,192,28,248,22,252,136,1,195,27,248,22,252,36,3,196,28, +192,192,248,22,252,37,3,196,11,12,250,22,252,40,2,76,110,111,114,109,97, +108,45,112,97,116,104,45,99,97,115,101,162,6,25,25,112,97,116,104,32,111, +114,32,118,97,108,105,100,45,112,97,116,104,32,115,116,114,105,110,103,196,28, +249,22,252,11,2,247,22,252,219,1,67,119,105,110,100,111,119,115,163,27,28, +248,22,252,136,1,195,194,248,22,252,24,3,195,28,249,22,252,63,3,0,21, +35,114,120,34,94,91,92,92,93,91,92,92,93,91,63,93,91,92,92,93,34, +194,28,248,22,252,136,1,195,248,22,252,26,3,195,194,27,248,22,252,175,1, +194,248,22,252,26,3,250,22,252,69,3,0,6,35,114,120,34,47,34,28,249, +22,252,63,3,0,22,35,114,120,34,91,47,92,92,93,91,46,32,93,43,91, +47,92,92,93,42,36,34,198,196,250,22,252,69,3,0,19,35,114,120,34,91, +32,46,93,43,40,91,47,92,92,93,42,41,36,34,199,6,2,2,92,49,80, +159,38,35,34,28,249,22,252,11,2,247,22,252,219,1,65,109,97,99,111,115, +164,248,22,252,26,3,248,22,252,175,1,28,248,22,252,136,1,196,195,248,22, +252,24,3,196,28,248,22,252,136,1,194,248,22,252,26,3,194,193,83,159,32, +93,80,159,32,37,33,91,159,34,11,90,161,33,33,11,89,162,32,33,36,65, +99,104,101,99,107,165,222,28,248,22,130,193,12,250,22,252,40,2,2,14,6, +4,4,114,101,97,108,195,20,12,95,33,89,162,32,34,44,2,14,224,0,1, +87,95,248,193,195,248,193,196,27,248,22,176,197,27,249,22,173,198,195,27,249, +22,172,199,196,28,249,22,181,199,199,28,250,22,184,196,32,195,28,248,22,133, +198,32,0,3,48,46,48,28,248,22,188,194,248,22,173,249,199,248,22,173,196, +248,22,173,197,249,198,195,194,0,6,43,110,97,110,46,48,89,162,32,34,46, +72,102,105,110,100,45,98,101,116,119,101,101,110,166,223,0,28,248,22,132,194, +193,27,248,22,144,195,27,248,22,144,197,28,249,22,182,195,194,248,22,170,194, +249,22,172,195,248,22,175,249,199,248,22,175,249,22,173,204,201,248,22,175,249, +22,173,203,201,83,159,32,93,80,159,32,38,33,89,162,32,32,39,2,16,222, +91,159,36,11,90,161,33,32,11,83,160,38,32,33,11,90,161,33,33,11,83, +160,38,32,33,11,90,161,33,34,11,83,160,38,32,33,11,90,161,33,35,11, +89,162,32,32,33,1,24,114,101,112,45,101,114,114,111,114,45,101,115,99,97, +112,101,45,104,97,110,100,108,101,114,167,223,1,247,207,250,22,31,89,162,32, +32,36,9,225,6,5,3,90,161,33,32,10,247,22,252,44,2,90,161,33,33, +10,247,22,252,31,2,87,94,248,22,252,44,2,195,248,22,252,31,2,11,89, +162,32,32,35,9,224,5,4,248,22,9,89,162,32,33,36,9,224,2,1,247, +91,159,33,11,20,12,95,33,192,89,162,32,32,37,69,114,101,112,108,45,108, +111,111,112,168,226,2,1,3,0,87,94,248,22,9,89,162,32,33,39,9,225, +4,3,2,250,22,31,89,162,32,32,36,9,225,5,4,6,87,94,248,22,252, +31,2,210,90,161,33,33,10,192,12,89,162,32,32,36,9,223,3,27,247,247, +22,40,87,94,28,248,22,252,70,1,193,248,194,12,12,249,22,6,89,162,32, +32,35,9,223,2,248,247,22,252,32,2,28,248,22,206,194,248,22,252,30,2, +194,193,89,162,33,33,35,9,222,249,22,3,247,22,39,194,89,162,32,32,35, +9,224,5,4,90,161,33,33,10,247,22,252,31,2,87,94,248,22,252,31,2, +11,90,161,33,32,10,11,12,247,192,89,162,32,32,36,9,225,5,4,3,87, +95,248,22,252,44,2,208,248,22,252,31,2,210,90,161,33,33,10,11,90,161, +33,32,10,11,12,83,159,32,93,80,159,32,39,33,89,162,32,33,43,2,18, +222,87,94,28,27,248,22,252,23,3,194,28,192,192,28,248,22,252,136,1,194, +27,248,22,252,36,3,195,28,192,192,248,22,252,37,3,195,11,12,250,22,252, +40,2,2,18,6,25,25,112,97,116,104,32,111,114,32,115,116,114,105,110,103, +32,40,115,97,110,115,32,110,117,108,41,195,91,159,35,11,90,161,35,32,11, +248,22,252,35,3,196,28,194,248,22,252,186,2,249,22,252,160,2,248,22,252, +165,1,249,22,252,184,1,6,36,36,108,111,97,100,47,99,100,58,32,99,97, +110,110,111,116,32,111,112,101,110,32,97,32,100,105,114,101,99,116,111,114,121, +58,32,126,115,201,247,22,15,28,248,22,252,188,1,193,87,94,28,248,22,252, +29,3,193,12,248,22,252,186,2,249,22,252,160,2,248,22,252,165,1,250,22, +252,184,1,6,65,65,108,111,97,100,47,99,100,58,32,100,105,114,101,99,116, +111,114,121,32,111,102,32,126,115,32,100,111,101,115,32,110,111,116,32,101,120, +105,115,116,32,40,99,117,114,114,101,110,116,32,100,105,114,101,99,116,111,114, +121,32,105,115,32,126,115,41,202,247,22,252,53,3,247,22,15,27,247,22,252, +53,3,250,22,31,89,162,32,32,34,9,223,4,248,22,252,53,3,193,89,162, +32,32,34,9,223,5,248,22,252,88,1,193,89,162,32,32,34,9,223,3,248, +22,252,53,3,193,248,22,252,88,1,196,83,159,32,93,80,159,32,40,33,89, +162,32,35,39,2,20,222,87,94,28,27,248,22,252,23,3,196,28,192,192,28, +248,22,252,136,1,196,27,248,22,252,36,3,197,28,192,192,248,22,252,37,3, +197,11,12,250,22,252,40,2,196,6,25,25,112,97,116,104,32,111,114,32,115, +116,114,105,110,103,32,40,115,97,110,115,32,110,117,108,41,197,28,248,22,252, +38,3,195,248,193,195,27,247,22,252,90,1,248,194,28,193,249,22,252,39,3, +198,195,196,83,159,32,93,80,159,32,41,33,89,162,32,33,37,2,22,223,0, +250,80,159,35,40,34,22,252,88,1,2,22,196,83,159,32,93,80,159,32,42, +33,89,162,32,33,37,2,24,223,0,250,80,159,35,40,34,22,252,56,3,2, +24,196,83,159,32,93,80,159,32,43,33,27,248,22,252,60,3,248,22,252,211, +1,27,27,247,22,252,219,1,28,249,22,72,194,21,96,64,117,110,105,120,169, +64,98,101,111,115,170,65,111,115,107,105,116,171,66,109,97,99,111,115,120,172, +6,1,1,58,28,249,22,72,194,21,94,2,163,2,164,6,1,1,59,12,250, +22,252,184,1,6,14,14,40,91,94,126,97,93,42,41,126,97,40,46,42,41, +195,195,27,89,162,32,35,38,69,99,111,110,115,45,112,97,116,104,173,222,28, +249,22,252,194,1,195,5,0,249,22,65,194,196,249,22,51,248,22,252,27,3, +196,196,89,162,32,34,39,2,26,224,0,1,87,95,28,28,248,22,252,188,1, +195,10,248,22,252,136,1,195,12,250,22,252,40,2,2,26,6,21,21,98,121, +116,101,32,115,116,114,105,110,103,32,111,114,32,115,116,114,105,110,103,197,28, +28,248,22,58,196,249,22,4,22,252,23,3,197,11,12,250,22,252,40,2,2, +26,6,13,13,108,105,115,116,32,111,102,32,112,97,116,104,115,198,248,91,159, +33,11,20,12,95,33,192,89,162,32,33,43,64,108,111,111,112,174,226,3,2, +5,0,27,249,22,252,62,3,197,199,28,192,250,199,197,248,22,78,196,248,197, +248,22,87,197,250,199,197,200,9,28,248,22,252,136,1,196,248,22,252,211,1, +196,195,83,159,32,93,80,159,32,44,33,89,162,32,34,42,2,28,223,0,87, +95,28,27,248,22,252,23,3,195,28,192,192,28,248,22,252,136,1,195,27,248, +22,252,36,3,196,28,192,192,248,22,252,37,3,196,11,12,250,22,252,40,2, +2,28,6,25,25,112,97,116,104,32,111,114,32,115,116,114,105,110,103,32,40, +115,97,110,115,32,110,117,108,41,196,28,28,194,28,27,248,22,252,23,3,196, +28,192,192,28,248,22,252,136,1,196,27,248,22,252,36,3,197,28,192,192,248, +22,252,37,3,197,11,248,22,252,36,3,195,11,10,12,250,22,252,40,2,2, +28,6,29,29,35,102,32,111,114,32,114,101,108,97,116,105,118,101,32,112,97, +116,104,32,111,114,32,115,116,114,105,110,103,197,91,159,33,11,20,12,95,33, +28,28,248,22,252,36,3,195,91,159,35,11,90,161,35,32,11,248,22,252,35, +3,198,249,22,252,11,2,194,68,114,101,108,97,116,105,118,101,175,11,27,248, +22,252,217,1,6,4,4,80,65,84,72,27,89,162,32,33,36,67,119,105,110, +45,97,100,100,176,222,28,249,22,252,11,2,247,22,252,219,1,2,163,249,22, +51,248,22,252,27,3,5,1,46,194,192,248,91,159,33,11,20,12,95,33,192, +89,162,32,33,43,2,174,225,6,4,0,28,248,22,57,196,11,27,248,22,252, +39,3,248,22,52,198,27,249,22,252,34,3,195,198,28,248,22,252,28,3,193, +248,196,193,27,248,22,53,199,28,248,22,57,193,11,27,248,22,252,39,3,248, +22,52,195,27,249,22,252,34,3,195,201,28,248,22,252,28,3,193,248,199,193, +248,198,248,22,53,196,28,194,248,194,249,80,159,39,43,34,197,9,9,27,248, +22,252,39,3,196,28,248,22,252,28,3,193,248,194,193,11,89,162,32,33,43, +70,102,111,117,110,100,45,101,120,101,99,177,224,3,0,28,193,91,159,35,11, +90,161,35,32,11,248,22,252,35,3,198,28,248,22,252,23,3,193,27,249,22, +252,34,3,195,199,28,28,248,22,252,29,3,193,10,248,22,252,28,3,193,192, +27,248,22,252,40,3,200,28,249,22,252,13,2,194,201,11,28,248,22,252,36, +3,193,248,198,249,22,252,34,3,197,195,248,198,193,11,194,83,159,32,93,80, +159,32,45,33,89,162,32,34,41,2,30,222,87,94,28,27,248,22,252,23,3, +195,28,192,192,28,248,22,252,136,1,195,27,248,22,252,36,3,196,28,192,192, +248,22,252,37,3,196,11,12,250,22,252,40,2,195,6,25,25,112,97,116,104, +32,111,114,32,118,97,108,105,100,45,112,97,116,104,32,115,116,114,105,110,103, +196,28,248,22,252,36,3,194,12,248,22,252,186,2,249,22,252,130,2,248,22, +252,165,1,250,22,252,184,1,6,29,29,126,97,58,32,105,110,118,97,108,105, +100,32,114,101,108,97,116,105,118,101,32,112,97,116,104,58,32,126,115,199,200, +247,22,15,83,159,32,93,80,159,32,46,33,89,162,32,35,38,2,32,223,0, +87,94,249,80,159,34,45,34,195,196,249,22,3,89,162,32,33,37,9,224,2, +3,249,80,159,35,45,34,194,196,197,83,159,32,93,80,159,32,47,33,89,162, +32,35,38,2,34,222,27,247,22,252,54,3,248,91,159,33,11,20,12,95,33, +192,89,162,32,33,49,65,99,108,111,111,112,178,227,5,4,3,2,0,28,248, +22,57,198,248,22,252,186,2,249,22,252,160,2,248,22,252,165,1,251,22,252, +184,1,6,42,42,126,97,58,32,99,111,108,108,101,99,116,105,111,110,32,110, +111,116,32,102,111,117,110,100,58,32,126,115,32,105,110,32,97,110,121,32,111, +102,58,32,126,115,202,28,248,22,57,205,203,250,22,1,22,252,34,3,206,23, +15,201,247,22,15,27,249,22,252,34,3,248,22,52,201,198,28,248,22,252,29, +3,193,27,250,22,1,22,252,34,3,196,201,28,248,22,252,29,3,193,192,248, +195,248,22,53,201,248,194,248,22,53,200,193,83,159,32,93,80,159,32,48,33, +27,247,22,252,219,1,28,249,22,252,11,2,194,2,163,5,4,46,100,108,108, +28,249,22,72,194,21,94,2,172,2,164,5,6,46,100,121,108,105,98,5,3, +46,115,111,83,159,32,93,80,159,32,49,33,249,80,159,34,34,34,248,22,252, +27,3,5,10,95,108,111,97,100,101,114,46,115,115,80,159,34,48,34,83,159, +32,93,80,159,32,50,33,249,22,252,220,2,27,27,89,162,32,35,41,67,100, +97,116,101,62,61,63,179,222,28,193,27,249,22,5,89,162,32,33,39,9,223, +4,27,248,194,195,27,250,22,252,48,3,196,11,89,162,40,32,32,9,222,11, +28,192,249,22,51,195,194,11,195,27,28,196,11,193,28,192,192,28,193,28,196, +28,249,22,185,248,22,53,196,248,22,53,199,193,11,11,11,11,89,162,32,34, +8,31,1,25,100,101,102,97,117,108,116,45,108,111,97,100,47,117,115,101,45, +99,111,109,112,105,108,101,100,180,224,4,0,87,94,28,27,248,22,252,23,3, +196,28,192,192,28,248,22,252,136,1,196,27,248,22,252,36,3,197,28,192,192, +248,22,252,37,3,197,11,12,250,22,252,40,2,2,49,6,25,25,112,97,116, +104,32,111,114,32,118,97,108,105,100,45,112,97,116,104,32,115,116,114,105,110, +103,197,91,159,38,11,90,161,33,32,11,28,248,22,252,38,3,201,200,27,247, +22,252,90,1,28,192,249,22,252,39,3,203,194,201,90,161,35,33,11,248,22, +252,35,3,193,90,161,33,36,11,28,249,22,252,11,2,195,2,175,64,115,97, +109,101,181,193,90,161,33,37,11,247,22,252,55,3,27,89,162,32,34,36,66, +103,101,116,45,115,111,182,224,8,5,89,162,32,33,44,9,226,1,0,3,2, +252,22,252,34,3,199,201,6,6,6,110,97,116,105,118,101,247,22,252,220,1, +28,198,249,80,159,42,34,34,199,80,159,42,48,34,197,27,89,162,32,33,41, +62,122,111,183,225,9,6,4,250,22,252,34,3,196,198,249,80,159,39,34,34, +197,5,3,46,122,111,27,249,196,199,10,27,249,197,80,159,45,49,34,11,27, +249,22,5,89,162,32,33,39,9,223,7,27,193,27,250,22,252,48,3,196,11, +89,162,40,32,32,9,222,11,28,192,249,22,51,195,194,11,204,27,89,162,32, +33,40,68,119,105,116,104,45,100,105,114,184,224,13,10,20,14,159,80,158,33, +51,250,80,158,36,52,249,22,19,11,80,158,38,51,22,252,90,1,28,248,22, +252,23,3,196,195,247,22,252,53,3,247,194,27,27,250,23,17,23,16,199,198, +28,192,27,248,22,252,56,3,248,22,52,195,91,159,34,11,90,161,34,32,11, +248,195,248,22,42,248,22,252,210,1,248,22,252,25,3,249,80,159,56,34,34, +23,19,5,0,28,192,87,94,28,23,20,28,249,22,252,11,2,195,23,22,12, +248,22,252,186,2,249,22,252,127,2,248,22,252,165,1,251,22,252,184,1,6, +81,81,108,111,97,100,45,101,120,116,101,110,115,105,111,110,58,32,101,120,112, +101,99,116,101,100,32,109,111,100,117,108,101,32,100,101,99,108,97,114,97,116, +105,111,110,32,102,111,114,32,96,126,97,39,44,32,102,111,117,110,100,32,126, +97,32,116,104,114,111,117,103,104,32,108,111,97,100,101,114,58,32,126,101,23, +28,28,201,249,22,252,184,1,6,27,27,109,111,100,117,108,101,32,100,101,99, +108,97,114,97,116,105,111,110,32,102,111,114,32,96,126,97,39,203,6,4,4, +110,111,110,101,248,22,52,204,247,22,15,12,192,11,11,28,192,248,194,193,27, +250,23,17,23,16,200,198,28,192,248,195,89,162,32,32,37,9,224,18,1,249, +247,22,252,57,3,248,22,52,195,195,27,250,23,18,23,17,202,199,28,192,248, +196,89,162,32,32,37,9,224,19,1,249,247,22,252,89,1,248,22,52,195,195, +248,196,89,162,32,32,36,9,224,19,10,249,247,22,252,89,1,194,195,192,89, +162,32,33,36,9,222,87,94,28,28,248,22,0,193,249,22,34,194,34,11,12, +250,22,252,40,2,2,40,6,19,19,112,114,111,99,101,100,117,114,101,32,40, +97,114,105,116,121,32,50,41,195,192,83,159,32,93,80,159,32,53,33,89,162, +33,34,38,2,47,223,0,87,94,87,94,249,80,159,34,45,34,2,47,195,249, +22,3,89,162,32,33,36,9,223,2,249,80,159,34,45,34,2,47,195,196,250, +80,159,35,47,34,2,47,196,197,83,159,32,93,80,159,32,54,33,89,162,32, +33,36,2,49,223,0,249,247,80,159,34,50,34,195,11,248,22,252,1,3,89, +162,32,33,33,1,20,100,101,102,97,117,108,116,45,114,101,97,100,101,114,45, +103,117,97,114,100,185,222,192,83,159,32,93,80,159,32,55,33,248,22,252,60, +3,5,11,40,46,43,63,41,47,43,40,46,42,41,83,159,32,93,80,159,32, +56,33,248,22,252,60,3,5,2,94,44,83,159,32,93,80,159,32,57,33,248, +22,252,60,3,5,39,94,91,45,97,45,122,65,45,90,48,45,57,95,46,32, +93,43,40,47,43,91,45,97,45,122,65,45,90,48,45,57,95,46,32,93,43, +41,42,36,83,159,32,93,80,159,32,58,33,248,22,110,64,119,101,97,107,186, +83,159,32,93,80,159,32,59,33,249,22,110,2,186,65,101,113,117,97,108,187, +83,159,32,93,80,159,32,8,28,33,247,22,48,83,159,32,93,80,159,32,8, +29,34,11,83,159,32,93,80,159,32,8,30,34,11,83,159,32,93,80,159,32, +8,31,33,89,162,32,33,36,2,67,223,0,91,159,34,11,90,161,33,33,11, +83,160,38,32,33,11,20,12,95,33,192,89,162,32,35,8,28,1,29,115,116, +97,110,100,97,114,100,45,109,111,100,117,108,101,45,110,97,109,101,45,114,101, +115,111,108,118,101,114,188,225,2,3,1,28,28,248,22,50,196,249,22,252,11, +2,248,22,52,198,66,112,108,97,110,101,116,189,11,87,94,28,207,12,20,14, +159,80,158,34,51,250,80,158,37,52,249,22,19,11,80,158,39,51,22,252,211, +2,196,90,161,33,32,10,249,22,235,21,95,63,108,105,98,190,6,11,11,114, +101,115,111,108,118,101,114,46,115,115,6,6,6,112,108,97,110,101,116,1,27, +112,108,97,110,101,116,45,109,111,100,117,108,101,45,110,97,109,101,45,114,101, +115,111,108,118,101,114,191,12,250,210,198,199,200,28,195,27,89,162,32,32,45, +67,103,101,116,45,100,105,114,192,224,3,5,27,28,193,28,249,22,252,11,2, +195,80,159,36,8,29,34,80,159,34,8,30,34,27,248,22,252,213,1,248,22, +44,196,28,249,22,252,63,3,80,159,37,56,34,194,91,159,35,11,90,161,35, +32,11,248,22,252,35,3,248,22,252,27,3,250,22,252,197,1,200,33,248,22, +252,191,1,201,87,95,83,160,34,11,80,159,38,8,29,34,197,83,160,34,11, +80,159,38,8,30,34,192,192,11,11,28,192,192,27,247,22,252,90,1,28,192, +192,247,22,252,53,3,27,28,248,22,252,136,1,198,27,247,194,27,250,22,116, +80,159,41,59,34,249,22,51,204,198,89,162,40,32,32,9,222,11,28,192,192, +27,248,22,252,211,1,201,28,249,22,252,63,3,80,159,41,57,34,194,249,91, +159,33,11,20,12,95,33,192,89,162,32,34,45,2,174,224,10,0,27,249,22, +252,62,3,80,159,36,55,34,198,28,192,249,195,249,22,252,34,3,199,27,248, +22,78,198,28,249,22,252,194,1,194,5,1,46,2,181,28,249,22,252,194,1, +194,5,2,46,46,62,117,112,193,248,22,252,27,3,193,248,22,87,195,249,22, +252,34,3,197,248,22,252,27,3,199,196,194,248,22,59,249,22,252,159,1,6, +72,72,32,40,114,101,108,97,116,105,118,101,32,115,116,114,105,110,103,32,102, +111,114,109,32,109,117,115,116,32,99,111,110,116,97,105,110,32,111,110,108,121, +32,97,45,122,44,32,65,45,90,44,32,48,45,57,44,32,45,44,32,95,44, +32,46,44,32,47,44,32,97,110,100,32,6,37,37,115,112,97,99,101,44,32, +119,105,116,104,32,110,111,32,108,101,97,100,105,110,103,32,111,114,32,116,114, +97,105,108,105,110,103,32,47,41,28,248,22,252,23,3,198,28,248,22,252,37, +3,198,197,248,22,59,6,25,25,40,97,32,112,97,116,104,32,109,117,115,116, +32,98,101,32,97,98,115,111,108,117,116,101,41,28,28,248,22,50,198,248,22, +252,9,2,248,22,58,199,10,11,28,249,22,252,11,2,248,22,52,200,2,190, +250,22,116,80,159,39,59,34,249,22,51,202,247,22,252,54,3,89,162,32,32, +40,9,224,7,8,27,27,248,22,64,195,28,249,22,181,194,34,248,22,59,6, +5,5,109,122,108,105,98,28,249,22,183,194,34,248,22,80,195,11,28,192,28, +249,22,4,89,162,32,33,34,9,222,28,248,22,252,136,1,193,248,22,252,36, +3,193,11,194,28,248,22,252,136,1,248,22,78,195,28,248,22,252,36,3,248, +22,78,195,27,250,80,159,38,47,34,2,188,248,22,52,197,248,22,53,197,249, +22,252,34,3,194,248,22,78,197,11,11,11,11,28,249,22,252,11,2,248,22, +52,200,64,102,105,108,101,194,28,249,22,181,248,22,64,200,34,27,248,22,78, +199,28,248,22,252,136,1,193,28,27,248,22,252,23,3,194,28,192,192,28,248, +22,252,136,1,194,27,248,22,252,36,3,195,28,192,192,248,22,252,37,3,195, +11,249,22,252,39,3,194,247,196,11,11,11,11,87,94,28,28,248,22,252,23, +3,193,10,248,22,252,222,1,193,12,28,199,250,22,252,39,2,67,114,101,113, +117,105,114,101,195,249,22,252,184,1,6,17,17,98,97,100,32,109,111,100,117, +108,101,32,112,97,116,104,126,97,28,197,248,22,52,198,6,0,0,202,250,22, +252,40,2,2,188,249,22,252,184,1,6,13,13,109,111,100,117,108,101,32,112, +97,116,104,126,97,28,197,248,22,52,198,6,0,0,200,27,28,248,22,252,222, +1,194,249,22,252,227,1,195,32,248,22,252,41,3,248,22,252,42,3,195,27, +28,248,22,252,222,1,195,249,22,252,227,1,196,33,248,80,159,39,36,34,194, +91,159,35,11,90,161,35,32,11,28,248,22,252,222,1,198,250,22,7,67,105, +103,110,111,114,101,100,196,249,22,252,227,1,202,34,2,196,248,22,252,35,3, +197,27,28,248,22,252,222,1,199,249,22,252,227,1,200,35,249,80,159,44,34, +34,196,5,0,27,28,248,22,252,222,1,200,249,22,252,227,1,201,36,249,22, +252,184,1,6,3,3,44,126,97,248,22,252,210,1,248,22,252,25,3,248,80, +159,48,36,34,199,27,28,248,22,252,222,1,201,249,22,252,227,1,202,37,248, +22,42,249,22,252,159,1,196,248,22,252,210,1,248,22,252,25,3,199,27,28, +248,22,252,222,1,202,249,22,252,227,1,203,38,27,249,22,252,62,3,80,159, +48,33,34,248,22,252,25,3,201,28,192,248,22,52,193,10,27,250,22,116,80, +159,49,58,34,248,22,252,77,3,247,22,252,211,2,89,162,32,32,38,9,223, +17,27,247,22,110,87,94,250,22,115,80,159,36,58,34,248,22,252,77,3,247, +22,252,211,2,195,192,87,95,27,250,22,116,196,198,89,162,40,32,32,9,222, +11,87,94,28,192,28,28,248,22,41,193,10,249,22,252,13,2,196,194,12,252, +22,252,37,2,2,188,6,71,71,109,111,100,117,108,101,32,112,114,101,118,105, +111,117,115,108,121,32,108,111,97,100,101,100,32,119,105,116,104,32,115,117,102, +102,105,120,32,126,115,44,32,99,97,110,110,111,116,32,108,111,97,100,32,119, +105,116,104,32,115,117,102,102,105,120,32,126,115,58,32,126,101,28,249,22,252, +11,2,10,199,6,0,0,197,28,249,22,252,11,2,10,201,6,0,0,199,23, +15,12,28,192,12,87,95,27,249,22,17,247,22,15,80,159,50,8,28,34,27, +247,22,252,211,2,249,22,3,89,162,32,33,46,9,226,13,14,2,3,28,249, +22,252,13,2,248,22,53,199,197,28,249,22,252,11,2,248,22,52,199,195,251, +22,252,37,2,2,188,6,26,26,99,121,99,108,101,32,105,110,32,108,111,97, +100,105,110,103,32,97,116,32,126,101,58,32,126,101,198,249,22,2,22,53,248, +22,67,249,22,51,205,201,12,12,195,27,248,22,42,198,20,14,159,80,159,48, +8,28,34,249,22,51,247,22,252,211,2,204,20,14,159,80,158,48,51,250,80, +158,51,52,249,22,19,11,80,158,53,51,22,234,195,249,247,80,159,50,50,34, +205,248,22,42,248,22,252,210,1,248,22,252,25,3,203,250,22,115,196,198,197, +28,28,248,22,252,222,1,203,11,27,248,22,252,136,1,23,17,28,192,192,28, +248,22,50,23,17,249,22,252,11,2,248,22,52,23,19,2,190,11,250,22,115, +80,159,49,59,34,28,248,22,252,136,1,23,19,249,22,51,23,20,247,23,16, +249,22,51,23,20,247,22,252,54,3,254,22,252,224,1,23,19,23,18,23,16, +206,205,204,203,12,194,87,94,28,207,250,210,198,199,200,12,27,250,22,116,80, +159,38,58,34,248,22,252,77,3,247,22,252,211,2,89,162,32,32,38,9,223, +6,27,247,22,110,87,94,250,22,115,80,159,36,58,34,248,22,252,77,3,247, +22,252,211,2,195,192,250,22,115,195,200,66,97,116,116,97,99,104,197,83,159, +32,93,80,159,32,8,32,33,89,162,32,32,49,2,69,223,0,249,80,159,34, +43,34,27,248,22,252,217,1,6,11,11,80,76,84,67,79,76,76,69,67,84, +83,28,192,192,6,0,0,249,22,51,250,22,252,34,3,248,22,252,52,3,69, +97,100,100,111,110,45,100,105,114,198,247,22,252,215,1,6,8,8,99,111,108, +108,101,99,116,115,27,249,22,5,89,162,32,33,36,9,222,27,247,193,28,192, +28,248,22,252,29,3,193,248,22,59,248,22,252,41,3,194,11,11,252,22,59, +89,162,32,32,35,9,222,27,248,22,252,217,1,6,7,7,80,76,84,72,79, +77,69,28,192,249,22,252,34,3,194,6,8,8,99,111,108,108,101,99,116,115, +11,89,162,32,32,36,9,223,12,249,80,159,34,44,34,248,22,252,52,3,69, +101,120,101,99,45,102,105,108,101,199,6,8,8,99,111,108,108,101,99,116,115, +89,162,32,32,38,9,223,12,249,80,159,34,44,34,248,22,252,52,3,2,199, +249,22,252,34,3,2,193,6,8,8,99,111,108,108,101,99,116,115,89,162,32, +32,39,9,223,12,249,80,159,34,44,34,248,22,252,52,3,2,199,250,22,252, +34,3,2,193,2,193,6,8,8,99,111,108,108,101,99,116,115,89,162,32,32, +40,9,223,12,249,80,159,34,44,34,248,22,252,52,3,2,199,251,22,252,34, +3,2,193,2,193,2,193,6,8,8,99,111,108,108,101,99,116,115,28,192,192, +9,83,159,32,93,80,159,32,8,33,33,89,162,32,33,35,2,71,222,27,248, +22,252,4,1,194,28,192,192,248,22,252,5,1,194,83,159,32,97,80,159,32, +8,34,33,80,159,32,8,35,33,80,159,32,8,36,33,80,159,32,8,37,33, +80,159,32,8,38,33,26,9,22,252,90,2,63,101,118,116,200,11,33,32,11, +248,22,59,249,22,51,22,252,89,2,32,247,22,252,113,2,11,21,93,32,83, +159,32,93,80,159,32,8,39,33,89,162,32,33,37,2,83,223,0,87,94,28, +28,248,22,0,194,249,22,34,195,32,11,12,250,22,252,40,2,2,83,6,19, +19,112,114,111,99,101,100,117,114,101,32,40,97,114,105,116,121,32,48,41,196, +248,80,159,33,8,35,34,89,162,32,33,34,9,223,2,247,192,83,159,32,93, +80,159,32,8,40,33,89,162,32,33,36,2,85,222,87,94,28,248,22,252,252, +2,193,12,250,22,252,40,2,2,85,6,7,7,99,104,97,110,110,101,108,195, +248,22,252,238,2,193,83,159,32,93,80,159,32,8,41,33,89,162,32,33,36, +2,87,222,87,94,28,248,22,252,252,2,193,12,250,22,252,40,2,2,87,6, +7,7,99,104,97,110,110,101,108,195,249,22,252,239,2,32,194,83,159,32,93, +80,159,32,8,42,33,89,162,32,34,37,2,89,222,87,94,28,248,22,252,252, +2,193,12,250,22,252,40,2,2,89,6,7,7,99,104,97,110,110,101,108,195, +28,248,22,252,238,2,249,22,252,251,2,195,196,12,11,83,159,32,93,80,159, +32,8,43,33,89,162,32,32,32,2,91,222,247,22,252,211,2,83,159,32,93, +80,159,32,8,44,33,89,162,32,33,37,2,93,223,0,87,94,28,249,22,181, +195,37,12,250,22,252,40,2,2,93,6,1,1,53,196,248,80,159,33,8,45, +34,11,83,159,32,93,80,159,32,8,46,33,89,162,32,33,37,2,97,223,0, +87,94,28,249,22,181,195,37,12,250,22,252,40,2,2,97,6,1,1,53,196, +248,80,159,33,8,45,34,10,83,159,32,93,80,159,32,8,45,33,89,162,32, +33,41,2,95,223,0,27,248,22,252,189,2,65,101,109,112,116,121,201,27,247, +22,252,189,2,87,94,20,14,159,80,158,34,51,250,80,158,37,52,249,22,19, +11,80,158,39,51,22,252,211,2,196,87,96,249,22,239,194,66,35,37,114,53, +114,115,202,248,22,237,2,202,248,22,238,21,95,64,111,110,108,121,203,68,109, +122,115,99,104,101,109,101,204,72,115,121,110,116,97,120,45,114,117,108,101,115, +205,28,195,12,249,22,3,89,162,32,33,37,9,222,249,22,252,74,3,194,249, +22,235,2,204,196,21,15,203,63,99,97,114,206,63,99,100,114,207,64,99,97, +97,114,208,64,99,97,100,114,209,64,99,100,97,114,210,64,99,100,100,114,211, +65,99,97,97,97,114,212,65,99,97,97,100,114,213,65,99,97,100,97,114,214, +65,99,97,100,100,114,215,65,99,100,97,97,114,216,65,99,100,97,100,114,217, +65,99,100,100,97,114,218,65,99,100,100,100,114,219,66,99,97,97,97,97,114, +220,66,99,97,97,97,100,114,221,66,99,97,97,100,97,114,222,66,99,97,97, +100,100,114,223,66,99,97,100,97,97,114,224,66,99,97,100,97,100,114,225,66, +99,97,100,100,97,114,226,66,99,97,100,100,100,114,227,66,99,100,97,97,97, +114,228,66,99,100,97,97,100,114,229,66,99,100,97,100,97,114,230,66,99,100, +97,100,100,114,231,66,99,100,100,97,97,114,232,66,99,100,100,97,100,114,233, +66,99,100,100,100,97,114,234,66,99,100,100,100,100,114,235,63,109,97,112,236, +61,61,237,61,60,238,61,62,239,62,60,61,240,62,62,61,241,63,109,97,120, +242,63,109,105,110,243,61,43,244,61,45,245,61,42,246,61,47,247,63,97,98, +115,248,63,103,99,100,249,63,108,99,109,250,63,101,120,112,251,63,108,111,103, +252,252,0,63,115,105,110,252,253,0,63,99,111,115,252,254,0,63,116,97,110, +252,255,0,63,110,111,116,252,0,1,63,101,113,63,252,1,1,1,30,99,97, +108,108,45,119,105,116,104,45,99,117,114,114,101,110,116,45,99,111,110,116,105, +110,117,97,116,105,111,110,252,2,1,71,109,97,107,101,45,115,116,114,105,110, +103,252,3,1,74,115,121,109,98,111,108,45,62,115,116,114,105,110,103,252,4, +1,74,115,116,114,105,110,103,45,62,115,121,109,98,111,108,252,5,1,76,109, +97,107,101,45,114,101,99,116,97,110,103,117,108,97,114,252,6,1,74,101,120, +97,99,116,45,62,105,110,101,120,97,99,116,252,7,1,74,105,110,101,120,97, +99,116,45,62,101,120,97,99,116,252,8,1,74,110,117,109,98,101,114,45,62, +115,116,114,105,110,103,252,9,1,74,115,116,114,105,110,103,45,62,110,117,109, +98,101,114,252,10,1,2,14,72,111,117,116,112,117,116,45,112,111,114,116,63, +252,11,1,78,99,117,114,114,101,110,116,45,105,110,112,117,116,45,112,111,114, +116,252,12,1,79,99,117,114,114,101,110,116,45,111,117,116,112,117,116,45,112, +111,114,116,252,13,1,78,99,117,114,114,101,110,116,45,101,114,114,111,114,45, +112,111,114,116,252,14,1,75,111,112,101,110,45,105,110,112,117,116,45,102,105, +108,101,252,15,1,76,111,112,101,110,45,111,117,116,112,117,116,45,102,105,108, +101,252,16,1,76,99,108,111,115,101,45,105,110,112,117,116,45,112,111,114,116, +252,17,1,77,99,108,111,115,101,45,111,117,116,112,117,116,45,112,111,114,116, +252,18,1,79,119,105,116,104,45,111,117,116,112,117,116,45,116,111,45,102,105, +108,101,252,19,1,73,116,114,97,110,115,99,114,105,112,116,45,111,110,252,20, +1,74,116,114,97,110,115,99,114,105,112,116,45,111,102,102,252,21,1,72,102, +108,117,115,104,45,111,117,116,112,117,116,252,22,1,73,115,116,114,105,110,103, +45,108,101,110,103,116,104,252,23,1,72,115,116,114,105,110,103,45,99,105,60, +61,63,252,24,1,72,115,116,114,105,110,103,45,99,105,62,61,63,252,25,1, +73,115,116,114,105,110,103,45,97,112,112,101,110,100,252,26,1,72,115,116,114, +105,110,103,45,62,108,105,115,116,252,27,1,72,108,105,115,116,45,62,115,116, +114,105,110,103,252,28,1,72,115,116,114,105,110,103,45,102,105,108,108,33,252, +29,1,73,118,101,99,116,111,114,45,108,101,110,103,116,104,252,30,1,72,118, +101,99,116,111,114,45,62,108,105,115,116,252,31,1,72,108,105,115,116,45,62, +118,101,99,116,111,114,252,32,1,72,118,101,99,116,111,114,45,102,105,108,108, +33,252,33,1,76,99,104,97,114,45,97,108,112,104,97,98,101,116,105,99,63, +252,34,1,73,99,104,97,114,45,110,117,109,101,114,105,99,63,252,35,1,76, +99,104,97,114,45,119,104,105,116,101,115,112,97,99,101,63,252,36,1,76,99, +104,97,114,45,117,112,112,101,114,45,99,97,115,101,63,252,37,1,76,99,104, +97,114,45,108,111,119,101,114,45,99,97,115,101,63,252,38,1,73,99,104,97, +114,45,62,105,110,116,101,103,101,114,252,39,1,73,105,110,116,101,103,101,114, +45,62,99,104,97,114,252,40,1,73,99,104,97,114,45,100,111,119,110,99,97, +115,101,252,41,1,1,21,99,97,108,108,45,119,105,116,104,45,111,117,116,112, +117,116,45,102,105,108,101,252,42,1,1,20,99,97,108,108,45,119,105,116,104, +45,105,110,112,117,116,45,102,105,108,101,252,43,1,1,20,119,105,116,104,45, +105,110,112,117,116,45,102,114,111,109,45,102,105,108,101,252,44,1,65,97,112, +112,108,121,252,45,1,68,102,111,114,45,101,97,99,104,252,46,1,67,115,121, +109,98,111,108,63,252,47,1,65,112,97,105,114,63,252,48,1,64,99,111,110, +115,252,49,1,68,115,101,116,45,99,97,114,33,252,50,1,68,115,101,116,45, +99,100,114,33,252,51,1,65,110,117,108,108,63,252,52,1,65,108,105,115,116, +63,252,53,1,64,108,105,115,116,252,54,1,66,108,101,110,103,116,104,252,55, +1,66,97,112,112,101,110,100,252,56,1,67,114,101,118,101,114,115,101,252,57, +1,69,108,105,115,116,45,116,97,105,108,252,58,1,68,108,105,115,116,45,114, +101,102,252,59,1,64,109,101,109,113,252,60,1,64,109,101,109,118,252,61,1, +66,109,101,109,98,101,114,252,62,1,64,97,115,115,113,252,63,1,64,97,115, +115,118,252,64,1,65,97,115,115,111,99,252,65,1,70,112,114,111,99,101,100, +117,114,101,63,252,66,1,67,110,117,109,98,101,114,63,252,67,1,68,99,111, +109,112,108,101,120,63,252,68,1,65,114,101,97,108,63,252,69,1,69,114,97, +116,105,111,110,97,108,63,252,70,1,68,105,110,116,101,103,101,114,63,252,71, +1,66,101,120,97,99,116,63,252,72,1,68,105,110,101,120,97,99,116,63,252, +73,1,65,122,101,114,111,63,252,74,1,69,112,111,115,105,116,105,118,101,63, +252,75,1,69,110,101,103,97,116,105,118,101,63,252,76,1,64,111,100,100,63, +252,77,1,65,101,118,101,110,63,252,78,1,68,113,117,111,116,105,101,110,116, +252,79,1,69,114,101,109,97,105,110,100,101,114,252,80,1,66,109,111,100,117, +108,111,252,81,1,65,102,108,111,111,114,252,82,1,67,99,101,105,108,105,110, +103,252,83,1,68,116,114,117,110,99,97,116,101,252,84,1,65,114,111,117,110, +100,252,85,1,69,110,117,109,101,114,97,116,111,114,252,86,1,71,100,101,110, +111,109,105,110,97,116,111,114,252,87,1,64,97,115,105,110,252,88,1,64,97, +99,111,115,252,89,1,64,97,116,97,110,252,90,1,64,115,113,114,116,252,91, +1,64,101,120,112,116,252,92,1,70,109,97,107,101,45,112,111,108,97,114,252, +93,1,69,114,101,97,108,45,112,97,114,116,252,94,1,69,105,109,97,103,45, +112,97,114,116,252,95,1,65,97,110,103,108,101,252,96,1,69,109,97,103,110, +105,116,117,100,101,252,97,1,71,105,110,112,117,116,45,112,111,114,116,63,252, +98,1,64,114,101,97,100,252,99,1,69,114,101,97,100,45,99,104,97,114,252, +100,1,69,112,101,101,107,45,99,104,97,114,252,101,1,71,101,111,102,45,111, +98,106,101,99,116,63,252,102,1,71,99,104,97,114,45,114,101,97,100,121,63, +252,103,1,65,119,114,105,116,101,252,104,1,67,100,105,115,112,108,97,121,252, +105,1,67,110,101,119,108,105,110,101,252,106,1,70,119,114,105,116,101,45,99, +104,97,114,252,107,1,64,108,111,97,100,252,108,1,67,115,116,114,105,110,103, +63,252,109,1,66,115,116,114,105,110,103,252,110,1,70,115,116,114,105,110,103, +45,114,101,102,252,111,1,71,115,116,114,105,110,103,45,115,101,116,33,252,112, +1,68,115,116,114,105,110,103,61,63,252,113,1,69,115,117,98,115,116,114,105, +110,103,252,114,1,71,115,116,114,105,110,103,45,99,111,112,121,252,115,1,71, +115,116,114,105,110,103,45,99,105,61,63,252,116,1,68,115,116,114,105,110,103, +60,63,252,117,1,68,115,116,114,105,110,103,62,63,252,118,1,69,115,116,114, +105,110,103,60,61,63,252,119,1,69,115,116,114,105,110,103,62,61,63,252,120, +1,71,115,116,114,105,110,103,45,99,105,60,63,252,121,1,71,115,116,114,105, +110,103,45,99,105,62,63,252,122,1,67,118,101,99,116,111,114,63,252,123,1, +71,109,97,107,101,45,118,101,99,116,111,114,252,124,1,66,118,101,99,116,111, +114,252,125,1,70,118,101,99,116,111,114,45,114,101,102,252,126,1,71,118,101, +99,116,111,114,45,115,101,116,33,252,127,1,65,99,104,97,114,63,252,128,1, +66,99,104,97,114,61,63,252,129,1,66,99,104,97,114,60,63,252,130,1,66, +99,104,97,114,62,63,252,131,1,67,99,104,97,114,60,61,63,252,132,1,67, +99,104,97,114,62,61,63,252,133,1,69,99,104,97,114,45,99,105,61,63,252, +134,1,69,99,104,97,114,45,99,105,60,63,252,135,1,69,99,104,97,114,45, +99,105,62,63,252,136,1,70,99,104,97,114,45,99,105,60,61,63,252,137,1, +70,99,104,97,114,45,99,105,62,61,63,252,138,1,71,99,104,97,114,45,117, +112,99,97,115,101,252,139,1,68,98,111,111,108,101,97,110,63,252,140,1,64, +101,113,118,63,252,141,1,66,101,113,117,97,108,63,252,142,1,65,102,111,114, +99,101,252,143,1,76,99,97,108,108,45,119,105,116,104,45,118,97,108,117,101, +115,252,144,1,66,118,97,108,117,101,115,252,145,1,64,101,118,97,108,252,146, +1,2,71,2,93,2,97,2,91,72,100,121,110,97,109,105,99,45,119,105,110, +100,252,147,1,9,193,97,68,35,37,107,101,114,110,101,108,252,148,1,2,116, +2,115,2,114,2,113,95,2,252,148,1,2,100,2,117,0}; + EVAL_ONE_SIZED_STR((char *)expr, 12636); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,49,66,252,59,4,159,32,20,97,158,16,1,20, -23,65,98,101,103,105,110,0,16,0,83,158,39,20,94,114,72,35,37,115,116, -120,109,122,45,98,111,100,121,1,29,2,11,11,18,95,11,35,97,33,10,32, -11,16,58,66,115,121,110,116,97,120,3,69,35,37,115,116,120,99,97,115,101, -4,1,20,103,101,110,101,114,97,116,101,45,116,101,109,112,111,114,97,114,105, -101,115,5,70,35,37,119,105,116,104,45,115,116,120,6,67,45,100,101,102,105, -110,101,7,74,35,37,100,101,102,105,110,101,45,101,116,45,97,108,8,72,115, -121,110,116,97,120,45,99,97,115,101,42,9,68,35,37,115,116,120,108,111,99, -10,1,20,35,37,112,108,97,105,110,45,109,111,100,117,108,101,45,98,101,103, -105,110,11,158,68,35,37,107,101,114,110,101,108,12,74,35,37,109,111,100,117, -108,101,45,98,101,103,105,110,13,76,98,101,103,105,110,45,102,111,114,45,115, -121,110,116,97,120,14,68,35,37,100,101,102,105,110,101,15,74,45,100,101,102, -105,110,101,45,115,121,110,116,97,120,16,2,8,66,100,101,102,105,110,101,17, -2,15,73,100,101,102,105,110,101,45,115,121,110,116,97,120,18,2,15,75,108, -101,116,114,101,99,45,115,121,110,116,97,120,101,115,19,76,35,37,115,116,120, -99,97,115,101,45,115,99,104,101,109,101,20,73,100,101,102,105,110,101,45,115, -116,114,117,99,116,21,2,8,73,108,101,116,114,101,99,45,115,121,110,116,97, -120,22,2,20,71,115,121,110,116,97,120,45,99,97,115,101,23,2,10,64,119, -104,101,110,24,2,8,77,100,101,102,105,110,101,45,102,111,114,45,115,121,110, -116,97,120,25,2,15,66,117,110,108,101,115,115,26,2,8,70,108,101,116,45, -115,121,110,116,97,120,27,2,20,66,108,101,116,47,101,99,28,2,8,64,99, -111,110,100,29,66,35,37,99,111,110,100,30,70,113,117,97,115,105,113,117,111, -116,101,31,71,35,37,113,113,45,97,110,100,45,111,114,32,70,115,121,110,116, -97,120,47,108,111,99,33,2,10,72,108,101,116,45,115,121,110,116,97,120,101, -115,34,2,20,71,119,105,116,104,45,115,121,110,116,97,120,35,2,6,1,26, -99,104,101,99,107,45,100,117,112,108,105,99,97,116,101,45,105,100,101,110,116, -105,102,105,101,114,36,2,20,72,115,121,110,116,97,120,45,114,117,108,101,115, -37,2,20,63,97,110,100,38,2,32,1,28,109,122,115,99,104,101,109,101,45, -105,110,45,115,116,120,45,109,111,100,117,108,101,45,98,101,103,105,110,39,2, -2,62,111,114,40,2,32,75,115,121,110,116,97,120,45,105,100,45,114,117,108, -101,115,41,2,20,10,10,32,80,158,32,32,20,97,158,16,0,16,0,11,11, -16,0,32,11,16,1,2,39,16,1,11,16,1,2,39,32,33,93,16,5,93, -2,39,89,162,32,33,44,9,223,0,28,248,80,158,33,32,194,250,22,209,83, -160,41,32,35,34,250,22,61,83,160,41,33,38,34,249,22,209,201,249,22,59, -83,160,41,34,42,34,68,109,122,115,99,104,101,109,101,42,248,80,158,39,33, -200,196,250,22,252,38,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120, -196,32,20,97,158,16,2,30,43,65,35,37,115,116,120,44,69,115,116,120,45, -112,97,105,114,63,45,11,30,46,2,44,67,115,116,120,45,99,100,114,47,6, -16,3,18,98,64,104,101,114,101,48,39,33,97,38,10,33,11,16,32,69,97, -112,112,101,110,100,47,35,102,49,2,44,71,115,116,120,45,110,117,108,108,47, -35,102,50,2,44,73,115,116,120,45,99,104,101,99,107,47,101,115,99,51,2, -44,69,115,116,120,45,108,105,115,116,63,52,2,44,70,115,116,120,45,114,111, -116,97,116,101,53,2,44,2,45,2,44,74,115,112,108,105,116,45,115,116,120, -45,108,105,115,116,54,2,44,71,115,116,120,45,114,111,116,97,116,101,42,55, -2,44,69,115,116,120,45,110,117,108,108,63,56,2,44,67,115,116,120,45,99, -97,114,57,2,44,69,115,116,120,45,62,108,105,115,116,58,2,44,2,47,2, -44,67,99,111,110,115,47,35,102,59,2,44,71,105,100,101,110,116,105,102,105, -101,114,63,60,2,44,71,115,116,120,45,118,101,99,116,111,114,63,61,2,44, -74,115,116,120,45,118,101,99,116,111,114,45,114,101,102,62,2,44,96,37,8, -254,1,11,16,0,16,4,36,11,63,115,116,120,63,3,1,7,101,110,118,52, -50,56,55,64,18,158,2,11,39,18,158,78,114,101,113,117,105,114,101,45,102, -111,114,45,115,121,110,116,97,120,65,39,11,9,95,2,12,2,20,2,15,94, -2,12,2,44,0}; - EVAL_ONE_SIZED_STR((char *)expr, 1096); + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,19,252,173,1,159,32,20,98,158,16,1,20, +24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,72,35,37,115,116, +120,109,122,45,98,111,100,121,1,29,2,11,11,18,95,11,35,98,33,10,32, +11,94,159,68,35,37,100,101,102,105,110,101,3,9,11,159,76,35,37,115,116, +120,99,97,115,101,45,115,99,104,101,109,101,4,9,11,16,4,1,20,35,37, +112,108,97,105,110,45,109,111,100,117,108,101,45,98,101,103,105,110,5,158,68, +35,37,107,101,114,110,101,108,6,74,35,37,109,111,100,117,108,101,45,98,101, +103,105,110,7,1,28,109,122,115,99,104,101,109,101,45,105,110,45,115,116,120, +45,109,111,100,117,108,101,45,98,101,103,105,110,8,2,2,10,10,32,80,158, +32,32,20,98,158,16,0,16,0,11,11,16,0,32,11,16,1,2,8,16,1, +11,16,1,2,8,32,33,93,16,5,93,2,8,89,162,32,33,44,9,223,0, +28,248,80,158,33,32,194,250,22,209,20,15,159,35,32,34,250,22,61,20,15, +159,38,33,34,249,22,209,201,249,22,59,20,15,159,42,34,34,68,109,122,115, +99,104,101,109,101,9,248,80,158,39,33,200,196,250,22,252,39,2,11,6,10, +10,98,97,100,32,115,121,110,116,97,120,196,32,20,98,158,16,2,30,10,65, +35,37,115,116,120,11,69,115,116,120,45,112,97,105,114,63,12,11,30,13,2, +11,67,115,116,120,45,99,100,114,14,6,16,3,18,98,64,104,101,114,101,15, +39,33,98,38,10,33,11,93,159,2,11,9,11,16,0,96,37,8,254,1,11, +16,0,16,4,36,11,63,115,116,120,16,3,1,7,101,110,118,52,50,56,55, +17,18,158,2,5,39,18,158,78,114,101,113,117,105,114,101,45,102,111,114,45, +115,121,110,116,97,120,18,39,11,9,95,2,6,2,4,2,3,94,2,6,2, +11,0}; + EVAL_ONE_SIZED_STR((char *)expr, 442); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,49,91,252,159,6,159,32,20,97,158,16,1,20, -23,65,98,101,103,105,110,0,16,0,83,158,39,20,94,114,68,109,122,115,99, -104,101,109,101,1,29,2,11,11,10,10,10,32,80,158,32,32,20,97,158,16, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,91,252,159,6,159,32,20,98,158,16,1,20, +24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,68,109,122,115,99, +104,101,109,101,1,29,2,11,11,10,10,10,32,80,158,32,32,20,98,158,16, 0,16,0,74,35,37,109,111,100,117,108,101,45,98,101,103,105,110,3,10,16, 0,32,11,16,73,1,32,99,97,108,108,45,119,105,116,104,45,98,114,101,97, 107,45,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,4,1,26, @@ -4293,82 +3964,82 @@ 31,71,114,97,116,105,111,110,97,108,105,122,101,32,1,20,114,101,97,100,45, 101,118,97,108,45,112,114,105,110,116,45,108,111,111,112,33,1,25,115,99,104, 101,109,101,45,114,101,112,111,114,116,45,101,110,118,105,114,111,110,109,101,110, -116,34,70,108,101,116,45,115,121,110,116,97,120,35,64,119,104,101,110,36,66, -108,101,116,47,101,99,37,66,117,110,108,101,115,115,38,71,115,101,116,33,45, -118,97,108,117,101,115,39,75,113,117,97,115,105,115,121,110,116,97,120,47,108, -111,99,40,78,112,97,114,97,109,101,116,101,114,105,122,101,45,98,114,101,97, -107,41,75,108,101,116,114,101,99,45,115,121,110,116,97,120,101,115,42,69,102, -108,117,105,100,45,108,101,116,43,2,3,70,115,121,110,116,97,120,47,108,111, -99,44,77,100,101,102,105,110,101,45,102,111,114,45,115,121,110,116,97,120,45, -76,98,101,103,105,110,45,102,111,114,45,115,121,110,116,97,120,46,73,100,101, -102,105,110,101,45,115,116,114,117,99,116,47,72,115,121,110,116,97,120,45,99, -97,115,101,42,48,72,112,97,114,97,109,101,116,101,114,105,122,101,49,73,119, -105,116,104,45,104,97,110,100,108,101,114,115,50,74,119,105,116,104,45,104,97, -110,100,108,101,114,115,42,51,73,108,101,116,114,101,99,45,115,121,110,116,97, -120,52,72,108,101,116,45,115,121,110,116,97,120,101,115,53,72,115,121,110,116, -97,120,45,114,117,108,101,115,54,75,115,121,110,116,97,120,45,105,100,45,114, -117,108,101,115,55,66,115,121,110,116,97,120,56,73,100,101,102,105,110,101,45, -115,121,110,116,97,120,57,70,113,117,97,115,105,113,117,111,116,101,58,77,117, -110,115,121,110,116,97,120,45,115,112,108,105,99,105,110,103,59,71,115,121,110, -116,97,120,45,99,97,115,101,60,64,99,97,115,101,61,65,100,101,108,97,121, -62,1,28,109,122,115,99,104,101,109,101,45,105,110,45,115,116,120,45,109,111, -100,117,108,101,45,98,101,103,105,110,63,66,108,101,116,47,99,99,64,64,116, -105,109,101,65,70,108,101,116,45,115,116,114,117,99,116,66,63,97,110,100,67, -62,111,114,68,79,109,101,109,111,114,121,45,116,114,97,99,101,45,108,97,109, -98,100,97,69,68,117,110,115,121,110,116,97,120,70,71,113,117,97,115,105,115, -121,110,116,97,120,71,71,119,105,116,104,45,115,121,110,116,97,120,72,66,100, -101,102,105,110,101,73,64,99,111,110,100,74,62,100,111,75,16,73,73,35,37, +116,34,66,108,101,116,47,101,99,35,70,115,121,110,116,97,120,47,108,111,99, +36,66,115,121,110,116,97,120,37,66,100,101,102,105,110,101,38,70,113,117,97, +115,105,113,117,111,116,101,39,71,113,117,97,115,105,115,121,110,116,97,120,40, +75,115,121,110,116,97,120,45,105,100,45,114,117,108,101,115,41,2,3,63,97, +110,100,42,62,111,114,43,70,108,101,116,45,115,116,114,117,99,116,44,71,119, +105,116,104,45,115,121,110,116,97,120,45,70,108,101,116,45,115,121,110,116,97, +120,46,73,100,101,102,105,110,101,45,115,116,114,117,99,116,47,62,100,111,48, +72,112,97,114,97,109,101,116,101,114,105,122,101,49,75,113,117,97,115,105,115, +121,110,116,97,120,47,108,111,99,50,73,119,105,116,104,45,104,97,110,100,108, +101,114,115,51,74,119,105,116,104,45,104,97,110,100,108,101,114,115,42,52,75, +108,101,116,114,101,99,45,115,121,110,116,97,120,101,115,53,72,108,101,116,45, +115,121,110,116,97,120,101,115,54,72,115,121,110,116,97,120,45,114,117,108,101, +115,55,64,99,97,115,101,56,65,100,101,108,97,121,57,71,115,121,110,116,97, +120,45,99,97,115,101,58,66,108,101,116,47,99,99,59,73,100,101,102,105,110, +101,45,115,121,110,116,97,120,60,72,115,121,110,116,97,120,45,99,97,115,101, +42,61,78,112,97,114,97,109,101,116,101,114,105,122,101,45,98,114,101,97,107, +62,68,117,110,115,121,110,116,97,120,63,77,117,110,115,121,110,116,97,120,45, +115,112,108,105,99,105,110,103,64,1,28,109,122,115,99,104,101,109,101,45,105, +110,45,115,116,120,45,109,111,100,117,108,101,45,98,101,103,105,110,65,64,116, +105,109,101,66,71,115,101,116,33,45,118,97,108,117,101,115,67,77,100,101,102, +105,110,101,45,102,111,114,45,115,121,110,116,97,120,68,76,98,101,103,105,110, +45,102,111,114,45,115,121,110,116,97,120,69,69,102,108,117,105,100,45,108,101, +116,70,79,109,101,109,111,114,121,45,116,114,97,99,101,45,108,97,109,98,100, +97,71,64,99,111,110,100,72,73,108,101,116,114,101,99,45,115,121,110,116,97, +120,73,64,119,104,101,110,74,66,117,110,108,101,115,115,75,16,73,73,35,37, 109,111,114,101,45,115,99,104,101,109,101,76,2,76,66,35,37,109,105,115,99, 77,2,77,2,77,76,35,37,115,116,120,99,97,115,101,45,115,99,104,101,109, 101,78,2,77,2,76,2,77,2,76,2,77,2,77,2,76,70,35,37,119,105, 116,104,45,115,116,120,79,2,77,65,35,37,115,116,120,80,2,77,2,77,2, 77,2,77,2,77,2,77,2,77,2,77,2,77,2,77,2,77,2,76,2,77, -2,77,2,77,2,78,74,35,37,100,101,102,105,110,101,45,101,116,45,97,108, -81,2,81,2,81,2,76,67,35,37,113,113,115,116,120,82,2,76,2,78,2, -76,68,35,37,107,101,114,110,101,108,83,68,35,37,115,116,120,108,111,99,84, -68,35,37,100,101,102,105,110,101,85,2,85,2,81,2,84,2,76,2,76,2, -76,2,78,2,78,2,78,2,78,69,35,37,115,116,120,99,97,115,101,86,2, -85,71,35,37,113,113,45,97,110,100,45,111,114,87,2,82,2,84,2,76,2, -76,72,35,37,115,116,120,109,122,45,98,111,100,121,88,2,76,2,76,2,76, -2,87,2,87,2,77,2,82,2,82,2,79,2,85,66,35,37,99,111,110,100, -89,2,76,16,73,2,4,2,5,2,6,2,7,2,8,2,9,2,10,2,11, +2,77,2,77,74,35,37,100,101,102,105,110,101,45,101,116,45,97,108,81,68, +35,37,115,116,120,108,111,99,82,69,35,37,115,116,120,99,97,115,101,83,68, +35,37,100,101,102,105,110,101,84,71,35,37,113,113,45,97,110,100,45,111,114, +85,67,35,37,113,113,115,116,120,86,2,78,68,35,37,107,101,114,110,101,108, +87,2,85,2,85,2,76,2,79,2,78,2,81,2,76,2,76,2,86,2,76, +2,76,2,78,2,78,2,78,2,76,2,76,2,82,2,76,2,84,2,82,2, +76,2,86,2,86,72,35,37,115,116,120,109,122,45,98,111,100,121,88,2,76, +2,76,2,84,2,84,2,76,2,77,66,35,37,99,111,110,100,89,2,78,2, +81,2,81,16,73,2,4,2,5,2,6,2,7,2,8,2,9,2,10,2,11, 2,12,2,13,2,14,2,15,2,16,2,17,2,18,2,19,2,20,2,21,2, 22,2,23,2,24,2,25,2,26,2,27,2,28,2,29,2,30,2,31,2,32, -2,33,2,34,2,35,2,36,2,37,2,38,2,39,2,40,2,41,2,42,2, -43,1,20,35,37,112,108,97,105,110,45,109,111,100,117,108,101,45,98,101,103, -105,110,90,2,44,2,45,2,46,2,47,2,48,2,49,2,50,2,51,2,52, +2,33,2,34,2,35,2,36,2,37,2,38,2,39,2,40,2,41,1,20,35, +37,112,108,97,105,110,45,109,111,100,117,108,101,45,98,101,103,105,110,90,2, +42,2,43,2,44,2,45,2,46,2,47,2,48,2,49,2,50,2,51,2,52, 2,53,2,54,2,55,2,56,2,57,2,58,2,59,2,60,2,61,2,62,2, -3,2,64,2,65,2,66,2,67,2,68,2,69,2,70,2,71,2,72,2,73, -2,74,2,75,8,31,8,73,9,9,100,2,83,2,76,2,77,2,78,2,80, -2,88,2,82,2,85,9,0}; +63,2,64,2,3,2,66,2,67,2,68,2,69,2,70,2,71,2,72,2,73, +2,74,2,75,8,31,8,73,9,9,100,2,87,2,76,2,77,2,78,2,80, +2,88,2,86,2,84,9,0}; EVAL_ONE_SIZED_STR((char *)expr, 1708); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,49,203,252,81,23,159,32,20,97,158,16,1,20, -23,65,98,101,103,105,110,0,16,0,83,158,39,20,94,114,66,35,37,114,53, -114,115,1,29,2,11,11,10,10,10,33,80,158,32,32,20,97,158,16,1,30, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,121,252,116,15,159,32,20,98,158,16,1,20, +24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,66,35,37,114,53, +114,115,1,29,2,11,11,10,10,10,33,80,158,32,32,20,98,158,16,1,30, 3,2,2,69,117,110,100,101,102,105,110,101,100,4,254,1,16,0,11,11,16, -1,2,4,33,11,16,24,65,35,37,116,111,112,5,66,108,97,109,98,100,97, -6,65,100,101,108,97,121,7,65,113,117,111,116,101,8,71,114,53,114,115,58, -108,101,116,114,101,99,9,63,108,101,116,10,64,108,101,116,42,11,2,0,62, -105,102,12,64,99,111,110,100,13,64,115,101,116,33,14,62,100,111,15,70,108, -101,116,45,115,121,110,116,97,120,16,66,100,101,102,105,110,101,17,67,117,110, -113,117,111,116,101,18,70,113,117,97,115,105,113,117,111,116,101,19,62,111,114, -20,76,117,110,113,117,111,116,101,45,115,112,108,105,99,105,110,103,21,73,108, -101,116,114,101,99,45,115,121,110,116,97,120,22,63,97,110,100,23,64,99,97, -115,101,24,73,100,101,102,105,110,101,45,115,121,110,116,97,120,25,65,35,37, -97,112,112,26,67,35,37,100,97,116,117,109,27,16,24,68,35,37,107,101,114, -110,101,108,28,2,28,73,35,37,109,111,114,101,45,115,99,104,101,109,101,29, -2,28,11,2,28,2,28,2,28,2,28,66,35,37,99,111,110,100,30,2,28, -2,29,76,35,37,115,116,120,99,97,115,101,45,115,99,104,101,109,101,31,68, -35,37,100,101,102,105,110,101,32,2,28,71,35,37,113,113,45,97,110,100,45, -111,114,33,2,33,2,28,2,31,2,33,2,29,2,32,2,28,2,28,16,24, -2,5,2,6,2,7,2,8,66,108,101,116,114,101,99,34,2,10,2,11,2, -0,2,12,2,13,2,14,2,15,2,16,2,17,2,18,2,19,2,20,2,21, -2,22,2,23,2,24,2,25,2,26,2,27,32,56,93,16,5,93,2,9,89, +1,2,4,33,11,16,24,64,99,111,110,100,5,64,108,101,116,42,6,66,100, +101,102,105,110,101,7,73,108,101,116,114,101,99,45,115,121,110,116,97,120,8, +2,0,62,105,102,9,65,113,117,111,116,101,10,64,99,97,115,101,11,67,117, +110,113,117,111,116,101,12,70,113,117,97,115,105,113,117,111,116,101,13,64,115, +101,116,33,14,76,117,110,113,117,111,116,101,45,115,112,108,105,99,105,110,103, +15,63,108,101,116,16,65,100,101,108,97,121,17,65,35,37,97,112,112,18,63, +97,110,100,19,73,100,101,102,105,110,101,45,115,121,110,116,97,120,20,67,35, +37,100,97,116,117,109,21,62,111,114,22,65,35,37,116,111,112,23,62,100,111, +24,66,108,97,109,98,100,97,25,70,108,101,116,45,115,121,110,116,97,120,26, +71,114,53,114,115,58,108,101,116,114,101,99,27,16,24,66,35,37,99,111,110, +100,28,68,35,37,107,101,114,110,101,108,29,68,35,37,100,101,102,105,110,101, +30,76,35,37,115,116,120,99,97,115,101,45,115,99,104,101,109,101,31,2,29, +2,29,2,29,73,35,37,109,111,114,101,45,115,99,104,101,109,101,32,2,29, +71,35,37,113,113,45,97,110,100,45,111,114,33,2,29,2,29,2,29,2,32, +2,29,2,33,2,30,2,29,2,33,2,29,2,32,2,29,2,31,11,16,24, +2,5,2,6,2,7,2,8,2,0,2,9,2,10,2,11,2,12,2,13,2, +14,2,15,2,16,2,17,2,18,2,19,2,20,2,21,2,22,2,23,2,24, +2,25,2,26,66,108,101,116,114,101,99,34,32,56,93,16,5,93,2,27,89, 162,32,33,8,32,9,223,0,27,28,248,80,158,34,32,195,249,80,158,35,33, 248,80,158,36,34,197,27,248,80,158,37,35,198,28,248,80,158,37,32,193,249, -80,158,38,36,27,248,80,158,40,34,196,28,248,80,158,40,37,193,248,22,8, +80,158,38,36,27,248,80,158,40,34,196,28,248,80,158,40,37,193,248,22,9, 89,162,32,33,39,9,224,8,1,27,249,22,2,89,162,32,33,45,9,224,4, 5,249,80,158,35,38,28,248,80,158,36,32,197,249,80,158,37,33,248,80,158, 38,34,199,27,248,80,158,39,35,200,28,248,80,158,39,32,193,249,80,158,40, @@ -4376,30 +4047,30 @@ 248,80,158,37,40,196,28,248,22,57,193,21,94,9,9,248,80,158,35,41,193, 11,27,248,80,158,40,35,196,28,248,80,158,40,37,193,248,80,158,40,40,193, 11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27, -248,22,88,197,249,80,158,39,42,200,27,250,22,61,199,198,200,27,83,160,41, -32,41,44,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22, -8,89,162,32,33,40,9,226,11,2,3,1,250,22,31,89,162,32,32,36,9, -225,6,3,7,90,161,33,33,10,247,22,252,183,2,248,22,252,183,2,89,162, +248,22,88,197,249,80,158,39,42,200,27,250,22,61,198,199,200,27,20,15,159, +41,32,44,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22, +9,89,162,32,33,40,9,226,11,2,3,1,250,22,31,89,162,32,32,36,9, +225,6,3,7,90,161,33,33,10,247,22,252,184,2,248,22,252,184,2,89,162, 32,33,36,9,224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22, -252,180,2,193,248,22,252,185,2,193,249,80,158,35,43,21,99,2,9,6,19, +252,181,2,193,248,22,252,186,2,193,249,80,158,35,43,21,99,2,27,6,19, 19,103,101,110,101,114,97,116,101,95,116,101,109,112,95,110,97,109,101,115,94, 64,118,97,114,49,35,63,46,46,46,36,9,94,94,2,35,65,105,110,105,116, -49,37,2,36,64,98,111,100,121,38,2,36,83,160,41,33,35,44,89,162,32, -32,52,9,225,6,5,4,27,250,22,209,83,160,41,34,38,44,250,22,209,83, -160,41,35,41,44,253,22,62,83,160,41,36,47,44,83,160,41,37,47,44,248, -22,80,206,83,160,41,38,47,44,250,22,2,89,162,33,33,41,9,223,18,250, -22,209,83,160,41,39,35,44,249,22,60,248,22,52,199,248,22,78,199,83,160, -41,40,35,44,248,22,80,23,17,248,22,52,23,17,248,22,78,206,83,160,41, +49,37,2,36,64,98,111,100,121,38,2,36,20,15,159,35,33,44,89,162,32, +32,52,9,225,6,5,4,27,250,22,209,20,15,159,38,34,44,250,22,209,20, +15,159,41,35,44,253,22,62,20,15,159,47,36,44,20,15,159,47,37,44,248, +22,80,206,20,15,159,47,38,44,250,22,2,89,162,33,33,41,9,223,18,250, +22,209,20,15,159,35,39,44,249,22,60,248,22,52,199,248,22,78,199,20,15, +159,35,40,44,248,22,80,23,17,248,22,78,23,17,248,22,52,206,20,15,159, 41,41,44,197,89,162,32,32,33,9,223,0,192,89,162,32,32,34,9,223,3, -248,22,252,183,2,208,27,28,248,80,158,35,32,196,249,80,158,36,33,248,80, +248,22,252,184,2,208,27,28,248,80,158,35,32,196,249,80,158,36,33,248,80, 158,37,34,198,27,248,80,158,38,35,199,28,248,80,158,38,32,193,28,27,248, -80,158,39,34,194,28,249,22,252,12,2,6,19,19,103,101,110,101,114,97,116, +80,158,39,34,194,28,249,22,252,13,2,6,19,19,103,101,110,101,114,97,116, 101,95,116,101,109,112,95,110,97,109,101,115,248,22,210,195,9,11,27,248,80, 158,39,35,194,28,248,80,158,39,32,193,28,248,80,158,39,39,248,80,158,40, 34,194,27,248,80,158,40,35,194,28,248,80,158,40,32,193,249,80,158,41,36, 27,248,80,158,43,34,196,28,248,80,158,43,37,193,248,22,59,248,80,158,44, 40,194,11,27,248,80,158,43,35,196,28,248,80,158,43,32,193,249,80,158,44, -36,27,248,80,158,46,34,196,28,248,80,158,46,37,193,248,22,8,89,162,32, +36,27,248,80,158,46,34,196,28,248,80,158,46,37,193,248,22,9,89,162,32, 33,39,9,224,14,1,27,249,22,2,89,162,32,33,45,9,224,4,5,249,80, 158,35,38,28,248,80,158,36,32,197,249,80,158,37,33,248,80,158,38,34,199, 27,248,80,158,39,35,200,28,248,80,158,39,32,193,249,80,158,40,33,248,80, @@ -4408,30 +4079,30 @@ 80,158,46,35,196,28,248,80,158,46,37,193,248,80,158,46,40,193,11,11,11, 11,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87, 196,27,248,22,90,197,27,248,22,89,198,249,80,158,41,42,202,27,251,22,61, -202,199,201,200,27,83,160,41,42,43,44,91,159,33,11,90,161,33,32,11,83, -160,38,32,33,11,247,248,22,8,89,162,32,33,40,9,226,13,2,3,1,250, -22,31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10,247,22,252,183, -2,248,22,252,183,2,89,162,32,33,36,9,224,3,1,248,193,89,162,32,32, -36,9,224,2,3,28,248,22,252,180,2,193,248,22,252,185,2,193,249,80,158, -35,43,21,95,2,10,94,94,2,35,2,4,2,36,97,2,10,94,94,65,116, -101,109,112,49,39,2,37,2,36,95,2,14,2,35,2,39,2,36,96,2,10, -9,2,38,2,36,83,160,41,43,35,44,89,162,32,32,8,29,9,225,6,5, -4,27,250,22,209,83,160,41,44,38,44,250,22,209,83,160,41,45,41,44,250, -22,60,83,160,41,46,44,44,249,22,2,89,162,33,33,40,9,223,14,250,22, -209,83,160,41,47,35,44,249,22,56,248,22,52,199,83,160,41,48,37,44,83, -160,41,49,35,44,248,22,87,205,250,22,209,83,160,41,50,47,44,250,22,62, -83,160,41,51,50,44,250,22,2,89,162,33,33,41,9,223,21,250,22,209,83, -160,41,52,35,44,249,22,60,248,22,52,199,248,22,78,199,83,160,41,53,35, -44,248,22,52,23,20,248,22,88,23,20,249,22,65,250,22,2,89,162,33,33, -41,9,223,23,250,22,209,83,160,41,54,35,44,250,22,60,83,160,41,55,38, -44,248,22,52,200,248,22,78,200,83,160,41,56,35,44,248,22,87,23,22,248, -22,52,23,22,248,22,60,250,22,209,83,160,41,57,56,44,250,22,62,83,160, -41,58,59,44,83,160,41,59,59,44,248,22,78,23,26,83,160,41,8,28,56, -44,83,160,41,8,29,47,44,83,160,41,8,30,41,44,197,89,162,32,32,33, -9,223,0,192,89,162,32,32,34,9,223,3,248,22,252,183,2,208,27,28,248, +199,201,200,202,27,20,15,159,43,42,44,91,159,33,11,90,161,33,32,11,83, +160,38,32,33,11,247,248,22,9,89,162,32,33,40,9,226,13,2,3,1,250, +22,31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10,247,22,252,184, +2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193,89,162,32,32, +36,9,224,2,3,28,248,22,252,181,2,193,248,22,252,186,2,193,249,80,158, +35,43,21,95,2,16,94,94,2,35,2,4,2,36,97,2,16,94,94,65,116, +101,109,112,49,39,2,37,2,36,95,2,14,2,35,2,39,2,36,96,2,16, +9,2,38,2,36,20,15,159,35,43,44,89,162,32,32,8,29,9,225,6,5, +4,27,250,22,209,20,15,159,38,44,44,250,22,209,20,15,159,41,45,44,250, +22,60,20,15,159,44,46,44,249,22,2,89,162,33,33,40,9,223,14,250,22, +209,20,15,159,35,47,44,249,22,56,248,22,52,199,20,15,159,37,48,44,20, +15,159,35,49,44,248,22,78,205,250,22,209,20,15,159,47,50,44,250,22,62, +20,15,159,50,51,44,250,22,2,89,162,33,33,41,9,223,21,250,22,209,20, +15,159,35,52,44,249,22,60,248,22,52,199,248,22,78,199,20,15,159,35,53, +44,248,22,88,23,20,248,22,87,23,20,249,22,65,250,22,2,89,162,33,33, +41,9,223,23,250,22,209,20,15,159,35,54,44,250,22,60,20,15,159,38,55, +44,248,22,52,200,248,22,78,200,20,15,159,35,56,44,248,22,78,23,22,248, +22,88,23,22,248,22,60,250,22,209,20,15,159,56,57,44,250,22,62,20,15, +159,59,58,44,20,15,159,59,59,44,248,22,52,23,26,20,15,159,56,8,28, +44,20,15,159,47,8,29,44,20,15,159,41,8,30,44,197,89,162,32,32,33, +9,223,0,192,89,162,32,32,34,9,223,3,248,22,252,184,2,208,27,28,248, 80,158,36,32,197,249,80,158,37,33,248,80,158,38,34,199,27,248,80,158,39, 35,200,28,248,80,158,39,32,193,28,27,248,80,158,40,34,194,28,249,22,252, -12,2,6,19,19,103,101,110,101,114,97,116,101,95,116,101,109,112,95,110,97, +13,2,6,19,19,103,101,110,101,114,97,116,101,95,116,101,109,112,95,110,97, 109,101,115,248,22,210,195,9,11,27,248,80,158,40,35,194,28,248,80,158,40, 32,193,249,80,158,41,36,27,248,80,158,43,34,196,28,248,80,158,43,32,193, 249,80,158,44,33,248,80,158,45,34,195,27,248,80,158,46,35,196,28,248,80, @@ -4439,7 +4110,7 @@ 196,28,248,80,158,43,32,193,249,80,158,44,36,27,248,80,158,46,34,196,28, 248,80,158,46,37,193,248,22,59,248,80,158,47,40,194,11,27,248,80,158,46, 35,196,28,248,80,158,46,32,193,249,80,158,47,36,27,248,80,158,49,34,196, -28,248,80,158,49,37,193,248,22,8,89,162,32,33,39,9,224,17,1,27,249, +28,248,80,158,49,37,193,248,22,9,89,162,32,33,39,9,224,17,1,27,249, 22,2,89,162,32,33,45,9,224,4,5,249,80,158,35,38,28,248,80,158,36, 32,197,249,80,158,37,33,248,80,158,38,34,199,27,248,80,158,39,35,200,28, 248,80,158,39,32,193,249,80,158,40,33,248,80,158,41,34,195,248,80,158,41, @@ -4448,24 +4119,24 @@ 158,49,37,193,248,80,158,49,40,193,11,11,11,11,11,11,11,28,192,27,248, 22,52,194,27,248,22,78,195,27,248,22,87,196,27,248,22,90,197,27,249,22, 70,199,36,27,249,22,70,200,37,27,249,22,69,201,38,249,80,158,44,42,205, -27,252,22,61,204,200,203,202,201,27,83,160,41,8,31,46,44,91,159,33,11, -90,161,33,32,11,83,160,38,32,33,11,247,248,22,8,89,162,32,33,40,9, +27,252,22,61,200,202,204,201,203,27,20,15,159,46,8,31,44,91,159,33,11, +90,161,33,32,11,83,160,38,32,33,11,247,248,22,9,89,162,32,33,40,9, 226,16,2,3,1,250,22,31,89,162,32,32,36,9,225,6,3,7,90,161,33, -33,10,247,22,252,183,2,248,22,252,183,2,89,162,32,33,36,9,224,3,1, -248,193,89,162,32,32,36,9,224,2,3,28,248,22,252,180,2,193,248,22,252, -185,2,193,249,80,158,35,43,21,99,2,9,6,19,19,103,101,110,101,114,97, +33,10,247,22,252,184,2,248,22,252,184,2,89,162,32,33,36,9,224,3,1, +248,193,89,162,32,32,36,9,224,2,3,28,248,22,252,181,2,193,248,22,252, +186,2,193,249,80,158,35,43,21,99,2,27,6,19,19,103,101,110,101,114,97, 116,101,95,116,101,109,112,95,110,97,109,101,115,94,61,121,40,2,36,95,67, 110,101,119,116,101,109,112,41,64,116,101,109,112,42,2,36,94,94,2,35,2, -37,2,36,2,38,2,36,83,160,41,8,32,35,44,89,162,32,32,54,9,225, -6,5,4,27,250,22,209,83,160,41,8,33,38,44,250,22,209,83,160,41,8, -34,41,44,253,22,62,83,160,41,8,35,47,44,83,160,41,8,36,47,44,248, -22,52,206,250,22,209,83,160,41,8,37,50,44,249,22,56,83,160,41,8,38, -52,44,248,22,87,23,19,83,160,41,8,39,50,44,250,22,2,89,162,33,33, -41,9,223,18,250,22,209,83,160,41,8,40,35,44,249,22,60,248,22,52,199, -248,22,78,199,83,160,41,8,41,35,44,248,22,90,23,17,248,22,89,23,17, -248,22,78,206,83,160,41,8,42,41,44,197,89,162,32,32,33,9,223,0,192, -89,162,32,32,34,9,223,3,248,22,252,183,2,208,250,22,252,38,2,11,6, -10,10,98,97,100,32,115,121,110,116,97,120,199,32,20,97,158,16,12,30,43, +37,2,36,2,38,2,36,20,15,159,35,8,32,44,89,162,32,32,54,9,225, +6,5,4,27,250,22,209,20,15,159,38,8,33,44,250,22,209,20,15,159,41, +8,34,44,253,22,62,20,15,159,47,8,35,44,20,15,159,47,8,36,44,248, +22,87,206,250,22,209,20,15,159,50,8,37,44,249,22,56,20,15,159,52,8, +38,44,248,22,89,23,19,20,15,159,50,8,39,44,250,22,2,89,162,33,33, +41,9,223,18,250,22,209,20,15,159,35,8,40,44,249,22,60,248,22,52,199, +248,22,78,199,20,15,159,35,8,41,44,248,22,78,23,17,248,22,90,23,17, +248,22,52,206,20,15,159,41,8,42,44,197,89,162,32,32,33,9,223,0,192, +89,162,32,32,34,9,223,3,248,22,252,184,2,208,250,22,252,39,2,11,6, +10,10,98,97,100,32,115,121,110,116,97,120,199,32,20,98,158,16,12,30,43, 65,35,37,115,116,120,44,69,115,116,120,45,112,97,105,114,63,45,11,30,46, 2,44,67,99,111,110,115,47,35,102,47,1,30,48,2,44,67,115,116,120,45, 99,97,114,49,5,30,50,2,44,67,115,116,120,45,99,100,114,51,6,30,52, @@ -4483,156 +4154,61 @@ 101,120,110,104,74,3,1,7,101,110,118,52,51,48,56,75,16,4,36,11,63, 101,115,99,76,3,1,7,101,110,118,52,51,48,57,77,16,4,35,11,63,101, 120,110,78,3,1,7,101,110,118,52,51,49,49,79,95,9,8,252,46,11,2, -68,18,99,64,100,101,115,116,80,45,97,44,10,32,11,16,150,73,108,111,97, -100,45,114,101,108,97,116,105,118,101,81,66,35,37,109,105,115,99,82,69,103, -117,97,114,100,45,101,118,116,83,2,82,71,99,104,97,110,110,101,108,45,103, -101,116,84,2,82,2,7,2,29,2,4,2,2,72,112,97,116,104,45,115,116, -114,105,110,103,63,85,2,82,66,108,101,116,47,99,99,86,2,29,74,35,37, -109,111,100,117,108,101,45,98,101,103,105,110,87,158,72,35,37,115,116,120,109, -122,45,98,111,100,121,88,1,28,109,122,115,99,104,101,109,101,45,105,110,45, -115,116,120,45,109,111,100,117,108,101,45,98,101,103,105,110,89,1,26,99,104, -101,99,107,45,100,117,112,108,105,99,97,116,101,45,105,100,101,110,116,105,102, -105,101,114,90,2,31,2,23,2,33,1,24,99,117,114,114,101,110,116,45,112, -97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,91,2,29,2,20,2, -33,64,116,105,109,101,92,2,29,72,115,121,110,116,97,120,45,99,97,115,101, -42,93,2,65,73,100,101,102,105,110,101,45,115,116,114,117,99,116,94,74,35, -37,100,101,102,105,110,101,45,101,116,45,97,108,95,1,23,105,110,116,101,114, -97,99,116,105,111,110,45,101,110,118,105,114,111,110,109,101,110,116,96,2,82, -75,99,111,108,108,101,99,116,105,111,110,45,112,97,116,104,97,2,82,2,15, -2,29,72,112,97,114,97,109,101,116,101,114,105,122,101,98,2,29,2,9,2, -2,1,29,102,105,110,100,45,108,105,98,114,97,114,121,45,99,111,108,108,101, -99,116,105,111,110,45,112,97,116,104,115,99,2,82,71,119,105,116,104,45,115, -121,110,116,97,120,100,70,35,37,119,105,116,104,45,115,116,120,101,2,16,2, -31,65,102,111,114,99,101,102,2,29,1,20,35,37,112,108,97,105,110,45,109, -111,100,117,108,101,45,98,101,103,105,110,103,158,2,28,2,87,70,115,121,110, -116,97,120,47,108,111,99,104,2,65,71,115,121,110,116,97,120,45,99,97,115, -101,105,2,65,2,17,2,32,79,109,101,109,111,114,121,45,116,114,97,99,101, -45,108,97,109,98,100,97,106,2,82,73,119,105,116,104,45,104,97,110,100,108, -101,114,115,107,2,29,64,119,104,101,110,108,2,95,68,112,114,111,109,105,115, -101,63,109,2,29,2,13,2,30,74,119,105,116,104,45,104,97,110,100,108,101, -114,115,42,110,2,29,71,99,104,97,110,110,101,108,45,112,117,116,111,2,82, -78,112,97,114,97,109,101,116,101,114,105,122,101,45,98,114,101,97,107,112,2, -29,77,117,110,115,121,110,116,97,120,45,115,112,108,105,99,105,110,103,113,67, -35,37,113,113,115,116,120,114,66,108,101,116,47,101,99,115,2,95,1,20,114, -101,97,100,45,101,118,97,108,45,112,114,105,110,116,45,108,111,111,112,116,2, -82,76,98,101,103,105,110,45,102,111,114,45,115,121,110,116,97,120,117,2,32, -1,26,99,97,108,108,45,119,105,116,104,45,112,97,114,97,109,101,116,101,114, -105,122,97,116,105,111,110,118,2,29,1,20,103,101,110,101,114,97,116,101,45, -116,101,109,112,111,114,97,114,105,101,115,119,2,101,75,99,104,97,110,110,101, -108,45,116,114,121,45,103,101,116,120,2,82,66,115,121,110,116,97,120,121,2, -68,77,100,101,102,105,110,101,45,102,111,114,45,115,121,110,116,97,120,122,2, -32,2,19,2,33,1,25,99,117,114,114,101,110,116,45,108,111,97,100,47,117, -115,101,45,99,111,109,112,105,108,101,100,123,2,82,75,108,101,116,114,101,99, -45,115,121,110,116,97,120,101,115,124,2,31,75,113,117,97,115,105,115,121,110, -116,97,120,47,108,111,99,125,2,114,68,117,110,115,121,110,116,97,120,126,2, -114,2,24,2,29,66,117,110,108,101,115,115,127,2,95,2,22,2,31,71,113, -117,97,115,105,115,121,110,116,97,120,128,2,114,76,110,117,108,108,45,101,110, -118,105,114,111,110,109,101,110,116,129,2,82,71,115,101,116,33,45,118,97,108, -117,101,115,130,2,29,1,27,112,97,116,104,45,108,105,115,116,45,115,116,114, -105,110,103,45,62,112,97,116,104,45,108,105,115,116,131,2,82,1,23,108,111, -97,100,45,114,101,108,97,116,105,118,101,45,101,120,116,101,110,115,105,111,110, -132,2,82,65,112,111,114,116,63,133,2,82,71,105,100,101,110,116,105,102,105, -101,114,63,134,2,44,1,32,99,97,108,108,45,119,105,116,104,45,98,114,101, -97,107,45,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,135,2, -29,72,108,101,116,45,115,121,110,116,97,120,101,115,136,2,31,77,108,111,97, -100,47,117,115,101,45,99,111,109,112,105,108,101,100,137,2,82,1,20,102,105, -110,100,45,101,120,101,99,117,116,97,98,108,101,45,112,97,116,104,138,2,82, -1,30,99,117,114,114,101,110,116,45,98,114,101,97,107,45,112,97,114,97,109, -101,116,101,114,105,122,97,116,105,111,110,139,2,29,2,25,2,32,72,115,121, -110,116,97,120,45,114,117,108,101,115,140,2,31,70,108,101,116,45,115,116,114, -117,99,116,141,2,29,76,110,111,114,109,97,108,45,99,97,115,101,45,112,97, -116,104,142,2,82,75,115,121,110,116,97,120,45,105,100,45,114,117,108,101,115, -143,2,31,69,102,108,117,105,100,45,108,101,116,144,2,29,67,108,111,97,100, -47,99,100,145,2,82,79,112,97,116,104,45,114,101,112,108,97,99,101,45,115, -117,102,102,105,120,146,2,82,71,114,97,116,105,111,110,97,108,105,122,101,147, -2,82,1,25,115,99,104,101,109,101,45,114,101,112,111,114,116,45,101,110,118, -105,114,111,110,109,101,110,116,148,2,82,97,43,10,33,11,16,146,2,81,2, -82,2,83,2,82,2,84,2,82,2,7,2,29,2,85,2,82,2,86,2,29, -2,87,158,2,88,2,89,2,90,2,31,2,23,2,33,2,91,2,29,2,20, -2,33,2,92,2,29,2,93,2,65,2,94,2,95,2,96,2,82,2,97,2, -82,2,15,2,29,2,98,2,29,2,99,2,82,2,100,2,101,2,16,2,31, -2,102,2,29,2,103,158,2,28,2,87,2,104,2,65,2,105,2,65,2,17, -2,32,2,106,2,82,2,107,2,29,2,108,2,95,2,109,2,29,2,13,2, -30,2,110,2,29,2,111,2,82,2,112,2,29,2,113,2,114,2,115,2,95, -2,116,2,82,2,117,2,32,2,118,2,29,2,119,2,101,2,120,2,82,2, -121,2,68,2,122,2,32,2,19,2,33,2,123,2,82,2,124,2,31,2,125, -2,114,2,126,2,114,2,24,2,29,2,127,2,95,2,22,2,31,2,128,2, -114,2,129,2,82,2,130,2,29,2,131,2,82,2,132,2,82,2,133,2,82, -2,134,2,44,2,135,2,29,2,136,2,31,2,137,2,82,2,138,2,82,2, -139,2,29,2,25,2,32,2,140,2,31,2,141,2,29,2,142,2,82,2,143, -2,31,2,144,2,29,2,145,2,82,2,146,2,82,2,147,2,82,2,148,2, -82,96,42,8,254,1,11,16,0,16,8,41,11,3,1,4,103,53,53,53,149, -3,1,4,103,53,53,54,150,3,1,4,103,53,53,55,151,3,1,7,101,110, -118,52,51,48,48,152,2,152,2,152,16,8,40,11,2,35,2,37,2,38,3, -1,7,101,110,118,52,51,48,49,153,2,153,2,153,18,158,63,99,116,120,154, -45,18,158,2,9,45,18,158,6,19,19,103,101,110,101,114,97,116,101,95,116, -101,109,112,95,110,97,109,101,115,45,18,158,9,45,18,158,2,154,45,18,158, -2,154,45,18,158,2,154,45,18,16,2,95,2,70,46,93,8,252,50,11,95, -9,8,252,50,11,2,68,18,16,2,99,2,36,51,93,8,252,50,11,16,6, -50,11,2,71,2,72,3,1,7,101,110,118,52,51,52,49,155,2,155,16,4, -49,11,2,74,3,1,7,101,110,118,52,51,52,50,156,16,4,48,11,2,76, -3,1,7,101,110,118,52,51,52,51,157,16,4,47,11,2,78,3,1,7,101, -110,118,52,51,52,53,158,95,9,8,252,50,11,2,68,18,99,2,80,54,44, -43,42,16,10,53,11,3,1,4,103,53,53,48,159,3,1,4,103,53,53,49, -160,3,1,4,103,53,53,50,161,3,1,4,103,53,53,51,162,3,1,7,101, -110,118,52,51,51,51,163,2,163,2,163,2,163,16,10,52,11,2,39,2,35, -2,37,2,38,3,1,7,101,110,118,52,51,51,52,164,2,164,2,164,2,164, -18,158,2,154,54,18,158,2,10,54,18,158,2,154,54,18,16,2,106,93,16, -2,158,2,4,54,9,8,33,97,8,32,10,32,11,16,58,2,53,2,44,2, -57,2,44,67,45,100,101,102,105,110,101,165,2,95,2,63,2,44,2,49,2, -44,2,121,29,166,11,11,71,115,116,120,45,114,111,116,97,116,101,42,167,2, -44,2,51,2,44,74,115,112,108,105,116,45,115,116,120,45,108,105,115,116,168, -2,44,2,47,2,44,2,94,2,95,2,134,2,44,2,108,2,95,2,45,2, -44,69,115,116,120,45,110,117,108,108,63,169,2,44,2,127,2,95,2,115,2, -95,73,115,121,110,116,97,120,45,99,97,115,101,42,42,170,2,166,2,13,2, -30,2,19,2,33,2,23,2,33,2,55,2,44,2,61,2,44,2,69,2,166, -2,20,2,33,74,45,100,101,102,105,110,101,45,115,121,110,116,97,120,171,2, -95,2,59,2,44,71,115,116,120,45,118,101,99,116,111,114,63,172,2,44,74, -115,116,120,45,118,101,99,116,111,114,45,114,101,102,173,2,44,97,8,31,10, -33,11,16,70,2,53,2,44,2,57,2,44,2,165,2,95,72,110,111,45,101, -108,108,105,112,115,101,115,63,174,64,35,37,115,99,175,2,63,2,44,2,49, -2,44,2,167,2,44,2,51,2,44,2,168,2,44,74,103,101,116,45,109,97, -116,99,104,45,118,97,114,115,176,2,175,2,47,2,44,75,115,121,110,116,97, -120,45,109,97,112,112,105,110,103,63,177,2,175,74,109,97,107,101,45,109,97, -116,99,104,38,101,110,118,178,2,175,2,94,2,95,2,134,2,44,2,108,2, -95,2,45,2,44,2,169,2,44,2,127,2,95,72,109,97,107,101,45,112,101, -120,112,97,110,100,179,2,175,2,115,2,95,72,115,116,120,45,109,101,109,113, -45,112,111,115,180,2,175,2,13,2,30,79,109,97,107,101,45,115,121,110,116, -97,120,45,109,97,112,112,105,110,103,181,2,175,2,19,2,33,1,20,115,121, -110,116,97,120,45,109,97,112,112,105,110,103,45,100,101,112,116,104,182,2,175, -2,23,2,33,2,55,2,44,2,61,2,44,1,21,115,121,110,116,97,120,45, -109,97,112,112,105,110,103,45,118,97,108,118,97,114,183,2,175,2,20,2,33, -2,171,2,95,2,59,2,44,2,172,2,44,2,173,2,44,96,8,30,8,254, -1,11,16,0,16,4,8,29,11,61,120,184,3,1,6,101,110,118,51,55,55, -185,16,4,8,28,11,68,104,101,114,101,45,115,116,120,186,3,1,6,101,110, -118,51,55,57,187,16,4,59,11,2,186,2,187,13,16,3,33,2,166,2,68, -93,8,252,50,11,16,6,58,11,2,71,2,72,2,155,2,155,16,4,57,11, -2,74,2,156,16,4,56,11,2,76,2,157,16,4,55,11,64,118,97,108,115, -188,3,1,7,101,110,118,52,51,52,57,189,95,9,8,252,50,11,2,68,18, -158,2,154,54,18,158,2,154,54,18,158,2,10,54,18,158,2,154,54,18,158, -2,154,54,18,158,2,154,54,18,158,2,14,54,18,158,2,154,54,18,158,2, -154,54,18,158,2,10,54,18,158,9,54,18,158,2,154,54,18,158,2,154,54, -18,158,2,154,54,18,16,2,95,2,70,8,34,93,8,252,55,11,95,9,8, -252,55,11,2,68,18,16,2,99,2,36,8,39,93,8,252,55,11,16,6,8, -38,11,2,71,2,72,3,1,7,101,110,118,52,51,56,51,190,2,190,16,4, -8,37,11,2,74,3,1,7,101,110,118,52,51,56,52,191,16,4,8,36,11, -2,76,3,1,7,101,110,118,52,51,56,53,192,16,4,8,35,11,2,78,3, -1,7,101,110,118,52,51,56,55,193,95,9,8,252,55,11,2,68,18,99,2, -80,8,42,44,43,42,16,14,8,41,11,3,1,4,103,53,52,51,194,3,1, -4,103,53,52,52,195,3,1,4,103,53,52,53,196,3,1,4,103,53,52,54, -197,3,1,4,103,53,52,55,198,3,1,4,103,53,52,56,199,3,1,7,101, -110,118,52,51,55,51,200,2,200,2,200,2,200,2,200,2,200,16,14,8,40, -11,2,184,2,40,2,42,2,35,2,37,2,38,3,1,7,101,110,118,52,51, -55,52,201,2,201,2,201,2,201,2,201,2,201,18,158,2,154,8,42,18,158, -2,9,8,42,18,158,6,19,19,103,101,110,101,114,97,116,101,95,116,101,109, -112,95,110,97,109,101,115,8,42,18,158,2,154,8,42,18,158,2,41,8,42, -18,158,2,154,8,42,18,158,2,154,8,42,18,158,2,154,8,42,18,158,2, -154,8,42,11,93,83,159,32,93,80,159,32,32,33,91,159,33,10,90,161,33, -32,10,207,207,93,68,109,122,115,99,104,101,109,101,202,93,2,202,0}; - EVAL_ONE_SIZED_STR((char *)expr, 5982); +68,18,99,64,100,101,115,116,80,45,98,44,10,32,11,93,159,68,109,122,115, +99,104,101,109,101,81,9,11,16,4,2,27,2,2,2,4,2,2,98,43,10, +33,11,93,159,2,81,9,11,16,0,96,42,8,254,1,11,16,0,16,8,41, +11,3,1,4,103,53,53,53,82,3,1,4,103,53,53,54,83,3,1,4,103, +53,53,55,84,3,1,7,101,110,118,52,51,48,48,85,2,85,2,85,16,8, +40,11,2,35,2,37,2,38,3,1,7,101,110,118,52,51,48,49,86,2,86, +2,86,18,158,63,99,116,120,87,45,18,158,2,27,45,18,158,6,19,19,103, +101,110,101,114,97,116,101,95,116,101,109,112,95,110,97,109,101,115,45,18,158, +9,45,18,158,2,87,45,18,158,2,87,45,18,158,2,87,45,18,16,2,95, +2,70,46,93,8,252,50,11,95,9,8,252,50,11,2,68,18,16,2,99,2, +36,51,93,8,252,50,11,16,6,50,11,2,71,2,72,3,1,7,101,110,118, +52,51,52,49,88,2,88,16,4,49,11,2,74,3,1,7,101,110,118,52,51, +52,50,89,16,4,48,11,2,76,3,1,7,101,110,118,52,51,52,51,90,16, +4,47,11,2,78,3,1,7,101,110,118,52,51,52,53,91,95,9,8,252,50, +11,2,68,18,99,2,80,54,44,43,42,16,10,53,11,3,1,4,103,53,53, +48,92,3,1,4,103,53,53,49,93,3,1,4,103,53,53,50,94,3,1,4, +103,53,53,51,95,3,1,7,101,110,118,52,51,51,51,96,2,96,2,96,2, +96,16,10,52,11,2,39,2,35,2,37,2,38,3,1,7,101,110,118,52,51, +51,52,97,2,97,2,97,2,97,18,158,2,87,54,18,158,2,16,54,18,158, +2,87,54,18,16,2,106,93,16,2,158,2,4,54,9,8,33,98,8,32,10, +32,11,94,159,74,35,37,115,109,97,108,108,45,115,99,104,101,109,101,98,9, +11,159,2,44,9,11,16,6,66,115,121,110,116,97,120,99,29,100,11,11,73, +115,121,110,116,97,120,45,99,97,115,101,42,42,101,2,100,2,69,2,100,98, +8,31,10,33,11,95,159,64,35,37,115,99,102,9,11,159,2,98,9,11,159, +2,44,9,11,16,0,96,8,30,8,254,1,11,16,0,16,4,8,29,11,61, +120,103,3,1,6,101,110,118,51,55,55,104,16,4,8,28,11,68,104,101,114, +101,45,115,116,120,105,3,1,6,101,110,118,51,55,57,106,16,4,59,11,2, +105,2,106,13,16,3,33,2,100,2,68,93,8,252,50,11,16,6,58,11,2, +71,2,72,2,88,2,88,16,4,57,11,2,74,2,89,16,4,56,11,2,76, +2,90,16,4,55,11,64,118,97,108,115,107,3,1,7,101,110,118,52,51,52, +57,108,95,9,8,252,50,11,2,68,18,158,2,87,54,18,158,2,87,54,18, +158,2,16,54,18,158,2,87,54,18,158,2,87,54,18,158,2,87,54,18,158, +2,14,54,18,158,2,87,54,18,158,2,87,54,18,158,2,16,54,18,158,9, +54,18,158,2,87,54,18,158,2,87,54,18,158,2,87,54,18,16,2,95,2, +70,8,34,93,8,252,55,11,95,9,8,252,55,11,2,68,18,16,2,99,2, +36,8,39,93,8,252,55,11,16,6,8,38,11,2,71,2,72,3,1,7,101, +110,118,52,51,56,51,109,2,109,16,4,8,37,11,2,74,3,1,7,101,110, +118,52,51,56,52,110,16,4,8,36,11,2,76,3,1,7,101,110,118,52,51, +56,53,111,16,4,8,35,11,2,78,3,1,7,101,110,118,52,51,56,55,112, +95,9,8,252,55,11,2,68,18,99,2,80,8,42,44,43,42,16,14,8,41, +11,3,1,4,103,53,52,51,113,3,1,4,103,53,52,52,114,3,1,4,103, +53,52,53,115,3,1,4,103,53,52,54,116,3,1,4,103,53,52,55,117,3, +1,4,103,53,52,56,118,3,1,7,101,110,118,52,51,55,51,119,2,119,2, +119,2,119,2,119,2,119,16,14,8,40,11,2,103,2,40,2,42,2,35,2, +37,2,38,3,1,7,101,110,118,52,51,55,52,120,2,120,2,120,2,120,2, +120,2,120,18,158,2,87,8,42,18,158,2,27,8,42,18,158,6,19,19,103, +101,110,101,114,97,116,101,95,116,101,109,112,95,110,97,109,101,115,8,42,18, +158,2,87,8,42,18,158,2,41,8,42,18,158,2,87,8,42,18,158,2,87, +8,42,18,158,2,87,8,42,18,158,2,87,8,42,11,93,83,159,32,93,80, +159,32,32,33,91,159,33,10,90,161,33,32,10,207,207,93,2,81,93,2,81, +0}; + EVAL_ONE_SIZED_STR((char *)expr, 3969); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,49,5,93,159,32,20,97,158,16,1,20,23,65, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,5,93,159,32,20,98,158,16,1,20,24,65, 98,101,103,105,110,0,16,0,83,160,40,80,158,32,32,32,18,158,94,96,67, 114,101,113,117,105,114,101,1,34,10,11,158,95,158,64,111,110,108,121,2,34, 158,68,109,122,115,99,104,101,109,101,3,34,158,1,22,110,97,109,101,115,112, @@ -4640,7 +4216,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 104); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,49,3,73,159,33,20,97,158,16,1,20,23,65, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,3,73,159,33,20,98,158,16,1,20,24,65, 98,101,103,105,110,0,16,0,87,94,248,22,241,68,109,122,115,99,104,101,109, 101,1,83,160,40,80,158,32,32,33,18,158,94,96,78,114,101,113,117,105,114, 101,45,102,111,114,45,115,121,110,116,97,120,2,34,10,11,158,2,1,34,34, @@ -4648,9 +4224,9 @@ EVAL_ONE_SIZED_STR((char *)expr, 84); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,49,2,66,159,36,20,97,158,16,0,16,0,248, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,2,66,159,36,20,98,158,16,0,16,0,248, 22,233,248,249,22,235,66,35,37,109,105,115,99,0,1,34,109,97,107,101,45, 115,116,97,110,100,97,114,100,45,109,111,100,117,108,101,45,110,97,109,101,45, -114,101,115,111,108,118,101,114,1,247,22,252,210,2,0}; +114,101,115,111,108,118,101,114,1,247,22,252,211,2,0}; EVAL_ONE_SIZED_STR((char *)expr, 77); } diff --git a/src/mzscheme/src/env.c b/src/mzscheme/src/env.c index 951fb6b29e..59f7db5bce 100644 --- a/src/mzscheme/src/env.c +++ b/src/mzscheme/src/env.c @@ -987,7 +987,8 @@ void scheme_shadow(Scheme_Env *env, Scheme_Object *n, int stxtoo) n, n, env->module->self_modidx, n, - env->mod_phase); + env->mod_phase, + 0); } } @@ -1579,7 +1580,7 @@ Scheme_Object *scheme_hash_module_variable(Scheme_Env *env, Scheme_Object *modid Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, int is_def) /* The `env' argument can actually be a hash table. */ { - Scheme_Object *marks = NULL, *sym, *map, *l, *a, *amarks, *m, *best_match; + Scheme_Object *marks = NULL, *sym, *map, *l, *a, *amarks, *m, *best_match, *cm; int best_match_skipped, ms; Scheme_Hash_Table *marked_names; @@ -1627,6 +1628,12 @@ Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, int is_def) best_match = NULL; best_match_skipped = scheme_list_length(marks); + if (best_match_skipped == 1) { + /* A mark list of length 1 is the common case. + Since the list is otherwise marshaled into .zo, etc., + simplify by extracting just the mark: */ + marks = SCHEME_CAR(marks); + } /* Find a mapping that matches the longest tail of marks */ for (l = map; SCHEME_PAIRP(l); l = SCHEME_CDR(l)) { @@ -1638,12 +1645,28 @@ Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, int is_def) break; } } else { - for (m = marks, ms = 0; - SCHEME_PAIRP(m) && (ms < best_match_skipped); - m = SCHEME_CDR(m), ms++) { + if (!SCHEME_PAIRP(marks)) { + /* To be better than nothing, could only match exactly: */ + if (SAME_OBJ(amarks, marks)) { + best_match = SCHEME_CDR(a); + best_match_skipped = 0; + } + } else { + /* amarks can match a tail of marks: */ + for (m = marks, ms = 0; + SCHEME_PAIRP(m) && (ms < best_match_skipped); + m = SCHEME_CDR(m), ms++) { + + cm = m; + if (!SCHEME_PAIRP(amarks)) { + /* If we're down to the last element + of marks, then extract it to try to + match the symbol amarks. */ + if (SCHEME_NULLP(SCHEME_CDR(m))) + cm = SCHEME_CAR(m); + } - if (scheme_equal(amarks, m)) { - if (ms < best_match_skipped) { + if (scheme_equal(amarks, cm)) { best_match = SCHEME_CDR(a); best_match_skipped = ms; break; diff --git a/src/mzscheme/src/error.c b/src/mzscheme/src/error.c index 6a0d63b29e..73cc87d378 100644 --- a/src/mzscheme/src/error.c +++ b/src/mzscheme/src/error.c @@ -1214,7 +1214,12 @@ void scheme_arg_mismatch(const char *name, const char *msg, Scheme_Object *o) char *s; int slen; - s = scheme_make_provided_string(o, 1, &slen); + if (o) + s = scheme_make_provided_string(o, 1, &slen); + else { + s = ""; + slen = 0; + } scheme_raise_exn(MZEXN_FAIL_CONTRACT, "%s: %s%t", diff --git a/src/mzscheme/src/eval.c b/src/mzscheme/src/eval.c index c65fa833ff..1dca670aaf 100644 --- a/src/mzscheme/src/eval.c +++ b/src/mzscheme/src/eval.c @@ -201,6 +201,8 @@ static Scheme_Object *write_with_cont_mark(Scheme_Object *obj); static Scheme_Object *read_with_cont_mark(Scheme_Object *obj); static Scheme_Object *write_syntax(Scheme_Object *obj); static Scheme_Object *read_syntax(Scheme_Object *obj); +static Scheme_Object *write_quote_syntax(Scheme_Object *obj); +static Scheme_Object *read_quote_syntax(Scheme_Object *obj); static Scheme_Object *define_values_symbol, *letrec_values_symbol, *lambda_symbol; static Scheme_Object *unknown_symbol, *void_link_symbol, *quote_symbol; @@ -329,6 +331,8 @@ scheme_init_eval (Scheme_Env *env) scheme_install_type_reader(scheme_branch_type, read_branch); scheme_install_type_writer(scheme_with_cont_mark_type, write_with_cont_mark); scheme_install_type_reader(scheme_with_cont_mark_type, read_with_cont_mark); + scheme_install_type_writer(scheme_quote_syntax_type, write_quote_syntax); + scheme_install_type_reader(scheme_quote_syntax_type, read_quote_syntax); scheme_install_type_writer(scheme_syntax_type, write_syntax); scheme_install_type_reader(scheme_syntax_type, read_syntax); @@ -1447,18 +1451,20 @@ Scheme_Object *scheme_resolve_expr(Scheme_Object *expr, Resolve_Info *info) return scheme_resolve_toplevel(info, expr); case scheme_compiled_quote_syntax_type: { - Scheme_Object *obj; + Scheme_Quote_Syntax *qs; int i, c, p; i = SCHEME_LOCAL_POS(expr); c = scheme_resolve_toplevel_pos(info); p = scheme_resolve_quote_syntax_pos(info); - obj = scheme_make_pair(scheme_make_integer(i), - scheme_make_pair(scheme_make_integer(c), - scheme_make_integer(p))); + qs = MALLOC_ONE_TAGGED(Scheme_Quote_Syntax); + qs->so.type = scheme_quote_syntax_type; + qs->depth = c; + qs->position = i; + qs->midpoint = p; - return scheme_make_syntax_resolved(QUOTE_SYNTAX_EXPD, obj); + return (Scheme_Object *)qs; } case scheme_variable_type: case scheme_module_variable_type: @@ -5289,7 +5295,7 @@ scheme_do_eval(Scheme_Object *obj, int num_rands, Scheme_Object **rands, if (SCHEME_INTP(obj)) { v = obj; - goto returnv; + goto returnv_never_multi; } type = _SCHEME_TYPE(obj); @@ -5309,17 +5315,17 @@ scheme_do_eval(Scheme_Object *obj, int num_rands, Scheme_Object **rands, prefix tmp global_lookup(v = , obj, v); - goto returnv; + goto returnv_never_multi; } case scheme_local_type: { v = RUNSTACK[SCHEME_LOCAL_POS(obj)]; - goto returnv; + goto returnv_never_multi; } case scheme_local_unbox_type: { v = SCHEME_ENVBOX_VAL(RUNSTACK[SCHEME_LOCAL_POS(obj)]); - goto returnv; + goto returnv_never_multi; } case scheme_syntax_type: { @@ -5596,7 +5602,7 @@ scheme_do_eval(Scheme_Object *obj, int num_rands, Scheme_Object **rands, case scheme_unclosed_procedure_type: UPDATE_THREAD_RSPTR(); v = scheme_make_closure(p, obj, 1); - goto returnv; + goto returnv_never_multi; case scheme_let_value_type: { @@ -5800,10 +5806,32 @@ scheme_do_eval(Scheme_Object *obj, int num_rands, Scheme_Object **rands, goto eval_top; } + + case scheme_quote_syntax_type: + { + GC_CAN_IGNORE Scheme_Quote_Syntax *qs = (Scheme_Quote_Syntax *)obj; + Scheme_Object **globs; + int i, c, p; + + i = qs->position; + c = qs->depth; + p = qs->midpoint; + + globs = (Scheme_Object **)RUNSTACK[c]; + v = globs[i+p+1]; + if (!v) { + v = globs[p]; + v = scheme_add_rename(((Scheme_Object **)SCHEME_CDR(v))[i], + SCHEME_CAR(v)); + globs[i+p+1] = v; + } + + goto returnv_never_multi; + } default: v = obj; - goto returnv; + goto returnv_never_multi; } } @@ -5834,6 +5862,8 @@ scheme_do_eval(Scheme_Object *obj, int num_rands, Scheme_Object **rands, return NULL; } + returnv_never_multi: + MZ_RUNSTACK = old_runstack; MZ_CONT_MARK_STACK = old_cont_mark_stack; MZ_CONT_MARK_POS -= 2; @@ -6725,10 +6755,9 @@ Scheme_Object **scheme_push_prefix(Scheme_Env *genv, Resolve_Prefix *rp, v = scheme_stx_phase_shift_as_rename(now_phase - src_phase, src_modidx, now_modidx); if (v) { /* Put lazy-shift info in a[i]: */ - v = scheme_make_pair(v, (Scheme_Object *)rp->stxes); + v = scheme_make_raw_pair(v, (Scheme_Object *)rp->stxes); a[i] = v; - /* Rest of a left zeroed, to be filled in lazily by - QUOTE_SYNTAX_EXPD handler */ + /* Rest of a left zeroed, to be filled in lazily by quote-syntax evaluation */ } else { /* No shift, so fill in stxes immediately */ i++; @@ -6914,6 +6943,21 @@ void scheme_validate_expr(Mz_CPort *port, Scheme_Object *expr, char *stack, goto top; } break; + case scheme_quote_syntax_type: + { + Scheme_Quote_Syntax *qs = (Scheme_Quote_Syntax *)expr; + int c = qs->depth; + int i = qs->position; + int p = qs->midpoint; + int d = c + delta; + + if ((c < 0) || (p < 0) || (d >= depth) + || (stack[d] != VALID_TOPLEVELS) + || (p != num_toplevels) + || (i >= num_stxes)) + scheme_ill_formed_code(port); + } + break; case scheme_unclosed_procedure_type: { Scheme_Closure_Data *data = (Scheme_Closure_Data *)expr; @@ -7075,19 +7119,6 @@ void scheme_validate_toplevel(Scheme_Object *expr, Mz_CPort *port, scheme_validate_expr(port, expr, stack, depth, delta, delta, num_toplevels, num_stxes); } -void scheme_validate_quote_syntax(int c, int p, int i, Mz_CPort *port, - char *stack, int depth, int delta, - int num_toplevels, int num_stxes) -{ - int d = c + delta; - - if ((c < 0) || (p < 0) || (d >= depth) - || (stack[d] != VALID_TOPLEVELS) - || (p != num_toplevels) - || (i >= num_stxes)) - scheme_ill_formed_code(port); -} - void scheme_validate_boxenv(int p, Mz_CPort *port, char *stack, int depth, int delta) { p += delta; @@ -7258,6 +7289,44 @@ static Scheme_Object *read_syntax(Scheme_Object *obj) return scheme_make_syntax_resolved(SCHEME_INT_VAL(idx), first); } +static Scheme_Object *write_quote_syntax(Scheme_Object *obj) +{ + Scheme_Quote_Syntax *qs = (Scheme_Quote_Syntax *)obj; + + return cons(scheme_make_integer(qs->depth), + cons(scheme_make_integer(qs->position), + scheme_make_integer(qs->midpoint))); +} + +static Scheme_Object *read_quote_syntax(Scheme_Object *obj) +{ + Scheme_Quote_Syntax *qs; + Scheme_Object *a; + int c, i, p; + + if (!SCHEME_PAIRP(obj)) return NULL; + + a = SCHEME_CAR(obj); + c = SCHEME_INT_VAL(a); + + obj = SCHEME_CDR(obj); + if (!SCHEME_PAIRP(obj)) return NULL; + + a = SCHEME_CAR(obj); + i = SCHEME_INT_VAL(a); + + a = SCHEME_CDR(obj); + p = SCHEME_INT_VAL(a); + + qs = MALLOC_ONE_TAGGED(Scheme_Quote_Syntax); + qs->so.type = scheme_quote_syntax_type; + qs->depth = c; + qs->position = i; + qs->midpoint = p; + + return (Scheme_Object *)qs; +} + /*========================================================================*/ /* precise GC traversers */ /*========================================================================*/ diff --git a/src/mzscheme/src/fun.c b/src/mzscheme/src/fun.c index 1762c90de7..43400c68f5 100644 --- a/src/mzscheme/src/fun.c +++ b/src/mzscheme/src/fun.c @@ -3589,7 +3589,7 @@ internal_call_cc (int argc, Scheme_Object *argv[]) /* For copying cont marks back in, we need a list of sub_conts, deepest to shallowest: */ for (sub_cont = cont->buf.cont; sub_cont; sub_cont = sub_cont->buf.cont) { - sub_conts = scheme_make_pair((Scheme_Object *)sub_cont, sub_conts); + sub_conts = scheme_make_raw_pair((Scheme_Object *)sub_cont, sub_conts); } /* For dynamic-winds after the "common" intersection diff --git a/src/mzscheme/src/jit.c b/src/mzscheme/src/jit.c index 53d15b80cd..ced7cb082e 100644 --- a/src/mzscheme/src/jit.c +++ b/src/mzscheme/src/jit.c @@ -56,8 +56,6 @@ static void *shared_non_tail_code[3][MAX_SHARED_CALL_RANDS][2]; #define MAX_SHARED_ARITY_CHECK 25 static void *shared_arity_check[MAX_SHARED_ARITY_CHECK][2][2]; -static void *jump_to_native_code; -static void *jump_to_native_arity_code; static void *bad_result_arity_code; static void *unbound_global_code; static void *quote_syntax_code; @@ -753,16 +751,15 @@ static void _jit_prolog_again(mz_jit_state *jitter, int n, int ret_addr_reg) # define __END_SHORT_JUMPS__(cond) /* empty */ #endif -/* Note: Things like - - refm = jit_jmpi(jit_forward()); - jit_patch_at(refm, jump_to_native_code); - - appear in the code because the generated instructions can depend on - the actual value supplied to jit_jmpi, and it can depend on the - relative location between the instruction address and the actual - value. Using jit_patch ensures that the generated instructions - always have the same size. */ +/* In + jit_jmpi(code); + or + jit_blti_i(code, v); + with short jumps enabled, the generated instructions can depend on + the relative location between the instruction address and the + actual value. Do not enable short jumps if the relative offset can + change between the initial sizing pass and the final pass. Of course, + also don't enable short umps if the jump is potentially too long. */ /*========================================================================*/ /* bytecode properties */ @@ -783,8 +780,7 @@ static int is_short(Scheme_Object *obj, int fuel) { int t; t = SCHEME_PINT_VAL(obj); - if ((t == CASE_LAMBDA_EXPD) - || (t == QUOTE_SYNTAX_EXPD)) + if (t == CASE_LAMBDA_EXPD) return fuel - 1; else return 0; @@ -837,6 +833,7 @@ static int is_short(Scheme_Object *obj, int fuel) return is_short(branch->fbranch, fuel); } case scheme_toplevel_type: + case scheme_quote_syntax_type: case scheme_local_type: case scheme_local_unbox_type: case scheme_unclosed_procedure_type: @@ -922,8 +919,7 @@ static int is_simple(Scheme_Object *obj, int depth, int just_markless, mz_jit_st { int t; t = SCHEME_PINT_VAL(obj); - return ((t == CASE_LAMBDA_EXPD) - || (t == QUOTE_SYNTAX_EXPD)); + return (t == CASE_LAMBDA_EXPD); } break; @@ -977,6 +973,7 @@ static int is_simple(Scheme_Object *obj, int depth, int just_markless, mz_jit_st break; case scheme_toplevel_type: + case scheme_quote_syntax_type: case scheme_local_type: case scheme_local_unbox_type: case scheme_unclosed_procedure_type: @@ -1190,19 +1187,7 @@ static int generate_non_tail_call(mz_jit_state *jitter, int num_rands, int direc jit_str_i(JIT_R1, JIT_R2); #endif - /* Fast inlined-native jump ok (proc will check argc); */ -#if 0 - mz_prepare(3); - jit_pusharg_p(JIT_RUNSTACK); - jit_movi_i(JIT_R1, num_rands); - jit_pusharg_i(JIT_R1); - jit_pusharg_p(JIT_V1); - if (direct_native) { - (void)mz_finish(jump_to_native_code); - } else { - (void)mz_finish(jump_to_native_arity_code); - } -#else + /* Fast inlined-native jump ok (proc will check argc, if necessary) */ { jit_insn *refr; refr = jit_movi_p(JIT_R0, jit_forward()); @@ -1223,7 +1208,6 @@ static int generate_non_tail_call(mz_jit_state *jitter, int num_rands, int direc jit_jmpr(JIT_V1); jit_patch_movi(refr, (_jit.x.pc)); } -#endif CHECK_LIMIT(); jit_retval(JIT_R0); if (!multi_ok) { @@ -3078,26 +3062,6 @@ static int generate(Scheme_Object *obj, mz_jit_state *jitter, int is_tail, int m END_JIT_DATA(9); } break; - case QUOTE_SYNTAX_EXPD: - { - int i, c, p; - START_JIT_DATA(); - - LOG_IT(("quote-syntax\n")); - - obj = SCHEME_IPTR_VAL(obj); - i = SCHEME_INT_VAL(SCHEME_CAR(obj)); - c = mz_remap(SCHEME_INT_VAL(SCHEME_CADR(obj))); - p = SCHEME_INT_VAL(SCHEME_CDDR(obj)); - - jit_movi_i(JIT_R0, WORDS_TO_BYTES(c)); - jit_movi_i(JIT_R1, WORDS_TO_BYTES(i + p + 1)); - jit_movi_i(JIT_R2, WORDS_TO_BYTES(p)); - (void)jit_calli(quote_syntax_code); - - END_JIT_DATA(10); - } - break; default: { JIT_UPDATE_THREAD_RSPTR_IF_NEEDED(); @@ -3516,6 +3480,27 @@ static int generate(Scheme_Object *obj, mz_jit_state *jitter, int is_tail, int m return generate(wcm->body, jitter, is_tail, multi_ok); } + case scheme_quote_syntax_type: + { + Scheme_Quote_Syntax *qs = (Scheme_Quote_Syntax *)obj; + int i, c, p; + START_JIT_DATA(); + + LOG_IT(("quote-syntax\n")); + + i = qs->position; + c = mz_remap(qs->depth); + p = qs->midpoint; + + jit_movi_i(JIT_R0, WORDS_TO_BYTES(c)); + jit_movi_i(JIT_R1, WORDS_TO_BYTES(i + p + 1)); + jit_movi_i(JIT_R2, WORDS_TO_BYTES(p)); + (void)jit_calli(quote_syntax_code); + + END_JIT_DATA(10); + + return 1; + } default: { int retptr; @@ -3642,37 +3627,6 @@ static int do_generate_common(mz_jit_state *jitter, void *_data) int in, i; GC_CAN_IGNORE jit_insn *ref, *ref2; - /* *** jump_to_native_[arity_]code *** */ - /* Called as a function: */ - for (i = 0; i < 2; i++) { - if (!i) - jump_to_native_code = jit_get_ip().ptr; - else - jump_to_native_arity_code = jit_get_ip().ptr; - jit_prolog(3); - in = jit_arg_p(); - jit_getarg_p(JIT_R0, in); /* closure */ - in = jit_arg_p(); - jit_getarg_i(JIT_R1, in); /* argc */ - in = jit_arg_p(); - jit_getarg_i(JIT_R2, in); /* argv */ - CHECK_LIMIT(); - jit_movr_p(JIT_RUNSTACK, JIT_R2); - jit_movr_p(JIT_RUNSTACK_BASE, JIT_R1); - jit_lshi_ul(JIT_RUNSTACK_BASE, JIT_RUNSTACK_BASE, JIT_LOG_WORD_SIZE); - jit_addr_p(JIT_RUNSTACK_BASE, JIT_RUNSTACK_BASE, JIT_RUNSTACK); - mz_push_locals(); - mz_set_local_p(JIT_RUNSTACK, JIT_LOCAL1); - jit_ldxi_p(JIT_V1, JIT_R0, &((Scheme_Native_Closure *)0x0)->code); - if (!i) { - jit_ldxi_p(JIT_V1, JIT_V1, &((Scheme_Native_Closure_Data *)0x0)->u.tail_code); - } else { - jit_ldxi_p(JIT_V1, JIT_V1, &((Scheme_Native_Closure_Data *)0x0)->arity_code); - } - jit_jmpr(JIT_V1); - CHECK_LIMIT(); - } - /* *** check_arity_code *** */ /* Called as a function: */ check_arity_code = (Native_Check_Arity_Proc)jit_get_ip().ptr; @@ -4541,7 +4495,7 @@ Scheme_Native_Closure_Data *scheme_generate_lambda(Scheme_Closure_Data *data, in { Scheme_Native_Closure_Data *ndata; - if (!jump_to_native_code) { + if (!check_arity_code) { /* Create shared code used for stack-overflow handling, etc.: */ generate_one(NULL, do_generate_common, NULL, 0, NULL, NULL); } diff --git a/src/mzscheme/src/list.c b/src/mzscheme/src/list.c index 38414e96c3..4cee94ed84 100644 --- a/src/mzscheme/src/list.c +++ b/src/mzscheme/src/list.c @@ -532,6 +532,15 @@ Scheme_Object *scheme_make_pair(Scheme_Object *car, Scheme_Object *cdr) { Scheme_Object *cons; +#if 0 + if (!car || !cdr + || (SCHEME_TYPE(car) < 0) + || (SCHEME_TYPE(cdr) < 0) + || (SCHEME_TYPE(car) >= (_scheme_last_type_ + 10)) /* +10 leaves room of external types */ + || (SCHEME_TYPE(cdr) >= (_scheme_last_type_ + 10))) + *(long *)0x0 = 1; +#endif + cons = scheme_alloc_object(); cons->type = scheme_pair_type; SCHEME_CAR(cons) = car; @@ -539,6 +548,21 @@ Scheme_Object *scheme_make_pair(Scheme_Object *car, Scheme_Object *cdr) return cons; } +Scheme_Object *scheme_make_raw_pair(Scheme_Object *car, Scheme_Object *cdr) +{ + Scheme_Object *cons; + + /* A raw pair is like a pair, but some of our low-level debugging + tools expect pairs to always contain tagged values. A raw pair + contains arbitrary pointers. */ + + cons = scheme_alloc_object(); + cons->type = scheme_raw_pair_type; + SCHEME_CAR(cons) = car; + SCHEME_CDR(cons) = cdr; + return cons; +} + Scheme_Object *scheme_make_immutable_pair(Scheme_Object *car, Scheme_Object *cdr) { Scheme_Object *cons; diff --git a/src/mzscheme/src/mk-uchar.ss b/src/mzscheme/src/mk-uchar.ss index 418998d8e9..35bf47d242 100644 --- a/src/mzscheme/src/mk-uchar.ss +++ b/src/mzscheme/src/mk-uchar.ss @@ -7,8 +7,8 @@ ;; Run as ;; mzscheme -r mk-uchar.ss -;; in the script's directory, and have a copy of UnicodeData.txt -;; in the same directory. The file schuchar.inc will be +;; in the script's directory, and have a copy of UnicodeData.txt, etc. +;; in the "Unicode" directory. The file schuchar.inc will be ;; overwritten. (require (lib "list.ss")) @@ -20,6 +20,7 @@ (define space-cats '("Zl" "Zs" "Zp")) (define punc-cats '("Pc" "Pd" "Ps" "Pe" "Pi" "Pf" "Po")) (define sym-cats '("Sm" "Sc" "Sk" "So")) +(define sympart-non-cats '("Ps" "Pe" "Pi" "Pf" "Zl" "Zs" "Zp")) (define graphic-cats (append mark-cats letter-cats digit-cats @@ -52,6 +53,15 @@ (define (combine-case up down title fold combining) (indirect cases (list up down title fold combining) 256)) +(define general-categories (make-hash-table 'equal)) +(hash-table-put! general-categories "Cn" 0) +(define (combine-cat cat) + (hash-table-get general-categories cat + (lambda () + (let ([v (hash-table-count general-categories)]) + (hash-table-put! general-categories cat v) + v)))) + (define hexes (map char->integer (string->list "0123456789abcdefABCDEF"))) (define combining-class-ht (make-hash-table)) @@ -69,22 +79,25 @@ (define top (make-vector hi-count #f)) (define top2 (make-vector hi-count #f)) +(define top3 (make-vector hi-count #f)) (define range-bottom 0) (define range-top -1) (define range-v -1) (define range-v2 -1) +(define range-v3 -1) (define ranges null) (define ccount 0) -(define (map1 c v v2 cc) +(define (map1 c v v2 v3 cc) (hash-table-put! combining-class-ht c cc) (set! ccount (add1 ccount)) (if (= c (add1 range-top)) (begin (unless (and (= v range-v) - (= v2 range-v2)) + (= v2 range-v2) + (= v3 range-v3)) (set! range-v -1)) (set! range-top c)) (begin @@ -104,25 +117,31 @@ (set! range-bottom c) (set! range-top c) (set! range-v v) - (set! range-v2 v2))) + (set! range-v2 v2) + (set! range-v3 v3))) (let ([top-index (arithmetic-shift c (- low-bits))]) (let ([vec (vector-ref top top-index)] - [vec2 (vector-ref top2 top-index)]) + [vec2 (vector-ref top2 top-index)] + [vec3 (vector-ref top3 top-index)]) (unless vec (vector-set! top top-index (make-vector (add1 low)))) (unless vec2 (vector-set! top2 top-index (make-vector (add1 low)))) + (unless vec3 + (vector-set! top3 top-index (make-vector (add1 low)))) (let ([vec (vector-ref top top-index)] - [vec2 (vector-ref top2 top-index)]) + [vec2 (vector-ref top2 top-index)] + [vec3 (vector-ref top3 top-index)]) (vector-set! vec (bitwise-and c low) v) - (vector-set! vec2 (bitwise-and c low) v2))))) + (vector-set! vec2 (bitwise-and c low) v2) + (vector-set! vec3 (bitwise-and c low) v3))))) -(define (mapn c from v v2 cc) +(define (mapn c from v v2 v3 cc) (if (= c from) - (map1 c v v2 cc) + (map1 c v v2 v3 cc) (begin - (map1 from v v2 cc) - (mapn c (add1 from) v v2 cc)))) + (map1 from v v2 v3 cc) + (mapn c (add1 from) v v2 v3 cc)))) (define (set-compose-initial! c) (let ([top-index (arithmetic-shift c (- low-bits))]) @@ -131,7 +150,7 @@ (vector-set! vec i (bitwise-ior #x8000 (vector-ref vec i)))))) (define midletters - (call-with-input-file "WordBreakProperty.txt" + (call-with-input-file "Unicode/WordBreakProperty.txt" (lambda (i) (let loop () (let ([re (regexp-match #rx"\n([0-9A-F]+) *; *MidLetter" i)]) @@ -150,7 +169,7 @@ ;; This code assumes that Final_Sigma is the only condition that we care about: (define case-foldings (make-hash-table 'equal)) (define special-case-foldings (make-hash-table 'equal)) -(call-with-input-file "CaseFolding.txt" +(call-with-input-file "Unicode/CaseFolding.txt" (lambda (i) (let loop () (let ([l (read-line i)]) @@ -168,7 +187,7 @@ ;; This code assumes that Final_Sigma is the only condition that we care about: (define special-casings (make-hash-table 'equal)) (define-struct special-casing (lower upper title folding final-sigma?)) -(call-with-input-file "SpecialCasing.txt" +(call-with-input-file "Unicode/SpecialCasing.txt" (lambda (i) (let loop () (let ([l (read-line i)]) @@ -188,7 +207,7 @@ (define lower-case (make-hash-table 'equal)) (define upper-case (make-hash-table 'equal)) -(with-input-from-file "DerivedCoreProperties.txt" +(with-input-from-file "Unicode/DerivedCoreProperties.txt" (lambda () (let loop () (let ([l (read-line)]) @@ -213,7 +232,7 @@ (define compose-map (make-hash-table 'equal)) (define do-not-compose-ht (make-hash-table 'equal)) -(with-input-from-file "CompositionExclusions.txt" +(with-input-from-file "Unicode/CompositionExclusions.txt" (lambda () (let loop () (let ([l (read-line)]) @@ -257,7 +276,7 @@ (hash-table-put! k-decomp-ht code seq) #t))))) -(call-with-input-file "UnicodeData.txt" +(call-with-input-file "Unicode/UnicodeData.txt" (lambda (i) (let loop ([prev-code 0]) (let ([l (read-line i)]) @@ -312,8 +331,8 @@ (member cat letter-cats) ;; digit (member cat digit-cats) - ;; hex digit - (member code hexes) + ;; SOMETHING - this bit not yet used + #f ;; whitespace (or (member cat space-cats) (member code '(#x9 #xa #xb #xc #xd))) @@ -335,6 +354,8 @@ (let ([case-fold (hash-table-get case-foldings code (lambda () #f))]) (if case-fold (- case-fold code) 0)) combining) + ;; Category + (combine-cat cat) ;; Combining class - used again to filter initial composes combining) (loop code)))))))) @@ -402,11 +423,11 @@ (define vectors (make-hash-table 'equal)) (define vectors2 (make-hash-table 'equal)) +(define vectors3 (make-hash-table 'equal)) (define pos 0) (define pos2 0) (define pos3 0) -(define pos4 0) (current-output-port (open-output-file "schuchar.inc" 'truncate/replace)) @@ -422,6 +443,7 @@ (hash-vectors! top vectors (lambda () pos) (lambda (v) (set! pos v))) (hash-vectors! top2 vectors2 (lambda () pos2) (lambda (v) (set! pos2 v))) +(hash-vectors! top3 vectors3 (lambda () pos3) (lambda (v) (set! pos3 v))) ;; copy folding special cases to the special-cases table, if not there already: (hash-table-for-each special-case-foldings @@ -447,6 +469,8 @@ (* 2 (add1 (length (hash-table-map vectors cons))))) (* (add1 low) (* 1 (add1 (length (hash-table-map vectors2 cons))))) + (* (add1 low) + (* 1 (add1 (length (hash-table-map vectors3 cons))))) (* (hash-table-count decomp-ht) 8) (* (hash-table-count compose-map) @@ -466,6 +490,9 @@ (printf "\n/* Character case mapping as index into scheme_uchar_ups, etc.: */\n") (printf "unsigned char *scheme_uchar_cases_table[~a];~n" hi-count) +(printf "\n/* Character general categories: */\n") +(printf "unsigned char *scheme_uchar_cats_table[~a];~n" hi-count) + (printf "\n/* The udata... arrays are used by init_uchar_table to fill the above mappings.*/\n\n") (define print-row @@ -494,6 +521,7 @@ (print-table "short" "" vectors pos #t) (printf "\n") (print-table "char" "_cases" vectors2 pos2 #f) +(print-table "char" "_cats" vectors3 pos3 #f) (printf "~n/* Case mapping size: ~a */\n" (hash-table-count (car cases))) (printf "/* Find an index into the ups, downs, etc. table for a character\n") @@ -521,6 +549,19 @@ (print-shift (car cases) (unbox (cdr cases)) cadddr "int" "folds") (print-shift (car cases) (unbox (cdr cases)) (lambda (x) (cadddr (cdr x))) "unsigned char" "combining_classes") +(let ([l (quicksort (hash-table-map general-categories cons) + (lambda (a b) + (< (cdr a) (cdr b))))]) + (printf "\n#define NUM_GENERAL_CATEGORIES ~a\n" (length l)) + (printf "static const char *general_category_names[] = {") + (for-each (lambda (c) + (printf (if (zero? (cdr c)) + "\n ~s" + ",\n ~s") + (string-downcase (car c)))) + l) + (printf "\n};\n")) + (set! ranges (cons (list range-bottom range-top (range-v . > . -1)) ranges)) @@ -574,6 +615,7 @@ (loop (add1 i))))))) (print-init top vectors "") (print-init top2 vectors2 "_cases") +(print-init top3 vectors3 "_cats") (printf "}~n") ;; ---------------------------------------- diff --git a/src/mzscheme/src/module.c b/src/mzscheme/src/module.c index 7500e5e185..19a72f613d 100644 --- a/src/mzscheme/src/module.c +++ b/src/mzscheme/src/module.c @@ -443,7 +443,7 @@ void scheme_finish_kernel(Scheme_Env *env) rn = scheme_make_module_rename(0, mzMOD_RENAME_NORMAL, NULL); for (i = kernel->num_provides; i--; ) { - scheme_extend_module_rename(rn, kernel_symbol, exs[i], exs[i], kernel_symbol, exs[i], 0); + scheme_extend_module_rename(rn, kernel_symbol, exs[i], exs[i], kernel_symbol, exs[i], 0, 0); } scheme_sys_wraps(NULL); @@ -541,7 +541,7 @@ void scheme_require_from_original_env(Scheme_Env *env, int syntax_only) c = kernel->num_provides; i = (syntax_only ? kernel->num_var_provides : 0); for (; i < c; i++) { - scheme_extend_module_rename(rn, kernel_symbol, exs[i], exs[i], kernel_symbol, exs[i], 0); + scheme_extend_module_rename(rn, kernel_symbol, exs[i], exs[i], kernel_symbol, exs[i], 0, 0); } } @@ -1156,7 +1156,7 @@ static Scheme_Object *namespace_attach_module(int argc, Scheme_Object *argv[]) past_to_modchains = SCHEME_CDR(past_to_modchains); phase--; } else { - past_checkeds = cons((Scheme_Object *)prev_checked, past_checkeds); + past_checkeds = scheme_make_raw_pair((Scheme_Object *)prev_checked, past_checkeds); prev_checked = checked; todo = next_phase_todo; @@ -1205,7 +1205,7 @@ static Scheme_Object *namespace_attach_module(int argc, Scheme_Object *argv[]) } while (phase > 0) { prev_checked = (Scheme_Hash_Table *)SCHEME_CAR(past_checkeds); - future_checkeds = scheme_make_pair((Scheme_Object *)prev_checked, future_checkeds); + future_checkeds = scheme_make_raw_pair((Scheme_Object *)prev_checked, future_checkeds); past_checkeds = SCHEME_CDR(past_checkeds); --phase; @@ -1321,7 +1321,7 @@ static Scheme_Object *namespace_unprotect_module(int argc, Scheme_Object *argv[] static int add_require_renames(Scheme_Object *rn, Scheme_Module *im, Scheme_Object *idx) { int i, saw_mb; - Scheme_Object **exs, **exss, **exsns, *midx; + Scheme_Object **exs, **exss, **exsns, *midx, *info; saw_mb = 0; @@ -1333,7 +1333,7 @@ static int add_require_renames(Scheme_Object *rn, Scheme_Module *im, Scheme_Obje midx = scheme_modidx_shift(exss[i], im->src_modidx, idx); else midx = idx; - scheme_extend_module_rename(rn, midx, exs[i], exsns[i], idx, exs[i], 0); + scheme_extend_module_rename(rn, midx, exs[i], exsns[i], idx, exs[i], 0, 1); if (SAME_OBJ(exs[i], module_begin_symbol)) saw_mb = 1; } @@ -1343,6 +1343,9 @@ static int add_require_renames(Scheme_Object *rn, Scheme_Module *im, Scheme_Obje saw_mb = 1; } + info = cons(idx, cons(scheme_null, scheme_false)); + scheme_save_module_rename_unmarshal(rn, info); + return saw_mb; } @@ -1403,13 +1406,13 @@ static Scheme_Object *module_to_namespace(int argc, Scheme_Object *argv[]) for (i = 0; i < m->num_provides; i++) { if (SCHEME_FALSEP(m->provide_srcs[i])) { name = m->provides[i]; - scheme_extend_module_rename(rn, m->self_modidx, name, name, m->self_modidx, name, 0); + scheme_extend_module_rename(rn, m->self_modidx, name, name, m->self_modidx, name, 0, 0); } } /* Local, not provided: */ for (i = 0; i < m->num_indirect_provides; i++) { name = m->indirect_provides[i]; - scheme_extend_module_rename(rn, m->self_modidx, name, name, m->self_modidx, name, 0); + scheme_extend_module_rename(rn, m->self_modidx, name, name, m->self_modidx, name, 0, 0); } /* Required: */ @@ -3771,7 +3774,7 @@ static Scheme_Object *add_lifted_defn(Scheme_Object *data, Scheme_Object **_id, scheme_add_global_symbol(name, scheme_undefined, env->genv); /* Add a renaming: */ - scheme_extend_module_rename(rn, self_modidx, name, name, self_modidx, name, 0); + scheme_extend_module_rename(rn, self_modidx, name, name, self_modidx, name, 0, 0); id = scheme_add_rename(*_id, rn); *_id = id; @@ -4063,9 +4066,9 @@ static Scheme_Object *do_module_begin(Scheme_Object *form, Scheme_Comp_Env *env, /* Add a renaming: */ if (!SAME_OBJ(SCHEME_STX_VAL(orig_name), name)) - scheme_extend_module_rename(post_ex_rn, self_modidx, name, name, self_modidx, name, 0); + scheme_extend_module_rename(post_ex_rn, self_modidx, name, name, self_modidx, name, 0, 0); else - scheme_extend_module_rename(rn, self_modidx, name, name, self_modidx, name, 0); + scheme_extend_module_rename(rn, self_modidx, name, name, self_modidx, name, 0, 0); vars = SCHEME_STX_CDR(vars); } @@ -4138,10 +4141,10 @@ static Scheme_Object *do_module_begin(Scheme_Object *form, Scheme_Comp_Env *env, if (!SAME_OBJ(SCHEME_STX_VAL(orig_name), name)) scheme_extend_module_rename(for_stx ? post_ex_et_rn : post_ex_rn, self_modidx, name, name, self_modidx, name, - for_stx ? 1 : 0); + for_stx ? 1 : 0, 0); else scheme_extend_module_rename(for_stx ? et_rn : rn, self_modidx, name, name, self_modidx, name, - for_stx ? 1 : 0); + for_stx ? 1 : 0, 0); count++; } @@ -5220,6 +5223,248 @@ static void qsort_provides(Scheme_Object **exs, Scheme_Object **exsns, Scheme_Ob /* top-level require */ /**********************************************************************/ +void add_single_require(Scheme_Module *m, /* from module */ + Scheme_Object *idx, /* from module's idx; may be used to find m on unmarshal */ + Scheme_Env *env, /* env for mark_src or copy_vars */ + Scheme_Object *rn, /* add requires to this rename when no mark_src */ + Scheme_Object *post_ex_rn, /* add requires to this rename when mark_src */ + Scheme_Object *exns, /* NULL or [syntax] list of [syntax] symbols not to import */ + Scheme_Hash_Table *onlys, /* NULL or hash table of names to import */ + Scheme_Object *prefix, /* NULL or prefix symbol */ + Scheme_Object *iname, /* NULL or symbol for a single import */ + Scheme_Object *ename, /* NULL or symbol for a single import */ + Scheme_Object *mark_src, /* default mark_src; if onlys, each is also mark_src */ + int unpack_kern, int copy_vars, int for_unmarshal, + int *all_simple, + Check_Func ck, /* NULL or called for each addition */ + void *data, Scheme_Object *form, Scheme_Object *cki /* ck args */ + ) +{ + int j, var_count; + Scheme_Object **exs, **exsns, **exss; + Scheme_Object *orig_idx = idx; + int is_kern, has_context, save_marshal_info = 0, can_save_marshal = 1; + Scheme_Object *nominal_modidx, *one_exn, *prnt_iname, *name; + + if (mark_src) { + /* Check whether there's context for this import (which + leads to generated local names). */ + Scheme_Object *l; + l = scheme_stx_extract_marks(mark_src); + has_context = !SCHEME_NULLP(l); + if (has_context) { + if (all_simple) + *all_simple = 0; + } + } else + has_context = 0; /* computed later */ + + if (iname || ename || onlys || for_unmarshal || unpack_kern || has_context) + can_save_marshal = 0; + + is_kern = (SAME_OBJ(idx, kernel_symbol) + && !exns + && !onlys + && !prefix + && !iname + && !unpack_kern + && !has_context); + + one_exn = NULL; + + nominal_modidx = idx; + + while (1) { /* loop to handle kernel re-provides... */ + int break_if_iname_null = !!iname; + + exs = m->provides; + exsns = m->provide_src_names; + exss = m->provide_srcs; + var_count = m->num_var_provides; + + for (j = m->num_provides; j--; ) { + Scheme_Object *modidx; + + if (ename) { + if (!SAME_OBJ(SCHEME_STX_VAL(ename), exs[j])) + continue; /* we don't want this one. */ + } else if (onlys) { + name = scheme_hash_get(onlys, exs[j]); + if (!name) + continue; /* we don't want this one. */ + mark_src = name; + { + Scheme_Object *l; + l = scheme_stx_extract_marks(mark_src); + has_context = !SCHEME_NULLP(l); + } + /* Remove to indicate that it's been imported: */ + scheme_hash_set(onlys, exs[j], NULL); + } else { + if (exns) { + Scheme_Object *l, *a; + for (l = exns; SCHEME_STX_PAIRP(l); l = SCHEME_STX_CDR(l)) { + a = SCHEME_STX_CAR(l); + if (SCHEME_STXP(a)) + a = SCHEME_STX_VAL(a); + if (SAME_OBJ(a, exs[j])) + break; + } + if (!SCHEME_STX_NULLP(l)) + continue; /* we don't want this one. */ + } + + if (one_exn) { + if (SAME_OBJ(one_exn, exs[j])) + continue; /* we don't want this one. */ + } + } + + modidx = ((exss && !SCHEME_FALSEP(exss[j])) + ? scheme_modidx_shift(exss[j], m->src_modidx, idx) + : idx); + + if (!iname) + iname = exs[j]; + + if (SCHEME_SYM_WEIRDP(iname)) { + /* This shouldn't happen. In case it does, don't import a + gensym or parallel symbol. The former is useless. The + latter is supposed to be module-specific, and it could + collide with local module-specific ids. */ + iname = NULL; + continue; + } + + if (prefix) + iname = scheme_symbol_append(prefix, iname); + + prnt_iname = iname; + if (has_context) { + /* The `require' expression has a set of marks in its + context, which means that we need to generate a name. */ + iname = scheme_datum_to_syntax(iname, scheme_false, mark_src, 0, 0); + iname = scheme_tl_id_sym(env, iname, 2); + } + + if (ck) + ck(prnt_iname, iname, nominal_modidx, modidx, exsns[j], (j < var_count), data, cki, form); + + if (!is_kern) { + if (copy_vars && (j < var_count) && !env->module && !env->phase) { + Scheme_Env *menv; + Scheme_Object *val; + modidx = scheme_module_resolve(modidx); + menv = scheme_module_access(modidx, env, 0); + val = scheme_lookup_in_table(menv->toplevel, (char *)exsns[j]); + scheme_add_global_symbol(iname, val, env); + } else if (!for_unmarshal || !has_context) { + if (!save_marshal_info && !has_context && can_save_marshal) + save_marshal_info = 1; + scheme_extend_module_rename((has_context ? post_ex_rn : rn), + modidx, iname, exsns[j], nominal_modidx, exs[j], 0, + for_unmarshal || (!has_context && can_save_marshal)); + } + } + + iname = NULL; + + if (ename) { + ename = NULL; + break; + } + } + + if (ename) { + if (!m->reprovide_kernel) { + scheme_wrong_syntax(NULL, ename, form, "no such provided variable"); + return; + } + } + + if (is_kern) + scheme_extend_module_rename_with_kernel(rn, nominal_modidx); + + if (break_if_iname_null && !iname) + break; + + if (m->reprovide_kernel) { + idx = kernel_symbol; + one_exn = m->kernel_exclusion; + m = kernel; + is_kern = !prefix && !unpack_kern && !ename && !has_context; + } else + break; + } + + if (save_marshal_info) { + Scheme_Object *info, *a; + + if (exns) { + /* Convert to a list of symbols: */ + info = scheme_null; + for (; SCHEME_STX_PAIRP(exns); exns = SCHEME_STX_CDR(exns)) { + a = SCHEME_STX_CAR(exns); + if (SCHEME_STXP(a)) + a = SCHEME_STX_VAL(a); + info = cons(a, info); + } + exns = info; + } else + exns = scheme_null; + + /* The format of this data is checked in stxobj for unmarshaling + a Module_Renames. Also the idx must be first, to support shifting. */ + info = cons(orig_idx, cons(exns, prefix ? prefix : scheme_false)); + + scheme_save_module_rename_unmarshal(rn, info); + } +} + +void scheme_do_module_rename_unmarshal(Scheme_Object *rn, Scheme_Object *info, + Scheme_Object *modidx_shift_from, Scheme_Object *modidx_shift_to) +{ + Scheme_Object *orig_idx, *exns, *prefix, *idx, *name; + Scheme_Module *m; + Scheme_Env *env; + + idx = SCHEME_CAR(info); + orig_idx = idx; + info = SCHEME_CDR(info); + exns = SCHEME_CAR(info); + prefix = SCHEME_CDR(info); + + if (SCHEME_FALSEP(prefix)) + prefix = NULL; + if (SCHEME_NULLP(exns)) + exns = NULL; + + if (modidx_shift_from) + idx = scheme_modidx_shift(idx, + modidx_shift_from, + modidx_shift_to); + + env = scheme_get_env(scheme_current_config()); + name = scheme_module_resolve(idx); + m = (Scheme_Module *)scheme_hash_get(env->module_registry, name); + if (!m) { + scheme_signal_error("broken compiled/expanded code or wrong namespace;" + " cannot find instance to restore imported renamings" + " from module: %s", + scheme_symbol_name(name)); + return; + } + + add_single_require(m, orig_idx, env, + rn, NULL, + exns, NULL, prefix, NULL, NULL, + NULL, + 0, 0, 1, + NULL, + NULL, + NULL, NULL, NULL); +} + Scheme_Object *parse_requires(Scheme_Object *form, Scheme_Object *base_modidx, Scheme_Env *env, @@ -5231,10 +5476,8 @@ Scheme_Object *parse_requires(Scheme_Object *form, { Scheme_Object *ll = form; Scheme_Module *m; - int j, var_count, is_kern, has_context; - Scheme_Object **exs, **exsns, **exss; - Scheme_Object *idxstx, *idx, *name, *i, *exns, *one_exn, *prefix, *iname, *ename, *aa; - Scheme_Object *imods, *nominal_modidx, *mark_src, *prnt_iname; + Scheme_Object *idxstx, *idx, *name, *i, *exns, *prefix, *iname, *ename, *aa; + Scheme_Object *imods, *mark_src; Scheme_Hash_Table *onlys; imods = scheme_null; @@ -5432,25 +5675,6 @@ Scheme_Object *parse_requires(Scheme_Object *form, else if (expstart) expstart_module(m, env, 0, idx, 0, 0, scheme_null); - if (mark_src) { - /* Check whether there's context for this import (which - leads to generated local names). */ - Scheme_Object *l; - l = scheme_stx_extract_marks(mark_src); - has_context = !SCHEME_NULLP(l); - if (has_context && all_simple) - *all_simple = 0; - } else - has_context = 0; /* computed later */ - - is_kern = (SAME_OBJ(idx, kernel_symbol) - && !exns - && !onlys - && !prefix - && !iname - && !unpack_kern - && !has_context); - /* Add name to require list, if it's not there: */ { Scheme_Object *l, *last = NULL, *p; @@ -5467,127 +5691,13 @@ Scheme_Object *parse_requires(Scheme_Object *form, imods = p; } } - - one_exn = NULL; - - nominal_modidx = idx; - - while (1) { /* loop to handle kernel re-provides... */ - int break_if_iname_null = !!iname; - - exs = m->provides; - exsns = m->provide_src_names; - exss = m->provide_srcs; - var_count = m->num_var_provides; - - for (j = m->num_provides; j--; ) { - Scheme_Object *modidx; - - if (ename) { - if (!SAME_OBJ(SCHEME_STX_VAL(ename), exs[j])) - continue; /* we don't want this one. */ - } else if (onlys) { - name = scheme_hash_get(onlys, exs[j]); - if (!name) - continue; /* we don't want this one. */ - mark_src = name; - { - Scheme_Object *l; - l = scheme_stx_extract_marks(mark_src); - has_context = !SCHEME_NULLP(l); - } - /* Remove to indicate that it's been imported: */ - scheme_hash_set(onlys, exs[j], NULL); - } else { - if (exns) { - Scheme_Object *l; - for (l = exns; SCHEME_STX_PAIRP(l); l = SCHEME_STX_CDR(l)) { - if (SAME_OBJ(SCHEME_STX_VAL(SCHEME_STX_CAR(l)), exs[j])) - break; - } - if (!SCHEME_STX_NULLP(l)) - continue; /* we don't want this one. */ - } - - if (one_exn) { - if (SAME_OBJ(one_exn, exs[j])) - continue; /* we don't want this one. */ - } - } - - modidx = ((exss && !SCHEME_FALSEP(exss[j])) - ? scheme_modidx_shift(exss[j], m->src_modidx, idx) - : idx); - - if (!iname) - iname = exs[j]; - - if (SCHEME_SYM_WEIRDP(iname)) { - /* This shouldn't happen. In case it does, don't import a - gensym or parallel symbol. The former is useless. The - latter is supposed to be module-specific, and it could - collide with local module-specific ids. */ - iname = NULL; - continue; - } - - if (prefix) - iname = scheme_symbol_append(prefix, iname); - - prnt_iname = iname; - if (has_context) { - /* The `require' expression has a set of marks in its - context, which means that we need to generate a name. */ - iname = scheme_datum_to_syntax(iname, scheme_false, mark_src, 0, 0); - iname = scheme_tl_id_sym(env, iname, 2); - } - - if (ck) - ck(prnt_iname, iname, nominal_modidx, modidx, exsns[j], (j < var_count), data, i, form); - - if (!is_kern) { - if (copy_vars && start && (j < var_count) && !env->module && !env->phase) { - Scheme_Env *menv; - Scheme_Object *val; - modidx = scheme_module_resolve(modidx); - menv = scheme_module_access(modidx, env, 0); - val = scheme_lookup_in_table(menv->toplevel, (char *)exsns[j]); - scheme_add_global_symbol(iname, val, env); - } else { - scheme_extend_module_rename((has_context ? post_ex_rn : rn), - modidx, iname, exsns[j], nominal_modidx, exs[j], 0); - } - } - - iname = NULL; - - if (ename) { - ename = NULL; - break; - } - } - - if (ename) { - if (!m->reprovide_kernel) { - scheme_wrong_syntax(NULL, ename, form, "no such provided variable"); - return NULL; - } - } - - if (is_kern) - scheme_extend_module_rename_with_kernel(rn, nominal_modidx); - - if (break_if_iname_null && !iname) - break; - - if (m->reprovide_kernel) { - idx = kernel_symbol; - one_exn = m->kernel_exclusion; - m = kernel; - is_kern = !prefix && !unpack_kern && !ename && !has_context; - } else - break; - } + + add_single_require(m, idx, env, rn, post_ex_rn, + exns, onlys, prefix, iname, ename, + mark_src, + unpack_kern, copy_vars && start, 0, + all_simple, + ck, data, form, i); if (onlys && onlys->count) { /* Something required in `only' wasn't provided by the module */ diff --git a/src/mzscheme/src/mzmark.c b/src/mzscheme/src/mzmark.c index fa3741e01b..799e652ae9 100644 --- a/src/mzscheme/src/mzmark.c +++ b/src/mzscheme/src/mzmark.c @@ -131,6 +131,25 @@ static int toplevel_obj_FIXUP(void *p) { #define toplevel_obj_IS_CONST_SIZE 1 +static int quotesyntax_obj_SIZE(void *p) { + return + gcBYTES_TO_WORDS(sizeof(Scheme_Quote_Syntax)); +} + +static int quotesyntax_obj_MARK(void *p) { + return + gcBYTES_TO_WORDS(sizeof(Scheme_Quote_Syntax)); +} + +static int quotesyntax_obj_FIXUP(void *p) { + return + gcBYTES_TO_WORDS(sizeof(Scheme_Quote_Syntax)); +} + +#define quotesyntax_obj_IS_ATOMIC 1 +#define quotesyntax_obj_IS_CONST_SIZE 1 + + static int cpointer_obj_SIZE(void *p) { return gcBYTES_TO_WORDS(sizeof(Scheme_Simple_Object)); @@ -4109,6 +4128,7 @@ static int mark_readtable_MARK(void *p) { Readtable *t = (Readtable *)p; gcMARK(t->mapping); gcMARK(t->fast_mapping); + gcMARK(t->symbol_parser); return gcBYTES_TO_WORDS(sizeof(Readtable)); } @@ -4117,6 +4137,7 @@ static int mark_readtable_FIXUP(void *p) { Readtable *t = (Readtable *)p; gcFIXUP(t->mapping); gcFIXUP(t->fast_mapping); + gcFIXUP(t->symbol_parser); return gcBYTES_TO_WORDS(sizeof(Readtable)); } @@ -4260,6 +4281,8 @@ static int mark_rename_table_SIZE(void *p) { static int mark_rename_table_MARK(void *p) { Module_Renames *rn = (Module_Renames *)p; gcMARK(rn->ht); + gcMARK(rn->nomarshal_ht); + gcMARK(rn->unmarshal_info); gcMARK(rn->plus_kernel_nominal_source); gcMARK(rn->marked_names); return @@ -4269,6 +4292,8 @@ static int mark_rename_table_MARK(void *p) { static int mark_rename_table_FIXUP(void *p) { Module_Renames *rn = (Module_Renames *)p; gcFIXUP(rn->ht); + gcFIXUP(rn->nomarshal_ht); + gcFIXUP(rn->unmarshal_info); gcFIXUP(rn->plus_kernel_nominal_source); gcFIXUP(rn->marked_names); return diff --git a/src/mzscheme/src/mzmarksrc.c b/src/mzscheme/src/mzmarksrc.c index 7d3565722c..c3748e3e22 100644 --- a/src/mzscheme/src/mzmarksrc.c +++ b/src/mzscheme/src/mzmarksrc.c @@ -48,6 +48,12 @@ toplevel_obj { gcBYTES_TO_WORDS(sizeof(Scheme_Toplevel)); } +quotesyntax_obj { + mark: + size: + gcBYTES_TO_WORDS(sizeof(Scheme_Quote_Syntax)); +} + cpointer_obj { mark: gcMARK(SCHEME_CPTR_VAL((Scheme_Object *)p)); @@ -1660,6 +1666,7 @@ mark_readtable { Readtable *t = (Readtable *)p; gcMARK(t->mapping); gcMARK(t->fast_mapping); + gcMARK(t->symbol_parser); size: gcBYTES_TO_WORDS(sizeof(Readtable)); } @@ -1726,6 +1733,8 @@ mark_rename_table { mark: Module_Renames *rn = (Module_Renames *)p; gcMARK(rn->ht); + gcMARK(rn->nomarshal_ht); + gcMARK(rn->unmarshal_info); gcMARK(rn->plus_kernel_nominal_source); gcMARK(rn->marked_names); size: diff --git a/src/mzscheme/src/port.c b/src/mzscheme/src/port.c index b729814458..ba0675eb98 100644 --- a/src/mzscheme/src/port.c +++ b/src/mzscheme/src/port.c @@ -1554,7 +1554,7 @@ long scheme_get_byte_string_unless(const char *who, ip->unless_cache = scheme_false; ip->unless = unless; } else { - unless = scheme_make_pair(NULL, NULL); + unless = scheme_make_raw_pair(NULL, NULL); ip->unless = unless; } if (unless_evt) @@ -1904,7 +1904,7 @@ int scheme_peeked_read_via_get(Scheme_Input_Port *ip, /* Some other thread is already trying to commit. Ask it to sync on our target, too */ v = scheme_make_pair(scheme_make_integer(_size), target_evt); - l = scheme_make_pair(v, ip->input_extras); + l = scheme_make_raw_pair(v, ip->input_extras); ip->input_extras = l; scheme_post_sema_all(ip->input_giveup); @@ -1941,12 +1941,12 @@ int scheme_peeked_read_via_get(Scheme_Input_Port *ip, /* There are other threads trying to commit, and as main thread, we'll help them out. */ n = 3; - for (l = ip->input_extras; l ; l = SCHEME_CDR(l)) { + for (l = ip->input_extras; l; l = SCHEME_CDR(l)) { n++; } aa = MALLOC_N(Scheme_Object *, n); n = 3; - for (l = ip->input_extras; l ; l = SCHEME_CDR(l)) { + for (l = ip->input_extras; l; l = SCHEME_CDR(l)) { aa[n++] = SCHEME_CDR(SCHEME_CAR(l)); } } else { diff --git a/src/mzscheme/src/print.c b/src/mzscheme/src/print.c index 0e789ffaf7..8633feb32f 100644 --- a/src/mzscheme/src/print.c +++ b/src/mzscheme/src/print.c @@ -2153,7 +2153,15 @@ print(Scheme_Object *obj, int notdisplay, int compact, Scheme_Hash_Table *ht, #ifdef SGC_STD_DEBUGGING len = strlen(s) - 1; #endif - print_utf8_string(pp, s, 0, len); + if (!s) { + char s[8]; + print_utf8_string(pp, "", 0, 1); + } else { + print_utf8_string(pp, s, 0, len); + } #ifdef SGC_STD_DEBUGGING PRINTADDRESS(pp, obj); print_utf8_string(pp, ">", 0, 1); diff --git a/src/mzscheme/src/read.c b/src/mzscheme/src/read.c index 57ffe50823..9b7b144c96 100644 --- a/src/mzscheme/src/read.c +++ b/src/mzscheme/src/read.c @@ -80,6 +80,8 @@ static Scheme_Object *print_honu(int, Scheme_Object *[]); #define isdigit_ascii(n) ((n >= '0') && (n <= '9')) +#define scheme_isxdigit(n) (isdigit_ascii(n) || ((n >= 'a') && (n <= 'f')) || ((n >= 'A') && (n <= 'F'))) + #define RETURN_FOR_SPECIAL_COMMENT 0x1 #define RETURN_FOR_HASH_COMMENT 0x2 #define RETURN_FOR_DELIM 0x4 @@ -106,6 +108,7 @@ typedef struct Readtable { Scheme_Object so; Scheme_Hash_Table *mapping; /* pos int -> (cons int proc-or-char); neg int -> proc */ char *fast_mapping; + Scheme_Object *symbol_parser; /* NULL or a Scheme function */ } Readtable; typedef struct ReadParams { @@ -170,7 +173,7 @@ static Scheme_Object *read_number(int init_ch, Scheme_Object *indentation, ReadParams *params, Readtable *table); -static Scheme_Object *read_symbol(int init_ch, +static Scheme_Object *read_symbol(int init_ch, int skip_rt, Scheme_Object *port, Scheme_Object *stxsrc, long line, long col, long pos, Scheme_Hash_Table **ht, @@ -219,6 +222,10 @@ static int skip_whitespace_comments(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Object *indentation, ReadParams *params); +static Scheme_Object *readtable_call(int w_char, int ch, Scheme_Object *proc, ReadParams *params, + Scheme_Object *port, Scheme_Object *src, long line, long col, long pos, + Scheme_Hash_Table **ht); + static Scheme_Object *copy_to_protect_placeholders(Scheme_Object *v, Scheme_Object *src, Scheme_Hash_Table **ht); #define READTABLE_WHITESPACE 0x1 @@ -725,7 +732,7 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * Scheme_Object *indentation, ReadParams *params, int comment_mode, int pre_char, Readtable *table) { - int ch, ch2, depth, dispatch_ch; + int ch, ch2, depth, dispatch_ch, special_value_need_copy = 0; long line = 0, col = 0, pos = 0; Scheme_Object *special_value; @@ -818,28 +825,11 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * return scheme_eof; case SCHEME_SPECIAL: { - Scheme_Object *v; - if (special_value) - v = special_value; - else - v = scheme_get_special(port, stxsrc, line, col, pos, 0, ht); - if (scheme_special_comment_value(v)) { - /* a "comment" */ - if (comment_mode & RETURN_FOR_SPECIAL_COMMENT) - return NULL; - else - goto start_over; - } else if (SCHEME_STXP(v)) { - if (!stxsrc) - v = scheme_syntax_to_datum(v, 0, NULL); - } else if (stxsrc) { - Scheme_Object *s; - s = scheme_make_stx_w_offset(scheme_false, line, col, pos, SPAN(port, pos), stxsrc, STX_SRCTAG); - v = scheme_datum_to_syntax(v, s, scheme_false, 1, 0); + if (!special_value) { + special_value = scheme_get_special(port, stxsrc, line, col, pos, 0, ht); + special_value_need_copy = 1; } - if (!special_value) - v = copy_to_protect_placeholders(v, stxsrc, ht); - return v; + break; } case ']': if (!params->square_brackets_are_parens) { @@ -875,7 +865,8 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * } else return read_list(port, stxsrc, line, col, pos, '}', mz_shape_cons, 0, ht, indentation, params); case '|': - return read_symbol(ch, port, stxsrc, line, col, pos, ht, indentation, params, table); + special_value = read_symbol(ch, 1, port, stxsrc, line, col, pos, ht, indentation, params, table); + break; case '"': return read_string(0, 0, port, stxsrc, line, col, pos, ht, indentation, params, 1); case '\'': @@ -887,7 +878,7 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * case '`': if (params->honu_mode) { /* Raises illegal-char error: */ - return read_symbol(ch, port, stxsrc, line, col, pos, ht, indentation, params, table); + return read_symbol(ch, 1, port, stxsrc, line, col, pos, ht, indentation, params, table); } else if (!params->can_read_quasi) { scheme_read_err(port, stxsrc, line, col, pos, 1, 0, indentation, "read: illegal use of backquote"); return NULL; @@ -930,7 +921,8 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * case '+': case '-': if (params->honu_mode) { - return read_symbol(ch, port, stxsrc, line, col, pos, ht, indentation, params, table); + special_value = read_symbol(ch, 1, port, stxsrc, line, col, pos, ht, indentation, params, table); + break; } case '.': /* ^^^ fallthrough ^^^ */ ch2 = scheme_peekc_special_ok(port); @@ -938,10 +930,12 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * || (!params->honu_mode && ((ch2 == 'i') || (ch2 == 'I') /* Maybe inf */ || (ch2 == 'n') || (ch2 == 'N') /* Maybe nan*/ ))) { - return read_number(ch, port, stxsrc, line, col, pos, 0, 0, 10, 0, ht, indentation, params, table); + /* read_number tries to get a number, but produces a symbol if number parsing doesn't work: */ + special_value = read_number(ch, port, stxsrc, line, col, pos, 0, 0, 10, 0, ht, indentation, params, table); } else { - return read_symbol(ch, port, stxsrc, line, col, pos, ht, indentation, params, table); + special_value = read_symbol(ch, 0, port, stxsrc, line, col, pos, ht, indentation, params, table); } + break; case '#': ch = scheme_getc_special_ok(port); @@ -959,7 +953,9 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * } } - switch ( ch ) + special_value = NULL; + + switch (ch) { case EOF: case SCHEME_SPECIAL: @@ -993,7 +989,7 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * case '%': if (!params->honu_mode) { scheme_ungetc('%', port); - return read_symbol('#', port, stxsrc, line, col, pos, ht, indentation, params, table); + special_value = read_symbol('#', 1, port, stxsrc, line, col, pos, ht, indentation, params, table); } break; case ':': @@ -1598,11 +1594,13 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * } break; } - /* We get here only in honu mode */ - scheme_read_err(port, stxsrc, line, col, pos, 2, ch, indentation, - "read: bad syntax `#%c'", - ch); - return NULL; + if (!special_value) { + /* We get here only in honu mode */ + scheme_read_err(port, stxsrc, line, col, pos, 2, ch, indentation, + "read: bad syntax `#%c'", + ch); + return NULL; + } break; case '/': if (params->honu_mode) { @@ -1615,14 +1613,40 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * goto start_over_with_ch; } } - return read_symbol(ch, port, stxsrc, line, col, pos, ht, indentation, params, table); + special_value = read_symbol(ch, 0, port, stxsrc, line, col, pos, ht, indentation, params, table); break; default: if (isdigit_ascii(ch)) - return read_number(ch, port, stxsrc, line, col, pos, 0, 0, 10, 0, ht, indentation, params, table); + special_value = read_number(ch, port, stxsrc, line, col, pos, 0, 0, 10, 0, ht, indentation, params, table); else - return read_symbol(ch, port, stxsrc, line, col, pos, ht, indentation, params, table); + special_value = read_symbol(ch, 0, port, stxsrc, line, col, pos, ht, indentation, params, table); + break; } + + /* We get here after reading a "symbol". Check for a comment. */ + { + Scheme_Object *v = special_value; + + if (scheme_special_comment_value(v)) { + /* a "comment" */ + if (comment_mode & RETURN_FOR_SPECIAL_COMMENT) + return NULL; + else { + special_value_need_copy = 0; + goto start_over; + } + } else if (SCHEME_STXP(v)) { + if (!stxsrc) + v = scheme_syntax_to_datum(v, 0, NULL); + } else if (stxsrc) { + Scheme_Object *s; + s = scheme_make_stx_w_offset(scheme_false, line, col, pos, SPAN(port, pos), stxsrc, STX_SRCTAG); + v = scheme_datum_to_syntax(v, s, scheme_false, 1, 0); + } + if (special_value_need_copy) + v = copy_to_protect_placeholders(v, stxsrc, ht); + return v; + } } static Scheme_Object * @@ -1816,8 +1840,10 @@ _scheme_internal_read(Scheme_Object *port, Scheme_Object *stxsrc, int crc, int h ht = NULL; if (recur) { + /* Check whether this is really a recursive call. If so, + we get a pointer to a hash table for cycles: */ v = scheme_extract_one_cc_mark(NULL, an_uninterned_symbol); - if (v && SCHEME_PAIRP(v)) { + if (v && SCHEME_RPAIRP(v)) { if (SCHEME_FALSEP(SCHEME_CDR(v)) == !stxsrc) ht = (Scheme_Hash_Table **)SCHEME_CAR(v); } @@ -2785,7 +2811,7 @@ typedef int (*Getc_Fun_r)(Scheme_Object *port); /* nothing has been read, except maybe some flags */ static Scheme_Object * -read_number_or_symbol(int init_ch, Scheme_Object *port, +read_number_or_symbol(int init_ch, int skip_rt, Scheme_Object *port, Scheme_Object *stxsrc, long line, long col, long pos, int is_float, int is_not_float, int radix, int radix_set, @@ -2808,6 +2834,15 @@ read_number_or_symbol(int init_ch, Scheme_Object *port, int single_escape, multiple_escape, norm_count = 0; Getc_Fun_r getc_special_ok_fun; + if (!skip_rt && table) { + /* If the readtable provide a "symbol" reader, then use it: */ + if (table->symbol_parser) { + return readtable_call(1, init_ch, table->symbol_parser, params, + port, stxsrc, line, col, pos, ht); + /* Special-comment result is handled in main loop. */ + } + } + ungetc_ok = scheme_peekc_is_ungetc(port); if (ungetc_ok) { @@ -3074,7 +3109,7 @@ read_number(int init_ch, Scheme_Hash_Table **ht, Scheme_Object *indentation, ReadParams *params, Readtable *table) { - return read_number_or_symbol(init_ch, + return read_number_or_symbol(init_ch, init_ch < 0, port, stxsrc, line, col, pos, is_float, is_not_float, radix, radix_set, 0, 0, @@ -3084,12 +3119,13 @@ read_number(int init_ch, static Scheme_Object * read_symbol(int init_ch, + int skip_rt, Scheme_Object *port, Scheme_Object *stxsrc, long line, long col, long pos, Scheme_Hash_Table **ht, Scheme_Object *indentation, ReadParams *params, Readtable *table) { - return read_number_or_symbol(init_ch, + return read_number_or_symbol(init_ch, skip_rt, port, stxsrc, line, col, pos, 0, 0, 10, 0, 1, 0, params->can_read_pipe_quote, @@ -3103,7 +3139,7 @@ read_keyword(int init_ch, Scheme_Hash_Table **ht, Scheme_Object *indentation, ReadParams *params, Readtable *table) { - return read_number_or_symbol(init_ch, + return read_number_or_symbol(init_ch, 1, port, stxsrc, line, col, pos, 0, 0, 10, 0, 1, 1, params->can_read_pipe_quote, @@ -4715,8 +4751,8 @@ void scheme_set_in_read_mark(Scheme_Object *src, Scheme_Hash_Table **ht) Scheme_Object *v; if (ht) - v = scheme_make_pair((Scheme_Object *)ht, - (src ? scheme_true : scheme_false)); + v = scheme_make_raw_pair((Scheme_Object *)ht, + (src ? scheme_true : scheme_false)); else v = scheme_false; scheme_set_cont_mark(an_uninterned_symbol, v); @@ -4832,18 +4868,24 @@ static Scheme_Object *make_readtable(int argc, Scheme_Object **argv) fast = scheme_malloc_atomic(128); memcpy(fast, (orig_t ? orig_t->fast_mapping : builtin_fast), 128); t->fast_mapping = fast; + t->symbol_parser = (orig_t ? orig_t->symbol_parser : NULL); for (i = 1; i < argc; i += 3) { - if (!SCHEME_CHARP(argv[i])) { - scheme_wrong_type("make-readtable", "character", i, argc, argv); + if (!SCHEME_FALSEP(argv[i]) && !SCHEME_CHARP(argv[i])) { + scheme_wrong_type("make-readtable", "character or #f", i, argc, argv); return NULL; } if (i + 1 >= argc) { - scheme_arg_mismatch("make-readtable", - "expected 'terminating-macro, 'non-terminating-macro, 'dispatch-macro," - " or character argument after character argument: ", - argv[i]); + if (SCHEME_FALSEP(argv[i])) + scheme_arg_mismatch("make-readtable", + "expected 'non-terminating-macro after #f", + NULL); + else + scheme_arg_mismatch("make-readtable", + "expected 'terminating-macro, 'non-terminating-macro, 'dispatch-macro," + " or character argument after character argument: ", + argv[i]); } sym = argv[i + 1]; @@ -4856,16 +4898,25 @@ static Scheme_Object *make_readtable(int argc, Scheme_Object **argv) i+1, argc, argv); return NULL; } + if (SCHEME_FALSEP(argv[i]) + && !SAME_OBJ(sym, non_terminating_macro_symbol)) { + scheme_arg_mismatch("make-readtable", + "expected 'non-terminating-macro after #f, given: ", + sym); + } if (i + 2 >= argc) { scheme_arg_mismatch("make-readtable", (SCHEME_CHARP(sym) - ? "expected readtable or #f argument after character argument: " - : "expected procedure argument after symbol argument: "), + ? "expected readtable or #f argument after character argument, given: " + : "expected procedure argument after symbol argument, given: "), argv[i+1]); } - if (SAME_OBJ(sym, dispatch_macro_symbol)) { + if (SCHEME_FALSEP(argv[i])) { + scheme_check_proc_arity("make-readtable", 6, i+2, argc, argv); + t->symbol_parser = argv[i + 2]; + } else if (SAME_OBJ(sym, dispatch_macro_symbol)) { ch = SCHEME_CHAR_VAL(argv[i]); scheme_check_proc_arity("make-readtable", 6, i+2, argc, argv); scheme_hash_set(t->mapping, scheme_make_integer(-ch), argv[i+2]); diff --git a/src/mzscheme/src/salloc.c b/src/mzscheme/src/salloc.c index 1d29374673..fbfc8552ee 100644 --- a/src/mzscheme/src/salloc.c +++ b/src/mzscheme/src/salloc.c @@ -948,6 +948,8 @@ static void cons_onto_list(void *p) # ifdef MZ_PRECISE_GC START_XFORM_SKIP; extern int GC_is_tagged(void *p); +extern int GC_is_tagged_start(void *p); +extern void *GC_next_tagged_start(void *p); # ifdef DOS_FILE_SYSTEM extern void gc_fprintf(int ignored, const char *c, ...); # define object_console_printf gc_fprintf @@ -986,11 +988,7 @@ void scheme_print_tagged_value(const char *prefix, scheme_check_print_is_obj = check_home; if (!xtagged) { - if (SCHEME_PAIRP(v)) { - /* Pairs are used for all sorts of non-Scheme values: */ - type ="#"; - } else - type = scheme_write_to_string_w_max((Scheme_Object *)v, &len, max_w); + type = scheme_write_to_string_w_max((Scheme_Object *)v, &len, max_w); if (!scheme_strncmp(type, "#') || (type[8] == ':'))) { char buffer[256]; @@ -1030,7 +1028,7 @@ void scheme_print_tagged_value(const char *prefix, memcpy(t2 + len, buffer, len2 + 1); len += len2; type = t2; - } else if (!scheme_strncmp(type, "#key; char *t2; @@ -1070,6 +1068,22 @@ void scheme_print_tagged_value(const char *prefix, memcpy(t2 + len, buffer, len2 + 1); len += len2; type = t2; + } else if (!scheme_strncmp(type, "#scheme_multiple_values = scheme_multiple_values; scheme_extension_table->scheme_uchar_table = scheme_uchar_table; scheme_extension_table->scheme_uchar_cases_table = scheme_uchar_cases_table; + scheme_extension_table->scheme_uchar_cats_table = scheme_uchar_cats_table; scheme_extension_table->scheme_uchar_ups = scheme_uchar_ups; scheme_extension_table->scheme_uchar_downs = scheme_uchar_downs; scheme_extension_table->scheme_uchar_titles = scheme_uchar_titles; @@ -224,6 +225,7 @@ scheme_extension_table->scheme_prim_is_method = scheme_prim_is_method; scheme_extension_table->scheme_make_pair = scheme_make_pair; scheme_extension_table->scheme_make_immutable_pair = scheme_make_immutable_pair; + scheme_extension_table->scheme_make_raw_pair = scheme_make_raw_pair; scheme_extension_table->scheme_make_byte_string = scheme_make_byte_string; scheme_extension_table->scheme_make_sized_byte_string = scheme_make_sized_byte_string; scheme_extension_table->scheme_make_sized_offset_byte_string = scheme_make_sized_offset_byte_string; diff --git a/src/mzscheme/src/schemexm.h b/src/mzscheme/src/schemexm.h index ef3a08215c..52f4144121 100644 --- a/src/mzscheme/src/schemexm.h +++ b/src/mzscheme/src/schemexm.h @@ -106,6 +106,7 @@ #define scheme_multiple_values (scheme_extension_table->scheme_multiple_values) #define scheme_uchar_table (scheme_extension_table->scheme_uchar_table) #define scheme_uchar_cases_table (scheme_extension_table->scheme_uchar_cases_table) +#define scheme_uchar_cats_table (scheme_extension_table->scheme_uchar_cats_table) #define scheme_uchar_ups (scheme_extension_table->scheme_uchar_ups) #define scheme_uchar_downs (scheme_extension_table->scheme_uchar_downs) #define scheme_uchar_titles (scheme_extension_table->scheme_uchar_titles) @@ -224,6 +225,7 @@ #define scheme_prim_is_method (scheme_extension_table->scheme_prim_is_method) #define scheme_make_pair (scheme_extension_table->scheme_make_pair) #define scheme_make_immutable_pair (scheme_extension_table->scheme_make_immutable_pair) +#define scheme_make_raw_pair (scheme_extension_table->scheme_make_raw_pair) #define scheme_make_byte_string (scheme_extension_table->scheme_make_byte_string) #define scheme_make_sized_byte_string (scheme_extension_table->scheme_make_sized_byte_string) #define scheme_make_sized_offset_byte_string (scheme_extension_table->scheme_make_sized_offset_byte_string) diff --git a/src/mzscheme/src/schminc.h b/src/mzscheme/src/schminc.h index 8146123c50..001ec42b0c 100644 --- a/src/mzscheme/src/schminc.h +++ b/src/mzscheme/src/schminc.h @@ -13,7 +13,7 @@ #define USE_COMPILED_STARTUP 1 -#define EXPECTED_PRIM_COUNT 861 +#define EXPECTED_PRIM_COUNT 862 #ifdef MZSCHEME_SOMETHING_OMITTED # undef USE_COMPILED_STARTUP diff --git a/src/mzscheme/src/schpriv.h b/src/mzscheme/src/schpriv.h index 5c59461907..5fdc70a316 100644 --- a/src/mzscheme/src/schpriv.h +++ b/src/mzscheme/src/schpriv.h @@ -587,8 +587,11 @@ Scheme_Object *scheme_make_module_rename(long phase, int kind, Scheme_Hash_Table void scheme_extend_module_rename(Scheme_Object *rn, Scheme_Object *modname, Scheme_Object *locname, Scheme_Object *exname, Scheme_Object *nominal_src, Scheme_Object *nominal_ex, - int mod_phase); + int mod_phase, int drop_for_marshal); void scheme_extend_module_rename_with_kernel(Scheme_Object *rn, Scheme_Object *nominal_src); +void scheme_save_module_rename_unmarshal(Scheme_Object *rn, Scheme_Object *info); +void scheme_do_module_rename_unmarshal(Scheme_Object *rn, Scheme_Object *info, + Scheme_Object *modidx_shift_from, Scheme_Object *modidx_shift_to); void scheme_remove_module_rename(Scheme_Object *mrn, Scheme_Object *localname); void scheme_append_module_rename(Scheme_Object *src, Scheme_Object *dest); @@ -754,6 +757,13 @@ typedef struct Scheme_Toplevel { /* MUTATED and READY flags are used in different contexts */ #define SCHEME_TOPLEVEL_FLAGS_MASK 0x3 +typedef struct Scheme_Quote_Syntax { + Scheme_Object so; /* scheme_quote_syntax_type */ + mzshort depth; + mzshort position; + mzshort midpoint; +} Scheme_Quote_Syntax; + typedef struct Scheme_Let_Value { Scheme_Inclhash_Object iso; /* keyex used for autobox */ mzshort count; @@ -1721,10 +1731,9 @@ int scheme_is_sub_env(Scheme_Comp_Env *stx_env, Scheme_Comp_Env *env); #define BOXVAL_EXPD 6 #define MODULE_EXPD 7 #define REQUIRE_EXPD 8 -#define QUOTE_SYNTAX_EXPD 9 -#define DEFINE_FOR_SYNTAX_EXPD 10 -#define REF_EXPD 11 -#define _COUNT_EXPD_ 12 +#define DEFINE_FOR_SYNTAX_EXPD 9 +#define REF_EXPD 10 +#define _COUNT_EXPD_ 11 #define scheme_register_syntax(i, fo, fr, fv, fe, fj, cl, pa) \ (scheme_syntax_optimizers[i] = fo, \ @@ -1963,9 +1972,6 @@ void scheme_validate_toplevel(Scheme_Object *expr, Mz_CPort *port, int num_toplevels, int num_stxes); void scheme_validate_boxenv(int pos, Mz_CPort *port, char *stack, int depth, int delta); -void scheme_validate_quote_syntax(int c, int p, int z, Mz_CPort *port, - char *stack, int depth, int delta, - int num_toplevels, int num_stxes); #define TRACK_ILL_FORMED_CATCH_LINES 0 #if TRACK_ILL_FORMED_CATCH_LINES diff --git a/src/mzscheme/src/schuchar.inc b/src/mzscheme/src/schuchar.inc index 96b84a73b5..ae8a738d51 100644 --- a/src/mzscheme/src/schuchar.inc +++ b/src/mzscheme/src/schuchar.inc @@ -1,7 +1,7 @@ /* Generated by mk-uchar.ss */ /* Character count: 237236 */ -/* Total bytes for all tables: 167669 */ +/* Total bytes for all tables: 188405 */ /* Each of the following maps a character to a value via the scheme_uchar_find() macro in scheme.h. */ @@ -12,6 +12,9 @@ unsigned short *scheme_uchar_table[8192]; /* Character case mapping as index into scheme_uchar_ups, etc.: */ unsigned char *scheme_uchar_cases_table[8192]; +/* Character general categories: */ +unsigned char *scheme_uchar_cats_table[8192]; + /* The udata... arrays are used by init_uchar_table to fill the above mappings.*/ static unsigned short udata[] = { @@ -36,10 +39,10 @@ static unsigned short udata[] = { 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x19, 0x18, 0x18, 0x18, 0x18, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x11, 0x804, 0x804, 0x804, 0x802, 0x804, 0x804, 0x1804, 0x804, 0x804, 0x804, 0x802, 0x804, 0x804, 0x804, 0x804, - 0x860, 0x860, 0x860, 0x860, 0x860, 0x860, 0x860, 0x860, 0x860, 0x860, 0x1804, 0x804, 0x8802, 0x8802, 0x8802, 0x804, - 0x804, 0x8aa0, 0x8aa0, 0x8aa0, 0x8aa0, 0x8aa0, 0x8aa0, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x8a80, + 0x840, 0x840, 0x840, 0x840, 0x840, 0x840, 0x840, 0x840, 0x840, 0x840, 0x1804, 0x804, 0x8802, 0x8802, 0x8802, 0x804, + 0x804, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0xa80, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x8a80, 0x804, 0x804, 0x804, 0x1802, 0x804, - 0x1802, 0x8ca0, 0x8ca0, 0x8ca0, 0x8ca0, 0x8ca0, 0x8ca0, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x8c80, + 0x1802, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0xc80, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x8c80, 0x804, 0x802, 0x804, 0x802, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, @@ -2076,6 +2079,1385 @@ static unsigned char udata_cases[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +static unsigned char udata_cats[] = { + /* 0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 1 */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 3, 3, 3, 4, 3, 3, 3, 5, 6, 3, 7, 3, 8, 3, 3, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 3, 7, 7, 7, 3, + 3, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 5, 3, 6, 11, 12, + 11, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 5, 7, 6, 7, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 3, 4, 4, 4, 4, 14, 14, 11, 14, 13, 15, 7, 16, 14, 11, + 14, 7, 17, 17, 11, 13, 14, 3, 11, 17, 13, 18, 17, 17, 17, 3, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 7, 10, 10, 10, 10, 10, 10, 10, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 7, 13, 13, 13, 13, 13, 13, 13, 13, + /* 2 */ + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 13, 10, 13, 10, 13, 10, 13, 10, + 13, 10, 13, 10, 13, 10, 13, 10, 13, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 10, 13, 10, 13, 10, 13, 13, + 13, 10, 10, 13, 10, 13, 10, 10, 13, 10, 10, 10, 13, 13, 10, 10, + 10, 10, 13, 10, 10, 13, 10, 10, 10, 13, 13, 13, 10, 10, 13, 10, + 10, 13, 10, 13, 10, 13, 10, 10, 13, 10, 13, 13, 10, 13, 10, 10, + 13, 10, 10, 10, 13, 10, 13, 10, 10, 13, 13, 19, 10, 13, 13, 13, + 19, 19, 19, 19, 10, 20, 13, 10, 20, 13, 10, 20, 13, 10, 13, 10, + 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 13, 10, 20, 13, 10, 13, 10, 10, 10, 13, 10, 13, 10, 13, 10, 13, + /* 3 */ + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 13, 13, 13, 13, 13, 13, 10, 10, 13, 10, 10, 13, + 13, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 11, 11, 11, 11, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 21, 21, 21, 21, 21, 11, 11, 11, 11, 11, 11, 11, 11, 11, 21, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + /* 4 */ + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 0, 0, 0, 0, 11, 11, 0, 0, 0, 0, 21, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 11, 11, 10, 3, 10, 10, 10, 0, 10, 0, 10, 10, + 13, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 0, + 13, 13, 10, 10, 10, 13, 13, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 13, 13, 13, 13, 10, 13, 7, 10, 13, 10, 10, 13, 13, 10, 10, 10, + /* 5 */ + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 14, 22, 22, 22, 22, 0, 23, 23, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 0, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 0, 0, 0, 0, 0, 0, + /* 6 */ + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 0, 0, 21, 3, 3, 3, 3, 3, 3, + 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 0, 3, 8, 0, 0, 0, 0, 0, + 0, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 0, 22, 22, 22, 3, 22, + 3, 22, 22, 3, 22, 22, 3, 22, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 0, + 19, 19, 19, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 7 */ + 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 4, 3, 3, 14, 14, + 22, 22, 22, 22, 22, 22, 0, 0, 0, 0, 0, 3, 0, 0, 3, 3, + 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 0, + 21, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 3, 3, 3, 19, 19, + 22, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 3, 19, 22, 22, 22, 22, 22, 22, 22, 16, 23, 22, + 22, 22, 22, 22, 22, 21, 21, 22, 22, 14, 22, 22, 22, 22, 19, 19, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 19, 19, 19, 14, 14, 19, + /* 8 */ + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 16, + 19, 22, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 0, 0, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 9 */ + 0, 22, 22, 24, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 22, 19, 24, 24, + 24, 22, 22, 22, 22, 22, 22, 22, 22, 24, 24, 24, 24, 22, 0, 0, + 19, 22, 22, 22, 22, 0, 0, 0, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 22, 22, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, + 0, 22, 24, 24, 0, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 19, + 19, 0, 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, 19, 19, 19, 19, + 19, 0, 19, 0, 0, 0, 19, 19, 19, 19, 0, 0, 22, 19, 24, 24, + 24, 22, 22, 22, 22, 0, 0, 24, 24, 0, 0, 24, 24, 22, 19, 0, + 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 19, 19, 0, 19, + 19, 19, 22, 22, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 19, 19, 4, 4, 17, 17, 17, 17, 17, 17, 14, 0, 0, 0, 0, 0, + /* 10 */ + 0, 22, 22, 24, 0, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 19, + 19, 0, 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, 19, 19, 19, 19, + 19, 0, 19, 19, 0, 19, 19, 0, 19, 19, 0, 0, 22, 0, 24, 24, + 24, 22, 22, 0, 0, 0, 0, 22, 22, 0, 0, 22, 22, 22, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 19, 19, 0, 19, 0, + 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 22, 22, 19, 19, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 22, 22, 24, 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 19, + 19, 19, 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, 19, 19, 19, 19, + 19, 0, 19, 19, 0, 19, 19, 19, 19, 19, 0, 0, 22, 19, 24, 24, + 24, 22, 22, 22, 22, 22, 0, 22, 22, 24, 0, 24, 24, 22, 0, 0, + 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 19, 22, 22, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 11 */ + 0, 22, 24, 24, 0, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 19, + 19, 0, 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, 19, 19, 19, 19, + 19, 0, 19, 19, 0, 19, 19, 19, 19, 19, 0, 0, 22, 19, 24, 22, + 24, 22, 22, 22, 0, 0, 0, 24, 24, 0, 0, 24, 24, 22, 0, 0, + 0, 0, 0, 0, 0, 0, 22, 24, 0, 0, 0, 0, 19, 19, 0, 19, + 19, 19, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 14, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 22, 19, 0, 19, 19, 19, 19, 19, 19, 0, 0, 0, 19, 19, + 19, 0, 19, 19, 19, 19, 0, 0, 0, 19, 19, 0, 19, 0, 19, 19, + 0, 0, 0, 19, 19, 0, 0, 0, 19, 19, 19, 0, 0, 0, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 24, 24, + 22, 24, 24, 0, 0, 0, 24, 24, 24, 0, 24, 24, 24, 22, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 17, 17, 17, 14, 14, 14, 14, 14, 14, 4, 14, 0, 0, 0, 0, 0, + /* 12 */ + 0, 24, 24, 24, 0, 19, 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, + 19, 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 0, 19, 19, 19, 19, 19, 0, 0, 0, 0, 22, 22, + 22, 24, 24, 24, 24, 0, 22, 22, 22, 0, 22, 22, 22, 22, 0, 0, + 0, 0, 0, 0, 0, 22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 19, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 24, 24, 0, 19, 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, + 19, 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 0, 19, 19, 19, 19, 19, 0, 0, 22, 19, 24, 22, + 24, 24, 24, 24, 24, 0, 22, 24, 24, 0, 24, 24, 22, 22, 0, 0, + 0, 0, 0, 0, 0, 24, 24, 0, 0, 0, 0, 0, 0, 0, 19, 0, + 19, 19, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 13 */ + 0, 0, 24, 24, 0, 19, 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, + 19, 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 24, 24, + 24, 22, 22, 22, 0, 0, 24, 24, 24, 0, 24, 24, 24, 22, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 19, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 24, 24, 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 19, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 22, 0, 0, 0, 0, 24, + 24, 24, 22, 22, 22, 0, 22, 0, 24, 24, 24, 24, 24, 24, 24, 24, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 24, 24, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 14 */ + 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 22, 19, 19, 22, 22, 22, 22, 22, 22, 22, 0, 0, 0, 0, 4, + 19, 19, 19, 19, 19, 19, 21, 22, 22, 22, 22, 22, 22, 22, 22, 3, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 19, 19, 0, 19, 0, 0, 19, 19, 0, 19, 0, 0, 19, 0, 0, + 0, 0, 0, 0, 19, 19, 19, 19, 0, 19, 19, 19, 19, 19, 19, 19, + 0, 19, 19, 19, 0, 19, 0, 19, 0, 0, 19, 19, 0, 19, 19, 19, + 19, 22, 19, 19, 22, 22, 22, 22, 22, 22, 0, 22, 22, 19, 0, 0, + 19, 19, 19, 19, 19, 0, 21, 0, 22, 22, 22, 22, 22, 22, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 19, 19, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 15 */ + 19, 14, 14, 14, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 14, 14, 14, 14, 14, 22, 22, 14, 14, 14, 14, 14, 14, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 14, 22, 14, 22, 14, 22, 5, 6, 5, 6, 24, 24, + 19, 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 0, + 0, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24, + 22, 22, 22, 22, 22, 3, 22, 22, 19, 19, 19, 19, 0, 0, 0, 0, + 22, 22, 22, 22, 22, 22, 22, 22, 0, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 0, 14, 14, + 14, 14, 14, 14, 14, 14, 22, 14, 14, 14, 14, 14, 14, 0, 0, 14, + 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 16 */ + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 0, 19, 19, 19, 19, 19, 0, 19, 19, 0, 24, 22, 22, 22, + 22, 24, 22, 0, 0, 0, 22, 22, 24, 22, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 3, 3, 3, 3, 3, + 19, 19, 19, 19, 19, 19, 24, 24, 22, 22, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 3, 21, 0, 0, 0, + /* 17 */ + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 0, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 0, 0, 0, 0, 0, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 0, 0, + /* 18 */ + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, 19, 19, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 0, 19, 0, 19, 19, 19, 19, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, 19, 19, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 0, 19, 19, 19, 19, 0, 0, 19, 19, 19, 19, 19, 19, 19, 0, + 19, 0, 19, 19, 19, 19, 0, 0, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + /* 19 */ + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 0, 19, 19, 19, 19, 0, 0, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 22, + 14, 3, 3, 3, 3, 3, 3, 3, 3, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 20 */ + 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + /* 21 */ + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + /* 22 */ + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 3, 3, 19, + 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 5, 6, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 3, 3, 3, 25, 25, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 23 */ + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, + 19, 19, 22, 22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 22, 22, 22, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, + 19, 0, 22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 16, 16, 24, 22, 22, 22, 22, 22, 22, 22, 24, 24, + 24, 24, 24, 24, 24, 24, 22, 24, 24, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 3, 3, 3, 21, 3, 3, 3, 4, 19, 22, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 0, 0, 0, 0, 0, 0, + /* 24 */ + 3, 3, 3, 3, 3, 3, 8, 3, 3, 3, 3, 22, 22, 22, 2, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 21, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 22, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 25 */ + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, + 22, 22, 22, 24, 24, 24, 24, 22, 22, 24, 24, 24, 0, 0, 0, 0, + 24, 24, 22, 24, 24, 24, 24, 24, 24, 22, 22, 22, 0, 0, 0, 0, + 14, 0, 0, 0, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, + 19, 19, 19, 19, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 0, 0, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 19, 19, 19, 19, 19, 19, 19, 24, 24, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 3, 3, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + /* 26 */ + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 22, 22, 24, 24, 24, 0, 0, 3, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 27 */ + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 21, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 22, 22, 22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 28 */ + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 13, 13, 13, 13, 13, 13, 0, 0, 0, 0, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 0, 0, 0, 0, 0, 0, + /* 29 */ + 13, 13, 13, 13, 13, 13, 13, 13, 10, 10, 10, 10, 10, 10, 10, 10, + 13, 13, 13, 13, 13, 13, 0, 0, 10, 10, 10, 10, 10, 10, 0, 0, + 13, 13, 13, 13, 13, 13, 13, 13, 10, 10, 10, 10, 10, 10, 10, 10, + 13, 13, 13, 13, 13, 13, 13, 13, 10, 10, 10, 10, 10, 10, 10, 10, + 13, 13, 13, 13, 13, 13, 0, 0, 10, 10, 10, 10, 10, 10, 0, 0, + 13, 13, 13, 13, 13, 13, 13, 13, 0, 10, 0, 10, 0, 10, 0, 10, + 13, 13, 13, 13, 13, 13, 13, 13, 10, 10, 10, 10, 10, 10, 10, 10, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 0, 0, + 13, 13, 13, 13, 13, 13, 13, 13, 20, 20, 20, 20, 20, 20, 20, 20, + 13, 13, 13, 13, 13, 13, 13, 13, 20, 20, 20, 20, 20, 20, 20, 20, + 13, 13, 13, 13, 13, 13, 13, 13, 20, 20, 20, 20, 20, 20, 20, 20, + 13, 13, 13, 13, 13, 0, 13, 13, 10, 10, 10, 10, 20, 11, 13, 11, + 11, 11, 13, 13, 13, 0, 13, 13, 10, 10, 10, 10, 20, 11, 11, 11, + 13, 13, 13, 13, 0, 0, 13, 13, 10, 10, 10, 10, 0, 11, 11, 11, + 13, 13, 13, 13, 13, 13, 13, 13, 10, 10, 10, 10, 10, 11, 11, 11, + 0, 0, 13, 13, 13, 0, 13, 13, 10, 10, 10, 10, 20, 11, 11, 0, + /* 30 */ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 16, + 8, 8, 8, 8, 8, 8, 3, 3, 15, 18, 5, 15, 15, 18, 5, 15, + 3, 3, 3, 3, 3, 3, 3, 3, 26, 27, 16, 16, 16, 16, 16, 2, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 15, 18, 3, 3, 3, 3, 12, + 12, 3, 3, 3, 7, 5, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 7, 3, 12, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, + 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 16, 16, 16, 16, 16, 16, + 17, 13, 0, 0, 17, 17, 17, 17, 17, 17, 7, 7, 7, 5, 6, 13, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 7, 7, 7, 5, 6, 0, + 21, 21, 21, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, + 23, 22, 23, 23, 23, 22, 22, 22, 22, 22, 22, 22, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 31 */ + 14, 14, 10, 14, 14, 14, 14, 10, 14, 14, 13, 10, 10, 10, 13, 13, + 10, 10, 10, 13, 14, 10, 14, 14, 14, 10, 10, 10, 10, 10, 14, 14, + 14, 14, 14, 14, 10, 14, 10, 14, 10, 14, 10, 10, 10, 10, 14, 13, + 10, 10, 14, 10, 13, 19, 19, 19, 19, 13, 14, 14, 13, 13, 10, 10, + 7, 7, 7, 7, 7, 10, 13, 13, 13, 13, 14, 7, 14, 0, 0, 0, + 0, 0, 0, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 14, 14, 14, 14, 14, 7, 7, 14, 14, 14, 14, + 7, 14, 14, 7, 14, 14, 7, 14, 14, 14, 14, 14, 14, 14, 7, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 7, 7, + 14, 14, 7, 14, 7, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + /* 32 */ + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + /* 33 */ + 14, 14, 14, 14, 14, 14, 14, 14, 7, 7, 7, 7, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 7, 7, 14, 14, 14, 14, 14, 14, 14, 5, 6, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 7, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 5, 6, 3, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 34 */ + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + /* 35 */ + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 7, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 7, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, + /* 36 */ + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 7, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 37 */ + 0, 14, 14, 14, 14, 0, 14, 14, 14, 14, 0, 0, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 0, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 14, 0, 14, + 14, 14, 14, 0, 0, 0, 14, 0, 14, 14, 14, 14, 14, 14, 14, 0, + 0, 14, 14, 14, 14, 14, 14, 14, 5, 6, 5, 6, 5, 6, 5, 6, + 5, 6, 5, 6, 5, 6, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 14, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, + 7, 7, 7, 7, 7, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 5, 6, 5, 6, 5, 6, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + /* 38 */ + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + /* 39 */ + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, + 6, 5, 6, 5, 6, 5, 6, 5, 6, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 5, 6, 5, 6, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 6, 7, 7, + /* 40 */ + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 41 */ + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 13, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 17, 3, 3, + /* 42 */ + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, 19, 19, 19, 19, 19, 0, + 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, 19, 19, 19, 19, 19, 0, + 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, 19, 19, 19, 19, 19, 0, + 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, 19, 19, 19, 19, 19, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 43 */ + 3, 3, 15, 18, 15, 18, 3, 3, 3, 15, 18, 3, 15, 18, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 8, 0, 0, 0, 0, 15, 18, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 44 */ + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, + /* 45 */ + 2, 3, 3, 3, 14, 21, 19, 25, 5, 6, 5, 6, 5, 6, 5, 6, + 5, 6, 14, 14, 5, 6, 5, 6, 5, 6, 5, 6, 8, 5, 6, 6, + 14, 25, 25, 25, 25, 25, 25, 25, 25, 25, 22, 22, 22, 22, 22, 22, + 8, 21, 21, 21, 21, 21, 14, 14, 25, 25, 25, 21, 19, 3, 14, 14, + 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 0, 0, 22, 22, 11, 11, 21, 21, 19, + 8, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 3, 21, 21, 21, 19, + /* 46 */ + 0, 0, 0, 0, 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, + 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, + 14, 14, 17, 17, 17, 17, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 0, 0, 0, 0, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + /* 47 */ + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 14, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, + /* 48 */ + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + /* 49 */ + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 50 */ + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 21, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + /* 51 */ + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 52 */ + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 53 */ + 19, 19, 24, 19, 19, 19, 22, 19, 19, 19, 19, 22, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 24, 24, 22, 22, 24, 14, 14, 14, 14, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 54 */ + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 55 */ + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + /* 56 */ + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + /* 57 */ + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 58 */ + 13, 13, 13, 13, 13, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 13, 13, 13, 13, 13, 0, 0, 0, 0, 0, 19, 22, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 7, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, 19, 19, 19, 0, 19, 0, + 19, 19, 0, 19, 19, 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + /* 59 */ + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 5, 6, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 0, 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 4, 14, 0, 0, + /* 60 */ + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 3, 3, 3, 3, 3, 3, 3, 5, 6, 3, 0, 0, 0, 0, 0, 0, + 22, 22, 22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 8, 8, 12, 12, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, + 6, 5, 6, 5, 6, 3, 3, 5, 6, 3, 3, 3, 3, 12, 12, 12, + 3, 3, 3, 0, 3, 3, 3, 3, 8, 5, 6, 5, 6, 5, 6, 3, + 3, 3, 7, 8, 7, 7, 7, 0, 3, 4, 3, 3, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 16, + /* 61 */ + 0, 3, 3, 3, 4, 3, 3, 3, 5, 6, 3, 7, 3, 8, 3, 3, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 3, 7, 7, 7, 3, + 3, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 5, 3, 6, 11, 12, + 11, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 5, 7, 6, 7, 5, + 6, 3, 5, 6, 3, 3, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 21, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 21, 21, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, + 0, 0, 19, 19, 19, 19, 19, 19, 0, 0, 19, 19, 19, 19, 19, 19, + 0, 0, 19, 19, 19, 19, 19, 19, 0, 0, 19, 19, 19, 0, 0, 0, + 4, 4, 7, 11, 14, 4, 4, 0, 14, 7, 7, 7, 7, 14, 14, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16, 14, 14, 0, 0, + /* 62 */ + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, 0, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 0, + /* 63 */ + 3, 3, 14, 0, 0, 0, 0, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 17, 17, 17, 17, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 17, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 64 */ + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, + 17, 17, 17, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 25, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 3, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 0, 0, 0, 0, 19, 19, 19, 19, 19, 19, 19, 19, + 14, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 65 */ + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 66 */ + 19, 19, 19, 19, 19, 19, 0, 0, 19, 0, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 0, 19, 19, 0, 0, 0, 19, 0, 0, 19, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 67 */ + 19, 22, 22, 22, 0, 22, 22, 0, 0, 0, 0, 0, 22, 22, 22, 22, + 19, 19, 19, 19, 0, 19, 19, 19, 0, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 0, 0, 0, 0, 22, 22, 22, 0, 0, 0, 0, 22, + 17, 17, 17, 17, 17, 17, 17, 17, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 68 */ + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 69 */ + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 24, 24, 22, 22, 22, 14, 14, 14, 24, 24, 24, + 24, 24, 24, 16, 16, 16, 16, 16, 16, 16, 16, 22, 22, 22, 22, 22, + 22, 22, 22, 14, 14, 22, 22, 22, 22, 22, 22, 22, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 22, 22, 22, 22, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 70 */ + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 22, 22, 22, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 71 */ + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 72 */ + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 13, 13, + 13, 13, 13, 13, 13, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 10, 0, 10, 10, + 0, 0, 10, 0, 0, 10, 10, 0, 0, 10, 10, 10, 10, 0, 10, 10, + 10, 10, 10, 10, 10, 10, 13, 13, 13, 13, 0, 13, 0, 13, 13, 13, + 13, 13, 13, 13, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + /* 73 */ + 13, 13, 13, 13, 10, 10, 0, 10, 10, 10, 10, 0, 0, 10, 10, 10, + 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 0, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 10, 10, 0, 10, 10, 10, 10, 0, + 10, 10, 10, 10, 10, 0, 10, 0, 0, 0, 10, 10, 10, 10, 10, 10, + 10, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + /* 74 */ + 13, 13, 13, 13, 13, 13, 13, 13, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 7, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 7, 13, 13, 13, 13, + 13, 13, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 7, 13, 13, 13, 13, + /* 75 */ + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 7, 13, 13, 13, 13, 13, 13, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 7, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 7, + 13, 13, 13, 13, 13, 13, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 7, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 7, 13, 13, 13, 13, 13, 13, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 7, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 7, 13, 13, 13, 13, 13, 13, 0, 0, 0, 0, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + /* 76 */ + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 77 */ + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 78 */ + 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 79 */ + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 80 */ + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 0, 0 +}; /* Case mapping size: 157 */ /* Find an index into the ups, downs, etc. table for a character @@ -2143,6 +3525,40 @@ unsigned char scheme_uchar_combining_classes[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, 224, 8, 26, 0, 0, 226 }; +#define NUM_GENERAL_CATEGORIES 30 +static const char *general_category_names[] = { + "cn", + "cc", + "zs", + "po", + "sc", + "ps", + "pe", + "sm", + "pd", + "nd", + "lu", + "sk", + "pc", + "ll", + "so", + "pi", + "cf", + "no", + "pf", + "lo", + "lt", + "lm", + "mn", + "me", + "mc", + "nl", + "zl", + "zp", + "cs", + "co" +}; + #define NUM_UCHAR_RANGES 420 #define URANGE_VARIES 0x40000000 @@ -2163,7 +3579,7 @@ static int mapped_uchar_ranges[] = { 0x531, 0x556, 0x559, 0x55f | URANGE_VARIES, 0x561, 0x587 | URANGE_VARIES, - 0x589, 0x58a, + 0x589, 0x58a | URANGE_VARIES, 0x591, 0x5b9 | URANGE_VARIES, 0x5bb, 0x5c7 | URANGE_VARIES, 0x5d0, 0x5ea, @@ -2448,8 +3864,8 @@ static int mapped_uchar_ranges[] = { 0x2dc8, 0x2dce, 0x2dd0, 0x2dd6, 0x2dd8, 0x2dde, - 0x2e00, 0x2e17, - 0x2e1c, 0x2e1d, + 0x2e00, 0x2e17 | URANGE_VARIES, + 0x2e1c, 0x2e1d | URANGE_VARIES, 0x2e80, 0x2e99, 0x2e9b, 0x2ef3 | URANGE_VARIES, 0x2f00, 0x2fd5, @@ -2500,7 +3916,7 @@ static int mapped_uchar_ranges[] = { 0xffd2, 0xffd7, 0xffda, 0xffdc, 0xffe0, 0xffe6 | URANGE_VARIES, - 0xffe8, 0xffee, + 0xffe8, 0xffee | URANGE_VARIES, 0xfff9, 0xfffd | URANGE_VARIES, 0x10000, 0x1000b, 0x1000d, 0x10026, @@ -2760,4 +4176,116 @@ static void init_uchar_table(void) for (i = 3840; i < 4352; i++) { scheme_uchar_cases_table[i] = udata_cases + 4352; } + scheme_uchar_cats_table[0] = udata_cats + 256; + scheme_uchar_cats_table[1] = udata_cats + 512; + scheme_uchar_cats_table[2] = udata_cats + 768; + scheme_uchar_cats_table[3] = udata_cats + 1024; + scheme_uchar_cats_table[4] = udata_cats + 1280; + scheme_uchar_cats_table[5] = udata_cats + 1536; + scheme_uchar_cats_table[6] = udata_cats + 1792; + scheme_uchar_cats_table[7] = udata_cats + 2048; + scheme_uchar_cats_table[9] = udata_cats + 2304; + scheme_uchar_cats_table[10] = udata_cats + 2560; + scheme_uchar_cats_table[11] = udata_cats + 2816; + scheme_uchar_cats_table[12] = udata_cats + 3072; + scheme_uchar_cats_table[13] = udata_cats + 3328; + scheme_uchar_cats_table[14] = udata_cats + 3584; + scheme_uchar_cats_table[15] = udata_cats + 3840; + scheme_uchar_cats_table[16] = udata_cats + 4096; + scheme_uchar_cats_table[17] = udata_cats + 4352; + scheme_uchar_cats_table[18] = udata_cats + 4608; + scheme_uchar_cats_table[19] = udata_cats + 4864; + scheme_uchar_cats_table[20] = udata_cats + 5120; + scheme_uchar_cats_table[21] = udata_cats + 5376; + scheme_uchar_cats_table[22] = udata_cats + 5632; + scheme_uchar_cats_table[23] = udata_cats + 5888; + scheme_uchar_cats_table[24] = udata_cats + 6144; + scheme_uchar_cats_table[25] = udata_cats + 6400; + scheme_uchar_cats_table[26] = udata_cats + 6656; + scheme_uchar_cats_table[29] = udata_cats + 6912; + scheme_uchar_cats_table[30] = udata_cats + 7168; + scheme_uchar_cats_table[31] = udata_cats + 7424; + scheme_uchar_cats_table[32] = udata_cats + 7680; + scheme_uchar_cats_table[33] = udata_cats + 7936; + scheme_uchar_cats_table[34] = udata_cats + 8192; + scheme_uchar_cats_table[35] = udata_cats + 8448; + scheme_uchar_cats_table[36] = udata_cats + 8704; + scheme_uchar_cats_table[37] = udata_cats + 8960; + scheme_uchar_cats_table[38] = udata_cats + 9216; + scheme_uchar_cats_table[39] = udata_cats + 9472; + scheme_uchar_cats_table[40] = udata_cats + 9728; + scheme_uchar_cats_table[41] = udata_cats + 9984; + scheme_uchar_cats_table[42] = udata_cats + 8192; + scheme_uchar_cats_table[43] = udata_cats + 10240; + scheme_uchar_cats_table[44] = udata_cats + 10496; + scheme_uchar_cats_table[45] = udata_cats + 10752; + scheme_uchar_cats_table[46] = udata_cats + 11008; + scheme_uchar_cats_table[47] = udata_cats + 11264; + scheme_uchar_cats_table[48] = udata_cats + 11520; + scheme_uchar_cats_table[49] = udata_cats + 11776; + scheme_uchar_cats_table[50] = udata_cats + 12032; + scheme_uchar_cats_table[51] = udata_cats + 9728; + for (i = 52; i < 77; i++) { + scheme_uchar_cats_table[i] = udata_cats + 5376; + } + scheme_uchar_cats_table[77] = udata_cats + 12288; + for (i = 78; i < 159; i++) { + scheme_uchar_cats_table[i] = udata_cats + 5376; + } + scheme_uchar_cats_table[159] = udata_cats + 12544; + scheme_uchar_cats_table[160] = udata_cats + 12800; + scheme_uchar_cats_table[161] = udata_cats + 5376; + scheme_uchar_cats_table[162] = udata_cats + 5376; + scheme_uchar_cats_table[163] = udata_cats + 5376; + scheme_uchar_cats_table[164] = udata_cats + 13056; + scheme_uchar_cats_table[167] = udata_cats + 13312; + scheme_uchar_cats_table[168] = udata_cats + 13568; + for (i = 172; i < 215; i++) { + scheme_uchar_cats_table[i] = udata_cats + 5376; + } + scheme_uchar_cats_table[215] = udata_cats + 13824; + for (i = 216; i < 224; i++) { + scheme_uchar_cats_table[i] = udata_cats + 14080; + } + for (i = 224; i < 249; i++) { + scheme_uchar_cats_table[i] = udata_cats + 14336; + } + scheme_uchar_cats_table[249] = udata_cats + 5376; + scheme_uchar_cats_table[250] = udata_cats + 14592; + scheme_uchar_cats_table[251] = udata_cats + 14848; + scheme_uchar_cats_table[252] = udata_cats + 5376; + scheme_uchar_cats_table[253] = udata_cats + 15104; + scheme_uchar_cats_table[254] = udata_cats + 15360; + scheme_uchar_cats_table[255] = udata_cats + 15616; + scheme_uchar_cats_table[256] = udata_cats + 15872; + scheme_uchar_cats_table[257] = udata_cats + 16128; + scheme_uchar_cats_table[259] = udata_cats + 16384; + scheme_uchar_cats_table[260] = udata_cats + 16640; + scheme_uchar_cats_table[264] = udata_cats + 16896; + scheme_uchar_cats_table[266] = udata_cats + 17152; + scheme_uchar_cats_table[464] = udata_cats + 17408; + scheme_uchar_cats_table[465] = udata_cats + 17664; + scheme_uchar_cats_table[466] = udata_cats + 17920; + scheme_uchar_cats_table[467] = udata_cats + 18176; + scheme_uchar_cats_table[468] = udata_cats + 18432; + scheme_uchar_cats_table[469] = udata_cats + 18688; + scheme_uchar_cats_table[470] = udata_cats + 18944; + scheme_uchar_cats_table[471] = udata_cats + 19200; + for (i = 512; i < 678; i++) { + scheme_uchar_cats_table[i] = udata_cats + 5376; + } + scheme_uchar_cats_table[678] = udata_cats + 19456; + scheme_uchar_cats_table[760] = udata_cats + 5376; + scheme_uchar_cats_table[761] = udata_cats + 5376; + scheme_uchar_cats_table[762] = udata_cats + 19712; + scheme_uchar_cats_table[3584] = udata_cats + 19968; + scheme_uchar_cats_table[3585] = udata_cats + 20224; + for (i = 3840; i < 4095; i++) { + scheme_uchar_cats_table[i] = udata_cats + 14336; + } + scheme_uchar_cats_table[4095] = udata_cats + 20480; + for (i = 4096; i < 4351; i++) { + scheme_uchar_cats_table[i] = udata_cats + 14336; + } + scheme_uchar_cats_table[4351] = udata_cats + 20480; } diff --git a/src/mzscheme/src/schvers.h b/src/mzscheme/src/schvers.h index 2c14703501..665cee7571 100644 --- a/src/mzscheme/src/schvers.h +++ b/src/mzscheme/src/schvers.h @@ -9,6 +9,6 @@ #define MZSCHEME_VERSION_MAJOR 301 -#define MZSCHEME_VERSION_MINOR 11 +#define MZSCHEME_VERSION_MINOR 12 -#define MZSCHEME_VERSION "301.11" _MZ_SPECIAL_TAG +#define MZSCHEME_VERSION "301.12" _MZ_SPECIAL_TAG diff --git a/src/mzscheme/src/stxobj.c b/src/mzscheme/src/stxobj.c index dc6d0af08c..1e3e54d11c 100644 --- a/src/mzscheme/src/stxobj.c +++ b/src/mzscheme/src/stxobj.c @@ -104,7 +104,7 @@ static void preemptive_chunk(Scheme_Stx *stx); typedef struct Module_Renames { Scheme_Object so; /* scheme_rename_table_type */ - char plus_kernel, kind; + char plus_kernel, kind, needs_unmarshal; long phase; Scheme_Object *plus_kernel_nominal_source; Scheme_Hash_Table *ht; /* localname -> modidx OR @@ -112,9 +112,12 @@ typedef struct Module_Renames { (cons-immutable modidx nominal_modidx) OR (list* modidx exportname nominal_modidx nominal_exportname) OR (list* modidx mod-phase exportname nominal_modidx nominal_exportname) */ + Scheme_Hash_Table *nomarshal_ht; /* like ht, but dropped on marshal */ Scheme_Hash_Table *marked_names; /* shared with module environment while compiling the module; this table maps a top-level-bound identifier with a non-empty mark set to a gensym created for the binding */ + Scheme_Object *unmarshal_info; /* stores some renamings as infomation needed to consult + imported modules and restore renames from their exports */ } Module_Renames; typedef struct Scheme_Cert { @@ -141,8 +144,8 @@ typedef struct Scheme_Cert { maybe inactive certs in nested parts - cons(c1, c2): active certs c1 (maybe NULL), inactive certs c2 (maybe NULL); no inactive certs in nested parts */ -#define ACTIVE_CERTS(stx) ((Scheme_Cert *)((stx)->certs ? (SCHEME_PAIRP((stx)->certs) ? SCHEME_CAR((stx)->certs) : (stx)->certs) : NULL)) -#define INACTIVE_CERTS(stx) ((Scheme_Cert *)((stx)->certs ? (SCHEME_PAIRP((stx)->certs) ? SCHEME_CDR((stx)->certs) : NULL) : NULL)) +#define ACTIVE_CERTS(stx) ((Scheme_Cert *)((stx)->certs ? (SCHEME_RPAIRP((stx)->certs) ? SCHEME_CAR((stx)->certs) : (stx)->certs) : NULL)) +#define INACTIVE_CERTS(stx) ((Scheme_Cert *)((stx)->certs ? (SCHEME_RPAIRP((stx)->certs) ? SCHEME_CDR((stx)->certs) : NULL) : NULL)) static Scheme_Object *stx_activate_certs(Scheme_Object *o, Scheme_Cert **cp, Scheme_Hash_Table **ht); #define SCHEME_RENAME_LEN(vec) ((SCHEME_VEC_SIZE(vec) - 2) >> 1) @@ -210,6 +213,7 @@ static Module_Renames *krn; to sub-syntax. */ #define IS_POSMARK(x) (SCHEME_INTP(x) ? (SCHEME_INT_VAL(x) >= 0) : SCHEME_BIGPOS(x)) +#define SCHEME_MARKP(x) (SCHEME_INTP(x) || SCHEME_BIGNUMP(x)) /*========================================================================*/ /* wrap chunks */ @@ -509,7 +513,7 @@ void scheme_init_stx(Scheme_Env *env) REGISTER_SO(than_id_marks_ht); REGISTER_SO(no_nested_inactive_certs); - no_nested_inactive_certs = scheme_make_pair(NULL, NULL); + no_nested_inactive_certs = scheme_make_raw_pair(NULL, NULL); } /*========================================================================*/ @@ -1061,6 +1065,7 @@ Scheme_Object *scheme_make_module_rename(long phase, int kind, Scheme_Hash_Table mr->phase = phase; mr->kind = kind; mr->marked_names = marked_names; + mr->unmarshal_info = scheme_null; if (!krn) { REGISTER_SO(krn); @@ -1084,7 +1089,8 @@ void scheme_extend_module_rename(Scheme_Object *mrn, Scheme_Object *exname, /* name in definition context */ Scheme_Object *nominal_mod, /* nominal source module */ Scheme_Object *nominal_ex, /* nominal import before local renaming */ - int mod_phase) /* phase of source defn */ + int mod_phase, /* phase of source defn */ + int unmarshal_drop) /* 1 => can be reconstructed from unmarshal info */ { Scheme_Object *elem; @@ -1115,65 +1121,98 @@ void scheme_extend_module_rename(Scheme_Object *mrn, elem = CONS(modname, elem); } - scheme_hash_set(((Module_Renames *)mrn)->ht, localname, elem); + if (unmarshal_drop) { + if (!((Module_Renames *)mrn)->nomarshal_ht) { + Scheme_Hash_Table *ht; + ht = scheme_make_hash_table(SCHEME_hash_ptr); + ((Module_Renames *)mrn)->nomarshal_ht = ht; + } + scheme_hash_set(((Module_Renames *)mrn)->nomarshal_ht, localname, elem); + } else + scheme_hash_set(((Module_Renames *)mrn)->ht, localname, elem); +} + +void scheme_save_module_rename_unmarshal(Scheme_Object *rn, Scheme_Object *info) +{ + Scheme_Object *l; + + l = scheme_make_pair(info, ((Module_Renames *)rn)->unmarshal_info); + ((Module_Renames *)rn)->unmarshal_info = l; } static void do_append_module_rename(Scheme_Object *src, Scheme_Object *dest, Scheme_Object *old_midx, Scheme_Object *new_midx) { - Scheme_Hash_Table *ht, *hts; + Scheme_Hash_Table *ht, *hts, *drop_ht; Scheme_Object *v; - int i; + int i, t; if (((Module_Renames *)src)->plus_kernel) { ((Module_Renames *)dest)->plus_kernel = 1; ((Module_Renames *)dest)->plus_kernel_nominal_source = ((Module_Renames *)src)->plus_kernel_nominal_source; } - ht = ((Module_Renames *)dest)->ht; - hts = ((Module_Renames *)src)->ht; - - /* Mappings in src overwrite mappings in dest: */ - - for (i = hts->size; i--; ) { - if (hts->vals[i]) { - v = hts->vals[i]; - if (old_midx) { - /* Shift the modidx part */ - if (SCHEME_PAIRP(v)) { - if (SCHEME_PAIRP(SCHEME_CDR(v))) { - /* (list* modidx [mod-phase] exportname nominal_modidx nominal_exportname) */ - Scheme_Object *midx1, *midx2; - int mod_phase; - midx1 = SCHEME_CAR(v); - v = SCHEME_CDR(v); - if (SCHEME_INTP(SCHEME_CAR(v))) { - mod_phase = SCHEME_INT_VAL(SCHEME_CAR(v)); - v = SCHEME_CDR(v); - } else - mod_phase = 0; - midx2 = SCHEME_CAR(SCHEME_CDR(v)); - midx1 = scheme_modidx_shift(midx1, old_midx, new_midx); - midx2 = scheme_modidx_shift(midx2, old_midx, new_midx); - v = CONS(SCHEME_CAR(v), CONS(midx2, SCHEME_CDR(SCHEME_CDR(v)))); - if (mod_phase) - v = CONS(scheme_make_integer(mod_phase), v); - v = CONS(midx1, v); - } else if (SCHEME_IMMUTABLEP(v)) { - /* (cons-immutable modidx nominal_modidx) */ - v = ICONS(scheme_modidx_shift(SCHEME_CAR(v), old_midx, new_midx), - scheme_modidx_shift(SCHEME_CDR(v), old_midx, new_midx)); - } else { - /* (cons modidx exportname) */ - v = CONS(scheme_modidx_shift(SCHEME_CAR(v), old_midx, new_midx), - SCHEME_CDR(v)); - } - } else { - /* modidx */ - v = scheme_modidx_shift(v, old_midx, new_midx); - } + for (t = 0; t < 2; t++) { + if (!t) { + ht = ((Module_Renames *)dest)->ht; + hts = ((Module_Renames *)src)->ht; + drop_ht = ((Module_Renames *)dest)->nomarshal_ht; + } else { + hts = ((Module_Renames *)src)->nomarshal_ht; + if (!hts) + break; + ht = ((Module_Renames *)dest)->nomarshal_ht; + if (!ht) { + ht = scheme_make_hash_table(SCHEME_hash_ptr); + ((Module_Renames *)dest)->nomarshal_ht = ht; + } + drop_ht = ((Module_Renames *)dest)->ht; + } + + /* Mappings in src overwrite mappings in dest: */ + + for (i = hts->size; i--; ) { + if (hts->vals[i]) { + v = hts->vals[i]; + if (old_midx) { + /* Shift the modidx part */ + if (SCHEME_PAIRP(v)) { + if (SCHEME_PAIRP(SCHEME_CDR(v))) { + /* (list* modidx [mod-phase] exportname nominal_modidx nominal_exportname) */ + Scheme_Object *midx1, *midx2; + int mod_phase; + midx1 = SCHEME_CAR(v); + v = SCHEME_CDR(v); + if (SCHEME_INTP(SCHEME_CAR(v))) { + mod_phase = SCHEME_INT_VAL(SCHEME_CAR(v)); + v = SCHEME_CDR(v); + } else + mod_phase = 0; + midx2 = SCHEME_CAR(SCHEME_CDR(v)); + midx1 = scheme_modidx_shift(midx1, old_midx, new_midx); + midx2 = scheme_modidx_shift(midx2, old_midx, new_midx); + v = CONS(SCHEME_CAR(v), CONS(midx2, SCHEME_CDR(SCHEME_CDR(v)))); + if (mod_phase) + v = CONS(scheme_make_integer(mod_phase), v); + v = CONS(midx1, v); + } else if (SCHEME_IMMUTABLEP(v)) { + /* (cons-immutable modidx nominal_modidx) */ + v = ICONS(scheme_modidx_shift(SCHEME_CAR(v), old_midx, new_midx), + scheme_modidx_shift(SCHEME_CDR(v), old_midx, new_midx)); + } else { + /* (cons modidx exportname) */ + v = CONS(scheme_modidx_shift(SCHEME_CAR(v), old_midx, new_midx), + SCHEME_CDR(v)); + } + } else { + /* modidx */ + v = scheme_modidx_shift(v, old_midx, new_midx); + } + } + scheme_hash_set(ht, hts->keys[i], v); + if (drop_ht) + scheme_hash_set(drop_ht, hts->keys[i], NULL); } - scheme_hash_set(ht, hts->keys[i], v); } } @@ -1204,19 +1243,29 @@ void scheme_remove_module_rename(Scheme_Object *mrn, Scheme_Object *localname) { scheme_hash_set(((Module_Renames *)mrn)->ht, localname, NULL); + if (((Module_Renames *)mrn)->nomarshal_ht) + scheme_hash_set(((Module_Renames *)mrn)->nomarshal_ht, localname, NULL); } void scheme_list_module_rename(Scheme_Object *src, Scheme_Hash_Table *ht) { /* Put every name mapped by src into ht: */ Scheme_Hash_Table *hts; - int i; + int i, t; - hts = ((Module_Renames *)src)->ht; - - for (i = hts->size; i--; ) { - if (hts->vals[i]) { - scheme_hash_set(ht, hts->keys[i], scheme_false); + for (t = 0; t < 2; t++) { + if (!t) + hts = ((Module_Renames *)src)->ht; + else { + hts = ((Module_Renames *)src)->nomarshal_ht; + if (!hts) + break; + } + + for (i = hts->size; i--; ) { + if (hts->vals[i]) { + scheme_hash_set(ht, hts->keys[i], scheme_false); + } } } @@ -1243,9 +1292,23 @@ Scheme_Object *scheme_stx_to_rename(Scheme_Object *stx) Scheme_Object *scheme_stx_shift_rename(Scheme_Object *mrn, Scheme_Object *old_midx, Scheme_Object *new_midx) { - Scheme_Object *nmrn; + Scheme_Object *nmrn, *a, *l, *nl; + nmrn = scheme_make_module_rename(0, mzMOD_RENAME_NORMAL, NULL); do_append_module_rename(mrn, nmrn, old_midx, new_midx); + + /* Shift each mark_info: */ + l = ((Module_Renames *)mrn)->unmarshal_info; + nl = scheme_null; + while (!SCHEME_NULLP(l)) { + a = SCHEME_CAR(l); + nl = scheme_make_pair(scheme_make_pair(scheme_modidx_shift(SCHEME_CAR(a), old_midx, new_midx), + SCHEME_CDR(a)), + nl); + l = SCHEME_CDR(l); + } + ((Module_Renames *)nmrn)->unmarshal_info = nl; + return nmrn; } @@ -1254,6 +1317,18 @@ Scheme_Hash_Table *scheme_module_rename_marked_names(Scheme_Object *rn) return ((Module_Renames *)rn)->marked_names; } +static void unmarshal_rename(Module_Renames *mrn, + Scheme_Object *modidx_shift_from, Scheme_Object *modidx_shift_to) +{ + Scheme_Object *l; + + mrn->needs_unmarshal = 0; + for (l = mrn->unmarshal_info; SCHEME_PAIRP(l); l = SCHEME_CDR(l)) { + scheme_do_module_rename_unmarshal((Scheme_Object *)mrn, SCHEME_CAR(l), + modidx_shift_from, modidx_shift_to); + } +} + /******************** wrap manipulations ********************/ Scheme_Object *scheme_add_rename(Scheme_Object *o, Scheme_Object *rename) @@ -1436,7 +1511,7 @@ static void phase_shift_certs(Scheme_Object *o, Scheme_Object *owner_wraps, int } if (icerts) { - nc = scheme_make_pair((Scheme_Object *)acerts, (Scheme_Object *)icerts); + nc = scheme_make_raw_pair((Scheme_Object *)acerts, (Scheme_Object *)icerts); } else nc = (Scheme_Object *)acerts; @@ -1788,7 +1863,7 @@ static void make_mapped(Scheme_Cert *cert) ht = scheme_make_hash_table_equal(); - pr = scheme_make_pair((Scheme_Object *)ht, (Scheme_Object *)stop); + pr = scheme_make_raw_pair((Scheme_Object *)ht, (Scheme_Object *)stop); cert->mapped = pr; for (; cert != stop; cert = cert->next) { @@ -1855,7 +1930,7 @@ static Scheme_Object *add_certs(Scheme_Object *o, Scheme_Cert *certs, Scheme_Obj if (active) res->certs = (Scheme_Object *)certs; else { - pr = scheme_make_pair(NULL, (Scheme_Object *)certs); + pr = scheme_make_raw_pair(NULL, (Scheme_Object *)certs); res->certs = pr; } return (Scheme_Object *)res; @@ -1878,10 +1953,10 @@ static Scheme_Object *add_certs(Scheme_Object *o, Scheme_Cert *certs, Scheme_Obj res->wraps = stx->wraps; res->u.lazy_prefix = stx->u.lazy_prefix; if (!active) { - pr = scheme_make_pair((Scheme_Object *)ACTIVE_CERTS(stx), (Scheme_Object *)orig_certs); + pr = scheme_make_raw_pair((Scheme_Object *)ACTIVE_CERTS(stx), (Scheme_Object *)orig_certs); res->certs = pr; - } else if (stx->certs && SCHEME_PAIRP(stx->certs)) { - pr = scheme_make_pair((Scheme_Object *)orig_certs, SCHEME_CDR(stx->certs)); + } else if (stx->certs && SCHEME_RPAIRP(stx->certs)) { + pr = scheme_make_raw_pair((Scheme_Object *)orig_certs, SCHEME_CDR(stx->certs)); res->certs = pr; } else res->certs = (Scheme_Object *)orig_certs; @@ -1893,7 +1968,7 @@ static Scheme_Object *add_certs(Scheme_Object *o, Scheme_Cert *certs, Scheme_Obj now_certs = cl; if (!active) { SCHEME_CDR(stx->certs) = (Scheme_Object *)cl; - } else if (stx->certs && SCHEME_PAIRP(stx->certs)) + } else if (stx->certs && SCHEME_RPAIRP(stx->certs)) SCHEME_CAR(stx->certs) = (Scheme_Object *)cl; else stx->certs = (Scheme_Object *)cl; @@ -1977,15 +2052,15 @@ Scheme_Object *scheme_stx_cert(Scheme_Object *o, Scheme_Object *mark, Scheme_Env menv->module->insp, key, cert); if (active) { - if (stx->certs && SCHEME_PAIRP(stx->certs)) { + if (stx->certs && SCHEME_RPAIRP(stx->certs)) { Scheme_Object *pr; - pr = scheme_make_pair((Scheme_Object *)cert, SCHEME_CDR(stx->certs)); + pr = scheme_make_raw_pair((Scheme_Object *)cert, SCHEME_CDR(stx->certs)); res->certs = pr; } else res->certs = (Scheme_Object *)cert; } else { Scheme_Object *pr; - pr = scheme_make_pair((Scheme_Object *)ACTIVE_CERTS(stx), (Scheme_Object *)cert); + pr = scheme_make_raw_pair((Scheme_Object *)ACTIVE_CERTS(stx), (Scheme_Object *)cert); res->certs = pr; } @@ -2250,7 +2325,7 @@ static Scheme_Object *stx_activate_certs(Scheme_Object *o, Scheme_Cert **cp, Sch stx->props); res->wraps = stx->wraps; res->u.lazy_prefix = stx->u.lazy_prefix; - np = scheme_make_pair(SCHEME_CAR(stx->certs), NULL); + np = scheme_make_raw_pair(SCHEME_CAR(stx->certs), NULL); res->certs = np; cc = *cp; @@ -2261,7 +2336,7 @@ static Scheme_Object *stx_activate_certs(Scheme_Object *o, Scheme_Cert **cp, Sch *cp = cc; return (Scheme_Object *)res; - } else if (stx->certs && SCHEME_PAIRP(stx->certs)) { + } else if (stx->certs && SCHEME_RPAIRP(stx->certs)) { /* Explicit pair but NULL for inactive certs means no inactive certs anywhere in this object. */ return (Scheme_Object *)stx; @@ -2312,7 +2387,7 @@ static Scheme_Object *stx_activate_certs(Scheme_Object *o, Scheme_Cert **cp, Sch that there are no nested certs here */ if (stx->certs) { Scheme_Object *np; - np = scheme_make_pair(stx->certs, NULL); + np = scheme_make_raw_pair(stx->certs, NULL); res->certs = np; } else res->certs = no_nested_inactive_certs; @@ -2327,7 +2402,7 @@ static Scheme_Object *stx_activate_certs(Scheme_Object *o, Scheme_Cert **cp, Sch /* Record the absence of certificates in sub-parts: */ if (stx->certs) { Scheme_Object *np; - np = scheme_make_pair(stx->certs, NULL); + np = scheme_make_raw_pair(stx->certs, NULL); stx->certs = np; } else stx->certs = no_nested_inactive_certs; @@ -2608,6 +2683,9 @@ static Scheme_Object *resolve_env(Scheme_Object *a, long phase, if (phase == mrn->phase) { Scheme_Object *rename, *nominal = NULL, *glob_id; + + if (mrn->needs_unmarshal) + unmarshal_rename(mrn, modidx_shift_from, modidx_shift_to); if (mrn->marked_names) glob_id = scheme_tl_id_sym((Scheme_Env *)mrn->marked_names, a, 0); @@ -2615,6 +2693,8 @@ static Scheme_Object *resolve_env(Scheme_Object *a, long phase, glob_id = SCHEME_STX_VAL(a); rename = scheme_hash_get(mrn->ht, glob_id); + if (!rename && mrn->nomarshal_ht) + rename = scheme_hash_get(mrn->nomarshal_ht, glob_id); if (!rename && mrn->plus_kernel) { rename = scheme_hash_get(krn->ht, glob_id); nominal = mrn->plus_kernel_nominal_source; @@ -2841,6 +2921,7 @@ static Scheme_Object *get_module_src_name(Scheme_Object *a, long phase) WRAP_POS wraps; Scheme_Object *result; int is_in_module = 0, skip_other_mods = 0; + long orig_phase = phase; if (((Scheme_Stx *)a)->u.modinfo_cache) return ((Scheme_Stx *)a)->u.modinfo_cache; @@ -2867,13 +2948,21 @@ static Scheme_Object *get_module_src_name(Scheme_Object *a, long phase) if (phase == mrn->phase) { /* Module rename: */ Scheme_Object *rename, *glob_id; - + + if (mrn->needs_unmarshal) { + /* Use resolve_env to trigger unmarshal, so that we + don't have to implement top/from shifts here: */ + resolve_env(a, orig_phase, 1, NULL, NULL); + } + if (mrn->marked_names) glob_id = scheme_tl_id_sym((Scheme_Env *)mrn->marked_names, a, 0); else glob_id = SCHEME_STX_VAL(a); rename = scheme_hash_get(mrn->ht, glob_id); + if (!rename && mrn->nomarshal_ht) + rename = scheme_hash_get(mrn->nomarshal_ht, glob_id); if (!rename && mrn->plus_kernel) rename = scheme_hash_get(krn->ht, glob_id); @@ -3715,10 +3804,7 @@ static Scheme_Object *wraps_to_datum(Scheme_Object *w_in, int i, j, count = 0; Scheme_Object *l, *idi; - for (i = mrn->ht->size; i--; ) { - if (mrn->ht->vals[i]) - count++; - } + count = mrn->ht->mcount; l = scheme_make_vector(count * 2, NULL); @@ -3742,7 +3828,7 @@ static Scheme_Object *wraps_to_datum(Scheme_Object *w_in, SCHEME_VEC_ELS(l)[j++] = idi; } } - + local_key = scheme_make_integer(rns->count); scheme_hash_set(rns, a, local_key); @@ -3760,6 +3846,9 @@ static Scheme_Object *wraps_to_datum(Scheme_Object *w_in, l = CONS(l, d); } else l = CONS(l, scheme_null); + + if (SCHEME_PAIRP(mrn->unmarshal_info)) + l = CONS(mrn->unmarshal_info, l); l = CONS((mrn->kind == mzMOD_RENAME_MARKED) ? scheme_true : scheme_false, l); l = CONS(scheme_make_integer(mrn->phase), l); @@ -4204,8 +4293,8 @@ static Scheme_Object *datum_to_wraps(Scheme_Object *w, scheme_hash_set(rns, local_key, a); } else if (SCHEME_PAIRP(a)) { /* A rename table: - - ([#t] #( ...) - . (( ( . ) ...) ...)) ; <- marked_names + - ([#t] [unmarshal] #( ...) + . (( ( . ) ...) ...)) ; <- marked_names where a is actually two values, one of: - - ( . ) @@ -4248,6 +4337,46 @@ static Scheme_Object *datum_to_wraps(Scheme_Object *w, mns = SCHEME_CDR(a); a = SCHEME_CAR(a); + if (!SCHEME_VECTORP(a)) { + /* Unmarshall info: */ + Scheme_Object *ml = a, *mli; + while (SCHEME_PAIRP(ml)) { + mli = SCHEME_CAR(ml); + if (!SCHEME_PAIRP(mli)) return NULL; + + /* A module path index: */ + p = SCHEME_CAR(mli); + if (!(SCHEME_SYMBOLP(p) + || SAME_TYPE(SCHEME_TYPE(p), scheme_module_index_type))) + return NULL; + + mli = SCHEME_CDR(mli); + if (!SCHEME_PAIRP(mli)) return NULL; + /* A list of symbols: */ + p = SCHEME_CAR(mli); + while (SCHEME_PAIRP(p)) { + if (!SCHEME_SYMBOLP(SCHEME_CAR(p))) return NULL; + p = SCHEME_CDR(p); + } + if (!SCHEME_NULLP(p)) return NULL; + + /* #f or a symbol: */ + p = SCHEME_CDR(mli); + if (!SCHEME_SYMBOLP(p) && !SCHEME_FALSEP(p)) return NULL; + + ml = SCHEME_CDR(ml); + } + if (!SCHEME_NULLP(ml)) return NULL; + + mrn->unmarshal_info = a; + if (SCHEME_PAIRP(a)) + mrn->needs_unmarshal = 1; + + if (!SCHEME_PAIRP(mns)) return NULL; + a = SCHEME_CAR(mns); + mns = SCHEME_CDR(mns); + } + if (!SCHEME_VECTORP(a)) return_NULL; count = SCHEME_VEC_SIZE(a); if (count & 0x1) return_NULL; @@ -4312,15 +4441,20 @@ static Scheme_Object *datum_to_wraps(Scheme_Object *w, kfirst = scheme_null; klast = NULL; - for (a = SCHEME_CAR(a); SCHEME_PAIRP(a); a = SCHEME_CDR(a)) { - kp = CONS(unmarshal_mark(SCHEME_CAR(a), rns), scheme_null); - if (!klast) - kfirst = kp; - else - SCHEME_CDR(klast) = kp; - klast = kp; + a = SCHEME_CAR(a); + if (SCHEME_MARKP(a)) { + kfirst = unmarshal_mark(a, rns); + } else { + for (; SCHEME_PAIRP(a); a = SCHEME_CDR(a)) { + kp = CONS(unmarshal_mark(SCHEME_CAR(a), rns), scheme_null); + if (!klast) + kfirst = kp; + else + SCHEME_CDR(klast) = kp; + klast = kp; + } + if (!SCHEME_NULLP(a)) return_NULL; } - if (!SCHEME_NULLP(a)) return_NULL; ll = CONS(CONS(kfirst, kkey), ll); } @@ -4618,7 +4752,7 @@ static Scheme_Object *datum_to_syntax_inner(Scheme_Object *o, Scheme_Object *icerts; certs = cert_marks_to_certs(SCHEME_CAR(cert_marks), stx_wraps, &bad); icerts = cert_marks_to_certs(SCHEME_CDR(cert_marks), stx_wraps, &bad); - certs = scheme_make_pair(certs, icerts); + certs = scheme_make_raw_pair(certs, icerts); } else { /* Just active certs */ certs = cert_marks_to_certs(cert_marks, stx_wraps, &bad); @@ -4821,9 +4955,9 @@ static void simplify_syntax_inner(Scheme_Object *o, } } if (!i) { - if (SCHEME_PAIRP(stx->certs)) { + if (SCHEME_RPAIRP(stx->certs)) { Scheme_Object *pr; - pr = scheme_make_pair((Scheme_Object *)result, SCHEME_CDR(stx->certs)); + pr = scheme_make_raw_pair((Scheme_Object *)result, SCHEME_CDR(stx->certs)); stx->certs = pr; } else stx->certs = (Scheme_Object *)result; @@ -4832,7 +4966,7 @@ static void simplify_syntax_inner(Scheme_Object *o, stx->certs = SCHEME_CAR(stx->certs); else { Scheme_Object *pr; - pr = scheme_make_pair(SCHEME_CAR(stx->certs), (Scheme_Object *)result); + pr = scheme_make_raw_pair(SCHEME_CAR(stx->certs), (Scheme_Object *)result); stx->certs = pr; } } @@ -5464,14 +5598,14 @@ static Scheme_Object *syntax_recertify(int argc, Scheme_Object **argv) res->wraps = stx->wraps; res->u.lazy_prefix = stx->u.lazy_prefix; - if (!i && (!stx->certs || !SCHEME_PAIRP(stx->certs) || !SCHEME_CDR(stx->certs))) + if (!i && (!stx->certs || !SCHEME_RPAIRP(stx->certs) || !SCHEME_CDR(stx->certs))) res->certs = (Scheme_Object *)new_certs; else { Scheme_Object *pr; if (!i) - pr = scheme_make_pair((Scheme_Object *)new_certs, SCHEME_CDR(stx->certs)); + pr = scheme_make_raw_pair((Scheme_Object *)new_certs, SCHEME_CDR(stx->certs)); else - pr = scheme_make_pair((Scheme_Object *)ACTIVE_CERTS(stx), (Scheme_Object *)new_certs); + pr = scheme_make_raw_pair((Scheme_Object *)ACTIVE_CERTS(stx), (Scheme_Object *)new_certs); res->certs = pr; } diff --git a/src/mzscheme/src/stypes.h b/src/mzscheme/src/stypes.h index a7b36dd144..794ff57785 100644 --- a/src/mzscheme/src/stypes.h +++ b/src/mzscheme/src/stypes.h @@ -17,202 +17,204 @@ enum { scheme_letrec_type, /* 12 */ scheme_let_one_type, /* 13 */ scheme_with_cont_mark_type, /* 14 */ + scheme_quote_syntax_type, /* 15 */ _scheme_values_types_, /* All following types are values */ /* intermediate compiled: */ - scheme_compiled_unclosed_procedure_type,/* 16 */ - scheme_compiled_let_value_type, /* 17 */ - scheme_compiled_let_void_type, /* 18 */ - scheme_compiled_syntax_type, /* 19 */ - scheme_compiled_toplevel_type, /* 20 */ - scheme_compiled_quote_syntax_type, /* 21 */ + scheme_compiled_unclosed_procedure_type,/* 17 */ + scheme_compiled_let_value_type, /* 18 */ + scheme_compiled_let_void_type, /* 19 */ + scheme_compiled_syntax_type, /* 20 */ + scheme_compiled_toplevel_type, /* 21 */ + scheme_compiled_quote_syntax_type, /* 22 */ scheme_quote_compilation_type, /* used while writing, only */ /* Registered in prefix table: */ - scheme_variable_type, /* 23 */ + scheme_variable_type, /* 24 */ scheme_module_variable_type, /* link replaces with scheme_variable_type */ - _scheme_compiled_values_types_, /* 25 */ + _scheme_compiled_values_types_, /* 26 */ /* procedure types */ - scheme_prim_type, /* 26 */ - scheme_closed_prim_type, /* 27 */ - scheme_closure_type, /* 28 */ - scheme_case_closure_type, /* 29 */ - scheme_cont_type, /* 30 */ - scheme_escaping_cont_type, /* 31 */ - scheme_proc_struct_type, /* 32 */ - scheme_native_closure_type, /* 33 */ + scheme_prim_type, /* 27 */ + scheme_closed_prim_type, /* 28 */ + scheme_closure_type, /* 29 */ + scheme_case_closure_type, /* 30 */ + scheme_cont_type, /* 31 */ + scheme_escaping_cont_type, /* 32 */ + scheme_proc_struct_type, /* 33 */ + scheme_native_closure_type, /* 34 */ /* structure types (overlaps with procs) */ - scheme_structure_type, /* 34 */ + scheme_structure_type, /* 35 */ /* basic types */ - scheme_char_type, /* 35 */ - scheme_integer_type, /* 36 */ - scheme_bignum_type, /* 37 */ - scheme_rational_type, /* 38 */ - scheme_float_type, /* 39 */ - scheme_double_type, /* 40 */ - scheme_complex_izi_type, /* 41 */ - scheme_complex_type, /* 42 */ - scheme_char_string_type, /* 43 */ - scheme_byte_string_type, /* 44 */ - scheme_path_type, /* 45 */ - scheme_symbol_type, /* 46 */ - scheme_keyword_type, /* 47 */ - scheme_null_type, /* 48 */ - scheme_pair_type, /* 49 */ - scheme_vector_type, /* 50 */ - scheme_inspector_type, /* 51 */ - scheme_input_port_type, /* 52 */ - scheme_output_port_type, /* 53 */ - scheme_eof_type, /* 54 */ - scheme_true_type, /* 55 */ - scheme_false_type, /* 56 */ - scheme_void_type, /* 57 */ - scheme_syntax_compiler_type, /* 58 */ - scheme_macro_type, /* 59 */ - scheme_box_type, /* 60 */ - scheme_thread_type, /* 61 */ - scheme_stx_offset_type, /* 62 */ - scheme_cont_mark_set_type, /* 63 */ - scheme_sema_type, /* 64 */ - scheme_hash_table_type, /* 65 */ - scheme_cpointer_type, /* 66 */ - scheme_weak_box_type, /* 67 */ - scheme_ephemeron_type, /* 68 */ - scheme_struct_type_type, /* 69 */ - scheme_module_index_type, /* 70 */ - scheme_set_macro_type, /* 71 */ - scheme_listener_type, /* 72 */ - scheme_namespace_type, /* 73 */ - scheme_config_type, /* 74 */ - scheme_stx_type, /* 75 */ - scheme_will_executor_type, /* 76 */ - scheme_custodian_type, /* 77 */ - scheme_random_state_type, /* 78 */ - scheme_regexp_type, /* 79 */ - scheme_bucket_type, /* 80 */ - scheme_bucket_table_type, /* 81 */ - scheme_subprocess_type, /* 82 */ - scheme_compilation_top_type, /* 83 */ - scheme_wrap_chunk_type, /* 84 */ - scheme_eval_waiting_type, /* 85 */ - scheme_tail_call_waiting_type, /* 86 */ - scheme_undefined_type, /* 87 */ - scheme_struct_property_type, /* 88 */ - scheme_multiple_values_type, /* 89 */ - scheme_placeholder_type, /* 90 */ - scheme_case_lambda_sequence_type, /* 91 */ - scheme_begin0_sequence_type, /* 92 */ - scheme_rename_table_type, /* 93 */ - scheme_module_type, /* 94 */ - scheme_svector_type, /* 95 */ - scheme_lazy_macro_type, /* 96 */ - scheme_resolve_prefix_type, /* 97 */ - scheme_security_guard_type, /* 98 */ - scheme_indent_type, /* 99 */ - scheme_udp_type, /* 100 */ - scheme_udp_evt_type, /* 101 */ - scheme_tcp_accept_evt_type, /* 102 */ - scheme_id_macro_type, /* 103 */ - scheme_evt_set_type, /* 104 */ - scheme_wrap_evt_type, /* 105 */ - scheme_handle_evt_type, /* 106 */ - scheme_nack_guard_evt_type, /* 107 */ - scheme_semaphore_repost_type, /* 108 */ - scheme_channel_type, /* 109 */ - scheme_channel_put_type, /* 110 */ - scheme_thread_resume_type, /* 111 */ - scheme_thread_suspend_type, /* 112 */ - scheme_thread_dead_type, /* 113 */ - scheme_poll_evt_type, /* 114 */ - scheme_nack_evt_type, /* 115 */ - scheme_module_registry_type, /* 116 */ - scheme_thread_set_type, /* 117 */ - scheme_string_converter_type, /* 118 */ - scheme_alarm_type, /* 119 */ - scheme_thread_cell_type, /* 120 */ - scheme_channel_syncer_type, /* 121 */ - scheme_special_comment_type, /* 122 */ - scheme_write_evt_type, /* 123 */ - scheme_always_evt_type, /* 124 */ - scheme_never_evt_type, /* 125 */ - scheme_progress_evt_type, /* 126 */ - scheme_certifications_type, /* 127 */ - scheme_already_comp_type, /* 128 */ - scheme_readtable_type, /* 129 */ - scheme_intdef_context_type, /* 130 */ - scheme_lexical_rib_type, /* 131 */ - scheme_thread_cell_values_type, /* 132 */ - scheme_global_ref_type, /* 133 */ - scheme_cont_mark_chain_type, /* 134 */ + scheme_char_type, /* 36 */ + scheme_integer_type, /* 37 */ + scheme_bignum_type, /* 38 */ + scheme_rational_type, /* 39 */ + scheme_float_type, /* 40 */ + scheme_double_type, /* 41 */ + scheme_complex_izi_type, /* 42 */ + scheme_complex_type, /* 43 */ + scheme_char_string_type, /* 44 */ + scheme_byte_string_type, /* 45 */ + scheme_path_type, /* 46 */ + scheme_symbol_type, /* 47 */ + scheme_keyword_type, /* 48 */ + scheme_null_type, /* 49 */ + scheme_pair_type, /* 50 */ + scheme_vector_type, /* 51 */ + scheme_inspector_type, /* 52 */ + scheme_input_port_type, /* 53 */ + scheme_output_port_type, /* 54 */ + scheme_eof_type, /* 55 */ + scheme_true_type, /* 56 */ + scheme_false_type, /* 57 */ + scheme_void_type, /* 58 */ + scheme_syntax_compiler_type, /* 59 */ + scheme_macro_type, /* 60 */ + scheme_box_type, /* 61 */ + scheme_thread_type, /* 62 */ + scheme_stx_offset_type, /* 63 */ + scheme_cont_mark_set_type, /* 64 */ + scheme_sema_type, /* 65 */ + scheme_hash_table_type, /* 66 */ + scheme_cpointer_type, /* 67 */ + scheme_weak_box_type, /* 68 */ + scheme_ephemeron_type, /* 69 */ + scheme_struct_type_type, /* 70 */ + scheme_module_index_type, /* 71 */ + scheme_set_macro_type, /* 72 */ + scheme_listener_type, /* 73 */ + scheme_namespace_type, /* 74 */ + scheme_config_type, /* 75 */ + scheme_stx_type, /* 76 */ + scheme_will_executor_type, /* 77 */ + scheme_custodian_type, /* 78 */ + scheme_random_state_type, /* 79 */ + scheme_regexp_type, /* 80 */ + scheme_bucket_type, /* 81 */ + scheme_bucket_table_type, /* 82 */ + scheme_subprocess_type, /* 83 */ + scheme_compilation_top_type, /* 84 */ + scheme_wrap_chunk_type, /* 85 */ + scheme_eval_waiting_type, /* 86 */ + scheme_tail_call_waiting_type, /* 87 */ + scheme_undefined_type, /* 88 */ + scheme_struct_property_type, /* 89 */ + scheme_multiple_values_type, /* 90 */ + scheme_placeholder_type, /* 91 */ + scheme_case_lambda_sequence_type, /* 92 */ + scheme_begin0_sequence_type, /* 93 */ + scheme_rename_table_type, /* 94 */ + scheme_module_type, /* 95 */ + scheme_svector_type, /* 96 */ + scheme_lazy_macro_type, /* 97 */ + scheme_resolve_prefix_type, /* 98 */ + scheme_security_guard_type, /* 99 */ + scheme_indent_type, /* 100 */ + scheme_udp_type, /* 101 */ + scheme_udp_evt_type, /* 102 */ + scheme_tcp_accept_evt_type, /* 103 */ + scheme_id_macro_type, /* 104 */ + scheme_evt_set_type, /* 105 */ + scheme_wrap_evt_type, /* 106 */ + scheme_handle_evt_type, /* 107 */ + scheme_nack_guard_evt_type, /* 108 */ + scheme_semaphore_repost_type, /* 109 */ + scheme_channel_type, /* 110 */ + scheme_channel_put_type, /* 111 */ + scheme_thread_resume_type, /* 112 */ + scheme_thread_suspend_type, /* 113 */ + scheme_thread_dead_type, /* 114 */ + scheme_poll_evt_type, /* 115 */ + scheme_nack_evt_type, /* 116 */ + scheme_module_registry_type, /* 117 */ + scheme_thread_set_type, /* 118 */ + scheme_string_converter_type, /* 119 */ + scheme_alarm_type, /* 120 */ + scheme_thread_cell_type, /* 121 */ + scheme_channel_syncer_type, /* 122 */ + scheme_special_comment_type, /* 123 */ + scheme_write_evt_type, /* 124 */ + scheme_always_evt_type, /* 125 */ + scheme_never_evt_type, /* 126 */ + scheme_progress_evt_type, /* 127 */ + scheme_certifications_type, /* 128 */ + scheme_already_comp_type, /* 129 */ + scheme_readtable_type, /* 130 */ + scheme_intdef_context_type, /* 131 */ + scheme_lexical_rib_type, /* 132 */ + scheme_thread_cell_values_type, /* 133 */ + scheme_global_ref_type, /* 134 */ + scheme_cont_mark_chain_type, /* 135 */ + scheme_raw_pair_type, /* 136 */ #ifdef MZTAG_REQUIRED - _scheme_last_normal_type_, /* 135 */ + _scheme_last_normal_type_, /* 137 */ - scheme_rt_comp_env, /* 136 */ - scheme_rt_constant_binding, /* 137 */ - scheme_rt_resolve_info, /* 138 */ - scheme_rt_optimize_info, /* 139 */ - scheme_rt_compile_info, /* 140 */ - scheme_rt_cont_mark, /* 141 */ - scheme_rt_saved_stack, /* 142 */ - scheme_rt_reply_item, /* 143 */ - scheme_rt_closure_info, /* 144 */ - scheme_rt_overflow, /* 145 */ - scheme_rt_dyn_wind_cell, /* 146 */ - scheme_rt_dyn_wind_info, /* 147 */ - scheme_rt_dyn_wind, /* 148 */ - scheme_rt_dup_check, /* 149 */ - scheme_rt_thread_memory, /* 150 */ - scheme_rt_input_file, /* 151 */ - scheme_rt_input_fd, /* 152 */ - scheme_rt_oskit_console_input, /* 153 */ - scheme_rt_tested_input_file, /* 154 */ - scheme_rt_tested_output_file, /* 155 */ - scheme_rt_indexed_string, /* 156 */ - scheme_rt_output_file, /* 157 */ - scheme_rt_load_handler_data, /* 158 */ - scheme_rt_pipe, /* 159 */ - scheme_rt_beos_process, /* 160 */ - scheme_rt_system_child, /* 161 */ - scheme_rt_tcp, /* 162 */ - scheme_rt_write_data, /* 163 */ - scheme_rt_tcp_select_info, /* 164 */ - scheme_rt_namespace_option, /* 165 */ - scheme_rt_param_data, /* 166 */ - scheme_rt_will, /* 167 */ - scheme_rt_will_registration, /* 168 */ - scheme_rt_struct_proc_info, /* 169 */ - scheme_rt_linker_name, /* 170 */ - scheme_rt_param_map, /* 171 */ - scheme_rt_finalization, /* 172 */ - scheme_rt_finalizations, /* 173 */ - scheme_rt_cpp_object, /* 174 */ - scheme_rt_cpp_array_object, /* 175 */ - scheme_rt_stack_object, /* 176 */ - scheme_rt_preallocated_object, /* 177 */ - scheme_thread_hop_type, /* 178 */ - scheme_rt_srcloc, /* 179 */ - scheme_rt_evt, /* 180 */ - scheme_rt_syncing, /* 181 */ - scheme_rt_comp_prefix, /* 182 */ - scheme_rt_user_input, /* 183 */ - scheme_rt_user_output, /* 184 */ - scheme_rt_compact_port, /* 185 */ - scheme_rt_read_special_dw, /* 186 */ - scheme_rt_regwork, /* 187 */ - scheme_rt_buf_holder, /* 188 */ - scheme_rt_parameterization, /* 189 */ - scheme_rt_print_params, /* 190 */ - scheme_rt_read_params, /* 191 */ - scheme_rt_native_code, /* 192 */ - scheme_rt_native_code_plus_case, /* 193 */ - scheme_rt_jitter_data, /* 194 */ + scheme_rt_comp_env, /* 138 */ + scheme_rt_constant_binding, /* 139 */ + scheme_rt_resolve_info, /* 140 */ + scheme_rt_optimize_info, /* 141 */ + scheme_rt_compile_info, /* 142 */ + scheme_rt_cont_mark, /* 143 */ + scheme_rt_saved_stack, /* 144 */ + scheme_rt_reply_item, /* 145 */ + scheme_rt_closure_info, /* 146 */ + scheme_rt_overflow, /* 147 */ + scheme_rt_dyn_wind_cell, /* 148 */ + scheme_rt_dyn_wind_info, /* 149 */ + scheme_rt_dyn_wind, /* 150 */ + scheme_rt_dup_check, /* 151 */ + scheme_rt_thread_memory, /* 152 */ + scheme_rt_input_file, /* 153 */ + scheme_rt_input_fd, /* 154 */ + scheme_rt_oskit_console_input, /* 155 */ + scheme_rt_tested_input_file, /* 156 */ + scheme_rt_tested_output_file, /* 157 */ + scheme_rt_indexed_string, /* 158 */ + scheme_rt_output_file, /* 159 */ + scheme_rt_load_handler_data, /* 160 */ + scheme_rt_pipe, /* 161 */ + scheme_rt_beos_process, /* 162 */ + scheme_rt_system_child, /* 163 */ + scheme_rt_tcp, /* 164 */ + scheme_rt_write_data, /* 165 */ + scheme_rt_tcp_select_info, /* 166 */ + scheme_rt_namespace_option, /* 167 */ + scheme_rt_param_data, /* 168 */ + scheme_rt_will, /* 169 */ + scheme_rt_will_registration, /* 170 */ + scheme_rt_struct_proc_info, /* 171 */ + scheme_rt_linker_name, /* 172 */ + scheme_rt_param_map, /* 173 */ + scheme_rt_finalization, /* 174 */ + scheme_rt_finalizations, /* 175 */ + scheme_rt_cpp_object, /* 176 */ + scheme_rt_cpp_array_object, /* 177 */ + scheme_rt_stack_object, /* 178 */ + scheme_rt_preallocated_object, /* 179 */ + scheme_thread_hop_type, /* 180 */ + scheme_rt_srcloc, /* 181 */ + scheme_rt_evt, /* 182 */ + scheme_rt_syncing, /* 183 */ + scheme_rt_comp_prefix, /* 184 */ + scheme_rt_user_input, /* 185 */ + scheme_rt_user_output, /* 186 */ + scheme_rt_compact_port, /* 187 */ + scheme_rt_read_special_dw, /* 188 */ + scheme_rt_regwork, /* 189 */ + scheme_rt_buf_holder, /* 190 */ + scheme_rt_parameterization, /* 191 */ + scheme_rt_print_params, /* 192 */ + scheme_rt_read_params, /* 193 */ + scheme_rt_native_code, /* 194 */ + scheme_rt_native_code_plus_case, /* 195 */ + scheme_rt_jitter_data, /* 196 */ #endif _scheme_last_type_ diff --git a/src/mzscheme/src/syntax.c b/src/mzscheme/src/syntax.c index 0b7689faff..2abe237176 100644 --- a/src/mzscheme/src/syntax.c +++ b/src/mzscheme/src/syntax.c @@ -101,7 +101,6 @@ static Scheme_Object *define_syntaxes_execute(Scheme_Object *expr); static Scheme_Object *define_for_syntaxes_execute(Scheme_Object *expr); static Scheme_Object *case_lambda_execute(Scheme_Object *expr); static Scheme_Object *begin0_execute(Scheme_Object *data); -static Scheme_Object *quote_syntax_execute(Scheme_Object *data); static Scheme_Object *bangboxenv_execute(Scheme_Object *data); static Scheme_Object *bangboxvalue_execute(Scheme_Object *data); @@ -139,8 +138,6 @@ static void case_lambda_validate(Scheme_Object *data, Mz_CPort *port, char *stac int num_toplevels, int num_stxes); static void begin0_validate(Scheme_Object *data, Mz_CPort *port, char *stack, int depth, int letlimit, int delta, int num_toplevels, int num_stxes); -static void quote_syntax_validate(Scheme_Object *data, Mz_CPort *port, char *stack, int depth, int letlimit, int delta, - int num_toplevels, int num_stxes); static void bangboxenv_validate(Scheme_Object *data, Mz_CPort *port, char *stack, int depth, int letlimit, int delta, int num_toplevels, int num_stxes); static void bangboxvalue_validate(Scheme_Object *data, Mz_CPort *port, char *stack, int depth, int letlimit, int delta, @@ -153,7 +150,6 @@ static Scheme_Object *define_syntaxes_jit(Scheme_Object *expr); static Scheme_Object *define_for_syntaxes_jit(Scheme_Object *expr); static Scheme_Object *case_lambda_jit(Scheme_Object *expr); static Scheme_Object *begin0_jit(Scheme_Object *data); -static Scheme_Object *quote_syntax_jit(Scheme_Object *data); static Scheme_Object *bangboxvalue_jit(Scheme_Object *data); static Scheme_Object *named_let_syntax (Scheme_Object *form, Scheme_Comp_Env *env, @@ -274,10 +270,6 @@ scheme_init_syntax (Scheme_Env *env) begin0_resolve, begin0_validate, begin0_execute, begin0_jit, begin0_clone, -1); - scheme_register_syntax(QUOTE_SYNTAX_EXPD, - NULL, NULL, quote_syntax_validate, - quote_syntax_execute, quote_syntax_jit, - NULL, 2); scheme_register_syntax(BOXENV_EXPD, NULL, NULL, bangboxenv_validate, @@ -3793,44 +3785,6 @@ unquote_expand(Scheme_Object *form, Scheme_Comp_Env *env, Scheme_Expand_Info *er /* quote-syntax */ /**********************************************************************/ -static Scheme_Object * -quote_syntax_execute(Scheme_Object *obj) -{ - Scheme_Object **globs, *stx; - int i, c, p; - - i = SCHEME_INT_VAL(SCHEME_CAR(obj)); - c = SCHEME_INT_VAL(SCHEME_CADR(obj)); - p = SCHEME_INT_VAL(SCHEME_CDDR(obj)); - - globs = (Scheme_Object **)MZ_RUNSTACK[c]; - stx = globs[i+p+1]; - if (!stx) { - stx = globs[p]; - stx = scheme_add_rename(((Scheme_Object **)SCHEME_CDR(stx))[i], - SCHEME_CAR(stx)); - globs[i+p+1] = stx; - } - return stx; -} - -Scheme_Object *quote_syntax_jit(Scheme_Object *data) -{ - return data; -} - -static void quote_syntax_validate(Scheme_Object *obj, Mz_CPort *port, char *stack, - int depth, int letlimit, int delta, int num_toplevels, int num_stxes) -{ - int i, c, p; - - i = SCHEME_INT_VAL(SCHEME_CAR(obj)); - c = SCHEME_INT_VAL(SCHEME_CADR(obj)); - p = SCHEME_INT_VAL(SCHEME_CDDR(obj)); - - scheme_validate_quote_syntax(c, p, i, port, stack, depth, delta, num_toplevels, num_stxes); -} - static Scheme_Object * quote_syntax_syntax(Scheme_Object *form, Scheme_Comp_Env *env, Scheme_Compile_Info *rec, int drec) { diff --git a/src/mzscheme/src/thread.c b/src/mzscheme/src/thread.c index c2d1487a94..e370c82b67 100644 --- a/src/mzscheme/src/thread.c +++ b/src/mzscheme/src/thread.c @@ -1601,7 +1601,7 @@ static void run_closers(Scheme_Object *o, Scheme_Close_Custodian_Client *f, void { Scheme_Object *l; - for (l = closers; SCHEME_PAIRP(l); l = SCHEME_CDR(l)) { + for (l = closers; SCHEME_RPAIRP(l); l = SCHEME_CDR(l)) { Scheme_Exit_Closer_Func cf; cf = (Scheme_Exit_Closer_Func)SCHEME_CAR(l); cf(o, f, data); @@ -1639,7 +1639,7 @@ void scheme_add_atexit_closer(Scheme_Exit_Closer_Func f) closers = scheme_null; } - closers = scheme_make_pair((Scheme_Object *)f, closers); + closers = scheme_make_raw_pair((Scheme_Object *)f, closers); } void scheme_schedule_custodian_close(Scheme_Custodian *c) @@ -2149,7 +2149,7 @@ void scheme_swap_thread(Scheme_Thread *new_thread) { Scheme_Object *l, *o; Scheme_Closure_Func f; - for (l = thread_swap_callbacks; SCHEME_PAIRP(l); l = SCHEME_CDR(l)) { + for (l = thread_swap_callbacks; SCHEME_RPAIRP(l); l = SCHEME_CDR(l)) { o = SCHEME_CAR(l); f = SCHEME_CLOS_FUNC(o); o = SCHEME_CLOS_DATA(o); @@ -2408,7 +2408,7 @@ static void start_child(Scheme_Thread * volatile child, { Scheme_Object *l, *o; Scheme_Closure_Func f; - for (l = thread_swap_callbacks; SCHEME_PAIRP(l); l = SCHEME_CDR(l)) { + for (l = thread_swap_callbacks; SCHEME_RPAIRP(l); l = SCHEME_CDR(l)) { o = SCHEME_CAR(l); f = SCHEME_CLOS_FUNC(o); o = SCHEME_CLOS_DATA(o); @@ -2628,7 +2628,7 @@ void scheme_add_swap_callback(Scheme_Closure_Func f, Scheme_Object *data) { Scheme_Object *p; - p = scheme_make_pair((Scheme_Object *)f, data); + p = scheme_make_raw_pair((Scheme_Object *)f, data); thread_swap_callbacks = scheme_make_pair(p, thread_swap_callbacks); } @@ -4416,7 +4416,7 @@ static void promote_thread(Scheme_Thread *p, Scheme_Custodian *to_c) /* Otherwise, this is custodian is unrelated to the existing ones. Add it as an extra custodian. */ mref = scheme_add_managed(to_c, (Scheme_Object *)p->mr_hop, NULL, NULL, 0); - l = scheme_make_pair((Scheme_Object *)mref, p->extra_mrefs); + l = scheme_make_raw_pair((Scheme_Object *)mref, p->extra_mrefs); p->extra_mrefs = l; transitive_promote(p, to_c); diff --git a/src/mzscheme/src/type.c b/src/mzscheme/src/type.c index 736b86661a..0efc52d855 100644 --- a/src/mzscheme/src/type.c +++ b/src/mzscheme/src/type.c @@ -93,6 +93,7 @@ scheme_init_type (Scheme_Env *env) set_name(scheme_case_lambda_sequence_type, ""); set_name(scheme_begin0_sequence_type, ""); set_name(scheme_with_cont_mark_type, ""); + set_name(scheme_quote_syntax_type, ""); set_name(scheme_let_value_type, ""); set_name(scheme_let_void_type, ""); @@ -114,6 +115,7 @@ scheme_init_type (Scheme_Env *env) set_name(scheme_tail_call_waiting_type, ""); set_name(scheme_null_type, ""); set_name(scheme_pair_type, ""); + set_name(scheme_raw_pair_type, ""); set_name(scheme_box_type, ""); set_name(scheme_integer_type, ""); set_name(scheme_double_type, ""); @@ -424,6 +426,7 @@ void scheme_register_traversers(void) GC_REG_TRAV(scheme_letrec_type, letrec); GC_REG_TRAV(scheme_let_one_type, let_one); GC_REG_TRAV(scheme_with_cont_mark_type, with_cont_mark); + GC_REG_TRAV(scheme_quote_syntax_type, quotesyntax_obj); GC_REG_TRAV(scheme_module_variable_type, module_var); GC_REG_TRAV(_scheme_values_types_, bad_trav); @@ -466,6 +469,7 @@ void scheme_register_traversers(void) GC_REG_TRAV(scheme_keyword_type, symbol_obj); GC_REG_TRAV(scheme_null_type, char_obj); /* small */ GC_REG_TRAV(scheme_pair_type, cons_cell); + GC_REG_TRAV(scheme_raw_pair_type, cons_cell); GC_REG_TRAV(scheme_vector_type, vector_obj); GC_REG_TRAV(scheme_cpointer_type, cpointer_obj);