Revision: 6252
Author: jhyeon
Date: Sun Mar 14 10:11:58 2010
Log: * scm/byeoru.scm
  - cosmetic changes only
  - definitions of the following layouts have been simplified:
    byeoru-layout-hangul2hanterm, byeoru-layout-hangul2,
    byeoru-layout-strict3final, byeoru-layout-generous3final,
    byeoru-layout-strict390, byeoru-layout-generous390,
    byeoru-layout-no-shift, byeoru-romaja-rule
  - (byeoru-look-up-dic): changed to (byeoru-lookup-word)

http://code.google.com/p/uim/source/detail?r=6252

Modified:
 /trunk/scm/byeoru.scm

=======================================
--- /trunk/scm/byeoru.scm       Tue Jan 20 18:11:15 2009
+++ /trunk/scm/byeoru.scm       Sun Mar 14 10:11:58 2010
@@ -182,542 +182,534 @@
 ;; Expands a key choices list like
 ;; ((jongseong-bieub . (1 4)))
 ;; => ((jongseong-bieub . 1) (jongseong-bieub . 4)))
-(define byeoru-expand-layout
-  (lambda args
-    (let ((layout (car args))
-         (kons (if (null? (cdr args)) cons list))
-         (kdr  (if (null? (cdr args)) cdr cadr)))
-      (map (lambda (elm1)
-            (let ((cands (kdr elm1)))
-              (kons (car elm1)
-                    (if (list? cands)
-                        (append-map
-                         (lambda (elm2)
-                           (let ((class (car elm2))
-                                 (nos (cdr elm2)))
-                             (if (list? nos)
-                                 (map (lambda (no) (cons class no)) nos)
-                                 (list elm2))))
-                         cands)
-                        cands))))
-          layout))))
-
-(define byeoru-layout-hangul2hanterm
-  (byeoru-expand-layout
-   ;; Unshifted keys
-   '(("q" (choseong-bieub   . 1) (jongseong-bieub   . (3 4)))
-     ("w" (choseong-jieuj   . 1) (jongseong-jieuj   . (1 4)))
-     ("e" (choseong-digeud  . 1) (jongseong-digeud  . 1))
-     ("r" (choseong-giyeog  . 1) (jongseong-giyeog  . (3 4)))
-     ("t" (choseong-sios    . 1) (jongseong-sios    . (1 4)))
-     ("y" (jungseong-yo     . 1))
-     ("u" (jungseong-yeo    . 1))
-     ("i" (jungseong-ya     . 1))
-     ("o" (jungseong-ae     . (1 4)))
-     ("p" (jungseong-e      . (1 4)))
-     ("a" (choseong-mieum   . 1) (jongseong-mieum   . (1 4)))
-     ("s" (choseong-nieun   . 1) (jongseong-nieun   . 3))
-     ("d" (choseong-ieung   . 1) (jongseong-ieung   . 1))
-     ("f" (choseong-rieul   . 1) (jongseong-rieul   . 3))
-     ("g" (choseong-hieuh   . 1) (jongseong-hieuh   . (1 4)))
-     ("h" (jungseong-o      . 3))
-     ("j" (jungseong-eo     . (1 4)))
-     ("k" (jungseong-a      . (1 4)))
-     ("l" (jungseong-i      . (1 4)))
-     ("z" (choseong-kieuk   . 1) (jongseong-kieuk   . 1))
-     ("x" (choseong-tieut   . 1) (jongseong-tieut   . (1 4)))
-     ("c" (choseong-chieuch . 1) (jongseong-chieuch . 1))
-     ("v" (choseong-pieup   . 1) (jongseong-pieup   . (1 4)))
-     ("b" (jungseong-yu     . 1))
-     ("n" (jungseong-u      . 3))
-     ("m" (jungseong-eu     . 3))
-     ;; Shifted keys
-     ("Q" (choseong-ssangbieub  . 5))
-     ("W" (choseong-ssangjieuj  . 5))
-     ("E" (choseong-ssangdigeud . 5))
-     ("R" (choseong-ssanggiyeog . 5) (jongseong-ssanggiyeog . 5))
-     ("T" (choseong-ssangsios   . 5) (jongseong-ssangsios   . 5))
-     ("O" (jungseong-yae        . 1))
-     ("P" (jungseong-ye         . 1)))))
-
-(define byeoru-layout-hangul2
-  (byeoru-expand-layout
-   ;; Unshifted keys
-   '(("q" (choseong-bieub   . 1) (jongseong-bieub   . (3 4)))
-     ("w" (choseong-jieuj   . 1) (jongseong-jieuj   . (1 4)))
-     ("e" (choseong-digeud  . 1) (jongseong-digeud  . 1))
-     ("r" (choseong-giyeog  . 1) (jongseong-giyeog  . (3 4)))
-     ("t" (choseong-sios    . 1) (jongseong-sios    . (1 4)))
-     ("y" (jungseong-yo     . 1))
-     ("u" (jungseong-yeo    . 1))
-     ("i" (jungseong-ya     . 1))
-     ("o" (jungseong-ae     . (1 4)))
-     ("p" (jungseong-e      . (1 4)))
-     ("a" (choseong-mieum   . 1) (jongseong-mieum   . (1 4)))
-     ("s" (choseong-nieun   . 1) (jongseong-nieun   . 3))
-     ("d" (choseong-ieung   . 1) (jongseong-ieung   . 1))
-     ("f" (choseong-rieul   . 1) (jongseong-rieul   . 3))
-     ("g" (choseong-hieuh   . 1) (jongseong-hieuh   . (1 4)))
-     ("h" (jungseong-o      . 3))
-     ("j" (jungseong-eo     . (1 4)))
-     ("k" (jungseong-a      . (1 4)))
-     ("l" (jungseong-i      . (1 4)))
-     ("z" (choseong-kieuk   . 1) (jongseong-kieuk   . 1))
-     ("x" (choseong-tieut   . 1) (jongseong-tieut   . (1 4)))
-     ("c" (choseong-chieuch . 1) (jongseong-chieuch . 1))
-     ("v" (choseong-pieup   . 1) (jongseong-pieup   . (1 4)))
-     ("b" (jungseong-yu     . 1))
-     ("n" (jungseong-u      . 3))
-     ("m" (jungseong-eu     . 3))
-     ;; Shifted keys
-     ("Q" (choseong-ssangbieub  . 5))
-     ("W" (choseong-ssangjieuj  . 5))
-     ("E" (choseong-ssangdigeud . 5))
-     ("R" (choseong-ssanggiyeog . 5) (jongseong-ssanggiyeog . 5))
-     ("T" (choseong-ssangsios   . 5) (jongseong-ssangsios   . 5))
-     ("Y" (jungseong-yo     . 1))
-     ("U" (jungseong-yeo    . 1))
-     ("I" (jungseong-ya     . 1))
-     ("O" (jungseong-yae    . 1))
-     ("P" (jungseong-ye     . 1))
-     ("A" (choseong-mieum   . 1) (jongseong-mieum   . (1 4)))
-     ("S" (choseong-nieun   . 1) (jongseong-nieun   . 3))
-     ("D" (choseong-ieung   . 1) (jongseong-ieung   . 1))
-     ("F" (choseong-rieul   . 1) (jongseong-rieul   . 3))
-     ("G" (choseong-hieuh   . 1) (jongseong-hieuh   . (1 4)))
-     ("H" (jungseong-o      . 3))
-     ("J" (jungseong-eo     . (1 4)))
-     ("K" (jungseong-a      . (1 4)))
-     ("L" (jungseong-i      . (1 4)))
-     ("Z" (choseong-kieuk   . 1) (jongseong-kieuk   . 1))
-     ("X" (choseong-tieut   . 1) (jongseong-tieut   . (1 4)))
-     ("C" (choseong-chieuch . 1) (jongseong-chieuch . 1))
-     ("V" (choseong-pieup   . 1) (jongseong-pieup   . (1 4)))
-     ("B" (jungseong-yu     . 1))
-     ("N" (jungseong-u      . 3))
-     ("M" (jungseong-eu     . 3)))))
+(define (byeoru-expand-choices choices)
+  (if (list? choices)
+      (append-map
+       (lambda (elt)
+        (let ((class (car elt))
+              (nos (cdr elt)))
+          (if (list? nos)
+              (map (lambda (no) (cons class no)) nos)
+              (list elt))))
+       choices)
+      choices))
+
+(define-macro (byeoru-define-layout name . layout)
+  `(define ,name
+     (map (lambda (elt)
+           (cons (car elt)
+                 (byeoru-expand-choices (cdr elt))))
+         ',layout)))
+
+(byeoru-define-layout byeoru-layout-hangul2hanterm
+ ;; Unshifted keys
+ ("q" (choseong-bieub        . 1) (jongseong-bieub   . (3 4)))
+ ("w" (choseong-jieuj        . 1) (jongseong-jieuj   . (1 4)))
+ ("e" (choseong-digeud       . 1) (jongseong-digeud  . 1))
+ ("r" (choseong-giyeog       . 1) (jongseong-giyeog  . (3 4)))
+ ("t" (choseong-sios . 1) (jongseong-sios    . (1 4)))
+ ("y" (jungseong-yo  . 1))
+ ("u" (jungseong-yeo . 1))
+ ("i" (jungseong-ya  . 1))
+ ("o" (jungseong-ae  . (1 4)))
+ ("p" (jungseong-e   . (1 4)))
+ ("a" (choseong-mieum        . 1) (jongseong-mieum   . (1 4)))
+ ("s" (choseong-nieun        . 1) (jongseong-nieun   . 3))
+ ("d" (choseong-ieung        . 1) (jongseong-ieung   . 1))
+ ("f" (choseong-rieul        . 1) (jongseong-rieul   . 3))
+ ("g" (choseong-hieuh        . 1) (jongseong-hieuh   . (1 4)))
+ ("h" (jungseong-o   . 3))
+ ("j" (jungseong-eo  . (1 4)))
+ ("k" (jungseong-a   . (1 4)))
+ ("l" (jungseong-i   . (1 4)))
+ ("z" (choseong-kieuk        . 1) (jongseong-kieuk   . 1))
+ ("x" (choseong-tieut        . 1) (jongseong-tieut   . (1 4)))
+ ("c" (choseong-chieuch . 1) (jongseong-chieuch . 1))
+ ("v" (choseong-pieup        . 1) (jongseong-pieup   . (1 4)))
+ ("b" (jungseong-yu  . 1))
+ ("n" (jungseong-u   . 3))
+ ("m" (jungseong-eu  . 3))
+ ;; Shifted keys
+ ("Q" (choseong-ssangbieub  . 5))
+ ("W" (choseong-ssangjieuj  . 5))
+ ("E" (choseong-ssangdigeud . 5))
+ ("R" (choseong-ssanggiyeog . 5) (jongseong-ssanggiyeog . 5))
+ ("T" (choseong-ssangsios   . 5) (jongseong-ssangsios        . 5))
+ ("O" (jungseong-yae     . 1))
+ ("P" (jungseong-ye      . 1)))
+
+(byeoru-define-layout byeoru-layout-hangul2
+ ;; Unshifted keys
+ ("q" (choseong-bieub        . 1) (jongseong-bieub   . (3 4)))
+ ("w" (choseong-jieuj        . 1) (jongseong-jieuj   . (1 4)))
+ ("e" (choseong-digeud       . 1) (jongseong-digeud  . 1))
+ ("r" (choseong-giyeog       . 1) (jongseong-giyeog  . (3 4)))
+ ("t" (choseong-sios . 1) (jongseong-sios    . (1 4)))
+ ("y" (jungseong-yo  . 1))
+ ("u" (jungseong-yeo . 1))
+ ("i" (jungseong-ya  . 1))
+ ("o" (jungseong-ae  . (1 4)))
+ ("p" (jungseong-e   . (1 4)))
+ ("a" (choseong-mieum        . 1) (jongseong-mieum   . (1 4)))
+ ("s" (choseong-nieun        . 1) (jongseong-nieun   . 3))
+ ("d" (choseong-ieung        . 1) (jongseong-ieung   . 1))
+ ("f" (choseong-rieul        . 1) (jongseong-rieul   . 3))
+ ("g" (choseong-hieuh        . 1) (jongseong-hieuh   . (1 4)))
+ ("h" (jungseong-o   . 3))
+ ("j" (jungseong-eo  . (1 4)))
+ ("k" (jungseong-a   . (1 4)))
+ ("l" (jungseong-i   . (1 4)))
+ ("z" (choseong-kieuk        . 1) (jongseong-kieuk   . 1))
+ ("x" (choseong-tieut        . 1) (jongseong-tieut   . (1 4)))
+ ("c" (choseong-chieuch . 1) (jongseong-chieuch . 1))
+ ("v" (choseong-pieup        . 1) (jongseong-pieup   . (1 4)))
+ ("b" (jungseong-yu  . 1))
+ ("n" (jungseong-u   . 3))
+ ("m" (jungseong-eu  . 3))
+ ;; Shifted keys
+ ("Q" (choseong-ssangbieub  . 5))
+ ("W" (choseong-ssangjieuj  . 5))
+ ("E" (choseong-ssangdigeud . 5))
+ ("R" (choseong-ssanggiyeog . 5) (jongseong-ssanggiyeog . 5))
+ ("T" (choseong-ssangsios   . 5) (jongseong-ssangsios        . 5))
+ ("Y" (jungseong-yo  . 1))
+ ("U" (jungseong-yeo . 1))
+ ("I" (jungseong-ya  . 1))
+ ("O" (jungseong-yae . 1))
+ ("P" (jungseong-ye  . 1))
+ ("A" (choseong-mieum        . 1) (jongseong-mieum   . (1 4)))
+ ("S" (choseong-nieun        . 1) (jongseong-nieun   . 3))
+ ("D" (choseong-ieung        . 1) (jongseong-ieung   . 1))
+ ("F" (choseong-rieul        . 1) (jongseong-rieul   . 3))
+ ("G" (choseong-hieuh        . 1) (jongseong-hieuh   . (1 4)))
+ ("H" (jungseong-o   . 3))
+ ("J" (jungseong-eo  . (1 4)))
+ ("K" (jungseong-a   . (1 4)))
+ ("L" (jungseong-i   . (1 4)))
+ ("Z" (choseong-kieuk        . 1) (jongseong-kieuk   . 1))
+ ("X" (choseong-tieut        . 1) (jongseong-tieut   . (1 4)))
+ ("C" (choseong-chieuch . 1) (jongseong-chieuch . 1))
+ ("V" (choseong-pieup        . 1) (jongseong-pieup   . (1 4)))
+ ("B" (jungseong-yu  . 1))
+ ("N" (jungseong-u   . 3))
+ ("M" (jungseong-eu  . 3)))

 ;; The following definitions of 3-beol variants [final, 390, no-shift]
 ;; are based on the US keyboard layout.  A user of a different layout
 ;; (such as dvorak, Japanese) may want to write their own definition
 ;; in ~/.uim.
-(define byeoru-layout-strict3final
-  (byeoru-expand-layout
-   ;; Unshifted keys
-   '(("`" . "*")
-     ("1" (jongseong-hieuh       . 1))
-     ("2" (jongseong-ssangsios   . 5))
-     ("3" (jongseong-bieub       . 1))
-     ("4" (jungseong-yo               . 1))
-     ("5" (jungseong-yu               . 1))
-     ("6" (jungseong-ya               . 1))
-     ("7" (jungseong-ye               . 1))
-     ("8" (jungseong-ui               . 4))
-     ("9" (jungseong-u                . 2))
-     ("0" (choseong-kieuk     . 1))
-     ("-" . ")")
-     ("=" . ">")
-     ("q" (jongseong-sios     . 1))
-     ("w" (jongseong-rieul       . 1))
-     ("e" (jungseong-yeo      . 1))
-     ("r" (jungseong-ae               . (1 4)))
-     ("t" (jungseong-eo               . (1 4)))
-     ("y" (choseong-rieul     . 1))
-     ("u" (choseong-digeud    . (3 5)))
-     ("i" (choseong-mieum     . 1))
-     ("o" (choseong-chieuch   . 1))
-     ("p" (choseong-pieup     . 1))
-     ("[" . "(")
-     ("]" . "<")
-     ("\\" . ":")
-     ("a" (jongseong-ieung       . 1))
-     ("s" (jongseong-nieun       . 1))
-     ("d" (jungseong-i                . (1 4)))
-     ("f" (jungseong-a                . (1 4)))
-     ("g" (jungseong-eu               . 1))
-     ("h" (choseong-nieun     . 1))
-     ("j" (choseong-ieung     . 1))
-     ("k" (choseong-giyeog    . (3 5)))
-     ("l" (choseong-jieuj     . (3 5)))
-     (";" (choseong-bieub     . (3 5)))
-     ("'" (choseong-tieut     . 1))
-     ("z" (jongseong-mieum       . 1))
-     ("x" (jongseong-giyeog      . 1))
-     ("c" (jungseong-e                . (1 4)))
-     ("v" (jungseong-o                . 1))
-     ("b" (jungseong-u                . 1))
-     ("n" (choseong-sios      . (3 5)))
-     ("m" (choseong-hieuh     . 1))
-     ("/" (jungseong-o                . 2))
-     ;; Shifted keys
-     ("~" . 8251)            ; U+203B, REFERENCE MARK
-     ("!" (jongseong-ssanggiyeog . 5))
-     ("@" (jongseong-rieulgiyeog . 4))
-     ("#" (jongseong-jieuj    . 1))
-     ("$" (jongseong-rieulpieup  . 4))
-     ("%" (jongseong-rieultieut  . 4))
-     ("^" . "=")
-     ("&" . 8220)                ; U+201C, LEFT DOUBLE QUOTATION MARK
-     ("*" . 8221)            ; U+201D, RIGHT DOUBLE QUOTATION MARK
-     ("(" . "'")
-     (")" . "~")
-     ("_" . ";")
-     ("Q" (jongseong-pieup    . 1))
-     ("W" (jongseong-tieut    . 1))
-     ("E" (jongseong-nieunjieuj  . 4))
-     ("R" (jongseong-rieulhieuh  . 4))
-     ("T" (jongseong-rieulsios   . 4))
-     ("Y" . "5")
-     ("U" . "6")
-     ("I" . "7")
-     ("O" . "8")
-     ("P" . "9")
-     ("{" . "%")
-     ("}" . "/")
-     ("|" . "\\")
-;;     ("|" . 8361)          ; U+20A9, WON SIGN
-     ("A" (jongseong-digeud      . 1))
-     ("S" (jongseong-nieunhieuh  . 4))
-     ("D" (jongseong-rieulbieub  . 4))
-     ("F" (jongseong-rieulmieum  . 4))
-     ("G" (jungseong-yae      . 1))
-     ("H" . "0")
-     ("J" . "1")
-     ("K" . "2")
-     ("L" . "3")
-     (":" . "4")
-     ("\"" . 183)               ; U+00B7, MIDDLE DOT
-     ("Z" (jongseong-chieuch     . 1))
-     ("X" (jongseong-bieubsios   . 4))
-     ("C" (jongseong-kieuk    . 1))
-     ("V" (jongseong-giyeogsios  . 4))
-     ("B" . "?")
-     ("N" . "-")
-     ("M" . "\"")
-     ("<" . ",")
-     (">" . ".")
-     ("?" . "!"))))
-
-(define byeoru-layout-generous3final
-  (byeoru-expand-layout
-   ;; Unshifted keys
-   '(("`" . "*")
-     ("1" (jongseong-hieuh       . (1 4)))
-     ("2" (jongseong-ssangsios   . 5))
-     ("3" (jongseong-bieub       . (3 4)))
-     ("4" (jungseong-yo               . 1))
-     ("5" (jungseong-yu               . 1))
-     ("6" (jungseong-ya               . 1))
-     ("7" (jungseong-ye               . 1))
-     ("8" (jungseong-ui               . 4))
-     ("9" (jungseong-u                . 3))
-     ("0" (choseong-kieuk     . 1))
-     ("-" . ")")
-     ("=" . ">")
-     ("q" (jongseong-sios     . (3 4 5)))
-     ("w" (jongseong-rieul       . 3))
-     ("e" (jungseong-yeo      . 1))
-     ("r" (jungseong-ae               . (1 4)))
-     ("t" (jungseong-eo               . (1 4)))
-     ("y" (choseong-rieul     . 1))
-     ("u" (choseong-digeud    . (3 5)))
-     ("i" (choseong-mieum     . 1))
-     ("o" (choseong-chieuch   . 1))
-     ("p" (choseong-pieup     . 1))
-     ("[" . "(")
-     ("]" . "<")
-     ("\\" . ":")
-     ("a" (jongseong-ieung       . 1))
-     ("s" (jongseong-nieun       . 3))
-     ("d" (jungseong-i                . (1 4)))
-     ("f" (jungseong-a                . (1 4)))
-     ("g" (jungseong-eu               . 3))
-     ("h" (choseong-nieun     . 1))
-     ("j" (choseong-ieung     . 1))
-     ("k" (choseong-giyeog    . (3 5)))
-     ("l" (choseong-jieuj     . (3 5)))
-     (";" (choseong-bieub     . (3 5)))
-     ("'" (choseong-tieut     . 1))
-     ("z" (jongseong-mieum       . (1 4)))
-     ("x" (jongseong-giyeog      . (3 4 5)))
-     ("c" (jungseong-e                . (1 4)))
-     ("v" (jungseong-o                . 3))
-     ("b" (jungseong-u                . 3))
-     ("n" (choseong-sios      . (3 5)))
-     ("m" (choseong-hieuh     . 1))
-     ("/" (jungseong-o                . 3))
-     ;; Shifted keys
-     ("~" . 8251)            ; U+203B, REFERENCE MARK
-     ("!" (jongseong-ssanggiyeog . 5))
-     ("@" (jongseong-rieulgiyeog . 4))
-     ("#" (jongseong-jieuj    . (1 4)))
-     ("$" (jongseong-rieulpieup  . 4))
-     ("%" (jongseong-rieultieut  . 4))
-     ("^" . "=")
-     ("&" . 8220)                ; U+201C, LEFT DOUBLE QUOTATION MARK
-     ("*" . 8221)            ; U+201D, RIGHT DOUBLE QUOTATION MARK
-     ("(" . "'")
-     (")" . "~")
-     ("_" . ";")
-     ("Q" (jongseong-pieup    . (1 4)))
-     ("W" (jongseong-tieut    . (1 4)))
-     ("E" (jongseong-nieunjieuj  . 4))
-     ("R" (jongseong-rieulhieuh  . 4))
-     ("T" (jongseong-rieulsios   . 4))
-     ("Y" . "5")
-     ("U" . "6")
-     ("I" . "7")
-     ("O" . "8")
-     ("P" . "9")
-     ("{" . "%")
-     ("}" . "/")
-     ("|" . "\\")
-;;     ("|" . 8361)          ; U+20A9, WON SIGN
-     ("A" (jongseong-digeud      . 1))
-     ("S" (jongseong-nieunhieuh  . 4))
-     ("D" (jongseong-rieulbieub  . 4))
-     ("F" (jongseong-rieulmieum  . 4))
-     ("G" (jungseong-yae      . 1))
-     ("H" . "0")
-     ("J" . "1")
-     ("K" . "2")
-     ("L" . "3")
-     (":" . "4")
-     ("\"". 183)                ; U+00B7, MIDDLE DOT
-     ("Z" (jongseong-chieuch     . 1))
-     ("X" (jongseong-bieubsios   . 4))
-     ("C" (jongseong-kieuk    . 1))
-     ("V" (jongseong-giyeogsios  . 4))
-     ("B" . "?")
-     ("N" . "-")
-     ("M" . "\"")
-     ("<" . ",")
-     (">" . ".")
-     ("?" . "!"))))
-
-(define byeoru-layout-strict390
-  (byeoru-expand-layout
-   ;; Unshifted keys
-   '(("1" (jongseong-hieuh       . 1))
-     ("2" (jongseong-ssangsios   . 5))
-     ("3" (jongseong-bieub       . (1 4)))
-     ("4" (jungseong-yo               . 1))
-     ("5" (jungseong-yu               . 1))
-     ("6" (jungseong-ya               . 1))
-     ("7" (jungseong-ye               . 1))
-     ("8" (jungseong-ui               . 4))
-     ("9" (jungseong-u                . 2))
-     ("0" (choseong-kieuk     . 1))
-     ("q" (jongseong-sios     . (1 4)))
-     ("w" (jongseong-rieul       . 3))
-     ("e" (jungseong-yeo      . 1))
-     ("r" (jungseong-ae               . (1 4)))
-     ("t" (jungseong-eo               . (1 4)))
-     ("y" (choseong-rieul     . 1))
-     ("u" (choseong-digeud       . (3 5)))
-     ("i" (choseong-mieum     . 1))
-     ("o" (choseong-chieuch      . 1))
-     ("p" (choseong-pieup     . 1))
-     ("a" (jongseong-ieung       . 1))
-     ("s" (jongseong-nieun       . 3))
-     ("d" (jungseong-i                . (1 4)))
-     ("f" (jungseong-a                . (1 4)))
-     ("g" (jungseong-eu               . 1))
-     ("h" (choseong-nieun     . 1))
-     ("j" (choseong-ieung     . 1))
-     ("k" (choseong-giyeog       . (3 5)))
-     ("l" (choseong-jieuj     . (3 5)))
-     (";" (choseong-bieub     . (3 5)))
-     ("'" (choseong-tieut     . 1))
-     ("z" (jongseong-mieum       . 1))
-     ("x" (jongseong-giyeog      . 3))
-     ("c" (jungseong-e                . (1 4)))
-     ("v" (jungseong-o                . 1))
-     ("b" (jungseong-u                . 1))
-     ("n" (choseong-sios      . (3 5)))
-     ("m" (choseong-hieuh     . 1))
-     ("/" (jungseong-o                . 2))
-     ;; Shifted keys
-     ("!" (jongseong-jieuj       . (1 4)))
-     ("Q" (jongseong-pieup       . (1 4)))
-     ("W" (jongseong-tieut       . (1 4)))
-     ("E" (jongseong-kieuk       . 1))
-     ("R" (jungseong-yae      . 1))
-     ("T" . ";")
-     ("Y" . "<")
-     ("U" . "7")
-     ("I" . "8")
-     ("O" . "9")
-     ("P" . ">")
-     ("A" (jongseong-digeud      . 1))
-     ("S" (jongseong-nieunhieuh  . 4))
-     ("D" (jongseong-rieulgiyeog . 4))
-     ("F" (jongseong-ssanggiyeog . 5))
-     ("G" . "/")
-     ("H" . "'")
-     ("J" . "4")
-     ("K" . "5")
-     ("L" . "6")
-     ("Z" (jongseong-chieuch     . 1))
-     ("X" (jongseong-bieubsios   . 4))
-     ("C" (jongseong-rieulmieum  . 4))
-     ("V" (jongseong-rieulhieuh  . 4))
-     ("B" . "!")
-     ("N" . "0")
-     ("M" . "1")
-     ("<" . "2")
-     (">" . "3"))))
-
-(define byeoru-layout-generous390
-  (byeoru-expand-layout
-   ;; Unshifted keys
-   '(("1" (jongseong-hieuh       . (1 4)))
-     ("2" (jongseong-ssangsios   . 5))
-     ("3" (jongseong-bieub       . (3 4)))
-     ("4" (jungseong-yo               . 1))
-     ("5" (jungseong-yu               . 1))
-     ("6" (jungseong-ya               . 1))
-     ("7" (jungseong-ye               . 1))
-     ("8" (jungseong-ui               . 4))
-     ("9" (jungseong-u                . 3))
-     ("0" (choseong-kieuk     . 1))
-     ("q" (jongseong-sios     . (3 4 5)))
-     ("w" (jongseong-rieul       . 3))
-     ("e" (jungseong-yeo      . 1))
-     ("r" (jungseong-ae               . (1 4)))
-     ("t" (jungseong-eo               . (1 4)))
-     ("y" (choseong-rieul     . 1))
-     ("u" (choseong-digeud       . (3 5)))
-     ("i" (choseong-mieum     . 1))
-     ("o" (choseong-chieuch      . 1))
-     ("p" (choseong-pieup     . 1))
-     ("a" (jongseong-ieung       . 1))
-     ("s" (jongseong-nieun       . 3))
-     ("d" (jungseong-i                . (1 4)))
-     ("f" (jungseong-a                . (1 4)))
-     ("g" (jungseong-eu               . 3))
-     ("h" (choseong-nieun     . 1))
-     ("j" (choseong-ieung     . 1))
-     ("k" (choseong-giyeog       . (3 5)))
-     ("l" (choseong-jieuj     . (3 5)))
-     (";" (choseong-bieub     . (3 5)))
-     ("'" (choseong-tieut     . 1))
-     ("z" (jongseong-mieum       . (1 4)))
-     ("x" (jongseong-giyeog      . (3 4 5)))
-     ("c" (jungseong-e                . (1 4)))
-     ("v" (jungseong-o                . 3))
-     ("b" (jungseong-u                . 3))
-     ("n" (choseong-sios      . (3 5)))
-     ("m" (choseong-hieuh     . 1))
-     ("/" (jungseong-o                . 3))
-     ;; Shifted keys
-     ("!" (jongseong-jieuj       . (1 4)))
-     ("Q" (jongseong-pieup       . (1 4)))
-     ("W" (jongseong-tieut       . (1 4)))
-     ("E" (jongseong-kieuk       . 1))
-     ("R" (jungseong-yae      . 1))
-     ("T" . ";")
-     ("Y" . "<")
-     ("U" . "7")
-     ("I" . "8")
-     ("O" . "9")
-     ("P" . ">")
-     ("A" (jongseong-digeud      . 1))
-     ("S" (jongseong-nieunhieuh  . 4))
-     ("D" (jongseong-rieulgiyeog . 4))
-     ("F" (jongseong-ssanggiyeog . 5))
-     ("G" . "/")
-     ("H" . "'")
-     ("J" . "4")
-     ("K" . "5")
-     ("L" . "6")
-     ("Z" (jongseong-chieuch     . 1))
-     ("X" (jongseong-bieubsios   . 4))
-     ("C" (jongseong-rieulmieum  . 4))
-     ("V" (jongseong-rieulhieuh  . 4))
-     ("B" . "!")
-     ("N" . "0")
-     ("M" . "1")
-     ("<" . "2")
-     (">" . "3"))))
-
-(define byeoru-layout-no-shift
-  (byeoru-expand-layout
-   ;; Unshifted keys
-   '(("`" . 183)
-     ("1" (jongseong-hieuh     . (1 4)))
-     ("2" (jongseong-ssangsios . 5))
-     ("3" (jongseong-bieub     . (3 4)))
-     ("4" (jungseong-yo             . 1))
-     ("5" (jungseong-yu             . 1))
-     ("6" (jungseong-ya             . 1))
-     ("7" (jungseong-ye             . 1))
-     ("8" (jungseong-ui             . 4))
-     ("9" (choseong-kieuk      . 1))
-     ("0" (jungseong-yae       . 1))
-     ("-" (jongseong-jieuj     . (1 4)))
-     ("=" (jongseong-chieuch   . 1))
-     ("q" (jongseong-sios      . (3 4 5)))
-     ("w" (jongseong-rieul     . 3))
-     ("e" (jungseong-yeo       . 1))
-     ("r" (jungseong-ae             . (1 4)))
-     ("t" (jungseong-eo             . (1 4)))
-     ("y" (choseong-rieul      . 1))
-     ("u" (choseong-digeud     . (3 5)))
-     ("i" (choseong-mieum      . 1))
-     ("o" (choseong-chieuch    . 1))
-     ("p" (choseong-pieup      . 1))
-     ("[" (jongseong-tieut     . (1 4)))
-     ("]" (jongseong-pieup     . (1 4)))
-     ("\\" (jongseong-kieuk    . 1))
-     ("a" (jongseong-ieung     . 1))
-     ("s" (jongseong-nieun     . 3))
-     ("d" (jungseong-i              . (1 4)))
-     ("f" (jungseong-a              . (1 4)))
-     ("g" (jungseong-eu             . 3))
-     ("h" (choseong-nieun      . 1))
-     ("j" (choseong-ieung      . 1))
-     ("k" (choseong-giyeog     . (3 5)))
-     ("l" (choseong-jieuj      . (3 5)))
-     (";" (choseong-bieub      . (3 5)))
-     ("'" (choseong-tieut      . 1))
-     ("z" (jongseong-mieum     . (1 4)))
-     ("x" (jongseong-giyeog    . (3 4 5)))
-     ("c" (jungseong-e              . (1 4)))
-     ("v" (jungseong-o              . 3))
-     ("b" (jungseong-u              . 3))
-     ("n" (choseong-sios       . (3 5)))
-     ("m" (choseong-hieuh      . 1))
-     ("/" (jongseong-digeud    . 1))
-     ;; Shifted keys
-     ("Q" (jongseong-sios      . (3 4 5)))
-     ("W" (jongseong-rieul     . 3))
-     ("E" (jungseong-yeo       . 1))
-     ("R" (jungseong-ae             . (1 4)))
-     ("T" . ";")
-     ("Y" . "<")
-     ("U" . "7")
-     ("I" . "8")
-     ("O" . "9")
-     ("P" . ">")
-     ("A" (jongseong-ieung     . 1))
-     ("S" . "[")
-     ("D" . "]")
-     ("F" (jungseong-a              . (1 4)))
-     ("G" . "/")
-     ("H" . "'")
-     ("J" . "4")
-     ("K" . "5")
-     ("L" . "6")
-     ("Z" . "-")
-     ("X" . "=")
-     ("C" . "\\")
-     ("V" (jungseong-o              . 3))
-     ("B" . "!")
-     ("N" . "0")
-     ("M" . "1")
-     ("<" . "2")
-     (">" . "3"))))
+(byeoru-define-layout byeoru-layout-strict3final
+ ;; Unshifted keys
+ ("`" . "*")
+ ("1" (jongseong-hieuh            . 1))
+ ("2" (jongseong-ssangsios   . 5))
+ ("3" (jongseong-bieub            . 1))
+ ("4" (jungseong-yo       . 1))
+ ("5" (jungseong-yu       . 1))
+ ("6" (jungseong-ya       . 1))
+ ("7" (jungseong-ye       . 1))
+ ("8" (jungseong-ui       . 4))
+ ("9" (jungseong-u        . 2))
+ ("0" (choseong-kieuk             . 1))
+ ("-" . ")")
+ ("=" . ">")
+ ("q" (jongseong-sios             . 1))
+ ("w" (jongseong-rieul            . 1))
+ ("e" (jungseong-yeo      . 1))
+ ("r" (jungseong-ae       . (1 4)))
+ ("t" (jungseong-eo       . (1 4)))
+ ("y" (choseong-rieul             . 1))
+ ("u" (choseong-digeud            . (3 5)))
+ ("i" (choseong-mieum             . 1))
+ ("o" (choseong-chieuch           . 1))
+ ("p" (choseong-pieup             . 1))
+ ("[" . "(")
+ ("]" . "<")
+ ("\\" . ":")
+ ("a" (jongseong-ieung            . 1))
+ ("s" (jongseong-nieun            . 1))
+ ("d" (jungseong-i        . (1 4)))
+ ("f" (jungseong-a        . (1 4)))
+ ("g" (jungseong-eu       . 1))
+ ("h" (choseong-nieun             . 1))
+ ("j" (choseong-ieung             . 1))
+ ("k" (choseong-giyeog            . (3 5)))
+ ("l" (choseong-jieuj             . (3 5)))
+ (";" (choseong-bieub             . (3 5)))
+ ("'" (choseong-tieut             . 1))
+ ("z" (jongseong-mieum            . 1))
+ ("x" (jongseong-giyeog           . 1))
+ ("c" (jungseong-e        . (1 4)))
+ ("v" (jungseong-o        . 1))
+ ("b" (jungseong-u        . 1))
+ ("n" (choseong-sios      . (3 5)))
+ ("m" (choseong-hieuh             . 1))
+ ("/" (jungseong-o        . 2))
+ ;; Shifted keys
+ ("~" . 8251)                    ; U+203B, REFERENCE MARK
+ ("!" (jongseong-ssanggiyeog . 5))
+ ("@" (jongseong-rieulgiyeog . 4))
+ ("#" (jongseong-jieuj            . 1))
+ ("$" (jongseong-rieulpieup  . 4))
+ ("%" (jongseong-rieultieut  . 4))
+ ("^" . "=")
+ ("&" . 8220)                ; U+201C, LEFT DOUBLE QUOTATION MARK
+ ("*" . 8221)                    ; U+201D, RIGHT DOUBLE QUOTATION MARK
+ ("(" . "'")
+ (")" . "~")
+ ("_" . ";")
+ ("Q" (jongseong-pieup            . 1))
+ ("W" (jongseong-tieut            . 1))
+ ("E" (jongseong-nieunjieuj  . 4))
+ ("R" (jongseong-rieulhieuh  . 4))
+ ("T" (jongseong-rieulsios   . 4))
+ ("Y" . "5")
+ ("U" . "6")
+ ("I" . "7")
+ ("O" . "8")
+ ("P" . "9")
+ ("{" . "%")
+ ("}" . "/")
+ ("|" . "\\")
+ ;;    ("|" . 8361)           ; U+20A9, WON SIGN
+ ("A" (jongseong-digeud           . 1))
+ ("S" (jongseong-nieunhieuh  . 4))
+ ("D" (jongseong-rieulbieub  . 4))
+ ("F" (jongseong-rieulmieum  . 4))
+ ("G" (jungseong-yae      . 1))
+ ("H" . "0")
+ ("J" . "1")
+ ("K" . "2")
+ ("L" . "3")
+ (":" . "4")
+ ("\"" . 183)               ; U+00B7, MIDDLE DOT
+ ("Z" (jongseong-chieuch     . 1))
+ ("X" (jongseong-bieubsios   . 4))
+ ("C" (jongseong-kieuk            . 1))
+ ("V" (jongseong-giyeogsios  . 4))
+ ("B" . "?")
+ ("N" . "-")
+ ("M" . "\"")
+ ("<" . ",")
+ (">" . ".")
+ ("?" . "!"))
+
+(byeoru-define-layout byeoru-layout-generous3final
+ ;; Unshifted keys
+ ("`" . "*")
+ ("1" (jongseong-hieuh            . (1 4)))
+ ("2" (jongseong-ssangsios   . 5))
+ ("3" (jongseong-bieub            . (3 4)))
+ ("4" (jungseong-yo       . 1))
+ ("5" (jungseong-yu       . 1))
+ ("6" (jungseong-ya       . 1))
+ ("7" (jungseong-ye       . 1))
+ ("8" (jungseong-ui       . 4))
+ ("9" (jungseong-u        . 3))
+ ("0" (choseong-kieuk             . 1))
+ ("-" . ")")
+ ("=" . ">")
+ ("q" (jongseong-sios             . (3 4 5)))
+ ("w" (jongseong-rieul            . 3))
+ ("e" (jungseong-yeo      . 1))
+ ("r" (jungseong-ae       . (1 4)))
+ ("t" (jungseong-eo       . (1 4)))
+ ("y" (choseong-rieul             . 1))
+ ("u" (choseong-digeud            . (3 5)))
+ ("i" (choseong-mieum             . 1))
+ ("o" (choseong-chieuch           . 1))
+ ("p" (choseong-pieup             . 1))
+ ("[" . "(")
+ ("]" . "<")
+ ("\\" . ":")
+ ("a" (jongseong-ieung            . 1))
+ ("s" (jongseong-nieun            . 3))
+ ("d" (jungseong-i        . (1 4)))
+ ("f" (jungseong-a        . (1 4)))
+ ("g" (jungseong-eu       . 3))
+ ("h" (choseong-nieun             . 1))
+ ("j" (choseong-ieung             . 1))
+ ("k" (choseong-giyeog            . (3 5)))
+ ("l" (choseong-jieuj             . (3 5)))
+ (";" (choseong-bieub             . (3 5)))
+ ("'" (choseong-tieut             . 1))
+ ("z" (jongseong-mieum            . (1 4)))
+ ("x" (jongseong-giyeog           . (3 4 5)))
+ ("c" (jungseong-e        . (1 4)))
+ ("v" (jungseong-o        . 3))
+ ("b" (jungseong-u        . 3))
+ ("n" (choseong-sios      . (3 5)))
+ ("m" (choseong-hieuh             . 1))
+ ("/" (jungseong-o        . 3))
+ ;; Shifted keys
+ ("~" . 8251)                    ; U+203B, REFERENCE MARK
+ ("!" (jongseong-ssanggiyeog . 5))
+ ("@" (jongseong-rieulgiyeog . 4))
+ ("#" (jongseong-jieuj            . (1 4)))
+ ("$" (jongseong-rieulpieup  . 4))
+ ("%" (jongseong-rieultieut  . 4))
+ ("^" . "=")
+ ("&" . 8220)                ; U+201C, LEFT DOUBLE QUOTATION MARK
+ ("*" . 8221)                    ; U+201D, RIGHT DOUBLE QUOTATION MARK
+ ("(" . "'")
+ (")" . "~")
+ ("_" . ";")
+ ("Q" (jongseong-pieup            . (1 4)))
+ ("W" (jongseong-tieut            . (1 4)))
+ ("E" (jongseong-nieunjieuj  . 4))
+ ("R" (jongseong-rieulhieuh  . 4))
+ ("T" (jongseong-rieulsios   . 4))
+ ("Y" . "5")
+ ("U" . "6")
+ ("I" . "7")
+ ("O" . "8")
+ ("P" . "9")
+ ("{" . "%")
+ ("}" . "/")
+ ("|" . "\\")
+ ;;    ("|" . 8361)           ; U+20A9, WON SIGN
+ ("A" (jongseong-digeud           . 1))
+ ("S" (jongseong-nieunhieuh  . 4))
+ ("D" (jongseong-rieulbieub  . 4))
+ ("F" (jongseong-rieulmieum  . 4))
+ ("G" (jungseong-yae      . 1))
+ ("H" . "0")
+ ("J" . "1")
+ ("K" . "2")
+ ("L" . "3")
+ (":" . "4")
+ ("\"". 183)                ; U+00B7, MIDDLE DOT
+ ("Z" (jongseong-chieuch     . 1))
+ ("X" (jongseong-bieubsios   . 4))
+ ("C" (jongseong-kieuk            . 1))
+ ("V" (jongseong-giyeogsios  . 4))
+ ("B" . "?")
+ ("N" . "-")
+ ("M" . "\"")
+ ("<" . ",")
+ (">" . ".")
+ ("?" . "!"))
+
+(byeoru-define-layout byeoru-layout-strict390
+ ;; Unshifted keys
+ ("1" (jongseong-hieuh            . 1))
+ ("2" (jongseong-ssangsios   . 5))
+ ("3" (jongseong-bieub            . (1 4)))
+ ("4" (jungseong-yo       . 1))
+ ("5" (jungseong-yu       . 1))
+ ("6" (jungseong-ya       . 1))
+ ("7" (jungseong-ye       . 1))
+ ("8" (jungseong-ui       . 4))
+ ("9" (jungseong-u        . 2))
+ ("0" (choseong-kieuk             . 1))
+ ("q" (jongseong-sios             . (1 4)))
+ ("w" (jongseong-rieul            . 3))
+ ("e" (jungseong-yeo      . 1))
+ ("r" (jungseong-ae       . (1 4)))
+ ("t" (jungseong-eo       . (1 4)))
+ ("y" (choseong-rieul             . 1))
+ ("u" (choseong-digeud            . (3 5)))
+ ("i" (choseong-mieum             . 1))
+ ("o" (choseong-chieuch           . 1))
+ ("p" (choseong-pieup             . 1))
+ ("a" (jongseong-ieung            . 1))
+ ("s" (jongseong-nieun            . 3))
+ ("d" (jungseong-i        . (1 4)))
+ ("f" (jungseong-a        . (1 4)))
+ ("g" (jungseong-eu       . 1))
+ ("h" (choseong-nieun             . 1))
+ ("j" (choseong-ieung             . 1))
+ ("k" (choseong-giyeog            . (3 5)))
+ ("l" (choseong-jieuj             . (3 5)))
+ (";" (choseong-bieub             . (3 5)))
+ ("'" (choseong-tieut             . 1))
+ ("z" (jongseong-mieum            . 1))
+ ("x" (jongseong-giyeog           . 3))
+ ("c" (jungseong-e        . (1 4)))
+ ("v" (jungseong-o        . 1))
+ ("b" (jungseong-u        . 1))
+ ("n" (choseong-sios      . (3 5)))
+ ("m" (choseong-hieuh             . 1))
+ ("/" (jungseong-o        . 2))
+ ;; Shifted keys
+ ("!" (jongseong-jieuj            . (1 4)))
+ ("Q" (jongseong-pieup            . (1 4)))
+ ("W" (jongseong-tieut            . (1 4)))
+ ("E" (jongseong-kieuk            . 1))
+ ("R" (jungseong-yae      . 1))
+ ("T" . ";")
+ ("Y" . "<")
+ ("U" . "7")
+ ("I" . "8")
+ ("O" . "9")
+ ("P" . ">")
+ ("A" (jongseong-digeud           . 1))
+ ("S" (jongseong-nieunhieuh  . 4))
+ ("D" (jongseong-rieulgiyeog . 4))
+ ("F" (jongseong-ssanggiyeog . 5))
+ ("G" . "/")
+ ("H" . "'")
+ ("J" . "4")
+ ("K" . "5")
+ ("L" . "6")
+ ("Z" (jongseong-chieuch     . 1))
+ ("X" (jongseong-bieubsios   . 4))
+ ("C" (jongseong-rieulmieum  . 4))
+ ("V" (jongseong-rieulhieuh  . 4))
+ ("B" . "!")
+ ("N" . "0")
+ ("M" . "1")
+ ("<" . "2")
+ (">" . "3"))
+
+(byeoru-define-layout byeoru-layout-generous390
+ ;; Unshifted keys
+ ("1" (jongseong-hieuh            . (1 4)))
+ ("2" (jongseong-ssangsios   . 5))
+ ("3" (jongseong-bieub            . (3 4)))
+ ("4" (jungseong-yo       . 1))
+ ("5" (jungseong-yu       . 1))
+ ("6" (jungseong-ya       . 1))
+ ("7" (jungseong-ye       . 1))
+ ("8" (jungseong-ui       . 4))
+ ("9" (jungseong-u        . 3))
+ ("0" (choseong-kieuk             . 1))
+ ("q" (jongseong-sios             . (3 4 5)))
+ ("w" (jongseong-rieul            . 3))
+ ("e" (jungseong-yeo      . 1))
+ ("r" (jungseong-ae       . (1 4)))
+ ("t" (jungseong-eo       . (1 4)))
+ ("y" (choseong-rieul             . 1))
+ ("u" (choseong-digeud            . (3 5)))
+ ("i" (choseong-mieum             . 1))
+ ("o" (choseong-chieuch           . 1))
+ ("p" (choseong-pieup             . 1))
+ ("a" (jongseong-ieung            . 1))
+ ("s" (jongseong-nieun            . 3))
+ ("d" (jungseong-i        . (1 4)))
+ ("f" (jungseong-a        . (1 4)))
+ ("g" (jungseong-eu       . 3))
+ ("h" (choseong-nieun             . 1))
+ ("j" (choseong-ieung             . 1))
+ ("k" (choseong-giyeog            . (3 5)))
+ ("l" (choseong-jieuj             . (3 5)))
+ (";" (choseong-bieub             . (3 5)))
+ ("'" (choseong-tieut             . 1))
+ ("z" (jongseong-mieum            . (1 4)))
+ ("x" (jongseong-giyeog           . (3 4 5)))
+ ("c" (jungseong-e        . (1 4)))
+ ("v" (jungseong-o        . 3))
+ ("b" (jungseong-u        . 3))
+ ("n" (choseong-sios      . (3 5)))
+ ("m" (choseong-hieuh             . 1))
+ ("/" (jungseong-o        . 3))
+ ;; Shifted keys
+ ("!" (jongseong-jieuj            . (1 4)))
+ ("Q" (jongseong-pieup            . (1 4)))
+ ("W" (jongseong-tieut            . (1 4)))
+ ("E" (jongseong-kieuk            . 1))
+ ("R" (jungseong-yae      . 1))
+ ("T" . ";")
+ ("Y" . "<")
+ ("U" . "7")
+ ("I" . "8")
+ ("O" . "9")
+ ("P" . ">")
+ ("A" (jongseong-digeud           . 1))
+ ("S" (jongseong-nieunhieuh  . 4))
+ ("D" (jongseong-rieulgiyeog . 4))
+ ("F" (jongseong-ssanggiyeog . 5))
+ ("G" . "/")
+ ("H" . "'")
+ ("J" . "4")
+ ("K" . "5")
+ ("L" . "6")
+ ("Z" (jongseong-chieuch     . 1))
+ ("X" (jongseong-bieubsios   . 4))
+ ("C" (jongseong-rieulmieum  . 4))
+ ("V" (jongseong-rieulhieuh  . 4))
+ ("B" . "!")
+ ("N" . "0")
+ ("M" . "1")
+ ("<" . "2")
+ (">" . "3"))
+
+(byeoru-define-layout byeoru-layout-no-shift
+ ;; Unshifted keys
+ ("`" . 183)
+ ("1" (jongseong-hieuh          . (1 4)))
+ ("2" (jongseong-ssangsios . 5))
+ ("3" (jongseong-bieub          . (3 4)))
+ ("4" (jungseong-yo     . 1))
+ ("5" (jungseong-yu     . 1))
+ ("6" (jungseong-ya     . 1))
+ ("7" (jungseong-ye     . 1))
+ ("8" (jungseong-ui     . 4))
+ ("9" (choseong-kieuk           . 1))
***The diff for this file has been truncated for email.***

Reply via email to