;;; ucs-tables.el --- translation to, from and via Unicode -*- coding: iso-2022-7bit -*- ;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. ;; Author: Dave Love ;; Keywords: i18n ;; This file is part of GNU Emacs. ;; GNU Emacs 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. ;; GNU Emacs 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 iso-8859 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. ;; These could be extended to non-iso-8859 charsets. However 8859 is ;; all that users normally care about unifying although, for instance, ;; Greek occurs in as many as nine Emacs charsets. ;; The translation table `ucs-mule-to-mule-unicode' is populated, ;; which could be used for more general unification on decoding. This ;; is used by the `mule-utf-8' coding system to encode extra ;; characters, and also by the coding systems set up by code-pages.el. ;; The decoding tables here take account of ;; `utf-8-fragment-on-decoding' which may specify decoding Greek and ;; Cyrillic into 8859 charsets. ;; Unification also puts a `translation-table-for-input' property on ;; relevant coding coding systems and arranges for the ;; `translation-table-for-input' variable to be set either globally or ;; locally. This is used by Quail input methods to translate input ;; characters appropriately for the buffer's coding system (if ;; possible). Unification on decoding sets it globally to translate ;; to Unicode. Unification on encoding uses hooks to set it up ;; locally to buffers. Thus in the latter case, typing `"a' into a ;; Latin-1 buffer using the `latin-2-prefix' method translates the ;; generated latin-iso8859-2 `,Bd(B' into latin-iso8859-1 `,Ad(B'. ;; NB, this code depends on the default value of ;; `enable-character-translation'. (Making it nil would anyway lead ;; to inconsistent behaviour between CCL-based coding systems which ;; use explicit translation tables and the rest.) ;; Command `ucs-insert' is convenient for inserting a given Unicode. ;; (See also the `ucs' input method.) ;; A replacement CCL program is provided which allows characters in ;; the `ucs-mule-to-mule-unicode' table to be displayed with an ;; iso-10646-encoded font. E.g. to use a `Unicode' font for Cyrillic: ;; ;; (set-fontset-font "fontset-startup" ;; (cons (make-char 'cyrillic-iso8859-5 160) ;; (make-char 'cyrillic-iso8859-5 255)) ;; '(nil . "ISO10646-1")) ;;; 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)) (defvar utf-8-translation-table-for-decode (make-translation-table)) (unless (get 'utf-8-translation-table-for-decode 'translation-table) (define-translation-table 'utf-8-translation-table-for-decode utf-8-translation-table-for-decode)) (defvar utf-8-fragment-on-decoding nil) ;;; 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 '((?\,B (B . ?\x00A0) ;; NO-BREAK SPACE (?\,B!(B . ?\x0104) ;; LATIN CAPITAL LETTER A WITH OGONEK (?\,B"(B . ?\x02D8) ;; BREVE (?\,B#(B . ?\x0141) ;; LATIN CAPITAL LETTER L WITH STROKE (?\,B$(B . ?\x00A4) ;; CURRENCY SIGN (?\,B%(B . ?\x013D) ;; LATIN CAPITAL LETTER L WITH CARON (?\,B&(B . ?\x015A) ;; LATIN CAPITAL LETTER S WITH ACUTE (?\,B'(B . ?\x00A7) ;; SECTION SIGN (?\,B((B . ?\x00A8) ;; DIAERESIS (?\,B)(B . ?\x0160) ;; LATIN CAPITAL LETTER S WITH CARON (?\,B*(B . ?\x015E) ;; LATIN CAPITAL LETTER S WITH CEDILLA (?\,B+(B . ?\x0164) ;; LATIN CAPITAL LETTER T WITH CARON (?\,B,(B . ?\x0179) ;; LATIN CAPITAL LETTER Z WITH ACUTE (?\,B-(B . ?\x00AD) ;; SOFT HYPHEN (?\,B.(B . ?\x017D) ;; LATIN CAPITAL LETTER Z WITH CARON (?\,B/(B . ?\x017B) ;; LATIN CAPITAL LETTER Z WITH DOT ABOVE (?\,B0(B . ?\x00B0) ;; DEGREE SIGN (?\,B1(B . ?\x0105) ;; LATIN SMALL LETTER A WITH OGONEK (?\,B2(B . ?\x02DB) ;; OGONEK (?\,B3(B . ?\x0142) ;; LATIN SMALL LETTER L WITH STROKE (?\,B4(B . ?\x00B4) ;; ACUTE ACCENT (?\,B5(B . ?\x013E) ;; LATIN SMALL LETTER L WITH CARON (?\,B6(B . ?\x015B) ;; LATIN SMALL LETTER S WITH ACUTE (?\,B7(B . ?\x02C7) ;; CARON (?\,B8(B . ?\x00B8) ;; CEDILLA (?\,B9(B . ?\x0161) ;; LATIN SMALL LETTER S WITH CARON (?\,B:(B . ?\x015F) ;; LATIN SMALL LETTER S WITH CEDILLA (?\,B;(B . ?\x0165) ;; LATIN SMALL LETTER T WITH CARON (?\,B<(B . ?\x017A) ;; LATIN SMALL LETTER Z WITH ACUTE (?\,B=(B . ?\x02DD) ;; DOUBLE ACUTE ACCENT (?\,B>(B . ?\x017E) ;; LATIN SMALL LETTER Z WITH CARON (?\,B?(B . ?\x017C) ;; LATIN SMALL LETTER Z WITH DOT ABOVE (?\,B@(B . ?\x0154) ;; LATIN CAPITAL LETTER R WITH ACUTE (?\,BA(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE (?\,BB(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX (?\,BC(B . ?\x0102) ;; LATIN CAPITAL LETTER A WITH BREVE (?\,BD(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS (?\,BE(B . ?\x0139) ;; LATIN CAPITAL LETTER L WITH ACUTE (?\,BF(B . ?\x0106) ;; LATIN CAPITAL LETTER C WITH ACUTE (?\,BG(B . ?\x00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA (?\,BH(B . ?\x010C) ;; LATIN CAPITAL LETTER C WITH CARON (?\,BI(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE (?\,BJ(B . ?\x0118) ;; LATIN CAPITAL LETTER E WITH OGONEK (?\,BK(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS (?\,BL(B . ?\x011A) ;; LATIN CAPITAL LETTER E WITH CARON (?\,BM(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE (?\,BN(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX (?\,BO(B . ?\x010E) ;; LATIN CAPITAL LETTER D WITH CARON (?\,BP(B . ?\x0110) ;; LATIN CAPITAL LETTER D WITH STROKE (?\,BQ(B . ?\x0143) ;; LATIN CAPITAL LETTER N WITH ACUTE (?\,BR(B . ?\x0147) ;; LATIN CAPITAL LETTER N WITH CARON (?\,BS(B . ?\x00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE (?\,BT(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX (?\,BU(B . ?\x0150) ;; LATIN CAPITAL LETTER O WITH DOUBLE ACUTE (?\,BV(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS (?\,BW(B . ?\x00D7) ;; MULTIPLICATION SIGN (?\,BX(B . ?\x0158) ;; LATIN CAPITAL LETTER R WITH CARON (?\,BY(B . ?\x016E) ;; LATIN CAPITAL LETTER U WITH RING ABOVE (?\,BZ(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE (?\,B[(B . ?\x0170) ;; LATIN CAPITAL LETTER U WITH DOUBLE ACUTE (?\,B\(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS (?\,B](B . ?\x00DD) ;; LATIN CAPITAL LETTER Y WITH ACUTE (?\,B^(B . ?\x0162) ;; LATIN CAPITAL LETTER T WITH CEDILLA (?\,B_(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S (?\,B`(B . ?\x0155) ;; LATIN SMALL LETTER R WITH ACUTE (?\,Ba(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE (?\,Bb(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX (?\,Bc(B . ?\x0103) ;; LATIN SMALL LETTER A WITH BREVE (?\,Bd(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS (?\,Be(B . ?\x013A) ;; LATIN SMALL LETTER L WITH ACUTE (?\,Bf(B . ?\x0107) ;; LATIN SMALL LETTER C WITH ACUTE (?\,Bg(B . ?\x00E7) ;; LATIN SMALL LETTER C WITH CEDILLA (?\,Bh(B . ?\x010D) ;; LATIN SMALL LETTER C WITH CARON (?\,Bi(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE (?\,Bj(B . ?\x0119) ;; LATIN SMALL LETTER E WITH OGONEK (?\,Bk(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS (?\,Bl(B . ?\x011B) ;; LATIN SMALL LETTER E WITH CARON (?\,Bm(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE (?\,Bn(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX (?\,Bo(B . ?\x010F) ;; LATIN SMALL LETTER D WITH CARON (?\,Bp(B . ?\x0111) ;; LATIN SMALL LETTER D WITH STROKE (?\,Bq(B . ?\x0144) ;; LATIN SMALL LETTER N WITH ACUTE (?\,Br(B . ?\x0148) ;; LATIN SMALL LETTER N WITH CARON (?\,Bs(B . ?\x00F3) ;; LATIN SMALL LETTER O WITH ACUTE (?\,Bt(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX (?\,Bu(B . ?\x0151) ;; LATIN SMALL LETTER O WITH DOUBLE ACUTE (?\,Bv(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS (?\,Bw(B . ?\x00F7) ;; DIVISION SIGN (?\,Bx(B . ?\x0159) ;; LATIN SMALL LETTER R WITH CARON (?\,By(B . ?\x016F) ;; LATIN SMALL LETTER U WITH RING ABOVE (?\,Bz(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE (?\,B{(B . ?\x0171) ;; LATIN SMALL LETTER U WITH DOUBLE ACUTE (?\,B|(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS (?\,B}(B . ?\x00FD) ;; LATIN SMALL LETTER Y WITH ACUTE (?\,B~(B . ?\x0163) ;; LATIN SMALL LETTER T WITH CEDILLA (?\,B(B . ?\x02D9) ;; DOT ABOVE )) (ucs-8859-3-alist '((?\,C (B . ?\x00A0) ;; NO-BREAK SPACE (?\,C!(B . ?\x0126) ;; LATIN CAPITAL LETTER H WITH STROKE (?\,C"(B . ?\x02D8) ;; BREVE (?\,C#(B . ?\x00A3) ;; POUND SIGN (?\,C$(B . ?\x00A4) ;; CURRENCY SIGN (?\,C&(B . ?\x0124) ;; LATIN CAPITAL LETTER H WITH CIRCUMFLEX (?\,C'(B . ?\x00A7) ;; SECTION SIGN (?\,C((B . ?\x00A8) ;; DIAERESIS (?\,C)(B . ?\x0130) ;; LATIN CAPITAL LETTER I WITH DOT ABOVE (?\,C*(B . ?\x015E) ;; LATIN CAPITAL LETTER S WITH CEDILLA (?\,C+(B . ?\x011E) ;; LATIN CAPITAL LETTER G WITH BREVE (?\,C,(B . ?\x0134) ;; LATIN CAPITAL LETTER J WITH CIRCUMFLEX (?\,C-(B . ?\x00AD) ;; SOFT HYPHEN (?\,C/(B . ?\x017B) ;; LATIN CAPITAL LETTER Z WITH DOT ABOVE (?\,C0(B . ?\x00B0) ;; DEGREE SIGN (?\,C1(B . ?\x0127) ;; LATIN SMALL LETTER H WITH STROKE (?\,C2(B . ?\x00B2) ;; SUPERSCRIPT TWO (?\,C3(B . ?\x00B3) ;; SUPERSCRIPT THREE (?\,C4(B . ?\x00B4) ;; ACUTE ACCENT (?\,C5(B . ?\x00B5) ;; MICRO SIGN (?\,C6(B . ?\x0125) ;; LATIN SMALL LETTER H WITH CIRCUMFLEX (?\,C7(B . ?\x00B7) ;; MIDDLE DOT (?\,C8(B . ?\x00B8) ;; CEDILLA (?\,C9(B . ?\x0131) ;; LATIN SMALL LETTER DOTLESS I (?\,C:(B . ?\x015F) ;; LATIN SMALL LETTER S WITH CEDILLA (?\,C;(B . ?\x011F) ;; LATIN SMALL LETTER G WITH BREVE (?\,C<(B . ?\x0135) ;; LATIN SMALL LETTER J WITH CIRCUMFLEX (?\,C=(B . ?\x00BD) ;; VULGAR FRACTION ONE HALF (?\,C?(B . ?\x017C) ;; LATIN SMALL LETTER Z WITH DOT ABOVE (?\,C@(B . ?\x00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE (?\,CA(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE (?\,CB(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX (?\,CD(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS (?\,CE(B . ?\x010A) ;; LATIN CAPITAL LETTER C WITH DOT ABOVE (?\,CF(B . ?\x0108) ;; LATIN CAPITAL LETTER C WITH CIRCUMFLEX (?\,CG(B . ?\x00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA (?\,CH(B . ?\x00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE (?\,CI(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE (?\,CJ(B . ?\x00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX (?\,CK(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS (?\,CL(B . ?\x00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE (?\,CM(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE (?\,CN(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX (?\,CO(B . ?\x00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS (?\,CQ(B . ?\x00D1) ;; LATIN CAPITAL LETTER N WITH TILDE (?\,CR(B . ?\x00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE (?\,CS(B . ?\x00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE (?\,CT(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX (?\,CU(B . ?\x0120) ;; LATIN CAPITAL LETTER G WITH DOT ABOVE (?\,CV(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS (?\,CW(B . ?\x00D7) ;; MULTIPLICATION SIGN (?\,CX(B . ?\x011C) ;; LATIN CAPITAL LETTER G WITH CIRCUMFLEX (?\,CY(B . ?\x00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE (?\,CZ(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE (?\,C[(B . ?\x00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX (?\,C\(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS (?\,C](B . ?\x016C) ;; LATIN CAPITAL LETTER U WITH BREVE (?\,C^(B . ?\x015C) ;; LATIN CAPITAL LETTER S WITH CIRCUMFLEX (?\,C_(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S (?\,C`(B . ?\x00E0) ;; LATIN SMALL LETTER A WITH GRAVE (?\,Ca(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE (?\,Cb(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX (?\,Cd(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS (?\,Ce(B . ?\x010B) ;; LATIN SMALL LETTER C WITH DOT ABOVE (?\,Cf(B . ?\x0109) ;; LATIN SMALL LETTER C WITH CIRCUMFLEX (?\,Cg(B . ?\x00E7) ;; LATIN SMALL LETTER C WITH CEDILLA (?\,Ch(B . ?\x00E8) ;; LATIN SMALL LETTER E WITH GRAVE (?\,Ci(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE (?\,Cj(B . ?\x00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX (?\,Ck(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS (?\,Cl(B . ?\x00EC) ;; LATIN SMALL LETTER I WITH GRAVE (?\,Cm(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE (?\,Cn(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX (?\,Co(B . ?\x00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS (?\,Cq(B . ?\x00F1) ;; LATIN SMALL LETTER N WITH TILDE (?\,Cr(B . ?\x00F2) ;; LATIN SMALL LETTER O WITH GRAVE (?\,Cs(B . ?\x00F3) ;; LATIN SMALL LETTER O WITH ACUTE (?\,Ct(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX (?\,Cu(B . ?\x0121) ;; LATIN SMALL LETTER G WITH DOT ABOVE (?\,Cv(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS (?\,Cw(B . ?\x00F7) ;; DIVISION SIGN (?\,Cx(B . ?\x011D) ;; LATIN SMALL LETTER G WITH CIRCUMFLEX (?\,Cy(B . ?\x00F9) ;; LATIN SMALL LETTER U WITH GRAVE (?\,Cz(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE (?\,C{(B . ?\x00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX (?\,C|(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS (?\,C}(B . ?\x016D) ;; LATIN SMALL LETTER U WITH BREVE (?\,C~(B . ?\x015D) ;; LATIN SMALL LETTER S WITH CIRCUMFLEX (?\,C(B . ?\x02D9) ;; DOT ABOVE )) (ucs-8859-4-alist '((?\,D (B . ?\x00A0) ;; NO-BREAK SPACE (?\,D!(B . ?\x0104) ;; LATIN CAPITAL LETTER A WITH OGONEK (?\,D"(B . ?\x0138) ;; LATIN SMALL LETTER KRA (?\,D#(B . ?\x0156) ;; LATIN CAPITAL LETTER R WITH CEDILLA (?\,D$(B . ?\x00A4) ;; CURRENCY SIGN (?\,D%(B . ?\x0128) ;; LATIN CAPITAL LETTER I WITH TILDE (?\,D&(B . ?\x013B) ;; LATIN CAPITAL LETTER L WITH CEDILLA (?\,D'(B . ?\x00A7) ;; SECTION SIGN (?\,D((B . ?\x00A8) ;; DIAERESIS (?\,D)(B . ?\x0160) ;; LATIN CAPITAL LETTER S WITH CARON (?\,D*(B . ?\x0112) ;; LATIN CAPITAL LETTER E WITH MACRON (?\,D+(B . ?\x0122) ;; LATIN CAPITAL LETTER G WITH CEDILLA (?\,D,(B . ?\x0166) ;; LATIN CAPITAL LETTER T WITH STROKE (?\,D-(B . ?\x00AD) ;; SOFT HYPHEN (?\,D.(B . ?\x017D) ;; LATIN CAPITAL LETTER Z WITH CARON (?\,D/(B . ?\x00AF) ;; MACRON (?\,D0(B . ?\x00B0) ;; DEGREE SIGN (?\,D1(B . ?\x0105) ;; LATIN SMALL LETTER A WITH OGONEK (?\,D2(B . ?\x02DB) ;; OGONEK (?\,D3(B . ?\x0157) ;; LATIN SMALL LETTER R WITH CEDILLA (?\,D4(B . ?\x00B4) ;; ACUTE ACCENT (?\,D5(B . ?\x0129) ;; LATIN SMALL LETTER I WITH TILDE (?\,D6(B . ?\x013C) ;; LATIN SMALL LETTER L WITH CEDILLA (?\,D7(B . ?\x02C7) ;; CARON (?\,D8(B . ?\x00B8) ;; CEDILLA (?\,D9(B . ?\x0161) ;; LATIN SMALL LETTER S WITH CARON (?\,D:(B . ?\x0113) ;; LATIN SMALL LETTER E WITH MACRON (?\,D;(B . ?\x0123) ;; LATIN SMALL LETTER G WITH CEDILLA (?\,D<(B . ?\x0167) ;; LATIN SMALL LETTER T WITH STROKE (?\,D=(B . ?\x014A) ;; LATIN CAPITAL LETTER ENG (?\,D>(B . ?\x017E) ;; LATIN SMALL LETTER Z WITH CARON (?\,D?(B . ?\x014B) ;; LATIN SMALL LETTER ENG (?\,D@(B . ?\x0100) ;; LATIN CAPITAL LETTER A WITH MACRON (?\,DA(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE (?\,DB(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX (?\,DC(B . ?\x00C3) ;; LATIN CAPITAL LETTER A WITH TILDE (?\,DD(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS (?\,DE(B . ?\x00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE (?\,DF(B . ?\x00C6) ;; LATIN CAPITAL LETTER AE (?\,DG(B . ?\x012E) ;; LATIN CAPITAL LETTER I WITH OGONEK (?\,DH(B . ?\x010C) ;; LATIN CAPITAL LETTER C WITH CARON (?\,DI(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE (?\,DJ(B . ?\x0118) ;; LATIN CAPITAL LETTER E WITH OGONEK (?\,DK(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS (?\,DL(B . ?\x0116) ;; LATIN CAPITAL LETTER E WITH DOT ABOVE (?\,DM(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE (?\,DN(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX (?\,DO(B . ?\x012A) ;; LATIN CAPITAL LETTER I WITH MACRON (?\,DP(B . ?\x0110) ;; LATIN CAPITAL LETTER D WITH STROKE (?\,DQ(B . ?\x0145) ;; LATIN CAPITAL LETTER N WITH CEDILLA (?\,DR(B . ?\x014C) ;; LATIN CAPITAL LETTER O WITH MACRON (?\,DS(B . ?\x0136) ;; LATIN CAPITAL LETTER K WITH CEDILLA (?\,DT(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX (?\,DU(B . ?\x00D5) ;; LATIN CAPITAL LETTER O WITH TILDE (?\,DV(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS (?\,DW(B . ?\x00D7) ;; MULTIPLICATION SIGN (?\,DX(B . ?\x00D8) ;; LATIN CAPITAL LETTER O WITH STROKE (?\,DY(B . ?\x0172) ;; LATIN CAPITAL LETTER U WITH OGONEK (?\,DZ(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE (?\,D[(B . ?\x00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX (?\,D\(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS (?\,D](B . ?\x0168) ;; LATIN CAPITAL LETTER U WITH TILDE (?\,D^(B . ?\x016A) ;; LATIN CAPITAL LETTER U WITH MACRON (?\,D_(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S (?\,D`(B . ?\x0101) ;; LATIN SMALL LETTER A WITH MACRON (?\,Da(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE (?\,Db(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX (?\,Dc(B . ?\x00E3) ;; LATIN SMALL LETTER A WITH TILDE (?\,Dd(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS (?\,De(B . ?\x00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE (?\,Df(B . ?\x00E6) ;; LATIN SMALL LETTER AE (?\,Dg(B . ?\x012F) ;; LATIN SMALL LETTER I WITH OGONEK (?\,Dh(B . ?\x010D) ;; LATIN SMALL LETTER C WITH CARON (?\,Di(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE (?\,Dj(B . ?\x0119) ;; LATIN SMALL LETTER E WITH OGONEK (?\,Dk(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS (?\,Dl(B . ?\x0117) ;; LATIN SMALL LETTER E WITH DOT ABOVE (?\,Dm(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE (?\,Dn(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX (?\,Do(B . ?\x012B) ;; LATIN SMALL LETTER I WITH MACRON (?\,Dp(B . ?\x0111) ;; LATIN SMALL LETTER D WITH STROKE (?\,Dq(B . ?\x0146) ;; LATIN SMALL LETTER N WITH CEDILLA (?\,Dr(B . ?\x014D) ;; LATIN SMALL LETTER O WITH MACRON (?\,Ds(B . ?\x0137) ;; LATIN SMALL LETTER K WITH CEDILLA (?\,Dt(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX (?\,Du(B . ?\x00F5) ;; LATIN SMALL LETTER O WITH TILDE (?\,Dv(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS (?\,Dw(B . ?\x00F7) ;; DIVISION SIGN (?\,Dx(B . ?\x00F8) ;; LATIN SMALL LETTER O WITH STROKE (?\,Dy(B . ?\x0173) ;; LATIN SMALL LETTER U WITH OGONEK (?\,Dz(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE (?\,D{(B . ?\x00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX (?\,D|(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS (?\,D}(B . ?\x0169) ;; LATIN SMALL LETTER U WITH TILDE (?\,D~(B . ?\x016B) ;; LATIN SMALL LETTER U WITH MACRON (?\,D(B . ?\x02D9) ;; DOT ABOVE )) (ucs-8859-5-alist '((?\,L (B . ?\x00A0) ;; NO-BREAK SPACE (?\,L!(B . ?\x0401) ;; CYRILLIC CAPITAL LETTER IO (?\,L"(B . ?\x0402) ;; CYRILLIC CAPITAL LETTER DJE (?\,L#(B . ?\x0403) ;; CYRILLIC CAPITAL LETTER GJE (?\,L$(B . ?\x0404) ;; CYRILLIC CAPITAL LETTER UKRAINIAN IE (?\,L%(B . ?\x0405) ;; CYRILLIC CAPITAL LETTER DZE (?\,L&(B . ?\x0406) ;; CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I (?\,L'(B . ?\x0407) ;; CYRILLIC CAPITAL LETTER YI (?\,L((B . ?\x0408) ;; CYRILLIC CAPITAL LETTER JE (?\,L)(B . ?\x0409) ;; CYRILLIC CAPITAL LETTER LJE (?\,L*(B . ?\x040A) ;; CYRILLIC CAPITAL LETTER NJE (?\,L+(B . ?\x040B) ;; CYRILLIC CAPITAL LETTER TSHE (?\,L,(B . ?\x040C) ;; CYRILLIC CAPITAL LETTER KJE (?\,L-(B . ?\x00AD) ;; SOFT HYPHEN (?\,L.(B . ?\x040E) ;; CYRILLIC CAPITAL LETTER SHORT U (?\,L/(B . ?\x040F) ;; CYRILLIC CAPITAL LETTER DZHE (?\,L0(B . ?\x0410) ;; CYRILLIC CAPITAL LETTER A (?\,L1(B . ?\x0411) ;; CYRILLIC CAPITAL LETTER BE (?\,L2(B . ?\x0412) ;; CYRILLIC CAPITAL LETTER VE (?\,L3(B . ?\x0413) ;; CYRILLIC CAPITAL LETTER GHE (?\,L4(B . ?\x0414) ;; CYRILLIC CAPITAL LETTER DE (?\,L5(B . ?\x0415) ;; CYRILLIC CAPITAL LETTER IE (?\,L6(B . ?\x0416) ;; CYRILLIC CAPITAL LETTER ZHE (?\,L7(B . ?\x0417) ;; CYRILLIC CAPITAL LETTER ZE (?\,L8(B . ?\x0418) ;; CYRILLIC CAPITAL LETTER I (?\,L9(B . ?\x0419) ;; CYRILLIC CAPITAL LETTER SHORT I (?\,L:(B . ?\x041A) ;; CYRILLIC CAPITAL LETTER KA (?\,L;(B . ?\x041B) ;; CYRILLIC CAPITAL LETTER EL (?\,L<(B . ?\x041C) ;; CYRILLIC CAPITAL LETTER EM (?\,L=(B . ?\x041D) ;; CYRILLIC CAPITAL LETTER EN (?\,L>(B . ?\x041E) ;; CYRILLIC CAPITAL LETTER O (?\,L?(B . ?\x041F) ;; CYRILLIC CAPITAL LETTER PE (?\,L@(B . ?\x0420) ;; CYRILLIC CAPITAL LETTER ER (?\,LA(B . ?\x0421) ;; CYRILLIC CAPITAL LETTER ES (?\,LB(B . ?\x0422) ;; CYRILLIC CAPITAL LETTER TE (?\,LC(B . ?\x0423) ;; CYRILLIC CAPITAL LETTER U (?\,LD(B . ?\x0424) ;; CYRILLIC CAPITAL LETTER EF (?\,LE(B . ?\x0425) ;; CYRILLIC CAPITAL LETTER HA (?\,LF(B . ?\x0426) ;; CYRILLIC CAPITAL LETTER TSE (?\,LG(B . ?\x0427) ;; CYRILLIC CAPITAL LETTER CHE (?\,LH(B . ?\x0428) ;; CYRILLIC CAPITAL LETTER SHA (?\,LI(B . ?\x0429) ;; CYRILLIC CAPITAL LETTER SHCHA (?\,LJ(B . ?\x042A) ;; CYRILLIC CAPITAL LETTER HARD SIGN (?\,LK(B . ?\x042B) ;; CYRILLIC CAPITAL LETTER YERU (?\,LL(B . ?\x042C) ;; CYRILLIC CAPITAL LETTER SOFT SIGN (?\,LM(B . ?\x042D) ;; CYRILLIC CAPITAL LETTER E (?\,LN(B . ?\x042E) ;; CYRILLIC CAPITAL LETTER YU (?\,LO(B . ?\x042F) ;; CYRILLIC CAPITAL LETTER YA (?\,LP(B . ?\x0430) ;; CYRILLIC SMALL LETTER A (?\,LQ(B . ?\x0431) ;; CYRILLIC SMALL LETTER BE (?\,LR(B . ?\x0432) ;; CYRILLIC SMALL LETTER VE (?\,LS(B . ?\x0433) ;; CYRILLIC SMALL LETTER GHE (?\,LT(B . ?\x0434) ;; CYRILLIC SMALL LETTER DE (?\,LU(B . ?\x0435) ;; CYRILLIC SMALL LETTER IE (?\,LV(B . ?\x0436) ;; CYRILLIC SMALL LETTER ZHE (?\,LW(B . ?\x0437) ;; CYRILLIC SMALL LETTER ZE (?\,LX(B . ?\x0438) ;; CYRILLIC SMALL LETTER I (?\,LY(B . ?\x0439) ;; CYRILLIC SMALL LETTER SHORT I (?\,LZ(B . ?\x043A) ;; CYRILLIC SMALL LETTER KA (?\,L[(B . ?\x043B) ;; CYRILLIC SMALL LETTER EL (?\,L\(B . ?\x043C) ;; CYRILLIC SMALL LETTER EM (?\,L](B . ?\x043D) ;; CYRILLIC SMALL LETTER EN (?\,L^(B . ?\x043E) ;; CYRILLIC SMALL LETTER O (?\,L_(B . ?\x043F) ;; CYRILLIC SMALL LETTER PE (?\,L`(B . ?\x0440) ;; CYRILLIC SMALL LETTER ER (?\,La(B . ?\x0441) ;; CYRILLIC SMALL LETTER ES (?\,Lb(B . ?\x0442) ;; CYRILLIC SMALL LETTER TE (?\,Lc(B . ?\x0443) ;; CYRILLIC SMALL LETTER U (?\,Ld(B . ?\x0444) ;; CYRILLIC SMALL LETTER EF (?\,Le(B . ?\x0445) ;; CYRILLIC SMALL LETTER HA (?\,Lf(B . ?\x0446) ;; CYRILLIC SMALL LETTER TSE (?\,Lg(B . ?\x0447) ;; CYRILLIC SMALL LETTER CHE (?\,Lh(B . ?\x0448) ;; CYRILLIC SMALL LETTER SHA (?\,Li(B . ?\x0449) ;; CYRILLIC SMALL LETTER SHCHA (?\,Lj(B . ?\x044A) ;; CYRILLIC SMALL LETTER HARD SIGN (?\,Lk(B . ?\x044B) ;; CYRILLIC SMALL LETTER YERU (?\,Ll(B . ?\x044C) ;; CYRILLIC SMALL LETTER SOFT SIGN (?\,Lm(B . ?\x044D) ;; CYRILLIC SMALL LETTER E (?\,Ln(B . ?\x044E) ;; CYRILLIC SMALL LETTER YU (?\,Lo(B . ?\x044F) ;; CYRILLIC SMALL LETTER YA (?\,Lp(B . ?\x2116) ;; NUMERO SIGN (?\,Lq(B . ?\x0451) ;; CYRILLIC SMALL LETTER IO (?\,Lr(B . ?\x0452) ;; CYRILLIC SMALL LETTER DJE (?\,Ls(B . ?\x0453) ;; CYRILLIC SMALL LETTER GJE (?\,Lt(B . ?\x0454) ;; CYRILLIC SMALL LETTER UKRAINIAN IE (?\,Lu(B . ?\x0455) ;; CYRILLIC SMALL LETTER DZE (?\,Lv(B . ?\x0456) ;; CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I (?\,Lw(B . ?\x0457) ;; CYRILLIC SMALL LETTER YI (?\,Lx(B . ?\x0458) ;; CYRILLIC SMALL LETTER JE (?\,Ly(B . ?\x0459) ;; CYRILLIC SMALL LETTER LJE (?\,Lz(B . ?\x045A) ;; CYRILLIC SMALL LETTER NJE (?\,L{(B . ?\x045B) ;; CYRILLIC SMALL LETTER TSHE (?\,L|(B . ?\x045C) ;; CYRILLIC SMALL LETTER KJE (?\,L}(B . ?\x00A7) ;; SECTION SIGN (?\,L~(B . ?\x045E) ;; CYRILLIC SMALL LETTER SHORT U (?\,L(B . ?\x045F) ;; CYRILLIC SMALL LETTER DZHE )) ;; Arabic probably isn't so useful in the absence of Arabic ;; language support. (ucs-8859-6-alist '((?,G (B . ?\x00A0) ;; NO-BREAK SPACE (?,G$(B . ?\x00A4) ;; CURRENCY SIGN (?,G,(B . ?\x060C) ;; ARABIC COMMA (?,G-(B . ?\x00AD) ;; SOFT HYPHEN (?,G;(B . ?\x061B) ;; ARABIC SEMICOLON (?,G?(B . ?\x061F) ;; ARABIC QUESTION MARK (?,GA(B . ?\x0621) ;; ARABIC LETTER HAMZA (?,GB(B . ?\x0622) ;; ARABIC LETTER ALEF WITH MADDA ABOVE (?,GC(B . ?\x0623) ;; ARABIC LETTER ALEF WITH HAMZA ABOVE (?,GD(B . ?\x0624) ;; ARABIC LETTER WAW WITH HAMZA ABOVE (?,GE(B . ?\x0625) ;; ARABIC LETTER ALEF WITH HAMZA BELOW (?,GF(B . ?\x0626) ;; ARABIC LETTER YEH WITH HAMZA ABOVE (?,GG(B . ?\x0627) ;; ARABIC LETTER ALEF (?,GH(B . ?\x0628) ;; ARABIC LETTER BEH (?,GI(B . ?\x0629) ;; ARABIC LETTER TEH MARBUTA (?,GJ(B . ?\x062A) ;; ARABIC LETTER TEH (?,GK(B . ?\x062B) ;; ARABIC LETTER THEH (?,GL(B . ?\x062C) ;; ARABIC LETTER JEEM (?,GM(B . ?\x062D) ;; ARABIC LETTER HAH (?,GN(B . ?\x062E) ;; ARABIC LETTER KHAH (?,GO(B . ?\x062F) ;; ARABIC LETTER DAL (?,GP(B . ?\x0630) ;; ARABIC LETTER THAL (?,GQ(B . ?\x0631) ;; ARABIC LETTER REH (?,GR(B . ?\x0632) ;; ARABIC LETTER ZAIN (?,GS(B . ?\x0633) ;; ARABIC LETTER SEEN (?,GT(B . ?\x0634) ;; ARABIC LETTER SHEEN (?,GU(B . ?\x0635) ;; ARABIC LETTER SAD (?,GV(B . ?\x0636) ;; ARABIC LETTER DAD (?,GW(B . ?\x0637) ;; ARABIC LETTER TAH (?,GX(B . ?\x0638) ;; ARABIC LETTER ZAH (?,GY(B . ?\x0639) ;; ARABIC LETTER AIN (?,GZ(B . ?\x063A) ;; ARABIC LETTER GHAIN (?,G`(B . ?\x0640) ;; ARABIC TATWEEL (?,Ga(B . ?\x0641) ;; ARABIC LETTER FEH (?,Gb(B . ?\x0642) ;; ARABIC LETTER QAF (?,Gc(B . ?\x0643) ;; ARABIC LETTER KAF (?,Gd(B . ?\x0644) ;; ARABIC LETTER LAM (?,Ge(B . ?\x0645) ;; ARABIC LETTER MEEM (?,Gf(B . ?\x0646) ;; ARABIC LETTER NOON (?,Gg(B . ?\x0647) ;; ARABIC LETTER HEH (?,Gh(B . ?\x0648) ;; ARABIC LETTER WAW (?,Gi(B . ?\x0649) ;; ARABIC LETTER ALEF MAKSURA (?,Gj(B . ?\x064A) ;; ARABIC LETTER YEH (?,Gk(B . ?\x064B) ;; ARABIC FATHATAN (?,Gl(B . ?\x064C) ;; ARABIC DAMMATAN (?,Gm(B . ?\x064D) ;; ARABIC KASRATAN (?,Gn(B . ?\x064E) ;; ARABIC FATHA (?,Go(B . ?\x064F) ;; ARABIC DAMMA (?,Gp(B . ?\x0650) ;; ARABIC KASRA (?,Gq(B . ?\x0651) ;; ARABIC SHADDA (?,Gr(B . ?\x0652) ;; ARABIC SUKUN )) (ucs-8859-7-alist '((?\,F (B . ?\x00A0) ;; NO-BREAK SPACE (?\,F!(B . ?\x2018) ;; LEFT SINGLE QUOTATION MARK (?\,F"(B . ?\x2019) ;; RIGHT SINGLE QUOTATION MARK (?\,F#(B . ?\x00A3) ;; POUND SIGN (?\,F&(B . ?\x00A6) ;; BROKEN BAR (?\,F'(B . ?\x00A7) ;; SECTION SIGN (?\,F((B . ?\x00A8) ;; DIAERESIS (?\,F)(B . ?\x00A9) ;; COPYRIGHT SIGN (?\,F+(B . ?\x00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK (?\,F,(B . ?\x00AC) ;; NOT SIGN (?\,F-(B . ?\x00AD) ;; SOFT HYPHEN (?\,F/(B . ?\x2015) ;; HORIZONTAL BAR (?\,F0(B . ?\x00B0) ;; DEGREE SIGN (?\,F1(B . ?\x00B1) ;; PLUS-MINUS SIGN (?\,F2(B . ?\x00B2) ;; SUPERSCRIPT TWO (?\,F3(B . ?\x00B3) ;; SUPERSCRIPT THREE (?\,F4(B . ?\x0384) ;; GREEK TONOS (?\,F5(B . ?\x0385) ;; GREEK DIALYTIKA TONOS (?\,F6(B . ?\x0386) ;; GREEK CAPITAL LETTER ALPHA WITH TONOS (?\,F7(B . ?\x00B7) ;; MIDDLE DOT (?\,F8(B . ?\x0388) ;; GREEK CAPITAL LETTER EPSILON WITH TONOS (?\,F9(B . ?\x0389) ;; GREEK CAPITAL LETTER ETA WITH TONOS (?\,F:(B . ?\x038A) ;; GREEK CAPITAL LETTER IOTA WITH TONOS (?\,F;(B . ?\x00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK (?\,F<(B . ?\x038C) ;; GREEK CAPITAL LETTER OMICRON WITH TONOS (?\,F=(B . ?\x00BD) ;; VULGAR FRACTION ONE HALF (?\,F>(B . ?\x038E) ;; GREEK CAPITAL LETTER UPSILON WITH TONOS (?\,F?(B . ?\x038F) ;; GREEK CAPITAL LETTER OMEGA WITH TONOS (?\,F@(B . ?\x0390) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS (?\,FA(B . ?\x0391) ;; GREEK CAPITAL LETTER ALPHA (?\,FB(B . ?\x0392) ;; GREEK CAPITAL LETTER BETA (?\,FC(B . ?\x0393) ;; GREEK CAPITAL LETTER GAMMA (?\,FD(B . ?\x0394) ;; GREEK CAPITAL LETTER DELTA (?\,FE(B . ?\x0395) ;; GREEK CAPITAL LETTER EPSILON (?\,FF(B . ?\x0396) ;; GREEK CAPITAL LETTER ZETA (?\,FG(B . ?\x0397) ;; GREEK CAPITAL LETTER ETA (?\,FH(B . ?\x0398) ;; GREEK CAPITAL LETTER THETA (?\,FI(B . ?\x0399) ;; GREEK CAPITAL LETTER IOTA (?\,FJ(B . ?\x039A) ;; GREEK CAPITAL LETTER KAPPA (?\,FK(B . ?\x039B) ;; GREEK CAPITAL LETTER LAMDA (?\,FL(B . ?\x039C) ;; GREEK CAPITAL LETTER MU (?\,FM(B . ?\x039D) ;; GREEK CAPITAL LETTER NU (?\,FN(B . ?\x039E) ;; GREEK CAPITAL LETTER XI (?\,FO(B . ?\x039F) ;; GREEK CAPITAL LETTER OMICRON (?\,FP(B . ?\x03A0) ;; GREEK CAPITAL LETTER PI (?\,FQ(B . ?\x03A1) ;; GREEK CAPITAL LETTER RHO (?\,FS(B . ?\x03A3) ;; GREEK CAPITAL LETTER SIGMA (?\,FT(B . ?\x03A4) ;; GREEK CAPITAL LETTER TAU (?\,FU(B . ?\x03A5) ;; GREEK CAPITAL LETTER UPSILON (?\,FV(B . ?\x03A6) ;; GREEK CAPITAL LETTER PHI (?\,FW(B . ?\x03A7) ;; GREEK CAPITAL LETTER CHI (?\,FX(B . ?\x03A8) ;; GREEK CAPITAL LETTER PSI (?\,FY(B . ?\x03A9) ;; GREEK CAPITAL LETTER OMEGA (?\,FZ(B . ?\x03AA) ;; GREEK CAPITAL LETTER IOTA WITH DIALYTIKA (?\,F[(B . ?\x03AB) ;; GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA (?\,F\(B . ?\x03AC) ;; GREEK SMALL LETTER ALPHA WITH TONOS (?\,F](B . ?\x03AD) ;; GREEK SMALL LETTER EPSILON WITH TONOS (?\,F^(B . ?\x03AE) ;; GREEK SMALL LETTER ETA WITH TONOS (?\,F_(B . ?\x03AF) ;; GREEK SMALL LETTER IOTA WITH TONOS (?\,F`(B . ?\x03B0) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS (?\,Fa(B . ?\x03B1) ;; GREEK SMALL LETTER ALPHA (?\,Fb(B . ?\x03B2) ;; GREEK SMALL LETTER BETA (?\,Fc(B . ?\x03B3) ;; GREEK SMALL LETTER GAMMA (?\,Fd(B . ?\x03B4) ;; GREEK SMALL LETTER DELTA (?\,Fe(B . ?\x03B5) ;; GREEK SMALL LETTER EPSILON (?\,Ff(B . ?\x03B6) ;; GREEK SMALL LETTER ZETA (?\,Fg(B . ?\x03B7) ;; GREEK SMALL LETTER ETA (?\,Fh(B . ?\x03B8) ;; GREEK SMALL LETTER THETA (?\,Fi(B . ?\x03B9) ;; GREEK SMALL LETTER IOTA (?\,Fj(B . ?\x03BA) ;; GREEK SMALL LETTER KAPPA (?\,Fk(B . ?\x03BB) ;; GREEK SMALL LETTER LAMDA (?\,Fl(B . ?\x03BC) ;; GREEK SMALL LETTER MU (?\,Fm(B . ?\x03BD) ;; GREEK SMALL LETTER NU (?\,Fn(B . ?\x03BE) ;; GREEK SMALL LETTER XI (?\,Fo(B . ?\x03BF) ;; GREEK SMALL LETTER OMICRON (?\,Fp(B . ?\x03C0) ;; GREEK SMALL LETTER PI (?\,Fq(B . ?\x03C1) ;; GREEK SMALL LETTER RHO (?\,Fr(B . ?\x03C2) ;; GREEK SMALL LETTER FINAL SIGMA (?\,Fs(B . ?\x03C3) ;; GREEK SMALL LETTER SIGMA (?\,Ft(B . ?\x03C4) ;; GREEK SMALL LETTER TAU (?\,Fu(B . ?\x03C5) ;; GREEK SMALL LETTER UPSILON (?\,Fv(B . ?\x03C6) ;; GREEK SMALL LETTER PHI (?\,Fw(B . ?\x03C7) ;; GREEK SMALL LETTER CHI (?\,Fx(B . ?\x03C8) ;; GREEK SMALL LETTER PSI (?\,Fy(B . ?\x03C9) ;; GREEK SMALL LETTER OMEGA (?\,Fz(B . ?\x03CA) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA (?\,F{(B . ?\x03CB) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA (?\,F|(B . ?\x03CC) ;; GREEK SMALL LETTER OMICRON WITH TONOS (?\,F}(B . ?\x03CD) ;; GREEK SMALL LETTER UPSILON WITH TONOS (?\,F~(B . ?\x03CE) ;; GREEK SMALL LETTER OMEGA WITH TONOS )) (ucs-8859-8-alist '((?\,H (B . ?\x00A0) ;; NO-BREAK SPACE (?\,H"(B . ?\x00A2) ;; CENT SIGN (?\,H#(B . ?\x00A3) ;; POUND SIGN (?\,H$(B . ?\x00A4) ;; CURRENCY SIGN (?\,H%(B . ?\x00A5) ;; YEN SIGN (?\,H&(B . ?\x00A6) ;; BROKEN BAR (?\,H'(B . ?\x00A7) ;; SECTION SIGN (?\,H((B . ?\x00A8) ;; DIAERESIS (?\,H)(B . ?\x00A9) ;; COPYRIGHT SIGN (?\,H*(B . ?\x00D7) ;; MULTIPLICATION SIGN (?\,H+(B . ?\x00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK (?\,H,(B . ?\x00AC) ;; NOT SIGN (?\,H-(B . ?\x00AD) ;; SOFT HYPHEN (?\,H.(B . ?\x00AE) ;; REGISTERED SIGN (?\,H/(B . ?\x00AF) ;; MACRON (?\,H0(B . ?\x00B0) ;; DEGREE SIGN (?\,H1(B . ?\x00B1) ;; PLUS-MINUS SIGN (?\,H2(B . ?\x00B2) ;; SUPERSCRIPT TWO (?\,H3(B . ?\x00B3) ;; SUPERSCRIPT THREE (?\,H4(B . ?\x00B4) ;; ACUTE ACCENT (?\,H5(B . ?\x00B5) ;; MICRO SIGN (?\,H6(B . ?\x00B6) ;; PILCROW SIGN (?\,H7(B . ?\x00B7) ;; MIDDLE DOT (?\,H8(B . ?\x00B8) ;; CEDILLA (?\,H9(B . ?\x00B9) ;; SUPERSCRIPT ONE (?\,H:(B . ?\x00F7) ;; DIVISION SIGN (?\,H;(B . ?\x00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK (?\,H<(B . ?\x00BC) ;; VULGAR FRACTION ONE QUARTER (?\,H=(B . ?\x00BD) ;; VULGAR FRACTION ONE HALF (?\,H>(B . ?\x00BE) ;; VULGAR FRACTION THREE QUARTERS (?\,H_(B . ?\x2017) ;; DOUBLE LOW LINE (?\,H`(B . ?\x05D0) ;; HEBREW LETTER ALEF (?\,Ha(B . ?\x05D1) ;; HEBREW LETTER BET (?\,Hb(B . ?\x05D2) ;; HEBREW LETTER GIMEL (?\,Hc(B . ?\x05D3) ;; HEBREW LETTER DALET (?\,Hd(B . ?\x05D4) ;; HEBREW LETTER HE (?\,He(B . ?\x05D5) ;; HEBREW LETTER VAV (?\,Hf(B . ?\x05D6) ;; HEBREW LETTER ZAYIN (?\,Hg(B . ?\x05D7) ;; HEBREW LETTER HET (?\,Hh(B . ?\x05D8) ;; HEBREW LETTER TET (?\,Hi(B . ?\x05D9) ;; HEBREW LETTER YOD (?\,Hj(B . ?\x05DA) ;; HEBREW LETTER FINAL KAF (?\,Hk(B . ?\x05DB) ;; HEBREW LETTER KAF (?\,Hl(B . ?\x05DC) ;; HEBREW LETTER LAMED (?\,Hm(B . ?\x05DD) ;; HEBREW LETTER FINAL MEM (?\,Hn(B . ?\x05DE) ;; HEBREW LETTER MEM (?\,Ho(B . ?\x05DF) ;; HEBREW LETTER FINAL NUN (?\,Hp(B . ?\x05E0) ;; HEBREW LETTER NUN (?\,Hq(B . ?\x05E1) ;; HEBREW LETTER SAMEKH (?\,Hr(B . ?\x05E2) ;; HEBREW LETTER AYIN (?\,Hs(B . ?\x05E3) ;; HEBREW LETTER FINAL PE (?\,Ht(B . ?\x05E4) ;; HEBREW LETTER PE (?\,Hu(B . ?\x05E5) ;; HEBREW LETTER FINAL TSADI (?\,Hv(B . ?\x05E6) ;; HEBREW LETTER TSADI (?\,Hw(B . ?\x05E7) ;; HEBREW LETTER QOF (?\,Hx(B . ?\x05E8) ;; HEBREW LETTER RESH (?\,Hy(B . ?\x05E9) ;; HEBREW LETTER SHIN (?\,Hz(B . ?\x05EA) ;; HEBREW LETTER TAV (?\,H}(B . ?\x200E) ;; LEFT-TO-RIGHT MARK (?\,H~(B . ?\x200F) ;; RIGHT-TO-LEFT MARK )) (ucs-8859-9-alist '((?\,M (B . ?\x00A0) ;; NO-BREAK SPACE (?\,M!(B . ?\x00A1) ;; INVERTED EXCLAMATION MARK (?\,M"(B . ?\x00A2) ;; CENT SIGN (?\,M#(B . ?\x00A3) ;; POUND SIGN (?\,M$(B . ?\x00A4) ;; CURRENCY SIGN (?\,M%(B . ?\x00A5) ;; YEN SIGN (?\,M&(B . ?\x00A6) ;; BROKEN BAR (?\,M'(B . ?\x00A7) ;; SECTION SIGN (?\,M((B . ?\x00A8) ;; DIAERESIS (?\,M)(B . ?\x00A9) ;; COPYRIGHT SIGN (?\,M*(B . ?\x00AA) ;; FEMININE ORDINAL INDICATOR (?\,M+(B . ?\x00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK (?\,M,(B . ?\x00AC) ;; NOT SIGN (?\,M-(B . ?\x00AD) ;; SOFT HYPHEN (?\,M.(B . ?\x00AE) ;; REGISTERED SIGN (?\,M/(B . ?\x00AF) ;; MACRON (?\,M0(B . ?\x00B0) ;; DEGREE SIGN (?\,M1(B . ?\x00B1) ;; PLUS-MINUS SIGN (?\,M2(B . ?\x00B2) ;; SUPERSCRIPT TWO (?\,M3(B . ?\x00B3) ;; SUPERSCRIPT THREE (?\,M4(B . ?\x00B4) ;; ACUTE ACCENT (?\,M5(B . ?\x00B5) ;; MICRO SIGN (?\,M6(B . ?\x00B6) ;; PILCROW SIGN (?\,M7(B . ?\x00B7) ;; MIDDLE DOT (?\,M8(B . ?\x00B8) ;; CEDILLA (?\,M9(B . ?\x00B9) ;; SUPERSCRIPT ONE (?\,M:(B . ?\x00BA) ;; MASCULINE ORDINAL INDICATOR (?\,M;(B . ?\x00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK (?\,M<(B . ?\x00BC) ;; VULGAR FRACTION ONE QUARTER (?\,M=(B . ?\x00BD) ;; VULGAR FRACTION ONE HALF (?\,M>(B . ?\x00BE) ;; VULGAR FRACTION THREE QUARTERS (?\,M?(B . ?\x00BF) ;; INVERTED QUESTION MARK (?\,M@(B . ?\x00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE (?\,MA(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE (?\,MB(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX (?\,MC(B . ?\x00C3) ;; LATIN CAPITAL LETTER A WITH TILDE (?\,MD(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS (?\,ME(B . ?\x00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE (?\,MF(B . ?\x00C6) ;; LATIN CAPITAL LETTER AE (?\,MG(B . ?\x00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA (?\,MH(B . ?\x00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE (?\,MI(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE (?\,MJ(B . ?\x00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX (?\,MK(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS (?\,ML(B . ?\x00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE (?\,MM(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE (?\,MN(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX (?\,MO(B . ?\x00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS (?\,MP(B . ?\x011E) ;; LATIN CAPITAL LETTER G WITH BREVE (?\,MQ(B . ?\x00D1) ;; LATIN CAPITAL LETTER N WITH TILDE (?\,MR(B . ?\x00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE (?\,MS(B . ?\x00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE (?\,MT(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX (?\,MU(B . ?\x00D5) ;; LATIN CAPITAL LETTER O WITH TILDE (?\,MV(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS (?\,MW(B . ?\x00D7) ;; MULTIPLICATION SIGN (?\,MX(B . ?\x00D8) ;; LATIN CAPITAL LETTER O WITH STROKE (?\,MY(B . ?\x00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE (?\,MZ(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE (?\,M[(B . ?\x00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX (?\,M\(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS (?\,M](B . ?\x0130) ;; LATIN CAPITAL LETTER I WITH DOT ABOVE (?\,M^(B . ?\x015E) ;; LATIN CAPITAL LETTER S WITH CEDILLA (?\,M_(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S (?\,M`(B . ?\x00E0) ;; LATIN SMALL LETTER A WITH GRAVE (?\,Ma(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE (?\,Mb(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX (?\,Mc(B . ?\x00E3) ;; LATIN SMALL LETTER A WITH TILDE (?\,Md(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS (?\,Me(B . ?\x00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE (?\,Mf(B . ?\x00E6) ;; LATIN SMALL LETTER AE (?\,Mg(B . ?\x00E7) ;; LATIN SMALL LETTER C WITH CEDILLA (?\,Mh(B . ?\x00E8) ;; LATIN SMALL LETTER E WITH GRAVE (?\,Mi(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE (?\,Mj(B . ?\x00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX (?\,Mk(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS (?\,Ml(B . ?\x00EC) ;; LATIN SMALL LETTER I WITH GRAVE (?\,Mm(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE (?\,Mn(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX (?\,Mo(B . ?\x00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS (?\,Mp(B . ?\x011F) ;; LATIN SMALL LETTER G WITH BREVE (?\,Mq(B . ?\x00F1) ;; LATIN SMALL LETTER N WITH TILDE (?\,Mr(B . ?\x00F2) ;; LATIN SMALL LETTER O WITH GRAVE (?\,Ms(B . ?\x00F3) ;; LATIN SMALL LETTER O WITH ACUTE (?\,Mt(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX (?\,Mu(B . ?\x00F5) ;; LATIN SMALL LETTER O WITH TILDE (?\,Mv(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS (?\,Mw(B . ?\x00F7) ;; DIVISION SIGN (?\,Mx(B . ?\x00F8) ;; LATIN SMALL LETTER O WITH STROKE (?\,My(B . ?\x00F9) ;; LATIN SMALL LETTER U WITH GRAVE (?\,Mz(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE (?\,M{(B . ?\x00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX (?\,M|(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS (?\,M}(B . ?\x0131) ;; LATIN SMALL LETTER DOTLESS I (?\,M~(B . ?\x015F) ;; LATIN SMALL LETTER S WITH CEDILLA (?\,M(B . ?\x00FF) ;; LATIN SMALL LETTER Y WITH DIAERESIS )) (ucs-8859-14-alist '((?\,_ (B . ?\x00A0) ;; NO-BREAK SPACE (?\,_!(B . ?\x1E02) ;; LATIN CAPITAL LETTER B WITH DOT ABOVE (?\,_"(B . ?\x1E03) ;; LATIN SMALL LETTER B WITH DOT ABOVE (?\,_#(B . ?\x00A3) ;; POUND SIGN (?\,_$(B . ?\x010A) ;; LATIN CAPITAL LETTER C WITH DOT ABOVE (?\,_%(B . ?\x010B) ;; LATIN SMALL LETTER C WITH DOT ABOVE (?\,_&(B . ?\x1E0A) ;; LATIN CAPITAL LETTER D WITH DOT ABOVE (?\,_'(B . ?\x00A7) ;; SECTION SIGN (?\,_((B . ?\x1E80) ;; LATIN CAPITAL LETTER W WITH GRAVE (?\,_)(B . ?\x00A9) ;; COPYRIGHT SIGN (?\,_*(B . ?\x1E82) ;; LATIN CAPITAL LETTER W WITH ACUTE (?\,_+(B . ?\x1E0B) ;; LATIN SMALL LETTER D WITH DOT ABOVE (?\,_,(B . ?\x1EF2) ;; LATIN CAPITAL LETTER Y WITH GRAVE (?\,_-(B . ?\x00AD) ;; SOFT HYPHEN (?\,_.(B . ?\x00AE) ;; REGISTERED SIGN (?\,_/(B . ?\x0178) ;; LATIN CAPITAL LETTER Y WITH DIAERESIS (?\,_0(B . ?\x1E1E) ;; LATIN CAPITAL LETTER F WITH DOT ABOVE (?\,_1(B . ?\x1E1F) ;; LATIN SMALL LETTER F WITH DOT ABOVE (?\,_2(B . ?\x0120) ;; LATIN CAPITAL LETTER G WITH DOT ABOVE (?\,_3(B . ?\x0121) ;; LATIN SMALL LETTER G WITH DOT ABOVE (?\,_4(B . ?\x1E40) ;; LATIN CAPITAL LETTER M WITH DOT ABOVE (?\,_5(B . ?\x1E41) ;; LATIN SMALL LETTER M WITH DOT ABOVE (?\,_6(B . ?\x00B6) ;; PILCROW SIGN (?\,_7(B . ?\x1E56) ;; LATIN CAPITAL LETTER P WITH DOT ABOVE (?\,_8(B . ?\x1E81) ;; LATIN SMALL LETTER W WITH GRAVE (?\,_9(B . ?\x1E57) ;; LATIN SMALL LETTER P WITH DOT ABOVE (?\,_:(B . ?\x1E83) ;; LATIN SMALL LETTER W WITH ACUTE (?\,_;(B . ?\x1E60) ;; LATIN CAPITAL LETTER S WITH DOT ABOVE (?\,_<(B . ?\x1EF3) ;; LATIN SMALL LETTER Y WITH GRAVE (?\,_=(B . ?\x1E84) ;; LATIN CAPITAL LETTER W WITH DIAERESIS (?\,_>(B . ?\x1E85) ;; LATIN SMALL LETTER W WITH DIAERESIS (?\,_?(B . ?\x1E61) ;; LATIN SMALL LETTER S WITH DOT ABOVE (?\,_@(B . ?\x00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE (?\,_A(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE (?\,_B(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX (?\,_C(B . ?\x00C3) ;; LATIN CAPITAL LETTER A WITH TILDE (?\,_D(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS (?\,_E(B . ?\x00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE (?\,_F(B . ?\x00C6) ;; LATIN CAPITAL LETTER AE (?\,_G(B . ?\x00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA (?\,_H(B . ?\x00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE (?\,_I(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE (?\,_J(B . ?\x00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX (?\,_K(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS (?\,_L(B . ?\x00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE (?\,_M(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE (?\,_N(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX (?\,_O(B . ?\x00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS (?\,_P(B . ?\x0174) ;; LATIN CAPITAL LETTER W WITH CIRCUMFLEX (?\,_Q(B . ?\x00D1) ;; LATIN CAPITAL LETTER N WITH TILDE (?\,_R(B . ?\x00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE (?\,_S(B . ?\x00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE (?\,_T(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX (?\,_U(B . ?\x00D5) ;; LATIN CAPITAL LETTER O WITH TILDE (?\,_V(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS (?\,_W(B . ?\x1E6A) ;; LATIN CAPITAL LETTER T WITH DOT ABOVE (?\,_X(B . ?\x00D8) ;; LATIN CAPITAL LETTER O WITH STROKE (?\,_Y(B . ?\x00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE (?\,_Z(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE (?\,_[(B . ?\x00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX (?\,_\(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS (?\,_](B . ?\x00DD) ;; LATIN CAPITAL LETTER Y WITH ACUTE (?\,_^(B . ?\x0176) ;; LATIN CAPITAL LETTER Y WITH CIRCUMFLEX (?\,__(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S (?\,_`(B . ?\x00E0) ;; LATIN SMALL LETTER A WITH GRAVE (?\,_a(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE (?\,_b(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX (?\,_c(B . ?\x00E3) ;; LATIN SMALL LETTER A WITH TILDE (?\,_d(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS (?\,_e(B . ?\x00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE (?\,_f(B . ?\x00E6) ;; LATIN SMALL LETTER AE (?\,_g(B . ?\x00E7) ;; LATIN SMALL LETTER C WITH CEDILLA (?\,_h(B . ?\x00E8) ;; LATIN SMALL LETTER E WITH GRAVE (?\,_i(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE (?\,_j(B . ?\x00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX (?\,_k(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS (?\,_l(B . ?\x00EC) ;; LATIN SMALL LETTER I WITH GRAVE (?\,_m(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE (?\,_n(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX (?\,_o(B . ?\x00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS (?\,_p(B . ?\x0175) ;; LATIN SMALL LETTER W WITH CIRCUMFLEX (?\,_q(B . ?\x00F1) ;; LATIN SMALL LETTER N WITH TILDE (?\,_r(B . ?\x00F2) ;; LATIN SMALL LETTER O WITH GRAVE (?\,_s(B . ?\x00F3) ;; LATIN SMALL LETTER O WITH ACUTE (?\,_t(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX (?\,_u(B . ?\x00F5) ;; LATIN SMALL LETTER O WITH TILDE (?\,_v(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS (?\,_w(B . ?\x1E6B) ;; LATIN SMALL LETTER T WITH DOT ABOVE (?\,_x(B . ?\x00F8) ;; LATIN SMALL LETTER O WITH STROKE (?\,_y(B . ?\x00F9) ;; LATIN SMALL LETTER U WITH GRAVE (?\,_z(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE (?\,_{(B . ?\x00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX (?\,_|(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS (?\,_}(B . ?\x00FD) ;; LATIN SMALL LETTER Y WITH ACUTE (?\,_~(B . ?\x0177) ;; LATIN SMALL LETTER Y WITH CIRCUMFLEX (?\,_(B . ?\x00FF) ;; LATIN SMALL LETTER Y WITH DIAERESIS )) (ucs-8859-15-alist '((?\,b (B . ?\x00A0) ;; NO-BREAK SPACE (?\,b!(B . ?\x00A1) ;; INVERTED EXCLAMATION MARK (?\,b"(B . ?\x00A2) ;; CENT SIGN (?\,b#(B . ?\x00A3) ;; POUND SIGN (?\,b$(B . ?\x20AC) ;; EURO SIGN (?\,b%(B . ?\x00A5) ;; YEN SIGN (?\,b&(B . ?\x0160) ;; LATIN CAPITAL LETTER S WITH CARON (?\,b'(B . ?\x00A7) ;; SECTION SIGN (?\,b((B . ?\x0161) ;; LATIN SMALL LETTER S WITH CARON (?\,b)(B . ?\x00A9) ;; COPYRIGHT SIGN (?\,b*(B . ?\x00AA) ;; FEMININE ORDINAL INDICATOR (?\,b+(B . ?\x00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK (?\,b,(B . ?\x00AC) ;; NOT SIGN (?\,b-(B . ?\x00AD) ;; SOFT HYPHEN (?\,b.(B . ?\x00AE) ;; REGISTERED SIGN (?\,b/(B . ?\x00AF) ;; MACRON (?\,b0(B . ?\x00B0) ;; DEGREE SIGN (?\,b1(B . ?\x00B1) ;; PLUS-MINUS SIGN (?\,b2(B . ?\x00B2) ;; SUPERSCRIPT TWO (?\,b3(B . ?\x00B3) ;; SUPERSCRIPT THREE (?\,b4(B . ?\x017D) ;; LATIN CAPITAL LETTER Z WITH CARON (?\,b5(B . ?\x00B5) ;; MICRO SIGN (?\,b6(B . ?\x00B6) ;; PILCROW SIGN (?\,b7(B . ?\x00B7) ;; MIDDLE DOT (?\,b8(B . ?\x017E) ;; LATIN SMALL LETTER Z WITH CARON (?\,b9(B . ?\x00B9) ;; SUPERSCRIPT ONE (?\,b:(B . ?\x00BA) ;; MASCULINE ORDINAL INDICATOR (?\,b;(B . ?\x00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK (?\,b<(B . ?\x0152) ;; LATIN CAPITAL LIGATURE OE (?\,b=(B . ?\x0153) ;; LATIN SMALL LIGATURE OE (?\,b>(B . ?\x0178) ;; LATIN CAPITAL LETTER Y WITH DIAERESIS (?\,b?(B . ?\x00BF) ;; INVERTED QUESTION MARK (?\,b@(B . ?\x00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE (?\,bA(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE (?\,bB(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX (?\,bC(B . ?\x00C3) ;; LATIN CAPITAL LETTER A WITH TILDE (?\,bD(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS (?\,bE(B . ?\x00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE (?\,bF(B . ?\x00C6) ;; LATIN CAPITAL LETTER AE (?\,bG(B . ?\x00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA (?\,bH(B . ?\x00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE (?\,bI(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE (?\,bJ(B . ?\x00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX (?\,bK(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS (?\,bL(B . ?\x00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE (?\,bM(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE (?\,bN(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX (?\,bO(B . ?\x00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS (?\,bP(B . ?\x00D0) ;; LATIN CAPITAL LETTER ETH (?\,bQ(B . ?\x00D1) ;; LATIN CAPITAL LETTER N WITH TILDE (?\,bR(B . ?\x00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE (?\,bS(B . ?\x00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE (?\,bT(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX (?\,bU(B . ?\x00D5) ;; LATIN CAPITAL LETTER O WITH TILDE (?\,bV(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS (?\,bW(B . ?\x00D7) ;; MULTIPLICATION SIGN (?\,bX(B . ?\x00D8) ;; LATIN CAPITAL LETTER O WITH STROKE (?\,bY(B . ?\x00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE (?\,bZ(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE (?\,b[(B . ?\x00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX (?\,b\(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS (?\,b](B . ?\x00DD) ;; LATIN CAPITAL LETTER Y WITH ACUTE (?\,b^(B . ?\x00DE) ;; LATIN CAPITAL LETTER THORN (?\,b_(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S (?\,b`(B . ?\x00E0) ;; LATIN SMALL LETTER A WITH GRAVE (?\,ba(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE (?\,bb(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX (?\,bc(B . ?\x00E3) ;; LATIN SMALL LETTER A WITH TILDE (?\,bd(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS (?\,be(B . ?\x00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE (?\,bf(B . ?\x00E6) ;; LATIN SMALL LETTER AE (?\,bg(B . ?\x00E7) ;; LATIN SMALL LETTER C WITH CEDILLA (?\,bh(B . ?\x00E8) ;; LATIN SMALL LETTER E WITH GRAVE (?\,bi(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE (?\,bj(B . ?\x00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX (?\,bk(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS (?\,bl(B . ?\x00EC) ;; LATIN SMALL LETTER I WITH GRAVE (?\,bm(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE (?\,bn(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX (?\,bo(B . ?\x00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS (?\,bp(B . ?\x00F0) ;; LATIN SMALL LETTER ETH (?\,bq(B . ?\x00F1) ;; LATIN SMALL LETTER N WITH TILDE (?\,br(B . ?\x00F2) ;; LATIN SMALL LETTER O WITH GRAVE (?\,bs(B . ?\x00F3) ;; LATIN SMALL LETTER O WITH ACUTE (?\,bt(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX (?\,bu(B . ?\x00F5) ;; LATIN SMALL LETTER O WITH TILDE (?\,bv(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS (?\,bw(B . ?\x00F7) ;; DIVISION SIGN (?\,bx(B . ?\x00F8) ;; LATIN SMALL LETTER O WITH STROKE (?\,by(B . ?\x00F9) ;; LATIN SMALL LETTER U WITH GRAVE (?\,bz(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE (?\,b{(B . ?\x00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX (?\,b|(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS (?\,b}(B . ?\x00FD) ;; LATIN SMALL LETTER Y WITH ACUTE (?\,b~(B . ?\x00FE) ;; LATIN SMALL LETTER THORN (?\,b(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)))) ;; 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))))) ;; The table optimizing here and elsewhere probably isn't very ;; useful, but seems good practice. (optimize-char-table ucs-mule-to-mule-unicode) (optimize-char-table ucs-mule-8859-to-mule-unicode) ;; 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) (optimize-char-table encode-translator)))) ;; Register for use in CCL. (define-translation-table 'ucs-mule-8859-to-mule-unicode ucs-mule-8859-to-mule-unicode) (define-translation-table 'ucs-mule-to-mule-unicode ucs-mule-to-mule-unicode) (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.) (if utf-8-fragment-on-decoding (map-char-table (lambda (k v) (if v (aset ucs-mule-to-mule-unicode v nil))) utf-8-translation-table-for-decode) ;; Reset in case it was changed. (map-char-table (lambda (k v) (if v (aset ucs-mule-to-mule-unicode v k))) utf-8-translation-table-for-decode)) (set-char-table-parent standard-translation-table-for-decode ucs-mule-8859-to-mule-unicode) ;; Translate Quail input globally. (setq-default translation-table-for-input ucs-mule-to-mule-unicode) ;; In case these are set up, but we should use the global ;; translation table. (remove-hook 'quail-activate-hook 'ucs-quail-activate) (remove-hook 'minibuffer-setup-hook 'ucs-minibuffer-setup)) ;; 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) (coding-system-put coding-system 'translation-table-for-input table))) ;; Arrange local translation tables for Quail input. (add-hook 'quail-activate-hook 'ucs-quail-activate) (add-hook 'minibuffer-setup-hook 'ucs-minibuffer-setup)) (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) (setq-default translation-table-for-input 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) (coding-system-put coding-system 'translation-table-for-input nil))) (optimize-char-table char-coding-system-table) (remove-hook 'quail-activate-hook 'ucs-quail-activate) (remove-hook 'minibuffer-setup-hook 'ucs-minibuffer-setup)) ;;;###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. Also sets hooks that arrange `translation-table-for-input' to be set up locally when Quail input methods are activated. This will often allow input generated by Quail input methods to conform with what the buffer's file coding system can encode. Thus you could use a Latin-2 input method to search for e-acute in a Latin-1 buffer. See also command `unify-8859-on-decoding-mode'." :group 'mule :global t :init-value nil (if unify-8859-on-encoding-mode (ucs-unify-8859 t) (ucs-fragment-8859 t))) (custom-add-version 'unify-8859-on-encoding-mode "21.3") ; who knows? ;;;###autoload (define-minor-mode unify-8859-on-decoding-mode "Set up translation tables 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. Also sets `translation-table-for-input' globally, so that Quail input methods produce unified characters. See also command `unify-8859-on-encoding-mode' and the user option `utf-8-fragment-on-decoding'." :group 'mule :global t :init-value nil (if unify-8859-on-decoding-mode (ucs-unify-8859) (ucs-fragment-8859))) (custom-add-dependencies 'unify-8859-on-decoding-mode '(utf-8-fragment-on-decoding)) (custom-add-version 'unify-8859-on-decoding-mode "21.3") ; who knows? (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): ") (let ((c (decode-char 'ucs (if (integerp arg) arg (string-to-number arg 16))))) (if c (insert c) (error "Character can't be decoded to UCS")))) ;;; 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 in-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 '((?,1!(B . ?$,1o/(B) (?,1"(B . ?$,1o1(B) (?,1#(B . ?$,1o7(B) (?,1$(B . ?$,1o%(B) (?,1%(B . ?$,1o'(B) (?,1&(B . ?$,1o)(B) (?,1'(B . ?$,1o-(B) (?,1((B . ?$,1o=(B) (?,1)(B . ?$,1o9(B) (?,1*(B . ?$,1o?(B) (?,1+(B . ?$,1oA(B) (?,1,(B . ?$,1oC(B) (?,1-(B . ?$,1oE(B) (?,1.(B . ?$,1oG(B) (?,1/(B . ?$,1oQ(B) (?,10(B . ?$,1oS(B) (?,11(B . ?$,1oU(B) (?,12(B . ?$,1oW(B) (?,15(B . ?$,1oY(B) (?,16(B . ?$,1o](B) (?,17(B . ?$,1o_(B) (?,18(B . ?$,1oK(B) (?,1=(B . ?$,1!a(B) (?,1>(B . ?$,1o[(B) (?,1F(B . ?$,1o3(B) (?,1G(B . ?$,1o5(B) (?,1O(B . ?$,1os(B) (?,1Q(B . ?$,1oi(B) (?,1U(B . ?$,1o!(B) (?,1V(B . ?$,1ow(B) (?,1W(B . ?$,1ok(B) (?,1X(B . ?$,1om(B) (?,1[(B . ?$,1oy(B) (?,1\(B . ?$,1ou(B) (?,1^(B . ?$,1oa(B) (?,1_(B . ?$,1!p(B) (?,1`(B . ?,A`(B) (?,1a(B . ?,Aa(B) (?,1b(B . ?,Ab(B) (?,1c(B . ?,Ac(B) (?,1d(B . ?$,1o#(B) (?,1e(B . ?$,1 #(B) (?,1f(B . ?$,1oo(B) (?,1g(B . ?$,1o+(B) (?,1h(B . ?,Ah(B) (?,1i(B . ?,Ai(B) (?,1j(B . ?,Aj(B) (?,1k(B . ?$,1o;(B) (?,1l(B . ?,Al(B) (?,1m(B . ?,Am(B) (?,1n(B . ?$,1 I(B) (?,1o(B . ?$,1oI(B) (?,1p(B . ?$,1 1(B) (?,1q(B . ?$,1oq(B) (?,1r(B . ?,Ar(B) (?,1s(B . ?,As(B) (?,1t(B . ?,At(B) (?,1u(B . ?,Au(B) (?,1v(B . ?$,1oO(B) (?,1w(B . ?$,1oM(B) (?,1x(B . ?$,1oe(B) (?,1y(B . ?,Ay(B) (?,1z(B . ?,Az(B) (?,1{(B . ?$,1!)(B) (?,1|(B . ?$,1og(B) (?,1}(B . ?,A}(B) (?,1~(B . ?$,1oc(B) (?,2!(B . ?$,1o.(B) (?,2"(B . ?$,1o0(B) (?,2#(B . ?$,1o6(B) (?,2$(B . ?$,1o$(B) (?,2%(B . ?$,1o&(B) (?,2&(B . ?$,1o((B) (?,2'(B . ?$,1o,(B) (?,2((B . ?$,1o<(B) (?,2)(B . ?$,1o8(B) (?,2*(B . ?$,1o>(B) (?,2+(B . ?$,1o@(B) (?,2,(B . ?$,1oB(B) (?,2-(B . ?$,1oD(B) (?,2.(B . ?$,1oF(B) (?,2/(B . ?$,1oP(B) (?,20(B . ?$,1oR(B) (?,21(B . ?$,1oT(B) (?,22(B . ?$,1oV(B) (?,25(B . ?$,1oX(B) (?,26(B . ?$,1o\(B) (?,27(B . ?$,1o^(B) (?,28(B . ?$,1oJ(B) (?,2=(B . ?$,1!`(B) (?,2>(B . ?$,1oZ(B) (?,2F(B . ?$,1o2(B) (?,2G(B . ?$,1o4(B) (?,2O(B . ?$,1or(B) (?,2Q(B . ?$,1oh(B) (?,2U(B . ?$,1o (B) (?,2V(B . ?$,1ov(B) (?,2W(B . ?$,1oj(B) (?,2X(B . ?$,1ol(B) (?,2[(B . ?$,1ox(B) (?,2\(B . ?$,1ot(B) (?,2^(B . ?$,1o`(B) (?,2_(B . ?$,1!o(B) (?,2`(B . ?,A@(B) (?,2a(B . ?,AA(B) (?,2b(B . ?,AB(B) (?,2c(B . ?,AC(B) (?,2d(B . ?$,1o"(B) (?,2e(B . ?$,1 "(B) (?,2f(B . ?$,1on(B) (?,2g(B . ?$,1o*(B) (?,2h(B . ?,AH(B) (?,2i(B . ?,AI(B) (?,2j(B . ?,AJ(B) (?,2k(B . ?$,1o:(B) (?,2l(B . ?,AL(B) (?,2m(B . ?,AM(B) (?,2n(B . ?$,1 H(B) (?,2o(B . ?$,1oH(B) (?,2p(B . ?$,1 0(B) (?,2q(B . ?$,1op(B) (?,2r(B . ?,AR(B) (?,2s(B . ?,AS(B) (?,2t(B . ?,AT(B) (?,2u(B . ?,AU(B) (?,2v(B . ?$,1oN(B) (?,2w(B . ?$,1oL(B) (?,2x(B . ?$,1od(B) (?,2y(B . ?,AY(B) (?,2z(B . ?,AZ(B) (?,2{(B . ?$,1!((B) (?,2|(B . ?$,1of(B) (?,2}(B . ?,A](B) (?,2~(B . ?$,1ob(B))) (thai-tis620 '((?,T!(B . ?$,1Ba(B) (?,T"(B . ?$,1Bb(B) (?,T#(B . ?$,1Bc(B) (?,T$(B . ?$,1Bd(B) (?,T%(B . ?$,1Be(B) (?,T&(B . ?$,1Bf(B) (?,T'(B . ?$,1Bg(B) (?,T((B . ?$,1Bh(B) (?,T)(B . ?$,1Bi(B) (?,T*(B . ?$,1Bj(B) (?,T+(B . ?$,1Bk(B) (?,T,(B . ?$,1Bl(B) (?,T-(B . ?$,1Bm(B) (?,T.(B . ?$,1Bn(B) (?,T/(B . ?$,1Bo(B) (?,T0(B . ?$,1Bp(B) (?,T1(B . ?$,1Bq(B) (?,T2(B . ?$,1Br(B) (?,T3(B . ?$,1Bs(B) (?,T4(B . ?$,1Bt(B) (?,T5(B . ?$,1Bu(B) (?,T6(B . ?$,1Bv(B) (?,T7(B . ?$,1Bw(B) (?,T8(B . ?$,1Bx(B) (?,T9(B . ?$,1By(B) (?,T:(B . ?$,1Bz(B) (?,T;(B . ?$,1B{(B) (?,T<(B . ?$,1B|(B) (?,T=(B . ?$,1B}(B) (?,T>(B . ?$,1B~(B) (?,T?(B . ?$,1B(B) (?,T@(B . ?$,1C (B) (?,TA(B . ?$,1C!(B) (?,TB(B . ?$,1C"(B) (?,TC(B . ?$,1C#(B) (?,TD(B . ?$,1C$(B) (?,TE(B . ?$,1C%(B) (?,TF(B . ?$,1C&(B) (?,TG(B . ?$,1C'(B) (?,TH(B . ?$,1C((B) (?,TI(B . ?$,1C)(B) (?,TJ(B . ?$,1C*(B) (?,TK(B . ?$,1C+(B) (?,TL(B . ?$,1C,(B) (?,TM(B . ?$,1C-(B) (?,TN(B . ?$,1C.(B) (?,TO(B . ?$,1C/(B) (?,TP(B . ?$,1C0(B) (?,TQ(B . ?$,1C1(B) (?,TR(B . ?$,1C2(B) (?,TS(B . ?$,1C3(B) (?,TT(B . ?$,1C4(B) (?,TU(B . ?$,1C5(B) (?,TV(B . ?$,1C6(B) (?,TW(B . ?$,1C7(B) (?,TX(B . ?$,1C8(B) (?,TY(B . ?$,1C9(B) (?,TZ(B . ?$,1C:(B) (?,T_(B . ?$,1C?(B) (?,T`(B . ?$,1C@(B) (?,Ta(B . ?$,1CA(B) (?,Tb(B . ?$,1CB(B) (?,Tc(B . ?$,1CC(B) (?,Td(B . ?$,1CD(B) (?,Te(B . ?$,1CE(B) (?,Tf(B . ?$,1CF(B) (?,Tg(B . ?$,1CG(B) (?,Th(B . ?$,1CH(B) (?,Ti(B . ?$,1CI(B) (?,Tj(B . ?$,1CJ(B) (?,Tk(B . ?$,1CK(B) (?,Tl(B . ?$,1CL(B) (?,Tm(B . ?$,1CM(B) (?,Tn(B . ?$,1CN(B) (?,To(B . ?$,1CO(B) (?,Tp(B . ?$,1CP(B) (?,Tq(B . ?$,1CQ(B) (?,Tr(B . ?$,1CR(B) (?,Ts(B . ?$,1CS(B) (?,Tt(B . ?$,1CT(B) (?,Tu(B . ?$,1CU(B) (?,Tv(B . ?$,1CV(B) (?,Tw(B . ?$,1CW(B) (?,Tx(B . ?$,1CX(B) (?,Ty(B . ?$,1CY(B) (?,Tz(B . ?$,1CZ(B) (?,T{(B . ?$,1C[(B))) (tibetan-iso-8bit '((?$(7!0(B . ?$,1E@(B) (?$(7!1(B . ?$,1EA(B) (?$(7!2(B . ?$,1EB(B) (?$(7!3(B . ?$,1EC(B) (?$(7!4(B . ?$,1ED(B) (?$(7!5(B . ?$,1EE(B) (?$(7!6(B . ?$,1EF(B) (?$(7!7(B . ?$,1EG(B) (?$(7!8(B . ?$,1EH(B) (?$(7!9(B . ?$,1EI(B) (?$(7!:(B . ?$,1EJ(B) (?$(7!;(B . ?$,1EK(B) (?$(7!<(B . ?$,1EL(B) (?$(7!=(B . ?$,1EM(B) (?$(7!>(B . ?$,1EN(B) (?$(7!?(B . ?$,1EO(B) (?$(7!@(B . ?$,1EP(B) (?$(7!A(B . ?$,1EQ(B) (?$(7!B(B . ?$,1ER(B) (?$(7!C(B . ?$,1ES(B) (?$(7!D(B . ?$,1ET(B) (?$(7!E(B . ?$,1EU(B) (?$(7!F(B . ?$,1EV(B) (?$(7!G(B . ?$,1EW(B) (?$(7!H(B . ?$,1EX(B) (?$(7!I(B . ?$,1EY(B) (?$(7!J(B . ?$,1EZ(B) (?$(7!K(B . ?$,1E[(B) (?$(7!L(B . ?$,1E\(B) (?$(7!M(B . ?$,1E](B) (?$(7!N(B . ?$,1E^(B) (?$(7!O(B . ?$,1E_(B) (?$(7!P(B . ?$,1E`(B) (?$(7!Q(B . ?$,1Ea(B) (?$(7!R(B . ?$,1Eb(B) (?$(7!S(B . ?$,1Ec(B) (?$(7!T(B . ?$,1Ed(B) (?$(7!U(B . ?$,1Ee(B) (?$(7!V(B . ?$,1Ef(B) (?$(7!W(B . ?$,1Eg(B) (?$(7!X(B . ?$,1Eh(B) (?$(7!Y(B . ?$,1Ei(B) (?$(7!Z(B . ?$,1Ej(B) (?$(7![(B . ?$,1Ek(B) (?$(7!\(B . ?$,1El(B) (?$(7!](B . ?$,1Em(B) (?$(7!^(B . ?$,1En(B) (?$(7!_(B . ?$,1Eo(B) (?$(7!`(B . ?$,1Ep(B) (?$(7!a(B . ?$,1Eq(B) (?$(7!b(B . ?$,1Er(B) (?$(7!c(B . ?$,1Es(B) (?$(7!d(B . ?$,1Et(B) (?$(7!e(B . ?$,1Eu(B) (?$(7!f(B . ?$,1Ev(B) (?$(7!g(B . ?$,1Ew(B) (?$(7!h(B . ?$,1Ex(B) (?$(7!i(B . ?$,1Ey(B) (?$(7!j(B . ?$,1Ez(B) (?$(7!k(B . ?$,1E{(B) (?$(7!l(B . ?$,1E|(B) (?$(7!m(B . ?$,1E}(B) (?$(7!n(B . ?$,1E~(B) (?$(7!o(B . ?$,1E(B) (?$(7"!(B . ?$,1F (B) (?$(7""(B . ?$,1F!(B) (?$(7"#(B . ?$,1F"(B) (?$(7"$(B . ?$,1F#(B) (?$(7"%(B . ?$,1F$(B) (?$(7"&(B . ?$,1F%(B) (?$(7"'(B . ?$,1F&(B) (?$(7"((B . ?$,1F'(B) (?$(7"*(B . ?$,1F)(B) (?$(7"+(B . ?$,1F*(B) (?$(7",(B . ?$,1F+(B) (?$(7"-(B . ?$,1F,(B) (?$(7".(B . ?$,1F-(B) (?$(7"/(B . ?$,1F.(B) (?$(7"0(B . ?$,1F/(B) (?$(7"1(B . ?$,1F0(B) (?$(7"2(B . ?$,1F1(B) (?$(7"3(B . ?$,1F2(B) (?$(7"4(B . ?$,1F3(B) (?$(7"5(B . ?$,1F4(B) (?$(7"6(B . ?$,1F5(B) (?$(7"7(B . ?$,1F6(B) (?$(7"8(B . ?$,1F7(B) (?$(7"9(B . ?$,1F8(B) (?$(7":(B . ?$,1F9(B) (?$(7";(B . ?$,1F:(B) (?$(7"<(B . ?$,1F;(B) (?$(7"=(B . ?$,1F<(B) (?$(7">(B . ?$,1F=(B) (?$(7"?(B . ?$,1F>(B) (?$(7"@(B . ?$,1F?(B) (?$(7"A(B . ?$,1F@(B) (?$(7"B(B . ?$,1FA(B) (?$(7"C(B . ?$,1FB(B) (?$(7"D(B . ?$,1FC(B) (?$(7"E(B . ?$,1FD(B) (?$(7"F(B . ?$,1FE(B) (?$(7"G(B . ?$,1FF(B) (?$(7"H(B . ?$,1FG(B) (?$(7"I(B . ?$,1FH(B) (?$(7"J(B . ?$,1FI(B) (?$(7"K(B . ?$,1FJ(B) (?$(7"R(B . ?$,1FQ(B) (?$(7"S(B . ?$,1FR(B) (?$(7"T(B . ?$,1FS(B) (?$(7"U(B . ?$,1FT(B) (?$(7"V(B . ?$,1FU(B) (?$(7"W(B . ?$,1FV(B) (?$(7"X(B . ?$,1FW(B) (?$(7"Y(B . ?$,1FX(B) (?$(7"Z(B . ?$,1FY(B) (?$(7"[(B . ?$,1FZ(B) (?$(7"\(B . ?$,1F[(B) (?$(7"](B . ?$,1F\(B) (?$(7"^(B . ?$,1F](B) (?$(7"_(B . ?$,1F^(B) (?$(7"`(B . ?$,1F_(B) (?$(7"a(B . ?$,1F`(B) (?$(7"b(B . ?$,1Fa(B) (?$(7"c(B . ?$,1Fb(B) (?$(7"d(B . ?$,1Fc(B) (?$(7"e(B . ?$,1Fd(B) (?$(7"f(B . ?$,1Fe(B) (?$(7"g(B . ?$,1Ff(B) (?$(7"h(B . ?$,1Fg(B) (?$(7"i(B . ?$,1Fh(B) (?$(7"j(B . ?$,1Fi(B) (?$(7"k(B . ?$,1Fj(B) (?$(7"l(B . ?$,1Fk(B) (?$(7#!(B . ?$,1Fp(B) (?$(7#"(B . ?$,1Fq(B) (?$(7##(B . ?$,1Fr(B) (?$(7#$(B . ?$,1Fs(B) (?$(7#%(B . ?$,1Ft(B) (?$(7#&(B . ?$,1Fu(B) (?$(7#'(B . ?$,1Fv(B) (?$(7#((B . ?$,1Fw(B) (?$(7#*(B . ?$,1Fy(B) (?$(7#+(B . ?$,1Fz(B) (?$(7#,(B . ?$,1F{(B) (?$(7#-(B . ?$,1F|(B) (?$(7#.(B . ?$,1F}(B) (?$(7#/(B . ?$,1F~(B) (?$(7#0(B . ?$,1F(B) (?$(7#1(B . ?$,1G (B) (?$(7#2(B . ?$,1G!(B) (?$(7#3(B . ?$,1G"(B) (?$(7#4(B . ?$,1G#(B) (?$(7#5(B . ?$,1G$(B) (?$(7#6(B . ?$,1G%(B) (?$(7#7(B . ?$,1G&(B) (?$(7#8(B . ?$,1G'(B) (?$(7#9(B . ?$,1G((B) (?$(7#:(B . ?$,1G)(B) (?$(7#;(B . ?$,1G*(B) (?$(7#<(B . ?$,1G+(B) (?$(7#=(B . ?$,1G,(B) (?$(7#>(B . ?$,1G-(B) (?$(7#?(B . ?$,1G.(B) (?$(7#@(B . ?$,1G/(B) (?$(7#A(B . ?$,1G0(B) (?$(7#B(B . ?$,1G1(B) (?$(7#C(B . ?$,1G2(B) (?$(7#D(B . ?$,1G3(B) (?$(7#E(B . ?$,1G4(B) (?$(7#F(B . ?$,1G5(B) (?$(7#G(B . ?$,1G6(B) (?$(7#H(B . ?$,1G7(B) (?$(7#I(B . ?$,1G8(B) (?$(7#J(B . ?$,1G9(B) (?$(7#K(B . ?$,1G:(B) (?$(7#L(B . ?$,1G;(B) (?$(7#M(B . ?$,1G<(B) (?$(7#O(B . ?$,1G>(B) (?$(7#P(B . ?$,1G?(B) (?$(7#Q(B . ?$,1G@(B) (?$(7#R(B . ?$,1GA(B) (?$(7#S(B . ?$,1GB(B) (?$(7#T(B . ?$,1GC(B) (?$(7#U(B . ?$,1GD(B) (?$(7#V(B . ?$,1GE(B) (?$(7#W(B . ?$,1GF(B) (?$(7#X(B . ?$,1GG(B) (?$(7#Y(B . ?$,1GH(B) (?$(7#Z(B . ?$,1GI(B) (?$(7#[(B . ?$,1GJ(B) (?$(7#\(B . ?$,1GK(B) (?$(7#](B . ?$,1GL(B) (?$(7#`(B . ?$,1GO(B))) (ipa '((?,0 (B . ?i) (?,0!(B . ?$,1#j(B) (?,0"(B . ?e) (?,0#(B . ?$,1#[(B) (?,0$(B . ?,Af(B) (?,0%(B . ?a) (?,0&(B . ?$,1#h(B) (?,0'(B . ?$,1#Y(B) (?,0((B . ?$,1#P(B) (?,0)(B . ?$,1#o(B) (?,0*(B . ?$,1#d(B) (?,0+(B . ?$,1$,(B) (?,0,(B . ?$,1#Q(B) (?,0-(B . ?y) (?,0.(B . ?$,1$/(B) (?,0/(B . ?,Ax(B) (?,00(B . ?$,1 s(B) (?,01(B . ?$,1#v(B) (?,02(B . ?$,1$)(B) (?,03(B . ?$,1#u(B) (?,04(B . ?u) (?,05(B . ?$,1$*(B) (?,06(B . ?o) (?,07(B . ?$,1#T(B) (?,08(B . ?$,1#R(B) (?,0:(B . ?$,1#Z(B) (?,0@(B . ?p) (?,0A(B . ?b) (?,0B(B . ?t) (?,0C(B . ?d) (?,0D(B . ?k) (?,0E(B . ?g) (?,0F(B . ?f) (?,0G(B . ?v) (?,0H(B . ?$,1'8(B) (?,0I(B . ?,Ap(B) (?,0J(B . ?s) (?,0K(B . ?z) (?,0L(B . ?$,1$#(B) (?,0M(B . ?$,1$2(B) (?,0N(B . ?,Ag(B) (?,0O(B . ?x) (?,0P(B . ?$,1$!(B) (?,0Q(B . ?h) (?,0R(B . ?m) (?,0S(B . ?n) (?,0T(B . ?$,1#r(B) (?,0U(B . ?$,1 k(B) (?,0V(B . ?r) (?,0W(B . ?$,1$ (B) (?,0X(B . ?$,1#y(B) (?,0Y(B . ?j) (?,0Z(B . ?l) (?,0[(B . ?$,1$.(B) (?,0\(B . ?$,1$?(B) (?,0](B . ?$,1#e(B) (?,0^(B . ?w) (?,0_(B . ?$,1$-(B) (?,0p(B . ?$,1$h(B) (?,0q(B . ?$,1$l(B) (?,0r(B . ?$,1$p(B))) (ethiopic '((?$(3!!(B . ?$,1M@(B) (?$(3!"(B . ?$,1MA(B) (?$(3!#(B . ?$,1MB(B) (?$(3!$(B . ?$,1MC(B) (?$(3!%(B . ?$,1MD(B) (?$(3!&(B . ?$,1ME(B) (?$(3!'(B . ?$,1MF(B) (?$(3!)(B . ?$,1MH(B) (?$(3!*(B . ?$,1MI(B) (?$(3!+(B . ?$,1MJ(B) (?$(3!,(B . ?$,1MK(B) (?$(3!-(B . ?$,1ML(B) (?$(3!.(B . ?$,1MM(B) (?$(3!/(B . ?$,1MN(B) (?$(3!0(B . ?$,1MO(B) (?$(3!1(B . ?$,1MP(B) (?$(3!2(B . ?$,1MQ(B) (?$(3!3(B . ?$,1MR(B) (?$(3!4(B . ?$,1MS(B) (?$(3!5(B . ?$,1MT(B) (?$(3!6(B . ?$,1MU(B) (?$(3!7(B . ?$,1MV(B) (?$(3!8(B . ?$,1MW(B) (?$(3!9(B . ?$,1MX(B) (?$(3!:(B . ?$,1MY(B) (?$(3!;(B . ?$,1MZ(B) (?$(3!<(B . ?$,1M[(B) (?$(3!=(B . ?$,1M\(B) (?$(3!>(B . ?$,1M](B) (?$(3!?(B . ?$,1M^(B) (?$(3!@(B . ?$,1M_(B) (?$(3!A(B . ?$,1M`(B) (?$(3!B(B . ?$,1Ma(B) (?$(3!C(B . ?$,1Mb(B) (?$(3!D(B . ?$,1Mc(B) (?$(3!E(B . ?$,1Md(B) (?$(3!F(B . ?$,1Me(B) (?$(3!G(B . ?$,1Mf(B) (?$(3!H(B . ?$,1Mg(B) (?$(3!I(B . ?$,1Mh(B) (?$(3!J(B . ?$,1Mi(B) (?$(3!K(B . ?$,1Mj(B) (?$(3!L(B . ?$,1Mk(B) (?$(3!M(B . ?$,1Ml(B) (?$(3!N(B . ?$,1Mm(B) (?$(3!O(B . ?$,1Mn(B) (?$(3!P(B . ?$,1Mo(B) (?$(3!Q(B . ?$,1Mp(B) (?$(3!R(B . ?$,1Mq(B) (?$(3!S(B . ?$,1Mr(B) (?$(3!T(B . ?$,1Ms(B) (?$(3!U(B . ?$,1Mt(B) (?$(3!V(B . ?$,1Mu(B) (?$(3!W(B . ?$,1Mv(B) (?$(3!X(B . ?$,1Mw(B) (?$(3!Y(B . ?$,1Mx(B) (?$(3!Z(B . ?$,1My(B) (?$(3![(B . ?$,1Mz(B) (?$(3!\(B . ?$,1M{(B) (?$(3!](B . ?$,1M|(B) (?$(3!^(B . ?$,1M}(B) (?$(3!_(B . ?$,1M~(B) (?$(3!`(B . ?$,1M(B) (?$(3!a(B . ?$,1N (B) (?$(3!b(B . ?$,1N!(B) (?$(3!c(B . ?$,1N"(B) (?$(3!d(B . ?$,1N#(B) (?$(3!e(B . ?$,1N$(B) (?$(3!f(B . ?$,1N%(B) (?$(3!g(B . ?$,1N&(B) (?$(3!i(B . ?$,1N((B) (?$(3!k(B . ?$,1N*(B) (?$(3!l(B . ?$,1N+(B) (?$(3!m(B . ?$,1N,(B) (?$(3!n(B . ?$,1N-(B) (?$(3!q(B . ?$,1N0(B) (?$(3!r(B . ?$,1N1(B) (?$(3!s(B . ?$,1N2(B) (?$(3!t(B . ?$,1N3(B) (?$(3!u(B . ?$,1N4(B) (?$(3!v(B . ?$,1N5(B) (?$(3!w(B . ?$,1N6(B) (?$(3!y(B . ?$,1N8(B) (?$(3!{(B . ?$,1N:(B) (?$(3!|(B . ?$,1N;(B) (?$(3!}(B . ?$,1N<(B) (?$(3!~(B . ?$,1N=(B) (?$(3"#(B . ?$,1N@(B) (?$(3"$(B . ?$,1NA(B) (?$(3"%(B . ?$,1NB(B) (?$(3"&(B . ?$,1NC(B) (?$(3"'(B . ?$,1ND(B) (?$(3"((B . ?$,1NE(B) (?$(3")(B . ?$,1NF(B) (?$(3"*(B . ?$,1NG(B) (?$(3"+(B . ?$,1NH(B) (?$(3",(B . ?$,1NI(B) (?$(3"-(B . ?$,1NJ(B) (?$(3".(B . ?$,1NK(B) (?$(3"/(B . ?$,1NL(B) (?$(3"0(B . ?$,1NM(B) (?$(3"1(B . ?$,1NN(B) (?$(3"2(B . ?$,1NO(B) (?$(3"3(B . ?$,1NP(B) (?$(3"4(B . ?$,1NQ(B) (?$(3"5(B . ?$,1NR(B) (?$(3"6(B . ?$,1NS(B) (?$(3"7(B . ?$,1NT(B) (?$(3"8(B . ?$,1NU(B) (?$(3"9(B . ?$,1NV(B) (?$(3":(B . ?$,1NW(B) (?$(3";(B . ?$,1NX(B) (?$(3"<(B . ?$,1NY(B) (?$(3"=(B . ?$,1NZ(B) (?$(3">(B . ?$,1N[(B) (?$(3"?(B . ?$,1N\(B) (?$(3"@(B . ?$,1N](B) (?$(3"A(B . ?$,1N^(B) (?$(3"B(B . ?$,1N_(B) (?$(3"C(B . ?$,1N`(B) (?$(3"D(B . ?$,1Na(B) (?$(3"E(B . ?$,1Nb(B) (?$(3"F(B . ?$,1Nc(B) (?$(3"G(B . ?$,1Nd(B) (?$(3"H(B . ?$,1Ne(B) (?$(3"I(B . ?$,1Nf(B) (?$(3"K(B . ?$,1Nh(B) (?$(3"M(B . ?$,1Nj(B) (?$(3"N(B . ?$,1Nk(B) (?$(3"O(B . ?$,1Nl(B) (?$(3"P(B . ?$,1Nm(B) (?$(3"S(B . ?$,1Np(B) (?$(3"T(B . ?$,1Nq(B) (?$(3"U(B . ?$,1Nr(B) (?$(3"V(B . ?$,1Ns(B) (?$(3"W(B . ?$,1Nt(B) (?$(3"X(B . ?$,1Nu(B) (?$(3"Y(B . ?$,1Nv(B) (?$(3"Z(B . ?$,1Nw(B) (?$(3"[(B . ?$,1Nx(B) (?$(3"\(B . ?$,1Ny(B) (?$(3"](B . ?$,1Nz(B) (?$(3"^(B . ?$,1N{(B) (?$(3"_(B . ?$,1N|(B) (?$(3"`(B . ?$,1N}(B) (?$(3"a(B . ?$,1N~(B) (?$(3"b(B . ?$,1N(B) (?$(3"c(B . ?$,1O (B) (?$(3"d(B . ?$,1O!(B) (?$(3"e(B . ?$,1O"(B) (?$(3"f(B . ?$,1O#(B) (?$(3"g(B . ?$,1O$(B) (?$(3"h(B . ?$,1O%(B) (?$(3"i(B . ?$,1O&(B) (?$(3"j(B . ?$,1O'(B) (?$(3"k(B . ?$,1O((B) (?$(3"l(B . ?$,1O)(B) (?$(3"m(B . ?$,1O*(B) (?$(3"n(B . ?$,1O+(B) (?$(3"o(B . ?$,1O,(B) (?$(3"p(B . ?$,1O-(B) (?$(3"q(B . ?$,1O.(B) (?$(3"s(B . ?$,1O0(B) (?$(3"u(B . ?$,1O2(B) (?$(3"v(B . ?$,1O3(B) (?$(3"w(B . ?$,1O4(B) (?$(3"x(B . ?$,1O5(B) (?$(3"{(B . ?$,1O8(B) (?$(3"|(B . ?$,1O9(B) (?$(3"}(B . ?$,1O:(B) (?$(3"~(B . ?$,1O;(B) (?$(3#!(B . ?$,1O<(B) (?$(3#"(B . ?$,1O=(B) (?$(3##(B . ?$,1O>(B) (?$(3#%(B . ?$,1O@(B) (?$(3#'(B . ?$,1OB(B) (?$(3#((B . ?$,1OC(B) (?$(3#)(B . ?$,1OD(B) (?$(3#*(B . ?$,1OE(B) (?$(3#-(B . ?$,1OH(B) (?$(3#.(B . ?$,1OI(B) (?$(3#/(B . ?$,1OJ(B) (?$(3#0(B . ?$,1OK(B) (?$(3#1(B . ?$,1OL(B) (?$(3#2(B . ?$,1OM(B) (?$(3#3(B . ?$,1ON(B) (?$(3#5(B . ?$,1OP(B) (?$(3#6(B . ?$,1OQ(B) (?$(3#7(B . ?$,1OR(B) (?$(3#8(B . ?$,1OS(B) (?$(3#9(B . ?$,1OT(B) (?$(3#:(B . ?$,1OU(B) (?$(3#;(B . ?$,1OV(B) (?$(3#=(B . ?$,1OX(B) (?$(3#>(B . ?$,1OY(B) (?$(3#?(B . ?$,1OZ(B) (?$(3#@(B . ?$,1O[(B) (?$(3#A(B . ?$,1O\(B) (?$(3#B(B . ?$,1O](B) (?$(3#C(B . ?$,1O^(B) (?$(3#D(B . ?$,1O_(B) (?$(3#E(B . ?$,1O`(B) (?$(3#F(B . ?$,1Oa(B) (?$(3#G(B . ?$,1Ob(B) (?$(3#H(B . ?$,1Oc(B) (?$(3#I(B . ?$,1Od(B) (?$(3#J(B . ?$,1Oe(B) (?$(3#K(B . ?$,1Of(B) (?$(3#L(B . ?$,1Og(B) (?$(3#M(B . ?$,1Oh(B) (?$(3#N(B . ?$,1Oi(B) (?$(3#O(B . ?$,1Oj(B) (?$(3#P(B . ?$,1Ok(B) (?$(3#Q(B . ?$,1Ol(B) (?$(3#R(B . ?$,1Om(B) (?$(3#S(B . ?$,1On(B) (?$(3#U(B . ?$,1Op(B) (?$(3#V(B . ?$,1Oq(B) (?$(3#W(B . ?$,1Or(B) (?$(3#X(B . ?$,1Os(B) (?$(3#Y(B . ?$,1Ot(B) (?$(3#Z(B . ?$,1Ou(B) (?$(3#[(B . ?$,1Ov(B) (?$(3#\(B . ?$,1Ow(B) (?$(3#](B . ?$,1Ox(B) (?$(3#^(B . ?$,1Oy(B) (?$(3#_(B . ?$,1Oz(B) (?$(3#`(B . ?$,1O{(B) (?$(3#a(B . ?$,1O|(B) (?$(3#b(B . ?$,1O}(B) (?$(3#c(B . ?$,1O~(B) (?$(3#d(B . ?$,1O(B) (?$(3#e(B . ?$,1P (B) (?$(3#f(B . ?$,1P!(B) (?$(3#g(B . ?$,1P"(B) (?$(3#h(B . ?$,1P#(B) (?$(3#i(B . ?$,1P$(B) (?$(3#j(B . ?$,1P%(B) (?$(3#k(B . ?$,1P&(B) (?$(3#l(B . ?$,1P'(B) (?$(3#m(B . ?$,1P((B) (?$(3#n(B . ?$,1P)(B) (?$(3#o(B . ?$,1P*(B) (?$(3#p(B . ?$,1P+(B) (?$(3#q(B . ?$,1P,(B) (?$(3#r(B . ?$,1P-(B) (?$(3#s(B . ?$,1P.(B) (?$(3#u(B . ?$,1P0(B) (?$(3#w(B . ?$,1P2(B) (?$(3#x(B . ?$,1P3(B) (?$(3#y(B . ?$,1P4(B) (?$(3#z(B . ?$,1P5(B) (?$(3#}(B . ?$,1P8(B) (?$(3#~(B . ?$,1P9(B) (?$(3$!(B . ?$,1P:(B) (?$(3$"(B . ?$,1P;(B) (?$(3$#(B . ?$,1P<(B) (?$(3$$(B . ?$,1P=(B) (?$(3$%(B . ?$,1P>(B) (?$(3$'(B . ?$,1P@(B) (?$(3$((B . ?$,1PA(B) (?$(3$)(B . ?$,1PB(B) (?$(3$*(B . ?$,1PC(B) (?$(3$+(B . ?$,1PD(B) (?$(3$,(B . ?$,1PE(B) (?$(3$-(B . ?$,1PF(B) (?$(3$.(B . ?$,1PG(B) (?$(3$/(B . ?$,1PH(B) (?$(3$0(B . ?$,1PI(B) (?$(3$1(B . ?$,1PJ(B) (?$(3$2(B . ?$,1PK(B) (?$(3$3(B . ?$,1PL(B) (?$(3$4(B . ?$,1PM(B) (?$(3$5(B . ?$,1PN(B) (?$(3$6(B . ?$,1PO(B) (?$(3$7(B . ?$,1PP(B) (?$(3$8(B . ?$,1PQ(B) (?$(3$9(B . ?$,1PR(B) (?$(3$:(B . ?$,1PS(B) (?$(3$;(B . ?$,1PT(B) (?$(3$<(B . ?$,1PU(B) (?$(3$=(B . ?$,1PV(B) (?$(3$>(B . ?$,1PW(B) (?$(3$?(B . ?$,1PX(B) (?$(3$@(B . ?$,1PY(B) (?$(3$A(B . ?$,1PZ(B) (?$(3$B(B . ?$,1P[(B) (?$(3$C(B . ?$,1P\(B) (?$(3$D(B . ?$,1P](B) (?$(3$E(B . ?$,1P^(B) (?$(3$F(B . ?$,1P_(B) (?$(3$G(B . ?$,1P`(B) (?$(3$H(B . ?$,1Pa(B) (?$(3$I(B . ?$,1Pb(B) (?$(3$J(B . ?$,1Pc(B) (?$(3$K(B . ?$,1Pd(B) (?$(3$L(B . ?$,1Pe(B) (?$(3$M(B . ?$,1Pf(B) (?$(3$O(B . ?$,1Ph(B) (?$(3$P(B . ?$,1Pi(B) (?$(3$Q(B . ?$,1Pj(B) (?$(3$R(B . ?$,1Pk(B) (?$(3$S(B . ?$,1Pl(B) (?$(3$T(B . ?$,1Pm(B) (?$(3$U(B . ?$,1Pn(B) (?$(3$V(B . ?$,1Po(B) (?$(3$W(B . ?$,1Pp(B) (?$(3$X(B . ?$,1Pq(B) (?$(3$Y(B . ?$,1Pr(B) (?$(3$Z(B . ?$,1Ps(B) (?$(3$[(B . ?$,1Pt(B) (?$(3$\(B . ?$,1Pu(B) (?$(3$](B . ?$,1Pv(B) (?$(3$^(B . ?$,1Pw(B) (?$(3$_(B . ?$,1Px(B) (?$(3$`(B . ?$,1Py(B) (?$(3$a(B . ?$,1Pz(B) (?$(3$h(B . ?$,1Q!(B) (?$(3$i(B . ?$,1Q"(B) (?$(3$j(B . ?$,1Q#(B) (?$(3$k(B . ?$,1Q$(B) (?$(3$l(B . ?$,1Q%(B) (?$(3$m(B . ?$,1Q&(B) (?$(3$n(B . ?$,1Q'(B) (?$(3$o(B . ?$,1Q((B) (?$(3$p(B . ?$,1Q)(B) (?$(3$q(B . ?$,1Q*(B) (?$(3$r(B . ?$,1Q+(B) (?$(3$s(B . ?$,1Q,(B) (?$(3$t(B . ?$,1Q-(B) (?$(3$u(B . ?$,1Q.(B) (?$(3$v(B . ?$,1Q/(B) (?$(3$w(B . ?$,1Q0(B) (?$(3$x(B . ?$,1Q1(B) (?$(3$y(B . ?$,1Q2(B) (?$(3$z(B . ?$,1Q3(B) (?$(3${(B . ?$,1Q4(B) (?$(3$|(B . ?$,1Q5(B) (?$(3$}(B . ?$,1Q6(B) (?$(3$~(B . ?$,1Q7(B) (?$(3%!(B . ?$,1Q8(B) (?$(3%"(B . ?$,1Q9(B) (?$(3%#(B . ?$,1Q:(B) (?$(3%$(B . ?$,1Q;(B) (?$(3%%(B . ?$,1Q<(B))) ;; Uses post-21.1 definitions. ;; (in-is13194 ;; '((?(5!(B . ?$,15A(B) ;; (?(5"(B . ?$,15B(B) ;; (?(5#(B . ?$,15C(B) ;; (?(5$(B . ?$,15E(B) ;; (?(5%(B . ?$,15F(B) ;; (?(5&(B . ?$,15G(B) ;; (?(5'(B . ?$,15H(B) ;; (?(5((B . ?$,15I(B) ;; (?(5)(B . ?$,15J(B) ;; (?(5*(B . ?$,15K(B) ;; (?(5+(B . ?$,15N(B) ;; (?(5,(B . ?$,15O(B) ;; (?(5-(B . ?$,15P(B) ;; (?(5.(B . ?$,15M(B) ;; (?(5/(B . ?$,15R(B) ;; (?(50(B . ?$,15S(B) ;; (?(51(B . ?$,15T(B) ;; (?(52(B . ?$,15M(B) ;; (?(53(B . ?$,15U(B) ;; (?(54(B . ?$,15V(B) ;; (?(55(B . ?$,15W(B) ;; (?(56(B . ?$,15X(B) ;; (?(57(B . ?$,15Y(B) ;; (?(58(B . ?$,15Z(B) ;; (?(59(B . ?$,15[(B) ;; (?(5:(B . ?$,15\(B) ;; (?(5;(B . ?$,15](B) ;; (?(5<(B . ?$,15^(B) ;; (?(5=(B . ?$,15_(B) ;; (?(5>(B . ?$,15`(B) ;; (?(5?(B . ?$,15a(B) ;; (?(5@(B . ?$,15b(B) ;; (?(5A(B . ?$,15c(B) ;; (?(5B(B . ?$,15d(B) ;; (?(5C(B . ?$,15e(B) ;; (?(5D(B . ?$,15f(B) ;; (?(5E(B . ?$,15g(B) ;; (?(5F(B . ?$,15h(B) ;; (?(5G(B . ?$,15i(B) ;; (?(5H(B . ?$,15j(B) ;; (?(5I(B . ?$,15k(B) ;; (?(5J(B . ?$,15l(B) ;; (?(5K(B . ?$,15m(B) ;; (?(5L(B . ?$,15n(B) ;; (?(5M(B . ?$,15o(B) ;; (?(5N(B . ?$,16?(B) ;; (?(5O(B . ?$,15p(B) ;; (?(5P(B . ?$,15q(B) ;; (?(5Q(B . ?$,15r(B) ;; (?(5R(B . ?$,15s(B) ;; (?(5S(B . ?$,15t(B) ;; (?(5T(B . ?$,15u(B) ;; (?(5U(B . ?$,15v(B) ;; (?(5V(B . ?$,15w(B) ;; (?(5W(B . ?$,15x(B) ;; (?(5X(B . ?$,15y(B) ;; (?(5Z(B . ?$,15~(B) ;; (?(5[(B . ?$,15(B) ;; (?(5\(B . ?$,16 (B) ;; (?(5](B . ?$,16!(B) ;; (?(5^(B . ?$,16"(B) ;; (?(5_(B . ?$,16#(B) ;; (?(5`(B . ?$,16&(B) ;; (?(5a(B . ?$,16'(B) ;; (?(5b(B . ?$,16((B) ;; (?(5c(B . ?$,16%(B) ;; (?(5d(B . ?$,16*(B) ;; (?(5e(B . ?$,16+(B) ;; (?(5f(B . ?$,16,(B) ;; (?(5g(B . ?$,16)(B) ;; (?(5h(B . ?$,16-(B) ;; (?(5i(B . ?$,15|(B) ;; (?(5j(B . ?$,16D(B) ;; (?(5q(B . ?$,16F(B) ;; (?(5r(B . ?$,16G(B) ;; (?(5s(B . ?$,16H(B) ;; (?(5t(B . ?$,16I(B) ;; (?(5u(B . ?$,16J(B) ;; (?(5v(B . ?$,16K(B) ;; (?(5w(B . ?$,16L(B) ;; (?(5x(B . ?$,16M(B) ;; (?(5y(B . ?$,16N(B) ;; (?(5z(B . ?$,16O(B))) (katakana-jisx0201 '((?(I!(B . ?$,3sa(B) (?\(I"(B . ?\$,3sb(B) (?\(I#(B . ?\$,3sc(B) (?(I$(B . ?$,3sd(B) (?(I%(B . ?$,3se(B) (?(I&(B . ?$,3sf(B) (?(I'(B . ?$,3sg(B) (?(I((B . ?$,3sh(B) (?(I)(B . ?$,3si(B) (?(I*(B . ?$,3sj(B) (?(I+(B . ?$,3sk(B) (?(I,(B . ?$,3sl(B) (?(I-(B . ?$,3sm(B) (?(I.(B . ?$,3sn(B) (?(I/(B . ?$,3so(B) (?(I0(B . ?$,3sp(B) (?(I1(B . ?$,3sq(B) (?(I2(B . ?$,3sr(B) (?(I3(B . ?$,3ss(B) (?(I4(B . ?$,3st(B) (?(I5(B . ?$,3su(B) (?(I6(B . ?$,3sv(B) (?(I7(B . ?$,3sw(B) (?(I8(B . ?$,3sx(B) (?(I9(B . ?$,3sy(B) (?(I:(B . ?$,3sz(B) (?(I;(B . ?$,3s{(B) (?(I<(B . ?$,3s|(B) (?(I=(B . ?$,3s}(B) (?(I>(B . ?$,3s~(B) (?(I?(B . ?$,3s(B) (?(I@(B . ?$,3t (B) (?(IA(B . ?$,3t!(B) (?(IB(B . ?$,3t"(B) (?(IC(B . ?$,3t#(B) (?(ID(B . ?$,3t$(B) (?(IE(B . ?$,3t%(B) (?(IF(B . ?$,3t&(B) (?(IG(B . ?$,3t'(B) (?(IH(B . ?$,3t((B) (?(II(B . ?$,3t)(B) (?(IJ(B . ?$,3t*(B) (?(IK(B . ?$,3t+(B) (?(IL(B . ?$,3t,(B) (?(IM(B . ?$,3t-(B) (?(IN(B . ?$,3t.(B) (?(IO(B . ?$,3t/(B) (?(IP(B . ?$,3t0(B) (?(IQ(B . ?$,3t1(B) (?(IR(B . ?$,3t2(B) (?(IS(B . ?$,3t3(B) (?(IT(B . ?$,3t4(B) (?(IU(B . ?$,3t5(B) (?(IV(B . ?$,3t6(B) (?(IW(B . ?$,3t7(B) (?(IX(B . ?$,3t8(B) (?(IY(B . ?$,3t9(B) (?(IZ(B . ?$,3t:(B) (?(I[(B . ?$,3t;(B) (?(I\(B . ?$,3t<(B) (?(I](B . ?$,3t=(B) (?(I^(B . ?$,3t>(B) (?(I_(B . ?$,3t?(B))) (chinese-sisheng '((?(0!(B . ?$,1 !(B) (?(0"(B . ?,Aa(B) (?(0#(B . ?$,1".(B) (?(0$(B . ?,A`(B) (?(0%(B . ?$,1 3(B) (?(0&(B . ?,Ai(B) (?(0'(B . ?$,1 ;(B) (?(0((B . ?,Ah(B) (?(0)(B . ?$,1 K(B) (?(0*(B . ?,Am(B) (?(0+(B . ?$,1"0(B) (?(0,(B . ?,Al(B) (?(0-(B . ?$,1 m(B) (?(0.(B . ?,As(B) (?(0/(B . ?$,1"2(B) (?(00(B . ?,Ar(B) (?(01(B . ?$,1!+(B) (?(02(B . ?,Az(B) (?(03(B . ?$,1"4(B) (?(04(B . ?,Ay(B) (?(05(B . ?$,1"6(B) (?(06(B . ?$,1"8(B) (?(07(B . ?$,1":(B) (?(08(B . ?$,1"<(B) (?(09(B . ?,A|(B) (?(0:(B . ?,Aj(B) (?(0<(B . ?$,1m(B) (?(0=(B . ?$,1 d(B) (?(0>(B . ?$,1 h(B) (?(0?(B . ?$,1"Y(B) (?(0A(B . ?$,1$i(B) (?(0B(B . ?$,1$j(B) (?(0C(B . ?$,1$g(B) (?(0D(B . ?$,1$k(B) (?(0E(B . ?$,2@%(B) (?(0F(B . ?$,2@&(B) (?(0G(B . ?$,2@'(B) (?(0H(B . ?$,2@((B) (?(0I(B . ?$,2@)(B) (?(0J(B . ?$,2@*(B) (?(0K(B . ?$,2@+(B) (?(0L(B . ?$,2@,(B) (?(0M(B . ?$,2@-(B) (?(0N(B . ?$,2@.(B) (?(0O(B . ?$,2@/(B) (?(0P(B . ?$,2@0(B) (?(0Q(B . ?$,2@1(B) (?(0R(B . ?$,2@2(B) (?(0S(B . ?$,2@3(B) (?(0T(B . ?$,2@4(B) (?(0U(B . ?$,2@5(B) (?(0V(B . ?$,2@6(B) (?(0W(B . ?$,2@7(B) (?(0X(B . ?$,2@8(B) (?(0Y(B . ?$,2@9(B) (?(0Z(B . ?$,2@:(B) (?(0[(B . ?$,2@;(B) (?(0\(B . ?$,2@<(B) (?(0](B . ?$,2@=(B) (?(0^(B . ?$,2@>(B) (?(0_(B . ?$,2@?(B) (?(0`(B . ?$,2@@(B) (?(0a(B . ?$,2@A(B) (?(0b(B . ?$,2@B(B) (?(0c(B . ?$,2@C(B) (?(0d(B . ?$,2@D(B) (?(0e(B . ?$,2@E(B) (?(0f(B . ?$,2@F(B) (?(0g(B . ?$,2@G(B) (?(0h(B . ?$,2@H(B) (?(0i(B . ?$,2@I(B))) (lao '((?(1!(B . ?$,1D!(B) (?(1"(B . ?$,1D"(B) (?(1$(B . ?$,1D$(B) (?(1'(B . ?$,1D'(B) (?(1((B . ?$,1D((B) (?(1*(B . ?$,1D*(B) (?(1-(B . ?$,1D-(B) (?(14(B . ?$,1D4(B) (?(15(B . ?$,1D5(B) (?(16(B . ?$,1D6(B) (?(17(B . ?$,1D7(B) (?(19(B . ?$,1D9(B) (?(1:(B . ?$,1D:(B) (?(1;(B . ?$,1D;(B) (?(1<(B . ?$,1D<(B) (?(1=(B . ?$,1D=(B) (?(1>(B . ?$,1D>(B) (?(1?(B . ?$,1D?(B) (?(1A(B . ?$,1DA(B) (?(1B(B . ?$,1DB(B) (?(1C(B . ?$,1DC(B) (?(1E(B . ?$,1DE(B) (?(1G(B . ?$,1DG(B) (?(1J(B . ?$,1DJ(B) (?(1K(B . ?$,1DK(B) (?(1M(B . ?$,1DM(B) (?(1N(B . ?$,1DN(B) (?(1O(B . ?$,1DO(B) (?(1P(B . ?$,1DP(B) (?(1Q(B . ?$,1DQ(B) (?(1R(B . ?$,1DR(B) (?(1S(B . ?$,1DS(B) (?(1T(B . ?$,1DT(B) (?(1U(B . ?$,1DU(B) (?(1V(B . ?$,1DV(B) (?(1W(B . ?$,1DW(B) (?(1X(B . ?$,1DX(B) (?(1Y(B . ?$,1DY(B) (?(1[(B . ?$,1D[(B) (?(1\(B . ?$,1D\(B) (?(1](B . ?$,1D](B) (?(1`(B . ?$,1D`(B) (?(1a(B . ?$,1Da(B) (?(1b(B . ?$,1Db(B) (?(1c(B . ?$,1Dc(B) (?(1d(B . ?$,1Dd(B) (?(1f(B . ?$,1Df(B) (?(1h(B . ?$,1Dh(B) (?(1i(B . ?$,1Di(B) (?(1j(B . ?$,1Dj(B) (?(1k(B . ?$,1Dk(B) (?(1l(B . ?$,1Dl(B) (?(1m(B . ?$,1Dm(B) (?(1p(B . ?$,1Dp(B) (?(1q(B . ?$,1Dq(B) (?(1r(B . ?$,1Dr(B) (?(1s(B . ?$,1Ds(B) (?(1t(B . ?$,1Dt(B) (?(1u(B . ?$,1Du(B) (?(1v(B . ?$,1Dv(B) (?(1w(B . ?$,1Dw(B) (?(1x(B . ?$,1Dx(B) (?(1y(B . ?$,1Dy(B) (?(1|(B . ?$,1D|(B) (?(1}(B . ?$,1D}(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 ;; in-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 encode-translator (optimize-char-table encode-translator)) (if (charsetp cs) (push cs safe-charsets) (setq safe-charsets (append (delq 'ascii (coding-system-get cs 'safe-charsets)) safe-charsets))) (cond ((eq cs 'vietnamese-viscii) (coding-system-put 'vietnamese-viscii 'translation-table-for-input encode-translator) (coding-system-put 'vietnamese-viqr 'translation-table-for-input encode-translator)) ((memq cs '(lao thai-tis620 tibetan-iso-8bit)) (coding-system-put cs 'translation-table-for-input cs))))) (optimize-char-table ucs-mule-to-mule-unicode) (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))) (defvar translation-table-for-input (make-translation-table)) ;; Arrange to set up the translation table for Quail. This probably ;; isn't foolproof. (defun ucs-quail-activate () "Set up an appropriate `translation-table-for-input' for current buffer. Intended to be added to `quail-activate-hook'." (let ((cs (coding-system-base buffer-file-coding-system))) (if (eq cs 'undecided) (setq cs (coding-system-base default-buffer-file-coding-system))) (if (coding-system-get cs 'translation-table-for-input) (set (make-variable-buffer-local 'translation-table-for-input) (coding-system-get cs 'translation-table-for-input))))) ;; The minibuffer needs to acquire a `buffer-file-coding-system' for ;; the above to work in it. (defun ucs-minibuffer-setup () "Set up an appropriate `buffer-file-coding-system' for current buffer. Does so by inheriting it from the cadr of the current buffer list. Intended to be added to `minibuffer-setup-hook'." (set (make-local-variable 'buffer-file-coding-system) (with-current-buffer (cadr (buffer-list)) buffer-file-coding-system))) ;; Modified to allow display of arbitrary characters with an ;; iso-10646-encoded (`Unicode') font. (define-ccl-program ccl-encode-unicode-font `(0 ((if (r0 == ,(charset-id 'ascii)) ((r2 = r1) (r1 = 0)) ( ;; Look for a translation for non-ASCII chars. For a 2D ;; charset, produce a single code for the translation. ;; Official 2D sets are in the charset id range [#x90,#x99], ;; private ones in the range [#xf0,#xfe] (with #xff not used). ;; Fixme: Is there a better way to do this? (r3 = (r0 >= #x90)) (r3 &= (r0 <= #x99)) (r3 |= (r0 >= #xf0)) (if r3 ; 2D input (r1 = ((r1 << 7) | r2))) (translate-character ucs-mule-to-mule-unicode r0 r1) (r3 = (r0 >= #x90)) (r3 &= (r0 <= #x99)) (r3 |= (r0 >= #xf0)) (if r3 ; 2D translation ((r2 = (r1 & 127)) (r1 = (r1 >> 7)))) (if (r0 == ,(charset-id 'latin-iso8859-1)) ((r2 = (r1 + 128)) (r1 = 0)) (if (r0 == ,(charset-id 'mule-unicode-0100-24ff)) ((r1 *= 96) (r1 += r2) (r1 += ,(- #x100 (* 32 96) 32)) (r1 >8= 0) (r2 = r7)) (if (r0 == ,(charset-id 'mule-unicode-2500-33ff)) ((r1 *= 96) (r1 += r2) (r1 += ,(- #x2500 (* 32 96) 32)) (r1 >8= 0) (r2 = r7)) (if (r0 == ,(charset-id 'mule-unicode-e000-ffff)) ((r1 *= 96) (r1 += r2) (r1 += ,(- #xe000 (* 32 96) 32)) (r1 >8= 0) (r2 = r7)))))))))) "Encode characters for display with iso10646 font. Translate through table `ucs-mule-to-mule-unicode' initially.") ;; Redefinitions of the versions in mule.el to take into account ;; relevant translation tables. (defun decode-char (ccs code-point &optional restriction) "Return character specified by coded character set CCS and CODE-POINT in it. Return nil if such a character is not supported. Currently the only supported coded character set is `ucs' (ISO/IEC 10646: Universal Multi-Octet Coded Character Set), and the result is translated through the char table `utf-8-translation-table-for-decode'. Optional argument RESTRICTION specifies a way to map the pair of CCS and CODE-POINT to a character. Currently not supported and just ignored." (cond ((eq ccs 'ucs) (let ((c (cond ((< code-point 160) code-point) ((< code-point 256) (make-char 'latin-iso8859-1 code-point)) ((< code-point #x2500) (setq code-point (- code-point #x0100)) (make-char 'mule-unicode-0100-24ff (+ (/ code-point 96) 32) (+ (% code-point 96) 32))) ((< code-point #x3400) (setq code-point (- code-point #x2500)) (make-char 'mule-unicode-2500-33ff (+ (/ code-point 96) 32) (+ (% code-point 96) 32))) ((and (>= code-point #xe000) (< code-point #x10000)) (setq code-point (- code-point #xe000)) (make-char 'mule-unicode-e000-ffff (+ (/ code-point 96) 32) (+ (% code-point 96) 32)))))) (if (and c (aref utf-8-translation-table-for-decode c)) (aref utf-8-translation-table-for-decode c) c))))) (defun encode-char (char ccs &optional restriction) "Return code-point in coded character set CCS that corresponds to CHAR. Return nil if CHAR is not included in CCS. Currently the only supported coded character set is `ucs' (ISO/IEC 10646: Universal Multi-Octet Coded Character Set), and CHAR is first translated through the char-table `ucs-mule-to-mule-unicode'. CHAR should be in one of these charsets: ascii, latin-iso8859-1, mule-unicode-0100-24ff, mule-unicode-2500-33ff, mule-unicode-e000-ffff, eight-bit-control Otherwise, return nil. Optional argument RESTRICTION specifies a way to map CHAR to a code-point in CCS. Currently not supported and just ignored." (let* ((split (split-char char)) (charset (car split)) trans) (cond ((eq ccs 'ucs) (setq trans (aref ucs-mule-to-mule-unicode char)) (if trans (setq split (split-char trans) charset (car split))) (cond ((eq charset 'ascii) char) ((eq charset 'latin-iso8859-1) (+ (nth 1 split) 128)) ((eq charset 'mule-unicode-0100-24ff) (+ #x0100 (+ (* (- (nth 1 split) 32) 96) (- (nth 2 split) 32)))) ((eq charset 'mule-unicode-2500-33ff) (+ #x2500 (+ (* (- (nth 1 split) 32) 96) (- (nth 2 split) 32)))) ((eq charset 'mule-unicode-e000-ffff) (+ #xe000 (+ (* (- (nth 1 split) 32) 96) (- (nth 2 split) 32)))) ((eq charset 'eight-bit-control) char)))))) (defalias 'ucs-tables-unload-hook 'ucs-fragment-8859) (provide 'ucs-tables) ;;; ucs-tables.el ends here