-- | This module converts between HTML/XML entities (i.e. @&@) and -- the characters they represent. module Text.HTML.TagSoup.Entity( lookupEntity, lookupNamedEntity, lookupNumericEntity, escapeXML, xmlEntities, htmlEntities ) where import Data.Char (chr, ord) import qualified Data.IntMap as IntMap import Data.Ix import qualified Data.Map as Map import Numeric (readHex) -- | Lookup an entity, using 'lookupNumericEntity' if it starts with -- @#@ and 'lookupNamedEntity' otherwise lookupEntity :: String -> Maybe String lookupEntity ('#':xs) = lookupNumericEntity xs lookupEntity xs = lookupNamedEntity xs -- | Lookup a numeric entity, the leading @\'#\'@ must have already been removed. -- -- > lookupNumericEntity "65" == Just "A" -- > lookupNumericEntity "x41" == Just "A" -- > lookupNumericEntity "x4E" === Just "N" -- > lookupNumericEntity "x4e" === Just "N" -- > lookupNumericEntity "Haskell" == Nothing -- > lookupNumericEntity "" == Nothing -- > lookupNumericEntity "89439085908539082" == Nothing lookupNumericEntity :: String -> Maybe String lookupNumericEntity = f -- entity = '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';' where f ('x':xs) = g [('0','9'),('a','f'),('A','F')] readHex xs f xs = g [('0','9')] reads xs g :: [(Char,Char)] -> ReadS Integer -> String -> Maybe String g valid reader xs = do let test b = if b then Just () else Nothing test $ isValid valid xs test $ not $ null xs case reader xs of [(a,"")] -> do test $ inRange (toInteger $ ord minBound, toInteger $ ord maxBound) a return [chr $ fromInteger a] _ -> Nothing isValid :: [(Char,Char)] -> String -> Bool isValid valid xs = all (\x -> any (`inRange` x) valid) xs -- | Lookup a named entity, using 'htmlEntities' -- -- > lookupNamedEntity "amp" == Just "&" -- > lookupNamedEntity "haskell" == Nothing lookupNamedEntity :: String -> Maybe String lookupNamedEntity = \x -> Map.lookup x mp where mp = Map.fromList htmlEntities -- | Escape an XML string. -- -- > escapeXML "hello world" == "hello world" -- > escapeXML "hello & world" == "hello & world" escapeXML :: String -> String escapeXML = concatMap $ \x -> IntMap.findWithDefault [x] (ord x) mp where mp = IntMap.fromList [(ord b, "&"++a++";") | (a,[b]) <- xmlEntities] -- | A table mapping XML entity names to resolved strings. All strings are a single character long. -- Does /not/ include @apos@ as Internet Explorer does not know about it. xmlEntities :: [(String, String)] xmlEntities = let a*b = (a,[b]) in ["quot" * '"' ,"amp" * '&' -- ,"apos" * '\'' -- Internet Explorer does not know that ,"lt" * '<' ,"gt" * '>' ] -- | A table mapping HTML entity names to resolved strings. Most resolved strings are a single character long, -- but some (e.g. @"ngeqq"@) are two characters long. The list is taken from -- . htmlEntities :: [(String, String)] htmlEntities = let (*) = (,) in ["Aacute" * "\x00C1" ,"aacute" * "\x00E1" ,"Abreve" * "\x0102" ,"abreve" * "\x0103" ,"ac" * "\x223E" ,"acd" * "\x223F" ,"acE" * "\x223E\x0333" ,"Acirc" * "\x00C2" ,"acirc" * "\x00E2" ,"acute" * "\x00B4" ,"Acy" * "\x0410" ,"acy" * "\x0430" ,"AElig" * "\x00C6" ,"aelig" * "\x00E6" ,"af" * "\x2061" ,"Afr" * "\xD835\xDD04" ,"afr" * "\xD835\xDD1E" ,"Agrave" * "\x00C0" ,"agrave" * "\x00E0" ,"alefsym" * "\x2135" ,"aleph" * "\x2135" ,"Alpha" * "\x0391" ,"alpha" * "\x03B1" ,"Amacr" * "\x0100" ,"amacr" * "\x0101" ,"amalg" * "\x2A3F" ,"AMP" * "\x0026" ,"amp" * "\x0026" ,"and" * "\x2227" ,"And" * "\x2A53" ,"andand" * "\x2A55" ,"andd" * "\x2A5C" ,"andslope" * "\x2A58" ,"andv" * "\x2A5A" ,"ang" * "\x2220" ,"ange" * "\x29A4" ,"angle" * "\x2220" ,"angmsd" * "\x2221" ,"angmsdaa" * "\x29A8" ,"angmsdab" * "\x29A9" ,"angmsdac" * "\x29AA" ,"angmsdad" * "\x29AB" ,"angmsdae" * "\x29AC" ,"angmsdaf" * "\x29AD" ,"angmsdag" * "\x29AE" ,"angmsdah" * "\x29AF" ,"angrt" * "\x221F" ,"angrtvb" * "\x22BE" ,"angrtvbd" * "\x299D" ,"angsph" * "\x2222" ,"angst" * "\x00C5" ,"angzarr" * "\x237C" ,"Aogon" * "\x0104" ,"aogon" * "\x0105" ,"Aopf" * "\xD835\xDD38" ,"aopf" * "\xD835\xDD52" ,"ap" * "\x2248" ,"apacir" * "\x2A6F" ,"ape" * "\x224A" ,"apE" * "\x2A70" ,"apid" * "\x224B" ,"apos" * "\x0027" ,"ApplyFunction" * "\x2061" ,"approx" * "\x2248" ,"approxeq" * "\x224A" ,"Aring" * "\x00C5" ,"aring" * "\x00E5" ,"Ascr" * "\xD835\xDC9C" ,"ascr" * "\xD835\xDCB6" ,"Assign" * "\x2254" ,"ast" * "\x002A" ,"asymp" * "\x2248" ,"asympeq" * "\x224D" ,"Atilde" * "\x00C3" ,"atilde" * "\x00E3" ,"Auml" * "\x00C4" ,"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" * "\x2310" ,"bNot" * "\x2AED" ,"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" ,"Bscr" * "\x212C" ,"bscr" * "\xD835\xDCB7" ,"bsemi" * "\x204F" ,"bsim" * "\x223D" ,"bsime" * "\x22CD" ,"bsol" * "\x005C" ,"bsolb" * "\x29C5" ,"bsolhsub" * "\x27C8" ,"bull" * "\x2022" ,"bullet" * "\x2022" ,"bump" * "\x224E" ,"bumpe" * "\x224F" ,"bumpE" * "\x2AAE" ,"Bumpeq" * "\x224E" ,"bumpeq" * "\x224F" ,"Cacute" * "\x0106" ,"cacute" * "\x0107" ,"cap" * "\x2229" ,"Cap" * "\x22D2" ,"capand" * "\x2A44" ,"capbrcup" * "\x2A49" ,"capcap" * "\x2A4B" ,"capcup" * "\x2A47" ,"capdot" * "\x2A40" ,"CapitalDifferentialD" * "\x2145" ,"caps" * "\x2229\xFE00" ,"caret" * "\x2041" ,"caron" * "\x02C7" ,"Cayleys" * "\x212D" ,"ccaps" * "\x2A4D" ,"Ccaron" * "\x010C" ,"ccaron" * "\x010D" ,"Ccedil" * "\x00C7" ,"ccedil" * "\x00E7" ,"Ccirc" * "\x0108" ,"ccirc" * "\x0109" ,"Cconint" * "\x2230" ,"ccups" * "\x2A4C" ,"ccupssm" * "\x2A50" ,"Cdot" * "\x010A" ,"cdot" * "\x010B" ,"cedil" * "\x00B8" ,"Cedilla" * "\x00B8" ,"cemptyv" * "\x29B2" ,"cent" * "\x00A2" ,"CenterDot" * "\x00B7" ,"centerdot" * "\x00B7" ,"Cfr" * "\x212D" ,"cfr" * "\xD835\xDD20" ,"CHcy" * "\x0427" ,"chcy" * "\x0447" ,"check" * "\x2713" ,"checkmark" * "\x2713" ,"Chi" * "\x03A7" ,"chi" * "\x03C7" ,"cir" * "\x25CB" ,"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" ,"cire" * "\x2257" ,"cirE" * "\x29C3" ,"cirfnint" * "\x2A10" ,"cirmid" * "\x2AEF" ,"cirscir" * "\x29C2" ,"ClockwiseContourIntegral" * "\x2232" ,"CloseCurlyDoubleQuote" * "\x201D" ,"CloseCurlyQuote" * "\x2019" ,"clubs" * "\x2663" ,"clubsuit" * "\x2663" ,"colon" * "\x003A" ,"Colon" * "\x2237" ,"colone" * "\x2254" ,"Colone" * "\x2A74" ,"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" * "\x2102" ,"copf" * "\xD835\xDD54" ,"coprod" * "\x2210" ,"Coproduct" * "\x2210" ,"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" ,"cup" * "\x222A" ,"Cup" * "\x22D3" ,"cupbrcap" * "\x2A48" ,"CupCap" * "\x224D" ,"cupcap" * "\x2A46" ,"cupcup" * "\x2A4A" ,"cupdot" * "\x228D" ,"cupor" * "\x2A45" ,"cups" * "\x222A\xFE00" ,"curarr" * "\x21B7" ,"curarrm" * "\x293C" ,"curlyeqprec" * "\x22DE" ,"curlyeqsucc" * "\x22DF" ,"curlyvee" * "\x22CE" ,"curlywedge" * "\x22CF" ,"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" * "\x22A3" ,"Dashv" * "\x2AE4" ,"dbkarow" * "\x290F" ,"dblac" * "\x02DD" ,"Dcaron" * "\x010E" ,"dcaron" * "\x010F" ,"Dcy" * "\x0414" ,"dcy" * "\x0434" ,"DD" * "\x2145" ,"dd" * "\x2146" ,"ddagger" * "\x2021" ,"ddarr" * "\x21CA" ,"DDotrahd" * "\x2911" ,"ddotseq" * "\x2A77" ,"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" ,"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" ,"DownArrow" * "\x2193" ,"downarrow" * "\x2193" ,"Downarrow" * "\x21D3" ,"DownArrowBar" * "\x2913" ,"DownArrowUpArrow" * "\x21F5" ,"DownBreve" * "\x0311" ,"downdownarrows" * "\x21CA" ,"downharpoonleft" * "\x21C3" ,"downharpoonright" * "\x21C2" ,"DownLeftRightVector" * "\x2950" ,"DownLeftTeeVector" * "\x295E" ,"DownLeftVector" * "\x21BD" ,"DownLeftVectorBar" * "\x2956" ,"DownRightTeeVector" * "\x295F" ,"DownRightVector" * "\x21C1" ,"DownRightVectorBar" * "\x2957" ,"DownTee" * "\x22A4" ,"DownTeeArrow" * "\x21A7" ,"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" * "\x00E9" ,"easter" * "\x2A6E" ,"Ecaron" * "\x011A" ,"ecaron" * "\x011B" ,"ecir" * "\x2256" ,"Ecirc" * "\x00CA" ,"ecirc" * "\x00EA" ,"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" * "\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" ,"emsp" * "\x2003" ,"emsp13" * "\x2004" ,"emsp14" * "\x2005" ,"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" * "\x2242" ,"Esim" * "\x2A73" ,"Eta" * "\x0397" ,"eta" * "\x03B7" ,"ETH" * "\x00D0" ,"eth" * "\x00F0" ,"Euml" * "\x00CB" ,"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" ,"frac13" * "\x2153" ,"frac14" * "\x00BC" ,"frac15" * "\x2155" ,"frac16" * "\x2159" ,"frac18" * "\x215B" ,"frac23" * "\x2154" ,"frac25" * "\x2156" ,"frac34" * "\x00BE" ,"frac35" * "\x2157" ,"frac38" * "\x215C" ,"frac45" * "\x2158" ,"frac56" * "\x215A" ,"frac58" * "\x215D" ,"frac78" * "\x215E" ,"frasl" * "\x2044" ,"frown" * "\x2322" ,"Fscr" * "\x2131" ,"fscr" * "\xD835\xDCBB" ,"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" * "\x22DB" ,"gEl" * "\x2A8C" ,"geq" * "\x2265" ,"geqq" * "\x2267" ,"geqslant" * "\x2A7E" ,"ges" * "\x2A7E" ,"gescc" * "\x2AA9" ,"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" ,"gl" * "\x2277" ,"gla" * "\x2AA5" ,"glE" * "\x2A92" ,"glj" * "\x2AA4" ,"gnap" * "\x2A8A" ,"gnapprox" * "\x2A8A" ,"gnE" * "\x2269" ,"gne" * "\x2A88" ,"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" * "\x210A" ,"Gscr" * "\xD835\xDCA2" ,"gsim" * "\x2273" ,"gsime" * "\x2A8E" ,"gsiml" * "\x2A90" ,"GT" * "\x003E" ,"gt" * "\x003E" ,"Gt" * "\x226B" ,"gtcc" * "\x2AA7" ,"gtcir" * "\x2A7A" ,"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" ,"harr" * "\x2194" ,"hArr" * "\x21D4" ,"harrcir" * "\x2948" ,"harrw" * "\x21AD" ,"Hat" * "\x005E" ,"hbar" * "\x210F" ,"Hcirc" * "\x0124" ,"hcirc" * "\x0125" ,"hearts" * "\x2665" ,"heartsuit" * "\x2665" ,"hellip" * "\x2026" ,"hercon" * "\x22B9" ,"Hfr" * "\x210C" ,"hfr" * "\xD835\xDD25" ,"HilbertSpace" * "\x210B" ,"hksearow" * "\x2925" ,"hkswarow" * "\x2926" ,"hoarr" * "\x21FF" ,"homtht" * "\x223B" ,"hookleftarrow" * "\x21A9" ,"hookrightarrow" * "\x21AA" ,"Hopf" * "\x210D" ,"hopf" * "\xD835\xDD59" ,"horbar" * "\x2015" ,"HorizontalLine" * "\x2500" ,"Hscr" * "\x210B" ,"hscr" * "\xD835\xDCBD" ,"hslash" * "\x210F" ,"Hstrok" * "\x0126" ,"hstrok" * "\x0127" ,"HumpDownHump" * "\x224E" ,"HumpEqual" * "\x224F" ,"hybull" * "\x2043" ,"hyphen" * "\x2010" ,"Iacute" * "\x00CD" ,"iacute" * "\x00ED" ,"ic" * "\x2063" ,"Icirc" * "\x00CE" ,"icirc" * "\x00EE" ,"Icy" * "\x0418" ,"icy" * "\x0438" ,"Idot" * "\x0130" ,"IEcy" * "\x0415" ,"iecy" * "\x0435" ,"iexcl" * "\x00A1" ,"iff" * "\x21D4" ,"Ifr" * "\x2111" ,"ifr" * "\xD835\xDD26" ,"Igrave" * "\x00CC" ,"igrave" * "\x00EC" ,"ii" * "\x2148" ,"iiiint" * "\x2A0C" ,"iiint" * "\x222D" ,"iinfin" * "\x29DC" ,"iiota" * "\x2129" ,"IJlig" * "\x0132" ,"ijlig" * "\x0133" ,"Im" * "\x2111" ,"Imacr" * "\x012A" ,"imacr" * "\x012B" ,"image" * "\x2111" ,"ImaginaryI" * "\x2148" ,"imagline" * "\x2110" ,"imagpart" * "\x2111" ,"imath" * "\x0131" ,"imof" * "\x22B7" ,"imped" * "\x01B5" ,"Implies" * "\x21D2" ,"in" * "\x2208" ,"incare" * "\x2105" ,"infin" * "\x221E" ,"infintie" * "\x29DD" ,"inodot" * "\x0131" ,"int" * "\x222B" ,"Int" * "\x222C" ,"intcal" * "\x22BA" ,"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" ,"Iscr" * "\x2110" ,"iscr" * "\xD835\xDCBE" ,"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" * "\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" ,"larr" * "\x2190" ,"Larr" * "\x219E" ,"lArr" * "\x21D0" ,"larrb" * "\x21E4" ,"larrbfs" * "\x291F" ,"larrfs" * "\x291D" ,"larrhk" * "\x21A9" ,"larrlp" * "\x21AB" ,"larrpl" * "\x2939" ,"larrsim" * "\x2973" ,"larrtl" * "\x21A2" ,"lat" * "\x2AAB" ,"latail" * "\x2919" ,"lAtail" * "\x291B" ,"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" ,"LeftArrow" * "\x2190" ,"leftarrow" * "\x2190" ,"Leftarrow" * "\x21D0" ,"LeftArrowBar" * "\x21E4" ,"LeftArrowRightArrow" * "\x21C6" ,"leftarrowtail" * "\x21A2" ,"LeftCeiling" * "\x2308" ,"LeftDoubleBracket" * "\x27E6" ,"LeftDownTeeVector" * "\x2961" ,"LeftDownVector" * "\x21C3" ,"LeftDownVectorBar" * "\x2959" ,"LeftFloor" * "\x230A" ,"leftharpoondown" * "\x21BD" ,"leftharpoonup" * "\x21BC" ,"leftleftarrows" * "\x21C7" ,"LeftRightArrow" * "\x2194" ,"leftrightarrow" * "\x2194" ,"Leftrightarrow" * "\x21D4" ,"leftrightarrows" * "\x21C6" ,"leftrightharpoons" * "\x21CB" ,"leftrightsquigarrow" * "\x21AD" ,"LeftRightVector" * "\x294E" ,"LeftTee" * "\x22A3" ,"LeftTeeArrow" * "\x21A4" ,"LeftTeeVector" * "\x295A" ,"leftthreetimes" * "\x22CB" ,"LeftTriangle" * "\x22B2" ,"LeftTriangleBar" * "\x29CF" ,"LeftTriangleEqual" * "\x22B4" ,"LeftUpDownVector" * "\x2951" ,"LeftUpTeeVector" * "\x2960" ,"LeftUpVector" * "\x21BF" ,"LeftUpVectorBar" * "\x2958" ,"LeftVector" * "\x21BC" ,"LeftVectorBar" * "\x2952" ,"leg" * "\x22DA" ,"lEg" * "\x2A8B" ,"leq" * "\x2264" ,"leqq" * "\x2266" ,"leqslant" * "\x2A7D" ,"les" * "\x2A7D" ,"lescc" * "\x2AA8" ,"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" ,"ll" * "\x226A" ,"Ll" * "\x22D8" ,"llarr" * "\x21C7" ,"llcorner" * "\x231E" ,"Lleftarrow" * "\x21DA" ,"llhard" * "\x296B" ,"lltri" * "\x25FA" ,"Lmidot" * "\x013F" ,"lmidot" * "\x0140" ,"lmoust" * "\x23B0" ,"lmoustache" * "\x23B0" ,"lnap" * "\x2A89" ,"lnapprox" * "\x2A89" ,"lnE" * "\x2268" ,"lne" * "\x2A87" ,"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" * "\x2112" ,"lscr" * "\xD835\xDCC1" ,"Lsh" * "\x21B0" ,"lsh" * "\x21B0" ,"lsim" * "\x2272" ,"lsime" * "\x2A8D" ,"lsimg" * "\x2A8F" ,"lsqb" * "\x005B" ,"lsquo" * "\x2018" ,"lsquor" * "\x201A" ,"Lstrok" * "\x0141" ,"lstrok" * "\x0142" ,"LT" * "\x003C" ,"lt" * "\x003C" ,"Lt" * "\x226A" ,"ltcc" * "\x2AA6" ,"ltcir" * "\x2A79" ,"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" ,"male" * "\x2642" ,"malt" * "\x2720" ,"maltese" * "\x2720" ,"map" * "\x21A6" ,"Map" * "\x2905" ,"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" ,"mid" * "\x2223" ,"midast" * "\x002A" ,"midcir" * "\x2AF0" ,"middot" * "\x00B7" ,"minus" * "\x2212" ,"minusb" * "\x229F" ,"minusd" * "\x2238" ,"minusdu" * "\x2A2A" ,"MinusPlus" * "\x2213" ,"mlcp" * "\x2ADB" ,"mldr" * "\x2026" ,"mnplus" * "\x2213" ,"models" * "\x22A7" ,"Mopf" * "\xD835\xDD44" ,"mopf" * "\xD835\xDD5E" ,"mp" * "\x2213" ,"Mscr" * "\x2133" ,"mscr" * "\xD835\xDCC2" ,"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" ,"natur" * "\x266E" ,"natural" * "\x266E" ,"naturals" * "\x2115" ,"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" ,"ne" * "\x2260" ,"nearhk" * "\x2924" ,"nearr" * "\x2197" ,"neArr" * "\x21D7" ,"nearrow" * "\x2197" ,"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" * "\x2115" ,"nopf" * "\xD835\xDD5F" ,"not" * "\x00AC" ,"Not" * "\x2AEC" ,"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" ,"NotLeftTriangle" * "\x22EA" ,"NotLeftTriangleBar" * "\x29CF\x0338" ,"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" ,"NotRightTriangle" * "\x22EB" ,"NotRightTriangleBar" * "\x29D0\x0338" ,"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" ,"npar" * "\x2226" ,"nparallel" * "\x2226" ,"nparsl" * "\x2AFD\x20E5" ,"npart" * "\x2202\x0338" ,"npolint" * "\x2A14" ,"npr" * "\x2280" ,"nprcue" * "\x22E0" ,"npre" * "\x2AAF\x0338" ,"nprec" * "\x2280" ,"npreceq" * "\x2AAF\x0338" ,"nrarr" * "\x219B" ,"nrArr" * "\x21CF" ,"nrarrc" * "\x2933\x0338" ,"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" * "\x2288" ,"nsubE" * "\x2AC5\x0338" ,"nsubset" * "\x2282\x20D2" ,"nsubseteq" * "\x2288" ,"nsubseteqq" * "\x2AC5\x0338" ,"nsucc" * "\x2281" ,"nsucceq" * "\x2AB0\x0338" ,"nsup" * "\x2285" ,"nsupe" * "\x2289" ,"nsupE" * "\x2AC6\x0338" ,"nsupset" * "\x2283\x20D2" ,"nsupseteq" * "\x2289" ,"nsupseteqq" * "\x2AC6\x0338" ,"ntgl" * "\x2279" ,"Ntilde" * "\x00D1" ,"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" * "\x00F3" ,"oast" * "\x229B" ,"ocir" * "\x229A" ,"Ocirc" * "\x00D4" ,"ocirc" * "\x00F4" ,"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" * "\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" ,"or" * "\x2228" ,"Or" * "\x2A54" ,"orarr" * "\x21BB" ,"ord" * "\x2A5D" ,"order" * "\x2134" ,"orderof" * "\x2134" ,"ordf" * "\x00AA" ,"ordm" * "\x00BA" ,"origof" * "\x22B6" ,"oror" * "\x2A56" ,"orslope" * "\x2A57" ,"orv" * "\x2A5B" ,"oS" * "\x24C8" ,"oscr" * "\x2134" ,"Oscr" * "\xD835\xDCAA" ,"Oslash" * "\x00D8" ,"oslash" * "\x00F8" ,"osol" * "\x2298" ,"Otilde" * "\x00D5" ,"otilde" * "\x00F5" ,"otimes" * "\x2297" ,"Otimes" * "\x2A37" ,"otimesas" * "\x2A36" ,"Ouml" * "\x00D6" ,"ouml" * "\x00F6" ,"ovbar" * "\x233D" ,"OverBar" * "\x203E" ,"OverBrace" * "\x23DE" ,"OverBracket" * "\x23B4" ,"OverParenthesis" * "\x23DC" ,"par" * "\x2225" ,"para" * "\x00B6" ,"parallel" * "\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" ,"plus" * "\x002B" ,"plusacir" * "\x2A23" ,"plusb" * "\x229E" ,"pluscir" * "\x2A22" ,"plusdo" * "\x2214" ,"plusdu" * "\x2A25" ,"pluse" * "\x2A72" ,"PlusMinus" * "\x00B1" ,"plusmn" * "\x00B1" ,"plussim" * "\x2A26" ,"plustwo" * "\x2A27" ,"pm" * "\x00B1" ,"Poincareplane" * "\x210C" ,"pointint" * "\x2A15" ,"Popf" * "\x2119" ,"popf" * "\xD835\xDD61" ,"pound" * "\x00A3" ,"pr" * "\x227A" ,"Pr" * "\x2ABB" ,"prap" * "\x2AB7" ,"prcue" * "\x227C" ,"pre" * "\x2AAF" ,"prE" * "\x2AB3" ,"prec" * "\x227A" ,"precapprox" * "\x2AB7" ,"preccurlyeq" * "\x227C" ,"Precedes" * "\x227A" ,"PrecedesEqual" * "\x2AAF" ,"PrecedesSlantEqual" * "\x227C" ,"PrecedesTilde" * "\x227E" ,"preceq" * "\x2AAF" ,"precnapprox" * "\x2AB9" ,"precneqq" * "\x2AB5" ,"precnsim" * "\x22E8" ,"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" ,"Proportion" * "\x2237" ,"Proportional" * "\x221D" ,"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" * "\x211A" ,"qopf" * "\xD835\xDD62" ,"qprime" * "\x2057" ,"Qscr" * "\xD835\xDCAC" ,"qscr" * "\xD835\xDCC6" ,"quaternions" * "\x210D" ,"quatint" * "\x2A16" ,"quest" * "\x003F" ,"questeq" * "\x225F" ,"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" ,"rarr" * "\x2192" ,"Rarr" * "\x21A0" ,"rArr" * "\x21D2" ,"rarrap" * "\x2975" ,"rarrb" * "\x21E5" ,"rarrbfs" * "\x2920" ,"rarrc" * "\x2933" ,"rarrfs" * "\x291E" ,"rarrhk" * "\x21AA" ,"rarrlp" * "\x21AC" ,"rarrpl" * "\x2945" ,"rarrsim" * "\x2974" ,"rarrtl" * "\x21A3" ,"Rarrtl" * "\x2916" ,"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" ,"Re" * "\x211C" ,"real" * "\x211C" ,"realine" * "\x211B" ,"realpart" * "\x211C" ,"reals" * "\x211D" ,"rect" * "\x25AD" ,"REG" * "\x00AE" ,"reg" * "\x00AE" ,"ReverseElement" * "\x220B" ,"ReverseEquilibrium" * "\x21CB" ,"ReverseUpEquilibrium" * "\x296F" ,"rfisht" * "\x297D" ,"rfloor" * "\x230B" ,"Rfr" * "\x211C" ,"rfr" * "\xD835\xDD2F" ,"rHar" * "\x2964" ,"rhard" * "\x21C1" ,"rharu" * "\x21C0" ,"rharul" * "\x296C" ,"Rho" * "\x03A1" ,"rho" * "\x03C1" ,"rhov" * "\x03F1" ,"RightAngleBracket" * "\x27E9" ,"RightArrow" * "\x2192" ,"rightarrow" * "\x2192" ,"Rightarrow" * "\x21D2" ,"RightArrowBar" * "\x21E5" ,"RightArrowLeftArrow" * "\x21C4" ,"rightarrowtail" * "\x21A3" ,"RightCeiling" * "\x2309" ,"RightDoubleBracket" * "\x27E7" ,"RightDownTeeVector" * "\x295D" ,"RightDownVector" * "\x21C2" ,"RightDownVectorBar" * "\x2955" ,"RightFloor" * "\x230B" ,"rightharpoondown" * "\x21C1" ,"rightharpoonup" * "\x21C0" ,"rightleftarrows" * "\x21C4" ,"rightleftharpoons" * "\x21CC" ,"rightrightarrows" * "\x21C9" ,"rightsquigarrow" * "\x219D" ,"RightTee" * "\x22A2" ,"RightTeeArrow" * "\x21A6" ,"RightTeeVector" * "\x295B" ,"rightthreetimes" * "\x22CC" ,"RightTriangle" * "\x22B3" ,"RightTriangleBar" * "\x29D0" ,"RightTriangleEqual" * "\x22B5" ,"RightUpDownVector" * "\x294F" ,"RightUpTeeVector" * "\x295C" ,"RightUpVector" * "\x21BE" ,"RightUpVectorBar" * "\x2954" ,"RightVector" * "\x21C0" ,"RightVectorBar" * "\x2953" ,"ring" * "\x02DA" ,"risingdotseq" * "\x2253" ,"rlarr" * "\x21C4" ,"rlhar" * "\x21CC" ,"rlm" * "\x200F" ,"rmoust" * "\x23B1" ,"rmoustache" * "\x23B1" ,"rnmid" * "\x2AEE" ,"roang" * "\x27ED" ,"roarr" * "\x21FE" ,"robrk" * "\x27E7" ,"ropar" * "\x2986" ,"Ropf" * "\x211D" ,"ropf" * "\xD835\xDD63" ,"roplus" * "\x2A2E" ,"rotimes" * "\x2A35" ,"RoundImplies" * "\x2970" ,"rpar" * "\x0029" ,"rpargt" * "\x2994" ,"rppolint" * "\x2A12" ,"rrarr" * "\x21C9" ,"Rrightarrow" * "\x21DB" ,"rsaquo" * "\x203A" ,"Rscr" * "\x211B" ,"rscr" * "\xD835\xDCC7" ,"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" ,"sc" * "\x227B" ,"Sc" * "\x2ABC" ,"scap" * "\x2AB8" ,"Scaron" * "\x0160" ,"scaron" * "\x0161" ,"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" ,"sdot" * "\x22C5" ,"sdotb" * "\x22A1" ,"sdote" * "\x2A66" ,"searhk" * "\x2925" ,"searr" * "\x2198" ,"seArr" * "\x21D8" ,"searrow" * "\x2198" ,"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" ,"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" ,"sol" * "\x002F" ,"solb" * "\x29C4" ,"solbar" * "\x233F" ,"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" ,"squ" * "\x25A1" ,"Square" * "\x25A1" ,"square" * "\x25A1" ,"SquareIntersection" * "\x2293" ,"SquareSubset" * "\x228F" ,"SquareSubsetEqual" * "\x2291" ,"SquareSuperset" * "\x2290" ,"SquareSupersetEqual" * "\x2292" ,"SquareUnion" * "\x2294" ,"squarf" * "\x25AA" ,"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" * "\x2286" ,"subE" * "\x2AC5" ,"subedot" * "\x2AC3" ,"submult" * "\x2AC1" ,"subne" * "\x228A" ,"subnE" * "\x2ACB" ,"subplus" * "\x2ABF" ,"subrarr" * "\x2979" ,"subset" * "\x2282" ,"Subset" * "\x22D0" ,"subseteq" * "\x2286" ,"subseteqq" * "\x2AC5" ,"SubsetEqual" * "\x2286" ,"subsetneq" * "\x228A" ,"subsetneqq" * "\x2ACB" ,"subsim" * "\x2AC7" ,"subsub" * "\x2AD5" ,"subsup" * "\x2AD3" ,"succ" * "\x227B" ,"succapprox" * "\x2AB8" ,"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" ,"sup" * "\x2283" ,"Sup" * "\x22D1" ,"sup1" * "\x00B9" ,"sup2" * "\x00B2" ,"sup3" * "\x00B3" ,"supdot" * "\x2ABE" ,"supdsub" * "\x2AD8" ,"supe" * "\x2287" ,"supE" * "\x2AC6" ,"supedot" * "\x2AC4" ,"Superset" * "\x2283" ,"SupersetEqual" * "\x2287" ,"suphsol" * "\x27C9" ,"suphsub" * "\x2AD7" ,"suplarr" * "\x297B" ,"supmult" * "\x2AC2" ,"supne" * "\x228B" ,"supnE" * "\x2ACC" ,"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" ,"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" ,"thinsp" * "\x2009" ,"ThinSpace" * "\x2009" ,"thkap" * "\x2248" ,"thksim" * "\x223C" ,"THORN" * "\x00DE" ,"thorn" * "\x00FE" ,"tilde" * "\x02DC" ,"Tilde" * "\x223C" ,"TildeEqual" * "\x2243" ,"TildeFullEqual" * "\x2245" ,"TildeTilde" * "\x2248" ,"times" * "\x00D7" ,"timesb" * "\x22A0" ,"timesbar" * "\x2A31" ,"timesd" * "\x2A30" ,"tint" * "\x222D" ,"toea" * "\x2928" ,"top" * "\x22A4" ,"topbot" * "\x2336" ,"topcir" * "\x2AF1" ,"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" * "\x00FA" ,"uarr" * "\x2191" ,"Uarr" * "\x219F" ,"uArr" * "\x21D1" ,"Uarrocir" * "\x2949" ,"Ubrcy" * "\x040E" ,"ubrcy" * "\x045E" ,"Ubreve" * "\x016C" ,"ubreve" * "\x016D" ,"Ucirc" * "\x00DB" ,"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" * "\x00F9" ,"uHar" * "\x2963" ,"uharl" * "\x21BF" ,"uharr" * "\x21BE" ,"uhblk" * "\x2580" ,"ulcorn" * "\x231C" ,"ulcorner" * "\x231C" ,"ulcrop" * "\x230F" ,"ultri" * "\x25F8" ,"Umacr" * "\x016A" ,"umacr" * "\x016B" ,"uml" * "\x00A8" ,"UnderBar" * "\x005F" ,"UnderBrace" * "\x23DF" ,"UnderBracket" * "\x23B5" ,"UnderParenthesis" * "\x23DD" ,"Union" * "\x22C3" ,"UnionPlus" * "\x228E" ,"Uogon" * "\x0172" ,"uogon" * "\x0173" ,"Uopf" * "\xD835\xDD4C" ,"uopf" * "\xD835\xDD66" ,"UpArrow" * "\x2191" ,"uparrow" * "\x2191" ,"Uparrow" * "\x21D1" ,"UpArrowBar" * "\x2912" ,"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" ,"UpTee" * "\x22A5" ,"UpTeeArrow" * "\x21A5" ,"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" * "\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" ,"vee" * "\x2228" ,"Vee" * "\x22C1" ,"veebar" * "\x22BB" ,"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" * "\x228A\xFE00" ,"vsubnE" * "\x2ACB\xFE00" ,"vsupne" * "\x228B\xFE00" ,"vsupnE" * "\x2ACC\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" * "\x00FD" ,"YAcy" * "\x042F" ,"yacy" * "\x044F" ,"Ycirc" * "\x0176" ,"ycirc" * "\x0177" ,"Ycy" * "\x042B" ,"ycy" * "\x044B" ,"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" * "\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" * "\x2128" ,"zfr" * "\xD835\xDD37" ,"ZHcy" * "\x0416" ,"zhcy" * "\x0436" ,"zigrarr" * "\x21DD" ,"Zopf" * "\x2124" ,"zopf" * "\xD835\xDD6B" ,"Zscr" * "\xD835\xDCB5" ,"zscr" * "\xD835\xDCCF" ,"zwj" * "\x200D" ,"zwnj" * "\x200C" ]