Module: RedQuilt::Inline

Defined in:
lib/red_quilt/inline.rb,
lib/red_quilt/inline/lexer.rb,
lib/red_quilt/inline/tokens.rb,
lib/red_quilt/inline/builder.rb,
lib/red_quilt/inline/flanking.rb,
lib/red_quilt/inline/token_kind.rb,
lib/red_quilt/inline/link_scanner.rb,
lib/red_quilt/inline/html_entities.rb

Overview

Home of the inline-parsing namespace. Sub-components (Lexer, Builder, Tokens, Flanking, …) live under lib/red_quilt/inline/. Module-level shared primitives that several of them need live here.

Defined Under Namespace

Modules: Flanking, TokenKind Classes: Builder, Lexer, LinkScanner, Tokens

Constant Summary collapse

ASCII_PUNCT =

CommonMark ASCII punctuation: the four byte ranges 0x21-0x2F, 0x3A-0x40, 0x5B-0x60, 0x7B-0x7E. Used for backslash-escape recognition (lexer, builder) and flanking-run boundary detection (flanking). A frozen 256-entry lookup table keeps the hot-path check to a single array index.

begin
  a = Array.new(256, false)
  (0x21..0x2F).each { |b| a[b] = true }
  (0x3A..0x40).each { |b| a[b] = true }
  (0x5B..0x60).each { |b| a[b] = true }
  (0x7B..0x7E).each { |b| a[b] = true }
  a.freeze
end
BYTE_CHR =

Frozen single-byte strings indexed by byte value, so hot paths that need the 1-char string for a byte (flanking classification, delimiter run chars) can reuse a shared object instead of allocating via Integer#chr on every call. Semantics match ‘byte.chr` exactly.

Array.new(256) { |b| b.chr.freeze }.freeze
HTML_ENTITIES =

HTML5 named character references (terminated form, i.e. ‘&name;`). Auto-generated from html.spec.whatwg.org/entities.json.

{
  "AElig" => "\xC3\x86".b.freeze,
  "AMP" => "\x26".b.freeze,
  "Aacute" => "\xC3\x81".b.freeze,
  "Abreve" => "\xC4\x82".b.freeze,
  "Acirc" => "\xC3\x82".b.freeze,
  "Acy" => "\xD0\x90".b.freeze,
  "Afr" => "\xF0\x9D\x94\x84".b.freeze,
  "Agrave" => "\xC3\x80".b.freeze,
  "Alpha" => "\xCE\x91".b.freeze,
  "Amacr" => "\xC4\x80".b.freeze,
  "And" => "\xE2\xA9\x93".b.freeze,
  "Aogon" => "\xC4\x84".b.freeze,
  "Aopf" => "\xF0\x9D\x94\xB8".b.freeze,
  "ApplyFunction" => "\xE2\x81\xA1".b.freeze,
  "Aring" => "\xC3\x85".b.freeze,
  "Ascr" => "\xF0\x9D\x92\x9C".b.freeze,
  "Assign" => "\xE2\x89\x94".b.freeze,
  "Atilde" => "\xC3\x83".b.freeze,
  "Auml" => "\xC3\x84".b.freeze,
  "Backslash" => "\xE2\x88\x96".b.freeze,
  "Barv" => "\xE2\xAB\xA7".b.freeze,
  "Barwed" => "\xE2\x8C\x86".b.freeze,
  "Bcy" => "\xD0\x91".b.freeze,
  "Because" => "\xE2\x88\xB5".b.freeze,
  "Bernoullis" => "\xE2\x84\xAC".b.freeze,
  "Beta" => "\xCE\x92".b.freeze,
  "Bfr" => "\xF0\x9D\x94\x85".b.freeze,
  "Bopf" => "\xF0\x9D\x94\xB9".b.freeze,
  "Breve" => "\xCB\x98".b.freeze,
  "Bscr" => "\xE2\x84\xAC".b.freeze,
  "Bumpeq" => "\xE2\x89\x8E".b.freeze,
  "CHcy" => "\xD0\xA7".b.freeze,
  "COPY" => "\xC2\xA9".b.freeze,
  "Cacute" => "\xC4\x86".b.freeze,
  "Cap" => "\xE2\x8B\x92".b.freeze,
  "CapitalDifferentialD" => "\xE2\x85\x85".b.freeze,
  "Cayleys" => "\xE2\x84\xAD".b.freeze,
  "Ccaron" => "\xC4\x8C".b.freeze,
  "Ccedil" => "\xC3\x87".b.freeze,
  "Ccirc" => "\xC4\x88".b.freeze,
  "Cconint" => "\xE2\x88\xB0".b.freeze,
  "Cdot" => "\xC4\x8A".b.freeze,
  "Cedilla" => "\xC2\xB8".b.freeze,
  "CenterDot" => "\xC2\xB7".b.freeze,
  "Cfr" => "\xE2\x84\xAD".b.freeze,
  "Chi" => "\xCE\xA7".b.freeze,
  "CircleDot" => "\xE2\x8A\x99".b.freeze,
  "CircleMinus" => "\xE2\x8A\x96".b.freeze,
  "CirclePlus" => "\xE2\x8A\x95".b.freeze,
  "CircleTimes" => "\xE2\x8A\x97".b.freeze,
  "ClockwiseContourIntegral" => "\xE2\x88\xB2".b.freeze,
  "CloseCurlyDoubleQuote" => "\xE2\x80\x9D".b.freeze,
  "CloseCurlyQuote" => "\xE2\x80\x99".b.freeze,
  "Colon" => "\xE2\x88\xB7".b.freeze,
  "Colone" => "\xE2\xA9\xB4".b.freeze,
  "Congruent" => "\xE2\x89\xA1".b.freeze,
  "Conint" => "\xE2\x88\xAF".b.freeze,
  "ContourIntegral" => "\xE2\x88\xAE".b.freeze,
  "Copf" => "\xE2\x84\x82".b.freeze,
  "Coproduct" => "\xE2\x88\x90".b.freeze,
  "CounterClockwiseContourIntegral" => "\xE2\x88\xB3".b.freeze,
  "Cross" => "\xE2\xA8\xAF".b.freeze,
  "Cscr" => "\xF0\x9D\x92\x9E".b.freeze,
  "Cup" => "\xE2\x8B\x93".b.freeze,
  "CupCap" => "\xE2\x89\x8D".b.freeze,
  "DD" => "\xE2\x85\x85".b.freeze,
  "DDotrahd" => "\xE2\xA4\x91".b.freeze,
  "DJcy" => "\xD0\x82".b.freeze,
  "DScy" => "\xD0\x85".b.freeze,
  "DZcy" => "\xD0\x8F".b.freeze,
  "Dagger" => "\xE2\x80\xA1".b.freeze,
  "Darr" => "\xE2\x86\xA1".b.freeze,
  "Dashv" => "\xE2\xAB\xA4".b.freeze,
  "Dcaron" => "\xC4\x8E".b.freeze,
  "Dcy" => "\xD0\x94".b.freeze,
  "Del" => "\xE2\x88\x87".b.freeze,
  "Delta" => "\xCE\x94".b.freeze,
  "Dfr" => "\xF0\x9D\x94\x87".b.freeze,
  "DiacriticalAcute" => "\xC2\xB4".b.freeze,
  "DiacriticalDot" => "\xCB\x99".b.freeze,
  "DiacriticalDoubleAcute" => "\xCB\x9D".b.freeze,
  "DiacriticalGrave" => "\x60".b.freeze,
  "DiacriticalTilde" => "\xCB\x9C".b.freeze,
  "Diamond" => "\xE2\x8B\x84".b.freeze,
  "DifferentialD" => "\xE2\x85\x86".b.freeze,
  "Dopf" => "\xF0\x9D\x94\xBB".b.freeze,
  "Dot" => "\xC2\xA8".b.freeze,
  "DotDot" => "\xE2\x83\x9C".b.freeze,
  "DotEqual" => "\xE2\x89\x90".b.freeze,
  "DoubleContourIntegral" => "\xE2\x88\xAF".b.freeze,
  "DoubleDot" => "\xC2\xA8".b.freeze,
  "DoubleDownArrow" => "\xE2\x87\x93".b.freeze,
  "DoubleLeftArrow" => "\xE2\x87\x90".b.freeze,
  "DoubleLeftRightArrow" => "\xE2\x87\x94".b.freeze,
  "DoubleLeftTee" => "\xE2\xAB\xA4".b.freeze,
  "DoubleLongLeftArrow" => "\xE2\x9F\xB8".b.freeze,
  "DoubleLongLeftRightArrow" => "\xE2\x9F\xBA".b.freeze,
  "DoubleLongRightArrow" => "\xE2\x9F\xB9".b.freeze,
  "DoubleRightArrow" => "\xE2\x87\x92".b.freeze,
  "DoubleRightTee" => "\xE2\x8A\xA8".b.freeze,
  "DoubleUpArrow" => "\xE2\x87\x91".b.freeze,
  "DoubleUpDownArrow" => "\xE2\x87\x95".b.freeze,
  "DoubleVerticalBar" => "\xE2\x88\xA5".b.freeze,
  "DownArrow" => "\xE2\x86\x93".b.freeze,
  "DownArrowBar" => "\xE2\xA4\x93".b.freeze,
  "DownArrowUpArrow" => "\xE2\x87\xB5".b.freeze,
  "DownBreve" => "\xCC\x91".b.freeze,
  "DownLeftRightVector" => "\xE2\xA5\x90".b.freeze,
  "DownLeftTeeVector" => "\xE2\xA5\x9E".b.freeze,
  "DownLeftVector" => "\xE2\x86\xBD".b.freeze,
  "DownLeftVectorBar" => "\xE2\xA5\x96".b.freeze,
  "DownRightTeeVector" => "\xE2\xA5\x9F".b.freeze,
  "DownRightVector" => "\xE2\x87\x81".b.freeze,
  "DownRightVectorBar" => "\xE2\xA5\x97".b.freeze,
  "DownTee" => "\xE2\x8A\xA4".b.freeze,
  "DownTeeArrow" => "\xE2\x86\xA7".b.freeze,
  "Downarrow" => "\xE2\x87\x93".b.freeze,
  "Dscr" => "\xF0\x9D\x92\x9F".b.freeze,
  "Dstrok" => "\xC4\x90".b.freeze,
  "ENG" => "\xC5\x8A".b.freeze,
  "ETH" => "\xC3\x90".b.freeze,
  "Eacute" => "\xC3\x89".b.freeze,
  "Ecaron" => "\xC4\x9A".b.freeze,
  "Ecirc" => "\xC3\x8A".b.freeze,
  "Ecy" => "\xD0\xAD".b.freeze,
  "Edot" => "\xC4\x96".b.freeze,
  "Efr" => "\xF0\x9D\x94\x88".b.freeze,
  "Egrave" => "\xC3\x88".b.freeze,
  "Element" => "\xE2\x88\x88".b.freeze,
  "Emacr" => "\xC4\x92".b.freeze,
  "EmptySmallSquare" => "\xE2\x97\xBB".b.freeze,
  "EmptyVerySmallSquare" => "\xE2\x96\xAB".b.freeze,
  "Eogon" => "\xC4\x98".b.freeze,
  "Eopf" => "\xF0\x9D\x94\xBC".b.freeze,
  "Epsilon" => "\xCE\x95".b.freeze,
  "Equal" => "\xE2\xA9\xB5".b.freeze,
  "EqualTilde" => "\xE2\x89\x82".b.freeze,
  "Equilibrium" => "\xE2\x87\x8C".b.freeze,
  "Escr" => "\xE2\x84\xB0".b.freeze,
  "Esim" => "\xE2\xA9\xB3".b.freeze,
  "Eta" => "\xCE\x97".b.freeze,
  "Euml" => "\xC3\x8B".b.freeze,
  "Exists" => "\xE2\x88\x83".b.freeze,
  "ExponentialE" => "\xE2\x85\x87".b.freeze,
  "Fcy" => "\xD0\xA4".b.freeze,
  "Ffr" => "\xF0\x9D\x94\x89".b.freeze,
  "FilledSmallSquare" => "\xE2\x97\xBC".b.freeze,
  "FilledVerySmallSquare" => "\xE2\x96\xAA".b.freeze,
  "Fopf" => "\xF0\x9D\x94\xBD".b.freeze,
  "ForAll" => "\xE2\x88\x80".b.freeze,
  "Fouriertrf" => "\xE2\x84\xB1".b.freeze,
  "Fscr" => "\xE2\x84\xB1".b.freeze,
  "GJcy" => "\xD0\x83".b.freeze,
  "GT" => "\x3E".b.freeze,
  "Gamma" => "\xCE\x93".b.freeze,
  "Gammad" => "\xCF\x9C".b.freeze,
  "Gbreve" => "\xC4\x9E".b.freeze,
  "Gcedil" => "\xC4\xA2".b.freeze,
  "Gcirc" => "\xC4\x9C".b.freeze,
  "Gcy" => "\xD0\x93".b.freeze,
  "Gdot" => "\xC4\xA0".b.freeze,
  "Gfr" => "\xF0\x9D\x94\x8A".b.freeze,
  "Gg" => "\xE2\x8B\x99".b.freeze,
  "Gopf" => "\xF0\x9D\x94\xBE".b.freeze,
  "GreaterEqual" => "\xE2\x89\xA5".b.freeze,
  "GreaterEqualLess" => "\xE2\x8B\x9B".b.freeze,
  "GreaterFullEqual" => "\xE2\x89\xA7".b.freeze,
  "GreaterGreater" => "\xE2\xAA\xA2".b.freeze,
  "GreaterLess" => "\xE2\x89\xB7".b.freeze,
  "GreaterSlantEqual" => "\xE2\xA9\xBE".b.freeze,
  "GreaterTilde" => "\xE2\x89\xB3".b.freeze,
  "Gscr" => "\xF0\x9D\x92\xA2".b.freeze,
  "Gt" => "\xE2\x89\xAB".b.freeze,
  "HARDcy" => "\xD0\xAA".b.freeze,
  "Hacek" => "\xCB\x87".b.freeze,
  "Hat" => "\x5E".b.freeze,
  "Hcirc" => "\xC4\xA4".b.freeze,
  "Hfr" => "\xE2\x84\x8C".b.freeze,
  "HilbertSpace" => "\xE2\x84\x8B".b.freeze,
  "Hopf" => "\xE2\x84\x8D".b.freeze,
  "HorizontalLine" => "\xE2\x94\x80".b.freeze,
  "Hscr" => "\xE2\x84\x8B".b.freeze,
  "Hstrok" => "\xC4\xA6".b.freeze,
  "HumpDownHump" => "\xE2\x89\x8E".b.freeze,
  "HumpEqual" => "\xE2\x89\x8F".b.freeze,
  "IEcy" => "\xD0\x95".b.freeze,
  "IJlig" => "\xC4\xB2".b.freeze,
  "IOcy" => "\xD0\x81".b.freeze,
  "Iacute" => "\xC3\x8D".b.freeze,
  "Icirc" => "\xC3\x8E".b.freeze,
  "Icy" => "\xD0\x98".b.freeze,
  "Idot" => "\xC4\xB0".b.freeze,
  "Ifr" => "\xE2\x84\x91".b.freeze,
  "Igrave" => "\xC3\x8C".b.freeze,
  "Im" => "\xE2\x84\x91".b.freeze,
  "Imacr" => "\xC4\xAA".b.freeze,
  "ImaginaryI" => "\xE2\x85\x88".b.freeze,
  "Implies" => "\xE2\x87\x92".b.freeze,
  "Int" => "\xE2\x88\xAC".b.freeze,
  "Integral" => "\xE2\x88\xAB".b.freeze,
  "Intersection" => "\xE2\x8B\x82".b.freeze,
  "InvisibleComma" => "\xE2\x81\xA3".b.freeze,
  "InvisibleTimes" => "\xE2\x81\xA2".b.freeze,
  "Iogon" => "\xC4\xAE".b.freeze,
  "Iopf" => "\xF0\x9D\x95\x80".b.freeze,
  "Iota" => "\xCE\x99".b.freeze,
  "Iscr" => "\xE2\x84\x90".b.freeze,
  "Itilde" => "\xC4\xA8".b.freeze,
  "Iukcy" => "\xD0\x86".b.freeze,
  "Iuml" => "\xC3\x8F".b.freeze,
  "Jcirc" => "\xC4\xB4".b.freeze,
  "Jcy" => "\xD0\x99".b.freeze,
  "Jfr" => "\xF0\x9D\x94\x8D".b.freeze,
  "Jopf" => "\xF0\x9D\x95\x81".b.freeze,
  "Jscr" => "\xF0\x9D\x92\xA5".b.freeze,
  "Jsercy" => "\xD0\x88".b.freeze,
  "Jukcy" => "\xD0\x84".b.freeze,
  "KHcy" => "\xD0\xA5".b.freeze,
  "KJcy" => "\xD0\x8C".b.freeze,
  "Kappa" => "\xCE\x9A".b.freeze,
  "Kcedil" => "\xC4\xB6".b.freeze,
  "Kcy" => "\xD0\x9A".b.freeze,
  "Kfr" => "\xF0\x9D\x94\x8E".b.freeze,
  "Kopf" => "\xF0\x9D\x95\x82".b.freeze,
  "Kscr" => "\xF0\x9D\x92\xA6".b.freeze,
  "LJcy" => "\xD0\x89".b.freeze,
  "LT" => "\x3C".b.freeze,
  "Lacute" => "\xC4\xB9".b.freeze,
  "Lambda" => "\xCE\x9B".b.freeze,
  "Lang" => "\xE2\x9F\xAA".b.freeze,
  "Laplacetrf" => "\xE2\x84\x92".b.freeze,
  "Larr" => "\xE2\x86\x9E".b.freeze,
  "Lcaron" => "\xC4\xBD".b.freeze,
  "Lcedil" => "\xC4\xBB".b.freeze,
  "Lcy" => "\xD0\x9B".b.freeze,
  "LeftAngleBracket" => "\xE2\x9F\xA8".b.freeze,
  "LeftArrow" => "\xE2\x86\x90".b.freeze,
  "LeftArrowBar" => "\xE2\x87\xA4".b.freeze,
  "LeftArrowRightArrow" => "\xE2\x87\x86".b.freeze,
  "LeftCeiling" => "\xE2\x8C\x88".b.freeze,
  "LeftDoubleBracket" => "\xE2\x9F\xA6".b.freeze,
  "LeftDownTeeVector" => "\xE2\xA5\xA1".b.freeze,
  "LeftDownVector" => "\xE2\x87\x83".b.freeze,
  "LeftDownVectorBar" => "\xE2\xA5\x99".b.freeze,
  "LeftFloor" => "\xE2\x8C\x8A".b.freeze,
  "LeftRightArrow" => "\xE2\x86\x94".b.freeze,
  "LeftRightVector" => "\xE2\xA5\x8E".b.freeze,
  "LeftTee" => "\xE2\x8A\xA3".b.freeze,
  "LeftTeeArrow" => "\xE2\x86\xA4".b.freeze,
  "LeftTeeVector" => "\xE2\xA5\x9A".b.freeze,
  "LeftTriangle" => "\xE2\x8A\xB2".b.freeze,
  "LeftTriangleBar" => "\xE2\xA7\x8F".b.freeze,
  "LeftTriangleEqual" => "\xE2\x8A\xB4".b.freeze,
  "LeftUpDownVector" => "\xE2\xA5\x91".b.freeze,
  "LeftUpTeeVector" => "\xE2\xA5\xA0".b.freeze,
  "LeftUpVector" => "\xE2\x86\xBF".b.freeze,
  "LeftUpVectorBar" => "\xE2\xA5\x98".b.freeze,
  "LeftVector" => "\xE2\x86\xBC".b.freeze,
  "LeftVectorBar" => "\xE2\xA5\x92".b.freeze,
  "Leftarrow" => "\xE2\x87\x90".b.freeze,
  "Leftrightarrow" => "\xE2\x87\x94".b.freeze,
  "LessEqualGreater" => "\xE2\x8B\x9A".b.freeze,
  "LessFullEqual" => "\xE2\x89\xA6".b.freeze,
  "LessGreater" => "\xE2\x89\xB6".b.freeze,
  "LessLess" => "\xE2\xAA\xA1".b.freeze,
  "LessSlantEqual" => "\xE2\xA9\xBD".b.freeze,
  "LessTilde" => "\xE2\x89\xB2".b.freeze,
  "Lfr" => "\xF0\x9D\x94\x8F".b.freeze,
  "Ll" => "\xE2\x8B\x98".b.freeze,
  "Lleftarrow" => "\xE2\x87\x9A".b.freeze,
  "Lmidot" => "\xC4\xBF".b.freeze,
  "LongLeftArrow" => "\xE2\x9F\xB5".b.freeze,
  "LongLeftRightArrow" => "\xE2\x9F\xB7".b.freeze,
  "LongRightArrow" => "\xE2\x9F\xB6".b.freeze,
  "Longleftarrow" => "\xE2\x9F\xB8".b.freeze,
  "Longleftrightarrow" => "\xE2\x9F\xBA".b.freeze,
  "Longrightarrow" => "\xE2\x9F\xB9".b.freeze,
  "Lopf" => "\xF0\x9D\x95\x83".b.freeze,
  "LowerLeftArrow" => "\xE2\x86\x99".b.freeze,
  "LowerRightArrow" => "\xE2\x86\x98".b.freeze,
  "Lscr" => "\xE2\x84\x92".b.freeze,
  "Lsh" => "\xE2\x86\xB0".b.freeze,
  "Lstrok" => "\xC5\x81".b.freeze,
  "Lt" => "\xE2\x89\xAA".b.freeze,
  "Map" => "\xE2\xA4\x85".b.freeze,
  "Mcy" => "\xD0\x9C".b.freeze,
  "MediumSpace" => "\xE2\x81\x9F".b.freeze,
  "Mellintrf" => "\xE2\x84\xB3".b.freeze,
  "Mfr" => "\xF0\x9D\x94\x90".b.freeze,
  "MinusPlus" => "\xE2\x88\x93".b.freeze,
  "Mopf" => "\xF0\x9D\x95\x84".b.freeze,
  "Mscr" => "\xE2\x84\xB3".b.freeze,
  "Mu" => "\xCE\x9C".b.freeze,
  "NJcy" => "\xD0\x8A".b.freeze,
  "Nacute" => "\xC5\x83".b.freeze,
  "Ncaron" => "\xC5\x87".b.freeze,
  "Ncedil" => "\xC5\x85".b.freeze,
  "Ncy" => "\xD0\x9D".b.freeze,
  "NegativeMediumSpace" => "\xE2\x80\x8B".b.freeze,
  "NegativeThickSpace" => "\xE2\x80\x8B".b.freeze,
  "NegativeThinSpace" => "\xE2\x80\x8B".b.freeze,
  "NegativeVeryThinSpace" => "\xE2\x80\x8B".b.freeze,
  "NestedGreaterGreater" => "\xE2\x89\xAB".b.freeze,
  "NestedLessLess" => "\xE2\x89\xAA".b.freeze,
  "NewLine" => "\x0A".b.freeze,
  "Nfr" => "\xF0\x9D\x94\x91".b.freeze,
  "NoBreak" => "\xE2\x81\xA0".b.freeze,
  "NonBreakingSpace" => "\xC2\xA0".b.freeze,
  "Nopf" => "\xE2\x84\x95".b.freeze,
  "Not" => "\xE2\xAB\xAC".b.freeze,
  "NotCongruent" => "\xE2\x89\xA2".b.freeze,
  "NotCupCap" => "\xE2\x89\xAD".b.freeze,
  "NotDoubleVerticalBar" => "\xE2\x88\xA6".b.freeze,
  "NotElement" => "\xE2\x88\x89".b.freeze,
  "NotEqual" => "\xE2\x89\xA0".b.freeze,
  "NotEqualTilde" => "\xE2\x89\x82\xCC\xB8".b.freeze,
  "NotExists" => "\xE2\x88\x84".b.freeze,
  "NotGreater" => "\xE2\x89\xAF".b.freeze,
  "NotGreaterEqual" => "\xE2\x89\xB1".b.freeze,
  "NotGreaterFullEqual" => "\xE2\x89\xA7\xCC\xB8".b.freeze,
  "NotGreaterGreater" => "\xE2\x89\xAB\xCC\xB8".b.freeze,
  "NotGreaterLess" => "\xE2\x89\xB9".b.freeze,
  "NotGreaterSlantEqual" => "\xE2\xA9\xBE\xCC\xB8".b.freeze,
  "NotGreaterTilde" => "\xE2\x89\xB5".b.freeze,
  "NotHumpDownHump" => "\xE2\x89\x8E\xCC\xB8".b.freeze,
  "NotHumpEqual" => "\xE2\x89\x8F\xCC\xB8".b.freeze,
  "NotLeftTriangle" => "\xE2\x8B\xAA".b.freeze,
  "NotLeftTriangleBar" => "\xE2\xA7\x8F\xCC\xB8".b.freeze,
  "NotLeftTriangleEqual" => "\xE2\x8B\xAC".b.freeze,
  "NotLess" => "\xE2\x89\xAE".b.freeze,
  "NotLessEqual" => "\xE2\x89\xB0".b.freeze,
  "NotLessGreater" => "\xE2\x89\xB8".b.freeze,
  "NotLessLess" => "\xE2\x89\xAA\xCC\xB8".b.freeze,
  "NotLessSlantEqual" => "\xE2\xA9\xBD\xCC\xB8".b.freeze,
  "NotLessTilde" => "\xE2\x89\xB4".b.freeze,
  "NotNestedGreaterGreater" => "\xE2\xAA\xA2\xCC\xB8".b.freeze,
  "NotNestedLessLess" => "\xE2\xAA\xA1\xCC\xB8".b.freeze,
  "NotPrecedes" => "\xE2\x8A\x80".b.freeze,
  "NotPrecedesEqual" => "\xE2\xAA\xAF\xCC\xB8".b.freeze,
  "NotPrecedesSlantEqual" => "\xE2\x8B\xA0".b.freeze,
  "NotReverseElement" => "\xE2\x88\x8C".b.freeze,
  "NotRightTriangle" => "\xE2\x8B\xAB".b.freeze,
  "NotRightTriangleBar" => "\xE2\xA7\x90\xCC\xB8".b.freeze,
  "NotRightTriangleEqual" => "\xE2\x8B\xAD".b.freeze,
  "NotSquareSubset" => "\xE2\x8A\x8F\xCC\xB8".b.freeze,
  "NotSquareSubsetEqual" => "\xE2\x8B\xA2".b.freeze,
  "NotSquareSuperset" => "\xE2\x8A\x90\xCC\xB8".b.freeze,
  "NotSquareSupersetEqual" => "\xE2\x8B\xA3".b.freeze,
  "NotSubset" => "\xE2\x8A\x82\xE2\x83\x92".b.freeze,
  "NotSubsetEqual" => "\xE2\x8A\x88".b.freeze,
  "NotSucceeds" => "\xE2\x8A\x81".b.freeze,
  "NotSucceedsEqual" => "\xE2\xAA\xB0\xCC\xB8".b.freeze,
  "NotSucceedsSlantEqual" => "\xE2\x8B\xA1".b.freeze,
  "NotSucceedsTilde" => "\xE2\x89\xBF\xCC\xB8".b.freeze,
  "NotSuperset" => "\xE2\x8A\x83\xE2\x83\x92".b.freeze,
  "NotSupersetEqual" => "\xE2\x8A\x89".b.freeze,
  "NotTilde" => "\xE2\x89\x81".b.freeze,
  "NotTildeEqual" => "\xE2\x89\x84".b.freeze,
  "NotTildeFullEqual" => "\xE2\x89\x87".b.freeze,
  "NotTildeTilde" => "\xE2\x89\x89".b.freeze,
  "NotVerticalBar" => "\xE2\x88\xA4".b.freeze,
  "Nscr" => "\xF0\x9D\x92\xA9".b.freeze,
  "Ntilde" => "\xC3\x91".b.freeze,
  "Nu" => "\xCE\x9D".b.freeze,
  "OElig" => "\xC5\x92".b.freeze,
  "Oacute" => "\xC3\x93".b.freeze,
  "Ocirc" => "\xC3\x94".b.freeze,
  "Ocy" => "\xD0\x9E".b.freeze,
  "Odblac" => "\xC5\x90".b.freeze,
  "Ofr" => "\xF0\x9D\x94\x92".b.freeze,
  "Ograve" => "\xC3\x92".b.freeze,
  "Omacr" => "\xC5\x8C".b.freeze,
  "Omega" => "\xCE\xA9".b.freeze,
  "Omicron" => "\xCE\x9F".b.freeze,
  "Oopf" => "\xF0\x9D\x95\x86".b.freeze,
  "OpenCurlyDoubleQuote" => "\xE2\x80\x9C".b.freeze,
  "OpenCurlyQuote" => "\xE2\x80\x98".b.freeze,
  "Or" => "\xE2\xA9\x94".b.freeze,
  "Oscr" => "\xF0\x9D\x92\xAA".b.freeze,
  "Oslash" => "\xC3\x98".b.freeze,
  "Otilde" => "\xC3\x95".b.freeze,
  "Otimes" => "\xE2\xA8\xB7".b.freeze,
  "Ouml" => "\xC3\x96".b.freeze,
  "OverBar" => "\xE2\x80\xBE".b.freeze,
  "OverBrace" => "\xE2\x8F\x9E".b.freeze,
  "OverBracket" => "\xE2\x8E\xB4".b.freeze,
  "OverParenthesis" => "\xE2\x8F\x9C".b.freeze,
  "PartialD" => "\xE2\x88\x82".b.freeze,
  "Pcy" => "\xD0\x9F".b.freeze,
  "Pfr" => "\xF0\x9D\x94\x93".b.freeze,
  "Phi" => "\xCE\xA6".b.freeze,
  "Pi" => "\xCE\xA0".b.freeze,
  "PlusMinus" => "\xC2\xB1".b.freeze,
  "Poincareplane" => "\xE2\x84\x8C".b.freeze,
  "Popf" => "\xE2\x84\x99".b.freeze,
  "Pr" => "\xE2\xAA\xBB".b.freeze,
  "Precedes" => "\xE2\x89\xBA".b.freeze,
  "PrecedesEqual" => "\xE2\xAA\xAF".b.freeze,
  "PrecedesSlantEqual" => "\xE2\x89\xBC".b.freeze,
  "PrecedesTilde" => "\xE2\x89\xBE".b.freeze,
  "Prime" => "\xE2\x80\xB3".b.freeze,
  "Product" => "\xE2\x88\x8F".b.freeze,
  "Proportion" => "\xE2\x88\xB7".b.freeze,
  "Proportional" => "\xE2\x88\x9D".b.freeze,
  "Pscr" => "\xF0\x9D\x92\xAB".b.freeze,
  "Psi" => "\xCE\xA8".b.freeze,
  "QUOT" => "\x22".b.freeze,
  "Qfr" => "\xF0\x9D\x94\x94".b.freeze,
  "Qopf" => "\xE2\x84\x9A".b.freeze,
  "Qscr" => "\xF0\x9D\x92\xAC".b.freeze,
  "RBarr" => "\xE2\xA4\x90".b.freeze,
  "REG" => "\xC2\xAE".b.freeze,
  "Racute" => "\xC5\x94".b.freeze,
  "Rang" => "\xE2\x9F\xAB".b.freeze,
  "Rarr" => "\xE2\x86\xA0".b.freeze,
  "Rarrtl" => "\xE2\xA4\x96".b.freeze,
  "Rcaron" => "\xC5\x98".b.freeze,
  "Rcedil" => "\xC5\x96".b.freeze,
  "Rcy" => "\xD0\xA0".b.freeze,
  "Re" => "\xE2\x84\x9C".b.freeze,
  "ReverseElement" => "\xE2\x88\x8B".b.freeze,
  "ReverseEquilibrium" => "\xE2\x87\x8B".b.freeze,
  "ReverseUpEquilibrium" => "\xE2\xA5\xAF".b.freeze,
  "Rfr" => "\xE2\x84\x9C".b.freeze,
  "Rho" => "\xCE\xA1".b.freeze,
  "RightAngleBracket" => "\xE2\x9F\xA9".b.freeze,
  "RightArrow" => "\xE2\x86\x92".b.freeze,
  "RightArrowBar" => "\xE2\x87\xA5".b.freeze,
  "RightArrowLeftArrow" => "\xE2\x87\x84".b.freeze,
  "RightCeiling" => "\xE2\x8C\x89".b.freeze,
  "RightDoubleBracket" => "\xE2\x9F\xA7".b.freeze,
  "RightDownTeeVector" => "\xE2\xA5\x9D".b.freeze,
  "RightDownVector" => "\xE2\x87\x82".b.freeze,
  "RightDownVectorBar" => "\xE2\xA5\x95".b.freeze,
  "RightFloor" => "\xE2\x8C\x8B".b.freeze,
  "RightTee" => "\xE2\x8A\xA2".b.freeze,
  "RightTeeArrow" => "\xE2\x86\xA6".b.freeze,
  "RightTeeVector" => "\xE2\xA5\x9B".b.freeze,
  "RightTriangle" => "\xE2\x8A\xB3".b.freeze,
  "RightTriangleBar" => "\xE2\xA7\x90".b.freeze,
  "RightTriangleEqual" => "\xE2\x8A\xB5".b.freeze,
  "RightUpDownVector" => "\xE2\xA5\x8F".b.freeze,
  "RightUpTeeVector" => "\xE2\xA5\x9C".b.freeze,
  "RightUpVector" => "\xE2\x86\xBE".b.freeze,
  "RightUpVectorBar" => "\xE2\xA5\x94".b.freeze,
  "RightVector" => "\xE2\x87\x80".b.freeze,
  "RightVectorBar" => "\xE2\xA5\x93".b.freeze,
  "Rightarrow" => "\xE2\x87\x92".b.freeze,
  "Ropf" => "\xE2\x84\x9D".b.freeze,
  "RoundImplies" => "\xE2\xA5\xB0".b.freeze,
  "Rrightarrow" => "\xE2\x87\x9B".b.freeze,
  "Rscr" => "\xE2\x84\x9B".b.freeze,
  "Rsh" => "\xE2\x86\xB1".b.freeze,
  "RuleDelayed" => "\xE2\xA7\xB4".b.freeze,
  "SHCHcy" => "\xD0\xA9".b.freeze,
  "SHcy" => "\xD0\xA8".b.freeze,
  "SOFTcy" => "\xD0\xAC".b.freeze,
  "Sacute" => "\xC5\x9A".b.freeze,
  "Sc" => "\xE2\xAA\xBC".b.freeze,
  "Scaron" => "\xC5\xA0".b.freeze,
  "Scedil" => "\xC5\x9E".b.freeze,
  "Scirc" => "\xC5\x9C".b.freeze,
  "Scy" => "\xD0\xA1".b.freeze,
  "Sfr" => "\xF0\x9D\x94\x96".b.freeze,
  "ShortDownArrow" => "\xE2\x86\x93".b.freeze,
  "ShortLeftArrow" => "\xE2\x86\x90".b.freeze,
  "ShortRightArrow" => "\xE2\x86\x92".b.freeze,
  "ShortUpArrow" => "\xE2\x86\x91".b.freeze,
  "Sigma" => "\xCE\xA3".b.freeze,
  "SmallCircle" => "\xE2\x88\x98".b.freeze,
  "Sopf" => "\xF0\x9D\x95\x8A".b.freeze,
  "Sqrt" => "\xE2\x88\x9A".b.freeze,
  "Square" => "\xE2\x96\xA1".b.freeze,
  "SquareIntersection" => "\xE2\x8A\x93".b.freeze,
  "SquareSubset" => "\xE2\x8A\x8F".b.freeze,
  "SquareSubsetEqual" => "\xE2\x8A\x91".b.freeze,
  "SquareSuperset" => "\xE2\x8A\x90".b.freeze,
  "SquareSupersetEqual" => "\xE2\x8A\x92".b.freeze,
  "SquareUnion" => "\xE2\x8A\x94".b.freeze,
  "Sscr" => "\xF0\x9D\x92\xAE".b.freeze,
  "Star" => "\xE2\x8B\x86".b.freeze,
  "Sub" => "\xE2\x8B\x90".b.freeze,
  "Subset" => "\xE2\x8B\x90".b.freeze,
  "SubsetEqual" => "\xE2\x8A\x86".b.freeze,
  "Succeeds" => "\xE2\x89\xBB".b.freeze,
  "SucceedsEqual" => "\xE2\xAA\xB0".b.freeze,
  "SucceedsSlantEqual" => "\xE2\x89\xBD".b.freeze,
  "SucceedsTilde" => "\xE2\x89\xBF".b.freeze,
  "SuchThat" => "\xE2\x88\x8B".b.freeze,
  "Sum" => "\xE2\x88\x91".b.freeze,
  "Sup" => "\xE2\x8B\x91".b.freeze,
  "Superset" => "\xE2\x8A\x83".b.freeze,
  "SupersetEqual" => "\xE2\x8A\x87".b.freeze,
  "Supset" => "\xE2\x8B\x91".b.freeze,
  "THORN" => "\xC3\x9E".b.freeze,
  "TRADE" => "\xE2\x84\xA2".b.freeze,
  "TSHcy" => "\xD0\x8B".b.freeze,
  "TScy" => "\xD0\xA6".b.freeze,
  "Tab" => "\x09".b.freeze,
  "Tau" => "\xCE\xA4".b.freeze,
  "Tcaron" => "\xC5\xA4".b.freeze,
  "Tcedil" => "\xC5\xA2".b.freeze,
  "Tcy" => "\xD0\xA2".b.freeze,
  "Tfr" => "\xF0\x9D\x94\x97".b.freeze,
  "Therefore" => "\xE2\x88\xB4".b.freeze,
  "Theta" => "\xCE\x98".b.freeze,
  "ThickSpace" => "\xE2\x81\x9F\xE2\x80\x8A".b.freeze,
  "ThinSpace" => "\xE2\x80\x89".b.freeze,
  "Tilde" => "\xE2\x88\xBC".b.freeze,
  "TildeEqual" => "\xE2\x89\x83".b.freeze,
  "TildeFullEqual" => "\xE2\x89\x85".b.freeze,
  "TildeTilde" => "\xE2\x89\x88".b.freeze,
  "Topf" => "\xF0\x9D\x95\x8B".b.freeze,
  "TripleDot" => "\xE2\x83\x9B".b.freeze,
  "Tscr" => "\xF0\x9D\x92\xAF".b.freeze,
  "Tstrok" => "\xC5\xA6".b.freeze,
  "Uacute" => "\xC3\x9A".b.freeze,
  "Uarr" => "\xE2\x86\x9F".b.freeze,
  "Uarrocir" => "\xE2\xA5\x89".b.freeze,
  "Ubrcy" => "\xD0\x8E".b.freeze,
  "Ubreve" => "\xC5\xAC".b.freeze,
  "Ucirc" => "\xC3\x9B".b.freeze,
  "Ucy" => "\xD0\xA3".b.freeze,
  "Udblac" => "\xC5\xB0".b.freeze,
  "Ufr" => "\xF0\x9D\x94\x98".b.freeze,
  "Ugrave" => "\xC3\x99".b.freeze,
  "Umacr" => "\xC5\xAA".b.freeze,
  "UnderBar" => "\x5F".b.freeze,
  "UnderBrace" => "\xE2\x8F\x9F".b.freeze,
  "UnderBracket" => "\xE2\x8E\xB5".b.freeze,
  "UnderParenthesis" => "\xE2\x8F\x9D".b.freeze,
  "Union" => "\xE2\x8B\x83".b.freeze,
  "UnionPlus" => "\xE2\x8A\x8E".b.freeze,
  "Uogon" => "\xC5\xB2".b.freeze,
  "Uopf" => "\xF0\x9D\x95\x8C".b.freeze,
  "UpArrow" => "\xE2\x86\x91".b.freeze,
  "UpArrowBar" => "\xE2\xA4\x92".b.freeze,
  "UpArrowDownArrow" => "\xE2\x87\x85".b.freeze,
  "UpDownArrow" => "\xE2\x86\x95".b.freeze,
  "UpEquilibrium" => "\xE2\xA5\xAE".b.freeze,
  "UpTee" => "\xE2\x8A\xA5".b.freeze,
  "UpTeeArrow" => "\xE2\x86\xA5".b.freeze,
  "Uparrow" => "\xE2\x87\x91".b.freeze,
  "Updownarrow" => "\xE2\x87\x95".b.freeze,
  "UpperLeftArrow" => "\xE2\x86\x96".b.freeze,
  "UpperRightArrow" => "\xE2\x86\x97".b.freeze,
  "Upsi" => "\xCF\x92".b.freeze,
  "Upsilon" => "\xCE\xA5".b.freeze,
  "Uring" => "\xC5\xAE".b.freeze,
  "Uscr" => "\xF0\x9D\x92\xB0".b.freeze,
  "Utilde" => "\xC5\xA8".b.freeze,
  "Uuml" => "\xC3\x9C".b.freeze,
  "VDash" => "\xE2\x8A\xAB".b.freeze,
  "Vbar" => "\xE2\xAB\xAB".b.freeze,
  "Vcy" => "\xD0\x92".b.freeze,
  "Vdash" => "\xE2\x8A\xA9".b.freeze,
  "Vdashl" => "\xE2\xAB\xA6".b.freeze,
  "Vee" => "\xE2\x8B\x81".b.freeze,
  "Verbar" => "\xE2\x80\x96".b.freeze,
  "Vert" => "\xE2\x80\x96".b.freeze,
  "VerticalBar" => "\xE2\x88\xA3".b.freeze,
  "VerticalLine" => "\x7C".b.freeze,
  "VerticalSeparator" => "\xE2\x9D\x98".b.freeze,
  "VerticalTilde" => "\xE2\x89\x80".b.freeze,
  "VeryThinSpace" => "\xE2\x80\x8A".b.freeze,
  "Vfr" => "\xF0\x9D\x94\x99".b.freeze,
  "Vopf" => "\xF0\x9D\x95\x8D".b.freeze,
  "Vscr" => "\xF0\x9D\x92\xB1".b.freeze,
  "Vvdash" => "\xE2\x8A\xAA".b.freeze,
  "Wcirc" => "\xC5\xB4".b.freeze,
  "Wedge" => "\xE2\x8B\x80".b.freeze,
  "Wfr" => "\xF0\x9D\x94\x9A".b.freeze,
  "Wopf" => "\xF0\x9D\x95\x8E".b.freeze,
  "Wscr" => "\xF0\x9D\x92\xB2".b.freeze,
  "Xfr" => "\xF0\x9D\x94\x9B".b.freeze,
  "Xi" => "\xCE\x9E".b.freeze,
  "Xopf" => "\xF0\x9D\x95\x8F".b.freeze,
  "Xscr" => "\xF0\x9D\x92\xB3".b.freeze,
  "YAcy" => "\xD0\xAF".b.freeze,
  "YIcy" => "\xD0\x87".b.freeze,
  "YUcy" => "\xD0\xAE".b.freeze,
  "Yacute" => "\xC3\x9D".b.freeze,
  "Ycirc" => "\xC5\xB6".b.freeze,
  "Ycy" => "\xD0\xAB".b.freeze,
  "Yfr" => "\xF0\x9D\x94\x9C".b.freeze,
  "Yopf" => "\xF0\x9D\x95\x90".b.freeze,
  "Yscr" => "\xF0\x9D\x92\xB4".b.freeze,
  "Yuml" => "\xC5\xB8".b.freeze,
  "ZHcy" => "\xD0\x96".b.freeze,
  "Zacute" => "\xC5\xB9".b.freeze,
  "Zcaron" => "\xC5\xBD".b.freeze,
  "Zcy" => "\xD0\x97".b.freeze,
  "Zdot" => "\xC5\xBB".b.freeze,
  "ZeroWidthSpace" => "\xE2\x80\x8B".b.freeze,
  "Zeta" => "\xCE\x96".b.freeze,
  "Zfr" => "\xE2\x84\xA8".b.freeze,
  "Zopf" => "\xE2\x84\xA4".b.freeze,
  "Zscr" => "\xF0\x9D\x92\xB5".b.freeze,
  "aacute" => "\xC3\xA1".b.freeze,
  "abreve" => "\xC4\x83".b.freeze,
  "ac" => "\xE2\x88\xBE".b.freeze,
  "acE" => "\xE2\x88\xBE\xCC\xB3".b.freeze,
  "acd" => "\xE2\x88\xBF".b.freeze,
  "acirc" => "\xC3\xA2".b.freeze,
  "acute" => "\xC2\xB4".b.freeze,
  "acy" => "\xD0\xB0".b.freeze,
  "aelig" => "\xC3\xA6".b.freeze,
  "af" => "\xE2\x81\xA1".b.freeze,
  "afr" => "\xF0\x9D\x94\x9E".b.freeze,
  "agrave" => "\xC3\xA0".b.freeze,
  "alefsym" => "\xE2\x84\xB5".b.freeze,
  "aleph" => "\xE2\x84\xB5".b.freeze,
  "alpha" => "\xCE\xB1".b.freeze,
  "amacr" => "\xC4\x81".b.freeze,
  "amalg" => "\xE2\xA8\xBF".b.freeze,
  "amp" => "\x26".b.freeze,
  "and" => "\xE2\x88\xA7".b.freeze,
  "andand" => "\xE2\xA9\x95".b.freeze,
  "andd" => "\xE2\xA9\x9C".b.freeze,
  "andslope" => "\xE2\xA9\x98".b.freeze,
  "andv" => "\xE2\xA9\x9A".b.freeze,
  "ang" => "\xE2\x88\xA0".b.freeze,
  "ange" => "\xE2\xA6\xA4".b.freeze,
  "angle" => "\xE2\x88\xA0".b.freeze,
  "angmsd" => "\xE2\x88\xA1".b.freeze,
  "angmsdaa" => "\xE2\xA6\xA8".b.freeze,
  "angmsdab" => "\xE2\xA6\xA9".b.freeze,
  "angmsdac" => "\xE2\xA6\xAA".b.freeze,
  "angmsdad" => "\xE2\xA6\xAB".b.freeze,
  "angmsdae" => "\xE2\xA6\xAC".b.freeze,
  "angmsdaf" => "\xE2\xA6\xAD".b.freeze,
  "angmsdag" => "\xE2\xA6\xAE".b.freeze,
  "angmsdah" => "\xE2\xA6\xAF".b.freeze,
  "angrt" => "\xE2\x88\x9F".b.freeze,
  "angrtvb" => "\xE2\x8A\xBE".b.freeze,
  "angrtvbd" => "\xE2\xA6\x9D".b.freeze,
  "angsph" => "\xE2\x88\xA2".b.freeze,
  "angst" => "\xC3\x85".b.freeze,
  "angzarr" => "\xE2\x8D\xBC".b.freeze,
  "aogon" => "\xC4\x85".b.freeze,
  "aopf" => "\xF0\x9D\x95\x92".b.freeze,
  "ap" => "\xE2\x89\x88".b.freeze,
  "apE" => "\xE2\xA9\xB0".b.freeze,
  "apacir" => "\xE2\xA9\xAF".b.freeze,
  "ape" => "\xE2\x89\x8A".b.freeze,
  "apid" => "\xE2\x89\x8B".b.freeze,
  "apos" => "\x27".b.freeze,
  "approx" => "\xE2\x89\x88".b.freeze,
  "approxeq" => "\xE2\x89\x8A".b.freeze,
  "aring" => "\xC3\xA5".b.freeze,
  "ascr" => "\xF0\x9D\x92\xB6".b.freeze,
  "ast" => "\x2A".b.freeze,
  "asymp" => "\xE2\x89\x88".b.freeze,
  "asympeq" => "\xE2\x89\x8D".b.freeze,
  "atilde" => "\xC3\xA3".b.freeze,
  "auml" => "\xC3\xA4".b.freeze,
  "awconint" => "\xE2\x88\xB3".b.freeze,
  "awint" => "\xE2\xA8\x91".b.freeze,
  "bNot" => "\xE2\xAB\xAD".b.freeze,
  "backcong" => "\xE2\x89\x8C".b.freeze,
  "backepsilon" => "\xCF\xB6".b.freeze,
  "backprime" => "\xE2\x80\xB5".b.freeze,
  "backsim" => "\xE2\x88\xBD".b.freeze,
  "backsimeq" => "\xE2\x8B\x8D".b.freeze,
  "barvee" => "\xE2\x8A\xBD".b.freeze,
  "barwed" => "\xE2\x8C\x85".b.freeze,
  "barwedge" => "\xE2\x8C\x85".b.freeze,
  "bbrk" => "\xE2\x8E\xB5".b.freeze,
  "bbrktbrk" => "\xE2\x8E\xB6".b.freeze,
  "bcong" => "\xE2\x89\x8C".b.freeze,
  "bcy" => "\xD0\xB1".b.freeze,
  "bdquo" => "\xE2\x80\x9E".b.freeze,
  "becaus" => "\xE2\x88\xB5".b.freeze,
  "because" => "\xE2\x88\xB5".b.freeze,
  "bemptyv" => "\xE2\xA6\xB0".b.freeze,
  "bepsi" => "\xCF\xB6".b.freeze,
  "bernou" => "\xE2\x84\xAC".b.freeze,
  "beta" => "\xCE\xB2".b.freeze,
  "beth" => "\xE2\x84\xB6".b.freeze,
  "between" => "\xE2\x89\xAC".b.freeze,
  "bfr" => "\xF0\x9D\x94\x9F".b.freeze,
  "bigcap" => "\xE2\x8B\x82".b.freeze,
  "bigcirc" => "\xE2\x97\xAF".b.freeze,
  "bigcup" => "\xE2\x8B\x83".b.freeze,
  "bigodot" => "\xE2\xA8\x80".b.freeze,
  "bigoplus" => "\xE2\xA8\x81".b.freeze,
  "bigotimes" => "\xE2\xA8\x82".b.freeze,
  "bigsqcup" => "\xE2\xA8\x86".b.freeze,
  "bigstar" => "\xE2\x98\x85".b.freeze,
  "bigtriangledown" => "\xE2\x96\xBD".b.freeze,
  "bigtriangleup" => "\xE2\x96\xB3".b.freeze,
  "biguplus" => "\xE2\xA8\x84".b.freeze,
  "bigvee" => "\xE2\x8B\x81".b.freeze,
  "bigwedge" => "\xE2\x8B\x80".b.freeze,
  "bkarow" => "\xE2\xA4\x8D".b.freeze,
  "blacklozenge" => "\xE2\xA7\xAB".b.freeze,
  "blacksquare" => "\xE2\x96\xAA".b.freeze,
  "blacktriangle" => "\xE2\x96\xB4".b.freeze,
  "blacktriangledown" => "\xE2\x96\xBE".b.freeze,
  "blacktriangleleft" => "\xE2\x97\x82".b.freeze,
  "blacktriangleright" => "\xE2\x96\xB8".b.freeze,
  "blank" => "\xE2\x90\xA3".b.freeze,
  "blk12" => "\xE2\x96\x92".b.freeze,
  "blk14" => "\xE2\x96\x91".b.freeze,
  "blk34" => "\xE2\x96\x93".b.freeze,
  "block" => "\xE2\x96\x88".b.freeze,
  "bne" => "\x3D\xE2\x83\xA5".b.freeze,
  "bnequiv" => "\xE2\x89\xA1\xE2\x83\xA5".b.freeze,
  "bnot" => "\xE2\x8C\x90".b.freeze,
  "bopf" => "\xF0\x9D\x95\x93".b.freeze,
  "bot" => "\xE2\x8A\xA5".b.freeze,
  "bottom" => "\xE2\x8A\xA5".b.freeze,
  "bowtie" => "\xE2\x8B\x88".b.freeze,
  "boxDL" => "\xE2\x95\x97".b.freeze,
  "boxDR" => "\xE2\x95\x94".b.freeze,
  "boxDl" => "\xE2\x95\x96".b.freeze,
  "boxDr" => "\xE2\x95\x93".b.freeze,
  "boxH" => "\xE2\x95\x90".b.freeze,
  "boxHD" => "\xE2\x95\xA6".b.freeze,
  "boxHU" => "\xE2\x95\xA9".b.freeze,
  "boxHd" => "\xE2\x95\xA4".b.freeze,
  "boxHu" => "\xE2\x95\xA7".b.freeze,
  "boxUL" => "\xE2\x95\x9D".b.freeze,
  "boxUR" => "\xE2\x95\x9A".b.freeze,
  "boxUl" => "\xE2\x95\x9C".b.freeze,
  "boxUr" => "\xE2\x95\x99".b.freeze,
  "boxV" => "\xE2\x95\x91".b.freeze,
  "boxVH" => "\xE2\x95\xAC".b.freeze,
  "boxVL" => "\xE2\x95\xA3".b.freeze,
  "boxVR" => "\xE2\x95\xA0".b.freeze,
  "boxVh" => "\xE2\x95\xAB".b.freeze,
  "boxVl" => "\xE2\x95\xA2".b.freeze,
  "boxVr" => "\xE2\x95\x9F".b.freeze,
  "boxbox" => "\xE2\xA7\x89".b.freeze,
  "boxdL" => "\xE2\x95\x95".b.freeze,
  "boxdR" => "\xE2\x95\x92".b.freeze,
  "boxdl" => "\xE2\x94\x90".b.freeze,
  "boxdr" => "\xE2\x94\x8C".b.freeze,
  "boxh" => "\xE2\x94\x80".b.freeze,
  "boxhD" => "\xE2\x95\xA5".b.freeze,
  "boxhU" => "\xE2\x95\xA8".b.freeze,
  "boxhd" => "\xE2\x94\xAC".b.freeze,
  "boxhu" => "\xE2\x94\xB4".b.freeze,
  "boxminus" => "\xE2\x8A\x9F".b.freeze,
  "boxplus" => "\xE2\x8A\x9E".b.freeze,
  "boxtimes" => "\xE2\x8A\xA0".b.freeze,
  "boxuL" => "\xE2\x95\x9B".b.freeze,
  "boxuR" => "\xE2\x95\x98".b.freeze,
  "boxul" => "\xE2\x94\x98".b.freeze,
  "boxur" => "\xE2\x94\x94".b.freeze,
  "boxv" => "\xE2\x94\x82".b.freeze,
  "boxvH" => "\xE2\x95\xAA".b.freeze,
  "boxvL" => "\xE2\x95\xA1".b.freeze,
  "boxvR" => "\xE2\x95\x9E".b.freeze,
  "boxvh" => "\xE2\x94\xBC".b.freeze,
  "boxvl" => "\xE2\x94\xA4".b.freeze,
  "boxvr" => "\xE2\x94\x9C".b.freeze,
  "bprime" => "\xE2\x80\xB5".b.freeze,
  "breve" => "\xCB\x98".b.freeze,
  "brvbar" => "\xC2\xA6".b.freeze,
  "bscr" => "\xF0\x9D\x92\xB7".b.freeze,
  "bsemi" => "\xE2\x81\x8F".b.freeze,
  "bsim" => "\xE2\x88\xBD".b.freeze,
  "bsime" => "\xE2\x8B\x8D".b.freeze,
  "bsol" => "\x5C".b.freeze,
  "bsolb" => "\xE2\xA7\x85".b.freeze,
  "bsolhsub" => "\xE2\x9F\x88".b.freeze,
  "bull" => "\xE2\x80\xA2".b.freeze,
  "bullet" => "\xE2\x80\xA2".b.freeze,
  "bump" => "\xE2\x89\x8E".b.freeze,
  "bumpE" => "\xE2\xAA\xAE".b.freeze,
  "bumpe" => "\xE2\x89\x8F".b.freeze,
  "bumpeq" => "\xE2\x89\x8F".b.freeze,
  "cacute" => "\xC4\x87".b.freeze,
  "cap" => "\xE2\x88\xA9".b.freeze,
  "capand" => "\xE2\xA9\x84".b.freeze,
  "capbrcup" => "\xE2\xA9\x89".b.freeze,
  "capcap" => "\xE2\xA9\x8B".b.freeze,
  "capcup" => "\xE2\xA9\x87".b.freeze,
  "capdot" => "\xE2\xA9\x80".b.freeze,
  "caps" => "\xE2\x88\xA9\xEF\xB8\x80".b.freeze,
  "caret" => "\xE2\x81\x81".b.freeze,
  "caron" => "\xCB\x87".b.freeze,
  "ccaps" => "\xE2\xA9\x8D".b.freeze,
  "ccaron" => "\xC4\x8D".b.freeze,
  "ccedil" => "\xC3\xA7".b.freeze,
  "ccirc" => "\xC4\x89".b.freeze,
  "ccups" => "\xE2\xA9\x8C".b.freeze,
  "ccupssm" => "\xE2\xA9\x90".b.freeze,
  "cdot" => "\xC4\x8B".b.freeze,
  "cedil" => "\xC2\xB8".b.freeze,
  "cemptyv" => "\xE2\xA6\xB2".b.freeze,
  "cent" => "\xC2\xA2".b.freeze,
  "centerdot" => "\xC2\xB7".b.freeze,
  "cfr" => "\xF0\x9D\x94\xA0".b.freeze,
  "chcy" => "\xD1\x87".b.freeze,
  "check" => "\xE2\x9C\x93".b.freeze,
  "checkmark" => "\xE2\x9C\x93".b.freeze,
  "chi" => "\xCF\x87".b.freeze,
  "cir" => "\xE2\x97\x8B".b.freeze,
  "cirE" => "\xE2\xA7\x83".b.freeze,
  "circ" => "\xCB\x86".b.freeze,
  "circeq" => "\xE2\x89\x97".b.freeze,
  "circlearrowleft" => "\xE2\x86\xBA".b.freeze,
  "circlearrowright" => "\xE2\x86\xBB".b.freeze,
  "circledR" => "\xC2\xAE".b.freeze,
  "circledS" => "\xE2\x93\x88".b.freeze,
  "circledast" => "\xE2\x8A\x9B".b.freeze,
  "circledcirc" => "\xE2\x8A\x9A".b.freeze,
  "circleddash" => "\xE2\x8A\x9D".b.freeze,
  "cire" => "\xE2\x89\x97".b.freeze,
  "cirfnint" => "\xE2\xA8\x90".b.freeze,
  "cirmid" => "\xE2\xAB\xAF".b.freeze,
  "cirscir" => "\xE2\xA7\x82".b.freeze,
  "clubs" => "\xE2\x99\xA3".b.freeze,
  "clubsuit" => "\xE2\x99\xA3".b.freeze,
  "colon" => "\x3A".b.freeze,
  "colone" => "\xE2\x89\x94".b.freeze,
  "coloneq" => "\xE2\x89\x94".b.freeze,
  "comma" => "\x2C".b.freeze,
  "commat" => "\x40".b.freeze,
  "comp" => "\xE2\x88\x81".b.freeze,
  "compfn" => "\xE2\x88\x98".b.freeze,
  "complement" => "\xE2\x88\x81".b.freeze,
  "complexes" => "\xE2\x84\x82".b.freeze,
  "cong" => "\xE2\x89\x85".b.freeze,
  "congdot" => "\xE2\xA9\xAD".b.freeze,
  "conint" => "\xE2\x88\xAE".b.freeze,
  "copf" => "\xF0\x9D\x95\x94".b.freeze,
  "coprod" => "\xE2\x88\x90".b.freeze,
  "copy" => "\xC2\xA9".b.freeze,
  "copysr" => "\xE2\x84\x97".b.freeze,
  "crarr" => "\xE2\x86\xB5".b.freeze,
  "cross" => "\xE2\x9C\x97".b.freeze,
  "cscr" => "\xF0\x9D\x92\xB8".b.freeze,
  "csub" => "\xE2\xAB\x8F".b.freeze,
  "csube" => "\xE2\xAB\x91".b.freeze,
  "csup" => "\xE2\xAB\x90".b.freeze,
  "csupe" => "\xE2\xAB\x92".b.freeze,
  "ctdot" => "\xE2\x8B\xAF".b.freeze,
  "cudarrl" => "\xE2\xA4\xB8".b.freeze,
  "cudarrr" => "\xE2\xA4\xB5".b.freeze,
  "cuepr" => "\xE2\x8B\x9E".b.freeze,
  "cuesc" => "\xE2\x8B\x9F".b.freeze,
  "cularr" => "\xE2\x86\xB6".b.freeze,
  "cularrp" => "\xE2\xA4\xBD".b.freeze,
  "cup" => "\xE2\x88\xAA".b.freeze,
  "cupbrcap" => "\xE2\xA9\x88".b.freeze,
  "cupcap" => "\xE2\xA9\x86".b.freeze,
  "cupcup" => "\xE2\xA9\x8A".b.freeze,
  "cupdot" => "\xE2\x8A\x8D".b.freeze,
  "cupor" => "\xE2\xA9\x85".b.freeze,
  "cups" => "\xE2\x88\xAA\xEF\xB8\x80".b.freeze,
  "curarr" => "\xE2\x86\xB7".b.freeze,
  "curarrm" => "\xE2\xA4\xBC".b.freeze,
  "curlyeqprec" => "\xE2\x8B\x9E".b.freeze,
  "curlyeqsucc" => "\xE2\x8B\x9F".b.freeze,
  "curlyvee" => "\xE2\x8B\x8E".b.freeze,
  "curlywedge" => "\xE2\x8B\x8F".b.freeze,
  "curren" => "\xC2\xA4".b.freeze,
  "curvearrowleft" => "\xE2\x86\xB6".b.freeze,
  "curvearrowright" => "\xE2\x86\xB7".b.freeze,
  "cuvee" => "\xE2\x8B\x8E".b.freeze,
  "cuwed" => "\xE2\x8B\x8F".b.freeze,
  "cwconint" => "\xE2\x88\xB2".b.freeze,
  "cwint" => "\xE2\x88\xB1".b.freeze,
  "cylcty" => "\xE2\x8C\xAD".b.freeze,
  "dArr" => "\xE2\x87\x93".b.freeze,
  "dHar" => "\xE2\xA5\xA5".b.freeze,
  "dagger" => "\xE2\x80\xA0".b.freeze,
  "daleth" => "\xE2\x84\xB8".b.freeze,
  "darr" => "\xE2\x86\x93".b.freeze,
  "dash" => "\xE2\x80\x90".b.freeze,
  "dashv" => "\xE2\x8A\xA3".b.freeze,
  "dbkarow" => "\xE2\xA4\x8F".b.freeze,
  "dblac" => "\xCB\x9D".b.freeze,
  "dcaron" => "\xC4\x8F".b.freeze,
  "dcy" => "\xD0\xB4".b.freeze,
  "dd" => "\xE2\x85\x86".b.freeze,
  "ddagger" => "\xE2\x80\xA1".b.freeze,
  "ddarr" => "\xE2\x87\x8A".b.freeze,
  "ddotseq" => "\xE2\xA9\xB7".b.freeze,
  "deg" => "\xC2\xB0".b.freeze,
  "delta" => "\xCE\xB4".b.freeze,
  "demptyv" => "\xE2\xA6\xB1".b.freeze,
  "dfisht" => "\xE2\xA5\xBF".b.freeze,
  "dfr" => "\xF0\x9D\x94\xA1".b.freeze,
  "dharl" => "\xE2\x87\x83".b.freeze,
  "dharr" => "\xE2\x87\x82".b.freeze,
  "diam" => "\xE2\x8B\x84".b.freeze,
  "diamond" => "\xE2\x8B\x84".b.freeze,
  "diamondsuit" => "\xE2\x99\xA6".b.freeze,
  "diams" => "\xE2\x99\xA6".b.freeze,
  "die" => "\xC2\xA8".b.freeze,
  "digamma" => "\xCF\x9D".b.freeze,
  "disin" => "\xE2\x8B\xB2".b.freeze,
  "div" => "\xC3\xB7".b.freeze,
  "divide" => "\xC3\xB7".b.freeze,
  "divideontimes" => "\xE2\x8B\x87".b.freeze,
  "divonx" => "\xE2\x8B\x87".b.freeze,
  "djcy" => "\xD1\x92".b.freeze,
  "dlcorn" => "\xE2\x8C\x9E".b.freeze,
  "dlcrop" => "\xE2\x8C\x8D".b.freeze,
  "dollar" => "\x24".b.freeze,
  "dopf" => "\xF0\x9D\x95\x95".b.freeze,
  "dot" => "\xCB\x99".b.freeze,
  "doteq" => "\xE2\x89\x90".b.freeze,
  "doteqdot" => "\xE2\x89\x91".b.freeze,
  "dotminus" => "\xE2\x88\xB8".b.freeze,
  "dotplus" => "\xE2\x88\x94".b.freeze,
  "dotsquare" => "\xE2\x8A\xA1".b.freeze,
  "doublebarwedge" => "\xE2\x8C\x86".b.freeze,
  "downarrow" => "\xE2\x86\x93".b.freeze,
  "downdownarrows" => "\xE2\x87\x8A".b.freeze,
  "downharpoonleft" => "\xE2\x87\x83".b.freeze,
  "downharpoonright" => "\xE2\x87\x82".b.freeze,
  "drbkarow" => "\xE2\xA4\x90".b.freeze,
  "drcorn" => "\xE2\x8C\x9F".b.freeze,
  "drcrop" => "\xE2\x8C\x8C".b.freeze,
  "dscr" => "\xF0\x9D\x92\xB9".b.freeze,
  "dscy" => "\xD1\x95".b.freeze,
  "dsol" => "\xE2\xA7\xB6".b.freeze,
  "dstrok" => "\xC4\x91".b.freeze,
  "dtdot" => "\xE2\x8B\xB1".b.freeze,
  "dtri" => "\xE2\x96\xBF".b.freeze,
  "dtrif" => "\xE2\x96\xBE".b.freeze,
  "duarr" => "\xE2\x87\xB5".b.freeze,
  "duhar" => "\xE2\xA5\xAF".b.freeze,
  "dwangle" => "\xE2\xA6\xA6".b.freeze,
  "dzcy" => "\xD1\x9F".b.freeze,
  "dzigrarr" => "\xE2\x9F\xBF".b.freeze,
  "eDDot" => "\xE2\xA9\xB7".b.freeze,
  "eDot" => "\xE2\x89\x91".b.freeze,
  "eacute" => "\xC3\xA9".b.freeze,
  "easter" => "\xE2\xA9\xAE".b.freeze,
  "ecaron" => "\xC4\x9B".b.freeze,
  "ecir" => "\xE2\x89\x96".b.freeze,
  "ecirc" => "\xC3\xAA".b.freeze,
  "ecolon" => "\xE2\x89\x95".b.freeze,
  "ecy" => "\xD1\x8D".b.freeze,
  "edot" => "\xC4\x97".b.freeze,
  "ee" => "\xE2\x85\x87".b.freeze,
  "efDot" => "\xE2\x89\x92".b.freeze,
  "efr" => "\xF0\x9D\x94\xA2".b.freeze,
  "eg" => "\xE2\xAA\x9A".b.freeze,
  "egrave" => "\xC3\xA8".b.freeze,
  "egs" => "\xE2\xAA\x96".b.freeze,
  "egsdot" => "\xE2\xAA\x98".b.freeze,
  "el" => "\xE2\xAA\x99".b.freeze,
  "elinters" => "\xE2\x8F\xA7".b.freeze,
  "ell" => "\xE2\x84\x93".b.freeze,
  "els" => "\xE2\xAA\x95".b.freeze,
  "elsdot" => "\xE2\xAA\x97".b.freeze,
  "emacr" => "\xC4\x93".b.freeze,
  "empty" => "\xE2\x88\x85".b.freeze,
  "emptyset" => "\xE2\x88\x85".b.freeze,
  "emptyv" => "\xE2\x88\x85".b.freeze,
  "emsp" => "\xE2\x80\x83".b.freeze,
  "emsp13" => "\xE2\x80\x84".b.freeze,
  "emsp14" => "\xE2\x80\x85".b.freeze,
  "eng" => "\xC5\x8B".b.freeze,
  "ensp" => "\xE2\x80\x82".b.freeze,
  "eogon" => "\xC4\x99".b.freeze,
  "eopf" => "\xF0\x9D\x95\x96".b.freeze,
  "epar" => "\xE2\x8B\x95".b.freeze,
  "eparsl" => "\xE2\xA7\xA3".b.freeze,
  "eplus" => "\xE2\xA9\xB1".b.freeze,
  "epsi" => "\xCE\xB5".b.freeze,
  "epsilon" => "\xCE\xB5".b.freeze,
  "epsiv" => "\xCF\xB5".b.freeze,
  "eqcirc" => "\xE2\x89\x96".b.freeze,
  "eqcolon" => "\xE2\x89\x95".b.freeze,
  "eqsim" => "\xE2\x89\x82".b.freeze,
  "eqslantgtr" => "\xE2\xAA\x96".b.freeze,
  "eqslantless" => "\xE2\xAA\x95".b.freeze,
  "equals" => "\x3D".b.freeze,
  "equest" => "\xE2\x89\x9F".b.freeze,
  "equiv" => "\xE2\x89\xA1".b.freeze,
  "equivDD" => "\xE2\xA9\xB8".b.freeze,
  "eqvparsl" => "\xE2\xA7\xA5".b.freeze,
  "erDot" => "\xE2\x89\x93".b.freeze,
  "erarr" => "\xE2\xA5\xB1".b.freeze,
  "escr" => "\xE2\x84\xAF".b.freeze,
  "esdot" => "\xE2\x89\x90".b.freeze,
  "esim" => "\xE2\x89\x82".b.freeze,
  "eta" => "\xCE\xB7".b.freeze,
  "eth" => "\xC3\xB0".b.freeze,
  "euml" => "\xC3\xAB".b.freeze,
  "euro" => "\xE2\x82\xAC".b.freeze,
  "excl" => "\x21".b.freeze,
  "exist" => "\xE2\x88\x83".b.freeze,
  "expectation" => "\xE2\x84\xB0".b.freeze,
  "exponentiale" => "\xE2\x85\x87".b.freeze,
  "fallingdotseq" => "\xE2\x89\x92".b.freeze,
  "fcy" => "\xD1\x84".b.freeze,
  "female" => "\xE2\x99\x80".b.freeze,
  "ffilig" => "\xEF\xAC\x83".b.freeze,
  "fflig" => "\xEF\xAC\x80".b.freeze,
  "ffllig" => "\xEF\xAC\x84".b.freeze,
  "ffr" => "\xF0\x9D\x94\xA3".b.freeze,
  "filig" => "\xEF\xAC\x81".b.freeze,
  "fjlig" => "\x66\x6A".b.freeze,
  "flat" => "\xE2\x99\xAD".b.freeze,
  "fllig" => "\xEF\xAC\x82".b.freeze,
  "fltns" => "\xE2\x96\xB1".b.freeze,
  "fnof" => "\xC6\x92".b.freeze,
  "fopf" => "\xF0\x9D\x95\x97".b.freeze,
  "forall" => "\xE2\x88\x80".b.freeze,
  "fork" => "\xE2\x8B\x94".b.freeze,
  "forkv" => "\xE2\xAB\x99".b.freeze,
  "fpartint" => "\xE2\xA8\x8D".b.freeze,
  "frac12" => "\xC2\xBD".b.freeze,
  "frac13" => "\xE2\x85\x93".b.freeze,
  "frac14" => "\xC2\xBC".b.freeze,
  "frac15" => "\xE2\x85\x95".b.freeze,
  "frac16" => "\xE2\x85\x99".b.freeze,
  "frac18" => "\xE2\x85\x9B".b.freeze,
  "frac23" => "\xE2\x85\x94".b.freeze,
  "frac25" => "\xE2\x85\x96".b.freeze,
  "frac34" => "\xC2\xBE".b.freeze,
  "frac35" => "\xE2\x85\x97".b.freeze,
  "frac38" => "\xE2\x85\x9C".b.freeze,
  "frac45" => "\xE2\x85\x98".b.freeze,
  "frac56" => "\xE2\x85\x9A".b.freeze,
  "frac58" => "\xE2\x85\x9D".b.freeze,
  "frac78" => "\xE2\x85\x9E".b.freeze,
  "frasl" => "\xE2\x81\x84".b.freeze,
  "frown" => "\xE2\x8C\xA2".b.freeze,
  "fscr" => "\xF0\x9D\x92\xBB".b.freeze,
  "gE" => "\xE2\x89\xA7".b.freeze,
  "gEl" => "\xE2\xAA\x8C".b.freeze,
  "gacute" => "\xC7\xB5".b.freeze,
  "gamma" => "\xCE\xB3".b.freeze,
  "gammad" => "\xCF\x9D".b.freeze,
  "gap" => "\xE2\xAA\x86".b.freeze,
  "gbreve" => "\xC4\x9F".b.freeze,
  "gcirc" => "\xC4\x9D".b.freeze,
  "gcy" => "\xD0\xB3".b.freeze,
  "gdot" => "\xC4\xA1".b.freeze,
  "ge" => "\xE2\x89\xA5".b.freeze,
  "gel" => "\xE2\x8B\x9B".b.freeze,
  "geq" => "\xE2\x89\xA5".b.freeze,
  "geqq" => "\xE2\x89\xA7".b.freeze,
  "geqslant" => "\xE2\xA9\xBE".b.freeze,
  "ges" => "\xE2\xA9\xBE".b.freeze,
  "gescc" => "\xE2\xAA\xA9".b.freeze,
  "gesdot" => "\xE2\xAA\x80".b.freeze,
  "gesdoto" => "\xE2\xAA\x82".b.freeze,
  "gesdotol" => "\xE2\xAA\x84".b.freeze,
  "gesl" => "\xE2\x8B\x9B\xEF\xB8\x80".b.freeze,
  "gesles" => "\xE2\xAA\x94".b.freeze,
  "gfr" => "\xF0\x9D\x94\xA4".b.freeze,
  "gg" => "\xE2\x89\xAB".b.freeze,
  "ggg" => "\xE2\x8B\x99".b.freeze,
  "gimel" => "\xE2\x84\xB7".b.freeze,
  "gjcy" => "\xD1\x93".b.freeze,
  "gl" => "\xE2\x89\xB7".b.freeze,
  "glE" => "\xE2\xAA\x92".b.freeze,
  "gla" => "\xE2\xAA\xA5".b.freeze,
  "glj" => "\xE2\xAA\xA4".b.freeze,
  "gnE" => "\xE2\x89\xA9".b.freeze,
  "gnap" => "\xE2\xAA\x8A".b.freeze,
  "gnapprox" => "\xE2\xAA\x8A".b.freeze,
  "gne" => "\xE2\xAA\x88".b.freeze,
  "gneq" => "\xE2\xAA\x88".b.freeze,
  "gneqq" => "\xE2\x89\xA9".b.freeze,
  "gnsim" => "\xE2\x8B\xA7".b.freeze,
  "gopf" => "\xF0\x9D\x95\x98".b.freeze,
  "grave" => "\x60".b.freeze,
  "gscr" => "\xE2\x84\x8A".b.freeze,
  "gsim" => "\xE2\x89\xB3".b.freeze,
  "gsime" => "\xE2\xAA\x8E".b.freeze,
  "gsiml" => "\xE2\xAA\x90".b.freeze,
  "gt" => "\x3E".b.freeze,
  "gtcc" => "\xE2\xAA\xA7".b.freeze,
  "gtcir" => "\xE2\xA9\xBA".b.freeze,
  "gtdot" => "\xE2\x8B\x97".b.freeze,
  "gtlPar" => "\xE2\xA6\x95".b.freeze,
  "gtquest" => "\xE2\xA9\xBC".b.freeze,
  "gtrapprox" => "\xE2\xAA\x86".b.freeze,
  "gtrarr" => "\xE2\xA5\xB8".b.freeze,
  "gtrdot" => "\xE2\x8B\x97".b.freeze,
  "gtreqless" => "\xE2\x8B\x9B".b.freeze,
  "gtreqqless" => "\xE2\xAA\x8C".b.freeze,
  "gtrless" => "\xE2\x89\xB7".b.freeze,
  "gtrsim" => "\xE2\x89\xB3".b.freeze,
  "gvertneqq" => "\xE2\x89\xA9\xEF\xB8\x80".b.freeze,
  "gvnE" => "\xE2\x89\xA9\xEF\xB8\x80".b.freeze,
  "hArr" => "\xE2\x87\x94".b.freeze,
  "hairsp" => "\xE2\x80\x8A".b.freeze,
  "half" => "\xC2\xBD".b.freeze,
  "hamilt" => "\xE2\x84\x8B".b.freeze,
  "hardcy" => "\xD1\x8A".b.freeze,
  "harr" => "\xE2\x86\x94".b.freeze,
  "harrcir" => "\xE2\xA5\x88".b.freeze,
  "harrw" => "\xE2\x86\xAD".b.freeze,
  "hbar" => "\xE2\x84\x8F".b.freeze,
  "hcirc" => "\xC4\xA5".b.freeze,
  "hearts" => "\xE2\x99\xA5".b.freeze,
  "heartsuit" => "\xE2\x99\xA5".b.freeze,
  "hellip" => "\xE2\x80\xA6".b.freeze,
  "hercon" => "\xE2\x8A\xB9".b.freeze,
  "hfr" => "\xF0\x9D\x94\xA5".b.freeze,
  "hksearow" => "\xE2\xA4\xA5".b.freeze,
  "hkswarow" => "\xE2\xA4\xA6".b.freeze,
  "hoarr" => "\xE2\x87\xBF".b.freeze,
  "homtht" => "\xE2\x88\xBB".b.freeze,
  "hookleftarrow" => "\xE2\x86\xA9".b.freeze,
  "hookrightarrow" => "\xE2\x86\xAA".b.freeze,
  "hopf" => "\xF0\x9D\x95\x99".b.freeze,
  "horbar" => "\xE2\x80\x95".b.freeze,
  "hscr" => "\xF0\x9D\x92\xBD".b.freeze,
  "hslash" => "\xE2\x84\x8F".b.freeze,
  "hstrok" => "\xC4\xA7".b.freeze,
  "hybull" => "\xE2\x81\x83".b.freeze,
  "hyphen" => "\xE2\x80\x90".b.freeze,
  "iacute" => "\xC3\xAD".b.freeze,
  "ic" => "\xE2\x81\xA3".b.freeze,
  "icirc" => "\xC3\xAE".b.freeze,
  "icy" => "\xD0\xB8".b.freeze,
  "iecy" => "\xD0\xB5".b.freeze,
  "iexcl" => "\xC2\xA1".b.freeze,
  "iff" => "\xE2\x87\x94".b.freeze,
  "ifr" => "\xF0\x9D\x94\xA6".b.freeze,
  "igrave" => "\xC3\xAC".b.freeze,
  "ii" => "\xE2\x85\x88".b.freeze,
  "iiiint" => "\xE2\xA8\x8C".b.freeze,
  "iiint" => "\xE2\x88\xAD".b.freeze,
  "iinfin" => "\xE2\xA7\x9C".b.freeze,
  "iiota" => "\xE2\x84\xA9".b.freeze,
  "ijlig" => "\xC4\xB3".b.freeze,
  "imacr" => "\xC4\xAB".b.freeze,
  "image" => "\xE2\x84\x91".b.freeze,
  "imagline" => "\xE2\x84\x90".b.freeze,
  "imagpart" => "\xE2\x84\x91".b.freeze,
  "imath" => "\xC4\xB1".b.freeze,
  "imof" => "\xE2\x8A\xB7".b.freeze,
  "imped" => "\xC6\xB5".b.freeze,
  "in" => "\xE2\x88\x88".b.freeze,
  "incare" => "\xE2\x84\x85".b.freeze,
  "infin" => "\xE2\x88\x9E".b.freeze,
  "infintie" => "\xE2\xA7\x9D".b.freeze,
  "inodot" => "\xC4\xB1".b.freeze,
  "int" => "\xE2\x88\xAB".b.freeze,
  "intcal" => "\xE2\x8A\xBA".b.freeze,
  "integers" => "\xE2\x84\xA4".b.freeze,
  "intercal" => "\xE2\x8A\xBA".b.freeze,
  "intlarhk" => "\xE2\xA8\x97".b.freeze,
  "intprod" => "\xE2\xA8\xBC".b.freeze,
  "iocy" => "\xD1\x91".b.freeze,
  "iogon" => "\xC4\xAF".b.freeze,
  "iopf" => "\xF0\x9D\x95\x9A".b.freeze,
  "iota" => "\xCE\xB9".b.freeze,
  "iprod" => "\xE2\xA8\xBC".b.freeze,
  "iquest" => "\xC2\xBF".b.freeze,
  "iscr" => "\xF0\x9D\x92\xBE".b.freeze,
  "isin" => "\xE2\x88\x88".b.freeze,
  "isinE" => "\xE2\x8B\xB9".b.freeze,
  "isindot" => "\xE2\x8B\xB5".b.freeze,
  "isins" => "\xE2\x8B\xB4".b.freeze,
  "isinsv" => "\xE2\x8B\xB3".b.freeze,
  "isinv" => "\xE2\x88\x88".b.freeze,
  "it" => "\xE2\x81\xA2".b.freeze,
  "itilde" => "\xC4\xA9".b.freeze,
  "iukcy" => "\xD1\x96".b.freeze,
  "iuml" => "\xC3\xAF".b.freeze,
  "jcirc" => "\xC4\xB5".b.freeze,
  "jcy" => "\xD0\xB9".b.freeze,
  "jfr" => "\xF0\x9D\x94\xA7".b.freeze,
  "jmath" => "\xC8\xB7".b.freeze,
  "jopf" => "\xF0\x9D\x95\x9B".b.freeze,
  "jscr" => "\xF0\x9D\x92\xBF".b.freeze,
  "jsercy" => "\xD1\x98".b.freeze,
  "jukcy" => "\xD1\x94".b.freeze,
  "kappa" => "\xCE\xBA".b.freeze,
  "kappav" => "\xCF\xB0".b.freeze,
  "kcedil" => "\xC4\xB7".b.freeze,
  "kcy" => "\xD0\xBA".b.freeze,
  "kfr" => "\xF0\x9D\x94\xA8".b.freeze,
  "kgreen" => "\xC4\xB8".b.freeze,
  "khcy" => "\xD1\x85".b.freeze,
  "kjcy" => "\xD1\x9C".b.freeze,
  "kopf" => "\xF0\x9D\x95\x9C".b.freeze,
  "kscr" => "\xF0\x9D\x93\x80".b.freeze,
  "lAarr" => "\xE2\x87\x9A".b.freeze,
  "lArr" => "\xE2\x87\x90".b.freeze,
  "lAtail" => "\xE2\xA4\x9B".b.freeze,
  "lBarr" => "\xE2\xA4\x8E".b.freeze,
  "lE" => "\xE2\x89\xA6".b.freeze,
  "lEg" => "\xE2\xAA\x8B".b.freeze,
  "lHar" => "\xE2\xA5\xA2".b.freeze,
  "lacute" => "\xC4\xBA".b.freeze,
  "laemptyv" => "\xE2\xA6\xB4".b.freeze,
  "lagran" => "\xE2\x84\x92".b.freeze,
  "lambda" => "\xCE\xBB".b.freeze,
  "lang" => "\xE2\x9F\xA8".b.freeze,
  "langd" => "\xE2\xA6\x91".b.freeze,
  "langle" => "\xE2\x9F\xA8".b.freeze,
  "lap" => "\xE2\xAA\x85".b.freeze,
  "laquo" => "\xC2\xAB".b.freeze,
  "larr" => "\xE2\x86\x90".b.freeze,
  "larrb" => "\xE2\x87\xA4".b.freeze,
  "larrbfs" => "\xE2\xA4\x9F".b.freeze,
  "larrfs" => "\xE2\xA4\x9D".b.freeze,
  "larrhk" => "\xE2\x86\xA9".b.freeze,
  "larrlp" => "\xE2\x86\xAB".b.freeze,
  "larrpl" => "\xE2\xA4\xB9".b.freeze,
  "larrsim" => "\xE2\xA5\xB3".b.freeze,
  "larrtl" => "\xE2\x86\xA2".b.freeze,
  "lat" => "\xE2\xAA\xAB".b.freeze,
  "latail" => "\xE2\xA4\x99".b.freeze,
  "late" => "\xE2\xAA\xAD".b.freeze,
  "lates" => "\xE2\xAA\xAD\xEF\xB8\x80".b.freeze,
  "lbarr" => "\xE2\xA4\x8C".b.freeze,
  "lbbrk" => "\xE2\x9D\xB2".b.freeze,
  "lbrace" => "\x7B".b.freeze,
  "lbrack" => "\x5B".b.freeze,
  "lbrke" => "\xE2\xA6\x8B".b.freeze,
  "lbrksld" => "\xE2\xA6\x8F".b.freeze,
  "lbrkslu" => "\xE2\xA6\x8D".b.freeze,
  "lcaron" => "\xC4\xBE".b.freeze,
  "lcedil" => "\xC4\xBC".b.freeze,
  "lceil" => "\xE2\x8C\x88".b.freeze,
  "lcub" => "\x7B".b.freeze,
  "lcy" => "\xD0\xBB".b.freeze,
  "ldca" => "\xE2\xA4\xB6".b.freeze,
  "ldquo" => "\xE2\x80\x9C".b.freeze,
  "ldquor" => "\xE2\x80\x9E".b.freeze,
  "ldrdhar" => "\xE2\xA5\xA7".b.freeze,
  "ldrushar" => "\xE2\xA5\x8B".b.freeze,
  "ldsh" => "\xE2\x86\xB2".b.freeze,
  "le" => "\xE2\x89\xA4".b.freeze,
  "leftarrow" => "\xE2\x86\x90".b.freeze,
  "leftarrowtail" => "\xE2\x86\xA2".b.freeze,
  "leftharpoondown" => "\xE2\x86\xBD".b.freeze,
  "leftharpoonup" => "\xE2\x86\xBC".b.freeze,
  "leftleftarrows" => "\xE2\x87\x87".b.freeze,
  "leftrightarrow" => "\xE2\x86\x94".b.freeze,
  "leftrightarrows" => "\xE2\x87\x86".b.freeze,
  "leftrightharpoons" => "\xE2\x87\x8B".b.freeze,
  "leftrightsquigarrow" => "\xE2\x86\xAD".b.freeze,
  "leftthreetimes" => "\xE2\x8B\x8B".b.freeze,
  "leg" => "\xE2\x8B\x9A".b.freeze,
  "leq" => "\xE2\x89\xA4".b.freeze,
  "leqq" => "\xE2\x89\xA6".b.freeze,
  "leqslant" => "\xE2\xA9\xBD".b.freeze,
  "les" => "\xE2\xA9\xBD".b.freeze,
  "lescc" => "\xE2\xAA\xA8".b.freeze,
  "lesdot" => "\xE2\xA9\xBF".b.freeze,
  "lesdoto" => "\xE2\xAA\x81".b.freeze,
  "lesdotor" => "\xE2\xAA\x83".b.freeze,
  "lesg" => "\xE2\x8B\x9A\xEF\xB8\x80".b.freeze,
  "lesges" => "\xE2\xAA\x93".b.freeze,
  "lessapprox" => "\xE2\xAA\x85".b.freeze,
  "lessdot" => "\xE2\x8B\x96".b.freeze,
  "lesseqgtr" => "\xE2\x8B\x9A".b.freeze,
  "lesseqqgtr" => "\xE2\xAA\x8B".b.freeze,
  "lessgtr" => "\xE2\x89\xB6".b.freeze,
  "lesssim" => "\xE2\x89\xB2".b.freeze,
  "lfisht" => "\xE2\xA5\xBC".b.freeze,
  "lfloor" => "\xE2\x8C\x8A".b.freeze,
  "lfr" => "\xF0\x9D\x94\xA9".b.freeze,
  "lg" => "\xE2\x89\xB6".b.freeze,
  "lgE" => "\xE2\xAA\x91".b.freeze,
  "lhard" => "\xE2\x86\xBD".b.freeze,
  "lharu" => "\xE2\x86\xBC".b.freeze,
  "lharul" => "\xE2\xA5\xAA".b.freeze,
  "lhblk" => "\xE2\x96\x84".b.freeze,
  "ljcy" => "\xD1\x99".b.freeze,
  "ll" => "\xE2\x89\xAA".b.freeze,
  "llarr" => "\xE2\x87\x87".b.freeze,
  "llcorner" => "\xE2\x8C\x9E".b.freeze,
  "llhard" => "\xE2\xA5\xAB".b.freeze,
  "lltri" => "\xE2\x97\xBA".b.freeze,
  "lmidot" => "\xC5\x80".b.freeze,
  "lmoust" => "\xE2\x8E\xB0".b.freeze,
  "lmoustache" => "\xE2\x8E\xB0".b.freeze,
  "lnE" => "\xE2\x89\xA8".b.freeze,
  "lnap" => "\xE2\xAA\x89".b.freeze,
  "lnapprox" => "\xE2\xAA\x89".b.freeze,
  "lne" => "\xE2\xAA\x87".b.freeze,
  "lneq" => "\xE2\xAA\x87".b.freeze,
  "lneqq" => "\xE2\x89\xA8".b.freeze,
  "lnsim" => "\xE2\x8B\xA6".b.freeze,
  "loang" => "\xE2\x9F\xAC".b.freeze,
  "loarr" => "\xE2\x87\xBD".b.freeze,
  "lobrk" => "\xE2\x9F\xA6".b.freeze,
  "longleftarrow" => "\xE2\x9F\xB5".b.freeze,
  "longleftrightarrow" => "\xE2\x9F\xB7".b.freeze,
  "longmapsto" => "\xE2\x9F\xBC".b.freeze,
  "longrightarrow" => "\xE2\x9F\xB6".b.freeze,
  "looparrowleft" => "\xE2\x86\xAB".b.freeze,
  "looparrowright" => "\xE2\x86\xAC".b.freeze,
  "lopar" => "\xE2\xA6\x85".b.freeze,
  "lopf" => "\xF0\x9D\x95\x9D".b.freeze,
  "loplus" => "\xE2\xA8\xAD".b.freeze,
  "lotimes" => "\xE2\xA8\xB4".b.freeze,
  "lowast" => "\xE2\x88\x97".b.freeze,
  "lowbar" => "\x5F".b.freeze,
  "loz" => "\xE2\x97\x8A".b.freeze,
  "lozenge" => "\xE2\x97\x8A".b.freeze,
  "lozf" => "\xE2\xA7\xAB".b.freeze,
  "lpar" => "\x28".b.freeze,
  "lparlt" => "\xE2\xA6\x93".b.freeze,
  "lrarr" => "\xE2\x87\x86".b.freeze,
  "lrcorner" => "\xE2\x8C\x9F".b.freeze,
  "lrhar" => "\xE2\x87\x8B".b.freeze,
  "lrhard" => "\xE2\xA5\xAD".b.freeze,
  "lrm" => "\xE2\x80\x8E".b.freeze,
  "lrtri" => "\xE2\x8A\xBF".b.freeze,
  "lsaquo" => "\xE2\x80\xB9".b.freeze,
  "lscr" => "\xF0\x9D\x93\x81".b.freeze,
  "lsh" => "\xE2\x86\xB0".b.freeze,
  "lsim" => "\xE2\x89\xB2".b.freeze,
  "lsime" => "\xE2\xAA\x8D".b.freeze,
  "lsimg" => "\xE2\xAA\x8F".b.freeze,
  "lsqb" => "\x5B".b.freeze,
  "lsquo" => "\xE2\x80\x98".b.freeze,
  "lsquor" => "\xE2\x80\x9A".b.freeze,
  "lstrok" => "\xC5\x82".b.freeze,
  "lt" => "\x3C".b.freeze,
  "ltcc" => "\xE2\xAA\xA6".b.freeze,
  "ltcir" => "\xE2\xA9\xB9".b.freeze,
  "ltdot" => "\xE2\x8B\x96".b.freeze,
  "lthree" => "\xE2\x8B\x8B".b.freeze,
  "ltimes" => "\xE2\x8B\x89".b.freeze,
  "ltlarr" => "\xE2\xA5\xB6".b.freeze,
  "ltquest" => "\xE2\xA9\xBB".b.freeze,
  "ltrPar" => "\xE2\xA6\x96".b.freeze,
  "ltri" => "\xE2\x97\x83".b.freeze,
  "ltrie" => "\xE2\x8A\xB4".b.freeze,
  "ltrif" => "\xE2\x97\x82".b.freeze,
  "lurdshar" => "\xE2\xA5\x8A".b.freeze,
  "luruhar" => "\xE2\xA5\xA6".b.freeze,
  "lvertneqq" => "\xE2\x89\xA8\xEF\xB8\x80".b.freeze,
  "lvnE" => "\xE2\x89\xA8\xEF\xB8\x80".b.freeze,
  "mDDot" => "\xE2\x88\xBA".b.freeze,
  "macr" => "\xC2\xAF".b.freeze,
  "male" => "\xE2\x99\x82".b.freeze,
  "malt" => "\xE2\x9C\xA0".b.freeze,
  "maltese" => "\xE2\x9C\xA0".b.freeze,
  "map" => "\xE2\x86\xA6".b.freeze,
  "mapsto" => "\xE2\x86\xA6".b.freeze,
  "mapstodown" => "\xE2\x86\xA7".b.freeze,
  "mapstoleft" => "\xE2\x86\xA4".b.freeze,
  "mapstoup" => "\xE2\x86\xA5".b.freeze,
  "marker" => "\xE2\x96\xAE".b.freeze,
  "mcomma" => "\xE2\xA8\xA9".b.freeze,
  "mcy" => "\xD0\xBC".b.freeze,
  "mdash" => "\xE2\x80\x94".b.freeze,
  "measuredangle" => "\xE2\x88\xA1".b.freeze,
  "mfr" => "\xF0\x9D\x94\xAA".b.freeze,
  "mho" => "\xE2\x84\xA7".b.freeze,
  "micro" => "\xC2\xB5".b.freeze,
  "mid" => "\xE2\x88\xA3".b.freeze,
  "midast" => "\x2A".b.freeze,
  "midcir" => "\xE2\xAB\xB0".b.freeze,
  "middot" => "\xC2\xB7".b.freeze,
  "minus" => "\xE2\x88\x92".b.freeze,
  "minusb" => "\xE2\x8A\x9F".b.freeze,
  "minusd" => "\xE2\x88\xB8".b.freeze,
  "minusdu" => "\xE2\xA8\xAA".b.freeze,
  "mlcp" => "\xE2\xAB\x9B".b.freeze,
  "mldr" => "\xE2\x80\xA6".b.freeze,
  "mnplus" => "\xE2\x88\x93".b.freeze,
  "models" => "\xE2\x8A\xA7".b.freeze,
  "mopf" => "\xF0\x9D\x95\x9E".b.freeze,
  "mp" => "\xE2\x88\x93".b.freeze,
  "mscr" => "\xF0\x9D\x93\x82".b.freeze,
  "mstpos" => "\xE2\x88\xBE".b.freeze,
  "mu" => "\xCE\xBC".b.freeze,
  "multimap" => "\xE2\x8A\xB8".b.freeze,
  "mumap" => "\xE2\x8A\xB8".b.freeze,
  "nGg" => "\xE2\x8B\x99\xCC\xB8".b.freeze,
  "nGt" => "\xE2\x89\xAB\xE2\x83\x92".b.freeze,
  "nGtv" => "\xE2\x89\xAB\xCC\xB8".b.freeze,
  "nLeftarrow" => "\xE2\x87\x8D".b.freeze,
  "nLeftrightarrow" => "\xE2\x87\x8E".b.freeze,
  "nLl" => "\xE2\x8B\x98\xCC\xB8".b.freeze,
  "nLt" => "\xE2\x89\xAA\xE2\x83\x92".b.freeze,
  "nLtv" => "\xE2\x89\xAA\xCC\xB8".b.freeze,
  "nRightarrow" => "\xE2\x87\x8F".b.freeze,
  "nVDash" => "\xE2\x8A\xAF".b.freeze,
  "nVdash" => "\xE2\x8A\xAE".b.freeze,
  "nabla" => "\xE2\x88\x87".b.freeze,
  "nacute" => "\xC5\x84".b.freeze,
  "nang" => "\xE2\x88\xA0\xE2\x83\x92".b.freeze,
  "nap" => "\xE2\x89\x89".b.freeze,
  "napE" => "\xE2\xA9\xB0\xCC\xB8".b.freeze,
  "napid" => "\xE2\x89\x8B\xCC\xB8".b.freeze,
  "napos" => "\xC5\x89".b.freeze,
  "napprox" => "\xE2\x89\x89".b.freeze,
  "natur" => "\xE2\x99\xAE".b.freeze,
  "natural" => "\xE2\x99\xAE".b.freeze,
  "naturals" => "\xE2\x84\x95".b.freeze,
  "nbsp" => "\xC2\xA0".b.freeze,
  "nbump" => "\xE2\x89\x8E\xCC\xB8".b.freeze,
  "nbumpe" => "\xE2\x89\x8F\xCC\xB8".b.freeze,
  "ncap" => "\xE2\xA9\x83".b.freeze,
  "ncaron" => "\xC5\x88".b.freeze,
  "ncedil" => "\xC5\x86".b.freeze,
  "ncong" => "\xE2\x89\x87".b.freeze,
  "ncongdot" => "\xE2\xA9\xAD\xCC\xB8".b.freeze,
  "ncup" => "\xE2\xA9\x82".b.freeze,
  "ncy" => "\xD0\xBD".b.freeze,
  "ndash" => "\xE2\x80\x93".b.freeze,
  "ne" => "\xE2\x89\xA0".b.freeze,
  "neArr" => "\xE2\x87\x97".b.freeze,
  "nearhk" => "\xE2\xA4\xA4".b.freeze,
  "nearr" => "\xE2\x86\x97".b.freeze,
  "nearrow" => "\xE2\x86\x97".b.freeze,
  "nedot" => "\xE2\x89\x90\xCC\xB8".b.freeze,
  "nequiv" => "\xE2\x89\xA2".b.freeze,
  "nesear" => "\xE2\xA4\xA8".b.freeze,
  "nesim" => "\xE2\x89\x82\xCC\xB8".b.freeze,
  "nexist" => "\xE2\x88\x84".b.freeze,
  "nexists" => "\xE2\x88\x84".b.freeze,
  "nfr" => "\xF0\x9D\x94\xAB".b.freeze,
  "ngE" => "\xE2\x89\xA7\xCC\xB8".b.freeze,
  "nge" => "\xE2\x89\xB1".b.freeze,
  "ngeq" => "\xE2\x89\xB1".b.freeze,
  "ngeqq" => "\xE2\x89\xA7\xCC\xB8".b.freeze,
  "ngeqslant" => "\xE2\xA9\xBE\xCC\xB8".b.freeze,
  "nges" => "\xE2\xA9\xBE\xCC\xB8".b.freeze,
  "ngsim" => "\xE2\x89\xB5".b.freeze,
  "ngt" => "\xE2\x89\xAF".b.freeze,
  "ngtr" => "\xE2\x89\xAF".b.freeze,
  "nhArr" => "\xE2\x87\x8E".b.freeze,
  "nharr" => "\xE2\x86\xAE".b.freeze,
  "nhpar" => "\xE2\xAB\xB2".b.freeze,
  "ni" => "\xE2\x88\x8B".b.freeze,
  "nis" => "\xE2\x8B\xBC".b.freeze,
  "nisd" => "\xE2\x8B\xBA".b.freeze,
  "niv" => "\xE2\x88\x8B".b.freeze,
  "njcy" => "\xD1\x9A".b.freeze,
  "nlArr" => "\xE2\x87\x8D".b.freeze,
  "nlE" => "\xE2\x89\xA6\xCC\xB8".b.freeze,
  "nlarr" => "\xE2\x86\x9A".b.freeze,
  "nldr" => "\xE2\x80\xA5".b.freeze,
  "nle" => "\xE2\x89\xB0".b.freeze,
  "nleftarrow" => "\xE2\x86\x9A".b.freeze,
  "nleftrightarrow" => "\xE2\x86\xAE".b.freeze,
  "nleq" => "\xE2\x89\xB0".b.freeze,
  "nleqq" => "\xE2\x89\xA6\xCC\xB8".b.freeze,
  "nleqslant" => "\xE2\xA9\xBD\xCC\xB8".b.freeze,
  "nles" => "\xE2\xA9\xBD\xCC\xB8".b.freeze,
  "nless" => "\xE2\x89\xAE".b.freeze,
  "nlsim" => "\xE2\x89\xB4".b.freeze,
  "nlt" => "\xE2\x89\xAE".b.freeze,
  "nltri" => "\xE2\x8B\xAA".b.freeze,
  "nltrie" => "\xE2\x8B\xAC".b.freeze,
  "nmid" => "\xE2\x88\xA4".b.freeze,
  "nopf" => "\xF0\x9D\x95\x9F".b.freeze,
  "not" => "\xC2\xAC".b.freeze,
  "notin" => "\xE2\x88\x89".b.freeze,
  "notinE" => "\xE2\x8B\xB9\xCC\xB8".b.freeze,
  "notindot" => "\xE2\x8B\xB5\xCC\xB8".b.freeze,
  "notinva" => "\xE2\x88\x89".b.freeze,
  "notinvb" => "\xE2\x8B\xB7".b.freeze,
  "notinvc" => "\xE2\x8B\xB6".b.freeze,
  "notni" => "\xE2\x88\x8C".b.freeze,
  "notniva" => "\xE2\x88\x8C".b.freeze,
  "notnivb" => "\xE2\x8B\xBE".b.freeze,
  "notnivc" => "\xE2\x8B\xBD".b.freeze,
  "npar" => "\xE2\x88\xA6".b.freeze,
  "nparallel" => "\xE2\x88\xA6".b.freeze,
  "nparsl" => "\xE2\xAB\xBD\xE2\x83\xA5".b.freeze,
  "npart" => "\xE2\x88\x82\xCC\xB8".b.freeze,
  "npolint" => "\xE2\xA8\x94".b.freeze,
  "npr" => "\xE2\x8A\x80".b.freeze,
  "nprcue" => "\xE2\x8B\xA0".b.freeze,
  "npre" => "\xE2\xAA\xAF\xCC\xB8".b.freeze,
  "nprec" => "\xE2\x8A\x80".b.freeze,
  "npreceq" => "\xE2\xAA\xAF\xCC\xB8".b.freeze,
  "nrArr" => "\xE2\x87\x8F".b.freeze,
  "nrarr" => "\xE2\x86\x9B".b.freeze,
  "nrarrc" => "\xE2\xA4\xB3\xCC\xB8".b.freeze,
  "nrarrw" => "\xE2\x86\x9D\xCC\xB8".b.freeze,
  "nrightarrow" => "\xE2\x86\x9B".b.freeze,
  "nrtri" => "\xE2\x8B\xAB".b.freeze,
  "nrtrie" => "\xE2\x8B\xAD".b.freeze,
  "nsc" => "\xE2\x8A\x81".b.freeze,
  "nsccue" => "\xE2\x8B\xA1".b.freeze,
  "nsce" => "\xE2\xAA\xB0\xCC\xB8".b.freeze,
  "nscr" => "\xF0\x9D\x93\x83".b.freeze,
  "nshortmid" => "\xE2\x88\xA4".b.freeze,
  "nshortparallel" => "\xE2\x88\xA6".b.freeze,
  "nsim" => "\xE2\x89\x81".b.freeze,
  "nsime" => "\xE2\x89\x84".b.freeze,
  "nsimeq" => "\xE2\x89\x84".b.freeze,
  "nsmid" => "\xE2\x88\xA4".b.freeze,
  "nspar" => "\xE2\x88\xA6".b.freeze,
  "nsqsube" => "\xE2\x8B\xA2".b.freeze,
  "nsqsupe" => "\xE2\x8B\xA3".b.freeze,
  "nsub" => "\xE2\x8A\x84".b.freeze,
  "nsubE" => "\xE2\xAB\x85\xCC\xB8".b.freeze,
  "nsube" => "\xE2\x8A\x88".b.freeze,
  "nsubset" => "\xE2\x8A\x82\xE2\x83\x92".b.freeze,
  "nsubseteq" => "\xE2\x8A\x88".b.freeze,
  "nsubseteqq" => "\xE2\xAB\x85\xCC\xB8".b.freeze,
  "nsucc" => "\xE2\x8A\x81".b.freeze,
  "nsucceq" => "\xE2\xAA\xB0\xCC\xB8".b.freeze,
  "nsup" => "\xE2\x8A\x85".b.freeze,
  "nsupE" => "\xE2\xAB\x86\xCC\xB8".b.freeze,
  "nsupe" => "\xE2\x8A\x89".b.freeze,
  "nsupset" => "\xE2\x8A\x83\xE2\x83\x92".b.freeze,
  "nsupseteq" => "\xE2\x8A\x89".b.freeze,
  "nsupseteqq" => "\xE2\xAB\x86\xCC\xB8".b.freeze,
  "ntgl" => "\xE2\x89\xB9".b.freeze,
  "ntilde" => "\xC3\xB1".b.freeze,
  "ntlg" => "\xE2\x89\xB8".b.freeze,
  "ntriangleleft" => "\xE2\x8B\xAA".b.freeze,
  "ntrianglelefteq" => "\xE2\x8B\xAC".b.freeze,
  "ntriangleright" => "\xE2\x8B\xAB".b.freeze,
  "ntrianglerighteq" => "\xE2\x8B\xAD".b.freeze,
  "nu" => "\xCE\xBD".b.freeze,
  "num" => "\x23".b.freeze,
  "numero" => "\xE2\x84\x96".b.freeze,
  "numsp" => "\xE2\x80\x87".b.freeze,
  "nvDash" => "\xE2\x8A\xAD".b.freeze,
  "nvHarr" => "\xE2\xA4\x84".b.freeze,
  "nvap" => "\xE2\x89\x8D\xE2\x83\x92".b.freeze,
  "nvdash" => "\xE2\x8A\xAC".b.freeze,
  "nvge" => "\xE2\x89\xA5\xE2\x83\x92".b.freeze,
  "nvgt" => "\x3E\xE2\x83\x92".b.freeze,
  "nvinfin" => "\xE2\xA7\x9E".b.freeze,
  "nvlArr" => "\xE2\xA4\x82".b.freeze,
  "nvle" => "\xE2\x89\xA4\xE2\x83\x92".b.freeze,
  "nvlt" => "\x3C\xE2\x83\x92".b.freeze,
  "nvltrie" => "\xE2\x8A\xB4\xE2\x83\x92".b.freeze,
  "nvrArr" => "\xE2\xA4\x83".b.freeze,
  "nvrtrie" => "\xE2\x8A\xB5\xE2\x83\x92".b.freeze,
  "nvsim" => "\xE2\x88\xBC\xE2\x83\x92".b.freeze,
  "nwArr" => "\xE2\x87\x96".b.freeze,
  "nwarhk" => "\xE2\xA4\xA3".b.freeze,
  "nwarr" => "\xE2\x86\x96".b.freeze,
  "nwarrow" => "\xE2\x86\x96".b.freeze,
  "nwnear" => "\xE2\xA4\xA7".b.freeze,
  "oS" => "\xE2\x93\x88".b.freeze,
  "oacute" => "\xC3\xB3".b.freeze,
  "oast" => "\xE2\x8A\x9B".b.freeze,
  "ocir" => "\xE2\x8A\x9A".b.freeze,
  "ocirc" => "\xC3\xB4".b.freeze,
  "ocy" => "\xD0\xBE".b.freeze,
  "odash" => "\xE2\x8A\x9D".b.freeze,
  "odblac" => "\xC5\x91".b.freeze,
  "odiv" => "\xE2\xA8\xB8".b.freeze,
  "odot" => "\xE2\x8A\x99".b.freeze,
  "odsold" => "\xE2\xA6\xBC".b.freeze,
  "oelig" => "\xC5\x93".b.freeze,
  "ofcir" => "\xE2\xA6\xBF".b.freeze,
  "ofr" => "\xF0\x9D\x94\xAC".b.freeze,
  "ogon" => "\xCB\x9B".b.freeze,
  "ograve" => "\xC3\xB2".b.freeze,
  "ogt" => "\xE2\xA7\x81".b.freeze,
  "ohbar" => "\xE2\xA6\xB5".b.freeze,
  "ohm" => "\xCE\xA9".b.freeze,
  "oint" => "\xE2\x88\xAE".b.freeze,
  "olarr" => "\xE2\x86\xBA".b.freeze,
  "olcir" => "\xE2\xA6\xBE".b.freeze,
  "olcross" => "\xE2\xA6\xBB".b.freeze,
  "oline" => "\xE2\x80\xBE".b.freeze,
  "olt" => "\xE2\xA7\x80".b.freeze,
  "omacr" => "\xC5\x8D".b.freeze,
  "omega" => "\xCF\x89".b.freeze,
  "omicron" => "\xCE\xBF".b.freeze,
  "omid" => "\xE2\xA6\xB6".b.freeze,
  "ominus" => "\xE2\x8A\x96".b.freeze,
  "oopf" => "\xF0\x9D\x95\xA0".b.freeze,
  "opar" => "\xE2\xA6\xB7".b.freeze,
  "operp" => "\xE2\xA6\xB9".b.freeze,
  "oplus" => "\xE2\x8A\x95".b.freeze,
  "or" => "\xE2\x88\xA8".b.freeze,
  "orarr" => "\xE2\x86\xBB".b.freeze,
  "ord" => "\xE2\xA9\x9D".b.freeze,
  "order" => "\xE2\x84\xB4".b.freeze,
  "orderof" => "\xE2\x84\xB4".b.freeze,
  "ordf" => "\xC2\xAA".b.freeze,
  "ordm" => "\xC2\xBA".b.freeze,
  "origof" => "\xE2\x8A\xB6".b.freeze,
  "oror" => "\xE2\xA9\x96".b.freeze,
  "orslope" => "\xE2\xA9\x97".b.freeze,
  "orv" => "\xE2\xA9\x9B".b.freeze,
  "oscr" => "\xE2\x84\xB4".b.freeze,
  "oslash" => "\xC3\xB8".b.freeze,
  "osol" => "\xE2\x8A\x98".b.freeze,
  "otilde" => "\xC3\xB5".b.freeze,
  "otimes" => "\xE2\x8A\x97".b.freeze,
  "otimesas" => "\xE2\xA8\xB6".b.freeze,
  "ouml" => "\xC3\xB6".b.freeze,
  "ovbar" => "\xE2\x8C\xBD".b.freeze,
  "par" => "\xE2\x88\xA5".b.freeze,
  "para" => "\xC2\xB6".b.freeze,
  "parallel" => "\xE2\x88\xA5".b.freeze,
  "parsim" => "\xE2\xAB\xB3".b.freeze,
  "parsl" => "\xE2\xAB\xBD".b.freeze,
  "part" => "\xE2\x88\x82".b.freeze,
  "pcy" => "\xD0\xBF".b.freeze,
  "percnt" => "\x25".b.freeze,
  "period" => "\x2E".b.freeze,
  "permil" => "\xE2\x80\xB0".b.freeze,
  "perp" => "\xE2\x8A\xA5".b.freeze,
  "pertenk" => "\xE2\x80\xB1".b.freeze,
  "pfr" => "\xF0\x9D\x94\xAD".b.freeze,
  "phi" => "\xCF\x86".b.freeze,
  "phiv" => "\xCF\x95".b.freeze,
  "phmmat" => "\xE2\x84\xB3".b.freeze,
  "phone" => "\xE2\x98\x8E".b.freeze,
  "pi" => "\xCF\x80".b.freeze,
  "pitchfork" => "\xE2\x8B\x94".b.freeze,
  "piv" => "\xCF\x96".b.freeze,
  "planck" => "\xE2\x84\x8F".b.freeze,
  "planckh" => "\xE2\x84\x8E".b.freeze,
  "plankv" => "\xE2\x84\x8F".b.freeze,
  "plus" => "\x2B".b.freeze,
  "plusacir" => "\xE2\xA8\xA3".b.freeze,
  "plusb" => "\xE2\x8A\x9E".b.freeze,
  "pluscir" => "\xE2\xA8\xA2".b.freeze,
  "plusdo" => "\xE2\x88\x94".b.freeze,
  "plusdu" => "\xE2\xA8\xA5".b.freeze,
  "pluse" => "\xE2\xA9\xB2".b.freeze,
  "plusmn" => "\xC2\xB1".b.freeze,
  "plussim" => "\xE2\xA8\xA6".b.freeze,
  "plustwo" => "\xE2\xA8\xA7".b.freeze,
  "pm" => "\xC2\xB1".b.freeze,
  "pointint" => "\xE2\xA8\x95".b.freeze,
  "popf" => "\xF0\x9D\x95\xA1".b.freeze,
  "pound" => "\xC2\xA3".b.freeze,
  "pr" => "\xE2\x89\xBA".b.freeze,
  "prE" => "\xE2\xAA\xB3".b.freeze,
  "prap" => "\xE2\xAA\xB7".b.freeze,
  "prcue" => "\xE2\x89\xBC".b.freeze,
  "pre" => "\xE2\xAA\xAF".b.freeze,
  "prec" => "\xE2\x89\xBA".b.freeze,
  "precapprox" => "\xE2\xAA\xB7".b.freeze,
  "preccurlyeq" => "\xE2\x89\xBC".b.freeze,
  "preceq" => "\xE2\xAA\xAF".b.freeze,
  "precnapprox" => "\xE2\xAA\xB9".b.freeze,
  "precneqq" => "\xE2\xAA\xB5".b.freeze,
  "precnsim" => "\xE2\x8B\xA8".b.freeze,
  "precsim" => "\xE2\x89\xBE".b.freeze,
  "prime" => "\xE2\x80\xB2".b.freeze,
  "primes" => "\xE2\x84\x99".b.freeze,
  "prnE" => "\xE2\xAA\xB5".b.freeze,
  "prnap" => "\xE2\xAA\xB9".b.freeze,
  "prnsim" => "\xE2\x8B\xA8".b.freeze,
  "prod" => "\xE2\x88\x8F".b.freeze,
  "profalar" => "\xE2\x8C\xAE".b.freeze,
  "profline" => "\xE2\x8C\x92".b.freeze,
  "profsurf" => "\xE2\x8C\x93".b.freeze,
  "prop" => "\xE2\x88\x9D".b.freeze,
  "propto" => "\xE2\x88\x9D".b.freeze,
  "prsim" => "\xE2\x89\xBE".b.freeze,
  "prurel" => "\xE2\x8A\xB0".b.freeze,
  "pscr" => "\xF0\x9D\x93\x85".b.freeze,
  "psi" => "\xCF\x88".b.freeze,
  "puncsp" => "\xE2\x80\x88".b.freeze,
  "qfr" => "\xF0\x9D\x94\xAE".b.freeze,
  "qint" => "\xE2\xA8\x8C".b.freeze,
  "qopf" => "\xF0\x9D\x95\xA2".b.freeze,
  "qprime" => "\xE2\x81\x97".b.freeze,
  "qscr" => "\xF0\x9D\x93\x86".b.freeze,
  "quaternions" => "\xE2\x84\x8D".b.freeze,
  "quatint" => "\xE2\xA8\x96".b.freeze,
  "quest" => "\x3F".b.freeze,
  "questeq" => "\xE2\x89\x9F".b.freeze,
  "quot" => "\x22".b.freeze,
  "rAarr" => "\xE2\x87\x9B".b.freeze,
  "rArr" => "\xE2\x87\x92".b.freeze,
  "rAtail" => "\xE2\xA4\x9C".b.freeze,
  "rBarr" => "\xE2\xA4\x8F".b.freeze,
  "rHar" => "\xE2\xA5\xA4".b.freeze,
  "race" => "\xE2\x88\xBD\xCC\xB1".b.freeze,
  "racute" => "\xC5\x95".b.freeze,
  "radic" => "\xE2\x88\x9A".b.freeze,
  "raemptyv" => "\xE2\xA6\xB3".b.freeze,
  "rang" => "\xE2\x9F\xA9".b.freeze,
  "rangd" => "\xE2\xA6\x92".b.freeze,
  "range" => "\xE2\xA6\xA5".b.freeze,
  "rangle" => "\xE2\x9F\xA9".b.freeze,
  "raquo" => "\xC2\xBB".b.freeze,
  "rarr" => "\xE2\x86\x92".b.freeze,
  "rarrap" => "\xE2\xA5\xB5".b.freeze,
  "rarrb" => "\xE2\x87\xA5".b.freeze,
  "rarrbfs" => "\xE2\xA4\xA0".b.freeze,
  "rarrc" => "\xE2\xA4\xB3".b.freeze,
  "rarrfs" => "\xE2\xA4\x9E".b.freeze,
  "rarrhk" => "\xE2\x86\xAA".b.freeze,
  "rarrlp" => "\xE2\x86\xAC".b.freeze,
  "rarrpl" => "\xE2\xA5\x85".b.freeze,
  "rarrsim" => "\xE2\xA5\xB4".b.freeze,
  "rarrtl" => "\xE2\x86\xA3".b.freeze,
  "rarrw" => "\xE2\x86\x9D".b.freeze,
  "ratail" => "\xE2\xA4\x9A".b.freeze,
  "ratio" => "\xE2\x88\xB6".b.freeze,
  "rationals" => "\xE2\x84\x9A".b.freeze,
  "rbarr" => "\xE2\xA4\x8D".b.freeze,
  "rbbrk" => "\xE2\x9D\xB3".b.freeze,
  "rbrace" => "\x7D".b.freeze,
  "rbrack" => "\x5D".b.freeze,
  "rbrke" => "\xE2\xA6\x8C".b.freeze,
  "rbrksld" => "\xE2\xA6\x8E".b.freeze,
  "rbrkslu" => "\xE2\xA6\x90".b.freeze,
  "rcaron" => "\xC5\x99".b.freeze,
  "rcedil" => "\xC5\x97".b.freeze,
  "rceil" => "\xE2\x8C\x89".b.freeze,
  "rcub" => "\x7D".b.freeze,
  "rcy" => "\xD1\x80".b.freeze,
  "rdca" => "\xE2\xA4\xB7".b.freeze,
  "rdldhar" => "\xE2\xA5\xA9".b.freeze,
  "rdquo" => "\xE2\x80\x9D".b.freeze,
  "rdquor" => "\xE2\x80\x9D".b.freeze,
  "rdsh" => "\xE2\x86\xB3".b.freeze,
  "real" => "\xE2\x84\x9C".b.freeze,
  "realine" => "\xE2\x84\x9B".b.freeze,
  "realpart" => "\xE2\x84\x9C".b.freeze,
  "reals" => "\xE2\x84\x9D".b.freeze,
  "rect" => "\xE2\x96\xAD".b.freeze,
  "reg" => "\xC2\xAE".b.freeze,
  "rfisht" => "\xE2\xA5\xBD".b.freeze,
  "rfloor" => "\xE2\x8C\x8B".b.freeze,
  "rfr" => "\xF0\x9D\x94\xAF".b.freeze,
  "rhard" => "\xE2\x87\x81".b.freeze,
  "rharu" => "\xE2\x87\x80".b.freeze,
  "rharul" => "\xE2\xA5\xAC".b.freeze,
  "rho" => "\xCF\x81".b.freeze,
  "rhov" => "\xCF\xB1".b.freeze,
  "rightarrow" => "\xE2\x86\x92".b.freeze,
  "rightarrowtail" => "\xE2\x86\xA3".b.freeze,
  "rightharpoondown" => "\xE2\x87\x81".b.freeze,
  "rightharpoonup" => "\xE2\x87\x80".b.freeze,
  "rightleftarrows" => "\xE2\x87\x84".b.freeze,
  "rightleftharpoons" => "\xE2\x87\x8C".b.freeze,
  "rightrightarrows" => "\xE2\x87\x89".b.freeze,
  "rightsquigarrow" => "\xE2\x86\x9D".b.freeze,
  "rightthreetimes" => "\xE2\x8B\x8C".b.freeze,
  "ring" => "\xCB\x9A".b.freeze,
  "risingdotseq" => "\xE2\x89\x93".b.freeze,
  "rlarr" => "\xE2\x87\x84".b.freeze,
  "rlhar" => "\xE2\x87\x8C".b.freeze,
  "rlm" => "\xE2\x80\x8F".b.freeze,
  "rmoust" => "\xE2\x8E\xB1".b.freeze,
  "rmoustache" => "\xE2\x8E\xB1".b.freeze,
  "rnmid" => "\xE2\xAB\xAE".b.freeze,
  "roang" => "\xE2\x9F\xAD".b.freeze,
  "roarr" => "\xE2\x87\xBE".b.freeze,
  "robrk" => "\xE2\x9F\xA7".b.freeze,
  "ropar" => "\xE2\xA6\x86".b.freeze,
  "ropf" => "\xF0\x9D\x95\xA3".b.freeze,
  "roplus" => "\xE2\xA8\xAE".b.freeze,
  "rotimes" => "\xE2\xA8\xB5".b.freeze,
  "rpar" => "\x29".b.freeze,
  "rpargt" => "\xE2\xA6\x94".b.freeze,
  "rppolint" => "\xE2\xA8\x92".b.freeze,
  "rrarr" => "\xE2\x87\x89".b.freeze,
  "rsaquo" => "\xE2\x80\xBA".b.freeze,
  "rscr" => "\xF0\x9D\x93\x87".b.freeze,
  "rsh" => "\xE2\x86\xB1".b.freeze,
  "rsqb" => "\x5D".b.freeze,
  "rsquo" => "\xE2\x80\x99".b.freeze,
  "rsquor" => "\xE2\x80\x99".b.freeze,
  "rthree" => "\xE2\x8B\x8C".b.freeze,
  "rtimes" => "\xE2\x8B\x8A".b.freeze,
  "rtri" => "\xE2\x96\xB9".b.freeze,
  "rtrie" => "\xE2\x8A\xB5".b.freeze,
  "rtrif" => "\xE2\x96\xB8".b.freeze,
  "rtriltri" => "\xE2\xA7\x8E".b.freeze,
  "ruluhar" => "\xE2\xA5\xA8".b.freeze,
  "rx" => "\xE2\x84\x9E".b.freeze,
  "sacute" => "\xC5\x9B".b.freeze,
  "sbquo" => "\xE2\x80\x9A".b.freeze,
  "sc" => "\xE2\x89\xBB".b.freeze,
  "scE" => "\xE2\xAA\xB4".b.freeze,
  "scap" => "\xE2\xAA\xB8".b.freeze,
  "scaron" => "\xC5\xA1".b.freeze,
  "sccue" => "\xE2\x89\xBD".b.freeze,
  "sce" => "\xE2\xAA\xB0".b.freeze,
  "scedil" => "\xC5\x9F".b.freeze,
  "scirc" => "\xC5\x9D".b.freeze,
  "scnE" => "\xE2\xAA\xB6".b.freeze,
  "scnap" => "\xE2\xAA\xBA".b.freeze,
  "scnsim" => "\xE2\x8B\xA9".b.freeze,
  "scpolint" => "\xE2\xA8\x93".b.freeze,
  "scsim" => "\xE2\x89\xBF".b.freeze,
  "scy" => "\xD1\x81".b.freeze,
  "sdot" => "\xE2\x8B\x85".b.freeze,
  "sdotb" => "\xE2\x8A\xA1".b.freeze,
  "sdote" => "\xE2\xA9\xA6".b.freeze,
  "seArr" => "\xE2\x87\x98".b.freeze,
  "searhk" => "\xE2\xA4\xA5".b.freeze,
  "searr" => "\xE2\x86\x98".b.freeze,
  "searrow" => "\xE2\x86\x98".b.freeze,
  "sect" => "\xC2\xA7".b.freeze,
  "semi" => "\x3B".b.freeze,
  "seswar" => "\xE2\xA4\xA9".b.freeze,
  "setminus" => "\xE2\x88\x96".b.freeze,
  "setmn" => "\xE2\x88\x96".b.freeze,
  "sext" => "\xE2\x9C\xB6".b.freeze,
  "sfr" => "\xF0\x9D\x94\xB0".b.freeze,
  "sfrown" => "\xE2\x8C\xA2".b.freeze,
  "sharp" => "\xE2\x99\xAF".b.freeze,
  "shchcy" => "\xD1\x89".b.freeze,
  "shcy" => "\xD1\x88".b.freeze,
  "shortmid" => "\xE2\x88\xA3".b.freeze,
  "shortparallel" => "\xE2\x88\xA5".b.freeze,
  "shy" => "\xC2\xAD".b.freeze,
  "sigma" => "\xCF\x83".b.freeze,
  "sigmaf" => "\xCF\x82".b.freeze,
  "sigmav" => "\xCF\x82".b.freeze,
  "sim" => "\xE2\x88\xBC".b.freeze,
  "simdot" => "\xE2\xA9\xAA".b.freeze,
  "sime" => "\xE2\x89\x83".b.freeze,
  "simeq" => "\xE2\x89\x83".b.freeze,
  "simg" => "\xE2\xAA\x9E".b.freeze,
  "simgE" => "\xE2\xAA\xA0".b.freeze,
  "siml" => "\xE2\xAA\x9D".b.freeze,
  "simlE" => "\xE2\xAA\x9F".b.freeze,
  "simne" => "\xE2\x89\x86".b.freeze,
  "simplus" => "\xE2\xA8\xA4".b.freeze,
  "simrarr" => "\xE2\xA5\xB2".b.freeze,
  "slarr" => "\xE2\x86\x90".b.freeze,
  "smallsetminus" => "\xE2\x88\x96".b.freeze,
  "smashp" => "\xE2\xA8\xB3".b.freeze,
  "smeparsl" => "\xE2\xA7\xA4".b.freeze,
  "smid" => "\xE2\x88\xA3".b.freeze,
  "smile" => "\xE2\x8C\xA3".b.freeze,
  "smt" => "\xE2\xAA\xAA".b.freeze,
  "smte" => "\xE2\xAA\xAC".b.freeze,
  "smtes" => "\xE2\xAA\xAC\xEF\xB8\x80".b.freeze,
  "softcy" => "\xD1\x8C".b.freeze,
  "sol" => "\x2F".b.freeze,
  "solb" => "\xE2\xA7\x84".b.freeze,
  "solbar" => "\xE2\x8C\xBF".b.freeze,
  "sopf" => "\xF0\x9D\x95\xA4".b.freeze,
  "spades" => "\xE2\x99\xA0".b.freeze,
  "spadesuit" => "\xE2\x99\xA0".b.freeze,
  "spar" => "\xE2\x88\xA5".b.freeze,
  "sqcap" => "\xE2\x8A\x93".b.freeze,
  "sqcaps" => "\xE2\x8A\x93\xEF\xB8\x80".b.freeze,
  "sqcup" => "\xE2\x8A\x94".b.freeze,
  "sqcups" => "\xE2\x8A\x94\xEF\xB8\x80".b.freeze,
  "sqsub" => "\xE2\x8A\x8F".b.freeze,
  "sqsube" => "\xE2\x8A\x91".b.freeze,
  "sqsubset" => "\xE2\x8A\x8F".b.freeze,
  "sqsubseteq" => "\xE2\x8A\x91".b.freeze,
  "sqsup" => "\xE2\x8A\x90".b.freeze,
  "sqsupe" => "\xE2\x8A\x92".b.freeze,
  "sqsupset" => "\xE2\x8A\x90".b.freeze,
  "sqsupseteq" => "\xE2\x8A\x92".b.freeze,
  "squ" => "\xE2\x96\xA1".b.freeze,
  "square" => "\xE2\x96\xA1".b.freeze,
  "squarf" => "\xE2\x96\xAA".b.freeze,
  "squf" => "\xE2\x96\xAA".b.freeze,
  "srarr" => "\xE2\x86\x92".b.freeze,
  "sscr" => "\xF0\x9D\x93\x88".b.freeze,
  "ssetmn" => "\xE2\x88\x96".b.freeze,
  "ssmile" => "\xE2\x8C\xA3".b.freeze,
  "sstarf" => "\xE2\x8B\x86".b.freeze,
  "star" => "\xE2\x98\x86".b.freeze,
  "starf" => "\xE2\x98\x85".b.freeze,
  "straightepsilon" => "\xCF\xB5".b.freeze,
  "straightphi" => "\xCF\x95".b.freeze,
  "strns" => "\xC2\xAF".b.freeze,
  "sub" => "\xE2\x8A\x82".b.freeze,
  "subE" => "\xE2\xAB\x85".b.freeze,
  "subdot" => "\xE2\xAA\xBD".b.freeze,
  "sube" => "\xE2\x8A\x86".b.freeze,
  "subedot" => "\xE2\xAB\x83".b.freeze,
  "submult" => "\xE2\xAB\x81".b.freeze,
  "subnE" => "\xE2\xAB\x8B".b.freeze,
  "subne" => "\xE2\x8A\x8A".b.freeze,
  "subplus" => "\xE2\xAA\xBF".b.freeze,
  "subrarr" => "\xE2\xA5\xB9".b.freeze,
  "subset" => "\xE2\x8A\x82".b.freeze,
  "subseteq" => "\xE2\x8A\x86".b.freeze,
  "subseteqq" => "\xE2\xAB\x85".b.freeze,
  "subsetneq" => "\xE2\x8A\x8A".b.freeze,
  "subsetneqq" => "\xE2\xAB\x8B".b.freeze,
  "subsim" => "\xE2\xAB\x87".b.freeze,
  "subsub" => "\xE2\xAB\x95".b.freeze,
  "subsup" => "\xE2\xAB\x93".b.freeze,
  "succ" => "\xE2\x89\xBB".b.freeze,
  "succapprox" => "\xE2\xAA\xB8".b.freeze,
  "succcurlyeq" => "\xE2\x89\xBD".b.freeze,
  "succeq" => "\xE2\xAA\xB0".b.freeze,
  "succnapprox" => "\xE2\xAA\xBA".b.freeze,
  "succneqq" => "\xE2\xAA\xB6".b.freeze,
  "succnsim" => "\xE2\x8B\xA9".b.freeze,
  "succsim" => "\xE2\x89\xBF".b.freeze,
  "sum" => "\xE2\x88\x91".b.freeze,
  "sung" => "\xE2\x99\xAA".b.freeze,
  "sup" => "\xE2\x8A\x83".b.freeze,
  "sup1" => "\xC2\xB9".b.freeze,
  "sup2" => "\xC2\xB2".b.freeze,
  "sup3" => "\xC2\xB3".b.freeze,
  "supE" => "\xE2\xAB\x86".b.freeze,
  "supdot" => "\xE2\xAA\xBE".b.freeze,
  "supdsub" => "\xE2\xAB\x98".b.freeze,
  "supe" => "\xE2\x8A\x87".b.freeze,
  "supedot" => "\xE2\xAB\x84".b.freeze,
  "suphsol" => "\xE2\x9F\x89".b.freeze,
  "suphsub" => "\xE2\xAB\x97".b.freeze,
  "suplarr" => "\xE2\xA5\xBB".b.freeze,
  "supmult" => "\xE2\xAB\x82".b.freeze,
  "supnE" => "\xE2\xAB\x8C".b.freeze,
  "supne" => "\xE2\x8A\x8B".b.freeze,
  "supplus" => "\xE2\xAB\x80".b.freeze,
  "supset" => "\xE2\x8A\x83".b.freeze,
  "supseteq" => "\xE2\x8A\x87".b.freeze,
  "supseteqq" => "\xE2\xAB\x86".b.freeze,
  "supsetneq" => "\xE2\x8A\x8B".b.freeze,
  "supsetneqq" => "\xE2\xAB\x8C".b.freeze,
  "supsim" => "\xE2\xAB\x88".b.freeze,
  "supsub" => "\xE2\xAB\x94".b.freeze,
  "supsup" => "\xE2\xAB\x96".b.freeze,
  "swArr" => "\xE2\x87\x99".b.freeze,
  "swarhk" => "\xE2\xA4\xA6".b.freeze,
  "swarr" => "\xE2\x86\x99".b.freeze,
  "swarrow" => "\xE2\x86\x99".b.freeze,
  "swnwar" => "\xE2\xA4\xAA".b.freeze,
  "szlig" => "\xC3\x9F".b.freeze,
  "target" => "\xE2\x8C\x96".b.freeze,
  "tau" => "\xCF\x84".b.freeze,
  "tbrk" => "\xE2\x8E\xB4".b.freeze,
  "tcaron" => "\xC5\xA5".b.freeze,
  "tcedil" => "\xC5\xA3".b.freeze,
  "tcy" => "\xD1\x82".b.freeze,
  "tdot" => "\xE2\x83\x9B".b.freeze,
  "telrec" => "\xE2\x8C\x95".b.freeze,
  "tfr" => "\xF0\x9D\x94\xB1".b.freeze,
  "there4" => "\xE2\x88\xB4".b.freeze,
  "therefore" => "\xE2\x88\xB4".b.freeze,
  "theta" => "\xCE\xB8".b.freeze,
  "thetasym" => "\xCF\x91".b.freeze,
  "thetav" => "\xCF\x91".b.freeze,
  "thickapprox" => "\xE2\x89\x88".b.freeze,
  "thicksim" => "\xE2\x88\xBC".b.freeze,
  "thinsp" => "\xE2\x80\x89".b.freeze,
  "thkap" => "\xE2\x89\x88".b.freeze,
  "thksim" => "\xE2\x88\xBC".b.freeze,
  "thorn" => "\xC3\xBE".b.freeze,
  "tilde" => "\xCB\x9C".b.freeze,
  "times" => "\xC3\x97".b.freeze,
  "timesb" => "\xE2\x8A\xA0".b.freeze,
  "timesbar" => "\xE2\xA8\xB1".b.freeze,
  "timesd" => "\xE2\xA8\xB0".b.freeze,
  "tint" => "\xE2\x88\xAD".b.freeze,
  "toea" => "\xE2\xA4\xA8".b.freeze,
  "top" => "\xE2\x8A\xA4".b.freeze,
  "topbot" => "\xE2\x8C\xB6".b.freeze,
  "topcir" => "\xE2\xAB\xB1".b.freeze,
  "topf" => "\xF0\x9D\x95\xA5".b.freeze,
  "topfork" => "\xE2\xAB\x9A".b.freeze,
  "tosa" => "\xE2\xA4\xA9".b.freeze,
  "tprime" => "\xE2\x80\xB4".b.freeze,
  "trade" => "\xE2\x84\xA2".b.freeze,
  "triangle" => "\xE2\x96\xB5".b.freeze,
  "triangledown" => "\xE2\x96\xBF".b.freeze,
  "triangleleft" => "\xE2\x97\x83".b.freeze,
  "trianglelefteq" => "\xE2\x8A\xB4".b.freeze,
  "triangleq" => "\xE2\x89\x9C".b.freeze,
  "triangleright" => "\xE2\x96\xB9".b.freeze,
  "trianglerighteq" => "\xE2\x8A\xB5".b.freeze,
  "tridot" => "\xE2\x97\xAC".b.freeze,
  "trie" => "\xE2\x89\x9C".b.freeze,
  "triminus" => "\xE2\xA8\xBA".b.freeze,
  "triplus" => "\xE2\xA8\xB9".b.freeze,
  "trisb" => "\xE2\xA7\x8D".b.freeze,
  "tritime" => "\xE2\xA8\xBB".b.freeze,
  "trpezium" => "\xE2\x8F\xA2".b.freeze,
  "tscr" => "\xF0\x9D\x93\x89".b.freeze,
  "tscy" => "\xD1\x86".b.freeze,
  "tshcy" => "\xD1\x9B".b.freeze,
  "tstrok" => "\xC5\xA7".b.freeze,
  "twixt" => "\xE2\x89\xAC".b.freeze,
  "twoheadleftarrow" => "\xE2\x86\x9E".b.freeze,
  "twoheadrightarrow" => "\xE2\x86\xA0".b.freeze,
  "uArr" => "\xE2\x87\x91".b.freeze,
  "uHar" => "\xE2\xA5\xA3".b.freeze,
  "uacute" => "\xC3\xBA".b.freeze,
  "uarr" => "\xE2\x86\x91".b.freeze,
  "ubrcy" => "\xD1\x9E".b.freeze,
  "ubreve" => "\xC5\xAD".b.freeze,
  "ucirc" => "\xC3\xBB".b.freeze,
  "ucy" => "\xD1\x83".b.freeze,
  "udarr" => "\xE2\x87\x85".b.freeze,
  "udblac" => "\xC5\xB1".b.freeze,
  "udhar" => "\xE2\xA5\xAE".b.freeze,
  "ufisht" => "\xE2\xA5\xBE".b.freeze,
  "ufr" => "\xF0\x9D\x94\xB2".b.freeze,
  "ugrave" => "\xC3\xB9".b.freeze,
  "uharl" => "\xE2\x86\xBF".b.freeze,
  "uharr" => "\xE2\x86\xBE".b.freeze,
  "uhblk" => "\xE2\x96\x80".b.freeze,
  "ulcorn" => "\xE2\x8C\x9C".b.freeze,
  "ulcorner" => "\xE2\x8C\x9C".b.freeze,
  "ulcrop" => "\xE2\x8C\x8F".b.freeze,
  "ultri" => "\xE2\x97\xB8".b.freeze,
  "umacr" => "\xC5\xAB".b.freeze,
  "uml" => "\xC2\xA8".b.freeze,
  "uogon" => "\xC5\xB3".b.freeze,
  "uopf" => "\xF0\x9D\x95\xA6".b.freeze,
  "uparrow" => "\xE2\x86\x91".b.freeze,
  "updownarrow" => "\xE2\x86\x95".b.freeze,
  "upharpoonleft" => "\xE2\x86\xBF".b.freeze,
  "upharpoonright" => "\xE2\x86\xBE".b.freeze,
  "uplus" => "\xE2\x8A\x8E".b.freeze,
  "upsi" => "\xCF\x85".b.freeze,
  "upsih" => "\xCF\x92".b.freeze,
  "upsilon" => "\xCF\x85".b.freeze,
  "upuparrows" => "\xE2\x87\x88".b.freeze,
  "urcorn" => "\xE2\x8C\x9D".b.freeze,
  "urcorner" => "\xE2\x8C\x9D".b.freeze,
  "urcrop" => "\xE2\x8C\x8E".b.freeze,
  "uring" => "\xC5\xAF".b.freeze,
  "urtri" => "\xE2\x97\xB9".b.freeze,
  "uscr" => "\xF0\x9D\x93\x8A".b.freeze,
  "utdot" => "\xE2\x8B\xB0".b.freeze,
  "utilde" => "\xC5\xA9".b.freeze,
  "utri" => "\xE2\x96\xB5".b.freeze,
  "utrif" => "\xE2\x96\xB4".b.freeze,
  "uuarr" => "\xE2\x87\x88".b.freeze,
  "uuml" => "\xC3\xBC".b.freeze,
  "uwangle" => "\xE2\xA6\xA7".b.freeze,
  "vArr" => "\xE2\x87\x95".b.freeze,
  "vBar" => "\xE2\xAB\xA8".b.freeze,
  "vBarv" => "\xE2\xAB\xA9".b.freeze,
  "vDash" => "\xE2\x8A\xA8".b.freeze,
  "vangrt" => "\xE2\xA6\x9C".b.freeze,
  "varepsilon" => "\xCF\xB5".b.freeze,
  "varkappa" => "\xCF\xB0".b.freeze,
  "varnothing" => "\xE2\x88\x85".b.freeze,
  "varphi" => "\xCF\x95".b.freeze,
  "varpi" => "\xCF\x96".b.freeze,
  "varpropto" => "\xE2\x88\x9D".b.freeze,
  "varr" => "\xE2\x86\x95".b.freeze,
  "varrho" => "\xCF\xB1".b.freeze,
  "varsigma" => "\xCF\x82".b.freeze,
  "varsubsetneq" => "\xE2\x8A\x8A\xEF\xB8\x80".b.freeze,
  "varsubsetneqq" => "\xE2\xAB\x8B\xEF\xB8\x80".b.freeze,
  "varsupsetneq" => "\xE2\x8A\x8B\xEF\xB8\x80".b.freeze,
  "varsupsetneqq" => "\xE2\xAB\x8C\xEF\xB8\x80".b.freeze,
  "vartheta" => "\xCF\x91".b.freeze,
  "vartriangleleft" => "\xE2\x8A\xB2".b.freeze,
  "vartriangleright" => "\xE2\x8A\xB3".b.freeze,
  "vcy" => "\xD0\xB2".b.freeze,
  "vdash" => "\xE2\x8A\xA2".b.freeze,
  "vee" => "\xE2\x88\xA8".b.freeze,
  "veebar" => "\xE2\x8A\xBB".b.freeze,
  "veeeq" => "\xE2\x89\x9A".b.freeze,
  "vellip" => "\xE2\x8B\xAE".b.freeze,
  "verbar" => "\x7C".b.freeze,
  "vert" => "\x7C".b.freeze,
  "vfr" => "\xF0\x9D\x94\xB3".b.freeze,
  "vltri" => "\xE2\x8A\xB2".b.freeze,
  "vnsub" => "\xE2\x8A\x82\xE2\x83\x92".b.freeze,
  "vnsup" => "\xE2\x8A\x83\xE2\x83\x92".b.freeze,
  "vopf" => "\xF0\x9D\x95\xA7".b.freeze,
  "vprop" => "\xE2\x88\x9D".b.freeze,
  "vrtri" => "\xE2\x8A\xB3".b.freeze,
  "vscr" => "\xF0\x9D\x93\x8B".b.freeze,
  "vsubnE" => "\xE2\xAB\x8B\xEF\xB8\x80".b.freeze,
  "vsubne" => "\xE2\x8A\x8A\xEF\xB8\x80".b.freeze,
  "vsupnE" => "\xE2\xAB\x8C\xEF\xB8\x80".b.freeze,
  "vsupne" => "\xE2\x8A\x8B\xEF\xB8\x80".b.freeze,
  "vzigzag" => "\xE2\xA6\x9A".b.freeze,
  "wcirc" => "\xC5\xB5".b.freeze,
  "wedbar" => "\xE2\xA9\x9F".b.freeze,
  "wedge" => "\xE2\x88\xA7".b.freeze,
  "wedgeq" => "\xE2\x89\x99".b.freeze,
  "weierp" => "\xE2\x84\x98".b.freeze,
  "wfr" => "\xF0\x9D\x94\xB4".b.freeze,
  "wopf" => "\xF0\x9D\x95\xA8".b.freeze,
  "wp" => "\xE2\x84\x98".b.freeze,
  "wr" => "\xE2\x89\x80".b.freeze,
  "wreath" => "\xE2\x89\x80".b.freeze,
  "wscr" => "\xF0\x9D\x93\x8C".b.freeze,
  "xcap" => "\xE2\x8B\x82".b.freeze,
  "xcirc" => "\xE2\x97\xAF".b.freeze,
  "xcup" => "\xE2\x8B\x83".b.freeze,
  "xdtri" => "\xE2\x96\xBD".b.freeze,
  "xfr" => "\xF0\x9D\x94\xB5".b.freeze,
  "xhArr" => "\xE2\x9F\xBA".b.freeze,
  "xharr" => "\xE2\x9F\xB7".b.freeze,
  "xi" => "\xCE\xBE".b.freeze,
  "xlArr" => "\xE2\x9F\xB8".b.freeze,
  "xlarr" => "\xE2\x9F\xB5".b.freeze,
  "xmap" => "\xE2\x9F\xBC".b.freeze,
  "xnis" => "\xE2\x8B\xBB".b.freeze,
  "xodot" => "\xE2\xA8\x80".b.freeze,
  "xopf" => "\xF0\x9D\x95\xA9".b.freeze,
  "xoplus" => "\xE2\xA8\x81".b.freeze,
  "xotime" => "\xE2\xA8\x82".b.freeze,
  "xrArr" => "\xE2\x9F\xB9".b.freeze,
  "xrarr" => "\xE2\x9F\xB6".b.freeze,
  "xscr" => "\xF0\x9D\x93\x8D".b.freeze,
  "xsqcup" => "\xE2\xA8\x86".b.freeze,
  "xuplus" => "\xE2\xA8\x84".b.freeze,
  "xutri" => "\xE2\x96\xB3".b.freeze,
  "xvee" => "\xE2\x8B\x81".b.freeze,
  "xwedge" => "\xE2\x8B\x80".b.freeze,
  "yacute" => "\xC3\xBD".b.freeze,
  "yacy" => "\xD1\x8F".b.freeze,
  "ycirc" => "\xC5\xB7".b.freeze,
  "ycy" => "\xD1\x8B".b.freeze,
  "yen" => "\xC2\xA5".b.freeze,
  "yfr" => "\xF0\x9D\x94\xB6".b.freeze,
  "yicy" => "\xD1\x97".b.freeze,
  "yopf" => "\xF0\x9D\x95\xAA".b.freeze,
  "yscr" => "\xF0\x9D\x93\x8E".b.freeze,
  "yucy" => "\xD1\x8E".b.freeze,
  "yuml" => "\xC3\xBF".b.freeze,
  "zacute" => "\xC5\xBA".b.freeze,
  "zcaron" => "\xC5\xBE".b.freeze,
  "zcy" => "\xD0\xB7".b.freeze,
  "zdot" => "\xC5\xBC".b.freeze,
  "zeetrf" => "\xE2\x84\xA8".b.freeze,
  "zeta" => "\xCE\xB6".b.freeze,
  "zfr" => "\xF0\x9D\x94\xB7".b.freeze,
  "zhcy" => "\xD0\xB6".b.freeze,
  "zigrarr" => "\xE2\x87\x9D".b.freeze,
  "zopf" => "\xF0\x9D\x95\xAB".b.freeze,
  "zscr" => "\xF0\x9D\x93\x8F".b.freeze,
  "zwj" => "\xE2\x80\x8D".b.freeze,
  "zwnj" => "\xE2\x80\x8C".b.freeze,
}.freeze
ENTITY_RE =

CommonMark entity reference grammar (with spec-mandated digit caps):

- named:   &name;          one HTML5 named reference
- decimal: &#NNNNNNN;      1 to 7 decimal digits
- hex:     &#xHHHHHH;      1 to 6 hex digits

The digit counts cover every Unicode code point (0x10FFFF fits in 7 decimal / 6 hex digits) – longer sequences are not valid NCRs and must be treated as literal text.

/&(?:[A-Za-z][A-Za-z0-9]+|\#[0-9]{1,7}|\#[xX][0-9A-Fa-f]{1,6});/
REPLACEMENT_CHARACTER =
"\uFFFD"

Class Method Summary collapse

Class Method Details

.ascii_punct_byte?(byte) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/red_quilt/inline.rb', line 30

def ascii_punct_byte?(byte)
  ASCII_PUNCT[byte]
end

.decode_entity(raw) ⇒ Object

Decode one ‘&…;` entity match. Returns the decoded string or the original `raw` when no decoding applies. Numeric references that would produce U+0000, a surrogate, or a value outside the Unicode range are replaced with U+FFFD per CommonMark spec 6.4.



2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
# File 'lib/red_quilt/inline/html_entities.rb', line 2155

def decode_entity(raw)
  if raw.start_with?("&#")
    body = raw[2..-2]
    codepoint = if body.start_with?("x", "X")
                  body[1..].to_i(16)
                else
                  body.to_i(10)
                end
    decode_numeric_codepoint(codepoint)
  else
    encoded = HTML_ENTITIES[raw[1..-2]]
    return raw unless encoded

    encoded.dup.force_encoding(Encoding::UTF_8)
  end
end

.decode_numeric_codepoint(codepoint) ⇒ Object



2172
2173
2174
2175
2176
2177
2178
# File 'lib/red_quilt/inline/html_entities.rb', line 2172

def decode_numeric_codepoint(codepoint)
  return REPLACEMENT_CHARACTER if codepoint.zero?
  return REPLACEMENT_CHARACTER if codepoint > MAX_UNICODE_CODEPOINT
  return REPLACEMENT_CHARACTER if SURROGATE_RANGE.cover?(codepoint)

  codepoint.chr(Encoding::UTF_8)
end