]> code.delx.au - gnu-emacs/blobdiff - lisp/language/ind-util.el
Merge from emacs--devo--0
[gnu-emacs] / lisp / language / ind-util.el
index 99a8d080d3b17d6eebc83f15eb00974531c5cb04..5e4d0d9967027d9203fd4f49a500117b06db0b50 100644 (file)
@@ -408,7 +408,7 @@ FUNCTION will be called 15 times."
     ;; trans-char -- nil / string / list of strings
     (when (and char trans-char)
       (if (stringp trans-char) (setq trans-char (list trans-char)))
-      (if (char-valid-p char) (setq char (char-to-string char)))
+      (if (characterp char) (setq char (char-to-string char)))
       (puthash char (car trans-char) encode-hash)
       (dolist (trans trans-char)
         (puthash trans char decode-hash)))))
@@ -426,7 +426,7 @@ FUNCTION will be called 15 times."
 (defun indian--puthash-c (c trans-c halant hashtbls)
   (indian--map
    (lambda (c trans-c)
-     (if (char-valid-p c) (setq c (char-to-string c)))
+     (if (characterp c) (setq c (char-to-string c)))
      (indian--puthash-char (concat c halant) trans-c hashtbls))
    c trans-c))
 
@@ -442,8 +442,8 @@ FUNCTION will be called 15 times."
      (indian--map
       (lambda (v trans-v)
        (when (and c trans-c  v trans-v)
-         (if (char-valid-p c) (setq c (char-to-string c)))
-         (setq v (if (char-valid-p (cadr v)) (char-to-string (cadr v)) ""))
+         (if (characterp c) (setq c (char-to-string c)))
+         (setq v (if (characterp (cadr v)) (char-to-string (cadr v)) ""))
          (if (stringp trans-c) (setq trans-c (list trans-c)))
          (if (stringp trans-v) (setq trans-v (list trans-v)))
          (indian--puthash-char
@@ -577,152 +577,165 @@ FUNCTION will be called 15 times."
 
 ;; The followings provide conversion between IS 13194 (ISCII) and UCS.
 
-(defvar ucs-devanagari-to-is13194-alist
-  '(;;Unicode vs IS13194  ;; only Devanagari is supported now.
-    (?\x0900 . "[U+0900]")
-    (?\x0901 . "\e(5!\e(B")
-    (?\x0902 . "\e(5"\e(B")
-    (?\x0903 . "\e(5#\e(B")
-    (?\x0904 . "[U+0904]")
-    (?\x0905 . "\e(5$\e(B")
-    (?\x0906 . "\e(5%\e(B")
-    (?\x0907 . "\e(5&\e(B")
-    (?\x0908 . "\e(5'\e(B")
-    (?\x0909 . "\e(5(\e(B")
-    (?\x090a . "\e(5)\e(B")
-    (?\x090b . "\e(5*\e(B")
-    (?\x090c . "\e(5&i\e(B")
-    (?\x090d . "\e(5.\e(B")
-    (?\x090e . "\e(5+\e(B")
-    (?\x090f . "\e(5,\e(B")
-    (?\x0910 . "\e(5-\e(B")
-    (?\x0911 . "\e(52\e(B")
-    (?\x0912 . "\e(5/\e(B")
-    (?\x0913 . "\e(50\e(B")
-    (?\x0914 . "\e(51\e(B")
-    (?\x0915 . "\e(53\e(B")
-    (?\x0916 . "\e(54\e(B")
-    (?\x0917 . "\e(55\e(B")
-    (?\x0918 . "\e(56\e(B")
-    (?\x0919 . "\e(57\e(B")
-    (?\x091a . "\e(58\e(B")
-    (?\x091b . "\e(59\e(B")
-    (?\x091c . "\e(5:\e(B")
-    (?\x091d . "\e(5;\e(B")
-    (?\x091e . "\e(5<\e(B")
-    (?\x091f . "\e(5=\e(B")
-    (?\x0920 . "\e(5>\e(B")
-    (?\x0921 . "\e(5?\e(B")
-    (?\x0922 . "\e(5@\e(B")
-    (?\x0923 . "\e(5A\e(B")
-    (?\x0924 . "\e(5B\e(B")
-    (?\x0925 . "\e(5C\e(B")
-    (?\x0926 . "\e(5D\e(B")
-    (?\x0927 . "\e(5E\e(B")
-    (?\x0928 . "\e(5F\e(B")
-    (?\x0929 . "\e(5G\e(B")
-    (?\x092a . "\e(5H\e(B")
-    (?\x092b . "\e(5I\e(B")
-    (?\x092c . "\e(5J\e(B")
-    (?\x092d . "\e(5K\e(B")
-    (?\x092e . "\e(5L\e(B")
-    (?\x092f . "\e(5M\e(B")
-    (?\x0930 . "\e(5O\e(B")
-    (?\x0931 . "\e(5P\e(B")
-    (?\x0932 . "\e(5Q\e(B")
-    (?\x0933 . "\e(5R\e(B")
-    (?\x0934 . "\e(5S\e(B")
-    (?\x0935 . "\e(5T\e(B")
-    (?\x0936 . "\e(5U\e(B")
-    (?\x0937 . "\e(5V\e(B")
-    (?\x0938 . "\e(5W\e(B")
-    (?\x0939 . "\e(5X\e(B")
-    (?\x093a . "[U+093a]")
-    (?\x093b . "[U+093b]")
-    (?\x093c . "\e(5i\e(B")
-    (?\x093d . "\e(5ji\e(B")
-    (?\x093e . "\e(5Z\e(B")
-    (?\x093f . "\e(5[\e(B")
-    (?\x0940 . "\e(5\\e(B")
-    (?\x0941 . "\e(5]\e(B")
-    (?\x0942 . "\e(5^\e(B")
-    (?\x0943 . "\e(5_\e(B")
-    (?\x0944 . "\e(5_i\e(B")
-    (?\x0945 . "\e(5c\e(B")
-    (?\x0946 . "\e(5`\e(B")
-    (?\x0947 . "\e(5a\e(B")
-    (?\x0948 . "\e(5b\e(B")
-    (?\x0949 . "\e(5g\e(B")
-    (?\x094a . "\e(5d\e(B")
-    (?\x094b . "\e(5e\e(B")
-    (?\x094c . "\e(5f\e(B")
-    (?\x094d . "\e(5h\e(B")
-    (?\x094e . "[U+094e]")
-    (?\x094f . "[U+094f]")
-    (?\x0950 . "\e(5!i\e(B")
-    (?\x0951 . "\e(5p5\e(B")
-    (?\x0952 . "\e(5p8\e(B")
-    (?\x0953 . "[DEVANAGARI GRAVE ACCENT]")
-    (?\x0954 . "[DEVANAGARI ACUTE ACCENT]")
-    (?\x0955 . "[U+0955]")
-    (?\x0956 . "[U+0956]")
-    (?\x0957 . "[U+0957]")
-    (?\x0958 . "\e(53i\e(B")
-    (?\x0959 . "\e(54i\e(B")
-    (?\x095a . "\e(55i\e(B")
-    (?\x095b . "\e(5:i\e(B")
-    (?\x095c . "\e(5?i\e(B")
-    (?\x095d . "\e(5@i\e(B")
-    (?\x095e . "\e(5Ii\e(B")
-    (?\x095f . "\e(5N\e(B")
-    (?\x0960 . "\e(5*i\e(B")
-    (?\x0961 . "\e(5'i\e(B")
-    (?\x0962 . "\e(5[i\e(B")
-    (?\x0963 . "\e(5ei\e(B")
-    (?\x0964 . "\e(5j\e(B")
-    (?\x0965 . "\e(5jj\e(B")
-    (?\x0966 . "\e(5q\e(B")
-    (?\x0967 . "\e(5r\e(B")
-    (?\x0968 . "\e(5s\e(B")
-    (?\x0969 . "\e(5t\e(B")
-    (?\x096a . "\e(5u\e(B")
-    (?\x096b . "\e(5v\e(B")
-    (?\x096c . "\e(5w\e(B")
-    (?\x096d . "\e(5x\e(B")
-    (?\x096e . "\e(5y\e(B")
-    (?\x096f . "\e(5z\e(B")
-    (?\x0970 . "[U+0970]")
-    (?\x0971 . "[U+0971]")
-    (?\x0972 . "[U+0972]")
-    (?\x0973 . "[U+0973]")
-    (?\x0974 . "[U+0974]")
-    (?\x0975 . "[U+0975]")
-    (?\x0976 . "[U+0976]")
-    (?\x0977 . "[U+0977]")
-    (?\x0978 . "[U+0978]")
-    (?\x0979 . "[U+0979]")
-    (?\x097a . "[U+097a]")
-    (?\x097b . "[U+097b]")
-    (?\x097c . "[U+097c]")
-    (?\x097d . "[U+097d]")
-    (?\x097e . "[U+097e]")
-    (?\x097f . "[U+097f]")))
-
-(defvar ucs-bengali-to-is13194-alist nil)
-(defvar ucs-assamese-to-is13194-alist nil)
-(defvar ucs-gurmukhi-to-is13194-alist nil)
-(defvar ucs-gujarati-to-is13194-alist nil)
-(defvar ucs-oriya-to-is13194-alist nil)
-(defvar ucs-tamil-to-is13194-alist nil)
-(defvar ucs-telugu-to-is13194-alist nil)
-(defvar ucs-malayalam-to-is13194-alist nil)
-(defvar ucs-kannada-to-is13194-alist nil)
-
-(defvar is13194-default-repartory 'devanagari)
+(let
+    ;;Unicode vs IS13194  ;; only Devanagari is supported now.
+    ((ucs-devanagari-to-is13194-alist
+      '((?\x0900 . "[U+0900]")
+       (?\x0901 . "\e(5!\e(B")
+       (?\x0902 . "\e(5"\e(B")
+       (?\x0903 . "\e(5#\e(B")
+       (?\x0904 . "[U+0904]")
+       (?\x0905 . "\e(5$\e(B")
+       (?\x0906 . "\e(5%\e(B")
+       (?\x0907 . "\e(5&\e(B")
+       (?\x0908 . "\e(5'\e(B")
+       (?\x0909 . "\e(5(\e(B")
+       (?\x090a . "\e(5)\e(B")
+       (?\x090b . "\e(5*\e(B")
+       (?\x090c . "\e(5&i\e(B")
+       (?\x090d . "\e(5.\e(B")
+       (?\x090e . "\e(5+\e(B")
+       (?\x090f . "\e(5,\e(B")
+       (?\x0910 . "\e(5-\e(B")
+       (?\x0911 . "\e(52\e(B")
+       (?\x0912 . "\e(5/\e(B")
+       (?\x0913 . "\e(50\e(B")
+       (?\x0914 . "\e(51\e(B")
+       (?\x0915 . "\e(53\e(B")
+       (?\x0916 . "\e(54\e(B")
+       (?\x0917 . "\e(55\e(B")
+       (?\x0918 . "\e(56\e(B")
+       (?\x0919 . "\e(57\e(B")
+       (?\x091a . "\e(58\e(B")
+       (?\x091b . "\e(59\e(B")
+       (?\x091c . "\e(5:\e(B")
+       (?\x091d . "\e(5;\e(B")
+       (?\x091e . "\e(5<\e(B")
+       (?\x091f . "\e(5=\e(B")
+       (?\x0920 . "\e(5>\e(B")
+       (?\x0921 . "\e(5?\e(B")
+       (?\x0922 . "\e(5@\e(B")
+       (?\x0923 . "\e(5A\e(B")
+       (?\x0924 . "\e(5B\e(B")
+       (?\x0925 . "\e(5C\e(B")
+       (?\x0926 . "\e(5D\e(B")
+       (?\x0927 . "\e(5E\e(B")
+       (?\x0928 . "\e(5F\e(B")
+       (?\x0929 . "\e(5G\e(B")
+       (?\x092a . "\e(5H\e(B")
+       (?\x092b . "\e(5I\e(B")
+       (?\x092c . "\e(5J\e(B")
+       (?\x092d . "\e(5K\e(B")
+       (?\x092e . "\e(5L\e(B")
+       (?\x092f . "\e(5M\e(B")
+       (?\x0930 . "\e(5O\e(B")
+       (?\x0931 . "\e(5P\e(B")
+       (?\x0932 . "\e(5Q\e(B")
+       (?\x0933 . "\e(5R\e(B")
+       (?\x0934 . "\e(5S\e(B")
+       (?\x0935 . "\e(5T\e(B")
+       (?\x0936 . "\e(5U\e(B")
+       (?\x0937 . "\e(5V\e(B")
+       (?\x0938 . "\e(5W\e(B")
+       (?\x0939 . "\e(5X\e(B")
+       (?\x093a . "[U+093a]")
+       (?\x093b . "[U+093b]")
+       (?\x093c . "\e(5i\e(B")
+       (?\x093d . "\e(5ji\e(B")
+       (?\x093e . "\e(5Z\e(B")
+       (?\x093f . "\e(5[\e(B")
+       (?\x0940 . "\e(5\\e(B")
+       (?\x0941 . "\e(5]\e(B")
+       (?\x0942 . "\e(5^\e(B")
+       (?\x0943 . "\e(5_\e(B")
+       (?\x0944 . "\e(5_i\e(B")
+       (?\x0945 . "\e(5c\e(B")
+       (?\x0946 . "\e(5`\e(B")
+       (?\x0947 . "\e(5a\e(B")
+       (?\x0948 . "\e(5b\e(B")
+       (?\x0949 . "\e(5g\e(B")
+       (?\x094a . "\e(5d\e(B")
+       (?\x094b . "\e(5e\e(B")
+       (?\x094c . "\e(5f\e(B")
+       (?\x094d . "\e(5h\e(B")
+       (?\x094e . "[U+094e]")
+       (?\x094f . "[U+094f]")
+       (?\x0950 . "\e(5!i\e(B")
+       (?\x0951 . "\e(5p5\e(B")
+       (?\x0952 . "\e(5p8\e(B")
+       (?\x0953 . "[DEVANAGARI GRAVE ACCENT]")
+       (?\x0954 . "[DEVANAGARI ACUTE ACCENT]")
+       (?\x0955 . "[U+0955]")
+       (?\x0956 . "[U+0956]")
+       (?\x0957 . "[U+0957]")
+       (?\x0958 . "\e(53i\e(B")
+       (?\x0959 . "\e(54i\e(B")
+       (?\x095a . "\e(55i\e(B")
+       (?\x095b . "\e(5:i\e(B")
+       (?\x095c . "\e(5?i\e(B")
+       (?\x095d . "\e(5@i\e(B")
+       (?\x095e . "\e(5Ii\e(B")
+       (?\x095f . "\e(5N\e(B")
+       (?\x0960 . "\e(5*i\e(B")
+       (?\x0961 . "\e(5'i\e(B")
+       (?\x0962 . "\e(5[i\e(B")
+       (?\x0963 . "\e(5ei\e(B")
+       (?\x0964 . "\e(5j\e(B")
+       (?\x0965 . "\e(5jj\e(B")
+       (?\x0966 . "\e(5q\e(B")
+       (?\x0967 . "\e(5r\e(B")
+       (?\x0968 . "\e(5s\e(B")
+       (?\x0969 . "\e(5t\e(B")
+       (?\x096a . "\e(5u\e(B")
+       (?\x096b . "\e(5v\e(B")
+       (?\x096c . "\e(5w\e(B")
+       (?\x096d . "\e(5x\e(B")
+       (?\x096e . "\e(5y\e(B")
+       (?\x096f . "\e(5z\e(B")
+       (?\x0970 . "[U+0970]")
+       (?\x0971 . "[U+0971]")
+       (?\x0972 . "[U+0972]")
+       (?\x0973 . "[U+0973]")
+       (?\x0974 . "[U+0974]")
+       (?\x0975 . "[U+0975]")
+       (?\x0976 . "[U+0976]")
+       (?\x0977 . "[U+0977]")
+       (?\x0978 . "[U+0978]")
+       (?\x0979 . "[U+0979]")
+       (?\x097a . "[U+097a]")
+       (?\x097b . "[U+097b]")
+       (?\x097c . "[U+097c]")
+       (?\x097d . "[U+097d]")
+       (?\x097e . "[U+097e]")
+       (?\x097f . "[U+097f]")))
+     (ucs-bengali-to-is13194-alist nil)
+     (ucs-assamese-to-is13194-alist nil)
+     (ucs-gurmukhi-to-is13194-alist nil)
+     (ucs-gujarati-to-is13194-alist nil)
+     (ucs-oriya-to-is13194-alist nil)
+     (ucs-tamil-to-is13194-alist nil)
+     (ucs-telugu-to-is13194-alist nil)
+     (ucs-malayalam-to-is13194-alist nil)
+     (ucs-kannada-to-is13194-alist nil))
+  (dolist (script '(devanagari bengali assamese gurmukhi gujarati
+                   oriya tamil telugu malayalam kannada))
+   (let ((hashtable (intern (concat "is13194-to-ucs-"
+                                   (symbol-name script) "-hashtbl" )))
+        (regexp    (intern (concat "is13194-to-ucs-"
+                                   (symbol-name script) "-regexp"))))
+     (set hashtable (make-hash-table :test 'equal :size 128))
+     (dolist (x (eval (intern (concat "ucs-" (symbol-name script)
+                                     "-to-is13194-alist"))))
+       (put-char-code-property (car x) 'script script)
+       (put-char-code-property (car x) 'iscii (cdr x))
+       (puthash (cdr x) (char-to-string (car x)) (eval hashtable)))
+      (set regexp (indian-regexp-of-hashtbl-keys (eval hashtable))))))
+
+(defvar is13194-default-repertory 'devanagari)
 
 (defvar is13194-repertory-to-ucs-script
-  `((DEF ?\x40 ,is13194-default-repartory)
-    (RMN ?\x41 ,is13194-default-repartory)
+  `((DEF ?\x40 ,is13194-default-repertory)
+    (RMN ?\x41 ,is13194-default-repertory)
     (DEV ?\x42 devanagari)
     (BNG ?\x43 bengali)
     (TML ?\x44 tamil)
@@ -756,31 +769,10 @@ FUNCTION will be called 15 times."
 (defvar is13194-to-ucs-kannada-hashtbl nil)
 (defvar is13194-to-ucs-kannada-regexp nil)
 
-(mapc
- (function (lambda (script)
-   (let ((hashtable (intern (concat "is13194-to-ucs-"
-                                    (symbol-name script) "-hashtbl" )))
-         (regexp    (intern (concat "is13194-to-ucs-"
-                                    (symbol-name script) "-regexp"))))
-     (set hashtable (make-hash-table :test 'equal :size 128))
-     (mapc
-      (function (lambda (x)
-        (put-char-code-property (decode-char 'ucs (car x))
-                                'script script)
-        (put-char-code-property (decode-char 'ucs (car x))
-                                'iscii (cdr x))
-        (puthash (cdr x) (char-to-string (decode-char 'ucs (car x)))
-                 (eval hashtable))))
-      (eval (intern (concat "ucs-" (symbol-name script)
-                            "-to-is13194-alist"))))
-     (set regexp (indian-regexp-of-hashtbl-keys (eval hashtable))))))
- '(devanagari bengali assamese gurmukhi gujarati
-   oriya tamil telugu malayalam kannada))
-
 (defvar ucs-to-is13194-regexp
   ;; only Devanagari is supported now.
-  (concat "[" (char-to-string (decode-char 'ucs #x0900))
-          "-" (char-to-string (decode-char 'ucs #x097f)) "]")
+  (concat "[" (char-to-string #x0900)
+          "-" (char-to-string #x097f) "]")
   "Regexp that matches to conversion")
 
 (defun ucs-to-iscii-region (from to)
@@ -792,11 +784,11 @@ Returns new end position."
     (save-restriction
       (narrow-to-region from to)
       (goto-char (point-min))
-      (let* ((current-repertory is13194-default-repartory))
-        (while (re-search-forward ucs-to-is13194-regexp nil t)
-          (replace-match
-           (get-char-code-property (string-to-char (match-string 0))
-                                   'iscii))))
+      (let* ((current-repertory is13194-default-repertory))
+       (while (re-search-forward ucs-to-is13194-regexp nil t)
+         (replace-match
+          (get-char-code-property (string-to-char (match-string 0))
+                                  'iscii))))
       (point-max))))
 
 (defun iscii-to-ucs-region (from to)
@@ -808,16 +800,17 @@ Returns new end position."
     (save-restriction
       (narrow-to-region from to)
       (goto-char (point-min))
-      (let* ((current-repertory is13194-default-repartory)
-             (current-hashtable
-              (intern (concat "is13194-to-ucs-"
-                              (symbol-name current-repertory) "-hashtbl")))
-             (current-regexp
-              (intern (concat "is13194-to-ucs-"
-                              (symbol-name current-repertory) "-regexp"))))
-        (while (re-search-forward (eval current-regexp) nil t)
-          (replace-match
-           (gethash (match-string 0) (eval current-hashtable) ""))))
+      (let* ((current-repertory is13194-default-repertory)
+            (current-hashtable
+             (intern (concat "is13194-to-ucs-"
+                             (symbol-name current-repertory) "-hashtbl")))
+            (current-regexp
+             (intern (concat "is13194-to-ucs-"
+                             (symbol-name current-repertory) "-regexp")))
+            (re (eval current-regexp))
+            (hash (eval current-hashtable)))
+       (while (re-search-forward re nil t)
+         (replace-match (gethash (match-string 0) hash ""))))
       (point-max))))
 
 ;;;###autoload
@@ -826,11 +819,15 @@ Returns new end position."
   (interactive "r")
   (save-excursion
     (save-restriction
-      (let ((pos from) chars (max to))
-        (narrow-to-region from to)
-        (while (< pos max)
-          (setq chars (compose-chars-after pos))
-          (if chars (setq pos (+ pos chars)) (setq pos (1+ pos))))))))
+      (let ((pos from) newpos func (max to))
+       (narrow-to-region from to)
+       (while (< pos max)
+         (setq func (aref composition-function-table (char-after pos)))
+         (if (fboundp func)
+             (setq newpos (funcall func pos nil)
+                   pos (if (and (integerp newpos) (> newpos pos))
+                           newpos (1+ pos)))
+           (setq pos (1+ pos))))))))
 
 ;;;###autoload
 (defun indian-compose-string (string)
@@ -861,405 +858,370 @@ Returns new end position."
 
 ;;; Backward Compatibility support programs
 
-;; The followings provides the conversion from old-implementation of
+;; The following provides the conversion from old-implementation of
 ;; Emacs Devanagari script to UCS.
 
 (defconst indian-2-colum-to-ucs
   '(
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2120   \e$(5!!!"!#!$!%!&!'!(!)!*!+!,!-!.!/\e(B
-  ("\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!*"p\e(B" . "\e$,15p6#\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")
+  ;;2120   \e$(6!!!"!#!$!%!&!'!(!)!*!+!,!-!.!/\e(B
+  ("\e$(6!!\e(B" . "\e$,15A\e(B")
+  ("\e$(6!"\e(B" . "\e$,15B\e(B")
+  ("\e$(6!#\e(B" . "\e$,15C\e(B")
+  ("\e$(6!$\e(B" . "\e$,15E\e(B")
+  ("\e$(6!%\e(B" . "\e$,15F\e(B")
+  ("\e$(6!&\e(B" . "\e$,15G\e(B")
+  ("\e$(6!'\e(B" . "\e$,15H\e(B")
+  ("\e$(6!(\e(B" . "\e$,15I\e(B")
+  ("\e$(6!)\e(B" . "\e$,15J\e(B")
+  ("\e$(6!*\e(B" . "\e$,15K\e(B")
+  ("\e$(6!*"p\e(B" . "\e$,15p6#\e(B")
+  ("\e$(6!+\e(B" . "\e$,15N\e(B")
+  ("\e$(6!,\e(B" . "\e$,15O\e(B")
+  ("\e$(6!-\e(B" . "\e$,15P\e(B")
+  ("\e$(6!.\e(B" . "\e$,15M\e(B")
+  ("\e$(6!/\e(B" . "\e$,15R\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2130 \e$(5!0!1!2!3!4!5!6!7!8!9!:!;!<!=!>!?\e(B
-  ("\e$(5!0\e(B" . "\e$,15S\e(B")
-  ("\e$(5!1\e(B" . "\e$,15T\e(B")
-  ("\e$(5!2\e(B" . "\e$,15Q\e(B")
-  ("\e$(5!3\e(B" . "\e$,15U\e(B")
-  ("\e$(5!4\e(B" . "\e$,15V\e(B")
-  ("\e$(5!5\e(B" . "\e$,15W\e(B")
-  ("\e$(5!6\e(B" . "\e$,15X\e(B")
-  ("\e$(5!7\e(B" . "\e$,15Y\e(B")
-  ("\e$(5!8\e(B" . "\e$,15Z\e(B")
-  ("\e$(5!9\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")
+  ;;2130 \e$(6!0!1!2!3!4!5!6!7!8!9!:!;!<!=!>!?\e(B
+  ("\e$(6!0\e(B" . "\e$,15S\e(B")
+  ("\e$(6!1\e(B" . "\e$,15T\e(B")
+  ("\e$(6!2\e(B" . "\e$,15Q\e(B")
+  ("\e$(6!3\e(B" . "\e$,15U\e(B")
+  ("\e$(6!4\e(B" . "\e$,15V\e(B")
+  ("\e$(6!5\e(B" . "\e$,15W\e(B")
+  ("\e$(6!6\e(B" . "\e$,15X\e(B")
+  ("\e$(6!7\e(B" . "\e$,15Y\e(B")
+  ("\e$(6!8\e(B" . "\e$,15Z\e(B")
+  ("\e$(6!9\e(B" . "\e$,15[\e(B")
+  ("\e$(6!:\e(B" . "\e$,15\\e(B")
+  ("\e$(6!;\e(B" . "\e$,15]\e(B")
+  ("\e$(6!<\e(B" . "\e$,15^\e(B")
+  ("\e$(6!=\e(B" . "\e$,15_\e(B")
+  ("\e$(6!>\e(B" . "\e$,15`\e(B")
+  ("\e$(6!?\e(B" . "\e$,15a\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2140 \e$(5!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O\e(B
-  ("\e$(5!@\e(B" . "\e$,15b\e(B")
-  ("\e$(5!A\e(B" . "\e$,15c\e(B")
-  ("\e$(5!B\e(B" . "\e$,15d\e(B")
-  ("\e$(5!C\e(B" . "\e$,15e\e(B")
-  ("\e$(5!D\e(B" . "\e$,15f\e(B")
-  ("\e$(5!E\e(B" . "\e$,15g\e(B")
-  ("\e$(5!F\e(B" . "\e$,15h\e(B")
-  ("\e$(5!G\e(B" . "\e$,15i\e(B")
-  ("\e$(5!H\e(B" . "\e$,15j\e(B")
-  ("\e$(5!I\e(B" . "\e$,15k\e(B")
-  ("\e$(5!J\e(B" . "\e$,15l\e(B")
-  ("\e$(5!K\e(B" . "\e$,15m\e(B")
-  ("\e$(5!L\e(B" . "\e$,15n\e(B")
-  ("\e$(5!M\e(B" . "\e$,15o\e(B")
-  ("\e$(5!N\e(B" . "\e$,16?\e(B")
-  ("\e$(5!O\e(B" . "\e$,15p\e(B")
+  ;;2140 \e$(6!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O\e(B
+  ("\e$(6!@\e(B" . "\e$,15b\e(B")
+  ("\e$(6!A\e(B" . "\e$,15c\e(B")
+  ("\e$(6!B\e(B" . "\e$,15d\e(B")
+  ("\e$(6!C\e(B" . "\e$,15e\e(B")
+  ("\e$(6!D\e(B" . "\e$,15f\e(B")
+  ("\e$(6!E\e(B" . "\e$,15g\e(B")
+  ("\e$(6!F\e(B" . "\e$,15h\e(B")
+  ("\e$(6!G\e(B" . "\e$,15i\e(B")
+  ("\e$(6!H\e(B" . "\e$,15j\e(B")
+  ("\e$(6!I\e(B" . "\e$,15k\e(B")
+  ("\e$(6!J\e(B" . "\e$,15l\e(B")
+  ("\e$(6!K\e(B" . "\e$,15m\e(B")
+  ("\e$(6!L\e(B" . "\e$,15n\e(B")
+  ("\e$(6!M\e(B" . "\e$,15o\e(B")
+  ("\e$(6!N\e(B" . "\e$,16?\e(B")
+  ("\e$(6!O\e(B" . "\e$,15p\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2150 \e$(5!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_\e(B
-  ("\e$(5!P\e(B" . "\e$,15q\e(B")
-  ("\e$(5!Q\e(B" . "\e$,15r\e(B")
-  ("\e$(5!R\e(B" . "\e$,15s\e(B")
-  ("\e$(5!S\e(B" . "\e$,15t\e(B")
-  ("\e$(5!T\e(B" . "\e$,15u\e(B")
-  ("\e$(5!U\e(B" . "\e$,15v\e(B")
-  ("\e$(5!V\e(B" . "\e$,15w\e(B")
-  ("\e$(5!W\e(B" . "\e$,15x\e(B")
-  ("\e$(5!X\e(B" . "\e$,15y\e(B")
-  ("\e$(5!Z\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")
+  ;;2150 \e$(6!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_\e(B
+  ("\e$(6!P\e(B" . "\e$,15q\e(B")
+  ("\e$(6!Q\e(B" . "\e$,15r\e(B")
+  ("\e$(6!R\e(B" . "\e$,15s\e(B")
+  ("\e$(6!S\e(B" . "\e$,15t\e(B")
+  ("\e$(6!T\e(B" . "\e$,15u\e(B")
+  ("\e$(6!U\e(B" . "\e$,15v\e(B")
+  ("\e$(6!V\e(B" . "\e$,15w\e(B")
+  ("\e$(6!W\e(B" . "\e$,15x\e(B")
+  ("\e$(6!X\e(B" . "\e$,15y\e(B")
+  ("\e$(6!Z\e(B" . "\e$,15~\e(B")
+  ("\e$(6![\e(B" . "\e$,15\7f\e(B")
+  ("\e$(6!\\e(B" . "\e$,16 \e(B")
+  ("\e$(6!]\e(B" . "\e$,16!\e(B")
+  ("\e$(6!^\e(B" . "\e$,16"\e(B")
+  ("\e$(6!_\e(B" . "\e$,16#\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2160 \e$(5!`!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o\e(B
-  ("\e$(5!`\e(B" . "\e$,16&\e(B")
-  ("\e$(5!a\e(B" . "\e$,16'\e(B")
-  ("\e$(5!b\e(B" . "\e$,16(\e(B")
-  ("\e$(5!c\e(B" . "\e$,16%\e(B")
-  ("\e$(5!d\e(B" . "\e$,16*\e(B")
-  ("\e$(5!e\e(B" . "\e$,16+\e(B")
-  ("\e$(5!f\e(B" . "\e$,16,\e(B")
-  ("\e$(5!g\e(B" . "\e$,16)\e(B")
-  ("\e$(5!h\e(B" . "\e$,16-\e(B")
-  ("\e$(5!i\e(B" . "\e$,15|\e(B")
-  ("\e$(5!j\e(B" . "\e$,16D\e(B")
-  ("\e$(5!j!j\e(B" . "\e$,16E\e(B")
+  ;;2160 \e$(6!`!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o\e(B
+  ("\e$(6!`\e(B" . "\e$,16&\e(B")
+  ("\e$(6!a\e(B" . "\e$,16'\e(B")
+  ("\e$(6!b\e(B" . "\e$,16(\e(B")
+  ("\e$(6!c\e(B" . "\e$,16%\e(B")
+  ("\e$(6!d\e(B" . "\e$,16*\e(B")
+  ("\e$(6!e\e(B" . "\e$,16+\e(B")
+  ("\e$(6!f\e(B" . "\e$,16,\e(B")
+  ("\e$(6!g\e(B" . "\e$,16)\e(B")
+  ("\e$(6!h\e(B" . "\e$,16-\e(B")
+  ("\e$(6!i\e(B" . "\e$,15|\e(B")
+  ("\e$(6!j\e(B" . "\e$,16D\e(B")
+  ("\e$(6!j!j\e(B" . "\e$,16E\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2170 \e$(5!p!q!r!s!t!u!v!w!x!y!z!{!|!}!~\e(B
-  ("\e$(5!q\e(B" . "\e$,16F\e(B")
-  ("\e$(5!r\e(B" . "\e$,16G\e(B")
-  ("\e$(5!s\e(B" . "\e$,16H\e(B")
-  ("\e$(5!t\e(B" . "\e$,16I\e(B")
-  ("\e$(5!u\e(B" . "\e$,16J\e(B")
-  ("\e$(5!v\e(B" . "\e$,16K\e(B")
-  ("\e$(5!w\e(B" . "\e$,16L\e(B")
-  ("\e$(5!x\e(B" . "\e$,16M\e(B")
-  ("\e$(5!y\e(B" . "\e$,16N\e(B")
-  ("\e$(5!z\e(B" . "\e$,16O\e(B")
+  ;;2170 \e$(6!p!q!r!s!t!u!v!w!x!y!z!{!|!}!~\e(B
+  ("\e$(6!q\e(B" . "\e$,16F\e(B")
+  ("\e$(6!r\e(B" . "\e$,16G\e(B")
+  ("\e$(6!s\e(B" . "\e$,16H\e(B")
+  ("\e$(6!t\e(B" . "\e$,16I\e(B")
+  ("\e$(6!u\e(B" . "\e$,16J\e(B")
+  ("\e$(6!v\e(B" . "\e$,16K\e(B")
+  ("\e$(6!w\e(B" . "\e$,16L\e(B")
+  ("\e$(6!x\e(B" . "\e$,16M\e(B")
+  ("\e$(6!y\e(B" . "\e$,16N\e(B")
+  ("\e$(6!z\e(B" . "\e$,16O\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2220   \e$(5"!"""#"$"%"&"'"(")"*"+","-"."/\e(B
-  ("\e$(5"!\e(B" . "\e$,16;6-5p\e(B")
-  ("\e$(5""\e(B" . "\e$,16>6-5p\e(B")
-  ("\e$(5"#\e(B" . "\e$,15U6-5p\e(B")
-  ("\e$(5"$\e(B" . "\e$,15W6-5p\e(B")
-  ("\e$(5"%\e(B" . "\e$,15d6-5p\e(B")
-  ("\e$(5"&\e(B" . "\e$,15j6-5p\e(B")
-  ("\e$(5"'\e(B" . "\e$,15k6-5p\e(B")
-  ("\e$(5")\e(B" . "\e$,15v6-5p\e(B")
-  ("\e$(5",\e(B" . "\e$,15p6!\e(B")
-  ("\e$(5"-\e(B" . "\e$,15p6"\e(B")
-  ("\e$(5".\e(B" . "\e$,15q6!\e(B")
-  ("\e$(5"/\e(B" . "\e$,15q6"\e(B")
+  ;;2220   \e$(6"!"""#"$"%"&"'"(")"*"+","-"."/\e(B
+  ("\e$(6"!\e(B" . "\e$,16;6-5p\e(B")
+  ("\e$(6""\e(B" . "\e$,16>6-5p\e(B")
+  ("\e$(6"#\e(B" . "\e$,15U6-5p\e(B")
+  ("\e$(6"$\e(B" . "\e$,15W6-5p\e(B")
+  ("\e$(6"%\e(B" . "\e$,15d6-5p\e(B")
+  ("\e$(6"&\e(B" . "\e$,15j6-5p\e(B")
+  ("\e$(6"'\e(B" . "\e$,15k6-5p\e(B")
+  ("\e$(6")\e(B" . "\e$,15v6-5p\e(B")
+  ("\e$(6",\e(B" . "\e$,15p6!\e(B")
+  ("\e$(6"-\e(B" . "\e$,15p6"\e(B")
+  ("\e$(6".\e(B" . "\e$,15q6!\e(B")
+  ("\e$(6"/\e(B" . "\e$,15q6"\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2230 \e$(5"0"1"2"3"4"5"6"7"8"9":";"<"=">"?\e(B
-  ("\e$(5"3\e(B" . "\e$,15U6-\e(B")
-  ("\e$(5"4\e(B" . "\e$,15V6-\e(B")
-  ("\e$(5"5\e(B" . "\e$,15W6-\e(B")
-  ("\e$(5"6\e(B" . "\e$,15X6-\e(B")
-  ("\e$(5"8\e(B" . "\e$,15Z6-\e(B")
-  ("\e$(5"8"q\e(B" . "\e$,15Z6-5p6-\e(B")
-  ("\e$(5":\e(B" . "\e$,15\6-\e(B")
-  ("\e$(5";\e(B" . "\e$,15]6-\e(B")
-  ("\e$(5"<\e(B" . "\e$,15^6-\e(B")
-  ("\e$(5"<\e(B" . "\e$,15^6-\e(B")
+  ;;2230 \e$(6"0"1"2"3"4"5"6"7"8"9":";"<"=">"?\e(B
+  ("\e$(6"3\e(B" . "\e$,15U6-\e(B")
+  ("\e$(6"4\e(B" . "\e$,15V6-\e(B")
+  ("\e$(6"5\e(B" . "\e$,15W6-\e(B")
+  ("\e$(6"6\e(B" . "\e$,15X6-\e(B")
+  ("\e$(6"8\e(B" . "\e$,15Z6-\e(B")
+  ("\e$(6"8"q\e(B" . "\e$,15Z6-5p6-\e(B")
+  ("\e$(6":\e(B" . "\e$,15\6-\e(B")
+  ("\e$(6";\e(B" . "\e$,15]6-\e(B")
+  ("\e$(6"<\e(B" . "\e$,15^6-\e(B")
+  ("\e$(6"<\e(B" . "\e$,15^6-\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2240 \e$(5"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N"O\e(B
-  ("\e$(5"A\e(B" . "\e$,15c6-\e(B")
-  ("\e$(5"B\e(B" . "\e$,15d6-\e(B")
-  ("\e$(5"C\e(B" . "\e$,15e6-\e(B")
-  ("\e$(5"E\e(B" . "\e$,15g6-\e(B")
-  ("\e$(5"F\e(B" . "\e$,15h6-\e(B")
-  ("\e$(5"G\e(B" . "\e$,15i6-\e(B")
-  ("\e$(5"H\e(B" . "\e$,15j6-\e(B")
-  ("\e$(5"I\e(B" . "\e$,15k6-\e(B")
-  ("\e$(5"J\e(B" . "\e$,15l6-\e(B")
-  ("\e$(5"J\e(B" . "\e$,15l6-\e(B")
-  ("\e$(5"K\e(B" . "\e$,15m6-\e(B")
-  ("\e$(5"L\e(B" . "\e$,15n6-\e(B")
-  ("\e$(5"M\e(B" . "\e$,15o6-\e(B")
-  ("\e$(5"N\e(B" . "\e$,16?6-\e(B")
+  ;;2240 \e$(6"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N"O\e(B
+  ("\e$(6"A\e(B" . "\e$,15c6-\e(B")
+  ("\e$(6"B\e(B" . "\e$,15d6-\e(B")
+  ("\e$(6"C\e(B" . "\e$,15e6-\e(B")
+  ("\e$(6"E\e(B" . "\e$,15g6-\e(B")
+  ("\e$(6"F\e(B" . "\e$,15h6-\e(B")
+  ("\e$(6"G\e(B" . "\e$,15i6-\e(B")
+  ("\e$(6"H\e(B" . "\e$,15j6-\e(B")
+  ("\e$(6"I\e(B" . "\e$,15k6-\e(B")
+  ("\e$(6"J\e(B" . "\e$,15l6-\e(B")
+  ("\e$(6"J\e(B" . "\e$,15l6-\e(B")
+  ("\e$(6"K\e(B" . "\e$,15m6-\e(B")
+  ("\e$(6"L\e(B" . "\e$,15n6-\e(B")
+  ("\e$(6"M\e(B" . "\e$,15o6-\e(B")
+  ("\e$(6"N\e(B" . "\e$,16?6-\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2250 \e$(5"P"Q"R"S"T"U"V"W"X"Y"Z"["\"]"^"_\e(B
-  ("\e$(5"Q\e(B" . "\e$,15r6-\e(B")
-  ("\e$(5"R\e(B" . "\e$,15s6-\e(B")
-  ("\e$(5"S\e(B" . "\e$,15t6-\e(B")
-  ("\e$(5"T\e(B" . "\e$,15u6-\e(B")
-  ("\e$(5"U\e(B" . "\e$,15v6-\e(B")
-  ("\e$(5"V\e(B" . "\e$,15w6-\e(B")
-  ("\e$(5"W\e(B" . "\e$,15x6-\e(B")
-  ("\e$(5"]\e(B" . "\e$,16-5o\e(B")
+  ;;2250 \e$(6"P"Q"R"S"T"U"V"W"X"Y"Z"["\"]"^"_\e(B
+  ("\e$(6"Q\e(B" . "\e$,15r6-\e(B")
+  ("\e$(6"R\e(B" . "\e$,15s6-\e(B")
+  ("\e$(6"S\e(B" . "\e$,15t6-\e(B")
+  ("\e$(6"T\e(B" . "\e$,15u6-\e(B")
+  ("\e$(6"U\e(B" . "\e$,15v6-\e(B")
+  ("\e$(6"V\e(B" . "\e$,15w6-\e(B")
+  ("\e$(6"W\e(B" . "\e$,15x6-\e(B")
+  ("\e$(6"]\e(B" . "\e$,16-5o\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2260 \e$(5"`"a"b"c"d"e"f"g"h"i"j"k"l"m"n"o\e(B
-  ("\e$(5"`\e(B" . "\e$,15W6-5p6-\e(B")
-  ("\e$(5"a\e(B" . "\e$,15X6-5h6-\e(B")
-  ("\e$(5"c\e(B" . "\e$,15d6-5d6-\e(B")
-  ("\e$(5"d\e(B" . "\e$,15d6-5p6-\e(B")
-  ("\e$(5"e\e(B" . "\e$,15g6-5h6-\e(B")
-  ("\e$(5"f\e(B" . "\e$,15g6-5p6-\e(B")
-  ("\e$(5"g\e(B" . "\e$,15j6-5d6-\e(B")
-  ("\e$(5"h\e(B" . "\e$,15v6-5Z6-\e(B")
-  ("\e$(5"i\e(B" . "\e$,15v6-5p6-\e(B")
-  ("\e$(5"j\e(B" . "\e$,15v6-5u6-\e(B")
-  ("\e$(5"k\e(B" . "\e$,15h6-5h6-\e(B")
-  ("\e$(5"l\e(B" . "\e$,15U6-5w6-\e(B")
-  ("\e$(5"m\e(B" . "\e$,15\6-5^6-\e(B")
+  ;;2260 \e$(6"`"a"b"c"d"e"f"g"h"i"j"k"l"m"n"o\e(B
+  ("\e$(6"`\e(B" . "\e$,15W6-5p6-\e(B")
+  ("\e$(6"a\e(B" . "\e$,15X6-5h6-\e(B")
+  ("\e$(6"c\e(B" . "\e$,15d6-5d6-\e(B")
+  ("\e$(6"d\e(B" . "\e$,15d6-5p6-\e(B")
+  ("\e$(6"e\e(B" . "\e$,15g6-5h6-\e(B")
+  ("\e$(6"f\e(B" . "\e$,15g6-5p6-\e(B")
+  ("\e$(6"g\e(B" . "\e$,15j6-5d6-\e(B")
+  ("\e$(6"h\e(B" . "\e$,15v6-5Z6-\e(B")
+  ("\e$(6"i\e(B" . "\e$,15v6-5p6-\e(B")
+  ("\e$(6"j\e(B" . "\e$,15v6-5u6-\e(B")
+  ("\e$(6"k\e(B" . "\e$,15h6-5h6-\e(B")
+  ("\e$(6"l\e(B" . "\e$,15U6-5w6-\e(B")
+  ("\e$(6"m\e(B" . "\e$,15\6-5^6-\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2270 \e$(5"p"q"r"s"t"u"v"w"x"y"z"{"|"}"~\e(B
-  ("\e$(5"p\e(B" . "\e$,15p6-\e(B")
-  ("\e$(5"q\e(B" . "\e$,16-5p\e(B")
-  ("\e$(5"r\e(B" . "\e$,16-5p\e(B")
-  ("\e$(5"s\e(B" . "\e$,1686-\e(B")
-  ("\e$(5"t\e(B" . "\e$,1696-\e(B")
-  ("\e$(5"u\e(B" . "\e$,16:6-\e(B")
-  ("\e$(5"y\e(B" . "\e$,16>6-\e(B")
-  ("\e$(5"z\e(B" . "\e$,16;6-\e(B")
+  ;;2270 \e$(6"p"q"r"s"t"u"v"w"x"y"z"{"|"}"~\e(B
+  ("\e$(6"p\e(B" . "\e$,15p6-\e(B")
+  ("\e$(6"q\e(B" . "\e$,16-5p\e(B")
+  ("\e$(6"r\e(B" . "\e$,16-5p\e(B")
+  ("\e$(6"s\e(B" . "\e$,1686-\e(B")
+  ("\e$(6"t\e(B" . "\e$,1696-\e(B")
+  ("\e$(6"u\e(B" . "\e$,16:6-\e(B")
+  ("\e$(6"y\e(B" . "\e$,16>6-\e(B")
+  ("\e$(6"z\e(B" . "\e$,16;6-\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2320   \e$(5#!#"###$#%#&#'#(#)#*#+#,#-#.#/\e(B
-  ("\e$(5#!\e(B" . "\e$,160\e(B")
-  ("\e$(5#&\e(B" . "\e$,15L\e(B")
-  ("\e$(5#&"p\e(B" . "\e$,15p6$\e(B")
-  ("\e$(5#'\e(B" . "\e$,16A\e(B")
-  ("\e$(5#'"p\e(B" . "\e$,15p6C\e(B")
-  ("\e$(5#*\e(B" . "\e$,16@\e(B")
-  ("\e$(5#*"p\e(B" . "\e$,15p6B\e(B")
+  ;;2320   \e$(6#!#"###$#%#&#'#(#)#*#+#,#-#.#/\e(B
+  ("\e$(6#!\e(B" . "\e$,160\e(B")
+  ("\e$(6#&\e(B" . "\e$,15L\e(B")
+  ("\e$(6#&"p\e(B" . "\e$,15p6$\e(B")
+  ("\e$(6#'\e(B" . "\e$,16A\e(B")
+  ("\e$(6#'"p\e(B" . "\e$,15p6C\e(B")
+  ("\e$(6#*\e(B" . "\e$,16@\e(B")
+  ("\e$(6#*"p\e(B" . "\e$,15p6B\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2330 \e$(5#0#1#2#3#4#5#6#7#8#9#:#;#<#=#>#?\e(B
-  ("\e$(5#3\e(B" . "\e$,168\e(B")
-  ("\e$(5#4\e(B" . "\e$,169\e(B")
-  ("\e$(5#5\e(B" . "\e$,16:\e(B")
-  ("\e$(5#:\e(B" . "\e$,16;\e(B")
-  ("\e$(5#?\e(B" . "\e$,16<\e(B")
+  ;;2330 \e$(6#0#1#2#3#4#5#6#7#8#9#:#;#<#=#>#?\e(B
+  ("\e$(6#3\e(B" . "\e$,168\e(B")
+  ("\e$(6#4\e(B" . "\e$,169\e(B")
+  ("\e$(6#5\e(B" . "\e$,16:\e(B")
+  ("\e$(6#:\e(B" . "\e$,16;\e(B")
+  ("\e$(6#?\e(B" . "\e$,16<\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2340 \e$(5#@#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O\e(B
-  ("\e$(5#@\e(B" . "\e$,16=\e(B")
-  ("\e$(5#I\e(B" . "\e$,16>\e(B")
-  ("\e$(5#J\e(B" . "\e$,15}\e(B")
-  ("\e$(5#K\e(B" . "\e$,16$\e(B")
-  ("\e$(5#L\e(B" . "\e$,16B\e(B")
-  ("\e$(5#M\e(B" . "\e$,16C\e(B")
+  ;;2340 \e$(6#@#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O\e(B
+  ("\e$(6#@\e(B" . "\e$,16=\e(B")
+  ("\e$(6#I\e(B" . "\e$,16>\e(B")
+  ("\e$(6#J\e(B" . "\e$,15}\e(B")
+  ("\e$(6#K\e(B" . "\e$,16$\e(B")
+  ("\e$(6#L\e(B" . "\e$,16B\e(B")
+  ("\e$(6#M\e(B" . "\e$,16C\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2350 \e$(5#P#Q#R#S#T#U#V#W#X#Y#Z#[#\#]#^#_\e(B
-  ("\e$(5#P\e(B" . "\e$,15n6-5h\e(B")
-  ("\e$(5#Q\e(B" . "\e$,15n6-5r\e(B")
-  ("\e$(5#R\e(B" . "\e$,15y6#\e(B")
+  ;;2350 \e$(6#P#Q#R#S#T#U#V#W#X#Y#Z#[#\#]#^#_\e(B
+  ("\e$(6#P\e(B" . "\e$,15n6-5h\e(B")
+  ("\e$(6#Q\e(B" . "\e$,15n6-5r\e(B")
+  ("\e$(6#R\e(B" . "\e$,15y6#\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2360 \e$(5#`#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o\e(B
-  ("\e$(5#`\e(B" . "\e$,15r6-5r\e(B")
-  ("\e$(5#a\e(B" . "\e$,15u6-5h\e(B")
-  ("\e$(5#b\e(B" . "\e$,15u6-5u\e(B")
-  ("\e$(5#c\e(B" . "\e$,15v6-5Z\e(B")
-  ("\e$(5#d\e(B" . "\e$,15v6-5h\e(B")
-  ("\e$(5#e\e(B" . "\e$,15v6-5l\e(B")
-  ("\e$(5#f\e(B" . "\e$,15v6-5r\e(B")
-  ("\e$(5#g\e(B" . "\e$,15v6-5u\e(B")
-  ("\e$(5#h\e(B" . "\e$,15w6-5_6-5p6-5o\e(B")
-  ("\e$(5#i\e(B" . "\e$,15w6-5_6-5o\e(B")
-  ("\e$(5#j\e(B" . "\e$,15w6-5_6-5u\e(B")
-  ("\e$(5#k\e(B" . "\e$,15w6-5_\e(B")
-  ("\e$(5#l\e(B" . "\e$,15w6-5`\e(B")
-  ("\e$(5#m\e(B" . "\e$,15x6-5h\e(B")
-  ("\e$(5#n\e(B" . "\e$,15x6-5p\e(B")
+  ;;2360 \e$(6#`#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o\e(B
+  ("\e$(6#`\e(B" . "\e$,15r6-5r\e(B")
+  ("\e$(6#a\e(B" . "\e$,15u6-5h\e(B")
+  ("\e$(6#b\e(B" . "\e$,15u6-5u\e(B")
+  ("\e$(6#c\e(B" . "\e$,15v6-5Z\e(B")
+  ("\e$(6#d\e(B" . "\e$,15v6-5h\e(B")
+  ("\e$(6#e\e(B" . "\e$,15v6-5l\e(B")
+  ("\e$(6#f\e(B" . "\e$,15v6-5r\e(B")
+  ("\e$(6#g\e(B" . "\e$,15v6-5u\e(B")
+  ("\e$(6#h\e(B" . "\e$,15w6-5_6-5p6-5o\e(B")
+  ("\e$(6#i\e(B" . "\e$,15w6-5_6-5o\e(B")
+  ("\e$(6#j\e(B" . "\e$,15w6-5_6-5u\e(B")
+  ("\e$(6#k\e(B" . "\e$,15w6-5_\e(B")
+  ("\e$(6#l\e(B" . "\e$,15w6-5`\e(B")
+  ("\e$(6#m\e(B" . "\e$,15x6-5h\e(B")
+  ("\e$(6#n\e(B" . "\e$,15x6-5p\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2370 \e$(5#p#q#r#s#t#u#v#w#x#y#z#{#|#}#~\e(B
-  ("\e$(5#p\e(B" . "\e$,15y6-5c\e(B")
-  ("\e$(5#q\e(B" . "\e$,15y6-5h\e(B")
-  ("\e$(5#r\e(B" . "\e$,15y6-5n\e(B")
-  ("\e$(5#s\e(B" . "\e$,15y6-5o\e(B")
-  ("\e$(5#t\e(B" . "\e$,15y6-5p\e(B")
-  ("\e$(5#u\e(B" . "\e$,15y6-5r\e(B")
-  ("\e$(5#v\e(B" . "\e$,15y6-5u\e(B")
+  ;;2370 \e$(6#p#q#r#s#t#u#v#w#x#y#z#{#|#}#~\e(B
+  ("\e$(6#p\e(B" . "\e$,15y6-5c\e(B")
+  ("\e$(6#q\e(B" . "\e$,15y6-5h\e(B")
+  ("\e$(6#r\e(B" . "\e$,15y6-5n\e(B")
+  ("\e$(6#s\e(B" . "\e$,15y6-5o\e(B")
+  ("\e$(6#t\e(B" . "\e$,15y6-5p\e(B")
+  ("\e$(6#u\e(B" . "\e$,15y6-5r\e(B")
+  ("\e$(6#v\e(B" . "\e$,15y6-5u\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2420   \e$(5$!$"$#$$$%$&$'$($)$*$+$,$-$.$/\e(B
-  ("\e$(5$!\e(B" . "\e$,15U6-5d6-5p6-5o\e(B")
-  ("\e$(5$"\e(B" . "\e$,15U6-5d6-5u\e(B")
-  ("\e$(5$#\e(B" . "\e$,15U6-5d6-5o\e(B")
-  ("\e$(5$$\e(B" . "\e$,15U6-5h6-5o\e(B")
-  ("\e$(5$%\e(B" . "\e$,15U6-5p6-5o\e(B")
-  ("\e$(5$&\e(B" . "\e$,15U6-5u6-5o\e(B")
-  ("\e$(5$'\e(B" . "\e$,15U6-5U\e(B")
-  ("\e$(5$(\e(B" . "\e$,15U6-5d\e(B")
-  ("\e$(5$)\e(B" . "\e$,15U6-5h\e(B")
-  ("\e$(5$*\e(B" . "\e$,15U6-5n\e(B")
-  ("\e$(5$+\e(B" . "\e$,15U6-5o\e(B")
-  ("\e$(5$,\e(B" . "\e$,15U6-5r\e(B")
-  ("\e$(5$-\e(B" . "\e$,15U6-5u\e(B")
-  ("\e$(5$.\e(B" . "\e$,15U6-5w\e(B")
-  ("\e$(5$/\e(B" . "\e$,15X6-5h\e(B")
+  ;;2420   \e$(6$!$"$#$$$%$&$'$($)$*$+$,$-$.$/\e(B
+  ("\e$(6$!\e(B" . "\e$,15U6-5d6-5p6-5o\e(B")
+  ("\e$(6$"\e(B" . "\e$,15U6-5d6-5u\e(B")
+  ("\e$(6$#\e(B" . "\e$,15U6-5d6-5o\e(B")
+  ("\e$(6$$\e(B" . "\e$,15U6-5h6-5o\e(B")
+  ("\e$(6$%\e(B" . "\e$,15U6-5p6-5o\e(B")
+  ("\e$(6$&\e(B" . "\e$,15U6-5u6-5o\e(B")
+  ("\e$(6$'\e(B" . "\e$,15U6-5U\e(B")
+  ("\e$(6$(\e(B" . "\e$,15U6-5d\e(B")
+  ("\e$(6$)\e(B" . "\e$,15U6-5h\e(B")
+  ("\e$(6$*\e(B" . "\e$,15U6-5n\e(B")
+  ("\e$(6$+\e(B" . "\e$,15U6-5o\e(B")
+  ("\e$(6$,\e(B" . "\e$,15U6-5r\e(B")
+  ("\e$(6$-\e(B" . "\e$,15U6-5u\e(B")
+  ("\e$(6$.\e(B" . "\e$,15U6-5w\e(B")
+  ("\e$(6$/\e(B" . "\e$,15X6-5h\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2430 \e$(5$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?\e(B
-  ("\e$(5$0\e(B" . "\e$,15Y6-5U6-5d6-5o\e(B")
-  ("\e$(5$1\e(B" . "\e$,15Y6-5U6-5w6-5u\e(B")
-  ("\e$(5$2\e(B" . "\e$,15Y6-5U6-5d\e(B")
-  ("\e$(5$3\e(B" . "\e$,15Y6-5U6-5w\e(B")
-  ("\e$(5$4\e(B" . "\e$,15Y6-5X6-5p\e(B")
-  ("\e$(5$5\e(B" . "\e$,15Y6-5U6-5o\e(B")
-  ("\e$(5$6\e(B" . "\e$,15Y6-5V6-5o\e(B")
-  ("\e$(5$7\e(B" . "\e$,15Y6-5W6-5o\e(B")
-  ("\e$(5$8\e(B" . "\e$,15Y6-5X6-5o\e(B")
-  ("\e$(5$9\e(B" . "\e$,15Y6-5U\e(B")
-  ("\e$(5$:\e(B" . "\e$,15Y6-5V\e(B")
-  ("\e$(5$;\e(B" . "\e$,15Y6-5W\e(B")
-  ("\e$(5$<\e(B" . "\e$,15Y6-5X\e(B")
-  ("\e$(5$=\e(B" . "\e$,15Y6-5Y\e(B")
-  ("\e$(5$>\e(B" . "\e$,15Y6-5h\e(B")
-  ("\e$(5$?\e(B" . "\e$,15Y6-5n\e(B")
+  ;;2430 \e$(6$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?\e(B
+  ("\e$(6$0\e(B" . "\e$,15Y6-5U6-5d6-5o\e(B")
+  ("\e$(6$1\e(B" . "\e$,15Y6-5U6-5w6-5u\e(B")
+  ("\e$(6$2\e(B" . "\e$,15Y6-5U6-5d\e(B")
+  ("\e$(6$3\e(B" . "\e$,15Y6-5U6-5w\e(B")
+  ("\e$(6$4\e(B" . "\e$,15Y6-5X6-5p\e(B")
+  ("\e$(6$5\e(B" . "\e$,15Y6-5U6-5o\e(B")
+  ("\e$(6$6\e(B" . "\e$,15Y6-5V6-5o\e(B")
+  ("\e$(6$7\e(B" . "\e$,15Y6-5W6-5o\e(B")
+  ("\e$(6$8\e(B" . "\e$,15Y6-5X6-5o\e(B")
+  ("\e$(6$9\e(B" . "\e$,15Y6-5U\e(B")
+  ("\e$(6$:\e(B" . "\e$,15Y6-5V\e(B")
+  ("\e$(6$;\e(B" . "\e$,15Y6-5W\e(B")
+  ("\e$(6$<\e(B" . "\e$,15Y6-5X\e(B")
+  ("\e$(6$=\e(B" . "\e$,15Y6-5Y\e(B")
+  ("\e$(6$>\e(B" . "\e$,15Y6-5h\e(B")
+  ("\e$(6$?\e(B" . "\e$,15Y6-5n\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2440 \e$(5$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O\e(B
-  ("\e$(5$@\e(B" . "\e$,15Y6-5o\e(B")
-  ("\e$(5$A\e(B" . "\e$,15Z6-5Z\e(B")
-  ("\e$(5$B\e(B" . "\e$,15Z6-5^\e(B")
-  ("\e$(5$C\e(B" . "\e$,15[6-5o\e(B")
-  ("\e$(5$D\e(B" . "\e$,15\6-5p\e(B")
-  ("\e$(5$E\e(B" . "\e$,15\6-5^\e(B")
-  ("\e$(5$F\e(B" . "\e$,15^6-5Z\e(B")
-  ("\e$(5$G\e(B" . "\e$,15^6-5\\e(B")
-  ("\e$(5$H\e(B" . "\e$,15_6-5U\e(B")
-  ("\e$(5$I\e(B" . "\e$,15_6-5_\e(B")
-  ("\e$(5$J\e(B" . "\e$,15_6-5`\e(B")
-  ("\e$(5$K\e(B" . "\e$,15_6-5o\e(B")
-  ("\e$(5$L\e(B" . "\e$,15`6-5o\e(B")
-  ("\e$(5$M\e(B" . "\e$,15a6-5W6-5o\e(B")
-  ("\e$(5$N\e(B" . "\e$,15a6-5X6-5p\e(B")
-  ("\e$(5$O\e(B" . "\e$,15a6-5p6-5o\e(B")
+  ;;2440 \e$(6$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O\e(B
+  ("\e$(6$@\e(B" . "\e$,15Y6-5o\e(B")
+  ("\e$(6$A\e(B" . "\e$,15Z6-5Z\e(B")
+  ("\e$(6$B\e(B" . "\e$,15Z6-5^\e(B")
+  ("\e$(6$C\e(B" . "\e$,15[6-5o\e(B")
+  ("\e$(6$D\e(B" . "\e$,15\6-5p\e(B")
+  ("\e$(6$E\e(B" . "\e$,15\6-5^\e(B")
+  ("\e$(6$F\e(B" . "\e$,15^6-5Z\e(B")
+  ("\e$(6$G\e(B" . "\e$,15^6-5\\e(B")
+  ("\e$(6$H\e(B" . "\e$,15_6-5U\e(B")
+  ("\e$(6$I\e(B" . "\e$,15_6-5_\e(B")
+  ("\e$(6$J\e(B" . "\e$,15_6-5`\e(B")
+  ("\e$(6$K\e(B" . "\e$,15_6-5o\e(B")
+  ("\e$(6$L\e(B" . "\e$,15`6-5o\e(B")
+  ("\e$(6$M\e(B" . "\e$,15a6-5W6-5o\e(B")
+  ("\e$(6$N\e(B" . "\e$,15a6-5X6-5p\e(B")
+  ("\e$(6$O\e(B" . "\e$,15a6-5p6-5o\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2450 \e$(5$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_\e(B
-  ("\e$(5$P\e(B" . "\e$,15a6-5W\e(B")
-  ("\e$(5$Q\e(B" . "\e$,15a6-5X\e(B")
-  ("\e$(5$R\e(B" . "\e$,15a6-5a\e(B")
-  ("\e$(5$S\e(B" . "\e$,15a6-5n\e(B")
-  ("\e$(5$T\e(B" . "\e$,15a6-5o\e(B")
+  ;;2450 \e$(6$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_\e(B
+  ("\e$(6$P\e(B" . "\e$,15a6-5W\e(B")
+  ("\e$(6$Q\e(B" . "\e$,15a6-5X\e(B")
+  ("\e$(6$R\e(B" . "\e$,15a6-5a\e(B")
+  ("\e$(6$S\e(B" . "\e$,15a6-5n\e(B")
+  ("\e$(6$T\e(B" . "\e$,15a6-5o\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2460 \e$(5$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o\e(B
-  ("\e$(5$`\e(B" . "\e$,15b6-5o\e(B")
-  ("\e$(5$a\e(B" . "\e$,15d6-5d\e(B")
-  ("\e$(5$b\e(B" . "\e$,15d6-5h\e(B")
-  ("\e$(5$c\e(B" . "\e$,15f6-5f6-5o\e(B")
-  ("\e$(5$d\e(B" . "\e$,15f6-5g6-5o\e(B")
-  ("\e$(5$e\e(B" . "\e$,15f6-5m6-5o\e(B")
-  ("\e$(5$f\e(B" . "\e$,15f6-5p6-5o\e(B")
-  ("\e$(5$g\e(B" . "\e$,15f6-5u6-5o\e(B")
-  ("\e$(5$h\e(B" . "\e$,15f6-5W6-5p\e(B")
-  ("\e$(5$i\e(B" . "\e$,15f6-5X6-5p\e(B")
-  ("\e$(5$j\e(B" . "\e$,15f6-5f6-5u\e(B")
-  ("\e$(5$k\e(B" . "\e$,15f6-5g6-5u\e(B")
-  ("\e$(5$l\e(B" . "\e$,15f6-5W\e(B")
-  ("\e$(5$m\e(B" . "\e$,15f6-5X\e(B")
-  ("\e$(5$n\e(B" . "\e$,15f6-5f\e(B")
-  ("\e$(5$o\e(B" . "\e$,15f6-5g\e(B")
+  ;;2460 \e$(6$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o\e(B
+  ("\e$(6$`\e(B" . "\e$,15b6-5o\e(B")
+  ("\e$(6$a\e(B" . "\e$,15d6-5d\e(B")
+  ("\e$(6$b\e(B" . "\e$,15d6-5h\e(B")
+  ("\e$(6$c\e(B" . "\e$,15f6-5f6-5o\e(B")
+  ("\e$(6$d\e(B" . "\e$,15f6-5g6-5o\e(B")
+  ("\e$(6$e\e(B" . "\e$,15f6-5m6-5o\e(B")
+  ("\e$(6$f\e(B" . "\e$,15f6-5p6-5o\e(B")
+  ("\e$(6$g\e(B" . "\e$,15f6-5u6-5o\e(B")
+  ("\e$(6$h\e(B" . "\e$,15f6-5W6-5p\e(B")
+  ("\e$(6$i\e(B" . "\e$,15f6-5X6-5p\e(B")
+  ("\e$(6$j\e(B" . "\e$,15f6-5f6-5u\e(B")
+  ("\e$(6$k\e(B" . "\e$,15f6-5g6-5u\e(B")
+  ("\e$(6$l\e(B" . "\e$,15f6-5W\e(B")
+  ("\e$(6$m\e(B" . "\e$,15f6-5X\e(B")
+  ("\e$(6$n\e(B" . "\e$,15f6-5f\e(B")
+  ("\e$(6$o\e(B" . "\e$,15f6-5g\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2470 \e$(5$p$q$r$s$t$u$v$w$x$y$z${$|$}$~\e(B
-  ("\e$(5$p\e(B" . "\e$,15f6-5h\e(B")
-  ("\e$(5$q\e(B" . "\e$,15f6-5l\e(B")
-  ("\e$(5$r\e(B" . "\e$,15f6-5m\e(B")
-  ("\e$(5$s\e(B" . "\e$,15f6-5n\e(B")
-  ("\e$(5$t\e(B" . "\e$,15f6-5o\e(B")
-  ("\e$(5$u\e(B" . "\e$,15f6-5u\e(B")
-  ("\e$(5$v\e(B" . "\e$,15g6-5h\e(B")
-  ("\e$(5$w\e(B" . "\e$,15h6-5h\e(B")
-  ("\e$(5$x\e(B" . "\e$,15j6-5d\e(B")
-  ("\e$(5$y\e(B" . "\e$,15j6-5h\e(B")
-  ("\e$(5$z\e(B" . "\e$,15j6-5r\e(B")
-  ("\e$(5${\e(B" . "\e$,15l6-5h\e(B")
-  ("\e$(5$|\e(B" . "\e$,15l6-5l\e(B")
-  ("\e$(5$}\e(B" . "\e$,15l6-5u\e(B")
-  ("\e$(5$~\e(B" . "\e$,15m6-5h\e(B")))
+  ;;2470 \e$(6$p$q$r$s$t$u$v$w$x$y$z${$|$}$~\e(B
+  ("\e$(6$p\e(B" . "\e$,15f6-5h\e(B")
+  ("\e$(6$q\e(B" . "\e$,15f6-5l\e(B")
+  ("\e$(6$r\e(B" . "\e$,15f6-5m\e(B")
+  ("\e$(6$s\e(B" . "\e$,15f6-5n\e(B")
+  ("\e$(6$t\e(B" . "\e$,15f6-5o\e(B")
+  ("\e$(6$u\e(B" . "\e$,15f6-5u\e(B")
+  ("\e$(6$v\e(B" . "\e$,15g6-5h\e(B")
+  ("\e$(6$w\e(B" . "\e$,15h6-5h\e(B")
+  ("\e$(6$x\e(B" . "\e$,15j6-5d\e(B")
+  ("\e$(6$y\e(B" . "\e$,15j6-5h\e(B")
+  ("\e$(6$z\e(B" . "\e$,15j6-5r\e(B")
+  ("\e$(6${\e(B" . "\e$,15l6-5h\e(B")
+  ("\e$(6$|\e(B" . "\e$,15l6-5l\e(B")
+  ("\e$(6$}\e(B" . "\e$,15l6-5u\e(B")
+  ("\e$(6$~\e(B" . "\e$,15m6-5h\e(B")))
 
 (defconst indian-2-column-to-ucs-regexp
-  "\e$(5!j!j\e(B\\|\e$(5"8"q\e(B\\|[\e$(5#&#'!*#*\e(B]\e$(5"p\e(B\\|[\e$(5!!\e(B-\e$(5$~\e(B]")
+  "\e$(6!j!j\e(B\\|\e$(6"8"q\e(B\\|[\e$(6#&#'!*#*\e(B]\e$(6"p\e(B\\|[\e$(6!!\e(B-\e$(6$~\e(B]")
 
 (put 'indian-2-column-to-ucs-chartable 'char-table-extra-slots 1)
 (defconst indian-2-column-to-ucs-chartable
   (let ((table (make-char-table 'indian-2-column-to-ucs-chartable))
-        (alist nil))
+       (alist nil))
     (dolist (elt indian-2-colum-to-ucs)
       (if (= (length (car elt)) 1)
-          (aset table (aref (car elt) 0) (cdr elt))
-        (setq alist (cons elt alist))))
+         (aset table (aref (car elt) 0) (cdr elt))
+       (setq alist (cons elt alist))))
     (set-char-table-extra-slot table 0 alist)
     table))
 
+;;;###autoload
 (defun indian-2-column-to-ucs-region (from to)
   "Convert old Emacs Devanagari characters to UCS."
   (interactive "r")
   (save-excursion
     (save-restriction
       (let ((pos from)
-            (alist (char-table-extra-slot indian-2-column-to-ucs-chartable 0)))
-        (narrow-to-region from to)
-        (decompose-region from to)
-        (goto-char (point-min))
-        (while (re-search-forward indian-2-column-to-ucs-regexp nil t)
-          (let ((len (- (match-end 0) (match-beginning 0)))
-                subst)
-            (if (= len 1)
-                (setq subst (aref indian-2-column-to-ucs-chartable
+           (alist (char-table-extra-slot indian-2-column-to-ucs-chartable 0)))
+       (narrow-to-region from to)
+       (decompose-region from to)
+       (goto-char (point-min))
+       (while (re-search-forward indian-2-column-to-ucs-regexp nil t)
+         (let ((len (- (match-end 0) (match-beginning 0)))
+               subst)
+           (if (= len 1)
+               (setq subst (aref indian-2-column-to-ucs-chartable
                                  (char-after (match-beginning 0))))
-              (setq subst (cdr (assoc (match-string 0) alist))))
-            (replace-match (if subst subst "?"))))
-        (indian-compose-region (point-min) (point-max))))))
-
-;;;###autoload
-(defun indian-glyph-char (index &optional script)
-  "Return character of charset `indian-glyph' made from glyph index INDEX.
-The variable `indian-default-script' specifies the script of the glyph.
-Optional argument SCRIPT, if non-nil, overrides `indian-default-script'.
-See also the function `indian-char-glyph'."
-  (or script
-      (setq script indian-default-script))
-  (let ((offset (get script 'indian-glyph-code-offset)))
-    (or (integerp offset)
-       (error "Invalid script name: %s" script))
-    (or (and (>= index 0) (< index 256))
-       (error "Invalid glyph index: %d" index))
-    (setq index (+ offset index))
-    (make-char 'indian-glyph (+ (/ index 96) 32) (+ (% index 96) 32))))
-
-(defvar indian-glyph-max-char
-  (indian-glyph-char
-   255 (aref indian-script-table (1- (length indian-script-table))))
-  "The maximum valid code of characters in the charset `indian-glyph'.")
-
-;;;###autoload
-(defun indian-char-glyph (char)
-  "Return information about the glyph code for CHAR of `indian-glyph' charset.
-The value is (INDEX . SCRIPT), where INDEX is the glyph index
-in the font that Indian script name SCRIPT specifies.
-See also the function `indian-glyph-char'."
-  (let ((split (split-char char))
-       code)
-    (or (eq (car split) 'indian-glyph)
-       (error "Charset of `%c' is not indian-glyph" char))
-    (or (<= char indian-glyph-max-char)
-       (error "Invalid indian-glyph char: %d" char))
-    (setq code (+ (* (- (nth 1 split) 32) 96) (nth 2 split) -32))
-    (cons (% code 256) (aref indian-script-table (/ code 256)))))
+             (setq subst (cdr (assoc (match-string 0) alist))))
+           (replace-match (if subst subst "?"))))
+       (indian-compose-region (point-min) (point-max))))))
 
 (provide 'ind-util)