X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=charset%2FU-cat.h;h=bcfe99b2ba05779a626aba9d73bf98a799f4ec9d;hb=d9820b2d7d4b908bb9da441f5a35a7999d701e60;hp=f4d65db524d4c79db6920285d3cfeb1aca3605d6;hpb=abba9373525dbfa8fb8dfcb0505e7ae682357983;p=libucw.git diff --git a/charset/U-cat.h b/charset/U-cat.h index f4d65db5..bcfe99b2 100644 --- a/charset/U-cat.h +++ b/charset/U-cat.h @@ -1,129 +1,281 @@ /* Generated automatically by gentab. Please don't edit. */ -static byte _U_cat_00[256] = { -_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL, -_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL, -_C_BLANK,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,0,0,0,0,0,0, -0,_C_UPPER|_C_XDIGIT,_C_UPPER|_C_XDIGIT,_C_UPPER|_C_XDIGIT,_C_UPPER|_C_XDIGIT,_C_UPPER|_C_XDIGIT,_C_UPPER|_C_XDIGIT,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, -_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0,0,_C_INNER, -0,_C_LOWER|_C_XDIGIT,_C_LOWER|_C_XDIGIT,_C_LOWER|_C_XDIGIT,_C_LOWER|_C_XDIGIT,_C_LOWER|_C_XDIGIT,_C_LOWER|_C_XDIGIT,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,_C_CTRL, -_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL, -_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL, -_C_BLANK,0,0,0,0,0,0,0,0,0,_C_LOWER,0,0,0,0,0, -0,0,0,0,0,_C_LOWER,0,0,0,0,_C_LOWER,0,0,0,0,0, -_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, -_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER -}; - -static byte _U_cat_01[256] = { -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER, -_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_LOWER, -_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER, -_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER, -_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER,_C_LOWER,0,_C_UPPER,_C_LOWER,_C_LOWER,_C_LOWER, -0,0,0,0,_C_UPPER,0,_C_LOWER,_C_UPPER,0,_C_LOWER,_C_UPPER,0,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER, -_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_LOWER,_C_UPPER,0,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER -}; - -static byte _U_cat_02[256] = { -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -0,0,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0, +static const byte _U_cat_00[256] = { +_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL, +_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL, +_U_SPACE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_DIGIT,_U_DIGIT,_U_DIGIT,_U_DIGIT,_U_DIGIT,_U_DIGIT,_U_DIGIT,_U_DIGIT,_U_DIGIT,_U_DIGIT,0,0,0,0,0,0, +0,_U_LUPPER|_U_XDIGIT,_U_LUPPER|_U_XDIGIT,_U_LUPPER|_U_XDIGIT,_U_LUPPER|_U_XDIGIT,_U_LUPPER|_U_XDIGIT,_U_LUPPER|_U_XDIGIT,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER, +_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,0,0,0,0, +0,_U_LLOWER|_U_XDIGIT,_U_LLOWER|_U_XDIGIT,_U_LLOWER|_U_XDIGIT,_U_LLOWER|_U_XDIGIT,_U_LLOWER|_U_XDIGIT,_U_LLOWER|_U_XDIGIT,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,0,0,0,_U_CTRL, +_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL, +_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL, +_U_SPACE,0,0,0,0,0,0,0,0,0,_U_LLOWER,0,0,_U_CTRL,0,0, +0,0,0,0,0,_U_LLOWER,0,0,0,0,_U_LLOWER,0,0,0,0,0, +_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER, +_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LLOWER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER +}; + +static const byte _U_cat_01[256] = { +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LIGATURE,_U_LIGATURE,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER, +_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LLOWER, +_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER, +_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LUPPER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LUPPER, +_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LETTER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LLOWER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LUPPER,_U_LETTER,_U_LLOWER,_U_LUPPER,_U_LETTER,_U_LLOWER,_U_LUPPER,_U_LETTER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER, +_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LLOWER,_U_LUPPER,_U_LETTER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER +}; + +static const byte _U_cat_02[256] = { +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,_U_LETTER,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const byte _U_cat_03[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,_U_LETTER,0,0,0,0,0, +0,0,0,0,0,0,_U_LUPPER,0,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,_U_LUPPER,0,_U_LUPPER,_U_LUPPER, +_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER, +_U_LUPPER,_U_LUPPER,0,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0, +_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LLOWER,0,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LLOWER,0,0,0,0 +}; + +static const byte _U_cat_04[256] = { +_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER, +_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER, +_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,0,0,0,0,0,0,0,0,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,0, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,0,0,_U_LUPPER,_U_LLOWER,0,0,0,0,0,0 }; -static byte _U_cat_03[256] = { +static const byte _U_cat_05[256] = { +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER, +_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER, +_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,0,_U_LETTER,0,0,0,0,0,0, +0,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LIGATURE,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const byte _U_cat_06[256] = { +_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,_U_LETTER,_U_LETTER, +0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,0,0,0,0,0,0,0,_U_CTRL,0,0, +0,0,0,0,0,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,_U_LETTER,_U_LETTER, +0,0,0,0,0,0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,0,0,_U_LETTER +}; + +static const byte _U_cat_07[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_U_CTRL, +_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,_C_UPPER,0,_C_UPPER,_C_UPPER,_C_UPPER,0,_C_UPPER,0,_C_UPPER,_C_UPPER, -_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, -_C_UPPER,_C_UPPER,0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0, -_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0,0,0,0,0,0,0 +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0, +0,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const byte _U_cat_09[256] = { +0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,_U_LETTER,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,0,0,0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,_U_LETTER, +_U_LETTER,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,0,_U_LETTER,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,_U_LETTER,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,_U_LETTER,_U_LETTER,0,_U_LETTER, +_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const byte _U_cat_0A[256] = { +0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,_U_LETTER, +_U_LETTER,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,0,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER, +_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,0,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,_U_LETTER,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -static byte _U_cat_04[256] = { -_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, -_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, -_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,0,0,0,0,0,0,0,0,0,0,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,0,0,_C_UPPER,_C_LOWER,0,0,_C_UPPER,_C_LOWER,0,0,0, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,0,0,_C_UPPER,_C_LOWER,0,0,0,0,0,0 +static const byte _U_cat_0B[256] = { +0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,_U_LETTER, +_U_LETTER,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,0,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,_U_LETTER,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,_U_LETTER,_U_LETTER,0,_U_LETTER, +_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,_U_LETTER,_U_LETTER, +_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,_U_LETTER,_U_LETTER,0,_U_LETTER,0,_U_LETTER,_U_LETTER, +0,0,0,_U_LETTER,_U_LETTER,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -static byte _U_cat_05[256] = { +static const byte _U_cat_0C[256] = { +0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER, +_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, -_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, -_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0,0,0,0,0,0,0, -0,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0,0,0, +0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER, +_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,_U_LETTER,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,_U_LETTER,0, +_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const byte _U_cat_0D[256] = { +0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER, +_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -static byte _U_cat_07[256] = { -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_C_CTRL, +static const byte _U_cat_0E[256] = { +0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,0,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,_U_LETTER,_U_LETTER,0,_U_LETTER,0,0,_U_LETTER,_U_LETTER,0,_U_LETTER,0,0,_U_LETTER,0,0, +0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +0,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,0,_U_LETTER,0,0,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,0,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,_U_LETTER,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,_U_LETTER,_U_LETTER,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const byte _U_cat_0F[256] = { +_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -133,26 +285,186 @@ static byte _U_cat_07[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -static byte _U_cat_10[256] = { +static const byte _U_cat_10[256] = { +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER, +_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER, +_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0 +}; + +static const byte _U_cat_11[256] = { +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0 +}; + +static const byte _U_cat_12[256] = { +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0, +_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0, +_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER +}; + +static const byte _U_cat_13[256] = { +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0, +_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const byte _U_cat_14[256] = { +0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER +}; + +static const byte _U_cat_15[256] = { +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER +}; + +static const byte _U_cat_16[256] = { +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0, +_U_SPACE,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const byte _U_cat_17[256] = { +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER, +_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_CTRL,_U_CTRL,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,_U_LETTER,0,0,0,0,_U_LETTER,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const byte _U_cat_18[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,_U_SPACE,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, -_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, -_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -static byte _U_cat_16[256] = { +static const byte _U_cat_19[256] = { +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -160,8 +472,19 @@ static byte _U_cat_16[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const byte _U_cat_1D[256] = { +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -_C_BLANK,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -171,10 +494,53 @@ _C_BLANK,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -static byte _U_cat_18[256] = { -0,0,0,0,0,0,0,0,0,0,0,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,0, +static const byte _U_cat_1E[256] = { +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,0,0,0, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER, +_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,0,0,0,0,0,0 +}; + +static const byte _U_cat_1F[256] = { +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,0,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,0, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,0,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,0, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,_U_LUPPER,0,_U_LUPPER,0,_U_LUPPER,0,_U_LUPPER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,0, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LETTER,0,_U_LLOWER,0, +0,0,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LETTER,0,0,0, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,0,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,0,0,0, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,0,0, +0,0,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LETTER,0,0,0 +}; + +static const byte _U_cat_20[256] = { +_U_SPACE,_U_SPACE,_U_SPACE,_U_SPACE,_U_SPACE,_U_SPACE,_U_SPACE,_U_SPACE,_U_SPACE,_U_SPACE,_U_SPACE,_U_SPACE,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,_U_SPACE,_U_SPACE,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_SPACE, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_U_SPACE, +_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,0,0,0,0,0,0,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL, +0,_U_LLOWER,0,0,0,0,0,0,0,0,0,0,0,0,0,_U_LLOWER, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -182,6 +548,20 @@ static byte _U_cat_18[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const byte _U_cat_21[256] = { +0,0,_U_LUPPER,0,0,0,0,_U_LUPPER,0,0,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LLOWER, +_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LLOWER,0,_U_LUPPER,0,0,0,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,0, +0,0,0,0,_U_LUPPER,0,_U_LUPPER,0,_U_LUPPER,0,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,_U_LLOWER, +_U_LUPPER,_U_LUPPER,0,_U_LUPPER,_U_LLOWER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LLOWER,0,0,0,_U_LLOWER,_U_LUPPER,_U_LUPPER, +0,0,0,0,0,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -190,53 +570,53 @@ static byte _U_cat_18[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -static byte _U_cat_1E[256] = { -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, -_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,0,0,0,0,0,0 +static const byte _U_cat_30[256] = { +_U_SPACE,0,0,0,0,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,_U_LETTER,_U_LETTER,0,0,0, +0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER, +0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER }; -static byte _U_cat_1F[256] = { -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,_C_UPPER,0,_C_UPPER,0,_C_UPPER,0,_C_UPPER, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0,0,0, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0,0,0, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0,0,0, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,_C_LOWER,0, -0,0,_C_LOWER,_C_LOWER,_C_LOWER,0,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0,0, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0,0, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0, -0,0,_C_LOWER,_C_LOWER,_C_LOWER,0,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0,0 +static const byte _U_cat_31[256] = { +0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0, +0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER }; -static byte _U_cat_20[256] = { -_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL, +static const byte _U_cat_34[256] = { +_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,_C_BLANK,_C_BLANK,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_BLANK, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_C_LOWER, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -247,11 +627,7 @@ _C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -static byte _U_cat_21[256] = { -0,0,_C_UPPER,0,0,0,0,_C_UPPER,0,0,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_LOWER, -_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,0,_C_UPPER,0,0,0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0, -0,0,0,0,_C_UPPER,0,_C_UPPER,0,_C_UPPER,0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,_C_LOWER, -_C_UPPER,_C_UPPER,0,_C_UPPER,_C_LOWER,0,0,0,0,_C_LOWER,0,0,0,0,0,0, +static const byte _U_cat_4D[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -263,11 +639,15 @@ _C_UPPER,_C_UPPER,0,_C_UPPER,_C_LOWER,0,0,0,0,_C_LOWER,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,_U_LETTER,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -static byte _U_cat_30[256] = { -_C_BLANK,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +static const byte _U_cat_4E[256] = { +_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -285,8 +665,7 @@ _C_BLANK,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -static byte _U_cat_D8[256] = { -_C_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +static const byte _U_cat_9F[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -297,6 +676,7 @@ _C_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,_U_LETTER,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -304,27 +684,121 @@ _C_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -static byte _U_cat_DB[256] = { +static const byte _U_cat_A0[256] = { +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER +}; + +static const byte _U_cat_A1[256] = { +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER +}; + +static const byte _U_cat_A2[256] = { +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER +}; + +static const byte _U_cat_A3[256] = { +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER +}; + +static const byte _U_cat_A4[256] = { +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const byte _U_cat_AC[256] = { +_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_C_CTRL, -_C_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_C_CTRL +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -static byte _U_cat_DC[256] = { -_C_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +static const byte _U_cat_D7[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -335,6 +809,7 @@ _C_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -342,7 +817,8 @@ _C_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -static byte _U_cat_DF[256] = { +static const byte _U_cat_D8[256] = { +_U_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -357,12 +833,30 @@ static byte _U_cat_DF[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const byte _U_cat_DB[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_C_CTRL +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_U_CTRL, +_U_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_U_CTRL }; -static byte _U_cat_E0[256] = { -_C_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +static const byte _U_cat_DC[256] = { +_U_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -380,7 +874,7 @@ _C_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -static byte _U_cat_F8[256] = { +static const byte _U_cat_DF[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -396,12 +890,12 @@ static byte _U_cat_F8[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_C_CTRL +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_U_CTRL }; -static byte _U_cat_FB[256] = { -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0,0,0,0, -0,0,0,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0,0,0, +static const byte _U_cat_E0[256] = { +_U_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -418,7 +912,7 @@ _C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -static byte _U_cat_FE[256] = { +static const byte _U_cat_F8[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -434,43 +928,157 @@ static byte _U_cat_FE[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_C_CTRL +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_U_CTRL +}; + +static const byte _U_cat_F9[256] = { +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER }; -static byte _U_cat_FF[256] = { +static const byte _U_cat_FA[256] = { +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, -_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0,0,0, -0,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, -_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const byte _U_cat_FB[256] = { +_U_LIGATURE,_U_LIGATURE,_U_LIGATURE,_U_LIGATURE,_U_LIGATURE,_U_LIGATURE,_U_LIGATURE,0,0,0,0,0,0,0,0,0, +0,0,0,_U_LIGATURE,_U_LIGATURE,_U_LIGATURE,_U_LIGATURE,_U_LIGATURE,0,0,0,0,0,_U_LETTER,0,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,0, +_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LIGATURE, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER +}; + +static const byte _U_cat_FC[256] = { +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER +}; + +static const byte _U_cat_FD[256] = { +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0 +}; + +static const byte _U_cat_FE[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,_C_CTRL,_C_CTRL,_C_CTRL,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,_U_CTRL }; -byte *_U_cat[256] = { -_U_cat_00,_U_cat_01,_U_cat_02,_U_cat_03,_U_cat_04,_U_cat_05,NULL,_U_cat_07,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, -_U_cat_10,NULL,NULL,NULL,NULL,NULL,_U_cat_16,NULL,_U_cat_18,NULL,NULL,NULL,NULL,NULL,_U_cat_1E,_U_cat_1F, +static const byte _U_cat_FF[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER, +_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,0,0,0,0, +0,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER, +_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,0,0,0,0, +0,0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0, +0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER, +0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,_U_CTRL,_U_CTRL,_U_CTRL,0,0,0,0 +}; + +const byte *_U_cat[256] = { +_U_cat_00,_U_cat_01,_U_cat_02,_U_cat_03,_U_cat_04,_U_cat_05,_U_cat_06,_U_cat_07,NULL,_U_cat_09,_U_cat_0A,_U_cat_0B,_U_cat_0C,_U_cat_0D,_U_cat_0E,_U_cat_0F, +_U_cat_10,_U_cat_11,_U_cat_12,_U_cat_13,_U_cat_14,_U_cat_15,_U_cat_16,_U_cat_17,_U_cat_18,_U_cat_19,NULL,NULL,NULL,_U_cat_1D,_U_cat_1E,_U_cat_1F, _U_cat_20,_U_cat_21,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, -_U_cat_30,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, -NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, -NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, -NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +_U_cat_30,_U_cat_31,NULL,NULL,_U_cat_34,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_cat_4D,_U_cat_4E,NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_cat_9F, +_U_cat_A0,_U_cat_A1,_U_cat_A2,_U_cat_A3,_U_cat_A4,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_cat_AC,NULL,NULL,NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, -NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_cat_D8,NULL,NULL,_U_cat_DB,_U_cat_DC,NULL,NULL,_U_cat_DF, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_cat_D7,_U_cat_D8,NULL,NULL,_U_cat_DB,_U_cat_DC,NULL,NULL,_U_cat_DF, _U_cat_E0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, -NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_cat_F8,NULL,NULL,_U_cat_FB,NULL,NULL,_U_cat_FE,_U_cat_FF +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_cat_F8,_U_cat_F9,_U_cat_FA,_U_cat_FB,_U_cat_FC,_U_cat_FD,_U_cat_FE,_U_cat_FF };