* ucs-tables.el: Copy from Emacs 21.
authorShengHuo ZHU <zsh@cs.rochester.edu>
Wed, 6 Mar 2002 17:25:47 +0000 (17:25 +0000)
committerShengHuo ZHU <zsh@cs.rochester.edu>
Wed, 6 Mar 2002 17:25:47 +0000 (17:25 +0000)
contrib/ChangeLog
contrib/ucs-tables.el [new file with mode: 0644]

index 9658294..44589ad 100644 (file)
@@ -1,3 +1,7 @@
+2002-03-06  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * ucs-tables.el: Copy from Emacs 21.
+       
 2002-03-05  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
        * xml.el: Sync with Emacs 21.
diff --git a/contrib/ucs-tables.el b/contrib/ucs-tables.el
new file mode 100644 (file)
index 0000000..81f059e
--- /dev/null
@@ -0,0 +1,2476 @@
+;;; ucs-tables.el --- translation to, from and via Unicode  -*- coding: iso-2022-7bit -*-
+
+;; Copyright (C) 2001  Free Software Foundation, Inc.
+
+;; Author: Dave Love <fx@gnu.org>
+;; Keywords: i18n
+
+;; This file is part of GNU Emacs.
+
+;; This file is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; This file is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to
+;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;; This file provides tables mapping between Unicode numbers and
+;; emacs-mule characters from the iso-8859 charsets (and others).  It
+;; also provides some auxiliary functions.
+
+;; These tables are used to construct other mappings between the Mule
+;; iso8859 charsets and the emacs-unicode charsets and a table that
+;; unifies iso8859 characters using a single charset as far as
+;; possible.  These tables are used by latin1-disp.el to display some
+;; Unicode characters without a Unicode font and by utf-8.el to unify
+;; Latin-N as far as possible on encoding.
+
+;; More drastically, they can be used to unify 8859 into Latin-1 plus
+;; mule-unicode-0100-24ff on decoding, with the corresponding
+;; adjustments on encoding; see `ucs-unify-8859'.  Be wary of using
+;; unification when, for instance, editing Lisp files such as this one
+;; which are supposed to contain distinct 8859 charsets.  Also, it can
+;; make reading and writing of emacs-mule and iso-2022-based encodings
+;; not idempotent.
+
+;; Global minor modes are provided to unify on encoding and decoding.
+
+;; The translation table `ucs-mule-to-mule-unicode' is populated.
+;; This is used by the `mule-utf-8' coding system to encode extra
+;; characters.
+
+;; Command `ucs-insert' is convenient for inserting a given Unicode.
+;; (See also the `ucs' input method.)
+
+;;; Code:
+
+;;; Define tables, to be populated later.
+
+(defvar ucs-mule-8859-to-ucs-table (make-translation-table)
+  "Translation table from Emacs ISO-8859 characters to Unicode.
+This maps Emacs characters from the non-Latin-1
+...-iso8859-... charsets to their Unicode code points.  This is a
+many-to-one mapping.")
+
+(defvar ucs-mule-8859-to-mule-unicode (make-translation-table)
+  "Translation table from Emacs ISO-8859 characters to Mule Unicode.
+This maps Emacs characters from the non-Latin-1
+...-iso8859-... charsets to characters from the
+mule-unicode-... charsets.  This is a many-to-one mapping.  The
+characters translated to are suitable for encoding using the
+`mule-utf-8' coding system.")
+
+;; (defvar ucs-ucs-to-mule-8859-table (make-translation-table)
+;;   "Translation table from Unicode to Emacs ISO-8859 characters.
+;; This maps Unicode code points to corresponding Emacs characters from
+;; the ...-iso8859-... charsets.  This is made a one-to-one mapping where
+;; the same character occurs in more than one set by preferring the Emacs
+;; iso-8859-N character with lowest N.")
+
+;; (defvar ucs-mule-unicode-to-mule-8859 (make-translation-table)
+;;   "Translation table from Mule Unicode to Emacs ISO-8859 characters.
+;; This maps non-Latin-1 Emacs characters from the
+;; mule-unicode-... charsets used by the `mule-utf-8' coding system to
+;; characters from the ...-iso8859-... charsets.  This is made a
+;; one-to-one mapping where the same character occurs in more than one
+;; set by preferring the Emacs iso-8859-N character with lowest N.")
+
+(defvar ucs-8859-1-encode-table nil
+  "Used as `translation-table-for-encode' for iso-8859-2.
+Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
+
+(defvar ucs-8859-2-encode-table nil
+  "Used as `translation-table-for-encode' for iso-8859-2.
+Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
+
+(defvar ucs-8859-3-encode-table nil
+  "Used as `translation-table-for-encode' for iso-8859-3.
+Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
+
+(defvar ucs-8859-4-encode-table nil
+  "Used as `translation-table-for-encode' for iso-8859-4.
+Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
+
+(defvar ucs-8859-5-encode-table nil
+  "Used as `translation-table-for-encode' for iso-8859-5.
+Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
+
+(defvar ucs-8859-7-encode-table nil
+  "Used as `translation-table-for-encode' for iso-8859-7.
+Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
+
+(defvar ucs-8859-8-encode-table nil
+  "Used as `translation-table-for-encode' for iso-8859-8.
+Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
+
+(defvar ucs-8859-9-encode-table nil
+  "Used as `translation-table-for-encode' for iso-8859-9.
+Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
+
+(defvar ucs-8859-14-encode-table nil
+  "Used as `translation-table-for-encode' for iso-8859-14.
+Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
+
+(defvar ucs-8859-15-encode-table nil
+  "Used as `translation-table-for-encode' for iso-8859-15.
+Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
+
+;; Probably defined by utf-8.el.
+(defvar ucs-mule-to-mule-unicode (make-translation-table))
+(unless (get 'ucs-mule-to-mule-unicode 'translation-table)
+  (define-translation-table 'ucs-mule-to-mule-unicode ucs-mule-to-mule-unicode))
+;;; Set up the tables.
+
+;; Most of these tables were derived from ones in Mule-UCS.
+
+;; There doesn't seem to be a need to make these let bindings into
+;; defvars, so we'll let the data get GC'ed.
+(let ((ucs-8859-2-alist
+       '((?\\e,B \e(B . ?\x00A0) ;; NO-BREAK SPACE
+        (?\\e,B!\e(B . ?\x0104) ;; LATIN CAPITAL LETTER A WITH OGONEK
+        (?\\e,B"\e(B . ?\x02D8) ;; BREVE
+        (?\\e,B#\e(B . ?\x0141) ;; LATIN CAPITAL LETTER L WITH STROKE
+        (?\\e,B$\e(B . ?\x00A4) ;; CURRENCY SIGN
+        (?\\e,B%\e(B . ?\x013D) ;; LATIN CAPITAL LETTER L WITH CARON
+        (?\\e,B&\e(B . ?\x015A) ;; LATIN CAPITAL LETTER S WITH ACUTE
+        (?\\e,B'\e(B . ?\x00A7) ;; SECTION SIGN
+        (?\\e,B(\e(B . ?\x00A8) ;; DIAERESIS
+        (?\\e,B)\e(B . ?\x0160) ;; LATIN CAPITAL LETTER S WITH CARON
+        (?\\e,B*\e(B . ?\x015E) ;; LATIN CAPITAL LETTER S WITH CEDILLA
+        (?\\e,B+\e(B . ?\x0164) ;; LATIN CAPITAL LETTER T WITH CARON
+        (?\\e,B,\e(B . ?\x0179) ;; LATIN CAPITAL LETTER Z WITH ACUTE
+        (?\\e,B-\e(B . ?\x00AD) ;; SOFT HYPHEN
+        (?\\e,B.\e(B . ?\x017D) ;; LATIN CAPITAL LETTER Z WITH CARON
+        (?\\e,B/\e(B . ?\x017B) ;; LATIN CAPITAL LETTER Z WITH DOT ABOVE
+        (?\\e,B0\e(B . ?\x00B0) ;; DEGREE SIGN
+        (?\\e,B1\e(B . ?\x0105) ;; LATIN SMALL LETTER A WITH OGONEK
+        (?\\e,B2\e(B . ?\x02DB) ;; OGONEK
+        (?\\e,B3\e(B . ?\x0142) ;; LATIN SMALL LETTER L WITH STROKE
+        (?\\e,B4\e(B . ?\x00B4) ;; ACUTE ACCENT
+        (?\\e,B5\e(B . ?\x013E) ;; LATIN SMALL LETTER L WITH CARON
+        (?\\e,B6\e(B . ?\x015B) ;; LATIN SMALL LETTER S WITH ACUTE
+        (?\\e,B7\e(B . ?\x02C7) ;; CARON
+        (?\\e,B8\e(B . ?\x00B8) ;; CEDILLA
+        (?\\e,B9\e(B . ?\x0161) ;; LATIN SMALL LETTER S WITH CARON
+        (?\\e,B:\e(B . ?\x015F) ;; LATIN SMALL LETTER S WITH CEDILLA
+        (?\\e,B;\e(B . ?\x0165) ;; LATIN SMALL LETTER T WITH CARON
+        (?\\e,B<\e(B . ?\x017A) ;; LATIN SMALL LETTER Z WITH ACUTE
+        (?\\e,B=\e(B . ?\x02DD) ;; DOUBLE ACUTE ACCENT
+        (?\\e,B>\e(B . ?\x017E) ;; LATIN SMALL LETTER Z WITH CARON
+        (?\\e,B?\e(B . ?\x017C) ;; LATIN SMALL LETTER Z WITH DOT ABOVE
+        (?\\e,B@\e(B . ?\x0154) ;; LATIN CAPITAL LETTER R WITH ACUTE
+        (?\\e,BA\e(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE
+        (?\\e,BB\e(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+        (?\\e,BC\e(B . ?\x0102) ;; LATIN CAPITAL LETTER A WITH BREVE
+        (?\\e,BD\e(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS
+        (?\\e,BE\e(B . ?\x0139) ;; LATIN CAPITAL LETTER L WITH ACUTE
+        (?\\e,BF\e(B . ?\x0106) ;; LATIN CAPITAL LETTER C WITH ACUTE
+        (?\\e,BG\e(B . ?\x00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA
+        (?\\e,BH\e(B . ?\x010C) ;; LATIN CAPITAL LETTER C WITH CARON
+        (?\\e,BI\e(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE
+        (?\\e,BJ\e(B . ?\x0118) ;; LATIN CAPITAL LETTER E WITH OGONEK
+        (?\\e,BK\e(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS
+        (?\\e,BL\e(B . ?\x011A) ;; LATIN CAPITAL LETTER E WITH CARON
+        (?\\e,BM\e(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE
+        (?\\e,BN\e(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+        (?\\e,BO\e(B . ?\x010E) ;; LATIN CAPITAL LETTER D WITH CARON
+        (?\\e,BP\e(B . ?\x0110) ;; LATIN CAPITAL LETTER D WITH STROKE
+        (?\\e,BQ\e(B . ?\x0143) ;; LATIN CAPITAL LETTER N WITH ACUTE
+        (?\\e,BR\e(B . ?\x0147) ;; LATIN CAPITAL LETTER N WITH CARON
+        (?\\e,BS\e(B . ?\x00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE
+        (?\\e,BT\e(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+        (?\\e,BU\e(B . ?\x0150) ;; LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+        (?\\e,BV\e(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS
+        (?\\e,BW\e(B . ?\x00D7) ;; MULTIPLICATION SIGN
+        (?\\e,BX\e(B . ?\x0158) ;; LATIN CAPITAL LETTER R WITH CARON
+        (?\\e,BY\e(B . ?\x016E) ;; LATIN CAPITAL LETTER U WITH RING ABOVE
+        (?\\e,BZ\e(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE
+        (?\\e,B[\e(B . ?\x0170) ;; LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+        (?\\e,B\\e(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS
+        (?\\e,B]\e(B . ?\x00DD) ;; LATIN CAPITAL LETTER Y WITH ACUTE
+        (?\\e,B^\e(B . ?\x0162) ;; LATIN CAPITAL LETTER T WITH CEDILLA
+        (?\\e,B_\e(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S
+        (?\\e,B`\e(B . ?\x0155) ;; LATIN SMALL LETTER R WITH ACUTE
+        (?\\e,Ba\e(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE
+        (?\\e,Bb\e(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX
+        (?\\e,Bc\e(B . ?\x0103) ;; LATIN SMALL LETTER A WITH BREVE
+        (?\\e,Bd\e(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS
+        (?\\e,Be\e(B . ?\x013A) ;; LATIN SMALL LETTER L WITH ACUTE
+        (?\\e,Bf\e(B . ?\x0107) ;; LATIN SMALL LETTER C WITH ACUTE
+        (?\\e,Bg\e(B . ?\x00E7) ;; LATIN SMALL LETTER C WITH CEDILLA
+        (?\\e,Bh\e(B . ?\x010D) ;; LATIN SMALL LETTER C WITH CARON
+        (?\\e,Bi\e(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE
+        (?\\e,Bj\e(B . ?\x0119) ;; LATIN SMALL LETTER E WITH OGONEK
+        (?\\e,Bk\e(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS
+        (?\\e,Bl\e(B . ?\x011B) ;; LATIN SMALL LETTER E WITH CARON
+        (?\\e,Bm\e(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE
+        (?\\e,Bn\e(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX
+        (?\\e,Bo\e(B . ?\x010F) ;; LATIN SMALL LETTER D WITH CARON
+        (?\\e,Bp\e(B . ?\x0111) ;; LATIN SMALL LETTER D WITH STROKE
+        (?\\e,Bq\e(B . ?\x0144) ;; LATIN SMALL LETTER N WITH ACUTE
+        (?\\e,Br\e(B . ?\x0148) ;; LATIN SMALL LETTER N WITH CARON
+        (?\\e,Bs\e(B . ?\x00F3) ;; LATIN SMALL LETTER O WITH ACUTE
+        (?\\e,Bt\e(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX
+        (?\\e,Bu\e(B . ?\x0151) ;; LATIN SMALL LETTER O WITH DOUBLE ACUTE
+        (?\\e,Bv\e(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS
+        (?\\e,Bw\e(B . ?\x00F7) ;; DIVISION SIGN
+        (?\\e,Bx\e(B . ?\x0159) ;; LATIN SMALL LETTER R WITH CARON
+        (?\\e,By\e(B . ?\x016F) ;; LATIN SMALL LETTER U WITH RING ABOVE
+        (?\\e,Bz\e(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE
+        (?\\e,B{\e(B . ?\x0171) ;; LATIN SMALL LETTER U WITH DOUBLE ACUTE
+        (?\\e,B|\e(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS
+        (?\\e,B}\e(B . ?\x00FD) ;; LATIN SMALL LETTER Y WITH ACUTE
+        (?\\e,B~\e(B . ?\x0163) ;; LATIN SMALL LETTER T WITH CEDILLA
+        (?\\e,B\7f\e(B . ?\x02D9) ;; DOT ABOVE
+        ))
+
+      (ucs-8859-3-alist
+       '((?\\e,C \e(B . ?\x00A0) ;; NO-BREAK SPACE
+        (?\\e,C!\e(B . ?\x0126) ;; LATIN CAPITAL LETTER H WITH STROKE
+        (?\\e,C"\e(B . ?\x02D8) ;; BREVE
+        (?\\e,C#\e(B . ?\x00A3) ;; POUND SIGN
+        (?\\e,C$\e(B . ?\x00A4) ;; CURRENCY SIGN
+        (?\\e,C&\e(B . ?\x0124) ;; LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+        (?\\e,C'\e(B . ?\x00A7) ;; SECTION SIGN
+        (?\\e,C(\e(B . ?\x00A8) ;; DIAERESIS
+        (?\\e,C)\e(B . ?\x0130) ;; LATIN CAPITAL LETTER I WITH DOT ABOVE
+        (?\\e,C*\e(B . ?\x015E) ;; LATIN CAPITAL LETTER S WITH CEDILLA
+        (?\\e,C+\e(B . ?\x011E) ;; LATIN CAPITAL LETTER G WITH BREVE
+        (?\\e,C,\e(B . ?\x0134) ;; LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+        (?\\e,C-\e(B . ?\x00AD) ;; SOFT HYPHEN
+        (?\\e,C/\e(B . ?\x017B) ;; LATIN CAPITAL LETTER Z WITH DOT ABOVE
+        (?\\e,C0\e(B . ?\x00B0) ;; DEGREE SIGN
+        (?\\e,C1\e(B . ?\x0127) ;; LATIN SMALL LETTER H WITH STROKE
+        (?\\e,C2\e(B . ?\x00B2) ;; SUPERSCRIPT TWO
+        (?\\e,C3\e(B . ?\x00B3) ;; SUPERSCRIPT THREE
+        (?\\e,C4\e(B . ?\x00B4) ;; ACUTE ACCENT
+        (?\\e,C5\e(B . ?\x00B5) ;; MICRO SIGN
+        (?\\e,C6\e(B . ?\x0125) ;; LATIN SMALL LETTER H WITH CIRCUMFLEX
+        (?\\e,C7\e(B . ?\x00B7) ;; MIDDLE DOT
+        (?\\e,C8\e(B . ?\x00B8) ;; CEDILLA
+        (?\\e,C9\e(B . ?\x0131) ;; LATIN SMALL LETTER DOTLESS I
+        (?\\e,C:\e(B . ?\x015F) ;; LATIN SMALL LETTER S WITH CEDILLA
+        (?\\e,C;\e(B . ?\x011F) ;; LATIN SMALL LETTER G WITH BREVE
+        (?\\e,C<\e(B . ?\x0135) ;; LATIN SMALL LETTER J WITH CIRCUMFLEX
+        (?\\e,C=\e(B . ?\x00BD) ;; VULGAR FRACTION ONE HALF
+        (?\\e,C?\e(B . ?\x017C) ;; LATIN SMALL LETTER Z WITH DOT ABOVE
+        (?\\e,C@\e(B . ?\x00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE
+        (?\\e,CA\e(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE
+        (?\\e,CB\e(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+        (?\\e,CD\e(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS
+        (?\\e,CE\e(B . ?\x010A) ;; LATIN CAPITAL LETTER C WITH DOT ABOVE
+        (?\\e,CF\e(B . ?\x0108) ;; LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+        (?\\e,CG\e(B . ?\x00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA
+        (?\\e,CH\e(B . ?\x00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE
+        (?\\e,CI\e(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE
+        (?\\e,CJ\e(B . ?\x00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+        (?\\e,CK\e(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS
+        (?\\e,CL\e(B . ?\x00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE
+        (?\\e,CM\e(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE
+        (?\\e,CN\e(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+        (?\\e,CO\e(B . ?\x00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS
+        (?\\e,CQ\e(B . ?\x00D1) ;; LATIN CAPITAL LETTER N WITH TILDE
+        (?\\e,CR\e(B . ?\x00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE
+        (?\\e,CS\e(B . ?\x00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE
+        (?\\e,CT\e(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+        (?\\e,CU\e(B . ?\x0120) ;; LATIN CAPITAL LETTER G WITH DOT ABOVE
+        (?\\e,CV\e(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS
+        (?\\e,CW\e(B . ?\x00D7) ;; MULTIPLICATION SIGN
+        (?\\e,CX\e(B . ?\x011C) ;; LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+        (?\\e,CY\e(B . ?\x00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE
+        (?\\e,CZ\e(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE
+        (?\\e,C[\e(B . ?\x00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+        (?\\e,C\\e(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS
+        (?\\e,C]\e(B . ?\x016C) ;; LATIN CAPITAL LETTER U WITH BREVE
+        (?\\e,C^\e(B . ?\x015C) ;; LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+        (?\\e,C_\e(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S
+        (?\\e,C`\e(B . ?\x00E0) ;; LATIN SMALL LETTER A WITH GRAVE
+        (?\\e,Ca\e(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE
+        (?\\e,Cb\e(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX
+        (?\\e,Cd\e(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS
+        (?\\e,Ce\e(B . ?\x010B) ;; LATIN SMALL LETTER C WITH DOT ABOVE
+        (?\\e,Cf\e(B . ?\x0109) ;; LATIN SMALL LETTER C WITH CIRCUMFLEX
+        (?\\e,Cg\e(B . ?\x00E7) ;; LATIN SMALL LETTER C WITH CEDILLA
+        (?\\e,Ch\e(B . ?\x00E8) ;; LATIN SMALL LETTER E WITH GRAVE
+        (?\\e,Ci\e(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE
+        (?\\e,Cj\e(B . ?\x00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX
+        (?\\e,Ck\e(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS
+        (?\\e,Cl\e(B . ?\x00EC) ;; LATIN SMALL LETTER I WITH GRAVE
+        (?\\e,Cm\e(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE
+        (?\\e,Cn\e(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX
+        (?\\e,Co\e(B . ?\x00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS
+        (?\\e,Cq\e(B . ?\x00F1) ;; LATIN SMALL LETTER N WITH TILDE
+        (?\\e,Cr\e(B . ?\x00F2) ;; LATIN SMALL LETTER O WITH GRAVE
+        (?\\e,Cs\e(B . ?\x00F3) ;; LATIN SMALL LETTER O WITH ACUTE
+        (?\\e,Ct\e(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX
+        (?\\e,Cu\e(B . ?\x0121) ;; LATIN SMALL LETTER G WITH DOT ABOVE
+        (?\\e,Cv\e(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS
+        (?\\e,Cw\e(B . ?\x00F7) ;; DIVISION SIGN
+        (?\\e,Cx\e(B . ?\x011D) ;; LATIN SMALL LETTER G WITH CIRCUMFLEX
+        (?\\e,Cy\e(B . ?\x00F9) ;; LATIN SMALL LETTER U WITH GRAVE
+        (?\\e,Cz\e(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE
+        (?\\e,C{\e(B . ?\x00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX
+        (?\\e,C|\e(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS
+        (?\\e,C}\e(B . ?\x016D) ;; LATIN SMALL LETTER U WITH BREVE
+        (?\\e,C~\e(B . ?\x015D) ;; LATIN SMALL LETTER S WITH CIRCUMFLEX
+        (?\\e,C\7f\e(B . ?\x02D9) ;; DOT ABOVE
+        ))
+
+      (ucs-8859-4-alist
+       '((?\\e,D \e(B . ?\x00A0) ;; NO-BREAK SPACE
+        (?\\e,D!\e(B . ?\x0104) ;; LATIN CAPITAL LETTER A WITH OGONEK
+        (?\\e,D"\e(B . ?\x0138) ;; LATIN SMALL LETTER KRA
+        (?\\e,D#\e(B . ?\x0156) ;; LATIN CAPITAL LETTER R WITH CEDILLA
+        (?\\e,D$\e(B . ?\x00A4) ;; CURRENCY SIGN
+        (?\\e,D%\e(B . ?\x0128) ;; LATIN CAPITAL LETTER I WITH TILDE
+        (?\\e,D&\e(B . ?\x013B) ;; LATIN CAPITAL LETTER L WITH CEDILLA
+        (?\\e,D'\e(B . ?\x00A7) ;; SECTION SIGN
+        (?\\e,D(\e(B . ?\x00A8) ;; DIAERESIS
+        (?\\e,D)\e(B . ?\x0160) ;; LATIN CAPITAL LETTER S WITH CARON
+        (?\\e,D*\e(B . ?\x0112) ;; LATIN CAPITAL LETTER E WITH MACRON
+        (?\\e,D+\e(B . ?\x0122) ;; LATIN CAPITAL LETTER G WITH CEDILLA
+        (?\\e,D,\e(B . ?\x0166) ;; LATIN CAPITAL LETTER T WITH STROKE
+        (?\\e,D-\e(B . ?\x00AD) ;; SOFT HYPHEN
+        (?\\e,D.\e(B . ?\x017D) ;; LATIN CAPITAL LETTER Z WITH CARON
+        (?\\e,D/\e(B . ?\x00AF) ;; MACRON
+        (?\\e,D0\e(B . ?\x00B0) ;; DEGREE SIGN
+        (?\\e,D1\e(B . ?\x0105) ;; LATIN SMALL LETTER A WITH OGONEK
+        (?\\e,D2\e(B . ?\x02DB) ;; OGONEK
+        (?\\e,D3\e(B . ?\x0157) ;; LATIN SMALL LETTER R WITH CEDILLA
+        (?\\e,D4\e(B . ?\x00B4) ;; ACUTE ACCENT
+        (?\\e,D5\e(B . ?\x0129) ;; LATIN SMALL LETTER I WITH TILDE
+        (?\\e,D6\e(B . ?\x013C) ;; LATIN SMALL LETTER L WITH CEDILLA
+        (?\\e,D7\e(B . ?\x02C7) ;; CARON
+        (?\\e,D8\e(B . ?\x00B8) ;; CEDILLA
+        (?\\e,D9\e(B . ?\x0161) ;; LATIN SMALL LETTER S WITH CARON
+        (?\\e,D:\e(B . ?\x0113) ;; LATIN SMALL LETTER E WITH MACRON
+        (?\\e,D;\e(B . ?\x0123) ;; LATIN SMALL LETTER G WITH CEDILLA
+        (?\\e,D<\e(B . ?\x0167) ;; LATIN SMALL LETTER T WITH STROKE
+        (?\\e,D=\e(B . ?\x014A) ;; LATIN CAPITAL LETTER ENG
+        (?\\e,D>\e(B . ?\x017E) ;; LATIN SMALL LETTER Z WITH CARON
+        (?\\e,D?\e(B . ?\x014B) ;; LATIN SMALL LETTER ENG
+        (?\\e,D@\e(B . ?\x0100) ;; LATIN CAPITAL LETTER A WITH MACRON
+        (?\\e,DA\e(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE
+        (?\\e,DB\e(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+        (?\\e,DC\e(B . ?\x00C3) ;; LATIN CAPITAL LETTER A WITH TILDE
+        (?\\e,DD\e(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS
+        (?\\e,DE\e(B . ?\x00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE
+        (?\\e,DF\e(B . ?\x00C6) ;; LATIN CAPITAL LETTER AE
+        (?\\e,DG\e(B . ?\x012E) ;; LATIN CAPITAL LETTER I WITH OGONEK
+        (?\\e,DH\e(B . ?\x010C) ;; LATIN CAPITAL LETTER C WITH CARON
+        (?\\e,DI\e(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE
+        (?\\e,DJ\e(B . ?\x0118) ;; LATIN CAPITAL LETTER E WITH OGONEK
+        (?\\e,DK\e(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS
+        (?\\e,DL\e(B . ?\x0116) ;; LATIN CAPITAL LETTER E WITH DOT ABOVE
+        (?\\e,DM\e(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE
+        (?\\e,DN\e(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+        (?\\e,DO\e(B . ?\x012A) ;; LATIN CAPITAL LETTER I WITH MACRON
+        (?\\e,DP\e(B . ?\x0110) ;; LATIN CAPITAL LETTER D WITH STROKE
+        (?\\e,DQ\e(B . ?\x0145) ;; LATIN CAPITAL LETTER N WITH CEDILLA
+        (?\\e,DR\e(B . ?\x014C) ;; LATIN CAPITAL LETTER O WITH MACRON
+        (?\\e,DS\e(B . ?\x0136) ;; LATIN CAPITAL LETTER K WITH CEDILLA
+        (?\\e,DT\e(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+        (?\\e,DU\e(B . ?\x00D5) ;; LATIN CAPITAL LETTER O WITH TILDE
+        (?\\e,DV\e(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS
+        (?\\e,DW\e(B . ?\x00D7) ;; MULTIPLICATION SIGN
+        (?\\e,DX\e(B . ?\x00D8) ;; LATIN CAPITAL LETTER O WITH STROKE
+        (?\\e,DY\e(B . ?\x0172) ;; LATIN CAPITAL LETTER U WITH OGONEK
+        (?\\e,DZ\e(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE
+        (?\\e,D[\e(B . ?\x00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+        (?\\e,D\\e(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS
+        (?\\e,D]\e(B . ?\x0168) ;; LATIN CAPITAL LETTER U WITH TILDE
+        (?\\e,D^\e(B . ?\x016A) ;; LATIN CAPITAL LETTER U WITH MACRON
+        (?\\e,D_\e(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S
+        (?\\e,D`\e(B . ?\x0101) ;; LATIN SMALL LETTER A WITH MACRON
+        (?\\e,Da\e(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE
+        (?\\e,Db\e(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX
+        (?\\e,Dc\e(B . ?\x00E3) ;; LATIN SMALL LETTER A WITH TILDE
+        (?\\e,Dd\e(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS
+        (?\\e,De\e(B . ?\x00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE
+        (?\\e,Df\e(B . ?\x00E6) ;; LATIN SMALL LETTER AE
+        (?\\e,Dg\e(B . ?\x012F) ;; LATIN SMALL LETTER I WITH OGONEK
+        (?\\e,Dh\e(B . ?\x010D) ;; LATIN SMALL LETTER C WITH CARON
+        (?\\e,Di\e(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE
+        (?\\e,Dj\e(B . ?\x0119) ;; LATIN SMALL LETTER E WITH OGONEK
+        (?\\e,Dk\e(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS
+        (?\\e,Dl\e(B . ?\x0117) ;; LATIN SMALL LETTER E WITH DOT ABOVE
+        (?\\e,Dm\e(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE
+        (?\\e,Dn\e(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX
+        (?\\e,Do\e(B . ?\x012B) ;; LATIN SMALL LETTER I WITH MACRON
+        (?\\e,Dp\e(B . ?\x0111) ;; LATIN SMALL LETTER D WITH STROKE
+        (?\\e,Dq\e(B . ?\x0146) ;; LATIN SMALL LETTER N WITH CEDILLA
+        (?\\e,Dr\e(B . ?\x014D) ;; LATIN SMALL LETTER O WITH MACRON
+        (?\\e,Ds\e(B . ?\x0137) ;; LATIN SMALL LETTER K WITH CEDILLA
+        (?\\e,Dt\e(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX
+        (?\\e,Du\e(B . ?\x00F5) ;; LATIN SMALL LETTER O WITH TILDE
+        (?\\e,Dv\e(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS
+        (?\\e,Dw\e(B . ?\x00F7) ;; DIVISION SIGN
+        (?\\e,Dx\e(B . ?\x00F8) ;; LATIN SMALL LETTER O WITH STROKE
+        (?\\e,Dy\e(B . ?\x0173) ;; LATIN SMALL LETTER U WITH OGONEK
+        (?\\e,Dz\e(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE
+        (?\\e,D{\e(B . ?\x00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX
+        (?\\e,D|\e(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS
+        (?\\e,D}\e(B . ?\x0169) ;; LATIN SMALL LETTER U WITH TILDE
+        (?\\e,D~\e(B . ?\x016B) ;; LATIN SMALL LETTER U WITH MACRON
+        (?\\e,D\7f\e(B . ?\x02D9) ;; DOT ABOVE
+        ))
+
+      (ucs-8859-5-alist
+       '((?\\e,L \e(B . ?\x00A0) ;; NO-BREAK SPACE
+        (?\\e,L!\e(B . ?\x0401) ;; CYRILLIC CAPITAL LETTER IO
+        (?\\e,L"\e(B . ?\x0402) ;; CYRILLIC CAPITAL LETTER DJE
+        (?\\e,L#\e(B . ?\x0403) ;; CYRILLIC CAPITAL LETTER GJE
+        (?\\e,L$\e(B . ?\x0404) ;; CYRILLIC CAPITAL LETTER UKRAINIAN IE
+        (?\\e,L%\e(B . ?\x0405) ;; CYRILLIC CAPITAL LETTER DZE
+        (?\\e,L&\e(B . ?\x0406) ;; CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+        (?\\e,L'\e(B . ?\x0407) ;; CYRILLIC CAPITAL LETTER YI
+        (?\\e,L(\e(B . ?\x0408) ;; CYRILLIC CAPITAL LETTER JE
+        (?\\e,L)\e(B . ?\x0409) ;; CYRILLIC CAPITAL LETTER LJE
+        (?\\e,L*\e(B . ?\x040A) ;; CYRILLIC CAPITAL LETTER NJE
+        (?\\e,L+\e(B . ?\x040B) ;; CYRILLIC CAPITAL LETTER TSHE
+        (?\\e,L,\e(B . ?\x040C) ;; CYRILLIC CAPITAL LETTER KJE
+        (?\\e,L-\e(B . ?\x00AD) ;; SOFT HYPHEN
+        (?\\e,L.\e(B . ?\x040E) ;; CYRILLIC CAPITAL LETTER SHORT U
+        (?\\e,L/\e(B . ?\x040F) ;; CYRILLIC CAPITAL LETTER DZHE
+        (?\\e,L0\e(B . ?\x0410) ;; CYRILLIC CAPITAL LETTER A
+        (?\\e,L1\e(B . ?\x0411) ;; CYRILLIC CAPITAL LETTER BE
+        (?\\e,L2\e(B . ?\x0412) ;; CYRILLIC CAPITAL LETTER VE
+        (?\\e,L3\e(B . ?\x0413) ;; CYRILLIC CAPITAL LETTER GHE
+        (?\\e,L4\e(B . ?\x0414) ;; CYRILLIC CAPITAL LETTER DE
+        (?\\e,L5\e(B . ?\x0415) ;; CYRILLIC CAPITAL LETTER IE
+        (?\\e,L6\e(B . ?\x0416) ;; CYRILLIC CAPITAL LETTER ZHE
+        (?\\e,L7\e(B . ?\x0417) ;; CYRILLIC CAPITAL LETTER ZE
+        (?\\e,L8\e(B . ?\x0418) ;; CYRILLIC CAPITAL LETTER I
+        (?\\e,L9\e(B . ?\x0419) ;; CYRILLIC CAPITAL LETTER SHORT I
+        (?\\e,L:\e(B . ?\x041A) ;; CYRILLIC CAPITAL LETTER KA
+        (?\\e,L;\e(B . ?\x041B) ;; CYRILLIC CAPITAL LETTER EL
+        (?\\e,L<\e(B . ?\x041C) ;; CYRILLIC CAPITAL LETTER EM
+        (?\\e,L=\e(B . ?\x041D) ;; CYRILLIC CAPITAL LETTER EN
+        (?\\e,L>\e(B . ?\x041E) ;; CYRILLIC CAPITAL LETTER O
+        (?\\e,L?\e(B . ?\x041F) ;; CYRILLIC CAPITAL LETTER PE
+        (?\\e,L@\e(B . ?\x0420) ;; CYRILLIC CAPITAL LETTER ER
+        (?\\e,LA\e(B . ?\x0421) ;; CYRILLIC CAPITAL LETTER ES
+        (?\\e,LB\e(B . ?\x0422) ;; CYRILLIC CAPITAL LETTER TE
+        (?\\e,LC\e(B . ?\x0423) ;; CYRILLIC CAPITAL LETTER U
+        (?\\e,LD\e(B . ?\x0424) ;; CYRILLIC CAPITAL LETTER EF
+        (?\\e,LE\e(B . ?\x0425) ;; CYRILLIC CAPITAL LETTER HA
+        (?\\e,LF\e(B . ?\x0426) ;; CYRILLIC CAPITAL LETTER TSE
+        (?\\e,LG\e(B . ?\x0427) ;; CYRILLIC CAPITAL LETTER CHE
+        (?\\e,LH\e(B . ?\x0428) ;; CYRILLIC CAPITAL LETTER SHA
+        (?\\e,LI\e(B . ?\x0429) ;; CYRILLIC CAPITAL LETTER SHCHA
+        (?\\e,LJ\e(B . ?\x042A) ;; CYRILLIC CAPITAL LETTER HARD SIGN
+        (?\\e,LK\e(B . ?\x042B) ;; CYRILLIC CAPITAL LETTER YERU
+        (?\\e,LL\e(B . ?\x042C) ;; CYRILLIC CAPITAL LETTER SOFT SIGN
+        (?\\e,LM\e(B . ?\x042D) ;; CYRILLIC CAPITAL LETTER E
+        (?\\e,LN\e(B . ?\x042E) ;; CYRILLIC CAPITAL LETTER YU
+        (?\\e,LO\e(B . ?\x042F) ;; CYRILLIC CAPITAL LETTER YA
+        (?\\e,LP\e(B . ?\x0430) ;; CYRILLIC SMALL LETTER A
+        (?\\e,LQ\e(B . ?\x0431) ;; CYRILLIC SMALL LETTER BE
+        (?\\e,LR\e(B . ?\x0432) ;; CYRILLIC SMALL LETTER VE
+        (?\\e,LS\e(B . ?\x0433) ;; CYRILLIC SMALL LETTER GHE
+        (?\\e,LT\e(B . ?\x0434) ;; CYRILLIC SMALL LETTER DE
+        (?\\e,LU\e(B . ?\x0435) ;; CYRILLIC SMALL LETTER IE
+        (?\\e,LV\e(B . ?\x0436) ;; CYRILLIC SMALL LETTER ZHE
+        (?\\e,LW\e(B . ?\x0437) ;; CYRILLIC SMALL LETTER ZE
+        (?\\e,LX\e(B . ?\x0438) ;; CYRILLIC SMALL LETTER I
+        (?\\e,LY\e(B . ?\x0439) ;; CYRILLIC SMALL LETTER SHORT I
+        (?\\e,LZ\e(B . ?\x043A) ;; CYRILLIC SMALL LETTER KA
+        (?\\e,L[\e(B . ?\x043B) ;; CYRILLIC SMALL LETTER EL
+        (?\\e,L\\e(B . ?\x043C) ;; CYRILLIC SMALL LETTER EM
+        (?\\e,L]\e(B . ?\x043D) ;; CYRILLIC SMALL LETTER EN
+        (?\\e,L^\e(B . ?\x043E) ;; CYRILLIC SMALL LETTER O
+        (?\\e,L_\e(B . ?\x043F) ;; CYRILLIC SMALL LETTER PE
+        (?\\e,L`\e(B . ?\x0440) ;; CYRILLIC SMALL LETTER ER
+        (?\\e,La\e(B . ?\x0441) ;; CYRILLIC SMALL LETTER ES
+        (?\\e,Lb\e(B . ?\x0442) ;; CYRILLIC SMALL LETTER TE
+        (?\\e,Lc\e(B . ?\x0443) ;; CYRILLIC SMALL LETTER U
+        (?\\e,Ld\e(B . ?\x0444) ;; CYRILLIC SMALL LETTER EF
+        (?\\e,Le\e(B . ?\x0445) ;; CYRILLIC SMALL LETTER HA
+        (?\\e,Lf\e(B . ?\x0446) ;; CYRILLIC SMALL LETTER TSE
+        (?\\e,Lg\e(B . ?\x0447) ;; CYRILLIC SMALL LETTER CHE
+        (?\\e,Lh\e(B . ?\x0448) ;; CYRILLIC SMALL LETTER SHA
+        (?\\e,Li\e(B . ?\x0449) ;; CYRILLIC SMALL LETTER SHCHA
+        (?\\e,Lj\e(B . ?\x044A) ;; CYRILLIC SMALL LETTER HARD SIGN
+        (?\\e,Lk\e(B . ?\x044B) ;; CYRILLIC SMALL LETTER YERU
+        (?\\e,Ll\e(B . ?\x044C) ;; CYRILLIC SMALL LETTER SOFT SIGN
+        (?\\e,Lm\e(B . ?\x044D) ;; CYRILLIC SMALL LETTER E
+        (?\\e,Ln\e(B . ?\x044E) ;; CYRILLIC SMALL LETTER YU
+        (?\\e,Lo\e(B . ?\x044F) ;; CYRILLIC SMALL LETTER YA
+        (?\\e,Lp\e(B . ?\x2116) ;; NUMERO SIGN
+        (?\\e,Lq\e(B . ?\x0451) ;; CYRILLIC SMALL LETTER IO
+        (?\\e,Lr\e(B . ?\x0452) ;; CYRILLIC SMALL LETTER DJE
+        (?\\e,Ls\e(B . ?\x0453) ;; CYRILLIC SMALL LETTER GJE
+        (?\\e,Lt\e(B . ?\x0454) ;; CYRILLIC SMALL LETTER UKRAINIAN IE
+        (?\\e,Lu\e(B . ?\x0455) ;; CYRILLIC SMALL LETTER DZE
+        (?\\e,Lv\e(B . ?\x0456) ;; CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+        (?\\e,Lw\e(B . ?\x0457) ;; CYRILLIC SMALL LETTER YI
+        (?\\e,Lx\e(B . ?\x0458) ;; CYRILLIC SMALL LETTER JE
+        (?\\e,Ly\e(B . ?\x0459) ;; CYRILLIC SMALL LETTER LJE
+        (?\\e,Lz\e(B . ?\x045A) ;; CYRILLIC SMALL LETTER NJE
+        (?\\e,L{\e(B . ?\x045B) ;; CYRILLIC SMALL LETTER TSHE
+        (?\\e,L|\e(B . ?\x045C) ;; CYRILLIC SMALL LETTER KJE
+        (?\\e,L}\e(B . ?\x00A7) ;; SECTION SIGN
+        (?\\e,L~\e(B . ?\x045E) ;; CYRILLIC SMALL LETTER SHORT U
+        (?\\e,L\7f\e(B . ?\x045F) ;; CYRILLIC SMALL LETTER DZHE
+        ))
+
+      ;; Arabic probably isn't so useful in the absence of Arabic
+      ;; language support.
+      (ucs-8859-6-alist
+       '((?\e,G \e(B . ?\x00A0)  ;; NO-BREAK SPACE
+        (?\e,G$\e(B . ?\x00A4)   ;; CURRENCY SIGN
+        (?\e,G,\e(B . ?\x060C)   ;; ARABIC COMMA
+        (?\e,G-\e(B . ?\x00AD)   ;; SOFT HYPHEN
+        (?\e,G;\e(B . ?\x061B)   ;; ARABIC SEMICOLON
+        (?\e,G?\e(B . ?\x061F)   ;; ARABIC QUESTION MARK
+        (?\e,GA\e(B . ?\x0621)   ;; ARABIC LETTER HAMZA
+        (?\e,GB\e(B . ?\x0622)   ;; ARABIC LETTER ALEF WITH MADDA ABOVE
+        (?\e,GC\e(B . ?\x0623)   ;; ARABIC LETTER ALEF WITH HAMZA ABOVE
+        (?\e,GD\e(B . ?\x0624)   ;; ARABIC LETTER WAW WITH HAMZA ABOVE
+        (?\e,GE\e(B . ?\x0625)   ;; ARABIC LETTER ALEF WITH HAMZA BELOW
+        (?\e,GF\e(B . ?\x0626)   ;; ARABIC LETTER YEH WITH HAMZA ABOVE
+        (?\e,GG\e(B . ?\x0627)   ;; ARABIC LETTER ALEF
+        (?\e,GH\e(B . ?\x0628)   ;; ARABIC LETTER BEH
+        (?\e,GI\e(B . ?\x0629)   ;; ARABIC LETTER TEH MARBUTA
+        (?\e,GJ\e(B . ?\x062A)   ;; ARABIC LETTER TEH
+        (?\e,GK\e(B . ?\x062B)   ;; ARABIC LETTER THEH
+        (?\e,GL\e(B . ?\x062C)   ;; ARABIC LETTER JEEM
+        (?\e,GM\e(B . ?\x062D)   ;; ARABIC LETTER HAH
+        (?\e,GN\e(B . ?\x062E)   ;; ARABIC LETTER KHAH
+        (?\e,GO\e(B . ?\x062F)   ;; ARABIC LETTER DAL
+        (?\e,GP\e(B . ?\x0630)   ;; ARABIC LETTER THAL
+        (?\e,GQ\e(B . ?\x0631)   ;; ARABIC LETTER REH
+        (?\e,GR\e(B . ?\x0632)   ;; ARABIC LETTER ZAIN
+        (?\e,GS\e(B . ?\x0633)   ;; ARABIC LETTER SEEN
+        (?\e,GT\e(B . ?\x0634)   ;; ARABIC LETTER SHEEN
+        (?\e,GU\e(B . ?\x0635)   ;; ARABIC LETTER SAD
+        (?\e,GV\e(B . ?\x0636)   ;; ARABIC LETTER DAD
+        (?\e,GW\e(B . ?\x0637)   ;; ARABIC LETTER TAH
+        (?\e,GX\e(B . ?\x0638)   ;; ARABIC LETTER ZAH
+        (?\e,GY\e(B . ?\x0639)   ;; ARABIC LETTER AIN
+        (?\e,GZ\e(B . ?\x063A)   ;; ARABIC LETTER GHAIN
+        (?\e,G`\e(B . ?\x0640)   ;; ARABIC TATWEEL
+        (?\e,Ga\e(B . ?\x0641)   ;; ARABIC LETTER FEH
+        (?\e,Gb\e(B . ?\x0642)   ;; ARABIC LETTER QAF
+        (?\e,Gc\e(B . ?\x0643)   ;; ARABIC LETTER KAF
+        (?\e,Gd\e(B . ?\x0644)   ;; ARABIC LETTER LAM
+        (?\e,Ge\e(B . ?\x0645)   ;; ARABIC LETTER MEEM
+        (?\e,Gf\e(B . ?\x0646)   ;; ARABIC LETTER NOON
+        (?\e,Gg\e(B . ?\x0647)   ;; ARABIC LETTER HEH
+        (?\e,Gh\e(B . ?\x0648)   ;; ARABIC LETTER WAW
+        (?\e,Gi\e(B . ?\x0649)   ;; ARABIC LETTER ALEF MAKSURA
+        (?\e,Gj\e(B . ?\x064A)   ;; ARABIC LETTER YEH
+        (?\e,Gk\e(B . ?\x064B)   ;; ARABIC FATHATAN
+        (?\e,Gl\e(B . ?\x064C)   ;; ARABIC DAMMATAN
+        (?\e,Gm\e(B . ?\x064D)   ;; ARABIC KASRATAN
+        (?\e,Gn\e(B . ?\x064E)   ;; ARABIC FATHA
+        (?\e,Go\e(B . ?\x064F)   ;; ARABIC DAMMA
+        (?\e,Gp\e(B . ?\x0650)   ;; ARABIC KASRA
+        (?\e,Gq\e(B . ?\x0651)   ;; ARABIC SHADDA
+        (?\e,Gr\e(B . ?\x0652)   ;; ARABIC SUKUN
+        ))
+
+      (ucs-8859-7-alist
+       '((?\\e,F \e(B . ?\x00A0) ;; NO-BREAK SPACE
+        (?\\e,F!\e(B . ?\x2018) ;; LEFT SINGLE QUOTATION MARK
+        (?\\e,F"\e(B . ?\x2019) ;; RIGHT SINGLE QUOTATION MARK
+        (?\\e,F#\e(B . ?\x00A3) ;; POUND SIGN
+        (?\\e,F&\e(B . ?\x00A6) ;; BROKEN BAR
+        (?\\e,F'\e(B . ?\x00A7) ;; SECTION SIGN
+        (?\\e,F(\e(B . ?\x00A8) ;; DIAERESIS
+        (?\\e,F)\e(B . ?\x00A9) ;; COPYRIGHT SIGN
+        (?\\e,F+\e(B . ?\x00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+        (?\\e,F,\e(B . ?\x00AC) ;; NOT SIGN
+        (?\\e,F-\e(B . ?\x00AD) ;; SOFT HYPHEN
+        (?\\e,F/\e(B . ?\x2015) ;; HORIZONTAL BAR
+        (?\\e,F0\e(B . ?\x00B0) ;; DEGREE SIGN
+        (?\\e,F1\e(B . ?\x00B1) ;; PLUS-MINUS SIGN
+        (?\\e,F2\e(B . ?\x00B2) ;; SUPERSCRIPT TWO
+        (?\\e,F3\e(B . ?\x00B3) ;; SUPERSCRIPT THREE
+        (?\\e,F4\e(B . ?\x0384) ;; GREEK TONOS
+        (?\\e,F5\e(B . ?\x0385) ;; GREEK DIALYTIKA TONOS
+        (?\\e,F6\e(B . ?\x0386) ;; GREEK CAPITAL LETTER ALPHA WITH TONOS
+        (?\\e,F7\e(B . ?\x00B7) ;; MIDDLE DOT
+        (?\\e,F8\e(B . ?\x0388) ;; GREEK CAPITAL LETTER EPSILON WITH TONOS
+        (?\\e,F9\e(B . ?\x0389) ;; GREEK CAPITAL LETTER ETA WITH TONOS
+        (?\\e,F:\e(B . ?\x038A) ;; GREEK CAPITAL LETTER IOTA WITH TONOS
+        (?\\e,F;\e(B . ?\x00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+        (?\\e,F<\e(B . ?\x038C) ;; GREEK CAPITAL LETTER OMICRON WITH TONOS
+        (?\\e,F=\e(B . ?\x00BD) ;; VULGAR FRACTION ONE HALF
+        (?\\e,F>\e(B . ?\x038E) ;; GREEK CAPITAL LETTER UPSILON WITH TONOS
+        (?\\e,F?\e(B . ?\x038F) ;; GREEK CAPITAL LETTER OMEGA WITH TONOS
+        (?\\e,F@\e(B . ?\x0390) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+        (?\\e,FA\e(B . ?\x0391) ;; GREEK CAPITAL LETTER ALPHA
+        (?\\e,FB\e(B . ?\x0392) ;; GREEK CAPITAL LETTER BETA
+        (?\\e,FC\e(B . ?\x0393) ;; GREEK CAPITAL LETTER GAMMA
+        (?\\e,FD\e(B . ?\x0394) ;; GREEK CAPITAL LETTER DELTA
+        (?\\e,FE\e(B . ?\x0395) ;; GREEK CAPITAL LETTER EPSILON
+        (?\\e,FF\e(B . ?\x0396) ;; GREEK CAPITAL LETTER ZETA
+        (?\\e,FG\e(B . ?\x0397) ;; GREEK CAPITAL LETTER ETA
+        (?\\e,FH\e(B . ?\x0398) ;; GREEK CAPITAL LETTER THETA
+        (?\\e,FI\e(B . ?\x0399) ;; GREEK CAPITAL LETTER IOTA
+        (?\\e,FJ\e(B . ?\x039A) ;; GREEK CAPITAL LETTER KAPPA
+        (?\\e,FK\e(B . ?\x039B) ;; GREEK CAPITAL LETTER LAMDA
+        (?\\e,FL\e(B . ?\x039C) ;; GREEK CAPITAL LETTER MU
+        (?\\e,FM\e(B . ?\x039D) ;; GREEK CAPITAL LETTER NU
+        (?\\e,FN\e(B . ?\x039E) ;; GREEK CAPITAL LETTER XI
+        (?\\e,FO\e(B . ?\x039F) ;; GREEK CAPITAL LETTER OMICRON
+        (?\\e,FP\e(B . ?\x03A0) ;; GREEK CAPITAL LETTER PI
+        (?\\e,FQ\e(B . ?\x03A1) ;; GREEK CAPITAL LETTER RHO
+        (?\\e,FS\e(B . ?\x03A3) ;; GREEK CAPITAL LETTER SIGMA
+        (?\\e,FT\e(B . ?\x03A4) ;; GREEK CAPITAL LETTER TAU
+        (?\\e,FU\e(B . ?\x03A5) ;; GREEK CAPITAL LETTER UPSILON
+        (?\\e,FV\e(B . ?\x03A6) ;; GREEK CAPITAL LETTER PHI
+        (?\\e,FW\e(B . ?\x03A7) ;; GREEK CAPITAL LETTER CHI
+        (?\\e,FX\e(B . ?\x03A8) ;; GREEK CAPITAL LETTER PSI
+        (?\\e,FY\e(B . ?\x03A9) ;; GREEK CAPITAL LETTER OMEGA
+        (?\\e,FZ\e(B . ?\x03AA) ;; GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+        (?\\e,F[\e(B . ?\x03AB) ;; GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+        (?\\e,F\\e(B . ?\x03AC) ;; GREEK SMALL LETTER ALPHA WITH TONOS
+        (?\\e,F]\e(B . ?\x03AD) ;; GREEK SMALL LETTER EPSILON WITH TONOS
+        (?\\e,F^\e(B . ?\x03AE) ;; GREEK SMALL LETTER ETA WITH TONOS
+        (?\\e,F_\e(B . ?\x03AF) ;; GREEK SMALL LETTER IOTA WITH TONOS
+        (?\\e,F`\e(B . ?\x03B0) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+        (?\\e,Fa\e(B . ?\x03B1) ;; GREEK SMALL LETTER ALPHA
+        (?\\e,Fb\e(B . ?\x03B2) ;; GREEK SMALL LETTER BETA
+        (?\\e,Fc\e(B . ?\x03B3) ;; GREEK SMALL LETTER GAMMA
+        (?\\e,Fd\e(B . ?\x03B4) ;; GREEK SMALL LETTER DELTA
+        (?\\e,Fe\e(B . ?\x03B5) ;; GREEK SMALL LETTER EPSILON
+        (?\\e,Ff\e(B . ?\x03B6) ;; GREEK SMALL LETTER ZETA
+        (?\\e,Fg\e(B . ?\x03B7) ;; GREEK SMALL LETTER ETA
+        (?\\e,Fh\e(B . ?\x03B8) ;; GREEK SMALL LETTER THETA
+        (?\\e,Fi\e(B . ?\x03B9) ;; GREEK SMALL LETTER IOTA
+        (?\\e,Fj\e(B . ?\x03BA) ;; GREEK SMALL LETTER KAPPA
+        (?\\e,Fk\e(B . ?\x03BB) ;; GREEK SMALL LETTER LAMDA
+        (?\\e,Fl\e(B . ?\x03BC) ;; GREEK SMALL LETTER MU
+        (?\\e,Fm\e(B . ?\x03BD) ;; GREEK SMALL LETTER NU
+        (?\\e,Fn\e(B . ?\x03BE) ;; GREEK SMALL LETTER XI
+        (?\\e,Fo\e(B . ?\x03BF) ;; GREEK SMALL LETTER OMICRON
+        (?\\e,Fp\e(B . ?\x03C0) ;; GREEK SMALL LETTER PI
+        (?\\e,Fq\e(B . ?\x03C1) ;; GREEK SMALL LETTER RHO
+        (?\\e,Fr\e(B . ?\x03C2) ;; GREEK SMALL LETTER FINAL SIGMA
+        (?\\e,Fs\e(B . ?\x03C3) ;; GREEK SMALL LETTER SIGMA
+        (?\\e,Ft\e(B . ?\x03C4) ;; GREEK SMALL LETTER TAU
+        (?\\e,Fu\e(B . ?\x03C5) ;; GREEK SMALL LETTER UPSILON
+        (?\\e,Fv\e(B . ?\x03C6) ;; GREEK SMALL LETTER PHI
+        (?\\e,Fw\e(B . ?\x03C7) ;; GREEK SMALL LETTER CHI
+        (?\\e,Fx\e(B . ?\x03C8) ;; GREEK SMALL LETTER PSI
+        (?\\e,Fy\e(B . ?\x03C9) ;; GREEK SMALL LETTER OMEGA
+        (?\\e,Fz\e(B . ?\x03CA) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA
+        (?\\e,F{\e(B . ?\x03CB) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+        (?\\e,F|\e(B . ?\x03CC) ;; GREEK SMALL LETTER OMICRON WITH TONOS
+        (?\\e,F}\e(B . ?\x03CD) ;; GREEK SMALL LETTER UPSILON WITH TONOS
+        (?\\e,F~\e(B . ?\x03CE) ;; GREEK SMALL LETTER OMEGA WITH TONOS
+        ))
+
+      (ucs-8859-8-alist
+       '((?\\e,H \e(B . ?\x00A0) ;; NO-BREAK SPACE
+        (?\\e,H"\e(B . ?\x00A2) ;; CENT SIGN
+        (?\\e,H#\e(B . ?\x00A3) ;; POUND SIGN
+        (?\\e,H$\e(B . ?\x00A4) ;; CURRENCY SIGN
+        (?\\e,H%\e(B . ?\x00A5) ;; YEN SIGN
+        (?\\e,H&\e(B . ?\x00A6) ;; BROKEN BAR
+        (?\\e,H'\e(B . ?\x00A7) ;; SECTION SIGN
+        (?\\e,H(\e(B . ?\x00A8) ;; DIAERESIS
+        (?\\e,H)\e(B . ?\x00A9) ;; COPYRIGHT SIGN
+        (?\\e,H*\e(B . ?\x00D7) ;; MULTIPLICATION SIGN
+        (?\\e,H+\e(B . ?\x00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+        (?\\e,H,\e(B . ?\x00AC) ;; NOT SIGN
+        (?\\e,H-\e(B . ?\x00AD) ;; SOFT HYPHEN
+        (?\\e,H.\e(B . ?\x00AE) ;; REGISTERED SIGN
+        (?\\e,H/\e(B . ?\x00AF) ;; MACRON
+        (?\\e,H0\e(B . ?\x00B0) ;; DEGREE SIGN
+        (?\\e,H1\e(B . ?\x00B1) ;; PLUS-MINUS SIGN
+        (?\\e,H2\e(B . ?\x00B2) ;; SUPERSCRIPT TWO
+        (?\\e,H3\e(B . ?\x00B3) ;; SUPERSCRIPT THREE
+        (?\\e,H4\e(B . ?\x00B4) ;; ACUTE ACCENT
+        (?\\e,H5\e(B . ?\x00B5) ;; MICRO SIGN
+        (?\\e,H6\e(B . ?\x00B6) ;; PILCROW SIGN
+        (?\\e,H7\e(B . ?\x00B7) ;; MIDDLE DOT
+        (?\\e,H8\e(B . ?\x00B8) ;; CEDILLA
+        (?\\e,H9\e(B . ?\x00B9) ;; SUPERSCRIPT ONE
+        (?\\e,H:\e(B . ?\x00F7) ;; DIVISION SIGN
+        (?\\e,H;\e(B . ?\x00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+        (?\\e,H<\e(B . ?\x00BC) ;; VULGAR FRACTION ONE QUARTER
+        (?\\e,H=\e(B . ?\x00BD) ;; VULGAR FRACTION ONE HALF
+        (?\\e,H>\e(B . ?\x00BE) ;; VULGAR FRACTION THREE QUARTERS
+        ;; These are commented out since the current 8859-8 standard
+        ;; does not yet define these codepoints, although there are
+        ;; drafts which do).
+;       (?\\e,H@\e(B . ?\x05B0) ;; HEBREW POINT SHEVA
+;       (?\\e,HA\e(B . ?\x05B1) ;; HEBREW POINT HATAF SEGOL
+;       (?\\e,HB\e(B . ?\x05B2) ;; HEBREW POINT HATAF PATAH
+;       (?\\e,HC\e(B . ?\x05B3) ;; HEBREW POINT HATAF QAMATS
+;       (?\\e,HD\e(B . ?\x05B4) ;; HEBREW POINT HIRIQ
+;       (?\\e,HE\e(B . ?\x05B5) ;; HEBREW POINT TSERE
+;       (?\\e,HF\e(B . ?\x05B6) ;; HEBREW POINT SEGOL
+;       (?\\e,HG\e(B . ?\x05B7) ;; HEBREW POINT PATAH
+;       (?\\e,HH\e(B . ?\x05B8) ;; HEBREW POINT QAMATS
+;       (?\\e,HI\e(B . ?\x05B9) ;; HEBREW POINT HOLAM
+;       (?\\e,HK\e(B . ?\x05BB) ;; HEBREW POINT QUBUTS
+;       (?\\e,HL\e(B . ?\x05BC) ;; HEBREW POINT DAGESH
+;       (?\\e,HM\e(B . ?\x05BD) ;; HEBREW POINT METEG
+;       (?\\e,HN\e(B . ?\x05BE) ;; HEBREW POINT MAQAF
+;       (?\\e,HO\e(B . ?\x05BF) ;; HEBREW POINT RAFE
+;       (?\\e,HP\e(B . ?\x05C0) ;; HEBREW PUNCTUATION PASEQ
+;       (?\\e,HQ\e(B . ?\x05C1) ;; HEBREW POINT SHIN DOT
+;       (?\\e,HR\e(B . ?\x05C2) ;; HEBREW POINT SIN DOT
+;       (?\\e,HS\e(B . ?\x05C3) ;; HEBREW PUNCTUATION SOF PASUQ
+        (?\\e,H[\e(B . ?\x202D) ;; LEFT-TO-RIGHT OVERRIDE
+        (?\\e,H\\e(B . ?\x202E) ;; RIGHT-TO-LEFT OVERRIDE
+        (?\\e,H]\e(B . ?\x202C) ;; POP DIRECTIONAL FORMATTING
+        (?\\e,H_\e(B . ?\x2017) ;; DOUBLE LOW LINE
+        (?\\e,H`\e(B . ?\x05D0) ;; HEBREW LETTER ALEF
+        (?\\e,Ha\e(B . ?\x05D1) ;; HEBREW LETTER BET
+        (?\\e,Hb\e(B . ?\x05D2) ;; HEBREW LETTER GIMEL
+        (?\\e,Hc\e(B . ?\x05D3) ;; HEBREW LETTER DALET
+        (?\\e,Hd\e(B . ?\x05D4) ;; HEBREW LETTER HE
+        (?\\e,He\e(B . ?\x05D5) ;; HEBREW LETTER VAV
+        (?\\e,Hf\e(B . ?\x05D6) ;; HEBREW LETTER ZAYIN
+        (?\\e,Hg\e(B . ?\x05D7) ;; HEBREW LETTER HET
+        (?\\e,Hh\e(B . ?\x05D8) ;; HEBREW LETTER TET
+        (?\\e,Hi\e(B . ?\x05D9) ;; HEBREW LETTER YOD
+        (?\\e,Hj\e(B . ?\x05DA) ;; HEBREW LETTER FINAL KAF
+        (?\\e,Hk\e(B . ?\x05DB) ;; HEBREW LETTER KAF
+        (?\\e,Hl\e(B . ?\x05DC) ;; HEBREW LETTER LAMED
+        (?\\e,Hm\e(B . ?\x05DD) ;; HEBREW LETTER FINAL MEM
+        (?\\e,Hn\e(B . ?\x05DE) ;; HEBREW LETTER MEM
+        (?\\e,Ho\e(B . ?\x05DF) ;; HEBREW LETTER FINAL NUN
+        (?\\e,Hp\e(B . ?\x05E0) ;; HEBREW LETTER NUN
+        (?\\e,Hq\e(B . ?\x05E1) ;; HEBREW LETTER SAMEKH
+        (?\\e,Hr\e(B . ?\x05E2) ;; HEBREW LETTER AYIN
+        (?\\e,Hs\e(B . ?\x05E3) ;; HEBREW LETTER FINAL PE
+        (?\\e,Ht\e(B . ?\x05E4) ;; HEBREW LETTER PE
+        (?\\e,Hu\e(B . ?\x05E5) ;; HEBREW LETTER FINAL TSADI
+        (?\\e,Hv\e(B . ?\x05E6) ;; HEBREW LETTER TSADI
+        (?\\e,Hw\e(B . ?\x05E7) ;; HEBREW LETTER QOF
+        (?\\e,Hx\e(B . ?\x05E8) ;; HEBREW LETTER RESH
+        (?\\e,Hy\e(B . ?\x05E9) ;; HEBREW LETTER SHIN
+        (?\\e,Hz\e(B . ?\x05EA) ;; HEBREW LETTER TAV
+        (?\\e,H{\e(B . ?\x202A) ;; LEFT-TO-RIGHT EMBEDDING
+        (?\\e,H|\e(B . ?\x202B) ;; RIGHT-TO-LEFT EMBEDDING
+        (?\\e,H}\e(B . ?\x200E) ;; LEFT-TO-RIGHT MARK
+        (?\\e,H~\e(B . ?\x200F) ;; RIGHT-TO-LEFT MARK
+        ))
+
+      (ucs-8859-9-alist
+       '((?\\e,M \e(B . ?\x00A0) ;; NO-BREAK SPACE
+        (?\\e,M!\e(B . ?\x00A1) ;; INVERTED EXCLAMATION MARK
+        (?\\e,M"\e(B . ?\x00A2) ;; CENT SIGN
+        (?\\e,M#\e(B . ?\x00A3) ;; POUND SIGN
+        (?\\e,M$\e(B . ?\x00A4) ;; CURRENCY SIGN
+        (?\\e,M%\e(B . ?\x00A5) ;; YEN SIGN
+        (?\\e,M&\e(B . ?\x00A6) ;; BROKEN BAR
+        (?\\e,M'\e(B . ?\x00A7) ;; SECTION SIGN
+        (?\\e,M(\e(B . ?\x00A8) ;; DIAERESIS
+        (?\\e,M)\e(B . ?\x00A9) ;; COPYRIGHT SIGN
+        (?\\e,M*\e(B . ?\x00AA) ;; FEMININE ORDINAL INDICATOR
+        (?\\e,M+\e(B . ?\x00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+        (?\\e,M,\e(B . ?\x00AC) ;; NOT SIGN
+        (?\\e,M-\e(B . ?\x00AD) ;; SOFT HYPHEN
+        (?\\e,M.\e(B . ?\x00AE) ;; REGISTERED SIGN
+        (?\\e,M/\e(B . ?\x00AF) ;; MACRON
+        (?\\e,M0\e(B . ?\x00B0) ;; DEGREE SIGN
+        (?\\e,M1\e(B . ?\x00B1) ;; PLUS-MINUS SIGN
+        (?\\e,M2\e(B . ?\x00B2) ;; SUPERSCRIPT TWO
+        (?\\e,M3\e(B . ?\x00B3) ;; SUPERSCRIPT THREE
+        (?\\e,M4\e(B . ?\x00B4) ;; ACUTE ACCENT
+        (?\\e,M5\e(B . ?\x00B5) ;; MICRO SIGN
+        (?\\e,M6\e(B . ?\x00B6) ;; PILCROW SIGN
+        (?\\e,M7\e(B . ?\x00B7) ;; MIDDLE DOT
+        (?\\e,M8\e(B . ?\x00B8) ;; CEDILLA
+        (?\\e,M9\e(B . ?\x00B9) ;; SUPERSCRIPT ONE
+        (?\\e,M:\e(B . ?\x00BA) ;; MASCULINE ORDINAL INDICATOR
+        (?\\e,M;\e(B . ?\x00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+        (?\\e,M<\e(B . ?\x00BC) ;; VULGAR FRACTION ONE QUARTER
+        (?\\e,M=\e(B . ?\x00BD) ;; VULGAR FRACTION ONE HALF
+        (?\\e,M>\e(B . ?\x00BE) ;; VULGAR FRACTION THREE QUARTERS
+        (?\\e,M?\e(B . ?\x00BF) ;; INVERTED QUESTION MARK
+        (?\\e,M@\e(B . ?\x00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE
+        (?\\e,MA\e(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE
+        (?\\e,MB\e(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+        (?\\e,MC\e(B . ?\x00C3) ;; LATIN CAPITAL LETTER A WITH TILDE
+        (?\\e,MD\e(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS
+        (?\\e,ME\e(B . ?\x00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE
+        (?\\e,MF\e(B . ?\x00C6) ;; LATIN CAPITAL LETTER AE
+        (?\\e,MG\e(B . ?\x00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA
+        (?\\e,MH\e(B . ?\x00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE
+        (?\\e,MI\e(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE
+        (?\\e,MJ\e(B . ?\x00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+        (?\\e,MK\e(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS
+        (?\\e,ML\e(B . ?\x00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE
+        (?\\e,MM\e(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE
+        (?\\e,MN\e(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+        (?\\e,MO\e(B . ?\x00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS
+        (?\\e,MP\e(B . ?\x011E) ;; LATIN CAPITAL LETTER G WITH BREVE
+        (?\\e,MQ\e(B . ?\x00D1) ;; LATIN CAPITAL LETTER N WITH TILDE
+        (?\\e,MR\e(B . ?\x00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE
+        (?\\e,MS\e(B . ?\x00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE
+        (?\\e,MT\e(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+        (?\\e,MU\e(B . ?\x00D5) ;; LATIN CAPITAL LETTER O WITH TILDE
+        (?\\e,MV\e(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS
+        (?\\e,MW\e(B . ?\x00D7) ;; MULTIPLICATION SIGN
+        (?\\e,MX\e(B . ?\x00D8) ;; LATIN CAPITAL LETTER O WITH STROKE
+        (?\\e,MY\e(B . ?\x00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE
+        (?\\e,MZ\e(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE
+        (?\\e,M[\e(B . ?\x00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+        (?\\e,M\\e(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS
+        (?\\e,M]\e(B . ?\x0130) ;; LATIN CAPITAL LETTER I WITH DOT ABOVE
+        (?\\e,M^\e(B . ?\x015E) ;; LATIN CAPITAL LETTER S WITH CEDILLA
+        (?\\e,M_\e(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S
+        (?\\e,M`\e(B . ?\x00E0) ;; LATIN SMALL LETTER A WITH GRAVE
+        (?\\e,Ma\e(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE
+        (?\\e,Mb\e(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX
+        (?\\e,Mc\e(B . ?\x00E3) ;; LATIN SMALL LETTER A WITH TILDE
+        (?\\e,Md\e(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS
+        (?\\e,Me\e(B . ?\x00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE
+        (?\\e,Mf\e(B . ?\x00E6) ;; LATIN SMALL LETTER AE
+        (?\\e,Mg\e(B . ?\x00E7) ;; LATIN SMALL LETTER C WITH CEDILLA
+        (?\\e,Mh\e(B . ?\x00E8) ;; LATIN SMALL LETTER E WITH GRAVE
+        (?\\e,Mi\e(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE
+        (?\\e,Mj\e(B . ?\x00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX
+        (?\\e,Mk\e(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS
+        (?\\e,Ml\e(B . ?\x00EC) ;; LATIN SMALL LETTER I WITH GRAVE
+        (?\\e,Mm\e(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE
+        (?\\e,Mn\e(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX
+        (?\\e,Mo\e(B . ?\x00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS
+        (?\\e,Mp\e(B . ?\x011F) ;; LATIN SMALL LETTER G WITH BREVE
+        (?\\e,Mq\e(B . ?\x00F1) ;; LATIN SMALL LETTER N WITH TILDE
+        (?\\e,Mr\e(B . ?\x00F2) ;; LATIN SMALL LETTER O WITH GRAVE
+        (?\\e,Ms\e(B . ?\x00F3) ;; LATIN SMALL LETTER O WITH ACUTE
+        (?\\e,Mt\e(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX
+        (?\\e,Mu\e(B . ?\x00F5) ;; LATIN SMALL LETTER O WITH TILDE
+        (?\\e,Mv\e(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS
+        (?\\e,Mw\e(B . ?\x00F7) ;; DIVISION SIGN
+        (?\\e,Mx\e(B . ?\x00F8) ;; LATIN SMALL LETTER O WITH STROKE
+        (?\\e,My\e(B . ?\x00F9) ;; LATIN SMALL LETTER U WITH GRAVE
+        (?\\e,Mz\e(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE
+        (?\\e,M{\e(B . ?\x00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX
+        (?\\e,M|\e(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS
+        (?\\e,M}\e(B . ?\x0131) ;; LATIN SMALL LETTER DOTLESS I
+        (?\\e,M~\e(B . ?\x015F) ;; LATIN SMALL LETTER S WITH CEDILLA
+        (?\\e,M\7f\e(B . ?\x00FF) ;; LATIN SMALL LETTER Y WITH DIAERESIS
+        ))
+
+      (ucs-8859-14-alist
+       '((?\\e,_ \e(B . ?\x00A0) ;; NO-BREAK SPACE
+        (?\\e,_!\e(B . ?\x1E02) ;; LATIN CAPITAL LETTER B WITH DOT ABOVE
+        (?\\e,_"\e(B . ?\x1E03) ;; LATIN SMALL LETTER B WITH DOT ABOVE
+        (?\\e,_#\e(B . ?\x00A3) ;; POUND SIGN
+        (?\\e,_$\e(B . ?\x010A) ;; LATIN CAPITAL LETTER C WITH DOT ABOVE
+        (?\\e,_%\e(B . ?\x010B) ;; LATIN SMALL LETTER C WITH DOT ABOVE
+        (?\\e,_&\e(B . ?\x1E0A) ;; LATIN CAPITAL LETTER D WITH DOT ABOVE
+        (?\\e,_'\e(B . ?\x00A7) ;; SECTION SIGN
+        (?\\e,_(\e(B . ?\x1E80) ;; LATIN CAPITAL LETTER W WITH GRAVE
+        (?\\e,_)\e(B . ?\x00A9) ;; COPYRIGHT SIGN
+        (?\\e,_*\e(B . ?\x1E82) ;; LATIN CAPITAL LETTER W WITH ACUTE
+        (?\\e,_+\e(B . ?\x1E0B) ;; LATIN SMALL LETTER D WITH DOT ABOVE
+        (?\\e,_,\e(B . ?\x1EF2) ;; LATIN CAPITAL LETTER Y WITH GRAVE
+        (?\\e,_-\e(B . ?\x00AD) ;; SOFT HYPHEN
+        (?\\e,_.\e(B . ?\x00AE) ;; REGISTERED SIGN
+        (?\\e,_/\e(B . ?\x0178) ;; LATIN CAPITAL LETTER Y WITH DIAERESIS
+        (?\\e,_0\e(B . ?\x1E1E) ;; LATIN CAPITAL LETTER F WITH DOT ABOVE
+        (?\\e,_1\e(B . ?\x1E1F) ;; LATIN SMALL LETTER F WITH DOT ABOVE
+        (?\\e,_2\e(B . ?\x0120) ;; LATIN CAPITAL LETTER G WITH DOT ABOVE
+        (?\\e,_3\e(B . ?\x0121) ;; LATIN SMALL LETTER G WITH DOT ABOVE
+        (?\\e,_4\e(B . ?\x1E40) ;; LATIN CAPITAL LETTER M WITH DOT ABOVE
+        (?\\e,_5\e(B . ?\x1E41) ;; LATIN SMALL LETTER M WITH DOT ABOVE
+        (?\\e,_6\e(B . ?\x00B6) ;; PILCROW SIGN
+        (?\\e,_7\e(B . ?\x1E56) ;; LATIN CAPITAL LETTER P WITH DOT ABOVE
+        (?\\e,_8\e(B . ?\x1E81) ;; LATIN SMALL LETTER W WITH GRAVE
+        (?\\e,_9\e(B . ?\x1E57) ;; LATIN SMALL LETTER P WITH DOT ABOVE
+        (?\\e,_:\e(B . ?\x1E83) ;; LATIN SMALL LETTER W WITH ACUTE
+        (?\\e,_;\e(B . ?\x1E60) ;; LATIN CAPITAL LETTER S WITH DOT ABOVE
+        (?\\e,_<\e(B . ?\x1EF3) ;; LATIN SMALL LETTER Y WITH GRAVE
+        (?\\e,_=\e(B . ?\x1E84) ;; LATIN CAPITAL LETTER W WITH DIAERESIS
+        (?\\e,_>\e(B . ?\x1E85) ;; LATIN SMALL LETTER W WITH DIAERESIS
+        (?\\e,_?\e(B . ?\x1E61) ;; LATIN SMALL LETTER S WITH DOT ABOVE
+        (?\\e,_@\e(B . ?\x00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE
+        (?\\e,_A\e(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE
+        (?\\e,_B\e(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+        (?\\e,_C\e(B . ?\x00C3) ;; LATIN CAPITAL LETTER A WITH TILDE
+        (?\\e,_D\e(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS
+        (?\\e,_E\e(B . ?\x00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE
+        (?\\e,_F\e(B . ?\x00C6) ;; LATIN CAPITAL LETTER AE
+        (?\\e,_G\e(B . ?\x00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA
+        (?\\e,_H\e(B . ?\x00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE
+        (?\\e,_I\e(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE
+        (?\\e,_J\e(B . ?\x00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+        (?\\e,_K\e(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS
+        (?\\e,_L\e(B . ?\x00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE
+        (?\\e,_M\e(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE
+        (?\\e,_N\e(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+        (?\\e,_O\e(B . ?\x00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS
+        (?\\e,_P\e(B . ?\x0174) ;; LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+        (?\\e,_Q\e(B . ?\x00D1) ;; LATIN CAPITAL LETTER N WITH TILDE
+        (?\\e,_R\e(B . ?\x00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE
+        (?\\e,_S\e(B . ?\x00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE
+        (?\\e,_T\e(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+        (?\\e,_U\e(B . ?\x00D5) ;; LATIN CAPITAL LETTER O WITH TILDE
+        (?\\e,_V\e(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS
+        (?\\e,_W\e(B . ?\x1E6A) ;; LATIN CAPITAL LETTER T WITH DOT ABOVE
+        (?\\e,_X\e(B . ?\x00D8) ;; LATIN CAPITAL LETTER O WITH STROKE
+        (?\\e,_Y\e(B . ?\x00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE
+        (?\\e,_Z\e(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE
+        (?\\e,_[\e(B . ?\x00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+        (?\\e,_\\e(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS
+        (?\\e,_]\e(B . ?\x00DD) ;; LATIN CAPITAL LETTER Y WITH ACUTE
+        (?\\e,_^\e(B . ?\x0176) ;; LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+        (?\\e,__\e(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S
+        (?\\e,_`\e(B . ?\x00E0) ;; LATIN SMALL LETTER A WITH GRAVE
+        (?\\e,_a\e(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE
+        (?\\e,_b\e(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX
+        (?\\e,_c\e(B . ?\x00E3) ;; LATIN SMALL LETTER A WITH TILDE
+        (?\\e,_d\e(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS
+        (?\\e,_e\e(B . ?\x00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE
+        (?\\e,_f\e(B . ?\x00E6) ;; LATIN SMALL LETTER AE
+        (?\\e,_g\e(B . ?\x00E7) ;; LATIN SMALL LETTER C WITH CEDILLA
+        (?\\e,_h\e(B . ?\x00E8) ;; LATIN SMALL LETTER E WITH GRAVE
+        (?\\e,_i\e(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE
+        (?\\e,_j\e(B . ?\x00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX
+        (?\\e,_k\e(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS
+        (?\\e,_l\e(B . ?\x00EC) ;; LATIN SMALL LETTER I WITH GRAVE
+        (?\\e,_m\e(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE
+        (?\\e,_n\e(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX
+        (?\\e,_o\e(B . ?\x00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS
+        (?\\e,_p\e(B . ?\x0175) ;; LATIN SMALL LETTER W WITH CIRCUMFLEX
+        (?\\e,_q\e(B . ?\x00F1) ;; LATIN SMALL LETTER N WITH TILDE
+        (?\\e,_r\e(B . ?\x00F2) ;; LATIN SMALL LETTER O WITH GRAVE
+        (?\\e,_s\e(B . ?\x00F3) ;; LATIN SMALL LETTER O WITH ACUTE
+        (?\\e,_t\e(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX
+        (?\\e,_u\e(B . ?\x00F5) ;; LATIN SMALL LETTER O WITH TILDE
+        (?\\e,_v\e(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS
+        (?\\e,_w\e(B . ?\x1E6B) ;; LATIN SMALL LETTER T WITH DOT ABOVE
+        (?\\e,_x\e(B . ?\x00F8) ;; LATIN SMALL LETTER O WITH STROKE
+        (?\\e,_y\e(B . ?\x00F9) ;; LATIN SMALL LETTER U WITH GRAVE
+        (?\\e,_z\e(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE
+        (?\\e,_{\e(B . ?\x00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX
+        (?\\e,_|\e(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS
+        (?\\e,_}\e(B . ?\x00FD) ;; LATIN SMALL LETTER Y WITH ACUTE
+        (?\\e,_~\e(B . ?\x0177) ;; LATIN SMALL LETTER Y WITH CIRCUMFLEX
+        (?\\e,_\7f\e(B . ?\x00FF) ;; LATIN SMALL LETTER Y WITH DIAERESIS
+        ))
+
+      (ucs-8859-15-alist
+       '((?\\e,b \e(B . ?\x00A0) ;; NO-BREAK SPACE
+        (?\\e,b!\e(B . ?\x00A1) ;; INVERTED EXCLAMATION MARK
+        (?\\e,b"\e(B . ?\x00A2) ;; CENT SIGN
+        (?\\e,b#\e(B . ?\x00A3) ;; POUND SIGN
+        (?\\e,b$\e(B . ?\x20AC) ;; EURO SIGN
+        (?\\e,b%\e(B . ?\x00A5) ;; YEN SIGN
+        (?\\e,b&\e(B . ?\x0160) ;; LATIN CAPITAL LETTER S WITH CARON
+        (?\\e,b'\e(B . ?\x00A7) ;; SECTION SIGN
+        (?\\e,b(\e(B . ?\x0161) ;; LATIN SMALL LETTER S WITH CARON
+        (?\\e,b)\e(B . ?\x00A9) ;; COPYRIGHT SIGN
+        (?\\e,b*\e(B . ?\x00AA) ;; FEMININE ORDINAL INDICATOR
+        (?\\e,b+\e(B . ?\x00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+        (?\\e,b,\e(B . ?\x00AC) ;; NOT SIGN
+        (?\\e,b-\e(B . ?\x00AD) ;; SOFT HYPHEN
+        (?\\e,b.\e(B . ?\x00AE) ;; REGISTERED SIGN
+        (?\\e,b/\e(B . ?\x00AF) ;; MACRON
+        (?\\e,b0\e(B . ?\x00B0) ;; DEGREE SIGN
+        (?\\e,b1\e(B . ?\x00B1) ;; PLUS-MINUS SIGN
+        (?\\e,b2\e(B . ?\x00B2) ;; SUPERSCRIPT TWO
+        (?\\e,b3\e(B . ?\x00B3) ;; SUPERSCRIPT THREE
+        (?\\e,b4\e(B . ?\x017D) ;; LATIN CAPITAL LETTER Z WITH CARON
+        (?\\e,b5\e(B . ?\x00B5) ;; MICRO SIGN
+        (?\\e,b6\e(B . ?\x00B6) ;; PILCROW SIGN
+        (?\\e,b7\e(B . ?\x00B7) ;; MIDDLE DOT
+        (?\\e,b8\e(B . ?\x017E) ;; LATIN SMALL LETTER Z WITH CARON
+        (?\\e,b9\e(B . ?\x00B9) ;; SUPERSCRIPT ONE
+        (?\\e,b:\e(B . ?\x00BA) ;; MASCULINE ORDINAL INDICATOR
+        (?\\e,b;\e(B . ?\x00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+        (?\\e,b<\e(B . ?\x0152) ;; LATIN CAPITAL LIGATURE OE
+        (?\\e,b=\e(B . ?\x0153) ;; LATIN SMALL LIGATURE OE
+        (?\\e,b>\e(B . ?\x0178) ;; LATIN CAPITAL LETTER Y WITH DIAERESIS
+        (?\\e,b?\e(B . ?\x00BF) ;; INVERTED QUESTION MARK
+        (?\\e,b@\e(B . ?\x00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE
+        (?\\e,bA\e(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE
+        (?\\e,bB\e(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+        (?\\e,bC\e(B . ?\x00C3) ;; LATIN CAPITAL LETTER A WITH TILDE
+        (?\\e,bD\e(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS
+        (?\\e,bE\e(B . ?\x00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE
+        (?\\e,bF\e(B . ?\x00C6) ;; LATIN CAPITAL LETTER AE
+        (?\\e,bG\e(B . ?\x00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA
+        (?\\e,bH\e(B . ?\x00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE
+        (?\\e,bI\e(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE
+        (?\\e,bJ\e(B . ?\x00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+        (?\\e,bK\e(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS
+        (?\\e,bL\e(B . ?\x00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE
+        (?\\e,bM\e(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE
+        (?\\e,bN\e(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+        (?\\e,bO\e(B . ?\x00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS
+        (?\\e,bP\e(B . ?\x00D0) ;; LATIN CAPITAL LETTER ETH
+        (?\\e,bQ\e(B . ?\x00D1) ;; LATIN CAPITAL LETTER N WITH TILDE
+        (?\\e,bR\e(B . ?\x00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE
+        (?\\e,bS\e(B . ?\x00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE
+        (?\\e,bT\e(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+        (?\\e,bU\e(B . ?\x00D5) ;; LATIN CAPITAL LETTER O WITH TILDE
+        (?\\e,bV\e(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS
+        (?\\e,bW\e(B . ?\x00D7) ;; MULTIPLICATION SIGN
+        (?\\e,bX\e(B . ?\x00D8) ;; LATIN CAPITAL LETTER O WITH STROKE
+        (?\\e,bY\e(B . ?\x00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE
+        (?\\e,bZ\e(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE
+        (?\\e,b[\e(B . ?\x00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+        (?\\e,b\\e(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS
+        (?\\e,b]\e(B . ?\x00DD) ;; LATIN CAPITAL LETTER Y WITH ACUTE
+        (?\\e,b^\e(B . ?\x00DE) ;; LATIN CAPITAL LETTER THORN
+        (?\\e,b_\e(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S
+        (?\\e,b`\e(B . ?\x00E0) ;; LATIN SMALL LETTER A WITH GRAVE
+        (?\\e,ba\e(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE
+        (?\\e,bb\e(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX
+        (?\\e,bc\e(B . ?\x00E3) ;; LATIN SMALL LETTER A WITH TILDE
+        (?\\e,bd\e(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS
+        (?\\e,be\e(B . ?\x00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE
+        (?\\e,bf\e(B . ?\x00E6) ;; LATIN SMALL LETTER AE
+        (?\\e,bg\e(B . ?\x00E7) ;; LATIN SMALL LETTER C WITH CEDILLA
+        (?\\e,bh\e(B . ?\x00E8) ;; LATIN SMALL LETTER E WITH GRAVE
+        (?\\e,bi\e(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE
+        (?\\e,bj\e(B . ?\x00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX
+        (?\\e,bk\e(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS
+        (?\\e,bl\e(B . ?\x00EC) ;; LATIN SMALL LETTER I WITH GRAVE
+        (?\\e,bm\e(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE
+        (?\\e,bn\e(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX
+        (?\\e,bo\e(B . ?\x00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS
+        (?\\e,bp\e(B . ?\x00F0) ;; LATIN SMALL LETTER ETH
+        (?\\e,bq\e(B . ?\x00F1) ;; LATIN SMALL LETTER N WITH TILDE
+        (?\\e,br\e(B . ?\x00F2) ;; LATIN SMALL LETTER O WITH GRAVE
+        (?\\e,bs\e(B . ?\x00F3) ;; LATIN SMALL LETTER O WITH ACUTE
+        (?\\e,bt\e(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX
+        (?\\e,bu\e(B . ?\x00F5) ;; LATIN SMALL LETTER O WITH TILDE
+        (?\\e,bv\e(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS
+        (?\\e,bw\e(B . ?\x00F7) ;; DIVISION SIGN
+        (?\\e,bx\e(B . ?\x00F8) ;; LATIN SMALL LETTER O WITH STROKE
+        (?\\e,by\e(B . ?\x00F9) ;; LATIN SMALL LETTER U WITH GRAVE
+        (?\\e,bz\e(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE
+        (?\\e,b{\e(B . ?\x00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX
+        (?\\e,b|\e(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS
+        (?\\e,b}\e(B . ?\x00FD) ;; LATIN SMALL LETTER Y WITH ACUTE
+        (?\\e,b~\e(B . ?\x00FE) ;; LATIN SMALL LETTER THORN
+        (?\\e,b\7f\e(B . ?\x00FF) ;; LATIN SMALL LETTER Y WITH DIAERESIS
+        ))
+
+      (ucs-8859-1-alist
+       (let ((i 160)
+            l)
+        (while (< i 256)
+          (push (cons (make-char 'latin-iso8859-1 (- i 128)) i)
+                l)
+          (setq i (1+ i)))
+        (nreverse l)))
+      
+;;       (case-table (standard-case-table))
+;;       (syntax-table (standard-syntax-table))
+      )
+
+  ;; Convert the lists to the basic char tables.
+  (dolist (n (list 15 14 9 8 7 5 4 3 2 1))
+    (let ((alist (symbol-value (intern (format "ucs-8859-%d-alist" n)))))
+      (dolist (pair alist)
+       (let ((mule (car pair))
+             (uc (cdr pair))
+             (mu (decode-char 'ucs (cdr pair))))
+         (aset ucs-mule-8859-to-ucs-table mule uc)
+         ;;      (aset ucs-ucs-to-mule-8859-table uc mule)
+         ;;      (aset ucs-mule-unicode-to-mule-8859 mu mule)
+         (aset ucs-mule-8859-to-mule-unicode mule mu)
+         (aset ucs-mule-to-mule-unicode mule mu)))
+;; I think this is actually done OK in characters.el.
+;; Probably things like accents shouldn't have word syntax, but the
+;; Latin-N syntax tables currently aren't consistent for such
+;; characters anyhow.
+;;      ;; Make the mule-unicode characters inherit syntax and case info
+;;      ;; if they don't already have it.
+;;      (dolist (pair alist)
+;;     (let ((mule (car pair))
+;;           (uc (cdr pair))
+;;           (mu (decode-char 'ucs (cdr pair))))
+;;       (let ((syntax (aref syntax-table mule)))
+;;         (if (eq mule (downcase mule))
+;;             (if (eq mule (upcase mule)) ; non-letter or uncased letter
+;;                 (progn
+;;                   (if (= 4 (car syntax)) ; left delim
+;;                       (progn
+;;                         (aset syntax-table
+;;                               mu
+;;                               (cons 4 (aref ucs-mule-8859-to-mule-unicode
+;;                                             (cdr syntax))))
+;;                         (aset syntax-table
+;;                               (aref ucs-mule-8859-to-mule-unicode
+;;                                     (cdr syntax))
+;;                               (cons 5 mu)))
+;;                     (aset syntax-table mu syntax))
+;;                   (aset case-table mu mu)))
+;;           ;; Upper case letter
+;;           (let ((lower (aref ucs-mule-8859-to-mule-unicode
+;;                              (aref case-table mule))))
+;;             (aset case-table mu lower)
+;;             (aset case-table lower lower)
+;;             (modify-syntax-entry lower "w   " syntax-table)
+;;             (modify-syntax-entry mu "w   " syntax-table))))))
+      ))
+  ;; Derive tables that can be used as per-coding-system
+  ;; `translation-table-for-encode's.
+  (dolist (n (list 15 14 9 8 7 5 4 3 2 1))
+    (let* ((alist (symbol-value (intern (format "ucs-8859-%d-alist" n))))
+          (encode-translator (set (intern (format "ucs-8859-%d-encode-table"
+                                                  n))
+                                  (make-translation-table)))
+          elt)
+      ;; Start with the mule-unicode component.
+      (dolist (pair alist)
+       (let ((mule (car pair))
+             (mu (decode-char 'ucs (cdr pair))))
+         (aset encode-translator mu mule)))
+      ;; Find characters from other 8859 sets which map to the same
+      ;; unicode as some character in this set.
+      (map-char-table (lambda (k v)
+                       (if (and (setq elt (rassq v alist))
+                                (not (assq k alist)))
+                           (aset encode-translator k (car elt))))
+                     ucs-mule-8859-to-ucs-table))))
+
+;; Register for use in CCL.
+(define-translation-table 'ucs-mule-8859-to-mule-unicode
+  ucs-mule-8859-to-mule-unicode)
+
+;; Fixme: Make this reversible, which means frobbing
+;; `char-coding-system-table' directly to remove what we added -- see
+;; codepages.el.  Also make it a user option.
+(defun ucs-unify-8859 (&optional encode-only)
+  "Set up translation tables for unifying characters from ISO 8859.
+
+On decoding, non-ASCII characters are mapped into the `iso-latin-1'
+and `mule-unicode-0100-24ff' charsets.  On encoding, these are mapped
+back appropriate for the coding system.
+
+With prefix arg, do unification on encoding only, i.e. don't unify
+everything on input operations."
+  (interactive "P")
+  (unless encode-only
+    ;; Unify 8859 on decoding.  (Non-CCL coding systems only.)
+    (set-char-table-parent standard-translation-table-for-decode
+                          ucs-mule-8859-to-mule-unicode))
+  ;; Adjust the 8859 coding systems to fragment the unified characters
+  ;; on encoding.
+  (dolist (n '(1 2 3 4 5 7 8 9 14 15))
+    (let* ((coding-system
+           (coding-system-base (intern (format "iso-8859-%d" n))))
+          (table (symbol-value
+                  (intern (format "ucs-8859-%d-encode-table" n))))
+          (safe (coding-system-get coding-system 'safe-chars)))
+      ;; Actually, the coding system's safe-chars are not normally
+      ;; used after they've been registered, but we might as well
+      ;; record them.  Setting the parent here is a convenience.
+      (set-char-table-parent safe table)
+      ;; Update the table of what encodes to what.
+      (register-char-codings coding-system table)
+      (coding-system-put coding-system 'translation-table-for-encode table)))
+
+;;; The following works for the bundled coding systems, but it's
+;;; better to use the Unicode-based ones and make it irrelevant.
+
+;;;   ;; Update the Cyrillic special cases.
+;;;   ;; `translation-table-for-encode' doesn't work for CCL coding
+;;;   ;; systems, and `standard-translation-table-for-decode' isn't
+;;;   ;; applied.
+;;;   (let ((table (get 'cyrillic-koi8-r-encode-table 'translation-table)))
+;;;     (map-char-table
+;;;      (lambda (k v)
+;;;        (aset table
+;;;         (or (aref ucs-8859-5-encode-table k)
+;;;             k)
+;;;         v))
+;;;      table)
+;;;     (register-char-codings 'cyrillic-koi8 table))
+;;;   (let ((table (get 'cyrillic-koi8-r-nonascii-translation-table
+;;;                'translation-table)))
+;;;     (map-char-table
+;;;      (lambda (k v)
+;;;        (if v (aset table k (or (aref ucs-mule-8859-to-mule-unicode v)
+;;;                           v))))
+;;;      table))
+;;;   ;; Redefine this, since the orginal only translated 8859-5.
+;;;   (define-ccl-program ccl-encode-koi8
+;;;     `(1
+;;;       ((loop
+;;;    (read-multibyte-character r0 r1)
+;;;    (translate-character cyrillic-koi8-r-encode-table r0 r1)
+;;;    (write-repeat r1))))
+;;;     "CCL program to encode KOI8.")
+;;;   (let ((table (get 'cyrillic-alternativnyj-encode-table 'translation-table)))
+;;;     (map-char-table
+;;;      (lambda (k v)
+;;;        (aset table
+;;;         (or (aref ucs-8859-5-encode-table k)
+;;;             k)
+;;;         v))
+;;;      table)
+;;;     (register-char-codings 'cyrillic-alternativnyj table))
+;;;   (let ((table (get 'cyrillic-alternativnyj-nonascii-translation-table
+;;;                'translation-table)))
+;;;     (map-char-table
+;;;      (lambda (k v)
+;;;        (if v (aset table
+;;;               k
+;;;               (or (aref ucs-mule-8859-to-mule-unicode v)
+;;;                   v))))
+;;;      table))
+  )
+
+(defun ucs-fragment-8859 (&optional encode-only)
+  "Undo the unification done by `ucs-unify-8859'.
+With prefix arg, undo unification on encoding only, i.e. don't undo
+unification on input operations."
+  (interactive "P")
+  ;; Maybe fix decoding.
+  (unless encode-only
+    ;; Unify 8859 on decoding.  (Non-CCL coding systems only.)
+    (set-char-table-parent standard-translation-table-for-decode nil))
+  ;; Fix encoding.  For each charset, remove the entries in
+  ;; `char-coding-system-table' added to its safe-chars table (as its
+  ;; parent).
+  (dolist (n '(1 2 3 4 5 7 8 9 14 15))
+    (let* ((coding-system
+           (coding-system-base (intern (format "iso-8859-%d" n))))
+          (table (symbol-value
+                  (intern (format "ucs-8859-%d-encode-table" n))))
+          (safe (coding-system-get coding-system 'safe-chars)))
+      (map-char-table
+       (lambda (key val)
+        (if (and (>= key 128) val)
+            (let ((codings (aref char-coding-system-table key)))
+              (aset char-coding-system-table key
+                    (delq coding-system codings)))))
+       (char-table-parent safe))
+      (set-char-table-parent safe nil)
+      (coding-system-put coding-system 'translation-table-for-encode nil))))
+
+;;;###autoload
+(define-minor-mode unify-8859-on-encoding-mode
+  "Set up translation tables for unifying ISO 8859 characters on encoding.
+
+The ISO 8859 characters sets overlap, e.g. 8859-1 (Latin-1) and
+8859-15 (Latin-9) differ only in a few characters.  Emacs normally
+distinguishes equivalent characters from those ISO-8859 character sets
+which are built in to Emacs.  This behaviour is essentially inherited
+from the European-originated international standards.  Treating them
+equivalently, by translating to and from a single representation is
+called `unification'.  (The `utf-8' coding system treats the
+characters of European scripts in a unified manner.)
+
+In this mode, on encoding -- i.e. output operations -- non-ASCII
+characters from the built-in ISO 8859 and `mule-unicode-0100-24ff'
+charsets are handled automatically by the coding system used if it can
+represent them.  Thus, say, an e-acute from the Latin-1 charset (the
+unified representation) in a buffer saved as Latin-9 will be encoded
+directly to a byte value 233.  By default, in contrast, you would be
+prompted for a general coding system to use for saving the file, which
+can cope with separate Latin-1 and Latin-9 representations of e-acute.
+
+See also command `unify-8859-on-decoding-mode'."
+  :group 'mule
+  :global t
+  :version 21.3                                ; who knows...?
+  :init-value nil
+  (if unify-8859-on-encoding-mode
+      (ucs-unify-8859 t)
+    (ucs-fragment-8859 t)))
+
+;;;###autoload
+(define-minor-mode unify-8859-on-decoding-mode
+  "Set up translation table for unifying ISO 8859 characters on decoding.
+On decoding -- i.e. input operations -- non-ASCII characters from the
+built-in ISO 8859 charsets are unified by mapping them into the
+`iso-latin-1' and `mule-unicode-0100-24ff' charsets.
+
+This sets the parent of `standard-translation-table-for-decode'.
+
+See also command `unify-8859-on-encoding-mode'."
+  :group 'mule
+  :global t
+  :version 21.3                                ; who knows...?
+  :init-value nil
+  (if unify-8859-on-decoding-mode
+      (set-char-table-parent standard-translation-table-for-decode
+                            ucs-mule-8859-to-mule-unicode)
+    (set-char-table-parent standard-translation-table-for-decode nil)))
+
+(defun ucs-insert (arg)
+  "Insert the Emacs character representation of the given Unicode.
+Interactively, prompts for a hex string giving the code."
+  (interactive "sUnicode (hex): ")
+  (insert (decode-char 'ucs (if (integerp arg)
+                               arg
+                             (string-to-number arg 16)))))
+
+;;; Dealing with non-8859 character sets.
+
+;; We only set up translation on encoding to utf-8.  Also translation
+;; tables ucs-CS-encode-table are constructed for some coding systems
+;; CS which could be used as `translation-table-for-encode', currently
+;; for indian-is13194, lao, thai, tibetan-iso-8bit and
+;; vietnamese-viscii.
+
+;; The alists here cover both coding systems (external charsets), like
+;; VISCII, and individual Emacs charsets, like `ipa'.
+(let ((vietnamese-viscii
+       '((?\e,1!\e(B . ?\e$,1o/\e(B)
+        (?\e,1"\e(B . ?\e$,1o1\e(B)
+        (?\e,1#\e(B . ?\e$,1o7\e(B)
+        (?\e,1$\e(B . ?\e$,1o%\e(B)
+        (?\e,1%\e(B . ?\e$,1o'\e(B)
+        (?\e,1&\e(B . ?\e$,1o)\e(B)
+        (?\e,1'\e(B . ?\e$,1o-\e(B)
+        (?\e,1(\e(B . ?\e$,1o=\e(B)
+        (?\e,1)\e(B . ?\e$,1o9\e(B)
+        (?\e,1*\e(B . ?\e$,1o?\e(B)
+        (?\e,1+\e(B . ?\e$,1oA\e(B)
+        (?\e,1,\e(B . ?\e$,1oC\e(B)
+        (?\e,1-\e(B . ?\e$,1oE\e(B)
+        (?\e,1.\e(B . ?\e$,1oG\e(B)
+        (?\e,1/\e(B . ?\e$,1oQ\e(B)
+        (?\e,10\e(B . ?\e$,1oS\e(B)
+        (?\e,11\e(B . ?\e$,1oU\e(B)
+        (?\e,12\e(B . ?\e$,1oW\e(B)
+        (?\e,15\e(B . ?\e$,1oY\e(B)
+        (?\e,16\e(B . ?\e$,1o]\e(B)
+        (?\e,17\e(B . ?\e$,1o_\e(B)
+        (?\e,18\e(B . ?\e$,1oK\e(B)
+        (?\e,1=\e(B . ?\e$,1!a\e(B)
+        (?\e,1>\e(B . ?\e$,1o[\e(B)
+        (?\e,1F\e(B . ?\e$,1o3\e(B)
+        (?\e,1G\e(B . ?\e$,1o5\e(B)
+        (?\e,1O\e(B . ?\e$,1os\e(B)
+        (?\e,1Q\e(B . ?\e$,1oi\e(B)
+        (?\e,1U\e(B . ?\e$,1o!\e(B)
+        (?\e,1V\e(B . ?\e$,1ow\e(B)
+        (?\e,1W\e(B . ?\e$,1ok\e(B)
+        (?\e,1X\e(B . ?\e$,1om\e(B)
+        (?\e,1[\e(B . ?\e$,1oy\e(B)
+        (?\e,1\\e(B . ?\e$,1ou\e(B)
+        (?\e,1^\e(B . ?\e$,1oa\e(B)
+        (?\e,1_\e(B . ?\e$,1!p\e(B)
+        (?\e,1`\e(B . ?\e,A`\e(B)
+        (?\e,1a\e(B . ?\e,Aa\e(B)
+        (?\e,1b\e(B . ?\e,Ab\e(B)
+        (?\e,1c\e(B . ?\e,Ac\e(B)
+        (?\e,1d\e(B . ?\e$,1o#\e(B)
+        (?\e,1e\e(B . ?\e$,1 #\e(B)
+        (?\e,1f\e(B . ?\e$,1oo\e(B)
+        (?\e,1g\e(B . ?\e$,1o+\e(B)
+        (?\e,1h\e(B . ?\e,Ah\e(B)
+        (?\e,1i\e(B . ?\e,Ai\e(B)
+        (?\e,1j\e(B . ?\e,Aj\e(B)
+        (?\e,1k\e(B . ?\e$,1o;\e(B)
+        (?\e,1l\e(B . ?\e,Al\e(B)
+        (?\e,1m\e(B . ?\e,Am\e(B)
+        (?\e,1n\e(B . ?\e$,1 I\e(B)
+        (?\e,1o\e(B . ?\e$,1oI\e(B)
+        (?\e,1p\e(B . ?\e$,1 1\e(B)
+        (?\e,1q\e(B . ?\e$,1oq\e(B)
+        (?\e,1r\e(B . ?\e,Ar\e(B)
+        (?\e,1s\e(B . ?\e,As\e(B)
+        (?\e,1t\e(B . ?\e,At\e(B)
+        (?\e,1u\e(B . ?\e,Au\e(B)
+        (?\e,1v\e(B . ?\e$,1oO\e(B)
+        (?\e,1w\e(B . ?\e$,1oM\e(B)
+        (?\e,1x\e(B . ?\e$,1oe\e(B)
+        (?\e,1y\e(B . ?\e,Ay\e(B)
+        (?\e,1z\e(B . ?\e,Az\e(B)
+        (?\e,1{\e(B . ?\e$,1!)\e(B)
+        (?\e,1|\e(B . ?\e$,1og\e(B)
+        (?\e,1}\e(B . ?\e,A}\e(B)
+        (?\e,1~\e(B . ?\e$,1oc\e(B)
+
+        (?\e,2!\e(B . ?\e$,1o.\e(B)
+        (?\e,2"\e(B . ?\e$,1o0\e(B)
+        (?\e,2#\e(B . ?\e$,1o6\e(B)
+        (?\e,2$\e(B . ?\e$,1o$\e(B)
+        (?\e,2%\e(B . ?\e$,1o&\e(B)
+        (?\e,2&\e(B . ?\e$,1o(\e(B)
+        (?\e,2'\e(B . ?\e$,1o,\e(B)
+        (?\e,2(\e(B . ?\e$,1o<\e(B)
+        (?\e,2)\e(B . ?\e$,1o8\e(B)
+        (?\e,2*\e(B . ?\e$,1o>\e(B)
+        (?\e,2+\e(B . ?\e$,1o@\e(B)
+        (?\e,2,\e(B . ?\e$,1oB\e(B)
+        (?\e,2-\e(B . ?\e$,1oD\e(B)
+        (?\e,2.\e(B . ?\e$,1oF\e(B)
+        (?\e,2/\e(B . ?\e$,1oP\e(B)
+        (?\e,20\e(B . ?\e$,1oR\e(B)
+        (?\e,21\e(B . ?\e$,1oT\e(B)
+        (?\e,22\e(B . ?\e$,1oV\e(B)
+        (?\e,25\e(B . ?\e$,1oX\e(B)
+        (?\e,26\e(B . ?\e$,1o\\e(B)
+        (?\e,27\e(B . ?\e$,1o^\e(B)
+        (?\e,28\e(B . ?\e$,1oJ\e(B)
+        (?\e,2=\e(B . ?\e$,1!`\e(B)
+        (?\e,2>\e(B . ?\e$,1oZ\e(B)
+        (?\e,2F\e(B . ?\e$,1o2\e(B)
+        (?\e,2G\e(B . ?\e$,1o4\e(B)
+        (?\e,2O\e(B . ?\e$,1or\e(B)
+        (?\e,2Q\e(B . ?\e$,1oh\e(B)
+        (?\e,2U\e(B . ?\e$,1o \e(B)
+        (?\e,2V\e(B . ?\e$,1ov\e(B)
+        (?\e,2W\e(B . ?\e$,1oj\e(B)
+        (?\e,2X\e(B . ?\e$,1ol\e(B)
+        (?\e,2[\e(B . ?\e$,1ox\e(B)
+        (?\e,2\\e(B . ?\e$,1ot\e(B)
+        (?\e,2^\e(B . ?\e$,1o`\e(B)
+        (?\e,2_\e(B . ?\e$,1!o\e(B)
+        (?\e,2`\e(B . ?\e,A@\e(B)
+        (?\e,2a\e(B . ?\e,AA\e(B)
+        (?\e,2b\e(B . ?\e,AB\e(B)
+        (?\e,2c\e(B . ?\e,AC\e(B)
+        (?\e,2d\e(B . ?\e$,1o"\e(B)
+        (?\e,2e\e(B . ?\e$,1 "\e(B)
+        (?\e,2f\e(B . ?\e$,1on\e(B)
+        (?\e,2g\e(B . ?\e$,1o*\e(B)
+        (?\e,2h\e(B . ?\e,AH\e(B)
+        (?\e,2i\e(B . ?\e,AI\e(B)
+        (?\e,2j\e(B . ?\e,AJ\e(B)
+        (?\e,2k\e(B . ?\e$,1o:\e(B)
+        (?\e,2l\e(B . ?\e,AL\e(B)
+        (?\e,2m\e(B . ?\e,AM\e(B)
+        (?\e,2n\e(B . ?\e$,1 H\e(B)
+        (?\e,2o\e(B . ?\e$,1oH\e(B)
+        (?\e,2p\e(B . ?\e$,1 0\e(B)
+        (?\e,2q\e(B . ?\e$,1op\e(B)
+        (?\e,2r\e(B . ?\e,AR\e(B)
+        (?\e,2s\e(B . ?\e,AS\e(B)
+        (?\e,2t\e(B . ?\e,AT\e(B)
+        (?\e,2u\e(B . ?\e,AU\e(B)
+        (?\e,2v\e(B . ?\e$,1oN\e(B)
+        (?\e,2w\e(B . ?\e$,1oL\e(B)
+        (?\e,2x\e(B . ?\e$,1od\e(B)
+        (?\e,2y\e(B . ?\e,AY\e(B)
+        (?\e,2z\e(B . ?\e,AZ\e(B)
+        (?\e,2{\e(B . ?\e$,1!(\e(B)
+        (?\e,2|\e(B . ?\e$,1of\e(B)
+        (?\e,2}\e(B . ?\e,A]\e(B)
+        (?\e,2~\e(B . ?\e$,1ob\e(B)))
+
+      (thai-tis620
+       '((?\e,T!\e(B . ?\e$,1Ba\e(B)
+        (?\e,T"\e(B . ?\e$,1Bb\e(B)
+        (?\e,T#\e(B . ?\e$,1Bc\e(B)
+        (?\e,T$\e(B . ?\e$,1Bd\e(B)
+        (?\e,T%\e(B . ?\e$,1Be\e(B)
+        (?\e,T&\e(B . ?\e$,1Bf\e(B)
+        (?\e,T'\e(B . ?\e$,1Bg\e(B)
+        (?\e,T(\e(B . ?\e$,1Bh\e(B)
+        (?\e,T)\e(B . ?\e$,1Bi\e(B)
+        (?\e,T*\e(B . ?\e$,1Bj\e(B)
+        (?\e,T+\e(B . ?\e$,1Bk\e(B)
+        (?\e,T,\e(B . ?\e$,1Bl\e(B)
+        (?\e,T-\e(B . ?\e$,1Bm\e(B)
+        (?\e,T.\e(B . ?\e$,1Bn\e(B)
+        (?\e,T/\e(B . ?\e$,1Bo\e(B)
+        (?\e,T0\e(B . ?\e$,1Bp\e(B)
+        (?\e,T1\e(B . ?\e$,1Bq\e(B)
+        (?\e,T2\e(B . ?\e$,1Br\e(B)
+        (?\e,T3\e(B . ?\e$,1Bs\e(B)
+        (?\e,T4\e(B . ?\e$,1Bt\e(B)
+        (?\e,T5\e(B . ?\e$,1Bu\e(B)
+        (?\e,T6\e(B . ?\e$,1Bv\e(B)
+        (?\e,T7\e(B . ?\e$,1Bw\e(B)
+        (?\e,T8\e(B . ?\e$,1Bx\e(B)
+        (?\e,T9\e(B . ?\e$,1By\e(B)
+        (?\e,T:\e(B . ?\e$,1Bz\e(B)
+        (?\e,T;\e(B . ?\e$,1B{\e(B)
+        (?\e,T<\e(B . ?\e$,1B|\e(B)
+        (?\e,T=\e(B . ?\e$,1B}\e(B)
+        (?\e,T>\e(B . ?\e$,1B~\e(B)
+        (?\e,T?\e(B . ?\e$,1B\7f\e(B)
+        (?\e,T@\e(B . ?\e$,1C \e(B)
+        (?\e,TA\e(B . ?\e$,1C!\e(B)
+        (?\e,TB\e(B . ?\e$,1C"\e(B)
+        (?\e,TC\e(B . ?\e$,1C#\e(B)
+        (?\e,TD\e(B . ?\e$,1C$\e(B)
+        (?\e,TE\e(B . ?\e$,1C%\e(B)
+        (?\e,TF\e(B . ?\e$,1C&\e(B)
+        (?\e,TG\e(B . ?\e$,1C'\e(B)
+        (?\e,TH\e(B . ?\e$,1C(\e(B)
+        (?\e,TI\e(B . ?\e$,1C)\e(B)
+        (?\e,TJ\e(B . ?\e$,1C*\e(B)
+        (?\e,TK\e(B . ?\e$,1C+\e(B)
+        (?\e,TL\e(B . ?\e$,1C,\e(B)
+        (?\e,TM\e(B . ?\e$,1C-\e(B)
+        (?\e,TN\e(B . ?\e$,1C.\e(B)
+        (?\e,TO\e(B . ?\e$,1C/\e(B)
+        (?\e,TP\e(B . ?\e$,1C0\e(B)
+        (?\e,TQ\e(B . ?\e$,1C1\e(B)
+        (?\e,TR\e(B . ?\e$,1C2\e(B)
+        (?\e,TS\e(B . ?\e$,1C3\e(B)
+        (?\e,TT\e(B . ?\e$,1C4\e(B)
+        (?\e,TU\e(B . ?\e$,1C5\e(B)
+        (?\e,TV\e(B . ?\e$,1C6\e(B)
+        (?\e,TW\e(B . ?\e$,1C7\e(B)
+        (?\e,TX\e(B . ?\e$,1C8\e(B)
+        (?\e,TY\e(B . ?\e$,1C9\e(B)
+        (?\e,TZ\e(B . ?\e$,1C:\e(B)
+        (?\e,T_\e(B . ?\e$,1C?\e(B)
+        (?\e,T`\e(B . ?\e$,1C@\e(B)
+        (?\e,Ta\e(B . ?\e$,1CA\e(B)
+        (?\e,Tb\e(B . ?\e$,1CB\e(B)
+        (?\e,Tc\e(B . ?\e$,1CC\e(B)
+        (?\e,Td\e(B . ?\e$,1CD\e(B)
+        (?\e,Te\e(B . ?\e$,1CE\e(B)
+        (?\e,Tf\e(B . ?\e$,1CF\e(B)
+        (?\e,Tg\e(B . ?\e$,1CG\e(B)
+        (?\e,Th\e(B . ?\e$,1CH\e(B)
+        (?\e,Ti\e(B . ?\e$,1CI\e(B)
+        (?\e,Tj\e(B . ?\e$,1CJ\e(B)
+        (?\e,Tk\e(B . ?\e$,1CK\e(B)
+        (?\e,Tl\e(B . ?\e$,1CL\e(B)
+        (?\e,Tm\e(B . ?\e$,1CM\e(B)
+        (?\e,Tn\e(B . ?\e$,1CN\e(B)
+        (?\e,To\e(B . ?\e$,1CO\e(B)
+        (?\e,Tp\e(B . ?\e$,1CP\e(B)
+        (?\e,Tq\e(B . ?\e$,1CQ\e(B)
+        (?\e,Tr\e(B . ?\e$,1CR\e(B)
+        (?\e,Ts\e(B . ?\e$,1CS\e(B)
+        (?\e,Tt\e(B . ?\e$,1CT\e(B)
+        (?\e,Tu\e(B . ?\e$,1CU\e(B)
+        (?\e,Tv\e(B . ?\e$,1CV\e(B)
+        (?\e,Tw\e(B . ?\e$,1CW\e(B)
+        (?\e,Tx\e(B . ?\e$,1CX\e(B)
+        (?\e,Ty\e(B . ?\e$,1CY\e(B)
+        (?\e,Tz\e(B . ?\e$,1CZ\e(B)
+        (?\e,T{\e(B . ?\e$,1C[\e(B)))
+
+      (tibetan-iso-8bit
+       '((?\e$(7!0\e(B . ?\e$,1E@\e(B)
+        (?\e$(7!1\e(B . ?\e$,1EA\e(B)
+        (?\e$(7!2\e(B . ?\e$,1EB\e(B)
+        (?\e$(7!3\e(B . ?\e$,1EC\e(B)
+        (?\e$(7!4\e(B . ?\e$,1ED\e(B)
+        (?\e$(7!5\e(B . ?\e$,1EE\e(B)
+        (?\e$(7!6\e(B . ?\e$,1EF\e(B)
+        (?\e$(7!7\e(B . ?\e$,1EG\e(B)
+        (?\e$(7!8\e(B . ?\e$,1EH\e(B)
+        (?\e$(7!9\e(B . ?\e$,1EI\e(B)
+        (?\e$(7!:\e(B . ?\e$,1EJ\e(B)
+        (?\e$(7!;\e(B . ?\e$,1EK\e(B)
+        (?\e$(7!<\e(B . ?\e$,1EL\e(B)
+        (?\e$(7!=\e(B . ?\e$,1EM\e(B)
+        (?\e$(7!>\e(B . ?\e$,1EN\e(B)
+        (?\e$(7!?\e(B . ?\e$,1EO\e(B)
+        (?\e$(7!@\e(B . ?\e$,1EP\e(B)
+        (?\e$(7!A\e(B . ?\e$,1EQ\e(B)
+        (?\e$(7!B\e(B . ?\e$,1ER\e(B)
+        (?\e$(7!C\e(B . ?\e$,1ES\e(B)
+        (?\e$(7!D\e(B . ?\e$,1ET\e(B)
+        (?\e$(7!E\e(B . ?\e$,1EU\e(B)
+        (?\e$(7!F\e(B . ?\e$,1EV\e(B)
+        (?\e$(7!G\e(B . ?\e$,1EW\e(B)
+        (?\e$(7!H\e(B . ?\e$,1EX\e(B)
+        (?\e$(7!I\e(B . ?\e$,1EY\e(B)
+        (?\e$(7!J\e(B . ?\e$,1EZ\e(B)
+        (?\e$(7!K\e(B . ?\e$,1E[\e(B)
+        (?\e$(7!L\e(B . ?\e$,1E\\e(B)
+        (?\e$(7!M\e(B . ?\e$,1E]\e(B)
+        (?\e$(7!N\e(B . ?\e$,1E^\e(B)
+        (?\e$(7!O\e(B . ?\e$,1E_\e(B)
+        (?\e$(7!P\e(B . ?\e$,1E`\e(B)
+        (?\e$(7!Q\e(B . ?\e$,1Ea\e(B)
+        (?\e$(7!R\e(B . ?\e$,1Eb\e(B)
+        (?\e$(7!S\e(B . ?\e$,1Ec\e(B)
+        (?\e$(7!T\e(B . ?\e$,1Ed\e(B)
+        (?\e$(7!U\e(B . ?\e$,1Ee\e(B)
+        (?\e$(7!V\e(B . ?\e$,1Ef\e(B)
+        (?\e$(7!W\e(B . ?\e$,1Eg\e(B)
+        (?\e$(7!X\e(B . ?\e$,1Eh\e(B)
+        (?\e$(7!Y\e(B . ?\e$,1Ei\e(B)
+        (?\e$(7!Z\e(B . ?\e$,1Ej\e(B)
+        (?\e$(7![\e(B . ?\e$,1Ek\e(B)
+        (?\e$(7!\\e(B . ?\e$,1El\e(B)
+        (?\e$(7!]\e(B . ?\e$,1Em\e(B)
+        (?\e$(7!^\e(B . ?\e$,1En\e(B)
+        (?\e$(7!_\e(B . ?\e$,1Eo\e(B)
+        (?\e$(7!`\e(B . ?\e$,1Ep\e(B)
+        (?\e$(7!a\e(B . ?\e$,1Eq\e(B)
+        (?\e$(7!b\e(B . ?\e$,1Er\e(B)
+        (?\e$(7!c\e(B . ?\e$,1Es\e(B)
+        (?\e$(7!d\e(B . ?\e$,1Et\e(B)
+        (?\e$(7!e\e(B . ?\e$,1Eu\e(B)
+        (?\e$(7!f\e(B . ?\e$,1Ev\e(B)
+        (?\e$(7!g\e(B . ?\e$,1Ew\e(B)
+        (?\e$(7!h\e(B . ?\e$,1Ex\e(B)
+        (?\e$(7!i\e(B . ?\e$,1Ey\e(B)
+        (?\e$(7!j\e(B . ?\e$,1Ez\e(B)
+        (?\e$(7!k\e(B . ?\e$,1E{\e(B)
+        (?\e$(7!l\e(B . ?\e$,1E|\e(B)
+        (?\e$(7!m\e(B . ?\e$,1E}\e(B)
+        (?\e$(7!n\e(B . ?\e$,1E~\e(B)
+        (?\e$(7!o\e(B . ?\e$,1E\7f\e(B)
+        (?\e$(7"!\e(B . ?\e$,1F \e(B)
+        (?\e$(7""\e(B . ?\e$,1F!\e(B)
+        (?\e$(7"#\e(B . ?\e$,1F"\e(B)
+        (?\e$(7"$\e(B . ?\e$,1F#\e(B)
+        (?\e$(7"%\e(B . ?\e$,1F$\e(B)
+        (?\e$(7"&\e(B . ?\e$,1F%\e(B)
+        (?\e$(7"'\e(B . ?\e$,1F&\e(B)
+        (?\e$(7"(\e(B . ?\e$,1F'\e(B)
+        (?\e$(7"*\e(B . ?\e$,1F)\e(B)
+        (?\e$(7"+\e(B . ?\e$,1F*\e(B)
+        (?\e$(7",\e(B . ?\e$,1F+\e(B)
+        (?\e$(7"-\e(B . ?\e$,1F,\e(B)
+        (?\e$(7".\e(B . ?\e$,1F-\e(B)
+        (?\e$(7"/\e(B . ?\e$,1F.\e(B)
+        (?\e$(7"0\e(B . ?\e$,1F/\e(B)
+        (?\e$(7"1\e(B . ?\e$,1F0\e(B)
+        (?\e$(7"2\e(B . ?\e$,1F1\e(B)
+        (?\e$(7"3\e(B . ?\e$,1F2\e(B)
+        (?\e$(7"4\e(B . ?\e$,1F3\e(B)
+        (?\e$(7"5\e(B . ?\e$,1F4\e(B)
+        (?\e$(7"6\e(B . ?\e$,1F5\e(B)
+        (?\e$(7"7\e(B . ?\e$,1F6\e(B)
+        (?\e$(7"8\e(B . ?\e$,1F7\e(B)
+        (?\e$(7"9\e(B . ?\e$,1F8\e(B)
+        (?\e$(7":\e(B . ?\e$,1F9\e(B)
+        (?\e$(7";\e(B . ?\e$,1F:\e(B)
+        (?\e$(7"<\e(B . ?\e$,1F;\e(B)
+        (?\e$(7"=\e(B . ?\e$,1F<\e(B)
+        (?\e$(7">\e(B . ?\e$,1F=\e(B)
+        (?\e$(7"?\e(B . ?\e$,1F>\e(B)
+        (?\e$(7"@\e(B . ?\e$,1F?\e(B)
+        (?\e$(7"A\e(B . ?\e$,1F@\e(B)
+        (?\e$(7"B\e(B . ?\e$,1FA\e(B)
+        (?\e$(7"C\e(B . ?\e$,1FB\e(B)
+        (?\e$(7"D\e(B . ?\e$,1FC\e(B)
+        (?\e$(7"E\e(B . ?\e$,1FD\e(B)
+        (?\e$(7"F\e(B . ?\e$,1FE\e(B)
+        (?\e$(7"G\e(B . ?\e$,1FF\e(B)
+        (?\e$(7"H\e(B . ?\e$,1FG\e(B)
+        (?\e$(7"I\e(B . ?\e$,1FH\e(B)
+        (?\e$(7"J\e(B . ?\e$,1FI\e(B)
+        (?\e$(7"K\e(B . ?\e$,1FJ\e(B)
+        (?\e$(7"R\e(B . ?\e$,1FQ\e(B)
+        (?\e$(7"S\e(B . ?\e$,1FR\e(B)
+        (?\e$(7"T\e(B . ?\e$,1FS\e(B)
+        (?\e$(7"U\e(B . ?\e$,1FT\e(B)
+        (?\e$(7"V\e(B . ?\e$,1FU\e(B)
+        (?\e$(7"W\e(B . ?\e$,1FV\e(B)
+        (?\e$(7"X\e(B . ?\e$,1FW\e(B)
+        (?\e$(7"Y\e(B . ?\e$,1FX\e(B)
+        (?\e$(7"Z\e(B . ?\e$,1FY\e(B)
+        (?\e$(7"[\e(B . ?\e$,1FZ\e(B)
+        (?\e$(7"\\e(B . ?\e$,1F[\e(B)
+        (?\e$(7"]\e(B . ?\e$,1F\\e(B)
+        (?\e$(7"^\e(B . ?\e$,1F]\e(B)
+        (?\e$(7"_\e(B . ?\e$,1F^\e(B)
+        (?\e$(7"`\e(B . ?\e$,1F_\e(B)
+        (?\e$(7"a\e(B . ?\e$,1F`\e(B)
+        (?\e$(7"b\e(B . ?\e$,1Fa\e(B)
+        (?\e$(7"c\e(B . ?\e$,1Fb\e(B)
+        (?\e$(7"d\e(B . ?\e$,1Fc\e(B)
+        (?\e$(7"e\e(B . ?\e$,1Fd\e(B)
+        (?\e$(7"f\e(B . ?\e$,1Fe\e(B)
+        (?\e$(7"g\e(B . ?\e$,1Ff\e(B)
+        (?\e$(7"h\e(B . ?\e$,1Fg\e(B)
+        (?\e$(7"i\e(B . ?\e$,1Fh\e(B)
+        (?\e$(7"j\e(B . ?\e$,1Fi\e(B)
+        (?\e$(7"k\e(B . ?\e$,1Fj\e(B)
+        (?\e$(7"l\e(B . ?\e$,1Fk\e(B)
+        (?\e$(7#!\e(B . ?\e$,1Fp\e(B)
+        (?\e$(7#"\e(B . ?\e$,1Fq\e(B)
+        (?\e$(7##\e(B . ?\e$,1Fr\e(B)
+        (?\e$(7#$\e(B . ?\e$,1Fs\e(B)
+        (?\e$(7#%\e(B . ?\e$,1Ft\e(B)
+        (?\e$(7#&\e(B . ?\e$,1Fu\e(B)
+        (?\e$(7#'\e(B . ?\e$,1Fv\e(B)
+        (?\e$(7#(\e(B . ?\e$,1Fw\e(B)
+        (?\e$(7#*\e(B . ?\e$,1Fy\e(B)
+        (?\e$(7#+\e(B . ?\e$,1Fz\e(B)
+        (?\e$(7#,\e(B . ?\e$,1F{\e(B)
+        (?\e$(7#-\e(B . ?\e$,1F|\e(B)
+        (?\e$(7#.\e(B . ?\e$,1F}\e(B)
+        (?\e$(7#/\e(B . ?\e$,1F~\e(B)
+        (?\e$(7#0\e(B . ?\e$,1F\7f\e(B)
+        (?\e$(7#1\e(B . ?\e$,1G \e(B)
+        (?\e$(7#2\e(B . ?\e$,1G!\e(B)
+        (?\e$(7#3\e(B . ?\e$,1G"\e(B)
+        (?\e$(7#4\e(B . ?\e$,1G#\e(B)
+        (?\e$(7#5\e(B . ?\e$,1G$\e(B)
+        (?\e$(7#6\e(B . ?\e$,1G%\e(B)
+        (?\e$(7#7\e(B . ?\e$,1G&\e(B)
+        (?\e$(7#8\e(B . ?\e$,1G'\e(B)
+        (?\e$(7#9\e(B . ?\e$,1G(\e(B)
+        (?\e$(7#:\e(B . ?\e$,1G)\e(B)
+        (?\e$(7#;\e(B . ?\e$,1G*\e(B)
+        (?\e$(7#<\e(B . ?\e$,1G+\e(B)
+        (?\e$(7#=\e(B . ?\e$,1G,\e(B)
+        (?\e$(7#>\e(B . ?\e$,1G-\e(B)
+        (?\e$(7#?\e(B . ?\e$,1G.\e(B)
+        (?\e$(7#@\e(B . ?\e$,1G/\e(B)
+        (?\e$(7#A\e(B . ?\e$,1G0\e(B)
+        (?\e$(7#B\e(B . ?\e$,1G1\e(B)
+        (?\e$(7#C\e(B . ?\e$,1G2\e(B)
+        (?\e$(7#D\e(B . ?\e$,1G3\e(B)
+        (?\e$(7#E\e(B . ?\e$,1G4\e(B)
+        (?\e$(7#F\e(B . ?\e$,1G5\e(B)
+        (?\e$(7#G\e(B . ?\e$,1G6\e(B)
+        (?\e$(7#H\e(B . ?\e$,1G7\e(B)
+        (?\e$(7#I\e(B . ?\e$,1G8\e(B)
+        (?\e$(7#J\e(B . ?\e$,1G9\e(B)
+        (?\e$(7#K\e(B . ?\e$,1G:\e(B)
+        (?\e$(7#L\e(B . ?\e$,1G;\e(B)
+        (?\e$(7#M\e(B . ?\e$,1G<\e(B)
+        (?\e$(7#O\e(B . ?\e$,1G>\e(B)
+        (?\e$(7#P\e(B . ?\e$,1G?\e(B)
+        (?\e$(7#Q\e(B . ?\e$,1G@\e(B)
+        (?\e$(7#R\e(B . ?\e$,1GA\e(B)
+        (?\e$(7#S\e(B . ?\e$,1GB\e(B)
+        (?\e$(7#T\e(B . ?\e$,1GC\e(B)
+        (?\e$(7#U\e(B . ?\e$,1GD\e(B)
+        (?\e$(7#V\e(B . ?\e$,1GE\e(B)
+        (?\e$(7#W\e(B . ?\e$,1GF\e(B)
+        (?\e$(7#X\e(B . ?\e$,1GG\e(B)
+        (?\e$(7#Y\e(B . ?\e$,1GH\e(B)
+        (?\e$(7#Z\e(B . ?\e$,1GI\e(B)
+        (?\e$(7#[\e(B . ?\e$,1GJ\e(B)
+        (?\e$(7#\\e(B . ?\e$,1GK\e(B)
+        (?\e$(7#]\e(B . ?\e$,1GL\e(B)
+        (?\e$(7#`\e(B . ?\e$,1GO\e(B)))
+
+      (ipa
+       '((?\e,0 \e(B . ?i)
+        (?\e,0!\e(B . ?\e$,1#j\e(B)
+        (?\e,0"\e(B . ?e)
+        (?\e,0#\e(B . ?\e$,1#[\e(B)
+        (?\e,0$\e(B . ?\e,Af\e(B)
+        (?\e,0%\e(B . ?a)
+        (?\e,0&\e(B . ?\e$,1#h\e(B)
+        (?\e,0'\e(B . ?\e$,1#Y\e(B)
+        (?\e,0(\e(B . ?\e$,1#P\e(B)
+        (?\e,0)\e(B . ?\e$,1#o\e(B)
+        (?\e,0*\e(B . ?\e$,1#d\e(B)
+        (?\e,0+\e(B . ?\e$,1$,\e(B)
+        (?\e,0,\e(B . ?\e$,1#Q\e(B)
+        (?\e,0-\e(B . ?y)
+        (?\e,0.\e(B . ?\e$,1$/\e(B)
+        (?\e,0/\e(B . ?\e,Ax\e(B)
+        (?\e,00\e(B . ?\e$,1 s\e(B)
+        (?\e,01\e(B . ?\e$,1#v\e(B)
+        (?\e,02\e(B . ?\e$,1$)\e(B)
+        (?\e,03\e(B . ?\e$,1#u\e(B)
+        (?\e,04\e(B . ?u)
+        (?\e,05\e(B . ?\e$,1$*\e(B)
+        (?\e,06\e(B . ?o)
+        (?\e,07\e(B . ?\e$,1#T\e(B)
+        (?\e,08\e(B . ?\e$,1#R\e(B)
+        (?\e,0:\e(B . ?\e$,1#Z\e(B)
+        (?\e,0@\e(B . ?p)
+        (?\e,0A\e(B . ?b)
+        (?\e,0B\e(B . ?t)
+        (?\e,0C\e(B . ?d)
+        (?\e,0D\e(B . ?k)
+        (?\e,0E\e(B . ?g)
+        (?\e,0F\e(B . ?f)
+        (?\e,0G\e(B . ?v)
+        (?\e,0H\e(B . ?\e$,1'8\e(B)
+        (?\e,0I\e(B . ?\e,Ap\e(B)
+        (?\e,0J\e(B . ?s)
+        (?\e,0K\e(B . ?z)
+        (?\e,0L\e(B . ?\e$,1$#\e(B)
+        (?\e,0M\e(B . ?\e$,1$2\e(B)
+        (?\e,0N\e(B . ?\e,Ag\e(B)
+        (?\e,0O\e(B . ?x)
+        (?\e,0P\e(B . ?\e$,1$!\e(B)
+        (?\e,0Q\e(B . ?h)
+        (?\e,0R\e(B . ?m)
+        (?\e,0S\e(B . ?n)
+        (?\e,0T\e(B . ?\e$,1#r\e(B)
+        (?\e,0U\e(B . ?\e$,1 k\e(B)
+        (?\e,0V\e(B . ?r)
+        (?\e,0W\e(B . ?\e$,1$ \e(B)
+        (?\e,0X\e(B . ?\e$,1#y\e(B)
+        (?\e,0Y\e(B . ?j)
+        (?\e,0Z\e(B . ?l)
+        (?\e,0[\e(B . ?\e$,1$.\e(B)
+        (?\e,0\\e(B . ?\e$,1$?\e(B)
+        (?\e,0]\e(B . ?\e$,1#e\e(B)
+        (?\e,0^\e(B . ?w)
+        (?\e,0_\e(B . ?\e$,1$-\e(B)
+        (?\e,0p\e(B . ?\e$,1$h\e(B)
+        (?\e,0q\e(B . ?\e$,1$l\e(B)
+        (?\e,0r\e(B . ?\e$,1$p\e(B)))
+
+      (ethiopic
+       '((?\e$(3!!\e(B . ?\e$,1M@\e(B)
+        (?\e$(3!"\e(B . ?\e$,1MA\e(B)
+        (?\e$(3!#\e(B . ?\e$,1MB\e(B)
+        (?\e$(3!$\e(B . ?\e$,1MC\e(B)
+        (?\e$(3!%\e(B . ?\e$,1MD\e(B)
+        (?\e$(3!&\e(B . ?\e$,1ME\e(B)
+        (?\e$(3!'\e(B . ?\e$,1MF\e(B)
+        (?\e$(3!)\e(B . ?\e$,1MH\e(B)
+        (?\e$(3!*\e(B . ?\e$,1MI\e(B)
+        (?\e$(3!+\e(B . ?\e$,1MJ\e(B)
+        (?\e$(3!,\e(B . ?\e$,1MK\e(B)
+        (?\e$(3!-\e(B . ?\e$,1ML\e(B)
+        (?\e$(3!.\e(B . ?\e$,1MM\e(B)
+        (?\e$(3!/\e(B . ?\e$,1MN\e(B)
+        (?\e$(3!0\e(B . ?\e$,1MO\e(B)
+        (?\e$(3!1\e(B . ?\e$,1MP\e(B)
+        (?\e$(3!2\e(B . ?\e$,1MQ\e(B)
+        (?\e$(3!3\e(B . ?\e$,1MR\e(B)
+        (?\e$(3!4\e(B . ?\e$,1MS\e(B)
+        (?\e$(3!5\e(B . ?\e$,1MT\e(B)
+        (?\e$(3!6\e(B . ?\e$,1MU\e(B)
+        (?\e$(3!7\e(B . ?\e$,1MV\e(B)
+        (?\e$(3!8\e(B . ?\e$,1MW\e(B)
+        (?\e$(3!9\e(B . ?\e$,1MX\e(B)
+        (?\e$(3!:\e(B . ?\e$,1MY\e(B)
+        (?\e$(3!;\e(B . ?\e$,1MZ\e(B)
+        (?\e$(3!<\e(B . ?\e$,1M[\e(B)
+        (?\e$(3!=\e(B . ?\e$,1M\\e(B)
+        (?\e$(3!>\e(B . ?\e$,1M]\e(B)
+        (?\e$(3!?\e(B . ?\e$,1M^\e(B)
+        (?\e$(3!@\e(B . ?\e$,1M_\e(B)
+        (?\e$(3!A\e(B . ?\e$,1M`\e(B)
+        (?\e$(3!B\e(B . ?\e$,1Ma\e(B)
+        (?\e$(3!C\e(B . ?\e$,1Mb\e(B)
+        (?\e$(3!D\e(B . ?\e$,1Mc\e(B)
+        (?\e$(3!E\e(B . ?\e$,1Md\e(B)
+        (?\e$(3!F\e(B . ?\e$,1Me\e(B)
+        (?\e$(3!G\e(B . ?\e$,1Mf\e(B)
+        (?\e$(3!H\e(B . ?\e$,1Mg\e(B)
+        (?\e$(3!I\e(B . ?\e$,1Mh\e(B)
+        (?\e$(3!J\e(B . ?\e$,1Mi\e(B)
+        (?\e$(3!K\e(B . ?\e$,1Mj\e(B)
+        (?\e$(3!L\e(B . ?\e$,1Mk\e(B)
+        (?\e$(3!M\e(B . ?\e$,1Ml\e(B)
+        (?\e$(3!N\e(B . ?\e$,1Mm\e(B)
+        (?\e$(3!O\e(B . ?\e$,1Mn\e(B)
+        (?\e$(3!P\e(B . ?\e$,1Mo\e(B)
+        (?\e$(3!Q\e(B . ?\e$,1Mp\e(B)
+        (?\e$(3!R\e(B . ?\e$,1Mq\e(B)
+        (?\e$(3!S\e(B . ?\e$,1Mr\e(B)
+        (?\e$(3!T\e(B . ?\e$,1Ms\e(B)
+        (?\e$(3!U\e(B . ?\e$,1Mt\e(B)
+        (?\e$(3!V\e(B . ?\e$,1Mu\e(B)
+        (?\e$(3!W\e(B . ?\e$,1Mv\e(B)
+        (?\e$(3!X\e(B . ?\e$,1Mw\e(B)
+        (?\e$(3!Y\e(B . ?\e$,1Mx\e(B)
+        (?\e$(3!Z\e(B . ?\e$,1My\e(B)
+        (?\e$(3![\e(B . ?\e$,1Mz\e(B)
+        (?\e$(3!\\e(B . ?\e$,1M{\e(B)
+        (?\e$(3!]\e(B . ?\e$,1M|\e(B)
+        (?\e$(3!^\e(B . ?\e$,1M}\e(B)
+        (?\e$(3!_\e(B . ?\e$,1M~\e(B)
+        (?\e$(3!`\e(B . ?\e$,1M\7f\e(B)
+        (?\e$(3!a\e(B . ?\e$,1N \e(B)
+        (?\e$(3!b\e(B . ?\e$,1N!\e(B)
+        (?\e$(3!c\e(B . ?\e$,1N"\e(B)
+        (?\e$(3!d\e(B . ?\e$,1N#\e(B)
+        (?\e$(3!e\e(B . ?\e$,1N$\e(B)
+        (?\e$(3!f\e(B . ?\e$,1N%\e(B)
+        (?\e$(3!g\e(B . ?\e$,1N&\e(B)
+        (?\e$(3!i\e(B . ?\e$,1N(\e(B)
+        (?\e$(3!k\e(B . ?\e$,1N*\e(B)
+        (?\e$(3!l\e(B . ?\e$,1N+\e(B)
+        (?\e$(3!m\e(B . ?\e$,1N,\e(B)
+        (?\e$(3!n\e(B . ?\e$,1N-\e(B)
+        (?\e$(3!q\e(B . ?\e$,1N0\e(B)
+        (?\e$(3!r\e(B . ?\e$,1N1\e(B)
+        (?\e$(3!s\e(B . ?\e$,1N2\e(B)
+        (?\e$(3!t\e(B . ?\e$,1N3\e(B)
+        (?\e$(3!u\e(B . ?\e$,1N4\e(B)
+        (?\e$(3!v\e(B . ?\e$,1N5\e(B)
+        (?\e$(3!w\e(B . ?\e$,1N6\e(B)
+        (?\e$(3!y\e(B . ?\e$,1N8\e(B)
+        (?\e$(3!{\e(B . ?\e$,1N:\e(B)
+        (?\e$(3!|\e(B . ?\e$,1N;\e(B)
+        (?\e$(3!}\e(B . ?\e$,1N<\e(B)
+        (?\e$(3!~\e(B . ?\e$,1N=\e(B)
+        (?\e$(3"#\e(B . ?\e$,1N@\e(B)
+        (?\e$(3"$\e(B . ?\e$,1NA\e(B)
+        (?\e$(3"%\e(B . ?\e$,1NB\e(B)
+        (?\e$(3"&\e(B . ?\e$,1NC\e(B)
+        (?\e$(3"'\e(B . ?\e$,1ND\e(B)
+        (?\e$(3"(\e(B . ?\e$,1NE\e(B)
+        (?\e$(3")\e(B . ?\e$,1NF\e(B)
+        (?\e$(3"*\e(B . ?\e$,1NG\e(B)
+        (?\e$(3"+\e(B . ?\e$,1NH\e(B)
+        (?\e$(3",\e(B . ?\e$,1NI\e(B)
+        (?\e$(3"-\e(B . ?\e$,1NJ\e(B)
+        (?\e$(3".\e(B . ?\e$,1NK\e(B)
+        (?\e$(3"/\e(B . ?\e$,1NL\e(B)
+        (?\e$(3"0\e(B . ?\e$,1NM\e(B)
+        (?\e$(3"1\e(B . ?\e$,1NN\e(B)
+        (?\e$(3"2\e(B . ?\e$,1NO\e(B)
+        (?\e$(3"3\e(B . ?\e$,1NP\e(B)
+        (?\e$(3"4\e(B . ?\e$,1NQ\e(B)
+        (?\e$(3"5\e(B . ?\e$,1NR\e(B)
+        (?\e$(3"6\e(B . ?\e$,1NS\e(B)
+        (?\e$(3"7\e(B . ?\e$,1NT\e(B)
+        (?\e$(3"8\e(B . ?\e$,1NU\e(B)
+        (?\e$(3"9\e(B . ?\e$,1NV\e(B)
+        (?\e$(3":\e(B . ?\e$,1NW\e(B)
+        (?\e$(3";\e(B . ?\e$,1NX\e(B)
+        (?\e$(3"<\e(B . ?\e$,1NY\e(B)
+        (?\e$(3"=\e(B . ?\e$,1NZ\e(B)
+        (?\e$(3">\e(B . ?\e$,1N[\e(B)
+        (?\e$(3"?\e(B . ?\e$,1N\\e(B)
+        (?\e$(3"@\e(B . ?\e$,1N]\e(B)
+        (?\e$(3"A\e(B . ?\e$,1N^\e(B)
+        (?\e$(3"B\e(B . ?\e$,1N_\e(B)
+        (?\e$(3"C\e(B . ?\e$,1N`\e(B)
+        (?\e$(3"D\e(B . ?\e$,1Na\e(B)
+        (?\e$(3"E\e(B . ?\e$,1Nb\e(B)
+        (?\e$(3"F\e(B . ?\e$,1Nc\e(B)
+        (?\e$(3"G\e(B . ?\e$,1Nd\e(B)
+        (?\e$(3"H\e(B . ?\e$,1Ne\e(B)
+        (?\e$(3"I\e(B . ?\e$,1Nf\e(B)
+        (?\e$(3"K\e(B . ?\e$,1Nh\e(B)
+        (?\e$(3"M\e(B . ?\e$,1Nj\e(B)
+        (?\e$(3"N\e(B . ?\e$,1Nk\e(B)
+        (?\e$(3"O\e(B . ?\e$,1Nl\e(B)
+        (?\e$(3"P\e(B . ?\e$,1Nm\e(B)
+        (?\e$(3"S\e(B . ?\e$,1Np\e(B)
+        (?\e$(3"T\e(B . ?\e$,1Nq\e(B)
+        (?\e$(3"U\e(B . ?\e$,1Nr\e(B)
+        (?\e$(3"V\e(B . ?\e$,1Ns\e(B)
+        (?\e$(3"W\e(B . ?\e$,1Nt\e(B)
+        (?\e$(3"X\e(B . ?\e$,1Nu\e(B)
+        (?\e$(3"Y\e(B . ?\e$,1Nv\e(B)
+        (?\e$(3"Z\e(B . ?\e$,1Nw\e(B)
+        (?\e$(3"[\e(B . ?\e$,1Nx\e(B)
+        (?\e$(3"\\e(B . ?\e$,1Ny\e(B)
+        (?\e$(3"]\e(B . ?\e$,1Nz\e(B)
+        (?\e$(3"^\e(B . ?\e$,1N{\e(B)
+        (?\e$(3"_\e(B . ?\e$,1N|\e(B)
+        (?\e$(3"`\e(B . ?\e$,1N}\e(B)
+        (?\e$(3"a\e(B . ?\e$,1N~\e(B)
+        (?\e$(3"b\e(B . ?\e$,1N\7f\e(B)
+        (?\e$(3"c\e(B . ?\e$,1O \e(B)
+        (?\e$(3"d\e(B . ?\e$,1O!\e(B)
+        (?\e$(3"e\e(B . ?\e$,1O"\e(B)
+        (?\e$(3"f\e(B . ?\e$,1O#\e(B)
+        (?\e$(3"g\e(B . ?\e$,1O$\e(B)
+        (?\e$(3"h\e(B . ?\e$,1O%\e(B)
+        (?\e$(3"i\e(B . ?\e$,1O&\e(B)
+        (?\e$(3"j\e(B . ?\e$,1O'\e(B)
+        (?\e$(3"k\e(B . ?\e$,1O(\e(B)
+        (?\e$(3"l\e(B . ?\e$,1O)\e(B)
+        (?\e$(3"m\e(B . ?\e$,1O*\e(B)
+        (?\e$(3"n\e(B . ?\e$,1O+\e(B)
+        (?\e$(3"o\e(B . ?\e$,1O,\e(B)
+        (?\e$(3"p\e(B . ?\e$,1O-\e(B)
+        (?\e$(3"q\e(B . ?\e$,1O.\e(B)
+        (?\e$(3"s\e(B . ?\e$,1O0\e(B)
+        (?\e$(3"u\e(B . ?\e$,1O2\e(B)
+        (?\e$(3"v\e(B . ?\e$,1O3\e(B)
+        (?\e$(3"w\e(B . ?\e$,1O4\e(B)
+        (?\e$(3"x\e(B . ?\e$,1O5\e(B)
+        (?\e$(3"{\e(B . ?\e$,1O8\e(B)
+        (?\e$(3"|\e(B . ?\e$,1O9\e(B)
+        (?\e$(3"}\e(B . ?\e$,1O:\e(B)
+        (?\e$(3"~\e(B . ?\e$,1O;\e(B)
+        (?\e$(3#!\e(B . ?\e$,1O<\e(B)
+        (?\e$(3#"\e(B . ?\e$,1O=\e(B)
+        (?\e$(3##\e(B . ?\e$,1O>\e(B)
+        (?\e$(3#%\e(B . ?\e$,1O@\e(B)
+        (?\e$(3#'\e(B . ?\e$,1OB\e(B)
+        (?\e$(3#(\e(B . ?\e$,1OC\e(B)
+        (?\e$(3#)\e(B . ?\e$,1OD\e(B)
+        (?\e$(3#*\e(B . ?\e$,1OE\e(B)
+        (?\e$(3#-\e(B . ?\e$,1OH\e(B)
+        (?\e$(3#.\e(B . ?\e$,1OI\e(B)
+        (?\e$(3#/\e(B . ?\e$,1OJ\e(B)
+        (?\e$(3#0\e(B . ?\e$,1OK\e(B)
+        (?\e$(3#1\e(B . ?\e$,1OL\e(B)
+        (?\e$(3#2\e(B . ?\e$,1OM\e(B)
+        (?\e$(3#3\e(B . ?\e$,1ON\e(B)
+        (?\e$(3#5\e(B . ?\e$,1OP\e(B)
+        (?\e$(3#6\e(B . ?\e$,1OQ\e(B)
+        (?\e$(3#7\e(B . ?\e$,1OR\e(B)
+        (?\e$(3#8\e(B . ?\e$,1OS\e(B)
+        (?\e$(3#9\e(B . ?\e$,1OT\e(B)
+        (?\e$(3#:\e(B . ?\e$,1OU\e(B)
+        (?\e$(3#;\e(B . ?\e$,1OV\e(B)
+        (?\e$(3#=\e(B . ?\e$,1OX\e(B)
+        (?\e$(3#>\e(B . ?\e$,1OY\e(B)
+        (?\e$(3#?\e(B . ?\e$,1OZ\e(B)
+        (?\e$(3#@\e(B . ?\e$,1O[\e(B)
+        (?\e$(3#A\e(B . ?\e$,1O\\e(B)
+        (?\e$(3#B\e(B . ?\e$,1O]\e(B)
+        (?\e$(3#C\e(B . ?\e$,1O^\e(B)
+        (?\e$(3#D\e(B . ?\e$,1O_\e(B)
+        (?\e$(3#E\e(B . ?\e$,1O`\e(B)
+        (?\e$(3#F\e(B . ?\e$,1Oa\e(B)
+        (?\e$(3#G\e(B . ?\e$,1Ob\e(B)
+        (?\e$(3#H\e(B . ?\e$,1Oc\e(B)
+        (?\e$(3#I\e(B . ?\e$,1Od\e(B)
+        (?\e$(3#J\e(B . ?\e$,1Oe\e(B)
+        (?\e$(3#K\e(B . ?\e$,1Of\e(B)
+        (?\e$(3#L\e(B . ?\e$,1Og\e(B)
+        (?\e$(3#M\e(B . ?\e$,1Oh\e(B)
+        (?\e$(3#N\e(B . ?\e$,1Oi\e(B)
+        (?\e$(3#O\e(B . ?\e$,1Oj\e(B)
+        (?\e$(3#P\e(B . ?\e$,1Ok\e(B)
+        (?\e$(3#Q\e(B . ?\e$,1Ol\e(B)
+        (?\e$(3#R\e(B . ?\e$,1Om\e(B)
+        (?\e$(3#S\e(B . ?\e$,1On\e(B)
+        (?\e$(3#U\e(B . ?\e$,1Op\e(B)
+        (?\e$(3#V\e(B . ?\e$,1Oq\e(B)
+        (?\e$(3#W\e(B . ?\e$,1Or\e(B)
+        (?\e$(3#X\e(B . ?\e$,1Os\e(B)
+        (?\e$(3#Y\e(B . ?\e$,1Ot\e(B)
+        (?\e$(3#Z\e(B . ?\e$,1Ou\e(B)
+        (?\e$(3#[\e(B . ?\e$,1Ov\e(B)
+        (?\e$(3#\\e(B . ?\e$,1Ow\e(B)
+        (?\e$(3#]\e(B . ?\e$,1Ox\e(B)
+        (?\e$(3#^\e(B . ?\e$,1Oy\e(B)
+        (?\e$(3#_\e(B . ?\e$,1Oz\e(B)
+        (?\e$(3#`\e(B . ?\e$,1O{\e(B)
+        (?\e$(3#a\e(B . ?\e$,1O|\e(B)
+        (?\e$(3#b\e(B . ?\e$,1O}\e(B)
+        (?\e$(3#c\e(B . ?\e$,1O~\e(B)
+        (?\e$(3#d\e(B . ?\e$,1O\7f\e(B)
+        (?\e$(3#e\e(B . ?\e$,1P \e(B)
+        (?\e$(3#f\e(B . ?\e$,1P!\e(B)
+        (?\e$(3#g\e(B . ?\e$,1P"\e(B)
+        (?\e$(3#h\e(B . ?\e$,1P#\e(B)
+        (?\e$(3#i\e(B . ?\e$,1P$\e(B)
+        (?\e$(3#j\e(B . ?\e$,1P%\e(B)
+        (?\e$(3#k\e(B . ?\e$,1P&\e(B)
+        (?\e$(3#l\e(B . ?\e$,1P'\e(B)
+        (?\e$(3#m\e(B . ?\e$,1P(\e(B)
+        (?\e$(3#n\e(B . ?\e$,1P)\e(B)
+        (?\e$(3#o\e(B . ?\e$,1P*\e(B)
+        (?\e$(3#p\e(B . ?\e$,1P+\e(B)
+        (?\e$(3#q\e(B . ?\e$,1P,\e(B)
+        (?\e$(3#r\e(B . ?\e$,1P-\e(B)
+        (?\e$(3#s\e(B . ?\e$,1P.\e(B)
+        (?\e$(3#u\e(B . ?\e$,1P0\e(B)
+        (?\e$(3#w\e(B . ?\e$,1P2\e(B)
+        (?\e$(3#x\e(B . ?\e$,1P3\e(B)
+        (?\e$(3#y\e(B . ?\e$,1P4\e(B)
+        (?\e$(3#z\e(B . ?\e$,1P5\e(B)
+        (?\e$(3#}\e(B . ?\e$,1P8\e(B)
+        (?\e$(3#~\e(B . ?\e$,1P9\e(B)
+        (?\e$(3$!\e(B . ?\e$,1P:\e(B)
+        (?\e$(3$"\e(B . ?\e$,1P;\e(B)
+        (?\e$(3$#\e(B . ?\e$,1P<\e(B)
+        (?\e$(3$$\e(B . ?\e$,1P=\e(B)
+        (?\e$(3$%\e(B . ?\e$,1P>\e(B)
+        (?\e$(3$'\e(B . ?\e$,1P@\e(B)
+        (?\e$(3$(\e(B . ?\e$,1PA\e(B)
+        (?\e$(3$)\e(B . ?\e$,1PB\e(B)
+        (?\e$(3$*\e(B . ?\e$,1PC\e(B)
+        (?\e$(3$+\e(B . ?\e$,1PD\e(B)
+        (?\e$(3$,\e(B . ?\e$,1PE\e(B)
+        (?\e$(3$-\e(B . ?\e$,1PF\e(B)
+        (?\e$(3$.\e(B . ?\e$,1PG\e(B)
+        (?\e$(3$/\e(B . ?\e$,1PH\e(B)
+        (?\e$(3$0\e(B . ?\e$,1PI\e(B)
+        (?\e$(3$1\e(B . ?\e$,1PJ\e(B)
+        (?\e$(3$2\e(B . ?\e$,1PK\e(B)
+        (?\e$(3$3\e(B . ?\e$,1PL\e(B)
+        (?\e$(3$4\e(B . ?\e$,1PM\e(B)
+        (?\e$(3$5\e(B . ?\e$,1PN\e(B)
+        (?\e$(3$6\e(B . ?\e$,1PO\e(B)
+        (?\e$(3$7\e(B . ?\e$,1PP\e(B)
+        (?\e$(3$8\e(B . ?\e$,1PQ\e(B)
+        (?\e$(3$9\e(B . ?\e$,1PR\e(B)
+        (?\e$(3$:\e(B . ?\e$,1PS\e(B)
+        (?\e$(3$;\e(B . ?\e$,1PT\e(B)
+        (?\e$(3$<\e(B . ?\e$,1PU\e(B)
+        (?\e$(3$=\e(B . ?\e$,1PV\e(B)
+        (?\e$(3$>\e(B . ?\e$,1PW\e(B)
+        (?\e$(3$?\e(B . ?\e$,1PX\e(B)
+        (?\e$(3$@\e(B . ?\e$,1PY\e(B)
+        (?\e$(3$A\e(B . ?\e$,1PZ\e(B)
+        (?\e$(3$B\e(B . ?\e$,1P[\e(B)
+        (?\e$(3$C\e(B . ?\e$,1P\\e(B)
+        (?\e$(3$D\e(B . ?\e$,1P]\e(B)
+        (?\e$(3$E\e(B . ?\e$,1P^\e(B)
+        (?\e$(3$F\e(B . ?\e$,1P_\e(B)
+        (?\e$(3$G\e(B . ?\e$,1P`\e(B)
+        (?\e$(3$H\e(B . ?\e$,1Pa\e(B)
+        (?\e$(3$I\e(B . ?\e$,1Pb\e(B)
+        (?\e$(3$J\e(B . ?\e$,1Pc\e(B)
+        (?\e$(3$K\e(B . ?\e$,1Pd\e(B)
+        (?\e$(3$L\e(B . ?\e$,1Pe\e(B)
+        (?\e$(3$M\e(B . ?\e$,1Pf\e(B)
+        (?\e$(3$O\e(B . ?\e$,1Ph\e(B)
+        (?\e$(3$P\e(B . ?\e$,1Pi\e(B)
+        (?\e$(3$Q\e(B . ?\e$,1Pj\e(B)
+        (?\e$(3$R\e(B . ?\e$,1Pk\e(B)
+        (?\e$(3$S\e(B . ?\e$,1Pl\e(B)
+        (?\e$(3$T\e(B . ?\e$,1Pm\e(B)
+        (?\e$(3$U\e(B . ?\e$,1Pn\e(B)
+        (?\e$(3$V\e(B . ?\e$,1Po\e(B)
+        (?\e$(3$W\e(B . ?\e$,1Pp\e(B)
+        (?\e$(3$X\e(B . ?\e$,1Pq\e(B)
+        (?\e$(3$Y\e(B . ?\e$,1Pr\e(B)
+        (?\e$(3$Z\e(B . ?\e$,1Ps\e(B)
+        (?\e$(3$[\e(B . ?\e$,1Pt\e(B)
+        (?\e$(3$\\e(B . ?\e$,1Pu\e(B)
+        (?\e$(3$]\e(B . ?\e$,1Pv\e(B)
+        (?\e$(3$^\e(B . ?\e$,1Pw\e(B)
+        (?\e$(3$_\e(B . ?\e$,1Px\e(B)
+        (?\e$(3$`\e(B . ?\e$,1Py\e(B)
+        (?\e$(3$a\e(B . ?\e$,1Pz\e(B)
+        (?\e$(3$h\e(B . ?\e$,1Q!\e(B)
+        (?\e$(3$i\e(B . ?\e$,1Q"\e(B)
+        (?\e$(3$j\e(B . ?\e$,1Q#\e(B)
+        (?\e$(3$k\e(B . ?\e$,1Q$\e(B)
+        (?\e$(3$l\e(B . ?\e$,1Q%\e(B)
+        (?\e$(3$m\e(B . ?\e$,1Q&\e(B)
+        (?\e$(3$n\e(B . ?\e$,1Q'\e(B)
+        (?\e$(3$o\e(B . ?\e$,1Q(\e(B)
+        (?\e$(3$p\e(B . ?\e$,1Q)\e(B)
+        (?\e$(3$q\e(B . ?\e$,1Q*\e(B)
+        (?\e$(3$r\e(B . ?\e$,1Q+\e(B)
+        (?\e$(3$s\e(B . ?\e$,1Q,\e(B)
+        (?\e$(3$t\e(B . ?\e$,1Q-\e(B)
+        (?\e$(3$u\e(B . ?\e$,1Q.\e(B)
+        (?\e$(3$v\e(B . ?\e$,1Q/\e(B)
+        (?\e$(3$w\e(B . ?\e$,1Q0\e(B)
+        (?\e$(3$x\e(B . ?\e$,1Q1\e(B)
+        (?\e$(3$y\e(B . ?\e$,1Q2\e(B)
+        (?\e$(3$z\e(B . ?\e$,1Q3\e(B)
+        (?\e$(3${\e(B . ?\e$,1Q4\e(B)
+        (?\e$(3$|\e(B . ?\e$,1Q5\e(B)
+        (?\e$(3$}\e(B . ?\e$,1Q6\e(B)
+        (?\e$(3$~\e(B . ?\e$,1Q7\e(B)
+        (?\e$(3%!\e(B . ?\e$,1Q8\e(B)
+        (?\e$(3%"\e(B . ?\e$,1Q9\e(B)
+        (?\e$(3%#\e(B . ?\e$,1Q:\e(B)
+        (?\e$(3%$\e(B . ?\e$,1Q;\e(B)
+        (?\e$(3%%\e(B . ?\e$,1Q<\e(B)))
+
+      (indian-is13194
+       '((?\e(5!\e(B . ?\e$,15A\e(B)
+        (?\e(5"\e(B . ?\e$,15B\e(B)
+        (?\e(5#\e(B . ?\e$,15C\e(B)
+        (?\e(5$\e(B . ?\e$,15E\e(B)
+        (?\e(5%\e(B . ?\e$,15F\e(B)
+        (?\e(5&\e(B . ?\e$,15G\e(B)
+        (?\e(5'\e(B . ?\e$,15H\e(B)
+        (?\e(5(\e(B . ?\e$,15I\e(B)
+        (?\e(5)\e(B . ?\e$,15J\e(B)
+        (?\e(5*\e(B . ?\e$,15K\e(B)
+        (?\e(5+\e(B . ?\e$,15N\e(B)
+        (?\e(5,\e(B . ?\e$,15O\e(B)
+        (?\e(5-\e(B . ?\e$,15P\e(B)
+        (?\e(5.\e(B . ?\e$,15M\e(B)
+        (?\e(5/\e(B . ?\e$,15R\e(B)
+        (?\e(50\e(B . ?\e$,15S\e(B)
+        (?\e(51\e(B . ?\e$,15T\e(B)
+        (?\e(52\e(B . ?\e$,15M\e(B)
+        (?\e(53\e(B . ?\e$,15U\e(B)
+        (?\e(54\e(B . ?\e$,15V\e(B)
+        (?\e(55\e(B . ?\e$,15W\e(B)
+        (?\e(56\e(B . ?\e$,15X\e(B)
+        (?\e(57\e(B . ?\e$,15Y\e(B)
+        (?\e(58\e(B . ?\e$,15Z\e(B)
+        (?\e(59\e(B . ?\e$,15[\e(B)
+        (?\e(5:\e(B . ?\e$,15\\e(B)
+        (?\e(5;\e(B . ?\e$,15]\e(B)
+        (?\e(5<\e(B . ?\e$,15^\e(B)
+        (?\e(5=\e(B . ?\e$,15_\e(B)
+        (?\e(5>\e(B . ?\e$,15`\e(B)
+        (?\e(5?\e(B . ?\e$,15a\e(B)
+        (?\e(5@\e(B . ?\e$,15b\e(B)
+        (?\e(5A\e(B . ?\e$,15c\e(B)
+        (?\e(5B\e(B . ?\e$,15d\e(B)
+        (?\e(5C\e(B . ?\e$,15e\e(B)
+        (?\e(5D\e(B . ?\e$,15f\e(B)
+        (?\e(5E\e(B . ?\e$,15g\e(B)
+        (?\e(5F\e(B . ?\e$,15h\e(B)
+        (?\e(5G\e(B . ?\e$,15i\e(B)
+        (?\e(5H\e(B . ?\e$,15j\e(B)
+        (?\e(5I\e(B . ?\e$,15k\e(B)
+        (?\e(5J\e(B . ?\e$,15l\e(B)
+        (?\e(5K\e(B . ?\e$,15m\e(B)
+        (?\e(5L\e(B . ?\e$,15n\e(B)
+        (?\e(5M\e(B . ?\e$,15o\e(B)
+        (?\e(5N\e(B . ?\e$,16?\e(B)
+        (?\e(5O\e(B . ?\e$,15p\e(B)
+        (?\e(5P\e(B . ?\e$,15q\e(B)
+        (?\e(5Q\e(B . ?\e$,15r\e(B)
+        (?\e(5R\e(B . ?\e$,15s\e(B)
+        (?\e(5S\e(B . ?\e$,15t\e(B)
+        (?\e(5T\e(B . ?\e$,15u\e(B)
+        (?\e(5U\e(B . ?\e$,15v\e(B)
+        (?\e(5V\e(B . ?\e$,15w\e(B)
+        (?\e(5W\e(B . ?\e$,15x\e(B)
+        (?\e(5X\e(B . ?\e$,15y\e(B)
+        (?\e(5Z\e(B . ?\e$,15~\e(B)
+        (?\e(5[\e(B . ?\e$,15\7f\e(B)
+        (?\e(5\\e(B . ?\e$,16 \e(B)
+        (?\e(5]\e(B . ?\e$,16!\e(B)
+        (?\e(5^\e(B . ?\e$,16"\e(B)
+        (?\e(5_\e(B . ?\e$,16#\e(B)
+        (?\e(5`\e(B . ?\e$,16&\e(B)
+        (?\e(5a\e(B . ?\e$,16'\e(B)
+        (?\e(5b\e(B . ?\e$,16(\e(B)
+        (?\e(5c\e(B . ?\e$,16%\e(B)
+        (?\e(5d\e(B . ?\e$,16*\e(B)
+        (?\e(5e\e(B . ?\e$,16+\e(B)
+        (?\e(5f\e(B . ?\e$,16,\e(B)
+        (?\e(5g\e(B . ?\e$,16)\e(B)
+        (?\e(5h\e(B . ?\e$,16-\e(B)
+        (?\e(5i\e(B . ?\e$,15|\e(B)
+        (?\e(5j\e(B . ?\e$,16D\e(B)
+        (?\e(5q\e(B . ?\e$,16F\e(B)
+        (?\e(5r\e(B . ?\e$,16G\e(B)
+        (?\e(5s\e(B . ?\e$,16H\e(B)
+        (?\e(5t\e(B . ?\e$,16I\e(B)
+        (?\e(5u\e(B . ?\e$,16J\e(B)
+        (?\e(5v\e(B . ?\e$,16K\e(B)
+        (?\e(5w\e(B . ?\e$,16L\e(B)
+        (?\e(5x\e(B . ?\e$,16M\e(B)
+        (?\e(5y\e(B . ?\e$,16N\e(B)
+        (?\e(5z\e(B . ?\e$,16O\e(B)))
+
+      (katakana-jisx0201
+       '((?\e(I!\e(B . ?\e$,3sa\e(B)
+        (?\\e(I"\e(B . ?\\e$,3sb\e(B)
+        (?\\e(I#\e(B . ?\\e$,3sc\e(B)
+        (?\e(I$\e(B . ?\e$,3sd\e(B)
+        (?\e(I%\e(B . ?\e$,3se\e(B)
+        (?\e(I&\e(B . ?\e$,3sf\e(B)
+        (?\e(I'\e(B . ?\e$,3sg\e(B)
+        (?\e(I(\e(B . ?\e$,3sh\e(B)
+        (?\e(I)\e(B . ?\e$,3si\e(B)
+        (?\e(I*\e(B . ?\e$,3sj\e(B)
+        (?\e(I+\e(B . ?\e$,3sk\e(B)
+        (?\e(I,\e(B . ?\e$,3sl\e(B)
+        (?\e(I-\e(B . ?\e$,3sm\e(B)
+        (?\e(I.\e(B . ?\e$,3sn\e(B)
+        (?\e(I/\e(B . ?\e$,3so\e(B)
+        (?\e(I0\e(B . ?\e$,3sp\e(B)
+        (?\e(I1\e(B . ?\e$,3sq\e(B)
+        (?\e(I2\e(B . ?\e$,3sr\e(B)
+        (?\e(I3\e(B . ?\e$,3ss\e(B)
+        (?\e(I4\e(B . ?\e$,3st\e(B)
+        (?\e(I5\e(B . ?\e$,3su\e(B)
+        (?\e(I6\e(B . ?\e$,3sv\e(B)
+        (?\e(I7\e(B . ?\e$,3sw\e(B)
+        (?\e(I8\e(B . ?\e$,3sx\e(B)
+        (?\e(I9\e(B . ?\e$,3sy\e(B)
+        (?\e(I:\e(B . ?\e$,3sz\e(B)
+        (?\e(I;\e(B . ?\e$,3s{\e(B)
+        (?\e(I<\e(B . ?\e$,3s|\e(B)
+        (?\e(I=\e(B . ?\e$,3s}\e(B)
+        (?\e(I>\e(B . ?\e$,3s~\e(B)
+        (?\e(I?\e(B . ?\e$,3s\7f\e(B)
+        (?\e(I@\e(B . ?\e$,3t \e(B)
+        (?\e(IA\e(B . ?\e$,3t!\e(B)
+        (?\e(IB\e(B . ?\e$,3t"\e(B)
+        (?\e(IC\e(B . ?\e$,3t#\e(B)
+        (?\e(ID\e(B . ?\e$,3t$\e(B)
+        (?\e(IE\e(B . ?\e$,3t%\e(B)
+        (?\e(IF\e(B . ?\e$,3t&\e(B)
+        (?\e(IG\e(B . ?\e$,3t'\e(B)
+        (?\e(IH\e(B . ?\e$,3t(\e(B)
+        (?\e(II\e(B . ?\e$,3t)\e(B)
+        (?\e(IJ\e(B . ?\e$,3t*\e(B)
+        (?\e(IK\e(B . ?\e$,3t+\e(B)
+        (?\e(IL\e(B . ?\e$,3t,\e(B)
+        (?\e(IM\e(B . ?\e$,3t-\e(B)
+        (?\e(IN\e(B . ?\e$,3t.\e(B)
+        (?\e(IO\e(B . ?\e$,3t/\e(B)
+        (?\e(IP\e(B . ?\e$,3t0\e(B)
+        (?\e(IQ\e(B . ?\e$,3t1\e(B)
+        (?\e(IR\e(B . ?\e$,3t2\e(B)
+        (?\e(IS\e(B . ?\e$,3t3\e(B)
+        (?\e(IT\e(B . ?\e$,3t4\e(B)
+        (?\e(IU\e(B . ?\e$,3t5\e(B)
+        (?\e(IV\e(B . ?\e$,3t6\e(B)
+        (?\e(IW\e(B . ?\e$,3t7\e(B)
+        (?\e(IX\e(B . ?\e$,3t8\e(B)
+        (?\e(IY\e(B . ?\e$,3t9\e(B)
+        (?\e(IZ\e(B . ?\e$,3t:\e(B)
+        (?\e(I[\e(B . ?\e$,3t;\e(B)
+        (?\e(I\\e(B . ?\e$,3t<\e(B)
+        (?\e(I]\e(B . ?\e$,3t=\e(B)
+        (?\e(I^\e(B . ?\e$,3t>\e(B)
+        (?\e(I_\e(B . ?\e$,3t?\e(B)))
+
+      (chinese-sisheng
+       '((?\e(0!\e(B . ?\e$,1 !\e(B)
+        (?\e(0"\e(B . ?\e,Aa\e(B)
+        (?\e(0#\e(B . ?\e$,1".\e(B)
+        (?\e(0$\e(B . ?\e,A`\e(B)
+        (?\e(0%\e(B . ?\e$,1 3\e(B)
+        (?\e(0&\e(B . ?\e,Ai\e(B)
+        (?\e(0'\e(B . ?\e$,1 ;\e(B)
+        (?\e(0(\e(B . ?\e,Ah\e(B)
+        (?\e(0)\e(B . ?\e$,1 K\e(B)
+        (?\e(0*\e(B . ?\e,Am\e(B)
+        (?\e(0+\e(B . ?\e$,1"0\e(B)
+        (?\e(0,\e(B . ?\e,Al\e(B)
+        (?\e(0-\e(B . ?\e$,1 m\e(B)
+        (?\e(0.\e(B . ?\e,As\e(B)
+        (?\e(0/\e(B . ?\e$,1"2\e(B)
+        (?\e(00\e(B . ?\e,Ar\e(B)
+        (?\e(01\e(B . ?\e$,1!+\e(B)
+        (?\e(02\e(B . ?\e,Az\e(B)
+        (?\e(03\e(B . ?\e$,1"4\e(B)
+        (?\e(04\e(B . ?\e,Ay\e(B)
+        (?\e(05\e(B . ?\e$,1"6\e(B)
+        (?\e(06\e(B . ?\e$,1"8\e(B)
+        (?\e(07\e(B . ?\e$,1":\e(B)
+        (?\e(08\e(B . ?\e$,1"<\e(B)
+        (?\e(09\e(B . ?\e,A|\e(B)
+        (?\e(0:\e(B . ?\e,Aj\e(B)
+        (?\e(0<\e(B . ?\e$,1m\7f\e(B)
+        (?\e(0=\e(B . ?\e$,1 d\e(B)
+        (?\e(0>\e(B . ?\e$,1 h\e(B)
+        (?\e(0?\e(B . ?\e$,1"Y\e(B)
+        (?\e(0A\e(B . ?\e$,1$i\e(B)
+        (?\e(0B\e(B . ?\e$,1$j\e(B)
+        (?\e(0C\e(B . ?\e$,1$g\e(B)
+        (?\e(0D\e(B . ?\e$,1$k\e(B)
+        (?\e(0E\e(B . ?\e$,2@%\e(B)
+        (?\e(0F\e(B . ?\e$,2@&\e(B)
+        (?\e(0G\e(B . ?\e$,2@'\e(B)
+        (?\e(0H\e(B . ?\e$,2@(\e(B)
+        (?\e(0I\e(B . ?\e$,2@)\e(B)
+        (?\e(0J\e(B . ?\e$,2@*\e(B)
+        (?\e(0K\e(B . ?\e$,2@+\e(B)
+        (?\e(0L\e(B . ?\e$,2@,\e(B)
+        (?\e(0M\e(B . ?\e$,2@-\e(B)
+        (?\e(0N\e(B . ?\e$,2@.\e(B)
+        (?\e(0O\e(B . ?\e$,2@/\e(B)
+        (?\e(0P\e(B . ?\e$,2@0\e(B)
+        (?\e(0Q\e(B . ?\e$,2@1\e(B)
+        (?\e(0R\e(B . ?\e$,2@2\e(B)
+        (?\e(0S\e(B . ?\e$,2@3\e(B)
+        (?\e(0T\e(B . ?\e$,2@4\e(B)
+        (?\e(0U\e(B . ?\e$,2@5\e(B)
+        (?\e(0V\e(B . ?\e$,2@6\e(B)
+        (?\e(0W\e(B . ?\e$,2@7\e(B)
+        (?\e(0X\e(B . ?\e$,2@8\e(B)
+        (?\e(0Y\e(B . ?\e$,2@9\e(B)
+        (?\e(0Z\e(B . ?\e$,2@:\e(B)
+        (?\e(0[\e(B . ?\e$,2@;\e(B)
+        (?\e(0\\e(B . ?\e$,2@<\e(B)
+        (?\e(0]\e(B . ?\e$,2@=\e(B)
+        (?\e(0^\e(B . ?\e$,2@>\e(B)
+        (?\e(0_\e(B . ?\e$,2@?\e(B)
+        (?\e(0`\e(B . ?\e$,2@@\e(B)
+        (?\e(0a\e(B . ?\e$,2@A\e(B)
+        (?\e(0b\e(B . ?\e$,2@B\e(B)
+        (?\e(0c\e(B . ?\e$,2@C\e(B)
+        (?\e(0d\e(B . ?\e$,2@D\e(B)
+        (?\e(0e\e(B . ?\e$,2@E\e(B)
+        (?\e(0f\e(B . ?\e$,2@F\e(B)
+        (?\e(0g\e(B . ?\e$,2@G\e(B)
+        (?\e(0h\e(B . ?\e$,2@H\e(B)
+        (?\e(0i\e(B . ?\e$,2@I\e(B)))
+
+      (lao
+       '((?\e(1!\e(B . ?\e$,1D!\e(B)
+        (?\e(1"\e(B . ?\e$,1D"\e(B)
+        (?\e(1$\e(B . ?\e$,1D$\e(B)
+        (?\e(1'\e(B . ?\e$,1D'\e(B)
+        (?\e(1(\e(B . ?\e$,1D(\e(B)
+        (?\e(1*\e(B . ?\e$,1D*\e(B)
+        (?\e(1-\e(B . ?\e$,1D-\e(B)
+        (?\e(14\e(B . ?\e$,1D4\e(B)
+        (?\e(15\e(B . ?\e$,1D5\e(B)
+        (?\e(16\e(B . ?\e$,1D6\e(B)
+        (?\e(17\e(B . ?\e$,1D7\e(B)
+        (?\e(19\e(B . ?\e$,1D9\e(B)
+        (?\e(1:\e(B . ?\e$,1D:\e(B)
+        (?\e(1;\e(B . ?\e$,1D;\e(B)
+        (?\e(1<\e(B . ?\e$,1D<\e(B)
+        (?\e(1=\e(B . ?\e$,1D=\e(B)
+        (?\e(1>\e(B . ?\e$,1D>\e(B)
+        (?\e(1?\e(B . ?\e$,1D?\e(B)
+        (?\e(1A\e(B . ?\e$,1DA\e(B)
+        (?\e(1B\e(B . ?\e$,1DB\e(B)
+        (?\e(1C\e(B . ?\e$,1DC\e(B)
+        (?\e(1E\e(B . ?\e$,1DE\e(B)
+        (?\e(1G\e(B . ?\e$,1DG\e(B)
+        (?\e(1J\e(B . ?\e$,1DJ\e(B)
+        (?\e(1K\e(B . ?\e$,1DK\e(B)
+        (?\e(1M\e(B . ?\e$,1DM\e(B)
+        (?\e(1N\e(B . ?\e$,1DN\e(B)
+        (?\e(1O\e(B . ?\e$,1DO\e(B)
+        (?\e(1P\e(B . ?\e$,1DP\e(B)
+        (?\e(1Q\e(B . ?\e$,1DQ\e(B)
+        (?\e(1R\e(B . ?\e$,1DR\e(B)
+        (?\e(1S\e(B . ?\e$,1DS\e(B)
+        (?\e(1T\e(B . ?\e$,1DT\e(B)
+        (?\e(1U\e(B . ?\e$,1DU\e(B)
+        (?\e(1V\e(B . ?\e$,1DV\e(B)
+        (?\e(1W\e(B . ?\e$,1DW\e(B)
+        (?\e(1X\e(B . ?\e$,1DX\e(B)
+        (?\e(1Y\e(B . ?\e$,1DY\e(B)
+        (?\e(1[\e(B . ?\e$,1D[\e(B)
+        (?\e(1\\e(B . ?\e$,1D\\e(B)
+        (?\e(1]\e(B . ?\e$,1D]\e(B)
+        (?\e(1`\e(B . ?\e$,1D`\e(B)
+        (?\e(1a\e(B . ?\e$,1Da\e(B)
+        (?\e(1b\e(B . ?\e$,1Db\e(B)
+        (?\e(1c\e(B . ?\e$,1Dc\e(B)
+        (?\e(1d\e(B . ?\e$,1Dd\e(B)
+        (?\e(1f\e(B . ?\e$,1Df\e(B)
+        (?\e(1h\e(B . ?\e$,1Dh\e(B)
+        (?\e(1i\e(B . ?\e$,1Di\e(B)
+        (?\e(1j\e(B . ?\e$,1Dj\e(B)
+        (?\e(1k\e(B . ?\e$,1Dk\e(B)
+        (?\e(1l\e(B . ?\e$,1Dl\e(B)
+        (?\e(1m\e(B . ?\e$,1Dm\e(B)
+        (?\e(1p\e(B . ?\e$,1Dp\e(B)
+        (?\e(1q\e(B . ?\e$,1Dq\e(B)
+        (?\e(1r\e(B . ?\e$,1Dr\e(B)
+        (?\e(1s\e(B . ?\e$,1Ds\e(B)
+        (?\e(1t\e(B . ?\e$,1Dt\e(B)
+        (?\e(1u\e(B . ?\e$,1Du\e(B)
+        (?\e(1v\e(B . ?\e$,1Dv\e(B)
+        (?\e(1w\e(B . ?\e$,1Dw\e(B)
+        (?\e(1x\e(B . ?\e$,1Dx\e(B)
+        (?\e(1y\e(B . ?\e$,1Dy\e(B)
+        (?\e(1|\e(B . ?\e$,1D|\e(B)
+        (?\e(1}\e(B . ?\e$,1D}\e(B))))
+  (let ((table (make-char-table 'safe-chars))
+       safe-charsets)
+    (dolist (cs '(vietnamese-viscii lao chinese-sisheng ipa
+                 katakana-jisx0201 thai-tis620 tibetan-iso-8bit
+                 indian-is13194 ethiopic))
+      ;; These tables could be used as translation-table-for-encode by
+      ;; the relevant coding systems.
+      (let ((encode-translator
+            (if (coding-system-p cs)
+                (set (intern (format "ucs-%s-encode-table" cs))
+                     (make-translation-table)))))
+       (dolist (pair (symbol-value cs))
+         (aset ucs-mule-to-mule-unicode (car pair) (cdr pair))
+         (if encode-translator
+             (aset encode-translator (cdr pair) (car pair))))
+       (if (charsetp cs)
+           (push cs safe-charsets)
+         (setq safe-charsets
+               (append (delq 'ascii (coding-system-get cs 'safe-charsets))
+                       safe-charsets)))))
+    (dolist (c safe-charsets)
+      (aset table (make-char c) t))
+    (coding-system-put 'mule-utf-8 'safe-charsets
+                      (append (coding-system-get 'mule-utf-8 'safe-charsets)
+                              safe-charsets))
+    (register-char-codings 'mule-utf-8 table)))
+
+(provide 'ucs-tables)
+
+;;; ucs-tables.el ends here