From 675f6bc91efe6762ff3c2990fb9cafdbdecded5f Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Mon, 14 Aug 2023 09:23:20 +0700 Subject: [PATCH] feat(developer): description, font and example metadata in packages Adds info.description, options.fonts, keyboard.examples metadata to .kps and kmp.json files, updates schemas, and Typescript compiler. --- common/schemas/kps/kps.xsd | 15 ++ common/web/types/src/package/kmp-json-file.ts | 30 ++++ common/web/types/src/package/kps-file.ts | 33 ++++ .../kmc-package/src/compiler/kmp-compiler.ts | 41 +++-- .../test/fixtures/kmp_2.0/khmer_angkor.js | 1 + .../test/fixtures/kmp_2.0/khmer_angkor.kmx | Bin 0 -> 26280 bytes .../test/fixtures/kmp_2.0/khmer_angkor.kps | 143 ++++++++++++++++++ .../test/fixtures/kmp_2.0/kmp.json | 131 ++++++++++++++++ .../kmc-package/test/test-package-compiler.ts | 28 ++++ 9 files changed, 401 insertions(+), 21 deletions(-) create mode 100644 developer/src/kmc-package/test/fixtures/kmp_2.0/khmer_angkor.js create mode 100644 developer/src/kmc-package/test/fixtures/kmp_2.0/khmer_angkor.kmx create mode 100644 developer/src/kmc-package/test/fixtures/kmp_2.0/khmer_angkor.kps create mode 100644 developer/src/kmc-package/test/fixtures/kmp_2.0/kmp.json diff --git a/common/schemas/kps/kps.xsd b/common/schemas/kps/kps.xsd index e6ee424e28..e951c3369f 100644 --- a/common/schemas/kps/kps.xsd +++ b/common/schemas/kps/kps.xsd @@ -74,6 +74,7 @@ + @@ -110,6 +111,7 @@ + @@ -209,4 +211,17 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/web/types/src/package/kmp-json-file.ts b/common/web/types/src/package/kmp-json-file.ts index 913bc98f06..6c56b50012 100644 --- a/common/web/types/src/package/kmp-json-file.ts +++ b/common/web/types/src/package/kmp-json-file.ts @@ -19,6 +19,11 @@ export interface KmpJsonFileOptions { executeProgram?: string; msiFilename?: string; msiOptions?: string; + /** + * List of all font files, grouped by font family + * Compiler extracts font metadata from .ttf,.otf,.woff,.woff2 + */ + fonts?: {[family:string]: string[]}; } export interface KmpJsonFileInfo { @@ -27,6 +32,11 @@ export interface KmpJsonFileInfo { name?: KmpJsonFileInfoItem; copyright?: KmpJsonFileInfoItem; author?: KmpJsonFileInfoItem; + /** + * A Markdown description of the keyboard, intended for use in websites + * referencing the keyboard + */ + description?: KmpJsonFileInfoItem; } export interface KmpJsonFileInfoItem { @@ -59,6 +69,7 @@ export interface KmpJsonFileKeyboard { displayFont?: string; rtl?: boolean; languages?: KmpJsonFileLanguage[]; + examples?: KmpJsonFileExample[]; } export interface KmpJsonFileStartMenu { @@ -74,3 +85,22 @@ export interface KmpJsonFileStartMenuItem { icon?: string; location?: string; } + +export interface KmpJsonFileExample { + /** + * BCP 47 identifier for the example + */ + id: string; + /** + * A space-separated list of keys, modifiers indicated with "+", spacebar is "space", plus key is "shift+=" or "plus" + */ + keys: string; + /** + * The text that would be generated by typing those keys + */ + text?: string; + /** + * A short description of what the text means or represents + */ + note?: string; +} \ No newline at end of file diff --git a/common/web/types/src/package/kps-file.ts b/common/web/types/src/package/kps-file.ts index 7ff77d0984..ca854888db 100644 --- a/common/web/types/src/package/kps-file.ts +++ b/common/web/types/src/package/kps-file.ts @@ -51,6 +51,7 @@ export interface KpsFileInfo { author?: KpsFileInfoItem; webSite?: KpsFileInfoItem; version?: KpsFileInfoItem; + description?: KpsFileInfoItem; } export interface KpsFileInfoItem { @@ -64,8 +65,11 @@ export interface KpsFileContentFiles { export interface KpsFileContentFile { name: string; + /** @deprecated */ description: string; + /** @deprecated */ copyLocation: string; + /** @deprecated */ fileType: string; } @@ -96,6 +100,7 @@ export interface KpsFileKeyboard { displayFont?: string; rTL?: string; languages?: KpsFileLanguages; + examples?: KpsFileLanguageExamples; } export interface KpsFileKeyboards { @@ -124,3 +129,31 @@ export interface KpsFileStrings { //TODO: validate this structure string: string[] | string; } + +export interface KpsFileLanguageExamples { + example: KpsFileLanguageExample | KpsFileLanguageExample[]; +} + +/** + * An example key sequence intended to demonstrate how the keyboard works + */ +export interface KpsFileLanguageExample { + $: { + /** + * BCP 47 identifier for the example + */ + ID: string; + /** + * A space-separated list of keys, modifiers indicated with "+", spacebar is "space", plus key is "shift+=" or "plus" + */ + keys: string; + /** + * The text that would be generated by typing those keys + */ + text?: string; + /** + * A short description of what the text means or represents + */ + note?: string; + } +} diff --git a/developer/src/kmc-package/src/compiler/kmp-compiler.ts b/developer/src/kmc-package/src/compiler/kmp-compiler.ts index dbce6b0957..cf006d313b 100644 --- a/developer/src/kmc-package/src/compiler/kmp-compiler.ts +++ b/developer/src/kmc-package/src/compiler/kmp-compiler.ts @@ -67,25 +67,20 @@ export class KmpCompiler { // Fill in additional fields // - let keys: [keyof KpsFile.KpsFileOptions, keyof KmpJsonFile.KmpJsonFileOptions][] = [ - ['executeProgram','executeProgram'], - ['graphicFile', 'graphicFile'], - ['msiFileName','msiFilename'], - ['msiOptions', 'msiOptions'], - ['readMeFile', 'readmeFile'] - ]; if(kps.options) { - for (let [src,dst] of keys) { - if (kps.options[src]) { - if(dst == 'graphicFile' || dst == 'readmeFile') { - kmp.options[dst] = /[/\\]?([^/\\]*)$/.exec(kps.options[src])[1]; - } else { - kmp.options[dst] = kps.options[src]; - } - } + kmp.options.executeProgram = kps.options?.executeProgram || undefined; + if(kps.options.graphicFile) { + kmp.options.graphicFile = /[/\\]?([^/\\]*)$/.exec(kps.options.graphicFile)[1]; + } + kmp.options.msiFilename = kps.options.msiFileName; + kmp.options.msiOptions = kps.options.msiOptions; + if(kps.options.readMeFile) { + kmp.options.readmeFile = /[/\\]?([^/\\]*)$/.exec(kps.options.readMeFile)[1]; } } + // TODO: this.addFontMetadata(); + // // Add basic metadata // @@ -139,7 +134,12 @@ export class KmpCompiler { rtl:keyboard.rTL == 'True' ? true : undefined, languages: keyboard.languages ? this.kpsLanguagesToKmpLanguages(this.arrayWrap(keyboard.languages.language) as KpsFile.KpsFileLanguage[]) : - [] + [], + examples: keyboard.examples ? + (this.arrayWrap(keyboard.examples.example) as KpsFile.KpsFileLanguageExample[]).map( + e => ({id: e.$.ID, keys: e.$.keys, text: e.$.text, note: e.$.note}) + ) as KmpJsonFile.KmpJsonFileExample[] : + undefined })); } @@ -237,13 +237,14 @@ export class KmpCompiler { ['copyright','copyright'], ['name','name'], ['version','version'], - ['webSite','website'] + ['webSite','website'], + ['description','description'], ]; for (let [src,dst] of keys) { if (info[src]) { - ni[dst] = {description: info[src]._ ?? (typeof info[src] == 'string' ? info[src].toString() : '')}; - if(info[src].$ && info[src].$.URL) ni[dst].url = info[src].$.URL; + ni[dst] = {description: (info[src]._ ?? (typeof info[src] == 'string' ? info[src].toString() : '').trim())}; + if(info[src].$ && info[src].$.URL) ni[dst].url = info[src].$.URL.trim(); } } @@ -264,8 +265,6 @@ export class KmpCompiler { return language.map((element) => { return { name: element._, id: element.$.ID } }); }; - - private stripUndefined(o: any) { for(const key in o) { if(o[key] === undefined) { diff --git a/developer/src/kmc-package/test/fixtures/kmp_2.0/khmer_angkor.js b/developer/src/kmc-package/test/fixtures/kmp_2.0/khmer_angkor.js new file mode 100644 index 0000000000..4ee51e4d3e --- /dev/null +++ b/developer/src/kmc-package/test/fixtures/kmp_2.0/khmer_angkor.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_khmer_angkor());}function Keyboard_khmer_angkor(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_khmer_angkor";this.KN="Khmer Angkor";this.KMINVER="10.0";this.KV={F:' 1em "Khmer Busra Kbd"',K102:0};this.KV.KLS={"rightalt": ["‍","‌","@","","$","€","៙","៚","*","{","}","≈","","","","","ៜ","","ឯ","ឫ","ឨ","[","]","ឦ","ឱ","ឰ","ឩ","ឳ","\\","","","","+","-","×","÷",":","‘","’","ឝ","៘","៖","ៈ","","","","","","","<",">","#","&","ឞ",";","",",",".","/","","","","",""," "],"rightalt-shift": ["","៱","៲","៳","៴","៵","៶","៷","៸","៹","៰","","","","","","᧠","᧡","᧢","᧣","᧤","᧥","᧦","᧧","᧨","᧩","᧪","᧫","","","","","᧬","᧭","᧮","᧯","᧰","᧱","᧲","᧳","᧴","᧵","᧶","","","","","","","᧷","᧸","᧹","᧺","᧻","᧼","᧽","᧾","᧿","","","","","","",""],"default": ["«","១","២","៣","៤","៥","៦","៧","៨","៩","០","ឥ","ឲ","","","","ឆ","","","រ","ត","យ","","","","ផ","","ឪ","ឮ","","","","","ស","ដ","ថ","ង","ហ","","ក","ល","","","","","","","","","ឋ","ខ","ច","វ","ប","ន","ម","","។","","","","","","","​"],"shift": ["»","!","ៗ","\"","៛","%","","","","(",")","","=","","","","ឈ","","","ឬ","ទ","","","","","ភ","","ឧ","ឭ","","","","","","ឌ","ធ","អ","ះ","ញ","គ","ឡ","","","","","","","","","ឍ","ឃ","ជ","","ព","ណ","","","៕","?","","","","","",""]};this.KV.BK=(function(x){var e=Array.apply(null,Array(65)).map(String.prototype.valueOf,""),r=[],v,i,m=['default','shift','ctrl','shift-ctrl','alt','shift-alt','ctrl-alt','shift-ctrl-alt'];for(i=m.length-1;i>=0;i--)if((v=x[m[i]])||r.length)r=(v?v:e).slice().concat(r);return r})(this.KV.KLS);this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.3";this.KMBM=0x0018;this.KVKD="T_17D2_1780 T_17D2_1781 T_17D2_1782 T_17D2_1783 T_17D2_1784 T_17D2_1785 T_17D2_1786 T_17D2_1787 T_17D2_1788 T_17D2_1789 T_17D2_178A T_17D2_178B T_17D2_178C T_17D2_178D T_17D2_178E T_17D2_178F T_17D2_1790 T_17D2_1791 T_17D2_1792 T_17D2_1793 T_17D2_1794 T_17D2_1795 T_17D2_1796 T_17D2_1797 T_17D2_1798 T_17D2_1799 T_17D2_179A T_17D2_179B T_17D2_179C T_17D2_179D T_17D2_179E T_17D2_179F T_17D2_17A0 T_17D2_17A1 T_17D2_17A2 U_0030 U_0031 U_0032 U_0033 U_0034 U_0035 U_0036 U_0037 U_0038 U_0039";this.KVKL={"phone":{"font":"Khmer Busra Kbd","fontsize":"0.8em","displayUnderlying":false,"layer":[{"id":"default","row":[{"id":"1","key":[{"id":"K_Q","text":"\u1786","sk":[{"layer":"shift","id":"K_Q","text":"\u1788"},{"id":"T_17D2_1786","text":"\uEF86"},{"id":"T_17D2_1788","text":"\uEF88"}]},{"id":"K_W","text":"\uEFB9","sk":[{"layer":"shift","id":"K_W","text":"\uEFBA"}]},{"id":"K_E","text":"\uEFC1","sk":[{"layer":"shift","id":"K_E","text":"\uEFC2"},{"layer":"shift","id":"K_S","text":"\uEFC3"},{"layer":"shift","id":"K_V","text":"\uEF12"},{"id":"U_17AF","text":"\u17AF"},{"id":"U_17B0","text":"\u17B0"}]},{"id":"K_R","text":"\u179A","sk":[{"id":"T_17D2_179A","text":"\uEF9A"},{"id":"U_17AB","text":"\u17AB"},{"id":"U_17AC","text":"\u17AC"}]},{"id":"K_T","text":"\u178F","sk":[{"layer":"shift","id":"K_T","text":"\u1791"},{"id":"T_17D2_178F","text":"\uEF8F"},{"layer":"default","id":"T_17D2_1791","text":"\uEF91"}]},{"id":"K_Y","text":"\u1799","sk":[{"id":"T_17D2_1799","text":"\uEF99"}]},{"id":"K_U","text":"\uEFBB","sk":[{"layer":"shift","id":"K_U","text":"\uEFBC"},{"layer":"shift","id":"K_Y","text":"\uEFBD"},{"id":"U_17A7","text":"\u17A7"},{"layer":"shift","id":"U_17AA","text":"\u17AA"},{"layer":"shift","id":"U_17A9","text":"\u17A9"},{"id":"U_17A8","text":"\u17A8"}]},{"id":"K_I","text":"\uEFB7","sk":[{"layer":"shift","id":"K_I","text":"\uEFB8"},{"id":"U_17A5","text":"\u17A5"},{"layer":"shift","id":"U_17A6","text":"\u17A6"}]},{"id":"K_O","text":"\uEFC4","sk":[{"layer":"shift","id":"K_O","text":"\uEFC5"},{"id":"K_LBRKT","text":"\uEFC0"},{"layer":"shift","id":"K_LBRKT","text":"\uEFBF"},{"layer":"shift","id":"K_COLON","text":"\uEF14"},{"id":"U_17B1","text":"\u17B1"},{"id":"U_17B2","text":"\u17B2"},{"layer":"shift","id":"U_17B3","text":"\u17B3"}]},{"id":"K_P","text":"\u1795","sk":[{"layer":"shift","id":"K_P","text":"\u1797"},{"id":"T_17D2_1795","text":"\uEF95"},{"layer":"default","id":"T_17D2_1797","text":"\uEF97"}]}]},{"id":"2","key":[{"width":"100","id":"K_A","text":"\uEFB6","sk":[{"layer":"shift","id":"K_A","text":"\uEF11"}]},{"id":"K_S","text":"\u179F","sk":[{"id":"T_17D2_179F","text":"\uEF9F"},{"id":"U_179D","text":"\u179D"},{"id":"U_179E","text":"\u179E"}]},{"id":"K_D","text":"\u178A","sk":[{"layer":"shift","id":"K_D","text":"\u178C"},{"id":"T_17D2_178A","text":"\uEF8A"},{"layer":"default","id":"T_17D2_178C","text":"\uEF8C"}]},{"id":"K_F","text":"\u1790","sk":[{"layer":"shift","id":"K_F","text":"\u1792"},{"id":"T_17D2_1790","text":"\uEF90"},{"layer":"default","id":"T_17D2_1792","text":"\uEF92"}]},{"id":"K_G","text":"\u1784","sk":[{"layer":"shift","id":"K_G","text":"\u17A2"},{"id":"T_17D2_1784","text":"\uEF84"},{"layer":"default","id":"T_17D2_17A2","text":"\uEFA2"}]},{"id":"K_H","text":"\u17A0","sk":[{"id":"T_17D2_17A0","text":"\uEFA0"},{"layer":"shift","id":"K_H","text":"\u17C7"},{"id":"U_17C8","text":"\u17C8"}]},{"layer":"shift","id":"K_J","text":"\u1789","sk":[{"id":"T_17D2_1789","text":"\uEF89"}]},{"id":"K_K","text":"\u1780","sk":[{"layer":"shift","id":"K_K","text":"\u1782"},{"id":"T_17D2_1780","text":"\uEF80"},{"id":"T_17D2_1782","text":"\uEF82"}]},{"id":"K_L","text":"\u179B","sk":[{"layer":"shift","id":"K_L","text":"\u17A1"},{"id":"T_17D2_179B","text":"\uEF9B"},{"id":"U_17AD","text":"\u17AD"},{"id":"U_17AE","text":"\u17AE"}]},{"id":"K_COLON","text":"\uEFBE"}]},{"id":"3","key":[{"id":"K_Z","text":"\u178B","sk":[{"layer":"shift","id":"K_Z","text":"\u178D"},{"id":"T_17D2_178B","text":"\uEF8B"},{"layer":"default","id":"T_17D2_178D","text":"\uEF8D"}]},{"id":"K_X","text":"\u1781","sk":[{"layer":"shift","id":"K_X","text":"\u1783"},{"id":"T_17D2_1781","text":"\uEF81"},{"layer":"default","id":"T_17D2_1783","text":"\uEF83"}]},{"id":"K_C","text":"\u1785","sk":[{"layer":"shift","id":"K_C","text":"\u1787"},{"id":"T_17D2_1785","text":"\uEF85"},{"layer":"default","id":"T_17D2_1787","text":"\uEF87"}]},{"id":"K_V","text":"\u179C","sk":[{"id":"T_17D2_179C","text":"\uEF9C"}]},{"id":"K_B","text":"\u1794","sk":[{"layer":"shift","id":"K_B","text":"\u1796"},{"id":"T_17D2_1794","text":"\uEF94"},{"layer":"default","id":"T_17D2_1796","text":"\uEF96"}]},{"id":"K_N","text":"\u1793","sk":[{"layer":"shift","id":"K_N","text":"\u178E"},{"id":"T_17D2_1793","text":"\uEF93"},{"layer":"default","id":"T_17D2_178E","text":"\uEF8E"}]},{"id":"K_M","text":"\u1798","sk":[{"id":"T_17D2_1798","text":"\uEF98"},{"layer":"shift","id":"K_M","text":"\uEFC6"}]},{"id":"K_COMMA","text":"\uEF10","sk":[{"layer":"shift","id":"K_COMMA","text":"\uEF13"},{"layer":"shift","id":"K_6","text":"\uEFCD"},{"layer":"shift","id":"K_7","text":"\uEFD0"},{"layer":"shift","id":"K_8","text":"\uEFCF"},{"layer":"shift","id":"K_HYPHEN","text":"\uEFCC"},{"layer":"shift","id":"U_17D1","text":"\uEFD1"},{"layer":"shift","id":"U_17DD","text":"\uEFDD"},{"layer":"shift","id":"U_17CE","text":"\uEFCE"}]},{"width":"100","id":"K_QUOTE","text":"\uEFCB","sk":[{"layer":"shift","id":"K_QUOTE","text":"\uEFC9"},{"id":"K_SLASH","text":"\uEFCA"}]},{"width":"100","id":"K_BKSP","sp":"1","text":"*BkSp*"}]},{"id":"4","key":[{"nextlayer":"numeric","width":"140","id":"K_NUMLOCK","sp":"1","text":"\u17E1\u17E2\u17E3"},{"width":"120","id":"K_LOPT","sp":"1","text":"*Menu*"},{"width":"555","id":"K_SPACE","text":"\u200B","sk":[{"layer":"default","id":"U_0020","text":" "}]},{"width":"120","id":"K_PERIOD","text":"\u17D4","sk":[{"layer":"shift","id":"K_PERIOD","text":"\u17D5"},{"id":"U_0021","text":"!"},{"id":"U_003F","text":"?"}]},{"width":"140","id":"K_ENTER","sp":"1","text":"*Enter*"}]}]},{"id":"numeric","row":[{"id":"1","key":[{"id":"K_1","text":"\u17E1","sk":[{"id":"U_0031","text":"1"}]},{"id":"K_2","text":"\u17E2","sk":[{"id":"U_0032","text":"2"}]},{"id":"K_3","text":"\u17E3","sk":[{"id":"U_0033","text":"3"}]},{"id":"K_4","text":"\u17E4","sk":[{"id":"U_0034","text":"4"}]},{"id":"K_5","text":"\u17E5","sk":[{"id":"U_0035","text":"5"}]},{"id":"K_6","text":"\u17E6","sk":[{"id":"U_0036","text":"6"}]},{"id":"K_7","text":"\u17E7","sk":[{"id":"U_0037","text":"7"}]},{"id":"K_8","text":"\u17E8","sk":[{"id":"U_0038","text":"8"}]},{"id":"K_9","text":"\u17E9","sk":[{"id":"U_0039","text":"9"}]},{"id":"K_0","text":"\u17E0","sk":[{"id":"U_0030","text":"0"},{"id":"U_17D3","text":"\uEFD3"}]}]},{"id":"2","key":[{"id":"U_0040","text":"@","sk":[{"id":"U_00A9","text":"\u00A9"},{"id":"U_00AE","text":"\u00AE"}]},{"id":"U_0023","text":"#","sk":[{"id":"U_2116","text":"\u2116"},{"id":"U_007E","text":"~"}]},{"id":"U_17DB","text":"\u17DB","sk":[{"id":"U_0024","text":"$"},{"id":"U_0E3F","text":"\u0E3F"},{"id":"U_00A2","text":"\u00A2"},{"id":"U_00A3","text":"\u00A3"},{"id":"U_00A5","text":"\u00A5"}]},{"id":"U_0026","text":"&"},{"id":"U_0025","text":"%","sk":[{"id":"U_2030","text":"\u2030"},{"id":"U_2031","text":"\u2031"}]},{"id":"U_002B","text":"+","sk":[{"id":"U_002D","text":"-"},{"id":"U_00D7","text":"\u00D7"},{"id":"U_00F7","text":"\u00F7"},{"id":"U_00B1","text":"\u00B1"}]},{"id":"U_003D","text":"=","sk":[{"id":"U_005F","text":"_"},{"id":"U_2260","text":"\u2260"}]},{"id":"U_002A","text":"*","sk":[{"id":"U_005E","text":"^"}]},{"id":"U_003F","text":"?","sk":[{"id":"U_00BF","text":"\u00BF"}]},{"id":"U_0021","text":"!","sk":[{"id":"U_00A1","text":"\u00A1"}]}]},{"id":"3","key":[{"id":"U_2018","text":"\u2018","sk":[{"id":"U_2019","text":"\u2019"}]},{"id":"U_201C","text":"\u201C","sk":[{"id":"U_201D","text":"\u201D"}]},{"id":"U_00AB","text":"\u00AB","sk":[{"id":"U_00BB","text":"\u00BB"}]},{"id":"U_002F","text":"\/","sk":[{"id":"U_005C","text":"\\"},{"id":"U_007C","text":"|"},{"id":"U_00A6","text":"\u00A6"}]},{"id":"U_0028","text":"(","sk":[{"id":"U_0029","text":")"},{"id":"U_005B","text":"["},{"id":"U_005D","text":"]"},{"id":"U_007B","text":"{"},{"id":"U_007D","text":"}"}]},{"id":"U_17D9","text":"\u17D9","sk":[{"id":"U_17DA","text":"\u17DA"},{"id":"U_17DC","text":"\u17DC"},{"id":"U_00A7","text":"\u00A7"},{"id":"U_00D8","text":"\u00D8"}]},{"id":"U_17D7","text":"\u17D7"},{"id":"U_003C","text":"<","sk":[{"id":"U_2264","text":"\u2264"},{"id":"U_003E","text":">"},{"id":"U_2265","text":"\u2265"}]},{"id":"U_17D6","text":"\u17D6","sk":[{"id":"U_003A","text":":"},{"id":"U_003B","text":";"},{"id":"U_2026","text":"\u2026"}]},{"id":"K_BKSP","sp":"1","text":"*BkSp*"}]},{"id":"4","key":[{"nextlayer":"default","width":"140","id":"K_LCONTROL","sp":"2","text":"\u17E1\u17E2\u17E3"},{"width":"120","id":"K_LOPT","sp":"1","text":"*Menu*"},{"layer":"shift","width":"555","id":"K_SPACE","text":"\u200B"},{"width":"120","id":"K_PERIOD","text":"\u17D4","sk":[{"layer":"shift","id":"K_PERIOD","text":"\u17D5"},{"id":"U_0021","text":"!"},{"id":"U_003F","text":"?"}]},{"width":"140","id":"K_ENTER","sp":"1","text":"*Enter*"}]}]}]},"tablet":{"font":"Khmer Busra Kbd","fontsize":"0.8em","displayUnderlying":false,"layer":[{"id":"default","row":[{"id":"1","key":[{"id":"K_1","text":"\u17E1"},{"id":"K_2","text":"\u17E2"},{"id":"K_3","text":"\u17E3"},{"id":"K_4","text":"\u17E4"},{"id":"K_5","text":"\u17E5"},{"id":"K_6","text":"\u17E6"},{"id":"K_7","text":"\u17E7"},{"id":"K_8","text":"\u17E8"},{"id":"K_9","text":"\u17E9"},{"id":"K_0","text":"\u17E0"},{"id":"K_HYPHEN","text":"\u17A5"},{"id":"K_EQUAL","text":"\u17B2"},{"width":"100","id":"K_BKSP","sp":"1","text":"*BkSp*"}]},{"id":"2","key":[{"id":"K_Q","pad":"75","text":"\u1786"},{"id":"K_W","text":"\uEFB9"},{"id":"K_E","text":"\uEFC1"},{"id":"K_R","text":"\u179A"},{"id":"K_T","text":"\u178F"},{"id":"K_Y","text":"\u1799"},{"id":"K_U","text":"\uEFBB"},{"id":"K_I","text":"\uEFB7"},{"id":"K_O","text":"\uEFC4"},{"id":"K_P","text":"\u1795"},{"id":"K_LBRKT","text":"\uEFC0"},{"id":"K_RBRKT","text":"\u17AA"},{"width":"10","id":"T_new_138","sp":"10"}]},{"id":"3","key":[{"id":"K_BKQUOTE","text":"\u00AB"},{"id":"K_A","text":"\uEFB6"},{"id":"K_S","text":"\u179F"},{"id":"K_D","text":"\u178A"},{"id":"K_F","text":"\u1790"},{"id":"K_G","text":"\u1784"},{"id":"K_H","text":"\u17A0"},{"id":"K_J","text":"\uEFD2"},{"id":"K_K","text":"\u1780"},{"id":"K_L","text":"\u179B"},{"id":"K_COLON","text":"\uEFBE"},{"id":"K_QUOTE","text":"\uEFCB"},{"id":"K_BKSLASH","text":"\u17AE"}]},{"id":"4","key":[{"nextlayer":"shift","width":"160","id":"K_SHIFT","sp":"1","text":"*Shift*"},{"id":"K_oE2"},{"id":"K_Z","text":"\u178B"},{"id":"K_X","text":"\u1781"},{"id":"K_C","text":"\u1785"},{"id":"K_V","text":"\u179C"},{"id":"K_B","text":"\u1794"},{"id":"K_N","text":"\u1793"},{"id":"K_M","text":"\u1798"},{"id":"K_COMMA","text":"\uEF10"},{"id":"K_PERIOD","text":"\u17D4"},{"id":"K_SLASH","text":"\uEFCA"},{"width":"10","id":"T_new_164","sp":"10"}]},{"id":"5","key":[{"nextlayer":"rightalt","width":"160","id":"K_LCONTROL","sp":"1","text":"*AltGr*"},{"width":"160","id":"K_LOPT","sp":"1","text":"*Menu*"},{"width":"930","id":"K_SPACE","text":"\u200B"},{"width":"160","id":"K_ENTER","sp":"1","text":"*Enter*"}]}]},{"id":"rightalt","row":[{"id":"1","key":[{"id":"K_1","text":"\u200C"},{"id":"K_2","text":"@"},{"id":"K_3","text":"\uEFD1"},{"id":"K_4","text":"$"},{"id":"K_5","text":"\u20AC"},{"id":"K_6","text":"\u17D9"},{"id":"K_7","text":"\u17DA"},{"id":"K_8","text":"*"},{"id":"K_9","text":"{"},{"id":"K_0","text":"}"},{"id":"K_HYPHEN","text":"\u2248"},{"id":"K_EQUAL","text":"\uEFCE"},{"width":"100","id":"K_BKSP","sp":"1","text":"*BkSp*"}]},{"id":"2","key":[{"id":"K_Q","pad":"75","text":"\u17DC"},{"id":"K_W","text":"\uEFDD"},{"id":"K_E","text":"\u17AF"},{"id":"K_R","text":"\u17AB"},{"id":"K_T","text":"\u17A8"},{"id":"K_Y","text":"["},{"id":"K_U","text":"]"},{"id":"K_I","text":"\u17A6"},{"id":"K_O","text":"\u17B1"},{"id":"K_P","text":"\u17B0"},{"id":"K_LBRKT","text":"\u17A9"},{"id":"K_RBRKT","text":"\u17B3"},{"width":"10","id":"T_new_307","sp":"10"}]},{"id":"3","key":[{"id":"K_BKQUOTE","text":"\u200D"},{"id":"K_A","text":"+"},{"id":"K_S","text":"-"},{"id":"K_D","text":"\u00D7"},{"id":"K_F","text":"\u00F7"},{"id":"K_G","text":":"},{"id":"K_H","text":"\u2018"},{"id":"K_J","text":"\u2019"},{"id":"K_K","text":"\u179D"},{"id":"K_L","text":"\u17D8"},{"id":"K_COLON","text":"\u17D6"},{"id":"K_QUOTE","text":"\u17C8"},{"id":"K_BKSLASH","text":"\\"}]},{"id":"4","key":[{"nextlayer":"shift","width":"160","id":"K_SHIFT","sp":"1","text":"*Shift*"},{"id":"K_oE2"},{"id":"K_Z","text":"<"},{"id":"K_X","text":">"},{"id":"K_C","text":"#"},{"id":"K_V","text":"&"},{"id":"K_B","text":"\u179E"},{"id":"K_N","text":";"},{"id":"K_M","text":"\uEFD3"},{"id":"K_COMMA","text":","},{"id":"K_PERIOD","text":"."},{"id":"K_SLASH","text":"\/"},{"width":"10","id":"T_new_333","sp":"10"}]},{"id":"5","key":[{"nextlayer":"default","width":"160","id":"K_LCONTROL","sp":"2","text":"*AltGr*"},{"width":"160","id":"K_LOPT","sp":"1","text":"*Menu*"},{"width":"930","id":"K_SPACE","text":"\u00A0"},{"width":"160","id":"K_ENTER","sp":"1","text":"*Enter*"}]}]},{"id":"shift","row":[{"id":"1","key":[{"id":"K_1","text":"!"},{"id":"K_2","text":"\u17D7"},{"id":"K_3","text":"\""},{"id":"K_4","text":"\u17DB"},{"id":"K_5","text":"%"},{"id":"K_6","text":"\uEFCD"},{"id":"K_7","text":"\uEFD0"},{"id":"K_8","text":"\uEFCF"},{"id":"K_9","text":"("},{"id":"K_0","text":")"},{"id":"K_HYPHEN","text":"\uEFCC"},{"id":"K_EQUAL","text":"="},{"width":"100","id":"K_BKSP","sp":"1","text":"*BkSp*"}]},{"id":"2","key":[{"id":"K_Q","pad":"75","text":"\u1788"},{"id":"K_W","text":"\uEFBA"},{"id":"K_E","text":"\uEFC2"},{"id":"K_R","text":"\u17AC"},{"id":"K_T","text":"\u1791"},{"id":"K_Y","text":"\uEFBD"},{"id":"K_U","text":"\uEFBC"},{"id":"K_I","text":"\uEFB8"},{"id":"K_O","text":"\uEFC5"},{"id":"K_P","text":"\u1797"},{"id":"K_LBRKT","text":"\uEFBF"},{"id":"K_RBRKT","text":"\u17A7"},{"width":"10","id":"T_new_364","sp":"10"}]},{"id":"3","key":[{"id":"K_BKQUOTE","text":"\u00BB"},{"id":"K_A","text":"\uEF11"},{"id":"K_S","text":"\uEFC3"},{"id":"K_D","text":"\u178C"},{"id":"K_F","text":"\u1792"},{"id":"K_G","text":"\u17A2"},{"id":"K_H","text":"\u17C7"},{"id":"K_J","text":"\u1789"},{"id":"K_K","text":"\u1782"},{"id":"K_L","text":"\u17A1"},{"id":"K_COLON","text":"\uEF14"},{"id":"K_QUOTE","text":"\uEFC9"},{"id":"K_BKSLASH","text":"\u17AD"}]},{"id":"4","key":[{"nextlayer":"default","width":"160","id":"K_SHIFT","sp":"2","text":"*Shift*"},{"id":"K_oE2"},{"id":"K_Z","text":"\u178D"},{"id":"K_X","text":"\u1783"},{"id":"K_C","text":"\u1787"},{"id":"K_V","text":"\uEF12"},{"id":"K_B","text":"\u1796"},{"id":"K_N","text":"\u178E"},{"id":"K_M","text":"\uEFC6"},{"id":"K_COMMA","text":"\uEF13"},{"id":"K_PERIOD","text":"\u17D5"},{"id":"K_SLASH","text":"?"},{"width":"10","id":"T_new_390","sp":"10"}]},{"id":"5","key":[{"nextlayer":"rightalt","width":"160","id":"K_LCONTROL","sp":"1","text":"*AltGr*"},{"width":"160","id":"K_LOPT","sp":"1","text":"*Menu*"},{"width":"930","id":"K_SPACE"},{"width":"160","id":"K_ENTER","sp":"1","text":"*Enter*"}]}]}]}};this.s12=['','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','',''];this.s13="កខគឃងចឆជឈញដឋឌឍណតថទធនបផពភមយរលវសហឡអឝឞ";this.s14=['','','','','','','','','','','','','','','',''];this.s15="ាិីឹឺុូួើឿៀេែៃោៅ";this.s16=['','',''];this.s17="ំះៈ";this.s18=['','','','','','','','','','','','','','','','','','',''];this.s19="ាិីឹឺុូួើឿៀេែៃោៅំះៈ";this.s20="ាិីឹឺុូួើឿៀេែៃោៅំះៈ";this.s21="េោុិីឹែ";this.s22="ាុ";this.s23="េោុិីឹែាុ";this.s24=['','','','','','','','','','','','','','',''];this.s25="ឥឦឧឨឩឪឫឬឭឮឯឰឱឲឳ";this.s26=['','','','','','','','','','',''];this.s27="់័៌៏៍ៈ៎៑៝ៜ្";this.s28=['',''];this.s29="៉៊";this.s30=['','','','','','','',''];this.s31="។៕៖ៗ៘៙៚៓";this.s32=['','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','',''];this.s33="«»()!\"%=?{}\\@*,×./[]‍‌+-÷:≈‘’;<>#&";this.s34=['','',''];this.s35="​  ";this.s36=['','',''];this.s37="៛$€";this.s38=['','','','','','','','','',''];this.s39="០១២៣៤៥៦៧៨៩";this.s40=['','','','','','','','','',''];this.s41="៰៱៲៳៴៵៶៷៸៹";this.s42=['','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','',''];this.s43="᧬᧻᧹᧮᧢᧯᧰᧱᧧᧲᧳᧴᧽᧼᧨᧩᧠᧣᧭᧤᧦᧺᧡᧸᧥᧷᧵᧾᧿᧪᧫᧶";this.s44=['','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','',''];this.s45="កខគឃងចឆជឈញដឋឌឍណតថទធនបផពភមយរលវឝឞសហឡអ";this.s46=['','','','','','','','','',''];this.s47="0123456789";this.s48="ិីឹឺើ័";this.s49="សហអ";this.s50="ប";this.s51="ងញមយរវនល";this.s52="ងញមយរវនលប";this.s53="យមងបវ";this.s54="យលងរ";this.s55="បហអ";this.s56="ហសអ";this.s57="បយលមនញងរវអ";this.s58="ឆឈបផតទ";this.s59="វឣ";this.s63="touch";this.KVER="15.0.270.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,8)) {if(k.KFCM(2,t,['្',{t:'a',a:this.s13}])&&k.KIFS(31,this.s63,t)){r=m=1;k.KDC(2,t);}else if(k.KFCM(2,t,[{t:'a',a:this.s22},'ំ'])){r=m=1;k.KDC(2,t);}else if(k.KFCM(2,t,[{t:'a',a:this.s21},'ះ'])){r=m=1;k.KDC(2,t);}}else if(k.KKM(e,16392,75)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឝ");}}else if(k.KKM(e,16392,66)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឞ");}}else if(k.KKM(e,16392,222)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ៈ");}else if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ៈ");}}else if(k.KKM(e,16392,221)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឳ");}}else if(k.KKM(e,16392,80)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឰ");}}else if(k.KKM(e,16392,73)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឦ");}}else if(k.KKM(e,16392,84)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឨ");}}else if(k.KKM(e,16392,79)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឱ");}}else if(k.KKM(e,16392,219)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឩ");}}else if(k.KKM(e,16392,82)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឫ");}}else if(k.KKM(e,16392,69)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឯ");}}else if(k.KKM(e,16392,87)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៝");}}else if(k.KKM(e,16392,51)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៑");}}else if(k.KKM(e,16392,187)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៎");}}else if(k.KKM(e,16392,81)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ៜ");}}else if(k.KKM(e,16392,186)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៖");}}else if(k.KKM(e,16392,77)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៓");}}else if(k.KKM(e,16392,76)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៘");}}else if(k.KKM(e,16392,54)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៙");}}else if(k.KKM(e,16392,55)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៚");}}else if(k.KKM(e,16392,192)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"‍");}}else if(k.KKM(e,16392,49)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"‌");}}else if(k.KKM(e,16392,85)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"]");}}else if(k.KKM(e,16392,89)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"[");}}else if(k.KKM(e,16392,191)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"/");}}else if(k.KKM(e,16392,65)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"+");}}else if(k.KKM(e,16392,83)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"-");}}else if(k.KKM(e,16392,70)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"÷");}}else if(k.KKM(e,16392,190)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,".");}}else if(k.KKM(e,16392,220)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"\\");}}else if(k.KKM(e,16392,48)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"}");}}else if(k.KKM(e,16392,71)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,":");}}else if(k.KKM(e,16392,68)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"×");}}else if(k.KKM(e,16392,188)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,",");}}else if(k.KKM(e,16392,189)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"≈");}}else if(k.KKM(e,16392,56)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"*");}}else if(k.KKM(e,16392,72)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"‘");}}else if(k.KKM(e,16392,50)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"@");}}else if(k.KKM(e,16392,74)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"’");}}else if(k.KKM(e,16392,78)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,";");}}else if(k.KKM(e,16392,90)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"<");}}else if(k.KKM(e,16392,88)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,">");}}else if(k.KKM(e,16392,57)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"{");}}else if(k.KKM(e,16392,86)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"&");}}else if(k.KKM(e,16392,67)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"#");}}else if(k.KKM(e,16392,53)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"€");}}else if(k.KKM(e,16392,52)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"$");}}else if(k.KKM(e,16408,52)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៴");}}else if(k.KKM(e,16408,56)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៸");}}else if(k.KKM(e,16408,48)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៰");}}else if(k.KKM(e,16408,49)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៱");}}else if(k.KKM(e,16408,50)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៲");}}else if(k.KKM(e,16408,51)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៳");}}else if(k.KKM(e,16408,57)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៹");}}else if(k.KKM(e,16408,53)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៵");}}else if(k.KKM(e,16408,54)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៶");}}else if(k.KKM(e,16408,55)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៷");}}else if(k.KKM(e,16408,221)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧫");}}else if(k.KKM(e,16408,219)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧪");}}else if(k.KKM(e,16408,65)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧬");}}else if(k.KKM(e,16408,66)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧻");}}else if(k.KKM(e,16408,67)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧹");}}else if(k.KKM(e,16408,68)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧮");}}else if(k.KKM(e,16408,69)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧢");}}else if(k.KKM(e,16408,70)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧯");}}else if(k.KKM(e,16408,71)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧰");}}else if(k.KKM(e,16408,72)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧱");}}else if(k.KKM(e,16408,222)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧶");}}else if(k.KKM(e,16408,74)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧲");}}else if(k.KKM(e,16408,75)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧳");}}else if(k.KKM(e,16408,76)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧴");}}else if(k.KKM(e,16408,77)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧽");}}else if(k.KKM(e,16408,78)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧼");}}else if(k.KKM(e,16408,79)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧨");}}else if(k.KKM(e,16408,80)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧩");}}else if(k.KKM(e,16408,81)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧠");}}else if(k.KKM(e,16408,82)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧣");}}else if(k.KKM(e,16408,83)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧭");}}else if(k.KKM(e,16408,84)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧤");}}else if(k.KKM(e,16408,85)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧦");}}else if(k.KKM(e,16408,86)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧺");}}else if(k.KKM(e,16408,87)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧡");}}else if(k.KKM(e,16408,88)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧸");}}else if(k.KKM(e,16408,89)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧥");}}else if(k.KKM(e,16408,190)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧿");}}else if(k.KKM(e,16408,90)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧷");}}else if(k.KKM(e,16408,186)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧵");}}else if(k.KKM(e,16408,188)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧾");}}else if(k.KKM(e,16408,73)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"᧧");}}else if(k.KKM(e,16392,32)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t," ");}}else if(k.KKM(e,16384,261)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ច");}}else if(k.KKM(e,16384,260)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ង");}}else if(k.KKM(e,16384,264)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ឈ");}}else if(k.KKM(e,16384,265)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ញ");}}else if(k.KKM(e,16384,262)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ឆ");}}else if(k.KKM(e,16384,259)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ឃ");}}else if(k.KKM(e,16384,266)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ដ");}}else if(k.KKM(e,16384,267)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ឋ");}}else if(k.KKM(e,16384,268)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ឌ");}}if(m) {}else if(k.KKM(e,16384,290)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្អ");}}else if(k.KKM(e,16384,289)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ឡ");}}else if(k.KKM(e,16384,288)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ហ");}}else if(k.KKM(e,16384,287)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ស");}}else if(k.KKM(e,16384,286)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ឞ");}}else if(k.KKM(e,16384,285)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ឝ");}}else if(k.KKM(e,16384,284)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្វ");}}else if(k.KKM(e,16384,283)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ល");}}else if(k.KKM(e,16384,282)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្រ");}}else if(k.KKM(e,16384,281)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្យ");}}else if(k.KKM(e,16384,280)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ម");}}else if(k.KKM(e,16384,279)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ភ");}}else if(k.KKM(e,16384,278)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ព");}}else if(k.KKM(e,16384,277)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ផ");}}else if(k.KKM(e,16384,276)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ប");}}else if(k.KKM(e,16384,275)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ន");}}else if(k.KKM(e,16384,274)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ធ");}}else if(k.KKM(e,16384,273)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ទ");}}else if(k.KKM(e,16384,272)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ថ");}}else if(k.KKM(e,16384,271)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ត");}}else if(k.KKM(e,16384,256)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ក");}}else if(k.KKM(e,16384,270)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ណ");}}else if(k.KKM(e,16384,257)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ខ");}}else if(k.KKM(e,16384,258)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្គ");}}else if(k.KKM(e,16384,269)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ឍ");}}else if(k.KKM(e,16384,263)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្ជ");}}else if(k.KKM(e,16384,106)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"*");}}else if(k.KKM(e,16400,106)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"*");}}else if(k.KKM(e,16384,107)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"+");}}else if(k.KKM(e,16400,107)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"+");}}else if(k.KKM(e,16384,109)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"-");}}else if(k.KKM(e,16400,109)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"-");}}else if(k.KKM(e,16384,110)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,".");}}else if(k.KKM(e,16400,110)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,".");}}else if(k.KKM(e,16384,111)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"/");}}else if(k.KKM(e,16400,111)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"/");}}else if(k.KKM(e,16384,32)) {if(k.KFCM(1,t,['​'])){r=m=1;k.KDC(1,t);k.KO(-1,t," ");}else if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"​");}}else if(k.KKM(e,16400,32)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t," ");}}else if(k.KKM(e,16400,49)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"!");}}else if(k.KKM(e,16400,222)) {if(k.KFCM(3,t,[{t:'a',a:this.s58},'្','អ'])){r=m=1;k.KDC(3,t);k.KIO(-1,this.s58,1,t);k.KO(-1,t,"្អ៉");k.KB(t);}else if(k.KFCM(3,t,['ល','្',{t:'a',a:this.s55}])){r=m=1;k.KDC(3,t);k.KO(-1,t,"ល្");k.KIO(-1,this.s55,3,t);k.KO(-1,t,"៉");k.KB(t);}else if(k.KFCM(3,t,['ម','្',{t:'a',a:this.s56}])){r=m=1;k.KDC(3,t);k.KO(-1,t,"ម្");k.KIO(-1,this.s56,3,t);k.KO(-1,t,"៉");k.KB(t);}else if(k.KFCM(3,t,['ស','្',{t:'a',a:this.s57}])){r=m=1;k.KDC(3,t);k.KO(-1,t,"ស្");k.KIO(-1,this.s57,3,t);k.KO(-1,t,"៉");k.KB(t);}else if(k.KFCM(3,t,[{t:'a',a:this.s59},'្','ហ'])){r=m=1;k.KDC(3,t);k.KIO(-1,this.s59,1,t);k.KO(-1,t,"្ហ៉");k.KB(t);}else if(k.KFCM(3,t,['អ','្','ង'])){r=m=1;k.KDC(3,t);k.KO(-1,t,"អ្ង៉");k.KB(t);}else if(k.KFCM(3,t,['អ','្','វ'])){r=m=1;k.KDC(3,t);k.KO(-1,t,"អ្វ៉");k.KB(t);}else if(k.KFCM(1,t,[{t:'a',a:this.s29}])){r=m=1;k.KDC(1,t);k.KIO(-1,this.s29,1,t);k.KB(t);}else if(k.KFCM(1,t,[{t:'a',a:this.s49}])){r=m=1;k.KDC(1,t);k.KIO(-1,this.s49,1,t);k.KO(-1,t,"៉");k.KB(t);}else if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៉");}}else if(k.KKM(e,16400,51)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"\"");}}else if(k.KKM(e,16400,52)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៛");}}else if(k.KKM(e,16400,53)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"%");}}else if(k.KKM(e,16400,55)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"័");}}else if(k.KKM(e,16384,222)) {if(k.KFCM(2,t,['្',{t:'a',a:this.s13}])){r=m=1;k.KDC(2,t);k.KO(-1,t,"្");k.KIO(-1,this.s13,2,t);k.KB(t);}else if(k.KFCM(1,t,[{t:'a',a:this.s15}])){r=m=1;k.KDC(1,t);k.KIO(-1,this.s15,1,t);k.KB(t);}else if(k.KFCM(1,t,[{t:'a',a:this.s17}])){r=m=1;k.KDC(1,t);k.KIO(-1,this.s17,1,t);k.KB(t);}else if(k.KFCM(1,t,[{t:'a',a:this.s29}])){r=m=1;k.KDC(1,t);k.KIO(-1,this.s29,1,t);k.KB(t);}else if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"់");}}else if(k.KKM(e,16400,57)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"(");}}else if(k.KKM(e,16400,48)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,")");}}else if(k.KKM(e,16400,56)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៏");}}else if(k.KKM(e,16400,187)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"=");}}else if(k.KKM(e,16384,188)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ុំ");}}else if(k.KKM(e,16384,189)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឥ");}}else if(k.KKM(e,16384,190)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"។");}}else if(k.KKM(e,16384,191)) {if(k.KFCM(3,t,['ល','្',{t:'a',a:this.s53}])){r=m=1;k.KDC(3,t);k.KO(-1,t,"ល្");k.KIO(-1,this.s53,3,t);k.KO(-1,t,"៊");k.KB(t);}else if(k.KFCM(3,t,['ម','្',{t:'a',a:this.s54}])){r=m=1;k.KDC(3,t);k.KO(-1,t,"ម្");k.KIO(-1,this.s54,3,t);k.KO(-1,t,"៊");k.KB(t);}else if(k.KFCM(1,t,[{t:'a',a:this.s29}])){r=m=1;k.KDC(1,t);k.KIO(-1,this.s29,1,t);k.KB(t);}else if(k.KFCM(1,t,[{t:'a',a:this.s52}])){r=m=1;k.KDC(1,t);k.KIO(-1,this.s52,1,t);k.KO(-1,t,"៊");k.KB(t);}else if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៊");}}else if(k.KKM(e,16384,48)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"០");}}else if(k.KKM(e,16384,49)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"១");}}else if(k.KKM(e,16384,50)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"២");}}else if(k.KKM(e,16384,51)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៣");}}else if(k.KKM(e,16384,52)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៤");}}else if(k.KKM(e,16384,53)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៥");}}else if(k.KKM(e,16384,54)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៦");}}else if(k.KKM(e,16384,55)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៧");}}else if(k.KKM(e,16384,56)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៨");}}else if(k.KKM(e,16384,57)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៩");}}else if(k.KKM(e,16400,186)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ោះ");}}else if(k.KKM(e,16384,186)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ើ");}}else if(k.KKM(e,16400,188)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ុះ");}}else if(k.KKM(e,16384,187)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឲ");}}else if(k.KKM(e,16400,190)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៕");}}else if(k.KKM(e,16400,191)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"?");}}else if(k.KKM(e,16400,50)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ៗ");}}else if(k.KKM(e,16400,65)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ាំ");}}else if(k.KKM(e,16400,66)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ព");}}else if(k.KKM(e,16400,67)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ជ");}}else if(k.KKM(e,16400,68)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឌ");}}else if(k.KKM(e,16400,69)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ែ");}}else if(k.KKM(e,16400,70)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ធ");}}else if(k.KKM(e,16400,71)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"អ");}}else if(k.KKM(e,16400,72)) {if(k.KFCM(1,t,['ះ'])){r=m=1;k.KDC(1,t);k.KO(-1,t,"ៈ");}else if(k.KFCM(1,t,['ៈ'])){r=m=1;k.KDC(1,t);k.KO(-1,t,"ះ");}else if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ះ");}}else if(k.KKM(e,16400,73)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ី");}}else if(k.KKM(e,16400,74)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ញ");}}else if(k.KKM(e,16400,75)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"គ");}}else if(k.KKM(e,16400,76)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឡ");}}else if(k.KKM(e,16400,77)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ំ");}}else if(k.KKM(e,16400,78)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ណ");}}else if(k.KKM(e,16400,79)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ៅ");}}else if(k.KKM(e,16400,80)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ភ");}}else if(k.KKM(e,16400,81)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឈ");}}else if(k.KKM(e,16400,82)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឬ");}}else if(k.KKM(e,16400,83)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ៃ");}}else if(k.KKM(e,16400,84)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ទ");}}else if(k.KKM(e,16400,85)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ូ");}}else if(k.KKM(e,16400,86)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"េះ");}}else if(k.KKM(e,16400,87)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឺ");}}else if(k.KKM(e,16400,88)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឃ");}}else if(k.KKM(e,16400,89)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ួ");}}else if(k.KKM(e,16400,90)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឍ");}}else if(k.KKM(e,16384,219)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ៀ");}}else if(k.KKM(e,16384,220)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឮ");}}else if(k.KKM(e,16384,221)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឪ");}}else if(k.KKM(e,16400,54)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៍");}}if(m) {}else if(k.KKM(e,16400,189)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"៌");}}else if(k.KKM(e,16384,192)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"«");}}else if(k.KKM(e,16384,65)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ា");}}else if(k.KKM(e,16384,66)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ប");}}else if(k.KKM(e,16384,67)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ច");}}else if(k.KKM(e,16384,68)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ដ");}}else if(k.KKM(e,16384,69)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"េ");}}else if(k.KKM(e,16384,70)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ថ");}}else if(k.KKM(e,16384,71)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ង");}}else if(k.KKM(e,16384,72)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ហ");}}else if(k.KKM(e,16384,73)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ិ");}}else if(k.KKM(e,16384,74)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"្");}}else if(k.KKM(e,16384,75)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ក");}}else if(k.KKM(e,16384,76)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ល");}}else if(k.KKM(e,16384,77)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ម");}}else if(k.KKM(e,16384,78)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ន");}}else if(k.KKM(e,16384,79)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ោ");}}else if(k.KKM(e,16384,80)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ផ");}}else if(k.KKM(e,16384,81)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឆ");}}else if(k.KKM(e,16384,82)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"រ");}}else if(k.KKM(e,16384,83)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ស");}}else if(k.KKM(e,16384,84)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ត");}}else if(k.KKM(e,16384,85)) {if(k.KFCM(3,t,[{t:'a',a:this.s49},'ា','ំ'])){r=m=1;k.KDC(3,t);k.KIO(-1,this.s49,1,t);k.KO(-1,t,"៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(3,t,[{t:'a',a:this.s52},'ា','ំ'])){r=m=1;k.KDC(3,t);k.KIO(-1,this.s52,1,t);k.KO(-1,t,"៉");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ុ");}}else if(k.KKM(e,16384,86)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"វ");}}else if(k.KKM(e,16384,87)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឹ");}}else if(k.KKM(e,16384,88)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ខ");}}else if(k.KKM(e,16384,89)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"យ");}}else if(k.KKM(e,16384,90)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឋ");}}else if(k.KKM(e,16400,219)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឿ");}}else if(k.KKM(e,16400,220)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឭ");}}else if(k.KKM(e,16400,221)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"ឧ");}}else if(k.KKM(e,16400,192)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"»");}}if(m==1) {k.KDC(-1,t);r=this.g1(t,e);m=2;}return r;};this.g1=function(t,e) {var k=KeymanWeb,r=1,m=0;if(k.KFCM(7,t,[{t:'a',a:this.s58},'្','អ','ុ','ំ','ា','ំ'])){m=1;k.KDC(7,t);k.KIO(-1,this.s58,1,t);k.KO(-1,t,"្");k.KO(-1,t,"អ៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(7,t,['ល','្',{t:'a',a:this.s55},'ុ','ំ','ា','ំ'])){m=1;k.KDC(7,t);k.KO(-1,t,"ល");k.KO(-1,t,"្");k.KIO(-1,this.s55,3,t);k.KO(-1,t,"៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(7,t,['ម','្',{t:'a',a:this.s56},'ុ','ំ','ា','ំ'])){m=1;k.KDC(7,t);k.KO(-1,t,"ម");k.KO(-1,t,"្");k.KIO(-1,this.s56,3,t);k.KO(-1,t,"៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(7,t,['ស','្','ប','ុ','ំ','ា','ំ'])){m=1;k.KDC(7,t);k.KO(-1,t,"ស");k.KO(-1,t,"្");k.KO(-1,t,"ប៉");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(7,t,['ស','្',{t:'a',a:this.s57},'ុ','ំ','ា','ំ'])){m=1;k.KDC(7,t);k.KO(-1,t,"ស");k.KO(-1,t,"្");k.KIO(-1,this.s57,3,t);k.KO(-1,t,"៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(7,t,[{t:'a',a:this.s59},'្','ហ','ុ','ំ','ា','ំ'])){m=1;k.KDC(7,t);k.KIO(-1,this.s59,1,t);k.KO(-1,t,"្");k.KO(-1,t,"ហ៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(7,t,['អ','្','ង','ុ','ំ','ា','ំ'])){m=1;k.KDC(7,t);k.KO(-1,t,"អ");k.KO(-1,t,"្");k.KO(-1,t,"ង៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(7,t,['អ','្','វ','ុ','ំ','ា','ំ'])){m=1;k.KDC(7,t);k.KO(-1,t,"អ");k.KO(-1,t,"្");k.KO(-1,t,"វ៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(7,t,['ហ','្','ប','ុ','ំ','ា','ំ'])){m=1;k.KDC(7,t);k.KO(-1,t,"ហ");k.KO(-1,t,"្");k.KO(-1,t,"ប៉");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(7,t,['ហ','្',{t:'a',a:this.s52},'ុ','ំ','ា','ំ'])){m=1;k.KDC(7,t);k.KO(-1,t,"ហ");k.KO(-1,t,"្");k.KIO(-1,this.s52,3,t);k.KO(-1,t,"៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(7,t,['ល','្',{t:'a',a:this.s53},'ុ','ំ','ា','ំ'])){m=1;k.KDC(7,t);k.KO(-1,t,"ល");k.KO(-1,t,"្");k.KIO(-1,this.s53,3,t);k.KO(-1,t,"៉");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(7,t,['ម','្',{t:'a',a:this.s54},'ុ','ំ','ា','ំ'])){m=1;k.KDC(7,t);k.KO(-1,t,"ម");k.KO(-1,t,"្");k.KIO(-1,this.s54,3,t);k.KO(-1,t,"៉");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['្','ដ',{t:'a',a:this.s22},'ំ','្','រ'])){m=1;k.KDC(6,t);k.KO(-1,t,"្ត");k.KO(-1,t,"្");k.KO(-1,t,"រ");k.KIO(-1,this.s22,3,t);k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['្','ដ',{t:'a',a:this.s21},'ះ','្','រ'])){m=1;k.KDC(6,t);k.KO(-1,t,"្ត");k.KO(-1,t,"្");k.KO(-1,t,"រ");k.KIO(-1,this.s21,3,t);k.KO(-1,t,"ះ");}else if(k.KFCM(6,t,['្','រ',{t:'a',a:this.s22},'ំ','្','ដ'])){m=1;k.KDC(6,t);k.KO(-1,t,"្ត");k.KO(-1,t,"្");k.KO(-1,t,"រ");k.KIO(-1,this.s22,3,t);k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['្','រ',{t:'a',a:this.s21},'ះ','្','ដ'])){m=1;k.KDC(6,t);k.KO(-1,t,"្ត");k.KO(-1,t,"្");k.KO(-1,t,"រ");k.KIO(-1,this.s21,3,t);k.KO(-1,t,"ះ");}else if(k.KFCM(6,t,['្','រ',{t:'a',a:this.s22},'ំ','្',{t:'a',a:this.s45}])){m=1;k.KDC(6,t);k.KO(-1,t,"្");k.KIO(-1,this.s45,6,t);k.KO(-1,t,"្");k.KO(-1,t,"រ");k.KIO(-1,this.s22,3,t);k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['្','រ',{t:'a',a:this.s21},'ះ','្',{t:'a',a:this.s45}])){m=1;k.KDC(6,t);k.KO(-1,t,"្");k.KIO(-1,this.s45,6,t);k.KO(-1,t,"្");k.KO(-1,t,"រ");k.KIO(-1,this.s21,3,t);k.KO(-1,t,"ះ");}else if(k.KFCM(6,t,[{t:'a',a:this.s58},'្','អ','ុ','ា','ំ'])){m=1;k.KDC(6,t);k.KIO(-1,this.s58,1,t);k.KO(-1,t,"្");k.KO(-1,t,"អ៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['ល','្',{t:'a',a:this.s55},'ុ','ា','ំ'])){m=1;k.KDC(6,t);k.KO(-1,t,"ល");k.KO(-1,t,"្");k.KIO(-1,this.s55,3,t);k.KO(-1,t,"៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['ម','្',{t:'a',a:this.s56},'ុ','ា','ំ'])){m=1;k.KDC(6,t);k.KO(-1,t,"ម");k.KO(-1,t,"្");k.KIO(-1,this.s56,3,t);k.KO(-1,t,"៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['ស','្','ប','ុ','ា','ំ'])){m=1;k.KDC(6,t);k.KO(-1,t,"ស");k.KO(-1,t,"្");k.KO(-1,t,"ប៉");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['ស','្',{t:'a',a:this.s57},'ុ','ា','ំ'])){m=1;k.KDC(6,t);k.KO(-1,t,"ស");k.KO(-1,t,"្");k.KIO(-1,this.s57,3,t);k.KO(-1,t,"៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,[{t:'a',a:this.s59},'្','ហ','ុ','ា','ំ'])){m=1;k.KDC(6,t);k.KIO(-1,this.s59,1,t);k.KO(-1,t,"្");k.KO(-1,t,"ហ៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['អ','្','ង','ុ','ា','ំ'])){m=1;k.KDC(6,t);k.KO(-1,t,"អ");k.KO(-1,t,"្");k.KO(-1,t,"ង៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['អ','្','វ','ុ','ា','ំ'])){m=1;k.KDC(6,t);k.KO(-1,t,"អ");k.KO(-1,t,"្");k.KO(-1,t,"វ៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['ហ','្','ប','ុ','ា','ំ'])){m=1;k.KDC(6,t);k.KO(-1,t,"ហ");k.KO(-1,t,"្");k.KO(-1,t,"ប៉");k.KO(-1,t,"ប");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['ហ','្',{t:'a',a:this.s52},'ុ','ា','ំ'])){m=1;k.KDC(6,t);k.KO(-1,t,"ហ");k.KO(-1,t,"្");k.KIO(-1,this.s52,3,t);k.KO(-1,t,"៊");k.KIO(-1,this.s52,3,t);k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['ល','្',{t:'a',a:this.s53},'ុ','ា','ំ'])){m=1;k.KDC(6,t);k.KO(-1,t,"ល");k.KO(-1,t,"្");k.KIO(-1,this.s53,3,t);k.KO(-1,t,"៉");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['ម','្',{t:'a',a:this.s54},'ុ','ា','ំ'])){m=1;k.KDC(6,t);k.KO(-1,t,"ម");k.KO(-1,t,"្");k.KIO(-1,this.s54,3,t);k.KO(-1,t,"៉");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['ល','្',{t:'a',a:this.s53},'៊',{t:'a',a:this.s15},{t:'a',a:this.s17}])){m=1;k.KDC(6,t);k.KO(-1,t,"ល");k.KO(-1,t,"្");k.KIO(-1,this.s53,3,t);k.KO(-1,t,"៉");k.KIO(-1,this.s15,5,t);k.KIO(-1,this.s17,6,t);}else if(k.KFCM(6,t,['ម','្',{t:'a',a:this.s54},'៊',{t:'a',a:this.s15},{t:'a',a:this.s17}])){m=1;k.KDC(6,t);k.KO(-1,t,"ម");k.KO(-1,t,"្");k.KIO(-1,this.s54,3,t);k.KO(-1,t,"៉");k.KIO(-1,this.s15,5,t);k.KIO(-1,this.s17,6,t);}else if(k.KFCM(6,t,[{t:'a',a:this.s58},'្','អ','៉','ា','ំ'])){m=1;k.KDC(6,t);k.KIO(-1,this.s58,1,t);k.KO(-1,t,"្");k.KO(-1,t,"អ៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['ល','្',{t:'a',a:this.s55},'៉','ា','ំ'])){m=1;k.KDC(6,t);k.KO(-1,t,"ល");k.KO(-1,t,"្");k.KIO(-1,this.s55,3,t);k.KO(-1,t,"៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['ម','្',{t:'a',a:this.s56},'៉','ា','ំ'])){m=1;k.KDC(6,t);k.KO(-1,t,"ម");k.KO(-1,t,"្");k.KIO(-1,this.s56,3,t);k.KO(-1,t,"៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['ស','្','ប','៉','ា','ំ'])){m=1;k.KDC(6,t);k.KO(-1,t,"ស");k.KO(-1,t,"្");k.KO(-1,t,"ប៉");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['ស','្',{t:'a',a:this.s57},'៉','ា','ំ'])){m=1;k.KDC(6,t);k.KO(-1,t,"ស");k.KO(-1,t,"្");k.KIO(-1,this.s57,3,t);k.KO(-1,t,"៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,[{t:'a',a:this.s59},'្','ហ','៉','ា','ំ'])){m=1;k.KDC(6,t);k.KIO(-1,this.s59,1,t);k.KO(-1,t,"្");k.KO(-1,t,"ហ៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['អ','្','ង','៉','ា','ំ'])){m=1;k.KDC(6,t);k.KO(-1,t,"អ");k.KO(-1,t,"្");k.KO(-1,t,"ង៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['អ','្','វ','៉','ា','ំ'])){m=1;k.KDC(6,t);k.KO(-1,t,"អ");k.KO(-1,t,"្");k.KO(-1,t,"វ៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,[{t:'a',a:this.s58},'្','អ','ា','ុ','ំ'])){m=1;k.KDC(6,t);k.KIO(-1,this.s58,1,t);k.KO(-1,t,"្");k.KO(-1,t,"អ៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,[{t:'a',a:this.s58},'្','អ','ុ','ំ','ា'])){m=1;k.KDC(6,t);k.KIO(-1,this.s58,1,t);k.KO(-1,t,"្");k.KO(-1,t,"អ៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['ល','្',{t:'a',a:this.s55},'ា','ុ','ំ'])){m=1;k.KDC(6,t);k.KO(-1,t,"ល");k.KO(-1,t,"្");k.KIO(-1,this.s55,3,t);k.KO(-1,t,"៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['ល','្',{t:'a',a:this.s55},'ុ','ំ','ា'])){m=1;k.KDC(6,t);k.KO(-1,t,"ល");k.KO(-1,t,"្");k.KIO(-1,this.s55,3,t);k.KO(-1,t,"៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['ម','្',{t:'a',a:this.s56},'ា','ុ','ំ'])){m=1;k.KDC(6,t);k.KO(-1,t,"ម");k.KO(-1,t,"្");k.KIO(-1,this.s56,3,t);k.KO(-1,t,"៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['ម','្',{t:'a',a:this.s56},'ុ','ំ','ា'])){m=1;k.KDC(6,t);k.KO(-1,t,"ម");k.KO(-1,t,"្");k.KIO(-1,this.s56,3,t);k.KO(-1,t,"៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['ស','្',{t:'a',a:this.s57},'ា','ុ','ំ'])){m=1;k.KDC(6,t);k.KO(-1,t,"ស");k.KO(-1,t,"្");k.KIO(-1,this.s57,3,t);k.KO(-1,t,"៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['ស','្',{t:'a',a:this.s57},'ុ','ំ','ា'])){m=1;k.KDC(6,t);k.KO(-1,t,"ស");k.KO(-1,t,"្");k.KIO(-1,this.s57,3,t);k.KO(-1,t,"៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,[{t:'a',a:this.s59},'្','ហ','ា','ុ','ំ'])){m=1;k.KDC(6,t);k.KIO(-1,this.s59,1,t);k.KO(-1,t,"្");k.KO(-1,t,"ហ៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,[{t:'a',a:this.s59},'្','ហ','ុ','ំ','ា'])){m=1;k.KDC(6,t);k.KIO(-1,this.s59,1,t);k.KO(-1,t,"្");k.KO(-1,t,"ហ៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['អ','្','ង','ា','ុ','ំ'])){m=1;k.KDC(6,t);k.KO(-1,t,"អ");k.KO(-1,t,"្");k.KO(-1,t,"ង៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['អ','្','ង','ុ','ំ','ា'])){m=1;k.KDC(6,t);k.KO(-1,t,"អ");k.KO(-1,t,"្");k.KO(-1,t,"ង៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['អ','្','វ','ា','ុ','ំ'])){m=1;k.KDC(6,t);k.KO(-1,t,"អ");k.KO(-1,t,"្");k.KO(-1,t,"វ៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['អ','្','វ','ុ','ំ','ា'])){m=1;k.KDC(6,t);k.KO(-1,t,"អ");k.KO(-1,t,"្");k.KO(-1,t,"វ៊");k.KO(-1,t,"ុ");k.KO(-1,t,"ា");}else if(k.KFCM(6,t,['ល','្',{t:'a',a:this.s53},'ា','ុ','ំ'])){m=1;k.KDC(6,t);k.KO(-1,t,"ល");k.KO(-1,t,"្");k.KIO(-1,this.s53,3,t);k.KO(-1,t,"៉");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['ល','្',{t:'a',a:this.s53},'ុ','ំ','ា'])){m=1;k.KDC(6,t);k.KO(-1,t,"ល");k.KO(-1,t,"្");k.KIO(-1,this.s53,3,t);k.KO(-1,t,"៉");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['ម','្',{t:'a',a:this.s54},'ា','ុ','ំ'])){m=1;k.KDC(6,t);k.KO(-1,t,"ម");k.KO(-1,t,"្");k.KIO(-1,this.s54,3,t);k.KO(-1,t,"៉");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,['ម','្',{t:'a',a:this.s54},'ុ','ំ','ា'])){m=1;k.KDC(6,t);k.KO(-1,t,"ម");k.KO(-1,t,"្");k.KIO(-1,this.s54,3,t);k.KO(-1,t,"៉");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(6,t,[{t:'a',a:this.s58},'្','អ','េ','ុ','ី'])){m=1;k.KDC(6,t);k.KIO(-1,this.s58,1,t);k.KO(-1,t,"្");k.KO(-1,t,"អ៊ើ");}else if(k.KFCM(6,t,[{t:'a',a:this.s58},'្','អ','ុ','េ','ី'])){m=1;k.KDC(6,t);k.KIO(-1,this.s58,1,t);k.KO(-1,t,"្");k.KO(-1,t,"អ៊ើ");}else if(k.KFCM(6,t,[{t:'a',a:this.s58},'្','អ','៉','េ','ី'])){m=1;k.KDC(6,t);k.KIO(-1,this.s58,1,t);k.KO(-1,t,"្");k.KO(-1,t,"អ៊ើ");}else if(k.KFCM(6,t,['ល','្',{t:'a',a:this.s55},'េ','ុ','ី'])){m=1;k.KDC(6,t);k.KO(-1,t,"ល");k.KO(-1,t,"្");k.KIO(-1,this.s55,3,t);k.KO(-1,t,"៊ើ");}else if(k.KFCM(6,t,['ល','្',{t:'a',a:this.s55},'ុ','េ','ី'])){m=1;k.KDC(6,t);k.KO(-1,t,"ល");k.KO(-1,t,"្");k.KIO(-1,this.s55,3,t);k.KO(-1,t,"៊ើ");}else if(k.KFCM(6,t,['ល','្',{t:'a',a:this.s55},'៉','េ','ី'])){m=1;k.KDC(6,t);k.KO(-1,t,"ល");k.KO(-1,t,"្");k.KIO(-1,this.s55,3,t);k.KO(-1,t,"៊ើ");}else if(k.KFCM(6,t,['ម','្',{t:'a',a:this.s56},'េ','ុ','ី'])){m=1;k.KDC(6,t);k.KO(-1,t,"ម");k.KO(-1,t,"្");k.KIO(-1,this.s56,3,t);k.KO(-1,t,"៊ើ");}else if(k.KFCM(6,t,['ម','្',{t:'a',a:this.s56},'ុ','េ','ី'])){m=1;k.KDC(6,t);k.KO(-1,t,"ម");k.KO(-1,t,"្");k.KIO(-1,this.s56,3,t);k.KO(-1,t,"៊ើ");}else if(k.KFCM(6,t,['ម','្',{t:'a',a:this.s56},'៉','េ','ី'])){m=1;k.KDC(6,t);k.KO(-1,t,"ម");k.KO(-1,t,"្");k.KIO(-1,this.s56,3,t);k.KO(-1,t,"៊ើ");}else if(k.KFCM(6,t,['ស','្',{t:'a',a:this.s57},'េ','ុ','ី'])){m=1;k.KDC(6,t);k.KO(-1,t,"ស");k.KO(-1,t,"្");k.KIO(-1,this.s57,3,t);k.KO(-1,t,"៊ើ");}else if(k.KFCM(6,t,['ស','្',{t:'a',a:this.s57},'ុ','េ','ី'])){m=1;k.KDC(6,t);k.KO(-1,t,"ស");k.KO(-1,t,"្");k.KIO(-1,this.s57,3,t);k.KO(-1,t,"៊ើ");}else if(k.KFCM(6,t,['ស','្',{t:'a',a:this.s57},'៉','េ','ី'])){m=1;k.KDC(6,t);k.KO(-1,t,"ស");k.KO(-1,t,"្");k.KIO(-1,this.s57,3,t);k.KO(-1,t,"៊ើ");}else if(k.KFCM(6,t,[{t:'a',a:this.s59},'្','ហ','េ','ុ','ី'])){m=1;k.KDC(6,t);k.KIO(-1,this.s59,1,t);k.KO(-1,t,"្");k.KO(-1,t,"ហ៊ើ");}else if(k.KFCM(6,t,[{t:'a',a:this.s59},'្','ហ','ុ','េ','ី'])){m=1;k.KDC(6,t);k.KIO(-1,this.s59,1,t);k.KO(-1,t,"្");k.KO(-1,t,"ហ៊ើ");}else if(k.KFCM(6,t,[{t:'a',a:this.s59},'្','ហ','៉','េ','ី'])){m=1;k.KDC(6,t);k.KIO(-1,this.s59,1,t);k.KO(-1,t,"្");k.KO(-1,t,"ហ៊ើ");}else if(k.KFCM(6,t,['អ','្','ង','េ','ុ','ី'])){m=1;k.KDC(6,t);k.KO(-1,t,"អ");k.KO(-1,t,"្");k.KO(-1,t,"ង៊ើ");}else if(k.KFCM(6,t,['អ','្','ង','ុ','េ','ី'])){m=1;k.KDC(6,t);k.KO(-1,t,"អ");k.KO(-1,t,"្");k.KO(-1,t,"ង៊ើ");}else if(k.KFCM(6,t,['អ','្','ង','៉','េ','ី'])){m=1;k.KDC(6,t);k.KO(-1,t,"អ");k.KO(-1,t,"្");k.KO(-1,t,"ង៊ើ");}else if(k.KFCM(6,t,['អ','្','វ','េ','ុ','ី'])){m=1;k.KDC(6,t);k.KO(-1,t,"អ");k.KO(-1,t,"្");k.KO(-1,t,"វ៊ើ");}else if(k.KFCM(6,t,['អ','្','វ','ុ','េ','ី'])){m=1;k.KDC(6,t);k.KO(-1,t,"អ");k.KO(-1,t,"្");k.KO(-1,t,"វ៊ើ");}else if(k.KFCM(6,t,['អ','្','វ','៉','េ','ី'])){m=1;k.KDC(6,t);k.KO(-1,t,"អ");k.KO(-1,t,"្");k.KO(-1,t,"វ៊ើ");}else if(k.KFCM(6,t,['ល','្',{t:'a',a:this.s53},'េ','ុ','ី'])){m=1;k.KDC(6,t);k.KO(-1,t,"ល");k.KO(-1,t,"្");k.KIO(-1,this.s53,3,t);k.KO(-1,t,"៉ើ");}else if(k.KFCM(6,t,['ល','្',{t:'a',a:this.s53},'ុ','េ','ី'])){m=1;k.KDC(6,t);k.KO(-1,t,"ល");k.KO(-1,t,"្");k.KIO(-1,this.s53,3,t);k.KO(-1,t,"៉ើ");}else if(k.KFCM(6,t,['ល','្',{t:'a',a:this.s53},'៊','េ','ី'])){m=1;k.KDC(6,t);k.KO(-1,t,"ល");k.KO(-1,t,"្");k.KIO(-1,this.s53,3,t);k.KO(-1,t,"៉ើ");}else if(k.KFCM(6,t,['ម','្',{t:'a',a:this.s54},'េ','ុ','ី'])){m=1;k.KDC(6,t);k.KO(-1,t,"ម");k.KO(-1,t,"្");k.KIO(-1,this.s54,3,t);k.KO(-1,t,"៉ើ");}else if(k.KFCM(6,t,['ម','្',{t:'a',a:this.s54},'ុ','េ','ី'])){m=1;k.KDC(6,t);k.KO(-1,t,"ម");k.KO(-1,t,"្");k.KIO(-1,this.s54,3,t);k.KO(-1,t,"៉ើ");}else if(k.KFCM(6,t,['ម','្',{t:'a',a:this.s54},'៊','េ','ី'])){m=1;k.KDC(6,t);k.KO(-1,t,"ម");k.KO(-1,t,"្");k.KIO(-1,this.s54,3,t);k.KO(-1,t,"៉ើ");}else if(k.KFCM(6,t,['្','យ','្',{t:'a',a:this.s13},'េ','ឺ'])){m=1;k.KDC(6,t);k.KO(-1,t,"្");k.KIO(-1,this.s13,4,t);k.KO(-1,t,"ឿ");}else if(k.KFCM(6,t,['្','យ','្',{t:'a',a:this.s13},'េ','ឹ'])){m=1;k.KDC(6,t);k.KO(-1,t,"្");k.KIO(-1,this.s13,4,t);k.KO(-1,t,"ឿ");}else if(k.KFCM(6,t,['្','យ','្',{t:'a',a:this.s13},'េ','ី'])){m=1;k.KDC(6,t);k.KO(-1,t,"្");k.KIO(-1,this.s13,4,t);k.KO(-1,t,"ឿ");}else if(k.KFCM(5,t,[{t:'a',a:this.s29},{t:'a',a:this.s22},'ំ','្',{t:'a',a:this.s45}])){m=1;k.KDC(5,t);k.KO(-1,t,"្");k.KIO(-1,this.s45,5,t);k.KIO(-1,this.s29,1,t);k.KIO(-1,this.s22,2,t);k.KO(-1,t,"ំ");}else if(k.KFCM(5,t,[{t:'a',a:this.s29},{t:'a',a:this.s21},'ះ','្',{t:'a',a:this.s45}])){m=1;k.KDC(5,t);k.KO(-1,t,"្");k.KIO(-1,this.s45,5,t);k.KIO(-1,this.s29,1,t);k.KIO(-1,this.s21,2,t);k.KO(-1,t,"ះ");}else if(k.KFCM(5,t,['្','ដ',{t:'a',a:this.s20},'្','រ'])){m=1;k.KDC(5,t);k.KO(-1,t,"្ត");k.KO(-1,t,"្");k.KO(-1,t,"រ");k.KIO(-1,this.s20,3,t);}else if(k.KFCM(5,t,['្','រ',{t:'a',a:this.s20},'្','ដ'])){m=1;k.KDC(5,t);k.KO(-1,t,"្ត");k.KO(-1,t,"្");k.KO(-1,t,"រ");k.KIO(-1,this.s20,3,t);}else if(k.KFCM(5,t,['្','រ',{t:'a',a:this.s29},'្',{t:'a',a:this.s45}])){m=1;k.KDC(5,t);k.KO(-1,t,"្");k.KIO(-1,this.s45,5,t);k.KO(-1,t,"្");k.KO(-1,t,"រ");k.KIO(-1,this.s29,3,t);}else if(k.KFCM(5,t,['្','រ',{t:'a',a:this.s20},'្',{t:'a',a:this.s45}])){m=1;k.KDC(5,t);k.KO(-1,t,"្");k.KIO(-1,this.s45,5,t);k.KO(-1,t,"្");k.KO(-1,t,"រ");k.KIO(-1,this.s20,3,t);}else if(k.KFCM(5,t,[{t:'a',a:this.s58},'្','អ','ុ',{t:'a',a:this.s48}])){m=1;k.KDC(5,t);k.KIO(-1,this.s58,1,t);k.KO(-1,t,"្");k.KO(-1,t,"អ៊");k.KIO(-1,this.s48,5,t);}else if(k.KFCM(5,t,[{t:'a',a:this.s58},'្','អ',{t:'a',a:this.s48},'ុ'])){m=1;k.KDC(5,t);k.KIO(-1,this.s58,1,t);k.KO(-1,t,"្");k.KO(-1,t,"អ៊");k.KIO(-1,this.s48,4,t);}else if(k.KFCM(5,t,['ល','្',{t:'a',a:this.s55},'ុ',{t:'a',a:this.s48}])){m=1;k.KDC(5,t);k.KO(-1,t,"ល");k.KO(-1,t,"្");k.KIO(-1,this.s55,3,t);k.KO(-1,t,"៊");k.KIO(-1,this.s48,5,t);}else if(k.KFCM(5,t,['ល','្',{t:'a',a:this.s55},{t:'a',a:this.s48},'ុ'])){m=1;k.KDC(5,t);k.KO(-1,t,"ល");k.KO(-1,t,"្");k.KIO(-1,this.s55,3,t);k.KO(-1,t,"៊");k.KIO(-1,this.s48,4,t);}else if(k.KFCM(5,t,['ម','្',{t:'a',a:this.s56},'ុ',{t:'a',a:this.s48}])){m=1;k.KDC(5,t);k.KO(-1,t,"ម");k.KO(-1,t,"្");k.KIO(-1,this.s56,3,t);k.KO(-1,t,"៊");k.KIO(-1,this.s48,5,t);}else if(k.KFCM(5,t,['ម','្',{t:'a',a:this.s56},{t:'a',a:this.s48},'ុ'])){m=1;k.KDC(5,t);k.KO(-1,t,"ម");k.KO(-1,t,"្");k.KIO(-1,this.s56,3,t);k.KO(-1,t,"៊");k.KIO(-1,this.s48,4,t);}if(m) {}else if(k.KFCM(5,t,['ស','្','ប','ុ',{t:'a',a:this.s48}])){m=1;k.KDC(5,t);k.KO(-1,t,"ស");k.KO(-1,t,"្");k.KO(-1,t,"ប៉");k.KIO(-1,this.s48,5,t);}else if(k.KFCM(5,t,['ស','្','ប',{t:'a',a:this.s48},'ុ'])){m=1;k.KDC(5,t);k.KO(-1,t,"ស");k.KO(-1,t,"្");k.KO(-1,t,"ប៉");k.KIO(-1,this.s48,4,t);}else if(k.KFCM(5,t,['ស','្',{t:'a',a:this.s57},'ុ',{t:'a',a:this.s48}])){m=1;k.KDC(5,t);k.KO(-1,t,"ស");k.KO(-1,t,"្");k.KIO(-1,this.s57,3,t);k.KO(-1,t,"៊");k.KIO(-1,this.s48,5,t);}else if(k.KFCM(5,t,['ស','្',{t:'a',a:this.s57},{t:'a',a:this.s48},'ុ'])){m=1;k.KDC(5,t);k.KO(-1,t,"ស");k.KO(-1,t,"្");k.KIO(-1,this.s57,3,t);k.KO(-1,t,"៊");k.KIO(-1,this.s48,4,t);}else if(k.KFCM(5,t,[{t:'a',a:this.s59},'្','ហ','ុ',{t:'a',a:this.s48}])){m=1;k.KDC(5,t);k.KIO(-1,this.s59,1,t);k.KO(-1,t,"្");k.KO(-1,t,"ហ៊");k.KIO(-1,this.s48,5,t);}else if(k.KFCM(5,t,[{t:'a',a:this.s59},'្','ហ',{t:'a',a:this.s48},'ុ'])){m=1;k.KDC(5,t);k.KIO(-1,this.s59,1,t);k.KO(-1,t,"្");k.KO(-1,t,"ហ៊");k.KIO(-1,this.s48,4,t);}else if(k.KFCM(5,t,['អ','្','ង','ុ',{t:'a',a:this.s48}])){m=1;k.KDC(5,t);k.KO(-1,t,"អ");k.KO(-1,t,"្");k.KO(-1,t,"ង៊");k.KIO(-1,this.s48,5,t);}else if(k.KFCM(5,t,['អ','្','ង',{t:'a',a:this.s48},'ុ'])){m=1;k.KDC(5,t);k.KO(-1,t,"អ");k.KO(-1,t,"្");k.KO(-1,t,"ង៊");k.KIO(-1,this.s48,4,t);}else if(k.KFCM(5,t,['អ','្','វ','ុ',{t:'a',a:this.s48}])){m=1;k.KDC(5,t);k.KO(-1,t,"អ");k.KO(-1,t,"្");k.KO(-1,t,"វ៊");k.KIO(-1,this.s48,5,t);}else if(k.KFCM(5,t,['អ','្','វ',{t:'a',a:this.s48},'ុ'])){m=1;k.KDC(5,t);k.KO(-1,t,"អ");k.KO(-1,t,"្");k.KO(-1,t,"វ៊");k.KIO(-1,this.s48,4,t);}else if(k.KFCM(5,t,['ហ','្','ប','ុ',{t:'a',a:this.s48}])){m=1;k.KDC(5,t);k.KO(-1,t,"ហ");k.KO(-1,t,"្");k.KO(-1,t,"ប៉");k.KIO(-1,this.s48,5,t);}else if(k.KFCM(5,t,['ហ','្','ប',{t:'a',a:this.s48},'ុ'])){m=1;k.KDC(5,t);k.KO(-1,t,"ហ");k.KO(-1,t,"្");k.KO(-1,t,"ប៉");k.KIO(-1,this.s48,4,t);}else if(k.KFCM(5,t,['ហ','្',{t:'a',a:this.s52},'ុ',{t:'a',a:this.s48}])){m=1;k.KDC(5,t);k.KO(-1,t,"ហ");k.KO(-1,t,"្");k.KIO(-1,this.s52,3,t);k.KO(-1,t,"៊");k.KIO(-1,this.s48,5,t);}else if(k.KFCM(5,t,['ហ','្',{t:'a',a:this.s52},{t:'a',a:this.s48},'ុ'])){m=1;k.KDC(5,t);k.KO(-1,t,"ហ");k.KO(-1,t,"្");k.KIO(-1,this.s52,3,t);k.KO(-1,t,"៊");k.KIO(-1,this.s48,4,t);}else if(k.KFCM(5,t,['ល','្',{t:'a',a:this.s53},'ុ',{t:'a',a:this.s48}])){m=1;k.KDC(5,t);k.KO(-1,t,"ល");k.KO(-1,t,"្");k.KIO(-1,this.s53,3,t);k.KO(-1,t,"៉");k.KIO(-1,this.s48,5,t);}else if(k.KFCM(5,t,['ល','្',{t:'a',a:this.s53},{t:'a',a:this.s48},'ុ'])){m=1;k.KDC(5,t);k.KO(-1,t,"ល");k.KO(-1,t,"្");k.KIO(-1,this.s53,3,t);k.KO(-1,t,"៉");k.KIO(-1,this.s48,4,t);}else if(k.KFCM(5,t,['ម','្',{t:'a',a:this.s54},'ុ',{t:'a',a:this.s48}])){m=1;k.KDC(5,t);k.KO(-1,t,"ម");k.KO(-1,t,"្");k.KIO(-1,this.s54,3,t);k.KO(-1,t,"៉");k.KIO(-1,this.s48,5,t);}else if(k.KFCM(5,t,['ម','្',{t:'a',a:this.s54},{t:'a',a:this.s48},'ុ'])){m=1;k.KDC(5,t);k.KO(-1,t,"ម");k.KO(-1,t,"្");k.KIO(-1,this.s54,3,t);k.KO(-1,t,"៉");k.KIO(-1,this.s48,4,t);}else if(k.KFCM(5,t,[{t:'a',a:this.s49},'ុ','ំ','ា','ំ'])){m=1;k.KDC(5,t);k.KIO(-1,this.s49,1,t);k.KO(-1,t,"៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(5,t,[{t:'a',a:this.s52},'ុ','ំ','ា','ំ'])){m=1;k.KDC(5,t);k.KIO(-1,this.s52,1,t);k.KO(-1,t,"៉");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(5,t,['ល','្',{t:'a',a:this.s53},'៊',{t:'a',a:this.s48}])){m=1;k.KDC(5,t);k.KO(-1,t,"ល");k.KO(-1,t,"្");k.KIO(-1,this.s53,3,t);k.KO(-1,t,"៉");k.KIO(-1,this.s48,5,t);}else if(k.KFCM(5,t,['ម','្',{t:'a',a:this.s54},'៊',{t:'a',a:this.s48}])){m=1;k.KDC(5,t);k.KO(-1,t,"ម");k.KO(-1,t,"្");k.KIO(-1,this.s54,3,t);k.KO(-1,t,"៉");k.KIO(-1,this.s48,5,t);}else if(k.KFCM(5,t,['្',{t:'a',a:this.s51},'៊',{t:'a',a:this.s15},{t:'a',a:this.s17}])){m=1;k.KDC(5,t);k.KO(-1,t,"្");k.KIO(-1,this.s51,2,t);k.KO(-1,t,"៊");k.KIO(-1,this.s15,4,t);k.KIO(-1,this.s17,5,t);}else if(k.KFCM(5,t,[{t:'a',a:this.s58},'្','អ','៉',{t:'a',a:this.s48}])){m=1;k.KDC(5,t);k.KIO(-1,this.s58,1,t);k.KO(-1,t,"្");k.KO(-1,t,"អ៊");k.KIO(-1,this.s48,5,t);}else if(k.KFCM(5,t,['ល','្',{t:'a',a:this.s55},'៉',{t:'a',a:this.s48}])){m=1;k.KDC(5,t);k.KO(-1,t,"ល");k.KO(-1,t,"្");k.KIO(-1,this.s55,3,t);k.KO(-1,t,"៊");k.KIO(-1,this.s48,5,t);}else if(k.KFCM(5,t,['ម','្',{t:'a',a:this.s56},'៉',{t:'a',a:this.s48}])){m=1;k.KDC(5,t);k.KO(-1,t,"ម");k.KO(-1,t,"្");k.KIO(-1,this.s56,3,t);k.KO(-1,t,"៊");k.KIO(-1,this.s48,5,t);}else if(k.KFCM(5,t,['ស','្','ប','៉',{t:'a',a:this.s48}])){m=1;k.KDC(5,t);k.KO(-1,t,"ស");k.KO(-1,t,"្");k.KO(-1,t,"ប៉");k.KIO(-1,this.s48,5,t);}else if(k.KFCM(5,t,['ស','្',{t:'a',a:this.s57},'៉',{t:'a',a:this.s48}])){m=1;k.KDC(5,t);k.KO(-1,t,"ស");k.KO(-1,t,"្");k.KIO(-1,this.s57,3,t);k.KO(-1,t,"៊");k.KIO(-1,this.s48,5,t);}else if(k.KFCM(5,t,[{t:'a',a:this.s59},'្','ហ','៉',{t:'a',a:this.s48}])){m=1;k.KDC(5,t);k.KIO(-1,this.s59,1,t);k.KO(-1,t,"្");k.KO(-1,t,"ហ៊");k.KIO(-1,this.s48,5,t);}else if(k.KFCM(5,t,['អ','្','ង','៉',{t:'a',a:this.s48}])){m=1;k.KDC(5,t);k.KO(-1,t,"អ");k.KO(-1,t,"្");k.KO(-1,t,"ង៊");k.KIO(-1,this.s48,5,t);}else if(k.KFCM(5,t,['អ','្','វ','៉',{t:'a',a:this.s48}])){m=1;k.KDC(5,t);k.KO(-1,t,"អ");k.KO(-1,t,"្");k.KO(-1,t,"វ៊");k.KIO(-1,this.s48,5,t);}else if(k.KFCM(5,t,['ព','័','ន','្','ឋ'])){m=1;k.KDC(5,t);k.KO(-1,t,"ព");k.KO(-1,t,"័");k.KO(-1,t,"ន");k.KO(-1,t,"្ធ");}else if(k.KFCM(4,t,[{t:'a',a:this.s15},{t:'a',a:this.s17},{t:'a',a:this.s15},{t:'a',a:this.s17}])){m=1;k.KDC(4,t);k.KIO(-1,this.s15,3,t);k.KIO(-1,this.s17,4,t);}else if(k.KFCM(4,t,[{t:'a',a:this.s22},'ំ','្',{t:'a',a:this.s45}])){m=1;k.KDC(4,t);k.KO(-1,t,"្");k.KIO(-1,this.s45,4,t);k.KIO(-1,this.s22,1,t);k.KO(-1,t,"ំ");}else if(k.KFCM(4,t,[{t:'a',a:this.s21},'ះ','្',{t:'a',a:this.s45}])){m=1;k.KDC(4,t);k.KO(-1,t,"្");k.KIO(-1,this.s45,4,t);k.KIO(-1,this.s21,1,t);k.KO(-1,t,"ះ");}else if(k.KFCM(4,t,[{t:'a',a:this.s29},{t:'a',a:this.s20},'្',{t:'a',a:this.s45}])){m=1;k.KDC(4,t);k.KO(-1,t,"្");k.KIO(-1,this.s45,4,t);k.KIO(-1,this.s29,1,t);k.KIO(-1,this.s20,2,t);}else if(k.KFCM(4,t,['្','ដ','្','រ'])){m=1;k.KDC(4,t);k.KO(-1,t,"្ត");k.KO(-1,t,"្");k.KO(-1,t,"រ");}else if(k.KFCM(4,t,['្','រ','្','ដ'])){m=1;k.KDC(4,t);k.KO(-1,t,"្ត");k.KO(-1,t,"្");k.KO(-1,t,"រ");}else if(k.KFCM(4,t,['្','រ','្',{t:'a',a:this.s45}])){m=1;k.KDC(4,t);k.KO(-1,t,"្");k.KIO(-1,this.s45,4,t);k.KO(-1,t,"្");k.KO(-1,t,"រ");}else if(k.KFCM(4,t,[{t:'a',a:this.s29},{t:'a',a:this.s15},{t:'a',a:this.s17},{t:'a',a:this.s29}])){m=1;k.KDC(4,t);k.KIO(-1,this.s15,2,t);k.KIO(-1,this.s17,3,t);k.KIO(-1,this.s29,4,t);}else if(k.KFCM(4,t,[{t:'a',a:this.s49},'ុ','ា','ំ'])){m=1;k.KDC(4,t);k.KIO(-1,this.s49,1,t);k.KO(-1,t,"៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(4,t,[{t:'a',a:this.s52},'ុ','ា','ំ'])){m=1;k.KDC(4,t);k.KIO(-1,this.s52,1,t);k.KO(-1,t,"៉");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(4,t,[{t:'a',a:this.s51},'៊',{t:'a',a:this.s15},{t:'a',a:this.s17}])){m=1;k.KDC(4,t);k.KIO(-1,this.s51,1,t);k.KO(-1,t,"៉");k.KIO(-1,this.s15,3,t);k.KIO(-1,this.s17,4,t);}else if(k.KFCM(4,t,['្',{t:'a',a:this.s51},'៊',{t:'a',a:this.s48}])){m=1;k.KDC(4,t);k.KO(-1,t,"្");k.KIO(-1,this.s51,2,t);k.KO(-1,t,"៊");k.KIO(-1,this.s48,4,t);}else if(k.KFCM(4,t,['ប','្','យ',{t:'a',a:this.s29}])){m=1;k.KDC(4,t);k.KO(-1,t,"ប្យ");k.KIO(-1,this.s29,4,t);}else if(k.KFCM(4,t,['ស','្','ប',{t:'a',a:this.s29}])){m=1;k.KDC(4,t);k.KO(-1,t,"ស្ប");k.KIO(-1,this.s29,4,t);}else if(k.KFCM(4,t,['ឆ','្','ប',{t:'a',a:this.s29}])){m=1;k.KDC(4,t);k.KO(-1,t,"ឆ្ប");k.KIO(-1,this.s29,4,t);}else if(k.KFCM(4,t,['ប','្','យ',{t:'a',a:this.s29}])){m=1;k.KDC(4,t);k.KO(-1,t,"ប្យ");k.KIO(-1,this.s29,4,t);}else if(k.KFCM(4,t,['ស','្','ប',{t:'a',a:this.s29}])){m=1;k.KDC(4,t);k.KO(-1,t,"ស្ប");k.KIO(-1,this.s29,4,t);}else if(k.KFCM(4,t,['ឆ','្','ប',{t:'a',a:this.s29}])){m=1;k.KDC(4,t);k.KO(-1,t,"ឆ្ប");k.KIO(-1,this.s29,4,t);}else if(k.KFCM(4,t,[{t:'a',a:this.s49},'៉',{t:'a',a:this.s15},{t:'a',a:this.s17}])){m=1;k.KDC(4,t);k.KIO(-1,this.s49,1,t);k.KO(-1,t,"៊");k.KIO(-1,this.s15,3,t);k.KIO(-1,this.s17,4,t);}else if(k.KFCM(4,t,[{t:'a',a:this.s49},'ា','ុ','ំ'])){m=1;k.KDC(4,t);k.KIO(-1,this.s49,1,t);k.KO(-1,t,"៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(4,t,[{t:'a',a:this.s49},'ុ','ំ','ា'])){m=1;k.KDC(4,t);k.KIO(-1,this.s49,1,t);k.KO(-1,t,"៊");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(4,t,[{t:'a',a:this.s52},'ា','ុ','ំ'])){m=1;k.KDC(4,t);k.KIO(-1,this.s52,1,t);k.KO(-1,t,"៉");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(4,t,[{t:'a',a:this.s52},'ុ','ំ','ា'])){m=1;k.KDC(4,t);k.KIO(-1,this.s52,1,t);k.KO(-1,t,"៉");k.KO(-1,t,"ា");k.KO(-1,t,"ំ");}else if(k.KFCM(4,t,[{t:'a',a:this.s49},'េ','ុ','ី'])){m=1;k.KDC(4,t);k.KIO(-1,this.s49,1,t);k.KO(-1,t,"៊ើ");}else if(k.KFCM(4,t,[{t:'a',a:this.s49},'ុ','េ','ី'])){m=1;k.KDC(4,t);k.KIO(-1,this.s49,1,t);k.KO(-1,t,"៊ើ");}else if(k.KFCM(4,t,[{t:'a',a:this.s49},'៉','េ','ី'])){m=1;k.KDC(4,t);k.KIO(-1,this.s49,1,t);k.KO(-1,t,"៊ើ");}else if(k.KFCM(4,t,[{t:'a',a:this.s51},'េ','ុ','ី'])){m=1;k.KDC(4,t);k.KIO(-1,this.s51,1,t);k.KO(-1,t,"៉ើ");}else if(k.KFCM(4,t,[{t:'a',a:this.s51},'ុ','េ','ី'])){m=1;k.KDC(4,t);k.KIO(-1,this.s51,1,t);k.KO(-1,t,"៉ើ");}else if(k.KFCM(4,t,[{t:'a',a:this.s51},'៊','េ','ី'])){m=1;k.KDC(4,t);k.KIO(-1,this.s51,1,t);k.KO(-1,t,"៉ើ");}else if(k.KFCM(4,t,['ព','ន','្','ឋ'])){m=1;k.KDC(4,t);k.KO(-1,t,"ព");k.KO(-1,t,"ន");k.KO(-1,t,"្ធ");}else if(k.KFCM(4,t,['្','យ','េ','ឺ'])){m=1;k.KDC(4,t);k.KO(-1,t,"ឿ");}else if(k.KFCM(4,t,['្','យ','េ','ឹ'])){m=1;k.KDC(4,t);k.KO(-1,t,"ឿ");}else if(k.KFCM(4,t,['្','យ','េ','ី'])){m=1;k.KDC(4,t);k.KO(-1,t,"ឿ");}else if(k.KFCM(3,t,[{t:'a',a:this.s15},{t:'a',a:this.s17},{t:'a',a:this.s15}])){m=1;k.KDC(3,t);k.KIO(-1,this.s15,3,t);}else if(k.KFCM(3,t,[{t:'a',a:this.s15},{t:'a',a:this.s17},{t:'a',a:this.s17}])){m=1;k.KDC(3,t);k.KIO(-1,this.s17,3,t);}else if(k.KFCM(3,t,[{t:'a',a:this.s15},{t:'a',a:this.s15},{t:'a',a:this.s17}])){m=1;k.KDC(3,t);k.KIO(-1,this.s15,2,t);k.KIO(-1,this.s17,3,t);}else if(k.KFCM(3,t,[{t:'a',a:this.s17},{t:'a',a:this.s15},{t:'a',a:this.s17}])){m=1;k.KDC(3,t);k.KIO(-1,this.s15,2,t);k.KIO(-1,this.s17,3,t);}else if(k.KFCM(3,t,['្',{t:'a',a:this.s15},{t:'a',a:this.s17}])){m=1;k.KDC(3,t);k.KIO(-1,this.s15,2,t);k.KIO(-1,this.s17,3,t);}else if(k.KFCM(3,t,[{t:'a',a:this.s20},'្',{t:'a',a:this.s45}])){m=1;k.KDC(3,t);k.KO(-1,t,"្");k.KIO(-1,this.s45,3,t);k.KIO(-1,this.s20,1,t);}else if(k.KFCM(3,t,[{t:'a',a:this.s29},'្',{t:'a',a:this.s45}])){m=1;k.KDC(3,t);k.KO(-1,t,"្");k.KIO(-1,this.s45,3,t);k.KIO(-1,this.s29,1,t);}else if(k.KFCM(3,t,[{t:'a',a:this.s15},{t:'a',a:this.s17},{t:'a',a:this.s29}])){m=1;k.KDC(3,t);k.KIO(-1,this.s29,3,t);k.KIO(-1,this.s15,1,t);k.KIO(-1,this.s17,2,t);}else if(k.KFCM(3,t,[{t:'a',a:this.s29},{t:'a',a:this.s20},{t:'a',a:this.s29}])){m=1;k.KDC(3,t);k.KIO(-1,this.s29,3,t);k.KIO(-1,this.s20,2,t);}else if(k.KFCM(3,t,[{t:'a',a:this.s49},'ុ',{t:'a',a:this.s48}])){m=1;k.KDC(3,t);k.KIO(-1,this.s49,1,t);k.KO(-1,t,"៊");k.KIO(-1,this.s48,3,t);}else if(k.KFCM(3,t,[{t:'a',a:this.s49},{t:'a',a:this.s48},'ុ'])){m=1;k.KDC(3,t);k.KIO(-1,this.s49,1,t);k.KO(-1,t,"៊");k.KIO(-1,this.s48,2,t);}else if(k.KFCM(3,t,[{t:'a',a:this.s52},'ុ',{t:'a',a:this.s48}])){m=1;k.KDC(3,t);k.KIO(-1,this.s52,1,t);k.KO(-1,t,"៉");k.KIO(-1,this.s48,3,t);}else if(k.KFCM(3,t,[{t:'a',a:this.s52},{t:'a',a:this.s48},'ុ'])){m=1;k.KDC(3,t);k.KIO(-1,this.s52,1,t);k.KO(-1,t,"៉");k.KIO(-1,this.s48,2,t);}else if(k.KFCM(3,t,[{t:'a',a:this.s51},'៊',{t:'a',a:this.s48}])){m=1;k.KDC(3,t);k.KIO(-1,this.s51,1,t);k.KO(-1,t,"៉");k.KIO(-1,this.s48,3,t);}else if(k.KFCM(3,t,[{t:'a',a:this.s49},'៉',{t:'a',a:this.s48}])){m=1;k.KDC(3,t);k.KIO(-1,this.s49,1,t);k.KO(-1,t,"៊");k.KIO(-1,this.s48,3,t);}else if(k.KFCM(3,t,[{t:'a',a:this.s13},{t:'a',a:this.s15},'៌'])){m=1;k.KDC(3,t);k.KIO(-1,this.s13,1,t);k.KO(-1,t,"៌");k.KIO(-1,this.s15,2,t);}else if(k.KFCM(3,t,['ណ','្','ត'])){m=1;k.KDC(3,t);k.KO(-1,t,"ណ");k.KO(-1,t,"្ដ");}else if(k.KFCM(3,t,['ន','្','ដ'])){m=1;k.KDC(3,t);k.KO(-1,t,"ន");k.KO(-1,t,"្ត");}else if(k.KFCM(3,t,['ទ','្','ប'])){m=1;k.KDC(3,t);k.KO(-1,t,"ឡ");}else if(k.KFCM(3,t,['ប','្','ញ'])){m=1;k.KDC(3,t);k.KO(-1,t,"ឫ");}else if(k.KFCM(3,t,['ព','្','ញ'])){m=1;k.KDC(3,t);k.KO(-1,t,"ឭ");}else if(k.KFCM(3,t,['ព','្','ឋ'])){m=1;k.KDC(3,t);k.KO(-1,t,"ឰ");}else if(k.KFCM(3,t,['ដ','្','ធ'])){m=1;k.KDC(3,t);k.KO(-1,t,"ដ្ឋ");}else if(k.KFCM(3,t,['ទ','្','ឋ'])){m=1;k.KDC(3,t);k.KO(-1,t,"ទ្ធ");}else if(k.KFCM(3,t,['ឪ','្','យ'])){m=1;k.KDC(3,t);k.KO(-1,t,"ឱ");k.KO(-1,t,"្");k.KO(-1,t,"យ");}else if(k.KFCM(3,t,['ឳ','្','យ'])){m=1;k.KDC(3,t);k.KO(-1,t,"ឱ");k.KO(-1,t,"្");k.KO(-1,t,"យ");}else if(k.KFCM(3,t,['ញ','្','វ'])){m=1;k.KDC(3,t);k.KO(-1,t,"ព");k.KO(-1,t,"្");k.KO(-1,t,"វា");}else if(k.KFCM(2,t,['េ','ា'])){m=1;k.KDC(2,t);k.KO(-1,t,"ោ");}else if(k.KFCM(2,t,['ា','េ'])){m=1;k.KDC(2,t);k.KO(-1,t,"ោ");}else if(k.KFCM(2,t,['េ','ី'])){m=1;k.KDC(2,t);k.KO(-1,t,"ើ");}else if(k.KFCM(2,t,['ី','េ'])){m=1;k.KDC(2,t);k.KO(-1,t,"ើ");}else if(k.KFCM(2,t,['ំ','ុ'])){m=1;k.KDC(2,t);k.KO(-1,t,"ុំ");}else if(k.KFCM(2,t,['ំ','ា'])){m=1;k.KDC(2,t);k.KO(-1,t,"ាំ");}else if(k.KFCM(2,t,[{t:'a',a:this.s15},{t:'a',a:this.s15}])){m=1;k.KDC(2,t);k.KIO(-1,this.s15,2,t);}else if(k.KFCM(2,t,[{t:'a',a:this.s17},{t:'a',a:this.s17}])){m=1;k.KDC(2,t);k.KIO(-1,this.s17,2,t);}if(m) {}else if(k.KFCM(2,t,['្','្'])){m=1;k.KDC(2,t);k.KO(-1,t,"្");}else if(k.KFCM(2,t,['្',{t:'a',a:this.s20}])){m=1;k.KDC(2,t);k.KIO(-1,this.s20,2,t);}else if(k.KFCM(2,t,[{t:'a',a:this.s20},{t:'a',a:this.s29}])){m=1;k.KDC(2,t);k.KIO(-1,this.s29,2,t);k.KIO(-1,this.s20,1,t);}else if(k.KFCM(2,t,['ឫ','ុ'])){m=1;k.KDC(2,t);k.KO(-1,t,"ឬ");}else if(k.KFCM(2,t,['ឭ','ា'])){m=1;k.KDC(2,t);k.KO(-1,t,"ញ");}else if(k.KFCM(2,t,['ឮ','ា'])){m=1;k.KDC(2,t);k.KO(-1,t,"ញ");}else if(k.KFCM(2,t,['ឭ','ុ'])){m=1;k.KDC(2,t);k.KO(-1,t,"ឮ");}else if(k.KFCM(2,t,['ឧ','ិ'])){m=1;k.KDC(2,t);k.KO(-1,t,"ឱ");}else if(k.KFCM(2,t,['ឧ','៌'])){m=1;k.KDC(2,t);k.KO(-1,t,"ឱ");}else if(k.KFCM(2,t,['ឧ','៍'])){m=1;k.KDC(2,t);k.KO(-1,t,"ឱ");}return r;};} \ No newline at end of file diff --git a/developer/src/kmc-package/test/fixtures/kmp_2.0/khmer_angkor.kmx b/developer/src/kmc-package/test/fixtures/kmp_2.0/khmer_angkor.kmx new file mode 100644 index 0000000000000000000000000000000000000000..c3d0289f4863c7c4a998c348eb1d425caadca79d GIT binary patch literal 26280 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 oDtl0`t=LoFCZ2P9{7X|R#ncIv*OjNe@{%3 + + + 15.0.266.0 + 7.0 + + + + readme.htm + splash.gif + + + + + + + + + + Khmer Angkor + © 2015-2022 SIL International + Makara Sok + + https://keyman.com/keyboards/khmer_angkor + # Khmer Angkor + +Khmer Unicode keyboard layout based on the NiDA keyboard layout. Automatically corrects many common keying errors, including: + +* Using wrong vowel combination +* Typing clusters out of order +* Typing wrong mark for consonant shifters +* And more! + + + + khmer_angkor.js + File khmer_angkor.js + 0 + .js + + + khmer_angkor.kvk + File khmer_angkor.kvk + 0 + .kvk + + + khmer_angkor.kmx + Keyboard Khmer Angkor + 0 + .kmx + + + welcome\keyboard_layout.png + File keyboard_layout.png + 0 + .png + + + welcome\welcome.htm + File welcome.htm + 0 + .htm + + + ..\shared\fonts\khmer\mondulkiri\FONTLOG.txt + File FONTLOG.txt + 0 + .txt + + + ..\shared\fonts\khmer\mondulkiri\Mondulkiri-R.ttf + Font Khmer Mondulkiri + 0 + .ttf + + + ..\shared\fonts\khmer\mondulkiri\OFL.txt + File OFL.txt + 0 + .txt + + + ..\shared\fonts\khmer\mondulkiri\OFL-FAQ.txt + File OFL-FAQ.txt + 0 + .txt + + + welcome\KAK_Documentation_EN.pdf + File KAK_Documentation_EN.pdf + 0 + .pdf + + + welcome\KAK_Documentation_KH.pdf + File KAK_Documentation_KH.pdf + 0 + .pdf + + + readme.htm + File readme.htm + 0 + .htm + + + welcome\image002.png + File image002.png + 0 + .png + + + ..\shared\fonts\khmer\busrakbd\khmer_busra_kbd.ttf + Font KhmerBusraKbd + 0 + .ttf + + + splash.gif + File splash.gif + 0 + .gif + + + + + Khmer Angkor + khmer_angkor + 1.3 + ..\shared\fonts\khmer\busrakbd\khmer_busra_kbd.ttf + ..\shared\fonts\khmer\mondulkiri\Mondulkiri-R.ttf + + Central Khmer (Khmer, Cambodia) + + + + + + + + + diff --git a/developer/src/kmc-package/test/fixtures/kmp_2.0/kmp.json b/developer/src/kmc-package/test/fixtures/kmp_2.0/kmp.json new file mode 100644 index 0000000000..bd4d99c08b --- /dev/null +++ b/developer/src/kmc-package/test/fixtures/kmp_2.0/kmp.json @@ -0,0 +1,131 @@ +{ + "system": { + "keymanDeveloperVersion": "16.0.60.0", + "fileVersion": "7.0" + }, + "options": { + "readmeFile": "readme.htm", + "graphicFile": "splash.gif" + }, + "info": { + "name": { + "description": "Khmer Angkor" + }, + "copyright": { + "description": "\u00A9 2015-2022 SIL International" + }, + "author": { + "description": "Makara Sok", + "url": "mailto:makara_sok@sil.org" + }, + "version": { + "description": "1.3" + }, + "website": { + "description": "https://keyman.com/keyboards/khmer_angkor", + "url": "https://keyman.com/keyboards/khmer_angkor" + }, + "description": { + "description": "# Khmer Angkor\r\n\r\nKhmer Unicode keyboard layout based on the NiDA keyboard layout. Automatically corrects many common keying errors, including:\r\n\r\n* Using wrong vowel combination\r\n* Typing clusters out of order\r\n* Typing wrong mark for consonant shifters\r\n* And more!" + } + }, + "files": [ + { + "name": "khmer_angkor.js", + "description": "File khmer_angkor.js" + }, + { + "name": "khmer_angkor.kvk", + "description": "File khmer_angkor.kvk" + }, + { + "name": "khmer_angkor.kmx", + "description": "Keyboard Khmer Angkor" + }, + { + "name": "keyboard_layout.png", + "description": "File keyboard_layout.png" + }, + { + "name": "welcome.htm", + "description": "File welcome.htm" + }, + { + "name": "FONTLOG.txt", + "description": "File FONTLOG.txt" + }, + { + "name": "Mondulkiri-R.ttf", + "description": "Font Khmer Mondulkiri" + }, + { + "name": "OFL.txt", + "description": "File OFL.txt" + }, + { + "name": "OFL-FAQ.txt", + "description": "File OFL-FAQ.txt" + }, + { + "name": "KAK_Documentation_EN.pdf", + "description": "File KAK_Documentation_EN.pdf" + }, + { + "name": "KAK_Documentation_KH.pdf", + "description": "File KAK_Documentation_KH.pdf" + }, + { + "name": "readme.htm", + "description": "File readme.htm" + }, + { + "name": "image002.png", + "description": "File image002.png" + }, + { + "name": "khmer_busra_kbd.ttf", + "description": "Font KhmerBusraKbd" + }, + { + "name": "splash.gif", + "description": "File splash.gif" + }, + { + "name": "kmp.inf", + "description": "Package information" + }, + { + "name": "kmp.json", + "description": "Package information (JSON)" + } + ], + "keyboards": [ + { + "name": "Khmer Angkor", + "id": "khmer_angkor", + "version": "1.3", + "oskFont": "khmer_busra_kbd.ttf", + "displayFont": "Mondulkiri-R.ttf", + "languages": [ + { + "name": "Central Khmer (Khmer, Cambodia)", + "id": "km" + } + ], + "examples": [ + { + "id": "km", + "keys": "x j m E r", + "text": "ខ្មែរ", + "note": "Name of language" + }, + { + "id": "km", + "keys": "B j r H r a C a N a c k j r k m j B u C a", + "text": "ព្រះរាជាណាចក្រកម្ពុជា", + "note": "'Kingdom of Cambodia'" + } + ] + } + ] +} diff --git a/developer/src/kmc-package/test/test-package-compiler.ts b/developer/src/kmc-package/test/test-package-compiler.ts index d33d6803e1..433d730c18 100644 --- a/developer/src/kmc-package/test/test-package-compiler.ts +++ b/developer/src/kmc-package/test/test-package-compiler.ts @@ -155,6 +155,34 @@ describe('KmpCompiler', function () { assert.deepEqual(kmpJsonActual, kmpJsonFixture); }); + it(`should support .kps 17.0 metadata correctly`, function () { + callbacks.clear(); + + const kpsPath = makePathToFixture('kmp_2.0', 'khmer_angkor.kps'); + const kmpJsonRefPath = makePathToFixture('kmp_2.0', 'kmp.json'); + + debugger; + + let kmpJsonActual = kmpCompiler.transformKpsToKmpObject(kpsPath); + if(kmpJsonActual == null) { + callbacks.printMessages(); + assert.isNotNull(kmpJsonActual); + } + let kmpJsonFixture = JSON.parse(fs.readFileSync(kmpJsonRefPath, 'utf-8')); + assert.isNotNull(kmpJsonFixture); + + // Blank out system.keymanDeveloperVersion which will vary + kmpJsonActual.system.keymanDeveloperVersion = '-'; + kmpJsonFixture.system.keymanDeveloperVersion = '-'; + + // Strip file paths to basename for the actual (this is currently part of the + // zip phase and not unit testable without refactoring) + for(const file of kmpJsonActual.files) { + file.name = path.basename(file.name); + } + + assert.deepEqual(kmpJsonActual, kmpJsonFixture); + }); /* * Testing Warnings and Errors */