https://git.reactos.org/?p=reactos.git;a=commitdiff;h=29ff85ba5d77b3398b6922aeaec3c97a18a6ccd5

commit 29ff85ba5d77b3398b6922aeaec3c97a18a6ccd5
Author:     Amine Khaldi <[email protected]>
AuthorDate: Sun Dec 1 19:41:14 2019 +0100
Commit:     Amine Khaldi <[email protected]>
CommitDate: Sun Dec 1 19:41:14 2019 +0100

    [USP10] Sync with Wine Staging 4.18. CORE-16441
---
 dll/win32/usp10/CMakeLists.txt  |   1 +
 dll/win32/usp10/bidi.c          |  54 +---
 dll/win32/usp10/bracket.c       |   4 +-
 dll/win32/usp10/breaking.c      |   2 +-
 dll/win32/usp10/direction.c     | 575 ++++++++++++++++++++++++++++++++++++++++
 dll/win32/usp10/indic.c         |   2 +-
 dll/win32/usp10/indicsyllable.c |  74 +++---
 dll/win32/usp10/linebreak.c     | 240 +++++++++--------
 dll/win32/usp10/mirror.c        |   4 +-
 dll/win32/usp10/opentype.c      |   2 +-
 dll/win32/usp10/precomp.h       |   3 -
 dll/win32/usp10/shaping.c       |   8 +-
 dll/win32/usp10/usp10.c         |  84 +++---
 media/doc/README.WINE           |   2 +-
 14 files changed, 795 insertions(+), 260 deletions(-)

diff --git a/dll/win32/usp10/CMakeLists.txt b/dll/win32/usp10/CMakeLists.txt
index 57fc2be44f7..26dbe33ec71 100644
--- a/dll/win32/usp10/CMakeLists.txt
+++ b/dll/win32/usp10/CMakeLists.txt
@@ -7,6 +7,7 @@ list(APPEND SOURCE
     bidi.c
     bracket.c
     breaking.c
+    direction.c
     indic.c
     indicsyllable.c
     linebreak.c
diff --git a/dll/win32/usp10/bidi.c b/dll/win32/usp10/bidi.c
index 0fb03ef061a..7de2be51d7c 100644
--- a/dll/win32/usp10/bidi.c
+++ b/dll/win32/usp10/bidi.c
@@ -41,8 +41,6 @@
  * has been modified.
  */
 
-#include "config.h"
-
 #include <stdarg.h>
 #include <stdlib.h>
 #include "windef.h"
@@ -50,7 +48,6 @@
 #include "wingdi.h"
 #include "winnls.h"
 #include "usp10.h"
-#include "wine/unicode.h"
 #include "wine/debug.h"
 #include "wine/heap.h"
 #include "wine/list.h"
@@ -58,6 +55,7 @@
 #include "usp10_internal.h"
 
 extern const unsigned short bidi_bracket_table[] DECLSPEC_HIDDEN;
+extern const unsigned short bidi_direction_table[] DECLSPEC_HIDDEN;
 
 WINE_DEFAULT_DEBUG_CHANNEL(bidi);
 
@@ -162,56 +160,14 @@ static inline void dump_types(const char* header, WORD 
*types, int start, int en
 /* Convert the libwine information to the direction enum */
 static void classify(const WCHAR *string, WORD *chartype, DWORD count, const 
SCRIPT_CONTROL *c)
 {
-    static const enum directions dir_map[16] =
-    {
-        L,  /* unassigned defaults to L */
-        L,
-        R,
-        EN,
-        ES,
-        ET,
-        AN,
-        CS,
-        B,
-        S,
-        WS,
-        ON,
-        AL,
-        NSM,
-        BN,
-        PDF  /* also LRE, LRO, RLE, RLO */
-    };
-
     unsigned i;
 
     for (i = 0; i < count; ++i)
     {
-        chartype[i] = dir_map[get_char_typeW(string[i]) >> 12];
-        switch (chartype[i])
+        chartype[i] = get_table_entry( bidi_direction_table, string[i] );
+        if (c->fLegacyBidiClass && chartype[i] == ES)
         {
-        case ES:
-            if (!c->fLegacyBidiClass) break;
-            switch (string[i])
-            {
-            case '-':
-            case '+': chartype[i] = NI; break;
-            case '/': chartype[i] = CS; break;
-            }
-            break;
-        case PDF:
-            switch (string[i])
-            {
-            case 0x202A: chartype[i] = LRE; break;
-            case 0x202B: chartype[i] = RLE; break;
-            case 0x202C: chartype[i] = PDF; break;
-            case 0x202D: chartype[i] = LRO; break;
-            case 0x202E: chartype[i] = RLO; break;
-            case 0x2066: chartype[i] = LRI; break;
-            case 0x2067: chartype[i] = RLI; break;
-            case 0x2068: chartype[i] = FSI; break;
-            case 0x2069: chartype[i] = PDI; break;
-            }
-            break;
+            if (string[i] == '+' || string[i] == '-') chartype[i] = NI;
         }
     }
 }
@@ -682,7 +638,7 @@ typedef struct tagBracketPair
     int end;
 } BracketPair;
 
-static int compr(const void *a, const void* b)
+static int __cdecl compr(const void *a, const void* b)
 {
     return ((BracketPair*)a)->start - ((BracketPair*)b)->start;
 }
diff --git a/dll/win32/usp10/bracket.c b/dll/win32/usp10/bracket.c
index 16df6381a66..210495f38f1 100644
--- a/dll/win32/usp10/bracket.c
+++ b/dll/win32/usp10/bracket.c
@@ -1,8 +1,8 @@
 /* Unicode Bidirectional Bracket table */
-/* generated from http://www.unicode.org/Public/11.0.0/ucd/BidiBrackets.txt */
+/* generated from http://www.unicode.org/Public/12.0.0/ucd/BidiBrackets.txt */
 /* DO NOT EDIT!! */
 
-#include "wine/unicode.h"
+#include "windef.h"
 
 const unsigned short DECLSPEC_HIDDEN bidi_bracket_table[768] =
 {
diff --git a/dll/win32/usp10/breaking.c b/dll/win32/usp10/breaking.c
index 9b12d9e63d5..480d69234af 100644
--- a/dll/win32/usp10/breaking.c
+++ b/dll/win32/usp10/breaking.c
@@ -18,7 +18,7 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  *
  */
-#include "config.h"
+
 #include <stdarg.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/dll/win32/usp10/direction.c b/dll/win32/usp10/direction.c
new file mode 100644
index 00000000000..aafd34250fd
--- /dev/null
+++ b/dll/win32/usp10/direction.c
@@ -0,0 +1,575 @@
+/* Unicode BiDi direction table */
+/* Automatically generated; DO NOT EDIT!! */
+
+#include "windef.h"
+
+const unsigned short DECLSPEC_HIDDEN bidi_direction_table[4512] =
+{
+    /* level 1 offsets */
+    0x0100, 0x0110, 0x0120, 0x0130, 0x0140, 0x0150, 0x0160, 0x0170,
+    0x0180, 0x0190, 0x01a0, 0x01b0, 0x01c0, 0x01d0, 0x01e0, 0x01f0,
+    0x0200, 0x0110, 0x0110, 0x0210, 0x0220, 0x0110, 0x0230, 0x0240,
+    0x0250, 0x0260, 0x0270, 0x0280, 0x0290, 0x02a0, 0x0110, 0x02b0,
+    0x02c0, 0x02d0, 0x02e0, 0x02f0, 0x0300, 0x0310, 0x0320, 0x0310,
+    0x0110, 0x0310, 0x0310, 0x0330, 0x0340, 0x0350, 0x0360, 0x0370,
+    0x0380, 0x0390, 0x03a0, 0x03b0, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x03c0, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0110, 0x03d0, 0x0110, 0x03e0, 0x03f0,
+    0x0400, 0x0410, 0x0420, 0x0430, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0110, 0x0110, 0x0110, 0x0440, 0x0450, 0x0460, 0x0470, 0x0480,
+    /* level 2 offsets */
+    0x0490, 0x04a0, 0x04b0, 0x04c0, 0x04d0, 0x04e0, 0x04d0, 0x04f0,
+    0x0500, 0x0510, 0x0520, 0x0530, 0x0540, 0x0550, 0x0540, 0x0550,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x0540, 0x0540, 0x0540, 0x0560, 0x0570, 0x0570, 0x0580, 0x0590,
+    0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05b0,
+    0x05c0, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x05d0,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x05e0, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x05f0, 0x0600, 0x05a0, 0x0610, 0x0620, 0x0630, 0x0640, 0x0650,
+    0x0660, 0x0670, 0x0680, 0x0680, 0x0690, 0x05a0, 0x06a0, 0x06b0,
+    0x0680, 0x0680, 0x0680, 0x0680, 0x0680, 0x06c0, 0x06d0, 0x06e0,
+    0x06f0, 0x0700, 0x0680, 0x05a0, 0x0710, 0x0680, 0x0680, 0x0680,
+    0x0680, 0x0680, 0x0720, 0x0730, 0x0630, 0x0630, 0x0740, 0x0750,
+    0x0630, 0x0760, 0x0770, 0x0780, 0x0630, 0x0790, 0x07a0, 0x0540,
+    0x0540, 0x0540, 0x0680, 0x07b0, 0x0540, 0x07c0, 0x07d0, 0x05a0,
+    0x07e0, 0x0540, 0x0540, 0x07f0, 0x0800, 0x0810, 0x0820, 0x0540,
+    0x0830, 0x0540, 0x0540, 0x0840, 0x0850, 0x0540, 0x0820, 0x0860,
+    0x0870, 0x0540, 0x0540, 0x0840, 0x0880, 0x0830, 0x0540, 0x0890,
+    0x0870, 0x0540, 0x0540, 0x0840, 0x08a0, 0x0540, 0x0820, 0x08b0,
+    0x0830, 0x0540, 0x0540, 0x08c0, 0x0850, 0x08d0, 0x0820, 0x0540,
+    0x08e0, 0x0540, 0x0540, 0x0540, 0x08f0, 0x0540, 0x0540, 0x0900,
+    0x0910, 0x0540, 0x0540, 0x0920, 0x0930, 0x0940, 0x0820, 0x0950,
+    0x0830, 0x0540, 0x0540, 0x0840, 0x0960, 0x0540, 0x0820, 0x0540,
+    0x0970, 0x0540, 0x0540, 0x0980, 0x0850, 0x0540, 0x0820, 0x0540,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0990, 0x09a0, 0x0540, 0x0540,
+    0x0540, 0x0540, 0x0540, 0x09b0, 0x09c0, 0x0540, 0x0540, 0x0540,
+    0x0540, 0x0540, 0x0540, 0x09d0, 0x09e0, 0x0540, 0x0540, 0x0540,
+    0x0540, 0x09f0, 0x0540, 0x0a00, 0x0540, 0x0540, 0x0540, 0x0a10,
+    0x0a20, 0x0a30, 0x05a0, 0x0a40, 0x08d0, 0x0540, 0x0540, 0x0540,
+    0x0540, 0x0540, 0x0a50, 0x0a60, 0x0540, 0x0a70, 0x0a80, 0x0a90,
+    0x0aa0, 0x0ab0, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0a50, 0x0540, 0x0540,
+    0x0540, 0x0ac0, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x04d0, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x0ad0, 0x0ae0, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x0540, 0x0af0, 0x0540, 0x0af0, 0x0540, 0x0820, 0x0540, 0x0820,
+    0x0540, 0x0540, 0x0540, 0x0b00, 0x0b10, 0x0b20, 0x0540, 0x0ac0,
+    0x0b30, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x0940, 0x0540, 0x0b40, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x0540, 0x0540, 0x0b50, 0x0b60, 0x0b70, 0x0540, 0x0540, 0x0540,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0b80, 0x0590, 0x0590,
+    0x0540, 0x0b90, 0x0540, 0x0540, 0x0540, 0x0ba0, 0x0bb0, 0x0bc0,
+    0x0540, 0x0540, 0x0540, 0x0bd0, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x0be0, 0x0540, 0x0540, 0x0bf0, 0x08e0, 0x0540, 0x0c00, 0x0be0,
+    0x0970, 0x0540, 0x0c10, 0x0540, 0x0540, 0x0540, 0x0c20, 0x0970,
+    0x0540, 0x0540, 0x0c30, 0x0c40, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0c50, 0x0c60, 0x0c70,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x05a0, 0x05a0, 0x05a0, 0x0c80,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x0540, 0x0540, 0x0540, 0x0c90, 0x0ca0, 0x0cb0, 0x0cb0, 0x0cc0,
+    0x0cd0, 0x0590, 0x0ce0, 0x0cf0, 0x0d00, 0x0d10, 0x0d20, 0x0d30,
+    0x0d40, 0x0540, 0x0d50, 0x0d50, 0x0540, 0x05a0, 0x05a0, 0x0a80,
+    0x0d60, 0x0d70, 0x0d80, 0x0d90, 0x0da0, 0x0590, 0x0540, 0x0540,
+    0x0db0, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590,
+    0x0590, 0x0dc0, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590,
+    0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590,
+    0x0590, 0x0590, 0x0590, 0x0dd0, 0x0540, 0x0540, 0x0540, 0x04e0,
+    0x0590, 0x0de0, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590,
+    0x0590, 0x0590, 0x0df0, 0x0540, 0x0e00, 0x0540, 0x0590, 0x0590,
+    0x0e10, 0x0e20, 0x0540, 0x0540, 0x0540, 0x0540, 0x0e30, 0x0590,
+    0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590,
+    0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590,
+    0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590,
+    0x0590, 0x0590, 0x0e40, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590,
+    0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0e50,
+    0x0590, 0x0e60, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0e70, 0x0e80,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0e90,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x05a0, 0x05a0,
+    0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0540, 0x0540, 0x0540,
+    0x0590, 0x0ea0, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0eb0,
+    0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590,
+    0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0dd0, 0x0540, 0x0ec0,
+    0x0ed0, 0x0590, 0x0ee0, 0x0ef0, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x0540, 0x0f00, 0x04d0, 0x0540, 0x0540, 0x0540, 0x0540, 0x0f10,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0590, 0x0590, 0x0eb0, 0x0540,
+    0x0540, 0x0cc0, 0x0540, 0x0540, 0x0540, 0x0590, 0x0540, 0x0f20,
+    0x0540, 0x0540, 0x0540, 0x0f30, 0x0f40, 0x0540, 0x0540, 0x0540,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0f50,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0b80, 0x0540, 0x0f60,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0590, 0x0590, 0x0590, 0x0590,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x0540, 0x0590, 0x0590, 0x0590, 0x0df0, 0x0540, 0x0540, 0x0540,
+    0x0cb0, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0e90, 0x0f70,
+    0x0540, 0x0920, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0970,
+    0x0590, 0x0590, 0x0f80, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x0f90, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x0fa0, 0x0540, 0x0fb0, 0x0fc0, 0x0540, 0x0540, 0x0540, 0x0fd0,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0fe0, 0x0540, 0x05a0, 0x0ff0,
+    0x0540, 0x0540, 0x1000, 0x0540, 0x1010, 0x0970, 0x0540, 0x0540,
+    0x07e0, 0x0540, 0x0540, 0x1020, 0x0540, 0x0540, 0x1030, 0x0540,
+    0x0540, 0x0540, 0x1040, 0x1050, 0x1060, 0x0540, 0x0540, 0x0840,
+    0x0540, 0x0540, 0x0540, 0x1070, 0x0830, 0x0540, 0x0960, 0x08d0,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x1080, 0x0540,
+    0x0540, 0x1090, 0x10a0, 0x10b0, 0x10c0, 0x0680, 0x0680, 0x0680,
+    0x0680, 0x0680, 0x0680, 0x0680, 0x10d0, 0x10e0, 0x0680, 0x0680,
+    0x0680, 0x0680, 0x0680, 0x0680, 0x0680, 0x0680, 0x0680, 0x0680,
+    0x0680, 0x0680, 0x0680, 0x0680, 0x0680, 0x0680, 0x0680, 0x0680,
+    0x0680, 0x0680, 0x0680, 0x10f0, 0x0540, 0x0680, 0x0680, 0x0680,
+    0x0680, 0x1100, 0x0680, 0x0680, 0x1110, 0x0540, 0x0540, 0x1120,
+    0x05a0, 0x0ac0, 0x05a0, 0x0590, 0x0590, 0x1130, 0x1140, 0x1150,
+    0x0680, 0x0680, 0x0680, 0x0680, 0x0680, 0x0680, 0x0680, 0x1160,
+    0x1170, 0x04c0, 0x04d0, 0x04e0, 0x04d0, 0x04e0, 0x0dd0, 0x0540,
+    0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x1180, 0x1190,
+    /* values */
+    0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a,
+    0x000a, 0x000b, 0x000d, 0x000b, 0x000c, 0x000d, 0x000a, 0x000a,
+    0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a,
+    0x000a, 0x000a, 0x000a, 0x000a, 0x000d, 0x000d, 0x000d, 0x000b,
+    0x000c, 0x0000, 0x0000, 0x0009, 0x0009, 0x0009, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0008, 0x0007, 0x0008, 0x0007, 0x0007,
+    0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
+    0x0004, 0x0004, 0x0007, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a,
+    0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000d, 0x000a, 0x000a,
+    0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a,
+    0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a,
+    0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a,
+    0x0007, 0x0000, 0x0009, 0x0009, 0x0009, 0x0009, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x000a, 0x0000, 0x0000,
+    0x0009, 0x0009, 0x0004, 0x0004, 0x0000, 0x0001, 0x0000, 0x0000,
+    0x0000, 0x0004, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0001, 0x0000,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0000, 0x0001, 0x0001, 0x0000, 0x0000, 0x0009,
+    0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0002, 0x0006,
+    0x0002, 0x0006, 0x0006, 0x0002, 0x0006, 0x0006, 0x0002, 0x0006,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
+    0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
+    0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
+    0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0002,
+    0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0000, 0x0000,
+    0x0005, 0x0009, 0x0009, 0x0005, 0x0007, 0x0005, 0x0000, 0x0000,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0005, 0x0005, 0x0001, 0x0005, 0x0005,
+    0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
+    0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
+    0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
+    0x0005, 0x0005, 0x0005, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003,
+    0x0003, 0x0003, 0x0009, 0x0003, 0x0003, 0x0005, 0x0005, 0x0005,
+    0x0006, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
+    0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
+    0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0003, 0x0000, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0005, 0x0005, 0x0006,
+    0x0006, 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, 0x0005, 0x0005,
+    0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
+    0x0004, 0x0004, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
+    0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
+    0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0001, 0x0005,
+    0x0005, 0x0006, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
+    0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0005, 0x0005, 0x0005,
+    0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0005, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
+    0x0002, 0x0002, 0x0002, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0002, 0x0002, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0002, 0x0001, 0x0001, 0x0006, 0x0002, 0x0002,
+    0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0002, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0002, 0x0006, 0x0006, 0x0006,
+    0x0002, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001,
+    0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
+    0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001,
+    0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
+    0x0002, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0002, 0x0001,
+    0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
+    0x0005, 0x0005, 0x0005, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0001, 0x0005, 0x0005,
+    0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0003, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0006, 0x0001, 0x0006, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001,
+    0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0009, 0x0009, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0009, 0x0001, 0x0001, 0x0006, 0x0001,
+    0x0001, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006,
+    0x0006, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001,
+    0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0006,
+    0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001,
+    0x0001, 0x0009, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0006,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0009, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0006, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006,
+    0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006,
+    0x0006, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0001, 0x0001,
+    0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0001, 0x0006, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0006, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0009,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001,
+    0x0001, 0x0006, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0006,
+    0x0001, 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001,
+    0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0006, 0x0006,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0001, 0x0006, 0x0006, 0x0001, 0x0001, 0x0006, 0x0006, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006,
+    0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0006, 0x0006, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x000c, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0001, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001,
+    0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0009, 0x0001, 0x0006, 0x0001, 0x0001,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x0006, 0x000a, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006,
+    0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006,
+    0x0006, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001,
+    0x0006, 0x0001, 0x0006, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0001, 0x0006, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001,
+    0x0006, 0x0006, 0x0001, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001,
+    0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0006,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0006, 0x0006,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0006, 0x0006, 0x0006, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0001,
+    0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000,
+    0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0001,
+    0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c,
+    0x000c, 0x000c, 0x000c, 0x000a, 0x000a, 0x000a, 0x0001, 0x0002,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x000c, 0x000d, 0x0011, 0x000f, 0x0012, 0x0010, 0x000e, 0x0007,
+    0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000c,
+    0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0001, 0x0013, 0x0014,
+    0x0015, 0x0016, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a,
+    0x0004, 0x0001, 0x0001, 0x0001, 0x0004, 0x0004, 0x0004, 0x0004,
+    0x0004, 0x0004, 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0001,
+    0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
+    0x0004, 0x0004, 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0001,
+    0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009,
+    0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009,
+    0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001,
+    0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000,
+    0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000,
+    0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0009, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0000, 0x0000, 0x0008, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
+    0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
+    0x0004, 0x0004, 0x0004, 0x0004, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006,
+    0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x000c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001,
+    0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0006, 0x0006, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0001,
+    0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000,
+    0x0006, 0x0006, 0x0006, 0x0000, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0001,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0009, 0x0009, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006,
+    0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
+    0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0006, 0x0006,
+    0x0006, 0x0006, 0x0001, 0x0001, 0x0006, 0x0006, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001,
+    0x0001, 0x0006, 0x0006, 0x0001, 0x0001, 0x0006, 0x0006, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0001,
+    0x0006, 0x0001, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0006,
+    0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001,
+    0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0002, 0x0006, 0x0002,
+    0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
+    0x0002, 0x0008, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
+    0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001,
+    0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001, 0x0002, 0x0001,
+    0x0002, 0x0002, 0x0001, 0x0002, 0x0002, 0x0001, 0x0002, 0x0002,
+    0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
+    0x0005, 0x0005, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
+    0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
+    0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
+    0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0000, 0x0000,
+    0x0001, 0x0001, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
+    0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
+    0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
+    0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0000, 0x0001, 0x0001,
+    0x0007, 0x0000, 0x0007, 0x0001, 0x0000, 0x0007, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0009,
+    0x0000, 0x0000, 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0001,
+    0x0000, 0x0009, 0x0009, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0001, 0x0005, 0x0005,
+    0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
+    0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
+    0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0001, 0x0001, 0x000a,
+    0x0001, 0x0000, 0x0000, 0x0009, 0x0009, 0x0009, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0008, 0x0007, 0x0008, 0x0007, 0x0007,
+    0x0009, 0x0009, 0x0000, 0x0000, 0x0000, 0x0009, 0x0009, 0x0001,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001
+};
diff --git a/dll/win32/usp10/indic.c b/dll/win32/usp10/indic.c
index 5a228e88dea..b537eb232d9 100644
--- a/dll/win32/usp10/indic.c
+++ b/dll/win32/usp10/indic.c
@@ -18,7 +18,7 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  *
  */
-#include "config.h"
+
 #include <stdarg.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/dll/win32/usp10/indicsyllable.c b/dll/win32/usp10/indicsyllable.c
index fba732bc149..bc13fec2940 100644
--- a/dll/win32/usp10/indicsyllable.c
+++ b/dll/win32/usp10/indicsyllable.c
@@ -1,11 +1,11 @@
 /* Unicode Indic Syllabic Category */
-/* generated from 
http://www.unicode.org/Public/11.0.0/ucd/IndicSyllabicCategory.txt */
-/*       and from 
http://www.unicode.org/Public/11.0.0/ucd/IndicPositionalCategory.txt */
+/* generated from 
http://www.unicode.org/Public/12.0.0/ucd/IndicSyllabicCategory.txt */
+/*       and from 
http://www.unicode.org/Public/12.0.0/ucd/IndicPositionalCategory.txt */
 /* DO NOT EDIT!! */
 
-#include "wine/unicode.h"
+#include "windef.h"
 
-const unsigned short DECLSPEC_HIDDEN indic_syllabic_table[3328] =
+const unsigned short DECLSPEC_HIDDEN indic_syllabic_table[3344] =
 {
     /* level 1 offsets */
     0x0100, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
@@ -56,35 +56,35 @@ const unsigned short DECLSPEC_HIDDEN 
indic_syllabic_table[3328] =
     0x05c0, 0x0530, 0x02f0, 0x05d0, 0x05e0, 0x05f0, 0x0330, 0x0600,
     0x0610, 0x0620, 0x02f0, 0x0630, 0x0640, 0x0650, 0x0400, 0x0660,
     0x0670, 0x02f0, 0x0680, 0x0690, 0x06a0, 0x0290, 0x0270, 0x0270,
-    0x06b0, 0x06c0, 0x06d0, 0x06e0, 0x06f0, 0x0700, 0x0270, 0x0270,
-    0x0270, 0x0710, 0x0720, 0x0730, 0x0740, 0x02f0, 0x0750, 0x0760,
-    0x0770, 0x0780, 0x0790, 0x07a0, 0x07b0, 0x0270, 0x0270, 0x0270,
-    0x02f0, 0x02f0, 0x07c0, 0x07d0, 0x07e0, 0x07f0, 0x0800, 0x0810,
-    0x0820, 0x0830, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270,
-    0x0840, 0x0850, 0x0860, 0x0850, 0x0860, 0x0870, 0x0840, 0x0880,
-    0x02f0, 0x02f0, 0x0890, 0x08a0, 0x08b0, 0x08c0, 0x0290, 0x0270,
-    0x08d0, 0x0680, 0x08e0, 0x08f0, 0x0400, 0x02f0, 0x0900, 0x0910,
-    0x02f0, 0x02f0, 0x0920, 0x0930, 0x0940, 0x0290, 0x0270, 0x0270,
+    0x06b0, 0x02f0, 0x06c0, 0x06d0, 0x06e0, 0x06f0, 0x0270, 0x0270,
+    0x0270, 0x0700, 0x0710, 0x0720, 0x0730, 0x02f0, 0x0740, 0x0750,
+    0x0760, 0x0770, 0x0780, 0x0790, 0x07a0, 0x0270, 0x0270, 0x0270,
+    0x02f0, 0x02f0, 0x07b0, 0x07c0, 0x07d0, 0x07e0, 0x07f0, 0x0800,
+    0x0810, 0x0820, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270,
+    0x0830, 0x0840, 0x0850, 0x0840, 0x0850, 0x0860, 0x0830, 0x0870,
+    0x02f0, 0x02f0, 0x0880, 0x0890, 0x08a0, 0x08b0, 0x0290, 0x0270,
+    0x08c0, 0x0680, 0x08d0, 0x08e0, 0x0400, 0x02f0, 0x08f0, 0x0900,
+    0x02f0, 0x02f0, 0x0910, 0x0920, 0x0930, 0x0940, 0x0270, 0x0270,
     0x02f0, 0x0950, 0x02f0, 0x02f0, 0x0960, 0x0970, 0x0980, 0x0990,
     0x0290, 0x0290, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270,
-    0x09a0, 0x0860, 0x02f0, 0x09b0, 0x09c0, 0x0290, 0x09d0, 0x09e0,
+    0x09a0, 0x0850, 0x02f0, 0x09b0, 0x09c0, 0x0290, 0x09d0, 0x09e0,
     0x09f0, 0x02f0, 0x0a00, 0x0a10, 0x02f0, 0x02f0, 0x0a20, 0x0a30,
     0x02f0, 0x02f0, 0x0a40, 0x0a50, 0x0a60, 0x0270, 0x0270, 0x0270,
     0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0a70, 0x0a80, 0x0a90,
     0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270,
     0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0aa0,
     0x0ab0, 0x0ac0, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0ad0,
-    0x0ae0, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270,
+    0x0ae0, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0af0,
     0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270,
-    0x0270, 0x0270, 0x0270, 0x0270, 0x0af0, 0x0270, 0x0270, 0x0270,
-    0x0b00, 0x02f0, 0x0b10, 0x0270, 0x02f0, 0x0b20, 0x0b30, 0x0b40,
-    0x0b50, 0x0b60, 0x02f0, 0x0b70, 0x0b80, 0x0290, 0x0b90, 0x0ba0,
-    0x0bb0, 0x02f0, 0x0bc0, 0x02f0, 0x0bd0, 0x0be0, 0x0270, 0x0270,
-    0x0bf0, 0x02f0, 0x02f0, 0x0c00, 0x0c10, 0x0290, 0x0c20, 0x0c30,
-    0x0c40, 0x02f0, 0x0c50, 0x0c60, 0x0c70, 0x0290, 0x02f0, 0x0c80,
-    0x02f0, 0x02f0, 0x02f0, 0x0c90, 0x0ca0, 0x0270, 0x0cb0, 0x0cc0,
+    0x0270, 0x0270, 0x0270, 0x0270, 0x0b00, 0x0270, 0x0270, 0x0270,
+    0x0b10, 0x02f0, 0x0b20, 0x0270, 0x02f0, 0x0b30, 0x0b40, 0x0b50,
+    0x0b60, 0x0b70, 0x02f0, 0x0b80, 0x0b90, 0x0290, 0x0ba0, 0x0bb0,
+    0x0bc0, 0x02f0, 0x0bd0, 0x02f0, 0x0be0, 0x0bf0, 0x0270, 0x0270,
+    0x0c00, 0x02f0, 0x02f0, 0x0c10, 0x0c20, 0x0290, 0x0c30, 0x0c40,
+    0x0c50, 0x02f0, 0x0c60, 0x0c70, 0x0c80, 0x0290, 0x02f0, 0x0c90,
+    0x02f0, 0x02f0, 0x02f0, 0x0ca0, 0x0cb0, 0x0270, 0x0cc0, 0x0cd0,
     0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270,
-    0x0270, 0x0270, 0x0270, 0x0270, 0x0cd0, 0x0ce0, 0x0cf0, 0x0290,
+    0x0270, 0x0270, 0x0270, 0x0270, 0x0ce0, 0x0cf0, 0x0d00, 0x0290,
     /* values */
     0x5f00, 0x9c00, 0x9500, 0x9500, 0x8600, 0x8600, 0x8600, 0x8600,
     0x7e00, 0x6e00, 0x6c00, 0x6000, 0x5100, 0x3c00, 0x2600, 0x1900,
@@ -136,7 +136,7 @@ const unsigned short DECLSPEC_HIDDEN 
indic_syllabic_table[3328] =
     0x000a, 0x000a, 0x0000, 0x0000, 0x0604, 0x0000, 0x0107, 0x0207,
     0x0107, 0x0607, 0x0607, 0x0000, 0x0000, 0x0000, 0x0000, 0x0507,
     0x0507, 0x0000, 0x0000, 0x0507, 0x0507, 0x0605, 0x0000, 0x0000,
-    0x0000, 0x0019, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0619, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x000a, 0x000a, 0x000a, 0x000a, 0x0000, 0x000a, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
@@ -184,7 +184,7 @@ const unsigned short DECLSPEC_HIDDEN 
indic_syllabic_table[3328] =
     0x0007, 0x0000, 0x0507, 0x0507, 0x0507, 0x0505, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0507, 0x0607, 0x0000,
     0x000a, 0x000a, 0x000a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0501, 0x0101, 0x0102, 0x0000, 0x0006, 0x0006, 0x0006,
+    0x0001, 0x0501, 0x0101, 0x0102, 0x0000, 0x0006, 0x0006, 0x0006,
     0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, 0x0006, 0x0006,
     0x000a, 0x000a, 0x000a, 0x000a, 0x0000, 0x000a, 0x000a, 0x000a,
     0x000a, 0x000a, 0x0000, 0x0000, 0x0604, 0x0003, 0x0107, 0x0507,
@@ -224,14 +224,12 @@ const unsigned short DECLSPEC_HIDDEN 
indic_syllabic_table[3328] =
     0x0607, 0x0607, 0x0616, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0307, 0x0307, 0x0307, 0x0307, 0x0307, 0x0107, 0x0000, 0x0507,
     0x0513, 0x0513, 0x0513, 0x0513, 0x0522, 0x0501, 0x0516, 0x0000,
-    0x0000, 0x000a, 0x000a, 0x0000, 0x000a, 0x0000, 0x0000, 0x000a,
-    0x000a, 0x0000, 0x000a, 0x0000, 0x0000, 0x000a, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x000a, 0x000a, 0x000a,
-    0x0000, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a,
-    0x0000, 0x000a, 0x000a, 0x000a, 0x0000, 0x000a, 0x0000, 0x000a,
-    0x0000, 0x0000, 0x000a, 0x000a, 0x0000, 0x000a, 0x000a, 0x0000,
+    0x0000, 0x000a, 0x000a, 0x0000, 0x000a, 0x0000, 0x000a, 0x000a,
+    0x000a, 0x000a, 0x000a, 0x0000, 0x000a, 0x000a, 0x000a, 0x000a,
+    0x000a, 0x000a, 0x000a, 0x000a, 0x0000, 0x000a, 0x0000, 0x000a,
+    0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0000,
     0x0107, 0x0507, 0x0107, 0x0107, 0x0507, 0x0507, 0x0507, 0x0507,
-    0x0607, 0x0607, 0x0000, 0x0507, 0x060e, 0x000e, 0x0000, 0x0000,
+    0x0607, 0x0607, 0x0616, 0x0507, 0x060e, 0x000e, 0x0000, 0x0000,
     0x0307, 0x0307, 0x0307, 0x0307, 0x0307, 0x0000, 0x0000, 0x0000,
     0x0513, 0x0513, 0x0513, 0x0513, 0x0500, 0x0501, 0x0000, 0x0000,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
@@ -308,6 +306,8 @@ const unsigned short DECLSPEC_HIDDEN 
indic_syllabic_table[3328] =
     0x0107, 0x0107, 0x0007, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107,
     0x0107, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f,
     0x0113, 0x0113, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
+    0x001d, 0x001d, 0x001d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0507,
     0x0607, 0x0207, 0x0107, 0x0507, 0x0000, 0x0000, 0x0000, 0x0000,
     0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a,
@@ -348,8 +348,8 @@ const unsigned short DECLSPEC_HIDDEN 
indic_syllabic_table[3328] =
     0x0619, 0x0619, 0x0519, 0x0519, 0x0619, 0x0619, 0x0619, 0x0619,
     0x0519, 0x0119, 0x0d00, 0x0d00, 0x0d00, 0x0d00, 0x0d00, 0x0d00,
     0x0d00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0600, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0002, 0x0002, 0x0519, 0x001f, 0x001f, 0x0119,
-    0x0019, 0x0019, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x000b, 0x000b, 0x0519, 0x001f, 0x001f, 0x0119,
+    0x0019, 0x0019, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0521, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -360,9 +360,11 @@ const unsigned short DECLSPEC_HIDDEN 
indic_syllabic_table[3328] =
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0021, 0x0021, 0x0021, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0519, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0000, 0x0000, 0x0000,
-    0x0006, 0x0006, 0x0000, 0x0006, 0x0006, 0x0006, 0x0516, 0x000a,
+    0x0006, 0x0006, 0x0507, 0x0006, 0x0006, 0x0006, 0x0505, 0x000a,
     0x000a, 0x000a, 0x000a, 0x0501, 0x000a, 0x000a, 0x000a, 0x000a,
     0x000a, 0x000a, 0x000a, 0x0107, 0x0107, 0x0607, 0x0507, 0x0107,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -395,7 +397,7 @@ const unsigned short DECLSPEC_HIDDEN 
indic_syllabic_table[3328] =
     0x0501, 0x0501, 0x050c, 0x0102, 0x0006, 0x0006, 0x0006, 0x0006,
     0x0006, 0x000a, 0x000a, 0x000a, 0x0006, 0x0006, 0x0006, 0x000a,
     0x000a, 0x000a, 0x000a, 0x0504, 0x0107, 0x0107, 0x0507, 0x0507,
-    0x0607, 0x0607, 0x0207, 0x0207, 0x0507, 0x010d, 0x010e, 0x000e,
+    0x0607, 0x0607, 0x0207, 0x0207, 0x0507, 0x060e, 0x010e, 0x000e,
     0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0507, 0x0000, 0x000a,
diff --git a/dll/win32/usp10/linebreak.c b/dll/win32/usp10/linebreak.c
index 6d92c4465bc..904efc6538c 100644
--- a/dll/win32/usp10/linebreak.c
+++ b/dll/win32/usp10/linebreak.c
@@ -1,10 +1,10 @@
 /* Unicode Line Break Properties */
-/* generated from http://www.unicode.org/Public/11.0.0/ucd/LineBreak.txt */
+/* generated from http://www.unicode.org/Public/12.0.0/ucd/LineBreak.txt */
 /* DO NOT EDIT!! */
 
-#include "wine/unicode.h"
+#include "windef.h"
 
-const unsigned short DECLSPEC_HIDDEN wine_linebreak_table[7232] =
+const unsigned short DECLSPEC_HIDDEN wine_linebreak_table[7216] =
 {
     /* level 1 offsets */
     0x0100, 0x0110, 0x0120, 0x0130, 0x0140, 0x0150, 0x0160, 0x0170,
@@ -69,119 +69,119 @@ const unsigned short DECLSPEC_HIDDEN 
wine_linebreak_table[7232] =
     0x0b70, 0x0ae0, 0x05b0, 0x0b80, 0x0b90, 0x0ba0, 0x0950, 0x0bb0,
     0x0bc0, 0x0bd0, 0x05b0, 0x0be0, 0x0bf0, 0x0c00, 0x09b0, 0x0c10,
     0x0c20, 0x0c30, 0x0c30, 0x0c40, 0x0c50, 0x0c60, 0x0870, 0x0870,
-    0x0c70, 0x0c80, 0x0c90, 0x0ca0, 0x0cb0, 0x0cc0, 0x0870, 0x0870,
-    0x0cd0, 0x0ce0, 0x07b0, 0x0cf0, 0x0d00, 0x05b0, 0x0d10, 0x0d20,
-    0x0d30, 0x0d40, 0x0580, 0x0d50, 0x0d60, 0x0d70, 0x0870, 0x0870,
-    0x0c30, 0x0c30, 0x0c30, 0x0c30, 0x0d80, 0x0c30, 0x0c30, 0x0c30,
-    0x0c30, 0x0d90, 0x05b0, 0x05b0, 0x0da0, 0x05b0, 0x05b0, 0x05b0,
-    0x0db0, 0x0db0, 0x0db0, 0x0db0, 0x0db0, 0x0db0, 0x0dc0, 0x0dc0,
-    0x0dc0, 0x0dc0, 0x0dd0, 0x0de0, 0x0de0, 0x0de0, 0x0de0, 0x0de0,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0df0, 0x0e00, 0x05b0, 0x05b0,
-    0x0df0, 0x05b0, 0x05b0, 0x0e10, 0x0e20, 0x0e30, 0x05b0, 0x05b0,
-    0x05b0, 0x0e20, 0x05b0, 0x05b0, 0x05b0, 0x0e40, 0x0e50, 0x0d10,
-    0x05b0, 0x0e60, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0e70,
-    0x0e80, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
+    0x0c70, 0x0c30, 0x0c80, 0x0c90, 0x0ca0, 0x0cb0, 0x0870, 0x0870,
+    0x0cc0, 0x0cd0, 0x07b0, 0x0ce0, 0x0cf0, 0x05b0, 0x0d00, 0x0d10,
+    0x0d20, 0x0d30, 0x0580, 0x0d40, 0x0d50, 0x0d60, 0x0870, 0x0870,
+    0x0c30, 0x0c30, 0x0c30, 0x0c30, 0x0d70, 0x0c30, 0x0c30, 0x0c30,
+    0x0c30, 0x0d80, 0x05b0, 0x05b0, 0x0d90, 0x05b0, 0x05b0, 0x05b0,
+    0x0da0, 0x0da0, 0x0da0, 0x0da0, 0x0da0, 0x0da0, 0x0db0, 0x0db0,
+    0x0db0, 0x0db0, 0x0dc0, 0x0dd0, 0x0dd0, 0x0dd0, 0x0dd0, 0x0dd0,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0de0, 0x0df0, 0x05b0, 0x05b0,
+    0x0de0, 0x05b0, 0x05b0, 0x0e00, 0x0e10, 0x0e20, 0x05b0, 0x05b0,
+    0x05b0, 0x0e10, 0x05b0, 0x05b0, 0x05b0, 0x0e30, 0x0e40, 0x0d00,
+    0x05b0, 0x0e50, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0e60,
+    0x0e70, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
     0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
     0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
-    0x0e80, 0x0e90, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0ea0, 0x0eb0,
-    0x0ec0, 0x0ed0, 0x05b0, 0x0ee0, 0x05b0, 0x0ef0, 0x0ec0, 0x0f00,
-    0x0c30, 0x0c30, 0x0c30, 0x0c30, 0x0c30, 0x0f10, 0x0f20, 0x0e60,
-    0x0f30, 0x0f20, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0eb0,
-    0x0f40, 0x05b0, 0x0f50, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0f60,
-    0x05b0, 0x0840, 0x0f70, 0x0f70, 0x0f80, 0x0c30, 0x0f90, 0x0fa0,
-    0x0c30, 0x0c30, 0x0fb0, 0x0c30, 0x0fc0, 0x0fd0, 0x05b0, 0x05b0,
-    0x05b0, 0x0fe0, 0x0c30, 0x0c30, 0x0c30, 0x0ff0, 0x0c30, 0x1000,
-    0x0f20, 0x0f20, 0x0f90, 0x1010, 0x0870, 0x0870, 0x0870, 0x0870,
-    0x1020, 0x05b0, 0x05b0, 0x1030, 0x1040, 0x1050, 0x1060, 0x1070,
-    0x1080, 0x05b0, 0x1090, 0x07b0, 0x05b0, 0x05b0, 0x07f0, 0x10a0,
-    0x05b0, 0x05b0, 0x1030, 0x10b0, 0x10c0, 0x07b0, 0x05b0, 0x10d0,
-    0x0eb0, 0x05b0, 0x05b0, 0x10e0, 0x0a50, 0x10f0, 0x1100, 0x1110,
+    0x0e70, 0x0e80, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0e90, 0x0ea0,
+    0x0eb0, 0x0ec0, 0x05b0, 0x0ed0, 0x05b0, 0x0ee0, 0x0eb0, 0x0ef0,
+    0x0c30, 0x0c30, 0x0c30, 0x0c30, 0x0c30, 0x0f00, 0x0f10, 0x0e50,
+    0x0f20, 0x0f10, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0ea0,
+    0x0f30, 0x05b0, 0x0f40, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0f50,
+    0x05b0, 0x0840, 0x0f60, 0x0f60, 0x0f70, 0x0c30, 0x0c90, 0x0f80,
+    0x0c30, 0x0c30, 0x0f90, 0x0c30, 0x0fa0, 0x0fb0, 0x05b0, 0x05b0,
+    0x05b0, 0x0fc0, 0x0c30, 0x0c30, 0x0c30, 0x0fd0, 0x0c30, 0x0fe0,
+    0x0f10, 0x0f10, 0x0c90, 0x0ff0, 0x0870, 0x0870, 0x0870, 0x0870,
+    0x1000, 0x05b0, 0x05b0, 0x1010, 0x1020, 0x1030, 0x1040, 0x1050,
+    0x1060, 0x05b0, 0x1070, 0x07b0, 0x05b0, 0x05b0, 0x07f0, 0x1080,
+    0x05b0, 0x05b0, 0x1010, 0x1090, 0x10a0, 0x07b0, 0x05b0, 0x10b0,
+    0x0ea0, 0x05b0, 0x05b0, 0x10c0, 0x0a50, 0x10d0, 0x10e0, 0x10f0,
     0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0580, 0x0580, 0x0580, 0x1120,
-    0x05b0, 0x0e70, 0x05b0, 0x05b0, 0x0e70, 0x1130, 0x05b0, 0x1140,
-    0x05b0, 0x05b0, 0x05b0, 0x1150, 0x1150, 0x1160, 0x05b0, 0x1170,
-    0x1180, 0x1190, 0x11a0, 0x11b0, 0x11c0, 0x11d0, 0x11e0, 0x11f0,
-    0x1200, 0x0d10, 0x1210, 0x1220, 0x1230, 0x0580, 0x0580, 0x1240,
-    0x1250, 0x1260, 0x1270, 0x05b0, 0x05b0, 0x1280, 0x1290, 0x12a0,
-    0x12b0, 0x12a0, 0x05b0, 0x05b0, 0x05b0, 0x12c0, 0x05b0, 0x05b0,
-    0x12d0, 0x12e0, 0x12f0, 0x1300, 0x1310, 0x1320, 0x1330, 0x05b0,
-    0x1340, 0x1350, 0x1360, 0x1370, 0x05b0, 0x05b0, 0x1380, 0x05b0,
-    0x1390, 0x13a0, 0x13b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x13c0,
-    0x05b0, 0x05b0, 0x13d0, 0x0870, 0x0860, 0x0870, 0x13e0, 0x13e0,
-    0x13e0, 0x13e0, 0x13e0, 0x13e0, 0x13e0, 0x13e0, 0x13e0, 0x13f0,
-    0x13e0, 0x13e0, 0x13e0, 0x13e0, 0x1290, 0x13e0, 0x13e0, 0x1400,
-    0x13e0, 0x1410, 0x1420, 0x1430, 0x1440, 0x1450, 0x1460, 0x05b0,
-    0x1470, 0x1480, 0x05b0, 0x1490, 0x14a0, 0x05b0, 0x14b0, 0x14c0,
-    0x05b0, 0x14d0, 0x05b0, 0x14e0, 0x14f0, 0x1500, 0x1510, 0x1520,
-    0x1530, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1540, 0x1550, 0x1560,
-    0x13e0, 0x1570, 0x05b0, 0x05b0, 0x1580, 0x05b0, 0x1590, 0x05b0,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0580, 0x0580, 0x0580, 0x1100,
+    0x05b0, 0x0e60, 0x05b0, 0x05b0, 0x0e60, 0x1110, 0x05b0, 0x1120,
+    0x05b0, 0x05b0, 0x05b0, 0x1130, 0x1130, 0x1140, 0x05b0, 0x1150,
+    0x1160, 0x1170, 0x1180, 0x1190, 0x11a0, 0x11b0, 0x11c0, 0x11d0,
+    0x11e0, 0x0d00, 0x11f0, 0x1200, 0x1210, 0x0580, 0x0580, 0x1220,
+    0x1230, 0x1240, 0x1250, 0x05b0, 0x05b0, 0x1260, 0x1270, 0x1280,
+    0x1290, 0x1280, 0x05b0, 0x05b0, 0x05b0, 0x12a0, 0x05b0, 0x05b0,
+    0x12b0, 0x12c0, 0x12d0, 0x12e0, 0x12f0, 0x1300, 0x1310, 0x05b0,
+    0x1320, 0x1330, 0x1340, 0x1350, 0x05b0, 0x05b0, 0x1360, 0x05b0,
+    0x1370, 0x1380, 0x1390, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x13a0,
+    0x05b0, 0x05b0, 0x13b0, 0x0870, 0x0860, 0x0870, 0x13c0, 0x13c0,
+    0x13c0, 0x13c0, 0x13c0, 0x13c0, 0x13c0, 0x13c0, 0x13c0, 0x13d0,
+    0x13c0, 0x13c0, 0x13c0, 0x13c0, 0x1270, 0x13c0, 0x13c0, 0x13e0,
+    0x13c0, 0x13f0, 0x1400, 0x1410, 0x1420, 0x1430, 0x1440, 0x05b0,
+    0x1450, 0x1460, 0x05b0, 0x1470, 0x1480, 0x05b0, 0x1490, 0x14a0,
+    0x05b0, 0x14b0, 0x05b0, 0x14c0, 0x14d0, 0x14e0, 0x14f0, 0x1500,
+    0x1510, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1520, 0x1530, 0x1540,
+    0x13c0, 0x1550, 0x05b0, 0x05b0, 0x1560, 0x05b0, 0x1570, 0x05b0,
     0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
-    0x15a0, 0x15b0, 0x05b0, 0x05b0, 0x05b0, 0x1390, 0x05b0, 0x15c0,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x15d0, 0x05b0, 0x15e0,
-    0x05b0, 0x15f0, 0x05b0, 0x05b0, 0x0910, 0x05b0, 0x05b0, 0x0840,
+    0x1580, 0x1590, 0x05b0, 0x05b0, 0x05b0, 0x1370, 0x05b0, 0x15a0,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x15b0, 0x05b0, 0x15c0,
+    0x05b0, 0x15d0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
     0x05b0, 0x05b0, 0x0840, 0x05b0, 0x05b0, 0x0840, 0x05b0, 0x05b0,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1600, 0x1610,
-    0x05b0, 0x05b0, 0x0da0, 0x05b0, 0x05b0, 0x05b0, 0x1620, 0x1630,
-    0x05b0, 0x13d0, 0x1640, 0x1640, 0x1640, 0x1640, 0x0580, 0x0580,
-    0x1650, 0x1660, 0x1670, 0x1680, 0x1690, 0x0870, 0x0870, 0x0870,
-    0x16a0, 0x16b0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16c0,
-    0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0,
-    0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16d0, 0x0870, 0x16e0,
-    0x16f0, 0x1700, 0x1710, 0x1720, 0x1730, 0x16a0, 0x1740, 0x16a0,
-    0x1750, 0x1760, 0x1770, 0x16a0, 0x1740, 0x16a0, 0x1750, 0x1780,
-    0x1790, 0x16a0, 0x16a0, 0x17a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0,
-    0x17b0, 0x16a0, 0x16a0, 0x17c0, 0x16a0, 0x16a0, 0x16c0, 0x17d0,
-    0x16a0, 0x17b0, 0x16a0, 0x16a0, 0x17e0, 0x16a0, 0x16a0, 0x16a0,
-    0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x17b0,
-    0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0,
-    0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0,
-    0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0,
-    0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
-    0x16a0, 0x17f0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0,
-    0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0,
-    0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0, 0x16a0,
-    0x1800, 0x16a0, 0x16a0, 0x16a0, 0x1810, 0x05b0, 0x05b0, 0x10d0,
-    0x1820, 0x05b0, 0x1830, 0x0870, 0x05b0, 0x05b0, 0x1600, 0x1840,
-    0x05b0, 0x1850, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1860,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x15e0, 0x15f0,
+    0x05b0, 0x05b0, 0x0d90, 0x05b0, 0x05b0, 0x05b0, 0x1600, 0x1610,
+    0x05b0, 0x13b0, 0x1620, 0x1620, 0x1620, 0x1620, 0x0580, 0x0580,
+    0x1630, 0x1640, 0x1650, 0x1660, 0x1670, 0x0870, 0x0870, 0x0870,
+    0x1680, 0x1690, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x16a0,
+    0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680,
+    0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x16b0, 0x0870, 0x16c0,
+    0x16d0, 0x16e0, 0x16f0, 0x1700, 0x1710, 0x1680, 0x1720, 0x1680,
+    0x1730, 0x1740, 0x1750, 0x1680, 0x1720, 0x1680, 0x1730, 0x1760,
+    0x1770, 0x1680, 0x1680, 0x1780, 0x1680, 0x1680, 0x1680, 0x1680,
+    0x1790, 0x1680, 0x1680, 0x17a0, 0x1680, 0x1680, 0x16a0, 0x17b0,
+    0x1680, 0x1790, 0x1680, 0x1680, 0x17c0, 0x1680, 0x1680, 0x1680,
+    0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1790,
+    0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680,
+    0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680,
+    0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680,
+    0x1680, 0x1680, 0x1680, 0x1680, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
+    0x1680, 0x17d0, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680,
+    0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680,
+    0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680,
+    0x17e0, 0x1680, 0x1680, 0x1680, 0x17f0, 0x05b0, 0x05b0, 0x10b0,
+    0x1800, 0x05b0, 0x1810, 0x0870, 0x05b0, 0x05b0, 0x15e0, 0x1820,
+    0x05b0, 0x1830, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1840,
     0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
-    0x05b0, 0x05b0, 0x05b0, 0x0e60, 0x0870, 0x0870, 0x0870, 0x1870,
-    0x1880, 0x05b0, 0x1890, 0x18a0, 0x05b0, 0x05b0, 0x05b0, 0x18b0,
-    0x18c0, 0x05b0, 0x05b0, 0x1030, 0x18d0, 0x0f20, 0x0580, 0x18e0,
-    0x07b0, 0x05b0, 0x18f0, 0x05b0, 0x1900, 0x1910, 0x0db0, 0x1920,
-    0x08b0, 0x05b0, 0x05b0, 0x1930, 0x1940, 0x1950, 0x0c30, 0x1960,
-    0x05b0, 0x05b0, 0x1970, 0x1980, 0x1990, 0x19a0, 0x0c30, 0x0c30,
-    0x0c30, 0x0c30, 0x0c30, 0x0c30, 0x19b0, 0x19c0, 0x0760, 0x19d0,
-    0x19e0, 0x19f0, 0x1640, 0x05b0, 0x05b0, 0x05b0, 0x0f60, 0x05b0,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1a00, 0x0f20,
-    0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10,
-    0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20,
-    0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30,
-    0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40,
-    0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30,
-    0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50,
-    0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30,
-    0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10,
-    0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20,
-    0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30,
-    0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40,
-    0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30,
-    0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50,
-    0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30,
-    0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30,
-    0x1a40, 0x1a30, 0x1a60, 0x0dc0, 0x1a70, 0x0de0, 0x0de0, 0x1a80,
-    0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90,
-    0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1850, 0x0870, 0x0870, 0x1860,
+    0x1870, 0x05b0, 0x1880, 0x1890, 0x05b0, 0x05b0, 0x05b0, 0x18a0,
+    0x18b0, 0x05b0, 0x05b0, 0x1010, 0x18c0, 0x0f10, 0x0580, 0x18d0,
+    0x07b0, 0x05b0, 0x18e0, 0x05b0, 0x18f0, 0x1900, 0x0da0, 0x1910,
+    0x08b0, 0x05b0, 0x05b0, 0x1920, 0x1930, 0x1940, 0x0c30, 0x1950,
+    0x05b0, 0x05b0, 0x1960, 0x1970, 0x1980, 0x1990, 0x0c30, 0x0c30,
+    0x0c30, 0x0c30, 0x0c30, 0x0c30, 0x19a0, 0x19b0, 0x0760, 0x19c0,
+    0x19d0, 0x19e0, 0x1620, 0x05b0, 0x05b0, 0x05b0, 0x0a50, 0x05b0,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x19f0, 0x0f10,
+    0x1a00, 0x1a10, 0x1a20, 0x1a30, 0x1a20, 0x1a40, 0x1a20, 0x1a00,
+    0x1a10, 0x1a20, 0x1a30, 0x1a20, 0x1a40, 0x1a20, 0x1a00, 0x1a10,
+    0x1a20, 0x1a30, 0x1a20, 0x1a40, 0x1a20, 0x1a00, 0x1a10, 0x1a20,
+    0x1a30, 0x1a20, 0x1a40, 0x1a20, 0x1a00, 0x1a10, 0x1a20, 0x1a30,
+    0x1a20, 0x1a40, 0x1a20, 0x1a00, 0x1a10, 0x1a20, 0x1a30, 0x1a20,
+    0x1a40, 0x1a20, 0x1a00, 0x1a10, 0x1a20, 0x1a30, 0x1a20, 0x1a40,
+    0x1a20, 0x1a00, 0x1a10, 0x1a20, 0x1a30, 0x1a20, 0x1a40, 0x1a20,
+    0x1a00, 0x1a10, 0x1a20, 0x1a30, 0x1a20, 0x1a40, 0x1a20, 0x1a00,
+    0x1a10, 0x1a20, 0x1a30, 0x1a20, 0x1a40, 0x1a20, 0x1a00, 0x1a10,
+    0x1a20, 0x1a30, 0x1a20, 0x1a40, 0x1a20, 0x1a00, 0x1a10, 0x1a20,
+    0x1a30, 0x1a20, 0x1a40, 0x1a20, 0x1a00, 0x1a10, 0x1a20, 0x1a30,
+    0x1a20, 0x1a40, 0x1a20, 0x1a00, 0x1a10, 0x1a20, 0x1a30, 0x1a20,
+    0x1a40, 0x1a20, 0x1a00, 0x1a10, 0x1a20, 0x1a30, 0x1a20, 0x1a40,
+    0x1a20, 0x1a00, 0x1a10, 0x1a20, 0x1a30, 0x1a20, 0x1a40, 0x1a20,
+    0x1a20, 0x1a30, 0x1a20, 0x1a40, 0x1a20, 0x1a00, 0x1a10, 0x1a20,
+    0x1a30, 0x1a20, 0x1a50, 0x0db0, 0x1a60, 0x0dd0, 0x0dd0, 0x1a70,
+    0x1a80, 0x1a80, 0x1a80, 0x1a80, 0x1a80, 0x1a80, 0x1a80, 0x1a80,
+    0x1a80, 0x1a80, 0x1a80, 0x1a80, 0x1a80, 0x1a80, 0x1a80, 0x1a80,
     0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870,
     0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870,
-    0x13d0, 0x1aa0, 0x1ab0, 0x1ac0, 0x1ad0, 0x05b0, 0x05b0, 0x05b0,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1ae0, 0x1af0, 0x05b0, 0x05b0,
-    0x05b0, 0x05b0, 0x05b0, 0x1b00, 0x0870, 0x05b0, 0x05b0, 0x05b0,
-    0x05b0, 0x1b10, 0x05b0, 0x05b0, 0x0a50, 0x0870, 0x0870, 0x1b20,
-    0x0580, 0x1b30, 0x0580, 0x1b40, 0x1b50, 0x1b60, 0x1b70, 0x1150,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1b80,
-    0x1b90, 0x1ba0, 0x16a0, 0x1bb0, 0x16a0, 0x1bc0, 0x1bd0, 0x1be0,
-    0x16a0, 0x1bf0, 0x16a0, 0x17b0, 0x1c00, 0x1c10, 0x1c20, 0x1c30,
+    0x13b0, 0x1a90, 0x1aa0, 0x1ab0, 0x1ac0, 0x05b0, 0x05b0, 0x05b0,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1ad0, 0x1ae0, 0x05b0, 0x05b0,
+    0x05b0, 0x05b0, 0x05b0, 0x1af0, 0x0870, 0x05b0, 0x05b0, 0x05b0,
+    0x05b0, 0x1b00, 0x05b0, 0x05b0, 0x0a50, 0x0870, 0x0870, 0x1b10,
+    0x0580, 0x1b20, 0x0580, 0x1b30, 0x1b40, 0x1b50, 0x1b60, 0x1130,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1b70,
+    0x1b80, 0x1b90, 0x1680, 0x1ba0, 0x1680, 0x1bb0, 0x1bc0, 0x1bd0,
+    0x1680, 0x1be0, 0x1680, 0x1790, 0x1bf0, 0x1c00, 0x1c10, 0x1c20,
     /* values */
     0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
     0x0004, 0x0022, 0x0003, 0x0001, 0x0001, 0x0002, 0x0004, 0x0004,
@@ -365,7 +365,7 @@ const unsigned short DECLSPEC_HIDDEN 
wine_linebreak_table[7232] =
     0x0004, 0x0011, 0x0004, 0x0004, 0x0004, 0x0004, 0x0011, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0004, 0x0004, 0x0011,
     0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
-    0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
+    0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0021,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x0004, 0x0004, 0x0004, 0x0021, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x001d, 0x001d,
@@ -407,14 +407,12 @@ const unsigned short DECLSPEC_HIDDEN 
wine_linebreak_table[7232] =
     0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x001d,
     0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c,
     0x001c, 0x001c, 0x0022, 0x0022, 0x0011, 0x0011, 0x0011, 0x0011,
-    0x0011, 0x0023, 0x0023, 0x0011, 0x0023, 0x0011, 0x0011, 0x0023,
-    0x0023, 0x0011, 0x0023, 0x0011, 0x0011, 0x0023, 0x0011, 0x0011,
-    0x0011, 0x0011, 0x0011, 0x0011, 0x0023, 0x0023, 0x0023, 0x0023,
-    0x0011, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023,
-    0x0011, 0x0023, 0x0023, 0x0023, 0x0011, 0x0023, 0x0011, 0x0023,
-    0x0011, 0x0011, 0x0023, 0x0023, 0x0011, 0x0023, 0x0023, 0x0023,
+    0x0011, 0x0023, 0x0023, 0x0011, 0x0023, 0x0011, 0x0023, 0x0023,
+    0x0023, 0x0023, 0x0023, 0x0011, 0x0023, 0x0023, 0x0023, 0x0023,
+    0x0023, 0x0023, 0x0023, 0x0023, 0x0011, 0x0023, 0x0011, 0x0023,
     0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023,
-    0x0023, 0x0023, 0x0011, 0x0023, 0x0023, 0x0023, 0x0011, 0x0011,
+    0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023,
+    0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0011, 0x0011,
     0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0011, 0x0023, 0x0011,
     0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0011, 0x0011,
     0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c,
@@ -507,8 +505,6 @@ const unsigned short DECLSPEC_HIDDEN 
wine_linebreak_table[7232] =
     0x0004, 0x0004, 0x0004, 0x0004, 0x0011, 0x0011, 0x0011, 0x0011,
     0x001d, 0x0011, 0x0011, 0x0011, 0x0017, 0x0017, 0x001c, 0x001c,
     0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c,
-    0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023,
-    0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0011, 0x0011,
     0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0011, 0x0011, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023,
@@ -555,8 +551,8 @@ const unsigned short DECLSPEC_HIDDEN 
wine_linebreak_table[7232] =
     0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
     0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
     0x0004, 0x001d, 0x001d, 0x001d, 0x001d, 0x0004, 0x001d, 0x001d,
-    0x001d, 0x001d, 0x0004, 0x0004, 0x0004, 0x001d, 0x001d, 0x0004,
-    0x0004, 0x0004, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x0004, 0x001d, 0x001d, 0x0004,
+    0x0004, 0x0004, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
     0x0004, 0x0004, 0x0011, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
@@ -732,7 +728,7 @@ const unsigned short DECLSPEC_HIDDEN 
wine_linebreak_table[7232] =
     0x0022, 0x0022, 0x001d, 0x0022, 0x0022, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x0025, 0x0025, 0x0022, 0x0022, 0x0022, 0x001d,
     0x0022, 0x0022, 0x0012, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022,
-    0x0022, 0x0022, 0x0022, 0x001d, 0x0022, 0x001d, 0x0022, 0x0011,
+    0x0022, 0x0022, 0x0022, 0x001d, 0x0022, 0x001d, 0x0022, 0x0022,
     0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
     0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
     0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
@@ -791,6 +787,8 @@ const unsigned short DECLSPEC_HIDDEN 
wine_linebreak_table[7232] =
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0004, 0x0004,
     0x0004, 0x0004, 0x001d, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
+    0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011,
+    0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x0004, 0x001d, 0x001d, 0x001d, 0x0004, 0x001d,
diff --git a/dll/win32/usp10/mirror.c b/dll/win32/usp10/mirror.c
index 9239d79596c..7b43a85703c 100644
--- a/dll/win32/usp10/mirror.c
+++ b/dll/win32/usp10/mirror.c
@@ -1,8 +1,8 @@
 /* Unicode BiDi mirroring */
-/* generated from http://www.unicode.org/Public/11.0.0/ucd/BidiMirroring.txt */
+/* generated from http://www.unicode.org/Public/12.0.0/ucd/BidiMirroring.txt */
 /* DO NOT EDIT!! */
 
-#include "wine/unicode.h"
+#include "windef.h"
 
 const WCHAR DECLSPEC_HIDDEN wine_mirror_map[3544] =
 {
diff --git a/dll/win32/usp10/opentype.c b/dll/win32/usp10/opentype.c
index 53632714a4e..a6ce76072d9 100644
--- a/dll/win32/usp10/opentype.c
+++ b/dll/win32/usp10/opentype.c
@@ -658,7 +658,7 @@ static VOID *load_CMAP_format12_table(HDC hdc, ScriptCache 
*psc)
     return NULL;
 }
 
-static int compare_group(const void *a, const void* b)
+static int __cdecl compare_group(const void *a, const void* b)
 {
     const DWORD *chr = a;
     const CMAP_SegmentedCoverage_group *group = b;
diff --git a/dll/win32/usp10/precomp.h b/dll/win32/usp10/precomp.h
index 00da1b9083c..f0f190cc1ae 100644
--- a/dll/win32/usp10/precomp.h
+++ b/dll/win32/usp10/precomp.h
@@ -2,8 +2,6 @@
 #ifndef _USP10_PRECOMP_H_
 #define _USP10_PRECOMP_H_
 
-#include <config.h>
-
 #include <stdarg.h>
 
 #define WIN32_NO_STATUS
@@ -16,7 +14,6 @@
 #include <usp10.h>
 
 #include <wine/debug.h>
-#include <wine/unicode.h>
 
 #include "usp10_internal.h"
 
diff --git a/dll/win32/usp10/shaping.c b/dll/win32/usp10/shaping.c
index 941bd594151..ebb6fae5097 100644
--- a/dll/win32/usp10/shaping.c
+++ b/dll/win32/usp10/shaping.c
@@ -1,8 +1,8 @@
 /* Unicode Arabic shaping */
-/* generated from http://www.unicode.org/Public/11.0.0/ucd/ArabicShaping.txt */
+/* generated from http://www.unicode.org/Public/12.0.0/ucd/ArabicShaping.txt */
 /* DO NOT EDIT!! */
 
-#include "wine/unicode.h"
+#include "windef.h"
 
 const unsigned short DECLSPEC_HIDDEN wine_shaping_table[2944] =
 {
@@ -258,7 +258,7 @@ const unsigned short DECLSPEC_HIDDEN 
wine_shaping_table[2944] =
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001,
     0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000,
     0x0000, 0x0001, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001,
-    0x0001, 0x0001, 0x0000, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -360,7 +360,7 @@ const unsigned short DECLSPEC_HIDDEN 
wine_shaping_table[2944] =
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001,
     0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
     0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0001, 0x0001,
-    0x0001, 0x0001, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000,
+    0x0001, 0x0001, 0x0000, 0x0000, 0x0001, 0x0001, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
diff --git a/dll/win32/usp10/usp10.c b/dll/win32/usp10/usp10.c
index a18c049b080..c53f3e97d1e 100644
--- a/dll/win32/usp10/usp10.c
+++ b/dll/win32/usp10/usp10.c
@@ -27,6 +27,9 @@
 #include <stdarg.h>
 #include <stdlib.h>
 #include <math.h>
+#ifdef __REACTOS__
+#include <wchar.h>
+#endif
 
 #include "windef.h"
 #include "winbase.h"
@@ -40,7 +43,6 @@
 
 #include "wine/debug.h"
 #include "wine/heap.h"
-#include "wine/unicode.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(uniscribe);
 
@@ -876,7 +878,7 @@ static HRESULT init_script_cache(const HDC hdc, 
SCRIPT_CACHE *psc)
         return E_INVALIDARG;
     }
     /* Ensure canonical result by zeroing extra space in lfFaceName */
-    size = strlenW(lf.lfFaceName);
+    size = lstrlenW(lf.lfFaceName);
     memset(lf.lfFaceName + size, 0, sizeof(lf.lfFaceName) - size * 
sizeof(WCHAR));
 
     EnterCriticalSection(&cs_script_cache);
@@ -952,7 +954,7 @@ static DWORD decode_surrogate_pair(const WCHAR *str, 
unsigned int index, unsigne
     return 0;
 }
 
-static int usp10_compare_script_range(const void *key, const void *value)
+static int __cdecl usp10_compare_script_range(const void *key, const void 
*value)
 {
     const struct usp10_script_range *range = value;
     const DWORD *ch = key;
@@ -978,7 +980,7 @@ static enum usp10_script get_char_script(const WCHAR *str, 
unsigned int index,
         return Script_CR;
 
     /* These punctuation characters are separated out as Latin punctuation */
-    if (strchrW(latin_punc,str[index]))
+    if (wcschr(latin_punc,str[index]))
         return Script_Punctuation2;
 
     /* These chars are itemized as Punctuation by Windows */
@@ -1023,7 +1025,7 @@ static enum usp10_script get_char_script(const WCHAR 
*str, unsigned int index,
     return range->script;
 }
 
-static int compare_FindGlyph(const void *a, const void* b)
+static int __cdecl compare_FindGlyph(const void *a, const void* b)
 {
     const FindGlyph_struct *find = (FindGlyph_struct*)a;
     const WORD *idx= (WORD*)b;
@@ -1534,7 +1536,7 @@ static HRESULT _ItemizeInternal(const WCHAR *pwcInChars, 
int cInChars,
             {
                 if (i > 0 && i < cInChars-1 &&
                     script_is_numeric(scripts[i-1]) &&
-                    strchrW(math_punc, pwcInChars[i]))
+                    wcschr(math_punc, pwcInChars[i]))
                 {
                     if (script_is_numeric(scripts[i+1]))
                     {
@@ -1543,7 +1545,7 @@ static HRESULT _ItemizeInternal(const WCHAR *pwcInChars, 
int cInChars,
                         strength[i] = strength[i-1];
                         i++;
                     }
-                    else if (strchrW(repeatable_math_punc, pwcInChars[i]))
+                    else if (wcschr(repeatable_math_punc, pwcInChars[i]))
                     {
                         int j;
                         for (j = i+1; j < cInChars; j++)
@@ -1967,7 +1969,7 @@ static void find_fallback_font(enum usp10_script 
scriptid, WCHAR *FaceName)
         DWORD count = LF_FACESIZE * sizeof(WCHAR);
         DWORD type;
 
-        sprintfW(value, szFmt, scriptInformation[scriptid].scriptTag);
+        swprintf(value, szFmt, scriptInformation[scriptid].scriptTag);
         if (RegQueryValueExW(hkey, value, 0, &type, (BYTE *)FaceName, &count))
             lstrcpyW(FaceName,scriptInformation[scriptid].fallbackFont);
         RegCloseKey(hkey);
@@ -3434,9 +3436,27 @@ HRESULT WINAPI ScriptPlaceOpenType( HDC hdc, 
SCRIPT_CACHE *psc, SCRIPT_ANALYSIS
             if (FAILED(hr = ScriptGetCMap(hdc, psc, &pwGlyphs[i], 1, 0, 
&glyph))) return hr;
         }
         else
+        {
+            hr = S_OK;
             glyph = pwGlyphs[i];
+        }
 
-        if (!get_cache_glyph_widths(psc, glyph, &abc))
+        if (hr == S_FALSE)
+        {
+            if (!hdc) return E_PENDING;
+            if (get_cache_pitch_family(psc) & TMPF_TRUETYPE)
+            {
+                if (!GetCharABCWidthsW(hdc, pwGlyphs[i], pwGlyphs[i], &abc)) 
return S_FALSE;
+            }
+            else
+            {
+                INT width;
+                if (!GetCharWidthW(hdc, pwGlyphs[i], pwGlyphs[i], &width)) 
return S_FALSE;
+                abc.abcB = width;
+                abc.abcA = abc.abcC = 0;
+            }
+        }
+        else if (!get_cache_glyph_widths(psc, glyph, &abc))
         {
             if (!hdc) return E_PENDING;
             if (get_cache_pitch_family(psc) & TMPF_TRUETYPE)
@@ -3544,42 +3564,27 @@ HRESULT WINAPI ScriptGetCMap(HDC hdc, SCRIPT_CACHE 
*psc, const WCHAR *pwcInChars
 
     hr = S_OK;
 
-    if ((get_cache_pitch_family(psc) & TMPF_TRUETYPE))
+    for (i = 0; i < cChars; i++)
     {
-        for (i = 0; i < cChars; i++)
+        WCHAR inChar;
+        if (dwFlags == SGCM_RTL)
+            inChar = mirror_char(pwcInChars[i]);
+        else
+            inChar = pwcInChars[i];
+        if (!(pwOutGlyphs[i] = get_cache_glyph(psc, inChar)))
         {
-            WCHAR inChar;
-            if (dwFlags == SGCM_RTL)
-                inChar = mirror_char(pwcInChars[i]);
-            else
-                inChar = pwcInChars[i];
-            if (!(pwOutGlyphs[i] = get_cache_glyph(psc, inChar)))
+            WORD glyph;
+            if (!hdc) return E_PENDING;
+            if (GetGlyphIndicesW(hdc, &inChar, 1, &glyph, 
GGI_MARK_NONEXISTING_GLYPHS) == GDI_ERROR) return S_FALSE;
+            if (glyph == 0xffff)
             {
-                WORD glyph;
-                if (!hdc) return E_PENDING;
-                if (GetGlyphIndicesW(hdc, &inChar, 1, &glyph, 
GGI_MARK_NONEXISTING_GLYPHS) == GDI_ERROR) return S_FALSE;
-                if (glyph == 0xffff)
-                {
-                    hr = S_FALSE;
-                    glyph = 0x0;
-                }
-                pwOutGlyphs[i] = set_cache_glyph(psc, inChar, glyph);
+                hr = S_FALSE;
+                glyph = 0x0;
             }
+            pwOutGlyphs[i] = set_cache_glyph(psc, inChar, glyph);
         }
     }
-    else
-    {
-        TRACE("no glyph translation\n");
-        for (i = 0; i < cChars; i++)
-        {
-            WCHAR inChar;
-            if (dwFlags == SGCM_RTL)
-                inChar = mirror_char(pwcInChars[i]);
-            else
-                inChar = pwcInChars[i];
-            pwOutGlyphs[i] = inChar;
-        }
-    }
+
     return hr;
 }
 
@@ -3890,6 +3895,7 @@ const SIZE * WINAPI 
ScriptString_pSize(SCRIPT_STRING_ANALYSIS ssa)
             for (j = 0; j < analysis->glyphs[i].numGlyphs; j++)
                 analysis->sz.cx += analysis->glyphs[i].piAdvance[j];
         }
+        analysis->flags |= SCRIPT_STRING_ANALYSIS_FLAGS_SIZE;
     }
     return &analysis->sz;
 }
diff --git a/media/doc/README.WINE b/media/doc/README.WINE
index ba7afbefd41..8cd29acad9a 100644
--- a/media/doc/README.WINE
+++ b/media/doc/README.WINE
@@ -190,7 +190,7 @@ dll/win32/twain_32            # Synced to WineStaging-4.18
 dll/win32/updspapi            # Synced to WineStaging-4.18
 dll/win32/url                 # Synced to WineStaging-3.3
 dll/win32/urlmon              # Synced to WineStaging-4.18
-dll/win32/usp10               # Synced to WineStaging-4.0
+dll/win32/usp10               # Synced to WineStaging-4.18
 dll/win32/uxtheme             # Forked
 dll/win32/vbscript            # Synced to WineStaging-4.0
 dll/win32/version             # Synced to WineStaging-4.0

Reply via email to