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 +22/−0
- Setup.hs +42/−0
- doctest/Main.hs +66/−0
- html-entities.cabal +78/−0
- library/HTMLEntities/Decoder.hs +39/−0
- library/HTMLEntities/NamedTable.hs +2249/−0
- library/HTMLEntities/Parser.hs +28/−0
- library/HTMLEntities/Prelude.hs +8/−0
+ 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 "©"+-- 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 "€5 ¢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 "©"+-- Right "\169"+-- +-- >>> parseOnly htmlEntity "©"+-- 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)