summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/babel/babel.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-10-05 00:42:38 +0000
committerKarl Berry <karl@freefriends.org>2017-10-05 00:42:38 +0000
commit217a060c4db3cb29e49679ea8a15af13dbd5ce35 (patch)
tree994a1bcf70326a3aee7ca6bdaaa1d608139ea14c /Master/texmf-dist/source/latex/babel/babel.dtx
parente318605d00d63a8a5f31bf3e47017593958ab837 (diff)
babel (4oct17)
git-svn-id: svn://tug.org/texlive/trunk@45474 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/babel/babel.dtx')
-rw-r--r--Master/texmf-dist/source/latex/babel/babel.dtx7082
1 files changed, 6706 insertions, 376 deletions
diff --git a/Master/texmf-dist/source/latex/babel/babel.dtx b/Master/texmf-dist/source/latex/babel/babel.dtx
index fe92b27336b..0f97e75f477 100644
--- a/Master/texmf-dist/source/latex/babel/babel.dtx
+++ b/Master/texmf-dist/source/latex/babel/babel.dtx
@@ -1,57 +1,38 @@
-% \iffalse meta-comment
-%
-% Copyright 2012-2017 Javier Bezos and Johannes L. Braams.
-% Copyright 1989-2012 Johannes L. Braams and any individual authors
-% listed elsewhere in this file.
-% All rights reserved.
-%
-% This file is part of the Babel system.
-% --------------------------------------
-%
-% It may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2003/12/01 or later.
-%
-% This work has the LPPL maintenance status "maintained".
-%
-% The Current Maintainer of this work is Javier Bezos.
-%
-% The list of all files belonging to the Babel system is
-% given in the file `manifest.bbl. See also `legal.bbl' for additional
-% information.
-%
-% The list of derived (unpacked) files belonging to the distribution
-% and covered by LPPL is defined by the unpacking scripts (with
-% extension |.ins|) which are part of the distribution.
+% \iffalse
+%%
+%% Copyright (C) 2012-2017 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 1989-2012 Johannes L. Braams and
+%% any individual authors listed elsewhere in this file.
+%% All rights reserved.
+%%
+%% This file is part of the Babel system.
+%% --------------------------------------
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2003/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% The Current Maintainer of this work is Javier Bezos.
+%%
+%% The list of derived (unpacked) files belonging to the distribution
+%% and covered by LPPL is defined by the unpacking scripts (with
+%% extension |.ins|) which are part of the distribution.
+%%
% \fi
-% \CheckSum{5011}
-%
-% \def\filename{babel.dtx}
-% \let\thisfilename\filename
-%
-%\iffalse
-%% File 'babel.dtx'
-%\fi
-%%\ProvidesFile{babel.dtx}[2017/09/18 v3.13 The Babel package]
-%\iffalse
-%
-% Babel DOCUMENT-STYLE option for LaTeX version 2.09 or plain TeX;
-%% Babel package for LaTeX2e.
%
-%% Copyright (C) 1989-2008 by Johannes Braams,
-%% TeXniek
-%% all rights reserved.
-%% Copyright (C) 2013-2017 by Johannes Braams
-%% TeXniek
-%% by Javier Bezos
-%% all rights reserved.
+% \CheckSum{5011}
%
+% \iffalse
%<*filedriver>
+\ProvidesFile{babel.dtx}[2017/10/04 v3.14 The Babel package]
\documentclass{ltxdoc}
+\GetFileInfo{babel.dtx}
\usepackage{fontspec}
\setmainfont[Scale=.89]{DejaVu Serif}
\setsansfont[Scale=.87]{DejaVu Sans}
@@ -82,16 +63,14 @@
\newcommand*\pkg[1]{\texttt{#1}}
\addtolength{\oddsidemargin}{1em}
\setlength{\leftmargini}{1.5em}
-% Stolen and adapted from microtype:
+\usepackage{framed}
\usepackage{color,colortbl}
+\usepackage[linkbordercolor={.9 .7 .5}]{hyperref}
\newcommand\New[1]{%
\colorbox[rgb]{.92, .86, .73}{New #1}\enspace\ignorespaces}
\definecolor{thered} {rgb}{0.65,0.04,0.07}
-\definecolor{thegreen}{rgb}{0.06,0.44,0.08}
\definecolor{thegrey} {gray}{0.8}
-\definecolor{theshade}{rgb}{1,1,0.97}
-\definecolor{theframe}{gray}{0.6}
-\definecolor{lightgray}{gray}{0.95}
+\definecolor{shadecolor}{rgb}{1,1,0.97}
\definecolor{messages}{rgb}{.66,.13,.27}
\makeatletter
\def\@begintheorem#1#2{%
@@ -103,37 +82,15 @@
\newtheorem{warning}{Warning}
\newtheorem{note}{Note}
\newtheorem{example}{Example}
-\IfFileExists{listings.sty}{
- \usepackage{listings}
- \usepackage{listingsutf8}
- \lstdefinestyle{verbatim}{
- % gobble=1,
- columns=flexible,
- keepspaces,
- basicstyle=\MacroFont,
- keywords=[0]{\selectlanguage,\foreignlanguage,\defineshorthand,
- \babelhyphen,\babelhyphenation,\spanishhyphenmins,\addto,
- \StartBabelCommands,\SetString,\EndBabelCommands,\shorthandoff,
- \languageshorthands,\useshorthands,\AddBabelHook,\SetStringLoop,
- \SetCase,\AfterBabelLanguage,\SetHyphenMap,\BabelLowerMM,
- \babelensure,\babeltags},
- keywordstyle=[0]\color{thered},
- keywords=[1]{ngerman,italian,dutch,english,main,esperanto,
- frenchb,shorthands,extrasfrench,extrasrussian,extrasenglish,
- stringprocess,afterextras,latin,medieval,spanish,notilde,
- lcroman,danish},
- keywordstyle=[1]\color{thegreen},
- comment=[l]\%,
- commentstyle=\color{thegrey}\itshape,
- alsoother={0123456789_},
- frame=single,
- backgroundcolor=\color{theshade},
- rulecolor=\color{theframe},
- framerule=\fboxrule,
- }
- \let\verbatim\relax
- \lstnewenvironment{verbatim}[1][]{\lstset{style=verbatim,##1}}{}
-}{}
+\let\bblxv\verbatim
+\let\bblexv\endverbatim
+\def\verbatim{\begin{shaded*}\bblxv\vskip-\baselineskip\vskip2.5\parsep}
+\def\endverbatim{\bblexv\vskip-2\baselineskip\end{shaded*}}
+\catcode`\_=\active
+\def_{\bgroup\let_\egroup\color{thered}}
+\def\MacroFont{\fontencoding \encodingdefault \fontfamily\ttdefault
+ \fontseries\mddefault \fontshape\updefault \small \catcode`\_=\active}
+\definecolor{shadecolor}{rgb}{0.96,0.96,0.93}
\def\PrintDescribeMacro#1{%
\strut\MacroFont\color{thered}\normalsize\string#1}
\def\Describe#1{%
@@ -141,6 +98,8 @@
\DescribeMacro{#1}\args}
\def\DescribeOther{\vskip-4ex\Describe}
\makeatletter
+\let\saved@check@percent\check@percent
+\let\check@percent\relax
\def\args#1{%
\def\bbl@tempa{#1}%
\ifx\bbl@tempa\@empty\else#1\vskip1ex\fi\ignorespaces}
@@ -190,8 +149,8 @@
Kersengaarde 33\\
2723 BP Zoetermeer\\
The Netherlands\\
- \normalsize For version 3.9, Javier Bezos\\
- \normalsize \texttt{www.tex-tipografia.com}}
+ \normalsize From version 3.9 on, Javier Bezos\\
+ \normalsize \texttt{www.texnia.com}}
\date{Typeset \today}
\begin{titlepage}
@@ -211,8 +170,8 @@
\vspace{2cm}\hspace{1.5cm}
\begin{minipage}{5cm}
\Large
-Version 3.13\newline
-2017/09/18
+Version \csname @gobble\expandafter\endcsname\fileversion\newline
+\filedate
\vspace{1cm}
\textit{Original author}\newline
@@ -274,16 +233,17 @@ purpose, namely, passing that language as an optional argument. In
addition, you may want to set the font and input encodings.
\begin{example}
- Here is a simple full example. The packages |fontenc| and |inputenc|
- do not belong to \babel, but they are included in the example
- because typically you will need them:
+ Here is a simple full example for “traditional” \TeX{} engines (see
+ below for \xetex{} and \luatex{}). The packages |fontenc| and
+ |inputenc| do not belong to \babel, but they are included in the
+ example because typically you will need them:
\begin{verbatim}
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
-\usepackage[french]{babel}
+_\usepackage[french]{babel}_
\begin{document}
@@ -299,9 +259,8 @@ encoding. Make sure you set the encoding actually used by your editor.
Another approach is making the language (\Lopt{french} in the example)
a global option in order to let other packages detect and use it:
-
\begin{verbatim}
-\documentclass[french]{article}
+_\documentclass[french]{article}_
\usepackage{babel}
\usepackage{varioref}
\end{verbatim}
@@ -341,7 +300,7 @@ main language changes the document layout (eg, |spanish| and |french|).
You can also set the main language explicitly:
\begin{verbatim}
\documentclass{article}
-\usepackage[main=english,dutch]{babel}
+\usepackage[_main=english_,dutch]{babel}
\end{verbatim}
\begin{warning}
@@ -349,8 +308,8 @@ You can also set the main language explicitly:
time, but in such a case you should set explicitly the main language
with the package option |main|:
\begin{verbatim}
-\documentclass[italian]{book}
-\usepackage[ngerman,main=italian]{babel}
+\documentclass[_italian_]{book}
+\usepackage[ngerman,_main=italian_]{babel}
\end{verbatim}
\end{warning}
@@ -375,16 +334,16 @@ which is activated when the document begins.
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
-\usepackage[english,french]{babel}
+_\usepackage[english,french]{babel}_
\begin{document}
Plus ça change, plus c'est la même chose!
-\selectlanguage{english}
+_\selectlanguage{english}_
And an English paragraph, with a short text in
-\foreignlanguage{french}{français}.
+_\foreignlanguage{french}{français}_.
\end{document}
\end{verbatim}
@@ -401,7 +360,7 @@ be added or removed):\footnote{No predefined ``axis'' for modifiers
are provided because languages and their scripts have quite different
needs.}
\begin{verbatim}
-\usepackage[latin.medieval, spanish.notilde.lcroman, danish]{babel}
+\usepackage[latin_.medieval_, spanish_.notilde.lcroman_, danish]{babel}
\end{verbatim}
Attributes (described below) are considered modifiers, ie, you can
@@ -427,7 +386,7 @@ and the font is switched to |lmroman|. Other scripts require loading
\begin{verbatim}
\documentclass{article}
-\usepackage[vietnamese,danish]{babel}
+_\usepackage[vietnamese,danish]{babel}_
\begin{document}
@@ -446,20 +405,21 @@ Here is a simple monolingual document in Russian (text from the
Wikipedia). Note neither \textsf{fontenc} nor \textsf{inputenc} are
necessary, but the document should be encoded in UTF-8 and a
so-called Unicode font must be loaded with \textsf{fontspec}.
-\begin{verbatim}[escapechar=\&]
+
+\begin{verbatim}
\documentclass{article}
-\usepackage[russian]{babel}
+_\usepackage[russian]{babel}_
\usepackage{fontspec}
-\setmainfont[Language=Russian,Script=Cyrillic]{DejaVu Serif}
+\setmainfont[_Language=Russian,Script=Cyrillic_]{DejaVu Serif}
\begin{document}
-&Россия, находящаяся на пересечении множества культур, а также&
-&с учётом многонационального характера её населения, — отличается&
-&высокой степенью этнокультурного многообразия и способностью к&
-&межкультурному диалогу.&
+Россия, находящаяся на пересечении множества культур, а также
+с учётом многонационального характера её населения, — отличается
+высокой степенью этнокультурного многообразия и способностью к
+межкультурному диалогу.
\end{document}
\end{verbatim}
@@ -514,14 +474,17 @@ Package babel Warning: No hyphenation patterns were preloaded for
In Plain, load languages styles with |\input| and then use
|\begindocument| (the latter is defined by \babel):
-\begin{verbatim}[morekeywords={[0]{\input,\begindocument}}]
+\begin{verbatim}
\input estonian.sty
\begindocument
\end{verbatim}
-Note not all languages provide a |sty| file and some of them are
-not compatible with Plain.\footnote{Even in the \babel{} kernel there
-were some macros not compatible with plain. Hopefully these issues will
-be fixed soon.}
+
+\begin{warning}
+ Not all languages provide a |sty| file and some of them are not
+ compatible with Plain.\footnote{Even in the \babel{} kernel there
+ were some macros not compatible with plain. Hopefully these issues
+ will be fixed soon.}
+\end{warning}
\subsection{Basic language selectors}
@@ -755,8 +718,8 @@ No macros to select the writing direction are provided, either --
writing direction is intrinsic to each script and therefore it is best
set by the language (which could be a dummy one). Furthermore, there
are in fact two right-to-left modes, depending on the language, which
-differ in the way `weak' numeric characters are ordered (Arabic \%123
-\textit{vs} Hebrew 123\%).
+differ in the way `weak' numeric characters are ordered (eg, Arabic
+\%123 \textit{vs} Hebrew 123\%).
\Describe{\ensureascii}{\marg{text}}
@@ -875,7 +838,7 @@ Currently, if the package option |shorthands| is used, you must include any
character to be activated with |\useshorthands|. This restriction will
be lifted in a future release.
-\Describe\defineshorthand{\texttt{[}\langlist\texttt{]}%^^A
+\Describe\defineshorthand{\texttt{[}\langlist\texttt{]}%
\marg{shorthand}\marg{code}}
The command |\defineshorthand| takes two arguments: the first is
@@ -905,7 +868,7 @@ system shorthands. Language-dependent user shorthands (new in
languages like Polish and Portugese, a hard hyphen inside compound
words are repeated at the beginning of the next line. You could then
set:
-\begin{verbatim}[morekeywords={[1]{polish,portugese}}]
+\begin{verbatim}
\defineshorthand[*polish,*portugese]{"-}{\babelhyphen{repeat}}
\end{verbatim}
Here, options with |*| set a language-dependent user shorthand,
@@ -929,7 +892,7 @@ character must \textit{not} have been declared before as
shorthand (in such case, |\aliashorthands| is ignored).
The following example shows how to replace a shorthand by another
-\begin{verbatim}[morekeywords={[0]{\aliasshorthand}}]
+\begin{verbatim}
\aliasshorthand{~}{^}
\AtBeginDocument{\shorthandoff*{~}}
\end{verbatim}
@@ -1135,6 +1098,14 @@ can take the following values:
really useful, but who knows.}
\end{description}
+\Describe{bidi=}{\texttt{basic-r}}
+
+\New{3.14} Selects the bidi algorithm to be used in \luatex{}. By
+default, every change must by marked up. With |basic-r| a simple and
+fast method for R text is used, which handles numbers and unmarked L
+text within an R context. This is the only option provided
+currently. See below, sec. “Tentative and experimental code”.
+
\subsection{The \texttt{base} option}
With this package option \babel{} just loads some basic macros (those
@@ -1422,7 +1393,7 @@ hyphen is forbidden if preceded by a glue ${>}0$~pt (at the beginning
of a word, provided it is not immediately preceded by, say, a
parenthesis).
-\Describe\babelhyphenation{\texttt{[}\langlist\texttt{]}%^^A
+\Describe\babelhyphenation{\texttt{[}\langlist\texttt{]}%
\marg{exceptions}}
\New{3.9a} Sets hyphenation exceptions for the languages given
@@ -1443,7 +1414,7 @@ Listed words are saved expanded and therefore it relies on the
LICR. Of course, it also works without the LICR if the input and the
font encodings are the same, like in Unicode based engines.
-\Describe\babelpatterns{\texttt{[}\langlist\texttt{]}%^^A
+\Describe\babelpatterns{\texttt{[}\langlist\texttt{]}%
\marg{patterns}}
\New{3.9m} \textit{In \textsf{luatex} only},\footnote{With
@@ -1658,14 +1629,15 @@ chapters), in Hungarian ``from (1)'' is ``(1)-b\H{o}l'', but ``from
``3.$^{\textrm{\scriptsize er}}$ \'{\i}tem'', and so on.
Even more interesting is right-to-left, vertical and bidi
-typesetting. Babel provided a basic support for bidi text as part of
-the style for Hebrew, but it is somewhat unsatisfactory and internally
-replaces some hardwired commands by other hardwired commands
-(generic changes would be much better).
+typesetting. In 8-bit engines, Babel provided a basic support for bidi
+text as part of the style for Hebrew, but it is somewhat
+unsatisfactory and internally replaces some hardwired commands by
+other hardwired commands (generic changes would be much
+better). Current work is focused on \luatex.
\subsection{Tentative and experimental code}
-Handling of ``Unicode'' fonts is problematic. There is
+Handling of \textbf{``Unicode'' fonts} is problematic. There is
\textsf{fontspec}, but special macros are required (not only the NFSS
ones) and it doesn't provide ``orthogonal axis'' for features,
including those related to the language (mainly language and
@@ -1695,7 +1667,7 @@ Note you can set any feature required for the language -- not only
|Language|, but also |Script| and even raw features. This makes those
macros a bit more verbose, but also more powerful.
-Bidi writing is taking its \textit{first steps}. Here is a simple example:
+\textbf{Bidi writing} is taking its \textit{first steps}. Here is a simple example:
\begin{verbatim}
\documentclass{article}
@@ -1710,15 +1682,65 @@ Bidi writing is taking its \textit{first steps}. Here is a simple example:
English \foreignlanguage{arabic}{Arabic} English
\end{document}
\end{verbatim}
-\textit{First steps} means exactly that. For example, in \luatex{}
-digits and short Latin texts must me marked up explicitly in RL
-mode. On the other hand, \xetex{} poses quite different
-challenges. The bidi mechanism is activated when an RL script is
-passed as the new optional argument of |\babelFSstore|.
+\textit{First steps} means exactly that. For example, in \luatex{} any
+Arabic text must be marked up explicitly in L mode. On the other hand,
+\xetex{} poses quite different challenges. Document layout (lists,
+footnotes, etc.) is not touched at all. The bidi mechanism is
+activated when an R script is passed as the new optional argument of
+|\babelFSstore|.
See the code section for |\foreignlanguage*| (a new starred version of
|\foreignlanguage|).
+\New{3.14} \textbf{With luatex only} there is the possibility to
+switch the direction without explicit markup (currently only L text
+inside R text). The following example shows how to do it:
+\begingroup
+% If you are looking at the code to see how it has been written, you
+% will be disappointed :-). The following example is built ad hoc to
+% emulate the final result to avoid dependencies, and therefore it's
+% not "real" code.
+\setmonofont[Scale=.87,Script=Arabic]{DejaVu Sans Mono}
+\catcode`@=13
+\def@#1{\ifcase#1\relax
+ \egroup
+ \or
+ \bgroup\textdir TLT
+ \else
+ \bgroup\textdir TRT \pardir TRT
+ \fi}
+\begin{verbatim}
+\documentclass{article}
+
+\usepackage[nil, _bidi=basic-r_]{babel}
+
+_\babelprovide[import=ar, hyphenrules=+, main]{arabic}_
+
+\setmainfont[Script=Arabic, Language=Arabic]{FreeSerif}
+\babelFSstore[Arabic]{arabic}
+
+\begin{document}
+
+@9وقد عرفت شبه جزيرة العرب طيلة العصر الهيليني )الاغريقي(
+بـ @1Arabia@0 أو @1Aravia@0 )بالاغريقية @1Αραβία@0(، استخدم
+الرومان ثلاث بادئات بـ@1“Arabia”@0 على ثلاث مناطق من شبه الجزيرة
+العربية، إلا أنها حقيقةً كانت أكبر مما تعرف عليه اليوم.
+
+@0\end{document}
+\end{verbatim}
+\endgroup
+
+The text comes from the Arabic Wikipedia (article about
+Arabia). Copy-pasting some text from the Wikipedia is a good way to
+test this feature, which will be improved in the future.
+
+This is experimental in the sense the internal implementation has
+still to be cleaned up, but its behaviour and the user interface
+will not change (except, of course, bugs fixes).
+
+\xetex{} relies on the font to properly handle these unmarked changes,
+so it is not under the control of \TeX.
+
\section{Loading languages with \file{language.dat}}
\TeX{} and most engines based on it (pdf\TeX, \xetex, $\epsilon$-\TeX,
@@ -2351,7 +2373,7 @@ only.
For example, as |T1| is the default case mapping in \LaTeX, we could
set for Turkish: % :-( Seem to be a bug in listings. Fixed with &&.
-\begin{verbatim}[escapechar=\&]
+\begin{verbatim}
\StartBabelCommands{turkish}{}[ot1enc, fontenc=OT1]
\SetCase
{\uccode"10=`I\relax}
@@ -2466,26 +2488,9 @@ have occurred:
\item Two new commands, |\shorthandon| and |\shorthandoff| have
been introduced to enable to temporarily switch off one or more
shorthands.
-\item Support for typesetting Greek has been enhanced. Code from
- the \pkg{kdgreek} package (suggested by the author) was added
- and |\greeknumeral| has been added.
-\item Support for typesetting Basque is now available thanks to
- Juan Aguirregabiria.
-\item Support for typesetting Serbian with Latin script is now
- available thanks to Dejan Muhamedagi\'{c} and Jankovic
- Slobodan.
\item Support for typesetting Hebrew (and potential support for
typesetting other right-to-left written languages) is now
available thanks to Rama Porrat and Boris Lavva.
-\item Support for typesetting Bulgarian is now available thanks to
- Georgi Boshnakov.
-\item Support for typesetting Latin is now available, thanks to
- Claudio Beccari and Krzysztof Konrad \.Zelechowski.
-\item Support for typesetting North Sami is now available, thanks
- to Regnor Jernsletten.
-\item The options \Lopt{canadian}, \Lopt{canadien} and
- \Lopt{acadien} have been added for Canadian English and French
- use.
\item A language attribute has been added to the |\mark...|
commands in order to make sure that a Greek header line comes
out right on the last page before a language switch.
@@ -2498,8 +2503,7 @@ have occurred:
to give the user some control over the features a
language-definition file provides. Its first use is for the Greek
language, where the user can choose the πολυτονικό (``polytonikó'' or
- multi-accented) Greek way of typesetting texts. These attributes
- will possibly find wider use in future releases.
+ multi-accented) Greek way of typesetting texts.
\item The environment \Lenv{hyphenrules} is introduced.
\item The syntax of the file \file{language.dat} has been
extended to allow (optionally) specifying the font
@@ -2509,111 +2513,22 @@ have occurred:
settings provided by the pattern file.
\end{itemize}
-\subsection{Changes in \babel\ version 3.6}
-
-In \babel\ version 3.6 a number of bugs that were found in
-version~3.5 are fixed. Also a number of changes and additions
-have occurred:
-\begin{itemize}
-\item A new environment \Lenv{otherlanguage*} is introduced. it
- only switches the `specials', but leaves the `captions'
- untouched.
-\item The shorthands are no longer fully expandable. Some
- problems could only be solved by peeking at the token following
- an active character. The advantage is that |'{}a| works as
- expected for languages that have the |'| active.
-\item Support for typesetting french texts is much enhanced; the
- file \file{francais.ldf} is now replaced by \file{french.ldf}
- which is maintained by Daniel Flipo.
-\item Support for typesetting the russian language is again
- available. The language definition file was originally
- developed by Olga Lapko from CyrTUG. The fonts needed to
- typeset the russian language are now part of the \babel\
- distribution. The support is not yet up to the level which is
- needed according to Olga, but this is a start.
-\item Support for typesetting greek texts is now also
- available. What is offered in this release is a first attempt;
- it will be enhanced later on by Yannis Haralambous.
-\item in \babel\ 3.6j some hooks have been added for the
- development of support for Hebrew typesetting.
-\item Support for typesetting texts in Afrikaans (a variant of
- Dutch, spoken in South Africa) has been added to
- \file{dutch.ldf}.
-\item Support for typesetting Welsh texts is now available.
-\item A new command |\aliasshorthand| is introduced. It seems
- that in Poland various conventions are used to type the
- necessary Polish letters. It is now possible to use the
- character~|/| as a shorthand character instead of the
- character~|"|, by issuing the command |\aliasshorthand{"}{/}|.
-\item The shorthand mechanism now deals correctly with characters
- that are already active.
-\item Shorthand characters are made active at |\begin{document}|,
- not earlier. This is to prevent problems with other packages.
-\item A \emph{preambleonly} command |\substitutefontfamily| has
- been added to create \file{.fd} files on the fly when the font
- families of the Latin text differ from the families used for
- the Cyrillic or Greek parts of the text.
-\item Three new commands |\LdfInit|, |\ldf@quit| and
- |\ldf@finish| are introduced that perform a number of standard
- tasks.
-\item In babel 3.6k the language Ukrainian has been added and the
- support for Russian typesetting has been adapted to the package
- 'cyrillic' to be released with the December 1998 release of
- \LaTeXe.
-\end{itemize}
-
-\subsection{Changes in \babel\ version 3.5}
-
-In \babel\ version 3.5 a lot of changes have been made when compared
-with the previous release. Here is a list of the most important ones:
-\begin{itemize}
-\item the selection of the language is delayed until
- |\begin{document}|, which means you must add appropriate
- |\selectlanguage| commands if you include |\hyphenation| lists in
- the preamble of your document.
-\item \babel\ now has a \Lenv{language} environment and a new
- command |\foreignlanguage|;
-\item the way active characters are dealt with is completely
- changed. They are called `shorthands'; one can have three
- levels of shorthands: on the user level, the language level,
- and on `system level'. A consequence of the new way of handling
- active characters is that they are now written to auxiliary
- files `verbatim';
-\item A language change now also writes information in the
- \file{.aux} file, as the change might also affect typesetting
- the table of contents. The consequence is that an \file{.aux} file
- generated by a \LaTeX format with babel preloaded gives errors
- when read with a \LaTeX format without babel; but I think this
- probably doesn't occur;
-\item \babel\ is now compatible with the \pkg{inputenc} and
- \pkg{fontenc} packages;
-\item the language definition files now have a new extension,
- \file{ldf};
-\item the syntax of the file \file{language.dat} is extended to
- be compatible with the \pkg{french} package by Bernard Gaulle [this
- package is now named \textsf{frenchle}];
-\item each language definition file looks for a configuration
- file which has the same name, but the extension \file{.cfg}. It
-can contain any valid \LaTeX\ code.
-\end{itemize}
-
\DocInput{babel.dtx}
\section{Acknowledgements}
I would like to thank all who volunteered as $\beta$-testers for their
-time. I would like to mention Julio Sanchez who supplied the option
-file for the Spanish language and Maurizio Codogno who supplied the
-option file for the Italian language. Michel Goossens supplied
-contributions for most of the other languages. Nico Poppelier helped
-polish the text of the documentation and supplied parts of the macros
-for the Dutch language. Paul Wackers and Werenfried Spit helped find
-and repair bugs.
+time. Michel Goossens supplied contributions for most of the other
+languages. Nico Poppelier helped polish the text of the documentation
+and supplied parts of the macros for the Dutch language. Paul Wackers
+and Werenfried Spit helped find and repair bugs.
During the further development of the babel system I received much
help from Bernd Raichle, for which I am grateful.
\begin{thebibliography}{9}
+ \bibitem{AT} Huda Smitshuijzen Abifares, \textit{Arabic Typography},
+ Saqi, 2001.
\bibitem{DEK} Donald E. Knuth,
\emph{The \TeX book}, Addison-Wesley, 1986.
\bibitem{LLbook} Leslie Lamport,
@@ -2622,8 +2537,7 @@ help from Bernd Raichle, for which I am grateful.
\bibitem{treebus} K.F. Treebus.
\emph{Tekstwijzer, een gids voor het grafisch verwerken van
tekst.}
- SDU Uitgeverij ('s-Gravenhage, 1988). A Dutch book on layout
- design and typography.
+ SDU Uitgeverij ('s-Gravenhage, 1988).
\bibitem{HP} Hubert Partl,
\emph{German \TeX}, \emph{TUGboat} 9 (1988) \#1, p.~70--72.
\bibitem{LLth} Leslie Lamport,
@@ -2631,6 +2545,8 @@ help from Bernd Raichle, for which I am grateful.
\bibitem{BEP} Johannes Braams, Victor Eijkhout and Nico Poppelier,
\emph{The development of national \LaTeX\ styles},
\emph{TUGboat} 10 (1989) \#3, p.~401--406.
+ \bibitem{FE} Yannis Haralambous,
+ \emph{Fonts \& Encodings}, O'Reilly, 2007.
\bibitem{ilatex} Joachim Schrod,
\emph{International \LaTeX\ is ready to use},
\emph{TUGboat} 11 (1990) \#1, p.~87--90.
@@ -2638,29 +2554,11 @@ help from Bernd Raichle, for which I am grateful.
Sofroniu,
\emph{Digital typography using \LaTeX},
Springer, 2002, p.~301--373.
- \bibitem{FE} Yannis Haralambous,
- \emph{Fonts \& Encodings}, O'Reilly, 2007.
\end{thebibliography}
\end{document}
%</filedriver>
%
-% \changes{babel~3.9a}{2012/05/16}{Now using \cs{ldf@quit} for the test}
-%
-% \begin{macrocode}
-%<*core>
-\ifx\ldf@quit\@undefined
-\else
- \expandafter\endinput
-\fi
-%</core>
-% \end{macrocode}
-%
-%<*dtx>
-\ProvidesFile{babel.dtx}
-%</dtx>
-%\fi
-%
-% \GetFileInfo{babel.dtx}
+% \fi
%
% \changes{babel~3.8e}{2005/03/24}{Many enhancements to the text by
% Andrew Young}
@@ -2679,6 +2577,7 @@ help from Bernd Raichle, for which I am grateful.
% \expandafter\bblref
% \else\string<##1\fi}%
% \gdef\bblref##1@>{##1\/\egroup$\rangle\rangle$}}%
+% \global\let\check@percent\saved@check@percent
%\endgroup
%
% \part{The code}
@@ -2694,7 +2593,7 @@ help from Bernd Raichle, for which I am grateful.
%
% \textit{Code documentation is still under revision.}
%
-% The \babel{} package after unpacking it consists of the following files:
+% The \babel{} package after unpacking consists of the following files:
% \begin{description}
% \itemsep=-\parskip
% \item[switch.def] defines macros to set and switch languages.
@@ -2717,8 +2616,8 @@ help from Bernd Raichle, for which I am grateful.
% little bit of literate programming.
%
% \begin{macrocode}
-%<<version=3.13>>
-%<<date=2017/09/18>>
+%<<version=3.14>>
+%<<date=2017/10/04>>
% \end{macrocode}
%
% \section{Tools}
@@ -2802,13 +2701,14 @@ help from Bernd Raichle, for which I am grateful.
% \end{macro}
% \end{macro}
%
-% The following piece of code is stolen (with some changes) from
-% \textsf{keyval}, by David Carlisle. It defines two macros:
-% |\bbl@trim| and |\bbl@trim@def|. The first one strips the leading
-% and trailing spaces from the second argument and then applies the
-% first argument (a macro, |\toks@| and the like). The second one, as
-% its name suggests, defines the first argument as the stripped second
-% argument.
+% \begin{macro}{\bbl@trim}
+% The following piece of code is stolen (with some changes) from
+% \textsf{keyval}, by David Carlisle. It defines two macros:
+% |\bbl@trim| and |\bbl@trim@def|. The first one strips the leading
+% and trailing spaces from the second argument and then applies the
+% first argument (a macro, |\toks@| and the like). The second one,
+% as its name suggests, defines the first argument as the stripped
+% second argument.
%
% \begin{macrocode}
\def\bbl@tempa#1{%
@@ -2825,10 +2725,14 @@ help from Bernd Raichle, for which I am grateful.
\long\def\bbl@trim@i#1\@nil#2\relax#3{#3{#1}}
\long\def\bbl@trim@def#1{\bbl@trim{\def#1}}
% \end{macrocode}
+% \end{macro}
+%
%
-% To check if a macro is defined, we create a new macro, which does
-% the same as |\@ifundefined|. However, in an $\epsilon$-tex
-% engine, it is redefined more robust
+% \begin{macro}{\bbl@ifunset}
+% To check if a macro is defined, we create a new macro, which does
+% the same as |\@ifundefined|. However, in an $\epsilon$-tex engine,
+% it is based on |\ifcsname|, which is more efficient, and do not
+% waste memory.
%
% \begin{macrocode}
\def\bbl@ifunset#1{%
@@ -2850,15 +2754,18 @@ help from Bernd Raichle, for which I am grateful.
\expandafter\@firstoftwo
\fi}}
% \end{macrocode}
-%
-% A tool from \textsf{url}, by Donald
-% Arseneau, which tests if a string is empty or space.
+% \end{macro}
+%
+% \begin{macro}{\bbl@ifblank}
+% A tool from \textsf{url}, by Donald Arseneau, which tests if a
+% string is empty or space.
%
% \begin{macrocode}
\def\bbl@ifblank#1{%
\bbl@ifblank@i#1\@nil\@nil\@secondoftwo\@firstoftwo\@nil}
\long\def\bbl@ifblank@i#1#2\@nil#3#4#5\@nil{#4}
% \end{macrocode}
+% \end{macro}
%
% For each element in the comma separated <key>|=|<value> list,
% execute <code> with |#1| and |#2| as the key and the value of
@@ -2896,6 +2803,7 @@ help from Bernd Raichle, for which I am grateful.
\def\bbl@foreach#1{\expandafter\bbl@vforeach\expandafter{#1}}
% \end{macrocode}
%
+% \begin{macro}{\bbl@replace}
%
% \begin{macrocode}
\def\bbl@replace#1#2#3{% in #1 -> repl #2 by #3
@@ -2911,13 +2819,16 @@ help from Bernd Raichle, for which I am grateful.
\expandafter\bbl@replace@aux#1#2\bbl@nil#2%
\edef#1{\the\toks@}}
% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bbl@exp}
%
-% Now, just syntactical sugar, but it makes partial expansion of some
-% code a lot more simple and readable. Here |\\| stands for
-% |\noexpand| and |\<..>| for |\noexpand| applied to a built macro
-% name (the latter does not define the macro if undefined to |\relax|,
-% because it is created locally). The result may be followed by extra
-% arguments, if necessary.
+% Now, just syntactical sugar, but it makes partial expansion of
+% some code a lot more simple and readable. Here |\\| stands for
+% |\noexpand| and |\<..>| for |\noexpand| applied to a built macro
+% name (the latter does not define the macro if undefined to
+% |\relax|, because it is created locally). The result may be
+% followed by extra arguments, if necessary.
%
% \begin{macrocode}
\def\bbl@exp#1{%
@@ -2927,6 +2838,8 @@ help from Bernd Raichle, for which I am grateful.
\edef\bbl@exp@aux{\endgroup#1}%
\bbl@exp@aux}
% \end{macrocode}
+% \end{macro}
+%
%
% Two more tools. |\bbl@samestring| first expand its arguments and
% then compare their expansion (sanitized, so that the catcodes do not
@@ -3061,17 +2974,6 @@ help from Bernd Raichle, for which I am grateful.
% \end{macro}
% \end{macro}
%
-% Identify each file that is produced from this source file.
-%
-% \begin{macrocode}
-%<*driver&!user>
-\ProvidesFile{babel.drv}[<@date@> <@version@>]
-%</driver&!user>
-%<*driver&user>
-\ProvidesFile{user.drv}[<@date@> <@version@>]
-%</driver&user>
-% \end{macrocode}
-%
% Now we make sure all required files are loaded. When the command
% |\AtBeginDocument| doesn't exist we assume that we are dealing
% with a plain-based format or \LaTeX2.09. In that case the file
@@ -3144,9 +3046,9 @@ help from Bernd Raichle, for which I am grateful.
\global\expandafter\bbl@add\csname#1.ldf-h@@k\endcsname}%
% \end{macrocode}
%
-% If the format created a list of loaded languages (in
-% |\bbl@languages|), get the name of the 0-th to show the actual
-% language used.
+% If the format created a list of loaded languages (in
+% |\bbl@languages|), get the name of the 0-th to show the actual
+% language used.
%
% \begin{macrocode}
\ifx\bbl@languages\@undefined\else
@@ -3167,6 +3069,21 @@ help from Bernd Raichle, for which I am grateful.
\fi}%
\bbl@languages
\fi
+\@ifpackagewith{babel}{bidi=basic-r}{% must go before any \DeclareOption
+ \RequirePackage{luatexbase}%
+ \directlua{
+ require('babel-bidi.lua')
+ require('babel-bidi-basic-r.lua')
+ luatexbase.add_to_callback('pre_linebreak_filter',
+ Babel.pre_otfload,
+ 'Babel.pre_otfload',
+ luatexbase.priority_in_callback('pre_linebreak_filter',
+ 'luaotfload.node_processor') or nil)
+ luatexbase.add_to_callback('hpack_filter',
+ Babel.pre_otfload,
+ 'Babel.pre_otfload',
+ luatexbase.priority_in_callback('hpack_filter',
+ 'luaotfload.node_processor') or nil)}}{}
% \end{macrocode}
%
% Now the \texttt{base} option. With it we can define (and load, with
@@ -3247,13 +3164,12 @@ help from Bernd Raichle, for which I am grateful.
<@More package options@>
% \end{macrocode}
%
-% Handling of package options is done in three passes. (I [JBL] am not
-% very happy with the idea, anyway.) The first one processes
-% options which has been declared above or follow the syntax
-% |<key>=<value>|, the second one
-% loads the requested languages, except the main one if set with
-% the key |main|, and the third one loads the latter. First, we
-% ``flag'' valid keys with a nil value.
+% Handling of package options is done in three passes. (I [JBL] am not
+% very happy with the idea, anyway.) The first one processes options
+% which has been declared above or follow the syntax |<key>=<value>|,
+% the second one loads the requested languages, except the main one if
+% set with the key |main|, and the third one loads the latter. First,
+% we ``flag'' valid keys with a nil value.
%
% \changes{babel~3.9a}{2012/08/10}{Added the `safe' key, including code
% below for selecting the redefined macros}
@@ -3265,8 +3181,8 @@ help from Bernd Raichle, for which I am grateful.
\let\bbl@opt@headfoot\@nnil
% \end{macrocode}
%
-% The following tool is defined temporarily to store the values of
-% options.
+% The following tool is defined temporarily to store the values of
+% options.
%
% \begin{macrocode}
\def\bbl@tempa#1=#2\bbl@tempa{%
@@ -3368,7 +3284,7 @@ help from Bernd Raichle, for which I am grateful.
% \changes{babel~3.9a}{2012/07/30}{Code setting language in
% head/foots. Related to babel/3796}
%
-% With |headfoot=lang| we can set the language used in heads/foots.
+% With |headfoot=lang| we can set the language used in heads/foots.
% For example, in babel/3796 just adds |headfoot=english|. It
% misuses \cs{@resetactivechars} but seems to work.
%
@@ -3381,9 +3297,9 @@ help from Bernd Raichle, for which I am grateful.
\fi
% \end{macrocode}
%
-% For the option safe we use a different approach --
-% |\bbl@opt@safe| says which macros are redefined (B for bibs and R
-% for refs). By default, both are set.
+% For the option safe we use a different approach -- |\bbl@opt@safe|
+% says which macros are redefined (B for bibs and R for refs). By
+% default, both are set.
%
% \begin{macrocode}
\ifx\bbl@opt@safe\@undefined
@@ -3396,7 +3312,7 @@ help from Bernd Raichle, for which I am grateful.
\fi
% \end{macrocode}
%
-% \subsection{Language options}
+% \subsection{Language options}
%
% \changes{babel~3.9a}{2012/06/15}{Rewritten the loading mechanism, so
% that languages not declared are also correctly recognized, even
@@ -3610,33 +3526,32 @@ help from Bernd Raichle, for which I am grateful.
%</package>
% \end{macrocode}
%
-% \section{The kernel of Babel (\texttt{babel.def}, common)}
-%
-% The kernel of the \babel\ system is stored in either
-% \file{hyphen.cfg} or \file{switch.def} and \file{babel.def}. The
-% file \file{babel.def} contains most of the code, while
-% \file{switch.def} defines the language switching commands; both
-% can be read at run time. The file \file{hyphen.cfg} is a file
-% that can be loaded into the format, which is necessary when you
-% want to be able to switch hyphenation patterns (by default, it
-% also inputs \file{switch.def}, for ``historical reasons'', but it
-% is not necessary). When \file{babel.def} is loaded it checks if
-% the current version of \file{switch.def} is in the format; if not
-% it is loaded. A further file, \file{babel.sty}, contains
-% \LaTeX-specific stuff.
-%
-% Because plain \TeX\ users might want to use some of the features
-% of the \babel{} system too, care has to be taken that plain \TeX\
-% can process the files. For this reason the current format will
-% have to be checked in a number of places. Some of the code below
-% is common to plain \TeX\ and \LaTeX, some of it is for the
-% \LaTeX\ case only.
-%
-% Plain formats based on etex (etex, xetex, luatex) don't load
-% |hyphen.cfg| but |etex.src|, which follows a different naming
-% convention, so we need to define the babel names. It presumes
-% |language.def| exists and it is the same file used when
-% formats were created.
+% \section{The kernel of Babel (\texttt{babel.def}, common)}
+%
+% The kernel of the \babel\ system is stored in either
+% \file{hyphen.cfg} or \file{switch.def} and \file{babel.def}. The
+% file \file{babel.def} contains most of the code, while
+% \file{switch.def} defines the language switching commands; both can
+% be read at run time. The file \file{hyphen.cfg} is a file that can
+% be loaded into the format, which is necessary when you want to be
+% able to switch hyphenation patterns (by default, it also inputs
+% \file{switch.def}, for ``historical reasons'', but it is not
+% necessary). When \file{babel.def} is loaded it checks if the current
+% version of \file{switch.def} is in the format; if not it is
+% loaded. A further file, \file{babel.sty}, contains \LaTeX-specific
+% stuff.
+%
+% Because plain \TeX\ users might want to use some of the features of
+% the \babel{} system too, care has to be taken that plain \TeX\ can
+% process the files. For this reason the current format will have to
+% be checked in a number of places. Some of the code below is common
+% to plain \TeX\ and \LaTeX, some of it is for the \LaTeX\ case only.
+%
+% Plain formats based on etex (etex, xetex, luatex) don't load
+% |hyphen.cfg| but |etex.src|, which follows a different naming
+% convention, so we need to define the babel names. It presumes
+% |language.def| exists and it is the same file used when formats were
+% created.
%
% \changes{babel~3.9a}{2013/01/11}{Added \cs{bbl@for} for loops
% ignoring empties}
@@ -3657,6 +3572,10 @@ help from Bernd Raichle, for which I am grateful.
%
% \begin{macrocode}
%<*core>
+\ifx\ldf@quit\@undefined
+\else
+ \expandafter\endinput
+\fi
<@Make sure ProvidesFile is defined@>
\ProvidesFile{babel.def}[<@date@> <@version@> Babel common definitions]
<@Load macros for plain if not LaTeX@>
@@ -3677,13 +3596,13 @@ help from Bernd Raichle, for which I am grateful.
\else
\closein1
\begingroup
- \def\addlanguage#1#2#3#4#5{%
- \expandafter\ifx\csname lang@#1\endcsname\relax\else
- \global\expandafter\let\csname l@#1\expandafter\endcsname
- \csname lang@#1\endcsname
- \fi}%
- \def\uselanguage#1{}%
- \input language.def
+ \def\addlanguage#1#2#3#4#5{%
+ \expandafter\ifx\csname lang@#1\endcsname\relax\else
+ \global\expandafter\let\csname l@#1\expandafter\endcsname
+ \csname lang@#1\endcsname
+ \fi}%
+ \def\uselanguage#1{}%
+ \input language.def
\endgroup
\fi
\fi
@@ -5512,9 +5431,9 @@ help from Bernd Raichle, for which I am grateful.
% |\|\m{lang}|@bbl@uclc| because we do not know how many expansions
% are necessary (depends on whether strings are encoded). The last
% part is tricky -- when uppercasing, we have:
-% \begin{verbatim}
+%\begin{verbatim}
% \let\bbl@tolower\@empty\bbl@toupper\@empty
-% \end{verbatim}
+%\end{verbatim}
% and starts over (and similarly when lowercasing).
%
% \changes{babel~3.9l}{2014/07/29}{Now tries to catch the parsing
@@ -6459,8 +6378,9 @@ help from Bernd Raichle, for which I am grateful.
{\bbl@ifblank{#1}%
{\bbl@error
{If you want to modify `#2' you must tell how in\\%
- the optional argument. Currently there are two\\%
- options: captions=lang-tag, hyphenrules=lang-list}%
+ the optional argument. Currently there are three\\%
+ options: captions=lang-tag, hyphenrules=lang-list\\%
+ import=lang-tag}%
{Use this macro as documented}}%
{\bbl@provide@renew{#2}}}%
\bbl@exp{\\\babelensure[exclude=\\\today]{#2}}%
@@ -6471,7 +6391,6 @@ help from Bernd Raichle, for which I am grateful.
%
% \begin{macrocode}
\def\bbl@provide@new#1{%
- \bbl@provide@hyphens{#1}%
\@namedef{date#1}{}% marks lang exists - required by \StartBabelCommands
\@namedef{extras#1}{}%
\@namedef{noextras#1}{}%
@@ -6503,11 +6422,11 @@ help from Bernd Raichle, for which I am grateful.
\def\<#1hyphenmins>{%
{\bbl@ifunset{bbl@lfthm@#1}{2}{\@nameuse{bbl@lfthm@#1}}}%
{\bbl@ifunset{bbl@rgthm@#1}{3}{\@nameuse{bbl@rgthm@#1}}}}}%
+ \bbl@provide@hyphens{#1}%
\ifx\bbl@KVP@main\@nil\else
\expandafter\main@language\expandafter{#1}%
\fi}
\def\bbl@provide@renew#1{%
- \bbl@provide@hyphens{#1}%
\ifx\bbl@KVP@captions\@nil\else
\StartBabelCommands*{#1}{captions}%
\bbl@read@ini{\bbl@KVP@captions}% Here all letters cat = 11
@@ -6520,11 +6439,15 @@ help from Bernd Raichle, for which I am grateful.
\bbl@savetoday
\bbl@savedate
\EndBabelCommands
- \fi}
+ \fi
+ \bbl@provide@hyphens{#1}}
% \end{macrocode}
%
% The |hyphenrules| option is handled with an auxiliary macro.
%
+% \changes{3.14}{2017/10/03}{Take into account ini settings for
+% hyphenrules if `import'.}
+%
% \begin{macrocode}
\def\bbl@provide@hyphens#1{%
\let\bbl@tempa\relax
@@ -6540,7 +6463,13 @@ help from Bernd Raichle, for which I am grateful.
{\bbl@exp{\let\bbl@tempa\<l@##1>}}%
\fi}%
\fi
- \ifx\bbl@tempa\relax % if no option or no language found
+ \ifx\bbl@tempa\relax % if no opt or no language in opt found
+ \ifx\bbl@KVP@import\@nil\else % if importing
+ \bbl@exp{% and hyphenrules is not empty
+ \\\bbl@ifblank{\@nameuse{bbl@hyphr@#1}}%
+ {}%
+ {\\\adddialect\<l@#1>\<l@\@nameuse{bbl@hyphr@\languagename}>}}%
+ \fi
\bbl@ifunset{l@#1}% no hyphenrules found - fallback
{\bbl@exp{\\\adddialect\<l@#1>\language}}%
{}%
@@ -6640,6 +6569,7 @@ help from Bernd Raichle, for which I am grateful.
\def\bbl@after@ini{%
\bbl@exportkey{lfthm}{typography.lefthyphenmin}{2}%
\bbl@exportkey{rgthm}{typography.righthyphenmin}{3}%
+ \bbl@exportkey{hyphr}{typography.hyphenrules}{}%
\def\bbl@tempa{0.9}%
\bbl@csarg\ifx{@kv@identification.version}\bbl@tempa
\bbl@warning{%
@@ -7563,28 +7493,34 @@ help from Bernd Raichle, for which I am grateful.
% \begin{itemize}
% \item pdftex provides a minimal support for bidi text, and it
% must be done by hand. Vertical typesetting is not possible.
-% \item XeTeX fares somewhat better, thanks to the font engine and
-% a few additional tools. However, very little is done at the
-% paragraph level.
-% \item LuaTeX could provide the most complete solution, as we can
+% \item \xetex{} is somewhat better, thanks to its font engine
+% (even if not always reliable) and a few additional tools. However,
+% very little is done at the paragraph level. Another challenging
+% problem is text direction does not honour \TeX{} grouping.
+% \item \luatex{} can provide the most complete solution, as we can
% manipulate almost freely the node list, the generated lines,
% and so on, but bidi text does not work out of the box and some
% development is necessary. It also provides tools to properly
-% set left-to-right and right-to-left page layouts. As LuaTeX-ja
-% shows, vertical typesetting is posible.
+% set left-to-right and right-to-left page layouts. As Lua\TeX-ja
+% shows, vertical typesetting is posible, too. Its main drawback
+% is font handling is often considered to be less mature than
+% \xetex.\footnote{Although in my [JBL] experience problems are
+% in fact minimal.}
% \end{itemize}
%
% \begin{macrocode}
-\def\bbl@trtscripts{%
- ,Arabic,Imperial Aramaic,Avestan,Cypriot,Hatran,Hebrew,%
+\def\bbl@alscripts{,Arabic,Syriac,Thaana,}
+\def\bbl@rscripts{%
+ ,Imperial Aramaic,Avestan,Cypriot,Hatran,Hebrew,%
Old Hungarian,Old Hungarian,Lydian,Mandaean,Manichaean,%
Manichaean,Meroitic Cursive,Meroitic,Old North Arabian,%
Nabataean,N'Ko,Orkhon,Palmyrene,Inscriptional Pahlavi,%
Psalter Pahlavi,Phoenician,Inscriptional Parthian,Samaritan,%
- Old South Arabian,Syriac,Thaana,}%
+ Old South Arabian,}%
\def\bbl@ensuredir{%
\@expandtwoargs
- \in@{\csname bbl@script@\languagename\endcsname}{\bbl@trtscripts}%
+ \in@{\csname bbl@script@\languagename\endcsname}%
+ {\bbl@alscripts\bbl@rscripts}%
\ifin@
\bbl@setdirs\@ne
\else
@@ -8598,14 +8534,14 @@ help from Bernd Raichle, for which I am grateful.
% We want to add a message to the message \LaTeX$\:$2.09 puts in
% the |\everyjob| register. This could be done by the following
% code:
-% \begin{verbatim}
+%\begin{verbatim}
% \let\orgeveryjob\everyjob
% \def\everyjob#1{%
% \orgeveryjob{#1}%
% \orgeveryjob\expandafter{\the\orgeveryjob\immediate\write16{%
% hyphenation patterns for \the\loaded@patterns loaded.}}%
% \let\everyjob\orgeveryjob\let\orgeveryjob\@undefined}
-% \end{verbatim}
+%\end{verbatim}
% The code above redefines the control sequence \cs{everyjob}
% in order to be able to add something to the current contents of
% the register. This is necessary because the processing of
@@ -9028,18 +8964,38 @@ help from Bernd Raichle, for which I am grateful.
% options are not ``orthogonal'').
% \end{itemize}
%
+% Add the bidi handler just before luaoftload, which is loaded by default
+% by LaTeX. Just in case, consider the possibility it has not been loaded.
+%
% \begin{macrocode}
+%<<*More package options>>
+\DeclareOption{bidi=basic-r}{}
+%<</More package options>>
%<<*Font selection>>
\newcommand\babelFSstore[2][]{%
\bbl@ifblank{#1}%
{\bbl@csarg\def{script@#2}{Latin}}%
{\bbl@csarg\def{script@#2}{#1}}%
\@expandtwoargs % TODO should go to the ini loaders
- \in@{\csname bbl@script@#2\endcsname}{\bbl@trtscripts}%
+ \in@{\csname bbl@script@#2\endcsname}{\bbl@alscripts\bbl@rscripts}%
\ifin@
\let\bbl@beforeforeign\leavevmode
\EnableBabelHook{babel-bidi}%
- \@nameuse{bbl@xebidipar}%
+ \ifcase\bbl@engine\or
+ \@expandtwoargs % TODO should go to the ini loaders
+ \in@{\csname bbl@script@#2\endcsname}{\bbl@alscripts}%
+ \directlua{
+ Babel.langdirs = Babel.langdirs or {}
+ Babel.langdirs[\the\@nameuse{l@#2}] = \ifin@ 'al' \else 'r' \fi}%
+ \or
+ \bbl@xebidipar
+ \fi
+ \else
+ \ifcase\bbl@engine\or
+ \directlua{
+ Babel.langdirs = Babel.langdirs or {}
+ Babel.langdirs[\the\@nameuse{l@#2}] = 'l'}%
+ \fi
\fi
\bbl@foreach{#2}{%
\bbl@FSstore{##1}{rm}\rmdefault\bbl@save@rmdefault
@@ -9367,7 +9323,7 @@ help from Bernd Raichle, for which I am grateful.
\catcode`\"=12
\catcode`\:=12
\directlua{
- Babel = {}
+ Babel = Babel or {}
function Babel.bytes(line)
return line:gsub("(.)",
function (chr) return unicode.utf8.char(string.byte(chr)) end)
@@ -9520,6 +9476,6380 @@ help from Bernd Raichle, for which I am grateful.
%</luatex>
% \end{macrocode}
%
+% \section{Bidi support in \luatex}
+%
+% \changes{3.14}{2017/09/30}{LuaTeX - support for R/AL texts - basic-r}
+%
+% \textbf{Work in progress}. The file \textsf{babel-bidi.lua}
+% currently only contains data. It's a large file and it's not shown
+% here. See the generated file.
+%\iffalse
+% \begin{macrocode}
+%<*bidi>
+-- Data from Unicode and ConTeXt
+
+Babel = Babel or {}
+
+Babel.ranges={
+ {0x0590, 0x05FF, 'r'},
+ {0x0600, 0x07BF, 'al'},
+ {0x07C0, 0x085F, 'r'},
+ {0x0860, 0x086F, 'al'},
+ {0x08A0, 0x08FF, 'al'},
+ {0xFB1D, 0xFB4F, 'r'},
+ {0xFB50, 0xFDFF, 'al'},
+ {0xFE70, 0xFEFF, 'al'},
+ {0x10800, 0x10C4F, 'r'},
+ {0x1E800, 0x1E8DF, 'r'},
+ {0x1E900, 0x1E95F, 'r'},
+ {0x1F300, 0x1F9FF, 'on'}
+}
+
+Babel.characters={
+ [0x0]={d='bn'},
+ [0x1]={d='bn'},
+ [0x2]={d='bn'},
+ [0x3]={d='bn'},
+ [0x4]={d='bn'},
+ [0x5]={d='bn'},
+ [0x6]={d='bn'},
+ [0x7]={d='bn'},
+ [0x8]={d='bn'},
+ [0x9]={d='s'},
+ [0xA]={d='b'},
+ [0xB]={d='s'},
+ [0xC]={d='ws'},
+ [0xD]={d='b'},
+ [0xE]={d='bn'},
+ [0xF]={d='bn'},
+ [0x10]={d='bn'},
+ [0x11]={d='bn'},
+ [0x12]={d='bn'},
+ [0x13]={d='bn'},
+ [0x14]={d='bn'},
+ [0x15]={d='bn'},
+ [0x16]={d='bn'},
+ [0x17]={d='bn'},
+ [0x18]={d='bn'},
+ [0x19]={d='bn'},
+ [0x1A]={d='bn'},
+ [0x1B]={d='bn'},
+ [0x1C]={d='b'},
+ [0x1D]={d='b'},
+ [0x1E]={d='b'},
+ [0x1F]={d='s'},
+ [0x20]={d='ws'},
+ [0x21]={d='on'},
+ [0x22]={d='on'},
+ [0x23]={d='et'},
+ [0x24]={d='et'},
+ [0x25]={d='et'},
+ [0x26]={d='on'},
+ [0x27]={d='on'},
+ [0x28]={d='on', m=0x29},
+ [0x29]={d='on', m=0x28},
+ [0x2A]={d='on'},
+ [0x2B]={d='es'},
+ [0x2C]={d='cs'},
+ [0x2D]={d='es'},
+ [0x2E]={d='cs'},
+ [0x2F]={d='cs'},
+ [0x30]={d='en'},
+ [0x31]={d='en'},
+ [0x32]={d='en'},
+ [0x33]={d='en'},
+ [0x34]={d='en'},
+ [0x35]={d='en'},
+ [0x36]={d='en'},
+ [0x37]={d='en'},
+ [0x38]={d='en'},
+ [0x39]={d='en'},
+ [0x3A]={d='cs'},
+ [0x3B]={d='on'},
+ [0x3C]={d='on', m=0x3E},
+ [0x3D]={d='on'},
+ [0x3E]={d='on', m=0x3C},
+ [0x3F]={d='on'},
+ [0x40]={d='on'},
+ [0x5B]={d='on', m=0x5D},
+ [0x5C]={d='on'},
+ [0x5D]={d='on', m=0x5B},
+ [0x5E]={d='on'},
+ [0x5F]={d='on'},
+ [0x60]={d='on'},
+ [0x7B]={d='on', m=0x7D},
+ [0x7C]={d='on'},
+ [0x7D]={d='on', m=0x7B},
+ [0x7E]={d='on'},
+ [0x7F]={d='bn'},
+ [0x80]={d='bn'},
+ [0x81]={d='bn'},
+ [0x82]={d='bn'},
+ [0x83]={d='bn'},
+ [0x84]={d='bn'},
+ [0x85]={d='b'},
+ [0x86]={d='bn'},
+ [0x87]={d='bn'},
+ [0x88]={d='bn'},
+ [0x89]={d='bn'},
+ [0x8A]={d='bn'},
+ [0x8B]={d='bn'},
+ [0x8C]={d='bn'},
+ [0x8D]={d='bn'},
+ [0x8E]={d='bn'},
+ [0x8F]={d='bn'},
+ [0x90]={d='bn'},
+ [0x91]={d='bn'},
+ [0x92]={d='bn'},
+ [0x93]={d='bn'},
+ [0x94]={d='bn'},
+ [0x95]={d='bn'},
+ [0x96]={d='bn'},
+ [0x97]={d='bn'},
+ [0x98]={d='bn'},
+ [0x99]={d='bn'},
+ [0x9A]={d='bn'},
+ [0x9B]={d='bn'},
+ [0x9C]={d='bn'},
+ [0x9D]={d='bn'},
+ [0x9E]={d='bn'},
+ [0x9F]={d='bn'},
+ [0xA0]={d='cs'},
+ [0xA1]={d='on'},
+ [0xA2]={d='et'},
+ [0xA3]={d='et'},
+ [0xA4]={d='et'},
+ [0xA5]={d='et'},
+ [0xA6]={d='on'},
+ [0xA7]={d='on'},
+ [0xA8]={d='on'},
+ [0xA9]={d='on'},
+ [0xAB]={d='on', m=0xBB},
+ [0xAC]={d='on'},
+ [0xAD]={d='bn'},
+ [0xAE]={d='on'},
+ [0xAF]={d='on'},
+ [0xB0]={d='et'},
+ [0xB1]={d='et'},
+ [0xB2]={d='en'},
+ [0xB3]={d='en'},
+ [0xB4]={d='on'},
+ [0xB6]={d='on'},
+ [0xB7]={d='on'},
+ [0xB8]={d='on'},
+ [0xB9]={d='en'},
+ [0xBB]={d='on', m=0xAB},
+ [0xBC]={d='on'},
+ [0xBD]={d='on'},
+ [0xBE]={d='on'},
+ [0xBF]={d='on'},
+ [0xD7]={d='on'},
+ [0xF7]={d='on'},
+ [0x2B9]={d='on'},
+ [0x2BA]={d='on'},
+ [0x2C2]={d='on'},
+ [0x2C3]={d='on'},
+ [0x2C4]={d='on'},
+ [0x2C5]={d='on'},
+ [0x2C6]={d='on'},
+ [0x2C7]={d='on'},
+ [0x2C8]={d='on'},
+ [0x2C9]={d='on'},
+ [0x2CA]={d='on'},
+ [0x2CB]={d='on'},
+ [0x2CC]={d='on'},
+ [0x2CD]={d='on'},
+ [0x2CE]={d='on'},
+ [0x2CF]={d='on'},
+ [0x2D2]={d='on'},
+ [0x2D3]={d='on'},
+ [0x2D4]={d='on'},
+ [0x2D5]={d='on'},
+ [0x2D6]={d='on'},
+ [0x2D7]={d='on'},
+ [0x2D8]={d='on'},
+ [0x2D9]={d='on'},
+ [0x2DA]={d='on'},
+ [0x2DB]={d='on'},
+ [0x2DC]={d='on'},
+ [0x2DD]={d='on'},
+ [0x2DE]={d='on'},
+ [0x2DF]={d='on'},
+ [0x2E5]={d='on'},
+ [0x2E6]={d='on'},
+ [0x2E7]={d='on'},
+ [0x2E8]={d='on'},
+ [0x2E9]={d='on'},
+ [0x2EA]={d='on'},
+ [0x2EB]={d='on'},
+ [0x2EC]={d='on'},
+ [0x2ED]={d='on'},
+ [0x2EF]={d='on'},
+ [0x2F0]={d='on'},
+ [0x2F1]={d='on'},
+ [0x2F2]={d='on'},
+ [0x2F3]={d='on'},
+ [0x2F4]={d='on'},
+ [0x2F5]={d='on'},
+ [0x2F6]={d='on'},
+ [0x2F7]={d='on'},
+ [0x2F8]={d='on'},
+ [0x2F9]={d='on'},
+ [0x2FA]={d='on'},
+ [0x2FB]={d='on'},
+ [0x2FC]={d='on'},
+ [0x2FD]={d='on'},
+ [0x2FE]={d='on'},
+ [0x2FF]={d='on'},
+ [0x300]={d='nsm'},
+ [0x301]={d='nsm'},
+ [0x302]={d='nsm'},
+ [0x303]={d='nsm'},
+ [0x304]={d='nsm'},
+ [0x305]={d='nsm'},
+ [0x306]={d='nsm'},
+ [0x307]={d='nsm'},
+ [0x308]={d='nsm'},
+ [0x309]={d='nsm'},
+ [0x30A]={d='nsm'},
+ [0x30B]={d='nsm'},
+ [0x30C]={d='nsm'},
+ [0x30D]={d='nsm'},
+ [0x30E]={d='nsm'},
+ [0x30F]={d='nsm'},
+ [0x310]={d='nsm'},
+ [0x311]={d='nsm'},
+ [0x312]={d='nsm'},
+ [0x313]={d='nsm'},
+ [0x314]={d='nsm'},
+ [0x315]={d='nsm'},
+ [0x316]={d='nsm'},
+ [0x317]={d='nsm'},
+ [0x318]={d='nsm'},
+ [0x319]={d='nsm'},
+ [0x31A]={d='nsm'},
+ [0x31B]={d='nsm'},
+ [0x31C]={d='nsm'},
+ [0x31D]={d='nsm'},
+ [0x31E]={d='nsm'},
+ [0x31F]={d='nsm'},
+ [0x320]={d='nsm'},
+ [0x321]={d='nsm'},
+ [0x322]={d='nsm'},
+ [0x323]={d='nsm'},
+ [0x324]={d='nsm'},
+ [0x325]={d='nsm'},
+ [0x326]={d='nsm'},
+ [0x327]={d='nsm'},
+ [0x328]={d='nsm'},
+ [0x329]={d='nsm'},
+ [0x32A]={d='nsm'},
+ [0x32B]={d='nsm'},
+ [0x32C]={d='nsm'},
+ [0x32D]={d='nsm'},
+ [0x32E]={d='nsm'},
+ [0x32F]={d='nsm'},
+ [0x330]={d='nsm'},
+ [0x331]={d='nsm'},
+ [0x332]={d='nsm'},
+ [0x333]={d='nsm'},
+ [0x334]={d='nsm'},
+ [0x335]={d='nsm'},
+ [0x336]={d='nsm'},
+ [0x337]={d='nsm'},
+ [0x338]={d='nsm'},
+ [0x339]={d='nsm'},
+ [0x33A]={d='nsm'},
+ [0x33B]={d='nsm'},
+ [0x33C]={d='nsm'},
+ [0x33D]={d='nsm'},
+ [0x33E]={d='nsm'},
+ [0x33F]={d='nsm'},
+ [0x340]={d='nsm'},
+ [0x341]={d='nsm'},
+ [0x342]={d='nsm'},
+ [0x343]={d='nsm'},
+ [0x344]={d='nsm'},
+ [0x345]={d='nsm'},
+ [0x346]={d='nsm'},
+ [0x347]={d='nsm'},
+ [0x348]={d='nsm'},
+ [0x349]={d='nsm'},
+ [0x34A]={d='nsm'},
+ [0x34B]={d='nsm'},
+ [0x34C]={d='nsm'},
+ [0x34D]={d='nsm'},
+ [0x34E]={d='nsm'},
+ [0x34F]={d='nsm'},
+ [0x350]={d='nsm'},
+ [0x351]={d='nsm'},
+ [0x352]={d='nsm'},
+ [0x353]={d='nsm'},
+ [0x354]={d='nsm'},
+ [0x355]={d='nsm'},
+ [0x356]={d='nsm'},
+ [0x357]={d='nsm'},
+ [0x358]={d='nsm'},
+ [0x359]={d='nsm'},
+ [0x35A]={d='nsm'},
+ [0x35B]={d='nsm'},
+ [0x35C]={d='nsm'},
+ [0x35D]={d='nsm'},
+ [0x35E]={d='nsm'},
+ [0x35F]={d='nsm'},
+ [0x360]={d='nsm'},
+ [0x361]={d='nsm'},
+ [0x362]={d='nsm'},
+ [0x363]={d='nsm'},
+ [0x364]={d='nsm'},
+ [0x365]={d='nsm'},
+ [0x366]={d='nsm'},
+ [0x367]={d='nsm'},
+ [0x368]={d='nsm'},
+ [0x369]={d='nsm'},
+ [0x36A]={d='nsm'},
+ [0x36B]={d='nsm'},
+ [0x36C]={d='nsm'},
+ [0x36D]={d='nsm'},
+ [0x36E]={d='nsm'},
+ [0x36F]={d='nsm'},
+ [0x374]={d='on'},
+ [0x375]={d='on'},
+ [0x37E]={d='on'},
+ [0x384]={d='on'},
+ [0x385]={d='on'},
+ [0x387]={d='on'},
+ [0x3F6]={d='on'},
+ [0x483]={d='nsm'},
+ [0x484]={d='nsm'},
+ [0x485]={d='nsm'},
+ [0x486]={d='nsm'},
+ [0x487]={d='nsm'},
+ [0x488]={d='nsm'},
+ [0x489]={d='nsm'},
+ [0x58A]={d='on'},
+ [0x58D]={d='on'},
+ [0x58E]={d='on'},
+ [0x58F]={d='et'},
+ [0x591]={d='nsm'},
+ [0x592]={d='nsm'},
+ [0x593]={d='nsm'},
+ [0x594]={d='nsm'},
+ [0x595]={d='nsm'},
+ [0x596]={d='nsm'},
+ [0x597]={d='nsm'},
+ [0x598]={d='nsm'},
+ [0x599]={d='nsm'},
+ [0x59A]={d='nsm'},
+ [0x59B]={d='nsm'},
+ [0x59C]={d='nsm'},
+ [0x59D]={d='nsm'},
+ [0x59E]={d='nsm'},
+ [0x59F]={d='nsm'},
+ [0x5A0]={d='nsm'},
+ [0x5A1]={d='nsm'},
+ [0x5A2]={d='nsm'},
+ [0x5A3]={d='nsm'},
+ [0x5A4]={d='nsm'},
+ [0x5A5]={d='nsm'},
+ [0x5A6]={d='nsm'},
+ [0x5A7]={d='nsm'},
+ [0x5A8]={d='nsm'},
+ [0x5A9]={d='nsm'},
+ [0x5AA]={d='nsm'},
+ [0x5AB]={d='nsm'},
+ [0x5AC]={d='nsm'},
+ [0x5AD]={d='nsm'},
+ [0x5AE]={d='nsm'},
+ [0x5AF]={d='nsm'},
+ [0x5B0]={d='nsm'},
+ [0x5B1]={d='nsm'},
+ [0x5B2]={d='nsm'},
+ [0x5B3]={d='nsm'},
+ [0x5B4]={d='nsm'},
+ [0x5B5]={d='nsm'},
+ [0x5B6]={d='nsm'},
+ [0x5B7]={d='nsm'},
+ [0x5B8]={d='nsm'},
+ [0x5B9]={d='nsm'},
+ [0x5BA]={d='nsm'},
+ [0x5BB]={d='nsm'},
+ [0x5BC]={d='nsm'},
+ [0x5BD]={d='nsm'},
+ [0x5BF]={d='nsm'},
+ [0x5C1]={d='nsm'},
+ [0x5C2]={d='nsm'},
+ [0x5C4]={d='nsm'},
+ [0x5C5]={d='nsm'},
+ [0x5C7]={d='nsm'},
+ [0x600]={d='an'},
+ [0x601]={d='an'},
+ [0x602]={d='an'},
+ [0x603]={d='an'},
+ [0x604]={d='an'},
+ [0x605]={d='an'},
+ [0x606]={d='on'},
+ [0x607]={d='on'},
+ [0x608]={d='al'},
+ [0x609]={d='et'},
+ [0x60A]={d='et'},
+ [0x60B]={d='al'},
+ [0x60C]={d='cs'},
+ [0x60D]={d='al'},
+ [0x60E]={d='on'},
+ [0x60F]={d='on'},
+ [0x610]={d='nsm'},
+ [0x611]={d='nsm'},
+ [0x612]={d='nsm'},
+ [0x613]={d='nsm'},
+ [0x614]={d='nsm'},
+ [0x615]={d='nsm'},
+ [0x616]={d='nsm'},
+ [0x617]={d='nsm'},
+ [0x618]={d='nsm'},
+ [0x619]={d='nsm'},
+ [0x61A]={d='nsm'},
+ [0x64B]={d='nsm'},
+ [0x64C]={d='nsm'},
+ [0x64D]={d='nsm'},
+ [0x64E]={d='nsm'},
+ [0x64F]={d='nsm'},
+ [0x650]={d='nsm'},
+ [0x651]={d='nsm'},
+ [0x652]={d='nsm'},
+ [0x653]={d='nsm'},
+ [0x654]={d='nsm'},
+ [0x655]={d='nsm'},
+ [0x656]={d='nsm'},
+ [0x657]={d='nsm'},
+ [0x658]={d='nsm'},
+ [0x659]={d='nsm'},
+ [0x65A]={d='nsm'},
+ [0x65B]={d='nsm'},
+ [0x65C]={d='nsm'},
+ [0x65D]={d='nsm'},
+ [0x65E]={d='nsm'},
+ [0x65F]={d='nsm'},
+ [0x660]={d='an'},
+ [0x661]={d='an'},
+ [0x662]={d='an'},
+ [0x663]={d='an'},
+ [0x664]={d='an'},
+ [0x665]={d='an'},
+ [0x666]={d='an'},
+ [0x667]={d='an'},
+ [0x668]={d='an'},
+ [0x669]={d='an'},
+ [0x66A]={d='et'},
+ [0x66B]={d='an'},
+ [0x66C]={d='an'},
+ [0x670]={d='nsm'},
+ [0x6D6]={d='nsm'},
+ [0x6D7]={d='nsm'},
+ [0x6D8]={d='nsm'},
+ [0x6D9]={d='nsm'},
+ [0x6DA]={d='nsm'},
+ [0x6DB]={d='nsm'},
+ [0x6DC]={d='nsm'},
+ [0x6DD]={d='an'},
+ [0x6DE]={d='on'},
+ [0x6DF]={d='nsm'},
+ [0x6E0]={d='nsm'},
+ [0x6E1]={d='nsm'},
+ [0x6E2]={d='nsm'},
+ [0x6E3]={d='nsm'},
+ [0x6E4]={d='nsm'},
+ [0x6E7]={d='nsm'},
+ [0x6E8]={d='nsm'},
+ [0x6E9]={d='on'},
+ [0x6EA]={d='nsm'},
+ [0x6EB]={d='nsm'},
+ [0x6EC]={d='nsm'},
+ [0x6ED]={d='nsm'},
+ [0x6F0]={d='en'},
+ [0x6F1]={d='en'},
+ [0x6F2]={d='en'},
+ [0x6F3]={d='en'},
+ [0x6F4]={d='en'},
+ [0x6F5]={d='en'},
+ [0x6F6]={d='en'},
+ [0x6F7]={d='en'},
+ [0x6F8]={d='en'},
+ [0x6F9]={d='en'},
+ [0x711]={d='nsm'},
+ [0x730]={d='nsm'},
+ [0x731]={d='nsm'},
+ [0x732]={d='nsm'},
+ [0x733]={d='nsm'},
+ [0x734]={d='nsm'},
+ [0x735]={d='nsm'},
+ [0x736]={d='nsm'},
+ [0x737]={d='nsm'},
+ [0x738]={d='nsm'},
+ [0x739]={d='nsm'},
+ [0x73A]={d='nsm'},
+ [0x73B]={d='nsm'},
+ [0x73C]={d='nsm'},
+ [0x73D]={d='nsm'},
+ [0x73E]={d='nsm'},
+ [0x73F]={d='nsm'},
+ [0x740]={d='nsm'},
+ [0x741]={d='nsm'},
+ [0x742]={d='nsm'},
+ [0x743]={d='nsm'},
+ [0x744]={d='nsm'},
+ [0x745]={d='nsm'},
+ [0x746]={d='nsm'},
+ [0x747]={d='nsm'},
+ [0x748]={d='nsm'},
+ [0x749]={d='nsm'},
+ [0x74A]={d='nsm'},
+ [0x7A6]={d='nsm'},
+ [0x7A7]={d='nsm'},
+ [0x7A8]={d='nsm'},
+ [0x7A9]={d='nsm'},
+ [0x7AA]={d='nsm'},
+ [0x7AB]={d='nsm'},
+ [0x7AC]={d='nsm'},
+ [0x7AD]={d='nsm'},
+ [0x7AE]={d='nsm'},
+ [0x7AF]={d='nsm'},
+ [0x7B0]={d='nsm'},
+ [0x7EB]={d='nsm'},
+ [0x7EC]={d='nsm'},
+ [0x7ED]={d='nsm'},
+ [0x7EE]={d='nsm'},
+ [0x7EF]={d='nsm'},
+ [0x7F0]={d='nsm'},
+ [0x7F1]={d='nsm'},
+ [0x7F2]={d='nsm'},
+ [0x7F3]={d='nsm'},
+ [0x7F6]={d='on'},
+ [0x7F7]={d='on'},
+ [0x7F8]={d='on'},
+ [0x7F9]={d='on'},
+ [0x816]={d='nsm'},
+ [0x817]={d='nsm'},
+ [0x818]={d='nsm'},
+ [0x819]={d='nsm'},
+ [0x81B]={d='nsm'},
+ [0x81C]={d='nsm'},
+ [0x81D]={d='nsm'},
+ [0x81E]={d='nsm'},
+ [0x81F]={d='nsm'},
+ [0x820]={d='nsm'},
+ [0x821]={d='nsm'},
+ [0x822]={d='nsm'},
+ [0x823]={d='nsm'},
+ [0x825]={d='nsm'},
+ [0x826]={d='nsm'},
+ [0x827]={d='nsm'},
+ [0x829]={d='nsm'},
+ [0x82A]={d='nsm'},
+ [0x82B]={d='nsm'},
+ [0x82C]={d='nsm'},
+ [0x82D]={d='nsm'},
+ [0x859]={d='nsm'},
+ [0x85A]={d='nsm'},
+ [0x85B]={d='nsm'},
+ [0x8D4]={d='nsm'},
+ [0x8D5]={d='nsm'},
+ [0x8D6]={d='nsm'},
+ [0x8D7]={d='nsm'},
+ [0x8D8]={d='nsm'},
+ [0x8D9]={d='nsm'},
+ [0x8DA]={d='nsm'},
+ [0x8DB]={d='nsm'},
+ [0x8DC]={d='nsm'},
+ [0x8DD]={d='nsm'},
+ [0x8DE]={d='nsm'},
+ [0x8DF]={d='nsm'},
+ [0x8E0]={d='nsm'},
+ [0x8E1]={d='nsm'},
+ [0x8E2]={d='an'},
+ [0x8E3]={d='nsm'},
+ [0x8E4]={d='nsm'},
+ [0x8E5]={d='nsm'},
+ [0x8E6]={d='nsm'},
+ [0x8E7]={d='nsm'},
+ [0x8E8]={d='nsm'},
+ [0x8E9]={d='nsm'},
+ [0x8EA]={d='nsm'},
+ [0x8EB]={d='nsm'},
+ [0x8EC]={d='nsm'},
+ [0x8ED]={d='nsm'},
+ [0x8EE]={d='nsm'},
+ [0x8EF]={d='nsm'},
+ [0x8F0]={d='nsm'},
+ [0x8F1]={d='nsm'},
+ [0x8F2]={d='nsm'},
+ [0x8F3]={d='nsm'},
+ [0x8F4]={d='nsm'},
+ [0x8F5]={d='nsm'},
+ [0x8F6]={d='nsm'},
+ [0x8F7]={d='nsm'},
+ [0x8F8]={d='nsm'},
+ [0x8F9]={d='nsm'},
+ [0x8FA]={d='nsm'},
+ [0x8FB]={d='nsm'},
+ [0x8FC]={d='nsm'},
+ [0x8FD]={d='nsm'},
+ [0x8FE]={d='nsm'},
+ [0x8FF]={d='nsm'},
+ [0x900]={d='nsm'},
+ [0x901]={d='nsm'},
+ [0x902]={d='nsm'},
+ [0x93A]={d='nsm'},
+ [0x93C]={d='nsm'},
+ [0x941]={d='nsm'},
+ [0x942]={d='nsm'},
+ [0x943]={d='nsm'},
+ [0x944]={d='nsm'},
+ [0x945]={d='nsm'},
+ [0x946]={d='nsm'},
+ [0x947]={d='nsm'},
+ [0x948]={d='nsm'},
+ [0x94D]={d='nsm'},
+ [0x951]={d='nsm'},
+ [0x952]={d='nsm'},
+ [0x953]={d='nsm'},
+ [0x954]={d='nsm'},
+ [0x955]={d='nsm'},
+ [0x956]={d='nsm'},
+ [0x957]={d='nsm'},
+ [0x962]={d='nsm'},
+ [0x963]={d='nsm'},
+ [0x981]={d='nsm'},
+ [0x9BC]={d='nsm'},
+ [0x9C1]={d='nsm'},
+ [0x9C2]={d='nsm'},
+ [0x9C3]={d='nsm'},
+ [0x9C4]={d='nsm'},
+ [0x9CD]={d='nsm'},
+ [0x9E2]={d='nsm'},
+ [0x9E3]={d='nsm'},
+ [0x9F2]={d='et'},
+ [0x9F3]={d='et'},
+ [0x9FB]={d='et'},
+ [0xA01]={d='nsm'},
+ [0xA02]={d='nsm'},
+ [0xA3C]={d='nsm'},
+ [0xA41]={d='nsm'},
+ [0xA42]={d='nsm'},
+ [0xA47]={d='nsm'},
+ [0xA48]={d='nsm'},
+ [0xA4B]={d='nsm'},
+ [0xA4C]={d='nsm'},
+ [0xA4D]={d='nsm'},
+ [0xA51]={d='nsm'},
+ [0xA70]={d='nsm'},
+ [0xA71]={d='nsm'},
+ [0xA75]={d='nsm'},
+ [0xA81]={d='nsm'},
+ [0xA82]={d='nsm'},
+ [0xABC]={d='nsm'},
+ [0xAC1]={d='nsm'},
+ [0xAC2]={d='nsm'},
+ [0xAC3]={d='nsm'},
+ [0xAC4]={d='nsm'},
+ [0xAC5]={d='nsm'},
+ [0xAC7]={d='nsm'},
+ [0xAC8]={d='nsm'},
+ [0xACD]={d='nsm'},
+ [0xAE2]={d='nsm'},
+ [0xAE3]={d='nsm'},
+ [0xAF1]={d='et'},
+ [0xB01]={d='nsm'},
+ [0xB3C]={d='nsm'},
+ [0xB3F]={d='nsm'},
+ [0xB41]={d='nsm'},
+ [0xB42]={d='nsm'},
+ [0xB43]={d='nsm'},
+ [0xB44]={d='nsm'},
+ [0xB4D]={d='nsm'},
+ [0xB56]={d='nsm'},
+ [0xB62]={d='nsm'},
+ [0xB63]={d='nsm'},
+ [0xB82]={d='nsm'},
+ [0xBC0]={d='nsm'},
+ [0xBCD]={d='nsm'},
+ [0xBF3]={d='on'},
+ [0xBF4]={d='on'},
+ [0xBF5]={d='on'},
+ [0xBF6]={d='on'},
+ [0xBF7]={d='on'},
+ [0xBF8]={d='on'},
+ [0xBF9]={d='et'},
+ [0xBFA]={d='on'},
+ [0xC00]={d='nsm'},
+ [0xC3E]={d='nsm'},
+ [0xC3F]={d='nsm'},
+ [0xC40]={d='nsm'},
+ [0xC46]={d='nsm'},
+ [0xC47]={d='nsm'},
+ [0xC48]={d='nsm'},
+ [0xC4A]={d='nsm'},
+ [0xC4B]={d='nsm'},
+ [0xC4C]={d='nsm'},
+ [0xC4D]={d='nsm'},
+ [0xC55]={d='nsm'},
+ [0xC56]={d='nsm'},
+ [0xC62]={d='nsm'},
+ [0xC63]={d='nsm'},
+ [0xC78]={d='on'},
+ [0xC79]={d='on'},
+ [0xC7A]={d='on'},
+ [0xC7B]={d='on'},
+ [0xC7C]={d='on'},
+ [0xC7D]={d='on'},
+ [0xC7E]={d='on'},
+ [0xC81]={d='nsm'},
+ [0xCBC]={d='nsm'},
+ [0xCCC]={d='nsm'},
+ [0xCCD]={d='nsm'},
+ [0xCE2]={d='nsm'},
+ [0xCE3]={d='nsm'},
+ [0xD01]={d='nsm'},
+ [0xD41]={d='nsm'},
+ [0xD42]={d='nsm'},
+ [0xD43]={d='nsm'},
+ [0xD44]={d='nsm'},
+ [0xD4D]={d='nsm'},
+ [0xD62]={d='nsm'},
+ [0xD63]={d='nsm'},
+ [0xDCA]={d='nsm'},
+ [0xDD2]={d='nsm'},
+ [0xDD3]={d='nsm'},
+ [0xDD4]={d='nsm'},
+ [0xDD6]={d='nsm'},
+ [0xE31]={d='nsm'},
+ [0xE34]={d='nsm'},
+ [0xE35]={d='nsm'},
+ [0xE36]={d='nsm'},
+ [0xE37]={d='nsm'},
+ [0xE38]={d='nsm'},
+ [0xE39]={d='nsm'},
+ [0xE3A]={d='nsm'},
+ [0xE3F]={d='et'},
+ [0xE47]={d='nsm'},
+ [0xE48]={d='nsm'},
+ [0xE49]={d='nsm'},
+ [0xE4A]={d='nsm'},
+ [0xE4B]={d='nsm'},
+ [0xE4C]={d='nsm'},
+ [0xE4D]={d='nsm'},
+ [0xE4E]={d='nsm'},
+ [0xEB1]={d='nsm'},
+ [0xEB4]={d='nsm'},
+ [0xEB5]={d='nsm'},
+ [0xEB6]={d='nsm'},
+ [0xEB7]={d='nsm'},
+ [0xEB8]={d='nsm'},
+ [0xEB9]={d='nsm'},
+ [0xEBB]={d='nsm'},
+ [0xEBC]={d='nsm'},
+ [0xEC8]={d='nsm'},
+ [0xEC9]={d='nsm'},
+ [0xECA]={d='nsm'},
+ [0xECB]={d='nsm'},
+ [0xECC]={d='nsm'},
+ [0xECD]={d='nsm'},
+ [0xF18]={d='nsm'},
+ [0xF19]={d='nsm'},
+ [0xF35]={d='nsm'},
+ [0xF37]={d='nsm'},
+ [0xF39]={d='nsm'},
+ [0xF3A]={d='on', m=0xF3B},
+ [0xF3B]={d='on', m=0xF3A},
+ [0xF3C]={d='on', m=0xF3D},
+ [0xF3D]={d='on', m=0xF3C},
+ [0xF71]={d='nsm'},
+ [0xF72]={d='nsm'},
+ [0xF73]={d='nsm'},
+ [0xF74]={d='nsm'},
+ [0xF75]={d='nsm'},
+ [0xF76]={d='nsm'},
+ [0xF77]={d='nsm'},
+ [0xF78]={d='nsm'},
+ [0xF79]={d='nsm'},
+ [0xF7A]={d='nsm'},
+ [0xF7B]={d='nsm'},
+ [0xF7C]={d='nsm'},
+ [0xF7D]={d='nsm'},
+ [0xF7E]={d='nsm'},
+ [0xF80]={d='nsm'},
+ [0xF81]={d='nsm'},
+ [0xF82]={d='nsm'},
+ [0xF83]={d='nsm'},
+ [0xF84]={d='nsm'},
+ [0xF86]={d='nsm'},
+ [0xF87]={d='nsm'},
+ [0xF8D]={d='nsm'},
+ [0xF8E]={d='nsm'},
+ [0xF8F]={d='nsm'},
+ [0xF90]={d='nsm'},
+ [0xF91]={d='nsm'},
+ [0xF92]={d='nsm'},
+ [0xF93]={d='nsm'},
+ [0xF94]={d='nsm'},
+ [0xF95]={d='nsm'},
+ [0xF96]={d='nsm'},
+ [0xF97]={d='nsm'},
+ [0xF99]={d='nsm'},
+ [0xF9A]={d='nsm'},
+ [0xF9B]={d='nsm'},
+ [0xF9C]={d='nsm'},
+ [0xF9D]={d='nsm'},
+ [0xF9E]={d='nsm'},
+ [0xF9F]={d='nsm'},
+ [0xFA0]={d='nsm'},
+ [0xFA1]={d='nsm'},
+ [0xFA2]={d='nsm'},
+ [0xFA3]={d='nsm'},
+ [0xFA4]={d='nsm'},
+ [0xFA5]={d='nsm'},
+ [0xFA6]={d='nsm'},
+ [0xFA7]={d='nsm'},
+ [0xFA8]={d='nsm'},
+ [0xFA9]={d='nsm'},
+ [0xFAA]={d='nsm'},
+ [0xFAB]={d='nsm'},
+ [0xFAC]={d='nsm'},
+ [0xFAD]={d='nsm'},
+ [0xFAE]={d='nsm'},
+ [0xFAF]={d='nsm'},
+ [0xFB0]={d='nsm'},
+ [0xFB1]={d='nsm'},
+ [0xFB2]={d='nsm'},
+ [0xFB3]={d='nsm'},
+ [0xFB4]={d='nsm'},
+ [0xFB5]={d='nsm'},
+ [0xFB6]={d='nsm'},
+ [0xFB7]={d='nsm'},
+ [0xFB8]={d='nsm'},
+ [0xFB9]={d='nsm'},
+ [0xFBA]={d='nsm'},
+ [0xFBB]={d='nsm'},
+ [0xFBC]={d='nsm'},
+ [0xFC6]={d='nsm'},
+ [0x102D]={d='nsm'},
+ [0x102E]={d='nsm'},
+ [0x102F]={d='nsm'},
+ [0x1030]={d='nsm'},
+ [0x1032]={d='nsm'},
+ [0x1033]={d='nsm'},
+ [0x1034]={d='nsm'},
+ [0x1035]={d='nsm'},
+ [0x1036]={d='nsm'},
+ [0x1037]={d='nsm'},
+ [0x1039]={d='nsm'},
+ [0x103A]={d='nsm'},
+ [0x103D]={d='nsm'},
+ [0x103E]={d='nsm'},
+ [0x1058]={d='nsm'},
+ [0x1059]={d='nsm'},
+ [0x105E]={d='nsm'},
+ [0x105F]={d='nsm'},
+ [0x1060]={d='nsm'},
+ [0x1071]={d='nsm'},
+ [0x1072]={d='nsm'},
+ [0x1073]={d='nsm'},
+ [0x1074]={d='nsm'},
+ [0x1082]={d='nsm'},
+ [0x1085]={d='nsm'},
+ [0x1086]={d='nsm'},
+ [0x108D]={d='nsm'},
+ [0x109D]={d='nsm'},
+ [0x135D]={d='nsm'},
+ [0x135E]={d='nsm'},
+ [0x135F]={d='nsm'},
+ [0x1390]={d='on'},
+ [0x1391]={d='on'},
+ [0x1392]={d='on'},
+ [0x1393]={d='on'},
+ [0x1394]={d='on'},
+ [0x1395]={d='on'},
+ [0x1396]={d='on'},
+ [0x1397]={d='on'},
+ [0x1398]={d='on'},
+ [0x1399]={d='on'},
+ [0x1400]={d='on'},
+ [0x1680]={d='ws'},
+ [0x169B]={d='on', m=0x169C},
+ [0x169C]={d='on', m=0x169B},
+ [0x1712]={d='nsm'},
+ [0x1713]={d='nsm'},
+ [0x1714]={d='nsm'},
+ [0x1732]={d='nsm'},
+ [0x1733]={d='nsm'},
+ [0x1734]={d='nsm'},
+ [0x1752]={d='nsm'},
+ [0x1753]={d='nsm'},
+ [0x1772]={d='nsm'},
+ [0x1773]={d='nsm'},
+ [0x17B4]={d='nsm'},
+ [0x17B5]={d='nsm'},
+ [0x17B7]={d='nsm'},
+ [0x17B8]={d='nsm'},
+ [0x17B9]={d='nsm'},
+ [0x17BA]={d='nsm'},
+ [0x17BB]={d='nsm'},
+ [0x17BC]={d='nsm'},
+ [0x17BD]={d='nsm'},
+ [0x17C6]={d='nsm'},
+ [0x17C9]={d='nsm'},
+ [0x17CA]={d='nsm'},
+ [0x17CB]={d='nsm'},
+ [0x17CC]={d='nsm'},
+ [0x17CD]={d='nsm'},
+ [0x17CE]={d='nsm'},
+ [0x17CF]={d='nsm'},
+ [0x17D0]={d='nsm'},
+ [0x17D1]={d='nsm'},
+ [0x17D2]={d='nsm'},
+ [0x17D3]={d='nsm'},
+ [0x17DB]={d='et'},
+ [0x17DD]={d='nsm'},
+ [0x17F0]={d='on'},
+ [0x17F1]={d='on'},
+ [0x17F2]={d='on'},
+ [0x17F3]={d='on'},
+ [0x17F4]={d='on'},
+ [0x17F5]={d='on'},
+ [0x17F6]={d='on'},
+ [0x17F7]={d='on'},
+ [0x17F8]={d='on'},
+ [0x17F9]={d='on'},
+ [0x1800]={d='on'},
+ [0x1801]={d='on'},
+ [0x1802]={d='on'},
+ [0x1803]={d='on'},
+ [0x1804]={d='on'},
+ [0x1805]={d='on'},
+ [0x1806]={d='on'},
+ [0x1807]={d='on'},
+ [0x1808]={d='on'},
+ [0x1809]={d='on'},
+ [0x180A]={d='on'},
+ [0x180B]={d='nsm'},
+ [0x180C]={d='nsm'},
+ [0x180D]={d='nsm'},
+ [0x180E]={d='bn'},
+ [0x1885]={d='nsm'},
+ [0x1886]={d='nsm'},
+ [0x18A9]={d='nsm'},
+ [0x1920]={d='nsm'},
+ [0x1921]={d='nsm'},
+ [0x1922]={d='nsm'},
+ [0x1927]={d='nsm'},
+ [0x1928]={d='nsm'},
+ [0x1932]={d='nsm'},
+ [0x1939]={d='nsm'},
+ [0x193A]={d='nsm'},
+ [0x193B]={d='nsm'},
+ [0x1940]={d='on'},
+ [0x1944]={d='on'},
+ [0x1945]={d='on'},
+ [0x19DE]={d='on'},
+ [0x19DF]={d='on'},
+ [0x19E0]={d='on'},
+ [0x19E1]={d='on'},
+ [0x19E2]={d='on'},
+ [0x19E3]={d='on'},
+ [0x19E4]={d='on'},
+ [0x19E5]={d='on'},
+ [0x19E6]={d='on'},
+ [0x19E7]={d='on'},
+ [0x19E8]={d='on'},
+ [0x19E9]={d='on'},
+ [0x19EA]={d='on'},
+ [0x19EB]={d='on'},
+ [0x19EC]={d='on'},
+ [0x19ED]={d='on'},
+ [0x19EE]={d='on'},
+ [0x19EF]={d='on'},
+ [0x19F0]={d='on'},
+ [0x19F1]={d='on'},
+ [0x19F2]={d='on'},
+ [0x19F3]={d='on'},
+ [0x19F4]={d='on'},
+ [0x19F5]={d='on'},
+ [0x19F6]={d='on'},
+ [0x19F7]={d='on'},
+ [0x19F8]={d='on'},
+ [0x19F9]={d='on'},
+ [0x19FA]={d='on'},
+ [0x19FB]={d='on'},
+ [0x19FC]={d='on'},
+ [0x19FD]={d='on'},
+ [0x19FE]={d='on'},
+ [0x19FF]={d='on'},
+ [0x1A17]={d='nsm'},
+ [0x1A18]={d='nsm'},
+ [0x1A1B]={d='nsm'},
+ [0x1A56]={d='nsm'},
+ [0x1A58]={d='nsm'},
+ [0x1A59]={d='nsm'},
+ [0x1A5A]={d='nsm'},
+ [0x1A5B]={d='nsm'},
+ [0x1A5C]={d='nsm'},
+ [0x1A5D]={d='nsm'},
+ [0x1A5E]={d='nsm'},
+ [0x1A60]={d='nsm'},
+ [0x1A62]={d='nsm'},
+ [0x1A65]={d='nsm'},
+ [0x1A66]={d='nsm'},
+ [0x1A67]={d='nsm'},
+ [0x1A68]={d='nsm'},
+ [0x1A69]={d='nsm'},
+ [0x1A6A]={d='nsm'},
+ [0x1A6B]={d='nsm'},
+ [0x1A6C]={d='nsm'},
+ [0x1A73]={d='nsm'},
+ [0x1A74]={d='nsm'},
+ [0x1A75]={d='nsm'},
+ [0x1A76]={d='nsm'},
+ [0x1A77]={d='nsm'},
+ [0x1A78]={d='nsm'},
+ [0x1A79]={d='nsm'},
+ [0x1A7A]={d='nsm'},
+ [0x1A7B]={d='nsm'},
+ [0x1A7C]={d='nsm'},
+ [0x1A7F]={d='nsm'},
+ [0x1AB0]={d='nsm'},
+ [0x1AB1]={d='nsm'},
+ [0x1AB2]={d='nsm'},
+ [0x1AB3]={d='nsm'},
+ [0x1AB4]={d='nsm'},
+ [0x1AB5]={d='nsm'},
+ [0x1AB6]={d='nsm'},
+ [0x1AB7]={d='nsm'},
+ [0x1AB8]={d='nsm'},
+ [0x1AB9]={d='nsm'},
+ [0x1ABA]={d='nsm'},
+ [0x1ABB]={d='nsm'},
+ [0x1ABC]={d='nsm'},
+ [0x1ABD]={d='nsm'},
+ [0x1ABE]={d='nsm'},
+ [0x1B00]={d='nsm'},
+ [0x1B01]={d='nsm'},
+ [0x1B02]={d='nsm'},
+ [0x1B03]={d='nsm'},
+ [0x1B34]={d='nsm'},
+ [0x1B36]={d='nsm'},
+ [0x1B37]={d='nsm'},
+ [0x1B38]={d='nsm'},
+ [0x1B39]={d='nsm'},
+ [0x1B3A]={d='nsm'},
+ [0x1B3C]={d='nsm'},
+ [0x1B42]={d='nsm'},
+ [0x1B6B]={d='nsm'},
+ [0x1B6C]={d='nsm'},
+ [0x1B6D]={d='nsm'},
+ [0x1B6E]={d='nsm'},
+ [0x1B6F]={d='nsm'},
+ [0x1B70]={d='nsm'},
+ [0x1B71]={d='nsm'},
+ [0x1B72]={d='nsm'},
+ [0x1B73]={d='nsm'},
+ [0x1B80]={d='nsm'},
+ [0x1B81]={d='nsm'},
+ [0x1BA2]={d='nsm'},
+ [0x1BA3]={d='nsm'},
+ [0x1BA4]={d='nsm'},
+ [0x1BA5]={d='nsm'},
+ [0x1BA8]={d='nsm'},
+ [0x1BA9]={d='nsm'},
+ [0x1BAB]={d='nsm'},
+ [0x1BAC]={d='nsm'},
+ [0x1BAD]={d='nsm'},
+ [0x1BE6]={d='nsm'},
+ [0x1BE8]={d='nsm'},
+ [0x1BE9]={d='nsm'},
+ [0x1BED]={d='nsm'},
+ [0x1BEF]={d='nsm'},
+ [0x1BF0]={d='nsm'},
+ [0x1BF1]={d='nsm'},
+ [0x1C2C]={d='nsm'},
+ [0x1C2D]={d='nsm'},
+ [0x1C2E]={d='nsm'},
+ [0x1C2F]={d='nsm'},
+ [0x1C30]={d='nsm'},
+ [0x1C31]={d='nsm'},
+ [0x1C32]={d='nsm'},
+ [0x1C33]={d='nsm'},
+ [0x1C36]={d='nsm'},
+ [0x1C37]={d='nsm'},
+ [0x1CD0]={d='nsm'},
+ [0x1CD1]={d='nsm'},
+ [0x1CD2]={d='nsm'},
+ [0x1CD4]={d='nsm'},
+ [0x1CD5]={d='nsm'},
+ [0x1CD6]={d='nsm'},
+ [0x1CD7]={d='nsm'},
+ [0x1CD8]={d='nsm'},
+ [0x1CD9]={d='nsm'},
+ [0x1CDA]={d='nsm'},
+ [0x1CDB]={d='nsm'},
+ [0x1CDC]={d='nsm'},
+ [0x1CDD]={d='nsm'},
+ [0x1CDE]={d='nsm'},
+ [0x1CDF]={d='nsm'},
+ [0x1CE0]={d='nsm'},
+ [0x1CE2]={d='nsm'},
+ [0x1CE3]={d='nsm'},
+ [0x1CE4]={d='nsm'},
+ [0x1CE5]={d='nsm'},
+ [0x1CE6]={d='nsm'},
+ [0x1CE7]={d='nsm'},
+ [0x1CE8]={d='nsm'},
+ [0x1CED]={d='nsm'},
+ [0x1CF4]={d='nsm'},
+ [0x1CF8]={d='nsm'},
+ [0x1CF9]={d='nsm'},
+ [0x1DC0]={d='nsm'},
+ [0x1DC1]={d='nsm'},
+ [0x1DC2]={d='nsm'},
+ [0x1DC3]={d='nsm'},
+ [0x1DC4]={d='nsm'},
+ [0x1DC5]={d='nsm'},
+ [0x1DC6]={d='nsm'},
+ [0x1DC7]={d='nsm'},
+ [0x1DC8]={d='nsm'},
+ [0x1DC9]={d='nsm'},
+ [0x1DCA]={d='nsm'},
+ [0x1DCB]={d='nsm'},
+ [0x1DCC]={d='nsm'},
+ [0x1DCD]={d='nsm'},
+ [0x1DCE]={d='nsm'},
+ [0x1DCF]={d='nsm'},
+ [0x1DD0]={d='nsm'},
+ [0x1DD1]={d='nsm'},
+ [0x1DD2]={d='nsm'},
+ [0x1DD3]={d='nsm'},
+ [0x1DD4]={d='nsm'},
+ [0x1DD5]={d='nsm'},
+ [0x1DD6]={d='nsm'},
+ [0x1DD7]={d='nsm'},
+ [0x1DD8]={d='nsm'},
+ [0x1DD9]={d='nsm'},
+ [0x1DDA]={d='nsm'},
+ [0x1DDB]={d='nsm'},
+ [0x1DDC]={d='nsm'},
+ [0x1DDD]={d='nsm'},
+ [0x1DDE]={d='nsm'},
+ [0x1DDF]={d='nsm'},
+ [0x1DE0]={d='nsm'},
+ [0x1DE1]={d='nsm'},
+ [0x1DE2]={d='nsm'},
+ [0x1DE3]={d='nsm'},
+ [0x1DE4]={d='nsm'},
+ [0x1DE5]={d='nsm'},
+ [0x1DE6]={d='nsm'},
+ [0x1DE7]={d='nsm'},
+ [0x1DE8]={d='nsm'},
+ [0x1DE9]={d='nsm'},
+ [0x1DEA]={d='nsm'},
+ [0x1DEB]={d='nsm'},
+ [0x1DEC]={d='nsm'},
+ [0x1DED]={d='nsm'},
+ [0x1DEE]={d='nsm'},
+ [0x1DEF]={d='nsm'},
+ [0x1DF0]={d='nsm'},
+ [0x1DF1]={d='nsm'},
+ [0x1DF2]={d='nsm'},
+ [0x1DF3]={d='nsm'},
+ [0x1DF4]={d='nsm'},
+ [0x1DF5]={d='nsm'},
+ [0x1DFB]={d='nsm'},
+ [0x1DFC]={d='nsm'},
+ [0x1DFD]={d='nsm'},
+ [0x1DFE]={d='nsm'},
+ [0x1DFF]={d='nsm'},
+ [0x1FBD]={d='on'},
+ [0x1FBF]={d='on'},
+ [0x1FC0]={d='on'},
+ [0x1FC1]={d='on'},
+ [0x1FCD]={d='on'},
+ [0x1FCE]={d='on'},
+ [0x1FCF]={d='on'},
+ [0x1FDD]={d='on'},
+ [0x1FDE]={d='on'},
+ [0x1FDF]={d='on'},
+ [0x1FED]={d='on'},
+ [0x1FEE]={d='on'},
+ [0x1FEF]={d='on'},
+ [0x1FFD]={d='on'},
+ [0x1FFE]={d='on'},
+ [0x2000]={d='ws'},
+ [0x2001]={d='ws'},
+ [0x2002]={d='ws'},
+ [0x2003]={d='ws'},
+ [0x2004]={d='ws'},
+ [0x2005]={d='ws'},
+ [0x2006]={d='ws'},
+ [0x2007]={d='ws'},
+ [0x2008]={d='ws'},
+ [0x2009]={d='ws'},
+ [0x200A]={d='ws'},
+ [0x200B]={d='bn'},
+ [0x200C]={d='bn'},
+ [0x200D]={d='bn'},
+ [0x200F]={d='r'},
+ [0x2010]={d='on'},
+ [0x2011]={d='on'},
+ [0x2012]={d='on'},
+ [0x2013]={d='on'},
+ [0x2014]={d='on'},
+ [0x2015]={d='on'},
+ [0x2016]={d='on'},
+ [0x2017]={d='on'},
+ [0x2018]={d='on'},
+ [0x2019]={d='on'},
+ [0x201A]={d='on'},
+ [0x201B]={d='on'},
+ [0x201C]={d='on'},
+ [0x201D]={d='on'},
+ [0x201E]={d='on'},
+ [0x201F]={d='on'},
+ [0x2020]={d='on'},
+ [0x2021]={d='on'},
+ [0x2022]={d='on'},
+ [0x2023]={d='on'},
+ [0x2024]={d='on'},
+ [0x2025]={d='on'},
+ [0x2026]={d='on'},
+ [0x2027]={d='on'},
+ [0x2028]={d='ws'},
+ [0x2029]={d='b'},
+ [0x202A]={d='lre'},
+ [0x202B]={d='rle'},
+ [0x202C]={d='pdf'},
+ [0x202D]={d='lro'},
+ [0x202E]={d='rlo'},
+ [0x202F]={d='cs'},
+ [0x2030]={d='et'},
+ [0x2031]={d='et'},
+ [0x2032]={d='et'},
+ [0x2033]={d='et'},
+ [0x2034]={d='et'},
+ [0x2035]={d='on'},
+ [0x2036]={d='on'},
+ [0x2037]={d='on'},
+ [0x2038]={d='on'},
+ [0x2039]={d='on', m=0x203A},
+ [0x203A]={d='on', m=0x2039},
+ [0x203B]={d='on'},
+ [0x203C]={d='on'},
+ [0x203D]={d='on'},
+ [0x203E]={d='on'},
+ [0x203F]={d='on'},
+ [0x2040]={d='on'},
+ [0x2041]={d='on'},
+ [0x2042]={d='on'},
+ [0x2043]={d='on'},
+ [0x2044]={d='cs'},
+ [0x2045]={d='on', m=0x2046},
+ [0x2046]={d='on', m=0x2045},
+ [0x2047]={d='on'},
+ [0x2048]={d='on'},
+ [0x2049]={d='on'},
+ [0x204A]={d='on'},
+ [0x204B]={d='on'},
+ [0x204C]={d='on'},
+ [0x204D]={d='on'},
+ [0x204E]={d='on'},
+ [0x204F]={d='on'},
+ [0x2050]={d='on'},
+ [0x2051]={d='on'},
+ [0x2052]={d='on'},
+ [0x2053]={d='on'},
+ [0x2054]={d='on'},
+ [0x2055]={d='on'},
+ [0x2056]={d='on'},
+ [0x2057]={d='on'},
+ [0x2058]={d='on'},
+ [0x2059]={d='on'},
+ [0x205A]={d='on'},
+ [0x205B]={d='on'},
+ [0x205C]={d='on'},
+ [0x205D]={d='on'},
+ [0x205E]={d='on'},
+ [0x205F]={d='ws'},
+ [0x2060]={d='bn'},
+ [0x2061]={d='bn'},
+ [0x2062]={d='bn'},
+ [0x2063]={d='bn'},
+ [0x2064]={d='bn'},
+ [0x2066]={d='lri'},
+ [0x2067]={d='rli'},
+ [0x2068]={d='fsi'},
+ [0x2069]={d='pdi'},
+ [0x206A]={d='bn'},
+ [0x206B]={d='bn'},
+ [0x206C]={d='bn'},
+ [0x206D]={d='bn'},
+ [0x206E]={d='bn'},
+ [0x206F]={d='bn'},
+ [0x2070]={d='en'},
+ [0x2074]={d='en'},
+ [0x2075]={d='en'},
+ [0x2076]={d='en'},
+ [0x2077]={d='en'},
+ [0x2078]={d='en'},
+ [0x2079]={d='en'},
+ [0x207A]={d='es'},
+ [0x207B]={d='es'},
+ [0x207C]={d='on'},
+ [0x207D]={d='on', m=0x207E},
+ [0x207E]={d='on', m=0x207D},
+ [0x2080]={d='en'},
+ [0x2081]={d='en'},
+ [0x2082]={d='en'},
+ [0x2083]={d='en'},
+ [0x2084]={d='en'},
+ [0x2085]={d='en'},
+ [0x2086]={d='en'},
+ [0x2087]={d='en'},
+ [0x2088]={d='en'},
+ [0x2089]={d='en'},
+ [0x208A]={d='es'},
+ [0x208B]={d='es'},
+ [0x208C]={d='on'},
+ [0x208D]={d='on', m=0x208E},
+ [0x208E]={d='on', m=0x208D},
+ [0x20A0]={d='et'},
+ [0x20A1]={d='et'},
+ [0x20A2]={d='et'},
+ [0x20A3]={d='et'},
+ [0x20A4]={d='et'},
+ [0x20A5]={d='et'},
+ [0x20A6]={d='et'},
+ [0x20A7]={d='et'},
+ [0x20A8]={d='et'},
+ [0x20A9]={d='et'},
+ [0x20AA]={d='et'},
+ [0x20AB]={d='et'},
+ [0x20AC]={d='et'},
+ [0x20AD]={d='et'},
+ [0x20AE]={d='et'},
+ [0x20AF]={d='et'},
+ [0x20B0]={d='et'},
+ [0x20B1]={d='et'},
+ [0x20B2]={d='et'},
+ [0x20B3]={d='et'},
+ [0x20B4]={d='et'},
+ [0x20B5]={d='et'},
+ [0x20B6]={d='et'},
+ [0x20B7]={d='et'},
+ [0x20B8]={d='et'},
+ [0x20B9]={d='et'},
+ [0x20BA]={d='et'},
+ [0x20BB]={d='et'},
+ [0x20BC]={d='et'},
+ [0x20BD]={d='et'},
+ [0x20BE]={d='et'},
+ [0x20D0]={d='nsm'},
+ [0x20D1]={d='nsm'},
+ [0x20D2]={d='nsm'},
+ [0x20D3]={d='nsm'},
+ [0x20D4]={d='nsm'},
+ [0x20D5]={d='nsm'},
+ [0x20D6]={d='nsm'},
+ [0x20D7]={d='nsm'},
+ [0x20D8]={d='nsm'},
+ [0x20D9]={d='nsm'},
+ [0x20DA]={d='nsm'},
+ [0x20DB]={d='nsm'},
+ [0x20DC]={d='nsm'},
+ [0x20DD]={d='nsm'},
+ [0x20DE]={d='nsm'},
+ [0x20DF]={d='nsm'},
+ [0x20E0]={d='nsm'},
+ [0x20E1]={d='nsm'},
+ [0x20E2]={d='nsm'},
+ [0x20E3]={d='nsm'},
+ [0x20E4]={d='nsm'},
+ [0x20E5]={d='nsm'},
+ [0x20E6]={d='nsm'},
+ [0x20E7]={d='nsm'},
+ [0x20E8]={d='nsm'},
+ [0x20E9]={d='nsm'},
+ [0x20EA]={d='nsm'},
+ [0x20EB]={d='nsm'},
+ [0x20EC]={d='nsm'},
+ [0x20ED]={d='nsm'},
+ [0x20EE]={d='nsm'},
+ [0x20EF]={d='nsm'},
+ [0x20F0]={d='nsm'},
+ [0x2100]={d='on'},
+ [0x2101]={d='on'},
+ [0x2103]={d='on'},
+ [0x2104]={d='on'},
+ [0x2105]={d='on'},
+ [0x2106]={d='on'},
+ [0x2108]={d='on'},
+ [0x2109]={d='on'},
+ [0x2114]={d='on'},
+ [0x2116]={d='on'},
+ [0x2117]={d='on'},
+ [0x2118]={d='on'},
+ [0x211E]={d='on'},
+ [0x211F]={d='on'},
+ [0x2120]={d='on'},
+ [0x2121]={d='on'},
+ [0x2122]={d='on'},
+ [0x2123]={d='on'},
+ [0x2125]={d='on'},
+ [0x2127]={d='on'},
+ [0x2129]={d='on'},
+ [0x212E]={d='et'},
+ [0x213A]={d='on'},
+ [0x213B]={d='on'},
+ [0x2140]={d='on'},
+ [0x2141]={d='on'},
+ [0x2142]={d='on'},
+ [0x2143]={d='on'},
+ [0x2144]={d='on'},
+ [0x214A]={d='on'},
+ [0x214B]={d='on'},
+ [0x214C]={d='on'},
+ [0x214D]={d='on'},
+ [0x2150]={d='on'},
+ [0x2151]={d='on'},
+ [0x2152]={d='on'},
+ [0x2153]={d='on'},
+ [0x2154]={d='on'},
+ [0x2155]={d='on'},
+ [0x2156]={d='on'},
+ [0x2157]={d='on'},
+ [0x2158]={d='on'},
+ [0x2159]={d='on'},
+ [0x215A]={d='on'},
+ [0x215B]={d='on'},
+ [0x215C]={d='on'},
+ [0x215D]={d='on'},
+ [0x215E]={d='on'},
+ [0x215F]={d='on'},
+ [0x2189]={d='on'},
+ [0x218A]={d='on'},
+ [0x218B]={d='on'},
+ [0x2190]={d='on'},
+ [0x2191]={d='on'},
+ [0x2192]={d='on'},
+ [0x2193]={d='on'},
+ [0x2194]={d='on'},
+ [0x2195]={d='on'},
+ [0x2196]={d='on'},
+ [0x2197]={d='on'},
+ [0x2198]={d='on'},
+ [0x2199]={d='on'},
+ [0x219A]={d='on'},
+ [0x219B]={d='on'},
+ [0x219C]={d='on'},
+ [0x219D]={d='on'},
+ [0x219E]={d='on'},
+ [0x219F]={d='on'},
+ [0x21A0]={d='on'},
+ [0x21A1]={d='on'},
+ [0x21A2]={d='on'},
+ [0x21A3]={d='on'},
+ [0x21A4]={d='on'},
+ [0x21A5]={d='on'},
+ [0x21A6]={d='on'},
+ [0x21A7]={d='on'},
+ [0x21A8]={d='on'},
+ [0x21A9]={d='on'},
+ [0x21AA]={d='on'},
+ [0x21AB]={d='on'},
+ [0x21AC]={d='on'},
+ [0x21AD]={d='on'},
+ [0x21AE]={d='on'},
+ [0x21AF]={d='on'},
+ [0x21B0]={d='on'},
+ [0x21B1]={d='on'},
+ [0x21B2]={d='on'},
+ [0x21B3]={d='on'},
+ [0x21B4]={d='on'},
+ [0x21B5]={d='on'},
+ [0x21B6]={d='on'},
+ [0x21B7]={d='on'},
+ [0x21B8]={d='on'},
+ [0x21B9]={d='on'},
+ [0x21BA]={d='on'},
+ [0x21BB]={d='on'},
+ [0x21BC]={d='on'},
+ [0x21BD]={d='on'},
+ [0x21BE]={d='on'},
+ [0x21BF]={d='on'},
+ [0x21C0]={d='on'},
+ [0x21C1]={d='on'},
+ [0x21C2]={d='on'},
+ [0x21C3]={d='on'},
+ [0x21C4]={d='on'},
+ [0x21C5]={d='on'},
+ [0x21C6]={d='on'},
+ [0x21C7]={d='on'},
+ [0x21C8]={d='on'},
+ [0x21C9]={d='on'},
+ [0x21CA]={d='on'},
+ [0x21CB]={d='on'},
+ [0x21CC]={d='on'},
+ [0x21CD]={d='on'},
+ [0x21CE]={d='on'},
+ [0x21CF]={d='on'},
+ [0x21D0]={d='on'},
+ [0x21D1]={d='on'},
+ [0x21D2]={d='on'},
+ [0x21D3]={d='on'},
+ [0x21D4]={d='on'},
+ [0x21D5]={d='on'},
+ [0x21D6]={d='on'},
+ [0x21D7]={d='on'},
+ [0x21D8]={d='on'},
+ [0x21D9]={d='on'},
+ [0x21DA]={d='on'},
+ [0x21DB]={d='on'},
+ [0x21DC]={d='on'},
+ [0x21DD]={d='on'},
+ [0x21DE]={d='on'},
+ [0x21DF]={d='on'},
+ [0x21E0]={d='on'},
+ [0x21E1]={d='on'},
+ [0x21E2]={d='on'},
+ [0x21E3]={d='on'},
+ [0x21E4]={d='on'},
+ [0x21E5]={d='on'},
+ [0x21E6]={d='on'},
+ [0x21E7]={d='on'},
+ [0x21E8]={d='on'},
+ [0x21E9]={d='on'},
+ [0x21EA]={d='on'},
+ [0x21EB]={d='on'},
+ [0x21EC]={d='on'},
+ [0x21ED]={d='on'},
+ [0x21EE]={d='on'},
+ [0x21EF]={d='on'},
+ [0x21F0]={d='on'},
+ [0x21F1]={d='on'},
+ [0x21F2]={d='on'},
+ [0x21F3]={d='on'},
+ [0x21F4]={d='on'},
+ [0x21F5]={d='on'},
+ [0x21F6]={d='on'},
+ [0x21F7]={d='on'},
+ [0x21F8]={d='on'},
+ [0x21F9]={d='on'},
+ [0x21FA]={d='on'},
+ [0x21FB]={d='on'},
+ [0x21FC]={d='on'},
+ [0x21FD]={d='on'},
+ [0x21FE]={d='on'},
+ [0x21FF]={d='on'},
+ [0x2200]={d='on'},
+ [0x2201]={d='on'},
+ [0x2202]={d='on'},
+ [0x2203]={d='on'},
+ [0x2204]={d='on'},
+ [0x2205]={d='on'},
+ [0x2206]={d='on'},
+ [0x2207]={d='on'},
+ [0x2208]={d='on', m=0x220B},
+ [0x2209]={d='on', m=0x220C},
+ [0x220A]={d='on', m=0x220D},
+ [0x220B]={d='on', m=0x2208},
+ [0x220C]={d='on', m=0x2209},
+ [0x220D]={d='on', m=0x220A},
+ [0x220E]={d='on'},
+ [0x220F]={d='on'},
+ [0x2210]={d='on'},
+ [0x2211]={d='on'},
+ [0x2212]={d='es'},
+ [0x2213]={d='et'},
+ [0x2214]={d='on'},
+ [0x2215]={d='on', m=0x29F5},
+ [0x2216]={d='on'},
+ [0x2217]={d='on'},
+ [0x2218]={d='on'},
+ [0x2219]={d='on'},
+ [0x221A]={d='on'},
+ [0x221B]={d='on'},
+ [0x221C]={d='on'},
+ [0x221D]={d='on'},
+ [0x221E]={d='on'},
+ [0x221F]={d='on'},
+ [0x2220]={d='on'},
+ [0x2221]={d='on'},
+ [0x2222]={d='on'},
+ [0x2223]={d='on'},
+ [0x2224]={d='on'},
+ [0x2225]={d='on'},
+ [0x2226]={d='on'},
+ [0x2227]={d='on'},
+ [0x2228]={d='on'},
+ [0x2229]={d='on'},
+ [0x222A]={d='on'},
+ [0x222B]={d='on'},
+ [0x222C]={d='on'},
+ [0x222D]={d='on'},
+ [0x222E]={d='on'},
+ [0x222F]={d='on'},
+ [0x2230]={d='on'},
+ [0x2231]={d='on'},
+ [0x2232]={d='on'},
+ [0x2233]={d='on'},
+ [0x2234]={d='on'},
+ [0x2235]={d='on'},
+ [0x2236]={d='on'},
+ [0x2237]={d='on'},
+ [0x2238]={d='on'},
+ [0x2239]={d='on'},
+ [0x223A]={d='on'},
+ [0x223B]={d='on'},
+ [0x223C]={d='on', m=0x223D},
+ [0x223D]={d='on', m=0x223C},
+ [0x223E]={d='on'},
+ [0x223F]={d='on'},
+ [0x2240]={d='on'},
+ [0x2241]={d='on'},
+ [0x2242]={d='on'},
+ [0x2243]={d='on', m=0x22CD},
+ [0x2244]={d='on'},
+ [0x2245]={d='on'},
+ [0x2246]={d='on'},
+ [0x2247]={d='on'},
+ [0x2248]={d='on'},
+ [0x2249]={d='on'},
+ [0x224A]={d='on'},
+ [0x224B]={d='on'},
+ [0x224C]={d='on'},
+ [0x224D]={d='on'},
+ [0x224E]={d='on'},
+ [0x224F]={d='on'},
+ [0x2250]={d='on'},
+ [0x2251]={d='on'},
+ [0x2252]={d='on', m=0x2253},
+ [0x2253]={d='on', m=0x2252},
+ [0x2254]={d='on', m=0x2255},
+ [0x2255]={d='on', m=0x2254},
+ [0x2256]={d='on'},
+ [0x2257]={d='on'},
+ [0x2258]={d='on'},
+ [0x2259]={d='on'},
+ [0x225A]={d='on'},
+ [0x225B]={d='on'},
+ [0x225C]={d='on'},
+ [0x225D]={d='on'},
+ [0x225E]={d='on'},
+ [0x225F]={d='on'},
+ [0x2260]={d='on'},
+ [0x2261]={d='on'},
+ [0x2262]={d='on'},
+ [0x2263]={d='on'},
+ [0x2264]={d='on', m=0x2265},
+ [0x2265]={d='on', m=0x2264},
+ [0x2266]={d='on', m=0x2267},
+ [0x2267]={d='on', m=0x2266},
+ [0x2268]={d='on', m=0x2269},
+ [0x2269]={d='on', m=0x2268},
+ [0x226A]={d='on', m=0x226B},
+ [0x226B]={d='on', m=0x226A},
+ [0x226C]={d='on'},
+ [0x226D]={d='on'},
+ [0x226E]={d='on', m=0x226F},
+ [0x226F]={d='on', m=0x226E},
+ [0x2270]={d='on', m=0x2271},
+ [0x2271]={d='on', m=0x2270},
+ [0x2272]={d='on', m=0x2273},
+ [0x2273]={d='on', m=0x2272},
+ [0x2274]={d='on', m=0x2275},
+ [0x2275]={d='on', m=0x2274},
+ [0x2276]={d='on', m=0x2277},
+ [0x2277]={d='on', m=0x2276},
+ [0x2278]={d='on', m=0x2279},
+ [0x2279]={d='on', m=0x2278},
+ [0x227A]={d='on', m=0x227B},
+ [0x227B]={d='on', m=0x227A},
+ [0x227C]={d='on', m=0x227D},
+ [0x227D]={d='on', m=0x227C},
+ [0x227E]={d='on', m=0x227F},
+ [0x227F]={d='on', m=0x227E},
+ [0x2280]={d='on', m=0x2281},
+ [0x2281]={d='on', m=0x2280},
+ [0x2282]={d='on', m=0x2283},
+ [0x2283]={d='on', m=0x2282},
+ [0x2284]={d='on', m=0x2285},
+ [0x2285]={d='on', m=0x2284},
+ [0x2286]={d='on', m=0x2287},
+ [0x2287]={d='on', m=0x2286},
+ [0x2288]={d='on', m=0x2289},
+ [0x2289]={d='on', m=0x2288},
+ [0x228A]={d='on', m=0x228B},
+ [0x228B]={d='on', m=0x228A},
+ [0x228C]={d='on'},
+ [0x228D]={d='on'},
+ [0x228E]={d='on'},
+ [0x228F]={d='on', m=0x2290},
+ [0x2290]={d='on', m=0x228F},
+ [0x2291]={d='on', m=0x2292},
+ [0x2292]={d='on', m=0x2291},
+ [0x2293]={d='on'},
+ [0x2294]={d='on'},
+ [0x2295]={d='on'},
+ [0x2296]={d='on'},
+ [0x2297]={d='on'},
+ [0x2298]={d='on', m=0x29B8},
+ [0x2299]={d='on'},
+ [0x229A]={d='on'},
+ [0x229B]={d='on'},
+ [0x229C]={d='on'},
+ [0x229D]={d='on'},
+ [0x229E]={d='on'},
+ [0x229F]={d='on'},
+ [0x22A0]={d='on'},
+ [0x22A1]={d='on'},
+ [0x22A2]={d='on', m=0x22A3},
+ [0x22A3]={d='on', m=0x22A2},
+ [0x22A4]={d='on'},
+ [0x22A5]={d='on'},
+ [0x22A6]={d='on', m=0x2ADE},
+ [0x22A7]={d='on'},
+ [0x22A8]={d='on', m=0x2AE4},
+ [0x22A9]={d='on', m=0x2AE3},
+ [0x22AA]={d='on'},
+ [0x22AB]={d='on', m=0x2AE5},
+ [0x22AC]={d='on'},
+ [0x22AD]={d='on'},
+ [0x22AE]={d='on'},
+ [0x22AF]={d='on'},
+ [0x22B0]={d='on', m=0x22B1},
+ [0x22B1]={d='on', m=0x22B0},
+ [0x22B2]={d='on', m=0x22B3},
+ [0x22B3]={d='on', m=0x22B2},
+ [0x22B4]={d='on', m=0x22B5},
+ [0x22B5]={d='on', m=0x22B4},
+ [0x22B6]={d='on', m=0x22B7},
+ [0x22B7]={d='on', m=0x22B6},
+ [0x22B8]={d='on'},
+ [0x22B9]={d='on'},
+ [0x22BA]={d='on'},
+ [0x22BB]={d='on'},
+ [0x22BC]={d='on'},
+ [0x22BD]={d='on'},
+ [0x22BE]={d='on'},
+ [0x22BF]={d='on'},
+ [0x22C0]={d='on'},
+ [0x22C1]={d='on'},
+ [0x22C2]={d='on'},
+ [0x22C3]={d='on'},
+ [0x22C4]={d='on'},
+ [0x22C5]={d='on'},
+ [0x22C6]={d='on'},
+ [0x22C7]={d='on'},
+ [0x22C8]={d='on'},
+ [0x22C9]={d='on', m=0x22CA},
+ [0x22CA]={d='on', m=0x22C9},
+ [0x22CB]={d='on', m=0x22CC},
+ [0x22CC]={d='on', m=0x22CB},
+ [0x22CD]={d='on', m=0x2243},
+ [0x22CE]={d='on'},
+ [0x22CF]={d='on'},
+ [0x22D0]={d='on', m=0x22D1},
+ [0x22D1]={d='on', m=0x22D0},
+ [0x22D2]={d='on'},
+ [0x22D3]={d='on'},
+ [0x22D4]={d='on'},
+ [0x22D5]={d='on'},
+ [0x22D6]={d='on', m=0x22D7},
+ [0x22D7]={d='on', m=0x22D6},
+ [0x22D8]={d='on', m=0x22D9},
+ [0x22D9]={d='on', m=0x22D8},
+ [0x22DA]={d='on', m=0x22DB},
+ [0x22DB]={d='on', m=0x22DA},
+ [0x22DC]={d='on', m=0x22DD},
+ [0x22DD]={d='on', m=0x22DC},
+ [0x22DE]={d='on', m=0x22DF},
+ [0x22DF]={d='on', m=0x22DE},
+ [0x22E0]={d='on', m=0x22E1},
+ [0x22E1]={d='on', m=0x22E0},
+ [0x22E2]={d='on', m=0x22E3},
+ [0x22E3]={d='on', m=0x22E2},
+ [0x22E4]={d='on', m=0x22E5},
+ [0x22E5]={d='on', m=0x22E4},
+ [0x22E6]={d='on', m=0x22E7},
+ [0x22E7]={d='on', m=0x22E6},
+ [0x22E8]={d='on', m=0x22E9},
+ [0x22E9]={d='on', m=0x22E8},
+ [0x22EA]={d='on', m=0x22EB},
+ [0x22EB]={d='on', m=0x22EA},
+ [0x22EC]={d='on', m=0x22ED},
+ [0x22ED]={d='on', m=0x22EC},
+ [0x22EE]={d='on'},
+ [0x22EF]={d='on'},
+ [0x22F0]={d='on', m=0x22F1},
+ [0x22F1]={d='on', m=0x22F0},
+ [0x22F2]={d='on', m=0x22FA},
+ [0x22F3]={d='on', m=0x22FB},
+ [0x22F4]={d='on', m=0x22FC},
+ [0x22F5]={d='on'},
+ [0x22F6]={d='on', m=0x22FD},
+ [0x22F7]={d='on', m=0x22FE},
+ [0x22F8]={d='on'},
+ [0x22F9]={d='on'},
+ [0x22FA]={d='on', m=0x22F2},
+ [0x22FB]={d='on', m=0x22F3},
+ [0x22FC]={d='on', m=0x22F4},
+ [0x22FD]={d='on', m=0x22F6},
+ [0x22FE]={d='on', m=0x22F7},
+ [0x22FF]={d='on'},
+ [0x2300]={d='on'},
+ [0x2301]={d='on'},
+ [0x2302]={d='on'},
+ [0x2303]={d='on'},
+ [0x2304]={d='on'},
+ [0x2305]={d='on'},
+ [0x2306]={d='on'},
+ [0x2307]={d='on'},
+ [0x2308]={d='on', m=0x2309},
+ [0x2309]={d='on', m=0x2308},
+ [0x230A]={d='on', m=0x230B},
+ [0x230B]={d='on', m=0x230A},
+ [0x230C]={d='on'},
+ [0x230D]={d='on'},
+ [0x230E]={d='on'},
+ [0x230F]={d='on'},
+ [0x2310]={d='on'},
+ [0x2311]={d='on'},
+ [0x2312]={d='on'},
+ [0x2313]={d='on'},
+ [0x2314]={d='on'},
+ [0x2315]={d='on'},
+ [0x2316]={d='on'},
+ [0x2317]={d='on'},
+ [0x2318]={d='on'},
+ [0x2319]={d='on'},
+ [0x231A]={d='on'},
+ [0x231B]={d='on'},
+ [0x231C]={d='on'},
+ [0x231D]={d='on'},
+ [0x231E]={d='on'},
+ [0x231F]={d='on'},
+ [0x2320]={d='on'},
+ [0x2321]={d='on'},
+ [0x2322]={d='on'},
+ [0x2323]={d='on'},
+ [0x2324]={d='on'},
+ [0x2325]={d='on'},
+ [0x2326]={d='on'},
+ [0x2327]={d='on'},
+ [0x2328]={d='on'},
+ [0x2329]={d='on', m=0x232A},
+ [0x232A]={d='on', m=0x2329},
+ [0x232B]={d='on'},
+ [0x232C]={d='on'},
+ [0x232D]={d='on'},
+ [0x232E]={d='on'},
+ [0x232F]={d='on'},
+ [0x2330]={d='on'},
+ [0x2331]={d='on'},
+ [0x2332]={d='on'},
+ [0x2333]={d='on'},
+ [0x2334]={d='on'},
+ [0x2335]={d='on'},
+ [0x237B]={d='on'},
+ [0x237C]={d='on'},
+ [0x237D]={d='on'},
+ [0x237E]={d='on'},
+ [0x237F]={d='on'},
+ [0x2380]={d='on'},
+ [0x2381]={d='on'},
+ [0x2382]={d='on'},
+ [0x2383]={d='on'},
+ [0x2384]={d='on'},
+ [0x2385]={d='on'},
+ [0x2386]={d='on'},
+ [0x2387]={d='on'},
+ [0x2388]={d='on'},
+ [0x2389]={d='on'},
+ [0x238A]={d='on'},
+ [0x238B]={d='on'},
+ [0x238C]={d='on'},
+ [0x238D]={d='on'},
+ [0x238E]={d='on'},
+ [0x238F]={d='on'},
+ [0x2390]={d='on'},
+ [0x2391]={d='on'},
+ [0x2392]={d='on'},
+ [0x2393]={d='on'},
+ [0x2394]={d='on'},
+ [0x2396]={d='on'},
+ [0x2397]={d='on'},
+ [0x2398]={d='on'},
+ [0x2399]={d='on'},
+ [0x239A]={d='on'},
+ [0x239B]={d='on'},
+ [0x239C]={d='on'},
+ [0x239D]={d='on'},
+ [0x239E]={d='on'},
+ [0x239F]={d='on'},
+ [0x23A0]={d='on'},
+ [0x23A1]={d='on'},
+ [0x23A2]={d='on'},
+ [0x23A3]={d='on'},
+ [0x23A4]={d='on'},
+ [0x23A5]={d='on'},
+ [0x23A6]={d='on'},
+ [0x23A7]={d='on'},
+ [0x23A8]={d='on'},
+ [0x23A9]={d='on'},
+ [0x23AA]={d='on'},
+ [0x23AB]={d='on'},
+ [0x23AC]={d='on'},
+ [0x23AD]={d='on'},
+ [0x23AE]={d='on'},
+ [0x23AF]={d='on'},
+ [0x23B0]={d='on'},
+ [0x23B1]={d='on'},
+ [0x23B2]={d='on'},
+ [0x23B3]={d='on'},
+ [0x23B4]={d='on'},
+ [0x23B5]={d='on'},
+ [0x23B6]={d='on'},
+ [0x23B7]={d='on'},
+ [0x23B8]={d='on'},
+ [0x23B9]={d='on'},
+ [0x23BA]={d='on'},
+ [0x23BB]={d='on'},
+ [0x23BC]={d='on'},
+ [0x23BD]={d='on'},
+ [0x23BE]={d='on'},
+ [0x23BF]={d='on'},
+ [0x23C0]={d='on'},
+ [0x23C1]={d='on'},
+ [0x23C2]={d='on'},
+ [0x23C3]={d='on'},
+ [0x23C4]={d='on'},
+ [0x23C5]={d='on'},
+ [0x23C6]={d='on'},
+ [0x23C7]={d='on'},
+ [0x23C8]={d='on'},
+ [0x23C9]={d='on'},
+ [0x23CA]={d='on'},
+ [0x23CB]={d='on'},
+ [0x23CC]={d='on'},
+ [0x23CD]={d='on'},
+ [0x23CE]={d='on'},
+ [0x23CF]={d='on'},
+ [0x23D0]={d='on'},
+ [0x23D1]={d='on'},
+ [0x23D2]={d='on'},
+ [0x23D3]={d='on'},
+ [0x23D4]={d='on'},
+ [0x23D5]={d='on'},
+ [0x23D6]={d='on'},
+ [0x23D7]={d='on'},
+ [0x23D8]={d='on'},
+ [0x23D9]={d='on'},
+ [0x23DA]={d='on'},
+ [0x23DB]={d='on'},
+ [0x23DC]={d='on'},
+ [0x23DD]={d='on'},
+ [0x23DE]={d='on'},
+ [0x23DF]={d='on'},
+ [0x23E0]={d='on'},
+ [0x23E1]={d='on'},
+ [0x23E2]={d='on'},
+ [0x23E3]={d='on'},
+ [0x23E4]={d='on'},
+ [0x23E5]={d='on'},
+ [0x23E6]={d='on'},
+ [0x23E7]={d='on'},
+ [0x23E8]={d='on'},
+ [0x23E9]={d='on'},
+ [0x23EA]={d='on'},
+ [0x23EB]={d='on'},
+ [0x23EC]={d='on'},
+ [0x23ED]={d='on'},
+ [0x23EE]={d='on'},
+ [0x23EF]={d='on'},
+ [0x23F0]={d='on'},
+ [0x23F1]={d='on'},
+ [0x23F2]={d='on'},
+ [0x23F3]={d='on'},
+ [0x23F4]={d='on'},
+ [0x23F5]={d='on'},
+ [0x23F6]={d='on'},
+ [0x23F7]={d='on'},
+ [0x23F8]={d='on'},
+ [0x23F9]={d='on'},
+ [0x23FA]={d='on'},
+ [0x23FB]={d='on'},
+ [0x23FC]={d='on'},
+ [0x23FD]={d='on'},
+ [0x23FE]={d='on'},
+ [0x2400]={d='on'},
+ [0x2401]={d='on'},
+ [0x2402]={d='on'},
+ [0x2403]={d='on'},
+ [0x2404]={d='on'},
+ [0x2405]={d='on'},
+ [0x2406]={d='on'},
+ [0x2407]={d='on'},
+ [0x2408]={d='on'},
+ [0x2409]={d='on'},
+ [0x240A]={d='on'},
+ [0x240B]={d='on'},
+ [0x240C]={d='on'},
+ [0x240D]={d='on'},
+ [0x240E]={d='on'},
+ [0x240F]={d='on'},
+ [0x2410]={d='on'},
+ [0x2411]={d='on'},
+ [0x2412]={d='on'},
+ [0x2413]={d='on'},
+ [0x2414]={d='on'},
+ [0x2415]={d='on'},
+ [0x2416]={d='on'},
+ [0x2417]={d='on'},
+ [0x2418]={d='on'},
+ [0x2419]={d='on'},
+ [0x241A]={d='on'},
+ [0x241B]={d='on'},
+ [0x241C]={d='on'},
+ [0x241D]={d='on'},
+ [0x241E]={d='on'},
+ [0x241F]={d='on'},
+ [0x2420]={d='on'},
+ [0x2421]={d='on'},
+ [0x2422]={d='on'},
+ [0x2423]={d='on'},
+ [0x2424]={d='on'},
+ [0x2425]={d='on'},
+ [0x2426]={d='on'},
+ [0x2440]={d='on'},
+ [0x2441]={d='on'},
+ [0x2442]={d='on'},
+ [0x2443]={d='on'},
+ [0x2444]={d='on'},
+ [0x2445]={d='on'},
+ [0x2446]={d='on'},
+ [0x2447]={d='on'},
+ [0x2448]={d='on'},
+ [0x2449]={d='on'},
+ [0x244A]={d='on'},
+ [0x2460]={d='on'},
+ [0x2461]={d='on'},
+ [0x2462]={d='on'},
+ [0x2463]={d='on'},
+ [0x2464]={d='on'},
+ [0x2465]={d='on'},
+ [0x2466]={d='on'},
+ [0x2467]={d='on'},
+ [0x2468]={d='on'},
+ [0x2469]={d='on'},
+ [0x246A]={d='on'},
+ [0x246B]={d='on'},
+ [0x246C]={d='on'},
+ [0x246D]={d='on'},
+ [0x246E]={d='on'},
+ [0x246F]={d='on'},
+ [0x2470]={d='on'},
+ [0x2471]={d='on'},
+ [0x2472]={d='on'},
+ [0x2473]={d='on'},
+ [0x2474]={d='on'},
+ [0x2475]={d='on'},
+ [0x2476]={d='on'},
+ [0x2477]={d='on'},
+ [0x2478]={d='on'},
+ [0x2479]={d='on'},
+ [0x247A]={d='on'},
+ [0x247B]={d='on'},
+ [0x247C]={d='on'},
+ [0x247D]={d='on'},
+ [0x247E]={d='on'},
+ [0x247F]={d='on'},
+ [0x2480]={d='on'},
+ [0x2481]={d='on'},
+ [0x2482]={d='on'},
+ [0x2483]={d='on'},
+ [0x2484]={d='on'},
+ [0x2485]={d='on'},
+ [0x2486]={d='on'},
+ [0x2487]={d='on'},
+ [0x2488]={d='en'},
+ [0x2489]={d='en'},
+ [0x248A]={d='en'},
+ [0x248B]={d='en'},
+ [0x248C]={d='en'},
+ [0x248D]={d='en'},
+ [0x248E]={d='en'},
+ [0x248F]={d='en'},
+ [0x2490]={d='en'},
+ [0x2491]={d='en'},
+ [0x2492]={d='en'},
+ [0x2493]={d='en'},
+ [0x2494]={d='en'},
+ [0x2495]={d='en'},
+ [0x2496]={d='en'},
+ [0x2497]={d='en'},
+ [0x2498]={d='en'},
+ [0x2499]={d='en'},
+ [0x249A]={d='en'},
+ [0x249B]={d='en'},
+ [0x24EA]={d='on'},
+ [0x24EB]={d='on'},
+ [0x24EC]={d='on'},
+ [0x24ED]={d='on'},
+ [0x24EE]={d='on'},
+ [0x24EF]={d='on'},
+ [0x24F0]={d='on'},
+ [0x24F1]={d='on'},
+ [0x24F2]={d='on'},
+ [0x24F3]={d='on'},
+ [0x24F4]={d='on'},
+ [0x24F5]={d='on'},
+ [0x24F6]={d='on'},
+ [0x24F7]={d='on'},
+ [0x24F8]={d='on'},
+ [0x24F9]={d='on'},
+ [0x24FA]={d='on'},
+ [0x24FB]={d='on'},
+ [0x24FC]={d='on'},
+ [0x24FD]={d='on'},
+ [0x24FE]={d='on'},
+ [0x24FF]={d='on'},
+ [0x2500]={d='on'},
+ [0x2501]={d='on'},
+ [0x2502]={d='on'},
+ [0x2503]={d='on'},
+ [0x2504]={d='on'},
+ [0x2505]={d='on'},
+ [0x2506]={d='on'},
+ [0x2507]={d='on'},
+ [0x2508]={d='on'},
+ [0x2509]={d='on'},
+ [0x250A]={d='on'},
+ [0x250B]={d='on'},
+ [0x250C]={d='on'},
+ [0x250D]={d='on'},
+ [0x250E]={d='on'},
+ [0x250F]={d='on'},
+ [0x2510]={d='on'},
+ [0x2511]={d='on'},
+ [0x2512]={d='on'},
+ [0x2513]={d='on'},
+ [0x2514]={d='on'},
+ [0x2515]={d='on'},
+ [0x2516]={d='on'},
+ [0x2517]={d='on'},
+ [0x2518]={d='on'},
+ [0x2519]={d='on'},
+ [0x251A]={d='on'},
+ [0x251B]={d='on'},
+ [0x251C]={d='on'},
+ [0x251D]={d='on'},
+ [0x251E]={d='on'},
+ [0x251F]={d='on'},
+ [0x2520]={d='on'},
+ [0x2521]={d='on'},
+ [0x2522]={d='on'},
+ [0x2523]={d='on'},
+ [0x2524]={d='on'},
+ [0x2525]={d='on'},
+ [0x2526]={d='on'},
+ [0x2527]={d='on'},
+ [0x2528]={d='on'},
+ [0x2529]={d='on'},
+ [0x252A]={d='on'},
+ [0x252B]={d='on'},
+ [0x252C]={d='on'},
+ [0x252D]={d='on'},
+ [0x252E]={d='on'},
+ [0x252F]={d='on'},
+ [0x2530]={d='on'},
+ [0x2531]={d='on'},
+ [0x2532]={d='on'},
+ [0x2533]={d='on'},
+ [0x2534]={d='on'},
+ [0x2535]={d='on'},
+ [0x2536]={d='on'},
+ [0x2537]={d='on'},
+ [0x2538]={d='on'},
+ [0x2539]={d='on'},
+ [0x253A]={d='on'},
+ [0x253B]={d='on'},
+ [0x253C]={d='on'},
+ [0x253D]={d='on'},
+ [0x253E]={d='on'},
+ [0x253F]={d='on'},
+ [0x2540]={d='on'},
+ [0x2541]={d='on'},
+ [0x2542]={d='on'},
+ [0x2543]={d='on'},
+ [0x2544]={d='on'},
+ [0x2545]={d='on'},
+ [0x2546]={d='on'},
+ [0x2547]={d='on'},
+ [0x2548]={d='on'},
+ [0x2549]={d='on'},
+ [0x254A]={d='on'},
+ [0x254B]={d='on'},
+ [0x254C]={d='on'},
+ [0x254D]={d='on'},
+ [0x254E]={d='on'},
+ [0x254F]={d='on'},
+ [0x2550]={d='on'},
+ [0x2551]={d='on'},
+ [0x2552]={d='on'},
+ [0x2553]={d='on'},
+ [0x2554]={d='on'},
+ [0x2555]={d='on'},
+ [0x2556]={d='on'},
+ [0x2557]={d='on'},
+ [0x2558]={d='on'},
+ [0x2559]={d='on'},
+ [0x255A]={d='on'},
+ [0x255B]={d='on'},
+ [0x255C]={d='on'},
+ [0x255D]={d='on'},
+ [0x255E]={d='on'},
+ [0x255F]={d='on'},
+ [0x2560]={d='on'},
+ [0x2561]={d='on'},
+ [0x2562]={d='on'},
+ [0x2563]={d='on'},
+ [0x2564]={d='on'},
+ [0x2565]={d='on'},
+ [0x2566]={d='on'},
+ [0x2567]={d='on'},
+ [0x2568]={d='on'},
+ [0x2569]={d='on'},
+ [0x256A]={d='on'},
+ [0x256B]={d='on'},
+ [0x256C]={d='on'},
+ [0x256D]={d='on'},
+ [0x256E]={d='on'},
+ [0x256F]={d='on'},
+ [0x2570]={d='on'},
+ [0x2571]={d='on'},
+ [0x2572]={d='on'},
+ [0x2573]={d='on'},
+ [0x2574]={d='on'},
+ [0x2575]={d='on'},
+ [0x2576]={d='on'},
+ [0x2577]={d='on'},
+ [0x2578]={d='on'},
+ [0x2579]={d='on'},
+ [0x257A]={d='on'},
+ [0x257B]={d='on'},
+ [0x257C]={d='on'},
+ [0x257D]={d='on'},
+ [0x257E]={d='on'},
+ [0x257F]={d='on'},
+ [0x2580]={d='on'},
+ [0x2581]={d='on'},
+ [0x2582]={d='on'},
+ [0x2583]={d='on'},
+ [0x2584]={d='on'},
+ [0x2585]={d='on'},
+ [0x2586]={d='on'},
+ [0x2587]={d='on'},
+ [0x2588]={d='on'},
+ [0x2589]={d='on'},
+ [0x258A]={d='on'},
+ [0x258B]={d='on'},
+ [0x258C]={d='on'},
+ [0x258D]={d='on'},
+ [0x258E]={d='on'},
+ [0x258F]={d='on'},
+ [0x2590]={d='on'},
+ [0x2591]={d='on'},
+ [0x2592]={d='on'},
+ [0x2593]={d='on'},
+ [0x2594]={d='on'},
+ [0x2595]={d='on'},
+ [0x2596]={d='on'},
+ [0x2597]={d='on'},
+ [0x2598]={d='on'},
+ [0x2599]={d='on'},
+ [0x259A]={d='on'},
+ [0x259B]={d='on'},
+ [0x259C]={d='on'},
+ [0x259D]={d='on'},
+ [0x259E]={d='on'},
+ [0x259F]={d='on'},
+ [0x25A0]={d='on'},
+ [0x25A1]={d='on'},
+ [0x25A2]={d='on'},
+ [0x25A3]={d='on'},
+ [0x25A4]={d='on'},
+ [0x25A5]={d='on'},
+ [0x25A6]={d='on'},
+ [0x25A7]={d='on'},
+ [0x25A8]={d='on'},
+ [0x25A9]={d='on'},
+ [0x25AA]={d='on'},
+ [0x25AB]={d='on'},
+ [0x25AC]={d='on'},
+ [0x25AD]={d='on'},
+ [0x25AE]={d='on'},
+ [0x25AF]={d='on'},
+ [0x25B0]={d='on'},
+ [0x25B1]={d='on'},
+ [0x25B2]={d='on'},
+ [0x25B3]={d='on'},
+ [0x25B4]={d='on'},
+ [0x25B5]={d='on'},
+ [0x25B6]={d='on'},
+ [0x25B7]={d='on'},
+ [0x25B8]={d='on'},
+ [0x25B9]={d='on'},
+ [0x25BA]={d='on'},
+ [0x25BB]={d='on'},
+ [0x25BC]={d='on'},
+ [0x25BD]={d='on'},
+ [0x25BE]={d='on'},
+ [0x25BF]={d='on'},
+ [0x25C0]={d='on'},
+ [0x25C1]={d='on'},
+ [0x25C2]={d='on'},
+ [0x25C3]={d='on'},
+ [0x25C4]={d='on'},
+ [0x25C5]={d='on'},
+ [0x25C6]={d='on'},
+ [0x25C7]={d='on'},
+ [0x25C8]={d='on'},
+ [0x25C9]={d='on'},
+ [0x25CA]={d='on'},
+ [0x25CB]={d='on'},
+ [0x25CC]={d='on'},
+ [0x25CD]={d='on'},
+ [0x25CE]={d='on'},
+ [0x25CF]={d='on'},
+ [0x25D0]={d='on'},
+ [0x25D1]={d='on'},
+ [0x25D2]={d='on'},
+ [0x25D3]={d='on'},
+ [0x25D4]={d='on'},
+ [0x25D5]={d='on'},
+ [0x25D6]={d='on'},
+ [0x25D7]={d='on'},
+ [0x25D8]={d='on'},
+ [0x25D9]={d='on'},
+ [0x25DA]={d='on'},
+ [0x25DB]={d='on'},
+ [0x25DC]={d='on'},
+ [0x25DD]={d='on'},
+ [0x25DE]={d='on'},
+ [0x25DF]={d='on'},
+ [0x25E0]={d='on'},
+ [0x25E1]={d='on'},
+ [0x25E2]={d='on'},
+ [0x25E3]={d='on'},
+ [0x25E4]={d='on'},
+ [0x25E5]={d='on'},
+ [0x25E6]={d='on'},
+ [0x25E7]={d='on'},
+ [0x25E8]={d='on'},
+ [0x25E9]={d='on'},
+ [0x25EA]={d='on'},
+ [0x25EB]={d='on'},
+ [0x25EC]={d='on'},
+ [0x25ED]={d='on'},
+ [0x25EE]={d='on'},
+ [0x25EF]={d='on'},
+ [0x25F0]={d='on'},
+ [0x25F1]={d='on'},
+ [0x25F2]={d='on'},
+ [0x25F3]={d='on'},
+ [0x25F4]={d='on'},
+ [0x25F5]={d='on'},
+ [0x25F6]={d='on'},
+ [0x25F7]={d='on'},
+ [0x25F8]={d='on'},
+ [0x25F9]={d='on'},
+ [0x25FA]={d='on'},
+ [0x25FB]={d='on'},
+ [0x25FC]={d='on'},
+ [0x25FD]={d='on'},
+ [0x25FE]={d='on'},
+ [0x25FF]={d='on'},
+ [0x2600]={d='on'},
+ [0x2601]={d='on'},
+ [0x2602]={d='on'},
+ [0x2603]={d='on'},
+ [0x2604]={d='on'},
+ [0x2605]={d='on'},
+ [0x2606]={d='on'},
+ [0x2607]={d='on'},
+ [0x2608]={d='on'},
+ [0x2609]={d='on'},
+ [0x260A]={d='on'},
+ [0x260B]={d='on'},
+ [0x260C]={d='on'},
+ [0x260D]={d='on'},
+ [0x260E]={d='on'},
+ [0x260F]={d='on'},
+ [0x2610]={d='on'},
+ [0x2611]={d='on'},
+ [0x2612]={d='on'},
+ [0x2613]={d='on'},
+ [0x2614]={d='on'},
+ [0x2615]={d='on'},
+ [0x2616]={d='on'},
+ [0x2617]={d='on'},
+ [0x2618]={d='on'},
+ [0x2619]={d='on'},
+ [0x261A]={d='on'},
+ [0x261B]={d='on'},
+ [0x261C]={d='on'},
+ [0x261D]={d='on'},
+ [0x261E]={d='on'},
+ [0x261F]={d='on'},
+ [0x2620]={d='on'},
+ [0x2621]={d='on'},
+ [0x2622]={d='on'},
+ [0x2623]={d='on'},
+ [0x2624]={d='on'},
+ [0x2625]={d='on'},
+ [0x2626]={d='on'},
+ [0x2627]={d='on'},
+ [0x2628]={d='on'},
+ [0x2629]={d='on'},
+ [0x262A]={d='on'},
+ [0x262B]={d='on'},
+ [0x262C]={d='on'},
+ [0x262D]={d='on'},
+ [0x262E]={d='on'},
+ [0x262F]={d='on'},
+ [0x2630]={d='on'},
+ [0x2631]={d='on'},
+ [0x2632]={d='on'},
+ [0x2633]={d='on'},
+ [0x2634]={d='on'},
+ [0x2635]={d='on'},
+ [0x2636]={d='on'},
+ [0x2637]={d='on'},
+ [0x2638]={d='on'},
+ [0x2639]={d='on'},
+ [0x263A]={d='on'},
+ [0x263B]={d='on'},
+ [0x263C]={d='on'},
+ [0x263D]={d='on'},
+ [0x263E]={d='on'},
+ [0x263F]={d='on'},
+ [0x2640]={d='on'},
+ [0x2641]={d='on'},
+ [0x2642]={d='on'},
+ [0x2643]={d='on'},
+ [0x2644]={d='on'},
+ [0x2645]={d='on'},
+ [0x2646]={d='on'},
+ [0x2647]={d='on'},
+ [0x2648]={d='on'},
+ [0x2649]={d='on'},
+ [0x264A]={d='on'},
+ [0x264B]={d='on'},
+ [0x264C]={d='on'},
+ [0x264D]={d='on'},
+ [0x264E]={d='on'},
+ [0x264F]={d='on'},
+ [0x2650]={d='on'},
+ [0x2651]={d='on'},
+ [0x2652]={d='on'},
+ [0x2653]={d='on'},
+ [0x2654]={d='on'},
+ [0x2655]={d='on'},
+ [0x2656]={d='on'},
+ [0x2657]={d='on'},
+ [0x2658]={d='on'},
+ [0x2659]={d='on'},
+ [0x265A]={d='on'},
+ [0x265B]={d='on'},
+ [0x265C]={d='on'},
+ [0x265D]={d='on'},
+ [0x265E]={d='on'},
+ [0x265F]={d='on'},
+ [0x2660]={d='on'},
+ [0x2661]={d='on'},
+ [0x2662]={d='on'},
+ [0x2663]={d='on'},
+ [0x2664]={d='on'},
+ [0x2665]={d='on'},
+ [0x2666]={d='on'},
+ [0x2667]={d='on'},
+ [0x2668]={d='on'},
+ [0x2669]={d='on'},
+ [0x266A]={d='on'},
+ [0x266B]={d='on'},
+ [0x266C]={d='on'},
+ [0x266D]={d='on'},
+ [0x266E]={d='on'},
+ [0x266F]={d='on'},
+ [0x2670]={d='on'},
+ [0x2671]={d='on'},
+ [0x2672]={d='on'},
+ [0x2673]={d='on'},
+ [0x2674]={d='on'},
+ [0x2675]={d='on'},
+ [0x2676]={d='on'},
+ [0x2677]={d='on'},
+ [0x2678]={d='on'},
+ [0x2679]={d='on'},
+ [0x267A]={d='on'},
+ [0x267B]={d='on'},
+ [0x267C]={d='on'},
+ [0x267D]={d='on'},
+ [0x267E]={d='on'},
+ [0x267F]={d='on'},
+ [0x2680]={d='on'},
+ [0x2681]={d='on'},
+ [0x2682]={d='on'},
+ [0x2683]={d='on'},
+ [0x2684]={d='on'},
+ [0x2685]={d='on'},
+ [0x2686]={d='on'},
+ [0x2687]={d='on'},
+ [0x2688]={d='on'},
+ [0x2689]={d='on'},
+ [0x268A]={d='on'},
+ [0x268B]={d='on'},
+ [0x268C]={d='on'},
+ [0x268D]={d='on'},
+ [0x268E]={d='on'},
+ [0x268F]={d='on'},
+ [0x2690]={d='on'},
+ [0x2691]={d='on'},
+ [0x2692]={d='on'},
+ [0x2693]={d='on'},
+ [0x2694]={d='on'},
+ [0x2695]={d='on'},
+ [0x2696]={d='on'},
+ [0x2697]={d='on'},
+ [0x2698]={d='on'},
+ [0x2699]={d='on'},
+ [0x269A]={d='on'},
+ [0x269B]={d='on'},
+ [0x269C]={d='on'},
+ [0x269D]={d='on'},
+ [0x269E]={d='on'},
+ [0x269F]={d='on'},
+ [0x26A0]={d='on'},
+ [0x26A1]={d='on'},
+ [0x26A2]={d='on'},
+ [0x26A3]={d='on'},
+ [0x26A4]={d='on'},
+ [0x26A5]={d='on'},
+ [0x26A6]={d='on'},
+ [0x26A7]={d='on'},
+ [0x26A8]={d='on'},
+ [0x26A9]={d='on'},
+ [0x26AA]={d='on'},
+ [0x26AB]={d='on'},
+ [0x26AD]={d='on'},
+ [0x26AE]={d='on'},
+ [0x26AF]={d='on'},
+ [0x26B0]={d='on'},
+ [0x26B1]={d='on'},
+ [0x26B2]={d='on'},
+ [0x26B3]={d='on'},
+ [0x26B4]={d='on'},
+ [0x26B5]={d='on'},
+ [0x26B6]={d='on'},
+ [0x26B7]={d='on'},
+ [0x26B8]={d='on'},
+ [0x26B9]={d='on'},
+ [0x26BA]={d='on'},
+ [0x26BB]={d='on'},
+ [0x26BC]={d='on'},
+ [0x26BD]={d='on'},
+ [0x26BE]={d='on'},
+ [0x26BF]={d='on'},
+ [0x26C0]={d='on'},
+ [0x26C1]={d='on'},
+ [0x26C2]={d='on'},
+ [0x26C3]={d='on'},
+ [0x26C4]={d='on'},
+ [0x26C5]={d='on'},
+ [0x26C6]={d='on'},
+ [0x26C7]={d='on'},
+ [0x26C8]={d='on'},
+ [0x26C9]={d='on'},
+ [0x26CA]={d='on'},
+ [0x26CB]={d='on'},
+ [0x26CC]={d='on'},
+ [0x26CD]={d='on'},
+ [0x26CE]={d='on'},
+ [0x26CF]={d='on'},
+ [0x26D0]={d='on'},
+ [0x26D1]={d='on'},
+ [0x26D2]={d='on'},
+ [0x26D3]={d='on'},
+ [0x26D4]={d='on'},
+ [0x26D5]={d='on'},
+ [0x26D6]={d='on'},
+ [0x26D7]={d='on'},
+ [0x26D8]={d='on'},
+ [0x26D9]={d='on'},
+ [0x26DA]={d='on'},
+ [0x26DB]={d='on'},
+ [0x26DC]={d='on'},
+ [0x26DD]={d='on'},
+ [0x26DE]={d='on'},
+ [0x26DF]={d='on'},
+ [0x26E0]={d='on'},
+ [0x26E1]={d='on'},
+ [0x26E2]={d='on'},
+ [0x26E3]={d='on'},
+ [0x26E4]={d='on'},
+ [0x26E5]={d='on'},
+ [0x26E6]={d='on'},
+ [0x26E7]={d='on'},
+ [0x26E8]={d='on'},
+ [0x26E9]={d='on'},
+ [0x26EA]={d='on'},
+ [0x26EB]={d='on'},
+ [0x26EC]={d='on'},
+ [0x26ED]={d='on'},
+ [0x26EE]={d='on'},
+ [0x26EF]={d='on'},
+ [0x26F0]={d='on'},
+ [0x26F1]={d='on'},
+ [0x26F2]={d='on'},
+ [0x26F3]={d='on'},
+ [0x26F4]={d='on'},
+ [0x26F5]={d='on'},
+ [0x26F6]={d='on'},
+ [0x26F7]={d='on'},
+ [0x26F8]={d='on'},
+ [0x26F9]={d='on'},
+ [0x26FA]={d='on'},
+ [0x26FB]={d='on'},
+ [0x26FC]={d='on'},
+ [0x26FD]={d='on'},
+ [0x26FE]={d='on'},
+ [0x26FF]={d='on'},
+ [0x2700]={d='on'},
+ [0x2701]={d='on'},
+ [0x2702]={d='on'},
+ [0x2703]={d='on'},
+ [0x2704]={d='on'},
+ [0x2705]={d='on'},
+ [0x2706]={d='on'},
+ [0x2707]={d='on'},
+ [0x2708]={d='on'},
+ [0x2709]={d='on'},
+ [0x270A]={d='on'},
+ [0x270B]={d='on'},
+ [0x270C]={d='on'},
+ [0x270D]={d='on'},
+ [0x270E]={d='on'},
+ [0x270F]={d='on'},
+ [0x2710]={d='on'},
+ [0x2711]={d='on'},
+ [0x2712]={d='on'},
+ [0x2713]={d='on'},
+ [0x2714]={d='on'},
+ [0x2715]={d='on'},
+ [0x2716]={d='on'},
+ [0x2717]={d='on'},
+ [0x2718]={d='on'},
+ [0x2719]={d='on'},
+ [0x271A]={d='on'},
+ [0x271B]={d='on'},
+ [0x271C]={d='on'},
+ [0x271D]={d='on'},
+ [0x271E]={d='on'},
+ [0x271F]={d='on'},
+ [0x2720]={d='on'},
+ [0x2721]={d='on'},
+ [0x2722]={d='on'},
+ [0x2723]={d='on'},
+ [0x2724]={d='on'},
+ [0x2725]={d='on'},
+ [0x2726]={d='on'},
+ [0x2727]={d='on'},
+ [0x2728]={d='on'},
+ [0x2729]={d='on'},
+ [0x272A]={d='on'},
+ [0x272B]={d='on'},
+ [0x272C]={d='on'},
+ [0x272D]={d='on'},
+ [0x272E]={d='on'},
+ [0x272F]={d='on'},
+ [0x2730]={d='on'},
+ [0x2731]={d='on'},
+ [0x2732]={d='on'},
+ [0x2733]={d='on'},
+ [0x2734]={d='on'},
+ [0x2735]={d='on'},
+ [0x2736]={d='on'},
+ [0x2737]={d='on'},
+ [0x2738]={d='on'},
+ [0x2739]={d='on'},
+ [0x273A]={d='on'},
+ [0x273B]={d='on'},
+ [0x273C]={d='on'},
+ [0x273D]={d='on'},
+ [0x273E]={d='on'},
+ [0x273F]={d='on'},
+ [0x2740]={d='on'},
+ [0x2741]={d='on'},
+ [0x2742]={d='on'},
+ [0x2743]={d='on'},
+ [0x2744]={d='on'},
+ [0x2745]={d='on'},
+ [0x2746]={d='on'},
+ [0x2747]={d='on'},
+ [0x2748]={d='on'},
+ [0x2749]={d='on'},
+ [0x274A]={d='on'},
+ [0x274B]={d='on'},
+ [0x274C]={d='on'},
+ [0x274D]={d='on'},
+ [0x274E]={d='on'},
+ [0x274F]={d='on'},
+ [0x2750]={d='on'},
+ [0x2751]={d='on'},
+ [0x2752]={d='on'},
+ [0x2753]={d='on'},
+ [0x2754]={d='on'},
+ [0x2755]={d='on'},
+ [0x2756]={d='on'},
+ [0x2757]={d='on'},
+ [0x2758]={d='on'},
+ [0x2759]={d='on'},
+ [0x275A]={d='on'},
+ [0x275B]={d='on'},
+ [0x275C]={d='on'},
+ [0x275D]={d='on'},
+ [0x275E]={d='on'},
+ [0x275F]={d='on'},
+ [0x2760]={d='on'},
+ [0x2761]={d='on'},
+ [0x2762]={d='on'},
+ [0x2763]={d='on'},
+ [0x2764]={d='on'},
+ [0x2765]={d='on'},
+ [0x2766]={d='on'},
+ [0x2767]={d='on'},
+ [0x2768]={d='on', m=0x2769},
+ [0x2769]={d='on', m=0x2768},
+ [0x276A]={d='on', m=0x276B},
+ [0x276B]={d='on', m=0x276A},
+ [0x276C]={d='on', m=0x276D},
+ [0x276D]={d='on', m=0x276C},
+ [0x276E]={d='on', m=0x276F},
+ [0x276F]={d='on', m=0x276E},
+ [0x2770]={d='on', m=0x2771},
+ [0x2771]={d='on', m=0x2770},
+ [0x2772]={d='on', m=0x2773},
+ [0x2773]={d='on', m=0x2772},
+ [0x2774]={d='on', m=0x2775},
+ [0x2775]={d='on', m=0x2774},
+ [0x2776]={d='on'},
+ [0x2777]={d='on'},
+ [0x2778]={d='on'},
+ [0x2779]={d='on'},
+ [0x277A]={d='on'},
+ [0x277B]={d='on'},
+ [0x277C]={d='on'},
+ [0x277D]={d='on'},
+ [0x277E]={d='on'},
+ [0x277F]={d='on'},
+ [0x2780]={d='on'},
+ [0x2781]={d='on'},
+ [0x2782]={d='on'},
+ [0x2783]={d='on'},
+ [0x2784]={d='on'},
+ [0x2785]={d='on'},
+ [0x2786]={d='on'},
+ [0x2787]={d='on'},
+ [0x2788]={d='on'},
+ [0x2789]={d='on'},
+ [0x278A]={d='on'},
+ [0x278B]={d='on'},
+ [0x278C]={d='on'},
+ [0x278D]={d='on'},
+ [0x278E]={d='on'},
+ [0x278F]={d='on'},
+ [0x2790]={d='on'},
+ [0x2791]={d='on'},
+ [0x2792]={d='on'},
+ [0x2793]={d='on'},
+ [0x2794]={d='on'},
+ [0x2795]={d='on'},
+ [0x2796]={d='on'},
+ [0x2797]={d='on'},
+ [0x2798]={d='on'},
+ [0x2799]={d='on'},
+ [0x279A]={d='on'},
+ [0x279B]={d='on'},
+ [0x279C]={d='on'},
+ [0x279D]={d='on'},
+ [0x279E]={d='on'},
+ [0x279F]={d='on'},
+ [0x27A0]={d='on'},
+ [0x27A1]={d='on'},
+ [0x27A2]={d='on'},
+ [0x27A3]={d='on'},
+ [0x27A4]={d='on'},
+ [0x27A5]={d='on'},
+ [0x27A6]={d='on'},
+ [0x27A7]={d='on'},
+ [0x27A8]={d='on'},
+ [0x27A9]={d='on'},
+ [0x27AA]={d='on'},
+ [0x27AB]={d='on'},
+ [0x27AC]={d='on'},
+ [0x27AD]={d='on'},
+ [0x27AE]={d='on'},
+ [0x27AF]={d='on'},
+ [0x27B0]={d='on'},
+ [0x27B1]={d='on'},
+ [0x27B2]={d='on'},
+ [0x27B3]={d='on'},
+ [0x27B4]={d='on'},
+ [0x27B5]={d='on'},
+ [0x27B6]={d='on'},
+ [0x27B7]={d='on'},
+ [0x27B8]={d='on'},
+ [0x27B9]={d='on'},
+ [0x27BA]={d='on'},
+ [0x27BB]={d='on'},
+ [0x27BC]={d='on'},
+ [0x27BD]={d='on'},
+ [0x27BE]={d='on'},
+ [0x27BF]={d='on'},
+ [0x27C0]={d='on'},
+ [0x27C1]={d='on'},
+ [0x27C2]={d='on'},
+ [0x27C3]={d='on', m=0x27C4},
+ [0x27C4]={d='on', m=0x27C3},
+ [0x27C5]={d='on', m=0x27C6},
+ [0x27C6]={d='on', m=0x27C5},
+ [0x27C7]={d='on'},
+ [0x27C8]={d='on', m=0x27C9},
+ [0x27C9]={d='on', m=0x27C8},
+ [0x27CA]={d='on'},
+ [0x27CB]={d='on', m=0x27CD},
+ [0x27CC]={d='on'},
+ [0x27CD]={d='on', m=0x27CB},
+ [0x27CE]={d='on'},
+ [0x27CF]={d='on'},
+ [0x27D0]={d='on'},
+ [0x27D1]={d='on'},
+ [0x27D2]={d='on'},
+ [0x27D3]={d='on'},
+ [0x27D4]={d='on'},
+ [0x27D5]={d='on', m=0x27D6},
+ [0x27D6]={d='on', m=0x27D5},
+ [0x27D7]={d='on'},
+ [0x27D8]={d='on'},
+ [0x27D9]={d='on'},
+ [0x27DA]={d='on'},
+ [0x27DB]={d='on'},
+ [0x27DC]={d='on'},
+ [0x27DD]={d='on', m=0x27DE},
+ [0x27DE]={d='on', m=0x27DD},
+ [0x27DF]={d='on'},
+ [0x27E0]={d='on'},
+ [0x27E1]={d='on'},
+ [0x27E2]={d='on', m=0x27E3},
+ [0x27E3]={d='on', m=0x27E2},
+ [0x27E4]={d='on', m=0x27E5},
+ [0x27E5]={d='on', m=0x27E4},
+ [0x27E6]={d='on', m=0x27E7},
+ [0x27E7]={d='on', m=0x27E6},
+ [0x27E8]={d='on', m=0x27E9},
+ [0x27E9]={d='on', m=0x27E8},
+ [0x27EA]={d='on', m=0x27EB},
+ [0x27EB]={d='on', m=0x27EA},
+ [0x27EC]={d='on', m=0x27ED},
+ [0x27ED]={d='on', m=0x27EC},
+ [0x27EE]={d='on', m=0x27EF},
+ [0x27EF]={d='on', m=0x27EE},
+ [0x27F0]={d='on'},
+ [0x27F1]={d='on'},
+ [0x27F2]={d='on'},
+ [0x27F3]={d='on'},
+ [0x27F4]={d='on'},
+ [0x27F5]={d='on'},
+ [0x27F6]={d='on'},
+ [0x27F7]={d='on'},
+ [0x27F8]={d='on'},
+ [0x27F9]={d='on'},
+ [0x27FA]={d='on'},
+ [0x27FB]={d='on'},
+ [0x27FC]={d='on'},
+ [0x27FD]={d='on'},
+ [0x27FE]={d='on'},
+ [0x27FF]={d='on'},
+ [0x2900]={d='on'},
+ [0x2901]={d='on'},
+ [0x2902]={d='on'},
+ [0x2903]={d='on'},
+ [0x2904]={d='on'},
+ [0x2905]={d='on'},
+ [0x2906]={d='on'},
+ [0x2907]={d='on'},
+ [0x2908]={d='on'},
+ [0x2909]={d='on'},
+ [0x290A]={d='on'},
+ [0x290B]={d='on'},
+ [0x290C]={d='on'},
+ [0x290D]={d='on'},
+ [0x290E]={d='on'},
+ [0x290F]={d='on'},
+ [0x2910]={d='on'},
+ [0x2911]={d='on'},
+ [0x2912]={d='on'},
+ [0x2913]={d='on'},
+ [0x2914]={d='on'},
+ [0x2915]={d='on'},
+ [0x2916]={d='on'},
+ [0x2917]={d='on'},
+ [0x2918]={d='on'},
+ [0x2919]={d='on'},
+ [0x291A]={d='on'},
+ [0x291B]={d='on'},
+ [0x291C]={d='on'},
+ [0x291D]={d='on'},
+ [0x291E]={d='on'},
+ [0x291F]={d='on'},
+ [0x2920]={d='on'},
+ [0x2921]={d='on'},
+ [0x2922]={d='on'},
+ [0x2923]={d='on'},
+ [0x2924]={d='on'},
+ [0x2925]={d='on'},
+ [0x2926]={d='on'},
+ [0x2927]={d='on'},
+ [0x2928]={d='on'},
+ [0x2929]={d='on'},
+ [0x292A]={d='on'},
+ [0x292B]={d='on'},
+ [0x292C]={d='on'},
+ [0x292D]={d='on'},
+ [0x292E]={d='on'},
+ [0x292F]={d='on'},
+ [0x2930]={d='on'},
+ [0x2931]={d='on'},
+ [0x2932]={d='on'},
+ [0x2933]={d='on'},
+ [0x2934]={d='on'},
+ [0x2935]={d='on'},
+ [0x2936]={d='on'},
+ [0x2937]={d='on'},
+ [0x2938]={d='on'},
+ [0x2939]={d='on'},
+ [0x293A]={d='on'},
+ [0x293B]={d='on'},
+ [0x293C]={d='on'},
+ [0x293D]={d='on'},
+ [0x293E]={d='on'},
+ [0x293F]={d='on'},
+ [0x2940]={d='on'},
+ [0x2941]={d='on'},
+ [0x2942]={d='on'},
+ [0x2943]={d='on'},
+ [0x2944]={d='on'},
+ [0x2945]={d='on'},
+ [0x2946]={d='on'},
+ [0x2947]={d='on'},
+ [0x2948]={d='on'},
+ [0x2949]={d='on'},
+ [0x294A]={d='on'},
+ [0x294B]={d='on'},
+ [0x294C]={d='on'},
+ [0x294D]={d='on'},
+ [0x294E]={d='on'},
+ [0x294F]={d='on'},
+ [0x2950]={d='on'},
+ [0x2951]={d='on'},
+ [0x2952]={d='on'},
+ [0x2953]={d='on'},
+ [0x2954]={d='on'},
+ [0x2955]={d='on'},
+ [0x2956]={d='on'},
+ [0x2957]={d='on'},
+ [0x2958]={d='on'},
+ [0x2959]={d='on'},
+ [0x295A]={d='on'},
+ [0x295B]={d='on'},
+ [0x295C]={d='on'},
+ [0x295D]={d='on'},
+ [0x295E]={d='on'},
+ [0x295F]={d='on'},
+ [0x2960]={d='on'},
+ [0x2961]={d='on'},
+ [0x2962]={d='on'},
+ [0x2963]={d='on'},
+ [0x2964]={d='on'},
+ [0x2965]={d='on'},
+ [0x2966]={d='on'},
+ [0x2967]={d='on'},
+ [0x2968]={d='on'},
+ [0x2969]={d='on'},
+ [0x296A]={d='on'},
+ [0x296B]={d='on'},
+ [0x296C]={d='on'},
+ [0x296D]={d='on'},
+ [0x296E]={d='on'},
+ [0x296F]={d='on'},
+ [0x2970]={d='on'},
+ [0x2971]={d='on'},
+ [0x2972]={d='on'},
+ [0x2973]={d='on'},
+ [0x2974]={d='on'},
+ [0x2975]={d='on'},
+ [0x2976]={d='on'},
+ [0x2977]={d='on'},
+ [0x2978]={d='on'},
+ [0x2979]={d='on'},
+ [0x297A]={d='on'},
+ [0x297B]={d='on'},
+ [0x297C]={d='on'},
+ [0x297D]={d='on'},
+ [0x297E]={d='on'},
+ [0x297F]={d='on'},
+ [0x2980]={d='on'},
+ [0x2981]={d='on'},
+ [0x2982]={d='on'},
+ [0x2983]={d='on', m=0x2984},
+ [0x2984]={d='on', m=0x2983},
+ [0x2985]={d='on', m=0x2986},
+ [0x2986]={d='on', m=0x2985},
+ [0x2987]={d='on', m=0x2988},
+ [0x2988]={d='on', m=0x2987},
+ [0x2989]={d='on', m=0x298A},
+ [0x298A]={d='on', m=0x2989},
+ [0x298B]={d='on', m=0x298C},
+ [0x298C]={d='on', m=0x298B},
+ [0x298D]={d='on', m=0x2990},
+ [0x298E]={d='on', m=0x298F},
+ [0x298F]={d='on', m=0x298E},
+ [0x2990]={d='on', m=0x298D},
+ [0x2991]={d='on', m=0x2992},
+ [0x2992]={d='on', m=0x2991},
+ [0x2993]={d='on', m=0x2994},
+ [0x2994]={d='on', m=0x2993},
+ [0x2995]={d='on', m=0x2996},
+ [0x2996]={d='on', m=0x2995},
+ [0x2997]={d='on', m=0x2998},
+ [0x2998]={d='on', m=0x2997},
+ [0x2999]={d='on'},
+ [0x299A]={d='on'},
+ [0x299B]={d='on'},
+ [0x299C]={d='on'},
+ [0x299D]={d='on'},
+ [0x299E]={d='on'},
+ [0x299F]={d='on'},
+ [0x29A0]={d='on'},
+ [0x29A1]={d='on'},
+ [0x29A2]={d='on'},
+ [0x29A3]={d='on'},
+ [0x29A4]={d='on'},
+ [0x29A5]={d='on'},
+ [0x29A6]={d='on'},
+ [0x29A7]={d='on'},
+ [0x29A8]={d='on'},
+ [0x29A9]={d='on'},
+ [0x29AA]={d='on'},
+ [0x29AB]={d='on'},
+ [0x29AC]={d='on'},
+ [0x29AD]={d='on'},
+ [0x29AE]={d='on'},
+ [0x29AF]={d='on'},
+ [0x29B0]={d='on'},
+ [0x29B1]={d='on'},
+ [0x29B2]={d='on'},
+ [0x29B3]={d='on'},
+ [0x29B4]={d='on'},
+ [0x29B5]={d='on'},
+ [0x29B6]={d='on'},
+ [0x29B7]={d='on'},
+ [0x29B8]={d='on', m=0x2298},
+ [0x29B9]={d='on'},
+ [0x29BA]={d='on'},
+ [0x29BB]={d='on'},
+ [0x29BC]={d='on'},
+ [0x29BD]={d='on'},
+ [0x29BE]={d='on'},
+ [0x29BF]={d='on'},
+ [0x29C0]={d='on', m=0x29C1},
+ [0x29C1]={d='on', m=0x29C0},
+ [0x29C2]={d='on'},
+ [0x29C3]={d='on'},
+ [0x29C4]={d='on', m=0x29C5},
+ [0x29C5]={d='on', m=0x29C4},
+ [0x29C6]={d='on'},
+ [0x29C7]={d='on'},
+ [0x29C8]={d='on'},
+ [0x29C9]={d='on'},
+ [0x29CA]={d='on'},
+ [0x29CB]={d='on'},
+ [0x29CC]={d='on'},
+ [0x29CD]={d='on'},
+ [0x29CE]={d='on'},
+ [0x29CF]={d='on', m=0x29D0},
+ [0x29D0]={d='on', m=0x29CF},
+ [0x29D1]={d='on', m=0x29D2},
+ [0x29D2]={d='on', m=0x29D1},
+ [0x29D3]={d='on'},
+ [0x29D4]={d='on', m=0x29D5},
+ [0x29D5]={d='on', m=0x29D4},
+ [0x29D6]={d='on'},
+ [0x29D7]={d='on'},
+ [0x29D8]={d='on', m=0x29D9},
+ [0x29D9]={d='on', m=0x29D8},
+ [0x29DA]={d='on', m=0x29DB},
+ [0x29DB]={d='on', m=0x29DA},
+ [0x29DC]={d='on'},
+ [0x29DD]={d='on'},
+ [0x29DE]={d='on'},
+ [0x29DF]={d='on'},
+ [0x29E0]={d='on'},
+ [0x29E1]={d='on'},
+ [0x29E2]={d='on'},
+ [0x29E3]={d='on'},
+ [0x29E4]={d='on'},
+ [0x29E5]={d='on'},
+ [0x29E6]={d='on'},
+ [0x29E7]={d='on'},
+ [0x29E8]={d='on'},
+ [0x29E9]={d='on'},
+ [0x29EA]={d='on'},
+ [0x29EB]={d='on'},
+ [0x29EC]={d='on'},
+ [0x29ED]={d='on'},
+ [0x29EE]={d='on'},
+ [0x29EF]={d='on'},
+ [0x29F0]={d='on'},
+ [0x29F1]={d='on'},
+ [0x29F2]={d='on'},
+ [0x29F3]={d='on'},
+ [0x29F4]={d='on'},
+ [0x29F5]={d='on', m=0x2215},
+ [0x29F6]={d='on'},
+ [0x29F7]={d='on'},
+ [0x29F8]={d='on', m=0x29F9},
+ [0x29F9]={d='on', m=0x29F8},
+ [0x29FA]={d='on'},
+ [0x29FB]={d='on'},
+ [0x29FC]={d='on', m=0x29FD},
+ [0x29FD]={d='on', m=0x29FC},
+ [0x29FE]={d='on'},
+ [0x29FF]={d='on'},
+ [0x2A00]={d='on'},
+ [0x2A01]={d='on'},
+ [0x2A02]={d='on'},
+ [0x2A03]={d='on'},
+ [0x2A04]={d='on'},
+ [0x2A05]={d='on'},
+ [0x2A06]={d='on'},
+ [0x2A07]={d='on'},
+ [0x2A08]={d='on'},
+ [0x2A09]={d='on'},
+ [0x2A0A]={d='on'},
+ [0x2A0B]={d='on'},
+ [0x2A0C]={d='on'},
+ [0x2A0D]={d='on'},
+ [0x2A0E]={d='on'},
+ [0x2A0F]={d='on'},
+ [0x2A10]={d='on'},
+ [0x2A11]={d='on'},
+ [0x2A12]={d='on'},
+ [0x2A13]={d='on'},
+ [0x2A14]={d='on'},
+ [0x2A15]={d='on'},
+ [0x2A16]={d='on'},
+ [0x2A17]={d='on'},
+ [0x2A18]={d='on'},
+ [0x2A19]={d='on'},
+ [0x2A1A]={d='on'},
+ [0x2A1B]={d='on'},
+ [0x2A1C]={d='on'},
+ [0x2A1D]={d='on'},
+ [0x2A1E]={d='on'},
+ [0x2A1F]={d='on'},
+ [0x2A20]={d='on'},
+ [0x2A21]={d='on'},
+ [0x2A22]={d='on'},
+ [0x2A23]={d='on'},
+ [0x2A24]={d='on'},
+ [0x2A25]={d='on'},
+ [0x2A26]={d='on'},
+ [0x2A27]={d='on'},
+ [0x2A28]={d='on'},
+ [0x2A29]={d='on'},
+ [0x2A2A]={d='on'},
+ [0x2A2B]={d='on', m=0x2A2C},
+ [0x2A2C]={d='on', m=0x2A2B},
+ [0x2A2D]={d='on', m=0x2A2E},
+ [0x2A2E]={d='on', m=0x2A2D},
+ [0x2A2F]={d='on'},
+ [0x2A30]={d='on'},
+ [0x2A31]={d='on'},
+ [0x2A32]={d='on'},
+ [0x2A33]={d='on'},
+ [0x2A34]={d='on', m=0x2A35},
+ [0x2A35]={d='on', m=0x2A34},
+ [0x2A36]={d='on'},
+ [0x2A37]={d='on'},
+ [0x2A38]={d='on'},
+ [0x2A39]={d='on'},
+ [0x2A3A]={d='on'},
+ [0x2A3B]={d='on'},
+ [0x2A3C]={d='on', m=0x2A3D},
+ [0x2A3D]={d='on', m=0x2A3C},
+ [0x2A3E]={d='on'},
+ [0x2A3F]={d='on'},
+ [0x2A40]={d='on'},
+ [0x2A41]={d='on'},
+ [0x2A42]={d='on'},
+ [0x2A43]={d='on'},
+ [0x2A44]={d='on'},
+ [0x2A45]={d='on'},
+ [0x2A46]={d='on'},
+ [0x2A47]={d='on'},
+ [0x2A48]={d='on'},
+ [0x2A49]={d='on'},
+ [0x2A4A]={d='on'},
+ [0x2A4B]={d='on'},
+ [0x2A4C]={d='on'},
+ [0x2A4D]={d='on'},
+ [0x2A4E]={d='on'},
+ [0x2A4F]={d='on'},
+ [0x2A50]={d='on'},
+ [0x2A51]={d='on'},
+ [0x2A52]={d='on'},
+ [0x2A53]={d='on'},
+ [0x2A54]={d='on'},
+ [0x2A55]={d='on'},
+ [0x2A56]={d='on'},
+ [0x2A57]={d='on'},
+ [0x2A58]={d='on'},
+ [0x2A59]={d='on'},
+ [0x2A5A]={d='on'},
+ [0x2A5B]={d='on'},
+ [0x2A5C]={d='on'},
+ [0x2A5D]={d='on'},
+ [0x2A5E]={d='on'},
+ [0x2A5F]={d='on'},
+ [0x2A60]={d='on'},
+ [0x2A61]={d='on'},
+ [0x2A62]={d='on'},
+ [0x2A63]={d='on'},
+ [0x2A64]={d='on', m=0x2A65},
+ [0x2A65]={d='on', m=0x2A64},
+ [0x2A66]={d='on'},
+ [0x2A67]={d='on'},
+ [0x2A68]={d='on'},
+ [0x2A69]={d='on'},
+ [0x2A6A]={d='on'},
+ [0x2A6B]={d='on'},
+ [0x2A6C]={d='on'},
+ [0x2A6D]={d='on'},
+ [0x2A6E]={d='on'},
+ [0x2A6F]={d='on'},
+ [0x2A70]={d='on'},
+ [0x2A71]={d='on'},
+ [0x2A72]={d='on'},
+ [0x2A73]={d='on'},
+ [0x2A74]={d='on'},
+ [0x2A75]={d='on'},
+ [0x2A76]={d='on'},
+ [0x2A77]={d='on'},
+ [0x2A78]={d='on'},
+ [0x2A79]={d='on', m=0x2A7A},
+ [0x2A7A]={d='on', m=0x2A79},
+ [0x2A7B]={d='on'},
+ [0x2A7C]={d='on'},
+ [0x2A7D]={d='on', m=0x2A7E},
+ [0x2A7E]={d='on', m=0x2A7D},
+ [0x2A7F]={d='on', m=0x2A80},
+ [0x2A80]={d='on', m=0x2A7F},
+ [0x2A81]={d='on', m=0x2A82},
+ [0x2A82]={d='on', m=0x2A81},
+ [0x2A83]={d='on', m=0x2A84},
+ [0x2A84]={d='on', m=0x2A83},
+ [0x2A85]={d='on'},
+ [0x2A86]={d='on'},
+ [0x2A87]={d='on'},
+ [0x2A88]={d='on'},
+ [0x2A89]={d='on'},
+ [0x2A8A]={d='on'},
+ [0x2A8B]={d='on', m=0x2A8C},
+ [0x2A8C]={d='on', m=0x2A8B},
+ [0x2A8D]={d='on'},
+ [0x2A8E]={d='on'},
+ [0x2A8F]={d='on'},
+ [0x2A90]={d='on'},
+ [0x2A91]={d='on', m=0x2A92},
+ [0x2A92]={d='on', m=0x2A91},
+ [0x2A93]={d='on', m=0x2A94},
+ [0x2A94]={d='on', m=0x2A93},
+ [0x2A95]={d='on', m=0x2A96},
+ [0x2A96]={d='on', m=0x2A95},
+ [0x2A97]={d='on', m=0x2A98},
+ [0x2A98]={d='on', m=0x2A97},
+ [0x2A99]={d='on', m=0x2A9A},
+ [0x2A9A]={d='on', m=0x2A99},
+ [0x2A9B]={d='on', m=0x2A9C},
+ [0x2A9C]={d='on', m=0x2A9B},
+ [0x2A9D]={d='on'},
+ [0x2A9E]={d='on'},
+ [0x2A9F]={d='on'},
+ [0x2AA0]={d='on'},
+ [0x2AA1]={d='on', m=0x2AA2},
+ [0x2AA2]={d='on', m=0x2AA1},
+ [0x2AA3]={d='on'},
+ [0x2AA4]={d='on'},
+ [0x2AA5]={d='on'},
+ [0x2AA6]={d='on', m=0x2AA7},
+ [0x2AA7]={d='on', m=0x2AA6},
+ [0x2AA8]={d='on', m=0x2AA9},
+ [0x2AA9]={d='on', m=0x2AA8},
+ [0x2AAA]={d='on', m=0x2AAB},
+ [0x2AAB]={d='on', m=0x2AAA},
+ [0x2AAC]={d='on', m=0x2AAD},
+ [0x2AAD]={d='on', m=0x2AAC},
+ [0x2AAE]={d='on'},
+ [0x2AAF]={d='on', m=0x2AB0},
+ [0x2AB0]={d='on', m=0x2AAF},
+ [0x2AB1]={d='on'},
+ [0x2AB2]={d='on'},
+ [0x2AB3]={d='on', m=0x2AB4},
+ [0x2AB4]={d='on', m=0x2AB3},
+ [0x2AB5]={d='on'},
+ [0x2AB6]={d='on'},
+ [0x2AB7]={d='on'},
+ [0x2AB8]={d='on'},
+ [0x2AB9]={d='on'},
+ [0x2ABA]={d='on'},
+ [0x2ABB]={d='on', m=0x2ABC},
+ [0x2ABC]={d='on', m=0x2ABB},
+ [0x2ABD]={d='on', m=0x2ABE},
+ [0x2ABE]={d='on', m=0x2ABD},
+ [0x2ABF]={d='on', m=0x2AC0},
+ [0x2AC0]={d='on', m=0x2ABF},
+ [0x2AC1]={d='on', m=0x2AC2},
+ [0x2AC2]={d='on', m=0x2AC1},
+ [0x2AC3]={d='on', m=0x2AC4},
+ [0x2AC4]={d='on', m=0x2AC3},
+ [0x2AC5]={d='on', m=0x2AC6},
+ [0x2AC6]={d='on', m=0x2AC5},
+ [0x2AC7]={d='on'},
+ [0x2AC8]={d='on'},
+ [0x2AC9]={d='on'},
+ [0x2ACA]={d='on'},
+ [0x2ACB]={d='on'},
+ [0x2ACC]={d='on'},
+ [0x2ACD]={d='on', m=0x2ACE},
+ [0x2ACE]={d='on', m=0x2ACD},
+ [0x2ACF]={d='on', m=0x2AD0},
+ [0x2AD0]={d='on', m=0x2ACF},
+ [0x2AD1]={d='on', m=0x2AD2},
+ [0x2AD2]={d='on', m=0x2AD1},
+ [0x2AD3]={d='on', m=0x2AD4},
+ [0x2AD4]={d='on', m=0x2AD3},
+ [0x2AD5]={d='on', m=0x2AD6},
+ [0x2AD6]={d='on', m=0x2AD5},
+ [0x2AD7]={d='on'},
+ [0x2AD8]={d='on'},
+ [0x2AD9]={d='on'},
+ [0x2ADA]={d='on'},
+ [0x2ADB]={d='on'},
+ [0x2ADC]={d='on'},
+ [0x2ADD]={d='on'},
+ [0x2ADE]={d='on', m=0x22A6},
+ [0x2ADF]={d='on'},
+ [0x2AE0]={d='on'},
+ [0x2AE1]={d='on'},
+ [0x2AE2]={d='on'},
+ [0x2AE3]={d='on', m=0x22A9},
+ [0x2AE4]={d='on', m=0x22A8},
+ [0x2AE5]={d='on', m=0x22AB},
+ [0x2AE6]={d='on'},
+ [0x2AE7]={d='on'},
+ [0x2AE8]={d='on'},
+ [0x2AE9]={d='on'},
+ [0x2AEA]={d='on'},
+ [0x2AEB]={d='on'},
+ [0x2AEC]={d='on', m=0x2AED},
+ [0x2AED]={d='on', m=0x2AEC},
+ [0x2AEE]={d='on'},
+ [0x2AEF]={d='on'},
+ [0x2AF0]={d='on'},
+ [0x2AF1]={d='on'},
+ [0x2AF2]={d='on'},
+ [0x2AF3]={d='on'},
+ [0x2AF4]={d='on'},
+ [0x2AF5]={d='on'},
+ [0x2AF6]={d='on'},
+ [0x2AF7]={d='on', m=0x2AF8},
+ [0x2AF8]={d='on', m=0x2AF7},
+ [0x2AF9]={d='on', m=0x2AFA},
+ [0x2AFA]={d='on', m=0x2AF9},
+ [0x2AFB]={d='on'},
+ [0x2AFC]={d='on'},
+ [0x2AFD]={d='on'},
+ [0x2AFE]={d='on'},
+ [0x2AFF]={d='on'},
+ [0x2B00]={d='on'},
+ [0x2B01]={d='on'},
+ [0x2B02]={d='on'},
+ [0x2B03]={d='on'},
+ [0x2B04]={d='on'},
+ [0x2B05]={d='on'},
+ [0x2B06]={d='on'},
+ [0x2B07]={d='on'},
+ [0x2B08]={d='on'},
+ [0x2B09]={d='on'},
+ [0x2B0A]={d='on'},
+ [0x2B0B]={d='on'},
+ [0x2B0C]={d='on'},
+ [0x2B0D]={d='on'},
+ [0x2B0E]={d='on'},
+ [0x2B0F]={d='on'},
+ [0x2B10]={d='on'},
+ [0x2B11]={d='on'},
+ [0x2B12]={d='on'},
+ [0x2B13]={d='on'},
+ [0x2B14]={d='on'},
+ [0x2B15]={d='on'},
+ [0x2B16]={d='on'},
+ [0x2B17]={d='on'},
+ [0x2B18]={d='on'},
+ [0x2B19]={d='on'},
+ [0x2B1A]={d='on'},
+ [0x2B1B]={d='on'},
+ [0x2B1C]={d='on'},
+ [0x2B1D]={d='on'},
+ [0x2B1E]={d='on'},
+ [0x2B1F]={d='on'},
+ [0x2B20]={d='on'},
+ [0x2B21]={d='on'},
+ [0x2B22]={d='on'},
+ [0x2B23]={d='on'},
+ [0x2B24]={d='on'},
+ [0x2B25]={d='on'},
+ [0x2B26]={d='on'},
+ [0x2B27]={d='on'},
+ [0x2B28]={d='on'},
+ [0x2B29]={d='on'},
+ [0x2B2A]={d='on'},
+ [0x2B2B]={d='on'},
+ [0x2B2C]={d='on'},
+ [0x2B2D]={d='on'},
+ [0x2B2E]={d='on'},
+ [0x2B2F]={d='on'},
+ [0x2B30]={d='on'},
+ [0x2B31]={d='on'},
+ [0x2B32]={d='on'},
+ [0x2B33]={d='on'},
+ [0x2B34]={d='on'},
+ [0x2B35]={d='on'},
+ [0x2B36]={d='on'},
+ [0x2B37]={d='on'},
+ [0x2B38]={d='on'},
+ [0x2B39]={d='on'},
+ [0x2B3A]={d='on'},
+ [0x2B3B]={d='on'},
+ [0x2B3C]={d='on'},
+ [0x2B3D]={d='on'},
+ [0x2B3E]={d='on'},
+ [0x2B3F]={d='on'},
+ [0x2B40]={d='on'},
+ [0x2B41]={d='on'},
+ [0x2B42]={d='on'},
+ [0x2B43]={d='on'},
+ [0x2B44]={d='on'},
+ [0x2B45]={d='on'},
+ [0x2B46]={d='on'},
+ [0x2B47]={d='on'},
+ [0x2B48]={d='on'},
+ [0x2B49]={d='on'},
+ [0x2B4A]={d='on'},
+ [0x2B4B]={d='on'},
+ [0x2B4C]={d='on'},
+ [0x2B4D]={d='on'},
+ [0x2B4E]={d='on'},
+ [0x2B4F]={d='on'},
+ [0x2B50]={d='on'},
+ [0x2B51]={d='on'},
+ [0x2B52]={d='on'},
+ [0x2B53]={d='on'},
+ [0x2B54]={d='on'},
+ [0x2B55]={d='on'},
+ [0x2B56]={d='on'},
+ [0x2B57]={d='on'},
+ [0x2B58]={d='on'},
+ [0x2B59]={d='on'},
+ [0x2B5A]={d='on'},
+ [0x2B5B]={d='on'},
+ [0x2B5C]={d='on'},
+ [0x2B5D]={d='on'},
+ [0x2B5E]={d='on'},
+ [0x2B5F]={d='on'},
+ [0x2B60]={d='on'},
+ [0x2B61]={d='on'},
+ [0x2B62]={d='on'},
+ [0x2B63]={d='on'},
+ [0x2B64]={d='on'},
+ [0x2B65]={d='on'},
+ [0x2B66]={d='on'},
+ [0x2B67]={d='on'},
+ [0x2B68]={d='on'},
+ [0x2B69]={d='on'},
+ [0x2B6A]={d='on'},
+ [0x2B6B]={d='on'},
+ [0x2B6C]={d='on'},
+ [0x2B6D]={d='on'},
+ [0x2B6E]={d='on'},
+ [0x2B6F]={d='on'},
+ [0x2B70]={d='on'},
+ [0x2B71]={d='on'},
+ [0x2B72]={d='on'},
+ [0x2B73]={d='on'},
+ [0x2B76]={d='on'},
+ [0x2B77]={d='on'},
+ [0x2B78]={d='on'},
+ [0x2B79]={d='on'},
+ [0x2B7A]={d='on'},
+ [0x2B7B]={d='on'},
+ [0x2B7C]={d='on'},
+ [0x2B7D]={d='on'},
+ [0x2B7E]={d='on'},
+ [0x2B7F]={d='on'},
+ [0x2B80]={d='on'},
+ [0x2B81]={d='on'},
+ [0x2B82]={d='on'},
+ [0x2B83]={d='on'},
+ [0x2B84]={d='on'},
+ [0x2B85]={d='on'},
+ [0x2B86]={d='on'},
+ [0x2B87]={d='on'},
+ [0x2B88]={d='on'},
+ [0x2B89]={d='on'},
+ [0x2B8A]={d='on'},
+ [0x2B8B]={d='on'},
+ [0x2B8C]={d='on'},
+ [0x2B8D]={d='on'},
+ [0x2B8E]={d='on'},
+ [0x2B8F]={d='on'},
+ [0x2B90]={d='on'},
+ [0x2B91]={d='on'},
+ [0x2B92]={d='on'},
+ [0x2B93]={d='on'},
+ [0x2B94]={d='on'},
+ [0x2B95]={d='on'},
+ [0x2B98]={d='on'},
+ [0x2B99]={d='on'},
+ [0x2B9A]={d='on'},
+ [0x2B9B]={d='on'},
+ [0x2B9C]={d='on'},
+ [0x2B9D]={d='on'},
+ [0x2B9E]={d='on'},
+ [0x2B9F]={d='on'},
+ [0x2BA0]={d='on'},
+ [0x2BA1]={d='on'},
+ [0x2BA2]={d='on'},
+ [0x2BA3]={d='on'},
+ [0x2BA4]={d='on'},
+ [0x2BA5]={d='on'},
+ [0x2BA6]={d='on'},
+ [0x2BA7]={d='on'},
+ [0x2BA8]={d='on'},
+ [0x2BA9]={d='on'},
+ [0x2BAA]={d='on'},
+ [0x2BAB]={d='on'},
+ [0x2BAC]={d='on'},
+ [0x2BAD]={d='on'},
+ [0x2BAE]={d='on'},
+ [0x2BAF]={d='on'},
+ [0x2BB0]={d='on'},
+ [0x2BB1]={d='on'},
+ [0x2BB2]={d='on'},
+ [0x2BB3]={d='on'},
+ [0x2BB4]={d='on'},
+ [0x2BB5]={d='on'},
+ [0x2BB6]={d='on'},
+ [0x2BB7]={d='on'},
+ [0x2BB8]={d='on'},
+ [0x2BB9]={d='on'},
+ [0x2BBD]={d='on'},
+ [0x2BBE]={d='on'},
+ [0x2BBF]={d='on'},
+ [0x2BC0]={d='on'},
+ [0x2BC1]={d='on'},
+ [0x2BC2]={d='on'},
+ [0x2BC3]={d='on'},
+ [0x2BC4]={d='on'},
+ [0x2BC5]={d='on'},
+ [0x2BC6]={d='on'},
+ [0x2BC7]={d='on'},
+ [0x2BC8]={d='on'},
+ [0x2BCA]={d='on'},
+ [0x2BCB]={d='on'},
+ [0x2BCC]={d='on'},
+ [0x2BCD]={d='on'},
+ [0x2BCE]={d='on'},
+ [0x2BCF]={d='on'},
+ [0x2BD0]={d='on'},
+ [0x2BD1]={d='on'},
+ [0x2BEC]={d='on'},
+ [0x2BED]={d='on'},
+ [0x2BEE]={d='on'},
+ [0x2BEF]={d='on'},
+ [0x2CE5]={d='on'},
+ [0x2CE6]={d='on'},
+ [0x2CE7]={d='on'},
+ [0x2CE8]={d='on'},
+ [0x2CE9]={d='on'},
+ [0x2CEA]={d='on'},
+ [0x2CEF]={d='nsm'},
+ [0x2CF0]={d='nsm'},
+ [0x2CF1]={d='nsm'},
+ [0x2CF9]={d='on'},
+ [0x2CFA]={d='on'},
+ [0x2CFB]={d='on'},
+ [0x2CFC]={d='on'},
+ [0x2CFD]={d='on'},
+ [0x2CFE]={d='on'},
+ [0x2CFF]={d='on'},
+ [0x2D7F]={d='nsm'},
+ [0x2DE0]={d='nsm'},
+ [0x2DE1]={d='nsm'},
+ [0x2DE2]={d='nsm'},
+ [0x2DE3]={d='nsm'},
+ [0x2DE4]={d='nsm'},
+ [0x2DE5]={d='nsm'},
+ [0x2DE6]={d='nsm'},
+ [0x2DE7]={d='nsm'},
+ [0x2DE8]={d='nsm'},
+ [0x2DE9]={d='nsm'},
+ [0x2DEA]={d='nsm'},
+ [0x2DEB]={d='nsm'},
+ [0x2DEC]={d='nsm'},
+ [0x2DED]={d='nsm'},
+ [0x2DEE]={d='nsm'},
+ [0x2DEF]={d='nsm'},
+ [0x2DF0]={d='nsm'},
+ [0x2DF1]={d='nsm'},
+ [0x2DF2]={d='nsm'},
+ [0x2DF3]={d='nsm'},
+ [0x2DF4]={d='nsm'},
+ [0x2DF5]={d='nsm'},
+ [0x2DF6]={d='nsm'},
+ [0x2DF7]={d='nsm'},
+ [0x2DF8]={d='nsm'},
+ [0x2DF9]={d='nsm'},
+ [0x2DFA]={d='nsm'},
+ [0x2DFB]={d='nsm'},
+ [0x2DFC]={d='nsm'},
+ [0x2DFD]={d='nsm'},
+ [0x2DFE]={d='nsm'},
+ [0x2DFF]={d='nsm'},
+ [0x2E00]={d='on'},
+ [0x2E01]={d='on'},
+ [0x2E02]={d='on', m=0x2E03},
+ [0x2E03]={d='on', m=0x2E02},
+ [0x2E04]={d='on', m=0x2E05},
+ [0x2E05]={d='on', m=0x2E04},
+ [0x2E06]={d='on'},
+ [0x2E07]={d='on'},
+ [0x2E08]={d='on'},
+ [0x2E09]={d='on', m=0x2E0A},
+ [0x2E0A]={d='on', m=0x2E09},
+ [0x2E0B]={d='on'},
+ [0x2E0C]={d='on', m=0x2E0D},
+ [0x2E0D]={d='on', m=0x2E0C},
+ [0x2E0E]={d='on'},
+ [0x2E0F]={d='on'},
+ [0x2E10]={d='on'},
+ [0x2E11]={d='on'},
+ [0x2E12]={d='on'},
+ [0x2E13]={d='on'},
+ [0x2E14]={d='on'},
+ [0x2E15]={d='on'},
+ [0x2E16]={d='on'},
+ [0x2E17]={d='on'},
+ [0x2E18]={d='on'},
+ [0x2E19]={d='on'},
+ [0x2E1A]={d='on'},
+ [0x2E1B]={d='on'},
+ [0x2E1C]={d='on', m=0x2E1D},
+ [0x2E1D]={d='on', m=0x2E1C},
+ [0x2E1E]={d='on'},
+ [0x2E1F]={d='on'},
+ [0x2E20]={d='on', m=0x2E21},
+ [0x2E21]={d='on', m=0x2E20},
+ [0x2E22]={d='on', m=0x2E23},
+ [0x2E23]={d='on', m=0x2E22},
+ [0x2E24]={d='on', m=0x2E25},
+ [0x2E25]={d='on', m=0x2E24},
+ [0x2E26]={d='on', m=0x2E27},
+ [0x2E27]={d='on', m=0x2E26},
+ [0x2E28]={d='on', m=0x2E29},
+ [0x2E29]={d='on', m=0x2E28},
+ [0x2E2A]={d='on'},
+ [0x2E2B]={d='on'},
+ [0x2E2C]={d='on'},
+ [0x2E2D]={d='on'},
+ [0x2E2E]={d='on'},
+ [0x2E2F]={d='on'},
+ [0x2E30]={d='on'},
+ [0x2E31]={d='on'},
+ [0x2E32]={d='on'},
+ [0x2E33]={d='on'},
+ [0x2E34]={d='on'},
+ [0x2E35]={d='on'},
+ [0x2E36]={d='on'},
+ [0x2E37]={d='on'},
+ [0x2E38]={d='on'},
+ [0x2E39]={d='on'},
+ [0x2E3A]={d='on'},
+ [0x2E3B]={d='on'},
+ [0x2E3C]={d='on'},
+ [0x2E3D]={d='on'},
+ [0x2E3E]={d='on'},
+ [0x2E3F]={d='on'},
+ [0x2E40]={d='on'},
+ [0x2E41]={d='on'},
+ [0x2E42]={d='on'},
+ [0x2E43]={d='on'},
+ [0x2E44]={d='on'},
+ [0x2E80]={d='on'},
+ [0x2E81]={d='on'},
+ [0x2E82]={d='on'},
+ [0x2E83]={d='on'},
+ [0x2E84]={d='on'},
+ [0x2E85]={d='on'},
+ [0x2E86]={d='on'},
+ [0x2E87]={d='on'},
+ [0x2E88]={d='on'},
+ [0x2E89]={d='on'},
+ [0x2E8A]={d='on'},
+ [0x2E8B]={d='on'},
+ [0x2E8C]={d='on'},
+ [0x2E8D]={d='on'},
+ [0x2E8E]={d='on'},
+ [0x2E8F]={d='on'},
+ [0x2E90]={d='on'},
+ [0x2E91]={d='on'},
+ [0x2E92]={d='on'},
+ [0x2E93]={d='on'},
+ [0x2E94]={d='on'},
+ [0x2E95]={d='on'},
+ [0x2E96]={d='on'},
+ [0x2E97]={d='on'},
+ [0x2E98]={d='on'},
+ [0x2E99]={d='on'},
+ [0x2E9B]={d='on'},
+ [0x2E9C]={d='on'},
+ [0x2E9D]={d='on'},
+ [0x2E9E]={d='on'},
+ [0x2E9F]={d='on'},
+ [0x2EA0]={d='on'},
+ [0x2EA1]={d='on'},
+ [0x2EA2]={d='on'},
+ [0x2EA3]={d='on'},
+ [0x2EA4]={d='on'},
+ [0x2EA5]={d='on'},
+ [0x2EA6]={d='on'},
+ [0x2EA7]={d='on'},
+ [0x2EA8]={d='on'},
+ [0x2EA9]={d='on'},
+ [0x2EAA]={d='on'},
+ [0x2EAB]={d='on'},
+ [0x2EAC]={d='on'},
+ [0x2EAD]={d='on'},
+ [0x2EAE]={d='on'},
+ [0x2EAF]={d='on'},
+ [0x2EB0]={d='on'},
+ [0x2EB1]={d='on'},
+ [0x2EB2]={d='on'},
+ [0x2EB3]={d='on'},
+ [0x2EB4]={d='on'},
+ [0x2EB5]={d='on'},
+ [0x2EB6]={d='on'},
+ [0x2EB7]={d='on'},
+ [0x2EB8]={d='on'},
+ [0x2EB9]={d='on'},
+ [0x2EBA]={d='on'},
+ [0x2EBB]={d='on'},
+ [0x2EBC]={d='on'},
+ [0x2EBD]={d='on'},
+ [0x2EBE]={d='on'},
+ [0x2EBF]={d='on'},
+ [0x2EC0]={d='on'},
+ [0x2EC1]={d='on'},
+ [0x2EC2]={d='on'},
+ [0x2EC3]={d='on'},
+ [0x2EC4]={d='on'},
+ [0x2EC5]={d='on'},
+ [0x2EC6]={d='on'},
+ [0x2EC7]={d='on'},
+ [0x2EC8]={d='on'},
+ [0x2EC9]={d='on'},
+ [0x2ECA]={d='on'},
+ [0x2ECB]={d='on'},
+ [0x2ECC]={d='on'},
+ [0x2ECD]={d='on'},
+ [0x2ECE]={d='on'},
+ [0x2ECF]={d='on'},
+ [0x2ED0]={d='on'},
+ [0x2ED1]={d='on'},
+ [0x2ED2]={d='on'},
+ [0x2ED3]={d='on'},
+ [0x2ED4]={d='on'},
+ [0x2ED5]={d='on'},
+ [0x2ED6]={d='on'},
+ [0x2ED7]={d='on'},
+ [0x2ED8]={d='on'},
+ [0x2ED9]={d='on'},
+ [0x2EDA]={d='on'},
+ [0x2EDB]={d='on'},
+ [0x2EDC]={d='on'},
+ [0x2EDD]={d='on'},
+ [0x2EDE]={d='on'},
+ [0x2EDF]={d='on'},
+ [0x2EE0]={d='on'},
+ [0x2EE1]={d='on'},
+ [0x2EE2]={d='on'},
+ [0x2EE3]={d='on'},
+ [0x2EE4]={d='on'},
+ [0x2EE5]={d='on'},
+ [0x2EE6]={d='on'},
+ [0x2EE7]={d='on'},
+ [0x2EE8]={d='on'},
+ [0x2EE9]={d='on'},
+ [0x2EEA]={d='on'},
+ [0x2EEB]={d='on'},
+ [0x2EEC]={d='on'},
+ [0x2EED]={d='on'},
+ [0x2EEE]={d='on'},
+ [0x2EEF]={d='on'},
+ [0x2EF0]={d='on'},
+ [0x2EF1]={d='on'},
+ [0x2EF2]={d='on'},
+ [0x2EF3]={d='on'},
+ [0x2F00]={d='on'},
+ [0x2F01]={d='on'},
+ [0x2F02]={d='on'},
+ [0x2F03]={d='on'},
+ [0x2F04]={d='on'},
+ [0x2F05]={d='on'},
+ [0x2F06]={d='on'},
+ [0x2F07]={d='on'},
+ [0x2F08]={d='on'},
+ [0x2F09]={d='on'},
+ [0x2F0A]={d='on'},
+ [0x2F0B]={d='on'},
+ [0x2F0C]={d='on'},
+ [0x2F0D]={d='on'},
+ [0x2F0E]={d='on'},
+ [0x2F0F]={d='on'},
+ [0x2F10]={d='on'},
+ [0x2F11]={d='on'},
+ [0x2F12]={d='on'},
+ [0x2F13]={d='on'},
+ [0x2F14]={d='on'},
+ [0x2F15]={d='on'},
+ [0x2F16]={d='on'},
+ [0x2F17]={d='on'},
+ [0x2F18]={d='on'},
+ [0x2F19]={d='on'},
+ [0x2F1A]={d='on'},
+ [0x2F1B]={d='on'},
+ [0x2F1C]={d='on'},
+ [0x2F1D]={d='on'},
+ [0x2F1E]={d='on'},
+ [0x2F1F]={d='on'},
+ [0x2F20]={d='on'},
+ [0x2F21]={d='on'},
+ [0x2F22]={d='on'},
+ [0x2F23]={d='on'},
+ [0x2F24]={d='on'},
+ [0x2F25]={d='on'},
+ [0x2F26]={d='on'},
+ [0x2F27]={d='on'},
+ [0x2F28]={d='on'},
+ [0x2F29]={d='on'},
+ [0x2F2A]={d='on'},
+ [0x2F2B]={d='on'},
+ [0x2F2C]={d='on'},
+ [0x2F2D]={d='on'},
+ [0x2F2E]={d='on'},
+ [0x2F2F]={d='on'},
+ [0x2F30]={d='on'},
+ [0x2F31]={d='on'},
+ [0x2F32]={d='on'},
+ [0x2F33]={d='on'},
+ [0x2F34]={d='on'},
+ [0x2F35]={d='on'},
+ [0x2F36]={d='on'},
+ [0x2F37]={d='on'},
+ [0x2F38]={d='on'},
+ [0x2F39]={d='on'},
+ [0x2F3A]={d='on'},
+ [0x2F3B]={d='on'},
+ [0x2F3C]={d='on'},
+ [0x2F3D]={d='on'},
+ [0x2F3E]={d='on'},
+ [0x2F3F]={d='on'},
+ [0x2F40]={d='on'},
+ [0x2F41]={d='on'},
+ [0x2F42]={d='on'},
+ [0x2F43]={d='on'},
+ [0x2F44]={d='on'},
+ [0x2F45]={d='on'},
+ [0x2F46]={d='on'},
+ [0x2F47]={d='on'},
+ [0x2F48]={d='on'},
+ [0x2F49]={d='on'},
+ [0x2F4A]={d='on'},
+ [0x2F4B]={d='on'},
+ [0x2F4C]={d='on'},
+ [0x2F4D]={d='on'},
+ [0x2F4E]={d='on'},
+ [0x2F4F]={d='on'},
+ [0x2F50]={d='on'},
+ [0x2F51]={d='on'},
+ [0x2F52]={d='on'},
+ [0x2F53]={d='on'},
+ [0x2F54]={d='on'},
+ [0x2F55]={d='on'},
+ [0x2F56]={d='on'},
+ [0x2F57]={d='on'},
+ [0x2F58]={d='on'},
+ [0x2F59]={d='on'},
+ [0x2F5A]={d='on'},
+ [0x2F5B]={d='on'},
+ [0x2F5C]={d='on'},
+ [0x2F5D]={d='on'},
+ [0x2F5E]={d='on'},
+ [0x2F5F]={d='on'},
+ [0x2F60]={d='on'},
+ [0x2F61]={d='on'},
+ [0x2F62]={d='on'},
+ [0x2F63]={d='on'},
+ [0x2F64]={d='on'},
+ [0x2F65]={d='on'},
+ [0x2F66]={d='on'},
+ [0x2F67]={d='on'},
+ [0x2F68]={d='on'},
+ [0x2F69]={d='on'},
+ [0x2F6A]={d='on'},
+ [0x2F6B]={d='on'},
+ [0x2F6C]={d='on'},
+ [0x2F6D]={d='on'},
+ [0x2F6E]={d='on'},
+ [0x2F6F]={d='on'},
+ [0x2F70]={d='on'},
+ [0x2F71]={d='on'},
+ [0x2F72]={d='on'},
+ [0x2F73]={d='on'},
+ [0x2F74]={d='on'},
+ [0x2F75]={d='on'},
+ [0x2F76]={d='on'},
+ [0x2F77]={d='on'},
+ [0x2F78]={d='on'},
+ [0x2F79]={d='on'},
+ [0x2F7A]={d='on'},
+ [0x2F7B]={d='on'},
+ [0x2F7C]={d='on'},
+ [0x2F7D]={d='on'},
+ [0x2F7E]={d='on'},
+ [0x2F7F]={d='on'},
+ [0x2F80]={d='on'},
+ [0x2F81]={d='on'},
+ [0x2F82]={d='on'},
+ [0x2F83]={d='on'},
+ [0x2F84]={d='on'},
+ [0x2F85]={d='on'},
+ [0x2F86]={d='on'},
+ [0x2F87]={d='on'},
+ [0x2F88]={d='on'},
+ [0x2F89]={d='on'},
+ [0x2F8A]={d='on'},
+ [0x2F8B]={d='on'},
+ [0x2F8C]={d='on'},
+ [0x2F8D]={d='on'},
+ [0x2F8E]={d='on'},
+ [0x2F8F]={d='on'},
+ [0x2F90]={d='on'},
+ [0x2F91]={d='on'},
+ [0x2F92]={d='on'},
+ [0x2F93]={d='on'},
+ [0x2F94]={d='on'},
+ [0x2F95]={d='on'},
+ [0x2F96]={d='on'},
+ [0x2F97]={d='on'},
+ [0x2F98]={d='on'},
+ [0x2F99]={d='on'},
+ [0x2F9A]={d='on'},
+ [0x2F9B]={d='on'},
+ [0x2F9C]={d='on'},
+ [0x2F9D]={d='on'},
+ [0x2F9E]={d='on'},
+ [0x2F9F]={d='on'},
+ [0x2FA0]={d='on'},
+ [0x2FA1]={d='on'},
+ [0x2FA2]={d='on'},
+ [0x2FA3]={d='on'},
+ [0x2FA4]={d='on'},
+ [0x2FA5]={d='on'},
+ [0x2FA6]={d='on'},
+ [0x2FA7]={d='on'},
+ [0x2FA8]={d='on'},
+ [0x2FA9]={d='on'},
+ [0x2FAA]={d='on'},
+ [0x2FAB]={d='on'},
+ [0x2FAC]={d='on'},
+ [0x2FAD]={d='on'},
+ [0x2FAE]={d='on'},
+ [0x2FAF]={d='on'},
+ [0x2FB0]={d='on'},
+ [0x2FB1]={d='on'},
+ [0x2FB2]={d='on'},
+ [0x2FB3]={d='on'},
+ [0x2FB4]={d='on'},
+ [0x2FB5]={d='on'},
+ [0x2FB6]={d='on'},
+ [0x2FB7]={d='on'},
+ [0x2FB8]={d='on'},
+ [0x2FB9]={d='on'},
+ [0x2FBA]={d='on'},
+ [0x2FBB]={d='on'},
+ [0x2FBC]={d='on'},
+ [0x2FBD]={d='on'},
+ [0x2FBE]={d='on'},
+ [0x2FBF]={d='on'},
+ [0x2FC0]={d='on'},
+ [0x2FC1]={d='on'},
+ [0x2FC2]={d='on'},
+ [0x2FC3]={d='on'},
+ [0x2FC4]={d='on'},
+ [0x2FC5]={d='on'},
+ [0x2FC6]={d='on'},
+ [0x2FC7]={d='on'},
+ [0x2FC8]={d='on'},
+ [0x2FC9]={d='on'},
+ [0x2FCA]={d='on'},
+ [0x2FCB]={d='on'},
+ [0x2FCC]={d='on'},
+ [0x2FCD]={d='on'},
+ [0x2FCE]={d='on'},
+ [0x2FCF]={d='on'},
+ [0x2FD0]={d='on'},
+ [0x2FD1]={d='on'},
+ [0x2FD2]={d='on'},
+ [0x2FD3]={d='on'},
+ [0x2FD4]={d='on'},
+ [0x2FD5]={d='on'},
+ [0x2FF0]={d='on'},
+ [0x2FF1]={d='on'},
+ [0x2FF2]={d='on'},
+ [0x2FF3]={d='on'},
+ [0x2FF4]={d='on'},
+ [0x2FF5]={d='on'},
+ [0x2FF6]={d='on'},
+ [0x2FF7]={d='on'},
+ [0x2FF8]={d='on'},
+ [0x2FF9]={d='on'},
+ [0x2FFA]={d='on'},
+ [0x2FFB]={d='on'},
+ [0x3000]={d='ws'},
+ [0x3001]={d='on'},
+ [0x3002]={d='on'},
+ [0x3003]={d='on'},
+ [0x3004]={d='on'},
+ [0x3008]={d='on', m=0x3009},
+ [0x3009]={d='on', m=0x3008},
+ [0x300A]={d='on', m=0x300B},
+ [0x300B]={d='on', m=0x300A},
+ [0x300C]={d='on', m=0x300D},
+ [0x300D]={d='on', m=0x300C},
+ [0x300E]={d='on', m=0x300F},
+ [0x300F]={d='on', m=0x300E},
+ [0x3010]={d='on', m=0x3011},
+ [0x3011]={d='on', m=0x3010},
+ [0x3012]={d='on'},
+ [0x3013]={d='on'},
+ [0x3014]={d='on', m=0x3015},
+ [0x3015]={d='on', m=0x3014},
+ [0x3016]={d='on', m=0x3017},
+ [0x3017]={d='on', m=0x3016},
+ [0x3018]={d='on', m=0x3019},
+ [0x3019]={d='on', m=0x3018},
+ [0x301A]={d='on', m=0x301B},
+ [0x301B]={d='on', m=0x301A},
+ [0x301C]={d='on'},
+ [0x301D]={d='on'},
+ [0x301E]={d='on'},
+ [0x301F]={d='on'},
+ [0x3020]={d='on'},
+ [0x302A]={d='nsm'},
+ [0x302B]={d='nsm'},
+ [0x302C]={d='nsm'},
+ [0x302D]={d='nsm'},
+ [0x3030]={d='on'},
+ [0x3036]={d='on'},
+ [0x3037]={d='on'},
+ [0x303D]={d='on'},
+ [0x303E]={d='on'},
+ [0x303F]={d='on'},
+ [0x3099]={d='nsm'},
+ [0x309A]={d='nsm'},
+ [0x309B]={d='on'},
+ [0x309C]={d='on'},
+ [0x30A0]={d='on'},
+ [0x30FB]={d='on'},
+ [0x31C0]={d='on'},
+ [0x31C1]={d='on'},
+ [0x31C2]={d='on'},
+ [0x31C3]={d='on'},
+ [0x31C4]={d='on'},
+ [0x31C5]={d='on'},
+ [0x31C6]={d='on'},
+ [0x31C7]={d='on'},
+ [0x31C8]={d='on'},
+ [0x31C9]={d='on'},
+ [0x31CA]={d='on'},
+ [0x31CB]={d='on'},
+ [0x31CC]={d='on'},
+ [0x31CD]={d='on'},
+ [0x31CE]={d='on'},
+ [0x31CF]={d='on'},
+ [0x31D0]={d='on'},
+ [0x31D1]={d='on'},
+ [0x31D2]={d='on'},
+ [0x31D3]={d='on'},
+ [0x31D4]={d='on'},
+ [0x31D5]={d='on'},
+ [0x31D6]={d='on'},
+ [0x31D7]={d='on'},
+ [0x31D8]={d='on'},
+ [0x31D9]={d='on'},
+ [0x31DA]={d='on'},
+ [0x31DB]={d='on'},
+ [0x31DC]={d='on'},
+ [0x31DD]={d='on'},
+ [0x31DE]={d='on'},
+ [0x31DF]={d='on'},
+ [0x31E0]={d='on'},
+ [0x31E1]={d='on'},
+ [0x31E2]={d='on'},
+ [0x31E3]={d='on'},
+ [0x321D]={d='on'},
+ [0x321E]={d='on'},
+ [0x3250]={d='on'},
+ [0x3251]={d='on'},
+ [0x3252]={d='on'},
+ [0x3253]={d='on'},
+ [0x3254]={d='on'},
+ [0x3255]={d='on'},
+ [0x3256]={d='on'},
+ [0x3257]={d='on'},
+ [0x3258]={d='on'},
+ [0x3259]={d='on'},
+ [0x325A]={d='on'},
+ [0x325B]={d='on'},
+ [0x325C]={d='on'},
+ [0x325D]={d='on'},
+ [0x325E]={d='on'},
+ [0x325F]={d='on'},
+ [0x327C]={d='on'},
+ [0x327D]={d='on'},
+ [0x327E]={d='on'},
+ [0x32B1]={d='on'},
+ [0x32B2]={d='on'},
+ [0x32B3]={d='on'},
+ [0x32B4]={d='on'},
+ [0x32B5]={d='on'},
+ [0x32B6]={d='on'},
+ [0x32B7]={d='on'},
+ [0x32B8]={d='on'},
+ [0x32B9]={d='on'},
+ [0x32BA]={d='on'},
+ [0x32BB]={d='on'},
+ [0x32BC]={d='on'},
+ [0x32BD]={d='on'},
+ [0x32BE]={d='on'},
+ [0x32BF]={d='on'},
+ [0x32CC]={d='on'},
+ [0x32CD]={d='on'},
+ [0x32CE]={d='on'},
+ [0x32CF]={d='on'},
+ [0x3377]={d='on'},
+ [0x3378]={d='on'},
+ [0x3379]={d='on'},
+ [0x337A]={d='on'},
+ [0x33DE]={d='on'},
+ [0x33DF]={d='on'},
+ [0x33FF]={d='on'},
+ [0x4DC0]={d='on'},
+ [0x4DC1]={d='on'},
+ [0x4DC2]={d='on'},
+ [0x4DC3]={d='on'},
+ [0x4DC4]={d='on'},
+ [0x4DC5]={d='on'},
+ [0x4DC6]={d='on'},
+ [0x4DC7]={d='on'},
+ [0x4DC8]={d='on'},
+ [0x4DC9]={d='on'},
+ [0x4DCA]={d='on'},
+ [0x4DCB]={d='on'},
+ [0x4DCC]={d='on'},
+ [0x4DCD]={d='on'},
+ [0x4DCE]={d='on'},
+ [0x4DCF]={d='on'},
+ [0x4DD0]={d='on'},
+ [0x4DD1]={d='on'},
+ [0x4DD2]={d='on'},
+ [0x4DD3]={d='on'},
+ [0x4DD4]={d='on'},
+ [0x4DD5]={d='on'},
+ [0x4DD6]={d='on'},
+ [0x4DD7]={d='on'},
+ [0x4DD8]={d='on'},
+ [0x4DD9]={d='on'},
+ [0x4DDA]={d='on'},
+ [0x4DDB]={d='on'},
+ [0x4DDC]={d='on'},
+ [0x4DDD]={d='on'},
+ [0x4DDE]={d='on'},
+ [0x4DDF]={d='on'},
+ [0x4DE0]={d='on'},
+ [0x4DE1]={d='on'},
+ [0x4DE2]={d='on'},
+ [0x4DE3]={d='on'},
+ [0x4DE4]={d='on'},
+ [0x4DE5]={d='on'},
+ [0x4DE6]={d='on'},
+ [0x4DE7]={d='on'},
+ [0x4DE8]={d='on'},
+ [0x4DE9]={d='on'},
+ [0x4DEA]={d='on'},
+ [0x4DEB]={d='on'},
+ [0x4DEC]={d='on'},
+ [0x4DED]={d='on'},
+ [0x4DEE]={d='on'},
+ [0x4DEF]={d='on'},
+ [0x4DF0]={d='on'},
+ [0x4DF1]={d='on'},
+ [0x4DF2]={d='on'},
+ [0x4DF3]={d='on'},
+ [0x4DF4]={d='on'},
+ [0x4DF5]={d='on'},
+ [0x4DF6]={d='on'},
+ [0x4DF7]={d='on'},
+ [0x4DF8]={d='on'},
+ [0x4DF9]={d='on'},
+ [0x4DFA]={d='on'},
+ [0x4DFB]={d='on'},
+ [0x4DFC]={d='on'},
+ [0x4DFD]={d='on'},
+ [0x4DFE]={d='on'},
+ [0x4DFF]={d='on'},
+ [0xA490]={d='on'},
+ [0xA491]={d='on'},
+ [0xA492]={d='on'},
+ [0xA493]={d='on'},
+ [0xA494]={d='on'},
+ [0xA495]={d='on'},
+ [0xA496]={d='on'},
+ [0xA497]={d='on'},
+ [0xA498]={d='on'},
+ [0xA499]={d='on'},
+ [0xA49A]={d='on'},
+ [0xA49B]={d='on'},
+ [0xA49C]={d='on'},
+ [0xA49D]={d='on'},
+ [0xA49E]={d='on'},
+ [0xA49F]={d='on'},
+ [0xA4A0]={d='on'},
+ [0xA4A1]={d='on'},
+ [0xA4A2]={d='on'},
+ [0xA4A3]={d='on'},
+ [0xA4A4]={d='on'},
+ [0xA4A5]={d='on'},
+ [0xA4A6]={d='on'},
+ [0xA4A7]={d='on'},
+ [0xA4A8]={d='on'},
+ [0xA4A9]={d='on'},
+ [0xA4AA]={d='on'},
+ [0xA4AB]={d='on'},
+ [0xA4AC]={d='on'},
+ [0xA4AD]={d='on'},
+ [0xA4AE]={d='on'},
+ [0xA4AF]={d='on'},
+ [0xA4B0]={d='on'},
+ [0xA4B1]={d='on'},
+ [0xA4B2]={d='on'},
+ [0xA4B3]={d='on'},
+ [0xA4B4]={d='on'},
+ [0xA4B5]={d='on'},
+ [0xA4B6]={d='on'},
+ [0xA4B7]={d='on'},
+ [0xA4B8]={d='on'},
+ [0xA4B9]={d='on'},
+ [0xA4BA]={d='on'},
+ [0xA4BB]={d='on'},
+ [0xA4BC]={d='on'},
+ [0xA4BD]={d='on'},
+ [0xA4BE]={d='on'},
+ [0xA4BF]={d='on'},
+ [0xA4C0]={d='on'},
+ [0xA4C1]={d='on'},
+ [0xA4C2]={d='on'},
+ [0xA4C3]={d='on'},
+ [0xA4C4]={d='on'},
+ [0xA4C5]={d='on'},
+ [0xA4C6]={d='on'},
+ [0xA60D]={d='on'},
+ [0xA60E]={d='on'},
+ [0xA60F]={d='on'},
+ [0xA66F]={d='nsm'},
+ [0xA670]={d='nsm'},
+ [0xA671]={d='nsm'},
+ [0xA672]={d='nsm'},
+ [0xA673]={d='on'},
+ [0xA674]={d='nsm'},
+ [0xA675]={d='nsm'},
+ [0xA676]={d='nsm'},
+ [0xA677]={d='nsm'},
+ [0xA678]={d='nsm'},
+ [0xA679]={d='nsm'},
+ [0xA67A]={d='nsm'},
+ [0xA67B]={d='nsm'},
+ [0xA67C]={d='nsm'},
+ [0xA67D]={d='nsm'},
+ [0xA67E]={d='on'},
+ [0xA67F]={d='on'},
+ [0xA69E]={d='nsm'},
+ [0xA69F]={d='nsm'},
+ [0xA6F0]={d='nsm'},
+ [0xA6F1]={d='nsm'},
+ [0xA700]={d='on'},
+ [0xA701]={d='on'},
+ [0xA702]={d='on'},
+ [0xA703]={d='on'},
+ [0xA704]={d='on'},
+ [0xA705]={d='on'},
+ [0xA706]={d='on'},
+ [0xA707]={d='on'},
+ [0xA708]={d='on'},
+ [0xA709]={d='on'},
+ [0xA70A]={d='on'},
+ [0xA70B]={d='on'},
+ [0xA70C]={d='on'},
+ [0xA70D]={d='on'},
+ [0xA70E]={d='on'},
+ [0xA70F]={d='on'},
+ [0xA710]={d='on'},
+ [0xA711]={d='on'},
+ [0xA712]={d='on'},
+ [0xA713]={d='on'},
+ [0xA714]={d='on'},
+ [0xA715]={d='on'},
+ [0xA716]={d='on'},
+ [0xA717]={d='on'},
+ [0xA718]={d='on'},
+ [0xA719]={d='on'},
+ [0xA71A]={d='on'},
+ [0xA71B]={d='on'},
+ [0xA71C]={d='on'},
+ [0xA71D]={d='on'},
+ [0xA71E]={d='on'},
+ [0xA71F]={d='on'},
+ [0xA720]={d='on'},
+ [0xA721]={d='on'},
+ [0xA788]={d='on'},
+ [0xA802]={d='nsm'},
+ [0xA806]={d='nsm'},
+ [0xA80B]={d='nsm'},
+ [0xA825]={d='nsm'},
+ [0xA826]={d='nsm'},
+ [0xA828]={d='on'},
+ [0xA829]={d='on'},
+ [0xA82A]={d='on'},
+ [0xA82B]={d='on'},
+ [0xA838]={d='et'},
+ [0xA839]={d='et'},
+ [0xA874]={d='on'},
+ [0xA875]={d='on'},
+ [0xA876]={d='on'},
+ [0xA877]={d='on'},
+ [0xA8C4]={d='nsm'},
+ [0xA8C5]={d='nsm'},
+ [0xA8E0]={d='nsm'},
+ [0xA8E1]={d='nsm'},
+ [0xA8E2]={d='nsm'},
+ [0xA8E3]={d='nsm'},
+ [0xA8E4]={d='nsm'},
+ [0xA8E5]={d='nsm'},
+ [0xA8E6]={d='nsm'},
+ [0xA8E7]={d='nsm'},
+ [0xA8E8]={d='nsm'},
+ [0xA8E9]={d='nsm'},
+ [0xA8EA]={d='nsm'},
+ [0xA8EB]={d='nsm'},
+ [0xA8EC]={d='nsm'},
+ [0xA8ED]={d='nsm'},
+ [0xA8EE]={d='nsm'},
+ [0xA8EF]={d='nsm'},
+ [0xA8F0]={d='nsm'},
+ [0xA8F1]={d='nsm'},
+ [0xA926]={d='nsm'},
+ [0xA927]={d='nsm'},
+ [0xA928]={d='nsm'},
+ [0xA929]={d='nsm'},
+ [0xA92A]={d='nsm'},
+ [0xA92B]={d='nsm'},
+ [0xA92C]={d='nsm'},
+ [0xA92D]={d='nsm'},
+ [0xA947]={d='nsm'},
+ [0xA948]={d='nsm'},
+ [0xA949]={d='nsm'},
+ [0xA94A]={d='nsm'},
+ [0xA94B]={d='nsm'},
+ [0xA94C]={d='nsm'},
+ [0xA94D]={d='nsm'},
+ [0xA94E]={d='nsm'},
+ [0xA94F]={d='nsm'},
+ [0xA950]={d='nsm'},
+ [0xA951]={d='nsm'},
+ [0xA980]={d='nsm'},
+ [0xA981]={d='nsm'},
+ [0xA982]={d='nsm'},
+ [0xA9B3]={d='nsm'},
+ [0xA9B6]={d='nsm'},
+ [0xA9B7]={d='nsm'},
+ [0xA9B8]={d='nsm'},
+ [0xA9B9]={d='nsm'},
+ [0xA9BC]={d='nsm'},
+ [0xA9E5]={d='nsm'},
+ [0xAA29]={d='nsm'},
+ [0xAA2A]={d='nsm'},
+ [0xAA2B]={d='nsm'},
+ [0xAA2C]={d='nsm'},
+ [0xAA2D]={d='nsm'},
+ [0xAA2E]={d='nsm'},
+ [0xAA31]={d='nsm'},
+ [0xAA32]={d='nsm'},
+ [0xAA35]={d='nsm'},
+ [0xAA36]={d='nsm'},
+ [0xAA43]={d='nsm'},
+ [0xAA4C]={d='nsm'},
+ [0xAA7C]={d='nsm'},
+ [0xAAB0]={d='nsm'},
+ [0xAAB2]={d='nsm'},
+ [0xAAB3]={d='nsm'},
+ [0xAAB4]={d='nsm'},
+ [0xAAB7]={d='nsm'},
+ [0xAAB8]={d='nsm'},
+ [0xAABE]={d='nsm'},
+ [0xAABF]={d='nsm'},
+ [0xAAC1]={d='nsm'},
+ [0xAAEC]={d='nsm'},
+ [0xAAED]={d='nsm'},
+ [0xAAF6]={d='nsm'},
+ [0xABE5]={d='nsm'},
+ [0xABE8]={d='nsm'},
+ [0xABED]={d='nsm'},
+ [0xFB1E]={d='nsm'},
+ [0xFB29]={d='es'},
+ [0xFD3E]={d='on'},
+ [0xFD3F]={d='on'},
+ [0xFDFD]={d='on'},
+ [0xFE10]={d='on'},
+ [0xFE11]={d='on'},
+ [0xFE12]={d='on'},
+ [0xFE13]={d='on'},
+ [0xFE14]={d='on'},
+ [0xFE15]={d='on'},
+ [0xFE16]={d='on'},
+ [0xFE17]={d='on'},
+ [0xFE18]={d='on'},
+ [0xFE19]={d='on'},
+ [0xFE20]={d='nsm'},
+ [0xFE21]={d='nsm'},
+ [0xFE22]={d='nsm'},
+ [0xFE23]={d='nsm'},
+ [0xFE24]={d='nsm'},
+ [0xFE25]={d='nsm'},
+ [0xFE26]={d='nsm'},
+ [0xFE27]={d='nsm'},
+ [0xFE28]={d='nsm'},
+ [0xFE29]={d='nsm'},
+ [0xFE2A]={d='nsm'},
+ [0xFE2B]={d='nsm'},
+ [0xFE2C]={d='nsm'},
+ [0xFE2D]={d='nsm'},
+ [0xFE2E]={d='nsm'},
+ [0xFE2F]={d='nsm'},
+ [0xFE30]={d='on'},
+ [0xFE31]={d='on'},
+ [0xFE32]={d='on'},
+ [0xFE33]={d='on'},
+ [0xFE34]={d='on'},
+ [0xFE35]={d='on'},
+ [0xFE36]={d='on'},
+ [0xFE37]={d='on'},
+ [0xFE38]={d='on'},
+ [0xFE39]={d='on'},
+ [0xFE3A]={d='on'},
+ [0xFE3B]={d='on'},
+ [0xFE3C]={d='on'},
+ [0xFE3D]={d='on'},
+ [0xFE3E]={d='on'},
+ [0xFE3F]={d='on'},
+ [0xFE40]={d='on'},
+ [0xFE41]={d='on'},
+ [0xFE42]={d='on'},
+ [0xFE43]={d='on'},
+ [0xFE44]={d='on'},
+ [0xFE45]={d='on'},
+ [0xFE46]={d='on'},
+ [0xFE47]={d='on'},
+ [0xFE48]={d='on'},
+ [0xFE49]={d='on'},
+ [0xFE4A]={d='on'},
+ [0xFE4B]={d='on'},
+ [0xFE4C]={d='on'},
+ [0xFE4D]={d='on'},
+ [0xFE4E]={d='on'},
+ [0xFE4F]={d='on'},
+ [0xFE50]={d='cs'},
+ [0xFE51]={d='on'},
+ [0xFE52]={d='cs'},
+ [0xFE54]={d='on'},
+ [0xFE55]={d='cs'},
+ [0xFE56]={d='on'},
+ [0xFE57]={d='on'},
+ [0xFE58]={d='on'},
+ [0xFE59]={d='on', m=0xFE5A},
+ [0xFE5A]={d='on', m=0xFE59},
+ [0xFE5B]={d='on', m=0xFE5C},
+ [0xFE5C]={d='on', m=0xFE5B},
+ [0xFE5D]={d='on', m=0xFE5E},
+ [0xFE5E]={d='on', m=0xFE5D},
+ [0xFE5F]={d='et'},
+ [0xFE60]={d='on'},
+ [0xFE61]={d='on'},
+ [0xFE62]={d='es'},
+ [0xFE63]={d='es'},
+ [0xFE64]={d='on', m=0xFE65},
+ [0xFE65]={d='on', m=0xFE64},
+ [0xFE66]={d='on'},
+ [0xFE68]={d='on'},
+ [0xFE69]={d='et'},
+ [0xFE6A]={d='et'},
+ [0xFE6B]={d='on'},
+ [0xFEFF]={d='bn'},
+ [0xFF01]={d='on'},
+ [0xFF02]={d='on'},
+ [0xFF03]={d='et'},
+ [0xFF04]={d='et'},
+ [0xFF05]={d='et'},
+ [0xFF06]={d='on'},
+ [0xFF07]={d='on'},
+ [0xFF08]={d='on', m=0xFF09},
+ [0xFF09]={d='on', m=0xFF08},
+ [0xFF0A]={d='on'},
+ [0xFF0B]={d='es'},
+ [0xFF0C]={d='cs'},
+ [0xFF0D]={d='es'},
+ [0xFF0E]={d='cs'},
+ [0xFF0F]={d='cs'},
+ [0xFF10]={d='en'},
+ [0xFF11]={d='en'},
+ [0xFF12]={d='en'},
+ [0xFF13]={d='en'},
+ [0xFF14]={d='en'},
+ [0xFF15]={d='en'},
+ [0xFF16]={d='en'},
+ [0xFF17]={d='en'},
+ [0xFF18]={d='en'},
+ [0xFF19]={d='en'},
+ [0xFF1A]={d='cs'},
+ [0xFF1B]={d='on'},
+ [0xFF1C]={d='on', m=0xFF1E},
+ [0xFF1D]={d='on'},
+ [0xFF1E]={d='on', m=0xFF1C},
+ [0xFF1F]={d='on'},
+ [0xFF20]={d='on'},
+ [0xFF3B]={d='on', m=0xFF3D},
+ [0xFF3C]={d='on'},
+ [0xFF3D]={d='on', m=0xFF3B},
+ [0xFF3E]={d='on'},
+ [0xFF3F]={d='on'},
+ [0xFF40]={d='on'},
+ [0xFF5B]={d='on', m=0xFF5D},
+ [0xFF5C]={d='on'},
+ [0xFF5D]={d='on', m=0xFF5B},
+ [0xFF5E]={d='on'},
+ [0xFF5F]={d='on', m=0xFF60},
+ [0xFF60]={d='on', m=0xFF5F},
+ [0xFF61]={d='on'},
+ [0xFF62]={d='on', m=0xFF63},
+ [0xFF63]={d='on', m=0xFF62},
+ [0xFF64]={d='on'},
+ [0xFF65]={d='on'},
+ [0xFFE0]={d='et'},
+ [0xFFE1]={d='et'},
+ [0xFFE2]={d='on'},
+ [0xFFE3]={d='on'},
+ [0xFFE4]={d='on'},
+ [0xFFE5]={d='et'},
+ [0xFFE6]={d='et'},
+ [0xFFE8]={d='on'},
+ [0xFFE9]={d='on'},
+ [0xFFEA]={d='on'},
+ [0xFFEB]={d='on'},
+ [0xFFEC]={d='on'},
+ [0xFFED]={d='on'},
+ [0xFFEE]={d='on'},
+ [0xFFF9]={d='on'},
+ [0xFFFA]={d='on'},
+ [0xFFFB]={d='on'},
+ [0xFFFC]={d='on'},
+ [0xFFFD]={d='on'},
+ [0x10101]={d='on'},
+ [0x10140]={d='on'},
+ [0x10141]={d='on'},
+ [0x10142]={d='on'},
+ [0x10143]={d='on'},
+ [0x10144]={d='on'},
+ [0x10145]={d='on'},
+ [0x10146]={d='on'},
+ [0x10147]={d='on'},
+ [0x10148]={d='on'},
+ [0x10149]={d='on'},
+ [0x1014A]={d='on'},
+ [0x1014B]={d='on'},
+ [0x1014C]={d='on'},
+ [0x1014D]={d='on'},
+ [0x1014E]={d='on'},
+ [0x1014F]={d='on'},
+ [0x10150]={d='on'},
+ [0x10151]={d='on'},
+ [0x10152]={d='on'},
+ [0x10153]={d='on'},
+ [0x10154]={d='on'},
+ [0x10155]={d='on'},
+ [0x10156]={d='on'},
+ [0x10157]={d='on'},
+ [0x10158]={d='on'},
+ [0x10159]={d='on'},
+ [0x1015A]={d='on'},
+ [0x1015B]={d='on'},
+ [0x1015C]={d='on'},
+ [0x1015D]={d='on'},
+ [0x1015E]={d='on'},
+ [0x1015F]={d='on'},
+ [0x10160]={d='on'},
+ [0x10161]={d='on'},
+ [0x10162]={d='on'},
+ [0x10163]={d='on'},
+ [0x10164]={d='on'},
+ [0x10165]={d='on'},
+ [0x10166]={d='on'},
+ [0x10167]={d='on'},
+ [0x10168]={d='on'},
+ [0x10169]={d='on'},
+ [0x1016A]={d='on'},
+ [0x1016B]={d='on'},
+ [0x1016C]={d='on'},
+ [0x1016D]={d='on'},
+ [0x1016E]={d='on'},
+ [0x1016F]={d='on'},
+ [0x10170]={d='on'},
+ [0x10171]={d='on'},
+ [0x10172]={d='on'},
+ [0x10173]={d='on'},
+ [0x10174]={d='on'},
+ [0x10175]={d='on'},
+ [0x10176]={d='on'},
+ [0x10177]={d='on'},
+ [0x10178]={d='on'},
+ [0x10179]={d='on'},
+ [0x1017A]={d='on'},
+ [0x1017B]={d='on'},
+ [0x1017C]={d='on'},
+ [0x1017D]={d='on'},
+ [0x1017E]={d='on'},
+ [0x1017F]={d='on'},
+ [0x10180]={d='on'},
+ [0x10181]={d='on'},
+ [0x10182]={d='on'},
+ [0x10183]={d='on'},
+ [0x10184]={d='on'},
+ [0x10185]={d='on'},
+ [0x10186]={d='on'},
+ [0x10187]={d='on'},
+ [0x10188]={d='on'},
+ [0x10189]={d='on'},
+ [0x1018A]={d='on'},
+ [0x1018B]={d='on'},
+ [0x1018C]={d='on'},
+ [0x10190]={d='on'},
+ [0x10191]={d='on'},
+ [0x10192]={d='on'},
+ [0x10193]={d='on'},
+ [0x10194]={d='on'},
+ [0x10195]={d='on'},
+ [0x10196]={d='on'},
+ [0x10197]={d='on'},
+ [0x10198]={d='on'},
+ [0x10199]={d='on'},
+ [0x1019A]={d='on'},
+ [0x1019B]={d='on'},
+ [0x101A0]={d='on'},
+ [0x101FD]={d='nsm'},
+ [0x102E0]={d='nsm'},
+ [0x102E1]={d='en'},
+ [0x102E2]={d='en'},
+ [0x102E3]={d='en'},
+ [0x102E4]={d='en'},
+ [0x102E5]={d='en'},
+ [0x102E6]={d='en'},
+ [0x102E7]={d='en'},
+ [0x102E8]={d='en'},
+ [0x102E9]={d='en'},
+ [0x102EA]={d='en'},
+ [0x102EB]={d='en'},
+ [0x102EC]={d='en'},
+ [0x102ED]={d='en'},
+ [0x102EE]={d='en'},
+ [0x102EF]={d='en'},
+ [0x102F0]={d='en'},
+ [0x102F1]={d='en'},
+ [0x102F2]={d='en'},
+ [0x102F3]={d='en'},
+ [0x102F4]={d='en'},
+ [0x102F5]={d='en'},
+ [0x102F6]={d='en'},
+ [0x102F7]={d='en'},
+ [0x102F8]={d='en'},
+ [0x102F9]={d='en'},
+ [0x102FA]={d='en'},
+ [0x102FB]={d='en'},
+ [0x10376]={d='nsm'},
+ [0x10377]={d='nsm'},
+ [0x10378]={d='nsm'},
+ [0x10379]={d='nsm'},
+ [0x1037A]={d='nsm'},
+ [0x1091F]={d='on'},
+ [0x10A01]={d='nsm'},
+ [0x10A02]={d='nsm'},
+ [0x10A03]={d='nsm'},
+ [0x10A05]={d='nsm'},
+ [0x10A06]={d='nsm'},
+ [0x10A0C]={d='nsm'},
+ [0x10A0D]={d='nsm'},
+ [0x10A0E]={d='nsm'},
+ [0x10A0F]={d='nsm'},
+ [0x10A38]={d='nsm'},
+ [0x10A39]={d='nsm'},
+ [0x10A3A]={d='nsm'},
+ [0x10A3F]={d='nsm'},
+ [0x10AE5]={d='nsm'},
+ [0x10AE6]={d='nsm'},
+ [0x10B39]={d='on'},
+ [0x10B3A]={d='on'},
+ [0x10B3B]={d='on'},
+ [0x10B3C]={d='on'},
+ [0x10B3D]={d='on'},
+ [0x10B3E]={d='on'},
+ [0x10B3F]={d='on'},
+ [0x10C80]={d='r'},
+ [0x10C81]={d='r'},
+ [0x10C82]={d='r'},
+ [0x10C83]={d='r'},
+ [0x10C84]={d='r'},
+ [0x10C85]={d='r'},
+ [0x10C86]={d='r'},
+ [0x10C87]={d='r'},
+ [0x10C88]={d='r'},
+ [0x10C89]={d='r'},
+ [0x10C8A]={d='r'},
+ [0x10C8B]={d='r'},
+ [0x10C8C]={d='r'},
+ [0x10C8D]={d='r'},
+ [0x10C8E]={d='r'},
+ [0x10C8F]={d='r'},
+ [0x10C90]={d='r'},
+ [0x10C91]={d='r'},
+ [0x10C92]={d='r'},
+ [0x10C93]={d='r'},
+ [0x10C94]={d='r'},
+ [0x10C95]={d='r'},
+ [0x10C96]={d='r'},
+ [0x10C97]={d='r'},
+ [0x10C98]={d='r'},
+ [0x10C99]={d='r'},
+ [0x10C9A]={d='r'},
+ [0x10C9B]={d='r'},
+ [0x10C9C]={d='r'},
+ [0x10C9D]={d='r'},
+ [0x10C9E]={d='r'},
+ [0x10C9F]={d='r'},
+ [0x10CA0]={d='r'},
+ [0x10CA1]={d='r'},
+ [0x10CA2]={d='r'},
+ [0x10CA3]={d='r'},
+ [0x10CA4]={d='r'},
+ [0x10CA5]={d='r'},
+ [0x10CA6]={d='r'},
+ [0x10CA7]={d='r'},
+ [0x10CA8]={d='r'},
+ [0x10CA9]={d='r'},
+ [0x10CAA]={d='r'},
+ [0x10CAB]={d='r'},
+ [0x10CAC]={d='r'},
+ [0x10CAD]={d='r'},
+ [0x10CAE]={d='r'},
+ [0x10CAF]={d='r'},
+ [0x10CB0]={d='r'},
+ [0x10CB1]={d='r'},
+ [0x10CB2]={d='r'},
+ [0x10CC0]={d='r'},
+ [0x10CC1]={d='r'},
+ [0x10CC2]={d='r'},
+ [0x10CC3]={d='r'},
+ [0x10CC4]={d='r'},
+ [0x10CC5]={d='r'},
+ [0x10CC6]={d='r'},
+ [0x10CC7]={d='r'},
+ [0x10CC8]={d='r'},
+ [0x10CC9]={d='r'},
+ [0x10CCA]={d='r'},
+ [0x10CCB]={d='r'},
+ [0x10CCC]={d='r'},
+ [0x10CCD]={d='r'},
+ [0x10CCE]={d='r'},
+ [0x10CCF]={d='r'},
+ [0x10CD0]={d='r'},
+ [0x10CD1]={d='r'},
+ [0x10CD2]={d='r'},
+ [0x10CD3]={d='r'},
+ [0x10CD4]={d='r'},
+ [0x10CD5]={d='r'},
+ [0x10CD6]={d='r'},
+ [0x10CD7]={d='r'},
+ [0x10CD8]={d='r'},
+ [0x10CD9]={d='r'},
+ [0x10CDA]={d='r'},
+ [0x10CDB]={d='r'},
+ [0x10CDC]={d='r'},
+ [0x10CDD]={d='r'},
+ [0x10CDE]={d='r'},
+ [0x10CDF]={d='r'},
+ [0x10CE0]={d='r'},
+ [0x10CE1]={d='r'},
+ [0x10CE2]={d='r'},
+ [0x10CE3]={d='r'},
+ [0x10CE4]={d='r'},
+ [0x10CE5]={d='r'},
+ [0x10CE6]={d='r'},
+ [0x10CE7]={d='r'},
+ [0x10CE8]={d='r'},
+ [0x10CE9]={d='r'},
+ [0x10CEA]={d='r'},
+ [0x10CEB]={d='r'},
+ [0x10CEC]={d='r'},
+ [0x10CED]={d='r'},
+ [0x10CEE]={d='r'},
+ [0x10CEF]={d='r'},
+ [0x10CF0]={d='r'},
+ [0x10CF1]={d='r'},
+ [0x10CF2]={d='r'},
+ [0x10CFA]={d='r'},
+ [0x10CFB]={d='r'},
+ [0x10CFC]={d='r'},
+ [0x10CFD]={d='r'},
+ [0x10CFE]={d='r'},
+ [0x10CFF]={d='r'},
+ [0x10E60]={d='an'},
+ [0x10E61]={d='an'},
+ [0x10E62]={d='an'},
+ [0x10E63]={d='an'},
+ [0x10E64]={d='an'},
+ [0x10E65]={d='an'},
+ [0x10E66]={d='an'},
+ [0x10E67]={d='an'},
+ [0x10E68]={d='an'},
+ [0x10E69]={d='an'},
+ [0x10E6A]={d='an'},
+ [0x10E6B]={d='an'},
+ [0x10E6C]={d='an'},
+ [0x10E6D]={d='an'},
+ [0x10E6E]={d='an'},
+ [0x10E6F]={d='an'},
+ [0x10E70]={d='an'},
+ [0x10E71]={d='an'},
+ [0x10E72]={d='an'},
+ [0x10E73]={d='an'},
+ [0x10E74]={d='an'},
+ [0x10E75]={d='an'},
+ [0x10E76]={d='an'},
+ [0x10E77]={d='an'},
+ [0x10E78]={d='an'},
+ [0x10E79]={d='an'},
+ [0x10E7A]={d='an'},
+ [0x10E7B]={d='an'},
+ [0x10E7C]={d='an'},
+ [0x10E7D]={d='an'},
+ [0x10E7E]={d='an'},
+ [0x11001]={d='nsm'},
+ [0x11038]={d='nsm'},
+ [0x11039]={d='nsm'},
+ [0x1103A]={d='nsm'},
+ [0x1103B]={d='nsm'},
+ [0x1103C]={d='nsm'},
+ [0x1103D]={d='nsm'},
+ [0x1103E]={d='nsm'},
+ [0x1103F]={d='nsm'},
+ [0x11040]={d='nsm'},
+ [0x11041]={d='nsm'},
+ [0x11042]={d='nsm'},
+ [0x11043]={d='nsm'},
+ [0x11044]={d='nsm'},
+ [0x11045]={d='nsm'},
+ [0x11046]={d='nsm'},
+ [0x11052]={d='on'},
+ [0x11053]={d='on'},
+ [0x11054]={d='on'},
+ [0x11055]={d='on'},
+ [0x11056]={d='on'},
+ [0x11057]={d='on'},
+ [0x11058]={d='on'},
+ [0x11059]={d='on'},
+ [0x1105A]={d='on'},
+ [0x1105B]={d='on'},
+ [0x1105C]={d='on'},
+ [0x1105D]={d='on'},
+ [0x1105E]={d='on'},
+ [0x1105F]={d='on'},
+ [0x11060]={d='on'},
+ [0x11061]={d='on'},
+ [0x11062]={d='on'},
+ [0x11063]={d='on'},
+ [0x11064]={d='on'},
+ [0x11065]={d='on'},
+ [0x1107F]={d='nsm'},
+ [0x11080]={d='nsm'},
+ [0x11081]={d='nsm'},
+ [0x110B3]={d='nsm'},
+ [0x110B4]={d='nsm'},
+ [0x110B5]={d='nsm'},
+ [0x110B6]={d='nsm'},
+ [0x110B9]={d='nsm'},
+ [0x110BA]={d='nsm'},
+ [0x11100]={d='nsm'},
+ [0x11101]={d='nsm'},
+ [0x11102]={d='nsm'},
+ [0x11127]={d='nsm'},
+ [0x11128]={d='nsm'},
+ [0x11129]={d='nsm'},
+ [0x1112A]={d='nsm'},
+ [0x1112B]={d='nsm'},
+ [0x1112D]={d='nsm'},
+ [0x1112E]={d='nsm'},
+ [0x1112F]={d='nsm'},
+ [0x11130]={d='nsm'},
+ [0x11131]={d='nsm'},
+ [0x11132]={d='nsm'},
+ [0x11133]={d='nsm'},
+ [0x11134]={d='nsm'},
+ [0x11173]={d='nsm'},
+ [0x11180]={d='nsm'},
+ [0x11181]={d='nsm'},
+ [0x111B6]={d='nsm'},
+ [0x111B7]={d='nsm'},
+ [0x111B8]={d='nsm'},
+ [0x111B9]={d='nsm'},
+ [0x111BA]={d='nsm'},
+ [0x111BB]={d='nsm'},
+ [0x111BC]={d='nsm'},
+ [0x111BD]={d='nsm'},
+ [0x111BE]={d='nsm'},
+ [0x111CA]={d='nsm'},
+ [0x111CB]={d='nsm'},
+ [0x111CC]={d='nsm'},
+ [0x1122F]={d='nsm'},
+ [0x11230]={d='nsm'},
+ [0x11231]={d='nsm'},
+ [0x11234]={d='nsm'},
+ [0x11236]={d='nsm'},
+ [0x11237]={d='nsm'},
+ [0x1123E]={d='nsm'},
+ [0x112DF]={d='nsm'},
+ [0x112E3]={d='nsm'},
+ [0x112E4]={d='nsm'},
+ [0x112E5]={d='nsm'},
+ [0x112E6]={d='nsm'},
+ [0x112E7]={d='nsm'},
+ [0x112E8]={d='nsm'},
+ [0x112E9]={d='nsm'},
+ [0x112EA]={d='nsm'},
+ [0x11300]={d='nsm'},
+ [0x11301]={d='nsm'},
+ [0x1133C]={d='nsm'},
+ [0x11340]={d='nsm'},
+ [0x11366]={d='nsm'},
+ [0x11367]={d='nsm'},
+ [0x11368]={d='nsm'},
+ [0x11369]={d='nsm'},
+ [0x1136A]={d='nsm'},
+ [0x1136B]={d='nsm'},
+ [0x1136C]={d='nsm'},
+ [0x11370]={d='nsm'},
+ [0x11371]={d='nsm'},
+ [0x11372]={d='nsm'},
+ [0x11373]={d='nsm'},
+ [0x11374]={d='nsm'},
+ [0x11438]={d='nsm'},
+ [0x11439]={d='nsm'},
+ [0x1143A]={d='nsm'},
+ [0x1143B]={d='nsm'},
+ [0x1143C]={d='nsm'},
+ [0x1143D]={d='nsm'},
+ [0x1143E]={d='nsm'},
+ [0x1143F]={d='nsm'},
+ [0x11442]={d='nsm'},
+ [0x11443]={d='nsm'},
+ [0x11444]={d='nsm'},
+ [0x11446]={d='nsm'},
+ [0x114B3]={d='nsm'},
+ [0x114B4]={d='nsm'},
+ [0x114B5]={d='nsm'},
+ [0x114B6]={d='nsm'},
+ [0x114B7]={d='nsm'},
+ [0x114B8]={d='nsm'},
+ [0x114BA]={d='nsm'},
+ [0x114BF]={d='nsm'},
+ [0x114C0]={d='nsm'},
+ [0x114C2]={d='nsm'},
+ [0x114C3]={d='nsm'},
+ [0x115B2]={d='nsm'},
+ [0x115B3]={d='nsm'},
+ [0x115B4]={d='nsm'},
+ [0x115B5]={d='nsm'},
+ [0x115BC]={d='nsm'},
+ [0x115BD]={d='nsm'},
+ [0x115BF]={d='nsm'},
+ [0x115C0]={d='nsm'},
+ [0x115DC]={d='nsm'},
+ [0x115DD]={d='nsm'},
+ [0x11633]={d='nsm'},
+ [0x11634]={d='nsm'},
+ [0x11635]={d='nsm'},
+ [0x11636]={d='nsm'},
+ [0x11637]={d='nsm'},
+ [0x11638]={d='nsm'},
+ [0x11639]={d='nsm'},
+ [0x1163A]={d='nsm'},
+ [0x1163D]={d='nsm'},
+ [0x1163F]={d='nsm'},
+ [0x11640]={d='nsm'},
+ [0x11660]={d='on'},
+ [0x11661]={d='on'},
+ [0x11662]={d='on'},
+ [0x11663]={d='on'},
+ [0x11664]={d='on'},
+ [0x11665]={d='on'},
+ [0x11666]={d='on'},
+ [0x11667]={d='on'},
+ [0x11668]={d='on'},
+ [0x11669]={d='on'},
+ [0x1166A]={d='on'},
+ [0x1166B]={d='on'},
+ [0x1166C]={d='on'},
+ [0x116AB]={d='nsm'},
+ [0x116AD]={d='nsm'},
+ [0x116B0]={d='nsm'},
+ [0x116B1]={d='nsm'},
+ [0x116B2]={d='nsm'},
+ [0x116B3]={d='nsm'},
+ [0x116B4]={d='nsm'},
+ [0x116B5]={d='nsm'},
+ [0x116B7]={d='nsm'},
+ [0x1171D]={d='nsm'},
+ [0x1171E]={d='nsm'},
+ [0x1171F]={d='nsm'},
+ [0x11722]={d='nsm'},
+ [0x11723]={d='nsm'},
+ [0x11724]={d='nsm'},
+ [0x11725]={d='nsm'},
+ [0x11727]={d='nsm'},
+ [0x11728]={d='nsm'},
+ [0x11729]={d='nsm'},
+ [0x1172A]={d='nsm'},
+ [0x1172B]={d='nsm'},
+ [0x11C30]={d='nsm'},
+ [0x11C31]={d='nsm'},
+ [0x11C32]={d='nsm'},
+ [0x11C33]={d='nsm'},
+ [0x11C34]={d='nsm'},
+ [0x11C35]={d='nsm'},
+ [0x11C36]={d='nsm'},
+ [0x11C38]={d='nsm'},
+ [0x11C39]={d='nsm'},
+ [0x11C3A]={d='nsm'},
+ [0x11C3B]={d='nsm'},
+ [0x11C3C]={d='nsm'},
+ [0x11C3D]={d='nsm'},
+ [0x11C92]={d='nsm'},
+ [0x11C93]={d='nsm'},
+ [0x11C94]={d='nsm'},
+ [0x11C95]={d='nsm'},
+ [0x11C96]={d='nsm'},
+ [0x11C97]={d='nsm'},
+ [0x11C98]={d='nsm'},
+ [0x11C99]={d='nsm'},
+ [0x11C9A]={d='nsm'},
+ [0x11C9B]={d='nsm'},
+ [0x11C9C]={d='nsm'},
+ [0x11C9D]={d='nsm'},
+ [0x11C9E]={d='nsm'},
+ [0x11C9F]={d='nsm'},
+ [0x11CA0]={d='nsm'},
+ [0x11CA1]={d='nsm'},
+ [0x11CA2]={d='nsm'},
+ [0x11CA3]={d='nsm'},
+ [0x11CA4]={d='nsm'},
+ [0x11CA5]={d='nsm'},
+ [0x11CA6]={d='nsm'},
+ [0x11CA7]={d='nsm'},
+ [0x11CAA]={d='nsm'},
+ [0x11CAB]={d='nsm'},
+ [0x11CAC]={d='nsm'},
+ [0x11CAD]={d='nsm'},
+ [0x11CAE]={d='nsm'},
+ [0x11CAF]={d='nsm'},
+ [0x11CB0]={d='nsm'},
+ [0x11CB2]={d='nsm'},
+ [0x11CB3]={d='nsm'},
+ [0x11CB5]={d='nsm'},
+ [0x11CB6]={d='nsm'},
+ [0x16AF0]={d='nsm'},
+ [0x16AF1]={d='nsm'},
+ [0x16AF2]={d='nsm'},
+ [0x16AF3]={d='nsm'},
+ [0x16AF4]={d='nsm'},
+ [0x16B30]={d='nsm'},
+ [0x16B31]={d='nsm'},
+ [0x16B32]={d='nsm'},
+ [0x16B33]={d='nsm'},
+ [0x16B34]={d='nsm'},
+ [0x16B35]={d='nsm'},
+ [0x16B36]={d='nsm'},
+ [0x16F8F]={d='nsm'},
+ [0x16F90]={d='nsm'},
+ [0x16F91]={d='nsm'},
+ [0x16F92]={d='nsm'},
+ [0x1BC9D]={d='nsm'},
+ [0x1BC9E]={d='nsm'},
+ [0x1BCA0]={d='bn'},
+ [0x1BCA1]={d='bn'},
+ [0x1BCA2]={d='bn'},
+ [0x1BCA3]={d='bn'},
+ [0x1D167]={d='nsm'},
+ [0x1D168]={d='nsm'},
+ [0x1D169]={d='nsm'},
+ [0x1D173]={d='bn'},
+ [0x1D174]={d='bn'},
+ [0x1D175]={d='bn'},
+ [0x1D176]={d='bn'},
+ [0x1D177]={d='bn'},
+ [0x1D178]={d='bn'},
+ [0x1D179]={d='bn'},
+ [0x1D17A]={d='bn'},
+ [0x1D17B]={d='nsm'},
+ [0x1D17C]={d='nsm'},
+ [0x1D17D]={d='nsm'},
+ [0x1D17E]={d='nsm'},
+ [0x1D17F]={d='nsm'},
+ [0x1D180]={d='nsm'},
+ [0x1D181]={d='nsm'},
+ [0x1D182]={d='nsm'},
+ [0x1D185]={d='nsm'},
+ [0x1D186]={d='nsm'},
+ [0x1D187]={d='nsm'},
+ [0x1D188]={d='nsm'},
+ [0x1D189]={d='nsm'},
+ [0x1D18A]={d='nsm'},
+ [0x1D18B]={d='nsm'},
+ [0x1D1AA]={d='nsm'},
+ [0x1D1AB]={d='nsm'},
+ [0x1D1AC]={d='nsm'},
+ [0x1D1AD]={d='nsm'},
+ [0x1D200]={d='on'},
+ [0x1D201]={d='on'},
+ [0x1D202]={d='on'},
+ [0x1D203]={d='on'},
+ [0x1D204]={d='on'},
+ [0x1D205]={d='on'},
+ [0x1D206]={d='on'},
+ [0x1D207]={d='on'},
+ [0x1D208]={d='on'},
+ [0x1D209]={d='on'},
+ [0x1D20A]={d='on'},
+ [0x1D20B]={d='on'},
+ [0x1D20C]={d='on'},
+ [0x1D20D]={d='on'},
+ [0x1D20E]={d='on'},
+ [0x1D20F]={d='on'},
+ [0x1D210]={d='on'},
+ [0x1D211]={d='on'},
+ [0x1D212]={d='on'},
+ [0x1D213]={d='on'},
+ [0x1D214]={d='on'},
+ [0x1D215]={d='on'},
+ [0x1D216]={d='on'},
+ [0x1D217]={d='on'},
+ [0x1D218]={d='on'},
+ [0x1D219]={d='on'},
+ [0x1D21A]={d='on'},
+ [0x1D21B]={d='on'},
+ [0x1D21C]={d='on'},
+ [0x1D21D]={d='on'},
+ [0x1D21E]={d='on'},
+ [0x1D21F]={d='on'},
+ [0x1D220]={d='on'},
+ [0x1D221]={d='on'},
+ [0x1D222]={d='on'},
+ [0x1D223]={d='on'},
+ [0x1D224]={d='on'},
+ [0x1D225]={d='on'},
+ [0x1D226]={d='on'},
+ [0x1D227]={d='on'},
+ [0x1D228]={d='on'},
+ [0x1D229]={d='on'},
+ [0x1D22A]={d='on'},
+ [0x1D22B]={d='on'},
+ [0x1D22C]={d='on'},
+ [0x1D22D]={d='on'},
+ [0x1D22E]={d='on'},
+ [0x1D22F]={d='on'},
+ [0x1D230]={d='on'},
+ [0x1D231]={d='on'},
+ [0x1D232]={d='on'},
+ [0x1D233]={d='on'},
+ [0x1D234]={d='on'},
+ [0x1D235]={d='on'},
+ [0x1D236]={d='on'},
+ [0x1D237]={d='on'},
+ [0x1D238]={d='on'},
+ [0x1D239]={d='on'},
+ [0x1D23A]={d='on'},
+ [0x1D23B]={d='on'},
+ [0x1D23C]={d='on'},
+ [0x1D23D]={d='on'},
+ [0x1D23E]={d='on'},
+ [0x1D23F]={d='on'},
+ [0x1D240]={d='on'},
+ [0x1D241]={d='on'},
+ [0x1D242]={d='nsm'},
+ [0x1D243]={d='nsm'},
+ [0x1D244]={d='nsm'},
+ [0x1D245]={d='on'},
+ [0x1D300]={d='on'},
+ [0x1D301]={d='on'},
+ [0x1D302]={d='on'},
+ [0x1D303]={d='on'},
+ [0x1D304]={d='on'},
+ [0x1D305]={d='on'},
+ [0x1D306]={d='on'},
+ [0x1D307]={d='on'},
+ [0x1D308]={d='on'},
+ [0x1D309]={d='on'},
+ [0x1D30A]={d='on'},
+ [0x1D30B]={d='on'},
+ [0x1D30C]={d='on'},
+ [0x1D30D]={d='on'},
+ [0x1D30E]={d='on'},
+ [0x1D30F]={d='on'},
+ [0x1D310]={d='on'},
+ [0x1D311]={d='on'},
+ [0x1D312]={d='on'},
+ [0x1D313]={d='on'},
+ [0x1D314]={d='on'},
+ [0x1D315]={d='on'},
+ [0x1D316]={d='on'},
+ [0x1D317]={d='on'},
+ [0x1D318]={d='on'},
+ [0x1D319]={d='on'},
+ [0x1D31A]={d='on'},
+ [0x1D31B]={d='on'},
+ [0x1D31C]={d='on'},
+ [0x1D31D]={d='on'},
+ [0x1D31E]={d='on'},
+ [0x1D31F]={d='on'},
+ [0x1D320]={d='on'},
+ [0x1D321]={d='on'},
+ [0x1D322]={d='on'},
+ [0x1D323]={d='on'},
+ [0x1D324]={d='on'},
+ [0x1D325]={d='on'},
+ [0x1D326]={d='on'},
+ [0x1D327]={d='on'},
+ [0x1D328]={d='on'},
+ [0x1D329]={d='on'},
+ [0x1D32A]={d='on'},
+ [0x1D32B]={d='on'},
+ [0x1D32C]={d='on'},
+ [0x1D32D]={d='on'},
+ [0x1D32E]={d='on'},
+ [0x1D32F]={d='on'},
+ [0x1D330]={d='on'},
+ [0x1D331]={d='on'},
+ [0x1D332]={d='on'},
+ [0x1D333]={d='on'},
+ [0x1D334]={d='on'},
+ [0x1D335]={d='on'},
+ [0x1D336]={d='on'},
+ [0x1D337]={d='on'},
+ [0x1D338]={d='on'},
+ [0x1D339]={d='on'},
+ [0x1D33A]={d='on'},
+ [0x1D33B]={d='on'},
+ [0x1D33C]={d='on'},
+ [0x1D33D]={d='on'},
+ [0x1D33E]={d='on'},
+ [0x1D33F]={d='on'},
+ [0x1D340]={d='on'},
+ [0x1D341]={d='on'},
+ [0x1D342]={d='on'},
+ [0x1D343]={d='on'},
+ [0x1D344]={d='on'},
+ [0x1D345]={d='on'},
+ [0x1D346]={d='on'},
+ [0x1D347]={d='on'},
+ [0x1D348]={d='on'},
+ [0x1D349]={d='on'},
+ [0x1D34A]={d='on'},
+ [0x1D34B]={d='on'},
+ [0x1D34C]={d='on'},
+ [0x1D34D]={d='on'},
+ [0x1D34E]={d='on'},
+ [0x1D34F]={d='on'},
+ [0x1D350]={d='on'},
+ [0x1D351]={d='on'},
+ [0x1D352]={d='on'},
+ [0x1D353]={d='on'},
+ [0x1D354]={d='on'},
+ [0x1D355]={d='on'},
+ [0x1D356]={d='on'},
+ [0x1D6DB]={d='on'},
+ [0x1D715]={d='on'},
+ [0x1D74F]={d='on'},
+ [0x1D789]={d='on'},
+ [0x1D7C3]={d='on'},
+ [0x1D7CE]={d='en'},
+ [0x1D7CF]={d='en'},
+ [0x1D7D0]={d='en'},
+ [0x1D7D1]={d='en'},
+ [0x1D7D2]={d='en'},
+ [0x1D7D3]={d='en'},
+ [0x1D7D4]={d='en'},
+ [0x1D7D5]={d='en'},
+ [0x1D7D6]={d='en'},
+ [0x1D7D7]={d='en'},
+ [0x1D7D8]={d='en'},
+ [0x1D7D9]={d='en'},
+ [0x1D7DA]={d='en'},
+ [0x1D7DB]={d='en'},
+ [0x1D7DC]={d='en'},
+ [0x1D7DD]={d='en'},
+ [0x1D7DE]={d='en'},
+ [0x1D7DF]={d='en'},
+ [0x1D7E0]={d='en'},
+ [0x1D7E1]={d='en'},
+ [0x1D7E2]={d='en'},
+ [0x1D7E3]={d='en'},
+ [0x1D7E4]={d='en'},
+ [0x1D7E5]={d='en'},
+ [0x1D7E6]={d='en'},
+ [0x1D7E7]={d='en'},
+ [0x1D7E8]={d='en'},
+ [0x1D7E9]={d='en'},
+ [0x1D7EA]={d='en'},
+ [0x1D7EB]={d='en'},
+ [0x1D7EC]={d='en'},
+ [0x1D7ED]={d='en'},
+ [0x1D7EE]={d='en'},
+ [0x1D7EF]={d='en'},
+ [0x1D7F0]={d='en'},
+ [0x1D7F1]={d='en'},
+ [0x1D7F2]={d='en'},
+ [0x1D7F3]={d='en'},
+ [0x1D7F4]={d='en'},
+ [0x1D7F5]={d='en'},
+ [0x1D7F6]={d='en'},
+ [0x1D7F7]={d='en'},
+ [0x1D7F8]={d='en'},
+ [0x1D7F9]={d='en'},
+ [0x1D7FA]={d='en'},
+ [0x1D7FB]={d='en'},
+ [0x1D7FC]={d='en'},
+ [0x1D7FD]={d='en'},
+ [0x1D7FE]={d='en'},
+ [0x1D7FF]={d='en'},
+ [0x1DA00]={d='nsm'},
+ [0x1DA01]={d='nsm'},
+ [0x1DA02]={d='nsm'},
+ [0x1DA03]={d='nsm'},
+ [0x1DA04]={d='nsm'},
+ [0x1DA05]={d='nsm'},
+ [0x1DA06]={d='nsm'},
+ [0x1DA07]={d='nsm'},
+ [0x1DA08]={d='nsm'},
+ [0x1DA09]={d='nsm'},
+ [0x1DA0A]={d='nsm'},
+ [0x1DA0B]={d='nsm'},
+ [0x1DA0C]={d='nsm'},
+ [0x1DA0D]={d='nsm'},
+ [0x1DA0E]={d='nsm'},
+ [0x1DA0F]={d='nsm'},
+ [0x1DA10]={d='nsm'},
+ [0x1DA11]={d='nsm'},
+ [0x1DA12]={d='nsm'},
+ [0x1DA13]={d='nsm'},
+ [0x1DA14]={d='nsm'},
+ [0x1DA15]={d='nsm'},
+ [0x1DA16]={d='nsm'},
+ [0x1DA17]={d='nsm'},
+ [0x1DA18]={d='nsm'},
+ [0x1DA19]={d='nsm'},
+ [0x1DA1A]={d='nsm'},
+ [0x1DA1B]={d='nsm'},
+ [0x1DA1C]={d='nsm'},
+ [0x1DA1D]={d='nsm'},
+ [0x1DA1E]={d='nsm'},
+ [0x1DA1F]={d='nsm'},
+ [0x1DA20]={d='nsm'},
+ [0x1DA21]={d='nsm'},
+ [0x1DA22]={d='nsm'},
+ [0x1DA23]={d='nsm'},
+ [0x1DA24]={d='nsm'},
+ [0x1DA25]={d='nsm'},
+ [0x1DA26]={d='nsm'},
+ [0x1DA27]={d='nsm'},
+ [0x1DA28]={d='nsm'},
+ [0x1DA29]={d='nsm'},
+ [0x1DA2A]={d='nsm'},
+ [0x1DA2B]={d='nsm'},
+ [0x1DA2C]={d='nsm'},
+ [0x1DA2D]={d='nsm'},
+ [0x1DA2E]={d='nsm'},
+ [0x1DA2F]={d='nsm'},
+ [0x1DA30]={d='nsm'},
+ [0x1DA31]={d='nsm'},
+ [0x1DA32]={d='nsm'},
+ [0x1DA33]={d='nsm'},
+ [0x1DA34]={d='nsm'},
+ [0x1DA35]={d='nsm'},
+ [0x1DA36]={d='nsm'},
+ [0x1DA3B]={d='nsm'},
+ [0x1DA3C]={d='nsm'},
+ [0x1DA3D]={d='nsm'},
+ [0x1DA3E]={d='nsm'},
+ [0x1DA3F]={d='nsm'},
+ [0x1DA40]={d='nsm'},
+ [0x1DA41]={d='nsm'},
+ [0x1DA42]={d='nsm'},
+ [0x1DA43]={d='nsm'},
+ [0x1DA44]={d='nsm'},
+ [0x1DA45]={d='nsm'},
+ [0x1DA46]={d='nsm'},
+ [0x1DA47]={d='nsm'},
+ [0x1DA48]={d='nsm'},
+ [0x1DA49]={d='nsm'},
+ [0x1DA4A]={d='nsm'},
+ [0x1DA4B]={d='nsm'},
+ [0x1DA4C]={d='nsm'},
+ [0x1DA4D]={d='nsm'},
+ [0x1DA4E]={d='nsm'},
+ [0x1DA4F]={d='nsm'},
+ [0x1DA50]={d='nsm'},
+ [0x1DA51]={d='nsm'},
+ [0x1DA52]={d='nsm'},
+ [0x1DA53]={d='nsm'},
+ [0x1DA54]={d='nsm'},
+ [0x1DA55]={d='nsm'},
+ [0x1DA56]={d='nsm'},
+ [0x1DA57]={d='nsm'},
+ [0x1DA58]={d='nsm'},
+ [0x1DA59]={d='nsm'},
+ [0x1DA5A]={d='nsm'},
+ [0x1DA5B]={d='nsm'},
+ [0x1DA5C]={d='nsm'},
+ [0x1DA5D]={d='nsm'},
+ [0x1DA5E]={d='nsm'},
+ [0x1DA5F]={d='nsm'},
+ [0x1DA60]={d='nsm'},
+ [0x1DA61]={d='nsm'},
+ [0x1DA62]={d='nsm'},
+ [0x1DA63]={d='nsm'},
+ [0x1DA64]={d='nsm'},
+ [0x1DA65]={d='nsm'},
+ [0x1DA66]={d='nsm'},
+ [0x1DA67]={d='nsm'},
+ [0x1DA68]={d='nsm'},
+ [0x1DA69]={d='nsm'},
+ [0x1DA6A]={d='nsm'},
+ [0x1DA6B]={d='nsm'},
+ [0x1DA6C]={d='nsm'},
+ [0x1DA75]={d='nsm'},
+ [0x1DA84]={d='nsm'},
+ [0x1DA9B]={d='nsm'},
+ [0x1DA9C]={d='nsm'},
+ [0x1DA9D]={d='nsm'},
+ [0x1DA9E]={d='nsm'},
+ [0x1DA9F]={d='nsm'},
+ [0x1DAA1]={d='nsm'},
+ [0x1DAA2]={d='nsm'},
+ [0x1DAA3]={d='nsm'},
+ [0x1DAA4]={d='nsm'},
+ [0x1DAA5]={d='nsm'},
+ [0x1DAA6]={d='nsm'},
+ [0x1DAA7]={d='nsm'},
+ [0x1DAA8]={d='nsm'},
+ [0x1DAA9]={d='nsm'},
+ [0x1DAAA]={d='nsm'},
+ [0x1DAAB]={d='nsm'},
+ [0x1DAAC]={d='nsm'},
+ [0x1DAAD]={d='nsm'},
+ [0x1DAAE]={d='nsm'},
+ [0x1DAAF]={d='nsm'},
+ [0x1E000]={d='nsm'},
+ [0x1E001]={d='nsm'},
+ [0x1E002]={d='nsm'},
+ [0x1E003]={d='nsm'},
+ [0x1E004]={d='nsm'},
+ [0x1E005]={d='nsm'},
+ [0x1E006]={d='nsm'},
+ [0x1E008]={d='nsm'},
+ [0x1E009]={d='nsm'},
+ [0x1E00A]={d='nsm'},
+ [0x1E00B]={d='nsm'},
+ [0x1E00C]={d='nsm'},
+ [0x1E00D]={d='nsm'},
+ [0x1E00E]={d='nsm'},
+ [0x1E00F]={d='nsm'},
+ [0x1E010]={d='nsm'},
+ [0x1E011]={d='nsm'},
+ [0x1E012]={d='nsm'},
+ [0x1E013]={d='nsm'},
+ [0x1E014]={d='nsm'},
+ [0x1E015]={d='nsm'},
+ [0x1E016]={d='nsm'},
+ [0x1E017]={d='nsm'},
+ [0x1E018]={d='nsm'},
+ [0x1E01B]={d='nsm'},
+ [0x1E01C]={d='nsm'},
+ [0x1E01D]={d='nsm'},
+ [0x1E01E]={d='nsm'},
+ [0x1E01F]={d='nsm'},
+ [0x1E020]={d='nsm'},
+ [0x1E021]={d='nsm'},
+ [0x1E023]={d='nsm'},
+ [0x1E024]={d='nsm'},
+ [0x1E026]={d='nsm'},
+ [0x1E027]={d='nsm'},
+ [0x1E028]={d='nsm'},
+ [0x1E029]={d='nsm'},
+ [0x1E02A]={d='nsm'},
+ [0x1E8D0]={d='nsm'},
+ [0x1E8D1]={d='nsm'},
+ [0x1E8D2]={d='nsm'},
+ [0x1E8D3]={d='nsm'},
+ [0x1E8D4]={d='nsm'},
+ [0x1E8D5]={d='nsm'},
+ [0x1E8D6]={d='nsm'},
+ [0x1E944]={d='nsm'},
+ [0x1E945]={d='nsm'},
+ [0x1E946]={d='nsm'},
+ [0x1E947]={d='nsm'},
+ [0x1E948]={d='nsm'},
+ [0x1E949]={d='nsm'},
+ [0x1E94A]={d='nsm'},
+ [0x1EE00]={d='al'},
+ [0x1EE01]={d='al'},
+ [0x1EE02]={d='al'},
+ [0x1EE03]={d='al'},
+ [0x1EE05]={d='al'},
+ [0x1EE06]={d='al'},
+ [0x1EE07]={d='al'},
+ [0x1EE08]={d='al'},
+ [0x1EE09]={d='al'},
+ [0x1EE0A]={d='al'},
+ [0x1EE0B]={d='al'},
+ [0x1EE0C]={d='al'},
+ [0x1EE0D]={d='al'},
+ [0x1EE0E]={d='al'},
+ [0x1EE0F]={d='al'},
+ [0x1EE10]={d='al'},
+ [0x1EE11]={d='al'},
+ [0x1EE12]={d='al'},
+ [0x1EE13]={d='al'},
+ [0x1EE14]={d='al'},
+ [0x1EE15]={d='al'},
+ [0x1EE16]={d='al'},
+ [0x1EE17]={d='al'},
+ [0x1EE18]={d='al'},
+ [0x1EE19]={d='al'},
+ [0x1EE1A]={d='al'},
+ [0x1EE1B]={d='al'},
+ [0x1EE1C]={d='al'},
+ [0x1EE1D]={d='al'},
+ [0x1EE1E]={d='al'},
+ [0x1EE1F]={d='al'},
+ [0x1EE21]={d='al'},
+ [0x1EE22]={d='al'},
+ [0x1EE24]={d='al'},
+ [0x1EE27]={d='al'},
+ [0x1EE29]={d='al'},
+ [0x1EE2A]={d='al'},
+ [0x1EE2B]={d='al'},
+ [0x1EE2C]={d='al'},
+ [0x1EE2D]={d='al'},
+ [0x1EE2E]={d='al'},
+ [0x1EE2F]={d='al'},
+ [0x1EE30]={d='al'},
+ [0x1EE31]={d='al'},
+ [0x1EE32]={d='al'},
+ [0x1EE34]={d='al'},
+ [0x1EE35]={d='al'},
+ [0x1EE36]={d='al'},
+ [0x1EE37]={d='al'},
+ [0x1EE39]={d='al'},
+ [0x1EE3B]={d='al'},
+ [0x1EE42]={d='al'},
+ [0x1EE47]={d='al'},
+ [0x1EE49]={d='al'},
+ [0x1EE4B]={d='al'},
+ [0x1EE4D]={d='al'},
+ [0x1EE4E]={d='al'},
+ [0x1EE4F]={d='al'},
+ [0x1EE51]={d='al'},
+ [0x1EE52]={d='al'},
+ [0x1EE54]={d='al'},
+ [0x1EE57]={d='al'},
+ [0x1EE59]={d='al'},
+ [0x1EE5B]={d='al'},
+ [0x1EE5D]={d='al'},
+ [0x1EE5F]={d='al'},
+ [0x1EE61]={d='al'},
+ [0x1EE62]={d='al'},
+ [0x1EE64]={d='al'},
+ [0x1EE67]={d='al'},
+ [0x1EE68]={d='al'},
+ [0x1EE69]={d='al'},
+ [0x1EE6A]={d='al'},
+ [0x1EE6C]={d='al'},
+ [0x1EE6D]={d='al'},
+ [0x1EE6E]={d='al'},
+ [0x1EE6F]={d='al'},
+ [0x1EE70]={d='al'},
+ [0x1EE71]={d='al'},
+ [0x1EE72]={d='al'},
+ [0x1EE74]={d='al'},
+ [0x1EE75]={d='al'},
+ [0x1EE76]={d='al'},
+ [0x1EE77]={d='al'},
+ [0x1EE79]={d='al'},
+ [0x1EE7A]={d='al'},
+ [0x1EE7B]={d='al'},
+ [0x1EE7C]={d='al'},
+ [0x1EE7E]={d='al'},
+ [0x1EE80]={d='al'},
+ [0x1EE81]={d='al'},
+ [0x1EE82]={d='al'},
+ [0x1EE83]={d='al'},
+ [0x1EE84]={d='al'},
+ [0x1EE85]={d='al'},
+ [0x1EE86]={d='al'},
+ [0x1EE87]={d='al'},
+ [0x1EE88]={d='al'},
+ [0x1EE89]={d='al'},
+ [0x1EE8B]={d='al'},
+ [0x1EE8C]={d='al'},
+ [0x1EE8D]={d='al'},
+ [0x1EE8E]={d='al'},
+ [0x1EE8F]={d='al'},
+ [0x1EE90]={d='al'},
+ [0x1EE91]={d='al'},
+ [0x1EE92]={d='al'},
+ [0x1EE93]={d='al'},
+ [0x1EE94]={d='al'},
+ [0x1EE95]={d='al'},
+ [0x1EE96]={d='al'},
+ [0x1EE97]={d='al'},
+ [0x1EE98]={d='al'},
+ [0x1EE99]={d='al'},
+ [0x1EE9A]={d='al'},
+ [0x1EE9B]={d='al'},
+ [0x1EEA1]={d='al'},
+ [0x1EEA2]={d='al'},
+ [0x1EEA3]={d='al'},
+ [0x1EEA5]={d='al'},
+ [0x1EEA6]={d='al'},
+ [0x1EEA7]={d='al'},
+ [0x1EEA8]={d='al'},
+ [0x1EEA9]={d='al'},
+ [0x1EEAB]={d='al'},
+ [0x1EEAC]={d='al'},
+ [0x1EEAD]={d='al'},
+ [0x1EEAE]={d='al'},
+ [0x1EEAF]={d='al'},
+ [0x1EEB0]={d='al'},
+ [0x1EEB1]={d='al'},
+ [0x1EEB2]={d='al'},
+ [0x1EEB3]={d='al'},
+ [0x1EEB4]={d='al'},
+ [0x1EEB5]={d='al'},
+ [0x1EEB6]={d='al'},
+ [0x1EEB7]={d='al'},
+ [0x1EEB8]={d='al'},
+ [0x1EEB9]={d='al'},
+ [0x1EEBA]={d='al'},
+ [0x1EEBB]={d='al'},
+ [0x1EEF0]={d='on'},
+ [0x1EEF1]={d='on'},
+ [0x1F000]={d='on'},
+ [0x1F001]={d='on'},
+ [0x1F002]={d='on'},
+ [0x1F003]={d='on'},
+ [0x1F004]={d='on'},
+ [0x1F005]={d='on'},
+ [0x1F006]={d='on'},
+ [0x1F007]={d='on'},
+ [0x1F008]={d='on'},
+ [0x1F009]={d='on'},
+ [0x1F00A]={d='on'},
+ [0x1F00B]={d='on'},
+ [0x1F00C]={d='on'},
+ [0x1F00D]={d='on'},
+ [0x1F00E]={d='on'},
+ [0x1F00F]={d='on'},
+ [0x1F010]={d='on'},
+ [0x1F011]={d='on'},
+ [0x1F012]={d='on'},
+ [0x1F013]={d='on'},
+ [0x1F014]={d='on'},
+ [0x1F015]={d='on'},
+ [0x1F016]={d='on'},
+ [0x1F017]={d='on'},
+ [0x1F018]={d='on'},
+ [0x1F019]={d='on'},
+ [0x1F01A]={d='on'},
+ [0x1F01B]={d='on'},
+ [0x1F01C]={d='on'},
+ [0x1F01D]={d='on'},
+ [0x1F01E]={d='on'},
+ [0x1F01F]={d='on'},
+ [0x1F020]={d='on'},
+ [0x1F021]={d='on'},
+ [0x1F022]={d='on'},
+ [0x1F023]={d='on'},
+ [0x1F024]={d='on'},
+ [0x1F025]={d='on'},
+ [0x1F026]={d='on'},
+ [0x1F027]={d='on'},
+ [0x1F028]={d='on'},
+ [0x1F029]={d='on'},
+ [0x1F02A]={d='on'},
+ [0x1F02B]={d='on'},
+ [0x1F030]={d='on'},
+ [0x1F031]={d='on'},
+ [0x1F032]={d='on'},
+ [0x1F033]={d='on'},
+ [0x1F034]={d='on'},
+ [0x1F035]={d='on'},
+ [0x1F036]={d='on'},
+ [0x1F037]={d='on'},
+ [0x1F038]={d='on'},
+ [0x1F039]={d='on'},
+ [0x1F03A]={d='on'},
+ [0x1F03B]={d='on'},
+ [0x1F03C]={d='on'},
+ [0x1F03D]={d='on'},
+ [0x1F03E]={d='on'},
+ [0x1F03F]={d='on'},
+ [0x1F040]={d='on'},
+ [0x1F041]={d='on'},
+ [0x1F042]={d='on'},
+ [0x1F043]={d='on'},
+ [0x1F044]={d='on'},
+ [0x1F045]={d='on'},
+ [0x1F046]={d='on'},
+ [0x1F047]={d='on'},
+ [0x1F048]={d='on'},
+ [0x1F049]={d='on'},
+ [0x1F04A]={d='on'},
+ [0x1F04B]={d='on'},
+ [0x1F04C]={d='on'},
+ [0x1F04D]={d='on'},
+ [0x1F04E]={d='on'},
+ [0x1F04F]={d='on'},
+ [0x1F050]={d='on'},
+ [0x1F051]={d='on'},
+ [0x1F052]={d='on'},
+ [0x1F053]={d='on'},
+ [0x1F054]={d='on'},
+ [0x1F055]={d='on'},
+ [0x1F056]={d='on'},
+ [0x1F057]={d='on'},
+ [0x1F058]={d='on'},
+ [0x1F059]={d='on'},
+ [0x1F05A]={d='on'},
+ [0x1F05B]={d='on'},
+ [0x1F05C]={d='on'},
+ [0x1F05D]={d='on'},
+ [0x1F05E]={d='on'},
+ [0x1F05F]={d='on'},
+ [0x1F060]={d='on'},
+ [0x1F061]={d='on'},
+ [0x1F062]={d='on'},
+ [0x1F063]={d='on'},
+ [0x1F064]={d='on'},
+ [0x1F065]={d='on'},
+ [0x1F066]={d='on'},
+ [0x1F067]={d='on'},
+ [0x1F068]={d='on'},
+ [0x1F069]={d='on'},
+ [0x1F06A]={d='on'},
+ [0x1F06B]={d='on'},
+ [0x1F06C]={d='on'},
+ [0x1F06D]={d='on'},
+ [0x1F06E]={d='on'},
+ [0x1F06F]={d='on'},
+ [0x1F070]={d='on'},
+ [0x1F071]={d='on'},
+ [0x1F072]={d='on'},
+ [0x1F073]={d='on'},
+ [0x1F074]={d='on'},
+ [0x1F075]={d='on'},
+ [0x1F076]={d='on'},
+ [0x1F077]={d='on'},
+ [0x1F078]={d='on'},
+ [0x1F079]={d='on'},
+ [0x1F07A]={d='on'},
+ [0x1F07B]={d='on'},
+ [0x1F07C]={d='on'},
+ [0x1F07D]={d='on'},
+ [0x1F07E]={d='on'},
+ [0x1F07F]={d='on'},
+ [0x1F080]={d='on'},
+ [0x1F081]={d='on'},
+ [0x1F082]={d='on'},
+ [0x1F083]={d='on'},
+ [0x1F084]={d='on'},
+ [0x1F085]={d='on'},
+ [0x1F086]={d='on'},
+ [0x1F087]={d='on'},
+ [0x1F088]={d='on'},
+ [0x1F089]={d='on'},
+ [0x1F08A]={d='on'},
+ [0x1F08B]={d='on'},
+ [0x1F08C]={d='on'},
+ [0x1F08D]={d='on'},
+ [0x1F08E]={d='on'},
+ [0x1F08F]={d='on'},
+ [0x1F090]={d='on'},
+ [0x1F091]={d='on'},
+ [0x1F092]={d='on'},
+ [0x1F093]={d='on'},
+ [0x1F0A0]={d='on'},
+ [0x1F0A1]={d='on'},
+ [0x1F0A2]={d='on'},
+ [0x1F0A3]={d='on'},
+ [0x1F0A4]={d='on'},
+ [0x1F0A5]={d='on'},
+ [0x1F0A6]={d='on'},
+ [0x1F0A7]={d='on'},
+ [0x1F0A8]={d='on'},
+ [0x1F0A9]={d='on'},
+ [0x1F0AA]={d='on'},
+ [0x1F0AB]={d='on'},
+ [0x1F0AC]={d='on'},
+ [0x1F0AD]={d='on'},
+ [0x1F0AE]={d='on'},
+ [0x1F0B1]={d='on'},
+ [0x1F0B2]={d='on'},
+ [0x1F0B3]={d='on'},
+ [0x1F0B4]={d='on'},
+ [0x1F0B5]={d='on'},
+ [0x1F0B6]={d='on'},
+ [0x1F0B7]={d='on'},
+ [0x1F0B8]={d='on'},
+ [0x1F0B9]={d='on'},
+ [0x1F0BA]={d='on'},
+ [0x1F0BB]={d='on'},
+ [0x1F0BC]={d='on'},
+ [0x1F0BD]={d='on'},
+ [0x1F0BE]={d='on'},
+ [0x1F0BF]={d='on'},
+ [0x1F0C1]={d='on'},
+ [0x1F0C2]={d='on'},
+ [0x1F0C3]={d='on'},
+ [0x1F0C4]={d='on'},
+ [0x1F0C5]={d='on'},
+ [0x1F0C6]={d='on'},
+ [0x1F0C7]={d='on'},
+ [0x1F0C8]={d='on'},
+ [0x1F0C9]={d='on'},
+ [0x1F0CA]={d='on'},
+ [0x1F0CB]={d='on'},
+ [0x1F0CC]={d='on'},
+ [0x1F0CD]={d='on'},
+ [0x1F0CE]={d='on'},
+ [0x1F0CF]={d='on'},
+ [0x1F0D1]={d='on'},
+ [0x1F0D2]={d='on'},
+ [0x1F0D3]={d='on'},
+ [0x1F0D4]={d='on'},
+ [0x1F0D5]={d='on'},
+ [0x1F0D6]={d='on'},
+ [0x1F0D7]={d='on'},
+ [0x1F0D8]={d='on'},
+ [0x1F0D9]={d='on'},
+ [0x1F0DA]={d='on'},
+ [0x1F0DB]={d='on'},
+ [0x1F0DC]={d='on'},
+ [0x1F0DD]={d='on'},
+ [0x1F0DE]={d='on'},
+ [0x1F0DF]={d='on'},
+ [0x1F0E0]={d='on'},
+ [0x1F0E1]={d='on'},
+ [0x1F0E2]={d='on'},
+ [0x1F0E3]={d='on'},
+ [0x1F0E4]={d='on'},
+ [0x1F0E5]={d='on'},
+ [0x1F0E6]={d='on'},
+ [0x1F0E7]={d='on'},
+ [0x1F0E8]={d='on'},
+ [0x1F0E9]={d='on'},
+ [0x1F0EA]={d='on'},
+ [0x1F0EB]={d='on'},
+ [0x1F0EC]={d='on'},
+ [0x1F0ED]={d='on'},
+ [0x1F0EE]={d='on'},
+ [0x1F0EF]={d='on'},
+ [0x1F0F0]={d='on'},
+ [0x1F0F1]={d='on'},
+ [0x1F0F2]={d='on'},
+ [0x1F0F3]={d='on'},
+ [0x1F0F4]={d='on'},
+ [0x1F0F5]={d='on'},
+ [0x1F100]={d='en'},
+ [0x1F101]={d='en'},
+ [0x1F102]={d='en'},
+ [0x1F103]={d='en'},
+ [0x1F104]={d='en'},
+ [0x1F105]={d='en'},
+ [0x1F106]={d='en'},
+ [0x1F107]={d='en'},
+ [0x1F108]={d='en'},
+ [0x1F109]={d='en'},
+ [0x1F10A]={d='en'},
+ [0x1F10B]={d='on'},
+ [0x1F10C]={d='on'},
+ [0x1F16A]={d='on'},
+ [0x1F16B]={d='on'},
+ [0xE0001]={d='bn'},
+ [0xE0020]={d='bn'},
+ [0xE0021]={d='bn'},
+ [0xE0022]={d='bn'},
+ [0xE0023]={d='bn'},
+ [0xE0024]={d='bn'},
+ [0xE0025]={d='bn'},
+ [0xE0026]={d='bn'},
+ [0xE0027]={d='bn'},
+ [0xE0028]={d='bn'},
+ [0xE0029]={d='bn'},
+ [0xE002A]={d='bn'},
+ [0xE002B]={d='bn'},
+ [0xE002C]={d='bn'},
+ [0xE002D]={d='bn'},
+ [0xE002E]={d='bn'},
+ [0xE002F]={d='bn'},
+ [0xE0030]={d='bn'},
+ [0xE0031]={d='bn'},
+ [0xE0032]={d='bn'},
+ [0xE0033]={d='bn'},
+ [0xE0034]={d='bn'},
+ [0xE0035]={d='bn'},
+ [0xE0036]={d='bn'},
+ [0xE0037]={d='bn'},
+ [0xE0038]={d='bn'},
+ [0xE0039]={d='bn'},
+ [0xE003A]={d='bn'},
+ [0xE003B]={d='bn'},
+ [0xE003C]={d='bn'},
+ [0xE003D]={d='bn'},
+ [0xE003E]={d='bn'},
+ [0xE003F]={d='bn'},
+ [0xE0040]={d='bn'},
+ [0xE0041]={d='bn'},
+ [0xE0042]={d='bn'},
+ [0xE0043]={d='bn'},
+ [0xE0044]={d='bn'},
+ [0xE0045]={d='bn'},
+ [0xE0046]={d='bn'},
+ [0xE0047]={d='bn'},
+ [0xE0048]={d='bn'},
+ [0xE0049]={d='bn'},
+ [0xE004A]={d='bn'},
+ [0xE004B]={d='bn'},
+ [0xE004C]={d='bn'},
+ [0xE004D]={d='bn'},
+ [0xE004E]={d='bn'},
+ [0xE004F]={d='bn'},
+ [0xE0050]={d='bn'},
+ [0xE0051]={d='bn'},
+ [0xE0052]={d='bn'},
+ [0xE0053]={d='bn'},
+ [0xE0054]={d='bn'},
+ [0xE0055]={d='bn'},
+ [0xE0056]={d='bn'},
+ [0xE0057]={d='bn'},
+ [0xE0058]={d='bn'},
+ [0xE0059]={d='bn'},
+ [0xE005A]={d='bn'},
+ [0xE005B]={d='bn'},
+ [0xE005C]={d='bn'},
+ [0xE005D]={d='bn'},
+ [0xE005E]={d='bn'},
+ [0xE005F]={d='bn'},
+ [0xE0060]={d='bn'},
+ [0xE0061]={d='bn'},
+ [0xE0062]={d='bn'},
+ [0xE0063]={d='bn'},
+ [0xE0064]={d='bn'},
+ [0xE0065]={d='bn'},
+ [0xE0066]={d='bn'},
+ [0xE0067]={d='bn'},
+ [0xE0068]={d='bn'},
+ [0xE0069]={d='bn'},
+ [0xE006A]={d='bn'},
+ [0xE006B]={d='bn'},
+ [0xE006C]={d='bn'},
+ [0xE006D]={d='bn'},
+ [0xE006E]={d='bn'},
+ [0xE006F]={d='bn'},
+ [0xE0070]={d='bn'},
+ [0xE0071]={d='bn'},
+ [0xE0072]={d='bn'},
+ [0xE0073]={d='bn'},
+ [0xE0074]={d='bn'},
+ [0xE0075]={d='bn'},
+ [0xE0076]={d='bn'},
+ [0xE0077]={d='bn'},
+ [0xE0078]={d='bn'},
+ [0xE0079]={d='bn'},
+ [0xE007A]={d='bn'},
+ [0xE007B]={d='bn'},
+ [0xE007C]={d='bn'},
+ [0xE007D]={d='bn'},
+ [0xE007E]={d='bn'},
+ [0xE007F]={d='bn'}
+}
+%</bidi>
+% \end{macrocode}
+%\fi
+%
+% Now the |basic-r| bidi mode. One of the aims is to implement a fast
+% and simple bidi algorithm, with a single loop. I managed to do it
+% for R texts, with a second smaller loop for a special case. The code
+% is still somewhat chaotic, but its behavior is essentially
+% correct. I cannot resist copying the following text from
+% \textsf{Emacs} |bidi.c| (which also attempts to implement the bidi
+% algorithm with a single loop):
+%
+% \begin{quote}
+% Arrrgh!! The UAX\#9 algorithm is too deeply entrenched in the
+% assumption of batch-style processing [...]. May the fleas of a
+% thousand camels infest the armpits of those who design supposedly
+% general-purpose algorithms by looking at their own
+% implementations, and fail to consider other possible
+% implementations!
+% \end{quote}
+%
+% Well, it took me some time to guess what the batch rules in UAX\#9
+% actually mean (in other word, \textit{what} they do and\textit{why},
+% and not only \textit{how}), but I think (or I hope) I've managed to
+% understand them.
+%
+% In some sense, there are two bidi modes, one for numbers, and the
+% other for text. Furthermore, setting just the direction in R text
+% is not enough, because there are actually \textit{two} R modes (set
+% explicitly in Unicode with RLM and ALM). In \babel{} the dir is set
+% by a higher protocol based on the language/script, which in turn
+% sets the correct dir (<l>, <r> or <al>).
+%
+% From UAX\#9: “Where available, markup should be used instead of the
+% explicit formatting characters”. So, this simple version just
+% ignores formatting characters. Actually, most of that annex is
+% devoted to how to handle them.
+%
+% BD14-BD16 are not implemented. Unicode (and the W3C) are making a
+% great effort to deal with some special problematic cases in
+% “streamed” plain text. I don't think this is the way to go --
+% particular issues should be fixed by a high level interface taking
+% into account the needs of the document. And here is where \luatex{}
+% excels, because everything related to bidi writing is under our
+% control.
+%
+% \begin{macrocode}
+%<*basic-r>
+Babel = Babel or {}
+
+Babel.langdirs = {}
+
+require('babel-bidi.lua')
+
+local characters = Babel.characters
+local ranges = Babel.ranges
+
+local DIR = node.id("dir")
+
+local function dir_mark(head, from, to, outer)
+ dir = (outer == 'r') and 'TLT' or 'TRT' -- ie, reverse
+ local d = node.new(DIR)
+ d.dir = '+' .. dir
+ node.insert_before(head, from, d)
+ d = node.new(DIR)
+ d.dir = '-' .. dir
+ node.insert_after(head, to, d)
+end
+
+function Babel.pre_otfload(head)
+ local first_n, last_n = nil, nil -- first and last char with nums
+ local last_es = nil -- an auxiliary 'last' used with nums
+ local first_d, last_d = nil, nil -- first and last char in L/R block
+ local dir = nil
+ local dir_real = nil
+% \end{macrocode}
+%
+% Next also depends on script/lang (<al>/<r>). To be set by
+% babel. |tex.pardir| is dangerous, could be (re)set but it
+% should be changed only in vmode. There are two strong's --
+% |strong| = l/al/r and |strong_lr| = l/r (there must be a better
+% way):
+%
+% \begin{macrocode}
+ local strong = ('TRT' == tex.pardir) and 'r' or 'l'
+ local strong_lr = (strong == 'l') and 'l' or 'r'
+ local outer = strong
+
+ local new_dir = false
+ local first_dir = false
+
+ local last_lr = nil
+
+ local type_n = ''
+
+ for item in node.traverse(head) do
+
+ -- three cases: glyph, dir, otherwise
+ if item.id == node.id'glyph' then
+
+ local chardata = characters[item.char]
+ dir = chardata and chardata.d or nil
+ if not dir then
+ for nn, et in ipairs(ranges) do
+ if item.char < et[1] then
+ break
+ elseif item.char <= et[2] then
+ dir = et[3]
+ break
+ end
+ end
+ end
+ dir = dir or 'l'
+% \end{macrocode}
+%
+% Next is based on the assumption babel sets the language AND
+% switches the script with its dir. We treat a language block as
+% a separate Unicode sequence. The following piece of code is
+% executed at the first glyph after a `dir' node. We don't know
+% the current language until then.
+%
+% \begin{macrocode}
+ if new_dir then
+ strong = Babel.langdirs[item.lang] or 'l'
+ strong_lr = (strong == 'l') and 'l' or 'r'
+ outer = strong_lr
+ new_dir = false
+ end
+ if dir == 'nsm' then dir = strong end -- W1
+% \end{macrocode}
+%
+% \textbf{Numbers.} The dual <al>/<r> system for R is somewhat
+% cumbersome.
+%
+% \begin{macrocode}
+ dir_real = dir -- We need dir_real to set strong below
+ if dir == 'al' then dir = 'r' end -- W3
+% \end{macrocode}
+%
+% By W2, there are no <en> <et> <es> if |strong == <al>|, only
+% <an>. Therefore, there are not <et en> nor <en et>, W5 can be
+% ignored, and W6 applied:
+%
+% \begin{macrocode}
+ if strong == 'al' then
+ if dir == 'en' then dir = 'an' end -- W2
+ if dir == 'et' or dir == 'es' then dir = 'on' end -- W6
+ strong_lr = 'r' -- W3
+ end
+% \end{macrocode}
+%
+% Once finished the basic setup for glyphs, consider the two other
+% cases: dir node and the rest.
+%
+% \begin{macrocode}
+ elseif item.id == node.id'dir' then
+ new_dir = true
+ dir = nil
+ else
+ dir = nil -- Not a char
+ end
+% \end{macrocode}
+%
+% Numbers in R mode. A sequence of <en>, <et>, <an>, <es> and <cs> is
+% typeset (with some rules) in L mode. We store the starting and
+% ending points, and only when anything different is found (including
+% nil, ie, a non-char), the textdir is set. This means you cannot
+% insert, say, a whatsit, but this is what I would expect (with
+% \textsf{luacolor} you may colorize some digits). Anyway, this
+% behaviour could be changed with a switch in the future. Note in the
+% first branch only <an> is relevant if <al>.
+%
+% \begin{macrocode}
+ if dir == 'en' or dir == 'an' or dir == 'et' then
+ if dir ~= 'et' then
+ type_n = dir
+ end
+ first_n = first_n or item
+ last_n = last_es or item
+ last_es = nil
+ elseif dir == 'es' and last_n then -- W3+W6
+ last_es = item
+ elseif dir == 'cs' then -- it's right - do nothing
+ elseif first_n then -- & if dir = any but en, et, an, es, cs, inc nil
+ if strong_lr == 'r' and type_n ~= '' then
+ dir_mark(head, first_n, last_n, 'r')
+ elseif strong_lr == 'l' and first_d and type_n == 'an' then
+ dir_mark(head, first_n, last_n, 'r')
+ dir_mark(head, first_d, last_d, outer)
+ first_d, last_d = nil, nil
+ elseif strong_lr == 'l' and type_n ~= '' then
+ last_d = last_n
+ end
+ type_n = ''
+ first_n, last_n = nil, nil
+ end
+% \end{macrocode}
+%
+% R text in L, or L text in R. Order of |dir_ mark|'s are relevant: d
+% goes outside n, and therefore it's emitted after. See |dir_mark| to
+% understand why (but is the nesting actually necessary or is a flat
+% dir structure enough?). Only L, R (and AL) chars are taken into
+% account -- everything else, including spaces, whatsits, etc., are
+% ignored:
+%
+% \begin{macrocode}
+ if dir == 'l' or dir == 'r' then
+ if dir ~= outer then
+ first_d = first_d or item
+ last_d = item
+ elseif first_d and dir ~= strong_lr then
+ dir_mark(head, first_d, last_d, outer)
+ first_d, last_d = nil, nil
+ end
+ end
+% \end{macrocode}
+%
+% \textbf{Mirroring.} Each chunk of text in a certain language is
+% considered a ``closed'' sequence. If <r on r> and <l on l>, it's
+% clearly <r> and <l>, resptly, but with other combinations depends on
+% outer. From all these, we select only those resolving <on> $\to$
+% <r>. At the beginning (when |last_lr| is nil) of an R text, they are
+% mirrored directly.
+%
+% TODO - numbers in R mode are processed. It doesn't hurt, but should
+% not be done.
+%
+% \begin{macrocode}
+ if dir and not last_lr and dir ~= 'l' and outer == 'r' then
+ item.char = characters[item.char] and
+ characters[item.char].m or item.char
+ elseif (dir or new_dir) and last_lr ~= item then
+ local mir = outer .. strong_lr .. (dir or outer)
+ if mir == 'rrr' or mir == 'lrr' or mir == 'rrl' or mir == 'rlr' then
+ for ch in node.traverse(node.next(last_lr)) do
+ if ch == item then break end
+ if ch.id == node.id'glyph' then
+ ch.char = characters[ch.char].m or ch.char
+ end
+ end
+ --last_lr = nil
+ end
+ end
+% \end{macrocode}
+%
+% Save some values for the next iteration. If the current node is
+% `dir', open a new sequence. Since dir could be changed, strong is
+% set with its real value (|dir_real|).
+%
+% \begin{macrocode}
+ if dir == 'l' or dir == 'r' then
+ last_lr = item
+ strong = dir_real -- Don't search back - best save now
+ strong_lr = (strong == 'l') and 'l' or 'r'
+ elseif new_dir then
+ last_lr = nil
+ end
+ end
+% \end{macrocode}
+%
+% Mirror the last chars if they are no directed. And make sure any
+% open block is closed, too.
+%
+% \begin{macrocode}
+ if last_lr and outer == 'r' then
+ for ch in node.traverse_id(node.id'glyph', node.next(last_lr)) do
+ ch.char = characters[ch.char].m or ch.char
+ end
+ end
+ if first_n then
+ dir_mark(head, first_n, last_n, outer)
+ end
+ if first_d then
+ dir_mark(head, first_d, last_d, outer)
+ end
+% \end{macrocode}
+%
+% In boxes, the dir node could be added before the original head, so
+% the actual head is the previous node.
+%
+% \begin{macrocode}
+ return node.prev(head) or head
+end
+%</basic-r>
+% \end{macrocode}
+%
% \section{The `nil' language}
%
% This `language' does nothing, except setting the hyphenation patterns to