]> mj.ucw.cz Git - libucw.git/blobdiff - charset/U-cat.h
Split type_flags to 4/4 bits for FILETYPE and LANG
[libucw.git] / charset / U-cat.h
index ddd9bcd1a43f821ab07b6e83c37d86833342b17a..bcfe99b2ba05779a626aba9d73bf98a799f4ec9d 100644 (file)
 /* 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,0,_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,0,0,
-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,0,0,0,0,_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,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,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,0,0,0,0,0,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,_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 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,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_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_03[256] = {
+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 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,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,_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,0,0,0,_C_UPPER,0,_C_UPPER,0,_C_UPPER,0,
-_C_UPPER,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_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,_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 byte _U_cat_04[256] = {
-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,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_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_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_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,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,
-0,_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,0,0,_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_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_05[256] = {
+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,_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,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,
@@ -114,72 +285,186 @@ _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
 };
 
-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,
-_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
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_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 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_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 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,_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,_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,0,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,_C_UPPER,0,
-0,0,_C_LOWER,_C_LOWER,_C_LOWER,0,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,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,_C_UPPER,0,0,0
+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 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_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,_C_BLANK,_C_BLANK,_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,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,
-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
+};
+
+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,
@@ -190,12 +475,88 @@ _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,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,
-_C_UPPER,_C_UPPER,_C_UPPER,0,_C_UPPER,0,_C_UPPER,0,_C_UPPER,0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_LOWER,
-_C_UPPER,_C_UPPER,0,_C_UPPER,_C_LOWER,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,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,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_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,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,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,
@@ -209,7 +570,49 @@ _C_UPPER,_C_UPPER,0,_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
 };
 
-static byte _U_cat_24[256] = {
+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 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 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,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -221,15 +624,10 @@ static byte _U_cat_24[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,_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,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_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,
@@ -241,13 +639,21 @@ _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,
+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_33[256] = {
+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,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -255,19 +661,11 @@ static byte _U_cat_33[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,_C_LOWER,_C_UPPER,_C_LOWER,0,_C_LOWER,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_LOWER,0,0,0,_C_LOWER,_C_LOWER,_C_LOWER,
-0,0,0,0,0,0,0,0,0,_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,_C_LOWER,0,0,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,_C_UPPER,0,0,0,0,0,_C_UPPER,
-0,_C_UPPER,0,0,_C_LOWER,_C_LOWER,0,0,0,0,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,0,_C_UPPER,_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,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,
@@ -278,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,
@@ -285,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,_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,
+0,0,0,0,0,0,0,0,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,
@@ -316,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,
@@ -323,7 +817,13 @@ _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,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -333,17 +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,_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,_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,_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,
@@ -361,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,
@@ -377,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,
@@ -399,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,
@@ -415,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_BLANK
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_U_CTRL
 };
 
-static byte _U_cat_FF[256] = {
+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 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,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-_U_cat_10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_cat_1E,_U_cat_1F,
-_U_cat_20,_U_cat_21,NULL,NULL,_U_cat_24,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-_U_cat_30,NULL,NULL,_U_cat_33,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,
+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,_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
 };