From 3226d63db08abc185f1e1edddc4dd59459fc4b85 Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Mon, 13 Apr 2020 00:08:56 +0200 Subject: [PATCH] Add files via upload MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The reversed question mark (⸮) has been added (irony punctuation). --- UltimateKEYS - 2020-04-13.ahk | 1228 ++++++++++++++++++++++++++++ UltimateKEYS - 2020-04-13.klc | Bin 0 -> 73738 bytes UltimateKEYS SW - 2020-04-13.ahk | 1293 ++++++++++++++++++++++++++++++ UltimateKEYS SW - 2020-04-13.klc | Bin 0 -> 76254 bytes 4 files changed, 2521 insertions(+) create mode 100644 UltimateKEYS - 2020-04-13.ahk create mode 100644 UltimateKEYS - 2020-04-13.klc create mode 100644 UltimateKEYS SW - 2020-04-13.ahk create mode 100644 UltimateKEYS SW - 2020-04-13.klc diff --git a/UltimateKEYS - 2020-04-13.ahk b/UltimateKEYS - 2020-04-13.ahk new file mode 100644 index 0000000..3112ebb --- /dev/null +++ b/UltimateKEYS - 2020-04-13.ahk @@ -0,0 +1,1228 @@ +; UltimateKEYS - 2020-04-13.ahk + +; Created by : Pieter Degroote + +; License : GNU General Public License Version 3 + +; Website : https://github.com/pieter-degroote/UltimateKEYS + + +; Requirements : + +; Keyboard layout (on Windows OS) : US QWERTY + +; AutoHotkey v1.1 (https://www.autohotkey.com/) + + + +; Dead Key : Circumflex Accent + +dkCircumflex := ComObjCreate("Scripting.Dictionary") +dkCircumflex.item("a") := "â" ; a with circumflex +dkCircumflex.item("A") := "Â" ; A with circumflex +dkCircumflex.item("c") := "ĉ" ; c with circumflex +dkCircumflex.item("C") := "Ĉ" ; C with circumflex +dkCircumflex.item("e") := "ê" ; e with circumflex +dkCircumflex.item("E") := "Ê" ; E with circumflex +dkCircumflex.item("g") := "ĝ" ; g with circumflex +dkCircumflex.item("G") := "Ĝ" ; G with circumflex +dkCircumflex.item("h") := "ĥ" ; h with circumflex +dkCircumflex.item("H") := "Ĥ" ; H with circumflex +dkCircumflex.item("i") := "î" ; i with circumflex +dkCircumflex.item("I") := "Î" ; I with circumflex +dkCircumflex.item("j") := "ĵ" ; j with circumflex +dkCircumflex.item("J") := "Ĵ" ; J with circumflex +dkCircumflex.item("o") := "ô" ; o with circumflex +dkCircumflex.item("O") := "Ô" ; O with circumflex +dkCircumflex.item("s") := "ŝ" ; s with circumflex +dkCircumflex.item("S") := "Ŝ" ; S with circumflex +dkCircumflex.item("u") := "û" ; u with circumflex +dkCircumflex.item("U") := "Û" ; U with circumflex +dkCircumflex.item("w") := "ŵ" ; w with circumflex +dkCircumflex.item("W") := "Ŵ" ; W with circumflex +dkCircumflex.item("y") := "ŷ" ; y with circumflex +dkCircumflex.item("Y") := "Ŷ" ; Y with circumflex +dkCircumflex.item("z") := "ẑ" ; z with circumflex +dkCircumflex.item("Z") := "Ẑ" ; Z with circumflex +dkCircumflex.item("n") := "₦" ; Nigerian naira +dkCircumflex.item("N") := "₦" ; Nigerian naira +dkCircumflex.item("^") := "{^}" ; circumflex accent +dkCircumflex.item(" ") := "{^}" ; circumflex accent + + +; Dead Key : Caron + +dkCaron := ComObjCreate("Scripting.Dictionary") +dkCaron.item("a") := "ǎ" ; a with caron +dkCaron.item("A") := "Ǎ" ; A with caron +dkCaron.item("c") := "č" ; c with caron +dkCaron.item("C") := "Č" ; C with caron +dkCaron.item("d") := "ď" ; d with caron +dkCaron.item("D") := "Ď" ; D with caron +dkCaron.item("e") := "ě" ; e with caron +dkCaron.item("E") := "Ě" ; E with caron +dkCaron.item("g") := "ǧ" ; g with caron +dkCaron.item("G") := "Ǧ" ; G with caron +dkCaron.item("h") := "ȟ" ; h with caron +dkCaron.item("H") := "Ȟ" ; H with caron +dkCaron.item("i") := "ǐ" ; i with caron +dkCaron.item("I") := "Ǐ" ; I with caron +dkCaron.item("j") := "ǰ" ; j with caron +dkCaron.item("k") := "ǩ" ; k with caron +dkCaron.item("K") := "Ǩ" ; K with caron +dkCaron.item("l") := "ľ" ; l with caron +dkCaron.item("L") := "Ľ" ; L with caron +dkCaron.item("n") := "ň" ; n with caron +dkCaron.item("N") := "Ň" ; N with caron +dkCaron.item("o") := "ǒ" ; o with caron +dkCaron.item("O") := "Ǒ" ; O with caron +dkCaron.item("r") := "ř" ; r with caron +dkCaron.item("R") := "Ř" ; R with caron +dkCaron.item("s") := "š" ; s with caron +dkCaron.item("S") := "Š" ; S with caron +dkCaron.item("t") := "ť" ; t with caron +dkCaron.item("T") := "Ť" ; T with caron +dkCaron.item("u") := "ǔ" ; u with caron +dkCaron.item("U") := "Ǔ" ; U with caron +dkCaron.item("ü") := "ǚ" ; u with diaeresis and caron +dkCaron.item("Ü") := "Ǚ" ; U with diaeresis and caron +dkCaron.item("z") := "ž" ; z with caron +dkCaron.item("Z") := "Ž" ; Z with caron +dkCaron.item("3") := "ǯ" ; small letter ezh with caron +dkCaron.item("#") := "Ǯ" ; capital letter ezh with caron +dkCaron.item(" ") := "ˇ" ; caron + + +; Dead Key : Ring/Dot Above + +dkRingDotAbove := ComObjCreate("Scripting.Dictionary") +dkRingDotAbove.item("a") := "ȧ" ; a with dot above +dkRingDotAbove.item("A") := "Ȧ" ; A with dot above +dkRingDotAbove.item("ä") := "å" ; a with ring above +dkRingDotAbove.item("Ä") := "Å" ; A with ring above +dkRingDotAbove.item("b") := "ḃ" ; b with dot above +dkRingDotAbove.item("B") := "Ḃ" ; B with dot above +dkRingDotAbove.item("c") := "ċ" ; c with dot above +dkRingDotAbove.item("C") := "Ċ" ; C with dot above +dkRingDotAbove.item("d") := "ḋ" ; d with dot above +dkRingDotAbove.item("D") := "Ḋ" ; D with dot above +dkRingDotAbove.item("e") := "ė" ; e with dot above +dkRingDotAbove.item("E") := "Ė" ; E with dot above +dkRingDotAbove.item("f") := "ḟ" ; f with dot above +dkRingDotAbove.item("F") := "Ḟ" ; F with dot above +dkRingDotAbove.item("g") := "ġ" ; g with dot above +dkRingDotAbove.item("G") := "Ġ" ; G with dot above +dkRingDotAbove.item("h") := "ḣ" ; h with dot above +dkRingDotAbove.item("H") := "Ḣ" ; H with dot above +dkRingDotAbove.item("i") := "ı" ; dotless i (Turkish, Azerbaijani) +dkRingDotAbove.item("I") := "İ" ; I with dot above (Turkish, Azerbaijani) +dkRingDotAbove.item("j") := "ȷ" ; dotless j +dkRingDotAbove.item("l") := "ŀ" ; l with middle dot +dkRingDotAbove.item("L") := "Ŀ" ; L with middle dot +dkRingDotAbove.item("m") := "ṁ" ; m with dot above +dkRingDotAbove.item("M") := "Ṁ" ; M with dot above +dkRingDotAbove.item("n") := "ṅ" ; n with dot above +dkRingDotAbove.item("N") := "Ṅ" ; N with dot above +dkRingDotAbove.item("o") := "ȯ" ; o with dot above +dkRingDotAbove.item("O") := "Ȯ" ; O with dot above +dkRingDotAbove.item("p") := "ṗ" ; p with dot above +dkRingDotAbove.item("P") := "Ṗ" ; P with dot above +dkRingDotAbove.item("r") := "ṙ" ; r with dot above +dkRingDotAbove.item("R") := "Ṙ" ; R with dot above +dkRingDotAbove.item("s") := "ṡ" ; s with dot above +dkRingDotAbove.item("S") := "Ṡ" ; S with dot above +dkRingDotAbove.item("t") := "ṫ" ; t with dot above +dkRingDotAbove.item("T") := "Ṫ" ; T with dot above +dkRingDotAbove.item("u") := "ů" ; u with ring above +dkRingDotAbove.item("U") := "Ů" ; U with ring above +dkRingDotAbove.item("w") := "ẇ" ; w with dot above +dkRingDotAbove.item("W") := "Ẇ" ; W with dot above +dkRingDotAbove.item("å") := "ẘ" ; w with ring above +dkRingDotAbove.item("x") := "ẋ" ; x with dot above +dkRingDotAbove.item("X") := "Ẋ" ; X with dot above +dkRingDotAbove.item("y") := "ẏ" ; y with dot above +dkRingDotAbove.item("Y") := "Ẏ" ; Y with dot above +dkRingDotAbove.item("ÿ") := "ẙ" ; y with ring above +dkRingDotAbove.item("z") := "ż" ; z with dot above +dkRingDotAbove.item("Z") := "Ż" ; Z with dot above +dkRingDotAbove.item(" ") := "˙" ; dot above + + +; Dead Key : Macron/Stroke + +dkMacronStroke := ComObjCreate("Scripting.Dictionary") +dkMacronStroke.item("a") := "ā" ; a with macron +dkMacronStroke.item("A") := "Ā" ; A with macron +dkMacronStroke.item("æ") := "ǣ" ; ae with macron +dkMacronStroke.item("Æ") := "Ǣ" ; AE with macron +dkMacronStroke.item("b") := "ƀ" ; b with stroke +dkMacronStroke.item("B") := "Ƀ" ; B with stroke +dkMacronStroke.item("d") := "đ" ; d with stroke +dkMacronStroke.item("D") := "Đ" ; D with stroke +dkMacronStroke.item("e") := "ē" ; e with macron +dkMacronStroke.item("E") := "Ē" ; E with macron +dkMacronStroke.item("g") := "ǥ" ; g with stroke (Skolt Sami) +dkMacronStroke.item("G") := "Ǥ" ; G with stroke (Skolt Sami) +dkMacronStroke.item("é") := "ḡ" ; g with macron +dkMacronStroke.item("É") := "Ḡ" ; G with macron +dkMacronStroke.item("h") := "ħ" ; h with stroke (Maltese) +dkMacronStroke.item("H") := "Ħ" ; H with stroke (Maltese) +dkMacronStroke.item("i") := "ī" ; i with macron +dkMacronStroke.item("I") := "Ī" ; I with macron +dkMacronStroke.item("ï") := "ɨ" ; i with stroke +dkMacronStroke.item("Ï") := "Ɨ" ; I with stroke +dkMacronStroke.item("j") := "ɉ" ; j with stroke +dkMacronStroke.item("J") := "Ɉ" ; J with stroke +dkMacronStroke.item("l") := "ł" ; l with stroke +dkMacronStroke.item("L") := "Ł" ; L with stroke +dkMacronStroke.item("ø") := "ḻ" ; l with line below +dkMacronStroke.item("Ø") := "Ḻ" ; L with line below +dkMacronStroke.item("o") := "ō" ; o with macron +dkMacronStroke.item("O") := "Ō" ; O with macron +dkMacronStroke.item("ö") := "ǭ" ; o with ogonek and macron +dkMacronStroke.item("Ö") := "Ǭ" ; O with ogonek and macron +dkMacronStroke.item("p") := "ᵽ" ; p with stroke +dkMacronStroke.item("P") := "Ᵽ" ; P with stroke +dkMacronStroke.item("r") := "ɍ" ; r with stroke +dkMacronStroke.item("R") := "Ɍ" ; R with stroke +dkMacronStroke.item("t") := "ŧ" ; t with stroke +dkMacronStroke.item("T") := "Ŧ" ; T with stroke +dkMacronStroke.item("u") := "ū" ; u with macron +dkMacronStroke.item("U") := "Ū" ; U with macron +dkMacronStroke.item("ü") := "ʉ" ; u with bar +dkMacronStroke.item("Ü") := "Ʉ" ; U with bar +dkMacronStroke.item("y") := "ȳ" ; y with macron +dkMacronStroke.item("Y") := "Ȳ" ; Y with macron +dkMacronStroke.item("ÿ") := "ɏ" ; y with stroke +dkMacronStroke.item("Ÿ") := "Ɏ" ; Y with stroke +dkMacronStroke.item("z") := "ƶ" ; z with stroke +dkMacronStroke.item("Z") := "Ƶ" ; Z with stroke +dkMacronStroke.item(" ") := "¯" ; macron + + +; Dead Key : Cedilla/Ogonek + +dkCedillaOgonek := ComObjCreate("Scripting.Dictionary") +dkCedillaOgonek.item("a") := "ą" ; a with ogonek +dkCedillaOgonek.item("A") := "Ą" ; A with ogonek +dkCedillaOgonek.item("c") := "ç" ; c with cedilla +dkCedillaOgonek.item("C") := "Ç" ; C with cedilla +dkCedillaOgonek.item("d") := "ḑ" ; d with cedilla +dkCedillaOgonek.item("D") := "Ḑ" ; D with cedilla +dkCedillaOgonek.item("e") := "ę" ; e with ogonek +dkCedillaOgonek.item("E") := "Ę" ; E with ogonek +dkCedillaOgonek.item("ë") := "ȩ" ; e with cedilla +dkCedillaOgonek.item("Ë") := "Ȩ" ; E with cedilla +dkCedillaOgonek.item("g") := "ģ" ; g with cedilla +dkCedillaOgonek.item("G") := "Ģ" ; G with cedilla +dkCedillaOgonek.item("h") := "ḩ" ; h with cedilla +dkCedillaOgonek.item("H") := "Ḩ" ; H with cedilla +dkCedillaOgonek.item("i") := "į" ; i with ogonek +dkCedillaOgonek.item("I") := "Į" ; I with ogonek +dkCedillaOgonek.item("k") := "ķ" ; k with cedilla +dkCedillaOgonek.item("K") := "Ķ" ; K with cedilla +dkCedillaOgonek.item("l") := "ļ" ; l with cedilla +dkCedillaOgonek.item("L") := "Ļ" ; L with cedilla +dkCedillaOgonek.item("n") := "ņ" ; n with cedilla +dkCedillaOgonek.item("N") := "Ņ" ; N with cedilla +dkCedillaOgonek.item("o") := "ǫ" ; o with ogonek +dkCedillaOgonek.item("O") := "Ǫ" ; O with ogonek +dkCedillaOgonek.item("ö") := "ǭ" ; o with ogonek and macron +dkCedillaOgonek.item("Ö") := "Ǭ" ; O with ogonek and macron +dkCedillaOgonek.item("r") := "ŗ" ; r with cedilla +dkCedillaOgonek.item("R") := "Ŗ" ; R with cedilla +dkCedillaOgonek.item("s") := "ş" ; s with cedilla +dkCedillaOgonek.item("S") := "Ş" ; S with cedilla +dkCedillaOgonek.item("t") := "ţ" ; t with cedilla +dkCedillaOgonek.item("T") := "Ţ" ; T with cedilla +dkCedillaOgonek.item("u") := "ų" ; u with ogonek +dkCedillaOgonek.item("U") := "Ų" ; U with ogonek +dkCedillaOgonek.item("w") := "₩" ; South Korean won +dkCedillaOgonek.item("W") := "₩" ; South Korean won +dkCedillaOgonek.item("1") := "–" ; en dash +dkCedillaOgonek.item("2") := "—" ; em dash +dkCedillaOgonek.item("3") := "―" ; horizontal bar +dkCedillaOgonek.item("4") := "‐" ; hyphen +dkCedillaOgonek.item("9") := "‒" ; figure dash +dkCedillaOgonek.item("0") := "­" ; soft hyphen +dkCedillaOgonek.item("-") := "‑" ; non-breaking hyphen +dkCedillaOgonek.item(".") := "˛" ; ogonek +dkCedillaOgonek.item(" ") := "¸" ; cedilla + + +; Dead Key : Breve/Special + +dkBreveSpecial := ComObjCreate("Scripting.Dictionary") +dkBreveSpecial.item("a") := "ă" ; a with breve +dkBreveSpecial.item("A") := "Ă" ; A with breve +dkBreveSpecial.item("d") := "ɖ" ; small letter d with tail +dkBreveSpecial.item("D") := "Ɖ" ; capital letter African D +dkBreveSpecial.item("e") := "ĕ" ; e with breve +dkBreveSpecial.item("E") := "Ĕ" ; E with breve +dkBreveSpecial.item("ë") := "ǝ" ; small turned e +dkBreveSpecial.item("Ë") := "Ǝ" ; capital reversed E +dkBreveSpecial.item("f") := "ə" ; small letter schwa (Azerbaijani) +dkBreveSpecial.item("F") := "Ə" ; capital letter schwa (Azerbaijani) +dkBreveSpecial.item("g") := "ğ" ; g with breve +dkBreveSpecial.item("G") := "Ğ" ; G with breve +dkBreveSpecial.item("é") := "ꬶ" ; cross-tailed g +dkBreveSpecial.item("h") := "ɣ" ; latin small gamma +dkBreveSpecial.item("H") := "Ɣ" ; latin capital gamma +dkBreveSpecial.item("i") := "ĭ" ; i with breve +dkBreveSpecial.item("I") := "Ĭ" ; I with breve +dkBreveSpecial.item("j") := "ij" ; ligature ij +dkBreveSpecial.item("J") := "IJ" ; ligature IJ +dkBreveSpecial.item("k") := "ĸ" ; small letter kra +dkBreveSpecial.item("n") := "ŋ" ; small letter eng(ma) +dkBreveSpecial.item("N") := "Ŋ" ; capital letter eng(ma) +dkBreveSpecial.item("o") := "ŏ" ; o with breve +dkBreveSpecial.item("O") := "Ŏ" ; O with breve +dkBreveSpecial.item("ö") := "ɔ" ; small open o +dkBreveSpecial.item("Ö") := "Ɔ" ; capital open O +dkBreveSpecial.item("s") := "ș" ; s with comma below (Romanian) +dkBreveSpecial.item("S") := "Ș" ; S with comma below (Romanian) +dkBreveSpecial.item("t") := "ț" ; t with comma below (Romanian) +dkBreveSpecial.item("T") := "Ț" ; T with comma below (Romanian) +dkBreveSpecial.item("u") := "ŭ" ; u with breve +dkBreveSpecial.item("U") := "Ŭ" ; U with breve +dkBreveSpecial.item("v") := "ʊ" ; latin small letter upsilon +dkBreveSpecial.item("V") := "Ʊ" ; latin capital letter upsilon +dkBreveSpecial.item("w") := "ƿ" ; small letter wynn +dkBreveSpecial.item("W") := "Ƿ" ; capital letter wynn +dkBreveSpecial.item("y") := "ȝ" ; small letter yogh +dkBreveSpecial.item("Y") := "Ȝ" ; capital letter yogh +dkBreveSpecial.item("3") := "ʒ" ; small letter ezh +dkBreveSpecial.item("#") := "Ʒ" ; capital letter ezh +dkBreveSpecial.item(" ") := "˘" ; breve + + +; Dead Key : Acute Accent + +dkAcuteAccent := ComObjCreate("Scripting.Dictionary") +dkAcuteAccent.item("a") := "á" ; a with acute +dkAcuteAccent.item("A") := "Á" ; A with acute +dkAcuteAccent.item("b") := "ɓ" ; b with hook +dkAcuteAccent.item("B") := "Ɓ" ; B with hook +dkAcuteAccent.item("c") := "ć" ; c with acute +dkAcuteAccent.item("C") := "Ć" ; C with acute +dkAcuteAccent.item("ç") := "ḉ" ; c with cedilla and acute +dkAcuteAccent.item("Ç") := "Ḉ" ; C with cedilla and acute +dkAcuteAccent.item("d") := "ɗ" ; d with hook +dkAcuteAccent.item("D") := "Ɗ" ; D with hook +dkAcuteAccent.item("e") := "é" ; e with acute +dkAcuteAccent.item("E") := "É" ; E with acute +dkAcuteAccent.item("f") := "ƒ" ; f with hook +dkAcuteAccent.item("F") := "Ƒ" ; F with hook +dkAcuteAccent.item("g") := "ǵ" ; g with acute +dkAcuteAccent.item("G") := "Ǵ" ; G with acute +dkAcuteAccent.item("h") := "ɦ" ; h with hook +dkAcuteAccent.item("H") := "Ɦ" ; H with hook +dkAcuteAccent.item("i") := "í" ; i with acute +dkAcuteAccent.item("I") := "Í" ; I with acute +dkAcuteAccent.item("j") := "ij" ; ligature ij +dkAcuteAccent.item("J") := "IJ" ; ligature IJ +dkAcuteAccent.item("k") := "ƙ" ; k with hook +dkAcuteAccent.item("K") := "Ƙ" ; K with hook +dkAcuteAccent.item("l") := "ĺ" ; l with acute +dkAcuteAccent.item("L") := "Ĺ" ; L with acute +dkAcuteAccent.item("m") := "ḿ" ; m with acute +dkAcuteAccent.item("M") := "Ḿ" ; M with acute +dkAcuteAccent.item("n") := "ń" ; n with acute +dkAcuteAccent.item("N") := "Ń" ; N with acute +dkAcuteAccent.item("o") := "ó" ; o with acute +dkAcuteAccent.item("O") := "Ó" ; O with acute +dkAcuteAccent.item("ö") := "ő" ; o with double acute +dkAcuteAccent.item("Ö") := "Ő" ; O with double acute +dkAcuteAccent.item("p") := "ƥ" ; p with hook +dkAcuteAccent.item("P") := "Ƥ" ; P with hook +dkAcuteAccent.item("q") := "ɋ" ; q with hook tail +dkAcuteAccent.item("Q") := "Ɋ" ; Q with hook tail +dkAcuteAccent.item("r") := "ŕ" ; r with acute +dkAcuteAccent.item("R") := "Ŕ" ; R with acute +dkAcuteAccent.item("s") := "ś" ; s with acute +dkAcuteAccent.item("S") := "Ś" ; S with acute +dkAcuteAccent.item("t") := "ƭ" ; t with hook +dkAcuteAccent.item("T") := "Ƭ" ; T with hook +dkAcuteAccent.item("u") := "ú" ; u with acute +dkAcuteAccent.item("U") := "Ú" ; U with acute +dkAcuteAccent.item("ü") := "ű" ; u with double acute +dkAcuteAccent.item("Ü") := "Ű" ; U with double acute +dkAcuteAccent.item("v") := "ʋ" ; v with hook +dkAcuteAccent.item("V") := "Ʋ" ; V with hook +dkAcuteAccent.item("w") := "ẃ" ; w with acute +dkAcuteAccent.item("W") := "Ẃ" ; W with acute +dkAcuteAccent.item("y") := "ý" ; y with acute +dkAcuteAccent.item("Y") := "Ý" ; Y with acute +dkAcuteAccent.item("z") := "ź" ; z with acute +dkAcuteAccent.item("Z") := "Ź" ; Z with acute +dkAcuteAccent.item("å") := "ǻ" ; a with ring above and acute +dkAcuteAccent.item("Å") := "Ǻ" ; A with ring above and acute +dkAcuteAccent.item("æ") := "ǽ" ; ae with acute +dkAcuteAccent.item("Æ") := "Ǽ" ; AE with acute +dkAcuteAccent.item("ø") := "ǿ" ; o with stroke and acute +dkAcuteAccent.item("Ø") := "Ǿ" ; O with stroke and acute +dkAcuteAccent.item("2") := "♫" ; beamed eighth notes +dkAcuteAccent.item("8") := "♪" ; eighth note +dkAcuteAccent.item("'") := "´" ; acute accent +dkAcuteAccent.item(" ") := "´" ; acute accent + + +; Dead Key : Diaeresis + +dkDiaeresis := ComObjCreate("Scripting.Dictionary") +dkDiaeresis.item("a") := "ä" ; a with diaeresis +dkDiaeresis.item("A") := "Ä" ; A with diaeresis +dkDiaeresis.item("e") := "ë" ; e with diaeresis +dkDiaeresis.item("E") := "Ë" ; E with diaeresis +dkDiaeresis.item("h") := "ḧ" ; h with diaeresis +dkDiaeresis.item("H") := "Ḧ" ; H with diaeresis +dkDiaeresis.item("i") := "ï" ; i with diaeresis +dkDiaeresis.item("I") := "Ï" ; I with diaeresis +dkDiaeresis.item("o") := "ö" ; o with diaeresis +dkDiaeresis.item("O") := "Ö" ; O with diaeresis +dkDiaeresis.item("s") := "ß" ; small sharp s (Eszett) +dkDiaeresis.item("S") := "ẞ" ; capital sharp S (capital Eszett) +dkDiaeresis.item("t") := "ẗ" ; t with diaeresis +dkDiaeresis.item("u") := "ü" ; u with diaeresis +dkDiaeresis.item("U") := "Ü" ; U with diaeresis +dkDiaeresis.item("w") := "ẅ" ; w with diaeresis +dkDiaeresis.item("W") := "Ẅ" ; W with diaeresis +dkDiaeresis.item("x") := "ẍ" ; x with diaeresis +dkDiaeresis.item("X") := "Ẍ" ; X with diaeresis +dkDiaeresis.item("y") := "ÿ" ; y with diaeresis +dkDiaeresis.item("Y") := "Ÿ" ; Y with diaeresis +dkDiaeresis.item("""") := "¨" ; diaeresis +dkDiaeresis.item(" ") := "¨" ; diaeresis + + +; Dead Key : Grave Accent + +dkGraveAccent := ComObjCreate("Scripting.Dictionary") +dkGraveAccent.item("a") := "à" ; a with grave +dkGraveAccent.item("A") := "À" ; A with grave +dkGraveAccent.item("e") := "è" ; e with grave +dkGraveAccent.item("E") := "È" ; E with grave +dkGraveAccent.item("i") := "ì" ; i with grave +dkGraveAccent.item("I") := "Ì" ; I with grave +dkGraveAccent.item("n") := "ǹ" ; n with grave +dkGraveAccent.item("N") := "Ǹ" ; N with grave +dkGraveAccent.item("o") := "ò" ; o with grave +dkGraveAccent.item("O") := "Ò" ; O with grave +dkGraveAccent.item("u") := "ù" ; u with grave +dkGraveAccent.item("U") := "Ù" ; U with grave +dkGraveAccent.item("w") := "ẁ" ; w with grave +dkGraveAccent.item("W") := "Ẁ" ; W with grave +dkGraveAccent.item("y") := "ỳ" ; y with grave +dkGraveAccent.item("Y") := "Ỳ" ; Y with grave +dkGraveAccent.item("ä") := "₳" ; Argentine austral +dkGraveAccent.item("Ä") := "₳" ; Argentine austral +dkGraveAccent.item("b") := "₿" ; bitcoin +dkGraveAccent.item("B") := "₿" ; bitcoin +dkGraveAccent.item("c") := "₡" ; Costa Rican colón +dkGraveAccent.item("C") := "₵" ; Ghanaian cedi +dkGraveAccent.item("ç") := "₢" ; Brazilian cruzeiro +dkGraveAccent.item("Ç") := "₢" ; Brazilian cruzeiro +dkGraveAccent.item("d") := "₫" ; Vietnamese dong +dkGraveAccent.item("D") := "₯" ; Greek drachma +dkGraveAccent.item("f") := "₣" ; French franc +dkGraveAccent.item("F") := "₣" ; French franc +dkGraveAccent.item("g") := "₲" ; Paraguayan guaraní +dkGraveAccent.item("G") := "₲" ; Paraguayan guaraní +dkGraveAccent.item("h") := "₴" ; Ukrainian hryvnia +dkGraveAccent.item("H") := "₴" ; Ukrainian hryvnia +dkGraveAccent.item("k") := "₭" ; Laotian kip +dkGraveAccent.item("K") := "₭" ; Laotian kip +dkGraveAccent.item("l") := "₺" ; Turkish lira +dkGraveAccent.item("L") := "₾" ; Georgian lari +dkGraveAccent.item("ø") := "₤" ; lira +dkGraveAccent.item("Ø") := "₤" ; lira +dkGraveAccent.item("m") := "₼" ; Azerbaijani manat +dkGraveAccent.item("M") := "₥" ; mill sign +dkGraveAccent.item("ñ") := "₦" ; Nigerian naira +dkGraveAccent.item("Ñ") := "₦" ; Nigerian naira +dkGraveAccent.item("p") := "₱" ; Philippine peso +dkGraveAccent.item("P") := "₱" ; Philippine peso +dkGraveAccent.item("r") := "₹" ; Indian rupee +dkGraveAccent.item("R") := "₽" ; Russian ruble +dkGraveAccent.item("s") := "₪" ; Israeli new shekel +dkGraveAccent.item("S") := "₪" ; Israeli new shekel +dkGraveAccent.item("t") := "₮" ; Mongolian tögrög (tugrik) +dkGraveAccent.item("T") := "₸" ; Kazakh tenge +dkGraveAccent.item("å") := "₩" ; South Korean won +dkGraveAccent.item("Å") := "₩" ; South Korean won +dkGraveAccent.item("1") := " " ; en space +dkGraveAccent.item("2") := " " ; em space +dkGraveAccent.item("3") := " " ; three-per-em space +dkGraveAccent.item("4") := " " ; four-per-em space +dkGraveAccent.item("5") := " " ; punctuation space +dkGraveAccent.item("6") := " " ; six-per-em space +dkGraveAccent.item("7") := " " ; thin space +dkGraveAccent.item("8") := " " ; hair space +dkGraveAccent.item("9") := " " ; figure space +dkGraveAccent.item("0") := "​" ; zero-width space +dkGraveAccent.item("-") := " " ; non-breaking space +dkGraveAccent.item("!") := " " ; en quad +dkGraveAccent.item("@") := " " ; em quad +dkGraveAccent.item("``") := "``" ; grave accent +dkGraveAccent.item(" ") := "``" ; grave accent + + +; Dead Key : Tilde + +dkTilde := ComObjCreate("Scripting.Dictionary") +dkTilde.item("a") := "ã" ; a with tilde +dkTilde.item("A") := "Ã" ; A with tilde +dkTilde.item("e") := "ẽ" ; e with tilde +dkTilde.item("E") := "Ẽ" ; E with tilde +dkTilde.item("i") := "ĩ" ; i with tilde +dkTilde.item("I") := "Ĩ" ; I with tilde +dkTilde.item("n") := "ñ" ; n with tilde +dkTilde.item("N") := "Ñ" ; N with tilde +dkTilde.item("o") := "õ" ; o with tilde +dkTilde.item("O") := "Õ" ; O with tilde +dkTilde.item("u") := "ũ" ; u with tilde +dkTilde.item("U") := "Ũ" ; U with tilde +dkTilde.item("v") := "ṽ" ; v with tilde +dkTilde.item("V") := "Ṽ" ; V with tilde +dkTilde.item("y") := "ỹ" ; y with tilde +dkTilde.item("Y") := "Ỹ" ; Y with tilde +dkTilde.item("~") := "~" ; tilde +dkTilde.item(" ") := "~" ; tilde + + +; Dead Key : Not Sign + +dkNotSign := ComObjCreate("Scripting.Dictionary") +dkNotSign.item("a") := "ª" ; feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("A") := "ª" ; feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("b") := "☐" ; ballot box +dkNotSign.item("B") := "☒" ; ballot box with x +dkNotSign.item("c") := "©" ; copyright sign +dkNotSign.item("C") := "¤" ; currency sign +dkNotSign.item("d") := "†" ; dagger +dkNotSign.item("D") := "‡" ; double dagger +dkNotSign.item("e") := "…" ; ellipsis +dkNotSign.item("E") := "℮" ; estimated symbol +dkNotSign.item("f") := "♀" ; Venus symbol (female) +dkNotSign.item("F") := "♀" ; Venus symbol (female) +dkNotSign.item("h") := "♡" ; white heart suit +dkNotSign.item("H") := "♥" ; black heart suit +dkNotSign.item("l") := "ℓ" ; script small l +dkNotSign.item("L") := "ℓ" ; script small l +dkNotSign.item("m") := "♂" ; Mars symbol (male) +dkNotSign.item("M") := "♂" ; Mars symbol (male) +dkNotSign.item("n") := "¬" ; not sign +dkNotSign.item("N") := "¬" ; not sign +dkNotSign.item("o") := "º" ; masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("O") := "º" ; masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("p") := "¶" ; pilcrow sign +dkNotSign.item("P") := "℗" ; sound recording copyright +dkNotSign.item("r") := "®" ; registered sign +dkNotSign.item("R") := "®" ; registered sign +dkNotSign.item("s") := "§" ; section sign +dkNotSign.item("S") := "℠" ; service mark +dkNotSign.item("t") := "™" ; trademark symbol +dkNotSign.item("T") := "™" ; trademark symbol +dkNotSign.item("v") := "✓" ; check mark +dkNotSign.item("V") := "✔" ; heavy check mark +dkNotSign.item("w") := "☑" ; ballot box with check +dkNotSign.item("W") := "☙" ; reversed rotated floral heart bullet +dkNotSign.item("x") := "✗" ; ballot x +dkNotSign.item("X") := "✘" ; heavy ballot x +dkNotSign.item("y") := "☺" ; white smiling face +dkNotSign.item("Y") := "☻" ; black smiling face +dkNotSign.item("1") := "←" ; leftwards arrow +dkNotSign.item("2") := "↓" ; downwards arrow +dkNotSign.item("3") := "↑" ; upwards arrow +dkNotSign.item("4") := "→" ; rightwards arrow +dkNotSign.item("5") := "↖" ; north west arrow +dkNotSign.item("6") := "↙" ; south west arrow +dkNotSign.item("7") := "↗" ; north east arrow +dkNotSign.item("8") := "↘" ; south east arrow +dkNotSign.item("9") := "↕" ; up down arrow +dkNotSign.item("0") := "↨" ; up down arrow with base +dkNotSign.item("=") := "↔" ; left right arrow +dkNotSign.item("!") := "⇐" ; leftwards double arrow +dkNotSign.item("@") := "⇓" ; downwards double arrow +dkNotSign.item("#") := "⇑" ; upwards double arrow +dkNotSign.item("$") := "⇒" ; rightwards double arrow +dkNotSign.item("%") := "⇖" ; north west double arrow +dkNotSign.item("^") := "⇙" ; south west double arrow +dkNotSign.item("&") := "⇗" ; north east double arrow +dkNotSign.item("*") := "⇘" ; south east double arrow +dkNotSign.item("(") := "⇕" ; up down double arrow +dkNotSign.item(")") := "↲" ; downwards arrow with tip leftwards +dkNotSign.item("+") := "⇔" ; left right double arrow +dkNotSign.item(".") := "•" ; bullet +dkNotSign.item("-") := "⁃" ; hyphen bullet +dkNotSign.item("/") := "‼" ; double exclamation mark +dkNotSign.item("?") := "‽" ; interrobang +dkNotSign.item("¿") := "⸘" ; inverted interrobang +dkNotSign.item("¶") := "⸮" ; reversed question mark +dkNotSign.item("\") := "⁞" ; vertical four dots +dkNotSign.item("|") := "⁞" ; vertical four dots +dkNotSign.item(" ") := "¬" ; not sign + + +; Dead Key : Broken Bar + +dkBrokenBar := ComObjCreate("Scripting.Dictionary") +dkBrokenBar.item("a") := "ɑ" ; latin small letter alpha +dkBrokenBar.item("A") := "Ɑ" ; latin capital letter alpha +dkBrokenBar.item("ä") := "ɒ" ; latin small letter turned alpha +dkBrokenBar.item("Ä") := "Ɒ" ; latin capital letter turned alpha +dkBrokenBar.item("c") := "ƈ" ; c with hook +dkBrokenBar.item("C") := "Ƈ" ; C with hook +dkBrokenBar.item("e") := "ɛ" ; small open e (latin small epsilon) +dkBrokenBar.item("E") := "Ɛ" ; capital open E (latin capital epsilon) +dkBrokenBar.item("f") := "❦" ; floral heart +dkBrokenBar.item("F") := "❧" ; rotated floral heart bullet +dkBrokenBar.item("g") := "ɠ" ; g with hook +dkBrokenBar.item("G") := "Ɠ" ; G with hook +dkBrokenBar.item("h") := "ꜧ" ; small letter heng +dkBrokenBar.item("H") := "Ꜧ" ; capital letter heng +dkBrokenBar.item("ù") := "ɧ" ; small letter heng with hook +dkBrokenBar.item("k") := "ḱ" ; k with acute +dkBrokenBar.item("K") := "Ḱ" ; K with acute +dkBrokenBar.item("n") := "ɲ" ; n with left hook +dkBrokenBar.item("N") := "Ɲ" ; N with left hook +dkBrokenBar.item("o") := "ơ" ; o with horn +dkBrokenBar.item("O") := "Ơ" ; O with horn +dkBrokenBar.item("p") := "ṕ" ; p with acute +dkBrokenBar.item("P") := "Ṕ" ; P with acute +dkBrokenBar.item("s") := "ʃ" ; small letter esh +dkBrokenBar.item("S") := "Ʃ" ; capital letter esh +dkBrokenBar.item("ß") := "ſ" ; small long s +dkBrokenBar.item("u") := "ư" ; u with horn +dkBrokenBar.item("U") := "Ư" ; U with horn +dkBrokenBar.item("v") := "ʌ" ; latin small letter turned v +dkBrokenBar.item("V") := "Ʌ" ; latin capital letter turned V +dkBrokenBar.item("w") := "ⱳ" ; w with hook +dkBrokenBar.item("W") := "Ⱳ" ; W with hook +dkBrokenBar.item("y") := "ƴ" ; y with hook +dkBrokenBar.item("Y") := "Ƴ" ; Y with hook +dkBrokenBar.item("z") := "ȥ" ; z with hook +dkBrokenBar.item("Z") := "Ȥ" ; Z with hook +dkBrokenBar.item("1") := "№" ; numero sign +dkBrokenBar.item("2") := "½" ; vulgar fraction 1/2 +dkBrokenBar.item("3") := "⅓" ; vulgar fraction 1/3 +dkBrokenBar.item("4") := "¼" ; vulgar fraction 1/4 +dkBrokenBar.item("5") := "⅔" ; vulgar fraction 2/3 +dkBrokenBar.item("6") := "¾" ; vulgar fraction 3/4 +dkBrokenBar.item("7") := "⅛" ; vulgar fraction 1/8 +dkBrokenBar.item("8") := "⅜" ; vulgar fraction 3/8 +dkBrokenBar.item("9") := "⅝" ; vulgar fraction 5/8 +dkBrokenBar.item("0") := "⅞" ; vulgar fraction 7/8 +dkBrokenBar.item("\") := "¦" ; broken bar +dkBrokenBar.item("|") := "¦" ; broken bar +dkBrokenBar.item(" ") := "¦" ; broken bar + + +; Dead Key : Greek Alphabet + +dkGreekAlphabet := ComObjCreate("Scripting.Dictionary") +dkGreekAlphabet.item("a") := "α" ; small alpha +dkGreekAlphabet.item("A") := "Α" ; capital alpha +dkGreekAlphabet.item("b") := "β" ; small beta +dkGreekAlphabet.item("B") := "Β" ; capital beta +dkGreekAlphabet.item("v") := "β" ; small beta +dkGreekAlphabet.item("V") := "Β" ; capital beta +dkGreekAlphabet.item("g") := "γ" ; small gamma +dkGreekAlphabet.item("G") := "Γ" ; capital gamma +dkGreekAlphabet.item("d") := "δ" ; small delta +dkGreekAlphabet.item("D") := "Δ" ; capital delta +dkGreekAlphabet.item("e") := "ε" ; small epsilon +dkGreekAlphabet.item("E") := "Ε" ; capital epsilon +dkGreekAlphabet.item("z") := "ζ" ; small zeta +dkGreekAlphabet.item("Z") := "Ζ" ; capital zeta +dkGreekAlphabet.item("h") := "η" ; small eta +dkGreekAlphabet.item("H") := "Η" ; capital eta +dkGreekAlphabet.item("j") := "θ" ; small theta +dkGreekAlphabet.item("J") := "Θ" ; capital theta +dkGreekAlphabet.item("i") := "ι" ; small iota +dkGreekAlphabet.item("I") := "Ι" ; capital iota +dkGreekAlphabet.item("k") := "κ" ; small kappa +dkGreekAlphabet.item("K") := "Κ" ; capital kappa +dkGreekAlphabet.item("l") := "λ" ; small lambda +dkGreekAlphabet.item("L") := "Λ" ; capital lambda +dkGreekAlphabet.item("m") := "μ" ; small mu +dkGreekAlphabet.item("M") := "Μ" ; capital mu +dkGreekAlphabet.item("n") := "ν" ; small nu +dkGreekAlphabet.item("N") := "Ν" ; capital nu +dkGreekAlphabet.item("x") := "ξ" ; small xi +dkGreekAlphabet.item("X") := "Ξ" ; capital xi +dkGreekAlphabet.item("o") := "ο" ; small omikron +dkGreekAlphabet.item("O") := "Ο" ; capital omikron +dkGreekAlphabet.item("p") := "π" ; small pi +dkGreekAlphabet.item("P") := "Π" ; capital pi +dkGreekAlphabet.item("r") := "ρ" ; small rho +dkGreekAlphabet.item("R") := "Ρ" ; capital rho +dkGreekAlphabet.item("s") := "σ" ; small sigma +dkGreekAlphabet.item("S") := "Σ" ; capital sigma +dkGreekAlphabet.item(",") := "ς" ; small sigma, in word-final position +dkGreekAlphabet.item("ß") := "ς" ; small sigma, in word-final position +dkGreekAlphabet.item("t") := "τ" ; small tau +dkGreekAlphabet.item("T") := "Τ" ; capital tau +dkGreekAlphabet.item("u") := "υ" ; small upsilon +dkGreekAlphabet.item("U") := "Υ" ; capital upsilon +dkGreekAlphabet.item("y") := "υ" ; small upsilon +dkGreekAlphabet.item("Y") := "Υ" ; capital upsilon +dkGreekAlphabet.item("f") := "φ" ; small phi +dkGreekAlphabet.item("F") := "Φ" ; capital phi +dkGreekAlphabet.item("c") := "χ" ; small chi +dkGreekAlphabet.item("C") := "Χ" ; capital chi +dkGreekAlphabet.item("w") := "ψ" ; small psi +dkGreekAlphabet.item("W") := "Ψ" ; capital psi +dkGreekAlphabet.item("q") := "ω" ; small omega +dkGreekAlphabet.item("Q") := "Ω" ; capital omega +dkGreekAlphabet.item("1") := "¹" ; superscript 1 +dkGreekAlphabet.item("2") := "²" ; superscript 2 +dkGreekAlphabet.item("3") := "³" ; superscript 3 +dkGreekAlphabet.item("4") := "⁴" ; superscript 4 +dkGreekAlphabet.item("5") := "⁵" ; superscript 5 +dkGreekAlphabet.item("6") := "⁶" ; superscript 6 +dkGreekAlphabet.item("7") := "⁷" ; superscript 7 +dkGreekAlphabet.item("8") := "⁸" ; superscript 8 +dkGreekAlphabet.item("9") := "⁹" ; superscript 9 +dkGreekAlphabet.item("0") := "⁰" ; superscript 0 +dkGreekAlphabet.item("-") := "⁻" ; superscript - +dkGreekAlphabet.item("=") := "⁼" ; superscript = +dkGreekAlphabet.item("+") := "⁺" ; superscript + +dkGreekAlphabet.item("[") := "⁽" ; superscript ( +dkGreekAlphabet.item("]") := "⁾" ; superscript ) +dkGreekAlphabet.item("!") := "₁" ; subscript 1 +dkGreekAlphabet.item("@") := "₂" ; subscript 2 +dkGreekAlphabet.item("#") := "₃" ; subscript 3 +dkGreekAlphabet.item("$") := "₄" ; subscript 4 +dkGreekAlphabet.item("%") := "₅" ; subscript 5 +dkGreekAlphabet.item("^") := "₆" ; subscript 6 +dkGreekAlphabet.item("&") := "₇" ; subscript 7 +dkGreekAlphabet.item("*") := "₈" ; subscript 8 +dkGreekAlphabet.item("(") := "₉" ; subscript 9 +dkGreekAlphabet.item(")") := "₀" ; subscript 0 +dkGreekAlphabet.item(";") := "₋" ; subscript - +dkGreekAlphabet.item("'") := "₌" ; subscript = +dkGreekAlphabet.item("""") := "₊" ; subscript + +dkGreekAlphabet.item("{") := "₍" ; subscript ( +dkGreekAlphabet.item("}") := "₎" ; subscript ) +dkGreekAlphabet.item(".") := "µ" ; micro sign +dkGreekAlphabet.item(" ") := "μ" ; small mu + + +; Dead Key : Math Symbols + +dkMathSymbols := ComObjCreate("Scripting.Dictionary") +dkMathSymbols.item("a") := "∀" ; for all +dkMathSymbols.item("A") := "∀" ; for all +dkMathSymbols.item("b") := "⊆" ; subset of or equal to +dkMathSymbols.item("B") := "⊇" ; superset of or equal to +dkMathSymbols.item("c") := "∝" ; proportional to +dkMathSymbols.item("C") := "ℂ" ; complex numbers +dkMathSymbols.item("d") := "∆" ; increment operator +dkMathSymbols.item("D") := "∇" ; nable/del operator +dkMathSymbols.item("e") := "∃" ; there exists +dkMathSymbols.item("E") := "∄" ; there does not exist +dkMathSymbols.item("f") := "ƒ" ; f with hook +dkMathSymbols.item("F") := "∎" ; end of proof +dkMathSymbols.item("g") := "⊂" ; subset of +dkMathSymbols.item("G") := "⊄" ; not a subset of +dkMathSymbols.item("h") := "⊃" ; superset of +dkMathSymbols.item("H") := "⊅" ; not a superset of +dkMathSymbols.item("i") := "∞" ; infinity symbol +dkMathSymbols.item("I") := "∞" ; infinity symbol +dkMathSymbols.item("k") := "∋" ; contains as member +dkMathSymbols.item("K") := "∌" ; does not contain as member +dkMathSymbols.item("l") := "∥" ; parallel to +dkMathSymbols.item("L") := "∦" ; not parallel to +dkMathSymbols.item("m") := "∈" ; element of +dkMathSymbols.item("M") := "∉" ; not an element of +dkMathSymbols.item("n") := "ⁿ" ; superscript n +dkMathSymbols.item("N") := "ℕ" ; natural numbers +dkMathSymbols.item("o") := "∘" ; ring operator +dkMathSymbols.item("O") := "∅" ; empty set +dkMathSymbols.item("p") := "∂" ; partial differential +dkMathSymbols.item("P") := "ℙ" ; prime numbers +dkMathSymbols.item("q") := "ℚ" ; rational numbers +dkMathSymbols.item("Q") := "ℚ" ; rational numbers +dkMathSymbols.item("r") := "√" ; square root +dkMathSymbols.item("R") := "ℝ" ; real numbers +dkMathSymbols.item("s") := "∩" ; set intersection +dkMathSymbols.item("S") := "∫" ; integral symbol +dkMathSymbols.item("u") := "∪" ; set union +dkMathSymbols.item("U") := "∖" ; set minus +dkMathSymbols.item("w") := "℘" ; Weierstrass elliptic function +dkMathSymbols.item("W") := "℘" ; Weierstrass elliptic function +dkMathSymbols.item("z") := "↯" ; downwards zigzag arrow +dkMathSymbols.item("Z") := "ℤ" ; whole numbers +dkMathSymbols.item("1") := "≠" ; not equal to +dkMathSymbols.item("!") := "≠" ; not equal to +dkMathSymbols.item("2") := "√" ; square root +dkMathSymbols.item("3") := "∛" ; cube root +dkMathSymbols.item("4") := "∜" ; fourth root +dkMathSymbols.item("5") := "‰" ; per mille sign +dkMathSymbols.item("%") := "‱" ; per ten thousand sign +dkMathSymbols.item("6") := "∠" ; angle symbol +dkMathSymbols.item("7") := "∧" ; logical and +dkMathSymbols.item("&") := "∧" ; logical and +dkMathSymbols.item("8") := "⊗" ; tensor product +dkMathSymbols.item("*") := "⊗" ; tensor product +dkMathSymbols.item("9") := "∟" ; right angle +dkMathSymbols.item("0") := "∡" ; measured angle +dkMathSymbols.item("``") := "≈" ; almost equal to +dkMathSymbols.item("~") := "≈" ; almost equal to +dkMathSymbols.item(",") := "≤" ; less-than or equal to +dkMathSymbols.item("<") := "≤" ; less-than or equal to +dkMathSymbols.item(".") := "≥" ; greater-than or equal to +dkMathSymbols.item(">") := "≥" ; greater-than or equal to +dkMathSymbols.item("-") := "±" ; plus-minus sign +dkMathSymbols.item("_") := "⊖" ; circled minus +dkMathSymbols.item("=") := "≝" ; equal to by definition +dkMathSymbols.item("+") := "⊕" ; exclusive or +dkMathSymbols.item(";") := "∵" ; because sign +dkMathSymbols.item(":") := "∴" ; therefore sign +dkMathSymbols.item("'") := "′" ; prime +dkMathSymbols.item("""") := "″" ; double prime +dkMathSymbols.item("/") := "‴" ; triple prime +dkMathSymbols.item("?") := "⁗" ; quadruple prime +dkMathSymbols.item("\") := "∨" ; logical or +dkMathSymbols.item("|") := "∨" ; logical or +dkMathSymbols.item(" ") := "√" ; square root + + +; Configuration : Right Alt on US QWERTY + +>!a:: + if GetKeyState("CapsLock", "T") + Send Ä ; A with diaeresis + else + Send ä ; a with diaeresis +return +>!+a:: + if GetKeyState("CapsLock", "T") + Send ä ; a with diaeresis + else + Send Ä ; A with diaeresis +return + +>!z:: + if GetKeyState("CapsLock", "T") + Send À ; A with grave + else + Send à ; a with grave +return +>!+z:: + if GetKeyState("CapsLock", "T") + Send à ; a with grave + else + Send À ; A with grave +return + +>!x:: + if GetKeyState("CapsLock", "T") + Send Á ; A with acute + else + Send á ; a with acute +return +>!+x:: + if GetKeyState("CapsLock", "T") + Send á ; a with acute + else + Send Á ; A with acute +return + +>!q:: + if GetKeyState("CapsLock", "T") + Send Æ ; letter AE + else + Send æ ; letter ae +return +>!+q:: + if GetKeyState("CapsLock", "T") + Send æ ; letter ae + else + Send Æ ; letter AE +return + +>!w:: + if GetKeyState("CapsLock", "T") + Send Å ; A with ring above + else + Send å ; a with ring above +return +>!+w:: + if GetKeyState("CapsLock", "T") + Send å ; a with ring above + else + Send Å ; A with ring above +return + +>!c:: + if GetKeyState("CapsLock", "T") + Send Ç ; C with cedilla + else + Send ç ; c with cedilla +return +>!+c:: + if GetKeyState("CapsLock", "T") + Send ç ; c with cedilla + else + Send Ç ; C with cedilla +return + +>!d:: + if GetKeyState("CapsLock", "T") + Send Ð ; capital letter eth + else + Send ð ; small letter eth +return +>!+d:: + if GetKeyState("CapsLock", "T") + Send ð ; small letter eth + else + Send Ð ; capital letter eth +return + +>!e:: + if GetKeyState("CapsLock", "T") + Send Ë ; E with diaeresis + else + Send ë ; e with diaeresis +return +>!+e:: + if GetKeyState("CapsLock", "T") + Send ë ; e with diaeresis + else + Send Ë ; E with diaeresis +return + +>!f:: + if GetKeyState("CapsLock", "T") + Send È ; E with grave + else + Send è ; e with grave +return +>!+f:: + if GetKeyState("CapsLock", "T") + Send è ; e with grave + else + Send È ; E with grave +return + +>!g:: + if GetKeyState("CapsLock", "T") + Send É ; E with acute + else + Send é ; e with acute +return +>!+g:: + if GetKeyState("CapsLock", "T") + Send é ; e with acute + else + Send É ; E with acute +return + +>!i:: + if GetKeyState("CapsLock", "T") + Send Ï ; I with diaeresis + else + Send ï ; i with diaeresis +return +>!+i:: + if GetKeyState("CapsLock", "T") + Send ï ; i with diaeresis + else + Send Ï ; I with diaeresis +return + +>!v:: + if GetKeyState("CapsLock", "T") + Send Ì ; I with grave + else + Send ì ; i with grave +return +>!+v:: + if GetKeyState("CapsLock", "T") + Send ì ; i with grave + else + Send Ì ; I with grave +return + +>!b:: + if GetKeyState("CapsLock", "T") + Send Í ; I with acute + else + Send í ; i with acute +return +>!+b:: + if GetKeyState("CapsLock", "T") + Send í ; i with acute + else + Send Í ; I with acute +return + +>!o:: + if GetKeyState("CapsLock", "T") + Send Ö ; O with diaeresis + else + Send ö ; o with diaeresis +return +>!+o:: + if GetKeyState("CapsLock", "T") + Send ö ; o with diaeresis + else + Send Ö ; O with diaeresis +return + +>!,:: + if GetKeyState("CapsLock", "T") + Send Ò ; O with grave + else + Send ò ; o with grave +return +>!<:: + if GetKeyState("CapsLock", "T") + Send ò ; o with grave + else + Send Ò ; O with grave +return + +>!.:: + if GetKeyState("CapsLock", "T") + Send Ó ; O with acute + else + Send ó ; o with acute +return +>!>:: + if GetKeyState("CapsLock", "T") + Send ó ; o with acute + else + Send Ó ; O with acute +return + +>!k:: + if GetKeyState("CapsLock", "T") + Send Œ ; ligature OE + else + Send œ ; ligature oe +return +>!+k:: + if GetKeyState("CapsLock", "T") + Send œ ; ligature oe + else + Send Œ ; ligature OE +return + +>!l:: + if GetKeyState("CapsLock", "T") + Send Ø ; O with stroke + else + Send ø ; o with stroke +return +>!+l:: + if GetKeyState("CapsLock", "T") + Send ø ; o with stroke + else + Send Ø ; O with stroke +return + +>!n:: + if GetKeyState("CapsLock", "T") + Send Ñ ; N with tilde + else + Send ñ ; n with tilde +return +>!+n:: + if GetKeyState("CapsLock", "T") + Send ñ ; n with tilde + else + Send Ñ ; N with tilde +return + +>!t:: + if GetKeyState("CapsLock", "T") + Send Þ ; capital letter thorn + else + Send þ ; small letter thorn +return +>!+t:: + if GetKeyState("CapsLock", "T") + Send þ ; small letter thorn + else + Send Þ ; capital letter thorn +return + +>!u:: + if GetKeyState("CapsLock", "T") + Send Ü ; U with diaeresis + else + Send ü ; u with diaeresis +return +>!+u:: + if GetKeyState("CapsLock", "T") + Send ü ; u with diaeresis + else + Send Ü ; U with diaeresis +return + +>!h:: + if GetKeyState("CapsLock", "T") + Send Ù ; U with grave + else + Send ù ; u with grave +return +>!+h:: + if GetKeyState("CapsLock", "T") + Send ù ; u with grave + else + Send Ù ; U with grave +return + +>!j:: + if GetKeyState("CapsLock", "T") + Send Ú ; U with acute + else + Send ú ; u with acute +return +>!+j:: + if GetKeyState("CapsLock", "T") + Send ú ; u with acute + else + Send Ú ; U with acute +return + +>!y:: + if GetKeyState("CapsLock", "T") + Send Ÿ ; Y with diaeresis + else + Send ÿ ; y with diaeresis +return +>!+y:: + if GetKeyState("CapsLock", "T") + Send ÿ ; y with diaeresis + else + Send Ÿ ; Y with diaeresis +return + +>!r:: + if GetKeyState("CapsLock", "T") + Send Ý ; Y with acute + else + Send ý ; y with acute +return +>!+r:: + if GetKeyState("CapsLock", "T") + Send ý ; y with acute + else + Send Ý ; Y with acute +return + +>!p::Send † ; dagger +>!+p::Send ‡ ; double dagger + +>!s::Send ß ; small sharp s (Eszett) +>!+s::Send § ; section sign + +>!/::Send ¿ ; inverted question mark +>!?::Send ¶ ; pilcrow sign + +>!1::Send ¡ ; inverted exclamation mark +>!+1::Send ¹ ; superscript 1 + +>!2::Send © ; copyright sign +>!+2::Send ² ; superscript 2 + +>!3::Send ± ; plus-minus sign +>!+3::Send ³ ; superscript 3 + +>!4::Send £ ; pound sign +>!+4::Send ¥ ; yen sign + +>!5::Send € ; euro sign +>!+5::Send ¢ ; cent sign (dollar) + +>!8::Send „ ; double low-9 quotation mark +>!+8::Send ‚ ; single low-9 quotation mark + +>!9::Send “ ; left double quotation mark +>!+9::Send ‘ ; left single quotation mark + +>!0::Send ” ; right double quotation mark +>!+0::Send ’ ; right single quotation mark + +>!=::Send × ; multiplication sign +>!+=::Send ÷ ; division sign + +>![::Send « ; left-pointing double angle quotation mark +>!{::Send ‹ ; left-pointing single angle quotation mark + +>!]::Send » ; right-pointing double angle quotation mark +>!}::Send › ; right-pointing single angle quotation mark + +>!;::Send ° ; degree sign +>!+;::Send · ; middle dot + +>!6:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCircumflex.item(key) +return +>!+6:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCaron.item(key) +return + +>!7:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkRingDotAbove.item(key) +return +>!+7:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkMacronStroke.item(key) +return + +>!-:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCedillaOgonek.item(key) +return +>!_:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkBreveSpecial.item(key) +return + +>!':: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkAcuteAccent.item(key) +return +>!":: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkDiaeresis.item(key) +return + +>!`:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkGraveAccent.item(key) +return +>!~:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkTilde.item(key) +return + +>!\:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkNotSign.item(key) +return +>!|:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkBrokenBar.item(key) +return + +>!m:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkGreekAlphabet.item(key) +return +>!+m:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkMathSymbols.item(key) +return + +>!space::Send   ; non-breaking space +>!+space::Send   ; non-breaking space diff --git a/UltimateKEYS - 2020-04-13.klc b/UltimateKEYS - 2020-04-13.klc new file mode 100644 index 0000000000000000000000000000000000000000..6b077be0769e5bb1bcdb310cafbcfb7f3ffaf51f GIT binary patch literal 73738 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 HU%danDd8s? literal 0 HcmV?d00001 diff --git a/UltimateKEYS SW - 2020-04-13.ahk b/UltimateKEYS SW - 2020-04-13.ahk new file mode 100644 index 0000000..e939cf5 --- /dev/null +++ b/UltimateKEYS SW - 2020-04-13.ahk @@ -0,0 +1,1293 @@ +; UltimateKEYS SW - 2020-04-13.ahk + +; Created by : Pieter Degroote + +; License : GNU General Public License Version 3 + +; Website : https://github.com/pieter-degroote/UltimateKEYS + + +; Requirements : + +; Keyboard layout (on Windows OS) : US QWERTY + +; AutoHotkey v1.1 (https://www.autohotkey.com/) + + + +; Dead Key : Circumflex Accent + +dkCircumflex := ComObjCreate("Scripting.Dictionary") +dkCircumflex.item("a") := "â" ; a with circumflex +dkCircumflex.item("A") := "Â" ; A with circumflex +dkCircumflex.item("c") := "ĉ" ; c with circumflex +dkCircumflex.item("C") := "Ĉ" ; C with circumflex +dkCircumflex.item("e") := "ê" ; e with circumflex +dkCircumflex.item("E") := "Ê" ; E with circumflex +dkCircumflex.item("g") := "ĝ" ; g with circumflex +dkCircumflex.item("G") := "Ĝ" ; G with circumflex +dkCircumflex.item("h") := "ĥ" ; h with circumflex +dkCircumflex.item("H") := "Ĥ" ; H with circumflex +dkCircumflex.item("i") := "î" ; i with circumflex +dkCircumflex.item("I") := "Î" ; I with circumflex +dkCircumflex.item("j") := "ĵ" ; j with circumflex +dkCircumflex.item("J") := "Ĵ" ; J with circumflex +dkCircumflex.item("o") := "ô" ; o with circumflex +dkCircumflex.item("O") := "Ô" ; O with circumflex +dkCircumflex.item("s") := "ŝ" ; s with circumflex +dkCircumflex.item("S") := "Ŝ" ; S with circumflex +dkCircumflex.item("u") := "û" ; u with circumflex +dkCircumflex.item("U") := "Û" ; U with circumflex +dkCircumflex.item("w") := "ŵ" ; w with circumflex +dkCircumflex.item("W") := "Ŵ" ; W with circumflex +dkCircumflex.item("y") := "ŷ" ; y with circumflex +dkCircumflex.item("Y") := "Ŷ" ; Y with circumflex +dkCircumflex.item("z") := "ẑ" ; z with circumflex +dkCircumflex.item("Z") := "Ẑ" ; Z with circumflex +dkCircumflex.item("n") := "₦" ; Nigerian naira +dkCircumflex.item("N") := "₦" ; Nigerian naira +dkCircumflex.item("^") := "{^}" ; circumflex accent +dkCircumflex.item(" ") := "{^}" ; circumflex accent + + +; Dead Key : Caron + +dkCaron := ComObjCreate("Scripting.Dictionary") +dkCaron.item("a") := "ǎ" ; a with caron +dkCaron.item("A") := "Ǎ" ; A with caron +dkCaron.item("c") := "č" ; c with caron +dkCaron.item("C") := "Č" ; C with caron +dkCaron.item("d") := "ď" ; d with caron +dkCaron.item("D") := "Ď" ; D with caron +dkCaron.item("e") := "ě" ; e with caron +dkCaron.item("E") := "Ě" ; E with caron +dkCaron.item("g") := "ǧ" ; g with caron +dkCaron.item("G") := "Ǧ" ; G with caron +dkCaron.item("h") := "ȟ" ; h with caron +dkCaron.item("H") := "Ȟ" ; H with caron +dkCaron.item("i") := "ǐ" ; i with caron +dkCaron.item("I") := "Ǐ" ; I with caron +dkCaron.item("j") := "ǰ" ; j with caron +dkCaron.item("k") := "ǩ" ; k with caron +dkCaron.item("K") := "Ǩ" ; K with caron +dkCaron.item("l") := "ľ" ; l with caron +dkCaron.item("L") := "Ľ" ; L with caron +dkCaron.item("n") := "ň" ; n with caron +dkCaron.item("N") := "Ň" ; N with caron +dkCaron.item("o") := "ǒ" ; o with caron +dkCaron.item("O") := "Ǒ" ; O with caron +dkCaron.item("r") := "ř" ; r with caron +dkCaron.item("R") := "Ř" ; R with caron +dkCaron.item("s") := "š" ; s with caron +dkCaron.item("S") := "Š" ; S with caron +dkCaron.item("t") := "ť" ; t with caron +dkCaron.item("T") := "Ť" ; T with caron +dkCaron.item("u") := "ǔ" ; u with caron +dkCaron.item("U") := "Ǔ" ; U with caron +dkCaron.item("ü") := "ǚ" ; u with diaeresis and caron +dkCaron.item("Ü") := "Ǚ" ; U with diaeresis and caron +dkCaron.item("z") := "ž" ; z with caron +dkCaron.item("Z") := "Ž" ; Z with caron +dkCaron.item("#") := "ǯ" ; small letter ezh with caron +dkCaron.item("3") := "Ǯ" ; capital letter ezh with caron +dkCaron.item(" ") := "ˇ" ; caron + + +; Dead Key : Ring/Dot Above + +dkRingDotAbove := ComObjCreate("Scripting.Dictionary") +dkRingDotAbove.item("a") := "ȧ" ; a with dot above +dkRingDotAbove.item("A") := "Ȧ" ; A with dot above +dkRingDotAbove.item("ä") := "å" ; a with ring above +dkRingDotAbove.item("Ä") := "Å" ; A with ring above +dkRingDotAbove.item("b") := "ḃ" ; b with dot above +dkRingDotAbove.item("B") := "Ḃ" ; B with dot above +dkRingDotAbove.item("c") := "ċ" ; c with dot above +dkRingDotAbove.item("C") := "Ċ" ; C with dot above +dkRingDotAbove.item("d") := "ḋ" ; d with dot above +dkRingDotAbove.item("D") := "Ḋ" ; D with dot above +dkRingDotAbove.item("e") := "ė" ; e with dot above +dkRingDotAbove.item("E") := "Ė" ; E with dot above +dkRingDotAbove.item("f") := "ḟ" ; f with dot above +dkRingDotAbove.item("F") := "Ḟ" ; F with dot above +dkRingDotAbove.item("g") := "ġ" ; g with dot above +dkRingDotAbove.item("G") := "Ġ" ; G with dot above +dkRingDotAbove.item("h") := "ḣ" ; h with dot above +dkRingDotAbove.item("H") := "Ḣ" ; H with dot above +dkRingDotAbove.item("i") := "ı" ; dotless i (Turkish, Azerbaijani) +dkRingDotAbove.item("I") := "İ" ; I with dot above (Turkish, Azerbaijani) +dkRingDotAbove.item("j") := "ȷ" ; dotless j +dkRingDotAbove.item("l") := "ŀ" ; l with middle dot +dkRingDotAbove.item("L") := "Ŀ" ; L with middle dot +dkRingDotAbove.item("m") := "ṁ" ; m with dot above +dkRingDotAbove.item("M") := "Ṁ" ; M with dot above +dkRingDotAbove.item("n") := "ṅ" ; n with dot above +dkRingDotAbove.item("N") := "Ṅ" ; N with dot above +dkRingDotAbove.item("o") := "ȯ" ; o with dot above +dkRingDotAbove.item("O") := "Ȯ" ; O with dot above +dkRingDotAbove.item("p") := "ṗ" ; p with dot above +dkRingDotAbove.item("P") := "Ṗ" ; P with dot above +dkRingDotAbove.item("r") := "ṙ" ; r with dot above +dkRingDotAbove.item("R") := "Ṙ" ; R with dot above +dkRingDotAbove.item("s") := "ṡ" ; s with dot above +dkRingDotAbove.item("S") := "Ṡ" ; S with dot above +dkRingDotAbove.item("t") := "ṫ" ; t with dot above +dkRingDotAbove.item("T") := "Ṫ" ; T with dot above +dkRingDotAbove.item("u") := "ů" ; u with ring above +dkRingDotAbove.item("U") := "Ů" ; U with ring above +dkRingDotAbove.item("w") := "ẇ" ; w with dot above +dkRingDotAbove.item("W") := "Ẇ" ; W with dot above +dkRingDotAbove.item("å") := "ẘ" ; w with ring above +dkRingDotAbove.item("x") := "ẋ" ; x with dot above +dkRingDotAbove.item("X") := "Ẋ" ; X with dot above +dkRingDotAbove.item("y") := "ẏ" ; y with dot above +dkRingDotAbove.item("Y") := "Ẏ" ; Y with dot above +dkRingDotAbove.item("ÿ") := "ẙ" ; y with ring above +dkRingDotAbove.item("z") := "ż" ; z with dot above +dkRingDotAbove.item("Z") := "Ż" ; Z with dot above +dkRingDotAbove.item(" ") := "˙" ; dot above + + +; Dead Key : Macron/Stroke + +dkMacronStroke := ComObjCreate("Scripting.Dictionary") +dkMacronStroke.item("a") := "ā" ; a with macron +dkMacronStroke.item("A") := "Ā" ; A with macron +dkMacronStroke.item("æ") := "ǣ" ; ae with macron +dkMacronStroke.item("Æ") := "Ǣ" ; AE with macron +dkMacronStroke.item("b") := "ƀ" ; b with stroke +dkMacronStroke.item("B") := "Ƀ" ; B with stroke +dkMacronStroke.item("d") := "đ" ; d with stroke +dkMacronStroke.item("D") := "Đ" ; D with stroke +dkMacronStroke.item("e") := "ē" ; e with macron +dkMacronStroke.item("E") := "Ē" ; E with macron +dkMacronStroke.item("g") := "ǥ" ; g with stroke (Skolt Sami) +dkMacronStroke.item("G") := "Ǥ" ; G with stroke (Skolt Sami) +dkMacronStroke.item("é") := "ḡ" ; g with macron +dkMacronStroke.item("É") := "Ḡ" ; G with macron +dkMacronStroke.item("h") := "ħ" ; h with stroke (Maltese) +dkMacronStroke.item("H") := "Ħ" ; H with stroke (Maltese) +dkMacronStroke.item("i") := "ī" ; i with macron +dkMacronStroke.item("I") := "Ī" ; I with macron +dkMacronStroke.item("ï") := "ɨ" ; i with stroke +dkMacronStroke.item("Ï") := "Ɨ" ; I with stroke +dkMacronStroke.item("j") := "ɉ" ; j with stroke +dkMacronStroke.item("J") := "Ɉ" ; J with stroke +dkMacronStroke.item("l") := "ł" ; l with stroke +dkMacronStroke.item("L") := "Ł" ; L with stroke +dkMacronStroke.item("ø") := "ḻ" ; l with line below +dkMacronStroke.item("Ø") := "Ḻ" ; L with line below +dkMacronStroke.item("o") := "ō" ; o with macron +dkMacronStroke.item("O") := "Ō" ; O with macron +dkMacronStroke.item("ö") := "ǭ" ; o with ogonek and macron +dkMacronStroke.item("Ö") := "Ǭ" ; O with ogonek and macron +dkMacronStroke.item("p") := "ᵽ" ; p with stroke +dkMacronStroke.item("P") := "Ᵽ" ; P with stroke +dkMacronStroke.item("r") := "ɍ" ; r with stroke +dkMacronStroke.item("R") := "Ɍ" ; R with stroke +dkMacronStroke.item("t") := "ŧ" ; t with stroke +dkMacronStroke.item("T") := "Ŧ" ; T with stroke +dkMacronStroke.item("u") := "ū" ; u with macron +dkMacronStroke.item("U") := "Ū" ; U with macron +dkMacronStroke.item("ü") := "ʉ" ; u with bar +dkMacronStroke.item("Ü") := "Ʉ" ; U with bar +dkMacronStroke.item("y") := "ȳ" ; y with macron +dkMacronStroke.item("Y") := "Ȳ" ; Y with macron +dkMacronStroke.item("ÿ") := "ɏ" ; y with stroke +dkMacronStroke.item("Ÿ") := "Ɏ" ; Y with stroke +dkMacronStroke.item("z") := "ƶ" ; z with stroke +dkMacronStroke.item("Z") := "Ƶ" ; Z with stroke +dkMacronStroke.item(" ") := "¯" ; macron + + +; Dead Key : Cedilla/Ogonek + +dkCedillaOgonek := ComObjCreate("Scripting.Dictionary") +dkCedillaOgonek.item("a") := "ą" ; a with ogonek +dkCedillaOgonek.item("A") := "Ą" ; A with ogonek +dkCedillaOgonek.item("c") := "ç" ; c with cedilla +dkCedillaOgonek.item("C") := "Ç" ; C with cedilla +dkCedillaOgonek.item("d") := "ḑ" ; d with cedilla +dkCedillaOgonek.item("D") := "Ḑ" ; D with cedilla +dkCedillaOgonek.item("e") := "ę" ; e with ogonek +dkCedillaOgonek.item("E") := "Ę" ; E with ogonek +dkCedillaOgonek.item("ë") := "ȩ" ; e with cedilla +dkCedillaOgonek.item("Ë") := "Ȩ" ; E with cedilla +dkCedillaOgonek.item("g") := "ģ" ; g with cedilla +dkCedillaOgonek.item("G") := "Ģ" ; G with cedilla +dkCedillaOgonek.item("h") := "ḩ" ; h with cedilla +dkCedillaOgonek.item("H") := "Ḩ" ; H with cedilla +dkCedillaOgonek.item("i") := "į" ; i with ogonek +dkCedillaOgonek.item("I") := "Į" ; I with ogonek +dkCedillaOgonek.item("k") := "ķ" ; k with cedilla +dkCedillaOgonek.item("K") := "Ķ" ; K with cedilla +dkCedillaOgonek.item("l") := "ļ" ; l with cedilla +dkCedillaOgonek.item("L") := "Ļ" ; L with cedilla +dkCedillaOgonek.item("n") := "ņ" ; n with cedilla +dkCedillaOgonek.item("N") := "Ņ" ; N with cedilla +dkCedillaOgonek.item("o") := "ǫ" ; o with ogonek +dkCedillaOgonek.item("O") := "Ǫ" ; O with ogonek +dkCedillaOgonek.item("ö") := "ǭ" ; o with ogonek and macron +dkCedillaOgonek.item("Ö") := "Ǭ" ; O with ogonek and macron +dkCedillaOgonek.item("r") := "ŗ" ; r with cedilla +dkCedillaOgonek.item("R") := "Ŗ" ; R with cedilla +dkCedillaOgonek.item("s") := "ş" ; s with cedilla +dkCedillaOgonek.item("S") := "Ş" ; S with cedilla +dkCedillaOgonek.item("t") := "ţ" ; t with cedilla +dkCedillaOgonek.item("T") := "Ţ" ; T with cedilla +dkCedillaOgonek.item("u") := "ų" ; u with ogonek +dkCedillaOgonek.item("U") := "Ų" ; U with ogonek +dkCedillaOgonek.item("w") := "₩" ; South Korean won +dkCedillaOgonek.item("W") := "₩" ; South Korean won +dkCedillaOgonek.item("!") := "–" ; en dash +dkCedillaOgonek.item("1") := "–" ; en dash +dkCedillaOgonek.item("@") := "—" ; em dash +dkCedillaOgonek.item("2") := "—" ; em dash +dkCedillaOgonek.item("#") := "―" ; horizontal bar +dkCedillaOgonek.item("3") := "―" ; horizontal bar +dkCedillaOgonek.item("$") := "‐" ; hyphen +dkCedillaOgonek.item("4") := "‐" ; hyphen +dkCedillaOgonek.item("(") := "‒" ; figure dash +dkCedillaOgonek.item("9") := "‒" ; figure dash +dkCedillaOgonek.item(")") := "­" ; soft hyphen +dkCedillaOgonek.item("0") := "­" ; soft hyphen +dkCedillaOgonek.item("-") := "‑" ; non-breaking hyphen +dkCedillaOgonek.item(".") := "˛" ; ogonek +dkCedillaOgonek.item(" ") := "¸" ; cedilla + + +; Dead Key : Breve/Special + +dkBreveSpecial := ComObjCreate("Scripting.Dictionary") +dkBreveSpecial.item("a") := "ă" ; a with breve +dkBreveSpecial.item("A") := "Ă" ; A with breve +dkBreveSpecial.item("d") := "ɖ" ; small letter d with tail +dkBreveSpecial.item("D") := "Ɖ" ; capital letter African D +dkBreveSpecial.item("e") := "ĕ" ; e with breve +dkBreveSpecial.item("E") := "Ĕ" ; E with breve +dkBreveSpecial.item("ë") := "ǝ" ; small turned e +dkBreveSpecial.item("Ë") := "Ǝ" ; capital reversed E +dkBreveSpecial.item("f") := "ə" ; small letter schwa (Azerbaijani) +dkBreveSpecial.item("F") := "Ə" ; capital letter schwa (Azerbaijani) +dkBreveSpecial.item("g") := "ğ" ; g with breve +dkBreveSpecial.item("G") := "Ğ" ; G with breve +dkBreveSpecial.item("é") := "ꬶ" ; cross-tailed g +dkBreveSpecial.item("h") := "ɣ" ; latin small gamma +dkBreveSpecial.item("H") := "Ɣ" ; latin capital gamma +dkBreveSpecial.item("i") := "ĭ" ; i with breve +dkBreveSpecial.item("I") := "Ĭ" ; I with breve +dkBreveSpecial.item("j") := "ij" ; ligature ij +dkBreveSpecial.item("J") := "IJ" ; ligature IJ +dkBreveSpecial.item("k") := "ĸ" ; small letter kra +dkBreveSpecial.item("n") := "ŋ" ; small letter eng(ma) +dkBreveSpecial.item("N") := "Ŋ" ; capital letter eng(ma) +dkBreveSpecial.item("o") := "ŏ" ; o with breve +dkBreveSpecial.item("O") := "Ŏ" ; O with breve +dkBreveSpecial.item("ö") := "ɔ" ; small open o +dkBreveSpecial.item("Ö") := "Ɔ" ; capital open O +dkBreveSpecial.item("s") := "ș" ; s with comma below (Romanian) +dkBreveSpecial.item("S") := "Ș" ; S with comma below (Romanian) +dkBreveSpecial.item("t") := "ț" ; t with comma below (Romanian) +dkBreveSpecial.item("T") := "Ț" ; T with comma below (Romanian) +dkBreveSpecial.item("u") := "ŭ" ; u with breve +dkBreveSpecial.item("U") := "Ŭ" ; U with breve +dkBreveSpecial.item("v") := "ʊ" ; latin small letter upsilon +dkBreveSpecial.item("V") := "Ʊ" ; latin capital letter upsilon +dkBreveSpecial.item("w") := "ƿ" ; small letter wynn +dkBreveSpecial.item("W") := "Ƿ" ; capital letter wynn +dkBreveSpecial.item("y") := "ȝ" ; small letter yogh +dkBreveSpecial.item("Y") := "Ȝ" ; capital letter yogh +dkBreveSpecial.item("#") := "ʒ" ; small letter ezh +dkBreveSpecial.item("3") := "Ʒ" ; capital letter ezh +dkBreveSpecial.item(" ") := "˘" ; breve + + +; Dead Key : Acute Accent + +dkAcuteAccent := ComObjCreate("Scripting.Dictionary") +dkAcuteAccent.item("a") := "á" ; a with acute +dkAcuteAccent.item("A") := "Á" ; A with acute +dkAcuteAccent.item("b") := "ɓ" ; b with hook +dkAcuteAccent.item("B") := "Ɓ" ; B with hook +dkAcuteAccent.item("c") := "ć" ; c with acute +dkAcuteAccent.item("C") := "Ć" ; C with acute +dkAcuteAccent.item("ç") := "ḉ" ; c with cedilla and acute +dkAcuteAccent.item("Ç") := "Ḉ" ; C with cedilla and acute +dkAcuteAccent.item("d") := "ɗ" ; d with hook +dkAcuteAccent.item("D") := "Ɗ" ; D with hook +dkAcuteAccent.item("e") := "é" ; e with acute +dkAcuteAccent.item("E") := "É" ; E with acute +dkAcuteAccent.item("f") := "ƒ" ; f with hook +dkAcuteAccent.item("F") := "Ƒ" ; F with hook +dkAcuteAccent.item("g") := "ǵ" ; g with acute +dkAcuteAccent.item("G") := "Ǵ" ; G with acute +dkAcuteAccent.item("h") := "ɦ" ; h with hook +dkAcuteAccent.item("H") := "Ɦ" ; H with hook +dkAcuteAccent.item("i") := "í" ; i with acute +dkAcuteAccent.item("I") := "Í" ; I with acute +dkAcuteAccent.item("j") := "ij" ; ligature ij +dkAcuteAccent.item("J") := "IJ" ; ligature IJ +dkAcuteAccent.item("k") := "ƙ" ; k with hook +dkAcuteAccent.item("K") := "Ƙ" ; K with hook +dkAcuteAccent.item("l") := "ĺ" ; l with acute +dkAcuteAccent.item("L") := "Ĺ" ; L with acute +dkAcuteAccent.item("m") := "ḿ" ; m with acute +dkAcuteAccent.item("M") := "Ḿ" ; M with acute +dkAcuteAccent.item("n") := "ń" ; n with acute +dkAcuteAccent.item("N") := "Ń" ; N with acute +dkAcuteAccent.item("o") := "ó" ; o with acute +dkAcuteAccent.item("O") := "Ó" ; O with acute +dkAcuteAccent.item("ö") := "ő" ; o with double acute +dkAcuteAccent.item("Ö") := "Ő" ; O with double acute +dkAcuteAccent.item("p") := "ƥ" ; p with hook +dkAcuteAccent.item("P") := "Ƥ" ; P with hook +dkAcuteAccent.item("q") := "ɋ" ; q with hook tail +dkAcuteAccent.item("Q") := "Ɋ" ; Q with hook tail +dkAcuteAccent.item("r") := "ŕ" ; r with acute +dkAcuteAccent.item("R") := "Ŕ" ; R with acute +dkAcuteAccent.item("s") := "ś" ; s with acute +dkAcuteAccent.item("S") := "Ś" ; S with acute +dkAcuteAccent.item("t") := "ƭ" ; t with hook +dkAcuteAccent.item("T") := "Ƭ" ; T with hook +dkAcuteAccent.item("u") := "ú" ; u with acute +dkAcuteAccent.item("U") := "Ú" ; U with acute +dkAcuteAccent.item("ü") := "ű" ; u with double acute +dkAcuteAccent.item("Ü") := "Ű" ; U with double acute +dkAcuteAccent.item("v") := "ʋ" ; v with hook +dkAcuteAccent.item("V") := "Ʋ" ; V with hook +dkAcuteAccent.item("w") := "ẃ" ; w with acute +dkAcuteAccent.item("W") := "Ẃ" ; W with acute +dkAcuteAccent.item("y") := "ý" ; y with acute +dkAcuteAccent.item("Y") := "Ý" ; Y with acute +dkAcuteAccent.item("z") := "ź" ; z with acute +dkAcuteAccent.item("Z") := "Ź" ; Z with acute +dkAcuteAccent.item("å") := "ǻ" ; a with ring above and acute +dkAcuteAccent.item("Å") := "Ǻ" ; A with ring above and acute +dkAcuteAccent.item("æ") := "ǽ" ; ae with acute +dkAcuteAccent.item("Æ") := "Ǽ" ; AE with acute +dkAcuteAccent.item("ø") := "ǿ" ; o with stroke and acute +dkAcuteAccent.item("Ø") := "Ǿ" ; O with stroke and acute +dkAcuteAccent.item("@") := "♫" ; beamed eighth notes +dkAcuteAccent.item("2") := "♫" ; beamed eighth notes +dkAcuteAccent.item("*") := "♪" ; eighth note +dkAcuteAccent.item("8") := "♪" ; eighth note +dkAcuteAccent.item("'") := "´" ; acute accent +dkAcuteAccent.item(" ") := "´" ; acute accent + + +; Dead Key : Diaeresis + +dkDiaeresis := ComObjCreate("Scripting.Dictionary") +dkDiaeresis.item("a") := "ä" ; a with diaeresis +dkDiaeresis.item("A") := "Ä" ; A with diaeresis +dkDiaeresis.item("e") := "ë" ; e with diaeresis +dkDiaeresis.item("E") := "Ë" ; E with diaeresis +dkDiaeresis.item("h") := "ḧ" ; h with diaeresis +dkDiaeresis.item("H") := "Ḧ" ; H with diaeresis +dkDiaeresis.item("i") := "ï" ; i with diaeresis +dkDiaeresis.item("I") := "Ï" ; I with diaeresis +dkDiaeresis.item("o") := "ö" ; o with diaeresis +dkDiaeresis.item("O") := "Ö" ; O with diaeresis +dkDiaeresis.item("s") := "ß" ; small sharp s (Eszett) +dkDiaeresis.item("S") := "ẞ" ; capital sharp S (capital Eszett) +dkDiaeresis.item("t") := "ẗ" ; t with diaeresis +dkDiaeresis.item("u") := "ü" ; u with diaeresis +dkDiaeresis.item("U") := "Ü" ; U with diaeresis +dkDiaeresis.item("w") := "ẅ" ; w with diaeresis +dkDiaeresis.item("W") := "Ẅ" ; W with diaeresis +dkDiaeresis.item("x") := "ẍ" ; x with diaeresis +dkDiaeresis.item("X") := "Ẍ" ; X with diaeresis +dkDiaeresis.item("y") := "ÿ" ; y with diaeresis +dkDiaeresis.item("Y") := "Ÿ" ; Y with diaeresis +dkDiaeresis.item("""") := "¨" ; diaeresis +dkDiaeresis.item(" ") := "¨" ; diaeresis + + +; Dead Key : Grave Accent + +dkGraveAccent := ComObjCreate("Scripting.Dictionary") +dkGraveAccent.item("a") := "à" ; a with grave +dkGraveAccent.item("A") := "À" ; A with grave +dkGraveAccent.item("e") := "è" ; e with grave +dkGraveAccent.item("E") := "È" ; E with grave +dkGraveAccent.item("i") := "ì" ; i with grave +dkGraveAccent.item("I") := "Ì" ; I with grave +dkGraveAccent.item("n") := "ǹ" ; n with grave +dkGraveAccent.item("N") := "Ǹ" ; N with grave +dkGraveAccent.item("o") := "ò" ; o with grave +dkGraveAccent.item("O") := "Ò" ; O with grave +dkGraveAccent.item("u") := "ù" ; u with grave +dkGraveAccent.item("U") := "Ù" ; U with grave +dkGraveAccent.item("w") := "ẁ" ; w with grave +dkGraveAccent.item("W") := "Ẁ" ; W with grave +dkGraveAccent.item("y") := "ỳ" ; y with grave +dkGraveAccent.item("Y") := "Ỳ" ; Y with grave +dkGraveAccent.item("ä") := "₳" ; Argentine austral +dkGraveAccent.item("Ä") := "₳" ; Argentine austral +dkGraveAccent.item("b") := "₿" ; bitcoin +dkGraveAccent.item("B") := "₿" ; bitcoin +dkGraveAccent.item("c") := "₡" ; Costa Rican colón +dkGraveAccent.item("C") := "₵" ; Ghanaian cedi +dkGraveAccent.item("ç") := "₢" ; Brazilian cruzeiro +dkGraveAccent.item("Ç") := "₢" ; Brazilian cruzeiro +dkGraveAccent.item("d") := "₫" ; Vietnamese dong +dkGraveAccent.item("D") := "₯" ; Greek drachma +dkGraveAccent.item("f") := "₣" ; French franc +dkGraveAccent.item("F") := "₣" ; French franc +dkGraveAccent.item("g") := "₲" ; Paraguayan guaraní +dkGraveAccent.item("G") := "₲" ; Paraguayan guaraní +dkGraveAccent.item("h") := "₴" ; Ukrainian hryvnia +dkGraveAccent.item("H") := "₴" ; Ukrainian hryvnia +dkGraveAccent.item("k") := "₭" ; Laotian kip +dkGraveAccent.item("K") := "₭" ; Laotian kip +dkGraveAccent.item("l") := "₺" ; Turkish lira +dkGraveAccent.item("L") := "₾" ; Georgian lari +dkGraveAccent.item("ø") := "₤" ; lira +dkGraveAccent.item("Ø") := "₤" ; lira +dkGraveAccent.item("m") := "₼" ; Azerbaijani manat +dkGraveAccent.item("M") := "₥" ; mill sign +dkGraveAccent.item("ñ") := "₦" ; Nigerian naira +dkGraveAccent.item("Ñ") := "₦" ; Nigerian naira +dkGraveAccent.item("p") := "₱" ; Philippine peso +dkGraveAccent.item("P") := "₱" ; Philippine peso +dkGraveAccent.item("r") := "₹" ; Indian rupee +dkGraveAccent.item("R") := "₽" ; Russian ruble +dkGraveAccent.item("s") := "₪" ; Israeli new shekel +dkGraveAccent.item("S") := "₪" ; Israeli new shekel +dkGraveAccent.item("t") := "₮" ; Mongolian tögrög (tugrik) +dkGraveAccent.item("T") := "₸" ; Kazakh tenge +dkGraveAccent.item("å") := "₩" ; South Korean won +dkGraveAccent.item("Å") := "₩" ; South Korean won +dkGraveAccent.item("!") := " " ; en space +dkGraveAccent.item("@") := " " ; em space +dkGraveAccent.item("#") := " " ; three-per-em space +dkGraveAccent.item("3") := " " ; three-per-em space +dkGraveAccent.item("$") := " " ; four-per-em space +dkGraveAccent.item("4") := " " ; four-per-em space +dkGraveAccent.item("%") := " " ; punctuation space +dkGraveAccent.item("5") := " " ; punctuation space +dkGraveAccent.item("^") := " " ; six-per-em space +dkGraveAccent.item("6") := " " ; six-per-em space +dkGraveAccent.item("&") := " " ; thin space +dkGraveAccent.item("7") := " " ; thin space +dkGraveAccent.item("*") := " " ; hair space +dkGraveAccent.item("8") := " " ; hair space +dkGraveAccent.item("(") := " " ; figure space +dkGraveAccent.item("9") := " " ; figure space +dkGraveAccent.item(")") := "​" ; zero-width space +dkGraveAccent.item("0") := "​" ; zero-width space +dkGraveAccent.item("-") := " " ; non-breaking space +dkGraveAccent.item("1") := " " ; en quad +dkGraveAccent.item("2") := " " ; em quad +dkGraveAccent.item("``") := "``" ; grave accent +dkGraveAccent.item(" ") := "``" ; grave accent + + +; Dead Key : Tilde + +dkTilde := ComObjCreate("Scripting.Dictionary") +dkTilde.item("a") := "ã" ; a with tilde +dkTilde.item("A") := "Ã" ; A with tilde +dkTilde.item("e") := "ẽ" ; e with tilde +dkTilde.item("E") := "Ẽ" ; E with tilde +dkTilde.item("i") := "ĩ" ; i with tilde +dkTilde.item("I") := "Ĩ" ; I with tilde +dkTilde.item("n") := "ñ" ; n with tilde +dkTilde.item("N") := "Ñ" ; N with tilde +dkTilde.item("o") := "õ" ; o with tilde +dkTilde.item("O") := "Õ" ; O with tilde +dkTilde.item("u") := "ũ" ; u with tilde +dkTilde.item("U") := "Ũ" ; U with tilde +dkTilde.item("v") := "ṽ" ; v with tilde +dkTilde.item("V") := "Ṽ" ; V with tilde +dkTilde.item("y") := "ỹ" ; y with tilde +dkTilde.item("Y") := "Ỹ" ; Y with tilde +dkTilde.item("~") := "~" ; tilde +dkTilde.item(" ") := "~" ; tilde + + +; Dead Key : Not Sign + +dkNotSign := ComObjCreate("Scripting.Dictionary") +dkNotSign.item("a") := "ª" ; feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("A") := "ª" ; feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("b") := "☐" ; ballot box +dkNotSign.item("B") := "☒" ; ballot box with x +dkNotSign.item("c") := "©" ; copyright sign +dkNotSign.item("C") := "¤" ; currency sign +dkNotSign.item("d") := "†" ; dagger +dkNotSign.item("D") := "‡" ; double dagger +dkNotSign.item("e") := "…" ; ellipsis +dkNotSign.item("E") := "℮" ; estimated symbol +dkNotSign.item("f") := "♀" ; Venus symbol (female) +dkNotSign.item("F") := "♀" ; Venus symbol (female) +dkNotSign.item("h") := "♡" ; white heart suit +dkNotSign.item("H") := "♥" ; black heart suit +dkNotSign.item("l") := "ℓ" ; script small l +dkNotSign.item("L") := "ℓ" ; script small l +dkNotSign.item("m") := "♂" ; Mars symbol (male) +dkNotSign.item("M") := "♂" ; Mars symbol (male) +dkNotSign.item("n") := "¬" ; not sign +dkNotSign.item("N") := "¬" ; not sign +dkNotSign.item("o") := "º" ; masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("O") := "º" ; masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("p") := "¶" ; pilcrow sign +dkNotSign.item("P") := "℗" ; sound recording copyright +dkNotSign.item("r") := "®" ; registered sign +dkNotSign.item("R") := "®" ; registered sign +dkNotSign.item("s") := "§" ; section sign +dkNotSign.item("S") := "℠" ; service mark +dkNotSign.item("t") := "™" ; trademark symbol +dkNotSign.item("T") := "™" ; trademark symbol +dkNotSign.item("v") := "✓" ; check mark +dkNotSign.item("V") := "✔" ; heavy check mark +dkNotSign.item("w") := "☑" ; ballot box with check +dkNotSign.item("W") := "☙" ; reversed rotated floral heart bullet +dkNotSign.item("x") := "✗" ; ballot x +dkNotSign.item("X") := "✘" ; heavy ballot x +dkNotSign.item("y") := "☺" ; white smiling face +dkNotSign.item("Y") := "☻" ; black smiling face +dkNotSign.item("!") := "←" ; leftwards arrow +dkNotSign.item("@") := "↓" ; downwards arrow +dkNotSign.item("#") := "↑" ; upwards arrow +dkNotSign.item("$") := "→" ; rightwards arrow +dkNotSign.item("%") := "↖" ; north west arrow +dkNotSign.item("^") := "↙" ; south west arrow +dkNotSign.item("&") := "↗" ; north east arrow +dkNotSign.item("*") := "↘" ; south east arrow +dkNotSign.item("(") := "↕" ; up down arrow +dkNotSign.item(")") := "↨" ; up down arrow with base +dkNotSign.item("=") := "↔" ; left right arrow +dkNotSign.item("1") := "⇐" ; leftwards double arrow +dkNotSign.item("2") := "⇓" ; downwards double arrow +dkNotSign.item("3") := "⇑" ; upwards double arrow +dkNotSign.item("4") := "⇒" ; rightwards double arrow +dkNotSign.item("5") := "⇖" ; north west double arrow +dkNotSign.item("6") := "⇙" ; south west double arrow +dkNotSign.item("7") := "⇗" ; north east double arrow +dkNotSign.item("8") := "⇘" ; south east double arrow +dkNotSign.item("9") := "⇕" ; up down double arrow +dkNotSign.item("0") := "↲" ; downwards arrow with tip leftwards +dkNotSign.item("+") := "⇔" ; left right double arrow +dkNotSign.item(".") := "•" ; bullet +dkNotSign.item("-") := "⁃" ; hyphen bullet +dkNotSign.item("/") := "‼" ; double exclamation mark +dkNotSign.item("?") := "‽" ; interrobang +dkNotSign.item("¿") := "⸘" ; inverted interrobang +dkNotSign.item("¶") := "⸮" ; reversed question mark +dkNotSign.item("\") := "⁞" ; vertical four dots +dkNotSign.item("|") := "⁞" ; vertical four dots +dkNotSign.item(" ") := "¬" ; not sign + + +; Dead Key : Broken Bar + +dkBrokenBar := ComObjCreate("Scripting.Dictionary") +dkBrokenBar.item("a") := "ɑ" ; latin small letter alpha +dkBrokenBar.item("A") := "Ɑ" ; latin capital letter alpha +dkBrokenBar.item("ä") := "ɒ" ; latin small letter turned alpha +dkBrokenBar.item("Ä") := "Ɒ" ; latin capital letter turned alpha +dkBrokenBar.item("c") := "ƈ" ; c with hook +dkBrokenBar.item("C") := "Ƈ" ; C with hook +dkBrokenBar.item("e") := "ɛ" ; small open e (latin small epsilon) +dkBrokenBar.item("E") := "Ɛ" ; capital open E (latin capital epsilon) +dkBrokenBar.item("f") := "❦" ; floral heart +dkBrokenBar.item("F") := "❧" ; rotated floral heart bullet +dkBrokenBar.item("g") := "ɠ" ; g with hook +dkBrokenBar.item("G") := "Ɠ" ; G with hook +dkBrokenBar.item("h") := "ꜧ" ; small letter heng +dkBrokenBar.item("H") := "Ꜧ" ; capital letter heng +dkBrokenBar.item("ù") := "ɧ" ; small letter heng with hook +dkBrokenBar.item("k") := "ḱ" ; k with acute +dkBrokenBar.item("K") := "Ḱ" ; K with acute +dkBrokenBar.item("n") := "ɲ" ; n with left hook +dkBrokenBar.item("N") := "Ɲ" ; N with left hook +dkBrokenBar.item("o") := "ơ" ; o with horn +dkBrokenBar.item("O") := "Ơ" ; O with horn +dkBrokenBar.item("p") := "ṕ" ; p with acute +dkBrokenBar.item("P") := "Ṕ" ; P with acute +dkBrokenBar.item("s") := "ʃ" ; small letter esh +dkBrokenBar.item("S") := "Ʃ" ; capital letter esh +dkBrokenBar.item("ß") := "ſ" ; small long s +dkBrokenBar.item("u") := "ư" ; u with horn +dkBrokenBar.item("U") := "Ư" ; U with horn +dkBrokenBar.item("v") := "ʌ" ; latin small letter turned v +dkBrokenBar.item("V") := "Ʌ" ; latin capital letter turned V +dkBrokenBar.item("w") := "ⱳ" ; w with hook +dkBrokenBar.item("W") := "Ⱳ" ; W with hook +dkBrokenBar.item("y") := "ƴ" ; y with hook +dkBrokenBar.item("Y") := "Ƴ" ; Y with hook +dkBrokenBar.item("z") := "ȥ" ; z with hook +dkBrokenBar.item("Z") := "Ȥ" ; Z with hook +dkBrokenBar.item("!") := "№" ; numero sign +dkBrokenBar.item("1") := "№" ; numero sign +dkBrokenBar.item("@") := "½" ; vulgar fraction 1/2 +dkBrokenBar.item("2") := "½" ; vulgar fraction 1/2 +dkBrokenBar.item("#") := "⅓" ; vulgar fraction 1/3 +dkBrokenBar.item("3") := "⅓" ; vulgar fraction 1/3 +dkBrokenBar.item("$") := "¼" ; vulgar fraction 1/4 +dkBrokenBar.item("4") := "¼" ; vulgar fraction 1/4 +dkBrokenBar.item("%") := "⅔" ; vulgar fraction 2/3 +dkBrokenBar.item("5") := "⅔" ; vulgar fraction 2/3 +dkBrokenBar.item("^") := "¾" ; vulgar fraction 3/4 +dkBrokenBar.item("6") := "¾" ; vulgar fraction 3/4 +dkBrokenBar.item("&") := "⅛" ; vulgar fraction 1/8 +dkBrokenBar.item("7") := "⅛" ; vulgar fraction 1/8 +dkBrokenBar.item("*") := "⅜" ; vulgar fraction 3/8 +dkBrokenBar.item("8") := "⅜" ; vulgar fraction 3/8 +dkBrokenBar.item("(") := "⅝" ; vulgar fraction 5/8 +dkBrokenBar.item("9") := "⅝" ; vulgar fraction 5/8 +dkBrokenBar.item(")") := "⅞" ; vulgar fraction 7/8 +dkBrokenBar.item("0") := "⅞" ; vulgar fraction 7/8 +dkBrokenBar.item("\") := "¦" ; broken bar +dkBrokenBar.item("|") := "¦" ; broken bar +dkBrokenBar.item(" ") := "¦" ; broken bar + + +; Dead Key : Greek Alphabet + +dkGreekAlphabet := ComObjCreate("Scripting.Dictionary") +dkGreekAlphabet.item("a") := "α" ; small alpha +dkGreekAlphabet.item("A") := "Α" ; capital alpha +dkGreekAlphabet.item("b") := "β" ; small beta +dkGreekAlphabet.item("B") := "Β" ; capital beta +dkGreekAlphabet.item("v") := "β" ; small beta +dkGreekAlphabet.item("V") := "Β" ; capital beta +dkGreekAlphabet.item("g") := "γ" ; small gamma +dkGreekAlphabet.item("G") := "Γ" ; capital gamma +dkGreekAlphabet.item("d") := "δ" ; small delta +dkGreekAlphabet.item("D") := "Δ" ; capital delta +dkGreekAlphabet.item("e") := "ε" ; small epsilon +dkGreekAlphabet.item("E") := "Ε" ; capital epsilon +dkGreekAlphabet.item("z") := "ζ" ; small zeta +dkGreekAlphabet.item("Z") := "Ζ" ; capital zeta +dkGreekAlphabet.item("h") := "η" ; small eta +dkGreekAlphabet.item("H") := "Η" ; capital eta +dkGreekAlphabet.item("j") := "θ" ; small theta +dkGreekAlphabet.item("J") := "Θ" ; capital theta +dkGreekAlphabet.item("i") := "ι" ; small iota +dkGreekAlphabet.item("I") := "Ι" ; capital iota +dkGreekAlphabet.item("k") := "κ" ; small kappa +dkGreekAlphabet.item("K") := "Κ" ; capital kappa +dkGreekAlphabet.item("l") := "λ" ; small lambda +dkGreekAlphabet.item("L") := "Λ" ; capital lambda +dkGreekAlphabet.item("m") := "μ" ; small mu +dkGreekAlphabet.item("M") := "Μ" ; capital mu +dkGreekAlphabet.item("n") := "ν" ; small nu +dkGreekAlphabet.item("N") := "Ν" ; capital nu +dkGreekAlphabet.item("x") := "ξ" ; small xi +dkGreekAlphabet.item("X") := "Ξ" ; capital xi +dkGreekAlphabet.item("o") := "ο" ; small omikron +dkGreekAlphabet.item("O") := "Ο" ; capital omikron +dkGreekAlphabet.item("p") := "π" ; small pi +dkGreekAlphabet.item("P") := "Π" ; capital pi +dkGreekAlphabet.item("r") := "ρ" ; small rho +dkGreekAlphabet.item("R") := "Ρ" ; capital rho +dkGreekAlphabet.item("s") := "σ" ; small sigma +dkGreekAlphabet.item("S") := "Σ" ; capital sigma +dkGreekAlphabet.item(",") := "ς" ; small sigma, in word-final position +dkGreekAlphabet.item("ß") := "ς" ; small sigma, in word-final position +dkGreekAlphabet.item("t") := "τ" ; small tau +dkGreekAlphabet.item("T") := "Τ" ; capital tau +dkGreekAlphabet.item("u") := "υ" ; small upsilon +dkGreekAlphabet.item("U") := "Υ" ; capital upsilon +dkGreekAlphabet.item("y") := "υ" ; small upsilon +dkGreekAlphabet.item("Y") := "Υ" ; capital upsilon +dkGreekAlphabet.item("f") := "φ" ; small phi +dkGreekAlphabet.item("F") := "Φ" ; capital phi +dkGreekAlphabet.item("c") := "χ" ; small chi +dkGreekAlphabet.item("C") := "Χ" ; capital chi +dkGreekAlphabet.item("w") := "ψ" ; small psi +dkGreekAlphabet.item("W") := "Ψ" ; capital psi +dkGreekAlphabet.item("q") := "ω" ; small omega +dkGreekAlphabet.item("Q") := "Ω" ; capital omega +dkGreekAlphabet.item("!") := "¹" ; superscript 1 +dkGreekAlphabet.item("@") := "²" ; superscript 2 +dkGreekAlphabet.item("#") := "³" ; superscript 3 +dkGreekAlphabet.item("$") := "⁴" ; superscript 4 +dkGreekAlphabet.item("%") := "⁵" ; superscript 5 +dkGreekAlphabet.item("^") := "⁶" ; superscript 6 +dkGreekAlphabet.item("&") := "⁷" ; superscript 7 +dkGreekAlphabet.item("*") := "⁸" ; superscript 8 +dkGreekAlphabet.item("(") := "⁹" ; superscript 9 +dkGreekAlphabet.item(")") := "⁰" ; superscript 0 +dkGreekAlphabet.item("-") := "⁻" ; superscript - +dkGreekAlphabet.item("=") := "⁼" ; superscript = +dkGreekAlphabet.item("+") := "⁺" ; superscript + +dkGreekAlphabet.item("[") := "⁽" ; superscript ( +dkGreekAlphabet.item("]") := "⁾" ; superscript ) +dkGreekAlphabet.item("1") := "₁" ; subscript 1 +dkGreekAlphabet.item("2") := "₂" ; subscript 2 +dkGreekAlphabet.item("3") := "₃" ; subscript 3 +dkGreekAlphabet.item("4") := "₄" ; subscript 4 +dkGreekAlphabet.item("5") := "₅" ; subscript 5 +dkGreekAlphabet.item("6") := "₆" ; subscript 6 +dkGreekAlphabet.item("7") := "₇" ; subscript 7 +dkGreekAlphabet.item("8") := "₈" ; subscript 8 +dkGreekAlphabet.item("9") := "₉" ; subscript 9 +dkGreekAlphabet.item("0") := "₀" ; subscript 0 +dkGreekAlphabet.item(";") := "₋" ; subscript - +dkGreekAlphabet.item("'") := "₌" ; subscript = +dkGreekAlphabet.item("""") := "₊" ; subscript + +dkGreekAlphabet.item("{") := "₍" ; subscript ( +dkGreekAlphabet.item("}") := "₎" ; subscript ) +dkGreekAlphabet.item(".") := "µ" ; micro sign +dkGreekAlphabet.item(" ") := "μ" ; small mu + + +; Dead Key : Math Symbols + +dkMathSymbols := ComObjCreate("Scripting.Dictionary") +dkMathSymbols.item("a") := "∀" ; for all +dkMathSymbols.item("A") := "∀" ; for all +dkMathSymbols.item("b") := "⊆" ; subset of or equal to +dkMathSymbols.item("B") := "⊇" ; superset of or equal to +dkMathSymbols.item("c") := "∝" ; proportional to +dkMathSymbols.item("C") := "ℂ" ; complex numbers +dkMathSymbols.item("d") := "∆" ; increment operator +dkMathSymbols.item("D") := "∇" ; nable/del operator +dkMathSymbols.item("e") := "∃" ; there exists +dkMathSymbols.item("E") := "∄" ; there does not exist +dkMathSymbols.item("f") := "ƒ" ; f with hook +dkMathSymbols.item("F") := "∎" ; end of proof +dkMathSymbols.item("g") := "⊂" ; subset of +dkMathSymbols.item("G") := "⊄" ; not a subset of +dkMathSymbols.item("h") := "⊃" ; superset of +dkMathSymbols.item("H") := "⊅" ; not a superset of +dkMathSymbols.item("i") := "∞" ; infinity symbol +dkMathSymbols.item("I") := "∞" ; infinity symbol +dkMathSymbols.item("k") := "∋" ; contains as member +dkMathSymbols.item("K") := "∌" ; does not contain as member +dkMathSymbols.item("l") := "∥" ; parallel to +dkMathSymbols.item("L") := "∦" ; not parallel to +dkMathSymbols.item("m") := "∈" ; element of +dkMathSymbols.item("M") := "∉" ; not an element of +dkMathSymbols.item("n") := "ⁿ" ; superscript n +dkMathSymbols.item("N") := "ℕ" ; natural numbers +dkMathSymbols.item("o") := "∘" ; ring operator +dkMathSymbols.item("O") := "∅" ; empty set +dkMathSymbols.item("p") := "∂" ; partial differential +dkMathSymbols.item("P") := "ℙ" ; prime numbers +dkMathSymbols.item("q") := "ℚ" ; rational numbers +dkMathSymbols.item("Q") := "ℚ" ; rational numbers +dkMathSymbols.item("r") := "√" ; square root +dkMathSymbols.item("R") := "ℝ" ; real numbers +dkMathSymbols.item("s") := "∩" ; set intersection +dkMathSymbols.item("S") := "∫" ; integral symbol +dkMathSymbols.item("u") := "∪" ; set union +dkMathSymbols.item("U") := "∖" ; set minus +dkMathSymbols.item("w") := "℘" ; Weierstrass elliptic function +dkMathSymbols.item("W") := "℘" ; Weierstrass elliptic function +dkMathSymbols.item("z") := "↯" ; downwards zigzag arrow +dkMathSymbols.item("Z") := "ℤ" ; whole numbers +dkMathSymbols.item("!") := "≠" ; not equal to +dkMathSymbols.item("1") := "≠" ; not equal to +dkMathSymbols.item("@") := "√" ; square root +dkMathSymbols.item("2") := "√" ; square root +dkMathSymbols.item("#") := "∛" ; cube root +dkMathSymbols.item("3") := "∛" ; cube root +dkMathSymbols.item("$") := "∜" ; fourth root +dkMathSymbols.item("4") := "∜" ; fourth root +dkMathSymbols.item("%") := "‰" ; per mille sign +dkMathSymbols.item("5") := "‱" ; per ten thousand sign +dkMathSymbols.item("^") := "∠" ; angle symbol +dkMathSymbols.item("6") := "∠" ; angle symbol +dkMathSymbols.item("&") := "∧" ; logical and +dkMathSymbols.item("7") := "∧" ; logical and +dkMathSymbols.item("*") := "⊗" ; tensor product +dkMathSymbols.item("8") := "⊗" ; tensor product +dkMathSymbols.item("(") := "∟" ; right angle +dkMathSymbols.item("9") := "∟" ; right angle +dkMathSymbols.item(")") := "∡" ; measured angle +dkMathSymbols.item("0") := "∡" ; measured angle +dkMathSymbols.item("``") := "≈" ; almost equal to +dkMathSymbols.item("~") := "≈" ; almost equal to +dkMathSymbols.item(",") := "≤" ; less-than or equal to +dkMathSymbols.item("<") := "≤" ; less-than or equal to +dkMathSymbols.item(".") := "≥" ; greater-than or equal to +dkMathSymbols.item(">") := "≥" ; greater-than or equal to +dkMathSymbols.item("-") := "±" ; plus-minus sign +dkMathSymbols.item("_") := "⊖" ; circled minus +dkMathSymbols.item("=") := "≝" ; equal to by definition +dkMathSymbols.item("+") := "⊕" ; exclusive or +dkMathSymbols.item(";") := "∵" ; because sign +dkMathSymbols.item(":") := "∴" ; therefore sign +dkMathSymbols.item("'") := "′" ; prime +dkMathSymbols.item("""") := "″" ; double prime +dkMathSymbols.item("/") := "‴" ; triple prime +dkMathSymbols.item("?") := "⁗" ; quadruple prime +dkMathSymbols.item("\") := "∨" ; logical or +dkMathSymbols.item("|") := "∨" ; logical or +dkMathSymbols.item(" ") := "√" ; square root + + +; Configuration : Switch positions of symbols and digits + +$1::Send {!} ; exclamation mark +$+1::Send 1 ; digit 1 + +$2::Send @ ; at sign +$+2::Send 2 ; digit 2 + +$3::Send {#} ; number sign +$+3::Send 3 ; digit 3 + +$4::Send $ ; dollar sign +$+4::Send 4 ; digit 4 + +$5::Send `% ; percent sign +$+5::Send 5 ; digit 5 + +$6::Send {^} ; circumflex accent +$+6::Send 6 ; digit 6 + +$7::Send & ; ampersand +$+7::Send 7 ; digit 7 + +$8::Send * ; asterisk +$+8::Send 8 ; digit 8 + +$9::Send ( ; left parenthesis +$+9::Send 9 ; digit 9 + +$0::Send ) ; right parenthesis +$+0::Send 0 ; digit 0 + + +; Configuration : Right Alt on US QWERTY + +>!a:: + if GetKeyState("CapsLock", "T") + Send Ä ; A with diaeresis + else + Send ä ; a with diaeresis +return +>!+a:: + if GetKeyState("CapsLock", "T") + Send ä ; a with diaeresis + else + Send Ä ; A with diaeresis +return + +>!z:: + if GetKeyState("CapsLock", "T") + Send À ; A with grave + else + Send à ; a with grave +return +>!+z:: + if GetKeyState("CapsLock", "T") + Send à ; a with grave + else + Send À ; A with grave +return + +>!x:: + if GetKeyState("CapsLock", "T") + Send Á ; A with acute + else + Send á ; a with acute +return +>!+x:: + if GetKeyState("CapsLock", "T") + Send á ; a with acute + else + Send Á ; A with acute +return + +>!q:: + if GetKeyState("CapsLock", "T") + Send Æ ; letter AE + else + Send æ ; letter ae +return +>!+q:: + if GetKeyState("CapsLock", "T") + Send æ ; letter ae + else + Send Æ ; letter AE +return + +>!w:: + if GetKeyState("CapsLock", "T") + Send Å ; A with ring above + else + Send å ; a with ring above +return +>!+w:: + if GetKeyState("CapsLock", "T") + Send å ; a with ring above + else + Send Å ; A with ring above +return + +>!c:: + if GetKeyState("CapsLock", "T") + Send Ç ; C with cedilla + else + Send ç ; c with cedilla +return +>!+c:: + if GetKeyState("CapsLock", "T") + Send ç ; c with cedilla + else + Send Ç ; C with cedilla +return + +>!d:: + if GetKeyState("CapsLock", "T") + Send Ð ; capital letter eth + else + Send ð ; small letter eth +return +>!+d:: + if GetKeyState("CapsLock", "T") + Send ð ; small letter eth + else + Send Ð ; capital letter eth +return + +>!e:: + if GetKeyState("CapsLock", "T") + Send Ë ; E with diaeresis + else + Send ë ; e with diaeresis +return +>!+e:: + if GetKeyState("CapsLock", "T") + Send ë ; e with diaeresis + else + Send Ë ; E with diaeresis +return + +>!f:: + if GetKeyState("CapsLock", "T") + Send È ; E with grave + else + Send è ; e with grave +return +>!+f:: + if GetKeyState("CapsLock", "T") + Send è ; e with grave + else + Send È ; E with grave +return + +>!g:: + if GetKeyState("CapsLock", "T") + Send É ; E with acute + else + Send é ; e with acute +return +>!+g:: + if GetKeyState("CapsLock", "T") + Send é ; e with acute + else + Send É ; E with acute +return + +>!i:: + if GetKeyState("CapsLock", "T") + Send Ï ; I with diaeresis + else + Send ï ; i with diaeresis +return +>!+i:: + if GetKeyState("CapsLock", "T") + Send ï ; i with diaeresis + else + Send Ï ; I with diaeresis +return + +>!v:: + if GetKeyState("CapsLock", "T") + Send Ì ; I with grave + else + Send ì ; i with grave +return +>!+v:: + if GetKeyState("CapsLock", "T") + Send ì ; i with grave + else + Send Ì ; I with grave +return + +>!b:: + if GetKeyState("CapsLock", "T") + Send Í ; I with acute + else + Send í ; i with acute +return +>!+b:: + if GetKeyState("CapsLock", "T") + Send í ; i with acute + else + Send Í ; I with acute +return + +>!o:: + if GetKeyState("CapsLock", "T") + Send Ö ; O with diaeresis + else + Send ö ; o with diaeresis +return +>!+o:: + if GetKeyState("CapsLock", "T") + Send ö ; o with diaeresis + else + Send Ö ; O with diaeresis +return + +>!,:: + if GetKeyState("CapsLock", "T") + Send Ò ; O with grave + else + Send ò ; o with grave +return +>!<:: + if GetKeyState("CapsLock", "T") + Send ò ; o with grave + else + Send Ò ; O with grave +return + +>!.:: + if GetKeyState("CapsLock", "T") + Send Ó ; O with acute + else + Send ó ; o with acute +return +>!>:: + if GetKeyState("CapsLock", "T") + Send ó ; o with acute + else + Send Ó ; O with acute +return + +>!k:: + if GetKeyState("CapsLock", "T") + Send Œ ; ligature OE + else + Send œ ; ligature oe +return +>!+k:: + if GetKeyState("CapsLock", "T") + Send œ ; ligature oe + else + Send Œ ; ligature OE +return + +>!l:: + if GetKeyState("CapsLock", "T") + Send Ø ; O with stroke + else + Send ø ; o with stroke +return +>!+l:: + if GetKeyState("CapsLock", "T") + Send ø ; o with stroke + else + Send Ø ; O with stroke +return + +>!n:: + if GetKeyState("CapsLock", "T") + Send Ñ ; N with tilde + else + Send ñ ; n with tilde +return +>!+n:: + if GetKeyState("CapsLock", "T") + Send ñ ; n with tilde + else + Send Ñ ; N with tilde +return + +>!t:: + if GetKeyState("CapsLock", "T") + Send Þ ; capital letter thorn + else + Send þ ; small letter thorn +return +>!+t:: + if GetKeyState("CapsLock", "T") + Send þ ; small letter thorn + else + Send Þ ; capital letter thorn +return + +>!u:: + if GetKeyState("CapsLock", "T") + Send Ü ; U with diaeresis + else + Send ü ; u with diaeresis +return +>!+u:: + if GetKeyState("CapsLock", "T") + Send ü ; u with diaeresis + else + Send Ü ; U with diaeresis +return + +>!h:: + if GetKeyState("CapsLock", "T") + Send Ù ; U with grave + else + Send ù ; u with grave +return +>!+h:: + if GetKeyState("CapsLock", "T") + Send ù ; u with grave + else + Send Ù ; U with grave +return + +>!j:: + if GetKeyState("CapsLock", "T") + Send Ú ; U with acute + else + Send ú ; u with acute +return +>!+j:: + if GetKeyState("CapsLock", "T") + Send ú ; u with acute + else + Send Ú ; U with acute +return + +>!y:: + if GetKeyState("CapsLock", "T") + Send Ÿ ; Y with diaeresis + else + Send ÿ ; y with diaeresis +return +>!+y:: + if GetKeyState("CapsLock", "T") + Send ÿ ; y with diaeresis + else + Send Ÿ ; Y with diaeresis +return + +>!r:: + if GetKeyState("CapsLock", "T") + Send Ý ; Y with acute + else + Send ý ; y with acute +return +>!+r:: + if GetKeyState("CapsLock", "T") + Send ý ; y with acute + else + Send Ý ; Y with acute +return + +>!p::Send † ; dagger +>!+p::Send ‡ ; double dagger + +>!s::Send ß ; small sharp s (Eszett) +>!+s::Send § ; section sign + +>!/::Send ¿ ; inverted question mark +>!?::Send ¶ ; pilcrow sign + +>!1::Send ¡ ; inverted exclamation mark +>!+1::Send ¹ ; superscript 1 + +>!2::Send © ; copyright sign +>!+2::Send ² ; superscript 2 + +>!3::Send ± ; plus-minus sign +>!+3::Send ³ ; superscript 3 + +>!4::Send £ ; pound sign +>!+4::Send ¥ ; yen sign + +>!5::Send € ; euro sign +>!+5::Send ¢ ; cent sign (dollar) + +>!8::Send „ ; double low-9 quotation mark +>!+8::Send ‚ ; single low-9 quotation mark + +>!9::Send “ ; left double quotation mark +>!+9::Send ‘ ; left single quotation mark + +>!0::Send ” ; right double quotation mark +>!+0::Send ’ ; right single quotation mark + +>!=::Send × ; multiplication sign +>!+=::Send ÷ ; division sign + +>![::Send « ; left-pointing double angle quotation mark +>!{::Send ‹ ; left-pointing single angle quotation mark + +>!]::Send » ; right-pointing double angle quotation mark +>!}::Send › ; right-pointing single angle quotation mark + +>!;::Send ° ; degree sign +>!+;::Send · ; middle dot + +>!6:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCircumflex.item(key) +return +>!+6:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCaron.item(key) +return + +>!7:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkRingDotAbove.item(key) +return +>!+7:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkMacronStroke.item(key) +return + +>!-:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCedillaOgonek.item(key) +return +>!_:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkBreveSpecial.item(key) +return + +>!':: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkAcuteAccent.item(key) +return +>!":: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkDiaeresis.item(key) +return + +>!`:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkGraveAccent.item(key) +return +>!~:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkTilde.item(key) +return + +>!\:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkNotSign.item(key) +return +>!|:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkBrokenBar.item(key) +return + +>!m:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkGreekAlphabet.item(key) +return +>!+m:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkMathSymbols.item(key) +return + +>!space::Send   ; non-breaking space +>!+space::Send   ; non-breaking space diff --git a/UltimateKEYS SW - 2020-04-13.klc b/UltimateKEYS SW - 2020-04-13.klc new file mode 100644 index 0000000000000000000000000000000000000000..4465b44679a02d012a9ea2aabca383e44ec03aff GIT binary patch literal 76254 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 U!tzs0aR*@T4DRfRfARVM0;MoiE&u=k literal 0 HcmV?d00001 -- 2.47.3