{- | Module : Data.GraphViz.Attributes.Colors Description : Helper functions for converting to Dot format. Copyright : (c) Ivan Lazar Miljenovic License : 3-Clause BSD-style Maintainer : Ivan.Miljenovic@gmail.com This module defines the various colors, etc. for Graphviz. For information on colors in general, see: For named colors, see: Note that the ColorBrewer Color Schemes (shortened to just \"Brewer\" for the rest of this module) are covered by the following license (also available in the LICENSE file of this library): When parsing and printing 'Color' values (more specifically, the Brewer color values), the actual 'ColorScheme' being used isn't taken into account. Also, the \"@\/foo\/bar@\" style of overriding the 'ColorScheme' being used isn't supported for parsing purposes (and will result in a parsing failure). -} module Data.GraphViz.Attributes.Colors ( -- * Color schemes. ColorScheme(..) , BrewerName(..) -- * Colors , Color(..) , X11Color(..) -- * Conversion to\/from @Colour@. , toColour , x11Colour , fromColour , fromAColour ) where import Data.GraphViz.Parsing import Data.GraphViz.Printing import Data.Colour( AlphaColour, opaque, transparent, withOpacity , over, black, alphaChannel, darken) import Data.Colour.SRGB(Colour, sRGB, sRGB24, toSRGB24) import Data.Colour.RGBSpace(uncurryRGB) import Data.Colour.RGBSpace.HSV(hsv) import Data.Char(isHexDigit) import Numeric(showHex, readHex) import Data.Word(Word8) import Control.Monad(liftM, liftM2) -- ----------------------------------------------------------------------------- -- | This represents the color schemes that Graphviz accepts. As -- mentioned above, these are /not/ used for actual parsing or -- printing. data ColorScheme = X11 | BrewerScheme BrewerName Word8 -- ^ The value of the -- scheme number -- depends on -- the name. deriving (Eq, Ord, Show, Read) instance PrintDot ColorScheme where unqtDot X11 = unqtDot "X11" unqtDot (BrewerScheme n l) = unqtDot n <> unqtDot l instance ParseDot ColorScheme where parseUnqt = stringRep X11 "X11" `onFail` liftM2 BrewerScheme parseUnqt parseUnqt -- | All of these have a minimum level value of @3@, with a maximum -- of @9@ unless otherwise specified. data BrewerName = Accent -- ^ Maximum of @8@. | Blues | Brbg -- ^ Maximum of @11@. | Bugn | Bupu | Dark2 -- ^ Maximum of @8@. | Gnbu | Greens | Greys | Oranges | Orrd | Paired -- ^ Maximum of @12@. | Pastel1 | Pastel2 -- ^ Maximum of @8@. | Piyg -- ^ Maximum of @11@. | Prgn -- ^ Maximum of @11@. | Pubu | Pubugn | Puor -- ^ Maximum of @11@; note that the last two are listed -- after the @'Purd'@ values in the -- documentation. | Purd | Purples | Rdbu -- ^ Maximum of @11@; note that the last two are listed -- first. | Rdgy -- ^ Maximum of @11@; note that the last two are listed -- after the @'Rdpu'@ values in the -- documentation. | Rdpu | Rdylbu -- ^ Maximum of @11@. | Rdylgn -- ^ Maximum of @11@. | Reds | Set1 | Set2 -- ^ Maximum of @8@. | Set3 -- ^ Maximum of @12@. | Spectral -- ^ Maximum of @11@. | Ylgn | Ylgnbu | Ylorbr | Ylorrd deriving (Eq, Ord, Bounded, Enum, Show, Read) instance PrintDot BrewerName where unqtDot Accent = unqtDot "accent" unqtDot Blues = unqtDot "blues" unqtDot Brbg = unqtDot "brbg" unqtDot Bugn = unqtDot "bugn" unqtDot Bupu = unqtDot "bupu" unqtDot Dark2 = unqtDot "dark2" unqtDot Gnbu = unqtDot "gnbu" unqtDot Greens = unqtDot "greens" unqtDot Greys = unqtDot "greys" unqtDot Oranges = unqtDot "oranges" unqtDot Orrd = unqtDot "orrd" unqtDot Paired = unqtDot "paired" unqtDot Pastel1 = unqtDot "pastel1" unqtDot Pastel2 = unqtDot "pastel2" unqtDot Piyg = unqtDot "piyg" unqtDot Prgn = unqtDot "prgn" unqtDot Pubu = unqtDot "pubu" unqtDot Pubugn = unqtDot "pubugn" unqtDot Puor = unqtDot "puor" unqtDot Purd = unqtDot "purd" unqtDot Purples = unqtDot "purples" unqtDot Rdbu = unqtDot "rdbu" unqtDot Rdgy = unqtDot "rdgy" unqtDot Rdpu = unqtDot "rdpu" unqtDot Rdylbu = unqtDot "rdylbu" unqtDot Rdylgn = unqtDot "rdylgn" unqtDot Reds = unqtDot "reds" unqtDot Set1 = unqtDot "set1" unqtDot Set2 = unqtDot "set2" unqtDot Set3 = unqtDot "set3" unqtDot Spectral = unqtDot "spectral" unqtDot Ylgn = unqtDot "ylgn" unqtDot Ylgnbu = unqtDot "ylgnbu" unqtDot Ylorbr = unqtDot "ylorbr" unqtDot Ylorrd = unqtDot "ylorrd" instance ParseDot BrewerName where -- The order is different from above to make sure longer names are -- parsed first. parseUnqt = oneOf [ stringRep Accent "accent" , stringRep Blues "blues" , stringRep Brbg "brbg" , stringRep Bugn "bugn" , stringRep Bupu "bupu" , stringRep Dark2 "dark2" , stringRep Gnbu "gnbu" , stringRep Greens "greens" , stringRep Greys "greys" , stringRep Oranges "oranges" , stringRep Orrd "orrd" , stringRep Paired "paired" , stringRep Pastel1 "pastel1" , stringRep Pastel2 "pastel2" , stringRep Piyg "piyg" , stringRep Prgn "prgn" , stringRep Pubugn "pubugn" , stringRep Pubu "pubu" , stringRep Puor "puor" , stringRep Purd "purd" , stringRep Purples "purples" , stringRep Rdbu "rdbu" , stringRep Rdgy "rdgy" , stringRep Rdpu "rdpu" , stringRep Rdylbu "rdylbu" , stringRep Rdylgn "rdylgn" , stringRep Reds "reds" , stringRep Set1 "set1" , stringRep Set2 "set2" , stringRep Set3 "set3" , stringRep Spectral "spectral" , stringRep Ylgnbu "ylgnbu" , stringRep Ylgn "ylgn" , stringRep Ylorbr "ylorbr" , stringRep Ylorrd "ylorrd" ] -- ----------------------------------------------------------------------------- -- | Defining a color for use with Graphviz. Note that named colors -- have been split up into 'X11Color's and those based upon the -- Brewer color schemes. data Color = RGB { red :: Word8 , green :: Word8 , blue :: Word8 } | RGBA { red :: Word8 , green :: Word8 , blue :: Word8 , alpha :: Word8 } -- | The 'hue', 'saturation' and 'value' values must all -- be @0 <= x <=1@. | HSV { hue :: Double , saturation :: Double , value :: Double } | X11Color X11Color | BrewerColor Word8 -- ^ This value should be between @1@ -- and the level of the 'BrewerName' -- being used. deriving (Eq, Ord, Show, Read) instance PrintDot Color where unqtDot (RGB r g b) = hexColor [r,g,b] unqtDot (RGBA r g b a) = hexColor [r,g,b,a] unqtDot (HSV h s v) = hcat . punctuate comma $ map unqtDot [h,s,v] unqtDot (X11Color name) = unqtDot name unqtDot (BrewerColor n) = unqtDot n toDot (X11Color name) = toDot name toDot (BrewerColor n) = toDot n toDot c = doubleQuotes $ unqtDot c unqtListToDot = hcat . punctuate colon . map unqtDot -- These two don't need to be quoted if they're on their own. listToDot [X11Color name] = toDot name listToDot [BrewerColor n] = toDot n listToDot cs = doubleQuotes $ unqtListToDot cs hexColor :: [Word8] -> DotCode hexColor = (<>) (char '#') . hcat . map word8Doc word8Doc :: Word8 -> DotCode word8Doc w = text $ padding ++ simple where simple = showHex w "" padding = replicate count '0' count = 2 - findCols 1 w findCols :: Int -> Word8 -> Int findCols c n | n < 16 = c | otherwise = findCols (c+1) (n `div` 16) instance ParseDot Color where parseUnqt = oneOf [ parseHexBased , parseHSV , liftM X11Color parseUnqt , liftM BrewerColor parseUnqt ] where parseHexBased = do character '#' cs <- many1 parse2Hex return $ case cs of [r,g,b] -> RGB r g b [r,g,b,a] -> RGBA r g b a _ -> error $ "Not a valid hex Color specification: " ++ show cs parseHSV = do h <- parse parseSep s <- parse parseSep v <- parse return $ HSV h s v parseSep = oneOf [ string "," , whitespace ] parse2Hex = do c1 <- satisfy isHexDigit c2 <- satisfy isHexDigit let [(n, [])] = readHex [c1, c2] return n parse = quotedParse parseUnqt `onFail` -- These two can be unquoted oneOf [ liftM X11Color parseUnqt , liftM BrewerColor parseUnqt ] parseUnqtList = sepBy1 parseUnqt (character ':') parseList = liftM return -- Unquoted single color (oneOf [ liftM X11Color parseUnqt , liftM BrewerColor parseUnqt ] ) `onFail` quotedParse parseUnqtList -- ----------------------------------------------------------------------------- -- | The X11 colors that Graphviz uses. Note that these are slightly -- different from the \"normal\" X11 colors used (e.g. the inclusion -- of @Crimson@). Graphviz's list of colors also duplicated almost -- all @Gray@ colors with @Grey@ ones; parsing of an 'X11Color' -- which is specified using \"grey\" will succeed, even for those -- that don't have the duplicate spelling (e.g. @DarkSlateGray1@). data X11Color = AliceBlue | AntiqueWhite | AntiqueWhite1 | AntiqueWhite2 | AntiqueWhite3 | AntiqueWhite4 | Aquamarine | Aquamarine1 | Aquamarine2 | Aquamarine3 | Aquamarine4 | Azure | Azure1 | Azure2 | Azure3 | Azure4 | Beige | Bisque | Bisque1 | Bisque2 | Bisque3 | Bisque4 | Black | BlanchedAlmond | Blue | Blue1 | Blue2 | Blue3 | Blue4 | BlueViolet | Brown | Brown1 | Brown2 | Brown3 | Brown4 | Burlywood | Burlywood1 | Burlywood2 | Burlywood3 | Burlywood4 | CadetBlue | CadetBlue1 | CadetBlue2 | CadetBlue3 | CadetBlue4 | Chartreuse | Chartreuse1 | Chartreuse2 | Chartreuse3 | Chartreuse4 | Chocolate | Chocolate1 | Chocolate2 | Chocolate3 | Chocolate4 | Coral | Coral1 | Coral2 | Coral3 | Coral4 | CornFlowerBlue | CornSilk | CornSilk1 | CornSilk2 | CornSilk3 | CornSilk4 | Crimson | Cyan | Cyan1 | Cyan2 | Cyan3 | Cyan4 | DarkGoldenrod | DarkGoldenrod1 | DarkGoldenrod2 | DarkGoldenrod3 | DarkGoldenrod4 | DarkGreen | Darkkhaki | DarkOliveGreen | DarkOliveGreen1 | DarkOliveGreen2 | DarkOliveGreen3 | DarkOliveGreen4 | DarkOrange | DarkOrange1 | DarkOrange2 | DarkOrange3 | DarkOrange4 | DarkOrchid | DarkOrchid1 | DarkOrchid2 | DarkOrchid3 | DarkOrchid4 | DarkSalmon | DarkSeaGreen | DarkSeaGreen1 | DarkSeaGreen2 | DarkSeaGreen3 | DarkSeaGreen4 | DarkSlateBlue | DarkSlateGray | DarkSlateGray1 | DarkSlateGray2 | DarkSlateGray3 | DarkSlateGray4 | DarkTurquoise | DarkViolet | DeepPink | DeepPink1 | DeepPink2 | DeepPink3 | DeepPink4 | DeepSkyBlue | DeepSkyBlue1 | DeepSkyBlue2 | DeepSkyBlue3 | DeepSkyBlue4 | DimGray | DodgerBlue | DodgerBlue1 | DodgerBlue2 | DodgerBlue3 | DodgerBlue4 | Firebrick | Firebrick1 | Firebrick2 | Firebrick3 | Firebrick4 | FloralWhite | ForestGreen | Gainsboro | GhostWhite | Gold | Gold1 | Gold2 | Gold3 | Gold4 | Goldenrod | Goldenrod1 | Goldenrod2 | Goldenrod3 | Goldenrod4 | Gray | Gray0 | Gray1 | Gray2 | Gray3 | Gray4 | Gray5 | Gray6 | Gray7 | Gray8 | Gray9 | Gray10 | Gray11 | Gray12 | Gray13 | Gray14 | Gray15 | Gray16 | Gray17 | Gray18 | Gray19 | Gray20 | Gray21 | Gray22 | Gray23 | Gray24 | Gray25 | Gray26 | Gray27 | Gray28 | Gray29 | Gray30 | Gray31 | Gray32 | Gray33 | Gray34 | Gray35 | Gray36 | Gray37 | Gray38 | Gray39 | Gray40 | Gray41 | Gray42 | Gray43 | Gray44 | Gray45 | Gray46 | Gray47 | Gray48 | Gray49 | Gray50 | Gray51 | Gray52 | Gray53 | Gray54 | Gray55 | Gray56 | Gray57 | Gray58 | Gray59 | Gray60 | Gray61 | Gray62 | Gray63 | Gray64 | Gray65 | Gray66 | Gray67 | Gray68 | Gray69 | Gray70 | Gray71 | Gray72 | Gray73 | Gray74 | Gray75 | Gray76 | Gray77 | Gray78 | Gray79 | Gray80 | Gray81 | Gray82 | Gray83 | Gray84 | Gray85 | Gray86 | Gray87 | Gray88 | Gray89 | Gray90 | Gray91 | Gray92 | Gray93 | Gray94 | Gray95 | Gray96 | Gray97 | Gray98 | Gray99 | Gray100 | Green | Green1 | Green2 | Green3 | Green4 | GreenYellow | HoneyDew | HoneyDew1 | HoneyDew2 | HoneyDew3 | HoneyDew4 | HotPink | HotPink1 | HotPink2 | HotPink3 | HotPink4 | IndianRed | IndianRed1 | IndianRed2 | IndianRed3 | IndianRed4 | Indigo | Ivory | Ivory1 | Ivory2 | Ivory3 | Ivory4 | Khaki | Khaki1 | Khaki2 | Khaki3 | Khaki4 | Lavender | LavenderBlush | LavenderBlush1 | LavenderBlush2 | LavenderBlush3 | LavenderBlush4 | LawnGreen | LemonChiffon | LemonChiffon1 | LemonChiffon2 | LemonChiffon3 | LemonChiffon4 | LightBlue | LightBlue1 | LightBlue2 | LightBlue3 | LightBlue4 | LightCoral | LightCyan | LightCyan1 | LightCyan2 | LightCyan3 | LightCyan4 | LightGoldenrod | LightGoldenrod1 | LightGoldenrod2 | LightGoldenrod3 | LightGoldenrod4 | LightGoldenrodYellow | LightGray | LightPink | LightPink1 | LightPink2 | LightPink3 | LightPink4 | LightSalmon | LightSalmon1 | LightSalmon2 | LightSalmon3 | LightSalmon4 | LightSeaGreen | LightSkyBlue | LightSkyBlue1 | LightSkyBlue2 | LightSkyBlue3 | LightSkyBlue4 | LightSlateBlue | LightSlateGray | LightSteelBlue | LightSteelBlue1 | LightSteelBlue2 | LightSteelBlue3 | LightSteelBlue4 | LightYellow | LightYellow1 | LightYellow2 | LightYellow3 | LightYellow4 | LimeGreen | Linen | Magenta | Magenta1 | Magenta2 | Magenta3 | Magenta4 | Maroon | Maroon1 | Maroon2 | Maroon3 | Maroon4 | MediumAquamarine | MediumBlue | MediumOrchid | MediumOrchid1 | MediumOrchid2 | MediumOrchid3 | MediumOrchid4 | MediumPurple | MediumPurple1 | MediumPurple2 | MediumPurple3 | MediumPurple4 | MediumSeaGreen | MediumSlateBlue | MediumSpringGreen | MediumTurquoise | MediumVioletRed | MidnightBlue | MintCream | MistyRose | MistyRose1 | MistyRose2 | MistyRose3 | MistyRose4 | Moccasin | NavajoWhite | NavajoWhite1 | NavajoWhite2 | NavajoWhite3 | NavajoWhite4 | Navy | NavyBlue | OldLace | OliveDrab | OliveDrab1 | OliveDrab2 | OliveDrab3 | OliveDrab4 | Orange | Orange1 | Orange2 | Orange3 | Orange4 | OrangeRed | OrangeRed1 | OrangeRed2 | OrangeRed3 | OrangeRed4 | Orchid | Orchid1 | Orchid2 | Orchid3 | Orchid4 | PaleGoldenrod | PaleGreen | PaleGreen1 | PaleGreen2 | PaleGreen3 | PaleGreen4 | PaleTurquoise | PaleTurquoise1 | PaleTurquoise2 | PaleTurquoise3 | PaleTurquoise4 | PaleVioletRed | PaleVioletRed1 | PaleVioletRed2 | PaleVioletRed3 | PaleVioletRed4 | PapayaWhip | PeachPuff | PeachPuff1 | PeachPuff2 | PeachPuff3 | PeachPuff4 | Peru | Pink | Pink1 | Pink2 | Pink3 | Pink4 | Plum | Plum1 | Plum2 | Plum3 | Plum4 | PowderBlue | Purple | Purple1 | Purple2 | Purple3 | Purple4 | Red | Red1 | Red2 | Red3 | Red4 | RosyBrown | RosyBrown1 | RosyBrown2 | RosyBrown3 | RosyBrown4 | RoyalBlue | RoyalBlue1 | RoyalBlue2 | RoyalBlue3 | RoyalBlue4 | SaddleBrown | Salmon | Salmon1 | Salmon2 | Salmon3 | Salmon4 | SandyBrown | SeaGreen | SeaGreen1 | SeaGreen2 | SeaGreen3 | SeaGreen4 | SeaShell | SeaShell1 | SeaShell2 | SeaShell3 | SeaShell4 | Sienna | Sienna1 | Sienna2 | Sienna3 | Sienna4 | SkyBlue | SkyBlue1 | SkyBlue2 | SkyBlue3 | SkyBlue4 | SlateBlue | SlateBlue1 | SlateBlue2 | SlateBlue3 | SlateBlue4 | SlateGray | SlateGray1 | SlateGray2 | SlateGray3 | SlateGray4 | Snow | Snow1 | Snow2 | Snow3 | Snow4 | SpringGreen | SpringGreen1 | SpringGreen2 | SpringGreen3 | SpringGreen4 | SteelBlue | SteelBlue1 | SteelBlue2 | SteelBlue3 | SteelBlue4 | Tan | Tan1 | Tan2 | Tan3 | Tan4 | Thistle | Thistle1 | Thistle2 | Thistle3 | Thistle4 | Tomato | Tomato1 | Tomato2 | Tomato3 | Tomato4 | Transparent -- ^ Equivalent to setting @Style [SItem Invisible []]@. | Turquoise | Turquoise1 | Turquoise2 | Turquoise3 | Turquoise4 | Violet | VioletRed | VioletRed1 | VioletRed2 | VioletRed3 | VioletRed4 | Wheat | Wheat1 | Wheat2 | Wheat3 | Wheat4 | White | WhiteSmoke | Yellow | Yellow1 | Yellow2 | Yellow3 | Yellow4 | YellowGreen deriving (Eq, Ord, Bounded, Enum, Show, Read) instance PrintDot X11Color where unqtDot AliceBlue = unqtDot "aliceblue" unqtDot AntiqueWhite = unqtDot "antiquewhite" unqtDot AntiqueWhite1 = unqtDot "antiquewhite1" unqtDot AntiqueWhite2 = unqtDot "antiquewhite2" unqtDot AntiqueWhite3 = unqtDot "antiquewhite3" unqtDot AntiqueWhite4 = unqtDot "antiquewhite4" unqtDot Aquamarine = unqtDot "aquamarine" unqtDot Aquamarine1 = unqtDot "aquamarine1" unqtDot Aquamarine2 = unqtDot "aquamarine2" unqtDot Aquamarine3 = unqtDot "aquamarine3" unqtDot Aquamarine4 = unqtDot "aquamarine4" unqtDot Azure = unqtDot "azure" unqtDot Azure1 = unqtDot "azure1" unqtDot Azure2 = unqtDot "azure2" unqtDot Azure3 = unqtDot "azure3" unqtDot Azure4 = unqtDot "azure4" unqtDot Beige = unqtDot "beige" unqtDot Bisque = unqtDot "bisque" unqtDot Bisque1 = unqtDot "bisque1" unqtDot Bisque2 = unqtDot "bisque2" unqtDot Bisque3 = unqtDot "bisque3" unqtDot Bisque4 = unqtDot "bisque4" unqtDot Black = unqtDot "black" unqtDot BlanchedAlmond = unqtDot "blanchedalmond" unqtDot Blue = unqtDot "blue" unqtDot Blue1 = unqtDot "blue1" unqtDot Blue2 = unqtDot "blue2" unqtDot Blue3 = unqtDot "blue3" unqtDot Blue4 = unqtDot "blue4" unqtDot BlueViolet = unqtDot "blueviolet" unqtDot Brown = unqtDot "brown" unqtDot Brown1 = unqtDot "brown1" unqtDot Brown2 = unqtDot "brown2" unqtDot Brown3 = unqtDot "brown3" unqtDot Brown4 = unqtDot "brown4" unqtDot Burlywood = unqtDot "burlywood" unqtDot Burlywood1 = unqtDot "burlywood1" unqtDot Burlywood2 = unqtDot "burlywood2" unqtDot Burlywood3 = unqtDot "burlywood3" unqtDot Burlywood4 = unqtDot "burlywood4" unqtDot CadetBlue = unqtDot "cadetblue" unqtDot CadetBlue1 = unqtDot "cadetblue1" unqtDot CadetBlue2 = unqtDot "cadetblue2" unqtDot CadetBlue3 = unqtDot "cadetblue3" unqtDot CadetBlue4 = unqtDot "cadetblue4" unqtDot Chartreuse = unqtDot "chartreuse" unqtDot Chartreuse1 = unqtDot "chartreuse1" unqtDot Chartreuse2 = unqtDot "chartreuse2" unqtDot Chartreuse3 = unqtDot "chartreuse3" unqtDot Chartreuse4 = unqtDot "chartreuse4" unqtDot Chocolate = unqtDot "chocolate" unqtDot Chocolate1 = unqtDot "chocolate1" unqtDot Chocolate2 = unqtDot "chocolate2" unqtDot Chocolate3 = unqtDot "chocolate3" unqtDot Chocolate4 = unqtDot "chocolate4" unqtDot Coral = unqtDot "coral" unqtDot Coral1 = unqtDot "coral1" unqtDot Coral2 = unqtDot "coral2" unqtDot Coral3 = unqtDot "coral3" unqtDot Coral4 = unqtDot "coral4" unqtDot CornFlowerBlue = unqtDot "cornflowerblue" unqtDot CornSilk = unqtDot "cornsilk" unqtDot CornSilk1 = unqtDot "cornsilk1" unqtDot CornSilk2 = unqtDot "cornsilk2" unqtDot CornSilk3 = unqtDot "cornsilk3" unqtDot CornSilk4 = unqtDot "cornsilk4" unqtDot Crimson = unqtDot "crimson" unqtDot Cyan = unqtDot "cyan" unqtDot Cyan1 = unqtDot "cyan1" unqtDot Cyan2 = unqtDot "cyan2" unqtDot Cyan3 = unqtDot "cyan3" unqtDot Cyan4 = unqtDot "cyan4" unqtDot DarkGoldenrod = unqtDot "darkgoldenrod" unqtDot DarkGoldenrod1 = unqtDot "darkgoldenrod1" unqtDot DarkGoldenrod2 = unqtDot "darkgoldenrod2" unqtDot DarkGoldenrod3 = unqtDot "darkgoldenrod3" unqtDot DarkGoldenrod4 = unqtDot "darkgoldenrod4" unqtDot DarkGreen = unqtDot "darkgreen" unqtDot Darkkhaki = unqtDot "darkkhaki" unqtDot DarkOliveGreen = unqtDot "darkolivegreen" unqtDot DarkOliveGreen1 = unqtDot "darkolivegreen1" unqtDot DarkOliveGreen2 = unqtDot "darkolivegreen2" unqtDot DarkOliveGreen3 = unqtDot "darkolivegreen3" unqtDot DarkOliveGreen4 = unqtDot "darkolivegreen4" unqtDot DarkOrange = unqtDot "darkorange" unqtDot DarkOrange1 = unqtDot "darkorange1" unqtDot DarkOrange2 = unqtDot "darkorange2" unqtDot DarkOrange3 = unqtDot "darkorange3" unqtDot DarkOrange4 = unqtDot "darkorange4" unqtDot DarkOrchid = unqtDot "darkorchid" unqtDot DarkOrchid1 = unqtDot "darkorchid1" unqtDot DarkOrchid2 = unqtDot "darkorchid2" unqtDot DarkOrchid3 = unqtDot "darkorchid3" unqtDot DarkOrchid4 = unqtDot "darkorchid4" unqtDot DarkSalmon = unqtDot "darksalmon" unqtDot DarkSeaGreen = unqtDot "darkseagreen" unqtDot DarkSeaGreen1 = unqtDot "darkseagreen1" unqtDot DarkSeaGreen2 = unqtDot "darkseagreen2" unqtDot DarkSeaGreen3 = unqtDot "darkseagreen3" unqtDot DarkSeaGreen4 = unqtDot "darkseagreen4" unqtDot DarkSlateBlue = unqtDot "darkslateblue" unqtDot DarkSlateGray = unqtDot "darkslategray" unqtDot DarkSlateGray1 = unqtDot "darkslategray1" unqtDot DarkSlateGray2 = unqtDot "darkslategray2" unqtDot DarkSlateGray3 = unqtDot "darkslategray3" unqtDot DarkSlateGray4 = unqtDot "darkslategray4" unqtDot DarkTurquoise = unqtDot "darkturquoise" unqtDot DarkViolet = unqtDot "darkviolet" unqtDot DeepPink = unqtDot "deeppink" unqtDot DeepPink1 = unqtDot "deeppink1" unqtDot DeepPink2 = unqtDot "deeppink2" unqtDot DeepPink3 = unqtDot "deeppink3" unqtDot DeepPink4 = unqtDot "deeppink4" unqtDot DeepSkyBlue = unqtDot "deepskyblue" unqtDot DeepSkyBlue1 = unqtDot "deepskyblue1" unqtDot DeepSkyBlue2 = unqtDot "deepskyblue2" unqtDot DeepSkyBlue3 = unqtDot "deepskyblue3" unqtDot DeepSkyBlue4 = unqtDot "deepskyblue4" unqtDot DimGray = unqtDot "dimgray" unqtDot DodgerBlue = unqtDot "dodgerblue" unqtDot DodgerBlue1 = unqtDot "dodgerblue1" unqtDot DodgerBlue2 = unqtDot "dodgerblue2" unqtDot DodgerBlue3 = unqtDot "dodgerblue3" unqtDot DodgerBlue4 = unqtDot "dodgerblue4" unqtDot Firebrick = unqtDot "firebrick" unqtDot Firebrick1 = unqtDot "firebrick1" unqtDot Firebrick2 = unqtDot "firebrick2" unqtDot Firebrick3 = unqtDot "firebrick3" unqtDot Firebrick4 = unqtDot "firebrick4" unqtDot FloralWhite = unqtDot "floralwhite" unqtDot ForestGreen = unqtDot "forestgreen" unqtDot Gainsboro = unqtDot "gainsboro" unqtDot GhostWhite = unqtDot "ghostwhite" unqtDot Gold = unqtDot "gold" unqtDot Gold1 = unqtDot "gold1" unqtDot Gold2 = unqtDot "gold2" unqtDot Gold3 = unqtDot "gold3" unqtDot Gold4 = unqtDot "gold4" unqtDot Goldenrod = unqtDot "goldenrod" unqtDot Goldenrod1 = unqtDot "goldenrod1" unqtDot Goldenrod2 = unqtDot "goldenrod2" unqtDot Goldenrod3 = unqtDot "goldenrod3" unqtDot Goldenrod4 = unqtDot "goldenrod4" unqtDot Gray = unqtDot "gray" unqtDot Gray0 = unqtDot "gray0" unqtDot Gray1 = unqtDot "gray1" unqtDot Gray2 = unqtDot "gray2" unqtDot Gray3 = unqtDot "gray3" unqtDot Gray4 = unqtDot "gray4" unqtDot Gray5 = unqtDot "gray5" unqtDot Gray6 = unqtDot "gray6" unqtDot Gray7 = unqtDot "gray7" unqtDot Gray8 = unqtDot "gray8" unqtDot Gray9 = unqtDot "gray9" unqtDot Gray10 = unqtDot "gray10" unqtDot Gray11 = unqtDot "gray11" unqtDot Gray12 = unqtDot "gray12" unqtDot Gray13 = unqtDot "gray13" unqtDot Gray14 = unqtDot "gray14" unqtDot Gray15 = unqtDot "gray15" unqtDot Gray16 = unqtDot "gray16" unqtDot Gray17 = unqtDot "gray17" unqtDot Gray18 = unqtDot "gray18" unqtDot Gray19 = unqtDot "gray19" unqtDot Gray20 = unqtDot "gray20" unqtDot Gray21 = unqtDot "gray21" unqtDot Gray22 = unqtDot "gray22" unqtDot Gray23 = unqtDot "gray23" unqtDot Gray24 = unqtDot "gray24" unqtDot Gray25 = unqtDot "gray25" unqtDot Gray26 = unqtDot "gray26" unqtDot Gray27 = unqtDot "gray27" unqtDot Gray28 = unqtDot "gray28" unqtDot Gray29 = unqtDot "gray29" unqtDot Gray30 = unqtDot "gray30" unqtDot Gray31 = unqtDot "gray31" unqtDot Gray32 = unqtDot "gray32" unqtDot Gray33 = unqtDot "gray33" unqtDot Gray34 = unqtDot "gray34" unqtDot Gray35 = unqtDot "gray35" unqtDot Gray36 = unqtDot "gray36" unqtDot Gray37 = unqtDot "gray37" unqtDot Gray38 = unqtDot "gray38" unqtDot Gray39 = unqtDot "gray39" unqtDot Gray40 = unqtDot "gray40" unqtDot Gray41 = unqtDot "gray41" unqtDot Gray42 = unqtDot "gray42" unqtDot Gray43 = unqtDot "gray43" unqtDot Gray44 = unqtDot "gray44" unqtDot Gray45 = unqtDot "gray45" unqtDot Gray46 = unqtDot "gray46" unqtDot Gray47 = unqtDot "gray47" unqtDot Gray48 = unqtDot "gray48" unqtDot Gray49 = unqtDot "gray49" unqtDot Gray50 = unqtDot "gray50" unqtDot Gray51 = unqtDot "gray51" unqtDot Gray52 = unqtDot "gray52" unqtDot Gray53 = unqtDot "gray53" unqtDot Gray54 = unqtDot "gray54" unqtDot Gray55 = unqtDot "gray55" unqtDot Gray56 = unqtDot "gray56" unqtDot Gray57 = unqtDot "gray57" unqtDot Gray58 = unqtDot "gray58" unqtDot Gray59 = unqtDot "gray59" unqtDot Gray60 = unqtDot "gray60" unqtDot Gray61 = unqtDot "gray61" unqtDot Gray62 = unqtDot "gray62" unqtDot Gray63 = unqtDot "gray63" unqtDot Gray64 = unqtDot "gray64" unqtDot Gray65 = unqtDot "gray65" unqtDot Gray66 = unqtDot "gray66" unqtDot Gray67 = unqtDot "gray67" unqtDot Gray68 = unqtDot "gray68" unqtDot Gray69 = unqtDot "gray69" unqtDot Gray70 = unqtDot "gray70" unqtDot Gray71 = unqtDot "gray71" unqtDot Gray72 = unqtDot "gray72" unqtDot Gray73 = unqtDot "gray73" unqtDot Gray74 = unqtDot "gray74" unqtDot Gray75 = unqtDot "gray75" unqtDot Gray76 = unqtDot "gray76" unqtDot Gray77 = unqtDot "gray77" unqtDot Gray78 = unqtDot "gray78" unqtDot Gray79 = unqtDot "gray79" unqtDot Gray80 = unqtDot "gray80" unqtDot Gray81 = unqtDot "gray81" unqtDot Gray82 = unqtDot "gray82" unqtDot Gray83 = unqtDot "gray83" unqtDot Gray84 = unqtDot "gray84" unqtDot Gray85 = unqtDot "gray85" unqtDot Gray86 = unqtDot "gray86" unqtDot Gray87 = unqtDot "gray87" unqtDot Gray88 = unqtDot "gray88" unqtDot Gray89 = unqtDot "gray89" unqtDot Gray90 = unqtDot "gray90" unqtDot Gray91 = unqtDot "gray91" unqtDot Gray92 = unqtDot "gray92" unqtDot Gray93 = unqtDot "gray93" unqtDot Gray94 = unqtDot "gray94" unqtDot Gray95 = unqtDot "gray95" unqtDot Gray96 = unqtDot "gray96" unqtDot Gray97 = unqtDot "gray97" unqtDot Gray98 = unqtDot "gray98" unqtDot Gray99 = unqtDot "gray99" unqtDot Gray100 = unqtDot "gray100" unqtDot Green = unqtDot "green" unqtDot Green1 = unqtDot "green1" unqtDot Green2 = unqtDot "green2" unqtDot Green3 = unqtDot "green3" unqtDot Green4 = unqtDot "green4" unqtDot GreenYellow = unqtDot "greenyellow" unqtDot HoneyDew = unqtDot "honeydew" unqtDot HoneyDew1 = unqtDot "honeydew1" unqtDot HoneyDew2 = unqtDot "honeydew2" unqtDot HoneyDew3 = unqtDot "honeydew3" unqtDot HoneyDew4 = unqtDot "honeydew4" unqtDot HotPink = unqtDot "hotpink" unqtDot HotPink1 = unqtDot "hotpink1" unqtDot HotPink2 = unqtDot "hotpink2" unqtDot HotPink3 = unqtDot "hotpink3" unqtDot HotPink4 = unqtDot "hotpink4" unqtDot IndianRed = unqtDot "indianred" unqtDot IndianRed1 = unqtDot "indianred1" unqtDot IndianRed2 = unqtDot "indianred2" unqtDot IndianRed3 = unqtDot "indianred3" unqtDot IndianRed4 = unqtDot "indianred4" unqtDot Indigo = unqtDot "indigo" unqtDot Ivory = unqtDot "ivory" unqtDot Ivory1 = unqtDot "ivory1" unqtDot Ivory2 = unqtDot "ivory2" unqtDot Ivory3 = unqtDot "ivory3" unqtDot Ivory4 = unqtDot "ivory4" unqtDot Khaki = unqtDot "khaki" unqtDot Khaki1 = unqtDot "khaki1" unqtDot Khaki2 = unqtDot "khaki2" unqtDot Khaki3 = unqtDot "khaki3" unqtDot Khaki4 = unqtDot "khaki4" unqtDot Lavender = unqtDot "lavender" unqtDot LavenderBlush = unqtDot "lavenderblush" unqtDot LavenderBlush1 = unqtDot "lavenderblush1" unqtDot LavenderBlush2 = unqtDot "lavenderblush2" unqtDot LavenderBlush3 = unqtDot "lavenderblush3" unqtDot LavenderBlush4 = unqtDot "lavenderblush4" unqtDot LawnGreen = unqtDot "lawngreen" unqtDot LemonChiffon = unqtDot "lemonchiffon" unqtDot LemonChiffon1 = unqtDot "lemonchiffon1" unqtDot LemonChiffon2 = unqtDot "lemonchiffon2" unqtDot LemonChiffon3 = unqtDot "lemonchiffon3" unqtDot LemonChiffon4 = unqtDot "lemonchiffon4" unqtDot LightBlue = unqtDot "lightblue" unqtDot LightBlue1 = unqtDot "lightblue1" unqtDot LightBlue2 = unqtDot "lightblue2" unqtDot LightBlue3 = unqtDot "lightblue3" unqtDot LightBlue4 = unqtDot "lightblue4" unqtDot LightCoral = unqtDot "lightcoral" unqtDot LightCyan = unqtDot "lightcyan" unqtDot LightCyan1 = unqtDot "lightcyan1" unqtDot LightCyan2 = unqtDot "lightcyan2" unqtDot LightCyan3 = unqtDot "lightcyan3" unqtDot LightCyan4 = unqtDot "lightcyan4" unqtDot LightGoldenrod = unqtDot "lightgoldenrod" unqtDot LightGoldenrod1 = unqtDot "lightgoldenrod1" unqtDot LightGoldenrod2 = unqtDot "lightgoldenrod2" unqtDot LightGoldenrod3 = unqtDot "lightgoldenrod3" unqtDot LightGoldenrod4 = unqtDot "lightgoldenrod4" unqtDot LightGoldenrodYellow = unqtDot "lightgoldenrodyellow" unqtDot LightGray = unqtDot "lightgray" unqtDot LightPink = unqtDot "lightpink" unqtDot LightPink1 = unqtDot "lightpink1" unqtDot LightPink2 = unqtDot "lightpink2" unqtDot LightPink3 = unqtDot "lightpink3" unqtDot LightPink4 = unqtDot "lightpink4" unqtDot LightSalmon = unqtDot "lightsalmon" unqtDot LightSalmon1 = unqtDot "lightsalmon1" unqtDot LightSalmon2 = unqtDot "lightsalmon2" unqtDot LightSalmon3 = unqtDot "lightsalmon3" unqtDot LightSalmon4 = unqtDot "lightsalmon4" unqtDot LightSeaGreen = unqtDot "lightseagreen" unqtDot LightSkyBlue = unqtDot "lightskyblue" unqtDot LightSkyBlue1 = unqtDot "lightskyblue1" unqtDot LightSkyBlue2 = unqtDot "lightskyblue2" unqtDot LightSkyBlue3 = unqtDot "lightskyblue3" unqtDot LightSkyBlue4 = unqtDot "lightskyblue4" unqtDot LightSlateBlue = unqtDot "lightslateblue" unqtDot LightSlateGray = unqtDot "lightslategray" unqtDot LightSteelBlue = unqtDot "lightsteelblue" unqtDot LightSteelBlue1 = unqtDot "lightsteelblue1" unqtDot LightSteelBlue2 = unqtDot "lightsteelblue2" unqtDot LightSteelBlue3 = unqtDot "lightsteelblue3" unqtDot LightSteelBlue4 = unqtDot "lightsteelblue4" unqtDot LightYellow = unqtDot "lightyellow" unqtDot LightYellow1 = unqtDot "lightyellow1" unqtDot LightYellow2 = unqtDot "lightyellow2" unqtDot LightYellow3 = unqtDot "lightyellow3" unqtDot LightYellow4 = unqtDot "lightyellow4" unqtDot LimeGreen = unqtDot "limegreen" unqtDot Linen = unqtDot "linen" unqtDot Magenta = unqtDot "magenta" unqtDot Magenta1 = unqtDot "magenta1" unqtDot Magenta2 = unqtDot "magenta2" unqtDot Magenta3 = unqtDot "magenta3" unqtDot Magenta4 = unqtDot "magenta4" unqtDot Maroon = unqtDot "maroon" unqtDot Maroon1 = unqtDot "maroon1" unqtDot Maroon2 = unqtDot "maroon2" unqtDot Maroon3 = unqtDot "maroon3" unqtDot Maroon4 = unqtDot "maroon4" unqtDot MediumAquamarine = unqtDot "mediumaquamarine" unqtDot MediumBlue = unqtDot "mediumblue" unqtDot MediumOrchid = unqtDot "mediumorchid" unqtDot MediumOrchid1 = unqtDot "mediumorchid1" unqtDot MediumOrchid2 = unqtDot "mediumorchid2" unqtDot MediumOrchid3 = unqtDot "mediumorchid3" unqtDot MediumOrchid4 = unqtDot "mediumorchid4" unqtDot MediumPurple = unqtDot "mediumpurple" unqtDot MediumPurple1 = unqtDot "mediumpurple1" unqtDot MediumPurple2 = unqtDot "mediumpurple2" unqtDot MediumPurple3 = unqtDot "mediumpurple3" unqtDot MediumPurple4 = unqtDot "mediumpurple4" unqtDot MediumSeaGreen = unqtDot "mediumseagreen" unqtDot MediumSlateBlue = unqtDot "mediumslateblue" unqtDot MediumSpringGreen = unqtDot "mediumspringgreen" unqtDot MediumTurquoise = unqtDot "mediumturquoise" unqtDot MediumVioletRed = unqtDot "mediumvioletred" unqtDot MidnightBlue = unqtDot "midnightblue" unqtDot MintCream = unqtDot "mintcream" unqtDot MistyRose = unqtDot "mistyrose" unqtDot MistyRose1 = unqtDot "mistyrose1" unqtDot MistyRose2 = unqtDot "mistyrose2" unqtDot MistyRose3 = unqtDot "mistyrose3" unqtDot MistyRose4 = unqtDot "mistyrose4" unqtDot Moccasin = unqtDot "moccasin" unqtDot NavajoWhite = unqtDot "navajowhite" unqtDot NavajoWhite1 = unqtDot "navajowhite1" unqtDot NavajoWhite2 = unqtDot "navajowhite2" unqtDot NavajoWhite3 = unqtDot "navajowhite3" unqtDot NavajoWhite4 = unqtDot "navajowhite4" unqtDot Navy = unqtDot "navy" unqtDot NavyBlue = unqtDot "navyblue" unqtDot OldLace = unqtDot "oldlace" unqtDot OliveDrab = unqtDot "olivedrab" unqtDot OliveDrab1 = unqtDot "olivedrab1" unqtDot OliveDrab2 = unqtDot "olivedrab2" unqtDot OliveDrab3 = unqtDot "olivedrab3" unqtDot OliveDrab4 = unqtDot "olivedrab4" unqtDot Orange = unqtDot "orange" unqtDot Orange1 = unqtDot "orange1" unqtDot Orange2 = unqtDot "orange2" unqtDot Orange3 = unqtDot "orange3" unqtDot Orange4 = unqtDot "orange4" unqtDot OrangeRed = unqtDot "orangered" unqtDot OrangeRed1 = unqtDot "orangered1" unqtDot OrangeRed2 = unqtDot "orangered2" unqtDot OrangeRed3 = unqtDot "orangered3" unqtDot OrangeRed4 = unqtDot "orangered4" unqtDot Orchid = unqtDot "orchid" unqtDot Orchid1 = unqtDot "orchid1" unqtDot Orchid2 = unqtDot "orchid2" unqtDot Orchid3 = unqtDot "orchid3" unqtDot Orchid4 = unqtDot "orchid4" unqtDot PaleGoldenrod = unqtDot "palegoldenrod" unqtDot PaleGreen = unqtDot "palegreen" unqtDot PaleGreen1 = unqtDot "palegreen1" unqtDot PaleGreen2 = unqtDot "palegreen2" unqtDot PaleGreen3 = unqtDot "palegreen3" unqtDot PaleGreen4 = unqtDot "palegreen4" unqtDot PaleTurquoise = unqtDot "paleturquoise" unqtDot PaleTurquoise1 = unqtDot "paleturquoise1" unqtDot PaleTurquoise2 = unqtDot "paleturquoise2" unqtDot PaleTurquoise3 = unqtDot "paleturquoise3" unqtDot PaleTurquoise4 = unqtDot "paleturquoise4" unqtDot PaleVioletRed = unqtDot "palevioletred" unqtDot PaleVioletRed1 = unqtDot "palevioletred1" unqtDot PaleVioletRed2 = unqtDot "palevioletred2" unqtDot PaleVioletRed3 = unqtDot "palevioletred3" unqtDot PaleVioletRed4 = unqtDot "palevioletred4" unqtDot PapayaWhip = unqtDot "papayawhip" unqtDot PeachPuff = unqtDot "peachpuff" unqtDot PeachPuff1 = unqtDot "peachpuff1" unqtDot PeachPuff2 = unqtDot "peachpuff2" unqtDot PeachPuff3 = unqtDot "peachpuff3" unqtDot PeachPuff4 = unqtDot "peachpuff4" unqtDot Peru = unqtDot "peru" unqtDot Pink = unqtDot "pink" unqtDot Pink1 = unqtDot "pink1" unqtDot Pink2 = unqtDot "pink2" unqtDot Pink3 = unqtDot "pink3" unqtDot Pink4 = unqtDot "pink4" unqtDot Plum = unqtDot "plum" unqtDot Plum1 = unqtDot "plum1" unqtDot Plum2 = unqtDot "plum2" unqtDot Plum3 = unqtDot "plum3" unqtDot Plum4 = unqtDot "plum4" unqtDot PowderBlue = unqtDot "powderblue" unqtDot Purple = unqtDot "purple" unqtDot Purple1 = unqtDot "purple1" unqtDot Purple2 = unqtDot "purple2" unqtDot Purple3 = unqtDot "purple3" unqtDot Purple4 = unqtDot "purple4" unqtDot Red = unqtDot "red" unqtDot Red1 = unqtDot "red1" unqtDot Red2 = unqtDot "red2" unqtDot Red3 = unqtDot "red3" unqtDot Red4 = unqtDot "red4" unqtDot RosyBrown = unqtDot "rosybrown" unqtDot RosyBrown1 = unqtDot "rosybrown1" unqtDot RosyBrown2 = unqtDot "rosybrown2" unqtDot RosyBrown3 = unqtDot "rosybrown3" unqtDot RosyBrown4 = unqtDot "rosybrown4" unqtDot RoyalBlue = unqtDot "royalblue" unqtDot RoyalBlue1 = unqtDot "royalblue1" unqtDot RoyalBlue2 = unqtDot "royalblue2" unqtDot RoyalBlue3 = unqtDot "royalblue3" unqtDot RoyalBlue4 = unqtDot "royalblue4" unqtDot SaddleBrown = unqtDot "saddlebrown" unqtDot Salmon = unqtDot "salmon" unqtDot Salmon1 = unqtDot "salmon1" unqtDot Salmon2 = unqtDot "salmon2" unqtDot Salmon3 = unqtDot "salmon3" unqtDot Salmon4 = unqtDot "salmon4" unqtDot SandyBrown = unqtDot "sandybrown" unqtDot SeaGreen = unqtDot "seagreen" unqtDot SeaGreen1 = unqtDot "seagreen1" unqtDot SeaGreen2 = unqtDot "seagreen2" unqtDot SeaGreen3 = unqtDot "seagreen3" unqtDot SeaGreen4 = unqtDot "seagreen4" unqtDot SeaShell = unqtDot "seashell" unqtDot SeaShell1 = unqtDot "seashell1" unqtDot SeaShell2 = unqtDot "seashell2" unqtDot SeaShell3 = unqtDot "seashell3" unqtDot SeaShell4 = unqtDot "seashell4" unqtDot Sienna = unqtDot "sienna" unqtDot Sienna1 = unqtDot "sienna1" unqtDot Sienna2 = unqtDot "sienna2" unqtDot Sienna3 = unqtDot "sienna3" unqtDot Sienna4 = unqtDot "sienna4" unqtDot SkyBlue = unqtDot "skyblue" unqtDot SkyBlue1 = unqtDot "skyblue1" unqtDot SkyBlue2 = unqtDot "skyblue2" unqtDot SkyBlue3 = unqtDot "skyblue3" unqtDot SkyBlue4 = unqtDot "skyblue4" unqtDot SlateBlue = unqtDot "slateblue" unqtDot SlateBlue1 = unqtDot "slateblue1" unqtDot SlateBlue2 = unqtDot "slateblue2" unqtDot SlateBlue3 = unqtDot "slateblue3" unqtDot SlateBlue4 = unqtDot "slateblue4" unqtDot SlateGray = unqtDot "slategray" unqtDot SlateGray1 = unqtDot "slategray1" unqtDot SlateGray2 = unqtDot "slategray2" unqtDot SlateGray3 = unqtDot "slategray3" unqtDot SlateGray4 = unqtDot "slategray4" unqtDot Snow = unqtDot "snow" unqtDot Snow1 = unqtDot "snow1" unqtDot Snow2 = unqtDot "snow2" unqtDot Snow3 = unqtDot "snow3" unqtDot Snow4 = unqtDot "snow4" unqtDot SpringGreen = unqtDot "springgreen" unqtDot SpringGreen1 = unqtDot "springgreen1" unqtDot SpringGreen2 = unqtDot "springgreen2" unqtDot SpringGreen3 = unqtDot "springgreen3" unqtDot SpringGreen4 = unqtDot "springgreen4" unqtDot SteelBlue = unqtDot "steelblue" unqtDot SteelBlue1 = unqtDot "steelblue1" unqtDot SteelBlue2 = unqtDot "steelblue2" unqtDot SteelBlue3 = unqtDot "steelblue3" unqtDot SteelBlue4 = unqtDot "steelblue4" unqtDot Tan = unqtDot "tan" unqtDot Tan1 = unqtDot "tan1" unqtDot Tan2 = unqtDot "tan2" unqtDot Tan3 = unqtDot "tan3" unqtDot Tan4 = unqtDot "tan4" unqtDot Thistle = unqtDot "thistle" unqtDot Thistle1 = unqtDot "thistle1" unqtDot Thistle2 = unqtDot "thistle2" unqtDot Thistle3 = unqtDot "thistle3" unqtDot Thistle4 = unqtDot "thistle4" unqtDot Tomato = unqtDot "tomato" unqtDot Tomato1 = unqtDot "tomato1" unqtDot Tomato2 = unqtDot "tomato2" unqtDot Tomato3 = unqtDot "tomato3" unqtDot Tomato4 = unqtDot "tomato4" unqtDot Transparent = unqtDot "transparent" unqtDot Turquoise = unqtDot "turquoise" unqtDot Turquoise1 = unqtDot "turquoise1" unqtDot Turquoise2 = unqtDot "turquoise2" unqtDot Turquoise3 = unqtDot "turquoise3" unqtDot Turquoise4 = unqtDot "turquoise4" unqtDot Violet = unqtDot "violet" unqtDot VioletRed = unqtDot "violetred" unqtDot VioletRed1 = unqtDot "violetred1" unqtDot VioletRed2 = unqtDot "violetred2" unqtDot VioletRed3 = unqtDot "violetred3" unqtDot VioletRed4 = unqtDot "violetred4" unqtDot Wheat = unqtDot "wheat" unqtDot Wheat1 = unqtDot "wheat1" unqtDot Wheat2 = unqtDot "wheat2" unqtDot Wheat3 = unqtDot "wheat3" unqtDot Wheat4 = unqtDot "wheat4" unqtDot White = unqtDot "white" unqtDot WhiteSmoke = unqtDot "whitesmoke" unqtDot Yellow = unqtDot "yellow" unqtDot Yellow1 = unqtDot "yellow1" unqtDot Yellow2 = unqtDot "yellow2" unqtDot Yellow3 = unqtDot "yellow3" unqtDot Yellow4 = unqtDot "yellow4" unqtDot YellowGreen = unqtDot "yellowgreen" instance ParseDot X11Color where parseUnqt = oneOf $ reverse [ stringRep AliceBlue "aliceblue" , stringRep AntiqueWhite "antiquewhite" , stringRep AntiqueWhite1 "antiquewhite1" , stringRep AntiqueWhite2 "antiquewhite2" , stringRep AntiqueWhite3 "antiquewhite3" , stringRep AntiqueWhite4 "antiquewhite4" , stringRep Aquamarine "aquamarine" , stringRep Aquamarine1 "aquamarine1" , stringRep Aquamarine2 "aquamarine2" , stringRep Aquamarine3 "aquamarine3" , stringRep Aquamarine4 "aquamarine4" , stringRep Azure "azure" , stringRep Azure1 "azure1" , stringRep Azure2 "azure2" , stringRep Azure3 "azure3" , stringRep Azure4 "azure4" , stringRep Beige "beige" , stringRep Bisque "bisque" , stringRep Bisque1 "bisque1" , stringRep Bisque2 "bisque2" , stringRep Bisque3 "bisque3" , stringRep Bisque4 "bisque4" , stringRep Black "black" , stringRep BlanchedAlmond "blanchedalmond" , stringRep Blue "blue" , stringRep Blue1 "blue1" , stringRep Blue2 "blue2" , stringRep Blue3 "blue3" , stringRep Blue4 "blue4" , stringRep BlueViolet "blueviolet" , stringRep Brown "brown" , stringRep Brown1 "brown1" , stringRep Brown2 "brown2" , stringRep Brown3 "brown3" , stringRep Brown4 "brown4" , stringRep Burlywood "burlywood" , stringRep Burlywood1 "burlywood1" , stringRep Burlywood2 "burlywood2" , stringRep Burlywood3 "burlywood3" , stringRep Burlywood4 "burlywood4" , stringRep CadetBlue "cadetblue" , stringRep CadetBlue1 "cadetblue1" , stringRep CadetBlue2 "cadetblue2" , stringRep CadetBlue3 "cadetblue3" , stringRep CadetBlue4 "cadetblue4" , stringRep Chartreuse "chartreuse" , stringRep Chartreuse1 "chartreuse1" , stringRep Chartreuse2 "chartreuse2" , stringRep Chartreuse3 "chartreuse3" , stringRep Chartreuse4 "chartreuse4" , stringRep Chocolate "chocolate" , stringRep Chocolate1 "chocolate1" , stringRep Chocolate2 "chocolate2" , stringRep Chocolate3 "chocolate3" , stringRep Chocolate4 "chocolate4" , stringRep Coral "coral" , stringRep Coral1 "coral1" , stringRep Coral2 "coral2" , stringRep Coral3 "coral3" , stringRep Coral4 "coral4" , stringRep CornFlowerBlue "cornflowerblue" , stringRep CornSilk "cornsilk" , stringRep CornSilk1 "cornsilk1" , stringRep CornSilk2 "cornsilk2" , stringRep CornSilk3 "cornsilk3" , stringRep CornSilk4 "cornsilk4" , stringRep Crimson "crimson" , stringRep Cyan "cyan" , stringRep Cyan1 "cyan1" , stringRep Cyan2 "cyan2" , stringRep Cyan3 "cyan3" , stringRep Cyan4 "cyan4" , stringRep DarkGoldenrod "darkgoldenrod" , stringRep DarkGoldenrod1 "darkgoldenrod1" , stringRep DarkGoldenrod2 "darkgoldenrod2" , stringRep DarkGoldenrod3 "darkgoldenrod3" , stringRep DarkGoldenrod4 "darkgoldenrod4" , stringRep DarkGreen "darkgreen" , stringRep Darkkhaki "darkkhaki" , stringRep DarkOliveGreen "darkolivegreen" , stringRep DarkOliveGreen1 "darkolivegreen1" , stringRep DarkOliveGreen2 "darkolivegreen2" , stringRep DarkOliveGreen3 "darkolivegreen3" , stringRep DarkOliveGreen4 "darkolivegreen4" , stringRep DarkOrange "darkorange" , stringRep DarkOrange1 "darkorange1" , stringRep DarkOrange2 "darkorange2" , stringRep DarkOrange3 "darkorange3" , stringRep DarkOrange4 "darkorange4" , stringRep DarkOrchid "darkorchid" , stringRep DarkOrchid1 "darkorchid1" , stringRep DarkOrchid2 "darkorchid2" , stringRep DarkOrchid3 "darkorchid3" , stringRep DarkOrchid4 "darkorchid4" , stringRep DarkSalmon "darksalmon" , stringRep DarkSeaGreen "darkseagreen" , stringRep DarkSeaGreen1 "darkseagreen1" , stringRep DarkSeaGreen2 "darkseagreen2" , stringRep DarkSeaGreen3 "darkseagreen3" , stringRep DarkSeaGreen4 "darkseagreen4" , stringRep DarkSlateBlue "darkslateblue" , stringReps DarkSlateGray ["darkslategray", "darkslategrey"] , stringReps DarkSlateGray1 ["darkslategray1", "darkslategrey1"] , stringReps DarkSlateGray2 ["darkslategray2", "darkslategrey2"] , stringReps DarkSlateGray3 ["darkslategray3", "darkslategrey3"] , stringReps DarkSlateGray4 ["darkslategray4", "darkslategrey4"] , stringRep DarkTurquoise "darkturquoise" , stringRep DarkViolet "darkviolet" , stringRep DeepPink "deeppink" , stringRep DeepPink1 "deeppink1" , stringRep DeepPink2 "deeppink2" , stringRep DeepPink3 "deeppink3" , stringRep DeepPink4 "deeppink4" , stringRep DeepSkyBlue "deepskyblue" , stringRep DeepSkyBlue1 "deepskyblue1" , stringRep DeepSkyBlue2 "deepskyblue2" , stringRep DeepSkyBlue3 "deepskyblue3" , stringRep DeepSkyBlue4 "deepskyblue4" , stringReps DimGray ["dimgray", "dimgrey"] , stringRep DodgerBlue "dodgerblue" , stringRep DodgerBlue1 "dodgerblue1" , stringRep DodgerBlue2 "dodgerblue2" , stringRep DodgerBlue3 "dodgerblue3" , stringRep DodgerBlue4 "dodgerblue4" , stringRep Firebrick "firebrick" , stringRep Firebrick1 "firebrick1" , stringRep Firebrick2 "firebrick2" , stringRep Firebrick3 "firebrick3" , stringRep Firebrick4 "firebrick4" , stringRep FloralWhite "floralwhite" , stringRep ForestGreen "forestgreen" , stringRep Gainsboro "gainsboro" , stringRep GhostWhite "ghostwhite" , stringRep Gold "gold" , stringRep Gold1 "gold1" , stringRep Gold2 "gold2" , stringRep Gold3 "gold3" , stringRep Gold4 "gold4" , stringRep Goldenrod "goldenrod" , stringRep Goldenrod1 "goldenrod1" , stringRep Goldenrod2 "goldenrod2" , stringRep Goldenrod3 "goldenrod3" , stringRep Goldenrod4 "goldenrod4" , stringReps Gray ["gray", "grey"] , stringReps Gray0 ["gray0", "grey0"] , stringReps Gray1 ["gray1", "grey1"] , stringReps Gray2 ["gray2", "grey2"] , stringReps Gray3 ["gray3", "grey3"] , stringReps Gray4 ["gray4", "grey4"] , stringReps Gray5 ["gray5", "grey5"] , stringReps Gray6 ["gray6", "grey6"] , stringReps Gray7 ["gray7", "grey7"] , stringReps Gray8 ["gray8", "grey8"] , stringReps Gray9 ["gray9", "grey9"] , stringReps Gray10 ["gray10", "grey10"] , stringReps Gray11 ["gray11", "grey11"] , stringReps Gray12 ["gray12", "grey12"] , stringReps Gray13 ["gray13", "grey13"] , stringReps Gray14 ["gray14", "grey14"] , stringReps Gray15 ["gray15", "grey15"] , stringReps Gray16 ["gray16", "grey16"] , stringReps Gray17 ["gray17", "grey17"] , stringReps Gray18 ["gray18", "grey18"] , stringReps Gray19 ["gray19", "grey19"] , stringReps Gray20 ["gray20", "grey20"] , stringReps Gray21 ["gray21", "grey21"] , stringReps Gray22 ["gray22", "grey22"] , stringReps Gray23 ["gray23", "grey23"] , stringReps Gray24 ["gray24", "grey24"] , stringReps Gray25 ["gray25", "grey25"] , stringReps Gray26 ["gray26", "grey26"] , stringReps Gray27 ["gray27", "grey27"] , stringReps Gray28 ["gray28", "grey28"] , stringReps Gray29 ["gray29", "grey29"] , stringReps Gray30 ["gray30", "grey30"] , stringReps Gray31 ["gray31", "grey31"] , stringReps Gray32 ["gray32", "grey32"] , stringReps Gray33 ["gray33", "grey33"] , stringReps Gray34 ["gray34", "grey34"] , stringReps Gray35 ["gray35", "grey35"] , stringReps Gray36 ["gray36", "grey36"] , stringReps Gray37 ["gray37", "grey37"] , stringReps Gray38 ["gray38", "grey38"] , stringReps Gray39 ["gray39", "grey39"] , stringReps Gray40 ["gray40", "grey40"] , stringReps Gray41 ["gray41", "grey41"] , stringReps Gray42 ["gray42", "grey42"] , stringReps Gray43 ["gray43", "grey43"] , stringReps Gray44 ["gray44", "grey44"] , stringReps Gray45 ["gray45", "grey45"] , stringReps Gray46 ["gray46", "grey46"] , stringReps Gray47 ["gray47", "grey47"] , stringReps Gray48 ["gray48", "grey48"] , stringReps Gray49 ["gray49", "grey49"] , stringReps Gray50 ["gray50", "grey50"] , stringReps Gray51 ["gray51", "grey51"] , stringReps Gray52 ["gray52", "grey52"] , stringReps Gray53 ["gray53", "grey53"] , stringReps Gray54 ["gray54", "grey54"] , stringReps Gray55 ["gray55", "grey55"] , stringReps Gray56 ["gray56", "grey56"] , stringReps Gray57 ["gray57", "grey57"] , stringReps Gray58 ["gray58", "grey58"] , stringReps Gray59 ["gray59", "grey59"] , stringReps Gray60 ["gray60", "grey60"] , stringReps Gray61 ["gray61", "grey61"] , stringReps Gray62 ["gray62", "grey62"] , stringReps Gray63 ["gray63", "grey63"] , stringReps Gray64 ["gray64", "grey64"] , stringReps Gray65 ["gray65", "grey65"] , stringReps Gray66 ["gray66", "grey66"] , stringReps Gray67 ["gray67", "grey67"] , stringReps Gray68 ["gray68", "grey68"] , stringReps Gray69 ["gray69", "grey69"] , stringReps Gray70 ["gray70", "grey70"] , stringReps Gray71 ["gray71", "grey71"] , stringReps Gray72 ["gray72", "grey72"] , stringReps Gray73 ["gray73", "grey73"] , stringReps Gray74 ["gray74", "grey74"] , stringReps Gray75 ["gray75", "grey75"] , stringReps Gray76 ["gray76", "grey76"] , stringReps Gray77 ["gray77", "grey77"] , stringReps Gray78 ["gray78", "grey78"] , stringReps Gray79 ["gray79", "grey79"] , stringReps Gray80 ["gray80", "grey80"] , stringReps Gray81 ["gray81", "grey81"] , stringReps Gray82 ["gray82", "grey82"] , stringReps Gray83 ["gray83", "grey83"] , stringReps Gray84 ["gray84", "grey84"] , stringReps Gray85 ["gray85", "grey85"] , stringReps Gray86 ["gray86", "grey86"] , stringReps Gray87 ["gray87", "grey87"] , stringReps Gray88 ["gray88", "grey88"] , stringReps Gray89 ["gray89", "grey89"] , stringReps Gray90 ["gray90", "grey90"] , stringReps Gray91 ["gray91", "grey91"] , stringReps Gray92 ["gray92", "grey92"] , stringReps Gray93 ["gray93", "grey93"] , stringReps Gray94 ["gray94", "grey94"] , stringReps Gray95 ["gray95", "grey95"] , stringReps Gray96 ["gray96", "grey96"] , stringReps Gray97 ["gray97", "grey97"] , stringReps Gray98 ["gray98", "grey98"] , stringReps Gray99 ["gray99", "grey99"] , stringReps Gray100 ["gray100", "grey100"] , stringRep Green "green" , stringRep Green1 "green1" , stringRep Green2 "green2" , stringRep Green3 "green3" , stringRep Green4 "green4" , stringRep GreenYellow "greenyellow" , stringRep HoneyDew "honeydew" , stringRep HoneyDew1 "honeydew1" , stringRep HoneyDew2 "honeydew2" , stringRep HoneyDew3 "honeydew3" , stringRep HoneyDew4 "honeydew4" , stringRep HotPink "hotpink" , stringRep HotPink1 "hotpink1" , stringRep HotPink2 "hotpink2" , stringRep HotPink3 "hotpink3" , stringRep HotPink4 "hotpink4" , stringRep IndianRed "indianred" , stringRep IndianRed1 "indianred1" , stringRep IndianRed2 "indianred2" , stringRep IndianRed3 "indianred3" , stringRep IndianRed4 "indianred4" , stringRep Indigo "indigo" , stringRep Ivory "ivory" , stringRep Ivory1 "ivory1" , stringRep Ivory2 "ivory2" , stringRep Ivory3 "ivory3" , stringRep Ivory4 "ivory4" , stringRep Khaki "khaki" , stringRep Khaki1 "khaki1" , stringRep Khaki2 "khaki2" , stringRep Khaki3 "khaki3" , stringRep Khaki4 "khaki4" , stringRep Lavender "lavender" , stringRep LavenderBlush "lavenderblush" , stringRep LavenderBlush1 "lavenderblush1" , stringRep LavenderBlush2 "lavenderblush2" , stringRep LavenderBlush3 "lavenderblush3" , stringRep LavenderBlush4 "lavenderblush4" , stringRep LawnGreen "lawngreen" , stringRep LemonChiffon "lemonchiffon" , stringRep LemonChiffon1 "lemonchiffon1" , stringRep LemonChiffon2 "lemonchiffon2" , stringRep LemonChiffon3 "lemonchiffon3" , stringRep LemonChiffon4 "lemonchiffon4" , stringRep LightBlue "lightblue" , stringRep LightBlue1 "lightblue1" , stringRep LightBlue2 "lightblue2" , stringRep LightBlue3 "lightblue3" , stringRep LightBlue4 "lightblue4" , stringRep LightCoral "lightcoral" , stringRep LightCyan "lightcyan" , stringRep LightCyan1 "lightcyan1" , stringRep LightCyan2 "lightcyan2" , stringRep LightCyan3 "lightcyan3" , stringRep LightCyan4 "lightcyan4" , stringRep LightGoldenrod "lightgoldenrod" , stringRep LightGoldenrod1 "lightgoldenrod1" , stringRep LightGoldenrod2 "lightgoldenrod2" , stringRep LightGoldenrod3 "lightgoldenrod3" , stringRep LightGoldenrod4 "lightgoldenrod4" , stringRep LightGoldenrodYellow "lightgoldenrodyellow" , stringReps LightGray ["lightgray", "lightgrey"] , stringRep LightPink "lightpink" , stringRep LightPink1 "lightpink1" , stringRep LightPink2 "lightpink2" , stringRep LightPink3 "lightpink3" , stringRep LightPink4 "lightpink4" , stringRep LightSalmon "lightsalmon" , stringRep LightSalmon1 "lightsalmon1" , stringRep LightSalmon2 "lightsalmon2" , stringRep LightSalmon3 "lightsalmon3" , stringRep LightSalmon4 "lightsalmon4" , stringRep LightSeaGreen "lightseagreen" , stringRep LightSkyBlue "lightskyblue" , stringRep LightSkyBlue1 "lightskyblue1" , stringRep LightSkyBlue2 "lightskyblue2" , stringRep LightSkyBlue3 "lightskyblue3" , stringRep LightSkyBlue4 "lightskyblue4" , stringRep LightSlateBlue "lightslateblue" , stringReps LightSlateGray ["lightslategray", "lightslategrey"] , stringRep LightSteelBlue "lightsteelblue" , stringRep LightSteelBlue1 "lightsteelblue1" , stringRep LightSteelBlue2 "lightsteelblue2" , stringRep LightSteelBlue3 "lightsteelblue3" , stringRep LightSteelBlue4 "lightsteelblue4" , stringRep LightYellow "lightyellow" , stringRep LightYellow1 "lightyellow1" , stringRep LightYellow2 "lightyellow2" , stringRep LightYellow3 "lightyellow3" , stringRep LightYellow4 "lightyellow4" , stringRep LimeGreen "limegreen" , stringRep Linen "linen" , stringRep Magenta "magenta" , stringRep Magenta1 "magenta1" , stringRep Magenta2 "magenta2" , stringRep Magenta3 "magenta3" , stringRep Magenta4 "magenta4" , stringRep Maroon "maroon" , stringRep Maroon1 "maroon1" , stringRep Maroon2 "maroon2" , stringRep Maroon3 "maroon3" , stringRep Maroon4 "maroon4" , stringRep MediumAquamarine "mediumaquamarine" , stringRep MediumBlue "mediumblue" , stringRep MediumOrchid "mediumorchid" , stringRep MediumOrchid1 "mediumorchid1" , stringRep MediumOrchid2 "mediumorchid2" , stringRep MediumOrchid3 "mediumorchid3" , stringRep MediumOrchid4 "mediumorchid4" , stringRep MediumPurple "mediumpurple" , stringRep MediumPurple1 "mediumpurple1" , stringRep MediumPurple2 "mediumpurple2" , stringRep MediumPurple3 "mediumpurple3" , stringRep MediumPurple4 "mediumpurple4" , stringRep MediumSeaGreen "mediumseagreen" , stringRep MediumSlateBlue "mediumslateblue" , stringRep MediumSpringGreen "mediumspringgreen" , stringRep MediumTurquoise "mediumturquoise" , stringRep MediumVioletRed "mediumvioletred" , stringRep MidnightBlue "midnightblue" , stringRep MintCream "mintcream" , stringRep MistyRose "mistyrose" , stringRep MistyRose1 "mistyrose1" , stringRep MistyRose2 "mistyrose2" , stringRep MistyRose3 "mistyrose3" , stringRep MistyRose4 "mistyrose4" , stringRep Moccasin "moccasin" , stringRep NavajoWhite "navajowhite" , stringRep NavajoWhite1 "navajowhite1" , stringRep NavajoWhite2 "navajowhite2" , stringRep NavajoWhite3 "navajowhite3" , stringRep NavajoWhite4 "navajowhite4" , stringRep Navy "navy" , stringRep NavyBlue "navyblue" , stringRep OldLace "oldlace" , stringRep OliveDrab "olivedrab" , stringRep OliveDrab1 "olivedrab1" , stringRep OliveDrab2 "olivedrab2" , stringRep OliveDrab3 "olivedrab3" , stringRep OliveDrab4 "olivedrab4" , stringRep Orange "orange" , stringRep Orange1 "orange1" , stringRep Orange2 "orange2" , stringRep Orange3 "orange3" , stringRep Orange4 "orange4" , stringRep OrangeRed "orangered" , stringRep OrangeRed1 "orangered1" , stringRep OrangeRed2 "orangered2" , stringRep OrangeRed3 "orangered3" , stringRep OrangeRed4 "orangered4" , stringRep Orchid "orchid" , stringRep Orchid1 "orchid1" , stringRep Orchid2 "orchid2" , stringRep Orchid3 "orchid3" , stringRep Orchid4 "orchid4" , stringRep PaleGoldenrod "palegoldenrod" , stringRep PaleGreen "palegreen" , stringRep PaleGreen1 "palegreen1" , stringRep PaleGreen2 "palegreen2" , stringRep PaleGreen3 "palegreen3" , stringRep PaleGreen4 "palegreen4" , stringRep PaleTurquoise "paleturquoise" , stringRep PaleTurquoise1 "paleturquoise1" , stringRep PaleTurquoise2 "paleturquoise2" , stringRep PaleTurquoise3 "paleturquoise3" , stringRep PaleTurquoise4 "paleturquoise4" , stringRep PaleVioletRed "palevioletred" , stringRep PaleVioletRed1 "palevioletred1" , stringRep PaleVioletRed2 "palevioletred2" , stringRep PaleVioletRed3 "palevioletred3" , stringRep PaleVioletRed4 "palevioletred4" , stringRep PapayaWhip "papayawhip" , stringRep PeachPuff "peachpuff" , stringRep PeachPuff1 "peachpuff1" , stringRep PeachPuff2 "peachpuff2" , stringRep PeachPuff3 "peachpuff3" , stringRep PeachPuff4 "peachpuff4" , stringRep Peru "peru" , stringRep Pink "pink" , stringRep Pink1 "pink1" , stringRep Pink2 "pink2" , stringRep Pink3 "pink3" , stringRep Pink4 "pink4" , stringRep Plum "plum" , stringRep Plum1 "plum1" , stringRep Plum2 "plum2" , stringRep Plum3 "plum3" , stringRep Plum4 "plum4" , stringRep PowderBlue "powderblue" , stringRep Purple "purple" , stringRep Purple1 "purple1" , stringRep Purple2 "purple2" , stringRep Purple3 "purple3" , stringRep Purple4 "purple4" , stringRep Red "red" , stringRep Red1 "red1" , stringRep Red2 "red2" , stringRep Red3 "red3" , stringRep Red4 "red4" , stringRep RosyBrown "rosybrown" , stringRep RosyBrown1 "rosybrown1" , stringRep RosyBrown2 "rosybrown2" , stringRep RosyBrown3 "rosybrown3" , stringRep RosyBrown4 "rosybrown4" , stringRep RoyalBlue "royalblue" , stringRep RoyalBlue1 "royalblue1" , stringRep RoyalBlue2 "royalblue2" , stringRep RoyalBlue3 "royalblue3" , stringRep RoyalBlue4 "royalblue4" , stringRep SaddleBrown "saddlebrown" , stringRep Salmon "salmon" , stringRep Salmon1 "salmon1" , stringRep Salmon2 "salmon2" , stringRep Salmon3 "salmon3" , stringRep Salmon4 "salmon4" , stringRep SandyBrown "sandybrown" , stringRep SeaGreen "seagreen" , stringRep SeaGreen1 "seagreen1" , stringRep SeaGreen2 "seagreen2" , stringRep SeaGreen3 "seagreen3" , stringRep SeaGreen4 "seagreen4" , stringRep SeaShell "seashell" , stringRep SeaShell1 "seashell1" , stringRep SeaShell2 "seashell2" , stringRep SeaShell3 "seashell3" , stringRep SeaShell4 "seashell4" , stringRep Sienna "sienna" , stringRep Sienna1 "sienna1" , stringRep Sienna2 "sienna2" , stringRep Sienna3 "sienna3" , stringRep Sienna4 "sienna4" , stringRep SkyBlue "skyblue" , stringRep SkyBlue1 "skyblue1" , stringRep SkyBlue2 "skyblue2" , stringRep SkyBlue3 "skyblue3" , stringRep SkyBlue4 "skyblue4" , stringRep SlateBlue "slateblue" , stringRep SlateBlue1 "slateblue1" , stringRep SlateBlue2 "slateblue2" , stringRep SlateBlue3 "slateblue3" , stringRep SlateBlue4 "slateblue4" , stringReps SlateGray ["slategray", "slategrey"] , stringReps SlateGray1 ["slategray1", "slategrey1"] , stringReps SlateGray2 ["slategray2", "slategrey2"] , stringReps SlateGray3 ["slategray3", "slategrey3"] , stringReps SlateGray4 ["slategray4", "slategrey4"] , stringRep Snow "snow" , stringRep Snow1 "snow1" , stringRep Snow2 "snow2" , stringRep Snow3 "snow3" , stringRep Snow4 "snow4" , stringRep SpringGreen "springgreen" , stringRep SpringGreen1 "springgreen1" , stringRep SpringGreen2 "springgreen2" , stringRep SpringGreen3 "springgreen3" , stringRep SpringGreen4 "springgreen4" , stringRep SteelBlue "steelblue" , stringRep SteelBlue1 "steelblue1" , stringRep SteelBlue2 "steelblue2" , stringRep SteelBlue3 "steelblue3" , stringRep SteelBlue4 "steelblue4" , stringRep Tan "tan" , stringRep Tan1 "tan1" , stringRep Tan2 "tan2" , stringRep Tan3 "tan3" , stringRep Tan4 "tan4" , stringRep Thistle "thistle" , stringRep Thistle1 "thistle1" , stringRep Thistle2 "thistle2" , stringRep Thistle3 "thistle3" , stringRep Thistle4 "thistle4" , stringRep Tomato "tomato" , stringRep Tomato1 "tomato1" , stringRep Tomato2 "tomato2" , stringRep Tomato3 "tomato3" , stringRep Tomato4 "tomato4" , stringReps Transparent ["transparent", "invis", "none"] , stringRep Turquoise "turquoise" , stringRep Turquoise1 "turquoise1" , stringRep Turquoise2 "turquoise2" , stringRep Turquoise3 "turquoise3" , stringRep Turquoise4 "turquoise4" , stringRep Violet "violet" , stringRep VioletRed "violetred" , stringRep VioletRed1 "violetred1" , stringRep VioletRed2 "violetred2" , stringRep VioletRed3 "violetred3" , stringRep VioletRed4 "violetred4" , stringRep Wheat "wheat" , stringRep Wheat1 "wheat1" , stringRep Wheat2 "wheat2" , stringRep Wheat3 "wheat3" , stringRep Wheat4 "wheat4" , stringRep White "white" , stringRep WhiteSmoke "whitesmoke" , stringRep Yellow "yellow" , stringRep Yellow1 "yellow1" , stringRep Yellow2 "yellow2" , stringRep Yellow3 "yellow3" , stringRep Yellow4 "yellow4" , stringRep YellowGreen "yellowgreen" ] -- | Attempt to convert a 'Color' into a 'Colour' value with an alpha -- channel. The use of 'Maybe' is because 'BrewerColor' values -- cannot be converted without knowing which actual 'BrewerName' and -- level color scheme is being used. toColour :: Color -> Maybe (AlphaColour Double) toColour (RGB r g b) = Just . opaque $ sRGB24 r g b toColour (RGBA r g b a) = Just . withOpacity (sRGB24 r g b) $ toOpacity a -- Colour expects the hue to be an angle, so multiply by 360 toColour (HSV h s v) = Just . opaque . uncurryRGB sRGB $ hsv (h*360) s v toColour (X11Color c) = Just $ x11Colour c toColour BrewerColor{} = Nothing toOpacity :: Word8 -> Double toOpacity a = fromIntegral a / maxWord -- | Convert an 'X11Color' to its equivalent 'Colour' value. Note -- that it uses 'AlphaColour' because of 'Transparent'; all other -- 'X11Color' values are completely opaque. x11Colour :: X11Color -> AlphaColour Double x11Colour AliceBlue = opaque $ sRGB24 240 248 255 x11Colour AntiqueWhite = opaque $ sRGB24 250 235 215 x11Colour AntiqueWhite1 = opaque $ sRGB24 255 239 219 x11Colour AntiqueWhite2 = opaque $ sRGB24 238 223 204 x11Colour AntiqueWhite3 = opaque $ sRGB24 205 192 176 x11Colour AntiqueWhite4 = opaque $ sRGB24 139 131 120 x11Colour Aquamarine = opaque $ sRGB24 127 255 212 x11Colour Aquamarine1 = opaque $ sRGB24 127 255 212 x11Colour Aquamarine2 = opaque $ sRGB24 118 238 198 x11Colour Aquamarine3 = opaque $ sRGB24 102 205 170 x11Colour Aquamarine4 = opaque $ sRGB24 69 139 116 x11Colour Azure = opaque $ sRGB24 240 255 255 x11Colour Azure1 = opaque $ sRGB24 240 255 255 x11Colour Azure2 = opaque $ sRGB24 224 238 238 x11Colour Azure3 = opaque $ sRGB24 193 205 205 x11Colour Azure4 = opaque $ sRGB24 131 139 139 x11Colour Beige = opaque $ sRGB24 245 245 220 x11Colour Bisque = opaque $ sRGB24 255 228 196 x11Colour Bisque1 = opaque $ sRGB24 255 228 196 x11Colour Bisque2 = opaque $ sRGB24 238 213 183 x11Colour Bisque3 = opaque $ sRGB24 205 183 158 x11Colour Bisque4 = opaque $ sRGB24 139 125 107 x11Colour Black = opaque $ sRGB24 0 0 0 x11Colour BlanchedAlmond = opaque $ sRGB24 255 235 205 x11Colour Blue = opaque $ sRGB24 0 0 255 x11Colour Blue1 = opaque $ sRGB24 0 0 255 x11Colour Blue2 = opaque $ sRGB24 0 0 238 x11Colour Blue3 = opaque $ sRGB24 0 0 205 x11Colour Blue4 = opaque $ sRGB24 0 0 139 x11Colour BlueViolet = opaque $ sRGB24 138 43 226 x11Colour Brown = opaque $ sRGB24 165 42 42 x11Colour Brown1 = opaque $ sRGB24 255 64 64 x11Colour Brown2 = opaque $ sRGB24 238 59 59 x11Colour Brown3 = opaque $ sRGB24 205 51 51 x11Colour Brown4 = opaque $ sRGB24 139 35 35 x11Colour Burlywood = opaque $ sRGB24 222 184 135 x11Colour Burlywood1 = opaque $ sRGB24 255 211 155 x11Colour Burlywood2 = opaque $ sRGB24 238 197 145 x11Colour Burlywood3 = opaque $ sRGB24 205 170 125 x11Colour Burlywood4 = opaque $ sRGB24 139 115 85 x11Colour CadetBlue = opaque $ sRGB24 95 158 160 x11Colour CadetBlue1 = opaque $ sRGB24 152 245 255 x11Colour CadetBlue2 = opaque $ sRGB24 142 229 238 x11Colour CadetBlue3 = opaque $ sRGB24 122 197 205 x11Colour CadetBlue4 = opaque $ sRGB24 83 134 139 x11Colour Chartreuse = opaque $ sRGB24 127 255 0 x11Colour Chartreuse1 = opaque $ sRGB24 127 255 0 x11Colour Chartreuse2 = opaque $ sRGB24 118 238 0 x11Colour Chartreuse3 = opaque $ sRGB24 102 205 0 x11Colour Chartreuse4 = opaque $ sRGB24 69 139 0 x11Colour Chocolate = opaque $ sRGB24 210 105 30 x11Colour Chocolate1 = opaque $ sRGB24 255 127 36 x11Colour Chocolate2 = opaque $ sRGB24 238 118 33 x11Colour Chocolate3 = opaque $ sRGB24 205 102 29 x11Colour Chocolate4 = opaque $ sRGB24 139 69 19 x11Colour Coral = opaque $ sRGB24 255 127 80 x11Colour Coral1 = opaque $ sRGB24 255 114 86 x11Colour Coral2 = opaque $ sRGB24 238 106 80 x11Colour Coral3 = opaque $ sRGB24 205 91 69 x11Colour Coral4 = opaque $ sRGB24 139 62 47 x11Colour CornFlowerBlue = opaque $ sRGB24 100 149 237 x11Colour CornSilk = opaque $ sRGB24 255 248 220 x11Colour CornSilk1 = opaque $ sRGB24 255 248 220 x11Colour CornSilk2 = opaque $ sRGB24 238 232 205 x11Colour CornSilk3 = opaque $ sRGB24 205 200 177 x11Colour CornSilk4 = opaque $ sRGB24 139 136 120 x11Colour Crimson = opaque $ sRGB24 220 20 60 x11Colour Cyan = opaque $ sRGB24 0 255 255 x11Colour Cyan1 = opaque $ sRGB24 0 255 255 x11Colour Cyan2 = opaque $ sRGB24 0 238 238 x11Colour Cyan3 = opaque $ sRGB24 0 205 205 x11Colour Cyan4 = opaque $ sRGB24 0 139 139 x11Colour DarkGoldenrod = opaque $ sRGB24 184 134 11 x11Colour DarkGoldenrod1 = opaque $ sRGB24 255 185 15 x11Colour DarkGoldenrod2 = opaque $ sRGB24 238 173 14 x11Colour DarkGoldenrod3 = opaque $ sRGB24 205 149 12 x11Colour DarkGoldenrod4 = opaque $ sRGB24 139 101 8 x11Colour DarkGreen = opaque $ sRGB24 0 100 0 x11Colour Darkkhaki = opaque $ sRGB24 189 183 107 x11Colour DarkOliveGreen = opaque $ sRGB24 85 107 47 x11Colour DarkOliveGreen1 = opaque $ sRGB24 202 255 112 x11Colour DarkOliveGreen2 = opaque $ sRGB24 188 238 104 x11Colour DarkOliveGreen3 = opaque $ sRGB24 162 205 90 x11Colour DarkOliveGreen4 = opaque $ sRGB24 110 139 61 x11Colour DarkOrange = opaque $ sRGB24 255 140 0 x11Colour DarkOrange1 = opaque $ sRGB24 255 127 0 x11Colour DarkOrange2 = opaque $ sRGB24 238 118 0 x11Colour DarkOrange3 = opaque $ sRGB24 205 102 0 x11Colour DarkOrange4 = opaque $ sRGB24 139 69 0 x11Colour DarkOrchid = opaque $ sRGB24 153 50 204 x11Colour DarkOrchid1 = opaque $ sRGB24 191 62 255 x11Colour DarkOrchid2 = opaque $ sRGB24 178 58 238 x11Colour DarkOrchid3 = opaque $ sRGB24 154 50 205 x11Colour DarkOrchid4 = opaque $ sRGB24 104 34 139 x11Colour DarkSalmon = opaque $ sRGB24 233 150 122 x11Colour DarkSeaGreen = opaque $ sRGB24 143 188 143 x11Colour DarkSeaGreen1 = opaque $ sRGB24 193 255 193 x11Colour DarkSeaGreen2 = opaque $ sRGB24 180 238 180 x11Colour DarkSeaGreen3 = opaque $ sRGB24 155 205 155 x11Colour DarkSeaGreen4 = opaque $ sRGB24 105 139 105 x11Colour DarkSlateBlue = opaque $ sRGB24 72 61 139 x11Colour DarkSlateGray = opaque $ sRGB24 47 79 79 x11Colour DarkSlateGray1 = opaque $ sRGB24 151 255 255 x11Colour DarkSlateGray2 = opaque $ sRGB24 141 238 238 x11Colour DarkSlateGray3 = opaque $ sRGB24 121 205 205 x11Colour DarkSlateGray4 = opaque $ sRGB24 82 139 139 x11Colour DarkTurquoise = opaque $ sRGB24 0 206 209 x11Colour DarkViolet = opaque $ sRGB24 148 0 211 x11Colour DeepPink = opaque $ sRGB24 255 20 147 x11Colour DeepPink1 = opaque $ sRGB24 255 20 147 x11Colour DeepPink2 = opaque $ sRGB24 238 18 137 x11Colour DeepPink3 = opaque $ sRGB24 205 16 118 x11Colour DeepPink4 = opaque $ sRGB24 139 10 80 x11Colour DeepSkyBlue = opaque $ sRGB24 0 191 255 x11Colour DeepSkyBlue1 = opaque $ sRGB24 0 191 255 x11Colour DeepSkyBlue2 = opaque $ sRGB24 0 178 238 x11Colour DeepSkyBlue3 = opaque $ sRGB24 0 154 205 x11Colour DeepSkyBlue4 = opaque $ sRGB24 0 104 139 x11Colour DimGray = opaque $ sRGB24 105 105 105 x11Colour DodgerBlue = opaque $ sRGB24 30 144 255 x11Colour DodgerBlue1 = opaque $ sRGB24 30 144 255 x11Colour DodgerBlue2 = opaque $ sRGB24 28 134 238 x11Colour DodgerBlue3 = opaque $ sRGB24 24 116 205 x11Colour DodgerBlue4 = opaque $ sRGB24 16 78 139 x11Colour Firebrick = opaque $ sRGB24 178 34 34 x11Colour Firebrick1 = opaque $ sRGB24 255 48 48 x11Colour Firebrick2 = opaque $ sRGB24 238 44 44 x11Colour Firebrick3 = opaque $ sRGB24 205 38 38 x11Colour Firebrick4 = opaque $ sRGB24 139 26 26 x11Colour FloralWhite = opaque $ sRGB24 255 250 240 x11Colour ForestGreen = opaque $ sRGB24 34 139 34 x11Colour Gainsboro = opaque $ sRGB24 220 220 220 x11Colour GhostWhite = opaque $ sRGB24 248 248 255 x11Colour Gold = opaque $ sRGB24 255 215 0 x11Colour Gold1 = opaque $ sRGB24 255 215 0 x11Colour Gold2 = opaque $ sRGB24 238 201 0 x11Colour Gold3 = opaque $ sRGB24 205 173 0 x11Colour Gold4 = opaque $ sRGB24 139 117 0 x11Colour Goldenrod = opaque $ sRGB24 218 165 32 x11Colour Goldenrod1 = opaque $ sRGB24 255 193 37 x11Colour Goldenrod2 = opaque $ sRGB24 238 180 34 x11Colour Goldenrod3 = opaque $ sRGB24 205 155 29 x11Colour Goldenrod4 = opaque $ sRGB24 139 105 20 x11Colour Gray = opaque $ sRGB24 192 192 192 x11Colour Gray0 = opaque $ sRGB24 0 0 0 x11Colour Gray1 = opaque $ sRGB24 3 3 3 x11Colour Gray2 = opaque $ sRGB24 5 5 5 x11Colour Gray3 = opaque $ sRGB24 8 8 8 x11Colour Gray4 = opaque $ sRGB24 10 10 10 x11Colour Gray5 = opaque $ sRGB24 13 13 13 x11Colour Gray6 = opaque $ sRGB24 15 15 15 x11Colour Gray7 = opaque $ sRGB24 18 18 18 x11Colour Gray8 = opaque $ sRGB24 20 20 20 x11Colour Gray9 = opaque $ sRGB24 23 23 23 x11Colour Gray10 = opaque $ sRGB24 26 26 26 x11Colour Gray11 = opaque $ sRGB24 28 28 28 x11Colour Gray12 = opaque $ sRGB24 31 31 31 x11Colour Gray13 = opaque $ sRGB24 33 33 33 x11Colour Gray14 = opaque $ sRGB24 36 36 36 x11Colour Gray15 = opaque $ sRGB24 38 38 38 x11Colour Gray16 = opaque $ sRGB24 41 41 41 x11Colour Gray17 = opaque $ sRGB24 43 43 43 x11Colour Gray18 = opaque $ sRGB24 46 46 46 x11Colour Gray19 = opaque $ sRGB24 48 48 48 x11Colour Gray20 = opaque $ sRGB24 51 51 51 x11Colour Gray21 = opaque $ sRGB24 54 54 54 x11Colour Gray22 = opaque $ sRGB24 56 56 56 x11Colour Gray23 = opaque $ sRGB24 59 59 59 x11Colour Gray24 = opaque $ sRGB24 61 61 61 x11Colour Gray25 = opaque $ sRGB24 64 64 64 x11Colour Gray26 = opaque $ sRGB24 66 66 66 x11Colour Gray27 = opaque $ sRGB24 69 69 69 x11Colour Gray28 = opaque $ sRGB24 71 71 71 x11Colour Gray29 = opaque $ sRGB24 74 74 74 x11Colour Gray30 = opaque $ sRGB24 77 77 77 x11Colour Gray31 = opaque $ sRGB24 79 79 79 x11Colour Gray32 = opaque $ sRGB24 82 82 82 x11Colour Gray33 = opaque $ sRGB24 84 84 84 x11Colour Gray34 = opaque $ sRGB24 87 87 87 x11Colour Gray35 = opaque $ sRGB24 89 89 89 x11Colour Gray36 = opaque $ sRGB24 92 92 92 x11Colour Gray37 = opaque $ sRGB24 94 94 94 x11Colour Gray38 = opaque $ sRGB24 97 97 97 x11Colour Gray39 = opaque $ sRGB24 99 99 99 x11Colour Gray40 = opaque $ sRGB24 102 102 102 x11Colour Gray41 = opaque $ sRGB24 105 105 105 x11Colour Gray42 = opaque $ sRGB24 107 107 107 x11Colour Gray43 = opaque $ sRGB24 110 110 110 x11Colour Gray44 = opaque $ sRGB24 112 112 112 x11Colour Gray45 = opaque $ sRGB24 115 115 115 x11Colour Gray46 = opaque $ sRGB24 117 117 117 x11Colour Gray47 = opaque $ sRGB24 120 120 120 x11Colour Gray48 = opaque $ sRGB24 122 122 122 x11Colour Gray49 = opaque $ sRGB24 125 125 125 x11Colour Gray50 = opaque $ sRGB24 127 127 127 x11Colour Gray51 = opaque $ sRGB24 130 130 130 x11Colour Gray52 = opaque $ sRGB24 133 133 133 x11Colour Gray53 = opaque $ sRGB24 135 135 135 x11Colour Gray54 = opaque $ sRGB24 138 138 138 x11Colour Gray55 = opaque $ sRGB24 140 140 140 x11Colour Gray56 = opaque $ sRGB24 143 143 143 x11Colour Gray57 = opaque $ sRGB24 145 145 145 x11Colour Gray58 = opaque $ sRGB24 148 148 148 x11Colour Gray59 = opaque $ sRGB24 150 150 150 x11Colour Gray60 = opaque $ sRGB24 153 153 153 x11Colour Gray61 = opaque $ sRGB24 156 156 156 x11Colour Gray62 = opaque $ sRGB24 158 158 158 x11Colour Gray63 = opaque $ sRGB24 161 161 161 x11Colour Gray64 = opaque $ sRGB24 163 163 163 x11Colour Gray65 = opaque $ sRGB24 166 166 166 x11Colour Gray66 = opaque $ sRGB24 168 168 168 x11Colour Gray67 = opaque $ sRGB24 171 171 171 x11Colour Gray68 = opaque $ sRGB24 173 173 173 x11Colour Gray69 = opaque $ sRGB24 176 176 176 x11Colour Gray70 = opaque $ sRGB24 179 179 179 x11Colour Gray71 = opaque $ sRGB24 181 181 181 x11Colour Gray72 = opaque $ sRGB24 184 184 184 x11Colour Gray73 = opaque $ sRGB24 186 186 186 x11Colour Gray74 = opaque $ sRGB24 189 189 189 x11Colour Gray75 = opaque $ sRGB24 191 191 191 x11Colour Gray76 = opaque $ sRGB24 194 194 194 x11Colour Gray77 = opaque $ sRGB24 196 196 196 x11Colour Gray78 = opaque $ sRGB24 199 199 199 x11Colour Gray79 = opaque $ sRGB24 201 201 201 x11Colour Gray80 = opaque $ sRGB24 204 204 204 x11Colour Gray81 = opaque $ sRGB24 207 207 207 x11Colour Gray82 = opaque $ sRGB24 209 209 209 x11Colour Gray83 = opaque $ sRGB24 212 212 212 x11Colour Gray84 = opaque $ sRGB24 214 214 214 x11Colour Gray85 = opaque $ sRGB24 217 217 217 x11Colour Gray86 = opaque $ sRGB24 219 219 219 x11Colour Gray87 = opaque $ sRGB24 222 222 222 x11Colour Gray88 = opaque $ sRGB24 224 224 224 x11Colour Gray89 = opaque $ sRGB24 227 227 227 x11Colour Gray90 = opaque $ sRGB24 229 229 229 x11Colour Gray91 = opaque $ sRGB24 232 232 232 x11Colour Gray92 = opaque $ sRGB24 235 235 235 x11Colour Gray93 = opaque $ sRGB24 237 237 237 x11Colour Gray94 = opaque $ sRGB24 240 240 240 x11Colour Gray95 = opaque $ sRGB24 242 242 242 x11Colour Gray96 = opaque $ sRGB24 245 245 245 x11Colour Gray97 = opaque $ sRGB24 247 247 247 x11Colour Gray98 = opaque $ sRGB24 250 250 250 x11Colour Gray99 = opaque $ sRGB24 252 252 252 x11Colour Gray100 = opaque $ sRGB24 255 255 255 x11Colour Green = opaque $ sRGB24 0 255 0 x11Colour Green1 = opaque $ sRGB24 0 255 0 x11Colour Green2 = opaque $ sRGB24 0 238 0 x11Colour Green3 = opaque $ sRGB24 0 205 0 x11Colour Green4 = opaque $ sRGB24 0 139 0 x11Colour GreenYellow = opaque $ sRGB24 173 255 47 x11Colour HoneyDew = opaque $ sRGB24 240 255 240 x11Colour HoneyDew1 = opaque $ sRGB24 240 255 240 x11Colour HoneyDew2 = opaque $ sRGB24 224 238 224 x11Colour HoneyDew3 = opaque $ sRGB24 193 205 193 x11Colour HoneyDew4 = opaque $ sRGB24 131 139 131 x11Colour HotPink = opaque $ sRGB24 255 105 180 x11Colour HotPink1 = opaque $ sRGB24 255 110 180 x11Colour HotPink2 = opaque $ sRGB24 238 106 167 x11Colour HotPink3 = opaque $ sRGB24 205 96 144 x11Colour HotPink4 = opaque $ sRGB24 139 58 98 x11Colour IndianRed = opaque $ sRGB24 205 92 92 x11Colour IndianRed1 = opaque $ sRGB24 255 106 106 x11Colour IndianRed2 = opaque $ sRGB24 238 99 99 x11Colour IndianRed3 = opaque $ sRGB24 205 85 85 x11Colour IndianRed4 = opaque $ sRGB24 139 58 58 x11Colour Indigo = opaque $ sRGB24 75 0 130 x11Colour Ivory = opaque $ sRGB24 255 255 240 x11Colour Ivory1 = opaque $ sRGB24 255 255 240 x11Colour Ivory2 = opaque $ sRGB24 238 238 224 x11Colour Ivory3 = opaque $ sRGB24 205 205 193 x11Colour Ivory4 = opaque $ sRGB24 139 139 131 x11Colour Khaki = opaque $ sRGB24 240 230 140 x11Colour Khaki1 = opaque $ sRGB24 255 246 143 x11Colour Khaki2 = opaque $ sRGB24 238 230 133 x11Colour Khaki3 = opaque $ sRGB24 205 198 115 x11Colour Khaki4 = opaque $ sRGB24 139 134 78 x11Colour Lavender = opaque $ sRGB24 230 230 250 x11Colour LavenderBlush = opaque $ sRGB24 255 240 245 x11Colour LavenderBlush1 = opaque $ sRGB24 255 240 245 x11Colour LavenderBlush2 = opaque $ sRGB24 238 224 229 x11Colour LavenderBlush3 = opaque $ sRGB24 205 193 197 x11Colour LavenderBlush4 = opaque $ sRGB24 139 131 134 x11Colour LawnGreen = opaque $ sRGB24 124 252 0 x11Colour LemonChiffon = opaque $ sRGB24 255 250 205 x11Colour LemonChiffon1 = opaque $ sRGB24 255 250 205 x11Colour LemonChiffon2 = opaque $ sRGB24 238 233 191 x11Colour LemonChiffon3 = opaque $ sRGB24 205 201 165 x11Colour LemonChiffon4 = opaque $ sRGB24 139 137 112 x11Colour LightBlue = opaque $ sRGB24 173 216 230 x11Colour LightBlue1 = opaque $ sRGB24 191 239 255 x11Colour LightBlue2 = opaque $ sRGB24 178 223 238 x11Colour LightBlue3 = opaque $ sRGB24 154 192 205 x11Colour LightBlue4 = opaque $ sRGB24 104 131 139 x11Colour LightCoral = opaque $ sRGB24 240 128 128 x11Colour LightCyan = opaque $ sRGB24 224 255 255 x11Colour LightCyan1 = opaque $ sRGB24 224 255 255 x11Colour LightCyan2 = opaque $ sRGB24 209 238 238 x11Colour LightCyan3 = opaque $ sRGB24 180 205 205 x11Colour LightCyan4 = opaque $ sRGB24 122 139 139 x11Colour LightGoldenrod = opaque $ sRGB24 238 221 130 x11Colour LightGoldenrod1 = opaque $ sRGB24 255 236 139 x11Colour LightGoldenrod2 = opaque $ sRGB24 238 220 130 x11Colour LightGoldenrod3 = opaque $ sRGB24 205 190 112 x11Colour LightGoldenrod4 = opaque $ sRGB24 139 129 76 x11Colour LightGoldenrodYellow = opaque $ sRGB24 250 250 210 x11Colour LightGray = opaque $ sRGB24 211 211 211 x11Colour LightPink = opaque $ sRGB24 255 182 193 x11Colour LightPink1 = opaque $ sRGB24 255 174 185 x11Colour LightPink2 = opaque $ sRGB24 238 162 173 x11Colour LightPink3 = opaque $ sRGB24 205 140 149 x11Colour LightPink4 = opaque $ sRGB24 139 95 101 x11Colour LightSalmon = opaque $ sRGB24 255 160 122 x11Colour LightSalmon1 = opaque $ sRGB24 255 160 122 x11Colour LightSalmon2 = opaque $ sRGB24 238 149 114 x11Colour LightSalmon3 = opaque $ sRGB24 205 129 98 x11Colour LightSalmon4 = opaque $ sRGB24 139 87 66 x11Colour LightSeaGreen = opaque $ sRGB24 32 178 170 x11Colour LightSkyBlue = opaque $ sRGB24 135 206 250 x11Colour LightSkyBlue1 = opaque $ sRGB24 176 226 255 x11Colour LightSkyBlue2 = opaque $ sRGB24 164 211 238 x11Colour LightSkyBlue3 = opaque $ sRGB24 141 182 205 x11Colour LightSkyBlue4 = opaque $ sRGB24 96 123 139 x11Colour LightSlateBlue = opaque $ sRGB24 132 112 255 x11Colour LightSlateGray = opaque $ sRGB24 119 136 153 x11Colour LightSteelBlue = opaque $ sRGB24 176 196 222 x11Colour LightSteelBlue1 = opaque $ sRGB24 202 225 255 x11Colour LightSteelBlue2 = opaque $ sRGB24 188 210 238 x11Colour LightSteelBlue3 = opaque $ sRGB24 162 181 205 x11Colour LightSteelBlue4 = opaque $ sRGB24 110 123 139 x11Colour LightYellow = opaque $ sRGB24 255 255 224 x11Colour LightYellow1 = opaque $ sRGB24 255 255 224 x11Colour LightYellow2 = opaque $ sRGB24 238 238 209 x11Colour LightYellow3 = opaque $ sRGB24 205 205 180 x11Colour LightYellow4 = opaque $ sRGB24 139 139 122 x11Colour LimeGreen = opaque $ sRGB24 50 205 50 x11Colour Linen = opaque $ sRGB24 250 240 230 x11Colour Magenta = opaque $ sRGB24 255 0 255 x11Colour Magenta1 = opaque $ sRGB24 255 0 255 x11Colour Magenta2 = opaque $ sRGB24 238 0 238 x11Colour Magenta3 = opaque $ sRGB24 205 0 205 x11Colour Magenta4 = opaque $ sRGB24 139 0 139 x11Colour Maroon = opaque $ sRGB24 176 48 96 x11Colour Maroon1 = opaque $ sRGB24 255 52 179 x11Colour Maroon2 = opaque $ sRGB24 238 48 167 x11Colour Maroon3 = opaque $ sRGB24 205 41 144 x11Colour Maroon4 = opaque $ sRGB24 139 28 98 x11Colour MediumAquamarine = opaque $ sRGB24 102 205 170 x11Colour MediumBlue = opaque $ sRGB24 0 0 205 x11Colour MediumOrchid = opaque $ sRGB24 186 85 211 x11Colour MediumOrchid1 = opaque $ sRGB24 224 102 255 x11Colour MediumOrchid2 = opaque $ sRGB24 209 95 238 x11Colour MediumOrchid3 = opaque $ sRGB24 180 82 205 x11Colour MediumOrchid4 = opaque $ sRGB24 122 55 139 x11Colour MediumPurple = opaque $ sRGB24 147 112 219 x11Colour MediumPurple1 = opaque $ sRGB24 171 130 255 x11Colour MediumPurple2 = opaque $ sRGB24 159 121 238 x11Colour MediumPurple3 = opaque $ sRGB24 137 104 205 x11Colour MediumPurple4 = opaque $ sRGB24 93 71 139 x11Colour MediumSeaGreen = opaque $ sRGB24 60 179 113 x11Colour MediumSlateBlue = opaque $ sRGB24 123 104 238 x11Colour MediumSpringGreen = opaque $ sRGB24 0 250 154 x11Colour MediumTurquoise = opaque $ sRGB24 72 209 204 x11Colour MediumVioletRed = opaque $ sRGB24 199 21 133 x11Colour MidnightBlue = opaque $ sRGB24 25 25 112 x11Colour MintCream = opaque $ sRGB24 245 255 250 x11Colour MistyRose = opaque $ sRGB24 255 228 225 x11Colour MistyRose1 = opaque $ sRGB24 255 228 225 x11Colour MistyRose2 = opaque $ sRGB24 238 213 210 x11Colour MistyRose3 = opaque $ sRGB24 205 183 181 x11Colour MistyRose4 = opaque $ sRGB24 139 125 123 x11Colour Moccasin = opaque $ sRGB24 255 228 181 x11Colour NavajoWhite = opaque $ sRGB24 255 222 173 x11Colour NavajoWhite1 = opaque $ sRGB24 255 222 173 x11Colour NavajoWhite2 = opaque $ sRGB24 238 207 161 x11Colour NavajoWhite3 = opaque $ sRGB24 205 179 139 x11Colour NavajoWhite4 = opaque $ sRGB24 139 121 94 x11Colour Navy = opaque $ sRGB24 0 0 128 x11Colour NavyBlue = opaque $ sRGB24 0 0 128 x11Colour OldLace = opaque $ sRGB24 253 245 230 x11Colour OliveDrab = opaque $ sRGB24 107 142 35 x11Colour OliveDrab1 = opaque $ sRGB24 192 255 62 x11Colour OliveDrab2 = opaque $ sRGB24 179 238 58 x11Colour OliveDrab3 = opaque $ sRGB24 154 205 50 x11Colour OliveDrab4 = opaque $ sRGB24 105 139 34 x11Colour Orange = opaque $ sRGB24 255 165 0 x11Colour Orange1 = opaque $ sRGB24 255 165 0 x11Colour Orange2 = opaque $ sRGB24 238 154 0 x11Colour Orange3 = opaque $ sRGB24 205 133 0 x11Colour Orange4 = opaque $ sRGB24 139 90 0 x11Colour OrangeRed = opaque $ sRGB24 255 69 0 x11Colour OrangeRed1 = opaque $ sRGB24 255 69 0 x11Colour OrangeRed2 = opaque $ sRGB24 238 64 0 x11Colour OrangeRed3 = opaque $ sRGB24 205 55 0 x11Colour OrangeRed4 = opaque $ sRGB24 139 37 0 x11Colour Orchid = opaque $ sRGB24 218 112 214 x11Colour Orchid1 = opaque $ sRGB24 255 131 250 x11Colour Orchid2 = opaque $ sRGB24 238 122 233 x11Colour Orchid3 = opaque $ sRGB24 205 105 201 x11Colour Orchid4 = opaque $ sRGB24 139 71 137 x11Colour PaleGoldenrod = opaque $ sRGB24 238 232 170 x11Colour PaleGreen = opaque $ sRGB24 152 251 152 x11Colour PaleGreen1 = opaque $ sRGB24 154 255 154 x11Colour PaleGreen2 = opaque $ sRGB24 144 238 144 x11Colour PaleGreen3 = opaque $ sRGB24 124 205 124 x11Colour PaleGreen4 = opaque $ sRGB24 84 139 84 x11Colour PaleTurquoise = opaque $ sRGB24 175 238 238 x11Colour PaleTurquoise1 = opaque $ sRGB24 187 255 255 x11Colour PaleTurquoise2 = opaque $ sRGB24 174 238 238 x11Colour PaleTurquoise3 = opaque $ sRGB24 150 205 205 x11Colour PaleTurquoise4 = opaque $ sRGB24 102 139 139 x11Colour PaleVioletRed = opaque $ sRGB24 219 112 147 x11Colour PaleVioletRed1 = opaque $ sRGB24 255 130 171 x11Colour PaleVioletRed2 = opaque $ sRGB24 238 121 159 x11Colour PaleVioletRed3 = opaque $ sRGB24 205 104 137 x11Colour PaleVioletRed4 = opaque $ sRGB24 139 71 93 x11Colour PapayaWhip = opaque $ sRGB24 255 239 213 x11Colour PeachPuff = opaque $ sRGB24 255 218 185 x11Colour PeachPuff1 = opaque $ sRGB24 255 218 185 x11Colour PeachPuff2 = opaque $ sRGB24 238 203 173 x11Colour PeachPuff3 = opaque $ sRGB24 205 175 149 x11Colour PeachPuff4 = opaque $ sRGB24 139 119 101 x11Colour Peru = opaque $ sRGB24 205 133 63 x11Colour Pink = opaque $ sRGB24 255 192 203 x11Colour Pink1 = opaque $ sRGB24 255 181 197 x11Colour Pink2 = opaque $ sRGB24 238 169 184 x11Colour Pink3 = opaque $ sRGB24 205 145 158 x11Colour Pink4 = opaque $ sRGB24 139 99 108 x11Colour Plum = opaque $ sRGB24 221 160 221 x11Colour Plum1 = opaque $ sRGB24 255 187 255 x11Colour Plum2 = opaque $ sRGB24 238 174 238 x11Colour Plum3 = opaque $ sRGB24 205 150 205 x11Colour Plum4 = opaque $ sRGB24 139 102 139 x11Colour PowderBlue = opaque $ sRGB24 176 224 230 x11Colour Purple = opaque $ sRGB24 160 32 240 x11Colour Purple1 = opaque $ sRGB24 155 48 255 x11Colour Purple2 = opaque $ sRGB24 145 44 238 x11Colour Purple3 = opaque $ sRGB24 125 38 205 x11Colour Purple4 = opaque $ sRGB24 85 26 139 x11Colour Red = opaque $ sRGB24 255 0 0 x11Colour Red1 = opaque $ sRGB24 255 0 0 x11Colour Red2 = opaque $ sRGB24 238 0 0 x11Colour Red3 = opaque $ sRGB24 205 0 0 x11Colour Red4 = opaque $ sRGB24 139 0 0 x11Colour RosyBrown = opaque $ sRGB24 188 143 143 x11Colour RosyBrown1 = opaque $ sRGB24 255 193 193 x11Colour RosyBrown2 = opaque $ sRGB24 238 180 180 x11Colour RosyBrown3 = opaque $ sRGB24 205 155 155 x11Colour RosyBrown4 = opaque $ sRGB24 139 105 105 x11Colour RoyalBlue = opaque $ sRGB24 65 105 225 x11Colour RoyalBlue1 = opaque $ sRGB24 72 118 255 x11Colour RoyalBlue2 = opaque $ sRGB24 67 110 238 x11Colour RoyalBlue3 = opaque $ sRGB24 58 95 205 x11Colour RoyalBlue4 = opaque $ sRGB24 39 64 139 x11Colour SaddleBrown = opaque $ sRGB24 139 69 19 x11Colour Salmon = opaque $ sRGB24 250 128 114 x11Colour Salmon1 = opaque $ sRGB24 255 140 105 x11Colour Salmon2 = opaque $ sRGB24 238 130 98 x11Colour Salmon3 = opaque $ sRGB24 205 112 84 x11Colour Salmon4 = opaque $ sRGB24 139 76 57 x11Colour SandyBrown = opaque $ sRGB24 244 164 96 x11Colour SeaGreen = opaque $ sRGB24 46 139 87 x11Colour SeaGreen1 = opaque $ sRGB24 84 255 159 x11Colour SeaGreen2 = opaque $ sRGB24 78 238 148 x11Colour SeaGreen3 = opaque $ sRGB24 67 205 128 x11Colour SeaGreen4 = opaque $ sRGB24 46 139 87 x11Colour SeaShell = opaque $ sRGB24 255 245 238 x11Colour SeaShell1 = opaque $ sRGB24 255 245 238 x11Colour SeaShell2 = opaque $ sRGB24 238 229 222 x11Colour SeaShell3 = opaque $ sRGB24 205 197 191 x11Colour SeaShell4 = opaque $ sRGB24 139 134 130 x11Colour Sienna = opaque $ sRGB24 160 82 45 x11Colour Sienna1 = opaque $ sRGB24 255 130 71 x11Colour Sienna2 = opaque $ sRGB24 238 121 66 x11Colour Sienna3 = opaque $ sRGB24 205 104 57 x11Colour Sienna4 = opaque $ sRGB24 139 71 38 x11Colour SkyBlue = opaque $ sRGB24 135 206 235 x11Colour SkyBlue1 = opaque $ sRGB24 135 206 255 x11Colour SkyBlue2 = opaque $ sRGB24 126 192 238 x11Colour SkyBlue3 = opaque $ sRGB24 108 166 205 x11Colour SkyBlue4 = opaque $ sRGB24 74 112 139 x11Colour SlateBlue = opaque $ sRGB24 106 90 205 x11Colour SlateBlue1 = opaque $ sRGB24 131 111 255 x11Colour SlateBlue2 = opaque $ sRGB24 122 103 238 x11Colour SlateBlue3 = opaque $ sRGB24 105 89 205 x11Colour SlateBlue4 = opaque $ sRGB24 71 60 139 x11Colour SlateGray = opaque $ sRGB24 112 128 144 x11Colour SlateGray1 = opaque $ sRGB24 198 226 255 x11Colour SlateGray2 = opaque $ sRGB24 185 211 238 x11Colour SlateGray3 = opaque $ sRGB24 159 182 205 x11Colour SlateGray4 = opaque $ sRGB24 108 123 139 x11Colour Snow = opaque $ sRGB24 255 250 250 x11Colour Snow1 = opaque $ sRGB24 255 250 250 x11Colour Snow2 = opaque $ sRGB24 238 233 233 x11Colour Snow3 = opaque $ sRGB24 205 201 201 x11Colour Snow4 = opaque $ sRGB24 139 137 137 x11Colour SpringGreen = opaque $ sRGB24 0 255 127 x11Colour SpringGreen1 = opaque $ sRGB24 0 255 127 x11Colour SpringGreen2 = opaque $ sRGB24 0 238 118 x11Colour SpringGreen3 = opaque $ sRGB24 0 205 102 x11Colour SpringGreen4 = opaque $ sRGB24 0 139 69 x11Colour SteelBlue = opaque $ sRGB24 70 130 180 x11Colour SteelBlue1 = opaque $ sRGB24 99 184 255 x11Colour SteelBlue2 = opaque $ sRGB24 92 172 238 x11Colour SteelBlue3 = opaque $ sRGB24 79 148 205 x11Colour SteelBlue4 = opaque $ sRGB24 54 100 139 x11Colour Tan = opaque $ sRGB24 210 180 140 x11Colour Tan1 = opaque $ sRGB24 255 165 79 x11Colour Tan2 = opaque $ sRGB24 238 154 73 x11Colour Tan3 = opaque $ sRGB24 205 133 63 x11Colour Tan4 = opaque $ sRGB24 139 90 43 x11Colour Thistle = opaque $ sRGB24 216 191 216 x11Colour Thistle1 = opaque $ sRGB24 255 225 255 x11Colour Thistle2 = opaque $ sRGB24 238 210 238 x11Colour Thistle3 = opaque $ sRGB24 205 181 205 x11Colour Thistle4 = opaque $ sRGB24 139 123 139 x11Colour Tomato = opaque $ sRGB24 255 99 71 x11Colour Tomato1 = opaque $ sRGB24 255 99 71 x11Colour Tomato2 = opaque $ sRGB24 238 92 66 x11Colour Tomato3 = opaque $ sRGB24 205 79 57 x11Colour Tomato4 = opaque $ sRGB24 139 54 38 x11Colour Transparent = transparent x11Colour Turquoise = opaque $ sRGB24 64 224 208 x11Colour Turquoise1 = opaque $ sRGB24 0 245 255 x11Colour Turquoise2 = opaque $ sRGB24 0 229 238 x11Colour Turquoise3 = opaque $ sRGB24 0 197 205 x11Colour Turquoise4 = opaque $ sRGB24 0 134 139 x11Colour Violet = opaque $ sRGB24 238 130 238 x11Colour VioletRed = opaque $ sRGB24 208 32 144 x11Colour VioletRed1 = opaque $ sRGB24 255 62 150 x11Colour VioletRed2 = opaque $ sRGB24 238 58 140 x11Colour VioletRed3 = opaque $ sRGB24 205 50 120 x11Colour VioletRed4 = opaque $ sRGB24 139 34 82 x11Colour Wheat = opaque $ sRGB24 245 222 179 x11Colour Wheat1 = opaque $ sRGB24 255 231 186 x11Colour Wheat2 = opaque $ sRGB24 238 216 174 x11Colour Wheat3 = opaque $ sRGB24 205 186 150 x11Colour Wheat4 = opaque $ sRGB24 139 126 102 x11Colour White = opaque $ sRGB24 255 255 255 x11Colour WhiteSmoke = opaque $ sRGB24 245 245 245 x11Colour Yellow = opaque $ sRGB24 255 255 0 x11Colour Yellow1 = opaque $ sRGB24 255 255 0 x11Colour Yellow2 = opaque $ sRGB24 238 238 0 x11Colour Yellow3 = opaque $ sRGB24 205 205 0 x11Colour Yellow4 = opaque $ sRGB24 139 139 0 x11Colour YellowGreen = opaque $ sRGB24 154 205 50 -- | Convert a 'Colour' value to an 'RGB' 'Color'. fromColour :: Colour Double -> Color fromColour = uncurryRGB RGB . toSRGB24 -- | Convert an 'AlphaColour' to an 'RGBA' 'Color'. The exception to -- this is for any 'AlphaColour' which has @alphaChannel ac == 0@; -- these are converted to @X11Color 'Transparent'@ (note that the -- 'Show' instance for such an 'AlphaColour' is @\"transparent\"@). fromAColour :: AlphaColour Double -> Color fromAColour ac | a == 0 = X11Color Transparent | otherwise = rgb $ round a' where a = alphaChannel ac a' = a * maxWord rgb = uncurryRGB RGBA $ toSRGB24 colour colour = darken (recip a) (ac `over` black) -- | The 'maxBound' of a 'Word8' value. maxWord :: Double maxWord = fromIntegral (maxBound :: Word8)