//! Glyph name to Unicode mapping
//!
//! This module provides mapping from Adobe Glyph List and related names
//! to Unicode characters.

use std::collections::HashMap;
use std::sync::LazyLock;

pub fn build_glyph_to_unicode_map() -> HashMap<&'static str, char> {
    let mut m = HashMap::with_capacity(4528);
    m.insert("A", 'A');
    m.insert("AE", 'Æ');
    m.insert("AEacute", 'Ǽ');
    m.insert("AEmacron", 'Ǣ');
    m.insert("AEsmall", '');
    m.insert("Aacute", 'Á');
    m.insert("Aacutesmall", '');
    m.insert("Abreve", 'Ă');
    m.insert("Abreveacute", 'Ắ');
    m.insert("Abrevecyrillic", 'Ӑ');
    m.insert("Abrevedotbelow", 'Ặ');
    m.insert("Abrevegrave", 'Ằ');
    m.insert("Abrevehookabove", 'Ẳ');
    m.insert("Abrevetilde", 'Ẵ');
    m.insert("Acaron", 'Ǎ');
    m.insert("Acircle", 'Ⓐ');
    m.insert("Acircumflex", 'Â');
    m.insert("Acircumflexacute", 'Ấ');
    m.insert("Acircumflexdotbelow", 'Ậ');
    m.insert("Acircumflexgrave", 'Ầ');
    m.insert("Acircumflexhookabove", 'Ẩ');
    m.insert("Acircumflexsmall", '');
    m.insert("Acircumflextilde", 'Ẫ');
    m.insert("Acute", '');
    m.insert("Acutesmall", '');
    m.insert("Acyrillic", 'А');
    m.insert("Adblgrave", 'Ȁ');
    m.insert("Adieresis", 'Ä');
    m.insert("Adieresiscyrillic", 'Ӓ');
    m.insert("Adieresismacron", 'Ǟ');
    m.insert("Adieresissmall", '');
    m.insert("Adotbelow", 'Ạ');
    m.insert("Adotmacron", 'Ǡ');
    m.insert("Agrave", 'À');
    m.insert("Agravesmall", '');
    m.insert("Ahookabove", 'Ả');
    m.insert("Aiecyrillic", 'Ӕ');
    m.insert("Ainvertedbreve", 'Ȃ');
    m.insert("Alpha", 'Α');
    m.insert("Alphatonos", 'Ά');
    m.insert("Amacron", 'Ā');
    m.insert("Amonospace", 'Ａ');
    m.insert("Aogonek", 'Ą');
    m.insert("Aring", 'Å');
    m.insert("Aringacute", 'Ǻ');
    m.insert("Aringbelow", 'Ḁ');
    m.insert("Aringsmall", '');
    m.insert("Asmall", '');
    m.insert("Atilde", 'Ã');
    m.insert("Atildesmall", '');
    m.insert("Aybarmenian", 'Ա');
    m.insert("B", 'B');
    m.insert("Bcircle", 'Ⓑ');
    m.insert("Bdotaccent", 'Ḃ');
    m.insert("Bdotbelow", 'Ḅ');
    m.insert("Becyrillic", 'Б');
    m.insert("Benarmenian", 'Բ');
    m.insert("Beta", 'Β');
    m.insert("Bhook", 'Ɓ');
    m.insert("Blinebelow", 'Ḇ');
    m.insert("Bmonospace", 'Ｂ');
    m.insert("Brevesmall", '');
    m.insert("Bsmall", '');
    m.insert("Btopbar", 'Ƃ');
    m.insert("C", 'C');
    m.insert("Caarmenian", 'Ծ');
    m.insert("Cacute", 'Ć');
    m.insert("Caron", '');
    m.insert("Caronsmall", '');
    m.insert("Ccaron", 'Č');
    m.insert("Ccedilla", 'Ç');
    m.insert("Ccedillaacute", 'Ḉ');
    m.insert("Ccedillasmall", '');
    m.insert("Ccircle", 'Ⓒ');
    m.insert("Ccircumflex", 'Ĉ');
    m.insert("Cdot", 'Ċ');
    m.insert("Cdotaccent", 'Ċ');
    m.insert("Cedillasmall", '');
    m.insert("Chaarmenian", 'Չ');
    m.insert("Cheabkhasiancyrillic", 'Ҽ');
    m.insert("Checyrillic", 'Ч');
    m.insert("Chedescenderabkhasiancyrillic", 'Ҿ');
    m.insert("Chedescendercyrillic", 'Ҷ');
    m.insert("Chedieresiscyrillic", 'Ӵ');
    m.insert("Cheharmenian", 'Ճ');
    m.insert("Chekhakassiancyrillic", 'Ӌ');
    m.insert("Cheverticalstrokecyrillic", 'Ҹ');
    m.insert("Chi", 'Χ');
    m.insert("Chook", 'Ƈ');
    m.insert("Circumflexsmall", '');
    m.insert("Cmonospace", 'Ｃ');
    m.insert("Coarmenian", 'Ց');
    m.insert("Csmall", '');
    m.insert("D", 'D');
    m.insert("DZ", 'Ǳ');
    m.insert("DZcaron", 'Ǆ');
    m.insert("Daarmenian", 'Դ');
    m.insert("Dafrican", 'Ɖ');
    m.insert("Dcaron", 'Ď');
    m.insert("Dcedilla", 'Ḑ');
    m.insert("Dcircle", 'Ⓓ');
    m.insert("Dcircumflexbelow", 'Ḓ');
    m.insert("Dcroat", 'Đ');
    m.insert("Ddotaccent", 'Ḋ');
    m.insert("Ddotbelow", 'Ḍ');
    m.insert("Decyrillic", 'Д');
    m.insert("Deicoptic", 'Ϯ');
    m.insert("Delta", '∆');
    m.insert("Deltagreek", 'Δ');
    m.insert("Dhook", 'Ɗ');
    m.insert("Dieresis", '');
    m.insert("DieresisAcute", '');
    m.insert("DieresisGrave", '');
    m.insert("Dieresissmall", '');
    m.insert("Digammagreek", 'Ϝ');
    m.insert("Djecyrillic", 'Ђ');
    m.insert("Dlinebelow", 'Ḏ');
    m.insert("Dmonospace", 'Ｄ');
    m.insert("Dotaccentsmall", '');
    m.insert("Dslash", 'Đ');
    m.insert("Dsmall", '');
    m.insert("Dtopbar", 'Ƌ');
    m.insert("Dz", 'ǲ');
    m.insert("Dzcaron", 'ǅ');
    m.insert("Dzeabkhasiancyrillic", 'Ӡ');
    m.insert("Dzecyrillic", 'Ѕ');
    m.insert("Dzhecyrillic", 'Џ');
    m.insert("E", 'E');
    m.insert("Eacute", 'É');
    m.insert("Eacutesmall", '');
    m.insert("Ebreve", 'Ĕ');
    m.insert("Ecaron", 'Ě');
    m.insert("Ecedillabreve", 'Ḝ');
    m.insert("Echarmenian", 'Ե');
    m.insert("Ecircle", 'Ⓔ');
    m.insert("Ecircumflex", 'Ê');
    m.insert("Ecircumflexacute", 'Ế');
    m.insert("Ecircumflexbelow", 'Ḙ');
    m.insert("Ecircumflexdotbelow", 'Ệ');
    m.insert("Ecircumflexgrave", 'Ề');
    m.insert("Ecircumflexhookabove", 'Ể');
    m.insert("Ecircumflexsmall", '');
    m.insert("Ecircumflextilde", 'Ễ');
    m.insert("Ecyrillic", 'Є');
    m.insert("Edblgrave", 'Ȅ');
    m.insert("Edieresis", 'Ë');
    m.insert("Edieresissmall", '');
    m.insert("Edot", 'Ė');
    m.insert("Edotaccent", 'Ė');
    m.insert("Edotbelow", 'Ẹ');
    m.insert("Efcyrillic", 'Ф');
    m.insert("Egrave", 'È');
    m.insert("Egravesmall", '');
    m.insert("Eharmenian", 'Է');
    m.insert("Ehookabove", 'Ẻ');
    m.insert("Eightroman", 'Ⅷ');
    m.insert("Einvertedbreve", 'Ȇ');
    m.insert("Eiotifiedcyrillic", 'Ѥ');
    m.insert("Elcyrillic", 'Л');
    m.insert("Elevenroman", 'Ⅺ');
    m.insert("Emacron", 'Ē');
    m.insert("Emacronacute", 'Ḗ');
    m.insert("Emacrongrave", 'Ḕ');
    m.insert("Emcyrillic", 'М');
    m.insert("Emonospace", 'Ｅ');
    m.insert("Encyrillic", 'Н');
    m.insert("Endescendercyrillic", 'Ң');
    m.insert("Eng", 'Ŋ');
    m.insert("Enghecyrillic", 'Ҥ');
    m.insert("Enhookcyrillic", 'Ӈ');
    m.insert("Eogonek", 'Ę');
    m.insert("Eopen", 'Ɛ');
    m.insert("Epsilon", 'Ε');
    m.insert("Epsilontonos", 'Έ');
    m.insert("Ercyrillic", 'Р');
    m.insert("Ereversed", 'Ǝ');
    m.insert("Ereversedcyrillic", 'Э');
    m.insert("Escyrillic", 'С');
    m.insert("Esdescendercyrillic", 'Ҫ');
    m.insert("Esh", 'Ʃ');
    m.insert("Esmall", '');
    m.insert("Eta", 'Η');
    m.insert("Etarmenian", 'Ը');
    m.insert("Etatonos", 'Ή');
    m.insert("Eth", 'Ð');
    m.insert("Ethsmall", '');
    m.insert("Etilde", 'Ẽ');
    m.insert("Etildebelow", 'Ḛ');
    m.insert("Euro", '€');
    m.insert("Ezh", 'Ʒ');
    m.insert("Ezhcaron", 'Ǯ');
    m.insert("Ezhreversed", 'Ƹ');
    m.insert("F", 'F');
    m.insert("Fcircle", 'Ⓕ');
    m.insert("Fdotaccent", 'Ḟ');
    m.insert("Feharmenian", 'Ֆ');
    m.insert("Feicoptic", 'Ϥ');
    m.insert("Fhook", 'Ƒ');
    m.insert("Fitacyrillic", 'Ѳ');
    m.insert("Fiveroman", 'Ⅴ');
    m.insert("Fmonospace", 'Ｆ');
    m.insert("Fourroman", 'Ⅳ');
    m.insert("Fsmall", '');
    m.insert("G", 'G');
    m.insert("GBsquare", '㎇');
    m.insert("Gacute", 'Ǵ');
    m.insert("Gamma", 'Γ');
    m.insert("Gammaafrican", 'Ɣ');
    m.insert("Gangiacoptic", 'Ϫ');
    m.insert("Gbreve", 'Ğ');
    m.insert("Gcaron", 'Ǧ');
    m.insert("Gcedilla", 'Ģ');
    m.insert("Gcircle", 'Ⓖ');
    m.insert("Gcircumflex", 'Ĝ');
    m.insert("Gcommaaccent", 'Ģ');
    m.insert("Gdot", 'Ġ');
    m.insert("Gdotaccent", 'Ġ');
    m.insert("Gecyrillic", 'Г');
    m.insert("Ghadarmenian", 'Ղ');
    m.insert("Ghemiddlehookcyrillic", 'Ҕ');
    m.insert("Ghestrokecyrillic", 'Ғ');
    m.insert("Gheupturncyrillic", 'Ґ');
    m.insert("Ghook", 'Ɠ');
    m.insert("Gimarmenian", 'Գ');
    m.insert("Gjecyrillic", 'Ѓ');
    m.insert("Gmacron", 'Ḡ');
    m.insert("Gmonospace", 'Ｇ');
    m.insert("Grave", '');
    m.insert("Gravesmall", '');
    m.insert("Gsmall", '');
    m.insert("Gsmallhook", 'ʛ');
    m.insert("Gstroke", 'Ǥ');
    m.insert("H", 'H');
    m.insert("H18533", '●');
    m.insert("H18543", '▪');
    m.insert("H18551", '▫');
    m.insert("H22073", '□');
    m.insert("HPsquare", '㏋');
    m.insert("Haabkhasiancyrillic", 'Ҩ');
    m.insert("Hadescendercyrillic", 'Ҳ');
    m.insert("Hardsigncyrillic", 'Ъ');
    m.insert("Hbar", 'Ħ');
    m.insert("Hbrevebelow", 'Ḫ');
    m.insert("Hcedilla", 'Ḩ');
    m.insert("Hcircle", 'Ⓗ');
    m.insert("Hcircumflex", 'Ĥ');
    m.insert("Hdieresis", 'Ḧ');
    m.insert("Hdotaccent", 'Ḣ');
    m.insert("Hdotbelow", 'Ḥ');
    m.insert("Hmonospace", 'Ｈ');
    m.insert("Hoarmenian", 'Հ');
    m.insert("Horicoptic", 'Ϩ');
    m.insert("Hsmall", '');
    m.insert("Hungarumlaut", '');
    m.insert("Hungarumlautsmall", '');
    m.insert("Hzsquare", '㎐');
    m.insert("I", 'I');
    m.insert("IAcyrillic", 'Я');
    m.insert("IJ", 'Ĳ');
    m.insert("IUcyrillic", 'Ю');
    m.insert("Iacute", 'Í');
    m.insert("Iacutesmall", '');
    m.insert("Ibreve", 'Ĭ');
    m.insert("Icaron", 'Ǐ');
    m.insert("Icircle", 'Ⓘ');
    m.insert("Icircumflex", 'Î');
    m.insert("Icircumflexsmall", '');
    m.insert("Icyrillic", 'І');
    m.insert("Idblgrave", 'Ȉ');
    m.insert("Idieresis", 'Ï');
    m.insert("Idieresisacute", 'Ḯ');
    m.insert("Idieresiscyrillic", 'Ӥ');
    m.insert("Idieresissmall", '');
    m.insert("Idot", 'İ');
    m.insert("Idotaccent", 'İ');
    m.insert("Idotbelow", 'Ị');
    m.insert("Iebrevecyrillic", 'Ӗ');
    m.insert("Iecyrillic", 'Е');
    m.insert("Ifraktur", 'ℑ');
    m.insert("Igrave", 'Ì');
    m.insert("Igravesmall", '');
    m.insert("Ihookabove", 'Ỉ');
    m.insert("Iicyrillic", 'И');
    m.insert("Iinvertedbreve", 'Ȋ');
    m.insert("Iishortcyrillic", 'Й');
    m.insert("Imacron", 'Ī');
    m.insert("Imacroncyrillic", 'Ӣ');
    m.insert("Imonospace", 'Ｉ');
    m.insert("Iniarmenian", 'Ի');
    m.insert("Iocyrillic", 'Ё');
    m.insert("Iogonek", 'Į');
    m.insert("Iota", 'Ι');
    m.insert("Iotaafrican", 'Ɩ');
    m.insert("Iotadieresis", 'Ϊ');
    m.insert("Iotatonos", 'Ί');
    m.insert("Ismall", '');
    m.insert("Istroke", 'Ɨ');
    m.insert("Itilde", 'Ĩ');
    m.insert("Itildebelow", 'Ḭ');
    m.insert("Izhitsacyrillic", 'Ѵ');
    m.insert("Izhitsadblgravecyrillic", 'Ѷ');
    m.insert("J", 'J');
    m.insert("Jaarmenian", 'Ձ');
    m.insert("Jcircle", 'Ⓙ');
    m.insert("Jcircumflex", 'Ĵ');
    m.insert("Jecyrillic", 'Ј');
    m.insert("Jheharmenian", 'Ջ');
    m.insert("Jmonospace", 'Ｊ');
    m.insert("Jsmall", '');
    m.insert("K", 'K');
    m.insert("KBsquare", '㎅');
    m.insert("KKsquare", '㏍');
    m.insert("Kabashkircyrillic", 'Ҡ');
    m.insert("Kacute", 'Ḱ');
    m.insert("Kacyrillic", 'К');
    m.insert("Kadescendercyrillic", 'Қ');
    m.insert("Kahookcyrillic", 'Ӄ');
    m.insert("Kappa", 'Κ');
    m.insert("Kastrokecyrillic", 'Ҟ');
    m.insert("Kaverticalstrokecyrillic", 'Ҝ');
    m.insert("Kcaron", 'Ǩ');
    m.insert("Kcedilla", 'Ķ');
    m.insert("Kcircle", 'Ⓚ');
    m.insert("Kcommaaccent", 'Ķ');
    m.insert("Kdotbelow", 'Ḳ');
    m.insert("Keharmenian", 'Ք');
    m.insert("Kenarmenian", 'Կ');
    m.insert("Khacyrillic", 'Х');
    m.insert("Kheicoptic", 'Ϧ');
    m.insert("Khook", 'Ƙ');
    m.insert("Kjecyrillic", 'Ќ');
    m.insert("Klinebelow", 'Ḵ');
    m.insert("Kmonospace", 'Ｋ');
    m.insert("Koppacyrillic", 'Ҁ');
    m.insert("Koppagreek", 'Ϟ');
    m.insert("Ksicyrillic", 'Ѯ');
    m.insert("Ksmall", '');
    m.insert("L", 'L');
    m.insert("LJ", 'Ǉ');
    m.insert("LL", '');
    m.insert("Lacute", 'Ĺ');
    m.insert("Lambda", 'Λ');
    m.insert("Lcaron", 'Ľ');
    m.insert("Lcedilla", 'Ļ');
    m.insert("Lcircle", 'Ⓛ');
    m.insert("Lcircumflexbelow", 'Ḽ');
    m.insert("Lcommaaccent", 'Ļ');
    m.insert("Ldot", 'Ŀ');
    m.insert("Ldotaccent", 'Ŀ');
    m.insert("Ldotbelow", 'Ḷ');
    m.insert("Ldotbelowmacron", 'Ḹ');
    m.insert("Liwnarmenian", 'Լ');
    m.insert("Lj", 'ǈ');
    m.insert("Ljecyrillic", 'Љ');
    m.insert("Llinebelow", 'Ḻ');
    m.insert("Lmonospace", 'Ｌ');
    m.insert("Lslash", 'Ł');
    m.insert("Lslashsmall", '');
    m.insert("Lsmall", '');
    m.insert("M", 'M');
    m.insert("MBsquare", '㎆');
    m.insert("Macron", '');
    m.insert("Macronsmall", '');
    m.insert("Macute", 'Ḿ');
    m.insert("Mcircle", 'Ⓜ');
    m.insert("Mdotaccent", 'Ṁ');
    m.insert("Mdotbelow", 'Ṃ');
    m.insert("Menarmenian", 'Մ');
    m.insert("Mmonospace", 'Ｍ');
    m.insert("Msmall", '');
    m.insert("Mturned", 'Ɯ');
    m.insert("Mu", 'Μ');
    m.insert("N", 'N');
    m.insert("NJ", 'Ǌ');
    m.insert("Nacute", 'Ń');
    m.insert("Ncaron", 'Ň');
    m.insert("Ncedilla", 'Ņ');
    m.insert("Ncircle", 'Ⓝ');
    m.insert("Ncircumflexbelow", 'Ṋ');
    m.insert("Ncommaaccent", 'Ņ');
    m.insert("Ndotaccent", 'Ṅ');
    m.insert("Ndotbelow", 'Ṇ');
    m.insert("Nhookleft", 'Ɲ');
    m.insert("Nineroman", 'Ⅸ');
    m.insert("Nj", 'ǋ');
    m.insert("Njecyrillic", 'Њ');
    m.insert("Nlinebelow", 'Ṉ');
    m.insert("Nmonospace", 'Ｎ');
    m.insert("Nowarmenian", 'Ն');
    m.insert("Nsmall", '');
    m.insert("Ntilde", 'Ñ');
    m.insert("Ntildesmall", '');
    m.insert("Nu", 'Ν');
    m.insert("O", 'O');
    m.insert("OE", 'Œ');
    m.insert("OEsmall", '');
    m.insert("Oacute", 'Ó');
    m.insert("Oacutesmall", '');
    m.insert("Obarredcyrillic", 'Ө');
    m.insert("Obarreddieresiscyrillic", 'Ӫ');
    m.insert("Obreve", 'Ŏ');
    m.insert("Ocaron", 'Ǒ');
    m.insert("Ocenteredtilde", 'Ɵ');
    m.insert("Ocircle", 'Ⓞ');
    m.insert("Ocircumflex", 'Ô');
    m.insert("Ocircumflexacute", 'Ố');
    m.insert("Ocircumflexdotbelow", 'Ộ');
    m.insert("Ocircumflexgrave", 'Ồ');
    m.insert("Ocircumflexhookabove", 'Ổ');
    m.insert("Ocircumflexsmall", '');
    m.insert("Ocircumflextilde", 'Ỗ');
    m.insert("Ocyrillic", 'О');
    m.insert("Odblacute", 'Ő');
    m.insert("Odblgrave", 'Ȍ');
    m.insert("Odieresis", 'Ö');
    m.insert("Odieresiscyrillic", 'Ӧ');
    m.insert("Odieresissmall", '');
    m.insert("Odotbelow", 'Ọ');
    m.insert("Ogoneksmall", '');
    m.insert("Ograve", 'Ò');
    m.insert("Ogravesmall", '');
    m.insert("Oharmenian", 'Օ');
    m.insert("Ohm", 'Ω');
    m.insert("Ohookabove", 'Ỏ');
    m.insert("Ohorn", 'Ơ');
    m.insert("Ohornacute", 'Ớ');
    m.insert("Ohorndotbelow", 'Ợ');
    m.insert("Ohorngrave", 'Ờ');
    m.insert("Ohornhookabove", 'Ở');
    m.insert("Ohorntilde", 'Ỡ');
    m.insert("Ohungarumlaut", 'Ő');
    m.insert("Oi", 'Ƣ');
    m.insert("Oinvertedbreve", 'Ȏ');
    m.insert("Omacron", 'Ō');
    m.insert("Omacronacute", 'Ṓ');
    m.insert("Omacrongrave", 'Ṑ');
    m.insert("Omega", 'Ω');
    m.insert("Omegacyrillic", 'Ѡ');
    m.insert("Omegagreek", 'Ω');
    m.insert("Omegaroundcyrillic", 'Ѻ');
    m.insert("Omegatitlocyrillic", 'Ѽ');
    m.insert("Omegatonos", 'Ώ');
    m.insert("Omicron", 'Ο');
    m.insert("Omicrontonos", 'Ό');
    m.insert("Omonospace", 'Ｏ');
    m.insert("Oneroman", 'Ⅰ');
    m.insert("Oogonek", 'Ǫ');
    m.insert("Oogonekmacron", 'Ǭ');
    m.insert("Oopen", 'Ɔ');
    m.insert("Oslash", 'Ø');
    m.insert("Oslashacute", 'Ǿ');
    m.insert("Oslashsmall", '');
    m.insert("Osmall", '');
    m.insert("Ostrokeacute", 'Ǿ');
    m.insert("Otcyrillic", 'Ѿ');
    m.insert("Otilde", 'Õ');
    m.insert("Otildeacute", 'Ṍ');
    m.insert("Otildedieresis", 'Ṏ');
    m.insert("Otildesmall", '');
    m.insert("P", 'P');
    m.insert("Pacute", 'Ṕ');
    m.insert("Pcircle", 'Ⓟ');
    m.insert("Pdotaccent", 'Ṗ');
    m.insert("Pecyrillic", 'П');
    m.insert("Peharmenian", 'Պ');
    m.insert("Pemiddlehookcyrillic", 'Ҧ');
    m.insert("Phi", 'Φ');
    m.insert("Phook", 'Ƥ');
    m.insert("Pi", 'Π');
    m.insert("Piwrarmenian", 'Փ');
    m.insert("Pmonospace", 'Ｐ');
    m.insert("Psi", 'Ψ');
    m.insert("Psicyrillic", 'Ѱ');
    m.insert("Psmall", '');
    m.insert("Q", 'Q');
    m.insert("Qcircle", 'Ⓠ');
    m.insert("Qmonospace", 'Ｑ');
    m.insert("Qsmall", '');
    m.insert("R", 'R');
    m.insert("Raarmenian", 'Ռ');
    m.insert("Racute", 'Ŕ');
    m.insert("Rcaron", 'Ř');
    m.insert("Rcedilla", 'Ŗ');
    m.insert("Rcircle", 'Ⓡ');
    m.insert("Rcommaaccent", 'Ŗ');
    m.insert("Rdblgrave", 'Ȑ');
    m.insert("Rdotaccent", 'Ṙ');
    m.insert("Rdotbelow", 'Ṛ');
    m.insert("Rdotbelowmacron", 'Ṝ');
    m.insert("Reharmenian", 'Ր');
    m.insert("Rfraktur", 'ℜ');
    m.insert("Rho", 'Ρ');
    m.insert("Ringsmall", '');
    m.insert("Rinvertedbreve", 'Ȓ');
    m.insert("Rlinebelow", 'Ṟ');
    m.insert("Rmonospace", 'Ｒ');
    m.insert("Rsmall", '');
    m.insert("Rsmallinverted", 'ʁ');
    m.insert("Rsmallinvertedsuperior", 'ʶ');
    m.insert("S", 'S');
    m.insert("SF010000", '┌');
    m.insert("SF020000", '└');
    m.insert("SF030000", '┐');
    m.insert("SF040000", '┘');
    m.insert("SF050000", '┼');
    m.insert("SF060000", '┬');
    m.insert("SF070000", '┴');
    m.insert("SF080000", '├');
    m.insert("SF090000", '┤');
    m.insert("SF100000", '─');
    m.insert("SF110000", '│');
    m.insert("SF190000", '╡');
    m.insert("SF200000", '╢');
    m.insert("SF210000", '╖');
    m.insert("SF220000", '╕');
    m.insert("SF230000", '╣');
    m.insert("SF240000", '║');
    m.insert("SF250000", '╗');
    m.insert("SF260000", '╝');
    m.insert("SF270000", '╜');
    m.insert("SF280000", '╛');
    m.insert("SF360000", '╞');
    m.insert("SF370000", '╟');
    m.insert("SF380000", '╚');
    m.insert("SF390000", '╔');
    m.insert("SF400000", '╩');
    m.insert("SF410000", '╦');
    m.insert("SF420000", '╠');
    m.insert("SF430000", '═');
    m.insert("SF440000", '╬');
    m.insert("SF450000", '╧');
    m.insert("SF460000", '╨');
    m.insert("SF470000", '╤');
    m.insert("SF480000", '╥');
    m.insert("SF490000", '╙');
    m.insert("SF500000", '╘');
    m.insert("SF510000", '╒');
    m.insert("SF520000", '╓');
    m.insert("SF530000", '╫');
    m.insert("SF540000", '╪');
    m.insert("Sacute", 'Ś');
    m.insert("Sacutedotaccent", 'Ṥ');
    m.insert("Sampigreek", 'Ϡ');
    m.insert("Scaron", 'Š');
    m.insert("Scarondotaccent", 'Ṧ');
    m.insert("Scaronsmall", '');
    m.insert("Scedilla", 'Ş');
    m.insert("Schwa", 'Ə');
    m.insert("Schwacyrillic", 'Ә');
    m.insert("Schwadieresiscyrillic", 'Ӛ');
    m.insert("Scircle", 'Ⓢ');
    m.insert("Scircumflex", 'Ŝ');
    m.insert("Scommaaccent", 'Ș');
    m.insert("Sdotaccent", 'Ṡ');
    m.insert("Sdotbelow", 'Ṣ');
    m.insert("Sdotbelowdotaccent", 'Ṩ');
    m.insert("Seharmenian", 'Ս');
    m.insert("Sevenroman", 'Ⅶ');
    m.insert("Shaarmenian", 'Շ');
    m.insert("Shacyrillic", 'Ш');
    m.insert("Shchacyrillic", 'Щ');
    m.insert("Sheicoptic", 'Ϣ');
    m.insert("Shhacyrillic", 'Һ');
    m.insert("Shimacoptic", 'Ϭ');
    m.insert("Sigma", 'Σ');
    m.insert("Sixroman", 'Ⅵ');
    m.insert("Smonospace", 'Ｓ');
    m.insert("Softsigncyrillic", 'Ь');
    m.insert("Ssmall", '');
    m.insert("Stigmagreek", 'Ϛ');
    m.insert("T", 'T');
    m.insert("Tau", 'Τ');
    m.insert("Tbar", 'Ŧ');
    m.insert("Tcaron", 'Ť');
    m.insert("Tcedilla", 'Ţ');
    m.insert("Tcircle", 'Ⓣ');
    m.insert("Tcircumflexbelow", 'Ṱ');
    m.insert("Tcommaaccent", 'Ţ');
    m.insert("Tdotaccent", 'Ṫ');
    m.insert("Tdotbelow", 'Ṭ');
    m.insert("Tecyrillic", 'Т');
    m.insert("Tedescendercyrillic", 'Ҭ');
    m.insert("Tenroman", 'Ⅹ');
    m.insert("Tetsecyrillic", 'Ҵ');
    m.insert("Theta", 'Θ');
    m.insert("Thook", 'Ƭ');
    m.insert("Thorn", 'Þ');
    m.insert("Thornsmall", '');
    m.insert("Threeroman", 'Ⅲ');
    m.insert("Tildesmall", '');
    m.insert("Tiwnarmenian", 'Տ');
    m.insert("Tlinebelow", 'Ṯ');
    m.insert("Tmonospace", 'Ｔ');
    m.insert("Toarmenian", 'Թ');
    m.insert("Tonefive", 'Ƽ');
    m.insert("Tonesix", 'Ƅ');
    m.insert("Tonetwo", 'Ƨ');
    m.insert("Tretroflexhook", 'Ʈ');
    m.insert("Tsecyrillic", 'Ц');
    m.insert("Tshecyrillic", 'Ћ');
    m.insert("Tsmall", '');
    m.insert("Twelveroman", 'Ⅻ');
    m.insert("Tworoman", 'Ⅱ');
    m.insert("U", 'U');
    m.insert("Uacute", 'Ú');
    m.insert("Uacutesmall", '');
    m.insert("Ubreve", 'Ŭ');
    m.insert("Ucaron", 'Ǔ');
    m.insert("Ucircle", 'Ⓤ');
    m.insert("Ucircumflex", 'Û');
    m.insert("Ucircumflexbelow", 'Ṷ');
    m.insert("Ucircumflexsmall", '');
    m.insert("Ucyrillic", 'У');
    m.insert("Udblacute", 'Ű');
    m.insert("Udblgrave", 'Ȕ');
    m.insert("Udieresis", 'Ü');
    m.insert("Udieresisacute", 'Ǘ');
    m.insert("Udieresisbelow", 'Ṳ');
    m.insert("Udieresiscaron", 'Ǚ');
    m.insert("Udieresiscyrillic", 'Ӱ');
    m.insert("Udieresisgrave", 'Ǜ');
    m.insert("Udieresismacron", 'Ǖ');
    m.insert("Udieresissmall", '');
    m.insert("Udotbelow", 'Ụ');
    m.insert("Ugrave", 'Ù');
    m.insert("Ugravesmall", '');
    m.insert("Uhookabove", 'Ủ');
    m.insert("Uhorn", 'Ư');
    m.insert("Uhornacute", 'Ứ');
    m.insert("Uhorndotbelow", 'Ự');
    m.insert("Uhorngrave", 'Ừ');
    m.insert("Uhornhookabove", 'Ử');
    m.insert("Uhorntilde", 'Ữ');
    m.insert("Uhungarumlaut", 'Ű');
    m.insert("Uhungarumlautcyrillic", 'Ӳ');
    m.insert("Uinvertedbreve", 'Ȗ');
    m.insert("Ukcyrillic", 'Ѹ');
    m.insert("Umacron", 'Ū');
    m.insert("Umacroncyrillic", 'Ӯ');
    m.insert("Umacrondieresis", 'Ṻ');
    m.insert("Umonospace", 'Ｕ');
    m.insert("Uogonek", 'Ų');
    m.insert("Upsilon", 'Υ');
    m.insert("Upsilon1", 'ϒ');
    m.insert("Upsilonacutehooksymbolgreek", 'ϓ');
    m.insert("Upsilonafrican", 'Ʊ');
    m.insert("Upsilondieresis", 'Ϋ');
    m.insert("Upsilondieresishooksymbolgreek", 'ϔ');
    m.insert("Upsilonhooksymbol", 'ϒ');
    m.insert("Upsilontonos", 'Ύ');
    m.insert("Uring", 'Ů');
    m.insert("Ushortcyrillic", 'Ў');
    m.insert("Usmall", '');
    m.insert("Ustraightcyrillic", 'Ү');
    m.insert("Ustraightstrokecyrillic", 'Ұ');
    m.insert("Utilde", 'Ũ');
    m.insert("Utildeacute", 'Ṹ');
    m.insert("Utildebelow", 'Ṵ');
    m.insert("V", 'V');
    m.insert("Vcircle", 'Ⓥ');
    m.insert("Vdotbelow", 'Ṿ');
    m.insert("Vecyrillic", 'В');
    m.insert("Vewarmenian", 'Վ');
    m.insert("Vhook", 'Ʋ');
    m.insert("Vmonospace", 'Ｖ');
    m.insert("Voarmenian", 'Ո');
    m.insert("Vsmall", '');
    m.insert("Vtilde", 'Ṽ');
    m.insert("W", 'W');
    m.insert("Wacute", 'Ẃ');
    m.insert("Wcircle", 'Ⓦ');
    m.insert("Wcircumflex", 'Ŵ');
    m.insert("Wdieresis", 'Ẅ');
    m.insert("Wdotaccent", 'Ẇ');
    m.insert("Wdotbelow", 'Ẉ');
    m.insert("Wgrave", 'Ẁ');
    m.insert("Wmonospace", 'Ｗ');
    m.insert("Wsmall", '');
    m.insert("X", 'X');
    m.insert("Xcircle", 'Ⓧ');
    m.insert("Xdieresis", 'Ẍ');
    m.insert("Xdotaccent", 'Ẋ');
    m.insert("Xeharmenian", 'Խ');
    m.insert("Xi", 'Ξ');
    m.insert("Xmonospace", 'Ｘ');
    m.insert("Xsmall", '');
    m.insert("Y", 'Y');
    m.insert("Yacute", 'Ý');
    m.insert("Yacutesmall", '');
    m.insert("Yatcyrillic", 'Ѣ');
    m.insert("Ycircle", 'Ⓨ');
    m.insert("Ycircumflex", 'Ŷ');
    m.insert("Ydieresis", 'Ÿ');
    m.insert("Ydieresissmall", '');
    m.insert("Ydotaccent", 'Ẏ');
    m.insert("Ydotbelow", 'Ỵ');
    m.insert("Yericyrillic", 'Ы');
    m.insert("Yerudieresiscyrillic", 'Ӹ');
    m.insert("Ygrave", 'Ỳ');
    m.insert("Yhook", 'Ƴ');
    m.insert("Yhookabove", 'Ỷ');
    m.insert("Yiarmenian", 'Յ');
    m.insert("Yicyrillic", 'Ї');
    m.insert("Yiwnarmenian", 'Ւ');
    m.insert("Ymonospace", 'Ｙ');
    m.insert("Ysmall", '');
    m.insert("Ytilde", 'Ỹ');
    m.insert("Yusbigcyrillic", 'Ѫ');
    m.insert("Yusbigiotifiedcyrillic", 'Ѭ');
    m.insert("Yuslittlecyrillic", 'Ѧ');
    m.insert("Yuslittleiotifiedcyrillic", 'Ѩ');
    m.insert("Z", 'Z');
    m.insert("Zaarmenian", 'Զ');
    m.insert("Zacute", 'Ź');
    m.insert("Zcaron", 'Ž');
    m.insert("Zcaronsmall", '');
    m.insert("Zcircle", 'Ⓩ');
    m.insert("Zcircumflex", 'Ẑ');
    m.insert("Zdot", 'Ż');
    m.insert("Zdotaccent", 'Ż');
    m.insert("Zdotbelow", 'Ẓ');
    m.insert("Zecyrillic", 'З');
    m.insert("Zedescendercyrillic", 'Ҙ');
    m.insert("Zedieresiscyrillic", 'Ӟ');
    m.insert("Zeta", 'Ζ');
    m.insert("Zhearmenian", 'Ժ');
    m.insert("Zhebrevecyrillic", 'Ӂ');
    m.insert("Zhecyrillic", 'Ж');
    m.insert("Zhedescendercyrillic", 'Җ');
    m.insert("Zhedieresiscyrillic", 'Ӝ');
    m.insert("Zlinebelow", 'Ẕ');
    m.insert("Zmonospace", 'Ｚ');
    m.insert("Zsmall", '');
    m.insert("Zstroke", 'Ƶ');
    m.insert("a", 'a');
    m.insert("a1", '✁');
    m.insert("a10", '✡');
    m.insert("a100", '❞');
    m.insert("a101", '❡');
    m.insert("a102", '❢');
    m.insert("a103", '❣');
    m.insert("a104", '❤');
    m.insert("a105", '✐');
    m.insert("a106", '❥');
    m.insert("a107", '❦');
    m.insert("a108", '❧');
    m.insert("a109", '♠');
    m.insert("a11", '☛');
    m.insert("a110", '♥');
    m.insert("a111", '♦');
    m.insert("a112", '♣');
    m.insert("a117", '✉');
    m.insert("a118", '✈');
    m.insert("a119", '✇');
    m.insert("a12", '☞');
    m.insert("a120", '①');
    m.insert("a121", '②');
    m.insert("a122", '③');
    m.insert("a123", '④');
    m.insert("a124", '⑤');
    m.insert("a125", '⑥');
    m.insert("a126", '⑦');
    m.insert("a127", '⑧');
    m.insert("a128", '⑨');
    m.insert("a129", '⑩');
    m.insert("a13", '✌');
    m.insert("a130", '❶');
    m.insert("a131", '❷');
    m.insert("a132", '❸');
    m.insert("a133", '❹');
    m.insert("a134", '❺');
    m.insert("a135", '❻');
    m.insert("a136", '❼');
    m.insert("a137", '❽');
    m.insert("a138", '❾');
    m.insert("a139", '❿');
    m.insert("a14", '✍');
    m.insert("a140", '➀');
    m.insert("a141", '➁');
    m.insert("a142", '➂');
    m.insert("a143", '➃');
    m.insert("a144", '➄');
    m.insert("a145", '➅');
    m.insert("a146", '➆');
    m.insert("a147", '➇');
    m.insert("a148", '➈');
    m.insert("a149", '➉');
    m.insert("a15", '✎');
    m.insert("a150", '➊');
    m.insert("a151", '➋');
    m.insert("a152", '➌');
    m.insert("a153", '➍');
    m.insert("a154", '➎');
    m.insert("a155", '➏');
    m.insert("a156", '➐');
    m.insert("a157", '➑');
    m.insert("a158", '➒');
    m.insert("a159", '➓');
    m.insert("a16", '✏');
    m.insert("a160", '➔');
    m.insert("a161", '→');
    m.insert("a162", '➣');
    m.insert("a163", '↔');
    m.insert("a164", '↕');
    m.insert("a165", '➙');
    m.insert("a166", '➛');
    m.insert("a167", '➜');
    m.insert("a168", '➝');
    m.insert("a169", '➞');
    m.insert("a17", '✑');
    m.insert("a170", '➟');
    m.insert("a171", '➠');
    m.insert("a172", '➡');
    m.insert("a173", '➢');
    m.insert("a174", '➤');
    m.insert("a175", '➥');
    m.insert("a176", '➦');
    m.insert("a177", '➧');
    m.insert("a178", '➨');
    m.insert("a179", '➩');
    m.insert("a18", '✒');
    m.insert("a180", '➫');
    m.insert("a181", '➭');
    m.insert("a182", '➯');
    m.insert("a183", '➲');
    m.insert("a184", '➳');
    m.insert("a185", '➵');
    m.insert("a186", '➸');
    m.insert("a187", '➺');
    m.insert("a188", '➻');
    m.insert("a189", '➼');
    m.insert("a19", '✓');
    m.insert("a190", '➽');
    m.insert("a191", '➾');
    m.insert("a192", '➚');
    m.insert("a193", '➪');
    m.insert("a194", '➶');
    m.insert("a195", '➹');
    m.insert("a196", '➘');
    m.insert("a197", '➴');
    m.insert("a198", '➷');
    m.insert("a199", '➬');
    m.insert("a2", '✂');
    m.insert("a20", '✔');
    m.insert("a200", '➮');
    m.insert("a201", '➱');
    m.insert("a202", '✃');
    m.insert("a203", '❐');
    m.insert("a204", '❒');
    m.insert("a205", '❮');
    m.insert("a206", '❰');
    m.insert("a21", '✕');
    m.insert("a22", '✖');
    m.insert("a23", '✗');
    m.insert("a24", '✘');
    m.insert("a25", '✙');
    m.insert("a26", '✚');
    m.insert("a27", '✛');
    m.insert("a28", '✜');
    m.insert("a29", '✢');
    m.insert("a3", '✄');
    m.insert("a30", '✣');
    m.insert("a31", '✤');
    m.insert("a32", '✥');
    m.insert("a33", '✦');
    m.insert("a34", '✧');
    m.insert("a35", '★');
    m.insert("a36", '✩');
    m.insert("a37", '✪');
    m.insert("a38", '✫');
    m.insert("a39", '✬');
    m.insert("a4", '☎');
    m.insert("a40", '✭');
    m.insert("a41", '✮');
    m.insert("a42", '✯');
    m.insert("a43", '✰');
    m.insert("a44", '✱');
    m.insert("a45", '✲');
    m.insert("a46", '✳');
    m.insert("a47", '✴');
    m.insert("a48", '✵');
    m.insert("a49", '✶');
    m.insert("a5", '✆');
    m.insert("a50", '✷');
    m.insert("a51", '✸');
    m.insert("a52", '✹');
    m.insert("a53", '✺');
    m.insert("a54", '✻');
    m.insert("a55", '✼');
    m.insert("a56", '✽');
    m.insert("a57", '✾');
    m.insert("a58", '✿');
    m.insert("a59", '❀');
    m.insert("a6", '✝');
    m.insert("a60", '❁');
    m.insert("a61", '❂');
    m.insert("a62", '❃');
    m.insert("a63", '❄');
    m.insert("a64", '❅');
    m.insert("a65", '❆');
    m.insert("a66", '❇');
    m.insert("a67", '❈');
    m.insert("a68", '❉');
    m.insert("a69", '❊');
    m.insert("a7", '✞');
    m.insert("a70", '❋');
    m.insert("a71", '●');
    m.insert("a72", '❍');
    m.insert("a73", '■');
    m.insert("a74", '❏');
    m.insert("a75", '❑');
    m.insert("a76", '▲');
    m.insert("a77", '▼');
    m.insert("a78", '◆');
    m.insert("a79", '❖');
    m.insert("a8", '✟');
    m.insert("a81", '◗');
    m.insert("a82", '❘');
    m.insert("a83", '❙');
    m.insert("a84", '❚');
    m.insert("a85", '❯');
    m.insert("a86", '❱');
    m.insert("a87", '❲');
    m.insert("a88", '❳');
    m.insert("a89", '❨');
    m.insert("a9", '✠');
    m.insert("a90", '❩');
    m.insert("a91", '❬');
    m.insert("a92", '❭');
    m.insert("a93", '❪');
    m.insert("a94", '❫');
    m.insert("a95", '❴');
    m.insert("a96", '❵');
    m.insert("a97", '❛');
    m.insert("a98", '❜');
    m.insert("a99", '❝');
    m.insert("aabengali", 'আ');
    m.insert("aacute", 'á');
    m.insert("aadeva", 'आ');
    m.insert("aagujarati", 'આ');
    m.insert("aagurmukhi", 'ਆ');
    m.insert("aamatragurmukhi", 'ਾ');
    m.insert("aarusquare", '㌃');
    m.insert("aavowelsignbengali", 'া');
    m.insert("aavowelsigndeva", 'ा');
    m.insert("aavowelsigngujarati", 'ા');
    m.insert("abbreviationmarkarmenian", '՟');
    m.insert("abbreviationsigndeva", '॰');
    m.insert("abengali", 'অ');
    m.insert("abopomofo", 'ㄚ');
    m.insert("abreve", 'ă');
    m.insert("abreveacute", 'ắ');
    m.insert("abrevecyrillic", 'ӑ');
    m.insert("abrevedotbelow", 'ặ');
    m.insert("abrevegrave", 'ằ');
    m.insert("abrevehookabove", 'ẳ');
    m.insert("abrevetilde", 'ẵ');
    m.insert("acaron", 'ǎ');
    m.insert("acircle", 'ⓐ');
    m.insert("acircumflex", 'â');
    m.insert("acircumflexacute", 'ấ');
    m.insert("acircumflexdotbelow", 'ậ');
    m.insert("acircumflexgrave", 'ầ');
    m.insert("acircumflexhookabove", 'ẩ');
    m.insert("acircumflextilde", 'ẫ');
    m.insert("acute", '´');
    m.insert("acutebelowcmb", '̗');
    m.insert("acutecmb", '́');
    m.insert("acutecomb", '́');
    m.insert("acutedeva", '॔');
    m.insert("acutelowmod", 'ˏ');
    m.insert("acutetonecmb", '́');
    m.insert("acyrillic", 'а');
    m.insert("adblgrave", 'ȁ');
    m.insert("addakgurmukhi", 'ੱ');
    m.insert("adeva", 'अ');
    m.insert("adieresis", 'ä');
    m.insert("adieresiscyrillic", 'ӓ');
    m.insert("adieresismacron", 'ǟ');
    m.insert("adotbelow", 'ạ');
    m.insert("adotmacron", 'ǡ');
    m.insert("ae", 'æ');
    m.insert("aeacute", 'ǽ');
    m.insert("aekorean", 'ㅐ');
    m.insert("aemacron", 'ǣ');
    m.insert("afii00208", '―');
    m.insert("afii08941", '₤');
    m.insert("afii10017", 'А');
    m.insert("afii10018", 'Б');
    m.insert("afii10019", 'В');
    m.insert("afii10020", 'Г');
    m.insert("afii10021", 'Д');
    m.insert("afii10022", 'Е');
    m.insert("afii10023", 'Ё');
    m.insert("afii10024", 'Ж');
    m.insert("afii10025", 'З');
    m.insert("afii10026", 'И');
    m.insert("afii10027", 'Й');
    m.insert("afii10028", 'К');
    m.insert("afii10029", 'Л');
    m.insert("afii10030", 'М');
    m.insert("afii10031", 'Н');
    m.insert("afii10032", 'О');
    m.insert("afii10033", 'П');
    m.insert("afii10034", 'Р');
    m.insert("afii10035", 'С');
    m.insert("afii10036", 'Т');
    m.insert("afii10037", 'У');
    m.insert("afii10038", 'Ф');
    m.insert("afii10039", 'Х');
    m.insert("afii10040", 'Ц');
    m.insert("afii10041", 'Ч');
    m.insert("afii10042", 'Ш');
    m.insert("afii10043", 'Щ');
    m.insert("afii10044", 'Ъ');
    m.insert("afii10045", 'Ы');
    m.insert("afii10046", 'Ь');
    m.insert("afii10047", 'Э');
    m.insert("afii10048", 'Ю');
    m.insert("afii10049", 'Я');
    m.insert("afii10050", 'Ґ');
    m.insert("afii10051", 'Ђ');
    m.insert("afii10052", 'Ѓ');
    m.insert("afii10053", 'Є');
    m.insert("afii10054", 'Ѕ');
    m.insert("afii10055", 'І');
    m.insert("afii10056", 'Ї');
    m.insert("afii10057", 'Ј');
    m.insert("afii10058", 'Љ');
    m.insert("afii10059", 'Њ');
    m.insert("afii10060", 'Ћ');
    m.insert("afii10061", 'Ќ');
    m.insert("afii10062", 'Ў');
    m.insert("afii10063", '');
    m.insert("afii10064", '');
    m.insert("afii10065", 'а');
    m.insert("afii10066", 'б');
    m.insert("afii10067", 'в');
    m.insert("afii10068", 'г');
    m.insert("afii10069", 'д');
    m.insert("afii10070", 'е');
    m.insert("afii10071", 'ё');
    m.insert("afii10072", 'ж');
    m.insert("afii10073", 'з');
    m.insert("afii10074", 'и');
    m.insert("afii10075", 'й');
    m.insert("afii10076", 'к');
    m.insert("afii10077", 'л');
    m.insert("afii10078", 'м');
    m.insert("afii10079", 'н');
    m.insert("afii10080", 'о');
    m.insert("afii10081", 'п');
    m.insert("afii10082", 'р');
    m.insert("afii10083", 'с');
    m.insert("afii10084", 'т');
    m.insert("afii10085", 'у');
    m.insert("afii10086", 'ф');
    m.insert("afii10087", 'х');
    m.insert("afii10088", 'ц');
    m.insert("afii10089", 'ч');
    m.insert("afii10090", 'ш');
    m.insert("afii10091", 'щ');
    m.insert("afii10092", 'ъ');
    m.insert("afii10093", 'ы');
    m.insert("afii10094", 'ь');
    m.insert("afii10095", 'э');
    m.insert("afii10096", 'ю');
    m.insert("afii10097", 'я');
    m.insert("afii10098", 'ґ');
    m.insert("afii10099", 'ђ');
    m.insert("afii10100", 'ѓ');
    m.insert("afii10101", 'є');
    m.insert("afii10102", 'ѕ');
    m.insert("afii10103", 'і');
    m.insert("afii10104", 'ї');
    m.insert("afii10105", 'ј');
    m.insert("afii10106", 'љ');
    m.insert("afii10107", 'њ');
    m.insert("afii10108", 'ћ');
    m.insert("afii10109", 'ќ');
    m.insert("afii10110", 'ў');
    m.insert("afii10145", 'Џ');
    m.insert("afii10146", 'Ѣ');
    m.insert("afii10147", 'Ѳ');
    m.insert("afii10148", 'Ѵ');
    m.insert("afii10192", '');
    m.insert("afii10193", 'џ');
    m.insert("afii10194", 'ѣ');
    m.insert("afii10195", 'ѳ');
    m.insert("afii10196", 'ѵ');
    m.insert("afii10831", '');
    m.insert("afii10832", '');
    m.insert("afii10846", 'ә');
    m.insert("afii299", '‎');
    m.insert("afii300", '‏');
    m.insert("afii301", '‍');
    m.insert("afii57381", '٪');
    m.insert("afii57388", '،');
    m.insert("afii57392", '٠');
    m.insert("afii57393", '١');
    m.insert("afii57394", '٢');
    m.insert("afii57395", '٣');
    m.insert("afii57396", '٤');
    m.insert("afii57397", '٥');
    m.insert("afii57398", '٦');
    m.insert("afii57399", '٧');
    m.insert("afii57400", '٨');
    m.insert("afii57401", '٩');
    m.insert("afii57403", '؛');
    m.insert("afii57407", '؟');
    m.insert("afii57409", 'ء');
    m.insert("afii57410", 'آ');
    m.insert("afii57411", 'أ');
    m.insert("afii57412", 'ؤ');
    m.insert("afii57413", 'إ');
    m.insert("afii57414", 'ئ');
    m.insert("afii57415", 'ا');
    m.insert("afii57416", 'ب');
    m.insert("afii57417", 'ة');
    m.insert("afii57418", 'ت');
    m.insert("afii57419", 'ث');
    m.insert("afii57420", 'ج');
    m.insert("afii57421", 'ح');
    m.insert("afii57422", 'خ');
    m.insert("afii57423", 'د');
    m.insert("afii57424", 'ذ');
    m.insert("afii57425", 'ر');
    m.insert("afii57426", 'ز');
    m.insert("afii57427", 'س');
    m.insert("afii57428", 'ش');
    m.insert("afii57429", 'ص');
    m.insert("afii57430", 'ض');
    m.insert("afii57431", 'ط');
    m.insert("afii57432", 'ظ');
    m.insert("afii57433", 'ع');
    m.insert("afii57434", 'غ');
    m.insert("afii57440", 'ـ');
    m.insert("afii57441", 'ف');
    m.insert("afii57442", 'ق');
    m.insert("afii57443", 'ك');
    m.insert("afii57444", 'ل');
    m.insert("afii57445", 'م');
    m.insert("afii57446", 'ن');
    m.insert("afii57448", 'و');
    m.insert("afii57449", 'ى');
    m.insert("afii57450", 'ي');
    m.insert("afii57451", 'ً');
    m.insert("afii57452", 'ٌ');
    m.insert("afii57453", 'ٍ');
    m.insert("afii57454", 'َ');
    m.insert("afii57455", 'ُ');
    m.insert("afii57456", 'ِ');
    m.insert("afii57457", 'ّ');
    m.insert("afii57458", 'ْ');
    m.insert("afii57470", 'ه');
    m.insert("afii57505", 'ڤ');
    m.insert("afii57506", 'پ');
    m.insert("afii57507", 'چ');
    m.insert("afii57508", 'ژ');
    m.insert("afii57509", 'گ');
    m.insert("afii57511", 'ٹ');
    m.insert("afii57512", 'ڈ');
    m.insert("afii57513", 'ڑ');
    m.insert("afii57514", 'ں');
    m.insert("afii57519", 'ے');
    m.insert("afii57534", 'ە');
    m.insert("afii57636", '₪');
    m.insert("afii57645", '־');
    m.insert("afii57658", '׃');
    m.insert("afii57664", 'א');
    m.insert("afii57665", 'ב');
    m.insert("afii57666", 'ג');
    m.insert("afii57667", 'ד');
    m.insert("afii57668", 'ה');
    m.insert("afii57669", 'ו');
    m.insert("afii57670", 'ז');
    m.insert("afii57671", 'ח');
    m.insert("afii57672", 'ט');
    m.insert("afii57673", 'י');
    m.insert("afii57674", 'ך');
    m.insert("afii57675", 'כ');
    m.insert("afii57676", 'ל');
    m.insert("afii57677", 'ם');
    m.insert("afii57678", 'מ');
    m.insert("afii57679", 'ן');
    m.insert("afii57680", 'נ');
    m.insert("afii57681", 'ס');
    m.insert("afii57682", 'ע');
    m.insert("afii57683", 'ף');
    m.insert("afii57684", 'פ');
    m.insert("afii57685", 'ץ');
    m.insert("afii57686", 'צ');
    m.insert("afii57687", 'ק');
    m.insert("afii57688", 'ר');
    m.insert("afii57689", 'ש');
    m.insert("afii57690", 'ת');
    m.insert("afii57694", 'שׁ');
    m.insert("afii57695", 'שׂ');
    m.insert("afii57700", 'וֹ');
    m.insert("afii57705", 'ײַ');
    m.insert("afii57716", 'װ');
    m.insert("afii57717", 'ױ');
    m.insert("afii57718", 'ײ');
    m.insert("afii57723", 'וּ');
    m.insert("afii57793", 'ִ');
    m.insert("afii57794", 'ֵ');
    m.insert("afii57795", 'ֶ');
    m.insert("afii57796", 'ֻ');
    m.insert("afii57797", 'ָ');
    m.insert("afii57798", 'ַ');
    m.insert("afii57799", 'ְ');
    m.insert("afii57800", 'ֲ');
    m.insert("afii57801", 'ֱ');
    m.insert("afii57802", 'ֳ');
    m.insert("afii57803", 'ׂ');
    m.insert("afii57804", 'ׁ');
    m.insert("afii57806", 'ֹ');
    m.insert("afii57807", 'ּ');
    m.insert("afii57839", 'ֽ');
    m.insert("afii57841", 'ֿ');
    m.insert("afii57842", '׀');
    m.insert("afii57929", 'ʼ');
    m.insert("afii61248", '℅');
    m.insert("afii61289", 'ℓ');
    m.insert("afii61352", '№');
    m.insert("afii61573", '\u{202C}');
    m.insert("afii61574", '\u{202D}');
    m.insert("afii61575", '\u{202E}');
    m.insert("afii61664", '‌');
    m.insert("afii63167", '٭');
    m.insert("afii64937", 'ʽ');
    m.insert("agrave", 'à');
    m.insert("agujarati", 'અ');
    m.insert("agurmukhi", 'ਅ');
    m.insert("ahiragana", 'あ');
    m.insert("ahookabove", 'ả');
    m.insert("aibengali", 'ঐ');
    m.insert("aibopomofo", 'ㄞ');
    m.insert("aideva", 'ऐ');
    m.insert("aiecyrillic", 'ӕ');
    m.insert("aigujarati", 'ઐ');
    m.insert("aigurmukhi", 'ਐ');
    m.insert("aimatragurmukhi", 'ੈ');
    m.insert("ainarabic", 'ع');
    m.insert("ainfinalarabic", 'ﻊ');
    m.insert("aininitialarabic", 'ﻋ');
    m.insert("ainmedialarabic", 'ﻌ');
    m.insert("ainvertedbreve", 'ȃ');
    m.insert("aivowelsignbengali", 'ৈ');
    m.insert("aivowelsigndeva", 'ै');
    m.insert("aivowelsigngujarati", 'ૈ');
    m.insert("akatakana", 'ア');
    m.insert("akatakanahalfwidth", 'ｱ');
    m.insert("akorean", 'ㅏ');
    m.insert("alef", 'א');
    m.insert("alefarabic", 'ا');
    m.insert("alefdageshhebrew", 'אּ');
    m.insert("aleffinalarabic", 'ﺎ');
    m.insert("alefhamzaabovearabic", 'أ');
    m.insert("alefhamzaabovefinalarabic", 'ﺄ');
    m.insert("alefhamzabelowarabic", 'إ');
    m.insert("alefhamzabelowfinalarabic", 'ﺈ');
    m.insert("alefhebrew", 'א');
    m.insert("aleflamedhebrew", 'ﭏ');
    m.insert("alefmaddaabovearabic", 'آ');
    m.insert("alefmaddaabovefinalarabic", 'ﺂ');
    m.insert("alefmaksuraarabic", 'ى');
    m.insert("alefmaksurafinalarabic", 'ﻰ');
    m.insert("alefmaksurainitialarabic", 'ﻳ');
    m.insert("alefmaksuramedialarabic", 'ﻴ');
    m.insert("alefpatahhebrew", 'אַ');
    m.insert("alefqamatshebrew", 'אָ');
    m.insert("aleph", 'ℵ');
    m.insert("allequal", '≌');
    m.insert("alpha", 'α');
    m.insert("alphatonos", 'ά');
    m.insert("amacron", 'ā');
    m.insert("amonospace", 'ａ');
    m.insert("ampersand", '&');
    m.insert("ampersandmonospace", '＆');
    m.insert("ampersandsmall", '');
    m.insert("amsquare", '㏂');
    m.insert("anbopomofo", 'ㄢ');
    m.insert("angbopomofo", 'ㄤ');
    m.insert("angbracketleft", '〈');
    m.insert("angbracketleftBig", '〈');
    m.insert("angbracketleftBigg", '〈');
    m.insert("angbracketleftbig", '〈');
    m.insert("angbracketleftbigg", '〈');
    m.insert("angbracketright", '〉');
    m.insert("angbracketrightBig", '〉');
    m.insert("angbracketrightBigg", '〉');
    m.insert("angbracketrightbig", '〉');
    m.insert("angbracketrightbigg", '〉');
    m.insert("angkhankhuthai", '๚');
    m.insert("angle", '∠');
    m.insert("anglebracketleft", '〈');
    m.insert("anglebracketleftvertical", '︿');
    m.insert("anglebracketright", '〉');
    m.insert("anglebracketrightvertical", '﹀');
    m.insert("angleleft", '〈');
    m.insert("angleright", '〉');
    m.insert("angstrom", 'Å');
    m.insert("anoteleia", '·');
    m.insert("anudattadeva", '॒');
    m.insert("anusvarabengali", 'ং');
    m.insert("anusvaradeva", 'ं');
    m.insert("anusvaragujarati", 'ં');
    m.insert("aogonek", 'ą');
    m.insert("apaatosquare", '㌀');
    m.insert("aparen", '⒜');
    m.insert("apostrophearmenian", '՚');
    m.insert("apostrophemod", 'ʼ');
    m.insert("apple", '');
    m.insert("approaches", '≐');
    m.insert("approxequal", '≈');
    m.insert("approxequalorimage", '≒');
    m.insert("approximatelyequal", '≅');
    m.insert("araeaekorean", 'ㆎ');
    m.insert("araeakorean", 'ㆍ');
    m.insert("arc", '⌒');
    m.insert("arighthalfring", 'ẚ');
    m.insert("aring", 'å');
    m.insert("aringacute", 'ǻ');
    m.insert("aringbelow", 'ḁ');
    m.insert("arrowboth", '↔');
    m.insert("arrowdashdown", '⇣');
    m.insert("arrowdashleft", '⇠');
    m.insert("arrowdashright", '⇢');
    m.insert("arrowdashup", '⇡');
    m.insert("arrowdblboth", '⇔');
    m.insert("arrowdbldown", '⇓');
    m.insert("arrowdblleft", '⇐');
    m.insert("arrowdblright", '⇒');
    m.insert("arrowdblup", '⇑');
    m.insert("arrowdown", '↓');
    m.insert("arrowdownleft", '↙');
    m.insert("arrowdownright", '↘');
    m.insert("arrowdownwhite", '⇩');
    m.insert("arrowheaddownmod", '˅');
    m.insert("arrowheadleftmod", '˂');
    m.insert("arrowheadrightmod", '˃');
    m.insert("arrowheadupmod", '˄');
    m.insert("arrowhookleft", '↪');
    m.insert("arrowhookright", '↩');
    m.insert("arrowhorizex", '');
    m.insert("arrowleft", '←');
    m.insert("arrowleftbothalf", '↽');
    m.insert("arrowleftdbl", '⇐');
    m.insert("arrowleftdblstroke", '⇍');
    m.insert("arrowleftoverright", '⇆');
    m.insert("arrowlefttophalf", '↼');
    m.insert("arrowleftwhite", '⇦');
    m.insert("arrownortheast", '↗');
    m.insert("arrownorthwest", '↖');
    m.insert("arrowright", '→');
    m.insert("arrowrightbothalf", '⇁');
    m.insert("arrowrightdblstroke", '⇏');
    m.insert("arrowrightheavy", '➞');
    m.insert("arrowrightoverleft", '⇄');
    m.insert("arrowrighttophalf", '⇀');
    m.insert("arrowrightwhite", '⇨');
    m.insert("arrowsoutheast", '↘');
    m.insert("arrowsouthwest", '↙');
    m.insert("arrowtableft", '⇤');
    m.insert("arrowtabright", '⇥');
    m.insert("arrowup", '↑');
    m.insert("arrowupdn", '↕');
    m.insert("arrowupdnbse", '↨');
    m.insert("arrowupdownbase", '↨');
    m.insert("arrowupleft", '↖');
    m.insert("arrowupleftofdown", '⇅');
    m.insert("arrowupright", '↗');
    m.insert("arrowupwhite", '⇧');
    m.insert("arrowvertex", '');
    m.insert("asciicircum", '^');
    m.insert("asciicircummonospace", '＾');
    m.insert("asciitilde", '~');
    m.insert("asciitildemonospace", '～');
    m.insert("ascript", 'ɑ');
    m.insert("ascriptturned", 'ɒ');
    m.insert("asmallhiragana", 'ぁ');
    m.insert("asmallkatakana", 'ァ');
    m.insert("asmallkatakanahalfwidth", 'ｧ');
    m.insert("asterisk", '*');
    m.insert("asteriskaltonearabic", '٭');
    m.insert("asteriskarabic", '٭');
    m.insert("asteriskmath", '∗');
    m.insert("asteriskmonospace", '＊');
    m.insert("asterisksmall", '﹡');
    m.insert("asterism", '⁂');
    m.insert("asuperior", '');
    m.insert("asymptoticallyequal", '≃');
    m.insert("at", '@');
    m.insert("atilde", 'ã');
    m.insert("atmonospace", '＠');
    m.insert("atsmall", '﹫');
    m.insert("aturned", 'ɐ');
    m.insert("aubengali", 'ঔ');
    m.insert("aubopomofo", 'ㄠ');
    m.insert("audeva", 'औ');
    m.insert("augujarati", 'ઔ');
    m.insert("augurmukhi", 'ਔ');
    m.insert("aulengthmarkbengali", 'ৗ');
    m.insert("aumatragurmukhi", 'ੌ');
    m.insert("auvowelsignbengali", 'ৌ');
    m.insert("auvowelsigndeva", 'ौ');
    m.insert("auvowelsigngujarati", 'ૌ');
    m.insert("avagrahadeva", 'ऽ');
    m.insert("aybarmenian", 'ա');
    m.insert("ayin", 'ע');
    m.insert("ayinaltonehebrew", 'ﬠ');
    m.insert("ayinhebrew", 'ע');
    m.insert("b", 'b');
    m.insert("babengali", 'ব');
    m.insert("backslash", '\\');
    m.insert("backslashBig", '∖');
    m.insert("backslashBigg", '∖');
    m.insert("backslashbig", '∖');
    m.insert("backslashbigg", '∖');
    m.insert("backslashmonospace", '＼');
    m.insert("badeva", 'ब');
    m.insert("bagujarati", 'બ');
    m.insert("bagurmukhi", 'ਬ');
    m.insert("bahiragana", 'ば');
    m.insert("bahtthai", '฿');
    m.insert("bakatakana", 'バ');
    m.insert("bar", '|');
    m.insert("bardbl", '‖');
    m.insert("barmonospace", '｜');
    m.insert("bbopomofo", 'ㄅ');
    m.insert("bcircle", 'ⓑ');
    m.insert("bdotaccent", 'ḃ');
    m.insert("bdotbelow", 'ḅ');
    m.insert("beamedsixteenthnotes", '♬');
    m.insert("because", '∵');
    m.insert("becyrillic", 'б');
    m.insert("beharabic", 'ب');
    m.insert("behfinalarabic", 'ﺐ');
    m.insert("behinitialarabic", 'ﺑ');
    m.insert("behiragana", 'べ');
    m.insert("behmedialarabic", 'ﺒ');
    m.insert("behmeeminitialarabic", 'ﲟ');
    m.insert("behmeemisolatedarabic", 'ﰈ');
    m.insert("behnoonfinalarabic", 'ﱭ');
    m.insert("bekatakana", 'ベ');
    m.insert("benarmenian", 'բ');
    m.insert("bet", 'ב');
    m.insert("beta", 'β');
    m.insert("betasymbolgreek", 'ϐ');
    m.insert("betdagesh", 'בּ');
    m.insert("betdageshhebrew", 'בּ');
    m.insert("bethebrew", 'ב');
    m.insert("betrafehebrew", 'בֿ');
    m.insert("bhabengali", 'ভ');
    m.insert("bhadeva", 'भ');
    m.insert("bhagujarati", 'ભ');
    m.insert("bhagurmukhi", 'ਭ');
    m.insert("bhook", 'ɓ');
    m.insert("bihiragana", 'び');
    m.insert("bikatakana", 'ビ');
    m.insert("bilabialclick", 'ʘ');
    m.insert("bindigurmukhi", 'ਂ');
    m.insert("birusquare", '㌱');
    m.insert("blackcircle", '●');
    m.insert("blackdiamond", '◆');
    m.insert("blackdownpointingtriangle", '▼');
    m.insert("blackleftpointingpointer", '◄');
    m.insert("blackleftpointingtriangle", '◀');
    m.insert("blacklenticularbracketleft", '【');
    m.insert("blacklenticularbracketleftvertical", '︻');
    m.insert("blacklenticularbracketright", '】');
    m.insert("blacklenticularbracketrightvertical", '︼');
    m.insert("blacklowerlefttriangle", '◣');
    m.insert("blacklowerrighttriangle", '◢');
    m.insert("blackrectangle", '▬');
    m.insert("blackrightpointingpointer", '►');
    m.insert("blackrightpointingtriangle", '▶');
    m.insert("blacksmallsquare", '▪');
    m.insert("blacksmilingface", '☻');
    m.insert("blacksquare", '■');
    m.insert("blackstar", '★');
    m.insert("blackupperlefttriangle", '◤');
    m.insert("blackupperrighttriangle", '◥');
    m.insert("blackuppointingsmalltriangle", '▴');
    m.insert("blackuppointingtriangle", '▲');
    m.insert("blank", '␣');
    m.insert("blinebelow", 'ḇ');
    m.insert("block", '█');
    m.insert("bmonospace", 'ｂ');
    m.insert("bobaimaithai", 'บ');
    m.insert("bohiragana", 'ぼ');
    m.insert("bokatakana", 'ボ');
    m.insert("bparen", '⒝');
    m.insert("bqsquare", '㏃');
    m.insert("braceex", '');
    m.insert("bracehtipdownleft", '︷');
    m.insert("bracehtipdownright", '︷');
    m.insert("bracehtipupleft", '︸');
    m.insert("bracehtipupright", '︸');
    m.insert("braceleft", '{');
    m.insert("braceleftBig", '{');
    m.insert("braceleftBigg", '{');
    m.insert("braceleftbig", '{');
    m.insert("braceleftbigg", '{');
    m.insert("braceleftbt", '');
    m.insert("braceleftmid", '');
    m.insert("braceleftmonospace", '｛');
    m.insert("braceleftsmall", '﹛');
    m.insert("bracelefttp", '');
    m.insert("braceleftvertical", '︷');
    m.insert("braceright", '}');
    m.insert("bracerightBig", '}');
    m.insert("bracerightBigg", '}');
    m.insert("bracerightbig", '}');
    m.insert("bracerightbigg", '}');
    m.insert("bracerightbt", '');
    m.insert("bracerightmid", '');
    m.insert("bracerightmonospace", '｝');
    m.insert("bracerightsmall", '﹜');
    m.insert("bracerighttp", '');
    m.insert("bracerightvertical", '︸');
    m.insert("bracketleft", '[');
    m.insert("bracketleftBig", '[');
    m.insert("bracketleftBigg", '[');
    m.insert("bracketleftbig", '[');
    m.insert("bracketleftbigg", '[');
    m.insert("bracketleftbt", '');
    m.insert("bracketleftex", '');
    m.insert("bracketleftmonospace", '［');
    m.insert("bracketlefttp", '');
    m.insert("bracketright", ']');
    m.insert("bracketrightBig", ']');
    m.insert("bracketrightBigg", ']');
    m.insert("bracketrightbig", ']');
    m.insert("bracketrightbigg", ']');
    m.insert("bracketrightbt", '');
    m.insert("bracketrightex", '');
    m.insert("bracketrightmonospace", '］');
    m.insert("bracketrighttp", '');
    m.insert("breve", '˘');
    m.insert("brevebelowcmb", '̮');
    m.insert("brevecmb", '̆');
    m.insert("breveinvertedbelowcmb", '̯');
    m.insert("breveinvertedcmb", '̑');
    m.insert("breveinverteddoublecmb", '͡');
    m.insert("bridgebelowcmb", '̪');
    m.insert("bridgeinvertedbelowcmb", '̺');
    m.insert("brokenbar", '¦');
    m.insert("bstroke", 'ƀ');
    m.insert("bsuperior", '');
    m.insert("btopbar", 'ƃ');
    m.insert("buhiragana", 'ぶ');
    m.insert("bukatakana", 'ブ');
    m.insert("bullet", '•');
    m.insert("bulletinverse", '◘');
    m.insert("bulletoperator", '∙');
    m.insert("bullseye", '◎');
    m.insert("c", 'c');
    m.insert("caarmenian", 'ծ');
    m.insert("cabengali", 'চ');
    m.insert("cacute", 'ć');
    m.insert("cadeva", 'च');
    m.insert("cagujarati", 'ચ');
    m.insert("cagurmukhi", 'ਚ');
    m.insert("calsquare", '㎈');
    m.insert("candrabindubengali", 'ঁ');
    m.insert("candrabinducmb", '̐');
    m.insert("candrabindudeva", 'ँ');
    m.insert("candrabindugujarati", 'ઁ');
    m.insert("capslock", '⇪');
    m.insert("careof", '℅');
    m.insert("caron", 'ˇ');
    m.insert("caronbelowcmb", '̬');
    m.insert("caroncmb", '̌');
    m.insert("carriagereturn", '↵');
    m.insert("cbopomofo", 'ㄘ');
    m.insert("ccaron", 'č');
    m.insert("ccedilla", 'ç');
    m.insert("ccedillaacute", 'ḉ');
    m.insert("ccircle", 'ⓒ');
    m.insert("ccircumflex", 'ĉ');
    m.insert("ccurl", 'ɕ');
    m.insert("cdot", 'ċ');
    m.insert("cdotaccent", 'ċ');
    m.insert("cdsquare", '㏅');
    m.insert("cedilla", '¸');
    m.insert("cedillacmb", '̧');
    m.insert("ceilingleftBig", '⌈');
    m.insert("ceilingleftBigg", '⌈');
    m.insert("ceilingleftbig", '⌈');
    m.insert("ceilingleftbigg", '⌈');
    m.insert("ceilingrightBig", '⌉');
    m.insert("ceilingrightBigg", '⌉');
    m.insert("ceilingrightbig", '⌉');
    m.insert("ceilingrightbigg", '⌉');
    m.insert("cent", '¢');
    m.insert("centigrade", '℃');
    m.insert("centinferior", '');
    m.insert("centmonospace", '￠');
    m.insert("centoldstyle", '');
    m.insert("centsuperior", '');
    m.insert("chaarmenian", 'չ');
    m.insert("chabengali", 'ছ');
    m.insert("chadeva", 'छ');
    m.insert("chagujarati", 'છ');
    m.insert("chagurmukhi", 'ਛ');
    m.insert("chbopomofo", 'ㄔ');
    m.insert("cheabkhasiancyrillic", 'ҽ');
    m.insert("checkmark", '✓');
    m.insert("checyrillic", 'ч');
    m.insert("chedescenderabkhasiancyrillic", 'ҿ');
    m.insert("chedescendercyrillic", 'ҷ');
    m.insert("chedieresiscyrillic", 'ӵ');
    m.insert("cheharmenian", 'ճ');
    m.insert("chekhakassiancyrillic", 'ӌ');
    m.insert("cheverticalstrokecyrillic", 'ҹ');
    m.insert("chi", 'χ');
    m.insert("chieuchacirclekorean", '㉷');
    m.insert("chieuchaparenkorean", '㈗');
    m.insert("chieuchcirclekorean", '㉩');
    m.insert("chieuchkorean", 'ㅊ');
    m.insert("chieuchparenkorean", '㈉');
    m.insert("chochangthai", 'ช');
    m.insert("chochanthai", 'จ');
    m.insert("chochingthai", 'ฉ');
    m.insert("chochoethai", 'ฌ');
    m.insert("chook", 'ƈ');
    m.insert("cieucacirclekorean", '㉶');
    m.insert("cieucaparenkorean", '㈖');
    m.insert("cieuccirclekorean", '㉨');
    m.insert("cieuckorean", 'ㅈ');
    m.insert("cieucparenkorean", '㈈');
    m.insert("cieucuparenkorean", '㈜');
    m.insert("circle", '○');
    m.insert("circlecopyrt", '©');
    m.insert("circledotdisplay", '⊙');
    m.insert("circledottext", '⊙');
    m.insert("circlemultiply", '⊗');
    m.insert("circlemultiplydisplay", '⊗');
    m.insert("circlemultiplytext", '⊗');
    m.insert("circleot", '⊙');
    m.insert("circleplus", '⊕');
    m.insert("circleplusdisplay", '⊕');
    m.insert("circleplustext", '⊕');
    m.insert("circlepostalmark", '〶');
    m.insert("circlewithlefthalfblack", '◐');
    m.insert("circlewithrighthalfblack", '◑');
    m.insert("circumflex", 'ˆ');
    m.insert("circumflexbelowcmb", '̭');
    m.insert("circumflexcmb", '̂');
    m.insert("clear", '⌧');
    m.insert("clickalveolar", 'ǂ');
    m.insert("clickdental", 'ǀ');
    m.insert("clicklateral", 'ǁ');
    m.insert("clickretroflex", 'ǃ');
    m.insert("club", '♣');
    m.insert("clubsuitblack", '♣');
    m.insert("clubsuitwhite", '♧');
    m.insert("cmcubedsquare", '㎤');
    m.insert("cmonospace", 'ｃ');
    m.insert("cmsquaredsquare", '㎠');
    m.insert("coarmenian", 'ց');
    m.insert("colon", ':');
    m.insert("colonmonetary", '₡');
    m.insert("colonmonospace", '：');
    m.insert("colonsign", '₡');
    m.insert("colonsmall", '﹕');
    m.insert("colontriangularhalfmod", 'ˑ');
    m.insert("colontriangularmod", 'ː');
    m.insert("comma", ',');
    m.insert("commaabovecmb", '̓');
    m.insert("commaaboverightcmb", '̕');
    m.insert("commaaccent", '');
    m.insert("commaarabic", '،');
    m.insert("commaarmenian", '՝');
    m.insert("commainferior", '');
    m.insert("commamonospace", '，');
    m.insert("commareversedabovecmb", '̔');
    m.insert("commareversedmod", 'ʽ');
    m.insert("commasmall", '﹐');
    m.insert("commasuperior", '');
    m.insert("commaturnedabovecmb", '̒');
    m.insert("commaturnedmod", 'ʻ');
    m.insert("compass", '☼');
    m.insert("congruent", '≅');
    m.insert("contintegraldisplay", '∮');
    m.insert("contintegraltext", '∮');
    m.insert("contourintegral", '∮');
    m.insert("control", '⌃');
    m.insert("controlACK", '');
    m.insert("controlBEL", '');
    m.insert("controlBS", '');
    m.insert("controlCAN", '');
    m.insert("controlCR", '\r');
    m.insert("controlDC1", '');
    m.insert("controlDC2", '');
    m.insert("controlDC3", '');
    m.insert("controlDC4", '');
    m.insert("controlDEL", '');
    m.insert("controlDLE", '');
    m.insert("controlEM", '');
    m.insert("controlENQ", '');
    m.insert("controlEOT", '');
    m.insert("controlESC", '');
    m.insert("controlETB", '');
    m.insert("controlETX", '');
    m.insert("controlFF", '\x0C');
    m.insert("controlFS", '\x1C');
    m.insert("controlGS", '\x1D');
    m.insert("controlHT", '\t');
    m.insert("controlLF", '\n');
    m.insert("controlNAK", '');
    m.insert("controlNULL", '\x00');
    m.insert("controlRS", '\x1E');
    m.insert("controlSI", '');
    m.insert("controlSO", '');
    m.insert("controlSOT", '˜');
    m.insert("controlSTX", '');
    m.insert("controlSUB", '');
    m.insert("controlSYN", '');
    m.insert("controlUS", '');
    m.insert("controlVT", '\x0B');
    m.insert("coproductdisplay", '∐');
    m.insert("coproducttext", '∐');
    m.insert("copyright", '©');
    m.insert("copyrightsans", '');
    m.insert("copyrightserif", '');
    m.insert("cornerbracketleft", '「');
    m.insert("cornerbracketlefthalfwidth", '｢');
    m.insert("cornerbracketleftvertical", '﹁');
    m.insert("cornerbracketright", '」');
    m.insert("cornerbracketrighthalfwidth", '｣');
    m.insert("cornerbracketrightvertical", '﹂');
    m.insert("corporationsquare", '㍿');
    m.insert("cosquare", '㏇');
    m.insert("coverkgsquare", '㏆');
    m.insert("cparen", '⒞');
    m.insert("cruzeiro", '₢');
    m.insert("cstretched", 'ʗ');
    m.insert("curlyand", '⋏');
    m.insert("curlyor", '⋎');
    m.insert("currency", '¤');
    m.insert("cyrBreve", '');
    m.insert("cyrFlex", '');
    m.insert("cyrbreve", '');
    m.insert("cyrflex", '');
    m.insert("d", 'd');
    m.insert("daarmenian", 'դ');
    m.insert("dabengali", 'দ');
    m.insert("dadarabic", 'ض');
    m.insert("dadeva", 'द');
    m.insert("dadfinalarabic", 'ﺾ');
    m.insert("dadinitialarabic", 'ﺿ');
    m.insert("dadmedialarabic", 'ﻀ');
    m.insert("dagesh", 'ּ');
    m.insert("dageshhebrew", 'ּ');
    m.insert("dagger", '†');
    m.insert("daggerdbl", '‡');
    m.insert("dagujarati", 'દ');
    m.insert("dagurmukhi", 'ਦ');
    m.insert("dahiragana", 'だ');
    m.insert("dakatakana", 'ダ');
    m.insert("dalarabic", 'د');
    m.insert("dalet", 'ד');
    m.insert("daletdagesh", 'דּ');
    m.insert("daletdageshhebrew", 'דּ');
    m.insert("dalethebrew", 'ד');
    m.insert("dalfinalarabic", 'ﺪ');
    m.insert("dammaarabic", 'ُ');
    m.insert("dammalowarabic", 'ُ');
    m.insert("dammatanaltonearabic", 'ٌ');
    m.insert("dammatanarabic", 'ٌ');
    m.insert("danda", '।');
    m.insert("dargahebrew", '֧');
    m.insert("dargalefthebrew", '֧');
    m.insert("dasiapneumatacyrilliccmb", '҅');
    m.insert("dblGrave", '');
    m.insert("dblanglebracketleft", '《');
    m.insert("dblanglebracketleftvertical", '︽');
    m.insert("dblanglebracketright", '》');
    m.insert("dblanglebracketrightvertical", '︾');
    m.insert("dblarchinvertedbelowcmb", '̫');
    m.insert("dblarrowleft", '⇔');
    m.insert("dblarrowright", '⇒');
    m.insert("dbldanda", '॥');
    m.insert("dblgrave", '');
    m.insert("dblgravecmb", '̏');
    m.insert("dblintegral", '∬');
    m.insert("dbllowline", '‗');
    m.insert("dbllowlinecmb", '̳');
    m.insert("dbloverlinecmb", '̿');
    m.insert("dblprimemod", 'ʺ');
    m.insert("dblverticalbar", '‖');
    m.insert("dblverticallineabovecmb", '̎');
    m.insert("dbopomofo", 'ㄉ');
    m.insert("dbsquare", '㏈');
    m.insert("dcaron", 'ď');
    m.insert("dcedilla", 'ḑ');
    m.insert("dcircle", 'ⓓ');
    m.insert("dcircumflexbelow", 'ḓ');
    m.insert("dcroat", 'đ');
    m.insert("ddabengali", 'ড');
    m.insert("ddadeva", 'ड');
    m.insert("ddagujarati", 'ડ');
    m.insert("ddagurmukhi", 'ਡ');
    m.insert("ddalarabic", 'ڈ');
    m.insert("ddalfinalarabic", 'ﮉ');
    m.insert("dddhadeva", 'ड़');
    m.insert("ddhabengali", 'ঢ');
    m.insert("ddhadeva", 'ढ');
    m.insert("ddhagujarati", 'ઢ');
    m.insert("ddhagurmukhi", 'ਢ');
    m.insert("ddotaccent", 'ḋ');
    m.insert("ddotbelow", 'ḍ');
    m.insert("decimalseparatorarabic", '٫');
    m.insert("decimalseparatorpersian", '٫');
    m.insert("decyrillic", 'д');
    m.insert("degree", '°');
    m.insert("dehihebrew", '֭');
    m.insert("dehiragana", 'で');
    m.insert("deicoptic", 'ϯ');
    m.insert("dekatakana", 'デ');
    m.insert("deleteleft", '⌫');
    m.insert("deleteright", '⌦');
    m.insert("delta", 'δ');
    m.insert("deltaturned", 'ƍ');
    m.insert("denominatorminusonenumeratorbengali", '৸');
    m.insert("dezh", 'ʤ');
    m.insert("dhabengali", 'ধ');
    m.insert("dhadeva", 'ध');
    m.insert("dhagujarati", 'ધ');
    m.insert("dhagurmukhi", 'ਧ');
    m.insert("dhook", 'ɗ');
    m.insert("dialytikatonos", '΅');
    m.insert("dialytikatonoscmb", '̈́');
    m.insert("diamond", '♦');
    m.insert("diamondsuitwhite", '♢');
    m.insert("dieresis", '¨');
    m.insert("dieresisacute", '');
    m.insert("dieresisbelowcmb", '̤');
    m.insert("dieresiscmb", '̈');
    m.insert("dieresisgrave", '');
    m.insert("dieresistonos", '΅');
    m.insert("dihiragana", 'ぢ');
    m.insert("dikatakana", 'ヂ');
    m.insert("dittomark", '〃');
    m.insert("divide", '÷');
    m.insert("divides", '∣');
    m.insert("divisionslash", '∕');
    m.insert("djecyrillic", 'ђ');
    m.insert("dkshade", '▓');
    m.insert("dlinebelow", 'ḏ');
    m.insert("dlsquare", '㎗');
    m.insert("dmacron", 'đ');
    m.insert("dmonospace", 'ｄ');
    m.insert("dnblock", '▄');
    m.insert("dochadathai", 'ฎ');
    m.insert("dodekthai", 'ด');
    m.insert("dohiragana", 'ど');
    m.insert("dokatakana", 'ド');
    m.insert("dollar", '$');
    m.insert("dollarinferior", '');
    m.insert("dollarmonospace", '＄');
    m.insert("dollaroldstyle", '');
    m.insert("dollarsmall", '﹩');
    m.insert("dollarsuperior", '');
    m.insert("dong", '₫');
    m.insert("dorusquare", '㌦');
    m.insert("dotaccent", '˙');
    m.insert("dotaccentcmb", '̇');
    m.insert("dotbelowcmb", '̣');
    m.insert("dotbelowcomb", '̣');
    m.insert("dotkatakana", '・');
    m.insert("dotlessi", 'ı');
    m.insert("dotlessj", '');
    m.insert("dotlessjstrokehook", 'ʄ');
    m.insert("dotmath", '⋅');
    m.insert("dottedcircle", '◌');
    m.insert("doubleyodpatah", 'ײַ');
    m.insert("doubleyodpatahhebrew", 'ײַ');
    m.insert("downtackbelowcmb", '̞');
    m.insert("downtackmod", '˕');
    m.insert("dparen", '⒟');
    m.insert("dsuperior", '');
    m.insert("dtail", 'ɖ');
    m.insert("dtopbar", 'ƌ');
    m.insert("duhiragana", 'づ');
    m.insert("dukatakana", 'ヅ');
    m.insert("dz", 'ǳ');
    m.insert("dzaltone", 'ʣ');
    m.insert("dzcaron", 'ǆ');
    m.insert("dzcurl", 'ʥ');
    m.insert("dzeabkhasiancyrillic", 'ӡ');
    m.insert("dzecyrillic", 'ѕ');
    m.insert("dzhecyrillic", 'џ');
    m.insert("e", 'e');
    m.insert("eacute", 'é');
    m.insert("earth", '♁');
    m.insert("ebengali", 'এ');
    m.insert("ebopomofo", 'ㄜ');
    m.insert("ebreve", 'ĕ');
    m.insert("ecandradeva", 'ऍ');
    m.insert("ecandragujarati", 'ઍ');
    m.insert("ecandravowelsigndeva", 'ॅ');
    m.insert("ecandravowelsigngujarati", 'ૅ');
    m.insert("ecaron", 'ě');
    m.insert("ecedillabreve", 'ḝ');
    m.insert("echarmenian", 'ե');
    m.insert("echyiwnarmenian", 'և');
    m.insert("ecircle", 'ⓔ');
    m.insert("ecircumflex", 'ê');
    m.insert("ecircumflexacute", 'ế');
    m.insert("ecircumflexbelow", 'ḙ');
    m.insert("ecircumflexdotbelow", 'ệ');
    m.insert("ecircumflexgrave", 'ề');
    m.insert("ecircumflexhookabove", 'ể');
    m.insert("ecircumflextilde", 'ễ');
    m.insert("ecyrillic", 'є');
    m.insert("edblgrave", 'ȅ');
    m.insert("edeva", 'ए');
    m.insert("edieresis", 'ë');
    m.insert("edot", 'ė');
    m.insert("edotaccent", 'ė');
    m.insert("edotbelow", 'ẹ');
    m.insert("eegurmukhi", 'ਏ');
    m.insert("eematragurmukhi", 'ੇ');
    m.insert("efcyrillic", 'ф');
    m.insert("egrave", 'è');
    m.insert("egujarati", 'એ');
    m.insert("eharmenian", 'է');
    m.insert("ehbopomofo", 'ㄝ');
    m.insert("ehiragana", 'え');
    m.insert("ehookabove", 'ẻ');
    m.insert("eibopomofo", 'ㄟ');
    m.insert("eight", '8');
    m.insert("eightarabic", '٨');
    m.insert("eightbengali", '৮');
    m.insert("eightcircle", '⑧');
    m.insert("eightcircleinversesansserif", '➑');
    m.insert("eightdeva", '८');
    m.insert("eighteencircle", '⑱');
    m.insert("eighteenparen", '⒅');
    m.insert("eighteenperiod", '⒙');
    m.insert("eightgujarati", '૮');
    m.insert("eightgurmukhi", '੮');
    m.insert("eighthackarabic", '٨');
    m.insert("eighthangzhou", '〨');
    m.insert("eighthnotebeamed", '♫');
    m.insert("eightideographicparen", '㈧');
    m.insert("eightinferior", '₈');
    m.insert("eightmonospace", '８');
    m.insert("eightoldstyle", '');
    m.insert("eightparen", '⑻');
    m.insert("eightperiod", '⒏');
    m.insert("eightpersian", '۸');
    m.insert("eightroman", 'ⅷ');
    m.insert("eightsuperior", '⁸');
    m.insert("eightthai", '๘');
    m.insert("einvertedbreve", 'ȇ');
    m.insert("eiotifiedcyrillic", 'ѥ');
    m.insert("ekatakana", 'エ');
    m.insert("ekatakanahalfwidth", 'ｴ');
    m.insert("ekonkargurmukhi", 'ੴ');
    m.insert("ekorean", 'ㅔ');
    m.insert("elcyrillic", 'л');
    m.insert("element", '∈');
    m.insert("elevencircle", '⑪');
    m.insert("elevenparen", '⑾');
    m.insert("elevenperiod", '⒒');
    m.insert("elevenroman", 'ⅺ');
    m.insert("ellipsis", '…');
    m.insert("ellipsisvertical", '⋮');
    m.insert("emacron", 'ē');
    m.insert("emacronacute", 'ḗ');
    m.insert("emacrongrave", 'ḕ');
    m.insert("emcyrillic", 'м');
    m.insert("emdash", '—');
    m.insert("emdashvertical", '︱');
    m.insert("emonospace", 'ｅ');
    m.insert("emphasismarkarmenian", '՛');
    m.insert("emptyset", '∅');
    m.insert("enbopomofo", 'ㄣ');
    m.insert("encyrillic", 'н');
    m.insert("endash", '–');
    m.insert("endashvertical", '︲');
    m.insert("endescendercyrillic", 'ң');
    m.insert("eng", 'ŋ');
    m.insert("engbopomofo", 'ㄥ');
    m.insert("enghecyrillic", 'ҥ');
    m.insert("enhookcyrillic", 'ӈ');
    m.insert("enspace", ' ');
    m.insert("eogonek", 'ę');
    m.insert("eokorean", 'ㅓ');
    m.insert("eopen", 'ɛ');
    m.insert("eopenclosed", 'ʚ');
    m.insert("eopenreversed", 'ɜ');
    m.insert("eopenreversedclosed", 'ɞ');
    m.insert("eopenreversedhook", 'ɝ');
    m.insert("eparen", '⒠');
    m.insert("epsilon", 'ε');
    m.insert("epsilontonos", 'έ');
    m.insert("equal", '=');
    m.insert("equalmonospace", '＝');
    m.insert("equalsmall", '﹦');
    m.insert("equalsuperior", '⁼');
    m.insert("equivalence", '≡');
    m.insert("erbopomofo", 'ㄦ');
    m.insert("ercyrillic", 'р');
    m.insert("ereversed", 'ɘ');
    m.insert("ereversedcyrillic", 'э');
    m.insert("escyrillic", 'с');
    m.insert("esdescendercyrillic", 'ҫ');
    m.insert("esh", 'ʃ');
    m.insert("eshcurl", 'ʆ');
    m.insert("eshortdeva", 'ऎ');
    m.insert("eshortvowelsigndeva", 'ॆ');
    m.insert("eshreversedloop", 'ƪ');
    m.insert("eshsquatreversed", 'ʅ');
    m.insert("esmallhiragana", 'ぇ');
    m.insert("esmallkatakana", 'ェ');
    m.insert("esmallkatakanahalfwidth", 'ｪ');
    m.insert("estimated", '℮');
    m.insert("esuperior", '');
    m.insert("eta", 'η');
    m.insert("etarmenian", 'ը');
    m.insert("etatonos", 'ή');
    m.insert("eth", 'ð');
    m.insert("etilde", 'ẽ');
    m.insert("etildebelow", 'ḛ');
    m.insert("etnahtafoukhhebrew", '֑');
    m.insert("etnahtafoukhlefthebrew", '֑');
    m.insert("etnahtahebrew", '֑');
    m.insert("etnahtalefthebrew", '֑');
    m.insert("eturned", 'ǝ');
    m.insert("eukorean", 'ㅡ');
    m.insert("euro", '€');
    m.insert("evowelsignbengali", 'ে');
    m.insert("evowelsigndeva", 'े');
    m.insert("evowelsigngujarati", 'ે');
    m.insert("exclam", '!');
    m.insert("exclamarmenian", '՜');
    m.insert("exclamdbl", '‼');
    m.insert("exclamdown", '¡');
    m.insert("exclamdownsmall", '');
    m.insert("exclammonospace", '！');
    m.insert("exclamsmall", '');
    m.insert("existential", '∃');
    m.insert("ezh", 'ʒ');
    m.insert("ezhcaron", 'ǯ');
    m.insert("ezhcurl", 'ʓ');
    m.insert("ezhreversed", 'ƹ');
    m.insert("ezhtail", 'ƺ');
    m.insert("f", 'f');
    m.insert("f_f", 'ﬀ');
    m.insert("f_f_i", 'ﬃ');
    m.insert("f_f_l", 'ﬄ');
    m.insert("f_i", 'ﬁ');
    m.insert("f_l", 'ﬂ');
    m.insert("fadeva", 'फ़');
    m.insert("fagurmukhi", 'ਫ਼');
    m.insert("fahrenheit", '℉');
    m.insert("fathaarabic", 'َ');
    m.insert("fathalowarabic", 'َ');
    m.insert("fathatanarabic", 'ً');
    m.insert("fbopomofo", 'ㄈ');
    m.insert("fcircle", 'ⓕ');
    m.insert("fdotaccent", 'ḟ');
    m.insert("feharabic", 'ف');
    m.insert("feharmenian", 'ֆ');
    m.insert("fehfinalarabic", 'ﻒ');
    m.insert("fehinitialarabic", 'ﻓ');
    m.insert("fehmedialarabic", 'ﻔ');
    m.insert("feicoptic", 'ϥ');
    m.insert("female", '♀');
    m.insert("ff", 'ﬀ');
    m.insert("ffi", 'ﬃ');
    m.insert("ffl", 'ﬄ');
    m.insert("fi", 'ﬁ');
    m.insert("fifteencircle", '⑮');
    m.insert("fifteenparen", '⒂');
    m.insert("fifteenperiod", '⒖');
    m.insert("figuredash", '‒');
    m.insert("filledbox", '■');
    m.insert("filledrect", '▬');
    m.insert("finalkaf", 'ך');
    m.insert("finalkafdagesh", 'ךּ');
    m.insert("finalkafdageshhebrew", 'ךּ');
    m.insert("finalkafhebrew", 'ך');
    m.insert("finalmem", 'ם');
    m.insert("finalmemhebrew", 'ם');
    m.insert("finalnun", 'ן');
    m.insert("finalnunhebrew", 'ן');
    m.insert("finalpe", 'ף');
    m.insert("finalpehebrew", 'ף');
    m.insert("finaltsadi", 'ץ');
    m.insert("finaltsadihebrew", 'ץ');
    m.insert("firsttonechinese", 'ˉ');
    m.insert("fisheye", '◉');
    m.insert("fitacyrillic", 'ѳ');
    m.insert("five", '5');
    m.insert("fivearabic", '٥');
    m.insert("fivebengali", '৫');
    m.insert("fivecircle", '⑤');
    m.insert("fivecircleinversesansserif", '➎');
    m.insert("fivedeva", '५');
    m.insert("fiveeighths", '⅝');
    m.insert("fivegujarati", '૫');
    m.insert("fivegurmukhi", '੫');
    m.insert("fivehackarabic", '٥');
    m.insert("fivehangzhou", '〥');
    m.insert("fiveideographicparen", '㈤');
    m.insert("fiveinferior", '₅');
    m.insert("fivemonospace", '５');
    m.insert("fiveoldstyle", '');
    m.insert("fiveparen", '⑸');
    m.insert("fiveperiod", '⒌');
    m.insert("fivepersian", '۵');
    m.insert("fiveroman", 'ⅴ');
    m.insert("fivesuperior", '⁵');
    m.insert("fivethai", '๕');
    m.insert("fl", 'ﬂ');
    m.insert("floorleftBig", '⌊');
    m.insert("floorleftBigg", '⌊');
    m.insert("floorleftbig", '⌊');
    m.insert("floorleftbigg", '⌊');
    m.insert("floorrightBig", '⌋');
    m.insert("floorrightBigg", '⌋');
    m.insert("floorrightbig", '⌋');
    m.insert("floorrightbigg", '⌋');
    m.insert("florin", 'ƒ');
    m.insert("fmonospace", 'ｆ');
    m.insert("fmsquare", '㎙');
    m.insert("fofanthai", 'ฟ');
    m.insert("fofathai", 'ฝ');
    m.insert("fongmanthai", '๏');
    m.insert("forall", '∀');
    m.insert("four", '4');
    m.insert("fourarabic", '٤');
    m.insert("fourbengali", '৪');
    m.insert("fourcircle", '④');
    m.insert("fourcircleinversesansserif", '➍');
    m.insert("fourdeva", '४');
    m.insert("fourgujarati", '૪');
    m.insert("fourgurmukhi", '੪');
    m.insert("fourhackarabic", '٤');
    m.insert("fourhangzhou", '〤');
    m.insert("fourideographicparen", '㈣');
    m.insert("fourinferior", '₄');
    m.insert("fourmonospace", '４');
    m.insert("fournumeratorbengali", '৷');
    m.insert("fouroldstyle", '');
    m.insert("fourparen", '⑷');
    m.insert("fourperiod", '⒋');
    m.insert("fourpersian", '۴');
    m.insert("fourroman", 'ⅳ');
    m.insert("foursuperior", '⁴');
    m.insert("fourteencircle", '⑭');
    m.insert("fourteenparen", '⒁');
    m.insert("fourteenperiod", '⒕');
    m.insert("fourthai", '๔');
    m.insert("fourthtonechinese", 'ˋ');
    m.insert("fparen", '⒡');
    m.insert("fraction", '⁄');
    m.insert("franc", '₣');
    m.insert("g", 'g');
    m.insert("gabengali", 'গ');
    m.insert("gacute", 'ǵ');
    m.insert("gadeva", 'ग');
    m.insert("gafarabic", 'گ');
    m.insert("gaffinalarabic", 'ﮓ');
    m.insert("gafinitialarabic", 'ﮔ');
    m.insert("gafmedialarabic", 'ﮕ');
    m.insert("gagujarati", 'ગ');
    m.insert("gagurmukhi", 'ਗ');
    m.insert("gahiragana", 'が');
    m.insert("gakatakana", 'ガ');
    m.insert("gamma", 'γ');
    m.insert("gammalatinsmall", 'ɣ');
    m.insert("gammasuperior", 'ˠ');
    m.insert("gangiacoptic", 'ϫ');
    m.insert("gbopomofo", 'ㄍ');
    m.insert("gbreve", 'ğ');
    m.insert("gcaron", 'ǧ');
    m.insert("gcedilla", 'ģ');
    m.insert("gcircle", 'ⓖ');
    m.insert("gcircumflex", 'ĝ');
    m.insert("gcommaaccent", 'ģ');
    m.insert("gdot", 'ġ');
    m.insert("gdotaccent", 'ġ');
    m.insert("gecyrillic", 'г');
    m.insert("gehiragana", 'げ');
    m.insert("gekatakana", 'ゲ');
    m.insert("geometricallyequal", '≑');
    m.insert("gereshaccenthebrew", '֜');
    m.insert("gereshhebrew", '׳');
    m.insert("gereshmuqdamhebrew", '֝');
    m.insert("germandbls", 'ß');
    m.insert("gershayimaccenthebrew", '֞');
    m.insert("gershayimhebrew", '״');
    m.insert("getamark", '〓');
    m.insert("ghabengali", 'ঘ');
    m.insert("ghadarmenian", 'ղ');
    m.insert("ghadeva", 'घ');
    m.insert("ghagujarati", 'ઘ');
    m.insert("ghagurmukhi", 'ਘ');
    m.insert("ghainarabic", 'غ');
    m.insert("ghainfinalarabic", 'ﻎ');
    m.insert("ghaininitialarabic", 'ﻏ');
    m.insert("ghainmedialarabic", 'ﻐ');
    m.insert("ghemiddlehookcyrillic", 'ҕ');
    m.insert("ghestrokecyrillic", 'ғ');
    m.insert("gheupturncyrillic", 'ґ');
    m.insert("ghhadeva", 'ग़');
    m.insert("ghhagurmukhi", 'ਗ਼');
    m.insert("ghook", 'ɠ');
    m.insert("ghzsquare", '㎓');
    m.insert("gihiragana", 'ぎ');
    m.insert("gikatakana", 'ギ');
    m.insert("gimarmenian", 'գ');
    m.insert("gimel", 'ג');
    m.insert("gimeldagesh", 'גּ');
    m.insert("gimeldageshhebrew", 'גּ');
    m.insert("gimelhebrew", 'ג');
    m.insert("gjecyrillic", 'ѓ');
    m.insert("glottalinvertedstroke", 'ƾ');
    m.insert("glottalstop", 'ʔ');
    m.insert("glottalstopinverted", 'ʖ');
    m.insert("glottalstopmod", 'ˀ');
    m.insert("glottalstopreversed", 'ʕ');
    m.insert("glottalstopreversedmod", 'ˁ');
    m.insert("glottalstopreversedsuperior", 'ˤ');
    m.insert("glottalstopstroke", 'ʡ');
    m.insert("glottalstopstrokereversed", 'ʢ');
    m.insert("gmacron", 'ḡ');
    m.insert("gmonospace", 'ｇ');
    m.insert("gohiragana", 'ご');
    m.insert("gokatakana", 'ゴ');
    m.insert("gparen", '⒢');
    m.insert("gpasquare", '㎬');
    m.insert("gradient", '∇');
    m.insert("grave", '`');
    m.insert("gravebelowcmb", '̖');
    m.insert("gravecmb", '̀');
    m.insert("gravecomb", '̀');
    m.insert("gravedeva", '॓');
    m.insert("gravelowmod", 'ˎ');
    m.insert("gravemonospace", '｀');
    m.insert("gravetonecmb", '̀');
    m.insert("greater", '>');
    m.insert("greaterequal", '≥');
    m.insert("greaterequalorless", '⋛');
    m.insert("greatermonospace", '＞');
    m.insert("greaterorequivalent", '≳');
    m.insert("greaterorless", '≷');
    m.insert("greateroverequal", '≧');
    m.insert("greatersmall", '﹥');
    m.insert("gscript", 'ɡ');
    m.insert("gstroke", 'ǥ');
    m.insert("guhiragana", 'ぐ');
    m.insert("guillemotleft", '«');
    m.insert("guillemotright", '»');
    m.insert("guilsinglleft", '‹');
    m.insert("guilsinglright", '›');
    m.insert("gukatakana", 'グ');
    m.insert("guramusquare", '㌘');
    m.insert("gysquare", '㏉');
    m.insert("h", 'h');
    m.insert("haabkhasiancyrillic", 'ҩ');
    m.insert("haaltonearabic", 'ہ');
    m.insert("habengali", 'হ');
    m.insert("hadescendercyrillic", 'ҳ');
    m.insert("hadeva", 'ह');
    m.insert("hagujarati", 'હ');
    m.insert("hagurmukhi", 'ਹ');
    m.insert("haharabic", 'ح');
    m.insert("hahfinalarabic", 'ﺢ');
    m.insert("hahinitialarabic", 'ﺣ');
    m.insert("hahiragana", 'は');
    m.insert("hahmedialarabic", 'ﺤ');
    m.insert("haitusquare", '㌪');
    m.insert("hakatakana", 'ハ');
    m.insert("hakatakanahalfwidth", 'ﾊ');
    m.insert("halantgurmukhi", '੍');
    m.insert("hamzaarabic", 'ء');
    m.insert("hamzalowarabic", 'ء');
    m.insert("hangulfiller", 'ㅤ');
    m.insert("hardsigncyrillic", 'ъ');
    m.insert("harpoonleftbarbup", '↼');
    m.insert("harpoonrightbarbup", '⇀');
    m.insert("hasquare", '㏊');
    m.insert("hatafpatah", 'ֲ');
    m.insert("hatafpatah16", 'ֲ');
    m.insert("hatafpatah23", 'ֲ');
    m.insert("hatafpatah2f", 'ֲ');
    m.insert("hatafpatahhebrew", 'ֲ');
    m.insert("hatafpatahnarrowhebrew", 'ֲ');
    m.insert("hatafpatahquarterhebrew", 'ֲ');
    m.insert("hatafpatahwidehebrew", 'ֲ');
    m.insert("hatafqamats", 'ֳ');
    m.insert("hatafqamats1b", 'ֳ');
    m.insert("hatafqamats28", 'ֳ');
    m.insert("hatafqamats34", 'ֳ');
    m.insert("hatafqamatshebrew", 'ֳ');
    m.insert("hatafqamatsnarrowhebrew", 'ֳ');
    m.insert("hatafqamatsquarterhebrew", 'ֳ');
    m.insert("hatafqamatswidehebrew", 'ֳ');
    m.insert("hatafsegol", 'ֱ');
    m.insert("hatafsegol17", 'ֱ');
    m.insert("hatafsegol24", 'ֱ');
    m.insert("hatafsegol30", 'ֱ');
    m.insert("hatafsegolhebrew", 'ֱ');
    m.insert("hatafsegolnarrowhebrew", 'ֱ');
    m.insert("hatafsegolquarterhebrew", 'ֱ');
    m.insert("hatafsegolwidehebrew", 'ֱ');
    m.insert("hatwide", '̂');
    m.insert("hatwider", '̂');
    m.insert("hatwidest", '̂');
    m.insert("hbar", 'ħ');
    m.insert("hbopomofo", 'ㄏ');
    m.insert("hbrevebelow", 'ḫ');
    m.insert("hcedilla", 'ḩ');
    m.insert("hcircle", 'ⓗ');
    m.insert("hcircumflex", 'ĥ');
    m.insert("hdieresis", 'ḧ');
    m.insert("hdotaccent", 'ḣ');
    m.insert("hdotbelow", 'ḥ');
    m.insert("he", 'ה');
    m.insert("heart", '♥');
    m.insert("heartsuitblack", '♥');
    m.insert("heartsuitwhite", '♡');
    m.insert("hedagesh", 'הּ');
    m.insert("hedageshhebrew", 'הּ');
    m.insert("hehaltonearabic", 'ہ');
    m.insert("heharabic", 'ه');
    m.insert("hehebrew", 'ה');
    m.insert("hehfinalaltonearabic", 'ﮧ');
    m.insert("hehfinalalttwoarabic", 'ﻪ');
    m.insert("hehfinalarabic", 'ﻪ');
    m.insert("hehhamzaabovefinalarabic", 'ﮥ');
    m.insert("hehhamzaaboveisolatedarabic", 'ﮤ');
    m.insert("hehinitialaltonearabic", 'ﮨ');
    m.insert("hehinitialarabic", 'ﻫ');
    m.insert("hehiragana", 'へ');
    m.insert("hehmedialaltonearabic", 'ﮩ');
    m.insert("hehmedialarabic", 'ﻬ');
    m.insert("heiseierasquare", '㍻');
    m.insert("hekatakana", 'ヘ');
    m.insert("hekatakanahalfwidth", 'ﾍ');
    m.insert("hekutaarusquare", '㌶');
    m.insert("henghook", 'ɧ');
    m.insert("herutusquare", '㌹');
    m.insert("het", 'ח');
    m.insert("hethebrew", 'ח');
    m.insert("hhook", 'ɦ');
    m.insert("hhooksuperior", 'ʱ');
    m.insert("hieuhacirclekorean", '㉻');
    m.insert("hieuhaparenkorean", '㈛');
    m.insert("hieuhcirclekorean", '㉭');
    m.insert("hieuhkorean", 'ㅎ');
    m.insert("hieuhparenkorean", '㈍');
    m.insert("hihiragana", 'ひ');
    m.insert("hikatakana", 'ヒ');
    m.insert("hikatakanahalfwidth", 'ﾋ');
    m.insert("hiriq", 'ִ');
    m.insert("hiriq14", 'ִ');
    m.insert("hiriq21", 'ִ');
    m.insert("hiriq2d", 'ִ');
    m.insert("hiriqhebrew", 'ִ');
    m.insert("hiriqnarrowhebrew", 'ִ');
    m.insert("hiriqquarterhebrew", 'ִ');
    m.insert("hiriqwidehebrew", 'ִ');
    m.insert("hlinebelow", 'ẖ');
    m.insert("hmonospace", 'ｈ');
    m.insert("hoarmenian", 'հ');
    m.insert("hohipthai", 'ห');
    m.insert("hohiragana", 'ほ');
    m.insert("hokatakana", 'ホ');
    m.insert("hokatakanahalfwidth", 'ﾎ');
    m.insert("holam", 'ֹ');
    m.insert("holam19", 'ֹ');
    m.insert("holam26", 'ֹ');
    m.insert("holam32", 'ֹ');
    m.insert("holamhebrew", 'ֹ');
    m.insert("holamnarrowhebrew", 'ֹ');
    m.insert("holamquarterhebrew", 'ֹ');
    m.insert("holamwidehebrew", 'ֹ');
    m.insert("honokhukthai", 'ฮ');
    m.insert("hookabovecomb", '̉');
    m.insert("hookcmb", '̉');
    m.insert("hookpalatalizedbelowcmb", '̡');
    m.insert("hookretroflexbelowcmb", '̢');
    m.insert("hoonsquare", '㍂');
    m.insert("horicoptic", 'ϩ');
    m.insert("horizontalbar", '―');
    m.insert("horncmb", '̛');
    m.insert("hotsprings", '♨');
    m.insert("house", '⌂');
    m.insert("hparen", '⒣');
    m.insert("hsuperior", 'ʰ');
    m.insert("hturned", 'ɥ');
    m.insert("huhiragana", 'ふ');
    m.insert("huiitosquare", '㌳');
    m.insert("hukatakana", 'フ');
    m.insert("hukatakanahalfwidth", 'ﾌ');
    m.insert("hungarumlaut", '˝');
    m.insert("hungarumlautcmb", '̋');
    m.insert("hv", 'ƕ');
    m.insert("hyphen", '-');
    m.insert("hypheninferior", '');
    m.insert("hyphenmonospace", '－');
    m.insert("hyphensmall", '﹣');
    m.insert("hyphensuperior", '');
    m.insert("hyphentwo", '‐');
    m.insert("i", 'i');
    m.insert("iacute", 'í');
    m.insert("iacyrillic", 'я');
    m.insert("ibengali", 'ই');
    m.insert("ibopomofo", 'ㄧ');
    m.insert("ibreve", 'ĭ');
    m.insert("icaron", 'ǐ');
    m.insert("icircle", 'ⓘ');
    m.insert("icircumflex", 'î');
    m.insert("icyrillic", 'і');
    m.insert("idblgrave", 'ȉ');
    m.insert("ideographearthcircle", '㊏');
    m.insert("ideographfirecircle", '㊋');
    m.insert("ideographicallianceparen", '㈿');
    m.insert("ideographiccallparen", '㈺');
    m.insert("ideographiccentrecircle", '㊥');
    m.insert("ideographicclose", '〆');
    m.insert("ideographiccomma", '、');
    m.insert("ideographiccommaleft", '､');
    m.insert("ideographiccongratulationparen", '㈷');
    m.insert("ideographiccorrectcircle", '㊣');
    m.insert("ideographicearthparen", '㈯');
    m.insert("ideographicenterpriseparen", '㈽');
    m.insert("ideographicexcellentcircle", '㊝');
    m.insert("ideographicfestivalparen", '㉀');
    m.insert("ideographicfinancialcircle", '㊖');
    m.insert("ideographicfinancialparen", '㈶');
    m.insert("ideographicfireparen", '㈫');
    m.insert("ideographichaveparen", '㈲');
    m.insert("ideographichighcircle", '㊤');
    m.insert("ideographiciterationmark", '々');
    m.insert("ideographiclaborcircle", '㊘');
    m.insert("ideographiclaborparen", '㈸');
    m.insert("ideographicleftcircle", '㊧');
    m.insert("ideographiclowcircle", '㊦');
    m.insert("ideographicmedicinecircle", '㊩');
    m.insert("ideographicmetalparen", '㈮');
    m.insert("ideographicmoonparen", '㈪');
    m.insert("ideographicnameparen", '㈴');
    m.insert("ideographicperiod", '。');
    m.insert("ideographicprintcircle", '㊞');
    m.insert("ideographicreachparen", '㉃');
    m.insert("ideographicrepresentparen", '㈹');
    m.insert("ideographicresourceparen", '㈾');
    m.insert("ideographicrightcircle", '㊨');
    m.insert("ideographicsecretcircle", '㊙');
    m.insert("ideographicselfparen", '㉂');
    m.insert("ideographicsocietyparen", '㈳');
    m.insert("ideographicspace", '　');
    m.insert("ideographicspecialparen", '㈵');
    m.insert("ideographicstockparen", '㈱');
    m.insert("ideographicstudyparen", '㈻');
    m.insert("ideographicsunparen", '㈰');
    m.insert("ideographicsuperviseparen", '㈼');
    m.insert("ideographicwaterparen", '㈬');
    m.insert("ideographicwoodparen", '㈭');
    m.insert("ideographiczero", '〇');
    m.insert("ideographmetalcircle", '㊎');
    m.insert("ideographmooncircle", '㊊');
    m.insert("ideographnamecircle", '㊔');
    m.insert("ideographsuncircle", '㊐');
    m.insert("ideographwatercircle", '㊌');
    m.insert("ideographwoodcircle", '㊍');
    m.insert("ideva", 'इ');
    m.insert("idieresis", 'ï');
    m.insert("idieresisacute", 'ḯ');
    m.insert("idieresiscyrillic", 'ӥ');
    m.insert("idotbelow", 'ị');
    m.insert("iebrevecyrillic", 'ӗ');
    m.insert("iecyrillic", 'е');
    m.insert("ieungacirclekorean", '㉵');
    m.insert("ieungaparenkorean", '㈕');
    m.insert("ieungcirclekorean", '㉧');
    m.insert("ieungkorean", 'ㅇ');
    m.insert("ieungparenkorean", '㈇');
    m.insert("igrave", 'ì');
    m.insert("igujarati", 'ઇ');
    m.insert("igurmukhi", 'ਇ');
    m.insert("ihiragana", 'い');
    m.insert("ihookabove", 'ỉ');
    m.insert("iibengali", 'ঈ');
    m.insert("iicyrillic", 'и');
    m.insert("iideva", 'ई');
    m.insert("iigujarati", 'ઈ');
    m.insert("iigurmukhi", 'ਈ');
    m.insert("iimatragurmukhi", 'ੀ');
    m.insert("iinvertedbreve", 'ȋ');
    m.insert("iishortcyrillic", 'й');
    m.insert("iivowelsignbengali", 'ী');
    m.insert("iivowelsigndeva", 'ी');
    m.insert("iivowelsigngujarati", 'ી');
    m.insert("ij", 'ĳ');
    m.insert("ikatakana", 'イ');
    m.insert("ikatakanahalfwidth", 'ｲ');
    m.insert("ikorean", 'ㅣ');
    m.insert("ilde", '˜');
    m.insert("iluyhebrew", '֬');
    m.insert("imacron", 'ī');
    m.insert("imacroncyrillic", 'ӣ');
    m.insert("imageorapproximatelyequal", '≓');
    m.insert("imatragurmukhi", 'ਿ');
    m.insert("imonospace", 'ｉ');
    m.insert("increment", '∆');
    m.insert("infinity", '∞');
    m.insert("iniarmenian", 'ի');
    m.insert("integral", '∫');
    m.insert("integralbottom", '⌡');
    m.insert("integralbt", '⌡');
    m.insert("integraldisplay", '∫');
    m.insert("integralex", '');
    m.insert("integraltext", '∫');
    m.insert("integraltop", '⌠');
    m.insert("integraltp", '⌠');
    m.insert("intercal", 'ᵀ');
    m.insert("intersection", '∩');
    m.insert("intersectiondisplay", '⋂');
    m.insert("intersectiontext", '⋂');
    m.insert("intisquare", '㌅');
    m.insert("invbullet", '◘');
    m.insert("invcircle", '◙');
    m.insert("invsmileface", '☻');
    m.insert("iocyrillic", 'ё');
    m.insert("iogonek", 'į');
    m.insert("iota", 'ι');
    m.insert("iotadieresis", 'ϊ');
    m.insert("iotadieresistonos", 'ΐ');
    m.insert("iotalatin", 'ɩ');
    m.insert("iotatonos", 'ί');
    m.insert("iparen", '⒤');
    m.insert("irigurmukhi", 'ੲ');
    m.insert("ismallhiragana", 'ぃ');
    m.insert("ismallkatakana", 'ィ');
    m.insert("ismallkatakanahalfwidth", 'ｨ');
    m.insert("issharbengali", '৺');
    m.insert("istroke", 'ɨ');
    m.insert("isuperior", '');
    m.insert("iterationhiragana", 'ゝ');
    m.insert("iterationkatakana", 'ヽ');
    m.insert("itilde", 'ĩ');
    m.insert("itildebelow", 'ḭ');
    m.insert("iubopomofo", 'ㄩ');
    m.insert("iucyrillic", 'ю');
    m.insert("ivowelsignbengali", 'ি');
    m.insert("ivowelsigndeva", 'ि');
    m.insert("ivowelsigngujarati", 'િ');
    m.insert("izhitsacyrillic", 'ѵ');
    m.insert("izhitsadblgravecyrillic", 'ѷ');
    m.insert("j", 'j');
    m.insert("jaarmenian", 'ձ');
    m.insert("jabengali", 'জ');
    m.insert("jadeva", 'ज');
    m.insert("jagujarati", 'જ');
    m.insert("jagurmukhi", 'ਜ');
    m.insert("jbopomofo", 'ㄐ');
    m.insert("jcaron", 'ǰ');
    m.insert("jcircle", 'ⓙ');
    m.insert("jcircumflex", 'ĵ');
    m.insert("jcrossedtail", 'ʝ');
    m.insert("jdotlessstroke", 'ɟ');
    m.insert("jecyrillic", 'ј');
    m.insert("jeemarabic", 'ج');
    m.insert("jeemfinalarabic", 'ﺞ');
    m.insert("jeeminitialarabic", 'ﺟ');
    m.insert("jeemmedialarabic", 'ﺠ');
    m.insert("jeharabic", 'ژ');
    m.insert("jehfinalarabic", 'ﮋ');
    m.insert("jhabengali", 'ঝ');
    m.insert("jhadeva", 'झ');
    m.insert("jhagujarati", 'ઝ');
    m.insert("jhagurmukhi", 'ਝ');
    m.insert("jheharmenian", 'ջ');
    m.insert("jis", '〄');
    m.insert("jmonospace", 'ｊ');
    m.insert("jparen", '⒥');
    m.insert("jsuperior", 'ʲ');
    m.insert("k", 'k');
    m.insert("kabashkircyrillic", 'ҡ');
    m.insert("kabengali", 'ক');
    m.insert("kacute", 'ḱ');
    m.insert("kacyrillic", 'к');
    m.insert("kadescendercyrillic", 'қ');
    m.insert("kadeva", 'क');
    m.insert("kaf", 'כ');
    m.insert("kafarabic", 'ك');
    m.insert("kafdagesh", 'כּ');
    m.insert("kafdageshhebrew", 'כּ');
    m.insert("kaffinalarabic", 'ﻚ');
    m.insert("kafhebrew", 'כ');
    m.insert("kafinitialarabic", 'ﻛ');
    m.insert("kafmedialarabic", 'ﻜ');
    m.insert("kafrafehebrew", 'כֿ');
    m.insert("kagujarati", 'ક');
    m.insert("kagurmukhi", 'ਕ');
    m.insert("kahiragana", 'か');
    m.insert("kahookcyrillic", 'ӄ');
    m.insert("kakatakana", 'カ');
    m.insert("kakatakanahalfwidth", 'ｶ');
    m.insert("kappa", 'κ');
    m.insert("kappasymbolgreek", 'ϰ');
    m.insert("kapyeounmieumkorean", 'ㅱ');
    m.insert("kapyeounphieuphkorean", 'ㆄ');
    m.insert("kapyeounpieupkorean", 'ㅸ');
    m.insert("kapyeounssangpieupkorean", 'ㅹ');
    m.insert("karoriisquare", '㌍');
    m.insert("kashidaautoarabic", 'ـ');
    m.insert("kashidaautonosidebearingarabic", 'ـ');
    m.insert("kasmallkatakana", 'ヵ');
    m.insert("kasquare", '㎄');
    m.insert("kasraarabic", 'ِ');
    m.insert("kasratanarabic", 'ٍ');
    m.insert("kastrokecyrillic", 'ҟ');
    m.insert("katahiraprolongmarkhalfwidth", 'ｰ');
    m.insert("kaverticalstrokecyrillic", 'ҝ');
    m.insert("kbopomofo", 'ㄎ');
    m.insert("kcalsquare", '㎉');
    m.insert("kcaron", 'ǩ');
    m.insert("kcedilla", 'ķ');
    m.insert("kcircle", 'ⓚ');
    m.insert("kcommaaccent", 'ķ');
    m.insert("kdotbelow", 'ḳ');
    m.insert("keharmenian", 'ք');
    m.insert("kehiragana", 'け');
    m.insert("kekatakana", 'ケ');
    m.insert("kekatakanahalfwidth", 'ｹ');
    m.insert("kenarmenian", 'կ');
    m.insert("kesmallkatakana", 'ヶ');
    m.insert("kgreenlandic", 'ĸ');
    m.insert("khabengali", 'খ');
    m.insert("khacyrillic", 'х');
    m.insert("khadeva", 'ख');
    m.insert("khagujarati", 'ખ');
    m.insert("khagurmukhi", 'ਖ');
    m.insert("khaharabic", 'خ');
    m.insert("khahfinalarabic", 'ﺦ');
    m.insert("khahinitialarabic", 'ﺧ');
    m.insert("khahmedialarabic", 'ﺨ');
    m.insert("kheicoptic", 'ϧ');
    m.insert("khhadeva", 'ख़');
    m.insert("khhagurmukhi", 'ਖ਼');
    m.insert("khieukhacirclekorean", '㉸');
    m.insert("khieukhaparenkorean", '㈘');
    m.insert("khieukhcirclekorean", '㉪');
    m.insert("khieukhkorean", 'ㅋ');
    m.insert("khieukhparenkorean", '㈊');
    m.insert("khokhaithai", 'ข');
    m.insert("khokhonthai", 'ฅ');
    m.insert("khokhuatthai", 'ฃ');
    m.insert("khokhwaithai", 'ค');
    m.insert("khomutthai", '๛');
    m.insert("khook", 'ƙ');
    m.insert("khorakhangthai", 'ฆ');
    m.insert("khzsquare", '㎑');
    m.insert("kihiragana", 'き');
    m.insert("kikatakana", 'キ');
    m.insert("kikatakanahalfwidth", 'ｷ');
    m.insert("kiroguramusquare", '㌕');
    m.insert("kiromeetorusquare", '㌖');
    m.insert("kirosquare", '㌔');
    m.insert("kiyeokacirclekorean", '㉮');
    m.insert("kiyeokaparenkorean", '㈎');
    m.insert("kiyeokcirclekorean", '㉠');
    m.insert("kiyeokkorean", 'ㄱ');
    m.insert("kiyeokparenkorean", '㈀');
    m.insert("kiyeoksioskorean", 'ㄳ');
    m.insert("kjecyrillic", 'ќ');
    m.insert("klinebelow", 'ḵ');
    m.insert("klsquare", '㎘');
    m.insert("kmcubedsquare", '㎦');
    m.insert("kmonospace", 'ｋ');
    m.insert("kmsquaredsquare", '㎢');
    m.insert("kohiragana", 'こ');
    m.insert("kohmsquare", '㏀');
    m.insert("kokaithai", 'ก');
    m.insert("kokatakana", 'コ');
    m.insert("kokatakanahalfwidth", 'ｺ');
    m.insert("kooposquare", '㌞');
    m.insert("koppacyrillic", 'ҁ');
    m.insert("koreanstandardsymbol", '㉿');
    m.insert("koroniscmb", '̓');
    m.insert("kparen", '⒦');
    m.insert("kpasquare", '㎪');
    m.insert("ksicyrillic", 'ѯ');
    m.insert("ktsquare", '㏏');
    m.insert("kturned", 'ʞ');
    m.insert("kuhiragana", 'く');
    m.insert("kukatakana", 'ク');
    m.insert("kukatakanahalfwidth", 'ｸ');
    m.insert("kvsquare", '㎸');
    m.insert("kwsquare", '㎾');
    m.insert("l", 'l');
    m.insert("labengali", 'ল');
    m.insert("lacute", 'ĺ');
    m.insert("ladeva", 'ल');
    m.insert("lagujarati", 'લ');
    m.insert("lagurmukhi", 'ਲ');
    m.insert("lakkhangyaothai", 'ๅ');
    m.insert("lamaleffinalarabic", 'ﻼ');
    m.insert("lamalefhamzaabovefinalarabic", 'ﻸ');
    m.insert("lamalefhamzaaboveisolatedarabic", 'ﻷ');
    m.insert("lamalefhamzabelowfinalarabic", 'ﻺ');
    m.insert("lamalefhamzabelowisolatedarabic", 'ﻹ');
    m.insert("lamalefisolatedarabic", 'ﻻ');
    m.insert("lamalefmaddaabovefinalarabic", 'ﻶ');
    m.insert("lamalefmaddaaboveisolatedarabic", 'ﻵ');
    m.insert("lamarabic", 'ل');
    m.insert("lambda", 'λ');
    m.insert("lambdastroke", 'ƛ');
    m.insert("lamed", 'ל');
    m.insert("lameddagesh", 'לּ');
    m.insert("lameddageshhebrew", 'לּ');
    m.insert("lamedhebrew", 'ל');
    m.insert("lamfinalarabic", 'ﻞ');
    m.insert("lamhahinitialarabic", 'ﳊ');
    m.insert("laminitialarabic", 'ﻟ');
    m.insert("lamjeeminitialarabic", 'ﳉ');
    m.insert("lamkhahinitialarabic", 'ﳋ');
    m.insert("lamlamhehisolatedarabic", 'ﷲ');
    m.insert("lammedialarabic", 'ﻠ');
    m.insert("lammeemhahinitialarabic", 'ﶈ');
    m.insert("lammeeminitialarabic", 'ﳌ');
    m.insert("largecircle", '◯');
    m.insert("lbar", 'ƚ');
    m.insert("lbelt", 'ɬ');
    m.insert("lbopomofo", 'ㄌ');
    m.insert("lcaron", 'ľ');
    m.insert("lcedilla", 'ļ');
    m.insert("lcircle", 'ⓛ');
    m.insert("lcircumflexbelow", 'ḽ');
    m.insert("lcommaaccent", 'ļ');
    m.insert("ldot", 'ŀ');
    m.insert("ldotaccent", 'ŀ');
    m.insert("ldotbelow", 'ḷ');
    m.insert("ldotbelowmacron", 'ḹ');
    m.insert("leftangleabovecmb", '̚');
    m.insert("lefttackbelowcmb", '̘');
    m.insert("less", '<');
    m.insert("lessequal", '≤');
    m.insert("lessequalorgreater", '⋚');
    m.insert("lessmonospace", '＜');
    m.insert("lessorequivalent", '≲');
    m.insert("lessorgreater", '≶');
    m.insert("lessoverequal", '≦');
    m.insert("lesssmall", '﹤');
    m.insert("lezh", 'ɮ');
    m.insert("lfblock", '▌');
    m.insert("lhookretroflex", 'ɭ');
    m.insert("lira", '₤');
    m.insert("liwnarmenian", 'լ');
    m.insert("lj", 'ǉ');
    m.insert("ljecyrillic", 'љ');
    m.insert("ll", '');
    m.insert("lladeva", 'ळ');
    m.insert("llagujarati", 'ળ');
    m.insert("llinebelow", 'ḻ');
    m.insert("llladeva", 'ऴ');
    m.insert("llvocalicbengali", 'ৡ');
    m.insert("llvocalicdeva", 'ॡ');
    m.insert("llvocalicvowelsignbengali", 'ৣ');
    m.insert("llvocalicvowelsigndeva", 'ॣ');
    m.insert("lmiddletilde", 'ɫ');
    m.insert("lmonospace", 'ｌ');
    m.insert("lmsquare", '㏐');
    m.insert("lochulathai", 'ฬ');
    m.insert("logicaland", '∧');
    m.insert("logicalanddisplay", '∧');
    m.insert("logicalandtext", '∧');
    m.insert("logicalnot", '¬');
    m.insert("logicalnotreversed", '⌐');
    m.insert("logicalor", '∨');
    m.insert("logicalordisplay", '∨');
    m.insert("logicalortext", '∨');
    m.insert("lolingthai", 'ล');
    m.insert("longs", 'ſ');
    m.insert("lowlinecenterline", '﹎');
    m.insert("lowlinecmb", '̲');
    m.insert("lowlinedashed", '﹍');
    m.insert("lozenge", '◊');
    m.insert("lparen", '⒧');
    m.insert("lslash", 'ł');
    m.insert("lsquare", 'ℓ');
    m.insert("lsuperior", '');
    m.insert("ltshade", '░');
    m.insert("luthai", 'ฦ');
    m.insert("lvocalicbengali", 'ঌ');
    m.insert("lvocalicdeva", 'ऌ');
    m.insert("lvocalicvowelsignbengali", 'ৢ');
    m.insert("lvocalicvowelsigndeva", 'ॢ');
    m.insert("lxsquare", '㏓');
    m.insert("m", 'm');
    m.insert("mabengali", 'ম');
    m.insert("macron", '¯');
    m.insert("macronbelowcmb", '̱');
    m.insert("macroncmb", '̄');
    m.insert("macronlowmod", 'ˍ');
    m.insert("macronmonospace", '￣');
    m.insert("macute", 'ḿ');
    m.insert("madeva", 'म');
    m.insert("magujarati", 'મ');
    m.insert("magurmukhi", 'ਮ');
    m.insert("mahapakhhebrew", '֤');
    m.insert("mahapakhlefthebrew", '֤');
    m.insert("mahiragana", 'ま');
    m.insert("maichattawalowleftthai", '');
    m.insert("maichattawalowrightthai", '');
    m.insert("maichattawathai", '๋');
    m.insert("maichattawaupperleftthai", '');
    m.insert("maieklowleftthai", '');
    m.insert("maieklowrightthai", '');
    m.insert("maiekthai", '่');
    m.insert("maiekupperleftthai", '');
    m.insert("maihanakatleftthai", '');
    m.insert("maihanakatthai", 'ั');
    m.insert("maitaikhuleftthai", '');
    m.insert("maitaikhuthai", '็');
    m.insert("maitholowleftthai", '');
    m.insert("maitholowrightthai", '');
    m.insert("maithothai", '้');
    m.insert("maithoupperleftthai", '');
    m.insert("maitrilowleftthai", '');
    m.insert("maitrilowrightthai", '');
    m.insert("maitrithai", '๊');
    m.insert("maitriupperleftthai", '');
    m.insert("maiyamokthai", 'ๆ');
    m.insert("makatakana", 'マ');
    m.insert("makatakanahalfwidth", 'ﾏ');
    m.insert("male", '♂');
    m.insert("mansyonsquare", '㍇');
    m.insert("maqafhebrew", '־');
    m.insert("mars", '♂');
    m.insert("masoracirclehebrew", '֯');
    m.insert("masquare", '㎃');
    m.insert("mbopomofo", 'ㄇ');
    m.insert("mbsquare", '㏔');
    m.insert("mcircle", 'ⓜ');
    m.insert("mcubedsquare", '㎥');
    m.insert("mdotaccent", 'ṁ');
    m.insert("mdotbelow", 'ṃ');
    m.insert("meemarabic", 'م');
    m.insert("meemfinalarabic", 'ﻢ');
    m.insert("meeminitialarabic", 'ﻣ');
    m.insert("meemmedialarabic", 'ﻤ');
    m.insert("meemmeeminitialarabic", 'ﳑ');
    m.insert("meemmeemisolatedarabic", 'ﱈ');
    m.insert("meetorusquare", '㍍');
    m.insert("mehiragana", 'め');
    m.insert("meizierasquare", '㍾');
    m.insert("mekatakana", 'メ');
    m.insert("mekatakanahalfwidth", 'ﾒ');
    m.insert("mem", 'מ');
    m.insert("memdagesh", 'מּ');
    m.insert("memdageshhebrew", 'מּ');
    m.insert("memhebrew", 'מ');
    m.insert("menarmenian", 'մ');
    m.insert("merkhahebrew", '֥');
    m.insert("merkhakefulahebrew", '֦');
    m.insert("merkhakefulalefthebrew", '֦');
    m.insert("merkhalefthebrew", '֥');
    m.insert("mhook", 'ɱ');
    m.insert("mhzsquare", '㎒');
    m.insert("middledotkatakanahalfwidth", '･');
    m.insert("middot", '·');
    m.insert("mieumacirclekorean", '㉲');
    m.insert("mieumaparenkorean", '㈒');
    m.insert("mieumcirclekorean", '㉤');
    m.insert("mieumkorean", 'ㅁ');
    m.insert("mieumpansioskorean", 'ㅰ');
    m.insert("mieumparenkorean", '㈄');
    m.insert("mieumpieupkorean", 'ㅮ');
    m.insert("mieumsioskorean", 'ㅯ');
    m.insert("mihiragana", 'み');
    m.insert("mikatakana", 'ミ');
    m.insert("mikatakanahalfwidth", 'ﾐ');
    m.insert("minus", '−');
    m.insert("minusbelowcmb", '̠');
    m.insert("minuscircle", '⊖');
    m.insert("minusmod", '˗');
    m.insert("minusplus", '∓');
    m.insert("minute", '′');
    m.insert("miribaarusquare", '㍊');
    m.insert("mirisquare", '㍉');
    m.insert("mlonglegturned", 'ɰ');
    m.insert("mlsquare", '㎖');
    m.insert("mmcubedsquare", '㎣');
    m.insert("mmonospace", 'ｍ');
    m.insert("mmsquaredsquare", '㎟');
    m.insert("mohiragana", 'も');
    m.insert("mohmsquare", '㏁');
    m.insert("mokatakana", 'モ');
    m.insert("mokatakanahalfwidth", 'ﾓ');
    m.insert("molsquare", '㏖');
    m.insert("momathai", 'ม');
    m.insert("moverssquare", '㎧');
    m.insert("moverssquaredsquare", '㎨');
    m.insert("mparen", '⒨');
    m.insert("mpasquare", '㎫');
    m.insert("mssquare", '㎳');
    m.insert("msuperior", '');
    m.insert("mturned", 'ɯ');
    m.insert("mu", 'µ');
    m.insert("mu1", 'µ');
    m.insert("muasquare", '㎂');
    m.insert("muchgreater", '≫');
    m.insert("muchless", '≪');
    m.insert("mufsquare", '㎌');
    m.insert("mugreek", 'μ');
    m.insert("mugsquare", '㎍');
    m.insert("muhiragana", 'む');
    m.insert("mukatakana", 'ム');
    m.insert("mukatakanahalfwidth", 'ﾑ');
    m.insert("mulsquare", '㎕');
    m.insert("multiply", '×');
    m.insert("mumsquare", '㎛');
    m.insert("munahhebrew", '֣');
    m.insert("munahlefthebrew", '֣');
    m.insert("musicalnote", '♪');
    m.insert("musicalnotedbl", '♫');
    m.insert("musicflatsign", '♭');
    m.insert("musicsharpsign", '♯');
    m.insert("mussquare", '㎲');
    m.insert("muvsquare", '㎶');
    m.insert("muwsquare", '㎼');
    m.insert("mvmegasquare", '㎹');
    m.insert("mvsquare", '㎷');
    m.insert("mwmegasquare", '㎿');
    m.insert("mwsquare", '㎽');
    m.insert("n", 'n');
    m.insert("nabengali", 'ন');
    m.insert("nabla", '∇');
    m.insert("nacute", 'ń');
    m.insert("nadeva", 'न');
    m.insert("nagujarati", 'ન');
    m.insert("nagurmukhi", 'ਨ');
    m.insert("nahiragana", 'な');
    m.insert("nakatakana", 'ナ');
    m.insert("nakatakanahalfwidth", 'ﾅ');
    m.insert("napostrophe", 'ŉ');
    m.insert("nasquare", '㎁');
    m.insert("nbopomofo", 'ㄋ');
    m.insert("nbspace", ' ');
    m.insert("ncaron", 'ň');
    m.insert("ncedilla", 'ņ');
    m.insert("ncircle", 'ⓝ');
    m.insert("ncircumflexbelow", 'ṋ');
    m.insert("ncommaaccent", 'ņ');
    m.insert("ndotaccent", 'ṅ');
    m.insert("ndotbelow", 'ṇ');
    m.insert("nehiragana", 'ね');
    m.insert("nekatakana", 'ネ');
    m.insert("nekatakanahalfwidth", 'ﾈ');
    m.insert("newsheqelsign", '₪');
    m.insert("nfsquare", '㎋');
    m.insert("ngabengali", 'ঙ');
    m.insert("ngadeva", 'ङ');
    m.insert("ngagujarati", 'ઙ');
    m.insert("ngagurmukhi", 'ਙ');
    m.insert("ngonguthai", 'ง');
    m.insert("nhiragana", 'ん');
    m.insert("nhookleft", 'ɲ');
    m.insert("nhookretroflex", 'ɳ');
    m.insert("nieunacirclekorean", '㉯');
    m.insert("nieunaparenkorean", '㈏');
    m.insert("nieuncieuckorean", 'ㄵ');
    m.insert("nieuncirclekorean", '㉡');
    m.insert("nieunhieuhkorean", 'ㄶ');
    m.insert("nieunkorean", 'ㄴ');
    m.insert("nieunpansioskorean", 'ㅨ');
    m.insert("nieunparenkorean", '㈁');
    m.insert("nieunsioskorean", 'ㅧ');
    m.insert("nieuntikeutkorean", 'ㅦ');
    m.insert("nihiragana", 'に');
    m.insert("nikatakana", 'ニ');
    m.insert("nikatakanahalfwidth", 'ﾆ');
    m.insert("nikhahitleftthai", '');
    m.insert("nikhahitthai", 'ํ');
    m.insert("nine", '9');
    m.insert("ninearabic", '٩');
    m.insert("ninebengali", '৯');
    m.insert("ninecircle", '⑨');
    m.insert("ninecircleinversesansserif", '➒');
    m.insert("ninedeva", '९');
    m.insert("ninegujarati", '૯');
    m.insert("ninegurmukhi", '੯');
    m.insert("ninehackarabic", '٩');
    m.insert("ninehangzhou", '〩');
    m.insert("nineideographicparen", '㈨');
    m.insert("nineinferior", '₉');
    m.insert("ninemonospace", '９');
    m.insert("nineoldstyle", '');
    m.insert("nineparen", '⑼');
    m.insert("nineperiod", '⒐');
    m.insert("ninepersian", '۹');
    m.insert("nineroman", 'ⅸ');
    m.insert("ninesuperior", '⁹');
    m.insert("nineteencircle", '⑲');
    m.insert("nineteenparen", '⒆');
    m.insert("nineteenperiod", '⒚');
    m.insert("ninethai", '๙');
    m.insert("nj", 'ǌ');
    m.insert("njecyrillic", 'њ');
    m.insert("nkatakana", 'ン');
    m.insert("nkatakanahalfwidth", 'ﾝ');
    m.insert("nlegrightlong", 'ƞ');
    m.insert("nlinebelow", 'ṉ');
    m.insert("nmonospace", 'ｎ');
    m.insert("nmsquare", '㎚');
    m.insert("nnabengali", 'ণ');
    m.insert("nnadeva", 'ण');
    m.insert("nnagujarati", 'ણ');
    m.insert("nnagurmukhi", 'ਣ');
    m.insert("nnnadeva", 'ऩ');
    m.insert("nohiragana", 'の');
    m.insert("nokatakana", 'ノ');
    m.insert("nokatakanahalfwidth", 'ﾉ');
    m.insert("nonbreakingspace", ' ');
    m.insert("nonenthai", 'ณ');
    m.insert("nonuthai", 'น');
    m.insert("noonarabic", 'ن');
    m.insert("noonfinalarabic", 'ﻦ');
    m.insert("noonghunnaarabic", 'ں');
    m.insert("noonghunnafinalarabic", 'ﮟ');
    m.insert("nooninitialarabic", 'ﻧ');
    m.insert("noonjeeminitialarabic", 'ﳒ');
    m.insert("noonjeemisolatedarabic", 'ﱋ');
    m.insert("noonmedialarabic", 'ﻨ');
    m.insert("noonmeeminitialarabic", 'ﳕ');
    m.insert("noonmeemisolatedarabic", 'ﱎ');
    m.insert("noonnoonfinalarabic", 'ﲍ');
    m.insert("notcontains", '∌');
    m.insert("notelement", '∉');
    m.insert("notelementof", '∉');
    m.insert("notequal", '≠');
    m.insert("notgreater", '≯');
    m.insert("notgreaternorequal", '≱');
    m.insert("notgreaternorless", '≹');
    m.insert("notidentical", '≢');
    m.insert("notless", '≮');
    m.insert("notlessnorequal", '≰');
    m.insert("notparallel", '∦');
    m.insert("notprecedes", '⊀');
    m.insert("notsubset", '⊄');
    m.insert("notsucceeds", '⊁');
    m.insert("notsuperset", '⊅');
    m.insert("nowarmenian", 'ն');
    m.insert("nparen", '⒩');
    m.insert("nssquare", '㎱');
    m.insert("nsuperior", 'ⁿ');
    m.insert("ntilde", 'ñ');
    m.insert("nu", 'ν');
    m.insert("nuhiragana", 'ぬ');
    m.insert("nukatakana", 'ヌ');
    m.insert("nukatakanahalfwidth", 'ﾇ');
    m.insert("nuktabengali", '়');
    m.insert("nuktadeva", '़');
    m.insert("nuktagujarati", '઼');
    m.insert("nuktagurmukhi", '਼');
    m.insert("numbersign", '#');
    m.insert("numbersignmonospace", '＃');
    m.insert("numbersignsmall", '﹟');
    m.insert("numeralsigngreek", 'ʹ');
    m.insert("numeralsignlowergreek", '͵');
    m.insert("numero", '№');
    m.insert("nun", 'נ');
    m.insert("nundagesh", 'נּ');
    m.insert("nundageshhebrew", 'נּ');
    m.insert("nunhebrew", 'נ');
    m.insert("nvsquare", '㎵');
    m.insert("nwsquare", '㎻');
    m.insert("nyabengali", 'ঞ');
    m.insert("nyadeva", 'ञ');
    m.insert("nyagujarati", 'ઞ');
    m.insert("nyagurmukhi", 'ਞ');
    m.insert("o", 'o');
    m.insert("oacute", 'ó');
    m.insert("oangthai", 'อ');
    m.insert("obarred", 'ɵ');
    m.insert("obarredcyrillic", 'ө');
    m.insert("obarreddieresiscyrillic", 'ӫ');
    m.insert("obengali", 'ও');
    m.insert("obopomofo", 'ㄛ');
    m.insert("obreve", 'ŏ');
    m.insert("ocandradeva", 'ऑ');
    m.insert("ocandragujarati", 'ઑ');
    m.insert("ocandravowelsigndeva", 'ॉ');
    m.insert("ocandravowelsigngujarati", 'ૉ');
    m.insert("ocaron", 'ǒ');
    m.insert("ocircle", 'ⓞ');
    m.insert("ocircumflex", 'ô');
    m.insert("ocircumflexacute", 'ố');
    m.insert("ocircumflexdotbelow", 'ộ');
    m.insert("ocircumflexgrave", 'ồ');
    m.insert("ocircumflexhookabove", 'ổ');
    m.insert("ocircumflextilde", 'ỗ');
    m.insert("ocyrillic", 'о');
    m.insert("odblacute", 'ő');
    m.insert("odblgrave", 'ȍ');
    m.insert("odeva", 'ओ');
    m.insert("odieresis", 'ö');
    m.insert("odieresiscyrillic", 'ӧ');
    m.insert("odotbelow", 'ọ');
    m.insert("oe", 'œ');
    m.insert("oekorean", 'ㅚ');
    m.insert("ogonek", '˛');
    m.insert("ogonekcmb", '̨');
    m.insert("ograve", 'ò');
    m.insert("ogujarati", 'ઓ');
    m.insert("oharmenian", 'օ');
    m.insert("ohiragana", 'お');
    m.insert("ohookabove", 'ỏ');
    m.insert("ohorn", 'ơ');
    m.insert("ohornacute", 'ớ');
    m.insert("ohorndotbelow", 'ợ');
    m.insert("ohorngrave", 'ờ');
    m.insert("ohornhookabove", 'ở');
    m.insert("ohorntilde", 'ỡ');
    m.insert("ohungarumlaut", 'ő');
    m.insert("oi", 'ƣ');
    m.insert("oinvertedbreve", 'ȏ');
    m.insert("okatakana", 'オ');
    m.insert("okatakanahalfwidth", 'ｵ');
    m.insert("okorean", 'ㅗ');
    m.insert("olehebrew", '֫');
    m.insert("omacron", 'ō');
    m.insert("omacronacute", 'ṓ');
    m.insert("omacrongrave", 'ṑ');
    m.insert("omdeva", 'ॐ');
    m.insert("omega", 'ω');
    m.insert("omega1", 'ϖ');
    m.insert("omegacyrillic", 'ѡ');
    m.insert("omegalatinclosed", 'ɷ');
    m.insert("omegaroundcyrillic", 'ѻ');
    m.insert("omegatitlocyrillic", 'ѽ');
    m.insert("omegatonos", 'ώ');
    m.insert("omgujarati", 'ૐ');
    m.insert("omicron", 'ο');
    m.insert("omicrontonos", 'ό');
    m.insert("omonospace", 'ｏ');
    m.insert("one", '1');
    m.insert("onearabic", '١');
    m.insert("onebengali", '১');
    m.insert("onecircle", '①');
    m.insert("onecircleinversesansserif", '➊');
    m.insert("onedeva", '१');
    m.insert("onedotenleader", '․');
    m.insert("oneeighth", '⅛');
    m.insert("onefitted", '');
    m.insert("onegujarati", '૧');
    m.insert("onegurmukhi", '੧');
    m.insert("onehackarabic", '١');
    m.insert("onehalf", '½');
    m.insert("onehangzhou", '〡');
    m.insert("oneideographicparen", '㈠');
    m.insert("oneinferior", '₁');
    m.insert("onemonospace", '１');
    m.insert("onenumeratorbengali", '৴');
    m.insert("oneoldstyle", '');
    m.insert("oneparen", '⑴');
    m.insert("oneperiod", '⒈');
    m.insert("onepersian", '۱');
    m.insert("onequarter", '¼');
    m.insert("oneroman", 'ⅰ');
    m.insert("onesuperior", '¹');
    m.insert("onethai", '๑');
    m.insert("onethird", '⅓');
    m.insert("oogonek", 'ǫ');
    m.insert("oogonekmacron", 'ǭ');
    m.insert("oogurmukhi", 'ਓ');
    m.insert("oomatragurmukhi", 'ੋ');
    m.insert("oopen", 'ɔ');
    m.insert("oparen", '⒪');
    m.insert("openbullet", '◦');
    m.insert("option", '⌥');
    m.insert("ordfeminine", 'ª');
    m.insert("ordmasculine", 'º');
    m.insert("orthogonal", '∟');
    m.insert("oshortdeva", 'ऒ');
    m.insert("oshortvowelsigndeva", 'ॊ');
    m.insert("oslash", 'ø');
    m.insert("oslashacute", 'ǿ');
    m.insert("osmallhiragana", 'ぉ');
    m.insert("osmallkatakana", 'ォ');
    m.insert("osmallkatakanahalfwidth", 'ｫ');
    m.insert("ostrokeacute", 'ǿ');
    m.insert("osuperior", '');
    m.insert("otcyrillic", 'ѿ');
    m.insert("otilde", 'õ');
    m.insert("otildeacute", 'ṍ');
    m.insert("otildedieresis", 'ṏ');
    m.insert("oubopomofo", 'ㄡ');
    m.insert("overline", '‾');
    m.insert("overlinecenterline", '﹊');
    m.insert("overlinecmb", '̅');
    m.insert("overlinedashed", '﹉');
    m.insert("overlinedblwavy", '﹌');
    m.insert("overlinewavy", '﹋');
    m.insert("overscore", '¯');
    m.insert("ovowelsignbengali", 'ো');
    m.insert("ovowelsigndeva", 'ो');
    m.insert("ovowelsigngujarati", 'ો');
    m.insert("p", 'p');
    m.insert("paampssquare", '㎀');
    m.insert("paasentosquare", '㌫');
    m.insert("pabengali", 'প');
    m.insert("pacute", 'ṕ');
    m.insert("padeva", 'प');
    m.insert("pagedown", '⇟');
    m.insert("pageup", '⇞');
    m.insert("pagujarati", 'પ');
    m.insert("pagurmukhi", 'ਪ');
    m.insert("pahiragana", 'ぱ');
    m.insert("paiyannoithai", 'ฯ');
    m.insert("pakatakana", 'パ');
    m.insert("palatalizationcyrilliccmb", '҄');
    m.insert("palochkacyrillic", 'Ӏ');
    m.insert("pansioskorean", 'ㅿ');
    m.insert("paragraph", '¶');
    m.insert("parallel", '∥');
    m.insert("parenleft", '(');
    m.insert("parenleftBig", '(');
    m.insert("parenleftBigg", '(');
    m.insert("parenleftaltonearabic", '﴾');
    m.insert("parenleftbig", '(');
    m.insert("parenleftbigg", '(');
    m.insert("parenleftbt", '');
    m.insert("parenleftex", '');
    m.insert("parenleftinferior", '₍');
    m.insert("parenleftmonospace", '（');
    m.insert("parenleftsmall", '﹙');
    m.insert("parenleftsuperior", '⁽');
    m.insert("parenlefttp", '');
    m.insert("parenleftvertical", '︵');
    m.insert("parenright", ')');
    m.insert("parenrightBig", ')');
    m.insert("parenrightBigg", ')');
    m.insert("parenrightaltonearabic", '﴿');
    m.insert("parenrightbig", ')');
    m.insert("parenrightbigg", ')');
    m.insert("parenrightbt", '');
    m.insert("parenrightex", '');
    m.insert("parenrightinferior", '₎');
    m.insert("parenrightmonospace", '）');
    m.insert("parenrightsmall", '﹚');
    m.insert("parenrightsuperior", '⁾');
    m.insert("parenrighttp", '');
    m.insert("parenrightvertical", '︶');
    m.insert("partialdiff", '∂');
    m.insert("paseqhebrew", '׀');
    m.insert("pashtahebrew", '֙');
    m.insert("pasquare", '㎩');
    m.insert("patah", 'ַ');
    m.insert("patah11", 'ַ');
    m.insert("patah1d", 'ַ');
    m.insert("patah2a", 'ַ');
    m.insert("patahhebrew", 'ַ');
    m.insert("patahnarrowhebrew", 'ַ');
    m.insert("patahquarterhebrew", 'ַ');
    m.insert("patahwidehebrew", 'ַ');
    m.insert("pazerhebrew", '֡');
    m.insert("pbopomofo", 'ㄆ');
    m.insert("pcircle", 'ⓟ');
    m.insert("pdotaccent", 'ṗ');
    m.insert("pe", 'פ');
    m.insert("pecyrillic", 'п');
    m.insert("pedagesh", 'פּ');
    m.insert("pedageshhebrew", 'פּ');
    m.insert("peezisquare", '㌻');
    m.insert("pefinaldageshhebrew", 'ףּ');
    m.insert("peharabic", 'پ');
    m.insert("peharmenian", 'պ');
    m.insert("pehebrew", 'פ');
    m.insert("pehfinalarabic", 'ﭗ');
    m.insert("pehinitialarabic", 'ﭘ');
    m.insert("pehiragana", 'ぺ');
    m.insert("pehmedialarabic", 'ﭙ');
    m.insert("pekatakana", 'ペ');
    m.insert("pemiddlehookcyrillic", 'ҧ');
    m.insert("perafehebrew", 'פֿ');
    m.insert("percent", '%');
    m.insert("percentarabic", '٪');
    m.insert("percentmonospace", '％');
    m.insert("percentsmall", '﹪');
    m.insert("period", '.');
    m.insert("periodarmenian", '։');
    m.insert("periodcentered", '·');
    m.insert("periodhalfwidth", '｡');
    m.insert("periodinferior", '');
    m.insert("periodmonospace", '．');
    m.insert("periodsmall", '﹒');
    m.insert("periodsuperior", '');
    m.insert("perispomenigreekcmb", '͂');
    m.insert("perpendicular", '⊥');
    m.insert("perthousand", '‰');
    m.insert("peseta", '₧');
    m.insert("pfsquare", '㎊');
    m.insert("phabengali", 'ফ');
    m.insert("phadeva", 'फ');
    m.insert("phagujarati", 'ફ');
    m.insert("phagurmukhi", 'ਫ');
    m.insert("phi", 'φ');
    m.insert("phi1", 'ϕ');
    m.insert("phieuphacirclekorean", '㉺');
    m.insert("phieuphaparenkorean", '㈚');
    m.insert("phieuphcirclekorean", '㉬');
    m.insert("phieuphkorean", 'ㅍ');
    m.insert("phieuphparenkorean", '㈌');
    m.insert("philatin", 'ɸ');
    m.insert("phinthuthai", 'ฺ');
    m.insert("phisymbolgreek", 'ϕ');
    m.insert("phook", 'ƥ');
    m.insert("phophanthai", 'พ');
    m.insert("phophungthai", 'ผ');
    m.insert("phosamphaothai", 'ภ');
    m.insert("pi", 'π');
    m.insert("pieupacirclekorean", '㉳');
    m.insert("pieupaparenkorean", '㈓');
    m.insert("pieupcieuckorean", 'ㅶ');
    m.insert("pieupcirclekorean", '㉥');
    m.insert("pieupkiyeokkorean", 'ㅲ');
    m.insert("pieupkorean", 'ㅂ');
    m.insert("pieupparenkorean", '㈅');
    m.insert("pieupsioskiyeokkorean", 'ㅴ');
    m.insert("pieupsioskorean", 'ㅄ');
    m.insert("pieupsiostikeutkorean", 'ㅵ');
    m.insert("pieupthieuthkorean", 'ㅷ');
    m.insert("pieuptikeutkorean", 'ㅳ');
    m.insert("pihiragana", 'ぴ');
    m.insert("pikatakana", 'ピ');
    m.insert("pisymbolgreek", 'ϖ');
    m.insert("piwrarmenian", 'փ');
    m.insert("planckover2pi", 'ℏ');
    m.insert("planckover2pi1", 'ℏ');
    m.insert("plus", '+');
    m.insert("plusbelowcmb", '̟');
    m.insert("pluscircle", '⊕');
    m.insert("plusminus", '±');
    m.insert("plusmod", '˖');
    m.insert("plusmonospace", '＋');
    m.insert("plussmall", '﹢');
    m.insert("plussuperior", '⁺');
    m.insert("pmonospace", 'ｐ');
    m.insert("pmsquare", '㏘');
    m.insert("pohiragana", 'ぽ');
    m.insert("pointingindexdownwhite", '☟');
    m.insert("pointingindexleftwhite", '☜');
    m.insert("pointingindexrightwhite", '☞');
    m.insert("pointingindexupwhite", '☝');
    m.insert("pokatakana", 'ポ');
    m.insert("poplathai", 'ป');
    m.insert("postalmark", '〒');
    m.insert("postalmarkface", '〠');
    m.insert("pparen", '⒫');
    m.insert("precedes", '≺');
    m.insert("prescription", '℞');
    m.insert("prime", '′');
    m.insert("primemod", 'ʹ');
    m.insert("primereversed", '‵');
    m.insert("product", '∏');
    m.insert("productdisplay", '∏');
    m.insert("producttext", '∏');
    m.insert("projective", '⌅');
    m.insert("prolongedkana", 'ー');
    m.insert("propellor", '⌘');
    m.insert("propersubset", '⊂');
    m.insert("propersuperset", '⊃');
    m.insert("proportion", '∷');
    m.insert("proportional", '∝');
    m.insert("psi", 'ψ');
    m.insert("psicyrillic", 'ѱ');
    m.insert("psilipneumatacyrilliccmb", '҆');
    m.insert("pssquare", '㎰');
    m.insert("puhiragana", 'ぷ');
    m.insert("pukatakana", 'プ');
    m.insert("pvsquare", '㎴');
    m.insert("pwsquare", '㎺');
    m.insert("q", 'q');
    m.insert("qadeva", 'क़');
    m.insert("qadmahebrew", '֨');
    m.insert("qafarabic", 'ق');
    m.insert("qaffinalarabic", 'ﻖ');
    m.insert("qafinitialarabic", 'ﻗ');
    m.insert("qafmedialarabic", 'ﻘ');
    m.insert("qamats", 'ָ');
    m.insert("qamats10", 'ָ');
    m.insert("qamats1a", 'ָ');
    m.insert("qamats1c", 'ָ');
    m.insert("qamats27", 'ָ');
    m.insert("qamats29", 'ָ');
    m.insert("qamats33", 'ָ');
    m.insert("qamatsde", 'ָ');
    m.insert("qamatshebrew", 'ָ');
    m.insert("qamatsnarrowhebrew", 'ָ');
    m.insert("qamatsqatanhebrew", 'ָ');
    m.insert("qamatsqatannarrowhebrew", 'ָ');
    m.insert("qamatsqatanquarterhebrew", 'ָ');
    m.insert("qamatsqatanwidehebrew", 'ָ');
    m.insert("qamatsquarterhebrew", 'ָ');
    m.insert("qamatswidehebrew", 'ָ');
    m.insert("qarneyparahebrew", '֟');
    m.insert("qbopomofo", 'ㄑ');
    m.insert("qcircle", 'ⓠ');
    m.insert("qhook", 'ʠ');
    m.insert("qmonospace", 'ｑ');
    m.insert("qof", 'ק');
    m.insert("qofdagesh", 'קּ');
    m.insert("qofdageshhebrew", 'קּ');
    m.insert("qofhebrew", 'ק');
    m.insert("qparen", '⒬');
    m.insert("quarternote", '♩');
    m.insert("qubuts", 'ֻ');
    m.insert("qubuts18", 'ֻ');
    m.insert("qubuts25", 'ֻ');
    m.insert("qubuts31", 'ֻ');
    m.insert("qubutshebrew", 'ֻ');
    m.insert("qubutsnarrowhebrew", 'ֻ');
    m.insert("qubutsquarterhebrew", 'ֻ');
    m.insert("qubutswidehebrew", 'ֻ');
    m.insert("question", '?');
    m.insert("questionarabic", '؟');
    m.insert("questionarmenian", '՞');
    m.insert("questiondown", '¿');
    m.insert("questiondownsmall", '');
    m.insert("questiongreek", ';');
    m.insert("questionmonospace", '？');
    m.insert("questionsmall", '');
    m.insert("quotedbl", '"');
    m.insert("quotedblbase", '„');
    m.insert("quotedblleft", '“');
    m.insert("quotedblmonospace", '＂');
    m.insert("quotedblprime", '〞');
    m.insert("quotedblprimereversed", '〝');
    m.insert("quotedblright", '”');
    m.insert("quoteleft", '‘');
    m.insert("quoteleftreversed", '‛');
    m.insert("quotereversed", '‛');
    m.insert("quoteright", '’');
    m.insert("quoterightn", 'ŉ');
    m.insert("quotesinglbase", '‚');
    m.insert("quotesingle", '\'');
    m.insert("quotesinglemonospace", '＇');
    m.insert("r", 'r');
    m.insert("raarmenian", 'ռ');
    m.insert("rabengali", 'র');
    m.insert("racute", 'ŕ');
    m.insert("radeva", 'र');
    m.insert("radical", '√');
    m.insert("radicalBig", '√');
    m.insert("radicalBigg", '√');
    m.insert("radicalbig", '√');
    m.insert("radicalbigg", '√');
    m.insert("radicalbt", '√');
    m.insert("radicalex", '');
    m.insert("radicaltp", '√');
    m.insert("radicalvertex", '√');
    m.insert("radoverssquare", '㎮');
    m.insert("radoverssquaredsquare", '㎯');
    m.insert("radsquare", '㎭');
    m.insert("rafe", 'ֿ');
    m.insert("rafehebrew", 'ֿ');
    m.insert("ragujarati", 'ર');
    m.insert("ragurmukhi", 'ਰ');
    m.insert("rahiragana", 'ら');
    m.insert("rakatakana", 'ラ');
    m.insert("rakatakanahalfwidth", 'ﾗ');
    m.insert("ralowerdiagonalbengali", 'ৱ');
    m.insert("ramiddlediagonalbengali", 'ৰ');
    m.insert("ramshorn", 'ɤ');
    m.insert("ratio", '∶');
    m.insert("rbopomofo", 'ㄖ');
    m.insert("rcaron", 'ř');
    m.insert("rcedilla", 'ŗ');
    m.insert("rcircle", 'ⓡ');
    m.insert("rcommaaccent", 'ŗ');
    m.insert("rdblgrave", 'ȑ');
    m.insert("rdotaccent", 'ṙ');
    m.insert("rdotbelow", 'ṛ');
    m.insert("rdotbelowmacron", 'ṝ');
    m.insert("referencemark", '※');
    m.insert("reflexsubset", '⊆');
    m.insert("reflexsuperset", '⊇');
    m.insert("registered", '®');
    m.insert("registersans", '');
    m.insert("registerserif", '');
    m.insert("reharabic", 'ر');
    m.insert("reharmenian", 'ր');
    m.insert("rehfinalarabic", 'ﺮ');
    m.insert("rehiragana", 'れ');
    m.insert("rekatakana", 'レ');
    m.insert("rekatakanahalfwidth", 'ﾚ');
    m.insert("resh", 'ר');
    m.insert("reshdageshhebrew", 'רּ');
    m.insert("reshhebrew", 'ר');
    m.insert("reversedtilde", '∽');
    m.insert("reviahebrew", '֗');
    m.insert("reviamugrashhebrew", '֗');
    m.insert("revlogicalnot", '⌐');
    m.insert("rfishhook", 'ɾ');
    m.insert("rfishhookreversed", 'ɿ');
    m.insert("rhabengali", 'ঢ়');
    m.insert("rhadeva", 'ढ़');
    m.insert("rho", 'ρ');
    m.insert("rhook", 'ɽ');
    m.insert("rhookturned", 'ɻ');
    m.insert("rhookturnedsuperior", 'ʵ');
    m.insert("rhosymbolgreek", 'ϱ');
    m.insert("rhotichookmod", '˞');
    m.insert("rieulacirclekorean", '㉱');
    m.insert("rieulaparenkorean", '㈑');
    m.insert("rieulcirclekorean", '㉣');
    m.insert("rieulhieuhkorean", 'ㅀ');
    m.insert("rieulkiyeokkorean", 'ㄺ');
    m.insert("rieulkiyeoksioskorean", 'ㅩ');
    m.insert("rieulkorean", 'ㄹ');
    m.insert("rieulmieumkorean", 'ㄻ');
    m.insert("rieulpansioskorean", 'ㅬ');
    m.insert("rieulparenkorean", '㈃');
    m.insert("rieulphieuphkorean", 'ㄿ');
    m.insert("rieulpieupkorean", 'ㄼ');
    m.insert("rieulpieupsioskorean", 'ㅫ');
    m.insert("rieulsioskorean", 'ㄽ');
    m.insert("rieulthieuthkorean", 'ㄾ');
    m.insert("rieultikeutkorean", 'ㅪ');
    m.insert("rieulyeorinhieuhkorean", 'ㅭ');
    m.insert("rightangle", '∟');
    m.insert("righttackbelowcmb", '̙');
    m.insert("righttriangle", '⊿');
    m.insert("rihiragana", 'り');
    m.insert("rikatakana", 'リ');
    m.insert("rikatakanahalfwidth", 'ﾘ');
    m.insert("ring", '˚');
    m.insert("ringbelowcmb", '̥');
    m.insert("ringcmb", '̊');
    m.insert("ringhalfleft", 'ʿ');
    m.insert("ringhalfleftarmenian", 'ՙ');
    m.insert("ringhalfleftbelowcmb", '̜');
    m.insert("ringhalfleftcentered", '˓');
    m.insert("ringhalfright", 'ʾ');
    m.insert("ringhalfrightbelowcmb", '̹');
    m.insert("ringhalfrightcentered", '˒');
    m.insert("rinvertedbreve", 'ȓ');
    m.insert("rittorusquare", '㍑');
    m.insert("rlinebelow", 'ṟ');
    m.insert("rlongleg", 'ɼ');
    m.insert("rlonglegturned", 'ɺ');
    m.insert("rmonospace", 'ｒ');
    m.insert("rohiragana", 'ろ');
    m.insert("rokatakana", 'ロ');
    m.insert("rokatakanahalfwidth", 'ﾛ');
    m.insert("roruathai", 'ร');
    m.insert("rparen", '⒭');
    m.insert("rrabengali", 'ড়');
    m.insert("rradeva", 'ऱ');
    m.insert("rragurmukhi", 'ੜ');
    m.insert("rreharabic", 'ڑ');
    m.insert("rrehfinalarabic", 'ﮍ');
    m.insert("rrvocalicbengali", 'ৠ');
    m.insert("rrvocalicdeva", 'ॠ');
    m.insert("rrvocalicgujarati", 'ૠ');
    m.insert("rrvocalicvowelsignbengali", 'ৄ');
    m.insert("rrvocalicvowelsigndeva", 'ॄ');
    m.insert("rrvocalicvowelsigngujarati", 'ૄ');
    m.insert("rsuperior", '');
    m.insert("rtblock", '▐');
    m.insert("rturned", 'ɹ');
    m.insert("rturnedsuperior", 'ʴ');
    m.insert("ruhiragana", 'る');
    m.insert("rukatakana", 'ル');
    m.insert("rukatakanahalfwidth", 'ﾙ');
    m.insert("rupeemarkbengali", '৲');
    m.insert("rupeesignbengali", '৳');
    m.insert("rupiah", '');
    m.insert("ruthai", 'ฤ');
    m.insert("rvocalicbengali", 'ঋ');
    m.insert("rvocalicdeva", 'ऋ');
    m.insert("rvocalicgujarati", 'ઋ');
    m.insert("rvocalicvowelsignbengali", 'ৃ');
    m.insert("rvocalicvowelsigndeva", 'ृ');
    m.insert("rvocalicvowelsigngujarati", 'ૃ');
    m.insert("s", 's');
    m.insert("sabengali", 'স');
    m.insert("sacute", 'ś');
    m.insert("sacutedotaccent", 'ṥ');
    m.insert("sadarabic", 'ص');
    m.insert("sadeva", 'स');
    m.insert("sadfinalarabic", 'ﺺ');
    m.insert("sadinitialarabic", 'ﺻ');
    m.insert("sadmedialarabic", 'ﺼ');
    m.insert("sagujarati", 'સ');
    m.insert("sagurmukhi", 'ਸ');
    m.insert("sahiragana", 'さ');
    m.insert("sakatakana", 'サ');
    m.insert("sakatakanahalfwidth", 'ｻ');
    m.insert("sallallahoualayhewasallamarabic", 'ﷺ');
    m.insert("samekh", 'ס');
    m.insert("samekhdagesh", 'סּ');
    m.insert("samekhdageshhebrew", 'סּ');
    m.insert("samekhhebrew", 'ס');
    m.insert("saraaathai", 'า');
    m.insert("saraaethai", 'แ');
    m.insert("saraaimaimalaithai", 'ไ');
    m.insert("saraaimaimuanthai", 'ใ');
    m.insert("saraamthai", 'ำ');
    m.insert("saraathai", 'ะ');
    m.insert("saraethai", 'เ');
    m.insert("saraiileftthai", '');
    m.insert("saraiithai", 'ี');
    m.insert("saraileftthai", '');
    m.insert("saraithai", 'ิ');
    m.insert("saraothai", 'โ');
    m.insert("saraueeleftthai", '');
    m.insert("saraueethai", 'ื');
    m.insert("saraueleftthai", '');
    m.insert("sarauethai", 'ึ');
    m.insert("sarauthai", 'ุ');
    m.insert("sarauuthai", 'ู');
    m.insert("sbopomofo", 'ㄙ');
    m.insert("scaron", 'š');
    m.insert("scarondotaccent", 'ṧ');
    m.insert("scedilla", 'ş');
    m.insert("schwa", 'ə');
    m.insert("schwacyrillic", 'ә');
    m.insert("schwadieresiscyrillic", 'ӛ');
    m.insert("schwahook", 'ɚ');
    m.insert("scircle", 'ⓢ');
    m.insert("scircumflex", 'ŝ');
    m.insert("scommaaccent", 'ș');
    m.insert("sdotaccent", 'ṡ');
    m.insert("sdotbelow", 'ṣ');
    m.insert("sdotbelowdotaccent", 'ṩ');
    m.insert("seagullbelowcmb", '̼');
    m.insert("second", '″');
    m.insert("secondtonechinese", 'ˊ');
    m.insert("section", '§');
    m.insert("seenarabic", 'س');
    m.insert("seenfinalarabic", 'ﺲ');
    m.insert("seeninitialarabic", 'ﺳ');
    m.insert("seenmedialarabic", 'ﺴ');
    m.insert("segol", 'ֶ');
    m.insert("segol13", 'ֶ');
    m.insert("segol1f", 'ֶ');
    m.insert("segol2c", 'ֶ');
    m.insert("segolhebrew", 'ֶ');
    m.insert("segolnarrowhebrew", 'ֶ');
    m.insert("segolquarterhebrew", 'ֶ');
    m.insert("segoltahebrew", '֒');
    m.insert("segolwidehebrew", 'ֶ');
    m.insert("seharmenian", 'ս');
    m.insert("sehiragana", 'せ');
    m.insert("sekatakana", 'セ');
    m.insert("sekatakanahalfwidth", 'ｾ');
    m.insert("semicolon", ';');
    m.insert("semicolonarabic", '؛');
    m.insert("semicolonmonospace", '；');
    m.insert("semicolonsmall", '﹔');
    m.insert("semivoicedmarkkana", '゜');
    m.insert("semivoicedmarkkanahalfwidth", 'ﾟ');
    m.insert("sentisquare", '㌢');
    m.insert("sentosquare", '㌣');
    m.insert("seven", '7');
    m.insert("sevenarabic", '٧');
    m.insert("sevenbengali", '৭');
    m.insert("sevencircle", '⑦');
    m.insert("sevencircleinversesansserif", '➐');
    m.insert("sevendeva", '७');
    m.insert("seveneighths", '⅞');
    m.insert("sevengujarati", '૭');
    m.insert("sevengurmukhi", '੭');
    m.insert("sevenhackarabic", '٧');
    m.insert("sevenhangzhou", '〧');
    m.insert("sevenideographicparen", '㈦');
    m.insert("seveninferior", '₇');
    m.insert("sevenmonospace", '７');
    m.insert("sevenoldstyle", '');
    m.insert("sevenparen", '⑺');
    m.insert("sevenperiod", '⒎');
    m.insert("sevenpersian", '۷');
    m.insert("sevenroman", 'ⅶ');
    m.insert("sevensuperior", '⁷');
    m.insert("seventeencircle", '⑰');
    m.insert("seventeenparen", '⒄');
    m.insert("seventeenperiod", '⒘');
    m.insert("seventhai", '๗');
    m.insert("sfthyphen", '\u{00AD}');
    m.insert("shaarmenian", 'շ');
    m.insert("shabengali", 'শ');
    m.insert("shacyrillic", 'ш');
    m.insert("shaddaarabic", 'ّ');
    m.insert("shaddadammaarabic", 'ﱡ');
    m.insert("shaddadammatanarabic", 'ﱞ');
    m.insert("shaddafathaarabic", 'ﱠ');
    m.insert("shaddakasraarabic", 'ﱢ');
    m.insert("shaddakasratanarabic", 'ﱟ');
    m.insert("shade", '▒');
    m.insert("shadedark", '▓');
    m.insert("shadelight", '░');
    m.insert("shademedium", '▒');
    m.insert("shadeva", 'श');
    m.insert("shagujarati", 'શ');
    m.insert("shagurmukhi", 'ਸ਼');
    m.insert("shalshelethebrew", '֓');
    m.insert("shbopomofo", 'ㄕ');
    m.insert("shchacyrillic", 'щ');
    m.insert("sheenarabic", 'ش');
    m.insert("sheenfinalarabic", 'ﺶ');
    m.insert("sheeninitialarabic", 'ﺷ');
    m.insert("sheenmedialarabic", 'ﺸ');
    m.insert("sheicoptic", 'ϣ');
    m.insert("sheqel", '₪');
    m.insert("sheqelhebrew", '₪');
    m.insert("sheva", 'ְ');
    m.insert("sheva115", 'ְ');
    m.insert("sheva15", 'ְ');
    m.insert("sheva22", 'ְ');
    m.insert("sheva2e", 'ְ');
    m.insert("shevahebrew", 'ְ');
    m.insert("shevanarrowhebrew", 'ְ');
    m.insert("shevaquarterhebrew", 'ְ');
    m.insert("shevawidehebrew", 'ְ');
    m.insert("shhacyrillic", 'һ');
    m.insert("shimacoptic", 'ϭ');
    m.insert("shin", 'ש');
    m.insert("shindagesh", 'שּ');
    m.insert("shindageshhebrew", 'שּ');
    m.insert("shindageshshindot", 'שּׁ');
    m.insert("shindageshshindothebrew", 'שּׁ');
    m.insert("shindageshsindot", 'שּׂ');
    m.insert("shindageshsindothebrew", 'שּׂ');
    m.insert("shindothebrew", 'ׁ');
    m.insert("shinhebrew", 'ש');
    m.insert("shinshindot", 'שׁ');
    m.insert("shinshindothebrew", 'שׁ');
    m.insert("shinsindot", 'שׂ');
    m.insert("shinsindothebrew", 'שׂ');
    m.insert("shook", 'ʂ');
    m.insert("sigma", 'σ');
    m.insert("sigma1", 'ς');
    m.insert("sigmafinal", 'ς');
    m.insert("sigmalunatesymbolgreek", 'ϲ');
    m.insert("sihiragana", 'し');
    m.insert("sikatakana", 'シ');
    m.insert("sikatakanahalfwidth", 'ｼ');
    m.insert("siluqhebrew", 'ֽ');
    m.insert("siluqlefthebrew", 'ֽ');
    m.insert("similar", '∼');
    m.insert("sindothebrew", 'ׂ');
    m.insert("siosacirclekorean", '㉴');
    m.insert("siosaparenkorean", '㈔');
    m.insert("sioscieuckorean", 'ㅾ');
    m.insert("sioscirclekorean", '㉦');
    m.insert("sioskiyeokkorean", 'ㅺ');
    m.insert("sioskorean", 'ㅅ');
    m.insert("siosnieunkorean", 'ㅻ');
    m.insert("siosparenkorean", '㈆');
    m.insert("siospieupkorean", 'ㅽ');
    m.insert("siostikeutkorean", 'ㅼ');
    m.insert("six", '6');
    m.insert("sixarabic", '٦');
    m.insert("sixbengali", '৬');
    m.insert("sixcircle", '⑥');
    m.insert("sixcircleinversesansserif", '➏');
    m.insert("sixdeva", '६');
    m.insert("sixgujarati", '૬');
    m.insert("sixgurmukhi", '੬');
    m.insert("sixhackarabic", '٦');
    m.insert("sixhangzhou", '〦');
    m.insert("sixideographicparen", '㈥');
    m.insert("sixinferior", '₆');
    m.insert("sixmonospace", '６');
    m.insert("sixoldstyle", '');
    m.insert("sixparen", '⑹');
    m.insert("sixperiod", '⒍');
    m.insert("sixpersian", '۶');
    m.insert("sixroman", 'ⅵ');
    m.insert("sixsuperior", '⁶');
    m.insert("sixteencircle", '⑯');
    m.insert("sixteencurrencydenominatorbengali", '৹');
    m.insert("sixteenparen", '⒃');
    m.insert("sixteenperiod", '⒗');
    m.insert("sixthai", '๖');
    m.insert("slash", '/');
    m.insert("slashBig", '/');
    m.insert("slashBigg", '/');
    m.insert("slashbig", '/');
    m.insert("slashbigg", '/');
    m.insert("slashmonospace", '／');
    m.insert("slong", 'ſ');
    m.insert("slongdotaccent", 'ẛ');
    m.insert("smileface", '☺');
    m.insert("smonospace", 'ｓ');
    m.insert("sofpasuqhebrew", '׃');
    m.insert("softhyphen", '\u{00AD}');
    m.insert("softsigncyrillic", 'ь');
    m.insert("sohiragana", 'そ');
    m.insert("sokatakana", 'ソ');
    m.insert("sokatakanahalfwidth", 'ｿ');
    m.insert("soliduslongoverlaycmb", '̸');
    m.insert("solidusshortoverlaycmb", '̷');
    m.insert("sorusithai", 'ษ');
    m.insert("sosalathai", 'ศ');
    m.insert("sosothai", 'ซ');
    m.insert("sosuathai", 'ส');
    m.insert("space", ' ');
    m.insert("spacehackarabic", ' ');
    m.insert("spade", '♠');
    m.insert("spadesuitblack", '♠');
    m.insert("spadesuitwhite", '♤');
    m.insert("sparen", '⒮');
    m.insert("squarebelowcmb", '̻');
    m.insert("squarecc", '㏄');
    m.insert("squarecm", '㎝');
    m.insert("squarediagonalcrosshatchfill", '▩');
    m.insert("squarehorizontalfill", '▤');
    m.insert("squarekg", '㎏');
    m.insert("squarekm", '㎞');
    m.insert("squarekmcapital", '㏎');
    m.insert("squareln", '㏑');
    m.insert("squarelog", '㏒');
    m.insert("squaremg", '㎎');
    m.insert("squaremil", '㏕');
    m.insert("squaremm", '㎜');
    m.insert("squaremsquared", '㎡');
    m.insert("squareorthogonalcrosshatchfill", '▦');
    m.insert("squareupperlefttolowerrightfill", '▧');
    m.insert("squareupperrighttolowerleftfill", '▨');
    m.insert("squareverticalfill", '▥');
    m.insert("squarewhitewithsmallblack", '▣');
    m.insert("srsquare", '㏛');
    m.insert("ssabengali", 'ষ');
    m.insert("ssadeva", 'ष');
    m.insert("ssagujarati", 'ષ');
    m.insert("ssangcieuckorean", 'ㅉ');
    m.insert("ssanghieuhkorean", 'ㆅ');
    m.insert("ssangieungkorean", 'ㆀ');
    m.insert("ssangkiyeokkorean", 'ㄲ');
    m.insert("ssangnieunkorean", 'ㅥ');
    m.insert("ssangpieupkorean", 'ㅃ');
    m.insert("ssangsioskorean", 'ㅆ');
    m.insert("ssangtikeutkorean", 'ㄸ');
    m.insert("ssuperior", '');
    m.insert("sterling", '£');
    m.insert("sterlingmonospace", '￡');
    m.insert("strokelongoverlaycmb", '̶');
    m.insert("strokeshortoverlaycmb", '̵');
    m.insert("subset", '⊂');
    m.insert("subsetnotequal", '⊊');
    m.insert("subsetorequal", '⊆');
    m.insert("succeeds", '≻');
    m.insert("suchthat", '∋');
    m.insert("suhiragana", 'す');
    m.insert("sukatakana", 'ス');
    m.insert("sukatakanahalfwidth", 'ｽ');
    m.insert("sukunarabic", 'ْ');
    m.insert("summation", '∑');
    m.insert("summationdisplay", '∑');
    m.insert("summationtext", '∑');
    m.insert("sun", '☼');
    m.insert("superset", '⊃');
    m.insert("supersetnotequal", '⊋');
    m.insert("supersetorequal", '⊇');
    m.insert("svsquare", '㏜');
    m.insert("syouwaerasquare", '㍼');
    m.insert("t", 't');
    m.insert("tabengali", 'ত');
    m.insert("tackdown", '⊤');
    m.insert("tackleft", '⊣');
    m.insert("tadeva", 'त');
    m.insert("tagujarati", 'ત');
    m.insert("tagurmukhi", 'ਤ');
    m.insert("taharabic", 'ط');
    m.insert("tahfinalarabic", 'ﻂ');
    m.insert("tahinitialarabic", 'ﻃ');
    m.insert("tahiragana", 'た');
    m.insert("tahmedialarabic", 'ﻄ');
    m.insert("taisyouerasquare", '㍽');
    m.insert("takatakana", 'タ');
    m.insert("takatakanahalfwidth", 'ﾀ');
    m.insert("tatweelarabic", 'ـ');
    m.insert("tau", 'τ');
    m.insert("tav", 'ת');
    m.insert("tavdages", 'תּ');
    m.insert("tavdagesh", 'תּ');
    m.insert("tavdageshhebrew", 'תּ');
    m.insert("tavhebrew", 'ת');
    m.insert("tbar", 'ŧ');
    m.insert("tbopomofo", 'ㄊ');
    m.insert("tcaron", 'ť');
    m.insert("tccurl", 'ʨ');
    m.insert("tcedilla", 'ţ');
    m.insert("tcheharabic", 'چ');
    m.insert("tchehfinalarabic", 'ﭻ');
    m.insert("tchehinitialarabic", 'ﭼ');
    m.insert("tchehmedialarabic", 'ﭽ');
    m.insert("tcircle", 'ⓣ');
    m.insert("tcircumflexbelow", 'ṱ');
    m.insert("tcommaaccent", 'ţ');
    m.insert("tdieresis", 'ẗ');
    m.insert("tdotaccent", 'ṫ');
    m.insert("tdotbelow", 'ṭ');
    m.insert("tecyrillic", 'т');
    m.insert("tedescendercyrillic", 'ҭ');
    m.insert("teharabic", 'ت');
    m.insert("tehfinalarabic", 'ﺖ');
    m.insert("tehhahinitialarabic", 'ﲢ');
    m.insert("tehhahisolatedarabic", 'ﰌ');
    m.insert("tehinitialarabic", 'ﺗ');
    m.insert("tehiragana", 'て');
    m.insert("tehjeeminitialarabic", 'ﲡ');
    m.insert("tehjeemisolatedarabic", 'ﰋ');
    m.insert("tehmarbutaarabic", 'ة');
    m.insert("tehmarbutafinalarabic", 'ﺔ');
    m.insert("tehmedialarabic", 'ﺘ');
    m.insert("tehmeeminitialarabic", 'ﲤ');
    m.insert("tehmeemisolatedarabic", 'ﰎ');
    m.insert("tehnoonfinalarabic", 'ﱳ');
    m.insert("tekatakana", 'テ');
    m.insert("tekatakanahalfwidth", 'ﾃ');
    m.insert("telephone", '℡');
    m.insert("telephoneblack", '☎');
    m.insert("telishagedolahebrew", '֠');
    m.insert("telishaqetanahebrew", '֩');
    m.insert("tencircle", '⑩');
    m.insert("tenideographicparen", '㈩');
    m.insert("tenparen", '⑽');
    m.insert("tenperiod", '⒑');
    m.insert("tenroman", 'ⅹ');
    m.insert("tesh", 'ʧ');
    m.insert("tet", 'ט');
    m.insert("tetdagesh", 'טּ');
    m.insert("tetdageshhebrew", 'טּ');
    m.insert("tethebrew", 'ט');
    m.insert("tetsecyrillic", 'ҵ');
    m.insert("tevirhebrew", '֛');
    m.insert("tevirlefthebrew", '֛');
    m.insert("thabengali", 'থ');
    m.insert("thadeva", 'थ');
    m.insert("thagujarati", 'થ');
    m.insert("thagurmukhi", 'ਥ');
    m.insert("thalarabic", 'ذ');
    m.insert("thalfinalarabic", 'ﺬ');
    m.insert("thanthakhatlowleftthai", '');
    m.insert("thanthakhatlowrightthai", '');
    m.insert("thanthakhatthai", '์');
    m.insert("thanthakhatupperleftthai", '');
    m.insert("theharabic", 'ث');
    m.insert("thehfinalarabic", 'ﺚ');
    m.insert("thehinitialarabic", 'ﺛ');
    m.insert("thehmedialarabic", 'ﺜ');
    m.insert("thereexists", '∃');
    m.insert("therefore", '∴');
    m.insert("theta", 'θ');
    m.insert("theta1", 'ϑ');
    m.insert("thetasymbolgreek", 'ϑ');
    m.insert("thieuthacirclekorean", '㉹');
    m.insert("thieuthaparenkorean", '㈙');
    m.insert("thieuthcirclekorean", '㉫');
    m.insert("thieuthkorean", 'ㅌ');
    m.insert("thieuthparenkorean", '㈋');
    m.insert("thirteencircle", '⑬');
    m.insert("thirteenparen", '⒀');
    m.insert("thirteenperiod", '⒔');
    m.insert("thonangmonthothai", 'ฑ');
    m.insert("thook", 'ƭ');
    m.insert("thophuthaothai", 'ฒ');
    m.insert("thorn", 'þ');
    m.insert("thothahanthai", 'ท');
    m.insert("thothanthai", 'ฐ');
    m.insert("thothongthai", 'ธ');
    m.insert("thothungthai", 'ถ');
    m.insert("thousandcyrillic", '҂');
    m.insert("thousandsseparatorarabic", '٬');
    m.insert("thousandsseparatorpersian", '٬');
    m.insert("three", '3');
    m.insert("threearabic", '٣');
    m.insert("threebengali", '৩');
    m.insert("threecircle", '③');
    m.insert("threecircleinversesansserif", '➌');
    m.insert("threedeva", '३');
    m.insert("threeeighths", '⅜');
    m.insert("threegujarati", '૩');
    m.insert("threegurmukhi", '੩');
    m.insert("threehackarabic", '٣');
    m.insert("threehangzhou", '〣');
    m.insert("threeideographicparen", '㈢');
    m.insert("threeinferior", '₃');
    m.insert("threemonospace", '３');
    m.insert("threenumeratorbengali", '৶');
    m.insert("threeoldstyle", '');
    m.insert("threeparen", '⑶');
    m.insert("threeperiod", '⒊');
    m.insert("threepersian", '۳');
    m.insert("threequarters", '¾');
    m.insert("threequartersemdash", '');
    m.insert("threeroman", 'ⅲ');
    m.insert("threesuperior", '³');
    m.insert("threethai", '๓');
    m.insert("thzsquare", '㎔');
    m.insert("tihiragana", 'ち');
    m.insert("tikatakana", 'チ');
    m.insert("tikatakanahalfwidth", 'ﾁ');
    m.insert("tikeutacirclekorean", '㉰');
    m.insert("tikeutaparenkorean", '㈐');
    m.insert("tikeutcirclekorean", '㉢');
    m.insert("tikeutkorean", 'ㄷ');
    m.insert("tikeutparenkorean", '㈂');
    m.insert("tilde", '˜');
    m.insert("tildebelowcmb", '̰');
    m.insert("tildecmb", '̃');
    m.insert("tildecomb", '̃');
    m.insert("tildedoublecmb", '͠');
    m.insert("tildeoperator", '∼');
    m.insert("tildeoverlaycmb", '̴');
    m.insert("tildeverticalcmb", '̾');
    m.insert("tildewide", '˜');
    m.insert("tildewider", '˜');
    m.insert("tildewidest", '˜');
    m.insert("timescircle", '⊗');
    m.insert("tipehahebrew", '֖');
    m.insert("tipehalefthebrew", '֖');
    m.insert("tippigurmukhi", 'ੰ');
    m.insert("titlocyrilliccmb", '҃');
    m.insert("tiwnarmenian", 'տ');
    m.insert("tlinebelow", 'ṯ');
    m.insert("tmonospace", 'ｔ');
    m.insert("toarmenian", 'թ');
    m.insert("tohiragana", 'と');
    m.insert("tokatakana", 'ト');
    m.insert("tokatakanahalfwidth", 'ﾄ');
    m.insert("tonebarextrahighmod", '˥');
    m.insert("tonebarextralowmod", '˩');
    m.insert("tonebarhighmod", '˦');
    m.insert("tonebarlowmod", '˨');
    m.insert("tonebarmidmod", '˧');
    m.insert("tonefive", 'ƽ');
    m.insert("tonesix", 'ƅ');
    m.insert("tonetwo", 'ƨ');
    m.insert("tonos", '΄');
    m.insert("tonsquare", '㌧');
    m.insert("topatakthai", 'ฏ');
    m.insert("tortoiseshellbracketleft", '〔');
    m.insert("tortoiseshellbracketleftsmall", '﹝');
    m.insert("tortoiseshellbracketleftvertical", '︹');
    m.insert("tortoiseshellbracketright", '〕');
    m.insert("tortoiseshellbracketrightsmall", '﹞');
    m.insert("tortoiseshellbracketrightvertical", '︺');
    m.insert("totaothai", 'ต');
    m.insert("tpalatalhook", 'ƫ');
    m.insert("tparen", '⒯');
    m.insert("trademark", '™');
    m.insert("trademarksans", '');
    m.insert("trademarkserif", '');
    m.insert("tretroflexhook", 'ʈ');
    m.insert("triagdn", '▼');
    m.insert("triaglf", '◄');
    m.insert("triagrt", '►');
    m.insert("triagup", '▲');
    m.insert("ts", 'ʦ');
    m.insert("tsadi", 'צ');
    m.insert("tsadidagesh", 'צּ');
    m.insert("tsadidageshhebrew", 'צּ');
    m.insert("tsadihebrew", 'צ');
    m.insert("tsecyrillic", 'ц');
    m.insert("tsere", 'ֵ');
    m.insert("tsere12", 'ֵ');
    m.insert("tsere1e", 'ֵ');
    m.insert("tsere2b", 'ֵ');
    m.insert("tserehebrew", 'ֵ');
    m.insert("tserenarrowhebrew", 'ֵ');
    m.insert("tserequarterhebrew", 'ֵ');
    m.insert("tserewidehebrew", 'ֵ');
    m.insert("tshecyrillic", 'ћ');
    m.insert("tsuperior", '');
    m.insert("ttabengali", 'ট');
    m.insert("ttadeva", 'ट');
    m.insert("ttagujarati", 'ટ');
    m.insert("ttagurmukhi", 'ਟ');
    m.insert("tteharabic", 'ٹ');
    m.insert("ttehfinalarabic", 'ﭧ');
    m.insert("ttehinitialarabic", 'ﭨ');
    m.insert("ttehmedialarabic", 'ﭩ');
    m.insert("tthabengali", 'ঠ');
    m.insert("tthadeva", 'ठ');
    m.insert("tthagujarati", 'ઠ');
    m.insert("tthagurmukhi", 'ਠ');
    m.insert("tturned", 'ʇ');
    m.insert("tuhiragana", 'つ');
    m.insert("tukatakana", 'ツ');
    m.insert("tukatakanahalfwidth", 'ﾂ');
    m.insert("tusmallhiragana", 'っ');
    m.insert("tusmallkatakana", 'ッ');
    m.insert("tusmallkatakanahalfwidth", 'ｯ');
    m.insert("twelvecircle", '⑫');
    m.insert("twelveparen", '⑿');
    m.insert("twelveperiod", '⒓');
    m.insert("twelveroman", 'ⅻ');
    m.insert("twentycircle", '⑳');
    m.insert("twentyhangzhou", '卄');
    m.insert("twentyparen", '⒇');
    m.insert("twentyperiod", '⒛');
    m.insert("two", '2');
    m.insert("twoarabic", '٢');
    m.insert("twobengali", '২');
    m.insert("twocircle", '②');
    m.insert("twocircleinversesansserif", '➋');
    m.insert("twodeva", '२');
    m.insert("twodotenleader", '‥');
    m.insert("twodotleader", '‥');
    m.insert("twodotleadervertical", '︰');
    m.insert("twogujarati", '૨');
    m.insert("twogurmukhi", '੨');
    m.insert("twohackarabic", '٢');
    m.insert("twohangzhou", '〢');
    m.insert("twoideographicparen", '㈡');
    m.insert("twoinferior", '₂');
    m.insert("twomonospace", '２');
    m.insert("twonumeratorbengali", '৵');
    m.insert("twooldstyle", '');
    m.insert("twoparen", '⑵');
    m.insert("twoperiod", '⒉');
    m.insert("twopersian", '۲');
    m.insert("tworoman", 'ⅱ');
    m.insert("twostroke", 'ƻ');
    m.insert("twosuperior", '²');
    m.insert("twothai", '๒');
    m.insert("twothirds", '⅔');
    m.insert("u", 'u');
    m.insert("uacute", 'ú');
    m.insert("ubar", 'ʉ');
    m.insert("ubengali", 'উ');
    m.insert("ubopomofo", 'ㄨ');
    m.insert("ubreve", 'ŭ');
    m.insert("ucaron", 'ǔ');
    m.insert("ucircle", 'ⓤ');
    m.insert("ucircumflex", 'û');
    m.insert("ucircumflexbelow", 'ṷ');
    m.insert("ucyrillic", 'у');
    m.insert("udattadeva", '॑');
    m.insert("udblacute", 'ű');
    m.insert("udblgrave", 'ȕ');
    m.insert("udeva", 'उ');
    m.insert("udieresis", 'ü');
    m.insert("udieresisacute", 'ǘ');
    m.insert("udieresisbelow", 'ṳ');
    m.insert("udieresiscaron", 'ǚ');
    m.insert("udieresiscyrillic", 'ӱ');
    m.insert("udieresisgrave", 'ǜ');
    m.insert("udieresismacron", 'ǖ');
    m.insert("udotbelow", 'ụ');
    m.insert("ugrave", 'ù');
    m.insert("ugujarati", 'ઉ');
    m.insert("ugurmukhi", 'ਉ');
    m.insert("uhiragana", 'う');
    m.insert("uhookabove", 'ủ');
    m.insert("uhorn", 'ư');
    m.insert("uhornacute", 'ứ');
    m.insert("uhorndotbelow", 'ự');
    m.insert("uhorngrave", 'ừ');
    m.insert("uhornhookabove", 'ử');
    m.insert("uhorntilde", 'ữ');
    m.insert("uhungarumlaut", 'ű');
    m.insert("uhungarumlautcyrillic", 'ӳ');
    m.insert("uinvertedbreve", 'ȗ');
    m.insert("ukatakana", 'ウ');
    m.insert("ukatakanahalfwidth", 'ｳ');
    m.insert("ukcyrillic", 'ѹ');
    m.insert("ukorean", 'ㅜ');
    m.insert("umacron", 'ū');
    m.insert("umacroncyrillic", 'ӯ');
    m.insert("umacrondieresis", 'ṻ');
    m.insert("umatragurmukhi", 'ੁ');
    m.insert("umonospace", 'ｕ');
    m.insert("underscore", '_');
    m.insert("underscoredbl", '‗');
    m.insert("underscoremonospace", '＿');
    m.insert("underscorevertical", '︳');
    m.insert("underscorewavy", '﹏');
    m.insert("union", '∪');
    m.insert("uniondisplay", '⋃');
    m.insert("unionmultidisplay", '⊎');
    m.insert("unionmultitext", '⊎');
    m.insert("unionsqdisplay", '⊔');
    m.insert("unionsqtext", '⊔');
    m.insert("uniontext", '⋃');
    m.insert("universal", '∀');
    m.insert("uogonek", 'ų');
    m.insert("uparen", '⒰');
    m.insert("upblock", '▀');
    m.insert("upperdothebrew", 'ׄ');
    m.insert("upsilon", 'υ');
    m.insert("upsilondieresis", 'ϋ');
    m.insert("upsilondieresistonos", 'ΰ');
    m.insert("upsilonlatin", 'ʊ');
    m.insert("upsilontonos", 'ύ');
    m.insert("uptackbelowcmb", '̝');
    m.insert("uptackmod", '˔');
    m.insert("uragurmukhi", 'ੳ');
    m.insert("uring", 'ů');
    m.insert("ushortcyrillic", 'ў');
    m.insert("usmallhiragana", 'ぅ');
    m.insert("usmallkatakana", 'ゥ');
    m.insert("usmallkatakanahalfwidth", 'ｩ');
    m.insert("ustraightcyrillic", 'ү');
    m.insert("ustraightstrokecyrillic", 'ұ');
    m.insert("utilde", 'ũ');
    m.insert("utildeacute", 'ṹ');
    m.insert("utildebelow", 'ṵ');
    m.insert("uubengali", 'ঊ');
    m.insert("uudeva", 'ऊ');
    m.insert("uugujarati", 'ઊ');
    m.insert("uugurmukhi", 'ਊ');
    m.insert("uumatragurmukhi", 'ੂ');
    m.insert("uuvowelsignbengali", 'ূ');
    m.insert("uuvowelsigndeva", 'ू');
    m.insert("uuvowelsigngujarati", 'ૂ');
    m.insert("uvowelsignbengali", 'ু');
    m.insert("uvowelsigndeva", 'ु');
    m.insert("uvowelsigngujarati", 'ુ');
    m.insert("v", 'v');
    m.insert("vadeva", 'व');
    m.insert("vagujarati", 'વ');
    m.insert("vagurmukhi", 'ਵ');
    m.insert("vakatakana", 'ヷ');
    m.insert("vav", 'ו');
    m.insert("vavdagesh", 'וּ');
    m.insert("vavdagesh65", 'וּ');
    m.insert("vavdageshhebrew", 'וּ');
    m.insert("vavhebrew", 'ו');
    m.insert("vavholam", 'וֹ');
    m.insert("vavholamhebrew", 'וֹ');
    m.insert("vavvavhebrew", 'װ');
    m.insert("vavyodhebrew", 'ױ');
    m.insert("vcircle", 'ⓥ');
    m.insert("vdotbelow", 'ṿ');
    m.insert("vecyrillic", 'в');
    m.insert("veharabic", 'ڤ');
    m.insert("vehfinalarabic", 'ﭫ');
    m.insert("vehinitialarabic", 'ﭬ');
    m.insert("vehmedialarabic", 'ﭭ');
    m.insert("vekatakana", 'ヹ');
    m.insert("venus", '♀');
    m.insert("verticalbar", '|');
    m.insert("verticallineabovecmb", '̍');
    m.insert("verticallinebelowcmb", '̩');
    m.insert("verticallinelowmod", 'ˌ');
    m.insert("verticallinemod", 'ˈ');
    m.insert("vewarmenian", 'վ');
    m.insert("vextenddouble", '∥');
    m.insert("vextendsingle", '∣');
    m.insert("vhook", 'ʋ');
    m.insert("vikatakana", 'ヸ');
    m.insert("viramabengali", '্');
    m.insert("viramadeva", '्');
    m.insert("viramagujarati", '્');
    m.insert("visargabengali", 'ঃ');
    m.insert("visargadeva", 'ः');
    m.insert("visargagujarati", 'ઃ');
    m.insert("vmonospace", 'ｖ');
    m.insert("voarmenian", 'ո');
    m.insert("voicediterationhiragana", 'ゞ');
    m.insert("voicediterationkatakana", 'ヾ');
    m.insert("voicedmarkkana", '゛');
    m.insert("voicedmarkkanahalfwidth", 'ﾞ');
    m.insert("vokatakana", 'ヺ');
    m.insert("vparen", '⒱');
    m.insert("vtilde", 'ṽ');
    m.insert("vturned", 'ʌ');
    m.insert("vuhiragana", 'ゔ');
    m.insert("vukatakana", 'ヴ');
    m.insert("w", 'w');
    m.insert("wacute", 'ẃ');
    m.insert("waekorean", 'ㅙ');
    m.insert("wahiragana", 'わ');
    m.insert("wakatakana", 'ワ');
    m.insert("wakatakanahalfwidth", 'ﾜ');
    m.insert("wakorean", 'ㅘ');
    m.insert("wasmallhiragana", 'ゎ');
    m.insert("wasmallkatakana", 'ヮ');
    m.insert("wattosquare", '㍗');
    m.insert("wavedash", '〜');
    m.insert("wavyunderscorevertical", '︴');
    m.insert("wawarabic", 'و');
    m.insert("wawfinalarabic", 'ﻮ');
    m.insert("wawhamzaabovearabic", 'ؤ');
    m.insert("wawhamzaabovefinalarabic", 'ﺆ');
    m.insert("wbsquare", '㏝');
    m.insert("wcircle", 'ⓦ');
    m.insert("wcircumflex", 'ŵ');
    m.insert("wdieresis", 'ẅ');
    m.insert("wdotaccent", 'ẇ');
    m.insert("wdotbelow", 'ẉ');
    m.insert("wehiragana", 'ゑ');
    m.insert("weierstrass", '℘');
    m.insert("wekatakana", 'ヱ');
    m.insert("wekorean", 'ㅞ');
    m.insert("weokorean", 'ㅝ');
    m.insert("wgrave", 'ẁ');
    m.insert("whitebullet", '◦');
    m.insert("whitecircle", '○');
    m.insert("whitecircleinverse", '◙');
    m.insert("whitecornerbracketleft", '『');
    m.insert("whitecornerbracketleftvertical", '﹃');
    m.insert("whitecornerbracketright", '』');
    m.insert("whitecornerbracketrightvertical", '﹄');
    m.insert("whitediamond", '◇');
    m.insert("whitediamondcontainingblacksmalldiamond", '◈');
    m.insert("whitedownpointingsmalltriangle", '▿');
    m.insert("whitedownpointingtriangle", '▽');
    m.insert("whiteleftpointingsmalltriangle", '◃');
    m.insert("whiteleftpointingtriangle", '◁');
    m.insert("whitelenticularbracketleft", '〖');
    m.insert("whitelenticularbracketright", '〗');
    m.insert("whiterightpointingsmalltriangle", '▹');
    m.insert("whiterightpointingtriangle", '▷');
    m.insert("whitesmallsquare", '▫');
    m.insert("whitesmilingface", '☺');
    m.insert("whitesquare", '□');
    m.insert("whitestar", '☆');
    m.insert("whitetelephone", '☏');
    m.insert("whitetortoiseshellbracketleft", '〘');
    m.insert("whitetortoiseshellbracketright", '〙');
    m.insert("whiteuppointingsmalltriangle", '▵');
    m.insert("whiteuppointingtriangle", '△');
    m.insert("wihiragana", 'ゐ');
    m.insert("wikatakana", 'ヰ');
    m.insert("wikorean", 'ㅟ');
    m.insert("wmonospace", 'ｗ');
    m.insert("wohiragana", 'を');
    m.insert("wokatakana", 'ヲ');
    m.insert("wokatakanahalfwidth", 'ｦ');
    m.insert("won", '₩');
    m.insert("wonmonospace", '￦');
    m.insert("wowaenthai", 'ว');
    m.insert("wparen", '⒲');
    m.insert("wring", 'ẘ');
    m.insert("wsuperior", 'ʷ');
    m.insert("wturned", 'ʍ');
    m.insert("wynn", 'ƿ');
    m.insert("x", 'x');
    m.insert("xabovecmb", '̽');
    m.insert("xbopomofo", 'ㄒ');
    m.insert("xcircle", 'ⓧ');
    m.insert("xdieresis", 'ẍ');
    m.insert("xdotaccent", 'ẋ');
    m.insert("xeharmenian", 'խ');
    m.insert("xi", 'ξ');
    m.insert("xmonospace", 'ｘ');
    m.insert("xparen", '⒳');
    m.insert("xsuperior", 'ˣ');
    m.insert("y", 'y');
    m.insert("yaadosquare", '㍎');
    m.insert("yabengali", 'য');
    m.insert("yacute", 'ý');
    m.insert("yadeva", 'य');
    m.insert("yaekorean", 'ㅒ');
    m.insert("yagujarati", 'ય');
    m.insert("yagurmukhi", 'ਯ');
    m.insert("yahiragana", 'や');
    m.insert("yakatakana", 'ヤ');
    m.insert("yakatakanahalfwidth", 'ﾔ');
    m.insert("yakorean", 'ㅑ');
    m.insert("yamakkanthai", '๎');
    m.insert("yasmallhiragana", 'ゃ');
    m.insert("yasmallkatakana", 'ャ');
    m.insert("yasmallkatakanahalfwidth", 'ｬ');
    m.insert("yatcyrillic", 'ѣ');
    m.insert("ycircle", 'ⓨ');
    m.insert("ycircumflex", 'ŷ');
    m.insert("ydieresis", 'ÿ');
    m.insert("ydotaccent", 'ẏ');
    m.insert("ydotbelow", 'ỵ');
    m.insert("yeharabic", 'ي');
    m.insert("yehbarreearabic", 'ے');
    m.insert("yehbarreefinalarabic", 'ﮯ');
    m.insert("yehfinalarabic", 'ﻲ');
    m.insert("yehhamzaabovearabic", 'ئ');
    m.insert("yehhamzaabovefinalarabic", 'ﺊ');
    m.insert("yehhamzaaboveinitialarabic", 'ﺋ');
    m.insert("yehhamzaabovemedialarabic", 'ﺌ');
    m.insert("yehinitialarabic", 'ﻳ');
    m.insert("yehmedialarabic", 'ﻴ');
    m.insert("yehmeeminitialarabic", 'ﳝ');
    m.insert("yehmeemisolatedarabic", 'ﱘ');
    m.insert("yehnoonfinalarabic", 'ﲔ');
    m.insert("yehthreedotsbelowarabic", 'ۑ');
    m.insert("yekorean", 'ㅖ');
    m.insert("yen", '¥');
    m.insert("yenmonospace", '￥');
    m.insert("yeokorean", 'ㅕ');
    m.insert("yeorinhieuhkorean", 'ㆆ');
    m.insert("yerahbenyomohebrew", '֪');
    m.insert("yerahbenyomolefthebrew", '֪');
    m.insert("yericyrillic", 'ы');
    m.insert("yerudieresiscyrillic", 'ӹ');
    m.insert("yesieungkorean", 'ㆁ');
    m.insert("yesieungpansioskorean", 'ㆃ');
    m.insert("yesieungsioskorean", 'ㆂ');
    m.insert("yetivhebrew", '֚');
    m.insert("ygrave", 'ỳ');
    m.insert("yhook", 'ƴ');
    m.insert("yhookabove", 'ỷ');
    m.insert("yiarmenian", 'յ');
    m.insert("yicyrillic", 'ї');
    m.insert("yikorean", 'ㅢ');
    m.insert("yinyang", '☯');
    m.insert("yiwnarmenian", 'ւ');
    m.insert("ymonospace", 'ｙ');
    m.insert("yod", 'י');
    m.insert("yoddagesh", 'יּ');
    m.insert("yoddageshhebrew", 'יּ');
    m.insert("yodhebrew", 'י');
    m.insert("yodyodhebrew", 'ײ');
    m.insert("yodyodpatahhebrew", 'ײַ');
    m.insert("yohiragana", 'よ');
    m.insert("yoikorean", 'ㆉ');
    m.insert("yokatakana", 'ヨ');
    m.insert("yokatakanahalfwidth", 'ﾖ');
    m.insert("yokorean", 'ㅛ');
    m.insert("yosmallhiragana", 'ょ');
    m.insert("yosmallkatakana", 'ョ');
    m.insert("yosmallkatakanahalfwidth", 'ｮ');
    m.insert("yotgreek", 'ϳ');
    m.insert("yoyaekorean", 'ㆈ');
    m.insert("yoyakorean", 'ㆇ');
    m.insert("yoyakthai", 'ย');
    m.insert("yoyingthai", 'ญ');
    m.insert("yparen", '⒴');
    m.insert("ypogegrammeni", 'ͺ');
    m.insert("ypogegrammenigreekcmb", 'ͅ');
    m.insert("yr", 'Ʀ');
    m.insert("yring", 'ẙ');
    m.insert("ysuperior", 'ʸ');
    m.insert("ytilde", 'ỹ');
    m.insert("yturned", 'ʎ');
    m.insert("yuhiragana", 'ゆ');
    m.insert("yuikorean", 'ㆌ');
    m.insert("yukatakana", 'ユ');
    m.insert("yukatakanahalfwidth", 'ﾕ');
    m.insert("yukorean", 'ㅠ');
    m.insert("yusbigcyrillic", 'ѫ');
    m.insert("yusbigiotifiedcyrillic", 'ѭ');
    m.insert("yuslittlecyrillic", 'ѧ');
    m.insert("yuslittleiotifiedcyrillic", 'ѩ');
    m.insert("yusmallhiragana", 'ゅ');
    m.insert("yusmallkatakana", 'ュ');
    m.insert("yusmallkatakanahalfwidth", 'ｭ');
    m.insert("yuyekorean", 'ㆋ');
    m.insert("yuyeokorean", 'ㆊ');
    m.insert("yyabengali", 'য়');
    m.insert("yyadeva", 'य़');
    m.insert("z", 'z');
    m.insert("zaarmenian", 'զ');
    m.insert("zacute", 'ź');
    m.insert("zadeva", 'ज़');
    m.insert("zagurmukhi", 'ਜ਼');
    m.insert("zaharabic", 'ظ');
    m.insert("zahfinalarabic", 'ﻆ');
    m.insert("zahinitialarabic", 'ﻇ');
    m.insert("zahiragana", 'ざ');
    m.insert("zahmedialarabic", 'ﻈ');
    m.insert("zainarabic", 'ز');
    m.insert("zainfinalarabic", 'ﺰ');
    m.insert("zakatakana", 'ザ');
    m.insert("zaqefgadolhebrew", '֕');
    m.insert("zaqefqatanhebrew", '֔');
    m.insert("zarqahebrew", '֘');
    m.insert("zayin", 'ז');
    m.insert("zayindagesh", 'זּ');
    m.insert("zayindageshhebrew", 'זּ');
    m.insert("zayinhebrew", 'ז');
    m.insert("zbopomofo", 'ㄗ');
    m.insert("zcaron", 'ž');
    m.insert("zcircle", 'ⓩ');
    m.insert("zcircumflex", 'ẑ');
    m.insert("zcurl", 'ʑ');
    m.insert("zdot", 'ż');
    m.insert("zdotaccent", 'ż');
    m.insert("zdotbelow", 'ẓ');
    m.insert("zecyrillic", 'з');
    m.insert("zedescendercyrillic", 'ҙ');
    m.insert("zedieresiscyrillic", 'ӟ');
    m.insert("zehiragana", 'ぜ');
    m.insert("zekatakana", 'ゼ');
    m.insert("zero", '0');
    m.insert("zeroarabic", '٠');
    m.insert("zerobengali", '০');
    m.insert("zerodeva", '०');
    m.insert("zerogujarati", '૦');
    m.insert("zerogurmukhi", '੦');
    m.insert("zerohackarabic", '٠');
    m.insert("zeroinferior", '₀');
    m.insert("zeromonospace", '０');
    m.insert("zerooldstyle", '');
    m.insert("zeropersian", '۰');
    m.insert("zerosuperior", '⁰');
    m.insert("zerothai", '๐');
    m.insert("zerowidthjoiner", '﻿');
    m.insert("zerowidthnonjoiner", '‌');
    m.insert("zerowidthspace", '\u{200B}');
    m.insert("zeta", 'ζ');
    m.insert("zhbopomofo", 'ㄓ');
    m.insert("zhearmenian", 'ժ');
    m.insert("zhebrevecyrillic", 'ӂ');
    m.insert("zhecyrillic", 'ж');
    m.insert("zhedescendercyrillic", 'җ');
    m.insert("zhedieresiscyrillic", 'ӝ');
    m.insert("zihiragana", 'じ');
    m.insert("zikatakana", 'ジ');
    m.insert("zinorhebrew", '֮');
    m.insert("zlinebelow", 'ẕ');
    m.insert("zmonospace", 'ｚ');
    m.insert("zohiragana", 'ぞ');
    m.insert("zokatakana", 'ゾ');
    m.insert("zparen", '⒵');
    m.insert("zretroflexhook", 'ʐ');
    m.insert("zstroke", 'ƶ');
    m.insert("zuhiragana", 'ず');
    m.insert("zukatakana", 'ズ');
    m
}

static GLYPH_TO_UNICODE: LazyLock<HashMap<&'static str, char>> = LazyLock::new(|| {
    let mut m = build_glyph_to_unicode_map();
    // Local overrides for non-standard glyph names seen in PDFs.
    m.insert("C21", '≥');
    m.insert("C25", '≈');
    // Some Type1 fonts use custom glyph names for ASCII tilde.
    m.insert("C19", '~');
    m.insert("C24", '~');
    m
});

/// Convert a glyph name to its Unicode character
pub fn glyph_to_char(name: &str) -> Option<char> {
    // First check our mapping with the full name
    if let Some(&c) = GLYPH_TO_UNICODE.get(name) {
        return Some(c);
    }

    // Per Adobe Glyph List spec, strip the suffix after '.' to get the base glyph name.
    // E.g., "zero.tf" → "zero", "a.ss01" → "a", "hyphen.case" → "hyphen"
    if let Some(dot_pos) = name.find('.') {
        let base = &name[..dot_pos];
        if let Some(&c) = GLYPH_TO_UNICODE.get(base) {
            return Some(c);
        }
    }

    // Try to parse uniXXXX format
    if name.starts_with("uni") && name.len() >= 7 {
        if let Ok(code) = u32::from_str_radix(&name[3..7], 16) {
            // Strip PUA F000 offset: uniF0XX → U+00XX (Windows Symbol encoding convention)
            let code = if (0xF000..=0xF0FF).contains(&code) {
                code - 0xF000
            } else {
                code
            };
            return char::from_u32(code);
        }
    }

    // Try to parse uXXXX or uXXXXX format
    if name.starts_with('u') && name.len() >= 5 {
        if let Ok(code) = u32::from_str_radix(&name[1..], 16) {
            return char::from_u32(code);
        }
    }

    None
}
