*** empty log message ***
[m17n/m17n-lib-js.git] / vi-telex.mimx
diff --git a/vi-telex.mimx b/vi-telex.mimx
deleted file mode 100644 (file)
index 2074b24..0000000
+++ /dev/null
@@ -1,1415 +0,0 @@
-<?xml version='1.0'?>
-<input-method xmlns="http://www.m17n.org/MIM">
-  <tags>
-    <language>vi</language>
-    <name>telex</name>
-  </tags>
-  <description>
-    <gettext>Vietnames input method using the TELEX key sequence.
-Typing Backslash ('\') toggles the normal mode and English mode.
-The following variables are customizable:
-  tone-mark-on-last: control tone mark position in equivocal cases
-  backspace-is-undo: control the action of Backspace key (delete or undo)</gettext>
-  </description>
-  <title>Ắ(TLX)</title>
-  <variable-list>
-    <defvar vname="tone-mark-on-last">
-      <description>
-        <gettext>Flag to control tone mark position in equivocal cases.
-If this variable is 0 (the default), put tone mark on the first vowel
-in such equivocal cases as "oa", "oe", "uy".
-Otherwise, put tone mark on the last vowel.</gettext>
-      </description>
-      <integer>0</integer>
-      <possible-value>
-        <integer>0</integer>
-        <integer>1</integer>
-      </possible-value>
-    </defvar>
-    <defvar vname="backspace-is-undo">
-      <description>
-        <gettext>Flag to control the action of Backspace key (delete or undo).
-If this variable is 0 (the default), Backspace key deletes the previous
-character (e.g. "q u a i s BS" =&gt; "quá").
-If the value is 1, Backspace key undoes the previous key
-(e.g. "q u a i s BS" =&gt; "quai").</gettext>
-      </description>
-      <integer>0</integer>
-      <possible-value>
-        <integer>0</integer>
-        <integer>1</integer>
-      </possible-value>
-    </defvar>
-  </variable-list>
-  <macro-list>
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="vi-base.mimx" xpointer="xmlns(mim=http://www.m17n.org/MIM)xpointer(//mim:defmacro)">
-      <tags>
-        <language>t</language>
-        <name>nil</name>
-        <extra-id>vi-base</extra-id>
-      </tags>
-      <section>macro</section>
-    </xi:include>
-  </macro-list>
-  <map-list>
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="vi-base.mimx" xpointer="xmlns(mim=http://www.m17n.org/MIM)xpointer(//mim:map)">
-      <tags>
-        <language>t</language>
-        <name>nil</name>
-        <extra-id>vi-base</extra-id>
-      </tags>
-      <section>map</section>
-    </xi:include>
-    <map mname="map-vowel-ext">
-      <rule>
-        <keyseq>
-          <string>aa</string>
-        </keyseq>
-        <insert-candidates>
-          <string>âấầẩẫậ</string>
-        </insert-candidates>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>AA</string>
-        </keyseq>
-        <insert-candidates>
-          <string>ÂẤẦẨẪẬ</string>
-        </insert-candidates>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>Aa</string>
-        </keyseq>
-        <insert-candidates>
-          <string>ÂẤẦẨẪẬ</string>
-        </insert-candidates>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>aw</string>
-        </keyseq>
-        <insert-candidates>
-          <string>ăắằẳẵặ</string>
-        </insert-candidates>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>AW</string>
-        </keyseq>
-        <insert-candidates>
-          <string>ĂẮẰẲẴẶ</string>
-        </insert-candidates>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>Aw</string>
-        </keyseq>
-        <insert-candidates>
-          <string>ĂẮẰẲẴẶ</string>
-        </insert-candidates>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>ee</string>
-        </keyseq>
-        <insert-candidates>
-          <string>êếềểễệ</string>
-        </insert-candidates>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>EE</string>
-        </keyseq>
-        <insert-candidates>
-          <string>ÊẾỀỂỄỆ</string>
-        </insert-candidates>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>Ee</string>
-        </keyseq>
-        <insert-candidates>
-          <string>ÊẾỀỂỄỆ</string>
-        </insert-candidates>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>oo</string>
-        </keyseq>
-        <insert-candidates>
-          <string>ôốồổỗộ</string>
-        </insert-candidates>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>OO</string>
-        </keyseq>
-        <insert-candidates>
-          <string>ÔỐỒỔỖỘ</string>
-        </insert-candidates>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>Oo</string>
-        </keyseq>
-        <insert-candidates>
-          <string>ÔỐỒỔỖỘ</string>
-        </insert-candidates>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>ow</string>
-        </keyseq>
-        <insert-candidates>
-          <string>ơớờởỡợ</string>
-        </insert-candidates>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>OW</string>
-        </keyseq>
-        <insert-candidates>
-          <string>ƠỚỜỞỠỢ</string>
-        </insert-candidates>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>Ow</string>
-        </keyseq>
-        <insert-candidates>
-          <string>ƠỚỜỞỠỢ</string>
-        </insert-candidates>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>uw</string>
-        </keyseq>
-        <insert-candidates>
-          <string>ưứừửữự</string>
-        </insert-candidates>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>UW</string>
-        </keyseq>
-        <insert-candidates>
-          <string>ƯỨỪỬỮỰ</string>
-        </insert-candidates>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>Uw</string>
-        </keyseq>
-        <insert-candidates>
-          <string>ƯỨỪỬỮỰ</string>
-        </insert-candidates>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>w</string>
-        </keyseq>
-        <cond>
-          <list>
-            <eq>
-              <varref vname="V-1"/>
-              <integer>0</integer>
-            </eq>
-            <insert-candidates>
-              <string>ưứừửữự</string>
-            </insert-candidates>
-          </list>
-          <list>
-            <integer>1</integer>
-            <insert>
-              <string>w</string>
-            </insert>
-          </list>
-        </cond>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>W</string>
-        </keyseq>
-        <cond>
-          <list>
-            <eq>
-              <varref vname="V-1"/>
-              <integer>0</integer>
-            </eq>
-            <insert-candidates>
-              <string>ƯỨỪỬỮỰ</string>
-            </insert-candidates>
-          </list>
-          <list>
-            <integer>1</integer>
-            <insert>
-              <string>W</string>
-            </insert>
-          </list>
-        </cond>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>ooo</string>
-        </keyseq>
-        <insert-candidates>
-          <string>oóòỏõọ</string>
-        </insert-candidates>
-        <insert-candidates>
-          <string>oóòỏõọ</string>
-        </insert-candidates>
-        <set vname="V-2">
-          <varref vname="V-1"/>
-        </set>
-        <set vname="V-1">
-          <integer>111</integer>
-        </set>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>OOO</string>
-        </keyseq>
-        <insert-candidates>
-          <string>OÓÒỎÕỌ</string>
-        </insert-candidates>
-        <insert-candidates>
-          <string>OÓÒỎÕỌ</string>
-        </insert-candidates>
-        <set vname="V-2">
-          <varref vname="V-1"/>
-        </set>
-        <set vname="V-1">
-          <integer>79</integer>
-        </set>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>Ooo</string>
-        </keyseq>
-        <insert-candidates>
-          <string>OÓÒỎÕỌ</string>
-        </insert-candidates>
-        <insert-candidates>
-          <string>oóòỏõọ</string>
-        </insert-candidates>
-        <set vname="V-2">
-          <varref vname="V-1"/>
-        </set>
-        <set vname="V-1">
-          <integer>79</integer>
-        </set>
-      </rule>
-    </map>
-    <map mname="map-consonant-ext">
-      <rule>
-        <keyseq>
-          <string>dd</string>
-        </keyseq>
-        <insert>
-          <integer>273</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>DD</string>
-        </keyseq>
-        <insert>
-          <integer>272</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>Dd</string>
-        </keyseq>
-        <insert>
-          <integer>272</integer>
-        </insert>
-      </rule>
-    </map>
-    <map mname="map-tone-mark">
-      <rule>
-        <keyseq>
-          <string>z</string>
-        </keyseq>
-        <set vname="SELECT">
-          <integer>0</integer>
-        </set>
-        <insert>
-          <integer>122</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>Z</string>
-        </keyseq>
-        <set vname="SELECT">
-          <integer>0</integer>
-        </set>
-        <insert>
-          <integer>90</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>s</string>
-        </keyseq>
-        <set vname="SELECT">
-          <integer>1</integer>
-        </set>
-        <insert>
-          <integer>115</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>S</string>
-        </keyseq>
-        <set vname="SELECT">
-          <integer>1</integer>
-        </set>
-        <insert>
-          <integer>83</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>f</string>
-        </keyseq>
-        <set vname="SELECT">
-          <integer>2</integer>
-        </set>
-        <insert>
-          <integer>102</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>F</string>
-        </keyseq>
-        <set vname="SELECT">
-          <integer>2</integer>
-        </set>
-        <insert>
-          <integer>70</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>r</string>
-        </keyseq>
-        <set vname="SELECT">
-          <integer>3</integer>
-        </set>
-        <insert>
-          <integer>114</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>R</string>
-        </keyseq>
-        <set vname="SELECT">
-          <integer>3</integer>
-        </set>
-        <insert>
-          <integer>82</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>x</string>
-        </keyseq>
-        <set vname="SELECT">
-          <integer>4</integer>
-        </set>
-        <insert>
-          <integer>120</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>X</string>
-        </keyseq>
-        <set vname="SELECT">
-          <integer>4</integer>
-        </set>
-        <insert>
-          <integer>88</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>j</string>
-        </keyseq>
-        <set vname="SELECT">
-          <integer>5</integer>
-        </set>
-        <insert>
-          <integer>106</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>J</string>
-        </keyseq>
-        <set vname="SELECT">
-          <integer>5</integer>
-        </set>
-        <insert>
-          <integer>74</integer>
-        </insert>
-      </rule>
-    </map>
-    <map mname="map-consonant-or-tone-mark">
-      <rule>
-        <keyseq>
-          <string>z</string>
-        </keyseq>
-        <insert>
-          <integer>122</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>s</string>
-        </keyseq>
-        <insert>
-          <integer>115</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>f</string>
-        </keyseq>
-        <insert>
-          <integer>102</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>r</string>
-        </keyseq>
-        <insert>
-          <integer>114</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>x</string>
-        </keyseq>
-        <insert>
-          <integer>120</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>j</string>
-        </keyseq>
-        <insert>
-          <integer>106</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>Z</string>
-        </keyseq>
-        <insert>
-          <integer>90</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>S</string>
-        </keyseq>
-        <insert>
-          <integer>83</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>F</string>
-        </keyseq>
-        <insert>
-          <integer>70</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>R</string>
-        </keyseq>
-        <insert>
-          <integer>82</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>X</string>
-        </keyseq>
-        <insert>
-          <integer>88</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>J</string>
-        </keyseq>
-        <insert>
-          <integer>74</integer>
-        </insert>
-      </rule>
-    </map>
-    <map mname="map-temporary-escape">
-      <rule>
-        <keyseq>
-          <string>aaa</string>
-        </keyseq>
-        <insert>
-          <string>aa</string>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>AAA</string>
-        </keyseq>
-        <insert>
-          <string>AA</string>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>Aaa</string>
-        </keyseq>
-        <insert>
-          <string>Aa</string>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>eee</string>
-        </keyseq>
-        <insert>
-          <string>ee</string>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>EEE</string>
-        </keyseq>
-        <insert>
-          <string>EE</string>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>Eee</string>
-        </keyseq>
-        <insert>
-          <string>Ee</string>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>ddd</string>
-        </keyseq>
-        <insert>
-          <string>dd</string>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>DDD</string>
-        </keyseq>
-        <insert>
-          <string>DD</string>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>Ddd</string>
-        </keyseq>
-        <insert>
-          <string>Dd</string>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>aww</string>
-        </keyseq>
-        <insert>
-          <string>aw</string>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>AWW</string>
-        </keyseq>
-        <insert>
-          <string>AW</string>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>Aww</string>
-        </keyseq>
-        <insert>
-          <string>Aw</string>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>uww</string>
-        </keyseq>
-        <insert>
-          <string>uw</string>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>UWW</string>
-        </keyseq>
-        <insert>
-          <string>UW</string>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>Uww</string>
-        </keyseq>
-        <insert>
-          <string>Uw</string>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>oww</string>
-        </keyseq>
-        <insert>
-          <string>ow</string>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>OWW</string>
-        </keyseq>
-        <insert>
-          <string>OW</string>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>Oww</string>
-        </keyseq>
-        <insert>
-          <string>Ow</string>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>ww</string>
-        </keyseq>
-        <insert>
-          <integer>119</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>WW</string>
-        </keyseq>
-        <insert>
-          <integer>87</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>Ww</string>
-        </keyseq>
-        <insert>
-          <integer>87</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>zz</string>
-        </keyseq>
-        <insert>
-          <integer>122</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>ZZ</string>
-        </keyseq>
-        <insert>
-          <integer>90</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>Zz</string>
-        </keyseq>
-        <insert>
-          <integer>90</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>ss</string>
-        </keyseq>
-        <insert>
-          <integer>115</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>SS</string>
-        </keyseq>
-        <insert>
-          <integer>83</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>Ss</string>
-        </keyseq>
-        <insert>
-          <integer>83</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>ff</string>
-        </keyseq>
-        <insert>
-          <integer>102</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>FF</string>
-        </keyseq>
-        <insert>
-          <integer>70</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>Ff</string>
-        </keyseq>
-        <insert>
-          <integer>70</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>rr</string>
-        </keyseq>
-        <insert>
-          <integer>114</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>RR</string>
-        </keyseq>
-        <insert>
-          <integer>82</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>Rr</string>
-        </keyseq>
-        <insert>
-          <integer>82</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>xx</string>
-        </keyseq>
-        <insert>
-          <integer>120</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>XX</string>
-        </keyseq>
-        <insert>
-          <integer>88</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>Xx</string>
-        </keyseq>
-        <insert>
-          <integer>88</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>jj</string>
-        </keyseq>
-        <insert>
-          <integer>106</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>JJ</string>
-        </keyseq>
-        <insert>
-          <integer>74</integer>
-        </insert>
-      </rule>
-      <rule>
-        <keyseq>
-          <string>Jj</string>
-        </keyseq>
-        <insert>
-          <integer>74</integer>
-        </insert>
-      </rule>
-    </map>
-  </map-list>
-  <state-list>
-    <state sname="state-init">
-      <state-hook>
-        <set vname="C">
-          <char-at>
-            <marker>@-1</marker>
-          </char-at>
-        </set>
-        <set vname="V-1">
-          <integer>0</integer>
-        </set>
-        <set vname="V-2">
-          <integer>0</integer>
-        </set>
-        <set vname="V-3">
-          <integer>0</integer>
-        </set>
-        <set vname="C-AFTER-V">
-          <integer>0</integer>
-        </set>
-        <set vname="SELECT">
-          <integer>0</integer>
-        </set>
-        <set vname="NST">
-          <eq>
-            <surrounding-text-flag/>
-            <integer>-2</integer>
-          </eq>
-        </set>
-      </state-hook>
-      <branch mname="map-consonant">
-        <set vname="C">
-          <char-at>
-            <marker>@-1</marker>
-          </char-at>
-        </set>
-        <cond>
-          <list>
-            <varref vname="NST"/>
-            <shift>
-              <symbol>state-after-c</symbol>
-            </shift>
-          </list>
-        </cond>
-      </branch>
-      <branch mname="map-consonant-ext">
-        <set vname="C">
-          <char-at>
-            <marker>@-1</marker>
-          </char-at>
-        </set>
-        <cond>
-          <list>
-            <varref vname="NST"/>
-            <shift>
-              <symbol>state-after-c</symbol>
-            </shift>
-          </list>
-        </cond>
-      </branch>
-      <branch mname="map-consonant-or-tone-mark">
-        <cond>
-          <list>
-            <logior>
-              <eq>
-                <char-at>
-                  <marker>@-1</marker>
-                </char-at>
-                <integer>102</integer>
-              </eq>
-              <eq>
-                <char-at>
-                  <marker>@-1</marker>
-                </char-at>
-                <integer>106</integer>
-              </eq>
-              <eq>
-                <char-at>
-                  <marker>@-1</marker>
-                </char-at>
-                <integer>122</integer>
-              </eq>
-              <eq>
-                <char-at>
-                  <marker>@-1</marker>
-                </char-at>
-                <integer>70</integer>
-              </eq>
-              <eq>
-                <char-at>
-                  <marker>@-1</marker>
-                </char-at>
-                <integer>74</integer>
-              </eq>
-              <eq>
-                <char-at>
-                  <marker>@-1</marker>
-                </char-at>
-                <integer>90</integer>
-              </eq>
-            </logior>
-            <shift>
-              <symbol>state-temporary-escape</symbol>
-            </shift>
-          </list>
-          <list>
-            <integer>1</integer>
-            <set vname="C">
-              <char-at>
-                <marker>@-1</marker>
-              </char-at>
-            </set>
-            <cond>
-              <list>
-                <varref vname="NST"/>
-                <shift>
-                  <symbol>state-after-c</symbol>
-                </shift>
-              </list>
-            </cond>
-          </list>
-        </cond>
-      </branch>
-      <branch mname="map-vowel">
-        <mark>
-          <marker>M</marker>
-        </mark>
-        <set vname="V-2">
-          <varref vname="V-1"/>
-        </set>
-        <set vname="V-1">
-          <char-at>
-            <marker>@-1</marker>
-          </char-at>
-        </set>
-        <shift>
-          <symbol>state-after-v</symbol>
-        </shift>
-      </branch>
-      <branch mname="map-vowel-ext">
-        <mark>
-          <marker>M</marker>
-        </mark>
-        <set vname="V-2">
-          <varref vname="V-1"/>
-        </set>
-        <set vname="V-1">
-          <char-at>
-            <marker>@-1</marker>
-          </char-at>
-        </set>
-        <shift>
-          <symbol>state-after-v</symbol>
-        </shift>
-      </branch>
-      <branch mname="map-temporary-escape">
-        <shift>
-          <symbol>state-temporary-escape</symbol>
-        </shift>
-      </branch>
-      <branch mname="map-permanent-escape">
-        <shift>
-          <symbol>state-escape-in-normal-mode</symbol>
-        </shift>
-      </branch>
-      <branch mname="map-smart-quotes"/>
-    </state>
-    <state sname="state-after-c">
-      <branch mname="map-vowel">
-        <mark>
-          <marker>M</marker>
-        </mark>
-        <set vname="V-2">
-          <varref vname="V-1"/>
-        </set>
-        <set vname="V-1">
-          <char-at>
-            <marker>@-1</marker>
-          </char-at>
-        </set>
-        <shift>
-          <symbol>state-after-v</symbol>
-        </shift>
-      </branch>
-      <branch mname="map-vowel-ext">
-        <mark>
-          <marker>M</marker>
-        </mark>
-        <set vname="V-2">
-          <varref vname="V-1"/>
-        </set>
-        <set vname="V-1">
-          <char-at>
-            <marker>@-1</marker>
-          </char-at>
-        </set>
-        <shift>
-          <symbol>state-after-v</symbol>
-        </shift>
-      </branch>
-    </state>
-    <state sname="state-after-v">
-      <branch mname="map-ending-1st-consonant">
-        <funcall fname="macro-handle-mark"/>
-        <shift>
-          <symbol>state-after-vc</symbol>
-        </shift>
-      </branch>
-      <branch mname="map-vowel">
-        <mark>
-          <marker>M</marker>
-        </mark>
-        <set vname="V-3">
-          <varref vname="V-2"/>
-        </set>
-        <set vname="V-2">
-          <varref vname="V-1"/>
-        </set>
-        <set vname="V-1">
-          <char-at>
-            <marker>@-1</marker>
-          </char-at>
-        </set>
-        <move>
-          <marker>T</marker>
-        </move>
-        <select>
-          <integer>0</integer>
-        </select>
-        <funcall fname="macro-handle-mark"/>
-        <move>
-          <marker>M</marker>
-        </move>
-      </branch>
-      <branch mname="map-vowel-ext">
-        <mark>
-          <marker>M</marker>
-        </mark>
-        <set vname="V-3">
-          <varref vname="V-2"/>
-        </set>
-        <set vname="V-2">
-          <varref vname="V-1"/>
-        </set>
-        <set vname="V-1">
-          <char-at>
-            <marker>@-1</marker>
-          </char-at>
-        </set>
-        <move>
-          <marker>T</marker>
-        </move>
-        <select>
-          <integer>0</integer>
-        </select>
-        <funcall fname="macro-handle-mark"/>
-        <move>
-          <marker>M</marker>
-        </move>
-      </branch>
-      <branch mname="map-ending-1st-notviet-consonant">
-        <shift>
-          <symbol>state-temporary-escape</symbol>
-        </shift>
-      </branch>
-      <branch mname="map-consonant-or-tone-mark">
-        <delete>
-          <marker>@-</marker>
-        </delete>
-        <pushback>
-          <integer>1</integer>
-        </pushback>
-        <shift>
-          <symbol>state-after-t</symbol>
-        </shift>
-      </branch>
-      <branch mname="map-backspace">
-        <delete>
-          <marker>@-</marker>
-        </delete>
-        <cond>
-          <list>
-            <varref vname="V-3"/>
-            <set vname="V-1">
-              <varref vname="V-2"/>
-            </set>
-            <set vname="V-2">
-              <varref vname="V-3"/>
-            </set>
-            <set vname="V-3">
-              <integer>0</integer>
-            </set>
-            <cond>
-              <list>
-                <gt>
-                  <varref vname="TPLACE"/>
-                  <integer>2</integer>
-                </gt>
-                <set vname="SELECT">
-                  <integer>0</integer>
-                </set>
-              </list>
-            </cond>
-            <funcall fname="macro-handle-mark"/>
-          </list>
-          <list>
-            <varref vname="V-2"/>
-            <set vname="V-1">
-              <varref vname="V-2"/>
-            </set>
-            <set vname="V-2">
-              <integer>0</integer>
-            </set>
-            <cond>
-              <list>
-                <gt>
-                  <varref vname="TPLACE"/>
-                  <integer>1</integer>
-                </gt>
-                <set vname="SELECT">
-                  <integer>0</integer>
-                </set>
-              </list>
-            </cond>
-            <funcall fname="macro-handle-mark"/>
-          </list>
-          <list>
-            <integer>1</integer>
-            <shift>
-              <symbol>state-init</symbol>
-            </shift>
-          </list>
-        </cond>
-      </branch>
-    </state>
-    <state sname="state-after-vc">
-      <state-hook>
-        <set vname="C-AFTER-V">
-          <integer>1</integer>
-        </set>
-      </state-hook>
-      <branch mname="map-ending-2nd-consonant">
-        <cond>
-          <list>
-            <logior>
-              <eq>
-                <char-at>
-                  <marker>@-2</marker>
-                </char-at>
-                <integer>110</integer>
-              </eq>
-              <eq>
-                <char-at>
-                  <marker>@-2</marker>
-                </char-at>
-                <integer>99</integer>
-              </eq>
-              <eq>
-                <char-at>
-                  <marker>@-2</marker>
-                </char-at>
-                <integer>78</integer>
-              </eq>
-              <eq>
-                <char-at>
-                  <marker>@-2</marker>
-                </char-at>
-                <integer>67</integer>
-              </eq>
-            </logior>
-            <add vname="C-AFTER-V">
-              <integer>1</integer>
-            </add>
-          </list>
-          <list>
-            <integer>1</integer>
-            <shift>
-              <symbol>state-temporary-escape</symbol>
-            </shift>
-          </list>
-        </cond>
-      </branch>
-      <branch mname="map-ending-1st-notviet-consonant">
-        <shift>
-          <symbol>state-temporary-escape</symbol>
-        </shift>
-      </branch>
-      <branch mname="map-consonant-or-tone-mark">
-        <delete>
-          <marker>@-</marker>
-        </delete>
-        <pushback>
-          <integer>1</integer>
-        </pushback>
-        <shift>
-          <symbol>state-after-t</symbol>
-        </shift>
-      </branch>
-      <branch mname="map-vowel">
-        <shift>
-          <symbol>state-temporary-escape</symbol>
-        </shift>
-      </branch>
-      <branch mname="map-vowel-ext">
-        <shift>
-          <symbol>state-temporary-escape</symbol>
-        </shift>
-      </branch>
-      <branch mname="map-backspace">
-        <delete>
-          <marker>@-</marker>
-        </delete>
-        <sub vname="C-AFTER-V">
-          <integer>1</integer>
-        </sub>
-        <funcall fname="macro-handle-mark"/>
-        <cond>
-          <list>
-            <eq>
-              <varref vname="C-AFTER-V"/>
-              <integer>0</integer>
-            </eq>
-            <shift>
-              <symbol>state-after-v</symbol>
-            </shift>
-          </list>
-        </cond>
-      </branch>
-    </state>
-    <state sname="state-after-t">
-      <state-hook>
-        <set vname="CURRENT-SELECT">
-          <integer>-1</integer>
-        </set>
-      </state-hook>
-      <branch mname="map-tone-mark">
-        <cond>
-          <list>
-            <eq>
-              <varref vname="CURRENT-SELECT"/>
-              <varref vname="SELECT"/>
-            </eq>
-            <move>
-              <marker>T</marker>
-            </move>
-            <select>
-              <integer>0</integer>
-            </select>
-            <move>
-              <marker>@&gt;</marker>
-            </move>
-            <shift>
-              <symbol>state-temporary-escape</symbol>
-            </shift>
-          </list>
-          <list>
-            <integer>1</integer>
-            <delete>
-              <marker>@-</marker>
-            </delete>
-            <funcall fname="macro-handle-mark"/>
-            <set vname="CURRENT-SELECT">
-              <varref vname="SELECT"/>
-            </set>
-          </list>
-        </cond>
-      </branch>
-      <catch-all-branch>
-        <cond>
-          <list>
-            <varref vname="C-AFTER-V"/>
-            <shift>
-              <symbol>state-after-vc</symbol>
-            </shift>
-          </list>
-          <list>
-            <integer>1</integer>
-            <shift>
-              <symbol>state-after-v</symbol>
-            </shift>
-          </list>
-        </cond>
-      </catch-all-branch>
-    </state>
-    <state sname="state-temporary-escape">
-      <title>en</title>
-      <state-hook>
-        <commit/>
-      </state-hook>
-      <branch mname="map-alnum">
-        <commit/>
-      </branch>
-    </state>
-    <state sname="state-escape-in-normal-mode">
-      <title>EN</title>
-      <branch mname="map-permanent-escape">
-        <insert>
-          <string>\</string>
-        </insert>
-        <shift>
-          <symbol>state-init</symbol>
-        </shift>
-      </branch>
-      <catch-all-branch>
-        <shift>
-          <symbol>state-permanent-escape</symbol>
-        </shift>
-      </catch-all-branch>
-    </state>
-    <state sname="state-permanent-escape">
-      <title>EN</title>
-      <state-hook>
-        <set vname="ESCAPE">
-          <integer>1</integer>
-        </set>
-      </state-hook>
-      <branch mname="map-permanent-escape">
-        <shift>
-          <symbol>state-escape-in-permanent-escape</symbol>
-        </shift>
-      </branch>
-      <catch-all-branch>
-        <unhandle/>
-      </catch-all-branch>
-    </state>
-    <state sname="state-escape-in-permanent-escape">
-      <title>Ắ</title>
-      <branch mname="map-permanent-escape">
-        <insert>
-          <string>\</string>
-        </insert>
-        <commit/>
-        <shift>
-          <symbol>state-permanent-escape</symbol>
-        </shift>
-      </branch>
-    </state>
-  </state-list>
-</input-method>
\ No newline at end of file