summaryrefslogtreecommitdiff
path: root/pango
diff options
context:
space:
mode:
authorNoah Levitt <nlevitt@columbia.edu>2003-11-20 05:34:45 +0000
committerNoah Levitt <nlevitt@src.gnome.org>2003-11-20 05:34:45 +0000
commitf4186548325987e5213ae3d25764f1b9fbe97274 (patch)
treedc5d3726e96523d35c01ab5cc0b0d7c30fbff1ea /pango
parent6c5c213849d9e1f97238870d0cc25ab4056ecf26 (diff)
downloadpango-f4186548325987e5213ae3d25764f1b9fbe97274.tar.gz
Update to latest fribidi. (#68435)
2003-11-20 Noah Levitt <nlevitt@columbia.edu> * pango/pango-utils.c: * pango/mini-fribidi/Makefile.am: * pango/mini-fribidi/README: * pango/mini-fribidi/fribidi.c: * pango/mini-fribidi/fribidi.patch: * pango/mini-fribidi/fribidi_char_type.c: * pango/mini-fribidi/fribidi_tab_char_type_2.i: * pango/mini-fribidi/fribidi_types.c: * pango/mini-fribidi/fribidi_types.h: * pango/mini-fribidi/fribidi_types.i: Update to latest fribidi. (#68435)
Diffstat (limited to 'pango')
-rw-r--r--pango/mini-fribidi/Makefile.am14
-rw-r--r--pango/mini-fribidi/README29
-rw-r--r--pango/mini-fribidi/fribidi.c917
-rw-r--r--pango/mini-fribidi/fribidi.patch1896
-rw-r--r--pango/mini-fribidi/fribidi_char_type.c36
-rw-r--r--pango/mini-fribidi/fribidi_tab_char_type_2.i5377
-rw-r--r--pango/mini-fribidi/fribidi_types.c126
-rw-r--r--pango/mini-fribidi/fribidi_types.h394
-rw-r--r--pango/mini-fribidi/fribidi_types.i21
-rw-r--r--pango/pango-utils.c5
10 files changed, 7629 insertions, 1186 deletions
diff --git a/pango/mini-fribidi/Makefile.am b/pango/mini-fribidi/Makefile.am
index fe2ee01f..f3e1570a 100644
--- a/pango/mini-fribidi/Makefile.am
+++ b/pango/mini-fribidi/Makefile.am
@@ -18,11 +18,13 @@ LDADDS = @STRIP_BEGIN@ \
noinst_LTLIBRARIES = libmini-fribidi.la
libmini_fribidi_la_SOURCES = \
- fribidi_types.h \
- fribidi_get_type.c \
- fribidi.c
+ fribidi.c \
+ fribidi_char_type.c \
+ fribidi_types.c \
+ fribidi_types.h
EXTRA_DIST = \
- README \
- fribidi_tables.i \
- fribidi.patch
+ README \
+ fribidi_tab_char_type_2.i \
+ fribidi_types.i
+
diff --git a/pango/mini-fribidi/README b/pango/mini-fribidi/README
index 90f31cdd..e0bf102c 100644
--- a/pango/mini-fribidi/README
+++ b/pango/mini-fribidi/README
@@ -1,6 +1,11 @@
This directory holds a stripped down version of Dov Grobgeld's FriBidi
library. The fribidi version that fribidi.patch is against was
-obtained with "cvs up -D '4/16/2001'" from the fribidi cvs repository.
+obtained with "cvs up -D '2003-07-14'" from the fribidi cvs repository.
+
+00:18:24 < behdad> please write somewhere in bold huge red font that
+ you have grabbed fribidi from CVS dated X, with
+ fribidi_env patch, and you dropped env stuff
+ yourself.
Like Pango, FriBidi is licensed under the terms of the GNU Lesser
General Public License - see the file COPYING in the toplevel
@@ -8,6 +13,8 @@ directory of the Pango distribution.
12 November 2000, 18 October 2001
Owen Taylor
+14 July 2003
+Noah Levitt
From the README of Fribidi:
@@ -40,23 +47,3 @@ The latest version of FriBidi may be found at:
http://fribidi.sourceforge.net
-Notes
-=====
-
-- shell fragment to generate fribidi.patch:
-
- echo -n "" > fribidi.patch
- for i in fribidi.c fribidi_get_type.c fribidi_tables.i fribidi_types.h ; do
- diff -u ~/cvs/fribidi/$i $i >> fribidi.patch
- done
-
-- Shell fragment to update from fribidi
-
- for i in fribidi.c fribidi_get_type.c fribidi_tables.i fribidi_types.h ; do
- cp ~/cvs/fribidi/$i .
- done
- patch < fribidi.patch
-
- (And fix rejects)
-
-- Current fribidi.patch is against fribidi CVS with -D "15 Apr 2001"
diff --git a/pango/mini-fribidi/fribidi.c b/pango/mini-fribidi/fribidi.c
index 27b5d9f8..e298f404 100644
--- a/pango/mini-fribidi/fribidi.c
+++ b/pango/mini-fribidi/fribidi.c
@@ -1,6 +1,6 @@
/* FriBidi - Library of BiDi algorithm
* Copyright (C) 1999,2000 Dov Grobgeld, and
- * Copyright (C) 2001 Behdad Esfahbod.
+ * Copyright (C) 2001,2002 Behdad Esfahbod.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -13,7 +13,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this library, in a file named COPYING.LIB; if not, write to the
+ * along with this library, in a file named COPYING; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
* Boston, MA 02111-1307, USA
*
@@ -26,29 +26,23 @@
#include "fribidi_types.h"
#ifdef DEBUG
-#include <stdio.h>
-#endif
-
-#ifndef FRIBIDI_CHUNK_SIZE
-#define FRIBIDI_CHUNK_SIZE 128
+static gboolean fribidi_debug = FALSE;
#endif
#ifdef DEBUG
-#define DBG(s) if (fribidi_debug) { fprintf(stderr, s); }
-#define DBG2(s, t) if (fribidi_debug) { fprintf(stderr, s, t); }
+#define DBG(s) do { if (fribidi_debug) { fprintf(stderr, s); } } while (0)
+#define DBG2(s, t) do { if (fribidi_debug) { fprintf(stderr, s, t); } } while (0)
#else
#define DBG(s)
#define DBG2(s, t)
#endif
#ifdef DEBUG
-/* for easier test with the reference code only */
-#define MAX_LEVEL 15
-#else
-/* default value */
-#define MAX_LEVEL 61
+char fribidi_char_from_type (FriBidiCharType c);
#endif
+#define UNI_MAX_BIDI_LEVEL 61
+
/*======================================================================
* Typedef for the run-length list.
*----------------------------------------------------------------------*/
@@ -60,9 +54,8 @@ struct _TypeLink
TypeLink *next;
FriBidiCharType type;
- gint pos;
- gint len;
- gint level;
+ FriBidiStrIndex pos, len;
+ FriBidiLevel level;
};
#define FRIBIDI_LEVEL_START -1
@@ -71,43 +64,17 @@ struct _TypeLink
typedef struct
{
- FriBidiCharType override; /* only L, R and N are valid */
- gint level;
+ FriBidiCharType override; /* only L, R and N are valid */
+ FriBidiLevel level;
}
LevelInfo;
-#ifdef DEBUG
-static gboolean fribidi_debug = FALSE;
-#endif
-
-#ifndef USE_SIMPLE_MALLOC
-static TypeLink *free_type_links = NULL;
-#endif
-
static TypeLink *
-new_type_link (void)
+new_type_link ()
{
TypeLink *link;
-#ifdef USE_SIMPLE_MALLOC
- link = g_malloc (sizeof (TypeLink));
-#else /* !USE_SIMPLE_MALLOC */
- if (free_type_links)
- {
- link = free_type_links;
- free_type_links = free_type_links->next;
- }
- else
- {
- static GMemChunk *mem_chunk = NULL;
-
- if (!mem_chunk)
- mem_chunk =
- g_mem_chunk_create (TypeLink, FRIBIDI_CHUNK_SIZE, G_ALLOC_ONLY);
-
- link = g_chunk_new (TypeLink, mem_chunk);
- }
-#endif /* !USE_SIMPLE_MALLOC */
+ link = (TypeLink *) g_malloc (sizeof (TypeLink));
link->len = 0;
link->pos = 0;
@@ -120,65 +87,47 @@ new_type_link (void)
static void
free_type_link (TypeLink *link)
{
-#ifdef USE_SIMPLE_MALLOC
g_free (link);
-#else
- link->next = free_type_links;
- free_type_links = link;
-#endif
}
+#define FRIBIDI_ADD_TYPE_LINK(p,q) \
+ do { \
+ (p)->len = (q)->pos - (p)->pos; \
+ (p)->next = (q); \
+ (q)->prev = (p); \
+ (p) = (q); \
+ } while (0)
+
static TypeLink *
-run_length_encode_types (FriBidiCharType *char_type, gint type_len)
+run_length_encode_types (FriBidiCharType *char_type,
+ FriBidiStrIndex type_len)
{
TypeLink *list, *last, *link;
- TypeLink current;
- gint i;
+ FriBidiStrIndex i;
/* Add the starting link */
list = new_type_link ();
list->type = FRIBIDI_TYPE_SOT;
list->level = FRIBIDI_LEVEL_START;
- list->len = 0;
- list->pos = 0;
last = list;
- /* Sweep over the string_types */
- current.type = FRIBIDI_LEVEL_START;
- current.len = 0;
- current.pos = -1;
- for (i = 0; i <= type_len; i++)
- {
- if (i == type_len || char_type[i] != current.type)
- {
- if (current.pos >= 0)
- {
- link = new_type_link ();
- link->type = current.type;
- link->pos = current.pos;
- link->len = current.len;
- last->next = link;
- link->prev = last;
- last = last->next;
- }
- if (i == type_len)
- break;
- current.len = 0;
- current.pos = i;
- }
- current.type = char_type[i];
- current.len++;
- }
+ /* Sweep over the string_type s */
+ for (i = 0; i < type_len; i++)
+ if (char_type[i] != last->type)
+ {
+ link = new_type_link ();
+ link->type = char_type[i];
+ link->pos = i;
+ FRIBIDI_ADD_TYPE_LINK (last, link);
+ }
/* Add the ending link */
link = new_type_link ();
link->type = FRIBIDI_TYPE_EOT;
link->level = FRIBIDI_LEVEL_END;
- link->len = 0;
link->pos = type_len;
- last->next = link;
- link->prev = last;
+ FRIBIDI_ADD_TYPE_LINK (last, link);
return list;
}
@@ -188,7 +137,8 @@ run_length_encode_types (FriBidiCharType *char_type, gint type_len)
the override_list.
*/
static void
-init_list (TypeLink **start, TypeLink **end)
+init_list (TypeLink **start,
+ TypeLink **end)
{
TypeLink *list;
TypeLink *link;
@@ -219,7 +169,8 @@ init_list (TypeLink **start, TypeLink **end)
the list that p is currently in, if any.
*/
static void
-move_element_before (TypeLink *p, TypeLink *list)
+move_element_before (TypeLink *p,
+ TypeLink *list)
{
if (p->prev)
{
@@ -247,129 +198,124 @@ move_element_before (TypeLink *p, TypeLink *list)
TBD: use some explanatory names instead of p, q, ...
*/
static void
-override_list (TypeLink *base, TypeLink *over)
+override_list (TypeLink *base,
+ TypeLink *over)
{
TypeLink *p = base, *q, *r, *s, *t;
- gint pos = 0, pos2;
+ FriBidiStrIndex pos = 0, pos2;
- if (!base)
- base = over;
- else if (over)
+ if (!over)
+ return;
+ q = over;
+ while (q)
{
- q = over;
- while (q)
- {
- if (!q->len || q->pos < pos)
- {
- t = q;
- q = q->next;
- free_type_link (t);
- continue;
- }
- pos = q->pos;
- while (p->next && p->next->pos <= pos)
- p = p->next;
- /* now p is the element that q must be inserted 'in'. */
- pos2 = pos + q->len;
- r = p;
- while (r->next && r->next->pos < pos2)
- r = r->next;
- /* now r is the last element that q affects. */
- if (p == r)
- {
- /* split p into at most 3 interval, and insert q in the place of
- the second interval, set r to be the third part. */
- /* third part needed? */
- if (p->next && p->next->pos == pos2)
- r = r->next;
- else
- {
- r = new_type_link ();
- *r = *p;
- if (r->next)
- {
- r->next->prev = r;
- r->len = r->next->pos - pos2;
- }
- else
- r->len -= pos - p->pos;
- r->pos = pos2;
- }
- /* first part needed? */
- if (p->prev && p->pos == pos)
- {
- t = p;
- p = p->prev;
- free_type_link (t);
- }
- else
- p->len = pos - p->pos;
- }
- else
- {
- /* cut the end of p. */
- p->len = pos - p->pos;
- /* if all of p is cut, remove it. */
- if (!p->len && p->prev)
- p = p->prev;
-
- /* cut the begining of r. */
- r->pos = pos2;
- if (r->next)
- r->len = r->next->pos - pos2;
- /* if all of r is cut, remove it. */
- if (!r->len && r->next)
- r = r->next;
-
- /* remove the elements between p and r. */
- for (s = p->next; s != r;)
- {
- t = s;
- s = s->next;
- free_type_link (t);
- }
- }
- /* before updating the next and prev links to point to the inserted q,
- we must remember the next element of q in the 'over' list.
- */
- t = q;
- q = q->next;
- p->next = t;
- t->prev = p;
- t->next = r;
- r->prev = t;
- }
+ if (!q->len || q->pos < pos)
+ {
+ t = q;
+ q = q->next;
+ free_type_link (t);
+ continue;
+ }
+ pos = q->pos;
+ while (p->next && p->next->pos <= pos)
+ p = p->next;
+ /* now p is the element that q must be inserted 'in'. */
+ pos2 = pos + q->len;
+ r = p;
+ while (r->next && r->next->pos < pos2)
+ r = r->next;
+ /* now r is the last element that q affects. */
+ if (p == r)
+ {
+ /* split p into at most 3 interval, and insert q in the place of
+ the second interval, set r to be the third part. */
+ /* third part needed? */
+ if (p->next && p->next->pos == pos2)
+ r = r->next;
+ else
+ {
+ r = new_type_link ();
+ *r = *p;
+ if (r->next)
+ {
+ r->next->prev = r;
+ r->len = r->next->pos - pos2;
+ }
+ else
+ r->len -= pos - p->pos;
+ r->pos = pos2;
+ }
+ /* first part needed? */
+ if (p->prev && p->pos == pos)
+ {
+ t = p;
+ p = p->prev;
+ free_type_link (t);
+ }
+ else
+ p->len = pos - p->pos;
+ }
+ else
+ {
+ /* cut the end of p. */
+ p->len = pos - p->pos;
+ /* if all of p is cut, remove it. */
+ if (!p->len && p->prev)
+ p = p->prev;
+
+ /* cut the begining of r. */
+ r->pos = pos2;
+ if (r->next)
+ r->len = r->next->pos - pos2;
+ /* if all of r is cut, remove it. */
+ if (!r->len && r->next)
+ r = r->next;
+
+ /* remove the elements between p and r. */
+ for (s = p->next; s != r;)
+ {
+ t = s;
+ s = s->next;
+ free_type_link (t);
+ }
+ }
+ /* before updating the next and prev links to point to the inserted q,
+ we must remember the next element of q in the 'over' list.
+ */
+ t = q;
+ q = q->next;
+ p->next = t;
+ t->prev = p;
+ t->next = r;
+ r->prev = t;
}
}
/* Some convenience macros */
-#define RL_TYPE(list) (list)->type
-#define RL_LEN(list) (list)->len
-#define RL_POS(list) (list)->pos
-#define RL_LEVEL(list) (list)->level
+#define RL_TYPE(list) ((list)->type)
+#define RL_LEN(list) ((list)->len)
+#define RL_POS(list) ((list)->pos)
+#define RL_LEVEL(list) ((list)->level)
+
+static TypeLink *
+merge_with_prev (TypeLink *second)
+{
+ TypeLink *first = second->prev;
+ first->next = second->next;
+ first->next->prev = first;
+ RL_LEN (first) += RL_LEN (second);
+ free_type_link (second);
+ return first;
+}
static void
compact_list (TypeLink *list)
{
if (list->next)
- {
- list = list->next;
- while (list)
- {
- if (RL_TYPE (list->prev) == RL_TYPE (list)
- && RL_LEVEL (list->prev) == RL_LEVEL (list))
- {
- TypeLink *next = list->next;
- list->prev->next = list->next;
- list->next->prev = list->prev;
- RL_LEN (list->prev) += RL_LEN (list);
- free_type_link (list);
- list = next;
- }
- else
- list = list->next;
- }
- }
+ for (list = list->next; list; list = list->next)
+ if (RL_TYPE (list->prev) == RL_TYPE (list)
+ && RL_LEVEL (list->prev) == RL_LEVEL (list))
+ list = merge_with_prev (list);
}
static void
@@ -377,48 +323,38 @@ compact_neutrals (TypeLink *list)
{
if (list->next)
{
- list = list->next;
- while (list)
- {
- if (RL_LEVEL (list->prev) == RL_LEVEL (list)
- &&
- ((RL_TYPE
- (list->prev) == RL_TYPE (list)
- || (FRIBIDI_IS_NEUTRAL (RL_TYPE (list->prev))
- && FRIBIDI_IS_NEUTRAL (RL_TYPE (list))))))
- {
- TypeLink *next = list->next;
- list->prev->next = list->next;
- list->next->prev = list->prev;
- RL_LEN (list->prev) += RL_LEN (list);
- free_type_link (list);
- list = next;
- }
- else
- list = list->next;
- }
+ for (list = list->next; list; list = list->next)
+ {
+ if (RL_LEVEL (list->prev) == RL_LEVEL (list)
+ &&
+ ((RL_TYPE
+ (list->prev) == RL_TYPE (list)
+ || (FRIBIDI_IS_NEUTRAL (RL_TYPE (list->prev))
+ && FRIBIDI_IS_NEUTRAL (RL_TYPE (list))))))
+ list = merge_with_prev (list);
+ }
}
}
-/*=======================================================
+/*=========================================================================
* define macros for push and pop the status in to / out of the stack
- *-------------------------------------------------------*/
+ *-------------------------------------------------------------------------*/
/* There's some little points in pushing and poping into the status stack:
- 1. when the embedding level is not valid (more than MAX_LEVEL=61),
+ 1. when the embedding level is not valid (more than UNI_MAX_BIDI_LEVEL=61),
you must reject it, and not to push into the stack, but when you see a
PDF, you must find the matching code, and if it was pushed in the stack,
pop it, it means you must pop if and only if you have pushed the
matching code, the over_pushed var counts the number of rejected codes yet.
2. there's a more confusing point too, when the embedding level is exactly
- MAX_LEVEL-1=60, an LRO or LRE must be rejected because the new level would
- be MAX_LEVEL+1=62, that is invalid, but an RLO or RLE must be accepted
- because the new level is MAX_LEVEL=61, that is valid, so the rejected
- codes may be not continuous in the logical order, in fact there is at
- most two continuous intervals of codes, with a RLO or RLE between them.
- to support the case, the first_interval var counts the number of rejected
- codes in the first interval, when it is 0, means that there is only one
- interval yet.
+ UNI_MAX_BIDI_LEVEL-1=60, an LRO or LRE must be rejected because the new
+ level would be UNI_MAX_BIDI_LEVEL+1=62, that is invalid, but an RLO or RLE
+ must be accepted because the new level is UNI_MAX_BIDI_LEVEL=61, that is
+ valid, so the rejected codes may be not continuous in the logical order,
+ in fact there is at most two continuous intervals of codes, with a RLO or
+ RLE between them. To support this case, the first_interval var counts the
+ number of rejected codes in the first interval, when it is 0, means that
+ there is only one interval yet.
*/
/* a. If this new level would be valid, then this embedding code is valid.
@@ -429,10 +365,10 @@ compact_neutrals (TypeLink *list)
change the current level or override status.
*/
#define PUSH_STATUS \
- { \
- if (new_level <= MAX_LEVEL) \
+ do { \
+ if (new_level <= UNI_MAX_BIDI_LEVEL) \
{ \
- if (level == MAX_LEVEL - 1) \
+ if (level == UNI_MAX_BIDI_LEVEL - 1) \
first_interval = over_pushed; \
status_stack[stack_size].level = level; \
status_stack[stack_size].override = override; \
@@ -440,14 +376,14 @@ compact_neutrals (TypeLink *list)
level = new_level; \
override = new_override; \
} else \
- over_pushed++; \
- }
+ over_pushed++; \
+ } while (0)
/* If there was a valid matching code, restore (pop) the last remembered
(pushed) embedding level and directional override.
*/
#define POP_STATUS \
- { \
+ do { \
if (over_pushed || stack_size) \
{ \
if (over_pushed > first_interval) \
@@ -461,7 +397,7 @@ compact_neutrals (TypeLink *list)
override = status_stack[stack_size].override; \
} \
} \
- }
+ } while (0)
/*==========================================================================
* There was no support for sor and eor in the absence of Explicit Embedding
@@ -471,7 +407,8 @@ compact_neutrals (TypeLink *list)
/* Return the type of previous char or the sor, if already at the start of
a run level. */
#define PREV_TYPE_OR_SOR(pp) \
- (RL_LEVEL(pp->prev) == RL_LEVEL(pp) ? \
+ ( \
+ RL_LEVEL(pp->prev) == RL_LEVEL(pp) ? \
RL_TYPE(pp->prev) : \
FRIBIDI_LEVEL_TO_DIR(MAX(RL_LEVEL(pp->prev), RL_LEVEL(pp))) \
)
@@ -479,7 +416,8 @@ compact_neutrals (TypeLink *list)
/* Return the type of next char or the eor, if already at the end of
a run level. */
#define NEXT_TYPE_OR_EOR(pp) \
- (!pp->next ? \
+ ( \
+ !pp->next ? \
FRIBIDI_LEVEL_TO_DIR(RL_LEVEL(pp)) : \
(RL_LEVEL(pp->next) == RL_LEVEL(pp) ? \
RL_TYPE(pp->next) : \
@@ -487,7 +425,6 @@ compact_neutrals (TypeLink *list)
) \
)
-
/* Return the embedding direction of a link. */
#define FRIBIDI_EMBEDDING_DIRECTION(list) \
FRIBIDI_LEVEL_TO_DIR(RL_LEVEL(list))
@@ -498,7 +435,7 @@ compact_neutrals (TypeLink *list)
* levels.
*----------------------------------------------------------------------*/
-static gchar char_from_level_array[] = {
+static char char_from_level_array[] = {
'e', /* FRIBIDI_LEVEL_REMOVED, internal error, this level shouldn't be viewed. */
'_', /* FRIBIDI_LEVEL_START or _END, indicating start of string and end of string. */
/* 0-9,A-F are the only valid levels in debug mode and before resolving
@@ -530,7 +467,7 @@ print_resolved_levels (TypeLink *pp)
fprintf (stderr, " Res. levels: ");
while (pp)
{
- gint i;
+ FriBidiStrIndex i;
for (i = 0; i < RL_LEN (pp); i++)
fprintf (stderr, "%c", fribidi_char_from_level (RL_LEVEL (pp)));
pp = pp->next;
@@ -544,7 +481,7 @@ print_resolved_types (TypeLink *pp)
fprintf (stderr, " Res. types : ");
while (pp)
{
- gint i;
+ FriBidiStrIndex i;
for (i = 0; i < RL_LEN (pp); i++)
fprintf (stderr, "%c", fribidi_char_from_type (pp->type));
pp = pp->next;
@@ -557,7 +494,7 @@ print_resolved_types (TypeLink *pp)
static void
print_bidi_string (FriBidiChar *str)
{
- gint i;
+ FriBidiStrIndex i;
fprintf (stderr, " Org. types : ");
for (i = 0; str[i]; i++)
fprintf (stderr, "%c",
@@ -565,20 +502,21 @@ print_bidi_string (FriBidiChar *str)
fprintf (stderr, "\n");
}
#endif
-
/*======================================================================
* This function should follow the Unicode specification closely!
*----------------------------------------------------------------------*/
static void
-fribidi_analyse_string ( /* input */
- FriBidiChar *str,
- gint len, FriBidiCharType *pbase_dir,
- /* output */
- TypeLink **ptype_rl_list, gint *pmax_level)
+fribidi_analyse_string (/* input */
+ const FriBidiChar *str,
+ FriBidiStrIndex len,
+ FriBidiCharType *pbase_dir,
+ /* output */
+ TypeLink **ptype_rl_list,
+ FriBidiLevel *pmax_level)
{
- gint base_level, base_dir;
- gint max_level;
- gint i;
+ FriBidiLevel base_level, max_level;
+ FriBidiCharType base_dir;
+ FriBidiStrIndex i;
TypeLink *type_rl_list, *explicits_list, *explicits_list_end, *pp;
DBG ("Entering fribidi_analyse_string()\n");
@@ -586,21 +524,14 @@ fribidi_analyse_string ( /* input */
/* Determinate character types */
DBG (" Determine character types\n");
{
- FriBidiCharType* char_type;
-
- if (len < 512)
- char_type = g_alloca (len*sizeof(FriBidiCharType));
- else
- char_type = g_malloc (len*sizeof(FriBidiCharType));
-
+ FriBidiCharType *char_type =
+ (FriBidiCharType *) g_malloc (len * sizeof (FriBidiCharType));
for (i = 0; i < len; i++)
char_type[i] = _pango_fribidi_get_type (str[i]);
/* Run length encode the character types */
type_rl_list = run_length_encode_types (char_type, len);
-
- if (len >= 512)
- g_free (char_type);
+ g_free (char_type);
}
DBG (" Determine character types, Done\n");
@@ -614,20 +545,17 @@ fribidi_analyse_string ( /* input */
base direction */
else
{
- base_level = 0; /* Default */
- base_dir = FRIBIDI_TYPE_ON;
- for (pp = type_rl_list; pp; pp = pp->next)
- if (FRIBIDI_IS_LETTER (RL_TYPE (pp)))
- {
- base_level = FRIBIDI_DIR_TO_LEVEL (RL_TYPE (pp));
- base_dir = FRIBIDI_LEVEL_TO_DIR (base_level);
- break;
- }
-
/* If no strong base_dir was found, resort to the weak direction
that was passed on input. */
- if (FRIBIDI_IS_NEUTRAL (base_dir))
- base_level = FRIBIDI_DIR_TO_LEVEL (*pbase_dir);
+ base_level = FRIBIDI_DIR_TO_LEVEL (*pbase_dir);
+ base_dir = FRIBIDI_TYPE_ON;
+ for (pp = type_rl_list; pp; pp = pp->next)
+ if (FRIBIDI_IS_LETTER (RL_TYPE (pp)))
+ {
+ base_level = FRIBIDI_DIR_TO_LEVEL (RL_TYPE (pp));
+ base_dir = FRIBIDI_LEVEL_TO_DIR (base_level);
+ break;
+ }
}
base_dir = FRIBIDI_LEVEL_TO_DIR (base_level);
DBG2 (" Base level : %c\n", fribidi_char_from_level (base_level));
@@ -648,8 +576,10 @@ fribidi_analyse_string ( /* input */
embedding level. Set the directional override status to neutral.
Process each character iteratively, applying rules X2 through X9.
Only embedding levels from 0 to 61 are valid in this phase. */
- gint level, override, new_level, new_override, i;
- gint stack_size, over_pushed, first_interval;
+ FriBidiLevel level, new_level;
+ FriBidiCharType override, new_override;
+ FriBidiStrIndex i;
+ int stack_size, over_pushed, first_interval;
LevelInfo *status_stack;
TypeLink temp_link;
@@ -659,62 +589,63 @@ fribidi_analyse_string ( /* input */
stack_size = 0;
over_pushed = 0;
first_interval = 0;
- status_stack = g_new(LevelInfo, MAX_LEVEL + 2);
+ status_stack =
+ (LevelInfo *) g_malloc (sizeof (LevelInfo) * (UNI_MAX_BIDI_LEVEL + 2));
for (pp = type_rl_list->next; pp->next; pp = pp->next)
{
- gint this_type = RL_TYPE (pp);
- if (FRIBIDI_IS_EXPLICIT_OR_BN (this_type))
- {
- if (FRIBIDI_IS_STRONG (this_type))
- { /* LRE, RLE, LRO, RLO */
- /* 1. Explicit Embeddings */
- /* X2. With each RLE, compute the least greater odd embedding level. */
- /* X3. With each LRE, compute the least greater even embedding level. */
- /* 2. Explicit Overrides */
- /* X4. With each RLO, compute the least greater odd embedding level. */
- /* X5. With each LRO, compute the least greater even embedding level. */
- new_override = FRIBIDI_EXPLICIT_TO_OVERRIDE_DIR (this_type);
- for (i = 0; i < RL_LEN (pp); i++)
- {
- new_level =
- ((level + FRIBIDI_DIR_TO_LEVEL (this_type) + 2) & ~1) -
- FRIBIDI_DIR_TO_LEVEL (this_type);
- PUSH_STATUS;
- }
- }
- else if (this_type == FRIBIDI_TYPE_PDF)
- {
- /* 3. Terminating Embeddings and overrides */
- /* X7. With each PDF, determine the matching embedding or
- override code. */
- for (i = 0; i < RL_LEN (pp); i++)
- POP_STATUS;
- }
- /* X9. Remove all RLE, LRE, RLO, LRO, PDF, and BN codes. */
- /* Remove element and add it to explicits_list */
- temp_link.next = pp->next;
- pp->level = FRIBIDI_LEVEL_REMOVED;
- move_element_before (pp, explicits_list_end);
- pp = &temp_link;
- }
- else
- {
- /* X6. For all typed besides RLE, LRE, RLO, LRO, and PDF:
- a. Set the level of the current character to the current
- embedding level.
- b. Whenever the directional override status is not neutral,
- reset the current character type to the directional override
- status. */
- RL_LEVEL (pp) = level;
- if (!FRIBIDI_IS_NEUTRAL (override))
- RL_TYPE (pp) = override;
- }
- /* X8. All explicit directional embeddings and overrides are
- completely terminated at the end of each paragraph. Paragraph
- separators are not included in the embedding. */
- /* This function is running on a single paragraph, so we can do
- X8 after all the input is processed. */
+ FriBidiCharType this_type = RL_TYPE (pp);
+ if (FRIBIDI_IS_EXPLICIT_OR_BN (this_type))
+ {
+ if (FRIBIDI_IS_STRONG (this_type))
+ { /* LRE, RLE, LRO, RLO */
+ /* 1. Explicit Embeddings */
+ /* X2. With each RLE, compute the least greater odd embedding level. */
+ /* X3. With each LRE, compute the least greater even embedding level. */
+ /* 2. Explicit Overrides */
+ /* X4. With each RLO, compute the least greater odd embedding level. */
+ /* X5. With each LRO, compute the least greater even embedding level. */
+ new_override = FRIBIDI_EXPLICIT_TO_OVERRIDE_DIR (this_type);
+ for (i = 0; i < RL_LEN (pp); i++)
+ {
+ new_level =
+ ((level + FRIBIDI_DIR_TO_LEVEL (this_type) + 2) & ~1) -
+ FRIBIDI_DIR_TO_LEVEL (this_type);
+ PUSH_STATUS;
+ }
+ }
+ else if (this_type == FRIBIDI_TYPE_PDF)
+ {
+ /* 3. Terminating Embeddings and overrides */
+ /* X7. With each PDF, determine the matching embedding or
+ override code. */
+ for (i = 0; i < RL_LEN (pp); i++)
+ POP_STATUS;
+ }
+ /* X9. Remove all RLE, LRE, RLO, LRO, PDF, and BN codes. */
+ /* Remove element and add it to explicits_list */
+ temp_link.next = pp->next;
+ pp->level = FRIBIDI_LEVEL_REMOVED;
+ move_element_before (pp, explicits_list_end);
+ pp = &temp_link;
+ }
+ else
+ {
+ /* X6. For all typed besides RLE, LRE, RLO, LRO, and PDF:
+ a. Set the level of the current character to the current
+ embedding level.
+ b. Whenever the directional override status is not neutral,
+ reset the current character type to the directional override
+ status. */
+ RL_LEVEL (pp) = level;
+ if (!FRIBIDI_IS_NEUTRAL (override))
+ RL_TYPE (pp) = override;
+ }
+ /* X8. All explicit directional embeddings and overrides are
+ completely terminated at the end of each paragraph. Paragraph
+ separators are not included in the embedding. */
+ /* This function is running on a single paragraph, so we can do
+ X8 after all the input is processed. */
}
/* Implementing X8. It has no effect on a single paragraph! */
@@ -723,7 +654,7 @@ fribidi_analyse_string ( /* input */
stack_size = 0;
over_pushed = 0;
- g_free(status_stack);
+ g_free (status_stack);
}
/* X10. The remaining rules are applied to each run of characters at the
same level. For each run, determine the start-of-level-run (sor) and
@@ -750,41 +681,49 @@ fribidi_analyse_string ( /* input */
/* 4. Resolving weak types */
DBG ("Resolving weak types\n");
{
- gint last_strong, prev_type_org, w4;
+ FriBidiCharType last_strong, prev_type_org;
+ gboolean w4;
last_strong = base_dir;
for (pp = type_rl_list->next; pp->next; pp = pp->next)
{
- gint prev_type, this_type, next_type;
-
- prev_type = PREV_TYPE_OR_SOR (pp);
- this_type = RL_TYPE (pp);
- next_type = NEXT_TYPE_OR_EOR (pp);
-
- if (FRIBIDI_IS_STRONG (prev_type))
- last_strong = prev_type;
-
- /* W1. NSM
- Examine each non-spacing mark (NSM) in the level run, and change the
- type of the NSM to the type of the previous character. If the NSM
- is at the start of the level run, it will get the type of sor. */
- if (this_type == FRIBIDI_TYPE_NSM)
- {
- RL_TYPE (pp) = prev_type;
- continue;
- }
-
- /* W2: European numbers. */
- if (this_type == FRIBIDI_TYPE_EN && last_strong == FRIBIDI_TYPE_AL)
- {
- RL_TYPE (pp) = FRIBIDI_TYPE_AN;
-
- /* Resolving dependency of loops for rules W1 and W2, so we
- can merge them in one loop. */
- if (next_type == FRIBIDI_TYPE_NSM)
- RL_TYPE (pp->next) = FRIBIDI_TYPE_AN;
- }
+ FriBidiCharType prev_type, this_type, next_type;
+
+ prev_type = PREV_TYPE_OR_SOR (pp);
+ this_type = RL_TYPE (pp);
+ next_type = NEXT_TYPE_OR_EOR (pp);
+
+ if (FRIBIDI_IS_STRONG (prev_type))
+ last_strong = prev_type;
+
+ /* W1. NSM
+ Examine each non-spacing mark (NSM) in the level run, and change the
+ type of the NSM to the type of the previous character. If the NSM
+ is at the start of the level run, it will get the type of sor. */
+ /* Implementation note: it is important that if the previous character
+ is not sor, then we should merge this run with the previous,
+ because of rules like W5, that we assume all of a sequence of
+ adjacent ETs are in one TypeLink. */
+ if (this_type == FRIBIDI_TYPE_NSM)
+ {
+ if (RL_LEVEL (pp->prev) == RL_LEVEL (pp))
+ pp = merge_with_prev (pp);
+ else
+ RL_TYPE (pp) = prev_type;
+ continue; /* As we know the next condition cannot be true. */
+ }
+
+ /* W2: European numbers. */
+ if (this_type == FRIBIDI_TYPE_EN && last_strong == FRIBIDI_TYPE_AL)
+ {
+ RL_TYPE (pp) = FRIBIDI_TYPE_AN;
+
+ /* Resolving dependency of loops for rules W1 and W2, so we
+ can merge them in one loop. */
+ if (next_type == FRIBIDI_TYPE_NSM)
+ RL_TYPE (pp->next) = FRIBIDI_TYPE_AN;
+ }
}
@@ -792,7 +731,7 @@ fribidi_analyse_string ( /* input */
/* Resolving dependency of loops for rules W4 and W5, W5 may
want to prevent W4 to take effect in the next turn, do this
through "w4". */
- w4 = 1;
+ w4 = TRUE;
/* Resolving dependency of loops for rules W4 and W5 with W7,
W7 may change an EN to L but it sets the prev_type_org if needed,
so W4 and W5 in next turn can still do their works. */
@@ -800,62 +739,62 @@ fribidi_analyse_string ( /* input */
for (pp = type_rl_list->next; pp->next; pp = pp->next)
{
- gint prev_type, this_type, next_type;
-
- prev_type = PREV_TYPE_OR_SOR (pp);
- this_type = RL_TYPE (pp);
- next_type = NEXT_TYPE_OR_EOR (pp);
-
- if (FRIBIDI_IS_STRONG (prev_type))
- last_strong = prev_type;
-
- /* W3: Change ALs to R. */
- if (this_type == FRIBIDI_TYPE_AL)
- {
- RL_TYPE (pp) = FRIBIDI_TYPE_RTL;
- w4 = 1;
- prev_type_org = FRIBIDI_TYPE_ON;
- continue;
- }
-
- /* W4. A single european separator changes to a european number.
- A single common separator between two numbers of the same type
- changes to that type. */
- if (w4
- && RL_LEN (pp) == 1 && FRIBIDI_IS_ES_OR_CS (this_type)
- && FRIBIDI_IS_NUMBER (prev_type_org) && prev_type_org == next_type
- && (prev_type_org == FRIBIDI_TYPE_EN
- || this_type == FRIBIDI_TYPE_CS))
- {
- RL_TYPE (pp) = prev_type;
- this_type = RL_TYPE (pp);
- }
- w4 = 1;
-
- /* W5. A sequence of European terminators adjacent to European
- numbers changes to All European numbers. */
- if (this_type == FRIBIDI_TYPE_ET
- && (prev_type_org == FRIBIDI_TYPE_EN
- || next_type == FRIBIDI_TYPE_EN))
- {
- RL_TYPE (pp) = FRIBIDI_TYPE_EN;
- w4 = 0;
- this_type = RL_TYPE (pp);
- }
-
- /* W6. Otherwise change separators and terminators to other neutral. */
- if (FRIBIDI_IS_NUMBER_SEPARATOR_OR_TERMINATOR (this_type))
- RL_TYPE (pp) = FRIBIDI_TYPE_ON;
-
- /* W7. Change european numbers to L. */
- if (this_type == FRIBIDI_TYPE_EN && last_strong == FRIBIDI_TYPE_LTR)
- {
- RL_TYPE (pp) = FRIBIDI_TYPE_LTR;
- prev_type_org = (RL_LEVEL (pp) == RL_LEVEL (pp->next) ?
- FRIBIDI_TYPE_EN : FRIBIDI_TYPE_ON);
- }
- else
- prev_type_org = PREV_TYPE_OR_SOR (pp->next);
+ FriBidiCharType prev_type, this_type, next_type;
+
+ prev_type = PREV_TYPE_OR_SOR (pp);
+ this_type = RL_TYPE (pp);
+ next_type = NEXT_TYPE_OR_EOR (pp);
+
+ if (FRIBIDI_IS_STRONG (prev_type))
+ last_strong = prev_type;
+
+ /* W3: Change ALs to R. */
+ if (this_type == FRIBIDI_TYPE_AL)
+ {
+ RL_TYPE (pp) = FRIBIDI_TYPE_RTL;
+ w4 = TRUE;
+ prev_type_org = FRIBIDI_TYPE_ON;
+ continue;
+ }
+
+ /* W4. A single european separator changes to a european number.
+ A single common separator between two numbers of the same type
+ changes to that type. */
+ if (w4
+ && RL_LEN (pp) == 1 && FRIBIDI_IS_ES_OR_CS (this_type)
+ && FRIBIDI_IS_NUMBER (prev_type_org) && prev_type_org == next_type
+ && (prev_type_org == FRIBIDI_TYPE_EN
+ || this_type == FRIBIDI_TYPE_CS))
+ {
+ RL_TYPE (pp) = prev_type;
+ this_type = RL_TYPE (pp);
+ }
+ w4 = TRUE;
+
+ /* W5. A sequence of European terminators adjacent to European
+ numbers changes to All European numbers. */
+ if (this_type == FRIBIDI_TYPE_ET
+ && (prev_type_org == FRIBIDI_TYPE_EN
+ || next_type == FRIBIDI_TYPE_EN))
+ {
+ RL_TYPE (pp) = FRIBIDI_TYPE_EN;
+ w4 = FALSE;
+ this_type = RL_TYPE (pp);
+ }
+
+ /* W6. Otherwise change separators and terminators to other neutral. */
+ if (FRIBIDI_IS_NUMBER_SEPARATOR_OR_TERMINATOR (this_type))
+ RL_TYPE (pp) = FRIBIDI_TYPE_ON;
+
+ /* W7. Change european numbers to L. */
+ if (this_type == FRIBIDI_TYPE_EN && last_strong == FRIBIDI_TYPE_LTR)
+ {
+ RL_TYPE (pp) = FRIBIDI_TYPE_LTR;
+ prev_type_org = (RL_LEVEL (pp) == RL_LEVEL (pp->next) ?
+ FRIBIDI_TYPE_EN : FRIBIDI_TYPE_ON);
+ }
+ else
+ prev_type_org = PREV_TYPE_OR_SOR (pp->next);
}
}
@@ -876,18 +815,18 @@ fribidi_analyse_string ( /* input */
For each neutral, resolve it. */
for (pp = type_rl_list->next; pp->next; pp = pp->next)
{
- gint prev_type, this_type, next_type;
-
- /* "European and arabic numbers are treated as though they were R"
- FRIBIDI_CHANGE_NUMBER_TO_RTL does this. */
- this_type = FRIBIDI_CHANGE_NUMBER_TO_RTL (RL_TYPE (pp));
- prev_type = FRIBIDI_CHANGE_NUMBER_TO_RTL (PREV_TYPE_OR_SOR (pp));
- next_type = FRIBIDI_CHANGE_NUMBER_TO_RTL (NEXT_TYPE_OR_EOR (pp));
-
- if (FRIBIDI_IS_NEUTRAL (this_type))
- RL_TYPE (pp) = (prev_type == next_type) ?
- /* N1. */ prev_type :
- /* N2. */ FRIBIDI_EMBEDDING_DIRECTION (pp);
+ FriBidiCharType prev_type, this_type, next_type;
+
+ /* "European and arabic numbers are treated as though they were R"
+ FRIBIDI_CHANGE_NUMBER_TO_RTL does this. */
+ this_type = FRIBIDI_CHANGE_NUMBER_TO_RTL (RL_TYPE (pp));
+ prev_type = FRIBIDI_CHANGE_NUMBER_TO_RTL (PREV_TYPE_OR_SOR (pp));
+ next_type = FRIBIDI_CHANGE_NUMBER_TO_RTL (NEXT_TYPE_OR_EOR (pp));
+
+ if (FRIBIDI_IS_NEUTRAL (this_type))
+ RL_TYPE (pp) = (prev_type == next_type) ?
+ /* N1. */ prev_type :
+ /* N2. */ FRIBIDI_EMBEDDING_DIRECTION (pp);
}
}
@@ -908,21 +847,22 @@ fribidi_analyse_string ( /* input */
for (pp = type_rl_list->next; pp->next; pp = pp->next)
{
- gint this_type, level;
-
- this_type = RL_TYPE (pp);
- level = RL_LEVEL (pp);
-
- /* I1. Even */
- /* I2. Odd */
- if (FRIBIDI_IS_NUMBER (this_type))
- RL_LEVEL (pp) = (RL_LEVEL (pp) + 2) & ~1;
- else
- RL_LEVEL (pp) = (RL_LEVEL (pp) ^ FRIBIDI_DIR_TO_LEVEL (this_type)) +
- (RL_LEVEL (pp) & 1);
-
- if (RL_LEVEL (pp) > max_level)
- max_level = RL_LEVEL (pp);
+ FriBidiCharType this_type;
+ FriBidiLevel level;
+
+ this_type = RL_TYPE (pp);
+ level = RL_LEVEL (pp);
+
+ /* I1. Even */
+ /* I2. Odd */
+ if (FRIBIDI_IS_NUMBER (this_type))
+ RL_LEVEL (pp) = (level + 2) & ~1;
+ else
+ RL_LEVEL (pp) = (level ^ FRIBIDI_DIR_TO_LEVEL (this_type)) +
+ (level & 1);
+
+ if (RL_LEVEL (pp) > max_level)
+ max_level = RL_LEVEL (pp);
}
}
@@ -949,7 +889,7 @@ fribidi_analyse_string ( /* input */
p->level = base_level;
for (; p->next; p = p->next)
if (p->level < 0)
- p->level = p->prev->level;
+ p->level = p->prev->level;
}
#ifdef DEBUG
@@ -963,7 +903,7 @@ fribidi_analyse_string ( /* input */
DBG ("Reset the embedding levels\n");
{
- gint j, k, state, pos;
+ int j, k, state, pos;
TypeLink *p, *q, *list, *list_end;
/* L1. Reset the embedding levels of some chars. */
@@ -973,28 +913,28 @@ fribidi_analyse_string ( /* input */
pos = len - 1;
for (j = len - 1; j >= -1; j--)
{
- /* if state is on at the very first of string, do this too. */
- if (j >= 0)
- k = _pango_fribidi_get_type (str[j]);
- else
- k = FRIBIDI_TYPE_ON;
- if (!state && FRIBIDI_IS_SEPARATOR (k))
- {
- state = 1;
- pos = j;
- }
- else if (state && !FRIBIDI_IS_EXPLICIT_OR_SEPARATOR_OR_BN_OR_WS (k))
- {
- state = 0;
- p = new_type_link ();
- p->prev = p->next = NULL;
- p->pos = j + 1;
- p->len = pos - j;
- p->type = base_dir;
- p->level = base_level;
- move_element_before (p, q);
- q = p;
- }
+ /* if state is on at the very first of string, do this too. */
+ if (j >= 0)
+ k = _pango_fribidi_get_type (str[j]);
+ else
+ k = FRIBIDI_TYPE_ON;
+ if (!state && FRIBIDI_IS_SEPARATOR (k))
+ {
+ state = 1;
+ pos = j;
+ }
+ else if (state && !FRIBIDI_IS_EXPLICIT_OR_SEPARATOR_OR_BN_OR_WS (k))
+ {
+ state = 0;
+ p = new_type_link ();
+ p->prev = p->next = (TypeLink *) NULL;
+ p->pos = j + 1;
+ p->len = pos - j;
+ p->type = base_dir;
+ p->level = base_level;
+ move_element_before (p, q);
+ q = p;
+ }
}
override_list (type_rl_list, list);
}
@@ -1034,7 +974,6 @@ free_rl_list (TypeLink *type_rl_list)
return;
}
-#ifdef USE_SIMPLE_MALLOC
pp = type_rl_list;
while (pp)
{
@@ -1044,40 +983,30 @@ free_rl_list (TypeLink *type_rl_list)
pp = pp->next;
free_type_link (p);
};
-#else
- for (pp = type_rl_list->next; pp->next; pp = pp->next)
- /* Nothing */ ;
- pp->next = free_type_links;
- free_type_links = type_rl_list;
- type_rl_list = NULL;
-#endif
DBG ("Leaving free_rl_list()\n");
return;
}
/*======================================================================
- * Here starts the exposed front end functions.
- *----------------------------------------------------------------------*/
-
-/*======================================================================
* fribidi_log2vis_get_embedding_levels() is used in order to just get
* the embedding levels.
*----------------------------------------------------------------------*/
gboolean
-pango_log2vis_get_embedding_levels ( /* input */
- gunichar *str,
- int len, PangoDirection *pbase_dir,
- /* output */
- guint8 *embedding_level_list)
+pango_log2vis_get_embedding_levels (/* input */
+ gunichar *str,
+ gint len,
+ PangoDirection *pbase_dir,
+ /* output */
+ guint8 *embedding_level_list)
{
TypeLink *type_rl_list, *pp;
- gint max_level;
+ FriBidiLevel max_level;
FriBidiCharType fribidi_base_dir;
DBG ("Entering fribidi_log2vis_get_embedding_levels()\n");
- fribidi_base_dir = (*pbase_dir == PANGO_DIRECTION_LTR) ? FRIBIDI_TYPE_L : FRIBIDI_TYPE_R;
+ fribidi_base_dir = (*pbase_dir == PANGO_DIRECTION_LTR) ? FRIBIDI_TYPE_LTR : FRIBIDI_TYPE_RTL;
if (len == 0)
{
@@ -1086,23 +1015,21 @@ pango_log2vis_get_embedding_levels ( /* input */
}
fribidi_analyse_string (str, len, &fribidi_base_dir,
- /* output */
- &type_rl_list, &max_level);
+ /* output */
+ &type_rl_list, &max_level);
for (pp = type_rl_list->next; pp->next; pp = pp->next)
{
- gint i;
- gint pos = RL_POS (pp);
- gint len = RL_LEN (pp);
+ gint i, pos = RL_POS (pp),
+ len = RL_LEN (pp);
gint level = RL_LEVEL (pp);
for (i = 0; i < len; i++)
- embedding_level_list[pos + i] = level;
+ embedding_level_list[pos + i] = level;
}
free_rl_list (type_rl_list);
-
- *pbase_dir = (fribidi_base_dir == FRIBIDI_TYPE_L) ? PANGO_DIRECTION_LTR : PANGO_DIRECTION_RTL;
DBG ("Leaving fribidi_log2vis_get_embedding_levels()\n");
return TRUE;
}
+
diff --git a/pango/mini-fribidi/fribidi.patch b/pango/mini-fribidi/fribidi.patch
index 0da8a377..e8b1cdca 100644
--- a/pango/mini-fribidi/fribidi.patch
+++ b/pango/mini-fribidi/fribidi.patch
@@ -1,6 +1,30 @@
---- /home/otaylor/cvs/fribidi/fribidi.c Thu Oct 18 14:42:36 2001
-+++ fribidi.c Thu Oct 18 14:35:42 2001
-@@ -21,10 +21,10 @@
+Only in /usr/src/fribidi/: acconfig.h
+Only in /usr/src/fribidi/: acinclude.m4
+Only in /usr/src/fribidi/: aclocal.m4
+Only in /usr/src/fribidi/: ANNOUNCE
+Only in /usr/src/fribidi/: AUTHORS
+Only in /usr/src/fribidi/: autom4te.cache
+Only in /usr/src/fribidi/: bootstrap
+Only in /usr/src/fribidi/: ChangeLog
+Only in /usr/src/fribidi/: config.guess
+Only in /usr/src/fribidi/: config.h
+Only in /usr/src/fribidi/: config.h.in
+Only in /usr/src/fribidi/: config.log
+Only in /usr/src/fribidi/: config.status
+Only in /usr/src/fribidi/: config.sub
+Only in /usr/src/fribidi/: configure
+Only in /usr/src/fribidi/: configure.in
+Only in /usr/src/fribidi/: conformance
+Only in /usr/src/fribidi/: COPYING
+Common subdirectories: /usr/src/fribidi/CVS and mini-fribidi/CVS
+Only in mini-fribidi/: .cvsignore
+Only in /usr/src/fribidi/: depcomp
+Only in /usr/src/fribidi/: .deps
+Only in /usr/src/fribidi/: fribidi_benchmark.c
+diff -bu /usr/src/fribidi/fribidi.c mini-fribidi/fribidi.c
+--- /usr/src/fribidi/fribidi.c 2002-09-13 16:26:42.000000000 -0400
++++ mini-fribidi/fribidi.c 2003-07-14 18:21:27.000000000 -0400
+@@ -21,27 +21,17 @@
* <fwpg@sharif.edu>.
*/
@@ -8,31 +32,52 @@
-#include <config.h>
-#endif
-#include "fribidi.h"
+-#include "fribidi_mem.h"
+-#ifdef DEBUG
+-#include <stdio.h>
+-#endif
+#include <glib.h>
+#include "pango/pango-utils.h"
+#include "fribidi_types.h"
-+
- #ifdef DEBUG
- #include <stdio.h>
- #endif
-@@ -80,40 +80,6 @@
- static gboolean fribidi_debug = FALSE;
- #endif
--gboolean
--fribidi_set_debug (gboolean debug)
--{
--#ifdef DEBUG
-- return fribidi_debug = debug;
+-/* Redefine FRIBIDI_CHUNK_SIZE in config.h to override this. */
+-#ifndef FRIBIDI_CHUNK_SIZE
+-#ifdef MEM_OPTIMIZED
+-#define FRIBIDI_CHUNK_SIZE 16
-#else
-- return 0;
+-#define FRIBIDI_CHUNK_SIZE 128
-#endif
--}
++#ifdef DEBUG
++static gboolean fribidi_debug = FALSE;
+ #endif
+
+ #ifdef DEBUG
+-#define DBG(s) do { if (fribidi_debug_status(fribidienv)) { fprintf(stderr, s); } } while (0)
+-#define DBG2(s, t) do { if (fribidi_debug_status(fribidienv)) { fprintf(stderr, s, t); } } while (0)
++#define DBG(s) do { if (fribidi_debug) { fprintf(stderr, s); } } while (0)
++#define DBG2(s, t) do { if (fribidi_debug) { fprintf(stderr, s, t); } } while (0)
+ #else
+ #define DBG(s)
+ #define DBG2(s, t)
+@@ -51,7 +41,7 @@
+ char fribidi_char_from_type (FriBidiCharType c);
+ #endif
+
+-#define MAX(a,b) ((a) > (b) ? (a) : (b))
++#define UNI_MAX_BIDI_LEVEL 61
+
+ /*======================================================================
+ * Typedef for the run-length list.
+@@ -79,63 +69,12 @@
+ }
+ LevelInfo;
+
-
-static void
--bidi_string_reverse (FriBidiChar *str, gint len)
+-bidi_string_reverse (FriBidiChar *str,
+- FriBidiStrIndex len)
-{
-- gint i;
+- FriBidiStrIndex i;
- for (i = 0; i < len / 2; i++)
- {
- FriBidiChar tmp = str[i];
@@ -42,9 +87,10 @@
-}
-
-static void
--index_array_reverse (FriBidiStrIndex *arr, gint len)
+-index_array_reverse (FriBidiStrIndex *arr,
+- FriBidiStrIndex len)
-{
-- gint i;
+- FriBidiStrIndex i;
- for (i = 0; i < len / 2; i++)
- {
- FriBidiStrIndex tmp = arr[i];
@@ -53,133 +99,616 @@
- }
-}
-
- #ifndef USE_SIMPLE_MALLOC
- static TypeLink *free_type_links = NULL;
- #endif
-@@ -595,7 +561,7 @@
+-#ifndef USE_SIMPLE_MALLOC
+-static TypeLink *free_type_links = NULL;
+-#endif
+-
+ static TypeLink *
+-new_type_link (FriBidiEnv *fribidienv)
++new_type_link ()
+ {
+ TypeLink *link;
+
+-#ifdef USE_SIMPLE_MALLOC
+- link = (TypeLink *) fribidi_malloc (fribidienv, sizeof (TypeLink));
+-#else /* !USE_SIMPLE_MALLOC */
+- if (free_type_links)
+- {
+- link = free_type_links;
+- free_type_links = free_type_links->next;
+- }
+- else
+- {
+- static FriBidiMemChunk *mem_chunk = NULL;
+-
+- if (!mem_chunk)
+- mem_chunk = fribidi_mem_chunk_create (fribidienv, TypeLink,
+- FRIBIDI_CHUNK_SIZE,
+- FRIBIDI_ALLOC_ONLY);
+-
+- link = fribidi_chunk_new (fribidienv, TypeLink,
+- mem_chunk);
+- }
+-#endif /* !USE_SIMPLE_MALLOC */
++ link = (TypeLink *) g_malloc (sizeof (TypeLink));
+
+ link->len = 0;
+ link->pos = 0;
+@@ -146,15 +85,9 @@
+ }
+
+ static void
+-free_type_link (FriBidiEnv *fribidienv,
+- TypeLink *link)
++free_type_link (TypeLink *link)
+ {
+-#ifdef USE_SIMPLE_MALLOC
+- fribidi_free (fribidienv, link);
+-#else
+- link->next = free_type_links;
+- free_type_links = link;
+-#endif
++ g_free (link);
+ }
+
+ #define FRIBIDI_ADD_TYPE_LINK(p,q) \
+@@ -166,8 +99,7 @@
+ } while (0)
+
+ static TypeLink *
+-run_length_encode_types (FriBidiEnv *fribidienv,
+- FriBidiCharType *char_type,
++run_length_encode_types (FriBidiCharType *char_type,
+ FriBidiStrIndex type_len)
+ {
+ TypeLink *list, *last, *link;
+@@ -175,7 +107,7 @@
+ FriBidiStrIndex i;
+
+ /* Add the starting link */
+- list = new_type_link (fribidienv);
++ list = new_type_link ();
+ list->type = FRIBIDI_TYPE_SOT;
+ list->level = FRIBIDI_LEVEL_START;
+ last = list;
+@@ -184,14 +116,14 @@
+ for (i = 0; i < type_len; i++)
+ if (char_type[i] != last->type)
+ {
+- link = new_type_link (fribidienv);
++ link = new_type_link ();
+ link->type = char_type[i];
+ link->pos = i;
+ FRIBIDI_ADD_TYPE_LINK (last, link);
+ }
+
+ /* Add the ending link */
+- link = new_type_link (fribidienv);
++ link = new_type_link ();
+ link->type = FRIBIDI_TYPE_EOT;
+ link->level = FRIBIDI_LEVEL_END;
+ link->pos = type_len;
+@@ -205,22 +137,21 @@
+ the override_list.
+ */
+ static void
+-init_list (FriBidiEnv *fribidienv,
+- TypeLink **start,
++init_list (TypeLink **start,
+ TypeLink **end)
+ {
+ TypeLink *list;
+ TypeLink *link;
+
+ /* Add the starting link */
+- list = new_type_link (fribidienv);
++ list = new_type_link ();
+ list->type = FRIBIDI_TYPE_SOT;
+ list->level = FRIBIDI_LEVEL_START;
+ list->len = 0;
+ list->pos = 0;
+
+ /* Add the ending link */
+- link = new_type_link (fribidienv);
++ link = new_type_link ();
+ link->type = FRIBIDI_TYPE_EOT;
+ link->level = FRIBIDI_LEVEL_END;
+ link->len = 0;
+@@ -267,8 +198,7 @@
+ TBD: use some explanatory names instead of p, q, ...
+ */
+ static void
+-override_list (FriBidiEnv *fribidienv,
+- TypeLink *base,
++override_list (TypeLink *base,
+ TypeLink *over)
+ {
+ TypeLink *p = base, *q, *r, *s, *t;
+@@ -283,7 +213,7 @@
+ {
+ t = q;
+ q = q->next;
+- free_type_link (fribidienv, t);
++ free_type_link (t);
+ continue;
+ }
+ pos = q->pos;
+@@ -304,7 +234,7 @@
+ r = r->next;
+ else
+ {
+- r = new_type_link (fribidienv);
++ r = new_type_link ();
+ *r = *p;
+ if (r->next)
+ {
+@@ -320,7 +250,7 @@
+ {
+ t = p;
+ p = p->prev;
+- free_type_link (fribidienv, t);
++ free_type_link (t);
+ }
+ else
+ p->len = pos - p->pos;
+@@ -346,7 +276,7 @@
+ {
+ t = s;
+ s = s->next;
+- free_type_link (fribidienv, t);
++ free_type_link (t);
+ }
+ }
+ /* before updating the next and prev links to point to the inserted q,
+@@ -368,31 +298,28 @@
+ #define RL_LEVEL(list) ((list)->level)
+
+ static TypeLink *
+-merge_with_prev (FriBidiEnv *fribidienv,
+- TypeLink *second)
++merge_with_prev (TypeLink *second)
+ {
+ TypeLink *first = second->prev;
+ first->next = second->next;
+ first->next->prev = first;
+ RL_LEN (first) += RL_LEN (second);
+- free_type_link (fribidienv, second);
++ free_type_link (second);
+ return first;
+ }
+
+ static void
+-compact_list (FriBidiEnv *fribidienv,
+- TypeLink *list)
++compact_list (TypeLink *list)
+ {
+ if (list->next)
+ for (list = list->next; list; list = list->next)
+ if (RL_TYPE (list->prev) == RL_TYPE (list)
+ && RL_LEVEL (list->prev) == RL_LEVEL (list))
+- list = merge_with_prev (fribidienv, list);
++ list = merge_with_prev (list);
+ }
+
+ static void
+-compact_neutrals (FriBidiEnv *fribidienv,
+- TypeLink *list)
++compact_neutrals (TypeLink *list)
+ {
+ if (list->next)
+ {
+@@ -404,7 +331,7 @@
+ (list->prev) == RL_TYPE (list)
+ || (FRIBIDI_IS_NEUTRAL (RL_TYPE (list->prev))
+ && FRIBIDI_IS_NEUTRAL (RL_TYPE (list))))))
+- list = merge_with_prev (fribidienv, list);
++ list = merge_with_prev (list);
+ }
+ }
+ }
+@@ -498,7 +425,6 @@
+ ) \
+ )
+
+-
+ /* Return the embedding direction of a link. */
+ #define FRIBIDI_EMBEDDING_DIRECTION(list) \
+ FRIBIDI_LEVEL_TO_DIR(RL_LEVEL(list))
+@@ -572,17 +498,15 @@
fprintf (stderr, " Org. types : ");
for (i = 0; str[i]; i++)
fprintf (stderr, "%c",
-- fribidi_char_from_type (fribidi_get_type (str[i])));
+- fribidi_char_from_type (fribidi_get_type (fribidienv, str[i])));
+ fribidi_char_from_type (_pango_fribidi_get_type (str[i])));
fprintf (stderr, "\n");
}
#endif
-@@ -620,9 +586,9 @@
- /* Determinate character types */
+-
+ /*======================================================================
+ * This function should follow the Unicode specification closely!
+ *----------------------------------------------------------------------*/
+ static void
+-fribidi_analyse_string (FriBidiEnv *fribidienv,
+- /* input */
++fribidi_analyse_string (/* input */
+ const FriBidiChar *str,
+ FriBidiStrIndex len,
+ FriBidiCharType *pbase_dir,
+@@ -601,18 +525,17 @@
DBG (" Determine character types\n");
{
-- FriBidiCharType char_type[len];
-+ FriBidiCharType* char_type = g_alloca (len*sizeof(FriBidiCharType));
+ FriBidiCharType *char_type =
+- (FriBidiCharType *) fribidi_malloc (fribidienv,
+- len * sizeof (FriBidiCharType));
++ (FriBidiCharType *) g_malloc (len * sizeof (FriBidiCharType));
for (i = 0; i < len; i++)
-- char_type[i] = fribidi_get_type (str[i]);
+- char_type[i] = fribidi_get_type (fribidienv, str[i]);
+ char_type[i] = _pango_fribidi_get_type (str[i]);
/* Run length encode the character types */
- type_rl_list = run_length_encode_types (char_type, len);
-@@ -1000,7 +966,7 @@
+- type_rl_list = run_length_encode_types (fribidienv, char_type, len);
+- fribidi_free (fribidienv, char_type);
++ type_rl_list = run_length_encode_types (char_type, len);
++ g_free (char_type);
+ }
+ DBG (" Determine character types, Done\n");
+
+- init_list (fribidienv, &explicits_list, &explicits_list_end);
++ init_list (&explicits_list, &explicits_list_end);
+
+ /* Find base level */
+ DBG (" Finding the base level\n");
+@@ -640,7 +563,7 @@
+ DBG (" Finding the base level, Done\n");
+
+ #ifdef DEBUG
+- if (fribidi_debug_status (fribidienv))
++ if (fribidi_debug)
+ {
+ print_types_re (type_rl_list);
+ }
+@@ -667,9 +590,7 @@
+ over_pushed = 0;
+ first_interval = 0;
+ status_stack =
+- (LevelInfo *) fribidi_malloc (fribidienv,
+- sizeof (LevelInfo) * (UNI_MAX_BIDI_LEVEL +
+- 2));
++ (LevelInfo *) g_malloc (sizeof (LevelInfo) * (UNI_MAX_BIDI_LEVEL + 2));
+
+ for (pp = type_rl_list->next; pp->next; pp = pp->next)
+ {
+@@ -733,7 +654,7 @@
+ stack_size = 0;
+ over_pushed = 0;
+
+- fribidi_free (fribidienv, status_stack);
++ g_free (status_stack);
+ }
+ /* X10. The remaining rules are applied to each run of characters at the
+ same level. For each run, determine the start-of-level-run (sor) and
+@@ -745,10 +666,10 @@
+ /* Resolving Implicit Levels can be done out of X10 loop, so only change
+ of Resolving Weak Types and Resolving Neutral Types is needed. */
+
+- compact_list (fribidienv, type_rl_list);
++ compact_list (type_rl_list);
+
+ #ifdef DEBUG
+- if (fribidi_debug_status (fribidienv))
++ if (fribidi_debug)
+ {
+ print_types_re (type_rl_list);
+ print_bidi_string (str);
+@@ -761,7 +682,7 @@
+ DBG ("Resolving weak types\n");
+ {
+ FriBidiCharType last_strong, prev_type_org;
+- fribidi_boolean w4;
++ gboolean w4;
+
+ last_strong = base_dir;
+
+@@ -787,7 +708,7 @@
+ if (this_type == FRIBIDI_TYPE_NSM)
+ {
+ if (RL_LEVEL (pp->prev) == RL_LEVEL (pp))
+- pp = merge_with_prev (fribidienv, pp);
++ pp = merge_with_prev (pp);
+ else
+ RL_TYPE (pp) = prev_type;
+ continue; /* As we know the next condition cannot be true. */
+@@ -810,7 +731,7 @@
+ /* Resolving dependency of loops for rules W4 and W5, W5 may
+ want to prevent W4 to take effect in the next turn, do this
+ through "w4". */
+- w4 = FRIBIDI_TRUE;
++ w4 = TRUE;
+ /* Resolving dependency of loops for rules W4 and W5 with W7,
+ W7 may change an EN to L but it sets the prev_type_org if needed,
+ so W4 and W5 in next turn can still do their works. */
+@@ -831,7 +752,7 @@
+ if (this_type == FRIBIDI_TYPE_AL)
+ {
+ RL_TYPE (pp) = FRIBIDI_TYPE_RTL;
+- w4 = FRIBIDI_TRUE;
++ w4 = TRUE;
+ prev_type_org = FRIBIDI_TYPE_ON;
+ continue;
+ }
+@@ -848,7 +769,7 @@
+ RL_TYPE (pp) = prev_type;
+ this_type = RL_TYPE (pp);
+ }
+- w4 = FRIBIDI_TRUE;
++ w4 = TRUE;
+
+ /* W5. A sequence of European terminators adjacent to European
+ numbers changes to All European numbers. */
+@@ -857,7 +778,7 @@
+ || next_type == FRIBIDI_TYPE_EN))
+ {
+ RL_TYPE (pp) = FRIBIDI_TYPE_EN;
+- w4 = FRIBIDI_FALSE;
++ w4 = FALSE;
+ this_type = RL_TYPE (pp);
+ }
+
+@@ -877,10 +798,10 @@
+ }
+ }
+
+- compact_neutrals (fribidienv, type_rl_list);
++ compact_neutrals (type_rl_list);
+
+ #ifdef DEBUG
+- if (fribidi_debug_status (fribidienv))
++ if (fribidi_debug)
+ {
+ print_resolved_levels (type_rl_list);
+ print_resolved_types (type_rl_list);
+@@ -909,10 +830,10 @@
+ }
+ }
+
+- compact_list (fribidienv, type_rl_list);
++ compact_list (type_rl_list);
+
+ #ifdef DEBUG
+- if (fribidi_debug_status (fribidienv))
++ if (fribidi_debug)
+ {
+ print_resolved_levels (type_rl_list);
+ print_resolved_types (type_rl_list);
+@@ -945,10 +866,10 @@
+ }
+ }
+
+- compact_list (fribidienv, type_rl_list);
++ compact_list (type_rl_list);
+
+ #ifdef DEBUG
+- if (fribidi_debug_status (fribidienv))
++ if (fribidi_debug)
+ {
+ print_bidi_string (str);
+ print_resolved_levels (type_rl_list);
+@@ -962,7 +883,7 @@
+ {
+ TypeLink *p;
+
+- override_list (fribidienv, type_rl_list, explicits_list);
++ override_list (type_rl_list, explicits_list);
+ p = type_rl_list->next;
+ if (p->level < 0)
+ p->level = base_level;
+@@ -972,7 +893,7 @@
+ }
+
+ #ifdef DEBUG
+- if (fribidi_debug_status (fribidienv))
++ if (fribidi_debug)
+ {
+ print_types_re (type_rl_list);
+ print_resolved_levels (type_rl_list);
+@@ -986,7 +907,7 @@
+ TypeLink *p, *q, *list, *list_end;
+
+ /* L1. Reset the embedding levels of some chars. */
+- init_list (fribidienv, &list, &list_end);
++ init_list (&list, &list_end);
+ q = list_end;
+ state = 1;
+ pos = len - 1;
+@@ -994,7 +915,7 @@
{
/* if state is on at the very first of string, do this too. */
if (j >= 0)
-- k = fribidi_get_type (str[j]);
-+ k = _pango_fribidi_get_type (str[j]);
+- k = fribidi_get_type (fribidienv, str[j]);
++ k = _pango_fribidi_get_type (str[j]);
else
k = FRIBIDI_TYPE_ON;
if (!state && FRIBIDI_IS_SEPARATOR (k))
-@@ -1081,228 +1047,36 @@
+@@ -1005,7 +926,7 @@
+ else if (state && !FRIBIDI_IS_EXPLICIT_OR_SEPARATOR_OR_BN_OR_WS (k))
+ {
+ state = 0;
+- p = new_type_link (fribidienv);
++ p = new_type_link ();
+ p->prev = p->next = (TypeLink *) NULL;
+ p->pos = j + 1;
+ p->len = pos - j;
+@@ -1015,11 +936,11 @@
+ q = p;
+ }
+ }
+- override_list (fribidienv, type_rl_list, list);
++ override_list (type_rl_list, list);
+ }
+
+ #ifdef DEBUG
+- if (fribidi_debug_status (fribidienv))
++ if (fribidi_debug)
+ {
+ print_types_re (type_rl_list);
+ print_resolved_levels (type_rl_list);
+@@ -1040,8 +961,7 @@
+ * fribidi_analyse_string(), after the list is not needed anymore.
+ *----------------------------------------------------------------------*/
+ static void
+-free_rl_list (FriBidiEnv *fribidienv,
+- TypeLink *type_rl_list)
++free_rl_list (TypeLink *type_rl_list)
+ {
+
+ TypeLink *pp;
+@@ -1054,7 +974,6 @@
+ return;
+ }
+
+-#ifdef USE_SIMPLE_MALLOC
+ pp = type_rl_list;
+ while (pp)
+ {
+@@ -1062,366 +981,55 @@
+
+ p = pp;
+ pp = pp->next;
+- free_type_link (fribidienv, p);
++ free_type_link (p);
+ };
+-#else
+- for (pp = type_rl_list->next; pp->next; pp = pp->next)
+- /* Nothing */ ;
+- pp->next = free_type_links;
+- free_type_links = type_rl_list;
+- type_rl_list = NULL;
+-#endif
+
+ DBG ("Leaving free_rl_list()\n");
return;
}
--static gboolean mirroring = TRUE;
--
--gboolean
--fribidi_mirroring_status (void)
--{
-- return mirroring;
--}
-
--void
--fribidi_set_mirroring (gboolean mirror)
--{
-- mirroring = mirror;
--}
+-/*======================================================================
+- * Here starts the exposed front end functions.
+- *----------------------------------------------------------------------*/
-
- /*======================================================================
- * Here starts the exposed front end functions.
- *----------------------------------------------------------------------*/
-
- /*======================================================================
-- * fribidi_remove_explicits() removes explicit marks, and returns the
-- * new length.
+-/*======================================================================
+- * fribidi_remove_bidi_marks() removes bidirectional marks, and returns
+- * the new length, updates each of other inputs if not NULL.
- *----------------------------------------------------------------------*/
--gint
--fribidi_remove_explicits (FriBidiChar *str, gint length)
+-FRIBIDI_API FriBidiStrIndex
+-fribidi_remove_bidi_marks (FriBidiEnv *fribidienv,
+- FriBidiChar *str,
+- FriBidiStrIndex length,
+- FriBidiStrIndex *position_to_this_list,
+- FriBidiStrIndex *position_from_this_list,
+- FriBidiLevel *embedding_level_list)
-{
-- gint i, j;
+- FriBidiStrIndex i, j;
+- fribidi_boolean private_from_this = FRIBIDI_FALSE;
+-
+- DBG ("Entering fribidi_remove_bidi_marks()\n");
+-
+- /* If to_this is to not null, we must have from_this as well. If it is
+- not given by the caller, we have to make a private instance of it. */
+- if (position_to_this_list && !position_from_this_list)
+- {
+- private_from_this = FRIBIDI_TRUE;
+- position_from_this_list =
+- (FriBidiStrIndex *) fribidi_malloc (fribidienv,
+- sizeof (FriBidiStrIndex) *
+- length);
+- }
-
-- DBG ("Entering fribidi_remove_explicits()\n");
- j = 0;
- for (i = 0; i < length; i++)
-- if (!FRIBIDI_IS_EXPLICIT (fribidi_get_type (str[i]))
+- if (!FRIBIDI_IS_EXPLICIT (fribidi_get_type (fribidienv, str[i]))
- && str[i] != UNI_LRM && str[i] != UNI_RLM)
-- str[j++] = str[i];
+- {
+- str[j] = str[i];
+- if (embedding_level_list)
+- embedding_level_list[j] = embedding_level_list[i];
+- if (position_from_this_list)
+- position_from_this_list[j] = position_from_this_list[i];
+- j++;
+- }
+-
+- /* Convert the from_this list to to_this */
+- if (position_to_this_list)
+- {
+- DBG (" Converting from_this list to to_this\n");
+- for (i = 0; i < length; i++)
+- position_to_this_list[i] = -1;
+- for (i = 0; i < length; i++)
+- position_to_this_list[position_from_this_list[i]] = i;
+- DBG (" Converting from_this list to to_this, Done\n");
+- }
-
-- DBG ("Leaving fribidi_remove_explicits()\n");
+- if (private_from_this)
+- fribidi_free (fribidienv, position_from_this_list);
+-
+- DBG ("Leaving fribidi_remove_bidi_marks()\n");
- return j;
-}
-
+-
-/*======================================================================
- * fribidi_log2vis() calls the function_analyse_string() and then
- * does reordering and fills in the output strings.
- *----------------------------------------------------------------------*/
--gboolean
--fribidi_log2vis ( /* input */
-- FriBidiChar *str, gint len, FriBidiCharType *pbase_dir,
-- /* output */
-- FriBidiChar *visual_str,
-- FriBidiStrIndex *position_L_to_V_list,
-- FriBidiStrIndex *position_V_to_L_list,
-- guint8 *embedding_level_list)
+-FRIBIDI_API fribidi_boolean
+-fribidi_log2vis (FriBidiEnv *fribidienv,
+- /* input */
+- const FriBidiChar *str,
+- FriBidiStrIndex len,
+- FriBidiCharType *pbase_dir,
+- /* output */
+- FriBidiChar *visual_str,
+- FriBidiStrIndex *position_L_to_V_list,
+- FriBidiStrIndex *position_V_to_L_list,
+- FriBidiLevel *embedding_level_list)
-{
-- TypeLink *type_rl_list, *pp = NULL;
-- gint max_level;
-- gboolean private_V_to_L = FALSE;
+- TypeLink *type_rl_list, *pp = (TypeLink *) NULL;
+- FriBidiLevel max_level;
+- fribidi_boolean private_V_to_L = FRIBIDI_FALSE;
-
- DBG ("Entering fribidi_log2vis()\n");
-
- if (len == 0)
- {
- DBG ("Leaving fribidi_log2vis()\n");
-- return TRUE;
+- return FRIBIDI_TRUE;
- }
-
-- /* If l2v is to be calculated we must have l2v as well. If it is not
+- /* If l2v is to be calculated we must have v2l as well. If it is not
- given by the caller, we have to make a private instance of it. */
- if (position_L_to_V_list && !position_V_to_L_list)
- {
-- private_V_to_L = TRUE;
-- position_V_to_L_list = g_new (FriBidiStrIndex, len + 1);
+- private_V_to_L = FRIBIDI_TRUE;
+- position_V_to_L_list =
+- (FriBidiStrIndex *) fribidi_malloc (fribidienv,
+- sizeof (FriBidiStrIndex) * len);
- }
-
- if (len > FRIBIDI_MAX_STRING_LENGTH && position_V_to_L_list)
- {
-#ifdef DEBUG
-- fprintf (stderr, "%s: cannot handle strings > %d characters\n",
-- PACKAGE, FRIBIDI_MAX_STRING_LENGTH);
+- fprintf (stderr, "%s: cannot handle strings > %ld characters\n",
+- FRIBIDI_PACKAGE, (long) FRIBIDI_MAX_STRING_LENGTH);
-#endif
-- return FALSE;
+- return FRIBIDI_FALSE;
- }
-- fribidi_analyse_string (str, len, pbase_dir,
+- fribidi_analyse_string (fribidienv, str, len, pbase_dir,
- /* output */
- &type_rl_list, &max_level);
-
- /* 7. Reordering resolved levels */
- DBG ("Reordering resolved levels\n");
- {
-- gint level_idx;
-- gint i;
--
-- /* TBD: L3 */
+- FriBidiLevel level_idx;
+- FriBidiStrIndex i;
-
- /* Set up the ordering array to sorted order */
- if (position_V_to_L_list)
@@ -193,7 +722,7 @@
- if (visual_str)
- {
- DBG (" Initialize visual_str\n");
-- for (i = 0; i <= len; i++)
+- for (i = 0; i < len; i++)
- visual_str[i] = str[i];
- visual_str[len] = 0;
- DBG (" Initialize visual_str, Done\n");
@@ -205,7 +734,8 @@
- DBG (" Fill the embedding levels array\n");
- for (pp = type_rl_list->next; pp->next; pp = pp->next)
- {
-- gint i, pos, len, level;
+- FriBidiStrIndex i, pos, len;
+- FriBidiLevel level;
-
- pos = pp->pos;
- len = pp->len;
@@ -219,7 +749,7 @@
- /* Reorder both the outstring and the order array */
- if (visual_str || position_V_to_L_list)
- {
-- if (mirroring && visual_str)
+- if (fribidi_mirroring_status (fribidienv) && visual_str)
- {
- /* L4. Mirror all characters that are in odd levels and have mirrors. */
- DBG (" Mirroring\n");
@@ -227,12 +757,12 @@
- {
- if (pp->level & 1)
- {
-- gint i;
+- FriBidiStrIndex i;
- for (i = RL_POS (pp); i < RL_POS (pp) + RL_LEN (pp); i++)
- {
- FriBidiChar mirrored_ch;
- if (fribidi_get_mirror_char
-- (visual_str[i], &mirrored_ch))
+- (fribidienv, visual_str[i], &mirrored_ch))
- visual_str[i] = mirrored_ch;
- }
- }
@@ -240,6 +770,55 @@
- DBG (" Mirroring, Done\n");
- }
-
+- if (fribidi_reorder_nsm_status (fribidienv))
+- {
+- /* L3. Reorder NSMs. */
+- DBG (" Reordering NSM sequences\n");
+- /* We apply this rule before L2, so go backward in odd levels. */
+- for (pp = type_rl_list->next; pp->next; pp = pp->next)
+- {
+- if (pp->level & 1)
+- {
+- FriBidiStrIndex i, seq_end = 0;
+- fribidi_boolean is_nsm_seq;
+-
+- is_nsm_seq = 0;
+- for (i = RL_POS (pp) + RL_LEN (pp) - 1; i >= RL_POS (pp);
+- i--)
+- {
+- FriBidiCharType this_type;
+-
+- this_type = fribidi_get_type (NULL, str[i]);
+- if (is_nsm_seq && this_type != FRIBIDI_TYPE_NSM)
+- {
+- if (visual_str)
+- {
+- bidi_string_reverse (visual_str + i,
+- seq_end - i + 1);
+- }
+- if (position_V_to_L_list)
+- {
+- index_array_reverse (position_V_to_L_list + i,
+- seq_end - i + 1);
+- }
+- is_nsm_seq = 0;
+- }
+- else if (!is_nsm_seq && this_type == FRIBIDI_TYPE_NSM)
+- {
+- seq_end = i;
+- is_nsm_seq = 1;
+- }
+- }
+- if (is_nsm_seq)
+- {
+- DBG
+- ("Warning: NSMs at the beggining of run level.\n");
+- }
+- }
+- }
+- DBG (" Reordering NSM sequences, Done\n");
+- }
+-
- /* L2. Reorder. */
- DBG (" Reordering\n");
- for (level_idx = max_level; level_idx > 0; level_idx--)
@@ -249,8 +828,8 @@
- if (RL_LEVEL (pp) >= level_idx)
- {
- /* Find all stretches that are >= level_idx */
-- gint len = RL_LEN (pp);
-- gint pos = RL_POS (pp);
+- FriBidiStrIndex len = RL_LEN (pp),
+- pos = RL_POS (pp);
- TypeLink *pp1 = pp->next;
- while (pp1->next && RL_LEVEL (pp1) >= level_idx)
- {
@@ -272,7 +851,7 @@
- if (position_L_to_V_list)
- {
- DBG (" Converting v2l list to l2v\n");
-- for (i = 0; i <= len; i++)
+- for (i = 0; i < len; i++)
- position_L_to_V_list[position_V_to_L_list[i]] = i;
- DBG (" Converting v2l list to l2v, Done\n");
- }
@@ -280,460 +859,837 @@
- DBG ("Reordering resolved levels, Done\n");
-
- if (private_V_to_L)
-- g_free (position_V_to_L_list);
+- fribidi_free (fribidienv, position_V_to_L_list);
-
-- free_rl_list (type_rl_list);
+- free_rl_list (fribidienv, type_rl_list);
-
- DBG ("Leaving fribidi_log2vis()\n");
-- return TRUE;
+- return FRIBIDI_TRUE;
-
-}
-
--/*======================================================================
+ /*======================================================================
* fribidi_log2vis_get_embedding_levels() is used in order to just get
* the embedding levels.
*----------------------------------------------------------------------*/
- gboolean
--fribidi_log2vis_get_embedding_levels ( /* input */
-- FriBidiChar *str,
-- gint len, FriBidiCharType *pbase_dir,
-+pango_log2vis_get_embedding_levels ( /* input */
-+ gunichar *str,
-+ int len, PangoDirection *pbase_dir,
- /* output */
- guint8 *embedding_level_list)
+-FRIBIDI_API fribidi_boolean
+-fribidi_log2vis_get_embedding_levels (FriBidiEnv *fribidienv,
+- /* input */
+- const FriBidiChar *str,
+- FriBidiStrIndex len,
+- FriBidiCharType *pbase_dir,
++gboolean
++pango_log2vis_get_embedding_levels (/* input */
++ gunichar *str,
++ gint len,
++ PangoDirection *pbase_dir,
+ /* output */
+- FriBidiLevel *embedding_level_list)
++ guint8 *embedding_level_list)
{
TypeLink *type_rl_list, *pp;
- gint max_level;
+ FriBidiLevel max_level;
+ FriBidiCharType fribidi_base_dir;
DBG ("Entering fribidi_log2vis_get_embedding_levels()\n");
-+ fribidi_base_dir = (*pbase_dir == PANGO_DIRECTION_LTR) ? FRIBIDI_TYPE_L : FRIBIDI_TYPE_R;
++ fribidi_base_dir = (*pbase_dir == PANGO_DIRECTION_LTR) ? FRIBIDI_TYPE_LTR : FRIBIDI_TYPE_RTL;
+
if (len == 0)
{
DBG ("Leaving fribidi_log2vis_get_embedding_levels()\n");
- return TRUE;
+- return FRIBIDI_TRUE;
++ return TRUE;
}
-- fribidi_analyse_string (str, len, pbase_dir,
+- fribidi_analyse_string (fribidienv, str, len, pbase_dir,
+ fribidi_analyse_string (str, len, &fribidi_base_dir,
/* output */
&type_rl_list, &max_level);
-@@ -1317,31 +1091,9 @@
+ for (pp = type_rl_list->next; pp->next; pp = pp->next)
+ {
+- FriBidiStrIndex i, pos = RL_POS (pp),
++ gint i, pos = RL_POS (pp),
+ len = RL_LEN (pp);
+- FriBidiLevel level = RL_LEVEL (pp);
++ gint level = RL_LEVEL (pp);
+ for (i = 0; i < len; i++)
+ embedding_level_list[pos + i] = level;
}
- free_rl_list (type_rl_list);
-+
-+ *pbase_dir = (fribidi_base_dir == FRIBIDI_TYPE_L) ? PANGO_DIRECTION_LTR : PANGO_DIRECTION_RTL;
+- free_rl_list (fribidienv, type_rl_list);
++ free_rl_list (type_rl_list);
DBG ("Leaving fribidi_log2vis_get_embedding_levels()\n");
- return TRUE;
+- return FRIBIDI_TRUE;
++ return TRUE;
}
+
-
--gchar *fribidi_version_info =
-- "Copyright (C) 2001 FriBidi Project.\n"
-- PACKAGE " comes with NO WARRANTY, to the extent permitted by law.\n"
-- "You may redistribute copies of " PACKAGE " under the terms of\n"
-- "the GNU General Public License.\n"
+-
+-const char *fribidi_version_info =
+- FRIBIDI_PACKAGE " " FRIBIDI_VERSION "\n" "interface version "
+- TOSTR (FRIBIDI_INTERFACE_VERSION)
+- "\n"
+- "Unicode version " FRIBIDI_UNICODE_VERSION "\n"
+- "\n"
+- "Copyright (C) 2002 FriBidi Project (http://fribidi.sf.net/).\n"
+- FRIBIDI_PACKAGE " comes with NO WARRANTY, to the extent permitted by law.\n"
+- "You may redistribute copies of " FRIBIDI_PACKAGE " under the terms of\n"
+- "the GNU Lesser General Public License.\n"
- "For more information about these matters, see the files named COPYING.\n"
--#if (defined(MEM_OPTIMIZED) || defined(DEBUG) || defined(USE_SIMPLE_MALLOC) \
-- || defined(FRIBIDI_USE_MINI_GLIB))
-- "This " PACKAGE " is compiled with following options:\n"
--#if (defined(MEM_OPTIMIZED))
-- "MEM_OPTIMIZED\n"
--#endif
--#if (defined(DEBUG))
-- "DEBUG\n"
+- "\n" "Configured with following options:\n"
+-#ifdef DEBUG
+- "--enable-debug\n"
-#endif
--#if (defined(USE_SIMPLE_MALLOC))
-- "USE_SIMPLE_MALLOC\n"
+-#ifdef MEM_OPTIMIZED
+- "--enable-memopt\n"
-#endif
--#if (defined(FRIBIDI_USE_MINI_GLIB))
-- "FRIBIDI_USE_MINI_GLIB\n"
+-#ifdef USE_SIMPLE_MALLOC
+- "--enable-malloc\n"
-#endif
+-#ifdef FRIBIDI_NO_CHARSETS
+- "--without-charsts\n"
-#endif
-- ;
---- /home/otaylor/cvs/fribidi/fribidi_get_type.c Thu Oct 18 14:42:36 2001
-+++ fribidi_get_type.c Mon Apr 16 18:42:34 2001
-@@ -23,7 +23,9 @@
+-;
+Only in /usr/src/fribidi/: fribidi_char_sets.c
+Only in /usr/src/fribidi/: fribidi_char_sets_cap_rtl.c
+Only in /usr/src/fribidi/: fribidi_char_sets_cap_rtl.h
+Only in /usr/src/fribidi/: fribidi_char_sets_cp1255.c
+Only in /usr/src/fribidi/: fribidi_char_sets_cp1255.h
+Only in /usr/src/fribidi/: fribidi_char_sets_cp1256.c
+Only in /usr/src/fribidi/: fribidi_char_sets_cp1256.h
+Only in /usr/src/fribidi/: fribidi_char_sets.h
+Only in /usr/src/fribidi/: fribidi_char_sets.i
+Only in /usr/src/fribidi/: fribidi_char_sets_isiri_3342.c
+Only in /usr/src/fribidi/: fribidi_char_sets_isiri_3342.h
+Only in /usr/src/fribidi/: fribidi_char_sets_iso8859_6.c
+Only in /usr/src/fribidi/: fribidi_char_sets_iso8859_6.h
+Only in /usr/src/fribidi/: fribidi_char_sets_iso8859_8.c
+Only in /usr/src/fribidi/: fribidi_char_sets_iso8859_8.h
+Only in /usr/src/fribidi/: fribidi_char_sets_utf8.c
+Only in /usr/src/fribidi/: fribidi_char_sets_utf8.h
+diff -bu /usr/src/fribidi/fribidi_char_type.c mini-fribidi/fribidi_char_type.c
+--- /usr/src/fribidi/fribidi_char_type.c 2003-07-17 17:18:01.000000000 -0400
++++ mini-fribidi/fribidi_char_type.c 2003-07-14 18:06:19.000000000 -0400
+@@ -19,85 +19,18 @@
+ * For licensing issues, contact <fwpg@sharif.edu>.
+ */
- #include <stdio.h>
- #include <stdlib.h>
+-#ifdef HAVE_CONFIG_H
+-#include <config.h>
+-#endif
-#include "fribidi.h"
+#include <glib.h>
-+#include "pango/pango-utils.h"
+#include "fribidi_types.h"
- #include "fribidi_tables.i"
- #ifdef MEM_OPTIMIZED
-@@ -34,7 +36,7 @@
- * fribidi_get_type() returns the bidi type of a character.
+ /*======================================================================
+- * fribidi_get_type() returns the bidi type of a character.
++ * _pango_fribidi_get_type() returns the bidi type of a character.
*----------------------------------------------------------------------*/
- FriBidiCharType
--fribidi_get_type (FriBidiChar uch)
-+_pango_fribidi_get_type(FriBidiChar uch)
- {
- int i = uch % 256, j = uch / 256;
- FriBidiPropCharType *block = FriBidiPropertyBlocks[j];
-@@ -81,10 +83,10 @@
- }
+-FRIBIDI_API FriBidiCharType fribidi_get_type_internal (FriBidiChar uch);
++FriBidiCharType _pango_fribidi_get_type_internal (FriBidiChar uch);
- gboolean
--fribidi_get_mirror_char ( /* Input */
-- FriBidiChar ch,
-- /* Output */
-- FriBidiChar *mirrored_ch)
-+pango_get_mirror_char ( /* Input */
-+ FriBidiChar ch,
-+ /* Output */
-+ FriBidiChar * mirrored_ch)
+-FRIBIDI_API FriBidiCharType
+-fribidi_get_type (FriBidiEnv *env,
+- FriBidiChar uch)
++FriBidiCharType
++_pango_fribidi_get_type (FriBidiChar uch)
{
- int pos, step;
- gboolean found;
---- /home/otaylor/cvs/fribidi/fribidi_tables.i Thu Oct 18 14:42:36 2001
-+++ fribidi_tables.i Sun Sep 2 13:56:50 2001
-@@ -4,8 +4,6 @@
- *----------------------------------------------------------------------*/
- /* *INDENT-OFF* */
+- return fribidi_get_type_internal (uch);
++ return _pango_fribidi_get_type_internal (uch);
+ }
--#include "fribidi.h"
+-FRIBIDI_API void
+-fribidi_get_types (FriBidiEnv *env,
+- /* input */
+- const FriBidiChar *str,
+- FriBidiStrIndex len,
+- /* output */
+- FriBidiCharType *type)
+-{
+- FriBidiStrIndex i;
-
- #define WS FRIBIDI_PROP_TYPE_WS
- #define BS FRIBIDI_PROP_TYPE_BS
- #define EO FRIBIDI_PROP_TYPE_EO
-@@ -29,7 +27,7 @@
- #define EN FRIBIDI_PROP_TYPE_EN
-
-
--FriBidiPropCharType FriBidiPropertyBlock0000[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0000[256] = {
- BN ,BN ,BN ,BN ,BN ,BN ,BN ,BN ,BN ,SS ,BS ,SS ,WS ,BS ,BN ,BN ,
- BN ,BN ,BN ,BN ,BN ,BN ,BN ,BN ,BN ,BN ,BN ,BN ,BS ,BS ,BS ,SS ,
- WS ,ON ,ON ,ET ,ET ,ET ,ON ,ON ,ON ,ON ,ON ,ET ,CS ,ET ,CS ,ES ,
-@@ -48,7 +46,7 @@
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,ON ,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
-
--FriBidiPropCharType FriBidiPropertyBlock0100[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0100[256] = {
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -67,7 +65,7 @@
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
-
--FriBidiPropCharType FriBidiPropertyBlock0200[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0200[256] = {
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -86,7 +84,7 @@
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
-
--FriBidiPropCharType FriBidiPropertyBlock0300[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0300[256] = {
- NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
- NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
- NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
-@@ -105,7 +103,7 @@
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
-
--FriBidiPropCharType FriBidiPropertyBlock0400[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0400[256] = {
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -124,7 +122,7 @@
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
-
--FriBidiPropCharType FriBidiPropertyBlock0500[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0500[256] = {
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -143,7 +141,7 @@
- RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,
- };
+- for (i = 0; i < len; i++)
+- type[i] = fribidi_get_type (env, str[i]);
+-}
+-
+-#ifdef MEM_OPTIMIZED
+-
+-#if HAS_FRIBIDI_TAB_CHAR_TYPE_9_I
+-#include "fribidi_tab_char_type_9.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_8_I
+-#include "fribidi_tab_char_type_8.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_7_I
+-#include "fribidi_tab_char_type_7.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_6_I
+-#include "fribidi_tab_char_type_6.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_5_I
+-#include "fribidi_tab_char_type_5.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_4_I
+-#include "fribidi_tab_char_type_4.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_3_I
+-#include "fribidi_tab_char_type_3.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_2_I
+ #include "fribidi_tab_char_type_2.i"
+-#else
+-#error You have no fribidi_tab_char_type_*.i file, please first make one by \
+- make fribidi_tab_char_type_n.i which n is the compress level, a digit \
+- between 2 and 9, or simply run make fribidi_tab_char_type_small, \
+- retry to make.
+-#endif
+-
+-#else
+-
+-#if HAS_FRIBIDI_TAB_CHAR_TYPE_2_I
+-#include "fribidi_tab_char_type_2.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_3_I
+-#include "fribidi_tab_char_type_3.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_4_I
+-#include "fribidi_tab_char_type_4.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_5_I
+-#include "fribidi_tab_char_type_5.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_6_I
+-#include "fribidi_tab_char_type_6.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_7_I
+-#include "fribidi_tab_char_type_7.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_8_I
+-#include "fribidi_tab_char_type_8.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_9_I
+-#include "fribidi_tab_char_type_9.i"
+-#else
+-#error You have no fribidi_tab_char_type_*.i file, please first make one by \
+- make fribidi_tab_char_type_n.i which n is the compress level, a digit \
+- between 2 and 9, or simply run make fribidi_tab_char_type_large, \
+- retry to make.
+-#endif
+-
+-#endif
+Only in /usr/src/fribidi/: fribidi-config
+Only in /usr/src/fribidi/: fribidi_config.h
+Only in /usr/src/fribidi/: fribidi_config.h.in
+Only in /usr/src/fribidi/: fribidi-config.in
+Only in /usr/src/fribidi/: fribidi_create_char_types
+Only in /usr/src/fribidi/: fribidi_create_char_types.c
+Only in /usr/src/fribidi/: fribidi_create_char_types.o
+Only in /usr/src/fribidi/: fribidi_create_mirroring.c
+Only in /usr/src/fribidi/: fribidi_env.c
+Only in /usr/src/fribidi/: fribidi_env.h
+Only in mini-fribidi/: fribidi_get_type.c
+Only in /usr/src/fribidi/: fribidi.h
+Only in /usr/src/fribidi/: fribidi_main.c
+Only in /usr/src/fribidi/: fribidi_mem.c
+Only in /usr/src/fribidi/: fribidi_mem.h
+Only in /usr/src/fribidi/: fribidi_mirroring.c
+Only in mini-fribidi/: fribidi.patch
+Only in /usr/src/fribidi/: fribidi.pc
+Only in /usr/src/fribidi/: fribidi.pc.in
+Only in /usr/src/fribidi/: fribidi.spec
+Only in /usr/src/fribidi/: fribidi.spec.in
+diff -bu /usr/src/fribidi/fribidi_tab_char_type_2.i mini-fribidi/fribidi_tab_char_type_2.i
+--- /usr/src/fribidi/fribidi_tab_char_type_2.i 2003-07-17 17:18:01.000000000 -0400
++++ mini-fribidi/fribidi_tab_char_type_2.i 2003-07-17 17:49:01.000000000 -0400
+@@ -1,12 +1,13 @@
+ /*
+- This file was automatically created from UnicodeData.txt version 3.2.0
++ This file was automatically created from UnicodeData.txt version 4.0.0
+ by fribidi_create_char_types
+ */
--FriBidiPropCharType FriBidiPropertyBlock0600[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0600[256] = {
- CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,
- CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,AL ,AL ,AL ,AL ,AL ,
- AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
-@@ -162,7 +160,7 @@
- EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,AL ,AL ,AL ,AL ,AL ,AL ,
- };
+ #ifndef FRIBIDI_TAB_CHAR_TYPE_2_I
+ #define FRIBIDI_TAB_CHAR_TYPE_2_I
--FriBidiPropCharType FriBidiPropertyBlock0700[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0700[256] = {
- AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,BN ,
- AL ,NSM,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
- AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
-@@ -181,7 +179,7 @@
- NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
- };
+-#include "fribidi.h"
++#include <glib.h>
++#include "fribidi_types.h"
--FriBidiPropCharType FriBidiPropertyBlock0900[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0900[256] = {
- NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -200,7 +198,7 @@
- LTR,LTR,ET ,ET ,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
+ #define LTR FRIBIDI_PROP_TYPE_LTR
+ #define RTL FRIBIDI_PROP_TYPE_RTL
+@@ -28,9 +29,6 @@
+ #define SS FRIBIDI_PROP_TYPE_SS
+ #define WS FRIBIDI_PROP_TYPE_WS
--FriBidiPropCharType FriBidiPropertyBlock0a00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0a00[256] = {
- NSM,NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -219,7 +217,7 @@
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
+-#define PACKTAB_UINT8 fribidi_uint8
+-#define PACKTAB_UINT16 fribidi_uint16
+-#define PACKTAB_UINT32 fribidi_uint32
+ /*
+ Automatically generated by packtab.c version 2
--FriBidiPropCharType FriBidiPropertyBlock0b00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0b00[256] = {
- NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -238,7 +236,7 @@
+@@ -979,7 +977,7 @@
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
};
--FriBidiPropCharType FriBidiPropertyBlock0c00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0c00[256] = {
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -257,7 +255,7 @@
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
+-static const PACKTAB_UINT16 FriBidiPropertyBlockLevel0[4352*1] = {
++static const guint16 FriBidiPropertyBlockLevel0[4352*1] = {
--FriBidiPropCharType FriBidiPropertyBlock0d00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0d00[256] = {
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -276,7 +274,7 @@
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
+ #define FriBidiPropertyBlockLevel0_0000 0x0
--FriBidiPropCharType FriBidiPropertyBlock0e00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0e00[256] = {
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -295,7 +293,7 @@
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
+@@ -5363,13 +5361,13 @@
+ #undef RTL
+ #undef LTR
+ /*======================================================================
+- * fribidi_get_type_internal() returns the bidi type of a character.
++ * _pango_fribidi_get_type_internal() returns the bidi type of a character.
+ *----------------------------------------------------------------------*/
+-FRIBIDI_API FriBidiCharType
+-fribidi_get_type_internal (FriBidiChar uch)
++FriBidiCharType
++_pango_fribidi_get_type_internal (FriBidiChar uch)
+ {
+ if (uch < 0x110000)
+- return fribidi_prop_to_type[(unsigned char)FRIBIDI_GET_TYPE (uch)];
++ return _pango_fribidi_prop_to_type[(unsigned char)FRIBIDI_GET_TYPE (uch)];
+ else
+ return FRIBIDI_TYPE_LTR;
+ /* Non-Unicode chars */
+Only in /usr/src/fribidi/: fribidi_tab_char_type_9.i
+Only in /usr/src/fribidi/: fribidi_tab_char_type_stamp
+Only in mini-fribidi/: fribidi_tables.i
+Only in /usr/src/fribidi/: fribidi_tab_mirroring.i
+diff -bu /usr/src/fribidi/fribidi_types.c mini-fribidi/fribidi_types.c
+--- /usr/src/fribidi/fribidi_types.c 2002-08-01 09:39:28.000000000 -0400
++++ mini-fribidi/fribidi_types.c 2003-07-14 18:06:21.000000000 -0400
+@@ -19,10 +19,8 @@
+ * For licensing issues, contact <fwpg@sharif.edu>.
+ */
--FriBidiPropCharType FriBidiPropertyBlock0f00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0f00[256] = {
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -314,7 +312,7 @@
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
+-#ifdef HAVE_CONFIG_H
+-#include <config.h>
+-#endif
+-#include "fribidi.h"
++#include <glib.h>
++#include "fribidi_types.h"
--FriBidiPropCharType FriBidiPropertyBlock1000[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock1000[256] = {
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,NSM,
-@@ -333,7 +331,7 @@
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
+ #ifdef DEBUG
--FriBidiPropCharType FriBidiPropertyBlock1600[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock1600[256] = {
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -352,7 +350,7 @@
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+@@ -125,4 +123,4 @@
+ #undef _FRIBIDI_ADD_TYPE
};
--FriBidiPropCharType FriBidiPropertyBlock1700[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock1700[256] = {
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -371,7 +369,7 @@
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
+-FriBidiCharType *fribidi_prop_to_type = fribidi_prop_to_type_array;
++FriBidiCharType *_pango_fribidi_prop_to_type = fribidi_prop_to_type_array;
+diff -bu /usr/src/fribidi/fribidi_types.h mini-fribidi/fribidi_types.h
+--- /usr/src/fribidi/fribidi_types.h 2002-08-07 08:02:52.000000000 -0400
++++ mini-fribidi/fribidi_types.h 2003-07-14 18:06:22.000000000 -0400
+@@ -23,37 +23,15 @@
+ #ifndef FRIBIDI_TYPES_H
+ #define FRIBIDI_TYPES_H
--FriBidiPropCharType FriBidiPropertyBlock1800[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock1800[256] = {
- ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,BN ,BN ,BN ,BN ,BN ,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -390,7 +388,7 @@
- NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
- };
+-#include "fribidi_config.h"
++#include <glib.h>
--FriBidiPropCharType FriBidiPropertyBlock1f00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock1f00[256] = {
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -409,7 +407,7 @@
- ON ,ON ,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,ON ,ON ,ON ,
- };
+-#ifdef __cplusplus
+-extern "C"
+-{
+-#endif
+-
+-#define FRIBIDI_INT8 char
+-#define FRIBIDI_INT16 short
+-#define FRIBIDI_INT32 long
+-#define FRIBIDI_INT int
+-
+- typedef int fribidi_boolean;
+-
+- typedef signed FRIBIDI_INT8 fribidi_int8;
+- typedef unsigned FRIBIDI_INT8 fribidi_uint8;
+- typedef signed FRIBIDI_INT16 fribidi_int16;
+- typedef unsigned FRIBIDI_INT16 fribidi_uint16;
+- typedef signed FRIBIDI_INT32 fribidi_int32;
+- typedef unsigned FRIBIDI_INT32 fribidi_uint32;
+- typedef signed FRIBIDI_INT fribidi_int;
+- typedef unsigned FRIBIDI_INT fribidi_uint;
+-
+-
+- typedef fribidi_int8 FriBidiLevel;
+- typedef fribidi_uint32 FriBidiChar;
+- typedef fribidi_int FriBidiStrIndex;
+- typedef fribidi_int32 FriBidiMaskType;
++ typedef gint8 FriBidiLevel;
++ typedef gunichar FriBidiChar;
++ typedef gint FriBidiStrIndex;
++ typedef gint32 FriBidiMaskType;
+ typedef FriBidiMaskType FriBidiCharType;
--FriBidiPropCharType FriBidiPropertyBlock2000[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock2000[256] = {
- WS ,WS ,WS ,WS ,WS ,WS ,WS ,WS ,WS ,WS ,WS ,BN ,BN ,BN ,LTR,RTL,
- ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
- ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,WS ,BS ,LRE,RLE,PDF,LRO,RLO,WS ,
-@@ -428,7 +426,7 @@
- NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
- };
+- char *fribidi_type_name (FriBidiCharType c);
++ gchar *fribidi_type_name (FriBidiCharType c);
--FriBidiPropCharType FriBidiPropertyBlock2100[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock2100[256] = {
- ON ,ON ,LTR,ON ,ON ,ON ,ON ,LTR,ON ,ON ,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,ON ,LTR,ON ,ON ,ON ,LTR,LTR,LTR,LTR,LTR,ON ,ON ,
- ON ,ON ,ON ,ON ,LTR,ON ,LTR,ON ,LTR,ON ,LTR,LTR,LTR,LTR,ET ,LTR,
-@@ -447,7 +445,7 @@
- ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
- };
+ /* The following type is used by fribidi_utils */
+ typedef struct
+@@ -291,10 +269,9 @@
+ (FRIBIDI_IS_OVERRIDE(p) ? FRIBIDI_LEVEL_TO_DIR(FRIBIDI_DIR_TO_LEVEL(p)) \
+ : FRIBIDI_TYPE_ON)
--FriBidiPropCharType FriBidiPropertyBlock2200[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock2200[256] = {
- ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
- ON ,ON ,ET ,ET ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
- ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
-@@ -466,7 +464,7 @@
- ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
- };
+-
+ /*
+ * Define character types that char_type_tables use.
+- * define them to be 0, 1, 2, ... and then in fribidi_get_type.c map them
++ * define them to be 0, 1, 2, ... and then in _pango_fribidi_get_type.c map them
+ * to FriBidiCharTypes.
+ */
+ typedef char FriBidiPropCharType;
+@@ -308,10 +285,12 @@
+ };
--FriBidiPropCharType FriBidiPropertyBlock2300[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock2300[256] = {
- ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
- ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
- ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
-@@ -485,7 +483,7 @@
- ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
- };
+ /* Map fribidi_prop_types to fribidi_types */
+- extern FriBidiCharType *fribidi_prop_to_type;
++ extern FriBidiCharType *_pango_fribidi_prop_to_type;
--FriBidiPropCharType FriBidiPropertyBlock2400[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock2400[256] = {
- ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
- ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
- ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
-@@ -504,7 +502,7 @@
- EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,
- };
+-#ifdef __cplusplus
+-}
+-#endif
--FriBidiPropCharType FriBidiPropertyBlock2500[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock2500[256] = {
- ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
- ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
- ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
-@@ -523,7 +521,7 @@
- ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
- };
+-#endif
++/*======================================================================
++ * _pango_fribidi_get_type() returns bidi type of a character.
++ *----------------------------------------------------------------------*/
++ FriBidiCharType _pango_fribidi_get_type (FriBidiChar uch);
++
++#endif /* #ifndef FRIBIDI_TYPES_H */
+Only in /usr/src/fribidi/: fribidi_unicode.h
+Only in /usr/src/fribidi/: fribidi_utils.c
+Only in /usr/src/fribidi/: fribidi_wcwidth.c
+Only in /usr/src/fribidi/: fribidi_wcwidth.i
+Only in /usr/src/fribidi/: getopt1.c
+Only in /usr/src/fribidi/: getopt.c
+Only in /usr/src/fribidi/: getopt.h
+Only in /usr/src/fribidi/: .indent.pro
+Only in /usr/src/fribidi/: INSTALL
+Only in /usr/src/fribidi/: install-sh
+Only in /usr/src/fribidi/: .libs
+Only in /usr/src/fribidi/: libtool
+Only in /usr/src/fribidi/: ltconfig
+Only in /usr/src/fribidi/: ltmain.sh
+Only in /usr/src/fribidi/: Makefile
+diff -bu /usr/src/fribidi/Makefile.am mini-fribidi/Makefile.am
+--- /usr/src/fribidi/Makefile.am 2002-08-10 00:17:54.000000000 -0400
++++ mini-fribidi/Makefile.am 2003-07-14 18:21:14.000000000 -0400
+@@ -1,208 +1,30 @@
++## Process this file with automake to produce Makefile.in
--FriBidiPropCharType FriBidiPropertyBlock3000[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock3000[256] = {
- WS ,ON ,ON ,ON ,ON ,LTR,LTR,LTR,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
- ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
- ON ,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,NSM,NSM,NSM,NSM,
-@@ -542,7 +540,7 @@
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,ON ,LTR,LTR,LTR,LTR,
- };
+-AUTOMAKE_OPTIONS = gnu
++INCLUDES = \
++ -DSYSCONFDIR=\"$(sysconfdir)\" \
++ -DLIBDIR=\"$(libdir)\" \
++ -DG_DISABLE_DEPRECATED \
++ $(PANGO_DEBUG_FLAGS) \
++ -I$(top_srcdir) \
++ $(GLIB_CFLAGS)
++
++LDADDS = @STRIP_BEGIN@ \
++ @x_ldflags@ \
++ @x_libs@ \
++ @GLIB_LIBS@ \
++ -lm \
++@STRIP_END@
--FriBidiPropCharType FriBidiPropertyBlocka400[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlocka400[256] = {
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -561,7 +559,7 @@
- ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
- };
+-noinst_PROGRAMS = fribidi_benchmark \
+- fribidi_create_char_types \
+- fribidi_create_mirroring
+-
+-libfribidi_charsets = \
+- fribidi_char_sets.c \
+- fribidi_char_sets_utf8.c
+-
+-libfribidi_charsets_extra = \
+- fribidi_char_sets_cap_rtl.c \
+- fribidi_char_sets_iso8859_6.c \
+- fribidi_char_sets_iso8859_8.c \
+- fribidi_char_sets_cp1255.c \
+- fribidi_char_sets_cp1256.c \
+- fribidi_char_sets_isiri_3342.c
+-
+-libfribidi_charsets_h = \
+- fribidi_char_sets.h \
+- fribidi_char_sets_utf8.h
+-
+-libfribidi_charsets_extra_h = \
+- fribidi_char_sets_cap_rtl.h \
+- fribidi_char_sets_cp1255.h \
+- fribidi_char_sets_cp1256.h \
+- fribidi_char_sets_isiri_3342.h \
+- fribidi_char_sets_iso8859_6.h \
+- fribidi_char_sets_iso8859_8.h
++noinst_LTLIBRARIES = libmini-fribidi.la
--FriBidiPropCharType FriBidiPropertyBlockfb00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlockfb00[256] = {
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,RTL,NSM,RTL,
- RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,ET ,RTL,RTL,RTL,RTL,RTL,RTL,
-@@ -580,7 +578,7 @@
- AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
- };
+-libfribidi_extra_h = \
+- fribidi_mem.h
+-
+-lib_LTLIBRARIES = libfribidi.la
+-
+-libfribidi_la_SOURCES = \
++libmini_fribidi_la_SOURCES = \
+ fribidi.c \
+- fribidi_types.c \
+- fribidi_env.c \
+- fribidi_mem.c \
+- fribidi_mirroring.c \
+ fribidi_char_type.c \
+- fribidi_wcwidth.c \
+- fribidi_utils.c \
+- $(libfribidi_charsets) \
+- $(libfribidi_charsets_extra)
+-
+-libfribidi_la_LIBADD =
+-
+-libfribidiincdir = $(includedir)/fribidi
+-
+-libfribidiinc_HEADERS = \
+- fribidi.h \
+- fribidi_types.h \
+- fribidi_env.h \
+- fribidi_unicode.h \
+- $(libfribidi_charsets_h) \
+- $(libfribidi_charsets_extra_h) \
+- fribidi_config.h
+-
+-GETOPT_SRC = \
+- getopt.c \
+- getopt1.c
+-
+-GETOPT_HDR = \
+- getopt.h
+-
+-TEST_FILES = \
+- tests/test_CapRTL_explicit.input \
+- tests/test_CapRTL_explicit.reference \
+- tests/test_CapRTL_implicit.input \
+- tests/test_CapRTL_implicit.reference \
+- tests/test_ISO8859-8_hebrew.input \
+- tests/test_ISO8859-8_hebrew.reference \
+- tests/test_UTF-8_persian.input \
+- tests/test_UTF-8_persian.reference
+-
+-TABLE_FILES = \
+- fribidi_types.i \
+- fribidi_char_sets.i \
+- fribidi_tab_mirroring.i \
+- fribidi_tab_char_type_2.i \
+- fribidi_tab_char_type_9.i
+-
+-UNIDATA_FILES = \
+- unidata/README \
+- unidata/UnicodeData.txt \
+- unidata/BidiMirroring.txt
+-
+-OTHER_FILES = \
+- fribidi_wcwidth.i
+-
+-EXTRA_HEADERS = \
+- packtab.h \
+- $(libfribidi_extra_h) \
+- $(GETOPT_HDR)
++ fribidi_types.c \
++ fribidi_types.h
--FriBidiPropCharType FriBidiPropertyBlockfc00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlockfc00[256] = {
- AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
- AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
- AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
-@@ -599,7 +597,7 @@
- AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
- };
+ EXTRA_DIST = \
+- bootstrap \
+- run.tests \
+- ANNOUNCE \
+- acinclude.m4 \
+- fribidi_config.h.in \
+- fribidi.pc.in \
+- fribidi.spec.in \
+- fribidi.spec \
+- $(TEST_FILES) \
+- $(TABLE_FILES) \
+- $(UNIDATA_FILES) \
+- $(OTHER_FILES) \
+- $(EXTRA_HEADERS)
+-
+-fribidi_benchmark_SOURCES = fribidi_benchmark.c $(GETOPT_SRC)
+-fribidi_benchmark_LDADD = libfribidi.la
+-
+-fribidi_create_char_types_SOURCES = fribidi_create_char_types.c packtab.c
+-
+-fribidi_create_mirroring_SOURCES = fribidi_create_mirroring.c
+-
+-bin_PROGRAMS = fribidi
+-fribidi_SOURCES = fribidi_main.c $(GETOPT_SRC)
+-fribidi_LDADD = libfribidi.la
+-
+-
+-fribidi_tab_mirroring.i: $(fribidi_create_mirroring_SOURCES) fribidi_types.h \
+- unidata/BidiMirroring.txt
+- $(MAKE) fribidi_create_mirroring
+- if test -d unidata; then UNIDATA=unidata; \
+- else UNIDATA="$(srcdir)/unidata"; fi && \
+- ./fribidi_create_mirroring "$$UNIDATA" || \
+- ($(RM) "$@"; false)
+-
+-
+-$(srcdir)/fribidi_mirroring.c: fribidi_tab_mirroring.i
+- touch "$@" || $(MAKE) clean
+-
+-fribidi_tab_mirroring: fribidi_tab_mirroring.i
+-
+-
+-fribidi_tab_char_type_%.i: $(fribidi_create_char_types_SOURCES) \
+- unidata/UnicodeData.txt
+- $(MAKE) fribidi_create_char_types
+- if test -d unidata; then UNIDATA=unidata; \
+- else UNIDATA="$(srcdir)/unidata"; fi && \
+- ./fribidi_create_char_types "`echo "$@" \
+- | $(SED) 's/[^0-9]*//g'`" "$$UNIDATA" || \
+- ($(RM) "$@"; false)
+- $(RM) fribidi_tab_char_type_stamp
+- $(MAKE) fribidi_tab_char_type_stamp
+-
+-fribidi_tab_char_type_stamp:
+- touch "$(srcdir)/fribidi_char_type.c" || $(MAKE) clean
+- touch "$@"
+-
+-fribidi_tab_char_type_small:
+- $(MAKE) fribidi_tab_char_type_9.i
+-
+-fribidi_tab_char_type_large:
+- $(MAKE) fribidi_tab_char_type_2.i
+-
+-fribidi_tab tab: fribidi_tab_char_type_small \
+- fribidi_tab_char_type_large \
+- fribidi_tab_mirroring
+-
+-
+-config.h: fribidi_tab_char_type_stamp
+- ./config.status --recheck
+- ./config.status
+- touch "$@"
+-
+-$(srcdir)/fribidi_char_type.c: config.h
+-
+-tests/test_%.reference: tests/test_%.input $(libfribidi_la_SOURCES)
+- $(MAKE) fribidi
+- (test -d tests || mkdir tests) && \
+- testcase="$@" && \
+- charset="`echo "$@" | $(SED) 's/_[^_]*$$//;s/.*_//'`" && \
+- ./fribidi --test --charset "$$charset" "$<" > "$@" || \
+- ($(RM) "$@"; false)
+-
+-test.reference:
+- for testcase in "$(srcdir)"/tests/test_*.input; do \
+- test="`echo "$$testcase" \
+- | $(SED) 's/\.input$$/.reference/i; s|.*/||;'`" && \
+- $(MAKE) "tests/$$test" || \
+- exit 1; \
+- done
+-
+-test: fribidi
+- "$(srcdir)/run.tests"
+-
+-.PHONY: test test.reference \
+- fribidi_tab_char_type_small fribidi_tab_char_type_large \
+- fribidi_tab_mirroring fribidi_tab tab
+-
+-TESTS = run.tests
+-
+-bin_SCRIPTS = fribidi-config
+-
+-pkgconfigdir = $(libdir)/pkgconfig
+-pkgconfig_DATA = fribidi.pc
+-
+-CLEANFILES =
+-
+-DISTCLEANFILES = fribidi_tab_char_type_stamp
++ README \
++ fribidi_tab_char_type_2.i \
++ fribidi_types.i
--FriBidiPropCharType FriBidiPropertyBlockfd00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlockfd00[256] = {
- AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
- AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
- AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
-@@ -618,7 +616,7 @@
- AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
- };
+-MAINTAINERCLEANFILES = Makefile.in configure aclocal.m4 config.h.in
+Only in /usr/src/fribidi/: Makefile.in
+Only in /usr/src/fribidi/: missing
+Only in /usr/src/fribidi/: mkinstalldirs
+Only in /usr/src/fribidi/: NEWS
+Only in /usr/src/fribidi/: packtab.c
+Only in /usr/src/fribidi/: packtab.h
+Only in /usr/src/fribidi/: packtab.o
+diff -bu /usr/src/fribidi/README mini-fribidi/README
+--- /usr/src/fribidi/README 2002-08-07 06:23:34.000000000 -0400
++++ mini-fribidi/README 2003-07-14 18:31:21.000000000 -0400
+@@ -1,149 +1,44 @@
++This directory holds a stripped down version of Dov Grobgeld's FriBidi
++library. The fribidi version that fribidi.patch is against was
++obtained with "cvs up -D '2003-07-14'" from the fribidi cvs repository.
++
++Like Pango, FriBidi is licensed under the terms of the GNU Lesser
++General Public License - see the file COPYING in the toplevel
++directory of the Pango distribution.
++
++12 November 2000, 18 October 2001
++Owen Taylor
++14 July 2003
++Noah Levitt
++
++
++From the README of Fribidi:
++
++
+ This is is FriBidi, a Free Implementation of the Unicode BiDi algorithm.
--FriBidiPropCharType FriBidiPropertyBlockfe00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlockfe00[256] = {
- NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
- NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
- NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
-@@ -637,7 +635,7 @@
- AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,BN ,
- };
+ Background
+ ==========
+-One of the missing links stopping the penetration of free software in Middle
+-East is the lack of support for the Arabic and Hebrew alphabets. In order to
+-have proper Arabic and Hebrew support, the BiDi algorithm should have been
+-implemented. It is our hope that this library will stimulate more free
+-software in the Middle Eastern countries.
++One of the missing links stopping the penetration of free software in
++Israel is the lack of support for Hebrew. In order to have proper
++Hebrew support, the BiDi algorithm must be implemented. It is my hope
++that this library will stimulate more Hebrew free software.
++
++Of course the BiDi algorithm is not limited to Hebrew, so I expect
++that our Arab neighbors will also find this software useful.
--FriBidiPropCharType FriBidiPropertyBlockff00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlockff00[256] = {
- ON ,ON ,ON ,ET ,ET ,ET ,ON ,ON ,ON ,ON ,ON ,ET ,CS ,ET ,CS ,ES ,
- EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,CS ,ON ,ON ,ON ,ON ,ON ,
- ON ,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -658,7 +656,7 @@
-
- /* 33 blocks defined */
-
--FriBidiPropCharType *FriBidiPropertyBlocks[256] = {
-+static FriBidiPropCharType *FriBidiPropertyBlocks[256] = {
- FriBidiPropertyBlock0000,
- FriBidiPropertyBlock0100,
- FriBidiPropertyBlock0200,
-@@ -954,7 +952,7 @@
- // of the display engine to actually mirror these.
- //----------------------------------------------------------------------*/
-
--struct {
-+static struct {
- FriBidiChar ch, mirrored_ch;
- } FriBidiMirroredChars[] = {
- {0x0028, 0x0029},
-@@ -1099,7 +1097,7 @@
- {0x301B, 0x301A}
- };
+ Audience
+ ========
+-It is our hope that this library will stimulate the implementation of Hebrew
+-and Arabic in lots of free software. Here is a small list of projects that
+-would benifit from the use of the FriBidi library, but of course there are
+-many more: Wine, Mozilla, Qt, KDE, lynx, OpenOffice.
--gint nFriBidiMirroredChars = 140;
-+static gint nFriBidiMirroredChars = 140;
+-It may be interesting for you to know that Fribidi is already being used in
+-projects like Gnome, GTK+, Pango, AbiWord, and Xterm.
++It is my hope that this library will stimulate the implementation of
++Hebrew and Arabic in lots of free software. Here is a small list of
++projects that would benifit from the use of the FriBidi library, but
++of course there are many more: Wine, Mozilla, Gtk, Gnome, Qt, KDE,
++AbiWord, lynx.
+ Downloading
+ ===========
+ The latest version of FriBidi may be found at:
- /* *INDENT-ON* */
---- /home/otaylor/cvs/fribidi/fribidi_types.h Thu Oct 18 14:42:36 2001
-+++ fribidi_types.h Mon Apr 16 18:42:34 2001
-@@ -279,4 +279,6 @@
- #define FRIBIDI_MAX_STRING_LENGTH 65535
- #endif
+- http://fribidi.sourceforge.net/
+-
+-Building
+-========
+-See INSTALL for a description of how to build and install this library.
+-
+-Copyright
+-=========
+-Fribidi is:
+-Copyright (C) 1999,2000 Dov Grobgeld, and
+-Copyright (C) 2001,2002 Behdad Esfahbod.
+-
+-This library is free software; you can redistribute it and/or
+-modify it under the terms of the GNU Lesser General Public
+-License as published by the Free Software Foundation; either
+-version 2.1 of the License, or (at your option) any later version.
+-
+-This library is distributed in the hope that it will be useful,
+-but WITHOUT ANY WARRANTY; without even the implied warranty of
+-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+-Lesser General Public License for more details.
+-
+-You should have received a copy of the GNU Lesser General Public License
+-along with this library, in a file named COPYING; if not, write to the
+-Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+-Boston, MA 02111-1307 USA
+-
+-For licensing issues, contact <dov@imagic.weizmann.ac.il> and
+-<fwpg@sharif.edu>.
+-
+-Implementation
+-==============
+-The library implements the algorithm described in the "Unicode Standard
+-Annex #9, The Bidirectional Algorithm", available at
+-http://www.unicode.org/unicode/reports/tr9/. Fribidi has been tested
+-exhaustively against the Unicode Reference Code, and due to our knowledge,
+-it completely conforms to the specification, always producing the same
+-result as the Reference Code.
+-
+-In the API we were inspired by the document "Bi-Di languages support
+-- BiDi API propasal", http://www.langbox.com/AraMosaic/mozilla/BiDi_API.html,
+-by Franck Portaneri <franck@langbox.com> which he wrote as a proposal for
+-adding BiDi support to Mozilla.
+-
+-Internally, the library uses Unicode entirely. The character property
+-function was automatically created from the Unicode property list document
+-PropList.txt available from the Unicode FTP site. This means that every
+-Unicode character is treated in strict accordance with the Unicode
+-specification. The same is true for the mirroring of characters, which also
+-works for all the characters listed as mirrorable in the the Unicode
+-specification.
+-
+-Other character sets must be converted into Unicode before the library
+-may be used. In order to use, e.g. iso8859-8, the function
+-
+- void
+- fribidi_iso8859_8_to_unicode(guchar *s,
+- /* output */
+- FriBidiChar *us)
+-
+-must be called which translates the guchar string *s to a unicode
+-string. There is also a corresponding fribidi_unicode_to_iso8859_8
+-that may be called to convert the string back to iso8859_8 for output.
+-
+-The reordering of characters is done through the function:
+-
+- void
+- fribidi_log2vis(/* input */
+- FriBidiChar *str,
+- int len,
+- FriBidiCharType *pbase_dir,
+- /* output */
+- FriBidiChar *visual_str,
+- gint *position_L_to_V_list,
+- gint *position_V_to_L_list,
+- gint8 *embedding_level_list
+- )
+-
+-
+-where
+- str is the Unicode input string
+- len is the length of the unicode string
+- pbase_dir is the input and output base direction. If
+- base == FRIBIDI_TYPE_ON then fribidi_log2vis
+- calculates the base direction on its own
+- according to the BiDi algorithm.
+- visual_str The reordered output unicode string.
+- position_L_to_V_list Maps the positions in the logical string to
+- positions in the visual string.
+- position_V_to_L_list Maps the positions in the visual string to
+- the positions in the logical string.
+- embedding_level_list Returns the classification of each character. Even
+- levels indicate LTR characters, and odd levels
+- indicate RTL characters. The main use of this
+- list is in interactive applications when the
+- embedding e.g. level determines cursor display.
+-
+-In any of the output pointers == NULL, then that information is not
+-calculated.
+-
+-How it looks like
+-=================
+-
+-Have a look at tests directory, to see some input and outputs, which
+-CapRTL charset means that CAPITAL letters are right to left, and digits
+-6, 7, 8, 9 are Arabic digits, try 'fribidi --charsetdesc CapRTL' for the
+-full description.
+-
+-Executable
+-==========
+-There is also a command line utilitity called fribidi that loops over
+-the text of a file and performs the BiDi algorithm on each line, also
+-used for testing the algorithm. Run fribidi with the --help option to
+-learn about usage.
+-
+-Bugs and comments
+-=================
+-
+-Report FriBidi bugs at:
+-
+- http://fribidi.sourceforge.net/bugs.php
+-
+-And send your comments to:
++ http://fribidi.sourceforge.net
-+FriBidiCharType _pango_fribidi_get_type(FriBidiChar uch);
-+
- #endif
+- fribidi-discuss@lists.sourceforge.net
+Only in /usr/src/fribidi/: run.tests
+Only in /usr/src/fribidi/: stamp-h1
+Only in /usr/src/fribidi/: stamp-h.in
+Only in /usr/src/fribidi/: tests
+Only in /usr/src/fribidi/: THANKS
+Only in /usr/src/fribidi/: TODO
+Only in /usr/src/fribidi/: unidata
+Only in /usr/src/fribidi/: win
diff --git a/pango/mini-fribidi/fribidi_char_type.c b/pango/mini-fribidi/fribidi_char_type.c
new file mode 100644
index 00000000..c148041c
--- /dev/null
+++ b/pango/mini-fribidi/fribidi_char_type.c
@@ -0,0 +1,36 @@
+/* FriBidi - Library of BiDi algorithm
+ * Copyright (C) 2001,2002 Behdad Esfahbod.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library, in a file named COPYING; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307, USA
+ *
+ * For licensing issues, contact <fwpg@sharif.edu>.
+ */
+
+#include <glib.h>
+#include "fribidi_types.h"
+
+/*======================================================================
+ * _pango_fribidi_get_type() returns the bidi type of a character.
+ *----------------------------------------------------------------------*/
+FriBidiCharType _pango_fribidi_get_type_internal (FriBidiChar uch);
+
+FriBidiCharType
+_pango_fribidi_get_type (FriBidiChar uch)
+{
+ return _pango_fribidi_get_type_internal (uch);
+}
+
+#include "fribidi_tab_char_type_2.i"
diff --git a/pango/mini-fribidi/fribidi_tab_char_type_2.i b/pango/mini-fribidi/fribidi_tab_char_type_2.i
new file mode 100644
index 00000000..31652a1a
--- /dev/null
+++ b/pango/mini-fribidi/fribidi_tab_char_type_2.i
@@ -0,0 +1,5377 @@
+/*
+ This file was automatically created from UnicodeData.txt version 4.0.0
+ by fribidi_create_char_types
+*/
+
+#ifndef FRIBIDI_TAB_CHAR_TYPE_2_I
+#define FRIBIDI_TAB_CHAR_TYPE_2_I
+
+#include <glib.h>
+#include "fribidi_types.h"
+
+#define LTR FRIBIDI_PROP_TYPE_LTR
+#define RTL FRIBIDI_PROP_TYPE_RTL
+#define AL FRIBIDI_PROP_TYPE_AL
+#define ON FRIBIDI_PROP_TYPE_ON
+#define BN FRIBIDI_PROP_TYPE_BN
+#define AN FRIBIDI_PROP_TYPE_AN
+#define BS FRIBIDI_PROP_TYPE_BS
+#define CS FRIBIDI_PROP_TYPE_CS
+#define EN FRIBIDI_PROP_TYPE_EN
+#define ES FRIBIDI_PROP_TYPE_ES
+#define ET FRIBIDI_PROP_TYPE_ET
+#define LRE FRIBIDI_PROP_TYPE_LRE
+#define LRO FRIBIDI_PROP_TYPE_LRO
+#define NSM FRIBIDI_PROP_TYPE_NSM
+#define PDF FRIBIDI_PROP_TYPE_PDF
+#define RLE FRIBIDI_PROP_TYPE_RLE
+#define RLO FRIBIDI_PROP_TYPE_RLO
+#define SS FRIBIDI_PROP_TYPE_SS
+#define WS FRIBIDI_PROP_TYPE_WS
+
+/*
+ Automatically generated by packtab.c version 2
+
+ just use FRIBIDI_GET_TYPE(key)
+
+ assumed sizeof(FriBidiPropCharType) == 1
+ required memory: 21248
+ lookups: 2
+ partition shape: FriBidiPropertyBlock[4352][256]
+ different table entries: 1 49
+*/
+
+/* *INDENT-OFF* */
+
+static const FriBidiPropCharType FriBidiPropertyBlockLevel1[256*49] = {
+
+#define FriBidiPropertyBlockLevel1_0000 0x0
+
+ BN, BN, BN, BN, BN, BN, BN, BN, BN, SS, BS, SS, WS, BS, BN, BN,
+ BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BS, BS, BS, SS,
+ WS, ON, ON, ET, ET, ET, ON, ON, ON, ON, ON, ET, CS, ET, CS, ES,
+ EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, CS, ON, ON, ON, ON, ON,
+ ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON, ON, ON, ON,
+ ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON, ON, ON, BN,
+ BN, BN, BN, BN, BN, BS, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,
+ BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,
+ CS, ON, ET, ET, ET, ET, ON, ON, ON, ON,LTR, ON, ON, ON, ON, ON,
+ ET, ET, EN, EN, ON,LTR, ON, ON, ON, EN,LTR, ON, ON, ON, ON, ON,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_0100 0x100
+
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_0200 0x200
+
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ LTR,LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ LTR,LTR,LTR,LTR,LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+
+#define FriBidiPropertyBlockLevel1_0300 0x300
+
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ LTR,LTR,LTR,LTR, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON,LTR,
+ LTR,LTR,LTR,LTR, ON, ON,LTR, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_0400 0x400
+
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,NSM,NSM,NSM,NSM,LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_0500 0x500
+
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON,LTR,LTR,LTR,LTR,LTR,
+ RTL,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,RTL,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,RTL,NSM,NSM,NSM,RTL,NSM,
+ RTL,NSM,NSM,RTL,NSM,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,
+ RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,
+ RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,
+ RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,
+
+#define FriBidiPropertyBlockLevel1_0600 0x600
+
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, CS, AL, ON, ON,
+ NSM,NSM,NSM,NSM,NSM,NSM, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM, AL, AL, AL, AL, AL, AL, AL,
+ AN, AN, AN, AN, AN, AN, AN, AN, AN, AN, ET, AN, AN, AL, AL, AL,
+ NSM, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL,NSM,NSM,NSM,NSM,NSM,NSM,NSM, AL,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM, AL, AL,NSM,NSM, ON,NSM,NSM,NSM,NSM, AL, AL,
+ EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, AL, AL, AL, AL, AL, AL,
+
+#define FriBidiPropertyBlockLevel1_0700 0x700
+
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, BN,
+ AL,NSM, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_0900 0x800
+
+ LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,LTR,
+ LTR,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR,NSM,LTR,LTR,
+ LTR,NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,LTR,
+ LTR,NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR, ET, ET,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_0A00 0x900
+
+ LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,LTR,
+ LTR,NSM,NSM,LTR,LTR,LTR,LTR,NSM,NSM,LTR,LTR,NSM,NSM,NSM,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,LTR,
+ LTR,NSM,NSM,NSM,NSM,NSM,LTR,NSM,NSM,LTR,LTR,LTR,LTR,NSM,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR, ET,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_0B00 0xA00
+
+ LTR,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,NSM,
+ LTR,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR, ON, ON, ON, ON, ON, ON, ET, ON,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_0C00 0xB00
+
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,
+ NSM,LTR,LTR,LTR,LTR,LTR,NSM,NSM,NSM,LTR,NSM,NSM,NSM,NSM,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_0D00 0xC00
+
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,NSM,NSM,NSM,LTR,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_0E00 0xD00
+
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,NSM,LTR,LTR,NSM,NSM,NSM,NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR, ET,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,NSM,LTR,LTR,NSM,NSM,NSM,NSM,NSM,NSM,LTR,NSM,NSM,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,NSM,NSM,NSM,NSM,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_0F00 0xE00
+
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,NSM,LTR,NSM,LTR,NSM, ON, ON, ON, ON,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,LTR,
+ NSM,NSM,NSM,NSM,NSM,LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,LTR,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_1000 0xF00
+
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,NSM,
+ NSM,LTR,NSM,LTR,LTR,LTR,NSM,NSM,LTR,NSM,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_1600 0x1000
+
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ WS,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_1700 0x1100
+
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,NSM,NSM,NSM,NSM,NSM,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ET,LTR,NSM,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_1800 0x1200
+
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,NSM,NSM,NSM, WS,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_1900 0x1300
+
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ NSM,NSM,NSM,LTR,LTR,LTR,LTR,NSM,NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR,
+ LTR,LTR,NSM,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,NSM,LTR,LTR,LTR,LTR,
+ ON,LTR,LTR,LTR, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+
+#define FriBidiPropertyBlockLevel1_1F00 0x1400
+
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON,LTR, ON,
+ ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON, ON,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON, ON,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON, ON,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON,LTR,
+
+#define FriBidiPropertyBlockLevel1_2000 0x1500
+
+ WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, BN, BN, BN,LTR,RTL,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, WS, BS,LRE,RLE,PDF,LRO,RLO, WS,
+ ET, ET, ET, ET, ET, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON,LTR,LTR, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR, WS,
+ BN, BN, BN, BN,LTR,LTR,LTR,LTR,LTR,LTR, BN, BN, BN, BN, BN, BN,
+ EN,LTR,LTR,LTR, EN, EN, EN, EN, EN, EN, ET, ET, ON, ON, ON,LTR,
+ EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, ET, ET, ON, ON, ON,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ET, ET, ET, ET, ET, ET, ET, ET, ET, ET, ET, ET, ET, ET, ET, ET,
+ ET, ET,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_2100 0x1600
+
+ ON, ON,LTR, ON, ON, ON, ON,LTR, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR, ON,LTR, ON, ON, ON,LTR,LTR,LTR,LTR,LTR, ON, ON,
+ ON, ON, ON, ON,LTR, ON,LTR, ON,LTR, ON,LTR,LTR,LTR,LTR, ET,LTR,
+ LTR,LTR, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON,LTR,LTR,LTR,LTR,
+ ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR, ON, ON,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+
+#define FriBidiPropertyBlockLevel1_2200 0x1700
+
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ET, ET, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+
+#define FriBidiPropertyBlockLevel1_2300 0x1800
+
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON,LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_2400 0x1900
+
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN,
+ EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN,
+ EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN,
+ EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, EN, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+
+#define FriBidiPropertyBlockLevel1_2500 0x1A00
+
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+
+#define FriBidiPropertyBlockLevel1_2600 0x1B00
+
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON,LTR, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR,LTR,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_2700 0x1C00
+
+ LTR, ON, ON, ON, ON,LTR, ON, ON, ON, ON,LTR,LTR, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON,LTR, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR, ON,LTR, ON,
+ ON, ON, ON,LTR,LTR,LTR, ON,LTR, ON, ON, ON, ON, ON, ON, ON,LTR,
+ LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON,LTR,LTR,LTR, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+
+#define FriBidiPropertyBlockLevel1_2B00 0x1D00
+
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_2E00 0x1E00
+
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_2F00 0x1F00
+
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_3000 0x2000
+
+ WS, ON, ON, ON, ON,LTR,LTR,LTR, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,NSM,NSM,NSM,NSM,
+ ON,LTR,LTR,LTR,LTR,LTR, ON, ON,LTR,LTR,LTR,LTR,LTR, ON, ON, ON,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM, ON, ON,LTR,LTR,LTR,
+ ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_3200 0x2100
+
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON, ON, ON,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_3300 0x2200
+
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON,
+
+#define FriBidiPropertyBlockLevel1_4D00 0x2300
+
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+
+#define FriBidiPropertyBlockLevel1_A400 0x2400
+
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_FB00 0x2500
+
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,RTL,NSM,RTL,
+ RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL, ET,RTL,RTL,RTL,RTL,RTL,RTL,
+ RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,
+ RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+
+#define FriBidiPropertyBlockLevel1_FC00 0x2600
+
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+
+#define FriBidiPropertyBlockLevel1_FD00 0x2700
+
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, ON, ON,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, ON, AL, AL,
+
+#define FriBidiPropertyBlockLevel1_FE00 0x2800
+
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ CS, ON, CS,LTR, ON, CS, ON, ON, ON, ON, ON, ON, ON, ON, ON, ET,
+ ON, ON, ET, ET, ON, ON, ON,LTR, ON, ET, ET, ON,LTR,LTR,LTR,LTR,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, BN,
+
+#define FriBidiPropertyBlockLevel1_FF00 0x2900
+
+ LTR, ON, ON, ET, ET, ET, ON, ON, ON, ON, ON, ET, CS, ET, CS, ES,
+ EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, CS, ON, ON, ON, ON, ON,
+ ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON, ON, ON, ON,
+ ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ET, ET, ON, ON, ON, ET, ET,LTR, ON, ON, ON, ON, ON, ON, ON,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, BN, BN, BN, ON, ON,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_10100 0x2A00
+
+ LTR, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_10800 0x2B00
+
+ RTL,RTL,RTL,RTL,RTL,RTL,LTR,LTR,RTL,LTR,RTL,RTL,RTL,RTL,RTL,RTL,
+ RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,
+ RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,
+ RTL,RTL,RTL,RTL,RTL,RTL,LTR,RTL,RTL,LTR,LTR,LTR,RTL,LTR,LTR,RTL,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_1D100 0x2C00
+
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR, BN, BN, BN, BN, BN, BN, BN, BN,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,LTR,LTR,NSM,NSM,NSM,NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,NSM,NSM,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_1D300 0x2D00
+
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_1D700 0x2E00
+
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, EN, EN,
+ EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN,
+ EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN,
+ EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN,
+
+#define FriBidiPropertyBlockLevel1_E0000 0x2F00
+
+ LTR, BN,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,
+ BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,
+ BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,
+ BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,
+ BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,
+ BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_E0100 0x3000
+
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+};
+
+static const guint16 FriBidiPropertyBlockLevel0[4352*1] = {
+
+#define FriBidiPropertyBlockLevel0_0000 0x0
+
+ FriBidiPropertyBlockLevel1_0000, /* 0000..00FF */
+ FriBidiPropertyBlockLevel1_0100, /* 0100..01FF */
+ FriBidiPropertyBlockLevel1_0200, /* 0200..02FF */
+ FriBidiPropertyBlockLevel1_0300, /* 0300..03FF */
+ FriBidiPropertyBlockLevel1_0400, /* 0400..04FF */
+ FriBidiPropertyBlockLevel1_0500, /* 0500..05FF */
+ FriBidiPropertyBlockLevel1_0600, /* 0600..06FF */
+ FriBidiPropertyBlockLevel1_0700, /* 0700..07FF */
+ FriBidiPropertyBlockLevel1_0100, /* 0800..08FF */
+ FriBidiPropertyBlockLevel1_0900, /* 0900..09FF */
+ FriBidiPropertyBlockLevel1_0A00, /* 0A00..0AFF */
+ FriBidiPropertyBlockLevel1_0B00, /* 0B00..0BFF */
+ FriBidiPropertyBlockLevel1_0C00, /* 0C00..0CFF */
+ FriBidiPropertyBlockLevel1_0D00, /* 0D00..0DFF */
+ FriBidiPropertyBlockLevel1_0E00, /* 0E00..0EFF */
+ FriBidiPropertyBlockLevel1_0F00, /* 0F00..0FFF */
+ FriBidiPropertyBlockLevel1_1000, /* 1000..10FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1100..11FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1200..12FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1300..13FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1400..14FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1500..15FF */
+ FriBidiPropertyBlockLevel1_1600, /* 1600..16FF */
+ FriBidiPropertyBlockLevel1_1700, /* 1700..17FF */
+ FriBidiPropertyBlockLevel1_1800, /* 1800..18FF */
+ FriBidiPropertyBlockLevel1_1900, /* 1900..19FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1A00..1AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1B00..1BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1C00..1CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1D00..1DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1E00..1EFF */
+ FriBidiPropertyBlockLevel1_1F00, /* 1F00..1FFF */
+ FriBidiPropertyBlockLevel1_2000, /* 2000..20FF */
+ FriBidiPropertyBlockLevel1_2100, /* 2100..21FF */
+ FriBidiPropertyBlockLevel1_2200, /* 2200..22FF */
+ FriBidiPropertyBlockLevel1_2300, /* 2300..23FF */
+ FriBidiPropertyBlockLevel1_2400, /* 2400..24FF */
+ FriBidiPropertyBlockLevel1_2500, /* 2500..25FF */
+ FriBidiPropertyBlockLevel1_2600, /* 2600..26FF */
+ FriBidiPropertyBlockLevel1_2700, /* 2700..27FF */
+ FriBidiPropertyBlockLevel1_2500, /* 2800..28FF */
+ FriBidiPropertyBlockLevel1_2500, /* 2900..29FF */
+ FriBidiPropertyBlockLevel1_2500, /* 2A00..2AFF */
+ FriBidiPropertyBlockLevel1_2B00, /* 2B00..2BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2C00..2CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2D00..2DFF */
+ FriBidiPropertyBlockLevel1_2E00, /* 2E00..2EFF */
+ FriBidiPropertyBlockLevel1_2F00, /* 2F00..2FFF */
+ FriBidiPropertyBlockLevel1_3000, /* 3000..30FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3100..31FF */
+ FriBidiPropertyBlockLevel1_3200, /* 3200..32FF */
+ FriBidiPropertyBlockLevel1_3300, /* 3300..33FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3400..34FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3500..35FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3600..36FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3700..37FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3800..38FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3900..39FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3A00..3AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3B00..3BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3C00..3CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3D00..3DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3E00..3EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3F00..3FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4000..40FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4100..41FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4200..42FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4300..43FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4400..44FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4500..45FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4600..46FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4700..47FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4800..48FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4900..49FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4A00..4AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4B00..4BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4C00..4CFF */
+ FriBidiPropertyBlockLevel1_4D00, /* 4D00..4DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4E00..4EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4F00..4FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5000..50FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5100..51FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5200..52FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5300..53FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5400..54FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5500..55FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5600..56FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5700..57FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5800..58FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5900..59FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5A00..5AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5B00..5BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5C00..5CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5D00..5DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5E00..5EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5F00..5FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6000..60FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6100..61FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6200..62FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6300..63FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6400..64FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6500..65FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6600..66FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6700..67FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6800..68FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6900..69FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6A00..6AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6B00..6BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6C00..6CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6D00..6DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6E00..6EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6F00..6FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7000..70FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7100..71FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7200..72FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7300..73FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7400..74FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7500..75FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7600..76FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7700..77FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7800..78FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7900..79FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7A00..7AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7B00..7BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7C00..7CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7D00..7DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7E00..7EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7F00..7FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8000..80FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8100..81FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8200..82FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8300..83FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8400..84FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8500..85FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8600..86FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8700..87FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8800..88FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8900..89FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8A00..8AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8B00..8BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8C00..8CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8D00..8DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8E00..8EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8F00..8FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9000..90FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9100..91FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9200..92FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9300..93FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9400..94FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9500..95FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9600..96FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9700..97FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9800..98FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9900..99FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9A00..9AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9B00..9BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9C00..9CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9D00..9DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9E00..9EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9F00..9FFF */
+ FriBidiPropertyBlockLevel1_0100, /* A000..A0FF */
+ FriBidiPropertyBlockLevel1_0100, /* A100..A1FF */
+ FriBidiPropertyBlockLevel1_0100, /* A200..A2FF */
+ FriBidiPropertyBlockLevel1_0100, /* A300..A3FF */
+ FriBidiPropertyBlockLevel1_A400, /* A400..A4FF */
+ FriBidiPropertyBlockLevel1_0100, /* A500..A5FF */
+ FriBidiPropertyBlockLevel1_0100, /* A600..A6FF */
+ FriBidiPropertyBlockLevel1_0100, /* A700..A7FF */
+ FriBidiPropertyBlockLevel1_0100, /* A800..A8FF */
+ FriBidiPropertyBlockLevel1_0100, /* A900..A9FF */
+ FriBidiPropertyBlockLevel1_0100, /* AA00..AAFF */
+ FriBidiPropertyBlockLevel1_0100, /* AB00..ABFF */
+ FriBidiPropertyBlockLevel1_0100, /* AC00..ACFF */
+ FriBidiPropertyBlockLevel1_0100, /* AD00..ADFF */
+ FriBidiPropertyBlockLevel1_0100, /* AE00..AEFF */
+ FriBidiPropertyBlockLevel1_0100, /* AF00..AFFF */
+ FriBidiPropertyBlockLevel1_0100, /* B000..B0FF */
+ FriBidiPropertyBlockLevel1_0100, /* B100..B1FF */
+ FriBidiPropertyBlockLevel1_0100, /* B200..B2FF */
+ FriBidiPropertyBlockLevel1_0100, /* B300..B3FF */
+ FriBidiPropertyBlockLevel1_0100, /* B400..B4FF */
+ FriBidiPropertyBlockLevel1_0100, /* B500..B5FF */
+ FriBidiPropertyBlockLevel1_0100, /* B600..B6FF */
+ FriBidiPropertyBlockLevel1_0100, /* B700..B7FF */
+ FriBidiPropertyBlockLevel1_0100, /* B800..B8FF */
+ FriBidiPropertyBlockLevel1_0100, /* B900..B9FF */
+ FriBidiPropertyBlockLevel1_0100, /* BA00..BAFF */
+ FriBidiPropertyBlockLevel1_0100, /* BB00..BBFF */
+ FriBidiPropertyBlockLevel1_0100, /* BC00..BCFF */
+ FriBidiPropertyBlockLevel1_0100, /* BD00..BDFF */
+ FriBidiPropertyBlockLevel1_0100, /* BE00..BEFF */
+ FriBidiPropertyBlockLevel1_0100, /* BF00..BFFF */
+ FriBidiPropertyBlockLevel1_0100, /* C000..C0FF */
+ FriBidiPropertyBlockLevel1_0100, /* C100..C1FF */
+ FriBidiPropertyBlockLevel1_0100, /* C200..C2FF */
+ FriBidiPropertyBlockLevel1_0100, /* C300..C3FF */
+ FriBidiPropertyBlockLevel1_0100, /* C400..C4FF */
+ FriBidiPropertyBlockLevel1_0100, /* C500..C5FF */
+ FriBidiPropertyBlockLevel1_0100, /* C600..C6FF */
+ FriBidiPropertyBlockLevel1_0100, /* C700..C7FF */
+ FriBidiPropertyBlockLevel1_0100, /* C800..C8FF */
+ FriBidiPropertyBlockLevel1_0100, /* C900..C9FF */
+ FriBidiPropertyBlockLevel1_0100, /* CA00..CAFF */
+ FriBidiPropertyBlockLevel1_0100, /* CB00..CBFF */
+ FriBidiPropertyBlockLevel1_0100, /* CC00..CCFF */
+ FriBidiPropertyBlockLevel1_0100, /* CD00..CDFF */
+ FriBidiPropertyBlockLevel1_0100, /* CE00..CEFF */
+ FriBidiPropertyBlockLevel1_0100, /* CF00..CFFF */
+ FriBidiPropertyBlockLevel1_0100, /* D000..D0FF */
+ FriBidiPropertyBlockLevel1_0100, /* D100..D1FF */
+ FriBidiPropertyBlockLevel1_0100, /* D200..D2FF */
+ FriBidiPropertyBlockLevel1_0100, /* D300..D3FF */
+ FriBidiPropertyBlockLevel1_0100, /* D400..D4FF */
+ FriBidiPropertyBlockLevel1_0100, /* D500..D5FF */
+ FriBidiPropertyBlockLevel1_0100, /* D600..D6FF */
+ FriBidiPropertyBlockLevel1_0100, /* D700..D7FF */
+ FriBidiPropertyBlockLevel1_0100, /* D800..D8FF */
+ FriBidiPropertyBlockLevel1_0100, /* D900..D9FF */
+ FriBidiPropertyBlockLevel1_0100, /* DA00..DAFF */
+ FriBidiPropertyBlockLevel1_0100, /* DB00..DBFF */
+ FriBidiPropertyBlockLevel1_0100, /* DC00..DCFF */
+ FriBidiPropertyBlockLevel1_0100, /* DD00..DDFF */
+ FriBidiPropertyBlockLevel1_0100, /* DE00..DEFF */
+ FriBidiPropertyBlockLevel1_0100, /* DF00..DFFF */
+ FriBidiPropertyBlockLevel1_0100, /* E000..E0FF */
+ FriBidiPropertyBlockLevel1_0100, /* E100..E1FF */
+ FriBidiPropertyBlockLevel1_0100, /* E200..E2FF */
+ FriBidiPropertyBlockLevel1_0100, /* E300..E3FF */
+ FriBidiPropertyBlockLevel1_0100, /* E400..E4FF */
+ FriBidiPropertyBlockLevel1_0100, /* E500..E5FF */
+ FriBidiPropertyBlockLevel1_0100, /* E600..E6FF */
+ FriBidiPropertyBlockLevel1_0100, /* E700..E7FF */
+ FriBidiPropertyBlockLevel1_0100, /* E800..E8FF */
+ FriBidiPropertyBlockLevel1_0100, /* E900..E9FF */
+ FriBidiPropertyBlockLevel1_0100, /* EA00..EAFF */
+ FriBidiPropertyBlockLevel1_0100, /* EB00..EBFF */
+ FriBidiPropertyBlockLevel1_0100, /* EC00..ECFF */
+ FriBidiPropertyBlockLevel1_0100, /* ED00..EDFF */
+ FriBidiPropertyBlockLevel1_0100, /* EE00..EEFF */
+ FriBidiPropertyBlockLevel1_0100, /* EF00..EFFF */
+ FriBidiPropertyBlockLevel1_0100, /* F000..F0FF */
+ FriBidiPropertyBlockLevel1_0100, /* F100..F1FF */
+ FriBidiPropertyBlockLevel1_0100, /* F200..F2FF */
+ FriBidiPropertyBlockLevel1_0100, /* F300..F3FF */
+ FriBidiPropertyBlockLevel1_0100, /* F400..F4FF */
+ FriBidiPropertyBlockLevel1_0100, /* F500..F5FF */
+ FriBidiPropertyBlockLevel1_0100, /* F600..F6FF */
+ FriBidiPropertyBlockLevel1_0100, /* F700..F7FF */
+ FriBidiPropertyBlockLevel1_0100, /* F800..F8FF */
+ FriBidiPropertyBlockLevel1_0100, /* F900..F9FF */
+ FriBidiPropertyBlockLevel1_0100, /* FA00..FAFF */
+ FriBidiPropertyBlockLevel1_FB00, /* FB00..FBFF */
+ FriBidiPropertyBlockLevel1_FC00, /* FC00..FCFF */
+ FriBidiPropertyBlockLevel1_FD00, /* FD00..FDFF */
+ FriBidiPropertyBlockLevel1_FE00, /* FE00..FEFF */
+ FriBidiPropertyBlockLevel1_FF00, /* FF00..FFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10000..100FF */
+ FriBidiPropertyBlockLevel1_10100, /* 10100..101FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10200..102FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10300..103FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10400..104FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10500..105FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10600..106FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10700..107FF */
+ FriBidiPropertyBlockLevel1_10800, /* 10800..108FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10900..109FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10A00..10AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10B00..10BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10C00..10CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10D00..10DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10E00..10EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10F00..10FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 11000..110FF */
+ FriBidiPropertyBlockLevel1_0100, /* 11100..111FF */
+ FriBidiPropertyBlockLevel1_0100, /* 11200..112FF */
+ FriBidiPropertyBlockLevel1_0100, /* 11300..113FF */
+ FriBidiPropertyBlockLevel1_0100, /* 11400..114FF */
+ FriBidiPropertyBlockLevel1_0100, /* 11500..115FF */
+ FriBidiPropertyBlockLevel1_0100, /* 11600..116FF */
+ FriBidiPropertyBlockLevel1_0100, /* 11700..117FF */
+ FriBidiPropertyBlockLevel1_0100, /* 11800..118FF */
+ FriBidiPropertyBlockLevel1_0100, /* 11900..119FF */
+ FriBidiPropertyBlockLevel1_0100, /* 11A00..11AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 11B00..11BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 11C00..11CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 11D00..11DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 11E00..11EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 11F00..11FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 12000..120FF */
+ FriBidiPropertyBlockLevel1_0100, /* 12100..121FF */
+ FriBidiPropertyBlockLevel1_0100, /* 12200..122FF */
+ FriBidiPropertyBlockLevel1_0100, /* 12300..123FF */
+ FriBidiPropertyBlockLevel1_0100, /* 12400..124FF */
+ FriBidiPropertyBlockLevel1_0100, /* 12500..125FF */
+ FriBidiPropertyBlockLevel1_0100, /* 12600..126FF */
+ FriBidiPropertyBlockLevel1_0100, /* 12700..127FF */
+ FriBidiPropertyBlockLevel1_0100, /* 12800..128FF */
+ FriBidiPropertyBlockLevel1_0100, /* 12900..129FF */
+ FriBidiPropertyBlockLevel1_0100, /* 12A00..12AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 12B00..12BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 12C00..12CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 12D00..12DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 12E00..12EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 12F00..12FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 13000..130FF */
+ FriBidiPropertyBlockLevel1_0100, /* 13100..131FF */
+ FriBidiPropertyBlockLevel1_0100, /* 13200..132FF */
+ FriBidiPropertyBlockLevel1_0100, /* 13300..133FF */
+ FriBidiPropertyBlockLevel1_0100, /* 13400..134FF */
+ FriBidiPropertyBlockLevel1_0100, /* 13500..135FF */
+ FriBidiPropertyBlockLevel1_0100, /* 13600..136FF */
+ FriBidiPropertyBlockLevel1_0100, /* 13700..137FF */
+ FriBidiPropertyBlockLevel1_0100, /* 13800..138FF */
+ FriBidiPropertyBlockLevel1_0100, /* 13900..139FF */
+ FriBidiPropertyBlockLevel1_0100, /* 13A00..13AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 13B00..13BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 13C00..13CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 13D00..13DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 13E00..13EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 13F00..13FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 14000..140FF */
+ FriBidiPropertyBlockLevel1_0100, /* 14100..141FF */
+ FriBidiPropertyBlockLevel1_0100, /* 14200..142FF */
+ FriBidiPropertyBlockLevel1_0100, /* 14300..143FF */
+ FriBidiPropertyBlockLevel1_0100, /* 14400..144FF */
+ FriBidiPropertyBlockLevel1_0100, /* 14500..145FF */
+ FriBidiPropertyBlockLevel1_0100, /* 14600..146FF */
+ FriBidiPropertyBlockLevel1_0100, /* 14700..147FF */
+ FriBidiPropertyBlockLevel1_0100, /* 14800..148FF */
+ FriBidiPropertyBlockLevel1_0100, /* 14900..149FF */
+ FriBidiPropertyBlockLevel1_0100, /* 14A00..14AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 14B00..14BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 14C00..14CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 14D00..14DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 14E00..14EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 14F00..14FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 15000..150FF */
+ FriBidiPropertyBlockLevel1_0100, /* 15100..151FF */
+ FriBidiPropertyBlockLevel1_0100, /* 15200..152FF */
+ FriBidiPropertyBlockLevel1_0100, /* 15300..153FF */
+ FriBidiPropertyBlockLevel1_0100, /* 15400..154FF */
+ FriBidiPropertyBlockLevel1_0100, /* 15500..155FF */
+ FriBidiPropertyBlockLevel1_0100, /* 15600..156FF */
+ FriBidiPropertyBlockLevel1_0100, /* 15700..157FF */
+ FriBidiPropertyBlockLevel1_0100, /* 15800..158FF */
+ FriBidiPropertyBlockLevel1_0100, /* 15900..159FF */
+ FriBidiPropertyBlockLevel1_0100, /* 15A00..15AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 15B00..15BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 15C00..15CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 15D00..15DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 15E00..15EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 15F00..15FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 16000..160FF */
+ FriBidiPropertyBlockLevel1_0100, /* 16100..161FF */
+ FriBidiPropertyBlockLevel1_0100, /* 16200..162FF */
+ FriBidiPropertyBlockLevel1_0100, /* 16300..163FF */
+ FriBidiPropertyBlockLevel1_0100, /* 16400..164FF */
+ FriBidiPropertyBlockLevel1_0100, /* 16500..165FF */
+ FriBidiPropertyBlockLevel1_0100, /* 16600..166FF */
+ FriBidiPropertyBlockLevel1_0100, /* 16700..167FF */
+ FriBidiPropertyBlockLevel1_0100, /* 16800..168FF */
+ FriBidiPropertyBlockLevel1_0100, /* 16900..169FF */
+ FriBidiPropertyBlockLevel1_0100, /* 16A00..16AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 16B00..16BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 16C00..16CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 16D00..16DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 16E00..16EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 16F00..16FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 17000..170FF */
+ FriBidiPropertyBlockLevel1_0100, /* 17100..171FF */
+ FriBidiPropertyBlockLevel1_0100, /* 17200..172FF */
+ FriBidiPropertyBlockLevel1_0100, /* 17300..173FF */
+ FriBidiPropertyBlockLevel1_0100, /* 17400..174FF */
+ FriBidiPropertyBlockLevel1_0100, /* 17500..175FF */
+ FriBidiPropertyBlockLevel1_0100, /* 17600..176FF */
+ FriBidiPropertyBlockLevel1_0100, /* 17700..177FF */
+ FriBidiPropertyBlockLevel1_0100, /* 17800..178FF */
+ FriBidiPropertyBlockLevel1_0100, /* 17900..179FF */
+ FriBidiPropertyBlockLevel1_0100, /* 17A00..17AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 17B00..17BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 17C00..17CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 17D00..17DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 17E00..17EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 17F00..17FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 18000..180FF */
+ FriBidiPropertyBlockLevel1_0100, /* 18100..181FF */
+ FriBidiPropertyBlockLevel1_0100, /* 18200..182FF */
+ FriBidiPropertyBlockLevel1_0100, /* 18300..183FF */
+ FriBidiPropertyBlockLevel1_0100, /* 18400..184FF */
+ FriBidiPropertyBlockLevel1_0100, /* 18500..185FF */
+ FriBidiPropertyBlockLevel1_0100, /* 18600..186FF */
+ FriBidiPropertyBlockLevel1_0100, /* 18700..187FF */
+ FriBidiPropertyBlockLevel1_0100, /* 18800..188FF */
+ FriBidiPropertyBlockLevel1_0100, /* 18900..189FF */
+ FriBidiPropertyBlockLevel1_0100, /* 18A00..18AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 18B00..18BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 18C00..18CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 18D00..18DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 18E00..18EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 18F00..18FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 19000..190FF */
+ FriBidiPropertyBlockLevel1_0100, /* 19100..191FF */
+ FriBidiPropertyBlockLevel1_0100, /* 19200..192FF */
+ FriBidiPropertyBlockLevel1_0100, /* 19300..193FF */
+ FriBidiPropertyBlockLevel1_0100, /* 19400..194FF */
+ FriBidiPropertyBlockLevel1_0100, /* 19500..195FF */
+ FriBidiPropertyBlockLevel1_0100, /* 19600..196FF */
+ FriBidiPropertyBlockLevel1_0100, /* 19700..197FF */
+ FriBidiPropertyBlockLevel1_0100, /* 19800..198FF */
+ FriBidiPropertyBlockLevel1_0100, /* 19900..199FF */
+ FriBidiPropertyBlockLevel1_0100, /* 19A00..19AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 19B00..19BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 19C00..19CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 19D00..19DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 19E00..19EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 19F00..19FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1A000..1A0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1A100..1A1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1A200..1A2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1A300..1A3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1A400..1A4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1A500..1A5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1A600..1A6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1A700..1A7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1A800..1A8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1A900..1A9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1AA00..1AAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1AB00..1ABFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1AC00..1ACFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1AD00..1ADFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1AE00..1AEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1AF00..1AFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1B000..1B0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1B100..1B1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1B200..1B2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1B300..1B3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1B400..1B4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1B500..1B5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1B600..1B6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1B700..1B7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1B800..1B8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1B900..1B9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1BA00..1BAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1BB00..1BBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1BC00..1BCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1BD00..1BDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1BE00..1BEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1BF00..1BFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1C000..1C0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1C100..1C1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1C200..1C2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1C300..1C3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1C400..1C4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1C500..1C5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1C600..1C6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1C700..1C7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1C800..1C8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1C900..1C9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1CA00..1CAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1CB00..1CBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1CC00..1CCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1CD00..1CDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1CE00..1CEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1CF00..1CFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1D000..1D0FF */
+ FriBidiPropertyBlockLevel1_1D100, /* 1D100..1D1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1D200..1D2FF */
+ FriBidiPropertyBlockLevel1_1D300, /* 1D300..1D3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1D400..1D4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1D500..1D5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1D600..1D6FF */
+ FriBidiPropertyBlockLevel1_1D700, /* 1D700..1D7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1D800..1D8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1D900..1D9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1DA00..1DAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1DB00..1DBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1DC00..1DCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1DD00..1DDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1DE00..1DEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1DF00..1DFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1E000..1E0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1E100..1E1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1E200..1E2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1E300..1E3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1E400..1E4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1E500..1E5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1E600..1E6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1E700..1E7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1E800..1E8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1E900..1E9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1EA00..1EAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1EB00..1EBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1EC00..1ECFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1ED00..1EDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1EE00..1EEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1EF00..1EFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1F000..1F0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1F100..1F1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1F200..1F2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1F300..1F3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1F400..1F4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1F500..1F5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1F600..1F6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1F700..1F7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1F800..1F8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1F900..1F9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 1FA00..1FAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1FB00..1FBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1FC00..1FCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1FD00..1FDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1FE00..1FEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 1FF00..1FFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 20000..200FF */
+ FriBidiPropertyBlockLevel1_0100, /* 20100..201FF */
+ FriBidiPropertyBlockLevel1_0100, /* 20200..202FF */
+ FriBidiPropertyBlockLevel1_0100, /* 20300..203FF */
+ FriBidiPropertyBlockLevel1_0100, /* 20400..204FF */
+ FriBidiPropertyBlockLevel1_0100, /* 20500..205FF */
+ FriBidiPropertyBlockLevel1_0100, /* 20600..206FF */
+ FriBidiPropertyBlockLevel1_0100, /* 20700..207FF */
+ FriBidiPropertyBlockLevel1_0100, /* 20800..208FF */
+ FriBidiPropertyBlockLevel1_0100, /* 20900..209FF */
+ FriBidiPropertyBlockLevel1_0100, /* 20A00..20AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 20B00..20BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 20C00..20CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 20D00..20DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 20E00..20EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 20F00..20FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 21000..210FF */
+ FriBidiPropertyBlockLevel1_0100, /* 21100..211FF */
+ FriBidiPropertyBlockLevel1_0100, /* 21200..212FF */
+ FriBidiPropertyBlockLevel1_0100, /* 21300..213FF */
+ FriBidiPropertyBlockLevel1_0100, /* 21400..214FF */
+ FriBidiPropertyBlockLevel1_0100, /* 21500..215FF */
+ FriBidiPropertyBlockLevel1_0100, /* 21600..216FF */
+ FriBidiPropertyBlockLevel1_0100, /* 21700..217FF */
+ FriBidiPropertyBlockLevel1_0100, /* 21800..218FF */
+ FriBidiPropertyBlockLevel1_0100, /* 21900..219FF */
+ FriBidiPropertyBlockLevel1_0100, /* 21A00..21AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 21B00..21BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 21C00..21CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 21D00..21DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 21E00..21EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 21F00..21FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 22000..220FF */
+ FriBidiPropertyBlockLevel1_0100, /* 22100..221FF */
+ FriBidiPropertyBlockLevel1_0100, /* 22200..222FF */
+ FriBidiPropertyBlockLevel1_0100, /* 22300..223FF */
+ FriBidiPropertyBlockLevel1_0100, /* 22400..224FF */
+ FriBidiPropertyBlockLevel1_0100, /* 22500..225FF */
+ FriBidiPropertyBlockLevel1_0100, /* 22600..226FF */
+ FriBidiPropertyBlockLevel1_0100, /* 22700..227FF */
+ FriBidiPropertyBlockLevel1_0100, /* 22800..228FF */
+ FriBidiPropertyBlockLevel1_0100, /* 22900..229FF */
+ FriBidiPropertyBlockLevel1_0100, /* 22A00..22AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 22B00..22BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 22C00..22CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 22D00..22DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 22E00..22EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 22F00..22FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 23000..230FF */
+ FriBidiPropertyBlockLevel1_0100, /* 23100..231FF */
+ FriBidiPropertyBlockLevel1_0100, /* 23200..232FF */
+ FriBidiPropertyBlockLevel1_0100, /* 23300..233FF */
+ FriBidiPropertyBlockLevel1_0100, /* 23400..234FF */
+ FriBidiPropertyBlockLevel1_0100, /* 23500..235FF */
+ FriBidiPropertyBlockLevel1_0100, /* 23600..236FF */
+ FriBidiPropertyBlockLevel1_0100, /* 23700..237FF */
+ FriBidiPropertyBlockLevel1_0100, /* 23800..238FF */
+ FriBidiPropertyBlockLevel1_0100, /* 23900..239FF */
+ FriBidiPropertyBlockLevel1_0100, /* 23A00..23AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 23B00..23BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 23C00..23CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 23D00..23DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 23E00..23EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 23F00..23FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 24000..240FF */
+ FriBidiPropertyBlockLevel1_0100, /* 24100..241FF */
+ FriBidiPropertyBlockLevel1_0100, /* 24200..242FF */
+ FriBidiPropertyBlockLevel1_0100, /* 24300..243FF */
+ FriBidiPropertyBlockLevel1_0100, /* 24400..244FF */
+ FriBidiPropertyBlockLevel1_0100, /* 24500..245FF */
+ FriBidiPropertyBlockLevel1_0100, /* 24600..246FF */
+ FriBidiPropertyBlockLevel1_0100, /* 24700..247FF */
+ FriBidiPropertyBlockLevel1_0100, /* 24800..248FF */
+ FriBidiPropertyBlockLevel1_0100, /* 24900..249FF */
+ FriBidiPropertyBlockLevel1_0100, /* 24A00..24AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 24B00..24BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 24C00..24CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 24D00..24DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 24E00..24EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 24F00..24FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 25000..250FF */
+ FriBidiPropertyBlockLevel1_0100, /* 25100..251FF */
+ FriBidiPropertyBlockLevel1_0100, /* 25200..252FF */
+ FriBidiPropertyBlockLevel1_0100, /* 25300..253FF */
+ FriBidiPropertyBlockLevel1_0100, /* 25400..254FF */
+ FriBidiPropertyBlockLevel1_0100, /* 25500..255FF */
+ FriBidiPropertyBlockLevel1_0100, /* 25600..256FF */
+ FriBidiPropertyBlockLevel1_0100, /* 25700..257FF */
+ FriBidiPropertyBlockLevel1_0100, /* 25800..258FF */
+ FriBidiPropertyBlockLevel1_0100, /* 25900..259FF */
+ FriBidiPropertyBlockLevel1_0100, /* 25A00..25AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 25B00..25BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 25C00..25CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 25D00..25DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 25E00..25EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 25F00..25FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 26000..260FF */
+ FriBidiPropertyBlockLevel1_0100, /* 26100..261FF */
+ FriBidiPropertyBlockLevel1_0100, /* 26200..262FF */
+ FriBidiPropertyBlockLevel1_0100, /* 26300..263FF */
+ FriBidiPropertyBlockLevel1_0100, /* 26400..264FF */
+ FriBidiPropertyBlockLevel1_0100, /* 26500..265FF */
+ FriBidiPropertyBlockLevel1_0100, /* 26600..266FF */
+ FriBidiPropertyBlockLevel1_0100, /* 26700..267FF */
+ FriBidiPropertyBlockLevel1_0100, /* 26800..268FF */
+ FriBidiPropertyBlockLevel1_0100, /* 26900..269FF */
+ FriBidiPropertyBlockLevel1_0100, /* 26A00..26AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 26B00..26BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 26C00..26CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 26D00..26DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 26E00..26EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 26F00..26FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 27000..270FF */
+ FriBidiPropertyBlockLevel1_0100, /* 27100..271FF */
+ FriBidiPropertyBlockLevel1_0100, /* 27200..272FF */
+ FriBidiPropertyBlockLevel1_0100, /* 27300..273FF */
+ FriBidiPropertyBlockLevel1_0100, /* 27400..274FF */
+ FriBidiPropertyBlockLevel1_0100, /* 27500..275FF */
+ FriBidiPropertyBlockLevel1_0100, /* 27600..276FF */
+ FriBidiPropertyBlockLevel1_0100, /* 27700..277FF */
+ FriBidiPropertyBlockLevel1_0100, /* 27800..278FF */
+ FriBidiPropertyBlockLevel1_0100, /* 27900..279FF */
+ FriBidiPropertyBlockLevel1_0100, /* 27A00..27AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 27B00..27BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 27C00..27CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 27D00..27DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 27E00..27EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 27F00..27FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 28000..280FF */
+ FriBidiPropertyBlockLevel1_0100, /* 28100..281FF */
+ FriBidiPropertyBlockLevel1_0100, /* 28200..282FF */
+ FriBidiPropertyBlockLevel1_0100, /* 28300..283FF */
+ FriBidiPropertyBlockLevel1_0100, /* 28400..284FF */
+ FriBidiPropertyBlockLevel1_0100, /* 28500..285FF */
+ FriBidiPropertyBlockLevel1_0100, /* 28600..286FF */
+ FriBidiPropertyBlockLevel1_0100, /* 28700..287FF */
+ FriBidiPropertyBlockLevel1_0100, /* 28800..288FF */
+ FriBidiPropertyBlockLevel1_0100, /* 28900..289FF */
+ FriBidiPropertyBlockLevel1_0100, /* 28A00..28AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 28B00..28BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 28C00..28CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 28D00..28DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 28E00..28EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 28F00..28FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 29000..290FF */
+ FriBidiPropertyBlockLevel1_0100, /* 29100..291FF */
+ FriBidiPropertyBlockLevel1_0100, /* 29200..292FF */
+ FriBidiPropertyBlockLevel1_0100, /* 29300..293FF */
+ FriBidiPropertyBlockLevel1_0100, /* 29400..294FF */
+ FriBidiPropertyBlockLevel1_0100, /* 29500..295FF */
+ FriBidiPropertyBlockLevel1_0100, /* 29600..296FF */
+ FriBidiPropertyBlockLevel1_0100, /* 29700..297FF */
+ FriBidiPropertyBlockLevel1_0100, /* 29800..298FF */
+ FriBidiPropertyBlockLevel1_0100, /* 29900..299FF */
+ FriBidiPropertyBlockLevel1_0100, /* 29A00..29AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 29B00..29BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 29C00..29CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 29D00..29DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 29E00..29EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 29F00..29FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2A000..2A0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2A100..2A1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2A200..2A2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2A300..2A3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2A400..2A4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2A500..2A5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2A600..2A6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2A700..2A7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2A800..2A8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2A900..2A9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2AA00..2AAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2AB00..2ABFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2AC00..2ACFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2AD00..2ADFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2AE00..2AEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2AF00..2AFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2B000..2B0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2B100..2B1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2B200..2B2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2B300..2B3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2B400..2B4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2B500..2B5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2B600..2B6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2B700..2B7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2B800..2B8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2B900..2B9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2BA00..2BAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2BB00..2BBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2BC00..2BCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2BD00..2BDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2BE00..2BEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2BF00..2BFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2C000..2C0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2C100..2C1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2C200..2C2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2C300..2C3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2C400..2C4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2C500..2C5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2C600..2C6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2C700..2C7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2C800..2C8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2C900..2C9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2CA00..2CAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2CB00..2CBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2CC00..2CCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2CD00..2CDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2CE00..2CEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2CF00..2CFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2D000..2D0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2D100..2D1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2D200..2D2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2D300..2D3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2D400..2D4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2D500..2D5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2D600..2D6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2D700..2D7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2D800..2D8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2D900..2D9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2DA00..2DAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2DB00..2DBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2DC00..2DCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2DD00..2DDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2DE00..2DEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2DF00..2DFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2E000..2E0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2E100..2E1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2E200..2E2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2E300..2E3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2E400..2E4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2E500..2E5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2E600..2E6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2E700..2E7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2E800..2E8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2E900..2E9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2EA00..2EAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2EB00..2EBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2EC00..2ECFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2ED00..2EDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2EE00..2EEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2EF00..2EFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2F000..2F0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2F100..2F1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2F200..2F2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2F300..2F3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2F400..2F4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2F500..2F5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2F600..2F6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2F700..2F7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2F800..2F8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2F900..2F9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 2FA00..2FAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2FB00..2FBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2FC00..2FCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2FD00..2FDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2FE00..2FEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 2FF00..2FFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 30000..300FF */
+ FriBidiPropertyBlockLevel1_0100, /* 30100..301FF */
+ FriBidiPropertyBlockLevel1_0100, /* 30200..302FF */
+ FriBidiPropertyBlockLevel1_0100, /* 30300..303FF */
+ FriBidiPropertyBlockLevel1_0100, /* 30400..304FF */
+ FriBidiPropertyBlockLevel1_0100, /* 30500..305FF */
+ FriBidiPropertyBlockLevel1_0100, /* 30600..306FF */
+ FriBidiPropertyBlockLevel1_0100, /* 30700..307FF */
+ FriBidiPropertyBlockLevel1_0100, /* 30800..308FF */
+ FriBidiPropertyBlockLevel1_0100, /* 30900..309FF */
+ FriBidiPropertyBlockLevel1_0100, /* 30A00..30AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 30B00..30BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 30C00..30CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 30D00..30DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 30E00..30EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 30F00..30FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 31000..310FF */
+ FriBidiPropertyBlockLevel1_0100, /* 31100..311FF */
+ FriBidiPropertyBlockLevel1_0100, /* 31200..312FF */
+ FriBidiPropertyBlockLevel1_0100, /* 31300..313FF */
+ FriBidiPropertyBlockLevel1_0100, /* 31400..314FF */
+ FriBidiPropertyBlockLevel1_0100, /* 31500..315FF */
+ FriBidiPropertyBlockLevel1_0100, /* 31600..316FF */
+ FriBidiPropertyBlockLevel1_0100, /* 31700..317FF */
+ FriBidiPropertyBlockLevel1_0100, /* 31800..318FF */
+ FriBidiPropertyBlockLevel1_0100, /* 31900..319FF */
+ FriBidiPropertyBlockLevel1_0100, /* 31A00..31AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 31B00..31BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 31C00..31CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 31D00..31DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 31E00..31EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 31F00..31FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 32000..320FF */
+ FriBidiPropertyBlockLevel1_0100, /* 32100..321FF */
+ FriBidiPropertyBlockLevel1_0100, /* 32200..322FF */
+ FriBidiPropertyBlockLevel1_0100, /* 32300..323FF */
+ FriBidiPropertyBlockLevel1_0100, /* 32400..324FF */
+ FriBidiPropertyBlockLevel1_0100, /* 32500..325FF */
+ FriBidiPropertyBlockLevel1_0100, /* 32600..326FF */
+ FriBidiPropertyBlockLevel1_0100, /* 32700..327FF */
+ FriBidiPropertyBlockLevel1_0100, /* 32800..328FF */
+ FriBidiPropertyBlockLevel1_0100, /* 32900..329FF */
+ FriBidiPropertyBlockLevel1_0100, /* 32A00..32AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 32B00..32BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 32C00..32CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 32D00..32DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 32E00..32EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 32F00..32FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 33000..330FF */
+ FriBidiPropertyBlockLevel1_0100, /* 33100..331FF */
+ FriBidiPropertyBlockLevel1_0100, /* 33200..332FF */
+ FriBidiPropertyBlockLevel1_0100, /* 33300..333FF */
+ FriBidiPropertyBlockLevel1_0100, /* 33400..334FF */
+ FriBidiPropertyBlockLevel1_0100, /* 33500..335FF */
+ FriBidiPropertyBlockLevel1_0100, /* 33600..336FF */
+ FriBidiPropertyBlockLevel1_0100, /* 33700..337FF */
+ FriBidiPropertyBlockLevel1_0100, /* 33800..338FF */
+ FriBidiPropertyBlockLevel1_0100, /* 33900..339FF */
+ FriBidiPropertyBlockLevel1_0100, /* 33A00..33AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 33B00..33BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 33C00..33CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 33D00..33DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 33E00..33EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 33F00..33FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 34000..340FF */
+ FriBidiPropertyBlockLevel1_0100, /* 34100..341FF */
+ FriBidiPropertyBlockLevel1_0100, /* 34200..342FF */
+ FriBidiPropertyBlockLevel1_0100, /* 34300..343FF */
+ FriBidiPropertyBlockLevel1_0100, /* 34400..344FF */
+ FriBidiPropertyBlockLevel1_0100, /* 34500..345FF */
+ FriBidiPropertyBlockLevel1_0100, /* 34600..346FF */
+ FriBidiPropertyBlockLevel1_0100, /* 34700..347FF */
+ FriBidiPropertyBlockLevel1_0100, /* 34800..348FF */
+ FriBidiPropertyBlockLevel1_0100, /* 34900..349FF */
+ FriBidiPropertyBlockLevel1_0100, /* 34A00..34AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 34B00..34BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 34C00..34CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 34D00..34DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 34E00..34EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 34F00..34FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 35000..350FF */
+ FriBidiPropertyBlockLevel1_0100, /* 35100..351FF */
+ FriBidiPropertyBlockLevel1_0100, /* 35200..352FF */
+ FriBidiPropertyBlockLevel1_0100, /* 35300..353FF */
+ FriBidiPropertyBlockLevel1_0100, /* 35400..354FF */
+ FriBidiPropertyBlockLevel1_0100, /* 35500..355FF */
+ FriBidiPropertyBlockLevel1_0100, /* 35600..356FF */
+ FriBidiPropertyBlockLevel1_0100, /* 35700..357FF */
+ FriBidiPropertyBlockLevel1_0100, /* 35800..358FF */
+ FriBidiPropertyBlockLevel1_0100, /* 35900..359FF */
+ FriBidiPropertyBlockLevel1_0100, /* 35A00..35AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 35B00..35BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 35C00..35CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 35D00..35DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 35E00..35EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 35F00..35FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 36000..360FF */
+ FriBidiPropertyBlockLevel1_0100, /* 36100..361FF */
+ FriBidiPropertyBlockLevel1_0100, /* 36200..362FF */
+ FriBidiPropertyBlockLevel1_0100, /* 36300..363FF */
+ FriBidiPropertyBlockLevel1_0100, /* 36400..364FF */
+ FriBidiPropertyBlockLevel1_0100, /* 36500..365FF */
+ FriBidiPropertyBlockLevel1_0100, /* 36600..366FF */
+ FriBidiPropertyBlockLevel1_0100, /* 36700..367FF */
+ FriBidiPropertyBlockLevel1_0100, /* 36800..368FF */
+ FriBidiPropertyBlockLevel1_0100, /* 36900..369FF */
+ FriBidiPropertyBlockLevel1_0100, /* 36A00..36AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 36B00..36BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 36C00..36CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 36D00..36DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 36E00..36EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 36F00..36FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 37000..370FF */
+ FriBidiPropertyBlockLevel1_0100, /* 37100..371FF */
+ FriBidiPropertyBlockLevel1_0100, /* 37200..372FF */
+ FriBidiPropertyBlockLevel1_0100, /* 37300..373FF */
+ FriBidiPropertyBlockLevel1_0100, /* 37400..374FF */
+ FriBidiPropertyBlockLevel1_0100, /* 37500..375FF */
+ FriBidiPropertyBlockLevel1_0100, /* 37600..376FF */
+ FriBidiPropertyBlockLevel1_0100, /* 37700..377FF */
+ FriBidiPropertyBlockLevel1_0100, /* 37800..378FF */
+ FriBidiPropertyBlockLevel1_0100, /* 37900..379FF */
+ FriBidiPropertyBlockLevel1_0100, /* 37A00..37AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 37B00..37BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 37C00..37CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 37D00..37DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 37E00..37EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 37F00..37FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 38000..380FF */
+ FriBidiPropertyBlockLevel1_0100, /* 38100..381FF */
+ FriBidiPropertyBlockLevel1_0100, /* 38200..382FF */
+ FriBidiPropertyBlockLevel1_0100, /* 38300..383FF */
+ FriBidiPropertyBlockLevel1_0100, /* 38400..384FF */
+ FriBidiPropertyBlockLevel1_0100, /* 38500..385FF */
+ FriBidiPropertyBlockLevel1_0100, /* 38600..386FF */
+ FriBidiPropertyBlockLevel1_0100, /* 38700..387FF */
+ FriBidiPropertyBlockLevel1_0100, /* 38800..388FF */
+ FriBidiPropertyBlockLevel1_0100, /* 38900..389FF */
+ FriBidiPropertyBlockLevel1_0100, /* 38A00..38AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 38B00..38BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 38C00..38CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 38D00..38DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 38E00..38EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 38F00..38FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 39000..390FF */
+ FriBidiPropertyBlockLevel1_0100, /* 39100..391FF */
+ FriBidiPropertyBlockLevel1_0100, /* 39200..392FF */
+ FriBidiPropertyBlockLevel1_0100, /* 39300..393FF */
+ FriBidiPropertyBlockLevel1_0100, /* 39400..394FF */
+ FriBidiPropertyBlockLevel1_0100, /* 39500..395FF */
+ FriBidiPropertyBlockLevel1_0100, /* 39600..396FF */
+ FriBidiPropertyBlockLevel1_0100, /* 39700..397FF */
+ FriBidiPropertyBlockLevel1_0100, /* 39800..398FF */
+ FriBidiPropertyBlockLevel1_0100, /* 39900..399FF */
+ FriBidiPropertyBlockLevel1_0100, /* 39A00..39AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 39B00..39BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 39C00..39CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 39D00..39DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 39E00..39EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 39F00..39FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3A000..3A0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3A100..3A1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3A200..3A2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3A300..3A3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3A400..3A4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3A500..3A5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3A600..3A6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3A700..3A7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3A800..3A8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3A900..3A9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3AA00..3AAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3AB00..3ABFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3AC00..3ACFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3AD00..3ADFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3AE00..3AEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3AF00..3AFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3B000..3B0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3B100..3B1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3B200..3B2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3B300..3B3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3B400..3B4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3B500..3B5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3B600..3B6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3B700..3B7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3B800..3B8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3B900..3B9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3BA00..3BAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3BB00..3BBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3BC00..3BCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3BD00..3BDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3BE00..3BEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3BF00..3BFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3C000..3C0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3C100..3C1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3C200..3C2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3C300..3C3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3C400..3C4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3C500..3C5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3C600..3C6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3C700..3C7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3C800..3C8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3C900..3C9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3CA00..3CAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3CB00..3CBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3CC00..3CCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3CD00..3CDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3CE00..3CEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3CF00..3CFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3D000..3D0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3D100..3D1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3D200..3D2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3D300..3D3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3D400..3D4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3D500..3D5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3D600..3D6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3D700..3D7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3D800..3D8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3D900..3D9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3DA00..3DAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3DB00..3DBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3DC00..3DCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3DD00..3DDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3DE00..3DEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3DF00..3DFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3E000..3E0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3E100..3E1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3E200..3E2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3E300..3E3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3E400..3E4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3E500..3E5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3E600..3E6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3E700..3E7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3E800..3E8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3E900..3E9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3EA00..3EAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3EB00..3EBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3EC00..3ECFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3ED00..3EDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3EE00..3EEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3EF00..3EFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3F000..3F0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3F100..3F1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3F200..3F2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3F300..3F3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3F400..3F4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3F500..3F5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3F600..3F6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3F700..3F7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3F800..3F8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3F900..3F9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 3FA00..3FAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3FB00..3FBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3FC00..3FCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3FD00..3FDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3FE00..3FEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 3FF00..3FFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 40000..400FF */
+ FriBidiPropertyBlockLevel1_0100, /* 40100..401FF */
+ FriBidiPropertyBlockLevel1_0100, /* 40200..402FF */
+ FriBidiPropertyBlockLevel1_0100, /* 40300..403FF */
+ FriBidiPropertyBlockLevel1_0100, /* 40400..404FF */
+ FriBidiPropertyBlockLevel1_0100, /* 40500..405FF */
+ FriBidiPropertyBlockLevel1_0100, /* 40600..406FF */
+ FriBidiPropertyBlockLevel1_0100, /* 40700..407FF */
+ FriBidiPropertyBlockLevel1_0100, /* 40800..408FF */
+ FriBidiPropertyBlockLevel1_0100, /* 40900..409FF */
+ FriBidiPropertyBlockLevel1_0100, /* 40A00..40AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 40B00..40BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 40C00..40CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 40D00..40DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 40E00..40EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 40F00..40FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 41000..410FF */
+ FriBidiPropertyBlockLevel1_0100, /* 41100..411FF */
+ FriBidiPropertyBlockLevel1_0100, /* 41200..412FF */
+ FriBidiPropertyBlockLevel1_0100, /* 41300..413FF */
+ FriBidiPropertyBlockLevel1_0100, /* 41400..414FF */
+ FriBidiPropertyBlockLevel1_0100, /* 41500..415FF */
+ FriBidiPropertyBlockLevel1_0100, /* 41600..416FF */
+ FriBidiPropertyBlockLevel1_0100, /* 41700..417FF */
+ FriBidiPropertyBlockLevel1_0100, /* 41800..418FF */
+ FriBidiPropertyBlockLevel1_0100, /* 41900..419FF */
+ FriBidiPropertyBlockLevel1_0100, /* 41A00..41AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 41B00..41BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 41C00..41CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 41D00..41DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 41E00..41EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 41F00..41FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 42000..420FF */
+ FriBidiPropertyBlockLevel1_0100, /* 42100..421FF */
+ FriBidiPropertyBlockLevel1_0100, /* 42200..422FF */
+ FriBidiPropertyBlockLevel1_0100, /* 42300..423FF */
+ FriBidiPropertyBlockLevel1_0100, /* 42400..424FF */
+ FriBidiPropertyBlockLevel1_0100, /* 42500..425FF */
+ FriBidiPropertyBlockLevel1_0100, /* 42600..426FF */
+ FriBidiPropertyBlockLevel1_0100, /* 42700..427FF */
+ FriBidiPropertyBlockLevel1_0100, /* 42800..428FF */
+ FriBidiPropertyBlockLevel1_0100, /* 42900..429FF */
+ FriBidiPropertyBlockLevel1_0100, /* 42A00..42AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 42B00..42BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 42C00..42CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 42D00..42DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 42E00..42EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 42F00..42FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 43000..430FF */
+ FriBidiPropertyBlockLevel1_0100, /* 43100..431FF */
+ FriBidiPropertyBlockLevel1_0100, /* 43200..432FF */
+ FriBidiPropertyBlockLevel1_0100, /* 43300..433FF */
+ FriBidiPropertyBlockLevel1_0100, /* 43400..434FF */
+ FriBidiPropertyBlockLevel1_0100, /* 43500..435FF */
+ FriBidiPropertyBlockLevel1_0100, /* 43600..436FF */
+ FriBidiPropertyBlockLevel1_0100, /* 43700..437FF */
+ FriBidiPropertyBlockLevel1_0100, /* 43800..438FF */
+ FriBidiPropertyBlockLevel1_0100, /* 43900..439FF */
+ FriBidiPropertyBlockLevel1_0100, /* 43A00..43AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 43B00..43BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 43C00..43CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 43D00..43DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 43E00..43EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 43F00..43FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 44000..440FF */
+ FriBidiPropertyBlockLevel1_0100, /* 44100..441FF */
+ FriBidiPropertyBlockLevel1_0100, /* 44200..442FF */
+ FriBidiPropertyBlockLevel1_0100, /* 44300..443FF */
+ FriBidiPropertyBlockLevel1_0100, /* 44400..444FF */
+ FriBidiPropertyBlockLevel1_0100, /* 44500..445FF */
+ FriBidiPropertyBlockLevel1_0100, /* 44600..446FF */
+ FriBidiPropertyBlockLevel1_0100, /* 44700..447FF */
+ FriBidiPropertyBlockLevel1_0100, /* 44800..448FF */
+ FriBidiPropertyBlockLevel1_0100, /* 44900..449FF */
+ FriBidiPropertyBlockLevel1_0100, /* 44A00..44AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 44B00..44BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 44C00..44CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 44D00..44DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 44E00..44EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 44F00..44FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 45000..450FF */
+ FriBidiPropertyBlockLevel1_0100, /* 45100..451FF */
+ FriBidiPropertyBlockLevel1_0100, /* 45200..452FF */
+ FriBidiPropertyBlockLevel1_0100, /* 45300..453FF */
+ FriBidiPropertyBlockLevel1_0100, /* 45400..454FF */
+ FriBidiPropertyBlockLevel1_0100, /* 45500..455FF */
+ FriBidiPropertyBlockLevel1_0100, /* 45600..456FF */
+ FriBidiPropertyBlockLevel1_0100, /* 45700..457FF */
+ FriBidiPropertyBlockLevel1_0100, /* 45800..458FF */
+ FriBidiPropertyBlockLevel1_0100, /* 45900..459FF */
+ FriBidiPropertyBlockLevel1_0100, /* 45A00..45AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 45B00..45BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 45C00..45CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 45D00..45DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 45E00..45EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 45F00..45FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 46000..460FF */
+ FriBidiPropertyBlockLevel1_0100, /* 46100..461FF */
+ FriBidiPropertyBlockLevel1_0100, /* 46200..462FF */
+ FriBidiPropertyBlockLevel1_0100, /* 46300..463FF */
+ FriBidiPropertyBlockLevel1_0100, /* 46400..464FF */
+ FriBidiPropertyBlockLevel1_0100, /* 46500..465FF */
+ FriBidiPropertyBlockLevel1_0100, /* 46600..466FF */
+ FriBidiPropertyBlockLevel1_0100, /* 46700..467FF */
+ FriBidiPropertyBlockLevel1_0100, /* 46800..468FF */
+ FriBidiPropertyBlockLevel1_0100, /* 46900..469FF */
+ FriBidiPropertyBlockLevel1_0100, /* 46A00..46AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 46B00..46BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 46C00..46CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 46D00..46DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 46E00..46EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 46F00..46FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 47000..470FF */
+ FriBidiPropertyBlockLevel1_0100, /* 47100..471FF */
+ FriBidiPropertyBlockLevel1_0100, /* 47200..472FF */
+ FriBidiPropertyBlockLevel1_0100, /* 47300..473FF */
+ FriBidiPropertyBlockLevel1_0100, /* 47400..474FF */
+ FriBidiPropertyBlockLevel1_0100, /* 47500..475FF */
+ FriBidiPropertyBlockLevel1_0100, /* 47600..476FF */
+ FriBidiPropertyBlockLevel1_0100, /* 47700..477FF */
+ FriBidiPropertyBlockLevel1_0100, /* 47800..478FF */
+ FriBidiPropertyBlockLevel1_0100, /* 47900..479FF */
+ FriBidiPropertyBlockLevel1_0100, /* 47A00..47AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 47B00..47BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 47C00..47CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 47D00..47DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 47E00..47EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 47F00..47FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 48000..480FF */
+ FriBidiPropertyBlockLevel1_0100, /* 48100..481FF */
+ FriBidiPropertyBlockLevel1_0100, /* 48200..482FF */
+ FriBidiPropertyBlockLevel1_0100, /* 48300..483FF */
+ FriBidiPropertyBlockLevel1_0100, /* 48400..484FF */
+ FriBidiPropertyBlockLevel1_0100, /* 48500..485FF */
+ FriBidiPropertyBlockLevel1_0100, /* 48600..486FF */
+ FriBidiPropertyBlockLevel1_0100, /* 48700..487FF */
+ FriBidiPropertyBlockLevel1_0100, /* 48800..488FF */
+ FriBidiPropertyBlockLevel1_0100, /* 48900..489FF */
+ FriBidiPropertyBlockLevel1_0100, /* 48A00..48AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 48B00..48BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 48C00..48CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 48D00..48DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 48E00..48EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 48F00..48FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 49000..490FF */
+ FriBidiPropertyBlockLevel1_0100, /* 49100..491FF */
+ FriBidiPropertyBlockLevel1_0100, /* 49200..492FF */
+ FriBidiPropertyBlockLevel1_0100, /* 49300..493FF */
+ FriBidiPropertyBlockLevel1_0100, /* 49400..494FF */
+ FriBidiPropertyBlockLevel1_0100, /* 49500..495FF */
+ FriBidiPropertyBlockLevel1_0100, /* 49600..496FF */
+ FriBidiPropertyBlockLevel1_0100, /* 49700..497FF */
+ FriBidiPropertyBlockLevel1_0100, /* 49800..498FF */
+ FriBidiPropertyBlockLevel1_0100, /* 49900..499FF */
+ FriBidiPropertyBlockLevel1_0100, /* 49A00..49AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 49B00..49BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 49C00..49CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 49D00..49DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 49E00..49EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 49F00..49FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4A000..4A0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4A100..4A1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4A200..4A2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4A300..4A3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4A400..4A4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4A500..4A5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4A600..4A6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4A700..4A7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4A800..4A8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4A900..4A9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4AA00..4AAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4AB00..4ABFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4AC00..4ACFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4AD00..4ADFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4AE00..4AEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4AF00..4AFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4B000..4B0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4B100..4B1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4B200..4B2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4B300..4B3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4B400..4B4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4B500..4B5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4B600..4B6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4B700..4B7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4B800..4B8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4B900..4B9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4BA00..4BAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4BB00..4BBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4BC00..4BCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4BD00..4BDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4BE00..4BEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4BF00..4BFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4C000..4C0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4C100..4C1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4C200..4C2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4C300..4C3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4C400..4C4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4C500..4C5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4C600..4C6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4C700..4C7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4C800..4C8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4C900..4C9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4CA00..4CAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4CB00..4CBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4CC00..4CCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4CD00..4CDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4CE00..4CEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4CF00..4CFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4D000..4D0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4D100..4D1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4D200..4D2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4D300..4D3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4D400..4D4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4D500..4D5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4D600..4D6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4D700..4D7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4D800..4D8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4D900..4D9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4DA00..4DAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4DB00..4DBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4DC00..4DCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4DD00..4DDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4DE00..4DEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4DF00..4DFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4E000..4E0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4E100..4E1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4E200..4E2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4E300..4E3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4E400..4E4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4E500..4E5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4E600..4E6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4E700..4E7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4E800..4E8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4E900..4E9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4EA00..4EAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4EB00..4EBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4EC00..4ECFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4ED00..4EDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4EE00..4EEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4EF00..4EFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4F000..4F0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4F100..4F1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4F200..4F2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4F300..4F3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4F400..4F4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4F500..4F5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4F600..4F6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4F700..4F7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4F800..4F8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4F900..4F9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 4FA00..4FAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4FB00..4FBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4FC00..4FCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4FD00..4FDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4FE00..4FEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 4FF00..4FFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 50000..500FF */
+ FriBidiPropertyBlockLevel1_0100, /* 50100..501FF */
+ FriBidiPropertyBlockLevel1_0100, /* 50200..502FF */
+ FriBidiPropertyBlockLevel1_0100, /* 50300..503FF */
+ FriBidiPropertyBlockLevel1_0100, /* 50400..504FF */
+ FriBidiPropertyBlockLevel1_0100, /* 50500..505FF */
+ FriBidiPropertyBlockLevel1_0100, /* 50600..506FF */
+ FriBidiPropertyBlockLevel1_0100, /* 50700..507FF */
+ FriBidiPropertyBlockLevel1_0100, /* 50800..508FF */
+ FriBidiPropertyBlockLevel1_0100, /* 50900..509FF */
+ FriBidiPropertyBlockLevel1_0100, /* 50A00..50AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 50B00..50BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 50C00..50CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 50D00..50DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 50E00..50EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 50F00..50FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 51000..510FF */
+ FriBidiPropertyBlockLevel1_0100, /* 51100..511FF */
+ FriBidiPropertyBlockLevel1_0100, /* 51200..512FF */
+ FriBidiPropertyBlockLevel1_0100, /* 51300..513FF */
+ FriBidiPropertyBlockLevel1_0100, /* 51400..514FF */
+ FriBidiPropertyBlockLevel1_0100, /* 51500..515FF */
+ FriBidiPropertyBlockLevel1_0100, /* 51600..516FF */
+ FriBidiPropertyBlockLevel1_0100, /* 51700..517FF */
+ FriBidiPropertyBlockLevel1_0100, /* 51800..518FF */
+ FriBidiPropertyBlockLevel1_0100, /* 51900..519FF */
+ FriBidiPropertyBlockLevel1_0100, /* 51A00..51AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 51B00..51BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 51C00..51CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 51D00..51DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 51E00..51EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 51F00..51FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 52000..520FF */
+ FriBidiPropertyBlockLevel1_0100, /* 52100..521FF */
+ FriBidiPropertyBlockLevel1_0100, /* 52200..522FF */
+ FriBidiPropertyBlockLevel1_0100, /* 52300..523FF */
+ FriBidiPropertyBlockLevel1_0100, /* 52400..524FF */
+ FriBidiPropertyBlockLevel1_0100, /* 52500..525FF */
+ FriBidiPropertyBlockLevel1_0100, /* 52600..526FF */
+ FriBidiPropertyBlockLevel1_0100, /* 52700..527FF */
+ FriBidiPropertyBlockLevel1_0100, /* 52800..528FF */
+ FriBidiPropertyBlockLevel1_0100, /* 52900..529FF */
+ FriBidiPropertyBlockLevel1_0100, /* 52A00..52AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 52B00..52BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 52C00..52CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 52D00..52DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 52E00..52EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 52F00..52FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 53000..530FF */
+ FriBidiPropertyBlockLevel1_0100, /* 53100..531FF */
+ FriBidiPropertyBlockLevel1_0100, /* 53200..532FF */
+ FriBidiPropertyBlockLevel1_0100, /* 53300..533FF */
+ FriBidiPropertyBlockLevel1_0100, /* 53400..534FF */
+ FriBidiPropertyBlockLevel1_0100, /* 53500..535FF */
+ FriBidiPropertyBlockLevel1_0100, /* 53600..536FF */
+ FriBidiPropertyBlockLevel1_0100, /* 53700..537FF */
+ FriBidiPropertyBlockLevel1_0100, /* 53800..538FF */
+ FriBidiPropertyBlockLevel1_0100, /* 53900..539FF */
+ FriBidiPropertyBlockLevel1_0100, /* 53A00..53AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 53B00..53BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 53C00..53CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 53D00..53DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 53E00..53EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 53F00..53FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 54000..540FF */
+ FriBidiPropertyBlockLevel1_0100, /* 54100..541FF */
+ FriBidiPropertyBlockLevel1_0100, /* 54200..542FF */
+ FriBidiPropertyBlockLevel1_0100, /* 54300..543FF */
+ FriBidiPropertyBlockLevel1_0100, /* 54400..544FF */
+ FriBidiPropertyBlockLevel1_0100, /* 54500..545FF */
+ FriBidiPropertyBlockLevel1_0100, /* 54600..546FF */
+ FriBidiPropertyBlockLevel1_0100, /* 54700..547FF */
+ FriBidiPropertyBlockLevel1_0100, /* 54800..548FF */
+ FriBidiPropertyBlockLevel1_0100, /* 54900..549FF */
+ FriBidiPropertyBlockLevel1_0100, /* 54A00..54AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 54B00..54BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 54C00..54CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 54D00..54DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 54E00..54EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 54F00..54FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 55000..550FF */
+ FriBidiPropertyBlockLevel1_0100, /* 55100..551FF */
+ FriBidiPropertyBlockLevel1_0100, /* 55200..552FF */
+ FriBidiPropertyBlockLevel1_0100, /* 55300..553FF */
+ FriBidiPropertyBlockLevel1_0100, /* 55400..554FF */
+ FriBidiPropertyBlockLevel1_0100, /* 55500..555FF */
+ FriBidiPropertyBlockLevel1_0100, /* 55600..556FF */
+ FriBidiPropertyBlockLevel1_0100, /* 55700..557FF */
+ FriBidiPropertyBlockLevel1_0100, /* 55800..558FF */
+ FriBidiPropertyBlockLevel1_0100, /* 55900..559FF */
+ FriBidiPropertyBlockLevel1_0100, /* 55A00..55AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 55B00..55BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 55C00..55CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 55D00..55DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 55E00..55EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 55F00..55FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 56000..560FF */
+ FriBidiPropertyBlockLevel1_0100, /* 56100..561FF */
+ FriBidiPropertyBlockLevel1_0100, /* 56200..562FF */
+ FriBidiPropertyBlockLevel1_0100, /* 56300..563FF */
+ FriBidiPropertyBlockLevel1_0100, /* 56400..564FF */
+ FriBidiPropertyBlockLevel1_0100, /* 56500..565FF */
+ FriBidiPropertyBlockLevel1_0100, /* 56600..566FF */
+ FriBidiPropertyBlockLevel1_0100, /* 56700..567FF */
+ FriBidiPropertyBlockLevel1_0100, /* 56800..568FF */
+ FriBidiPropertyBlockLevel1_0100, /* 56900..569FF */
+ FriBidiPropertyBlockLevel1_0100, /* 56A00..56AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 56B00..56BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 56C00..56CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 56D00..56DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 56E00..56EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 56F00..56FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 57000..570FF */
+ FriBidiPropertyBlockLevel1_0100, /* 57100..571FF */
+ FriBidiPropertyBlockLevel1_0100, /* 57200..572FF */
+ FriBidiPropertyBlockLevel1_0100, /* 57300..573FF */
+ FriBidiPropertyBlockLevel1_0100, /* 57400..574FF */
+ FriBidiPropertyBlockLevel1_0100, /* 57500..575FF */
+ FriBidiPropertyBlockLevel1_0100, /* 57600..576FF */
+ FriBidiPropertyBlockLevel1_0100, /* 57700..577FF */
+ FriBidiPropertyBlockLevel1_0100, /* 57800..578FF */
+ FriBidiPropertyBlockLevel1_0100, /* 57900..579FF */
+ FriBidiPropertyBlockLevel1_0100, /* 57A00..57AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 57B00..57BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 57C00..57CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 57D00..57DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 57E00..57EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 57F00..57FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 58000..580FF */
+ FriBidiPropertyBlockLevel1_0100, /* 58100..581FF */
+ FriBidiPropertyBlockLevel1_0100, /* 58200..582FF */
+ FriBidiPropertyBlockLevel1_0100, /* 58300..583FF */
+ FriBidiPropertyBlockLevel1_0100, /* 58400..584FF */
+ FriBidiPropertyBlockLevel1_0100, /* 58500..585FF */
+ FriBidiPropertyBlockLevel1_0100, /* 58600..586FF */
+ FriBidiPropertyBlockLevel1_0100, /* 58700..587FF */
+ FriBidiPropertyBlockLevel1_0100, /* 58800..588FF */
+ FriBidiPropertyBlockLevel1_0100, /* 58900..589FF */
+ FriBidiPropertyBlockLevel1_0100, /* 58A00..58AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 58B00..58BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 58C00..58CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 58D00..58DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 58E00..58EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 58F00..58FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 59000..590FF */
+ FriBidiPropertyBlockLevel1_0100, /* 59100..591FF */
+ FriBidiPropertyBlockLevel1_0100, /* 59200..592FF */
+ FriBidiPropertyBlockLevel1_0100, /* 59300..593FF */
+ FriBidiPropertyBlockLevel1_0100, /* 59400..594FF */
+ FriBidiPropertyBlockLevel1_0100, /* 59500..595FF */
+ FriBidiPropertyBlockLevel1_0100, /* 59600..596FF */
+ FriBidiPropertyBlockLevel1_0100, /* 59700..597FF */
+ FriBidiPropertyBlockLevel1_0100, /* 59800..598FF */
+ FriBidiPropertyBlockLevel1_0100, /* 59900..599FF */
+ FriBidiPropertyBlockLevel1_0100, /* 59A00..59AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 59B00..59BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 59C00..59CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 59D00..59DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 59E00..59EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 59F00..59FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5A000..5A0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5A100..5A1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5A200..5A2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5A300..5A3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5A400..5A4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5A500..5A5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5A600..5A6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5A700..5A7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5A800..5A8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5A900..5A9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5AA00..5AAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5AB00..5ABFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5AC00..5ACFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5AD00..5ADFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5AE00..5AEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5AF00..5AFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5B000..5B0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5B100..5B1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5B200..5B2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5B300..5B3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5B400..5B4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5B500..5B5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5B600..5B6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5B700..5B7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5B800..5B8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5B900..5B9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5BA00..5BAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5BB00..5BBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5BC00..5BCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5BD00..5BDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5BE00..5BEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5BF00..5BFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5C000..5C0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5C100..5C1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5C200..5C2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5C300..5C3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5C400..5C4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5C500..5C5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5C600..5C6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5C700..5C7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5C800..5C8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5C900..5C9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5CA00..5CAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5CB00..5CBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5CC00..5CCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5CD00..5CDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5CE00..5CEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5CF00..5CFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5D000..5D0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5D100..5D1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5D200..5D2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5D300..5D3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5D400..5D4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5D500..5D5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5D600..5D6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5D700..5D7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5D800..5D8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5D900..5D9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5DA00..5DAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5DB00..5DBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5DC00..5DCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5DD00..5DDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5DE00..5DEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5DF00..5DFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5E000..5E0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5E100..5E1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5E200..5E2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5E300..5E3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5E400..5E4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5E500..5E5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5E600..5E6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5E700..5E7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5E800..5E8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5E900..5E9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5EA00..5EAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5EB00..5EBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5EC00..5ECFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5ED00..5EDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5EE00..5EEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5EF00..5EFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5F000..5F0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5F100..5F1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5F200..5F2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5F300..5F3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5F400..5F4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5F500..5F5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5F600..5F6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5F700..5F7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5F800..5F8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5F900..5F9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 5FA00..5FAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5FB00..5FBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5FC00..5FCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5FD00..5FDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5FE00..5FEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 5FF00..5FFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 60000..600FF */
+ FriBidiPropertyBlockLevel1_0100, /* 60100..601FF */
+ FriBidiPropertyBlockLevel1_0100, /* 60200..602FF */
+ FriBidiPropertyBlockLevel1_0100, /* 60300..603FF */
+ FriBidiPropertyBlockLevel1_0100, /* 60400..604FF */
+ FriBidiPropertyBlockLevel1_0100, /* 60500..605FF */
+ FriBidiPropertyBlockLevel1_0100, /* 60600..606FF */
+ FriBidiPropertyBlockLevel1_0100, /* 60700..607FF */
+ FriBidiPropertyBlockLevel1_0100, /* 60800..608FF */
+ FriBidiPropertyBlockLevel1_0100, /* 60900..609FF */
+ FriBidiPropertyBlockLevel1_0100, /* 60A00..60AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 60B00..60BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 60C00..60CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 60D00..60DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 60E00..60EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 60F00..60FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 61000..610FF */
+ FriBidiPropertyBlockLevel1_0100, /* 61100..611FF */
+ FriBidiPropertyBlockLevel1_0100, /* 61200..612FF */
+ FriBidiPropertyBlockLevel1_0100, /* 61300..613FF */
+ FriBidiPropertyBlockLevel1_0100, /* 61400..614FF */
+ FriBidiPropertyBlockLevel1_0100, /* 61500..615FF */
+ FriBidiPropertyBlockLevel1_0100, /* 61600..616FF */
+ FriBidiPropertyBlockLevel1_0100, /* 61700..617FF */
+ FriBidiPropertyBlockLevel1_0100, /* 61800..618FF */
+ FriBidiPropertyBlockLevel1_0100, /* 61900..619FF */
+ FriBidiPropertyBlockLevel1_0100, /* 61A00..61AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 61B00..61BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 61C00..61CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 61D00..61DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 61E00..61EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 61F00..61FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 62000..620FF */
+ FriBidiPropertyBlockLevel1_0100, /* 62100..621FF */
+ FriBidiPropertyBlockLevel1_0100, /* 62200..622FF */
+ FriBidiPropertyBlockLevel1_0100, /* 62300..623FF */
+ FriBidiPropertyBlockLevel1_0100, /* 62400..624FF */
+ FriBidiPropertyBlockLevel1_0100, /* 62500..625FF */
+ FriBidiPropertyBlockLevel1_0100, /* 62600..626FF */
+ FriBidiPropertyBlockLevel1_0100, /* 62700..627FF */
+ FriBidiPropertyBlockLevel1_0100, /* 62800..628FF */
+ FriBidiPropertyBlockLevel1_0100, /* 62900..629FF */
+ FriBidiPropertyBlockLevel1_0100, /* 62A00..62AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 62B00..62BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 62C00..62CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 62D00..62DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 62E00..62EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 62F00..62FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 63000..630FF */
+ FriBidiPropertyBlockLevel1_0100, /* 63100..631FF */
+ FriBidiPropertyBlockLevel1_0100, /* 63200..632FF */
+ FriBidiPropertyBlockLevel1_0100, /* 63300..633FF */
+ FriBidiPropertyBlockLevel1_0100, /* 63400..634FF */
+ FriBidiPropertyBlockLevel1_0100, /* 63500..635FF */
+ FriBidiPropertyBlockLevel1_0100, /* 63600..636FF */
+ FriBidiPropertyBlockLevel1_0100, /* 63700..637FF */
+ FriBidiPropertyBlockLevel1_0100, /* 63800..638FF */
+ FriBidiPropertyBlockLevel1_0100, /* 63900..639FF */
+ FriBidiPropertyBlockLevel1_0100, /* 63A00..63AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 63B00..63BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 63C00..63CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 63D00..63DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 63E00..63EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 63F00..63FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 64000..640FF */
+ FriBidiPropertyBlockLevel1_0100, /* 64100..641FF */
+ FriBidiPropertyBlockLevel1_0100, /* 64200..642FF */
+ FriBidiPropertyBlockLevel1_0100, /* 64300..643FF */
+ FriBidiPropertyBlockLevel1_0100, /* 64400..644FF */
+ FriBidiPropertyBlockLevel1_0100, /* 64500..645FF */
+ FriBidiPropertyBlockLevel1_0100, /* 64600..646FF */
+ FriBidiPropertyBlockLevel1_0100, /* 64700..647FF */
+ FriBidiPropertyBlockLevel1_0100, /* 64800..648FF */
+ FriBidiPropertyBlockLevel1_0100, /* 64900..649FF */
+ FriBidiPropertyBlockLevel1_0100, /* 64A00..64AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 64B00..64BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 64C00..64CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 64D00..64DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 64E00..64EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 64F00..64FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 65000..650FF */
+ FriBidiPropertyBlockLevel1_0100, /* 65100..651FF */
+ FriBidiPropertyBlockLevel1_0100, /* 65200..652FF */
+ FriBidiPropertyBlockLevel1_0100, /* 65300..653FF */
+ FriBidiPropertyBlockLevel1_0100, /* 65400..654FF */
+ FriBidiPropertyBlockLevel1_0100, /* 65500..655FF */
+ FriBidiPropertyBlockLevel1_0100, /* 65600..656FF */
+ FriBidiPropertyBlockLevel1_0100, /* 65700..657FF */
+ FriBidiPropertyBlockLevel1_0100, /* 65800..658FF */
+ FriBidiPropertyBlockLevel1_0100, /* 65900..659FF */
+ FriBidiPropertyBlockLevel1_0100, /* 65A00..65AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 65B00..65BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 65C00..65CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 65D00..65DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 65E00..65EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 65F00..65FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 66000..660FF */
+ FriBidiPropertyBlockLevel1_0100, /* 66100..661FF */
+ FriBidiPropertyBlockLevel1_0100, /* 66200..662FF */
+ FriBidiPropertyBlockLevel1_0100, /* 66300..663FF */
+ FriBidiPropertyBlockLevel1_0100, /* 66400..664FF */
+ FriBidiPropertyBlockLevel1_0100, /* 66500..665FF */
+ FriBidiPropertyBlockLevel1_0100, /* 66600..666FF */
+ FriBidiPropertyBlockLevel1_0100, /* 66700..667FF */
+ FriBidiPropertyBlockLevel1_0100, /* 66800..668FF */
+ FriBidiPropertyBlockLevel1_0100, /* 66900..669FF */
+ FriBidiPropertyBlockLevel1_0100, /* 66A00..66AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 66B00..66BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 66C00..66CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 66D00..66DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 66E00..66EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 66F00..66FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 67000..670FF */
+ FriBidiPropertyBlockLevel1_0100, /* 67100..671FF */
+ FriBidiPropertyBlockLevel1_0100, /* 67200..672FF */
+ FriBidiPropertyBlockLevel1_0100, /* 67300..673FF */
+ FriBidiPropertyBlockLevel1_0100, /* 67400..674FF */
+ FriBidiPropertyBlockLevel1_0100, /* 67500..675FF */
+ FriBidiPropertyBlockLevel1_0100, /* 67600..676FF */
+ FriBidiPropertyBlockLevel1_0100, /* 67700..677FF */
+ FriBidiPropertyBlockLevel1_0100, /* 67800..678FF */
+ FriBidiPropertyBlockLevel1_0100, /* 67900..679FF */
+ FriBidiPropertyBlockLevel1_0100, /* 67A00..67AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 67B00..67BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 67C00..67CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 67D00..67DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 67E00..67EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 67F00..67FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 68000..680FF */
+ FriBidiPropertyBlockLevel1_0100, /* 68100..681FF */
+ FriBidiPropertyBlockLevel1_0100, /* 68200..682FF */
+ FriBidiPropertyBlockLevel1_0100, /* 68300..683FF */
+ FriBidiPropertyBlockLevel1_0100, /* 68400..684FF */
+ FriBidiPropertyBlockLevel1_0100, /* 68500..685FF */
+ FriBidiPropertyBlockLevel1_0100, /* 68600..686FF */
+ FriBidiPropertyBlockLevel1_0100, /* 68700..687FF */
+ FriBidiPropertyBlockLevel1_0100, /* 68800..688FF */
+ FriBidiPropertyBlockLevel1_0100, /* 68900..689FF */
+ FriBidiPropertyBlockLevel1_0100, /* 68A00..68AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 68B00..68BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 68C00..68CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 68D00..68DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 68E00..68EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 68F00..68FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 69000..690FF */
+ FriBidiPropertyBlockLevel1_0100, /* 69100..691FF */
+ FriBidiPropertyBlockLevel1_0100, /* 69200..692FF */
+ FriBidiPropertyBlockLevel1_0100, /* 69300..693FF */
+ FriBidiPropertyBlockLevel1_0100, /* 69400..694FF */
+ FriBidiPropertyBlockLevel1_0100, /* 69500..695FF */
+ FriBidiPropertyBlockLevel1_0100, /* 69600..696FF */
+ FriBidiPropertyBlockLevel1_0100, /* 69700..697FF */
+ FriBidiPropertyBlockLevel1_0100, /* 69800..698FF */
+ FriBidiPropertyBlockLevel1_0100, /* 69900..699FF */
+ FriBidiPropertyBlockLevel1_0100, /* 69A00..69AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 69B00..69BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 69C00..69CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 69D00..69DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 69E00..69EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 69F00..69FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6A000..6A0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6A100..6A1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6A200..6A2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6A300..6A3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6A400..6A4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6A500..6A5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6A600..6A6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6A700..6A7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6A800..6A8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6A900..6A9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6AA00..6AAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6AB00..6ABFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6AC00..6ACFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6AD00..6ADFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6AE00..6AEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6AF00..6AFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6B000..6B0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6B100..6B1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6B200..6B2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6B300..6B3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6B400..6B4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6B500..6B5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6B600..6B6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6B700..6B7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6B800..6B8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6B900..6B9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6BA00..6BAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6BB00..6BBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6BC00..6BCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6BD00..6BDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6BE00..6BEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6BF00..6BFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6C000..6C0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6C100..6C1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6C200..6C2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6C300..6C3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6C400..6C4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6C500..6C5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6C600..6C6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6C700..6C7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6C800..6C8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6C900..6C9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6CA00..6CAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6CB00..6CBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6CC00..6CCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6CD00..6CDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6CE00..6CEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6CF00..6CFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6D000..6D0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6D100..6D1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6D200..6D2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6D300..6D3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6D400..6D4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6D500..6D5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6D600..6D6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6D700..6D7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6D800..6D8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6D900..6D9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6DA00..6DAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6DB00..6DBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6DC00..6DCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6DD00..6DDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6DE00..6DEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6DF00..6DFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6E000..6E0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6E100..6E1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6E200..6E2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6E300..6E3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6E400..6E4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6E500..6E5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6E600..6E6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6E700..6E7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6E800..6E8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6E900..6E9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6EA00..6EAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6EB00..6EBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6EC00..6ECFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6ED00..6EDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6EE00..6EEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6EF00..6EFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6F000..6F0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6F100..6F1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6F200..6F2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6F300..6F3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6F400..6F4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6F500..6F5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6F600..6F6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6F700..6F7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6F800..6F8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6F900..6F9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 6FA00..6FAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6FB00..6FBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6FC00..6FCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6FD00..6FDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6FE00..6FEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 6FF00..6FFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 70000..700FF */
+ FriBidiPropertyBlockLevel1_0100, /* 70100..701FF */
+ FriBidiPropertyBlockLevel1_0100, /* 70200..702FF */
+ FriBidiPropertyBlockLevel1_0100, /* 70300..703FF */
+ FriBidiPropertyBlockLevel1_0100, /* 70400..704FF */
+ FriBidiPropertyBlockLevel1_0100, /* 70500..705FF */
+ FriBidiPropertyBlockLevel1_0100, /* 70600..706FF */
+ FriBidiPropertyBlockLevel1_0100, /* 70700..707FF */
+ FriBidiPropertyBlockLevel1_0100, /* 70800..708FF */
+ FriBidiPropertyBlockLevel1_0100, /* 70900..709FF */
+ FriBidiPropertyBlockLevel1_0100, /* 70A00..70AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 70B00..70BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 70C00..70CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 70D00..70DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 70E00..70EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 70F00..70FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 71000..710FF */
+ FriBidiPropertyBlockLevel1_0100, /* 71100..711FF */
+ FriBidiPropertyBlockLevel1_0100, /* 71200..712FF */
+ FriBidiPropertyBlockLevel1_0100, /* 71300..713FF */
+ FriBidiPropertyBlockLevel1_0100, /* 71400..714FF */
+ FriBidiPropertyBlockLevel1_0100, /* 71500..715FF */
+ FriBidiPropertyBlockLevel1_0100, /* 71600..716FF */
+ FriBidiPropertyBlockLevel1_0100, /* 71700..717FF */
+ FriBidiPropertyBlockLevel1_0100, /* 71800..718FF */
+ FriBidiPropertyBlockLevel1_0100, /* 71900..719FF */
+ FriBidiPropertyBlockLevel1_0100, /* 71A00..71AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 71B00..71BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 71C00..71CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 71D00..71DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 71E00..71EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 71F00..71FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 72000..720FF */
+ FriBidiPropertyBlockLevel1_0100, /* 72100..721FF */
+ FriBidiPropertyBlockLevel1_0100, /* 72200..722FF */
+ FriBidiPropertyBlockLevel1_0100, /* 72300..723FF */
+ FriBidiPropertyBlockLevel1_0100, /* 72400..724FF */
+ FriBidiPropertyBlockLevel1_0100, /* 72500..725FF */
+ FriBidiPropertyBlockLevel1_0100, /* 72600..726FF */
+ FriBidiPropertyBlockLevel1_0100, /* 72700..727FF */
+ FriBidiPropertyBlockLevel1_0100, /* 72800..728FF */
+ FriBidiPropertyBlockLevel1_0100, /* 72900..729FF */
+ FriBidiPropertyBlockLevel1_0100, /* 72A00..72AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 72B00..72BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 72C00..72CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 72D00..72DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 72E00..72EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 72F00..72FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 73000..730FF */
+ FriBidiPropertyBlockLevel1_0100, /* 73100..731FF */
+ FriBidiPropertyBlockLevel1_0100, /* 73200..732FF */
+ FriBidiPropertyBlockLevel1_0100, /* 73300..733FF */
+ FriBidiPropertyBlockLevel1_0100, /* 73400..734FF */
+ FriBidiPropertyBlockLevel1_0100, /* 73500..735FF */
+ FriBidiPropertyBlockLevel1_0100, /* 73600..736FF */
+ FriBidiPropertyBlockLevel1_0100, /* 73700..737FF */
+ FriBidiPropertyBlockLevel1_0100, /* 73800..738FF */
+ FriBidiPropertyBlockLevel1_0100, /* 73900..739FF */
+ FriBidiPropertyBlockLevel1_0100, /* 73A00..73AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 73B00..73BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 73C00..73CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 73D00..73DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 73E00..73EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 73F00..73FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 74000..740FF */
+ FriBidiPropertyBlockLevel1_0100, /* 74100..741FF */
+ FriBidiPropertyBlockLevel1_0100, /* 74200..742FF */
+ FriBidiPropertyBlockLevel1_0100, /* 74300..743FF */
+ FriBidiPropertyBlockLevel1_0100, /* 74400..744FF */
+ FriBidiPropertyBlockLevel1_0100, /* 74500..745FF */
+ FriBidiPropertyBlockLevel1_0100, /* 74600..746FF */
+ FriBidiPropertyBlockLevel1_0100, /* 74700..747FF */
+ FriBidiPropertyBlockLevel1_0100, /* 74800..748FF */
+ FriBidiPropertyBlockLevel1_0100, /* 74900..749FF */
+ FriBidiPropertyBlockLevel1_0100, /* 74A00..74AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 74B00..74BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 74C00..74CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 74D00..74DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 74E00..74EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 74F00..74FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 75000..750FF */
+ FriBidiPropertyBlockLevel1_0100, /* 75100..751FF */
+ FriBidiPropertyBlockLevel1_0100, /* 75200..752FF */
+ FriBidiPropertyBlockLevel1_0100, /* 75300..753FF */
+ FriBidiPropertyBlockLevel1_0100, /* 75400..754FF */
+ FriBidiPropertyBlockLevel1_0100, /* 75500..755FF */
+ FriBidiPropertyBlockLevel1_0100, /* 75600..756FF */
+ FriBidiPropertyBlockLevel1_0100, /* 75700..757FF */
+ FriBidiPropertyBlockLevel1_0100, /* 75800..758FF */
+ FriBidiPropertyBlockLevel1_0100, /* 75900..759FF */
+ FriBidiPropertyBlockLevel1_0100, /* 75A00..75AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 75B00..75BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 75C00..75CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 75D00..75DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 75E00..75EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 75F00..75FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 76000..760FF */
+ FriBidiPropertyBlockLevel1_0100, /* 76100..761FF */
+ FriBidiPropertyBlockLevel1_0100, /* 76200..762FF */
+ FriBidiPropertyBlockLevel1_0100, /* 76300..763FF */
+ FriBidiPropertyBlockLevel1_0100, /* 76400..764FF */
+ FriBidiPropertyBlockLevel1_0100, /* 76500..765FF */
+ FriBidiPropertyBlockLevel1_0100, /* 76600..766FF */
+ FriBidiPropertyBlockLevel1_0100, /* 76700..767FF */
+ FriBidiPropertyBlockLevel1_0100, /* 76800..768FF */
+ FriBidiPropertyBlockLevel1_0100, /* 76900..769FF */
+ FriBidiPropertyBlockLevel1_0100, /* 76A00..76AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 76B00..76BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 76C00..76CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 76D00..76DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 76E00..76EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 76F00..76FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 77000..770FF */
+ FriBidiPropertyBlockLevel1_0100, /* 77100..771FF */
+ FriBidiPropertyBlockLevel1_0100, /* 77200..772FF */
+ FriBidiPropertyBlockLevel1_0100, /* 77300..773FF */
+ FriBidiPropertyBlockLevel1_0100, /* 77400..774FF */
+ FriBidiPropertyBlockLevel1_0100, /* 77500..775FF */
+ FriBidiPropertyBlockLevel1_0100, /* 77600..776FF */
+ FriBidiPropertyBlockLevel1_0100, /* 77700..777FF */
+ FriBidiPropertyBlockLevel1_0100, /* 77800..778FF */
+ FriBidiPropertyBlockLevel1_0100, /* 77900..779FF */
+ FriBidiPropertyBlockLevel1_0100, /* 77A00..77AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 77B00..77BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 77C00..77CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 77D00..77DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 77E00..77EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 77F00..77FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 78000..780FF */
+ FriBidiPropertyBlockLevel1_0100, /* 78100..781FF */
+ FriBidiPropertyBlockLevel1_0100, /* 78200..782FF */
+ FriBidiPropertyBlockLevel1_0100, /* 78300..783FF */
+ FriBidiPropertyBlockLevel1_0100, /* 78400..784FF */
+ FriBidiPropertyBlockLevel1_0100, /* 78500..785FF */
+ FriBidiPropertyBlockLevel1_0100, /* 78600..786FF */
+ FriBidiPropertyBlockLevel1_0100, /* 78700..787FF */
+ FriBidiPropertyBlockLevel1_0100, /* 78800..788FF */
+ FriBidiPropertyBlockLevel1_0100, /* 78900..789FF */
+ FriBidiPropertyBlockLevel1_0100, /* 78A00..78AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 78B00..78BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 78C00..78CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 78D00..78DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 78E00..78EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 78F00..78FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 79000..790FF */
+ FriBidiPropertyBlockLevel1_0100, /* 79100..791FF */
+ FriBidiPropertyBlockLevel1_0100, /* 79200..792FF */
+ FriBidiPropertyBlockLevel1_0100, /* 79300..793FF */
+ FriBidiPropertyBlockLevel1_0100, /* 79400..794FF */
+ FriBidiPropertyBlockLevel1_0100, /* 79500..795FF */
+ FriBidiPropertyBlockLevel1_0100, /* 79600..796FF */
+ FriBidiPropertyBlockLevel1_0100, /* 79700..797FF */
+ FriBidiPropertyBlockLevel1_0100, /* 79800..798FF */
+ FriBidiPropertyBlockLevel1_0100, /* 79900..799FF */
+ FriBidiPropertyBlockLevel1_0100, /* 79A00..79AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 79B00..79BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 79C00..79CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 79D00..79DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 79E00..79EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 79F00..79FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7A000..7A0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7A100..7A1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7A200..7A2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7A300..7A3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7A400..7A4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7A500..7A5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7A600..7A6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7A700..7A7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7A800..7A8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7A900..7A9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7AA00..7AAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7AB00..7ABFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7AC00..7ACFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7AD00..7ADFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7AE00..7AEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7AF00..7AFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7B000..7B0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7B100..7B1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7B200..7B2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7B300..7B3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7B400..7B4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7B500..7B5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7B600..7B6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7B700..7B7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7B800..7B8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7B900..7B9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7BA00..7BAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7BB00..7BBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7BC00..7BCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7BD00..7BDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7BE00..7BEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7BF00..7BFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7C000..7C0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7C100..7C1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7C200..7C2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7C300..7C3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7C400..7C4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7C500..7C5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7C600..7C6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7C700..7C7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7C800..7C8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7C900..7C9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7CA00..7CAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7CB00..7CBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7CC00..7CCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7CD00..7CDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7CE00..7CEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7CF00..7CFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7D000..7D0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7D100..7D1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7D200..7D2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7D300..7D3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7D400..7D4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7D500..7D5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7D600..7D6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7D700..7D7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7D800..7D8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7D900..7D9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7DA00..7DAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7DB00..7DBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7DC00..7DCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7DD00..7DDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7DE00..7DEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7DF00..7DFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7E000..7E0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7E100..7E1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7E200..7E2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7E300..7E3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7E400..7E4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7E500..7E5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7E600..7E6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7E700..7E7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7E800..7E8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7E900..7E9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7EA00..7EAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7EB00..7EBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7EC00..7ECFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7ED00..7EDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7EE00..7EEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7EF00..7EFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7F000..7F0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7F100..7F1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7F200..7F2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7F300..7F3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7F400..7F4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7F500..7F5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7F600..7F6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7F700..7F7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7F800..7F8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7F900..7F9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 7FA00..7FAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7FB00..7FBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7FC00..7FCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7FD00..7FDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7FE00..7FEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 7FF00..7FFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 80000..800FF */
+ FriBidiPropertyBlockLevel1_0100, /* 80100..801FF */
+ FriBidiPropertyBlockLevel1_0100, /* 80200..802FF */
+ FriBidiPropertyBlockLevel1_0100, /* 80300..803FF */
+ FriBidiPropertyBlockLevel1_0100, /* 80400..804FF */
+ FriBidiPropertyBlockLevel1_0100, /* 80500..805FF */
+ FriBidiPropertyBlockLevel1_0100, /* 80600..806FF */
+ FriBidiPropertyBlockLevel1_0100, /* 80700..807FF */
+ FriBidiPropertyBlockLevel1_0100, /* 80800..808FF */
+ FriBidiPropertyBlockLevel1_0100, /* 80900..809FF */
+ FriBidiPropertyBlockLevel1_0100, /* 80A00..80AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 80B00..80BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 80C00..80CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 80D00..80DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 80E00..80EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 80F00..80FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 81000..810FF */
+ FriBidiPropertyBlockLevel1_0100, /* 81100..811FF */
+ FriBidiPropertyBlockLevel1_0100, /* 81200..812FF */
+ FriBidiPropertyBlockLevel1_0100, /* 81300..813FF */
+ FriBidiPropertyBlockLevel1_0100, /* 81400..814FF */
+ FriBidiPropertyBlockLevel1_0100, /* 81500..815FF */
+ FriBidiPropertyBlockLevel1_0100, /* 81600..816FF */
+ FriBidiPropertyBlockLevel1_0100, /* 81700..817FF */
+ FriBidiPropertyBlockLevel1_0100, /* 81800..818FF */
+ FriBidiPropertyBlockLevel1_0100, /* 81900..819FF */
+ FriBidiPropertyBlockLevel1_0100, /* 81A00..81AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 81B00..81BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 81C00..81CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 81D00..81DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 81E00..81EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 81F00..81FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 82000..820FF */
+ FriBidiPropertyBlockLevel1_0100, /* 82100..821FF */
+ FriBidiPropertyBlockLevel1_0100, /* 82200..822FF */
+ FriBidiPropertyBlockLevel1_0100, /* 82300..823FF */
+ FriBidiPropertyBlockLevel1_0100, /* 82400..824FF */
+ FriBidiPropertyBlockLevel1_0100, /* 82500..825FF */
+ FriBidiPropertyBlockLevel1_0100, /* 82600..826FF */
+ FriBidiPropertyBlockLevel1_0100, /* 82700..827FF */
+ FriBidiPropertyBlockLevel1_0100, /* 82800..828FF */
+ FriBidiPropertyBlockLevel1_0100, /* 82900..829FF */
+ FriBidiPropertyBlockLevel1_0100, /* 82A00..82AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 82B00..82BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 82C00..82CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 82D00..82DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 82E00..82EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 82F00..82FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 83000..830FF */
+ FriBidiPropertyBlockLevel1_0100, /* 83100..831FF */
+ FriBidiPropertyBlockLevel1_0100, /* 83200..832FF */
+ FriBidiPropertyBlockLevel1_0100, /* 83300..833FF */
+ FriBidiPropertyBlockLevel1_0100, /* 83400..834FF */
+ FriBidiPropertyBlockLevel1_0100, /* 83500..835FF */
+ FriBidiPropertyBlockLevel1_0100, /* 83600..836FF */
+ FriBidiPropertyBlockLevel1_0100, /* 83700..837FF */
+ FriBidiPropertyBlockLevel1_0100, /* 83800..838FF */
+ FriBidiPropertyBlockLevel1_0100, /* 83900..839FF */
+ FriBidiPropertyBlockLevel1_0100, /* 83A00..83AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 83B00..83BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 83C00..83CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 83D00..83DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 83E00..83EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 83F00..83FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 84000..840FF */
+ FriBidiPropertyBlockLevel1_0100, /* 84100..841FF */
+ FriBidiPropertyBlockLevel1_0100, /* 84200..842FF */
+ FriBidiPropertyBlockLevel1_0100, /* 84300..843FF */
+ FriBidiPropertyBlockLevel1_0100, /* 84400..844FF */
+ FriBidiPropertyBlockLevel1_0100, /* 84500..845FF */
+ FriBidiPropertyBlockLevel1_0100, /* 84600..846FF */
+ FriBidiPropertyBlockLevel1_0100, /* 84700..847FF */
+ FriBidiPropertyBlockLevel1_0100, /* 84800..848FF */
+ FriBidiPropertyBlockLevel1_0100, /* 84900..849FF */
+ FriBidiPropertyBlockLevel1_0100, /* 84A00..84AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 84B00..84BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 84C00..84CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 84D00..84DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 84E00..84EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 84F00..84FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 85000..850FF */
+ FriBidiPropertyBlockLevel1_0100, /* 85100..851FF */
+ FriBidiPropertyBlockLevel1_0100, /* 85200..852FF */
+ FriBidiPropertyBlockLevel1_0100, /* 85300..853FF */
+ FriBidiPropertyBlockLevel1_0100, /* 85400..854FF */
+ FriBidiPropertyBlockLevel1_0100, /* 85500..855FF */
+ FriBidiPropertyBlockLevel1_0100, /* 85600..856FF */
+ FriBidiPropertyBlockLevel1_0100, /* 85700..857FF */
+ FriBidiPropertyBlockLevel1_0100, /* 85800..858FF */
+ FriBidiPropertyBlockLevel1_0100, /* 85900..859FF */
+ FriBidiPropertyBlockLevel1_0100, /* 85A00..85AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 85B00..85BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 85C00..85CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 85D00..85DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 85E00..85EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 85F00..85FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 86000..860FF */
+ FriBidiPropertyBlockLevel1_0100, /* 86100..861FF */
+ FriBidiPropertyBlockLevel1_0100, /* 86200..862FF */
+ FriBidiPropertyBlockLevel1_0100, /* 86300..863FF */
+ FriBidiPropertyBlockLevel1_0100, /* 86400..864FF */
+ FriBidiPropertyBlockLevel1_0100, /* 86500..865FF */
+ FriBidiPropertyBlockLevel1_0100, /* 86600..866FF */
+ FriBidiPropertyBlockLevel1_0100, /* 86700..867FF */
+ FriBidiPropertyBlockLevel1_0100, /* 86800..868FF */
+ FriBidiPropertyBlockLevel1_0100, /* 86900..869FF */
+ FriBidiPropertyBlockLevel1_0100, /* 86A00..86AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 86B00..86BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 86C00..86CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 86D00..86DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 86E00..86EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 86F00..86FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 87000..870FF */
+ FriBidiPropertyBlockLevel1_0100, /* 87100..871FF */
+ FriBidiPropertyBlockLevel1_0100, /* 87200..872FF */
+ FriBidiPropertyBlockLevel1_0100, /* 87300..873FF */
+ FriBidiPropertyBlockLevel1_0100, /* 87400..874FF */
+ FriBidiPropertyBlockLevel1_0100, /* 87500..875FF */
+ FriBidiPropertyBlockLevel1_0100, /* 87600..876FF */
+ FriBidiPropertyBlockLevel1_0100, /* 87700..877FF */
+ FriBidiPropertyBlockLevel1_0100, /* 87800..878FF */
+ FriBidiPropertyBlockLevel1_0100, /* 87900..879FF */
+ FriBidiPropertyBlockLevel1_0100, /* 87A00..87AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 87B00..87BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 87C00..87CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 87D00..87DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 87E00..87EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 87F00..87FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 88000..880FF */
+ FriBidiPropertyBlockLevel1_0100, /* 88100..881FF */
+ FriBidiPropertyBlockLevel1_0100, /* 88200..882FF */
+ FriBidiPropertyBlockLevel1_0100, /* 88300..883FF */
+ FriBidiPropertyBlockLevel1_0100, /* 88400..884FF */
+ FriBidiPropertyBlockLevel1_0100, /* 88500..885FF */
+ FriBidiPropertyBlockLevel1_0100, /* 88600..886FF */
+ FriBidiPropertyBlockLevel1_0100, /* 88700..887FF */
+ FriBidiPropertyBlockLevel1_0100, /* 88800..888FF */
+ FriBidiPropertyBlockLevel1_0100, /* 88900..889FF */
+ FriBidiPropertyBlockLevel1_0100, /* 88A00..88AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 88B00..88BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 88C00..88CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 88D00..88DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 88E00..88EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 88F00..88FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 89000..890FF */
+ FriBidiPropertyBlockLevel1_0100, /* 89100..891FF */
+ FriBidiPropertyBlockLevel1_0100, /* 89200..892FF */
+ FriBidiPropertyBlockLevel1_0100, /* 89300..893FF */
+ FriBidiPropertyBlockLevel1_0100, /* 89400..894FF */
+ FriBidiPropertyBlockLevel1_0100, /* 89500..895FF */
+ FriBidiPropertyBlockLevel1_0100, /* 89600..896FF */
+ FriBidiPropertyBlockLevel1_0100, /* 89700..897FF */
+ FriBidiPropertyBlockLevel1_0100, /* 89800..898FF */
+ FriBidiPropertyBlockLevel1_0100, /* 89900..899FF */
+ FriBidiPropertyBlockLevel1_0100, /* 89A00..89AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 89B00..89BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 89C00..89CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 89D00..89DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 89E00..89EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 89F00..89FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8A000..8A0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8A100..8A1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8A200..8A2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8A300..8A3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8A400..8A4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8A500..8A5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8A600..8A6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8A700..8A7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8A800..8A8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8A900..8A9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8AA00..8AAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8AB00..8ABFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8AC00..8ACFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8AD00..8ADFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8AE00..8AEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8AF00..8AFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8B000..8B0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8B100..8B1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8B200..8B2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8B300..8B3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8B400..8B4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8B500..8B5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8B600..8B6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8B700..8B7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8B800..8B8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8B900..8B9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8BA00..8BAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8BB00..8BBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8BC00..8BCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8BD00..8BDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8BE00..8BEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8BF00..8BFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8C000..8C0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8C100..8C1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8C200..8C2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8C300..8C3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8C400..8C4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8C500..8C5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8C600..8C6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8C700..8C7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8C800..8C8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8C900..8C9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8CA00..8CAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8CB00..8CBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8CC00..8CCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8CD00..8CDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8CE00..8CEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8CF00..8CFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8D000..8D0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8D100..8D1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8D200..8D2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8D300..8D3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8D400..8D4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8D500..8D5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8D600..8D6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8D700..8D7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8D800..8D8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8D900..8D9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8DA00..8DAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8DB00..8DBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8DC00..8DCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8DD00..8DDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8DE00..8DEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8DF00..8DFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8E000..8E0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8E100..8E1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8E200..8E2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8E300..8E3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8E400..8E4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8E500..8E5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8E600..8E6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8E700..8E7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8E800..8E8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8E900..8E9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8EA00..8EAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8EB00..8EBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8EC00..8ECFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8ED00..8EDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8EE00..8EEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8EF00..8EFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8F000..8F0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8F100..8F1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8F200..8F2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8F300..8F3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8F400..8F4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8F500..8F5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8F600..8F6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8F700..8F7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8F800..8F8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8F900..8F9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 8FA00..8FAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8FB00..8FBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8FC00..8FCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8FD00..8FDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8FE00..8FEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 8FF00..8FFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 90000..900FF */
+ FriBidiPropertyBlockLevel1_0100, /* 90100..901FF */
+ FriBidiPropertyBlockLevel1_0100, /* 90200..902FF */
+ FriBidiPropertyBlockLevel1_0100, /* 90300..903FF */
+ FriBidiPropertyBlockLevel1_0100, /* 90400..904FF */
+ FriBidiPropertyBlockLevel1_0100, /* 90500..905FF */
+ FriBidiPropertyBlockLevel1_0100, /* 90600..906FF */
+ FriBidiPropertyBlockLevel1_0100, /* 90700..907FF */
+ FriBidiPropertyBlockLevel1_0100, /* 90800..908FF */
+ FriBidiPropertyBlockLevel1_0100, /* 90900..909FF */
+ FriBidiPropertyBlockLevel1_0100, /* 90A00..90AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 90B00..90BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 90C00..90CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 90D00..90DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 90E00..90EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 90F00..90FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 91000..910FF */
+ FriBidiPropertyBlockLevel1_0100, /* 91100..911FF */
+ FriBidiPropertyBlockLevel1_0100, /* 91200..912FF */
+ FriBidiPropertyBlockLevel1_0100, /* 91300..913FF */
+ FriBidiPropertyBlockLevel1_0100, /* 91400..914FF */
+ FriBidiPropertyBlockLevel1_0100, /* 91500..915FF */
+ FriBidiPropertyBlockLevel1_0100, /* 91600..916FF */
+ FriBidiPropertyBlockLevel1_0100, /* 91700..917FF */
+ FriBidiPropertyBlockLevel1_0100, /* 91800..918FF */
+ FriBidiPropertyBlockLevel1_0100, /* 91900..919FF */
+ FriBidiPropertyBlockLevel1_0100, /* 91A00..91AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 91B00..91BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 91C00..91CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 91D00..91DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 91E00..91EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 91F00..91FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 92000..920FF */
+ FriBidiPropertyBlockLevel1_0100, /* 92100..921FF */
+ FriBidiPropertyBlockLevel1_0100, /* 92200..922FF */
+ FriBidiPropertyBlockLevel1_0100, /* 92300..923FF */
+ FriBidiPropertyBlockLevel1_0100, /* 92400..924FF */
+ FriBidiPropertyBlockLevel1_0100, /* 92500..925FF */
+ FriBidiPropertyBlockLevel1_0100, /* 92600..926FF */
+ FriBidiPropertyBlockLevel1_0100, /* 92700..927FF */
+ FriBidiPropertyBlockLevel1_0100, /* 92800..928FF */
+ FriBidiPropertyBlockLevel1_0100, /* 92900..929FF */
+ FriBidiPropertyBlockLevel1_0100, /* 92A00..92AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 92B00..92BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 92C00..92CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 92D00..92DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 92E00..92EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 92F00..92FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 93000..930FF */
+ FriBidiPropertyBlockLevel1_0100, /* 93100..931FF */
+ FriBidiPropertyBlockLevel1_0100, /* 93200..932FF */
+ FriBidiPropertyBlockLevel1_0100, /* 93300..933FF */
+ FriBidiPropertyBlockLevel1_0100, /* 93400..934FF */
+ FriBidiPropertyBlockLevel1_0100, /* 93500..935FF */
+ FriBidiPropertyBlockLevel1_0100, /* 93600..936FF */
+ FriBidiPropertyBlockLevel1_0100, /* 93700..937FF */
+ FriBidiPropertyBlockLevel1_0100, /* 93800..938FF */
+ FriBidiPropertyBlockLevel1_0100, /* 93900..939FF */
+ FriBidiPropertyBlockLevel1_0100, /* 93A00..93AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 93B00..93BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 93C00..93CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 93D00..93DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 93E00..93EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 93F00..93FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 94000..940FF */
+ FriBidiPropertyBlockLevel1_0100, /* 94100..941FF */
+ FriBidiPropertyBlockLevel1_0100, /* 94200..942FF */
+ FriBidiPropertyBlockLevel1_0100, /* 94300..943FF */
+ FriBidiPropertyBlockLevel1_0100, /* 94400..944FF */
+ FriBidiPropertyBlockLevel1_0100, /* 94500..945FF */
+ FriBidiPropertyBlockLevel1_0100, /* 94600..946FF */
+ FriBidiPropertyBlockLevel1_0100, /* 94700..947FF */
+ FriBidiPropertyBlockLevel1_0100, /* 94800..948FF */
+ FriBidiPropertyBlockLevel1_0100, /* 94900..949FF */
+ FriBidiPropertyBlockLevel1_0100, /* 94A00..94AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 94B00..94BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 94C00..94CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 94D00..94DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 94E00..94EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 94F00..94FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 95000..950FF */
+ FriBidiPropertyBlockLevel1_0100, /* 95100..951FF */
+ FriBidiPropertyBlockLevel1_0100, /* 95200..952FF */
+ FriBidiPropertyBlockLevel1_0100, /* 95300..953FF */
+ FriBidiPropertyBlockLevel1_0100, /* 95400..954FF */
+ FriBidiPropertyBlockLevel1_0100, /* 95500..955FF */
+ FriBidiPropertyBlockLevel1_0100, /* 95600..956FF */
+ FriBidiPropertyBlockLevel1_0100, /* 95700..957FF */
+ FriBidiPropertyBlockLevel1_0100, /* 95800..958FF */
+ FriBidiPropertyBlockLevel1_0100, /* 95900..959FF */
+ FriBidiPropertyBlockLevel1_0100, /* 95A00..95AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 95B00..95BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 95C00..95CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 95D00..95DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 95E00..95EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 95F00..95FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 96000..960FF */
+ FriBidiPropertyBlockLevel1_0100, /* 96100..961FF */
+ FriBidiPropertyBlockLevel1_0100, /* 96200..962FF */
+ FriBidiPropertyBlockLevel1_0100, /* 96300..963FF */
+ FriBidiPropertyBlockLevel1_0100, /* 96400..964FF */
+ FriBidiPropertyBlockLevel1_0100, /* 96500..965FF */
+ FriBidiPropertyBlockLevel1_0100, /* 96600..966FF */
+ FriBidiPropertyBlockLevel1_0100, /* 96700..967FF */
+ FriBidiPropertyBlockLevel1_0100, /* 96800..968FF */
+ FriBidiPropertyBlockLevel1_0100, /* 96900..969FF */
+ FriBidiPropertyBlockLevel1_0100, /* 96A00..96AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 96B00..96BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 96C00..96CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 96D00..96DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 96E00..96EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 96F00..96FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 97000..970FF */
+ FriBidiPropertyBlockLevel1_0100, /* 97100..971FF */
+ FriBidiPropertyBlockLevel1_0100, /* 97200..972FF */
+ FriBidiPropertyBlockLevel1_0100, /* 97300..973FF */
+ FriBidiPropertyBlockLevel1_0100, /* 97400..974FF */
+ FriBidiPropertyBlockLevel1_0100, /* 97500..975FF */
+ FriBidiPropertyBlockLevel1_0100, /* 97600..976FF */
+ FriBidiPropertyBlockLevel1_0100, /* 97700..977FF */
+ FriBidiPropertyBlockLevel1_0100, /* 97800..978FF */
+ FriBidiPropertyBlockLevel1_0100, /* 97900..979FF */
+ FriBidiPropertyBlockLevel1_0100, /* 97A00..97AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 97B00..97BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 97C00..97CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 97D00..97DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 97E00..97EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 97F00..97FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 98000..980FF */
+ FriBidiPropertyBlockLevel1_0100, /* 98100..981FF */
+ FriBidiPropertyBlockLevel1_0100, /* 98200..982FF */
+ FriBidiPropertyBlockLevel1_0100, /* 98300..983FF */
+ FriBidiPropertyBlockLevel1_0100, /* 98400..984FF */
+ FriBidiPropertyBlockLevel1_0100, /* 98500..985FF */
+ FriBidiPropertyBlockLevel1_0100, /* 98600..986FF */
+ FriBidiPropertyBlockLevel1_0100, /* 98700..987FF */
+ FriBidiPropertyBlockLevel1_0100, /* 98800..988FF */
+ FriBidiPropertyBlockLevel1_0100, /* 98900..989FF */
+ FriBidiPropertyBlockLevel1_0100, /* 98A00..98AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 98B00..98BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 98C00..98CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 98D00..98DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 98E00..98EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 98F00..98FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 99000..990FF */
+ FriBidiPropertyBlockLevel1_0100, /* 99100..991FF */
+ FriBidiPropertyBlockLevel1_0100, /* 99200..992FF */
+ FriBidiPropertyBlockLevel1_0100, /* 99300..993FF */
+ FriBidiPropertyBlockLevel1_0100, /* 99400..994FF */
+ FriBidiPropertyBlockLevel1_0100, /* 99500..995FF */
+ FriBidiPropertyBlockLevel1_0100, /* 99600..996FF */
+ FriBidiPropertyBlockLevel1_0100, /* 99700..997FF */
+ FriBidiPropertyBlockLevel1_0100, /* 99800..998FF */
+ FriBidiPropertyBlockLevel1_0100, /* 99900..999FF */
+ FriBidiPropertyBlockLevel1_0100, /* 99A00..99AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 99B00..99BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 99C00..99CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 99D00..99DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 99E00..99EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 99F00..99FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9A000..9A0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9A100..9A1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9A200..9A2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9A300..9A3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9A400..9A4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9A500..9A5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9A600..9A6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9A700..9A7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9A800..9A8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9A900..9A9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9AA00..9AAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9AB00..9ABFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9AC00..9ACFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9AD00..9ADFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9AE00..9AEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9AF00..9AFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9B000..9B0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9B100..9B1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9B200..9B2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9B300..9B3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9B400..9B4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9B500..9B5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9B600..9B6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9B700..9B7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9B800..9B8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9B900..9B9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9BA00..9BAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9BB00..9BBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9BC00..9BCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9BD00..9BDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9BE00..9BEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9BF00..9BFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9C000..9C0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9C100..9C1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9C200..9C2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9C300..9C3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9C400..9C4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9C500..9C5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9C600..9C6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9C700..9C7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9C800..9C8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9C900..9C9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9CA00..9CAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9CB00..9CBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9CC00..9CCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9CD00..9CDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9CE00..9CEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9CF00..9CFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9D000..9D0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9D100..9D1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9D200..9D2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9D300..9D3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9D400..9D4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9D500..9D5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9D600..9D6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9D700..9D7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9D800..9D8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9D900..9D9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9DA00..9DAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9DB00..9DBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9DC00..9DCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9DD00..9DDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9DE00..9DEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9DF00..9DFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9E000..9E0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9E100..9E1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9E200..9E2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9E300..9E3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9E400..9E4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9E500..9E5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9E600..9E6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9E700..9E7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9E800..9E8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9E900..9E9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9EA00..9EAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9EB00..9EBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9EC00..9ECFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9ED00..9EDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9EE00..9EEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9EF00..9EFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9F000..9F0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9F100..9F1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9F200..9F2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9F300..9F3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9F400..9F4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9F500..9F5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9F600..9F6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9F700..9F7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9F800..9F8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9F900..9F9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 9FA00..9FAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9FB00..9FBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9FC00..9FCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9FD00..9FDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9FE00..9FEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 9FF00..9FFFF */
+ FriBidiPropertyBlockLevel1_0100, /* A0000..A00FF */
+ FriBidiPropertyBlockLevel1_0100, /* A0100..A01FF */
+ FriBidiPropertyBlockLevel1_0100, /* A0200..A02FF */
+ FriBidiPropertyBlockLevel1_0100, /* A0300..A03FF */
+ FriBidiPropertyBlockLevel1_0100, /* A0400..A04FF */
+ FriBidiPropertyBlockLevel1_0100, /* A0500..A05FF */
+ FriBidiPropertyBlockLevel1_0100, /* A0600..A06FF */
+ FriBidiPropertyBlockLevel1_0100, /* A0700..A07FF */
+ FriBidiPropertyBlockLevel1_0100, /* A0800..A08FF */
+ FriBidiPropertyBlockLevel1_0100, /* A0900..A09FF */
+ FriBidiPropertyBlockLevel1_0100, /* A0A00..A0AFF */
+ FriBidiPropertyBlockLevel1_0100, /* A0B00..A0BFF */
+ FriBidiPropertyBlockLevel1_0100, /* A0C00..A0CFF */
+ FriBidiPropertyBlockLevel1_0100, /* A0D00..A0DFF */
+ FriBidiPropertyBlockLevel1_0100, /* A0E00..A0EFF */
+ FriBidiPropertyBlockLevel1_0100, /* A0F00..A0FFF */
+ FriBidiPropertyBlockLevel1_0100, /* A1000..A10FF */
+ FriBidiPropertyBlockLevel1_0100, /* A1100..A11FF */
+ FriBidiPropertyBlockLevel1_0100, /* A1200..A12FF */
+ FriBidiPropertyBlockLevel1_0100, /* A1300..A13FF */
+ FriBidiPropertyBlockLevel1_0100, /* A1400..A14FF */
+ FriBidiPropertyBlockLevel1_0100, /* A1500..A15FF */
+ FriBidiPropertyBlockLevel1_0100, /* A1600..A16FF */
+ FriBidiPropertyBlockLevel1_0100, /* A1700..A17FF */
+ FriBidiPropertyBlockLevel1_0100, /* A1800..A18FF */
+ FriBidiPropertyBlockLevel1_0100, /* A1900..A19FF */
+ FriBidiPropertyBlockLevel1_0100, /* A1A00..A1AFF */
+ FriBidiPropertyBlockLevel1_0100, /* A1B00..A1BFF */
+ FriBidiPropertyBlockLevel1_0100, /* A1C00..A1CFF */
+ FriBidiPropertyBlockLevel1_0100, /* A1D00..A1DFF */
+ FriBidiPropertyBlockLevel1_0100, /* A1E00..A1EFF */
+ FriBidiPropertyBlockLevel1_0100, /* A1F00..A1FFF */
+ FriBidiPropertyBlockLevel1_0100, /* A2000..A20FF */
+ FriBidiPropertyBlockLevel1_0100, /* A2100..A21FF */
+ FriBidiPropertyBlockLevel1_0100, /* A2200..A22FF */
+ FriBidiPropertyBlockLevel1_0100, /* A2300..A23FF */
+ FriBidiPropertyBlockLevel1_0100, /* A2400..A24FF */
+ FriBidiPropertyBlockLevel1_0100, /* A2500..A25FF */
+ FriBidiPropertyBlockLevel1_0100, /* A2600..A26FF */
+ FriBidiPropertyBlockLevel1_0100, /* A2700..A27FF */
+ FriBidiPropertyBlockLevel1_0100, /* A2800..A28FF */
+ FriBidiPropertyBlockLevel1_0100, /* A2900..A29FF */
+ FriBidiPropertyBlockLevel1_0100, /* A2A00..A2AFF */
+ FriBidiPropertyBlockLevel1_0100, /* A2B00..A2BFF */
+ FriBidiPropertyBlockLevel1_0100, /* A2C00..A2CFF */
+ FriBidiPropertyBlockLevel1_0100, /* A2D00..A2DFF */
+ FriBidiPropertyBlockLevel1_0100, /* A2E00..A2EFF */
+ FriBidiPropertyBlockLevel1_0100, /* A2F00..A2FFF */
+ FriBidiPropertyBlockLevel1_0100, /* A3000..A30FF */
+ FriBidiPropertyBlockLevel1_0100, /* A3100..A31FF */
+ FriBidiPropertyBlockLevel1_0100, /* A3200..A32FF */
+ FriBidiPropertyBlockLevel1_0100, /* A3300..A33FF */
+ FriBidiPropertyBlockLevel1_0100, /* A3400..A34FF */
+ FriBidiPropertyBlockLevel1_0100, /* A3500..A35FF */
+ FriBidiPropertyBlockLevel1_0100, /* A3600..A36FF */
+ FriBidiPropertyBlockLevel1_0100, /* A3700..A37FF */
+ FriBidiPropertyBlockLevel1_0100, /* A3800..A38FF */
+ FriBidiPropertyBlockLevel1_0100, /* A3900..A39FF */
+ FriBidiPropertyBlockLevel1_0100, /* A3A00..A3AFF */
+ FriBidiPropertyBlockLevel1_0100, /* A3B00..A3BFF */
+ FriBidiPropertyBlockLevel1_0100, /* A3C00..A3CFF */
+ FriBidiPropertyBlockLevel1_0100, /* A3D00..A3DFF */
+ FriBidiPropertyBlockLevel1_0100, /* A3E00..A3EFF */
+ FriBidiPropertyBlockLevel1_0100, /* A3F00..A3FFF */
+ FriBidiPropertyBlockLevel1_0100, /* A4000..A40FF */
+ FriBidiPropertyBlockLevel1_0100, /* A4100..A41FF */
+ FriBidiPropertyBlockLevel1_0100, /* A4200..A42FF */
+ FriBidiPropertyBlockLevel1_0100, /* A4300..A43FF */
+ FriBidiPropertyBlockLevel1_0100, /* A4400..A44FF */
+ FriBidiPropertyBlockLevel1_0100, /* A4500..A45FF */
+ FriBidiPropertyBlockLevel1_0100, /* A4600..A46FF */
+ FriBidiPropertyBlockLevel1_0100, /* A4700..A47FF */
+ FriBidiPropertyBlockLevel1_0100, /* A4800..A48FF */
+ FriBidiPropertyBlockLevel1_0100, /* A4900..A49FF */
+ FriBidiPropertyBlockLevel1_0100, /* A4A00..A4AFF */
+ FriBidiPropertyBlockLevel1_0100, /* A4B00..A4BFF */
+ FriBidiPropertyBlockLevel1_0100, /* A4C00..A4CFF */
+ FriBidiPropertyBlockLevel1_0100, /* A4D00..A4DFF */
+ FriBidiPropertyBlockLevel1_0100, /* A4E00..A4EFF */
+ FriBidiPropertyBlockLevel1_0100, /* A4F00..A4FFF */
+ FriBidiPropertyBlockLevel1_0100, /* A5000..A50FF */
+ FriBidiPropertyBlockLevel1_0100, /* A5100..A51FF */
+ FriBidiPropertyBlockLevel1_0100, /* A5200..A52FF */
+ FriBidiPropertyBlockLevel1_0100, /* A5300..A53FF */
+ FriBidiPropertyBlockLevel1_0100, /* A5400..A54FF */
+ FriBidiPropertyBlockLevel1_0100, /* A5500..A55FF */
+ FriBidiPropertyBlockLevel1_0100, /* A5600..A56FF */
+ FriBidiPropertyBlockLevel1_0100, /* A5700..A57FF */
+ FriBidiPropertyBlockLevel1_0100, /* A5800..A58FF */
+ FriBidiPropertyBlockLevel1_0100, /* A5900..A59FF */
+ FriBidiPropertyBlockLevel1_0100, /* A5A00..A5AFF */
+ FriBidiPropertyBlockLevel1_0100, /* A5B00..A5BFF */
+ FriBidiPropertyBlockLevel1_0100, /* A5C00..A5CFF */
+ FriBidiPropertyBlockLevel1_0100, /* A5D00..A5DFF */
+ FriBidiPropertyBlockLevel1_0100, /* A5E00..A5EFF */
+ FriBidiPropertyBlockLevel1_0100, /* A5F00..A5FFF */
+ FriBidiPropertyBlockLevel1_0100, /* A6000..A60FF */
+ FriBidiPropertyBlockLevel1_0100, /* A6100..A61FF */
+ FriBidiPropertyBlockLevel1_0100, /* A6200..A62FF */
+ FriBidiPropertyBlockLevel1_0100, /* A6300..A63FF */
+ FriBidiPropertyBlockLevel1_0100, /* A6400..A64FF */
+ FriBidiPropertyBlockLevel1_0100, /* A6500..A65FF */
+ FriBidiPropertyBlockLevel1_0100, /* A6600..A66FF */
+ FriBidiPropertyBlockLevel1_0100, /* A6700..A67FF */
+ FriBidiPropertyBlockLevel1_0100, /* A6800..A68FF */
+ FriBidiPropertyBlockLevel1_0100, /* A6900..A69FF */
+ FriBidiPropertyBlockLevel1_0100, /* A6A00..A6AFF */
+ FriBidiPropertyBlockLevel1_0100, /* A6B00..A6BFF */
+ FriBidiPropertyBlockLevel1_0100, /* A6C00..A6CFF */
+ FriBidiPropertyBlockLevel1_0100, /* A6D00..A6DFF */
+ FriBidiPropertyBlockLevel1_0100, /* A6E00..A6EFF */
+ FriBidiPropertyBlockLevel1_0100, /* A6F00..A6FFF */
+ FriBidiPropertyBlockLevel1_0100, /* A7000..A70FF */
+ FriBidiPropertyBlockLevel1_0100, /* A7100..A71FF */
+ FriBidiPropertyBlockLevel1_0100, /* A7200..A72FF */
+ FriBidiPropertyBlockLevel1_0100, /* A7300..A73FF */
+ FriBidiPropertyBlockLevel1_0100, /* A7400..A74FF */
+ FriBidiPropertyBlockLevel1_0100, /* A7500..A75FF */
+ FriBidiPropertyBlockLevel1_0100, /* A7600..A76FF */
+ FriBidiPropertyBlockLevel1_0100, /* A7700..A77FF */
+ FriBidiPropertyBlockLevel1_0100, /* A7800..A78FF */
+ FriBidiPropertyBlockLevel1_0100, /* A7900..A79FF */
+ FriBidiPropertyBlockLevel1_0100, /* A7A00..A7AFF */
+ FriBidiPropertyBlockLevel1_0100, /* A7B00..A7BFF */
+ FriBidiPropertyBlockLevel1_0100, /* A7C00..A7CFF */
+ FriBidiPropertyBlockLevel1_0100, /* A7D00..A7DFF */
+ FriBidiPropertyBlockLevel1_0100, /* A7E00..A7EFF */
+ FriBidiPropertyBlockLevel1_0100, /* A7F00..A7FFF */
+ FriBidiPropertyBlockLevel1_0100, /* A8000..A80FF */
+ FriBidiPropertyBlockLevel1_0100, /* A8100..A81FF */
+ FriBidiPropertyBlockLevel1_0100, /* A8200..A82FF */
+ FriBidiPropertyBlockLevel1_0100, /* A8300..A83FF */
+ FriBidiPropertyBlockLevel1_0100, /* A8400..A84FF */
+ FriBidiPropertyBlockLevel1_0100, /* A8500..A85FF */
+ FriBidiPropertyBlockLevel1_0100, /* A8600..A86FF */
+ FriBidiPropertyBlockLevel1_0100, /* A8700..A87FF */
+ FriBidiPropertyBlockLevel1_0100, /* A8800..A88FF */
+ FriBidiPropertyBlockLevel1_0100, /* A8900..A89FF */
+ FriBidiPropertyBlockLevel1_0100, /* A8A00..A8AFF */
+ FriBidiPropertyBlockLevel1_0100, /* A8B00..A8BFF */
+ FriBidiPropertyBlockLevel1_0100, /* A8C00..A8CFF */
+ FriBidiPropertyBlockLevel1_0100, /* A8D00..A8DFF */
+ FriBidiPropertyBlockLevel1_0100, /* A8E00..A8EFF */
+ FriBidiPropertyBlockLevel1_0100, /* A8F00..A8FFF */
+ FriBidiPropertyBlockLevel1_0100, /* A9000..A90FF */
+ FriBidiPropertyBlockLevel1_0100, /* A9100..A91FF */
+ FriBidiPropertyBlockLevel1_0100, /* A9200..A92FF */
+ FriBidiPropertyBlockLevel1_0100, /* A9300..A93FF */
+ FriBidiPropertyBlockLevel1_0100, /* A9400..A94FF */
+ FriBidiPropertyBlockLevel1_0100, /* A9500..A95FF */
+ FriBidiPropertyBlockLevel1_0100, /* A9600..A96FF */
+ FriBidiPropertyBlockLevel1_0100, /* A9700..A97FF */
+ FriBidiPropertyBlockLevel1_0100, /* A9800..A98FF */
+ FriBidiPropertyBlockLevel1_0100, /* A9900..A99FF */
+ FriBidiPropertyBlockLevel1_0100, /* A9A00..A9AFF */
+ FriBidiPropertyBlockLevel1_0100, /* A9B00..A9BFF */
+ FriBidiPropertyBlockLevel1_0100, /* A9C00..A9CFF */
+ FriBidiPropertyBlockLevel1_0100, /* A9D00..A9DFF */
+ FriBidiPropertyBlockLevel1_0100, /* A9E00..A9EFF */
+ FriBidiPropertyBlockLevel1_0100, /* A9F00..A9FFF */
+ FriBidiPropertyBlockLevel1_0100, /* AA000..AA0FF */
+ FriBidiPropertyBlockLevel1_0100, /* AA100..AA1FF */
+ FriBidiPropertyBlockLevel1_0100, /* AA200..AA2FF */
+ FriBidiPropertyBlockLevel1_0100, /* AA300..AA3FF */
+ FriBidiPropertyBlockLevel1_0100, /* AA400..AA4FF */
+ FriBidiPropertyBlockLevel1_0100, /* AA500..AA5FF */
+ FriBidiPropertyBlockLevel1_0100, /* AA600..AA6FF */
+ FriBidiPropertyBlockLevel1_0100, /* AA700..AA7FF */
+ FriBidiPropertyBlockLevel1_0100, /* AA800..AA8FF */
+ FriBidiPropertyBlockLevel1_0100, /* AA900..AA9FF */
+ FriBidiPropertyBlockLevel1_0100, /* AAA00..AAAFF */
+ FriBidiPropertyBlockLevel1_0100, /* AAB00..AABFF */
+ FriBidiPropertyBlockLevel1_0100, /* AAC00..AACFF */
+ FriBidiPropertyBlockLevel1_0100, /* AAD00..AADFF */
+ FriBidiPropertyBlockLevel1_0100, /* AAE00..AAEFF */
+ FriBidiPropertyBlockLevel1_0100, /* AAF00..AAFFF */
+ FriBidiPropertyBlockLevel1_0100, /* AB000..AB0FF */
+ FriBidiPropertyBlockLevel1_0100, /* AB100..AB1FF */
+ FriBidiPropertyBlockLevel1_0100, /* AB200..AB2FF */
+ FriBidiPropertyBlockLevel1_0100, /* AB300..AB3FF */
+ FriBidiPropertyBlockLevel1_0100, /* AB400..AB4FF */
+ FriBidiPropertyBlockLevel1_0100, /* AB500..AB5FF */
+ FriBidiPropertyBlockLevel1_0100, /* AB600..AB6FF */
+ FriBidiPropertyBlockLevel1_0100, /* AB700..AB7FF */
+ FriBidiPropertyBlockLevel1_0100, /* AB800..AB8FF */
+ FriBidiPropertyBlockLevel1_0100, /* AB900..AB9FF */
+ FriBidiPropertyBlockLevel1_0100, /* ABA00..ABAFF */
+ FriBidiPropertyBlockLevel1_0100, /* ABB00..ABBFF */
+ FriBidiPropertyBlockLevel1_0100, /* ABC00..ABCFF */
+ FriBidiPropertyBlockLevel1_0100, /* ABD00..ABDFF */
+ FriBidiPropertyBlockLevel1_0100, /* ABE00..ABEFF */
+ FriBidiPropertyBlockLevel1_0100, /* ABF00..ABFFF */
+ FriBidiPropertyBlockLevel1_0100, /* AC000..AC0FF */
+ FriBidiPropertyBlockLevel1_0100, /* AC100..AC1FF */
+ FriBidiPropertyBlockLevel1_0100, /* AC200..AC2FF */
+ FriBidiPropertyBlockLevel1_0100, /* AC300..AC3FF */
+ FriBidiPropertyBlockLevel1_0100, /* AC400..AC4FF */
+ FriBidiPropertyBlockLevel1_0100, /* AC500..AC5FF */
+ FriBidiPropertyBlockLevel1_0100, /* AC600..AC6FF */
+ FriBidiPropertyBlockLevel1_0100, /* AC700..AC7FF */
+ FriBidiPropertyBlockLevel1_0100, /* AC800..AC8FF */
+ FriBidiPropertyBlockLevel1_0100, /* AC900..AC9FF */
+ FriBidiPropertyBlockLevel1_0100, /* ACA00..ACAFF */
+ FriBidiPropertyBlockLevel1_0100, /* ACB00..ACBFF */
+ FriBidiPropertyBlockLevel1_0100, /* ACC00..ACCFF */
+ FriBidiPropertyBlockLevel1_0100, /* ACD00..ACDFF */
+ FriBidiPropertyBlockLevel1_0100, /* ACE00..ACEFF */
+ FriBidiPropertyBlockLevel1_0100, /* ACF00..ACFFF */
+ FriBidiPropertyBlockLevel1_0100, /* AD000..AD0FF */
+ FriBidiPropertyBlockLevel1_0100, /* AD100..AD1FF */
+ FriBidiPropertyBlockLevel1_0100, /* AD200..AD2FF */
+ FriBidiPropertyBlockLevel1_0100, /* AD300..AD3FF */
+ FriBidiPropertyBlockLevel1_0100, /* AD400..AD4FF */
+ FriBidiPropertyBlockLevel1_0100, /* AD500..AD5FF */
+ FriBidiPropertyBlockLevel1_0100, /* AD600..AD6FF */
+ FriBidiPropertyBlockLevel1_0100, /* AD700..AD7FF */
+ FriBidiPropertyBlockLevel1_0100, /* AD800..AD8FF */
+ FriBidiPropertyBlockLevel1_0100, /* AD900..AD9FF */
+ FriBidiPropertyBlockLevel1_0100, /* ADA00..ADAFF */
+ FriBidiPropertyBlockLevel1_0100, /* ADB00..ADBFF */
+ FriBidiPropertyBlockLevel1_0100, /* ADC00..ADCFF */
+ FriBidiPropertyBlockLevel1_0100, /* ADD00..ADDFF */
+ FriBidiPropertyBlockLevel1_0100, /* ADE00..ADEFF */
+ FriBidiPropertyBlockLevel1_0100, /* ADF00..ADFFF */
+ FriBidiPropertyBlockLevel1_0100, /* AE000..AE0FF */
+ FriBidiPropertyBlockLevel1_0100, /* AE100..AE1FF */
+ FriBidiPropertyBlockLevel1_0100, /* AE200..AE2FF */
+ FriBidiPropertyBlockLevel1_0100, /* AE300..AE3FF */
+ FriBidiPropertyBlockLevel1_0100, /* AE400..AE4FF */
+ FriBidiPropertyBlockLevel1_0100, /* AE500..AE5FF */
+ FriBidiPropertyBlockLevel1_0100, /* AE600..AE6FF */
+ FriBidiPropertyBlockLevel1_0100, /* AE700..AE7FF */
+ FriBidiPropertyBlockLevel1_0100, /* AE800..AE8FF */
+ FriBidiPropertyBlockLevel1_0100, /* AE900..AE9FF */
+ FriBidiPropertyBlockLevel1_0100, /* AEA00..AEAFF */
+ FriBidiPropertyBlockLevel1_0100, /* AEB00..AEBFF */
+ FriBidiPropertyBlockLevel1_0100, /* AEC00..AECFF */
+ FriBidiPropertyBlockLevel1_0100, /* AED00..AEDFF */
+ FriBidiPropertyBlockLevel1_0100, /* AEE00..AEEFF */
+ FriBidiPropertyBlockLevel1_0100, /* AEF00..AEFFF */
+ FriBidiPropertyBlockLevel1_0100, /* AF000..AF0FF */
+ FriBidiPropertyBlockLevel1_0100, /* AF100..AF1FF */
+ FriBidiPropertyBlockLevel1_0100, /* AF200..AF2FF */
+ FriBidiPropertyBlockLevel1_0100, /* AF300..AF3FF */
+ FriBidiPropertyBlockLevel1_0100, /* AF400..AF4FF */
+ FriBidiPropertyBlockLevel1_0100, /* AF500..AF5FF */
+ FriBidiPropertyBlockLevel1_0100, /* AF600..AF6FF */
+ FriBidiPropertyBlockLevel1_0100, /* AF700..AF7FF */
+ FriBidiPropertyBlockLevel1_0100, /* AF800..AF8FF */
+ FriBidiPropertyBlockLevel1_0100, /* AF900..AF9FF */
+ FriBidiPropertyBlockLevel1_0100, /* AFA00..AFAFF */
+ FriBidiPropertyBlockLevel1_0100, /* AFB00..AFBFF */
+ FriBidiPropertyBlockLevel1_0100, /* AFC00..AFCFF */
+ FriBidiPropertyBlockLevel1_0100, /* AFD00..AFDFF */
+ FriBidiPropertyBlockLevel1_0100, /* AFE00..AFEFF */
+ FriBidiPropertyBlockLevel1_0100, /* AFF00..AFFFF */
+ FriBidiPropertyBlockLevel1_0100, /* B0000..B00FF */
+ FriBidiPropertyBlockLevel1_0100, /* B0100..B01FF */
+ FriBidiPropertyBlockLevel1_0100, /* B0200..B02FF */
+ FriBidiPropertyBlockLevel1_0100, /* B0300..B03FF */
+ FriBidiPropertyBlockLevel1_0100, /* B0400..B04FF */
+ FriBidiPropertyBlockLevel1_0100, /* B0500..B05FF */
+ FriBidiPropertyBlockLevel1_0100, /* B0600..B06FF */
+ FriBidiPropertyBlockLevel1_0100, /* B0700..B07FF */
+ FriBidiPropertyBlockLevel1_0100, /* B0800..B08FF */
+ FriBidiPropertyBlockLevel1_0100, /* B0900..B09FF */
+ FriBidiPropertyBlockLevel1_0100, /* B0A00..B0AFF */
+ FriBidiPropertyBlockLevel1_0100, /* B0B00..B0BFF */
+ FriBidiPropertyBlockLevel1_0100, /* B0C00..B0CFF */
+ FriBidiPropertyBlockLevel1_0100, /* B0D00..B0DFF */
+ FriBidiPropertyBlockLevel1_0100, /* B0E00..B0EFF */
+ FriBidiPropertyBlockLevel1_0100, /* B0F00..B0FFF */
+ FriBidiPropertyBlockLevel1_0100, /* B1000..B10FF */
+ FriBidiPropertyBlockLevel1_0100, /* B1100..B11FF */
+ FriBidiPropertyBlockLevel1_0100, /* B1200..B12FF */
+ FriBidiPropertyBlockLevel1_0100, /* B1300..B13FF */
+ FriBidiPropertyBlockLevel1_0100, /* B1400..B14FF */
+ FriBidiPropertyBlockLevel1_0100, /* B1500..B15FF */
+ FriBidiPropertyBlockLevel1_0100, /* B1600..B16FF */
+ FriBidiPropertyBlockLevel1_0100, /* B1700..B17FF */
+ FriBidiPropertyBlockLevel1_0100, /* B1800..B18FF */
+ FriBidiPropertyBlockLevel1_0100, /* B1900..B19FF */
+ FriBidiPropertyBlockLevel1_0100, /* B1A00..B1AFF */
+ FriBidiPropertyBlockLevel1_0100, /* B1B00..B1BFF */
+ FriBidiPropertyBlockLevel1_0100, /* B1C00..B1CFF */
+ FriBidiPropertyBlockLevel1_0100, /* B1D00..B1DFF */
+ FriBidiPropertyBlockLevel1_0100, /* B1E00..B1EFF */
+ FriBidiPropertyBlockLevel1_0100, /* B1F00..B1FFF */
+ FriBidiPropertyBlockLevel1_0100, /* B2000..B20FF */
+ FriBidiPropertyBlockLevel1_0100, /* B2100..B21FF */
+ FriBidiPropertyBlockLevel1_0100, /* B2200..B22FF */
+ FriBidiPropertyBlockLevel1_0100, /* B2300..B23FF */
+ FriBidiPropertyBlockLevel1_0100, /* B2400..B24FF */
+ FriBidiPropertyBlockLevel1_0100, /* B2500..B25FF */
+ FriBidiPropertyBlockLevel1_0100, /* B2600..B26FF */
+ FriBidiPropertyBlockLevel1_0100, /* B2700..B27FF */
+ FriBidiPropertyBlockLevel1_0100, /* B2800..B28FF */
+ FriBidiPropertyBlockLevel1_0100, /* B2900..B29FF */
+ FriBidiPropertyBlockLevel1_0100, /* B2A00..B2AFF */
+ FriBidiPropertyBlockLevel1_0100, /* B2B00..B2BFF */
+ FriBidiPropertyBlockLevel1_0100, /* B2C00..B2CFF */
+ FriBidiPropertyBlockLevel1_0100, /* B2D00..B2DFF */
+ FriBidiPropertyBlockLevel1_0100, /* B2E00..B2EFF */
+ FriBidiPropertyBlockLevel1_0100, /* B2F00..B2FFF */
+ FriBidiPropertyBlockLevel1_0100, /* B3000..B30FF */
+ FriBidiPropertyBlockLevel1_0100, /* B3100..B31FF */
+ FriBidiPropertyBlockLevel1_0100, /* B3200..B32FF */
+ FriBidiPropertyBlockLevel1_0100, /* B3300..B33FF */
+ FriBidiPropertyBlockLevel1_0100, /* B3400..B34FF */
+ FriBidiPropertyBlockLevel1_0100, /* B3500..B35FF */
+ FriBidiPropertyBlockLevel1_0100, /* B3600..B36FF */
+ FriBidiPropertyBlockLevel1_0100, /* B3700..B37FF */
+ FriBidiPropertyBlockLevel1_0100, /* B3800..B38FF */
+ FriBidiPropertyBlockLevel1_0100, /* B3900..B39FF */
+ FriBidiPropertyBlockLevel1_0100, /* B3A00..B3AFF */
+ FriBidiPropertyBlockLevel1_0100, /* B3B00..B3BFF */
+ FriBidiPropertyBlockLevel1_0100, /* B3C00..B3CFF */
+ FriBidiPropertyBlockLevel1_0100, /* B3D00..B3DFF */
+ FriBidiPropertyBlockLevel1_0100, /* B3E00..B3EFF */
+ FriBidiPropertyBlockLevel1_0100, /* B3F00..B3FFF */
+ FriBidiPropertyBlockLevel1_0100, /* B4000..B40FF */
+ FriBidiPropertyBlockLevel1_0100, /* B4100..B41FF */
+ FriBidiPropertyBlockLevel1_0100, /* B4200..B42FF */
+ FriBidiPropertyBlockLevel1_0100, /* B4300..B43FF */
+ FriBidiPropertyBlockLevel1_0100, /* B4400..B44FF */
+ FriBidiPropertyBlockLevel1_0100, /* B4500..B45FF */
+ FriBidiPropertyBlockLevel1_0100, /* B4600..B46FF */
+ FriBidiPropertyBlockLevel1_0100, /* B4700..B47FF */
+ FriBidiPropertyBlockLevel1_0100, /* B4800..B48FF */
+ FriBidiPropertyBlockLevel1_0100, /* B4900..B49FF */
+ FriBidiPropertyBlockLevel1_0100, /* B4A00..B4AFF */
+ FriBidiPropertyBlockLevel1_0100, /* B4B00..B4BFF */
+ FriBidiPropertyBlockLevel1_0100, /* B4C00..B4CFF */
+ FriBidiPropertyBlockLevel1_0100, /* B4D00..B4DFF */
+ FriBidiPropertyBlockLevel1_0100, /* B4E00..B4EFF */
+ FriBidiPropertyBlockLevel1_0100, /* B4F00..B4FFF */
+ FriBidiPropertyBlockLevel1_0100, /* B5000..B50FF */
+ FriBidiPropertyBlockLevel1_0100, /* B5100..B51FF */
+ FriBidiPropertyBlockLevel1_0100, /* B5200..B52FF */
+ FriBidiPropertyBlockLevel1_0100, /* B5300..B53FF */
+ FriBidiPropertyBlockLevel1_0100, /* B5400..B54FF */
+ FriBidiPropertyBlockLevel1_0100, /* B5500..B55FF */
+ FriBidiPropertyBlockLevel1_0100, /* B5600..B56FF */
+ FriBidiPropertyBlockLevel1_0100, /* B5700..B57FF */
+ FriBidiPropertyBlockLevel1_0100, /* B5800..B58FF */
+ FriBidiPropertyBlockLevel1_0100, /* B5900..B59FF */
+ FriBidiPropertyBlockLevel1_0100, /* B5A00..B5AFF */
+ FriBidiPropertyBlockLevel1_0100, /* B5B00..B5BFF */
+ FriBidiPropertyBlockLevel1_0100, /* B5C00..B5CFF */
+ FriBidiPropertyBlockLevel1_0100, /* B5D00..B5DFF */
+ FriBidiPropertyBlockLevel1_0100, /* B5E00..B5EFF */
+ FriBidiPropertyBlockLevel1_0100, /* B5F00..B5FFF */
+ FriBidiPropertyBlockLevel1_0100, /* B6000..B60FF */
+ FriBidiPropertyBlockLevel1_0100, /* B6100..B61FF */
+ FriBidiPropertyBlockLevel1_0100, /* B6200..B62FF */
+ FriBidiPropertyBlockLevel1_0100, /* B6300..B63FF */
+ FriBidiPropertyBlockLevel1_0100, /* B6400..B64FF */
+ FriBidiPropertyBlockLevel1_0100, /* B6500..B65FF */
+ FriBidiPropertyBlockLevel1_0100, /* B6600..B66FF */
+ FriBidiPropertyBlockLevel1_0100, /* B6700..B67FF */
+ FriBidiPropertyBlockLevel1_0100, /* B6800..B68FF */
+ FriBidiPropertyBlockLevel1_0100, /* B6900..B69FF */
+ FriBidiPropertyBlockLevel1_0100, /* B6A00..B6AFF */
+ FriBidiPropertyBlockLevel1_0100, /* B6B00..B6BFF */
+ FriBidiPropertyBlockLevel1_0100, /* B6C00..B6CFF */
+ FriBidiPropertyBlockLevel1_0100, /* B6D00..B6DFF */
+ FriBidiPropertyBlockLevel1_0100, /* B6E00..B6EFF */
+ FriBidiPropertyBlockLevel1_0100, /* B6F00..B6FFF */
+ FriBidiPropertyBlockLevel1_0100, /* B7000..B70FF */
+ FriBidiPropertyBlockLevel1_0100, /* B7100..B71FF */
+ FriBidiPropertyBlockLevel1_0100, /* B7200..B72FF */
+ FriBidiPropertyBlockLevel1_0100, /* B7300..B73FF */
+ FriBidiPropertyBlockLevel1_0100, /* B7400..B74FF */
+ FriBidiPropertyBlockLevel1_0100, /* B7500..B75FF */
+ FriBidiPropertyBlockLevel1_0100, /* B7600..B76FF */
+ FriBidiPropertyBlockLevel1_0100, /* B7700..B77FF */
+ FriBidiPropertyBlockLevel1_0100, /* B7800..B78FF */
+ FriBidiPropertyBlockLevel1_0100, /* B7900..B79FF */
+ FriBidiPropertyBlockLevel1_0100, /* B7A00..B7AFF */
+ FriBidiPropertyBlockLevel1_0100, /* B7B00..B7BFF */
+ FriBidiPropertyBlockLevel1_0100, /* B7C00..B7CFF */
+ FriBidiPropertyBlockLevel1_0100, /* B7D00..B7DFF */
+ FriBidiPropertyBlockLevel1_0100, /* B7E00..B7EFF */
+ FriBidiPropertyBlockLevel1_0100, /* B7F00..B7FFF */
+ FriBidiPropertyBlockLevel1_0100, /* B8000..B80FF */
+ FriBidiPropertyBlockLevel1_0100, /* B8100..B81FF */
+ FriBidiPropertyBlockLevel1_0100, /* B8200..B82FF */
+ FriBidiPropertyBlockLevel1_0100, /* B8300..B83FF */
+ FriBidiPropertyBlockLevel1_0100, /* B8400..B84FF */
+ FriBidiPropertyBlockLevel1_0100, /* B8500..B85FF */
+ FriBidiPropertyBlockLevel1_0100, /* B8600..B86FF */
+ FriBidiPropertyBlockLevel1_0100, /* B8700..B87FF */
+ FriBidiPropertyBlockLevel1_0100, /* B8800..B88FF */
+ FriBidiPropertyBlockLevel1_0100, /* B8900..B89FF */
+ FriBidiPropertyBlockLevel1_0100, /* B8A00..B8AFF */
+ FriBidiPropertyBlockLevel1_0100, /* B8B00..B8BFF */
+ FriBidiPropertyBlockLevel1_0100, /* B8C00..B8CFF */
+ FriBidiPropertyBlockLevel1_0100, /* B8D00..B8DFF */
+ FriBidiPropertyBlockLevel1_0100, /* B8E00..B8EFF */
+ FriBidiPropertyBlockLevel1_0100, /* B8F00..B8FFF */
+ FriBidiPropertyBlockLevel1_0100, /* B9000..B90FF */
+ FriBidiPropertyBlockLevel1_0100, /* B9100..B91FF */
+ FriBidiPropertyBlockLevel1_0100, /* B9200..B92FF */
+ FriBidiPropertyBlockLevel1_0100, /* B9300..B93FF */
+ FriBidiPropertyBlockLevel1_0100, /* B9400..B94FF */
+ FriBidiPropertyBlockLevel1_0100, /* B9500..B95FF */
+ FriBidiPropertyBlockLevel1_0100, /* B9600..B96FF */
+ FriBidiPropertyBlockLevel1_0100, /* B9700..B97FF */
+ FriBidiPropertyBlockLevel1_0100, /* B9800..B98FF */
+ FriBidiPropertyBlockLevel1_0100, /* B9900..B99FF */
+ FriBidiPropertyBlockLevel1_0100, /* B9A00..B9AFF */
+ FriBidiPropertyBlockLevel1_0100, /* B9B00..B9BFF */
+ FriBidiPropertyBlockLevel1_0100, /* B9C00..B9CFF */
+ FriBidiPropertyBlockLevel1_0100, /* B9D00..B9DFF */
+ FriBidiPropertyBlockLevel1_0100, /* B9E00..B9EFF */
+ FriBidiPropertyBlockLevel1_0100, /* B9F00..B9FFF */
+ FriBidiPropertyBlockLevel1_0100, /* BA000..BA0FF */
+ FriBidiPropertyBlockLevel1_0100, /* BA100..BA1FF */
+ FriBidiPropertyBlockLevel1_0100, /* BA200..BA2FF */
+ FriBidiPropertyBlockLevel1_0100, /* BA300..BA3FF */
+ FriBidiPropertyBlockLevel1_0100, /* BA400..BA4FF */
+ FriBidiPropertyBlockLevel1_0100, /* BA500..BA5FF */
+ FriBidiPropertyBlockLevel1_0100, /* BA600..BA6FF */
+ FriBidiPropertyBlockLevel1_0100, /* BA700..BA7FF */
+ FriBidiPropertyBlockLevel1_0100, /* BA800..BA8FF */
+ FriBidiPropertyBlockLevel1_0100, /* BA900..BA9FF */
+ FriBidiPropertyBlockLevel1_0100, /* BAA00..BAAFF */
+ FriBidiPropertyBlockLevel1_0100, /* BAB00..BABFF */
+ FriBidiPropertyBlockLevel1_0100, /* BAC00..BACFF */
+ FriBidiPropertyBlockLevel1_0100, /* BAD00..BADFF */
+ FriBidiPropertyBlockLevel1_0100, /* BAE00..BAEFF */
+ FriBidiPropertyBlockLevel1_0100, /* BAF00..BAFFF */
+ FriBidiPropertyBlockLevel1_0100, /* BB000..BB0FF */
+ FriBidiPropertyBlockLevel1_0100, /* BB100..BB1FF */
+ FriBidiPropertyBlockLevel1_0100, /* BB200..BB2FF */
+ FriBidiPropertyBlockLevel1_0100, /* BB300..BB3FF */
+ FriBidiPropertyBlockLevel1_0100, /* BB400..BB4FF */
+ FriBidiPropertyBlockLevel1_0100, /* BB500..BB5FF */
+ FriBidiPropertyBlockLevel1_0100, /* BB600..BB6FF */
+ FriBidiPropertyBlockLevel1_0100, /* BB700..BB7FF */
+ FriBidiPropertyBlockLevel1_0100, /* BB800..BB8FF */
+ FriBidiPropertyBlockLevel1_0100, /* BB900..BB9FF */
+ FriBidiPropertyBlockLevel1_0100, /* BBA00..BBAFF */
+ FriBidiPropertyBlockLevel1_0100, /* BBB00..BBBFF */
+ FriBidiPropertyBlockLevel1_0100, /* BBC00..BBCFF */
+ FriBidiPropertyBlockLevel1_0100, /* BBD00..BBDFF */
+ FriBidiPropertyBlockLevel1_0100, /* BBE00..BBEFF */
+ FriBidiPropertyBlockLevel1_0100, /* BBF00..BBFFF */
+ FriBidiPropertyBlockLevel1_0100, /* BC000..BC0FF */
+ FriBidiPropertyBlockLevel1_0100, /* BC100..BC1FF */
+ FriBidiPropertyBlockLevel1_0100, /* BC200..BC2FF */
+ FriBidiPropertyBlockLevel1_0100, /* BC300..BC3FF */
+ FriBidiPropertyBlockLevel1_0100, /* BC400..BC4FF */
+ FriBidiPropertyBlockLevel1_0100, /* BC500..BC5FF */
+ FriBidiPropertyBlockLevel1_0100, /* BC600..BC6FF */
+ FriBidiPropertyBlockLevel1_0100, /* BC700..BC7FF */
+ FriBidiPropertyBlockLevel1_0100, /* BC800..BC8FF */
+ FriBidiPropertyBlockLevel1_0100, /* BC900..BC9FF */
+ FriBidiPropertyBlockLevel1_0100, /* BCA00..BCAFF */
+ FriBidiPropertyBlockLevel1_0100, /* BCB00..BCBFF */
+ FriBidiPropertyBlockLevel1_0100, /* BCC00..BCCFF */
+ FriBidiPropertyBlockLevel1_0100, /* BCD00..BCDFF */
+ FriBidiPropertyBlockLevel1_0100, /* BCE00..BCEFF */
+ FriBidiPropertyBlockLevel1_0100, /* BCF00..BCFFF */
+ FriBidiPropertyBlockLevel1_0100, /* BD000..BD0FF */
+ FriBidiPropertyBlockLevel1_0100, /* BD100..BD1FF */
+ FriBidiPropertyBlockLevel1_0100, /* BD200..BD2FF */
+ FriBidiPropertyBlockLevel1_0100, /* BD300..BD3FF */
+ FriBidiPropertyBlockLevel1_0100, /* BD400..BD4FF */
+ FriBidiPropertyBlockLevel1_0100, /* BD500..BD5FF */
+ FriBidiPropertyBlockLevel1_0100, /* BD600..BD6FF */
+ FriBidiPropertyBlockLevel1_0100, /* BD700..BD7FF */
+ FriBidiPropertyBlockLevel1_0100, /* BD800..BD8FF */
+ FriBidiPropertyBlockLevel1_0100, /* BD900..BD9FF */
+ FriBidiPropertyBlockLevel1_0100, /* BDA00..BDAFF */
+ FriBidiPropertyBlockLevel1_0100, /* BDB00..BDBFF */
+ FriBidiPropertyBlockLevel1_0100, /* BDC00..BDCFF */
+ FriBidiPropertyBlockLevel1_0100, /* BDD00..BDDFF */
+ FriBidiPropertyBlockLevel1_0100, /* BDE00..BDEFF */
+ FriBidiPropertyBlockLevel1_0100, /* BDF00..BDFFF */
+ FriBidiPropertyBlockLevel1_0100, /* BE000..BE0FF */
+ FriBidiPropertyBlockLevel1_0100, /* BE100..BE1FF */
+ FriBidiPropertyBlockLevel1_0100, /* BE200..BE2FF */
+ FriBidiPropertyBlockLevel1_0100, /* BE300..BE3FF */
+ FriBidiPropertyBlockLevel1_0100, /* BE400..BE4FF */
+ FriBidiPropertyBlockLevel1_0100, /* BE500..BE5FF */
+ FriBidiPropertyBlockLevel1_0100, /* BE600..BE6FF */
+ FriBidiPropertyBlockLevel1_0100, /* BE700..BE7FF */
+ FriBidiPropertyBlockLevel1_0100, /* BE800..BE8FF */
+ FriBidiPropertyBlockLevel1_0100, /* BE900..BE9FF */
+ FriBidiPropertyBlockLevel1_0100, /* BEA00..BEAFF */
+ FriBidiPropertyBlockLevel1_0100, /* BEB00..BEBFF */
+ FriBidiPropertyBlockLevel1_0100, /* BEC00..BECFF */
+ FriBidiPropertyBlockLevel1_0100, /* BED00..BEDFF */
+ FriBidiPropertyBlockLevel1_0100, /* BEE00..BEEFF */
+ FriBidiPropertyBlockLevel1_0100, /* BEF00..BEFFF */
+ FriBidiPropertyBlockLevel1_0100, /* BF000..BF0FF */
+ FriBidiPropertyBlockLevel1_0100, /* BF100..BF1FF */
+ FriBidiPropertyBlockLevel1_0100, /* BF200..BF2FF */
+ FriBidiPropertyBlockLevel1_0100, /* BF300..BF3FF */
+ FriBidiPropertyBlockLevel1_0100, /* BF400..BF4FF */
+ FriBidiPropertyBlockLevel1_0100, /* BF500..BF5FF */
+ FriBidiPropertyBlockLevel1_0100, /* BF600..BF6FF */
+ FriBidiPropertyBlockLevel1_0100, /* BF700..BF7FF */
+ FriBidiPropertyBlockLevel1_0100, /* BF800..BF8FF */
+ FriBidiPropertyBlockLevel1_0100, /* BF900..BF9FF */
+ FriBidiPropertyBlockLevel1_0100, /* BFA00..BFAFF */
+ FriBidiPropertyBlockLevel1_0100, /* BFB00..BFBFF */
+ FriBidiPropertyBlockLevel1_0100, /* BFC00..BFCFF */
+ FriBidiPropertyBlockLevel1_0100, /* BFD00..BFDFF */
+ FriBidiPropertyBlockLevel1_0100, /* BFE00..BFEFF */
+ FriBidiPropertyBlockLevel1_0100, /* BFF00..BFFFF */
+ FriBidiPropertyBlockLevel1_0100, /* C0000..C00FF */
+ FriBidiPropertyBlockLevel1_0100, /* C0100..C01FF */
+ FriBidiPropertyBlockLevel1_0100, /* C0200..C02FF */
+ FriBidiPropertyBlockLevel1_0100, /* C0300..C03FF */
+ FriBidiPropertyBlockLevel1_0100, /* C0400..C04FF */
+ FriBidiPropertyBlockLevel1_0100, /* C0500..C05FF */
+ FriBidiPropertyBlockLevel1_0100, /* C0600..C06FF */
+ FriBidiPropertyBlockLevel1_0100, /* C0700..C07FF */
+ FriBidiPropertyBlockLevel1_0100, /* C0800..C08FF */
+ FriBidiPropertyBlockLevel1_0100, /* C0900..C09FF */
+ FriBidiPropertyBlockLevel1_0100, /* C0A00..C0AFF */
+ FriBidiPropertyBlockLevel1_0100, /* C0B00..C0BFF */
+ FriBidiPropertyBlockLevel1_0100, /* C0C00..C0CFF */
+ FriBidiPropertyBlockLevel1_0100, /* C0D00..C0DFF */
+ FriBidiPropertyBlockLevel1_0100, /* C0E00..C0EFF */
+ FriBidiPropertyBlockLevel1_0100, /* C0F00..C0FFF */
+ FriBidiPropertyBlockLevel1_0100, /* C1000..C10FF */
+ FriBidiPropertyBlockLevel1_0100, /* C1100..C11FF */
+ FriBidiPropertyBlockLevel1_0100, /* C1200..C12FF */
+ FriBidiPropertyBlockLevel1_0100, /* C1300..C13FF */
+ FriBidiPropertyBlockLevel1_0100, /* C1400..C14FF */
+ FriBidiPropertyBlockLevel1_0100, /* C1500..C15FF */
+ FriBidiPropertyBlockLevel1_0100, /* C1600..C16FF */
+ FriBidiPropertyBlockLevel1_0100, /* C1700..C17FF */
+ FriBidiPropertyBlockLevel1_0100, /* C1800..C18FF */
+ FriBidiPropertyBlockLevel1_0100, /* C1900..C19FF */
+ FriBidiPropertyBlockLevel1_0100, /* C1A00..C1AFF */
+ FriBidiPropertyBlockLevel1_0100, /* C1B00..C1BFF */
+ FriBidiPropertyBlockLevel1_0100, /* C1C00..C1CFF */
+ FriBidiPropertyBlockLevel1_0100, /* C1D00..C1DFF */
+ FriBidiPropertyBlockLevel1_0100, /* C1E00..C1EFF */
+ FriBidiPropertyBlockLevel1_0100, /* C1F00..C1FFF */
+ FriBidiPropertyBlockLevel1_0100, /* C2000..C20FF */
+ FriBidiPropertyBlockLevel1_0100, /* C2100..C21FF */
+ FriBidiPropertyBlockLevel1_0100, /* C2200..C22FF */
+ FriBidiPropertyBlockLevel1_0100, /* C2300..C23FF */
+ FriBidiPropertyBlockLevel1_0100, /* C2400..C24FF */
+ FriBidiPropertyBlockLevel1_0100, /* C2500..C25FF */
+ FriBidiPropertyBlockLevel1_0100, /* C2600..C26FF */
+ FriBidiPropertyBlockLevel1_0100, /* C2700..C27FF */
+ FriBidiPropertyBlockLevel1_0100, /* C2800..C28FF */
+ FriBidiPropertyBlockLevel1_0100, /* C2900..C29FF */
+ FriBidiPropertyBlockLevel1_0100, /* C2A00..C2AFF */
+ FriBidiPropertyBlockLevel1_0100, /* C2B00..C2BFF */
+ FriBidiPropertyBlockLevel1_0100, /* C2C00..C2CFF */
+ FriBidiPropertyBlockLevel1_0100, /* C2D00..C2DFF */
+ FriBidiPropertyBlockLevel1_0100, /* C2E00..C2EFF */
+ FriBidiPropertyBlockLevel1_0100, /* C2F00..C2FFF */
+ FriBidiPropertyBlockLevel1_0100, /* C3000..C30FF */
+ FriBidiPropertyBlockLevel1_0100, /* C3100..C31FF */
+ FriBidiPropertyBlockLevel1_0100, /* C3200..C32FF */
+ FriBidiPropertyBlockLevel1_0100, /* C3300..C33FF */
+ FriBidiPropertyBlockLevel1_0100, /* C3400..C34FF */
+ FriBidiPropertyBlockLevel1_0100, /* C3500..C35FF */
+ FriBidiPropertyBlockLevel1_0100, /* C3600..C36FF */
+ FriBidiPropertyBlockLevel1_0100, /* C3700..C37FF */
+ FriBidiPropertyBlockLevel1_0100, /* C3800..C38FF */
+ FriBidiPropertyBlockLevel1_0100, /* C3900..C39FF */
+ FriBidiPropertyBlockLevel1_0100, /* C3A00..C3AFF */
+ FriBidiPropertyBlockLevel1_0100, /* C3B00..C3BFF */
+ FriBidiPropertyBlockLevel1_0100, /* C3C00..C3CFF */
+ FriBidiPropertyBlockLevel1_0100, /* C3D00..C3DFF */
+ FriBidiPropertyBlockLevel1_0100, /* C3E00..C3EFF */
+ FriBidiPropertyBlockLevel1_0100, /* C3F00..C3FFF */
+ FriBidiPropertyBlockLevel1_0100, /* C4000..C40FF */
+ FriBidiPropertyBlockLevel1_0100, /* C4100..C41FF */
+ FriBidiPropertyBlockLevel1_0100, /* C4200..C42FF */
+ FriBidiPropertyBlockLevel1_0100, /* C4300..C43FF */
+ FriBidiPropertyBlockLevel1_0100, /* C4400..C44FF */
+ FriBidiPropertyBlockLevel1_0100, /* C4500..C45FF */
+ FriBidiPropertyBlockLevel1_0100, /* C4600..C46FF */
+ FriBidiPropertyBlockLevel1_0100, /* C4700..C47FF */
+ FriBidiPropertyBlockLevel1_0100, /* C4800..C48FF */
+ FriBidiPropertyBlockLevel1_0100, /* C4900..C49FF */
+ FriBidiPropertyBlockLevel1_0100, /* C4A00..C4AFF */
+ FriBidiPropertyBlockLevel1_0100, /* C4B00..C4BFF */
+ FriBidiPropertyBlockLevel1_0100, /* C4C00..C4CFF */
+ FriBidiPropertyBlockLevel1_0100, /* C4D00..C4DFF */
+ FriBidiPropertyBlockLevel1_0100, /* C4E00..C4EFF */
+ FriBidiPropertyBlockLevel1_0100, /* C4F00..C4FFF */
+ FriBidiPropertyBlockLevel1_0100, /* C5000..C50FF */
+ FriBidiPropertyBlockLevel1_0100, /* C5100..C51FF */
+ FriBidiPropertyBlockLevel1_0100, /* C5200..C52FF */
+ FriBidiPropertyBlockLevel1_0100, /* C5300..C53FF */
+ FriBidiPropertyBlockLevel1_0100, /* C5400..C54FF */
+ FriBidiPropertyBlockLevel1_0100, /* C5500..C55FF */
+ FriBidiPropertyBlockLevel1_0100, /* C5600..C56FF */
+ FriBidiPropertyBlockLevel1_0100, /* C5700..C57FF */
+ FriBidiPropertyBlockLevel1_0100, /* C5800..C58FF */
+ FriBidiPropertyBlockLevel1_0100, /* C5900..C59FF */
+ FriBidiPropertyBlockLevel1_0100, /* C5A00..C5AFF */
+ FriBidiPropertyBlockLevel1_0100, /* C5B00..C5BFF */
+ FriBidiPropertyBlockLevel1_0100, /* C5C00..C5CFF */
+ FriBidiPropertyBlockLevel1_0100, /* C5D00..C5DFF */
+ FriBidiPropertyBlockLevel1_0100, /* C5E00..C5EFF */
+ FriBidiPropertyBlockLevel1_0100, /* C5F00..C5FFF */
+ FriBidiPropertyBlockLevel1_0100, /* C6000..C60FF */
+ FriBidiPropertyBlockLevel1_0100, /* C6100..C61FF */
+ FriBidiPropertyBlockLevel1_0100, /* C6200..C62FF */
+ FriBidiPropertyBlockLevel1_0100, /* C6300..C63FF */
+ FriBidiPropertyBlockLevel1_0100, /* C6400..C64FF */
+ FriBidiPropertyBlockLevel1_0100, /* C6500..C65FF */
+ FriBidiPropertyBlockLevel1_0100, /* C6600..C66FF */
+ FriBidiPropertyBlockLevel1_0100, /* C6700..C67FF */
+ FriBidiPropertyBlockLevel1_0100, /* C6800..C68FF */
+ FriBidiPropertyBlockLevel1_0100, /* C6900..C69FF */
+ FriBidiPropertyBlockLevel1_0100, /* C6A00..C6AFF */
+ FriBidiPropertyBlockLevel1_0100, /* C6B00..C6BFF */
+ FriBidiPropertyBlockLevel1_0100, /* C6C00..C6CFF */
+ FriBidiPropertyBlockLevel1_0100, /* C6D00..C6DFF */
+ FriBidiPropertyBlockLevel1_0100, /* C6E00..C6EFF */
+ FriBidiPropertyBlockLevel1_0100, /* C6F00..C6FFF */
+ FriBidiPropertyBlockLevel1_0100, /* C7000..C70FF */
+ FriBidiPropertyBlockLevel1_0100, /* C7100..C71FF */
+ FriBidiPropertyBlockLevel1_0100, /* C7200..C72FF */
+ FriBidiPropertyBlockLevel1_0100, /* C7300..C73FF */
+ FriBidiPropertyBlockLevel1_0100, /* C7400..C74FF */
+ FriBidiPropertyBlockLevel1_0100, /* C7500..C75FF */
+ FriBidiPropertyBlockLevel1_0100, /* C7600..C76FF */
+ FriBidiPropertyBlockLevel1_0100, /* C7700..C77FF */
+ FriBidiPropertyBlockLevel1_0100, /* C7800..C78FF */
+ FriBidiPropertyBlockLevel1_0100, /* C7900..C79FF */
+ FriBidiPropertyBlockLevel1_0100, /* C7A00..C7AFF */
+ FriBidiPropertyBlockLevel1_0100, /* C7B00..C7BFF */
+ FriBidiPropertyBlockLevel1_0100, /* C7C00..C7CFF */
+ FriBidiPropertyBlockLevel1_0100, /* C7D00..C7DFF */
+ FriBidiPropertyBlockLevel1_0100, /* C7E00..C7EFF */
+ FriBidiPropertyBlockLevel1_0100, /* C7F00..C7FFF */
+ FriBidiPropertyBlockLevel1_0100, /* C8000..C80FF */
+ FriBidiPropertyBlockLevel1_0100, /* C8100..C81FF */
+ FriBidiPropertyBlockLevel1_0100, /* C8200..C82FF */
+ FriBidiPropertyBlockLevel1_0100, /* C8300..C83FF */
+ FriBidiPropertyBlockLevel1_0100, /* C8400..C84FF */
+ FriBidiPropertyBlockLevel1_0100, /* C8500..C85FF */
+ FriBidiPropertyBlockLevel1_0100, /* C8600..C86FF */
+ FriBidiPropertyBlockLevel1_0100, /* C8700..C87FF */
+ FriBidiPropertyBlockLevel1_0100, /* C8800..C88FF */
+ FriBidiPropertyBlockLevel1_0100, /* C8900..C89FF */
+ FriBidiPropertyBlockLevel1_0100, /* C8A00..C8AFF */
+ FriBidiPropertyBlockLevel1_0100, /* C8B00..C8BFF */
+ FriBidiPropertyBlockLevel1_0100, /* C8C00..C8CFF */
+ FriBidiPropertyBlockLevel1_0100, /* C8D00..C8DFF */
+ FriBidiPropertyBlockLevel1_0100, /* C8E00..C8EFF */
+ FriBidiPropertyBlockLevel1_0100, /* C8F00..C8FFF */
+ FriBidiPropertyBlockLevel1_0100, /* C9000..C90FF */
+ FriBidiPropertyBlockLevel1_0100, /* C9100..C91FF */
+ FriBidiPropertyBlockLevel1_0100, /* C9200..C92FF */
+ FriBidiPropertyBlockLevel1_0100, /* C9300..C93FF */
+ FriBidiPropertyBlockLevel1_0100, /* C9400..C94FF */
+ FriBidiPropertyBlockLevel1_0100, /* C9500..C95FF */
+ FriBidiPropertyBlockLevel1_0100, /* C9600..C96FF */
+ FriBidiPropertyBlockLevel1_0100, /* C9700..C97FF */
+ FriBidiPropertyBlockLevel1_0100, /* C9800..C98FF */
+ FriBidiPropertyBlockLevel1_0100, /* C9900..C99FF */
+ FriBidiPropertyBlockLevel1_0100, /* C9A00..C9AFF */
+ FriBidiPropertyBlockLevel1_0100, /* C9B00..C9BFF */
+ FriBidiPropertyBlockLevel1_0100, /* C9C00..C9CFF */
+ FriBidiPropertyBlockLevel1_0100, /* C9D00..C9DFF */
+ FriBidiPropertyBlockLevel1_0100, /* C9E00..C9EFF */
+ FriBidiPropertyBlockLevel1_0100, /* C9F00..C9FFF */
+ FriBidiPropertyBlockLevel1_0100, /* CA000..CA0FF */
+ FriBidiPropertyBlockLevel1_0100, /* CA100..CA1FF */
+ FriBidiPropertyBlockLevel1_0100, /* CA200..CA2FF */
+ FriBidiPropertyBlockLevel1_0100, /* CA300..CA3FF */
+ FriBidiPropertyBlockLevel1_0100, /* CA400..CA4FF */
+ FriBidiPropertyBlockLevel1_0100, /* CA500..CA5FF */
+ FriBidiPropertyBlockLevel1_0100, /* CA600..CA6FF */
+ FriBidiPropertyBlockLevel1_0100, /* CA700..CA7FF */
+ FriBidiPropertyBlockLevel1_0100, /* CA800..CA8FF */
+ FriBidiPropertyBlockLevel1_0100, /* CA900..CA9FF */
+ FriBidiPropertyBlockLevel1_0100, /* CAA00..CAAFF */
+ FriBidiPropertyBlockLevel1_0100, /* CAB00..CABFF */
+ FriBidiPropertyBlockLevel1_0100, /* CAC00..CACFF */
+ FriBidiPropertyBlockLevel1_0100, /* CAD00..CADFF */
+ FriBidiPropertyBlockLevel1_0100, /* CAE00..CAEFF */
+ FriBidiPropertyBlockLevel1_0100, /* CAF00..CAFFF */
+ FriBidiPropertyBlockLevel1_0100, /* CB000..CB0FF */
+ FriBidiPropertyBlockLevel1_0100, /* CB100..CB1FF */
+ FriBidiPropertyBlockLevel1_0100, /* CB200..CB2FF */
+ FriBidiPropertyBlockLevel1_0100, /* CB300..CB3FF */
+ FriBidiPropertyBlockLevel1_0100, /* CB400..CB4FF */
+ FriBidiPropertyBlockLevel1_0100, /* CB500..CB5FF */
+ FriBidiPropertyBlockLevel1_0100, /* CB600..CB6FF */
+ FriBidiPropertyBlockLevel1_0100, /* CB700..CB7FF */
+ FriBidiPropertyBlockLevel1_0100, /* CB800..CB8FF */
+ FriBidiPropertyBlockLevel1_0100, /* CB900..CB9FF */
+ FriBidiPropertyBlockLevel1_0100, /* CBA00..CBAFF */
+ FriBidiPropertyBlockLevel1_0100, /* CBB00..CBBFF */
+ FriBidiPropertyBlockLevel1_0100, /* CBC00..CBCFF */
+ FriBidiPropertyBlockLevel1_0100, /* CBD00..CBDFF */
+ FriBidiPropertyBlockLevel1_0100, /* CBE00..CBEFF */
+ FriBidiPropertyBlockLevel1_0100, /* CBF00..CBFFF */
+ FriBidiPropertyBlockLevel1_0100, /* CC000..CC0FF */
+ FriBidiPropertyBlockLevel1_0100, /* CC100..CC1FF */
+ FriBidiPropertyBlockLevel1_0100, /* CC200..CC2FF */
+ FriBidiPropertyBlockLevel1_0100, /* CC300..CC3FF */
+ FriBidiPropertyBlockLevel1_0100, /* CC400..CC4FF */
+ FriBidiPropertyBlockLevel1_0100, /* CC500..CC5FF */
+ FriBidiPropertyBlockLevel1_0100, /* CC600..CC6FF */
+ FriBidiPropertyBlockLevel1_0100, /* CC700..CC7FF */
+ FriBidiPropertyBlockLevel1_0100, /* CC800..CC8FF */
+ FriBidiPropertyBlockLevel1_0100, /* CC900..CC9FF */
+ FriBidiPropertyBlockLevel1_0100, /* CCA00..CCAFF */
+ FriBidiPropertyBlockLevel1_0100, /* CCB00..CCBFF */
+ FriBidiPropertyBlockLevel1_0100, /* CCC00..CCCFF */
+ FriBidiPropertyBlockLevel1_0100, /* CCD00..CCDFF */
+ FriBidiPropertyBlockLevel1_0100, /* CCE00..CCEFF */
+ FriBidiPropertyBlockLevel1_0100, /* CCF00..CCFFF */
+ FriBidiPropertyBlockLevel1_0100, /* CD000..CD0FF */
+ FriBidiPropertyBlockLevel1_0100, /* CD100..CD1FF */
+ FriBidiPropertyBlockLevel1_0100, /* CD200..CD2FF */
+ FriBidiPropertyBlockLevel1_0100, /* CD300..CD3FF */
+ FriBidiPropertyBlockLevel1_0100, /* CD400..CD4FF */
+ FriBidiPropertyBlockLevel1_0100, /* CD500..CD5FF */
+ FriBidiPropertyBlockLevel1_0100, /* CD600..CD6FF */
+ FriBidiPropertyBlockLevel1_0100, /* CD700..CD7FF */
+ FriBidiPropertyBlockLevel1_0100, /* CD800..CD8FF */
+ FriBidiPropertyBlockLevel1_0100, /* CD900..CD9FF */
+ FriBidiPropertyBlockLevel1_0100, /* CDA00..CDAFF */
+ FriBidiPropertyBlockLevel1_0100, /* CDB00..CDBFF */
+ FriBidiPropertyBlockLevel1_0100, /* CDC00..CDCFF */
+ FriBidiPropertyBlockLevel1_0100, /* CDD00..CDDFF */
+ FriBidiPropertyBlockLevel1_0100, /* CDE00..CDEFF */
+ FriBidiPropertyBlockLevel1_0100, /* CDF00..CDFFF */
+ FriBidiPropertyBlockLevel1_0100, /* CE000..CE0FF */
+ FriBidiPropertyBlockLevel1_0100, /* CE100..CE1FF */
+ FriBidiPropertyBlockLevel1_0100, /* CE200..CE2FF */
+ FriBidiPropertyBlockLevel1_0100, /* CE300..CE3FF */
+ FriBidiPropertyBlockLevel1_0100, /* CE400..CE4FF */
+ FriBidiPropertyBlockLevel1_0100, /* CE500..CE5FF */
+ FriBidiPropertyBlockLevel1_0100, /* CE600..CE6FF */
+ FriBidiPropertyBlockLevel1_0100, /* CE700..CE7FF */
+ FriBidiPropertyBlockLevel1_0100, /* CE800..CE8FF */
+ FriBidiPropertyBlockLevel1_0100, /* CE900..CE9FF */
+ FriBidiPropertyBlockLevel1_0100, /* CEA00..CEAFF */
+ FriBidiPropertyBlockLevel1_0100, /* CEB00..CEBFF */
+ FriBidiPropertyBlockLevel1_0100, /* CEC00..CECFF */
+ FriBidiPropertyBlockLevel1_0100, /* CED00..CEDFF */
+ FriBidiPropertyBlockLevel1_0100, /* CEE00..CEEFF */
+ FriBidiPropertyBlockLevel1_0100, /* CEF00..CEFFF */
+ FriBidiPropertyBlockLevel1_0100, /* CF000..CF0FF */
+ FriBidiPropertyBlockLevel1_0100, /* CF100..CF1FF */
+ FriBidiPropertyBlockLevel1_0100, /* CF200..CF2FF */
+ FriBidiPropertyBlockLevel1_0100, /* CF300..CF3FF */
+ FriBidiPropertyBlockLevel1_0100, /* CF400..CF4FF */
+ FriBidiPropertyBlockLevel1_0100, /* CF500..CF5FF */
+ FriBidiPropertyBlockLevel1_0100, /* CF600..CF6FF */
+ FriBidiPropertyBlockLevel1_0100, /* CF700..CF7FF */
+ FriBidiPropertyBlockLevel1_0100, /* CF800..CF8FF */
+ FriBidiPropertyBlockLevel1_0100, /* CF900..CF9FF */
+ FriBidiPropertyBlockLevel1_0100, /* CFA00..CFAFF */
+ FriBidiPropertyBlockLevel1_0100, /* CFB00..CFBFF */
+ FriBidiPropertyBlockLevel1_0100, /* CFC00..CFCFF */
+ FriBidiPropertyBlockLevel1_0100, /* CFD00..CFDFF */
+ FriBidiPropertyBlockLevel1_0100, /* CFE00..CFEFF */
+ FriBidiPropertyBlockLevel1_0100, /* CFF00..CFFFF */
+ FriBidiPropertyBlockLevel1_0100, /* D0000..D00FF */
+ FriBidiPropertyBlockLevel1_0100, /* D0100..D01FF */
+ FriBidiPropertyBlockLevel1_0100, /* D0200..D02FF */
+ FriBidiPropertyBlockLevel1_0100, /* D0300..D03FF */
+ FriBidiPropertyBlockLevel1_0100, /* D0400..D04FF */
+ FriBidiPropertyBlockLevel1_0100, /* D0500..D05FF */
+ FriBidiPropertyBlockLevel1_0100, /* D0600..D06FF */
+ FriBidiPropertyBlockLevel1_0100, /* D0700..D07FF */
+ FriBidiPropertyBlockLevel1_0100, /* D0800..D08FF */
+ FriBidiPropertyBlockLevel1_0100, /* D0900..D09FF */
+ FriBidiPropertyBlockLevel1_0100, /* D0A00..D0AFF */
+ FriBidiPropertyBlockLevel1_0100, /* D0B00..D0BFF */
+ FriBidiPropertyBlockLevel1_0100, /* D0C00..D0CFF */
+ FriBidiPropertyBlockLevel1_0100, /* D0D00..D0DFF */
+ FriBidiPropertyBlockLevel1_0100, /* D0E00..D0EFF */
+ FriBidiPropertyBlockLevel1_0100, /* D0F00..D0FFF */
+ FriBidiPropertyBlockLevel1_0100, /* D1000..D10FF */
+ FriBidiPropertyBlockLevel1_0100, /* D1100..D11FF */
+ FriBidiPropertyBlockLevel1_0100, /* D1200..D12FF */
+ FriBidiPropertyBlockLevel1_0100, /* D1300..D13FF */
+ FriBidiPropertyBlockLevel1_0100, /* D1400..D14FF */
+ FriBidiPropertyBlockLevel1_0100, /* D1500..D15FF */
+ FriBidiPropertyBlockLevel1_0100, /* D1600..D16FF */
+ FriBidiPropertyBlockLevel1_0100, /* D1700..D17FF */
+ FriBidiPropertyBlockLevel1_0100, /* D1800..D18FF */
+ FriBidiPropertyBlockLevel1_0100, /* D1900..D19FF */
+ FriBidiPropertyBlockLevel1_0100, /* D1A00..D1AFF */
+ FriBidiPropertyBlockLevel1_0100, /* D1B00..D1BFF */
+ FriBidiPropertyBlockLevel1_0100, /* D1C00..D1CFF */
+ FriBidiPropertyBlockLevel1_0100, /* D1D00..D1DFF */
+ FriBidiPropertyBlockLevel1_0100, /* D1E00..D1EFF */
+ FriBidiPropertyBlockLevel1_0100, /* D1F00..D1FFF */
+ FriBidiPropertyBlockLevel1_0100, /* D2000..D20FF */
+ FriBidiPropertyBlockLevel1_0100, /* D2100..D21FF */
+ FriBidiPropertyBlockLevel1_0100, /* D2200..D22FF */
+ FriBidiPropertyBlockLevel1_0100, /* D2300..D23FF */
+ FriBidiPropertyBlockLevel1_0100, /* D2400..D24FF */
+ FriBidiPropertyBlockLevel1_0100, /* D2500..D25FF */
+ FriBidiPropertyBlockLevel1_0100, /* D2600..D26FF */
+ FriBidiPropertyBlockLevel1_0100, /* D2700..D27FF */
+ FriBidiPropertyBlockLevel1_0100, /* D2800..D28FF */
+ FriBidiPropertyBlockLevel1_0100, /* D2900..D29FF */
+ FriBidiPropertyBlockLevel1_0100, /* D2A00..D2AFF */
+ FriBidiPropertyBlockLevel1_0100, /* D2B00..D2BFF */
+ FriBidiPropertyBlockLevel1_0100, /* D2C00..D2CFF */
+ FriBidiPropertyBlockLevel1_0100, /* D2D00..D2DFF */
+ FriBidiPropertyBlockLevel1_0100, /* D2E00..D2EFF */
+ FriBidiPropertyBlockLevel1_0100, /* D2F00..D2FFF */
+ FriBidiPropertyBlockLevel1_0100, /* D3000..D30FF */
+ FriBidiPropertyBlockLevel1_0100, /* D3100..D31FF */
+ FriBidiPropertyBlockLevel1_0100, /* D3200..D32FF */
+ FriBidiPropertyBlockLevel1_0100, /* D3300..D33FF */
+ FriBidiPropertyBlockLevel1_0100, /* D3400..D34FF */
+ FriBidiPropertyBlockLevel1_0100, /* D3500..D35FF */
+ FriBidiPropertyBlockLevel1_0100, /* D3600..D36FF */
+ FriBidiPropertyBlockLevel1_0100, /* D3700..D37FF */
+ FriBidiPropertyBlockLevel1_0100, /* D3800..D38FF */
+ FriBidiPropertyBlockLevel1_0100, /* D3900..D39FF */
+ FriBidiPropertyBlockLevel1_0100, /* D3A00..D3AFF */
+ FriBidiPropertyBlockLevel1_0100, /* D3B00..D3BFF */
+ FriBidiPropertyBlockLevel1_0100, /* D3C00..D3CFF */
+ FriBidiPropertyBlockLevel1_0100, /* D3D00..D3DFF */
+ FriBidiPropertyBlockLevel1_0100, /* D3E00..D3EFF */
+ FriBidiPropertyBlockLevel1_0100, /* D3F00..D3FFF */
+ FriBidiPropertyBlockLevel1_0100, /* D4000..D40FF */
+ FriBidiPropertyBlockLevel1_0100, /* D4100..D41FF */
+ FriBidiPropertyBlockLevel1_0100, /* D4200..D42FF */
+ FriBidiPropertyBlockLevel1_0100, /* D4300..D43FF */
+ FriBidiPropertyBlockLevel1_0100, /* D4400..D44FF */
+ FriBidiPropertyBlockLevel1_0100, /* D4500..D45FF */
+ FriBidiPropertyBlockLevel1_0100, /* D4600..D46FF */
+ FriBidiPropertyBlockLevel1_0100, /* D4700..D47FF */
+ FriBidiPropertyBlockLevel1_0100, /* D4800..D48FF */
+ FriBidiPropertyBlockLevel1_0100, /* D4900..D49FF */
+ FriBidiPropertyBlockLevel1_0100, /* D4A00..D4AFF */
+ FriBidiPropertyBlockLevel1_0100, /* D4B00..D4BFF */
+ FriBidiPropertyBlockLevel1_0100, /* D4C00..D4CFF */
+ FriBidiPropertyBlockLevel1_0100, /* D4D00..D4DFF */
+ FriBidiPropertyBlockLevel1_0100, /* D4E00..D4EFF */
+ FriBidiPropertyBlockLevel1_0100, /* D4F00..D4FFF */
+ FriBidiPropertyBlockLevel1_0100, /* D5000..D50FF */
+ FriBidiPropertyBlockLevel1_0100, /* D5100..D51FF */
+ FriBidiPropertyBlockLevel1_0100, /* D5200..D52FF */
+ FriBidiPropertyBlockLevel1_0100, /* D5300..D53FF */
+ FriBidiPropertyBlockLevel1_0100, /* D5400..D54FF */
+ FriBidiPropertyBlockLevel1_0100, /* D5500..D55FF */
+ FriBidiPropertyBlockLevel1_0100, /* D5600..D56FF */
+ FriBidiPropertyBlockLevel1_0100, /* D5700..D57FF */
+ FriBidiPropertyBlockLevel1_0100, /* D5800..D58FF */
+ FriBidiPropertyBlockLevel1_0100, /* D5900..D59FF */
+ FriBidiPropertyBlockLevel1_0100, /* D5A00..D5AFF */
+ FriBidiPropertyBlockLevel1_0100, /* D5B00..D5BFF */
+ FriBidiPropertyBlockLevel1_0100, /* D5C00..D5CFF */
+ FriBidiPropertyBlockLevel1_0100, /* D5D00..D5DFF */
+ FriBidiPropertyBlockLevel1_0100, /* D5E00..D5EFF */
+ FriBidiPropertyBlockLevel1_0100, /* D5F00..D5FFF */
+ FriBidiPropertyBlockLevel1_0100, /* D6000..D60FF */
+ FriBidiPropertyBlockLevel1_0100, /* D6100..D61FF */
+ FriBidiPropertyBlockLevel1_0100, /* D6200..D62FF */
+ FriBidiPropertyBlockLevel1_0100, /* D6300..D63FF */
+ FriBidiPropertyBlockLevel1_0100, /* D6400..D64FF */
+ FriBidiPropertyBlockLevel1_0100, /* D6500..D65FF */
+ FriBidiPropertyBlockLevel1_0100, /* D6600..D66FF */
+ FriBidiPropertyBlockLevel1_0100, /* D6700..D67FF */
+ FriBidiPropertyBlockLevel1_0100, /* D6800..D68FF */
+ FriBidiPropertyBlockLevel1_0100, /* D6900..D69FF */
+ FriBidiPropertyBlockLevel1_0100, /* D6A00..D6AFF */
+ FriBidiPropertyBlockLevel1_0100, /* D6B00..D6BFF */
+ FriBidiPropertyBlockLevel1_0100, /* D6C00..D6CFF */
+ FriBidiPropertyBlockLevel1_0100, /* D6D00..D6DFF */
+ FriBidiPropertyBlockLevel1_0100, /* D6E00..D6EFF */
+ FriBidiPropertyBlockLevel1_0100, /* D6F00..D6FFF */
+ FriBidiPropertyBlockLevel1_0100, /* D7000..D70FF */
+ FriBidiPropertyBlockLevel1_0100, /* D7100..D71FF */
+ FriBidiPropertyBlockLevel1_0100, /* D7200..D72FF */
+ FriBidiPropertyBlockLevel1_0100, /* D7300..D73FF */
+ FriBidiPropertyBlockLevel1_0100, /* D7400..D74FF */
+ FriBidiPropertyBlockLevel1_0100, /* D7500..D75FF */
+ FriBidiPropertyBlockLevel1_0100, /* D7600..D76FF */
+ FriBidiPropertyBlockLevel1_0100, /* D7700..D77FF */
+ FriBidiPropertyBlockLevel1_0100, /* D7800..D78FF */
+ FriBidiPropertyBlockLevel1_0100, /* D7900..D79FF */
+ FriBidiPropertyBlockLevel1_0100, /* D7A00..D7AFF */
+ FriBidiPropertyBlockLevel1_0100, /* D7B00..D7BFF */
+ FriBidiPropertyBlockLevel1_0100, /* D7C00..D7CFF */
+ FriBidiPropertyBlockLevel1_0100, /* D7D00..D7DFF */
+ FriBidiPropertyBlockLevel1_0100, /* D7E00..D7EFF */
+ FriBidiPropertyBlockLevel1_0100, /* D7F00..D7FFF */
+ FriBidiPropertyBlockLevel1_0100, /* D8000..D80FF */
+ FriBidiPropertyBlockLevel1_0100, /* D8100..D81FF */
+ FriBidiPropertyBlockLevel1_0100, /* D8200..D82FF */
+ FriBidiPropertyBlockLevel1_0100, /* D8300..D83FF */
+ FriBidiPropertyBlockLevel1_0100, /* D8400..D84FF */
+ FriBidiPropertyBlockLevel1_0100, /* D8500..D85FF */
+ FriBidiPropertyBlockLevel1_0100, /* D8600..D86FF */
+ FriBidiPropertyBlockLevel1_0100, /* D8700..D87FF */
+ FriBidiPropertyBlockLevel1_0100, /* D8800..D88FF */
+ FriBidiPropertyBlockLevel1_0100, /* D8900..D89FF */
+ FriBidiPropertyBlockLevel1_0100, /* D8A00..D8AFF */
+ FriBidiPropertyBlockLevel1_0100, /* D8B00..D8BFF */
+ FriBidiPropertyBlockLevel1_0100, /* D8C00..D8CFF */
+ FriBidiPropertyBlockLevel1_0100, /* D8D00..D8DFF */
+ FriBidiPropertyBlockLevel1_0100, /* D8E00..D8EFF */
+ FriBidiPropertyBlockLevel1_0100, /* D8F00..D8FFF */
+ FriBidiPropertyBlockLevel1_0100, /* D9000..D90FF */
+ FriBidiPropertyBlockLevel1_0100, /* D9100..D91FF */
+ FriBidiPropertyBlockLevel1_0100, /* D9200..D92FF */
+ FriBidiPropertyBlockLevel1_0100, /* D9300..D93FF */
+ FriBidiPropertyBlockLevel1_0100, /* D9400..D94FF */
+ FriBidiPropertyBlockLevel1_0100, /* D9500..D95FF */
+ FriBidiPropertyBlockLevel1_0100, /* D9600..D96FF */
+ FriBidiPropertyBlockLevel1_0100, /* D9700..D97FF */
+ FriBidiPropertyBlockLevel1_0100, /* D9800..D98FF */
+ FriBidiPropertyBlockLevel1_0100, /* D9900..D99FF */
+ FriBidiPropertyBlockLevel1_0100, /* D9A00..D9AFF */
+ FriBidiPropertyBlockLevel1_0100, /* D9B00..D9BFF */
+ FriBidiPropertyBlockLevel1_0100, /* D9C00..D9CFF */
+ FriBidiPropertyBlockLevel1_0100, /* D9D00..D9DFF */
+ FriBidiPropertyBlockLevel1_0100, /* D9E00..D9EFF */
+ FriBidiPropertyBlockLevel1_0100, /* D9F00..D9FFF */
+ FriBidiPropertyBlockLevel1_0100, /* DA000..DA0FF */
+ FriBidiPropertyBlockLevel1_0100, /* DA100..DA1FF */
+ FriBidiPropertyBlockLevel1_0100, /* DA200..DA2FF */
+ FriBidiPropertyBlockLevel1_0100, /* DA300..DA3FF */
+ FriBidiPropertyBlockLevel1_0100, /* DA400..DA4FF */
+ FriBidiPropertyBlockLevel1_0100, /* DA500..DA5FF */
+ FriBidiPropertyBlockLevel1_0100, /* DA600..DA6FF */
+ FriBidiPropertyBlockLevel1_0100, /* DA700..DA7FF */
+ FriBidiPropertyBlockLevel1_0100, /* DA800..DA8FF */
+ FriBidiPropertyBlockLevel1_0100, /* DA900..DA9FF */
+ FriBidiPropertyBlockLevel1_0100, /* DAA00..DAAFF */
+ FriBidiPropertyBlockLevel1_0100, /* DAB00..DABFF */
+ FriBidiPropertyBlockLevel1_0100, /* DAC00..DACFF */
+ FriBidiPropertyBlockLevel1_0100, /* DAD00..DADFF */
+ FriBidiPropertyBlockLevel1_0100, /* DAE00..DAEFF */
+ FriBidiPropertyBlockLevel1_0100, /* DAF00..DAFFF */
+ FriBidiPropertyBlockLevel1_0100, /* DB000..DB0FF */
+ FriBidiPropertyBlockLevel1_0100, /* DB100..DB1FF */
+ FriBidiPropertyBlockLevel1_0100, /* DB200..DB2FF */
+ FriBidiPropertyBlockLevel1_0100, /* DB300..DB3FF */
+ FriBidiPropertyBlockLevel1_0100, /* DB400..DB4FF */
+ FriBidiPropertyBlockLevel1_0100, /* DB500..DB5FF */
+ FriBidiPropertyBlockLevel1_0100, /* DB600..DB6FF */
+ FriBidiPropertyBlockLevel1_0100, /* DB700..DB7FF */
+ FriBidiPropertyBlockLevel1_0100, /* DB800..DB8FF */
+ FriBidiPropertyBlockLevel1_0100, /* DB900..DB9FF */
+ FriBidiPropertyBlockLevel1_0100, /* DBA00..DBAFF */
+ FriBidiPropertyBlockLevel1_0100, /* DBB00..DBBFF */
+ FriBidiPropertyBlockLevel1_0100, /* DBC00..DBCFF */
+ FriBidiPropertyBlockLevel1_0100, /* DBD00..DBDFF */
+ FriBidiPropertyBlockLevel1_0100, /* DBE00..DBEFF */
+ FriBidiPropertyBlockLevel1_0100, /* DBF00..DBFFF */
+ FriBidiPropertyBlockLevel1_0100, /* DC000..DC0FF */
+ FriBidiPropertyBlockLevel1_0100, /* DC100..DC1FF */
+ FriBidiPropertyBlockLevel1_0100, /* DC200..DC2FF */
+ FriBidiPropertyBlockLevel1_0100, /* DC300..DC3FF */
+ FriBidiPropertyBlockLevel1_0100, /* DC400..DC4FF */
+ FriBidiPropertyBlockLevel1_0100, /* DC500..DC5FF */
+ FriBidiPropertyBlockLevel1_0100, /* DC600..DC6FF */
+ FriBidiPropertyBlockLevel1_0100, /* DC700..DC7FF */
+ FriBidiPropertyBlockLevel1_0100, /* DC800..DC8FF */
+ FriBidiPropertyBlockLevel1_0100, /* DC900..DC9FF */
+ FriBidiPropertyBlockLevel1_0100, /* DCA00..DCAFF */
+ FriBidiPropertyBlockLevel1_0100, /* DCB00..DCBFF */
+ FriBidiPropertyBlockLevel1_0100, /* DCC00..DCCFF */
+ FriBidiPropertyBlockLevel1_0100, /* DCD00..DCDFF */
+ FriBidiPropertyBlockLevel1_0100, /* DCE00..DCEFF */
+ FriBidiPropertyBlockLevel1_0100, /* DCF00..DCFFF */
+ FriBidiPropertyBlockLevel1_0100, /* DD000..DD0FF */
+ FriBidiPropertyBlockLevel1_0100, /* DD100..DD1FF */
+ FriBidiPropertyBlockLevel1_0100, /* DD200..DD2FF */
+ FriBidiPropertyBlockLevel1_0100, /* DD300..DD3FF */
+ FriBidiPropertyBlockLevel1_0100, /* DD400..DD4FF */
+ FriBidiPropertyBlockLevel1_0100, /* DD500..DD5FF */
+ FriBidiPropertyBlockLevel1_0100, /* DD600..DD6FF */
+ FriBidiPropertyBlockLevel1_0100, /* DD700..DD7FF */
+ FriBidiPropertyBlockLevel1_0100, /* DD800..DD8FF */
+ FriBidiPropertyBlockLevel1_0100, /* DD900..DD9FF */
+ FriBidiPropertyBlockLevel1_0100, /* DDA00..DDAFF */
+ FriBidiPropertyBlockLevel1_0100, /* DDB00..DDBFF */
+ FriBidiPropertyBlockLevel1_0100, /* DDC00..DDCFF */
+ FriBidiPropertyBlockLevel1_0100, /* DDD00..DDDFF */
+ FriBidiPropertyBlockLevel1_0100, /* DDE00..DDEFF */
+ FriBidiPropertyBlockLevel1_0100, /* DDF00..DDFFF */
+ FriBidiPropertyBlockLevel1_0100, /* DE000..DE0FF */
+ FriBidiPropertyBlockLevel1_0100, /* DE100..DE1FF */
+ FriBidiPropertyBlockLevel1_0100, /* DE200..DE2FF */
+ FriBidiPropertyBlockLevel1_0100, /* DE300..DE3FF */
+ FriBidiPropertyBlockLevel1_0100, /* DE400..DE4FF */
+ FriBidiPropertyBlockLevel1_0100, /* DE500..DE5FF */
+ FriBidiPropertyBlockLevel1_0100, /* DE600..DE6FF */
+ FriBidiPropertyBlockLevel1_0100, /* DE700..DE7FF */
+ FriBidiPropertyBlockLevel1_0100, /* DE800..DE8FF */
+ FriBidiPropertyBlockLevel1_0100, /* DE900..DE9FF */
+ FriBidiPropertyBlockLevel1_0100, /* DEA00..DEAFF */
+ FriBidiPropertyBlockLevel1_0100, /* DEB00..DEBFF */
+ FriBidiPropertyBlockLevel1_0100, /* DEC00..DECFF */
+ FriBidiPropertyBlockLevel1_0100, /* DED00..DEDFF */
+ FriBidiPropertyBlockLevel1_0100, /* DEE00..DEEFF */
+ FriBidiPropertyBlockLevel1_0100, /* DEF00..DEFFF */
+ FriBidiPropertyBlockLevel1_0100, /* DF000..DF0FF */
+ FriBidiPropertyBlockLevel1_0100, /* DF100..DF1FF */
+ FriBidiPropertyBlockLevel1_0100, /* DF200..DF2FF */
+ FriBidiPropertyBlockLevel1_0100, /* DF300..DF3FF */
+ FriBidiPropertyBlockLevel1_0100, /* DF400..DF4FF */
+ FriBidiPropertyBlockLevel1_0100, /* DF500..DF5FF */
+ FriBidiPropertyBlockLevel1_0100, /* DF600..DF6FF */
+ FriBidiPropertyBlockLevel1_0100, /* DF700..DF7FF */
+ FriBidiPropertyBlockLevel1_0100, /* DF800..DF8FF */
+ FriBidiPropertyBlockLevel1_0100, /* DF900..DF9FF */
+ FriBidiPropertyBlockLevel1_0100, /* DFA00..DFAFF */
+ FriBidiPropertyBlockLevel1_0100, /* DFB00..DFBFF */
+ FriBidiPropertyBlockLevel1_0100, /* DFC00..DFCFF */
+ FriBidiPropertyBlockLevel1_0100, /* DFD00..DFDFF */
+ FriBidiPropertyBlockLevel1_0100, /* DFE00..DFEFF */
+ FriBidiPropertyBlockLevel1_0100, /* DFF00..DFFFF */
+ FriBidiPropertyBlockLevel1_E0000, /* E0000..E00FF */
+ FriBidiPropertyBlockLevel1_E0100, /* E0100..E01FF */
+ FriBidiPropertyBlockLevel1_0100, /* E0200..E02FF */
+ FriBidiPropertyBlockLevel1_0100, /* E0300..E03FF */
+ FriBidiPropertyBlockLevel1_0100, /* E0400..E04FF */
+ FriBidiPropertyBlockLevel1_0100, /* E0500..E05FF */
+ FriBidiPropertyBlockLevel1_0100, /* E0600..E06FF */
+ FriBidiPropertyBlockLevel1_0100, /* E0700..E07FF */
+ FriBidiPropertyBlockLevel1_0100, /* E0800..E08FF */
+ FriBidiPropertyBlockLevel1_0100, /* E0900..E09FF */
+ FriBidiPropertyBlockLevel1_0100, /* E0A00..E0AFF */
+ FriBidiPropertyBlockLevel1_0100, /* E0B00..E0BFF */
+ FriBidiPropertyBlockLevel1_0100, /* E0C00..E0CFF */
+ FriBidiPropertyBlockLevel1_0100, /* E0D00..E0DFF */
+ FriBidiPropertyBlockLevel1_0100, /* E0E00..E0EFF */
+ FriBidiPropertyBlockLevel1_0100, /* E0F00..E0FFF */
+ FriBidiPropertyBlockLevel1_0100, /* E1000..E10FF */
+ FriBidiPropertyBlockLevel1_0100, /* E1100..E11FF */
+ FriBidiPropertyBlockLevel1_0100, /* E1200..E12FF */
+ FriBidiPropertyBlockLevel1_0100, /* E1300..E13FF */
+ FriBidiPropertyBlockLevel1_0100, /* E1400..E14FF */
+ FriBidiPropertyBlockLevel1_0100, /* E1500..E15FF */
+ FriBidiPropertyBlockLevel1_0100, /* E1600..E16FF */
+ FriBidiPropertyBlockLevel1_0100, /* E1700..E17FF */
+ FriBidiPropertyBlockLevel1_0100, /* E1800..E18FF */
+ FriBidiPropertyBlockLevel1_0100, /* E1900..E19FF */
+ FriBidiPropertyBlockLevel1_0100, /* E1A00..E1AFF */
+ FriBidiPropertyBlockLevel1_0100, /* E1B00..E1BFF */
+ FriBidiPropertyBlockLevel1_0100, /* E1C00..E1CFF */
+ FriBidiPropertyBlockLevel1_0100, /* E1D00..E1DFF */
+ FriBidiPropertyBlockLevel1_0100, /* E1E00..E1EFF */
+ FriBidiPropertyBlockLevel1_0100, /* E1F00..E1FFF */
+ FriBidiPropertyBlockLevel1_0100, /* E2000..E20FF */
+ FriBidiPropertyBlockLevel1_0100, /* E2100..E21FF */
+ FriBidiPropertyBlockLevel1_0100, /* E2200..E22FF */
+ FriBidiPropertyBlockLevel1_0100, /* E2300..E23FF */
+ FriBidiPropertyBlockLevel1_0100, /* E2400..E24FF */
+ FriBidiPropertyBlockLevel1_0100, /* E2500..E25FF */
+ FriBidiPropertyBlockLevel1_0100, /* E2600..E26FF */
+ FriBidiPropertyBlockLevel1_0100, /* E2700..E27FF */
+ FriBidiPropertyBlockLevel1_0100, /* E2800..E28FF */
+ FriBidiPropertyBlockLevel1_0100, /* E2900..E29FF */
+ FriBidiPropertyBlockLevel1_0100, /* E2A00..E2AFF */
+ FriBidiPropertyBlockLevel1_0100, /* E2B00..E2BFF */
+ FriBidiPropertyBlockLevel1_0100, /* E2C00..E2CFF */
+ FriBidiPropertyBlockLevel1_0100, /* E2D00..E2DFF */
+ FriBidiPropertyBlockLevel1_0100, /* E2E00..E2EFF */
+ FriBidiPropertyBlockLevel1_0100, /* E2F00..E2FFF */
+ FriBidiPropertyBlockLevel1_0100, /* E3000..E30FF */
+ FriBidiPropertyBlockLevel1_0100, /* E3100..E31FF */
+ FriBidiPropertyBlockLevel1_0100, /* E3200..E32FF */
+ FriBidiPropertyBlockLevel1_0100, /* E3300..E33FF */
+ FriBidiPropertyBlockLevel1_0100, /* E3400..E34FF */
+ FriBidiPropertyBlockLevel1_0100, /* E3500..E35FF */
+ FriBidiPropertyBlockLevel1_0100, /* E3600..E36FF */
+ FriBidiPropertyBlockLevel1_0100, /* E3700..E37FF */
+ FriBidiPropertyBlockLevel1_0100, /* E3800..E38FF */
+ FriBidiPropertyBlockLevel1_0100, /* E3900..E39FF */
+ FriBidiPropertyBlockLevel1_0100, /* E3A00..E3AFF */
+ FriBidiPropertyBlockLevel1_0100, /* E3B00..E3BFF */
+ FriBidiPropertyBlockLevel1_0100, /* E3C00..E3CFF */
+ FriBidiPropertyBlockLevel1_0100, /* E3D00..E3DFF */
+ FriBidiPropertyBlockLevel1_0100, /* E3E00..E3EFF */
+ FriBidiPropertyBlockLevel1_0100, /* E3F00..E3FFF */
+ FriBidiPropertyBlockLevel1_0100, /* E4000..E40FF */
+ FriBidiPropertyBlockLevel1_0100, /* E4100..E41FF */
+ FriBidiPropertyBlockLevel1_0100, /* E4200..E42FF */
+ FriBidiPropertyBlockLevel1_0100, /* E4300..E43FF */
+ FriBidiPropertyBlockLevel1_0100, /* E4400..E44FF */
+ FriBidiPropertyBlockLevel1_0100, /* E4500..E45FF */
+ FriBidiPropertyBlockLevel1_0100, /* E4600..E46FF */
+ FriBidiPropertyBlockLevel1_0100, /* E4700..E47FF */
+ FriBidiPropertyBlockLevel1_0100, /* E4800..E48FF */
+ FriBidiPropertyBlockLevel1_0100, /* E4900..E49FF */
+ FriBidiPropertyBlockLevel1_0100, /* E4A00..E4AFF */
+ FriBidiPropertyBlockLevel1_0100, /* E4B00..E4BFF */
+ FriBidiPropertyBlockLevel1_0100, /* E4C00..E4CFF */
+ FriBidiPropertyBlockLevel1_0100, /* E4D00..E4DFF */
+ FriBidiPropertyBlockLevel1_0100, /* E4E00..E4EFF */
+ FriBidiPropertyBlockLevel1_0100, /* E4F00..E4FFF */
+ FriBidiPropertyBlockLevel1_0100, /* E5000..E50FF */
+ FriBidiPropertyBlockLevel1_0100, /* E5100..E51FF */
+ FriBidiPropertyBlockLevel1_0100, /* E5200..E52FF */
+ FriBidiPropertyBlockLevel1_0100, /* E5300..E53FF */
+ FriBidiPropertyBlockLevel1_0100, /* E5400..E54FF */
+ FriBidiPropertyBlockLevel1_0100, /* E5500..E55FF */
+ FriBidiPropertyBlockLevel1_0100, /* E5600..E56FF */
+ FriBidiPropertyBlockLevel1_0100, /* E5700..E57FF */
+ FriBidiPropertyBlockLevel1_0100, /* E5800..E58FF */
+ FriBidiPropertyBlockLevel1_0100, /* E5900..E59FF */
+ FriBidiPropertyBlockLevel1_0100, /* E5A00..E5AFF */
+ FriBidiPropertyBlockLevel1_0100, /* E5B00..E5BFF */
+ FriBidiPropertyBlockLevel1_0100, /* E5C00..E5CFF */
+ FriBidiPropertyBlockLevel1_0100, /* E5D00..E5DFF */
+ FriBidiPropertyBlockLevel1_0100, /* E5E00..E5EFF */
+ FriBidiPropertyBlockLevel1_0100, /* E5F00..E5FFF */
+ FriBidiPropertyBlockLevel1_0100, /* E6000..E60FF */
+ FriBidiPropertyBlockLevel1_0100, /* E6100..E61FF */
+ FriBidiPropertyBlockLevel1_0100, /* E6200..E62FF */
+ FriBidiPropertyBlockLevel1_0100, /* E6300..E63FF */
+ FriBidiPropertyBlockLevel1_0100, /* E6400..E64FF */
+ FriBidiPropertyBlockLevel1_0100, /* E6500..E65FF */
+ FriBidiPropertyBlockLevel1_0100, /* E6600..E66FF */
+ FriBidiPropertyBlockLevel1_0100, /* E6700..E67FF */
+ FriBidiPropertyBlockLevel1_0100, /* E6800..E68FF */
+ FriBidiPropertyBlockLevel1_0100, /* E6900..E69FF */
+ FriBidiPropertyBlockLevel1_0100, /* E6A00..E6AFF */
+ FriBidiPropertyBlockLevel1_0100, /* E6B00..E6BFF */
+ FriBidiPropertyBlockLevel1_0100, /* E6C00..E6CFF */
+ FriBidiPropertyBlockLevel1_0100, /* E6D00..E6DFF */
+ FriBidiPropertyBlockLevel1_0100, /* E6E00..E6EFF */
+ FriBidiPropertyBlockLevel1_0100, /* E6F00..E6FFF */
+ FriBidiPropertyBlockLevel1_0100, /* E7000..E70FF */
+ FriBidiPropertyBlockLevel1_0100, /* E7100..E71FF */
+ FriBidiPropertyBlockLevel1_0100, /* E7200..E72FF */
+ FriBidiPropertyBlockLevel1_0100, /* E7300..E73FF */
+ FriBidiPropertyBlockLevel1_0100, /* E7400..E74FF */
+ FriBidiPropertyBlockLevel1_0100, /* E7500..E75FF */
+ FriBidiPropertyBlockLevel1_0100, /* E7600..E76FF */
+ FriBidiPropertyBlockLevel1_0100, /* E7700..E77FF */
+ FriBidiPropertyBlockLevel1_0100, /* E7800..E78FF */
+ FriBidiPropertyBlockLevel1_0100, /* E7900..E79FF */
+ FriBidiPropertyBlockLevel1_0100, /* E7A00..E7AFF */
+ FriBidiPropertyBlockLevel1_0100, /* E7B00..E7BFF */
+ FriBidiPropertyBlockLevel1_0100, /* E7C00..E7CFF */
+ FriBidiPropertyBlockLevel1_0100, /* E7D00..E7DFF */
+ FriBidiPropertyBlockLevel1_0100, /* E7E00..E7EFF */
+ FriBidiPropertyBlockLevel1_0100, /* E7F00..E7FFF */
+ FriBidiPropertyBlockLevel1_0100, /* E8000..E80FF */
+ FriBidiPropertyBlockLevel1_0100, /* E8100..E81FF */
+ FriBidiPropertyBlockLevel1_0100, /* E8200..E82FF */
+ FriBidiPropertyBlockLevel1_0100, /* E8300..E83FF */
+ FriBidiPropertyBlockLevel1_0100, /* E8400..E84FF */
+ FriBidiPropertyBlockLevel1_0100, /* E8500..E85FF */
+ FriBidiPropertyBlockLevel1_0100, /* E8600..E86FF */
+ FriBidiPropertyBlockLevel1_0100, /* E8700..E87FF */
+ FriBidiPropertyBlockLevel1_0100, /* E8800..E88FF */
+ FriBidiPropertyBlockLevel1_0100, /* E8900..E89FF */
+ FriBidiPropertyBlockLevel1_0100, /* E8A00..E8AFF */
+ FriBidiPropertyBlockLevel1_0100, /* E8B00..E8BFF */
+ FriBidiPropertyBlockLevel1_0100, /* E8C00..E8CFF */
+ FriBidiPropertyBlockLevel1_0100, /* E8D00..E8DFF */
+ FriBidiPropertyBlockLevel1_0100, /* E8E00..E8EFF */
+ FriBidiPropertyBlockLevel1_0100, /* E8F00..E8FFF */
+ FriBidiPropertyBlockLevel1_0100, /* E9000..E90FF */
+ FriBidiPropertyBlockLevel1_0100, /* E9100..E91FF */
+ FriBidiPropertyBlockLevel1_0100, /* E9200..E92FF */
+ FriBidiPropertyBlockLevel1_0100, /* E9300..E93FF */
+ FriBidiPropertyBlockLevel1_0100, /* E9400..E94FF */
+ FriBidiPropertyBlockLevel1_0100, /* E9500..E95FF */
+ FriBidiPropertyBlockLevel1_0100, /* E9600..E96FF */
+ FriBidiPropertyBlockLevel1_0100, /* E9700..E97FF */
+ FriBidiPropertyBlockLevel1_0100, /* E9800..E98FF */
+ FriBidiPropertyBlockLevel1_0100, /* E9900..E99FF */
+ FriBidiPropertyBlockLevel1_0100, /* E9A00..E9AFF */
+ FriBidiPropertyBlockLevel1_0100, /* E9B00..E9BFF */
+ FriBidiPropertyBlockLevel1_0100, /* E9C00..E9CFF */
+ FriBidiPropertyBlockLevel1_0100, /* E9D00..E9DFF */
+ FriBidiPropertyBlockLevel1_0100, /* E9E00..E9EFF */
+ FriBidiPropertyBlockLevel1_0100, /* E9F00..E9FFF */
+ FriBidiPropertyBlockLevel1_0100, /* EA000..EA0FF */
+ FriBidiPropertyBlockLevel1_0100, /* EA100..EA1FF */
+ FriBidiPropertyBlockLevel1_0100, /* EA200..EA2FF */
+ FriBidiPropertyBlockLevel1_0100, /* EA300..EA3FF */
+ FriBidiPropertyBlockLevel1_0100, /* EA400..EA4FF */
+ FriBidiPropertyBlockLevel1_0100, /* EA500..EA5FF */
+ FriBidiPropertyBlockLevel1_0100, /* EA600..EA6FF */
+ FriBidiPropertyBlockLevel1_0100, /* EA700..EA7FF */
+ FriBidiPropertyBlockLevel1_0100, /* EA800..EA8FF */
+ FriBidiPropertyBlockLevel1_0100, /* EA900..EA9FF */
+ FriBidiPropertyBlockLevel1_0100, /* EAA00..EAAFF */
+ FriBidiPropertyBlockLevel1_0100, /* EAB00..EABFF */
+ FriBidiPropertyBlockLevel1_0100, /* EAC00..EACFF */
+ FriBidiPropertyBlockLevel1_0100, /* EAD00..EADFF */
+ FriBidiPropertyBlockLevel1_0100, /* EAE00..EAEFF */
+ FriBidiPropertyBlockLevel1_0100, /* EAF00..EAFFF */
+ FriBidiPropertyBlockLevel1_0100, /* EB000..EB0FF */
+ FriBidiPropertyBlockLevel1_0100, /* EB100..EB1FF */
+ FriBidiPropertyBlockLevel1_0100, /* EB200..EB2FF */
+ FriBidiPropertyBlockLevel1_0100, /* EB300..EB3FF */
+ FriBidiPropertyBlockLevel1_0100, /* EB400..EB4FF */
+ FriBidiPropertyBlockLevel1_0100, /* EB500..EB5FF */
+ FriBidiPropertyBlockLevel1_0100, /* EB600..EB6FF */
+ FriBidiPropertyBlockLevel1_0100, /* EB700..EB7FF */
+ FriBidiPropertyBlockLevel1_0100, /* EB800..EB8FF */
+ FriBidiPropertyBlockLevel1_0100, /* EB900..EB9FF */
+ FriBidiPropertyBlockLevel1_0100, /* EBA00..EBAFF */
+ FriBidiPropertyBlockLevel1_0100, /* EBB00..EBBFF */
+ FriBidiPropertyBlockLevel1_0100, /* EBC00..EBCFF */
+ FriBidiPropertyBlockLevel1_0100, /* EBD00..EBDFF */
+ FriBidiPropertyBlockLevel1_0100, /* EBE00..EBEFF */
+ FriBidiPropertyBlockLevel1_0100, /* EBF00..EBFFF */
+ FriBidiPropertyBlockLevel1_0100, /* EC000..EC0FF */
+ FriBidiPropertyBlockLevel1_0100, /* EC100..EC1FF */
+ FriBidiPropertyBlockLevel1_0100, /* EC200..EC2FF */
+ FriBidiPropertyBlockLevel1_0100, /* EC300..EC3FF */
+ FriBidiPropertyBlockLevel1_0100, /* EC400..EC4FF */
+ FriBidiPropertyBlockLevel1_0100, /* EC500..EC5FF */
+ FriBidiPropertyBlockLevel1_0100, /* EC600..EC6FF */
+ FriBidiPropertyBlockLevel1_0100, /* EC700..EC7FF */
+ FriBidiPropertyBlockLevel1_0100, /* EC800..EC8FF */
+ FriBidiPropertyBlockLevel1_0100, /* EC900..EC9FF */
+ FriBidiPropertyBlockLevel1_0100, /* ECA00..ECAFF */
+ FriBidiPropertyBlockLevel1_0100, /* ECB00..ECBFF */
+ FriBidiPropertyBlockLevel1_0100, /* ECC00..ECCFF */
+ FriBidiPropertyBlockLevel1_0100, /* ECD00..ECDFF */
+ FriBidiPropertyBlockLevel1_0100, /* ECE00..ECEFF */
+ FriBidiPropertyBlockLevel1_0100, /* ECF00..ECFFF */
+ FriBidiPropertyBlockLevel1_0100, /* ED000..ED0FF */
+ FriBidiPropertyBlockLevel1_0100, /* ED100..ED1FF */
+ FriBidiPropertyBlockLevel1_0100, /* ED200..ED2FF */
+ FriBidiPropertyBlockLevel1_0100, /* ED300..ED3FF */
+ FriBidiPropertyBlockLevel1_0100, /* ED400..ED4FF */
+ FriBidiPropertyBlockLevel1_0100, /* ED500..ED5FF */
+ FriBidiPropertyBlockLevel1_0100, /* ED600..ED6FF */
+ FriBidiPropertyBlockLevel1_0100, /* ED700..ED7FF */
+ FriBidiPropertyBlockLevel1_0100, /* ED800..ED8FF */
+ FriBidiPropertyBlockLevel1_0100, /* ED900..ED9FF */
+ FriBidiPropertyBlockLevel1_0100, /* EDA00..EDAFF */
+ FriBidiPropertyBlockLevel1_0100, /* EDB00..EDBFF */
+ FriBidiPropertyBlockLevel1_0100, /* EDC00..EDCFF */
+ FriBidiPropertyBlockLevel1_0100, /* EDD00..EDDFF */
+ FriBidiPropertyBlockLevel1_0100, /* EDE00..EDEFF */
+ FriBidiPropertyBlockLevel1_0100, /* EDF00..EDFFF */
+ FriBidiPropertyBlockLevel1_0100, /* EE000..EE0FF */
+ FriBidiPropertyBlockLevel1_0100, /* EE100..EE1FF */
+ FriBidiPropertyBlockLevel1_0100, /* EE200..EE2FF */
+ FriBidiPropertyBlockLevel1_0100, /* EE300..EE3FF */
+ FriBidiPropertyBlockLevel1_0100, /* EE400..EE4FF */
+ FriBidiPropertyBlockLevel1_0100, /* EE500..EE5FF */
+ FriBidiPropertyBlockLevel1_0100, /* EE600..EE6FF */
+ FriBidiPropertyBlockLevel1_0100, /* EE700..EE7FF */
+ FriBidiPropertyBlockLevel1_0100, /* EE800..EE8FF */
+ FriBidiPropertyBlockLevel1_0100, /* EE900..EE9FF */
+ FriBidiPropertyBlockLevel1_0100, /* EEA00..EEAFF */
+ FriBidiPropertyBlockLevel1_0100, /* EEB00..EEBFF */
+ FriBidiPropertyBlockLevel1_0100, /* EEC00..EECFF */
+ FriBidiPropertyBlockLevel1_0100, /* EED00..EEDFF */
+ FriBidiPropertyBlockLevel1_0100, /* EEE00..EEEFF */
+ FriBidiPropertyBlockLevel1_0100, /* EEF00..EEFFF */
+ FriBidiPropertyBlockLevel1_0100, /* EF000..EF0FF */
+ FriBidiPropertyBlockLevel1_0100, /* EF100..EF1FF */
+ FriBidiPropertyBlockLevel1_0100, /* EF200..EF2FF */
+ FriBidiPropertyBlockLevel1_0100, /* EF300..EF3FF */
+ FriBidiPropertyBlockLevel1_0100, /* EF400..EF4FF */
+ FriBidiPropertyBlockLevel1_0100, /* EF500..EF5FF */
+ FriBidiPropertyBlockLevel1_0100, /* EF600..EF6FF */
+ FriBidiPropertyBlockLevel1_0100, /* EF700..EF7FF */
+ FriBidiPropertyBlockLevel1_0100, /* EF800..EF8FF */
+ FriBidiPropertyBlockLevel1_0100, /* EF900..EF9FF */
+ FriBidiPropertyBlockLevel1_0100, /* EFA00..EFAFF */
+ FriBidiPropertyBlockLevel1_0100, /* EFB00..EFBFF */
+ FriBidiPropertyBlockLevel1_0100, /* EFC00..EFCFF */
+ FriBidiPropertyBlockLevel1_0100, /* EFD00..EFDFF */
+ FriBidiPropertyBlockLevel1_0100, /* EFE00..EFEFF */
+ FriBidiPropertyBlockLevel1_0100, /* EFF00..EFFFF */
+ FriBidiPropertyBlockLevel1_0100, /* F0000..F00FF */
+ FriBidiPropertyBlockLevel1_0100, /* F0100..F01FF */
+ FriBidiPropertyBlockLevel1_0100, /* F0200..F02FF */
+ FriBidiPropertyBlockLevel1_0100, /* F0300..F03FF */
+ FriBidiPropertyBlockLevel1_0100, /* F0400..F04FF */
+ FriBidiPropertyBlockLevel1_0100, /* F0500..F05FF */
+ FriBidiPropertyBlockLevel1_0100, /* F0600..F06FF */
+ FriBidiPropertyBlockLevel1_0100, /* F0700..F07FF */
+ FriBidiPropertyBlockLevel1_0100, /* F0800..F08FF */
+ FriBidiPropertyBlockLevel1_0100, /* F0900..F09FF */
+ FriBidiPropertyBlockLevel1_0100, /* F0A00..F0AFF */
+ FriBidiPropertyBlockLevel1_0100, /* F0B00..F0BFF */
+ FriBidiPropertyBlockLevel1_0100, /* F0C00..F0CFF */
+ FriBidiPropertyBlockLevel1_0100, /* F0D00..F0DFF */
+ FriBidiPropertyBlockLevel1_0100, /* F0E00..F0EFF */
+ FriBidiPropertyBlockLevel1_0100, /* F0F00..F0FFF */
+ FriBidiPropertyBlockLevel1_0100, /* F1000..F10FF */
+ FriBidiPropertyBlockLevel1_0100, /* F1100..F11FF */
+ FriBidiPropertyBlockLevel1_0100, /* F1200..F12FF */
+ FriBidiPropertyBlockLevel1_0100, /* F1300..F13FF */
+ FriBidiPropertyBlockLevel1_0100, /* F1400..F14FF */
+ FriBidiPropertyBlockLevel1_0100, /* F1500..F15FF */
+ FriBidiPropertyBlockLevel1_0100, /* F1600..F16FF */
+ FriBidiPropertyBlockLevel1_0100, /* F1700..F17FF */
+ FriBidiPropertyBlockLevel1_0100, /* F1800..F18FF */
+ FriBidiPropertyBlockLevel1_0100, /* F1900..F19FF */
+ FriBidiPropertyBlockLevel1_0100, /* F1A00..F1AFF */
+ FriBidiPropertyBlockLevel1_0100, /* F1B00..F1BFF */
+ FriBidiPropertyBlockLevel1_0100, /* F1C00..F1CFF */
+ FriBidiPropertyBlockLevel1_0100, /* F1D00..F1DFF */
+ FriBidiPropertyBlockLevel1_0100, /* F1E00..F1EFF */
+ FriBidiPropertyBlockLevel1_0100, /* F1F00..F1FFF */
+ FriBidiPropertyBlockLevel1_0100, /* F2000..F20FF */
+ FriBidiPropertyBlockLevel1_0100, /* F2100..F21FF */
+ FriBidiPropertyBlockLevel1_0100, /* F2200..F22FF */
+ FriBidiPropertyBlockLevel1_0100, /* F2300..F23FF */
+ FriBidiPropertyBlockLevel1_0100, /* F2400..F24FF */
+ FriBidiPropertyBlockLevel1_0100, /* F2500..F25FF */
+ FriBidiPropertyBlockLevel1_0100, /* F2600..F26FF */
+ FriBidiPropertyBlockLevel1_0100, /* F2700..F27FF */
+ FriBidiPropertyBlockLevel1_0100, /* F2800..F28FF */
+ FriBidiPropertyBlockLevel1_0100, /* F2900..F29FF */
+ FriBidiPropertyBlockLevel1_0100, /* F2A00..F2AFF */
+ FriBidiPropertyBlockLevel1_0100, /* F2B00..F2BFF */
+ FriBidiPropertyBlockLevel1_0100, /* F2C00..F2CFF */
+ FriBidiPropertyBlockLevel1_0100, /* F2D00..F2DFF */
+ FriBidiPropertyBlockLevel1_0100, /* F2E00..F2EFF */
+ FriBidiPropertyBlockLevel1_0100, /* F2F00..F2FFF */
+ FriBidiPropertyBlockLevel1_0100, /* F3000..F30FF */
+ FriBidiPropertyBlockLevel1_0100, /* F3100..F31FF */
+ FriBidiPropertyBlockLevel1_0100, /* F3200..F32FF */
+ FriBidiPropertyBlockLevel1_0100, /* F3300..F33FF */
+ FriBidiPropertyBlockLevel1_0100, /* F3400..F34FF */
+ FriBidiPropertyBlockLevel1_0100, /* F3500..F35FF */
+ FriBidiPropertyBlockLevel1_0100, /* F3600..F36FF */
+ FriBidiPropertyBlockLevel1_0100, /* F3700..F37FF */
+ FriBidiPropertyBlockLevel1_0100, /* F3800..F38FF */
+ FriBidiPropertyBlockLevel1_0100, /* F3900..F39FF */
+ FriBidiPropertyBlockLevel1_0100, /* F3A00..F3AFF */
+ FriBidiPropertyBlockLevel1_0100, /* F3B00..F3BFF */
+ FriBidiPropertyBlockLevel1_0100, /* F3C00..F3CFF */
+ FriBidiPropertyBlockLevel1_0100, /* F3D00..F3DFF */
+ FriBidiPropertyBlockLevel1_0100, /* F3E00..F3EFF */
+ FriBidiPropertyBlockLevel1_0100, /* F3F00..F3FFF */
+ FriBidiPropertyBlockLevel1_0100, /* F4000..F40FF */
+ FriBidiPropertyBlockLevel1_0100, /* F4100..F41FF */
+ FriBidiPropertyBlockLevel1_0100, /* F4200..F42FF */
+ FriBidiPropertyBlockLevel1_0100, /* F4300..F43FF */
+ FriBidiPropertyBlockLevel1_0100, /* F4400..F44FF */
+ FriBidiPropertyBlockLevel1_0100, /* F4500..F45FF */
+ FriBidiPropertyBlockLevel1_0100, /* F4600..F46FF */
+ FriBidiPropertyBlockLevel1_0100, /* F4700..F47FF */
+ FriBidiPropertyBlockLevel1_0100, /* F4800..F48FF */
+ FriBidiPropertyBlockLevel1_0100, /* F4900..F49FF */
+ FriBidiPropertyBlockLevel1_0100, /* F4A00..F4AFF */
+ FriBidiPropertyBlockLevel1_0100, /* F4B00..F4BFF */
+ FriBidiPropertyBlockLevel1_0100, /* F4C00..F4CFF */
+ FriBidiPropertyBlockLevel1_0100, /* F4D00..F4DFF */
+ FriBidiPropertyBlockLevel1_0100, /* F4E00..F4EFF */
+ FriBidiPropertyBlockLevel1_0100, /* F4F00..F4FFF */
+ FriBidiPropertyBlockLevel1_0100, /* F5000..F50FF */
+ FriBidiPropertyBlockLevel1_0100, /* F5100..F51FF */
+ FriBidiPropertyBlockLevel1_0100, /* F5200..F52FF */
+ FriBidiPropertyBlockLevel1_0100, /* F5300..F53FF */
+ FriBidiPropertyBlockLevel1_0100, /* F5400..F54FF */
+ FriBidiPropertyBlockLevel1_0100, /* F5500..F55FF */
+ FriBidiPropertyBlockLevel1_0100, /* F5600..F56FF */
+ FriBidiPropertyBlockLevel1_0100, /* F5700..F57FF */
+ FriBidiPropertyBlockLevel1_0100, /* F5800..F58FF */
+ FriBidiPropertyBlockLevel1_0100, /* F5900..F59FF */
+ FriBidiPropertyBlockLevel1_0100, /* F5A00..F5AFF */
+ FriBidiPropertyBlockLevel1_0100, /* F5B00..F5BFF */
+ FriBidiPropertyBlockLevel1_0100, /* F5C00..F5CFF */
+ FriBidiPropertyBlockLevel1_0100, /* F5D00..F5DFF */
+ FriBidiPropertyBlockLevel1_0100, /* F5E00..F5EFF */
+ FriBidiPropertyBlockLevel1_0100, /* F5F00..F5FFF */
+ FriBidiPropertyBlockLevel1_0100, /* F6000..F60FF */
+ FriBidiPropertyBlockLevel1_0100, /* F6100..F61FF */
+ FriBidiPropertyBlockLevel1_0100, /* F6200..F62FF */
+ FriBidiPropertyBlockLevel1_0100, /* F6300..F63FF */
+ FriBidiPropertyBlockLevel1_0100, /* F6400..F64FF */
+ FriBidiPropertyBlockLevel1_0100, /* F6500..F65FF */
+ FriBidiPropertyBlockLevel1_0100, /* F6600..F66FF */
+ FriBidiPropertyBlockLevel1_0100, /* F6700..F67FF */
+ FriBidiPropertyBlockLevel1_0100, /* F6800..F68FF */
+ FriBidiPropertyBlockLevel1_0100, /* F6900..F69FF */
+ FriBidiPropertyBlockLevel1_0100, /* F6A00..F6AFF */
+ FriBidiPropertyBlockLevel1_0100, /* F6B00..F6BFF */
+ FriBidiPropertyBlockLevel1_0100, /* F6C00..F6CFF */
+ FriBidiPropertyBlockLevel1_0100, /* F6D00..F6DFF */
+ FriBidiPropertyBlockLevel1_0100, /* F6E00..F6EFF */
+ FriBidiPropertyBlockLevel1_0100, /* F6F00..F6FFF */
+ FriBidiPropertyBlockLevel1_0100, /* F7000..F70FF */
+ FriBidiPropertyBlockLevel1_0100, /* F7100..F71FF */
+ FriBidiPropertyBlockLevel1_0100, /* F7200..F72FF */
+ FriBidiPropertyBlockLevel1_0100, /* F7300..F73FF */
+ FriBidiPropertyBlockLevel1_0100, /* F7400..F74FF */
+ FriBidiPropertyBlockLevel1_0100, /* F7500..F75FF */
+ FriBidiPropertyBlockLevel1_0100, /* F7600..F76FF */
+ FriBidiPropertyBlockLevel1_0100, /* F7700..F77FF */
+ FriBidiPropertyBlockLevel1_0100, /* F7800..F78FF */
+ FriBidiPropertyBlockLevel1_0100, /* F7900..F79FF */
+ FriBidiPropertyBlockLevel1_0100, /* F7A00..F7AFF */
+ FriBidiPropertyBlockLevel1_0100, /* F7B00..F7BFF */
+ FriBidiPropertyBlockLevel1_0100, /* F7C00..F7CFF */
+ FriBidiPropertyBlockLevel1_0100, /* F7D00..F7DFF */
+ FriBidiPropertyBlockLevel1_0100, /* F7E00..F7EFF */
+ FriBidiPropertyBlockLevel1_0100, /* F7F00..F7FFF */
+ FriBidiPropertyBlockLevel1_0100, /* F8000..F80FF */
+ FriBidiPropertyBlockLevel1_0100, /* F8100..F81FF */
+ FriBidiPropertyBlockLevel1_0100, /* F8200..F82FF */
+ FriBidiPropertyBlockLevel1_0100, /* F8300..F83FF */
+ FriBidiPropertyBlockLevel1_0100, /* F8400..F84FF */
+ FriBidiPropertyBlockLevel1_0100, /* F8500..F85FF */
+ FriBidiPropertyBlockLevel1_0100, /* F8600..F86FF */
+ FriBidiPropertyBlockLevel1_0100, /* F8700..F87FF */
+ FriBidiPropertyBlockLevel1_0100, /* F8800..F88FF */
+ FriBidiPropertyBlockLevel1_0100, /* F8900..F89FF */
+ FriBidiPropertyBlockLevel1_0100, /* F8A00..F8AFF */
+ FriBidiPropertyBlockLevel1_0100, /* F8B00..F8BFF */
+ FriBidiPropertyBlockLevel1_0100, /* F8C00..F8CFF */
+ FriBidiPropertyBlockLevel1_0100, /* F8D00..F8DFF */
+ FriBidiPropertyBlockLevel1_0100, /* F8E00..F8EFF */
+ FriBidiPropertyBlockLevel1_0100, /* F8F00..F8FFF */
+ FriBidiPropertyBlockLevel1_0100, /* F9000..F90FF */
+ FriBidiPropertyBlockLevel1_0100, /* F9100..F91FF */
+ FriBidiPropertyBlockLevel1_0100, /* F9200..F92FF */
+ FriBidiPropertyBlockLevel1_0100, /* F9300..F93FF */
+ FriBidiPropertyBlockLevel1_0100, /* F9400..F94FF */
+ FriBidiPropertyBlockLevel1_0100, /* F9500..F95FF */
+ FriBidiPropertyBlockLevel1_0100, /* F9600..F96FF */
+ FriBidiPropertyBlockLevel1_0100, /* F9700..F97FF */
+ FriBidiPropertyBlockLevel1_0100, /* F9800..F98FF */
+ FriBidiPropertyBlockLevel1_0100, /* F9900..F99FF */
+ FriBidiPropertyBlockLevel1_0100, /* F9A00..F9AFF */
+ FriBidiPropertyBlockLevel1_0100, /* F9B00..F9BFF */
+ FriBidiPropertyBlockLevel1_0100, /* F9C00..F9CFF */
+ FriBidiPropertyBlockLevel1_0100, /* F9D00..F9DFF */
+ FriBidiPropertyBlockLevel1_0100, /* F9E00..F9EFF */
+ FriBidiPropertyBlockLevel1_0100, /* F9F00..F9FFF */
+ FriBidiPropertyBlockLevel1_0100, /* FA000..FA0FF */
+ FriBidiPropertyBlockLevel1_0100, /* FA100..FA1FF */
+ FriBidiPropertyBlockLevel1_0100, /* FA200..FA2FF */
+ FriBidiPropertyBlockLevel1_0100, /* FA300..FA3FF */
+ FriBidiPropertyBlockLevel1_0100, /* FA400..FA4FF */
+ FriBidiPropertyBlockLevel1_0100, /* FA500..FA5FF */
+ FriBidiPropertyBlockLevel1_0100, /* FA600..FA6FF */
+ FriBidiPropertyBlockLevel1_0100, /* FA700..FA7FF */
+ FriBidiPropertyBlockLevel1_0100, /* FA800..FA8FF */
+ FriBidiPropertyBlockLevel1_0100, /* FA900..FA9FF */
+ FriBidiPropertyBlockLevel1_0100, /* FAA00..FAAFF */
+ FriBidiPropertyBlockLevel1_0100, /* FAB00..FABFF */
+ FriBidiPropertyBlockLevel1_0100, /* FAC00..FACFF */
+ FriBidiPropertyBlockLevel1_0100, /* FAD00..FADFF */
+ FriBidiPropertyBlockLevel1_0100, /* FAE00..FAEFF */
+ FriBidiPropertyBlockLevel1_0100, /* FAF00..FAFFF */
+ FriBidiPropertyBlockLevel1_0100, /* FB000..FB0FF */
+ FriBidiPropertyBlockLevel1_0100, /* FB100..FB1FF */
+ FriBidiPropertyBlockLevel1_0100, /* FB200..FB2FF */
+ FriBidiPropertyBlockLevel1_0100, /* FB300..FB3FF */
+ FriBidiPropertyBlockLevel1_0100, /* FB400..FB4FF */
+ FriBidiPropertyBlockLevel1_0100, /* FB500..FB5FF */
+ FriBidiPropertyBlockLevel1_0100, /* FB600..FB6FF */
+ FriBidiPropertyBlockLevel1_0100, /* FB700..FB7FF */
+ FriBidiPropertyBlockLevel1_0100, /* FB800..FB8FF */
+ FriBidiPropertyBlockLevel1_0100, /* FB900..FB9FF */
+ FriBidiPropertyBlockLevel1_0100, /* FBA00..FBAFF */
+ FriBidiPropertyBlockLevel1_0100, /* FBB00..FBBFF */
+ FriBidiPropertyBlockLevel1_0100, /* FBC00..FBCFF */
+ FriBidiPropertyBlockLevel1_0100, /* FBD00..FBDFF */
+ FriBidiPropertyBlockLevel1_0100, /* FBE00..FBEFF */
+ FriBidiPropertyBlockLevel1_0100, /* FBF00..FBFFF */
+ FriBidiPropertyBlockLevel1_0100, /* FC000..FC0FF */
+ FriBidiPropertyBlockLevel1_0100, /* FC100..FC1FF */
+ FriBidiPropertyBlockLevel1_0100, /* FC200..FC2FF */
+ FriBidiPropertyBlockLevel1_0100, /* FC300..FC3FF */
+ FriBidiPropertyBlockLevel1_0100, /* FC400..FC4FF */
+ FriBidiPropertyBlockLevel1_0100, /* FC500..FC5FF */
+ FriBidiPropertyBlockLevel1_0100, /* FC600..FC6FF */
+ FriBidiPropertyBlockLevel1_0100, /* FC700..FC7FF */
+ FriBidiPropertyBlockLevel1_0100, /* FC800..FC8FF */
+ FriBidiPropertyBlockLevel1_0100, /* FC900..FC9FF */
+ FriBidiPropertyBlockLevel1_0100, /* FCA00..FCAFF */
+ FriBidiPropertyBlockLevel1_0100, /* FCB00..FCBFF */
+ FriBidiPropertyBlockLevel1_0100, /* FCC00..FCCFF */
+ FriBidiPropertyBlockLevel1_0100, /* FCD00..FCDFF */
+ FriBidiPropertyBlockLevel1_0100, /* FCE00..FCEFF */
+ FriBidiPropertyBlockLevel1_0100, /* FCF00..FCFFF */
+ FriBidiPropertyBlockLevel1_0100, /* FD000..FD0FF */
+ FriBidiPropertyBlockLevel1_0100, /* FD100..FD1FF */
+ FriBidiPropertyBlockLevel1_0100, /* FD200..FD2FF */
+ FriBidiPropertyBlockLevel1_0100, /* FD300..FD3FF */
+ FriBidiPropertyBlockLevel1_0100, /* FD400..FD4FF */
+ FriBidiPropertyBlockLevel1_0100, /* FD500..FD5FF */
+ FriBidiPropertyBlockLevel1_0100, /* FD600..FD6FF */
+ FriBidiPropertyBlockLevel1_0100, /* FD700..FD7FF */
+ FriBidiPropertyBlockLevel1_0100, /* FD800..FD8FF */
+ FriBidiPropertyBlockLevel1_0100, /* FD900..FD9FF */
+ FriBidiPropertyBlockLevel1_0100, /* FDA00..FDAFF */
+ FriBidiPropertyBlockLevel1_0100, /* FDB00..FDBFF */
+ FriBidiPropertyBlockLevel1_0100, /* FDC00..FDCFF */
+ FriBidiPropertyBlockLevel1_0100, /* FDD00..FDDFF */
+ FriBidiPropertyBlockLevel1_0100, /* FDE00..FDEFF */
+ FriBidiPropertyBlockLevel1_0100, /* FDF00..FDFFF */
+ FriBidiPropertyBlockLevel1_0100, /* FE000..FE0FF */
+ FriBidiPropertyBlockLevel1_0100, /* FE100..FE1FF */
+ FriBidiPropertyBlockLevel1_0100, /* FE200..FE2FF */
+ FriBidiPropertyBlockLevel1_0100, /* FE300..FE3FF */
+ FriBidiPropertyBlockLevel1_0100, /* FE400..FE4FF */
+ FriBidiPropertyBlockLevel1_0100, /* FE500..FE5FF */
+ FriBidiPropertyBlockLevel1_0100, /* FE600..FE6FF */
+ FriBidiPropertyBlockLevel1_0100, /* FE700..FE7FF */
+ FriBidiPropertyBlockLevel1_0100, /* FE800..FE8FF */
+ FriBidiPropertyBlockLevel1_0100, /* FE900..FE9FF */
+ FriBidiPropertyBlockLevel1_0100, /* FEA00..FEAFF */
+ FriBidiPropertyBlockLevel1_0100, /* FEB00..FEBFF */
+ FriBidiPropertyBlockLevel1_0100, /* FEC00..FECFF */
+ FriBidiPropertyBlockLevel1_0100, /* FED00..FEDFF */
+ FriBidiPropertyBlockLevel1_0100, /* FEE00..FEEFF */
+ FriBidiPropertyBlockLevel1_0100, /* FEF00..FEFFF */
+ FriBidiPropertyBlockLevel1_0100, /* FF000..FF0FF */
+ FriBidiPropertyBlockLevel1_0100, /* FF100..FF1FF */
+ FriBidiPropertyBlockLevel1_0100, /* FF200..FF2FF */
+ FriBidiPropertyBlockLevel1_0100, /* FF300..FF3FF */
+ FriBidiPropertyBlockLevel1_0100, /* FF400..FF4FF */
+ FriBidiPropertyBlockLevel1_0100, /* FF500..FF5FF */
+ FriBidiPropertyBlockLevel1_0100, /* FF600..FF6FF */
+ FriBidiPropertyBlockLevel1_0100, /* FF700..FF7FF */
+ FriBidiPropertyBlockLevel1_0100, /* FF800..FF8FF */
+ FriBidiPropertyBlockLevel1_0100, /* FF900..FF9FF */
+ FriBidiPropertyBlockLevel1_0100, /* FFA00..FFAFF */
+ FriBidiPropertyBlockLevel1_0100, /* FFB00..FFBFF */
+ FriBidiPropertyBlockLevel1_0100, /* FFC00..FFCFF */
+ FriBidiPropertyBlockLevel1_0100, /* FFD00..FFDFF */
+ FriBidiPropertyBlockLevel1_0100, /* FFE00..FFEFF */
+ FriBidiPropertyBlockLevel1_0100, /* FFF00..FFFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 100000..1000FF */
+ FriBidiPropertyBlockLevel1_0100, /* 100100..1001FF */
+ FriBidiPropertyBlockLevel1_0100, /* 100200..1002FF */
+ FriBidiPropertyBlockLevel1_0100, /* 100300..1003FF */
+ FriBidiPropertyBlockLevel1_0100, /* 100400..1004FF */
+ FriBidiPropertyBlockLevel1_0100, /* 100500..1005FF */
+ FriBidiPropertyBlockLevel1_0100, /* 100600..1006FF */
+ FriBidiPropertyBlockLevel1_0100, /* 100700..1007FF */
+ FriBidiPropertyBlockLevel1_0100, /* 100800..1008FF */
+ FriBidiPropertyBlockLevel1_0100, /* 100900..1009FF */
+ FriBidiPropertyBlockLevel1_0100, /* 100A00..100AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 100B00..100BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 100C00..100CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 100D00..100DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 100E00..100EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 100F00..100FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 101000..1010FF */
+ FriBidiPropertyBlockLevel1_0100, /* 101100..1011FF */
+ FriBidiPropertyBlockLevel1_0100, /* 101200..1012FF */
+ FriBidiPropertyBlockLevel1_0100, /* 101300..1013FF */
+ FriBidiPropertyBlockLevel1_0100, /* 101400..1014FF */
+ FriBidiPropertyBlockLevel1_0100, /* 101500..1015FF */
+ FriBidiPropertyBlockLevel1_0100, /* 101600..1016FF */
+ FriBidiPropertyBlockLevel1_0100, /* 101700..1017FF */
+ FriBidiPropertyBlockLevel1_0100, /* 101800..1018FF */
+ FriBidiPropertyBlockLevel1_0100, /* 101900..1019FF */
+ FriBidiPropertyBlockLevel1_0100, /* 101A00..101AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 101B00..101BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 101C00..101CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 101D00..101DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 101E00..101EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 101F00..101FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 102000..1020FF */
+ FriBidiPropertyBlockLevel1_0100, /* 102100..1021FF */
+ FriBidiPropertyBlockLevel1_0100, /* 102200..1022FF */
+ FriBidiPropertyBlockLevel1_0100, /* 102300..1023FF */
+ FriBidiPropertyBlockLevel1_0100, /* 102400..1024FF */
+ FriBidiPropertyBlockLevel1_0100, /* 102500..1025FF */
+ FriBidiPropertyBlockLevel1_0100, /* 102600..1026FF */
+ FriBidiPropertyBlockLevel1_0100, /* 102700..1027FF */
+ FriBidiPropertyBlockLevel1_0100, /* 102800..1028FF */
+ FriBidiPropertyBlockLevel1_0100, /* 102900..1029FF */
+ FriBidiPropertyBlockLevel1_0100, /* 102A00..102AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 102B00..102BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 102C00..102CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 102D00..102DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 102E00..102EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 102F00..102FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 103000..1030FF */
+ FriBidiPropertyBlockLevel1_0100, /* 103100..1031FF */
+ FriBidiPropertyBlockLevel1_0100, /* 103200..1032FF */
+ FriBidiPropertyBlockLevel1_0100, /* 103300..1033FF */
+ FriBidiPropertyBlockLevel1_0100, /* 103400..1034FF */
+ FriBidiPropertyBlockLevel1_0100, /* 103500..1035FF */
+ FriBidiPropertyBlockLevel1_0100, /* 103600..1036FF */
+ FriBidiPropertyBlockLevel1_0100, /* 103700..1037FF */
+ FriBidiPropertyBlockLevel1_0100, /* 103800..1038FF */
+ FriBidiPropertyBlockLevel1_0100, /* 103900..1039FF */
+ FriBidiPropertyBlockLevel1_0100, /* 103A00..103AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 103B00..103BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 103C00..103CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 103D00..103DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 103E00..103EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 103F00..103FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 104000..1040FF */
+ FriBidiPropertyBlockLevel1_0100, /* 104100..1041FF */
+ FriBidiPropertyBlockLevel1_0100, /* 104200..1042FF */
+ FriBidiPropertyBlockLevel1_0100, /* 104300..1043FF */
+ FriBidiPropertyBlockLevel1_0100, /* 104400..1044FF */
+ FriBidiPropertyBlockLevel1_0100, /* 104500..1045FF */
+ FriBidiPropertyBlockLevel1_0100, /* 104600..1046FF */
+ FriBidiPropertyBlockLevel1_0100, /* 104700..1047FF */
+ FriBidiPropertyBlockLevel1_0100, /* 104800..1048FF */
+ FriBidiPropertyBlockLevel1_0100, /* 104900..1049FF */
+ FriBidiPropertyBlockLevel1_0100, /* 104A00..104AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 104B00..104BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 104C00..104CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 104D00..104DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 104E00..104EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 104F00..104FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 105000..1050FF */
+ FriBidiPropertyBlockLevel1_0100, /* 105100..1051FF */
+ FriBidiPropertyBlockLevel1_0100, /* 105200..1052FF */
+ FriBidiPropertyBlockLevel1_0100, /* 105300..1053FF */
+ FriBidiPropertyBlockLevel1_0100, /* 105400..1054FF */
+ FriBidiPropertyBlockLevel1_0100, /* 105500..1055FF */
+ FriBidiPropertyBlockLevel1_0100, /* 105600..1056FF */
+ FriBidiPropertyBlockLevel1_0100, /* 105700..1057FF */
+ FriBidiPropertyBlockLevel1_0100, /* 105800..1058FF */
+ FriBidiPropertyBlockLevel1_0100, /* 105900..1059FF */
+ FriBidiPropertyBlockLevel1_0100, /* 105A00..105AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 105B00..105BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 105C00..105CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 105D00..105DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 105E00..105EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 105F00..105FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 106000..1060FF */
+ FriBidiPropertyBlockLevel1_0100, /* 106100..1061FF */
+ FriBidiPropertyBlockLevel1_0100, /* 106200..1062FF */
+ FriBidiPropertyBlockLevel1_0100, /* 106300..1063FF */
+ FriBidiPropertyBlockLevel1_0100, /* 106400..1064FF */
+ FriBidiPropertyBlockLevel1_0100, /* 106500..1065FF */
+ FriBidiPropertyBlockLevel1_0100, /* 106600..1066FF */
+ FriBidiPropertyBlockLevel1_0100, /* 106700..1067FF */
+ FriBidiPropertyBlockLevel1_0100, /* 106800..1068FF */
+ FriBidiPropertyBlockLevel1_0100, /* 106900..1069FF */
+ FriBidiPropertyBlockLevel1_0100, /* 106A00..106AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 106B00..106BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 106C00..106CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 106D00..106DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 106E00..106EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 106F00..106FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 107000..1070FF */
+ FriBidiPropertyBlockLevel1_0100, /* 107100..1071FF */
+ FriBidiPropertyBlockLevel1_0100, /* 107200..1072FF */
+ FriBidiPropertyBlockLevel1_0100, /* 107300..1073FF */
+ FriBidiPropertyBlockLevel1_0100, /* 107400..1074FF */
+ FriBidiPropertyBlockLevel1_0100, /* 107500..1075FF */
+ FriBidiPropertyBlockLevel1_0100, /* 107600..1076FF */
+ FriBidiPropertyBlockLevel1_0100, /* 107700..1077FF */
+ FriBidiPropertyBlockLevel1_0100, /* 107800..1078FF */
+ FriBidiPropertyBlockLevel1_0100, /* 107900..1079FF */
+ FriBidiPropertyBlockLevel1_0100, /* 107A00..107AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 107B00..107BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 107C00..107CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 107D00..107DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 107E00..107EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 107F00..107FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 108000..1080FF */
+ FriBidiPropertyBlockLevel1_0100, /* 108100..1081FF */
+ FriBidiPropertyBlockLevel1_0100, /* 108200..1082FF */
+ FriBidiPropertyBlockLevel1_0100, /* 108300..1083FF */
+ FriBidiPropertyBlockLevel1_0100, /* 108400..1084FF */
+ FriBidiPropertyBlockLevel1_0100, /* 108500..1085FF */
+ FriBidiPropertyBlockLevel1_0100, /* 108600..1086FF */
+ FriBidiPropertyBlockLevel1_0100, /* 108700..1087FF */
+ FriBidiPropertyBlockLevel1_0100, /* 108800..1088FF */
+ FriBidiPropertyBlockLevel1_0100, /* 108900..1089FF */
+ FriBidiPropertyBlockLevel1_0100, /* 108A00..108AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 108B00..108BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 108C00..108CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 108D00..108DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 108E00..108EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 108F00..108FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 109000..1090FF */
+ FriBidiPropertyBlockLevel1_0100, /* 109100..1091FF */
+ FriBidiPropertyBlockLevel1_0100, /* 109200..1092FF */
+ FriBidiPropertyBlockLevel1_0100, /* 109300..1093FF */
+ FriBidiPropertyBlockLevel1_0100, /* 109400..1094FF */
+ FriBidiPropertyBlockLevel1_0100, /* 109500..1095FF */
+ FriBidiPropertyBlockLevel1_0100, /* 109600..1096FF */
+ FriBidiPropertyBlockLevel1_0100, /* 109700..1097FF */
+ FriBidiPropertyBlockLevel1_0100, /* 109800..1098FF */
+ FriBidiPropertyBlockLevel1_0100, /* 109900..1099FF */
+ FriBidiPropertyBlockLevel1_0100, /* 109A00..109AFF */
+ FriBidiPropertyBlockLevel1_0100, /* 109B00..109BFF */
+ FriBidiPropertyBlockLevel1_0100, /* 109C00..109CFF */
+ FriBidiPropertyBlockLevel1_0100, /* 109D00..109DFF */
+ FriBidiPropertyBlockLevel1_0100, /* 109E00..109EFF */
+ FriBidiPropertyBlockLevel1_0100, /* 109F00..109FFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10A000..10A0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10A100..10A1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10A200..10A2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10A300..10A3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10A400..10A4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10A500..10A5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10A600..10A6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10A700..10A7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10A800..10A8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10A900..10A9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10AA00..10AAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10AB00..10ABFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10AC00..10ACFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10AD00..10ADFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10AE00..10AEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10AF00..10AFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10B000..10B0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10B100..10B1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10B200..10B2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10B300..10B3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10B400..10B4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10B500..10B5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10B600..10B6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10B700..10B7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10B800..10B8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10B900..10B9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10BA00..10BAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10BB00..10BBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10BC00..10BCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10BD00..10BDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10BE00..10BEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10BF00..10BFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10C000..10C0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10C100..10C1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10C200..10C2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10C300..10C3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10C400..10C4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10C500..10C5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10C600..10C6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10C700..10C7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10C800..10C8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10C900..10C9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10CA00..10CAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10CB00..10CBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10CC00..10CCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10CD00..10CDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10CE00..10CEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10CF00..10CFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10D000..10D0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10D100..10D1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10D200..10D2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10D300..10D3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10D400..10D4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10D500..10D5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10D600..10D6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10D700..10D7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10D800..10D8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10D900..10D9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10DA00..10DAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10DB00..10DBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10DC00..10DCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10DD00..10DDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10DE00..10DEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10DF00..10DFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10E000..10E0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10E100..10E1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10E200..10E2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10E300..10E3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10E400..10E4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10E500..10E5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10E600..10E6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10E700..10E7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10E800..10E8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10E900..10E9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10EA00..10EAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10EB00..10EBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10EC00..10ECFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10ED00..10EDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10EE00..10EEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10EF00..10EFFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10F000..10F0FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10F100..10F1FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10F200..10F2FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10F300..10F3FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10F400..10F4FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10F500..10F5FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10F600..10F6FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10F700..10F7FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10F800..10F8FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10F900..10F9FF */
+ FriBidiPropertyBlockLevel1_0100, /* 10FA00..10FAFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10FB00..10FBFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10FC00..10FCFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10FD00..10FDFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10FE00..10FEFF */
+ FriBidiPropertyBlockLevel1_0100, /* 10FF00..10FFFF */
+};
+
+/* *INDENT-ON* */
+
+#define FRIBIDI_GET_TYPE(x) \
+ FriBidiPropertyBlockLevel1[(x)%256 + \
+ FriBidiPropertyBlockLevel0[(x)/256]]
+
+#undef WS
+#undef SS
+#undef RLO
+#undef RLE
+#undef PDF
+#undef NSM
+#undef LRO
+#undef LRE
+#undef ET
+#undef ES
+#undef EN
+#undef CS
+#undef BS
+#undef AN
+#undef BN
+#undef ON
+#undef AL
+#undef RTL
+#undef LTR
+/*======================================================================
+ * _pango_fribidi_get_type_internal() returns the bidi type of a character.
+ *----------------------------------------------------------------------*/
+FriBidiCharType
+_pango_fribidi_get_type_internal (FriBidiChar uch)
+{
+ if (uch < 0x110000)
+ return _pango_fribidi_prop_to_type[(unsigned char)FRIBIDI_GET_TYPE (uch)];
+ else
+ return FRIBIDI_TYPE_LTR;
+ /* Non-Unicode chars */
+}
+
+
+#endif /* FRIBIDI_TAB_CHAR_TYPE_2_I */
diff --git a/pango/mini-fribidi/fribidi_types.c b/pango/mini-fribidi/fribidi_types.c
new file mode 100644
index 00000000..8c6a00ed
--- /dev/null
+++ b/pango/mini-fribidi/fribidi_types.c
@@ -0,0 +1,126 @@
+/* FriBidi - Library of BiDi algorithm
+ * Copyright (C) 2001,2002 Behdad Esfahbod.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library, in a file named COPYING; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307, USA
+ *
+ * For licensing issues, contact <fwpg@sharif.edu>.
+ */
+
+#include <glib.h>
+#include "fribidi_types.h"
+
+#ifdef DEBUG
+
+char
+fribidi_char_from_type (FriBidiCharType c)
+{
+ switch (c)
+ {
+ case FRIBIDI_TYPE_LTR:
+ return 'L';
+ case FRIBIDI_TYPE_RTL:
+ return 'R';
+ case FRIBIDI_TYPE_AL:
+ return 'A';
+
+ case FRIBIDI_TYPE_EN:
+ return '1';
+ case FRIBIDI_TYPE_AN:
+ return '9';
+ case FRIBIDI_TYPE_ES:
+ return 'w';
+ case FRIBIDI_TYPE_ET:
+ return 'w';
+ case FRIBIDI_TYPE_CS:
+ return 'w';
+ case FRIBIDI_TYPE_NSM:
+ return '`';
+ case FRIBIDI_TYPE_BN:
+ return 'b';
+
+ case FRIBIDI_TYPE_BS:
+ return 'B';
+ case FRIBIDI_TYPE_SS:
+ return 'S';
+ case FRIBIDI_TYPE_WS:
+ return '_';
+ case FRIBIDI_TYPE_ON:
+ return 'n';
+
+ case FRIBIDI_TYPE_LRE:
+ return '+';
+ case FRIBIDI_TYPE_RLE:
+ return '+';
+ case FRIBIDI_TYPE_LRO:
+ return '+';
+ case FRIBIDI_TYPE_RLO:
+ return '+';
+ case FRIBIDI_TYPE_PDF:
+ return '-';
+
+ default:
+ return '?';
+ }
+};
+
+#endif
+
+char *
+fribidi_type_name (FriBidiCharType c)
+{
+#define _FRIBIDI_CASE(type) case FRIBIDI_TYPE_##type: return #type
+ switch (c)
+ {
+ _FRIBIDI_CASE (LTR);
+ _FRIBIDI_CASE (RTL);
+ _FRIBIDI_CASE (AL);
+
+ _FRIBIDI_CASE (EN);
+ _FRIBIDI_CASE (AN);
+ _FRIBIDI_CASE (ES);
+ _FRIBIDI_CASE (ET);
+ _FRIBIDI_CASE (CS);
+ _FRIBIDI_CASE (NSM);
+ _FRIBIDI_CASE (BN);
+
+ _FRIBIDI_CASE (BS);
+ _FRIBIDI_CASE (SS);
+ _FRIBIDI_CASE (WS);
+ _FRIBIDI_CASE (ON);
+
+ _FRIBIDI_CASE (LRE);
+ _FRIBIDI_CASE (RLE);
+ _FRIBIDI_CASE (LRO);
+ _FRIBIDI_CASE (RLO);
+ _FRIBIDI_CASE (PDF);
+
+ _FRIBIDI_CASE (SOT);
+ _FRIBIDI_CASE (EOT);
+
+ default:
+ return "?";
+ }
+#undef _FRIBIDI_CASE
+}
+
+/* Map fribidi_prop_types to fribidi_types. */
+static FriBidiCharType fribidi_prop_to_type_array[] = {
+#define _FRIBIDI_ADD_TYPE(TYPE) FRIBIDI_TYPE_##TYPE,
+#include "fribidi_types.i"
+#undef _FRIBIDI_ADD_TYPE
+};
+
+FriBidiCharType *_pango_fribidi_prop_to_type = fribidi_prop_to_type_array;
diff --git a/pango/mini-fribidi/fribidi_types.h b/pango/mini-fribidi/fribidi_types.h
index 40095128..181b1f9b 100644
--- a/pango/mini-fribidi/fribidi_types.h
+++ b/pango/mini-fribidi/fribidi_types.h
@@ -1,6 +1,6 @@
/* FriBidi - Library of BiDi algorithm
* Copyright (C) 1999,2000 Dov Grobgeld, and
- * Copyright (C) 2001 Behdad Esfahbod.
+ * Copyright (C) 2001,2002 Behdad Esfahbod.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -13,7 +13,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this library, in a file named COPYING.LIB; if not, write to the
+ * along with this library, in a file named COPYING; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
* Boston, MA 02111-1307, USA
*
@@ -23,127 +23,176 @@
#ifndef FRIBIDI_TYPES_H
#define FRIBIDI_TYPES_H
-#ifndef FRIBIDI_USE_MINI_GLIB
#include <glib.h>
-#else
-#include "fribidi_mini_glib.h"
+
+ typedef gint8 FriBidiLevel;
+ typedef gunichar FriBidiChar;
+ typedef gint FriBidiStrIndex;
+ typedef gint32 FriBidiMaskType;
+ typedef FriBidiMaskType FriBidiCharType;
+
+ gchar *fribidi_type_name (FriBidiCharType c);
+
+/* The following type is used by fribidi_utils */
+ typedef struct
+ {
+ FriBidiStrIndex length;
+ void *attribute;
+ }
+ FriBidiRunType;
+
+/* The following type is used by fribidi_utils */
+ typedef struct _FriBidiList FriBidiList;
+ struct _FriBidiList
+ {
+ void *data;
+ FriBidiList *next;
+ FriBidiList *prev;
+ };
+
+#ifndef FRIBIDI_MAX_STRING_LENGTH
+#define FRIBIDI_MAX_STRING_LENGTH (sizeof (FriBidiStrIndex) == 2 ? \
+ 0x7FFE : (sizeof (FriBidiStrIndex) == 1 ? \
+ 0x7E : 0x8FFFFFFEL))
#endif
-typedef guint32 FriBidiChar;
-
-typedef guint16 FriBidiStrIndex;
-
-/* Define some bit masks, that character types are based on, each one has
- only one bit on. */
-typedef enum
-{
- FRIBIDI_MASK_RTL = 0x00000001, /* Is right to left */
- FRIBIDI_MASK_ARABIC = 0x00000002, /* Is arabic */
-
- /* Each char can be only one of the three following. */
- FRIBIDI_MASK_STRONG = 0x00000010, /* Is strong */
- FRIBIDI_MASK_WEAK = 0x00000020, /* Is weak */
- FRIBIDI_MASK_NEUTRAL = 0x00000040, /* Is neutral */
- FRIBIDI_MASK_SENTINEL = 0x00000080, /* Is sentinel: SOT, EOT */
- /* Sentinels are not valid chars, just identify the start and end of strings. */
-
- /* Each char can be only one of the five following. */
- FRIBIDI_MASK_LETTER = 0x00000100, /* Is letter: L, R, AL */
- FRIBIDI_MASK_NUMBER = 0x00000200, /* Is number: EN, AN */
- FRIBIDI_MASK_NUMSEPTER = 0x00000400, /* Is number separator or terminator: ES, ET, CS */
- FRIBIDI_MASK_SPACE = 0x00000800, /* Is space: BN, BS, SS, WS */
- FRIBIDI_MASK_EXPLICIT = 0x00001000, /* Is expilict mark: LRE, RLE, LRO, RLO, PDF */
-
- /* Can be on only if FRIBIDI_MASK_SPACE is also on. */
- FRIBIDI_MASK_SEPARATOR = 0x00002000, /* Is test separator: BS, SS */
-
- /* Can be on only if FRIBIDI_MASK_EXPLICIT is also on. */
- FRIBIDI_MASK_OVERRIDE = 0x00004000, /* Is explicit override: LRO, RLO */
-
- /* The following must be to make types pairwise different, some of them can
- be removed but are here because of efficiency (make queries faster). */
-
- FRIBIDI_MASK_ES = 0x00010000,
- FRIBIDI_MASK_ET = 0x00020000,
- FRIBIDI_MASK_CS = 0x00040000,
-
- FRIBIDI_MASK_NSM = 0x00080000,
- FRIBIDI_MASK_BN = 0x00100000,
-
- FRIBIDI_MASK_BS = 0x00200000,
- FRIBIDI_MASK_SS = 0x00400000,
- FRIBIDI_MASK_WS = 0x00800000
-}
-FriBidiMaskType;
-
-typedef enum
-{
- FRIBIDI_TYPE_LTR = /* Strong left to right */
- FRIBIDI_MASK_STRONG + FRIBIDI_MASK_LETTER,
- FRIBIDI_TYPE_RTL = /* Right to left characters */
- FRIBIDI_MASK_STRONG + FRIBIDI_MASK_LETTER + FRIBIDI_MASK_RTL,
- FRIBIDI_TYPE_AL = /* Arabic characters */
- FRIBIDI_MASK_STRONG + FRIBIDI_MASK_LETTER +
- FRIBIDI_MASK_RTL + FRIBIDI_MASK_ARABIC,
- FRIBIDI_TYPE_LRE = /* Left-To-Right embedding */
- FRIBIDI_MASK_STRONG + FRIBIDI_MASK_EXPLICIT,
- FRIBIDI_TYPE_RLE = /* Right-To-Left embedding */
- FRIBIDI_MASK_STRONG + FRIBIDI_MASK_EXPLICIT + FRIBIDI_MASK_RTL,
- FRIBIDI_TYPE_LRO = /* Left-To-Right override */
- FRIBIDI_MASK_STRONG + FRIBIDI_MASK_EXPLICIT + FRIBIDI_MASK_OVERRIDE,
- FRIBIDI_TYPE_RLO = /* Right-To-Left override */
- FRIBIDI_MASK_STRONG + FRIBIDI_MASK_EXPLICIT +
- FRIBIDI_MASK_RTL + FRIBIDI_MASK_OVERRIDE,
-
- FRIBIDI_TYPE_PDF = /* Pop directional override */
- FRIBIDI_MASK_WEAK + FRIBIDI_MASK_EXPLICIT,
- FRIBIDI_TYPE_EN = /* European digit */
- FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMBER,
- FRIBIDI_TYPE_AN = /* Arabic digit */
- FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMBER + FRIBIDI_MASK_ARABIC,
- FRIBIDI_TYPE_ES = /* European number separator */
- FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMSEPTER + FRIBIDI_MASK_ES,
- FRIBIDI_TYPE_ET = /* European number terminator */
- FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMSEPTER + FRIBIDI_MASK_ET,
- FRIBIDI_TYPE_CS = /* Common Separator */
- FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMSEPTER + FRIBIDI_MASK_CS,
- FRIBIDI_TYPE_NSM = /* Non spacing mark */
- FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NSM,
- FRIBIDI_TYPE_BN = /* Boundary neutral */
- FRIBIDI_MASK_WEAK + FRIBIDI_MASK_SPACE + FRIBIDI_MASK_BN,
-
- FRIBIDI_TYPE_BS = /* Block separator */
- FRIBIDI_MASK_NEUTRAL + FRIBIDI_MASK_SPACE +
- FRIBIDI_MASK_SEPARATOR + FRIBIDI_MASK_BS,
- FRIBIDI_TYPE_SS = /* Segment separator */
- FRIBIDI_MASK_NEUTRAL + FRIBIDI_MASK_SPACE +
- FRIBIDI_MASK_SEPARATOR + FRIBIDI_MASK_SS,
- FRIBIDI_TYPE_WS = /* Whitespace */
- FRIBIDI_MASK_NEUTRAL + FRIBIDI_MASK_SPACE + FRIBIDI_MASK_WS,
- FRIBIDI_TYPE_ON = /* Other Neutral */
- FRIBIDI_MASK_NEUTRAL,
-
- /* The following are used to identify the paragraph direction,
- types L, R, N are not used internally anymore, and recommended to use
- LTR, RTL and ON instead, didn't removed because of compatability. */
- FRIBIDI_TYPE_L = FRIBIDI_TYPE_LTR,
- FRIBIDI_TYPE_R = FRIBIDI_TYPE_RTL,
- FRIBIDI_TYPE_N = FRIBIDI_TYPE_ON,
- FRIBIDI_TYPE_WL = /* Weak left to right */
- FRIBIDI_MASK_WEAK,
- FRIBIDI_TYPE_WR = /* Weak right to left */
- FRIBIDI_MASK_WEAK + FRIBIDI_MASK_RTL,
-
- /* The following are only used internally */
- FRIBIDI_TYPE_SOT = /* Start of text */
- FRIBIDI_MASK_SENTINEL,
- FRIBIDI_TYPE_EOT = /* End of text */
- FRIBIDI_MASK_SENTINEL + FRIBIDI_MASK_RTL
-}
-FriBidiCharType;
-
-/* Defining macros for needed queries, It is fully dependent on the
- implementation of FriBidiCharType. */
+
+/*
+ * Define some bit masks, that character types are based on, each one has
+ * only one bit on.
+ */
+
+/* Do not use enum, because 16bit processors do not allow 32bit enum values. */
+
+#define FRIBIDI_MASK_RTL 0x00000001L /* Is right to left */
+#define FRIBIDI_MASK_ARABIC 0x00000002L /* Is arabic */
+
+/* Each char can be only one of the three following. */
+#define FRIBIDI_MASK_STRONG 0x00000010L /* Is strong */
+#define FRIBIDI_MASK_WEAK 0x00000020L /* Is weak */
+#define FRIBIDI_MASK_NEUTRAL 0x00000040L /* Is neutral */
+#define FRIBIDI_MASK_SENTINEL 0x00000080L /* Is sentinel: SOT, EOT */
+/* Sentinels are not valid chars, just identify the start and end of strings. */
+
+/* Each char can be only one of the five following. */
+#define FRIBIDI_MASK_LETTER 0x00000100L /* Is letter: L, R, AL */
+#define FRIBIDI_MASK_NUMBER 0x00000200L /* Is number: EN, AN */
+#define FRIBIDI_MASK_NUMSEPTER 0x00000400L /* Is number separator or terminator: ES, ET, CS */
+#define FRIBIDI_MASK_SPACE 0x00000800L /* Is space: BN, BS, SS, WS */
+#define FRIBIDI_MASK_EXPLICIT 0x00001000L /* Is expilict mark: LRE, RLE, LRO, RLO, PDF */
+
+/* Can be on only if FRIBIDI_MASK_SPACE is also on. */
+#define FRIBIDI_MASK_SEPARATOR 0x00002000L /* Is test separator: BS, SS */
+/* Can be on only if FRIBIDI_MASK_EXPLICIT is also on. */
+#define FRIBIDI_MASK_OVERRIDE 0x00004000L /* Is explicit override: LRO, RLO */
+
+/* The following must be to make types pairwise different, some of them can
+ be removed but are here because of efficiency (make queries faster). */
+
+#define FRIBIDI_MASK_ES 0x00010000L
+#define FRIBIDI_MASK_ET 0x00020000L
+#define FRIBIDI_MASK_CS 0x00040000L
+
+#define FRIBIDI_MASK_NSM 0x00080000L
+#define FRIBIDI_MASK_BN 0x00100000L
+
+#define FRIBIDI_MASK_BS 0x00200000L
+#define FRIBIDI_MASK_SS 0x00400000L
+#define FRIBIDI_MASK_WS 0x00800000L
+
+/* We reserve the sign bit for user's private use: we will never use it,
+ then negative character types will be never assigned. */
+
+
+/*
+ * Define values for FriBidiCharType
+ */
+
+/* Strong left to right */
+#define FRIBIDI_TYPE_LTR ( FRIBIDI_MASK_STRONG + FRIBIDI_MASK_LETTER )
+/* Right to left characters */
+#define FRIBIDI_TYPE_RTL ( FRIBIDI_MASK_STRONG + FRIBIDI_MASK_LETTER \
+ + FRIBIDI_MASK_RTL)
+/* Arabic characters */
+#define FRIBIDI_TYPE_AL ( FRIBIDI_MASK_STRONG + FRIBIDI_MASK_LETTER \
+ + FRIBIDI_MASK_RTL + FRIBIDI_MASK_ARABIC )
+/* Left-To-Right embedding */
+#define FRIBIDI_TYPE_LRE (FRIBIDI_MASK_STRONG + FRIBIDI_MASK_EXPLICIT)
+/* Right-To-Left embedding */
+#define FRIBIDI_TYPE_RLE ( FRIBIDI_MASK_STRONG + FRIBIDI_MASK_EXPLICIT \
+ + FRIBIDI_MASK_RTL )
+/* Left-To-Right override */
+#define FRIBIDI_TYPE_LRO ( FRIBIDI_MASK_STRONG + FRIBIDI_MASK_EXPLICIT \
+ + FRIBIDI_MASK_OVERRIDE )
+/* Right-To-Left override */
+#define FRIBIDI_TYPE_RLO ( FRIBIDI_MASK_STRONG + FRIBIDI_MASK_EXPLICIT \
+ + FRIBIDI_MASK_RTL + FRIBIDI_MASK_OVERRIDE )
+
+/* Pop directional override */
+#define FRIBIDI_TYPE_PDF ( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_EXPLICIT )
+/* European digit */
+#define FRIBIDI_TYPE_EN ( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMBER )
+/* Arabic digit */
+#define FRIBIDI_TYPE_AN ( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMBER \
+ + FRIBIDI_MASK_ARABIC )
+/* European number separator */
+#define FRIBIDI_TYPE_ES ( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMSEPTER \
+ + FRIBIDI_MASK_ES )
+/* European number terminator */
+#define FRIBIDI_TYPE_ET ( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMSEPTER \
+ + FRIBIDI_MASK_ET )
+/* Common Separator */
+#define FRIBIDI_TYPE_CS ( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMSEPTER \
+ + FRIBIDI_MASK_CS )
+/* Non spacing mark */
+#define FRIBIDI_TYPE_NSM ( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NSM )
+/* Boundary neutral */
+#define FRIBIDI_TYPE_BN ( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_SPACE \
+ + FRIBIDI_MASK_BN )
+
+/* Block separator */
+#define FRIBIDI_TYPE_BS ( FRIBIDI_MASK_NEUTRAL + FRIBIDI_MASK_SPACE \
+ + FRIBIDI_MASK_SEPARATOR + FRIBIDI_MASK_BS )
+/* Segment separator */
+#define FRIBIDI_TYPE_SS ( FRIBIDI_MASK_NEUTRAL + FRIBIDI_MASK_SPACE \
+ + FRIBIDI_MASK_SEPARATOR + FRIBIDI_MASK_SS )
+/* Whitespace */
+#define FRIBIDI_TYPE_WS ( FRIBIDI_MASK_NEUTRAL + FRIBIDI_MASK_SPACE \
+ + FRIBIDI_MASK_WS )
+/* Other Neutral */
+#define FRIBIDI_TYPE_ON ( FRIBIDI_MASK_NEUTRAL )
+
+/* The following are used to identify the paragraph direction,
+ types L, R, N are not used internally anymore, and recommended to use
+ LTR, RTL and ON instead, didn't removed because of compatability. */
+#define FRIBIDI_TYPE_L ( FRIBIDI_TYPE_LTR )
+#define FRIBIDI_TYPE_R ( FRIBIDI_TYPE_RTL )
+#define FRIBIDI_TYPE_N ( FRIBIDI_TYPE_ON )
+/* Weak left to right */
+#define FRIBIDI_TYPE_WL ( FRIBIDI_MASK_WEAK )
+/* Weak right to left */
+#define FRIBIDI_TYPE_WR ( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_RTL )
+
+/* The following are only used internally */
+
+/* Start of text */
+#define FRIBIDI_TYPE_SOT ( FRIBIDI_MASK_SENTINEL )
+/* End of text */
+#define FRIBIDI_TYPE_EOT ( FRIBIDI_MASK_SENTINEL + FRIBIDI_MASK_RTL )
+
+/*
+ * End of define values for FriBidiCharType
+ */
+
+
+/*
+ * Defining macros for needed queries, It is fully dependent on the
+ * implementation of FriBidiCharType.
+ */
+
+
+/* Is private-use value? */
+#define FRIBIDI_TYPE_PRIVATE(p) ((p) < 0)
/* Return the direction of the level number, FRIBIDI_TYPE_LTR for even and
FRIBIDI_TYPE_RTL for odds. */
@@ -151,10 +200,10 @@ FriBidiCharType;
/* Return the minimum level of the direction, 0 for FRIBIDI_TYPE_LTR and
1 for FRIBIDI_TYPE_RTL and FRIBIDI_TYPE_AL. */
-#define FRIBIDI_DIR_TO_LEVEL(dir) (dir & 1)
+#define FRIBIDI_DIR_TO_LEVEL(dir) ((FriBidiLevel)(dir & 1))
/* Is right to left? */
-#define FRIBIDI_IS_RTL(p) ((P) & FRIBIDI_MASK_RTL)
+#define FRIBIDI_IS_RTL(p) ((p) & FRIBIDI_MASK_RTL)
/* Is arabic? */
#define FRIBIDI_IS_ARABIC(p) ((p) & FRIBIDI_MASK_ARABIC)
@@ -173,7 +222,7 @@ FriBidiCharType;
#define FRIBIDI_IS_NUMBER(p) ((p) & FRIBIDI_MASK_NUMBER)
/* Is number separator or terminator: ES, ET, CS? */
#define FRIBIDI_IS_NUMBER_SEPARATOR_OR_TERMINATOR(p) \
- ((p) & FRIBIDI_MASK_NUMSEPTER)
+ ((p) & FRIBIDI_MASK_NUMSEPTER)
/* Is space: BN, BS, SS, WS? */
#define FRIBIDI_IS_SPACE(p) ((p) & FRIBIDI_MASK_SPACE)
/* Is explicit mark: LRE, RLE, LRO, RLO, PDF? */
@@ -189,96 +238,59 @@ FriBidiCharType;
/* Is left to right letter: LTR? */
#define FRIBIDI_IS_LTR_LETTER(p) \
- ((p) & (FRIBIDI_MASK_LETTER | FRIBIDI_MASK_RTL) == FRIBIDI_MASK_LETTER)
+ ((p) & (FRIBIDI_MASK_LETTER | FRIBIDI_MASK_RTL) == FRIBIDI_MASK_LETTER)
/* Is right to left letter: RTL, AL? */
#define FRIBIDI_IS_RTL_LETTER(p) \
- ((p) & (FRIBIDI_MASK_LETTER | FRIBIDI_MASK_RTL) == \
- (FRIBIDI_MASK_LETTER | FRIBIDI_MASK_RTL))
+ ((p) & (FRIBIDI_MASK_LETTER | FRIBIDI_MASK_RTL) \
+ == (FRIBIDI_MASK_LETTER | FRIBIDI_MASK_RTL))
/* Is ES or CS: ES, CS? */
#define FRIBIDI_IS_ES_OR_CS(p) \
- ((p) & (FRIBIDI_MASK_ES | FRIBIDI_MASK_CS))
+ ((p) & (FRIBIDI_MASK_ES | FRIBIDI_MASK_CS))
/* Is explicit or BN: LRE, RLE, LRO, RLO, PDF, BN? */
#define FRIBIDI_IS_EXPLICIT_OR_BN(p) \
- ((p) & (FRIBIDI_MASK_EXPLICIT | FRIBIDI_MASK_BN))
+ ((p) & (FRIBIDI_MASK_EXPLICIT | FRIBIDI_MASK_BN))
/* Is explicit or separator or BN or WS: LRE, RLE, LRO, RLO, PDF, BS, SS, BN, WS? */
#define FRIBIDI_IS_EXPLICIT_OR_SEPARATOR_OR_BN_OR_WS(p) \
- ((p) & (FRIBIDI_MASK_EXPLICIT | FRIBIDI_MASK_SEPARATOR | \
- FRIBIDI_MASK_BN | FRIBIDI_MASK_WS))
+ ((p) & (FRIBIDI_MASK_EXPLICIT | FRIBIDI_MASK_SEPARATOR \
+ | FRIBIDI_MASK_BN | FRIBIDI_MASK_WS))
/* Define some conversions. */
-/* Change numbers:EN, AN to RTL. */
+/* Change numbers: EN, AN to RTL. */
#define FRIBIDI_CHANGE_NUMBER_TO_RTL(p) \
- (FRIBIDI_IS_NUMBER(p) ? FRIBIDI_TYPE_RTL : (p))
+ (FRIBIDI_IS_NUMBER(p) ? FRIBIDI_TYPE_RTL : (p))
/* Override status of an explicit mark: LRO->LTR, RLO->RTL, otherwise->ON. */
#define FRIBIDI_EXPLICIT_TO_OVERRIDE_DIR(p) \
- (FRIBIDI_IS_OVERRIDE(p) ? FRIBIDI_LEVEL_TO_DIR(FRIBIDI_DIR_TO_LEVEL(p)) : \
- FRIBIDI_TYPE_ON)
+ (FRIBIDI_IS_OVERRIDE(p) ? FRIBIDI_LEVEL_TO_DIR(FRIBIDI_DIR_TO_LEVEL(p)) \
+ : FRIBIDI_TYPE_ON)
+/*
+ * Define character types that char_type_tables use.
+ * define them to be 0, 1, 2, ... and then in _pango_fribidi_get_type.c map them
+ * to FriBidiCharTypes.
+ */
+ typedef char FriBidiPropCharType;
-gchar fribidi_char_from_type (FriBidiCharType c);
+ enum FriBidiPropEnum
+ {
+#define _FRIBIDI_ADD_TYPE(TYPE) FRIBIDI_PROP_TYPE_##TYPE,
+#include "fribidi_types.i"
+#undef _FRIBIDI_ADD_TYPE
+ FRIBIDI_TYPES_COUNT /* Number of different character types */
+ };
-gchar *fribidi_type_name (FriBidiCharType c);
+/* Map fribidi_prop_types to fribidi_types */
+ extern FriBidiCharType *_pango_fribidi_prop_to_type;
-/* Define character types that fribidi_tables.i uses. if MEM_OPTIMIZED
- defined, then define them to be 0, 1, 2, ... and then in
- fribidi_get_type.c map them on FriBidiCharType-s, else define them to
- be equal to FribidiCharType-s */
-#ifdef MEM_OPTIMIZED
-#define _FRIBIDI_PROP(type) FRIBIDI_PROP_TYPE_##type
-typedef guint8 FriBidiPropCharType;
-#else
-#define _FRIBIDI_PROP(type) FRIBIDI_PROP_TYPE_##type = FRIBIDI_TYPE_##type
-typedef FriBidiCharType FriBidiPropCharType;
-#endif
-enum
-{
- _FRIBIDI_PROP (LTR), /* Strong left to right */
- _FRIBIDI_PROP (RTL), /* Right to left characters */
- _FRIBIDI_PROP (AL), /* Arabic characters */
- _FRIBIDI_PROP (LRE), /* Left-To-Right embedding */
- _FRIBIDI_PROP (RLE), /* Right-To-Left embedding */
- _FRIBIDI_PROP (LRO), /* Left-To-Right override */
- _FRIBIDI_PROP (RLO), /* Right-To-Left override */
- _FRIBIDI_PROP (PDF), /* Pop directional override */
- _FRIBIDI_PROP (EN), /* European digit */
- _FRIBIDI_PROP (AN), /* Arabic digit */
- _FRIBIDI_PROP (ES), /* European number separator */
- _FRIBIDI_PROP (ET), /* European number terminator */
- _FRIBIDI_PROP (CS), /* Common Separator */
- _FRIBIDI_PROP (NSM), /* Non spacing mark */
- _FRIBIDI_PROP (BN), /* Boundary neutral */
- _FRIBIDI_PROP (BS), /* Block separator */
- _FRIBIDI_PROP (SS), /* Segment separator */
- _FRIBIDI_PROP (WS), /* Whitespace */
- _FRIBIDI_PROP (ON), /* Other Neutral */
- _FRIBIDI_PROP (WL), /* Weak left to right */
- _FRIBIDI_PROP (WR), /* Weak right to left */
- _FRIBIDI_PROP (SOT), /* Start of text */
- _FRIBIDI_PROP (EOT) /* End of text */
-};
-#undef _FRIBIDI_PROP
+/*======================================================================
+ * _pango_fribidi_get_type() returns bidi type of a character.
+ *----------------------------------------------------------------------*/
+ FriBidiCharType _pango_fribidi_get_type (FriBidiChar uch);
-/* The following type is used by fribidi_utils */
-typedef struct
-{
- int length;
- void *attribute;
-}
-FriBidiRunType;
-
-/* TBD: The following should be configuration parameters, once we can
- figure out how to make configure set them... */
-#ifndef FRIBIDI_MAX_STRING_LENGTH
-#define FRIBIDI_MAX_STRING_LENGTH 65535
-#endif
-
-FriBidiCharType _pango_fribidi_get_type(FriBidiChar uch);
-
-#endif
+#endif /* #ifndef FRIBIDI_TYPES_H */
diff --git a/pango/mini-fribidi/fribidi_types.i b/pango/mini-fribidi/fribidi_types.i
new file mode 100644
index 00000000..562bae39
--- /dev/null
+++ b/pango/mini-fribidi/fribidi_types.i
@@ -0,0 +1,21 @@
+_FRIBIDI_ADD_TYPE(LTR) /* Strong left to right */
+_FRIBIDI_ADD_TYPE(RTL) /* Right to left characters */
+_FRIBIDI_ADD_TYPE(AL) /* Arabic characters */
+_FRIBIDI_ADD_TYPE(LRE) /* Left-To-Right embedding */
+_FRIBIDI_ADD_TYPE(RLE) /* Right-To-Left embedding */
+_FRIBIDI_ADD_TYPE(LRO) /* Left-To-Right override */
+_FRIBIDI_ADD_TYPE(RLO) /* Right-To-Left override */
+_FRIBIDI_ADD_TYPE(PDF) /* Pop directional override */
+_FRIBIDI_ADD_TYPE(EN) /* European digit */
+_FRIBIDI_ADD_TYPE(AN) /* Arabic digit */
+_FRIBIDI_ADD_TYPE(ES) /* European number separator */
+_FRIBIDI_ADD_TYPE(ET) /* European number terminator */
+_FRIBIDI_ADD_TYPE(CS) /* Common Separator */
+_FRIBIDI_ADD_TYPE(NSM) /* Non spacing mark */
+_FRIBIDI_ADD_TYPE(BN) /* Boundary neutral */
+_FRIBIDI_ADD_TYPE(BS) /* Block separator */
+_FRIBIDI_ADD_TYPE(SS) /* Segment separator */
+_FRIBIDI_ADD_TYPE(WS) /* Whitespace */
+_FRIBIDI_ADD_TYPE(ON) /* Other Neutral */
+_FRIBIDI_ADD_TYPE(WL) /* Weak left to right */
+_FRIBIDI_ADD_TYPE(WR) /* Weak right to left */
diff --git a/pango/pango-utils.c b/pango/pango-utils.c
index 9478b59b..ea4d5e03 100644
--- a/pango/pango-utils.c
+++ b/pango/pango-utils.c
@@ -1253,16 +1253,15 @@ pango_log2vis_get_embedding_levels (gunichar *str,
return result;
}
+#endif /* HAVE_FRIBIDI */
gboolean
pango_get_mirror_char (gunichar ch,
gunichar *mirrored_ch)
{
- return fribidi_get_mirror_char (ch, mirrored_ch);
+ return g_unichar_get_mirror_char (ch, mirrored_ch);
}
-#endif /* HAVE_FRIBIDI */
-
static guint
alias_hash (struct PangoAlias *alias)