packages feed

html-entities (empty) → 1.0.0.0

raw patch · 8 files changed

+2532/−0 lines, 8 filesdep +attoparsecdep +basedep +base-preludebuild-type:Customsetup-changed

Dependencies added: attoparsec, base, base-prelude, directory, doctest, filepath, text, unordered-containers

Files

+ LICENSE view
@@ -0,0 +1,22 @@+Copyright (c) 2015, Nikita Volkov++Permission is hereby granted, free of charge, to any person+obtaining a copy of this software and associated documentation+files (the "Software"), to deal in the Software without+restriction, including without limitation the rights to use,+copy, modify, merge, publish, distribute, sublicense, and/or sell+copies of the Software, and to permit persons to whom the+Software is furnished to do so, subject to the following+conditions:++The above copyright notice and this permission notice shall be+included in all copies or substantial portions of the Software.++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR+OTHER DEALINGS IN THE SOFTWARE.
+ Setup.hs view
@@ -0,0 +1,42 @@+-- The code is mostly ripped from+-- https://github.com/ekmett/lens/blob/697582fb9a980f273dbf8496253c5bbefedd0a8b/Setup.lhs+import Data.List ( nub )+import Data.Version ( showVersion )+import Distribution.Package ( PackageName(PackageName), Package, PackageId, InstalledPackageId, packageVersion, packageName )+import Distribution.PackageDescription ( PackageDescription(), TestSuite(..) )+import Distribution.Simple ( defaultMainWithHooks, UserHooks(..), simpleUserHooks )+import Distribution.Simple.Utils ( rewriteFile, createDirectoryIfMissingVerbose, copyFiles )+import Distribution.Simple.BuildPaths ( autogenModulesDir )+import Distribution.Simple.Setup ( BuildFlags(buildVerbosity), Flag(..), fromFlag, HaddockFlags(haddockDistPref))+import Distribution.Simple.LocalBuildInfo ( withLibLBI, withTestLBI, LocalBuildInfo(), ComponentLocalBuildInfo(componentPackageDeps) )+import Distribution.Text ( display )+import Distribution.Verbosity ( Verbosity, normal )+import System.FilePath ( (</>) )++main :: IO ()+main = defaultMainWithHooks simpleUserHooks+  { buildHook = \pkg lbi hooks flags -> do+     generateBuildModule (fromFlag (buildVerbosity flags)) pkg lbi+     buildHook simpleUserHooks pkg lbi hooks flags+  }++generateBuildModule :: Verbosity -> PackageDescription -> LocalBuildInfo -> IO ()+generateBuildModule verbosity pkg lbi = do+  let dir = autogenModulesDir lbi+  createDirectoryIfMissingVerbose verbosity True dir+  withLibLBI pkg lbi $ \_ libcfg -> do+    withTestLBI pkg lbi $ \suite suitecfg -> do+      rewriteFile (dir </> "Build_" ++ testName suite ++ ".hs") $ unlines+        [ "module Build_" ++ testName suite ++ " where"+        , "import Prelude"+        , "deps :: [String]"+        , "deps = " ++ (show $ formatdeps (testDeps libcfg suitecfg))+        ]+  where+    formatdeps = map (formatone . snd)+    formatone p = case packageName p of+      PackageName n -> n ++ "-" ++ showVersion (packageVersion p)++testDeps :: ComponentLocalBuildInfo -> ComponentLocalBuildInfo -> [(InstalledPackageId, PackageId)]+testDeps xs ys = nub $ componentPackageDeps xs ++ componentPackageDeps ys+
+ doctest/Main.hs view
@@ -0,0 +1,66 @@+-- The code is mostly ripped from+-- https://github.com/ekmett/lens/blob/d1d97469f0e93c1d3535308954a060e8a04e37aa/tests/doctests.hsc+import BasePrelude+import System.Directory+import System.FilePath+import Test.DocTest+import Build_doctest (deps)++main :: IO ()+main = do+  sources <- getSources+  doctest $ dfltParams ++ map ("-package="++) deps ++ sources+  where+    dfltParams = +      [+        "-isrc",+        "-idist/build/autogen",+        "-optP-include",+        "-optPdist/build/autogen/cabal_macros.h",+        "-XArrows",+        "-XBangPatterns",+        "-XConstraintKinds",+        "-XDataKinds",+        "-XDefaultSignatures",+        "-XDeriveDataTypeable",+        "-XDeriveFunctor",+        "-XDeriveGeneric",+        "-XEmptyDataDecls",+        "-XFlexibleContexts",+        "-XFlexibleInstances",+        "-XFunctionalDependencies",+        "-XGADTs",+        "-XGeneralizedNewtypeDeriving",+        "-XImpredicativeTypes",+        "-XLambdaCase",+        "-XLiberalTypeSynonyms",+        "-XMultiParamTypeClasses",+        "-XMultiWayIf",+        "-XNoImplicitPrelude",+        "-XNoMonomorphismRestriction",+        "-XOverloadedStrings",+        "-XPatternGuards",+        "-XParallelListComp",+        "-XQuasiQuotes",+        "-XRankNTypes",+        "-XRecordWildCards",+        "-XScopedTypeVariables",+        "-XStandaloneDeriving",+        "-XTemplateHaskell",+        "-XTupleSections",+        "-XTypeFamilies",+        "-XTypeOperators",+        "-hide-all-packages"+      ]++getSources :: IO [FilePath]+getSources = filter (isSuffixOf ".hs") <$> go "library"+  where+    go dir = do+      (dirs, files) <- getFilesAndDirectories dir+      (files ++) . concat <$> mapM go dirs++getFilesAndDirectories :: FilePath -> IO ([FilePath], [FilePath])+getFilesAndDirectories dir = do+  c <- map (dir </>) . filter (`notElem` ["..", "."]) <$> getDirectoryContents dir+  (,) <$> filterM doesDirectoryExist c <*> filterM doesFileExist c
+ html-entities.cabal view
@@ -0,0 +1,78 @@+name:+  html-entities+version:+  1.0.0.0+synopsis:+  An "attoparsec" parser and a decoder of HTML entities+category:+  Parsing, Codecs+homepage:+  https://github.com/nikita-volkov/html-entities+bug-reports:+  https://github.com/nikita-volkov/html-entities/issues +author:+  Nikita Volkov <nikita.y.volkov@mail.ru>+maintainer:+  Nikita Volkov <nikita.y.volkov@mail.ru>+copyright:+  (c) 2015, Nikita Volkov+license:+  MIT+license-file:+  LICENSE+build-type:+  Custom+cabal-version:+  >=1.10+++source-repository head+  type:+    git+  location:+    git://github.com/nikita-volkov/html-entities.git+++library+  hs-source-dirs:+    library+  other-modules:+    HTMLEntities.NamedTable+    HTMLEntities.Prelude+  exposed-modules:+    HTMLEntities.Parser+    HTMLEntities.Decoder+  build-depends:+    unordered-containers == 0.2.*,+    text >= 1 && < 1.3,+    attoparsec >= 0.10 && < 0.13,+    base-prelude >= 0.1.19 && < 0.2+  ghc-options:+    -funbox-strict-fields+  default-extensions:+    Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, ImpredicativeTypes, LambdaCase, LiberalTypeSynonyms, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators+  default-language:+    Haskell2010+++test-suite doctest+  type:+    exitcode-stdio-1.0+  hs-source-dirs:+    doctest+  main-is:+    Main.hs+  ghc-options:+    -threaded+    "-with-rtsopts=-N"+    -funbox-strict-fields+  default-extensions:+    Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, ImpredicativeTypes, LambdaCase, LiberalTypeSynonyms, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators+  default-language:+    Haskell2010+  build-depends:+    doctest == 0.9.*,+    directory == 1.2.*,+    filepath >= 1.3 && < 1.5,+    base-prelude,+    base
+ library/HTMLEntities/Decoder.hs view
@@ -0,0 +1,39 @@+-- |+-- Utilities, which execute the parser.+module HTMLEntities.Decoder where++import HTMLEntities.Prelude+import qualified Data.Text.Lazy.Builder as TLB+import qualified Data.Attoparsec.Text as P+import qualified HTMLEntities.Parser as P+++type Decoder a =+  Text -> Either String a++-- |+-- A decoder of a single entity.+-- +-- >>> htmlEntity "&#169;"+-- Right "\169"+htmlEntity :: Decoder Text+htmlEntity =+  P.parseOnly $+  P.htmlEntity <* P.endOfInput++-- |+-- A decoder of a text with entities.+-- +-- Produces a text builder, +-- which you can then convert into a text or a lazy text,+-- using the \"text\" library.+-- +-- >>> fmap TLB.toLazyText $ htmlEncodedText "&euro;5 &cent;2"+-- Right "\8364\&5 \162\&2"+htmlEncodedText :: Decoder TLB.Builder+htmlEncodedText =+  P.parseOnly $+  fmap fold $+  many $+  fmap TLB.fromText P.htmlEntity <|> fmap TLB.singleton P.anyChar+
+ library/HTMLEntities/NamedTable.hs view
@@ -0,0 +1,2249 @@+-- |+-- A named entities table as per+-- <https://html.spec.whatwg.org/multipage/entities.json>.+module HTMLEntities.NamedTable where++import HTMLEntities.Prelude+import qualified Data.HashMap.Strict as HM+++lookup :: Text -> Maybe Text+lookup k = +  HM.lookup k table++table :: HM.HashMap Text Text+table =+  HM.fromList+  [+    ("Aacute", "\x00C1"),+    ("Aacute", "\x00C1"),+    ("aacute", "\x00E1"),+    ("aacute", "\x00E1"),+    ("Abreve", "\x0102"),+    ("abreve", "\x0103"),+    ("ac", "\x223E"),+    ("acd", "\x223F"),+    ("acE", "\x223E\x0333"),+    ("Acirc", "\x00C2"),+    ("Acirc", "\x00C2"),+    ("acirc", "\x00E2"),+    ("acirc", "\x00E2"),+    ("acute", "\x00B4"),+    ("acute", "\x00B4"),+    ("Acy", "\x0410"),+    ("acy", "\x0430"),+    ("AElig", "\x00C6"),+    ("AElig", "\x00C6"),+    ("aelig", "\x00E6"),+    ("aelig", "\x00E6"),+    ("af", "\x2061"),+    ("Afr", "\xD835\xDD04"),+    ("afr", "\xD835\xDD1E"),+    ("Agrave", "\x00C0"),+    ("Agrave", "\x00C0"),+    ("agrave", "\x00E0"),+    ("agrave", "\x00E0"),+    ("alefsym", "\x2135"),+    ("aleph", "\x2135"),+    ("Alpha", "\x0391"),+    ("alpha", "\x03B1"),+    ("Amacr", "\x0100"),+    ("amacr", "\x0101"),+    ("amalg", "\x2A3F"),+    ("amp", "\x0026"),+    ("amp", "\x0026"),+    ("AMP", "\x0026"),+    ("AMP", "\x0026"),+    ("andand", "\x2A55"),+    ("And", "\x2A53"),+    ("and", "\x2227"),+    ("andd", "\x2A5C"),+    ("andslope", "\x2A58"),+    ("andv", "\x2A5A"),+    ("ang", "\x2220"),+    ("ange", "\x29A4"),+    ("angle", "\x2220"),+    ("angmsdaa", "\x29A8"),+    ("angmsdab", "\x29A9"),+    ("angmsdac", "\x29AA"),+    ("angmsdad", "\x29AB"),+    ("angmsdae", "\x29AC"),+    ("angmsdaf", "\x29AD"),+    ("angmsdag", "\x29AE"),+    ("angmsdah", "\x29AF"),+    ("angmsd", "\x2221"),+    ("angrt", "\x221F"),+    ("angrtvb", "\x22BE"),+    ("angrtvbd", "\x299D"),+    ("angsph", "\x2222"),+    ("angst", "\x00C5"),+    ("angzarr", "\x237C"),+    ("Aogon", "\x0104"),+    ("aogon", "\x0105"),+    ("Aopf", "\xD835\xDD38"),+    ("aopf", "\xD835\xDD52"),+    ("apacir", "\x2A6F"),+    ("ap", "\x2248"),+    ("apE", "\x2A70"),+    ("ape", "\x224A"),+    ("apid", "\x224B"),+    ("apos", "\x0027"),+    ("ApplyFunction", "\x2061"),+    ("approx", "\x2248"),+    ("approxeq", "\x224A"),+    ("Aring", "\x00C5"),+    ("Aring", "\x00C5"),+    ("aring", "\x00E5"),+    ("aring", "\x00E5"),+    ("Ascr", "\xD835\xDC9C"),+    ("ascr", "\xD835\xDCB6"),+    ("Assign", "\x2254"),+    ("ast", "\x002A"),+    ("asymp", "\x2248"),+    ("asympeq", "\x224D"),+    ("Atilde", "\x00C3"),+    ("Atilde", "\x00C3"),+    ("atilde", "\x00E3"),+    ("atilde", "\x00E3"),+    ("Auml", "\x00C4"),+    ("Auml", "\x00C4"),+    ("auml", "\x00E4"),+    ("auml", "\x00E4"),+    ("awconint", "\x2233"),+    ("awint", "\x2A11"),+    ("backcong", "\x224C"),+    ("backepsilon", "\x03F6"),+    ("backprime", "\x2035"),+    ("backsim", "\x223D"),+    ("backsimeq", "\x22CD"),+    ("Backslash", "\x2216"),+    ("Barv", "\x2AE7"),+    ("barvee", "\x22BD"),+    ("barwed", "\x2305"),+    ("Barwed", "\x2306"),+    ("barwedge", "\x2305"),+    ("bbrk", "\x23B5"),+    ("bbrktbrk", "\x23B6"),+    ("bcong", "\x224C"),+    ("Bcy", "\x0411"),+    ("bcy", "\x0431"),+    ("bdquo", "\x201E"),+    ("becaus", "\x2235"),+    ("because", "\x2235"),+    ("Because", "\x2235"),+    ("bemptyv", "\x29B0"),+    ("bepsi", "\x03F6"),+    ("bernou", "\x212C"),+    ("Bernoullis", "\x212C"),+    ("Beta", "\x0392"),+    ("beta", "\x03B2"),+    ("beth", "\x2136"),+    ("between", "\x226C"),+    ("Bfr", "\xD835\xDD05"),+    ("bfr", "\xD835\xDD1F"),+    ("bigcap", "\x22C2"),+    ("bigcirc", "\x25EF"),+    ("bigcup", "\x22C3"),+    ("bigodot", "\x2A00"),+    ("bigoplus", "\x2A01"),+    ("bigotimes", "\x2A02"),+    ("bigsqcup", "\x2A06"),+    ("bigstar", "\x2605"),+    ("bigtriangledown", "\x25BD"),+    ("bigtriangleup", "\x25B3"),+    ("biguplus", "\x2A04"),+    ("bigvee", "\x22C1"),+    ("bigwedge", "\x22C0"),+    ("bkarow", "\x290D"),+    ("blacklozenge", "\x29EB"),+    ("blacksquare", "\x25AA"),+    ("blacktriangle", "\x25B4"),+    ("blacktriangledown", "\x25BE"),+    ("blacktriangleleft", "\x25C2"),+    ("blacktriangleright", "\x25B8"),+    ("blank", "\x2423"),+    ("blk12", "\x2592"),+    ("blk14", "\x2591"),+    ("blk34", "\x2593"),+    ("block", "\x2588"),+    ("bne", "\x003D\x20E5"),+    ("bnequiv", "\x2261\x20E5"),+    ("bNot", "\x2AED"),+    ("bnot", "\x2310"),+    ("Bopf", "\xD835\xDD39"),+    ("bopf", "\xD835\xDD53"),+    ("bot", "\x22A5"),+    ("bottom", "\x22A5"),+    ("bowtie", "\x22C8"),+    ("boxbox", "\x29C9"),+    ("boxdl", "\x2510"),+    ("boxdL", "\x2555"),+    ("boxDl", "\x2556"),+    ("boxDL", "\x2557"),+    ("boxdr", "\x250C"),+    ("boxdR", "\x2552"),+    ("boxDr", "\x2553"),+    ("boxDR", "\x2554"),+    ("boxh", "\x2500"),+    ("boxH", "\x2550"),+    ("boxhd", "\x252C"),+    ("boxHd", "\x2564"),+    ("boxhD", "\x2565"),+    ("boxHD", "\x2566"),+    ("boxhu", "\x2534"),+    ("boxHu", "\x2567"),+    ("boxhU", "\x2568"),+    ("boxHU", "\x2569"),+    ("boxminus", "\x229F"),+    ("boxplus", "\x229E"),+    ("boxtimes", "\x22A0"),+    ("boxul", "\x2518"),+    ("boxuL", "\x255B"),+    ("boxUl", "\x255C"),+    ("boxUL", "\x255D"),+    ("boxur", "\x2514"),+    ("boxuR", "\x2558"),+    ("boxUr", "\x2559"),+    ("boxUR", "\x255A"),+    ("boxv", "\x2502"),+    ("boxV", "\x2551"),+    ("boxvh", "\x253C"),+    ("boxvH", "\x256A"),+    ("boxVh", "\x256B"),+    ("boxVH", "\x256C"),+    ("boxvl", "\x2524"),+    ("boxvL", "\x2561"),+    ("boxVl", "\x2562"),+    ("boxVL", "\x2563"),+    ("boxvr", "\x251C"),+    ("boxvR", "\x255E"),+    ("boxVr", "\x255F"),+    ("boxVR", "\x2560"),+    ("bprime", "\x2035"),+    ("breve", "\x02D8"),+    ("Breve", "\x02D8"),+    ("brvbar", "\x00A6"),+    ("brvbar", "\x00A6"),+    ("bscr", "\xD835\xDCB7"),+    ("Bscr", "\x212C"),+    ("bsemi", "\x204F"),+    ("bsim", "\x223D"),+    ("bsime", "\x22CD"),+    ("bsolb", "\x29C5"),+    ("bsol", "\x005C"),+    ("bsolhsub", "\x27C8"),+    ("bull", "\x2022"),+    ("bullet", "\x2022"),+    ("bump", "\x224E"),+    ("bumpE", "\x2AAE"),+    ("bumpe", "\x224F"),+    ("Bumpeq", "\x224E"),+    ("bumpeq", "\x224F"),+    ("Cacute", "\x0106"),+    ("cacute", "\x0107"),+    ("capand", "\x2A44"),+    ("capbrcup", "\x2A49"),+    ("capcap", "\x2A4B"),+    ("cap", "\x2229"),+    ("Cap", "\x22D2"),+    ("capcup", "\x2A47"),+    ("capdot", "\x2A40"),+    ("CapitalDifferentialD", "\x2145"),+    ("caps", "\x2229\xFE00"),+    ("caret", "\x2041"),+    ("caron", "\x02C7"),+    ("Cayleys", "\x212D"),+    ("ccaps", "\x2A4D"),+    ("Ccaron", "\x010C"),+    ("ccaron", "\x010D"),+    ("Ccedil", "\x00C7"),+    ("Ccedil", "\x00C7"),+    ("ccedil", "\x00E7"),+    ("ccedil", "\x00E7"),+    ("Ccirc", "\x0108"),+    ("ccirc", "\x0109"),+    ("Cconint", "\x2230"),+    ("ccups", "\x2A4C"),+    ("ccupssm", "\x2A50"),+    ("Cdot", "\x010A"),+    ("cdot", "\x010B"),+    ("cedil", "\x00B8"),+    ("cedil", "\x00B8"),+    ("Cedilla", "\x00B8"),+    ("cemptyv", "\x29B2"),+    ("cent", "\x00A2"),+    ("cent", "\x00A2"),+    ("centerdot", "\x00B7"),+    ("CenterDot", "\x00B7"),+    ("cfr", "\xD835\xDD20"),+    ("Cfr", "\x212D"),+    ("CHcy", "\x0427"),+    ("chcy", "\x0447"),+    ("check", "\x2713"),+    ("checkmark", "\x2713"),+    ("Chi", "\x03A7"),+    ("chi", "\x03C7"),+    ("circ", "\x02C6"),+    ("circeq", "\x2257"),+    ("circlearrowleft", "\x21BA"),+    ("circlearrowright", "\x21BB"),+    ("circledast", "\x229B"),+    ("circledcirc", "\x229A"),+    ("circleddash", "\x229D"),+    ("CircleDot", "\x2299"),+    ("circledR", "\x00AE"),+    ("circledS", "\x24C8"),+    ("CircleMinus", "\x2296"),+    ("CirclePlus", "\x2295"),+    ("CircleTimes", "\x2297"),+    ("cir", "\x25CB"),+    ("cirE", "\x29C3"),+    ("cire", "\x2257"),+    ("cirfnint", "\x2A10"),+    ("cirmid", "\x2AEF"),+    ("cirscir", "\x29C2"),+    ("ClockwiseContourIntegral", "\x2232"),+    ("CloseCurlyDoubleQuote", "\x201D"),+    ("CloseCurlyQuote", "\x2019"),+    ("clubs", "\x2663"),+    ("clubsuit", "\x2663"),+    ("colon", "\x003A"),+    ("Colon", "\x2237"),+    ("Colone", "\x2A74"),+    ("colone", "\x2254"),+    ("coloneq", "\x2254"),+    ("comma", "\x002C"),+    ("commat", "\x0040"),+    ("comp", "\x2201"),+    ("compfn", "\x2218"),+    ("complement", "\x2201"),+    ("complexes", "\x2102"),+    ("cong", "\x2245"),+    ("congdot", "\x2A6D"),+    ("Congruent", "\x2261"),+    ("conint", "\x222E"),+    ("Conint", "\x222F"),+    ("ContourIntegral", "\x222E"),+    ("copf", "\xD835\xDD54"),+    ("Copf", "\x2102"),+    ("coprod", "\x2210"),+    ("Coproduct", "\x2210"),+    ("copy", "\x00A9"),+    ("copy", "\x00A9"),+    ("COPY", "\x00A9"),+    ("COPY", "\x00A9"),+    ("copysr", "\x2117"),+    ("CounterClockwiseContourIntegral", "\x2233"),+    ("crarr", "\x21B5"),+    ("cross", "\x2717"),+    ("Cross", "\x2A2F"),+    ("Cscr", "\xD835\xDC9E"),+    ("cscr", "\xD835\xDCB8"),+    ("csub", "\x2ACF"),+    ("csube", "\x2AD1"),+    ("csup", "\x2AD0"),+    ("csupe", "\x2AD2"),+    ("ctdot", "\x22EF"),+    ("cudarrl", "\x2938"),+    ("cudarrr", "\x2935"),+    ("cuepr", "\x22DE"),+    ("cuesc", "\x22DF"),+    ("cularr", "\x21B6"),+    ("cularrp", "\x293D"),+    ("cupbrcap", "\x2A48"),+    ("cupcap", "\x2A46"),+    ("CupCap", "\x224D"),+    ("cup", "\x222A"),+    ("Cup", "\x22D3"),+    ("cupcup", "\x2A4A"),+    ("cupdot", "\x228D"),+    ("cupor", "\x2A45"),+    ("cups", "\x222A\xFE00"),+    ("curarr", "\x21B7"),+    ("curarrm", "\x293C"),+    ("curlyeqprec", "\x22DE"),+    ("curlyeqsucc", "\x22DF"),+    ("curlyvee", "\x22CE"),+    ("curlywedge", "\x22CF"),+    ("curren", "\x00A4"),+    ("curren", "\x00A4"),+    ("curvearrowleft", "\x21B6"),+    ("curvearrowright", "\x21B7"),+    ("cuvee", "\x22CE"),+    ("cuwed", "\x22CF"),+    ("cwconint", "\x2232"),+    ("cwint", "\x2231"),+    ("cylcty", "\x232D"),+    ("dagger", "\x2020"),+    ("Dagger", "\x2021"),+    ("daleth", "\x2138"),+    ("darr", "\x2193"),+    ("Darr", "\x21A1"),+    ("dArr", "\x21D3"),+    ("dash", "\x2010"),+    ("Dashv", "\x2AE4"),+    ("dashv", "\x22A3"),+    ("dbkarow", "\x290F"),+    ("dblac", "\x02DD"),+    ("Dcaron", "\x010E"),+    ("dcaron", "\x010F"),+    ("Dcy", "\x0414"),+    ("dcy", "\x0434"),+    ("ddagger", "\x2021"),+    ("ddarr", "\x21CA"),+    ("DD", "\x2145"),+    ("dd", "\x2146"),+    ("DDotrahd", "\x2911"),+    ("ddotseq", "\x2A77"),+    ("deg", "\x00B0"),+    ("deg", "\x00B0"),+    ("Del", "\x2207"),+    ("Delta", "\x0394"),+    ("delta", "\x03B4"),+    ("demptyv", "\x29B1"),+    ("dfisht", "\x297F"),+    ("Dfr", "\xD835\xDD07"),+    ("dfr", "\xD835\xDD21"),+    ("dHar", "\x2965"),+    ("dharl", "\x21C3"),+    ("dharr", "\x21C2"),+    ("DiacriticalAcute", "\x00B4"),+    ("DiacriticalDot", "\x02D9"),+    ("DiacriticalDoubleAcute", "\x02DD"),+    ("DiacriticalGrave", "\x0060"),+    ("DiacriticalTilde", "\x02DC"),+    ("diam", "\x22C4"),+    ("diamond", "\x22C4"),+    ("Diamond", "\x22C4"),+    ("diamondsuit", "\x2666"),+    ("diams", "\x2666"),+    ("die", "\x00A8"),+    ("DifferentialD", "\x2146"),+    ("digamma", "\x03DD"),+    ("disin", "\x22F2"),+    ("div", "\x00F7"),+    ("divide", "\x00F7"),+    ("divide", "\x00F7"),+    ("divideontimes", "\x22C7"),+    ("divonx", "\x22C7"),+    ("DJcy", "\x0402"),+    ("djcy", "\x0452"),+    ("dlcorn", "\x231E"),+    ("dlcrop", "\x230D"),+    ("dollar", "\x0024"),+    ("Dopf", "\xD835\xDD3B"),+    ("dopf", "\xD835\xDD55"),+    ("Dot", "\x00A8"),+    ("dot", "\x02D9"),+    ("DotDot", "\x20DC"),+    ("doteq", "\x2250"),+    ("doteqdot", "\x2251"),+    ("DotEqual", "\x2250"),+    ("dotminus", "\x2238"),+    ("dotplus", "\x2214"),+    ("dotsquare", "\x22A1"),+    ("doublebarwedge", "\x2306"),+    ("DoubleContourIntegral", "\x222F"),+    ("DoubleDot", "\x00A8"),+    ("DoubleDownArrow", "\x21D3"),+    ("DoubleLeftArrow", "\x21D0"),+    ("DoubleLeftRightArrow", "\x21D4"),+    ("DoubleLeftTee", "\x2AE4"),+    ("DoubleLongLeftArrow", "\x27F8"),+    ("DoubleLongLeftRightArrow", "\x27FA"),+    ("DoubleLongRightArrow", "\x27F9"),+    ("DoubleRightArrow", "\x21D2"),+    ("DoubleRightTee", "\x22A8"),+    ("DoubleUpArrow", "\x21D1"),+    ("DoubleUpDownArrow", "\x21D5"),+    ("DoubleVerticalBar", "\x2225"),+    ("DownArrowBar", "\x2913"),+    ("downarrow", "\x2193"),+    ("DownArrow", "\x2193"),+    ("Downarrow", "\x21D3"),+    ("DownArrowUpArrow", "\x21F5"),+    ("DownBreve", "\x0311"),+    ("downdownarrows", "\x21CA"),+    ("downharpoonleft", "\x21C3"),+    ("downharpoonright", "\x21C2"),+    ("DownLeftRightVector", "\x2950"),+    ("DownLeftTeeVector", "\x295E"),+    ("DownLeftVectorBar", "\x2956"),+    ("DownLeftVector", "\x21BD"),+    ("DownRightTeeVector", "\x295F"),+    ("DownRightVectorBar", "\x2957"),+    ("DownRightVector", "\x21C1"),+    ("DownTeeArrow", "\x21A7"),+    ("DownTee", "\x22A4"),+    ("drbkarow", "\x2910"),+    ("drcorn", "\x231F"),+    ("drcrop", "\x230C"),+    ("Dscr", "\xD835\xDC9F"),+    ("dscr", "\xD835\xDCB9"),+    ("DScy", "\x0405"),+    ("dscy", "\x0455"),+    ("dsol", "\x29F6"),+    ("Dstrok", "\x0110"),+    ("dstrok", "\x0111"),+    ("dtdot", "\x22F1"),+    ("dtri", "\x25BF"),+    ("dtrif", "\x25BE"),+    ("duarr", "\x21F5"),+    ("duhar", "\x296F"),+    ("dwangle", "\x29A6"),+    ("DZcy", "\x040F"),+    ("dzcy", "\x045F"),+    ("dzigrarr", "\x27FF"),+    ("Eacute", "\x00C9"),+    ("Eacute", "\x00C9"),+    ("eacute", "\x00E9"),+    ("eacute", "\x00E9"),+    ("easter", "\x2A6E"),+    ("Ecaron", "\x011A"),+    ("ecaron", "\x011B"),+    ("Ecirc", "\x00CA"),+    ("Ecirc", "\x00CA"),+    ("ecirc", "\x00EA"),+    ("ecirc", "\x00EA"),+    ("ecir", "\x2256"),+    ("ecolon", "\x2255"),+    ("Ecy", "\x042D"),+    ("ecy", "\x044D"),+    ("eDDot", "\x2A77"),+    ("Edot", "\x0116"),+    ("edot", "\x0117"),+    ("eDot", "\x2251"),+    ("ee", "\x2147"),+    ("efDot", "\x2252"),+    ("Efr", "\xD835\xDD08"),+    ("efr", "\xD835\xDD22"),+    ("eg", "\x2A9A"),+    ("Egrave", "\x00C8"),+    ("Egrave", "\x00C8"),+    ("egrave", "\x00E8"),+    ("egrave", "\x00E8"),+    ("egs", "\x2A96"),+    ("egsdot", "\x2A98"),+    ("el", "\x2A99"),+    ("Element", "\x2208"),+    ("elinters", "\x23E7"),+    ("ell", "\x2113"),+    ("els", "\x2A95"),+    ("elsdot", "\x2A97"),+    ("Emacr", "\x0112"),+    ("emacr", "\x0113"),+    ("empty", "\x2205"),+    ("emptyset", "\x2205"),+    ("EmptySmallSquare", "\x25FB"),+    ("emptyv", "\x2205"),+    ("EmptyVerySmallSquare", "\x25AB"),+    ("emsp13", "\x2004"),+    ("emsp14", "\x2005"),+    ("emsp", "\x2003"),+    ("ENG", "\x014A"),+    ("eng", "\x014B"),+    ("ensp", "\x2002"),+    ("Eogon", "\x0118"),+    ("eogon", "\x0119"),+    ("Eopf", "\xD835\xDD3C"),+    ("eopf", "\xD835\xDD56"),+    ("epar", "\x22D5"),+    ("eparsl", "\x29E3"),+    ("eplus", "\x2A71"),+    ("epsi", "\x03B5"),+    ("Epsilon", "\x0395"),+    ("epsilon", "\x03B5"),+    ("epsiv", "\x03F5"),+    ("eqcirc", "\x2256"),+    ("eqcolon", "\x2255"),+    ("eqsim", "\x2242"),+    ("eqslantgtr", "\x2A96"),+    ("eqslantless", "\x2A95"),+    ("Equal", "\x2A75"),+    ("equals", "\x003D"),+    ("EqualTilde", "\x2242"),+    ("equest", "\x225F"),+    ("Equilibrium", "\x21CC"),+    ("equiv", "\x2261"),+    ("equivDD", "\x2A78"),+    ("eqvparsl", "\x29E5"),+    ("erarr", "\x2971"),+    ("erDot", "\x2253"),+    ("escr", "\x212F"),+    ("Escr", "\x2130"),+    ("esdot", "\x2250"),+    ("Esim", "\x2A73"),+    ("esim", "\x2242"),+    ("Eta", "\x0397"),+    ("eta", "\x03B7"),+    ("ETH", "\x00D0"),+    ("ETH", "\x00D0"),+    ("eth", "\x00F0"),+    ("eth", "\x00F0"),+    ("Euml", "\x00CB"),+    ("Euml", "\x00CB"),+    ("euml", "\x00EB"),+    ("euml", "\x00EB"),+    ("euro", "\x20AC"),+    ("excl", "\x0021"),+    ("exist", "\x2203"),+    ("Exists", "\x2203"),+    ("expectation", "\x2130"),+    ("exponentiale", "\x2147"),+    ("ExponentialE", "\x2147"),+    ("fallingdotseq", "\x2252"),+    ("Fcy", "\x0424"),+    ("fcy", "\x0444"),+    ("female", "\x2640"),+    ("ffilig", "\xFB03"),+    ("fflig", "\xFB00"),+    ("ffllig", "\xFB04"),+    ("Ffr", "\xD835\xDD09"),+    ("ffr", "\xD835\xDD23"),+    ("filig", "\xFB01"),+    ("FilledSmallSquare", "\x25FC"),+    ("FilledVerySmallSquare", "\x25AA"),+    ("fjlig", "\x0066\x006A"),+    ("flat", "\x266D"),+    ("fllig", "\xFB02"),+    ("fltns", "\x25B1"),+    ("fnof", "\x0192"),+    ("Fopf", "\xD835\xDD3D"),+    ("fopf", "\xD835\xDD57"),+    ("forall", "\x2200"),+    ("ForAll", "\x2200"),+    ("fork", "\x22D4"),+    ("forkv", "\x2AD9"),+    ("Fouriertrf", "\x2131"),+    ("fpartint", "\x2A0D"),+    ("frac12", "\x00BD"),+    ("frac12", "\x00BD"),+    ("frac13", "\x2153"),+    ("frac14", "\x00BC"),+    ("frac14", "\x00BC"),+    ("frac15", "\x2155"),+    ("frac16", "\x2159"),+    ("frac18", "\x215B"),+    ("frac23", "\x2154"),+    ("frac25", "\x2156"),+    ("frac34", "\x00BE"),+    ("frac34", "\x00BE"),+    ("frac35", "\x2157"),+    ("frac38", "\x215C"),+    ("frac45", "\x2158"),+    ("frac56", "\x215A"),+    ("frac58", "\x215D"),+    ("frac78", "\x215E"),+    ("frasl", "\x2044"),+    ("frown", "\x2322"),+    ("fscr", "\xD835\xDCBB"),+    ("Fscr", "\x2131"),+    ("gacute", "\x01F5"),+    ("Gamma", "\x0393"),+    ("gamma", "\x03B3"),+    ("Gammad", "\x03DC"),+    ("gammad", "\x03DD"),+    ("gap", "\x2A86"),+    ("Gbreve", "\x011E"),+    ("gbreve", "\x011F"),+    ("Gcedil", "\x0122"),+    ("Gcirc", "\x011C"),+    ("gcirc", "\x011D"),+    ("Gcy", "\x0413"),+    ("gcy", "\x0433"),+    ("Gdot", "\x0120"),+    ("gdot", "\x0121"),+    ("ge", "\x2265"),+    ("gE", "\x2267"),+    ("gEl", "\x2A8C"),+    ("gel", "\x22DB"),+    ("geq", "\x2265"),+    ("geqq", "\x2267"),+    ("geqslant", "\x2A7E"),+    ("gescc", "\x2AA9"),+    ("ges", "\x2A7E"),+    ("gesdot", "\x2A80"),+    ("gesdoto", "\x2A82"),+    ("gesdotol", "\x2A84"),+    ("gesl", "\x22DB\xFE00"),+    ("gesles", "\x2A94"),+    ("Gfr", "\xD835\xDD0A"),+    ("gfr", "\xD835\xDD24"),+    ("gg", "\x226B"),+    ("Gg", "\x22D9"),+    ("ggg", "\x22D9"),+    ("gimel", "\x2137"),+    ("GJcy", "\x0403"),+    ("gjcy", "\x0453"),+    ("gla", "\x2AA5"),+    ("gl", "\x2277"),+    ("glE", "\x2A92"),+    ("glj", "\x2AA4"),+    ("gnap", "\x2A8A"),+    ("gnapprox", "\x2A8A"),+    ("gne", "\x2A88"),+    ("gnE", "\x2269"),+    ("gneq", "\x2A88"),+    ("gneqq", "\x2269"),+    ("gnsim", "\x22E7"),+    ("Gopf", "\xD835\xDD3E"),+    ("gopf", "\xD835\xDD58"),+    ("grave", "\x0060"),+    ("GreaterEqual", "\x2265"),+    ("GreaterEqualLess", "\x22DB"),+    ("GreaterFullEqual", "\x2267"),+    ("GreaterGreater", "\x2AA2"),+    ("GreaterLess", "\x2277"),+    ("GreaterSlantEqual", "\x2A7E"),+    ("GreaterTilde", "\x2273"),+    ("Gscr", "\xD835\xDCA2"),+    ("gscr", "\x210A"),+    ("gsim", "\x2273"),+    ("gsime", "\x2A8E"),+    ("gsiml", "\x2A90"),+    ("gtcc", "\x2AA7"),+    ("gtcir", "\x2A7A"),+    ("gt", "\x003E"),+    ("gt", "\x003E"),+    ("GT", "\x003E"),+    ("GT", "\x003E"),+    ("Gt", "\x226B"),+    ("gtdot", "\x22D7"),+    ("gtlPar", "\x2995"),+    ("gtquest", "\x2A7C"),+    ("gtrapprox", "\x2A86"),+    ("gtrarr", "\x2978"),+    ("gtrdot", "\x22D7"),+    ("gtreqless", "\x22DB"),+    ("gtreqqless", "\x2A8C"),+    ("gtrless", "\x2277"),+    ("gtrsim", "\x2273"),+    ("gvertneqq", "\x2269\xFE00"),+    ("gvnE", "\x2269\xFE00"),+    ("Hacek", "\x02C7"),+    ("hairsp", "\x200A"),+    ("half", "\x00BD"),+    ("hamilt", "\x210B"),+    ("HARDcy", "\x042A"),+    ("hardcy", "\x044A"),+    ("harrcir", "\x2948"),+    ("harr", "\x2194"),+    ("hArr", "\x21D4"),+    ("harrw", "\x21AD"),+    ("Hat", "\x005E"),+    ("hbar", "\x210F"),+    ("Hcirc", "\x0124"),+    ("hcirc", "\x0125"),+    ("hearts", "\x2665"),+    ("heartsuit", "\x2665"),+    ("hellip", "\x2026"),+    ("hercon", "\x22B9"),+    ("hfr", "\xD835\xDD25"),+    ("Hfr", "\x210C"),+    ("HilbertSpace", "\x210B"),+    ("hksearow", "\x2925"),+    ("hkswarow", "\x2926"),+    ("hoarr", "\x21FF"),+    ("homtht", "\x223B"),+    ("hookleftarrow", "\x21A9"),+    ("hookrightarrow", "\x21AA"),+    ("hopf", "\xD835\xDD59"),+    ("Hopf", "\x210D"),+    ("horbar", "\x2015"),+    ("HorizontalLine", "\x2500"),+    ("hscr", "\xD835\xDCBD"),+    ("Hscr", "\x210B"),+    ("hslash", "\x210F"),+    ("Hstrok", "\x0126"),+    ("hstrok", "\x0127"),+    ("HumpDownHump", "\x224E"),+    ("HumpEqual", "\x224F"),+    ("hybull", "\x2043"),+    ("hyphen", "\x2010"),+    ("Iacute", "\x00CD"),+    ("Iacute", "\x00CD"),+    ("iacute", "\x00ED"),+    ("iacute", "\x00ED"),+    ("ic", "\x2063"),+    ("Icirc", "\x00CE"),+    ("Icirc", "\x00CE"),+    ("icirc", "\x00EE"),+    ("icirc", "\x00EE"),+    ("Icy", "\x0418"),+    ("icy", "\x0438"),+    ("Idot", "\x0130"),+    ("IEcy", "\x0415"),+    ("iecy", "\x0435"),+    ("iexcl", "\x00A1"),+    ("iexcl", "\x00A1"),+    ("iff", "\x21D4"),+    ("ifr", "\xD835\xDD26"),+    ("Ifr", "\x2111"),+    ("Igrave", "\x00CC"),+    ("Igrave", "\x00CC"),+    ("igrave", "\x00EC"),+    ("igrave", "\x00EC"),+    ("ii", "\x2148"),+    ("iiiint", "\x2A0C"),+    ("iiint", "\x222D"),+    ("iinfin", "\x29DC"),+    ("iiota", "\x2129"),+    ("IJlig", "\x0132"),+    ("ijlig", "\x0133"),+    ("Imacr", "\x012A"),+    ("imacr", "\x012B"),+    ("image", "\x2111"),+    ("ImaginaryI", "\x2148"),+    ("imagline", "\x2110"),+    ("imagpart", "\x2111"),+    ("imath", "\x0131"),+    ("Im", "\x2111"),+    ("imof", "\x22B7"),+    ("imped", "\x01B5"),+    ("Implies", "\x21D2"),+    ("incare", "\x2105"),+    ("in", "\x2208"),+    ("infin", "\x221E"),+    ("infintie", "\x29DD"),+    ("inodot", "\x0131"),+    ("intcal", "\x22BA"),+    ("int", "\x222B"),+    ("Int", "\x222C"),+    ("integers", "\x2124"),+    ("Integral", "\x222B"),+    ("intercal", "\x22BA"),+    ("Intersection", "\x22C2"),+    ("intlarhk", "\x2A17"),+    ("intprod", "\x2A3C"),+    ("InvisibleComma", "\x2063"),+    ("InvisibleTimes", "\x2062"),+    ("IOcy", "\x0401"),+    ("iocy", "\x0451"),+    ("Iogon", "\x012E"),+    ("iogon", "\x012F"),+    ("Iopf", "\xD835\xDD40"),+    ("iopf", "\xD835\xDD5A"),+    ("Iota", "\x0399"),+    ("iota", "\x03B9"),+    ("iprod", "\x2A3C"),+    ("iquest", "\x00BF"),+    ("iquest", "\x00BF"),+    ("iscr", "\xD835\xDCBE"),+    ("Iscr", "\x2110"),+    ("isin", "\x2208"),+    ("isindot", "\x22F5"),+    ("isinE", "\x22F9"),+    ("isins", "\x22F4"),+    ("isinsv", "\x22F3"),+    ("isinv", "\x2208"),+    ("it", "\x2062"),+    ("Itilde", "\x0128"),+    ("itilde", "\x0129"),+    ("Iukcy", "\x0406"),+    ("iukcy", "\x0456"),+    ("Iuml", "\x00CF"),+    ("Iuml", "\x00CF"),+    ("iuml", "\x00EF"),+    ("iuml", "\x00EF"),+    ("Jcirc", "\x0134"),+    ("jcirc", "\x0135"),+    ("Jcy", "\x0419"),+    ("jcy", "\x0439"),+    ("Jfr", "\xD835\xDD0D"),+    ("jfr", "\xD835\xDD27"),+    ("jmath", "\x0237"),+    ("Jopf", "\xD835\xDD41"),+    ("jopf", "\xD835\xDD5B"),+    ("Jscr", "\xD835\xDCA5"),+    ("jscr", "\xD835\xDCBF"),+    ("Jsercy", "\x0408"),+    ("jsercy", "\x0458"),+    ("Jukcy", "\x0404"),+    ("jukcy", "\x0454"),+    ("Kappa", "\x039A"),+    ("kappa", "\x03BA"),+    ("kappav", "\x03F0"),+    ("Kcedil", "\x0136"),+    ("kcedil", "\x0137"),+    ("Kcy", "\x041A"),+    ("kcy", "\x043A"),+    ("Kfr", "\xD835\xDD0E"),+    ("kfr", "\xD835\xDD28"),+    ("kgreen", "\x0138"),+    ("KHcy", "\x0425"),+    ("khcy", "\x0445"),+    ("KJcy", "\x040C"),+    ("kjcy", "\x045C"),+    ("Kopf", "\xD835\xDD42"),+    ("kopf", "\xD835\xDD5C"),+    ("Kscr", "\xD835\xDCA6"),+    ("kscr", "\xD835\xDCC0"),+    ("lAarr", "\x21DA"),+    ("Lacute", "\x0139"),+    ("lacute", "\x013A"),+    ("laemptyv", "\x29B4"),+    ("lagran", "\x2112"),+    ("Lambda", "\x039B"),+    ("lambda", "\x03BB"),+    ("lang", "\x27E8"),+    ("Lang", "\x27EA"),+    ("langd", "\x2991"),+    ("langle", "\x27E8"),+    ("lap", "\x2A85"),+    ("Laplacetrf", "\x2112"),+    ("laquo", "\x00AB"),+    ("laquo", "\x00AB"),+    ("larrb", "\x21E4"),+    ("larrbfs", "\x291F"),+    ("larr", "\x2190"),+    ("Larr", "\x219E"),+    ("lArr", "\x21D0"),+    ("larrfs", "\x291D"),+    ("larrhk", "\x21A9"),+    ("larrlp", "\x21AB"),+    ("larrpl", "\x2939"),+    ("larrsim", "\x2973"),+    ("larrtl", "\x21A2"),+    ("latail", "\x2919"),+    ("lAtail", "\x291B"),+    ("lat", "\x2AAB"),+    ("late", "\x2AAD"),+    ("lates", "\x2AAD\xFE00"),+    ("lbarr", "\x290C"),+    ("lBarr", "\x290E"),+    ("lbbrk", "\x2772"),+    ("lbrace", "\x007B"),+    ("lbrack", "\x005B"),+    ("lbrke", "\x298B"),+    ("lbrksld", "\x298F"),+    ("lbrkslu", "\x298D"),+    ("Lcaron", "\x013D"),+    ("lcaron", "\x013E"),+    ("Lcedil", "\x013B"),+    ("lcedil", "\x013C"),+    ("lceil", "\x2308"),+    ("lcub", "\x007B"),+    ("Lcy", "\x041B"),+    ("lcy", "\x043B"),+    ("ldca", "\x2936"),+    ("ldquo", "\x201C"),+    ("ldquor", "\x201E"),+    ("ldrdhar", "\x2967"),+    ("ldrushar", "\x294B"),+    ("ldsh", "\x21B2"),+    ("le", "\x2264"),+    ("lE", "\x2266"),+    ("LeftAngleBracket", "\x27E8"),+    ("LeftArrowBar", "\x21E4"),+    ("leftarrow", "\x2190"),+    ("LeftArrow", "\x2190"),+    ("Leftarrow", "\x21D0"),+    ("LeftArrowRightArrow", "\x21C6"),+    ("leftarrowtail", "\x21A2"),+    ("LeftCeiling", "\x2308"),+    ("LeftDoubleBracket", "\x27E6"),+    ("LeftDownTeeVector", "\x2961"),+    ("LeftDownVectorBar", "\x2959"),+    ("LeftDownVector", "\x21C3"),+    ("LeftFloor", "\x230A"),+    ("leftharpoondown", "\x21BD"),+    ("leftharpoonup", "\x21BC"),+    ("leftleftarrows", "\x21C7"),+    ("leftrightarrow", "\x2194"),+    ("LeftRightArrow", "\x2194"),+    ("Leftrightarrow", "\x21D4"),+    ("leftrightarrows", "\x21C6"),+    ("leftrightharpoons", "\x21CB"),+    ("leftrightsquigarrow", "\x21AD"),+    ("LeftRightVector", "\x294E"),+    ("LeftTeeArrow", "\x21A4"),+    ("LeftTee", "\x22A3"),+    ("LeftTeeVector", "\x295A"),+    ("leftthreetimes", "\x22CB"),+    ("LeftTriangleBar", "\x29CF"),+    ("LeftTriangle", "\x22B2"),+    ("LeftTriangleEqual", "\x22B4"),+    ("LeftUpDownVector", "\x2951"),+    ("LeftUpTeeVector", "\x2960"),+    ("LeftUpVectorBar", "\x2958"),+    ("LeftUpVector", "\x21BF"),+    ("LeftVectorBar", "\x2952"),+    ("LeftVector", "\x21BC"),+    ("lEg", "\x2A8B"),+    ("leg", "\x22DA"),+    ("leq", "\x2264"),+    ("leqq", "\x2266"),+    ("leqslant", "\x2A7D"),+    ("lescc", "\x2AA8"),+    ("les", "\x2A7D"),+    ("lesdot", "\x2A7F"),+    ("lesdoto", "\x2A81"),+    ("lesdotor", "\x2A83"),+    ("lesg", "\x22DA\xFE00"),+    ("lesges", "\x2A93"),+    ("lessapprox", "\x2A85"),+    ("lessdot", "\x22D6"),+    ("lesseqgtr", "\x22DA"),+    ("lesseqqgtr", "\x2A8B"),+    ("LessEqualGreater", "\x22DA"),+    ("LessFullEqual", "\x2266"),+    ("LessGreater", "\x2276"),+    ("lessgtr", "\x2276"),+    ("LessLess", "\x2AA1"),+    ("lesssim", "\x2272"),+    ("LessSlantEqual", "\x2A7D"),+    ("LessTilde", "\x2272"),+    ("lfisht", "\x297C"),+    ("lfloor", "\x230A"),+    ("Lfr", "\xD835\xDD0F"),+    ("lfr", "\xD835\xDD29"),+    ("lg", "\x2276"),+    ("lgE", "\x2A91"),+    ("lHar", "\x2962"),+    ("lhard", "\x21BD"),+    ("lharu", "\x21BC"),+    ("lharul", "\x296A"),+    ("lhblk", "\x2584"),+    ("LJcy", "\x0409"),+    ("ljcy", "\x0459"),+    ("llarr", "\x21C7"),+    ("ll", "\x226A"),+    ("Ll", "\x22D8"),+    ("llcorner", "\x231E"),+    ("Lleftarrow", "\x21DA"),+    ("llhard", "\x296B"),+    ("lltri", "\x25FA"),+    ("Lmidot", "\x013F"),+    ("lmidot", "\x0140"),+    ("lmoustache", "\x23B0"),+    ("lmoust", "\x23B0"),+    ("lnap", "\x2A89"),+    ("lnapprox", "\x2A89"),+    ("lne", "\x2A87"),+    ("lnE", "\x2268"),+    ("lneq", "\x2A87"),+    ("lneqq", "\x2268"),+    ("lnsim", "\x22E6"),+    ("loang", "\x27EC"),+    ("loarr", "\x21FD"),+    ("lobrk", "\x27E6"),+    ("longleftarrow", "\x27F5"),+    ("LongLeftArrow", "\x27F5"),+    ("Longleftarrow", "\x27F8"),+    ("longleftrightarrow", "\x27F7"),+    ("LongLeftRightArrow", "\x27F7"),+    ("Longleftrightarrow", "\x27FA"),+    ("longmapsto", "\x27FC"),+    ("longrightarrow", "\x27F6"),+    ("LongRightArrow", "\x27F6"),+    ("Longrightarrow", "\x27F9"),+    ("looparrowleft", "\x21AB"),+    ("looparrowright", "\x21AC"),+    ("lopar", "\x2985"),+    ("Lopf", "\xD835\xDD43"),+    ("lopf", "\xD835\xDD5D"),+    ("loplus", "\x2A2D"),+    ("lotimes", "\x2A34"),+    ("lowast", "\x2217"),+    ("lowbar", "\x005F"),+    ("LowerLeftArrow", "\x2199"),+    ("LowerRightArrow", "\x2198"),+    ("loz", "\x25CA"),+    ("lozenge", "\x25CA"),+    ("lozf", "\x29EB"),+    ("lpar", "\x0028"),+    ("lparlt", "\x2993"),+    ("lrarr", "\x21C6"),+    ("lrcorner", "\x231F"),+    ("lrhar", "\x21CB"),+    ("lrhard", "\x296D"),+    ("lrm", "\x200E"),+    ("lrtri", "\x22BF"),+    ("lsaquo", "\x2039"),+    ("lscr", "\xD835\xDCC1"),+    ("Lscr", "\x2112"),+    ("lsh", "\x21B0"),+    ("Lsh", "\x21B0"),+    ("lsim", "\x2272"),+    ("lsime", "\x2A8D"),+    ("lsimg", "\x2A8F"),+    ("lsqb", "\x005B"),+    ("lsquo", "\x2018"),+    ("lsquor", "\x201A"),+    ("Lstrok", "\x0141"),+    ("lstrok", "\x0142"),+    ("ltcc", "\x2AA6"),+    ("ltcir", "\x2A79"),+    ("lt", "\x003C"),+    ("lt", "\x003C"),+    ("LT", "\x003C"),+    ("LT", "\x003C"),+    ("Lt", "\x226A"),+    ("ltdot", "\x22D6"),+    ("lthree", "\x22CB"),+    ("ltimes", "\x22C9"),+    ("ltlarr", "\x2976"),+    ("ltquest", "\x2A7B"),+    ("ltri", "\x25C3"),+    ("ltrie", "\x22B4"),+    ("ltrif", "\x25C2"),+    ("ltrPar", "\x2996"),+    ("lurdshar", "\x294A"),+    ("luruhar", "\x2966"),+    ("lvertneqq", "\x2268\xFE00"),+    ("lvnE", "\x2268\xFE00"),+    ("macr", "\x00AF"),+    ("macr", "\x00AF"),+    ("male", "\x2642"),+    ("malt", "\x2720"),+    ("maltese", "\x2720"),+    ("Map", "\x2905"),+    ("map", "\x21A6"),+    ("mapsto", "\x21A6"),+    ("mapstodown", "\x21A7"),+    ("mapstoleft", "\x21A4"),+    ("mapstoup", "\x21A5"),+    ("marker", "\x25AE"),+    ("mcomma", "\x2A29"),+    ("Mcy", "\x041C"),+    ("mcy", "\x043C"),+    ("mdash", "\x2014"),+    ("mDDot", "\x223A"),+    ("measuredangle", "\x2221"),+    ("MediumSpace", "\x205F"),+    ("Mellintrf", "\x2133"),+    ("Mfr", "\xD835\xDD10"),+    ("mfr", "\xD835\xDD2A"),+    ("mho", "\x2127"),+    ("micro", "\x00B5"),+    ("micro", "\x00B5"),+    ("midast", "\x002A"),+    ("midcir", "\x2AF0"),+    ("mid", "\x2223"),+    ("middot", "\x00B7"),+    ("middot", "\x00B7"),+    ("minusb", "\x229F"),+    ("minus", "\x2212"),+    ("minusd", "\x2238"),+    ("minusdu", "\x2A2A"),+    ("MinusPlus", "\x2213"),+    ("mlcp", "\x2ADB"),+    ("mldr", "\x2026"),+    ("mnplus", "\x2213"),+    ("models", "\x22A7"),+    ("Mopf", "\xD835\xDD44"),+    ("mopf", "\xD835\xDD5E"),+    ("mp", "\x2213"),+    ("mscr", "\xD835\xDCC2"),+    ("Mscr", "\x2133"),+    ("mstpos", "\x223E"),+    ("Mu", "\x039C"),+    ("mu", "\x03BC"),+    ("multimap", "\x22B8"),+    ("mumap", "\x22B8"),+    ("nabla", "\x2207"),+    ("Nacute", "\x0143"),+    ("nacute", "\x0144"),+    ("nang", "\x2220\x20D2"),+    ("nap", "\x2249"),+    ("napE", "\x2A70\x0338"),+    ("napid", "\x224B\x0338"),+    ("napos", "\x0149"),+    ("napprox", "\x2249"),+    ("natural", "\x266E"),+    ("naturals", "\x2115"),+    ("natur", "\x266E"),+    ("nbsp", "\x00A0"),+    ("nbsp", "\x00A0"),+    ("nbump", "\x224E\x0338"),+    ("nbumpe", "\x224F\x0338"),+    ("ncap", "\x2A43"),+    ("Ncaron", "\x0147"),+    ("ncaron", "\x0148"),+    ("Ncedil", "\x0145"),+    ("ncedil", "\x0146"),+    ("ncong", "\x2247"),+    ("ncongdot", "\x2A6D\x0338"),+    ("ncup", "\x2A42"),+    ("Ncy", "\x041D"),+    ("ncy", "\x043D"),+    ("ndash", "\x2013"),+    ("nearhk", "\x2924"),+    ("nearr", "\x2197"),+    ("neArr", "\x21D7"),+    ("nearrow", "\x2197"),+    ("ne", "\x2260"),+    ("nedot", "\x2250\x0338"),+    ("NegativeMediumSpace", "\x200B"),+    ("NegativeThickSpace", "\x200B"),+    ("NegativeThinSpace", "\x200B"),+    ("NegativeVeryThinSpace", "\x200B"),+    ("nequiv", "\x2262"),+    ("nesear", "\x2928"),+    ("nesim", "\x2242\x0338"),+    ("NestedGreaterGreater", "\x226B"),+    ("NestedLessLess", "\x226A"),+    ("NewLine", "\x000A"),+    ("nexist", "\x2204"),+    ("nexists", "\x2204"),+    ("Nfr", "\xD835\xDD11"),+    ("nfr", "\xD835\xDD2B"),+    ("ngE", "\x2267\x0338"),+    ("nge", "\x2271"),+    ("ngeq", "\x2271"),+    ("ngeqq", "\x2267\x0338"),+    ("ngeqslant", "\x2A7E\x0338"),+    ("nges", "\x2A7E\x0338"),+    ("nGg", "\x22D9\x0338"),+    ("ngsim", "\x2275"),+    ("nGt", "\x226B\x20D2"),+    ("ngt", "\x226F"),+    ("ngtr", "\x226F"),+    ("nGtv", "\x226B\x0338"),+    ("nharr", "\x21AE"),+    ("nhArr", "\x21CE"),+    ("nhpar", "\x2AF2"),+    ("ni", "\x220B"),+    ("nis", "\x22FC"),+    ("nisd", "\x22FA"),+    ("niv", "\x220B"),+    ("NJcy", "\x040A"),+    ("njcy", "\x045A"),+    ("nlarr", "\x219A"),+    ("nlArr", "\x21CD"),+    ("nldr", "\x2025"),+    ("nlE", "\x2266\x0338"),+    ("nle", "\x2270"),+    ("nleftarrow", "\x219A"),+    ("nLeftarrow", "\x21CD"),+    ("nleftrightarrow", "\x21AE"),+    ("nLeftrightarrow", "\x21CE"),+    ("nleq", "\x2270"),+    ("nleqq", "\x2266\x0338"),+    ("nleqslant", "\x2A7D\x0338"),+    ("nles", "\x2A7D\x0338"),+    ("nless", "\x226E"),+    ("nLl", "\x22D8\x0338"),+    ("nlsim", "\x2274"),+    ("nLt", "\x226A\x20D2"),+    ("nlt", "\x226E"),+    ("nltri", "\x22EA"),+    ("nltrie", "\x22EC"),+    ("nLtv", "\x226A\x0338"),+    ("nmid", "\x2224"),+    ("NoBreak", "\x2060"),+    ("NonBreakingSpace", "\x00A0"),+    ("nopf", "\xD835\xDD5F"),+    ("Nopf", "\x2115"),+    ("Not", "\x2AEC"),+    ("not", "\x00AC"),+    ("not", "\x00AC"),+    ("NotCongruent", "\x2262"),+    ("NotCupCap", "\x226D"),+    ("NotDoubleVerticalBar", "\x2226"),+    ("NotElement", "\x2209"),+    ("NotEqual", "\x2260"),+    ("NotEqualTilde", "\x2242\x0338"),+    ("NotExists", "\x2204"),+    ("NotGreater", "\x226F"),+    ("NotGreaterEqual", "\x2271"),+    ("NotGreaterFullEqual", "\x2267\x0338"),+    ("NotGreaterGreater", "\x226B\x0338"),+    ("NotGreaterLess", "\x2279"),+    ("NotGreaterSlantEqual", "\x2A7E\x0338"),+    ("NotGreaterTilde", "\x2275"),+    ("NotHumpDownHump", "\x224E\x0338"),+    ("NotHumpEqual", "\x224F\x0338"),+    ("notin", "\x2209"),+    ("notindot", "\x22F5\x0338"),+    ("notinE", "\x22F9\x0338"),+    ("notinva", "\x2209"),+    ("notinvb", "\x22F7"),+    ("notinvc", "\x22F6"),+    ("NotLeftTriangleBar", "\x29CF\x0338"),+    ("NotLeftTriangle", "\x22EA"),+    ("NotLeftTriangleEqual", "\x22EC"),+    ("NotLess", "\x226E"),+    ("NotLessEqual", "\x2270"),+    ("NotLessGreater", "\x2278"),+    ("NotLessLess", "\x226A\x0338"),+    ("NotLessSlantEqual", "\x2A7D\x0338"),+    ("NotLessTilde", "\x2274"),+    ("NotNestedGreaterGreater", "\x2AA2\x0338"),+    ("NotNestedLessLess", "\x2AA1\x0338"),+    ("notni", "\x220C"),+    ("notniva", "\x220C"),+    ("notnivb", "\x22FE"),+    ("notnivc", "\x22FD"),+    ("NotPrecedes", "\x2280"),+    ("NotPrecedesEqual", "\x2AAF\x0338"),+    ("NotPrecedesSlantEqual", "\x22E0"),+    ("NotReverseElement", "\x220C"),+    ("NotRightTriangleBar", "\x29D0\x0338"),+    ("NotRightTriangle", "\x22EB"),+    ("NotRightTriangleEqual", "\x22ED"),+    ("NotSquareSubset", "\x228F\x0338"),+    ("NotSquareSubsetEqual", "\x22E2"),+    ("NotSquareSuperset", "\x2290\x0338"),+    ("NotSquareSupersetEqual", "\x22E3"),+    ("NotSubset", "\x2282\x20D2"),+    ("NotSubsetEqual", "\x2288"),+    ("NotSucceeds", "\x2281"),+    ("NotSucceedsEqual", "\x2AB0\x0338"),+    ("NotSucceedsSlantEqual", "\x22E1"),+    ("NotSucceedsTilde", "\x227F\x0338"),+    ("NotSuperset", "\x2283\x20D2"),+    ("NotSupersetEqual", "\x2289"),+    ("NotTilde", "\x2241"),+    ("NotTildeEqual", "\x2244"),+    ("NotTildeFullEqual", "\x2247"),+    ("NotTildeTilde", "\x2249"),+    ("NotVerticalBar", "\x2224"),+    ("nparallel", "\x2226"),+    ("npar", "\x2226"),+    ("nparsl", "\x2AFD\x20E5"),+    ("npart", "\x2202\x0338"),+    ("npolint", "\x2A14"),+    ("npr", "\x2280"),+    ("nprcue", "\x22E0"),+    ("nprec", "\x2280"),+    ("npreceq", "\x2AAF\x0338"),+    ("npre", "\x2AAF\x0338"),+    ("nrarrc", "\x2933\x0338"),+    ("nrarr", "\x219B"),+    ("nrArr", "\x21CF"),+    ("nrarrw", "\x219D\x0338"),+    ("nrightarrow", "\x219B"),+    ("nRightarrow", "\x21CF"),+    ("nrtri", "\x22EB"),+    ("nrtrie", "\x22ED"),+    ("nsc", "\x2281"),+    ("nsccue", "\x22E1"),+    ("nsce", "\x2AB0\x0338"),+    ("Nscr", "\xD835\xDCA9"),+    ("nscr", "\xD835\xDCC3"),+    ("nshortmid", "\x2224"),+    ("nshortparallel", "\x2226"),+    ("nsim", "\x2241"),+    ("nsime", "\x2244"),+    ("nsimeq", "\x2244"),+    ("nsmid", "\x2224"),+    ("nspar", "\x2226"),+    ("nsqsube", "\x22E2"),+    ("nsqsupe", "\x22E3"),+    ("nsub", "\x2284"),+    ("nsubE", "\x2AC5\x0338"),+    ("nsube", "\x2288"),+    ("nsubset", "\x2282\x20D2"),+    ("nsubseteq", "\x2288"),+    ("nsubseteqq", "\x2AC5\x0338"),+    ("nsucc", "\x2281"),+    ("nsucceq", "\x2AB0\x0338"),+    ("nsup", "\x2285"),+    ("nsupE", "\x2AC6\x0338"),+    ("nsupe", "\x2289"),+    ("nsupset", "\x2283\x20D2"),+    ("nsupseteq", "\x2289"),+    ("nsupseteqq", "\x2AC6\x0338"),+    ("ntgl", "\x2279"),+    ("Ntilde", "\x00D1"),+    ("Ntilde", "\x00D1"),+    ("ntilde", "\x00F1"),+    ("ntilde", "\x00F1"),+    ("ntlg", "\x2278"),+    ("ntriangleleft", "\x22EA"),+    ("ntrianglelefteq", "\x22EC"),+    ("ntriangleright", "\x22EB"),+    ("ntrianglerighteq", "\x22ED"),+    ("Nu", "\x039D"),+    ("nu", "\x03BD"),+    ("num", "\x0023"),+    ("numero", "\x2116"),+    ("numsp", "\x2007"),+    ("nvap", "\x224D\x20D2"),+    ("nvdash", "\x22AC"),+    ("nvDash", "\x22AD"),+    ("nVdash", "\x22AE"),+    ("nVDash", "\x22AF"),+    ("nvge", "\x2265\x20D2"),+    ("nvgt", "\x003E\x20D2"),+    ("nvHarr", "\x2904"),+    ("nvinfin", "\x29DE"),+    ("nvlArr", "\x2902"),+    ("nvle", "\x2264\x20D2"),+    ("nvlt", "\x003C\x20D2"),+    ("nvltrie", "\x22B4\x20D2"),+    ("nvrArr", "\x2903"),+    ("nvrtrie", "\x22B5\x20D2"),+    ("nvsim", "\x223C\x20D2"),+    ("nwarhk", "\x2923"),+    ("nwarr", "\x2196"),+    ("nwArr", "\x21D6"),+    ("nwarrow", "\x2196"),+    ("nwnear", "\x2927"),+    ("Oacute", "\x00D3"),+    ("Oacute", "\x00D3"),+    ("oacute", "\x00F3"),+    ("oacute", "\x00F3"),+    ("oast", "\x229B"),+    ("Ocirc", "\x00D4"),+    ("Ocirc", "\x00D4"),+    ("ocirc", "\x00F4"),+    ("ocirc", "\x00F4"),+    ("ocir", "\x229A"),+    ("Ocy", "\x041E"),+    ("ocy", "\x043E"),+    ("odash", "\x229D"),+    ("Odblac", "\x0150"),+    ("odblac", "\x0151"),+    ("odiv", "\x2A38"),+    ("odot", "\x2299"),+    ("odsold", "\x29BC"),+    ("OElig", "\x0152"),+    ("oelig", "\x0153"),+    ("ofcir", "\x29BF"),+    ("Ofr", "\xD835\xDD12"),+    ("ofr", "\xD835\xDD2C"),+    ("ogon", "\x02DB"),+    ("Ograve", "\x00D2"),+    ("Ograve", "\x00D2"),+    ("ograve", "\x00F2"),+    ("ograve", "\x00F2"),+    ("ogt", "\x29C1"),+    ("ohbar", "\x29B5"),+    ("ohm", "\x03A9"),+    ("oint", "\x222E"),+    ("olarr", "\x21BA"),+    ("olcir", "\x29BE"),+    ("olcross", "\x29BB"),+    ("oline", "\x203E"),+    ("olt", "\x29C0"),+    ("Omacr", "\x014C"),+    ("omacr", "\x014D"),+    ("Omega", "\x03A9"),+    ("omega", "\x03C9"),+    ("Omicron", "\x039F"),+    ("omicron", "\x03BF"),+    ("omid", "\x29B6"),+    ("ominus", "\x2296"),+    ("Oopf", "\xD835\xDD46"),+    ("oopf", "\xD835\xDD60"),+    ("opar", "\x29B7"),+    ("OpenCurlyDoubleQuote", "\x201C"),+    ("OpenCurlyQuote", "\x2018"),+    ("operp", "\x29B9"),+    ("oplus", "\x2295"),+    ("orarr", "\x21BB"),+    ("Or", "\x2A54"),+    ("or", "\x2228"),+    ("ord", "\x2A5D"),+    ("order", "\x2134"),+    ("orderof", "\x2134"),+    ("ordf", "\x00AA"),+    ("ordf", "\x00AA"),+    ("ordm", "\x00BA"),+    ("ordm", "\x00BA"),+    ("origof", "\x22B6"),+    ("oror", "\x2A56"),+    ("orslope", "\x2A57"),+    ("orv", "\x2A5B"),+    ("oS", "\x24C8"),+    ("Oscr", "\xD835\xDCAA"),+    ("oscr", "\x2134"),+    ("Oslash", "\x00D8"),+    ("Oslash", "\x00D8"),+    ("oslash", "\x00F8"),+    ("oslash", "\x00F8"),+    ("osol", "\x2298"),+    ("Otilde", "\x00D5"),+    ("Otilde", "\x00D5"),+    ("otilde", "\x00F5"),+    ("otilde", "\x00F5"),+    ("otimesas", "\x2A36"),+    ("Otimes", "\x2A37"),+    ("otimes", "\x2297"),+    ("Ouml", "\x00D6"),+    ("Ouml", "\x00D6"),+    ("ouml", "\x00F6"),+    ("ouml", "\x00F6"),+    ("ovbar", "\x233D"),+    ("OverBar", "\x203E"),+    ("OverBrace", "\x23DE"),+    ("OverBracket", "\x23B4"),+    ("OverParenthesis", "\x23DC"),+    ("para", "\x00B6"),+    ("para", "\x00B6"),+    ("parallel", "\x2225"),+    ("par", "\x2225"),+    ("parsim", "\x2AF3"),+    ("parsl", "\x2AFD"),+    ("part", "\x2202"),+    ("PartialD", "\x2202"),+    ("Pcy", "\x041F"),+    ("pcy", "\x043F"),+    ("percnt", "\x0025"),+    ("period", "\x002E"),+    ("permil", "\x2030"),+    ("perp", "\x22A5"),+    ("pertenk", "\x2031"),+    ("Pfr", "\xD835\xDD13"),+    ("pfr", "\xD835\xDD2D"),+    ("Phi", "\x03A6"),+    ("phi", "\x03C6"),+    ("phiv", "\x03D5"),+    ("phmmat", "\x2133"),+    ("phone", "\x260E"),+    ("Pi", "\x03A0"),+    ("pi", "\x03C0"),+    ("pitchfork", "\x22D4"),+    ("piv", "\x03D6"),+    ("planck", "\x210F"),+    ("planckh", "\x210E"),+    ("plankv", "\x210F"),+    ("plusacir", "\x2A23"),+    ("plusb", "\x229E"),+    ("pluscir", "\x2A22"),+    ("plus", "\x002B"),+    ("plusdo", "\x2214"),+    ("plusdu", "\x2A25"),+    ("pluse", "\x2A72"),+    ("PlusMinus", "\x00B1"),+    ("plusmn", "\x00B1"),+    ("plusmn", "\x00B1"),+    ("plussim", "\x2A26"),+    ("plustwo", "\x2A27"),+    ("pm", "\x00B1"),+    ("Poincareplane", "\x210C"),+    ("pointint", "\x2A15"),+    ("popf", "\xD835\xDD61"),+    ("Popf", "\x2119"),+    ("pound", "\x00A3"),+    ("pound", "\x00A3"),+    ("prap", "\x2AB7"),+    ("Pr", "\x2ABB"),+    ("pr", "\x227A"),+    ("prcue", "\x227C"),+    ("precapprox", "\x2AB7"),+    ("prec", "\x227A"),+    ("preccurlyeq", "\x227C"),+    ("Precedes", "\x227A"),+    ("PrecedesEqual", "\x2AAF"),+    ("PrecedesSlantEqual", "\x227C"),+    ("PrecedesTilde", "\x227E"),+    ("preceq", "\x2AAF"),+    ("precnapprox", "\x2AB9"),+    ("precneqq", "\x2AB5"),+    ("precnsim", "\x22E8"),+    ("pre", "\x2AAF"),+    ("prE", "\x2AB3"),+    ("precsim", "\x227E"),+    ("prime", "\x2032"),+    ("Prime", "\x2033"),+    ("primes", "\x2119"),+    ("prnap", "\x2AB9"),+    ("prnE", "\x2AB5"),+    ("prnsim", "\x22E8"),+    ("prod", "\x220F"),+    ("Product", "\x220F"),+    ("profalar", "\x232E"),+    ("profline", "\x2312"),+    ("profsurf", "\x2313"),+    ("prop", "\x221D"),+    ("Proportional", "\x221D"),+    ("Proportion", "\x2237"),+    ("propto", "\x221D"),+    ("prsim", "\x227E"),+    ("prurel", "\x22B0"),+    ("Pscr", "\xD835\xDCAB"),+    ("pscr", "\xD835\xDCC5"),+    ("Psi", "\x03A8"),+    ("psi", "\x03C8"),+    ("puncsp", "\x2008"),+    ("Qfr", "\xD835\xDD14"),+    ("qfr", "\xD835\xDD2E"),+    ("qint", "\x2A0C"),+    ("qopf", "\xD835\xDD62"),+    ("Qopf", "\x211A"),+    ("qprime", "\x2057"),+    ("Qscr", "\xD835\xDCAC"),+    ("qscr", "\xD835\xDCC6"),+    ("quaternions", "\x210D"),+    ("quatint", "\x2A16"),+    ("quest", "\x003F"),+    ("questeq", "\x225F"),+    ("quot", "\x0022"),+    ("quot", "\x0022"),+    ("QUOT", "\x0022"),+    ("QUOT", "\x0022"),+    ("rAarr", "\x21DB"),+    ("race", "\x223D\x0331"),+    ("Racute", "\x0154"),+    ("racute", "\x0155"),+    ("radic", "\x221A"),+    ("raemptyv", "\x29B3"),+    ("rang", "\x27E9"),+    ("Rang", "\x27EB"),+    ("rangd", "\x2992"),+    ("range", "\x29A5"),+    ("rangle", "\x27E9"),+    ("raquo", "\x00BB"),+    ("raquo", "\x00BB"),+    ("rarrap", "\x2975"),+    ("rarrb", "\x21E5"),+    ("rarrbfs", "\x2920"),+    ("rarrc", "\x2933"),+    ("rarr", "\x2192"),+    ("Rarr", "\x21A0"),+    ("rArr", "\x21D2"),+    ("rarrfs", "\x291E"),+    ("rarrhk", "\x21AA"),+    ("rarrlp", "\x21AC"),+    ("rarrpl", "\x2945"),+    ("rarrsim", "\x2974"),+    ("Rarrtl", "\x2916"),+    ("rarrtl", "\x21A3"),+    ("rarrw", "\x219D"),+    ("ratail", "\x291A"),+    ("rAtail", "\x291C"),+    ("ratio", "\x2236"),+    ("rationals", "\x211A"),+    ("rbarr", "\x290D"),+    ("rBarr", "\x290F"),+    ("RBarr", "\x2910"),+    ("rbbrk", "\x2773"),+    ("rbrace", "\x007D"),+    ("rbrack", "\x005D"),+    ("rbrke", "\x298C"),+    ("rbrksld", "\x298E"),+    ("rbrkslu", "\x2990"),+    ("Rcaron", "\x0158"),+    ("rcaron", "\x0159"),+    ("Rcedil", "\x0156"),+    ("rcedil", "\x0157"),+    ("rceil", "\x2309"),+    ("rcub", "\x007D"),+    ("Rcy", "\x0420"),+    ("rcy", "\x0440"),+    ("rdca", "\x2937"),+    ("rdldhar", "\x2969"),+    ("rdquo", "\x201D"),+    ("rdquor", "\x201D"),+    ("rdsh", "\x21B3"),+    ("real", "\x211C"),+    ("realine", "\x211B"),+    ("realpart", "\x211C"),+    ("reals", "\x211D"),+    ("Re", "\x211C"),+    ("rect", "\x25AD"),+    ("reg", "\x00AE"),+    ("reg", "\x00AE"),+    ("REG", "\x00AE"),+    ("REG", "\x00AE"),+    ("ReverseElement", "\x220B"),+    ("ReverseEquilibrium", "\x21CB"),+    ("ReverseUpEquilibrium", "\x296F"),+    ("rfisht", "\x297D"),+    ("rfloor", "\x230B"),+    ("rfr", "\xD835\xDD2F"),+    ("Rfr", "\x211C"),+    ("rHar", "\x2964"),+    ("rhard", "\x21C1"),+    ("rharu", "\x21C0"),+    ("rharul", "\x296C"),+    ("Rho", "\x03A1"),+    ("rho", "\x03C1"),+    ("rhov", "\x03F1"),+    ("RightAngleBracket", "\x27E9"),+    ("RightArrowBar", "\x21E5"),+    ("rightarrow", "\x2192"),+    ("RightArrow", "\x2192"),+    ("Rightarrow", "\x21D2"),+    ("RightArrowLeftArrow", "\x21C4"),+    ("rightarrowtail", "\x21A3"),+    ("RightCeiling", "\x2309"),+    ("RightDoubleBracket", "\x27E7"),+    ("RightDownTeeVector", "\x295D"),+    ("RightDownVectorBar", "\x2955"),+    ("RightDownVector", "\x21C2"),+    ("RightFloor", "\x230B"),+    ("rightharpoondown", "\x21C1"),+    ("rightharpoonup", "\x21C0"),+    ("rightleftarrows", "\x21C4"),+    ("rightleftharpoons", "\x21CC"),+    ("rightrightarrows", "\x21C9"),+    ("rightsquigarrow", "\x219D"),+    ("RightTeeArrow", "\x21A6"),+    ("RightTee", "\x22A2"),+    ("RightTeeVector", "\x295B"),+    ("rightthreetimes", "\x22CC"),+    ("RightTriangleBar", "\x29D0"),+    ("RightTriangle", "\x22B3"),+    ("RightTriangleEqual", "\x22B5"),+    ("RightUpDownVector", "\x294F"),+    ("RightUpTeeVector", "\x295C"),+    ("RightUpVectorBar", "\x2954"),+    ("RightUpVector", "\x21BE"),+    ("RightVectorBar", "\x2953"),+    ("RightVector", "\x21C0"),+    ("ring", "\x02DA"),+    ("risingdotseq", "\x2253"),+    ("rlarr", "\x21C4"),+    ("rlhar", "\x21CC"),+    ("rlm", "\x200F"),+    ("rmoustache", "\x23B1"),+    ("rmoust", "\x23B1"),+    ("rnmid", "\x2AEE"),+    ("roang", "\x27ED"),+    ("roarr", "\x21FE"),+    ("robrk", "\x27E7"),+    ("ropar", "\x2986"),+    ("ropf", "\xD835\xDD63"),+    ("Ropf", "\x211D"),+    ("roplus", "\x2A2E"),+    ("rotimes", "\x2A35"),+    ("RoundImplies", "\x2970"),+    ("rpar", "\x0029"),+    ("rpargt", "\x2994"),+    ("rppolint", "\x2A12"),+    ("rrarr", "\x21C9"),+    ("Rrightarrow", "\x21DB"),+    ("rsaquo", "\x203A"),+    ("rscr", "\xD835\xDCC7"),+    ("Rscr", "\x211B"),+    ("rsh", "\x21B1"),+    ("Rsh", "\x21B1"),+    ("rsqb", "\x005D"),+    ("rsquo", "\x2019"),+    ("rsquor", "\x2019"),+    ("rthree", "\x22CC"),+    ("rtimes", "\x22CA"),+    ("rtri", "\x25B9"),+    ("rtrie", "\x22B5"),+    ("rtrif", "\x25B8"),+    ("rtriltri", "\x29CE"),+    ("RuleDelayed", "\x29F4"),+    ("ruluhar", "\x2968"),+    ("rx", "\x211E"),+    ("Sacute", "\x015A"),+    ("sacute", "\x015B"),+    ("sbquo", "\x201A"),+    ("scap", "\x2AB8"),+    ("Scaron", "\x0160"),+    ("scaron", "\x0161"),+    ("Sc", "\x2ABC"),+    ("sc", "\x227B"),+    ("sccue", "\x227D"),+    ("sce", "\x2AB0"),+    ("scE", "\x2AB4"),+    ("Scedil", "\x015E"),+    ("scedil", "\x015F"),+    ("Scirc", "\x015C"),+    ("scirc", "\x015D"),+    ("scnap", "\x2ABA"),+    ("scnE", "\x2AB6"),+    ("scnsim", "\x22E9"),+    ("scpolint", "\x2A13"),+    ("scsim", "\x227F"),+    ("Scy", "\x0421"),+    ("scy", "\x0441"),+    ("sdotb", "\x22A1"),+    ("sdot", "\x22C5"),+    ("sdote", "\x2A66"),+    ("searhk", "\x2925"),+    ("searr", "\x2198"),+    ("seArr", "\x21D8"),+    ("searrow", "\x2198"),+    ("sect", "\x00A7"),+    ("sect", "\x00A7"),+    ("semi", "\x003B"),+    ("seswar", "\x2929"),+    ("setminus", "\x2216"),+    ("setmn", "\x2216"),+    ("sext", "\x2736"),+    ("Sfr", "\xD835\xDD16"),+    ("sfr", "\xD835\xDD30"),+    ("sfrown", "\x2322"),+    ("sharp", "\x266F"),+    ("SHCHcy", "\x0429"),+    ("shchcy", "\x0449"),+    ("SHcy", "\x0428"),+    ("shcy", "\x0448"),+    ("ShortDownArrow", "\x2193"),+    ("ShortLeftArrow", "\x2190"),+    ("shortmid", "\x2223"),+    ("shortparallel", "\x2225"),+    ("ShortRightArrow", "\x2192"),+    ("ShortUpArrow", "\x2191"),+    ("shy", "\x00AD"),+    ("shy", "\x00AD"),+    ("Sigma", "\x03A3"),+    ("sigma", "\x03C3"),+    ("sigmaf", "\x03C2"),+    ("sigmav", "\x03C2"),+    ("sim", "\x223C"),+    ("simdot", "\x2A6A"),+    ("sime", "\x2243"),+    ("simeq", "\x2243"),+    ("simg", "\x2A9E"),+    ("simgE", "\x2AA0"),+    ("siml", "\x2A9D"),+    ("simlE", "\x2A9F"),+    ("simne", "\x2246"),+    ("simplus", "\x2A24"),+    ("simrarr", "\x2972"),+    ("slarr", "\x2190"),+    ("SmallCircle", "\x2218"),+    ("smallsetminus", "\x2216"),+    ("smashp", "\x2A33"),+    ("smeparsl", "\x29E4"),+    ("smid", "\x2223"),+    ("smile", "\x2323"),+    ("smt", "\x2AAA"),+    ("smte", "\x2AAC"),+    ("smtes", "\x2AAC\xFE00"),+    ("SOFTcy", "\x042C"),+    ("softcy", "\x044C"),+    ("solbar", "\x233F"),+    ("solb", "\x29C4"),+    ("sol", "\x002F"),+    ("Sopf", "\xD835\xDD4A"),+    ("sopf", "\xD835\xDD64"),+    ("spades", "\x2660"),+    ("spadesuit", "\x2660"),+    ("spar", "\x2225"),+    ("sqcap", "\x2293"),+    ("sqcaps", "\x2293\xFE00"),+    ("sqcup", "\x2294"),+    ("sqcups", "\x2294\xFE00"),+    ("Sqrt", "\x221A"),+    ("sqsub", "\x228F"),+    ("sqsube", "\x2291"),+    ("sqsubset", "\x228F"),+    ("sqsubseteq", "\x2291"),+    ("sqsup", "\x2290"),+    ("sqsupe", "\x2292"),+    ("sqsupset", "\x2290"),+    ("sqsupseteq", "\x2292"),+    ("square", "\x25A1"),+    ("Square", "\x25A1"),+    ("SquareIntersection", "\x2293"),+    ("SquareSubset", "\x228F"),+    ("SquareSubsetEqual", "\x2291"),+    ("SquareSuperset", "\x2290"),+    ("SquareSupersetEqual", "\x2292"),+    ("SquareUnion", "\x2294"),+    ("squarf", "\x25AA"),+    ("squ", "\x25A1"),+    ("squf", "\x25AA"),+    ("srarr", "\x2192"),+    ("Sscr", "\xD835\xDCAE"),+    ("sscr", "\xD835\xDCC8"),+    ("ssetmn", "\x2216"),+    ("ssmile", "\x2323"),+    ("sstarf", "\x22C6"),+    ("Star", "\x22C6"),+    ("star", "\x2606"),+    ("starf", "\x2605"),+    ("straightepsilon", "\x03F5"),+    ("straightphi", "\x03D5"),+    ("strns", "\x00AF"),+    ("sub", "\x2282"),+    ("Sub", "\x22D0"),+    ("subdot", "\x2ABD"),+    ("subE", "\x2AC5"),+    ("sube", "\x2286"),+    ("subedot", "\x2AC3"),+    ("submult", "\x2AC1"),+    ("subnE", "\x2ACB"),+    ("subne", "\x228A"),+    ("subplus", "\x2ABF"),+    ("subrarr", "\x2979"),+    ("subset", "\x2282"),+    ("Subset", "\x22D0"),+    ("subseteq", "\x2286"),+    ("subseteqq", "\x2AC5"),+    ("SubsetEqual", "\x2286"),+    ("subsetneq", "\x228A"),+    ("subsetneqq", "\x2ACB"),+    ("subsim", "\x2AC7"),+    ("subsub", "\x2AD5"),+    ("subsup", "\x2AD3"),+    ("succapprox", "\x2AB8"),+    ("succ", "\x227B"),+    ("succcurlyeq", "\x227D"),+    ("Succeeds", "\x227B"),+    ("SucceedsEqual", "\x2AB0"),+    ("SucceedsSlantEqual", "\x227D"),+    ("SucceedsTilde", "\x227F"),+    ("succeq", "\x2AB0"),+    ("succnapprox", "\x2ABA"),+    ("succneqq", "\x2AB6"),+    ("succnsim", "\x22E9"),+    ("succsim", "\x227F"),+    ("SuchThat", "\x220B"),+    ("sum", "\x2211"),+    ("Sum", "\x2211"),+    ("sung", "\x266A"),+    ("sup1", "\x00B9"),+    ("sup1", "\x00B9"),+    ("sup2", "\x00B2"),+    ("sup2", "\x00B2"),+    ("sup3", "\x00B3"),+    ("sup3", "\x00B3"),+    ("sup", "\x2283"),+    ("Sup", "\x22D1"),+    ("supdot", "\x2ABE"),+    ("supdsub", "\x2AD8"),+    ("supE", "\x2AC6"),+    ("supe", "\x2287"),+    ("supedot", "\x2AC4"),+    ("Superset", "\x2283"),+    ("SupersetEqual", "\x2287"),+    ("suphsol", "\x27C9"),+    ("suphsub", "\x2AD7"),+    ("suplarr", "\x297B"),+    ("supmult", "\x2AC2"),+    ("supnE", "\x2ACC"),+    ("supne", "\x228B"),+    ("supplus", "\x2AC0"),+    ("supset", "\x2283"),+    ("Supset", "\x22D1"),+    ("supseteq", "\x2287"),+    ("supseteqq", "\x2AC6"),+    ("supsetneq", "\x228B"),+    ("supsetneqq", "\x2ACC"),+    ("supsim", "\x2AC8"),+    ("supsub", "\x2AD4"),+    ("supsup", "\x2AD6"),+    ("swarhk", "\x2926"),+    ("swarr", "\x2199"),+    ("swArr", "\x21D9"),+    ("swarrow", "\x2199"),+    ("swnwar", "\x292A"),+    ("szlig", "\x00DF"),+    ("szlig", "\x00DF"),+    ("Tab", "\x0009"),+    ("target", "\x2316"),+    ("Tau", "\x03A4"),+    ("tau", "\x03C4"),+    ("tbrk", "\x23B4"),+    ("Tcaron", "\x0164"),+    ("tcaron", "\x0165"),+    ("Tcedil", "\x0162"),+    ("tcedil", "\x0163"),+    ("Tcy", "\x0422"),+    ("tcy", "\x0442"),+    ("tdot", "\x20DB"),+    ("telrec", "\x2315"),+    ("Tfr", "\xD835\xDD17"),+    ("tfr", "\xD835\xDD31"),+    ("there4", "\x2234"),+    ("therefore", "\x2234"),+    ("Therefore", "\x2234"),+    ("Theta", "\x0398"),+    ("theta", "\x03B8"),+    ("thetasym", "\x03D1"),+    ("thetav", "\x03D1"),+    ("thickapprox", "\x2248"),+    ("thicksim", "\x223C"),+    ("ThickSpace", "\x205F\x200A"),+    ("ThinSpace", "\x2009"),+    ("thinsp", "\x2009"),+    ("thkap", "\x2248"),+    ("thksim", "\x223C"),+    ("THORN", "\x00DE"),+    ("THORN", "\x00DE"),+    ("thorn", "\x00FE"),+    ("thorn", "\x00FE"),+    ("tilde", "\x02DC"),+    ("Tilde", "\x223C"),+    ("TildeEqual", "\x2243"),+    ("TildeFullEqual", "\x2245"),+    ("TildeTilde", "\x2248"),+    ("timesbar", "\x2A31"),+    ("timesb", "\x22A0"),+    ("times", "\x00D7"),+    ("times", "\x00D7"),+    ("timesd", "\x2A30"),+    ("tint", "\x222D"),+    ("toea", "\x2928"),+    ("topbot", "\x2336"),+    ("topcir", "\x2AF1"),+    ("top", "\x22A4"),+    ("Topf", "\xD835\xDD4B"),+    ("topf", "\xD835\xDD65"),+    ("topfork", "\x2ADA"),+    ("tosa", "\x2929"),+    ("tprime", "\x2034"),+    ("trade", "\x2122"),+    ("TRADE", "\x2122"),+    ("triangle", "\x25B5"),+    ("triangledown", "\x25BF"),+    ("triangleleft", "\x25C3"),+    ("trianglelefteq", "\x22B4"),+    ("triangleq", "\x225C"),+    ("triangleright", "\x25B9"),+    ("trianglerighteq", "\x22B5"),+    ("tridot", "\x25EC"),+    ("trie", "\x225C"),+    ("triminus", "\x2A3A"),+    ("TripleDot", "\x20DB"),+    ("triplus", "\x2A39"),+    ("trisb", "\x29CD"),+    ("tritime", "\x2A3B"),+    ("trpezium", "\x23E2"),+    ("Tscr", "\xD835\xDCAF"),+    ("tscr", "\xD835\xDCC9"),+    ("TScy", "\x0426"),+    ("tscy", "\x0446"),+    ("TSHcy", "\x040B"),+    ("tshcy", "\x045B"),+    ("Tstrok", "\x0166"),+    ("tstrok", "\x0167"),+    ("twixt", "\x226C"),+    ("twoheadleftarrow", "\x219E"),+    ("twoheadrightarrow", "\x21A0"),+    ("Uacute", "\x00DA"),+    ("Uacute", "\x00DA"),+    ("uacute", "\x00FA"),+    ("uacute", "\x00FA"),+    ("uarr", "\x2191"),+    ("Uarr", "\x219F"),+    ("uArr", "\x21D1"),+    ("Uarrocir", "\x2949"),+    ("Ubrcy", "\x040E"),+    ("ubrcy", "\x045E"),+    ("Ubreve", "\x016C"),+    ("ubreve", "\x016D"),+    ("Ucirc", "\x00DB"),+    ("Ucirc", "\x00DB"),+    ("ucirc", "\x00FB"),+    ("ucirc", "\x00FB"),+    ("Ucy", "\x0423"),+    ("ucy", "\x0443"),+    ("udarr", "\x21C5"),+    ("Udblac", "\x0170"),+    ("udblac", "\x0171"),+    ("udhar", "\x296E"),+    ("ufisht", "\x297E"),+    ("Ufr", "\xD835\xDD18"),+    ("ufr", "\xD835\xDD32"),+    ("Ugrave", "\x00D9"),+    ("Ugrave", "\x00D9"),+    ("ugrave", "\x00F9"),+    ("ugrave", "\x00F9"),+    ("uHar", "\x2963"),+    ("uharl", "\x21BF"),+    ("uharr", "\x21BE"),+    ("uhblk", "\x2580"),+    ("ulcorn", "\x231C"),+    ("ulcorner", "\x231C"),+    ("ulcrop", "\x230F"),+    ("ultri", "\x25F8"),+    ("Umacr", "\x016A"),+    ("umacr", "\x016B"),+    ("uml", "\x00A8"),+    ("uml", "\x00A8"),+    ("UnderBar", "\x005F"),+    ("UnderBrace", "\x23DF"),+    ("UnderBracket", "\x23B5"),+    ("UnderParenthesis", "\x23DD"),+    ("Union", "\x22C3"),+    ("UnionPlus", "\x228E"),+    ("Uogon", "\x0172"),+    ("uogon", "\x0173"),+    ("Uopf", "\xD835\xDD4C"),+    ("uopf", "\xD835\xDD66"),+    ("UpArrowBar", "\x2912"),+    ("uparrow", "\x2191"),+    ("UpArrow", "\x2191"),+    ("Uparrow", "\x21D1"),+    ("UpArrowDownArrow", "\x21C5"),+    ("updownarrow", "\x2195"),+    ("UpDownArrow", "\x2195"),+    ("Updownarrow", "\x21D5"),+    ("UpEquilibrium", "\x296E"),+    ("upharpoonleft", "\x21BF"),+    ("upharpoonright", "\x21BE"),+    ("uplus", "\x228E"),+    ("UpperLeftArrow", "\x2196"),+    ("UpperRightArrow", "\x2197"),+    ("upsi", "\x03C5"),+    ("Upsi", "\x03D2"),+    ("upsih", "\x03D2"),+    ("Upsilon", "\x03A5"),+    ("upsilon", "\x03C5"),+    ("UpTeeArrow", "\x21A5"),+    ("UpTee", "\x22A5"),+    ("upuparrows", "\x21C8"),+    ("urcorn", "\x231D"),+    ("urcorner", "\x231D"),+    ("urcrop", "\x230E"),+    ("Uring", "\x016E"),+    ("uring", "\x016F"),+    ("urtri", "\x25F9"),+    ("Uscr", "\xD835\xDCB0"),+    ("uscr", "\xD835\xDCCA"),+    ("utdot", "\x22F0"),+    ("Utilde", "\x0168"),+    ("utilde", "\x0169"),+    ("utri", "\x25B5"),+    ("utrif", "\x25B4"),+    ("uuarr", "\x21C8"),+    ("Uuml", "\x00DC"),+    ("Uuml", "\x00DC"),+    ("uuml", "\x00FC"),+    ("uuml", "\x00FC"),+    ("uwangle", "\x29A7"),+    ("vangrt", "\x299C"),+    ("varepsilon", "\x03F5"),+    ("varkappa", "\x03F0"),+    ("varnothing", "\x2205"),+    ("varphi", "\x03D5"),+    ("varpi", "\x03D6"),+    ("varpropto", "\x221D"),+    ("varr", "\x2195"),+    ("vArr", "\x21D5"),+    ("varrho", "\x03F1"),+    ("varsigma", "\x03C2"),+    ("varsubsetneq", "\x228A\xFE00"),+    ("varsubsetneqq", "\x2ACB\xFE00"),+    ("varsupsetneq", "\x228B\xFE00"),+    ("varsupsetneqq", "\x2ACC\xFE00"),+    ("vartheta", "\x03D1"),+    ("vartriangleleft", "\x22B2"),+    ("vartriangleright", "\x22B3"),+    ("vBar", "\x2AE8"),+    ("Vbar", "\x2AEB"),+    ("vBarv", "\x2AE9"),+    ("Vcy", "\x0412"),+    ("vcy", "\x0432"),+    ("vdash", "\x22A2"),+    ("vDash", "\x22A8"),+    ("Vdash", "\x22A9"),+    ("VDash", "\x22AB"),+    ("Vdashl", "\x2AE6"),+    ("veebar", "\x22BB"),+    ("vee", "\x2228"),+    ("Vee", "\x22C1"),+    ("veeeq", "\x225A"),+    ("vellip", "\x22EE"),+    ("verbar", "\x007C"),+    ("Verbar", "\x2016"),+    ("vert", "\x007C"),+    ("Vert", "\x2016"),+    ("VerticalBar", "\x2223"),+    ("VerticalLine", "\x007C"),+    ("VerticalSeparator", "\x2758"),+    ("VerticalTilde", "\x2240"),+    ("VeryThinSpace", "\x200A"),+    ("Vfr", "\xD835\xDD19"),+    ("vfr", "\xD835\xDD33"),+    ("vltri", "\x22B2"),+    ("vnsub", "\x2282\x20D2"),+    ("vnsup", "\x2283\x20D2"),+    ("Vopf", "\xD835\xDD4D"),+    ("vopf", "\xD835\xDD67"),+    ("vprop", "\x221D"),+    ("vrtri", "\x22B3"),+    ("Vscr", "\xD835\xDCB1"),+    ("vscr", "\xD835\xDCCB"),+    ("vsubnE", "\x2ACB\xFE00"),+    ("vsubne", "\x228A\xFE00"),+    ("vsupnE", "\x2ACC\xFE00"),+    ("vsupne", "\x228B\xFE00"),+    ("Vvdash", "\x22AA"),+    ("vzigzag", "\x299A"),+    ("Wcirc", "\x0174"),+    ("wcirc", "\x0175"),+    ("wedbar", "\x2A5F"),+    ("wedge", "\x2227"),+    ("Wedge", "\x22C0"),+    ("wedgeq", "\x2259"),+    ("weierp", "\x2118"),+    ("Wfr", "\xD835\xDD1A"),+    ("wfr", "\xD835\xDD34"),+    ("Wopf", "\xD835\xDD4E"),+    ("wopf", "\xD835\xDD68"),+    ("wp", "\x2118"),+    ("wr", "\x2240"),+    ("wreath", "\x2240"),+    ("Wscr", "\xD835\xDCB2"),+    ("wscr", "\xD835\xDCCC"),+    ("xcap", "\x22C2"),+    ("xcirc", "\x25EF"),+    ("xcup", "\x22C3"),+    ("xdtri", "\x25BD"),+    ("Xfr", "\xD835\xDD1B"),+    ("xfr", "\xD835\xDD35"),+    ("xharr", "\x27F7"),+    ("xhArr", "\x27FA"),+    ("Xi", "\x039E"),+    ("xi", "\x03BE"),+    ("xlarr", "\x27F5"),+    ("xlArr", "\x27F8"),+    ("xmap", "\x27FC"),+    ("xnis", "\x22FB"),+    ("xodot", "\x2A00"),+    ("Xopf", "\xD835\xDD4F"),+    ("xopf", "\xD835\xDD69"),+    ("xoplus", "\x2A01"),+    ("xotime", "\x2A02"),+    ("xrarr", "\x27F6"),+    ("xrArr", "\x27F9"),+    ("Xscr", "\xD835\xDCB3"),+    ("xscr", "\xD835\xDCCD"),+    ("xsqcup", "\x2A06"),+    ("xuplus", "\x2A04"),+    ("xutri", "\x25B3"),+    ("xvee", "\x22C1"),+    ("xwedge", "\x22C0"),+    ("Yacute", "\x00DD"),+    ("Yacute", "\x00DD"),+    ("yacute", "\x00FD"),+    ("yacute", "\x00FD"),+    ("YAcy", "\x042F"),+    ("yacy", "\x044F"),+    ("Ycirc", "\x0176"),+    ("ycirc", "\x0177"),+    ("Ycy", "\x042B"),+    ("ycy", "\x044B"),+    ("yen", "\x00A5"),+    ("yen", "\x00A5"),+    ("Yfr", "\xD835\xDD1C"),+    ("yfr", "\xD835\xDD36"),+    ("YIcy", "\x0407"),+    ("yicy", "\x0457"),+    ("Yopf", "\xD835\xDD50"),+    ("yopf", "\xD835\xDD6A"),+    ("Yscr", "\xD835\xDCB4"),+    ("yscr", "\xD835\xDCCE"),+    ("YUcy", "\x042E"),+    ("yucy", "\x044E"),+    ("yuml", "\x00FF"),+    ("yuml", "\x00FF"),+    ("Yuml", "\x0178"),+    ("Zacute", "\x0179"),+    ("zacute", "\x017A"),+    ("Zcaron", "\x017D"),+    ("zcaron", "\x017E"),+    ("Zcy", "\x0417"),+    ("zcy", "\x0437"),+    ("Zdot", "\x017B"),+    ("zdot", "\x017C"),+    ("zeetrf", "\x2128"),+    ("ZeroWidthSpace", "\x200B"),+    ("Zeta", "\x0396"),+    ("zeta", "\x03B6"),+    ("zfr", "\xD835\xDD37"),+    ("Zfr", "\x2128"),+    ("ZHcy", "\x0416"),+    ("zhcy", "\x0436"),+    ("zigrarr", "\x21DD"),+    ("zopf", "\xD835\xDD6B"),+    ("Zopf", "\x2124"),+    ("Zscr", "\xD835\xDCB5"),+    ("zscr", "\xD835\xDCCF"),+    ("zwj", "\x200D"),+    ("zwnj", "\x200C")+  ]
+ library/HTMLEntities/Parser.hs view
@@ -0,0 +1,28 @@+-- |+-- Attoparsec parsers.+module HTMLEntities.Parser where++import HTMLEntities.Prelude+import Data.Attoparsec.Text+import qualified Data.Text as Text+import qualified HTMLEntities.NamedTable as NamedTable+++-- |+-- A parser of a single entity.+-- +-- >>> parseOnly htmlEntity "&copy;"+-- Right "\169"+-- +-- >>> parseOnly htmlEntity "&#169;"+-- Right "\169"+htmlEntity :: Parser Text+htmlEntity =+  char '&' *> (numeric <|> named) <* char ';'+  where+    numeric =+      Text.singleton . chr <$> (char '#' *> (decimal <|> (char 'x' *> hexadecimal)))+    named =+      takeWhile1 isAlpha >>= liftMaybe . NamedTable.lookup+    liftMaybe =+      maybe empty pure
+ library/HTMLEntities/Prelude.hs view
@@ -0,0 +1,8 @@+module HTMLEntities.Prelude+(+  module Exports,+)+where++import BasePrelude as Exports+import Data.Text as Exports (Text)