diff --git a/src/mred/mredmsw.cxx b/src/mred/mredmsw.cxx index ceb1100e0c..9ca698420b 100644 --- a/src/mred/mredmsw.cxx +++ b/src/mred/mredmsw.cxx @@ -220,7 +220,7 @@ int FindReady(MrEdContext *c, MSG *msg, int remove, MrEdContext **c_return) MSG pmsg; while (PeekMessage(&pmsg, NULL, 0x4000, 0xFFFF, PM_REMOVE)) { found_nothing = 0; - TranslateMessage(&pmsg); + wxTranslateMessage(&pmsg); DispatchMessage(&pmsg); } } @@ -314,7 +314,7 @@ void MrEdDispatchEvent(MSG *msg) fflush(log); #endif - TranslateMessage(msg); + wxTranslateMessage(msg); can_trampoline_win = msg->hwnd; last_msg_time = msg->time; diff --git a/src/mred/mredx.cxx b/src/mred/mredx.cxx index ced983d954..f9964d7525 100644 --- a/src/mred/mredx.cxx +++ b/src/mred/mredx.cxx @@ -702,3 +702,23 @@ wxWindow *wxLocationToWindow(int x, int y) return result; } + +int wxLocaleStringToChar(char *str, int slen) +{ + Scheme_Object *s; + s = scheme_make_locale_string(str); + if (SCHEME_CHAR_STRLEN_VAL(s)) + return SCHEME_CHAR_STR_VAL(s)[0]; + else + return 0; +} + +int wxUTF8StringToChar(char *str, int slen) +{ + mzchar s[1]; + s[0] = 0; + scheme_utf8_decode((unsigned char *)str, 0, slen, + s, 0, 1, + NULL, 0, '?'); + return (int)s[0]; +} diff --git a/src/mred/wxme/wx_keym.cxx b/src/mred/wxme/wx_keym.cxx index ce7e2d345b..1f56bcb09d 100644 --- a/src/mred/wxme/wx_keym.cxx +++ b/src/mred/wxme/wx_keym.cxx @@ -63,6 +63,8 @@ class wxKeycode TF_Flag( metaOn ); TF_Flag( metaOff ); + TF_Flag( checkOther ); + TF_Flag( fullset ); #undef TF_Flag @@ -164,7 +166,7 @@ void wxKeymap::SetBreakSequenceCallback(wxBreakSequenceFunction f, fold(dataold); } -wxKeycode *wxKeymap::FindKey(long code, +wxKeycode *wxKeymap::FindKey(long code, long other_code, Bool shift, Bool ctrl, Bool alt, Bool meta, wxKeycode *prefix) @@ -172,33 +174,38 @@ wxKeycode *wxKeymap::FindKey(long code, wxKeycode *key; wxKeycode *bestKey = NULL; int bestScore = -1; + int iter; if (!keys) return NULL; - key = (wxKeycode *)keys->Get(code); - while (key) { - if (key->code == code - && ((key->shiftOn && shift) - || (key->shiftOff && !shift) - || (!key->shiftOn && !key->shiftOff)) - && ((key->ctrlOn && ctrl) - || (key->ctrlOff && !ctrl) - || (!key->ctrlOn && !key->ctrlOff)) - && ((key->altOn && alt) - || (key->altOff && !alt) - || (!key->altOn && !key->altOff)) - && ((key->metaOn && meta) - || (key->metaOff && !meta) - || (!key->metaOn && !key->metaOff)) - && key->seqprefix == prefix) { - int score = key->score; - if (score > bestScore) { - bestKey = key; - bestScore = score; + for (iter = 0; iter < 2; iter++) { + key = (wxKeycode *)keys->Get(iter ? other_code : code); + while (key) { + if (((key->code == code) + || (key->checkOther + && (key->code == other_code))) + && ((key->shiftOn && shift) + || (key->shiftOff && !shift) + || (!key->shiftOn && !key->shiftOff)) + && ((key->ctrlOn && ctrl) + || (key->ctrlOff && !ctrl) + || (!key->ctrlOn && !key->ctrlOff)) + && ((key->altOn && alt) + || (key->altOff && !alt) + || (!key->altOn && !key->altOff)) + && ((key->metaOn && meta) + || (key->metaOff && !meta) + || (!key->metaOn && !key->metaOff)) + && key->seqprefix == prefix) { + int score = key->score; + if (score > bestScore) { + bestKey = key; + bestScore = score; + } } + key = key->next; } - key = key->next; } return bestKey; @@ -288,7 +295,7 @@ static Keybind keylist[] { NULL, 0 }}; wxKeycode *wxKeymap::MapFunction(long code, int shift, int ctrl, - int alt, int meta, + int alt, int meta, int checkOther, char *fname, wxKeycode *prev, int type) { wxKeycode *key, *newkey; @@ -305,6 +312,7 @@ wxKeycode *wxKeymap::MapFunction(long code, int shift, int ctrl, && (key->altOff == (alt < 0)) && (key->metaOn == (meta > 0)) && (key->metaOff == (meta < 0)) + && (key->checkOther == (checkOther ? 1 : 0)) && key->seqprefix == prev) break; key = key->next; @@ -342,9 +350,9 @@ wxKeycode *wxKeymap::MapFunction(long code, int shift, int ctrl, } if (keystr) - sprintf(buffer, "keymap: \"%s%s\" ", modbuf, keystr); + sprintf(buffer, "keymap: \"%s%s%s\" ", modbuf, checkOther ? "?" : "", keystr); else - sprintf(buffer, "keymap: \"%s%c\" ", modbuf, (char)code); + sprintf(buffer, "keymap: \"%s%s%c\" ", modbuf, checkOther ? "?" : "", (char)code); strcat(buffer, "is already mapped as a "); if (!key->isprefix) @@ -373,6 +381,7 @@ wxKeycode *wxKeymap::MapFunction(long code, int shift, int ctrl, newkey->altOff = (alt < 0); newkey->metaOn = (meta > 0); newkey->metaOff = (meta < 0); + newkey->checkOther = (checkOther ? 1 : 0); newkey->score = ((newkey->shiftOn ? 1 : 0) + (newkey->shiftOff ? 5 : 0) + (newkey->ctrlOn ? 1 : 0) @@ -380,7 +389,8 @@ wxKeycode *wxKeymap::MapFunction(long code, int shift, int ctrl, + (newkey->altOn ? 1 : 0) + (newkey->altOff ? 5 : 0) + (newkey->metaOn ? 1 : 0) - + (newkey->metaOn ? 5 : 0)); + + (newkey->metaOn ? 5 : 0) + + (newkey->checkOther ? 0 : 20)); newkey->fullset = 0; newkey->fname = copystring(fname); newkey->next = NULL; @@ -420,12 +430,15 @@ static long GetCode(unsigned char *keyseq, int *_kp, int *fullset) for (i = 1; keyseq[kp] && (keyseq[kp] != ';'); i++, kp++) { if (i >= MAX_BUF - 1) return 0; - buffer[i] = tolower(keyseq[kp]); + buffer[i] = keyseq[kp]; + if (buffer[i] < 128) + buffer[i] = tolower(buffer[i]); } buffer[i] = 0; code = 0; if (buffer[1]) { - buffer[0] = tolower(buffer[0]); + if (buffer[0] < 128) + buffer[0] = tolower(buffer[0]); for (i = 0; keylist[i].str; i++) { if (!strcmp((char *)buffer, keylist[i].str)) { code = keylist[i].code; @@ -449,7 +462,7 @@ void wxKeymap::MapFunction(char *keys, char *fname) char *keyseq = keys; int num_keys, num_new_keys, kp, start_keys; wxKeycode **key, **new_key; - int shift, ctrl, alt, meta, mod; + int shift, ctrl, alt, meta, mod, checkOther; int part = 1, i, j; long code; int fullset; @@ -466,6 +479,7 @@ void wxKeymap::MapFunction(char *keys, char *fname) shift = ctrl = alt = meta = 0; code = 0; fullset = 0; + checkOther = 0; while (keyseq[kp] && (keyseq[kp] != ';')) { mod = 1; @@ -484,7 +498,11 @@ void wxKeymap::MapFunction(char *keys, char *fname) kp++; } else if (keyseq[kp + 1] == ':') { do_mod: - switch (tolower(keyseq[kp])) { + unsigned char mch; + mch = keyseq[kp]; + if (mch < 128) + mch = tolower(mch); + switch (mch) { case 's': shift = mod; break; @@ -510,6 +528,14 @@ void wxKeymap::MapFunction(char *keys, char *fname) case 'a': alt = mod; break; + case '?': + if (mod == 1) { + checkOther = 1; + } else { + errstr = "cannot negate ? modifier"; + goto key_error; + } + break; default: errstr = "bad modifier"; goto key_error; @@ -527,10 +553,16 @@ void wxKeymap::MapFunction(char *keys, char *fname) } if (code) { - if ((code > 0) && (code < 256) && isalpha(code)) { - if (shift > 0) - code = toupper(code); - else if (isupper(code)) + if ((code > 0) && (code < 127) && isalpha(code)) { + if (shift > 0) { +#ifdef wx_mac + if (!meta) +#endif +#ifdef wx_msw + if (!ctrl || meta) +#endif + code = toupper(code); + } else if (isupper(code)) shift = TRUE; } @@ -539,7 +571,7 @@ void wxKeymap::MapFunction(char *keys, char *fname) for (i = 0, j = 0; i < num_keys; i++) { wxKeycode *mf; - mf = MapFunction(code, shift, ctrl, alt, meta, fname, key[i], + mf = MapFunction(code, shift, ctrl, alt, meta, checkOther, fname, key[i], keyseq[kp] ? wxKEY_PREFIX : wxKEY_FINAL); mf->fullset = fullset; new_key[j++] = mf; @@ -570,13 +602,13 @@ void wxKeymap::MapFunction(char *keys, char *fname) wxsKeymapError(buffer); } -int wxKeymap::HandleEvent(long code, Bool shift, Bool ctrl, +int wxKeymap::HandleEvent(long code, long other_code, Bool shift, Bool ctrl, Bool alt, Bool meta, int score, char **fname, int *fullset) { wxKeycode *key; - key = FindKey(code, shift, ctrl, alt, meta, prefix); + key = FindKey(code, other_code, shift, ctrl, alt, meta, prefix); prefix = NULL; @@ -595,13 +627,13 @@ int wxKeymap::HandleEvent(long code, Bool shift, Bool ctrl, return 0; } -int wxKeymap::GetBestScore(long code, Bool shift, Bool ctrl, +int wxKeymap::GetBestScore(long code, long other_code, Bool shift, Bool ctrl, Bool alt, Bool meta) { wxKeycode *key; int s, i; - key = FindKey(code, shift, ctrl, alt, meta, prefix); + key = FindKey(code, other_code, shift, ctrl, alt, meta, prefix); if (key) s = key->score; @@ -610,7 +642,7 @@ int wxKeymap::GetBestScore(long code, Bool shift, Bool ctrl, for (i = 0; i < chainCount; i++) { int r; - r = chainTo[i]->GetBestScore(code, shift, ctrl, alt, meta); + r = chainTo[i]->GetBestScore(code, other_code, shift, ctrl, alt, meta); if (r > s) s = r; } @@ -648,6 +680,7 @@ Bool wxKeymap::HandleKeyEvent(UNKNOWN_OBJ media, wxKeyEvent *event) int wxKeymap::GetBestScore(wxKeyEvent *event) { return GetBestScore(event->keyCode, + event->otherKeyCode, event->shiftDown, event->controlDown, event->altDown, @@ -703,6 +736,7 @@ int wxKeymap::ChainHandleKeyEvent(UNKNOWN_OBJ media, wxKeyEvent *event, return OtherHandleKeyEvent(media, event, grab, grabData, -1, score); if (HandleEvent(event->keyCode, + event->otherKeyCode, event->shiftDown, event->controlDown, event->altDown, @@ -794,7 +828,8 @@ int wxKeymap::GetBestScore(wxMouseEvent *event) } } - return GetBestScore(code, + return GetBestScore(code, + -1, event->shiftDown, event->controlDown, event->altDown, @@ -895,6 +930,7 @@ int wxKeymap::ChainHandleMouseEvent(UNKNOWN_OBJ media, wxMouseEvent *event, do { if (HandleEvent(code, + -1, event->shiftDown, event->controlDown, event->altDown, diff --git a/src/mred/wxme/wx_keym.h b/src/mred/wxme/wx_keym.h index 5917975fae..4c981aca50 100644 --- a/src/mred/wxme/wx_keym.h +++ b/src/mred/wxme/wx_keym.h @@ -62,10 +62,10 @@ class wxKeymap : public wxObject wxBreakSequenceFunction onBreak; void *onBreakData; - class wxKeycode *FindKey(long, Bool, Bool, Bool, Bool, class wxKeycode *); - int HandleEvent(long code, Bool shift, Bool ctrl, Bool alt, Bool meta, + class wxKeycode *FindKey(long, long, Bool, Bool, Bool, Bool, class wxKeycode *); + int HandleEvent(long code, long, Bool shift, Bool ctrl, Bool alt, Bool meta, int score, char **fname, int *fullset); - int GetBestScore(long code, Bool shift, Bool ctrl, Bool alt, Bool meta); + int GetBestScore(long code, long, Bool shift, Bool ctrl, Bool alt, Bool meta); Bool CycleCheck(wxKeymap *km); @@ -104,7 +104,7 @@ class wxKeymap : public wxObject void SetBreakSequenceCallback(wxBreakSequenceFunction f, void *data); class wxKeycode *MapFunction(long code, int shift, int ctrl, - int alt, int meta, + int alt, int meta, int check_alt, char *fname, class wxKeycode *prevkey=NULL, int keytype = wxKEY_FINAL); void MapFunction(char *keyname, char *fname); diff --git a/src/mred/wxs/wxs_evnt.cxx b/src/mred/wxs/wxs_evnt.cxx index 491b1a1ca8..cc7ae65023 100644 --- a/src/mred/wxs/wxs_evnt.cxx +++ b/src/mred/wxs/wxs_evnt.cxx @@ -1458,6 +1458,10 @@ static Scheme_Object *bundle_symset_keyCode(int v) { } +static long GetOtherKey(wxKeyEvent *k) { return k->otherKeyCode; } +static void SetOtherKey(wxKeyEvent *k, long c) { k->otherKeyCode = c; } + + @@ -1494,6 +1498,50 @@ os_wxKeyEvent::~os_wxKeyEvent() objscheme_destroy(this, (Scheme_Object *) __gc_external); } +static Scheme_Object *os_wxKeyEventSetOtherKey(int n, Scheme_Object *p[]) +{ + WXS_USE_ARGUMENT(n) WXS_USE_ARGUMENT(p) + REMEMBER_VAR_STACK(); + objscheme_check_valid(os_wxKeyEvent_class, "set-other-shift-key-code in key-event%", n, p); + long x0 INIT_NULLED_OUT; + + SETUP_VAR_STACK_REMEMBERED(2); + VAR_STACK_PUSH(0, p); + VAR_STACK_PUSH(1, x0); + + + x0 = (SCHEME_FALSEP(p[POFFSET+0]) ? 0 : unbundle_symset_keyCode(p[POFFSET+0], METHODNAME("key-event%","get-other-shift-key-code"))); + + + WITH_VAR_STACK(SetOtherKey(((wxKeyEvent *)((Scheme_Class_Object *)p[0])->primdata), x0)); + + + + READY_TO_RETURN; + return scheme_void; +} + +static Scheme_Object *os_wxKeyEventGetOtherKey(int n, Scheme_Object *p[]) +{ + WXS_USE_ARGUMENT(n) WXS_USE_ARGUMENT(p) + REMEMBER_VAR_STACK(); + long r; + objscheme_check_valid(os_wxKeyEvent_class, "get-other-shift-key-code in key-event%", n, p); + + SETUP_VAR_STACK_REMEMBERED(1); + VAR_STACK_PUSH(0, p); + + + + + r = WITH_VAR_STACK(GetOtherKey(((wxKeyEvent *)((Scheme_Class_Object *)p[0])->primdata))); + + + + READY_TO_RETURN; + return (r ? bundle_symset_keyCode(r) : scheme_false); +} + static Scheme_Object *objscheme_wxKeyEvent_GetkeyCode(int n, Scheme_Object *p[]) { Scheme_Class_Object *cobj INIT_NULLED_OUT; @@ -1842,8 +1890,10 @@ void objscheme_setup_wxKeyEvent(Scheme_Env *env) wxREGGLOB(os_wxKeyEvent_class); - os_wxKeyEvent_class = WITH_VAR_STACK(objscheme_def_prim_class(env, "key-event%", "event%", (Scheme_Method_Prim *)os_wxKeyEvent_ConstructScheme, 16)); + os_wxKeyEvent_class = WITH_VAR_STACK(objscheme_def_prim_class(env, "key-event%", "event%", (Scheme_Method_Prim *)os_wxKeyEvent_ConstructScheme, 18)); + WITH_VAR_STACK(scheme_add_method_w_arity(os_wxKeyEvent_class, "set-other-shift-key-code" " method", (Scheme_Method_Prim *)os_wxKeyEventSetOtherKey, 1, 1)); + WITH_VAR_STACK(scheme_add_method_w_arity(os_wxKeyEvent_class, "get-other-shift-key-code" " method", (Scheme_Method_Prim *)os_wxKeyEventGetOtherKey, 0, 0)); WITH_VAR_STACK(scheme_add_method_w_arity(os_wxKeyEvent_class,"get-key-code" " method", (Scheme_Method_Prim *)objscheme_wxKeyEvent_GetkeyCode, 0, 0)); WITH_VAR_STACK(scheme_add_method_w_arity(os_wxKeyEvent_class,"set-key-code" " method", (Scheme_Method_Prim *)objscheme_wxKeyEvent_SetkeyCode, 1, 1)); @@ -1924,6 +1974,43 @@ class wxKeyEvent *objscheme_unbundle_wxKeyEvent(Scheme_Object *obj, const char * } +static int wxKeySymbolToInteger(int v) { return v; } + + + +static Scheme_Object *wxKeyEventGlobalwxKeySymbolToInteger(int n, Scheme_Object *p[]) +{ + WXS_USE_ARGUMENT(n) WXS_USE_ARGUMENT(p) + REMEMBER_VAR_STACK(); + int r; + int x0; + + SETUP_VAR_STACK_REMEMBERED(1); + VAR_STACK_PUSH(0, p); + + + x0 = WITH_VAR_STACK(unbundle_symset_keyCode(p[0+0], NULL)); + + + r = WITH_VAR_STACK(wxKeySymbolToInteger(x0)); + + + + READY_TO_RETURN; + return scheme_make_integer(r); +} + +void objscheme_setup_wxKeyEventGlobal(Scheme_Env *env) +{ + Scheme_Object *functmp INIT_NULLED_OUT; + SETUP_VAR_STACK(1); + VAR_STACK_PUSH(0, env); + functmp = WITH_VAR_STACK(scheme_make_prim_w_arity((Scheme_Prim *)wxKeyEventGlobalwxKeySymbolToInteger, "key-symbol-to-integer", 1, 1)); + WITH_VAR_STACK(scheme_install_xc_global("key-symbol-to-integer", functmp, env)); + READY_TO_RETURN; +} + + static Scheme_Object *mouseEventType_wxEVENT_TYPE_LEFT_DOWN_sym = NULL; static Scheme_Object *mouseEventType_wxEVENT_TYPE_LEFT_UP_sym = NULL; static Scheme_Object *mouseEventType_wxEVENT_TYPE_MIDDLE_DOWN_sym = NULL; diff --git a/src/mred/wxs/wxs_evnt.h b/src/mred/wxs/wxs_evnt.h index 92645eae59..780e669587 100644 --- a/src/mred/wxs/wxs_evnt.h +++ b/src/mred/wxs/wxs_evnt.h @@ -30,6 +30,9 @@ int objscheme_istype_wxKeyEvent(Scheme_Object *obj, const char *stop, int nullOK Scheme_Object *objscheme_bundle_wxKeyEvent(class wxKeyEvent *realobj); class wxKeyEvent *objscheme_unbundle_wxKeyEvent(Scheme_Object *obj, const char *where, int nullOK); #endif +void objscheme_setup_wxKeyEventGlobal(Scheme_Env *env); +#ifndef WXS_SETUP_ONLY +#endif void objscheme_setup_wxMouseEvent(Scheme_Env *env); #ifndef WXS_SETUP_ONLY int objscheme_istype_wxMouseEvent(Scheme_Object *obj, const char *stop, int nullOK); diff --git a/src/mred/wxs/wxs_evnt.xc b/src/mred/wxs/wxs_evnt.xc index 9990a43402..c95afd1d86 100644 --- a/src/mred/wxs/wxs_evnt.xc +++ b/src/mred/wxs/wxs_evnt.xc @@ -220,6 +220,11 @@ wxMouseEvent_ext::wxMouseEvent_ext(int et, int ld, int mdd, int rd, int xv, int @SYM "release" : WXK_RELEASE @ENDSYMBOLS +@MACRO bKeyOrFalse = ({x} ? bundle_symset_keyCode({x}) : scheme_false) +@MACRO ubKeyOrFalse = (SCHEME_FALSEP({x}) ? 0 : unbundle_symset_keyCode({x}, METHODNAME("key-event%","get-other-shift-key-code"))) +static long GetOtherKey(wxKeyEvent *k) { return k->otherKeyCode; } +static void SetOtherKey(wxKeyEvent *k, long c) { k->otherKeyCode = c; } + @CLASSBASE wxKeyEvent=wxKeyEvent_ext "key-event":"event" / nofnl @CREATOR (SYM[keyCode]=0, bool=0, bool=0, bool=0, bool=0, int=0, int=0, ExactLong=0) @@ -235,6 +240,17 @@ wxMouseEvent_ext::wxMouseEvent_ext(int et, int ld, int mdd, int rd, int xv, int @IVAR "x" : int x @IVAR "y" : int y +@ m "get-other-shift-key-code" : long/bKeyOrFalse GetOtherKey(); +@ m "set-other-shift-key-code" : void SetOtherKey(long//ubKeyOrFalse////push); + +@END + +static int wxKeySymbolToInteger(int v) { return v; } + +@GLOBAL wxKeyEventGlobal + +@ "key-symbol-to-integer" : int wxKeySymbolToInteger(SYMZ[keyCode]) + @END @BEGINSYMBOLS mouseEventType > ONE > PRED diff --git a/src/mred/wxs/wxscheme.cxx b/src/mred/wxs/wxscheme.cxx index b6ee46ad79..4844c1f18d 100644 --- a/src/mred/wxs/wxscheme.cxx +++ b/src/mred/wxs/wxscheme.cxx @@ -3261,6 +3261,7 @@ static void wxScheme_Install(Scheme_Env *global_env) objscheme_setup_wxPopupEvent(global_env); objscheme_setup_wxScrollEvent(global_env); objscheme_setup_wxKeyEvent(global_env); + objscheme_setup_wxKeyEventGlobal(global_env); objscheme_setup_wxMouseEvent(global_env); objscheme_setup_wxDC(global_env); objscheme_setup_wxDCGlobal(global_env); diff --git a/src/mzscheme/include/scheme.h b/src/mzscheme/include/scheme.h index 771bf56007..139d882886 100644 --- a/src/mzscheme/include/scheme.h +++ b/src/mzscheme/include/scheme.h @@ -735,8 +735,9 @@ typedef struct { typedef struct Scheme_Hash_Table { Scheme_Inclhash_Object iso; - int size, count, step; - Scheme_Object **keys; + int size; /* power of 2 */ + int count; + Scheme_Object **keys; Scheme_Object **vals; void (*make_hash_indices)(void *v, long *h1, long *h2); int (*compare)(void *v1, void *v2); @@ -755,7 +756,8 @@ typedef struct Scheme_Bucket typedef struct Scheme_Bucket_Table { Scheme_Object so; - int size, count, step; + int size; /* power of 2 */ + int count; Scheme_Bucket **buckets; char weak, with_home; void (*make_hash_indices)(void *v, long *h1, long *h2); diff --git a/src/mzscheme/src/cstartup.inc b/src/mzscheme/src/cstartup.inc index 0247354385..fc2a66f09e 100644 --- a/src/mzscheme/src/cstartup.inc +++ b/src/mzscheme/src/cstartup.inc @@ -1,5 +1,5 @@ { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,51,37,252,132,5,159,32,20,98,158,16,1,20,24, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,52,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, @@ -70,13 +70,13 @@ EVAL_ONE_SIZED_STR((char *)expr, 1424); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,51,80,252,70,10,159,32,20,98,158,16,1,20,24, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,52,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,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,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,20,15,159,33,32,38,27,20,15, +0,11,11,16,1,2,4,33,11,16,3,70,113,117,97,115,105,113,117,111,116, +101,5,63,97,110,100,6,62,111,114,7,16,3,11,11,11,16,3,2,5,2, +6,2,7,32,35,95,16,5,93,2,5,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, @@ -134,7 +134,7 @@ 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,7,2,2,2,4,2,2,98,34,10,33,11,93,159, +2,2,2,7,2,2,2,6,2,2,2,4,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, @@ -146,7 +146,7 @@ 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,54,53,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,6,49,35,34,33,40,39,16,8,48,11,64,102,111,114,109,41,66, +2,104,2,5,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,54,51,43,2, 43,2,43,16,4,47,11,2,9,3,1,7,101,110,118,50,50,54,54,44,16, 6,46,11,2,32,65,108,101,118,101,108,45,3,1,7,101,110,118,50,50,54, @@ -164,7 +164,7 @@ 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,56,52,64,16,4,58, 11,62,113,118,65,3,1,7,101,110,118,50,50,56,53,66,9,11,16,5,93, -2,7,27,20,15,159,33,32,37,89,162,32,33,46,9,224,1,0,87,94,28, +2,6,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, @@ -175,8 +175,8 @@ 100,10,8,33,35,34,33,16,4,8,32,11,2,26,3,1,7,101,110,118,50, 50,56,55,67,16,4,8,31,11,2,32,3,1,7,101,110,118,50,50,56,56, 68,16,4,8,30,11,61,101,69,3,1,7,101,110,118,50,50,56,57,70,9, -18,16,2,158,62,105,102,71,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,20,15,159,33,32,38,89, +18,16,2,158,62,105,102,71,8,33,9,18,16,2,158,2,6,8,33,9,18, +16,2,158,11,8,33,9,11,16,5,93,2,7,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, @@ -192,14 +192,14 @@ 34,11,2,69,3,1,7,101,110,118,50,50,57,51,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,57,52,78,9,18,16,2,158,2, -71,8,39,9,18,16,2,158,2,5,8,39,9,11,93,83,159,32,93,80,159, +71,8,39,9,18,16,2,158,2,7,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, 2642); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,51,44,252,209,4,159,32,20,98,158,16,1,20,24, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,52,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, @@ -262,7 +262,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 1245); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,51,24,252,36,4,159,32,20,98,158,16,1,20,24, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,52,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,98,158,16,9,30,3,2,2,74,105,100,101,110,116,105,102,105,101,114,47, @@ -317,7 +317,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 1072); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,51,29,252,27,4,159,32,20,98,158,16,1,20,24, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,52,29,252,27,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,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,98, 158,16,6,30,3,2,2,1,20,108,105,115,116,45,62,105,109,109,117,116,97, @@ -371,15 +371,15 @@ EVAL_ONE_SIZED_STR((char *)expr, 1063); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,51,102,252,162,11,159,32,20,98,158,16,1,20,24, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,52,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,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, +32,20,98,158,16,0,16,0,11,11,16,0,32,11,16,6,66,108,101,116,47, +101,99,3,74,45,100,101,102,105,110,101,45,115,121,110,116,97,120,4,66,117, +110,108,101,115,115,5,73,100,101,102,105,110,101,45,115,116,114,117,99,116,6, +64,119,104,101,110,7,67,45,100,101,102,105,110,101,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,7,2,5,27,20,15,159,33,32,37,27,89,162,32,33,35,69,109,107, +94,2,8,2,4,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, @@ -407,7 +407,7 @@ 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,51,57,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, +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,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, @@ -415,14 +415,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,52,54,42,16,4,47,11,61,108,43,3,1,7,101,110, 118,50,51,52,55,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, +93,2,5,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,52,57,46,16,4,50, 11,2,43,3,1,7,101,110,118,50,51,53,48,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, +93,158,64,118,111,105,100,48,52,52,18,158,2,0,52,11,16,5,93,2,3, 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, @@ -432,7 +432,7 @@ 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,53,50,50,16,4,54,11,2,43,3,1,7,101,110, 118,50,51,53,51,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,53,52,54,2,54,11,16,5,93,2,8,27, +53,3,1,7,101,110,118,50,51,53,52,54,2,54,11,16,5,93,2,6,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, @@ -492,7 +492,7 @@ 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, +45,116,121,112,101,45,101,114,114,111,114,76,94,2,63,2,6,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,86,3,200,192,33,20, @@ -517,23 +517,23 @@ EVAL_ONE_SIZED_STR((char *)expr, 2990); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,51,18,252,4,1,159,32,20,98,158,16,1,20,24, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,52,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,98,158,16,0,16,0,11,11,16,0,32,11,16,10,64,119,104,101,110, -3,70,113,117,97,115,105,113,117,111,116,101,4,66,117,110,108,101,115,115,5, -74,45,100,101,102,105,110,101,45,115,121,110,116,97,120,6,66,108,101,116,47, -101,99,7,67,45,100,101,102,105,110,101,8,64,99,111,110,100,9,63,97,110, -100,10,73,100,101,102,105,110,101,45,115,116,114,117,99,116,11,62,111,114,12, -16,10,74,35,37,100,101,102,105,110,101,45,101,116,45,97,108,13,71,35,37, -113,113,45,97,110,100,45,111,114,14,2,13,2,13,2,13,2,13,66,35,37, -99,111,110,100,15,2,14,2,13,2,14,16,10,2,3,2,4,2,5,2,6, +32,20,98,158,16,0,16,0,11,11,16,0,32,11,16,10,70,113,117,97,115, +105,113,117,111,116,101,3,66,108,101,116,47,101,99,4,63,97,110,100,5,73, +100,101,102,105,110,101,45,115,116,114,117,99,116,6,64,99,111,110,100,7,67, +45,100,101,102,105,110,101,8,74,45,100,101,102,105,110,101,45,115,121,110,116, +97,120,9,66,117,110,108,101,115,115,10,62,111,114,11,64,119,104,101,110,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,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,14,2,15,2,13,9,0}; +101,114,110,101,108,16,65,35,37,115,116,120,17,2,13,2,15,2,14,9,0}; EVAL_ONE_SIZED_STR((char *)expr, 272); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,51,181,252,166,37,159,32,20,98,158,16,1,20,24, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,52,181,252,166,37,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, @@ -576,14 +576,14 @@ 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,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,16, -2,2,2,6,2,2,2,74,2,2,2,12,2,2,2,8,2,2,2,52,2, -2,2,10,2,2,2,78,2,2,2,54,2,2,2,35,2,2,2,66,2,2, -2,14,2,2,2,70,2,2,2,44,2,2,2,27,2,2,2,62,2,2,2, -56,2,2,2,46,2,2,2,33,2,2,2,25,2,2,2,60,2,2,2,48, -2,2,2,50,2,2,2,68,2,2,2,64,2,2,2,29,2,2,74,115,121, -110,116,97,120,45,109,97,112,112,105,110,103,81,2,2,2,72,2,2,2,4, -2,2,2,58,2,2,2,76,2,2,96,35,33,11,16,0,96,34,8,254,1, +108,108,45,115,99,104,101,109,101,80,9,11,159,2,18,9,11,16,62,2,54, +2,2,2,78,2,2,2,60,2,2,2,68,2,2,2,29,2,2,2,52,2, +2,2,27,2,2,2,50,2,2,2,66,2,2,2,4,2,2,2,72,2,2, +2,33,2,2,2,6,2,2,2,56,2,2,2,74,2,2,2,62,2,2,2, +46,2,2,2,14,2,2,2,16,2,2,2,76,2,2,2,58,2,2,2,48, +2,2,2,64,2,2,2,44,2,2,2,8,2,2,74,115,121,110,116,97,120, +45,109,97,112,112,105,110,103,81,2,2,2,12,2,2,2,35,2,2,2,70, +2,2,2,25,2,2,2,10,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,56,53,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,54, @@ -996,7 +996,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 9650); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,51,133,252,150,15,159,32,20,98,158,16,1,20,24, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,52,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, @@ -1078,7 +1078,7 @@ 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,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,4,2,2,2,5,2,2,2,6,2,2,98,38, +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,54,49,37,16,4,35,11,61,108,38,3,1,7,101,110,118,50,53,54, @@ -1190,25 +1190,25 @@ EVAL_ONE_SIZED_STR((char *)expr, 4002); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,51,68,252,76,7,159,32,20,98,158,16,1,20,24, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,52,68,252,76,7,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,99, +34,11,16,3,71,115,121,110,116,97,120,45,99,97,115,101,7,70,115,121,110, +116,97,120,47,108,111,99,8,72,115,121,110,116,97,120,45,99,97,115,101,42, 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,35, +9,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,199,202,201,198,200,27,20,15,159, +22,90,197,27,248,22,89,198,27,252,22,61,202,200,198,199,201,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,78,23,15,20,15,159,53,36,38,248, -22,87,23,15,248,22,89,23,15,248,22,52,23,15,248,22,90,23,15,20,15, +254,22,62,20,15,159,53,35,38,248,22,52,23,15,20,15,159,53,36,38,248, +22,89,23,15,248,22,78,23,15,248,22,90,23,15,248,22,87,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, @@ -1218,8 +1218,8 @@ 16,6,18,16,2,95,66,115,114,99,116,97,103,23,34,93,8,252,88,7,95, 9,8,252,88,7,69,35,37,115,116,120,99,97,115,101,24,18,100,64,100,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,94,159, +101,116,45,97,108,26,9,11,159,2,24,9,11,16,10,2,8,2,2,2,7, +2,2,2,9,2,2,2,6,2,2,2,4,2,2,98,39,10,33,11,94,159, 64,35,37,115,99,27,9,11,159,2,24,9,11,16,0,96,38,8,254,1,11, 16,0,16,4,37,11,63,115,116,120,28,3,1,7,101,110,118,50,54,50,57, 29,16,12,36,11,3,1,4,103,50,56,52,30,3,1,4,103,50,56,53,31, @@ -1235,10 +1235,10 @@ 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,199,197,198,27,20,15,159,39,32,38,250, +27,248,22,88,197,27,251,22,61,200,198,197,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,78,23,15, -248,22,88,23,15,20,15,159,52,37,38,248,22,87,23,15,20,15,159,45,38, +15,159,52,35,38,248,22,52,23,15,20,15,159,52,36,38,248,22,88,23,15, +248,22,78,23,15,20,15,159,52,37,38,248,22,87,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,96,7,95,9,8,252,96,7,2,24,18, @@ -1249,7 +1249,7 @@ 37,2,38,2,40,3,1,7,101,110,118,50,54,53,53,50,2,50,2,50,2, 50,18,158,2,42,46,18,158,2,43,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,51,46,18,158,2, -42,46,11,16,5,93,2,9,89,162,32,33,55,9,223,0,27,28,248,80,158, +42,46,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,36,248,80,158,42,34, @@ -1258,9 +1258,9 @@ 80,158,37,38,249,22,252,81,3,195,89,162,40,32,32,9,222,11,11,27,20, 15,159,37,32,39,250,22,209,20,15,159,40,33,39,250,22,209,20,15,159,43, 34,39,249,22,60,20,15,159,45,35,39,201,20,15,159,43,36,39,195,27,249, -22,61,195,196,27,20,15,159,38,37,39,250,22,209,20,15,159,41,38,39,250, -22,209,20,15,159,44,39,39,250,22,60,20,15,159,47,40,39,248,22,53,203, -250,22,209,20,15,159,50,41,39,249,22,60,20,15,159,52,42,39,248,22,52, +22,61,196,195,27,20,15,159,38,37,39,250,22,209,20,15,159,41,38,39,250, +22,209,20,15,159,44,39,39,250,22,60,20,15,159,47,40,39,248,22,52,203, +250,22,209,20,15,159,50,41,39,249,22,60,20,15,159,52,42,39,248,22,53, 23,16,20,15,159,50,43,39,20,15,159,44,44,39,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,7,2, 10,2,13,2,15,2,17,30,52,2,11,69,97,112,112,101,110,100,47,35,102, @@ -1283,7 +1283,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 1880); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,51,87,252,121,8,159,32,20,98,158,16,1,20,24, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,52,87,252,121,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, @@ -1346,8 +1346,8 @@ 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,6,2,2,2,10, -2,2,2,4,2,2,2,18,2,2,2,8,2,2,98,35,10,33,11,97,159, +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, @@ -1390,33 +1390,33 @@ EVAL_ONE_SIZED_STR((char *)expr, 2181); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,51,188,252,252,30,159,32,20,98,158,16,1,20,24, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,52,188,252,252,30,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,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,71,115,121,110, -116,97,120,45,99,97,115,101,9,64,119,104,101,110,10,70,113,117,97,115,105, -113,117,111,116,101,11,72,115,121,110,116,97,120,45,114,117,108,101,115,12,66, -115,121,110,116,97,120,13,66,117,110,108,101,115,115,14,63,97,110,100,15,74, -45,100,101,102,105,110,101,45,115,121,110,116,97,120,16,66,108,101,116,47,101, -99,17,75,108,101,116,114,101,99,45,115,121,110,116,97,120,101,115,18,71,119, -105,116,104,45,115,121,110,116,97,120,19,75,115,121,110,116,97,120,45,105,100, -45,114,117,108,101,115,20,73,108,101,116,114,101,99,45,115,121,110,116,97,120, -21,70,115,121,110,116,97,120,47,108,111,99,22,67,45,100,101,102,105,110,101, -23,73,100,101,102,105,110,101,45,115,116,114,117,99,116,24,62,111,114,25,72, -108,101,116,45,115,121,110,116,97,120,101,115,26,72,115,121,110,116,97,120,45, -99,97,115,101,42,27,64,99,111,110,100,28,70,108,101,116,45,115,121,110,116, -97,120,29,16,23,11,70,35,37,119,105,116,104,45,115,116,120,30,68,35,37, -115,116,120,108,111,99,31,74,35,37,100,101,102,105,110,101,45,101,116,45,97, -108,32,71,35,37,113,113,45,97,110,100,45,111,114,33,11,69,35,37,115,116, -120,99,97,115,101,34,2,32,2,33,2,32,2,32,11,2,30,11,11,2,31, -2,32,2,32,2,33,11,2,31,66,35,37,99,111,110,100,35,11,16,23,2, +114,97,116,101,45,116,101,109,112,111,114,97,114,105,101,115,8,70,113,117,97, +115,105,113,117,111,116,101,9,66,108,101,116,47,101,99,10,72,115,121,110,116, +97,120,45,114,117,108,101,115,11,73,100,101,102,105,110,101,45,115,116,114,117, +99,116,12,71,119,105,116,104,45,115,121,110,116,97,120,13,67,45,100,101,102, +105,110,101,14,75,108,101,116,114,101,99,45,115,121,110,116,97,120,101,115,15, +62,111,114,16,75,115,121,110,116,97,120,45,105,100,45,114,117,108,101,115,17, +73,108,101,116,114,101,99,45,115,121,110,116,97,120,18,64,99,111,110,100,19, +63,97,110,100,20,72,115,121,110,116,97,120,45,99,97,115,101,42,21,74,45, +100,101,102,105,110,101,45,115,121,110,116,97,120,22,64,119,104,101,110,23,72, +108,101,116,45,115,121,110,116,97,120,101,115,24,70,115,121,110,116,97,120,47, +108,111,99,25,66,115,121,110,116,97,120,26,66,117,110,108,101,115,115,27,70, +108,101,116,45,115,121,110,116,97,120,28,71,115,121,110,116,97,120,45,99,97, +115,101,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,11,2,32,2,30,2,32,11,2,31,11,11,66,35,37,99, +111,110,100,33,2,31,68,35,37,115,116,120,108,111,99,34,2,32,2,32,11, +2,34,69,35,37,115,116,120,99,97,115,101,35,2,32,11,2,34,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, +28,2,29,34,55,98,16,5,93,2,15,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, @@ -1430,7 +1430,7 @@ 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,200,199,202,201,27,20,15,159,43,33,44,91,159,33,11,90,161,33,32,11, +61,199,201,202,200,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,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, 184,2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193,89,162,32, @@ -1442,8 +1442,8 @@ 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,87,23,16,248,22,88,23,16,20,15,159,46,40,44,248,22,52,205,248, -22,78,205,20,15,159,41,41,44,197,89,162,32,32,33,9,223,0,192,89,162, +248,22,87,23,16,248,22,78,23,16,20,15,159,46,40,44,248,22,88,205,248, +22,52,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, @@ -1453,29 +1453,29 @@ 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,31,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, +120,45,114,111,116,97,116,101,61,12,30,62,2,34,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,111, 117,110,116,45,101,114,114,111,114,65,0,16,10,18,98,64,104,101,114,101,66, -38,98,36,10,32,11,97,159,2,31,9,11,159,2,30,9,11,159,2,34,9, +38,98,36,10,32,11,97,159,2,34,9,11,159,2,30,9,11,159,2,35,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,12,2,2,2,18,2,2,2,4,2,2,2,20,2, -2,2,21,2,2,2,26,2,2,2,29,2,2,98,35,10,33,11,97,159,2, -31,9,11,159,2,30,9,11,159,2,34,9,11,159,2,6,9,11,159,2,67, +101,67,9,11,16,14,2,18,2,2,2,11,2,2,2,24,2,2,2,4,2, +2,2,15,2,2,2,28,2,2,2,17,2,2,98,35,10,33,11,97,159,2, +34,9,11,159,2,30,9,11,159,2,35,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,51,53,69,18,16,2,95,66,115,114,99,116,97, -103,70,39,93,8,252,215,7,95,9,8,252,215,7,2,34,18,16,2,99,2, +103,70,39,93,8,252,215,7,95,9,8,252,215,7,2,35,18,16,2,99,2, 38,44,93,8,252,215,7,16,6,43,11,61,114,71,63,115,114,99,72,3,1, 7,101,110,118,50,55,53,54,73,2,73,16,4,42,11,64,101,120,110,104,74, 3,1,7,101,110,118,50,55,53,55,75,16,4,41,11,63,101,115,99,76,3, 1,7,101,110,118,50,55,53,56,77,16,4,40,11,63,101,120,110,78,3,1, -7,101,110,118,50,55,54,48,79,95,9,8,252,215,7,2,34,18,100,64,100, +7,101,110,118,50,55,54,48,79,95,9,8,252,215,7,2,35,18,100,64,100, 101,115,116,80,47,36,35,34,33,16,12,46,11,3,1,4,103,51,48,52,81, 3,1,4,103,51,48,53,82,3,1,4,103,51,48,54,83,3,1,4,103,51, 48,55,84,3,1,4,103,51,48,56,85,3,1,7,101,110,118,50,55,52,56, 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,52,57,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,21,89,162,32, +2,89,47,18,158,9,47,18,158,2,89,47,11,16,5,93,2,18,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, @@ -1488,7 +1488,7 @@ 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,200,199,202,201,27,20,15,159,43,33, +198,249,80,158,41,42,202,27,251,22,61,199,201,202,200,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,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,184,2,248,22,252,184,2,89,162,32,33, @@ -1499,25 +1499,25 @@ 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,87,23,16,248,22,88,23,16,20,15,159,46,42, -44,248,22,52,205,248,22,78,205,20,15,159,41,43,44,197,89,162,32,32,33, +20,15,159,35,41,44,248,22,87,23,16,248,22,78,23,16,20,15,159,46,42, +44,248,22,88,205,248,22,52,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,54,57,90,18,16,2,95,2,70,50,93,8,252, -230,7,95,9,8,252,230,7,2,34,18,16,2,99,2,38,55,93,8,252,230, +230,7,95,9,8,252,230,7,2,35,18,16,2,99,2,38,55,93,8,252,230, 7,16,6,54,11,2,71,2,72,3,1,7,101,110,118,50,55,56,57,91,2, 91,16,4,53,11,2,74,3,1,7,101,110,118,50,55,57,48,92,16,4,52, 11,2,76,3,1,7,101,110,118,50,55,57,49,93,16,4,51,11,2,78,3, -1,7,101,110,118,50,55,57,51,94,95,9,8,252,230,7,2,34,18,100,2, +1,7,101,110,118,50,55,57,51,94,95,9,8,252,230,7,2,35,18,100,2, 80,58,36,35,34,48,16,12,57,11,3,1,4,103,51,48,57,95,3,1,4, 103,51,49,48,96,3,1,4,103,51,49,49,97,3,1,4,103,51,49,50,98, 3,1,4,103,51,49,51,99,3,1,7,101,110,118,50,55,56,49,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,56,50,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,26, +58,18,158,2,89,58,18,158,9,58,18,158,2,89,58,11,16,5,93,2,24, 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, @@ -1537,7 +1537,7 @@ 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, -205,204,203,202,200,27,20,15,159,45,36,47,91,159,33,11,90,161,33,32,11, +205,202,204,203,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,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, 184,2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193,89,162,32, @@ -1550,7 +1550,7 @@ 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,78,23,15,20,15, +22,78,199,20,15,159,35,42,47,248,22,89,23,15,248,22,87,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, @@ -1558,8 +1558,8 @@ 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,52,23,23,248,22,89,23,23,20,15,159,53,57,47,248,22,87,23,20,248, -22,90,23,20,20,15,159,48,58,47,20,15,159,41,59,47,197,89,162,32,32, +22,52,23,23,248,22,89,23,23,20,15,159,53,57,47,248,22,90,23,20,248, +22,78,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, @@ -1573,13 +1573,13 @@ 56,116,3,1,7,101,110,118,50,56,49,53,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,56,49,54,118,2,118,2,118,2,118,2,118,18,16,2,95,2,70,8,32, -93,8,252,245,7,95,9,8,252,245,7,2,34,18,158,2,80,8,31,18,16, -2,95,2,70,8,33,93,8,252,251,7,95,9,8,252,251,7,2,34,18,16, +93,8,252,245,7,95,9,8,252,245,7,2,35,18,158,2,80,8,31,18,16, +2,95,2,70,8,33,93,8,252,251,7,95,9,8,252,251,7,2,35,18,16, 2,99,2,38,8,38,93,8,252,251,7,16,6,8,37,11,2,71,2,72,3, 1,7,101,110,118,50,56,51,53,119,2,119,16,4,8,36,11,2,74,3,1, 7,101,110,118,50,56,51,54,120,16,4,8,35,11,2,76,3,1,7,101,110, 118,50,56,51,55,121,16,4,8,34,11,2,78,3,1,7,101,110,118,50,56, -51,57,122,95,9,8,252,251,7,2,34,18,102,2,80,8,41,36,35,34,59, +51,57,122,95,9,8,252,251,7,2,35,18,102,2,80,8,41,36,35,34,59, 8,30,8,29,16,4,8,40,11,3,1,4,103,51,50,49,123,3,1,7,101, 110,118,50,56,51,49,124,16,4,8,39,11,2,102,3,1,7,101,110,118,50, 56,51,50,125,18,158,2,89,8,41,18,158,2,36,8,41,18,158,2,89,8, @@ -1594,7 +1594,7 @@ 128,3,1,7,101,110,118,50,56,53,50,129,16,4,8,42,11,65,95,101,108, 115,101,130,3,1,7,101,110,118,50,56,53,51,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,244,7, -2,30,11,16,5,93,2,29,89,162,32,33,50,9,223,0,27,249,22,209,20, +2,30,11,16,5,93,2,28,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, @@ -1607,36 +1607,36 @@ 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,200,201,27,20,15,159,43,33,44,91,159,33,11,90,161,33,32,11, +61,199,201,202,200,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,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, 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,26,94,94,93,2,37,2,39,2,38,2,40,2,41,2, +158,35,43,21,97,2,24,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,88,23,15,248,22,87,204,248,22,78,204,20,15,159,41,42,44,197,89, +20,15,159,40,40,44,248,22,78,199,20,15,159,35,41,44,248,22,87,23,15, +248,22,78,23,15,248,22,88,204,248,22,52,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,53,54,132,18,16,2,95, -2,70,8,48,93,8,252,11,8,95,9,8,252,11,8,2,34,18,16,2,99, +2,70,8,48,93,8,252,11,8,95,9,8,252,11,8,2,35,18,16,2,99, 2,38,8,53,93,8,252,11,8,16,6,8,52,11,2,71,2,72,3,1,7, 101,110,118,50,56,55,54,133,2,133,16,4,8,51,11,2,74,3,1,7,101, 110,118,50,56,55,55,134,16,4,8,50,11,2,76,3,1,7,101,110,118,50, 56,55,56,135,16,4,8,49,11,2,78,3,1,7,101,110,118,50,56,56,48, -136,95,9,8,252,11,8,2,34,18,100,2,80,8,56,36,35,34,8,46,16, +136,95,9,8,252,11,8,2,35,18,100,2,80,8,56,36,35,34,8,46,16, 12,8,55,11,3,1,4,103,51,50,50,137,3,1,4,103,51,50,51,138,3, 1,4,103,51,50,52,139,3,1,4,103,51,50,53,140,3,1,4,103,51,50, 54,141,3,1,7,101,110,118,50,56,54,56,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,54,57,143,2,143,2,143,2,143,2,143,18,158,2,89,8,56,18,158, -2,26,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,12,89,162, +2,24,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,11,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, @@ -1656,7 +1656,7 @@ 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,206,200,203,202,205,27,20,15,159,45,37,46,91,159,33,11,90,161,33, +22,61,203,205,202,206,200,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,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,184,2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193,89, @@ -1665,22 +1665,22 @@ 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,22,2,146,68,116,101,109,112,108,97,116,101,152,2,38,20,15,159, +151,95,2,25,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,52,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, +54,44,46,248,22,90,23,21,20,15,159,54,45,46,20,15,159,54,46,46,248, +22,78,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,78,23,25,248, -22,87,23,25,248,22,90,23,25,20,15,159,47,56,46,20,15,159,41,57,46, +22,87,205,20,15,159,40,54,46,20,15,159,35,55,46,248,22,89,23,25,248, +22,52,23,25,248,22,87,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,25,8,95,9,8,252,25,8,2,34,18,100,2,80, +2,70,8,57,93,8,252,25,8,95,9,8,252,25,8,2,35,18,100,2,80, 8,61,36,35,34,16,4,8,60,11,2,146,3,1,7,101,110,118,50,56,56, 57,154,16,12,8,59,11,3,1,4,103,51,50,55,155,3,1,4,103,51,50, 56,156,3,1,4,103,51,50,57,157,3,1,4,103,51,51,48,158,3,1,4, @@ -1688,26 +1688,26 @@ 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,57,48,54,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,27,8, -95,9,8,252,27,8,2,34,18,158,2,80,8,61,18,16,2,95,2,70,8, -63,93,8,252,30,8,95,9,8,252,30,8,2,34,18,16,2,99,2,38,8, +95,9,8,252,27,8,2,35,18,158,2,80,8,61,18,16,2,95,2,70,8, +63,93,8,252,30,8,95,9,8,252,30,8,2,35,18,16,2,99,2,38,8, 68,93,8,252,30,8,16,6,8,67,11,2,71,2,72,3,1,7,101,110,118, 50,57,50,51,163,2,163,16,4,8,66,11,2,74,3,1,7,101,110,118,50, 57,50,52,164,16,4,8,65,11,2,76,3,1,7,101,110,118,50,57,50,53, 165,16,4,8,64,11,2,78,3,1,7,101,110,118,50,57,50,55,166,95,9, -8,252,30,8,2,34,18,102,2,80,8,71,36,35,34,8,60,8,59,8,58, +8,252,30,8,2,35,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,52,167,3,1,7,101,110,118,50,57, 49,57,168,16,4,8,69,11,2,150,3,1,7,101,110,118,50,57,50,48,169, 18,158,2,89,8,71,18,158,2,145,8,71,18,158,93,158,2,146,8,71,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,22,8,71,18,158,2, +18,158,2,89,8,71,18,158,2,89,8,71,18,158,2,25,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, 26,8,16,4,8,74,11,3,1,8,119,115,116,109,112,51,51,50,170,3,1, 7,101,110,118,50,57,49,51,171,16,4,8,73,11,3,1,4,103,51,51,51, 172,3,1,7,101,110,118,50,57,51,54,173,16,4,8,72,11,2,130,3,1, 7,101,110,118,50,57,51,55,174,9,16,2,158,2,38,8,75,9,8,75,95, -9,8,252,26,8,2,30,11,16,5,93,2,20,89,162,32,33,48,9,223,0, +9,8,252,26,8,2,30,11,16,5,93,2,17,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, @@ -1721,44 +1721,44 @@ 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,202,200,199,201,27,20,15,159,42,34,45,91,159,33,11,90,161, +27,251,22,61,201,199,202,200,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,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,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,22,2,146,2,152, +87,10,2,146,94,2,148,2,38,2,149,94,2,151,95,2,25,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,52,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, +15,159,59,43,45,248,22,87,23,26,20,15,159,59,44,45,20,15,159,59,45, +45,248,22,52,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,78,23,29, -248,22,87,23,29,20,15,159,52,53,45,20,15,159,46,54,45,20,15,159,41, +248,22,78,205,20,15,159,40,51,45,20,15,159,35,52,45,248,22,88,23,29, +248,22,78,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,44,8,95,9,8,252,44,8,2, -34,18,100,2,80,8,80,36,35,34,16,4,8,79,11,2,146,3,1,7,101, +35,18,100,2,80,8,80,36,35,34,16,4,8,79,11,2,146,3,1,7,101, 110,118,50,57,52,48,176,16,10,8,78,11,3,1,4,103,51,51,53,177,3, 1,4,103,51,51,54,178,3,1,4,103,51,51,55,179,3,1,4,103,51,51, 56,180,3,1,7,101,110,118,50,57,53,51,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,53,52, 182,2,182,2,182,2,182,18,16,2,95,2,70,8,81,93,8,252,46,8,95, -9,8,252,46,8,2,34,18,16,2,99,2,38,8,86,93,8,252,46,8,16, +9,8,252,46,8,2,35,18,16,2,99,2,38,8,86,93,8,252,46,8,16, 6,8,85,11,2,71,2,72,3,1,7,101,110,118,50,57,54,48,183,2,183, 16,4,8,84,11,2,74,3,1,7,101,110,118,50,57,54,49,184,16,4,8, 83,11,2,76,3,1,7,101,110,118,50,57,54,50,185,16,4,8,82,11,2, -78,3,1,7,101,110,118,50,57,54,52,186,95,9,8,252,46,8,2,34,18, +78,3,1,7,101,110,118,50,57,54,52,186,95,9,8,252,46,8,2,35,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,22,8,80,18,158,2,146,8,80,18,158,2,89,8,80,18,158,2,89, +158,2,25,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, 8,89,162,32,33,38,9,224,1,2,27,247,22,110,87,94,249,22,3,89,162, @@ -1767,25 +1767,25 @@ 105,102,105,101,114,115,197,27,250,22,116,196,248,22,210,201,9,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,31,98,2,187,2,67,2,6, -2,34,2,30,2,31,0}; +110,101,108,187,2,67,2,6,2,35,2,30,2,34,98,2,187,2,67,2,6, +2,35,2,30,2,34,0}; EVAL_ONE_SIZED_STR((char *)expr, 7944); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,51,102,252,138,12,159,32,20,98,158,16,1,20,24, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,52,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,71,113,117,97, -115,105,115,121,110,116,97,120,8,68,117,110,115,121,110,116,97,120,9,77,117, -110,115,121,110,116,97,120,45,115,112,108,105,99,105,110,103,10,75,113,117,97, -115,105,115,121,110,116,97,120,47,108,111,99,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,10,27,89,162, +115,116,63,7,8,16,0,11,11,16,1,2,4,33,11,16,4,75,113,117,97, +115,105,115,121,110,116,97,120,47,108,111,99,8,71,113,117,97,115,105,115,121, +110,116,97,120,9,77,117,110,115,121,110,116,97,120,45,115,112,108,105,99,105, +110,103,10,68,117,110,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,11,2,10,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,98,158,16,0,16,0,11,16,5, -94,2,8,2,11,27,89,162,32,35,42,62,113,113,13,223,1,27,20,15,159, +94,2,9,2,8,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, @@ -1808,11 +1808,11 @@ 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,201,202,200,27,20,15,159,43,40,40,250,22,209,20,15,159, +51,27,250,22,61,202,201,200,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,52,23,15,20,15,159,56,44,40,20,15,159,54, +54,43,40,249,22,60,248,22,78,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, +22,52,23,16,250,22,209,20,15,159,8,28,48,40,249,22,60,20,15,159,8, 30,49,40,248,22,80,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, @@ -1875,7 +1875,7 @@ 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,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,4,2,2,2,9,2,2,2,10,2,2,2,8,2,2,2,11,2,2,98, +2,8,2,2,2,4,2,2,2,9,2,2,2,10,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, @@ -1883,7 +1883,7 @@ 104,101,114,101,45,115,116,120,45,3,1,7,101,110,118,50,57,56,55,46,16, 4,40,11,2,14,3,1,7,101,110,118,50,57,56,56,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,56,57,50,2,50,2,50,2,50,18,158,2,9,42,18,158,2,9,42, +50,57,56,57,50,2,50,2,50,2,50,18,158,2,11,42,18,158,2,11,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,52,49,51,3,1,4,103,51,52,50,52,3,1,7,101,110, 118,51,48,49,48,53,2,53,16,6,44,11,61,120,54,64,114,101,115,116,55, @@ -1900,12 +1900,12 @@ 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,10,42,18,158, -2,8,42,18,106,2,9,58,36,35,34,33,41,40,39,16,4,57,11,3,1, +2,9,42,18,106,2,11,58,36,35,34,33,41,40,39,16,4,57,11,3,1, 4,103,51,51,57,72,3,1,7,101,110,118,51,48,53,55,73,16,4,56,11, 65,95,101,108,115,101,74,3,1,7,101,110,118,51,48,53,56,75,16,4,55, 11,2,19,3,1,7,101,110,118,51,48,54,49,76,16,4,54,11,61,108,77, 3,1,7,101,110,118,51,48,54,50,78,16,4,53,11,61,97,79,3,1,7, -101,110,118,51,48,54,51,80,18,158,2,8,58,18,158,2,10,58,18,16,2, +101,110,118,51,48,54,51,80,18,158,2,9,58,18,158,2,10,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,55,53,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, @@ -1929,14 +1929,14 @@ EVAL_ONE_SIZED_STR((char *)expr, 3222); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,51,165,252,67,26,159,32,20,98,158,16,1,20,24, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,52,165,252,57,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,77,100,101,102,105,110,101,45,102,111,114, -45,115,121,110,116,97,120,3,76,98,101,103,105,110,45,102,111,114,45,115,121, -110,116,97,120,4,66,100,101,102,105,110,101,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,5,2,6,2,3,27,89,162,32,33,34,62, +16,0,11,11,16,0,32,11,16,4,73,100,101,102,105,110,101,45,115,121,110, +116,97,120,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,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,3,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,83,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, @@ -1963,13 +1963,13 @@ 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,199,198,27,20,15, -159,46,42,45,250,22,209,20,15,159,49,43,45,249,22,65,248,22,52,199,248, -22,60,248,22,53,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,198,199,200, +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,198,199, 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,80,205,248,22,52,203,20,15,159,46,49,45,195,250,22,252,39,2,11,6, +159,46,47,45,250,22,62,20,15,159,49,48,45,249,22,65,248,22,80,205,248, +22,52,205,248,22,78,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, @@ -1978,282 +1978,282 @@ 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, +15,159,38,50,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,199,200,27,20, +80,196,91,159,34,11,90,161,34,32,11,248,202,27,249,22,61,200,199,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,198,199,200,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,80,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,52,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, +53,45,199,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,198,200,199,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,78,203,250,22,209,20,15,159,8,28,8,29,45,248, +22,60,248,22,80,23,15,20,15,159,8,28,8,30,45,248,22,52,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,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,40,248,80,158,51,34,195,248,80,158,51,44,248,80,158,52,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,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,33,248,80,158, -52,34,195,27,248,80,158,53,35,196,28,248,80,158,53,36,193,248,80,158,53, -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,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,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,200,198,199,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,78,203,250,22,209,20,15,159,56,8,37,45,248,22,60,248, -22,52,23,15,20,15,159,56,8,38,45,248,22,80,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,49,48,51,44,16,4,33,11,63,115,116,120,45,3,1,7,101,110,118, -51,49,48,52,46,18,102,2,41,43,37,36,35,34,33,16,8,42,11,3,1, -4,103,51,53,53,47,3,1,4,103,51,53,54,48,3,1,4,103,51,53,55, -49,3,1,7,101,110,118,51,49,49,57,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,50,48,54,2,54,2,54,16,6,40,11,2,10,2,11,3,1,7,101, -110,118,51,49,50,53,55,2,55,18,16,2,95,66,115,114,99,116,97,103,56, -44,93,8,252,166,8,95,9,8,252,166,8,69,35,37,115,116,120,99,97,115, -101,57,18,104,64,100,101,115,116,58,47,37,36,35,34,33,42,41,40,16,6, -46,11,3,1,4,103,51,55,48,59,3,1,4,103,51,55,49,60,3,1,7, -101,110,118,51,49,51,50,61,2,61,16,6,45,11,62,105,100,62,63,97,114, -103,63,3,1,7,101,110,118,51,49,51,51,64,2,64,18,158,2,41,47,18, -16,2,95,2,56,48,93,8,252,172,8,95,9,8,252,172,8,2,57,18,158, -2,58,47,18,158,63,99,116,120,65,47,18,158,66,108,97,109,98,100,97,66, -47,18,158,2,65,47,18,16,2,95,2,56,49,93,8,252,173,8,95,9,8, -252,173,8,2,57,18,104,2,58,52,37,36,35,34,33,42,41,40,16,8,51, -11,3,1,4,103,51,54,55,67,3,1,4,103,51,54,56,68,3,1,4,103, -51,54,57,69,3,1,7,101,110,118,51,49,53,56,70,2,70,2,70,16,8, -50,11,2,62,2,63,64,114,101,115,116,71,3,1,7,101,110,118,51,49,53, -57,72,2,72,2,72,18,158,2,41,52,18,16,2,95,2,56,53,93,8,252, -179,8,95,9,8,252,179,8,2,57,18,158,2,58,52,18,158,2,65,52,18, -158,2,66,52,18,158,2,65,52,18,158,2,41,43,18,16,2,95,2,56,54, -93,8,252,191,8,95,9,8,252,191,8,2,57,18,104,2,58,58,37,36,35, -34,33,42,41,16,6,57,11,2,10,2,11,2,55,2,55,16,8,56,11,3, -1,4,103,51,56,48,73,3,1,4,103,51,56,49,74,3,1,4,103,51,56, -50,75,3,1,7,101,110,118,51,49,57,48,76,2,76,2,76,16,8,55,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,57,49,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,50,52,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,210,8,95,9,8,252,210,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, -54,49,82,3,1,4,103,51,54,50,83,3,1,4,103,51,54,51,84,3,1, -7,101,110,118,51,50,54,53,85,2,85,2,85,16,8,8,30,11,2,51,2, -62,2,71,3,1,7,101,110,118,51,50,54,54,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,52,87, -3,1,4,103,51,54,53,88,3,1,4,103,51,54,54,89,3,1,7,101,110, -118,51,51,48,50,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,51,48,51,92,2,92,2,92,18,16, -2,95,2,56,8,36,93,8,252,234,8,95,9,8,252,234,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,49,48,50,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,83,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,196,195,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,52,203,248,22,53,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,50,48,100,16, -4,8,39,11,2,65,3,1,7,101,110,118,51,51,50,49,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,57,102,3,1,7,101,110,118,51,51,50,54,103,16,4,8,42,11, -2,51,3,1,7,101,110,118,51,51,50,55,104,9,8,44,18,16,2,95,2, -56,8,45,93,8,252,248,8,95,9,8,252,248,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,53,105, -3,1,4,103,52,48,54,106,3,1,7,101,110,118,51,51,51,53,107,2,107, -16,6,8,46,11,2,51,64,101,108,101,109,108,3,1,7,101,110,118,51,51, -51,54,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,55,110,3,1,4,103,52,48,56,111,3,1,7,101,110, -118,51,51,52,54,112,2,112,16,6,8,49,11,2,51,2,108,3,1,7,101, -110,118,51,51,52,55,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,53,48,128,18,158,2,0,8,53,18,16,2,95,2,56,8,54,93,8,252, -7,9,95,9,8,252,7,9,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,55,129, -3,1,7,101,110,118,51,51,53,54,130,16,4,8,55,11,61,118,131,3,1, -7,101,110,118,51,51,53,55,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,8,9,95,9,8,252,8,9,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, -53,133,3,1,4,103,52,49,54,134,3,1,7,101,110,118,51,51,54,55,135, -2,135,16,6,8,59,11,2,62,2,91,3,1,7,101,110,118,51,51,54,56, -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,9,9,95,9,8,252,9,9,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,52,138,3,1,7,101,110,118,51,51,55,55,139,16,4,8,63,11,2,131, -3,1,7,101,110,118,51,51,55,56,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,10,9,95,9,8,252,10,9,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,49,51, -143,3,1,7,101,110,118,51,51,56,54,144,16,4,8,67,11,2,131,3,1, -7,101,110,118,51,51,56,55,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,12,9,95,9,8,252,12,9,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,49, -48,146,3,1,7,101,110,118,51,52,48,50,147,16,4,8,71,11,65,111,116, -104,101,114,148,3,1,7,101,110,118,51,52,48,51,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, -1,20,101,108,108,105,112,115,105,115,45,99,111,117,110,116,45,101,114,114,111, -114,152,29,153,11,11,66,115,121,110,116,97,120,154,2,153,73,115,121,110,116, -97,120,45,99,97,115,101,42,42,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,56,50,158,16,4,8,76,11,68,104,101,114,101,45,115,116,120,159,3,1, -6,101,110,118,51,56,52,160,16,4,8,75,11,2,159,2,160,13,16,4,33, -2,153,2,57,11,93,8,252,12,9,16,6,8,74,11,61,114,161,63,115,114, -99,162,3,1,7,101,110,118,51,52,48,54,163,2,163,95,9,8,252,12,9, -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, 6735); +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,40,248,80,158,51,34, +195,248,80,158,51,44,248,80,158,52,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,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,33,248,80,158,52,34,195,27,248,80,158,53,35,196, +28,248,80,158,53,36,193,248,80,158,53,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,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,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,198,200,199,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,52,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,80,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,49,48,51,44,16,4,33,11, +63,115,116,120,45,3,1,7,101,110,118,51,49,48,52,46,18,102,2,41,43, +37,36,35,34,33,16,8,42,11,3,1,4,103,51,53,53,47,3,1,4,103, +51,53,54,48,3,1,4,103,51,53,55,49,3,1,7,101,110,118,51,49,49, +57,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,50,48,54,2,54,2,54,16, +6,40,11,2,10,2,11,3,1,7,101,110,118,51,49,50,53,55,2,55,18, +16,2,95,66,115,114,99,116,97,103,56,44,93,8,252,166,8,95,9,8,252, +166,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,55,48,59,3,1,4,103,51,55,49,60,3,1, +7,101,110,118,51,49,51,50,61,2,61,16,6,45,11,62,105,100,62,63,97, +114,103,63,3,1,7,101,110,118,51,49,51,51,64,2,64,18,158,2,41,48, +18,16,2,95,2,56,49,93,8,252,172,8,95,9,8,252,172,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,173,8,95,9, +8,252,173,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,55,67,3,1,4,103,51,54,56,68,3,1,4, +103,51,54,57,69,3,1,7,101,110,118,51,49,53,56,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, +53,57,72,2,72,2,72,18,158,2,41,53,18,16,2,95,2,56,54,93,8, +252,179,8,95,9,8,252,179,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,191,8,95,9,8,252,191,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,56,48,73,3,1,4, +103,51,56,49,74,3,1,4,103,51,56,50,75,3,1,7,101,110,118,51,49, +57,48,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,57,49,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,50,52,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,210,8,95,9,8,252,210,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,54,49,82,3,1,4,103,51,54,50, +83,3,1,4,103,51,54,51,84,3,1,7,101,110,118,51,50,54,53,85,2, +85,2,85,16,8,8,30,11,2,51,2,62,2,71,3,1,7,101,110,118,51, +50,54,54,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,52,87,3,1,4,103,51,54,53,88,3,1, +4,103,51,54,54,89,3,1,7,101,110,118,51,51,48,50,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,51,48,51,92,2,92,2,92,18,16,2,95,2,56,8,36,93,8,252,234, +8,95,9,8,252,234,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,49,48,50,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,83,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,196,195,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,52,203,248,22,53,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,50,48,100,16,4,8,39,11,2,65,3,1,7,101, +110,118,51,51,50,49,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,57,102,3,1,7,101,110, +118,51,51,50,54,103,16,4,8,42,11,2,51,3,1,7,101,110,118,51,51, +50,55,104,9,8,44,18,16,2,95,2,56,8,45,93,8,252,248,8,95,9, +8,252,248,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,53,105,3,1,4,103,52,48,54,106,3,1, +7,101,110,118,51,51,51,53,107,2,107,16,6,8,46,11,2,51,64,101,108, +101,109,108,3,1,7,101,110,118,51,51,51,54,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,55,110,3,1, +4,103,52,48,56,111,3,1,7,101,110,118,51,51,52,54,112,2,112,16,6, +8,49,11,2,51,2,108,3,1,7,101,110,118,51,51,52,55,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,53,48,128,18,158,2,0,8,53, +18,16,2,95,2,56,8,54,93,8,252,7,9,95,9,8,252,7,9,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,55,129,3,1,7,101,110,118,51,51,53,54, +130,16,4,8,55,11,61,118,131,3,1,7,101,110,118,51,51,53,55,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,8,9,95,9,8,252,8,9, +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,53,133,3,1,4,103,52,49,54,134, +3,1,7,101,110,118,51,51,54,55,135,2,135,16,6,8,59,11,2,62,2, +91,3,1,7,101,110,118,51,51,54,56,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,9,9,95,9,8,252,9, +9,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,52,138,3,1,7,101,110,118,51, +51,55,55,139,16,4,8,63,11,2,131,3,1,7,101,110,118,51,51,55,56, +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,10,9,95,9,8,252,10,9,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,49,51,143,3,1,7,101,110,118,51,51,56, +54,144,16,4,8,67,11,2,131,3,1,7,101,110,118,51,51,56,55,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,12,9,95,9,8,252,12,9, +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,49,48,146,3,1,7,101,110,118,51,52, +48,50,147,16,4,8,71,11,65,111,116,104,101,114,148,3,1,7,101,110,118, +51,52,48,51,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,56,50,158,16,4,8,76,11,68, +104,101,114,101,45,115,116,120,159,3,1,6,101,110,118,51,56,52,160,16,4, +8,75,11,2,159,2,160,13,16,4,33,2,153,2,57,11,93,8,252,12,9, +16,6,8,74,11,61,114,161,63,115,114,99,162,3,1,7,101,110,118,51,52, +48,54,163,2,163,95,9,8,252,12,9,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, 6725); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,51,252,169,1,252,186,86,159,32,20,98,158,16,1, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,52,252,169,1,252,192,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,98,158,16,24,30,3,2,2,74,115,116,114,117,99,116,58,112,114, @@ -2291,13 +2291,13 @@ 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,78,112,97,114,97,109,101,116,101,114,105,122,101,45,98,114,101,97,107, -52,73,119,105,116,104,45,104,97,110,100,108,101,114,115,53,72,112,97,114,97, -109,101,116,101,114,105,122,101,54,69,102,108,117,105,100,45,108,101,116,55,74, -119,105,116,104,45,104,97,110,100,108,101,114,115,42,56,62,100,111,57,65,100, -101,108,97,121,58,64,116,105,109,101,59,66,108,101,116,47,99,99,60,71,115, -101,116,33,45,118,97,108,117,101,115,61,64,99,97,115,101,62,70,108,101,116, -45,115,116,114,117,99,116,63,16,18,11,11,11,11,11,11,11,11,11,11,11, +2,8,69,102,108,117,105,100,45,108,101,116,52,73,119,105,116,104,45,104,97, +110,100,108,101,114,115,53,62,100,111,54,74,119,105,116,104,45,104,97,110,100, +108,101,114,115,42,55,64,116,105,109,101,56,66,108,101,116,47,99,99,57,65, +100,101,108,97,121,58,72,112,97,114,97,109,101,116,101,114,105,122,101,59,78, +112,97,114,97,109,101,116,101,114,105,122,101,45,98,114,101,97,107,60,71,115, +101,116,33,45,118,97,108,117,101,115,61,70,108,101,116,45,115,116,114,117,99, +116,62,64,99,97,115,101,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, @@ -2335,15 +2335,15 @@ 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,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,29,2,2,2,39,2,2,2,16,2,2, -2,60,2,2,2,14,2,2,67,112,114,111,109,105,115,101,85,2,2,2,54, -2,2,2,62,2,2,2,23,2,2,2,53,2,2,2,56,2,2,2,64,2, -2,2,59,2,2,2,52,2,2,2,49,2,2,2,6,2,2,2,57,2,2, -2,8,2,2,2,45,2,2,2,31,2,2,2,10,2,2,2,25,2,2,2, -55,2,2,2,61,2,2,2,33,2,2,2,35,2,2,2,27,2,2,2,41, -2,2,2,63,2,2,2,4,2,2,2,37,2,2,2,43,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, -86,2,2,2,58,2,2,2,12,2,2,98,35,10,33,11,95,159,67,35,37, +104,101,109,101,84,9,11,16,70,2,52,2,2,2,45,2,2,2,16,2,2, +2,10,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,39,2,2,2,56,2,2,2,12,2, +2,2,23,2,2,2,58,2,2,2,27,2,2,2,61,2,2,2,59,2,2, +2,4,2,2,2,31,2,2,2,62,2,2,2,29,2,2,2,63,2,2,2, +57,2,2,2,35,2,2,67,112,114,111,109,105,115,101,86,2,2,2,49,2, +2,2,54,2,2,2,55,2,2,2,37,2,2,2,33,2,2,2,14,2,2, +2,64,2,2,2,53,2,2,2,41,2,2,2,60,2,2,2,6,2,2,2, +43,2,2,2,25,2,2,2,8,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,52,48,56,90,18, @@ -2363,7 +2363,7 @@ 101,110,118,51,52,50,55,108,2,108,2,108,16,6,45,11,2,98,2,99,3, 1,7,101,110,118,51,52,50,56,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, +158,2,101,47,11,16,5,93,2,63,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, 249,80,158,39,36,248,80,158,40,34,195,248,80,158,40,37,248,80,158,41,35, @@ -2379,9 +2379,9 @@ 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,199,198,200,27,20,15,159,43,40, +88,197,249,80,158,41,41,202,27,250,22,61,199,200,198,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,52,204,248,22,78,204,20,15, +62,20,15,159,53,43,43,248,22,78,204,248,22,52,204,248,22,80,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, @@ -2392,7 +2392,7 @@ 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, -200,199,201,202,27,20,15,159,45,45,43,91,159,33,11,90,161,33,32,11,83, +200,201,202,199,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,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,184, 2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193,89,162,32,32, @@ -2401,9 +2401,9 @@ 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,88,23,17,248,22,87, +159,47,50,43,250,22,60,20,15,159,50,51,43,248,22,87,23,17,248,22,78, 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,52,23,17,248,22,78,23,17,20,15,159,47,55,43, +15,159,50,54,43,248,22,52,23,17,248,22,88,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, @@ -2417,26 +2417,26 @@ 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,201,204,202,203,205,206, +22,69,201,38,249,80,158,46,41,23,15,27,253,22,61,205,206,203,201,202,204, 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,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,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,28,9,225,6, +99,2,113,96,2,0,2,114,2,115,2,113,97,2,63,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,249,22,69,23,21,37,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,78, -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,87,23,25,248,22,52,23,25,20,15,159,54,8,47,43,20,15,159,47,8, +32,43,248,22,78,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,248,22,52,23,24,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,249,22,69,23,25, +37,248,22,87,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,249,22, +70,23,26,36,248,22,90,23,25,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, @@ -2478,12 +2478,12 @@ 101,110,118,51,52,52,49,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, -2,126,29,133,11,11,66,115,121,110,116,97,120,134,2,133,73,115,121,110,116, -97,120,45,99,97,115,101,42,42,135,2,133,98,59,10,33,11,95,159,64,35, +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,56,50,137, 16,4,56,11,68,104,101,114,101,45,115,116,120,138,3,1,6,101,110,118,51, -56,52,139,16,4,55,11,2,138,2,139,13,16,4,33,2,133,2,92,11,93, +56,52,139,16,4,55,11,2,138,2,139,13,16,4,33,2,134,2,92,11,93, 8,252,86,9,16,6,54,11,61,114,140,63,115,114,99,141,3,1,7,101,110, 118,51,52,52,53,142,2,142,95,9,8,252,86,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,88, @@ -2523,9 +2523,9 @@ 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, +158,2,101,8,51,18,158,2,101,8,51,18,158,2,63,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, +16,5,93,2,54,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,8,89,162,32,33, @@ -2551,7 +2551,7 @@ 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,206,204,23,17,23,16,202,27,20,15,159,49,42,45,91,159,33,11,90,161, +61,202,206,204,23,17,23,16,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,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,184,2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193, @@ -2563,18 +2563,18 @@ 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,90,23,15,250,22,209,20,15, +20,15,159,35,49,45,248,22,90,23,15,248,22,89,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,52,23,23,20,15,159,54,54,45, +45,249,22,60,20,15,159,56,53,45,248,22,78,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,78,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,89,23,31,20,15,159,8,30,59,45,20,15, +248,22,87,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,52,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,19,23,17,23,22,203,23,21,202,23,15,27,20,15,159,52,8,31, +22,61,23,15,23,19,23,17,203,23,22,202,23,21,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,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,184,2,248,22,252,184,2,89,162,32,33, @@ -2582,17 +2582,17 @@ 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,36,9,225,6,5,4,27,250,22,209,20,15,159,38,8,33,45, +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,248,22,87,23,15,249,22,70,23,16,36,250,22,209,20,15,159,48, -8,39,45,251,22,60,20,15,159,52,8,40,45,248,22,52,23,19,250,22,209, -20,15,159,55,8,41,45,250,22,62,20,15,159,58,8,42,45,248,22,90,23, -25,249,22,70,23,26,37,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,248,22,78,23,26, -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,249,22,69,23,33,38,20,15,159,8,31,8,48,45,20,15,159, +8,38,45,249,22,70,23,16,36,249,22,69,23,16,38,250,22,209,20,15,159, +48,8,39,45,251,22,60,20,15,159,52,8,40,45,248,22,78,23,19,250,22, +209,20,15,159,55,8,41,45,250,22,62,20,15,159,58,8,42,45,248,22,90, +23,25,249,22,70,23,26,37,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,248,22,87,23, +26,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,52,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, @@ -2666,655 +2666,656 @@ 11,2,58,63,101,120,112,228,3,1,7,101,110,118,51,54,54,51,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,85,27,247,22,252,88,3,253,22,60,248, +158,2,101,8,88,11,16,5,93,2,86,27,247,22,252,88,3,253,22,60,248, 199,20,15,159,40,32,32,248,199,20,15,159,40,33,32,248,199,20,15,159,40, 34,32,248,22,60,248,200,20,15,159,41,35,32,248,22,60,248,200,20,15,159, 41,36,32,10,41,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,54,89,162,32,33,55,9,223,0,27,249,22,209, +12,8,89,11,16,5,93,2,59,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,196,195,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,250,22,62,20,15,159,48,36,45,20,15,159,48,37,45,202,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,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,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,198,201, -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,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,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,78,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,80,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,55,49,237,18,16,2,95,2,91,8,92,93,8,252,163,9,95,9,8,252, -163,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,54,238,3,1,4,103,52,55,55,239,3,1,4,103,52,55, -56,240,3,1,7,101,110,118,51,54,55,56,241,2,241,2,241,16,8,8,93, -11,2,98,2,234,2,235,3,1,7,101,110,118,51,54,55,57,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,55,49,243,3,1,4,103,52,55,50,244,3,1,4,103,52,55,51, -245,3,1,4,103,52,55,52,246,3,1,4,103,52,55,53,247,3,1,7,101, -110,118,51,54,57,53,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,57,54,251,2,251,2,251,2,251,2,251,18,16,2,95,2,91, -8,99,93,8,252,166,9,95,9,8,252,166,9,2,92,18,158,2,93,8,98, -18,16,2,95,2,91,8,100,93,8,252,167,9,95,9,8,252,167,9,2,92, -18,158,2,93,8,98,18,16,2,95,2,91,8,101,93,8,252,170,9,95,9, -8,252,170,9,2,92,18,16,2,99,2,113,8,106,93,8,252,170,9,16,6, -8,105,11,2,140,2,141,3,1,7,101,110,118,51,55,49,51,252,252,0,2, -252,252,0,16,4,8,104,11,2,151,3,1,7,101,110,118,51,55,49,52,252, -253,0,16,4,8,103,11,2,153,3,1,7,101,110,118,51,55,49,53,252,254, -0,16,4,8,102,11,2,155,3,1,7,101,110,118,51,55,49,55,252,255,0, -95,9,8,252,170,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,56,49,252,0,1,3,1,7,101, -110,118,51,55,48,57,252,1,1,16,4,8,107,11,2,233,3,1,7,101,110, -118,51,55,49,48,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,165,9,16,4,8,112,11,3,1,8, -119,115,116,109,112,52,55,57,252,3,1,3,1,7,101,110,118,51,55,48,51, -252,4,1,16,4,8,111,11,3,1,4,103,52,56,48,252,5,1,3,1,7, -101,110,118,51,55,50,52,252,6,1,16,4,8,110,11,2,222,3,1,7,101, -110,118,51,55,50,53,252,7,1,9,16,2,158,2,113,8,113,9,8,113,95, -9,8,252,165,9,2,189,11,16,5,93,2,52,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,198,200,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,78,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,52,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,50,56,252,8,1,18,16,2,95, -2,91,8,116,93,8,252,183,9,95,9,8,252,183,9,2,92,18,100,2,93, -8,119,36,35,34,8,114,16,10,8,118,11,3,1,4,103,52,56,50,252,9, -1,3,1,4,103,52,56,51,252,10,1,3,1,4,103,52,56,52,252,11,1, -3,1,4,103,52,56,53,252,12,1,3,1,7,101,110,118,51,55,51,53,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,51,54,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,4,33,2,133,2,92,11,93,8,252,183,9,16,6,8,120,11, -2,140,2,141,3,1,7,101,110,118,51,55,52,50,252,18,1,2,252,18,1, -95,9,8,252,183,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,86,27,247,22,252,88,3,253,22,60,248,199,20,15,159,40,32,32,248,199, -20,15,159,40,33,32,248,199,20,15,159,40,34,32,248,22,60,248,200,20,15, -159,41,35,32,248,22,60,248,200,20,15,159,41,36,32,10,41,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,53,2,56,27, -89,162,32,33,34,62,119,104,252,19,1,223,1,89,162,32,33,53,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,198,197,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,250,22,62,20,15,159,51, -36,44,20,15,159,51,37,44,202,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,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,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,204,202,203,200,201,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,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,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,54,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,52,23,29,248,22,87,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,78,23,28,248, -22,89,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,52,55, -252,41,1,16,4,8,122,11,2,236,3,1,7,101,110,118,51,55,52,56,252, -42,1,18,16,2,95,2,91,8,125,93,8,252,213,9,95,9,8,252,213,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,57,50,252,43,1,3,1,4,103,52,57,51,252,44,1,3,1, -4,103,52,57,52,252,45,1,3,1,7,101,110,118,51,55,53,53,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,53,54,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,55,252,48,1,3,1,4,103,52,56,56,252,49,1,3,1,4,103, -52,56,57,252,50,1,3,1,4,103,52,57,48,252,51,1,3,1,4,103,52, -57,49,252,52,1,3,1,7,101,110,118,51,55,55,50,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,55,51, -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, -222,9,95,9,8,252,222,9,2,92,18,16,2,99,2,113,8,137,93,8,252, -222,9,16,6,8,136,11,2,140,2,141,3,1,7,101,110,118,51,55,57,49, -252,57,1,2,252,57,1,16,4,8,135,11,2,151,3,1,7,101,110,118,51, -55,57,50,252,58,1,16,4,8,134,11,2,153,3,1,7,101,110,118,51,55, -57,51,252,59,1,16,4,8,133,11,2,155,3,1,7,101,110,118,51,55,57, -53,252,60,1,95,9,8,252,222,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, +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,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,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,198,201,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,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,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,78,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,80,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,55,49,237,18,16,2,95,2,91,8,92,93,8, +252,163,9,95,9,8,252,163,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,54,238,3,1,4,103,52,55,55, +239,3,1,4,103,52,55,56,240,3,1,7,101,110,118,51,54,55,56,241,2, +241,2,241,16,8,8,93,11,2,98,2,234,2,235,3,1,7,101,110,118,51, +54,55,57,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,55,49,243,3,1,4,103,52,55,50,244, +3,1,4,103,52,55,51,245,3,1,4,103,52,55,52,246,3,1,4,103,52, +55,53,247,3,1,7,101,110,118,51,54,57,53,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,57,54,251,2,251,2,251,2,251,2, +251,18,16,2,95,2,91,8,99,93,8,252,166,9,95,9,8,252,166,9,2, +92,18,158,2,93,8,98,18,16,2,95,2,91,8,100,93,8,252,167,9,95, +9,8,252,167,9,2,92,18,158,2,93,8,98,18,16,2,95,2,91,8,101, +93,8,252,170,9,95,9,8,252,170,9,2,92,18,16,2,99,2,113,8,106, +93,8,252,170,9,16,6,8,105,11,2,140,2,141,3,1,7,101,110,118,51, +55,49,51,252,252,0,2,252,252,0,16,4,8,104,11,2,151,3,1,7,101, +110,118,51,55,49,52,252,253,0,16,4,8,103,11,2,153,3,1,7,101,110, +118,51,55,49,53,252,254,0,16,4,8,102,11,2,155,3,1,7,101,110,118, +51,55,49,55,252,255,0,95,9,8,252,170,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,56,49, +252,0,1,3,1,7,101,110,118,51,55,48,57,252,1,1,16,4,8,107,11, +2,233,3,1,7,101,110,118,51,55,49,48,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,165,9,16, +4,8,112,11,3,1,8,119,115,116,109,112,52,55,57,252,3,1,3,1,7, +101,110,118,51,55,48,51,252,4,1,16,4,8,111,11,3,1,4,103,52,56, +48,252,5,1,3,1,7,101,110,118,51,55,50,52,252,6,1,16,4,8,110, +11,2,222,3,1,7,101,110,118,51,55,50,53,252,7,1,9,16,2,158,2, +113,8,113,9,8,113,95,9,8,252,165,9,2,189,11,16,5,93,2,60,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,199,198,200, +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,80,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,52,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,50,56, +252,8,1,18,16,2,95,2,91,8,116,93,8,252,183,9,95,9,8,252,183, +9,2,92,18,100,2,93,8,119,36,35,34,8,114,16,10,8,118,11,3,1, +4,103,52,56,50,252,9,1,3,1,4,103,52,56,51,252,10,1,3,1,4, +103,52,56,52,252,11,1,3,1,4,103,52,56,53,252,12,1,3,1,7,101, +110,118,51,55,51,53,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,51,54,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,4,33,2,134,2,92,11,93,8,252, +183,9,16,6,8,120,11,2,140,2,141,3,1,7,101,110,118,51,55,52,50, +252,18,1,2,252,18,1,95,9,8,252,183,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,27,247,22,252,88,3,253,22,60,248,199,20, +15,159,40,32,32,248,199,20,15,159,40,33,32,248,199,20,15,159,40,34,32, +248,22,60,248,200,20,15,159,41,35,32,248,22,60,248,200,20,15,159,41,36, +32,10,41,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,53,2,55,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, +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,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,201,200,202,203,204,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,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,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,59,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,89,23,29,248,22,90,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,87,23,28,248,22,52,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,78,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,52,55,252,41,1,16,4,8,122, +11,2,236,3,1,7,101,110,118,51,55,52,56,252,42,1,18,16,2,95,2, +91,8,125,93,8,252,213,9,95,9,8,252,213,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,57,50,252, +43,1,3,1,4,103,52,57,51,252,44,1,3,1,4,103,52,57,52,252,45, +1,3,1,7,101,110,118,51,55,53,53,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,53, +54,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,55,252,48,1, +3,1,4,103,52,56,56,252,49,1,3,1,4,103,52,56,57,252,50,1,3, +1,4,103,52,57,48,252,51,1,3,1,4,103,52,57,49,252,52,1,3,1, +7,101,110,118,51,55,55,50,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,55,51,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,222,9,95,9,8,252,222, +9,2,92,18,16,2,99,2,113,8,137,93,8,252,222,9,16,6,8,136,11, +2,140,2,141,3,1,7,101,110,118,51,55,57,49,252,57,1,2,252,57,1, +16,4,8,135,11,2,151,3,1,7,101,110,118,51,55,57,50,252,58,1,16, +4,8,134,11,2,153,3,1,7,101,110,118,51,55,57,51,252,59,1,16,4, +8,133,11,2,155,3,1,7,101,110,118,51,55,57,53,252,60,1,95,9,8, +252,222,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, -252,25,1,8,131,18,158,2,101,8,131,18,158,2,230,8,131,18,158,9,8, +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,59,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,4,33,2,134,2,92,11,93,8,252,222,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,222,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,222,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,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,54,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,4,33,2,133,2,92,11,93,8,252,222,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,222,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,222,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,61,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,201,198,200,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,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,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,80,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,52,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,56,48,52,252, -69,1,18,16,2,95,2,91,8,144,93,8,252,244,9,95,9,8,252,244,9, -2,92,18,100,2,93,8,147,36,35,34,8,142,16,6,8,146,11,3,1,4, -103,53,48,52,252,70,1,3,1,4,103,53,48,53,252,71,1,3,1,7,101, -110,118,51,56,49,48,252,72,1,2,252,72,1,16,6,8,145,11,2,98,2, -235,3,1,7,101,110,118,51,56,49,49,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,4,33,2,133,2,92,11, -93,8,252,244,9,16,6,8,148,11,2,140,2,141,3,1,7,101,110,118,51, -56,49,53,252,75,1,2,252,75,1,95,9,8,252,244,9,2,92,18,158,2, -101,8,147,18,16,2,95,2,91,8,150,93,8,252,245,9,95,9,8,252,245, -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,56,252,76,1,3,1,4,103,52,57,57,252,77,1,3,1,4, -103,53,48,48,252,78,1,3,1,7,101,110,118,51,56,50,53,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,50,54,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,249,9,95,9,8, -252,249,9,2,92,18,158,2,93,8,153,18,16,2,95,2,91,8,155,93,8, -252,252,9,95,9,8,252,252,9,2,92,18,16,2,99,2,113,8,160,93,8, -252,252,9,16,6,8,159,11,2,140,2,141,3,1,7,101,110,118,51,56,52, -51,252,81,1,2,252,81,1,16,4,8,158,11,2,151,3,1,7,101,110,118, -51,56,52,52,252,82,1,16,4,8,157,11,2,153,3,1,7,101,110,118,51, -56,52,53,252,83,1,16,4,8,156,11,2,155,3,1,7,101,110,118,51,56, -52,55,252,84,1,95,9,8,252,252,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,56,252,85, -1,3,1,7,101,110,118,51,56,51,57,252,86,1,16,4,8,161,11,2,252, -62,1,3,1,7,101,110,118,51,56,52,48,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,248,9,16,4,8,166,11,3,1, -8,119,115,116,109,112,53,48,54,252,88,1,3,1,7,101,110,118,51,56,51, -52,252,89,1,16,4,8,165,11,3,1,4,103,53,48,55,252,90,1,3,1, -7,101,110,118,51,56,53,54,252,91,1,16,4,8,164,11,2,222,3,1,7, -101,110,118,51,56,53,55,252,92,1,9,16,2,158,2,113,8,167,9,8,167, -95,9,8,252,248,9,2,189,18,16,2,95,2,91,8,168,93,8,252,255,9, -95,9,8,252,255,9,2,92,18,100,2,93,8,171,36,35,34,8,142,16,8, -8,170,11,3,1,4,103,53,48,49,252,93,1,3,1,4,103,53,48,50,252, -94,1,3,1,4,103,53,48,51,252,95,1,3,1,7,101,110,118,51,56,54, -52,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,54,53,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,60,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,198,200,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,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,78,23,21,20,15,159,8, -28,40,39,248,22,80,23,17,248,22,52,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,55,49,252,98,1,18,16,2,95,2,91,8,174, -93,8,252,9,10,95,9,8,252,9,10,2,92,18,100,2,93,8,177,36,35, -34,8,172,16,10,8,176,11,3,1,4,103,53,48,57,252,99,1,3,1,4, -103,53,49,48,252,100,1,3,1,4,103,53,49,49,252,101,1,3,1,4,103, -53,49,50,252,102,1,3,1,7,101,110,118,51,56,55,56,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,55,57, -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,63,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,201,202, -200,199,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,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,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,78,23,19, -248,22,52,23,19,20,15,159,49,41,41,248,22,87,205,248,22,88,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,56,55,252,110,1,18,16, -2,95,2,91,8,180,93,8,252,22,10,95,9,8,252,22,10,2,92,18,16, -2,99,2,113,8,185,93,8,252,22,10,16,6,8,184,11,2,140,2,141,3, -1,7,101,110,118,51,57,48,52,252,111,1,2,252,111,1,16,4,8,183,11, -2,151,3,1,7,101,110,118,51,57,48,53,252,112,1,16,4,8,182,11,2, -153,3,1,7,101,110,118,51,57,48,54,252,113,1,16,4,8,181,11,2,155, -3,1,7,101,110,118,51,57,48,56,252,114,1,95,9,8,252,22,10,2,92, -18,100,2,93,8,188,36,35,34,8,178,16,12,8,187,11,3,1,4,103,53, -49,51,252,115,1,3,1,4,103,53,49,52,252,116,1,3,1,4,103,53,49, -53,252,117,1,3,1,4,103,53,49,54,252,118,1,3,1,4,103,53,49,55, -252,119,1,3,1,7,101,110,118,51,56,57,54,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, -57,55,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,55,89,162,32,33,54,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,197,198,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,251,22,62,20,15,159,51,36,46,20,15,159,51,37, -46,248,22,53,204,248,22,52,204,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,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,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,203,204, -202,205,200,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,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,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,89,206,248,22,78,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,89,23,37,248,22,89,23,37,248,22,90,23,37,248,22,90,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,52,23, -31,248,22,87,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, +2,101,8,131,11,16,5,93,2,61,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,198,201,200,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,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,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,52,23,20,248,22,80,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,78,206,248,22,52,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,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,57,49,53,252,126,1,18,16,2, -95,2,91,8,191,93,8,252,41,10,95,9,8,252,41,10,2,92,18,100,2, -93,8,194,36,35,34,8,189,16,8,8,193,11,3,1,4,103,53,50,51,252, -127,1,3,1,4,103,53,50,52,252,128,1,3,1,4,103,53,50,53,252,129, -1,3,1,7,101,110,118,51,57,50,50,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,50,51,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,56,252, -132,1,3,1,4,103,53,49,57,252,133,1,3,1,4,103,53,50,48,252,134, -1,3,1,4,103,53,50,49,252,135,1,3,1,4,103,53,50,50,252,136,1, -3,1,7,101,110,118,51,57,51,57,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,52,48,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,44,10,95,9,8,252,44,10,2,92,18,158,2,93,8, -197,18,16,2,95,2,91,8,199,93,8,252,47,10,95,9,8,252,47,10,2, -92,18,16,2,99,2,113,8,204,93,8,252,47,10,16,6,8,203,11,2,140, -2,141,3,1,7,101,110,118,51,57,53,54,252,139,1,2,252,139,1,16,4, -8,202,11,2,151,3,1,7,101,110,118,51,57,53,55,252,140,1,16,4,8, -201,11,2,153,3,1,7,101,110,118,51,57,53,56,252,141,1,16,4,8,200, -11,2,155,3,1,7,101,110,118,51,57,54,48,252,142,1,95,9,8,252,47, -10,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,56,252,143,1,3,1,7,101,110,118,51,57,53, -50,252,144,1,16,4,8,205,11,2,252,122,1,3,1,7,101,110,118,51,57, -53,51,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,4,33,2,133,2,92,11,93,8,252,47, -10,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,54,54, -252,147,1,95,9,8,252,47,10,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,4,33,2,133,2,92,11,93,8,252,47,10,8,211, -8,210,8,209,95,9,8,252,47,10,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,43,10,16,4,8,216,11,3,1,8,119,115,116,109,112,53, -50,54,252,148,1,3,1,7,101,110,118,51,57,52,55,252,149,1,16,4,8, -215,11,3,1,4,103,53,50,55,252,150,1,3,1,7,101,110,118,51,57,55, -49,252,151,1,16,4,8,214,11,2,222,3,1,7,101,110,118,51,57,55,50, -252,152,1,9,16,2,158,2,113,8,217,9,8,217,95,9,8,252,43,10,2, -189,11,16,5,93,2,59,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, +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,195,196,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,53,203,248,22,52,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,56,48,52,252,69,1,18,16,2,95,2, +91,8,144,93,8,252,244,9,95,9,8,252,244,9,2,92,18,100,2,93,8, +147,36,35,34,8,142,16,6,8,146,11,3,1,4,103,53,48,52,252,70,1, +3,1,4,103,53,48,53,252,71,1,3,1,7,101,110,118,51,56,49,48,252, +72,1,2,252,72,1,16,6,8,145,11,2,98,2,235,3,1,7,101,110,118, +51,56,49,49,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,4,33,2,134,2,92,11,93,8,252,244,9,16,6, +8,148,11,2,140,2,141,3,1,7,101,110,118,51,56,49,53,252,75,1,2, +252,75,1,95,9,8,252,244,9,2,92,18,158,2,101,8,147,18,16,2,95, +2,91,8,150,93,8,252,245,9,95,9,8,252,245,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,56,252,76, +1,3,1,4,103,52,57,57,252,77,1,3,1,4,103,53,48,48,252,78,1, +3,1,7,101,110,118,51,56,50,53,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, +50,54,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,249,9,95,9,8,252,249,9,2,92,18,158, +2,93,8,153,18,16,2,95,2,91,8,155,93,8,252,252,9,95,9,8,252, +252,9,2,92,18,16,2,99,2,113,8,160,93,8,252,252,9,16,6,8,159, +11,2,140,2,141,3,1,7,101,110,118,51,56,52,51,252,81,1,2,252,81, +1,16,4,8,158,11,2,151,3,1,7,101,110,118,51,56,52,52,252,82,1, +16,4,8,157,11,2,153,3,1,7,101,110,118,51,56,52,53,252,83,1,16, +4,8,156,11,2,155,3,1,7,101,110,118,51,56,52,55,252,84,1,95,9, +8,252,252,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,56,252,85,1,3,1,7,101,110,118, +51,56,51,57,252,86,1,16,4,8,161,11,2,252,62,1,3,1,7,101,110, +118,51,56,52,48,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,248,9,16,4,8,166,11,3,1,8,119,115,116,109,112,53, +48,54,252,88,1,3,1,7,101,110,118,51,56,51,52,252,89,1,16,4,8, +165,11,3,1,4,103,53,48,55,252,90,1,3,1,7,101,110,118,51,56,53, +54,252,91,1,16,4,8,164,11,2,222,3,1,7,101,110,118,51,56,53,55, +252,92,1,9,16,2,158,2,113,8,167,9,8,167,95,9,8,252,248,9,2, +189,18,16,2,95,2,91,8,168,93,8,252,255,9,95,9,8,252,255,9,2, +92,18,100,2,93,8,171,36,35,34,8,142,16,8,8,170,11,3,1,4,103, +53,48,49,252,93,1,3,1,4,103,53,48,50,252,94,1,3,1,4,103,53, +48,51,252,95,1,3,1,7,101,110,118,51,56,54,52,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,54,53,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,57,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, +198,199,200,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,80,23,21,20,15,159,8,28,40,39,248,22,78,23, +17,248,22,52,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,55,49,252,98,1,18,16,2,95,2,91,8,174,93,8,252,9,10,95,9, +8,252,9,10,2,92,18,100,2,93,8,177,36,35,34,8,172,16,10,8,176, +11,3,1,4,103,53,48,57,252,99,1,3,1,4,103,53,49,48,252,100,1, +3,1,4,103,53,49,49,252,101,1,3,1,4,103,53,49,50,252,102,1,3, +1,7,101,110,118,51,56,55,56,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,55,57,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,62,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,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,55, -53,252,153,1,18,16,2,95,2,91,8,220,93,8,252,58,10,95,9,8,252, -58,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,57,252,154,1,3,1,4,103,53,51,48,252,155,1,3,1, -4,103,53,51,49,252,156,1,3,1,7,101,110,118,51,57,56,49,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,56,50,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,4,33,2,133,2,92,11,93,8,252,58,10,16,6,8, -224,11,2,140,2,141,3,1,7,101,110,118,51,57,56,55,252,164,1,2,252, -164,1,95,9,8,252,58,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,158,66,112,114,105, -110,116,102,252,165,1,8,223,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,158,2,252,159,1,8,223,158,2, -252,160,1,8,223,158,2,252,161,1,8,223,8,223,9,16,2,158,95,158,2, -252,38,1,8,223,158,2,252,39,1,8,223,158,2,112,8,223,8,223,9,8, -225,95,9,8,252,58,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,85,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,86,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,86,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, 22216); +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,202,201,199,200,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,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,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,52,23,19,248,22,78,23,19,20,15, +159,49,41,41,248,22,88,205,248,22,87,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,56,55,252,110,1,18,16,2,95,2,91,8,180,93, +8,252,22,10,95,9,8,252,22,10,2,92,18,16,2,99,2,113,8,185,93, +8,252,22,10,16,6,8,184,11,2,140,2,141,3,1,7,101,110,118,51,57, +48,52,252,111,1,2,252,111,1,16,4,8,183,11,2,151,3,1,7,101,110, +118,51,57,48,53,252,112,1,16,4,8,182,11,2,153,3,1,7,101,110,118, +51,57,48,54,252,113,1,16,4,8,181,11,2,155,3,1,7,101,110,118,51, +57,48,56,252,114,1,95,9,8,252,22,10,2,92,18,100,2,93,8,188,36, +35,34,8,178,16,12,8,187,11,3,1,4,103,53,49,51,252,115,1,3,1, +4,103,53,49,52,252,116,1,3,1,4,103,53,49,53,252,117,1,3,1,4, +103,53,49,54,252,118,1,3,1,4,103,53,49,55,252,119,1,3,1,7,101, +110,118,51,56,57,54,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,57,55,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,52, +89,162,32,33,54,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,197,198,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, +251,22,62,20,15,159,51,36,46,20,15,159,51,37,46,248,22,53,204,248,22, +52,204,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, +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,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,203,205,202,204,200,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, +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,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,89,206,248,22,90,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,89,23,37, +248,22,89,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,52,23,31,248,22,87,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,57,49,53,252,126,1,18,16,2,95,2,91,8,191,93,8, +252,41,10,95,9,8,252,41,10,2,92,18,100,2,93,8,194,36,35,34,8, +189,16,8,8,193,11,3,1,4,103,53,50,51,252,127,1,3,1,4,103,53, +50,52,252,128,1,3,1,4,103,53,50,53,252,129,1,3,1,7,101,110,118, +51,57,50,50,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,50,51,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,56,252,132,1,3,1,4,103,53, +49,57,252,133,1,3,1,4,103,53,50,48,252,134,1,3,1,4,103,53,50, +49,252,135,1,3,1,4,103,53,50,50,252,136,1,3,1,7,101,110,118,51, +57,51,57,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,52,48,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,44, +10,95,9,8,252,44,10,2,92,18,158,2,93,8,197,18,16,2,95,2,91, +8,199,93,8,252,47,10,95,9,8,252,47,10,2,92,18,16,2,99,2,113, +8,204,93,8,252,47,10,16,6,8,203,11,2,140,2,141,3,1,7,101,110, +118,51,57,53,54,252,139,1,2,252,139,1,16,4,8,202,11,2,151,3,1, +7,101,110,118,51,57,53,55,252,140,1,16,4,8,201,11,2,153,3,1,7, +101,110,118,51,57,53,56,252,141,1,16,4,8,200,11,2,155,3,1,7,101, +110,118,51,57,54,48,252,142,1,95,9,8,252,47,10,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,56,252,143,1,3,1,7,101,110,118,51,57,53,50,252,144,1,16,4,8, +205,11,2,252,122,1,3,1,7,101,110,118,51,57,53,51,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,4,33,2,134,2,92,11,93,8,252,47,10,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,54,54,252,147,1,95,9,8,252, +47,10,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, +4,33,2,134,2,92,11,93,8,252,47,10,8,211,8,210,8,209,95,9,8, +252,47,10,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,43,10, +16,4,8,216,11,3,1,8,119,115,116,109,112,53,50,54,252,148,1,3,1, +7,101,110,118,51,57,52,55,252,149,1,16,4,8,215,11,3,1,4,103,53, +50,55,252,150,1,3,1,7,101,110,118,51,57,55,49,252,151,1,16,4,8, +214,11,2,222,3,1,7,101,110,118,51,57,55,50,252,152,1,9,16,2,158, +2,113,8,217,9,8,217,95,9,8,252,43,10,2,189,11,16,5,93,2,56, +89,162,32,33,8,41,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,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,198,197,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, +250,22,62,20,15,159,8,39,43,39,20,15,159,8,39,44,39,23,31,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,55,53,252,153,1,18,16,2,95,2,91,8,220,93,8,252, +58,10,95,9,8,252,58,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,57,252,154,1,3,1,4,103,53,51, +48,252,155,1,3,1,4,103,53,51,49,252,156,1,3,1,7,101,110,118,51, +57,56,49,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,56,50,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,4,33,2,134,2,92,11,93,8, +252,58,10,16,6,8,224,11,2,140,2,141,3,1,7,101,110,118,51,57,56, +55,252,164,1,2,252,164,1,95,9,8,252,58,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,158,66,112,114,105,110,116,102,252,165,1,8,223,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,158,2,252, +159,1,8,223,158,2,252,160,1,8,223,158,2,252,161,1,8,223,8,223,9, +16,2,158,95,158,2,252,38,1,8,223,158,2,252,39,1,8,223,158,2,112, +8,223,8,223,9,8,225,95,9,8,252,58,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, 22222); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,51,252,150,1,252,119,49,159,32,20,98,158,16,1, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,52,252,150,1,252,119,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, @@ -3385,27 +3386,27 @@ 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,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,199,200, +209,20,15,159,42,35,38,249,22,209,205,247,22,48,27,252,22,61,199,200,202, 198,201,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,87, +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,78,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, +22,60,248,22,52,23,27,250,22,209,20,15,159,8,38,49,38,250,22,60,20, +15,159,8,41,50,38,248,22,87,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,90,23,48,250, 22,209,20,15,159,8,59,55,38,249,22,60,20,15,159,8,61,56,38,248,22, -87,23,53,20,15,159,8,59,57,38,20,15,159,8,54,58,38,20,15,159,8, +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,90,23,46,248,22,89,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,87,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,78,23,29,20,15,159,8,35,8,40,38,20,15, -159,8,29,8,41,38,248,22,78,23,18,20,15,159,54,8,42,38,20,15,159, +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,52,23,29,20,15,159,8,35,8,40,38,20,15, +159,8,29,8,41,38,248,22,52,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, @@ -3416,15 +3417,15 @@ 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,73,2,2,2,38,2,2,2,40,2,2,2,51,2,2,2,75,2,2,2, -79,2,2,2,8,2,2,2,81,2,2,2,61,2,2,2,83,2,2,2,16, -2,2,2,71,2,2,2,85,2,2,2,57,2,2,2,87,2,2,2,22,2, -2,2,14,2,2,2,89,2,2,2,18,2,2,2,53,2,2,2,24,2,2, -2,95,2,2,2,55,2,2,2,98,2,2,2,59,2,2,2,20,2,2,2, -69,2,2,2,63,2,2,2,32,2,2,2,10,2,2,2,65,2,2,2,30, -2,2,2,97,2,2,2,93,2,2,2,12,2,2,2,6,2,2,2,34,2, -2,2,47,2,2,2,4,2,2,2,28,2,2,2,77,2,2,2,67,2,2, -2,91,2,2,2,49,2,2,2,26,2,2,2,36,2,2,98,35,10,33,11, +2,85,2,2,2,65,2,2,2,6,2,2,2,55,2,2,2,95,2,2,2, +51,2,2,2,36,2,2,2,32,2,2,2,59,2,2,2,91,2,2,2,98, +2,2,2,26,2,2,2,14,2,2,2,10,2,2,2,22,2,2,2,89,2, +2,2,40,2,2,2,73,2,2,2,38,2,2,2,61,2,2,2,67,2,2, +2,20,2,2,2,71,2,2,2,69,2,2,2,53,2,2,2,12,2,2,2, +87,2,2,2,77,2,2,2,75,2,2,2,79,2,2,2,16,2,2,2,30, +2,2,2,93,2,2,2,81,2,2,2,8,2,2,2,57,2,2,2,47,2, +2,2,18,2,2,2,24,2,2,2,28,2,2,2,83,2,2,2,63,2,2, +2,34,2,2,2,4,2,2,2,97,2,2,2,49,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,52,48,49,50,119,18,100,2,112,41,36,35,34, @@ -3443,10 +3444,10 @@ 140,16,4,43,11,67,110,101,119,109,97,114,107,141,3,1,7,101,110,118,52, 48,53,50,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,1,20,101, -108,108,105,112,115,105,115,45,99,111,117,110,116,45,101,114,114,111,114,145,29, -146,11,11,66,115,121,110,116,97,120,147,2,146,73,115,121,110,116,97,120,45, -99,97,115,101,42,42,148,2,146,98,55,10,33,11,95,159,64,35,37,115,99, +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,56,50,150,16,4,52, 11,68,104,101,114,101,45,115,116,120,151,3,1,6,101,110,118,51,56,52,152, @@ -3921,17 +3922,17 @@ EVAL_ONE_SIZED_STR((char *)expr, 12677); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,51,19,252,173,1,159,32,20,98,158,16,1,20,24, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,52,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, +99,97,115,101,45,115,99,104,101,109,101,4,9,11,16,4,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,5,2,2,1,20,35,37,112,108,97,105,110,45,109,111,100,117, +108,101,45,98,101,103,105,110,6,158,68,35,37,107,101,114,110,101,108,7,74, +35,37,109,111,100,117,108,101,45,98,101,103,105,110,8,10,10,32,80,158,32, +32,20,98,158,16,0,16,0,11,11,16,0,32,11,16,1,2,5,16,1,11, +16,1,2,5,32,33,93,16,5,93,2,5,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, @@ -3940,13 +3941,13 @@ 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,51,49,49,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, +18,158,2,6,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,7,2,4,2,3,94,2,7,2,11, 0}; EVAL_ONE_SIZED_STR((char *)expr, 441); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,51,91,252,159,6,159,32,20,98,158,16,1,20,24, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,52,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, @@ -3980,79 +3981,79 @@ 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,64,119,104,101,110,35,66,117,110,108,101,115,115,36,66,108,101,116,47,101, -99,37,72,112,97,114,97,109,101,116,101,114,105,122,101,38,75,108,101,116,114, -101,99,45,115,121,110,116,97,120,101,115,39,73,108,101,116,114,101,99,45,115, -121,110,116,97,120,40,72,108,101,116,45,115,121,110,116,97,120,101,115,41,66, -100,101,102,105,110,101,42,75,115,121,110,116,97,120,45,105,100,45,114,117,108, -101,115,43,74,119,105,116,104,45,104,97,110,100,108,101,114,115,42,44,77,117, -110,115,121,110,116,97,120,45,115,112,108,105,99,105,110,103,45,68,117,110,115, -121,110,116,97,120,46,71,119,105,116,104,45,115,121,110,116,97,120,47,71,113, -117,97,115,105,115,121,110,116,97,120,48,71,115,121,110,116,97,120,45,99,97, -115,101,49,79,109,101,109,111,114,121,45,116,114,97,99,101,45,108,97,109,98, -100,97,50,78,112,97,114,97,109,101,116,101,114,105,122,101,45,98,114,101,97, -107,51,70,108,101,116,45,115,121,110,116,97,120,52,72,115,121,110,116,97,120, -45,114,117,108,101,115,53,66,108,101,116,47,99,99,54,64,99,111,110,100,55, -73,119,105,116,104,45,104,97,110,100,108,101,114,115,56,2,3,77,100,101,102, -105,110,101,45,102,111,114,45,115,121,110,116,97,120,57,73,100,101,102,105,110, -101,45,115,116,114,117,99,116,58,72,115,121,110,116,97,120,45,99,97,115,101, -42,59,70,115,121,110,116,97,120,47,108,111,99,60,66,115,121,110,116,97,120, -61,62,100,111,62,71,115,101,116,33,45,118,97,108,117,101,115,63,70,108,101, -116,45,115,116,114,117,99,116,64,69,102,108,117,105,100,45,108,101,116,65,64, -116,105,109,101,66,73,100,101,102,105,110,101,45,115,121,110,116,97,120,67,76, -98,101,103,105,110,45,102,111,114,45,115,121,110,116,97,120,68,70,113,117,97, -115,105,113,117,111,116,101,69,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,70,64,99,97, -115,101,71,63,97,110,100,72,62,111,114,73,65,100,101,108,97,121,74,75,113, -117,97,115,105,115,121,110,116,97,120,47,108,111,99,75,16,73,73,35,37,109, +34,75,113,117,97,115,105,115,121,110,116,97,120,47,108,111,99,35,70,113,117, +97,115,105,113,117,111,116,101,36,68,117,110,115,121,110,116,97,120,37,71,113, +117,97,115,105,115,121,110,116,97,120,38,71,119,105,116,104,45,115,121,110,116, +97,120,39,72,112,97,114,97,109,101,116,101,114,105,122,101,40,74,119,105,116, +104,45,104,97,110,100,108,101,114,115,42,41,78,112,97,114,97,109,101,116,101, +114,105,122,101,45,98,114,101,97,107,42,70,108,101,116,45,115,116,114,117,99, +116,43,69,102,108,117,105,100,45,108,101,116,44,64,119,104,101,110,45,72,115, +121,110,116,97,120,45,114,117,108,101,115,46,62,111,114,47,77,117,110,115,121, +110,116,97,120,45,115,112,108,105,99,105,110,103,48,2,3,73,100,101,102,105, +110,101,45,115,121,110,116,97,120,49,71,115,121,110,116,97,120,45,99,97,115, +101,50,70,115,121,110,116,97,120,47,108,111,99,51,64,99,97,115,101,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,75,115,121,110,116,97,120,45,105,100,45,114, +117,108,101,115,55,64,116,105,109,101,56,73,100,101,102,105,110,101,45,115,116, +114,117,99,116,57,66,115,121,110,116,97,120,58,63,97,110,100,59,79,109,101, +109,111,114,121,45,116,114,97,99,101,45,108,97,109,98,100,97,60,73,119,105, +116,104,45,104,97,110,100,108,101,114,115,61,71,115,101,116,33,45,118,97,108, +117,101,115,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,65,100,101,108,97,121,64, +73,108,101,116,114,101,99,45,115,121,110,116,97,120,65,66,117,110,108,101,115, +115,66,66,108,101,116,47,101,99,67,64,99,111,110,100,68,62,100,111,69,77, +100,101,102,105,110,101,45,102,111,114,45,115,121,110,116,97,120,70,76,98,101, +103,105,110,45,102,111,114,45,115,121,110,116,97,120,71,66,108,101,116,47,99, +99,72,66,100,101,102,105,110,101,73,70,108,101,116,45,115,121,110,116,97,120, +74,72,115,121,110,116,97,120,45,99,97,115,101,42,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,74,35,37,100,101,102,105,110,101,45,101,116,45,97,108,81,2,81, -2,81,2,76,2,78,2,78,2,78,68,35,37,100,101,102,105,110,101,82,2, -78,2,76,67,35,37,113,113,115,116,120,83,2,83,2,79,2,83,68,35,37, -115,116,120,108,111,99,84,2,77,2,76,2,78,2,78,2,76,66,35,37,99, -111,110,100,85,2,76,68,35,37,107,101,114,110,101,108,86,2,82,2,81,2, -84,2,84,69,35,37,115,116,120,99,97,115,101,87,2,76,2,76,2,76,2, -76,2,76,2,82,2,82,71,35,37,113,113,45,97,110,100,45,111,114,88,72, -35,37,115,116,120,109,122,45,98,111,100,121,89,2,76,2,88,2,88,2,76, -2,83,16,73,2,4,2,5,2,6,2,7,2,8,2,9,2,10,2,11,2, +77,2,77,67,35,37,113,113,115,116,120,81,71,35,37,113,113,45,97,110,100, +45,111,114,82,2,81,2,81,2,79,2,76,2,76,2,76,2,76,2,76,74, +35,37,100,101,102,105,110,101,45,101,116,45,97,108,83,2,78,2,82,2,81, +68,35,37,107,101,114,110,101,108,84,68,35,37,100,101,102,105,110,101,85,68, +35,37,115,116,120,108,111,99,86,2,86,2,76,2,78,2,78,2,78,2,76, +2,83,69,35,37,115,116,120,99,97,115,101,87,2,82,2,77,2,76,2,76, +72,35,37,115,116,120,109,122,45,98,111,100,121,88,2,76,2,78,2,83,2, +83,66,35,37,99,111,110,100,89,2,76,2,85,2,85,2,76,2,85,2,78, +2,86,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, -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,1,20,35,37,112,108,97,105,110,45,109,111,100,117,108,101, -45,98,101,103,105,110,90,2,57,2,58,2,59,2,60,2,61,2,62,2,63, -2,64,2,65,2,66,2,67,2,68,2,69,2,3,2,71,2,72,2,73,2, -74,2,75,8,31,8,73,9,9,100,2,86,2,76,2,77,2,78,2,80,2, -89,2,83,2,82,9,0}; +2,44,2,45,2,46,2,47,2,48,1,20,35,37,112,108,97,105,110,45,109, +111,100,117,108,101,45,98,101,103,105,110,90,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,84,2,76,2,77,2,78,2,80,2, +88,2,81,2,85,9,0}; EVAL_ONE_SIZED_STR((char *)expr, 1707); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,51,121,252,117,15,159,32,20,98,158,16,1,20,24, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,52,121,252,117,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,64,99,97,115,101,5,73,100,101,102,105,110,101,45,115, -121,110,116,97,120,6,66,108,97,109,98,100,97,7,73,108,101,116,114,101,99, -45,115,121,110,116,97,120,8,71,114,53,114,115,58,108,101,116,114,101,99,9, -66,100,101,102,105,110,101,10,65,35,37,97,112,112,11,62,100,111,12,67,35, -37,100,97,116,117,109,13,63,108,101,116,14,70,108,101,116,45,115,121,110,116, -97,120,15,64,99,111,110,100,16,2,0,63,97,110,100,17,65,113,117,111,116, -101,18,62,111,114,19,62,105,102,20,70,113,117,97,115,105,113,117,111,116,101, -21,76,117,110,113,117,111,116,101,45,115,112,108,105,99,105,110,103,22,64,115, -101,116,33,23,65,35,37,116,111,112,24,64,108,101,116,42,25,65,100,101,108, -97,121,26,67,117,110,113,117,111,116,101,27,16,24,73,35,37,109,111,114,101, -45,115,99,104,101,109,101,28,68,35,37,100,101,102,105,110,101,29,68,35,37, -107,101,114,110,101,108,30,76,35,37,115,116,120,99,97,115,101,45,115,99,104, -101,109,101,31,11,2,29,2,30,2,28,2,30,2,30,2,31,66,35,37,99, -111,110,100,32,2,30,71,35,37,113,113,45,97,110,100,45,111,114,33,2,30, -2,33,2,30,2,33,2,30,2,30,2,30,2,30,2,28,2,30,16,24,2, -5,2,6,2,7,2,8,66,108,101,116,114,101,99,34,2,10,2,11,2,12, -2,13,2,14,2,15,2,16,2,0,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,162, +2,4,33,11,16,24,70,113,117,97,115,105,113,117,111,116,101,5,65,113,117, +111,116,101,6,65,35,37,97,112,112,7,67,35,37,100,97,116,117,109,8,63, +108,101,116,9,76,117,110,113,117,111,116,101,45,115,112,108,105,99,105,110,103, +10,65,100,101,108,97,121,11,2,0,65,35,37,116,111,112,12,63,97,110,100, +13,62,111,114,14,73,100,101,102,105,110,101,45,115,121,110,116,97,120,15,62, +105,102,16,66,108,97,109,98,100,97,17,64,99,97,115,101,18,71,114,53,114, +115,58,108,101,116,114,101,99,19,67,117,110,113,117,111,116,101,20,64,108,101, +116,42,21,64,115,101,116,33,22,73,108,101,116,114,101,99,45,115,121,110,116, +97,120,23,62,100,111,24,64,99,111,110,100,25,70,108,101,116,45,115,121,110, +116,97,120,26,66,100,101,102,105,110,101,27,16,24,71,35,37,113,113,45,97, +110,100,45,111,114,28,68,35,37,107,101,114,110,101,108,29,2,29,2,29,2, +29,2,29,73,35,37,109,111,114,101,45,115,99,104,101,109,101,30,2,29,2, +29,2,28,2,28,68,35,37,100,101,102,105,110,101,31,2,29,2,29,2,30, +11,2,29,2,29,2,29,76,35,37,115,116,120,99,97,115,101,45,115,99,104, +101,109,101,32,2,30,66,35,37,99,111,110,100,33,2,32,2,31,16,24,2, +5,2,6,2,7,2,8,2,9,2,10,2,11,2,0,2,12,2,13,2,14, +2,15,2,16,2,17,2,18,66,108,101,116,114,101,99,34,2,20,2,21,2, +22,2,23,2,24,2,25,2,26,2,27,32,56,93,16,5,93,2,19,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,89, @@ -4063,20 +4064,20 @@ 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,200,198,199,27,20,15,159,41, +22,88,197,249,80,158,39,42,200,27,250,22,61,198,200,199,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,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,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,9,6,19,19, +181,2,193,248,22,252,186,2,193,249,80,158,35,43,21,99,2,19,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,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, -52,206,20,15,159,47,38,44,250,22,2,89,162,33,33,41,9,223,18,250,22, +78,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,52,23,17,248,22,80,23,17,248,22,78,206,20,15,159,41, +35,40,44,248,22,78,23,17,248,22,80,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,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, @@ -4094,25 +4095,25 @@ 40,196,28,248,22,57,193,21,94,9,9,248,80,158,35,41,193,11,27,248,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,201, -200,202,199,27,20,15,159,43,42,44,91,159,33,11,90,161,33,32,11,83,160, +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,42,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,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,14,94,94,2,35,2,4,2,36,97,2,14,94,94,65,116,101, -109,112,49,39,2,37,2,36,95,2,23,2,35,2,39,2,36,96,2,14,9, +43,21,95,2,9,94,94,2,35,2,4,2,36,97,2,9,94,94,65,116,101, +109,112,49,39,2,37,2,36,95,2,22,2,35,2,39,2,36,96,2,9,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,52,205,250,22,209,20,15,159,47,50,44,250,22,62,20, +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,87,23,20,248,22,78,23,20,249,22,65,250,22,2,89,162,33,33,41, +248,22,52,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,52,23,22,248,22, -87,23,22,248,22,60,250,22,209,20,15,159,56,57,44,250,22,62,20,15,159, +248,22,52,200,248,22,78,200,20,15,159,35,56,44,248,22,78,23,22,248,22, +52,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,88,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, @@ -4135,22 +4136,22 @@ 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,202,201,203,204,200,27,20,15,159,46,8,31,44,91,159,33,11,90, +252,22,61,202,201,200,203,204,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,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,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,9,6,19,19,103,101,110,101,114,97,116, +2,193,249,80,158,35,43,21,99,2,19,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,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, -90,206,250,22,209,20,15,159,50,8,37,44,249,22,56,20,15,159,52,8,38, -44,248,22,87,23,19,20,15,159,50,8,39,44,250,22,2,89,162,33,33,41, +89,206,250,22,209,20,15,159,50,8,37,44,249,22,56,20,15,159,52,8,38, +44,248,22,90,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,52,23,17,248,22,78,23,17,248, -22,89,206,20,15,159,41,8,42,44,197,89,162,32,32,33,9,223,0,192,89, +22,87,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, @@ -4171,12 +4172,12 @@ 115,99,76,3,1,7,101,110,118,52,51,51,51,77,16,4,35,11,63,101,120, 110,78,3,1,7,101,110,118,52,51,51,53,79,95,9,8,252,108,11,2,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,9,2,2,2,4,2,2,98,43,10,33, +104,101,109,101,81,9,11,16,4,2,19,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,54,49,82,3,1,4,103,53,54,50,83,3,1,4,103,53, 54,51,84,3,1,7,101,110,118,52,51,50,52,85,2,85,2,85,16,8,40, 11,2,35,2,37,2,38,3,1,7,101,110,118,52,51,50,53,86,2,86,2, -86,18,158,63,99,116,120,87,45,18,158,2,9,45,18,158,6,19,19,103,101, +86,18,158,63,99,116,120,87,45,18,158,2,19,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,112,11,95,9,8,252,112,11,2,68,18,16,2,99,2,36, @@ -4188,21 +4189,21 @@ 92,3,1,4,103,53,53,55,93,3,1,4,103,53,53,56,94,3,1,4,103, 53,53,57,95,3,1,7,101,110,118,52,51,53,55,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,53, -56,97,2,97,2,97,2,97,18,158,2,87,54,18,158,2,14,54,18,158,2, +56,97,2,97,2,97,2,97,18,158,2,87,54,18,158,2,9,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,2,69,29,99,11,11,66,115,121,110,116,97,120,100, -2,99,73,115,121,110,116,97,120,45,99,97,115,101,42,42,101,2,99,98,8, +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,56,50,104,16,4,8,28,11,68,104,101,114,101, 45,115,116,120,105,3,1,6,101,110,118,51,56,52,106,16,4,59,11,2,105, -2,106,13,16,4,33,2,99,2,68,11,93,8,252,112,11,16,6,58,11,2, +2,106,13,16,4,33,2,100,2,68,11,93,8,252,112,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,55, 51,108,95,9,8,252,112,11,2,68,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,87,54,18,158, -2,23,54,18,158,2,87,54,18,158,2,87,54,18,158,2,14,54,18,158,9, +158,2,9,54,18,158,2,87,54,18,158,2,87,54,18,158,2,87,54,18,158, +2,22,54,18,158,2,87,54,18,158,2,87,54,18,158,2,9,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,117,11,95,9,8,252,117,11,2,68,18,16,2,99,2, 36,8,39,93,8,252,117,11,16,6,8,38,11,2,71,2,72,3,1,7,101, @@ -4215,7 +4216,7 @@ 1,4,103,53,53,52,118,3,1,7,101,110,118,52,51,57,55,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,57,56,120,2,120,2,120,2,120,2, -120,2,120,18,158,2,87,8,42,18,158,2,9,8,42,18,158,6,19,19,103, +120,2,120,18,158,2,87,8,42,18,158,2,19,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, @@ -4224,7 +4225,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 3969); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,51,5,93,159,32,20,98,158,16,1,20,24,65,98, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,52,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,97, @@ -4232,14 +4233,14 @@ EVAL_ONE_SIZED_STR((char *)expr, 103); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,51,3,73,159,33,20,98,158,16,1,20,24,65,98, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,52,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,0}; EVAL_ONE_SIZED_STR((char *)expr, 83); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,51,2,66,159,36,20,98,158,16,0,16,0,248,22, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,5,51,53,48,46,52,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,211,2,0}; diff --git a/src/mzscheme/src/hash.c b/src/mzscheme/src/hash.c index 84ae4059fd..2993724093 100644 --- a/src/mzscheme/src/hash.c +++ b/src/mzscheme/src/hash.c @@ -62,13 +62,7 @@ long PTR_TO_LONG(Scheme_Object *o) #define FILL_FACTOR 1.4 -#define MIN_HTABLE_SIZE 7 - -long scheme_hash_primes[] = -{MIN_HTABLE_SIZE, 31, 61, 127, 257, 521, 1031, 2053, 4099, 8209, 16411, - 32779, 65543, 131101, 262147, 425329, 1048583, 2097169, - 4194319, 8388617, 16777259, 33554467, 67108879, 134217757, - 268435459, 536870923, 1073741827}; +#define MIN_HTABLE_SIZE 8 typedef int (*Hash_Compare_Proc)(void*, void*); @@ -131,7 +125,6 @@ Scheme_Hash_Table *scheme_make_hash_table(int type) table = MALLOC_ONE_TAGGED(Scheme_Hash_Table); - table->step = 0; table->size = 0; table->iso.so.type = scheme_hash_table_type; @@ -156,23 +149,24 @@ static Scheme_Object *do_hash(Scheme_Hash_Table *table, Scheme_Object *key, int { Scheme_Object *tkey, **keys; hash_v_t h, h2, useme = 0; - unsigned long size = table->size; + unsigned long mask; rehash_key: + mask = table->size - 1; + if (table->make_hash_indices) { table->make_hash_indices((void *)key, (long *)&h, (long *)&h2); - h = h % size; - h2 = h2 % size; + h = h & mask; + h2 = h2 & mask; } else { unsigned long lkey; lkey = (unsigned long)PTR_TO_LONG((Scheme_Object *)key); - h = (lkey >> 2) % size; - h2 = (lkey >> 3) % size; + h = (lkey >> 2) & mask; + h2 = (lkey >> 3) & mask; } - if (!h2) - h2 = 2; + h2 |= 1; keys = table->keys; @@ -196,7 +190,7 @@ static Scheme_Object *do_hash(Scheme_Hash_Table *table, Scheme_Object *key, int return table->vals[h]; } scheme_hash_iteration_count++; - h = (h + h2) % size; + h = (h + h2) & mask; } } else { scheme_hash_request_count++; @@ -218,7 +212,7 @@ static Scheme_Object *do_hash(Scheme_Hash_Table *table, Scheme_Object *key, int } } scheme_hash_iteration_count++; - h = (h + h2) % size; + h = (h + h2) & mask; } } @@ -227,14 +221,14 @@ static Scheme_Object *do_hash(Scheme_Hash_Table *table, Scheme_Object *key, int if (set == 1) h = useme; - else if (table->mcount * FILL_FACTOR >= size) { + else if (table->mcount * FILL_FACTOR >= table->size) { /* Rehash */ - int i, oldsize = table->size; + int i, oldsize = table->size, size; Scheme_Object **oldkeys = table->keys; Scheme_Object **oldvals = table->vals; - table->size = scheme_hash_primes[++table->step]; - size = table->size; + size = oldsize << 1; + table->size = size; { Scheme_Object **ba; @@ -268,7 +262,7 @@ void scheme_hash_set(Scheme_Hash_Table *table, Scheme_Object *key, Scheme_Object if (!table->vals) { Scheme_Object **ba; - table->size = scheme_hash_primes[0]; + table->size = 8; ba = MALLOC_N(Scheme_Object *, table->size); table->vals = ba; @@ -345,16 +339,15 @@ Scheme_Hash_Table *scheme_clone_hash_table(Scheme_Hash_Table *ht) void scheme_reset_hash_table(Scheme_Hash_Table *table, int *history) { - if (!table->step - || ((table->count * FILL_FACTOR > (scheme_hash_primes[table->step - 1])))) { + if ((table->size <= 8) + || (table->count * FILL_FACTOR > (table->size >> 1))) { /* Keep same size */ memset(table->vals, 0, sizeof(Scheme_Object *) * table->size); memset(table->keys, 0, sizeof(Scheme_Object *) * table->size); } else { /* Shrink by one step */ Scheme_Object **ba; - --table->step; - table->size = scheme_hash_primes[table->step]; + table->size >>= 1; ba = MALLOC_N(Scheme_Object *, table->size); memcpy(ba, table->vals, sizeof(Scheme_Object *) * table->size); table->vals = ba; @@ -378,11 +371,10 @@ scheme_make_bucket_table (int size, int type) table = MALLOC_ONE_TAGGED(Scheme_Bucket_Table); - table->step = 0; - while (scheme_hash_primes[table->step] < size) { - table->step++; + table->size = 1; + while (table->size < size) { + table->size <<= 1; } - table->size = scheme_hash_primes[table->step]; table->count = 0; @@ -409,7 +401,6 @@ Scheme_Bucket_Table *scheme_clone_bucket_table(Scheme_Bucket_Table *bt) table->so.type = scheme_bucket_table_type; table->size = bt->size; table->count = bt->count; - table->step = bt->step; table->weak = bt->weak; table->with_home = 0; table->make_hash_indices = bt->make_hash_indices; @@ -436,27 +427,24 @@ get_bucket (Scheme_Bucket_Table *table, const char *key, int add, Scheme_Bucket hash_v_t h, h2; Scheme_Bucket *bucket; Compare_Proc compare = table->compare; - unsigned long size; + unsigned long mask; rehash_key: - size = table->size; + mask = table->size - 1; if (table->make_hash_indices) { table->make_hash_indices((void *)key, (long *)&h, (long *)&h2); - h = h % size; - h2 = h2 % size; + h = h & mask; + h2 = h2 & mask; } else { unsigned long lkey; lkey = (unsigned long)PTR_TO_LONG((Scheme_Object *)key); - h = (lkey >> 2) % size; - h2 = (lkey >> 3) % size; + h = (lkey >> 2) & mask; + h2 = (lkey >> 3) & mask; } - if (!h2) - h2 = 2; - else if (h2 & 0x1) - h2++; + h2 |= 0x1; if (table->weak) { scheme_hash_request_count++; @@ -477,7 +465,7 @@ get_bucket (Scheme_Bucket_Table *table, const char *key, int add, Scheme_Bucket } else if (add) break; scheme_hash_iteration_count++; - h = (h + h2) % size; + h = (h + h2) & mask; } } else { scheme_hash_request_count++; @@ -487,7 +475,7 @@ get_bucket (Scheme_Bucket_Table *table, const char *key, int add, Scheme_Bucket else if (compare && !compare((void *)bucket->key, (void *)key)) return bucket; scheme_hash_iteration_count++; - h = (h + h2) % size; + h = (h + h2) & mask; } } @@ -514,12 +502,12 @@ get_bucket (Scheme_Bucket_Table *table, const char *key, int add, Scheme_Bucket } if (actual * FILL_FACTOR < table->count) { - /* Decrement step so that the table won't actually grow. */ - --table->step; + /* Decrement size so that the table won't actually grow. */ + table->size >>= 1; } } - table->size = scheme_hash_primes[++table->step]; + table->size <<= 1; asize = (size_t)table->size * sizeof(Scheme_Bucket *); { diff --git a/src/mzscheme/src/schvers.h b/src/mzscheme/src/schvers.h index 0aa9458e8b..ecee15114e 100644 --- a/src/mzscheme/src/schvers.h +++ b/src/mzscheme/src/schvers.h @@ -9,6 +9,6 @@ #define MZSCHEME_VERSION_MAJOR 350 -#define MZSCHEME_VERSION_MINOR 3 +#define MZSCHEME_VERSION_MINOR 4 -#define MZSCHEME_VERSION "350.3" _MZ_SPECIAL_TAG +#define MZSCHEME_VERSION "350.4" _MZ_SPECIAL_TAG diff --git a/src/mzscheme/src/stxobj.c b/src/mzscheme/src/stxobj.c index 5c925a0821..05b90be44d 100644 --- a/src/mzscheme/src/stxobj.c +++ b/src/mzscheme/src/stxobj.c @@ -803,10 +803,10 @@ static int maybe_add_chain_cache(Scheme_Stx *stx) /* ok to skip, but don't count toward needing a cache */ } else if (SCHEME_HASHTP(p)) { /* Hack: we store the depth of the table in the chain - in the `step' fields, at least until the table is initialized: */ + in the `size' fields, at least until the table is initialized: */ Scheme_Hash_Table *ht2 = (Scheme_Hash_Table *)p; if (!ht2->count) - pos = ht2->step; + pos = ht2->size; else { p = scheme_hash_get(ht2, scheme_make_integer(2)); pos = SCHEME_INT_VAL(p); @@ -825,7 +825,7 @@ static int maybe_add_chain_cache(Scheme_Stx *stx) ht = scheme_make_hash_table(SCHEME_hash_ptr); - ht->step = pos; + ht->size = pos; p = scheme_make_pair((Scheme_Object *)ht, stx->wraps); stx->wraps = p; @@ -878,8 +878,8 @@ static void fill_chain_cache(Scheme_Object *wraps) scheme_hash_set(ht, scheme_make_integer(5), NULL); } else { - pos = ht->step; - ht->step = 0; + pos = ht->size; + ht->size = 0; wraps = SCHEME_CDR(wraps); @@ -913,11 +913,11 @@ static void fill_chain_cache(Scheme_Object *wraps) /* ok to skip */ } else if (SCHEME_HASHTP(p)) { /* Hack: we store the depth of the table in the chain - in the `step' fields, at least until the table is initialized: */ + in the `size' fields, at least until the table is initialized: */ Scheme_Hash_Table *ht2 = (Scheme_Hash_Table *)p; int pos2; if (!ht2->count) - pos2 = ht2->step; + pos2 = ht2->size; else { p = scheme_hash_get(ht2, scheme_make_integer(2)); pos2 = SCHEME_INT_VAL(p); diff --git a/src/mzscheme/src/symbol.c b/src/mzscheme/src/symbol.c index 481382daf1..230df6b89d 100644 --- a/src/mzscheme/src/symbol.c +++ b/src/mzscheme/src/symbol.c @@ -32,7 +32,7 @@ #include #include "schgc.h" -# define HASH_TABLE_SIZE_STEP 4 +# define HASH_TABLE_INIT_SIZE 256 #ifdef SMALL_HASH_TABLES # define FILL_FACTOR 1.30 #else @@ -74,8 +74,6 @@ static int gensym_counter; typedef unsigned long hash_v_t; #define HASH_SEED 0xF0E1D2C3 -extern long scheme_hash_primes[]; - #define SYMTAB_LOST_CELL scheme_false #ifdef MZ_PRECISE_GC @@ -90,11 +88,14 @@ static Scheme_Object *symbol_bucket(Scheme_Hash_Table *table, Scheme_Object *naya) { hash_v_t h, h2; + unsigned long mask; Scheme_Object *bucket; /* WARNING: key may be GC-misaligned... */ rehash_key: + mask = table->size - 1; + { unsigned int i; i = 0; @@ -110,14 +111,11 @@ static Scheme_Object *symbol_bucket(Scheme_Hash_Table *table, h ^= (h << 5) + (h >> 2) + 0xA0A0; h ^= (h << 5) + (h >> 2) + 0x0505; - h = h % table->size; - h2 = h2 % table->size; + h = h & mask; + h2 = h2 & mask; } - if (!h2) - h2 = 2; - else if (h2 & 0x1) - h2++; /* note: table size is never even, so no % needed */ + h2 |= 0x1; while ((bucket = table->keys[WEAK_ARRAY_HEADSIZE + h])) { if (SAME_OBJ(bucket, SYMTAB_LOST_CELL)) { @@ -130,7 +128,7 @@ static Scheme_Object *symbol_bucket(Scheme_Hash_Table *table, } else if (((int)length == SCHEME_SYM_LEN(bucket)) && !memcmp(key, SCHEME_SYM_VAL(bucket), length)) return bucket; - h = (h + h2) % table->size; + h = (h + h2) & mask; } /* In case it's GC-misaligned: */ @@ -155,9 +153,9 @@ static Scheme_Object *symbol_bucket(Scheme_Hash_Table *table, lostc++; } if ((lostc * 2) < table->count) - table->step++; - - newsize = scheme_hash_primes[table->step]; + newsize = oldsize << 1; + else + newsize = oldsize; asize = (size_t)newsize * sizeof(Scheme_Object *); { @@ -241,8 +239,7 @@ static Scheme_Hash_Table *init_one_symbol_table() symbol_table = scheme_make_hash_table(SCHEME_hash_ptr); - symbol_table->step = HASH_TABLE_SIZE_STEP; - symbol_table->size = scheme_hash_primes[symbol_table->step]; + symbol_table->size = HASH_TABLE_INIT_SIZE; size = symbol_table->size * sizeof(Scheme_Object *); #ifdef MZ_PRECISE_GC diff --git a/src/mzscheme/utils/xctocc b/src/mzscheme/utils/xctocc index 5df7c74147..64b65a2b04 100755 --- a/src/mzscheme/utils/xctocc +++ b/src/mzscheme/utils/xctocc @@ -2201,7 +2201,7 @@ sub PrintBundleVar $var = "&$var" unless $outgoing; &PrintBundleObject($var, $paramtype, $wvs); } elsif (substr($paramtype, 0, 3) eq 'SYM') { - $paramtype =~ /SYM\[(.*)\]/; + $paramtype =~ /SYMZ?\[(.*)\]/; $symtype = $1; print "$wvs(bundle_symset_${symtype}($var))"; } else { @@ -2427,6 +2427,10 @@ sub PrintUnbundleVar substr($paramtype, -1) = ''; print "*" if ($outgoing); &PrintUnbundleObject("$var", $paramtype, 0, $mname); + } elsif (substr($paramtype, 0, 4) eq 'SYMZ') { + $paramtype =~ /SYMZ\[(.*)\]/; + $symtype = $1; + print "WITH_VAR_STACK(unbundle_symset_${symtype}($var, NULL))"; } elsif (substr($paramtype, 0, 3) eq 'SYM') { $paramtype =~ /SYM\[(.*)\]/; $symtype = $1; @@ -2798,7 +2802,7 @@ sub PrintTypecheck substr($paramtype, -1) = ''; &PrintTypecheckObj("$var", $paramtype, $stop); } elsif (substr($paramtype, 0, 3) eq 'SYM') { - $paramtype =~ /SYM\[(.*)\]/; + $paramtype =~ /SYMZ?\[(.*)\]/; $symtype = $1; print "WITH_REMEMBERED_STACK(istype_symset_${symtype}($var, $stop))"; } else { diff --git a/src/wxmac/include/base/wx_stdev.h b/src/wxmac/include/base/wx_stdev.h index 3a08e7b32c..f9fd42ebf6 100644 --- a/src/wxmac/include/base/wx_stdev.h +++ b/src/wxmac/include/base/wx_stdev.h @@ -188,10 +188,11 @@ class wxKeyEvent: public wxEvent int y ; long keyCode; long keyUpCode; + long otherKeyCode; Bool controlDown; Bool shiftDown; Bool altDown; - Bool metaDown; //mflatt + Bool metaDown; wxKeyEvent(WXTYPE keyType); diff --git a/src/wxmac/src/mac/wx_app.cc b/src/wxmac/src/mac/wx_app.cc index aa369eb4bc..42d45667b2 100644 --- a/src/wxmac/src/mac/wx_app.cc +++ b/src/wxmac/src/mac/wx_app.cc @@ -429,7 +429,7 @@ void wxApp::doMacMouseUp(void) theMouseEvent->metaDown = cCurrentEvent.modifiers & cmdKey; theMouseEvent->x = hitX; theMouseEvent->y = hitY; - theMouseEvent->timeStamp = SCALE_TIMESTAMP(cCurrentEvent.when); // mflatt + theMouseEvent->timeStamp = SCALE_TIMESTAMP(cCurrentEvent.when); /* Grab is now only used for grabbing on mouse-down for canvases & panels: */ if (wxSubType(mouseWindow->__type, wxTYPE_CANVAS) @@ -472,7 +472,7 @@ void wxApp::doMacMouseUp(void) theMouseEvent->metaDown = cCurrentEvent.modifiers & cmdKey; theMouseEvent->x = hitX; theMouseEvent->y = hitY; - theMouseEvent->timeStamp = SCALE_TIMESTAMP(cCurrentEvent.when); // mflatt + theMouseEvent->timeStamp = SCALE_TIMESTAMP(cCurrentEvent.when); macWxFrame->SeekMouseEventArea(theMouseEvent, &metal_drag_ok); } @@ -497,7 +497,7 @@ void wxApp::doMacMouseMotion(void) theMouseEvent->controlDown = FALSE; theMouseEvent->altDown = isAltKey; theMouseEvent->metaDown = cCurrentEvent.modifiers & cmdKey; - theMouseEvent->timeStamp = SCALE_TIMESTAMP(cCurrentEvent.when); // mflatt + theMouseEvent->timeStamp = SCALE_TIMESTAMP(cCurrentEvent.when); if (wxWindow::gMouseWindow) { @@ -560,7 +560,7 @@ void wxApp::doMacMouseLeave(void) theMouseEvent->controlDown = FALSE; theMouseEvent->altDown = isAltKey; theMouseEvent->metaDown = cCurrentEvent.modifiers & cmdKey; - theMouseEvent->timeStamp = SCALE_TIMESTAMP(cCurrentEvent.when); // mflatt + theMouseEvent->timeStamp = SCALE_TIMESTAMP(cCurrentEvent.when); rc = (void *)cCurrentEvent.message; win = (wxWindow*)GET_SAFEREF(rc); @@ -601,7 +601,7 @@ void wxApp::doMacKeyUpDown(Bool down) { wxFrame* theMacWxFrame; wxKeyEvent *theKeyEvent; - int key; + int key, otherKey = 0; theMacWxFrame = findMacWxFrame(MrEdKeyWindow()); @@ -742,102 +742,123 @@ void wxApp::doMacKeyUpDown(Bool down) break; default: { - char cstr[3]; - int from_str = 0; + int iter, akey, orig_key = key; - if (cCurrentEvent.modifiers & wxMacDisableMods) { - /* The following code manually translates the virtual key event - into a character. We'd use this code all the time, except - that dead keys have already been filtered before we get here, - which means that option-e-e doesn't produce an accented e. - So, instead, we only use this code to find out what would - happen if the control key weren't pressed. */ - int mods; - OSStatus status; - UniCharCount len; - UniChar keys[1]; - SInt16 currentKeyLayoutID; - static UCKeyboardLayout *key_layout; + key = 0; /* let compiler know that key is assigned */ + for (iter = 0; iter < ((cCurrentEvent.modifiers & cmdKey) ? 2 : 1); iter++) { + char cstr[3]; + int from_str = 0; - /* Remove effect of anything in wxMacDisableMods: */ - mods = cCurrentEvent.modifiers - (cCurrentEvent.modifiers & wxMacDisableMods); - - currentKeyLayoutID = GetScriptVariable(GetScriptManagerVariable(smKeyScript), smScriptKeys); - if ((!uchrHandle && !KCHRHandle) || (currentKeyLayoutID != lastKeyLayoutID)) { - key_state = 0; - KCHRHandle = GetResource('KCHR', currentKeyLayoutID); - if (!KCHRHandle) - uchrHandle = GetResource('uchr', currentKeyLayoutID); - else - uchrHandle = NULL; - lastKeyLayoutID = currentKeyLayoutID; - } + akey = orig_key; - if (!uchrHandle) { - if (!KCHRHandle) { - key = '?'; + if (cCurrentEvent.modifiers & (wxMacDisableMods | cmdKey)) { + /* The following code manually translates the virtual key event + into a character. We'd use this code all the time, except + that dead keys have already been filtered before we get here, + which means that option-e-e doesn't produce an accented e. + So, instead, we only use this code to find out what would + happen if the control/option key wasn't pressed. */ + int mods; + OSStatus status; + UniCharCount len; + UniChar keys[1]; + SInt16 currentKeyLayoutID; + static UCKeyboardLayout *key_layout; + + mods = cCurrentEvent.modifiers; + if (mods & cmdKey) { + /* Strip control and option modifiers when command is pressed: */ + mods -= (mods & (optionKey | controlKey | cmdKey | shiftKey)); + /* On second iteration, set the shift key: */ + if (iter) + mods |= shiftKey; } else { - int trans; - trans = KeyTranslate(*KCHRHandle, key | mods, &key_state); - if (trans & 0xFF0000) { - /* 2-byte result */ - cstr[0] = (trans & 0xFF0000) >> 16; - cstr[1] = trans & 0xFF; - cstr[2] = 0; - } else { - /* 1-byte result */ - cstr[0] = trans & 0xFF; - cstr[1] = 0; - } + /* Remove effect of anything in wxMacDisableMods: */ + mods -= (mods & wxMacDisableMods); + } - key = '?'; /* temporary */ - from_str = 1; + currentKeyLayoutID = GetScriptVariable(GetScriptManagerVariable(smKeyScript), smScriptKeys); + if ((!uchrHandle && !KCHRHandle) || (currentKeyLayoutID != lastKeyLayoutID)) { + key_state = 0; + KCHRHandle = GetResource('KCHR', currentKeyLayoutID); + if (!KCHRHandle) + uchrHandle = GetResource('uchr', currentKeyLayoutID); + else + uchrHandle = NULL; + lastKeyLayoutID = currentKeyLayoutID; + } + + if (!uchrHandle) { + if (!KCHRHandle) { + akey = '?'; + } else { + int trans; + trans = KeyTranslate(*KCHRHandle, akey | mods, &key_state); + if (trans & 0xFF0000) { + /* 2-byte result */ + cstr[0] = (trans & 0xFF0000) >> 16; + cstr[1] = trans & 0xFF; + cstr[2] = 0; + } else { + /* 1-byte result */ + cstr[0] = trans & 0xFF; + cstr[1] = 0; + } + + akey = '?'; /* temporary */ + from_str = 1; + } + } else { + key_layout = (UCKeyboardLayout *)*uchrHandle; + + status = UCKeyTranslate(key_layout, + akey, + cCurrentEvent.what - keyDown, + mods >> 8, + LMGetKbdType(), + 0 /* options */, + &key_state, + 1, + &len, + keys); + + if (status == noErr) + akey = keys[0]; + else + akey = '?'; } } else { - key_layout = (UCKeyboardLayout *)*uchrHandle; - - status = UCKeyTranslate(key_layout, - key, - cCurrentEvent.what - keyDown, - mods >> 8, - LMGetKbdType(), - 0 /* options */, - &key_state, - 1, - &len, - keys); - - if (status == noErr) - key = keys[0]; - else - key = '?'; + akey = '?'; /* temporary */ + cstr[0] = cCurrentEvent.message & charCodeMask; + cstr[1] = 0; + from_str = 1; } - } else { - key = '?'; /* temporary */ - cstr[0] = cCurrentEvent.message & charCodeMask; - cstr[1] = 0; - from_str = 1; - } - if (from_str) { - CFStringRef str; - UniChar keys[1]; + if (from_str) { + CFStringRef str; + UniChar keys[1]; - str = CFStringCreateWithCStringNoCopy(NULL, cstr, - GetScriptManagerVariable(smKeyScript), - kCFAllocatorNull); - if (str) { - if (CFStringGetLength(str) > 0) { - GC_CAN_IGNORE CFRange rng; - rng = CFRangeMake(0, 1); - CFStringGetCharacters(str, rng, keys); + str = CFStringCreateWithCStringNoCopy(NULL, cstr, + GetScriptManagerVariable(smKeyScript), + kCFAllocatorNull); + if (str) { + if (CFStringGetLength(str) > 0) { + GC_CAN_IGNORE CFRange rng; + rng = CFRangeMake(0, 1); + CFStringGetCharacters(str, rng, keys); + } else + keys[0] = '?'; + CFRelease(str); } else keys[0] = '?'; - CFRelease(str); - } else - keys[0] = '?'; - key = keys[0]; + akey = keys[0]; + } + + if (!iter) + key = akey; + else + otherKey = akey; } } } // end switch @@ -850,6 +871,7 @@ void wxApp::doMacKeyUpDown(Bool down) theKeyEvent->keyCode = WXK_RELEASE; theKeyEvent->keyUpCode = key; } + theKeyEvent->otherKeyCode = otherKey; { wxWindow *in_win; @@ -1152,7 +1174,7 @@ void wxApp::doMacContentClick(wxFrame* frame) theMouseEvent->controlDown = FALSE; theMouseEvent->altDown = isAltKey; theMouseEvent->metaDown = cCurrentEvent.modifiers & cmdKey; - theMouseEvent->timeStamp = SCALE_TIMESTAMP(cCurrentEvent.when); // mflatt + theMouseEvent->timeStamp = SCALE_TIMESTAMP(cCurrentEvent.when); hitX = cCurrentEvent.where.h; // screen window c.s. hitY = cCurrentEvent.where.v; // screen window c.s. @@ -1354,3 +1376,80 @@ void wxPrimDialogCleanUp() event.message = (long)w; QueueMrEdEvent(&event); } + + +//------------------------------------------------------------------------ + +int wxKeyCodeToVirtualKey(int wxk) { + switch (wxk) { +# define wxKEYF(code, wxk) case wxk: return code + wxKEYF(122, WXK_F1); + wxKEYF(120, WXK_F2); + wxKEYF(99, WXK_F3); + wxKEYF(118, WXK_F4); + wxKEYF(96, WXK_F5); + wxKEYF(97, WXK_F6); + wxKEYF(98, WXK_F7); + wxKEYF(100, WXK_F8); + wxKEYF(101, WXK_F9); + wxKEYF(109, WXK_F10); + wxKEYF(103, WXK_F11); + wxKEYF(111, WXK_F12); + wxKEYF(105, WXK_F13); + wxKEYF(107, WXK_F14); + wxKEYF(113, WXK_F15); + case WXK_UP: + return 0x7e; + case WXK_DOWN: + return 0x7d; + case WXK_LEFT: + return 0x7b; + case WXK_RIGHT: + return 0x7c; + case WXK_RETURN: + return 0x24; + case WXK_TAB: + return 0x30; + case WXK_BACK: + return 0x33; + case WXK_DELETE: + return 0x75; + case WXK_HOME: + return 0x73; + case WXK_END: + return 0x77; + case WXK_PRIOR: + return 0x74; + case WXK_NEXT: + return 0x79; + case WXK_ADD: + return 0x45; + case WXK_SUBTRACT: + return 78; + case WXK_MULTIPLY: + return 0x43; + case WXK_DIVIDE: + return 0x4B; + case WXK_SEPARATOR: + return 71; + case WXK_DECIMAL: + return 65; + case 3: + return 76; + case WXK_NUMPAD0: + case WXK_NUMPAD1: + case WXK_NUMPAD2: + case WXK_NUMPAD3: + case WXK_NUMPAD4: + case WXK_NUMPAD5: + case WXK_NUMPAD6: + case WXK_NUMPAD7: + return (wxk - WXK_NUMPAD0) + 82; + case WXK_NUMPAD8: + return 91; + case WXK_NUMPAD9: + return 92; + default: + return 0; + } +} diff --git a/src/wxmac/src/mac/wx_dccan1.cc b/src/wxmac/src/mac/wx_dccan1.cc index 9572458486..58b1731afb 100644 --- a/src/wxmac/src/mac/wx_dccan1.cc +++ b/src/wxmac/src/mac/wx_dccan1.cc @@ -1189,7 +1189,7 @@ void wxGL::Reset(wxGLConfig *cfg, CGrafPtr gp, int offscreen, int w, int h) aglSetDrawable(ctx, NULL); aglDestroyContext(ctx); - gl_ctx = NULL; + gl_ctx = 0; } if (gp) { diff --git a/src/wxmac/src/mac/wx_menu.cc b/src/wxmac/src/mac/wx_menu.cc index f0aaf6d0d2..b7c07b4eaf 100644 --- a/src/wxmac/src/mac/wx_menu.cc +++ b/src/wxmac/src/mac/wx_menu.cc @@ -22,6 +22,8 @@ int wxNumHelpItems; MenuHandle wxHelpMenu; +extern int wxKeyCodeToVirtualKey(int wxk); + void wxSetUpAppleMenu(wxMenuBar *mbar); extern int wxCan_Do_Pref(); @@ -219,10 +221,10 @@ wxMenu::~wxMenu(void) // setupstr should be used with AppendItem; the result should then be used with SetMenuItemText // If stripCmds is TRUE, instead of replacing wxMenu string special chars, // we delete them. This is appropriate for the menu text of a pulldown Menu. -char *wxBuildMacMenuString(StringPtr setupstr, char *itemName, Bool stripCmds) +char *wxBuildMacMenuString(StringPtr setupstr, char *itemName, + int *spc, int *modifiers, int *is_virt) { int s, d; - char spc = '\0'; char *showstr; showstr = copystring(itemName); @@ -232,9 +234,27 @@ char *wxBuildMacMenuString(StringPtr setupstr, char *itemName, Bool stripCmds) showstr[d++] = ' '; for (s = 0; itemName[s] != '\0'; ) { if (itemName[s] == '\t') { - s++; - if (strncmp("Cmd+", itemName + s, 4) == 0) - spc = itemName[s+4]; + if (spc) { + s++; + if (strncmp("Cmd+", itemName + s, 4) == 0) { + *spc = itemName[s+4]; + *modifiers = 0; + *is_virt = 0; + } + if (strncmp("Cut=", itemName + s, 4) == 0) { + /* 1 byte for modfiers, then string version of a integer: */ + int vk; + *modifiers = itemName[s+4] - 'A'; + vk = strtol(itemName XFORM_OK_PLUS (s + 5), NULL, 10); + *spc = vk; + vk = wxKeyCodeToVirtualKey(*spc); + if (vk) { + *spc = vk; + *is_virt = 1; + } else + *is_virt = 0; + } + } break; } else { @@ -247,12 +267,7 @@ char *wxBuildMacMenuString(StringPtr setupstr, char *itemName, Bool stripCmds) showstr = wxItemStripLabel(showstr); if (setupstr) { setupstr[1] = 'X'; // temporary menu item name - if (spc && !stripCmds) { - setupstr[2] = '/'; - setupstr[3] = spc; - setupstr[0] = 3; - } else - setupstr[0] = 1; + setupstr[0] = 1; } return showstr; @@ -266,6 +281,7 @@ MenuHandle wxMenu::CreateCopy(char *title, Bool doabouthack, MenuHandle toHandle int helpflg; int hId; int cnt; + int spc, modifiers, is_virt; wxNode* node; wxMenuItem* menuItem; @@ -300,6 +316,7 @@ MenuHandle wxMenu::CreateCopy(char *title, Bool doabouthack, MenuHandle toHandle // Try to recreate from the wxMenuItem menuItem = (wxMenuItem*)node->Data(); hId = 0; + spc = 0; if (menuItem->itemId == -1) { // Separator title = "-"; @@ -307,12 +324,12 @@ MenuHandle wxMenu::CreateCopy(char *title, Bool doabouthack, MenuHandle toHandle tempString[1] = '-'; } else if (menuItem->subMenu) { wxMenu *subMenu; - title = wxBuildMacMenuString(tempString, menuItem->itemName, TRUE); + title = wxBuildMacMenuString(tempString, menuItem->itemName, NULL, NULL, NULL); subMenu = menuItem->subMenu; subMenu->wxMacInsertSubmenu(); hId = subMenu->cMacMenuId; } else { - title = wxBuildMacMenuString(tempString, menuItem->itemName, FALSE); + title = wxBuildMacMenuString(tempString, menuItem->itemName, &spc, &modifiers, &is_virt); if (!i && doabouthack && helpflg && (!strncmp("About", title, 5))) { if (menu_bar) { // This is a very sad hack ! @@ -327,6 +344,10 @@ MenuHandle wxMenu::CreateCopy(char *title, Bool doabouthack, MenuHandle toHandle ::SetMenuItemTextWithCFString(nmh, i + offset, ct); CFRelease(ct); } + if (spc) { + SetMenuItemCommandKey(nmh, i + offset, is_virt, spc); + SetMenuItemModifiers(nmh, i + offset, modifiers); + } { Bool v; v = menuItem->IsChecked(); @@ -809,6 +830,7 @@ void wxMenu::Append(int Id, char* Label, char* helpString, Bool checkable) // assert(Id >= 1); wxMenuItem* item; Str255 menusetup; + int spc = 0, modifiers, is_virt; item = new WXGC_PTRS wxMenuItem(this, checkable); @@ -818,7 +840,7 @@ void wxMenu::Append(int Id, char* Label, char* helpString, Bool checkable) menuItems->Append(item); no_items ++; - Label = wxBuildMacMenuString(menusetup, item->itemName, FALSE); + Label = wxBuildMacMenuString(menusetup, item->itemName, &spc, &modifiers, &is_virt); wxPrepareMenuDraw(); ::AppendMenu(cMacMenu, menusetup); { @@ -827,6 +849,10 @@ void wxMenu::Append(int Id, char* Label, char* helpString, Bool checkable) ::SetMenuItemTextWithCFString(cMacMenu, no_items, ct); CFRelease(ct); } + if (spc) { + SetMenuItemCommandKey(cMacMenu, no_items, is_virt, spc); + SetMenuItemModifiers(cMacMenu, no_items, modifiers); + } wxDoneMenuDraw(); CheckHelpHack(); } @@ -859,7 +885,7 @@ void wxMenu::Append(int Id, char* Label, wxMenu* SubMenu, char* helpString) menuItems->Append(item); no_items++; - Label = wxBuildMacMenuString(menusetup, item->itemName, TRUE); + Label = wxBuildMacMenuString(menusetup, item->itemName, NULL, NULL, NULL); wxPrepareMenuDraw(); ::AppendMenu(cMacMenu, menusetup); diff --git a/src/wxmac/src/mac/wx_mnuit.cc b/src/wxmac/src/mac/wx_mnuit.cc index 39c9d2e7c4..457ea84409 100644 --- a/src/wxmac/src/mac/wx_mnuit.cc +++ b/src/wxmac/src/mac/wx_mnuit.cc @@ -13,7 +13,8 @@ #include "wx_utils.h" #include "wx_mac_utils.h" -extern char *wxBuildMacMenuString(StringPtr setupstr, char *itemName, Bool stripCmds); +extern char *wxBuildMacMenuString(StringPtr setupstr, char *itemName, + int *spc, int *modifiers, int *is_virt); //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Constructors @@ -146,20 +147,28 @@ void wxMenuItem::SetLabel(char* label) Str255 tempString; char *s; MenuHandle nmh; + int spc = 0, modifiers, is_virt; nmh = parentMenu->MacMenu(); - s = wxBuildMacMenuString(tempString, label, 0); + s = wxBuildMacMenuString(tempString, label, + &spc, &modifiers, &is_virt); - /* Add item such the command keys are set */ + /* Effectively clears shortcuts, if any: */ ::DeleteMenuItem(nmh, macMenuItem); ::InsertMenuItem(nmh, tempString, macMenuItem - 1); - /* Install the real label */ + /* Install the label */ ct = wxCFString(s); ::SetMenuItemTextWithCFString(nmh, macMenuItem, ct); CFRelease(ct); + /* Set the command key: */ + if (spc) { + SetMenuItemCommandKey(nmh, macMenuItem, is_virt, spc); + SetMenuItemModifiers(nmh, macMenuItem, modifiers); + } + /* restore the submenu id, if any */ if (subMenu) ::SetMenuItemHierarchicalID(nmh, macMenuItem, subMenu->cMacMenuId); diff --git a/src/wxwindow/include/base/wx_stdev.h b/src/wxwindow/include/base/wx_stdev.h index c5ce930774..90ef993293 100644 --- a/src/wxwindow/include/base/wx_stdev.h +++ b/src/wxwindow/include/base/wx_stdev.h @@ -183,6 +183,7 @@ class wxKeyEvent: public wxEvent int y ; long keyCode; long keyUpCode; + long otherKeyCode; Bool controlDown; Bool shiftDown; Bool altDown; diff --git a/src/wxwindow/include/msw/wx_win.h b/src/wxwindow/include/msw/wx_win.h index 93d067631c..60dd530ba4 100644 --- a/src/wxwindow/include/msw/wx_win.h +++ b/src/wxwindow/include/msw/wx_win.h @@ -129,4 +129,8 @@ int wxCharCodeWXToMSW(int id, Bool *IsVirtual); int wxEventTrampoline(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, LRESULT *res, WNDPROC proc); +extern wxKeyEvent *wxMakeCharEvent(BOOL just_check, WORD wParam, LPARAM lParam, Bool isASCII, Bool isRelease, HWND handle); + +extern BOOL wxTranslateMessage(MSG *m); + #endif diff --git a/src/wxwindow/src/msw/wx_item.cxx b/src/wxwindow/src/msw/wx_item.cxx index 31c419814a..7fe5f405cc 100644 --- a/src/wxwindow/src/msw/wx_item.cxx +++ b/src/wxwindow/src/msw/wx_item.cxx @@ -245,8 +245,6 @@ static int skip_next_return; extern int wx_start_win_event(const char *who, HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, int tramp, LONG *_retval); extern void wx_end_win_event(const char *who, HWND hWnd, UINT message, int tramp); -extern wxKeyEvent *wxMakeCharEvent(WORD wParam, LPARAM lParam, Bool isASCII, Bool isRelease, HWND handle); - LONG wxDoItemPres(wxItem *item, HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, long *result, int tramp) { @@ -426,7 +424,7 @@ LONG wxDoItemPres(wxItem *item, HWND hWnd, UINT message, WPARAM wParam, LPARAM l event = new wxKeyEvent(wxEVENT_TYPE_CHAR); - event = wxMakeCharEvent(wParam, lParam, + event = wxMakeCharEvent(FALSE, wParam, lParam, ((message == WM_CHAR) || (message == WM_SYSCHAR)), FALSE, hWnd); diff --git a/src/wxwindow/src/msw/wx_win.cxx b/src/wxwindow/src/msw/wx_win.cxx index 2c30cbc3eb..6e77c72a3f 100644 --- a/src/wxwindow/src/msw/wx_win.cxx +++ b/src/wxwindow/src/msw/wx_win.cxx @@ -1128,19 +1128,10 @@ static LONG WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, in wxUnhideCursor(); retval = wnd->DefWindowProc(message, wParam, lParam); } - case WM_KEYUP: + case WM_KEYUP: /* ^^^ fallthrough */ case WM_KEYDOWN: /* ^^^ fallthrough */ { - // Avoid duplicate messages to OnChar - if ((message == WM_KEYUP) - || ((wParam != VK_ESCAPE) - && (wParam != VK_SHIFT) - && (wParam != VK_CONTROL) - && (wParam != VK_SPACE) - && (wParam != VK_RETURN) - && (wParam != VK_TAB) - && (wParam != VK_BACK))) - wnd->OnChar((WORD)wParam, lParam, FALSE, message == WM_KEYUP); + wnd->OnChar((WORD)wParam, lParam, FALSE, message == WM_KEYUP); break; } case WM_SYSCHAR: @@ -2011,122 +2002,75 @@ static int dot_scan_code; static int generic_ascii_code[256]; +static const char *find_shift_alts = "!@#$%^&*()_+-=\\|[]{}:\";',.<>/?~`"; +static int shift_alt_key_codes[36], sakc_initialized; + #define THE_SCAN_CODE(lParam) ((((unsigned long)lParam) >> 16) & 0x1FF) -wxKeyEvent *wxMakeCharEvent(WORD wParam, LPARAM lParam, Bool isASCII, Bool isRelease, HWND handle) +wxKeyEvent *wxMakeCharEvent(BOOL just_check, WORD wParam, LPARAM lParam, Bool isASCII, Bool isRelease, HWND handle) { - int id; - Bool tempControlDown; + int id, other_id = 0; + Bool tempControlDown, tempAltDown; tempControlDown = (::GetKeyState(VK_CONTROL) >> 1); + tempAltDown = ((HIWORD(lParam) & KF_ALTDOWN) == KF_ALTDOWN); if (isASCII) { int sc; - // If 1 -> 26, translate to CTRL plus a letter. id = wParam; - if ((id > 0) && (id < 27) && tempControlDown) { - id = id + 96; - } - // Map id 28 to ctl+backslash - if (tempControlDown) { - switch (id) { - case 27: - id = '['; - break; - case 28: - id = '\\'; - break; - case 29: - id = ']'; - break; - case 30: - id = '^'; - break; - case 31: - id = '_'; - break; - default: - break; - } - } - - /* Ignore character created by numpad, since it's - already handled as WM_KEYDOWN */ - sc = THE_SCAN_CODE(lParam); - if (sc) { - if ((id >= '0') && (id <= '9')) { - if (numpad_scan_codes[id - '0'] == sc) - id = -1; - } else if (id == '+') { - if (sc == plus_scan_code) - id = -1; - } else if (id == '-') { - if (sc == minus_scan_code) - id = -1; - } else if (id == '*') { - if (sc == times_scan_code) - id = -1; - } else if (id == '/') { - if (sc == divide_scan_code) - id = -1; - } else if (id == '.') { - if (sc == dot_scan_code) - id = -1; - } - } + /* Remember scan codes to help with some key-release events: */ + sc = THE_SCAN_CODE(lParam); if ((id >= 0) && (id <= 255)) generic_ascii_code[id] = sc; } else { + int override_mapping = (tempControlDown && !tempAltDown); + if ((id = wxCharCodeMSWToWX(wParam)) == 0) { - if (tempControlDown) { - int sd; - sd = (::GetKeyState(VK_SHIFT) >> 1); - switch(wParam) { - case VK_OEM_1: - id = (sd ? ':' : ';'); - break; - case VK_OEM_2: - id = (sd ? '|' : -1); - break; - case VK_OEM_3: - id = (sd ? '~' : '`'); - break; - case VK_OEM_7: - id = (sd ? '"' : '\''); - break; - case VK_OEM_PLUS: - id = (sd ? '+' : '='); - break; - case VK_OEM_MINUS: - id = (sd ? -1 : '-'); - break; - case VK_OEM_PERIOD: - id = (sd ? '>' : '.'); - break; - case VK_OEM_COMMA: - id = (sd ? '<' : ','); - break; - default: + if (override_mapping || isRelease) { + int j; + + id = MapVirtualKey(wParam, 2); + id &= 0xFFFF; + if (!id) id = -1; + else if (id < 128) + id = tolower(id); + + /* Look for shifted alternate: */ + if (!sakc_initialized) { + for (j = 0; find_shift_alts[j]; j++) { + shift_alt_key_codes[j] = VkKeyScan(find_shift_alts[j]) & 0xFF; + } } + for (j = 0; find_shift_alts[j]; j++) { + if (shift_alt_key_codes[j] == wParam) { + if (find_shift_alts[j] != id) { + other_id = find_shift_alts[j]; + } + } + } + } else id = -1; - } - if ((id >= WXK_NUMPAD0) && (id <= WXK_NUMPAD9)) { - /* remember scan code so we can ignore the WM_CHAR part */ - numpad_scan_codes[id - WXK_NUMPAD0] = THE_SCAN_CODE(lParam); - } else if (id == WXK_ADD) { - plus_scan_code = THE_SCAN_CODE(lParam); - } else if (id == WXK_SUBTRACT) { - minus_scan_code = THE_SCAN_CODE(lParam); - } else if (id == WXK_MULTIPLY) { - times_scan_code = THE_SCAN_CODE(lParam); - } else if (id == WXK_DIVIDE) { - divide_scan_code = THE_SCAN_CODE(lParam); - } else if (id == WXK_DECIMAL) { - dot_scan_code = THE_SCAN_CODE(lParam); + } else { + /* Don't generat control-key down events: */ + if (!isRelease && (wParam == VK_CONTROL)) + return NULL; + + if (!override_mapping && !isRelease) { + /* Let these get translated to WM_CHAR or skipped + entirely: */ + if ((wParam == VK_ESCAPE) + || (wParam == VK_SHIFT) + || (wParam == VK_CONTROL) + || (wParam == VK_SPACE) + || (wParam == VK_RETURN) + || (wParam == VK_TAB) + || (wParam == VK_BACK)) + id = -1; + } } if (isRelease && (id < 0)) { @@ -2136,10 +2080,16 @@ wxKeyEvent *wxMakeCharEvent(WORD wParam, LPARAM lParam, Bool isASCII, Bool isRel for (i = 0; i < 256; i++) { if (generic_ascii_code[i] == sc) { id = i; + if (id < 127) + id = tolower(id); break; } } } + + if (id < 0) { + return NULL; + } } if (id > -1) { @@ -2147,18 +2097,22 @@ wxKeyEvent *wxMakeCharEvent(WORD wParam, LPARAM lParam, Bool isASCII, Bool isRel RECT rect; wxKeyEvent *event; + if (just_check) + return (wxKeyEvent *)0x1; + event = new wxKeyEvent(wxEVENT_TYPE_CHAR); if (::GetKeyState(VK_SHIFT) >> 1) event->shiftDown = TRUE; if (tempControlDown) event->controlDown = TRUE; - if ((HIWORD(lParam) & KF_ALTDOWN) == KF_ALTDOWN) + if (tempAltDown) event->metaDown = TRUE; event->keyCode = (isRelease ? WXK_RELEASE : id); event->keyUpCode = (isRelease ? id : WXK_PRESS); - event->SetTimestamp(last_msg_time); /* MATTHEW: timeStamp */ + event->otherKeyCode = other_id; + event->SetTimestamp(last_msg_time); GetCursorPos(&pt); GetWindowRect(handle,&rect); @@ -2173,11 +2127,23 @@ wxKeyEvent *wxMakeCharEvent(WORD wParam, LPARAM lParam, Bool isASCII, Bool isRel return NULL; } +BOOL wxTranslateMessage(MSG *m) +{ + if ((m->message == WM_KEYDOWN) || (m->message == WM_SYSKEYDOWN) + || (m->message == WM_KEYUP) || (m->message == WM_SYSKEYUP)) + if (!wxMakeCharEvent(TRUE, m->wParam, m->lParam, FALSE, + (m->message == WM_KEYUP) || (m->message == WM_SYSKEYUP), + m->hwnd)) + return TranslateMessage(m); + + return FALSE; +} + void wxWnd::OnChar(WORD wParam, LPARAM lParam, Bool isASCII, Bool isRelease) { wxKeyEvent *event; - event = wxMakeCharEvent(wParam, lParam, isASCII, isRelease, handle); + event = wxMakeCharEvent(FALSE, wParam, lParam, isASCII, isRelease, handle); if (event && wx_window) { if (!wx_window->CallPreOnChar(wx_window->PreWindow(), event)) diff --git a/src/wxxt/src/EventHandling/wx_stdev.h b/src/wxxt/src/EventHandling/wx_stdev.h index d1cd40499f..9cb1be051f 100644 --- a/src/wxxt/src/EventHandling/wx_stdev.h +++ b/src/wxxt/src/EventHandling/wx_stdev.h @@ -128,6 +128,7 @@ class wxKeyEvent: public wxEvent int y ; long keyCode; long keyUpCode; + long otherKeyCode; Bool controlDown; Bool shiftDown; Bool altDown; diff --git a/src/wxxt/src/Windows/Window.cc b/src/wxxt/src/Windows/Window.cc index 0e8b9edf56..87d7524f5d 100644 --- a/src/wxxt/src/Windows/Window.cc +++ b/src/wxxt/src/Windows/Window.cc @@ -58,6 +58,8 @@ static Atom utf8_atom = 0, net_wm_name_atom, net_wm_icon_name_atom; extern void wxSetSensitive(Widget, Bool enabled); +extern int wxLocaleStringToChar(char *str, int slen); +extern int wxUTF8StringToChar(char *str, int slen); static wxWindow *grabbing_panel; static Time grabbing_panel_time; @@ -1571,12 +1573,73 @@ extern Bool wxIsAlt(KeySym key_sym); static XComposeStatus compose_status; #ifndef NO_XMB_LOOKUP_STRING # define XMB_KC_STATUS(status) (status == XLookupKeySym) || (status == XLookupBoth) +# define XMB_STR_STATUS(status) (status == XLookupChars) || (status == XLookupBoth) # define DEFAULT_XMB_STATUS XLookupKeySym +# ifdef X_HAVE_UTF8_STRING +# define X___LookupString Xutf8LookupString +# else +# define X___LookupString XmbLookupString +# endif #else # define XMB_KC_STATUS(status) (status) +# define XMB_STR_STATUS(status) 0 # define DEFAULT_XMB_STATUS 1 #endif + +Status wxWindow::LookupKey(int unshifted, Widget w, wxWindow *win, XEvent *xev, KeySym *_keysym, char *str, int *_len) +{ + KeySym keysym; + Status status; + int len; + XKeyPressedEvent evt; + + memcpy(&evt, &(xev->xkey), sizeof(XKeyPressedEvent)); + if (unshifted) { + if (evt.state & ShiftMask) + evt.state -= ShiftMask; + else + evt.state |= ShiftMask; + } + +#ifndef NO_XMB_LOOKUP_STRING + if (!the_im) { + the_im = XOpenIM(wxAPP_DISPLAY, NULL, NULL, NULL); + } + if (the_im) { + if (!win->X->ic) { + win->X->ic = XCreateIC(the_im, + XNInputStyle, XIMPreeditNothing | XIMStatusNothing, + NULL); + win->X->us_ic = XCreateIC(the_im, + XNInputStyle, XIMPreeditNothing | XIMStatusNothing, + NULL); + } + } + + if (win->X->ic && (xev->xany.type == KeyPress)) { + XIC ic; + ic = unshifted ? win->X->ic : win->X->ic; + XSetICValues(ic, + XNClientWindow, XtWindow(w), + XNFocusWindow, XtWindow(w), + NULL); + XSetICFocus(ic); + + len = X___LookupString(ic, &evt, str, 10, &keysym, &status); + } else +#endif + { + (void)XLookupString(&evt, str, 10, &keysym, &compose_status); + status = DEFAULT_XMB_STATUS; + len = 0; + } + + *_len = len; + *_keysym = keysym; + return status; +} + void wxWindow::WindowEventHandler(Widget w, wxWindow **winp, XEvent *xev, @@ -1639,38 +1702,16 @@ void wxWindow::WindowEventHandler(Widget w, win->current_state = xev->xkey.state; { /* ^^^ fallthrough !!!! ^^^ */ wxKeyEvent *wxevent; - KeySym keysym; - long kc; - Status status; - char str[10]; + KeySym keysym, other_keysym; + long kc, other_kc; + Status status, other_status; + char str[10], other_str[10]; + int slen, other_slen; wxevent = new wxKeyEvent(wxEVENT_TYPE_CHAR); -#ifndef NO_XMB_LOOKUP_STRING - if (!the_im) { - the_im = XOpenIM(wxAPP_DISPLAY, NULL, NULL, NULL); - } - if (!win->X->ic) { - if (the_im) { - win->X->ic = XCreateIC(the_im, - XNInputStyle, XIMPreeditNothing | XIMStatusNothing, - NULL); - } - } - - if (win->X->ic && (xev->xany.type == KeyPress)) { - XSetICValues(win->X->ic, - XNClientWindow, XtWindow(w), - XNFocusWindow, XtWindow(w), - NULL); - XSetICFocus(win->X->ic); - (void)XmbLookupString(win->X->ic, &(xev->xkey), str, 10, &keysym, &status); - } else -#endif - { - (void)XLookupString(&(xev->xkey), str, 10, &keysym, &compose_status); - status = DEFAULT_XMB_STATUS; - } + status = LookupKey(0, w, win, xev, &keysym, str, &slen); + other_status = LookupKey(1, w, win, xev, &other_keysym, other_str, &other_slen); if (xev->xany.type == KeyPress) { static int handle_alt = 0; @@ -1689,15 +1730,39 @@ void wxWindow::WindowEventHandler(Widget w, } } - if (XMB_KC_STATUS(status)) + if (XMB_STR_STATUS(status)) { + if (slen > 9) + slen = 9; + str[slen] = 0; +#ifdef X_HAVE_UTF8_STRING + kc = wxUTF8StringToChar(str, slen); +#else + kc = wxLocaleStringToChar(str, slen); +#endif + } else if (XMB_KC_STATUS(status)) kc = CharCodeXToWX(keysym); - else + else kc = 0; + if (XMB_STR_STATUS(other_status)) { + if (other_slen > 9) + other_slen = 9; + other_str[other_slen] = 0; +#ifdef X_HAVE_UTF8_STRING + other_kc = wxUTF8StringToChar(other_str, other_slen); +#else + other_kc = wxLocaleStringToChar(other_str, other_slen); +#endif + } else if (XMB_KC_STATUS(other_status)) + other_kc = CharCodeXToWX(other_keysym); + else + other_kc = 0; + // set wxWindows event structure wxevent->eventHandle = (char*)xev; wxevent->keyCode = (xev->xany.type == KeyPress) ? kc : WXK_RELEASE; wxevent->keyUpCode = (xev->xany.type == KeyRelease) ? kc : WXK_PRESS; + wxevent->otherKeyCode = other_kc; wxevent->x = xev->xkey.x; wxevent->y = xev->xkey.y; wxevent->altDown = /* xev->xkey.state & Mod3Mask */ FALSE; diff --git a/src/wxxt/src/Windows/Window.h b/src/wxxt/src/Windows/Window.h index 2ec70a9085..b084991f98 100644 --- a/src/wxxt/src/Windows/Window.h +++ b/src/wxxt/src/Windows/Window.h @@ -44,6 +44,7 @@ public: unsigned int last_clickbutton; // if a double click has arrived #ifndef NO_XMB_LOOKUP_STRING XIC ic; + XIC us_ic; XIM im; #endif }; @@ -192,6 +193,7 @@ protected: static void WindowEventHandler(Widget w, wxWindow **win, XEvent *ev, Boolean *continue_to_dispatch_return); static void ScrollEventHandler(Widget w, wxWindow **win, XtPointer p_XfwfScrollInfo); + static Status wxWindow::LookupKey(int unshifted, Widget w, wxWindow *win, XEvent *xev, KeySym *_keysym, char *s, int *_len); void RegisterAll(Widget ww); # endif protected: