diff options
Diffstat (limited to 'src/constant.rs')
-rw-r--r-- | src/constant.rs | 2561 |
1 files changed, 2561 insertions, 0 deletions
diff --git a/src/constant.rs b/src/constant.rs new file mode 100644 index 0000000..332fdaf --- /dev/null +++ b/src/constant.rs @@ -0,0 +1,2561 @@ +//! Constants needed to parse markdown. +//! +//! Most of these constants are magic numbers, such as the number of markers +//! needed to parse [code (fenced)][code_fenced] +//! ([`CODE_FENCED_SEQUENCE_SIZE_MIN`][]) or the max number of allowed markers +//! in a [heading (atx)][heading_atx] +//! ([`HEADING_ATX_OPENING_FENCE_SIZE_MAX`][]). +//! +//! Some constants are instead lists of things, such as the list of tag names +//! considered in the **raw** production of [HTML (flow)][html_flow] +//! ([`HTML_RAW_NAMES`][]), or the list of allowed named character references +//! ([`CHARACTER_REFERENCE_NAMES`][]). +//! +//! [code_fenced]: crate::construct::code_fenced +//! [heading_atx]: crate::construct::heading_atx +//! [html_flow]: crate::construct::html_flow + +/// The number of characters that form a tab stop. +/// +/// This relates to the number of whitespace characters needed to form certain +/// constructs in markdown, most notable the whitespace required to form +/// [code (indented)][code_indented]. +/// +/// <!-- To do: link to somewhere that discusses virtual spaces. --> +/// <!-- Ref: https://github.com/syntax-tree/mdast-util-to-markdown/issues/51 --> +/// +/// [code_indented]: crate::construct::code_indented +pub const TAB_SIZE: usize = 4; + +/// The number of markers needed for a [thematic break][thematic_break] to form. +/// +/// Like many things in markdown, the number is `3`. +/// +/// [thematic_break]: crate::construct::thematic_break +pub const THEMATIC_BREAK_MARKER_COUNT_MIN: usize = 3; + +/// The max number of markers allowed to form a [heading (atx)][heading_atx]. +/// +/// This limitation is imposed by HTML, which imposes a max heading rank of +/// `6`. +/// +/// [heading_atx]: crate::construct::heading_atx +pub const HEADING_ATX_OPENING_FENCE_SIZE_MAX: usize = 6; + +/// The number of markers needed for [code (fenced)][code_fenced] to form. +/// +/// Like many things in markdown, the number is `3`. +/// +/// [code_fenced]: crate::construct::code_fenced +pub const CODE_FENCED_SEQUENCE_SIZE_MIN: usize = 3; + +/// List of HTML tag names that form the **raw** production of +/// [HTML (flow)][html_flow]. +/// +/// The **raw** production allows blank lines and thus no interleaving with +/// markdown. +/// Tag name matching must be performed insensitive to case, and thus this list +/// includes lowercase tag names. +/// +/// The number of the longest tag name is also stored as a constant in +/// [`HTML_RAW_SIZE_MAX`][]. +/// +/// > 👉 **Note**: `textarea` was added in `CommonMark@0.30`. +/// +/// ## References +/// +/// * [*§ 4.6 HTML blocks* in `CommonMark`](https://spec.commonmark.org/0.30/#html-blocks) +/// +/// [html_flow]: crate::construct::html_flow +pub const HTML_RAW_NAMES: [&str; 4] = ["pre", "script", "style", "textarea"]; + +/// The number of the longest tag name in [`HTML_RAW_NAMES`][]. +/// +/// This is currently the size of `textarea`. +pub const HTML_RAW_SIZE_MAX: usize = 8; + +/// List of HTML tag names that form the **basic** production of +/// [HTML (flow)][html_flow]. +/// +/// The **basic** production allows interleaving HTML and markdown with blank lines +/// and allows flow (block) elements to interrupt content. +/// Tag name matching must be performed insensitive to case, and thus this list +/// includes lowercase tag names. +/// +/// Tag names not on this list result in the **complete** production. +/// +/// > 👉 **Note**: `source` was removed on `main` of the `CommonMark` spec and +/// > is slated to be released in `CommonMark@0.31`. +/// +/// ## References +/// +/// * [*§ 4.6 HTML blocks* in `CommonMark`](https://spec.commonmark.org/0.30/#html-blocks) +/// * [*Remove source element as HTML block start condition* as `commonmark/commonmark-spec#710`](https://github.com/commonmark/commonmark-spec/pull/710) +/// +/// [html_flow]: crate::construct::html_flow +pub const HTML_BLOCK_NAMES: [&str; 61] = [ + "address", + "article", + "aside", + "base", + "basefont", + "blockquote", + "body", + "caption", + "center", + "col", + "colgroup", + "dd", + "details", + "dialog", + "dir", + "div", + "dl", + "dt", + "fieldset", + "figcaption", + "figure", + "footer", + "form", + "frame", + "frameset", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "head", + "header", + "hr", + "html", + "iframe", + "legend", + "li", + "link", + "main", + "menu", + "menuitem", + "nav", + "noframes", + "ol", + "optgroup", + "option", + "p", + "param", + "section", + "summary", + "table", + "tbody", + "td", + "tfoot", + "th", + "thead", + "title", + "tr", + "track", + "ul", +]; + +/// The max number of characters in a hexadecimal numeric +/// [character reference][character_reference]. +/// +/// To illustrate, this allows `�` and disallows `�`. +/// This limit is imposed because all bigger numbers are invalid. +/// +/// [character_reference]: crate::construct::character_reference +pub const CHARACTER_REFERENCE_HEXADECIMAL_SIZE_MAX: usize = 6; + +/// The max number of characters in a decimal numeric +/// [character reference][character_reference]. +/// +/// To illustrate, this allows `�` and disallows `�`. +/// This limit is imposed because all bigger numbers are invalid. +/// +/// [character_reference]: crate::construct::character_reference +pub const CHARACTER_REFERENCE_DECIMAL_SIZE_MAX: usize = 7; + +/// The max number of characters in a named +/// [character reference][character_reference]. +/// +/// This is the number of the longest name in [`CHARACTER_REFERENCE_NAMES`][]. +/// It allows `∳` and prevents the parser from +/// continuing for eons. +/// +/// [character_reference]: crate::construct::character_reference +pub const CHARACTER_REFERENCE_NAMED_SIZE_MAX: usize = 31; + +/// List of names that can form a named +/// [character reference][character_reference]. +/// +/// This list is sensitive to casing. +/// +/// The number of the longest name (`CounterClockwiseContourIntegral`) is also +/// stored as a constant in [`CHARACTER_REFERENCE_NAMED_SIZE_MAX`][]. +/// +/// The corresponding values of this list are stored in +/// [`CHARACTER_REFERENCE_VALUES`][]. +/// They correspond through their index. +/// +/// ## References +/// +/// * [*§ 2.5 Entity and numeric character references* in `CommonMark`](https://spec.commonmark.org/0.30/#entity-and-numeric-character-references) +/// +/// [character_reference]: crate::construct::character_reference +pub const CHARACTER_REFERENCE_NAMES: [&str; 2222] = [ + "AEli", + "AElig", + "AM", + "AMP", + "Aacut", + "Aacute", + "Abreve", + "Acir", + "Acirc", + "Acy", + "Afr", + "Agrav", + "Agrave", + "Alpha", + "Amacr", + "And", + "Aogon", + "Aopf", + "ApplyFunction", + "Arin", + "Aring", + "Ascr", + "Assign", + "Atild", + "Atilde", + "Aum", + "Auml", + "Backslash", + "Barv", + "Barwed", + "Bcy", + "Because", + "Bernoullis", + "Beta", + "Bfr", + "Bopf", + "Breve", + "Bscr", + "Bumpeq", + "CHcy", + "COP", + "COPY", + "Cacute", + "Cap", + "CapitalDifferentialD", + "Cayleys", + "Ccaron", + "Ccedi", + "Ccedil", + "Ccirc", + "Cconint", + "Cdot", + "Cedilla", + "CenterDot", + "Cfr", + "Chi", + "CircleDot", + "CircleMinus", + "CirclePlus", + "CircleTimes", + "ClockwiseContourIntegral", + "CloseCurlyDoubleQuote", + "CloseCurlyQuote", + "Colon", + "Colone", + "Congruent", + "Conint", + "ContourIntegral", + "Copf", + "Coproduct", + "CounterClockwiseContourIntegral", + "Cross", + "Cscr", + "Cup", + "CupCap", + "DD", + "DDotrahd", + "DJcy", + "DScy", + "DZcy", + "Dagger", + "Darr", + "Dashv", + "Dcaron", + "Dcy", + "Del", + "Delta", + "Dfr", + "DiacriticalAcute", + "DiacriticalDot", + "DiacriticalDoubleAcute", + "DiacriticalGrave", + "DiacriticalTilde", + "Diamond", + "DifferentialD", + "Dopf", + "Dot", + "DotDot", + "DotEqual", + "DoubleContourIntegral", + "DoubleDot", + "DoubleDownArrow", + "DoubleLeftArrow", + "DoubleLeftRightArrow", + "DoubleLeftTee", + "DoubleLongLeftArrow", + "DoubleLongLeftRightArrow", + "DoubleLongRightArrow", + "DoubleRightArrow", + "DoubleRightTee", + "DoubleUpArrow", + "DoubleUpDownArrow", + "DoubleVerticalBar", + "DownArrow", + "DownArrowBar", + "DownArrowUpArrow", + "DownBreve", + "DownLeftRightVector", + "DownLeftTeeVector", + "DownLeftVector", + "DownLeftVectorBar", + "DownRightTeeVector", + "DownRightVector", + "DownRightVectorBar", + "DownTee", + "DownTeeArrow", + "Downarrow", + "Dscr", + "Dstrok", + "ENG", + "ET", + "ETH", + "Eacut", + "Eacute", + "Ecaron", + "Ecir", + "Ecirc", + "Ecy", + "Edot", + "Efr", + "Egrav", + "Egrave", + "Element", + "Emacr", + "EmptySmallSquare", + "EmptyVerySmallSquare", + "Eogon", + "Eopf", + "Epsilon", + "Equal", + "EqualTilde", + "Equilibrium", + "Escr", + "Esim", + "Eta", + "Eum", + "Euml", + "Exists", + "ExponentialE", + "Fcy", + "Ffr", + "FilledSmallSquare", + "FilledVerySmallSquare", + "Fopf", + "ForAll", + "Fouriertrf", + "Fscr", + "GJcy", + "G", + "GT", + "Gamma", + "Gammad", + "Gbreve", + "Gcedil", + "Gcirc", + "Gcy", + "Gdot", + "Gfr", + "Gg", + "Gopf", + "GreaterEqual", + "GreaterEqualLess", + "GreaterFullEqual", + "GreaterGreater", + "GreaterLess", + "GreaterSlantEqual", + "GreaterTilde", + "Gscr", + "Gt", + "HARDcy", + "Hacek", + "Hat", + "Hcirc", + "Hfr", + "HilbertSpace", + "Hopf", + "HorizontalLine", + "Hscr", + "Hstrok", + "HumpDownHump", + "HumpEqual", + "IEcy", + "IJlig", + "IOcy", + "Iacut", + "Iacute", + "Icir", + "Icirc", + "Icy", + "Idot", + "Ifr", + "Igrav", + "Igrave", + "Im", + "Imacr", + "ImaginaryI", + "Implies", + "Int", + "Integral", + "Intersection", + "InvisibleComma", + "InvisibleTimes", + "Iogon", + "Iopf", + "Iota", + "Iscr", + "Itilde", + "Iukcy", + "Ium", + "Iuml", + "Jcirc", + "Jcy", + "Jfr", + "Jopf", + "Jscr", + "Jsercy", + "Jukcy", + "KHcy", + "KJcy", + "Kappa", + "Kcedil", + "Kcy", + "Kfr", + "Kopf", + "Kscr", + "LJcy", + "L", + "LT", + "Lacute", + "Lambda", + "Lang", + "Laplacetrf", + "Larr", + "Lcaron", + "Lcedil", + "Lcy", + "LeftAngleBracket", + "LeftArrow", + "LeftArrowBar", + "LeftArrowRightArrow", + "LeftCeiling", + "LeftDoubleBracket", + "LeftDownTeeVector", + "LeftDownVector", + "LeftDownVectorBar", + "LeftFloor", + "LeftRightArrow", + "LeftRightVector", + "LeftTee", + "LeftTeeArrow", + "LeftTeeVector", + "LeftTriangle", + "LeftTriangleBar", + "LeftTriangleEqual", + "LeftUpDownVector", + "LeftUpTeeVector", + "LeftUpVector", + "LeftUpVectorBar", + "LeftVector", + "LeftVectorBar", + "Leftarrow", + "Leftrightarrow", + "LessEqualGreater", + "LessFullEqual", + "LessGreater", + "LessLess", + "LessSlantEqual", + "LessTilde", + "Lfr", + "Ll", + "Lleftarrow", + "Lmidot", + "LongLeftArrow", + "LongLeftRightArrow", + "LongRightArrow", + "Longleftarrow", + "Longleftrightarrow", + "Longrightarrow", + "Lopf", + "LowerLeftArrow", + "LowerRightArrow", + "Lscr", + "Lsh", + "Lstrok", + "Lt", + "Map", + "Mcy", + "MediumSpace", + "Mellintrf", + "Mfr", + "MinusPlus", + "Mopf", + "Mscr", + "Mu", + "NJcy", + "Nacute", + "Ncaron", + "Ncedil", + "Ncy", + "NegativeMediumSpace", + "NegativeThickSpace", + "NegativeThinSpace", + "NegativeVeryThinSpace", + "NestedGreaterGreater", + "NestedLessLess", + "NewLine", + "Nfr", + "NoBreak", + "NonBreakingSpace", + "Nopf", + "Not", + "NotCongruent", + "NotCupCap", + "NotDoubleVerticalBar", + "NotElement", + "NotEqual", + "NotEqualTilde", + "NotExists", + "NotGreater", + "NotGreaterEqual", + "NotGreaterFullEqual", + "NotGreaterGreater", + "NotGreaterLess", + "NotGreaterSlantEqual", + "NotGreaterTilde", + "NotHumpDownHump", + "NotHumpEqual", + "NotLeftTriangle", + "NotLeftTriangleBar", + "NotLeftTriangleEqual", + "NotLess", + "NotLessEqual", + "NotLessGreater", + "NotLessLess", + "NotLessSlantEqual", + "NotLessTilde", + "NotNestedGreaterGreater", + "NotNestedLessLess", + "NotPrecedes", + "NotPrecedesEqual", + "NotPrecedesSlantEqual", + "NotReverseElement", + "NotRightTriangle", + "NotRightTriangleBar", + "NotRightTriangleEqual", + "NotSquareSubset", + "NotSquareSubsetEqual", + "NotSquareSuperset", + "NotSquareSupersetEqual", + "NotSubset", + "NotSubsetEqual", + "NotSucceeds", + "NotSucceedsEqual", + "NotSucceedsSlantEqual", + "NotSucceedsTilde", + "NotSuperset", + "NotSupersetEqual", + "NotTilde", + "NotTildeEqual", + "NotTildeFullEqual", + "NotTildeTilde", + "NotVerticalBar", + "Nscr", + "Ntild", + "Ntilde", + "Nu", + "OElig", + "Oacut", + "Oacute", + "Ocir", + "Ocirc", + "Ocy", + "Odblac", + "Ofr", + "Ograv", + "Ograve", + "Omacr", + "Omega", + "Omicron", + "Oopf", + "OpenCurlyDoubleQuote", + "OpenCurlyQuote", + "Or", + "Oscr", + "Oslas", + "Oslash", + "Otild", + "Otilde", + "Otimes", + "Oum", + "Ouml", + "OverBar", + "OverBrace", + "OverBracket", + "OverParenthesis", + "PartialD", + "Pcy", + "Pfr", + "Phi", + "Pi", + "PlusMinus", + "Poincareplane", + "Popf", + "Pr", + "Precedes", + "PrecedesEqual", + "PrecedesSlantEqual", + "PrecedesTilde", + "Prime", + "Product", + "Proportion", + "Proportional", + "Pscr", + "Psi", + "QUO", + "QUOT", + "Qfr", + "Qopf", + "Qscr", + "RBarr", + "RE", + "REG", + "Racute", + "Rang", + "Rarr", + "Rarrtl", + "Rcaron", + "Rcedil", + "Rcy", + "Re", + "ReverseElement", + "ReverseEquilibrium", + "ReverseUpEquilibrium", + "Rfr", + "Rho", + "RightAngleBracket", + "RightArrow", + "RightArrowBar", + "RightArrowLeftArrow", + "RightCeiling", + "RightDoubleBracket", + "RightDownTeeVector", + "RightDownVector", + "RightDownVectorBar", + "RightFloor", + "RightTee", + "RightTeeArrow", + "RightTeeVector", + "RightTriangle", + "RightTriangleBar", + "RightTriangleEqual", + "RightUpDownVector", + "RightUpTeeVector", + "RightUpVector", + "RightUpVectorBar", + "RightVector", + "RightVectorBar", + "Rightarrow", + "Ropf", + "RoundImplies", + "Rrightarrow", + "Rscr", + "Rsh", + "RuleDelayed", + "SHCHcy", + "SHcy", + "SOFTcy", + "Sacute", + "Sc", + "Scaron", + "Scedil", + "Scirc", + "Scy", + "Sfr", + "ShortDownArrow", + "ShortLeftArrow", + "ShortRightArrow", + "ShortUpArrow", + "Sigma", + "SmallCircle", + "Sopf", + "Sqrt", + "Square", + "SquareIntersection", + "SquareSubset", + "SquareSubsetEqual", + "SquareSuperset", + "SquareSupersetEqual", + "SquareUnion", + "Sscr", + "Star", + "Sub", + "Subset", + "SubsetEqual", + "Succeeds", + "SucceedsEqual", + "SucceedsSlantEqual", + "SucceedsTilde", + "SuchThat", + "Sum", + "Sup", + "Superset", + "SupersetEqual", + "Supset", + "THOR", + "THORN", + "TRADE", + "TSHcy", + "TScy", + "Tab", + "Tau", + "Tcaron", + "Tcedil", + "Tcy", + "Tfr", + "Therefore", + "Theta", + "ThickSpace", + "ThinSpace", + "Tilde", + "TildeEqual", + "TildeFullEqual", + "TildeTilde", + "Topf", + "TripleDot", + "Tscr", + "Tstrok", + "Uacut", + "Uacute", + "Uarr", + "Uarrocir", + "Ubrcy", + "Ubreve", + "Ucir", + "Ucirc", + "Ucy", + "Udblac", + "Ufr", + "Ugrav", + "Ugrave", + "Umacr", + "UnderBar", + "UnderBrace", + "UnderBracket", + "UnderParenthesis", + "Union", + "UnionPlus", + "Uogon", + "Uopf", + "UpArrow", + "UpArrowBar", + "UpArrowDownArrow", + "UpDownArrow", + "UpEquilibrium", + "UpTee", + "UpTeeArrow", + "Uparrow", + "Updownarrow", + "UpperLeftArrow", + "UpperRightArrow", + "Upsi", + "Upsilon", + "Uring", + "Uscr", + "Utilde", + "Uum", + "Uuml", + "VDash", + "Vbar", + "Vcy", + "Vdash", + "Vdashl", + "Vee", + "Verbar", + "Vert", + "VerticalBar", + "VerticalLine", + "VerticalSeparator", + "VerticalTilde", + "VeryThinSpace", + "Vfr", + "Vopf", + "Vscr", + "Vvdash", + "Wcirc", + "Wedge", + "Wfr", + "Wopf", + "Wscr", + "Xfr", + "Xi", + "Xopf", + "Xscr", + "YAcy", + "YIcy", + "YUcy", + "Yacut", + "Yacute", + "Ycirc", + "Ycy", + "Yfr", + "Yopf", + "Yscr", + "Yuml", + "ZHcy", + "Zacute", + "Zcaron", + "Zcy", + "Zdot", + "ZeroWidthSpace", + "Zeta", + "Zfr", + "Zopf", + "Zscr", + "aacut", + "aacute", + "abreve", + "ac", + "acE", + "acd", + "acir", + "acirc", + "acut", + "acute", + "acy", + "aeli", + "aelig", + "af", + "afr", + "agrav", + "agrave", + "alefsym", + "aleph", + "alpha", + "amacr", + "amalg", + "am", + "amp", + "and", + "andand", + "andd", + "andslope", + "andv", + "ang", + "ange", + "angle", + "angmsd", + "angmsdaa", + "angmsdab", + "angmsdac", + "angmsdad", + "angmsdae", + "angmsdaf", + "angmsdag", + "angmsdah", + "angrt", + "angrtvb", + "angrtvbd", + "angsph", + "angst", + "angzarr", + "aogon", + "aopf", + "ap", + "apE", + "apacir", + "ape", + "apid", + "apos", + "approx", + "approxeq", + "arin", + "aring", + "ascr", + "ast", + "asymp", + "asympeq", + "atild", + "atilde", + "aum", + "auml", + "awconint", + "awint", + "bNot", + "backcong", + "backepsilon", + "backprime", + "backsim", + "backsimeq", + "barvee", + "barwed", + "barwedge", + "bbrk", + "bbrktbrk", + "bcong", + "bcy", + "bdquo", + "becaus", + "because", + "bemptyv", + "bepsi", + "bernou", + "beta", + "beth", + "between", + "bfr", + "bigcap", + "bigcirc", + "bigcup", + "bigodot", + "bigoplus", + "bigotimes", + "bigsqcup", + "bigstar", + "bigtriangledown", + "bigtriangleup", + "biguplus", + "bigvee", + "bigwedge", + "bkarow", + "blacklozenge", + "blacksquare", + "blacktriangle", + "blacktriangledown", + "blacktriangleleft", + "blacktriangleright", + "blank", + "blk12", + "blk14", + "blk34", + "block", + "bne", + "bnequiv", + "bnot", + "bopf", + "bot", + "bottom", + "bowtie", + "boxDL", + "boxDR", + "boxDl", + "boxDr", + "boxH", + "boxHD", + "boxHU", + "boxHd", + "boxHu", + "boxUL", + "boxUR", + "boxUl", + "boxUr", + "boxV", + "boxVH", + "boxVL", + "boxVR", + "boxVh", + "boxVl", + "boxVr", + "boxbox", + "boxdL", + "boxdR", + "boxdl", + "boxdr", + "boxh", + "boxhD", + "boxhU", + "boxhd", + "boxhu", + "boxminus", + "boxplus", + "boxtimes", + "boxuL", + "boxuR", + "boxul", + "boxur", + "boxv", + "boxvH", + "boxvL", + "boxvR", + "boxvh", + "boxvl", + "boxvr", + "bprime", + "breve", + "brvba", + "brvbar", + "bscr", + "bsemi", + "bsim", + "bsime", + "bsol", + "bsolb", + "bsolhsub", + "bull", + "bullet", + "bump", + "bumpE", + "bumpe", + "bumpeq", + "cacute", + "cap", + "capand", + "capbrcup", + "capcap", + "capcup", + "capdot", + "caps", + "caret", + "caron", + "ccaps", + "ccaron", + "ccedi", + "ccedil", + "ccirc", + "ccups", + "ccupssm", + "cdot", + "cedi", + "cedil", + "cemptyv", + "cen", + "cent", + "centerdot", + "cfr", + "chcy", + "check", + "checkmark", + "chi", + "cir", + "cirE", + "circ", + "circeq", + "circlearrowleft", + "circlearrowright", + "circledR", + "circledS", + "circledast", + "circledcirc", + "circleddash", + "cire", + "cirfnint", + "cirmid", + "cirscir", + "clubs", + "clubsuit", + "colon", + "colone", + "coloneq", + "comma", + "commat", + "comp", + "compfn", + "complement", + "complexes", + "cong", + "congdot", + "conint", + "copf", + "coprod", + "cop", + "copy", + "copysr", + "crarr", + "cross", + "cscr", + "csub", + "csube", + "csup", + "csupe", + "ctdot", + "cudarrl", + "cudarrr", + "cuepr", + "cuesc", + "cularr", + "cularrp", + "cup", + "cupbrcap", + "cupcap", + "cupcup", + "cupdot", + "cupor", + "cups", + "curarr", + "curarrm", + "curlyeqprec", + "curlyeqsucc", + "curlyvee", + "curlywedge", + "curre", + "curren", + "curvearrowleft", + "curvearrowright", + "cuvee", + "cuwed", + "cwconint", + "cwint", + "cylcty", + "dArr", + "dHar", + "dagger", + "daleth", + "darr", + "dash", + "dashv", + "dbkarow", + "dblac", + "dcaron", + "dcy", + "dd", + "ddagger", + "ddarr", + "ddotseq", + "de", + "deg", + "delta", + "demptyv", + "dfisht", + "dfr", + "dharl", + "dharr", + "diam", + "diamond", + "diamondsuit", + "diams", + "die", + "digamma", + "disin", + "div", + "divid", + "divide", + "divideontimes", + "divonx", + "djcy", + "dlcorn", + "dlcrop", + "dollar", + "dopf", + "dot", + "doteq", + "doteqdot", + "dotminus", + "dotplus", + "dotsquare", + "doublebarwedge", + "downarrow", + "downdownarrows", + "downharpoonleft", + "downharpoonright", + "drbkarow", + "drcorn", + "drcrop", + "dscr", + "dscy", + "dsol", + "dstrok", + "dtdot", + "dtri", + "dtrif", + "duarr", + "duhar", + "dwangle", + "dzcy", + "dzigrarr", + "eDDot", + "eDot", + "eacut", + "eacute", + "easter", + "ecaron", + "ecir", + "ecirc", + "ecolon", + "ecy", + "edot", + "ee", + "efDot", + "efr", + "eg", + "egrav", + "egrave", + "egs", + "egsdot", + "el", + "elinters", + "ell", + "els", + "elsdot", + "emacr", + "empty", + "emptyset", + "emptyv", + "emsp13", + "emsp14", + "emsp", + "eng", + "ensp", + "eogon", + "eopf", + "epar", + "eparsl", + "eplus", + "epsi", + "epsilon", + "epsiv", + "eqcirc", + "eqcolon", + "eqsim", + "eqslantgtr", + "eqslantless", + "equals", + "equest", + "equiv", + "equivDD", + "eqvparsl", + "erDot", + "erarr", + "escr", + "esdot", + "esim", + "eta", + "et", + "eth", + "eum", + "euml", + "euro", + "excl", + "exist", + "expectation", + "exponentiale", + "fallingdotseq", + "fcy", + "female", + "ffilig", + "fflig", + "ffllig", + "ffr", + "filig", + "fjlig", + "flat", + "fllig", + "fltns", + "fnof", + "fopf", + "forall", + "fork", + "forkv", + "fpartint", + "frac1", + "frac12", + "frac13", + "frac14", + "frac15", + "frac16", + "frac18", + "frac23", + "frac25", + "frac3", + "frac34", + "frac35", + "frac38", + "frac45", + "frac56", + "frac58", + "frac78", + "frasl", + "frown", + "fscr", + "gE", + "gEl", + "gacute", + "gamma", + "gammad", + "gap", + "gbreve", + "gcirc", + "gcy", + "gdot", + "ge", + "gel", + "geq", + "geqq", + "geqslant", + "ges", + "gescc", + "gesdot", + "gesdoto", + "gesdotol", + "gesl", + "gesles", + "gfr", + "gg", + "ggg", + "gimel", + "gjcy", + "gl", + "glE", + "gla", + "glj", + "gnE", + "gnap", + "gnapprox", + "gne", + "gneq", + "gneqq", + "gnsim", + "gopf", + "grave", + "gscr", + "gsim", + "gsime", + "gsiml", + "g", + "gt", + "gtcc", + "gtcir", + "gtdot", + "gtlPar", + "gtquest", + "gtrapprox", + "gtrarr", + "gtrdot", + "gtreqless", + "gtreqqless", + "gtrless", + "gtrsim", + "gvertneqq", + "gvnE", + "hArr", + "hairsp", + "half", + "hamilt", + "hardcy", + "harr", + "harrcir", + "harrw", + "hbar", + "hcirc", + "hearts", + "heartsuit", + "hellip", + "hercon", + "hfr", + "hksearow", + "hkswarow", + "hoarr", + "homtht", + "hookleftarrow", + "hookrightarrow", + "hopf", + "horbar", + "hscr", + "hslash", + "hstrok", + "hybull", + "hyphen", + "iacut", + "iacute", + "ic", + "icir", + "icirc", + "icy", + "iecy", + "iexc", + "iexcl", + "iff", + "ifr", + "igrav", + "igrave", + "ii", + "iiiint", + "iiint", + "iinfin", + "iiota", + "ijlig", + "imacr", + "image", + "imagline", + "imagpart", + "imath", + "imof", + "imped", + "in", + "incare", + "infin", + "infintie", + "inodot", + "int", + "intcal", + "integers", + "intercal", + "intlarhk", + "intprod", + "iocy", + "iogon", + "iopf", + "iota", + "iprod", + "iques", + "iquest", + "iscr", + "isin", + "isinE", + "isindot", + "isins", + "isinsv", + "isinv", + "it", + "itilde", + "iukcy", + "ium", + "iuml", + "jcirc", + "jcy", + "jfr", + "jmath", + "jopf", + "jscr", + "jsercy", + "jukcy", + "kappa", + "kappav", + "kcedil", + "kcy", + "kfr", + "kgreen", + "khcy", + "kjcy", + "kopf", + "kscr", + "lAarr", + "lArr", + "lAtail", + "lBarr", + "lE", + "lEg", + "lHar", + "lacute", + "laemptyv", + "lagran", + "lambda", + "lang", + "langd", + "langle", + "lap", + "laqu", + "laquo", + "larr", + "larrb", + "larrbfs", + "larrfs", + "larrhk", + "larrlp", + "larrpl", + "larrsim", + "larrtl", + "lat", + "latail", + "late", + "lates", + "lbarr", + "lbbrk", + "lbrace", + "lbrack", + "lbrke", + "lbrksld", + "lbrkslu", + "lcaron", + "lcedil", + "lceil", + "lcub", + "lcy", + "ldca", + "ldquo", + "ldquor", + "ldrdhar", + "ldrushar", + "ldsh", + "le", + "leftarrow", + "leftarrowtail", + "leftharpoondown", + "leftharpoonup", + "leftleftarrows", + "leftrightarrow", + "leftrightarrows", + "leftrightharpoons", + "leftrightsquigarrow", + "leftthreetimes", + "leg", + "leq", + "leqq", + "leqslant", + "les", + "lescc", + "lesdot", + "lesdoto", + "lesdotor", + "lesg", + "lesges", + "lessapprox", + "lessdot", + "lesseqgtr", + "lesseqqgtr", + "lessgtr", + "lesssim", + "lfisht", + "lfloor", + "lfr", + "lg", + "lgE", + "lhard", + "lharu", + "lharul", + "lhblk", + "ljcy", + "ll", + "llarr", + "llcorner", + "llhard", + "lltri", + "lmidot", + "lmoust", + "lmoustache", + "lnE", + "lnap", + "lnapprox", + "lne", + "lneq", + "lneqq", + "lnsim", + "loang", + "loarr", + "lobrk", + "longleftarrow", + "longleftrightarrow", + "longmapsto", + "longrightarrow", + "looparrowleft", + "looparrowright", + "lopar", + "lopf", + "loplus", + "lotimes", + "lowast", + "lowbar", + "loz", + "lozenge", + "lozf", + "lpar", + "lparlt", + "lrarr", + "lrcorner", + "lrhar", + "lrhard", + "lrm", + "lrtri", + "lsaquo", + "lscr", + "lsh", + "lsim", + "lsime", + "lsimg", + "lsqb", + "lsquo", + "lsquor", + "lstrok", + "l", + "lt", + "ltcc", + "ltcir", + "ltdot", + "lthree", + "ltimes", + "ltlarr", + "ltquest", + "ltrPar", + "ltri", + "ltrie", + "ltrif", + "lurdshar", + "luruhar", + "lvertneqq", + "lvnE", + "mDDot", + "mac", + "macr", + "male", + "malt", + "maltese", + "map", + "mapsto", + "mapstodown", + "mapstoleft", + "mapstoup", + "marker", + "mcomma", + "mcy", + "mdash", + "measuredangle", + "mfr", + "mho", + "micr", + "micro", + "mid", + "midast", + "midcir", + "middo", + "middot", + "minus", + "minusb", + "minusd", + "minusdu", + "mlcp", + "mldr", + "mnplus", + "models", + "mopf", + "mp", + "mscr", + "mstpos", + "mu", + "multimap", + "mumap", + "nGg", + "nGt", + "nGtv", + "nLeftarrow", + "nLeftrightarrow", + "nLl", + "nLt", + "nLtv", + "nRightarrow", + "nVDash", + "nVdash", + "nabla", + "nacute", + "nang", + "nap", + "napE", + "napid", + "napos", + "napprox", + "natur", + "natural", + "naturals", + "nbs", + "nbsp", + "nbump", + "nbumpe", + "ncap", + "ncaron", + "ncedil", + "ncong", + "ncongdot", + "ncup", + "ncy", + "ndash", + "ne", + "neArr", + "nearhk", + "nearr", + "nearrow", + "nedot", + "nequiv", + "nesear", + "nesim", + "nexist", + "nexists", + "nfr", + "ngE", + "nge", + "ngeq", + "ngeqq", + "ngeqslant", + "nges", + "ngsim", + "ngt", + "ngtr", + "nhArr", + "nharr", + "nhpar", + "ni", + "nis", + "nisd", + "niv", + "njcy", + "nlArr", + "nlE", + "nlarr", + "nldr", + "nle", + "nleftarrow", + "nleftrightarrow", + "nleq", + "nleqq", + "nleqslant", + "nles", + "nless", + "nlsim", + "nlt", + "nltri", + "nltrie", + "nmid", + "nopf", + "no", + "not", + "notin", + "notinE", + "notindot", + "notinva", + "notinvb", + "notinvc", + "notni", + "notniva", + "notnivb", + "notnivc", + "npar", + "nparallel", + "nparsl", + "npart", + "npolint", + "npr", + "nprcue", + "npre", + "nprec", + "npreceq", + "nrArr", + "nrarr", + "nrarrc", + "nrarrw", + "nrightarrow", + "nrtri", + "nrtrie", + "nsc", + "nsccue", + "nsce", + "nscr", + "nshortmid", + "nshortparallel", + "nsim", + "nsime", + "nsimeq", + "nsmid", + "nspar", + "nsqsube", + "nsqsupe", + "nsub", + "nsubE", + "nsube", + "nsubset", + "nsubseteq", + "nsubseteqq", + "nsucc", + "nsucceq", + "nsup", + "nsupE", + "nsupe", + "nsupset", + "nsupseteq", + "nsupseteqq", + "ntgl", + "ntild", + "ntilde", + "ntlg", + "ntriangleleft", + "ntrianglelefteq", + "ntriangleright", + "ntrianglerighteq", + "nu", + "num", + "numero", + "numsp", + "nvDash", + "nvHarr", + "nvap", + "nvdash", + "nvge", + "nvgt", + "nvinfin", + "nvlArr", + "nvle", + "nvlt", + "nvltrie", + "nvrArr", + "nvrtrie", + "nvsim", + "nwArr", + "nwarhk", + "nwarr", + "nwarrow", + "nwnear", + "oS", + "oacut", + "oacute", + "oast", + "ocir", + "ocirc", + "ocy", + "odash", + "odblac", + "odiv", + "odot", + "odsold", + "oelig", + "ofcir", + "ofr", + "ogon", + "ograv", + "ograve", + "ogt", + "ohbar", + "ohm", + "oint", + "olarr", + "olcir", + "olcross", + "oline", + "olt", + "omacr", + "omega", + "omicron", + "omid", + "ominus", + "oopf", + "opar", + "operp", + "oplus", + "or", + "orarr", + "ord", + "order", + "orderof", + "ordf", + "ordm", + "origof", + "oror", + "orslope", + "orv", + "oscr", + "oslas", + "oslash", + "osol", + "otild", + "otilde", + "otimes", + "otimesas", + "oum", + "ouml", + "ovbar", + "par", + "para", + "parallel", + "parsim", + "parsl", + "part", + "pcy", + "percnt", + "period", + "permil", + "perp", + "pertenk", + "pfr", + "phi", + "phiv", + "phmmat", + "phone", + "pi", + "pitchfork", + "piv", + "planck", + "planckh", + "plankv", + "plus", + "plusacir", + "plusb", + "pluscir", + "plusdo", + "plusdu", + "pluse", + "plusm", + "plusmn", + "plussim", + "plustwo", + "pm", + "pointint", + "popf", + "poun", + "pound", + "pr", + "prE", + "prap", + "prcue", + "pre", + "prec", + "precapprox", + "preccurlyeq", + "preceq", + "precnapprox", + "precneqq", + "precnsim", + "precsim", + "prime", + "primes", + "prnE", + "prnap", + "prnsim", + "prod", + "profalar", + "profline", + "profsurf", + "prop", + "propto", + "prsim", + "prurel", + "pscr", + "psi", + "puncsp", + "qfr", + "qint", + "qopf", + "qprime", + "qscr", + "quaternions", + "quatint", + "quest", + "questeq", + "quo", + "quot", + "rAarr", + "rArr", + "rAtail", + "rBarr", + "rHar", + "race", + "racute", + "radic", + "raemptyv", + "rang", + "rangd", + "range", + "rangle", + "raqu", + "raquo", + "rarr", + "rarrap", + "rarrb", + "rarrbfs", + "rarrc", + "rarrfs", + "rarrhk", + "rarrlp", + "rarrpl", + "rarrsim", + "rarrtl", + "rarrw", + "ratail", + "ratio", + "rationals", + "rbarr", + "rbbrk", + "rbrace", + "rbrack", + "rbrke", + "rbrksld", + "rbrkslu", + "rcaron", + "rcedil", + "rceil", + "rcub", + "rcy", + "rdca", + "rdldhar", + "rdquo", + "rdquor", + "rdsh", + "real", + "realine", + "realpart", + "reals", + "rect", + "re", + "reg", + "rfisht", + "rfloor", + "rfr", + "rhard", + "rharu", + "rharul", + "rho", + "rhov", + "rightarrow", + "rightarrowtail", + "rightharpoondown", + "rightharpoonup", + "rightleftarrows", + "rightleftharpoons", + "rightrightarrows", + "rightsquigarrow", + "rightthreetimes", + "ring", + "risingdotseq", + "rlarr", + "rlhar", + "rlm", + "rmoust", + "rmoustache", + "rnmid", + "roang", + "roarr", + "robrk", + "ropar", + "ropf", + "roplus", + "rotimes", + "rpar", + "rpargt", + "rppolint", + "rrarr", + "rsaquo", + "rscr", + "rsh", + "rsqb", + "rsquo", + "rsquor", + "rthree", + "rtimes", + "rtri", + "rtrie", + "rtrif", + "rtriltri", + "ruluhar", + "rx", + "sacute", + "sbquo", + "sc", + "scE", + "scap", + "scaron", + "sccue", + "sce", + "scedil", + "scirc", + "scnE", + "scnap", + "scnsim", + "scpolint", + "scsim", + "scy", + "sdot", + "sdotb", + "sdote", + "seArr", + "searhk", + "searr", + "searrow", + "sec", + "sect", + "semi", + "seswar", + "setminus", + "setmn", + "sext", + "sfr", + "sfrown", + "sharp", + "shchcy", + "shcy", + "shortmid", + "shortparallel", + "sh", + "shy", + "sigma", + "sigmaf", + "sigmav", + "sim", + "simdot", + "sime", + "simeq", + "simg", + "simgE", + "siml", + "simlE", + "simne", + "simplus", + "simrarr", + "slarr", + "smallsetminus", + "smashp", + "smeparsl", + "smid", + "smile", + "smt", + "smte", + "smtes", + "softcy", + "sol", + "solb", + "solbar", + "sopf", + "spades", + "spadesuit", + "spar", + "sqcap", + "sqcaps", + "sqcup", + "sqcups", + "sqsub", + "sqsube", + "sqsubset", + "sqsubseteq", + "sqsup", + "sqsupe", + "sqsupset", + "sqsupseteq", + "squ", + "square", + "squarf", + "squf", + "srarr", + "sscr", + "ssetmn", + "ssmile", + "sstarf", + "star", + "starf", + "straightepsilon", + "straightphi", + "strns", + "sub", + "subE", + "subdot", + "sube", + "subedot", + "submult", + "subnE", + "subne", + "subplus", + "subrarr", + "subset", + "subseteq", + "subseteqq", + "subsetneq", + "subsetneqq", + "subsim", + "subsub", + "subsup", + "succ", + "succapprox", + "succcurlyeq", + "succeq", + "succnapprox", + "succneqq", + "succnsim", + "succsim", + "sum", + "sung", + "sup", + "sup1", + "sup2", + "sup3", + "supE", + "supdot", + "supdsub", + "supe", + "supedot", + "suphsol", + "suphsub", + "suplarr", + "supmult", + "supnE", + "supne", + "supplus", + "supset", + "supseteq", + "supseteqq", + "supsetneq", + "supsetneqq", + "supsim", + "supsub", + "supsup", + "swArr", + "swarhk", + "swarr", + "swarrow", + "swnwar", + "szli", + "szlig", + "target", + "tau", + "tbrk", + "tcaron", + "tcedil", + "tcy", + "tdot", + "telrec", + "tfr", + "there4", + "therefore", + "theta", + "thetasym", + "thetav", + "thickapprox", + "thicksim", + "thinsp", + "thkap", + "thksim", + "thor", + "thorn", + "tilde", + "time", + "times", + "timesb", + "timesbar", + "timesd", + "tint", + "toea", + "top", + "topbot", + "topcir", + "topf", + "topfork", + "tosa", + "tprime", + "trade", + "triangle", + "triangledown", + "triangleleft", + "trianglelefteq", + "triangleq", + "triangleright", + "trianglerighteq", + "tridot", + "trie", + "triminus", + "triplus", + "trisb", + "tritime", + "trpezium", + "tscr", + "tscy", + "tshcy", + "tstrok", + "twixt", + "twoheadleftarrow", + "twoheadrightarrow", + "uArr", + "uHar", + "uacut", + "uacute", + "uarr", + "ubrcy", + "ubreve", + "ucir", + "ucirc", + "ucy", + "udarr", + "udblac", + "udhar", + "ufisht", + "ufr", + "ugrav", + "ugrave", + "uharl", + "uharr", + "uhblk", + "ulcorn", + "ulcorner", + "ulcrop", + "ultri", + "umacr", + "um", + "uml", + "uogon", + "uopf", + "uparrow", + "updownarrow", + "upharpoonleft", + "upharpoonright", + "uplus", + "upsi", + "upsih", + "upsilon", + "upuparrows", + "urcorn", + "urcorner", + "urcrop", + "uring", + "urtri", + "uscr", + "utdot", + "utilde", + "utri", + "utrif", + "uuarr", + "uum", + "uuml", + "uwangle", + "vArr", + "vBar", + "vBarv", + "vDash", + "vangrt", + "varepsilon", + "varkappa", + "varnothing", + "varphi", + "varpi", + "varpropto", + "varr", + "varrho", + "varsigma", + "varsubsetneq", + "varsubsetneqq", + "varsupsetneq", + "varsupsetneqq", + "vartheta", + "vartriangleleft", + "vartriangleright", + "vcy", + "vdash", + "vee", + "veebar", + "veeeq", + "vellip", + "verbar", + "vert", + "vfr", + "vltri", + "vnsub", + "vnsup", + "vopf", + "vprop", + "vrtri", + "vscr", + "vsubnE", + "vsubne", + "vsupnE", + "vsupne", + "vzigzag", + "wcirc", + "wedbar", + "wedge", + "wedgeq", + "weierp", + "wfr", + "wopf", + "wp", + "wr", + "wreath", + "wscr", + "xcap", + "xcirc", + "xcup", + "xdtri", + "xfr", + "xhArr", + "xharr", + "xi", + "xlArr", + "xlarr", + "xmap", + "xnis", + "xodot", + "xopf", + "xoplus", + "xotime", + "xrArr", + "xrarr", + "xscr", + "xsqcup", + "xuplus", + "xutri", + "xvee", + "xwedge", + "yacut", + "yacute", + "yacy", + "ycirc", + "ycy", + "ye", + "yen", + "yfr", + "yicy", + "yopf", + "yscr", + "yucy", + "yum", + "yuml", + "zacute", + "zcaron", + "zcy", + "zdot", + "zeetrf", + "zeta", + "zfr", + "zhcy", + "zigrarr", + "zopf", + "zscr", + "zwj", + "zwnj", +]; + +/// List of values corresponding to names of named +/// [character references][character_reference]. +/// +/// The corresponding names of this list are stored in +/// [`CHARACTER_REFERENCE_NAMES`][]. +/// They correspond through their index. +/// +/// ## References +/// +/// * [*§ 2.5 Entity and numeric character references* in `CommonMark`](https://spec.commonmark.org/0.30/#entity-and-numeric-character-references) +/// +/// [character_reference]: crate::construct::character_reference +pub const CHARACTER_REFERENCE_VALUES: [&str; 2222] = [ + "Æ", "Æ", "&", "&", "Á", "Á", "Ă", "Â", "Â", "А", "𝔄", "À", "À", "Α", "Ā", "⩓", "Ą", "𝔸", "", + "Å", "Å", "𝒜", "≔", "Ã", "Ã", "Ä", "Ä", "∖", "⫧", "⌆", "Б", "∵", "ℬ", "Β", "𝔅", "𝔹", "˘", "ℬ", + "≎", "Ч", "©", "©", "Ć", "⋒", "ⅅ", "ℭ", "Č", "Ç", "Ç", "Ĉ", "∰", "Ċ", "¸", "·", "ℭ", "Χ", "⊙", + "⊖", "⊕", "⊗", "∲", "”", "’", "∷", "⩴", "≡", "∯", "∮", "ℂ", "∐", "∳", "⨯", "𝒞", "⋓", "≍", "ⅅ", + "⤑", "Ђ", "Ѕ", "Џ", "‡", "↡", "⫤", "Ď", "Д", "∇", "Δ", "𝔇", "´", "˙", "˝", "`", "˜", "⋄", "ⅆ", + "𝔻", "¨", "⃜", "≐", "∯", "¨", "⇓", "⇐", "⇔", "⫤", "⟸", "⟺", "⟹", "⇒", "⊨", "⇑", "⇕", "∥", "↓", + "⤓", "⇵", "̑", "⥐", "⥞", "↽", "⥖", "⥟", "⇁", "⥗", "⊤", "↧", "⇓", "𝒟", "Đ", "Ŋ", "Ð", "Ð", "É", + "É", "Ě", "Ê", "Ê", "Э", "Ė", "𝔈", "È", "È", "∈", "Ē", "◻", "▫", "Ę", "𝔼", "Ε", "⩵", "≂", "⇌", + "ℰ", "⩳", "Η", "Ë", "Ë", "∃", "ⅇ", "Ф", "𝔉", "◼", "▪", "𝔽", "∀", "ℱ", "ℱ", "Ѓ", ">", ">", "Γ", + "Ϝ", "Ğ", "Ģ", "Ĝ", "Г", "Ġ", "𝔊", "⋙", "𝔾", "≥", "⋛", "≧", "⪢", "≷", "⩾", "≳", "𝒢", "≫", "Ъ", + "ˇ", "^", "Ĥ", "ℌ", "ℋ", "ℍ", "─", "ℋ", "Ħ", "≎", "≏", "Е", "IJ", "Ё", "Í", "Í", "Î", "Î", "И", + "İ", "ℑ", "Ì", "Ì", "ℑ", "Ī", "ⅈ", "⇒", "∬", "∫", "⋂", "", "", "Į", "𝕀", "Ι", "ℐ", "Ĩ", "І", + "Ï", "Ï", "Ĵ", "Й", "𝔍", "𝕁", "𝒥", "Ј", "Є", "Х", "Ќ", "Κ", "Ķ", "К", "𝔎", "𝕂", "𝒦", "Љ", "<", + "<", "Ĺ", "Λ", "⟪", "ℒ", "↞", "Ľ", "Ļ", "Л", "⟨", "←", "⇤", "⇆", "⌈", "⟦", "⥡", "⇃", "⥙", "⌊", + "↔", "⥎", "⊣", "↤", "⥚", "⊲", "⧏", "⊴", "⥑", "⥠", "↿", "⥘", "↼", "⥒", "⇐", "⇔", "⋚", "≦", "≶", + "⪡", "⩽", "≲", "𝔏", "⋘", "⇚", "Ŀ", "⟵", "⟷", "⟶", "⟸", "⟺", "⟹", "𝕃", "↙", "↘", "ℒ", "↰", "Ł", + "≪", "⤅", "М", " ", "ℳ", "𝔐", "∓", "𝕄", "ℳ", "Μ", "Њ", "Ń", "Ň", "Ņ", "Н", "\u{200B}", + "\u{200B}", "\u{200B}", "\u{200B}", "≫", "≪", "\n", "𝔑", "\u{2060}", " ", "ℕ", "⫬", "≢", "≭", + "∦", "∉", "≠", "≂̸", "∄", "≯", "≱", "≧̸", "≫̸", "≹", "⩾̸", "≵", "≎̸", "≏̸", "⋪", "⧏̸", "⋬", "≮", "≰", + "≸", "≪̸", "⩽̸", "≴", "⪢̸", "⪡̸", "⊀", "⪯̸", "⋠", "∌", "⋫", "⧐̸", "⋭", "⊏̸", "⋢", "⊐̸", "⋣", "⊂⃒", "⊈", + "⊁", "⪰̸", "⋡", "≿̸", "⊃⃒", "⊉", "≁", "≄", "≇", "≉", "∤", "𝒩", "Ñ", "Ñ", "Ν", "Œ", "Ó", "Ó", "Ô", + "Ô", "О", "Ő", "𝔒", "Ò", "Ò", "Ō", "Ω", "Ο", "𝕆", "“", "‘", "⩔", "𝒪", "Ø", "Ø", "Õ", "Õ", "⨷", + "Ö", "Ö", "‾", "⏞", "⎴", "⏜", "∂", "П", "𝔓", "Φ", "Π", "±", "ℌ", "ℙ", "⪻", "≺", "⪯", "≼", "≾", + "″", "∏", "∷", "∝", "𝒫", "Ψ", "\"", "\"", "𝔔", "ℚ", "𝒬", "⤐", "®", "®", "Ŕ", "⟫", "↠", "⤖", + "Ř", "Ŗ", "Р", "ℜ", "∋", "⇋", "⥯", "ℜ", "Ρ", "⟩", "→", "⇥", "⇄", "⌉", "⟧", "⥝", "⇂", "⥕", "⌋", + "⊢", "↦", "⥛", "⊳", "⧐", "⊵", "⥏", "⥜", "↾", "⥔", "⇀", "⥓", "⇒", "ℝ", "⥰", "⇛", "ℛ", "↱", "⧴", + "Щ", "Ш", "Ь", "Ś", "⪼", "Š", "Ş", "Ŝ", "С", "𝔖", "↓", "←", "→", "↑", "Σ", "∘", "𝕊", "√", "□", + "⊓", "⊏", "⊑", "⊐", "⊒", "⊔", "𝒮", "⋆", "⋐", "⋐", "⊆", "≻", "⪰", "≽", "≿", "∋", "∑", "⋑", "⊃", + "⊇", "⋑", "Þ", "Þ", "™", "Ћ", "Ц", "\t", "Τ", "Ť", "Ţ", "Т", "𝔗", "∴", "Θ", " ", " ", "∼", + "≃", "≅", "≈", "𝕋", "⃛", "𝒯", "Ŧ", "Ú", "Ú", "↟", "⥉", "Ў", "Ŭ", "Û", "Û", "У", "Ű", "𝔘", "Ù", + "Ù", "Ū", "_", "⏟", "⎵", "⏝", "⋃", "⊎", "Ų", "𝕌", "↑", "⤒", "⇅", "↕", "⥮", "⊥", "↥", "⇑", "⇕", + "↖", "↗", "ϒ", "Υ", "Ů", "𝒰", "Ũ", "Ü", "Ü", "⊫", "⫫", "В", "⊩", "⫦", "⋁", "‖", "‖", "∣", "|", + "❘", "≀", " ", "𝔙", "𝕍", "𝒱", "⊪", "Ŵ", "⋀", "𝔚", "𝕎", "𝒲", "𝔛", "Ξ", "𝕏", "𝒳", "Я", "Ї", "Ю", + "Ý", "Ý", "Ŷ", "Ы", "𝔜", "𝕐", "𝒴", "Ÿ", "Ж", "Ź", "Ž", "З", "Ż", "\u{200B}", "Ζ", "ℨ", "ℤ", + "𝒵", "á", "á", "ă", "∾", "∾̳", "∿", "â", "â", "´", "´", "а", "æ", "æ", "", "𝔞", "à", "à", "ℵ", + "ℵ", "α", "ā", "⨿", "&", "&", "∧", "⩕", "⩜", "⩘", "⩚", "∠", "⦤", "∠", "∡", "⦨", "⦩", "⦪", "⦫", + "⦬", "⦭", "⦮", "⦯", "∟", "⊾", "⦝", "∢", "Å", "⍼", "ą", "𝕒", "≈", "⩰", "⩯", "≊", "≋", "'", "≈", + "≊", "å", "å", "𝒶", "*", "≈", "≍", "ã", "ã", "ä", "ä", "∳", "⨑", "⫭", "≌", "϶", "‵", "∽", "⋍", + "⊽", "⌅", "⌅", "⎵", "⎶", "≌", "б", "„", "∵", "∵", "⦰", "϶", "ℬ", "β", "ℶ", "≬", "𝔟", "⋂", "◯", + "⋃", "⨀", "⨁", "⨂", "⨆", "★", "▽", "△", "⨄", "⋁", "⋀", "⤍", "⧫", "▪", "▴", "▾", "◂", "▸", "␣", + "▒", "░", "▓", "█", "=⃥", "≡⃥", "⌐", "𝕓", "⊥", "⊥", "⋈", "╗", "╔", "╖", "╓", "═", "╦", "╩", "╤", + "╧", "╝", "╚", "╜", "╙", "║", "╬", "╣", "╠", "╫", "╢", "╟", "⧉", "╕", "╒", "┐", "┌", "─", "╥", + "╨", "┬", "┴", "⊟", "⊞", "⊠", "╛", "╘", "┘", "└", "│", "╪", "╡", "╞", "┼", "┤", "├", "‵", "˘", + "¦", "¦", "𝒷", "⁏", "∽", "⋍", "\\", "⧅", "⟈", "•", "•", "≎", "⪮", "≏", "≏", "ć", "∩", "⩄", "⩉", + "⩋", "⩇", "⩀", "∩︀", "⁁", "ˇ", "⩍", "č", "ç", "ç", "ĉ", "⩌", "⩐", "ċ", "¸", "¸", "⦲", "¢", "¢", + "·", "𝔠", "ч", "✓", "✓", "χ", "○", "⧃", "ˆ", "≗", "↺", "↻", "®", "Ⓢ", "⊛", "⊚", "⊝", "≗", "⨐", + "⫯", "⧂", "♣", "♣", ":", "≔", "≔", ",", "@", "∁", "∘", "∁", "ℂ", "≅", "⩭", "∮", "𝕔", "∐", "©", + "©", "℗", "↵", "✗", "𝒸", "⫏", "⫑", "⫐", "⫒", "⋯", "⤸", "⤵", "⋞", "⋟", "↶", "⤽", "∪", "⩈", "⩆", + "⩊", "⊍", "⩅", "∪︀", "↷", "⤼", "⋞", "⋟", "⋎", "⋏", "¤", "¤", "↶", "↷", "⋎", "⋏", "∲", "∱", "⌭", + "⇓", "⥥", "†", "ℸ", "↓", "‐", "⊣", "⤏", "˝", "ď", "д", "ⅆ", "‡", "⇊", "⩷", "°", "°", "δ", "⦱", + "⥿", "𝔡", "⇃", "⇂", "⋄", "⋄", "♦", "♦", "¨", "ϝ", "⋲", "÷", "÷", "÷", "⋇", "⋇", "ђ", "⌞", "⌍", + "$", "𝕕", "˙", "≐", "≑", "∸", "∔", "⊡", "⌆", "↓", "⇊", "⇃", "⇂", "⤐", "⌟", "⌌", "𝒹", "ѕ", "⧶", + "đ", "⋱", "▿", "▾", "⇵", "⥯", "⦦", "џ", "⟿", "⩷", "≑", "é", "é", "⩮", "ě", "ê", "ê", "≕", "э", + "ė", "ⅇ", "≒", "𝔢", "⪚", "è", "è", "⪖", "⪘", "⪙", "⏧", "ℓ", "⪕", "⪗", "ē", "∅", "∅", "∅", " ", + " ", " ", "ŋ", " ", "ę", "𝕖", "⋕", "⧣", "⩱", "ε", "ε", "ϵ", "≖", "≕", "≂", "⪖", "⪕", "=", "≟", + "≡", "⩸", "⧥", "≓", "⥱", "ℯ", "≐", "≂", "η", "ð", "ð", "ë", "ë", "€", "!", "∃", "ℰ", "ⅇ", "≒", + "ф", "♀", "ffi", "ff", "ffl", "𝔣", "fi", "fj", "♭", "fl", "▱", "ƒ", "𝕗", "∀", "⋔", "⫙", "⨍", "¼", "½", + "⅓", "¼", "⅕", "⅙", "⅛", "⅔", "⅖", "¾", "¾", "⅗", "⅜", "⅘", "⅚", "⅝", "⅞", "⁄", "⌢", "𝒻", "≧", + "⪌", "ǵ", "γ", "ϝ", "⪆", "ğ", "ĝ", "г", "ġ", "≥", "⋛", "≥", "≧", "⩾", "⩾", "⪩", "⪀", "⪂", "⪄", + "⋛︀", "⪔", "𝔤", "≫", "⋙", "ℷ", "ѓ", "≷", "⪒", "⪥", "⪤", "≩", "⪊", "⪊", "⪈", "⪈", "≩", "⋧", "𝕘", + "`", "ℊ", "≳", "⪎", "⪐", ">", ">", "⪧", "⩺", "⋗", "⦕", "⩼", "⪆", "⥸", "⋗", "⋛", "⪌", "≷", "≳", + "≩︀", "≩︀", "⇔", " ", "½", "ℋ", "ъ", "↔", "⥈", "↭", "ℏ", "ĥ", "♥", "♥", "…", "⊹", "𝔥", "⤥", "⤦", + "⇿", "∻", "↩", "↪", "𝕙", "―", "𝒽", "ℏ", "ħ", "⁃", "‐", "í", "í", "", "î", "î", "и", "е", "¡", + "¡", "⇔", "𝔦", "ì", "ì", "ⅈ", "⨌", "∭", "⧜", "℩", "ij", "ī", "ℑ", "ℐ", "ℑ", "ı", "⊷", "Ƶ", "∈", + "℅", "∞", "⧝", "ı", "∫", "⊺", "ℤ", "⊺", "⨗", "⨼", "ё", "į", "𝕚", "ι", "⨼", "¿", "¿", "𝒾", "∈", + "⋹", "⋵", "⋴", "⋳", "∈", "", "ĩ", "і", "ï", "ï", "ĵ", "й", "𝔧", "ȷ", "𝕛", "𝒿", "ј", "є", "κ", + "ϰ", "ķ", "к", "𝔨", "ĸ", "х", "ќ", "𝕜", "𝓀", "⇚", "⇐", "⤛", "⤎", "≦", "⪋", "⥢", "ĺ", "⦴", "ℒ", + "λ", "⟨", "⦑", "⟨", "⪅", "«", "«", "←", "⇤", "⤟", "⤝", "↩", "↫", "⤹", "⥳", "↢", "⪫", "⤙", "⪭", + "⪭︀", "⤌", "❲", "{", "[", "⦋", "⦏", "⦍", "ľ", "ļ", "⌈", "{", "л", "⤶", "“", "„", "⥧", "⥋", "↲", + "≤", "←", "↢", "↽", "↼", "⇇", "↔", "⇆", "⇋", "↭", "⋋", "⋚", "≤", "≦", "⩽", "⩽", "⪨", "⩿", "⪁", + "⪃", "⋚︀", "⪓", "⪅", "⋖", "⋚", "⪋", "≶", "≲", "⥼", "⌊", "𝔩", "≶", "⪑", "↽", "↼", "⥪", "▄", "љ", + "≪", "⇇", "⌞", "⥫", "◺", "ŀ", "⎰", "⎰", "≨", "⪉", "⪉", "⪇", "⪇", "≨", "⋦", "⟬", "⇽", "⟦", "⟵", + "⟷", "⟼", "⟶", "↫", "↬", "⦅", "𝕝", "⨭", "⨴", "∗", "_", "◊", "◊", "⧫", "(", "⦓", "⇆", "⌟", "⇋", + "⥭", "", "⊿", "‹", "𝓁", "↰", "≲", "⪍", "⪏", "[", "‘", "‚", "ł", "<", "<", "⪦", "⩹", "⋖", "⋋", + "⋉", "⥶", "⩻", "⦖", "◃", "⊴", "◂", "⥊", "⥦", "≨︀", "≨︀", "∺", "¯", "¯", "♂", "✠", "✠", "↦", "↦", + "↧", "↤", "↥", "▮", "⨩", "м", "—", "∡", "𝔪", "℧", "µ", "µ", "∣", "*", "⫰", "·", "·", "−", "⊟", + "∸", "⨪", "⫛", "…", "∓", "⊧", "𝕞", "∓", "𝓂", "∾", "μ", "⊸", "⊸", "⋙̸", "≫⃒", "≫̸", "⇍", "⇎", "⋘̸", + "≪⃒", "≪̸", "⇏", "⊯", "⊮", "∇", "ń", "∠⃒", "≉", "⩰̸", "≋̸", "ʼn", "≉", "♮", "♮", "ℕ", " ", " ", "≎̸", + "≏̸", "⩃", "ň", "ņ", "≇", "⩭̸", "⩂", "н", "–", "≠", "⇗", "⤤", "↗", "↗", "≐̸", "≢", "⤨", "≂̸", "∄", + "∄", "𝔫", "≧̸", "≱", "≱", "≧̸", "⩾̸", "⩾̸", "≵", "≯", "≯", "⇎", "↮", "⫲", "∋", "⋼", "⋺", "∋", "њ", + "⇍", "≦̸", "↚", "‥", "≰", "↚", "↮", "≰", "≦̸", "⩽̸", "⩽̸", "≮", "≴", "≮", "⋪", "⋬", "∤", "𝕟", "¬", + "¬", "∉", "⋹̸", "⋵̸", "∉", "⋷", "⋶", "∌", "∌", "⋾", "⋽", "∦", "∦", "⫽⃥", "∂̸", "⨔", "⊀", "⋠", "⪯̸", + "⊀", "⪯̸", "⇏", "↛", "⤳̸", "↝̸", "↛", "⋫", "⋭", "⊁", "⋡", "⪰̸", "𝓃", "∤", "∦", "≁", "≄", "≄", "∤", + "∦", "⋢", "⋣", "⊄", "⫅̸", "⊈", "⊂⃒", "⊈", "⫅̸", "⊁", "⪰̸", "⊅", "⫆̸", "⊉", "⊃⃒", "⊉", "⫆̸", "≹", "ñ", + "ñ", "≸", "⋪", "⋬", "⋫", "⋭", "ν", "#", "№", " ", "⊭", "⤄", "≍⃒", "⊬", "≥⃒", ">⃒", "⧞", "⤂", "≤⃒", + "<⃒", "⊴⃒", "⤃", "⊵⃒", "∼⃒", "⇖", "⤣", "↖", "↖", "⤧", "Ⓢ", "ó", "ó", "⊛", "ô", "ô", "о", "⊝", "ő", + "⨸", "⊙", "⦼", "œ", "⦿", "𝔬", "˛", "ò", "ò", "⧁", "⦵", "Ω", "∮", "↺", "⦾", "⦻", "‾", "⧀", "ō", + "ω", "ο", "⦶", "⊖", "𝕠", "⦷", "⦹", "⊕", "∨", "↻", "º", "ℴ", "ℴ", "ª", "º", "⊶", "⩖", "⩗", "⩛", + "ℴ", "ø", "ø", "⊘", "õ", "õ", "⊗", "⨶", "ö", "ö", "⌽", "¶", "¶", "∥", "⫳", "⫽", "∂", "п", "%", + ".", "‰", "⊥", "‱", "𝔭", "φ", "ϕ", "ℳ", "☎", "π", "⋔", "ϖ", "ℏ", "ℎ", "ℏ", "+", "⨣", "⊞", "⨢", + "∔", "⨥", "⩲", "±", "±", "⨦", "⨧", "±", "⨕", "𝕡", "£", "£", "≺", "⪳", "⪷", "≼", "⪯", "≺", "⪷", + "≼", "⪯", "⪹", "⪵", "⋨", "≾", "′", "ℙ", "⪵", "⪹", "⋨", "∏", "⌮", "⌒", "⌓", "∝", "∝", "≾", "⊰", + "𝓅", "ψ", " ", "𝔮", "⨌", "𝕢", "⁗", "𝓆", "ℍ", "⨖", "?", "≟", "\"", "\"", "⇛", "⇒", "⤜", "⤏", + "⥤", "∽̱", "ŕ", "√", "⦳", "⟩", "⦒", "⦥", "⟩", "»", "»", "→", "⥵", "⇥", "⤠", "⤳", "⤞", "↪", "↬", + "⥅", "⥴", "↣", "↝", "⤚", "∶", "ℚ", "⤍", "❳", "}", "]", "⦌", "⦎", "⦐", "ř", "ŗ", "⌉", "}", "р", + "⤷", "⥩", "”", "”", "↳", "ℜ", "ℛ", "ℜ", "ℝ", "▭", "®", "®", "⥽", "⌋", "𝔯", "⇁", "⇀", "⥬", "ρ", + "ϱ", "→", "↣", "⇁", "⇀", "⇄", "⇌", "⇉", "↝", "⋌", "˚", "≓", "⇄", "⇌", "", "⎱", "⎱", "⫮", "⟭", + "⇾", "⟧", "⦆", "𝕣", "⨮", "⨵", ")", "⦔", "⨒", "⇉", "›", "𝓇", "↱", "]", "’", "’", "⋌", "⋊", "▹", + "⊵", "▸", "⧎", "⥨", "℞", "ś", "‚", "≻", "⪴", "⪸", "š", "≽", "⪰", "ş", "ŝ", "⪶", "⪺", "⋩", "⨓", + "≿", "с", "⋅", "⊡", "⩦", "⇘", "⤥", "↘", "↘", "§", "§", ";", "⤩", "∖", "∖", "✶", "𝔰", "⌢", "♯", + "щ", "ш", "∣", "∥", "\u{AD}", "\u{AD}", "σ", "ς", "ς", "∼", "⩪", "≃", "≃", "⪞", "⪠", "⪝", "⪟", + "≆", "⨤", "⥲", "←", "∖", "⨳", "⧤", "∣", "⌣", "⪪", "⪬", "⪬︀", "ь", "/", "⧄", "⌿", "𝕤", "♠", "♠", + "∥", "⊓", "⊓︀", "⊔", "⊔︀", "⊏", "⊑", "⊏", "⊑", "⊐", "⊒", "⊐", "⊒", "□", "□", "▪", "▪", "→", "𝓈", + "∖", "⌣", "⋆", "☆", "★", "ϵ", "ϕ", "¯", "⊂", "⫅", "⪽", "⊆", "⫃", "⫁", "⫋", "⊊", "⪿", "⥹", "⊂", + "⊆", "⫅", "⊊", "⫋", "⫇", "⫕", "⫓", "≻", "⪸", "≽", "⪰", "⪺", "⪶", "⋩", "≿", "∑", "♪", "⊃", "¹", + "²", "³", "⫆", "⪾", "⫘", "⊇", "⫄", "⟉", "⫗", "⥻", "⫂", "⫌", "⊋", "⫀", "⊃", "⊇", "⫆", "⊋", "⫌", + "⫈", "⫔", "⫖", "⇙", "⤦", "↙", "↙", "⤪", "ß", "ß", "⌖", "τ", "⎴", "ť", "ţ", "т", "⃛", "⌕", "𝔱", + "∴", "∴", "θ", "ϑ", "ϑ", "≈", "∼", " ", "≈", "∼", "þ", "þ", "˜", "×", "×", "⊠", "⨱", "⨰", "∭", + "⤨", "⊤", "⌶", "⫱", "𝕥", "⫚", "⤩", "‴", "™", "▵", "▿", "◃", "⊴", "≜", "▹", "⊵", "◬", "≜", "⨺", + "⨹", "⧍", "⨻", "⏢", "𝓉", "ц", "ћ", "ŧ", "≬", "↞", "↠", "⇑", "⥣", "ú", "ú", "↑", "ў", "ŭ", "û", + "û", "у", "⇅", "ű", "⥮", "⥾", "𝔲", "ù", "ù", "↿", "↾", "▀", "⌜", "⌜", "⌏", "◸", "ū", "¨", "¨", + "ų", "𝕦", "↑", "↕", "↿", "↾", "⊎", "υ", "ϒ", "υ", "⇈", "⌝", "⌝", "⌎", "ů", "◹", "𝓊", "⋰", "ũ", + "▵", "▴", "⇈", "ü", "ü", "⦧", "⇕", "⫨", "⫩", "⊨", "⦜", "ϵ", "ϰ", "∅", "ϕ", "ϖ", "∝", "↕", "ϱ", + "ς", "⊊︀", "⫋︀", "⊋︀", "⫌︀", "ϑ", "⊲", "⊳", "в", "⊢", "∨", "⊻", "≚", "⋮", "|", "|", "𝔳", "⊲", "⊂⃒", + "⊃⃒", "𝕧", "∝", "⊳", "𝓋", "⫋︀", "⊊︀", "⫌︀", "⊋︀", "⦚", "ŵ", "⩟", "∧", "≙", "℘", "𝔴", "𝕨", "℘", "≀", + "≀", "𝓌", "⋂", "◯", "⋃", "▽", "𝔵", "⟺", "⟷", "ξ", "⟸", "⟵", "⟼", "⋻", "⨀", "𝕩", "⨁", "⨂", "⟹", + "⟶", "𝓍", "⨆", "⨄", "△", "⋁", "⋀", "ý", "ý", "я", "ŷ", "ы", "¥", "¥", "𝔶", "ї", "𝕪", "𝓎", "ю", + "ÿ", "ÿ", "ź", "ž", "з", "ż", "ℨ", "ζ", "𝔷", "ж", "⇝", "𝕫", "𝓏", "", "", +]; |