{-# LANGUAGE OverloadedStrings #-}
module Text.Templating.Heist.Constants where

import           Data.ByteString.Char8 (ByteString)
import qualified Data.Map as Map
import           Data.Map (Map)

htmlEntityLookupTable :: Map ByteString ByteString
htmlEntityLookupTable = Map.fromList [
                         ("acute"      , "\xc2\xb4")
                       , ("cedil"      , "\xc2\xb8")
                       , ("circ"       , "\xcb\x86")
                       , ("macr"       , "\xc2\xaf")
                       , ("middot"     , "\xc2\xb7")
                       , ("tilde"      , "\xcb\x9c")
                       , ("uml"        , "\xc2\xa8")
                       , ("Aacute"     , "\xc3\x81")
                       , ("aacute"     , "\xc3\xa1")
                       , ("Acirc"      , "\xc3\x82")
                       , ("acirc"      , "\xc3\xa2")
                       , ("AElig"      , "\xc3\x86")
                       , ("aelig"      , "\xc3\xa6")
                       , ("Agrave"     , "\xc3\x80")
                       , ("agrave"     , "\xc3\xa0")
                       , ("Aring"      , "\xc3\x85")
                       , ("aring"      , "\xc3\xa5")
                       , ("Atilde"     , "\xc3\x83")
                       , ("atilde"     , "\xc3\xa3")
                       , ("Auml"       , "\xc3\x84")
                       , ("auml"       , "\xc3\xa4")
                       , ("Ccedil"     , "\xc3\x87")
                       , ("ccedil"     , "\xc3\xa7")
                       , ("Eacute"     , "\xc3\x89")
                       , ("eacute"     , "\xc3\xa9")
                       , ("Ecirc"      , "\xc3\x8a")
                       , ("ecirc"      , "\xc3\xaa")
                       , ("Egrave"     , "\xc3\x88")
                       , ("egrave"     , "\xc3\xa8")
                       , ("ETH"        , "\xc3\x90")
                       , ("eth"        , "\xc3\xb0")
                       , ("Euml"       , "\xc3\x8b")
                       , ("euml"       , "\xc3\xab")
                       , ("Iacute"     , "\xc3\x8d")
                       , ("iacute"     , "\xc3\xad")
                       , ("Icirc"      , "\xc3\x8e")
                       , ("icirc"      , "\xc3\xae")
                       , ("Igrave"     , "\xc3\x8c")
                       , ("igrave"     , "\xc3\xac")
                       , ("Iuml"       , "\xc3\x8f")
                       , ("iuml"       , "\xc3\xaf")
                       , ("Ntilde"     , "\xc3\x91")
                       , ("ntilde"     , "\xc3\xb1")
                       , ("Oacute"     , "\xc3\x93")
                       , ("oacute"     , "\xc3\xb3")
                       , ("Ocirc"      , "\xc3\x94")
                       , ("ocirc"      , "\xc3\xb4")
                       , ("OElig"      , "\xc5\x92")
                       , ("oelig"      , "\xc5\x93")
                       , ("Ograve"     , "\xc3\x92")
                       , ("ograve"     , "\xc3\xb2")
                       , ("Oslash"     , "\xc3\x98")
                       , ("oslash"     , "\xc3\xb8")
                       , ("Otilde"     , "\xc3\x95")
                       , ("otilde"     , "\xc3\xb5")
                       , ("Ouml"       , "\xc3\x96")
                       , ("ouml"       , "\xc3\xb6")
                       , ("Scaron"     , "\xc5\xa0")
                       , ("scaron"     , "\xc5\xa1")
                       , ("szlig"      , "\xc3\x9f")
                       , ("THORN"      , "\xc3\x9e")
                       , ("thorn"      , "\xc3\xbe")
                       , ("Uacute"     , "\xc3\x9a")
                       , ("uacute"     , "\xc3\xba")
                       , ("Ucirc"      , "\xc3\x9b")
                       , ("ucirc"      , "\xc3\xbb")
                       , ("Ugrave"     , "\xc3\x99")
                       , ("ugrave"     , "\xc3\xb9")
                       , ("Uuml"       , "\xc3\x9c")
                       , ("uuml"       , "\xc3\xbc")
                       , ("Yacute"     , "\xc3\x9d")
                       , ("yacute"     , "\xc3\xbd")
                       , ("yuml"       , "\xc3\xbf")
                       , ("Yuml"       , "\xc5\xb8")
                       , ("cent"       , "\xc2\xa2")
                       , ("curren"     , "\xc2\xa4")
                       , ("euro"       , "\xe2\x82\xac")
                       , ("pound"      , "\xc2\xa3")
                       , ("yen"        , "\xc2\xa5")
                       , ("brvbar"     , "\xc2\xa6")
                       , ("bull"       , "\xe2\x80\xa2")
                       , ("copy"       , "\xc2\xa9")
                       , ("dagger"     , "\xe2\x80\xa0")
                       , ("Dagger"     , "\xe2\x80\xa1")
                       , ("frasl"      , "\xe2\x81\x84")
                       , ("hellip"     , "\xe2\x80\xa6")
                       , ("iexcl"      , "\xc2\xa1")
                       , ("image"      , "\xe2\x84\x91")
                       , ("iquest"     , "\xc2\xbf")
                       , ("mdash"      , "\xe2\x80\x94")
                       , ("ndash"      , "\xe2\x80\x93")
                       , ("not"        , "\xc2\xac")
                       , ("oline"      , "\xe2\x80\xbe")
                       , ("ordf"       , "\xc2\xaa")
                       , ("ordm"       , "\xc2\xba")
                       , ("para"       , "\xc2\xb6")
                       , ("permil"     , "\xe2\x80\xb0")
                       , ("prime"      , "\xe2\x80\xb2")
                       , ("Prime"      , "\xe2\x80\xb3")
                       , ("real"       , "\xe2\x84\x9c")
                       , ("reg"        , "\xc2\xae")
                       , ("sect"       , "\xc2\xa7")
                       , ("shy"        , "\173")
                       , ("sup1"       , "\xc2\xb9")
                       , ("trade"      , "\xe2\x84\xa2")
                       , ("weierp"     , "\xe2\x84\x98")
                       , ("bdquo"      , "\xe2\x80\x9e")
                       , ("laquo"      , "\xc2\xab")
                       , ("ldquo"      , "\xe2\x80\x9c")
                       , ("lsaquo"     , "\xe2\x80\xb9")
                       , ("lsquo"      , "\xe2\x80\x98")
                       , ("raquo"      , "\xc2\xbb")
                       , ("rdquo"      , "\xe2\x80\x9d")
                       , ("rsaquo"     , "\xe2\x80\xba")
                       , ("rsquo"      , "\xe2\x80\x99")
                       , ("sbquo"      , "\xe2\x80\x9a")
                       , ("emsp"       , "\xe2\x80\x83")
                       , ("ensp"       , "\xe2\x80\x82")
                       , ("nbsp"       , "\x20")
                       , ("thinsp"     , "\xe2\x80\x89")
                       , ("zwj"        , "\xe2\x80\x8d")
                       , ("zwnj"       , "\xe2\x80\x8c")
                       , ("deg"        , "\xc2\xb0")
                       , ("divide"     , "\xc3\xb7")
                       , ("frac12"     , "\xc2\xbd")
                       , ("frac14"     , "\xc2\xbc")
                       , ("frac34"     , "\xc2\xbe")
                       , ("ge"         , "\xe2\x89\xa5")
                       , ("le"         , "\xe2\x89\xa4")
                       , ("minus"      , "\xe2\x88\x92")
                       , ("sup2"       , "\xc2\xb2")
                       , ("sup3"       , "\xc2\xb3")
                       , ("times"      , "\xc3\x97")
                       , ("alefsym"    , "\xe2\x84\xb5")
                       , ("and"        , "\xe2\x88\xa7")
                       , ("ang"        , "\xe2\x88\xa0")
                       , ("asymp"      , "\xe2\x89\x88")
                       , ("cap"        , "\xe2\x88\xa9")
                       , ("cong"       , "\xe2\x89\x85")
                       , ("cup"        , "\xe2\x88\xaa")
                       , ("empty"      , "\xe2\x88\x85")
                       , ("equiv"      , "\xe2\x89\xa1")
                       , ("exist"      , "\xe2\x88\x83")
                       , ("fnof"       , "\xc6\x92")
                       , ("forall"     , "\xe2\x88\x80")
                       , ("infin"      , "\xe2\x88\x9e")
                       , ("int"        , "\xe2\x88\xab")
                       , ("isin"       , "\xe2\x88\x88")
                       , ("lang"       , "\xe3\x80\x88")
                       , ("lceil"      , "\xe2\x8c\x88")
                       , ("lfloor"     , "\xe2\x8c\x8a")
                       , ("lowast"     , "\xe2\x88\x97")
                       , ("micro"      , "\xc2\xb5")
                       , ("nabla"      , "\xe2\x88\x87")
                       , ("ne"         , "\xe2\x89\xa0")
                       , ("ni"         , "\xe2\x88\x8b")
                       , ("notin"      , "\xe2\x88\x89")
                       , ("nsub"       , "\xe2\x8a\x84")
                       , ("oplus"      , "\xe2\x8a\x95")
                       , ("or"         , "\xe2\x88\xa8")
                       , ("otimes"     , "\xe2\x8a\x97")
                       , ("part"       , "\xe2\x88\x82")
                       , ("perp"       , "\xe2\x8a\xa5")
                       , ("plusmn"     , "\xc2\xb1")
                       , ("prod"       , "\xe2\x88\x8f")
                       , ("prop"       , "\xe2\x88\x9d")
                       , ("radic"      , "\xe2\x88\x9a")
                       , ("rang"       , "\xe3\x80\x89")
                       , ("rceil"      , "\xe2\x8c\x89")
                       , ("rfloor"     , "\xe2\x8c\x8b")
                       , ("sdot"       , "\xe2\x8b\x85")
                       , ("sim"        , "\xe2\x88\xbc")
                       , ("sub"        , "\xe2\x8a\x82")
                       , ("sube"       , "\xe2\x8a\x86")
                       , ("sum"        , "\xe2\x88\x91")
                       , ("sup"        , "\xe2\x8a\x83")
                       , ("supe"       , "\xe2\x8a\x87")
                       , ("there4"     , "\xe2\x88\xb4")
                       , ("Alpha"      , "\xce\x91")
                       , ("alpha"      , "\xce\xb1")
                       , ("Beta"       , "\xce\x92")
                       , ("beta"       , "\xce\xb2")
                       , ("Chi"        , "\xce\xa7")
                       , ("chi"        , "\xcf\x87")
                       , ("Delta"      , "\xce\x94")
                       , ("delta"      , "\xce\xb4")
                       , ("Epsilon"    , "\xce\x95")
                       , ("epsilon"    , "\xce\xb5")
                       , ("Eta"        , "\xce\x97")
                       , ("eta"        , "\xce\xb7")
                       , ("Gamma"      , "\xce\x93")
                       , ("gamma"      , "\xce\xb3")
                       , ("Iota"       , "\xce\x99")
                       , ("iota"       , "\xce\xb9")
                       , ("Kappa"      , "\xce\x9a")
                       , ("kappa"      , "\xce\xba")
                       , ("Lambda"     , "\xce\x9b")
                       , ("lambda"     , "\xce\xbb")
                       , ("Mu"         , "\xce\x9c")
                       , ("mu"         , "\xce\xbc")
                       , ("Nu"         , "\xce\x9d")
                       , ("nu"         , "\xce\xbd")
                       , ("Omega"      , "\xce\xa9")
                       , ("omega"      , "\xcf\x89")
                       , ("Omicron"    , "\xce\x9f")
                       , ("omicron"    , "\xce\xbf")
                       , ("Phi"        , "\xce\xa6")
                       , ("phi"        , "\xcf\x86")
                       , ("Pi"         , "\xce\xa0")
                       , ("pi"         , "\xcf\x80")
                       , ("piv"        , "\xcf\x96")
                       , ("Psi"        , "\xce\xa8")
                       , ("psi"        , "\xcf\x88")
                       , ("Rho"        , "\xce\xa1")
                       , ("rho"        , "\xcf\x81")
                       , ("Sigma"      , "\xce\xa3")
                       , ("sigma"      , "\xcf\x83")
                       , ("sigmaf"     , "\xcf\x82")
                       , ("Tau"        , "\xce\xa4")
                       , ("tau"        , "\xcf\x84")
                       , ("Theta"      , "\xce\x98")
                       , ("theta"      , "\xce\xb8")
                       , ("thetasym"   , "\xcf\x91")
                       , ("upsih"      , "\xcf\x92")
                       , ("Upsilon"    , "\xce\xa5")
                       , ("upsilon"    , "\xcf\x85")
                       , ("Xi"         , "\xce\x9e")
                       , ("xi"         , "\xce\xbe")
                       , ("Zeta"       , "\xce\x96")
                       , ("zeta"       , "\xce\xb6")
                       , ("crarr"      , "\xe2\x86\xb5")
                       , ("darr"       , "\xe2\x86\x93")
                       , ("dArr"       , "\xe2\x87\x93")
                       , ("harr"       , "\xe2\x86\x94")
                       , ("hArr"       , "\xe2\x87\x94")
                       , ("larr"       , "\xe2\x86\x90")
                       , ("lArr"       , "\xe2\x87\x90")
                       , ("rarr"       , "\xe2\x86\x92")
                       , ("rArr"       , "\xe2\x87\x92")
                       , ("uarr"       , "\xe2\x86\x91")
                       , ("uArr"       , "\xe2\x87\x91")
                       , ("clubs"      , "\xe2\x99\xa3")
                       , ("diams"      , "\xe2\x99\xa6")
                       , ("hearts"     , "\xe2\x99\xa5")
                       , ("spades"     , "\xe2\x99\xa0")
                       , ("loz"        , "\xe2\x97\x8a") ]