packages feed

graphviz 2999.12.0.4 → 2999.13.0.0

raw patch · 52 files changed

+6625/−5227 lines, 52 filesdep +criteriondep +deepseqdep +graphvizdep −extensible-exceptionsdep ~basedep ~bytestringdep ~colourPVP ok

version bump matches the API change (PVP)

Dependencies added: criterion, deepseq, graphviz

Dependencies removed: extensible-exceptions

Dependency ranges changed: base, bytestring, colour, dlist, fgl, polyparse, transformers

API changes (from Hackage documentation)

- Data.GraphViz.Attributes: instance Labellable HtmlLabel
- Data.GraphViz.Attributes: instance Labellable HtmlTable
- Data.GraphViz.Attributes: instance Labellable HtmlText
- Data.GraphViz.Attributes.Colors: Accent :: BrewerName
- Data.GraphViz.Attributes.Colors: AliceBlue :: X11Color
- Data.GraphViz.Attributes.Colors: AntiqueWhite :: X11Color
- Data.GraphViz.Attributes.Colors: AntiqueWhite1 :: X11Color
- Data.GraphViz.Attributes.Colors: AntiqueWhite2 :: X11Color
- Data.GraphViz.Attributes.Colors: AntiqueWhite3 :: X11Color
- Data.GraphViz.Attributes.Colors: AntiqueWhite4 :: X11Color
- Data.GraphViz.Attributes.Colors: Aquamarine :: X11Color
- Data.GraphViz.Attributes.Colors: Aquamarine1 :: X11Color
- Data.GraphViz.Attributes.Colors: Aquamarine2 :: X11Color
- Data.GraphViz.Attributes.Colors: Aquamarine3 :: X11Color
- Data.GraphViz.Attributes.Colors: Aquamarine4 :: X11Color
- Data.GraphViz.Attributes.Colors: Azure :: X11Color
- Data.GraphViz.Attributes.Colors: Azure1 :: X11Color
- Data.GraphViz.Attributes.Colors: Azure2 :: X11Color
- Data.GraphViz.Attributes.Colors: Azure3 :: X11Color
- Data.GraphViz.Attributes.Colors: Azure4 :: X11Color
- Data.GraphViz.Attributes.Colors: BScheme :: BrewerName -> Word8 -> BrewerScheme
- Data.GraphViz.Attributes.Colors: Beige :: X11Color
- Data.GraphViz.Attributes.Colors: Bisque :: X11Color
- Data.GraphViz.Attributes.Colors: Bisque1 :: X11Color
- Data.GraphViz.Attributes.Colors: Bisque2 :: X11Color
- Data.GraphViz.Attributes.Colors: Bisque3 :: X11Color
- Data.GraphViz.Attributes.Colors: Bisque4 :: X11Color
- Data.GraphViz.Attributes.Colors: Black :: X11Color
- Data.GraphViz.Attributes.Colors: BlanchedAlmond :: X11Color
- Data.GraphViz.Attributes.Colors: Blue :: X11Color
- Data.GraphViz.Attributes.Colors: Blue1 :: X11Color
- Data.GraphViz.Attributes.Colors: Blue2 :: X11Color
- Data.GraphViz.Attributes.Colors: Blue3 :: X11Color
- Data.GraphViz.Attributes.Colors: Blue4 :: X11Color
- Data.GraphViz.Attributes.Colors: BlueViolet :: X11Color
- Data.GraphViz.Attributes.Colors: Blues :: BrewerName
- Data.GraphViz.Attributes.Colors: Brbg :: BrewerName
- Data.GraphViz.Attributes.Colors: Brown :: X11Color
- Data.GraphViz.Attributes.Colors: Brown1 :: X11Color
- Data.GraphViz.Attributes.Colors: Brown2 :: X11Color
- Data.GraphViz.Attributes.Colors: Brown3 :: X11Color
- Data.GraphViz.Attributes.Colors: Brown4 :: X11Color
- Data.GraphViz.Attributes.Colors: Bugn :: BrewerName
- Data.GraphViz.Attributes.Colors: Bupu :: BrewerName
- Data.GraphViz.Attributes.Colors: Burlywood :: X11Color
- Data.GraphViz.Attributes.Colors: Burlywood1 :: X11Color
- Data.GraphViz.Attributes.Colors: Burlywood2 :: X11Color
- Data.GraphViz.Attributes.Colors: Burlywood3 :: X11Color
- Data.GraphViz.Attributes.Colors: Burlywood4 :: X11Color
- Data.GraphViz.Attributes.Colors: CadetBlue :: X11Color
- Data.GraphViz.Attributes.Colors: CadetBlue1 :: X11Color
- Data.GraphViz.Attributes.Colors: CadetBlue2 :: X11Color
- Data.GraphViz.Attributes.Colors: CadetBlue3 :: X11Color
- Data.GraphViz.Attributes.Colors: CadetBlue4 :: X11Color
- Data.GraphViz.Attributes.Colors: Chartreuse :: X11Color
- Data.GraphViz.Attributes.Colors: Chartreuse1 :: X11Color
- Data.GraphViz.Attributes.Colors: Chartreuse2 :: X11Color
- Data.GraphViz.Attributes.Colors: Chartreuse3 :: X11Color
- Data.GraphViz.Attributes.Colors: Chartreuse4 :: X11Color
- Data.GraphViz.Attributes.Colors: Chocolate :: X11Color
- Data.GraphViz.Attributes.Colors: Chocolate1 :: X11Color
- Data.GraphViz.Attributes.Colors: Chocolate2 :: X11Color
- Data.GraphViz.Attributes.Colors: Chocolate3 :: X11Color
- Data.GraphViz.Attributes.Colors: Chocolate4 :: X11Color
- Data.GraphViz.Attributes.Colors: Coral :: X11Color
- Data.GraphViz.Attributes.Colors: Coral1 :: X11Color
- Data.GraphViz.Attributes.Colors: Coral2 :: X11Color
- Data.GraphViz.Attributes.Colors: Coral3 :: X11Color
- Data.GraphViz.Attributes.Colors: Coral4 :: X11Color
- Data.GraphViz.Attributes.Colors: CornFlowerBlue :: X11Color
- Data.GraphViz.Attributes.Colors: CornSilk :: X11Color
- Data.GraphViz.Attributes.Colors: CornSilk1 :: X11Color
- Data.GraphViz.Attributes.Colors: CornSilk2 :: X11Color
- Data.GraphViz.Attributes.Colors: CornSilk3 :: X11Color
- Data.GraphViz.Attributes.Colors: CornSilk4 :: X11Color
- Data.GraphViz.Attributes.Colors: Crimson :: X11Color
- Data.GraphViz.Attributes.Colors: Cyan :: X11Color
- Data.GraphViz.Attributes.Colors: Cyan1 :: X11Color
- Data.GraphViz.Attributes.Colors: Cyan2 :: X11Color
- Data.GraphViz.Attributes.Colors: Cyan3 :: X11Color
- Data.GraphViz.Attributes.Colors: Cyan4 :: X11Color
- Data.GraphViz.Attributes.Colors: Dark2 :: BrewerName
- Data.GraphViz.Attributes.Colors: DarkGoldenrod :: X11Color
- Data.GraphViz.Attributes.Colors: DarkGoldenrod1 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkGoldenrod2 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkGoldenrod3 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkGoldenrod4 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkGreen :: X11Color
- Data.GraphViz.Attributes.Colors: DarkOliveGreen :: X11Color
- Data.GraphViz.Attributes.Colors: DarkOliveGreen1 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkOliveGreen2 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkOliveGreen3 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkOliveGreen4 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkOrange :: X11Color
- Data.GraphViz.Attributes.Colors: DarkOrange1 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkOrange2 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkOrange3 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkOrange4 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkOrchid :: X11Color
- Data.GraphViz.Attributes.Colors: DarkOrchid1 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkOrchid2 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkOrchid3 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkOrchid4 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkSalmon :: X11Color
- Data.GraphViz.Attributes.Colors: DarkSeaGreen :: X11Color
- Data.GraphViz.Attributes.Colors: DarkSeaGreen1 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkSeaGreen2 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkSeaGreen3 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkSeaGreen4 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkSlateBlue :: X11Color
- Data.GraphViz.Attributes.Colors: DarkSlateGray :: X11Color
- Data.GraphViz.Attributes.Colors: DarkSlateGray1 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkSlateGray2 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkSlateGray3 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkSlateGray4 :: X11Color
- Data.GraphViz.Attributes.Colors: DarkTurquoise :: X11Color
- Data.GraphViz.Attributes.Colors: DarkViolet :: X11Color
- Data.GraphViz.Attributes.Colors: Darkkhaki :: X11Color
- Data.GraphViz.Attributes.Colors: DeepPink :: X11Color
- Data.GraphViz.Attributes.Colors: DeepPink1 :: X11Color
- Data.GraphViz.Attributes.Colors: DeepPink2 :: X11Color
- Data.GraphViz.Attributes.Colors: DeepPink3 :: X11Color
- Data.GraphViz.Attributes.Colors: DeepPink4 :: X11Color
- Data.GraphViz.Attributes.Colors: DeepSkyBlue :: X11Color
- Data.GraphViz.Attributes.Colors: DeepSkyBlue1 :: X11Color
- Data.GraphViz.Attributes.Colors: DeepSkyBlue2 :: X11Color
- Data.GraphViz.Attributes.Colors: DeepSkyBlue3 :: X11Color
- Data.GraphViz.Attributes.Colors: DeepSkyBlue4 :: X11Color
- Data.GraphViz.Attributes.Colors: DimGray :: X11Color
- Data.GraphViz.Attributes.Colors: DodgerBlue :: X11Color
- Data.GraphViz.Attributes.Colors: DodgerBlue1 :: X11Color
- Data.GraphViz.Attributes.Colors: DodgerBlue2 :: X11Color
- Data.GraphViz.Attributes.Colors: DodgerBlue3 :: X11Color
- Data.GraphViz.Attributes.Colors: DodgerBlue4 :: X11Color
- Data.GraphViz.Attributes.Colors: Firebrick :: X11Color
- Data.GraphViz.Attributes.Colors: Firebrick1 :: X11Color
- Data.GraphViz.Attributes.Colors: Firebrick2 :: X11Color
- Data.GraphViz.Attributes.Colors: Firebrick3 :: X11Color
- Data.GraphViz.Attributes.Colors: Firebrick4 :: X11Color
- Data.GraphViz.Attributes.Colors: FloralWhite :: X11Color
- Data.GraphViz.Attributes.Colors: ForestGreen :: X11Color
- Data.GraphViz.Attributes.Colors: Gainsboro :: X11Color
- Data.GraphViz.Attributes.Colors: GhostWhite :: X11Color
- Data.GraphViz.Attributes.Colors: Gnbu :: BrewerName
- Data.GraphViz.Attributes.Colors: Gold :: X11Color
- Data.GraphViz.Attributes.Colors: Gold1 :: X11Color
- Data.GraphViz.Attributes.Colors: Gold2 :: X11Color
- Data.GraphViz.Attributes.Colors: Gold3 :: X11Color
- Data.GraphViz.Attributes.Colors: Gold4 :: X11Color
- Data.GraphViz.Attributes.Colors: Goldenrod :: X11Color
- Data.GraphViz.Attributes.Colors: Goldenrod1 :: X11Color
- Data.GraphViz.Attributes.Colors: Goldenrod2 :: X11Color
- Data.GraphViz.Attributes.Colors: Goldenrod3 :: X11Color
- Data.GraphViz.Attributes.Colors: Goldenrod4 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray :: X11Color
- Data.GraphViz.Attributes.Colors: Gray0 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray1 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray10 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray100 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray11 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray12 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray13 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray14 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray15 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray16 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray17 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray18 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray19 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray2 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray20 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray21 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray22 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray23 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray24 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray25 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray26 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray27 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray28 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray29 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray3 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray30 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray31 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray32 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray33 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray34 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray35 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray36 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray37 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray38 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray39 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray4 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray40 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray41 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray42 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray43 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray44 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray45 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray46 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray47 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray48 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray49 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray5 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray50 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray51 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray52 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray53 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray54 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray55 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray56 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray57 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray58 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray59 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray6 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray60 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray61 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray62 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray63 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray64 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray65 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray66 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray67 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray68 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray69 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray7 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray70 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray71 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray72 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray73 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray74 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray75 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray76 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray77 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray78 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray79 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray8 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray80 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray81 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray82 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray83 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray84 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray85 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray86 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray87 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray88 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray89 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray9 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray90 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray91 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray92 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray93 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray94 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray95 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray96 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray97 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray98 :: X11Color
- Data.GraphViz.Attributes.Colors: Gray99 :: X11Color
- Data.GraphViz.Attributes.Colors: Green :: X11Color
- Data.GraphViz.Attributes.Colors: Green1 :: X11Color
- Data.GraphViz.Attributes.Colors: Green2 :: X11Color
- Data.GraphViz.Attributes.Colors: Green3 :: X11Color
- Data.GraphViz.Attributes.Colors: Green4 :: X11Color
- Data.GraphViz.Attributes.Colors: GreenYellow :: X11Color
- Data.GraphViz.Attributes.Colors: Greens :: BrewerName
- Data.GraphViz.Attributes.Colors: Greys :: BrewerName
- Data.GraphViz.Attributes.Colors: HoneyDew :: X11Color
- Data.GraphViz.Attributes.Colors: HoneyDew1 :: X11Color
- Data.GraphViz.Attributes.Colors: HoneyDew2 :: X11Color
- Data.GraphViz.Attributes.Colors: HoneyDew3 :: X11Color
- Data.GraphViz.Attributes.Colors: HoneyDew4 :: X11Color
- Data.GraphViz.Attributes.Colors: HotPink :: X11Color
- Data.GraphViz.Attributes.Colors: HotPink1 :: X11Color
- Data.GraphViz.Attributes.Colors: HotPink2 :: X11Color
- Data.GraphViz.Attributes.Colors: HotPink3 :: X11Color
- Data.GraphViz.Attributes.Colors: HotPink4 :: X11Color
- Data.GraphViz.Attributes.Colors: IndianRed :: X11Color
- Data.GraphViz.Attributes.Colors: IndianRed1 :: X11Color
- Data.GraphViz.Attributes.Colors: IndianRed2 :: X11Color
- Data.GraphViz.Attributes.Colors: IndianRed3 :: X11Color
- Data.GraphViz.Attributes.Colors: IndianRed4 :: X11Color
- Data.GraphViz.Attributes.Colors: Indigo :: X11Color
- Data.GraphViz.Attributes.Colors: Ivory :: X11Color
- Data.GraphViz.Attributes.Colors: Ivory1 :: X11Color
- Data.GraphViz.Attributes.Colors: Ivory2 :: X11Color
- Data.GraphViz.Attributes.Colors: Ivory3 :: X11Color
- Data.GraphViz.Attributes.Colors: Ivory4 :: X11Color
- Data.GraphViz.Attributes.Colors: Khaki :: X11Color
- Data.GraphViz.Attributes.Colors: Khaki1 :: X11Color
- Data.GraphViz.Attributes.Colors: Khaki2 :: X11Color
- Data.GraphViz.Attributes.Colors: Khaki3 :: X11Color
- Data.GraphViz.Attributes.Colors: Khaki4 :: X11Color
- Data.GraphViz.Attributes.Colors: Lavender :: X11Color
- Data.GraphViz.Attributes.Colors: LavenderBlush :: X11Color
- Data.GraphViz.Attributes.Colors: LavenderBlush1 :: X11Color
- Data.GraphViz.Attributes.Colors: LavenderBlush2 :: X11Color
- Data.GraphViz.Attributes.Colors: LavenderBlush3 :: X11Color
- Data.GraphViz.Attributes.Colors: LavenderBlush4 :: X11Color
- Data.GraphViz.Attributes.Colors: LawnGreen :: X11Color
- Data.GraphViz.Attributes.Colors: LemonChiffon :: X11Color
- Data.GraphViz.Attributes.Colors: LemonChiffon1 :: X11Color
- Data.GraphViz.Attributes.Colors: LemonChiffon2 :: X11Color
- Data.GraphViz.Attributes.Colors: LemonChiffon3 :: X11Color
- Data.GraphViz.Attributes.Colors: LemonChiffon4 :: X11Color
- Data.GraphViz.Attributes.Colors: LightBlue :: X11Color
- Data.GraphViz.Attributes.Colors: LightBlue1 :: X11Color
- Data.GraphViz.Attributes.Colors: LightBlue2 :: X11Color
- Data.GraphViz.Attributes.Colors: LightBlue3 :: X11Color
- Data.GraphViz.Attributes.Colors: LightBlue4 :: X11Color
- Data.GraphViz.Attributes.Colors: LightCoral :: X11Color
- Data.GraphViz.Attributes.Colors: LightCyan :: X11Color
- Data.GraphViz.Attributes.Colors: LightCyan1 :: X11Color
- Data.GraphViz.Attributes.Colors: LightCyan2 :: X11Color
- Data.GraphViz.Attributes.Colors: LightCyan3 :: X11Color
- Data.GraphViz.Attributes.Colors: LightCyan4 :: X11Color
- Data.GraphViz.Attributes.Colors: LightGoldenrod :: X11Color
- Data.GraphViz.Attributes.Colors: LightGoldenrod1 :: X11Color
- Data.GraphViz.Attributes.Colors: LightGoldenrod2 :: X11Color
- Data.GraphViz.Attributes.Colors: LightGoldenrod3 :: X11Color
- Data.GraphViz.Attributes.Colors: LightGoldenrod4 :: X11Color
- Data.GraphViz.Attributes.Colors: LightGoldenrodYellow :: X11Color
- Data.GraphViz.Attributes.Colors: LightGray :: X11Color
- Data.GraphViz.Attributes.Colors: LightPink :: X11Color
- Data.GraphViz.Attributes.Colors: LightPink1 :: X11Color
- Data.GraphViz.Attributes.Colors: LightPink2 :: X11Color
- Data.GraphViz.Attributes.Colors: LightPink3 :: X11Color
- Data.GraphViz.Attributes.Colors: LightPink4 :: X11Color
- Data.GraphViz.Attributes.Colors: LightSalmon :: X11Color
- Data.GraphViz.Attributes.Colors: LightSalmon1 :: X11Color
- Data.GraphViz.Attributes.Colors: LightSalmon2 :: X11Color
- Data.GraphViz.Attributes.Colors: LightSalmon3 :: X11Color
- Data.GraphViz.Attributes.Colors: LightSalmon4 :: X11Color
- Data.GraphViz.Attributes.Colors: LightSeaGreen :: X11Color
- Data.GraphViz.Attributes.Colors: LightSkyBlue :: X11Color
- Data.GraphViz.Attributes.Colors: LightSkyBlue1 :: X11Color
- Data.GraphViz.Attributes.Colors: LightSkyBlue2 :: X11Color
- Data.GraphViz.Attributes.Colors: LightSkyBlue3 :: X11Color
- Data.GraphViz.Attributes.Colors: LightSkyBlue4 :: X11Color
- Data.GraphViz.Attributes.Colors: LightSlateBlue :: X11Color
- Data.GraphViz.Attributes.Colors: LightSlateGray :: X11Color
- Data.GraphViz.Attributes.Colors: LightSteelBlue :: X11Color
- Data.GraphViz.Attributes.Colors: LightSteelBlue1 :: X11Color
- Data.GraphViz.Attributes.Colors: LightSteelBlue2 :: X11Color
- Data.GraphViz.Attributes.Colors: LightSteelBlue3 :: X11Color
- Data.GraphViz.Attributes.Colors: LightSteelBlue4 :: X11Color
- Data.GraphViz.Attributes.Colors: LightYellow :: X11Color
- Data.GraphViz.Attributes.Colors: LightYellow1 :: X11Color
- Data.GraphViz.Attributes.Colors: LightYellow2 :: X11Color
- Data.GraphViz.Attributes.Colors: LightYellow3 :: X11Color
- Data.GraphViz.Attributes.Colors: LightYellow4 :: X11Color
- Data.GraphViz.Attributes.Colors: LimeGreen :: X11Color
- Data.GraphViz.Attributes.Colors: Linen :: X11Color
- Data.GraphViz.Attributes.Colors: Magenta :: X11Color
- Data.GraphViz.Attributes.Colors: Magenta1 :: X11Color
- Data.GraphViz.Attributes.Colors: Magenta2 :: X11Color
- Data.GraphViz.Attributes.Colors: Magenta3 :: X11Color
- Data.GraphViz.Attributes.Colors: Magenta4 :: X11Color
- Data.GraphViz.Attributes.Colors: Maroon :: X11Color
- Data.GraphViz.Attributes.Colors: Maroon1 :: X11Color
- Data.GraphViz.Attributes.Colors: Maroon2 :: X11Color
- Data.GraphViz.Attributes.Colors: Maroon3 :: X11Color
- Data.GraphViz.Attributes.Colors: Maroon4 :: X11Color
- Data.GraphViz.Attributes.Colors: MediumAquamarine :: X11Color
- Data.GraphViz.Attributes.Colors: MediumBlue :: X11Color
- Data.GraphViz.Attributes.Colors: MediumOrchid :: X11Color
- Data.GraphViz.Attributes.Colors: MediumOrchid1 :: X11Color
- Data.GraphViz.Attributes.Colors: MediumOrchid2 :: X11Color
- Data.GraphViz.Attributes.Colors: MediumOrchid3 :: X11Color
- Data.GraphViz.Attributes.Colors: MediumOrchid4 :: X11Color
- Data.GraphViz.Attributes.Colors: MediumPurple :: X11Color
- Data.GraphViz.Attributes.Colors: MediumPurple1 :: X11Color
- Data.GraphViz.Attributes.Colors: MediumPurple2 :: X11Color
- Data.GraphViz.Attributes.Colors: MediumPurple3 :: X11Color
- Data.GraphViz.Attributes.Colors: MediumPurple4 :: X11Color
- Data.GraphViz.Attributes.Colors: MediumSeaGreen :: X11Color
- Data.GraphViz.Attributes.Colors: MediumSlateBlue :: X11Color
- Data.GraphViz.Attributes.Colors: MediumSpringGreen :: X11Color
- Data.GraphViz.Attributes.Colors: MediumTurquoise :: X11Color
- Data.GraphViz.Attributes.Colors: MediumVioletRed :: X11Color
- Data.GraphViz.Attributes.Colors: MidnightBlue :: X11Color
- Data.GraphViz.Attributes.Colors: MintCream :: X11Color
- Data.GraphViz.Attributes.Colors: MistyRose :: X11Color
- Data.GraphViz.Attributes.Colors: MistyRose1 :: X11Color
- Data.GraphViz.Attributes.Colors: MistyRose2 :: X11Color
- Data.GraphViz.Attributes.Colors: MistyRose3 :: X11Color
- Data.GraphViz.Attributes.Colors: MistyRose4 :: X11Color
- Data.GraphViz.Attributes.Colors: Moccasin :: X11Color
- Data.GraphViz.Attributes.Colors: NavajoWhite :: X11Color
- Data.GraphViz.Attributes.Colors: NavajoWhite1 :: X11Color
- Data.GraphViz.Attributes.Colors: NavajoWhite2 :: X11Color
- Data.GraphViz.Attributes.Colors: NavajoWhite3 :: X11Color
- Data.GraphViz.Attributes.Colors: NavajoWhite4 :: X11Color
- Data.GraphViz.Attributes.Colors: Navy :: X11Color
- Data.GraphViz.Attributes.Colors: NavyBlue :: X11Color
- Data.GraphViz.Attributes.Colors: OldLace :: X11Color
- Data.GraphViz.Attributes.Colors: OliveDrab :: X11Color
- Data.GraphViz.Attributes.Colors: OliveDrab1 :: X11Color
- Data.GraphViz.Attributes.Colors: OliveDrab2 :: X11Color
- Data.GraphViz.Attributes.Colors: OliveDrab3 :: X11Color
- Data.GraphViz.Attributes.Colors: OliveDrab4 :: X11Color
- Data.GraphViz.Attributes.Colors: Orange :: X11Color
- Data.GraphViz.Attributes.Colors: Orange1 :: X11Color
- Data.GraphViz.Attributes.Colors: Orange2 :: X11Color
- Data.GraphViz.Attributes.Colors: Orange3 :: X11Color
- Data.GraphViz.Attributes.Colors: Orange4 :: X11Color
- Data.GraphViz.Attributes.Colors: OrangeRed :: X11Color
- Data.GraphViz.Attributes.Colors: OrangeRed1 :: X11Color
- Data.GraphViz.Attributes.Colors: OrangeRed2 :: X11Color
- Data.GraphViz.Attributes.Colors: OrangeRed3 :: X11Color
- Data.GraphViz.Attributes.Colors: OrangeRed4 :: X11Color
- Data.GraphViz.Attributes.Colors: Oranges :: BrewerName
- Data.GraphViz.Attributes.Colors: Orchid :: X11Color
- Data.GraphViz.Attributes.Colors: Orchid1 :: X11Color
- Data.GraphViz.Attributes.Colors: Orchid2 :: X11Color
- Data.GraphViz.Attributes.Colors: Orchid3 :: X11Color
- Data.GraphViz.Attributes.Colors: Orchid4 :: X11Color
- Data.GraphViz.Attributes.Colors: Orrd :: BrewerName
- Data.GraphViz.Attributes.Colors: Paired :: BrewerName
- Data.GraphViz.Attributes.Colors: PaleGoldenrod :: X11Color
- Data.GraphViz.Attributes.Colors: PaleGreen :: X11Color
- Data.GraphViz.Attributes.Colors: PaleGreen1 :: X11Color
- Data.GraphViz.Attributes.Colors: PaleGreen2 :: X11Color
- Data.GraphViz.Attributes.Colors: PaleGreen3 :: X11Color
- Data.GraphViz.Attributes.Colors: PaleGreen4 :: X11Color
- Data.GraphViz.Attributes.Colors: PaleTurquoise :: X11Color
- Data.GraphViz.Attributes.Colors: PaleTurquoise1 :: X11Color
- Data.GraphViz.Attributes.Colors: PaleTurquoise2 :: X11Color
- Data.GraphViz.Attributes.Colors: PaleTurquoise3 :: X11Color
- Data.GraphViz.Attributes.Colors: PaleTurquoise4 :: X11Color
- Data.GraphViz.Attributes.Colors: PaleVioletRed :: X11Color
- Data.GraphViz.Attributes.Colors: PaleVioletRed1 :: X11Color
- Data.GraphViz.Attributes.Colors: PaleVioletRed2 :: X11Color
- Data.GraphViz.Attributes.Colors: PaleVioletRed3 :: X11Color
- Data.GraphViz.Attributes.Colors: PaleVioletRed4 :: X11Color
- Data.GraphViz.Attributes.Colors: PapayaWhip :: X11Color
- Data.GraphViz.Attributes.Colors: Pastel1 :: BrewerName
- Data.GraphViz.Attributes.Colors: Pastel2 :: BrewerName
- Data.GraphViz.Attributes.Colors: PeachPuff :: X11Color
- Data.GraphViz.Attributes.Colors: PeachPuff1 :: X11Color
- Data.GraphViz.Attributes.Colors: PeachPuff2 :: X11Color
- Data.GraphViz.Attributes.Colors: PeachPuff3 :: X11Color
- Data.GraphViz.Attributes.Colors: PeachPuff4 :: X11Color
- Data.GraphViz.Attributes.Colors: Peru :: X11Color
- Data.GraphViz.Attributes.Colors: Pink :: X11Color
- Data.GraphViz.Attributes.Colors: Pink1 :: X11Color
- Data.GraphViz.Attributes.Colors: Pink2 :: X11Color
- Data.GraphViz.Attributes.Colors: Pink3 :: X11Color
- Data.GraphViz.Attributes.Colors: Pink4 :: X11Color
- Data.GraphViz.Attributes.Colors: Piyg :: BrewerName
- Data.GraphViz.Attributes.Colors: Plum :: X11Color
- Data.GraphViz.Attributes.Colors: Plum1 :: X11Color
- Data.GraphViz.Attributes.Colors: Plum2 :: X11Color
- Data.GraphViz.Attributes.Colors: Plum3 :: X11Color
- Data.GraphViz.Attributes.Colors: Plum4 :: X11Color
- Data.GraphViz.Attributes.Colors: PowderBlue :: X11Color
- Data.GraphViz.Attributes.Colors: Prgn :: BrewerName
- Data.GraphViz.Attributes.Colors: Pubu :: BrewerName
- Data.GraphViz.Attributes.Colors: Pubugn :: BrewerName
- Data.GraphViz.Attributes.Colors: Puor :: BrewerName
- Data.GraphViz.Attributes.Colors: Purd :: BrewerName
- Data.GraphViz.Attributes.Colors: Purple :: X11Color
- Data.GraphViz.Attributes.Colors: Purple1 :: X11Color
- Data.GraphViz.Attributes.Colors: Purple2 :: X11Color
- Data.GraphViz.Attributes.Colors: Purple3 :: X11Color
- Data.GraphViz.Attributes.Colors: Purple4 :: X11Color
- Data.GraphViz.Attributes.Colors: Purples :: BrewerName
- Data.GraphViz.Attributes.Colors: Rdbu :: BrewerName
- Data.GraphViz.Attributes.Colors: Rdgy :: BrewerName
- Data.GraphViz.Attributes.Colors: Rdpu :: BrewerName
- Data.GraphViz.Attributes.Colors: Rdylbu :: BrewerName
- Data.GraphViz.Attributes.Colors: Rdylgn :: BrewerName
- Data.GraphViz.Attributes.Colors: Red :: X11Color
- Data.GraphViz.Attributes.Colors: Red1 :: X11Color
- Data.GraphViz.Attributes.Colors: Red2 :: X11Color
- Data.GraphViz.Attributes.Colors: Red3 :: X11Color
- Data.GraphViz.Attributes.Colors: Red4 :: X11Color
- Data.GraphViz.Attributes.Colors: Reds :: BrewerName
- Data.GraphViz.Attributes.Colors: RosyBrown :: X11Color
- Data.GraphViz.Attributes.Colors: RosyBrown1 :: X11Color
- Data.GraphViz.Attributes.Colors: RosyBrown2 :: X11Color
- Data.GraphViz.Attributes.Colors: RosyBrown3 :: X11Color
- Data.GraphViz.Attributes.Colors: RosyBrown4 :: X11Color
- Data.GraphViz.Attributes.Colors: RoyalBlue :: X11Color
- Data.GraphViz.Attributes.Colors: RoyalBlue1 :: X11Color
- Data.GraphViz.Attributes.Colors: RoyalBlue2 :: X11Color
- Data.GraphViz.Attributes.Colors: RoyalBlue3 :: X11Color
- Data.GraphViz.Attributes.Colors: RoyalBlue4 :: X11Color
- Data.GraphViz.Attributes.Colors: SaddleBrown :: X11Color
- Data.GraphViz.Attributes.Colors: Salmon :: X11Color
- Data.GraphViz.Attributes.Colors: Salmon1 :: X11Color
- Data.GraphViz.Attributes.Colors: Salmon2 :: X11Color
- Data.GraphViz.Attributes.Colors: Salmon3 :: X11Color
- Data.GraphViz.Attributes.Colors: Salmon4 :: X11Color
- Data.GraphViz.Attributes.Colors: SandyBrown :: X11Color
- Data.GraphViz.Attributes.Colors: SeaGreen :: X11Color
- Data.GraphViz.Attributes.Colors: SeaGreen1 :: X11Color
- Data.GraphViz.Attributes.Colors: SeaGreen2 :: X11Color
- Data.GraphViz.Attributes.Colors: SeaGreen3 :: X11Color
- Data.GraphViz.Attributes.Colors: SeaGreen4 :: X11Color
- Data.GraphViz.Attributes.Colors: SeaShell :: X11Color
- Data.GraphViz.Attributes.Colors: SeaShell1 :: X11Color
- Data.GraphViz.Attributes.Colors: SeaShell2 :: X11Color
- Data.GraphViz.Attributes.Colors: SeaShell3 :: X11Color
- Data.GraphViz.Attributes.Colors: SeaShell4 :: X11Color
- Data.GraphViz.Attributes.Colors: Set1 :: BrewerName
- Data.GraphViz.Attributes.Colors: Set2 :: BrewerName
- Data.GraphViz.Attributes.Colors: Set3 :: BrewerName
- Data.GraphViz.Attributes.Colors: Sienna :: X11Color
- Data.GraphViz.Attributes.Colors: Sienna1 :: X11Color
- Data.GraphViz.Attributes.Colors: Sienna2 :: X11Color
- Data.GraphViz.Attributes.Colors: Sienna3 :: X11Color
- Data.GraphViz.Attributes.Colors: Sienna4 :: X11Color
- Data.GraphViz.Attributes.Colors: SkyBlue :: X11Color
- Data.GraphViz.Attributes.Colors: SkyBlue1 :: X11Color
- Data.GraphViz.Attributes.Colors: SkyBlue2 :: X11Color
- Data.GraphViz.Attributes.Colors: SkyBlue3 :: X11Color
- Data.GraphViz.Attributes.Colors: SkyBlue4 :: X11Color
- Data.GraphViz.Attributes.Colors: SlateBlue :: X11Color
- Data.GraphViz.Attributes.Colors: SlateBlue1 :: X11Color
- Data.GraphViz.Attributes.Colors: SlateBlue2 :: X11Color
- Data.GraphViz.Attributes.Colors: SlateBlue3 :: X11Color
- Data.GraphViz.Attributes.Colors: SlateBlue4 :: X11Color
- Data.GraphViz.Attributes.Colors: SlateGray :: X11Color
- Data.GraphViz.Attributes.Colors: SlateGray1 :: X11Color
- Data.GraphViz.Attributes.Colors: SlateGray2 :: X11Color
- Data.GraphViz.Attributes.Colors: SlateGray3 :: X11Color
- Data.GraphViz.Attributes.Colors: SlateGray4 :: X11Color
- Data.GraphViz.Attributes.Colors: Snow :: X11Color
- Data.GraphViz.Attributes.Colors: Snow1 :: X11Color
- Data.GraphViz.Attributes.Colors: Snow2 :: X11Color
- Data.GraphViz.Attributes.Colors: Snow3 :: X11Color
- Data.GraphViz.Attributes.Colors: Snow4 :: X11Color
- Data.GraphViz.Attributes.Colors: Spectral :: BrewerName
- Data.GraphViz.Attributes.Colors: SpringGreen :: X11Color
- Data.GraphViz.Attributes.Colors: SpringGreen1 :: X11Color
- Data.GraphViz.Attributes.Colors: SpringGreen2 :: X11Color
- Data.GraphViz.Attributes.Colors: SpringGreen3 :: X11Color
- Data.GraphViz.Attributes.Colors: SpringGreen4 :: X11Color
- Data.GraphViz.Attributes.Colors: SteelBlue :: X11Color
- Data.GraphViz.Attributes.Colors: SteelBlue1 :: X11Color
- Data.GraphViz.Attributes.Colors: SteelBlue2 :: X11Color
- Data.GraphViz.Attributes.Colors: SteelBlue3 :: X11Color
- Data.GraphViz.Attributes.Colors: SteelBlue4 :: X11Color
- Data.GraphViz.Attributes.Colors: Tan :: X11Color
- Data.GraphViz.Attributes.Colors: Tan1 :: X11Color
- Data.GraphViz.Attributes.Colors: Tan2 :: X11Color
- Data.GraphViz.Attributes.Colors: Tan3 :: X11Color
- Data.GraphViz.Attributes.Colors: Tan4 :: X11Color
- Data.GraphViz.Attributes.Colors: Thistle :: X11Color
- Data.GraphViz.Attributes.Colors: Thistle1 :: X11Color
- Data.GraphViz.Attributes.Colors: Thistle2 :: X11Color
- Data.GraphViz.Attributes.Colors: Thistle3 :: X11Color
- Data.GraphViz.Attributes.Colors: Thistle4 :: X11Color
- Data.GraphViz.Attributes.Colors: Tomato :: X11Color
- Data.GraphViz.Attributes.Colors: Tomato1 :: X11Color
- Data.GraphViz.Attributes.Colors: Tomato2 :: X11Color
- Data.GraphViz.Attributes.Colors: Tomato3 :: X11Color
- Data.GraphViz.Attributes.Colors: Tomato4 :: X11Color
- Data.GraphViz.Attributes.Colors: Transparent :: X11Color
- Data.GraphViz.Attributes.Colors: Turquoise :: X11Color
- Data.GraphViz.Attributes.Colors: Turquoise1 :: X11Color
- Data.GraphViz.Attributes.Colors: Turquoise2 :: X11Color
- Data.GraphViz.Attributes.Colors: Turquoise3 :: X11Color
- Data.GraphViz.Attributes.Colors: Turquoise4 :: X11Color
- Data.GraphViz.Attributes.Colors: Violet :: X11Color
- Data.GraphViz.Attributes.Colors: VioletRed :: X11Color
- Data.GraphViz.Attributes.Colors: VioletRed1 :: X11Color
- Data.GraphViz.Attributes.Colors: VioletRed2 :: X11Color
- Data.GraphViz.Attributes.Colors: VioletRed3 :: X11Color
- Data.GraphViz.Attributes.Colors: VioletRed4 :: X11Color
- Data.GraphViz.Attributes.Colors: Wheat :: X11Color
- Data.GraphViz.Attributes.Colors: Wheat1 :: X11Color
- Data.GraphViz.Attributes.Colors: Wheat2 :: X11Color
- Data.GraphViz.Attributes.Colors: Wheat3 :: X11Color
- Data.GraphViz.Attributes.Colors: Wheat4 :: X11Color
- Data.GraphViz.Attributes.Colors: White :: X11Color
- Data.GraphViz.Attributes.Colors: WhiteSmoke :: X11Color
- Data.GraphViz.Attributes.Colors: Yellow :: X11Color
- Data.GraphViz.Attributes.Colors: Yellow1 :: X11Color
- Data.GraphViz.Attributes.Colors: Yellow2 :: X11Color
- Data.GraphViz.Attributes.Colors: Yellow3 :: X11Color
- Data.GraphViz.Attributes.Colors: Yellow4 :: X11Color
- Data.GraphViz.Attributes.Colors: YellowGreen :: X11Color
- Data.GraphViz.Attributes.Colors: Ylgn :: BrewerName
- Data.GraphViz.Attributes.Colors: Ylgnbu :: BrewerName
- Data.GraphViz.Attributes.Colors: Ylorbr :: BrewerName
- Data.GraphViz.Attributes.Colors: Ylorrd :: BrewerName
- Data.GraphViz.Attributes.Colors: data BrewerName
- Data.GraphViz.Attributes.Colors: data BrewerScheme
- Data.GraphViz.Attributes.Colors: data X11Color
- Data.GraphViz.Attributes.Colors: instance Bounded X11Color
- Data.GraphViz.Attributes.Colors: instance Enum X11Color
- Data.GraphViz.Attributes.Colors: instance Eq X11Color
- Data.GraphViz.Attributes.Colors: instance Ord X11Color
- Data.GraphViz.Attributes.Colors: instance ParseDot X11Color
- Data.GraphViz.Attributes.Colors: instance PrintDot X11Color
- Data.GraphViz.Attributes.Colors: instance Read X11Color
- Data.GraphViz.Attributes.Colors: instance Show X11Color
- Data.GraphViz.Attributes.Colors: x11Colour :: X11Color -> AlphaColour Double
- Data.GraphViz.Attributes.Complete: Bb :: Rect -> Attribute
- Data.GraphViz.Attributes.Complete: RemoveOverlaps :: Overlap
- Data.GraphViz.Attributes.HTML: HtmlAlign :: HtmlAlign -> HtmlAttribute
- Data.GraphViz.Attributes.HTML: HtmlBAlign :: HtmlAlign -> HtmlAttribute
- Data.GraphViz.Attributes.HTML: HtmlBGColor :: Color -> HtmlAttribute
- Data.GraphViz.Attributes.HTML: HtmlBorder :: Word8 -> HtmlAttribute
- Data.GraphViz.Attributes.HTML: HtmlCellBorder :: Word8 -> HtmlAttribute
- Data.GraphViz.Attributes.HTML: HtmlCellPadding :: Word8 -> HtmlAttribute
- Data.GraphViz.Attributes.HTML: HtmlCellSpacing :: Word8 -> HtmlAttribute
- Data.GraphViz.Attributes.HTML: HtmlColSpan :: Word16 -> HtmlAttribute
- Data.GraphViz.Attributes.HTML: HtmlColor :: Color -> HtmlAttribute
- Data.GraphViz.Attributes.HTML: HtmlExpandBoth :: HtmlScale
- Data.GraphViz.Attributes.HTML: HtmlExpandHeight :: HtmlScale
- Data.GraphViz.Attributes.HTML: HtmlExpandWidth :: HtmlScale
- Data.GraphViz.Attributes.HTML: HtmlFace :: Text -> HtmlAttribute
- Data.GraphViz.Attributes.HTML: HtmlFixedSize :: Bool -> HtmlAttribute
- Data.GraphViz.Attributes.HTML: HtmlFont :: HtmlAttributes -> HtmlText -> HtmlTextItem
- Data.GraphViz.Attributes.HTML: HtmlHRef :: Text -> HtmlAttribute
- Data.GraphViz.Attributes.HTML: HtmlHeight :: Word16 -> HtmlAttribute
- Data.GraphViz.Attributes.HTML: HtmlImg :: HtmlAttributes -> HtmlImg
- Data.GraphViz.Attributes.HTML: HtmlImgCell :: HtmlAttributes -> HtmlImg -> HtmlCell
- Data.GraphViz.Attributes.HTML: HtmlLabelCell :: HtmlAttributes -> HtmlLabel -> HtmlCell
- Data.GraphViz.Attributes.HTML: HtmlNaturalSize :: HtmlScale
- Data.GraphViz.Attributes.HTML: HtmlNewline :: HtmlAttributes -> HtmlTextItem
- Data.GraphViz.Attributes.HTML: HtmlPointSize :: Double -> HtmlAttribute
- Data.GraphViz.Attributes.HTML: HtmlPort :: PortName -> HtmlAttribute
- Data.GraphViz.Attributes.HTML: HtmlRow :: [HtmlCell] -> HtmlRow
- Data.GraphViz.Attributes.HTML: HtmlRowSpan :: Word16 -> HtmlAttribute
- Data.GraphViz.Attributes.HTML: HtmlScale :: HtmlScale -> HtmlAttribute
- Data.GraphViz.Attributes.HTML: HtmlScaleUniformly :: HtmlScale
- Data.GraphViz.Attributes.HTML: HtmlSrc :: FilePath -> HtmlAttribute
- Data.GraphViz.Attributes.HTML: HtmlStr :: Text -> HtmlTextItem
- Data.GraphViz.Attributes.HTML: HtmlTable :: HtmlTable -> HtmlLabel
- Data.GraphViz.Attributes.HTML: HtmlTarget :: Text -> HtmlAttribute
- Data.GraphViz.Attributes.HTML: HtmlText :: HtmlText -> HtmlLabel
- Data.GraphViz.Attributes.HTML: HtmlTitle :: Text -> HtmlAttribute
- Data.GraphViz.Attributes.HTML: HtmlVAlign :: HtmlVAlign -> HtmlAttribute
- Data.GraphViz.Attributes.HTML: HtmlWidth :: Word16 -> HtmlAttribute
- Data.GraphViz.Attributes.HTML: data HtmlAlign
- Data.GraphViz.Attributes.HTML: data HtmlAttribute
- Data.GraphViz.Attributes.HTML: data HtmlCell
- Data.GraphViz.Attributes.HTML: data HtmlLabel
- Data.GraphViz.Attributes.HTML: data HtmlScale
- Data.GraphViz.Attributes.HTML: data HtmlTable
- Data.GraphViz.Attributes.HTML: data HtmlTextItem
- Data.GraphViz.Attributes.HTML: data HtmlVAlign
- Data.GraphViz.Attributes.HTML: instance Bounded HtmlAlign
- Data.GraphViz.Attributes.HTML: instance Bounded HtmlScale
- Data.GraphViz.Attributes.HTML: instance Bounded HtmlVAlign
- Data.GraphViz.Attributes.HTML: instance Enum HtmlAlign
- Data.GraphViz.Attributes.HTML: instance Enum HtmlScale
- Data.GraphViz.Attributes.HTML: instance Enum HtmlVAlign
- Data.GraphViz.Attributes.HTML: instance Eq HtmlAlign
- Data.GraphViz.Attributes.HTML: instance Eq HtmlAttribute
- Data.GraphViz.Attributes.HTML: instance Eq HtmlCell
- Data.GraphViz.Attributes.HTML: instance Eq HtmlImg
- Data.GraphViz.Attributes.HTML: instance Eq HtmlLabel
- Data.GraphViz.Attributes.HTML: instance Eq HtmlRow
- Data.GraphViz.Attributes.HTML: instance Eq HtmlScale
- Data.GraphViz.Attributes.HTML: instance Eq HtmlTable
- Data.GraphViz.Attributes.HTML: instance Eq HtmlTextItem
- Data.GraphViz.Attributes.HTML: instance Eq HtmlVAlign
- Data.GraphViz.Attributes.HTML: instance Ord HtmlAlign
- Data.GraphViz.Attributes.HTML: instance Ord HtmlAttribute
- Data.GraphViz.Attributes.HTML: instance Ord HtmlCell
- Data.GraphViz.Attributes.HTML: instance Ord HtmlImg
- Data.GraphViz.Attributes.HTML: instance Ord HtmlLabel
- Data.GraphViz.Attributes.HTML: instance Ord HtmlRow
- Data.GraphViz.Attributes.HTML: instance Ord HtmlScale
- Data.GraphViz.Attributes.HTML: instance Ord HtmlTable
- Data.GraphViz.Attributes.HTML: instance Ord HtmlTextItem
- Data.GraphViz.Attributes.HTML: instance Ord HtmlVAlign
- Data.GraphViz.Attributes.HTML: instance ParseDot HtmlAlign
- Data.GraphViz.Attributes.HTML: instance ParseDot HtmlAttribute
- Data.GraphViz.Attributes.HTML: instance ParseDot HtmlCell
- Data.GraphViz.Attributes.HTML: instance ParseDot HtmlImg
- Data.GraphViz.Attributes.HTML: instance ParseDot HtmlLabel
- Data.GraphViz.Attributes.HTML: instance ParseDot HtmlRow
- Data.GraphViz.Attributes.HTML: instance ParseDot HtmlScale
- Data.GraphViz.Attributes.HTML: instance ParseDot HtmlTable
- Data.GraphViz.Attributes.HTML: instance ParseDot HtmlTextItem
- Data.GraphViz.Attributes.HTML: instance ParseDot HtmlVAlign
- Data.GraphViz.Attributes.HTML: instance PrintDot HtmlAlign
- Data.GraphViz.Attributes.HTML: instance PrintDot HtmlAttribute
- Data.GraphViz.Attributes.HTML: instance PrintDot HtmlCell
- Data.GraphViz.Attributes.HTML: instance PrintDot HtmlImg
- Data.GraphViz.Attributes.HTML: instance PrintDot HtmlLabel
- Data.GraphViz.Attributes.HTML: instance PrintDot HtmlRow
- Data.GraphViz.Attributes.HTML: instance PrintDot HtmlScale
- Data.GraphViz.Attributes.HTML: instance PrintDot HtmlTable
- Data.GraphViz.Attributes.HTML: instance PrintDot HtmlTextItem
- Data.GraphViz.Attributes.HTML: instance PrintDot HtmlVAlign
- Data.GraphViz.Attributes.HTML: instance Read HtmlAlign
- Data.GraphViz.Attributes.HTML: instance Read HtmlAttribute
- Data.GraphViz.Attributes.HTML: instance Read HtmlCell
- Data.GraphViz.Attributes.HTML: instance Read HtmlImg
- Data.GraphViz.Attributes.HTML: instance Read HtmlLabel
- Data.GraphViz.Attributes.HTML: instance Read HtmlRow
- Data.GraphViz.Attributes.HTML: instance Read HtmlScale
- Data.GraphViz.Attributes.HTML: instance Read HtmlTable
- Data.GraphViz.Attributes.HTML: instance Read HtmlTextItem
- Data.GraphViz.Attributes.HTML: instance Read HtmlVAlign
- Data.GraphViz.Attributes.HTML: instance Show HtmlAlign
- Data.GraphViz.Attributes.HTML: instance Show HtmlAttribute
- Data.GraphViz.Attributes.HTML: instance Show HtmlCell
- Data.GraphViz.Attributes.HTML: instance Show HtmlImg
- Data.GraphViz.Attributes.HTML: instance Show HtmlLabel
- Data.GraphViz.Attributes.HTML: instance Show HtmlRow
- Data.GraphViz.Attributes.HTML: instance Show HtmlScale
- Data.GraphViz.Attributes.HTML: instance Show HtmlTable
- Data.GraphViz.Attributes.HTML: instance Show HtmlTextItem
- Data.GraphViz.Attributes.HTML: instance Show HtmlVAlign
- Data.GraphViz.Attributes.HTML: newtype HtmlImg
- Data.GraphViz.Attributes.HTML: newtype HtmlRow
- Data.GraphViz.Attributes.HTML: type HtmlAttributes = [HtmlAttribute]
- Data.GraphViz.Attributes.HTML: type HtmlText = [HtmlTextItem]
- Data.GraphViz.Parsing: allWhitespace :: Parse ()
- Data.GraphViz.Parsing: allWhitespace' :: Parse ()
- Data.GraphViz.Parsing: whitespace' :: Parse ()
- Data.GraphViz.State: GS :: Bool -> [Char] -> ColorScheme -> GraphvizState
- Data.GraphViz.State: class Monad m => GraphvizStateM m
- Data.GraphViz.State: colorScheme :: GraphvizState -> ColorScheme
- Data.GraphViz.State: data GraphvizState
- Data.GraphViz.State: directedEdges :: GraphvizState -> Bool
- Data.GraphViz.State: getColorScheme :: GraphvizStateM m => m ColorScheme
- Data.GraphViz.State: getDirectedness :: GraphvizStateM m => m Bool
- Data.GraphViz.State: getLayerSep :: GraphvizStateM m => m [Char]
- Data.GraphViz.State: getsGS :: GraphvizStateM m => (GraphvizState -> a) -> m a
- Data.GraphViz.State: initialState :: GraphvizState
- Data.GraphViz.State: instance Eq GraphvizState
- Data.GraphViz.State: instance GraphvizStateM (Parser GraphvizState)
- Data.GraphViz.State: instance GraphvizStateM (State GraphvizState)
- Data.GraphViz.State: instance Ord GraphvizState
- Data.GraphViz.State: instance Read GraphvizState
- Data.GraphViz.State: instance Show GraphvizState
- Data.GraphViz.State: layerSep :: GraphvizState -> [Char]
- Data.GraphViz.State: modifyGS :: GraphvizStateM m => (GraphvizState -> GraphvizState) -> m ()
- Data.GraphViz.State: setColorScheme :: GraphvizStateM m => ColorScheme -> m ()
- Data.GraphViz.State: setDirectedness :: GraphvizStateM m => Bool -> m ()
- Data.GraphViz.State: setLayerSep :: GraphvizStateM m => [Char] -> m ()
+ Data.GraphViz.Attributes: InEdges :: Order
+ Data.GraphViz.Attributes: MaxRank :: RankType
+ Data.GraphViz.Attributes: MinRank :: RankType
+ Data.GraphViz.Attributes: OutEdges :: Order
+ Data.GraphViz.Attributes: SameRank :: RankType
+ Data.GraphViz.Attributes: SinkRank :: RankType
+ Data.GraphViz.Attributes: SourceRank :: RankType
+ Data.GraphViz.Attributes: bgColors :: NamedColor nc => nc -> nc -> Attribute
+ Data.GraphViz.Attributes: data Order
+ Data.GraphViz.Attributes: data RankType
+ Data.GraphViz.Attributes: fillColors :: NamedColor nc => nc -> nc -> Attribute
+ Data.GraphViz.Attributes: forceLabels :: Attribute
+ Data.GraphViz.Attributes: gradientAngle :: Int -> Attribute
+ Data.GraphViz.Attributes: instance Labellable Label
+ Data.GraphViz.Attributes: instance Labellable Table
+ Data.GraphViz.Attributes: ordering :: Order -> Attribute
+ Data.GraphViz.Attributes: radial :: Style
+ Data.GraphViz.Attributes: rank :: RankType -> Attribute
+ Data.GraphViz.Attributes: tapered :: Style
+ Data.GraphViz.Attributes: xLabel :: Labellable a => a -> Attribute
+ Data.GraphViz.Attributes: xTextLabel :: Text -> Attribute
+ Data.GraphViz.Attributes.Colors: SVG :: ColorScheme
+ Data.GraphViz.Attributes.Colors: SVGColor :: SVGColor -> Color
+ Data.GraphViz.Attributes.Colors: class NamedColor nc
+ Data.GraphViz.Attributes.Colors: instance NamedColor BrewerColor
+ Data.GraphViz.Attributes.Colors: instance NamedColor SVGColor
+ Data.GraphViz.Attributes.Colors: instance NamedColor X11Color
+ Data.GraphViz.Attributes.Colors: toColor :: NamedColor nc => nc -> Color
+ Data.GraphViz.Attributes.Colors.Brewer: Accent :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: BC :: BrewerScheme -> Word8 -> BrewerColor
+ Data.GraphViz.Attributes.Colors.Brewer: BScheme :: BrewerName -> Word8 -> BrewerScheme
+ Data.GraphViz.Attributes.Colors.Brewer: Blues :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Brbg :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Bugn :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Bupu :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Dark2 :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Gnbu :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Greens :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Greys :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Oranges :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Orrd :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Paired :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Pastel1 :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Pastel2 :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Piyg :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Prgn :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Pubu :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Pubugn :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Puor :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Purd :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Purples :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Rdbu :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Rdgy :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Rdpu :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Rdylbu :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Rdylgn :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Reds :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Set1 :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Set2 :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Set3 :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Spectral :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Ylgn :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Ylgnbu :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Ylorbr :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: Ylorrd :: BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: data BrewerColor
+ Data.GraphViz.Attributes.Colors.Brewer: data BrewerName
+ Data.GraphViz.Attributes.Colors.Brewer: data BrewerScheme
+ Data.GraphViz.Attributes.Colors.Brewer: instance Eq BrewerColor
+ Data.GraphViz.Attributes.Colors.Brewer: instance Ord BrewerColor
+ Data.GraphViz.Attributes.Colors.Brewer: instance Read BrewerColor
+ Data.GraphViz.Attributes.Colors.Brewer: instance Show BrewerColor
+ Data.GraphViz.Attributes.Colors.SVG: AliceBlue :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: AntiqueWhite :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Aqua :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Aquamarine :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Azure :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Beige :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Bisque :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Black :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: BlanchedAlmond :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Blue :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: BlueViolet :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Brown :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Burlywood :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: CadetBlue :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Chartreuse :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Chocolate :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Coral :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: CornflowerBlue :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Cornsilk :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Crimson :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Cyan :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: DarkBlue :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: DarkCyan :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: DarkGoldenrod :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: DarkGray :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: DarkGreen :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: DarkKhaki :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: DarkMagenta :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: DarkOliveGreen :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: DarkOrange :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: DarkOrchid :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: DarkRed :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: DarkSalmon :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: DarkSeaGreen :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: DarkSlateBlue :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: DarkSlateGray :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: DarkTurquoise :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: DarkViolet :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: DeepPink :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: DeepSkyBlue :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: DimGray :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: DodgerBlue :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Firebrick :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: FloralWhite :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: ForestGreen :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Fuchsia :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Gainsboro :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: GhostWhite :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Gold :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Goldenrod :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Gray :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Green :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: GreenYellow :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Honeydew :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: HotPink :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: IndianRed :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Indigo :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Ivory :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Khaki :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Lavender :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: LavenderBlush :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: LawnGreen :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: LemonChiffon :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: LightBlue :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: LightCoral :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: LightCyan :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: LightGoldenrodYellow :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: LightGray :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: LightGreen :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: LightPink :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: LightSalmon :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: LightSeaGreen :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: LightSkyBlue :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: LightSlateGray :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: LightSteelBlue :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: LightYellow :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Lime :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: LimeGreen :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Linen :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Magenta :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Maroon :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: MediumAquamarine :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: MediumBlue :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: MediumOrchid :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: MediumPurple :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: MediumSeaGreen :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: MediumSlateBlue :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: MediumSpringGreen :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: MediumTurquoise :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: MediumVioletRed :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: MidnightBlue :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: MintCream :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: MistyRose :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Moccasin :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: NavajoWhite :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Navy :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: OldLace :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Olive :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: OliveDrab :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Orange :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: OrangeRed :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Orchid :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: PaleGoldenrod :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: PaleGreen :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: PaleTurquoise :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: PaleVioletRed :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: PapayaWhip :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: PeachPuff :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Peru :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Pink :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Plum :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: PowderBlue :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Purple :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Red :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: RosyBrown :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: RoyalBlue :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: SaddleBrown :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Salmon :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: SandyBrown :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: SeaGreen :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: SeaShell :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Sienna :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Silver :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: SkyBlue :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: SlateBlue :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: SlateGray :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Snow :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: SpringGreen :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: SteelBlue :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Tan :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Teal :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Thistle :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Tomato :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Turquoise :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Violet :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Wheat :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: White :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: WhiteSmoke :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: Yellow :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: YellowGreen :: SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: data SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: instance Bounded SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: instance Enum SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: instance Eq SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: instance Ord SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: instance ParseDot SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: instance PrintDot SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: instance Read SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: instance Show SVGColor
+ Data.GraphViz.Attributes.Colors.SVG: svgColour :: SVGColor -> Colour Double
+ Data.GraphViz.Attributes.Colors.X11: AliceBlue :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: AntiqueWhite :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: AntiqueWhite1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: AntiqueWhite2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: AntiqueWhite3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: AntiqueWhite4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Aquamarine :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Aquamarine1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Aquamarine2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Aquamarine3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Aquamarine4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Azure :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Azure1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Azure2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Azure3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Azure4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Beige :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Bisque :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Bisque1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Bisque2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Bisque3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Bisque4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Black :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: BlanchedAlmond :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Blue :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Blue1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Blue2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Blue3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Blue4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: BlueViolet :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Brown :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Brown1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Brown2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Brown3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Brown4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Burlywood :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Burlywood1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Burlywood2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Burlywood3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Burlywood4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: CadetBlue :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: CadetBlue1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: CadetBlue2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: CadetBlue3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: CadetBlue4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Chartreuse :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Chartreuse1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Chartreuse2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Chartreuse3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Chartreuse4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Chocolate :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Chocolate1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Chocolate2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Chocolate3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Chocolate4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Coral :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Coral1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Coral2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Coral3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Coral4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: CornFlowerBlue :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: CornSilk :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: CornSilk1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: CornSilk2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: CornSilk3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: CornSilk4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Crimson :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Cyan :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Cyan1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Cyan2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Cyan3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Cyan4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkGoldenrod :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkGoldenrod1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkGoldenrod2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkGoldenrod3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkGoldenrod4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkGreen :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkOliveGreen :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkOliveGreen1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkOliveGreen2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkOliveGreen3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkOliveGreen4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkOrange :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkOrange1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkOrange2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkOrange3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkOrange4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkOrchid :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkOrchid1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkOrchid2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkOrchid3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkOrchid4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkSalmon :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkSeaGreen :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkSeaGreen1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkSeaGreen2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkSeaGreen3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkSeaGreen4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkSlateBlue :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkSlateGray :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkSlateGray1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkSlateGray2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkSlateGray3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkSlateGray4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkTurquoise :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DarkViolet :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Darkkhaki :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DeepPink :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DeepPink1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DeepPink2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DeepPink3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DeepPink4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DeepSkyBlue :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DeepSkyBlue1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DeepSkyBlue2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DeepSkyBlue3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DeepSkyBlue4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DimGray :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DodgerBlue :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DodgerBlue1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DodgerBlue2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DodgerBlue3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: DodgerBlue4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Firebrick :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Firebrick1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Firebrick2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Firebrick3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Firebrick4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: FloralWhite :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: ForestGreen :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gainsboro :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: GhostWhite :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gold :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gold1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gold2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gold3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gold4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Goldenrod :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Goldenrod1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Goldenrod2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Goldenrod3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Goldenrod4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray0 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray10 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray100 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray11 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray12 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray13 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray14 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray15 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray16 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray17 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray18 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray19 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray20 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray21 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray22 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray23 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray24 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray25 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray26 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray27 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray28 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray29 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray30 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray31 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray32 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray33 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray34 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray35 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray36 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray37 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray38 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray39 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray40 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray41 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray42 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray43 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray44 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray45 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray46 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray47 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray48 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray49 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray5 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray50 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray51 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray52 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray53 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray54 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray55 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray56 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray57 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray58 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray59 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray6 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray60 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray61 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray62 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray63 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray64 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray65 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray66 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray67 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray68 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray69 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray7 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray70 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray71 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray72 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray73 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray74 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray75 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray76 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray77 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray78 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray79 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray8 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray80 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray81 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray82 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray83 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray84 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray85 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray86 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray87 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray88 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray89 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray9 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray90 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray91 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray92 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray93 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray94 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray95 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray96 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray97 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray98 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Gray99 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Green :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Green1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Green2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Green3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Green4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: GreenYellow :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: HoneyDew :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: HoneyDew1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: HoneyDew2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: HoneyDew3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: HoneyDew4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: HotPink :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: HotPink1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: HotPink2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: HotPink3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: HotPink4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: IndianRed :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: IndianRed1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: IndianRed2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: IndianRed3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: IndianRed4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Indigo :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Ivory :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Ivory1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Ivory2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Ivory3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Ivory4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Khaki :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Khaki1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Khaki2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Khaki3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Khaki4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Lavender :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LavenderBlush :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LavenderBlush1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LavenderBlush2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LavenderBlush3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LavenderBlush4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LawnGreen :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LemonChiffon :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LemonChiffon1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LemonChiffon2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LemonChiffon3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LemonChiffon4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightBlue :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightBlue1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightBlue2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightBlue3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightBlue4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightCoral :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightCyan :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightCyan1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightCyan2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightCyan3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightCyan4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightGoldenrod :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightGoldenrod1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightGoldenrod2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightGoldenrod3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightGoldenrod4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightGoldenrodYellow :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightGray :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightPink :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightPink1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightPink2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightPink3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightPink4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightSalmon :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightSalmon1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightSalmon2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightSalmon3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightSalmon4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightSeaGreen :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightSkyBlue :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightSkyBlue1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightSkyBlue2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightSkyBlue3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightSkyBlue4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightSlateBlue :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightSlateGray :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightSteelBlue :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightSteelBlue1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightSteelBlue2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightSteelBlue3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightSteelBlue4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightYellow :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightYellow1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightYellow2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightYellow3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LightYellow4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: LimeGreen :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Linen :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Magenta :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Magenta1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Magenta2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Magenta3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Magenta4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Maroon :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Maroon1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Maroon2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Maroon3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Maroon4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MediumAquamarine :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MediumBlue :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MediumOrchid :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MediumOrchid1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MediumOrchid2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MediumOrchid3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MediumOrchid4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MediumPurple :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MediumPurple1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MediumPurple2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MediumPurple3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MediumPurple4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MediumSeaGreen :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MediumSlateBlue :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MediumSpringGreen :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MediumTurquoise :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MediumVioletRed :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MidnightBlue :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MintCream :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MistyRose :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MistyRose1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MistyRose2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MistyRose3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: MistyRose4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Moccasin :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: NavajoWhite :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: NavajoWhite1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: NavajoWhite2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: NavajoWhite3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: NavajoWhite4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Navy :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: NavyBlue :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: OldLace :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: OliveDrab :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: OliveDrab1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: OliveDrab2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: OliveDrab3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: OliveDrab4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Orange :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Orange1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Orange2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Orange3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Orange4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: OrangeRed :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: OrangeRed1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: OrangeRed2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: OrangeRed3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: OrangeRed4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Orchid :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Orchid1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Orchid2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Orchid3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Orchid4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: PaleGoldenrod :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: PaleGreen :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: PaleGreen1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: PaleGreen2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: PaleGreen3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: PaleGreen4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: PaleTurquoise :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: PaleTurquoise1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: PaleTurquoise2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: PaleTurquoise3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: PaleTurquoise4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: PaleVioletRed :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: PaleVioletRed1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: PaleVioletRed2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: PaleVioletRed3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: PaleVioletRed4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: PapayaWhip :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: PeachPuff :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: PeachPuff1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: PeachPuff2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: PeachPuff3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: PeachPuff4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Peru :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Pink :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Pink1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Pink2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Pink3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Pink4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Plum :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Plum1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Plum2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Plum3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Plum4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: PowderBlue :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Purple :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Purple1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Purple2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Purple3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Purple4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Red :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Red1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Red2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Red3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Red4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: RosyBrown :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: RosyBrown1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: RosyBrown2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: RosyBrown3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: RosyBrown4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: RoyalBlue :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: RoyalBlue1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: RoyalBlue2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: RoyalBlue3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: RoyalBlue4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SaddleBrown :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Salmon :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Salmon1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Salmon2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Salmon3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Salmon4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SandyBrown :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SeaGreen :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SeaGreen1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SeaGreen2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SeaGreen3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SeaGreen4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SeaShell :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SeaShell1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SeaShell2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SeaShell3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SeaShell4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Sienna :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Sienna1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Sienna2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Sienna3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Sienna4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SkyBlue :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SkyBlue1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SkyBlue2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SkyBlue3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SkyBlue4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SlateBlue :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SlateBlue1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SlateBlue2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SlateBlue3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SlateBlue4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SlateGray :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SlateGray1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SlateGray2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SlateGray3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SlateGray4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Snow :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Snow1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Snow2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Snow3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Snow4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SpringGreen :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SpringGreen1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SpringGreen2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SpringGreen3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SpringGreen4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SteelBlue :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SteelBlue1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SteelBlue2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SteelBlue3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: SteelBlue4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Tan :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Tan1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Tan2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Tan3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Tan4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Thistle :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Thistle1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Thistle2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Thistle3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Thistle4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Tomato :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Tomato1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Tomato2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Tomato3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Tomato4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Transparent :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Turquoise :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Turquoise1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Turquoise2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Turquoise3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Turquoise4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Violet :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: VioletRed :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: VioletRed1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: VioletRed2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: VioletRed3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: VioletRed4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Wheat :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Wheat1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Wheat2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Wheat3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Wheat4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: White :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: WhiteSmoke :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Yellow :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Yellow1 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Yellow2 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Yellow3 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: Yellow4 :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: YellowGreen :: X11Color
+ Data.GraphViz.Attributes.Colors.X11: data X11Color
+ Data.GraphViz.Attributes.Colors.X11: instance Bounded X11Color
+ Data.GraphViz.Attributes.Colors.X11: instance Enum X11Color
+ Data.GraphViz.Attributes.Colors.X11: instance Eq X11Color
+ Data.GraphViz.Attributes.Colors.X11: instance Ord X11Color
+ Data.GraphViz.Attributes.Colors.X11: instance ParseDot X11Color
+ Data.GraphViz.Attributes.Colors.X11: instance PrintDot X11Color
+ Data.GraphViz.Attributes.Colors.X11: instance Read X11Color
+ Data.GraphViz.Attributes.Colors.X11: instance Show X11Color
+ Data.GraphViz.Attributes.Colors.X11: x11Colour :: X11Color -> AlphaColour Double
+ Data.GraphViz.Attributes.Complete: BoundingBox :: Rect -> Attribute
+ Data.GraphViz.Attributes.Complete: CloseToCenter :: LabelScheme
+ Data.GraphViz.Attributes.Complete: CloseToOldCenter :: LabelScheme
+ Data.GraphViz.Attributes.Complete: ForceLabels :: Bool -> Attribute
+ Data.GraphViz.Attributes.Complete: GradientAngle :: Int -> Attribute
+ Data.GraphViz.Attributes.Complete: ImagePath :: Paths -> Attribute
+ Data.GraphViz.Attributes.Complete: InEdges :: Order
+ Data.GraphViz.Attributes.Complete: LHeight :: Double -> Attribute
+ Data.GraphViz.Attributes.Complete: LWidth :: Double -> Attribute
+ Data.GraphViz.Attributes.Complete: LabelScheme :: LabelScheme -> Attribute
+ Data.GraphViz.Attributes.Complete: NotEdgeLabel :: LabelScheme
+ Data.GraphViz.Attributes.Complete: OutEdges :: Order
+ Data.GraphViz.Attributes.Complete: Paths :: [FilePath] -> Paths
+ Data.GraphViz.Attributes.Complete: Radial :: StyleName
+ Data.GraphViz.Attributes.Complete: RemoveAndStraighten :: LabelScheme
+ Data.GraphViz.Attributes.Complete: Rotation :: Double -> Attribute
+ Data.GraphViz.Attributes.Complete: Scale :: DPoint -> Attribute
+ Data.GraphViz.Attributes.Complete: Tapered :: StyleName
+ Data.GraphViz.Attributes.Complete: XLabel :: Label -> Attribute
+ Data.GraphViz.Attributes.Complete: data LabelScheme
+ Data.GraphViz.Attributes.Complete: data Order
+ Data.GraphViz.Attributes.Complete: instance Bounded LabelScheme
+ Data.GraphViz.Attributes.Complete: instance Bounded Order
+ Data.GraphViz.Attributes.Complete: instance Enum LabelScheme
+ Data.GraphViz.Attributes.Complete: instance Enum Order
+ Data.GraphViz.Attributes.Complete: instance Eq LabelScheme
+ Data.GraphViz.Attributes.Complete: instance Eq Order
+ Data.GraphViz.Attributes.Complete: instance Eq Paths
+ Data.GraphViz.Attributes.Complete: instance Ord LabelScheme
+ Data.GraphViz.Attributes.Complete: instance Ord Order
+ Data.GraphViz.Attributes.Complete: instance Ord Paths
+ Data.GraphViz.Attributes.Complete: instance ParseDot LabelScheme
+ Data.GraphViz.Attributes.Complete: instance ParseDot Order
+ Data.GraphViz.Attributes.Complete: instance ParseDot Paths
+ Data.GraphViz.Attributes.Complete: instance PrintDot LabelScheme
+ Data.GraphViz.Attributes.Complete: instance PrintDot Order
+ Data.GraphViz.Attributes.Complete: instance PrintDot Paths
+ Data.GraphViz.Attributes.Complete: instance Read LabelScheme
+ Data.GraphViz.Attributes.Complete: instance Read Order
+ Data.GraphViz.Attributes.Complete: instance Read Paths
+ Data.GraphViz.Attributes.Complete: instance Show LabelScheme
+ Data.GraphViz.Attributes.Complete: instance Show Order
+ Data.GraphViz.Attributes.Complete: instance Show Paths
+ Data.GraphViz.Attributes.Complete: newtype Paths
+ Data.GraphViz.Attributes.Complete: paths :: Paths -> [FilePath]
+ Data.GraphViz.Attributes.HTML: Align :: Align -> Attribute
+ Data.GraphViz.Attributes.HTML: BAlign :: Align -> Attribute
+ Data.GraphViz.Attributes.HTML: BGColor :: Color -> Attribute
+ Data.GraphViz.Attributes.HTML: Bold :: Format
+ Data.GraphViz.Attributes.HTML: Border :: Word8 -> Attribute
+ Data.GraphViz.Attributes.HTML: CellBorder :: Word8 -> Attribute
+ Data.GraphViz.Attributes.HTML: CellPadding :: Word8 -> Attribute
+ Data.GraphViz.Attributes.HTML: CellSpacing :: Word8 -> Attribute
+ Data.GraphViz.Attributes.HTML: Cells :: [Cell] -> Row
+ Data.GraphViz.Attributes.HTML: ColSpan :: Word16 -> Attribute
+ Data.GraphViz.Attributes.HTML: Color :: Color -> Attribute
+ Data.GraphViz.Attributes.HTML: ExpandBoth :: Scale
+ Data.GraphViz.Attributes.HTML: ExpandHeight :: Scale
+ Data.GraphViz.Attributes.HTML: ExpandWidth :: Scale
+ Data.GraphViz.Attributes.HTML: Face :: Text -> Attribute
+ Data.GraphViz.Attributes.HTML: FixedSize :: Bool -> Attribute
+ Data.GraphViz.Attributes.HTML: Font :: Attributes -> Text -> TextItem
+ Data.GraphViz.Attributes.HTML: Format :: Format -> Text -> TextItem
+ Data.GraphViz.Attributes.HTML: HRef :: Text -> Attribute
+ Data.GraphViz.Attributes.HTML: Height :: Word16 -> Attribute
+ Data.GraphViz.Attributes.HTML: HorizontalRule :: Row
+ Data.GraphViz.Attributes.HTML: ID :: Text -> Attribute
+ Data.GraphViz.Attributes.HTML: Img :: Attributes -> Img
+ Data.GraphViz.Attributes.HTML: ImgCell :: Attributes -> Img -> Cell
+ Data.GraphViz.Attributes.HTML: Italics :: Format
+ Data.GraphViz.Attributes.HTML: LabelCell :: Attributes -> Label -> Cell
+ Data.GraphViz.Attributes.HTML: NaturalSize :: Scale
+ Data.GraphViz.Attributes.HTML: Newline :: Attributes -> TextItem
+ Data.GraphViz.Attributes.HTML: PointSize :: Double -> Attribute
+ Data.GraphViz.Attributes.HTML: Port :: PortName -> Attribute
+ Data.GraphViz.Attributes.HTML: RowSpan :: Word16 -> Attribute
+ Data.GraphViz.Attributes.HTML: Scale :: Scale -> Attribute
+ Data.GraphViz.Attributes.HTML: ScaleUniformly :: Scale
+ Data.GraphViz.Attributes.HTML: Src :: FilePath -> Attribute
+ Data.GraphViz.Attributes.HTML: Str :: Text -> TextItem
+ Data.GraphViz.Attributes.HTML: Subscript :: Format
+ Data.GraphViz.Attributes.HTML: Superscript :: Format
+ Data.GraphViz.Attributes.HTML: Table :: Table -> Label
+ Data.GraphViz.Attributes.HTML: Target :: Text -> Attribute
+ Data.GraphViz.Attributes.HTML: Text :: Text -> Label
+ Data.GraphViz.Attributes.HTML: Title :: Text -> Attribute
+ Data.GraphViz.Attributes.HTML: Underline :: Format
+ Data.GraphViz.Attributes.HTML: VAlign :: VAlign -> Attribute
+ Data.GraphViz.Attributes.HTML: VerticalRule :: Cell
+ Data.GraphViz.Attributes.HTML: Width :: Word16 -> Attribute
+ Data.GraphViz.Attributes.HTML: data Align
+ Data.GraphViz.Attributes.HTML: data Attribute
+ Data.GraphViz.Attributes.HTML: data Cell
+ Data.GraphViz.Attributes.HTML: data Format
+ Data.GraphViz.Attributes.HTML: data Label
+ Data.GraphViz.Attributes.HTML: data Row
+ Data.GraphViz.Attributes.HTML: data Scale
+ Data.GraphViz.Attributes.HTML: data Table
+ Data.GraphViz.Attributes.HTML: data TextItem
+ Data.GraphViz.Attributes.HTML: data VAlign
+ Data.GraphViz.Attributes.HTML: instance Bounded Align
+ Data.GraphViz.Attributes.HTML: instance Bounded Format
+ Data.GraphViz.Attributes.HTML: instance Bounded Scale
+ Data.GraphViz.Attributes.HTML: instance Bounded VAlign
+ Data.GraphViz.Attributes.HTML: instance Enum Align
+ Data.GraphViz.Attributes.HTML: instance Enum Format
+ Data.GraphViz.Attributes.HTML: instance Enum Scale
+ Data.GraphViz.Attributes.HTML: instance Enum VAlign
+ Data.GraphViz.Attributes.HTML: instance Eq Align
+ Data.GraphViz.Attributes.HTML: instance Eq Attribute
+ Data.GraphViz.Attributes.HTML: instance Eq Cell
+ Data.GraphViz.Attributes.HTML: instance Eq Format
+ Data.GraphViz.Attributes.HTML: instance Eq Img
+ Data.GraphViz.Attributes.HTML: instance Eq Label
+ Data.GraphViz.Attributes.HTML: instance Eq Row
+ Data.GraphViz.Attributes.HTML: instance Eq Scale
+ Data.GraphViz.Attributes.HTML: instance Eq Table
+ Data.GraphViz.Attributes.HTML: instance Eq TextItem
+ Data.GraphViz.Attributes.HTML: instance Eq VAlign
+ Data.GraphViz.Attributes.HTML: instance Ord Align
+ Data.GraphViz.Attributes.HTML: instance Ord Attribute
+ Data.GraphViz.Attributes.HTML: instance Ord Cell
+ Data.GraphViz.Attributes.HTML: instance Ord Format
+ Data.GraphViz.Attributes.HTML: instance Ord Img
+ Data.GraphViz.Attributes.HTML: instance Ord Label
+ Data.GraphViz.Attributes.HTML: instance Ord Row
+ Data.GraphViz.Attributes.HTML: instance Ord Scale
+ Data.GraphViz.Attributes.HTML: instance Ord Table
+ Data.GraphViz.Attributes.HTML: instance Ord TextItem
+ Data.GraphViz.Attributes.HTML: instance Ord VAlign
+ Data.GraphViz.Attributes.HTML: instance ParseDot Align
+ Data.GraphViz.Attributes.HTML: instance ParseDot Attribute
+ Data.GraphViz.Attributes.HTML: instance ParseDot Cell
+ Data.GraphViz.Attributes.HTML: instance ParseDot Format
+ Data.GraphViz.Attributes.HTML: instance ParseDot Img
+ Data.GraphViz.Attributes.HTML: instance ParseDot Label
+ Data.GraphViz.Attributes.HTML: instance ParseDot Row
+ Data.GraphViz.Attributes.HTML: instance ParseDot Scale
+ Data.GraphViz.Attributes.HTML: instance ParseDot Table
+ Data.GraphViz.Attributes.HTML: instance ParseDot TextItem
+ Data.GraphViz.Attributes.HTML: instance ParseDot VAlign
+ Data.GraphViz.Attributes.HTML: instance PrintDot Align
+ Data.GraphViz.Attributes.HTML: instance PrintDot Attribute
+ Data.GraphViz.Attributes.HTML: instance PrintDot Cell
+ Data.GraphViz.Attributes.HTML: instance PrintDot Format
+ Data.GraphViz.Attributes.HTML: instance PrintDot Img
+ Data.GraphViz.Attributes.HTML: instance PrintDot Label
+ Data.GraphViz.Attributes.HTML: instance PrintDot Row
+ Data.GraphViz.Attributes.HTML: instance PrintDot Scale
+ Data.GraphViz.Attributes.HTML: instance PrintDot Table
+ Data.GraphViz.Attributes.HTML: instance PrintDot TextItem
+ Data.GraphViz.Attributes.HTML: instance PrintDot VAlign
+ Data.GraphViz.Attributes.HTML: instance Read Align
+ Data.GraphViz.Attributes.HTML: instance Read Attribute
+ Data.GraphViz.Attributes.HTML: instance Read Cell
+ Data.GraphViz.Attributes.HTML: instance Read Format
+ Data.GraphViz.Attributes.HTML: instance Read Img
+ Data.GraphViz.Attributes.HTML: instance Read Label
+ Data.GraphViz.Attributes.HTML: instance Read Row
+ Data.GraphViz.Attributes.HTML: instance Read Scale
+ Data.GraphViz.Attributes.HTML: instance Read Table
+ Data.GraphViz.Attributes.HTML: instance Read TextItem
+ Data.GraphViz.Attributes.HTML: instance Read VAlign
+ Data.GraphViz.Attributes.HTML: instance Show Align
+ Data.GraphViz.Attributes.HTML: instance Show Attribute
+ Data.GraphViz.Attributes.HTML: instance Show Cell
+ Data.GraphViz.Attributes.HTML: instance Show Format
+ Data.GraphViz.Attributes.HTML: instance Show Img
+ Data.GraphViz.Attributes.HTML: instance Show Label
+ Data.GraphViz.Attributes.HTML: instance Show Row
+ Data.GraphViz.Attributes.HTML: instance Show Scale
+ Data.GraphViz.Attributes.HTML: instance Show Table
+ Data.GraphViz.Attributes.HTML: instance Show TextItem
+ Data.GraphViz.Attributes.HTML: instance Show VAlign
+ Data.GraphViz.Attributes.HTML: newtype Img
+ Data.GraphViz.Attributes.HTML: type Attributes = [Attribute]
+ Data.GraphViz.Attributes.HTML: type Text = [TextItem]
+ Data.GraphViz.Commands: Osage :: GraphvizCommand
+ Data.GraphViz.Commands: Patchwork :: GraphvizCommand
+ Data.GraphViz.Commands: WebP :: GraphvizOutput
+ Data.GraphViz.Parsing: parseColorScheme :: Bool -> Parse ColorScheme
+ Data.GraphViz.Parsing: whitespace1 :: Parse ()
+ Data.GraphViz.Printing: printColorScheme :: Bool -> ColorScheme -> DotCode
+ Data.GraphViz.Types: class ParseDot a where parse = optionalQuoted parseUnqt parseUnqtList = bracketSep (parseAndSpace $ character '[') (wrapWhitespace parseComma `onFail` whitespace1) (whitespace >> character ']') parseUnqt parseList = quotedParse parseUnqtList
+ Data.GraphViz.Types: class PrintDot a where toDot = unqtDot unqtListToDot = list . mapM unqtDot listToDot = dquotes . unqtListToDot
+ Data.GraphViz.Types: class ToGraphID a
+ Data.GraphViz.Types: instance ToGraphID Char
+ Data.GraphViz.Types: instance ToGraphID Double
+ Data.GraphViz.Types: instance ToGraphID Int
+ Data.GraphViz.Types: instance ToGraphID Integer
+ Data.GraphViz.Types: instance ToGraphID String
+ Data.GraphViz.Types: instance ToGraphID Text
+ Data.GraphViz.Types: listToDot :: PrintDot a => [a] -> DotCode
+ Data.GraphViz.Types: parse :: ParseDot a => Parse a
+ Data.GraphViz.Types: parseList :: ParseDot a => Parse [a]
+ Data.GraphViz.Types: parseUnqt :: ParseDot a => Parse a
+ Data.GraphViz.Types: parseUnqtList :: ParseDot a => Parse [a]
+ Data.GraphViz.Types: textGraphID :: Text -> GraphID
+ Data.GraphViz.Types: toDot :: PrintDot a => a -> DotCode
+ Data.GraphViz.Types: toGraphID :: ToGraphID a => a -> GraphID
+ Data.GraphViz.Types: unqtDot :: PrintDot a => a -> DotCode
+ Data.GraphViz.Types: unqtListToDot :: PrintDot a => [a] -> DotCode
- Data.GraphViz.Attributes: bgColor :: X11Color -> Attribute
+ Data.GraphViz.Attributes: bgColor :: NamedColor nc => nc -> Attribute
- Data.GraphViz.Attributes: color :: X11Color -> Attribute
+ Data.GraphViz.Attributes: color :: NamedColor nc => nc -> Attribute
- Data.GraphViz.Attributes: fillColor :: X11Color -> Attribute
+ Data.GraphViz.Attributes: fillColor :: NamedColor nc => nc -> Attribute
- Data.GraphViz.Attributes: fontColor :: X11Color -> Attribute
+ Data.GraphViz.Attributes: fontColor :: NamedColor nc => nc -> Attribute
- Data.GraphViz.Attributes: penColor :: X11Color -> Attribute
+ Data.GraphViz.Attributes: penColor :: NamedColor nc => nc -> Attribute
- Data.GraphViz.Attributes.Colors: BrewerColor :: BrewerScheme -> Word8 -> Color
+ Data.GraphViz.Attributes.Colors: BrewerColor :: BrewerColor -> Color
- Data.GraphViz.Attributes.Complete: BgColor :: Color -> Attribute
+ Data.GraphViz.Attributes.Complete: BgColor :: [Color] -> Attribute
- Data.GraphViz.Attributes.Complete: FillColor :: Color -> Attribute
+ Data.GraphViz.Attributes.Complete: FillColor :: [Color] -> Attribute
- Data.GraphViz.Attributes.Complete: HtmlLabel :: HtmlLabel -> Label
+ Data.GraphViz.Attributes.Complete: HtmlLabel :: Label -> Label
- Data.GraphViz.Attributes.Complete: ID :: Label -> Attribute
+ Data.GraphViz.Attributes.Complete: ID :: EscString -> Attribute
- Data.GraphViz.Attributes.Complete: Ordering :: Text -> Attribute
+ Data.GraphViz.Attributes.Complete: Ordering :: Order -> Attribute
- Data.GraphViz.Attributes.HTML: HBottom :: HtmlVAlign
+ Data.GraphViz.Attributes.HTML: HBottom :: VAlign
- Data.GraphViz.Attributes.HTML: HCenter :: HtmlAlign
+ Data.GraphViz.Attributes.HTML: HCenter :: Align
- Data.GraphViz.Attributes.HTML: HLeft :: HtmlAlign
+ Data.GraphViz.Attributes.HTML: HLeft :: Align
- Data.GraphViz.Attributes.HTML: HMiddle :: HtmlVAlign
+ Data.GraphViz.Attributes.HTML: HMiddle :: VAlign
- Data.GraphViz.Attributes.HTML: HRight :: HtmlAlign
+ Data.GraphViz.Attributes.HTML: HRight :: Align
- Data.GraphViz.Attributes.HTML: HTable :: Maybe HtmlAttributes -> HtmlAttributes -> [HtmlRow] -> HtmlTable
+ Data.GraphViz.Attributes.HTML: HTable :: Maybe Attributes -> Attributes -> [Row] -> Table
- Data.GraphViz.Attributes.HTML: HText :: HtmlAlign
+ Data.GraphViz.Attributes.HTML: HText :: Align
- Data.GraphViz.Attributes.HTML: HTop :: HtmlVAlign
+ Data.GraphViz.Attributes.HTML: HTop :: VAlign
- Data.GraphViz.Attributes.HTML: tableAttrs :: HtmlTable -> HtmlAttributes
+ Data.GraphViz.Attributes.HTML: tableAttrs :: Table -> Attributes
- Data.GraphViz.Attributes.HTML: tableFontAttrs :: HtmlTable -> Maybe HtmlAttributes
+ Data.GraphViz.Attributes.HTML: tableFontAttrs :: Table -> Maybe Attributes
- Data.GraphViz.Attributes.HTML: tableRows :: HtmlTable -> [HtmlRow]
+ Data.GraphViz.Attributes.HTML: tableRows :: Table -> [Row]
- Data.GraphViz.Parsing: class ParseDot a
+ Data.GraphViz.Parsing: class ParseDot a where parse = optionalQuoted parseUnqt parseUnqtList = bracketSep (parseAndSpace $ character '[') (wrapWhitespace parseComma `onFail` whitespace1) (whitespace >> character ']') parseUnqt parseList = quotedParse parseUnqtList
- Data.GraphViz.Printing: class PrintDot a
+ Data.GraphViz.Printing: class PrintDot a where toDot = unqtDot unqtListToDot = list . mapM unqtDot listToDot = dquotes . unqtListToDot

Files

Changelog view
@@ -1,4 +1,4 @@-% graphviz - Changelog+% Changelog % Ivan Lazar Miljenovic  Release History and Changelog@@ -10,11 +10,91 @@ Changes in 2999.13.0.0 ---------------------- -* Added support for the `osage` and `patchwork` visualisation tools.+* Added support for the `osage` and `patchwork` visualisation tools,+  available as of Graphviz-2.28.0. -* Now uses Dot semantics as of Graphviz-2.28.0.  The only change is-  when parsing the Attribute `overlap=false`; this is now equivalent-  to `overlap=prism`.+* Updated attributes as of Graphviz-2.28.0:++    - `SVG` colors are now supported, and the support for different+      colors has been revamped.++    - `overlap=false` is now equivalent to `overlap=prism` and the+      `RemoveOverlaps` option has been removed.++    - `LabelScheme` and `Rotation` are new attributes for use with+      `sfdp`.++    - `Scale` is a new attribute for use with `twopi`.++    - Add new italics, bold, underline, superscript and subscript+      options for HTML-like labels.++    - `LHeight` and `LWidth` for getting the height and width of the+      root graph and clusters.++* Updated attributes from the current development branch of Graphviz+  (i.e. 2.29.*).  Please note that these will probably not work yet,+  but are implemented now for future-proofing.++    - A new style for edges: `Tapered`.++    - `XLabel` allows you to specify labels external to a node or+      edge.  `ForceLabels` allow you to specify that these should be+      drawn even when they will cause overlaps.++    - `ImagePath` allows you to specify where to search for images.++    - HTML-like labels now support `ID` values as well as horizontal+      and vertical rules.++    - `BgColor` and `FillColor` now take a list of colors: this allows+      gradient fills for graphs, clusters and nodes.  The `Radial`+      style and `GradientAngle` are also used for this purpose.++    - `FillColor` is now used by edges to set the color of any arrows.++    - [WebP](http://en.wikipedia.org/wiki/WebP) output support added.++* Other attribute changes:++    - Use a specified data type for the `Ordering` attribute rather+      than an arbitrary `Text` value, and provide a documented wrapper+      in `Data.GraphViz.Attributes`.++    - `Bb` has been renamed `BoundingBox`.++    - `ID` now only takes `EscString` (a type alias for `Text`) values+      rather than arbitrary `Label`s.++    - The `Data.GraphViz.Attributes.HTML` module has had all values+      re-named and is now meant to be imported qualified.  It is also+      no longer re-exported from `Data.GraphViz.Attributes.Complete`.++* The `ToGraphID` class provides a common wrapper to help create+  cluster identifiers, etc.++* Cabal's `Test-Suite` functionality is now used.  As part of this,+  the `Data.GraphViz.Testing` module and sub-modules are no longer+  exported by the library.++* The new `Benchmark` support in Cabal-1.14 is now used for the+  benchmark script.++* Dropped support for base-3.++* The `Data.GraphViz.State` module is no longer exposed, as there's no+  need for users to use it.++* Bugfixes:++    - Some corner cases in canonicalisation prevented it from being+      idempotent.++    - The `TestParsing` script will no longer crash and refuse to+      continue if an IO-based error (e.g. unable to successfully call+      `dot`) occurs.++    - A typo was spotted by **Gabor Greif**.  Changes in 2999.12.0.4 ----------------------
Data/GraphViz/Algorithms.hs view
@@ -118,11 +118,16 @@                        , EdgeAttrs topEAs                        ]     nUnlook (n,(p,as)) = (F.toList p, DotNode n as)+    -- DotNodes paired and sorted by their paths     ns = sortBy (compLists `on` fst) . map nUnlook $ Map.toList nl+    -- nodes in clusters vs top-level     (clustNs, topNs) = thisLevel ns+    -- edges in clusters vs top-level     (clustEL, topEs) = if edgesInClusters opts                        then edgeClusters nl es                        else (Map.empty, es)++    -- The global attributes that are also applicable to clusters.     topClustAs = filter usedByClusters $ attrs gas     topClustAs' = toSAttr topClustAs @@ -140,41 +145,62 @@                                         . groupBy ((==) `on` (listToMaybe . fst))      -- Create a new cluster.+    -- oAs - outer cluster attributes+    -- nAs - outer node attributes+    -- eAs - outer edge attributes+    -- (*S variants are same thing but as sets; premature optimisation?)+    -- cns - nodes in this cluster     toClust oAs oAsS nAs nAsS eAs eAsS cns       = DotSG { isCluster     = True               , subGraphID    = cID               , subGraphStmts = stmts               }       where+        -- Find the ID for this cluster.         cID = head . fst $ head cns++        -- Get the nodes that are deeper and the ones that belong+        -- here.         (nested, here) = thisLevel $ map (first tail) cns++         stmts = DotStmts { attrStmts = sgAs                          , subGraphs = subSGs                          , nodeStmts = here'                          , edgeStmts = edges'                          } +        -- Starting global attributes         sgAs = nonEmptyGAs [ GraphAttrs as'                            , NodeAttrs nas'                            , EdgeAttrs eas'                            ] +        -- Sub-clusters         subSGs = clusts as asS nas nasS eas easS nested +        -- The attributes attached to this cluster ID in the original.         as = attrs . snd $ cl Map.! cID         asS = toSAttr as-        as' = innerAttributes oAs oAsS as +        -- Get the global attributes that apply to this cluster,+        -- ignoring ones set globally.+        as' = fst $ innerAttributes oAs oAsS as++        -- The node attributes that can be stated globally.         nas = mCommon nodeAttributes here         nasS = toSAttr nas-        nas' = innerAttributes nAs nAsS nas-        here' = map (\dn -> dn {nodeAttributes = nodeAttributes dn \\ nas}) here+        (nas',nOv) = innerAttributes nAs nAsS nas +        -- The nodes that belong here, with updated attributes.+        here' = map (\dn -> dn {nodeAttributes = nodeAttributes dn \\ (nas ++ nOv)}) here+         eas = mCommon edgeAttributes edges         easS = toSAttr eas-        eas' = innerAttributes eAs eAsS eas-        edges' = map (\de -> de {edgeAttributes = edgeAttributes de \\ eas}) edges+        (eas',eOv) = innerAttributes eAs eAsS eas+        edges' = map (\de -> de {edgeAttributes = edgeAttributes de \\ (eas ++ eOv)}) edges +        -- Find edges that belong here         edges = fromMaybe [] $ cID `Map.lookup` clustEL      thisLevel = second (map snd) . span (not . null . fst)@@ -218,10 +244,10 @@           . map (last *** DList.singleton)  -- Return only those attributes that are required within the inner--- sub-graph.+-- sub-graph.  Also returns the overrides. innerAttributes                    :: Attributes -> SAttrs-                                      -> Attributes -> Attributes-innerAttributes outer outerS inner = sort $ inner' ++ override+                                      -> Attributes -> (Attributes, Attributes)+innerAttributes outer outerS inner = (sort $ inner' ++ override, override)   where     -- Remove all Attributes that are also defined in the outer cluster     inner' = inner \\ outer@@ -391,4 +417,3 @@                              let n' = toNode e                              unless (isMarked m n' || t' `Set.member` delSet)                                $ traverse t' n'-
Data/GraphViz/Attributes.hs view
@@ -25,19 +25,25 @@          -- $labels        , toLabel        , textLabel+       , xLabel+       , xTextLabel+       , forceLabels        , textLabelValue        , Labellable(..)          -- * Colors          -- $colors        , X11Color(..)        , bgColor+       , bgColors        , fillColor+       , fillColors        , fontColor        , penColor        , color          -- * Stylistic attributes          -- $styles        , penWidth+       , gradientAngle        , style        , styles        , Style@@ -49,6 +55,8 @@        , filled        , diagonals        , rounded+       , tapered+       , radial          -- * Node shapes        , shape        , Shape(..)@@ -76,9 +84,16 @@        , invODot        , oBox        , oDiamond+         -- * Layout+       , ordering+       , Order(..)+       , rank+       , RankType(..)        ) where  import Data.GraphViz.Attributes.Complete+import Data.GraphViz.Attributes.Colors.X11+import qualified Data.GraphViz.Attributes.HTML as Html  import qualified Data.Text.Lazy as T import Data.Text.Lazy(Text)@@ -124,12 +139,25 @@ toLabel :: (Labellable a) => a -> Attribute toLabel = Label . toLabelValue --- | An alias for 'toLabel' for use with the OverloadedStrings+-- | An alias for 'toLabel' for use with the @OverloadedStrings@ --   extension. textLabel :: Text -> Attribute textLabel = toLabel --- | An alias for 'toLabelValue' for use with the OverloadedStrings+-- | Create a label /outside/ of a node\/edge.  Currently only in the+-- | Graphviz development branch (2.29.*).+xLabel :: (Labellable a) => a -> Attribute+xLabel = XLabel . toLabelValue++-- | An alias for 'xLabel' for use with the @OverloadedStrings@ extension.+xTextLabel :: Text -> Attribute+xTextLabel = xLabel++-- | Force the positioning of 'xLabel's, even when it will cause overlaps.+forceLabels :: Attribute+forceLabels = ForceLabels True++-- | An alias for 'toLabelValue' for use with the @OverloadedStrings@ --   extension. textLabelValue :: Text -> Label textLabelValue = toLabelValue@@ -152,14 +180,14 @@ instance Labellable Bool where   toLabelValue = toLabelValue . show -instance Labellable HtmlLabel where+instance Labellable Html.Label where   toLabelValue = HtmlLabel -instance Labellable HtmlText where-  toLabelValue = toLabelValue . HtmlText+instance Labellable Html.Text where+  toLabelValue = toLabelValue . Html.Text -instance Labellable HtmlTable where-  toLabelValue = toLabelValue . HtmlTable+instance Labellable Html.Table where+  toLabelValue = toLabelValue . Html.Table  instance Labellable RecordFields where   toLabelValue = RecordLabel@@ -180,27 +208,46 @@ {- $colors     The recommended way of dealing with colors in Dot graphs is to use the-   named 'X11Colors' rather than explicitly specifying RGB, RGBA or HSV+   named 'X11Color's rather than explicitly specifying RGB, RGBA or HSV    colors. +   These functions also allow you to use SVG and Brewer colors, but+   X11 colors are generally preferable.  If you wish to use SVG+   colors, either import this module hiding 'X11Color' or import the+   SVG module qualified.+  -} --- | Specify the background color of a graph or cluster.  Requires---   @'style' 'filled'@.-bgColor :: X11Color -> Attribute-bgColor = BgColor . X11Color+-- | Specify the background color of a graph or cluster.  For+--   clusters, if @'style' 'filled'@ is used, then 'fillColor' will+--   override it.+bgColor :: (NamedColor nc) => nc -> Attribute+bgColor = BgColor . (:[]) . toColor --- | Specify the fill color of a node.  Requires @'style' 'filled'@.-fillColor :: X11Color -> Attribute-fillColor = FillColor . X11Color+-- | As with 'bgColor', but add a second color to create a gradient+--   effect.  Requires Graphviz >= 2.29.0.+bgColors       :: (NamedColor nc) => nc -> nc -> Attribute+bgColors c1 c2 = BgColor $ map toColor [c1,c2] +-- | Specify the fill color of a node, cluster or arrowhead.  Requires+--   @'style' 'filled'@ for nodes and clusters.  For nodes and edges,+--   if this isn't set then the 'color' value is used instead; for+--   clusters, 'bgColor' is used.+fillColor :: (NamedColor nc) => nc -> Attribute+fillColor = FillColor . (:[]) . toColor++-- | As with 'fillColor', but add a second color to create a gradient+--   effect.  Requires Graphviz >= 2.29.0.+fillColors       :: (NamedColor nc) => nc -> nc -> Attribute+fillColors c1 c2 = FillColor $ map toColor [c1,c2]+ -- | Specify the color of text.-fontColor :: X11Color -> Attribute-fontColor = FontColor . X11Color+fontColor :: (NamedColor nc) => nc -> Attribute+fontColor = FontColor . toColor  -- | Specify the color of the bounding box of a cluster.-penColor :: X11Color -> Attribute-penColor = PenColor . X11Color+penColor :: (NamedColor nc) => nc -> Attribute+penColor = PenColor . toColor  -- | The @color@ attribute serves several purposes.  As such care must --   be taken when using it, and it is preferable to use those@@ -215,16 +262,16 @@ --   * If the 'filled' 'Style' is set, then it defines the --     background color of nodes and clusters unless 'fillColor' or --     'bgColor' respectively is set.-color :: X11Color -> Attribute-color = Color . (:[]) . X11Color+color :: (NamedColor nc) => nc -> Attribute+color = Color . (:[]) . toColor  -- -----------------------------------------------------------------------------  {- $styles -   Various stylistic attributes to customise how items are drawn.  All-   'Style's are available for nodes; those specified also can be used-   for edges and clusters.+   Various stylistic attributes to customise how items are drawn.+   Unless specified otherwise, all 'Style's are available for nodes;+   those specified also can be used for edges and clusters.   -} @@ -269,10 +316,26 @@ diagonals :: Style diagonals = SItem Diagonals [] +-- | Only available for edges; creates a tapered edge between the two+--   nodes.  Requires Graphviz >= 2.29.0.+tapered :: Style+tapered = SItem Tapered []++-- | Available for nodes, clusters and edges.  When using+--   'gradientAngle', indicates that a radial gradient should be used.+--   Requires Graphviz >= 2.29.0.+radial :: Style+radial = SItem Radial []+ -- | Specify the width of lines.  Valid for clusters, nodes and edges. penWidth :: Double -> Attribute penWidth = PenWidth +-- | Specify the angle at which gradient fills are drawn; for use with+--   'bgColors' and 'fillColors'.  Requires Graphviz >= 2.29.0.+gradientAngle :: Int -> Attribute+gradientAngle = GradientAngle+ -- -----------------------------------------------------------------------------  -- | The shape of a node.@@ -320,3 +383,20 @@ vee = AType [(noMods, Vee)]  -- -----------------------------------------------------------------------------++-- | Specify an ordering of edges of a node: either the outgoing or+--   the incoming edges of a node must appear left-to-right in the+--   same order in which they are defined in the input.+--+--   When specified as both a global graph or sub-graph level+--   attribute, then it takes precedence over an attribute specified+--   for an individual node.+ordering :: Order -> Attribute+ordering = Ordering++-- -----------------------------------------------------------------------------++-- | When using @dot@, this allows you to control relative placement+--   of sub-graphs and clusters.+rank :: RankType -> Attribute+rank = Rank
Data/GraphViz/Attributes/ColorScheme.hs view
@@ -18,10 +18,11 @@  -- | This represents the color schemes that Graphviz accepts. data ColorScheme = X11+                 | SVG                  | Brewer BrewerScheme                  deriving (Eq, Ord, Show, Read) --- | Specify which colour pallete and how many colours it has.  Note+-- | Specify which colour palette and how many colours it has.  Note --   the allowed values for the different 'BrewerName's. data BrewerScheme = BScheme BrewerName Word8                   deriving (Eq, Ord, Show, Read)
Data/GraphViz/Attributes/Colors.hs view
@@ -22,2521 +22,268 @@ module Data.GraphViz.Attributes.Colors        ( -- * Color schemes.          ColorScheme(..)-       , BrewerScheme(..)-       , BrewerName(..)-         -- * Colors-       , Color(..)-       , X11Color(..)-         -- * Conversion to\/from @Colour@.-       , toColour-       , x11Colour-       , fromColour-       , fromAColour-       ) where--import Data.GraphViz.Parsing-import Data.GraphViz.Printing-import Data.GraphViz.State-import Data.GraphViz.Attributes.ColorScheme-import Data.GraphViz.Util(bool)-import Data.GraphViz.Exception--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 qualified Data.Text.Lazy as T-import Control.Monad(liftM)---- --------------------------------------------------------------------------------- | 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 BrewerScheme Word8 -- ^ This value should be-                                            --   between @1@ and the-                                            --   level of the-                                            --   'BrewerScheme' 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 $ mapM unqtDot [h,s,v]-  unqtDot (X11Color name)    = unqtDot name-  unqtDot (BrewerColor bs n) = printBrewerColor False bs n--  toDot (X11Color name)    = toDot name-  toDot (BrewerColor bs n) = printBrewerColor True bs n-  toDot c                  = dquotes $ unqtDot c--  unqtListToDot = hcat . punctuate colon . mapM unqtDot--  -- These two don't need to be quoted if they're on their own.-  listToDot [X11Color name]    = toDot name-  listToDot [BrewerColor bs n] = printBrewerColor True bs n-  listToDot cs                 = dquotes $ unqtListToDot cs--hexColor :: [Word8] -> DotCode-hexColor = (<>) (char '#') . hcat . mapM word8Doc--word8Doc   :: Word8 -> DotCode-word8Doc w = text $ padding `T.append` simple-  where-    simple = T.pack $ showHex w ""-    padding = T.replicate count (T.singleton '0')-    count = 2 - findCols 1 w-    findCols c n-      | n < 16 = c-      | otherwise = findCols (c+1) (n `div` 16)--instance ParseDot Color where-  parseUnqt = oneOf [ parseHexBased-                    , parseHSV-                      -- Have to parse BrewerColor first, as some of them may appear to be X11 colors-                    , liftM (uncurry BrewerColor) $ parseBrewerColor False-                    , liftM X11Color $ parseX11Color False-                    ]-    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-                          _ -> throw . NotDotCode-                               $ "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 might not need to be quoted-          oneOf [ liftM X11Color parseUnqt-                , do Brewer bc <- getColorScheme-                     liftM (BrewerColor bc) parseUnqt-                ]--  parseUnqtList = sepBy1 parseUnqt (character ':')--  parseList = liftM (:[])-              -- Unquoted single color-              (oneOf [ liftM X11Color parseUnqt-                     , do Brewer bc <- getColorScheme-                          liftM (BrewerColor bc) parseUnqt-                     ]-              )-              `onFail`-              quotedParse parseUnqtList--printBrewerColor        :: Bool -> BrewerScheme -> Word8 -> DotCode-printBrewerColor q bs l = do cs <- getColorScheme-                             case cs of-                               Brewer bs'-                                 | bs == bs' -> unqtDot l-                               _             -> addQ $ fslash <> unqtDot bs-                                                       <> fslash <> unqtDot l-  where-    addQ = bool id dquotes q--parseBrewerColor   :: Bool -> Parse (BrewerScheme, Word8)-parseBrewerColor q = do Brewer bs <- getColorScheme-                        optional $ stringRep () "//"-                        liftM ((,) bs) $ bool parseUnqt parse q-                     `onFail`-                     bool id quotedParse q ( do character '/'-                                                bs <- parseUnqt-                                                character '/'-                                                l <- parseUnqt-                                                return (bs,l)-                                           )---- --------------------------------------------------------------------------------- | Covers the four cases:------   * yyyy---   * /yyyy---   * /X11/yyyy---   * //yyyy----parseX11Color   :: Bool -> Parse X11Color-parseX11Color q = bool parseUnqt parse q-                  `onFail`-                  bool id quotedParse q-                    ( do character '/'-                         optional $ do optional $ do X11 <- parseUnqt-                                                     return ()-                                       character '/'-                         parseUnqt-                    )---- | 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            = unqtText "aliceblue"-  unqtDot AntiqueWhite         = unqtText "antiquewhite"-  unqtDot AntiqueWhite1        = unqtText "antiquewhite1"-  unqtDot AntiqueWhite2        = unqtText "antiquewhite2"-  unqtDot AntiqueWhite3        = unqtText "antiquewhite3"-  unqtDot AntiqueWhite4        = unqtText "antiquewhite4"-  unqtDot Aquamarine           = unqtText "aquamarine"-  unqtDot Aquamarine1          = unqtText "aquamarine1"-  unqtDot Aquamarine2          = unqtText "aquamarine2"-  unqtDot Aquamarine3          = unqtText "aquamarine3"-  unqtDot Aquamarine4          = unqtText "aquamarine4"-  unqtDot Azure                = unqtText "azure"-  unqtDot Azure1               = unqtText "azure1"-  unqtDot Azure2               = unqtText "azure2"-  unqtDot Azure3               = unqtText "azure3"-  unqtDot Azure4               = unqtText "azure4"-  unqtDot Beige                = unqtText "beige"-  unqtDot Bisque               = unqtText "bisque"-  unqtDot Bisque1              = unqtText "bisque1"-  unqtDot Bisque2              = unqtText "bisque2"-  unqtDot Bisque3              = unqtText "bisque3"-  unqtDot Bisque4              = unqtText "bisque4"-  unqtDot Black                = unqtText "black"-  unqtDot BlanchedAlmond       = unqtText "blanchedalmond"-  unqtDot Blue                 = unqtText "blue"-  unqtDot Blue1                = unqtText "blue1"-  unqtDot Blue2                = unqtText "blue2"-  unqtDot Blue3                = unqtText "blue3"-  unqtDot Blue4                = unqtText "blue4"-  unqtDot BlueViolet           = unqtText "blueviolet"-  unqtDot Brown                = unqtText "brown"-  unqtDot Brown1               = unqtText "brown1"-  unqtDot Brown2               = unqtText "brown2"-  unqtDot Brown3               = unqtText "brown3"-  unqtDot Brown4               = unqtText "brown4"-  unqtDot Burlywood            = unqtText "burlywood"-  unqtDot Burlywood1           = unqtText "burlywood1"-  unqtDot Burlywood2           = unqtText "burlywood2"-  unqtDot Burlywood3           = unqtText "burlywood3"-  unqtDot Burlywood4           = unqtText "burlywood4"-  unqtDot CadetBlue            = unqtText "cadetblue"-  unqtDot CadetBlue1           = unqtText "cadetblue1"-  unqtDot CadetBlue2           = unqtText "cadetblue2"-  unqtDot CadetBlue3           = unqtText "cadetblue3"-  unqtDot CadetBlue4           = unqtText "cadetblue4"-  unqtDot Chartreuse           = unqtText "chartreuse"-  unqtDot Chartreuse1          = unqtText "chartreuse1"-  unqtDot Chartreuse2          = unqtText "chartreuse2"-  unqtDot Chartreuse3          = unqtText "chartreuse3"-  unqtDot Chartreuse4          = unqtText "chartreuse4"-  unqtDot Chocolate            = unqtText "chocolate"-  unqtDot Chocolate1           = unqtText "chocolate1"-  unqtDot Chocolate2           = unqtText "chocolate2"-  unqtDot Chocolate3           = unqtText "chocolate3"-  unqtDot Chocolate4           = unqtText "chocolate4"-  unqtDot Coral                = unqtText "coral"-  unqtDot Coral1               = unqtText "coral1"-  unqtDot Coral2               = unqtText "coral2"-  unqtDot Coral3               = unqtText "coral3"-  unqtDot Coral4               = unqtText "coral4"-  unqtDot CornFlowerBlue       = unqtText "cornflowerblue"-  unqtDot CornSilk             = unqtText "cornsilk"-  unqtDot CornSilk1            = unqtText "cornsilk1"-  unqtDot CornSilk2            = unqtText "cornsilk2"-  unqtDot CornSilk3            = unqtText "cornsilk3"-  unqtDot CornSilk4            = unqtText "cornsilk4"-  unqtDot Crimson              = unqtText "crimson"-  unqtDot Cyan                 = unqtText "cyan"-  unqtDot Cyan1                = unqtText "cyan1"-  unqtDot Cyan2                = unqtText "cyan2"-  unqtDot Cyan3                = unqtText "cyan3"-  unqtDot Cyan4                = unqtText "cyan4"-  unqtDot DarkGoldenrod        = unqtText "darkgoldenrod"-  unqtDot DarkGoldenrod1       = unqtText "darkgoldenrod1"-  unqtDot DarkGoldenrod2       = unqtText "darkgoldenrod2"-  unqtDot DarkGoldenrod3       = unqtText "darkgoldenrod3"-  unqtDot DarkGoldenrod4       = unqtText "darkgoldenrod4"-  unqtDot DarkGreen            = unqtText "darkgreen"-  unqtDot Darkkhaki            = unqtText "darkkhaki"-  unqtDot DarkOliveGreen       = unqtText "darkolivegreen"-  unqtDot DarkOliveGreen1      = unqtText "darkolivegreen1"-  unqtDot DarkOliveGreen2      = unqtText "darkolivegreen2"-  unqtDot DarkOliveGreen3      = unqtText "darkolivegreen3"-  unqtDot DarkOliveGreen4      = unqtText "darkolivegreen4"-  unqtDot DarkOrange           = unqtText "darkorange"-  unqtDot DarkOrange1          = unqtText "darkorange1"-  unqtDot DarkOrange2          = unqtText "darkorange2"-  unqtDot DarkOrange3          = unqtText "darkorange3"-  unqtDot DarkOrange4          = unqtText "darkorange4"-  unqtDot DarkOrchid           = unqtText "darkorchid"-  unqtDot DarkOrchid1          = unqtText "darkorchid1"-  unqtDot DarkOrchid2          = unqtText "darkorchid2"-  unqtDot DarkOrchid3          = unqtText "darkorchid3"-  unqtDot DarkOrchid4          = unqtText "darkorchid4"-  unqtDot DarkSalmon           = unqtText "darksalmon"-  unqtDot DarkSeaGreen         = unqtText "darkseagreen"-  unqtDot DarkSeaGreen1        = unqtText "darkseagreen1"-  unqtDot DarkSeaGreen2        = unqtText "darkseagreen2"-  unqtDot DarkSeaGreen3        = unqtText "darkseagreen3"-  unqtDot DarkSeaGreen4        = unqtText "darkseagreen4"-  unqtDot DarkSlateBlue        = unqtText "darkslateblue"-  unqtDot DarkSlateGray        = unqtText "darkslategray"-  unqtDot DarkSlateGray1       = unqtText "darkslategray1"-  unqtDot DarkSlateGray2       = unqtText "darkslategray2"-  unqtDot DarkSlateGray3       = unqtText "darkslategray3"-  unqtDot DarkSlateGray4       = unqtText "darkslategray4"-  unqtDot DarkTurquoise        = unqtText "darkturquoise"-  unqtDot DarkViolet           = unqtText "darkviolet"-  unqtDot DeepPink             = unqtText "deeppink"-  unqtDot DeepPink1            = unqtText "deeppink1"-  unqtDot DeepPink2            = unqtText "deeppink2"-  unqtDot DeepPink3            = unqtText "deeppink3"-  unqtDot DeepPink4            = unqtText "deeppink4"-  unqtDot DeepSkyBlue          = unqtText "deepskyblue"-  unqtDot DeepSkyBlue1         = unqtText "deepskyblue1"-  unqtDot DeepSkyBlue2         = unqtText "deepskyblue2"-  unqtDot DeepSkyBlue3         = unqtText "deepskyblue3"-  unqtDot DeepSkyBlue4         = unqtText "deepskyblue4"-  unqtDot DimGray              = unqtText "dimgray"-  unqtDot DodgerBlue           = unqtText "dodgerblue"-  unqtDot DodgerBlue1          = unqtText "dodgerblue1"-  unqtDot DodgerBlue2          = unqtText "dodgerblue2"-  unqtDot DodgerBlue3          = unqtText "dodgerblue3"-  unqtDot DodgerBlue4          = unqtText "dodgerblue4"-  unqtDot Firebrick            = unqtText "firebrick"-  unqtDot Firebrick1           = unqtText "firebrick1"-  unqtDot Firebrick2           = unqtText "firebrick2"-  unqtDot Firebrick3           = unqtText "firebrick3"-  unqtDot Firebrick4           = unqtText "firebrick4"-  unqtDot FloralWhite          = unqtText "floralwhite"-  unqtDot ForestGreen          = unqtText "forestgreen"-  unqtDot Gainsboro            = unqtText "gainsboro"-  unqtDot GhostWhite           = unqtText "ghostwhite"-  unqtDot Gold                 = unqtText "gold"-  unqtDot Gold1                = unqtText "gold1"-  unqtDot Gold2                = unqtText "gold2"-  unqtDot Gold3                = unqtText "gold3"-  unqtDot Gold4                = unqtText "gold4"-  unqtDot Goldenrod            = unqtText "goldenrod"-  unqtDot Goldenrod1           = unqtText "goldenrod1"-  unqtDot Goldenrod2           = unqtText "goldenrod2"-  unqtDot Goldenrod3           = unqtText "goldenrod3"-  unqtDot Goldenrod4           = unqtText "goldenrod4"-  unqtDot Gray                 = unqtText "gray"-  unqtDot Gray0                = unqtText "gray0"-  unqtDot Gray1                = unqtText "gray1"-  unqtDot Gray2                = unqtText "gray2"-  unqtDot Gray3                = unqtText "gray3"-  unqtDot Gray4                = unqtText "gray4"-  unqtDot Gray5                = unqtText "gray5"-  unqtDot Gray6                = unqtText "gray6"-  unqtDot Gray7                = unqtText "gray7"-  unqtDot Gray8                = unqtText "gray8"-  unqtDot Gray9                = unqtText "gray9"-  unqtDot Gray10               = unqtText "gray10"-  unqtDot Gray11               = unqtText "gray11"-  unqtDot Gray12               = unqtText "gray12"-  unqtDot Gray13               = unqtText "gray13"-  unqtDot Gray14               = unqtText "gray14"-  unqtDot Gray15               = unqtText "gray15"-  unqtDot Gray16               = unqtText "gray16"-  unqtDot Gray17               = unqtText "gray17"-  unqtDot Gray18               = unqtText "gray18"-  unqtDot Gray19               = unqtText "gray19"-  unqtDot Gray20               = unqtText "gray20"-  unqtDot Gray21               = unqtText "gray21"-  unqtDot Gray22               = unqtText "gray22"-  unqtDot Gray23               = unqtText "gray23"-  unqtDot Gray24               = unqtText "gray24"-  unqtDot Gray25               = unqtText "gray25"-  unqtDot Gray26               = unqtText "gray26"-  unqtDot Gray27               = unqtText "gray27"-  unqtDot Gray28               = unqtText "gray28"-  unqtDot Gray29               = unqtText "gray29"-  unqtDot Gray30               = unqtText "gray30"-  unqtDot Gray31               = unqtText "gray31"-  unqtDot Gray32               = unqtText "gray32"-  unqtDot Gray33               = unqtText "gray33"-  unqtDot Gray34               = unqtText "gray34"-  unqtDot Gray35               = unqtText "gray35"-  unqtDot Gray36               = unqtText "gray36"-  unqtDot Gray37               = unqtText "gray37"-  unqtDot Gray38               = unqtText "gray38"-  unqtDot Gray39               = unqtText "gray39"-  unqtDot Gray40               = unqtText "gray40"-  unqtDot Gray41               = unqtText "gray41"-  unqtDot Gray42               = unqtText "gray42"-  unqtDot Gray43               = unqtText "gray43"-  unqtDot Gray44               = unqtText "gray44"-  unqtDot Gray45               = unqtText "gray45"-  unqtDot Gray46               = unqtText "gray46"-  unqtDot Gray47               = unqtText "gray47"-  unqtDot Gray48               = unqtText "gray48"-  unqtDot Gray49               = unqtText "gray49"-  unqtDot Gray50               = unqtText "gray50"-  unqtDot Gray51               = unqtText "gray51"-  unqtDot Gray52               = unqtText "gray52"-  unqtDot Gray53               = unqtText "gray53"-  unqtDot Gray54               = unqtText "gray54"-  unqtDot Gray55               = unqtText "gray55"-  unqtDot Gray56               = unqtText "gray56"-  unqtDot Gray57               = unqtText "gray57"-  unqtDot Gray58               = unqtText "gray58"-  unqtDot Gray59               = unqtText "gray59"-  unqtDot Gray60               = unqtText "gray60"-  unqtDot Gray61               = unqtText "gray61"-  unqtDot Gray62               = unqtText "gray62"-  unqtDot Gray63               = unqtText "gray63"-  unqtDot Gray64               = unqtText "gray64"-  unqtDot Gray65               = unqtText "gray65"-  unqtDot Gray66               = unqtText "gray66"-  unqtDot Gray67               = unqtText "gray67"-  unqtDot Gray68               = unqtText "gray68"-  unqtDot Gray69               = unqtText "gray69"-  unqtDot Gray70               = unqtText "gray70"-  unqtDot Gray71               = unqtText "gray71"-  unqtDot Gray72               = unqtText "gray72"-  unqtDot Gray73               = unqtText "gray73"-  unqtDot Gray74               = unqtText "gray74"-  unqtDot Gray75               = unqtText "gray75"-  unqtDot Gray76               = unqtText "gray76"-  unqtDot Gray77               = unqtText "gray77"-  unqtDot Gray78               = unqtText "gray78"-  unqtDot Gray79               = unqtText "gray79"-  unqtDot Gray80               = unqtText "gray80"-  unqtDot Gray81               = unqtText "gray81"-  unqtDot Gray82               = unqtText "gray82"-  unqtDot Gray83               = unqtText "gray83"-  unqtDot Gray84               = unqtText "gray84"-  unqtDot Gray85               = unqtText "gray85"-  unqtDot Gray86               = unqtText "gray86"-  unqtDot Gray87               = unqtText "gray87"-  unqtDot Gray88               = unqtText "gray88"-  unqtDot Gray89               = unqtText "gray89"-  unqtDot Gray90               = unqtText "gray90"-  unqtDot Gray91               = unqtText "gray91"-  unqtDot Gray92               = unqtText "gray92"-  unqtDot Gray93               = unqtText "gray93"-  unqtDot Gray94               = unqtText "gray94"-  unqtDot Gray95               = unqtText "gray95"-  unqtDot Gray96               = unqtText "gray96"-  unqtDot Gray97               = unqtText "gray97"-  unqtDot Gray98               = unqtText "gray98"-  unqtDot Gray99               = unqtText "gray99"-  unqtDot Gray100              = unqtText "gray100"-  unqtDot Green                = unqtText "green"-  unqtDot Green1               = unqtText "green1"-  unqtDot Green2               = unqtText "green2"-  unqtDot Green3               = unqtText "green3"-  unqtDot Green4               = unqtText "green4"-  unqtDot GreenYellow          = unqtText "greenyellow"-  unqtDot HoneyDew             = unqtText "honeydew"-  unqtDot HoneyDew1            = unqtText "honeydew1"-  unqtDot HoneyDew2            = unqtText "honeydew2"-  unqtDot HoneyDew3            = unqtText "honeydew3"-  unqtDot HoneyDew4            = unqtText "honeydew4"-  unqtDot HotPink              = unqtText "hotpink"-  unqtDot HotPink1             = unqtText "hotpink1"-  unqtDot HotPink2             = unqtText "hotpink2"-  unqtDot HotPink3             = unqtText "hotpink3"-  unqtDot HotPink4             = unqtText "hotpink4"-  unqtDot IndianRed            = unqtText "indianred"-  unqtDot IndianRed1           = unqtText "indianred1"-  unqtDot IndianRed2           = unqtText "indianred2"-  unqtDot IndianRed3           = unqtText "indianred3"-  unqtDot IndianRed4           = unqtText "indianred4"-  unqtDot Indigo               = unqtText "indigo"-  unqtDot Ivory                = unqtText "ivory"-  unqtDot Ivory1               = unqtText "ivory1"-  unqtDot Ivory2               = unqtText "ivory2"-  unqtDot Ivory3               = unqtText "ivory3"-  unqtDot Ivory4               = unqtText "ivory4"-  unqtDot Khaki                = unqtText "khaki"-  unqtDot Khaki1               = unqtText "khaki1"-  unqtDot Khaki2               = unqtText "khaki2"-  unqtDot Khaki3               = unqtText "khaki3"-  unqtDot Khaki4               = unqtText "khaki4"-  unqtDot Lavender             = unqtText "lavender"-  unqtDot LavenderBlush        = unqtText "lavenderblush"-  unqtDot LavenderBlush1       = unqtText "lavenderblush1"-  unqtDot LavenderBlush2       = unqtText "lavenderblush2"-  unqtDot LavenderBlush3       = unqtText "lavenderblush3"-  unqtDot LavenderBlush4       = unqtText "lavenderblush4"-  unqtDot LawnGreen            = unqtText "lawngreen"-  unqtDot LemonChiffon         = unqtText "lemonchiffon"-  unqtDot LemonChiffon1        = unqtText "lemonchiffon1"-  unqtDot LemonChiffon2        = unqtText "lemonchiffon2"-  unqtDot LemonChiffon3        = unqtText "lemonchiffon3"-  unqtDot LemonChiffon4        = unqtText "lemonchiffon4"-  unqtDot LightBlue            = unqtText "lightblue"-  unqtDot LightBlue1           = unqtText "lightblue1"-  unqtDot LightBlue2           = unqtText "lightblue2"-  unqtDot LightBlue3           = unqtText "lightblue3"-  unqtDot LightBlue4           = unqtText "lightblue4"-  unqtDot LightCoral           = unqtText "lightcoral"-  unqtDot LightCyan            = unqtText "lightcyan"-  unqtDot LightCyan1           = unqtText "lightcyan1"-  unqtDot LightCyan2           = unqtText "lightcyan2"-  unqtDot LightCyan3           = unqtText "lightcyan3"-  unqtDot LightCyan4           = unqtText "lightcyan4"-  unqtDot LightGoldenrod       = unqtText "lightgoldenrod"-  unqtDot LightGoldenrod1      = unqtText "lightgoldenrod1"-  unqtDot LightGoldenrod2      = unqtText "lightgoldenrod2"-  unqtDot LightGoldenrod3      = unqtText "lightgoldenrod3"-  unqtDot LightGoldenrod4      = unqtText "lightgoldenrod4"-  unqtDot LightGoldenrodYellow = unqtText "lightgoldenrodyellow"-  unqtDot LightGray            = unqtText "lightgray"-  unqtDot LightPink            = unqtText "lightpink"-  unqtDot LightPink1           = unqtText "lightpink1"-  unqtDot LightPink2           = unqtText "lightpink2"-  unqtDot LightPink3           = unqtText "lightpink3"-  unqtDot LightPink4           = unqtText "lightpink4"-  unqtDot LightSalmon          = unqtText "lightsalmon"-  unqtDot LightSalmon1         = unqtText "lightsalmon1"-  unqtDot LightSalmon2         = unqtText "lightsalmon2"-  unqtDot LightSalmon3         = unqtText "lightsalmon3"-  unqtDot LightSalmon4         = unqtText "lightsalmon4"-  unqtDot LightSeaGreen        = unqtText "lightseagreen"-  unqtDot LightSkyBlue         = unqtText "lightskyblue"-  unqtDot LightSkyBlue1        = unqtText "lightskyblue1"-  unqtDot LightSkyBlue2        = unqtText "lightskyblue2"-  unqtDot LightSkyBlue3        = unqtText "lightskyblue3"-  unqtDot LightSkyBlue4        = unqtText "lightskyblue4"-  unqtDot LightSlateBlue       = unqtText "lightslateblue"-  unqtDot LightSlateGray       = unqtText "lightslategray"-  unqtDot LightSteelBlue       = unqtText "lightsteelblue"-  unqtDot LightSteelBlue1      = unqtText "lightsteelblue1"-  unqtDot LightSteelBlue2      = unqtText "lightsteelblue2"-  unqtDot LightSteelBlue3      = unqtText "lightsteelblue3"-  unqtDot LightSteelBlue4      = unqtText "lightsteelblue4"-  unqtDot LightYellow          = unqtText "lightyellow"-  unqtDot LightYellow1         = unqtText "lightyellow1"-  unqtDot LightYellow2         = unqtText "lightyellow2"-  unqtDot LightYellow3         = unqtText "lightyellow3"-  unqtDot LightYellow4         = unqtText "lightyellow4"-  unqtDot LimeGreen            = unqtText "limegreen"-  unqtDot Linen                = unqtText "linen"-  unqtDot Magenta              = unqtText "magenta"-  unqtDot Magenta1             = unqtText "magenta1"-  unqtDot Magenta2             = unqtText "magenta2"-  unqtDot Magenta3             = unqtText "magenta3"-  unqtDot Magenta4             = unqtText "magenta4"-  unqtDot Maroon               = unqtText "maroon"-  unqtDot Maroon1              = unqtText "maroon1"-  unqtDot Maroon2              = unqtText "maroon2"-  unqtDot Maroon3              = unqtText "maroon3"-  unqtDot Maroon4              = unqtText "maroon4"-  unqtDot MediumAquamarine     = unqtText "mediumaquamarine"-  unqtDot MediumBlue           = unqtText "mediumblue"-  unqtDot MediumOrchid         = unqtText "mediumorchid"-  unqtDot MediumOrchid1        = unqtText "mediumorchid1"-  unqtDot MediumOrchid2        = unqtText "mediumorchid2"-  unqtDot MediumOrchid3        = unqtText "mediumorchid3"-  unqtDot MediumOrchid4        = unqtText "mediumorchid4"-  unqtDot MediumPurple         = unqtText "mediumpurple"-  unqtDot MediumPurple1        = unqtText "mediumpurple1"-  unqtDot MediumPurple2        = unqtText "mediumpurple2"-  unqtDot MediumPurple3        = unqtText "mediumpurple3"-  unqtDot MediumPurple4        = unqtText "mediumpurple4"-  unqtDot MediumSeaGreen       = unqtText "mediumseagreen"-  unqtDot MediumSlateBlue      = unqtText "mediumslateblue"-  unqtDot MediumSpringGreen    = unqtText "mediumspringgreen"-  unqtDot MediumTurquoise      = unqtText "mediumturquoise"-  unqtDot MediumVioletRed      = unqtText "mediumvioletred"-  unqtDot MidnightBlue         = unqtText "midnightblue"-  unqtDot MintCream            = unqtText "mintcream"-  unqtDot MistyRose            = unqtText "mistyrose"-  unqtDot MistyRose1           = unqtText "mistyrose1"-  unqtDot MistyRose2           = unqtText "mistyrose2"-  unqtDot MistyRose3           = unqtText "mistyrose3"-  unqtDot MistyRose4           = unqtText "mistyrose4"-  unqtDot Moccasin             = unqtText "moccasin"-  unqtDot NavajoWhite          = unqtText "navajowhite"-  unqtDot NavajoWhite1         = unqtText "navajowhite1"-  unqtDot NavajoWhite2         = unqtText "navajowhite2"-  unqtDot NavajoWhite3         = unqtText "navajowhite3"-  unqtDot NavajoWhite4         = unqtText "navajowhite4"-  unqtDot Navy                 = unqtText "navy"-  unqtDot NavyBlue             = unqtText "navyblue"-  unqtDot OldLace              = unqtText "oldlace"-  unqtDot OliveDrab            = unqtText "olivedrab"-  unqtDot OliveDrab1           = unqtText "olivedrab1"-  unqtDot OliveDrab2           = unqtText "olivedrab2"-  unqtDot OliveDrab3           = unqtText "olivedrab3"-  unqtDot OliveDrab4           = unqtText "olivedrab4"-  unqtDot Orange               = unqtText "orange"-  unqtDot Orange1              = unqtText "orange1"-  unqtDot Orange2              = unqtText "orange2"-  unqtDot Orange3              = unqtText "orange3"-  unqtDot Orange4              = unqtText "orange4"-  unqtDot OrangeRed            = unqtText "orangered"-  unqtDot OrangeRed1           = unqtText "orangered1"-  unqtDot OrangeRed2           = unqtText "orangered2"-  unqtDot OrangeRed3           = unqtText "orangered3"-  unqtDot OrangeRed4           = unqtText "orangered4"-  unqtDot Orchid               = unqtText "orchid"-  unqtDot Orchid1              = unqtText "orchid1"-  unqtDot Orchid2              = unqtText "orchid2"-  unqtDot Orchid3              = unqtText "orchid3"-  unqtDot Orchid4              = unqtText "orchid4"-  unqtDot PaleGoldenrod        = unqtText "palegoldenrod"-  unqtDot PaleGreen            = unqtText "palegreen"-  unqtDot PaleGreen1           = unqtText "palegreen1"-  unqtDot PaleGreen2           = unqtText "palegreen2"-  unqtDot PaleGreen3           = unqtText "palegreen3"-  unqtDot PaleGreen4           = unqtText "palegreen4"-  unqtDot PaleTurquoise        = unqtText "paleturquoise"-  unqtDot PaleTurquoise1       = unqtText "paleturquoise1"-  unqtDot PaleTurquoise2       = unqtText "paleturquoise2"-  unqtDot PaleTurquoise3       = unqtText "paleturquoise3"-  unqtDot PaleTurquoise4       = unqtText "paleturquoise4"-  unqtDot PaleVioletRed        = unqtText "palevioletred"-  unqtDot PaleVioletRed1       = unqtText "palevioletred1"-  unqtDot PaleVioletRed2       = unqtText "palevioletred2"-  unqtDot PaleVioletRed3       = unqtText "palevioletred3"-  unqtDot PaleVioletRed4       = unqtText "palevioletred4"-  unqtDot PapayaWhip           = unqtText "papayawhip"-  unqtDot PeachPuff            = unqtText "peachpuff"-  unqtDot PeachPuff1           = unqtText "peachpuff1"-  unqtDot PeachPuff2           = unqtText "peachpuff2"-  unqtDot PeachPuff3           = unqtText "peachpuff3"-  unqtDot PeachPuff4           = unqtText "peachpuff4"-  unqtDot Peru                 = unqtText "peru"-  unqtDot Pink                 = unqtText "pink"-  unqtDot Pink1                = unqtText "pink1"-  unqtDot Pink2                = unqtText "pink2"-  unqtDot Pink3                = unqtText "pink3"-  unqtDot Pink4                = unqtText "pink4"-  unqtDot Plum                 = unqtText "plum"-  unqtDot Plum1                = unqtText "plum1"-  unqtDot Plum2                = unqtText "plum2"-  unqtDot Plum3                = unqtText "plum3"-  unqtDot Plum4                = unqtText "plum4"-  unqtDot PowderBlue           = unqtText "powderblue"-  unqtDot Purple               = unqtText "purple"-  unqtDot Purple1              = unqtText "purple1"-  unqtDot Purple2              = unqtText "purple2"-  unqtDot Purple3              = unqtText "purple3"-  unqtDot Purple4              = unqtText "purple4"-  unqtDot Red                  = unqtText "red"-  unqtDot Red1                 = unqtText "red1"-  unqtDot Red2                 = unqtText "red2"-  unqtDot Red3                 = unqtText "red3"-  unqtDot Red4                 = unqtText "red4"-  unqtDot RosyBrown            = unqtText "rosybrown"-  unqtDot RosyBrown1           = unqtText "rosybrown1"-  unqtDot RosyBrown2           = unqtText "rosybrown2"-  unqtDot RosyBrown3           = unqtText "rosybrown3"-  unqtDot RosyBrown4           = unqtText "rosybrown4"-  unqtDot RoyalBlue            = unqtText "royalblue"-  unqtDot RoyalBlue1           = unqtText "royalblue1"-  unqtDot RoyalBlue2           = unqtText "royalblue2"-  unqtDot RoyalBlue3           = unqtText "royalblue3"-  unqtDot RoyalBlue4           = unqtText "royalblue4"-  unqtDot SaddleBrown          = unqtText "saddlebrown"-  unqtDot Salmon               = unqtText "salmon"-  unqtDot Salmon1              = unqtText "salmon1"-  unqtDot Salmon2              = unqtText "salmon2"-  unqtDot Salmon3              = unqtText "salmon3"-  unqtDot Salmon4              = unqtText "salmon4"-  unqtDot SandyBrown           = unqtText "sandybrown"-  unqtDot SeaGreen             = unqtText "seagreen"-  unqtDot SeaGreen1            = unqtText "seagreen1"-  unqtDot SeaGreen2            = unqtText "seagreen2"-  unqtDot SeaGreen3            = unqtText "seagreen3"-  unqtDot SeaGreen4            = unqtText "seagreen4"-  unqtDot SeaShell             = unqtText "seashell"-  unqtDot SeaShell1            = unqtText "seashell1"-  unqtDot SeaShell2            = unqtText "seashell2"-  unqtDot SeaShell3            = unqtText "seashell3"-  unqtDot SeaShell4            = unqtText "seashell4"-  unqtDot Sienna               = unqtText "sienna"-  unqtDot Sienna1              = unqtText "sienna1"-  unqtDot Sienna2              = unqtText "sienna2"-  unqtDot Sienna3              = unqtText "sienna3"-  unqtDot Sienna4              = unqtText "sienna4"-  unqtDot SkyBlue              = unqtText "skyblue"-  unqtDot SkyBlue1             = unqtText "skyblue1"-  unqtDot SkyBlue2             = unqtText "skyblue2"-  unqtDot SkyBlue3             = unqtText "skyblue3"-  unqtDot SkyBlue4             = unqtText "skyblue4"-  unqtDot SlateBlue            = unqtText "slateblue"-  unqtDot SlateBlue1           = unqtText "slateblue1"-  unqtDot SlateBlue2           = unqtText "slateblue2"-  unqtDot SlateBlue3           = unqtText "slateblue3"-  unqtDot SlateBlue4           = unqtText "slateblue4"-  unqtDot SlateGray            = unqtText "slategray"-  unqtDot SlateGray1           = unqtText "slategray1"-  unqtDot SlateGray2           = unqtText "slategray2"-  unqtDot SlateGray3           = unqtText "slategray3"-  unqtDot SlateGray4           = unqtText "slategray4"-  unqtDot Snow                 = unqtText "snow"-  unqtDot Snow1                = unqtText "snow1"-  unqtDot Snow2                = unqtText "snow2"-  unqtDot Snow3                = unqtText "snow3"-  unqtDot Snow4                = unqtText "snow4"-  unqtDot SpringGreen          = unqtText "springgreen"-  unqtDot SpringGreen1         = unqtText "springgreen1"-  unqtDot SpringGreen2         = unqtText "springgreen2"-  unqtDot SpringGreen3         = unqtText "springgreen3"-  unqtDot SpringGreen4         = unqtText "springgreen4"-  unqtDot SteelBlue            = unqtText "steelblue"-  unqtDot SteelBlue1           = unqtText "steelblue1"-  unqtDot SteelBlue2           = unqtText "steelblue2"-  unqtDot SteelBlue3           = unqtText "steelblue3"-  unqtDot SteelBlue4           = unqtText "steelblue4"-  unqtDot Tan                  = unqtText "tan"-  unqtDot Tan1                 = unqtText "tan1"-  unqtDot Tan2                 = unqtText "tan2"-  unqtDot Tan3                 = unqtText "tan3"-  unqtDot Tan4                 = unqtText "tan4"-  unqtDot Thistle              = unqtText "thistle"-  unqtDot Thistle1             = unqtText "thistle1"-  unqtDot Thistle2             = unqtText "thistle2"-  unqtDot Thistle3             = unqtText "thistle3"-  unqtDot Thistle4             = unqtText "thistle4"-  unqtDot Tomato               = unqtText "tomato"-  unqtDot Tomato1              = unqtText "tomato1"-  unqtDot Tomato2              = unqtText "tomato2"-  unqtDot Tomato3              = unqtText "tomato3"-  unqtDot Tomato4              = unqtText "tomato4"-  unqtDot Transparent          = unqtText "transparent"-  unqtDot Turquoise            = unqtText "turquoise"-  unqtDot Turquoise1           = unqtText "turquoise1"-  unqtDot Turquoise2           = unqtText "turquoise2"-  unqtDot Turquoise3           = unqtText "turquoise3"-  unqtDot Turquoise4           = unqtText "turquoise4"-  unqtDot Violet               = unqtText "violet"-  unqtDot VioletRed            = unqtText "violetred"-  unqtDot VioletRed1           = unqtText "violetred1"-  unqtDot VioletRed2           = unqtText "violetred2"-  unqtDot VioletRed3           = unqtText "violetred3"-  unqtDot VioletRed4           = unqtText "violetred4"-  unqtDot Wheat                = unqtText "wheat"-  unqtDot Wheat1               = unqtText "wheat1"-  unqtDot Wheat2               = unqtText "wheat2"-  unqtDot Wheat3               = unqtText "wheat3"-  unqtDot Wheat4               = unqtText "wheat4"-  unqtDot White                = unqtText "white"-  unqtDot WhiteSmoke           = unqtText "whitesmoke"-  unqtDot Yellow               = unqtText "yellow"-  unqtDot Yellow1              = unqtText "yellow1"-  unqtDot Yellow2              = unqtText "yellow2"-  unqtDot Yellow3              = unqtText "yellow3"-  unqtDot Yellow4              = unqtText "yellow4"-  unqtDot YellowGreen          = unqtText "yellowgreen"--instance ParseDot X11Color where-  parseUnqt = stringValue [ ("aliceblue", AliceBlue)-                          , ("antiquewhite", AntiqueWhite)-                          , ("antiquewhite1", AntiqueWhite1)-                          , ("antiquewhite2", AntiqueWhite2)-                          , ("antiquewhite3", AntiqueWhite3)-                          , ("antiquewhite4", AntiqueWhite4)-                          , ("aquamarine", Aquamarine)-                          , ("aquamarine1", Aquamarine1)-                          , ("aquamarine2", Aquamarine2)-                          , ("aquamarine3", Aquamarine3)-                          , ("aquamarine4", Aquamarine4)-                          , ("azure", Azure)-                          , ("azure1", Azure1)-                          , ("azure2", Azure2)-                          , ("azure3", Azure3)-                          , ("azure4", Azure4)-                          , ("beige", Beige)-                          , ("bisque", Bisque)-                          , ("bisque1", Bisque1)-                          , ("bisque2", Bisque2)-                          , ("bisque3", Bisque3)-                          , ("bisque4", Bisque4)-                          , ("black", Black)-                          , ("blanchedalmond", BlanchedAlmond)-                          , ("blue", Blue)-                          , ("blue1", Blue1)-                          , ("blue2", Blue2)-                          , ("blue3", Blue3)-                          , ("blue4", Blue4)-                          , ("blueviolet", BlueViolet)-                          , ("brown", Brown)-                          , ("brown1", Brown1)-                          , ("brown2", Brown2)-                          , ("brown3", Brown3)-                          , ("brown4", Brown4)-                          , ("burlywood", Burlywood)-                          , ("burlywood1", Burlywood1)-                          , ("burlywood2", Burlywood2)-                          , ("burlywood3", Burlywood3)-                          , ("burlywood4", Burlywood4)-                          , ("cadetblue", CadetBlue)-                          , ("cadetblue1", CadetBlue1)-                          , ("cadetblue2", CadetBlue2)-                          , ("cadetblue3", CadetBlue3)-                          , ("cadetblue4", CadetBlue4)-                          , ("chartreuse", Chartreuse)-                          , ("chartreuse1", Chartreuse1)-                          , ("chartreuse2", Chartreuse2)-                          , ("chartreuse3", Chartreuse3)-                          , ("chartreuse4", Chartreuse4)-                          , ("chocolate", Chocolate)-                          , ("chocolate1", Chocolate1)-                          , ("chocolate2", Chocolate2)-                          , ("chocolate3", Chocolate3)-                          , ("chocolate4", Chocolate4)-                          , ("coral", Coral)-                          , ("coral1", Coral1)-                          , ("coral2", Coral2)-                          , ("coral3", Coral3)-                          , ("coral4", Coral4)-                          , ("cornflowerblue", CornFlowerBlue)-                          , ("cornsilk", CornSilk)-                          , ("cornsilk1", CornSilk1)-                          , ("cornsilk2", CornSilk2)-                          , ("cornsilk3", CornSilk3)-                          , ("cornsilk4", CornSilk4)-                          , ("crimson", Crimson)-                          , ("cyan", Cyan)-                          , ("cyan1", Cyan1)-                          , ("cyan2", Cyan2)-                          , ("cyan3", Cyan3)-                          , ("cyan4", Cyan4)-                          , ("darkgoldenrod", DarkGoldenrod)-                          , ("darkgoldenrod1", DarkGoldenrod1)-                          , ("darkgoldenrod2", DarkGoldenrod2)-                          , ("darkgoldenrod3", DarkGoldenrod3)-                          , ("darkgoldenrod4", DarkGoldenrod4)-                          , ("darkgreen", DarkGreen)-                          , ("darkkhaki", Darkkhaki)-                          , ("darkolivegreen", DarkOliveGreen)-                          , ("darkolivegreen1", DarkOliveGreen1)-                          , ("darkolivegreen2", DarkOliveGreen2)-                          , ("darkolivegreen3", DarkOliveGreen3)-                          , ("darkolivegreen4", DarkOliveGreen4)-                          , ("darkorange", DarkOrange)-                          , ("darkorange1", DarkOrange1)-                          , ("darkorange2", DarkOrange2)-                          , ("darkorange3", DarkOrange3)-                          , ("darkorange4", DarkOrange4)-                          , ("darkorchid", DarkOrchid)-                          , ("darkorchid1", DarkOrchid1)-                          , ("darkorchid2", DarkOrchid2)-                          , ("darkorchid3", DarkOrchid3)-                          , ("darkorchid4", DarkOrchid4)-                          , ("darksalmon", DarkSalmon)-                          , ("darkseagreen", DarkSeaGreen)-                          , ("darkseagreen1", DarkSeaGreen1)-                          , ("darkseagreen2", DarkSeaGreen2)-                          , ("darkseagreen3", DarkSeaGreen3)-                          , ("darkseagreen4", DarkSeaGreen4)-                          , ("darkslateblue", DarkSlateBlue)-                          , ("darkslategray", DarkSlateGray)-                          , ("darkslategrey", DarkSlateGray)-                          , ("darkslategray1", DarkSlateGray1)-                          , ("darkslategrey1", DarkSlateGray1)-                          , ("darkslategray2", DarkSlateGray2)-                          , ("darkslategrey2", DarkSlateGray2)-                          , ("darkslategray3", DarkSlateGray3)-                          , ("darkslategrey3", DarkSlateGray3)-                          , ("darkslategray4", DarkSlateGray4)-                          , ("darkslategrey4", DarkSlateGray4)-                          , ("darkturquoise", DarkTurquoise)-                          , ("darkviolet", DarkViolet)-                          , ("deeppink", DeepPink)-                          , ("deeppink1", DeepPink1)-                          , ("deeppink2", DeepPink2)-                          , ("deeppink3", DeepPink3)-                          , ("deeppink4", DeepPink4)-                          , ("deepskyblue", DeepSkyBlue)-                          , ("deepskyblue1", DeepSkyBlue1)-                          , ("deepskyblue2", DeepSkyBlue2)-                          , ("deepskyblue3", DeepSkyBlue3)-                          , ("deepskyblue4", DeepSkyBlue4)-                          , ("dimgray", DimGray)-                          , ("dimgrey", DimGray)-                          , ("dodgerblue", DodgerBlue)-                          , ("dodgerblue1", DodgerBlue1)-                          , ("dodgerblue2", DodgerBlue2)-                          , ("dodgerblue3", DodgerBlue3)-                          , ("dodgerblue4", DodgerBlue4)-                          , ("firebrick", Firebrick)-                          , ("firebrick1", Firebrick1)-                          , ("firebrick2", Firebrick2)-                          , ("firebrick3", Firebrick3)-                          , ("firebrick4", Firebrick4)-                          , ("floralwhite", FloralWhite)-                          , ("forestgreen", ForestGreen)-                          , ("gainsboro", Gainsboro)-                          , ("ghostwhite", GhostWhite)-                          , ("gold", Gold)-                          , ("gold1", Gold1)-                          , ("gold2", Gold2)-                          , ("gold3", Gold3)-                          , ("gold4", Gold4)-                          , ("goldenrod", Goldenrod)-                          , ("goldenrod1", Goldenrod1)-                          , ("goldenrod2", Goldenrod2)-                          , ("goldenrod3", Goldenrod3)-                          , ("goldenrod4", Goldenrod4)-                          , ("gray", Gray)-                          , ("grey", Gray)-                          , ("gray0", Gray0)-                          , ("grey0", Gray0)-                          , ("gray1", Gray1)-                          , ("grey1", Gray1)-                          , ("gray2", Gray2)-                          , ("grey2", Gray2)-                          , ("gray3", Gray3)-                          , ("grey3", Gray3)-                          , ("gray4", Gray4)-                          , ("grey4", Gray4)-                          , ("gray5", Gray5)-                          , ("grey5", Gray5)-                          , ("gray6", Gray6)-                          , ("grey6", Gray6)-                          , ("gray7", Gray7)-                          , ("grey7", Gray7)-                          , ("gray8", Gray8)-                          , ("grey8", Gray8)-                          , ("gray9", Gray9)-                          , ("grey9", Gray9)-                          , ("gray10", Gray10)-                          , ("grey10", Gray10)-                          , ("gray11", Gray11)-                          , ("grey11", Gray11)-                          , ("gray12", Gray12)-                          , ("grey12", Gray12)-                          , ("gray13", Gray13)-                          , ("grey13", Gray13)-                          , ("gray14", Gray14)-                          , ("grey14", Gray14)-                          , ("gray15", Gray15)-                          , ("grey15", Gray15)-                          , ("gray16", Gray16)-                          , ("grey16", Gray16)-                          , ("gray17", Gray17)-                          , ("grey17", Gray17)-                          , ("gray18", Gray18)-                          , ("grey18", Gray18)-                          , ("gray19", Gray19)-                          , ("grey19", Gray19)-                          , ("gray20", Gray20)-                          , ("grey20", Gray20)-                          , ("gray21", Gray21)-                          , ("grey21", Gray21)-                          , ("gray22", Gray22)-                          , ("grey22", Gray22)-                          , ("gray23", Gray23)-                          , ("grey23", Gray23)-                          , ("gray24", Gray24)-                          , ("grey24", Gray24)-                          , ("gray25", Gray25)-                          , ("grey25", Gray25)-                          , ("gray26", Gray26)-                          , ("grey26", Gray26)-                          , ("gray27", Gray27)-                          , ("grey27", Gray27)-                          , ("gray28", Gray28)-                          , ("grey28", Gray28)-                          , ("gray29", Gray29)-                          , ("grey29", Gray29)-                          , ("gray30", Gray30)-                          , ("grey30", Gray30)-                          , ("gray31", Gray31)-                          , ("grey31", Gray31)-                          , ("gray32", Gray32)-                          , ("grey32", Gray32)-                          , ("gray33", Gray33)-                          , ("grey33", Gray33)-                          , ("gray34", Gray34)-                          , ("grey34", Gray34)-                          , ("gray35", Gray35)-                          , ("grey35", Gray35)-                          , ("gray36", Gray36)-                          , ("grey36", Gray36)-                          , ("gray37", Gray37)-                          , ("grey37", Gray37)-                          , ("gray38", Gray38)-                          , ("grey38", Gray38)-                          , ("gray39", Gray39)-                          , ("grey39", Gray39)-                          , ("gray40", Gray40)-                          , ("grey40", Gray40)-                          , ("gray41", Gray41)-                          , ("grey41", Gray41)-                          , ("gray42", Gray42)-                          , ("grey42", Gray42)-                          , ("gray43", Gray43)-                          , ("grey43", Gray43)-                          , ("gray44", Gray44)-                          , ("grey44", Gray44)-                          , ("gray45", Gray45)-                          , ("grey45", Gray45)-                          , ("gray46", Gray46)-                          , ("grey46", Gray46)-                          , ("gray47", Gray47)-                          , ("grey47", Gray47)-                          , ("gray48", Gray48)-                          , ("grey48", Gray48)-                          , ("gray49", Gray49)-                          , ("grey49", Gray49)-                          , ("gray50", Gray50)-                          , ("grey50", Gray50)-                          , ("gray51", Gray51)-                          , ("grey51", Gray51)-                          , ("gray52", Gray52)-                          , ("grey52", Gray52)-                          , ("gray53", Gray53)-                          , ("grey53", Gray53)-                          , ("gray54", Gray54)-                          , ("grey54", Gray54)-                          , ("gray55", Gray55)-                          , ("grey55", Gray55)-                          , ("gray56", Gray56)-                          , ("grey56", Gray56)-                          , ("gray57", Gray57)-                          , ("grey57", Gray57)-                          , ("gray58", Gray58)-                          , ("grey58", Gray58)-                          , ("gray59", Gray59)-                          , ("grey59", Gray59)-                          , ("gray60", Gray60)-                          , ("grey60", Gray60)-                          , ("gray61", Gray61)-                          , ("grey61", Gray61)-                          , ("gray62", Gray62)-                          , ("grey62", Gray62)-                          , ("gray63", Gray63)-                          , ("grey63", Gray63)-                          , ("gray64", Gray64)-                          , ("grey64", Gray64)-                          , ("gray65", Gray65)-                          , ("grey65", Gray65)-                          , ("gray66", Gray66)-                          , ("grey66", Gray66)-                          , ("gray67", Gray67)-                          , ("grey67", Gray67)-                          , ("gray68", Gray68)-                          , ("grey68", Gray68)-                          , ("gray69", Gray69)-                          , ("grey69", Gray69)-                          , ("gray70", Gray70)-                          , ("grey70", Gray70)-                          , ("gray71", Gray71)-                          , ("grey71", Gray71)-                          , ("gray72", Gray72)-                          , ("grey72", Gray72)-                          , ("gray73", Gray73)-                          , ("grey73", Gray73)-                          , ("gray74", Gray74)-                          , ("grey74", Gray74)-                          , ("gray75", Gray75)-                          , ("grey75", Gray75)-                          , ("gray76", Gray76)-                          , ("grey76", Gray76)-                          , ("gray77", Gray77)-                          , ("grey77", Gray77)-                          , ("gray78", Gray78)-                          , ("grey78", Gray78)-                          , ("gray79", Gray79)-                          , ("grey79", Gray79)-                          , ("gray80", Gray80)-                          , ("grey80", Gray80)-                          , ("gray81", Gray81)-                          , ("grey81", Gray81)-                          , ("gray82", Gray82)-                          , ("grey82", Gray82)-                          , ("gray83", Gray83)-                          , ("grey83", Gray83)-                          , ("gray84", Gray84)-                          , ("grey84", Gray84)-                          , ("gray85", Gray85)-                          , ("grey85", Gray85)-                          , ("gray86", Gray86)-                          , ("grey86", Gray86)-                          , ("gray87", Gray87)-                          , ("grey87", Gray87)-                          , ("gray88", Gray88)-                          , ("grey88", Gray88)-                          , ("gray89", Gray89)-                          , ("grey89", Gray89)-                          , ("gray90", Gray90)-                          , ("grey90", Gray90)-                          , ("gray91", Gray91)-                          , ("grey91", Gray91)-                          , ("gray92", Gray92)-                          , ("grey92", Gray92)-                          , ("gray93", Gray93)-                          , ("grey93", Gray93)-                          , ("gray94", Gray94)-                          , ("grey94", Gray94)-                          , ("gray95", Gray95)-                          , ("grey95", Gray95)-                          , ("gray96", Gray96)-                          , ("grey96", Gray96)-                          , ("gray97", Gray97)-                          , ("grey97", Gray97)-                          , ("gray98", Gray98)-                          , ("grey98", Gray98)-                          , ("gray99", Gray99)-                          , ("grey99", Gray99)-                          , ("gray100", Gray100)-                          , ("grey100", Gray100)-                          , ("green", Green)-                          , ("green1", Green1)-                          , ("green2", Green2)-                          , ("green3", Green3)-                          , ("green4", Green4)-                          , ("greenyellow", GreenYellow)-                          , ("honeydew", HoneyDew)-                          , ("honeydew1", HoneyDew1)-                          , ("honeydew2", HoneyDew2)-                          , ("honeydew3", HoneyDew3)-                          , ("honeydew4", HoneyDew4)-                          , ("hotpink", HotPink)-                          , ("hotpink1", HotPink1)-                          , ("hotpink2", HotPink2)-                          , ("hotpink3", HotPink3)-                          , ("hotpink4", HotPink4)-                          , ("indianred", IndianRed)-                          , ("indianred1", IndianRed1)-                          , ("indianred2", IndianRed2)-                          , ("indianred3", IndianRed3)-                          , ("indianred4", IndianRed4)-                          , ("indigo", Indigo)-                          , ("ivory", Ivory)-                          , ("ivory1", Ivory1)-                          , ("ivory2", Ivory2)-                          , ("ivory3", Ivory3)-                          , ("ivory4", Ivory4)-                          , ("khaki", Khaki)-                          , ("khaki1", Khaki1)-                          , ("khaki2", Khaki2)-                          , ("khaki3", Khaki3)-                          , ("khaki4", Khaki4)-                          , ("lavender", Lavender)-                          , ("lavenderblush", LavenderBlush)-                          , ("lavenderblush1", LavenderBlush1)-                          , ("lavenderblush2", LavenderBlush2)-                          , ("lavenderblush3", LavenderBlush3)-                          , ("lavenderblush4", LavenderBlush4)-                          , ("lawngreen", LawnGreen)-                          , ("lemonchiffon", LemonChiffon)-                          , ("lemonchiffon1", LemonChiffon1)-                          , ("lemonchiffon2", LemonChiffon2)-                          , ("lemonchiffon3", LemonChiffon3)-                          , ("lemonchiffon4", LemonChiffon4)-                          , ("lightblue", LightBlue)-                          , ("lightblue1", LightBlue1)-                          , ("lightblue2", LightBlue2)-                          , ("lightblue3", LightBlue3)-                          , ("lightblue4", LightBlue4)-                          , ("lightcoral", LightCoral)-                          , ("lightcyan", LightCyan)-                          , ("lightcyan1", LightCyan1)-                          , ("lightcyan2", LightCyan2)-                          , ("lightcyan3", LightCyan3)-                          , ("lightcyan4", LightCyan4)-                          , ("lightgoldenrod", LightGoldenrod)-                          , ("lightgoldenrod1", LightGoldenrod1)-                          , ("lightgoldenrod2", LightGoldenrod2)-                          , ("lightgoldenrod3", LightGoldenrod3)-                          , ("lightgoldenrod4", LightGoldenrod4)-                          , ("lightgoldenrodyellow", LightGoldenrodYellow)-                          , ("lightgray", LightGray)-                          , ("lightgrey", LightGray)-                          , ("lightpink", LightPink)-                          , ("lightpink1", LightPink1)-                          , ("lightpink2", LightPink2)-                          , ("lightpink3", LightPink3)-                          , ("lightpink4", LightPink4)-                          , ("lightsalmon", LightSalmon)-                          , ("lightsalmon1", LightSalmon1)-                          , ("lightsalmon2", LightSalmon2)-                          , ("lightsalmon3", LightSalmon3)-                          , ("lightsalmon4", LightSalmon4)-                          , ("lightseagreen", LightSeaGreen)-                          , ("lightskyblue", LightSkyBlue)-                          , ("lightskyblue1", LightSkyBlue1)-                          , ("lightskyblue2", LightSkyBlue2)-                          , ("lightskyblue3", LightSkyBlue3)-                          , ("lightskyblue4", LightSkyBlue4)-                          , ("lightslateblue", LightSlateBlue)-                          , ("lightslategray", LightSlateGray)-                          , ("lightslategrey", LightSlateGray)-                          , ("lightsteelblue", LightSteelBlue)-                          , ("lightsteelblue1", LightSteelBlue1)-                          , ("lightsteelblue2", LightSteelBlue2)-                          , ("lightsteelblue3", LightSteelBlue3)-                          , ("lightsteelblue4", LightSteelBlue4)-                          , ("lightyellow", LightYellow)-                          , ("lightyellow1", LightYellow1)-                          , ("lightyellow2", LightYellow2)-                          , ("lightyellow3", LightYellow3)-                          , ("lightyellow4", LightYellow4)-                          , ("limegreen", LimeGreen)-                          , ("linen", Linen)-                          , ("magenta", Magenta)-                          , ("magenta1", Magenta1)-                          , ("magenta2", Magenta2)-                          , ("magenta3", Magenta3)-                          , ("magenta4", Magenta4)-                          , ("maroon", Maroon)-                          , ("maroon1", Maroon1)-                          , ("maroon2", Maroon2)-                          , ("maroon3", Maroon3)-                          , ("maroon4", Maroon4)-                          , ("mediumaquamarine", MediumAquamarine)-                          , ("mediumblue", MediumBlue)-                          , ("mediumorchid", MediumOrchid)-                          , ("mediumorchid1", MediumOrchid1)-                          , ("mediumorchid2", MediumOrchid2)-                          , ("mediumorchid3", MediumOrchid3)-                          , ("mediumorchid4", MediumOrchid4)-                          , ("mediumpurple", MediumPurple)-                          , ("mediumpurple1", MediumPurple1)-                          , ("mediumpurple2", MediumPurple2)-                          , ("mediumpurple3", MediumPurple3)-                          , ("mediumpurple4", MediumPurple4)-                          , ("mediumseagreen", MediumSeaGreen)-                          , ("mediumslateblue", MediumSlateBlue)-                          , ("mediumspringgreen", MediumSpringGreen)-                          , ("mediumturquoise", MediumTurquoise)-                          , ("mediumvioletred", MediumVioletRed)-                          , ("midnightblue", MidnightBlue)-                          , ("mintcream", MintCream)-                          , ("mistyrose", MistyRose)-                          , ("mistyrose1", MistyRose1)-                          , ("mistyrose2", MistyRose2)-                          , ("mistyrose3", MistyRose3)-                          , ("mistyrose4", MistyRose4)-                          , ("moccasin", Moccasin)-                          , ("navajowhite", NavajoWhite)-                          , ("navajowhite1", NavajoWhite1)-                          , ("navajowhite2", NavajoWhite2)-                          , ("navajowhite3", NavajoWhite3)-                          , ("navajowhite4", NavajoWhite4)-                          , ("navy", Navy)-                          , ("navyblue", NavyBlue)-                          , ("oldlace", OldLace)-                          , ("olivedrab", OliveDrab)-                          , ("olivedrab1", OliveDrab1)-                          , ("olivedrab2", OliveDrab2)-                          , ("olivedrab3", OliveDrab3)-                          , ("olivedrab4", OliveDrab4)-                          , ("orange", Orange)-                          , ("orange1", Orange1)-                          , ("orange2", Orange2)-                          , ("orange3", Orange3)-                          , ("orange4", Orange4)-                          , ("orangered", OrangeRed)-                          , ("orangered1", OrangeRed1)-                          , ("orangered2", OrangeRed2)-                          , ("orangered3", OrangeRed3)-                          , ("orangered4", OrangeRed4)-                          , ("orchid", Orchid)-                          , ("orchid1", Orchid1)-                          , ("orchid2", Orchid2)-                          , ("orchid3", Orchid3)-                          , ("orchid4", Orchid4)-                          , ("palegoldenrod", PaleGoldenrod)-                          , ("palegreen", PaleGreen)-                          , ("palegreen1", PaleGreen1)-                          , ("palegreen2", PaleGreen2)-                          , ("palegreen3", PaleGreen3)-                          , ("palegreen4", PaleGreen4)-                          , ("paleturquoise", PaleTurquoise)-                          , ("paleturquoise1", PaleTurquoise1)-                          , ("paleturquoise2", PaleTurquoise2)-                          , ("paleturquoise3", PaleTurquoise3)-                          , ("paleturquoise4", PaleTurquoise4)-                          , ("palevioletred", PaleVioletRed)-                          , ("palevioletred1", PaleVioletRed1)-                          , ("palevioletred2", PaleVioletRed2)-                          , ("palevioletred3", PaleVioletRed3)-                          , ("palevioletred4", PaleVioletRed4)-                          , ("papayawhip", PapayaWhip)-                          , ("peachpuff", PeachPuff)-                          , ("peachpuff1", PeachPuff1)-                          , ("peachpuff2", PeachPuff2)-                          , ("peachpuff3", PeachPuff3)-                          , ("peachpuff4", PeachPuff4)-                          , ("peru", Peru)-                          , ("pink", Pink)-                          , ("pink1", Pink1)-                          , ("pink2", Pink2)-                          , ("pink3", Pink3)-                          , ("pink4", Pink4)-                          , ("plum", Plum)-                          , ("plum1", Plum1)-                          , ("plum2", Plum2)-                          , ("plum3", Plum3)-                          , ("plum4", Plum4)-                          , ("powderblue", PowderBlue)-                          , ("purple", Purple)-                          , ("purple1", Purple1)-                          , ("purple2", Purple2)-                          , ("purple3", Purple3)-                          , ("purple4", Purple4)-                          , ("red", Red)-                          , ("red1", Red1)-                          , ("red2", Red2)-                          , ("red3", Red3)-                          , ("red4", Red4)-                          , ("rosybrown", RosyBrown)-                          , ("rosybrown1", RosyBrown1)-                          , ("rosybrown2", RosyBrown2)-                          , ("rosybrown3", RosyBrown3)-                          , ("rosybrown4", RosyBrown4)-                          , ("royalblue", RoyalBlue)-                          , ("royalblue1", RoyalBlue1)-                          , ("royalblue2", RoyalBlue2)-                          , ("royalblue3", RoyalBlue3)-                          , ("royalblue4", RoyalBlue4)-                          , ("saddlebrown", SaddleBrown)-                          , ("salmon", Salmon)-                          , ("salmon1", Salmon1)-                          , ("salmon2", Salmon2)-                          , ("salmon3", Salmon3)-                          , ("salmon4", Salmon4)-                          , ("sandybrown", SandyBrown)-                          , ("seagreen", SeaGreen)-                          , ("seagreen1", SeaGreen1)-                          , ("seagreen2", SeaGreen2)-                          , ("seagreen3", SeaGreen3)-                          , ("seagreen4", SeaGreen4)-                          , ("seashell", SeaShell)-                          , ("seashell1", SeaShell1)-                          , ("seashell2", SeaShell2)-                          , ("seashell3", SeaShell3)-                          , ("seashell4", SeaShell4)-                          , ("sienna", Sienna)-                          , ("sienna1", Sienna1)-                          , ("sienna2", Sienna2)-                          , ("sienna3", Sienna3)-                          , ("sienna4", Sienna4)-                          , ("skyblue", SkyBlue)-                          , ("skyblue1", SkyBlue1)-                          , ("skyblue2", SkyBlue2)-                          , ("skyblue3", SkyBlue3)-                          , ("skyblue4", SkyBlue4)-                          , ("slateblue", SlateBlue)-                          , ("slateblue1", SlateBlue1)-                          , ("slateblue2", SlateBlue2)-                          , ("slateblue3", SlateBlue3)-                          , ("slateblue4", SlateBlue4)-                          , ("slategray", SlateGray)-                          , ("slategrey", SlateGray)-                          , ("slategray1", SlateGray1)-                          , ("slategrey1", SlateGray1)-                          , ("slategray2", SlateGray2)-                          , ("slategrey2", SlateGray2)-                          , ("slategray3", SlateGray3)-                          , ("slategrey3", SlateGray3)-                          , ("slategray4", SlateGray4)-                          , ("slategrey4", SlateGray4)-                          , ("snow", Snow)-                          , ("snow1", Snow1)-                          , ("snow2", Snow2)-                          , ("snow3", Snow3)-                          , ("snow4", Snow4)-                          , ("springgreen", SpringGreen)-                          , ("springgreen1", SpringGreen1)-                          , ("springgreen2", SpringGreen2)-                          , ("springgreen3", SpringGreen3)-                          , ("springgreen4", SpringGreen4)-                          , ("steelblue", SteelBlue)-                          , ("steelblue1", SteelBlue1)-                          , ("steelblue2", SteelBlue2)-                          , ("steelblue3", SteelBlue3)-                          , ("steelblue4", SteelBlue4)-                          , ("tan", Tan)-                          , ("tan1", Tan1)-                          , ("tan2", Tan2)-                          , ("tan3", Tan3)-                          , ("tan4", Tan4)-                          , ("thistle", Thistle)-                          , ("thistle1", Thistle1)-                          , ("thistle2", Thistle2)-                          , ("thistle3", Thistle3)-                          , ("thistle4", Thistle4)-                          , ("tomato", Tomato)-                          , ("tomato1", Tomato1)-                          , ("tomato2", Tomato2)-                          , ("tomato3", Tomato3)-                          , ("tomato4", Tomato4)-                          , ("transparent", Transparent)-                          , ("invis", Transparent)-                          , ("none", Transparent)-                          , ("turquoise", Turquoise)-                          , ("turquoise1", Turquoise1)-                          , ("turquoise2", Turquoise2)-                          , ("turquoise3", Turquoise3)-                          , ("turquoise4", Turquoise4)-                          , ("violet", Violet)-                          , ("violetred", VioletRed)-                          , ("violetred1", VioletRed1)-                          , ("violetred2", VioletRed2)-                          , ("violetred3", VioletRed3)-                          , ("violetred4", VioletRed4)-                          , ("wheat", Wheat)-                          , ("wheat1", Wheat1)-                          , ("wheat2", Wheat2)-                          , ("wheat3", Wheat3)-                          , ("wheat4", Wheat4)-                          , ("white", White)-                          , ("whitesmoke", WhiteSmoke)-                          , ("yellow", Yellow)-                          , ("yellow1", Yellow1)-                          , ("yellow2", Yellow2)-                          , ("yellow3", Yellow3)-                          , ("yellow4", Yellow4)-                          , ("yellowgreen", YellowGreen)-                          ]---- | Attempt to convert a 'Color' into a 'Colour' value with an alpha---   channel.  The use of 'Maybe' is because the RGB values of the---   'BrewerColor's haven't been stored here (primarily for licensing---   reasons).-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+         -- * Colors+       , Color(..)+       , NamedColor(toColor)+         -- * Conversion to\/from @Colour@.+       , toColour+       , fromColour+       , fromAColour+       ) where++import Data.GraphViz.Parsing+import Data.GraphViz.Printing+import Data.GraphViz.State+import Data.GraphViz.Attributes.ColorScheme(ColorScheme(..))+import Data.GraphViz.Attributes.Colors.X11(X11Color(Transparent), x11Colour)+import Data.GraphViz.Attributes.Colors.SVG(SVGColor, svgColour)+import Data.GraphViz.Attributes.Colors.Brewer(BrewerColor(..))+import Data.GraphViz.Util(bool)+import Data.GraphViz.Exception++import Data.Colour( AlphaColour, opaque, 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.Maybe(isJust)+import Data.Word(Word8)+import qualified Data.Text.Lazy as T+import Control.Monad(liftM)++-- -----------------------------------------------------------------------------++-- | 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+           | SVGColor SVGColor+           | BrewerColor BrewerColor+           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 $ mapM unqtDot [h,s,v]+  unqtDot (SVGColor name)  = printNC False name+  unqtDot (X11Color name)  = printNC False name+  unqtDot (BrewerColor bc) = printNC False bc++  -- Some cases might not need quotes.+  toDot (X11Color name)  = printNC True name+  toDot (SVGColor name)  = printNC True name+  toDot (BrewerColor bc) = printNC True bc+  toDot c                = dquotes $ unqtDot c++  unqtListToDot = hcat . punctuate colon . mapM unqtDot++  -- These three might not need to be quoted if they're on their own.+  listToDot [X11Color name]  = printNC True name+  listToDot [SVGColor name]  = printNC True name+  listToDot [BrewerColor bc] = printNC True bc+  listToDot cs               = dquotes $ unqtListToDot cs++hexColor :: [Word8] -> DotCode+hexColor = (<>) (char '#') . hcat . mapM word8Doc++word8Doc   :: Word8 -> DotCode+word8Doc w = text $ padding `T.append` simple+  where+    simple = T.pack $ showHex w ""+    padding = T.replicate count (T.singleton '0')+    count = 2 - findCols 1 w+    findCols c n+      | n < 16 = c+      | otherwise = findCols (c+1) (n `div` 16)++instance ParseDot Color where+  parseUnqt = oneOf [ parseHexBased+                    , parseHSV+                      -- Have to parse BrewerColor first, as some of them may appear to be X11 colors+                    , parseNC (undefined :: BrewerColor) False+                    , parseNC (undefined :: SVGColor) False+                    , parseX11Color False+                    ]+    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+                          _ -> throw . NotDotCode+                               $ "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 ","+                       , whitespace1+                       ]+      parse2Hex = do c1 <- satisfy isHexDigit+                     c2 <- satisfy isHexDigit+                     let [(n, [])] = readHex [c1, c2]+                     return n++  parse = quotedParse parseUnqt+          `onFail` -- These three might not need to be quoted+          oneOf [ parseNC (undefined :: BrewerColor) True+                , parseNC (undefined :: SVGColor) True+                , parseX11Color True+                ]++  parseUnqtList = sepBy1 parseUnqt (character ':')++  parseList = liftM (:[])+              -- Unquoted single color+              (oneOf [ parseNC (undefined :: BrewerColor) True+                     , parseNC (undefined :: SVGColor) True+                     , parseX11Color True+                     ]+              )+              `onFail`+              quotedParse parseUnqtList++-- -----------------------------------------------------------------------------++-- | More easily convert named colors to an overall 'Color' value.+class NamedColor nc where+    colorScheme :: nc -> ColorScheme++    toColor :: nc -> Color++    printNC :: Bool -> nc -> DotCode++    parseNC' :: Bool -> Parse nc++-- First value just used for type+parseNC :: (NamedColor nc) => nc -> Bool -> Parse Color+parseNC nc q = fmap (toColor . flip asTypeOf nc)+               $ parseNC' q++instance NamedColor BrewerColor where+    colorScheme (BC bs _) = Brewer bs++    toColor = BrewerColor++    printNC = printNamedColor (\ (BC _ l) -> l)++    parseNC' = parseNamedColor mBCS parseUnqt (const True) BC+        where+          mBCS (Brewer bs) = Just bs+          mBCS _           = Nothing++instance NamedColor X11Color where+    colorScheme = const X11++    toColor = X11Color++    printNC = printNamedColor id++    parseNC' = parseNamedColor mX11 (parseColorScheme False) (isJust . mX11) (const id)+        where+          mX11 X11 = Just X11+          mX11 _   = Nothing++instance NamedColor SVGColor where+    colorScheme = const SVG++    toColor = SVGColor++    printNC = printNamedColor id++    parseNC' = parseNamedColor mSVG (parseColorScheme False) (isJust . mSVG) (const id)+        where+          mSVG SVG = Just SVG+          mSVG _   = Nothing++printNamedColor :: (NamedColor nc, PrintDot lv) => (nc -> lv)+                   -> Bool -> nc -> DotCode+printNamedColor fl q c = do currentCS <- getColorScheme+                            if cs == currentCS+                               then (bool unqtDot toDot q) lv+                               else bool id dquotes q+                                    $ fslash <> printColorScheme False cs+                                      <> fslash <> unqtDot lv+    where+      cs = colorScheme c+      lv = fl c++parseNamedColor :: (NamedColor nc, ParseDot lv)+                   => (ColorScheme -> Maybe cs) -> Parse cs -> (cs -> Bool)+                   -> (cs -> lv -> nc) -> Bool -> Parse nc+parseNamedColor gcs parseCS vcs mkC q+    = do Just cs <- gcs `fmap` getColorScheme+         lv <- bool parseUnqt parse q+               `onFail`+               mQts (string "//" *> parseUnqt)+         return $ mkC cs lv+      `onFail`+      mQts ( do character '/'+                cs <- parseCS+                character '/'+                if vcs cs+                   then do lv <- parseUnqt+                           return $ mkC cs lv+                   else fail "Explicit colorscheme not as expected."+           )+    where+      mQts = bool id quotedParse q++-- -----------------------------------------------------------------------------++-- X11 has a special case when parsing: '/yyyy'++parseX11Color   :: Bool -> Parse Color+parseX11Color q = fmap X11Color+                  $ parseNC' q+                    `onFail`+                    bool id quotedParse q (character '/' *> parseUnqt)+                    `onFail`+                    -- Can use X11 colors within brewer colorscheme.+                    do cs <- getColorScheme+                       case cs of+                         Brewer{} -> bool parseUnqt parse q+                         _        -> fail "Unable to parse an X11 color within Brewer"++-- -----------------------------------------------------------------------------++-- | Attempt to convert a 'Color' into a 'Colour' value with an alpha+--   channel.  The use of 'Maybe' is because the RGB values of the+--   'BrewerColor's haven't been stored here (primarily for licensing+--   reasons).+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 (SVGColor c)   = Just . opaque $ svgColour c+toColour BrewerColor{}  = Nothing++toOpacity   :: Word8 -> Double+toOpacity a = fromIntegral a / maxWord  -- | Convert a 'Colour' value to an 'RGB' 'Color'. fromColour :: Colour Double -> Color
+ Data/GraphViz/Attributes/Colors/Brewer.hs view
@@ -0,0 +1,52 @@+{-# LANGUAGE OverloadedStrings #-}++{- |+   Module      : Data.GraphViz.Attributes.Colors.Brewer+   Description : Specification of Brewer colors.+   Copyright   : (c) Ivan Lazar Miljenovic+   License     : 3-Clause BSD-style+   Maintainer  : Ivan.Miljenovic@gmail.com++   You almost definitely do /not/ want to use this module.  It is only+   defined for completeness when parsing existing Dot code.++   Graphviz contains a list of colors known as the /Brewer color+   schemes/.++   These colors are available under an Apache-style license:+   <http://www.graphviz.org/doc/info/colors.html#brewer_license>.  As+   such, they are not recommended for general use, and have only been+   included in this package for completeness.++   The complete list of Brewer colors can be found at+   <http://www.graphviz.org/doc/info/colors.html#brewer>.++ -}+module Data.GraphViz.Attributes.Colors.Brewer+    ( BrewerScheme(..)+    , BrewerName(..)+    , BrewerColor(..)+    ) where++{-++ This is a virtual module designed just to re-export the Brewer colors.++ -}++import Data.GraphViz.Attributes.ColorScheme(BrewerScheme(..), BrewerName(..))++-- To get the instances+import Data.GraphViz.Parsing()+import Data.GraphViz.Printing()++import Data.Word(Word8)++-- -----------------------------------------------------------------------------++-- Note: we do /not/ have {Print,Parse}Dot instances for this; it's covered in Color.++-- | This value should be between @1@ and the level of the+--   'BrewerScheme' being used.+data BrewerColor = BC BrewerScheme Word8+                   deriving (Eq, Ord, Show, Read)
+ Data/GraphViz/Attributes/Colors/SVG.hs view
@@ -0,0 +1,609 @@+{-# LANGUAGE OverloadedStrings #-}++{- |+   Module      : Data.GraphViz.Attributes.Colors.SVG+   Description : Specification of SVG colors.+   Copyright   : (c) Ivan Lazar Miljenovic+   License     : 3-Clause BSD-style+   Maintainer  : Ivan.Miljenovic@gmail.com++   Graphviz comes with an SVG color scheme:+   <http://www.graphviz.org/doc/info/colors.html#svg>++   However, in general use you probably want to use+   "Data.GraphViz.Attributes.Colors.X11" instead, unless you are only+   generating SVG images.++ -}+module Data.GraphViz.Attributes.Colors.SVG+    ( SVGColor(..)+    , svgColour+    ) where++import Data.GraphViz.Parsing+import Data.GraphViz.Printing++import Data.Colour(Colour)+import Data.Colour.SRGB(sRGB24)++-- -----------------------------------------------------------------------------++-- | The SVG colors that Graphviz uses.  Graphviz's list of colors+--   also duplicated all @*Gray*@ colors with @*Grey*@ ones; parsing+--   of an 'SVGColor' which is specified using \"grey\" will succeed.+data SVGColor = AliceBlue+              | AntiqueWhite+              | Aqua+              | Aquamarine+              | Azure+              | Beige+              | Bisque+              | Black+              | BlanchedAlmond+              | Blue+              | BlueViolet+              | Brown+              | Burlywood+              | CadetBlue+              | Chartreuse+              | Chocolate+              | Coral+              | CornflowerBlue+              | Cornsilk+              | Crimson+              | Cyan+              | DarkBlue+              | DarkCyan+              | DarkGoldenrod+              | DarkGray+              | DarkGreen+              | DarkKhaki+              | DarkMagenta+              | DarkOliveGreen+              | DarkOrange+              | DarkOrchid+              | DarkRed+              | DarkSalmon+              | DarkSeaGreen+              | DarkSlateBlue+              | DarkSlateGray+              | DarkTurquoise+              | DarkViolet+              | DeepPink+              | DeepSkyBlue+              | DimGray+              | DodgerBlue+              | Firebrick+              | FloralWhite+              | ForestGreen+              | Fuchsia+              | Gainsboro+              | GhostWhite+              | Gold+              | Goldenrod+              | Gray+              | Green+              | GreenYellow+              | Honeydew+              | HotPink+              | IndianRed+              | Indigo+              | Ivory+              | Khaki+              | Lavender+              | LavenderBlush+              | LawnGreen+              | LemonChiffon+              | LightBlue+              | LightCoral+              | LightCyan+              | LightGoldenrodYellow+              | LightGray+              | LightGreen+              | LightPink+              | LightSalmon+              | LightSeaGreen+              | LightSkyBlue+              | LightSlateGray+              | LightSteelBlue+              | LightYellow+              | Lime+              | LimeGreen+              | Linen+              | Magenta+              | Maroon+              | MediumAquamarine+              | MediumBlue+              | MediumOrchid+              | MediumPurple+              | MediumSeaGreen+              | MediumSlateBlue+              | MediumSpringGreen+              | MediumTurquoise+              | MediumVioletRed+              | MidnightBlue+              | MintCream+              | MistyRose+              | Moccasin+              | NavajoWhite+              | Navy+              | OldLace+              | Olive+              | OliveDrab+              | Orange+              | OrangeRed+              | Orchid+              | PaleGoldenrod+              | PaleGreen+              | PaleTurquoise+              | PaleVioletRed+              | PapayaWhip+              | PeachPuff+              | Peru+              | Pink+              | Plum+              | PowderBlue+              | Purple+              | Red+              | RosyBrown+              | RoyalBlue+              | SaddleBrown+              | Salmon+              | SandyBrown+              | SeaGreen+              | SeaShell+              | Sienna+              | Silver+              | SkyBlue+              | SlateBlue+              | SlateGray+              | Snow+              | SpringGreen+              | SteelBlue+              | Tan+              | Teal+              | Thistle+              | Tomato+              | Turquoise+              | Violet+              | Wheat+              | White+              | WhiteSmoke+              | Yellow+              | YellowGreen+              deriving (Eq, Ord, Bounded, Enum, Show, Read)++instance PrintDot SVGColor where+  unqtDot AliceBlue            = unqtText "aliceblue"+  unqtDot AntiqueWhite         = unqtText "antiquewhite"+  unqtDot Aqua                 = unqtText "aqua"+  unqtDot Aquamarine           = unqtText "aquamarine"+  unqtDot Azure                = unqtText "azure"+  unqtDot Beige                = unqtText "beige"+  unqtDot Bisque               = unqtText "bisque"+  unqtDot Black                = unqtText "black"+  unqtDot BlanchedAlmond       = unqtText "blanchedalmond"+  unqtDot Blue                 = unqtText "blue"+  unqtDot BlueViolet           = unqtText "blueviolet"+  unqtDot Brown                = unqtText "brown"+  unqtDot Burlywood            = unqtText "burlywood"+  unqtDot CadetBlue            = unqtText "cadetblue"+  unqtDot Chartreuse           = unqtText "chartreuse"+  unqtDot Chocolate            = unqtText "chocolate"+  unqtDot Coral                = unqtText "coral"+  unqtDot CornflowerBlue       = unqtText "cornflowerblue"+  unqtDot Cornsilk             = unqtText "cornsilk"+  unqtDot Crimson              = unqtText "crimson"+  unqtDot Cyan                 = unqtText "cyan"+  unqtDot DarkBlue             = unqtText "darkblue"+  unqtDot DarkCyan             = unqtText "darkcyan"+  unqtDot DarkGoldenrod        = unqtText "darkgoldenrod"+  unqtDot DarkGray             = unqtText "darkgray"+  unqtDot DarkGreen            = unqtText "darkgreen"+  unqtDot DarkKhaki            = unqtText "darkkhaki"+  unqtDot DarkMagenta          = unqtText "darkmagenta"+  unqtDot DarkOliveGreen       = unqtText "darkolivegreen"+  unqtDot DarkOrange           = unqtText "darkorange"+  unqtDot DarkOrchid           = unqtText "darkorchid"+  unqtDot DarkRed              = unqtText "darkred"+  unqtDot DarkSalmon           = unqtText "darksalmon"+  unqtDot DarkSeaGreen         = unqtText "darkseagreen"+  unqtDot DarkSlateBlue        = unqtText "darkslateblue"+  unqtDot DarkSlateGray        = unqtText "darkslategray"+  unqtDot DarkTurquoise        = unqtText "darkturquoise"+  unqtDot DarkViolet           = unqtText "darkviolet"+  unqtDot DeepPink             = unqtText "deeppink"+  unqtDot DeepSkyBlue          = unqtText "deepskyblue"+  unqtDot DimGray              = unqtText "dimgray"+  unqtDot DodgerBlue           = unqtText "dodgerblue"+  unqtDot Firebrick            = unqtText "firebrick"+  unqtDot FloralWhite          = unqtText "floralwhite"+  unqtDot ForestGreen          = unqtText "forestgreen"+  unqtDot Fuchsia              = unqtText "fuchsia"+  unqtDot Gainsboro            = unqtText "gainsboro"+  unqtDot GhostWhite           = unqtText "ghostwhite"+  unqtDot Gold                 = unqtText "gold"+  unqtDot Goldenrod            = unqtText "goldenrod"+  unqtDot Gray                 = unqtText "gray"+  unqtDot Green                = unqtText "green"+  unqtDot GreenYellow          = unqtText "greenyellow"+  unqtDot Honeydew             = unqtText "honeydew"+  unqtDot HotPink              = unqtText "hotpink"+  unqtDot IndianRed            = unqtText "indianred"+  unqtDot Indigo               = unqtText "indigo"+  unqtDot Ivory                = unqtText "ivory"+  unqtDot Khaki                = unqtText "khaki"+  unqtDot Lavender             = unqtText "lavender"+  unqtDot LavenderBlush        = unqtText "lavenderblush"+  unqtDot LawnGreen            = unqtText "lawngreen"+  unqtDot LemonChiffon         = unqtText "lemonchiffon"+  unqtDot LightBlue            = unqtText "lightblue"+  unqtDot LightCoral           = unqtText "lightcoral"+  unqtDot LightCyan            = unqtText "lightcyan"+  unqtDot LightGoldenrodYellow = unqtText "lightgoldenrodyellow"+  unqtDot LightGray            = unqtText "lightgray"+  unqtDot LightGreen           = unqtText "lightgreen"+  unqtDot LightPink            = unqtText "lightpink"+  unqtDot LightSalmon          = unqtText "lightsalmon"+  unqtDot LightSeaGreen        = unqtText "lightseagreen"+  unqtDot LightSkyBlue         = unqtText "lightskyblue"+  unqtDot LightSlateGray       = unqtText "lightslategray"+  unqtDot LightSteelBlue       = unqtText "lightsteelblue"+  unqtDot LightYellow          = unqtText "lightyellow"+  unqtDot Lime                 = unqtText "lime"+  unqtDot LimeGreen            = unqtText "limegreen"+  unqtDot Linen                = unqtText "linen"+  unqtDot Magenta              = unqtText "magenta"+  unqtDot Maroon               = unqtText "maroon"+  unqtDot MediumAquamarine     = unqtText "mediumaquamarine"+  unqtDot MediumBlue           = unqtText "mediumblue"+  unqtDot MediumOrchid         = unqtText "mediumorchid"+  unqtDot MediumPurple         = unqtText "mediumpurple"+  unqtDot MediumSeaGreen       = unqtText "mediumseagreen"+  unqtDot MediumSlateBlue      = unqtText "mediumslateblue"+  unqtDot MediumSpringGreen    = unqtText "mediumspringgreen"+  unqtDot MediumTurquoise      = unqtText "mediumturquoise"+  unqtDot MediumVioletRed      = unqtText "mediumvioletred"+  unqtDot MidnightBlue         = unqtText "midnightblue"+  unqtDot MintCream            = unqtText "mintcream"+  unqtDot MistyRose            = unqtText "mistyrose"+  unqtDot Moccasin             = unqtText "moccasin"+  unqtDot NavajoWhite          = unqtText "navajowhite"+  unqtDot Navy                 = unqtText "navy"+  unqtDot OldLace              = unqtText "oldlace"+  unqtDot Olive                = unqtText "olive"+  unqtDot OliveDrab            = unqtText "olivedrab"+  unqtDot Orange               = unqtText "orange"+  unqtDot OrangeRed            = unqtText "orangered"+  unqtDot Orchid               = unqtText "orchid"+  unqtDot PaleGoldenrod        = unqtText "palegoldenrod"+  unqtDot PaleGreen            = unqtText "palegreen"+  unqtDot PaleTurquoise        = unqtText "paleturquoise"+  unqtDot PaleVioletRed        = unqtText "palevioletred"+  unqtDot PapayaWhip           = unqtText "papayawhip"+  unqtDot PeachPuff            = unqtText "peachpuff"+  unqtDot Peru                 = unqtText "peru"+  unqtDot Pink                 = unqtText "pink"+  unqtDot Plum                 = unqtText "plum"+  unqtDot PowderBlue           = unqtText "powderblue"+  unqtDot Purple               = unqtText "purple"+  unqtDot Red                  = unqtText "red"+  unqtDot RosyBrown            = unqtText "rosybrown"+  unqtDot RoyalBlue            = unqtText "royalblue"+  unqtDot SaddleBrown          = unqtText "saddlebrown"+  unqtDot Salmon               = unqtText "salmon"+  unqtDot SandyBrown           = unqtText "sandybrown"+  unqtDot SeaGreen             = unqtText "seagreen"+  unqtDot SeaShell             = unqtText "seashell"+  unqtDot Sienna               = unqtText "sienna"+  unqtDot Silver               = unqtText "silver"+  unqtDot SkyBlue              = unqtText "skyblue"+  unqtDot SlateBlue            = unqtText "slateblue"+  unqtDot SlateGray            = unqtText "slategray"+  unqtDot Snow                 = unqtText "snow"+  unqtDot SpringGreen          = unqtText "springgreen"+  unqtDot SteelBlue            = unqtText "steelblue"+  unqtDot Tan                  = unqtText "tan"+  unqtDot Teal                 = unqtText "teal"+  unqtDot Thistle              = unqtText "thistle"+  unqtDot Tomato               = unqtText "tomato"+  unqtDot Turquoise            = unqtText "turquoise"+  unqtDot Violet               = unqtText "violet"+  unqtDot Wheat                = unqtText "wheat"+  unqtDot White                = unqtText "white"+  unqtDot WhiteSmoke           = unqtText "whitesmoke"+  unqtDot Yellow               = unqtText "yellow"+  unqtDot YellowGreen          = unqtText "yellowgreen"++instance ParseDot SVGColor where+  parseUnqt = stringValue [ ("aliceblue", AliceBlue)+                          , ("antiquewhite", AntiqueWhite)+                          , ("aqua", Aqua)+                          , ("aquamarine", Aquamarine)+                          , ("azure", Azure)+                          , ("beige", Beige)+                          , ("bisque", Bisque)+                          , ("black", Black)+                          , ("blanchedalmond", BlanchedAlmond)+                          , ("blue", Blue)+                          , ("blueviolet", BlueViolet)+                          , ("brown", Brown)+                          , ("burlywood", Burlywood)+                          , ("cadetblue", CadetBlue)+                          , ("chartreuse", Chartreuse)+                          , ("chocolate", Chocolate)+                          , ("coral", Coral)+                          , ("cornflowerblue", CornflowerBlue)+                          , ("cornsilk", Cornsilk)+                          , ("crimson", Crimson)+                          , ("cyan", Cyan)+                          , ("darkblue", DarkBlue)+                          , ("darkcyan", DarkCyan)+                          , ("darkgoldenrod", DarkGoldenrod)+                          , ("darkgray", DarkGray)+                          , ("darkgrey", DarkGray)+                          , ("darkgreen", DarkGreen)+                          , ("darkkhaki", DarkKhaki)+                          , ("darkmagenta", DarkMagenta)+                          , ("darkolivegreen", DarkOliveGreen)+                          , ("darkorange", DarkOrange)+                          , ("darkorchid", DarkOrchid)+                          , ("darkred", DarkRed)+                          , ("darksalmon", DarkSalmon)+                          , ("darkseagreen", DarkSeaGreen)+                          , ("darkslateblue", DarkSlateBlue)+                          , ("darkslategray", DarkSlateGray)+                          , ("darkslategrey", DarkSlateGray)+                          , ("darkturquoise", DarkTurquoise)+                          , ("darkviolet", DarkViolet)+                          , ("deeppink", DeepPink)+                          , ("deepskyblue", DeepSkyBlue)+                          , ("dimgray", DimGray)+                          , ("dimgrey", DimGray)+                          , ("dodgerblue", DodgerBlue)+                          , ("firebrick", Firebrick)+                          , ("floralwhite", FloralWhite)+                          , ("forestgreen", ForestGreen)+                          , ("fuchsia", Fuchsia)+                          , ("gainsboro", Gainsboro)+                          , ("ghostwhite", GhostWhite)+                          , ("gold", Gold)+                          , ("goldenrod", Goldenrod)+                          , ("gray", Gray)+                          , ("grey", Gray)+                          , ("green", Green)+                          , ("greenyellow", GreenYellow)+                          , ("honeydew", Honeydew)+                          , ("hotpink", HotPink)+                          , ("indianred", IndianRed)+                          , ("indigo", Indigo)+                          , ("ivory", Ivory)+                          , ("khaki", Khaki)+                          , ("lavender", Lavender)+                          , ("lavenderblush", LavenderBlush)+                          , ("lawngreen", LawnGreen)+                          , ("lemonchiffon", LemonChiffon)+                          , ("lightblue", LightBlue)+                          , ("lightcoral", LightCoral)+                          , ("lightcyan", LightCyan)+                          , ("lightgoldenrodyellow", LightGoldenrodYellow)+                          , ("lightgray", LightGray)+                          , ("lightgrey", LightGray)+                          , ("lightgreen", LightGreen)+                          , ("lightpink", LightPink)+                          , ("lightsalmon", LightSalmon)+                          , ("lightseagreen", LightSeaGreen)+                          , ("lightskyblue", LightSkyBlue)+                          , ("lightslategray", LightSlateGray)+                          , ("lightslategrey", LightSlateGray)+                          , ("lightsteelblue", LightSteelBlue)+                          , ("lightyellow", LightYellow)+                          , ("lime", Lime)+                          , ("limegreen", LimeGreen)+                          , ("linen", Linen)+                          , ("magenta", Magenta)+                          , ("maroon", Maroon)+                          , ("mediumaquamarine", MediumAquamarine)+                          , ("mediumblue", MediumBlue)+                          , ("mediumorchid", MediumOrchid)+                          , ("mediumpurple", MediumPurple)+                          , ("mediumseagreen", MediumSeaGreen)+                          , ("mediumslateblue", MediumSlateBlue)+                          , ("mediumspringgreen", MediumSpringGreen)+                          , ("mediumturquoise", MediumTurquoise)+                          , ("mediumvioletred", MediumVioletRed)+                          , ("midnightblue", MidnightBlue)+                          , ("mintcream", MintCream)+                          , ("mistyrose", MistyRose)+                          , ("moccasin", Moccasin)+                          , ("navajowhite", NavajoWhite)+                          , ("navy", Navy)+                          , ("oldlace", OldLace)+                          , ("olive", Olive)+                          , ("olivedrab", OliveDrab)+                          , ("orange", Orange)+                          , ("orangered", OrangeRed)+                          , ("orchid", Orchid)+                          , ("palegoldenrod", PaleGoldenrod)+                          , ("palegreen", PaleGreen)+                          , ("paleturquoise", PaleTurquoise)+                          , ("palevioletred", PaleVioletRed)+                          , ("papayawhip", PapayaWhip)+                          , ("peachpuff", PeachPuff)+                          , ("peru", Peru)+                          , ("pink", Pink)+                          , ("plum", Plum)+                          , ("powderblue", PowderBlue)+                          , ("purple", Purple)+                          , ("red", Red)+                          , ("rosybrown", RosyBrown)+                          , ("royalblue", RoyalBlue)+                          , ("saddlebrown", SaddleBrown)+                          , ("salmon", Salmon)+                          , ("sandybrown", SandyBrown)+                          , ("seagreen", SeaGreen)+                          , ("seashell", SeaShell)+                          , ("sienna", Sienna)+                          , ("silver", Silver)+                          , ("skyblue", SkyBlue)+                          , ("slateblue", SlateBlue)+                          , ("slategray", SlateGray)+                          , ("slategrey", SlateGray)+                          , ("snow", Snow)+                          , ("springgreen", SpringGreen)+                          , ("steelblue", SteelBlue)+                          , ("tan", Tan)+                          , ("teal", Teal)+                          , ("thistle", Thistle)+                          , ("tomato", Tomato)+                          , ("turquoise", Turquoise)+                          , ("violet", Violet)+                          , ("wheat", Wheat)+                          , ("white", White)+                          , ("whitesmoke", WhiteSmoke)+                          , ("yellow", Yellow)+                          , ("yellowgreen", YellowGreen)+                          ]++-- | Convert an 'SVGColor' to its equivalent 'Colour' value.+svgColour                      :: SVGColor -> Colour Double+svgColour AliceBlue            = sRGB24 240 248 255+svgColour AntiqueWhite         = sRGB24 250 235 215+svgColour Aqua                 = sRGB24 0   255 255+svgColour Aquamarine           = sRGB24 127 255 212+svgColour Azure                = sRGB24 240 255 255+svgColour Beige                = sRGB24 245 245 220+svgColour Bisque               = sRGB24 255 228 196+svgColour Black                = sRGB24 0   0   0+svgColour BlanchedAlmond       = sRGB24 255 235 205+svgColour Blue                 = sRGB24 0   0   255+svgColour BlueViolet           = sRGB24 138 43  226+svgColour Brown                = sRGB24 165 42  42+svgColour Burlywood            = sRGB24 222 184 135+svgColour CadetBlue            = sRGB24 95  158 160+svgColour Chartreuse           = sRGB24 127 255 0+svgColour Chocolate            = sRGB24 210 105 30+svgColour Coral                = sRGB24 255 127 80+svgColour CornflowerBlue       = sRGB24 100 149 237+svgColour Cornsilk             = sRGB24 255 248 220+svgColour Crimson              = sRGB24 220 20  60+svgColour Cyan                 = sRGB24 0   255 255+svgColour DarkBlue             = sRGB24 0   0   139+svgColour DarkCyan             = sRGB24 0   139 139+svgColour DarkGoldenrod        = sRGB24 184 134 11+svgColour DarkGray             = sRGB24 169 169 169+svgColour DarkGreen            = sRGB24 0   100 0+svgColour DarkKhaki            = sRGB24 189 183 107+svgColour DarkMagenta          = sRGB24 139 0   139+svgColour DarkOliveGreen       = sRGB24 85  107 47+svgColour DarkOrange           = sRGB24 255 140 0+svgColour DarkOrchid           = sRGB24 153 50  204+svgColour DarkRed              = sRGB24 139 0   0+svgColour DarkSalmon           = sRGB24 233 150 122+svgColour DarkSeaGreen         = sRGB24 143 188 143+svgColour DarkSlateBlue        = sRGB24 72  61  139+svgColour DarkSlateGray        = sRGB24 47  79  79+svgColour DarkTurquoise        = sRGB24 0   206 209+svgColour DarkViolet           = sRGB24 148 0   211+svgColour DeepPink             = sRGB24 255 20  147+svgColour DeepSkyBlue          = sRGB24 0   191 255+svgColour DimGray              = sRGB24 105 105 105+svgColour DodgerBlue           = sRGB24 30  144 255+svgColour Firebrick            = sRGB24 178 34  34+svgColour FloralWhite          = sRGB24 255 250 240+svgColour ForestGreen          = sRGB24 34  139 34+svgColour Fuchsia              = sRGB24 255 0   255+svgColour Gainsboro            = sRGB24 220 220 220+svgColour GhostWhite           = sRGB24 248 248 255+svgColour Gold                 = sRGB24 255 215 0+svgColour Goldenrod            = sRGB24 218 165 32+svgColour Gray                 = sRGB24 128 128 128+svgColour Green                = sRGB24 0   128 0+svgColour GreenYellow          = sRGB24 173 255 47+svgColour Honeydew             = sRGB24 240 255 240+svgColour HotPink              = sRGB24 255 105 180+svgColour IndianRed            = sRGB24 205 92  92+svgColour Indigo               = sRGB24 75  0   130+svgColour Ivory                = sRGB24 255 255 240+svgColour Khaki                = sRGB24 240 230 140+svgColour Lavender             = sRGB24 230 230 250+svgColour LavenderBlush        = sRGB24 255 240 245+svgColour LawnGreen            = sRGB24 124 252 0+svgColour LemonChiffon         = sRGB24 255 250 205+svgColour LightBlue            = sRGB24 173 216 230+svgColour LightCoral           = sRGB24 240 128 128+svgColour LightCyan            = sRGB24 224 255 255+svgColour LightGoldenrodYellow = sRGB24 250 250 210+svgColour LightGray            = sRGB24 211 211 211+svgColour LightGreen           = sRGB24 144 238 144+svgColour LightPink            = sRGB24 255 182 193+svgColour LightSalmon          = sRGB24 255 160 122+svgColour LightSeaGreen        = sRGB24 32  178 170+svgColour LightSkyBlue         = sRGB24 135 206 250+svgColour LightSlateGray       = sRGB24 119 136 153+svgColour LightSteelBlue       = sRGB24 176 196 222+svgColour LightYellow          = sRGB24 255 255 224+svgColour Lime                 = sRGB24 0   255 0+svgColour LimeGreen            = sRGB24 50  205 50+svgColour Linen                = sRGB24 250 240 230+svgColour Magenta              = sRGB24 255 0   255+svgColour Maroon               = sRGB24 128 0   0+svgColour MediumAquamarine     = sRGB24 102 205 170+svgColour MediumBlue           = sRGB24 0   0   205+svgColour MediumOrchid         = sRGB24 186 85  211+svgColour MediumPurple         = sRGB24 147 112 219+svgColour MediumSeaGreen       = sRGB24 60  179 113+svgColour MediumSlateBlue      = sRGB24 123 104 238+svgColour MediumSpringGreen    = sRGB24 0   250 154+svgColour MediumTurquoise      = sRGB24 72  209 204+svgColour MediumVioletRed      = sRGB24 199 21  133+svgColour MidnightBlue         = sRGB24 25  25  112+svgColour MintCream            = sRGB24 245 255 250+svgColour MistyRose            = sRGB24 255 228 225+svgColour Moccasin             = sRGB24 255 228 181+svgColour NavajoWhite          = sRGB24 255 222 173+svgColour Navy                 = sRGB24 0   0   128+svgColour OldLace              = sRGB24 253 245 230+svgColour Olive                = sRGB24 128 128 0+svgColour OliveDrab            = sRGB24 107 142 35+svgColour Orange               = sRGB24 255 165 0+svgColour OrangeRed            = sRGB24 255 69  0+svgColour Orchid               = sRGB24 218 112 214+svgColour PaleGoldenrod        = sRGB24 238 232 170+svgColour PaleGreen            = sRGB24 152 251 152+svgColour PaleTurquoise        = sRGB24 175 238 238+svgColour PaleVioletRed        = sRGB24 219 112 147+svgColour PapayaWhip           = sRGB24 255 239 213+svgColour PeachPuff            = sRGB24 255 218 185+svgColour Peru                 = sRGB24 205 133 63+svgColour Pink                 = sRGB24 255 192 203+svgColour Plum                 = sRGB24 221 160 221+svgColour PowderBlue           = sRGB24 176 224 230+svgColour Purple               = sRGB24 128 0   128+svgColour Red                  = sRGB24 255 0   0+svgColour RosyBrown            = sRGB24 188 143 143+svgColour RoyalBlue            = sRGB24 65  105 225+svgColour SaddleBrown          = sRGB24 139 69  19+svgColour Salmon               = sRGB24 250 128 114+svgColour SandyBrown           = sRGB24 244 164 96+svgColour SeaGreen             = sRGB24 46  139 87+svgColour SeaShell             = sRGB24 255 245 238+svgColour Sienna               = sRGB24 160 82  45+svgColour Silver               = sRGB24 192 192 192+svgColour SkyBlue              = sRGB24 135 206 235+svgColour SlateBlue            = sRGB24 106 90  205+svgColour SlateGray            = sRGB24 112 128 144+svgColour Snow                 = sRGB24 255 250 250+svgColour SpringGreen          = sRGB24 0   255 127+svgColour SteelBlue            = sRGB24 70  130 180+svgColour Tan                  = sRGB24 210 180 140+svgColour Teal                 = sRGB24 0   128 128+svgColour Thistle              = sRGB24 216 191 216+svgColour Tomato               = sRGB24 255 99  71+svgColour Turquoise            = sRGB24 64  224 208+svgColour Violet               = sRGB24 238 130 238+svgColour Wheat                = sRGB24 245 222 179+svgColour White                = sRGB24 255 255 255+svgColour WhiteSmoke           = sRGB24 245 245 245+svgColour Yellow               = sRGB24 255 255 0+svgColour YellowGreen          = sRGB24 154 205 50
+ Data/GraphViz/Attributes/Colors/X11.hs view
@@ -0,0 +1,2354 @@+{-# LANGUAGE OverloadedStrings #-}++{- |+   Module      : Data.GraphViz.Attributes.Colors.X11+   Description : Specification of X11 colors.+   Copyright   : (c) Ivan Lazar Miljenovic+   License     : 3-Clause BSD-style+   Maintainer  : Ivan.Miljenovic@gmail.com++   Graphviz's definition of X11 colors differs from the \"normal\"+   list installed on many systems at @/usr/share/X11/rgb.txt@.  For+   example, @Crimson@ is not a usual X11 color.++   Furthermore, all @Gray*@ colors are duplicated with @Grey*@ names.+   To simplify this, these duplicates have been removed but /all/+   'X11Color's with \"@Gray@\" (whether they have the duplicate+   spelling or not) in their name are also parseable as if they were+   spelt with \"@grey@\".++   The complete list of X11 colors can be found at+   <http://www.graphviz.org/doc/info/colors.html#x11>.++ -}+module Data.GraphViz.Attributes.Colors.X11+    ( X11Color(..)+    , x11Colour+    ) where++import Data.GraphViz.Parsing+import Data.GraphViz.Printing++import Data.Colour( AlphaColour, opaque, transparent)+import Data.Colour.SRGB(sRGB24)++-- -----------------------------------------------------------------------------++-- | 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            = unqtText "aliceblue"+  unqtDot AntiqueWhite         = unqtText "antiquewhite"+  unqtDot AntiqueWhite1        = unqtText "antiquewhite1"+  unqtDot AntiqueWhite2        = unqtText "antiquewhite2"+  unqtDot AntiqueWhite3        = unqtText "antiquewhite3"+  unqtDot AntiqueWhite4        = unqtText "antiquewhite4"+  unqtDot Aquamarine           = unqtText "aquamarine"+  unqtDot Aquamarine1          = unqtText "aquamarine1"+  unqtDot Aquamarine2          = unqtText "aquamarine2"+  unqtDot Aquamarine3          = unqtText "aquamarine3"+  unqtDot Aquamarine4          = unqtText "aquamarine4"+  unqtDot Azure                = unqtText "azure"+  unqtDot Azure1               = unqtText "azure1"+  unqtDot Azure2               = unqtText "azure2"+  unqtDot Azure3               = unqtText "azure3"+  unqtDot Azure4               = unqtText "azure4"+  unqtDot Beige                = unqtText "beige"+  unqtDot Bisque               = unqtText "bisque"+  unqtDot Bisque1              = unqtText "bisque1"+  unqtDot Bisque2              = unqtText "bisque2"+  unqtDot Bisque3              = unqtText "bisque3"+  unqtDot Bisque4              = unqtText "bisque4"+  unqtDot Black                = unqtText "black"+  unqtDot BlanchedAlmond       = unqtText "blanchedalmond"+  unqtDot Blue                 = unqtText "blue"+  unqtDot Blue1                = unqtText "blue1"+  unqtDot Blue2                = unqtText "blue2"+  unqtDot Blue3                = unqtText "blue3"+  unqtDot Blue4                = unqtText "blue4"+  unqtDot BlueViolet           = unqtText "blueviolet"+  unqtDot Brown                = unqtText "brown"+  unqtDot Brown1               = unqtText "brown1"+  unqtDot Brown2               = unqtText "brown2"+  unqtDot Brown3               = unqtText "brown3"+  unqtDot Brown4               = unqtText "brown4"+  unqtDot Burlywood            = unqtText "burlywood"+  unqtDot Burlywood1           = unqtText "burlywood1"+  unqtDot Burlywood2           = unqtText "burlywood2"+  unqtDot Burlywood3           = unqtText "burlywood3"+  unqtDot Burlywood4           = unqtText "burlywood4"+  unqtDot CadetBlue            = unqtText "cadetblue"+  unqtDot CadetBlue1           = unqtText "cadetblue1"+  unqtDot CadetBlue2           = unqtText "cadetblue2"+  unqtDot CadetBlue3           = unqtText "cadetblue3"+  unqtDot CadetBlue4           = unqtText "cadetblue4"+  unqtDot Chartreuse           = unqtText "chartreuse"+  unqtDot Chartreuse1          = unqtText "chartreuse1"+  unqtDot Chartreuse2          = unqtText "chartreuse2"+  unqtDot Chartreuse3          = unqtText "chartreuse3"+  unqtDot Chartreuse4          = unqtText "chartreuse4"+  unqtDot Chocolate            = unqtText "chocolate"+  unqtDot Chocolate1           = unqtText "chocolate1"+  unqtDot Chocolate2           = unqtText "chocolate2"+  unqtDot Chocolate3           = unqtText "chocolate3"+  unqtDot Chocolate4           = unqtText "chocolate4"+  unqtDot Coral                = unqtText "coral"+  unqtDot Coral1               = unqtText "coral1"+  unqtDot Coral2               = unqtText "coral2"+  unqtDot Coral3               = unqtText "coral3"+  unqtDot Coral4               = unqtText "coral4"+  unqtDot CornFlowerBlue       = unqtText "cornflowerblue"+  unqtDot CornSilk             = unqtText "cornsilk"+  unqtDot CornSilk1            = unqtText "cornsilk1"+  unqtDot CornSilk2            = unqtText "cornsilk2"+  unqtDot CornSilk3            = unqtText "cornsilk3"+  unqtDot CornSilk4            = unqtText "cornsilk4"+  unqtDot Crimson              = unqtText "crimson"+  unqtDot Cyan                 = unqtText "cyan"+  unqtDot Cyan1                = unqtText "cyan1"+  unqtDot Cyan2                = unqtText "cyan2"+  unqtDot Cyan3                = unqtText "cyan3"+  unqtDot Cyan4                = unqtText "cyan4"+  unqtDot DarkGoldenrod        = unqtText "darkgoldenrod"+  unqtDot DarkGoldenrod1       = unqtText "darkgoldenrod1"+  unqtDot DarkGoldenrod2       = unqtText "darkgoldenrod2"+  unqtDot DarkGoldenrod3       = unqtText "darkgoldenrod3"+  unqtDot DarkGoldenrod4       = unqtText "darkgoldenrod4"+  unqtDot DarkGreen            = unqtText "darkgreen"+  unqtDot Darkkhaki            = unqtText "darkkhaki"+  unqtDot DarkOliveGreen       = unqtText "darkolivegreen"+  unqtDot DarkOliveGreen1      = unqtText "darkolivegreen1"+  unqtDot DarkOliveGreen2      = unqtText "darkolivegreen2"+  unqtDot DarkOliveGreen3      = unqtText "darkolivegreen3"+  unqtDot DarkOliveGreen4      = unqtText "darkolivegreen4"+  unqtDot DarkOrange           = unqtText "darkorange"+  unqtDot DarkOrange1          = unqtText "darkorange1"+  unqtDot DarkOrange2          = unqtText "darkorange2"+  unqtDot DarkOrange3          = unqtText "darkorange3"+  unqtDot DarkOrange4          = unqtText "darkorange4"+  unqtDot DarkOrchid           = unqtText "darkorchid"+  unqtDot DarkOrchid1          = unqtText "darkorchid1"+  unqtDot DarkOrchid2          = unqtText "darkorchid2"+  unqtDot DarkOrchid3          = unqtText "darkorchid3"+  unqtDot DarkOrchid4          = unqtText "darkorchid4"+  unqtDot DarkSalmon           = unqtText "darksalmon"+  unqtDot DarkSeaGreen         = unqtText "darkseagreen"+  unqtDot DarkSeaGreen1        = unqtText "darkseagreen1"+  unqtDot DarkSeaGreen2        = unqtText "darkseagreen2"+  unqtDot DarkSeaGreen3        = unqtText "darkseagreen3"+  unqtDot DarkSeaGreen4        = unqtText "darkseagreen4"+  unqtDot DarkSlateBlue        = unqtText "darkslateblue"+  unqtDot DarkSlateGray        = unqtText "darkslategray"+  unqtDot DarkSlateGray1       = unqtText "darkslategray1"+  unqtDot DarkSlateGray2       = unqtText "darkslategray2"+  unqtDot DarkSlateGray3       = unqtText "darkslategray3"+  unqtDot DarkSlateGray4       = unqtText "darkslategray4"+  unqtDot DarkTurquoise        = unqtText "darkturquoise"+  unqtDot DarkViolet           = unqtText "darkviolet"+  unqtDot DeepPink             = unqtText "deeppink"+  unqtDot DeepPink1            = unqtText "deeppink1"+  unqtDot DeepPink2            = unqtText "deeppink2"+  unqtDot DeepPink3            = unqtText "deeppink3"+  unqtDot DeepPink4            = unqtText "deeppink4"+  unqtDot DeepSkyBlue          = unqtText "deepskyblue"+  unqtDot DeepSkyBlue1         = unqtText "deepskyblue1"+  unqtDot DeepSkyBlue2         = unqtText "deepskyblue2"+  unqtDot DeepSkyBlue3         = unqtText "deepskyblue3"+  unqtDot DeepSkyBlue4         = unqtText "deepskyblue4"+  unqtDot DimGray              = unqtText "dimgray"+  unqtDot DodgerBlue           = unqtText "dodgerblue"+  unqtDot DodgerBlue1          = unqtText "dodgerblue1"+  unqtDot DodgerBlue2          = unqtText "dodgerblue2"+  unqtDot DodgerBlue3          = unqtText "dodgerblue3"+  unqtDot DodgerBlue4          = unqtText "dodgerblue4"+  unqtDot Firebrick            = unqtText "firebrick"+  unqtDot Firebrick1           = unqtText "firebrick1"+  unqtDot Firebrick2           = unqtText "firebrick2"+  unqtDot Firebrick3           = unqtText "firebrick3"+  unqtDot Firebrick4           = unqtText "firebrick4"+  unqtDot FloralWhite          = unqtText "floralwhite"+  unqtDot ForestGreen          = unqtText "forestgreen"+  unqtDot Gainsboro            = unqtText "gainsboro"+  unqtDot GhostWhite           = unqtText "ghostwhite"+  unqtDot Gold                 = unqtText "gold"+  unqtDot Gold1                = unqtText "gold1"+  unqtDot Gold2                = unqtText "gold2"+  unqtDot Gold3                = unqtText "gold3"+  unqtDot Gold4                = unqtText "gold4"+  unqtDot Goldenrod            = unqtText "goldenrod"+  unqtDot Goldenrod1           = unqtText "goldenrod1"+  unqtDot Goldenrod2           = unqtText "goldenrod2"+  unqtDot Goldenrod3           = unqtText "goldenrod3"+  unqtDot Goldenrod4           = unqtText "goldenrod4"+  unqtDot Gray                 = unqtText "gray"+  unqtDot Gray0                = unqtText "gray0"+  unqtDot Gray1                = unqtText "gray1"+  unqtDot Gray2                = unqtText "gray2"+  unqtDot Gray3                = unqtText "gray3"+  unqtDot Gray4                = unqtText "gray4"+  unqtDot Gray5                = unqtText "gray5"+  unqtDot Gray6                = unqtText "gray6"+  unqtDot Gray7                = unqtText "gray7"+  unqtDot Gray8                = unqtText "gray8"+  unqtDot Gray9                = unqtText "gray9"+  unqtDot Gray10               = unqtText "gray10"+  unqtDot Gray11               = unqtText "gray11"+  unqtDot Gray12               = unqtText "gray12"+  unqtDot Gray13               = unqtText "gray13"+  unqtDot Gray14               = unqtText "gray14"+  unqtDot Gray15               = unqtText "gray15"+  unqtDot Gray16               = unqtText "gray16"+  unqtDot Gray17               = unqtText "gray17"+  unqtDot Gray18               = unqtText "gray18"+  unqtDot Gray19               = unqtText "gray19"+  unqtDot Gray20               = unqtText "gray20"+  unqtDot Gray21               = unqtText "gray21"+  unqtDot Gray22               = unqtText "gray22"+  unqtDot Gray23               = unqtText "gray23"+  unqtDot Gray24               = unqtText "gray24"+  unqtDot Gray25               = unqtText "gray25"+  unqtDot Gray26               = unqtText "gray26"+  unqtDot Gray27               = unqtText "gray27"+  unqtDot Gray28               = unqtText "gray28"+  unqtDot Gray29               = unqtText "gray29"+  unqtDot Gray30               = unqtText "gray30"+  unqtDot Gray31               = unqtText "gray31"+  unqtDot Gray32               = unqtText "gray32"+  unqtDot Gray33               = unqtText "gray33"+  unqtDot Gray34               = unqtText "gray34"+  unqtDot Gray35               = unqtText "gray35"+  unqtDot Gray36               = unqtText "gray36"+  unqtDot Gray37               = unqtText "gray37"+  unqtDot Gray38               = unqtText "gray38"+  unqtDot Gray39               = unqtText "gray39"+  unqtDot Gray40               = unqtText "gray40"+  unqtDot Gray41               = unqtText "gray41"+  unqtDot Gray42               = unqtText "gray42"+  unqtDot Gray43               = unqtText "gray43"+  unqtDot Gray44               = unqtText "gray44"+  unqtDot Gray45               = unqtText "gray45"+  unqtDot Gray46               = unqtText "gray46"+  unqtDot Gray47               = unqtText "gray47"+  unqtDot Gray48               = unqtText "gray48"+  unqtDot Gray49               = unqtText "gray49"+  unqtDot Gray50               = unqtText "gray50"+  unqtDot Gray51               = unqtText "gray51"+  unqtDot Gray52               = unqtText "gray52"+  unqtDot Gray53               = unqtText "gray53"+  unqtDot Gray54               = unqtText "gray54"+  unqtDot Gray55               = unqtText "gray55"+  unqtDot Gray56               = unqtText "gray56"+  unqtDot Gray57               = unqtText "gray57"+  unqtDot Gray58               = unqtText "gray58"+  unqtDot Gray59               = unqtText "gray59"+  unqtDot Gray60               = unqtText "gray60"+  unqtDot Gray61               = unqtText "gray61"+  unqtDot Gray62               = unqtText "gray62"+  unqtDot Gray63               = unqtText "gray63"+  unqtDot Gray64               = unqtText "gray64"+  unqtDot Gray65               = unqtText "gray65"+  unqtDot Gray66               = unqtText "gray66"+  unqtDot Gray67               = unqtText "gray67"+  unqtDot Gray68               = unqtText "gray68"+  unqtDot Gray69               = unqtText "gray69"+  unqtDot Gray70               = unqtText "gray70"+  unqtDot Gray71               = unqtText "gray71"+  unqtDot Gray72               = unqtText "gray72"+  unqtDot Gray73               = unqtText "gray73"+  unqtDot Gray74               = unqtText "gray74"+  unqtDot Gray75               = unqtText "gray75"+  unqtDot Gray76               = unqtText "gray76"+  unqtDot Gray77               = unqtText "gray77"+  unqtDot Gray78               = unqtText "gray78"+  unqtDot Gray79               = unqtText "gray79"+  unqtDot Gray80               = unqtText "gray80"+  unqtDot Gray81               = unqtText "gray81"+  unqtDot Gray82               = unqtText "gray82"+  unqtDot Gray83               = unqtText "gray83"+  unqtDot Gray84               = unqtText "gray84"+  unqtDot Gray85               = unqtText "gray85"+  unqtDot Gray86               = unqtText "gray86"+  unqtDot Gray87               = unqtText "gray87"+  unqtDot Gray88               = unqtText "gray88"+  unqtDot Gray89               = unqtText "gray89"+  unqtDot Gray90               = unqtText "gray90"+  unqtDot Gray91               = unqtText "gray91"+  unqtDot Gray92               = unqtText "gray92"+  unqtDot Gray93               = unqtText "gray93"+  unqtDot Gray94               = unqtText "gray94"+  unqtDot Gray95               = unqtText "gray95"+  unqtDot Gray96               = unqtText "gray96"+  unqtDot Gray97               = unqtText "gray97"+  unqtDot Gray98               = unqtText "gray98"+  unqtDot Gray99               = unqtText "gray99"+  unqtDot Gray100              = unqtText "gray100"+  unqtDot Green                = unqtText "green"+  unqtDot Green1               = unqtText "green1"+  unqtDot Green2               = unqtText "green2"+  unqtDot Green3               = unqtText "green3"+  unqtDot Green4               = unqtText "green4"+  unqtDot GreenYellow          = unqtText "greenyellow"+  unqtDot HoneyDew             = unqtText "honeydew"+  unqtDot HoneyDew1            = unqtText "honeydew1"+  unqtDot HoneyDew2            = unqtText "honeydew2"+  unqtDot HoneyDew3            = unqtText "honeydew3"+  unqtDot HoneyDew4            = unqtText "honeydew4"+  unqtDot HotPink              = unqtText "hotpink"+  unqtDot HotPink1             = unqtText "hotpink1"+  unqtDot HotPink2             = unqtText "hotpink2"+  unqtDot HotPink3             = unqtText "hotpink3"+  unqtDot HotPink4             = unqtText "hotpink4"+  unqtDot IndianRed            = unqtText "indianred"+  unqtDot IndianRed1           = unqtText "indianred1"+  unqtDot IndianRed2           = unqtText "indianred2"+  unqtDot IndianRed3           = unqtText "indianred3"+  unqtDot IndianRed4           = unqtText "indianred4"+  unqtDot Indigo               = unqtText "indigo"+  unqtDot Ivory                = unqtText "ivory"+  unqtDot Ivory1               = unqtText "ivory1"+  unqtDot Ivory2               = unqtText "ivory2"+  unqtDot Ivory3               = unqtText "ivory3"+  unqtDot Ivory4               = unqtText "ivory4"+  unqtDot Khaki                = unqtText "khaki"+  unqtDot Khaki1               = unqtText "khaki1"+  unqtDot Khaki2               = unqtText "khaki2"+  unqtDot Khaki3               = unqtText "khaki3"+  unqtDot Khaki4               = unqtText "khaki4"+  unqtDot Lavender             = unqtText "lavender"+  unqtDot LavenderBlush        = unqtText "lavenderblush"+  unqtDot LavenderBlush1       = unqtText "lavenderblush1"+  unqtDot LavenderBlush2       = unqtText "lavenderblush2"+  unqtDot LavenderBlush3       = unqtText "lavenderblush3"+  unqtDot LavenderBlush4       = unqtText "lavenderblush4"+  unqtDot LawnGreen            = unqtText "lawngreen"+  unqtDot LemonChiffon         = unqtText "lemonchiffon"+  unqtDot LemonChiffon1        = unqtText "lemonchiffon1"+  unqtDot LemonChiffon2        = unqtText "lemonchiffon2"+  unqtDot LemonChiffon3        = unqtText "lemonchiffon3"+  unqtDot LemonChiffon4        = unqtText "lemonchiffon4"+  unqtDot LightBlue            = unqtText "lightblue"+  unqtDot LightBlue1           = unqtText "lightblue1"+  unqtDot LightBlue2           = unqtText "lightblue2"+  unqtDot LightBlue3           = unqtText "lightblue3"+  unqtDot LightBlue4           = unqtText "lightblue4"+  unqtDot LightCoral           = unqtText "lightcoral"+  unqtDot LightCyan            = unqtText "lightcyan"+  unqtDot LightCyan1           = unqtText "lightcyan1"+  unqtDot LightCyan2           = unqtText "lightcyan2"+  unqtDot LightCyan3           = unqtText "lightcyan3"+  unqtDot LightCyan4           = unqtText "lightcyan4"+  unqtDot LightGoldenrod       = unqtText "lightgoldenrod"+  unqtDot LightGoldenrod1      = unqtText "lightgoldenrod1"+  unqtDot LightGoldenrod2      = unqtText "lightgoldenrod2"+  unqtDot LightGoldenrod3      = unqtText "lightgoldenrod3"+  unqtDot LightGoldenrod4      = unqtText "lightgoldenrod4"+  unqtDot LightGoldenrodYellow = unqtText "lightgoldenrodyellow"+  unqtDot LightGray            = unqtText "lightgray"+  unqtDot LightPink            = unqtText "lightpink"+  unqtDot LightPink1           = unqtText "lightpink1"+  unqtDot LightPink2           = unqtText "lightpink2"+  unqtDot LightPink3           = unqtText "lightpink3"+  unqtDot LightPink4           = unqtText "lightpink4"+  unqtDot LightSalmon          = unqtText "lightsalmon"+  unqtDot LightSalmon1         = unqtText "lightsalmon1"+  unqtDot LightSalmon2         = unqtText "lightsalmon2"+  unqtDot LightSalmon3         = unqtText "lightsalmon3"+  unqtDot LightSalmon4         = unqtText "lightsalmon4"+  unqtDot LightSeaGreen        = unqtText "lightseagreen"+  unqtDot LightSkyBlue         = unqtText "lightskyblue"+  unqtDot LightSkyBlue1        = unqtText "lightskyblue1"+  unqtDot LightSkyBlue2        = unqtText "lightskyblue2"+  unqtDot LightSkyBlue3        = unqtText "lightskyblue3"+  unqtDot LightSkyBlue4        = unqtText "lightskyblue4"+  unqtDot LightSlateBlue       = unqtText "lightslateblue"+  unqtDot LightSlateGray       = unqtText "lightslategray"+  unqtDot LightSteelBlue       = unqtText "lightsteelblue"+  unqtDot LightSteelBlue1      = unqtText "lightsteelblue1"+  unqtDot LightSteelBlue2      = unqtText "lightsteelblue2"+  unqtDot LightSteelBlue3      = unqtText "lightsteelblue3"+  unqtDot LightSteelBlue4      = unqtText "lightsteelblue4"+  unqtDot LightYellow          = unqtText "lightyellow"+  unqtDot LightYellow1         = unqtText "lightyellow1"+  unqtDot LightYellow2         = unqtText "lightyellow2"+  unqtDot LightYellow3         = unqtText "lightyellow3"+  unqtDot LightYellow4         = unqtText "lightyellow4"+  unqtDot LimeGreen            = unqtText "limegreen"+  unqtDot Linen                = unqtText "linen"+  unqtDot Magenta              = unqtText "magenta"+  unqtDot Magenta1             = unqtText "magenta1"+  unqtDot Magenta2             = unqtText "magenta2"+  unqtDot Magenta3             = unqtText "magenta3"+  unqtDot Magenta4             = unqtText "magenta4"+  unqtDot Maroon               = unqtText "maroon"+  unqtDot Maroon1              = unqtText "maroon1"+  unqtDot Maroon2              = unqtText "maroon2"+  unqtDot Maroon3              = unqtText "maroon3"+  unqtDot Maroon4              = unqtText "maroon4"+  unqtDot MediumAquamarine     = unqtText "mediumaquamarine"+  unqtDot MediumBlue           = unqtText "mediumblue"+  unqtDot MediumOrchid         = unqtText "mediumorchid"+  unqtDot MediumOrchid1        = unqtText "mediumorchid1"+  unqtDot MediumOrchid2        = unqtText "mediumorchid2"+  unqtDot MediumOrchid3        = unqtText "mediumorchid3"+  unqtDot MediumOrchid4        = unqtText "mediumorchid4"+  unqtDot MediumPurple         = unqtText "mediumpurple"+  unqtDot MediumPurple1        = unqtText "mediumpurple1"+  unqtDot MediumPurple2        = unqtText "mediumpurple2"+  unqtDot MediumPurple3        = unqtText "mediumpurple3"+  unqtDot MediumPurple4        = unqtText "mediumpurple4"+  unqtDot MediumSeaGreen       = unqtText "mediumseagreen"+  unqtDot MediumSlateBlue      = unqtText "mediumslateblue"+  unqtDot MediumSpringGreen    = unqtText "mediumspringgreen"+  unqtDot MediumTurquoise      = unqtText "mediumturquoise"+  unqtDot MediumVioletRed      = unqtText "mediumvioletred"+  unqtDot MidnightBlue         = unqtText "midnightblue"+  unqtDot MintCream            = unqtText "mintcream"+  unqtDot MistyRose            = unqtText "mistyrose"+  unqtDot MistyRose1           = unqtText "mistyrose1"+  unqtDot MistyRose2           = unqtText "mistyrose2"+  unqtDot MistyRose3           = unqtText "mistyrose3"+  unqtDot MistyRose4           = unqtText "mistyrose4"+  unqtDot Moccasin             = unqtText "moccasin"+  unqtDot NavajoWhite          = unqtText "navajowhite"+  unqtDot NavajoWhite1         = unqtText "navajowhite1"+  unqtDot NavajoWhite2         = unqtText "navajowhite2"+  unqtDot NavajoWhite3         = unqtText "navajowhite3"+  unqtDot NavajoWhite4         = unqtText "navajowhite4"+  unqtDot Navy                 = unqtText "navy"+  unqtDot NavyBlue             = unqtText "navyblue"+  unqtDot OldLace              = unqtText "oldlace"+  unqtDot OliveDrab            = unqtText "olivedrab"+  unqtDot OliveDrab1           = unqtText "olivedrab1"+  unqtDot OliveDrab2           = unqtText "olivedrab2"+  unqtDot OliveDrab3           = unqtText "olivedrab3"+  unqtDot OliveDrab4           = unqtText "olivedrab4"+  unqtDot Orange               = unqtText "orange"+  unqtDot Orange1              = unqtText "orange1"+  unqtDot Orange2              = unqtText "orange2"+  unqtDot Orange3              = unqtText "orange3"+  unqtDot Orange4              = unqtText "orange4"+  unqtDot OrangeRed            = unqtText "orangered"+  unqtDot OrangeRed1           = unqtText "orangered1"+  unqtDot OrangeRed2           = unqtText "orangered2"+  unqtDot OrangeRed3           = unqtText "orangered3"+  unqtDot OrangeRed4           = unqtText "orangered4"+  unqtDot Orchid               = unqtText "orchid"+  unqtDot Orchid1              = unqtText "orchid1"+  unqtDot Orchid2              = unqtText "orchid2"+  unqtDot Orchid3              = unqtText "orchid3"+  unqtDot Orchid4              = unqtText "orchid4"+  unqtDot PaleGoldenrod        = unqtText "palegoldenrod"+  unqtDot PaleGreen            = unqtText "palegreen"+  unqtDot PaleGreen1           = unqtText "palegreen1"+  unqtDot PaleGreen2           = unqtText "palegreen2"+  unqtDot PaleGreen3           = unqtText "palegreen3"+  unqtDot PaleGreen4           = unqtText "palegreen4"+  unqtDot PaleTurquoise        = unqtText "paleturquoise"+  unqtDot PaleTurquoise1       = unqtText "paleturquoise1"+  unqtDot PaleTurquoise2       = unqtText "paleturquoise2"+  unqtDot PaleTurquoise3       = unqtText "paleturquoise3"+  unqtDot PaleTurquoise4       = unqtText "paleturquoise4"+  unqtDot PaleVioletRed        = unqtText "palevioletred"+  unqtDot PaleVioletRed1       = unqtText "palevioletred1"+  unqtDot PaleVioletRed2       = unqtText "palevioletred2"+  unqtDot PaleVioletRed3       = unqtText "palevioletred3"+  unqtDot PaleVioletRed4       = unqtText "palevioletred4"+  unqtDot PapayaWhip           = unqtText "papayawhip"+  unqtDot PeachPuff            = unqtText "peachpuff"+  unqtDot PeachPuff1           = unqtText "peachpuff1"+  unqtDot PeachPuff2           = unqtText "peachpuff2"+  unqtDot PeachPuff3           = unqtText "peachpuff3"+  unqtDot PeachPuff4           = unqtText "peachpuff4"+  unqtDot Peru                 = unqtText "peru"+  unqtDot Pink                 = unqtText "pink"+  unqtDot Pink1                = unqtText "pink1"+  unqtDot Pink2                = unqtText "pink2"+  unqtDot Pink3                = unqtText "pink3"+  unqtDot Pink4                = unqtText "pink4"+  unqtDot Plum                 = unqtText "plum"+  unqtDot Plum1                = unqtText "plum1"+  unqtDot Plum2                = unqtText "plum2"+  unqtDot Plum3                = unqtText "plum3"+  unqtDot Plum4                = unqtText "plum4"+  unqtDot PowderBlue           = unqtText "powderblue"+  unqtDot Purple               = unqtText "purple"+  unqtDot Purple1              = unqtText "purple1"+  unqtDot Purple2              = unqtText "purple2"+  unqtDot Purple3              = unqtText "purple3"+  unqtDot Purple4              = unqtText "purple4"+  unqtDot Red                  = unqtText "red"+  unqtDot Red1                 = unqtText "red1"+  unqtDot Red2                 = unqtText "red2"+  unqtDot Red3                 = unqtText "red3"+  unqtDot Red4                 = unqtText "red4"+  unqtDot RosyBrown            = unqtText "rosybrown"+  unqtDot RosyBrown1           = unqtText "rosybrown1"+  unqtDot RosyBrown2           = unqtText "rosybrown2"+  unqtDot RosyBrown3           = unqtText "rosybrown3"+  unqtDot RosyBrown4           = unqtText "rosybrown4"+  unqtDot RoyalBlue            = unqtText "royalblue"+  unqtDot RoyalBlue1           = unqtText "royalblue1"+  unqtDot RoyalBlue2           = unqtText "royalblue2"+  unqtDot RoyalBlue3           = unqtText "royalblue3"+  unqtDot RoyalBlue4           = unqtText "royalblue4"+  unqtDot SaddleBrown          = unqtText "saddlebrown"+  unqtDot Salmon               = unqtText "salmon"+  unqtDot Salmon1              = unqtText "salmon1"+  unqtDot Salmon2              = unqtText "salmon2"+  unqtDot Salmon3              = unqtText "salmon3"+  unqtDot Salmon4              = unqtText "salmon4"+  unqtDot SandyBrown           = unqtText "sandybrown"+  unqtDot SeaGreen             = unqtText "seagreen"+  unqtDot SeaGreen1            = unqtText "seagreen1"+  unqtDot SeaGreen2            = unqtText "seagreen2"+  unqtDot SeaGreen3            = unqtText "seagreen3"+  unqtDot SeaGreen4            = unqtText "seagreen4"+  unqtDot SeaShell             = unqtText "seashell"+  unqtDot SeaShell1            = unqtText "seashell1"+  unqtDot SeaShell2            = unqtText "seashell2"+  unqtDot SeaShell3            = unqtText "seashell3"+  unqtDot SeaShell4            = unqtText "seashell4"+  unqtDot Sienna               = unqtText "sienna"+  unqtDot Sienna1              = unqtText "sienna1"+  unqtDot Sienna2              = unqtText "sienna2"+  unqtDot Sienna3              = unqtText "sienna3"+  unqtDot Sienna4              = unqtText "sienna4"+  unqtDot SkyBlue              = unqtText "skyblue"+  unqtDot SkyBlue1             = unqtText "skyblue1"+  unqtDot SkyBlue2             = unqtText "skyblue2"+  unqtDot SkyBlue3             = unqtText "skyblue3"+  unqtDot SkyBlue4             = unqtText "skyblue4"+  unqtDot SlateBlue            = unqtText "slateblue"+  unqtDot SlateBlue1           = unqtText "slateblue1"+  unqtDot SlateBlue2           = unqtText "slateblue2"+  unqtDot SlateBlue3           = unqtText "slateblue3"+  unqtDot SlateBlue4           = unqtText "slateblue4"+  unqtDot SlateGray            = unqtText "slategray"+  unqtDot SlateGray1           = unqtText "slategray1"+  unqtDot SlateGray2           = unqtText "slategray2"+  unqtDot SlateGray3           = unqtText "slategray3"+  unqtDot SlateGray4           = unqtText "slategray4"+  unqtDot Snow                 = unqtText "snow"+  unqtDot Snow1                = unqtText "snow1"+  unqtDot Snow2                = unqtText "snow2"+  unqtDot Snow3                = unqtText "snow3"+  unqtDot Snow4                = unqtText "snow4"+  unqtDot SpringGreen          = unqtText "springgreen"+  unqtDot SpringGreen1         = unqtText "springgreen1"+  unqtDot SpringGreen2         = unqtText "springgreen2"+  unqtDot SpringGreen3         = unqtText "springgreen3"+  unqtDot SpringGreen4         = unqtText "springgreen4"+  unqtDot SteelBlue            = unqtText "steelblue"+  unqtDot SteelBlue1           = unqtText "steelblue1"+  unqtDot SteelBlue2           = unqtText "steelblue2"+  unqtDot SteelBlue3           = unqtText "steelblue3"+  unqtDot SteelBlue4           = unqtText "steelblue4"+  unqtDot Tan                  = unqtText "tan"+  unqtDot Tan1                 = unqtText "tan1"+  unqtDot Tan2                 = unqtText "tan2"+  unqtDot Tan3                 = unqtText "tan3"+  unqtDot Tan4                 = unqtText "tan4"+  unqtDot Thistle              = unqtText "thistle"+  unqtDot Thistle1             = unqtText "thistle1"+  unqtDot Thistle2             = unqtText "thistle2"+  unqtDot Thistle3             = unqtText "thistle3"+  unqtDot Thistle4             = unqtText "thistle4"+  unqtDot Tomato               = unqtText "tomato"+  unqtDot Tomato1              = unqtText "tomato1"+  unqtDot Tomato2              = unqtText "tomato2"+  unqtDot Tomato3              = unqtText "tomato3"+  unqtDot Tomato4              = unqtText "tomato4"+  unqtDot Transparent          = unqtText "transparent"+  unqtDot Turquoise            = unqtText "turquoise"+  unqtDot Turquoise1           = unqtText "turquoise1"+  unqtDot Turquoise2           = unqtText "turquoise2"+  unqtDot Turquoise3           = unqtText "turquoise3"+  unqtDot Turquoise4           = unqtText "turquoise4"+  unqtDot Violet               = unqtText "violet"+  unqtDot VioletRed            = unqtText "violetred"+  unqtDot VioletRed1           = unqtText "violetred1"+  unqtDot VioletRed2           = unqtText "violetred2"+  unqtDot VioletRed3           = unqtText "violetred3"+  unqtDot VioletRed4           = unqtText "violetred4"+  unqtDot Wheat                = unqtText "wheat"+  unqtDot Wheat1               = unqtText "wheat1"+  unqtDot Wheat2               = unqtText "wheat2"+  unqtDot Wheat3               = unqtText "wheat3"+  unqtDot Wheat4               = unqtText "wheat4"+  unqtDot White                = unqtText "white"+  unqtDot WhiteSmoke           = unqtText "whitesmoke"+  unqtDot Yellow               = unqtText "yellow"+  unqtDot Yellow1              = unqtText "yellow1"+  unqtDot Yellow2              = unqtText "yellow2"+  unqtDot Yellow3              = unqtText "yellow3"+  unqtDot Yellow4              = unqtText "yellow4"+  unqtDot YellowGreen          = unqtText "yellowgreen"++instance ParseDot X11Color where+  parseUnqt = stringValue [ ("aliceblue", AliceBlue)+                          , ("antiquewhite", AntiqueWhite)+                          , ("antiquewhite1", AntiqueWhite1)+                          , ("antiquewhite2", AntiqueWhite2)+                          , ("antiquewhite3", AntiqueWhite3)+                          , ("antiquewhite4", AntiqueWhite4)+                          , ("aquamarine", Aquamarine)+                          , ("aquamarine1", Aquamarine1)+                          , ("aquamarine2", Aquamarine2)+                          , ("aquamarine3", Aquamarine3)+                          , ("aquamarine4", Aquamarine4)+                          , ("azure", Azure)+                          , ("azure1", Azure1)+                          , ("azure2", Azure2)+                          , ("azure3", Azure3)+                          , ("azure4", Azure4)+                          , ("beige", Beige)+                          , ("bisque", Bisque)+                          , ("bisque1", Bisque1)+                          , ("bisque2", Bisque2)+                          , ("bisque3", Bisque3)+                          , ("bisque4", Bisque4)+                          , ("black", Black)+                          , ("blanchedalmond", BlanchedAlmond)+                          , ("blue", Blue)+                          , ("blue1", Blue1)+                          , ("blue2", Blue2)+                          , ("blue3", Blue3)+                          , ("blue4", Blue4)+                          , ("blueviolet", BlueViolet)+                          , ("brown", Brown)+                          , ("brown1", Brown1)+                          , ("brown2", Brown2)+                          , ("brown3", Brown3)+                          , ("brown4", Brown4)+                          , ("burlywood", Burlywood)+                          , ("burlywood1", Burlywood1)+                          , ("burlywood2", Burlywood2)+                          , ("burlywood3", Burlywood3)+                          , ("burlywood4", Burlywood4)+                          , ("cadetblue", CadetBlue)+                          , ("cadetblue1", CadetBlue1)+                          , ("cadetblue2", CadetBlue2)+                          , ("cadetblue3", CadetBlue3)+                          , ("cadetblue4", CadetBlue4)+                          , ("chartreuse", Chartreuse)+                          , ("chartreuse1", Chartreuse1)+                          , ("chartreuse2", Chartreuse2)+                          , ("chartreuse3", Chartreuse3)+                          , ("chartreuse4", Chartreuse4)+                          , ("chocolate", Chocolate)+                          , ("chocolate1", Chocolate1)+                          , ("chocolate2", Chocolate2)+                          , ("chocolate3", Chocolate3)+                          , ("chocolate4", Chocolate4)+                          , ("coral", Coral)+                          , ("coral1", Coral1)+                          , ("coral2", Coral2)+                          , ("coral3", Coral3)+                          , ("coral4", Coral4)+                          , ("cornflowerblue", CornFlowerBlue)+                          , ("cornsilk", CornSilk)+                          , ("cornsilk1", CornSilk1)+                          , ("cornsilk2", CornSilk2)+                          , ("cornsilk3", CornSilk3)+                          , ("cornsilk4", CornSilk4)+                          , ("crimson", Crimson)+                          , ("cyan", Cyan)+                          , ("cyan1", Cyan1)+                          , ("cyan2", Cyan2)+                          , ("cyan3", Cyan3)+                          , ("cyan4", Cyan4)+                          , ("darkgoldenrod", DarkGoldenrod)+                          , ("darkgoldenrod1", DarkGoldenrod1)+                          , ("darkgoldenrod2", DarkGoldenrod2)+                          , ("darkgoldenrod3", DarkGoldenrod3)+                          , ("darkgoldenrod4", DarkGoldenrod4)+                          , ("darkgreen", DarkGreen)+                          , ("darkkhaki", Darkkhaki)+                          , ("darkolivegreen", DarkOliveGreen)+                          , ("darkolivegreen1", DarkOliveGreen1)+                          , ("darkolivegreen2", DarkOliveGreen2)+                          , ("darkolivegreen3", DarkOliveGreen3)+                          , ("darkolivegreen4", DarkOliveGreen4)+                          , ("darkorange", DarkOrange)+                          , ("darkorange1", DarkOrange1)+                          , ("darkorange2", DarkOrange2)+                          , ("darkorange3", DarkOrange3)+                          , ("darkorange4", DarkOrange4)+                          , ("darkorchid", DarkOrchid)+                          , ("darkorchid1", DarkOrchid1)+                          , ("darkorchid2", DarkOrchid2)+                          , ("darkorchid3", DarkOrchid3)+                          , ("darkorchid4", DarkOrchid4)+                          , ("darksalmon", DarkSalmon)+                          , ("darkseagreen", DarkSeaGreen)+                          , ("darkseagreen1", DarkSeaGreen1)+                          , ("darkseagreen2", DarkSeaGreen2)+                          , ("darkseagreen3", DarkSeaGreen3)+                          , ("darkseagreen4", DarkSeaGreen4)+                          , ("darkslateblue", DarkSlateBlue)+                          , ("darkslategray", DarkSlateGray)+                          , ("darkslategrey", DarkSlateGray)+                          , ("darkslategray1", DarkSlateGray1)+                          , ("darkslategrey1", DarkSlateGray1)+                          , ("darkslategray2", DarkSlateGray2)+                          , ("darkslategrey2", DarkSlateGray2)+                          , ("darkslategray3", DarkSlateGray3)+                          , ("darkslategrey3", DarkSlateGray3)+                          , ("darkslategray4", DarkSlateGray4)+                          , ("darkslategrey4", DarkSlateGray4)+                          , ("darkturquoise", DarkTurquoise)+                          , ("darkviolet", DarkViolet)+                          , ("deeppink", DeepPink)+                          , ("deeppink1", DeepPink1)+                          , ("deeppink2", DeepPink2)+                          , ("deeppink3", DeepPink3)+                          , ("deeppink4", DeepPink4)+                          , ("deepskyblue", DeepSkyBlue)+                          , ("deepskyblue1", DeepSkyBlue1)+                          , ("deepskyblue2", DeepSkyBlue2)+                          , ("deepskyblue3", DeepSkyBlue3)+                          , ("deepskyblue4", DeepSkyBlue4)+                          , ("dimgray", DimGray)+                          , ("dimgrey", DimGray)+                          , ("dodgerblue", DodgerBlue)+                          , ("dodgerblue1", DodgerBlue1)+                          , ("dodgerblue2", DodgerBlue2)+                          , ("dodgerblue3", DodgerBlue3)+                          , ("dodgerblue4", DodgerBlue4)+                          , ("firebrick", Firebrick)+                          , ("firebrick1", Firebrick1)+                          , ("firebrick2", Firebrick2)+                          , ("firebrick3", Firebrick3)+                          , ("firebrick4", Firebrick4)+                          , ("floralwhite", FloralWhite)+                          , ("forestgreen", ForestGreen)+                          , ("gainsboro", Gainsboro)+                          , ("ghostwhite", GhostWhite)+                          , ("gold", Gold)+                          , ("gold1", Gold1)+                          , ("gold2", Gold2)+                          , ("gold3", Gold3)+                          , ("gold4", Gold4)+                          , ("goldenrod", Goldenrod)+                          , ("goldenrod1", Goldenrod1)+                          , ("goldenrod2", Goldenrod2)+                          , ("goldenrod3", Goldenrod3)+                          , ("goldenrod4", Goldenrod4)+                          , ("gray", Gray)+                          , ("grey", Gray)+                          , ("gray0", Gray0)+                          , ("grey0", Gray0)+                          , ("gray1", Gray1)+                          , ("grey1", Gray1)+                          , ("gray2", Gray2)+                          , ("grey2", Gray2)+                          , ("gray3", Gray3)+                          , ("grey3", Gray3)+                          , ("gray4", Gray4)+                          , ("grey4", Gray4)+                          , ("gray5", Gray5)+                          , ("grey5", Gray5)+                          , ("gray6", Gray6)+                          , ("grey6", Gray6)+                          , ("gray7", Gray7)+                          , ("grey7", Gray7)+                          , ("gray8", Gray8)+                          , ("grey8", Gray8)+                          , ("gray9", Gray9)+                          , ("grey9", Gray9)+                          , ("gray10", Gray10)+                          , ("grey10", Gray10)+                          , ("gray11", Gray11)+                          , ("grey11", Gray11)+                          , ("gray12", Gray12)+                          , ("grey12", Gray12)+                          , ("gray13", Gray13)+                          , ("grey13", Gray13)+                          , ("gray14", Gray14)+                          , ("grey14", Gray14)+                          , ("gray15", Gray15)+                          , ("grey15", Gray15)+                          , ("gray16", Gray16)+                          , ("grey16", Gray16)+                          , ("gray17", Gray17)+                          , ("grey17", Gray17)+                          , ("gray18", Gray18)+                          , ("grey18", Gray18)+                          , ("gray19", Gray19)+                          , ("grey19", Gray19)+                          , ("gray20", Gray20)+                          , ("grey20", Gray20)+                          , ("gray21", Gray21)+                          , ("grey21", Gray21)+                          , ("gray22", Gray22)+                          , ("grey22", Gray22)+                          , ("gray23", Gray23)+                          , ("grey23", Gray23)+                          , ("gray24", Gray24)+                          , ("grey24", Gray24)+                          , ("gray25", Gray25)+                          , ("grey25", Gray25)+                          , ("gray26", Gray26)+                          , ("grey26", Gray26)+                          , ("gray27", Gray27)+                          , ("grey27", Gray27)+                          , ("gray28", Gray28)+                          , ("grey28", Gray28)+                          , ("gray29", Gray29)+                          , ("grey29", Gray29)+                          , ("gray30", Gray30)+                          , ("grey30", Gray30)+                          , ("gray31", Gray31)+                          , ("grey31", Gray31)+                          , ("gray32", Gray32)+                          , ("grey32", Gray32)+                          , ("gray33", Gray33)+                          , ("grey33", Gray33)+                          , ("gray34", Gray34)+                          , ("grey34", Gray34)+                          , ("gray35", Gray35)+                          , ("grey35", Gray35)+                          , ("gray36", Gray36)+                          , ("grey36", Gray36)+                          , ("gray37", Gray37)+                          , ("grey37", Gray37)+                          , ("gray38", Gray38)+                          , ("grey38", Gray38)+                          , ("gray39", Gray39)+                          , ("grey39", Gray39)+                          , ("gray40", Gray40)+                          , ("grey40", Gray40)+                          , ("gray41", Gray41)+                          , ("grey41", Gray41)+                          , ("gray42", Gray42)+                          , ("grey42", Gray42)+                          , ("gray43", Gray43)+                          , ("grey43", Gray43)+                          , ("gray44", Gray44)+                          , ("grey44", Gray44)+                          , ("gray45", Gray45)+                          , ("grey45", Gray45)+                          , ("gray46", Gray46)+                          , ("grey46", Gray46)+                          , ("gray47", Gray47)+                          , ("grey47", Gray47)+                          , ("gray48", Gray48)+                          , ("grey48", Gray48)+                          , ("gray49", Gray49)+                          , ("grey49", Gray49)+                          , ("gray50", Gray50)+                          , ("grey50", Gray50)+                          , ("gray51", Gray51)+                          , ("grey51", Gray51)+                          , ("gray52", Gray52)+                          , ("grey52", Gray52)+                          , ("gray53", Gray53)+                          , ("grey53", Gray53)+                          , ("gray54", Gray54)+                          , ("grey54", Gray54)+                          , ("gray55", Gray55)+                          , ("grey55", Gray55)+                          , ("gray56", Gray56)+                          , ("grey56", Gray56)+                          , ("gray57", Gray57)+                          , ("grey57", Gray57)+                          , ("gray58", Gray58)+                          , ("grey58", Gray58)+                          , ("gray59", Gray59)+                          , ("grey59", Gray59)+                          , ("gray60", Gray60)+                          , ("grey60", Gray60)+                          , ("gray61", Gray61)+                          , ("grey61", Gray61)+                          , ("gray62", Gray62)+                          , ("grey62", Gray62)+                          , ("gray63", Gray63)+                          , ("grey63", Gray63)+                          , ("gray64", Gray64)+                          , ("grey64", Gray64)+                          , ("gray65", Gray65)+                          , ("grey65", Gray65)+                          , ("gray66", Gray66)+                          , ("grey66", Gray66)+                          , ("gray67", Gray67)+                          , ("grey67", Gray67)+                          , ("gray68", Gray68)+                          , ("grey68", Gray68)+                          , ("gray69", Gray69)+                          , ("grey69", Gray69)+                          , ("gray70", Gray70)+                          , ("grey70", Gray70)+                          , ("gray71", Gray71)+                          , ("grey71", Gray71)+                          , ("gray72", Gray72)+                          , ("grey72", Gray72)+                          , ("gray73", Gray73)+                          , ("grey73", Gray73)+                          , ("gray74", Gray74)+                          , ("grey74", Gray74)+                          , ("gray75", Gray75)+                          , ("grey75", Gray75)+                          , ("gray76", Gray76)+                          , ("grey76", Gray76)+                          , ("gray77", Gray77)+                          , ("grey77", Gray77)+                          , ("gray78", Gray78)+                          , ("grey78", Gray78)+                          , ("gray79", Gray79)+                          , ("grey79", Gray79)+                          , ("gray80", Gray80)+                          , ("grey80", Gray80)+                          , ("gray81", Gray81)+                          , ("grey81", Gray81)+                          , ("gray82", Gray82)+                          , ("grey82", Gray82)+                          , ("gray83", Gray83)+                          , ("grey83", Gray83)+                          , ("gray84", Gray84)+                          , ("grey84", Gray84)+                          , ("gray85", Gray85)+                          , ("grey85", Gray85)+                          , ("gray86", Gray86)+                          , ("grey86", Gray86)+                          , ("gray87", Gray87)+                          , ("grey87", Gray87)+                          , ("gray88", Gray88)+                          , ("grey88", Gray88)+                          , ("gray89", Gray89)+                          , ("grey89", Gray89)+                          , ("gray90", Gray90)+                          , ("grey90", Gray90)+                          , ("gray91", Gray91)+                          , ("grey91", Gray91)+                          , ("gray92", Gray92)+                          , ("grey92", Gray92)+                          , ("gray93", Gray93)+                          , ("grey93", Gray93)+                          , ("gray94", Gray94)+                          , ("grey94", Gray94)+                          , ("gray95", Gray95)+                          , ("grey95", Gray95)+                          , ("gray96", Gray96)+                          , ("grey96", Gray96)+                          , ("gray97", Gray97)+                          , ("grey97", Gray97)+                          , ("gray98", Gray98)+                          , ("grey98", Gray98)+                          , ("gray99", Gray99)+                          , ("grey99", Gray99)+                          , ("gray100", Gray100)+                          , ("grey100", Gray100)+                          , ("green", Green)+                          , ("green1", Green1)+                          , ("green2", Green2)+                          , ("green3", Green3)+                          , ("green4", Green4)+                          , ("greenyellow", GreenYellow)+                          , ("honeydew", HoneyDew)+                          , ("honeydew1", HoneyDew1)+                          , ("honeydew2", HoneyDew2)+                          , ("honeydew3", HoneyDew3)+                          , ("honeydew4", HoneyDew4)+                          , ("hotpink", HotPink)+                          , ("hotpink1", HotPink1)+                          , ("hotpink2", HotPink2)+                          , ("hotpink3", HotPink3)+                          , ("hotpink4", HotPink4)+                          , ("indianred", IndianRed)+                          , ("indianred1", IndianRed1)+                          , ("indianred2", IndianRed2)+                          , ("indianred3", IndianRed3)+                          , ("indianred4", IndianRed4)+                          , ("indigo", Indigo)+                          , ("ivory", Ivory)+                          , ("ivory1", Ivory1)+                          , ("ivory2", Ivory2)+                          , ("ivory3", Ivory3)+                          , ("ivory4", Ivory4)+                          , ("khaki", Khaki)+                          , ("khaki1", Khaki1)+                          , ("khaki2", Khaki2)+                          , ("khaki3", Khaki3)+                          , ("khaki4", Khaki4)+                          , ("lavender", Lavender)+                          , ("lavenderblush", LavenderBlush)+                          , ("lavenderblush1", LavenderBlush1)+                          , ("lavenderblush2", LavenderBlush2)+                          , ("lavenderblush3", LavenderBlush3)+                          , ("lavenderblush4", LavenderBlush4)+                          , ("lawngreen", LawnGreen)+                          , ("lemonchiffon", LemonChiffon)+                          , ("lemonchiffon1", LemonChiffon1)+                          , ("lemonchiffon2", LemonChiffon2)+                          , ("lemonchiffon3", LemonChiffon3)+                          , ("lemonchiffon4", LemonChiffon4)+                          , ("lightblue", LightBlue)+                          , ("lightblue1", LightBlue1)+                          , ("lightblue2", LightBlue2)+                          , ("lightblue3", LightBlue3)+                          , ("lightblue4", LightBlue4)+                          , ("lightcoral", LightCoral)+                          , ("lightcyan", LightCyan)+                          , ("lightcyan1", LightCyan1)+                          , ("lightcyan2", LightCyan2)+                          , ("lightcyan3", LightCyan3)+                          , ("lightcyan4", LightCyan4)+                          , ("lightgoldenrod", LightGoldenrod)+                          , ("lightgoldenrod1", LightGoldenrod1)+                          , ("lightgoldenrod2", LightGoldenrod2)+                          , ("lightgoldenrod3", LightGoldenrod3)+                          , ("lightgoldenrod4", LightGoldenrod4)+                          , ("lightgoldenrodyellow", LightGoldenrodYellow)+                          , ("lightgray", LightGray)+                          , ("lightgrey", LightGray)+                          , ("lightpink", LightPink)+                          , ("lightpink1", LightPink1)+                          , ("lightpink2", LightPink2)+                          , ("lightpink3", LightPink3)+                          , ("lightpink4", LightPink4)+                          , ("lightsalmon", LightSalmon)+                          , ("lightsalmon1", LightSalmon1)+                          , ("lightsalmon2", LightSalmon2)+                          , ("lightsalmon3", LightSalmon3)+                          , ("lightsalmon4", LightSalmon4)+                          , ("lightseagreen", LightSeaGreen)+                          , ("lightskyblue", LightSkyBlue)+                          , ("lightskyblue1", LightSkyBlue1)+                          , ("lightskyblue2", LightSkyBlue2)+                          , ("lightskyblue3", LightSkyBlue3)+                          , ("lightskyblue4", LightSkyBlue4)+                          , ("lightslateblue", LightSlateBlue)+                          , ("lightslategray", LightSlateGray)+                          , ("lightslategrey", LightSlateGray)+                          , ("lightsteelblue", LightSteelBlue)+                          , ("lightsteelblue1", LightSteelBlue1)+                          , ("lightsteelblue2", LightSteelBlue2)+                          , ("lightsteelblue3", LightSteelBlue3)+                          , ("lightsteelblue4", LightSteelBlue4)+                          , ("lightyellow", LightYellow)+                          , ("lightyellow1", LightYellow1)+                          , ("lightyellow2", LightYellow2)+                          , ("lightyellow3", LightYellow3)+                          , ("lightyellow4", LightYellow4)+                          , ("limegreen", LimeGreen)+                          , ("linen", Linen)+                          , ("magenta", Magenta)+                          , ("magenta1", Magenta1)+                          , ("magenta2", Magenta2)+                          , ("magenta3", Magenta3)+                          , ("magenta4", Magenta4)+                          , ("maroon", Maroon)+                          , ("maroon1", Maroon1)+                          , ("maroon2", Maroon2)+                          , ("maroon3", Maroon3)+                          , ("maroon4", Maroon4)+                          , ("mediumaquamarine", MediumAquamarine)+                          , ("mediumblue", MediumBlue)+                          , ("mediumorchid", MediumOrchid)+                          , ("mediumorchid1", MediumOrchid1)+                          , ("mediumorchid2", MediumOrchid2)+                          , ("mediumorchid3", MediumOrchid3)+                          , ("mediumorchid4", MediumOrchid4)+                          , ("mediumpurple", MediumPurple)+                          , ("mediumpurple1", MediumPurple1)+                          , ("mediumpurple2", MediumPurple2)+                          , ("mediumpurple3", MediumPurple3)+                          , ("mediumpurple4", MediumPurple4)+                          , ("mediumseagreen", MediumSeaGreen)+                          , ("mediumslateblue", MediumSlateBlue)+                          , ("mediumspringgreen", MediumSpringGreen)+                          , ("mediumturquoise", MediumTurquoise)+                          , ("mediumvioletred", MediumVioletRed)+                          , ("midnightblue", MidnightBlue)+                          , ("mintcream", MintCream)+                          , ("mistyrose", MistyRose)+                          , ("mistyrose1", MistyRose1)+                          , ("mistyrose2", MistyRose2)+                          , ("mistyrose3", MistyRose3)+                          , ("mistyrose4", MistyRose4)+                          , ("moccasin", Moccasin)+                          , ("navajowhite", NavajoWhite)+                          , ("navajowhite1", NavajoWhite1)+                          , ("navajowhite2", NavajoWhite2)+                          , ("navajowhite3", NavajoWhite3)+                          , ("navajowhite4", NavajoWhite4)+                          , ("navy", Navy)+                          , ("navyblue", NavyBlue)+                          , ("oldlace", OldLace)+                          , ("olivedrab", OliveDrab)+                          , ("olivedrab1", OliveDrab1)+                          , ("olivedrab2", OliveDrab2)+                          , ("olivedrab3", OliveDrab3)+                          , ("olivedrab4", OliveDrab4)+                          , ("orange", Orange)+                          , ("orange1", Orange1)+                          , ("orange2", Orange2)+                          , ("orange3", Orange3)+                          , ("orange4", Orange4)+                          , ("orangered", OrangeRed)+                          , ("orangered1", OrangeRed1)+                          , ("orangered2", OrangeRed2)+                          , ("orangered3", OrangeRed3)+                          , ("orangered4", OrangeRed4)+                          , ("orchid", Orchid)+                          , ("orchid1", Orchid1)+                          , ("orchid2", Orchid2)+                          , ("orchid3", Orchid3)+                          , ("orchid4", Orchid4)+                          , ("palegoldenrod", PaleGoldenrod)+                          , ("palegreen", PaleGreen)+                          , ("palegreen1", PaleGreen1)+                          , ("palegreen2", PaleGreen2)+                          , ("palegreen3", PaleGreen3)+                          , ("palegreen4", PaleGreen4)+                          , ("paleturquoise", PaleTurquoise)+                          , ("paleturquoise1", PaleTurquoise1)+                          , ("paleturquoise2", PaleTurquoise2)+                          , ("paleturquoise3", PaleTurquoise3)+                          , ("paleturquoise4", PaleTurquoise4)+                          , ("palevioletred", PaleVioletRed)+                          , ("palevioletred1", PaleVioletRed1)+                          , ("palevioletred2", PaleVioletRed2)+                          , ("palevioletred3", PaleVioletRed3)+                          , ("palevioletred4", PaleVioletRed4)+                          , ("papayawhip", PapayaWhip)+                          , ("peachpuff", PeachPuff)+                          , ("peachpuff1", PeachPuff1)+                          , ("peachpuff2", PeachPuff2)+                          , ("peachpuff3", PeachPuff3)+                          , ("peachpuff4", PeachPuff4)+                          , ("peru", Peru)+                          , ("pink", Pink)+                          , ("pink1", Pink1)+                          , ("pink2", Pink2)+                          , ("pink3", Pink3)+                          , ("pink4", Pink4)+                          , ("plum", Plum)+                          , ("plum1", Plum1)+                          , ("plum2", Plum2)+                          , ("plum3", Plum3)+                          , ("plum4", Plum4)+                          , ("powderblue", PowderBlue)+                          , ("purple", Purple)+                          , ("purple1", Purple1)+                          , ("purple2", Purple2)+                          , ("purple3", Purple3)+                          , ("purple4", Purple4)+                          , ("red", Red)+                          , ("red1", Red1)+                          , ("red2", Red2)+                          , ("red3", Red3)+                          , ("red4", Red4)+                          , ("rosybrown", RosyBrown)+                          , ("rosybrown1", RosyBrown1)+                          , ("rosybrown2", RosyBrown2)+                          , ("rosybrown3", RosyBrown3)+                          , ("rosybrown4", RosyBrown4)+                          , ("royalblue", RoyalBlue)+                          , ("royalblue1", RoyalBlue1)+                          , ("royalblue2", RoyalBlue2)+                          , ("royalblue3", RoyalBlue3)+                          , ("royalblue4", RoyalBlue4)+                          , ("saddlebrown", SaddleBrown)+                          , ("salmon", Salmon)+                          , ("salmon1", Salmon1)+                          , ("salmon2", Salmon2)+                          , ("salmon3", Salmon3)+                          , ("salmon4", Salmon4)+                          , ("sandybrown", SandyBrown)+                          , ("seagreen", SeaGreen)+                          , ("seagreen1", SeaGreen1)+                          , ("seagreen2", SeaGreen2)+                          , ("seagreen3", SeaGreen3)+                          , ("seagreen4", SeaGreen4)+                          , ("seashell", SeaShell)+                          , ("seashell1", SeaShell1)+                          , ("seashell2", SeaShell2)+                          , ("seashell3", SeaShell3)+                          , ("seashell4", SeaShell4)+                          , ("sienna", Sienna)+                          , ("sienna1", Sienna1)+                          , ("sienna2", Sienna2)+                          , ("sienna3", Sienna3)+                          , ("sienna4", Sienna4)+                          , ("skyblue", SkyBlue)+                          , ("skyblue1", SkyBlue1)+                          , ("skyblue2", SkyBlue2)+                          , ("skyblue3", SkyBlue3)+                          , ("skyblue4", SkyBlue4)+                          , ("slateblue", SlateBlue)+                          , ("slateblue1", SlateBlue1)+                          , ("slateblue2", SlateBlue2)+                          , ("slateblue3", SlateBlue3)+                          , ("slateblue4", SlateBlue4)+                          , ("slategray", SlateGray)+                          , ("slategrey", SlateGray)+                          , ("slategray1", SlateGray1)+                          , ("slategrey1", SlateGray1)+                          , ("slategray2", SlateGray2)+                          , ("slategrey2", SlateGray2)+                          , ("slategray3", SlateGray3)+                          , ("slategrey3", SlateGray3)+                          , ("slategray4", SlateGray4)+                          , ("slategrey4", SlateGray4)+                          , ("snow", Snow)+                          , ("snow1", Snow1)+                          , ("snow2", Snow2)+                          , ("snow3", Snow3)+                          , ("snow4", Snow4)+                          , ("springgreen", SpringGreen)+                          , ("springgreen1", SpringGreen1)+                          , ("springgreen2", SpringGreen2)+                          , ("springgreen3", SpringGreen3)+                          , ("springgreen4", SpringGreen4)+                          , ("steelblue", SteelBlue)+                          , ("steelblue1", SteelBlue1)+                          , ("steelblue2", SteelBlue2)+                          , ("steelblue3", SteelBlue3)+                          , ("steelblue4", SteelBlue4)+                          , ("tan", Tan)+                          , ("tan1", Tan1)+                          , ("tan2", Tan2)+                          , ("tan3", Tan3)+                          , ("tan4", Tan4)+                          , ("thistle", Thistle)+                          , ("thistle1", Thistle1)+                          , ("thistle2", Thistle2)+                          , ("thistle3", Thistle3)+                          , ("thistle4", Thistle4)+                          , ("tomato", Tomato)+                          , ("tomato1", Tomato1)+                          , ("tomato2", Tomato2)+                          , ("tomato3", Tomato3)+                          , ("tomato4", Tomato4)+                          , ("transparent", Transparent)+                          , ("invis", Transparent)+                          , ("none", Transparent)+                          , ("turquoise", Turquoise)+                          , ("turquoise1", Turquoise1)+                          , ("turquoise2", Turquoise2)+                          , ("turquoise3", Turquoise3)+                          , ("turquoise4", Turquoise4)+                          , ("violet", Violet)+                          , ("violetred", VioletRed)+                          , ("violetred1", VioletRed1)+                          , ("violetred2", VioletRed2)+                          , ("violetred3", VioletRed3)+                          , ("violetred4", VioletRed4)+                          , ("wheat", Wheat)+                          , ("wheat1", Wheat1)+                          , ("wheat2", Wheat2)+                          , ("wheat3", Wheat3)+                          , ("wheat4", Wheat4)+                          , ("white", White)+                          , ("whitesmoke", WhiteSmoke)+                          , ("yellow", Yellow)+                          , ("yellow1", Yellow1)+                          , ("yellow2", Yellow2)+                          , ("yellow3", Yellow3)+                          , ("yellow4", Yellow4)+                          , ("yellowgreen", YellowGreen)+                          ]++-- | 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
Data/GraphViz/Attributes/Complete.hs view
@@ -26,12 +26,14 @@     * @ColorList@, @DoubleList@ and @PointfList@ are defined as actual      lists (@'LayerList'@ needs a newtype for other reasons).  All of these-     are assumed to be non-empty lists.  Note that for the @Color@-     'Attribute' for node values, only a single Color is valid; edges are-     allowed multiple colors with one spline/arrow per color in the list-     (but you must have at least one 'Color' in the list).  This might be-     changed in future.+     are assumed to be non-empty lists. +   * For the various @*Color@ attributes that take in a list of+     'Color' values, usually only one color is used.  The @Color@+     attribute for edges allows multiple values; for other attributes,+     two values are supported for gradient fills in Graphviz >=+     2.29.0.+    * Style is implemented as a list of 'StyleItem' values; note that      empty lists are not allowed. @@ -65,6 +67,12 @@      supports UTF-8 encoding (as it is not currently feasible nor needed to      also support Latin1 encoding). +   * In Graphviz, when a node or edge has a list of attributes, the+     colorscheme which is used to identify a color can be set /after/+     that color (e.g. @[colorscheme=x11,color=grey,colorscheme=svg]@+     uses the svg colorscheme's definition of grey, which is different+     from the x11 one.  Instead, graphviz parses them in order.+  -} module Data.GraphViz.Attributes.Complete        ( -- * The actual /Dot/ attributes.@@ -101,7 +109,7 @@        , EscString        , Label(..)        , VerticalPlacement(..)-       , module Data.GraphViz.Attributes.HTML+       , LabelScheme(..)          -- *** Types representing the Dot grammar for records.        , RecordFields        , RecordField(..)@@ -110,6 +118,7 @@           -- ** Nodes        , Shape(..)+       , Paths(..)        , ScaleType(..)           -- ** Edges@@ -142,6 +151,7 @@        , Model(..)        , Overlap(..)        , Root(..)+       , Order(..)        , OutputMode(..)        , Pack(..)        , PackMode(..)@@ -172,7 +182,8 @@        ) where  import Data.GraphViz.Attributes.Colors-import Data.GraphViz.Attributes.HTML+import Data.GraphViz.Attributes.Colors.X11(X11Color(Transparent, Black))+import qualified Data.GraphViz.Attributes.HTML as Html import Data.GraphViz.Attributes.Internal import Data.GraphViz.Util import Data.GraphViz.Parsing@@ -180,13 +191,14 @@ import Data.GraphViz.State(getLayerSep, setLayerSep) import Data.GraphViz.Exception(GraphvizException(NotCustomAttr), throw) -import Data.List(partition)+import Data.List(partition, intercalate) import Data.Maybe(isJust) import Data.Word(Word16) import qualified Data.Set as S import qualified Data.Text.Lazy as T import Data.Text.Lazy(Text) import Control.Monad(liftM, liftM2)+import System.FilePath(searchPathSeparator, splitSearchPath)  -- ----------------------------------------------------------------------------- @@ -236,20 +248,20 @@   | ArrowSize Double                    -- ^ /Valid for/: E; /Default/: @1.0@; /Minimum/: @0.0@   | ArrowTail ArrowType                 -- ^ /Valid for/: E; /Default/: @'normal'@   | Aspect AspectType                   -- ^ /Valid for/: G; /Notes/: dot only-  | Bb Rect                             -- ^ /Valid for/: G; /Notes/: write only-  | BgColor Color                       -- ^ /Valid for/: GC; /Default/: @'X11Color' 'Transparent'@+  | BoundingBox Rect                    -- ^ /Valid for/: G; /Notes/: write only+  | ColorScheme ColorScheme             -- ^ /Valid for/: ENCG; /Default/: @'X11'@+  | BgColor [Color]                     -- ^ /Valid for/: GC; /Default/: @['X11Color' 'Transparent']@   | Center Bool                         -- ^ /Valid for/: G; /Default/: @'False'@; /Parsing Default/: 'True'   | ClusterRank ClusterMode             -- ^ /Valid for/: G; /Default/: @'Local'@; /Notes/: dot only-  | ColorScheme ColorScheme             -- ^ /Valid for/: ENCG; /Default/: @'X11'@   | Color [Color]                       -- ^ /Valid for/: ENC; /Default/: @['X11Color' 'Black']@   | Comment Text                        -- ^ /Valid for/: ENG; /Default/: @\"\"@   | Compound Bool                       -- ^ /Valid for/: G; /Default/: @'False'@; /Parsing Default/: 'True'; /Notes/: dot only   | Concentrate Bool                    -- ^ /Valid for/: G; /Default/: @'False'@; /Parsing Default/: 'True'   | Constraint Bool                     -- ^ /Valid for/: E; /Default/: @'True'@; /Parsing Default/: 'True'; /Notes/: dot only   | Decorate Bool                       -- ^ /Valid for/: E; /Default/: @'False'@; /Parsing Default/: 'True'-  | DefaultDist Double                  -- ^ /Valid for/: G; /Default/: @1+(avg. len)*sqrt(|V|)@; /Minimum/: @epsilon@; /Notes/: neato only-  | Dimen Int                           -- ^ /Valid for/: G; /Default/: @2@; /Minimum/: @2@; /Notes/: sfdp, fdp, neato only+  | DefaultDist Double                  -- ^ /Valid for/: G; /Default/: @1+(avg. len)*sqrt(|V|)@; /Minimum/: @epsilon@; /Notes/: neato only, only if @'Pack' 'DontPack'   | Dim Int                             -- ^ /Valid for/: G; /Default/: @2@; /Minimum/: @2@; /Notes/: sfdp, fdp, neato only+  | Dimen Int                           -- ^ /Valid for/: G; /Default/: @2@; /Minimum/: @2@; /Notes/: sfdp, fdp, neato only   | Dir DirType                         -- ^ /Valid for/: E; /Default/: @'Forward'@ (directed), @'NoDir'@ (undirected)   | DirEdgeConstraints DEConstraints    -- ^ /Valid for/: G; /Default/: @'NoConstraints'@; /Parsing Default/: 'EdgeConstraints'; /Notes/: neato only   | Distortion Double                   -- ^ /Valid for/: N; /Default/: @0.0@; /Minimum/: @-100.0@@@ -259,13 +271,15 @@   | EdgeTooltip EscString               -- ^ /Valid for/: E; /Default/: @\"\"@; /Notes/: svg, cmap only   | Epsilon Double                      -- ^ /Valid for/: G; /Default/: @.0001 * # nodes@ (@mode == 'KK'@), @.0001@ (@mode == 'Major'@); /Notes/: neato only   | ESep DPoint                         -- ^ /Valid for/: G; /Default/: @'DVal' 3@; /Notes/: not dot-  | FillColor Color                     -- ^ /Valid for/: NC; /Default/: @'X11Color' 'LightGray'@ (nodes), @'X11Color' 'Black'@ (clusters)+  | FillColor [Color]                   -- ^ /Valid for/: NEC; /Default/: @['X11Color' 'LightGray']@ (nodes), @['X11Color' 'Black']@ (clusters)   | FixedSize Bool                      -- ^ /Valid for/: N; /Default/: @'False'@; /Parsing Default/: 'True'   | FontColor Color                     -- ^ /Valid for/: ENGC; /Default/: @'X11Color' 'Black'@   | FontName Text                       -- ^ /Valid for/: ENGC; /Default/: @\"Times-Roman\"@   | FontNames Text                      -- ^ /Valid for/: G; /Default/: @\"\"@; /Notes/: svg only   | FontPath Text                       -- ^ /Valid for/: G; /Default/: system dependent   | FontSize Double                     -- ^ /Valid for/: ENGC; /Default/: @14.0@; /Minimum/: @1.0@+  | ForceLabels Bool                    -- ^ /Valid for/: G; /Default/: @'False'@; /Parsing Default/: 'True'; /Notes/: Only for 'XLabel' attributes, requires Graphviz >= 2.29.0+  | GradientAngle Int                   -- ^ /Valid for/: NCG; /Default/: 0; /Notes/: requires Graphviz >= 2.29.0   | Group Text                          -- ^ /Valid for/: N; /Default/: @\"\"@; /Notes/: dot only   | HeadURL EscString                   -- ^ /Valid for/: E; /Default/: @\"\"@; /Notes/: svg, map only   | HeadClip Bool                       -- ^ /Valid for/: E; /Default/: @'True'@; /Parsing Default/: 'True'@@ -274,10 +288,13 @@   | HeadTarget EscString                -- ^ /Valid for/: E; /Default/: none; /Notes/: svg, map only   | HeadTooltip EscString               -- ^ /Valid for/: E; /Default/: @\"\"@; /Notes/: svg, cmap only   | Height Double                       -- ^ /Valid for/: N; /Default/: @0.5@; /Minimum/: @0.02@-  | ID Label                            -- ^ /Valid for/: GNE; /Default/: @'StrLabel' \"\"@; /Notes/: svg, postscript, map only+  | ID EscString                        -- ^ /Valid for/: GNE; /Default/: @\"\"; /Notes/: svg, postscript, map only   | Image Text                          -- ^ /Valid for/: N; /Default/: @\"\"@+  | ImagePath Paths                     -- ^ /Valid for/: G; /Default/: @'Paths' []@; /Notes/: Printing and parsing is OS-specific, requires Graphviz >= 2.29.0   | ImageScale ScaleType                -- ^ /Valid for/: N; /Default/: @'NoScale'@; /Parsing Default/: 'UniformScale'+  | Label Label                         -- ^ /Valid for/: ENGC; /Default/: @'StrLabel' \"\\N\"@ (nodes), @'StrLabel' \"\"@ (otherwise)   | LabelURL EscString                  -- ^ /Valid for/: E; /Default/: @\"\"@; /Notes/: svg, map only+  | LabelScheme LabelScheme             -- ^ /Valid for/: G; /Default/: @'NotEdgeLabel'@; /Notes/: sfdp only, requires Graphviz >= 2.28.0   | LabelAngle Double                   -- ^ /Valid for/: E; /Default/: @-25.0@; /Minimum/: @-180.0@   | LabelDistance Double                -- ^ /Valid for/: E; /Default/: @1.0@; /Minimum/: @0.0@   | LabelFloat Bool                     -- ^ /Valid for/: E; /Default/: @'False'@; /Parsing Default/: 'True'@@ -288,41 +305,42 @@   | LabelLoc VerticalPlacement          -- ^ /Valid for/: GCN; /Default/: @'VTop'@ (clusters), @'VBottom'@ (root graphs), @'VCenter'@ (nodes)   | LabelTarget EscString               -- ^ /Valid for/: E; /Default/: none; /Notes/: svg, map only   | LabelTooltip EscString              -- ^ /Valid for/: E; /Default/: @\"\"@; /Notes/: svg, cmap only-  | Label Label                         -- ^ /Valid for/: ENGC; /Default/: @'StrLabel' \"\\N\"@ (nodes), @'StrLabel' \"\"@ (otherwise)   | Landscape Bool                      -- ^ /Valid for/: G; /Default/: @'False'@; /Parsing Default/: 'True'-  | LayerSep LayerSep                   -- ^ /Valid for/: G; /Default/: @'LSep' \" :\t\"@-  | Layers LayerList                    -- ^ /Valid for/: G; /Default/: @'LL' []@   | Layer LayerRange                    -- ^ /Valid for/: EN+  | Layers LayerList                    -- ^ /Valid for/: G; /Default/: @'LL' []@+  | LayerSep LayerSep                   -- ^ /Valid for/: G; /Default/: @'LSep' \" :\t\"@   | Layout Text                         -- ^ /Valid for/: G; /Default/: @\"\"@   | Len Double                          -- ^ /Valid for/: E; /Default/: @1.0@ (neato), @0.3@ (fdp); /Notes/: fdp, neato only   | LevelsGap Double                    -- ^ /Valid for/: G; /Default/: @0.0@; /Notes/: neato only   | Levels Int                          -- ^ /Valid for/: G; /Default/: @'maxBound'@; /Minimum/: @0@; /Notes/: sfdp only   | LHead Text                          -- ^ /Valid for/: E; /Default/: @\"\"@; /Notes/: dot only+  | LHeight Double                      -- ^ /Valid for/: GC; /Notes/: write only, requires Graphviz >= 2.28.0   | LPos Point                          -- ^ /Valid for/: EGC; /Notes/: write only   | LTail Text                          -- ^ /Valid for/: E; /Default/: @\"\"@; /Notes/: dot only+  | LWidth Double                       -- ^ /Valid for/: GC; /Notes/: write only, requires Graphviz >= 2.28.0   | Margin DPoint                       -- ^ /Valid for/: NG; /Default/: device dependent   | MaxIter Int                         -- ^ /Valid for/: G; /Default/: @100 * # nodes@ (@mode == 'KK'@), @200@ (@mode == 'Major'@), @600@ (fdp); /Notes/: fdp, neato only   | MCLimit Double                      -- ^ /Valid for/: G; /Default/: @1.0@; /Notes/: dot only   | MinDist Double                      -- ^ /Valid for/: G; /Default/: @1.0@; /Minimum/: @0.0@; /Notes/: circo only   | MinLen Int                          -- ^ /Valid for/: E; /Default/: @1@; /Minimum/: @0@; /Notes/: dot only-  | Model Model                         -- ^ /Valid for/: G; /Default/: @'ShortPath'@; /Notes/: neato only   | Mode ModeType                       -- ^ /Valid for/: G; /Default/: @'Major'@; /Notes/: neato only+  | Model Model                         -- ^ /Valid for/: G; /Default/: @'ShortPath'@; /Notes/: neato only   | Mosek Bool                          -- ^ /Valid for/: G; /Default/: @'False'@; /Parsing Default/: 'True'; /Notes/: neato only; requires the Mosek software   | NodeSep Double                      -- ^ /Valid for/: G; /Default/: @0.25@; /Minimum/: @0.02@; /Notes/: dot only   | NoJustify Bool                      -- ^ /Valid for/: GCNE; /Default/: @'False'@; /Parsing Default/: 'True'   | Normalize Bool                      -- ^ /Valid for/: G; /Default/: @'False'@; /Parsing Default/: 'True'; /Notes/: not dot-  | Nslimit1 Double                     -- ^ /Valid for/: G; /Notes/: dot only   | Nslimit Double                      -- ^ /Valid for/: G; /Notes/: dot only-  | Ordering Text                       -- ^ /Valid for/: G; /Default/: @\"\"@; /Notes/: dot only+  | Nslimit1 Double                     -- ^ /Valid for/: G; /Notes/: dot only+  | Ordering Order                      -- ^ /Valid for/: GN; /Default/: none; /Notes/: dot only   | Orientation Double                  -- ^ /Valid for/: N; /Default/: @0.0@; /Minimum/: @360.0@   | OutputOrder OutputMode              -- ^ /Valid for/: G; /Default/: @'BreadthFirst'@-  | OverlapScaling Double               -- ^ /Valid for/: G; /Default/: @-4@; /Minimum/: @-1.0e10@; /Notes/: prism only   | Overlap Overlap                     -- ^ /Valid for/: G; /Default/: @'KeepOverlaps'@; /Parsing Default/: 'KeepOverlaps'; /Notes/: not dot-  | PackMode PackMode                   -- ^ /Valid for/: G; /Default/: @'PackNode'@; /Notes/: not dot+  | OverlapScaling Double               -- ^ /Valid for/: G; /Default/: @-4@; /Minimum/: @-1.0e10@; /Notes/: prism only   | Pack Pack                           -- ^ /Valid for/: G; /Default/: @'DontPack'@; /Parsing Default/: 'DoPack'; /Notes/: not dot+  | PackMode PackMode                   -- ^ /Valid for/: G; /Default/: @'PackNode'@; /Notes/: not dot   | Pad DPoint                          -- ^ /Valid for/: G; /Default/: @'DVal' 0.0555@ (4 points)-  | PageDir PageDir                     -- ^ /Valid for/: G; /Default/: @'Bl'@   | Page Point                          -- ^ /Valid for/: G+  | PageDir PageDir                     -- ^ /Valid for/: G; /Default/: @'Bl'@   | PenColor Color                      -- ^ /Valid for/: C; /Default/: @'X11Color' 'Black'@   | PenWidth Double                     -- ^ /Valid for/: CNE; /Default/: @1.0@; /Minimum/: @0.0@   | Peripheries Int                     -- ^ /Valid for/: NC; /Default/: shape default (nodes), @1@ (clusters); /Minimum/: 0@@ -330,9 +348,9 @@   | Pos Pos                             -- ^ /Valid for/: EN   | QuadTree QuadType                   -- ^ /Valid for/: G; /Default/: @'NormalQT'@; /Parsing Default/: 'NormalQT'; /Notes/: sfdp only   | Quantum Double                      -- ^ /Valid for/: G; /Default/: @0.0@; /Minimum/: @0.0@+  | Rank RankType                       -- ^ /Valid for/: S; /Notes/: dot only   | RankDir RankDir                     -- ^ /Valid for/: G; /Default/: @'FromTop'@; /Notes/: dot only   | RankSep [Double]                    -- ^ /Valid for/: G; /Default/: @[0.5]@ (dot), @[1.0]@ (twopi); /Minimum/: [0.02]; /Notes/: twopi, dot only-  | Rank RankType                       -- ^ /Valid for/: S; /Notes/: dot only   | Ratio Ratios                        -- ^ /Valid for/: G   | Rects [Rect]                        -- ^ /Valid for/: N; /Notes/: write only   | Regular Bool                        -- ^ /Valid for/: N; /Default/: @'False'@; /Parsing Default/: 'True'@@ -340,13 +358,15 @@   | RepulsiveForce Double               -- ^ /Valid for/: G; /Default/: @1.0@; /Minimum/: @0.0@; /Notes/: sfdp only   | Root Root                           -- ^ /Valid for/: GN; /Default/: @'NodeName' \"\"@ (graphs), @'NotCentral'@ (nodes); /Parsing Default/: 'IsCentral'; /Notes/: circo, twopi only   | Rotate Int                          -- ^ /Valid for/: G; /Default/: @0@+  | Rotation Double                     -- ^ /Valid for/: G; /Default/: @0@; /Notes/: sfdp only, requires Graphviz >= 2.28.0   | SameHead Text                       -- ^ /Valid for/: E; /Default/: @\"\"@; /Notes/: dot only   | SameTail Text                       -- ^ /Valid for/: E; /Default/: @\"\"@; /Notes/: dot only   | SamplePoints Int                    -- ^ /Valid for/: N; /Default/: @8@ (output), @20@ (overlap and image maps)+  | Scale DPoint                        -- ^ /Valid for/: G; /Notes/: twopi only, requires Graphviz >= 2.28.0   | SearchSize Int                      -- ^ /Valid for/: G; /Default/: @30@; /Notes/: dot only   | Sep DPoint                          -- ^ /Valid for/: G; /Default/: @'DVal' 4@; /Notes/: not dot-  | ShapeFile Text                      -- ^ /Valid for/: N; /Default/: @\"\"@   | Shape Shape                         -- ^ /Valid for/: N; /Default/: @'Ellipse'@+  | ShapeFile Text                      -- ^ /Valid for/: N; /Default/: @\"\"@   | ShowBoxes Int                       -- ^ /Valid for/: ENG; /Default/: @0@; /Minimum/: @0@; /Notes/: dot only   | Sides Int                           -- ^ /Valid for/: N; /Default/: @4@; /Minimum/: @0@   | Size Point                          -- ^ /Valid for/: G@@ -355,8 +375,8 @@   | SortV Word16                        -- ^ /Valid for/: GCN; /Default/: @0@; /Minimum/: @0@   | Splines EdgeType                    -- ^ /Valid for/: G; /Parsing Default/: 'SplineEdges'   | Start StartType                     -- ^ /Valid for/: G; /Notes/: fdp, neato only-  | StyleSheet Text                     -- ^ /Valid for/: G; /Default/: @\"\"@; /Notes/: svg only   | Style [StyleItem]                   -- ^ /Valid for/: ENC+  | StyleSheet Text                     -- ^ /Valid for/: G; /Default/: @\"\"@; /Notes/: svg only   | TailURL EscString                   -- ^ /Valid for/: E; /Default/: @\"\"@; /Notes/: svg, map only   | TailClip Bool                       -- ^ /Valid for/: E; /Default/: @'True'@; /Parsing Default/: 'True'   | TailLabel Label                     -- ^ /Valid for/: E; /Default/: @'StrLabel' \"\"@@@ -371,6 +391,7 @@   | VoroMargin Double                   -- ^ /Valid for/: G; /Default/: @0.05@; /Minimum/: @0.0@; /Notes/: not dot   | Weight Double                       -- ^ /Valid for/: E; /Default/: @1.0@; /Minimum/: @0@ (dot), @1@ (neato,fdp,sfdp)   | Width Double                        -- ^ /Valid for/: N; /Default/: @0.75@; /Minimum/: @0.01@+  | XLabel Label                        -- ^ /Valid for/: EN; /Default/: @'StrLabel' \"\"@; /Notes/: requires Graphviz >= 2.29.0   | Z Double                            -- ^ /Valid for/: N; /Default/: @0.0@; /Minimum/: @-MAXFLOAT@, @-1000@   | UnknownAttribute AttributeName Text -- ^ /Valid for/: Assumed valid for all; the fields are 'Attribute' name and value respectively.   deriving (Eq, Ord, Show, Read)@@ -388,11 +409,11 @@   unqtDot (ArrowSize v)          = printField "arrowsize" v   unqtDot (ArrowTail v)          = printField "arrowtail" v   unqtDot (Aspect v)             = printField "aspect" v-  unqtDot (Bb v)                 = printField "bb" v+  unqtDot (BoundingBox v)        = printField "bb" v+  unqtDot (ColorScheme v)        = printField "colorscheme" v   unqtDot (BgColor v)            = printField "bgcolor" v   unqtDot (Center v)             = printField "center" v   unqtDot (ClusterRank v)        = printField "clusterrank" v-  unqtDot (ColorScheme v)        = printField "colorscheme" v   unqtDot (Color v)              = printField "color" v   unqtDot (Comment v)            = printField "comment" v   unqtDot (Compound v)           = printField "compound" v@@ -400,8 +421,8 @@   unqtDot (Constraint v)         = printField "constraint" v   unqtDot (Decorate v)           = printField "decorate" v   unqtDot (DefaultDist v)        = printField "defaultdist" v-  unqtDot (Dimen v)              = printField "dimen" v   unqtDot (Dim v)                = printField "dim" v+  unqtDot (Dimen v)              = printField "dimen" v   unqtDot (Dir v)                = printField "dir" v   unqtDot (DirEdgeConstraints v) = printField "diredgeconstraints" v   unqtDot (Distortion v)         = printField "distortion" v@@ -418,6 +439,8 @@   unqtDot (FontNames v)          = printField "fontnames" v   unqtDot (FontPath v)           = printField "fontpath" v   unqtDot (FontSize v)           = printField "fontsize" v+  unqtDot (ForceLabels v)        = printField "forcelabels" v+  unqtDot (GradientAngle v)      = printField "gradientangle" v   unqtDot (Group v)              = printField "group" v   unqtDot (HeadURL v)            = printField "headURL" v   unqtDot (HeadClip v)           = printField "headclip" v@@ -428,8 +451,11 @@   unqtDot (Height v)             = printField "height" v   unqtDot (ID v)                 = printField "id" v   unqtDot (Image v)              = printField "image" v+  unqtDot (ImagePath v)          = printField "imagepath" v   unqtDot (ImageScale v)         = printField "imagescale" v+  unqtDot (Label v)              = printField "label" v   unqtDot (LabelURL v)           = printField "labelURL" v+  unqtDot (LabelScheme v)        = printField "label_scheme" v   unqtDot (LabelAngle v)         = printField "labelangle" v   unqtDot (LabelDistance v)      = printField "labeldistance" v   unqtDot (LabelFloat v)         = printField "labelfloat" v@@ -440,41 +466,42 @@   unqtDot (LabelLoc v)           = printField "labelloc" v   unqtDot (LabelTarget v)        = printField "labeltarget" v   unqtDot (LabelTooltip v)       = printField "labeltooltip" v-  unqtDot (Label v)              = printField "label" v   unqtDot (Landscape v)          = printField "landscape" v-  unqtDot (LayerSep v)           = printField "layersep" v-  unqtDot (Layers v)             = printField "layers" v   unqtDot (Layer v)              = printField "layer" v+  unqtDot (Layers v)             = printField "layers" v+  unqtDot (LayerSep v)           = printField "layersep" v   unqtDot (Layout v)             = printField "layout" v   unqtDot (Len v)                = printField "len" v   unqtDot (LevelsGap v)          = printField "levelsgap" v   unqtDot (Levels v)             = printField "levels" v   unqtDot (LHead v)              = printField "lhead" v+  unqtDot (LHeight v)            = printField "LHeight" v   unqtDot (LPos v)               = printField "lp" v   unqtDot (LTail v)              = printField "ltail" v+  unqtDot (LWidth v)             = printField "lwidth" v   unqtDot (Margin v)             = printField "margin" v   unqtDot (MaxIter v)            = printField "maxiter" v   unqtDot (MCLimit v)            = printField "mclimit" v   unqtDot (MinDist v)            = printField "mindist" v   unqtDot (MinLen v)             = printField "minlen" v-  unqtDot (Model v)              = printField "model" v   unqtDot (Mode v)               = printField "mode" v+  unqtDot (Model v)              = printField "model" v   unqtDot (Mosek v)              = printField "mosek" v   unqtDot (NodeSep v)            = printField "nodesep" v   unqtDot (NoJustify v)          = printField "nojustify" v   unqtDot (Normalize v)          = printField "normalize" v-  unqtDot (Nslimit1 v)           = printField "nslimit1" v   unqtDot (Nslimit v)            = printField "nslimit" v+  unqtDot (Nslimit1 v)           = printField "nslimit1" v   unqtDot (Ordering v)           = printField "ordering" v   unqtDot (Orientation v)        = printField "orientation" v   unqtDot (OutputOrder v)        = printField "outputorder" v-  unqtDot (OverlapScaling v)     = printField "overlap_scaling" v   unqtDot (Overlap v)            = printField "overlap" v-  unqtDot (PackMode v)           = printField "packmode" v+  unqtDot (OverlapScaling v)     = printField "overlap_scaling" v   unqtDot (Pack v)               = printField "pack" v+  unqtDot (PackMode v)           = printField "packmode" v   unqtDot (Pad v)                = printField "pad" v-  unqtDot (PageDir v)            = printField "pagedir" v   unqtDot (Page v)               = printField "page" v+  unqtDot (PageDir v)            = printField "pagedir" v   unqtDot (PenColor v)           = printField "pencolor" v   unqtDot (PenWidth v)           = printField "penwidth" v   unqtDot (Peripheries v)        = printField "peripheries" v@@ -482,9 +509,9 @@   unqtDot (Pos v)                = printField "pos" v   unqtDot (QuadTree v)           = printField "quadtree" v   unqtDot (Quantum v)            = printField "quantum" v+  unqtDot (Rank v)               = printField "rank" v   unqtDot (RankDir v)            = printField "rankdir" v   unqtDot (RankSep v)            = printField "ranksep" v-  unqtDot (Rank v)               = printField "rank" v   unqtDot (Ratio v)              = printField "ratio" v   unqtDot (Rects v)              = printField "rects" v   unqtDot (Regular v)            = printField "regular" v@@ -492,13 +519,15 @@   unqtDot (RepulsiveForce v)     = printField "repulsiveforce" v   unqtDot (Root v)               = printField "root" v   unqtDot (Rotate v)             = printField "rotate" v+  unqtDot (Rotation v)           = printField "rotation" v   unqtDot (SameHead v)           = printField "samehead" v   unqtDot (SameTail v)           = printField "sametail" v   unqtDot (SamplePoints v)       = printField "samplepoints" v+  unqtDot (Scale v)              = printField "scale" v   unqtDot (SearchSize v)         = printField "searchsize" v   unqtDot (Sep v)                = printField "sep" v-  unqtDot (ShapeFile v)          = printField "shapefile" v   unqtDot (Shape v)              = printField "shape" v+  unqtDot (ShapeFile v)          = printField "shapefile" v   unqtDot (ShowBoxes v)          = printField "showboxes" v   unqtDot (Sides v)              = printField "sides" v   unqtDot (Size v)               = printField "size" v@@ -507,8 +536,8 @@   unqtDot (SortV v)              = printField "sortv" v   unqtDot (Splines v)            = printField "splines" v   unqtDot (Start v)              = printField "start" v-  unqtDot (StyleSheet v)         = printField "stylesheet" v   unqtDot (Style v)              = printField "style" v+  unqtDot (StyleSheet v)         = printField "stylesheet" v   unqtDot (TailURL v)            = printField "tailURL" v   unqtDot (TailClip v)           = printField "tailclip" v   unqtDot (TailLabel v)          = printField "taillabel" v@@ -523,6 +552,7 @@   unqtDot (VoroMargin v)         = printField "voro_margin" v   unqtDot (Weight v)             = printField "weight" v   unqtDot (Width v)              = printField "width" v+  unqtDot (XLabel v)             = printField "xlabel" v   unqtDot (Z v)                  = printField "z" v   unqtDot (UnknownAttribute a v) = toDot a <> equals <> toDot v @@ -536,11 +566,11 @@                                   , parseField ArrowSize "arrowsize"                                   , parseField ArrowTail "arrowtail"                                   , parseField Aspect "aspect"-                                  , parseField Bb "bb"+                                  , parseField BoundingBox "bb"+                                  , parseField ColorScheme "colorscheme"                                   , parseField BgColor "bgcolor"                                   , parseFieldBool Center "center"                                   , parseField ClusterRank "clusterrank"-                                  , parseField ColorScheme "colorscheme"                                   , parseField Color "color"                                   , parseField Comment "comment"                                   , parseFieldBool Compound "compound"@@ -548,8 +578,8 @@                                   , parseFieldBool Constraint "constraint"                                   , parseFieldBool Decorate "decorate"                                   , parseField DefaultDist "defaultdist"-                                  , parseField Dimen "dimen"                                   , parseField Dim "dim"+                                  , parseField Dimen "dimen"                                   , parseField Dir "dir"                                   , parseFieldDef DirEdgeConstraints EdgeConstraints "diredgeconstraints"                                   , parseField Distortion "distortion"@@ -566,6 +596,8 @@                                   , parseField FontNames "fontnames"                                   , parseField FontPath "fontpath"                                   , parseField FontSize "fontsize"+                                  , parseFieldBool ForceLabels "forcelabels"+                                  , parseField GradientAngle "gradientangle"                                   , parseField Group "group"                                   , parseFields HeadURL ["headURL", "headhref"]                                   , parseFieldBool HeadClip "headclip"@@ -576,8 +608,11 @@                                   , parseField Height "height"                                   , parseField ID "id"                                   , parseField Image "image"+                                  , parseField ImagePath "imagepath"                                   , parseFieldDef ImageScale UniformScale "imagescale"+                                  , parseField Label "label"                                   , parseFields LabelURL ["labelURL", "labelhref"]+                                  , parseField LabelScheme "label_scheme"                                   , parseField LabelAngle "labelangle"                                   , parseField LabelDistance "labeldistance"                                   , parseFieldBool LabelFloat "labelfloat"@@ -588,41 +623,42 @@                                   , parseField LabelLoc "labelloc"                                   , parseField LabelTarget "labeltarget"                                   , parseField LabelTooltip "labeltooltip"-                                  , parseField Label "label"                                   , parseFieldBool Landscape "landscape"-                                  , parseField LayerSep "layersep"-                                  , parseField Layers "layers"                                   , parseField Layer "layer"+                                  , parseField Layers "layers"+                                  , parseField LayerSep "layersep"                                   , parseField Layout "layout"                                   , parseField Len "len"                                   , parseField LevelsGap "levelsgap"                                   , parseField Levels "levels"                                   , parseField LHead "lhead"+                                  , parseField LHeight "LHeight"                                   , parseField LPos "lp"                                   , parseField LTail "ltail"+                                  , parseField LWidth "lwidth"                                   , parseField Margin "margin"                                   , parseField MaxIter "maxiter"                                   , parseField MCLimit "mclimit"                                   , parseField MinDist "mindist"                                   , parseField MinLen "minlen"-                                  , parseField Model "model"                                   , parseField Mode "mode"+                                  , parseField Model "model"                                   , parseFieldBool Mosek "mosek"                                   , parseField NodeSep "nodesep"                                   , parseFieldBool NoJustify "nojustify"                                   , parseFieldBool Normalize "normalize"-                                  , parseField Nslimit1 "nslimit1"                                   , parseField Nslimit "nslimit"+                                  , parseField Nslimit1 "nslimit1"                                   , parseField Ordering "ordering"                                   , parseField Orientation "orientation"                                   , parseField OutputOrder "outputorder"-                                  , parseField OverlapScaling "overlap_scaling"                                   , parseFieldDef Overlap KeepOverlaps "overlap"-                                  , parseField PackMode "packmode"+                                  , parseField OverlapScaling "overlap_scaling"                                   , parseFieldDef Pack DoPack "pack"+                                  , parseField PackMode "packmode"                                   , parseField Pad "pad"-                                  , parseField PageDir "pagedir"                                   , parseField Page "page"+                                  , parseField PageDir "pagedir"                                   , parseField PenColor "pencolor"                                   , parseField PenWidth "penwidth"                                   , parseField Peripheries "peripheries"@@ -630,9 +666,9 @@                                   , parseField Pos "pos"                                   , parseFieldDef QuadTree NormalQT "quadtree"                                   , parseField Quantum "quantum"+                                  , parseField Rank "rank"                                   , parseField RankDir "rankdir"                                   , parseField RankSep "ranksep"-                                  , parseField Rank "rank"                                   , parseField Ratio "ratio"                                   , parseField Rects "rects"                                   , parseFieldBool Regular "regular"@@ -640,13 +676,15 @@                                   , parseField RepulsiveForce "repulsiveforce"                                   , parseFieldDef Root IsCentral "root"                                   , parseField Rotate "rotate"+                                  , parseField Rotation "rotation"                                   , parseField SameHead "samehead"                                   , parseField SameTail "sametail"                                   , parseField SamplePoints "samplepoints"+                                  , parseField Scale "scale"                                   , parseField SearchSize "searchsize"                                   , parseField Sep "sep"-                                  , parseField ShapeFile "shapefile"                                   , parseField Shape "shape"+                                  , parseField ShapeFile "shapefile"                                   , parseField ShowBoxes "showboxes"                                   , parseField Sides "sides"                                   , parseField Size "size"@@ -655,8 +693,8 @@                                   , parseField SortV "sortv"                                   , parseFieldDef Splines SplineEdges "splines"                                   , parseField Start "start"-                                  , parseField StyleSheet "stylesheet"                                   , parseField Style "style"+                                  , parseField StyleSheet "stylesheet"                                   , parseFields TailURL ["tailURL", "tailhref"]                                   , parseFieldBool TailClip "tailclip"                                   , parseField TailLabel "taillabel"@@ -671,6 +709,7 @@                                   , parseField VoroMargin "voro_margin"                                   , parseField Weight "weight"                                   , parseField Width "width"+                                  , parseField XLabel "xlabel"                                   , parseField Z "z"                                   ])               `onFail`@@ -686,17 +725,17 @@ usedByGraphs K{}                  = True usedByGraphs URL{}                = True usedByGraphs Aspect{}             = True-usedByGraphs Bb{}                 = True+usedByGraphs BoundingBox{}        = True+usedByGraphs ColorScheme{}        = True usedByGraphs BgColor{}            = True usedByGraphs Center{}             = True usedByGraphs ClusterRank{}        = True-usedByGraphs ColorScheme{}        = True usedByGraphs Comment{}            = True usedByGraphs Compound{}           = True usedByGraphs Concentrate{}        = True usedByGraphs DefaultDist{}        = True-usedByGraphs Dimen{}              = True usedByGraphs Dim{}                = True+usedByGraphs Dimen{}              = True usedByGraphs DirEdgeConstraints{} = True usedByGraphs DPI{}                = True usedByGraphs Epsilon{}            = True@@ -706,38 +745,44 @@ usedByGraphs FontNames{}          = True usedByGraphs FontPath{}           = True usedByGraphs FontSize{}           = True+usedByGraphs ForceLabels{}        = True+usedByGraphs GradientAngle{}      = True usedByGraphs ID{}                 = True+usedByGraphs ImagePath{}          = True+usedByGraphs Label{}              = True+usedByGraphs LabelScheme{}        = True usedByGraphs LabelJust{}          = True usedByGraphs LabelLoc{}           = True-usedByGraphs Label{}              = True usedByGraphs Landscape{}          = True-usedByGraphs LayerSep{}           = True usedByGraphs Layers{}             = True+usedByGraphs LayerSep{}           = True usedByGraphs Layout{}             = True usedByGraphs LevelsGap{}          = True usedByGraphs Levels{}             = True+usedByGraphs LHeight{}            = True usedByGraphs LPos{}               = True+usedByGraphs LWidth{}             = True usedByGraphs Margin{}             = True usedByGraphs MaxIter{}            = True usedByGraphs MCLimit{}            = True usedByGraphs MinDist{}            = True-usedByGraphs Model{}              = True usedByGraphs Mode{}               = True+usedByGraphs Model{}              = True usedByGraphs Mosek{}              = True usedByGraphs NodeSep{}            = True usedByGraphs NoJustify{}          = True usedByGraphs Normalize{}          = True-usedByGraphs Nslimit1{}           = True usedByGraphs Nslimit{}            = True+usedByGraphs Nslimit1{}           = True usedByGraphs Ordering{}           = True usedByGraphs OutputOrder{}        = True-usedByGraphs OverlapScaling{}     = True usedByGraphs Overlap{}            = True-usedByGraphs PackMode{}           = True+usedByGraphs OverlapScaling{}     = True usedByGraphs Pack{}               = True+usedByGraphs PackMode{}           = True usedByGraphs Pad{}                = True-usedByGraphs PageDir{}            = True usedByGraphs Page{}               = True+usedByGraphs PageDir{}            = True usedByGraphs QuadTree{}           = True usedByGraphs Quantum{}            = True usedByGraphs RankDir{}            = True@@ -747,6 +792,8 @@ usedByGraphs RepulsiveForce{}     = True usedByGraphs Root{}               = True usedByGraphs Rotate{}             = True+usedByGraphs Rotation{}           = True+usedByGraphs Scale{}              = True usedByGraphs SearchSize{}         = True usedByGraphs Sep{}                = True usedByGraphs ShowBoxes{}          = True@@ -767,17 +814,20 @@ usedByClusters                    :: Attribute -> Bool usedByClusters K{}                = True usedByClusters URL{}              = True-usedByClusters BgColor{}          = True usedByClusters ColorScheme{}      = True+usedByClusters BgColor{}          = True usedByClusters Color{}            = True usedByClusters FillColor{}        = True usedByClusters FontColor{}        = True usedByClusters FontName{}         = True usedByClusters FontSize{}         = True+usedByClusters GradientAngle{}    = True+usedByClusters Label{}            = True usedByClusters LabelJust{}        = True usedByClusters LabelLoc{}         = True-usedByClusters Label{}            = True+usedByClusters LHeight{}          = True usedByClusters LPos{}             = True+usedByClusters LWidth{}           = True usedByClusters NoJustify{}        = True usedByClusters PenColor{}         = True usedByClusters PenWidth{}         = True@@ -808,16 +858,18 @@ usedByNodes FontColor{}        = True usedByNodes FontName{}         = True usedByNodes FontSize{}         = True+usedByNodes GradientAngle{}    = True usedByNodes Group{}            = True usedByNodes Height{}           = True usedByNodes ID{}               = True usedByNodes Image{}            = True usedByNodes ImageScale{}       = True-usedByNodes LabelLoc{}         = True usedByNodes Label{}            = True+usedByNodes LabelLoc{}         = True usedByNodes Layer{}            = True usedByNodes Margin{}           = True usedByNodes NoJustify{}        = True+usedByNodes Ordering{}         = True usedByNodes Orientation{}      = True usedByNodes PenWidth{}         = True usedByNodes Peripheries{}      = True@@ -827,8 +879,8 @@ usedByNodes Regular{}          = True usedByNodes Root{}             = True usedByNodes SamplePoints{}     = True-usedByNodes ShapeFile{}        = True usedByNodes Shape{}            = True+usedByNodes ShapeFile{}        = True usedByNodes ShowBoxes{}        = True usedByNodes Sides{}            = True usedByNodes Skew{}             = True@@ -838,6 +890,7 @@ usedByNodes Tooltip{}          = True usedByNodes Vertices{}         = True usedByNodes Width{}            = True+usedByNodes XLabel{}           = True usedByNodes Z{}                = True usedByNodes UnknownAttribute{} = True usedByNodes _                  = False@@ -857,6 +910,7 @@ usedByEdges EdgeURL{}          = True usedByEdges EdgeTarget{}       = True usedByEdges EdgeTooltip{}      = True+usedByEdges FillColor{}        = True usedByEdges FontColor{}        = True usedByEdges FontName{}         = True usedByEdges FontSize{}         = True@@ -867,6 +921,7 @@ usedByEdges HeadTarget{}       = True usedByEdges HeadTooltip{}      = True usedByEdges ID{}               = True+usedByEdges Label{}            = True usedByEdges LabelURL{}         = True usedByEdges LabelAngle{}       = True usedByEdges LabelDistance{}    = True@@ -876,7 +931,6 @@ usedByEdges LabelFontSize{}    = True usedByEdges LabelTarget{}      = True usedByEdges LabelTooltip{}     = True-usedByEdges Label{}            = True usedByEdges Layer{}            = True usedByEdges Len{}              = True usedByEdges LHead{}            = True@@ -899,6 +953,7 @@ usedByEdges Target{}           = True usedByEdges Tooltip{}          = True usedByEdges Weight{}           = True+usedByEdges XLabel{}           = True usedByEdges UnknownAttribute{} = True usedByEdges _                  = False @@ -911,11 +966,11 @@ sameAttribute ArrowSize{}             ArrowSize{}             = True sameAttribute ArrowTail{}             ArrowTail{}             = True sameAttribute Aspect{}                Aspect{}                = True-sameAttribute Bb{}                    Bb{}                    = True+sameAttribute BoundingBox{}           BoundingBox{}           = True+sameAttribute ColorScheme{}           ColorScheme{}           = True sameAttribute BgColor{}               BgColor{}               = True sameAttribute Center{}                Center{}                = True sameAttribute ClusterRank{}           ClusterRank{}           = True-sameAttribute ColorScheme{}           ColorScheme{}           = True sameAttribute Color{}                 Color{}                 = True sameAttribute Comment{}               Comment{}               = True sameAttribute Compound{}              Compound{}              = True@@ -923,8 +978,8 @@ sameAttribute Constraint{}            Constraint{}            = True sameAttribute Decorate{}              Decorate{}              = True sameAttribute DefaultDist{}           DefaultDist{}           = True-sameAttribute Dimen{}                 Dimen{}                 = True sameAttribute Dim{}                   Dim{}                   = True+sameAttribute Dimen{}                 Dimen{}                 = True sameAttribute Dir{}                   Dir{}                   = True sameAttribute DirEdgeConstraints{}    DirEdgeConstraints{}    = True sameAttribute Distortion{}            Distortion{}            = True@@ -941,6 +996,8 @@ sameAttribute FontNames{}             FontNames{}             = True sameAttribute FontPath{}              FontPath{}              = True sameAttribute FontSize{}              FontSize{}              = True+sameAttribute ForceLabels{}           ForceLabels{}           = True+sameAttribute GradientAngle{}         GradientAngle{}         = True sameAttribute Group{}                 Group{}                 = True sameAttribute HeadURL{}               HeadURL{}               = True sameAttribute HeadClip{}              HeadClip{}              = True@@ -951,8 +1008,11 @@ sameAttribute Height{}                Height{}                = True sameAttribute ID{}                    ID{}                    = True sameAttribute Image{}                 Image{}                 = True+sameAttribute ImagePath{}             ImagePath{}             = True sameAttribute ImageScale{}            ImageScale{}            = True+sameAttribute Label{}                 Label{}                 = True sameAttribute LabelURL{}              LabelURL{}              = True+sameAttribute LabelScheme{}           LabelScheme{}           = True sameAttribute LabelAngle{}            LabelAngle{}            = True sameAttribute LabelDistance{}         LabelDistance{}         = True sameAttribute LabelFloat{}            LabelFloat{}            = True@@ -963,41 +1023,42 @@ sameAttribute LabelLoc{}              LabelLoc{}              = True sameAttribute LabelTarget{}           LabelTarget{}           = True sameAttribute LabelTooltip{}          LabelTooltip{}          = True-sameAttribute Label{}                 Label{}                 = True sameAttribute Landscape{}             Landscape{}             = True-sameAttribute LayerSep{}              LayerSep{}              = True-sameAttribute Layers{}                Layers{}                = True sameAttribute Layer{}                 Layer{}                 = True+sameAttribute Layers{}                Layers{}                = True+sameAttribute LayerSep{}              LayerSep{}              = True sameAttribute Layout{}                Layout{}                = True sameAttribute Len{}                   Len{}                   = True sameAttribute LevelsGap{}             LevelsGap{}             = True sameAttribute Levels{}                Levels{}                = True sameAttribute LHead{}                 LHead{}                 = True+sameAttribute LHeight{}               LHeight{}               = True sameAttribute LPos{}                  LPos{}                  = True sameAttribute LTail{}                 LTail{}                 = True+sameAttribute LWidth{}                LWidth{}                = True sameAttribute Margin{}                Margin{}                = True sameAttribute MaxIter{}               MaxIter{}               = True sameAttribute MCLimit{}               MCLimit{}               = True sameAttribute MinDist{}               MinDist{}               = True sameAttribute MinLen{}                MinLen{}                = True-sameAttribute Model{}                 Model{}                 = True sameAttribute Mode{}                  Mode{}                  = True+sameAttribute Model{}                 Model{}                 = True sameAttribute Mosek{}                 Mosek{}                 = True sameAttribute NodeSep{}               NodeSep{}               = True sameAttribute NoJustify{}             NoJustify{}             = True sameAttribute Normalize{}             Normalize{}             = True-sameAttribute Nslimit1{}              Nslimit1{}              = True sameAttribute Nslimit{}               Nslimit{}               = True+sameAttribute Nslimit1{}              Nslimit1{}              = True sameAttribute Ordering{}              Ordering{}              = True sameAttribute Orientation{}           Orientation{}           = True sameAttribute OutputOrder{}           OutputOrder{}           = True-sameAttribute OverlapScaling{}        OverlapScaling{}        = True sameAttribute Overlap{}               Overlap{}               = True-sameAttribute PackMode{}              PackMode{}              = True+sameAttribute OverlapScaling{}        OverlapScaling{}        = True sameAttribute Pack{}                  Pack{}                  = True+sameAttribute PackMode{}              PackMode{}              = True sameAttribute Pad{}                   Pad{}                   = True-sameAttribute PageDir{}               PageDir{}               = True sameAttribute Page{}                  Page{}                  = True+sameAttribute PageDir{}               PageDir{}               = True sameAttribute PenColor{}              PenColor{}              = True sameAttribute PenWidth{}              PenWidth{}              = True sameAttribute Peripheries{}           Peripheries{}           = True@@ -1005,9 +1066,9 @@ sameAttribute Pos{}                   Pos{}                   = True sameAttribute QuadTree{}              QuadTree{}              = True sameAttribute Quantum{}               Quantum{}               = True+sameAttribute Rank{}                  Rank{}                  = True sameAttribute RankDir{}               RankDir{}               = True sameAttribute RankSep{}               RankSep{}               = True-sameAttribute Rank{}                  Rank{}                  = True sameAttribute Ratio{}                 Ratio{}                 = True sameAttribute Rects{}                 Rects{}                 = True sameAttribute Regular{}               Regular{}               = True@@ -1015,13 +1076,15 @@ sameAttribute RepulsiveForce{}        RepulsiveForce{}        = True sameAttribute Root{}                  Root{}                  = True sameAttribute Rotate{}                Rotate{}                = True+sameAttribute Rotation{}              Rotation{}              = True sameAttribute SameHead{}              SameHead{}              = True sameAttribute SameTail{}              SameTail{}              = True sameAttribute SamplePoints{}          SamplePoints{}          = True+sameAttribute Scale{}                 Scale{}                 = True sameAttribute SearchSize{}            SearchSize{}            = True sameAttribute Sep{}                   Sep{}                   = True-sameAttribute ShapeFile{}             ShapeFile{}             = True sameAttribute Shape{}                 Shape{}                 = True+sameAttribute ShapeFile{}             ShapeFile{}             = True sameAttribute ShowBoxes{}             ShowBoxes{}             = True sameAttribute Sides{}                 Sides{}                 = True sameAttribute Size{}                  Size{}                  = True@@ -1030,8 +1093,8 @@ sameAttribute SortV{}                 SortV{}                 = True sameAttribute Splines{}               Splines{}               = True sameAttribute Start{}                 Start{}                 = True-sameAttribute StyleSheet{}            StyleSheet{}            = True sameAttribute Style{}                 Style{}                 = True+sameAttribute StyleSheet{}            StyleSheet{}            = True sameAttribute TailURL{}               TailURL{}               = True sameAttribute TailClip{}              TailClip{}              = True sameAttribute TailLabel{}             TailLabel{}             = True@@ -1046,6 +1109,7 @@ sameAttribute VoroMargin{}            VoroMargin{}            = True sameAttribute Weight{}                Weight{}                = True sameAttribute Width{}                 Width{}                 = True+sameAttribute XLabel{}                XLabel{}                = True sameAttribute Z{}                     Z{}                     = True sameAttribute (UnknownAttribute a1 _) (UnknownAttribute a2 _) = a1 == a2 sameAttribute _                       _                       = False@@ -1058,28 +1122,30 @@ defaultAttributeValue ArrowHead{}          = Just $ ArrowHead normal defaultAttributeValue ArrowSize{}          = Just $ ArrowSize 1 defaultAttributeValue ArrowTail{}          = Just $ ArrowTail normal-defaultAttributeValue BgColor{}            = Just $ BgColor (X11Color Transparent)+defaultAttributeValue ColorScheme{}        = Just $ ColorScheme X11+defaultAttributeValue BgColor{}            = Just $ BgColor [X11Color Transparent] defaultAttributeValue Center{}             = Just $ Center False defaultAttributeValue ClusterRank{}        = Just $ ClusterRank Local-defaultAttributeValue ColorScheme{}        = Just $ ColorScheme X11 defaultAttributeValue Color{}              = Just $ Color [X11Color Black] defaultAttributeValue Comment{}            = Just $ Comment "" defaultAttributeValue Compound{}           = Just $ Compound False defaultAttributeValue Concentrate{}        = Just $ Concentrate False defaultAttributeValue Constraint{}         = Just $ Constraint True defaultAttributeValue Decorate{}           = Just $ Decorate False-defaultAttributeValue Dimen{}              = Just $ Dimen 2 defaultAttributeValue Dim{}                = Just $ Dim 2+defaultAttributeValue Dimen{}              = Just $ Dimen 2 defaultAttributeValue DirEdgeConstraints{} = Just $ DirEdgeConstraints NoConstraints defaultAttributeValue Distortion{}         = Just $ Distortion 0 defaultAttributeValue EdgeURL{}            = Just $ EdgeURL "" defaultAttributeValue ESep{}               = Just $ ESep (DVal 3)-defaultAttributeValue FillColor{}          = Just $ FillColor (X11Color Black)+defaultAttributeValue FillColor{}          = Just $ FillColor [X11Color Black] defaultAttributeValue FixedSize{}          = Just $ FixedSize False defaultAttributeValue FontColor{}          = Just $ FontColor (X11Color Black) defaultAttributeValue FontName{}           = Just $ FontName "Times-Roman" defaultAttributeValue FontNames{}          = Just $ FontNames "" defaultAttributeValue FontSize{}           = Just $ FontSize 14+defaultAttributeValue ForceLabels{}        = Just $ ForceLabels False+defaultAttributeValue GradientAngle{}      = Just $ GradientAngle 0 defaultAttributeValue Group{}              = Just $ Group "" defaultAttributeValue HeadURL{}            = Just $ HeadURL "" defaultAttributeValue HeadClip{}           = Just $ HeadClip True@@ -1088,10 +1154,13 @@ defaultAttributeValue HeadTarget{}         = Just $ HeadTarget "" defaultAttributeValue HeadTooltip{}        = Just $ HeadTooltip "" defaultAttributeValue Height{}             = Just $ Height 0.5-defaultAttributeValue ID{}                 = Just $ ID (StrLabel "")+defaultAttributeValue ID{}                 = Just $ ID "" defaultAttributeValue Image{}              = Just $ Image ""+defaultAttributeValue ImagePath{}          = Just $ ImagePath (Paths []) defaultAttributeValue ImageScale{}         = Just $ ImageScale NoScale+defaultAttributeValue Label{}              = Just $ Label (StrLabel "") defaultAttributeValue LabelURL{}           = Just $ LabelURL ""+defaultAttributeValue LabelScheme{}        = Just $ LabelScheme NotEdgeLabel defaultAttributeValue LabelAngle{}         = Just $ LabelAngle (-25) defaultAttributeValue LabelDistance{}      = Just $ LabelDistance 1 defaultAttributeValue LabelFloat{}         = Just $ LabelFloat False@@ -1102,10 +1171,9 @@ defaultAttributeValue LabelLoc{}           = Just $ LabelLoc VTop defaultAttributeValue LabelTarget{}        = Just $ LabelTarget "" defaultAttributeValue LabelTooltip{}       = Just $ LabelTooltip ""-defaultAttributeValue Label{}              = Just $ Label (StrLabel "") defaultAttributeValue Landscape{}          = Just $ Landscape False-defaultAttributeValue LayerSep{}           = Just $ LayerSep (LSep " :\t") defaultAttributeValue Layers{}             = Just $ Layers (LL [])+defaultAttributeValue LayerSep{}           = Just $ LayerSep (LSep " :\t") defaultAttributeValue Layout{}             = Just $ Layout "" defaultAttributeValue LevelsGap{}          = Just $ LevelsGap 0 defaultAttributeValue Levels{}             = Just $ Levels maxBound@@ -1114,19 +1182,18 @@ defaultAttributeValue MCLimit{}            = Just $ MCLimit 1 defaultAttributeValue MinDist{}            = Just $ MinDist 1 defaultAttributeValue MinLen{}             = Just $ MinLen 1-defaultAttributeValue Model{}              = Just $ Model ShortPath defaultAttributeValue Mode{}               = Just $ Mode Major+defaultAttributeValue Model{}              = Just $ Model ShortPath defaultAttributeValue Mosek{}              = Just $ Mosek False defaultAttributeValue NodeSep{}            = Just $ NodeSep 0.25 defaultAttributeValue NoJustify{}          = Just $ NoJustify False defaultAttributeValue Normalize{}          = Just $ Normalize False-defaultAttributeValue Ordering{}           = Just $ Ordering "" defaultAttributeValue Orientation{}        = Just $ Orientation 0 defaultAttributeValue OutputOrder{}        = Just $ OutputOrder BreadthFirst-defaultAttributeValue OverlapScaling{}     = Just $ OverlapScaling (-4) defaultAttributeValue Overlap{}            = Just $ Overlap KeepOverlaps-defaultAttributeValue PackMode{}           = Just $ PackMode PackNode+defaultAttributeValue OverlapScaling{}     = Just $ OverlapScaling (-4) defaultAttributeValue Pack{}               = Just $ Pack DontPack+defaultAttributeValue PackMode{}           = Just $ PackMode PackNode defaultAttributeValue Pad{}                = Just $ Pad (DVal 0.0555) defaultAttributeValue PageDir{}            = Just $ PageDir Bl defaultAttributeValue PenColor{}           = Just $ PenColor (X11Color Black)@@ -1141,12 +1208,13 @@ defaultAttributeValue RepulsiveForce{}     = Just $ RepulsiveForce 1 defaultAttributeValue Root{}               = Just $ Root (NodeName "") defaultAttributeValue Rotate{}             = Just $ Rotate 0+defaultAttributeValue Rotation{}           = Just $ Rotation 0 defaultAttributeValue SameHead{}           = Just $ SameHead "" defaultAttributeValue SameTail{}           = Just $ SameTail "" defaultAttributeValue SearchSize{}         = Just $ SearchSize 30 defaultAttributeValue Sep{}                = Just $ Sep (DVal 4)-defaultAttributeValue ShapeFile{}          = Just $ ShapeFile "" defaultAttributeValue Shape{}              = Just $ Shape Ellipse+defaultAttributeValue ShapeFile{}          = Just $ ShapeFile "" defaultAttributeValue ShowBoxes{}          = Just $ ShowBoxes 0 defaultAttributeValue Sides{}              = Just $ Sides 4 defaultAttributeValue Skew{}               = Just $ Skew 0@@ -1164,6 +1232,7 @@ defaultAttributeValue Tooltip{}            = Just $ Tooltip "" defaultAttributeValue VoroMargin{}         = Just $ VoroMargin 0.05 defaultAttributeValue Width{}              = Just $ Width 0.75+defaultAttributeValue XLabel{}             = Just $ XLabel (StrLabel "") defaultAttributeValue Z{}                  = Just $ Z 0 defaultAttributeValue _                    = Nothing @@ -1182,10 +1251,10 @@                , "arrowtail"                , "aspect"                , "bb"+               , "colorscheme"                , "bgcolor"                , "center"                , "clusterrank"-               , "colorscheme"                , "color"                , "comment"                , "compound"@@ -1193,8 +1262,8 @@                , "constraint"                , "decorate"                , "defaultdist"-               , "dimen"                , "dim"+               , "dimen"                , "dir"                , "diredgeconstraints"                , "distortion"@@ -1213,6 +1282,8 @@                , "fontnames"                , "fontpath"                , "fontsize"+               , "forcelabels"+               , "gradientangle"                , "group"                , "headURL"                , "headhref"@@ -1224,9 +1295,12 @@                , "height"                , "id"                , "image"+               , "imagepath"                , "imagescale"+               , "label"                , "labelURL"                , "labelhref"+               , "label_scheme"                , "labelangle"                , "labeldistance"                , "labelfloat"@@ -1237,41 +1311,42 @@                , "labelloc"                , "labeltarget"                , "labeltooltip"-               , "label"                , "landscape"-               , "layersep"-               , "layers"                , "layer"+               , "layers"+               , "layersep"                , "layout"                , "len"                , "levelsgap"                , "levels"                , "lhead"+               , "LHeight"                , "lp"                , "ltail"+               , "lwidth"                , "margin"                , "maxiter"                , "mclimit"                , "mindist"                , "minlen"-               , "model"                , "mode"+               , "model"                , "mosek"                , "nodesep"                , "nojustify"                , "normalize"-               , "nslimit1"                , "nslimit"+               , "nslimit1"                , "ordering"                , "orientation"                , "outputorder"-               , "overlap_scaling"                , "overlap"-               , "packmode"+               , "overlap_scaling"                , "pack"+               , "packmode"                , "pad"-               , "pagedir"                , "page"+               , "pagedir"                , "pencolor"                , "penwidth"                , "peripheries"@@ -1279,9 +1354,9 @@                , "pos"                , "quadtree"                , "quantum"+               , "rank"                , "rankdir"                , "ranksep"-               , "rank"                , "ratio"                , "rects"                , "regular"@@ -1289,13 +1364,15 @@                , "repulsiveforce"                , "root"                , "rotate"+               , "rotation"                , "samehead"                , "sametail"                , "samplepoints"+               , "scale"                , "searchsize"                , "sep"-               , "shapefile"                , "shape"+               , "shapefile"                , "showboxes"                , "sides"                , "size"@@ -1304,8 +1381,8 @@                , "sortv"                , "splines"                , "start"-               , "stylesheet"                , "style"+               , "stylesheet"                , "tailURL"                , "tailhref"                , "tailclip"@@ -1321,6 +1398,7 @@                , "voro_margin"                , "weight"                , "width"+               , "xlabel"                , "z"                , "charset" -- Defined upstream, just not used here.                ])@@ -1614,7 +1692,7 @@    parse = quotedParse parseUnqt -  parseUnqtList = sepBy1 parseUnqt whitespace+  parseUnqtList = sepBy1 parseUnqt whitespace1  -- ----------------------------------------------------------------------------- @@ -1742,12 +1820,12 @@ -- -----------------------------------------------------------------------------  data Label = StrLabel EscString-           | HtmlLabel HtmlLabel -- ^ If 'PlainText' is used, the-                                 --   'HtmlLabel' value is the entire-                                 --   \"shape\"; if anything else-                                 --   except 'PointShape' is used then-                                 --   the 'HtmlLabel' is embedded-                                 --   within the shape.+           | HtmlLabel Html.Label -- ^ If 'PlainText' is used, the+                                  --   'Html.Label' value is the entire+                                  --   \"shape\"; if anything else+                                  --   except 'PointShape' is used then+                                  --   the 'Html.Label' is embedded+                                  --   within the shape.            | RecordLabel RecordFields -- ^ For nodes only; requires                                       --   either 'Record' or                                       --   'MRecord' as the shape.@@ -1811,7 +1889,7 @@  instance ParseDot RecordField where   parseUnqt = do t <- liftM PN $ parseAngled parseRecord-                 ml <- optional (whitespace >> parseRecord)+                 ml <- optional (whitespace1 >> parseRecord)                  return $ maybe (PortName t)                                 (LabelledTarget t)                                 ml@@ -1850,6 +1928,30 @@  -- ----------------------------------------------------------------------------- +-- | How to treat a node whose name is of the form @|edgelabel|*" as a+--   special node representing an edge label.+data LabelScheme = NotEdgeLabel        -- ^ No effect+                 | CloseToCenter       -- ^ Make node close to center of neighbor+                 | CloseToOldCenter    -- ^ Make node close to old center of neighbor+                 | RemoveAndStraighten -- ^ Use a two-step process.+                 deriving (Eq, Ord, Bounded, Enum, Show, Read)++instance PrintDot LabelScheme where+  unqtDot NotEdgeLabel        = int 0+  unqtDot CloseToCenter       = int 1+  unqtDot CloseToOldCenter    = int 2+  unqtDot RemoveAndStraighten = int 3++instance ParseDot LabelScheme where+  -- Use string-based parsing rather than parsing an integer just to make it easier+  parseUnqt = stringValue [ ("0", NotEdgeLabel)+                          , ("1", CloseToCenter)+                          , ("2", CloseToOldCenter)+                          , ("3", RemoveAndStraighten)+                          ]++-- -----------------------------------------------------------------------------+ data Point = Point { xCoord   :: Double                    , yCoord   :: Double                       -- | Can only be 'Just' for @'Dim' 3@ or greater.@@ -1886,12 +1988,11 @@    parse = quotedParse parseUnqt -  parseUnqtList = sepBy1 parseUnqt whitespace+  parseUnqtList = sepBy1 parseUnqt whitespace1  -- -----------------------------------------------------------------------------  data Overlap = KeepOverlaps-             | RemoveOverlaps              | ScaleOverlaps              | ScaleXYOverlaps              | PrismOverlap (Maybe Word16) -- ^ Only when sfdp is@@ -1905,7 +2006,6 @@  instance PrintDot Overlap where   unqtDot KeepOverlaps     = unqtDot True-  unqtDot RemoveOverlaps   = unqtDot False   unqtDot ScaleOverlaps    = text "scale"   unqtDot ScaleXYOverlaps  = text "scalexy"   unqtDot (PrismOverlap i) = maybe id (flip (<>) . unqtDot) i $ text "prism"@@ -1915,10 +2015,10 @@  instance ParseDot Overlap where   parseUnqt = oneOf [ stringRep KeepOverlaps "true"-                    , stringRep RemoveOverlaps "false"                     , stringRep ScaleXYOverlaps "scalexy"                     , stringRep ScaleOverlaps "scale"                     , string "prism" >> liftM PrismOverlap (optional parse)+                    , stringRep (PrismOverlap Nothing) "false"                     , stringRep CompressOverlap "compress"                     , stringRep VpscOverlap "vpsc"                     , stringRep IpsepOverlap "ipsep"@@ -2049,6 +2149,21 @@  -- ----------------------------------------------------------------------------- +data Order = OutEdges -- ^ Draw outgoing edges in order specified.+           | InEdges  -- ^ Draw incoming edges in order specified.+           deriving (Eq, Ord, Bounded, Enum, Show, Read)++instance PrintDot Order where+  unqtDot OutEdges = text "out"+  unqtDot InEdges  = text "in"++instance ParseDot Order where+  parseUnqt = oneOf [ stringRep OutEdges "out"+                    , stringRep InEdges  "in"+                    ]++-- -----------------------------------------------------------------------------+ data OutputMode = BreadthFirst | NodesFirst | EdgesFirst                 deriving (Eq, Ord, Bounded, Enum, Show, Read) @@ -2237,12 +2352,12 @@ instance ParseDot Spline where   parseUnqt = do ms <- parseP 's'                  me <- parseP 'e'-                 ps <- sepBy1 parseUnqt whitespace+                 ps <- sepBy1 parseUnqt whitespace1                  return $ Spline ms me ps       where         parseP t = optional $ do character t                                  parseComma-                                 parseUnqt `discard` whitespace+                                 parseUnqt `discard` whitespace1    parse = quotedParse parseUnqt @@ -2569,6 +2684,11 @@                | Filled    -- ^ Nodes and Clusters                | Diagonals -- ^ Nodes only                | Rounded   -- ^ Nodes and Clusters+               | Tapered   -- ^ Edges only; requires Graphviz >=+                           --   2.29.0.+               | Radial    -- ^ Nodes, Clusters and Graphs, for use+                           --   with 'GradientAngle'; requires+                           --   Graphviz >= 2.29.0.                | DD Text   -- ^ Device Dependent                deriving (Eq, Ord, Show, Read) @@ -2581,6 +2701,8 @@   unqtDot Filled    = text "filled"   unqtDot Diagonals = text "diagonals"   unqtDot Rounded   = text "rounded"+  unqtDot Tapered   = text "tapered"+  unqtDot Radial    = text "radial"   unqtDot (DD nm)   = unqtDot nm    toDot (DD nm) = toDot nm@@ -2603,6 +2725,8 @@                 "filled"    -> Filled                 "diagonals" -> Diagonals                 "rounded"   -> Rounded+                "tapered"   -> Tapered+                "radial"    -> Radial                 _           -> DD str  parseStyleName :: Parse Text@@ -2682,6 +2806,24 @@                     , stringRep VCenter "c"                     , stringRep VBottom "b"                     ]++-- -----------------------------------------------------------------------------++newtype Paths = Paths { paths :: [FilePath] }+    deriving (Eq, Ord, Show, Read)++instance PrintDot Paths where+    unqtDot = unqtDot . intercalate [searchPathSeparator] . paths++    toDot (Paths [p]) = toDot p+    toDot ps          = dquotes $ unqtDot ps++instance ParseDot Paths where+    parseUnqt = liftM (Paths . splitSearchPath) parseUnqt++    parse = quotedParse parseUnqt+            `onFail`+            liftM (Paths . (:[]) . T.unpack) quotelessString  -- ----------------------------------------------------------------------------- 
Data/GraphViz/Attributes/HTML.hs view
@@ -7,11 +7,12 @@    License     : 3-Clause BSD-style    Maintainer  : Ivan.Miljenovic@gmail.com -   This module defines the syntax for HTML-like values for use in-   Graphviz.  Please note that these values are /not/ really HTML, but-   the term \"HTML\" is used throughout as it is less cumbersome than-   \"HTML-like\".  To be able to use this, the version of Graphviz must-   be at least 1.10.  For more information, please see:+   This module is written to be imported qualified.  It defines the+   syntax for HTML-like values for use in Graphviz.  Please note that+   these values are /not/ really HTML, but the term \"HTML\" is used+   throughout as it is less cumbersome than \"HTML-like\".  To be able+   to use this, the version of Graphviz must be at least 1.10.  For+   more information, please see:        <http://graphviz.org/doc/info/shapes.html#html>     The actual definition of the syntax specifies that these types must@@ -51,18 +52,19 @@  -} module Data.GraphViz.Attributes.HTML-       ( HtmlLabel(..)-       , HtmlText-       , HtmlTextItem(..)-       , HtmlTable(..)-       , HtmlRow(..)-       , HtmlCell(..)-       , HtmlImg(..)-       , HtmlAttributes-       , HtmlAttribute(..)-       , HtmlAlign(..)-       , HtmlVAlign(..)-       , HtmlScale(..)+       ( Label(..)+       , Text+       , TextItem(..)+       , Format(..)+       , Table(..)+       , Row(..)+       , Cell(..)+       , Img(..)+       , Attributes+       , Attribute(..)+       , Align(..)+       , VAlign(..)+       , Scale(..)        ) where  import Data.GraphViz.Parsing@@ -79,293 +81,329 @@ import Data.Word(Word8, Word16) import qualified Data.Map as Map import qualified Data.Text.Lazy as T-import Data.Text.Lazy(Text) import Control.Monad(liftM, liftM2)  -- -----------------------------------------------------------------------------  -- | The overall type for HTML-like labels.  Fundamentally, HTML-like --   values in Graphviz are either textual (i.e. a single element with---   formatting) or a table.  Note that 'HtmlLabel' values can be---   nested via 'HtmlLabelCell'.-data HtmlLabel = HtmlText HtmlText-               | HtmlTable HtmlTable-               deriving (Eq, Ord, Show, Read)+--   formatting) or a table.  Note that 'Label' values can be+--   nested via 'LabelCell'.+data Label = Text  Text+           | Table Table+           deriving (Eq, Ord, Show, Read) -instance PrintDot HtmlLabel where-  unqtDot (HtmlText txt)  = unqtDot txt-  unqtDot (HtmlTable tbl) = unqtDot tbl+instance PrintDot Label where+  unqtDot (Text txt)  = unqtDot txt+  unqtDot (Table tbl) = unqtDot tbl -instance ParseDot HtmlLabel where-  -- Try parsing HtmlTable first in case of a FONT tag being used.-  parseUnqt = liftM HtmlTable parseUnqt+instance ParseDot Label where+  -- Try parsing Table first in case of a FONT tag being used.+  parseUnqt = liftM Table parseUnqt               `onFail`-              liftM HtmlText parseUnqt+              liftM Text parseUnqt               `adjustErr`-              ("Can't parse HtmlLabel\n\t"++)+              ("Can't parse Html.Label\n\t"++)    parse = parseUnqt  -- | Represents a textual component of an HTML-like label.  It is---   assumed that an 'HtmlText' list is non-empty.  It is preferable---   to \"group\" 'HtmlStr' values together rather than have+--   assumed that a 'Text' list is non-empty.  It is preferable+--   to \"group\" 'Str' values together rather than have --   individual ones.  Note that when printing, the individual values --   are concatenated together without spaces, and when parsing---   anything that isn't a tag is assumed to be an 'HtmlStr': that is,+--   anything that isn't a tag is assumed to be a 'Str': that is, --   something like \"@\<BR\/\> \<BR\/\>@\" is parsed as: -----  > [HtmlNewline [], HtmlStr " ", HtmlNewline []]-type HtmlText = [HtmlTextItem]+--  > [Newline [], Str " ", Newline []]+type Text = [TextItem]  -- | Textual items in HTML-like labels.-data HtmlTextItem = HtmlStr Text-                    -- | Only accepts an optional 'HtmlAlign'-                    --   'HtmlAttribute'; defined this way for ease of-                    --   printing/parsing.-                  | HtmlNewline HtmlAttributes-                  | HtmlFont HtmlAttributes HtmlText-                  deriving (Eq, Ord, Show, Read)+data TextItem = Str T.Text+                -- | Only accepts an optional 'Align'+                --   'Attribute'; defined this way for ease of+                --   printing/parsing.+              | Newline Attributes+              | Font Attributes Text+                -- | Only available in Graphviz >= 2.28.0.+              | Format Format Text+              deriving (Eq, Ord, Show, Read) -instance PrintDot HtmlTextItem where-  unqtDot (HtmlStr str)     = escapeValue str-  unqtDot (HtmlNewline as)  = printHtmlEmptyTag (text "BR") as-  unqtDot (HtmlFont as txt) = printHtmlFontTag as $ unqtDot txt+instance PrintDot TextItem where+  unqtDot (Str str)        = escapeValue str+  unqtDot (Newline as)     = printEmptyTag (text "BR") as+  unqtDot (Font as txt)    = printFontTag as $ unqtDot txt+  unqtDot (Format fmt txt) = printTag (unqtDot fmt) [] $ unqtDot txt    unqtListToDot = hcat . mapM unqtDot    listToDot = unqtListToDot -instance ParseDot HtmlTextItem where-  parseUnqt = oneOf [ liftM HtmlStr unescapeValue-                    , parseHtmlEmptyTag HtmlNewline "BR"-                    , parseHtmlFontTag HtmlFont parseUnqt+instance ParseDot TextItem where+  parseUnqt = oneOf [ liftM Str unescapeValue+                    , parseEmptyTag Newline "BR"+                    , parseFontTag Font parseUnqt+                    , parseTagRep Format parseUnqt parseUnqt                     ]               `adjustErr`-              ("Can't parse HtmlTextItem\n\t"++)+              ("Can't parse Html.TextItem\n\t"++)    parse = parseUnqt -  parseUnqtList = many1 parseUnqt -- sepBy1 parseUnqt allWhitespace'+  parseUnqtList = many1 parseUnqt -- sepBy1 parseUnqt whitespace    parseList = parseUnqtList +data Format = Italics+                | Bold+                | Underline+                | Subscript+                | Superscript+                deriving (Eq, Ord, Bounded, Enum, Show, Read)++instance PrintDot Format where+  unqtDot Italics     = text "I"+  unqtDot Bold        = text "B"+  unqtDot Underline   = text "U"+  unqtDot Subscript   = text "SUB"+  unqtDot Superscript = text "SUP"++instance ParseDot Format where+  parseUnqt = stringValue [ ("I", Italics)+                          , ("B", Bold)+                          , ("U", Underline)+                          , ("SUB", Subscript)+                          , ("SUP", Superscript)+                          ]+ -- | A table in HTML-like labels.  Tables are optionally wrapped in --   overall @FONT@ tags.-data HtmlTable = HTable { -- | Optional @FONT@ attributes.  @'Just'-                          --   []@ denotes empty @FONT@ tags;-                          --   @'Nothing'@ denotes no such tags.-                          tableFontAttrs :: Maybe HtmlAttributes-                        , tableAttrs     :: HtmlAttributes-                          -- | This list is assumed to be non-empty.-                        , tableRows      :: [HtmlRow]-                        }+data Table = HTable { -- | Optional @FONT@ attributes.  @'Just'+                      --   []@ denotes empty @FONT@ tags;+                      --   @'Nothing'@ denotes no such tags.+                      tableFontAttrs :: Maybe Attributes+                    , tableAttrs     :: Attributes+                      -- | This list is assumed to be non-empty.+                    , tableRows      :: [Row]+                    }                deriving (Eq, Ord, Show, Read) -instance PrintDot HtmlTable where+instance PrintDot Table where   unqtDot tbl = case tableFontAttrs tbl of-                  (Just as) -> printHtmlFontTag as tbl'+                  (Just as) -> printFontTag as tbl'                   Nothing   -> tbl'     where-      tbl' = printHtmlTag (text "TABLE")+      tbl' = printTag (text "TABLE")                           (tableAttrs tbl)                           (toDot $ tableRows tbl) -instance ParseDot HtmlTable where-  parseUnqt = wrapWhitespace (parseHtmlFontTag addFontAttrs pTbl)+instance ParseDot Table where+  parseUnqt = wrapWhitespace (parseFontTag addFontAttrs pTbl)               `onFail`               pTbl               `adjustErr`-              ("Can't parse HtmlTable\n\t"++)+              ("Can't parse Html.Table\n\t"++)     where-      pTbl = wrapWhitespace $ parseHtmlTag (HTable Nothing)-                                           "TABLE"-                                           (wrapWhitespace parseUnqt)+      pTbl = wrapWhitespace $ parseTag (HTable Nothing)+                                       "TABLE"+                                       (wrapWhitespace parseUnqt)       addFontAttrs fas tbl = tbl { tableFontAttrs = Just fas }    parse = parseUnqt --- | A row in an 'HtmlTable'.  The list of 'HtmlCell' values is+-- | A row in a 'Table'.  The list of 'Cell' values is --   assumed to be non-empty.-newtype HtmlRow = HtmlRow [HtmlCell]-                deriving (Eq, Ord, Show, Read)+data Row = Cells [Cell]+         | HorizontalRule -- ^ Should be between 'Cells' values,+                          --   requires Graphviz >= 2.29.0+         deriving (Eq, Ord, Show, Read) -instance PrintDot HtmlRow where-  unqtDot (HtmlRow cs) = printHtmlTag tr [] $ unqtDot cs-    where-      tr = text "TR"+instance PrintDot Row where+  unqtDot (Cells cs)     = printTag (text "TR") [] $ unqtDot cs+  unqtDot HorizontalRule = printEmptyTag (text "HR") []    unqtListToDot = align . cat . mapM unqtDot    listToDot = unqtListToDot -instance ParseDot HtmlRow where-  -- To save doing it manually, use 'parseHtmlTag' and ignore any-  -- 'HtmlAttributes' that it might accidentally parse.-  parseUnqt = wrapWhitespace $ parseHtmlTag (const HtmlRow) "TR" parseUnqt+instance ParseDot Row where+  -- To save doing it manually, use 'parseTag' and ignore any+  -- 'Attributes' that it might accidentally parse.+  parseUnqt = wrapWhitespace $ parseTag (const Cells) "TR" parseUnqt+              `onFail`+              parseEmptyTag (const HorizontalRule) "HR"               `adjustErr`-              ("Can't parse HtmlRow\n\t"++)+              ("Can't parse Html.Row\n\t"++)    parse = parseUnqt -  parseUnqtList = wrapWhitespace $ sepBy1 parseUnqt allWhitespace'+  parseUnqtList = wrapWhitespace $ sepBy1 parseUnqt whitespace    parseList = parseUnqtList --- | Cells either recursively contain another 'HtmlLabel' or else a+-- | Cells either recursively contain another 'Label' or else a --   path to an image file.-data HtmlCell = HtmlLabelCell HtmlAttributes HtmlLabel-              | HtmlImgCell HtmlAttributes HtmlImg-              deriving (Eq, Ord, Show, Read)+data Cell = LabelCell Attributes Label+          | ImgCell Attributes Img+          | VerticalRule -- ^ Should be between 'LabelCell' or+                         --   'ImgCell' values, requires Graphviz >=+                         --   2.29.0+          deriving (Eq, Ord, Show, Read) -instance PrintDot HtmlCell where-  unqtDot (HtmlLabelCell as l) = printCell as $ unqtDot l-  unqtDot (HtmlImgCell as img) = printCell as $ unqtDot img+instance PrintDot Cell where+  unqtDot (LabelCell as l) = printCell as $ unqtDot l+  unqtDot (ImgCell as img) = printCell as $ unqtDot img+  unqtDot VerticalRule     = printEmptyTag (text "VR") []    unqtListToDot = hsep . mapM unqtDot    listToDot = unqtListToDot -printCell :: HtmlAttributes -> DotCode -> DotCode-printCell = printHtmlTag (text "TD")+printCell :: Attributes -> DotCode -> DotCode+printCell = printTag (text "TD") -instance ParseDot HtmlCell where-  parseUnqt = oneOf [ parseCell HtmlLabelCell parse-                    , parseCell HtmlImgCell $ wrapWhitespace parseUnqt+instance ParseDot Cell where+  parseUnqt = oneOf [ parseCell LabelCell parse+                    , parseCell ImgCell $ wrapWhitespace parseUnqt+                    , parseEmptyTag (const VerticalRule) "VR"                     ]               `adjustErr`-              ("Can't parse HtmlCell\n\t"++)+              ("Can't parse Html.Cell\n\t"++)     where-      parseCell = flip parseHtmlTag "TD"+      parseCell = flip parseTag "TD"    parse = parseUnqt -  parseUnqtList = wrapWhitespace $ sepBy1 parseUnqt allWhitespace'+  parseUnqtList = wrapWhitespace $ sepBy1 parseUnqt whitespace    parseList = parseUnqtList --- | The path to an image; accepted 'HtmlAttributes' are 'HtmlScale' and 'HtmlSrc'.-newtype HtmlImg = HtmlImg HtmlAttributes-             deriving (Eq, Ord, Show, Read)+-- | The path to an image; accepted 'Attributes' are 'Scale' and 'Src'.+newtype Img = Img Attributes+            deriving (Eq, Ord, Show, Read) -instance PrintDot HtmlImg where-  unqtDot (HtmlImg as) = printHtmlEmptyTag (text "IMG") as+instance PrintDot Img where+  unqtDot (Img as) = printEmptyTag (text "IMG") as -instance ParseDot HtmlImg where-  parseUnqt = wrapWhitespace (parseHtmlEmptyTag HtmlImg "IMG")+instance ParseDot Img where+  parseUnqt = wrapWhitespace (parseEmptyTag Img "IMG")               `adjustErr`-              ("Can't parse HtmlImg\n\t"++)+              ("Can't parse Html.Img\n\t"++)    parse = parseUnqt  -- -----------------------------------------------------------------------------  -- | The various HTML-like label-specific attributes being used.-type HtmlAttributes = [HtmlAttribute]+type Attributes = [Attribute] --- | Note that not all 'HtmlAttribute' values are valid everywhere:+-- | Note that not all 'Attribute' values are valid everywhere: --   see the comments for each one on where it is valid.-data HtmlAttribute = HtmlAlign HtmlAlign   -- ^ Valid for:  'HtmlTable', 'HtmlCell', 'HtmlNewline'.-                   | HtmlBAlign HtmlAlign  -- ^ Valid for: 'HtmlCell'.-                   | HtmlBGColor Color     -- ^ Valid for: 'HtmlTable' (including 'tableFontAttrs'), 'HtmlCell', 'HtmlFont'.-                   | HtmlBorder Word8      -- ^ Valid for: 'HtmlTable', 'HtmlCell'.  Default is @1@; @0@ represents no border.-                   | HtmlCellBorder Word8  -- ^ Valid for: 'HtmlTable'.  Default is @1@; @0@ represents no border.-                   | HtmlCellPadding Word8 -- ^ Valid for: 'HtmlTable', 'HtmlCell'.  Default is @2@.-                   | HtmlCellSpacing Word8 -- ^ Valid for: 'HtmlTable', 'HtmlCell'.  Default is @2@; maximum is @127@.-                   | HtmlColor Color       -- ^ Valid for: 'HtmlTable', 'HtmlCell'.-                   | HtmlColSpan Word16    -- ^ Valid for: 'HtmlCell'.  Default is @1@.-                   | HtmlFace Text         -- ^ Valid for: 'tableFontAttrs', 'HtmlFont'.-                   | HtmlFixedSize Bool    -- ^ Valid for: 'HtmlTable', 'HtmlCell'.  Default is @'False'@.-                   | HtmlHeight Word16     -- ^ Valid for: 'HtmlTable', 'HtmlCell'.-                   | HtmlHRef Text         -- ^ Valid for: 'HtmlTable', 'HtmlCell'.-                   | HtmlPointSize Double  -- ^ Valid for: 'tableFontAttrs', 'HtmlFont'.-                   | HtmlPort PortName     -- ^ Valid for: 'HtmlTable', 'HtmlCell'.-                   | HtmlRowSpan Word16    -- ^ Valid for: 'HtmlCell'.-                   | HtmlScale HtmlScale   -- ^ Valid for: 'HtmlImg'.-                   | HtmlSrc FilePath      -- ^ Valid for: 'HtmlImg'.-                   | HtmlTarget Text       -- ^ Valid for: 'HtmlTable', 'HtmlCell'.-                   | HtmlTitle Text        -- ^ Valid for: 'HtmlTable', 'HtmlCell'.  Has an alias of @TOOLTIP@.-                   | HtmlVAlign HtmlVAlign -- ^ Valid for: 'HtmlTable', 'HtmlCell'.-                   | HtmlWidth Word16      -- ^ Valid for: 'HtmlTable', 'HtmlCell'.-                   deriving (Eq, Ord, Show, Read)+data Attribute = Align Align       -- ^ Valid for:  'Table', 'Cell', 'Newline'.+               | BAlign Align      -- ^ Valid for: 'Cell'.+               | BGColor Color     -- ^ Valid for: 'Table' (including 'tableFontAttrs'), 'Cell', 'Font'.+               | Border Word8      -- ^ Valid for: 'Table', 'Cell'.  Default is @1@; @0@ represents no border.+               | CellBorder Word8  -- ^ Valid for: 'Table'.  Default is @1@; @0@ represents no border.+               | CellPadding Word8 -- ^ Valid for: 'Table', 'Cell'.  Default is @2@.+               | CellSpacing Word8 -- ^ Valid for: 'Table', 'Cell'.  Default is @2@; maximum is @127@.+               | Color Color       -- ^ Valid for: 'Table', 'Cell'.+               | ColSpan Word16    -- ^ Valid for: 'Cell'.  Default is @1@.+               | Face T.Text       -- ^ Valid for: 'tableFontAttrs', 'Font'.+               | FixedSize Bool    -- ^ Valid for: 'Table', 'Cell'.  Default is @'False'@.+               | Height Word16     -- ^ Valid for: 'Table', 'Cell'.+               | HRef T.Text       -- ^ Valid for: 'Table', 'Cell'.+               | ID T.Text         -- ^ Valid for: 'Table', 'Cell'.  Requires Graphviz >= 2.29.0+               | PointSize Double  -- ^ Valid for: 'tableFontAttrs', 'Font'.+               | Port PortName     -- ^ Valid for: 'Table', 'Cell'.+               | RowSpan Word16    -- ^ Valid for: 'Cell'.+               | Scale Scale       -- ^ Valid for: 'Img'.+               | Src FilePath      -- ^ Valid for: 'Img'.+               | Target T.Text     -- ^ Valid for: 'Table', 'Cell'.+               | Title T.Text      -- ^ Valid for: 'Table', 'Cell'.  Has an alias of @TOOLTIP@.+               | VAlign VAlign     -- ^ Valid for: 'Table', 'Cell'.+               | Width Word16      -- ^ Valid for: 'Table', 'Cell'.+               deriving (Eq, Ord, Show, Read) -instance PrintDot HtmlAttribute where-  unqtDot (HtmlAlign v)       = printHtmlField  "ALIGN" v-  unqtDot (HtmlBAlign v)      = printHtmlField  "BALIGN" v-  unqtDot (HtmlBGColor v)     = printHtmlField  "BGCOLOR" v-  unqtDot (HtmlBorder v)      = printHtmlField  "BORDER" v-  unqtDot (HtmlCellBorder v)  = printHtmlField  "CELLBORDER" v-  unqtDot (HtmlCellPadding v) = printHtmlField  "CELLPADDING" v-  unqtDot (HtmlCellSpacing v) = printHtmlField  "CELLSPACING" v-  unqtDot (HtmlColor v)       = printHtmlField  "COLOR" v-  unqtDot (HtmlColSpan v)     = printHtmlField  "COLSPAN" v-  unqtDot (HtmlFace v)        = printHtmlField' "FACE" $ escapeAttribute v-  unqtDot (HtmlFixedSize v)   = printHtmlField' "FIXEDSIZE" $ printBoolHtml v-  unqtDot (HtmlHeight v)      = printHtmlField  "HEIGHT" v-  unqtDot (HtmlHRef v)        = printHtmlField' "HREF" $ escapeAttribute v-  unqtDot (HtmlPointSize v)   = printHtmlField  "POINT-SIZE" v-  unqtDot (HtmlPort v)        = printHtmlField' "PORT" . escapeAttribute $ portName v-  unqtDot (HtmlRowSpan v)     = printHtmlField  "ROWSPAN" v-  unqtDot (HtmlScale v)       = printHtmlField  "SCALE" v-  unqtDot (HtmlSrc v)         = printHtmlField' "SRC" . escapeAttribute $ T.pack v-  unqtDot (HtmlTarget v)      = printHtmlField' "TARGET" $ escapeAttribute v-  unqtDot (HtmlTitle v)       = printHtmlField' "TITLE" $ escapeAttribute v-  unqtDot (HtmlVAlign v)      = printHtmlField  "VALIGN" v-  unqtDot (HtmlWidth v)       = printHtmlField  "WIDTH" v+instance PrintDot Attribute where+  unqtDot (Align v)       = printHtmlField  "ALIGN" v+  unqtDot (BAlign v)      = printHtmlField  "BALIGN" v+  unqtDot (BGColor v)     = printHtmlField  "BGCOLOR" v+  unqtDot (Border v)      = printHtmlField  "BORDER" v+  unqtDot (CellBorder v)  = printHtmlField  "CELLBORDER" v+  unqtDot (CellPadding v) = printHtmlField  "CELLPADDING" v+  unqtDot (CellSpacing v) = printHtmlField  "CELLSPACING" v+  unqtDot (Color v)       = printHtmlField  "COLOR" v+  unqtDot (ColSpan v)     = printHtmlField  "COLSPAN" v+  unqtDot (Face v)        = printHtmlField' "FACE" $ escapeAttribute v+  unqtDot (FixedSize v)   = printHtmlField' "FIXEDSIZE" $ printBoolHtml v+  unqtDot (Height v)      = printHtmlField  "HEIGHT" v+  unqtDot (HRef v)        = printHtmlField' "HREF" $ escapeAttribute v+  unqtDot (ID v)          = printHtmlField' "ID" $ escapeAttribute v+  unqtDot (PointSize v)   = printHtmlField  "POINT-SIZE" v+  unqtDot (Port v)        = printHtmlField' "PORT" . escapeAttribute $ portName v+  unqtDot (RowSpan v)     = printHtmlField  "ROWSPAN" v+  unqtDot (Scale v)       = printHtmlField  "SCALE" v+  unqtDot (Src v)         = printHtmlField' "SRC" . escapeAttribute $ T.pack v+  unqtDot (Target v)      = printHtmlField' "TARGET" $ escapeAttribute v+  unqtDot (Title v)       = printHtmlField' "TITLE" $ escapeAttribute v+  unqtDot (VAlign v)      = printHtmlField  "VALIGN" v+  unqtDot (Width v)       = printHtmlField  "WIDTH" v    unqtListToDot = hsep . mapM unqtDot    listToDot = unqtListToDot  -- | Only to be used when the 'PrintDot' instance of @a@ matches the---   HTML syntax (i.e. numbers and @Html*@ values; 'Color' values also+--   HTML syntax (i.e. numbers and @Html.*@ values; 'Color' values also --   seem to work).-printHtmlField   :: (PrintDot a) => Text -> a -> DotCode+printHtmlField   :: (PrintDot a) => T.Text -> a -> DotCode printHtmlField f = printHtmlField' f . unqtDot -printHtmlField'     :: Text -> DotCode -> DotCode+printHtmlField'     :: T.Text -> DotCode -> DotCode printHtmlField' f v = text f <> equals <> dquotes v -instance ParseDot HtmlAttribute where-  parseUnqt = oneOf [ parseHtmlField  HtmlAlign "ALIGN"-                    , parseHtmlField  HtmlBAlign "BALIGN"-                    , parseHtmlField  HtmlBGColor "BGCOLOR"-                    , parseHtmlField  HtmlBorder "BORDER"-                    , parseHtmlField  HtmlCellBorder "CELLBORDER"-                    , parseHtmlField  HtmlCellPadding "CELLPADDING"-                    , parseHtmlField  HtmlCellSpacing "CELLSPACING"-                    , parseHtmlField  HtmlColor "COLOR"-                    , parseHtmlField  HtmlColSpan "COLSPAN"-                    , parseHtmlField' HtmlFace "FACE" unescapeAttribute-                    , parseHtmlField' HtmlFixedSize "FIXEDSIZE" parseBoolHtml-                    , parseHtmlField  HtmlHeight "HEIGHT"-                    , parseHtmlField' HtmlHRef "HREF" unescapeAttribute-                    , parseHtmlField  HtmlPointSize "POINT-SIZE"-                    , parseHtmlField' (HtmlPort . PN) "PORT" unescapeAttribute-                    , parseHtmlField  HtmlRowSpan "ROWSPAN"-                    , parseHtmlField  HtmlScale "SCALE"-                    , parseHtmlField' HtmlSrc "SRC" $ liftM T.unpack unescapeAttribute-                    , parseHtmlField' HtmlTarget "TARGET" unescapeAttribute-                    , parseHtmlField' HtmlTitle "TITLE" unescapeAttribute+instance ParseDot Attribute where+  parseUnqt = oneOf [ parseHtmlField  Align "ALIGN"+                    , parseHtmlField  BAlign "BALIGN"+                    , parseHtmlField  BGColor "BGCOLOR"+                    , parseHtmlField  Border "BORDER"+                    , parseHtmlField  CellBorder "CELLBORDER"+                    , parseHtmlField  CellPadding "CELLPADDING"+                    , parseHtmlField  CellSpacing "CELLSPACING"+                    , parseHtmlField  Color "COLOR"+                    , parseHtmlField  ColSpan "COLSPAN"+                    , parseHtmlField' Face "FACE" unescapeAttribute+                    , parseHtmlField' FixedSize "FIXEDSIZE" parseBoolHtml+                    , parseHtmlField  Height "HEIGHT"+                    , parseHtmlField' HRef "HREF" unescapeAttribute+                    , parseHtmlField' ID "ID" unescapeAttribute+                    , parseHtmlField  PointSize "POINT-SIZE"+                    , parseHtmlField' (Port . PN) "PORT" unescapeAttribute+                    , parseHtmlField  RowSpan "ROWSPAN"+                    , parseHtmlField  Scale "SCALE"+                    , parseHtmlField' Src "SRC" $ liftM T.unpack unescapeAttribute+                    , parseHtmlField' Target "TARGET" unescapeAttribute+                    , parseHtmlField' Title "TITLE" unescapeAttribute                       `onFail`-                      parseHtmlField' HtmlTitle "TOOLTIP" unescapeAttribute-                    , parseHtmlField  HtmlVAlign "VALIGN"-                    , parseHtmlField  HtmlWidth "WIDTH"+                      parseHtmlField' Title "TOOLTIP" unescapeAttribute+                    , parseHtmlField  VAlign "VALIGN"+                    , parseHtmlField  Width "WIDTH"                     ]    parse = parseUnqt -  parseUnqtList = sepBy parseUnqt allWhitespace -- needs at least one whitespace char+  parseUnqtList = sepBy parseUnqt whitespace1 -- needs at least one whitespace char    parseList = parseUnqtList   -parseHtmlField     :: (ParseDot a) => (a -> HtmlAttribute) -> String-                      -> Parse HtmlAttribute+parseHtmlField     :: (ParseDot a) => (a -> Attribute) -> String+                  -> Parse Attribute parseHtmlField c f = parseHtmlField' c f parseUnqt -parseHtmlField'       :: (a -> HtmlAttribute) -> String -> Parse a-                         -> Parse HtmlAttribute+parseHtmlField'       :: (a -> Attribute) -> String -> Parse a+                     -> Parse Attribute parseHtmlField' c f p = do string f                            parseEq                            liftM c $ quotedParse p@@ -373,23 +411,22 @@ -- | Specifies horizontal placement. When an object is allocated more --   space than required, this value determines where the extra space --   is placed left and right of the object.-data HtmlAlign = HLeft-               | HCenter -- ^ Default value.-               | HRight-               | HText -- ^ 'HtmlLabelCell' values only; aligns lines-                       --   of text using the full cell width. The-                       --   alignment of a line is determined by its-                       --   (possibly implicit) associated-                       --   'HtmlNewline' element.-               deriving (Eq, Ord, Bounded, Enum, Show, Read)+data Align = HLeft+           | HCenter -- ^ Default value.+           | HRight+           | HText -- ^ 'LabelCell' values only; aligns lines of text+                   --   using the full cell width. The alignment of a+                   --   line is determined by its (possibly implicit)+                   --   associated 'Newline' element.+           deriving (Eq, Ord, Bounded, Enum, Show, Read) -instance PrintDot HtmlAlign where+instance PrintDot Align where   unqtDot HLeft   = text "LEFT"   unqtDot HCenter = text "CENTER"   unqtDot HRight  = text "RIGHT"   unqtDot HText   = text "TEXT" -instance ParseDot HtmlAlign where+instance ParseDot Align where   parseUnqt = oneOf [ stringRep HLeft "LEFT"                     , stringRep HCenter "CENTER"                     , stringRep HRight "RIGHT"@@ -401,17 +438,17 @@ -- | Specifies vertical placement. When an object is allocated more --   space than required, this value determines where the extra space --   is placed above and below the object.-data HtmlVAlign = HTop-                | HMiddle -- ^ Default value.-                | HBottom-                deriving (Eq, Ord, Bounded, Enum, Show, Read)+data VAlign = HTop+            | HMiddle -- ^ Default value.+            | HBottom+            deriving (Eq, Ord, Bounded, Enum, Show, Read) -instance PrintDot HtmlVAlign where+instance PrintDot VAlign where   unqtDot HTop    = text "TOP"   unqtDot HMiddle = text "MIDDLE"   unqtDot HBottom = text "BOTTOM" -instance ParseDot HtmlVAlign where+instance ParseDot VAlign where   parseUnqt = oneOf [ stringRep HTop "TOP"                     , stringRep HMiddle "MIDDLE"                     , stringRep HBottom "BOTTOM"@@ -422,39 +459,39 @@ -- | Specifies how an image will use any extra space available in its --   cell.  If undefined, the image inherits the value of the --   @ImageScale@ attribute.-data HtmlScale = HtmlNaturalSize -- ^ Default value.-               | HtmlScaleUniformly-               | HtmlExpandWidth-               | HtmlExpandHeight-               | HtmlExpandBoth+data Scale = NaturalSize -- ^ Default value.+               | ScaleUniformly+               | ExpandWidth+               | ExpandHeight+               | ExpandBoth                deriving (Eq, Ord, Bounded, Enum, Show, Read) -instance PrintDot HtmlScale where-  unqtDot HtmlNaturalSize    = text "FALSE"-  unqtDot HtmlScaleUniformly = text "TRUE"-  unqtDot HtmlExpandWidth    = text "WIDTH"-  unqtDot HtmlExpandHeight   = text "HEIGHT"-  unqtDot HtmlExpandBoth     = text "BOTH"+instance PrintDot Scale where+  unqtDot NaturalSize    = text "FALSE"+  unqtDot ScaleUniformly = text "TRUE"+  unqtDot ExpandWidth    = text "WIDTH"+  unqtDot ExpandHeight   = text "HEIGHT"+  unqtDot ExpandBoth     = text "BOTH" -instance ParseDot HtmlScale where-  parseUnqt = oneOf [ stringRep HtmlNaturalSize "FALSE"-                    , stringRep HtmlScaleUniformly "TRUE"-                    , stringRep HtmlExpandWidth "WIDTH"-                    , stringRep HtmlExpandHeight "HEIGHT"-                    , stringRep HtmlExpandBoth "BOTH"+instance ParseDot Scale where+  parseUnqt = oneOf [ stringRep NaturalSize "FALSE"+                    , stringRep ScaleUniformly "TRUE"+                    , stringRep ExpandWidth "WIDTH"+                    , stringRep ExpandHeight "HEIGHT"+                    , stringRep ExpandBoth "BOTH"                     ]    parse = parseUnqt  -- ----------------------------------------------------------------------------- -escapeAttribute :: Text -> DotCode+escapeAttribute :: T.Text -> DotCode escapeAttribute = escapeHtml False -escapeValue :: Text -> DotCode+escapeValue :: T.Text -> DotCode escapeValue = escapeHtml True -escapeHtml               :: Bool -> Text -> DotCode+escapeHtml               :: Bool -> T.Text -> DotCode escapeHtml quotesAllowed = hcat . liftM concat                            . mapM (escapeSegment . T.unpack)                            . T.groupBy ((==) `on` isSpace)@@ -476,16 +513,16 @@     escape' e = char '&' <> e <> char ';'     escape = escape' . text -unescapeAttribute :: Parse Text+unescapeAttribute :: Parse T.Text unescapeAttribute = unescapeHtml False -unescapeValue :: Parse Text+unescapeValue :: Parse T.Text unescapeValue = unescapeHtml True  -- | Parses an HTML-compatible 'String', de-escaping known characters. --   Note: this /will/ fail if an unknown non-numeric HTML-escape is --   used.-unescapeHtml               :: Bool -> Parse Text+unescapeHtml               :: Bool -> Parse T.Text unescapeHtml quotesAllowed = liftM (T.pack . catMaybes)                              . many1 . oneOf $ [ parseEscpd                                                , validChars@@ -519,7 +556,7 @@  -- | The characters that need to be escaped and what they need to be --   replaced with (sans @'&'@).-htmlEscapes :: [(Char, Text)]+htmlEscapes :: [(Char, T.Text)] htmlEscapes = [ ('"', "quot")               , ('<', "lt")               , ('>', "gt")@@ -532,7 +569,7 @@ -- | Flip the order and add extra values that might be escaped.  More --   specifically, provide the escape code for spaces (@\"nbsp\"@) and --   apostrophes (@\"apos\"@) since they aren't used for escaping.-htmlUnescapes :: [(Text, Char)]+htmlUnescapes :: [(T.Text, Char)] htmlUnescapes = maybeEscaped                 ++                 map (uncurry (flip (,))) htmlEscapes@@ -550,46 +587,55 @@ -- -----------------------------------------------------------------------------  -- | Print something like @<FOO ATTR=\"ATTR_VALUE\">value<\/FOO>@-printHtmlTag        :: DotCode -> HtmlAttributes -> DotCode -> DotCode-printHtmlTag t as v = angled (t <+> toDot as)+printTag        :: DotCode -> Attributes -> DotCode -> DotCode+printTag t as v = angled (t <+> toDot as)                       <> v                       <> angled (fslash <> t) -printHtmlFontTag :: HtmlAttributes -> DotCode -> DotCode-printHtmlFontTag = printHtmlTag (text "FONT")+printFontTag :: Attributes -> DotCode -> DotCode+printFontTag = printTag (text "FONT")  -- | Print something like @<FOO ATTR=\"ATTR_VALUE\"\/>@-printHtmlEmptyTag      :: DotCode -> HtmlAttributes -> DotCode-printHtmlEmptyTag t as = angled $ t <+> toDot as <> fslash+printEmptyTag      :: DotCode -> Attributes -> DotCode+printEmptyTag t as = angled $ t <+> toDot as <> fslash  -- -----------------------------------------------------------------------------  -- Note: can't use bracket here because we're not completely -- discarding everything from the opening bracket. +-- Not using parseTagRep for parseTag because open/close case+-- is different; worth fixing?+ -- | Parse something like @<FOO ATTR=\"ATTR_VALUE\">value<\/FOO>@-parseHtmlTag        :: (HtmlAttributes -> val -> tag) -> String+parseTag        :: (Attributes -> val -> tag) -> String                        -> Parse val -> Parse tag-parseHtmlTag c t pv = do as <- parseAngled openingTag-                         v <- pv-                         parseAngled $ character '/' >> t' >> allWhitespace'-                         return $ c as v+parseTag c t pv = do as <- parseAngled openingTag+                     v <- pv+                     parseAngled $ character '/' >> t' >> whitespace+                     return $ c as v   where     t' = string t     openingTag = do t'-                    as <- tryParseList' $ allWhitespace >> parse-                    allWhitespace'+                    as <- tryParseList' $ whitespace1 >> parse+                    whitespace                     return as -parseHtmlFontTag :: (HtmlAttributes -> val -> tag) -> Parse val -> Parse tag-parseHtmlFontTag = flip parseHtmlTag "FONT"+parseTagRep :: (tagName -> val -> tag) -> Parse tagName -> Parse val -> Parse tag+parseTagRep c pt pv = do tn <- parseAngled (pt `discard` whitespace)+                         v <- pv+                         parseAngled $ character '/' >> pt >> whitespace+                         return $ c tn v +parseFontTag :: (Attributes -> val -> tag) -> Parse val -> Parse tag+parseFontTag = flip parseTag "FONT"+ -- | Parse something like @<FOO ATTR=\"ATTR_VALUE\"\/>@-parseHtmlEmptyTag     :: (HtmlAttributes -> tag) -> String -> Parse tag-parseHtmlEmptyTag c t = parseAngled+parseEmptyTag     :: (Attributes -> tag) -> String -> Parse tag+parseEmptyTag c t = parseAngled                         ( do string t-                             as <- tryParseList' $ allWhitespace >> parse-                             allWhitespace'+                             as <- tryParseList' $ whitespace1 >> parse+                             whitespace                              character '/'                              return $ c as                         )
Data/GraphViz/Commands.hs view
@@ -63,21 +63,27 @@ --   <http://graphviz.org/pdf/dot.1.pdf>, or if installed on your --   system @man graphviz@).  Note that any command can be used on --   both directed and undirected graphs.-data GraphvizCommand = Dot   -- ^ For hierachical graphs (ideal for-                             --   directed graphs).-                     | Neato -- ^ For symmetric layouts of graphs-                             --   (ideal for undirected graphs).-                     | TwoPi -- ^ For radial layout of graphs.-                     | Circo -- ^ For circular layout of graphs.-                     | Fdp   -- ^ For symmetric layout of graphs.+data GraphvizCommand = Dot       -- ^ For hierachical graphs (ideal for+                                 --   directed graphs).+                     | Neato     -- ^ For symmetric layouts of graphs+                                 --   (ideal for undirected graphs).+                     | TwoPi     -- ^ For radial layout of graphs.+                     | Circo     -- ^ For circular layout of graphs.+                     | Fdp       -- ^ For symmetric layout of graphs.+                     | Osage     -- ^ Filter for drawing clustered graphs,+                                 --   requires Graphviz >= 2.28.0.+                     | Patchwork -- ^ Draw clustered graphs as treemaps,+                                 --   requires Graphviz >= 2.28.0.                      deriving (Eq, Ord, Show, Read) -showCmd        :: GraphvizCommand -> String-showCmd Dot    = "dot"-showCmd Neato  = "neato"-showCmd TwoPi  = "twopi"-showCmd Circo  = "circo"-showCmd Fdp    = "fdp"+showCmd           :: GraphvizCommand -> String+showCmd Dot       = "dot"+showCmd Neato     = "neato"+showCmd TwoPi     = "twopi"+showCmd Circo     = "circo"+showCmd Fdp       = "fdp"+showCmd Osage     = "osage"+showCmd Patchwork = "patchwork"  -- | The default command for directed graphs. dirCommand :: GraphvizCommand@@ -161,6 +167,8 @@                     | WBmp      -- ^ Wireless BitMap format;                                 --   monochrome format usually used                                 --   for mobile computing devices.+                    | WebP      -- ^ Google's WebP format; requires+                                --   Graphviz >= 2.29.0.                     deriving (Eq, Ord, Bounded, Enum, Show, Read)  instance GraphvizResult GraphvizOutput where@@ -192,6 +200,7 @@   outputCall VmlZ      = "vmlz"   outputCall Vrml      = "vrml"   outputCall WBmp      = "wbmp"+  outputCall WebP      = "webp"  -- | A default file extension for each 'GraphvizOutput'. defaultExtension           :: GraphvizOutput -> String@@ -223,6 +232,7 @@ defaultExtension VmlZ      = "vmlz" defaultExtension Vrml      = "vrml" defaultExtension WBmp      = "wbmp"+defaultExtension WebP      = "webp"  -- | Unlike 'GraphvizOutput', these items do not produce an output --   file; instead, they directly draw a canvas (i.e. a window) with
Data/GraphViz/Commands/IO.hs view
@@ -45,7 +45,7 @@                 , hClose, hGetContents, hSetBinaryMode) import System.Exit(ExitCode(ExitSuccess)) import System.Process(runInteractiveProcess, waitForProcess)-import Control.Exception.Extensible(IOException, evaluate)+import Control.Exception(IOException, evaluate) import Control.Concurrent(MVar, forkIO, newEmptyMVar, putMVar, takeMVar)  -- -----------------------------------------------------------------------------
Data/GraphViz/Exception.hs view
@@ -15,7 +15,7 @@        , bracket        ) where -import Control.Exception.Extensible+import Control.Exception import Data.Typeable  -- -----------------------------------------------------------------------------
Data/GraphViz/Parsing.hs view
@@ -47,10 +47,8 @@     , character     , parseStrictFloat     , noneOf+    , whitespace1     , whitespace-    , whitespace'-    , allWhitespace-    , allWhitespace'     , wrapWhitespace     , optionalQuotedString     , optionalQuoted@@ -79,6 +77,7 @@     , stringValue     , parseAngled     , parseBraced+    , parseColorScheme     ) where  import Data.GraphViz.Util@@ -123,7 +122,7 @@ runParser'   :: Parse a -> Text -> a runParser' p = checkValidParse . fst . runParser p'   where-    p' = p `discard` (allWhitespace' >> eof)+    p' = p `discard` (whitespace >> eof)  class ParseDot a where   parseUnqt :: Parse a@@ -135,9 +134,9 @@   parseUnqtList = bracketSep (parseAndSpace $ character '[')                              ( wrapWhitespace parseComma                                `onFail`-                               allWhitespace+                               whitespace1                              )-                             (allWhitespace' >> character ']')+                             (whitespace >> character ']')                              parseUnqt    parseList :: Parse [a]@@ -310,7 +309,7 @@                               `adjustErr` ("Missing closing bracket:\n\t"++))  parseAndSpace   :: Parse a -> Parse a-parseAndSpace p = p `discard` allWhitespace'+parseAndSpace p = p `discard` whitespace  string :: String -> Parse () string = mapM_ character@@ -349,21 +348,17 @@ noneOf   :: [Char] -> Parse Char noneOf t = satisfy (\x -> all (/= x) t) -whitespace :: Parse ()-whitespace = many1Satisfy isSpace >> return ()--whitespace' :: Parse ()-whitespace' = manySatisfy isSpace >> return ()--allWhitespace :: Parse ()-allWhitespace = (whitespace `onFail` newline) >> allWhitespace'+-- | Parses at least one whitespace character.+whitespace1 :: Parse ()+whitespace1 = many1Satisfy isSpace >> return () -allWhitespace' :: Parse ()-allWhitespace' = newline' >> whitespace'+-- | Parses zero or more whitespace characters.+whitespace :: Parse ()+whitespace = manySatisfy isSpace >> return ()  -- | Parse and discard optional whitespace. wrapWhitespace :: Parse a -> Parse a-wrapWhitespace = bracket allWhitespace' allWhitespace'+wrapWhitespace = bracket whitespace whitespace  optionalQuotedString :: String -> Parse () optionalQuotedString = optionalQuoted . string@@ -406,6 +401,7 @@               return $ fromMaybe slash mE     oth = satisfy (`Set.notMember` bndSet) +-- | Parses a newline. newline :: Parse () newline = strings ["\r\n", "\n", "\r"] @@ -413,7 +409,7 @@ --   non-whitespace is reached.  The whitespace on that line is --   not consumed. newline' :: Parse ()-newline' = many (whitespace' >> newline) >> return ()+newline' = many (whitespace >> newline) >> return ()  -- | Parses and returns all characters up till the end of the line, --   but does not touch the newline characters.@@ -458,9 +454,7 @@  commaSep'       :: Parse a -> Parse b -> Parse (a,b) commaSep' pa pb = do a <- pa-                     whitespace'-                     parseComma-                     whitespace'+                     wrapWhitespace parseComma                      b <- pb                      return (a,b) @@ -483,11 +477,15 @@ -- These instances are defined here to avoid cyclic imports and orphan instances  instance ParseDot ColorScheme where-    parseUnqt = do cs <- stringRep X11 "X11"-                          `onFail`-                          liftM Brewer parseUnqt-                   setColorScheme cs-                   return cs+  parseUnqt = parseColorScheme True++parseColorScheme     :: Bool -> Parse ColorScheme+parseColorScheme scs = do cs <- oneOf [ stringRep X11 "X11"+                                      , stringRep SVG "svg"+                                      , liftM Brewer parseUnqt+                                      ]+                          when scs $ setColorScheme cs+                          return cs  instance ParseDot BrewerScheme where   parseUnqt = liftM2 BScheme parseUnqt parseUnqt
Data/GraphViz/PreProcessing.hs view
@@ -118,7 +118,7 @@                  `onFail`                  liftM B.singleton (satisfy (quoteChar /=))     parseConcat = parseSep >> character '+' >> parseSep-    parseSep = many $ allWhitespace `onFail` parseUnwanted+    parseSep = many $ whitespace1 `onFail` parseUnwanted     wrapQuotes str = qc `mappend` str `mappend` qc     qc = B.singleton '"' 
Data/GraphViz/Printing.hs view
@@ -60,6 +60,7 @@     , printField     , angled     , fslash+    , printColorScheme     ) where  import Data.GraphViz.Util@@ -85,7 +86,7 @@ import Data.Char(toLower) import qualified Data.Set as Set import Data.Word(Word8, Word16)-import Control.Monad(ap)+import Control.Monad(ap, when) import Control.Monad.Trans.State  -- -----------------------------------------------------------------------------@@ -274,11 +275,15 @@ -- These instances are defined here to avoid cyclic imports and orphan instances  instance PrintDot ColorScheme where-  unqtDot cs = do setColorScheme cs-                  case cs of-                    X11       -> unqtText "X11"-                    Brewer bs -> unqtDot bs+  unqtDot = printColorScheme True +printColorScheme        :: Bool -> ColorScheme -> DotCode+printColorScheme scs cs = do when scs $ setColorScheme cs+                             case cs of+                               X11       -> unqtText "X11"+                               SVG       -> unqtText "svg"+                               Brewer bs -> unqtDot bs+ instance PrintDot BrewerScheme where   unqtDot (BScheme n l) = unqtDot n <> unqtDot l @@ -318,4 +323,3 @@   unqtDot Ylgnbu   = unqtText "ylgnbu"   unqtDot Ylorbr   = unqtText "ylorbr"   unqtDot Ylorrd   = unqtText "ylorrd"-
Data/GraphViz/State.hs view
@@ -13,6 +13,9 @@ module Data.GraphViz.State        ( GraphvizStateM(..)        , GraphvizState(..)+       , AttributeType(..)+       , setAttributeType+       , getAttributeType        , initialState        , setDirectedness        , getDirectedness@@ -44,17 +47,32 @@    getsGS = stQuery +data AttributeType = GraphAttribute+                   | SubGraphAttribute+                   | ClusterAttribute+                   | NodeAttribute+                   | EdgeAttribute+                     deriving (Eq, Ord, Show, Read)+ -- | Several aspects of Dot code are either global or mutable state.-data GraphvizState = GS { directedEdges :: Bool+data GraphvizState = GS { directedEdges :: !Bool                         , layerSep      :: [Char]-                        , colorScheme   :: ColorScheme+                        , attributeType :: !AttributeType+                        , graphColor    :: !ColorScheme+                        , clusterColor  :: !ColorScheme+                        , nodeColor     :: !ColorScheme+                        , edgeColor     :: !ColorScheme                         }                    deriving (Eq, Ord, Show, Read)  initialState :: GraphvizState initialState = GS { directedEdges = True                   , layerSep      = defLayerSep-                  , colorScheme   = X11+                  , attributeType = GraphAttribute+                  , graphColor    = X11+                  , clusterColor  = X11+                  , nodeColor     = X11+                  , edgeColor     = X11                   }  setDirectedness   :: (GraphvizStateM m) => Bool -> m ()@@ -63,6 +81,12 @@ getDirectedness :: (GraphvizStateM m) => m Bool getDirectedness = getsGS directedEdges +setAttributeType    :: (GraphvizStateM m) => AttributeType -> m ()+setAttributeType tp = modifyGS $ \ gs -> gs { attributeType = tp }++getAttributeType :: (GraphvizStateM m) => m AttributeType+getAttributeType = getsGS attributeType+ setLayerSep     :: (GraphvizStateM m) => [Char] -> m () setLayerSep sep = modifyGS (\ gs -> gs { layerSep = sep } ) @@ -70,14 +94,25 @@ getLayerSep = getsGS layerSep  setColorScheme    :: (GraphvizStateM m) => ColorScheme -> m ()-setColorScheme cs = modifyGS (\ gs -> gs { colorScheme = cs } )+setColorScheme cs = do tp <- getsGS attributeType+                       modifyGS $ \gs -> case tp of+                                           GraphAttribute    -> gs { graphColor   = cs }+                                            -- subgraphs don't have specified scheme+                                           SubGraphAttribute -> gs { graphColor   = cs }+                                           ClusterAttribute  -> gs { clusterColor = cs }+                                           NodeAttribute     -> gs { nodeColor    = cs }+                                           EdgeAttribute     -> gs { edgeColor    = cs }  getColorScheme :: (GraphvizStateM m) => m ColorScheme-getColorScheme = getsGS colorScheme+getColorScheme = do tp <- getsGS attributeType+                    getsGS $ case tp of+                               GraphAttribute    -> graphColor+                                -- subgraphs don't have specified scheme+                               SubGraphAttribute -> graphColor+                               ClusterAttribute  -> clusterColor+                               NodeAttribute     -> nodeColor+                               EdgeAttribute     -> edgeColor  -- | The default separators for 'LayerSep'. defLayerSep :: [Char] defLayerSep = [' ', ':', '\t']---
− Data/GraphViz/Testing.hs
@@ -1,382 +0,0 @@-{-# LANGUAGE Rank2Types, FlexibleContexts #-}--{- |-   Module      : Data.GraphViz.Testing-   Description : Test-suite for graphviz.-   Copyright   : (c) Ivan Lazar Miljenovic-   License     : 3-Clause BSD-style-   Maintainer  : Ivan.Miljenovic@gmail.com--   This defines a test-suite for the graphviz library.--   Limitations of the test suite are as follows:--   * For the most part, this library lets you use arbitrary numbers-     for String values.  However, this is not tested due to too many-     corner cases for special parsers that don't take arbitrary-     Strings.  As the Dot standard is ambiguous over whether you can-     or can't use numbers as Strings (more specifically, if they-     should be quoted or not), this is a user beware situation.--   * Same goes for empty Strings; sometimes they're allowed, sometimes-     they're not.  Thus, to simplify matters they're not generated.--   * The generated Strings are very simple, only composed of lower-     case letters, digits and some symbols.  This is because too many-     tests were \"failing\" due to some corner case; e.g. lower-case-     letters only because the parser parses Strings as lowercase, so-     if a particular String isn't valid (e.g. @\"all\"@ for 'LayerID',-     then the 'Arbitrary' instance has to ensure that all possible-     ways of capitalising that String isn't generated as a random-     'LRName'.--   * The generated 'DotRepr's are not guaranteed to be valid.--   * To avoid needless endless recursion, sub-graphs do not have their-     own internal sub-graphs.--   * This test suite isn't perfect: if you deliberately try to stuff-     something up, you probably can.--}-module Data.GraphViz.Testing-       ( -- * Running the test suite.-         runChosenTests-       , runTests-       , runTest-         -- ** The tests themselves-       , Test(..)-       , defaultTests-       , test_printParseID_Attributes-       , test_generalisedSameDot-       , test_printParseID-       , test_preProcessingID-       , test_dotizeAugment-       , test_dotizeAugmentUniq-       , test_canonicalise-       , test_transitive-        -- * Re-exporting modules for manual testing.-       , module Data.GraphViz-       , module Data.GraphViz.Testing.Properties-         -- * Debugging printing-       , PrintDot(..)-       , printIt-       , renderDot-         -- * Debugging parsing-       , ParseDot(..)-       , parseIt-       , runParser-       , preProcess-       ) where--import Test.QuickCheck--import Data.GraphViz.Testing.Instances()-import Data.GraphViz.Testing.Properties--import Data.GraphViz-import Data.GraphViz.Parsing(ParseDot(..), parseIt, runParser)-import Data.GraphViz.PreProcessing(preProcess)-import Data.GraphViz.Printing(PrintDot(..), printIt, renderDot)-import qualified Data.GraphViz.Types.Generalised as G-import qualified Data.GraphViz.Types.Graph as Gr--- Can't use PatriciaTree because a Show instance is needed.-import Data.Graph.Inductive.Tree(Gr)--import System.Exit(ExitCode(..), exitWith)-import System.IO(hPutStrLn, stderr)---- -------------------------------------------------------------------------------runChosenTests       :: [Test] -> IO ()-runChosenTests tsts = do putStrLn msg-                         blankLn-                         runTests tsts-                         spacerLn-                         putStrLn successMsg-  where-    msg = "This is the test suite for the graphviz library.\n\-           \If any of these tests fail, please inform the maintainer,\n\-           \including full output of this test suite."--    successMsg = "All tests were successful!"----- -------------------------------------------------------------------------------- Defining a Test structure and how to run tests.---- | Defines the test structure being used.-data Test = Test { name       :: String-                 , lookupName :: String      -- ^ Should be lowercase-                 , desc       :: String-                 , tests      :: [IO Result] -- ^ QuickCheck test.-                 }---- | Run all of the provided tests.-runTests :: [Test] -> IO ()-runTests = mapM_ ((>>) spacerLn . runTest)---- | Run the provided test.-runTest     :: Test -> IO ()-runTest tst = do putStrLn title-                 blankLn-                 putStrLn $ desc tst-                 blankLn-                 run $ tests tst-                 blankLn-  where-    nm = '"' : name tst ++ "\""-    title = "Running test: " ++ nm ++ "."-    successMsg = "All tests for " ++ nm ++ " were successful!"-    gaveUpMsg = "Too many sample inputs for " ++ nm ++ " were rejected;\n\-                 \tentatively marking this as successful."-    failMsg = "The tests for " ++ nm ++ " failed!\n\-               \Not attempting any further tests."--    run [] = putStrLn successMsg-    run (t:ts) = do r <- t-                    case r of-                       Success{} -> run ts-                       GaveUp{}  -> putStrLn gaveUpMsg >> run ts-                       _         -> die failMsg--spacerLn :: IO ()-spacerLn = putStrLn (replicate 70 '=') >> blankLn--blankLn :: IO ()-blankLn = putStrLn ""--die     :: String -> IO a-die msg = do hPutStrLn stderr msg-             exitWith (ExitFailure 1)--qCheck :: (Testable prop) => prop -> IO Result-qCheck = quickCheckWithResult (stdArgs { maxSize = 50, maxSuccess = 200 })---- -------------------------------------------------------------------------------- Defining the tests to use.---- | The tests to run by default.-defaultTests :: [Test]-defaultTests = [ test_printParseID_Attributes-               , test_generalisedSameDot-               , test_printParseID-               , test_preProcessingID-               , test_dotizeAugment-               , test_dotizeHasAugment-               , test_dotizeAugmentUniq-               , test_findAllNodes-               , test_findAllNodesE-               , test_findAllEdges-               , test_noGraphInfo-               , test_canonicalise-               , test_transitive-               ]---- | Test that 'Attributes' can be printed and then parsed back.-test_printParseID_Attributes :: Test-test_printParseID_Attributes-  = Test { name       = "Printing and parsing of Attributes"-         , lookupName = "attributes"-         , desc       = dsc-         , tests      = [qCheck prop]-         }-  where-    prop :: Attributes -> Property-    prop = prop_printParseListID--    dsc = "The most common source of errors in printing and parsing are for\n\-          \Attributes."--test_generalisedSameDot :: Test-test_generalisedSameDot-  = Test { name       = "Printing generalised Dot code"-         , lookupName = "makegeneralised"-         , desc       = dsc-         , tests      = [qCheck prop]-         }-    where-      prop :: DotGraph Int -> Bool-      prop = prop_generalisedSameDot--      dsc = "When generalising \"DotGraph\" values to other \"DotRepr\" values,\n\-             \the generated Dot code should be identical."--test_printParseID :: Test-test_printParseID-  = Test { name       = "Printing and Parsing DotReprs"-         , lookupName = "printparseid"-         , desc       = dsc-         , tests      = tsts-         }-  where-    tsts :: [IO Result]-    tsts = [ qCheck (prop_printParseID :: DotGraph    Int -> Bool)-           , qCheck (prop_printParseID :: G.DotGraph  Int -> Bool)-           , qCheck (prop_printParseID :: Gr.DotGraph Int -> Bool)-           ]--    dsc = "The graphviz library should be able to parse back in its own\n\-           \generated Dot code for any \"DotRepr\" instance"--test_preProcessingID :: Test-test_preProcessingID-  = Test { name       = "Pre-processing Dot code"-         , lookupName = "preprocessing"-         , desc       = dsc-         , tests      = [qCheck prop]-         }-  where-    prop :: DotGraph Int -> Bool-    prop = prop_preProcessingID--    dsc = "When parsing Dot code, some pre-processing is done to remove items\n\-           \such as comments and to join together multi-line strings.  This\n\-           \test verifies that this pre-processing doesn't affect actual\n\-           \Dot code by running the pre-processor on generated Dot code.\n\n\-           \This test is not run on generalised Dot graphs as if it works for\n\-           \normal dot graphs then it should also work for generalised ones."--test_dotizeAugment :: Test-test_dotizeAugment-  = Test { name       = "Augmenting FGL Graphs"-         , lookupName = "augment"-         , desc       = dsc-         , tests      = [qCheck prop]-         }-  where-    prop :: Gr Char Double -> Bool-    prop = prop_dotizeAugment--    dsc = "The various Graph to Graph functions in Data.GraphViz should\n\-           \only _augment_ the graph labels and not change the graphs\n\-           \themselves.  This test compares the original graphs to these\n\-           \augmented graphs and verifies that they are the same."--test_dotizeHasAugment :: Test-test_dotizeHasAugment-  = Test { name       = "Ensuring augmentation of FGL Graphs"-         , lookupName = "hasaugment"-         , desc       = dsc-         , tests      = [qCheck prop]-         }-  where-    prop :: Gr Char Double -> Bool-    prop = prop_dotizeHasAugment--    dsc = "The various Graph to Graph functions in Data.GraphViz should\n\-           \actually agument the graph labels; this ensures that all labels\n\-           \actually have attached Attributes after augmentation."--test_dotizeAugmentUniq :: Test-test_dotizeAugmentUniq-  = Test { name       = "Unique edges in augmented FGL Graphs"-         , lookupName = "augmentuniq"-         , desc       = dsc-         , tests      = [qCheck prop]-         }-  where-    prop :: Gr Char Double -> Bool-    prop = prop_dotizeAugmentUniq--    dsc = "When augmenting a graph with multiple edges, as long as no\n\-           \Attributes are provided that override the default settings,\n\-           \then each edge between two nodes should have a unique position\n\-           \Attribute, etc."--test_findAllNodes :: Test-test_findAllNodes-  = Test { name       = "Ensure all nodes are found in a DotRepr"-         , lookupName = "findnodes"-         , desc       = dsc-         , tests      = map qCheck props-         }-  where-    props :: [Gr () () -> Bool]-    props = testAllGraphTypes prop_findAllNodes--    dsc = "nodeInformation should find all nodes in a DotRepr;\n\-           \this is tested by converting an FGL graph and comparing\n\-           \the nodes it should have to those that are found."--test_findAllNodesE :: Test-test_findAllNodesE-  = Test { name       = "Ensure all nodes are found in a node-less DotRepr"-         , lookupName = "findedgelessnodes"-         , desc       = dsc-         , tests      = map qCheck props-         }-  where-    props :: [Gr () () -> Bool]-    props = testAllGraphTypes prop_findAllNodesE--    dsc = "nodeInformation should find all nodes in a DotRepr,\n\-           \even if there are no explicit nodes in that graph.\n\-           \This is tested by converting an FGL graph and comparing\n\-           \the nodes it should have to those that are found."--test_findAllEdges :: Test-test_findAllEdges-  = Test { name       = "Ensure all edges are found in a DotRepr"-         , lookupName = "findedges"-         , desc       = dsc-         , tests      = map qCheck props-         }-  where-    props :: [Gr () () -> Bool]-    props = testAllGraphTypes prop_findAllEdges--    dsc = "nodeInformation should find all edges in a DotRepr;\n\-           \this is tested by converting an FGL graph and comparing\n\-           \the edges it should have to those that are found."--test_noGraphInfo :: Test-test_noGraphInfo-  = Test { name       = "Plain DotReprs should have no structural information"-         , lookupName = "nographinfo"-         , desc       = dsc-         , tests      = map qCheck props-         }-  where-    props :: [Gr () () -> Bool]-    props = testAllGraphTypes prop_noGraphInfo--    dsc = "When converting a Graph to a DotRepr, there should be no\n\-           \clusters or global attributes."--test_canonicalise :: Test-test_canonicalise-  = Test { name       = "Canonicalisation should be idempotent"-         , lookupName = "canonicalise"-         , desc       = dsc-         , tests      = [qCheck prop]-         }-  where-    prop :: DotGraph Int -> Bool-    prop = prop_canonicalise--    dsc = "Repeated application of canonicalise shouldn't have any further affect."--test_transitive :: Test-test_transitive-  = Test { name       = "Transitive reduction should be idempotent"-         , lookupName = "transitive"-         , desc       = dsc-         , tests      = [qCheck prop]-         }-  where-    prop :: DotGraph Int -> Bool-    prop = prop_transitive--    dsc = "Repeated application of transitiveReduction shouldn't have any further affect."---- --------------------------------------------------------------------------------- | Used when a property takes in a DotRepr as the first argument to---   indicate which instance it should test via 'fromCanonical'.-testAllGraphTypes      :: (Testable prop)-                          => (forall dg. (Eq (dg Int), DotRepr dg Int) => dg Int -> prop)-                          -> [prop]-testAllGraphTypes prop = [ prop (undefined :: DotGraph Int)-                         , prop (undefined :: G.DotGraph Int)-                         , prop (undefined :: Gr.DotGraph Int)-                         ]
− Data/GraphViz/Testing/Instances.hs
@@ -1,27 +0,0 @@-{-# OPTIONS_GHC -fno-warn-orphans #-}-{-# LANGUAGE OverloadedStrings #-}--{- |-   Module      : Data.GraphViz.Testing.Instances-   Description : 'Arbitrary' instances for graphviz.-   Copyright   : (c) Ivan Lazar Miljenovic-   License     : 3-Clause BSD-style-   Maintainer  : Ivan.Miljenovic@gmail.com--   This module exports the 'Arbitrary' instances for the various types-   used to represent Graphviz Dot code.--   Note that they do not generally generate /sensible/ values for the-   various types; in particular, there's no guarantee that the-   'Attributes' chosen for a particular value type are indeed legal-   for that type.- -}-module Data.GraphViz.Testing.Instances() where--import Data.GraphViz.Testing.Instances.FGL()-import Data.GraphViz.Testing.Instances.Canonical()-import Data.GraphViz.Testing.Instances.Generalised()-import Data.GraphViz.Testing.Instances.Graph()---- ------------------------------------------------------------------------------
− Data/GraphViz/Testing/Instances/Attributes.hs
@@ -1,897 +0,0 @@-{-# OPTIONS_GHC -fno-warn-orphans #-}-{-# OPTIONS_HADDOCK hide #-}-{-# LANGUAGE OverloadedStrings #-}--{- |-   Module      : Data.GraphViz.Testing.Instances.Attributes-   Description : Attribute instances for Arbitrary.-   Copyright   : (c) Ivan Lazar Miljenovic-   License     : 3-Clause BSD-style-   Maintainer  : Ivan.Miljenovic@gmail.com- -}-module Data.GraphViz.Testing.Instances.Attributes-       ( arbGraphAttrs-       , arbSubGraphAttrs-       , arbClusterAttrs-       , arbNodeAttrs-       , arbEdgeAttrs-       ) where--import Data.GraphViz.Testing.Instances.Helpers--import Data.GraphViz.Attributes.Complete-import Data.GraphViz.Attributes.Internal(compassLookup)-import Data.GraphViz.State(initialState, layerSep)-import Data.GraphViz.Util(bool)--import Test.QuickCheck--import Data.List(nub, delete, groupBy)-import qualified Data.Map as Map-import qualified Data.Text.Lazy as T-import Data.Text.Lazy(Text)-import Control.Monad(liftM, liftM2, liftM3, liftM4)---- -------------------------------------------------------------------------------- Defining Arbitrary instances for Attributes--arbGraphAttrs :: Gen Attributes-arbGraphAttrs = arbAttrs usedByGraphs--arbSubGraphAttrs :: Gen Attributes-arbSubGraphAttrs = arbAttrs usedBySubGraphs--arbClusterAttrs :: Gen Attributes-arbClusterAttrs = arbAttrs usedByClusters--arbNodeAttrs :: Gen Attributes-arbNodeAttrs = arbAttrs usedByNodes--arbEdgeAttrs :: Gen Attributes-arbEdgeAttrs = arbAttrs usedByEdges--arbAttrs   :: (Attribute -> Bool) -> Gen Attributes-arbAttrs p = liftM (filter p) arbList--instance Arbitrary Attribute where-  arbitrary = oneof [ liftM Damping arbitrary-                    , liftM K arbitrary-                    , liftM URL arbitrary-                    , liftM ArrowHead arbitrary-                    , liftM ArrowSize arbitrary-                    , liftM ArrowTail arbitrary-                    , liftM Aspect arbitrary-                    , liftM Bb arbitrary-                    , liftM BgColor arbitrary-                    , liftM Center arbitrary-                    , liftM ClusterRank arbitrary-                    , liftM ColorScheme arbitrary-                    , liftM Color arbList-                    , liftM Comment arbitrary-                    , liftM Compound arbitrary-                    , liftM Concentrate arbitrary-                    , liftM Constraint arbitrary-                    , liftM Decorate arbitrary-                    , liftM DefaultDist arbitrary-                    , liftM Dimen arbitrary-                    , liftM Dim arbitrary-                    , liftM Dir arbitrary-                    , liftM DirEdgeConstraints arbitrary-                    , liftM Distortion arbitrary-                    , liftM DPI arbitrary-                    , liftM EdgeURL arbitrary-                    , liftM EdgeTarget arbitrary-                    , liftM EdgeTooltip arbitrary-                    , liftM Epsilon arbitrary-                    , liftM ESep arbitrary-                    , liftM FillColor arbitrary-                    , liftM FixedSize arbitrary-                    , liftM FontColor arbitrary-                    , liftM FontName arbitrary-                    , liftM FontNames arbitrary-                    , liftM FontPath arbitrary-                    , liftM FontSize arbitrary-                    , liftM Group arbitrary-                    , liftM HeadURL arbitrary-                    , liftM HeadClip arbitrary-                    , liftM HeadLabel arbitrary-                    , liftM HeadPort arbitrary-                    , liftM HeadTarget arbitrary-                    , liftM HeadTooltip arbitrary-                    , liftM Height arbitrary-                    , liftM ID arbitrary-                    , liftM Image arbitrary-                    , liftM ImageScale arbitrary-                    , liftM LabelURL arbitrary-                    , liftM LabelAngle arbitrary-                    , liftM LabelDistance arbitrary-                    , liftM LabelFloat arbitrary-                    , liftM LabelFontColor arbitrary-                    , liftM LabelFontName arbitrary-                    , liftM LabelFontSize arbitrary-                    , liftM LabelJust arbitrary-                    , liftM LabelLoc arbitrary-                    , liftM LabelTarget arbitrary-                    , liftM LabelTooltip arbitrary-                    , liftM Label arbitrary-                    , liftM Landscape arbitrary-                    , liftM LayerSep arbitrary-                    , liftM Layers arbitrary-                    , liftM Layer arbitrary-                    , liftM Layout arbitrary-                    , liftM Len arbitrary-                    , liftM LevelsGap arbitrary-                    , liftM Levels arbitrary-                    , liftM LHead arbitrary-                    , liftM LPos arbitrary-                    , liftM LTail arbitrary-                    , liftM Margin arbitrary-                    , liftM MaxIter arbitrary-                    , liftM MCLimit arbitrary-                    , liftM MinDist arbitrary-                    , liftM MinLen arbitrary-                    , liftM Model arbitrary-                    , liftM Mode arbitrary-                    , liftM Mosek arbitrary-                    , liftM NodeSep arbitrary-                    , liftM NoJustify arbitrary-                    , liftM Normalize arbitrary-                    , liftM Nslimit1 arbitrary-                    , liftM Nslimit arbitrary-                    , liftM Ordering arbitrary-                    , liftM Orientation arbitrary-                    , liftM OutputOrder arbitrary-                    , liftM OverlapScaling arbitrary-                    , liftM Overlap arbitrary-                    , liftM PackMode arbitrary-                    , liftM Pack arbitrary-                    , liftM Pad arbitrary-                    , liftM PageDir arbitrary-                    , liftM Page arbitrary-                    , liftM PenColor arbitrary-                    , liftM PenWidth arbitrary-                    , liftM Peripheries arbitrary-                    , liftM Pin arbitrary-                    , liftM Pos arbitrary-                    , liftM QuadTree arbitrary-                    , liftM Quantum arbitrary-                    , liftM RankDir arbitrary-                    , liftM RankSep arbList-                    , liftM Rank arbitrary-                    , liftM Ratio arbitrary-                    , liftM Rects arbList-                    , liftM Regular arbitrary-                    , liftM ReMinCross arbitrary-                    , liftM RepulsiveForce arbitrary-                    , liftM Root arbitrary-                    , liftM Rotate arbitrary-                    , liftM SameHead arbitrary-                    , liftM SameTail arbitrary-                    , liftM SamplePoints arbitrary-                    , liftM SearchSize arbitrary-                    , liftM Sep arbitrary-                    , liftM ShapeFile arbitrary-                    , liftM Shape arbitrary-                    , liftM ShowBoxes arbitrary-                    , liftM Sides arbitrary-                    , liftM Size arbitrary-                    , liftM Skew arbitrary-                    , liftM Smoothing arbitrary-                    , liftM SortV arbitrary-                    , liftM Splines arbitrary-                    , liftM Start arbitrary-                    , liftM StyleSheet arbitrary-                    , liftM Style arbList-                    , liftM TailURL arbitrary-                    , liftM TailClip arbitrary-                    , liftM TailLabel arbitrary-                    , liftM TailPort arbitrary-                    , liftM TailTarget arbitrary-                    , liftM TailTooltip arbitrary-                    , liftM Target arbitrary-                    , liftM Tooltip arbitrary-                    , liftM TrueColor arbitrary-                    , liftM Vertices arbList-                    , liftM ViewPort arbitrary-                    , liftM VoroMargin arbitrary-                    , liftM Weight arbitrary-                    , liftM Width arbitrary-                    , liftM Z arbitrary-                    , liftM2 UnknownAttribute (suchThat arbIDString validUnknown) arbitrary-                    ]--  shrink (Damping v)            = map Damping             $ shrink v-  shrink (K v)                  = map K                   $ shrink v-  shrink (URL v)                = map URL                 $ shrink v-  shrink (ArrowHead v)          = map ArrowHead           $ shrink v-  shrink (ArrowSize v)          = map ArrowSize           $ shrink v-  shrink (ArrowTail v)          = map ArrowTail           $ shrink v-  shrink (Aspect v)             = map Aspect              $ shrink v-  shrink (Bb v)                 = map Bb                  $ shrink v-  shrink (BgColor v)            = map BgColor             $ shrink v-  shrink (Center v)             = map Center              $ shrink v-  shrink (ClusterRank v)        = map ClusterRank         $ shrink v-  shrink (ColorScheme v)        = map ColorScheme         $ shrink v-  shrink (Color v)              = map Color               $ nonEmptyShrinks v-  shrink (Comment v)            = map Comment             $ shrink v-  shrink (Compound v)           = map Compound            $ shrink v-  shrink (Concentrate v)        = map Concentrate         $ shrink v-  shrink (Constraint v)         = map Constraint          $ shrink v-  shrink (Decorate v)           = map Decorate            $ shrink v-  shrink (DefaultDist v)        = map DefaultDist         $ shrink v-  shrink (Dimen v)              = map Dimen               $ shrink v-  shrink (Dim v)                = map Dim                 $ shrink v-  shrink (Dir v)                = map Dir                 $ shrink v-  shrink (DirEdgeConstraints v) = map DirEdgeConstraints  $ shrink v-  shrink (Distortion v)         = map Distortion          $ shrink v-  shrink (DPI v)                = map DPI                 $ shrink v-  shrink (EdgeURL v)            = map EdgeURL             $ shrink v-  shrink (EdgeTarget v)         = map EdgeTarget          $ shrink v-  shrink (EdgeTooltip v)        = map EdgeTooltip         $ shrink v-  shrink (Epsilon v)            = map Epsilon             $ shrink v-  shrink (ESep v)               = map ESep                $ shrink v-  shrink (FillColor v)          = map FillColor           $ shrink v-  shrink (FixedSize v)          = map FixedSize           $ shrink v-  shrink (FontColor v)          = map FontColor           $ shrink v-  shrink (FontName v)           = map FontName            $ shrink v-  shrink (FontNames v)          = map FontNames           $ shrink v-  shrink (FontPath v)           = map FontPath            $ shrink v-  shrink (FontSize v)           = map FontSize            $ shrink v-  shrink (Group v)              = map Group               $ shrink v-  shrink (HeadURL v)            = map HeadURL             $ shrink v-  shrink (HeadClip v)           = map HeadClip            $ shrink v-  shrink (HeadLabel v)          = map HeadLabel           $ shrink v-  shrink (HeadPort v)           = map HeadPort            $ shrink v-  shrink (HeadTarget v)         = map HeadTarget          $ shrink v-  shrink (HeadTooltip v)        = map HeadTooltip         $ shrink v-  shrink (Height v)             = map Height              $ shrink v-  shrink (ID v)                 = map ID                  $ shrink v-  shrink (Image v)              = map Image               $ shrink v-  shrink (ImageScale v)         = map ImageScale          $ shrink v-  shrink (LabelURL v)           = map LabelURL            $ shrink v-  shrink (LabelAngle v)         = map LabelAngle          $ shrink v-  shrink (LabelDistance v)      = map LabelDistance       $ shrink v-  shrink (LabelFloat v)         = map LabelFloat          $ shrink v-  shrink (LabelFontColor v)     = map LabelFontColor      $ shrink v-  shrink (LabelFontName v)      = map LabelFontName       $ shrink v-  shrink (LabelFontSize v)      = map LabelFontSize       $ shrink v-  shrink (LabelJust v)          = map LabelJust           $ shrink v-  shrink (LabelLoc v)           = map LabelLoc            $ shrink v-  shrink (LabelTarget v)        = map LabelTarget         $ shrink v-  shrink (LabelTooltip v)       = map LabelTooltip        $ shrink v-  shrink (Label v)              = map Label               $ shrink v-  shrink (Landscape v)          = map Landscape           $ shrink v-  shrink (LayerSep v)           = map LayerSep            $ shrink v-  shrink (Layers v)             = map Layers              $ shrink v-  shrink (Layer v)              = map Layer               $ shrink v-  shrink (Layout v)             = map Layout              $ shrink v-  shrink (Len v)                = map Len                 $ shrink v-  shrink (LevelsGap v)          = map LevelsGap           $ shrink v-  shrink (Levels v)             = map Levels              $ shrink v-  shrink (LHead v)              = map LHead               $ shrink v-  shrink (LPos v)               = map LPos                $ shrink v-  shrink (LTail v)              = map LTail               $ shrink v-  shrink (Margin v)             = map Margin              $ shrink v-  shrink (MaxIter v)            = map MaxIter             $ shrink v-  shrink (MCLimit v)            = map MCLimit             $ shrink v-  shrink (MinDist v)            = map MinDist             $ shrink v-  shrink (MinLen v)             = map MinLen              $ shrink v-  shrink (Model v)              = map Model               $ shrink v-  shrink (Mode v)               = map Mode                $ shrink v-  shrink (Mosek v)              = map Mosek               $ shrink v-  shrink (NodeSep v)            = map NodeSep             $ shrink v-  shrink (NoJustify v)          = map NoJustify           $ shrink v-  shrink (Normalize v)          = map Normalize           $ shrink v-  shrink (Nslimit1 v)           = map Nslimit1            $ shrink v-  shrink (Nslimit v)            = map Nslimit             $ shrink v-  shrink (Ordering v)           = map Ordering            $ shrink v-  shrink (Orientation v)        = map Orientation         $ shrink v-  shrink (OutputOrder v)        = map OutputOrder         $ shrink v-  shrink (OverlapScaling v)     = map OverlapScaling      $ shrink v-  shrink (Overlap v)            = map Overlap             $ shrink v-  shrink (PackMode v)           = map PackMode            $ shrink v-  shrink (Pack v)               = map Pack                $ shrink v-  shrink (Pad v)                = map Pad                 $ shrink v-  shrink (PageDir v)            = map PageDir             $ shrink v-  shrink (Page v)               = map Page                $ shrink v-  shrink (PenColor v)           = map PenColor            $ shrink v-  shrink (PenWidth v)           = map PenWidth            $ shrink v-  shrink (Peripheries v)        = map Peripheries         $ shrink v-  shrink (Pin v)                = map Pin                 $ shrink v-  shrink (Pos v)                = map Pos                 $ shrink v-  shrink (QuadTree v)           = map QuadTree            $ shrink v-  shrink (Quantum v)            = map Quantum             $ shrink v-  shrink (RankDir v)            = map RankDir             $ shrink v-  shrink (RankSep v)            = map RankSep             $ nonEmptyShrinks v-  shrink (Rank v)               = map Rank                $ shrink v-  shrink (Ratio v)              = map Ratio               $ shrink v-  shrink (Rects v)              = map Rects               $ nonEmptyShrinks v-  shrink (Regular v)            = map Regular             $ shrink v-  shrink (ReMinCross v)         = map ReMinCross          $ shrink v-  shrink (RepulsiveForce v)     = map RepulsiveForce      $ shrink v-  shrink (Root v)               = map Root                $ shrink v-  shrink (Rotate v)             = map Rotate              $ shrink v-  shrink (SameHead v)           = map SameHead            $ shrink v-  shrink (SameTail v)           = map SameTail            $ shrink v-  shrink (SamplePoints v)       = map SamplePoints        $ shrink v-  shrink (SearchSize v)         = map SearchSize          $ shrink v-  shrink (Sep v)                = map Sep                 $ shrink v-  shrink (ShapeFile v)          = map ShapeFile           $ shrink v-  shrink (Shape v)              = map Shape               $ shrink v-  shrink (ShowBoxes v)          = map ShowBoxes           $ shrink v-  shrink (Sides v)              = map Sides               $ shrink v-  shrink (Size v)               = map Size                $ shrink v-  shrink (Skew v)               = map Skew                $ shrink v-  shrink (Smoothing v)          = map Smoothing           $ shrink v-  shrink (SortV v)              = map SortV               $ shrink v-  shrink (Splines v)            = map Splines             $ shrink v-  shrink (Start v)              = map Start               $ shrink v-  shrink (StyleSheet v)         = map StyleSheet          $ shrink v-  shrink (Style v)              = map Style               $ nonEmptyShrinks v-  shrink (TailURL v)            = map TailURL             $ shrink v-  shrink (TailClip v)           = map TailClip            $ shrink v-  shrink (TailLabel v)          = map TailLabel           $ shrink v-  shrink (TailPort v)           = map TailPort            $ shrink v-  shrink (TailTarget v)         = map TailTarget          $ shrink v-  shrink (TailTooltip v)        = map TailTooltip         $ shrink v-  shrink (Target v)             = map Target              $ shrink v-  shrink (Tooltip v)            = map Tooltip             $ shrink v-  shrink (TrueColor v)          = map TrueColor           $ shrink v-  shrink (Vertices v)           = map Vertices            $ nonEmptyShrinks v-  shrink (ViewPort v)           = map ViewPort            $ shrink v-  shrink (VoroMargin v)         = map VoroMargin          $ shrink v-  shrink (Weight v)             = map Weight              $ shrink v-  shrink (Width v)              = map Width               $ shrink v-  shrink (Z v)                  = map Z                   $ shrink v-  shrink (UnknownAttribute a v) = liftM2 UnknownAttribute (liftM (filter validUnknown) shrink a) (shrink v)-{- delete to here -}--instance Arbitrary ArrowType where-  arbitrary = liftM AType-              -- Arrow specifications have between 1 and 4 elements.-              $ sized (\ s -> resize (min s 4) arbList)--  shrink (AType as) = map AType $ nonEmptyShrinks as--instance Arbitrary ArrowShape where-  arbitrary = arbBounded--instance Arbitrary ArrowModifier where-  arbitrary = liftM2 ArrMod arbitrary arbitrary--instance Arbitrary ArrowFill where-  arbitrary = arbBounded--instance Arbitrary ArrowSide where-  arbitrary = arbBounded--instance Arbitrary AspectType where-  arbitrary = oneof [ liftM  RatioOnly arbitrary-                    , liftM2 RatioPassCount arbitrary posArbitrary-                    ]--  shrink (RatioOnly d) = map RatioOnly $ shrink d-  shrink (RatioPassCount d i) = do ds <- shrink d-                                   is <- shrink i-                                   return $ RatioPassCount ds is--instance Arbitrary Rect where-  arbitrary = liftM2 Rect point2D point2D--  shrink (Rect p1 p2) = do p1s <- shrink p1-                           p2s <- shrink p2-                           return $ Rect p1s p2s--instance Arbitrary Point where-  -- Pretty sure points have to be positive...-  arbitrary = liftM4 Point posArbitrary posArbitrary posZ arbitrary-    where-      posZ = frequency [(1, return Nothing), (3, liftM Just posArbitrary)]--  shrink p = do x' <- shrink $ xCoord p-                y' <- shrink $ yCoord p-                z' <- shrinkM $ zCoord p-                return $ Point x' y' z' False--point2D :: Gen Point-point2D = liftM2 createPoint posArbitrary posArbitrary--instance Arbitrary ClusterMode where-  arbitrary = arbBounded--instance Arbitrary DirType where-  arbitrary = arbBounded--instance Arbitrary DEConstraints where-  arbitrary = arbBounded--instance Arbitrary DPoint where-  arbitrary = oneof [ liftM DVal arbitrary-                    , liftM PVal point2D-                    ]--  shrink (DVal d) = map DVal $ shrink d-  shrink (PVal p) = map PVal $ shrink p--instance Arbitrary ModeType where-  arbitrary = arbBounded--instance Arbitrary Model where-  arbitrary = arbBounded--instance Arbitrary Label where-  arbitrary = oneof [ liftM StrLabel arbitrary-                    , liftM HtmlLabel arbitrary-                    , liftM RecordLabel $ suchThat arbList notStr-                    ]--  shrink (StrLabel str)   = map StrLabel $ shrink str-  shrink (HtmlLabel html) = map HtmlLabel $ shrink html-  shrink (RecordLabel fs) = map RecordLabel . filter notStr $ shrinkList fs--notStr                :: RecordFields -> Bool-notStr [FieldLabel{}] = False -- Just in case-notStr _              = True--arbField     :: Bool -> Int -> Gen RecordField-arbField b s = resize s'-               . oneof-               . bool id ((:) genFlipped) b-               $ [ liftM2 LabelledTarget arbitrary arbitrary-                 , liftM PortName arbitrary-                 , liftM FieldLabel arbitrary-                 ]-  where-    genFlipped = liftM FlipFields-                 $ listOf1 (sized $ arbField False)-    s' = min 3 s--instance Arbitrary RecordField where-  arbitrary = sized (arbField True)--  shrink (LabelledTarget f l) = [PortName f, FieldLabel l]-  shrink (PortName f)         = map PortName $ shrink f-  shrink (FieldLabel l)       = map FieldLabel $ shrink l-  shrink (FlipFields fs)      = map FlipFields $ shrinkList fs--instance Arbitrary Overlap where-  arbitrary = oneof [ simpleOverlap-                    , liftM PrismOverlap arbitrary-                    ]-    where-      -- Have to do this by hand since Overlap can't have Bounded and-      -- Enum instances-      simpleOverlap = elements [ KeepOverlaps-                               , RemoveOverlaps-                               , ScaleOverlaps-                               , ScaleXYOverlaps-                               , CompressOverlap-                               , VpscOverlap-                               , IpsepOverlap-                               ]--  shrink (PrismOverlap mi) = map PrismOverlap $ shrink mi-  shrink _                 = []--instance Arbitrary LayerSep where-  -- Since Arbitrary isn't stateful, we can't generate an arbitrary-  -- one because of arbLayerName-  arbitrary = return . LSep . T.pack $ layerSep initialState--instance Arbitrary LayerList where-  arbitrary = liftM LL $ listOf1 arbName-    where-      arbName = suchThat arbitrary isLayerName--      isLayerName LRName{} = True-      isLayerName _        = False--  shrink (LL ll) = map LL $ nonEmptyShrinks ll--instance Arbitrary LayerRange where-  arbitrary = oneof [ liftM LRID arbitrary-                    , liftM2 LRS arbitrary arbitrary-                    ]--  shrink (LRID nm)   = map LRID $ shrink nm-  shrink (LRS l1 l2) = [LRID l1, LRID l2]--instance Arbitrary LayerID where-  arbitrary = oneof [ return AllLayers-                    , liftM LRInt arbitrary-                    , liftM LRName $ suchThat arbLayerName lrnameCheck-                    ]--  shrink AllLayers   = []-  shrink (LRInt i)   = map LRInt $ shrink i-  shrink (LRName nm) = map LRName-                       . filter lrnameCheck-                       $ shrink nm--lrnameCheck :: Text -> Bool-lrnameCheck = (/=) "all"--instance Arbitrary OutputMode where-  arbitrary = arbBounded--instance Arbitrary Pack where-  arbitrary = oneof [ return DoPack-                    , return DontPack-                    , liftM PackMargin arbitrary-                    ]--  shrink (PackMargin m) = map PackMargin $ shrink m-  shrink _              = []--instance Arbitrary PackMode where-  arbitrary = oneof [ return PackNode-                    , return PackClust-                    , return PackGraph-                    , liftM3 PackArray arbitrary arbitrary arbitrary-                    ]--  shrink (PackArray c u mi) = map (PackArray c u) $ shrink mi-  shrink _                  = []--instance Arbitrary Pos where-  arbitrary = oneof [ liftM PointPos arbitrary-                      -- A single spline with only one point overall-                      -- is just a point...-                    , liftM SplinePos $ suchThat arbList validSplineList-                    ]--  shrink (PointPos p)   = map PointPos $ shrink p-  shrink (SplinePos ss) = map SplinePos . filter validSplineList-                          $ nonEmptyShrinks ss--validSplineList                              :: [Spline] -> Bool-validSplineList [Spline Nothing Nothing [_]] = False-validSplineList _                            = True--instance Arbitrary Spline where-  arbitrary = liftM3 Spline arbitrary arbitrary-              -- list of points must have length of 1 mod 3-              $ suchThat arbitrary ((==) 1 . flip mod 3 . length)--  shrink (Spline Nothing Nothing [p]) = map (Spline Nothing Nothing . return)-                                        $ shrink p-  -- We're not going to be shrinking the points in the list; just-  -- making sure that its length is === 1 mod 3-  shrink (Spline ms me ps) = do mss <- shrinkM ms-                                mes <- shrinkM me-                                pss <- rem2 ps-                                return $ Spline mss mes pss-    where--      rem1 []     = []-      rem1 (a:as) = as : map (a:) (rem1 as)--      rem2 = nub . concatMap rem1 . rem1--instance Arbitrary EdgeType where-  arbitrary = arbBounded--instance Arbitrary PageDir where-  arbitrary = arbBounded--instance Arbitrary QuadType where-  arbitrary = arbBounded--instance Arbitrary Root where-  arbitrary = oneof [ return IsCentral-                    , return NotCentral-                    , liftM NodeName arbitrary-                    ]--  shrink (NodeName nm) = map NodeName $ shrink nm-  shrink _             = []--instance Arbitrary RankType where-  arbitrary = arbBounded--instance Arbitrary RankDir where-  arbitrary = arbBounded--instance Arbitrary Shape where-  arbitrary = arbBounded--instance Arbitrary SmoothType where-  arbitrary = arbBounded--instance Arbitrary StartType where-  arbitrary = oneof [ liftM  StartStyle arbitrary-                    , liftM  StartSeed arbitrary-                    , liftM2 StartStyleSeed arbitrary arbitrary-                    ]--  shrink StartStyle{} = [] -- No shrinks for STStyle-  shrink (StartSeed ss) = map StartSeed $ shrink ss-  shrink (StartStyleSeed st ss) = map (StartStyleSeed st) $ shrink ss--instance Arbitrary STStyle where-  arbitrary = arbBounded--instance Arbitrary StyleItem where-  arbitrary = liftM2 SItem arbitrary (listOf arbStyleName)--  -- Can't use this because of what shrink on the individual strings-  -- might do.-  -- shrink (SItem sn opts) = map (SItem sn) $ shrink opts--instance Arbitrary StyleName where-  arbitrary = oneof [ defaultStyles-                    , liftM DD $ suchThat arbStyleName notDefault-                    ]-    where-      defaultStyles = elements [ Dashed-                               , Dotted-                               , Bold-                               , Invisible-                               , Filled-                               , Diagonals-                               , Rounded-                               ]-      notDefault = flip notElem [ "dashed"-                                , "dotted"-                                , "solid"-                                , "bold"-                                , "invis"-                                , "filled"-                                , "diagonals"-                                , "rounded"-                                ]--instance Arbitrary PortPos where-  arbitrary = oneof [ liftM2 LabelledPort arbitrary arbitrary-                    , liftM CompassPoint arbitrary-                    ]--  shrink (LabelledPort pn mc) = map (flip LabelledPort mc) $ shrink pn-  shrink _                    = []--instance Arbitrary CompassPoint where-  arbitrary = arbBounded--instance Arbitrary ViewPort where-  arbitrary = liftM4 VP arbitrary arbitrary arbitrary arbitrary--  shrink (VP w h z f) = case sVPs of-                          [_] -> []-                          _   -> sVPs-    where-      sVPs = do ws <- shrink w-                hs <- shrink h-                zs <- shrink z-                fs <- shrinkM f-                return $ VP ws hs zs fs--instance Arbitrary FocusType where-  arbitrary = oneof [ liftM XY arbitrary-                    , liftM NodeFocus $ suchThat arbitrary (T.all ((/=) ','))-                    ]--  shrink (XY p)          = map XY $ shrink p-  shrink (NodeFocus str) = map NodeFocus $ shrink str--instance Arbitrary VerticalPlacement where-  arbitrary = arbBounded--instance Arbitrary ScaleType where-  arbitrary = arbBounded--instance Arbitrary Justification where-  arbitrary = arbBounded--instance Arbitrary Ratios where-  arbitrary = oneof [ liftM AspectRatio posArbitrary-                    , namedRats-                    ]-    where-      namedRats = elements [ FillRatio-                           , CompressRatio-                           , ExpandRatio-                           , AutoRatio-                           ]--  shrink (AspectRatio r) = map (AspectRatio . fromPositive)-                           . shrink $ Positive r-  shrink _               = []--instance Arbitrary ColorScheme where-  arbitrary = oneof [ return X11-                    , liftM Brewer arbitrary-                    ]--  shrink (Brewer bs) = map Brewer $ shrink bs-  shrink _           = []--instance Arbitrary BrewerScheme where-  arbitrary = liftM2 BScheme arbitrary arbitrary -- Not /quite/ right, but close enough--  shrink (BScheme nm l) = map (BScheme nm) $ shrink l--instance Arbitrary BrewerName where-  arbitrary = arbBounded--instance Arbitrary Color where-  arbitrary = oneof [ liftM3 RGB  arbitrary arbitrary arbitrary-                    , liftM4 RGBA arbitrary arbitrary arbitrary arbitrary-                    , liftM3 HSV  zeroOne zeroOne zeroOne-                    , liftM X11Color arbitrary-                      -- Not quite right as the values can get too-                      -- high/low, but should suffice for-                      -- printing/parsing purposes.-                    , liftM2 BrewerColor arbitrary arbitrary-                    ]-    where-      zeroOne = choose (0,1)--  shrink (RGB r g b)       = do rs <- shrink r-                                gs <- shrink g-                                bs <- shrink b-                                return $ RGB rs gs bs-  shrink (RGBA r g b a)    = RGB r g b-                             : do rs <- shrink r-                                  gs <- shrink g-                                  bs <- shrink b-                                  as <- shrink a-                                  return $ RGBA rs gs bs as-  shrink (BrewerColor s c) = map (BrewerColor s) $ shrink c-  shrink _                 = [] -- Shrinking 0<=h,s,v<=1 does nothing--instance Arbitrary X11Color where-  arbitrary = arbBounded--instance Arbitrary HtmlLabel where-  arbitrary = sized $ arbHtml True--  shrink ht@(HtmlText txts) = delete ht . map HtmlText $ shrinkL txts-  shrink (HtmlTable tbl)    = map HtmlTable $ shrink tbl---- Note: for the most part, HtmlLabel values are very repetitive (and--- furthermore, they end up chewing a large amount of memory).  As--- such, use resize to limit how large the actual HtmlLabel values--- become.-arbHtml         :: Bool -> Int -> Gen HtmlLabel-arbHtml table s = resize' $ frequency options-  where-    s' = min 2 s-    resize' = if not table-              then resize s'-              else id-    allowTable = if table-                 then (:) (1, arbTbl)-                 else id-    arbTbl = liftM HtmlTable arbitrary-    options = allowTable [ (20, liftM HtmlText . sized $ arbHtmlTexts table) ]--arbHtmlTexts       :: Bool -> Int -> Gen HtmlText-arbHtmlTexts fnt s = liftM simplifyHtmlText-                     . resize s'-                     . listOf1-                     . sized-                     $ arbHtmlText fnt-  where-    s' = min s 10---- When parsing, all textual characters are parsed together; thus,--- make sure we generate them like that.-simplifyHtmlText :: HtmlText -> HtmlText-simplifyHtmlText = map head . groupBy sameType-  where-    sameType HtmlStr{}     HtmlStr{}     = True-    sameType HtmlNewline{} HtmlNewline{} = True-    sameType HtmlFont{}    HtmlFont{}    = True-    sameType _             _             = False--instance Arbitrary HtmlTextItem where-  arbitrary = sized $ arbHtmlText True--  shrink (HtmlStr str) = map HtmlStr $ shrink str-  shrink (HtmlNewline as) = map HtmlNewline $ shrink as-  shrink hf@(HtmlFont as txt) = do as' <- shrink as-                                   txt' <- shrinkL txt-                                   returnCheck hf $ HtmlFont as' txt'--arbHtmlText        :: Bool -> Int -> Gen HtmlTextItem-arbHtmlText font s = frequency options-  where-    allowFonts = if font-                 then (:) (1, arbFont)-                 else id-    s' = min 2 s-    arbFont = liftM2 HtmlFont arbitrary . resize s' . sized $ arbHtmlTexts False-    options = allowFonts [ (10, liftM HtmlStr arbitrary)-                         , (10, liftM HtmlNewline arbitrary)-                         ]--instance Arbitrary HtmlTable where-  arbitrary = liftM3 HTable arbitrary arbitrary (sized arbRows)-    where-      arbRows s = resize (min s 10) arbList--  shrink (HTable fas as rs) = map (HTable fas as) $ shrinkL rs--instance Arbitrary HtmlRow where-  arbitrary = liftM HtmlRow arbList--  shrink hr@(HtmlRow cs) = delete hr . map HtmlRow $ shrinkL cs--instance Arbitrary HtmlCell where-  arbitrary = oneof [ liftM2 HtmlLabelCell arbitrary . sized $ arbHtml False-                    , liftM2 HtmlImgCell arbitrary arbitrary-                    ]--  shrink lc@(HtmlLabelCell as h) = do as' <- shrink as-                                      h' <- shrink h-                                      returnCheck lc $ HtmlLabelCell as' h'-  shrink (HtmlImgCell as ic) = map (HtmlImgCell as) $ shrink ic--instance Arbitrary HtmlImg where-  arbitrary = liftM HtmlImg arbitrary--instance Arbitrary HtmlAttribute where-  arbitrary = oneof [ liftM HtmlAlign arbitrary-                    , liftM HtmlBAlign arbitrary-                    , liftM HtmlBGColor arbitrary-                    , liftM HtmlBorder arbitrary-                    , liftM HtmlCellBorder arbitrary-                    , liftM HtmlCellPadding arbitrary-                    , liftM HtmlCellSpacing arbitrary-                    , liftM HtmlColor arbitrary-                    , liftM HtmlColSpan arbitrary-                    , liftM HtmlFace arbitrary-                    , liftM HtmlFixedSize arbitrary-                    , liftM HtmlHeight arbitrary-                    , liftM HtmlHRef arbitrary-                    , liftM HtmlPointSize arbitrary-                    , liftM HtmlPort arbitrary-                    , liftM HtmlRowSpan arbitrary-                    , liftM HtmlScale arbitrary-                    , liftM HtmlSrc arbString-                    , liftM HtmlTarget arbitrary-                    , liftM HtmlTitle arbitrary-                    , liftM HtmlVAlign arbitrary-                    , liftM HtmlWidth arbitrary-                    ]--  shrink (HtmlAlign v)       = map HtmlAlign       $ shrink v-  shrink (HtmlBAlign v)      = map HtmlBAlign      $ shrink v-  shrink (HtmlBGColor v)     = map HtmlBGColor     $ shrink v-  shrink (HtmlBorder v)      = map HtmlBorder      $ shrink v-  shrink (HtmlCellBorder v)  = map HtmlCellBorder  $ shrink v-  shrink (HtmlCellPadding v) = map HtmlCellPadding $ shrink v-  shrink (HtmlCellSpacing v) = map HtmlCellSpacing $ shrink v-  shrink (HtmlColor v)       = map HtmlColor       $ shrink v-  shrink (HtmlColSpan v)     = map HtmlColSpan     $ shrink v-  shrink (HtmlFace v)        = map HtmlFace        $ shrink v-  shrink (HtmlFixedSize v)   = map HtmlFixedSize   $ shrink v-  shrink (HtmlHeight v)      = map HtmlHeight      $ shrink v-  shrink (HtmlHRef v)        = map HtmlHRef        $ shrink v-  shrink (HtmlPointSize v)   = map HtmlPointSize   $ shrink v-  shrink (HtmlPort v)        = map HtmlPort        $ shrink v-  shrink (HtmlRowSpan v)     = map HtmlRowSpan     $ shrink v-  shrink (HtmlScale v)       = map HtmlScale       $ shrink v-  shrink (HtmlSrc v)         = map HtmlSrc         $ shrinkString v-  shrink (HtmlTarget v)      = map HtmlTarget      $ shrink v-  shrink (HtmlTitle v)       = map HtmlTitle       $ shrink v-  shrink (HtmlVAlign v)      = map HtmlVAlign      $ shrink v-  shrink (HtmlWidth v)       = map HtmlWidth       $ shrink v--instance Arbitrary HtmlScale where-  arbitrary = arbBounded--instance Arbitrary HtmlAlign where-  arbitrary = arbBounded--instance Arbitrary HtmlVAlign where-  arbitrary = arbBounded--instance Arbitrary PortName where-  arbitrary = liftM PN-              $ suchThat arbitrary (liftM2 (&&) (T.all (/=':')) notCP)--  shrink = map PN . filter notCP . shrink . portName--notCP :: Text -> Bool-notCP = flip Map.notMember compassLookup
− Data/GraphViz/Testing/Instances/Canonical.hs
@@ -1,57 +0,0 @@-{-# OPTIONS_GHC -fno-warn-orphans #-}-{-# OPTIONS_HADDOCK hide #-}--{- |-   Module      : Data.GraphViz.Testing.Instances.Canonical-   Description : Canonical dot graph instances for Arbitrary.-   Copyright   : (c) Ivan Lazar Miljenovic-   License     : 3-Clause BSD-style-   Maintainer  : Ivan.Miljenovic@gmail.com- -}-module Data.GraphViz.Testing.Instances.Canonical where--import Data.GraphViz.Testing.Instances.Common-import Data.GraphViz.Testing.Instances.Helpers--import Data.GraphViz.Types.Canonical-import Data.GraphViz.Util(bool)--import Test.QuickCheck--import Control.Monad(liftM2, liftM4)---- -------------------------------------------------------------------------------- Defining Arbitrary instances for the overall types--instance (Eq n, Arbitrary n) => Arbitrary (DotGraph n) where-  arbitrary = liftM4 DotGraph arbitrary arbitrary arbitrary arbitrary--  shrink (DotGraph str dir gid stmts) = map (DotGraph str dir gid)-                                        $ shrink stmts--instance (Eq n, Arbitrary n) => Arbitrary (DotStatements n) where-  arbitrary = sized (arbDS gaGraph True)--  shrink ds@(DotStmts gas sgs ns es) = do gas' <- shrinkL gas-                                          sgs' <- shrinkL sgs-                                          ns' <- shrinkL ns-                                          es' <- shrinkL es-                                          returnCheck ds-                                            $ DotStmts gas' sgs' ns' es'---- | If 'True', generate 'DotSubGraph's; otherwise don't.-arbDS              :: (Arbitrary n, Eq n) => Gen GlobalAttributes -> Bool-                      -> Int -> Gen (DotStatements n)-arbDS ga haveSGs s = liftM4 DotStmts (listOf ga) genSGs arbitrary arbitrary-  where-    s' = min s 2-    genSGs = if haveSGs-             then resize s' arbitrary-             else return []--instance (Eq n, Arbitrary n) => Arbitrary (DotSubGraph n) where-  arbitrary = do isClust <- arbitrary-                 let ga = bool gaSubGraph gaClusters isClust-                 liftM2 (DotSG isClust) arbitrary (sized $ arbDS ga False)--  shrink (DotSG isCl mid stmts) = map (DotSG isCl mid) $ shrink stmts
− Data/GraphViz/Testing/Instances/Common.hs
@@ -1,71 +0,0 @@-{-# OPTIONS_GHC -fno-warn-orphans #-}-{-# OPTIONS_HADDOCK hide #-}--{- |-   Module      : Data.GraphViz.Testing.Instances.Common()-   Description : Attribute instances for Arbitrary.-   Copyright   : (c) Ivan Lazar Miljenovic-   License     : 3-Clause BSD-style-   Maintainer  : Ivan.Miljenovic@gmail.com- -}-module Data.GraphViz.Testing.Instances.Common-       ( gaGraph-       , gaSubGraph-       , gaClusters-       ) where--import Data.GraphViz.Testing.Instances.Attributes-import Data.GraphViz.Testing.Instances.Helpers--import Data.GraphViz.Attributes(Attributes)-import Data.GraphViz.Types.Common( DotNode(..), DotEdge(..)-                                 , GlobalAttributes(..), GraphID(..))--import Test.QuickCheck--import Control.Monad(liftM, liftM2, liftM3)---- -------------------------------------------------------------------------------- Common values--instance Arbitrary GraphID where-  arbitrary = oneof [ liftM Str arbitrary-                    , liftM Int arbitrary-                    , liftM Dbl $ suchThat arbitrary notInt-                    ]--  shrink (Str s) = map Str $ shrink s-  shrink (Int i) = map Int $ shrink i-  shrink (Dbl d) = map Dbl $ filter notInt $ shrink d--instance (Arbitrary n) => Arbitrary (DotNode n) where-  arbitrary = liftM2 DotNode arbitrary arbNodeAttrs--  shrink (DotNode n as) = map (DotNode n) $ shrinkList as--instance (Arbitrary n) => Arbitrary (DotEdge n) where-  arbitrary = liftM3 DotEdge arbitrary arbitrary arbEdgeAttrs--  shrink (DotEdge f t as) = map (DotEdge f t) $ shrinkList as--instance Arbitrary GlobalAttributes where-  arbitrary = gaGraph--  shrink (GraphAttrs atts) = map GraphAttrs $ nonEmptyShrinks atts-  shrink (NodeAttrs  atts) = map NodeAttrs  $ nonEmptyShrinks atts-  shrink (EdgeAttrs  atts) = map EdgeAttrs  $ nonEmptyShrinks atts--gaGraph :: Gen GlobalAttributes-gaGraph = gaFor arbGraphAttrs--gaSubGraph :: Gen GlobalAttributes-gaSubGraph = gaFor arbSubGraphAttrs--gaClusters :: Gen GlobalAttributes-gaClusters = gaFor arbClusterAttrs--gaFor   :: Gen Attributes -> Gen GlobalAttributes-gaFor g = oneof [ liftM GraphAttrs g-                , liftM NodeAttrs  arbNodeAttrs-                , liftM EdgeAttrs  arbEdgeAttrs-                ]
− Data/GraphViz/Testing/Instances/FGL.hs
@@ -1,47 +0,0 @@-{-# OPTIONS_GHC -fno-warn-orphans #-}-{-# LANGUAGE FlexibleInstances #-}--{- |-   Module      : Data.GraphViz.Testing.Instances.FGL-   Description : 'Arbitrary' instances for FGL graphs.-   Copyright   : (c) Ivan Lazar Miljenovic-   License     : 3-Clause BSD-style-   Maintainer  : Ivan.Miljenovic@gmail.com--   This module defines the 'Arbitrary' instances for FGL 'DynGraph'-   graphs.  Note that this instance cannot be in-   "Data.GraphViz.Testing.Instances", as this instance requires the-   FlexibleInstances extension, which makes some of the other-   'Arbitrary' instances fail to type-check.--}-module Data.GraphViz.Testing.Instances.FGL() where--import Test.QuickCheck--import Data.GraphViz.Util(uniq)--import Data.Graph.Inductive.Graph(Graph, mkGraph, nodes, delNode)-import Data.List(sortBy)-import Data.Function(on)-import Control.Monad(liftM, liftM3)---- -------------------------------------------------------------------------------- Arbitrary instance for FGL graphs.--instance (Graph g, Arbitrary n, Arbitrary e) => Arbitrary (g n e) where-  arbitrary = do ns <- suchThat genNs (not . null)-                 let nGen = elements ns-                 lns <- mapM makeLNode ns-                 les <- liftM (sortBy (compare `on` toE)) . listOf-                        $ makeLEdge nGen-                 return $ mkGraph lns les-    where-      genNs = liftM uniq arbitrary-      toE (f,t,_) = (f,t)-      makeLNode n = liftM ((,) n) arbitrary-      makeLEdge nGen = liftM3 (,,) nGen nGen arbitrary--  shrink gr = case nodes gr of-                   -- Need to have at least 2 nodes before we delete one!-                   ns@(_:_:_) -> map (`delNode` gr) ns-                   _          -> []
− Data/GraphViz/Testing/Instances/Generalised.hs
@@ -1,77 +0,0 @@-{-# OPTIONS_GHC -fno-warn-orphans #-}-{-# OPTIONS_HADDOCK hide #-}--{- |-   Module      : Data.GraphViz.Testing.Instances.Generalised-   Description : Generalised dot graph instances for Arbitrary.-   Copyright   : (c) Ivan Lazar Miljenovic-   License     : 3-Clause BSD-style-   Maintainer  : Ivan.Miljenovic@gmail.com- -}-module Data.GraphViz.Testing.Instances.Generalised where--import Data.GraphViz.Testing.Instances.Attributes()-import Data.GraphViz.Testing.Instances.Common-import Data.GraphViz.Testing.Instances.Helpers()--import Data.GraphViz.Types.Generalised-import Data.GraphViz.Util(bool)--import Test.QuickCheck--import qualified Data.Sequence as Seq-import Control.Monad(liftM, liftM2, liftM4)---- -------------------------------------------------------------------------------- Defining Arbitrary instances for the generalised types--instance (Arbitrary n) => Arbitrary (DotGraph n) where-  arbitrary = liftM4 DotGraph arbitrary arbitrary arbitrary genDStmts--  shrink (DotGraph str dir gid stmts) = map (DotGraph str dir gid)-                                          $ shrinkDStmts stmts--genDStmts :: (Arbitrary n) => Gen (DotStatements n)-genDStmts = sized (arbDS gaGraph True)--genDStmt :: (Arbitrary n) => Gen GlobalAttributes -> Bool-            -> Gen (DotStatement n)-genDStmt ga haveSGs = frequency-                      . bool id ((1,genSG):) haveSGs-                      $ [ (3, liftM GA ga)-                        , (5, liftM DN arbitrary)-                        , (7, liftM DE arbitrary)-                        ]-  where-    genSG = liftM SG arbitrary--shrinkDStmts :: (Arbitrary n) => DotStatements n -> [DotStatements n]-shrinkDStmts gds-  | len == 1  = map Seq.singleton . shrink $ Seq.index gds 0-  | otherwise = [gds1, gds2]-    where-      len = Seq.length gds-      -- Halve the sequence-      (gds1, gds2) = (len `div` 2) `Seq.splitAt` gds--instance (Arbitrary n) => Arbitrary (DotStatement n) where-  arbitrary = genDStmt gaGraph True--  shrink (GA ga) = map GA $ shrink ga-  shrink (SG sg) = map SG $ shrink sg-  shrink (DN dn) = map DN $ shrink dn-  shrink (DE de) = map DE $ shrink de---- | If 'True', generate 'GDotSubGraph's; otherwise don't.-arbDS              :: (Arbitrary n) => Gen GlobalAttributes -> Bool -> Int -> Gen (DotStatements n)-arbDS ga haveSGs s = liftM Seq.fromList . resize s' . listOf $ genDStmt ga haveSGs-  where-    s' = min s 10---instance (Arbitrary n) => Arbitrary (DotSubGraph n) where-  arbitrary = do isClust <- arbitrary-                 let ga = bool gaSubGraph gaClusters isClust-                 liftM2 (DotSG isClust) arbitrary (sized $ arbDS ga False)--  shrink (DotSG isCl mid stmts) = map (DotSG isCl mid) $ shrinkDStmts stmts
− Data/GraphViz/Testing/Instances/Graph.hs
@@ -1,31 +0,0 @@-{-# OPTIONS_GHC -fno-warn-orphans #-}-{-# OPTIONS_HADDOCK hide #-}-{-# LANGUAGE FlexibleInstances #-}--{- |-   Module      : Data.GraphViz.Testing.Instances.Graph-   Description : Graph dot graph instances for Arbitrary.-   Copyright   : (c) Ivan Lazar Miljenovic-   License     : 3-Clause BSD-style-   Maintainer  : Ivan.Miljenovic@gmail.com- -}-module Data.GraphViz.Testing.Instances.Graph where--import Data.GraphViz.Testing.Instances.Canonical()--import Data.GraphViz.Types.Graph-import Data.GraphViz.Types(fromCanonical)--import Test.QuickCheck--import Control.Monad(liftM)---- --------------------------------------------------------------------------------- | Can't directly create one of these as it might not match the---   internal format directly; as such, have to use the inefficient---   'fromCanonical' route.-instance (Arbitrary n, Ord n) => Arbitrary (DotGraph n) where-  arbitrary = liftM fromCanonical arbitrary--  shrink = map fromCanonical . shrink . toCanonical
− Data/GraphViz/Testing/Instances/Helpers.hs
@@ -1,138 +0,0 @@-{-# OPTIONS_GHC -fno-warn-orphans #-}-{-# OPTIONS_HADDOCK hide #-}-{-# LANGUAGE OverloadedStrings #-}--{- |-   Module      : Data.GraphViz.Testing.Instances.Helpers-   Description : Helper functions for graphviz Arbitrary instances.-   Copyright   : (c) Ivan Lazar Miljenovic-   License     : 3-Clause BSD-style-   Maintainer  : Ivan.Miljenovic@gmail.com- -}-module Data.GraphViz.Testing.Instances.Helpers where--import Data.GraphViz.Parsing(isNumString)-import Data.GraphViz.State(initialState, layerSep)--import Test.QuickCheck--import qualified Data.Text.Lazy as T-import Data.Text.Lazy(Text)-import Control.Monad(liftM, liftM2)---- -------------------------------------------------------------------------------- Helper Functions--instance Arbitrary Text where-  arbitrary = arbText--  shrink = filter validString-           . map T.pack . nonEmptyShrinks' . T.unpack--arbText :: Gen Text-arbText = suchThat genStr notBool-    where-      genStr = liftM2 T.cons (elements notDigits)-                             (liftM T.concat . listOf $ elements strChr)-      notDigits = ['a'..'z'] ++ ['\'', '"', ' ', '(', ')', ',', ':', '\\']-      strChr = map T.singleton $ notDigits ++ '.' : ['0'..'9']--arbString :: Gen String-arbString = liftM T.unpack arbitrary--fromPositive              :: Positive a -> a-fromPositive (Positive a) = a--posArbitrary :: (Arbitrary a, Num a, Ord a) => Gen a-posArbitrary = liftM fromPositive arbitrary--arbIDString :: Gen Text-arbIDString = suchThat genStr notBool-  where-    genStr = liftM2 T.cons (elements frst)-                           (liftM T.pack . listOf $ elements rest)-    frst = ['a'..'z'] ++ ['_']-    rest = frst ++ ['0'.. '9']--validString :: Text -> Bool-validString = liftM2 (&&) notBool notNumStr--notBool         :: Text -> Bool-notBool "true"  = False-notBool "false" = False-notBool _       = True--shrinkString :: String -> [String]-shrinkString = map T.unpack . shrink . T.pack--notNumStr :: Text -> Bool-notNumStr = not . isNumString--arbBounded :: (Bounded a, Enum a) => Gen a-arbBounded = elements [minBound .. maxBound]--arbLayerName :: Gen Text-arbLayerName = suchThat arbitrary (T.all notLayerSep)-  where-    defLayerSep = layerSep initialState-    notLayerSep = (`notElem` defLayerSep)--arbStyleName :: Gen Text-arbStyleName = suchThat arbitrary (T.all notBrackCom)-  where-    notBrackCom = flip notElem ['(', ')', ',', ' ']--arbList :: (Arbitrary a) => Gen [a]-arbList = listOf1 arbitrary--nonEmptyShrinks :: (Arbitrary a) => [a] -> [[a]]-nonEmptyShrinks = filter (not . null) . shrinkList--nonEmptyShrinks' :: [a] -> [[a]]-nonEmptyShrinks' = filter (not . null) . shrinkList'---- Shrink lists with more than one value only by removing values, not--- by shrinking individual items.-shrinkList     :: (Arbitrary a) => [a] -> [[a]]-shrinkList [a] = map return $ shrink a-shrinkList as  = shrinkList' as---- Just shrink the size.-shrinkList'     :: [a] -> [[a]]-shrinkList' as  = rm (length as) as-  where-    rm 0 _  = []-    rm 1 _  = [[]]-    rm n xs = xs1-            : xs2-            : ( [ xs1' ++ xs2 | xs1' <- rm n1 xs1, not (null xs1') ]-                `ilv` [ xs1 ++ xs2' | xs2' <- rm n2 xs2, not (null xs2') ]-              )-     where-      n1  = n `div` 2-      xs1 = take n1 xs-      n2  = n - n1-      xs2 = drop n1 xs--    []     `ilv` ys     = ys-    xs     `ilv` []     = xs-    (x:xs) `ilv` (y:ys) = x : y : (xs `ilv` ys)---- When a Maybe value is a sub-component, and we need shrink to return--- a value.-shrinkM         :: (Arbitrary a) => Maybe a -> [Maybe a]-shrinkM Nothing = [Nothing]-shrinkM j       = shrink j--shrinkL    :: (Arbitrary a) => [a] -> [[a]]-shrinkL xs = case shrinkList xs of-               []  -> [xs]-               xs' -> xs'--notInt   :: Double -> Bool-notInt d = fromIntegral (round d :: Int) /= d--returnCheck     :: (Eq a) => a -> a -> [a]-returnCheck o n = if o == n-                  then []-                  else [n]
− Data/GraphViz/Testing/Properties.hs
@@ -1,181 +0,0 @@-{-# LANGUAGE FlexibleContexts, ScopedTypeVariables #-}--{- |-   Module      : Data.GraphViz.Testing.Properties-   Description : Properties for testing.-   Copyright   : (c) Ivan Lazar Miljenovic-   License     : 3-Clause BSD-style-   Maintainer  : Ivan.Miljenovic@gmail.com--   Various properties that should hold true for the graphviz library.--}-module Data.GraphViz.Testing.Properties where--import Data.GraphViz( dotizeGraph, graphToDot-                    , setDirectedness, nonClusteredParams)-import Data.GraphViz.Types( DotRepr(..), PrintDotRepr-                          , DotNode(..), DotEdge(..), GlobalAttributes(..)-                          , printDotGraph, graphNodes, graphEdges-                          , graphStructureInformation)-import Data.GraphViz.Types.Canonical(DotGraph(..), DotStatements(..))-import qualified Data.GraphViz.Types.Generalised as G-import Data.GraphViz.Printing(PrintDot(..), printIt)-import Data.GraphViz.Parsing(ParseDot(..), parseIt, parseIt')-import Data.GraphViz.PreProcessing(preProcess)-import Data.GraphViz.Util(groupSortBy, isSingle)-import Data.GraphViz.Algorithms--import Test.QuickCheck--import Data.Graph.Inductive( Graph, DynGraph-                           , equal, nmap, emap, labNodes, labEdges, nodes, edges)-import Data.List(nub, sort)-import Data.Function(on)-import qualified Data.Map as Map-import qualified Data.Set as Set-import Data.Text.Lazy(Text)-import Control.Arrow((&&&))---- -------------------------------------------------------------------------------- The properties to test for---- | Checking that @parse . print == id@; that is, graphviz can parse---   its own output.-prop_printParseID   :: (ParseDot a, PrintDot a, Eq a) => a -> Bool-prop_printParseID a = tryParse' a == a---- | A version of 'prop_printParse' specifically for lists; it ensures---   that the list is not empty (as most list-based parsers fail on---   empty lists).-prop_printParseListID    :: (ParseDot a, PrintDot a, Eq a) => [a] -> Property-prop_printParseListID as =  not (null as) ==> prop_printParseID as---- | When converting a canonical 'DotGraph' value to any other one,---   they should generate the same Dot code.-prop_generalisedSameDot    :: (Ord n, PrintDot n, ParseDot n) => DotGraph n -> Bool-prop_generalisedSameDot dg = printDotGraph dg == printDotGraph gdg-  where-    gdg = canonicalToType (undefined :: G.DotGraph n) dg---- | Pre-processing shouldn't change the output of printed Dot code.---   This should work for all 'PrintDot' instances, but is more---   specific to 'DotGraph' values.-prop_preProcessingID    :: (PrintDotRepr dg n) => dg n -> Bool-prop_preProcessingID dg = preProcess dotCode == dotCode-  where-    dotCode = printDotGraph dg---- | This property verifies that 'dotizeGraph', etc. only /augment/ the---   original graph; that is, the actual nodes, edges and labels for---   each remain unchanged.  Whilst 'dotize', etc. only require---   'Graph' instances, this property requires 'DynGraph' (which is a---   sub-class of 'Graph') instances to be able to strip off the---   'Attributes' augmentations.-prop_dotizeAugment   :: (DynGraph g, Eq n, Ord e) => g n e -> Bool-prop_dotizeAugment g = equal g (unAugment g')-  where-    g' = setDirectedness dotizeGraph nonClusteredParams g-    unAugment = nmap snd . emap snd---- | After augmentation, each node and edge should have a non-empty--- | list of 'Attributes'.-prop_dotizeHasAugment   :: (DynGraph g, Ord e) => g n e -> Bool-prop_dotizeHasAugment g = all (not . null) nodeAugments-                          && all (not . null) edgeAugments-  where-    g' = setDirectedness dotizeGraph nonClusteredParams g-    nodeAugments = map (fst . snd) $ labNodes g'-    edgeAugments = map (fst . \(_,_,l) -> l) $ labEdges g'---- | When a graph with multiple edges is augmented, then all edges---   should have unique 'Attributes' (namely the positions).  Note---   that this may not hold true with custom supplied 'Attributes'---   (i.e. not using one of the @dotize@ functions).-prop_dotizeAugmentUniq   :: (DynGraph g, Eq n, Ord e) => g n e -> Bool-prop_dotizeAugmentUniq g = all uniqLs lss-  where-    g' = setDirectedness dotizeGraph nonClusteredParams g-    les = map (\(f,t,l) -> ((f,t),l)) $ labEdges g'-    lss = map (map snd) . filter (not . isSingle)-          $ groupSortBy fst les-    uniqLs [] = False -- Needs to have at least /one/ Attribute!-    uniqLs ls = ls == nub ls---- | Ensure that the definition of 'nodeInformation' for a DotRepr---   finds all the nodes.-prop_findAllNodes       :: (DotRepr dg Int, Ord el, Graph g)-                           => dg Int -> g nl el -> Bool-prop_findAllNodes dg' g = ((==) `on` sort) gns dgns-  where-    gns = nodes g-    dg = canonicalToType dg' $ setDirectedness graphToDot nonClusteredParams g-    dgns = map nodeID $ graphNodes dg---- | Ensure that the definition of 'nodeInformation' for DotReprs---   finds all the nodes when the explicit 'DotNode' definitions are---   removed.-prop_findAllNodesE       :: (DotRepr dg Int, Ord el, Graph g)-                            => dg Int -> g nl el -> Bool-prop_findAllNodesE dg' g = ((==) `on` sort) gns dgns-  where-    gns = nodes g-    dg = canonicalToType dg' . removeNodes $ setDirectedness graphToDot nonClusteredParams g-    dgns = map nodeID $ graphNodes dg-    removeNodes dot@DotGraph{graphStatements = stmts}-      = dot { graphStatements-               = stmts {nodeStmts = filter notInEdge $ nodeStmts stmts}-            }-    gnes = Set.fromList . concatMap (\(f,t) -> [f,t]) $ edges g-    notInEdge dn = nodeID dn `Set.notMember` gnes---- | Ensure that the definition of 'edgeInformation' for DotReprs---   finds all the nodes.-prop_findAllEdges       :: (DotRepr dg Int, Ord el, Graph g) => dg Int -> g nl el -> Bool-prop_findAllEdges dg' g = ((==) `on` sort) ges dges-  where-    ges = edges g-    dg = canonicalToType dg' $ graphToDot nonClusteredParams g-    dges = map (fromNode &&& toNode) $ graphEdges dg---- | There should be no clusters or global attributes when converting---   a 'Graph' to a DotRepr (via fromCanonical) without any formatting---   or clustering.-prop_noGraphInfo       :: (DotRepr dg Int, Ord el, Graph g)-                          => dg Int -> g nl el -> Bool-prop_noGraphInfo dg' g = info == (GraphAttrs [], Map.empty)-  where-    dg = canonicalToType dg'-         $ setDirectedness graphToDot nonClusteredParams g-    info = graphStructureInformation dg---- | Canonicalisation should be idempotent.-prop_canonicalise   :: (ParseDot n, PrintDot n, DotRepr dg n) => dg n -> Bool-prop_canonicalise g = cdg == canonicalise cdg-  where-    cdg = canonicalise g---- | Removing transitive edges should be idempotent.-prop_transitive   :: (DotRepr dg n) => dg n -> Bool-prop_transitive g = tdg == transitiveReduction tdg-  where-    tdg = transitiveReduction g---- -------------------------------------------------------------------------------- Helper utility functions---- | A utility function to use for debugging purposes for trying to---   find how graphviz /is/ parsing something.  This is easier than---   using @'parseIt' . 'printIt'@ directly, since it avoids having to---   enter and explicit type signature.-tryParse :: (ParseDot a, PrintDot a) => a -> (a, Text)-tryParse = parseIt . printIt---- | Equivalent to 'tryParse' except that it is assumed that the---   entire 'String' *is* fully consumed.-tryParse' :: (ParseDot a, PrintDot a) => a -> a-tryParse' = parseIt' . printIt---- | A wrapper around 'fromCanonical' that lets you specify up-front---   what type to create (it need not be a sensible value).-canonicalToType   :: (DotRepr dg n) => dg n -> DotGraph n -> dg n-canonicalToType _ = fromCanonical
Data/GraphViz/Types.hs view
@@ -87,11 +87,15 @@ -} module Data.GraphViz.Types        ( DotRepr(..)+       , PrintDot(..)+       , ParseDot(..)        , PrintDotRepr        , ParseDotRepr        , PPDotRepr          -- * Common sub-types        , GraphID(..)+       , ToGraphID(..)+       , textGraphID        , GlobalAttributes(..)        , DotNode(..)        , DotEdge(..)@@ -115,10 +119,11 @@                                  , DotNode(..), DotEdge(..), numericValue) import Data.GraphViz.Types.State import Data.GraphViz.Util(bool)-import Data.GraphViz.Parsing(ParseDot, runParser, checkValidParse, parse, adjustErr)+import Data.GraphViz.Parsing(ParseDot(..), runParser, checkValidParse, parse, adjustErr) import Data.GraphViz.PreProcessing(preProcess)-import Data.GraphViz.Printing(PrintDot, printIt)+import Data.GraphViz.Printing(PrintDot(..), printIt) +import qualified Data.Text.Lazy as T import Data.Text.Lazy(Text) import Control.Arrow(first) import Control.Monad.Trans.State(get, put, modify, execState, evalState)@@ -322,6 +327,40 @@  -- ----------------------------------------------------------------------------- +-- | A convenience class to make it easier to convert data types to+--   'GraphID' values, e.g. for cluster identifiers.+--+--   In most cases, conversion would be via the 'Text' or 'String'+--   instances (e.g. using 'show').+class ToGraphID a where+  toGraphID :: a -> GraphID++-- | An alias for 'toGraphID' for use with the @OverloadedStrings@+--   extension.+textGraphID :: Text -> GraphID+textGraphID = toGraphID++instance ToGraphID Text where+  toGraphID = Str++instance ToGraphID String where+  toGraphID = toGraphID . T.pack++instance ToGraphID Char where+  toGraphID = toGraphID . T.singleton++instance ToGraphID Int where+  toGraphID = Int++-- | This instance loses precision by going via 'Int'.+instance ToGraphID Integer where+  toGraphID = Int . fromInteger++instance ToGraphID Double where+  toGraphID = Dbl++-- -----------------------------------------------------------------------------+ {- $limitations     Printing of /Dot/ code is done as strictly as possible, whilst@@ -381,5 +420,5 @@      'graphNodes' will return both \"definitions\").  @canonicalise@ from      "Data.GraphViz.Algorithms" can be used to fix this. -   See "Data.GraphViz.Attributes" for more limitations.+   See "Data.GraphViz.Attributes.Complete" for more limitations.  -}
Data/GraphViz/Types/Canonical.hs view
@@ -87,6 +87,8 @@ import Data.GraphViz.Types.Common import Data.GraphViz.Parsing import Data.GraphViz.Printing+import Data.GraphViz.State(AttributeType(..))+import Data.GraphViz.Util(bool)  import Control.Arrow((&&&)) import Control.Monad(liftM)@@ -102,12 +104,14 @@                 deriving (Eq, Ord, Show, Read)  instance (PrintDot n) => PrintDot (DotGraph n) where-  unqtDot = printStmtBased printGraphID' graphStatements toDot+  unqtDot = printStmtBased printGraphID' (const GraphAttribute)+                           graphStatements toDot     where       printGraphID' = printGraphID strictGraph directedGraph graphID  instance (ParseDot n) => ParseDot (DotGraph n) where-  parseUnqt = parseStmtBased parse (parseGraphID DotGraph)+  parseUnqt = parseGraphID DotGraph+              <*> parseBracesBased GraphAttribute parseUnqt    parse = parseUnqt -- Don't want the option of quoting @@ -160,26 +164,32 @@                    deriving (Eq, Ord, Show, Read)  instance (PrintDot n) => PrintDot (DotSubGraph n) where-  unqtDot = printStmtBased printSubGraphID' subGraphStmts toDot+  unqtDot = printStmtBased printSubGraphID' subGraphAttrType+                           subGraphStmts toDot -  unqtListToDot = printStmtBasedList printSubGraphID' subGraphStmts toDot+  unqtListToDot = printStmtBasedList printSubGraphID' subGraphAttrType+                                     subGraphStmts toDot    listToDot = unqtListToDot +subGraphAttrType :: DotSubGraph n -> AttributeType+subGraphAttrType = bool SubGraphAttribute ClusterAttribute . isCluster+ printSubGraphID' :: DotSubGraph n -> DotCode printSubGraphID' = printSubGraphID (isCluster &&& subGraphID)  instance (ParseDot n) => ParseDot (DotSubGraph n) where-  parseUnqt = parseStmtBased parseUnqt (parseSubGraphID DotSG)+  parseUnqt = parseSubGraph DotSG parseUnqt               `onFail`               -- Take "anonymous" DotSubGraphs into account.-              liftM (DotSG False Nothing) (parseBracesBased parseUnqt)+              liftM (DotSG False Nothing)+                    (parseBracesBased SubGraphAttribute parseUnqt)    parse = parseUnqt -- Don't want the option of quoting           `adjustErr`           ("Not a valid Sub Graph\n\t"++) -  parseUnqtList = sepBy (whitespace' >> parseUnqt) newline'+  parseUnqtList = sepBy (whitespace >> parseUnqt) newline'    parseList = parseUnqtList 
Data/GraphViz/Types/Common.hs view
@@ -15,12 +15,12 @@  import Data.GraphViz.Parsing import Data.GraphViz.Printing+import Data.GraphViz.State import Data.GraphViz.Util import Data.GraphViz.Attributes.Complete( Attributes, Attribute(HeadPort, TailPort)                                         , usedByGraphs, usedByClusters                                         , usedByNodes) import Data.GraphViz.Attributes.Internal(PortPos, parseEdgeBasedPP)-import Data.GraphViz.State(setDirectedness, getDirectedness, getsGS, modifyGS)  import Data.Maybe(isJust) import qualified Data.Text.Lazy as T@@ -76,7 +76,7 @@ --   entire graph/sub-graph.  Note that 'GraphAttrs' also applies to --   'DotSubGraph's. -----   Note that Dot allows a single 'Attribute' to be listen on a line;+--   Note that Dot allows a single 'Attribute' to be listed on a line; --   if this is the case then when parsing, the type of 'Attribute' it --   is determined and that type of 'GlobalAttribute' is created. data GlobalAttributes = GraphAttrs { attrs :: Attributes }@@ -85,9 +85,9 @@                       deriving (Eq, Ord, Show, Read)  instance PrintDot GlobalAttributes where-  unqtDot = printAttrBased True printGlobAttrType attrs+  unqtDot = printAttrBased True printGlobAttrType globAttrType attrs -  unqtListToDot = printAttrBasedList True printGlobAttrType attrs+  unqtListToDot = printAttrBasedList True printGlobAttrType globAttrType attrs    listToDot = unqtListToDot @@ -109,7 +109,16 @@   -- Not using parseAttrBased here because we want to force usage of   -- Attributes.   parseUnqt = do gat <- parseGlobAttrType-                 as <- whitespace' >> parse++                 -- Determine if we need to set the attribute type.+                 let mtp = globAttrType $ gat [] -- Only need the constructor+                 oldTp <- getAttributeType+                 maybe (return ()) setAttributeType mtp++                 as <- whitespace >> parse++                 -- Safe to set back even if not changed.+                 setAttributeType oldTp                  return $ gat as               `onFail`               liftM determineType parse@@ -119,10 +128,17 @@           ("Not a valid listing of global attributes\n\t"++)    -- Have to do this manually because of the special case-  parseUnqtList = parseStatements parse+  parseUnqtList = parseStatements parseUnqt    parseList = parseUnqtList +-- Cheat: rather than determine whether it's a graph, cluster or+-- sub-graph just don't set it.+globAttrType :: GlobalAttributes -> Maybe AttributeType+globAttrType NodeAttrs{} = Just NodeAttribute+globAttrType EdgeAttrs{} = Just EdgeAttribute+globAttrType _           = Nothing+ parseGlobAttrType :: Parse (Attributes -> GlobalAttributes) parseGlobAttrType = oneOf [ stringRep GraphAttrs "graph"                           , stringRep NodeAttrs "node"@@ -147,9 +163,11 @@                deriving (Eq, Ord, Show, Read)  instance (PrintDot n) => PrintDot (DotNode n) where-  unqtDot = printAttrBased False printNodeID nodeAttributes+  unqtDot = printAttrBased False printNodeID+                           (const $ Just NodeAttribute) nodeAttributes -  unqtListToDot = printAttrBasedList False printNodeID nodeAttributes+  unqtListToDot = printAttrBasedList False printNodeID+                                     (const $ Just NodeAttribute) nodeAttributes    listToDot = unqtListToDot @@ -157,11 +175,11 @@ printNodeID = toDot . nodeID  instance (ParseDot n) => ParseDot (DotNode n) where-  parseUnqt = parseAttrBased parseNodeID+  parseUnqt = parseAttrBased NodeAttribute False parseNodeID    parse = parseUnqt -- Don't want the option of quoting -  parseUnqtList = parseAttrBasedList parseNodeID+  parseUnqtList = parseAttrBasedList NodeAttribute False parseNodeID    parseList = parseUnqtList @@ -193,9 +211,11 @@                deriving (Eq, Ord, Show, Read)  instance (PrintDot n) => PrintDot (DotEdge n) where-  unqtDot = printAttrBased False printEdgeID edgeAttributes+  unqtDot = printAttrBased False printEdgeID+                           (const $ Just EdgeAttribute) edgeAttributes -  unqtListToDot = printAttrBasedList False printEdgeID edgeAttributes+  unqtListToDot = printAttrBasedList False printEdgeID+                                     (const $ Just EdgeAttribute) edgeAttributes    listToDot = unqtListToDot @@ -207,7 +227,7 @@   instance (ParseDot n) => ParseDot (DotEdge n) where-  parseUnqt = parseAttrBased parseEdgeID+  parseUnqt = parseAttrBased EdgeAttribute True parseEdgeID    parse = parseUnqt -- Don't want the option of quoting @@ -265,7 +285,7 @@                    let ens' = n1 : ens                        efs = zipWith mkEdges ens' (tail ens')                        ef = return $ \ as -> concatMap ($as) efs-                   parseAttrBased ef+                   parseAttrBased EdgeAttribute True ef  instance Functor DotEdge where   fmap f e = e { fromNode = f $ fromNode e@@ -330,7 +350,7 @@     isDir' = isDir g  parseGraphID   :: (Bool -> Bool -> Maybe GraphID -> a) -> Parse a-parseGraphID f = do allWhitespace'+parseGraphID f = do whitespace                     str <- liftM isJust                            $ optional (parseAndSpace $ string strGraph)                     dir <- parseAndSpace ( stringRep True dirGraph@@ -341,19 +361,19 @@                     gID <- optional $ parseAndSpace parse                     return $ f str dir gID -printStmtBased          :: (a -> DotCode) -> (a -> b) -> (b -> DotCode)-                           -> a -> DotCode-printStmtBased f r dr a = do gs <- getsGS id-                             dc <- printBracesBased (f a) (dr $ r a)-                             modifyGS (const gs)-                             return dc--printStmtBasedList        :: (a -> DotCode) -> (a -> b) -> (b -> DotCode)-                             -> [a] -> DotCode-printStmtBasedList f r dr = vcat . mapM (printStmtBased f r dr)+printStmtBased              :: (a -> DotCode) -> (a -> AttributeType)+                               -> (a -> stmts) -> (stmts -> DotCode)+                               -> a -> DotCode+printStmtBased f ftp r dr a = do gs <- getsGS id+                                 setAttributeType $ ftp a+                                 dc <- printBracesBased (f a) (dr $ r a)+                                 modifyGS (const gs)+                                 return dc -parseStmtBased :: Parse stmt -> Parse (stmt -> a) -> Parse a-parseStmtBased = flip apply . parseBracesBased+printStmtBasedList            :: (a -> DotCode) -> (a -> AttributeType)+                                 -> (a -> stmts) -> (stmts -> DotCode)+                                 -> [a] -> DotCode+printStmtBasedList f ftp r dr = vcat . mapM (printStmtBased f ftp r dr)  -- Can't use the 'braces' combinator here because we want the closing -- brace lined up with the h value, which due to indentation might not@@ -367,13 +387,14 @@     ind = indent 4  -- | This /must/ only be used for sub-graphs, etc.-parseBracesBased   :: Parse a -> Parse a-parseBracesBased p = do gs <- getsGS id-                        a <- whitespace' >> parseBraced (wrapWhitespace p)-                        modifyGS (const gs)-                        return a-                     `adjustErr`-                     ("Not a valid value wrapped in braces.\n\t"++)+parseBracesBased      :: AttributeType -> Parse a -> Parse a+parseBracesBased tp p = do gs <- getsGS id+                           setAttributeType tp+                           a <- whitespace >> parseBraced (wrapWhitespace p)+                           modifyGS (const gs)+                           return a+                        `adjustErr`+                        ("Not a valid value wrapped in braces.\n\t"++)  printSubGraphID     :: (a -> (Bool, Maybe GraphID)) -> a -> DotCode printSubGraphID f a = sGraph'@@ -394,10 +415,16 @@     mkDot (Str str) = text str -- Quotes will be escaped later     mkDot gid       = unqtDot gid -parseSubGraphID   :: (Bool -> Maybe GraphID -> c) -> Parse c+parseSubGraph         :: (Bool -> Maybe GraphID -> stmt -> c) -> Parse stmt -> Parse c+parseSubGraph pid pst = do (isC, fID) <- parseSubGraphID pid+                           let tp = bool SubGraphAttribute ClusterAttribute isC+                           liftM fID $ parseBracesBased tp pst++parseSubGraphID   :: (Bool -> Maybe GraphID -> c) -> Parse (Bool,c) parseSubGraphID f = do string sGraph-                       whitespace-                       liftM (uncurry f) parseSGID+                       whitespace1+                       (isC,mid) <- parseSGID+                       return (isC, f isC mid)  parseSGID :: Parse (Bool, Maybe GraphID) parseSGID = oneOf [ liftM getClustFrom $ parseAndSpace parse@@ -437,47 +464,59 @@                sID <- optional $ do when isCl                                       $ optional (character '_') >> return ()                                     parseUnqt-               when (isCl || isJust sID) $ whitespace >> return ()+               when (isCl || isJust sID) $ whitespace1 >> return ()                return (isCl, sID) -} --- The Bool indicates whether or not to print empty lists-printAttrBased                :: Bool -> (a -> DotCode) -> (a -> Attributes)-                                 -> a -> DotCode-printAttrBased prEmp ff fas a = dc <> semi+-- The Bool is True for global, False for local.+printAttrBased                    :: Bool -> (a -> DotCode) -> (a -> Maybe AttributeType)+                                     -> (a -> Attributes) -> a -> DotCode+printAttrBased prEmp ff ftp fas a = do oldType <- getAttributeType+                                       maybe (return ()) setAttributeType mtp+                                       oldCS <- getColorScheme+                                       (dc <> semi) <* setAttributeType oldType+                                                    <* when prEmp (setColorScheme oldCS)   where+    mtp = ftp a     f = ff a     dc = case fas a of            [] | not prEmp -> f            as -> f <+> toDot as --- The Bool indicates whether or not to print empty lists-printAttrBasedList              :: Bool -> (a -> DotCode) -> (a -> Attributes)-                                   -> [a] -> DotCode-printAttrBasedList prEmp ff fas = vcat . mapM (printAttrBased prEmp ff fas)+-- The Bool is True for global, False for local.+printAttrBasedList                    :: Bool -> (a -> DotCode) -> (a -> Maybe AttributeType)+                                         -> (a -> Attributes) -> [a] -> DotCode+printAttrBasedList prEmp ff ftp fas = vcat . mapM (printAttrBased prEmp ff ftp fas) -parseAttrBased   :: Parse (Attributes -> a) -> Parse a-parseAttrBased p = do f <- p-                      atts <- tryParseList' (whitespace' >> parse)-                      return $ f atts-                   `adjustErr`-                   ("Not a valid attribute-based structure\n\t"++)+-- The Bool is True for global, False for local.+parseAttrBased         :: AttributeType -> Bool -> Parse (Attributes -> a) -> Parse a+parseAttrBased tp lc p = do oldType <- getAttributeType+                            setAttributeType tp+                            oldCS <- getColorScheme+                            f <- p+                            atts <- tryParseList' (whitespace >> parse)+                            when lc $ setColorScheme oldCS+                            when (tp /= oldType) $ setAttributeType oldType+                            return $ f atts+                         `adjustErr`+                         ("Not a valid attribute-based structure\n\t"++) -parseAttrBasedList :: Parse (Attributes -> a) -> Parse [a]-parseAttrBasedList = parseStatements . parseAttrBased+-- The Bool is True for global, False for local.+parseAttrBasedList       :: AttributeType -> Bool -> Parse (Attributes -> a) -> Parse [a]+parseAttrBasedList tp lc = parseStatements . parseAttrBased tp lc --- | Parse the separator (and any other whitespace present) between statements.+-- | Parse the separator (and any other whitespace1 present) between statements. statementEnd :: Parse () statementEnd = parseSplit >> newline'   where-    parseSplit = (whitespace' >> oneOf [ character ';' >> return ()+    parseSplit = (whitespace >> oneOf [ character ';' >> return ()                                        , newline                                        ]                  )                  `onFail`-                 whitespace+                 whitespace1  parseStatements   :: Parse a -> Parse [a]-parseStatements p = sepBy (whitespace' >> p) statementEnd+parseStatements p = sepBy (whitespace >> p) statementEnd                     `discard`                     optional statementEnd
Data/GraphViz/Types/Generalised.hs view
@@ -66,6 +66,7 @@ import Data.GraphViz.Types.State import Data.GraphViz.Parsing import Data.GraphViz.Printing+import Data.GraphViz.State(AttributeType(..)) import Data.GraphViz.Util(bool)  import qualified Data.Sequence as Seq@@ -120,12 +121,14 @@ instance (Ord n, PrintDot n, ParseDot n) => PPDotRepr DotGraph n  instance (PrintDot n) => PrintDot (DotGraph n) where-  unqtDot = printStmtBased printGraphID' graphStatements printGStmts+  unqtDot = printStmtBased printGraphID' (const GraphAttribute)+                           graphStatements printGStmts     where       printGraphID' = printGraphID strictGraph directedGraph graphID  instance (ParseDot n) => ParseDot (DotGraph n) where-  parseUnqt = parseStmtBased parseGStmts (parseGraphID DotGraph)+  parseUnqt = parseGraphID DotGraph+              <*> parseBracesBased GraphAttribute parseGStmts    parse = parseUnqt -- Don't want the option of quoting @@ -241,26 +244,32 @@                    deriving (Eq, Ord, Show, Read)  instance (PrintDot n) => PrintDot (DotSubGraph n) where-  unqtDot = printStmtBased printSubGraphID' subGraphStmts printGStmts+  unqtDot = printStmtBased printSubGraphID' subGraphAttrType+                           subGraphStmts printGStmts -  unqtListToDot = printStmtBasedList printSubGraphID' subGraphStmts printGStmts+  unqtListToDot = printStmtBasedList printSubGraphID' subGraphAttrType+                                     subGraphStmts printGStmts    listToDot = unqtListToDot +subGraphAttrType :: DotSubGraph n -> AttributeType+subGraphAttrType = bool SubGraphAttribute ClusterAttribute . isCluster+ printSubGraphID' :: DotSubGraph n -> DotCode printSubGraphID' = printSubGraphID (isCluster &&& subGraphID)  instance (ParseDot n) => ParseDot (DotSubGraph n) where-  parseUnqt = parseStmtBased parseGStmts (parseSubGraphID DotSG)+  parseUnqt = parseSubGraph DotSG parseGStmts               `onFail`               -- Take anonymous DotSubGraphs into account-              liftM (DotSG False Nothing) (parseBracesBased parseGStmts)+              liftM (DotSG False Nothing)+                    (parseBracesBased SubGraphAttribute parseGStmts)    parse = parseUnqt -- Don't want the option of quoting           `adjustErr`           (++ "\n\nNot a valid Sub Graph") -  parseUnqtList = sepBy (whitespace' >> parseUnqt) newline'+  parseUnqtList = sepBy (whitespace >> parseUnqt) newline'    parseList = parseUnqtList 
Data/GraphViz/Types/Graph.hs view
@@ -106,8 +106,6 @@ import Data.GraphViz.Util(groupSortBy, groupSortCollectBy) import Data.GraphViz.Algorithms(CanonicaliseOptions(..), canonicaliseOptions) import Data.GraphViz.Algorithms.Clustering-import Data.GraphViz.Printing(PrintDot(..))-import Data.GraphViz.Parsing(ParseDot(..))  import Data.List(foldl', delete, unfoldr) import qualified Data.Foldable as F@@ -582,6 +580,8 @@       -- fromGDot :: G.DotGraph n -> DotGraph n       fromGDot = fromDotRepr . flip asTypeOf (undefined :: G.DotGraph n) +  parse = parseUnqt -- Don't want the option of quoting+ cOptions :: CanonicaliseOptions cOptions = COpts { edgesInClusters = False                  , groupAttributes = True@@ -599,15 +599,17 @@ --     be used to make sure all clusters /have/ an identifier, but it --     doesn't ensure uniqueness). -----   * All nodes are assumed to be explicitly listed precisely once+--   * All nodes are assumed to be explicitly listed precisely once. -- --   * Only edges found in the root graph are considered. -- --   If this isn't the case, use 'fromCanonical' instead. -----   The 'graphToDot' and 'graphElemsToDot' functions from---   "Data.GraphViz" produces output suitable for this function---   (assuming all clusters are provided with a unique identifier).+--   The 'graphToDot' function from "Data.GraphViz" produces output+--   suitable for this function (assuming all clusters are provided+--   with a unique identifier); 'graphElemsToDot' is suitable if all+--   nodes are specified in the input list (rather than just the+--   edges). unsafeFromCanonical :: (Ord n) => C.DotGraph n -> DotGraph n unsafeFromCanonical dg = DG { strictGraph   = C.strictGraph dg                             , directedGraph = dirGraph
FAQ view
@@ -1,4 +1,4 @@-% graphviz - FAQ+% FAQ % Ivan Lazar Miljenovic  Fortuitously Anticipated Queries (FAQ)@@ -35,14 +35,14 @@  * There are [four different representations] of Dot graphs: -    1. Canonical, which matches the layout of `dot -Tcanon`.-    2. Generalised, which allows statements to be in any order.-    3. A graph-based one that allows manipulation of the Dot graph.-    4. A monadic interface for embedding graphs in Haskell.+       1. Canonical, which matches the layout of `dot -Tcanon`.+       2. Generalised, which allows statements to be in any order.+       3. A graph-based one that allows manipulation of the Dot graph.+       4. A monadic interface for embedding graphs in Haskell. -  There are also conversion functions between them.+    There are also conversion functions between them. -  [four different representations](#whats-the-difference-between-the-different-dotgraph-types)+ [four different representations]: #whats-the-difference-between-the-different-dotgraph-types  * The ability to parse and generate most aspects of Dot [syntax] and   [attributes].  This includes taking into account escaping and@@ -131,6 +131,22 @@   graphs need to be parsed then you shall need to do all I/O for them   by hand. +* `colorscheme` attributes _are_ parsed, but the behaviour is not+  quite the same: consider the following minimal Dot graph:++    ~~~~~ {.dot}+    digraph {+        a [ style=filled, fillcolor=gray, colorscheme=svg ]+    }+    ~~~~~++    Despite the fact that the color is specified before the colorscheme,+    Graphviz will use that colorscheme to parse the color (as an SVG+    gray differs from the X11 gray); _graphviz_, however, will use the+    default colorscheme of `x11` to parse the color, and **then** set+    the colorscheme to be `svg` (despite it not being used after it is+    set).+ #### Available items of note ####  There are a few items of note that are available that are worthy of@@ -191,7 +207,7 @@ ### How is _graphviz_ licensed? ###  _graphviz_ is licensed under a [3-Clause BSD License] (note that the-ColorBrewer Color Schemes found in `Data.GraphViz.Attributes.Colors`+ColorBrewer Color Schemes found in `Data.GraphViz.Attributes.Colors.Brewer` are covered under [their own license](http://graphviz.org/doc/info/colors.html#brewer_license)). @@ -214,10 +230,9 @@  ### Are there any tutorials on how to use _graphviz_? ### -There will be soon.  The current stumbling block is that each time I-sit down to write a tutorial, I find that it would be even better if-_graphviz_ had some extra features in it first, so the tutorial has to-wait until I have finished that feature...+A basic tutorial on+[how to visualise graph-like data](http://ivanmiljenovic.wordpress.com/2011/10/16/graphviz-in-vacuum/)+is available; more will come if people ask for it.  ### What other packages use _graphviz_? ### @@ -263,7 +278,7 @@ ### Do I need to have Graphviz installed to use _graphviz_? ###  Technically, no if you're only dealing with the Dot language aspects.-However, usage of the functions in the Commands module, or the+However, usage of the functions in the `Commands` module, or the augmentation of pretty-printing functions in the GraphViz module _do_ require Graphviz to be installed. @@ -286,30 +301,30 @@  **Canonical:** -: matches the output of `dot -Tcanon`.  Recommended for use when-  converting existing data into Dot (especially with the-  `graphElemsToDot` function in `Data.GraphViz`).+:   matches the output of `dot -Tcanon`.  Recommended for use when+    converting existing data into Dot (especially with the+    `graphElemsToDot` function in `Data.GraphViz`).  **Generalised:** -: most closely matches the layout of actual Dot code, as such this is-  preferred when parsing in arbitrary Dot graphs.  Also useful in-  cases where you want to use the common Graphviz "hack" of specifying-  global attributes that don't apply to sub-graphs _after_ the-  sub-graphs in question.+:   most closely matches the layout of actual Dot code, as such this is+    preferred when parsing in arbitrary Dot graphs.  Also useful in+    cases where you want to use the common Graphviz "hack" of specifying+    global attributes that don't apply to sub-graphs _after_ the+    sub-graphs in question.  **Graph:** -: provides common graph operations on Dot graphs, based upon those-  found in the [FGL].+:   provides common graph operations on Dot graphs, based upon those+    found in the [FGL].  **Monadic:** -: a nicer way of defining relatively static Dot graphs to embed within-  Haskell code, etc.  Loosely based (with permission!) upon Andy-  Gill's [dotgen] library.+:   a nicer way of defining relatively static Dot graphs to embed within+    Haskell code, etc.  Loosely based (with permission!) upon Andy+    Gill's [dotgen] library. -  [dotgen]: http://hackage.haskell.org/package/dotgen+[dotgen]: http://hackage.haskell.org/package/dotgen  ### What's the best way to parse Dot code? ### @@ -331,63 +346,20 @@  ### There are too many attributes!!! Which ones should I use? ### -The following attributes are easy to use and recommended:--* `ArrowHead` and `ArrowTail` (for directed graphs) to set the styles-  of the ends of edges: note that in Graphviz parlance, "Head" refers-  to the end node and "Tail" refers to the start node of the edge (see-  below).--* When wanting to use different colours, use the following criteria to-  pick the correct attribute.  Note: for the first two, you should-  also have `SItem Filled []` set as one of the `Style` values for-  that item.--    - `BgColor` to set the background colour of a graph/cluster.--    - `FillColor` to set the background colour for a node.--    - `Color` to set the colour of an edge; if you supply more than-      one value then the edge is drawn using parallel splines/lines-      (one per colour in the list).  This can also be used to set the-      border colour for a node, but if a filled style is used and-      `FillColor` isn't set then this will also set the background-      colour.--    - `PenColor` to set the colour of the bounding box for a cluster.--        When choosing a `Color` value for one of the above, it is-        better to use one of the `X11Color` values (note: these-        colours slightly differ from the standard X11 colours) or - if-        you have to - one of the manual colours over a `BrewerColor`,-        as they come under a different license and have no real-        standard on what the values are.--* For labels, use the `Labellable` class to more easily construct-  labels.  In most cases, a `String`-based label will suffice; for-  more fine-grained control over layout, colours, etc. use either a-  `RecordFields` or an `HtmlLabel`.--* `Rank`: this lets you control relative placement of sub-graphs and-  clusters.--* `Shape`: Use `Record` and `MRecord` for `RecordFields`-based labels;-  feel free to use any other ones at any time (though you probably-  want to use `PlainText` for `HtmlLabel` labels).--* `Style`: use this to set line types, etc. for nodes and edges.  You-  should **not** use a `DD` (device-dependent) value.+The `Data.GraphViz.Attributes` module contains a cut-down list of+recommended and commonly used attributes. -The following attributes are **not** recommended for use:+The entire list of attributes can be found in+`Data.GraphViz.Attributes.Complete`.  In particular, the following+attributes are **not** recommended for use: -* `Color` for anything except edge colours (and if you must, the-  border colour for a node).+* `Color` for anything except edge colours or gradients for nodes,+  clusters and graphs when using Graphviz >= 2.29.0 (and if you must,+  the border colour for a node).  * `ColorScheme`: just stick with X11 colours. -* `Comment`: pretty useless, but will interfere with the augmentation-  functions (since they use the `Comment` attribute to distinguish-  between multiple edges).+* `Comment`: pretty useless.  Enough said.  ### Can I use any attribute wherever I want? ### @@ -398,11 +370,9 @@  ### How can I use _graphviz_ to visualise non-FGL graphs? ### -At the moment, you unfortunately have to write your own manual-conversion functions (see `graphToDot`, etc. in the GraphViz module-for ideas on how to do this).  In future, it should be possible to-convert any graph-like datatype into a `DotGraph` (this requires me to-go write another library first...).+The `graphElemsToDot` function allows you to visualise any graph for+which you can specify a list of labelled nodes and a list of labelled+edges.  ### How can I use/process multiple graphs like Graphviz does? ### @@ -433,7 +403,7 @@ instance ParseDot MyType where   parseUnqt = do i <- parseUnqt                  character ':'-                 whitespace+                 whitespace1                  s <- parseUnqt                  return $ MyType s i @@ -456,11 +426,9 @@  * Be as liberal as you can when parsing, especially with whitespace:   when printing only one space is used, yet when parsing we use the-  `whitespace` parsing combinator that will parse all whitespace+  `whitespace1` parsing combinator that will parse all whitespace   characters (but it must consume _at least_ one; there is a variant-  that does not need to parse any).  However, we're not being so-  liberal as to allow parsing of newline characters (for which there-  is a separate parsing combinator).+  that does not need to parse any).  ### When parsing Dot code, do I have to worry about the case? ### @@ -472,11 +440,11 @@  Graphviz allows you to specify edges such as `from:a -> to:b` where the nodes "from" and "to" are defined with either `RecordLabel` or-`HtmlLabel` labels and have different sections; the edge is then drawn+`Html.Label` labels and have different sections; the edge is then drawn from the "a" section of the "from" node to the "b" section of the "to" node. -Whilst _graphviz_ can parse this, you can't define this yourself:+Whilst _graphviz_ can parse this, you can't define this yourself; instead, do it the manual way:  ~~~~~~~~~~~~~~~~~~~~ {.haskell}
LICENSE view
@@ -1,4 +1,4 @@-% graphviz - License+% License % Ivan Lazar Miljenovic  Licensing Information
README view
@@ -1,4 +1,4 @@-% graphviz - Haskell bindings to the Graphviz toolkit+% Haskell bindings to the Graphviz toolkit % Ivan Lazar Miljenovic  The graphviz Library@@ -62,4 +62,3 @@      mode:markdown      End:   -->-
− RunTests.hs
@@ -1,83 +0,0 @@-{- |-   Module      : RunTests-   Description : Run the graphviz test suite.-   Copyright   : (c) Ivan Lazar Miljenovic-   License     : 3-Clause BSD-style-   Maintainer  : Ivan.Miljenovic@gmail.com--   This module exists solely to make a Main module to build and run-   the test suite.--}-module Main where--import Data.GraphViz.Testing( Test(name, lookupName)-                            , defaultTests, runChosenTests)--import Data.Char(toLower)-import Data.Maybe(mapMaybe)-import qualified Data.Map as Map-import Data.Map(Map)-import Control.Arrow((&&&))-import Control.Monad(when)-import System.Environment(getArgs, getProgName)-import System.Exit(ExitCode(ExitSuccess), exitWith)---- -------------------------------------------------------------------------------main :: IO ()-main = do opts <- getArgs-          let opts' = map (map toLower) opts-              hasArg arg = any (arg==) opts'-          when (hasArg "help") helpMsg-          let tests = if hasArg "all"-                      then defaultTests-                      else mapMaybe getTest opts'-              tests' = if null tests-                       then defaultTests-                       else tests-          runChosenTests tests'--testLookup :: Map String Test-testLookup = Map.fromList-             $ map (lookupName &&& id) defaultTests--getTest :: String -> Maybe Test-getTest = (`Map.lookup` testLookup)--helpMsg :: IO ()-helpMsg = getProgName >>= (putStr . msg) >> exitWith ExitSuccess-  where-    msg nm = unlines-      [ "This utility is the test-suite for the graphviz library for Haskell."-      , "Various tests are available; see the table below for a complete list."-      , "There are several ways of running this program:"-      , ""-      , "    " ++ nm ++ "               Run all of the tests"-      , "    " ++ nm ++ " all           Run all of the tests"-      , "    " ++ nm ++ " help          Get this help message"-      , "    " ++ nm ++ " <key>         Run the test associated with each key,"-      , "        (where <key> denotes a space-separated list of keys"-      , "         from the table below)."-      , ""-      , helpTable-      ]--helpTable :: String-helpTable = unlines $ fmtName ((lnHeader,lnHeaderLen),(nHeader,nHeaderLen))-                      : line-                      : map fmtName testNames-  where-    andLen = ((id &&& length) .)-    testNames = map (andLen lookupName &&& andLen name) defaultTests-    fmtName ((ln,lnl),(n,_)) = concat [ ln-                                      , replicate (maxLN-lnl+spacerLen) ' '-                                      , n-                                      ]-    line = replicate (maxLN + spacerLen + maxN) '-'-    maxLN = maximum $ map (snd . fst) testNames-    maxN = maximum $ map (snd . snd) testNames-    spacerLen = 3-    lnHeader = "Key"-    lnHeaderLen = length lnHeader-    nHeader = "Description"-    nHeaderLen = length nHeader
TODO view
@@ -1,4 +1,4 @@-% graphviz - TODO+% TODO % Ivan Lazar Miljenovic  Future Plans for graphviz@@ -6,7 +6,8 @@  This is a list of planned feature improvements to graphviz along with an indication of when it's likely to be implemented (note that these-time scales are in relation to releases, not actual time).+time scales are in relation to releases, not actual time; however, it+is quite possible that the order will not be adhered to).  Short term ----------@@ -17,10 +18,6 @@ * Add nicer syntax for record labels, and specifying ports in Monadic   Dot graphs. -* Add convenience functions for creating GraphIDs (ala Labellable).--* Add support for SVG colors.- * Define new classes to distinguish between printing/parsing Attribute   values and other values (as only the former requires quoted   variants).@@ -55,4 +52,3 @@      mode:markdown      End:   -->-
graphviz.cabal view
@@ -1,5 +1,5 @@ Name:               graphviz-Version:            2999.12.0.4+Version:            2999.13.0.0 Stability:          Beta Synopsis:           Bindings to Graphviz for graph visualisation. Description: {@@ -38,7 +38,7 @@ Author:             Matthew Sackman, Ivan Lazar Miljenovic Maintainer:         Ivan.Miljenovic+graphviz@gmail.com Build-Type:         Simple-Cabal-Version:      >= 1.6+Cabal-Version:      >= 1.14 Extra-Source-Files: TODO                     Changelog                     README@@ -50,18 +50,15 @@     Type:         darcs     Location:     http://code.haskell.org/graphviz -Flag test-     Description: Build the test suite, including an executable to run it.-     Default: False- Library {-        Build-Depends:     base >= 3 && < 5,-                           extensible-exceptions,+        Default-Language:  Haskell98++        Build-Depends:     base == 4.*,                            containers,                            process,                            fgl == 5.4.*,                            filepath,-                           polyparse == 1.7.*,+                           polyparse >= 1.7 && < 1.9,                            bytestring == 0.9.*,                            colour == 2.3.*,                            transformers == 0.2.*,@@ -77,12 +74,14 @@                            Data.GraphViz.Types.Monadic                            Data.GraphViz.Parsing                            Data.GraphViz.Printing-                           Data.GraphViz.State                            Data.GraphViz.Commands                            Data.GraphViz.Commands.IO                            Data.GraphViz.Attributes                            Data.GraphViz.Attributes.Complete                            Data.GraphViz.Attributes.Colors+                           Data.GraphViz.Attributes.Colors.X11+                           Data.GraphViz.Attributes.Colors.Brewer+                           Data.GraphViz.Attributes.Colors.SVG                            Data.GraphViz.Attributes.HTML                            Data.GraphViz.PreProcessing                            Data.GraphViz.Exception@@ -95,20 +94,7 @@                            Data.GraphViz.Types.Common                            Data.GraphViz.Types.State                            Data.GraphViz.Util-        if flag(test)-           Build-Depends:       QuickCheck >= 2.3 && < 2.5--           Exposed-Modules:     Data.GraphViz.Testing-                                Data.GraphViz.Testing.Instances-                                Data.GraphViz.Testing.Properties--           Other-Modules:       Data.GraphViz.Testing.Instances.FGL-                                Data.GraphViz.Testing.Instances.Helpers-                                Data.GraphViz.Testing.Instances.Attributes-                                Data.GraphViz.Testing.Instances.Common-                                Data.GraphViz.Testing.Instances.Canonical-                                Data.GraphViz.Testing.Instances.Generalised-                                Data.GraphViz.Testing.Instances.Graph+                           Data.GraphViz.State          if True            Ghc-Options: -Wall@@ -119,14 +105,65 @@         Ghc-Prof-Options:  -prof -auto-all } -Executable graphviz-testsuite {+Test-Suite graphviz-testsuite {+        Default-Language:  Haskell98 -        if flag(test)-           Buildable: True-        else-           Buildable: False+        Type:              exitcode-stdio-1.0 +        -- Versions controlled by library section+        Build-Depends:     base,+                           containers,+                           process,+                           fgl,+                           filepath,+                           polyparse,+                           bytestring,+                           colour,+                           transformers,+                           text,+                           wl-pprint-text,+                           dlist,+                           QuickCheck >= 2.3 && < 2.5++        hs-Source-Dirs:    . tests+         Main-Is:           RunTests.hs+++        Other-Modules:       Data.GraphViz.Testing+                             Data.GraphViz.Testing.Instances+                             Data.GraphViz.Testing.Properties+                             Data.GraphViz.Testing.Instances.FGL+                             Data.GraphViz.Testing.Instances.Helpers+                             Data.GraphViz.Testing.Instances.Attributes+                             Data.GraphViz.Testing.Instances.Common+                             Data.GraphViz.Testing.Instances.Canonical+                             Data.GraphViz.Testing.Instances.Generalised+                             Data.GraphViz.Testing.Instances.Graph++        if True+           Ghc-Options: -O -Wall++        if impl(ghc >= 6.12.1)+           Ghc-Options: -fno-warn-unused-do-bind++        GHC-Prof-Options: -auto-all -caf-all -rtsopts+}++Benchmark graphviz-printparse {+        Default-Language: Haskell98++        Type:             exitcode-stdio-1.0++        Build-Depends:    base,+                          deepseq,+                          text,+                          graphviz,+                          criterion >= 0.5 && < 0.7++        hs-Source-Dirs:   utils++        Main-Is:          Benchmark.hs          if True            Ghc-Options: -O -Wall
+ tests/Data/GraphViz/Testing.hs view
@@ -0,0 +1,383 @@+{-# LANGUAGE Rank2Types, FlexibleContexts #-}++{- |+   Module      : Data.GraphViz.Testing+   Description : Test-suite for graphviz.+   Copyright   : (c) Ivan Lazar Miljenovic+   License     : 3-Clause BSD-style+   Maintainer  : Ivan.Miljenovic@gmail.com++   This defines a test-suite for the graphviz library.++   Limitations of the test suite are as follows:++   * For the most part, this library lets you use arbitrary numbers+     for String values.  However, this is not tested due to too many+     corner cases for special parsers that don't take arbitrary+     Strings.  As the Dot standard is ambiguous over whether you can+     or can't use numbers as Strings (more specifically, if they+     should be quoted or not), this is a user beware situation.++   * Same goes for empty Strings; sometimes they're allowed, sometimes+     they're not.  Thus, to simplify matters they're not generated.++   * The generated Strings are very simple, only composed of lower+     case letters, digits and some symbols.  This is because too many+     tests were \"failing\" due to some corner case; e.g. lower-case+     letters only because the parser parses Strings as lowercase, so+     if a particular String isn't valid (e.g. @\"all\"@ for 'LayerID',+     then the 'Arbitrary' instance has to ensure that all possible+     ways of capitalising that String isn't generated as a random+     'LRName'.++   * The generated 'DotRepr's are not guaranteed to be valid.++   * To avoid needless endless recursion, sub-graphs do not have their+     own internal sub-graphs.++   * This test suite isn't perfect: if you deliberately try to stuff+     something up, you probably can.+-}+module Data.GraphViz.Testing+       ( -- * Running the test suite.+         runChosenTests+       , runTests+       , runTest+         -- ** The tests themselves+       , Test(..)+       , defaultTests+       , test_printParseID_Attributes+       , test_generalisedSameDot+       , test_printParseID+       , test_preProcessingID+       , test_dotizeAugment+       , test_dotizeAugmentUniq+       , test_canonicalise+       , test_transitive+        -- * Re-exporting modules for manual testing.+       , module Data.GraphViz+       , module Data.GraphViz.Testing.Properties+         -- * Debugging printing+       , PrintDot(..)+       , printIt+       , renderDot+         -- * Debugging parsing+       , ParseDot(..)+       , parseIt+       , parseIt'+       , runParser+       , preProcess+       ) where++import Test.QuickCheck++import Data.GraphViz.Testing.Instances()+import Data.GraphViz.Testing.Properties++import Data.GraphViz+import Data.GraphViz.Parsing(parseIt, parseIt', runParser)+import Data.GraphViz.PreProcessing(preProcess)+import Data.GraphViz.Printing(printIt, renderDot)+import qualified Data.GraphViz.Types.Generalised as G+import qualified Data.GraphViz.Types.Graph as Gr+-- Can't use PatriciaTree because a Show instance is needed.+import Data.Graph.Inductive.Tree(Gr)++import System.Exit(ExitCode(..), exitWith)+import System.IO(hPutStrLn, stderr)++-- -----------------------------------------------------------------------------++runChosenTests       :: [Test] -> IO ()+runChosenTests tsts = do putStrLn msg+                         blankLn+                         runTests tsts+                         spacerLn+                         putStrLn successMsg+  where+    msg = "This is the test suite for the graphviz library.\n\+           \If any of these tests fail, please inform the maintainer,\n\+           \including full output of this test suite."++    successMsg = "All tests were successful!"+++-- -----------------------------------------------------------------------------+-- Defining a Test structure and how to run tests.++-- | Defines the test structure being used.+data Test = Test { name       :: String+                 , lookupName :: String      -- ^ Should be lowercase+                 , desc       :: String+                 , tests      :: [IO Result] -- ^ QuickCheck test.+                 }++-- | Run all of the provided tests.+runTests :: [Test] -> IO ()+runTests = mapM_ ((>>) spacerLn . runTest)++-- | Run the provided test.+runTest     :: Test -> IO ()+runTest tst = do putStrLn title+                 blankLn+                 putStrLn $ desc tst+                 blankLn+                 run $ tests tst+                 blankLn+  where+    nm = '"' : name tst ++ "\""+    title = "Running test: " ++ nm ++ "."+    successMsg = "All tests for " ++ nm ++ " were successful!"+    gaveUpMsg = "Too many sample inputs for " ++ nm ++ " were rejected;\n\+                 \tentatively marking this as successful."+    failMsg = "The tests for " ++ nm ++ " failed!\n\+               \Not attempting any further tests."++    run [] = putStrLn successMsg+    run (t:ts) = do r <- t+                    case r of+                       Success{} -> run ts+                       GaveUp{}  -> putStrLn gaveUpMsg >> run ts+                       _         -> die failMsg++spacerLn :: IO ()+spacerLn = putStrLn (replicate 70 '=') >> blankLn++blankLn :: IO ()+blankLn = putStrLn ""++die     :: String -> IO a+die msg = do hPutStrLn stderr msg+             exitWith (ExitFailure 1)++qCheck :: (Testable prop) => prop -> IO Result+qCheck = quickCheckWithResult (stdArgs { maxSize = 50, maxSuccess = 200 })++-- -----------------------------------------------------------------------------+-- Defining the tests to use.++-- | The tests to run by default.+defaultTests :: [Test]+defaultTests = [ test_printParseID_Attributes+               , test_generalisedSameDot+               , test_printParseID+               , test_preProcessingID+               , test_dotizeAugment+               , test_dotizeHasAugment+               , test_dotizeAugmentUniq+               , test_findAllNodes+               , test_findAllNodesE+               , test_findAllEdges+               , test_noGraphInfo+               , test_canonicalise+               , test_transitive+               ]++-- | Test that 'Attributes' can be printed and then parsed back.+test_printParseID_Attributes :: Test+test_printParseID_Attributes+  = Test { name       = "Printing and parsing of Attributes"+         , lookupName = "attributes"+         , desc       = dsc+         , tests      = [qCheck prop]+         }+  where+    prop :: Attributes -> Property+    prop = prop_printParseListID++    dsc = "The most common source of errors in printing and parsing are for\n\+          \Attributes."++test_generalisedSameDot :: Test+test_generalisedSameDot+  = Test { name       = "Printing generalised Dot code"+         , lookupName = "makegeneralised"+         , desc       = dsc+         , tests      = [qCheck prop]+         }+    where+      prop :: DotGraph Int -> Bool+      prop = prop_generalisedSameDot++      dsc = "When generalising \"DotGraph\" values to other \"DotRepr\" values,\n\+             \the generated Dot code should be identical."++test_printParseID :: Test+test_printParseID+  = Test { name       = "Printing and Parsing DotReprs"+         , lookupName = "printparseid"+         , desc       = dsc+         , tests      = tsts+         }+  where+    tsts :: [IO Result]+    tsts = [ qCheck (prop_printParseID :: DotGraph    Int -> Bool)+           , qCheck (prop_printParseID :: G.DotGraph  Int -> Bool)+           , qCheck (prop_printParseID :: Gr.DotGraph Int -> Bool)+           ]++    dsc = "The graphviz library should be able to parse back in its own\n\+           \generated Dot code for any \"DotRepr\" instance"++test_preProcessingID :: Test+test_preProcessingID+  = Test { name       = "Pre-processing Dot code"+         , lookupName = "preprocessing"+         , desc       = dsc+         , tests      = [qCheck prop]+         }+  where+    prop :: DotGraph Int -> Bool+    prop = prop_preProcessingID++    dsc = "When parsing Dot code, some pre-processing is done to remove items\n\+           \such as comments and to join together multi-line strings.  This\n\+           \test verifies that this pre-processing doesn't affect actual\n\+           \Dot code by running the pre-processor on generated Dot code.\n\n\+           \This test is not run on generalised Dot graphs as if it works for\n\+           \normal dot graphs then it should also work for generalised ones."++test_dotizeAugment :: Test+test_dotizeAugment+  = Test { name       = "Augmenting FGL Graphs"+         , lookupName = "augment"+         , desc       = dsc+         , tests      = [qCheck prop]+         }+  where+    prop :: Gr Char Double -> Bool+    prop = prop_dotizeAugment++    dsc = "The various Graph to Graph functions in Data.GraphViz should\n\+           \only _augment_ the graph labels and not change the graphs\n\+           \themselves.  This test compares the original graphs to these\n\+           \augmented graphs and verifies that they are the same."++test_dotizeHasAugment :: Test+test_dotizeHasAugment+  = Test { name       = "Ensuring augmentation of FGL Graphs"+         , lookupName = "hasaugment"+         , desc       = dsc+         , tests      = [qCheck prop]+         }+  where+    prop :: Gr Char Double -> Bool+    prop = prop_dotizeHasAugment++    dsc = "The various Graph to Graph functions in Data.GraphViz should\n\+           \actually agument the graph labels; this ensures that all labels\n\+           \actually have attached Attributes after augmentation."++test_dotizeAugmentUniq :: Test+test_dotizeAugmentUniq+  = Test { name       = "Unique edges in augmented FGL Graphs"+         , lookupName = "augmentuniq"+         , desc       = dsc+         , tests      = [qCheck prop]+         }+  where+    prop :: Gr Char Double -> Bool+    prop = prop_dotizeAugmentUniq++    dsc = "When augmenting a graph with multiple edges, as long as no\n\+           \Attributes are provided that override the default settings,\n\+           \then each edge between two nodes should have a unique position\n\+           \Attribute, etc."++test_findAllNodes :: Test+test_findAllNodes+  = Test { name       = "Ensure all nodes are found in a DotRepr"+         , lookupName = "findnodes"+         , desc       = dsc+         , tests      = map qCheck props+         }+  where+    props :: [Gr () () -> Bool]+    props = testAllGraphTypes prop_findAllNodes++    dsc = "nodeInformation should find all nodes in a DotRepr;\n\+           \this is tested by converting an FGL graph and comparing\n\+           \the nodes it should have to those that are found."++test_findAllNodesE :: Test+test_findAllNodesE+  = Test { name       = "Ensure all nodes are found in a node-less DotRepr"+         , lookupName = "findedgelessnodes"+         , desc       = dsc+         , tests      = map qCheck props+         }+  where+    props :: [Gr () () -> Bool]+    props = testAllGraphTypes prop_findAllNodesE++    dsc = "nodeInformation should find all nodes in a DotRepr,\n\+           \even if there are no explicit nodes in that graph.\n\+           \This is tested by converting an FGL graph and comparing\n\+           \the nodes it should have to those that are found."++test_findAllEdges :: Test+test_findAllEdges+  = Test { name       = "Ensure all edges are found in a DotRepr"+         , lookupName = "findedges"+         , desc       = dsc+         , tests      = map qCheck props+         }+  where+    props :: [Gr () () -> Bool]+    props = testAllGraphTypes prop_findAllEdges++    dsc = "nodeInformation should find all edges in a DotRepr;\n\+           \this is tested by converting an FGL graph and comparing\n\+           \the edges it should have to those that are found."++test_noGraphInfo :: Test+test_noGraphInfo+  = Test { name       = "Plain DotReprs should have no structural information"+         , lookupName = "nographinfo"+         , desc       = dsc+         , tests      = map qCheck props+         }+  where+    props :: [Gr () () -> Bool]+    props = testAllGraphTypes prop_noGraphInfo++    dsc = "When converting a Graph to a DotRepr, there should be no\n\+           \clusters or global attributes."++test_canonicalise :: Test+test_canonicalise+  = Test { name       = "Canonicalisation should be idempotent"+         , lookupName = "canonicalise"+         , desc       = dsc+         , tests      = [qCheck prop]+         }+  where+    prop :: DotGraph Int -> Bool+    prop = prop_canonicalise++    dsc = "Repeated application of canonicalise shouldn't have any further affect."++test_transitive :: Test+test_transitive+  = Test { name       = "Transitive reduction should be idempotent"+         , lookupName = "transitive"+         , desc       = dsc+         , tests      = [qCheck prop]+         }+  where+    prop :: DotGraph Int -> Bool+    prop = prop_transitive++    dsc = "Repeated application of transitiveReduction shouldn't have any further affect."++-- -----------------------------------------------------------------------------++-- | Used when a property takes in a DotRepr as the first argument to+--   indicate which instance it should test via 'fromCanonical'.+testAllGraphTypes      :: (Testable prop)+                          => (forall dg. (Eq (dg Int), DotRepr dg Int) => dg Int -> prop)+                          -> [prop]+testAllGraphTypes prop = [ prop (undefined :: DotGraph Int)+                         , prop (undefined :: G.DotGraph Int)+                         , prop (undefined :: Gr.DotGraph Int)+                         ]
+ tests/Data/GraphViz/Testing/Instances.hs view
@@ -0,0 +1,27 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# LANGUAGE OverloadedStrings #-}++{- |+   Module      : Data.GraphViz.Testing.Instances+   Description : 'Arbitrary' instances for graphviz.+   Copyright   : (c) Ivan Lazar Miljenovic+   License     : 3-Clause BSD-style+   Maintainer  : Ivan.Miljenovic@gmail.com++   This module exports the 'Arbitrary' instances for the various types+   used to represent Graphviz Dot code.++   Note that they do not generally generate /sensible/ values for the+   various types; in particular, there's no guarantee that the+   'Attributes' chosen for a particular value type are indeed legal+   for that type.+ -}+module Data.GraphViz.Testing.Instances() where++import Data.GraphViz.Testing.Instances.FGL()+import Data.GraphViz.Testing.Instances.Canonical()+import Data.GraphViz.Testing.Instances.Generalised()+import Data.GraphViz.Testing.Instances.Graph()++-- -----------------------------------------------------------------------------+
+ tests/Data/GraphViz/Testing/Instances/Attributes.hs view
@@ -0,0 +1,960 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_HADDOCK hide #-}+{-# LANGUAGE OverloadedStrings #-}++{- |+   Module      : Data.GraphViz.Testing.Instances.Attributes+   Description : Attribute instances for Arbitrary.+   Copyright   : (c) Ivan Lazar Miljenovic+   License     : 3-Clause BSD-style+   Maintainer  : Ivan.Miljenovic@gmail.com+ -}+module Data.GraphViz.Testing.Instances.Attributes+       ( arbGraphAttrs+       , arbSubGraphAttrs+       , arbClusterAttrs+       , arbNodeAttrs+       , arbEdgeAttrs+       ) where++import Data.GraphViz.Testing.Instances.Helpers++import Data.GraphViz.Attributes.Complete+import qualified Data.GraphViz.Attributes.HTML as Html+import Data.GraphViz.Attributes.Colors.Brewer+import Data.GraphViz.Attributes.Colors.X11(X11Color)+import Data.GraphViz.Attributes.Colors.SVG(SVGColor)+import Data.GraphViz.Attributes.Internal(compassLookup)+import Data.GraphViz.State(initialState, layerSep)+import Data.GraphViz.Util(bool)++import Test.QuickCheck++import Data.List(nub, delete, groupBy)+import qualified Data.Map as Map+import qualified Data.Text.Lazy as T+import Data.Text.Lazy(Text)+import Control.Monad(liftM, liftM2, liftM3, liftM4)+import System.FilePath(searchPathSeparator)++-- -----------------------------------------------------------------------------+-- Defining Arbitrary instances for Attributes++arbGraphAttrs :: Gen Attributes+arbGraphAttrs = arbAttrs usedByGraphs++arbSubGraphAttrs :: Gen Attributes+arbSubGraphAttrs = arbAttrs usedBySubGraphs++arbClusterAttrs :: Gen Attributes+arbClusterAttrs = arbAttrs usedByClusters++arbNodeAttrs :: Gen Attributes+arbNodeAttrs = arbAttrs usedByNodes++arbEdgeAttrs :: Gen Attributes+arbEdgeAttrs = arbAttrs usedByEdges++arbAttrs   :: (Attribute -> Bool) -> Gen Attributes+arbAttrs p = liftM (filter p) arbList++instance Arbitrary Attribute where+  arbitrary = oneof [ liftM Damping arbitrary+                    , liftM K arbitrary+                    , liftM URL arbitrary+                    , liftM ArrowHead arbitrary+                    , liftM ArrowSize arbitrary+                    , liftM ArrowTail arbitrary+                    , liftM Aspect arbitrary+                    , liftM BoundingBox arbitrary+                    , liftM ColorScheme arbitrary+                    , liftM BgColor arbList+                    , liftM Center arbitrary+                    , liftM ClusterRank arbitrary+                    , liftM Color arbList+                    , liftM Comment arbitrary+                    , liftM Compound arbitrary+                    , liftM Concentrate arbitrary+                    , liftM Constraint arbitrary+                    , liftM Decorate arbitrary+                    , liftM DefaultDist arbitrary+                    , liftM Dim arbitrary+                    , liftM Dimen arbitrary+                    , liftM Dir arbitrary+                    , liftM DirEdgeConstraints arbitrary+                    , liftM Distortion arbitrary+                    , liftM DPI arbitrary+                    , liftM EdgeURL arbitrary+                    , liftM EdgeTarget arbitrary+                    , liftM EdgeTooltip arbitrary+                    , liftM Epsilon arbitrary+                    , liftM ESep arbitrary+                    , liftM FillColor arbList+                    , liftM FixedSize arbitrary+                    , liftM FontColor arbitrary+                    , liftM FontName arbitrary+                    , liftM FontNames arbitrary+                    , liftM FontPath arbitrary+                    , liftM FontSize arbitrary+                    , liftM ForceLabels arbitrary+                    , liftM GradientAngle arbitrary+                    , liftM Group arbitrary+                    , liftM HeadURL arbitrary+                    , liftM HeadClip arbitrary+                    , liftM HeadLabel arbitrary+                    , liftM HeadPort arbitrary+                    , liftM HeadTarget arbitrary+                    , liftM HeadTooltip arbitrary+                    , liftM Height arbitrary+                    , liftM ID arbitrary+                    , liftM Image arbitrary+                    , liftM ImagePath arbitrary+                    , liftM ImageScale arbitrary+                    , liftM Label arbitrary+                    , liftM LabelURL arbitrary+                    , liftM LabelScheme arbitrary+                    , liftM LabelAngle arbitrary+                    , liftM LabelDistance arbitrary+                    , liftM LabelFloat arbitrary+                    , liftM LabelFontColor arbitrary+                    , liftM LabelFontName arbitrary+                    , liftM LabelFontSize arbitrary+                    , liftM LabelJust arbitrary+                    , liftM LabelLoc arbitrary+                    , liftM LabelTarget arbitrary+                    , liftM LabelTooltip arbitrary+                    , liftM Landscape arbitrary+                    , liftM Layer arbitrary+                    , liftM Layers arbitrary+                    , liftM LayerSep arbitrary+                    , liftM Layout arbitrary+                    , liftM Len arbitrary+                    , liftM LevelsGap arbitrary+                    , liftM Levels arbitrary+                    , liftM LHead arbitrary+                    , liftM LHeight arbitrary+                    , liftM LPos arbitrary+                    , liftM LTail arbitrary+                    , liftM LWidth arbitrary+                    , liftM Margin arbitrary+                    , liftM MaxIter arbitrary+                    , liftM MCLimit arbitrary+                    , liftM MinDist arbitrary+                    , liftM MinLen arbitrary+                    , liftM Mode arbitrary+                    , liftM Model arbitrary+                    , liftM Mosek arbitrary+                    , liftM NodeSep arbitrary+                    , liftM NoJustify arbitrary+                    , liftM Normalize arbitrary+                    , liftM Nslimit arbitrary+                    , liftM Nslimit1 arbitrary+                    , liftM Ordering arbitrary+                    , liftM Orientation arbitrary+                    , liftM OutputOrder arbitrary+                    , liftM Overlap arbitrary+                    , liftM OverlapScaling arbitrary+                    , liftM Pack arbitrary+                    , liftM PackMode arbitrary+                    , liftM Pad arbitrary+                    , liftM Page arbitrary+                    , liftM PageDir arbitrary+                    , liftM PenColor arbitrary+                    , liftM PenWidth arbitrary+                    , liftM Peripheries arbitrary+                    , liftM Pin arbitrary+                    , liftM Pos arbitrary+                    , liftM QuadTree arbitrary+                    , liftM Quantum arbitrary+                    , liftM Rank arbitrary+                    , liftM RankDir arbitrary+                    , liftM RankSep arbList+                    , liftM Ratio arbitrary+                    , liftM Rects arbList+                    , liftM Regular arbitrary+                    , liftM ReMinCross arbitrary+                    , liftM RepulsiveForce arbitrary+                    , liftM Root arbitrary+                    , liftM Rotate arbitrary+                    , liftM Rotation arbitrary+                    , liftM SameHead arbitrary+                    , liftM SameTail arbitrary+                    , liftM SamplePoints arbitrary+                    , liftM Scale arbitrary+                    , liftM SearchSize arbitrary+                    , liftM Sep arbitrary+                    , liftM Shape arbitrary+                    , liftM ShapeFile arbitrary+                    , liftM ShowBoxes arbitrary+                    , liftM Sides arbitrary+                    , liftM Size arbitrary+                    , liftM Skew arbitrary+                    , liftM Smoothing arbitrary+                    , liftM SortV arbitrary+                    , liftM Splines arbitrary+                    , liftM Start arbitrary+                    , liftM Style arbList+                    , liftM StyleSheet arbitrary+                    , liftM TailURL arbitrary+                    , liftM TailClip arbitrary+                    , liftM TailLabel arbitrary+                    , liftM TailPort arbitrary+                    , liftM TailTarget arbitrary+                    , liftM TailTooltip arbitrary+                    , liftM Target arbitrary+                    , liftM Tooltip arbitrary+                    , liftM TrueColor arbitrary+                    , liftM Vertices arbList+                    , liftM ViewPort arbitrary+                    , liftM VoroMargin arbitrary+                    , liftM Weight arbitrary+                    , liftM Width arbitrary+                    , liftM XLabel arbitrary+                    , liftM Z arbitrary+                    , liftM2 UnknownAttribute (suchThat arbIDString validUnknown) arbitrary+                    ]++  shrink (Damping v)            = map Damping             $ shrink v+  shrink (K v)                  = map K                   $ shrink v+  shrink (URL v)                = map URL                 $ shrink v+  shrink (ArrowHead v)          = map ArrowHead           $ shrink v+  shrink (ArrowSize v)          = map ArrowSize           $ shrink v+  shrink (ArrowTail v)          = map ArrowTail           $ shrink v+  shrink (Aspect v)             = map Aspect              $ shrink v+  shrink (BoundingBox v)        = map BoundingBox         $ shrink v+  shrink (ColorScheme v)        = map ColorScheme         $ shrink v+  shrink (BgColor v)            = map BgColor             $ nonEmptyShrinks v+  shrink (Center v)             = map Center              $ shrink v+  shrink (ClusterRank v)        = map ClusterRank         $ shrink v+  shrink (Color v)              = map Color               $ nonEmptyShrinks v+  shrink (Comment v)            = map Comment             $ shrink v+  shrink (Compound v)           = map Compound            $ shrink v+  shrink (Concentrate v)        = map Concentrate         $ shrink v+  shrink (Constraint v)         = map Constraint          $ shrink v+  shrink (Decorate v)           = map Decorate            $ shrink v+  shrink (DefaultDist v)        = map DefaultDist         $ shrink v+  shrink (Dim v)                = map Dim                 $ shrink v+  shrink (Dimen v)              = map Dimen               $ shrink v+  shrink (Dir v)                = map Dir                 $ shrink v+  shrink (DirEdgeConstraints v) = map DirEdgeConstraints  $ shrink v+  shrink (Distortion v)         = map Distortion          $ shrink v+  shrink (DPI v)                = map DPI                 $ shrink v+  shrink (EdgeURL v)            = map EdgeURL             $ shrink v+  shrink (EdgeTarget v)         = map EdgeTarget          $ shrink v+  shrink (EdgeTooltip v)        = map EdgeTooltip         $ shrink v+  shrink (Epsilon v)            = map Epsilon             $ shrink v+  shrink (ESep v)               = map ESep                $ shrink v+  shrink (FillColor v)          = map FillColor           $ nonEmptyShrinks v+  shrink (FixedSize v)          = map FixedSize           $ shrink v+  shrink (FontColor v)          = map FontColor           $ shrink v+  shrink (FontName v)           = map FontName            $ shrink v+  shrink (FontNames v)          = map FontNames           $ shrink v+  shrink (FontPath v)           = map FontPath            $ shrink v+  shrink (FontSize v)           = map FontSize            $ shrink v+  shrink (ForceLabels v)        = map ForceLabels         $ shrink v+  shrink (GradientAngle v)      = map GradientAngle       $ shrink v+  shrink (Group v)              = map Group               $ shrink v+  shrink (HeadURL v)            = map HeadURL             $ shrink v+  shrink (HeadClip v)           = map HeadClip            $ shrink v+  shrink (HeadLabel v)          = map HeadLabel           $ shrink v+  shrink (HeadPort v)           = map HeadPort            $ shrink v+  shrink (HeadTarget v)         = map HeadTarget          $ shrink v+  shrink (HeadTooltip v)        = map HeadTooltip         $ shrink v+  shrink (Height v)             = map Height              $ shrink v+  shrink (ID v)                 = map ID                  $ shrink v+  shrink (Image v)              = map Image               $ shrink v+  shrink (ImagePath v)          = map ImagePath           $ shrink v+  shrink (ImageScale v)         = map ImageScale          $ shrink v+  shrink (Label v)              = map Label               $ shrink v+  shrink (LabelURL v)           = map LabelURL            $ shrink v+  shrink (LabelScheme v)        = map LabelScheme         $ shrink v+  shrink (LabelAngle v)         = map LabelAngle          $ shrink v+  shrink (LabelDistance v)      = map LabelDistance       $ shrink v+  shrink (LabelFloat v)         = map LabelFloat          $ shrink v+  shrink (LabelFontColor v)     = map LabelFontColor      $ shrink v+  shrink (LabelFontName v)      = map LabelFontName       $ shrink v+  shrink (LabelFontSize v)      = map LabelFontSize       $ shrink v+  shrink (LabelJust v)          = map LabelJust           $ shrink v+  shrink (LabelLoc v)           = map LabelLoc            $ shrink v+  shrink (LabelTarget v)        = map LabelTarget         $ shrink v+  shrink (LabelTooltip v)       = map LabelTooltip        $ shrink v+  shrink (Landscape v)          = map Landscape           $ shrink v+  shrink (Layer v)              = map Layer               $ shrink v+  shrink (Layers v)             = map Layers              $ shrink v+  shrink (LayerSep v)           = map LayerSep            $ shrink v+  shrink (Layout v)             = map Layout              $ shrink v+  shrink (Len v)                = map Len                 $ shrink v+  shrink (LevelsGap v)          = map LevelsGap           $ shrink v+  shrink (Levels v)             = map Levels              $ shrink v+  shrink (LHead v)              = map LHead               $ shrink v+  shrink (LHeight v)            = map LHeight             $ shrink v+  shrink (LPos v)               = map LPos                $ shrink v+  shrink (LTail v)              = map LTail               $ shrink v+  shrink (LWidth v)             = map LWidth              $ shrink v+  shrink (Margin v)             = map Margin              $ shrink v+  shrink (MaxIter v)            = map MaxIter             $ shrink v+  shrink (MCLimit v)            = map MCLimit             $ shrink v+  shrink (MinDist v)            = map MinDist             $ shrink v+  shrink (MinLen v)             = map MinLen              $ shrink v+  shrink (Mode v)               = map Mode                $ shrink v+  shrink (Model v)              = map Model               $ shrink v+  shrink (Mosek v)              = map Mosek               $ shrink v+  shrink (NodeSep v)            = map NodeSep             $ shrink v+  shrink (NoJustify v)          = map NoJustify           $ shrink v+  shrink (Normalize v)          = map Normalize           $ shrink v+  shrink (Nslimit v)            = map Nslimit             $ shrink v+  shrink (Nslimit1 v)           = map Nslimit1            $ shrink v+  shrink (Ordering v)           = map Ordering            $ shrink v+  shrink (Orientation v)        = map Orientation         $ shrink v+  shrink (OutputOrder v)        = map OutputOrder         $ shrink v+  shrink (Overlap v)            = map Overlap             $ shrink v+  shrink (OverlapScaling v)     = map OverlapScaling      $ shrink v+  shrink (Pack v)               = map Pack                $ shrink v+  shrink (PackMode v)           = map PackMode            $ shrink v+  shrink (Pad v)                = map Pad                 $ shrink v+  shrink (Page v)               = map Page                $ shrink v+  shrink (PageDir v)            = map PageDir             $ shrink v+  shrink (PenColor v)           = map PenColor            $ shrink v+  shrink (PenWidth v)           = map PenWidth            $ shrink v+  shrink (Peripheries v)        = map Peripheries         $ shrink v+  shrink (Pin v)                = map Pin                 $ shrink v+  shrink (Pos v)                = map Pos                 $ shrink v+  shrink (QuadTree v)           = map QuadTree            $ shrink v+  shrink (Quantum v)            = map Quantum             $ shrink v+  shrink (Rank v)               = map Rank                $ shrink v+  shrink (RankDir v)            = map RankDir             $ shrink v+  shrink (RankSep v)            = map RankSep             $ nonEmptyShrinks v+  shrink (Ratio v)              = map Ratio               $ shrink v+  shrink (Rects v)              = map Rects               $ nonEmptyShrinks v+  shrink (Regular v)            = map Regular             $ shrink v+  shrink (ReMinCross v)         = map ReMinCross          $ shrink v+  shrink (RepulsiveForce v)     = map RepulsiveForce      $ shrink v+  shrink (Root v)               = map Root                $ shrink v+  shrink (Rotate v)             = map Rotate              $ shrink v+  shrink (Rotation v)           = map Rotation            $ shrink v+  shrink (SameHead v)           = map SameHead            $ shrink v+  shrink (SameTail v)           = map SameTail            $ shrink v+  shrink (SamplePoints v)       = map SamplePoints        $ shrink v+  shrink (Scale v)              = map Scale               $ shrink v+  shrink (SearchSize v)         = map SearchSize          $ shrink v+  shrink (Sep v)                = map Sep                 $ shrink v+  shrink (Shape v)              = map Shape               $ shrink v+  shrink (ShapeFile v)          = map ShapeFile           $ shrink v+  shrink (ShowBoxes v)          = map ShowBoxes           $ shrink v+  shrink (Sides v)              = map Sides               $ shrink v+  shrink (Size v)               = map Size                $ shrink v+  shrink (Skew v)               = map Skew                $ shrink v+  shrink (Smoothing v)          = map Smoothing           $ shrink v+  shrink (SortV v)              = map SortV               $ shrink v+  shrink (Splines v)            = map Splines             $ shrink v+  shrink (Start v)              = map Start               $ shrink v+  shrink (Style v)              = map Style               $ nonEmptyShrinks v+  shrink (StyleSheet v)         = map StyleSheet          $ shrink v+  shrink (TailURL v)            = map TailURL             $ shrink v+  shrink (TailClip v)           = map TailClip            $ shrink v+  shrink (TailLabel v)          = map TailLabel           $ shrink v+  shrink (TailPort v)           = map TailPort            $ shrink v+  shrink (TailTarget v)         = map TailTarget          $ shrink v+  shrink (TailTooltip v)        = map TailTooltip         $ shrink v+  shrink (Target v)             = map Target              $ shrink v+  shrink (Tooltip v)            = map Tooltip             $ shrink v+  shrink (TrueColor v)          = map TrueColor           $ shrink v+  shrink (Vertices v)           = map Vertices            $ nonEmptyShrinks v+  shrink (ViewPort v)           = map ViewPort            $ shrink v+  shrink (VoroMargin v)         = map VoroMargin          $ shrink v+  shrink (Weight v)             = map Weight              $ shrink v+  shrink (Width v)              = map Width               $ shrink v+  shrink (XLabel v)             = map XLabel              $ shrink v+  shrink (Z v)                  = map Z                   $ shrink v+  shrink (UnknownAttribute a v) = liftM2 UnknownAttribute (liftM (filter validUnknown) shrink a) (shrink v)+{- delete to here -}++instance Arbitrary ArrowType where+  arbitrary = liftM AType+              -- Arrow specifications have between 1 and 4 elements.+              $ sized (\ s -> resize (min s 4) arbList)++  shrink (AType as) = map AType $ nonEmptyShrinks as++instance Arbitrary ArrowShape where+  arbitrary = arbBounded++instance Arbitrary ArrowModifier where+  arbitrary = liftM2 ArrMod arbitrary arbitrary++instance Arbitrary ArrowFill where+  arbitrary = arbBounded++instance Arbitrary ArrowSide where+  arbitrary = arbBounded++instance Arbitrary AspectType where+  arbitrary = oneof [ liftM  RatioOnly arbitrary+                    , liftM2 RatioPassCount arbitrary posArbitrary+                    ]++  shrink (RatioOnly d) = map RatioOnly $ shrink d+  shrink (RatioPassCount d i) = do ds <- shrink d+                                   is <- shrink i+                                   return $ RatioPassCount ds is++instance Arbitrary LabelScheme where+  arbitrary = arbBounded++instance Arbitrary Rect where+  arbitrary = liftM2 Rect point2D point2D++  shrink (Rect p1 p2) = do p1s <- shrink p1+                           p2s <- shrink p2+                           return $ Rect p1s p2s++instance Arbitrary Point where+  -- Pretty sure points have to be positive...+  arbitrary = liftM4 Point posArbitrary posArbitrary posZ arbitrary+    where+      posZ = frequency [(1, return Nothing), (3, liftM Just posArbitrary)]++  shrink p = do x' <- shrink $ xCoord p+                y' <- shrink $ yCoord p+                z' <- shrinkM $ zCoord p+                return $ Point x' y' z' False++point2D :: Gen Point+point2D = liftM2 createPoint posArbitrary posArbitrary++instance Arbitrary ClusterMode where+  arbitrary = arbBounded++instance Arbitrary DirType where+  arbitrary = arbBounded++instance Arbitrary DEConstraints where+  arbitrary = arbBounded++instance Arbitrary DPoint where+  arbitrary = oneof [ liftM DVal arbitrary+                    , liftM PVal point2D+                    ]++  shrink (DVal d) = map DVal $ shrink d+  shrink (PVal p) = map PVal $ shrink p++instance Arbitrary ModeType where+  arbitrary = arbBounded++instance Arbitrary Model where+  arbitrary = arbBounded++instance Arbitrary Label where+  arbitrary = oneof [ liftM StrLabel arbitrary+                    , liftM HtmlLabel arbitrary+                    , liftM RecordLabel $ suchThat arbList notStr+                    ]++  shrink (StrLabel str)   = map StrLabel $ shrink str+  shrink (HtmlLabel html) = map HtmlLabel $ shrink html+  shrink (RecordLabel fs) = map RecordLabel . filter notStr $ shrinkList fs++notStr                :: RecordFields -> Bool+notStr [FieldLabel{}] = False -- Just in case+notStr _              = True++arbField     :: Bool -> Int -> Gen RecordField+arbField b s = resize s'+               . oneof+               . bool id ((:) genFlipped) b+               $ [ liftM2 LabelledTarget arbitrary arbitrary+                 , liftM PortName arbitrary+                 , liftM FieldLabel arbitrary+                 ]+  where+    genFlipped = liftM FlipFields+                 $ listOf1 (sized $ arbField False)+    s' = min 3 s++instance Arbitrary RecordField where+  arbitrary = sized (arbField True)++  shrink (LabelledTarget f l) = [PortName f, FieldLabel l]+  shrink (PortName f)         = map PortName $ shrink f+  shrink (FieldLabel l)       = map FieldLabel $ shrink l+  shrink (FlipFields fs)      = map FlipFields $ shrinkList fs++instance Arbitrary Overlap where+  arbitrary = oneof [ simpleOverlap+                    , liftM PrismOverlap arbitrary+                    ]+    where+      -- Have to do this by hand since Overlap can't have Bounded and+      -- Enum instances+      simpleOverlap = elements [ KeepOverlaps+                               , ScaleOverlaps+                               , ScaleXYOverlaps+                               , CompressOverlap+                               , VpscOverlap+                               , IpsepOverlap+                               ]++  shrink (PrismOverlap mi) = map PrismOverlap $ shrink mi+  shrink _                 = []++instance Arbitrary LayerSep where+  -- Since Arbitrary isn't stateful, we can't generate an arbitrary+  -- one because of arbLayerName+  arbitrary = return . LSep . T.pack $ layerSep initialState++instance Arbitrary LayerList where+  arbitrary = liftM LL $ listOf1 arbName+    where+      arbName = suchThat arbitrary isLayerName++      isLayerName LRName{} = True+      isLayerName _        = False++  shrink (LL ll) = map LL $ nonEmptyShrinks ll++instance Arbitrary LayerRange where+  arbitrary = oneof [ liftM LRID arbitrary+                    , liftM2 LRS arbitrary arbitrary+                    ]++  shrink (LRID nm)   = map LRID $ shrink nm+  shrink (LRS l1 l2) = [LRID l1, LRID l2]++instance Arbitrary LayerID where+  arbitrary = oneof [ return AllLayers+                    , liftM LRInt arbitrary+                    , liftM LRName $ suchThat arbLayerName lrnameCheck+                    ]++  shrink AllLayers   = []+  shrink (LRInt i)   = map LRInt $ shrink i+  shrink (LRName nm) = map LRName+                       . filter lrnameCheck+                       $ shrink nm++lrnameCheck :: Text -> Bool+lrnameCheck = (/=) "all"++instance Arbitrary Order where+  arbitrary = arbBounded++instance Arbitrary OutputMode where+  arbitrary = arbBounded++instance Arbitrary Pack where+  arbitrary = oneof [ return DoPack+                    , return DontPack+                    , liftM PackMargin arbitrary+                    ]++  shrink (PackMargin m) = map PackMargin $ shrink m+  shrink _              = []++instance Arbitrary PackMode where+  arbitrary = oneof [ return PackNode+                    , return PackClust+                    , return PackGraph+                    , liftM3 PackArray arbitrary arbitrary arbitrary+                    ]++  shrink (PackArray c u mi) = map (PackArray c u) $ shrink mi+  shrink _                  = []++instance Arbitrary Pos where+  arbitrary = oneof [ liftM PointPos arbitrary+                      -- A single spline with only one point overall+                      -- is just a point...+                    , liftM SplinePos $ suchThat arbList validSplineList+                    ]++  shrink (PointPos p)   = map PointPos $ shrink p+  shrink (SplinePos ss) = map SplinePos . filter validSplineList+                          $ nonEmptyShrinks ss++validSplineList                              :: [Spline] -> Bool+validSplineList [Spline Nothing Nothing [_]] = False+validSplineList _                            = True++instance Arbitrary Spline where+  arbitrary = liftM3 Spline arbitrary arbitrary+              -- list of points must have length of 1 mod 3+              $ suchThat arbitrary ((==) 1 . flip mod 3 . length)++  shrink (Spline Nothing Nothing [p]) = map (Spline Nothing Nothing . return)+                                        $ shrink p+  -- We're not going to be shrinking the points in the list; just+  -- making sure that its length is === 1 mod 3+  shrink (Spline ms me ps) = do mss <- shrinkM ms+                                mes <- shrinkM me+                                pss <- rem2 ps+                                return $ Spline mss mes pss+    where++      rem1 []     = []+      rem1 (a:as) = as : map (a:) (rem1 as)++      rem2 = nub . concatMap rem1 . rem1++instance Arbitrary EdgeType where+  arbitrary = arbBounded++instance Arbitrary PageDir where+  arbitrary = arbBounded++instance Arbitrary QuadType where+  arbitrary = arbBounded++instance Arbitrary Root where+  arbitrary = oneof [ return IsCentral+                    , return NotCentral+                    , liftM NodeName arbitrary+                    ]++  shrink (NodeName nm) = map NodeName $ shrink nm+  shrink _             = []++instance Arbitrary RankType where+  arbitrary = arbBounded++instance Arbitrary RankDir where+  arbitrary = arbBounded++instance Arbitrary Shape where+  arbitrary = arbBounded++instance Arbitrary SmoothType where+  arbitrary = arbBounded++instance Arbitrary StartType where+  arbitrary = oneof [ liftM  StartStyle arbitrary+                    , liftM  StartSeed arbitrary+                    , liftM2 StartStyleSeed arbitrary arbitrary+                    ]++  shrink StartStyle{} = [] -- No shrinks for STStyle+  shrink (StartSeed ss) = map StartSeed $ shrink ss+  shrink (StartStyleSeed st ss) = map (StartStyleSeed st) $ shrink ss++instance Arbitrary STStyle where+  arbitrary = arbBounded++instance Arbitrary StyleItem where+  arbitrary = liftM2 SItem arbitrary (listOf arbStyleName)++  -- Can't use this because of what shrink on the individual strings+  -- might do.+  -- shrink (SItem sn opts) = map (SItem sn) $ shrink opts++instance Arbitrary StyleName where+  arbitrary = oneof [ defaultStyles+                    , liftM DD $ suchThat arbStyleName notDefault+                    ]+    where+      defaultStyles = elements [ Dashed+                               , Dotted+                               , Bold+                               , Invisible+                               , Filled+                               , Diagonals+                               , Rounded+                               , Tapered+                               , Radial+                               ]+      notDefault = flip notElem [ "dashed"+                                , "dotted"+                                , "solid"+                                , "bold"+                                , "invis"+                                , "filled"+                                , "diagonals"+                                , "rounded"+                                , "tapered"+                                , "radial"+                                ]++instance Arbitrary PortPos where+  arbitrary = oneof [ liftM2 LabelledPort arbitrary arbitrary+                    , liftM CompassPoint arbitrary+                    ]++  shrink (LabelledPort pn mc) = map (flip LabelledPort mc) $ shrink pn+  shrink _                    = []++instance Arbitrary CompassPoint where+  arbitrary = arbBounded++instance Arbitrary ViewPort where+  arbitrary = liftM4 VP arbitrary arbitrary arbitrary arbitrary++  shrink (VP w h z f) = case sVPs of+                          [_] -> []+                          _   -> sVPs+    where+      sVPs = do ws <- shrink w+                hs <- shrink h+                zs <- shrink z+                fs <- shrinkM f+                return $ VP ws hs zs fs++instance Arbitrary FocusType where+  arbitrary = oneof [ liftM XY arbitrary+                    , liftM NodeFocus $ suchThat arbitrary (T.all ((/=) ','))+                    ]++  shrink (XY p)          = map XY $ shrink p+  shrink (NodeFocus str) = map NodeFocus $ shrink str++instance Arbitrary VerticalPlacement where+  arbitrary = arbBounded++instance Arbitrary Paths where+  arbitrary = liftM Paths $ listOf1 arbFilePath++  shrink (Paths ps) = map Paths $ nonEmptyShrinks' ps++arbFilePath :: Gen FilePath+arbFilePath = suchThat arbString (searchPathSeparator `notElem`)++instance Arbitrary ScaleType where+  arbitrary = arbBounded++instance Arbitrary Justification where+  arbitrary = arbBounded++instance Arbitrary Ratios where+  arbitrary = oneof [ liftM AspectRatio posArbitrary+                    , namedRats+                    ]+    where+      namedRats = elements [ FillRatio+                           , CompressRatio+                           , ExpandRatio+                           , AutoRatio+                           ]++  shrink (AspectRatio r) = map (AspectRatio . fromPositive)+                           . shrink $ Positive r+  shrink _               = []++instance Arbitrary ColorScheme where+  arbitrary = oneof [ return X11+                    , liftM Brewer arbitrary+                    ]++  shrink (Brewer bs) = map Brewer $ shrink bs+  shrink _           = []++instance Arbitrary BrewerScheme where+  arbitrary = liftM2 BScheme arbitrary arbitrary -- Not /quite/ right, but close enough++  shrink (BScheme nm l) = map (BScheme nm) $ shrink l++instance Arbitrary BrewerName where+  arbitrary = arbBounded++instance Arbitrary Color where+  arbitrary = oneof [ liftM3 RGB  arbitrary arbitrary arbitrary+                    , liftM4 RGBA arbitrary arbitrary arbitrary arbitrary+                    , liftM3 HSV  zeroOne zeroOne zeroOne+                    , liftM X11Color arbitrary+                    , liftM SVGColor arbitrary+                    , liftM BrewerColor arbitrary+                    ]+    where+      zeroOne = choose (0,1)++  shrink (RGB r g b)     = do rs <- shrink r+                              gs <- shrink g+                              bs <- shrink b+                              return $ RGB rs gs bs+  shrink (RGBA r g b a)  = RGB r g b+                           : do rs <- shrink r+                                gs <- shrink g+                                bs <- shrink b+                                as <- shrink a+                                return $ RGBA rs gs bs as+  shrink (BrewerColor c) = map BrewerColor $ shrink c+  shrink _               = [] -- Shrinking 0<=h,s,v<=1 does nothing++instance Arbitrary X11Color where+  arbitrary = arbBounded++instance Arbitrary SVGColor where+  arbitrary = arbBounded++-- | Not quite right as the values can get too high/low, but should+--   suffice for printing/parsing purposes.+instance Arbitrary BrewerColor where+  arbitrary = liftM2 BC arbitrary arbitrary++  shrink (BC s c) = map (BC s) $ shrink c++instance Arbitrary Html.Label where+  arbitrary = sized $ arbHtml True++  shrink ht@(Html.Text txts) = delete ht . map Html.Text $ shrinkL txts+  shrink (Html.Table tbl)    = map Html.Table $ shrink tbl++-- Note: for the most part, Html.Label values are very repetitive (and+-- furthermore, they end up chewing a large amount of memory).  As+-- such, use resize to limit how large the actual Html.Label values+-- become.+arbHtml         :: Bool -> Int -> Gen Html.Label+arbHtml table s = resize' $ frequency options+  where+    s' = min 2 s+    resize' = if not table+              then resize s'+              else id+    allowTable = if table+                 then (:) (1, arbTbl)+                 else id+    arbTbl = liftM Html.Table arbitrary+    options = allowTable [ (20, liftM Html.Text . sized $ arbHtmlTexts table) ]++arbHtmlTexts       :: Bool -> Int -> Gen Html.Text+arbHtmlTexts fnt s = liftM simplifyHtmlText+                     . resize s'+                     . listOf1+                     . sized+                     $ arbHtmlText fnt+  where+    s' = min s 10++-- When parsing, all textual characters are parsed together; thus,+-- make sure we generate them like that.+simplifyHtmlText :: Html.Text -> Html.Text+simplifyHtmlText = map head . groupBy sameType+  where+    sameType Html.Str{}           Html.Str{}           = True+    sameType Html.Newline{}       Html.Newline{}       = True+    sameType Html.Font{}          Html.Font{}          = True+    sameType (Html.Format fmt1 _) (Html.Format fmt2 _) = fmt1 == fmt2+    sameType _                    _                    = False++instance Arbitrary Html.TextItem where+  arbitrary = sized $ arbHtmlText True++  shrink (Html.Str str)        = map Html.Str $ shrink str+  shrink (Html.Newline as)     = map Html.Newline $ shrink as+  shrink hf@(Html.Font as txt) = do as' <- shrink as+                                    txt' <- shrinkL txt+                                    returnCheck hf $ Html.Font as' txt'+  shrink (Html.Format _ txt)   = txt++arbHtmlText        :: Bool -> Int -> Gen Html.TextItem+arbHtmlText font s = frequency options+  where+    allowFonts = if font+                 then (++) recHtmlText+                 else id+    s' = min 2 s+    arbRec = resize s' . sized $ arbHtmlTexts False+    recHtmlText = [ (1, liftM2 Html.Font arbitrary arbRec)+                  , (3, liftM2 Html.Format arbitrary arbRec)+                  ]+    options = allowFonts [ (10, liftM Html.Str arbitrary)+                         , (10, liftM Html.Newline arbitrary)+                         ]++instance Arbitrary Html.Format where+  arbitrary = arbBounded++instance Arbitrary Html.Table where+  arbitrary = liftM3 Html.HTable arbitrary arbitrary (sized arbRows)+    where+      arbRows s = resize (min s 10) arbList++  shrink (Html.HTable fas as rs) = map (Html.HTable fas as) $ shrinkL rs++instance Arbitrary Html.Row where+  arbitrary = frequency [ (5, liftM Html.Cells arbList)+                        , (1, return Html.HorizontalRule)+                        ]++  shrink hr@(Html.Cells cs) = delete hr . map Html.Cells $ shrinkL cs+  shrink _                  = []++instance Arbitrary Html.Cell where+  arbitrary = frequency [ (5, liftM2 Html.LabelCell arbitrary . sized $ arbHtml False)+                        , (3, liftM2 Html.ImgCell arbitrary arbitrary)+                        , (1, return Html.VerticalRule)+                        ]++  shrink lc@(Html.LabelCell as h) = do as' <- shrink as+                                       h' <- shrink h+                                       returnCheck lc $ Html.LabelCell as' h'+  shrink (Html.ImgCell as ic) = map (Html.ImgCell as) $ shrink ic+  shrink _                    = []++instance Arbitrary Html.Img where+  arbitrary = liftM Html.Img arbitrary++instance Arbitrary Html.Attribute where+  arbitrary = oneof [ liftM Html.Align arbitrary+                    , liftM Html.BAlign arbitrary+                    , liftM Html.BGColor arbitrary+                    , liftM Html.Border arbitrary+                    , liftM Html.CellBorder arbitrary+                    , liftM Html.CellPadding arbitrary+                    , liftM Html.CellSpacing arbitrary+                    , liftM Html.Color arbitrary+                    , liftM Html.ColSpan arbitrary+                    , liftM Html.Face arbitrary+                    , liftM Html.FixedSize arbitrary+                    , liftM Html.Height arbitrary+                    , liftM Html.HRef arbitrary+                    , liftM Html.ID arbitrary+                    , liftM Html.PointSize arbitrary+                    , liftM Html.Port arbitrary+                    , liftM Html.RowSpan arbitrary+                    , liftM Html.Scale arbitrary+                    , liftM Html.Src arbString+                    , liftM Html.Target arbitrary+                    , liftM Html.Title arbitrary+                    , liftM Html.VAlign arbitrary+                    , liftM Html.Width arbitrary+                    ]++  shrink (Html.Align v)       = map Html.Align       $ shrink v+  shrink (Html.BAlign v)      = map Html.BAlign      $ shrink v+  shrink (Html.BGColor v)     = map Html.BGColor     $ shrink v+  shrink (Html.Border v)      = map Html.Border      $ shrink v+  shrink (Html.CellBorder v)  = map Html.CellBorder  $ shrink v+  shrink (Html.CellPadding v) = map Html.CellPadding $ shrink v+  shrink (Html.CellSpacing v) = map Html.CellSpacing $ shrink v+  shrink (Html.Color v)       = map Html.Color       $ shrink v+  shrink (Html.ColSpan v)     = map Html.ColSpan     $ shrink v+  shrink (Html.Face v)        = map Html.Face        $ shrink v+  shrink (Html.FixedSize v)   = map Html.FixedSize   $ shrink v+  shrink (Html.Height v)      = map Html.Height      $ shrink v+  shrink (Html.HRef v)        = map Html.HRef        $ shrink v+  shrink (Html.ID v)          = map Html.ID          $ shrink v+  shrink (Html.PointSize v)   = map Html.PointSize   $ shrink v+  shrink (Html.Port v)        = map Html.Port        $ shrink v+  shrink (Html.RowSpan v)     = map Html.RowSpan     $ shrink v+  shrink (Html.Scale v)       = map Html.Scale       $ shrink v+  shrink (Html.Src v)         = map Html.Src         $ shrinkString v+  shrink (Html.Target v)      = map Html.Target      $ shrink v+  shrink (Html.Title v)       = map Html.Title       $ shrink v+  shrink (Html.VAlign v)      = map Html.VAlign      $ shrink v+  shrink (Html.Width v)       = map Html.Width       $ shrink v++instance Arbitrary Html.Scale where+  arbitrary = arbBounded++instance Arbitrary Html.Align where+  arbitrary = arbBounded++instance Arbitrary Html.VAlign where+  arbitrary = arbBounded++instance Arbitrary PortName where+  arbitrary = liftM PN+              $ suchThat arbitrary (liftM2 (&&) (T.all (/=':')) notCP)++  shrink = map PN . filter notCP . shrink . portName++notCP :: Text -> Bool+notCP = flip Map.notMember compassLookup
+ tests/Data/GraphViz/Testing/Instances/Canonical.hs view
@@ -0,0 +1,57 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_HADDOCK hide #-}++{- |+   Module      : Data.GraphViz.Testing.Instances.Canonical+   Description : Canonical dot graph instances for Arbitrary.+   Copyright   : (c) Ivan Lazar Miljenovic+   License     : 3-Clause BSD-style+   Maintainer  : Ivan.Miljenovic@gmail.com+ -}+module Data.GraphViz.Testing.Instances.Canonical where++import Data.GraphViz.Testing.Instances.Common+import Data.GraphViz.Testing.Instances.Helpers++import Data.GraphViz.Types.Canonical+import Data.GraphViz.Util(bool)++import Test.QuickCheck++import Control.Monad(liftM2, liftM4)++-- -----------------------------------------------------------------------------+-- Defining Arbitrary instances for the overall types++instance (Eq n, Arbitrary n) => Arbitrary (DotGraph n) where+  arbitrary = liftM4 DotGraph arbitrary arbitrary arbitrary arbitrary++  shrink (DotGraph str dir gid stmts) = map (DotGraph str dir gid)+                                        $ shrink stmts++instance (Eq n, Arbitrary n) => Arbitrary (DotStatements n) where+  arbitrary = sized (arbDS gaGraph True)++  shrink ds@(DotStmts gas sgs ns es) = do gas' <- shrinkL gas+                                          sgs' <- shrinkL sgs+                                          ns' <- shrinkL ns+                                          es' <- shrinkL es+                                          returnCheck ds+                                            $ DotStmts gas' sgs' ns' es'++-- | If 'True', generate 'DotSubGraph's; otherwise don't.+arbDS              :: (Arbitrary n, Eq n) => Gen GlobalAttributes -> Bool+                      -> Int -> Gen (DotStatements n)+arbDS ga haveSGs s = liftM4 DotStmts (listOf ga) genSGs arbitrary arbitrary+  where+    s' = min s 2+    genSGs = if haveSGs+             then resize s' arbitrary+             else return []++instance (Eq n, Arbitrary n) => Arbitrary (DotSubGraph n) where+  arbitrary = do isClust <- arbitrary+                 let ga = bool gaSubGraph gaClusters isClust+                 liftM2 (DotSG isClust) arbitrary (sized $ arbDS ga False)++  shrink (DotSG isCl mid stmts) = map (DotSG isCl mid) $ shrink stmts
+ tests/Data/GraphViz/Testing/Instances/Common.hs view
@@ -0,0 +1,71 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_HADDOCK hide #-}++{- |+   Module      : Data.GraphViz.Testing.Instances.Common()+   Description : Attribute instances for Arbitrary.+   Copyright   : (c) Ivan Lazar Miljenovic+   License     : 3-Clause BSD-style+   Maintainer  : Ivan.Miljenovic@gmail.com+ -}+module Data.GraphViz.Testing.Instances.Common+       ( gaGraph+       , gaSubGraph+       , gaClusters+       ) where++import Data.GraphViz.Testing.Instances.Attributes+import Data.GraphViz.Testing.Instances.Helpers++import Data.GraphViz.Attributes(Attributes)+import Data.GraphViz.Types.Common( DotNode(..), DotEdge(..)+                                 , GlobalAttributes(..), GraphID(..))++import Test.QuickCheck++import Control.Monad(liftM, liftM2, liftM3)++-- -----------------------------------------------------------------------------+-- Common values++instance Arbitrary GraphID where+  arbitrary = oneof [ liftM Str arbitrary+                    , liftM Int arbitrary+                    , liftM Dbl $ suchThat arbitrary notInt+                    ]++  shrink (Str s) = map Str $ shrink s+  shrink (Int i) = map Int $ shrink i+  shrink (Dbl d) = map Dbl $ filter notInt $ shrink d++instance (Arbitrary n) => Arbitrary (DotNode n) where+  arbitrary = liftM2 DotNode arbitrary arbNodeAttrs++  shrink (DotNode n as) = map (DotNode n) $ shrinkList as++instance (Arbitrary n) => Arbitrary (DotEdge n) where+  arbitrary = liftM3 DotEdge arbitrary arbitrary arbEdgeAttrs++  shrink (DotEdge f t as) = map (DotEdge f t) $ shrinkList as++instance Arbitrary GlobalAttributes where+  arbitrary = gaGraph++  shrink (GraphAttrs atts) = map GraphAttrs $ nonEmptyShrinks atts+  shrink (NodeAttrs  atts) = map NodeAttrs  $ nonEmptyShrinks atts+  shrink (EdgeAttrs  atts) = map EdgeAttrs  $ nonEmptyShrinks atts++gaGraph :: Gen GlobalAttributes+gaGraph = gaFor arbGraphAttrs++gaSubGraph :: Gen GlobalAttributes+gaSubGraph = gaFor arbSubGraphAttrs++gaClusters :: Gen GlobalAttributes+gaClusters = gaFor arbClusterAttrs++gaFor   :: Gen Attributes -> Gen GlobalAttributes+gaFor g = oneof [ liftM GraphAttrs g+                , liftM NodeAttrs  arbNodeAttrs+                , liftM EdgeAttrs  arbEdgeAttrs+                ]
+ tests/Data/GraphViz/Testing/Instances/FGL.hs view
@@ -0,0 +1,47 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# LANGUAGE FlexibleInstances #-}++{- |+   Module      : Data.GraphViz.Testing.Instances.FGL+   Description : 'Arbitrary' instances for FGL graphs.+   Copyright   : (c) Ivan Lazar Miljenovic+   License     : 3-Clause BSD-style+   Maintainer  : Ivan.Miljenovic@gmail.com++   This module defines the 'Arbitrary' instances for FGL 'DynGraph'+   graphs.  Note that this instance cannot be in+   "Data.GraphViz.Testing.Instances", as this instance requires the+   FlexibleInstances extension, which makes some of the other+   'Arbitrary' instances fail to type-check.+-}+module Data.GraphViz.Testing.Instances.FGL() where++import Test.QuickCheck++import Data.GraphViz.Util(uniq)++import Data.Graph.Inductive.Graph(Graph, mkGraph, nodes, delNode)+import Data.List(sortBy)+import Data.Function(on)+import Control.Monad(liftM, liftM3)++-- -----------------------------------------------------------------------------+-- Arbitrary instance for FGL graphs.++instance (Graph g, Arbitrary n, Arbitrary e) => Arbitrary (g n e) where+  arbitrary = do ns <- suchThat genNs (not . null)+                 let nGen = elements ns+                 lns <- mapM makeLNode ns+                 les <- liftM (sortBy (compare `on` toE)) . listOf+                        $ makeLEdge nGen+                 return $ mkGraph lns les+    where+      genNs = liftM uniq arbitrary+      toE (f,t,_) = (f,t)+      makeLNode n = liftM ((,) n) arbitrary+      makeLEdge nGen = liftM3 (,,) nGen nGen arbitrary++  shrink gr = case nodes gr of+                   -- Need to have at least 2 nodes before we delete one!+                   ns@(_:_:_) -> map (`delNode` gr) ns+                   _          -> []
+ tests/Data/GraphViz/Testing/Instances/Generalised.hs view
@@ -0,0 +1,77 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_HADDOCK hide #-}++{- |+   Module      : Data.GraphViz.Testing.Instances.Generalised+   Description : Generalised dot graph instances for Arbitrary.+   Copyright   : (c) Ivan Lazar Miljenovic+   License     : 3-Clause BSD-style+   Maintainer  : Ivan.Miljenovic@gmail.com+ -}+module Data.GraphViz.Testing.Instances.Generalised where++import Data.GraphViz.Testing.Instances.Attributes()+import Data.GraphViz.Testing.Instances.Common+import Data.GraphViz.Testing.Instances.Helpers()++import Data.GraphViz.Types.Generalised+import Data.GraphViz.Util(bool)++import Test.QuickCheck++import qualified Data.Sequence as Seq+import Control.Monad(liftM, liftM2, liftM4)++-- -----------------------------------------------------------------------------+-- Defining Arbitrary instances for the generalised types++instance (Arbitrary n) => Arbitrary (DotGraph n) where+  arbitrary = liftM4 DotGraph arbitrary arbitrary arbitrary genDStmts++  shrink (DotGraph str dir gid stmts) = map (DotGraph str dir gid)+                                          $ shrinkDStmts stmts++genDStmts :: (Arbitrary n) => Gen (DotStatements n)+genDStmts = sized (arbDS gaGraph True)++genDStmt :: (Arbitrary n) => Gen GlobalAttributes -> Bool+            -> Gen (DotStatement n)+genDStmt ga haveSGs = frequency+                      . bool id ((1,genSG):) haveSGs+                      $ [ (3, liftM GA ga)+                        , (5, liftM DN arbitrary)+                        , (7, liftM DE arbitrary)+                        ]+  where+    genSG = liftM SG arbitrary++shrinkDStmts :: (Arbitrary n) => DotStatements n -> [DotStatements n]+shrinkDStmts gds+  | len == 1  = map Seq.singleton . shrink $ Seq.index gds 0+  | otherwise = [gds1, gds2]+    where+      len = Seq.length gds+      -- Halve the sequence+      (gds1, gds2) = (len `div` 2) `Seq.splitAt` gds++instance (Arbitrary n) => Arbitrary (DotStatement n) where+  arbitrary = genDStmt gaGraph True++  shrink (GA ga) = map GA $ shrink ga+  shrink (SG sg) = map SG $ shrink sg+  shrink (DN dn) = map DN $ shrink dn+  shrink (DE de) = map DE $ shrink de++-- | If 'True', generate 'GDotSubGraph's; otherwise don't.+arbDS              :: (Arbitrary n) => Gen GlobalAttributes -> Bool -> Int -> Gen (DotStatements n)+arbDS ga haveSGs s = liftM Seq.fromList . resize s' . listOf $ genDStmt ga haveSGs+  where+    s' = min s 10+++instance (Arbitrary n) => Arbitrary (DotSubGraph n) where+  arbitrary = do isClust <- arbitrary+                 let ga = bool gaSubGraph gaClusters isClust+                 liftM2 (DotSG isClust) arbitrary (sized $ arbDS ga False)++  shrink (DotSG isCl mid stmts) = map (DotSG isCl mid) $ shrinkDStmts stmts
+ tests/Data/GraphViz/Testing/Instances/Graph.hs view
@@ -0,0 +1,31 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_HADDOCK hide #-}+{-# LANGUAGE FlexibleInstances #-}++{- |+   Module      : Data.GraphViz.Testing.Instances.Graph+   Description : Graph dot graph instances for Arbitrary.+   Copyright   : (c) Ivan Lazar Miljenovic+   License     : 3-Clause BSD-style+   Maintainer  : Ivan.Miljenovic@gmail.com+ -}+module Data.GraphViz.Testing.Instances.Graph where++import Data.GraphViz.Testing.Instances.Canonical()++import Data.GraphViz.Types.Graph+import Data.GraphViz.Types(fromCanonical)++import Test.QuickCheck++import Control.Monad(liftM)++-- -----------------------------------------------------------------------------++-- | Can't directly create one of these as it might not match the+--   internal format directly; as such, have to use the inefficient+--   'fromCanonical' route.+instance (Arbitrary n, Ord n) => Arbitrary (DotGraph n) where+  arbitrary = liftM fromCanonical arbitrary++  shrink = map fromCanonical . shrink . toCanonical
+ tests/Data/GraphViz/Testing/Instances/Helpers.hs view
@@ -0,0 +1,138 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_HADDOCK hide #-}+{-# LANGUAGE OverloadedStrings #-}++{- |+   Module      : Data.GraphViz.Testing.Instances.Helpers+   Description : Helper functions for graphviz Arbitrary instances.+   Copyright   : (c) Ivan Lazar Miljenovic+   License     : 3-Clause BSD-style+   Maintainer  : Ivan.Miljenovic@gmail.com+ -}+module Data.GraphViz.Testing.Instances.Helpers where++import Data.GraphViz.Parsing(isNumString)+import Data.GraphViz.State(initialState, layerSep)++import Test.QuickCheck++import qualified Data.Text.Lazy as T+import Data.Text.Lazy(Text)+import Control.Monad(liftM, liftM2)++-- -----------------------------------------------------------------------------+-- Helper Functions++instance Arbitrary Text where+  arbitrary = arbText++  shrink = filter validString+           . map T.pack . nonEmptyShrinks' . T.unpack++arbText :: Gen Text+arbText = suchThat genStr notBool+    where+      genStr = liftM2 T.cons (elements notDigits)+                             (liftM T.concat . listOf $ elements strChr)+      notDigits = ['a'..'z'] ++ ['\'', '"', ' ', '(', ')', ',', ':', '\\']+      strChr = map T.singleton $ notDigits ++ '.' : ['0'..'9']++arbString :: Gen String+arbString = liftM T.unpack arbitrary++fromPositive              :: Positive a -> a+fromPositive (Positive a) = a++posArbitrary :: (Arbitrary a, Num a, Ord a) => Gen a+posArbitrary = liftM fromPositive arbitrary++arbIDString :: Gen Text+arbIDString = suchThat genStr notBool+  where+    genStr = liftM2 T.cons (elements frst)+                           (liftM T.pack . listOf $ elements rest)+    frst = ['a'..'z'] ++ ['_']+    rest = frst ++ ['0'.. '9']++validString :: Text -> Bool+validString = liftM2 (&&) notBool notNumStr++notBool         :: Text -> Bool+notBool "true"  = False+notBool "false" = False+notBool _       = True++shrinkString :: String -> [String]+shrinkString = map T.unpack . shrink . T.pack++notNumStr :: Text -> Bool+notNumStr = not . isNumString++arbBounded :: (Bounded a, Enum a) => Gen a+arbBounded = elements [minBound .. maxBound]++arbLayerName :: Gen Text+arbLayerName = suchThat arbitrary (T.all notLayerSep)+  where+    defLayerSep = layerSep initialState+    notLayerSep = (`notElem` defLayerSep)++arbStyleName :: Gen Text+arbStyleName = suchThat arbitrary (T.all notBrackCom)+  where+    notBrackCom = flip notElem ['(', ')', ',', ' ']++arbList :: (Arbitrary a) => Gen [a]+arbList = listOf1 arbitrary++nonEmptyShrinks :: (Arbitrary a) => [a] -> [[a]]+nonEmptyShrinks = filter (not . null) . shrinkList++nonEmptyShrinks' :: [a] -> [[a]]+nonEmptyShrinks' = filter (not . null) . shrinkList'++-- Shrink lists with more than one value only by removing values, not+-- by shrinking individual items.+shrinkList     :: (Arbitrary a) => [a] -> [[a]]+shrinkList [a] = map return $ shrink a+shrinkList as  = shrinkList' as++-- Just shrink the size.+shrinkList'     :: [a] -> [[a]]+shrinkList' as  = rm (length as) as+  where+    rm 0 _  = []+    rm 1 _  = [[]]+    rm n xs = xs1+            : xs2+            : ( [ xs1' ++ xs2 | xs1' <- rm n1 xs1, not (null xs1') ]+                `ilv` [ xs1 ++ xs2' | xs2' <- rm n2 xs2, not (null xs2') ]+              )+     where+      n1  = n `div` 2+      xs1 = take n1 xs+      n2  = n - n1+      xs2 = drop n1 xs++    []     `ilv` ys     = ys+    xs     `ilv` []     = xs+    (x:xs) `ilv` (y:ys) = x : y : (xs `ilv` ys)++-- When a Maybe value is a sub-component, and we need shrink to return+-- a value.+shrinkM         :: (Arbitrary a) => Maybe a -> [Maybe a]+shrinkM Nothing = [Nothing]+shrinkM j       = shrink j++shrinkL    :: (Arbitrary a) => [a] -> [[a]]+shrinkL xs = case shrinkList xs of+               []  -> [xs]+               xs' -> xs'++notInt   :: Double -> Bool+notInt d = fromIntegral (round d :: Int) /= d++returnCheck     :: (Eq a) => a -> a -> [a]+returnCheck o n = if o == n+                  then []+                  else [n]
+ tests/Data/GraphViz/Testing/Properties.hs view
@@ -0,0 +1,181 @@+{-# LANGUAGE FlexibleContexts, ScopedTypeVariables #-}++{- |+   Module      : Data.GraphViz.Testing.Properties+   Description : Properties for testing.+   Copyright   : (c) Ivan Lazar Miljenovic+   License     : 3-Clause BSD-style+   Maintainer  : Ivan.Miljenovic@gmail.com++   Various properties that should hold true for the graphviz library.+-}+module Data.GraphViz.Testing.Properties where++import Data.GraphViz( dotizeGraph, graphToDot+                    , setDirectedness, nonClusteredParams)+import Data.GraphViz.Types( DotRepr(..), PrintDotRepr+                          , DotNode(..), DotEdge(..), GlobalAttributes(..)+                          , printDotGraph, graphNodes, graphEdges+                          , graphStructureInformation)+import Data.GraphViz.Types.Canonical(DotGraph(..), DotStatements(..))+import qualified Data.GraphViz.Types.Generalised as G+import Data.GraphViz.Printing(PrintDot(..), printIt)+import Data.GraphViz.Parsing(ParseDot(..), parseIt, parseIt')+import Data.GraphViz.PreProcessing(preProcess)+import Data.GraphViz.Util(groupSortBy, isSingle)+import Data.GraphViz.Algorithms++import Test.QuickCheck++import Data.Graph.Inductive( Graph, DynGraph+                           , equal, nmap, emap, labNodes, labEdges, nodes, edges)+import Data.List(nub, sort)+import Data.Function(on)+import qualified Data.Map as Map+import qualified Data.Set as Set+import Data.Text.Lazy(Text)+import Control.Arrow((&&&))++-- -----------------------------------------------------------------------------+-- The properties to test for++-- | Checking that @parse . print == id@; that is, graphviz can parse+--   its own output.+prop_printParseID   :: (ParseDot a, PrintDot a, Eq a) => a -> Bool+prop_printParseID a = tryParse' a == a++-- | A version of 'prop_printParse' specifically for lists; it ensures+--   that the list is not empty (as most list-based parsers fail on+--   empty lists).+prop_printParseListID    :: (ParseDot a, PrintDot a, Eq a) => [a] -> Property+prop_printParseListID as =  not (null as) ==> prop_printParseID as++-- | When converting a canonical 'DotGraph' value to any other one,+--   they should generate the same Dot code.+prop_generalisedSameDot    :: (Ord n, PrintDot n, ParseDot n) => DotGraph n -> Bool+prop_generalisedSameDot dg = printDotGraph dg == printDotGraph gdg+  where+    gdg = canonicalToType (undefined :: G.DotGraph n) dg++-- | Pre-processing shouldn't change the output of printed Dot code.+--   This should work for all 'PrintDot' instances, but is more+--   specific to 'DotGraph' values.+prop_preProcessingID    :: (PrintDotRepr dg n) => dg n -> Bool+prop_preProcessingID dg = preProcess dotCode == dotCode+  where+    dotCode = printDotGraph dg++-- | This property verifies that 'dotizeGraph', etc. only /augment/ the+--   original graph; that is, the actual nodes, edges and labels for+--   each remain unchanged.  Whilst 'dotize', etc. only require+--   'Graph' instances, this property requires 'DynGraph' (which is a+--   sub-class of 'Graph') instances to be able to strip off the+--   'Attributes' augmentations.+prop_dotizeAugment   :: (DynGraph g, Eq n, Ord e) => g n e -> Bool+prop_dotizeAugment g = equal g (unAugment g')+  where+    g' = setDirectedness dotizeGraph nonClusteredParams g+    unAugment = nmap snd . emap snd++-- | After augmentation, each node and edge should have a non-empty+-- | list of 'Attributes'.+prop_dotizeHasAugment   :: (DynGraph g, Ord e) => g n e -> Bool+prop_dotizeHasAugment g = all (not . null) nodeAugments+                          && all (not . null) edgeAugments+  where+    g' = setDirectedness dotizeGraph nonClusteredParams g+    nodeAugments = map (fst . snd) $ labNodes g'+    edgeAugments = map (fst . \(_,_,l) -> l) $ labEdges g'++-- | When a graph with multiple edges is augmented, then all edges+--   should have unique 'Attributes' (namely the positions).  Note+--   that this may not hold true with custom supplied 'Attributes'+--   (i.e. not using one of the @dotize@ functions).+prop_dotizeAugmentUniq   :: (DynGraph g, Eq n, Ord e) => g n e -> Bool+prop_dotizeAugmentUniq g = all uniqLs lss+  where+    g' = setDirectedness dotizeGraph nonClusteredParams g+    les = map (\(f,t,l) -> ((f,t),l)) $ labEdges g'+    lss = map (map snd) . filter (not . isSingle)+          $ groupSortBy fst les+    uniqLs [] = False -- Needs to have at least /one/ Attribute!+    uniqLs ls = ls == nub ls++-- | Ensure that the definition of 'nodeInformation' for a DotRepr+--   finds all the nodes.+prop_findAllNodes       :: (DotRepr dg Int, Ord el, Graph g)+                           => dg Int -> g nl el -> Bool+prop_findAllNodes dg' g = ((==) `on` sort) gns dgns+  where+    gns = nodes g+    dg = canonicalToType dg' $ setDirectedness graphToDot nonClusteredParams g+    dgns = map nodeID $ graphNodes dg++-- | Ensure that the definition of 'nodeInformation' for DotReprs+--   finds all the nodes when the explicit 'DotNode' definitions are+--   removed.+prop_findAllNodesE       :: (DotRepr dg Int, Ord el, Graph g)+                            => dg Int -> g nl el -> Bool+prop_findAllNodesE dg' g = ((==) `on` sort) gns dgns+  where+    gns = nodes g+    dg = canonicalToType dg' . removeNodes $ setDirectedness graphToDot nonClusteredParams g+    dgns = map nodeID $ graphNodes dg+    removeNodes dot@DotGraph{graphStatements = stmts}+      = dot { graphStatements+               = stmts {nodeStmts = filter notInEdge $ nodeStmts stmts}+            }+    gnes = Set.fromList . concatMap (\(f,t) -> [f,t]) $ edges g+    notInEdge dn = nodeID dn `Set.notMember` gnes++-- | Ensure that the definition of 'edgeInformation' for DotReprs+--   finds all the nodes.+prop_findAllEdges       :: (DotRepr dg Int, Ord el, Graph g) => dg Int -> g nl el -> Bool+prop_findAllEdges dg' g = ((==) `on` sort) ges dges+  where+    ges = edges g+    dg = canonicalToType dg' $ graphToDot nonClusteredParams g+    dges = map (fromNode &&& toNode) $ graphEdges dg++-- | There should be no clusters or global attributes when converting+--   a 'Graph' to a DotRepr (via fromCanonical) without any formatting+--   or clustering.+prop_noGraphInfo       :: (DotRepr dg Int, Ord el, Graph g)+                          => dg Int -> g nl el -> Bool+prop_noGraphInfo dg' g = info == (GraphAttrs [], Map.empty)+  where+    dg = canonicalToType dg'+         $ setDirectedness graphToDot nonClusteredParams g+    info = graphStructureInformation dg++-- | Canonicalisation should be idempotent.+prop_canonicalise   :: (ParseDot n, PrintDot n, DotRepr dg n) => dg n -> Bool+prop_canonicalise g = cdg == canonicalise cdg+  where+    cdg = canonicalise g++-- | Removing transitive edges should be idempotent.+prop_transitive   :: (DotRepr dg n) => dg n -> Bool+prop_transitive g = tdg == transitiveReduction tdg+  where+    tdg = transitiveReduction g++-- -----------------------------------------------------------------------------+-- Helper utility functions++-- | A utility function to use for debugging purposes for trying to+--   find how graphviz /is/ parsing something.  This is easier than+--   using @'parseIt' . 'printIt'@ directly, since it avoids having to+--   enter and explicit type signature.+tryParse :: (ParseDot a, PrintDot a) => a -> (a, Text)+tryParse = parseIt . printIt++-- | Equivalent to 'tryParse' except that it is assumed that the+--   entire 'String' *is* fully consumed.+tryParse' :: (ParseDot a, PrintDot a) => a -> a+tryParse' = parseIt' . printIt++-- | A wrapper around 'fromCanonical' that lets you specify up-front+--   what type to create (it need not be a sensible value).+canonicalToType   :: (DotRepr dg n) => dg n -> DotGraph n -> dg n+canonicalToType _ = fromCanonical
+ tests/RunTests.hs view
@@ -0,0 +1,83 @@+{- |+   Module      : RunTests+   Description : Run the graphviz test suite.+   Copyright   : (c) Ivan Lazar Miljenovic+   License     : 3-Clause BSD-style+   Maintainer  : Ivan.Miljenovic@gmail.com++   This module exists solely to make a Main module to build and run+   the test suite.+-}+module Main where++import Data.GraphViz.Testing( Test(name, lookupName)+                            , defaultTests, runChosenTests)++import Data.Char(toLower)+import Data.Maybe(mapMaybe)+import qualified Data.Map as Map+import Data.Map(Map)+import Control.Arrow((&&&))+import Control.Monad(when)+import System.Environment(getArgs, getProgName)+import System.Exit(ExitCode(ExitSuccess), exitWith)++-- -----------------------------------------------------------------------------++main :: IO ()+main = do opts <- getArgs+          let opts' = map (map toLower) opts+              hasArg arg = any (arg==) opts'+          when (hasArg "help") helpMsg+          let tests = if hasArg "all"+                      then defaultTests+                      else mapMaybe getTest opts'+              tests' = if null tests+                       then defaultTests+                       else tests+          runChosenTests tests'++testLookup :: Map String Test+testLookup = Map.fromList+             $ map (lookupName &&& id) defaultTests++getTest :: String -> Maybe Test+getTest = (`Map.lookup` testLookup)++helpMsg :: IO ()+helpMsg = getProgName >>= (putStr . msg) >> exitWith ExitSuccess+  where+    msg nm = unlines+      [ "This utility is the test-suite for the graphviz library for Haskell."+      , "Various tests are available; see the table below for a complete list."+      , "There are several ways of running this program:"+      , ""+      , "    " ++ nm ++ "               Run all of the tests"+      , "    " ++ nm ++ " all           Run all of the tests"+      , "    " ++ nm ++ " help          Get this help message"+      , "    " ++ nm ++ " <key>         Run the test associated with each key,"+      , "        (where <key> denotes a space-separated list of keys"+      , "         from the table below)."+      , ""+      , helpTable+      ]++helpTable :: String+helpTable = unlines $ fmtName ((lnHeader,lnHeaderLen),(nHeader,nHeaderLen))+                      : line+                      : map fmtName testNames+  where+    andLen = ((id &&& length) .)+    testNames = map (andLen lookupName &&& andLen name) defaultTests+    fmtName ((ln,lnl),(n,_)) = concat [ ln+                                      , replicate (maxLN-lnl+spacerLen) ' '+                                      , n+                                      ]+    line = replicate (maxLN + spacerLen + maxN) '-'+    maxLN = maximum $ map (snd . fst) testNames+    maxN = maximum $ map (snd . snd) testNames+    spacerLen = 3+    lnHeader = "Key"+    lnHeaderLen = length lnHeader+    nHeader = "Description"+    nHeaderLen = length nHeader
utils/AttributeGenerator.hs view
@@ -448,6 +448,8 @@  -- The actual attributes +-- ColorScheme is put earlier so that when sorting, it comes before the various *Color attributes.+ attributes :: [Attribute] attributes = [ makeAttr "Damping" ["Damping"] "G" Dbl Nothing (Just "0.99") (Just "@0.99@") (Just "@0.0@") (Just "neato only")              , makeAttr "K" ["K"] "GC" Dbl Nothing (Just "0.3") (Just "@0.3@") (Just "@0@") (Just "sfdp, fdp only")@@ -456,20 +458,20 @@              , makeAttr "ArrowSize" ["arrowsize"] "E" Dbl Nothing (Just "1") (Just "@1.0@") (Just "@0.0@") Nothing              , makeAttr "ArrowTail" ["arrowtail"] "E" (Cust "ArrowType") Nothing (Just "normal") (Just "@'normal'@") Nothing Nothing              , makeAttr "Aspect" ["aspect"] "G" (Cust "AspectType") Nothing Nothing Nothing Nothing (Just "dot only")-             , makeAttr "Bb" ["bb"] "G" (Cust "Rect") Nothing Nothing Nothing Nothing (Just "write only")-             , makeAttr "BgColor" ["bgcolor"] "GC" (Cust "Color") Nothing (Just "(X11Color Transparent)") (Just "@'X11Color' 'Transparent'@") Nothing Nothing+             , makeAttr "BoundingBox" ["bb"] "G" (Cust "Rect") Nothing Nothing Nothing Nothing (Just "write only")+             , makeAttr "ColorScheme" ["colorscheme"] "ENCG" (Cust "ColorScheme") Nothing (Just "X11") (Just "@'X11'@") Nothing Nothing+             , makeAttr "BgColor" ["bgcolor"] "GC" (Cust "[Color]") Nothing (Just "[X11Color Transparent]") (Just "@['X11Color' 'Transparent']@") Nothing Nothing              , makeAttr "Center" ["center"] "G" Bl (Just "True") (Just "False") (Just "@'False'@") Nothing Nothing              , makeAttr "ClusterRank" ["clusterrank"] "G" (Cust "ClusterMode") Nothing (Just "Local") (Just "@'Local'@") Nothing (Just "dot only")-             , makeAttr "ColorScheme" ["colorscheme"] "ENCG" (Cust "ColorScheme") Nothing (Just "X11") (Just "@'X11'@") Nothing Nothing              , makeAttr "Color" ["color"] "ENC" (Cust "[Color]") Nothing (Just "[X11Color Black]") (Just "@['X11Color' 'Black']@") Nothing Nothing              , makeAttr "Comment" ["comment"] "ENG" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing Nothing              , makeAttr "Compound" ["compound"] "G" Bl (Just "True") (Just "False")(Just "@'False'@") Nothing (Just "dot only")              , makeAttr "Concentrate" ["concentrate"] "G" Bl (Just "True") (Just "False") (Just "@'False'@") Nothing Nothing              , makeAttr "Constraint" ["constraint"] "E" Bl (Just "True") (Just "True") (Just "@'True'@") Nothing (Just "dot only")              , makeAttr "Decorate" ["decorate"] "E" Bl (Just "True") (Just "False") (Just "@'False'@") Nothing Nothing-             , makeAttr "DefaultDist" ["defaultdist"] "G" Dbl Nothing Nothing (Just "@1+(avg. len)*sqrt(|V|)@") (Just "@epsilon@") (Just "neato only")-             , makeAttr "Dimen" ["dimen"] "G" Integ Nothing (Just "2") (Just "@2@") (Just "@2@") (Just "sfdp, fdp, neato only")+             , makeAttr "DefaultDist" ["defaultdist"] "G" Dbl Nothing Nothing (Just "@1+(avg. len)*sqrt(|V|)@") (Just "@epsilon@") (Just "neato only, only if @'Pack' 'DontPack'")              , makeAttr "Dim" ["dim"] "G" Integ Nothing (Just "2") (Just "@2@") (Just "@2@") (Just "sfdp, fdp, neato only")+             , makeAttr "Dimen" ["dimen"] "G" Integ Nothing (Just "2") (Just "@2@") (Just "@2@") (Just "sfdp, fdp, neato only")              , makeAttr "Dir" ["dir"] "E" (Cust "DirType") Nothing Nothing (Just "@'Forward'@ (directed), @'NoDir'@ (undirected)") Nothing Nothing              , makeAttr "DirEdgeConstraints" ["diredgeconstraints"] "G" (Cust "DEConstraints") (Just "EdgeConstraints") (Just "NoConstraints") (Just "@'NoConstraints'@") Nothing (Just "neato only")              , makeAttr "Distortion" ["distortion"] "N" Dbl Nothing (Just "0") (Just "@0.0@") (Just "@-100.0@") Nothing@@ -479,13 +481,15 @@              , makeAttr "EdgeTooltip" ["edgetooltip"] "E" EStrng Nothing Nothing (Just "@\\\"\\\"@") Nothing (Just "svg, cmap only")              , makeAttr "Epsilon" ["epsilon"] "G" Dbl Nothing Nothing (Just "@.0001 * # nodes@ (@mode == 'KK'@), @.0001@ (@mode == 'Major'@)") Nothing (Just "neato only")              , makeAttr "ESep" ["esep"] "G" (Cust "DPoint") Nothing (Just "(DVal 3)") (Just "@'DVal' 3@") Nothing (Just "not dot")-             , makeAttr "FillColor" ["fillcolor"] "NC" (Cust "Color") Nothing (Just "(X11Color Black)")(Just "@'X11Color' 'LightGray'@ (nodes), @'X11Color' 'Black'@ (clusters)") Nothing Nothing+             , makeAttr "FillColor" ["fillcolor"] "NEC" (Cust "[Color]") Nothing (Just "[X11Color Black]")(Just "@['X11Color' 'LightGray']@ (nodes), @['X11Color' 'Black']@ (clusters)") Nothing Nothing              , makeAttr "FixedSize" ["fixedsize"] "N" Bl (Just "True") (Just "False") (Just "@'False'@") Nothing Nothing              , makeAttr "FontColor" ["fontcolor"] "ENGC" (Cust "Color") Nothing (Just "(X11Color Black)") (Just "@'X11Color' 'Black'@") Nothing Nothing              , makeAttr "FontName" ["fontname"] "ENGC" Strng Nothing (Just "\"Times-Roman\"") (Just "@\\\"Times-Roman\\\"@") Nothing Nothing              , makeAttr "FontNames" ["fontnames"] "G" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "svg only")              , makeAttr "FontPath" ["fontpath"] "G" Strng Nothing Nothing (Just "system dependent") Nothing Nothing              , makeAttr "FontSize" ["fontsize"] "ENGC" Dbl Nothing (Just "14") (Just "@14.0@") (Just "@1.0@") Nothing+             , makeAttr "ForceLabels" ["forcelabels"] "G" Bl (Just "True") (Just "False") (Just "@'False'@") Nothing (Just "Only for 'XLabel' attributes, requires Graphviz >= 2.29.0")+             , makeAttr "GradientAngle" ["gradientangle"] "NCG" Integ Nothing (Just "0") (Just "0") Nothing (Just "requires Graphviz >= 2.29.0")              , makeAttr "Group" ["group"] "N" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "dot only")              , makeAttr "HeadURL" ["headURL", "headhref"] "E" EStrng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "svg, map only")              , makeAttr "HeadClip" ["headclip"] "E" Bl (Just "True") (Just "True") (Just "@'True'@") Nothing Nothing@@ -494,10 +498,13 @@              , makeAttr "HeadTarget" ["headtarget"] "E" EStrng Nothing (Just "\"\"") (Just "none") Nothing (Just "svg, map only")              , makeAttr "HeadTooltip" ["headtooltip"] "E" EStrng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "svg, cmap only")              , makeAttr "Height" ["height"] "N" Dbl Nothing (Just "0.5") (Just "@0.5@") (Just "@0.02@") Nothing-             , makeAttr "ID" ["id"] "GNE" (Cust "Label") Nothing (Just "(StrLabel \"\")") (Just "@'StrLabel' \\\"\\\"@") Nothing (Just "svg, postscript, map only")+             , makeAttr "ID" ["id"] "GNE" EStrng Nothing (Just "\"\"") (Just "@\\\"\\\"") Nothing (Just "svg, postscript, map only")              , makeAttr "Image" ["image"] "N" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing Nothing+             , makeAttr "ImagePath" ["imagepath"] "G" (Cust "Paths") Nothing (Just "(Paths [])") (Just "@'Paths' []@") Nothing (Just "Printing and parsing is OS-specific, requires Graphviz >= 2.29.0")              , makeAttr "ImageScale" ["imagescale"] "N" (Cust "ScaleType") (Just "UniformScale") (Just "NoScale") (Just "@'NoScale'@") Nothing Nothing+             , makeAttr "Label" ["label"] "ENGC" (Cust "Label") Nothing (Just "(StrLabel \"\")") (Just "@'StrLabel' \\\"\\\\N\\\"@ (nodes), @'StrLabel' \\\"\\\"@ (otherwise)") Nothing Nothing              , makeAttr "LabelURL" ["labelURL", "labelhref"] "E" EStrng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "svg, map only")+             , makeAttr "LabelScheme" ["label_scheme"] "G" (Cust "LabelScheme") Nothing (Just "NotEdgeLabel") (Just "@'NotEdgeLabel'@") Nothing (Just "sfdp only, requires Graphviz >= 2.28.0")              , makeAttr "LabelAngle" ["labelangle"] "E" Dbl Nothing (Just "(-25)") (Just "@-25.0@") (Just "@-180.0@") Nothing              , makeAttr "LabelDistance" ["labeldistance"] "E" Dbl Nothing (Just "1") (Just "@1.0@") (Just "@0.0@") Nothing              , makeAttr "LabelFloat" ["labelfloat"] "E" Bl (Just "True") (Just "False") (Just "@'False'@") Nothing Nothing@@ -508,41 +515,42 @@              , makeAttr "LabelLoc" ["labelloc"] "GCN" (Cust "VerticalPlacement") Nothing (Just "VTop") (Just "@'VTop'@ (clusters), @'VBottom'@ (root graphs), @'VCenter'@ (nodes)") Nothing Nothing              , makeAttr "LabelTarget" ["labeltarget"] "E" EStrng Nothing (Just "\"\"") (Just "none") Nothing (Just "svg, map only")              , makeAttr "LabelTooltip" ["labeltooltip"] "E" EStrng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "svg, cmap only")-             , makeAttr "Label" ["label"] "ENGC" (Cust "Label") Nothing (Just "(StrLabel \"\")") (Just "@'StrLabel' \\\"\\\\N\\\"@ (nodes), @'StrLabel' \\\"\\\"@ (otherwise)") Nothing Nothing              , makeAttr "Landscape" ["landscape"] "G" Bl (Just "True") (Just "False") (Just "@'False'@") Nothing Nothing-             , makeAttr "LayerSep" ["layersep"] "G" (Cust "LayerSep") Nothing (Just "(LSep \" :\\t\")") (Just "@'LSep' \\\" :\\t\\\"@") Nothing Nothing-             , makeAttr "Layers" ["layers"] "G" (Cust "LayerList") Nothing (Just "(LL [])")  (Just "@'LL' []@") Nothing Nothing              , makeAttr "Layer" ["layer"] "EN" (Cust "LayerRange") Nothing Nothing Nothing Nothing Nothing+             , makeAttr "Layers" ["layers"] "G" (Cust "LayerList") Nothing (Just "(LL [])")  (Just "@'LL' []@") Nothing Nothing+             , makeAttr "LayerSep" ["layersep"] "G" (Cust "LayerSep") Nothing (Just "(LSep \" :\\t\")") (Just "@'LSep' \\\" :\\t\\\"@") Nothing Nothing              , makeAttr "Layout" ["layout"] "G" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing Nothing              , makeAttr "Len" ["len"] "E" Dbl Nothing Nothing (Just "@1.0@ (neato), @0.3@ (fdp)") Nothing (Just "fdp, neato only")              , makeAttr "LevelsGap" ["levelsgap"] "G" Dbl Nothing (Just "0") (Just "@0.0@") Nothing (Just "neato only")              , makeAttr "Levels" ["levels"] "G" Integ Nothing (Just "maxBound") (Just "@'maxBound'@") (Just "@0@") (Just "sfdp only")              , makeAttr "LHead" ["lhead"] "E" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "dot only")+             , makeAttr "LHeight" ["LHeight"] "GC" Dbl Nothing Nothing Nothing Nothing (Just "write only, requires Graphviz >= 2.28.0")              , makeAttr "LPos" ["lp"] "EGC" (Cust "Point") Nothing Nothing Nothing Nothing (Just "write only")              , makeAttr "LTail" ["ltail"] "E" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "dot only")+             , makeAttr "LWidth" ["lwidth"] "GC" Dbl Nothing Nothing Nothing Nothing (Just "write only, requires Graphviz >= 2.28.0")              , makeAttr "Margin" ["margin"] "NG" (Cust "DPoint") Nothing Nothing (Just "device dependent") Nothing Nothing              , makeAttr "MaxIter" ["maxiter"] "G" Integ Nothing Nothing (Just "@100 * # nodes@ (@mode == 'KK'@), @200@ (@mode == 'Major'@), @600@ (fdp)") Nothing (Just "fdp, neato only")              , makeAttr "MCLimit" ["mclimit"] "G" Dbl Nothing (Just "1") (Just "@1.0@") Nothing (Just "dot only")              , makeAttr "MinDist" ["mindist"] "G" Dbl Nothing (Just "1") (Just "@1.0@") (Just "@0.0@") (Just "circo only")              , makeAttr "MinLen" ["minlen"] "E" Integ Nothing (Just "1") (Just "@1@") (Just "@0@") (Just "dot only")-             , makeAttr "Model" ["model"] "G" (Cust "Model") Nothing (Just "ShortPath") (Just "@'ShortPath'@") Nothing (Just "neato only")              , makeAttr "Mode" ["mode"] "G" (Cust "ModeType") Nothing (Just "Major") (Just "@'Major'@") Nothing (Just "neato only")+             , makeAttr "Model" ["model"] "G" (Cust "Model") Nothing (Just "ShortPath") (Just "@'ShortPath'@") Nothing (Just "neato only")              , makeAttr "Mosek" ["mosek"] "G" Bl (Just "True") (Just "False") (Just "@'False'@") Nothing (Just "neato only; requires the Mosek software")              , makeAttr "NodeSep" ["nodesep"] "G" Dbl Nothing (Just "0.25") (Just "@0.25@") (Just "@0.02@") (Just "dot only")              , makeAttr "NoJustify" ["nojustify"] "GCNE" Bl (Just "True") (Just "False") (Just "@'False'@") Nothing Nothing              , makeAttr "Normalize" ["normalize"] "G" Bl (Just "True") (Just "False") (Just "@'False'@") Nothing (Just "not dot")-             , makeAttr "Nslimit1" ["nslimit1"] "G" Dbl Nothing Nothing Nothing Nothing (Just "dot only")              , makeAttr "Nslimit" ["nslimit"] "G" Dbl Nothing Nothing Nothing Nothing (Just "dot only")-             , makeAttr "Ordering" ["ordering"] "G" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "dot only")+             , makeAttr "Nslimit1" ["nslimit1"] "G" Dbl Nothing Nothing Nothing Nothing (Just "dot only")+             , makeAttr "Ordering" ["ordering"] "GN" (Cust "Order") Nothing Nothing (Just "none") Nothing (Just "dot only")              , makeAttr "Orientation" ["orientation"] "N" Dbl Nothing (Just "0") (Just "@0.0@") (Just "@360.0@") Nothing              , makeAttr "OutputOrder" ["outputorder"] "G" (Cust "OutputMode") Nothing (Just "BreadthFirst") (Just "@'BreadthFirst'@") Nothing Nothing-             , makeAttr "OverlapScaling" ["overlap_scaling"] "G" Dbl Nothing (Just "(-4)") (Just "@-4@") (Just "@-1.0e10@") (Just "prism only")              , makeAttr "Overlap" ["overlap"] "G" (Cust "Overlap") (Just "KeepOverlaps") (Just "KeepOverlaps") (Just "@'KeepOverlaps'@") Nothing (Just "not dot")-             , makeAttr "PackMode" ["packmode"] "G" (Cust "PackMode") Nothing (Just "PackNode") (Just "@'PackNode'@") Nothing (Just "not dot")+             , makeAttr "OverlapScaling" ["overlap_scaling"] "G" Dbl Nothing (Just "(-4)") (Just "@-4@") (Just "@-1.0e10@") (Just "prism only")              , makeAttr "Pack" ["pack"] "G" (Cust "Pack") (Just "DoPack") (Just "DontPack") (Just "@'DontPack'@") Nothing (Just "not dot")+             , makeAttr "PackMode" ["packmode"] "G" (Cust "PackMode") Nothing (Just "PackNode") (Just "@'PackNode'@") Nothing (Just "not dot")              , makeAttr "Pad" ["pad"] "G" (Cust "DPoint") Nothing (Just "(DVal 0.0555)") (Just "@'DVal' 0.0555@ (4 points)") Nothing Nothing-             , makeAttr "PageDir" ["pagedir"] "G" (Cust "PageDir") Nothing (Just "Bl") (Just "@'Bl'@") Nothing Nothing              , makeAttr "Page" ["page"] "G" (Cust "Point") Nothing Nothing Nothing Nothing Nothing+             , makeAttr "PageDir" ["pagedir"] "G" (Cust "PageDir") Nothing (Just "Bl") (Just "@'Bl'@") Nothing Nothing              , makeAttr "PenColor" ["pencolor"] "C" (Cust "Color") Nothing (Just "(X11Color Black)") (Just "@'X11Color' 'Black'@") Nothing Nothing              , makeAttr "PenWidth" ["penwidth"] "CNE" Dbl Nothing (Just "1") (Just "@1.0@") (Just "@0.0@") Nothing              , makeAttr "Peripheries" ["peripheries"] "NC" Integ Nothing (Just "1") (Just "shape default (nodes), @1@ (clusters)") (Just "0") Nothing@@ -550,9 +558,9 @@              , makeAttr "Pos" ["pos"] "EN" (Cust "Pos") Nothing Nothing Nothing Nothing Nothing              , makeAttr "QuadTree" ["quadtree"] "G" (Cust "QuadType") (Just "NormalQT") (Just "NormalQT") (Just "@'NormalQT'@") Nothing (Just "sfdp only")              , makeAttr "Quantum" ["quantum"] "G" Dbl Nothing (Just "0") (Just "@0.0@") (Just "@0.0@") Nothing+             , makeAttr "Rank" ["rank"] "S" (Cust "RankType") Nothing Nothing Nothing Nothing (Just "dot only")              , makeAttr "RankDir" ["rankdir"] "G" (Cust "RankDir") Nothing (Just "FromTop") (Just "@'FromTop'@") Nothing (Just "dot only")              , makeAttr "RankSep" ["ranksep"] "G" (Cust "[Double]") Nothing Nothing (Just "@[0.5]@ (dot), @[1.0]@ (twopi)") (Just "[0.02]") (Just "twopi, dot only")-             , makeAttr "Rank" ["rank"] "S" (Cust "RankType") Nothing Nothing Nothing Nothing (Just "dot only")              , makeAttr "Ratio" ["ratio"] "G" (Cust "Ratios") Nothing Nothing Nothing Nothing Nothing              , makeAttr "Rects" ["rects"] "N" (Cust "[Rect]") Nothing Nothing Nothing Nothing (Just "write only")              , makeAttr "Regular" ["regular"] "N" Bl (Just "True") (Just "False") (Just "@'False'@") Nothing Nothing@@ -560,13 +568,15 @@              , makeAttr "RepulsiveForce" ["repulsiveforce"] "G" Dbl Nothing (Just "1") (Just "@1.0@") (Just "@0.0@") (Just "sfdp only")              , makeAttr "Root" ["root"] "GN" (Cust "Root") (Just "IsCentral") (Just "(NodeName \"\")") (Just "@'NodeName' \\\"\\\"@ (graphs), @'NotCentral'@ (nodes)") Nothing (Just "circo, twopi only")              , makeAttr "Rotate" ["rotate"] "G" Integ Nothing (Just "0") (Just "@0@") Nothing Nothing+             , makeAttr "Rotation" ["rotation"] "G" Dbl Nothing (Just "0") (Just "@0@") Nothing (Just "sfdp only, requires Graphviz >= 2.28.0")              , makeAttr "SameHead" ["samehead"] "E" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "dot only")              , makeAttr "SameTail" ["sametail"] "E" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "dot only")              , makeAttr "SamplePoints" ["samplepoints"] "N" Integ Nothing Nothing (Just "@8@ (output), @20@ (overlap and image maps)") Nothing Nothing+             , makeAttr "Scale" ["scale"] "G" (Cust "DPoint") Nothing Nothing Nothing Nothing (Just "twopi only, requires Graphviz >= 2.28.0")              , makeAttr "SearchSize" ["searchsize"] "G" Integ Nothing (Just "30") (Just "@30@") Nothing (Just "dot only")              , makeAttr "Sep" ["sep"] "G" (Cust "DPoint") Nothing (Just "(DVal 4)") (Just "@'DVal' 4@") Nothing (Just "not dot")-             , makeAttr "ShapeFile" ["shapefile"] "N" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing Nothing              , makeAttr "Shape" ["shape"] "N" (Cust "Shape") Nothing (Just "Ellipse") (Just "@'Ellipse'@") Nothing Nothing+             , makeAttr "ShapeFile" ["shapefile"] "N" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing Nothing              , makeAttr "ShowBoxes" ["showboxes"] "ENG" Integ Nothing (Just "0") (Just "@0@") (Just "@0@") (Just "dot only")              , makeAttr "Sides" ["sides"] "N" Integ Nothing (Just "4") (Just "@4@") (Just "@0@") Nothing              , makeAttr "Size" ["size"] "G" (Cust "Point") Nothing Nothing Nothing Nothing Nothing@@ -575,8 +585,8 @@              , makeAttr "SortV" ["sortv"] "GCN" (Cust "Word16") Nothing (Just "0") (Just "@0@") (Just "@0@") Nothing              , makeAttr "Splines" ["splines"] "G" (Cust "EdgeType") (Just "SplineEdges") (Just "SplineEdges") Nothing Nothing Nothing              , makeAttr "Start" ["start"] "G" (Cust "StartType") Nothing Nothing Nothing Nothing (Just "fdp, neato only")-             , makeAttr "StyleSheet" ["stylesheet"] "G" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "svg only")              , makeAttr "Style" ["style"] "ENC" (Cust "[StyleItem]") Nothing Nothing Nothing Nothing Nothing+             , makeAttr "StyleSheet" ["stylesheet"] "G" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "svg only")              , makeAttr "TailURL" ["tailURL", "tailhref"] "E" EStrng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "svg, map only")              , makeAttr "TailClip" ["tailclip"] "E" Bl (Just "True") (Just "True") (Just "@'True'@") Nothing Nothing              , makeAttr "TailLabel" ["taillabel"] "E" (Cust "Label") Nothing (Just "(StrLabel \"\")") (Just "@'StrLabel' \\\"\\\"@") Nothing Nothing@@ -591,6 +601,7 @@              , makeAttr "VoroMargin" ["voro_margin"] "G" Dbl Nothing (Just "0.05") (Just "@0.05@") (Just "@0.0@") (Just "not dot")              , makeAttr "Weight" ["weight"] "E" Dbl Nothing Nothing (Just "@1.0@") (Just "@0@ (dot), @1@ (neato,fdp,sfdp)") Nothing              , makeAttr "Width" ["width"] "N" Dbl Nothing (Just "0.75") (Just "@0.75@") (Just "@0.01@") Nothing+             , makeAttr "XLabel" ["xlabel"] "EN" (Cust "Label") Nothing (Just "(StrLabel \"\")")  (Just "@'StrLabel' \\\"\\\"@") Nothing (Just "requires Graphviz >= 2.29.0")              , makeAttr "Z" ["z"] "N" Dbl Nothing (Just "0") (Just "@0.0@") (Just "@-MAXFLOAT@, @-1000@") Nothing              ] 
+ utils/Benchmark.hs view
@@ -0,0 +1,38 @@+{-# LANGUAGE OverloadedStrings #-}++{- |+   Module      : Benchmark+   Description : Benchmarking utilities for graphviz+   Copyright   : (c) Ivan Lazar Miljenovic+   License     : 3-Clause BSD-style+   Maintainer  : Ivan.Miljenovic@gmail.com++-}+module Main where++import Data.GraphViz hiding (DotGraph)+import Data.GraphViz.Types.Generalised++import Criterion.Main++import Control.DeepSeq+import Data.Text.Lazy(Text)++-- -----------------------------------------------------------------------------++main :: IO ()+main = defaultMain [ bench "Parsing in-memory GDotGraph" $ nf parseGDG largeDefined+                   , bench "Printing GDotGraph" $ nf printDotGraph largeGraph+                   ]++parseGDG :: Text -> DotGraph Int+parseGDG = parseDotGraph++instance (Show a) => NFData  (DotGraph a) where+  rnf = rnf . show++largeGraph :: DotGraph Int+largeGraph = parseGDG largeDefined++largeDefined :: Text+largeDefined = "digraph \"Entire Codebase\" {\n\tnode [label=\"\\N\", margin=\"0.4,0.1\", style=filled];\n\tsubgraph cluster_Class_Arbitrary {\n\t\tgraph [label=\"Class: Arbitrary\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=rosybrown1];\n\t\tsubgraph cluster_Class_Arbitrary_Data_DotEdgea {\n\t\t\tgraph [label=\"Instance for: (DotEdge a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1530 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1614 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_DotGrapha {\n\t\t\tgraph [label=\"Instance for: (DotGraph a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1531 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1615 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_DotNodea {\n\t\t\tgraph [label=\"Instance for: (DotNode a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1532 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1616 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_DotStatementsa {\n\t\t\tgraph [label=\"Instance for: (DotStatements a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1533 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1617 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_DotSubGrapha {\n\t\t\tgraph [label=\"Instance for: (DotSubGraph a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1534 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1618 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_GDotGrapha {\n\t\t\tgraph [label=\"Instance for: (GDotGraph a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1535 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1619 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_GDotStatementa {\n\t\t\tgraph [label=\"Instance for: (GDotStatement a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1536 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1620 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_GDotSubGrapha {\n\t\t\tgraph [label=\"Instance for: (GDotSubGraph a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1537 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1621 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_gne {\n\t\t\tgraph [label=\"Instance for: (g n e)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1665 [label=\"Data.GraphViz.Testing.Instances.FGL\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1666 [label=\"Data.GraphViz.Testing.Instances.FGL\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=cyan];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_ArrowFill {\n\t\t\tgraph [label=\"Instance for: ArrowFill\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1538 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_ArrowModifier {\n\t\t\tgraph [label=\"Instance for: ArrowModifier\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1539 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_ArrowShape {\n\t\t\tgraph [label=\"Instance for: ArrowShape\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1540 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_ArrowSide {\n\t\t\tgraph [label=\"Instance for: ArrowSide\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1541 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_ArrowType {\n\t\t\tgraph [label=\"Instance for: ArrowType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1542 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1622 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_AspectType {\n\t\t\tgraph [label=\"Instance for: AspectType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1543 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1623 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Attribute {\n\t\t\tgraph [label=\"Instance for: Attribute\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1544 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1624 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_BrewerName {\n\t\t\tgraph [label=\"Instance for: BrewerName\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1545 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_ClusterMode {\n\t\t\tgraph [label=\"Instance for: ClusterMode\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1546 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Color {\n\t\t\tgraph [label=\"Instance for: Color\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1547 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1625 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_ColorScheme {\n\t\t\tgraph [label=\"Instance for: ColorScheme\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1548 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1626 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_CompassPoint {\n\t\t\tgraph [label=\"Instance for: CompassPoint\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1549 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_DEConstraints {\n\t\t\tgraph [label=\"Instance for: DEConstraints\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1550 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_DPoint {\n\t\t\tgraph [label=\"Instance for: DPoint\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1551 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1627 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_DirType {\n\t\t\tgraph [label=\"Instance for: DirType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1552 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_EdgeType {\n\t\t\tgraph [label=\"Instance for: EdgeType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1553 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_FocusType {\n\t\t\tgraph [label=\"Instance for: FocusType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1554 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1628 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_GlobalAttributes {\n\t\t\tgraph [label=\"Instance for: GlobalAttributes\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1555 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1629 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_GraphID {\n\t\t\tgraph [label=\"Instance for: GraphID\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1556 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1630 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_HtmlAlign {\n\t\t\tgraph [label=\"Instance for: HtmlAlign\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1557 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_HtmlAttribute {\n\t\t\tgraph [label=\"Instance for: HtmlAttribute\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1558 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1631 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_HtmlCell {\n\t\t\tgraph [label=\"Instance for: HtmlCell\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1559 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1632 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_HtmlImg {\n\t\t\tgraph [label=\"Instance for: HtmlImg\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1560 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_HtmlLabel {\n\t\t\tgraph [label=\"Instance for: HtmlLabel\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1561 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1633 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_HtmlRow {\n\t\t\tgraph [label=\"Instance for: HtmlRow\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1562 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1634 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_HtmlScale {\n\t\t\tgraph [label=\"Instance for: HtmlScale\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1563 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_HtmlTable {\n\t\t\tgraph [label=\"Instance for: HtmlTable\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1564 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1635 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_HtmlTextItem {\n\t\t\tgraph [label=\"Instance for: HtmlTextItem\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1565 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1636 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_HtmlVAlign {\n\t\t\tgraph [label=\"Instance for: HtmlVAlign\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1566 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Justification {\n\t\t\tgraph [label=\"Instance for: Justification\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1567 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Label {\n\t\t\tgraph [label=\"Instance for: Label\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1568 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1637 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_LayerID {\n\t\t\tgraph [label=\"Instance for: LayerID\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1569 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1638 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_LayerList {\n\t\t\tgraph [label=\"Instance for: LayerList\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1570 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1639 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_LayerRange {\n\t\t\tgraph [label=\"Instance for: LayerRange\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1571 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1640 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_ModeType {\n\t\t\tgraph [label=\"Instance for: ModeType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1572 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Model {\n\t\t\tgraph [label=\"Instance for: Model\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1573 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_OutputMode {\n\t\t\tgraph [label=\"Instance for: OutputMode\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1574 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Overlap {\n\t\t\tgraph [label=\"Instance for: Overlap\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1575 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1641 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Pack {\n\t\t\tgraph [label=\"Instance for: Pack\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1576 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1642 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_PackMode {\n\t\t\tgraph [label=\"Instance for: PackMode\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1577 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1643 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_PageDir {\n\t\t\tgraph [label=\"Instance for: PageDir\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1578 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Point {\n\t\t\tgraph [label=\"Instance for: Point\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1579 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1644 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_PortName {\n\t\t\tgraph [label=\"Instance for: PortName\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1580 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1645 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_PortPos {\n\t\t\tgraph [label=\"Instance for: PortPos\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1581 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1646 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Pos {\n\t\t\tgraph [label=\"Instance for: Pos\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1582 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1647 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_QuadType {\n\t\t\tgraph [label=\"Instance for: QuadType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1583 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_RankDir {\n\t\t\tgraph [label=\"Instance for: RankDir\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1584 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_RankType {\n\t\t\tgraph [label=\"Instance for: RankType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1585 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Ratios {\n\t\t\tgraph [label=\"Instance for: Ratios\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1586 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1648 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_RecordField {\n\t\t\tgraph [label=\"Instance for: RecordField\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1587 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1649 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Rect {\n\t\t\tgraph [label=\"Instance for: Rect\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1588 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1650 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Root {\n\t\t\tgraph [label=\"Instance for: Root\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1589 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1651 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_STStyle {\n\t\t\tgraph [label=\"Instance for: STStyle\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1590 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_ScaleType {\n\t\t\tgraph [label=\"Instance for: ScaleType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1591 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Shape {\n\t\t\tgraph [label=\"Instance for: Shape\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1592 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_SmoothType {\n\t\t\tgraph [label=\"Instance for: SmoothType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1593 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Spline {\n\t\t\tgraph [label=\"Instance for: Spline\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1594 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1652 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_StartType {\n\t\t\tgraph [label=\"Instance for: StartType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1595 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1653 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_StyleItem {\n\t\t\tgraph [label=\"Instance for: StyleItem\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1596 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_StyleName {\n\t\t\tgraph [label=\"Instance for: StyleName\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1597 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_VerticalPlacement {\n\t\t\tgraph [label=\"Instance for: VerticalPlacement\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1598 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_ViewPort {\n\t\t\tgraph [label=\"Instance for: ViewPort\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1599 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1654 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_X11Color {\n\t\t\tgraph [label=\"Instance for: X11Color\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1600 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\t1889 [label=\"Unknown Module\\narbitrary\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1900 [label=\"Unknown Module\\nshrink\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1530 -> 1889 [penwidth=\"2.386294361119891\", color=black];\n\t\t1531 -> 1889 [penwidth=\"2.386294361119891\", color=black];\n\t\t1532 -> 1889 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1534 -> 1889 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1535 -> 1889 [penwidth=\"2.09861228866811\", color=black];\n\t\t1536 -> 1889 [penwidth=\"2.386294361119891\", color=black];\n\t\t1537 -> 1889 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1539 -> 1889 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1543 -> 1889 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1544 -> 1889 [penwidth=\"5.68213122712422\", color=black];\n\t\t1547 -> 1889 [penwidth=\"3.1972245773362196\", color=black];\n\t\t1548 -> 1889 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1551 -> 1889 [penwidth=1, color=black];\n\t\t1554 -> 1889 [penwidth=1, color=black];\n\t\t1556 -> 1889 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1558 -> 1889 [penwidth=\"3.833213344056216\", color=black];\n\t\t1559 -> 1889 [penwidth=\"2.09861228866811\", color=black];\n\t\t1560 -> 1889 [penwidth=1, color=black];\n\t\t1564 -> 1889 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1568 -> 1889 [penwidth=1, color=black];\n\t\t1569 -> 1889 [penwidth=1, color=black];\n\t\t1570 -> 1889 [penwidth=1, color=black];\n\t\t1571 -> 1889 [penwidth=\"2.09861228866811\", color=black];\n\t\t1575 -> 1889 [penwidth=1, color=black];\n\t\t1576 -> 1889 [penwidth=1, color=black];\n\t\t1577 -> 1889 [penwidth=\"2.09861228866811\", color=black];\n\t\t1579 -> 1889 [penwidth=1, color=black];\n\t\t1581 -> 1889 [penwidth=\"2.09861228866811\", color=black];\n\t\t1582 -> 1889 [penwidth=1, color=black];\n\t\t1594 -> 1889 [penwidth=\"2.09861228866811\", color=black];\n\t\t1595 -> 1889 [penwidth=\"2.386294361119891\", color=black];\n\t\t1596 -> 1889 [penwidth=1, color=black];\n\t\t1599 -> 1889 [penwidth=\"2.386294361119891\", color=black];\n\t\t1615 -> 1900 [penwidth=1, color=black];\n\t\t1618 -> 1900 [penwidth=1, color=black];\n\t\t1620 -> 1900 [penwidth=\"2.386294361119891\", color=black];\n\t\t1623 -> 1900 [penwidth=\"2.09861228866811\", color=black];\n\t\t1624 -> 1900 [penwidth=\"5.68213122712422\", color=black];\n\t\t1625 -> 1900 [penwidth=\"3.0794415416798357\", color=black];\n\t\t1626 -> 1900 [penwidth=1, color=black];\n\t\t1627 -> 1900 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1628 -> 1900 [penwidth=1, color=black];\n\t\t1630 -> 1900 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1631 -> 1900 [penwidth=\"4.091042453358316\", color=black];\n\t\t1632 -> 1900 [penwidth=\"2.09861228866811\", color=black];\n\t\t1633 -> 1900 [penwidth=1, color=black];\n\t\t1636 -> 1900 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1637 -> 1900 [penwidth=1, color=black];\n\t\t1638 -> 1900 [penwidth=1, color=black];\n\t\t1640 -> 1900 [penwidth=1, color=black];\n\t\t1641 -> 1900 [penwidth=1, color=black];\n\t\t1642 -> 1900 [penwidth=1, color=black];\n\t\t1643 -> 1900 [penwidth=1, color=black];\n\t\t1644 -> 1900 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1646 -> 1900 [penwidth=1, color=black];\n\t\t1647 -> 1900 [penwidth=1, color=black];\n\t\t1648 -> 1900 [penwidth=1, color=black];\n\t\t1649 -> 1900 [penwidth=1, color=black];\n\t\t1650 -> 1900 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1652 -> 1900 [penwidth=1, color=black];\n\t\t1653 -> 1900 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1654 -> 1900 [penwidth=\"2.09861228866811\", color=black];\n\t\t1665 -> 1889 [penwidth=\"2.09861228866811\", color=black];\n\t\t1889 -> 1530 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1531 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1532 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1533 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1534 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1535 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1536 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1537 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1538 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1539 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1540 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1541 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1542 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1543 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1544 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1545 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1546 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1547 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1548 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1549 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1550 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1551 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1552 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1553 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1554 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1555 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1556 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1557 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1558 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1559 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1560 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1561 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1562 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1563 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1564 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1565 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1566 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1567 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1568 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1569 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1570 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1571 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1572 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1573 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1574 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1575 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1576 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1577 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1578 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1579 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1580 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1581 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1582 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1583 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1584 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1585 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1586 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1587 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1588 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1589 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1590 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1591 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1592 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1593 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1594 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1595 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1596 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1597 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1598 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1599 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1600 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1665 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1614 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1615 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1616 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1617 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1618 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1619 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1620 [penwidth=\"2.386294361119891\", color=navy, dir=none];\n\t\t1900 -> 1621 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1622 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1623 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1624 [penwidth=\"5.976733742420574\", color=navy, dir=none];\n\t\t1900 -> 1625 [penwidth=\"2.386294361119891\", color=navy, dir=none];\n\t\t1900 -> 1626 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1627 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1628 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1629 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1900 -> 1630 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1900 -> 1631 [penwidth=\"4.091042453358316\", color=navy, dir=none];\n\t\t1900 -> 1632 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1633 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1634 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1635 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1636 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1900 -> 1637 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1900 -> 1638 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1900 -> 1639 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1640 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1641 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1642 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1643 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1644 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1645 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1646 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1647 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1648 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1649 [penwidth=\"2.386294361119891\", color=navy, dir=none];\n\t\t1900 -> 1650 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1651 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1652 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1653 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1900 -> 1654 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1666 [penwidth=1, color=navy, dir=none];\n\t}\n\tsubgraph cluster_Class_DotRepr {\n\t\tgraph [label=\"Class: DotRepr\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=rosybrown1];\n\t\tsubgraph cluster_Class_DotRepr_Data_GDotGraphn {\n\t\t\tgraph [label=\"Instance for: GDotGraph n\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1779 [label=\"Data.GraphViz.Types.Generalised\\nedgeInformation\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1793 [label=\"Data.GraphViz.Types.Generalised\\ngetID\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1794 [label=\"Data.GraphViz.Types.Generalised\\ngraphIsDirected\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1795 [label=\"Data.GraphViz.Types.Generalised\\ngraphIsStrict\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1796 [label=\"Data.GraphViz.Types.Generalised\\ngraphStructureInformation\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1799 [label=\"Data.GraphViz.Types.Generalised\\nmakeStrict\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1800 [label=\"Data.GraphViz.Types.Generalised\\nnodeInformation\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1814 [label=\"Data.GraphViz.Types.Generalised\\nsetID\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\t1891 [label=\"Unknown Module\\nedgeInformation\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1893 [label=\"Unknown Module\\ngetID\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1894 [label=\"Unknown Module\\ngraphIsDirected\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1895 [label=\"Unknown Module\\ngraphIsStrict\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1896 [label=\"Unknown Module\\ngraphStructureInformation\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1897 [label=\"Unknown Module\\nmakeStrict\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1898 [label=\"Unknown Module\\nnodeInformation\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1899 [label=\"Unknown Module\\nsetID\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1891 -> 1779 [penwidth=1, color=navy, dir=none];\n\t\t1893 -> 1793 [penwidth=1, color=navy, dir=none];\n\t\t1894 -> 1794 [penwidth=1, color=navy, dir=none];\n\t\t1895 -> 1795 [penwidth=1, color=navy, dir=none];\n\t\t1896 -> 1796 [penwidth=1, color=navy, dir=none];\n\t\t1897 -> 1799 [penwidth=1, color=navy, dir=none];\n\t\t1898 -> 1800 [penwidth=1, color=navy, dir=none];\n\t\t1899 -> 1814 [penwidth=1, color=navy, dir=none];\n\t}\n\tsubgraph cluster_Class_Eq {\n\t\tgraph [label=\"Class: Eq\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=rosybrown1];\n\t\tsubgraph cluster_Class_Eq_Data_SameAttr {\n\t\t\tgraph [label=\"Instance for: SameAttr\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1827 [label=\"Data.GraphViz.Types.State\\n==\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\t1888 [label=\"Unknown Module\\n==\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1888 -> 1827 [penwidth=1, color=navy, dir=none];\n\t}\n\tsubgraph cluster_Class_Functor {\n\t\tgraph [label=\"Class: Functor\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=rosybrown1];\n\t\tsubgraph cluster_Class_Functor_Data_DotEdge {\n\t\t\tgraph [label=\"Instance for: DotEdge\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1703 [label=\"Data.GraphViz.Types.Common\\nfmap\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Functor_Data_DotNode {\n\t\t\tgraph [label=\"Instance for: DotNode\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1704 [label=\"Data.GraphViz.Types.Common\\nfmap\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Functor_Data_GDotGraph {\n\t\t\tgraph [label=\"Instance for: GDotGraph\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1780 [label=\"Data.GraphViz.Types.Generalised\\nfmap\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Functor_Data_GDotStatement {\n\t\t\tgraph [label=\"Instance for: GDotStatement\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1781 [label=\"Data.GraphViz.Types.Generalised\\nfmap\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Functor_Data_GDotSubGraph {\n\t\t\tgraph [label=\"Instance for: GDotSubGraph\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1782 [label=\"Data.GraphViz.Types.Generalised\\nfmap\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\t1892 [label=\"Unknown Module\\nfmap\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1780 -> 1892 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1781 -> 1892 [penwidth=\"2.09861228866811\", color=black];\n\t\t1782 -> 1892 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1892 -> 1703 [penwidth=1, color=navy, dir=none];\n\t\t1892 -> 1704 [penwidth=1, color=navy, dir=none];\n\t\t1892 -> 1780 [penwidth=1, color=navy, dir=none];\n\t\t1892 -> 1781 [penwidth=\"2.386294361119891\", color=navy, dir=none];\n\t\t1892 -> 1782 [penwidth=1, color=navy, dir=none];\n\t}\n\tsubgraph cluster_Class_Labellable {\n\t\tgraph [label=\"Class: Labellable\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=rosybrown1];\n\t\tsubgraph cluster_Class_Labellable_Data_PortNameEscString {\n\t\t\tgraph [label=\"Instance for: (PortName, EscString)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t538 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Labellable_Data_Bool {\n\t\t\tgraph [label=\"Instance for: Bool\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t539 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Labellable_Data_Char {\n\t\t\tgraph [label=\"Instance for: Char\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t540 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Labellable_Data_Double {\n\t\t\tgraph [label=\"Instance for: Double\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t541 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Labellable_Data_EscString {\n\t\t\tgraph [label=\"Instance for: EscString\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t542 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Labellable_Data_HtmlLabel {\n\t\t\tgraph [label=\"Instance for: HtmlLabel\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t543 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Labellable_Data_HtmlTable {\n\t\t\tgraph [label=\"Instance for: HtmlTable\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t544 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Labellable_Data_HtmlText {\n\t\t\tgraph [label=\"Instance for: HtmlText\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t545 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Labellable_Data_Int {\n\t\t\tgraph [label=\"Instance for: Int\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t546 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Labellable_Data_PortName {\n\t\t\tgraph [label=\"Instance for: PortName\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t547 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Labellable_Data_RecordField {\n\t\t\tgraph [label=\"Instance for: RecordField\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t548 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Labellable_Data_RecordFields {\n\t\t\tgraph [label=\"Instance for: RecordFields\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t549 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\t537 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=doubleoctagon, fillcolor=goldenrod];\n\t\t537 -> 538 [penwidth=1, color=navy, dir=none];\n\t\t537 -> 539 [penwidth=1, color=navy, dir=none];\n\t\t537 -> 540 [penwidth=1, color=navy, dir=none];\n\t\t537 -> 541 [penwidth=1, color=navy, dir=none];\n\t\t537 -> 542 [penwidth=1, color=navy, dir=none];\n\t\t537 -> 543 [penwidth=1, color=navy, dir=none];\n\t\t537 -> 544 [penwidth=1, color=navy, dir=none];\n\t\t537 -> 545 [penwidth=1, color=navy, dir=none];\n\t\t537 -> 546 [penwidth=1, color=navy, dir=none];\n\t\t537 -> 547 [penwidth=1, color=navy, dir=none];\n\t\t537 -> 548 [penwidth=1, color=navy, dir=none];\n\t\t537 -> 549 [penwidth=1, color=navy, dir=none];\n\t\t538 -> 537 [penwidth=1, color=black];\n\t\t539 -> 537 [penwidth=1, color=black];\n\t\t540 -> 537 [penwidth=1, color=black];\n\t\t541 -> 537 [penwidth=1, color=black];\n\t\t544 -> 537 [penwidth=1, color=black];\n\t\t545 -> 537 [penwidth=1, color=black];\n\t\t546 -> 537 [penwidth=1, color=black];\n\t\t547 -> 537 [penwidth=1, color=black];\n\t\t548 -> 537 [penwidth=1, color=black];\n\t}\n\tsubgraph cluster_Class_Ord {\n\t\tgraph [label=\"Class: Ord\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=rosybrown1];\n\t\tsubgraph cluster_Class_Ord_Data_SameAttr {\n\t\t\tgraph [label=\"Instance for: SameAttr\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1842 [label=\"Data.GraphViz.Types.State\\ncompare\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\t1890 [label=\"Unknown Module\\ncompare\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1842 -> 1890 [penwidth=1, color=black];\n\t\t1890 -> 1842 [penwidth=1, color=navy, dir=none];\n\t}\n\tsubgraph cluster_Class_ParseDot {\n\t\tgraph [label=\"Class: ParseDot\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=rosybrown1];\n\t\tsubgraph cluster_Class_ParseDot_Data_DotEdgea {\n\t\t\tgraph [label=\"Instance for: (DotEdge a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1715 [label=\"Data.GraphViz.Types.Common\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1729 [label=\"Data.GraphViz.Types.Common\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1737 [label=\"Data.GraphViz.Types.Common\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1741 [label=\"Data.GraphViz.Types.Common\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_DotNodea {\n\t\t\tgraph [label=\"Instance for: (DotNode a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1716 [label=\"Data.GraphViz.Types.Common\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1730 [label=\"Data.GraphViz.Types.Common\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1738 [label=\"Data.GraphViz.Types.Common\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1742 [label=\"Data.GraphViz.Types.Common\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_GDotGrapha {\n\t\t\tgraph [label=\"Instance for: (GDotGraph a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1801 [label=\"Data.GraphViz.Types.Generalised\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1807 [label=\"Data.GraphViz.Types.Generalised\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_GDotStatementa {\n\t\t\tgraph [label=\"Instance for: (GDotStatement a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1802 [label=\"Data.GraphViz.Types.Generalised\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1805 [label=\"Data.GraphViz.Types.Generalised\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1808 [label=\"Data.GraphViz.Types.Generalised\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1810 [label=\"Data.GraphViz.Types.Generalised\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_GDotSubGrapha {\n\t\t\tgraph [label=\"Instance for: (GDotSubGraph a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1803 [label=\"Data.GraphViz.Types.Generalised\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1806 [label=\"Data.GraphViz.Types.Generalised\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1809 [label=\"Data.GraphViz.Types.Generalised\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1811 [label=\"Data.GraphViz.Types.Generalised\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_ArrowFill {\n\t\t\tgraph [label=\"Instance for: ArrowFill\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t437 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t467 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_ArrowModifier {\n\t\t\tgraph [label=\"Instance for: ArrowModifier\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t468 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_ArrowShape {\n\t\t\tgraph [label=\"Instance for: ArrowShape\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t469 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_ArrowSide {\n\t\t\tgraph [label=\"Instance for: ArrowSide\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t438 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t470 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_ArrowType {\n\t\t\tgraph [label=\"Instance for: ArrowType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t471 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_AspectType {\n\t\t\tgraph [label=\"Instance for: AspectType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t439 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t472 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Attribute {\n\t\t\tgraph [label=\"Instance for: Attribute\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t440 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t461 [label=\"Data.GraphViz.Attributes\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t473 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Bool {\n\t\t\tgraph [label=\"Instance for: Bool\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1417 [label=\"Data.GraphViz.Parsing\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_BrewerName {\n\t\t\tgraph [label=\"Instance for: BrewerName\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1210 [label=\"Data.GraphViz.Attributes.Colors\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Char {\n\t\t\tgraph [label=\"Instance for: Char\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1389 [label=\"Data.GraphViz.Parsing\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1411 [label=\"Data.GraphViz.Parsing\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1418 [label=\"Data.GraphViz.Parsing\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1426 [label=\"Data.GraphViz.Parsing\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_ClusterMode {\n\t\t\tgraph [label=\"Instance for: ClusterMode\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t474 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Color {\n\t\t\tgraph [label=\"Instance for: Color\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1208 [label=\"Data.GraphViz.Attributes.Colors\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1209 [label=\"Data.GraphViz.Attributes.Colors\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1211 [label=\"Data.GraphViz.Attributes.Colors\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1214 [label=\"Data.GraphViz.Attributes.Colors\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_ColorScheme {\n\t\t\tgraph [label=\"Instance for: ColorScheme\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1212 [label=\"Data.GraphViz.Attributes.Colors\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_CompassPoint {\n\t\t\tgraph [label=\"Instance for: CompassPoint\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1360 [label=\"Data.GraphViz.Attributes.Internal\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_DEConstraints {\n\t\t\tgraph [label=\"Instance for: DEConstraints\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t475 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_DPoint {\n\t\t\tgraph [label=\"Instance for: DPoint\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t441 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t476 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_DirType {\n\t\t\tgraph [label=\"Instance for: DirType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t477 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Double {\n\t\t\tgraph [label=\"Instance for: Double\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1412 [label=\"Data.GraphViz.Parsing\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1419 [label=\"Data.GraphViz.Parsing\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1427 [label=\"Data.GraphViz.Parsing\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_EdgeType {\n\t\t\tgraph [label=\"Instance for: EdgeType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t442 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t478 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_FocusType {\n\t\t\tgraph [label=\"Instance for: FocusType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t443 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t479 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_GlobalAttributes {\n\t\t\tgraph [label=\"Instance for: GlobalAttributes\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1717 [label=\"Data.GraphViz.Types.Common\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1731 [label=\"Data.GraphViz.Types.Common\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1739 [label=\"Data.GraphViz.Types.Common\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1743 [label=\"Data.GraphViz.Types.Common\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_GraphID {\n\t\t\tgraph [label=\"Instance for: GraphID\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1718 [label=\"Data.GraphViz.Types.Common\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1740 [label=\"Data.GraphViz.Types.Common\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_HtmlAlign {\n\t\t\tgraph [label=\"Instance for: HtmlAlign\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1281 [label=\"Data.GraphViz.Attributes.HTML\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1301 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_HtmlAttribute {\n\t\t\tgraph [label=\"Instance for: HtmlAttribute\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1282 [label=\"Data.GraphViz.Attributes.HTML\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1297 [label=\"Data.GraphViz.Attributes.HTML\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1302 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1311 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_HtmlCell {\n\t\t\tgraph [label=\"Instance for: HtmlCell\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1283 [label=\"Data.GraphViz.Attributes.HTML\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1298 [label=\"Data.GraphViz.Attributes.HTML\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1303 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1312 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_HtmlImg {\n\t\t\tgraph [label=\"Instance for: HtmlImg\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1284 [label=\"Data.GraphViz.Attributes.HTML\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1304 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_HtmlLabel {\n\t\t\tgraph [label=\"Instance for: HtmlLabel\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1285 [label=\"Data.GraphViz.Attributes.HTML\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1305 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_HtmlRow {\n\t\t\tgraph [label=\"Instance for: HtmlRow\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1286 [label=\"Data.GraphViz.Attributes.HTML\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1299 [label=\"Data.GraphViz.Attributes.HTML\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1306 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1313 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_HtmlScale {\n\t\t\tgraph [label=\"Instance for: HtmlScale\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1287 [label=\"Data.GraphViz.Attributes.HTML\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1307 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_HtmlTable {\n\t\t\tgraph [label=\"Instance for: HtmlTable\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1288 [label=\"Data.GraphViz.Attributes.HTML\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1308 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_HtmlTextItem {\n\t\t\tgraph [label=\"Instance for: HtmlTextItem\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1289 [label=\"Data.GraphViz.Attributes.HTML\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1300 [label=\"Data.GraphViz.Attributes.HTML\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1309 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1314 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_HtmlVAlign {\n\t\t\tgraph [label=\"Instance for: HtmlVAlign\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1290 [label=\"Data.GraphViz.Attributes.HTML\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1310 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Int {\n\t\t\tgraph [label=\"Instance for: Int\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1420 [label=\"Data.GraphViz.Parsing\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Justification {\n\t\t\tgraph [label=\"Instance for: Justification\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t480 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Label {\n\t\t\tgraph [label=\"Instance for: Label\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t444 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t481 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_LayerID {\n\t\t\tgraph [label=\"Instance for: LayerID\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t445 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t482 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_LayerList {\n\t\t\tgraph [label=\"Instance for: LayerList\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t446 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t483 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_LayerRange {\n\t\t\tgraph [label=\"Instance for: LayerRange\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t447 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t484 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_ModeType {\n\t\t\tgraph [label=\"Instance for: ModeType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t485 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Model {\n\t\t\tgraph [label=\"Instance for: Model\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t486 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_OutputMode {\n\t\t\tgraph [label=\"Instance for: OutputMode\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t487 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Overlap {\n\t\t\tgraph [label=\"Instance for: Overlap\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t488 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Pack {\n\t\t\tgraph [label=\"Instance for: Pack\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t489 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_PackMode {\n\t\t\tgraph [label=\"Instance for: PackMode\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t490 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_PageDir {\n\t\t\tgraph [label=\"Instance for: PageDir\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t491 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Point {\n\t\t\tgraph [label=\"Instance for: Point\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t448 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t492 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t511 [label=\"Data.GraphViz.Attributes\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_PortName {\n\t\t\tgraph [label=\"Instance for: PortName\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1357 [label=\"Data.GraphViz.Attributes.Internal\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1361 [label=\"Data.GraphViz.Attributes.Internal\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_PortPos {\n\t\t\tgraph [label=\"Instance for: PortPos\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1358 [label=\"Data.GraphViz.Attributes.Internal\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1362 [label=\"Data.GraphViz.Attributes.Internal\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Pos {\n\t\t\tgraph [label=\"Instance for: Pos\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t449 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t493 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_QuadType {\n\t\t\tgraph [label=\"Instance for: QuadType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t494 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_RankDir {\n\t\t\tgraph [label=\"Instance for: RankDir\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t495 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_RankType {\n\t\t\tgraph [label=\"Instance for: RankType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t496 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Ratios {\n\t\t\tgraph [label=\"Instance for: Ratios\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t497 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_RecordField {\n\t\t\tgraph [label=\"Instance for: RecordField\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t450 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t462 [label=\"Data.GraphViz.Attributes\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t498 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t512 [label=\"Data.GraphViz.Attributes\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Rect {\n\t\t\tgraph [label=\"Instance for: Rect\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t451 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t499 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Root {\n\t\t\tgraph [label=\"Instance for: Root\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t452 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t500 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_STStyle {\n\t\t\tgraph [label=\"Instance for: STStyle\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t501 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_ScaleType {\n\t\t\tgraph [label=\"Instance for: ScaleType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t502 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Shape {\n\t\t\tgraph [label=\"Instance for: Shape\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t503 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_SmoothType {\n\t\t\tgraph [label=\"Instance for: SmoothType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t504 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Spline {\n\t\t\tgraph [label=\"Instance for: Spline\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t453 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t505 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t513 [label=\"Data.GraphViz.Attributes\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_StartType {\n\t\t\tgraph [label=\"Instance for: StartType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t506 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_StyleItem {\n\t\t\tgraph [label=\"Instance for: StyleItem\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t454 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t463 [label=\"Data.GraphViz.Attributes\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t507 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t514 [label=\"Data.GraphViz.Attributes\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_StyleName {\n\t\t\tgraph [label=\"Instance for: StyleName\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t455 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t508 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_VerticalPlacement {\n\t\t\tgraph [label=\"Instance for: VerticalPlacement\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t509 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_ViewPort {\n\t\t\tgraph [label=\"Instance for: ViewPort\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t456 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t510 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Word16 {\n\t\t\tgraph [label=\"Instance for: Word16\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1421 [label=\"Data.GraphViz.Parsing\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Word8 {\n\t\t\tgraph [label=\"Instance for: Word8\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1422 [label=\"Data.GraphViz.Parsing\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_X11Color {\n\t\t\tgraph [label=\"Instance for: X11Color\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1213 [label=\"Data.GraphViz.Attributes.Colors\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_a {\n\t\t\tgraph [label=\"Instance for: [a]\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1390 [label=\"Data.GraphViz.Parsing\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1423 [label=\"Data.GraphViz.Parsing\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_DefaultInstance_ParseDot {\n\t\t\tgraph [label=\"Default Instance\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1388 [label=\"Data.GraphViz.Parsing\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1410 [label=\"Data.GraphViz.Parsing\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1425 [label=\"Data.GraphViz.Parsing\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\t1387 [label=\"Data.GraphViz.Parsing\\nparse\", style=\"filled,solid\", shape=doubleoctagon, fillcolor=goldenrod];\n\t\t1409 [label=\"Data.GraphViz.Parsing\\nparseList\", style=\"filled,solid\", shape=doubleoctagon, fillcolor=goldenrod];\n\t\t1416 [label=\"Data.GraphViz.Parsing\\nparseUnqt\", style=\"filled,solid\", shape=doubleoctagon, fillcolor=goldenrod];\n\t\t1424 [label=\"Data.GraphViz.Parsing\\nparseUnqtList\", style=\"filled,solid\", shape=doubleoctagon, fillcolor=goldenrod];\n\t\t437 -> 1416 [penwidth=1, color=black];\n\t\t438 -> 1416 [penwidth=1, color=black];\n\t\t439 -> 1387 [penwidth=1, color=black];\n\t\t440 -> 1416 [penwidth=1, color=black];\n\t\t441 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t\t442 -> 1416 [penwidth=1, color=black];\n\t\t443 -> 1387 [penwidth=\"1.6931471805599454\", color=black];\n\t\t444 -> 1387 [penwidth=\"2.09861228866811\", color=black];\n\t\t445 -> 1387 [penwidth=1, color=black];\n\t\t446 -> 1416 [penwidth=1, color=black];\n\t\t447 -> 1387 [penwidth=1, color=black];\n\t\t447 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t\t448 -> 1416 [penwidth=1, color=black];\n\t\t449 -> 1416 [penwidth=1, color=black];\n\t\t450 -> 1416 [penwidth=1, color=black];\n\t\t451 -> 1416 [penwidth=1, color=black];\n\t\t452 -> 1387 [penwidth=1, color=black];\n\t\t453 -> 1416 [penwidth=1, color=black];\n\t\t454 -> 1387 [penwidth=1, color=black];\n\t\t454 -> 1416 [penwidth=1, color=black];\n\t\t455 -> 1416 [penwidth=1, color=black];\n\t\t456 -> 1416 [penwidth=1, color=black];\n\t\t461 -> 1424 [penwidth=1, color=black];\n\t\t462 -> 1424 [penwidth=1, color=black];\n\t\t463 -> 1387 [penwidth=1, color=black];\n\t\t463 -> 1424 [penwidth=1, color=black];\n\t\t468 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t\t471 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t\t472 -> 1416 [penwidth=1, color=black];\n\t\t473 -> 1387 [penwidth=1, color=black];\n\t\t475 -> 1387 [penwidth=1, color=black];\n\t\t476 -> 1416 [penwidth=1, color=black];\n\t\t478 -> 1387 [penwidth=1, color=black];\n\t\t479 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t\t481 -> 1416 [penwidth=\"2.09861228866811\", color=black];\n\t\t483 -> 1416 [penwidth=1, color=black];\n\t\t484 -> 1416 [penwidth=\"2.09861228866811\", color=black];\n\t\t488 -> 1387 [penwidth=1, color=black];\n\t\t489 -> 1416 [penwidth=1, color=black];\n\t\t490 -> 1416 [penwidth=1, color=black];\n\t\t492 -> 1416 [penwidth=1, color=black];\n\t\t493 -> 1416 [penwidth=1, color=black];\n\t\t494 -> 1387 [penwidth=1, color=black];\n\t\t497 -> 1416 [penwidth=1, color=black];\n\t\t498 -> 1416 [penwidth=1, color=black];\n\t\t500 -> 1416 [penwidth=1, color=black];\n\t\t505 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t\t506 -> 1416 [penwidth=\"2.386294361119891\", color=black];\n\t\t507 -> 1416 [penwidth=1, color=black];\n\t\t510 -> 1416 [penwidth=\"2.386294361119891\", color=black];\n\t\t511 -> 1416 [penwidth=1, color=black];\n\t\t512 -> 1416 [penwidth=1, color=black];\n\t\t513 -> 1416 [penwidth=1, color=black];\n\t\t514 -> 1416 [penwidth=1, color=black];\n\t\t1208 -> 1416 [penwidth=\"2.09861228866811\", color=black];\n\t\t1209 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1209 -> 1424 [penwidth=1, color=black];\n\t\t1211 -> 1387 [penwidth=\"2.09861228866811\", color=black];\n\t\t1211 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1212 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1214 -> 1416 [penwidth=1, color=black];\n\t\t1281 -> 1416 [penwidth=1, color=black];\n\t\t1282 -> 1416 [penwidth=1, color=black];\n\t\t1283 -> 1416 [penwidth=1, color=black];\n\t\t1284 -> 1416 [penwidth=1, color=black];\n\t\t1285 -> 1416 [penwidth=1, color=black];\n\t\t1286 -> 1416 [penwidth=1, color=black];\n\t\t1287 -> 1416 [penwidth=1, color=black];\n\t\t1288 -> 1416 [penwidth=1, color=black];\n\t\t1289 -> 1416 [penwidth=1, color=black];\n\t\t1290 -> 1416 [penwidth=1, color=black];\n\t\t1297 -> 1424 [penwidth=1, color=black];\n\t\t1298 -> 1424 [penwidth=1, color=black];\n\t\t1299 -> 1424 [penwidth=1, color=black];\n\t\t1300 -> 1424 [penwidth=1, color=black];\n\t\t1303 -> 1387 [penwidth=1, color=black];\n\t\t1303 -> 1416 [penwidth=1, color=black];\n\t\t1305 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1306 -> 1416 [penwidth=1, color=black];\n\t\t1308 -> 1416 [penwidth=1, color=black];\n\t\t1309 -> 1416 [penwidth=1, color=black];\n\t\t1311 -> 1416 [penwidth=1, color=black];\n\t\t1312 -> 1416 [penwidth=1, color=black];\n\t\t1313 -> 1416 [penwidth=1, color=black];\n\t\t1314 -> 1416 [penwidth=1, color=black];\n\t\t1357 -> 1416 [penwidth=1, color=black];\n\t\t1358 -> 1416 [penwidth=1, color=black];\n\t\t1362 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1387 -> 437 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 438 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 439 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 440 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 441 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 442 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 443 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 444 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 445 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 446 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 447 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 448 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 449 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 450 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 451 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 452 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 453 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 454 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 455 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 456 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1208 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1281 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1282 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1283 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1284 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1285 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1286 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1287 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1288 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1289 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1290 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1357 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1358 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1388 [penwidth=1, color=turquoise, dir=none];\n\t\t1387 -> 1389 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1390 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1715 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1716 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1717 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1718 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1801 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1802 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1803 [penwidth=1, color=navy, dir=none];\n\t\t1388 -> 1416 [penwidth=1, color=black];\n\t\t1389 -> 1416 [penwidth=1, color=black];\n\t\t1390 -> 1409 [penwidth=1, color=chartreuse];\n\t\t1409 -> 461 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 462 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 463 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1209 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1297 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1298 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1299 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1300 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1410 [penwidth=1, color=turquoise, dir=none];\n\t\t1409 -> 1411 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1412 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1729 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1730 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1731 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1805 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1806 [penwidth=1, color=navy, dir=none];\n\t\t1410 -> 1424 [penwidth=1, color=black];\n\t\t1412 -> 1387 [penwidth=1, color=black];\n\t\t1412 -> 1424 [penwidth=1, color=black];\n\t\t1416 -> 467 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 468 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 469 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 470 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 471 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 472 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 473 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 474 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 475 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 476 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 477 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 478 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 479 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 480 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 481 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 482 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 483 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 484 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 485 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 486 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 487 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 488 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 489 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 490 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 491 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 492 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 493 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 494 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 495 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 496 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 497 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 498 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 499 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 500 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 501 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 502 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 503 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 504 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 505 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 506 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 507 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 508 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 509 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 510 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1210 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1211 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1212 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1213 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1301 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1302 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1303 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1304 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1305 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1306 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1307 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1308 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1309 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1310 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1360 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1361 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1362 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1417 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1418 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1419 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1420 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1421 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1422 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1423 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1737 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1738 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1739 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1740 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1807 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1808 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1809 [penwidth=1, color=navy, dir=none];\n\t\t1423 -> 1424 [penwidth=1, color=black];\n\t\t1424 -> 511 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 512 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 513 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 514 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1214 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1311 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1312 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1313 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1314 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1425 [penwidth=1, color=turquoise, dir=none];\n\t\t1424 -> 1426 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1427 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1741 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1742 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1743 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1810 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1811 [penwidth=1, color=navy, dir=none];\n\t\t1425 -> 1416 [penwidth=1, color=black];\n\t\t1427 -> 1416 [penwidth=1, color=black];\n\t\t1715 -> 1416 [penwidth=1, color=black];\n\t\t1716 -> 1416 [penwidth=1, color=black];\n\t\t1717 -> 1416 [penwidth=1, color=black];\n\t\t1718 -> 1387 [penwidth=1, color=black];\n\t\t1729 -> 1424 [penwidth=1, color=black];\n\t\t1730 -> 1424 [penwidth=1, color=black];\n\t\t1731 -> 1424 [penwidth=1, color=black];\n\t\t1739 -> 1387 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1740 -> 1416 [penwidth=1, color=black];\n\t\t1743 -> 1387 [penwidth=1, color=black];\n\t\t1801 -> 1416 [penwidth=1, color=black];\n\t\t1802 -> 1416 [penwidth=1, color=black];\n\t\t1803 -> 1416 [penwidth=1, color=black];\n\t\t1805 -> 1424 [penwidth=1, color=black];\n\t\t1806 -> 1424 [penwidth=1, color=black];\n\t\t1808 -> 1416 [penwidth=\"2.386294361119891\", color=black];\n\t\t1810 -> 1387 [penwidth=1, color=black];\n\t\t1811 -> 1416 [penwidth=1, color=black];\n\t}\n\tsubgraph cluster_Class_PrintDot {\n\t\tgraph [label=\"Class: PrintDot\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=rosybrown1];\n\t\tsubgraph cluster_Class_PrintDot_Data_DotEdgea {\n\t\t\tgraph [label=\"Instance for: (DotEdge a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1708 [label=\"Data.GraphViz.Types.Common\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1766 [label=\"Data.GraphViz.Types.Common\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1770 [label=\"Data.GraphViz.Types.Common\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_DotNodea {\n\t\t\tgraph [label=\"Instance for: (DotNode a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1709 [label=\"Data.GraphViz.Types.Common\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1767 [label=\"Data.GraphViz.Types.Common\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1771 [label=\"Data.GraphViz.Types.Common\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_GDotGrapha {\n\t\t\tgraph [label=\"Instance for: (GDotGraph a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1821 [label=\"Data.GraphViz.Types.Generalised\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_GDotStatementa {\n\t\t\tgraph [label=\"Instance for: (GDotStatement a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1797 [label=\"Data.GraphViz.Types.Generalised\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1822 [label=\"Data.GraphViz.Types.Generalised\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1824 [label=\"Data.GraphViz.Types.Generalised\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_GDotSubGrapha {\n\t\t\tgraph [label=\"Instance for: (GDotSubGraph a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1798 [label=\"Data.GraphViz.Types.Generalised\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1823 [label=\"Data.GraphViz.Types.Generalised\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1825 [label=\"Data.GraphViz.Types.Generalised\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_ArrowFill {\n\t\t\tgraph [label=\"Instance for: ArrowFill\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t550 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_ArrowModifier {\n\t\t\tgraph [label=\"Instance for: ArrowModifier\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t551 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_ArrowShape {\n\t\t\tgraph [label=\"Instance for: ArrowShape\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t552 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_ArrowSide {\n\t\t\tgraph [label=\"Instance for: ArrowSide\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t553 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_ArrowType {\n\t\t\tgraph [label=\"Instance for: ArrowType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t554 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_AspectType {\n\t\t\tgraph [label=\"Instance for: AspectType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t520 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t555 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Attribute {\n\t\t\tgraph [label=\"Instance for: Attribute\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t422 [label=\"Data.GraphViz.Attributes\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t556 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Bool {\n\t\t\tgraph [label=\"Instance for: Bool\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1476 [label=\"Data.GraphViz.Printing\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=cyan];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_BrewerName {\n\t\t\tgraph [label=\"Instance for: BrewerName\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1220 [label=\"Data.GraphViz.Attributes.Colors\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Char {\n\t\t\tgraph [label=\"Instance for: Char\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1460 [label=\"Data.GraphViz.Printing\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1472 [label=\"Data.GraphViz.Printing\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1477 [label=\"Data.GraphViz.Printing\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=cyan];\n\t\t\t1486 [label=\"Data.GraphViz.Printing\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_ClusterMode {\n\t\t\tgraph [label=\"Instance for: ClusterMode\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t557 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Color {\n\t\t\tgraph [label=\"Instance for: Color\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1206 [label=\"Data.GraphViz.Attributes.Colors\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1218 [label=\"Data.GraphViz.Attributes.Colors\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1221 [label=\"Data.GraphViz.Attributes.Colors\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1224 [label=\"Data.GraphViz.Attributes.Colors\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_ColorScheme {\n\t\t\tgraph [label=\"Instance for: ColorScheme\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1222 [label=\"Data.GraphViz.Attributes.Colors\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_CompassPoint {\n\t\t\tgraph [label=\"Instance for: CompassPoint\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1366 [label=\"Data.GraphViz.Attributes.Internal\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_DEConstraints {\n\t\t\tgraph [label=\"Instance for: DEConstraints\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t558 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_DPoint {\n\t\t\tgraph [label=\"Instance for: DPoint\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t521 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t559 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_DirType {\n\t\t\tgraph [label=\"Instance for: DirType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t560 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Double {\n\t\t\tgraph [label=\"Instance for: Double\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1461 [label=\"Data.GraphViz.Printing\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1473 [label=\"Data.GraphViz.Printing\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1478 [label=\"Data.GraphViz.Printing\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=cyan];\n\t\t\t1487 [label=\"Data.GraphViz.Printing\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_EdgeType {\n\t\t\tgraph [label=\"Instance for: EdgeType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t522 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t561 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_FocusType {\n\t\t\tgraph [label=\"Instance for: FocusType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t523 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t562 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_GlobalAttributes {\n\t\t\tgraph [label=\"Instance for: GlobalAttributes\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1710 [label=\"Data.GraphViz.Types.Common\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1768 [label=\"Data.GraphViz.Types.Common\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1772 [label=\"Data.GraphViz.Types.Common\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_GraphID {\n\t\t\tgraph [label=\"Instance for: GraphID\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1761 [label=\"Data.GraphViz.Types.Common\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1769 [label=\"Data.GraphViz.Types.Common\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_HtmlAlign {\n\t\t\tgraph [label=\"Instance for: HtmlAlign\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1328 [label=\"Data.GraphViz.Attributes.HTML\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_HtmlAttribute {\n\t\t\tgraph [label=\"Instance for: HtmlAttribute\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1277 [label=\"Data.GraphViz.Attributes.HTML\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1329 [label=\"Data.GraphViz.Attributes.HTML\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1338 [label=\"Data.GraphViz.Attributes.HTML\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_HtmlCell {\n\t\t\tgraph [label=\"Instance for: HtmlCell\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1278 [label=\"Data.GraphViz.Attributes.HTML\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1330 [label=\"Data.GraphViz.Attributes.HTML\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1339 [label=\"Data.GraphViz.Attributes.HTML\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_HtmlImg {\n\t\t\tgraph [label=\"Instance for: HtmlImg\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1331 [label=\"Data.GraphViz.Attributes.HTML\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_HtmlLabel {\n\t\t\tgraph [label=\"Instance for: HtmlLabel\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1332 [label=\"Data.GraphViz.Attributes.HTML\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_HtmlRow {\n\t\t\tgraph [label=\"Instance for: HtmlRow\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1279 [label=\"Data.GraphViz.Attributes.HTML\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1333 [label=\"Data.GraphViz.Attributes.HTML\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1340 [label=\"Data.GraphViz.Attributes.HTML\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_HtmlScale {\n\t\t\tgraph [label=\"Instance for: HtmlScale\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1334 [label=\"Data.GraphViz.Attributes.HTML\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_HtmlTable {\n\t\t\tgraph [label=\"Instance for: HtmlTable\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1335 [label=\"Data.GraphViz.Attributes.HTML\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_HtmlTextItem {\n\t\t\tgraph [label=\"Instance for: HtmlTextItem\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1280 [label=\"Data.GraphViz.Attributes.HTML\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1336 [label=\"Data.GraphViz.Attributes.HTML\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1341 [label=\"Data.GraphViz.Attributes.HTML\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_HtmlVAlign {\n\t\t\tgraph [label=\"Instance for: HtmlVAlign\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1337 [label=\"Data.GraphViz.Attributes.HTML\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Int {\n\t\t\tgraph [label=\"Instance for: Int\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1479 [label=\"Data.GraphViz.Printing\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=cyan];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Justification {\n\t\t\tgraph [label=\"Instance for: Justification\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t563 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Label {\n\t\t\tgraph [label=\"Instance for: Label\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t524 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t564 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_LayerID {\n\t\t\tgraph [label=\"Instance for: LayerID\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t423 [label=\"Data.GraphViz.Attributes\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t525 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t565 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t594 [label=\"Data.GraphViz.Attributes\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_LayerList {\n\t\t\tgraph [label=\"Instance for: LayerList\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t526 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t566 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_LayerRange {\n\t\t\tgraph [label=\"Instance for: LayerRange\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t527 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t567 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_ModeType {\n\t\t\tgraph [label=\"Instance for: ModeType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t568 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Model {\n\t\t\tgraph [label=\"Instance for: Model\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t569 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_OutputMode {\n\t\t\tgraph [label=\"Instance for: OutputMode\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t570 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Overlap {\n\t\t\tgraph [label=\"Instance for: Overlap\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t571 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Pack {\n\t\t\tgraph [label=\"Instance for: Pack\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t572 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_PackMode {\n\t\t\tgraph [label=\"Instance for: PackMode\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t573 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_PageDir {\n\t\t\tgraph [label=\"Instance for: PageDir\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t574 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Point {\n\t\t\tgraph [label=\"Instance for: Point\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t424 [label=\"Data.GraphViz.Attributes\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t528 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t575 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t595 [label=\"Data.GraphViz.Attributes\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_PortName {\n\t\t\tgraph [label=\"Instance for: PortName\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1364 [label=\"Data.GraphViz.Attributes.Internal\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1367 [label=\"Data.GraphViz.Attributes.Internal\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_PortPos {\n\t\t\tgraph [label=\"Instance for: PortPos\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1365 [label=\"Data.GraphViz.Attributes.Internal\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1368 [label=\"Data.GraphViz.Attributes.Internal\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Pos {\n\t\t\tgraph [label=\"Instance for: Pos\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t529 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t576 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_QuadType {\n\t\t\tgraph [label=\"Instance for: QuadType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t577 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_RankDir {\n\t\t\tgraph [label=\"Instance for: RankDir\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t578 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_RankType {\n\t\t\tgraph [label=\"Instance for: RankType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t579 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Ratios {\n\t\t\tgraph [label=\"Instance for: Ratios\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t580 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_RecordField {\n\t\t\tgraph [label=\"Instance for: RecordField\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t425 [label=\"Data.GraphViz.Attributes\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t530 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t581 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t596 [label=\"Data.GraphViz.Attributes\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Rect {\n\t\t\tgraph [label=\"Instance for: Rect\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t531 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t582 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Root {\n\t\t\tgraph [label=\"Instance for: Root\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t532 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t583 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_STStyle {\n\t\t\tgraph [label=\"Instance for: STStyle\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t584 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_ScaleType {\n\t\t\tgraph [label=\"Instance for: ScaleType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t585 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Shape {\n\t\t\tgraph [label=\"Instance for: Shape\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t586 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_SmoothType {\n\t\t\tgraph [label=\"Instance for: SmoothType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t587 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Spline {\n\t\t\tgraph [label=\"Instance for: Spline\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t426 [label=\"Data.GraphViz.Attributes\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t533 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t588 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t597 [label=\"Data.GraphViz.Attributes\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_StartType {\n\t\t\tgraph [label=\"Instance for: StartType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t589 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_StyleItem {\n\t\t\tgraph [label=\"Instance for: StyleItem\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t427 [label=\"Data.GraphViz.Attributes\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t534 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t590 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t598 [label=\"Data.GraphViz.Attributes\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_StyleName {\n\t\t\tgraph [label=\"Instance for: StyleName\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t535 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t591 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_VerticalPlacement {\n\t\t\tgraph [label=\"Instance for: VerticalPlacement\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t592 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_ViewPort {\n\t\t\tgraph [label=\"Instance for: ViewPort\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t536 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t593 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Word16 {\n\t\t\tgraph [label=\"Instance for: Word16\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1480 [label=\"Data.GraphViz.Printing\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=cyan];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Word8 {\n\t\t\tgraph [label=\"Instance for: Word8\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1481 [label=\"Data.GraphViz.Printing\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=cyan];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_X11Color {\n\t\t\tgraph [label=\"Instance for: X11Color\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1223 [label=\"Data.GraphViz.Attributes.Colors\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_a {\n\t\t\tgraph [label=\"Instance for: [a]\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1474 [label=\"Data.GraphViz.Printing\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1482 [label=\"Data.GraphViz.Printing\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_DefaultInstance_PrintDot {\n\t\t\tgraph [label=\"Default Instance\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1459 [label=\"Data.GraphViz.Printing\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1471 [label=\"Data.GraphViz.Printing\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1485 [label=\"Data.GraphViz.Printing\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\t1458 [label=\"Data.GraphViz.Printing\\nlistToDot\", style=\"filled,solid\", shape=doubleoctagon, fillcolor=goldenrod];\n\t\t1470 [label=\"Data.GraphViz.Printing\\ntoDot\", style=\"filled,solid\", shape=doubleoctagon, fillcolor=goldenrod];\n\t\t1475 [label=\"Data.GraphViz.Printing\\nunqtDot\", style=\"filled,solid\", shape=doubleoctagon, fillcolor=goldenrod];\n\t\t1484 [label=\"Data.GraphViz.Printing\\nunqtListToDot\", style=\"filled,solid\", shape=doubleoctagon, fillcolor=goldenrod];\n\t\t422 -> 1484 [penwidth=1, color=black];\n\t\t423 -> 1470 [penwidth=1, color=black];\n\t\t423 -> 1475 [penwidth=1, color=black];\n\t\t424 -> 1484 [penwidth=1, color=black];\n\t\t425 -> 1470 [penwidth=1, color=black];\n\t\t425 -> 1484 [penwidth=1, color=black];\n\t\t426 -> 1484 [penwidth=1, color=black];\n\t\t427 -> 1470 [penwidth=1, color=black];\n\t\t427 -> 1484 [penwidth=1, color=black];\n\t\t520 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t521 -> 1470 [penwidth=\"1.6931471805599454\", color=black];\n\t\t522 -> 1475 [penwidth=1, color=black];\n\t\t523 -> 1470 [penwidth=\"1.6931471805599454\", color=black];\n\t\t524 -> 1470 [penwidth=\"1.6931471805599454\", color=black];\n\t\t524 -> 1475 [penwidth=1, color=black];\n\t\t525 -> 1470 [penwidth=1, color=black];\n\t\t525 -> 1475 [penwidth=1, color=black];\n\t\t526 -> 1470 [penwidth=1, color=black];\n\t\t527 -> 1470 [penwidth=1, color=black];\n\t\t527 -> 1475 [penwidth=1, color=black];\n\t\t528 -> 1475 [penwidth=1, color=black];\n\t\t529 -> 1470 [penwidth=\"1.6931471805599454\", color=black];\n\t\t530 -> 1475 [penwidth=1, color=black];\n\t\t531 -> 1475 [penwidth=1, color=black];\n\t\t532 -> 1470 [penwidth=1, color=black];\n\t\t532 -> 1475 [penwidth=1, color=black];\n\t\t533 -> 1475 [penwidth=1, color=black];\n\t\t534 -> 1470 [penwidth=1, color=black];\n\t\t534 -> 1475 [penwidth=1, color=black];\n\t\t535 -> 1470 [penwidth=1, color=black];\n\t\t535 -> 1475 [penwidth=1, color=black];\n\t\t536 -> 1475 [penwidth=1, color=black];\n\t\t551 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t552 -> 1475 [penwidth=\"3.1972245773362196\", color=black];\n\t\t554 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t555 -> 1475 [penwidth=1, color=black];\n\t\t556 -> 1470 [penwidth=\"1.6931471805599454\", color=black];\n\t\t557 -> 1475 [penwidth=\"2.09861228866811\", color=black];\n\t\t558 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t559 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t560 -> 1475 [penwidth=\"2.386294361119891\", color=black];\n\t\t561 -> 1470 [penwidth=\"1.6931471805599454\", color=black];\n\t\t562 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t564 -> 1475 [penwidth=\"2.09861228866811\", color=black];\n\t\t565 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t566 -> 1475 [penwidth=1, color=black];\n\t\t567 -> 1475 [penwidth=\"2.386294361119891\", color=black];\n\t\t571 -> 1475 [penwidth=\"2.09861228866811\", color=black];\n\t\t572 -> 1475 [penwidth=\"2.09861228866811\", color=black];\n\t\t573 -> 1475 [penwidth=1, color=black];\n\t\t575 -> 1475 [penwidth=1, color=black];\n\t\t576 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t580 -> 1475 [penwidth=1, color=black];\n\t\t581 -> 1475 [penwidth=1, color=black];\n\t\t583 -> 1475 [penwidth=\"2.09861228866811\", color=black];\n\t\t585 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t588 -> 1475 [penwidth=1, color=black];\n\t\t589 -> 1475 [penwidth=\"2.386294361119891\", color=black];\n\t\t590 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t591 -> 1475 [penwidth=1, color=black];\n\t\t593 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t594 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t595 -> 1475 [penwidth=1, color=black];\n\t\t596 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t597 -> 1475 [penwidth=1, color=black];\n\t\t598 -> 1475 [penwidth=1, color=black];\n\t\t1206 -> 1470 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1206 -> 1484 [penwidth=1, color=black];\n\t\t1218 -> 1470 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1218 -> 1475 [penwidth=1, color=black];\n\t\t1220 -> 1475 [penwidth=\"4.555348061489413\", color=black];\n\t\t1221 -> 1475 [penwidth=\"2.09861228866811\", color=black];\n\t\t1222 -> 1475 [penwidth=\"2.09861228866811\", color=black];\n\t\t1223 -> 1475 [penwidth=\"7.302618975744905\", color=black];\n\t\t1224 -> 1475 [penwidth=1, color=black];\n\t\t1277 -> 1484 [penwidth=1, color=black];\n\t\t1278 -> 1484 [penwidth=1, color=black];\n\t\t1279 -> 1484 [penwidth=1, color=black];\n\t\t1280 -> 1484 [penwidth=1, color=black];\n\t\t1330 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1332 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1333 -> 1475 [penwidth=1, color=black];\n\t\t1335 -> 1470 [penwidth=1, color=black];\n\t\t1336 -> 1475 [penwidth=1, color=black];\n\t\t1338 -> 1475 [penwidth=1, color=black];\n\t\t1339 -> 1475 [penwidth=1, color=black];\n\t\t1340 -> 1475 [penwidth=1, color=black];\n\t\t1341 -> 1475 [penwidth=1, color=black];\n\t\t1364 -> 1470 [penwidth=1, color=black];\n\t\t1365 -> 1470 [penwidth=1, color=black];\n\t\t1365 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1367 -> 1475 [penwidth=1, color=black];\n\t\t1368 -> 1475 [penwidth=\"2.09861228866811\", color=black];\n\t\t1458 -> 422 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 423 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1458 -> 424 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 425 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1458 -> 426 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 427 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1458 -> 1206 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1458 -> 1277 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 1278 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 1279 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 1280 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 1459 [penwidth=1, color=turquoise, dir=none];\n\t\t1458 -> 1460 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 1461 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1458 -> 1708 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 1709 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 1710 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 1797 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 1798 [penwidth=1, color=navy, dir=none];\n\t\t1459 -> 1484 [penwidth=1, color=black];\n\t\t1461 -> 1470 [penwidth=1, color=black];\n\t\t1461 -> 1484 [penwidth=1, color=black];\n\t\t1470 -> 520 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1470 -> 521 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1470 -> 522 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1470 -> 523 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1470 -> 524 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1470 -> 525 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1470 -> 526 [penwidth=1, color=navy, dir=none];\n\t\t1470 -> 527 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1470 -> 528 [penwidth=1, color=navy, dir=none];\n\t\t1470 -> 529 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1470 -> 530 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1470 -> 531 [penwidth=1, color=navy, dir=none];\n\t\t1470 -> 532 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1470 -> 533 [penwidth=1, color=navy, dir=none];\n\t\t1470 -> 534 [penwidth=1, color=navy, dir=none];\n\t\t1470 -> 535 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1470 -> 536 [penwidth=1, color=navy, dir=none];\n\t\t1470 -> 1218 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1470 -> 1364 [penwidth=1, color=navy, dir=none];\n\t\t1470 -> 1365 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1470 -> 1471 [penwidth=1, color=turquoise, dir=none];\n\t\t1470 -> 1472 [penwidth=1, color=navy, dir=none];\n\t\t1470 -> 1473 [penwidth=1, color=navy, dir=none];\n\t\t1470 -> 1474 [penwidth=1, color=navy, dir=none];\n\t\t1470 -> 1761 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1471 -> 1475 [penwidth=1, color=black];\n\t\t1473 -> 1475 [penwidth=1, color=black];\n\t\t1474 -> 1458 [penwidth=1, color=chartreuse];\n\t\t1475 -> 550 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1475 -> 551 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 552 [penwidth=\"3.1972245773362196\", color=navy, dir=none];\n\t\t1475 -> 553 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 554 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 555 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1475 -> 556 [penwidth=\"5.976733742420574\", color=navy, dir=none];\n\t\t1475 -> 557 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 558 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 559 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1475 -> 560 [penwidth=\"2.386294361119891\", color=navy, dir=none];\n\t\t1475 -> 561 [penwidth=\"2.6094379124341005\", color=navy, dir=none];\n\t\t1475 -> 562 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1475 -> 563 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 564 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 565 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 566 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 567 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1475 -> 568 [penwidth=\"2.386294361119891\", color=navy, dir=none];\n\t\t1475 -> 569 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 570 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 571 [penwidth=\"3.0794415416798357\", color=navy, dir=none];\n\t\t1475 -> 572 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 573 [penwidth=\"2.386294361119891\", color=navy, dir=none];\n\t\t1475 -> 574 [penwidth=\"3.0794415416798357\", color=navy, dir=none];\n\t\t1475 -> 575 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 576 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1475 -> 577 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 578 [penwidth=\"2.386294361119891\", color=navy, dir=none];\n\t\t1475 -> 579 [penwidth=\"2.6094379124341005\", color=navy, dir=none];\n\t\t1475 -> 580 [penwidth=\"2.6094379124341005\", color=navy, dir=none];\n\t\t1475 -> 581 [penwidth=\"2.386294361119891\", color=navy, dir=none];\n\t\t1475 -> 582 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 583 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 584 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 585 [penwidth=\"2.6094379124341005\", color=navy, dir=none];\n\t\t1475 -> 586 [penwidth=\"4.465735902799727\", color=navy, dir=none];\n\t\t1475 -> 587 [penwidth=\"2.9459101490553135\", color=navy, dir=none];\n\t\t1475 -> 588 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 589 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 590 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 591 [penwidth=\"3.1972245773362196\", color=navy, dir=none];\n\t\t1475 -> 592 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 593 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1220 [penwidth=\"4.555348061489413\", color=navy, dir=none];\n\t\t1475 -> 1221 [penwidth=\"2.6094379124341005\", color=navy, dir=none];\n\t\t1475 -> 1222 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1475 -> 1223 [penwidth=\"7.302618975744905\", color=navy, dir=none];\n\t\t1475 -> 1328 [penwidth=\"2.386294361119891\", color=navy, dir=none];\n\t\t1475 -> 1329 [penwidth=\"4.091042453358316\", color=navy, dir=none];\n\t\t1475 -> 1330 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1475 -> 1331 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1332 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1475 -> 1333 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1334 [penwidth=\"2.6094379124341005\", color=navy, dir=none];\n\t\t1475 -> 1335 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1336 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 1337 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 1366 [penwidth=\"3.302585092994046\", color=navy, dir=none];\n\t\t1475 -> 1367 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1368 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1475 -> 1476 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1475 -> 1477 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1478 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1479 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1480 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1481 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1482 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1766 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1767 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1768 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1769 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 1821 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1822 [penwidth=\"2.386294361119891\", color=navy, dir=none];\n\t\t1475 -> 1823 [penwidth=1, color=navy, dir=none];\n\t\t1482 -> 1484 [penwidth=1, color=black];\n\t\t1484 -> 594 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 595 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 596 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1484 -> 597 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 598 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1224 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1338 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1339 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1340 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1341 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1485 [penwidth=1, color=turquoise, dir=none];\n\t\t1484 -> 1486 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1487 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1770 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1771 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1772 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1824 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1825 [penwidth=1, color=navy, dir=none];\n\t\t1485 -> 1475 [penwidth=1, color=black];\n\t\t1487 -> 1475 [penwidth=1, color=black];\n\t\t1708 -> 1484 [penwidth=1, color=black];\n\t\t1709 -> 1484 [penwidth=1, color=black];\n\t\t1710 -> 1484 [penwidth=1, color=black];\n\t\t1761 -> 1470 [penwidth=1, color=black];\n\t\t1761 -> 1475 [penwidth=1, color=black];\n\t\t1768 -> 1470 [penwidth=1, color=black];\n\t\t1769 -> 1475 [penwidth=\"2.09861228866811\", color=black];\n\t\t1797 -> 1484 [penwidth=1, color=black];\n\t\t1798 -> 1484 [penwidth=1, color=black];\n\t\t1822 -> 1475 [penwidth=\"2.386294361119891\", color=black];\n\t\t1824 -> 1475 [penwidth=1, color=black];\n\t}\n\tsubgraph cluster_Data_ArrowFill {\n\t\tgraph [label=\"Data: ArrowFill\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t159 [label=\"Data.GraphViz.Attributes\\nFilledArrow\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t275 [label=\"Data.GraphViz.Attributes\\nOpenArrow\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_ArrowModifier {\n\t\tgraph [label=\"Data: ArrowModifier\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t84 [label=\"Data.GraphViz.Attributes\\nArrMod\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t402 [label=\"Data.GraphViz.Attributes\\narrowFill\", style=\"filled,solid\", shape=component, fillcolor=gold];\n\t\t403 [label=\"Data.GraphViz.Attributes\\narrowSide\", style=\"filled,solid\", shape=component, fillcolor=gold];\n\t\t402 -> 84 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t403 -> 84 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_ArrowShape {\n\t\tgraph [label=\"Data: ArrowShape\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t99 [label=\"Data.GraphViz.Attributes\\nBox\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t119 [label=\"Data.GraphViz.Attributes\\nCrow\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t128 [label=\"Data.GraphViz.Attributes\\nDiamond\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t137 [label=\"Data.GraphViz.Attributes\\nDotArrow\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t191 [label=\"Data.GraphViz.Attributes\\nInv\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t254 [label=\"Data.GraphViz.Attributes\\nNoArrow\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t267 [label=\"Data.GraphViz.Attributes\\nNormal\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t377 [label=\"Data.GraphViz.Attributes\\nTee\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t393 [label=\"Data.GraphViz.Attributes\\nVee\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_ArrowSide {\n\t\tgraph [label=\"Data: ArrowSide\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t98 [label=\"Data.GraphViz.Attributes\\nBothSides\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t232 [label=\"Data.GraphViz.Attributes\\nLeftSide\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t328 [label=\"Data.GraphViz.Attributes\\nRightSide\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_ArrowType {\n\t\tgraph [label=\"Data: ArrowType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t82 [label=\"Data.GraphViz.Attributes\\nAType\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_AspectType {\n\t\tgraph [label=\"Data: AspectType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t316 [label=\"Data.GraphViz.Attributes\\nRatioOnly\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t317 [label=\"Data.GraphViz.Attributes\\nRatioPassCount\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Attribute {\n\t\tgraph [label=\"Data: Attribute\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t31 [label=\"Data.GraphViz.AttributeGenerator\\nA\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t\t48 [label=\"Data.GraphViz.AttributeGenerator\\ncnst\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t49 [label=\"Data.GraphViz.AttributeGenerator\\ncomment\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t57 [label=\"Data.GraphViz.AttributeGenerator\\nforClusters\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t58 [label=\"Data.GraphViz.AttributeGenerator\\nforEdges\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t59 [label=\"Data.GraphViz.AttributeGenerator\\nforGraphs\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t60 [label=\"Data.GraphViz.AttributeGenerator\\nforNodes\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t61 [label=\"Data.GraphViz.AttributeGenerator\\nforSubGraphs\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t66 [label=\"Data.GraphViz.AttributeGenerator\\nname\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t67 [label=\"Data.GraphViz.AttributeGenerator\\nparseDef\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t69 [label=\"Data.GraphViz.AttributeGenerator\\nparseNames\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t77 [label=\"Data.GraphViz.AttributeGenerator\\nvaltype\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t85 [label=\"Data.GraphViz.Attributes\\nArrowHead\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t86 [label=\"Data.GraphViz.Attributes\\nArrowSize\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t87 [label=\"Data.GraphViz.Attributes\\nArrowTail\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t88 [label=\"Data.GraphViz.Attributes\\nAspect\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t93 [label=\"Data.GraphViz.Attributes\\nBb\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t94 [label=\"Data.GraphViz.Attributes\\nBgColor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t104 [label=\"Data.GraphViz.Attributes\\nCenter\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t105 [label=\"Data.GraphViz.Attributes\\nCharset\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t108 [label=\"Data.GraphViz.Attributes\\nClusterRank\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t109 [label=\"Data.GraphViz.Attributes\\nColor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t110 [label=\"Data.GraphViz.Attributes\\nColorScheme\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t111 [label=\"Data.GraphViz.Attributes\\nComment\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t113 [label=\"Data.GraphViz.Attributes\\nCompound\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t117 [label=\"Data.GraphViz.Attributes\\nConcentrate\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t118 [label=\"Data.GraphViz.Attributes\\nConstraint\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t121 [label=\"Data.GraphViz.Attributes\\nDPI\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t123 [label=\"Data.GraphViz.Attributes\\nDamping\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t125 [label=\"Data.GraphViz.Attributes\\nDecorate\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t126 [label=\"Data.GraphViz.Attributes\\nDefaultDist\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t130 [label=\"Data.GraphViz.Attributes\\nDim\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t131 [label=\"Data.GraphViz.Attributes\\nDimen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t132 [label=\"Data.GraphViz.Attributes\\nDir\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t133 [label=\"Data.GraphViz.Attributes\\nDirEdgeConstraints\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t134 [label=\"Data.GraphViz.Attributes\\nDistortion\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t141 [label=\"Data.GraphViz.Attributes\\nESep\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t143 [label=\"Data.GraphViz.Attributes\\nEdgeTarget\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t144 [label=\"Data.GraphViz.Attributes\\nEdgeTooltip\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t145 [label=\"Data.GraphViz.Attributes\\nEdgeURL\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t149 [label=\"Data.GraphViz.Attributes\\nEpsilon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t154 [label=\"Data.GraphViz.Attributes\\nFillColor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t160 [label=\"Data.GraphViz.Attributes\\nFixedSize\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t163 [label=\"Data.GraphViz.Attributes\\nFontColor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t164 [label=\"Data.GraphViz.Attributes\\nFontName\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t165 [label=\"Data.GraphViz.Attributes\\nFontNames\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t166 [label=\"Data.GraphViz.Attributes\\nFontPath\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t167 [label=\"Data.GraphViz.Attributes\\nFontSize\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t175 [label=\"Data.GraphViz.Attributes\\nGroup\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t176 [label=\"Data.GraphViz.Attributes\\nHeadClip\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t177 [label=\"Data.GraphViz.Attributes\\nHeadLabel\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t178 [label=\"Data.GraphViz.Attributes\\nHeadPort\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t179 [label=\"Data.GraphViz.Attributes\\nHeadTarget\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t180 [label=\"Data.GraphViz.Attributes\\nHeadTooltip\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t181 [label=\"Data.GraphViz.Attributes\\nHeadURL\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t182 [label=\"Data.GraphViz.Attributes\\nHeight\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t188 [label=\"Data.GraphViz.Attributes\\nID\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t189 [label=\"Data.GraphViz.Attributes\\nImage\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t190 [label=\"Data.GraphViz.Attributes\\nImageScale\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t202 [label=\"Data.GraphViz.Attributes\\nK\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t205 [label=\"Data.GraphViz.Attributes\\nLHead\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t207 [label=\"Data.GraphViz.Attributes\\nLPos\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t212 [label=\"Data.GraphViz.Attributes\\nLTail\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t213 [label=\"Data.GraphViz.Attributes\\nLabel\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t214 [label=\"Data.GraphViz.Attributes\\nLabelAngle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t215 [label=\"Data.GraphViz.Attributes\\nLabelDistance\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t216 [label=\"Data.GraphViz.Attributes\\nLabelFloat\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t217 [label=\"Data.GraphViz.Attributes\\nLabelFontColor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t218 [label=\"Data.GraphViz.Attributes\\nLabelFontName\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t219 [label=\"Data.GraphViz.Attributes\\nLabelFontSize\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t220 [label=\"Data.GraphViz.Attributes\\nLabelJust\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t221 [label=\"Data.GraphViz.Attributes\\nLabelLoc\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t222 [label=\"Data.GraphViz.Attributes\\nLabelTarget\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t223 [label=\"Data.GraphViz.Attributes\\nLabelTooltip\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t224 [label=\"Data.GraphViz.Attributes\\nLabelURL\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t226 [label=\"Data.GraphViz.Attributes\\nLandscape\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t227 [label=\"Data.GraphViz.Attributes\\nLayer\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t228 [label=\"Data.GraphViz.Attributes\\nLayerSep\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t229 [label=\"Data.GraphViz.Attributes\\nLayers\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t230 [label=\"Data.GraphViz.Attributes\\nLayout\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t233 [label=\"Data.GraphViz.Attributes\\nLen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t234 [label=\"Data.GraphViz.Attributes\\nLevels\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t235 [label=\"Data.GraphViz.Attributes\\nLevelsGap\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t239 [label=\"Data.GraphViz.Attributes\\nMCLimit\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t245 [label=\"Data.GraphViz.Attributes\\nMargin\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t246 [label=\"Data.GraphViz.Attributes\\nMaxIter\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t248 [label=\"Data.GraphViz.Attributes\\nMinDist\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t249 [label=\"Data.GraphViz.Attributes\\nMinLen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t251 [label=\"Data.GraphViz.Attributes\\nMode\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t252 [label=\"Data.GraphViz.Attributes\\nModel\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t253 [label=\"Data.GraphViz.Attributes\\nMosek\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t259 [label=\"Data.GraphViz.Attributes\\nNoJustify\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t265 [label=\"Data.GraphViz.Attributes\\nNodeSep\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t269 [label=\"Data.GraphViz.Attributes\\nNormalize\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t272 [label=\"Data.GraphViz.Attributes\\nNslimit\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t273 [label=\"Data.GraphViz.Attributes\\nNslimit1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t276 [label=\"Data.GraphViz.Attributes\\nOrdering\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t277 [label=\"Data.GraphViz.Attributes\\nOrientation\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t278 [label=\"Data.GraphViz.Attributes\\nOutputOrder\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t279 [label=\"Data.GraphViz.Attributes\\nOverlap\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t280 [label=\"Data.GraphViz.Attributes\\nOverlapScaling\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t282 [label=\"Data.GraphViz.Attributes\\nPack\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t287 [label=\"Data.GraphViz.Attributes\\nPackMode\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t289 [label=\"Data.GraphViz.Attributes\\nPad\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t290 [label=\"Data.GraphViz.Attributes\\nPage\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t291 [label=\"Data.GraphViz.Attributes\\nPageDir\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t293 [label=\"Data.GraphViz.Attributes\\nPenColor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t294 [label=\"Data.GraphViz.Attributes\\nPenWidth\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t296 [label=\"Data.GraphViz.Attributes\\nPeripheries\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t297 [label=\"Data.GraphViz.Attributes\\nPin\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t305 [label=\"Data.GraphViz.Attributes\\nPos\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t308 [label=\"Data.GraphViz.Attributes\\nQuadTree\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t309 [label=\"Data.GraphViz.Attributes\\nQuantum\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t312 [label=\"Data.GraphViz.Attributes\\nRank\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t313 [label=\"Data.GraphViz.Attributes\\nRankDir\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t314 [label=\"Data.GraphViz.Attributes\\nRankSep\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t315 [label=\"Data.GraphViz.Attributes\\nRatio\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t319 [label=\"Data.GraphViz.Attributes\\nReMinCross\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t323 [label=\"Data.GraphViz.Attributes\\nRects\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t324 [label=\"Data.GraphViz.Attributes\\nRegular\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t327 [label=\"Data.GraphViz.Attributes\\nRepulsiveForce\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t329 [label=\"Data.GraphViz.Attributes\\nRoot\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t330 [label=\"Data.GraphViz.Attributes\\nRotate\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t334 [label=\"Data.GraphViz.Attributes\\nSameHead\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t336 [label=\"Data.GraphViz.Attributes\\nSameTail\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t337 [label=\"Data.GraphViz.Attributes\\nSamplePoints\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t340 [label=\"Data.GraphViz.Attributes\\nSearchSize\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t342 [label=\"Data.GraphViz.Attributes\\nSep\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t344 [label=\"Data.GraphViz.Attributes\\nShape\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t345 [label=\"Data.GraphViz.Attributes\\nShapeFile\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t347 [label=\"Data.GraphViz.Attributes\\nShowBoxes\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t348 [label=\"Data.GraphViz.Attributes\\nSides\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t350 [label=\"Data.GraphViz.Attributes\\nSize\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t351 [label=\"Data.GraphViz.Attributes\\nSkew\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t352 [label=\"Data.GraphViz.Attributes\\nSmoothing\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t354 [label=\"Data.GraphViz.Attributes\\nSortV\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t359 [label=\"Data.GraphViz.Attributes\\nSplines\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t361 [label=\"Data.GraphViz.Attributes\\nStart\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t366 [label=\"Data.GraphViz.Attributes\\nStyle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t367 [label=\"Data.GraphViz.Attributes\\nStyleSheet\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t370 [label=\"Data.GraphViz.Attributes\\nTailClip\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t371 [label=\"Data.GraphViz.Attributes\\nTailLabel\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t372 [label=\"Data.GraphViz.Attributes\\nTailPort\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t373 [label=\"Data.GraphViz.Attributes\\nTailTarget\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t374 [label=\"Data.GraphViz.Attributes\\nTailTooltip\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t375 [label=\"Data.GraphViz.Attributes\\nTailURL\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t376 [label=\"Data.GraphViz.Attributes\\nTarget\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t379 [label=\"Data.GraphViz.Attributes\\nTooltip\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t385 [label=\"Data.GraphViz.Attributes\\nTrueColor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t386 [label=\"Data.GraphViz.Attributes\\nURL\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t388 [label=\"Data.GraphViz.Attributes\\nUnknownAttribute\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t394 [label=\"Data.GraphViz.Attributes\\nVertices\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t395 [label=\"Data.GraphViz.Attributes\\nViewPort\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t396 [label=\"Data.GraphViz.Attributes\\nVoroMargin\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t398 [label=\"Data.GraphViz.Attributes\\nWeight\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t399 [label=\"Data.GraphViz.Attributes\\nWidth\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t401 [label=\"Data.GraphViz.Attributes\\nZ\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t48 -> 31 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t49 -> 31 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t57 -> 31 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t58 -> 31 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t59 -> 31 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t60 -> 31 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t61 -> 31 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t66 -> 31 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t67 -> 31 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t69 -> 31 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t77 -> 31 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_Atts {\n\t\tgraph [label=\"Data: Atts\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t32 [label=\"Data.GraphViz.AttributeGenerator\\nAS\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t\t46 [label=\"Data.GraphViz.AttributeGenerator\\natts\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t74 [label=\"Data.GraphViz.AttributeGenerator\\ntpNm\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t46 -> 32 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t74 -> 32 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_BrewerName {\n\t\tgraph [label=\"Data: BrewerName\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t611 [label=\"Data.GraphViz.Attributes.Colors\\nAccent\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t642 [label=\"Data.GraphViz.Attributes.Colors\\nBlues\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t643 [label=\"Data.GraphViz.Attributes.Colors\\nBrbg\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t651 [label=\"Data.GraphViz.Attributes.Colors\\nBugn\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t652 [label=\"Data.GraphViz.Attributes.Colors\\nBupu\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t690 [label=\"Data.GraphViz.Attributes.Colors\\nDark2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t752 [label=\"Data.GraphViz.Attributes.Colors\\nGnbu\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t871 [label=\"Data.GraphViz.Attributes.Colors\\nGreens\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t872 [label=\"Data.GraphViz.Attributes.Colors\\nGreys\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1018 [label=\"Data.GraphViz.Attributes.Colors\\nOranges\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1024 [label=\"Data.GraphViz.Attributes.Colors\\nOrrd\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1025 [label=\"Data.GraphViz.Attributes.Colors\\nPaired\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1043 [label=\"Data.GraphViz.Attributes.Colors\\nPastel1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1044 [label=\"Data.GraphViz.Attributes.Colors\\nPastel2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1056 [label=\"Data.GraphViz.Attributes.Colors\\nPiyg\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1063 [label=\"Data.GraphViz.Attributes.Colors\\nPrgn\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1064 [label=\"Data.GraphViz.Attributes.Colors\\nPubu\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1065 [label=\"Data.GraphViz.Attributes.Colors\\nPubugn\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1066 [label=\"Data.GraphViz.Attributes.Colors\\nPuor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1067 [label=\"Data.GraphViz.Attributes.Colors\\nPurd\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1073 [label=\"Data.GraphViz.Attributes.Colors\\nPurples\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1076 [label=\"Data.GraphViz.Attributes.Colors\\nRdbu\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1077 [label=\"Data.GraphViz.Attributes.Colors\\nRdgy\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1078 [label=\"Data.GraphViz.Attributes.Colors\\nRdpu\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1079 [label=\"Data.GraphViz.Attributes.Colors\\nRdylbu\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1080 [label=\"Data.GraphViz.Attributes.Colors\\nRdylgn\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1086 [label=\"Data.GraphViz.Attributes.Colors\\nReds\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1114 [label=\"Data.GraphViz.Attributes.Colors\\nSet1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1115 [label=\"Data.GraphViz.Attributes.Colors\\nSet2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1116 [label=\"Data.GraphViz.Attributes.Colors\\nSet3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1142 [label=\"Data.GraphViz.Attributes.Colors\\nSpectral\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1195 [label=\"Data.GraphViz.Attributes.Colors\\nYlgn\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1196 [label=\"Data.GraphViz.Attributes.Colors\\nYlgnbu\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1197 [label=\"Data.GraphViz.Attributes.Colors\\nYlorbr\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1198 [label=\"Data.GraphViz.Attributes.Colors\\nYlorrd\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_ClusterMode {\n\t\tgraph [label=\"Data: ClusterMode\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t173 [label=\"Data.GraphViz.Attributes\\nGlobal\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t237 [label=\"Data.GraphViz.Attributes\\nLocal\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t255 [label=\"Data.GraphViz.Attributes\\nNoCluster\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_ClusterTree {\n\t\tgraph [label=\"Data: ClusterTree\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1668 [label=\"Data.GraphViz.Types.Clustering\\nCT\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1670 [label=\"Data.GraphViz.Types.Clustering\\nNT\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t}\n\tsubgraph cluster_Data_Color {\n\t\tgraph [label=\"Data: Color\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t644 [label=\"Data.GraphViz.Attributes.Colors\\nBrewerColor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t873 [label=\"Data.GraphViz.Attributes.Colors\\nHSV\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1074 [label=\"Data.GraphViz.Attributes.Colors\\nRGB\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1075 [label=\"Data.GraphViz.Attributes.Colors\\nRGBA\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1188 [label=\"Data.GraphViz.Attributes.Colors\\nX11Color\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1199 [label=\"Data.GraphViz.Attributes.Colors\\nalpha\", style=\"filled,solid\", shape=component, fillcolor=gold];\n\t\t1200 [label=\"Data.GraphViz.Attributes.Colors\\nblue\", style=\"filled,solid\", shape=component, fillcolor=gold];\n\t\t1203 [label=\"Data.GraphViz.Attributes.Colors\\ngreen\", style=\"filled,solid\", shape=component, fillcolor=gold];\n\t\t1205 [label=\"Data.GraphViz.Attributes.Colors\\nhue\", style=\"filled,solid\", shape=component, fillcolor=gold];\n\t\t1215 [label=\"Data.GraphViz.Attributes.Colors\\nred\", style=\"filled,solid\", shape=component, fillcolor=gold];\n\t\t1216 [label=\"Data.GraphViz.Attributes.Colors\\nsaturation\", style=\"filled,solid\", shape=component, fillcolor=gold];\n\t\t1225 [label=\"Data.GraphViz.Attributes.Colors\\nvalue\", style=\"filled,solid\", shape=component, fillcolor=gold];\n\t\t1199 -> 1075 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1200 -> 1074 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1200 -> 1075 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1203 -> 1074 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1203 -> 1075 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1205 -> 873 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1215 -> 1074 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1215 -> 1075 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1216 -> 873 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1225 -> 873 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_ColorScheme {\n\t\tgraph [label=\"Data: ColorScheme\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t645 [label=\"Data.GraphViz.Attributes.Colors\\nBrewerScheme\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1187 [label=\"Data.GraphViz.Attributes.Colors\\nX11\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_CompassPoint {\n\t\tgraph [label=\"Data: CompassPoint\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1342 [label=\"Data.GraphViz.Attributes.Internal\\nCenterPoint\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1344 [label=\"Data.GraphViz.Attributes.Internal\\nEast\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1346 [label=\"Data.GraphViz.Attributes.Internal\\nNoCP\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1347 [label=\"Data.GraphViz.Attributes.Internal\\nNorth\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1348 [label=\"Data.GraphViz.Attributes.Internal\\nNorthEast\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1349 [label=\"Data.GraphViz.Attributes.Internal\\nNorthWest\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1351 [label=\"Data.GraphViz.Attributes.Internal\\nSouth\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1352 [label=\"Data.GraphViz.Attributes.Internal\\nSouthEast\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1353 [label=\"Data.GraphViz.Attributes.Internal\\nSouthWest\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1354 [label=\"Data.GraphViz.Attributes.Internal\\nWest\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t}\n\tsubgraph cluster_Data_DEConstraints {\n\t\tgraph [label=\"Data: DEConstraints\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t142 [label=\"Data.GraphViz.Attributes\\nEdgeConstraints\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t185 [label=\"Data.GraphViz.Attributes\\nHierConstraints\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t256 [label=\"Data.GraphViz.Attributes\\nNoConstraints\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_DPoint {\n\t\tgraph [label=\"Data: DPoint\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t122 [label=\"Data.GraphViz.Attributes\\nDVal\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t281 [label=\"Data.GraphViz.Attributes\\nPVal\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_DirType {\n\t\tgraph [label=\"Data: DirType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t92 [label=\"Data.GraphViz.Attributes\\nBack\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t97 [label=\"Data.GraphViz.Attributes\\nBoth\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t168 [label=\"Data.GraphViz.Attributes\\nForward\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t257 [label=\"Data.GraphViz.Attributes\\nNoDir\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_DotEdge {\n\t\tgraph [label=\"Data: DotEdge\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1680 [label=\"Data.GraphViz.Types.Common\\nDotEdge\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1699 [label=\"Data.GraphViz.Types.Common\\ndirectedEdge\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1700 [label=\"Data.GraphViz.Types.Common\\nedgeAttributes\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1701 [label=\"Data.GraphViz.Types.Common\\nedgeFromNodeID\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1702 [label=\"Data.GraphViz.Types.Common\\nedgeToNodeID\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1699 -> 1680 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1700 -> 1680 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1701 -> 1680 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1702 -> 1680 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_DotError {\n\t\tgraph [label=\"Data: DotError\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1683 [label=\"Data.GraphViz.Types.Common\\nEdgeError\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t\t1685 [label=\"Data.GraphViz.Types.Common\\nGraphError\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t\t1688 [label=\"Data.GraphViz.Types.Common\\nNodeError\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t}\n\tsubgraph cluster_Data_DotNode {\n\t\tgraph [label=\"Data: DotNode\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1681 [label=\"Data.GraphViz.Types.Common\\nDotNode\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1713 [label=\"Data.GraphViz.Types.Common\\nnodeAttributes\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1714 [label=\"Data.GraphViz.Types.Common\\nnodeID\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1713 -> 1681 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1714 -> 1681 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_EdgeID {\n\t\tgraph [label=\"Data: EdgeID\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1 [label=\"Data.GraphViz\\nEID\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t13 [label=\"Data.GraphViz\\neID\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t14 [label=\"Data.GraphViz\\neLbl\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t13 -> 1 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t14 -> 1 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_EdgeType {\n\t\tgraph [label=\"Data: EdgeType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t114 [label=\"Data.GraphViz.Attributes\\nCompoundEdge\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t236 [label=\"Data.GraphViz.Attributes\\nLineEdges\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t258 [label=\"Data.GraphViz.Attributes\\nNoEdges\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t302 [label=\"Data.GraphViz.Attributes\\nPolyLine\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t357 [label=\"Data.GraphViz.Attributes\\nSplineEdges\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_FocusType {\n\t\tgraph [label=\"Data: FocusType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t263 [label=\"Data.GraphViz.Attributes\\nNodeFocus\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t400 [label=\"Data.GraphViz.Attributes\\nXY\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_GDotGraph {\n\t\tgraph [label=\"Data: GDotGraph\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1776 [label=\"Data.GraphViz.Types.Generalised\\nGDotGraph\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1783 [label=\"Data.GraphViz.Types.Generalised\\ngDirectedGraph\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t1784 [label=\"Data.GraphViz.Types.Generalised\\ngGraphID\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t1785 [label=\"Data.GraphViz.Types.Generalised\\ngGraphStatements\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t1787 [label=\"Data.GraphViz.Types.Generalised\\ngStrictGraph\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t1783 -> 1776 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1784 -> 1776 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1785 -> 1776 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1787 -> 1776 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_GDotStatement {\n\t\tgraph [label=\"Data: GDotStatement\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1773 [label=\"Data.GraphViz.Types.Generalised\\nDE\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1774 [label=\"Data.GraphViz.Types.Generalised\\nDN\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1775 [label=\"Data.GraphViz.Types.Generalised\\nGA\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1778 [label=\"Data.GraphViz.Types.Generalised\\nSG\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_GDotSubGraph {\n\t\tgraph [label=\"Data: GDotSubGraph\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1777 [label=\"Data.GraphViz.Types.Generalised\\nGDotSG\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1786 [label=\"Data.GraphViz.Types.Generalised\\ngIsCluster\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t1788 [label=\"Data.GraphViz.Types.Generalised\\ngSubGraphID\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t1789 [label=\"Data.GraphViz.Types.Generalised\\ngSubGraphStmts\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t1786 -> 1777 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1788 -> 1777 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1789 -> 1777 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_GlobalAttributes {\n\t\tgraph [label=\"Data: GlobalAttributes\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1682 [label=\"Data.GraphViz.Types.Common\\nEdgeAttrs\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1684 [label=\"Data.GraphViz.Types.Common\\nGraphAttrs\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1687 [label=\"Data.GraphViz.Types.Common\\nNodeAttrs\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1691 [label=\"Data.GraphViz.Types.Common\\nattrs\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1691 -> 1682 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1691 -> 1684 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1691 -> 1687 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_GraphID {\n\t\tgraph [label=\"Data: GraphID\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1679 [label=\"Data.GraphViz.Types.Common\\nDbl\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1686 [label=\"Data.GraphViz.Types.Common\\nInt\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1689 [label=\"Data.GraphViz.Types.Common\\nStr\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t}\n\tsubgraph cluster_Data_GraphvizParams {\n\t\tgraph [label=\"Data: GraphvizParams\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t2 [label=\"Data.GraphViz\\nParams\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t7 [label=\"Data.GraphViz\\nclusterBy\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t8 [label=\"Data.GraphViz\\nclusterID\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t15 [label=\"Data.GraphViz\\nfmtCluster\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t16 [label=\"Data.GraphViz\\nfmtEdge\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t17 [label=\"Data.GraphViz\\nfmtNode\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t19 [label=\"Data.GraphViz\\nglobalAttributes\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t22 [label=\"Data.GraphViz\\nisDirected\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t7 -> 2 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t8 -> 2 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t15 -> 2 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t16 -> 2 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t17 -> 2 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t19 -> 2 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t22 -> 2 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_HtmlAlign {\n\t\tgraph [label=\"Data: HtmlAlign\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1229 [label=\"Data.GraphViz.Attributes.HTML\\nHCenter\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1230 [label=\"Data.GraphViz.Attributes.HTML\\nHLeft\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1232 [label=\"Data.GraphViz.Attributes.HTML\\nHRight\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1234 [label=\"Data.GraphViz.Attributes.HTML\\nHText\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_HtmlAttribute {\n\t\tgraph [label=\"Data: HtmlAttribute\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1236 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlAlign\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1237 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlBAlign\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1238 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlBGColor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1239 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlBorder\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1240 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlCellBorder\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1241 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlCellPadding\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1242 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlCellSpacing\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1243 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlColSpan\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1244 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlColor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1248 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlFace\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1249 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlFixedSize\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1251 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlHRef\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1252 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlHeight\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1258 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlPointSize\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1259 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlPort\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1261 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlRowSpan\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1262 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlScale\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1264 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlSrc\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1267 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlTarget\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1269 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlTitle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1270 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlVAlign\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1271 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlWidth\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_HtmlCell {\n\t\tgraph [label=\"Data: HtmlCell\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1254 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlImgCell\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1255 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlLabelCell\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_HtmlImg {\n\t\tgraph [label=\"Data: HtmlImg\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1253 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlImg\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_HtmlLabel {\n\t\tgraph [label=\"Data: HtmlLabel\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1266 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlTable\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1268 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlText\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_HtmlRow {\n\t\tgraph [label=\"Data: HtmlRow\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1260 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlRow\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_HtmlScale {\n\t\tgraph [label=\"Data: HtmlScale\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1245 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlExpandBoth\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1246 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlExpandHeight\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1247 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlExpandWidth\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1256 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlNaturalSize\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1263 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlScaleUniformly\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_HtmlTable {\n\t\tgraph [label=\"Data: HtmlTable\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1233 [label=\"Data.GraphViz.Attributes.HTML\\nHTable\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1322 [label=\"Data.GraphViz.Attributes.HTML\\ntableAttrs\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t1323 [label=\"Data.GraphViz.Attributes.HTML\\ntableFontAttrs\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t1324 [label=\"Data.GraphViz.Attributes.HTML\\ntableRows\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t1322 -> 1233 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1323 -> 1233 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1324 -> 1233 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_HtmlTextItem {\n\t\tgraph [label=\"Data: HtmlTextItem\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1250 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlFont\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1257 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlNewline\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1265 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlStr\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_HtmlVAlign {\n\t\tgraph [label=\"Data: HtmlVAlign\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1228 [label=\"Data.GraphViz.Attributes.HTML\\nHBottom\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1231 [label=\"Data.GraphViz.Attributes.HTML\\nHMiddle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1235 [label=\"Data.GraphViz.Attributes.HTML\\nHTop\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Justification {\n\t\tgraph [label=\"Data: Justification\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t199 [label=\"Data.GraphViz.Attributes\\nJCenter\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t200 [label=\"Data.GraphViz.Attributes\\nJLeft\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t201 [label=\"Data.GraphViz.Attributes\\nJRight\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Label {\n\t\tgraph [label=\"Data: Label\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t187 [label=\"Data.GraphViz.Attributes\\nHtmlLabel\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t321 [label=\"Data.GraphViz.Attributes\\nRecordLabel\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t365 [label=\"Data.GraphViz.Attributes\\nStrLabel\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_LayerID {\n\t\tgraph [label=\"Data: LayerID\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t83 [label=\"Data.GraphViz.Attributes\\nAllLayers\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t209 [label=\"Data.GraphViz.Attributes\\nLRInt\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t210 [label=\"Data.GraphViz.Attributes\\nLRName\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_LayerList {\n\t\tgraph [label=\"Data: LayerList\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t206 [label=\"Data.GraphViz.Attributes\\nLL\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_LayerRange {\n\t\tgraph [label=\"Data: LayerRange\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t208 [label=\"Data.GraphViz.Attributes\\nLRID\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t211 [label=\"Data.GraphViz.Attributes\\nLRS\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_ModeType {\n\t\tgraph [label=\"Data: ModeType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t184 [label=\"Data.GraphViz.Attributes\\nHier\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t196 [label=\"Data.GraphViz.Attributes\\nIpSep\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t203 [label=\"Data.GraphViz.Attributes\\nKK\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t244 [label=\"Data.GraphViz.Attributes\\nMajor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Model {\n\t\tgraph [label=\"Data: Model\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t107 [label=\"Data.GraphViz.Attributes\\nCircuit\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t346 [label=\"Data.GraphViz.Attributes\\nShortPath\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t368 [label=\"Data.GraphViz.Attributes\\nSubSet\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_NodeCluster {\n\t\tgraph [label=\"Data: NodeCluster\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1667 [label=\"Data.GraphViz.Types.Clustering\\nC\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1669 [label=\"Data.GraphViz.Types.Clustering\\nN\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t}\n\tsubgraph cluster_Data_NodeInfo {\n\t\tgraph [label=\"Data: NodeInfo\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1828 [label=\"Data.GraphViz.Types.State\\nNI\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1841 [label=\"Data.GraphViz.Types.State\\natts\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1844 [label=\"Data.GraphViz.Types.State\\ngAtts\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1853 [label=\"Data.GraphViz.Types.State\\nlocation\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1841 -> 1828 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1844 -> 1828 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1853 -> 1828 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_OutputMode {\n\t\tgraph [label=\"Data: OutputMode\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t103 [label=\"Data.GraphViz.Attributes\\nBreadthFirst\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t146 [label=\"Data.GraphViz.Attributes\\nEdgesFirst\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t266 [label=\"Data.GraphViz.Attributes\\nNodesFirst\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Overlap {\n\t\tgraph [label=\"Data: Overlap\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t115 [label=\"Data.GraphViz.Attributes\\nCompressOverlap\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t197 [label=\"Data.GraphViz.Attributes\\nIpsepOverlap\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t204 [label=\"Data.GraphViz.Attributes\\nKeepOverlaps\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t307 [label=\"Data.GraphViz.Attributes\\nPrismOverlap\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t326 [label=\"Data.GraphViz.Attributes\\nRemoveOverlaps\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t338 [label=\"Data.GraphViz.Attributes\\nScaleOverlaps\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t339 [label=\"Data.GraphViz.Attributes\\nScaleXYOverlaps\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t397 [label=\"Data.GraphViz.Attributes\\nVpscOverlap\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Pack {\n\t\tgraph [label=\"Data: Pack\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t135 [label=\"Data.GraphViz.Attributes\\nDoPack\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t136 [label=\"Data.GraphViz.Attributes\\nDontPack\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t286 [label=\"Data.GraphViz.Attributes\\nPackMargin\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_PackMode {\n\t\tgraph [label=\"Data: PackMode\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t283 [label=\"Data.GraphViz.Attributes\\nPackArray\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t284 [label=\"Data.GraphViz.Attributes\\nPackClust\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t285 [label=\"Data.GraphViz.Attributes\\nPackGraph\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t288 [label=\"Data.GraphViz.Attributes\\nPackNode\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_PageDir {\n\t\tgraph [label=\"Data: PageDir\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t95 [label=\"Data.GraphViz.Attributes\\nBl\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t102 [label=\"Data.GraphViz.Attributes\\nBr\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t231 [label=\"Data.GraphViz.Attributes\\nLb\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t238 [label=\"Data.GraphViz.Attributes\\nLt\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t318 [label=\"Data.GraphViz.Attributes\\nRb\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t332 [label=\"Data.GraphViz.Attributes\\nRt\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t378 [label=\"Data.GraphViz.Attributes\\nTl\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t380 [label=\"Data.GraphViz.Attributes\\nTr\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Point {\n\t\tgraph [label=\"Data: Point\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t299 [label=\"Data.GraphViz.Attributes\\nPoint\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t415 [label=\"Data.GraphViz.Attributes\\nforcePos\", style=\"filled,solid\", shape=component, fillcolor=gold];\n\t\t607 [label=\"Data.GraphViz.Attributes\\nxCoord\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t608 [label=\"Data.GraphViz.Attributes\\nyCoord\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t609 [label=\"Data.GraphViz.Attributes\\nzCoord\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t415 -> 299 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t607 -> 299 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t608 -> 299 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t609 -> 299 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_PortName {\n\t\tgraph [label=\"Data: PortName\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1350 [label=\"Data.GraphViz.Attributes.Internal\\nPN\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1363 [label=\"Data.GraphViz.Attributes.Internal\\nportName\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1363 -> 1350 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_PortPos {\n\t\tgraph [label=\"Data: PortPos\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1343 [label=\"Data.GraphViz.Attributes.Internal\\nCompassPoint\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1345 [label=\"Data.GraphViz.Attributes.Internal\\nLabelledPort\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t}\n\tsubgraph cluster_Data_Pos {\n\t\tgraph [label=\"Data: Pos\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t300 [label=\"Data.GraphViz.Attributes\\nPointPos\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t358 [label=\"Data.GraphViz.Attributes\\nSplinePos\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_QuadType {\n\t\tgraph [label=\"Data: QuadType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t151 [label=\"Data.GraphViz.Attributes\\nFastQT\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t260 [label=\"Data.GraphViz.Attributes\\nNoQT\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t268 [label=\"Data.GraphViz.Attributes\\nNormalQT\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_RankDir {\n\t\tgraph [label=\"Data: RankDir\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t169 [label=\"Data.GraphViz.Attributes\\nFromBottom\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t170 [label=\"Data.GraphViz.Attributes\\nFromLeft\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t171 [label=\"Data.GraphViz.Attributes\\nFromRight\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t172 [label=\"Data.GraphViz.Attributes\\nFromTop\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_RankType {\n\t\tgraph [label=\"Data: RankType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t247 [label=\"Data.GraphViz.Attributes\\nMaxRank\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t250 [label=\"Data.GraphViz.Attributes\\nMinRank\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t335 [label=\"Data.GraphViz.Attributes\\nSameRank\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t349 [label=\"Data.GraphViz.Attributes\\nSinkRank\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t355 [label=\"Data.GraphViz.Attributes\\nSourceRank\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Ratios {\n\t\tgraph [label=\"Data: Ratios\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t89 [label=\"Data.GraphViz.Attributes\\nAspectRatio\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t90 [label=\"Data.GraphViz.Attributes\\nAutoRatio\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t116 [label=\"Data.GraphViz.Attributes\\nCompressRatio\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t150 [label=\"Data.GraphViz.Attributes\\nExpandRatio\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t156 [label=\"Data.GraphViz.Attributes\\nFillRatio\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_RecordField {\n\t\tgraph [label=\"Data: RecordField\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t152 [label=\"Data.GraphViz.Attributes\\nFieldLabel\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t161 [label=\"Data.GraphViz.Attributes\\nFlipFields\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t225 [label=\"Data.GraphViz.Attributes\\nLabelledTarget\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t304 [label=\"Data.GraphViz.Attributes\\nPortName\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Rect {\n\t\tgraph [label=\"Data: Rect\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t322 [label=\"Data.GraphViz.Attributes\\nRect\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Root {\n\t\tgraph [label=\"Data: Root\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t198 [label=\"Data.GraphViz.Attributes\\nIsCentral\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t264 [label=\"Data.GraphViz.Attributes\\nNodeName\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t270 [label=\"Data.GraphViz.Attributes\\nNotCentral\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_STStyle {\n\t\tgraph [label=\"Data: STStyle\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t311 [label=\"Data.GraphViz.Attributes\\nRandomStyle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t325 [label=\"Data.GraphViz.Attributes\\nRegularStyle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t341 [label=\"Data.GraphViz.Attributes\\nSelfStyle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_SameAttr {\n\t\tgraph [label=\"Data: SameAttr\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1829 [label=\"Data.GraphViz.Types.State\\nSA\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1845 [label=\"Data.GraphViz.Types.State\\ngetAttr\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1845 -> 1829 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_ScaleType {\n\t\tgraph [label=\"Data: ScaleType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t153 [label=\"Data.GraphViz.Attributes\\nFillBoth\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t155 [label=\"Data.GraphViz.Attributes\\nFillHeight\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t157 [label=\"Data.GraphViz.Attributes\\nFillWidth\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t261 [label=\"Data.GraphViz.Attributes\\nNoScale\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t387 [label=\"Data.GraphViz.Attributes\\nUniformScale\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Shape {\n\t\tgraph [label=\"Data: Shape\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t100 [label=\"Data.GraphViz.Attributes\\nBox3D\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t101 [label=\"Data.GraphViz.Attributes\\nBoxShape\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t106 [label=\"Data.GraphViz.Attributes\\nCircle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t112 [label=\"Data.GraphViz.Attributes\\nComponent\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t129 [label=\"Data.GraphViz.Attributes\\nDiamondShape\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t139 [label=\"Data.GraphViz.Attributes\\nDoubleCircle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t140 [label=\"Data.GraphViz.Attributes\\nDoubleOctagon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t147 [label=\"Data.GraphViz.Attributes\\nEgg\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t148 [label=\"Data.GraphViz.Attributes\\nEllipse\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t162 [label=\"Data.GraphViz.Attributes\\nFolder\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t183 [label=\"Data.GraphViz.Attributes\\nHexagon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t186 [label=\"Data.GraphViz.Attributes\\nHouse\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t192 [label=\"Data.GraphViz.Attributes\\nInvHouse\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t193 [label=\"Data.GraphViz.Attributes\\nInvTrapezium\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t194 [label=\"Data.GraphViz.Attributes\\nInvTriangle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t240 [label=\"Data.GraphViz.Attributes\\nMCircle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t241 [label=\"Data.GraphViz.Attributes\\nMDiamond\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t242 [label=\"Data.GraphViz.Attributes\\nMRecord\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t243 [label=\"Data.GraphViz.Attributes\\nMSquare\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t271 [label=\"Data.GraphViz.Attributes\\nNote\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t274 [label=\"Data.GraphViz.Attributes\\nOctagon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t292 [label=\"Data.GraphViz.Attributes\\nParallelogram\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t295 [label=\"Data.GraphViz.Attributes\\nPentagon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t298 [label=\"Data.GraphViz.Attributes\\nPlainText\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t301 [label=\"Data.GraphViz.Attributes\\nPointShape\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t303 [label=\"Data.GraphViz.Attributes\\nPolygon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t320 [label=\"Data.GraphViz.Attributes\\nRecord\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t343 [label=\"Data.GraphViz.Attributes\\nSeptagon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t369 [label=\"Data.GraphViz.Attributes\\nTab\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t381 [label=\"Data.GraphViz.Attributes\\nTrapezium\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t382 [label=\"Data.GraphViz.Attributes\\nTriangle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t384 [label=\"Data.GraphViz.Attributes\\nTripleOctagon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_SmoothType {\n\t\tgraph [label=\"Data: SmoothType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t91 [label=\"Data.GraphViz.Attributes\\nAvgDist\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t174 [label=\"Data.GraphViz.Attributes\\nGraphDist\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t262 [label=\"Data.GraphViz.Attributes\\nNoSmooth\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t306 [label=\"Data.GraphViz.Attributes\\nPowerDist\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t310 [label=\"Data.GraphViz.Attributes\\nRNG\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t360 [label=\"Data.GraphViz.Attributes\\nSpring\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t383 [label=\"Data.GraphViz.Attributes\\nTriangleSmooth\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Spline {\n\t\tgraph [label=\"Data: Spline\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t356 [label=\"Data.GraphViz.Attributes\\nSpline\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_StartType {\n\t\tgraph [label=\"Data: StartType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t362 [label=\"Data.GraphViz.Attributes\\nStartSeed\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t363 [label=\"Data.GraphViz.Attributes\\nStartStyle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t364 [label=\"Data.GraphViz.Attributes\\nStartStyleSeed\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_StateValue {\n\t\tgraph [label=\"Data: StateValue\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1830 [label=\"Data.GraphViz.Types.State\\nSV\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1851 [label=\"Data.GraphViz.Types.State\\nglobalAttrs\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1852 [label=\"Data.GraphViz.Types.State\\nglobalPath\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1869 [label=\"Data.GraphViz.Types.State\\nuseGlobals\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1870 [label=\"Data.GraphViz.Types.State\\nvalue\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1851 -> 1830 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1852 -> 1830 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1869 -> 1830 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1870 -> 1830 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_StyleItem {\n\t\tgraph [label=\"Data: StyleItem\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t333 [label=\"Data.GraphViz.Attributes\\nSItem\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_StyleName {\n\t\tgraph [label=\"Data: StyleName\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t96 [label=\"Data.GraphViz.Attributes\\nBold\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t120 [label=\"Data.GraphViz.Attributes\\nDD\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t124 [label=\"Data.GraphViz.Attributes\\nDashed\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t127 [label=\"Data.GraphViz.Attributes\\nDiagonals\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t138 [label=\"Data.GraphViz.Attributes\\nDotted\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t158 [label=\"Data.GraphViz.Attributes\\nFilled\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t195 [label=\"Data.GraphViz.Attributes\\nInvisible\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t331 [label=\"Data.GraphViz.Attributes\\nRounded\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t353 [label=\"Data.GraphViz.Attributes\\nSolid\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Test {\n\t\tgraph [label=\"Data: Test\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1490 [label=\"Data.GraphViz.Testing\\nTest\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t\t1493 [label=\"Data.GraphViz.Testing\\ndesc\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t1495 [label=\"Data.GraphViz.Testing\\nlookupName\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t1496 [label=\"Data.GraphViz.Testing\\nname\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t1501 [label=\"Data.GraphViz.Testing\\ntest\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t1493 -> 1490 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1495 -> 1490 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1496 -> 1490 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1501 -> 1490 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_VType {\n\t\tgraph [label=\"Data: VType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t33 [label=\"Data.GraphViz.AttributeGenerator\\nBl\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t\t34 [label=\"Data.GraphViz.AttributeGenerator\\nCust\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t\t35 [label=\"Data.GraphViz.AttributeGenerator\\nDbl\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t\t36 [label=\"Data.GraphViz.AttributeGenerator\\nEStrng\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t\t37 [label=\"Data.GraphViz.AttributeGenerator\\nInteg\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t\t38 [label=\"Data.GraphViz.AttributeGenerator\\nStrng\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t}\n\tsubgraph cluster_Data_VerticalPlacement {\n\t\tgraph [label=\"Data: VerticalPlacement\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t389 [label=\"Data.GraphViz.Attributes\\nVBottom\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t390 [label=\"Data.GraphViz.Attributes\\nVCenter\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t392 [label=\"Data.GraphViz.Attributes\\nVTop\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_ViewPort {\n\t\tgraph [label=\"Data: ViewPort\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t391 [label=\"Data.GraphViz.Attributes\\nVP\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t414 [label=\"Data.GraphViz.Attributes\\nfocus\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t416 [label=\"Data.GraphViz.Attributes\\nhVal\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t606 [label=\"Data.GraphViz.Attributes\\nwVal\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t610 [label=\"Data.GraphViz.Attributes\\nzVal\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t414 -> 391 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t416 -> 391 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t606 -> 391 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t610 -> 391 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_X11Color {\n\t\tgraph [label=\"Data: X11Color\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t612 [label=\"Data.GraphViz.Attributes.Colors\\nAliceBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t613 [label=\"Data.GraphViz.Attributes.Colors\\nAntiqueWhite\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t614 [label=\"Data.GraphViz.Attributes.Colors\\nAntiqueWhite1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t615 [label=\"Data.GraphViz.Attributes.Colors\\nAntiqueWhite2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t616 [label=\"Data.GraphViz.Attributes.Colors\\nAntiqueWhite3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t617 [label=\"Data.GraphViz.Attributes.Colors\\nAntiqueWhite4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t618 [label=\"Data.GraphViz.Attributes.Colors\\nAquamarine\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t619 [label=\"Data.GraphViz.Attributes.Colors\\nAquamarine1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t620 [label=\"Data.GraphViz.Attributes.Colors\\nAquamarine2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t621 [label=\"Data.GraphViz.Attributes.Colors\\nAquamarine3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t622 [label=\"Data.GraphViz.Attributes.Colors\\nAquamarine4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t623 [label=\"Data.GraphViz.Attributes.Colors\\nAzure\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t624 [label=\"Data.GraphViz.Attributes.Colors\\nAzure1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t625 [label=\"Data.GraphViz.Attributes.Colors\\nAzure2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t626 [label=\"Data.GraphViz.Attributes.Colors\\nAzure3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t627 [label=\"Data.GraphViz.Attributes.Colors\\nAzure4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t628 [label=\"Data.GraphViz.Attributes.Colors\\nBeige\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t629 [label=\"Data.GraphViz.Attributes.Colors\\nBisque\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t630 [label=\"Data.GraphViz.Attributes.Colors\\nBisque1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t631 [label=\"Data.GraphViz.Attributes.Colors\\nBisque2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t632 [label=\"Data.GraphViz.Attributes.Colors\\nBisque3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t633 [label=\"Data.GraphViz.Attributes.Colors\\nBisque4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t634 [label=\"Data.GraphViz.Attributes.Colors\\nBlack\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t635 [label=\"Data.GraphViz.Attributes.Colors\\nBlanchedAlmond\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t636 [label=\"Data.GraphViz.Attributes.Colors\\nBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t637 [label=\"Data.GraphViz.Attributes.Colors\\nBlue1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t638 [label=\"Data.GraphViz.Attributes.Colors\\nBlue2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t639 [label=\"Data.GraphViz.Attributes.Colors\\nBlue3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t640 [label=\"Data.GraphViz.Attributes.Colors\\nBlue4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t641 [label=\"Data.GraphViz.Attributes.Colors\\nBlueViolet\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t646 [label=\"Data.GraphViz.Attributes.Colors\\nBrown\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t647 [label=\"Data.GraphViz.Attributes.Colors\\nBrown1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t648 [label=\"Data.GraphViz.Attributes.Colors\\nBrown2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t649 [label=\"Data.GraphViz.Attributes.Colors\\nBrown3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t650 [label=\"Data.GraphViz.Attributes.Colors\\nBrown4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t653 [label=\"Data.GraphViz.Attributes.Colors\\nBurlywood\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t654 [label=\"Data.GraphViz.Attributes.Colors\\nBurlywood1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t655 [label=\"Data.GraphViz.Attributes.Colors\\nBurlywood2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t656 [label=\"Data.GraphViz.Attributes.Colors\\nBurlywood3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t657 [label=\"Data.GraphViz.Attributes.Colors\\nBurlywood4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t658 [label=\"Data.GraphViz.Attributes.Colors\\nCadetBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t659 [label=\"Data.GraphViz.Attributes.Colors\\nCadetBlue1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t660 [label=\"Data.GraphViz.Attributes.Colors\\nCadetBlue2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t661 [label=\"Data.GraphViz.Attributes.Colors\\nCadetBlue3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t662 [label=\"Data.GraphViz.Attributes.Colors\\nCadetBlue4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t663 [label=\"Data.GraphViz.Attributes.Colors\\nChartreuse\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t664 [label=\"Data.GraphViz.Attributes.Colors\\nChartreuse1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t665 [label=\"Data.GraphViz.Attributes.Colors\\nChartreuse2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t666 [label=\"Data.GraphViz.Attributes.Colors\\nChartreuse3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t667 [label=\"Data.GraphViz.Attributes.Colors\\nChartreuse4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t668 [label=\"Data.GraphViz.Attributes.Colors\\nChocolate\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t669 [label=\"Data.GraphViz.Attributes.Colors\\nChocolate1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t670 [label=\"Data.GraphViz.Attributes.Colors\\nChocolate2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t671 [label=\"Data.GraphViz.Attributes.Colors\\nChocolate3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t672 [label=\"Data.GraphViz.Attributes.Colors\\nChocolate4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t673 [label=\"Data.GraphViz.Attributes.Colors\\nCoral\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t674 [label=\"Data.GraphViz.Attributes.Colors\\nCoral1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t675 [label=\"Data.GraphViz.Attributes.Colors\\nCoral2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t676 [label=\"Data.GraphViz.Attributes.Colors\\nCoral3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t677 [label=\"Data.GraphViz.Attributes.Colors\\nCoral4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t678 [label=\"Data.GraphViz.Attributes.Colors\\nCornFlowerBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t679 [label=\"Data.GraphViz.Attributes.Colors\\nCornSilk\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t680 [label=\"Data.GraphViz.Attributes.Colors\\nCornSilk1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t681 [label=\"Data.GraphViz.Attributes.Colors\\nCornSilk2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t682 [label=\"Data.GraphViz.Attributes.Colors\\nCornSilk3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t683 [label=\"Data.GraphViz.Attributes.Colors\\nCornSilk4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t684 [label=\"Data.GraphViz.Attributes.Colors\\nCrimson\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t685 [label=\"Data.GraphViz.Attributes.Colors\\nCyan\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t686 [label=\"Data.GraphViz.Attributes.Colors\\nCyan1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t687 [label=\"Data.GraphViz.Attributes.Colors\\nCyan2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t688 [label=\"Data.GraphViz.Attributes.Colors\\nCyan3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t689 [label=\"Data.GraphViz.Attributes.Colors\\nCyan4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t691 [label=\"Data.GraphViz.Attributes.Colors\\nDarkGoldenrod\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t692 [label=\"Data.GraphViz.Attributes.Colors\\nDarkGoldenrod1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t693 [label=\"Data.GraphViz.Attributes.Colors\\nDarkGoldenrod2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t694 [label=\"Data.GraphViz.Attributes.Colors\\nDarkGoldenrod3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t695 [label=\"Data.GraphViz.Attributes.Colors\\nDarkGoldenrod4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t696 [label=\"Data.GraphViz.Attributes.Colors\\nDarkGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t697 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOliveGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t698 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOliveGreen1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t699 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOliveGreen2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t700 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOliveGreen3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t701 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOliveGreen4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t702 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOrange\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t703 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOrange1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t704 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOrange2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t705 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOrange3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t706 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOrange4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t707 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOrchid\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t708 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOrchid1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t709 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOrchid2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t710 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOrchid3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t711 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOrchid4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t712 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSalmon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t713 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSeaGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t714 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSeaGreen1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t715 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSeaGreen2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t716 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSeaGreen3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t717 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSeaGreen4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t718 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSlateBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t719 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSlateGray\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t720 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSlateGray1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t721 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSlateGray2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t722 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSlateGray3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t723 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSlateGray4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t724 [label=\"Data.GraphViz.Attributes.Colors\\nDarkTurquoise\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t725 [label=\"Data.GraphViz.Attributes.Colors\\nDarkViolet\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t726 [label=\"Data.GraphViz.Attributes.Colors\\nDarkkhaki\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t727 [label=\"Data.GraphViz.Attributes.Colors\\nDeepPink\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t728 [label=\"Data.GraphViz.Attributes.Colors\\nDeepPink1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t729 [label=\"Data.GraphViz.Attributes.Colors\\nDeepPink2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t730 [label=\"Data.GraphViz.Attributes.Colors\\nDeepPink3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t731 [label=\"Data.GraphViz.Attributes.Colors\\nDeepPink4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t732 [label=\"Data.GraphViz.Attributes.Colors\\nDeepSkyBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t733 [label=\"Data.GraphViz.Attributes.Colors\\nDeepSkyBlue1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t734 [label=\"Data.GraphViz.Attributes.Colors\\nDeepSkyBlue2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t735 [label=\"Data.GraphViz.Attributes.Colors\\nDeepSkyBlue3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t736 [label=\"Data.GraphViz.Attributes.Colors\\nDeepSkyBlue4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t737 [label=\"Data.GraphViz.Attributes.Colors\\nDimGray\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t738 [label=\"Data.GraphViz.Attributes.Colors\\nDodgerBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t739 [label=\"Data.GraphViz.Attributes.Colors\\nDodgerBlue1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t740 [label=\"Data.GraphViz.Attributes.Colors\\nDodgerBlue2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t741 [label=\"Data.GraphViz.Attributes.Colors\\nDodgerBlue3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t742 [label=\"Data.GraphViz.Attributes.Colors\\nDodgerBlue4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t743 [label=\"Data.GraphViz.Attributes.Colors\\nFirebrick\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t744 [label=\"Data.GraphViz.Attributes.Colors\\nFirebrick1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t745 [label=\"Data.GraphViz.Attributes.Colors\\nFirebrick2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t746 [label=\"Data.GraphViz.Attributes.Colors\\nFirebrick3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t747 [label=\"Data.GraphViz.Attributes.Colors\\nFirebrick4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t748 [label=\"Data.GraphViz.Attributes.Colors\\nFloralWhite\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t749 [label=\"Data.GraphViz.Attributes.Colors\\nForestGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t750 [label=\"Data.GraphViz.Attributes.Colors\\nGainsboro\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t751 [label=\"Data.GraphViz.Attributes.Colors\\nGhostWhite\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t753 [label=\"Data.GraphViz.Attributes.Colors\\nGold\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t754 [label=\"Data.GraphViz.Attributes.Colors\\nGold1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t755 [label=\"Data.GraphViz.Attributes.Colors\\nGold2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t756 [label=\"Data.GraphViz.Attributes.Colors\\nGold3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t757 [label=\"Data.GraphViz.Attributes.Colors\\nGold4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t758 [label=\"Data.GraphViz.Attributes.Colors\\nGoldenrod\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t759 [label=\"Data.GraphViz.Attributes.Colors\\nGoldenrod1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t760 [label=\"Data.GraphViz.Attributes.Colors\\nGoldenrod2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t761 [label=\"Data.GraphViz.Attributes.Colors\\nGoldenrod3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t762 [label=\"Data.GraphViz.Attributes.Colors\\nGoldenrod4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t763 [label=\"Data.GraphViz.Attributes.Colors\\nGray\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t764 [label=\"Data.GraphViz.Attributes.Colors\\nGray0\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t765 [label=\"Data.GraphViz.Attributes.Colors\\nGray1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t766 [label=\"Data.GraphViz.Attributes.Colors\\nGray10\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t767 [label=\"Data.GraphViz.Attributes.Colors\\nGray100\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t768 [label=\"Data.GraphViz.Attributes.Colors\\nGray11\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t769 [label=\"Data.GraphViz.Attributes.Colors\\nGray12\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t770 [label=\"Data.GraphViz.Attributes.Colors\\nGray13\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t771 [label=\"Data.GraphViz.Attributes.Colors\\nGray14\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t772 [label=\"Data.GraphViz.Attributes.Colors\\nGray15\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t773 [label=\"Data.GraphViz.Attributes.Colors\\nGray16\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t774 [label=\"Data.GraphViz.Attributes.Colors\\nGray17\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t775 [label=\"Data.GraphViz.Attributes.Colors\\nGray18\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t776 [label=\"Data.GraphViz.Attributes.Colors\\nGray19\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t777 [label=\"Data.GraphViz.Attributes.Colors\\nGray2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t778 [label=\"Data.GraphViz.Attributes.Colors\\nGray20\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t779 [label=\"Data.GraphViz.Attributes.Colors\\nGray21\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t780 [label=\"Data.GraphViz.Attributes.Colors\\nGray22\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t781 [label=\"Data.GraphViz.Attributes.Colors\\nGray23\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t782 [label=\"Data.GraphViz.Attributes.Colors\\nGray24\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t783 [label=\"Data.GraphViz.Attributes.Colors\\nGray25\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t784 [label=\"Data.GraphViz.Attributes.Colors\\nGray26\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t785 [label=\"Data.GraphViz.Attributes.Colors\\nGray27\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t786 [label=\"Data.GraphViz.Attributes.Colors\\nGray28\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t787 [label=\"Data.GraphViz.Attributes.Colors\\nGray29\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t788 [label=\"Data.GraphViz.Attributes.Colors\\nGray3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t789 [label=\"Data.GraphViz.Attributes.Colors\\nGray30\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t790 [label=\"Data.GraphViz.Attributes.Colors\\nGray31\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t791 [label=\"Data.GraphViz.Attributes.Colors\\nGray32\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t792 [label=\"Data.GraphViz.Attributes.Colors\\nGray33\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t793 [label=\"Data.GraphViz.Attributes.Colors\\nGray34\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t794 [label=\"Data.GraphViz.Attributes.Colors\\nGray35\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t795 [label=\"Data.GraphViz.Attributes.Colors\\nGray36\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t796 [label=\"Data.GraphViz.Attributes.Colors\\nGray37\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t797 [label=\"Data.GraphViz.Attributes.Colors\\nGray38\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t798 [label=\"Data.GraphViz.Attributes.Colors\\nGray39\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t799 [label=\"Data.GraphViz.Attributes.Colors\\nGray4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t800 [label=\"Data.GraphViz.Attributes.Colors\\nGray40\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t801 [label=\"Data.GraphViz.Attributes.Colors\\nGray41\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t802 [label=\"Data.GraphViz.Attributes.Colors\\nGray42\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t803 [label=\"Data.GraphViz.Attributes.Colors\\nGray43\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t804 [label=\"Data.GraphViz.Attributes.Colors\\nGray44\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t805 [label=\"Data.GraphViz.Attributes.Colors\\nGray45\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t806 [label=\"Data.GraphViz.Attributes.Colors\\nGray46\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t807 [label=\"Data.GraphViz.Attributes.Colors\\nGray47\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t808 [label=\"Data.GraphViz.Attributes.Colors\\nGray48\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t809 [label=\"Data.GraphViz.Attributes.Colors\\nGray49\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t810 [label=\"Data.GraphViz.Attributes.Colors\\nGray5\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t811 [label=\"Data.GraphViz.Attributes.Colors\\nGray50\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t812 [label=\"Data.GraphViz.Attributes.Colors\\nGray51\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t813 [label=\"Data.GraphViz.Attributes.Colors\\nGray52\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t814 [label=\"Data.GraphViz.Attributes.Colors\\nGray53\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t815 [label=\"Data.GraphViz.Attributes.Colors\\nGray54\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t816 [label=\"Data.GraphViz.Attributes.Colors\\nGray55\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t817 [label=\"Data.GraphViz.Attributes.Colors\\nGray56\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t818 [label=\"Data.GraphViz.Attributes.Colors\\nGray57\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t819 [label=\"Data.GraphViz.Attributes.Colors\\nGray58\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t820 [label=\"Data.GraphViz.Attributes.Colors\\nGray59\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t821 [label=\"Data.GraphViz.Attributes.Colors\\nGray6\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t822 [label=\"Data.GraphViz.Attributes.Colors\\nGray60\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t823 [label=\"Data.GraphViz.Attributes.Colors\\nGray61\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t824 [label=\"Data.GraphViz.Attributes.Colors\\nGray62\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t825 [label=\"Data.GraphViz.Attributes.Colors\\nGray63\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t826 [label=\"Data.GraphViz.Attributes.Colors\\nGray64\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t827 [label=\"Data.GraphViz.Attributes.Colors\\nGray65\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t828 [label=\"Data.GraphViz.Attributes.Colors\\nGray66\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t829 [label=\"Data.GraphViz.Attributes.Colors\\nGray67\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t830 [label=\"Data.GraphViz.Attributes.Colors\\nGray68\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t831 [label=\"Data.GraphViz.Attributes.Colors\\nGray69\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t832 [label=\"Data.GraphViz.Attributes.Colors\\nGray7\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t833 [label=\"Data.GraphViz.Attributes.Colors\\nGray70\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t834 [label=\"Data.GraphViz.Attributes.Colors\\nGray71\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t835 [label=\"Data.GraphViz.Attributes.Colors\\nGray72\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t836 [label=\"Data.GraphViz.Attributes.Colors\\nGray73\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t837 [label=\"Data.GraphViz.Attributes.Colors\\nGray74\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t838 [label=\"Data.GraphViz.Attributes.Colors\\nGray75\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t839 [label=\"Data.GraphViz.Attributes.Colors\\nGray76\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t840 [label=\"Data.GraphViz.Attributes.Colors\\nGray77\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t841 [label=\"Data.GraphViz.Attributes.Colors\\nGray78\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t842 [label=\"Data.GraphViz.Attributes.Colors\\nGray79\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t843 [label=\"Data.GraphViz.Attributes.Colors\\nGray8\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t844 [label=\"Data.GraphViz.Attributes.Colors\\nGray80\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t845 [label=\"Data.GraphViz.Attributes.Colors\\nGray81\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t846 [label=\"Data.GraphViz.Attributes.Colors\\nGray82\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t847 [label=\"Data.GraphViz.Attributes.Colors\\nGray83\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t848 [label=\"Data.GraphViz.Attributes.Colors\\nGray84\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t849 [label=\"Data.GraphViz.Attributes.Colors\\nGray85\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t850 [label=\"Data.GraphViz.Attributes.Colors\\nGray86\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t851 [label=\"Data.GraphViz.Attributes.Colors\\nGray87\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t852 [label=\"Data.GraphViz.Attributes.Colors\\nGray88\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t853 [label=\"Data.GraphViz.Attributes.Colors\\nGray89\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t854 [label=\"Data.GraphViz.Attributes.Colors\\nGray9\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t855 [label=\"Data.GraphViz.Attributes.Colors\\nGray90\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t856 [label=\"Data.GraphViz.Attributes.Colors\\nGray91\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t857 [label=\"Data.GraphViz.Attributes.Colors\\nGray92\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t858 [label=\"Data.GraphViz.Attributes.Colors\\nGray93\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t859 [label=\"Data.GraphViz.Attributes.Colors\\nGray94\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t860 [label=\"Data.GraphViz.Attributes.Colors\\nGray95\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t861 [label=\"Data.GraphViz.Attributes.Colors\\nGray96\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t862 [label=\"Data.GraphViz.Attributes.Colors\\nGray97\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t863 [label=\"Data.GraphViz.Attributes.Colors\\nGray98\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t864 [label=\"Data.GraphViz.Attributes.Colors\\nGray99\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t865 [label=\"Data.GraphViz.Attributes.Colors\\nGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t866 [label=\"Data.GraphViz.Attributes.Colors\\nGreen1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t867 [label=\"Data.GraphViz.Attributes.Colors\\nGreen2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t868 [label=\"Data.GraphViz.Attributes.Colors\\nGreen3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t869 [label=\"Data.GraphViz.Attributes.Colors\\nGreen4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t870 [label=\"Data.GraphViz.Attributes.Colors\\nGreenYellow\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t874 [label=\"Data.GraphViz.Attributes.Colors\\nHoneyDew\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t875 [label=\"Data.GraphViz.Attributes.Colors\\nHoneyDew1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t876 [label=\"Data.GraphViz.Attributes.Colors\\nHoneyDew2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t877 [label=\"Data.GraphViz.Attributes.Colors\\nHoneyDew3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t878 [label=\"Data.GraphViz.Attributes.Colors\\nHoneyDew4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t879 [label=\"Data.GraphViz.Attributes.Colors\\nHotPink\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t880 [label=\"Data.GraphViz.Attributes.Colors\\nHotPink1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t881 [label=\"Data.GraphViz.Attributes.Colors\\nHotPink2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t882 [label=\"Data.GraphViz.Attributes.Colors\\nHotPink3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t883 [label=\"Data.GraphViz.Attributes.Colors\\nHotPink4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t884 [label=\"Data.GraphViz.Attributes.Colors\\nIndianRed\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t885 [label=\"Data.GraphViz.Attributes.Colors\\nIndianRed1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t886 [label=\"Data.GraphViz.Attributes.Colors\\nIndianRed2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t887 [label=\"Data.GraphViz.Attributes.Colors\\nIndianRed3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t888 [label=\"Data.GraphViz.Attributes.Colors\\nIndianRed4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t889 [label=\"Data.GraphViz.Attributes.Colors\\nIndigo\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t890 [label=\"Data.GraphViz.Attributes.Colors\\nIvory\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t891 [label=\"Data.GraphViz.Attributes.Colors\\nIvory1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t892 [label=\"Data.GraphViz.Attributes.Colors\\nIvory2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t893 [label=\"Data.GraphViz.Attributes.Colors\\nIvory3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t894 [label=\"Data.GraphViz.Attributes.Colors\\nIvory4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t895 [label=\"Data.GraphViz.Attributes.Colors\\nKhaki\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t896 [label=\"Data.GraphViz.Attributes.Colors\\nKhaki1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t897 [label=\"Data.GraphViz.Attributes.Colors\\nKhaki2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t898 [label=\"Data.GraphViz.Attributes.Colors\\nKhaki3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t899 [label=\"Data.GraphViz.Attributes.Colors\\nKhaki4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t900 [label=\"Data.GraphViz.Attributes.Colors\\nLavender\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t901 [label=\"Data.GraphViz.Attributes.Colors\\nLavenderBlush\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t902 [label=\"Data.GraphViz.Attributes.Colors\\nLavenderBlush1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t903 [label=\"Data.GraphViz.Attributes.Colors\\nLavenderBlush2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t904 [label=\"Data.GraphViz.Attributes.Colors\\nLavenderBlush3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t905 [label=\"Data.GraphViz.Attributes.Colors\\nLavenderBlush4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t906 [label=\"Data.GraphViz.Attributes.Colors\\nLawnGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t907 [label=\"Data.GraphViz.Attributes.Colors\\nLemonChiffon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t908 [label=\"Data.GraphViz.Attributes.Colors\\nLemonChiffon1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t909 [label=\"Data.GraphViz.Attributes.Colors\\nLemonChiffon2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t910 [label=\"Data.GraphViz.Attributes.Colors\\nLemonChiffon3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t911 [label=\"Data.GraphViz.Attributes.Colors\\nLemonChiffon4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t912 [label=\"Data.GraphViz.Attributes.Colors\\nLightBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t913 [label=\"Data.GraphViz.Attributes.Colors\\nLightBlue1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t914 [label=\"Data.GraphViz.Attributes.Colors\\nLightBlue2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t915 [label=\"Data.GraphViz.Attributes.Colors\\nLightBlue3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t916 [label=\"Data.GraphViz.Attributes.Colors\\nLightBlue4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t917 [label=\"Data.GraphViz.Attributes.Colors\\nLightCoral\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t918 [label=\"Data.GraphViz.Attributes.Colors\\nLightCyan\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t919 [label=\"Data.GraphViz.Attributes.Colors\\nLightCyan1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t920 [label=\"Data.GraphViz.Attributes.Colors\\nLightCyan2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t921 [label=\"Data.GraphViz.Attributes.Colors\\nLightCyan3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t922 [label=\"Data.GraphViz.Attributes.Colors\\nLightCyan4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t923 [label=\"Data.GraphViz.Attributes.Colors\\nLightGoldenrod\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t924 [label=\"Data.GraphViz.Attributes.Colors\\nLightGoldenrod1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t925 [label=\"Data.GraphViz.Attributes.Colors\\nLightGoldenrod2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t926 [label=\"Data.GraphViz.Attributes.Colors\\nLightGoldenrod3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t927 [label=\"Data.GraphViz.Attributes.Colors\\nLightGoldenrod4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t928 [label=\"Data.GraphViz.Attributes.Colors\\nLightGoldenrodYellow\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t929 [label=\"Data.GraphViz.Attributes.Colors\\nLightGray\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t930 [label=\"Data.GraphViz.Attributes.Colors\\nLightPink\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t931 [label=\"Data.GraphViz.Attributes.Colors\\nLightPink1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t932 [label=\"Data.GraphViz.Attributes.Colors\\nLightPink2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t933 [label=\"Data.GraphViz.Attributes.Colors\\nLightPink3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t934 [label=\"Data.GraphViz.Attributes.Colors\\nLightPink4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t935 [label=\"Data.GraphViz.Attributes.Colors\\nLightSalmon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t936 [label=\"Data.GraphViz.Attributes.Colors\\nLightSalmon1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t937 [label=\"Data.GraphViz.Attributes.Colors\\nLightSalmon2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t938 [label=\"Data.GraphViz.Attributes.Colors\\nLightSalmon3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t939 [label=\"Data.GraphViz.Attributes.Colors\\nLightSalmon4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t940 [label=\"Data.GraphViz.Attributes.Colors\\nLightSeaGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t941 [label=\"Data.GraphViz.Attributes.Colors\\nLightSkyBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t942 [label=\"Data.GraphViz.Attributes.Colors\\nLightSkyBlue1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t943 [label=\"Data.GraphViz.Attributes.Colors\\nLightSkyBlue2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t944 [label=\"Data.GraphViz.Attributes.Colors\\nLightSkyBlue3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t945 [label=\"Data.GraphViz.Attributes.Colors\\nLightSkyBlue4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t946 [label=\"Data.GraphViz.Attributes.Colors\\nLightSlateBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t947 [label=\"Data.GraphViz.Attributes.Colors\\nLightSlateGray\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t948 [label=\"Data.GraphViz.Attributes.Colors\\nLightSteelBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t949 [label=\"Data.GraphViz.Attributes.Colors\\nLightSteelBlue1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t950 [label=\"Data.GraphViz.Attributes.Colors\\nLightSteelBlue2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t951 [label=\"Data.GraphViz.Attributes.Colors\\nLightSteelBlue3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t952 [label=\"Data.GraphViz.Attributes.Colors\\nLightSteelBlue4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t953 [label=\"Data.GraphViz.Attributes.Colors\\nLightYellow\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t954 [label=\"Data.GraphViz.Attributes.Colors\\nLightYellow1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t955 [label=\"Data.GraphViz.Attributes.Colors\\nLightYellow2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t956 [label=\"Data.GraphViz.Attributes.Colors\\nLightYellow3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t957 [label=\"Data.GraphViz.Attributes.Colors\\nLightYellow4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t958 [label=\"Data.GraphViz.Attributes.Colors\\nLimeGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t959 [label=\"Data.GraphViz.Attributes.Colors\\nLinen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t960 [label=\"Data.GraphViz.Attributes.Colors\\nMagenta\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t961 [label=\"Data.GraphViz.Attributes.Colors\\nMagenta1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t962 [label=\"Data.GraphViz.Attributes.Colors\\nMagenta2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t963 [label=\"Data.GraphViz.Attributes.Colors\\nMagenta3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t964 [label=\"Data.GraphViz.Attributes.Colors\\nMagenta4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t965 [label=\"Data.GraphViz.Attributes.Colors\\nMaroon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t966 [label=\"Data.GraphViz.Attributes.Colors\\nMaroon1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t967 [label=\"Data.GraphViz.Attributes.Colors\\nMaroon2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t968 [label=\"Data.GraphViz.Attributes.Colors\\nMaroon3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t969 [label=\"Data.GraphViz.Attributes.Colors\\nMaroon4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t970 [label=\"Data.GraphViz.Attributes.Colors\\nMediumAquamarine\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t971 [label=\"Data.GraphViz.Attributes.Colors\\nMediumBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t972 [label=\"Data.GraphViz.Attributes.Colors\\nMediumOrchid\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t973 [label=\"Data.GraphViz.Attributes.Colors\\nMediumOrchid1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t974 [label=\"Data.GraphViz.Attributes.Colors\\nMediumOrchid2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t975 [label=\"Data.GraphViz.Attributes.Colors\\nMediumOrchid3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t976 [label=\"Data.GraphViz.Attributes.Colors\\nMediumOrchid4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t977 [label=\"Data.GraphViz.Attributes.Colors\\nMediumPurple\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t978 [label=\"Data.GraphViz.Attributes.Colors\\nMediumPurple1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t979 [label=\"Data.GraphViz.Attributes.Colors\\nMediumPurple2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t980 [label=\"Data.GraphViz.Attributes.Colors\\nMediumPurple3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t981 [label=\"Data.GraphViz.Attributes.Colors\\nMediumPurple4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t982 [label=\"Data.GraphViz.Attributes.Colors\\nMediumSeaGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t983 [label=\"Data.GraphViz.Attributes.Colors\\nMediumSlateBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t984 [label=\"Data.GraphViz.Attributes.Colors\\nMediumSpringGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t985 [label=\"Data.GraphViz.Attributes.Colors\\nMediumTurquoise\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t986 [label=\"Data.GraphViz.Attributes.Colors\\nMediumVioletRed\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t987 [label=\"Data.GraphViz.Attributes.Colors\\nMidnightBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t988 [label=\"Data.GraphViz.Attributes.Colors\\nMintCream\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t989 [label=\"Data.GraphViz.Attributes.Colors\\nMistyRose\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t990 [label=\"Data.GraphViz.Attributes.Colors\\nMistyRose1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t991 [label=\"Data.GraphViz.Attributes.Colors\\nMistyRose2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t992 [label=\"Data.GraphViz.Attributes.Colors\\nMistyRose3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t993 [label=\"Data.GraphViz.Attributes.Colors\\nMistyRose4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t994 [label=\"Data.GraphViz.Attributes.Colors\\nMoccasin\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t995 [label=\"Data.GraphViz.Attributes.Colors\\nNavajoWhite\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t996 [label=\"Data.GraphViz.Attributes.Colors\\nNavajoWhite1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t997 [label=\"Data.GraphViz.Attributes.Colors\\nNavajoWhite2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t998 [label=\"Data.GraphViz.Attributes.Colors\\nNavajoWhite3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t999 [label=\"Data.GraphViz.Attributes.Colors\\nNavajoWhite4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1000 [label=\"Data.GraphViz.Attributes.Colors\\nNavy\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1001 [label=\"Data.GraphViz.Attributes.Colors\\nNavyBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1002 [label=\"Data.GraphViz.Attributes.Colors\\nOldLace\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1003 [label=\"Data.GraphViz.Attributes.Colors\\nOliveDrab\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1004 [label=\"Data.GraphViz.Attributes.Colors\\nOliveDrab1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1005 [label=\"Data.GraphViz.Attributes.Colors\\nOliveDrab2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1006 [label=\"Data.GraphViz.Attributes.Colors\\nOliveDrab3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1007 [label=\"Data.GraphViz.Attributes.Colors\\nOliveDrab4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1008 [label=\"Data.GraphViz.Attributes.Colors\\nOrange\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1009 [label=\"Data.GraphViz.Attributes.Colors\\nOrange1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1010 [label=\"Data.GraphViz.Attributes.Colors\\nOrange2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1011 [label=\"Data.GraphViz.Attributes.Colors\\nOrange3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1012 [label=\"Data.GraphViz.Attributes.Colors\\nOrange4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1013 [label=\"Data.GraphViz.Attributes.Colors\\nOrangeRed\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1014 [label=\"Data.GraphViz.Attributes.Colors\\nOrangeRed1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1015 [label=\"Data.GraphViz.Attributes.Colors\\nOrangeRed2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1016 [label=\"Data.GraphViz.Attributes.Colors\\nOrangeRed3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1017 [label=\"Data.GraphViz.Attributes.Colors\\nOrangeRed4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1019 [label=\"Data.GraphViz.Attributes.Colors\\nOrchid\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1020 [label=\"Data.GraphViz.Attributes.Colors\\nOrchid1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1021 [label=\"Data.GraphViz.Attributes.Colors\\nOrchid2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1022 [label=\"Data.GraphViz.Attributes.Colors\\nOrchid3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1023 [label=\"Data.GraphViz.Attributes.Colors\\nOrchid4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1026 [label=\"Data.GraphViz.Attributes.Colors\\nPaleGoldenrod\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1027 [label=\"Data.GraphViz.Attributes.Colors\\nPaleGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1028 [label=\"Data.GraphViz.Attributes.Colors\\nPaleGreen1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1029 [label=\"Data.GraphViz.Attributes.Colors\\nPaleGreen2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1030 [label=\"Data.GraphViz.Attributes.Colors\\nPaleGreen3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1031 [label=\"Data.GraphViz.Attributes.Colors\\nPaleGreen4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1032 [label=\"Data.GraphViz.Attributes.Colors\\nPaleTurquoise\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1033 [label=\"Data.GraphViz.Attributes.Colors\\nPaleTurquoise1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1034 [label=\"Data.GraphViz.Attributes.Colors\\nPaleTurquoise2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1035 [label=\"Data.GraphViz.Attributes.Colors\\nPaleTurquoise3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1036 [label=\"Data.GraphViz.Attributes.Colors\\nPaleTurquoise4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1037 [label=\"Data.GraphViz.Attributes.Colors\\nPaleVioletRed\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1038 [label=\"Data.GraphViz.Attributes.Colors\\nPaleVioletRed1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1039 [label=\"Data.GraphViz.Attributes.Colors\\nPaleVioletRed2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1040 [label=\"Data.GraphViz.Attributes.Colors\\nPaleVioletRed3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1041 [label=\"Data.GraphViz.Attributes.Colors\\nPaleVioletRed4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1042 [label=\"Data.GraphViz.Attributes.Colors\\nPapayaWhip\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1045 [label=\"Data.GraphViz.Attributes.Colors\\nPeachPuff\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1046 [label=\"Data.GraphViz.Attributes.Colors\\nPeachPuff1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1047 [label=\"Data.GraphViz.Attributes.Colors\\nPeachPuff2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1048 [label=\"Data.GraphViz.Attributes.Colors\\nPeachPuff3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1049 [label=\"Data.GraphViz.Attributes.Colors\\nPeachPuff4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1050 [label=\"Data.GraphViz.Attributes.Colors\\nPeru\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1051 [label=\"Data.GraphViz.Attributes.Colors\\nPink\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1052 [label=\"Data.GraphViz.Attributes.Colors\\nPink1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1053 [label=\"Data.GraphViz.Attributes.Colors\\nPink2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1054 [label=\"Data.GraphViz.Attributes.Colors\\nPink3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1055 [label=\"Data.GraphViz.Attributes.Colors\\nPink4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1057 [label=\"Data.GraphViz.Attributes.Colors\\nPlum\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1058 [label=\"Data.GraphViz.Attributes.Colors\\nPlum1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1059 [label=\"Data.GraphViz.Attributes.Colors\\nPlum2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1060 [label=\"Data.GraphViz.Attributes.Colors\\nPlum3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1061 [label=\"Data.GraphViz.Attributes.Colors\\nPlum4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1062 [label=\"Data.GraphViz.Attributes.Colors\\nPowderBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1068 [label=\"Data.GraphViz.Attributes.Colors\\nPurple\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1069 [label=\"Data.GraphViz.Attributes.Colors\\nPurple1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1070 [label=\"Data.GraphViz.Attributes.Colors\\nPurple2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1071 [label=\"Data.GraphViz.Attributes.Colors\\nPurple3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1072 [label=\"Data.GraphViz.Attributes.Colors\\nPurple4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1081 [label=\"Data.GraphViz.Attributes.Colors\\nRed\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1082 [label=\"Data.GraphViz.Attributes.Colors\\nRed1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1083 [label=\"Data.GraphViz.Attributes.Colors\\nRed2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1084 [label=\"Data.GraphViz.Attributes.Colors\\nRed3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1085 [label=\"Data.GraphViz.Attributes.Colors\\nRed4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1087 [label=\"Data.GraphViz.Attributes.Colors\\nRosyBrown\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1088 [label=\"Data.GraphViz.Attributes.Colors\\nRosyBrown1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1089 [label=\"Data.GraphViz.Attributes.Colors\\nRosyBrown2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1090 [label=\"Data.GraphViz.Attributes.Colors\\nRosyBrown3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1091 [label=\"Data.GraphViz.Attributes.Colors\\nRosyBrown4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1092 [label=\"Data.GraphViz.Attributes.Colors\\nRoyalBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1093 [label=\"Data.GraphViz.Attributes.Colors\\nRoyalBlue1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1094 [label=\"Data.GraphViz.Attributes.Colors\\nRoyalBlue2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1095 [label=\"Data.GraphViz.Attributes.Colors\\nRoyalBlue3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1096 [label=\"Data.GraphViz.Attributes.Colors\\nRoyalBlue4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1097 [label=\"Data.GraphViz.Attributes.Colors\\nSaddleBrown\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1098 [label=\"Data.GraphViz.Attributes.Colors\\nSalmon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1099 [label=\"Data.GraphViz.Attributes.Colors\\nSalmon1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1100 [label=\"Data.GraphViz.Attributes.Colors\\nSalmon2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1101 [label=\"Data.GraphViz.Attributes.Colors\\nSalmon3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1102 [label=\"Data.GraphViz.Attributes.Colors\\nSalmon4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1103 [label=\"Data.GraphViz.Attributes.Colors\\nSandyBrown\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1104 [label=\"Data.GraphViz.Attributes.Colors\\nSeaGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1105 [label=\"Data.GraphViz.Attributes.Colors\\nSeaGreen1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1106 [label=\"Data.GraphViz.Attributes.Colors\\nSeaGreen2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1107 [label=\"Data.GraphViz.Attributes.Colors\\nSeaGreen3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1108 [label=\"Data.GraphViz.Attributes.Colors\\nSeaGreen4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1109 [label=\"Data.GraphViz.Attributes.Colors\\nSeaShell\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1110 [label=\"Data.GraphViz.Attributes.Colors\\nSeaShell1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1111 [label=\"Data.GraphViz.Attributes.Colors\\nSeaShell2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1112 [label=\"Data.GraphViz.Attributes.Colors\\nSeaShell3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1113 [label=\"Data.GraphViz.Attributes.Colors\\nSeaShell4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1117 [label=\"Data.GraphViz.Attributes.Colors\\nSienna\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1118 [label=\"Data.GraphViz.Attributes.Colors\\nSienna1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1119 [label=\"Data.GraphViz.Attributes.Colors\\nSienna2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1120 [label=\"Data.GraphViz.Attributes.Colors\\nSienna3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1121 [label=\"Data.GraphViz.Attributes.Colors\\nSienna4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1122 [label=\"Data.GraphViz.Attributes.Colors\\nSkyBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1123 [label=\"Data.GraphViz.Attributes.Colors\\nSkyBlue1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1124 [label=\"Data.GraphViz.Attributes.Colors\\nSkyBlue2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1125 [label=\"Data.GraphViz.Attributes.Colors\\nSkyBlue3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1126 [label=\"Data.GraphViz.Attributes.Colors\\nSkyBlue4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1127 [label=\"Data.GraphViz.Attributes.Colors\\nSlateBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1128 [label=\"Data.GraphViz.Attributes.Colors\\nSlateBlue1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1129 [label=\"Data.GraphViz.Attributes.Colors\\nSlateBlue2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1130 [label=\"Data.GraphViz.Attributes.Colors\\nSlateBlue3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1131 [label=\"Data.GraphViz.Attributes.Colors\\nSlateBlue4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1132 [label=\"Data.GraphViz.Attributes.Colors\\nSlateGray\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1133 [label=\"Data.GraphViz.Attributes.Colors\\nSlateGray1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1134 [label=\"Data.GraphViz.Attributes.Colors\\nSlateGray2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1135 [label=\"Data.GraphViz.Attributes.Colors\\nSlateGray3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1136 [label=\"Data.GraphViz.Attributes.Colors\\nSlateGray4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1137 [label=\"Data.GraphViz.Attributes.Colors\\nSnow\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1138 [label=\"Data.GraphViz.Attributes.Colors\\nSnow1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1139 [label=\"Data.GraphViz.Attributes.Colors\\nSnow2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1140 [label=\"Data.GraphViz.Attributes.Colors\\nSnow3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1141 [label=\"Data.GraphViz.Attributes.Colors\\nSnow4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1143 [label=\"Data.GraphViz.Attributes.Colors\\nSpringGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1144 [label=\"Data.GraphViz.Attributes.Colors\\nSpringGreen1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1145 [label=\"Data.GraphViz.Attributes.Colors\\nSpringGreen2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1146 [label=\"Data.GraphViz.Attributes.Colors\\nSpringGreen3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1147 [label=\"Data.GraphViz.Attributes.Colors\\nSpringGreen4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1148 [label=\"Data.GraphViz.Attributes.Colors\\nSteelBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1149 [label=\"Data.GraphViz.Attributes.Colors\\nSteelBlue1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1150 [label=\"Data.GraphViz.Attributes.Colors\\nSteelBlue2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1151 [label=\"Data.GraphViz.Attributes.Colors\\nSteelBlue3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1152 [label=\"Data.GraphViz.Attributes.Colors\\nSteelBlue4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1153 [label=\"Data.GraphViz.Attributes.Colors\\nTan\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1154 [label=\"Data.GraphViz.Attributes.Colors\\nTan1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1155 [label=\"Data.GraphViz.Attributes.Colors\\nTan2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1156 [label=\"Data.GraphViz.Attributes.Colors\\nTan3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1157 [label=\"Data.GraphViz.Attributes.Colors\\nTan4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1158 [label=\"Data.GraphViz.Attributes.Colors\\nThistle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1159 [label=\"Data.GraphViz.Attributes.Colors\\nThistle1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1160 [label=\"Data.GraphViz.Attributes.Colors\\nThistle2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1161 [label=\"Data.GraphViz.Attributes.Colors\\nThistle3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1162 [label=\"Data.GraphViz.Attributes.Colors\\nThistle4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1163 [label=\"Data.GraphViz.Attributes.Colors\\nTomato\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1164 [label=\"Data.GraphViz.Attributes.Colors\\nTomato1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1165 [label=\"Data.GraphViz.Attributes.Colors\\nTomato2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1166 [label=\"Data.GraphViz.Attributes.Colors\\nTomato3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1167 [label=\"Data.GraphViz.Attributes.Colors\\nTomato4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1168 [label=\"Data.GraphViz.Attributes.Colors\\nTransparent\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1169 [label=\"Data.GraphViz.Attributes.Colors\\nTurquoise\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1170 [label=\"Data.GraphViz.Attributes.Colors\\nTurquoise1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1171 [label=\"Data.GraphViz.Attributes.Colors\\nTurquoise2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1172 [label=\"Data.GraphViz.Attributes.Colors\\nTurquoise3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1173 [label=\"Data.GraphViz.Attributes.Colors\\nTurquoise4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1174 [label=\"Data.GraphViz.Attributes.Colors\\nViolet\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1175 [label=\"Data.GraphViz.Attributes.Colors\\nVioletRed\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1176 [label=\"Data.GraphViz.Attributes.Colors\\nVioletRed1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1177 [label=\"Data.GraphViz.Attributes.Colors\\nVioletRed2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1178 [label=\"Data.GraphViz.Attributes.Colors\\nVioletRed3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1179 [label=\"Data.GraphViz.Attributes.Colors\\nVioletRed4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1180 [label=\"Data.GraphViz.Attributes.Colors\\nWheat\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1181 [label=\"Data.GraphViz.Attributes.Colors\\nWheat1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1182 [label=\"Data.GraphViz.Attributes.Colors\\nWheat2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1183 [label=\"Data.GraphViz.Attributes.Colors\\nWheat3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1184 [label=\"Data.GraphViz.Attributes.Colors\\nWheat4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1185 [label=\"Data.GraphViz.Attributes.Colors\\nWhite\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1186 [label=\"Data.GraphViz.Attributes.Colors\\nWhiteSmoke\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1189 [label=\"Data.GraphViz.Attributes.Colors\\nYellow\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1190 [label=\"Data.GraphViz.Attributes.Colors\\nYellow1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1191 [label=\"Data.GraphViz.Attributes.Colors\\nYellow2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1192 [label=\"Data.GraphViz.Attributes.Colors\\nYellow3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1193 [label=\"Data.GraphViz.Attributes.Colors\\nYellow4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1194 [label=\"Data.GraphViz.Attributes.Colors\\nYellowGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\t3 [label=\"Data.GraphViz\\naddEdgeIDs\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t4 [label=\"Data.GraphViz\\naugmentGraph\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t5 [label=\"Data.GraphViz\\nblankParams\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t6 [label=\"Data.GraphViz\\ncanonicalise\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t9 [label=\"Data.GraphViz\\ndefaultParams\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t10 [label=\"Data.GraphViz\\ndotAttributes\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t11 [label=\"Data.GraphViz\\ndotToGraph\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t12 [label=\"Data.GraphViz\\ndotizeGraph\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t18 [label=\"Data.GraphViz\\nfromDotResult\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t20 [label=\"Data.GraphViz\\ngraphToDot\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t21 [label=\"Data.GraphViz\\ngraphToGraph\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t23 [label=\"Data.GraphViz\\nisUndirected\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t24 [label=\"Data.GraphViz\\nnonClusteredParams\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t25 [label=\"Data.GraphViz\\nprettyPrint\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t26 [label=\"Data.GraphViz\\nprettyPrint'\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t27 [label=\"Data.GraphViz\\npreview\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t28 [label=\"Data.GraphViz\\nsetDirectedness\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t29 [label=\"Data.GraphViz\\nsetEdgeComment\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t30 [label=\"Data.GraphViz\\nstripID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t39 [label=\"Data.GraphViz.AttributeGenerator\\narbitraryFor\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t40 [label=\"Data.GraphViz.AttributeGenerator\\narbitraryFor'\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t41 [label=\"Data.GraphViz.AttributeGenerator\\narbitraryInstance\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t42 [label=\"Data.GraphViz.AttributeGenerator\\nasRows\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t43 [label=\"Data.GraphViz.AttributeGenerator\\nattributes\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t44 [label=\"Data.GraphViz.AttributeGenerator\\nattrs\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t45 [label=\"Data.GraphViz.AttributeGenerator\\nattrs'\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t47 [label=\"Data.GraphViz.AttributeGenerator\\nbool\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t50 [label=\"Data.GraphViz.AttributeGenerator\\ncreateAlias\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t51 [label=\"Data.GraphViz.AttributeGenerator\\ncreateDefn\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t52 [label=\"Data.GraphViz.AttributeGenerator\\ndocLen\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t53 [label=\"Data.GraphViz.AttributeGenerator\\ndocList\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t54 [label=\"Data.GraphViz.AttributeGenerator\\ndollar\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t55 [label=\"Data.GraphViz.AttributeGenerator\\ndot\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t56 [label=\"Data.GraphViz.AttributeGenerator\\nfirstOthers\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t62 [label=\"Data.GraphViz.AttributeGenerator\\ngenArbitrary\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t63 [label=\"Data.GraphViz.AttributeGenerator\\ngenCode\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t64 [label=\"Data.GraphViz.AttributeGenerator\\nmain\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t65 [label=\"Data.GraphViz.AttributeGenerator\\nmakeAttr\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t68 [label=\"Data.GraphViz.AttributeGenerator\\nparseInstance\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t70 [label=\"Data.GraphViz.AttributeGenerator\\nsameAttributeFunc\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t71 [label=\"Data.GraphViz.AttributeGenerator\\nshowInstance\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t72 [label=\"Data.GraphViz.AttributeGenerator\\nshrinkFor\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t73 [label=\"Data.GraphViz.AttributeGenerator\\ntab\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t75 [label=\"Data.GraphViz.AttributeGenerator\\nunknownAttr\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t76 [label=\"Data.GraphViz.AttributeGenerator\\nusedByFunc\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t78 [label=\"Data.GraphViz.AttributeGenerator\\nvsep\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t79 [label=\"Data.GraphViz.AttributeGenerator\\nvtype\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t80 [label=\"Data.GraphViz.AttributeGenerator\\nvtypeCode\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t81 [label=\"Data.GraphViz.AttributeGenerator\\nwrap\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t404 [label=\"Data.GraphViz.Attributes\\nbox\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t405 [label=\"Data.GraphViz.Attributes\\ncheckDD\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t406 [label=\"Data.GraphViz.Attributes\\ncheckLayerName\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t407 [label=\"Data.GraphViz.Attributes\\ncreatePoint\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t408 [label=\"Data.GraphViz.Attributes\\ncrow\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t409 [label=\"Data.GraphViz.Attributes\\ndefLayerSep\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t410 [label=\"Data.GraphViz.Attributes\\ndiamond\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t411 [label=\"Data.GraphViz.Attributes\\ndotArrow\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t412 [label=\"Data.GraphViz.Attributes\\neDiamond\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t413 [label=\"Data.GraphViz.Attributes\\nemptyArr\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t417 [label=\"Data.GraphViz.Attributes\\nhalfOpen\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t418 [label=\"Data.GraphViz.Attributes\\ninv\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t419 [label=\"Data.GraphViz.Attributes\\ninvDot\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t420 [label=\"Data.GraphViz.Attributes\\ninvEmpty\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t421 [label=\"Data.GraphViz.Attributes\\ninvODot\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t428 [label=\"Data.GraphViz.Attributes\\nnoArrow\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t429 [label=\"Data.GraphViz.Attributes\\nnoMods\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t430 [label=\"Data.GraphViz.Attributes\\nnormal\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t431 [label=\"Data.GraphViz.Attributes\\nnotLayerSep\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t432 [label=\"Data.GraphViz.Attributes\\noBox\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t433 [label=\"Data.GraphViz.Attributes\\noDiamond\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t434 [label=\"Data.GraphViz.Attributes\\noDot\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t435 [label=\"Data.GraphViz.Attributes\\nopenArr\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t436 [label=\"Data.GraphViz.Attributes\\nopenMod\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t457 [label=\"Data.GraphViz.Attributes\\nparseArgs\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t458 [label=\"Data.GraphViz.Attributes\\nparseLayerName\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t459 [label=\"Data.GraphViz.Attributes\\nparseLayerName'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t460 [label=\"Data.GraphViz.Attributes\\nparseLayerSep\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t464 [label=\"Data.GraphViz.Attributes\\nparsePoint2D\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t465 [label=\"Data.GraphViz.Attributes\\nparseRecord\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t466 [label=\"Data.GraphViz.Attributes\\nparseStyleName\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t515 [label=\"Data.GraphViz.Attributes\\nprintPortName\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t516 [label=\"Data.GraphViz.Attributes\\nrecordEscChars\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t517 [label=\"Data.GraphViz.Attributes\\nsameAttribute\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t518 [label=\"Data.GraphViz.Attributes\\nspecialArrowParse\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t519 [label=\"Data.GraphViz.Attributes\\ntee\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t599 [label=\"Data.GraphViz.Attributes\\nunqtRecordString\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t600 [label=\"Data.GraphViz.Attributes\\nusedByClusters\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t601 [label=\"Data.GraphViz.Attributes\\nusedByEdges\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t602 [label=\"Data.GraphViz.Attributes\\nusedByGraphs\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t603 [label=\"Data.GraphViz.Attributes\\nusedByNodes\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t604 [label=\"Data.GraphViz.Attributes\\nusedBySubGraphs\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t605 [label=\"Data.GraphViz.Attributes\\nvee\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1201 [label=\"Data.GraphViz.Attributes.Colors\\nfromAColour\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1202 [label=\"Data.GraphViz.Attributes.Colors\\nfromColour\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1204 [label=\"Data.GraphViz.Attributes.Colors\\nhexColor\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1207 [label=\"Data.GraphViz.Attributes.Colors\\nmaxWord\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1217 [label=\"Data.GraphViz.Attributes.Colors\\ntoColour\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1219 [label=\"Data.GraphViz.Attributes.Colors\\ntoOpacity\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1226 [label=\"Data.GraphViz.Attributes.Colors\\nword8Doc\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1227 [label=\"Data.GraphViz.Attributes.Colors\\nx11Colour\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1272 [label=\"Data.GraphViz.Attributes.HTML\\nescapeAttribute\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1273 [label=\"Data.GraphViz.Attributes.HTML\\nescapeHtml\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1274 [label=\"Data.GraphViz.Attributes.HTML\\nescapeValue\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1275 [label=\"Data.GraphViz.Attributes.HTML\\nhtmlEscapes\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1276 [label=\"Data.GraphViz.Attributes.HTML\\nhtmlUnescapes\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1291 [label=\"Data.GraphViz.Attributes.HTML\\nparseBoolHtml\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1292 [label=\"Data.GraphViz.Attributes.HTML\\nparseHtmlEmptyTag\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1293 [label=\"Data.GraphViz.Attributes.HTML\\nparseHtmlField\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1294 [label=\"Data.GraphViz.Attributes.HTML\\nparseHtmlField'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1295 [label=\"Data.GraphViz.Attributes.HTML\\nparseHtmlFontTag\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1296 [label=\"Data.GraphViz.Attributes.HTML\\nparseHtmlTag\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1315 [label=\"Data.GraphViz.Attributes.HTML\\nprintBoolHtml\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1316 [label=\"Data.GraphViz.Attributes.HTML\\nprintCell\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1317 [label=\"Data.GraphViz.Attributes.HTML\\nprintHtmlEmptyTag\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1318 [label=\"Data.GraphViz.Attributes.HTML\\nprintHtmlField\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1319 [label=\"Data.GraphViz.Attributes.HTML\\nprintHtmlField'\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1320 [label=\"Data.GraphViz.Attributes.HTML\\nprintHtmlFontTag\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1321 [label=\"Data.GraphViz.Attributes.HTML\\nprintHtmlTag\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1325 [label=\"Data.GraphViz.Attributes.HTML\\nunescapeAttribute\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1326 [label=\"Data.GraphViz.Attributes.HTML\\nunescapeHtml\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1327 [label=\"Data.GraphViz.Attributes.HTML\\nunescapeValue\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1355 [label=\"Data.GraphViz.Attributes.Internal\\ncheckPortName\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1356 [label=\"Data.GraphViz.Attributes.Internal\\ncompassLookup\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1359 [label=\"Data.GraphViz.Attributes.Internal\\nparseEdgeBasedPP\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1369 [label=\"Data.GraphViz.Attributes.Internal\\nunqtPortName\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1370 [label=\"Data.GraphViz.Parsing\\nallWhitespace\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1371 [label=\"Data.GraphViz.Parsing\\nallWhitespace'\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1372 [label=\"Data.GraphViz.Parsing\\nbracket\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1373 [label=\"Data.GraphViz.Parsing\\ncharacter\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1374 [label=\"Data.GraphViz.Parsing\\ncommaSep\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1375 [label=\"Data.GraphViz.Parsing\\ncommaSep'\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1376 [label=\"Data.GraphViz.Parsing\\ncommaSepUnqt\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1377 [label=\"Data.GraphViz.Parsing\\nconsumeLine\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1378 [label=\"Data.GraphViz.Parsing\\ndiscard\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1379 [label=\"Data.GraphViz.Parsing\\nnewline\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1380 [label=\"Data.GraphViz.Parsing\\nnewline'\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1381 [label=\"Data.GraphViz.Parsing\\nnoneOf\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1382 [label=\"Data.GraphViz.Parsing\\nnumString\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1383 [label=\"Data.GraphViz.Parsing\\nonlyBool\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1384 [label=\"Data.GraphViz.Parsing\\noptionalQuoted\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1385 [label=\"Data.GraphViz.Parsing\\noptionalQuotedString\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1386 [label=\"Data.GraphViz.Parsing\\norQuote\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1391 [label=\"Data.GraphViz.Parsing\\nparseAndSpace\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1392 [label=\"Data.GraphViz.Parsing\\nparseAngled\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1393 [label=\"Data.GraphViz.Parsing\\nparseBraced\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1394 [label=\"Data.GraphViz.Parsing\\nparseComma\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1395 [label=\"Data.GraphViz.Parsing\\nparseEq\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1396 [label=\"Data.GraphViz.Parsing\\nparseEscaped\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1397 [label=\"Data.GraphViz.Parsing\\nparseField\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1398 [label=\"Data.GraphViz.Parsing\\nparseFieldBool\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1399 [label=\"Data.GraphViz.Parsing\\nparseFieldDef\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1400 [label=\"Data.GraphViz.Parsing\\nparseFields\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1401 [label=\"Data.GraphViz.Parsing\\nparseFieldsBool\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1402 [label=\"Data.GraphViz.Parsing\\nparseFieldsDef\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1403 [label=\"Data.GraphViz.Parsing\\nparseFloat\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1404 [label=\"Data.GraphViz.Parsing\\nparseFloat'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1405 [label=\"Data.GraphViz.Parsing\\nparseInt\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1406 [label=\"Data.GraphViz.Parsing\\nparseInt'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1407 [label=\"Data.GraphViz.Parsing\\nparseIt\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1408 [label=\"Data.GraphViz.Parsing\\nparseIt'\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1413 [label=\"Data.GraphViz.Parsing\\nparseQuote\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1414 [label=\"Data.GraphViz.Parsing\\nparseSigned\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1415 [label=\"Data.GraphViz.Parsing\\nparseStrictFloat\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1428 [label=\"Data.GraphViz.Parsing\\nquoteChar\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1429 [label=\"Data.GraphViz.Parsing\\nquotedParse\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1430 [label=\"Data.GraphViz.Parsing\\nquotedString\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1431 [label=\"Data.GraphViz.Parsing\\nquotelessString\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1432 [label=\"Data.GraphViz.Parsing\\nrunParser'\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1433 [label=\"Data.GraphViz.Parsing\\nstring\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1434 [label=\"Data.GraphViz.Parsing\\nstringBlock\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1435 [label=\"Data.GraphViz.Parsing\\nstringRep\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1436 [label=\"Data.GraphViz.Parsing\\nstringReps\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1437 [label=\"Data.GraphViz.Parsing\\nstrings\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1438 [label=\"Data.GraphViz.Parsing\\ntryParseList\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1439 [label=\"Data.GraphViz.Parsing\\ntryParseList'\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1440 [label=\"Data.GraphViz.Parsing\\nwhitespace\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1441 [label=\"Data.GraphViz.Parsing\\nwhitespace'\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1442 [label=\"Data.GraphViz.Parsing\\nwrapWhitespace\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1443 [label=\"Data.GraphViz.PreProcessing\\nparseConcatStrings\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1444 [label=\"Data.GraphViz.PreProcessing\\nparseHTML\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1445 [label=\"Data.GraphViz.PreProcessing\\nparseLineComment\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1446 [label=\"Data.GraphViz.PreProcessing\\nparseMultiLineComment\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1447 [label=\"Data.GraphViz.PreProcessing\\nparseOutUnwanted\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1448 [label=\"Data.GraphViz.PreProcessing\\nparsePreProcessor\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1449 [label=\"Data.GraphViz.PreProcessing\\nparseSplitLine\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1450 [label=\"Data.GraphViz.PreProcessing\\nparseUnwanted\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1451 [label=\"Data.GraphViz.PreProcessing\\npreProcess\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1452 [label=\"Data.GraphViz.Printing\\naddEscapes\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1453 [label=\"Data.GraphViz.Printing\\naddQuotes\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1454 [label=\"Data.GraphViz.Printing\\nangled\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1455 [label=\"Data.GraphViz.Printing\\ncommaDel\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1456 [label=\"Data.GraphViz.Printing\\nfslash\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1457 [label=\"Data.GraphViz.Printing\\nlang\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1462 [label=\"Data.GraphViz.Printing\\nneedsQuotes\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1463 [label=\"Data.GraphViz.Printing\\nprintEscaped\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1464 [label=\"Data.GraphViz.Printing\\nprintField\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1465 [label=\"Data.GraphViz.Printing\\nprintIt\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1466 [label=\"Data.GraphViz.Printing\\nqtChar\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1467 [label=\"Data.GraphViz.Printing\\nqtString\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1468 [label=\"Data.GraphViz.Printing\\nrang\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1469 [label=\"Data.GraphViz.Printing\\nrenderDot\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1483 [label=\"Data.GraphViz.Printing\\nunqtEscaped\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1488 [label=\"Data.GraphViz.Printing\\nunqtString\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1489 [label=\"Data.GraphViz.Printing\\nwrap\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1491 [label=\"Data.GraphViz.Testing\\nblankLn\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1492 [label=\"Data.GraphViz.Testing\\ndefaultTests\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1494 [label=\"Data.GraphViz.Testing\\ndie\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1497 [label=\"Data.GraphViz.Testing\\nrunChosenTests\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1498 [label=\"Data.GraphViz.Testing\\nrunTest\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1499 [label=\"Data.GraphViz.Testing\\nrunTests\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1500 [label=\"Data.GraphViz.Testing\\nspacerLn\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1502 [label=\"Data.GraphViz.Testing\\ntest_dotizeAugment\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1503 [label=\"Data.GraphViz.Testing\\ntest_dotizeAugmentUniq\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1504 [label=\"Data.GraphViz.Testing\\ntest_findAllEdges\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1505 [label=\"Data.GraphViz.Testing\\ntest_findAllEdgesG\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1506 [label=\"Data.GraphViz.Testing\\ntest_findAllNodes\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1507 [label=\"Data.GraphViz.Testing\\ntest_findAllNodesE\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1508 [label=\"Data.GraphViz.Testing\\ntest_findAllNodesEG\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1509 [label=\"Data.GraphViz.Testing\\ntest_findAllNodesG\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1510 [label=\"Data.GraphViz.Testing\\ntest_generalisedSameDot\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1511 [label=\"Data.GraphViz.Testing\\ntest_noGraphInfo\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1512 [label=\"Data.GraphViz.Testing\\ntest_noGraphInfoG\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1513 [label=\"Data.GraphViz.Testing\\ntest_parsePrettyID\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1514 [label=\"Data.GraphViz.Testing\\ntest_preProcessingID\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1515 [label=\"Data.GraphViz.Testing\\ntest_printParseGID\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1516 [label=\"Data.GraphViz.Testing\\ntest_printParseID\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1517 [label=\"Data.GraphViz.Testing\\ntest_printParseID_Attributes\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1518 [label=\"Data.GraphViz.Testing.Instances\\narbBounded\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1519 [label=\"Data.GraphViz.Testing.Instances\\narbDS\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1520 [label=\"Data.GraphViz.Testing.Instances\\narbField\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1521 [label=\"Data.GraphViz.Testing.Instances\\narbGDS\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1522 [label=\"Data.GraphViz.Testing.Instances\\narbHtml\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1523 [label=\"Data.GraphViz.Testing.Instances\\narbHtmlText\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1524 [label=\"Data.GraphViz.Testing.Instances\\narbHtmlTexts\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1525 [label=\"Data.GraphViz.Testing.Instances\\narbIDString\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1526 [label=\"Data.GraphViz.Testing.Instances\\narbLayerName\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1527 [label=\"Data.GraphViz.Testing.Instances\\narbList\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1528 [label=\"Data.GraphViz.Testing.Instances\\narbString\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1529 [label=\"Data.GraphViz.Testing.Instances\\narbStyleName\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1601 [label=\"Data.GraphViz.Testing.Instances\\nfromPositive\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1602 [label=\"Data.GraphViz.Testing.Instances\\ngenGDStmts\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1603 [label=\"Data.GraphViz.Testing.Instances\\nlrnameCheck\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1604 [label=\"Data.GraphViz.Testing.Instances\\nnonEmptyShrinks\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1605 [label=\"Data.GraphViz.Testing.Instances\\nnonEmptyShrinks'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1606 [label=\"Data.GraphViz.Testing.Instances\\nnotBool\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1607 [label=\"Data.GraphViz.Testing.Instances\\nnotCP\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1608 [label=\"Data.GraphViz.Testing.Instances\\nnotInt\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1609 [label=\"Data.GraphViz.Testing.Instances\\nnotNumStr\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1610 [label=\"Data.GraphViz.Testing.Instances\\nnotStr\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1611 [label=\"Data.GraphViz.Testing.Instances\\npoint2D\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1612 [label=\"Data.GraphViz.Testing.Instances\\nposArbitrary\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1613 [label=\"Data.GraphViz.Testing.Instances\\nreturnCheck\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1655 [label=\"Data.GraphViz.Testing.Instances\\nshrinkGDStmts\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1656 [label=\"Data.GraphViz.Testing.Instances\\nshrinkL\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1657 [label=\"Data.GraphViz.Testing.Instances\\nshrinkList\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1658 [label=\"Data.GraphViz.Testing.Instances\\nshrinkList'\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1659 [label=\"Data.GraphViz.Testing.Instances\\nshrinkM\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1660 [label=\"Data.GraphViz.Testing.Instances\\nshrinkString\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1661 [label=\"Data.GraphViz.Testing.Instances\\nsimplifyHtmlText\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1662 [label=\"Data.GraphViz.Testing.Instances\\nvalidSplineList\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1663 [label=\"Data.GraphViz.Testing.Instances\\nvalidString\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1664 [label=\"Data.GraphViz.Testing.Instances\\nvalidUnknown\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1671 [label=\"Data.GraphViz.Types.Clustering\\nclustOrder\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1672 [label=\"Data.GraphViz.Types.Clustering\\nclustToTree\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1673 [label=\"Data.GraphViz.Types.Clustering\\nclustersToNodes\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1674 [label=\"Data.GraphViz.Types.Clustering\\ncollapseNClusts\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1675 [label=\"Data.GraphViz.Types.Clustering\\ngetNodes\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1676 [label=\"Data.GraphViz.Types.Clustering\\nsameClust\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1677 [label=\"Data.GraphViz.Types.Clustering\\ntreeToDot\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1678 [label=\"Data.GraphViz.Types.Clustering\\ntreesToDot\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1690 [label=\"Data.GraphViz.Types.Common\\naddPortPos\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1692 [label=\"Data.GraphViz.Types.Common\\nclust\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1693 [label=\"Data.GraphViz.Types.Common\\nclust'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1694 [label=\"Data.GraphViz.Types.Common\\ndetermineType\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1695 [label=\"Data.GraphViz.Types.Common\\ndirEdge\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1696 [label=\"Data.GraphViz.Types.Common\\ndirEdge'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1697 [label=\"Data.GraphViz.Types.Common\\ndirGraph\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1698 [label=\"Data.GraphViz.Types.Common\\ndirGraph'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1705 [label=\"Data.GraphViz.Types.Common\\ninvalidEdge\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1706 [label=\"Data.GraphViz.Types.Common\\ninvalidGlobal\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1707 [label=\"Data.GraphViz.Types.Common\\ninvalidNode\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1711 [label=\"Data.GraphViz.Types.Common\\nmkEdge\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1712 [label=\"Data.GraphViz.Types.Common\\nmkEdges\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1719 [label=\"Data.GraphViz.Types.Common\\nparseAttrBased\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1720 [label=\"Data.GraphViz.Types.Common\\nparseAttrBasedList\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1721 [label=\"Data.GraphViz.Types.Common\\nparseBracesBased\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1722 [label=\"Data.GraphViz.Types.Common\\nparseEdgeID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1723 [label=\"Data.GraphViz.Types.Common\\nparseEdgeLine\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1724 [label=\"Data.GraphViz.Types.Common\\nparseEdgeNode\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1725 [label=\"Data.GraphViz.Types.Common\\nparseEdgeNodes\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1726 [label=\"Data.GraphViz.Types.Common\\nparseEdgeType\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1727 [label=\"Data.GraphViz.Types.Common\\nparseGlobAttrType\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1728 [label=\"Data.GraphViz.Types.Common\\nparseGraphID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1732 [label=\"Data.GraphViz.Types.Common\\nparseNodeID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1733 [label=\"Data.GraphViz.Types.Common\\nparseSGID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1734 [label=\"Data.GraphViz.Types.Common\\nparseStatements\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1735 [label=\"Data.GraphViz.Types.Common\\nparseStmtBased\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1736 [label=\"Data.GraphViz.Types.Common\\nparseSubGraphID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1744 [label=\"Data.GraphViz.Types.Common\\nprintAttrBased\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1745 [label=\"Data.GraphViz.Types.Common\\nprintAttrBasedList\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1746 [label=\"Data.GraphViz.Types.Common\\nprintBracesBased\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1747 [label=\"Data.GraphViz.Types.Common\\nprintEdgeID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1748 [label=\"Data.GraphViz.Types.Common\\nprintGlobAttrType\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1749 [label=\"Data.GraphViz.Types.Common\\nprintGraphID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1750 [label=\"Data.GraphViz.Types.Common\\nprintNodeID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1751 [label=\"Data.GraphViz.Types.Common\\nprintSGID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1752 [label=\"Data.GraphViz.Types.Common\\nprintStmtBased\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1753 [label=\"Data.GraphViz.Types.Common\\nprintStmtBasedList\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1754 [label=\"Data.GraphViz.Types.Common\\nprintSubGraphID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1755 [label=\"Data.GraphViz.Types.Common\\nsGraph\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1756 [label=\"Data.GraphViz.Types.Common\\nsGraph'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1757 [label=\"Data.GraphViz.Types.Common\\nstatementEnd\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1758 [label=\"Data.GraphViz.Types.Common\\nstrGraph\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1759 [label=\"Data.GraphViz.Types.Common\\nstrGraph'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1760 [label=\"Data.GraphViz.Types.Common\\nstringNum\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1762 [label=\"Data.GraphViz.Types.Common\\nundirEdge\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1763 [label=\"Data.GraphViz.Types.Common\\nundirEdge'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1764 [label=\"Data.GraphViz.Types.Common\\nundirGraph\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1765 [label=\"Data.GraphViz.Types.Common\\nundirGraph'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1790 [label=\"Data.GraphViz.Types.Generalised\\ngeneraliseDotGraph\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1791 [label=\"Data.GraphViz.Types.Generalised\\ngeneraliseStatements\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1792 [label=\"Data.GraphViz.Types.Generalised\\ngeneraliseSubGraph\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1804 [label=\"Data.GraphViz.Types.Generalised\\nparseGStmts\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1812 [label=\"Data.GraphViz.Types.Generalised\\nprintGStmts\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1813 [label=\"Data.GraphViz.Types.Generalised\\nprintSubGraphID'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1815 [label=\"Data.GraphViz.Types.Generalised\\nstatementEdges\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1816 [label=\"Data.GraphViz.Types.Generalised\\nstatementNodes\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1817 [label=\"Data.GraphViz.Types.Generalised\\nstatementStructure\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1818 [label=\"Data.GraphViz.Types.Generalised\\nstmtEdges\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1819 [label=\"Data.GraphViz.Types.Generalised\\nstmtNodes\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1820 [label=\"Data.GraphViz.Types.Generalised\\nstmtStructure\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1826 [label=\"Data.GraphViz.Types.Generalised\\nwithSubGraphID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1831 [label=\"Data.GraphViz.Types.State\\naddCluster\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1832 [label=\"Data.GraphViz.Types.State\\naddEdge\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1833 [label=\"Data.GraphViz.Types.State\\naddEdgeGlobals\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1834 [label=\"Data.GraphViz.Types.State\\naddEdgeNodes\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1835 [label=\"Data.GraphViz.Types.State\\naddGlobals\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1836 [label=\"Data.GraphViz.Types.State\\naddGraphGlobals\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1837 [label=\"Data.GraphViz.Types.State\\naddNode\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1838 [label=\"Data.GraphViz.Types.State\\naddNodeGlobals\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1839 [label=\"Data.GraphViz.Types.State\\naddSubGraph\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1840 [label=\"Data.GraphViz.Types.State\\nappend\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1843 [label=\"Data.GraphViz.Types.State\\nempty\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1846 [label=\"Data.GraphViz.Types.State\\ngetDotEdges\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1847 [label=\"Data.GraphViz.Types.State\\ngetGlobals\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1848 [label=\"Data.GraphViz.Types.State\\ngetGraphInfo\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1849 [label=\"Data.GraphViz.Types.State\\ngetNodeLookup\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1850 [label=\"Data.GraphViz.Types.State\\ngetPath\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1854 [label=\"Data.GraphViz.Types.State\\nmergeCInfos\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1855 [label=\"Data.GraphViz.Types.State\\nmergeNInfos\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1856 [label=\"Data.GraphViz.Types.State\\nmergeNode\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1857 [label=\"Data.GraphViz.Types.State\\nmergePs\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1858 [label=\"Data.GraphViz.Types.State\\nmodifyGlobal\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1859 [label=\"Data.GraphViz.Types.State\\nmodifyPath\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1860 [label=\"Data.GraphViz.Types.State\\nmodifyValue\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1861 [label=\"Data.GraphViz.Types.State\\nrecursiveCall\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1862 [label=\"Data.GraphViz.Types.State\\nsingleton\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1863 [label=\"Data.GraphViz.Types.State\\nsnoc\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1864 [label=\"Data.GraphViz.Types.State\\ntoDotNodes\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1865 [label=\"Data.GraphViz.Types.State\\ntoList\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1866 [label=\"Data.GraphViz.Types.State\\ntoSAttr\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1867 [label=\"Data.GraphViz.Types.State\\nunSame\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1868 [label=\"Data.GraphViz.Types.State\\nunionWith\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1871 [label=\"Data.GraphViz.Util\\nbool\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1872 [label=\"Data.GraphViz.Util\\ndescapeQuotes\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1873 [label=\"Data.GraphViz.Util\\nescapeQuotes\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1874 [label=\"Data.GraphViz.Util\\nfrstIDString\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1875 [label=\"Data.GraphViz.Util\\ngroupSortBy\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1876 [label=\"Data.GraphViz.Util\\nisIDString\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1877 [label=\"Data.GraphViz.Util\\nisIntString\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1878 [label=\"Data.GraphViz.Util\\nisKeyword\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1879 [label=\"Data.GraphViz.Util\\nisNumString\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1880 [label=\"Data.GraphViz.Util\\nisSingle\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1881 [label=\"Data.GraphViz.Util\\nkeywords\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1882 [label=\"Data.GraphViz.Util\\nrestIDString\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1883 [label=\"Data.GraphViz.Util\\nstringToInt\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1884 [label=\"Data.GraphViz.Util\\ntoDouble\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1885 [label=\"Data.GraphViz.Util\\nuniq\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1886 [label=\"Data.GraphViz.Util\\nuniqBy\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1887 [label=\"Main\\ndg\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t3 -> 1 [penwidth=1, color=black];\n\t4 -> 1 [penwidth=1, color=black];\n\t4 -> 111 [penwidth=1, color=black];\n\t5 -> 2 [penwidth=1, color=black];\n\t5 -> 7 [penwidth=1, color=black];\n\t5 -> 8 [penwidth=1, color=black];\n\t5 -> 15 [penwidth=1, color=black];\n\t5 -> 16 [penwidth=1, color=black];\n\t5 -> 17 [penwidth=1, color=black];\n\t5 -> 19 [penwidth=1, color=black];\n\t5 -> 22 [penwidth=1, color=black];\n\t6 -> 25 [penwidth=1, color=black];\n\t9 -> 2 [penwidth=1, color=black];\n\t9 -> 7 [penwidth=1, color=black];\n\t9 -> 8 [penwidth=1, color=black];\n\t9 -> 15 [penwidth=1, color=black];\n\t9 -> 16 [penwidth=1, color=black];\n\t9 -> 17 [penwidth=1, color=black];\n\t9 -> 19 [penwidth=1, color=black];\n\t9 -> 22 [penwidth=1, color=black];\n\t9 -> 1669 [penwidth=1, color=black];\n\t10 -> 4 [penwidth=1, color=black];\n\t10 -> 18 [penwidth=1, color=black];\n\t11 -> 1885 [penwidth=1, color=black];\n\t11 -> 1886 [penwidth=1, color=black];\n\t12 -> 15 [penwidth=1, color=black];\n\t12 -> 16 [penwidth=1, color=black];\n\t12 -> 17 [penwidth=1, color=black];\n\t12 -> 21 [penwidth=1, color=black];\n\t20 -> 7 [penwidth=1, color=black];\n\t20 -> 8 [penwidth=1, color=black];\n\t20 -> 15 [penwidth=1, color=black];\n\t20 -> 16 [penwidth=1, color=black];\n\t20 -> 17 [penwidth=1, color=black];\n\t20 -> 19 [penwidth=1, color=black];\n\t20 -> 22 [penwidth=1, color=black];\n\t20 -> 1673 [penwidth=1, color=black];\n\t21 -> 3 [penwidth=1, color=black];\n\t21 -> 10 [penwidth=1, color=black];\n\t21 -> 16 [penwidth=\"1.6931471805599454\", color=black];\n\t21 -> 20 [penwidth=1, color=black];\n\t21 -> 22 [penwidth=1, color=black];\n\t21 -> 29 [penwidth=1, color=black];\n\t24 -> 9 [penwidth=1, color=chartreuse];\n\t25 -> 18 [penwidth=1, color=black];\n\t26 -> 25 [penwidth=1, color=black];\n\t27 -> 16 [penwidth=1, color=black];\n\t27 -> 17 [penwidth=1, color=black];\n\t27 -> 20 [penwidth=1, color=black];\n\t27 -> 24 [penwidth=1, color=black];\n\t27 -> 28 [penwidth=1, color=black];\n\t27 -> 537 [penwidth=\"1.6931471805599454\", color=black];\n\t28 -> 22 [penwidth=1, color=black];\n\t28 -> 23 [penwidth=1, color=black];\n\t29 -> 13 [penwidth=1, color=black];\n\t29 -> 30 [penwidth=1, color=black];\n\t29 -> 111 [penwidth=1, color=black];\n\t30 -> 14 [penwidth=1, color=chartreuse];\n\t39 -> 34 [penwidth=1, color=black];\n\t39 -> 36 [penwidth=1, color=black];\n\t39 -> 38 [penwidth=1, color=black];\n\t40 -> 39 [penwidth=1, color=black];\n\t40 -> 77 [penwidth=1, color=black];\n\t41 -> 38 [penwidth=\"2.09861228866811\", color=black];\n\t41 -> 39 [penwidth=1, color=black];\n\t41 -> 40 [penwidth=1, color=black];\n\t41 -> 42 [penwidth=\"2.09861228866811\", color=black];\n\t41 -> 46 [penwidth=\"2.09861228866811\", color=black];\n\t41 -> 48 [penwidth=\"2.09861228866811\", color=black];\n\t41 -> 54 [penwidth=1, color=black];\n\t41 -> 56 [penwidth=1, color=black];\n\t41 -> 69 [penwidth=1, color=black];\n\t41 -> 72 [penwidth=\"2.09861228866811\", color=black];\n\t41 -> 73 [penwidth=1, color=black];\n\t41 -> 74 [penwidth=1, color=black];\n\t41 -> 75 [penwidth=\"2.09861228866811\", color=black];\n\t41 -> 77 [penwidth=1, color=black];\n\t41 -> 78 [penwidth=\"1.6931471805599454\", color=black];\n\t42 -> 52 [penwidth=1, color=chartreuse];\n\t43 -> 33 [penwidth=\"3.833213344056216\", color=black];\n\t43 -> 34 [penwidth=\"5.007333185232471\", color=black];\n\t43 -> 35 [penwidth=\"4.367295829986475\", color=black];\n\t43 -> 36 [penwidth=\"3.70805020110221\", color=black];\n\t43 -> 37 [penwidth=\"3.3978952727983707\", color=black];\n\t43 -> 38 [penwidth=\"3.833213344056216\", color=black];\n\t43 -> 65 [penwidth=\"5.969813299576001\", color=black];\n\t44 -> 43 [penwidth=1, color=black];\n\t45 -> 32 [penwidth=1, color=black];\n\t45 -> 44 [penwidth=1, color=black];\n\t50 -> 74 [penwidth=1, color=black];\n\t51 -> 38 [penwidth=\"1.6931471805599454\", color=black];\n\t51 -> 42 [penwidth=1, color=black];\n\t51 -> 46 [penwidth=1, color=black];\n\t51 -> 48 [penwidth=1, color=black];\n\t51 -> 49 [penwidth=1, color=black];\n\t51 -> 56 [penwidth=1, color=black];\n\t51 -> 73 [penwidth=\"1.6931471805599454\", color=black];\n\t51 -> 74 [penwidth=1, color=black];\n\t51 -> 75 [penwidth=1, color=black];\n\t51 -> 79 [penwidth=\"1.6931471805599454\", color=black];\n\t51 -> 80 [penwidth=1, color=black];\n\t62 -> 41 [penwidth=1, color=chartreuse];\n\t63 -> 50 [penwidth=1, color=black];\n\t63 -> 51 [penwidth=1, color=black];\n\t63 -> 57 [penwidth=1, color=black];\n\t63 -> 58 [penwidth=1, color=black];\n\t63 -> 59 [penwidth=1, color=black];\n\t63 -> 60 [penwidth=1, color=black];\n\t63 -> 61 [penwidth=1, color=black];\n\t63 -> 68 [penwidth=1, color=black];\n\t63 -> 70 [penwidth=1, color=black];\n\t63 -> 71 [penwidth=1, color=black];\n\t63 -> 76 [penwidth=\"2.6094379124341005\", color=black];\n\t63 -> 78 [penwidth=1, color=black];\n\t64 -> 32 [penwidth=1, color=black];\n\t64 -> 43 [penwidth=1, color=black];\n\t64 -> 46 [penwidth=1, color=black];\n\t64 -> 62 [penwidth=1, color=black];\n\t64 -> 63 [penwidth=1, color=black];\n\t64 -> 74 [penwidth=1, color=black];\n\t65 -> 31 [penwidth=1, color=black];\n\t65 -> 33 [penwidth=1, color=black];\n\t65 -> 48 [penwidth=1, color=black];\n\t65 -> 49 [penwidth=1, color=black];\n\t65 -> 57 [penwidth=1, color=black];\n\t65 -> 58 [penwidth=1, color=black];\n\t65 -> 59 [penwidth=1, color=black];\n\t65 -> 60 [penwidth=1, color=black];\n\t65 -> 61 [penwidth=1, color=black];\n\t65 -> 66 [penwidth=1, color=black];\n\t65 -> 67 [penwidth=1, color=black];\n\t65 -> 69 [penwidth=1, color=black];\n\t65 -> 77 [penwidth=1, color=black];\n\t65 -> 81 [penwidth=1, color=black];\n\t68 -> 33 [penwidth=1, color=black];\n\t68 -> 42 [penwidth=1, color=black];\n\t68 -> 46 [penwidth=1, color=black];\n\t68 -> 48 [penwidth=\"2.09861228866811\", color=black];\n\t68 -> 53 [penwidth=1, color=black];\n\t68 -> 56 [penwidth=1, color=black];\n\t68 -> 67 [penwidth=\"1.6931471805599454\", color=black];\n\t68 -> 69 [penwidth=1, color=black];\n\t68 -> 73 [penwidth=1, color=black];\n\t68 -> 74 [penwidth=1, color=black];\n\t68 -> 75 [penwidth=1, color=black];\n\t68 -> 77 [penwidth=1, color=black];\n\t68 -> 78 [penwidth=1, color=black];\n\t70 -> 42 [penwidth=1, color=black];\n\t70 -> 46 [penwidth=1, color=black];\n\t70 -> 48 [penwidth=\"1.6931471805599454\", color=black];\n\t70 -> 74 [penwidth=1, color=black];\n\t70 -> 75 [penwidth=\"1.6931471805599454\", color=black];\n\t71 -> 42 [penwidth=1, color=black];\n\t71 -> 46 [penwidth=1, color=black];\n\t71 -> 48 [penwidth=1, color=black];\n\t71 -> 66 [penwidth=1, color=black];\n\t71 -> 73 [penwidth=1, color=black];\n\t71 -> 74 [penwidth=1, color=black];\n\t71 -> 75 [penwidth=1, color=black];\n\t71 -> 78 [penwidth=1, color=black];\n\t72 -> 34 [penwidth=1, color=black];\n\t72 -> 36 [penwidth=1, color=black];\n\t72 -> 38 [penwidth=1, color=black];\n\t76 -> 42 [penwidth=1, color=black];\n\t76 -> 46 [penwidth=1, color=black];\n\t76 -> 48 [penwidth=1, color=black];\n\t76 -> 55 [penwidth=1, color=black];\n\t76 -> 74 [penwidth=1, color=black];\n\t76 -> 75 [penwidth=1, color=black];\n\t79 -> 33 [penwidth=1, color=black];\n\t79 -> 34 [penwidth=1, color=black];\n\t79 -> 35 [penwidth=1, color=black];\n\t79 -> 36 [penwidth=1, color=black];\n\t79 -> 37 [penwidth=1, color=black];\n\t79 -> 38 [penwidth=1, color=black];\n\t80 -> 77 [penwidth=1, color=black];\n\t80 -> 79 [penwidth=1, color=black];\n\t404 -> 82 [penwidth=1, color=black];\n\t404 -> 99 [penwidth=1, color=black];\n\t404 -> 429 [penwidth=1, color=black];\n\t405 -> 96 [penwidth=1, color=black];\n\t405 -> 120 [penwidth=1, color=black];\n\t405 -> 124 [penwidth=1, color=black];\n\t405 -> 127 [penwidth=1, color=black];\n\t405 -> 138 [penwidth=1, color=black];\n\t405 -> 158 [penwidth=1, color=black];\n\t405 -> 195 [penwidth=1, color=black];\n\t405 -> 331 [penwidth=1, color=black];\n\t405 -> 353 [penwidth=1, color=black];\n\t406 -> 83 [penwidth=1, color=black];\n\t406 -> 209 [penwidth=1, color=black];\n\t406 -> 210 [penwidth=1, color=black];\n\t406 -> 1883 [penwidth=1, color=black];\n\t407 -> 299 [penwidth=1, color=black];\n\t408 -> 82 [penwidth=1, color=black];\n\t408 -> 119 [penwidth=1, color=black];\n\t408 -> 429 [penwidth=1, color=black];\n\t410 -> 82 [penwidth=1, color=black];\n\t410 -> 128 [penwidth=1, color=black];\n\t410 -> 429 [penwidth=1, color=black];\n\t411 -> 82 [penwidth=1, color=black];\n\t411 -> 137 [penwidth=1, color=black];\n\t411 -> 429 [penwidth=1, color=black];\n\t412 -> 433 [penwidth=1, color=chartreuse];\n\t413 -> 82 [penwidth=1, color=black];\n\t413 -> 267 [penwidth=1, color=black];\n\t413 -> 436 [penwidth=1, color=black];\n\t417 -> 82 [penwidth=1, color=black];\n\t417 -> 84 [penwidth=1, color=black];\n\t417 -> 159 [penwidth=1, color=black];\n\t417 -> 232 [penwidth=1, color=black];\n\t417 -> 393 [penwidth=1, color=black];\n\t418 -> 82 [penwidth=1, color=black];\n\t418 -> 191 [penwidth=1, color=black];\n\t418 -> 429 [penwidth=1, color=black];\n\t419 -> 82 [penwidth=1, color=black];\n\t419 -> 137 [penwidth=1, color=black];\n\t419 -> 191 [penwidth=1, color=black];\n\t419 -> 429 [penwidth=\"1.6931471805599454\", color=black];\n\t420 -> 82 [penwidth=1, color=black];\n\t420 -> 191 [penwidth=1, color=black];\n\t420 -> 267 [penwidth=1, color=black];\n\t420 -> 429 [penwidth=1, color=black];\n\t420 -> 436 [penwidth=1, color=black];\n\t421 -> 82 [penwidth=1, color=black];\n\t421 -> 137 [penwidth=1, color=black];\n\t421 -> 191 [penwidth=1, color=black];\n\t421 -> 429 [penwidth=1, color=black];\n\t421 -> 436 [penwidth=1, color=black];\n\t427 -> 333 [penwidth=1, color=black];\n\t428 -> 82 [penwidth=1, color=black];\n\t428 -> 254 [penwidth=1, color=black];\n\t428 -> 429 [penwidth=1, color=black];\n\t429 -> 84 [penwidth=1, color=black];\n\t429 -> 98 [penwidth=1, color=black];\n\t429 -> 159 [penwidth=1, color=black];\n\t430 -> 82 [penwidth=1, color=black];\n\t430 -> 267 [penwidth=1, color=black];\n\t430 -> 429 [penwidth=1, color=black];\n\t431 -> 409 [penwidth=1, color=black];\n\t432 -> 82 [penwidth=1, color=black];\n\t432 -> 99 [penwidth=1, color=black];\n\t432 -> 436 [penwidth=1, color=black];\n\t433 -> 82 [penwidth=1, color=black];\n\t433 -> 128 [penwidth=1, color=black];\n\t433 -> 436 [penwidth=1, color=black];\n\t434 -> 82 [penwidth=1, color=black];\n\t434 -> 84 [penwidth=1, color=black];\n\t434 -> 98 [penwidth=1, color=black];\n\t434 -> 137 [penwidth=1, color=black];\n\t434 -> 275 [penwidth=1, color=black];\n\t435 -> 605 [penwidth=1, color=chartreuse];\n\t436 -> 84 [penwidth=1, color=black];\n\t436 -> 98 [penwidth=1, color=black];\n\t436 -> 275 [penwidth=1, color=black];\n\t439 -> 316 [penwidth=1, color=black];\n\t439 -> 317 [penwidth=1, color=black];\n\t439 -> 1376 [penwidth=1, color=black];\n\t439 -> 1429 [penwidth=1, color=black];\n\t441 -> 122 [penwidth=1, color=black];\n\t441 -> 1429 [penwidth=1, color=black];\n\t442 -> 258 [penwidth=1, color=black];\n\t442 -> 1384 [penwidth=1, color=black];\n\t442 -> 1435 [penwidth=1, color=black];\n\t443 -> 263 [penwidth=1, color=black];\n\t443 -> 400 [penwidth=1, color=black];\n\t444 -> 187 [penwidth=1, color=black];\n\t444 -> 321 [penwidth=1, color=black];\n\t444 -> 365 [penwidth=1, color=black];\n\t444 -> 1392 [penwidth=1, color=black];\n\t445 -> 209 [penwidth=1, color=black];\n\t445 -> 406 [penwidth=1, color=black];\n\t445 -> 459 [penwidth=1, color=black];\n\t446 -> 206 [penwidth=1, color=black];\n\t446 -> 210 [penwidth=1, color=black];\n\t446 -> 1429 [penwidth=1, color=black];\n\t446 -> 1434 [penwidth=1, color=black];\n\t447 -> 208 [penwidth=1, color=black];\n\t447 -> 211 [penwidth=1, color=black];\n\t447 -> 460 [penwidth=1, color=black];\n\t447 -> 1429 [penwidth=1, color=black];\n\t448 -> 1429 [penwidth=1, color=black];\n\t449 -> 1429 [penwidth=1, color=black];\n\t450 -> 1429 [penwidth=1, color=black];\n\t451 -> 1429 [penwidth=1, color=black];\n\t452 -> 198 [penwidth=1, color=black];\n\t452 -> 264 [penwidth=1, color=black];\n\t452 -> 270 [penwidth=1, color=black];\n\t452 -> 1383 [penwidth=1, color=black];\n\t452 -> 1384 [penwidth=1, color=black];\n\t452 -> 1871 [penwidth=1, color=black];\n\t453 -> 1429 [penwidth=1, color=black];\n\t454 -> 333 [penwidth=\"1.6931471805599454\", color=black];\n\t454 -> 457 [penwidth=1, color=black];\n\t454 -> 1429 [penwidth=1, color=black];\n\t455 -> 405 [penwidth=1, color=black];\n\t455 -> 1429 [penwidth=1, color=black];\n\t455 -> 1431 [penwidth=1, color=black];\n\t456 -> 1429 [penwidth=1, color=black];\n\t457 -> 466 [penwidth=1, color=black];\n\t457 -> 1373 [penwidth=\"1.6931471805599454\", color=black];\n\t457 -> 1394 [penwidth=1, color=black];\n\t458 -> 409 [penwidth=1, color=black];\n\t458 -> 1396 [penwidth=1, color=black];\n\t459 -> 458 [penwidth=1, color=black];\n\t459 -> 1429 [penwidth=1, color=black];\n\t459 -> 1434 [penwidth=1, color=black];\n\t460 -> 409 [penwidth=1, color=black];\n\t460 -> 1373 [penwidth=1, color=black];\n\t462 -> 152 [penwidth=1, color=black];\n\t462 -> 516 [penwidth=1, color=black];\n\t462 -> 1429 [penwidth=1, color=black];\n\t463 -> 1429 [penwidth=1, color=black];\n\t464 -> 407 [penwidth=1, color=black];\n\t464 -> 1376 [penwidth=1, color=black];\n\t465 -> 516 [penwidth=1, color=black];\n\t465 -> 1396 [penwidth=1, color=black];\n\t466 -> 1381 [penwidth=1, color=black];\n\t466 -> 1386 [penwidth=1, color=black];\n\t466 -> 1396 [penwidth=1, color=black];\n\t466 -> 1428 [penwidth=1, color=black];\n\t466 -> 1435 [penwidth=1, color=black];\n\t467 -> 159 [penwidth=1, color=black];\n\t467 -> 275 [penwidth=1, color=black];\n\t467 -> 1373 [penwidth=1, color=black];\n\t467 -> 1871 [penwidth=1, color=black];\n\t468 -> 84 [penwidth=1, color=black];\n\t469 -> 99 [penwidth=1, color=black];\n\t469 -> 119 [penwidth=1, color=black];\n\t469 -> 128 [penwidth=1, color=black];\n\t469 -> 137 [penwidth=1, color=black];\n\t469 -> 191 [penwidth=1, color=black];\n\t469 -> 254 [penwidth=1, color=black];\n\t469 -> 267 [penwidth=1, color=black];\n\t469 -> 377 [penwidth=1, color=black];\n\t469 -> 393 [penwidth=1, color=black];\n\t469 -> 1435 [penwidth=\"3.1972245773362196\", color=black];\n\t470 -> 98 [penwidth=1, color=black];\n\t470 -> 232 [penwidth=1, color=black];\n\t470 -> 328 [penwidth=1, color=black];\n\t470 -> 1373 [penwidth=1, color=black];\n\t470 -> 1871 [penwidth=1, color=black];\n\t471 -> 82 [penwidth=1, color=black];\n\t471 -> 518 [penwidth=1, color=black];\n\t472 -> 316 [penwidth=1, color=black];\n\t472 -> 317 [penwidth=1, color=black];\n\t472 -> 1376 [penwidth=1, color=black];\n\t473 -> 85 [penwidth=1, color=black];\n\t473 -> 86 [penwidth=1, color=black];\n\t473 -> 87 [penwidth=1, color=black];\n\t473 -> 88 [penwidth=1, color=black];\n\t473 -> 93 [penwidth=1, color=black];\n\t473 -> 94 [penwidth=1, color=black];\n\t473 -> 104 [penwidth=1, color=black];\n\t473 -> 105 [penwidth=1, color=black];\n\t473 -> 108 [penwidth=1, color=black];\n\t473 -> 109 [penwidth=1, color=black];\n\t473 -> 110 [penwidth=1, color=black];\n\t473 -> 111 [penwidth=1, color=black];\n\t473 -> 113 [penwidth=1, color=black];\n\t473 -> 117 [penwidth=1, color=black];\n\t473 -> 118 [penwidth=1, color=black];\n\t473 -> 121 [penwidth=1, color=black];\n\t473 -> 123 [penwidth=1, color=black];\n\t473 -> 125 [penwidth=1, color=black];\n\t473 -> 126 [penwidth=1, color=black];\n\t473 -> 130 [penwidth=1, color=black];\n\t473 -> 131 [penwidth=1, color=black];\n\t473 -> 132 [penwidth=1, color=black];\n\t473 -> 133 [penwidth=1, color=black];\n\t473 -> 134 [penwidth=1, color=black];\n\t473 -> 135 [penwidth=1, color=black];\n\t473 -> 141 [penwidth=1, color=black];\n\t473 -> 142 [penwidth=1, color=black];\n\t473 -> 143 [penwidth=1, color=black];\n\t473 -> 144 [penwidth=1, color=black];\n\t473 -> 145 [penwidth=1, color=black];\n\t473 -> 149 [penwidth=1, color=black];\n\t473 -> 154 [penwidth=1, color=black];\n\t473 -> 160 [penwidth=1, color=black];\n\t473 -> 163 [penwidth=1, color=black];\n\t473 -> 164 [penwidth=1, color=black];\n\t473 -> 165 [penwidth=1, color=black];\n\t473 -> 166 [penwidth=1, color=black];\n\t473 -> 167 [penwidth=1, color=black];\n\t473 -> 175 [penwidth=1, color=black];\n\t473 -> 176 [penwidth=1, color=black];\n\t473 -> 177 [penwidth=1, color=black];\n\t473 -> 178 [penwidth=1, color=black];\n\t473 -> 179 [penwidth=1, color=black];\n\t473 -> 180 [penwidth=1, color=black];\n\t473 -> 181 [penwidth=1, color=black];\n\t473 -> 182 [penwidth=1, color=black];\n\t473 -> 188 [penwidth=1, color=black];\n\t473 -> 189 [penwidth=1, color=black];\n\t473 -> 190 [penwidth=1, color=black];\n\t473 -> 198 [penwidth=1, color=black];\n\t473 -> 202 [penwidth=1, color=black];\n\t473 -> 204 [penwidth=1, color=black];\n\t473 -> 205 [penwidth=1, color=black];\n\t473 -> 207 [penwidth=1, color=black];\n\t473 -> 212 [penwidth=1, color=black];\n\t473 -> 213 [penwidth=1, color=black];\n\t473 -> 214 [penwidth=1, color=black];\n\t473 -> 215 [penwidth=1, color=black];\n\t473 -> 216 [penwidth=1, color=black];\n\t473 -> 217 [penwidth=1, color=black];\n\t473 -> 218 [penwidth=1, color=black];\n\t473 -> 219 [penwidth=1, color=black];\n\t473 -> 220 [penwidth=1, color=black];\n\t473 -> 221 [penwidth=1, color=black];\n\t473 -> 222 [penwidth=1, color=black];\n\t473 -> 223 [penwidth=1, color=black];\n\t473 -> 224 [penwidth=1, color=black];\n\t473 -> 226 [penwidth=1, color=black];\n\t473 -> 227 [penwidth=1, color=black];\n\t473 -> 228 [penwidth=1, color=black];\n\t473 -> 229 [penwidth=1, color=black];\n\t473 -> 230 [penwidth=1, color=black];\n\t473 -> 233 [penwidth=1, color=black];\n\t473 -> 234 [penwidth=1, color=black];\n\t473 -> 235 [penwidth=1, color=black];\n\t473 -> 239 [penwidth=1, color=black];\n\t473 -> 245 [penwidth=1, color=black];\n\t473 -> 246 [penwidth=1, color=black];\n\t473 -> 248 [penwidth=1, color=black];\n\t473 -> 249 [penwidth=1, color=black];\n\t473 -> 251 [penwidth=1, color=black];\n\t473 -> 252 [penwidth=1, color=black];\n\t473 -> 253 [penwidth=1, color=black];\n\t473 -> 259 [penwidth=1, color=black];\n\t473 -> 265 [penwidth=1, color=black];\n\t473 -> 268 [penwidth=1, color=black];\n\t473 -> 269 [penwidth=1, color=black];\n\t473 -> 272 [penwidth=1, color=black];\n\t473 -> 273 [penwidth=1, color=black];\n\t473 -> 276 [penwidth=1, color=black];\n\t473 -> 277 [penwidth=1, color=black];\n\t473 -> 278 [penwidth=1, color=black];\n\t473 -> 279 [penwidth=1, color=black];\n\t473 -> 280 [penwidth=1, color=black];\n\t473 -> 282 [penwidth=1, color=black];\n\t473 -> 287 [penwidth=1, color=black];\n\t473 -> 289 [penwidth=1, color=black];\n\t473 -> 290 [penwidth=1, color=black];\n\t473 -> 291 [penwidth=1, color=black];\n\t473 -> 293 [penwidth=1, color=black];\n\t473 -> 294 [penwidth=1, color=black];\n\t473 -> 296 [penwidth=1, color=black];\n\t473 -> 297 [penwidth=1, color=black];\n\t473 -> 305 [penwidth=1, color=black];\n\t473 -> 308 [penwidth=1, color=black];\n\t473 -> 309 [penwidth=1, color=black];\n\t473 -> 312 [penwidth=1, color=black];\n\t473 -> 313 [penwidth=1, color=black];\n\t473 -> 314 [penwidth=1, color=black];\n\t473 -> 315 [penwidth=1, color=black];\n\t473 -> 319 [penwidth=1, color=black];\n\t473 -> 323 [penwidth=1, color=black];\n\t473 -> 324 [penwidth=1, color=black];\n\t473 -> 327 [penwidth=1, color=black];\n\t473 -> 329 [penwidth=1, color=black];\n\t473 -> 330 [penwidth=1, color=black];\n\t473 -> 334 [penwidth=1, color=black];\n\t473 -> 336 [penwidth=1, color=black];\n\t473 -> 337 [penwidth=1, color=black];\n\t473 -> 340 [penwidth=1, color=black];\n\t473 -> 342 [penwidth=1, color=black];\n\t473 -> 344 [penwidth=1, color=black];\n\t473 -> 345 [penwidth=1, color=black];\n\t473 -> 347 [penwidth=1, color=black];\n\t473 -> 348 [penwidth=1, color=black];\n\t473 -> 350 [penwidth=1, color=black];\n\t473 -> 351 [penwidth=1, color=black];\n\t473 -> 352 [penwidth=1, color=black];\n\t473 -> 354 [penwidth=1, color=black];\n\t473 -> 357 [penwidth=1, color=black];\n\t473 -> 359 [penwidth=1, color=black];\n\t473 -> 361 [penwidth=1, color=black];\n\t473 -> 366 [penwidth=1, color=black];\n\t473 -> 367 [penwidth=1, color=black];\n\t473 -> 370 [penwidth=1, color=black];\n\t473 -> 371 [penwidth=1, color=black];\n\t473 -> 372 [penwidth=1, color=black];\n\t473 -> 373 [penwidth=1, color=black];\n\t473 -> 374 [penwidth=1, color=black];\n\t473 -> 375 [penwidth=1, color=black];\n\t473 -> 376 [penwidth=1, color=black];\n\t473 -> 379 [penwidth=1, color=black];\n\t473 -> 385 [penwidth=1, color=black];\n\t473 -> 386 [penwidth=1, color=black];\n\t473 -> 387 [penwidth=1, color=black];\n\t473 -> 388 [penwidth=1, color=black];\n\t473 -> 394 [penwidth=1, color=black];\n\t473 -> 395 [penwidth=1, color=black];\n\t473 -> 396 [penwidth=1, color=black];\n\t473 -> 398 [penwidth=1, color=black];\n\t473 -> 399 [penwidth=1, color=black];\n\t473 -> 401 [penwidth=1, color=black];\n\t473 -> 1395 [penwidth=1, color=black];\n\t473 -> 1397 [penwidth=\"5.736198448394496\", color=black];\n\t473 -> 1398 [penwidth=\"3.833213344056216\", color=black];\n\t473 -> 1399 [penwidth=\"2.9459101490553135\", color=black];\n\t473 -> 1400 [penwidth=\"2.791759469228055\", color=black];\n\t473 -> 1434 [penwidth=1, color=black];\n\t474 -> 173 [penwidth=1, color=black];\n\t474 -> 237 [penwidth=1, color=black];\n\t474 -> 255 [penwidth=1, color=black];\n\t474 -> 1435 [penwidth=\"2.09861228866811\", color=black];\n\t475 -> 142 [penwidth=1, color=black];\n\t475 -> 185 [penwidth=1, color=black];\n\t475 -> 256 [penwidth=1, color=black];\n\t475 -> 1435 [penwidth=1, color=black];\n\t475 -> 1871 [penwidth=1, color=black];\n\t476 -> 122 [penwidth=1, color=black];\n\t476 -> 281 [penwidth=1, color=black];\n\t476 -> 464 [penwidth=1, color=black];\n\t477 -> 92 [penwidth=1, color=black];\n\t477 -> 97 [penwidth=1, color=black];\n\t477 -> 168 [penwidth=1, color=black];\n\t477 -> 257 [penwidth=1, color=black];\n\t477 -> 1435 [penwidth=\"2.386294361119891\", color=black];\n\t478 -> 114 [penwidth=1, color=black];\n\t478 -> 236 [penwidth=\"1.6931471805599454\", color=black];\n\t478 -> 302 [penwidth=1, color=black];\n\t478 -> 357 [penwidth=\"1.6931471805599454\", color=black];\n\t478 -> 1435 [penwidth=\"2.386294361119891\", color=black];\n\t478 -> 1871 [penwidth=1, color=black];\n\t479 -> 263 [penwidth=1, color=black];\n\t479 -> 400 [penwidth=1, color=black];\n\t480 -> 199 [penwidth=1, color=black];\n\t480 -> 200 [penwidth=1, color=black];\n\t480 -> 201 [penwidth=1, color=black];\n\t480 -> 1435 [penwidth=\"2.09861228866811\", color=black];\n\t481 -> 187 [penwidth=1, color=black];\n\t481 -> 321 [penwidth=1, color=black];\n\t481 -> 365 [penwidth=1, color=black];\n\t481 -> 1392 [penwidth=1, color=black];\n\t482 -> 406 [penwidth=1, color=black];\n\t482 -> 458 [penwidth=1, color=black];\n\t483 -> 206 [penwidth=1, color=black];\n\t483 -> 460 [penwidth=1, color=black];\n\t484 -> 208 [penwidth=1, color=black];\n\t484 -> 211 [penwidth=1, color=black];\n\t484 -> 460 [penwidth=1, color=black];\n\t485 -> 184 [penwidth=1, color=black];\n\t485 -> 196 [penwidth=1, color=black];\n\t485 -> 203 [penwidth=1, color=black];\n\t485 -> 244 [penwidth=1, color=black];\n\t485 -> 1435 [penwidth=\"2.386294361119891\", color=black];\n\t486 -> 107 [penwidth=1, color=black];\n\t486 -> 346 [penwidth=1, color=black];\n\t486 -> 368 [penwidth=1, color=black];\n\t486 -> 1435 [penwidth=\"2.09861228866811\", color=black];\n\t487 -> 103 [penwidth=1, color=black];\n\t487 -> 146 [penwidth=1, color=black];\n\t487 -> 266 [penwidth=1, color=black];\n\t487 -> 1435 [penwidth=\"2.09861228866811\", color=black];\n\t488 -> 115 [penwidth=1, color=black];\n\t488 -> 197 [penwidth=1, color=black];\n\t488 -> 204 [penwidth=1, color=black];\n\t488 -> 307 [penwidth=1, color=black];\n\t488 -> 326 [penwidth=1, color=black];\n\t488 -> 338 [penwidth=1, color=black];\n\t488 -> 339 [penwidth=1, color=black];\n\t488 -> 397 [penwidth=1, color=black];\n\t488 -> 1433 [penwidth=1, color=black];\n\t488 -> 1435 [penwidth=\"2.9459101490553135\", color=black];\n\t489 -> 135 [penwidth=1, color=black];\n\t489 -> 136 [penwidth=1, color=black];\n\t489 -> 286 [penwidth=1, color=black];\n\t489 -> 1383 [penwidth=1, color=black];\n\t489 -> 1871 [penwidth=1, color=black];\n\t490 -> 283 [penwidth=1, color=black];\n\t490 -> 284 [penwidth=1, color=black];\n\t490 -> 285 [penwidth=1, color=black];\n\t490 -> 288 [penwidth=1, color=black];\n\t490 -> 1373 [penwidth=1, color=black];\n\t490 -> 1433 [penwidth=1, color=black];\n\t490 -> 1435 [penwidth=\"2.09861228866811\", color=black];\n\t491 -> 95 [penwidth=1, color=black];\n\t491 -> 102 [penwidth=1, color=black];\n\t491 -> 231 [penwidth=1, color=black];\n\t491 -> 238 [penwidth=1, color=black];\n\t491 -> 318 [penwidth=1, color=black];\n\t491 -> 332 [penwidth=1, color=black];\n\t491 -> 378 [penwidth=1, color=black];\n\t491 -> 380 [penwidth=1, color=black];\n\t491 -> 1435 [penwidth=\"3.0794415416798357\", color=black];\n\t492 -> 299 [penwidth=1, color=black];\n\t492 -> 1373 [penwidth=1, color=black];\n\t492 -> 1376 [penwidth=1, color=black];\n\t492 -> 1394 [penwidth=1, color=black];\n\t493 -> 300 [penwidth=1, color=black];\n\t493 -> 356 [penwidth=1, color=black];\n\t493 -> 358 [penwidth=1, color=black];\n\t494 -> 151 [penwidth=\"1.6931471805599454\", color=black];\n\t494 -> 260 [penwidth=\"1.6931471805599454\", color=black];\n\t494 -> 268 [penwidth=\"1.6931471805599454\", color=black];\n\t494 -> 1373 [penwidth=1, color=black];\n\t494 -> 1435 [penwidth=\"2.09861228866811\", color=black];\n\t494 -> 1871 [penwidth=1, color=black];\n\t495 -> 169 [penwidth=1, color=black];\n\t495 -> 170 [penwidth=1, color=black];\n\t495 -> 171 [penwidth=1, color=black];\n\t495 -> 172 [penwidth=1, color=black];\n\t495 -> 1435 [penwidth=\"2.386294361119891\", color=black];\n\t496 -> 247 [penwidth=1, color=black];\n\t496 -> 250 [penwidth=1, color=black];\n\t496 -> 335 [penwidth=1, color=black];\n\t496 -> 349 [penwidth=1, color=black];\n\t496 -> 355 [penwidth=1, color=black];\n\t496 -> 1435 [penwidth=\"2.6094379124341005\", color=black];\n\t497 -> 89 [penwidth=1, color=black];\n\t497 -> 90 [penwidth=1, color=black];\n\t497 -> 116 [penwidth=1, color=black];\n\t497 -> 150 [penwidth=1, color=black];\n\t497 -> 156 [penwidth=1, color=black];\n\t497 -> 1435 [penwidth=\"2.386294361119891\", color=black];\n\t498 -> 152 [penwidth=1, color=black];\n\t498 -> 161 [penwidth=1, color=black];\n\t498 -> 225 [penwidth=1, color=black];\n\t498 -> 304 [penwidth=1, color=black];\n\t498 -> 465 [penwidth=\"2.09861228866811\", color=black];\n\t498 -> 1350 [penwidth=1, color=black];\n\t498 -> 1392 [penwidth=1, color=black];\n\t498 -> 1393 [penwidth=1, color=black];\n\t498 -> 1440 [penwidth=1, color=black];\n\t499 -> 322 [penwidth=1, color=black];\n\t499 -> 464 [penwidth=\"1.6931471805599454\", color=black];\n\t499 -> 1375 [penwidth=1, color=black];\n\t500 -> 198 [penwidth=1, color=black];\n\t500 -> 264 [penwidth=1, color=black];\n\t500 -> 270 [penwidth=1, color=black];\n\t500 -> 1383 [penwidth=1, color=black];\n\t500 -> 1871 [penwidth=1, color=black];\n\t501 -> 311 [penwidth=1, color=black];\n\t501 -> 325 [penwidth=1, color=black];\n\t501 -> 341 [penwidth=1, color=black];\n\t501 -> 1435 [penwidth=\"2.09861228866811\", color=black];\n\t502 -> 153 [penwidth=1, color=black];\n\t502 -> 155 [penwidth=1, color=black];\n\t502 -> 157 [penwidth=1, color=black];\n\t502 -> 261 [penwidth=1, color=black];\n\t502 -> 387 [penwidth=1, color=black];\n\t502 -> 1435 [penwidth=\"2.6094379124341005\", color=black];\n\t503 -> 100 [penwidth=1, color=black];\n\t503 -> 101 [penwidth=1, color=black];\n\t503 -> 106 [penwidth=1, color=black];\n\t503 -> 112 [penwidth=1, color=black];\n\t503 -> 129 [penwidth=1, color=black];\n\t503 -> 139 [penwidth=1, color=black];\n\t503 -> 140 [penwidth=1, color=black];\n\t503 -> 147 [penwidth=1, color=black];\n\t503 -> 148 [penwidth=1, color=black];\n\t503 -> 162 [penwidth=1, color=black];\n\t503 -> 183 [penwidth=1, color=black];\n\t503 -> 186 [penwidth=1, color=black];\n\t503 -> 192 [penwidth=1, color=black];\n\t503 -> 193 [penwidth=1, color=black];\n\t503 -> 194 [penwidth=1, color=black];\n\t503 -> 240 [penwidth=1, color=black];\n\t503 -> 241 [penwidth=1, color=black];\n\t503 -> 242 [penwidth=1, color=black];\n\t503 -> 243 [penwidth=1, color=black];\n\t503 -> 271 [penwidth=1, color=black];\n\t503 -> 274 [penwidth=1, color=black];\n\t503 -> 292 [penwidth=1, color=black];\n\t503 -> 295 [penwidth=1, color=black];\n\t503 -> 298 [penwidth=1, color=black];\n\t503 -> 301 [penwidth=1, color=black];\n\t503 -> 303 [penwidth=1, color=black];\n\t503 -> 320 [penwidth=1, color=black];\n\t503 -> 343 [penwidth=1, color=black];\n\t503 -> 369 [penwidth=1, color=black];\n\t503 -> 381 [penwidth=1, color=black];\n\t503 -> 382 [penwidth=1, color=black];\n\t503 -> 384 [penwidth=1, color=black];\n\t503 -> 1435 [penwidth=\"4.401197381662156\", color=black];\n\t503 -> 1436 [penwidth=\"1.6931471805599454\", color=black];\n\t504 -> 91 [penwidth=1, color=black];\n\t504 -> 174 [penwidth=1, color=black];\n\t504 -> 262 [penwidth=1, color=black];\n\t504 -> 306 [penwidth=1, color=black];\n\t504 -> 310 [penwidth=1, color=black];\n\t504 -> 360 [penwidth=1, color=black];\n\t504 -> 383 [penwidth=1, color=black];\n\t504 -> 1435 [penwidth=\"2.9459101490553135\", color=black];\n\t505 -> 356 [penwidth=1, color=black];\n\t505 -> 1373 [penwidth=1, color=black];\n\t505 -> 1378 [penwidth=1, color=black];\n\t505 -> 1394 [penwidth=1, color=black];\n\t505 -> 1440 [penwidth=\"1.6931471805599454\", color=black];\n\t506 -> 362 [penwidth=1, color=black];\n\t506 -> 363 [penwidth=1, color=black];\n\t506 -> 364 [penwidth=1, color=black];\n\t507 -> 333 [penwidth=1, color=black];\n\t507 -> 457 [penwidth=1, color=black];\n\t507 -> 1439 [penwidth=1, color=black];\n\t508 -> 405 [penwidth=1, color=black];\n\t508 -> 466 [penwidth=1, color=black];\n\t509 -> 389 [penwidth=1, color=black];\n\t509 -> 390 [penwidth=1, color=black];\n\t509 -> 392 [penwidth=1, color=black];\n\t509 -> 1435 [penwidth=\"2.09861228866811\", color=black];\n\t510 -> 391 [penwidth=1, color=black];\n\t510 -> 1394 [penwidth=\"2.09861228866811\", color=black];\n\t511 -> 1440 [penwidth=1, color=black];\n\t512 -> 1373 [penwidth=1, color=black];\n\t512 -> 1442 [penwidth=\"1.6931471805599454\", color=black];\n\t513 -> 1373 [penwidth=1, color=black];\n\t514 -> 1394 [penwidth=1, color=black];\n\t515 -> 599 [penwidth=1, color=black];\n\t515 -> 1363 [penwidth=1, color=black];\n\t515 -> 1454 [penwidth=1, color=black];\n\t517 -> 85 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 86 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 87 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 88 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 93 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 94 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 104 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 105 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 108 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 109 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 110 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 111 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 113 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 117 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 118 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 121 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 123 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 125 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 126 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 130 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 131 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 132 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 133 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 134 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 141 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 143 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 144 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 145 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 149 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 154 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 160 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 163 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 164 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 165 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 166 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 167 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 175 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 176 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 177 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 178 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 179 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 180 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 181 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 182 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 188 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 189 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 190 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 202 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 205 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 207 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 212 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 213 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 214 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 215 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 216 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 217 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 218 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 219 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 220 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 221 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 222 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 223 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 224 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 226 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 227 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 228 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 229 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 230 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 233 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 234 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 235 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 239 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 245 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 246 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 248 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 249 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 251 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 252 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 253 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 259 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 265 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 269 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 272 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 273 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 276 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 277 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 278 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 279 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 280 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 282 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 287 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 289 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 290 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 291 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 293 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 294 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 296 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 297 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 305 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 308 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 309 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 312 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 313 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 314 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 315 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 319 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 323 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 324 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 327 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 329 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 330 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 334 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 336 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 337 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 340 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 342 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 344 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 345 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 347 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 348 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 350 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 351 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 352 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 354 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 359 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 361 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 366 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 367 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 370 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 371 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 372 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 373 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 374 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 375 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 376 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 379 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 385 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 386 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 388 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 394 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 395 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 396 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 398 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 399 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 401 [penwidth=\"1.6931471805599454\", color=black];\n\t518 -> 412 [penwidth=1, color=black];\n\t518 -> 413 [penwidth=1, color=black];\n\t518 -> 417 [penwidth=1, color=black];\n\t518 -> 420 [penwidth=1, color=black];\n\t518 -> 435 [penwidth=1, color=black];\n\t518 -> 1435 [penwidth=\"2.6094379124341005\", color=black];\n\t519 -> 82 [penwidth=1, color=black];\n\t519 -> 377 [penwidth=1, color=black];\n\t519 -> 429 [penwidth=1, color=black];\n\t520 -> 316 [penwidth=1, color=black];\n\t520 -> 317 [penwidth=1, color=black];\n\t521 -> 122 [penwidth=1, color=black];\n\t521 -> 281 [penwidth=1, color=black];\n\t522 -> 258 [penwidth=1, color=black];\n\t523 -> 263 [penwidth=1, color=black];\n\t523 -> 400 [penwidth=1, color=black];\n\t524 -> 187 [penwidth=1, color=black];\n\t524 -> 321 [penwidth=1, color=black];\n\t524 -> 365 [penwidth=1, color=black];\n\t525 -> 210 [penwidth=1, color=black];\n\t526 -> 206 [penwidth=1, color=black];\n\t527 -> 208 [penwidth=1, color=black];\n\t529 -> 300 [penwidth=1, color=black];\n\t529 -> 358 [penwidth=1, color=black];\n\t530 -> 152 [penwidth=1, color=black];\n\t530 -> 516 [penwidth=1, color=black];\n\t530 -> 1463 [penwidth=1, color=black];\n\t532 -> 264 [penwidth=1, color=black];\n\t534 -> 333 [penwidth=1, color=black];\n\t535 -> 120 [penwidth=1, color=black];\n\t538 -> 225 [penwidth=1, color=black];\n\t542 -> 213 [penwidth=1, color=black];\n\t542 -> 365 [penwidth=1, color=black];\n\t543 -> 187 [penwidth=1, color=black];\n\t543 -> 213 [penwidth=1, color=black];\n\t544 -> 1266 [penwidth=1, color=black];\n\t545 -> 1268 [penwidth=1, color=black];\n\t547 -> 304 [penwidth=1, color=black];\n\t549 -> 213 [penwidth=1, color=black];\n\t549 -> 321 [penwidth=1, color=black];\n\t550 -> 159 [penwidth=1, color=black];\n\t550 -> 275 [penwidth=1, color=black];\n\t551 -> 84 [penwidth=1, color=black];\n\t552 -> 99 [penwidth=1, color=black];\n\t552 -> 119 [penwidth=1, color=black];\n\t552 -> 128 [penwidth=1, color=black];\n\t552 -> 137 [penwidth=1, color=black];\n\t552 -> 191 [penwidth=1, color=black];\n\t552 -> 254 [penwidth=1, color=black];\n\t552 -> 267 [penwidth=1, color=black];\n\t552 -> 377 [penwidth=1, color=black];\n\t552 -> 393 [penwidth=1, color=black];\n\t553 -> 98 [penwidth=1, color=black];\n\t553 -> 232 [penwidth=1, color=black];\n\t553 -> 328 [penwidth=1, color=black];\n\t554 -> 82 [penwidth=1, color=black];\n\t555 -> 316 [penwidth=1, color=black];\n\t555 -> 317 [penwidth=1, color=black];\n\t555 -> 1455 [penwidth=1, color=black];\n\t556 -> 85 [penwidth=1, color=black];\n\t556 -> 86 [penwidth=1, color=black];\n\t556 -> 87 [penwidth=1, color=black];\n\t556 -> 88 [penwidth=1, color=black];\n\t556 -> 93 [penwidth=1, color=black];\n\t556 -> 94 [penwidth=1, color=black];\n\t556 -> 104 [penwidth=1, color=black];\n\t556 -> 105 [penwidth=1, color=black];\n\t556 -> 108 [penwidth=1, color=black];\n\t556 -> 109 [penwidth=1, color=black];\n\t556 -> 110 [penwidth=1, color=black];\n\t556 -> 111 [penwidth=1, color=black];\n\t556 -> 113 [penwidth=1, color=black];\n\t556 -> 117 [penwidth=1, color=black];\n\t556 -> 118 [penwidth=1, color=black];\n\t556 -> 121 [penwidth=1, color=black];\n\t556 -> 123 [penwidth=1, color=black];\n\t556 -> 125 [penwidth=1, color=black];\n\t556 -> 126 [penwidth=1, color=black];\n\t556 -> 130 [penwidth=1, color=black];\n\t556 -> 131 [penwidth=1, color=black];\n\t556 -> 132 [penwidth=1, color=black];\n\t556 -> 133 [penwidth=1, color=black];\n\t556 -> 134 [penwidth=1, color=black];\n\t556 -> 141 [penwidth=1, color=black];\n\t556 -> 143 [penwidth=1, color=black];\n\t556 -> 144 [penwidth=1, color=black];\n\t556 -> 145 [penwidth=1, color=black];\n\t556 -> 149 [penwidth=1, color=black];\n\t556 -> 154 [penwidth=1, color=black];\n\t556 -> 160 [penwidth=1, color=black];\n\t556 -> 163 [penwidth=1, color=black];\n\t556 -> 164 [penwidth=1, color=black];\n\t556 -> 165 [penwidth=1, color=black];\n\t556 -> 166 [penwidth=1, color=black];\n\t556 -> 167 [penwidth=1, color=black];\n\t556 -> 175 [penwidth=1, color=black];\n\t556 -> 176 [penwidth=1, color=black];\n\t556 -> 177 [penwidth=1, color=black];\n\t556 -> 178 [penwidth=1, color=black];\n\t556 -> 179 [penwidth=1, color=black];\n\t556 -> 180 [penwidth=1, color=black];\n\t556 -> 181 [penwidth=1, color=black];\n\t556 -> 182 [penwidth=1, color=black];\n\t556 -> 188 [penwidth=1, color=black];\n\t556 -> 189 [penwidth=1, color=black];\n\t556 -> 190 [penwidth=1, color=black];\n\t556 -> 202 [penwidth=1, color=black];\n\t556 -> 205 [penwidth=1, color=black];\n\t556 -> 207 [penwidth=1, color=black];\n\t556 -> 212 [penwidth=1, color=black];\n\t556 -> 213 [penwidth=1, color=black];\n\t556 -> 214 [penwidth=1, color=black];\n\t556 -> 215 [penwidth=1, color=black];\n\t556 -> 216 [penwidth=1, color=black];\n\t556 -> 217 [penwidth=1, color=black];\n\t556 -> 218 [penwidth=1, color=black];\n\t556 -> 219 [penwidth=1, color=black];\n\t556 -> 220 [penwidth=1, color=black];\n\t556 -> 221 [penwidth=1, color=black];\n\t556 -> 222 [penwidth=1, color=black];\n\t556 -> 223 [penwidth=1, color=black];\n\t556 -> 224 [penwidth=1, color=black];\n\t556 -> 226 [penwidth=1, color=black];\n\t556 -> 227 [penwidth=1, color=black];\n\t556 -> 228 [penwidth=1, color=black];\n\t556 -> 229 [penwidth=1, color=black];\n\t556 -> 230 [penwidth=1, color=black];\n\t556 -> 233 [penwidth=1, color=black];\n\t556 -> 234 [penwidth=1, color=black];\n\t556 -> 235 [penwidth=1, color=black];\n\t556 -> 239 [penwidth=1, color=black];\n\t556 -> 245 [penwidth=1, color=black];\n\t556 -> 246 [penwidth=1, color=black];\n\t556 -> 248 [penwidth=1, color=black];\n\t556 -> 249 [penwidth=1, color=black];\n\t556 -> 251 [penwidth=1, color=black];\n\t556 -> 252 [penwidth=1, color=black];\n\t556 -> 253 [penwidth=1, color=black];\n\t556 -> 259 [penwidth=1, color=black];\n\t556 -> 265 [penwidth=1, color=black];\n\t556 -> 269 [penwidth=1, color=black];\n\t556 -> 272 [penwidth=1, color=black];\n\t556 -> 273 [penwidth=1, color=black];\n\t556 -> 276 [penwidth=1, color=black];\n\t556 -> 277 [penwidth=1, color=black];\n\t556 -> 278 [penwidth=1, color=black];\n\t556 -> 279 [penwidth=1, color=black];\n\t556 -> 280 [penwidth=1, color=black];\n\t556 -> 282 [penwidth=1, color=black];\n\t556 -> 287 [penwidth=1, color=black];\n\t556 -> 289 [penwidth=1, color=black];\n\t556 -> 290 [penwidth=1, color=black];\n\t556 -> 291 [penwidth=1, color=black];\n\t556 -> 293 [penwidth=1, color=black];\n\t556 -> 294 [penwidth=1, color=black];\n\t556 -> 296 [penwidth=1, color=black];\n\t556 -> 297 [penwidth=1, color=black];\n\t556 -> 305 [penwidth=1, color=black];\n\t556 -> 308 [penwidth=1, color=black];\n\t556 -> 309 [penwidth=1, color=black];\n\t556 -> 312 [penwidth=1, color=black];\n\t556 -> 313 [penwidth=1, color=black];\n\t556 -> 314 [penwidth=1, color=black];\n\t556 -> 315 [penwidth=1, color=black];\n\t556 -> 319 [penwidth=1, color=black];\n\t556 -> 323 [penwidth=1, color=black];\n\t556 -> 324 [penwidth=1, color=black];\n\t556 -> 327 [penwidth=1, color=black];\n\t556 -> 329 [penwidth=1, color=black];\n\t556 -> 330 [penwidth=1, color=black];\n\t556 -> 334 [penwidth=1, color=black];\n\t556 -> 336 [penwidth=1, color=black];\n\t556 -> 337 [penwidth=1, color=black];\n\t556 -> 340 [penwidth=1, color=black];\n\t556 -> 342 [penwidth=1, color=black];\n\t556 -> 344 [penwidth=1, color=black];\n\t556 -> 345 [penwidth=1, color=black];\n\t556 -> 347 [penwidth=1, color=black];\n\t556 -> 348 [penwidth=1, color=black];\n\t556 -> 350 [penwidth=1, color=black];\n\t556 -> 351 [penwidth=1, color=black];\n\t556 -> 352 [penwidth=1, color=black];\n\t556 -> 354 [penwidth=1, color=black];\n\t556 -> 359 [penwidth=1, color=black];\n\t556 -> 361 [penwidth=1, color=black];\n\t556 -> 366 [penwidth=1, color=black];\n\t556 -> 367 [penwidth=1, color=black];\n\t556 -> 370 [penwidth=1, color=black];\n\t556 -> 371 [penwidth=1, color=black];\n\t556 -> 372 [penwidth=1, color=black];\n\t556 -> 373 [penwidth=1, color=black];\n\t556 -> 374 [penwidth=1, color=black];\n\t556 -> 375 [penwidth=1, color=black];\n\t556 -> 376 [penwidth=1, color=black];\n\t556 -> 379 [penwidth=1, color=black];\n\t556 -> 385 [penwidth=1, color=black];\n\t556 -> 386 [penwidth=1, color=black];\n\t556 -> 388 [penwidth=1, color=black];\n\t556 -> 394 [penwidth=1, color=black];\n\t556 -> 395 [penwidth=1, color=black];\n\t556 -> 396 [penwidth=1, color=black];\n\t556 -> 398 [penwidth=1, color=black];\n\t556 -> 399 [penwidth=1, color=black];\n\t556 -> 401 [penwidth=1, color=black];\n\t556 -> 1464 [penwidth=\"5.969813299576001\", color=black];\n\t557 -> 173 [penwidth=1, color=black];\n\t557 -> 237 [penwidth=1, color=black];\n\t557 -> 255 [penwidth=1, color=black];\n\t558 -> 142 [penwidth=1, color=black];\n\t558 -> 185 [penwidth=1, color=black];\n\t558 -> 256 [penwidth=1, color=black];\n\t559 -> 122 [penwidth=1, color=black];\n\t559 -> 281 [penwidth=1, color=black];\n\t560 -> 92 [penwidth=1, color=black];\n\t560 -> 97 [penwidth=1, color=black];\n\t560 -> 168 [penwidth=1, color=black];\n\t560 -> 257 [penwidth=1, color=black];\n\t561 -> 114 [penwidth=1, color=black];\n\t561 -> 236 [penwidth=1, color=black];\n\t561 -> 258 [penwidth=1, color=black];\n\t561 -> 302 [penwidth=1, color=black];\n\t561 -> 357 [penwidth=1, color=black];\n\t562 -> 263 [penwidth=1, color=black];\n\t562 -> 400 [penwidth=1, color=black];\n\t563 -> 199 [penwidth=1, color=black];\n\t563 -> 200 [penwidth=1, color=black];\n\t563 -> 201 [penwidth=1, color=black];\n\t564 -> 187 [penwidth=1, color=black];\n\t564 -> 321 [penwidth=1, color=black];\n\t564 -> 365 [penwidth=1, color=black];\n\t564 -> 1454 [penwidth=1, color=black];\n\t565 -> 83 [penwidth=1, color=black];\n\t565 -> 209 [penwidth=1, color=black];\n\t565 -> 210 [penwidth=1, color=black];\n\t566 -> 206 [penwidth=1, color=black];\n\t567 -> 208 [penwidth=1, color=black];\n\t567 -> 211 [penwidth=1, color=black];\n\t567 -> 409 [penwidth=1, color=black];\n\t568 -> 184 [penwidth=1, color=black];\n\t568 -> 196 [penwidth=1, color=black];\n\t568 -> 203 [penwidth=1, color=black];\n\t568 -> 244 [penwidth=1, color=black];\n\t569 -> 107 [penwidth=1, color=black];\n\t569 -> 346 [penwidth=1, color=black];\n\t569 -> 368 [penwidth=1, color=black];\n\t570 -> 103 [penwidth=1, color=black];\n\t570 -> 146 [penwidth=1, color=black];\n\t570 -> 266 [penwidth=1, color=black];\n\t571 -> 115 [penwidth=1, color=black];\n\t571 -> 197 [penwidth=1, color=black];\n\t571 -> 204 [penwidth=1, color=black];\n\t571 -> 307 [penwidth=1, color=black];\n\t571 -> 326 [penwidth=1, color=black];\n\t571 -> 338 [penwidth=1, color=black];\n\t571 -> 339 [penwidth=1, color=black];\n\t571 -> 397 [penwidth=1, color=black];\n\t572 -> 135 [penwidth=1, color=black];\n\t572 -> 136 [penwidth=1, color=black];\n\t572 -> 286 [penwidth=1, color=black];\n\t573 -> 283 [penwidth=1, color=black];\n\t573 -> 284 [penwidth=1, color=black];\n\t573 -> 285 [penwidth=1, color=black];\n\t573 -> 288 [penwidth=1, color=black];\n\t574 -> 95 [penwidth=1, color=black];\n\t574 -> 102 [penwidth=1, color=black];\n\t574 -> 231 [penwidth=1, color=black];\n\t574 -> 238 [penwidth=1, color=black];\n\t574 -> 318 [penwidth=1, color=black];\n\t574 -> 332 [penwidth=1, color=black];\n\t574 -> 378 [penwidth=1, color=black];\n\t574 -> 380 [penwidth=1, color=black];\n\t575 -> 299 [penwidth=1, color=black];\n\t575 -> 1455 [penwidth=1, color=black];\n\t575 -> 1871 [penwidth=1, color=black];\n\t576 -> 300 [penwidth=1, color=black];\n\t576 -> 358 [penwidth=1, color=black];\n\t577 -> 151 [penwidth=1, color=black];\n\t577 -> 260 [penwidth=1, color=black];\n\t577 -> 268 [penwidth=1, color=black];\n\t578 -> 169 [penwidth=1, color=black];\n\t578 -> 170 [penwidth=1, color=black];\n\t578 -> 171 [penwidth=1, color=black];\n\t578 -> 172 [penwidth=1, color=black];\n\t579 -> 247 [penwidth=1, color=black];\n\t579 -> 250 [penwidth=1, color=black];\n\t579 -> 335 [penwidth=1, color=black];\n\t579 -> 349 [penwidth=1, color=black];\n\t579 -> 355 [penwidth=1, color=black];\n\t580 -> 89 [penwidth=1, color=black];\n\t580 -> 90 [penwidth=1, color=black];\n\t580 -> 116 [penwidth=1, color=black];\n\t580 -> 150 [penwidth=1, color=black];\n\t580 -> 156 [penwidth=1, color=black];\n\t581 -> 152 [penwidth=1, color=black];\n\t581 -> 161 [penwidth=1, color=black];\n\t581 -> 225 [penwidth=1, color=black];\n\t581 -> 304 [penwidth=1, color=black];\n\t581 -> 515 [penwidth=\"1.6931471805599454\", color=black];\n\t581 -> 599 [penwidth=\"1.6931471805599454\", color=black];\n\t582 -> 322 [penwidth=1, color=black];\n\t582 -> 1455 [penwidth=1, color=black];\n\t583 -> 198 [penwidth=1, color=black];\n\t583 -> 264 [penwidth=1, color=black];\n\t583 -> 270 [penwidth=1, color=black];\n\t584 -> 311 [penwidth=1, color=black];\n\t584 -> 325 [penwidth=1, color=black];\n\t584 -> 341 [penwidth=1, color=black];\n\t585 -> 153 [penwidth=1, color=black];\n\t585 -> 155 [penwidth=1, color=black];\n\t585 -> 157 [penwidth=1, color=black];\n\t585 -> 261 [penwidth=1, color=black];\n\t585 -> 387 [penwidth=1, color=black];\n\t586 -> 100 [penwidth=1, color=black];\n\t586 -> 101 [penwidth=1, color=black];\n\t586 -> 106 [penwidth=1, color=black];\n\t586 -> 112 [penwidth=1, color=black];\n\t586 -> 129 [penwidth=1, color=black];\n\t586 -> 139 [penwidth=1, color=black];\n\t586 -> 140 [penwidth=1, color=black];\n\t586 -> 147 [penwidth=1, color=black];\n\t586 -> 148 [penwidth=1, color=black];\n\t586 -> 162 [penwidth=1, color=black];\n\t586 -> 183 [penwidth=1, color=black];\n\t586 -> 186 [penwidth=1, color=black];\n\t586 -> 192 [penwidth=1, color=black];\n\t586 -> 193 [penwidth=1, color=black];\n\t586 -> 194 [penwidth=1, color=black];\n\t586 -> 240 [penwidth=1, color=black];\n\t586 -> 241 [penwidth=1, color=black];\n\t586 -> 242 [penwidth=1, color=black];\n\t586 -> 243 [penwidth=1, color=black];\n\t586 -> 271 [penwidth=1, color=black];\n\t586 -> 274 [penwidth=1, color=black];\n\t586 -> 292 [penwidth=1, color=black];\n\t586 -> 295 [penwidth=1, color=black];\n\t586 -> 298 [penwidth=1, color=black];\n\t586 -> 301 [penwidth=1, color=black];\n\t586 -> 303 [penwidth=1, color=black];\n\t586 -> 320 [penwidth=1, color=black];\n\t586 -> 343 [penwidth=1, color=black];\n\t586 -> 369 [penwidth=1, color=black];\n\t586 -> 381 [penwidth=1, color=black];\n\t586 -> 382 [penwidth=1, color=black];\n\t586 -> 384 [penwidth=1, color=black];\n\t587 -> 91 [penwidth=1, color=black];\n\t587 -> 174 [penwidth=1, color=black];\n\t587 -> 262 [penwidth=1, color=black];\n\t587 -> 306 [penwidth=1, color=black];\n\t587 -> 310 [penwidth=1, color=black];\n\t587 -> 360 [penwidth=1, color=black];\n\t587 -> 383 [penwidth=1, color=black];\n\t588 -> 356 [penwidth=1, color=black];\n\t588 -> 1455 [penwidth=1, color=black];\n\t589 -> 362 [penwidth=1, color=black];\n\t589 -> 363 [penwidth=1, color=black];\n\t589 -> 364 [penwidth=1, color=black];\n\t590 -> 333 [penwidth=1, color=black];\n\t591 -> 96 [penwidth=1, color=black];\n\t591 -> 120 [penwidth=1, color=black];\n\t591 -> 124 [penwidth=1, color=black];\n\t591 -> 127 [penwidth=1, color=black];\n\t591 -> 138 [penwidth=1, color=black];\n\t591 -> 158 [penwidth=1, color=black];\n\t591 -> 195 [penwidth=1, color=black];\n\t591 -> 331 [penwidth=1, color=black];\n\t591 -> 353 [penwidth=1, color=black];\n\t592 -> 389 [penwidth=1, color=black];\n\t592 -> 390 [penwidth=1, color=black];\n\t592 -> 392 [penwidth=1, color=black];\n\t593 -> 414 [penwidth=1, color=black];\n\t593 -> 416 [penwidth=1, color=black];\n\t593 -> 606 [penwidth=1, color=black];\n\t593 -> 610 [penwidth=1, color=black];\n\t594 -> 409 [penwidth=1, color=black];\n\t599 -> 516 [penwidth=1, color=black];\n\t599 -> 1483 [penwidth=1, color=black];\n\t600 -> 94 [penwidth=1, color=black];\n\t600 -> 109 [penwidth=1, color=black];\n\t600 -> 110 [penwidth=1, color=black];\n\t600 -> 154 [penwidth=1, color=black];\n\t600 -> 163 [penwidth=1, color=black];\n\t600 -> 164 [penwidth=1, color=black];\n\t600 -> 167 [penwidth=1, color=black];\n\t600 -> 202 [penwidth=1, color=black];\n\t600 -> 207 [penwidth=1, color=black];\n\t600 -> 213 [penwidth=1, color=black];\n\t600 -> 220 [penwidth=1, color=black];\n\t600 -> 221 [penwidth=1, color=black];\n\t600 -> 259 [penwidth=1, color=black];\n\t600 -> 293 [penwidth=1, color=black];\n\t600 -> 294 [penwidth=1, color=black];\n\t600 -> 296 [penwidth=1, color=black];\n\t600 -> 312 [penwidth=1, color=black];\n\t600 -> 354 [penwidth=1, color=black];\n\t600 -> 366 [penwidth=1, color=black];\n\t600 -> 376 [penwidth=1, color=black];\n\t600 -> 379 [penwidth=1, color=black];\n\t600 -> 386 [penwidth=1, color=black];\n\t600 -> 388 [penwidth=1, color=black];\n\t601 -> 85 [penwidth=1, color=black];\n\t601 -> 86 [penwidth=1, color=black];\n\t601 -> 87 [penwidth=1, color=black];\n\t601 -> 109 [penwidth=1, color=black];\n\t601 -> 110 [penwidth=1, color=black];\n\t601 -> 111 [penwidth=1, color=black];\n\t601 -> 118 [penwidth=1, color=black];\n\t601 -> 125 [penwidth=1, color=black];\n\t601 -> 132 [penwidth=1, color=black];\n\t601 -> 143 [penwidth=1, color=black];\n\t601 -> 144 [penwidth=1, color=black];\n\t601 -> 145 [penwidth=1, color=black];\n\t601 -> 163 [penwidth=1, color=black];\n\t601 -> 164 [penwidth=1, color=black];\n\t601 -> 167 [penwidth=1, color=black];\n\t601 -> 176 [penwidth=1, color=black];\n\t601 -> 177 [penwidth=1, color=black];\n\t601 -> 178 [penwidth=1, color=black];\n\t601 -> 179 [penwidth=1, color=black];\n\t601 -> 180 [penwidth=1, color=black];\n\t601 -> 181 [penwidth=1, color=black];\n\t601 -> 188 [penwidth=1, color=black];\n\t601 -> 205 [penwidth=1, color=black];\n\t601 -> 207 [penwidth=1, color=black];\n\t601 -> 212 [penwidth=1, color=black];\n\t601 -> 213 [penwidth=1, color=black];\n\t601 -> 214 [penwidth=1, color=black];\n\t601 -> 215 [penwidth=1, color=black];\n\t601 -> 216 [penwidth=1, color=black];\n\t601 -> 217 [penwidth=1, color=black];\n\t601 -> 218 [penwidth=1, color=black];\n\t601 -> 219 [penwidth=1, color=black];\n\t601 -> 222 [penwidth=1, color=black];\n\t601 -> 223 [penwidth=1, color=black];\n\t601 -> 224 [penwidth=1, color=black];\n\t601 -> 227 [penwidth=1, color=black];\n\t601 -> 233 [penwidth=1, color=black];\n\t601 -> 249 [penwidth=1, color=black];\n\t601 -> 259 [penwidth=1, color=black];\n\t601 -> 294 [penwidth=1, color=black];\n\t601 -> 305 [penwidth=1, color=black];\n\t601 -> 334 [penwidth=1, color=black];\n\t601 -> 336 [penwidth=1, color=black];\n\t601 -> 347 [penwidth=1, color=black];\n\t601 -> 366 [penwidth=1, color=black];\n\t601 -> 370 [penwidth=1, color=black];\n\t601 -> 371 [penwidth=1, color=black];\n\t601 -> 372 [penwidth=1, color=black];\n\t601 -> 373 [penwidth=1, color=black];\n\t601 -> 374 [penwidth=1, color=black];\n\t601 -> 375 [penwidth=1, color=black];\n\t601 -> 376 [penwidth=1, color=black];\n\t601 -> 379 [penwidth=1, color=black];\n\t601 -> 386 [penwidth=1, color=black];\n\t601 -> 388 [penwidth=1, color=black];\n\t601 -> 398 [penwidth=1, color=black];\n\t602 -> 88 [penwidth=1, color=black];\n\t602 -> 93 [penwidth=1, color=black];\n\t602 -> 94 [penwidth=1, color=black];\n\t602 -> 104 [penwidth=1, color=black];\n\t602 -> 105 [penwidth=1, color=black];\n\t602 -> 108 [penwidth=1, color=black];\n\t602 -> 110 [penwidth=1, color=black];\n\t602 -> 111 [penwidth=1, color=black];\n\t602 -> 113 [penwidth=1, color=black];\n\t602 -> 117 [penwidth=1, color=black];\n\t602 -> 121 [penwidth=1, color=black];\n\t602 -> 123 [penwidth=1, color=black];\n\t602 -> 126 [penwidth=1, color=black];\n\t602 -> 130 [penwidth=1, color=black];\n\t602 -> 131 [penwidth=1, color=black];\n\t602 -> 133 [penwidth=1, color=black];\n\t602 -> 141 [penwidth=1, color=black];\n\t602 -> 149 [penwidth=1, color=black];\n\t602 -> 163 [penwidth=1, color=black];\n\t602 -> 164 [penwidth=1, color=black];\n\t602 -> 165 [penwidth=1, color=black];\n\t602 -> 166 [penwidth=1, color=black];\n\t602 -> 167 [penwidth=1, color=black];\n\t602 -> 188 [penwidth=1, color=black];\n\t602 -> 202 [penwidth=1, color=black];\n\t602 -> 207 [penwidth=1, color=black];\n\t602 -> 213 [penwidth=1, color=black];\n\t602 -> 220 [penwidth=1, color=black];\n\t602 -> 221 [penwidth=1, color=black];\n\t602 -> 226 [penwidth=1, color=black];\n\t602 -> 228 [penwidth=1, color=black];\n\t602 -> 229 [penwidth=1, color=black];\n\t602 -> 230 [penwidth=1, color=black];\n\t602 -> 234 [penwidth=1, color=black];\n\t602 -> 235 [penwidth=1, color=black];\n\t602 -> 239 [penwidth=1, color=black];\n\t602 -> 245 [penwidth=1, color=black];\n\t602 -> 246 [penwidth=1, color=black];\n\t602 -> 248 [penwidth=1, color=black];\n\t602 -> 251 [penwidth=1, color=black];\n\t602 -> 252 [penwidth=1, color=black];\n\t602 -> 253 [penwidth=1, color=black];\n\t602 -> 259 [penwidth=1, color=black];\n\t602 -> 265 [penwidth=1, color=black];\n\t602 -> 269 [penwidth=1, color=black];\n\t602 -> 272 [penwidth=1, color=black];\n\t602 -> 273 [penwidth=1, color=black];\n\t602 -> 276 [penwidth=1, color=black];\n\t602 -> 278 [penwidth=1, color=black];\n\t602 -> 279 [penwidth=1, color=black];\n\t602 -> 280 [penwidth=1, color=black];\n\t602 -> 282 [penwidth=1, color=black];\n\t602 -> 287 [penwidth=1, color=black];\n\t602 -> 289 [penwidth=1, color=black];\n\t602 -> 290 [penwidth=1, color=black];\n\t602 -> 291 [penwidth=1, color=black];\n\t602 -> 308 [penwidth=1, color=black];\n\t602 -> 309 [penwidth=1, color=black];\n\t602 -> 313 [penwidth=1, color=black];\n\t602 -> 314 [penwidth=1, color=black];\n\t602 -> 315 [penwidth=1, color=black];\n\t602 -> 319 [penwidth=1, color=black];\n\t602 -> 327 [penwidth=1, color=black];\n\t602 -> 329 [penwidth=1, color=black];\n\t602 -> 330 [penwidth=1, color=black];\n\t602 -> 340 [penwidth=1, color=black];\n\t602 -> 342 [penwidth=1, color=black];\n\t602 -> 347 [penwidth=1, color=black];\n\t602 -> 350 [penwidth=1, color=black];\n\t602 -> 352 [penwidth=1, color=black];\n\t602 -> 354 [penwidth=1, color=black];\n\t602 -> 359 [penwidth=1, color=black];\n\t602 -> 361 [penwidth=1, color=black];\n\t602 -> 367 [penwidth=1, color=black];\n\t602 -> 376 [penwidth=1, color=black];\n\t602 -> 385 [penwidth=1, color=black];\n\t602 -> 386 [penwidth=1, color=black];\n\t602 -> 388 [penwidth=1, color=black];\n\t602 -> 395 [penwidth=1, color=black];\n\t602 -> 396 [penwidth=1, color=black];\n\t603 -> 109 [penwidth=1, color=black];\n\t603 -> 110 [penwidth=1, color=black];\n\t603 -> 111 [penwidth=1, color=black];\n\t603 -> 134 [penwidth=1, color=black];\n\t603 -> 154 [penwidth=1, color=black];\n\t603 -> 160 [penwidth=1, color=black];\n\t603 -> 163 [penwidth=1, color=black];\n\t603 -> 164 [penwidth=1, color=black];\n\t603 -> 167 [penwidth=1, color=black];\n\t603 -> 175 [penwidth=1, color=black];\n\t603 -> 182 [penwidth=1, color=black];\n\t603 -> 188 [penwidth=1, color=black];\n\t603 -> 189 [penwidth=1, color=black];\n\t603 -> 190 [penwidth=1, color=black];\n\t603 -> 213 [penwidth=1, color=black];\n\t603 -> 221 [penwidth=1, color=black];\n\t603 -> 227 [penwidth=1, color=black];\n\t603 -> 245 [penwidth=1, color=black];\n\t603 -> 259 [penwidth=1, color=black];\n\t603 -> 277 [penwidth=1, color=black];\n\t603 -> 294 [penwidth=1, color=black];\n\t603 -> 296 [penwidth=1, color=black];\n\t603 -> 297 [penwidth=1, color=black];\n\t603 -> 305 [penwidth=1, color=black];\n\t603 -> 323 [penwidth=1, color=black];\n\t603 -> 324 [penwidth=1, color=black];\n\t603 -> 329 [penwidth=1, color=black];\n\t603 -> 337 [penwidth=1, color=black];\n\t603 -> 344 [penwidth=1, color=black];\n\t603 -> 345 [penwidth=1, color=black];\n\t603 -> 347 [penwidth=1, color=black];\n\t603 -> 348 [penwidth=1, color=black];\n\t603 -> 351 [penwidth=1, color=black];\n\t603 -> 354 [penwidth=1, color=black];\n\t603 -> 366 [penwidth=1, color=black];\n\t603 -> 376 [penwidth=1, color=black];\n\t603 -> 379 [penwidth=1, color=black];\n\t603 -> 386 [penwidth=1, color=black];\n\t603 -> 388 [penwidth=1, color=black];\n\t603 -> 394 [penwidth=1, color=black];\n\t603 -> 399 [penwidth=1, color=black];\n\t603 -> 401 [penwidth=1, color=black];\n\t604 -> 312 [penwidth=1, color=black];\n\t604 -> 388 [penwidth=1, color=black];\n\t605 -> 82 [penwidth=1, color=black];\n\t605 -> 393 [penwidth=1, color=black];\n\t605 -> 429 [penwidth=1, color=black];\n\t1201 -> 1075 [penwidth=1, color=black];\n\t1201 -> 1168 [penwidth=1, color=black];\n\t1201 -> 1188 [penwidth=1, color=black];\n\t1201 -> 1207 [penwidth=1, color=black];\n\t1202 -> 1074 [penwidth=1, color=black];\n\t1204 -> 1226 [penwidth=1, color=chartreuse];\n\t1206 -> 644 [penwidth=1, color=black];\n\t1206 -> 1188 [penwidth=1, color=black];\n\t1208 -> 644 [penwidth=1, color=black];\n\t1208 -> 1188 [penwidth=1, color=black];\n\t1208 -> 1429 [penwidth=1, color=black];\n\t1209 -> 644 [penwidth=1, color=black];\n\t1209 -> 1188 [penwidth=1, color=black];\n\t1209 -> 1429 [penwidth=1, color=black];\n\t1210 -> 611 [penwidth=1, color=black];\n\t1210 -> 642 [penwidth=1, color=black];\n\t1210 -> 643 [penwidth=1, color=black];\n\t1210 -> 651 [penwidth=1, color=black];\n\t1210 -> 652 [penwidth=1, color=black];\n\t1210 -> 690 [penwidth=1, color=black];\n\t1210 -> 752 [penwidth=1, color=black];\n\t1210 -> 871 [penwidth=1, color=black];\n\t1210 -> 872 [penwidth=1, color=black];\n\t1210 -> 1018 [penwidth=1, color=black];\n\t1210 -> 1024 [penwidth=1, color=black];\n\t1210 -> 1025 [penwidth=1, color=black];\n\t1210 -> 1043 [penwidth=1, color=black];\n\t1210 -> 1044 [penwidth=1, color=black];\n\t1210 -> 1056 [penwidth=1, color=black];\n\t1210 -> 1063 [penwidth=1, color=black];\n\t1210 -> 1064 [penwidth=1, color=black];\n\t1210 -> 1065 [penwidth=1, color=black];\n\t1210 -> 1066 [penwidth=1, color=black];\n\t1210 -> 1067 [penwidth=1, color=black];\n\t1210 -> 1073 [penwidth=1, color=black];\n\t1210 -> 1076 [penwidth=1, color=black];\n\t1210 -> 1077 [penwidth=1, color=black];\n\t1210 -> 1078 [penwidth=1, color=black];\n\t1210 -> 1079 [penwidth=1, color=black];\n\t1210 -> 1080 [penwidth=1, color=black];\n\t1210 -> 1086 [penwidth=1, color=black];\n\t1210 -> 1114 [penwidth=1, color=black];\n\t1210 -> 1115 [penwidth=1, color=black];\n\t1210 -> 1116 [penwidth=1, color=black];\n\t1210 -> 1142 [penwidth=1, color=black];\n\t1210 -> 1195 [penwidth=1, color=black];\n\t1210 -> 1196 [penwidth=1, color=black];\n\t1210 -> 1197 [penwidth=1, color=black];\n\t1210 -> 1198 [penwidth=1, color=black];\n\t1210 -> 1435 [penwidth=\"4.555348061489413\", color=black];\n\t1211 -> 644 [penwidth=1, color=black];\n\t1211 -> 873 [penwidth=1, color=black];\n\t1211 -> 1074 [penwidth=1, color=black];\n\t1211 -> 1075 [penwidth=1, color=black];\n\t1211 -> 1188 [penwidth=1, color=black];\n\t1211 -> 1373 [penwidth=1, color=black];\n\t1211 -> 1433 [penwidth=1, color=black];\n\t1211 -> 1440 [penwidth=1, color=black];\n\t1212 -> 645 [penwidth=1, color=black];\n\t1212 -> 1187 [penwidth=1, color=black];\n\t1212 -> 1435 [penwidth=1, color=black];\n\t1213 -> 612 [penwidth=1, color=black];\n\t1213 -> 613 [penwidth=1, color=black];\n\t1213 -> 614 [penwidth=1, color=black];\n\t1213 -> 615 [penwidth=1, color=black];\n\t1213 -> 616 [penwidth=1, color=black];\n\t1213 -> 617 [penwidth=1, color=black];\n\t1213 -> 618 [penwidth=1, color=black];\n\t1213 -> 619 [penwidth=1, color=black];\n\t1213 -> 620 [penwidth=1, color=black];\n\t1213 -> 621 [penwidth=1, color=black];\n\t1213 -> 622 [penwidth=1, color=black];\n\t1213 -> 623 [penwidth=1, color=black];\n\t1213 -> 624 [penwidth=1, color=black];\n\t1213 -> 625 [penwidth=1, color=black];\n\t1213 -> 626 [penwidth=1, color=black];\n\t1213 -> 627 [penwidth=1, color=black];\n\t1213 -> 628 [penwidth=1, color=black];\n\t1213 -> 629 [penwidth=1, color=black];\n\t1213 -> 630 [penwidth=1, color=black];\n\t1213 -> 631 [penwidth=1, color=black];\n\t1213 -> 632 [penwidth=1, color=black];\n\t1213 -> 633 [penwidth=1, color=black];\n\t1213 -> 634 [penwidth=1, color=black];\n\t1213 -> 635 [penwidth=1, color=black];\n\t1213 -> 636 [penwidth=1, color=black];\n\t1213 -> 637 [penwidth=1, color=black];\n\t1213 -> 638 [penwidth=1, color=black];\n\t1213 -> 639 [penwidth=1, color=black];\n\t1213 -> 640 [penwidth=1, color=black];\n\t1213 -> 641 [penwidth=1, color=black];\n\t1213 -> 646 [penwidth=1, color=black];\n\t1213 -> 647 [penwidth=1, color=black];\n\t1213 -> 648 [penwidth=1, color=black];\n\t1213 -> 649 [penwidth=1, color=black];\n\t1213 -> 650 [penwidth=1, color=black];\n\t1213 -> 653 [penwidth=1, color=black];\n\t1213 -> 654 [penwidth=1, color=black];\n\t1213 -> 655 [penwidth=1, color=black];\n\t1213 -> 656 [penwidth=1, color=black];\n\t1213 -> 657 [penwidth=1, color=black];\n\t1213 -> 658 [penwidth=1, color=black];\n\t1213 -> 659 [penwidth=1, color=black];\n\t1213 -> 660 [penwidth=1, color=black];\n\t1213 -> 661 [penwidth=1, color=black];\n\t1213 -> 662 [penwidth=1, color=black];\n\t1213 -> 663 [penwidth=1, color=black];\n\t1213 -> 664 [penwidth=1, color=black];\n\t1213 -> 665 [penwidth=1, color=black];\n\t1213 -> 666 [penwidth=1, color=black];\n\t1213 -> 667 [penwidth=1, color=black];\n\t1213 -> 668 [penwidth=1, color=black];\n\t1213 -> 669 [penwidth=1, color=black];\n\t1213 -> 670 [penwidth=1, color=black];\n\t1213 -> 671 [penwidth=1, color=black];\n\t1213 -> 672 [penwidth=1, color=black];\n\t1213 -> 673 [penwidth=1, color=black];\n\t1213 -> 674 [penwidth=1, color=black];\n\t1213 -> 675 [penwidth=1, color=black];\n\t1213 -> 676 [penwidth=1, color=black];\n\t1213 -> 677 [penwidth=1, color=black];\n\t1213 -> 678 [penwidth=1, color=black];\n\t1213 -> 679 [penwidth=1, color=black];\n\t1213 -> 680 [penwidth=1, color=black];\n\t1213 -> 681 [penwidth=1, color=black];\n\t1213 -> 682 [penwidth=1, color=black];\n\t1213 -> 683 [penwidth=1, color=black];\n\t1213 -> 684 [penwidth=1, color=black];\n\t1213 -> 685 [penwidth=1, color=black];\n\t1213 -> 686 [penwidth=1, color=black];\n\t1213 -> 687 [penwidth=1, color=black];\n\t1213 -> 688 [penwidth=1, color=black];\n\t1213 -> 689 [penwidth=1, color=black];\n\t1213 -> 691 [penwidth=1, color=black];\n\t1213 -> 692 [penwidth=1, color=black];\n\t1213 -> 693 [penwidth=1, color=black];\n\t1213 -> 694 [penwidth=1, color=black];\n\t1213 -> 695 [penwidth=1, color=black];\n\t1213 -> 696 [penwidth=1, color=black];\n\t1213 -> 697 [penwidth=1, color=black];\n\t1213 -> 698 [penwidth=1, color=black];\n\t1213 -> 699 [penwidth=1, color=black];\n\t1213 -> 700 [penwidth=1, color=black];\n\t1213 -> 701 [penwidth=1, color=black];\n\t1213 -> 702 [penwidth=1, color=black];\n\t1213 -> 703 [penwidth=1, color=black];\n\t1213 -> 704 [penwidth=1, color=black];\n\t1213 -> 705 [penwidth=1, color=black];\n\t1213 -> 706 [penwidth=1, color=black];\n\t1213 -> 707 [penwidth=1, color=black];\n\t1213 -> 708 [penwidth=1, color=black];\n\t1213 -> 709 [penwidth=1, color=black];\n\t1213 -> 710 [penwidth=1, color=black];\n\t1213 -> 711 [penwidth=1, color=black];\n\t1213 -> 712 [penwidth=1, color=black];\n\t1213 -> 713 [penwidth=1, color=black];\n\t1213 -> 714 [penwidth=1, color=black];\n\t1213 -> 715 [penwidth=1, color=black];\n\t1213 -> 716 [penwidth=1, color=black];\n\t1213 -> 717 [penwidth=1, color=black];\n\t1213 -> 718 [penwidth=1, color=black];\n\t1213 -> 719 [penwidth=1, color=black];\n\t1213 -> 720 [penwidth=1, color=black];\n\t1213 -> 721 [penwidth=1, color=black];\n\t1213 -> 722 [penwidth=1, color=black];\n\t1213 -> 723 [penwidth=1, color=black];\n\t1213 -> 724 [penwidth=1, color=black];\n\t1213 -> 725 [penwidth=1, color=black];\n\t1213 -> 726 [penwidth=1, color=black];\n\t1213 -> 727 [penwidth=1, color=black];\n\t1213 -> 728 [penwidth=1, color=black];\n\t1213 -> 729 [penwidth=1, color=black];\n\t1213 -> 730 [penwidth=1, color=black];\n\t1213 -> 731 [penwidth=1, color=black];\n\t1213 -> 732 [penwidth=1, color=black];\n\t1213 -> 733 [penwidth=1, color=black];\n\t1213 -> 734 [penwidth=1, color=black];\n\t1213 -> 735 [penwidth=1, color=black];\n\t1213 -> 736 [penwidth=1, color=black];\n\t1213 -> 737 [penwidth=1, color=black];\n\t1213 -> 738 [penwidth=1, color=black];\n\t1213 -> 739 [penwidth=1, color=black];\n\t1213 -> 740 [penwidth=1, color=black];\n\t1213 -> 741 [penwidth=1, color=black];\n\t1213 -> 742 [penwidth=1, color=black];\n\t1213 -> 743 [penwidth=1, color=black];\n\t1213 -> 744 [penwidth=1, color=black];\n\t1213 -> 745 [penwidth=1, color=black];\n\t1213 -> 746 [penwidth=1, color=black];\n\t1213 -> 747 [penwidth=1, color=black];\n\t1213 -> 748 [penwidth=1, color=black];\n\t1213 -> 749 [penwidth=1, color=black];\n\t1213 -> 750 [penwidth=1, color=black];\n\t1213 -> 751 [penwidth=1, color=black];\n\t1213 -> 753 [penwidth=1, color=black];\n\t1213 -> 754 [penwidth=1, color=black];\n\t1213 -> 755 [penwidth=1, color=black];\n\t1213 -> 756 [penwidth=1, color=black];\n\t1213 -> 757 [penwidth=1, color=black];\n\t1213 -> 758 [penwidth=1, color=black];\n\t1213 -> 759 [penwidth=1, color=black];\n\t1213 -> 760 [penwidth=1, color=black];\n\t1213 -> 761 [penwidth=1, color=black];\n\t1213 -> 762 [penwidth=1, color=black];\n\t1213 -> 763 [penwidth=1, color=black];\n\t1213 -> 764 [penwidth=1, color=black];\n\t1213 -> 765 [penwidth=1, color=black];\n\t1213 -> 766 [penwidth=1, color=black];\n\t1213 -> 767 [penwidth=1, color=black];\n\t1213 -> 768 [penwidth=1, color=black];\n\t1213 -> 769 [penwidth=1, color=black];\n\t1213 -> 770 [penwidth=1, color=black];\n\t1213 -> 771 [penwidth=1, color=black];\n\t1213 -> 772 [penwidth=1, color=black];\n\t1213 -> 773 [penwidth=1, color=black];\n\t1213 -> 774 [penwidth=1, color=black];\n\t1213 -> 775 [penwidth=1, color=black];\n\t1213 -> 776 [penwidth=1, color=black];\n\t1213 -> 777 [penwidth=1, color=black];\n\t1213 -> 778 [penwidth=1, color=black];\n\t1213 -> 779 [penwidth=1, color=black];\n\t1213 -> 780 [penwidth=1, color=black];\n\t1213 -> 781 [penwidth=1, color=black];\n\t1213 -> 782 [penwidth=1, color=black];\n\t1213 -> 783 [penwidth=1, color=black];\n\t1213 -> 784 [penwidth=1, color=black];\n\t1213 -> 785 [penwidth=1, color=black];\n\t1213 -> 786 [penwidth=1, color=black];\n\t1213 -> 787 [penwidth=1, color=black];\n\t1213 -> 788 [penwidth=1, color=black];\n\t1213 -> 789 [penwidth=1, color=black];\n\t1213 -> 790 [penwidth=1, color=black];\n\t1213 -> 791 [penwidth=1, color=black];\n\t1213 -> 792 [penwidth=1, color=black];\n\t1213 -> 793 [penwidth=1, color=black];\n\t1213 -> 794 [penwidth=1, color=black];\n\t1213 -> 795 [penwidth=1, color=black];\n\t1213 -> 796 [penwidth=1, color=black];\n\t1213 -> 797 [penwidth=1, color=black];\n\t1213 -> 798 [penwidth=1, color=black];\n\t1213 -> 799 [penwidth=1, color=black];\n\t1213 -> 800 [penwidth=1, color=black];\n\t1213 -> 801 [penwidth=1, color=black];\n\t1213 -> 802 [penwidth=1, color=black];\n\t1213 -> 803 [penwidth=1, color=black];\n\t1213 -> 804 [penwidth=1, color=black];\n\t1213 -> 805 [penwidth=1, color=black];\n\t1213 -> 806 [penwidth=1, color=black];\n\t1213 -> 807 [penwidth=1, color=black];\n\t1213 -> 808 [penwidth=1, color=black];\n\t1213 -> 809 [penwidth=1, color=black];\n\t1213 -> 810 [penwidth=1, color=black];\n\t1213 -> 811 [penwidth=1, color=black];\n\t1213 -> 812 [penwidth=1, color=black];\n\t1213 -> 813 [penwidth=1, color=black];\n\t1213 -> 814 [penwidth=1, color=black];\n\t1213 -> 815 [penwidth=1, color=black];\n\t1213 -> 816 [penwidth=1, color=black];\n\t1213 -> 817 [penwidth=1, color=black];\n\t1213 -> 818 [penwidth=1, color=black];\n\t1213 -> 819 [penwidth=1, color=black];\n\t1213 -> 820 [penwidth=1, color=black];\n\t1213 -> 821 [penwidth=1, color=black];\n\t1213 -> 822 [penwidth=1, color=black];\n\t1213 -> 823 [penwidth=1, color=black];\n\t1213 -> 824 [penwidth=1, color=black];\n\t1213 -> 825 [penwidth=1, color=black];\n\t1213 -> 826 [penwidth=1, color=black];\n\t1213 -> 827 [penwidth=1, color=black];\n\t1213 -> 828 [penwidth=1, color=black];\n\t1213 -> 829 [penwidth=1, color=black];\n\t1213 -> 830 [penwidth=1, color=black];\n\t1213 -> 831 [penwidth=1, color=black];\n\t1213 -> 832 [penwidth=1, color=black];\n\t1213 -> 833 [penwidth=1, color=black];\n\t1213 -> 834 [penwidth=1, color=black];\n\t1213 -> 835 [penwidth=1, color=black];\n\t1213 -> 836 [penwidth=1, color=black];\n\t1213 -> 837 [penwidth=1, color=black];\n\t1213 -> 838 [penwidth=1, color=black];\n\t1213 -> 839 [penwidth=1, color=black];\n\t1213 -> 840 [penwidth=1, color=black];\n\t1213 -> 841 [penwidth=1, color=black];\n\t1213 -> 842 [penwidth=1, color=black];\n\t1213 -> 843 [penwidth=1, color=black];\n\t1213 -> 844 [penwidth=1, color=black];\n\t1213 -> 845 [penwidth=1, color=black];\n\t1213 -> 846 [penwidth=1, color=black];\n\t1213 -> 847 [penwidth=1, color=black];\n\t1213 -> 848 [penwidth=1, color=black];\n\t1213 -> 849 [penwidth=1, color=black];\n\t1213 -> 850 [penwidth=1, color=black];\n\t1213 -> 851 [penwidth=1, color=black];\n\t1213 -> 852 [penwidth=1, color=black];\n\t1213 -> 853 [penwidth=1, color=black];\n\t1213 -> 854 [penwidth=1, color=black];\n\t1213 -> 855 [penwidth=1, color=black];\n\t1213 -> 856 [penwidth=1, color=black];\n\t1213 -> 857 [penwidth=1, color=black];\n\t1213 -> 858 [penwidth=1, color=black];\n\t1213 -> 859 [penwidth=1, color=black];\n\t1213 -> 860 [penwidth=1, color=black];\n\t1213 -> 861 [penwidth=1, color=black];\n\t1213 -> 862 [penwidth=1, color=black];\n\t1213 -> 863 [penwidth=1, color=black];\n\t1213 -> 864 [penwidth=1, color=black];\n\t1213 -> 865 [penwidth=1, color=black];\n\t1213 -> 866 [penwidth=1, color=black];\n\t1213 -> 867 [penwidth=1, color=black];\n\t1213 -> 868 [penwidth=1, color=black];\n\t1213 -> 869 [penwidth=1, color=black];\n\t1213 -> 870 [penwidth=1, color=black];\n\t1213 -> 874 [penwidth=1, color=black];\n\t1213 -> 875 [penwidth=1, color=black];\n\t1213 -> 876 [penwidth=1, color=black];\n\t1213 -> 877 [penwidth=1, color=black];\n\t1213 -> 878 [penwidth=1, color=black];\n\t1213 -> 879 [penwidth=1, color=black];\n\t1213 -> 880 [penwidth=1, color=black];\n\t1213 -> 881 [penwidth=1, color=black];\n\t1213 -> 882 [penwidth=1, color=black];\n\t1213 -> 883 [penwidth=1, color=black];\n\t1213 -> 884 [penwidth=1, color=black];\n\t1213 -> 885 [penwidth=1, color=black];\n\t1213 -> 886 [penwidth=1, color=black];\n\t1213 -> 887 [penwidth=1, color=black];\n\t1213 -> 888 [penwidth=1, color=black];\n\t1213 -> 889 [penwidth=1, color=black];\n\t1213 -> 890 [penwidth=1, color=black];\n\t1213 -> 891 [penwidth=1, color=black];\n\t1213 -> 892 [penwidth=1, color=black];\n\t1213 -> 893 [penwidth=1, color=black];\n\t1213 -> 894 [penwidth=1, color=black];\n\t1213 -> 895 [penwidth=1, color=black];\n\t1213 -> 896 [penwidth=1, color=black];\n\t1213 -> 897 [penwidth=1, color=black];\n\t1213 -> 898 [penwidth=1, color=black];\n\t1213 -> 899 [penwidth=1, color=black];\n\t1213 -> 900 [penwidth=1, color=black];\n\t1213 -> 901 [penwidth=1, color=black];\n\t1213 -> 902 [penwidth=1, color=black];\n\t1213 -> 903 [penwidth=1, color=black];\n\t1213 -> 904 [penwidth=1, color=black];\n\t1213 -> 905 [penwidth=1, color=black];\n\t1213 -> 906 [penwidth=1, color=black];\n\t1213 -> 907 [penwidth=1, color=black];\n\t1213 -> 908 [penwidth=1, color=black];\n\t1213 -> 909 [penwidth=1, color=black];\n\t1213 -> 910 [penwidth=1, color=black];\n\t1213 -> 911 [penwidth=1, color=black];\n\t1213 -> 912 [penwidth=1, color=black];\n\t1213 -> 913 [penwidth=1, color=black];\n\t1213 -> 914 [penwidth=1, color=black];\n\t1213 -> 915 [penwidth=1, color=black];\n\t1213 -> 916 [penwidth=1, color=black];\n\t1213 -> 917 [penwidth=1, color=black];\n\t1213 -> 918 [penwidth=1, color=black];\n\t1213 -> 919 [penwidth=1, color=black];\n\t1213 -> 920 [penwidth=1, color=black];\n\t1213 -> 921 [penwidth=1, color=black];\n\t1213 -> 922 [penwidth=1, color=black];\n\t1213 -> 923 [penwidth=1, color=black];\n\t1213 -> 924 [penwidth=1, color=black];\n\t1213 -> 925 [penwidth=1, color=black];\n\t1213 -> 926 [penwidth=1, color=black];\n\t1213 -> 927 [penwidth=1, color=black];\n\t1213 -> 928 [penwidth=1, color=black];\n\t1213 -> 929 [penwidth=1, color=black];\n\t1213 -> 930 [penwidth=1, color=black];\n\t1213 -> 931 [penwidth=1, color=black];\n\t1213 -> 932 [penwidth=1, color=black];\n\t1213 -> 933 [penwidth=1, color=black];\n\t1213 -> 934 [penwidth=1, color=black];\n\t1213 -> 935 [penwidth=1, color=black];\n\t1213 -> 936 [penwidth=1, color=black];\n\t1213 -> 937 [penwidth=1, color=black];\n\t1213 -> 938 [penwidth=1, color=black];\n\t1213 -> 939 [penwidth=1, color=black];\n\t1213 -> 940 [penwidth=1, color=black];\n\t1213 -> 941 [penwidth=1, color=black];\n\t1213 -> 942 [penwidth=1, color=black];\n\t1213 -> 943 [penwidth=1, color=black];\n\t1213 -> 944 [penwidth=1, color=black];\n\t1213 -> 945 [penwidth=1, color=black];\n\t1213 -> 946 [penwidth=1, color=black];\n\t1213 -> 947 [penwidth=1, color=black];\n\t1213 -> 948 [penwidth=1, color=black];\n\t1213 -> 949 [penwidth=1, color=black];\n\t1213 -> 950 [penwidth=1, color=black];\n\t1213 -> 951 [penwidth=1, color=black];\n\t1213 -> 952 [penwidth=1, color=black];\n\t1213 -> 953 [penwidth=1, color=black];\n\t1213 -> 954 [penwidth=1, color=black];\n\t1213 -> 955 [penwidth=1, color=black];\n\t1213 -> 956 [penwidth=1, color=black];\n\t1213 -> 957 [penwidth=1, color=black];\n\t1213 -> 958 [penwidth=1, color=black];\n\t1213 -> 959 [penwidth=1, color=black];\n\t1213 -> 960 [penwidth=1, color=black];\n\t1213 -> 961 [penwidth=1, color=black];\n\t1213 -> 962 [penwidth=1, color=black];\n\t1213 -> 963 [penwidth=1, color=black];\n\t1213 -> 964 [penwidth=1, color=black];\n\t1213 -> 965 [penwidth=1, color=black];\n\t1213 -> 966 [penwidth=1, color=black];\n\t1213 -> 967 [penwidth=1, color=black];\n\t1213 -> 968 [penwidth=1, color=black];\n\t1213 -> 969 [penwidth=1, color=black];\n\t1213 -> 970 [penwidth=1, color=black];\n\t1213 -> 971 [penwidth=1, color=black];\n\t1213 -> 972 [penwidth=1, color=black];\n\t1213 -> 973 [penwidth=1, color=black];\n\t1213 -> 974 [penwidth=1, color=black];\n\t1213 -> 975 [penwidth=1, color=black];\n\t1213 -> 976 [penwidth=1, color=black];\n\t1213 -> 977 [penwidth=1, color=black];\n\t1213 -> 978 [penwidth=1, color=black];\n\t1213 -> 979 [penwidth=1, color=black];\n\t1213 -> 980 [penwidth=1, color=black];\n\t1213 -> 981 [penwidth=1, color=black];\n\t1213 -> 982 [penwidth=1, color=black];\n\t1213 -> 983 [penwidth=1, color=black];\n\t1213 -> 984 [penwidth=1, color=black];\n\t1213 -> 985 [penwidth=1, color=black];\n\t1213 -> 986 [penwidth=1, color=black];\n\t1213 -> 987 [penwidth=1, color=black];\n\t1213 -> 988 [penwidth=1, color=black];\n\t1213 -> 989 [penwidth=1, color=black];\n\t1213 -> 990 [penwidth=1, color=black];\n\t1213 -> 991 [penwidth=1, color=black];\n\t1213 -> 992 [penwidth=1, color=black];\n\t1213 -> 993 [penwidth=1, color=black];\n\t1213 -> 994 [penwidth=1, color=black];\n\t1213 -> 995 [penwidth=1, color=black];\n\t1213 -> 996 [penwidth=1, color=black];\n\t1213 -> 997 [penwidth=1, color=black];\n\t1213 -> 998 [penwidth=1, color=black];\n\t1213 -> 999 [penwidth=1, color=black];\n\t1213 -> 1000 [penwidth=1, color=black];\n\t1213 -> 1001 [penwidth=1, color=black];\n\t1213 -> 1002 [penwidth=1, color=black];\n\t1213 -> 1003 [penwidth=1, color=black];\n\t1213 -> 1004 [penwidth=1, color=black];\n\t1213 -> 1005 [penwidth=1, color=black];\n\t1213 -> 1006 [penwidth=1, color=black];\n\t1213 -> 1007 [penwidth=1, color=black];\n\t1213 -> 1008 [penwidth=1, color=black];\n\t1213 -> 1009 [penwidth=1, color=black];\n\t1213 -> 1010 [penwidth=1, color=black];\n\t1213 -> 1011 [penwidth=1, color=black];\n\t1213 -> 1012 [penwidth=1, color=black];\n\t1213 -> 1013 [penwidth=1, color=black];\n\t1213 -> 1014 [penwidth=1, color=black];\n\t1213 -> 1015 [penwidth=1, color=black];\n\t1213 -> 1016 [penwidth=1, color=black];\n\t1213 -> 1017 [penwidth=1, color=black];\n\t1213 -> 1019 [penwidth=1, color=black];\n\t1213 -> 1020 [penwidth=1, color=black];\n\t1213 -> 1021 [penwidth=1, color=black];\n\t1213 -> 1022 [penwidth=1, color=black];\n\t1213 -> 1023 [penwidth=1, color=black];\n\t1213 -> 1026 [penwidth=1, color=black];\n\t1213 -> 1027 [penwidth=1, color=black];\n\t1213 -> 1028 [penwidth=1, color=black];\n\t1213 -> 1029 [penwidth=1, color=black];\n\t1213 -> 1030 [penwidth=1, color=black];\n\t1213 -> 1031 [penwidth=1, color=black];\n\t1213 -> 1032 [penwidth=1, color=black];\n\t1213 -> 1033 [penwidth=1, color=black];\n\t1213 -> 1034 [penwidth=1, color=black];\n\t1213 -> 1035 [penwidth=1, color=black];\n\t1213 -> 1036 [penwidth=1, color=black];\n\t1213 -> 1037 [penwidth=1, color=black];\n\t1213 -> 1038 [penwidth=1, color=black];\n\t1213 -> 1039 [penwidth=1, color=black];\n\t1213 -> 1040 [penwidth=1, color=black];\n\t1213 -> 1041 [penwidth=1, color=black];\n\t1213 -> 1042 [penwidth=1, color=black];\n\t1213 -> 1045 [penwidth=1, color=black];\n\t1213 -> 1046 [penwidth=1, color=black];\n\t1213 -> 1047 [penwidth=1, color=black];\n\t1213 -> 1048 [penwidth=1, color=black];\n\t1213 -> 1049 [penwidth=1, color=black];\n\t1213 -> 1050 [penwidth=1, color=black];\n\t1213 -> 1051 [penwidth=1, color=black];\n\t1213 -> 1052 [penwidth=1, color=black];\n\t1213 -> 1053 [penwidth=1, color=black];\n\t1213 -> 1054 [penwidth=1, color=black];\n\t1213 -> 1055 [penwidth=1, color=black];\n\t1213 -> 1057 [penwidth=1, color=black];\n\t1213 -> 1058 [penwidth=1, color=black];\n\t1213 -> 1059 [penwidth=1, color=black];\n\t1213 -> 1060 [penwidth=1, color=black];\n\t1213 -> 1061 [penwidth=1, color=black];\n\t1213 -> 1062 [penwidth=1, color=black];\n\t1213 -> 1068 [penwidth=1, color=black];\n\t1213 -> 1069 [penwidth=1, color=black];\n\t1213 -> 1070 [penwidth=1, color=black];\n\t1213 -> 1071 [penwidth=1, color=black];\n\t1213 -> 1072 [penwidth=1, color=black];\n\t1213 -> 1081 [penwidth=1, color=black];\n\t1213 -> 1082 [penwidth=1, color=black];\n\t1213 -> 1083 [penwidth=1, color=black];\n\t1213 -> 1084 [penwidth=1, color=black];\n\t1213 -> 1085 [penwidth=1, color=black];\n\t1213 -> 1087 [penwidth=1, color=black];\n\t1213 -> 1088 [penwidth=1, color=black];\n\t1213 -> 1089 [penwidth=1, color=black];\n\t1213 -> 1090 [penwidth=1, color=black];\n\t1213 -> 1091 [penwidth=1, color=black];\n\t1213 -> 1092 [penwidth=1, color=black];\n\t1213 -> 1093 [penwidth=1, color=black];\n\t1213 -> 1094 [penwidth=1, color=black];\n\t1213 -> 1095 [penwidth=1, color=black];\n\t1213 -> 1096 [penwidth=1, color=black];\n\t1213 -> 1097 [penwidth=1, color=black];\n\t1213 -> 1098 [penwidth=1, color=black];\n\t1213 -> 1099 [penwidth=1, color=black];\n\t1213 -> 1100 [penwidth=1, color=black];\n\t1213 -> 1101 [penwidth=1, color=black];\n\t1213 -> 1102 [penwidth=1, color=black];\n\t1213 -> 1103 [penwidth=1, color=black];\n\t1213 -> 1104 [penwidth=1, color=black];\n\t1213 -> 1105 [penwidth=1, color=black];\n\t1213 -> 1106 [penwidth=1, color=black];\n\t1213 -> 1107 [penwidth=1, color=black];\n\t1213 -> 1108 [penwidth=1, color=black];\n\t1213 -> 1109 [penwidth=1, color=black];\n\t1213 -> 1110 [penwidth=1, color=black];\n\t1213 -> 1111 [penwidth=1, color=black];\n\t1213 -> 1112 [penwidth=1, color=black];\n\t1213 -> 1113 [penwidth=1, color=black];\n\t1213 -> 1117 [penwidth=1, color=black];\n\t1213 -> 1118 [penwidth=1, color=black];\n\t1213 -> 1119 [penwidth=1, color=black];\n\t1213 -> 1120 [penwidth=1, color=black];\n\t1213 -> 1121 [penwidth=1, color=black];\n\t1213 -> 1122 [penwidth=1, color=black];\n\t1213 -> 1123 [penwidth=1, color=black];\n\t1213 -> 1124 [penwidth=1, color=black];\n\t1213 -> 1125 [penwidth=1, color=black];\n\t1213 -> 1126 [penwidth=1, color=black];\n\t1213 -> 1127 [penwidth=1, color=black];\n\t1213 -> 1128 [penwidth=1, color=black];\n\t1213 -> 1129 [penwidth=1, color=black];\n\t1213 -> 1130 [penwidth=1, color=black];\n\t1213 -> 1131 [penwidth=1, color=black];\n\t1213 -> 1132 [penwidth=1, color=black];\n\t1213 -> 1133 [penwidth=1, color=black];\n\t1213 -> 1134 [penwidth=1, color=black];\n\t1213 -> 1135 [penwidth=1, color=black];\n\t1213 -> 1136 [penwidth=1, color=black];\n\t1213 -> 1137 [penwidth=1, color=black];\n\t1213 -> 1138 [penwidth=1, color=black];\n\t1213 -> 1139 [penwidth=1, color=black];\n\t1213 -> 1140 [penwidth=1, color=black];\n\t1213 -> 1141 [penwidth=1, color=black];\n\t1213 -> 1143 [penwidth=1, color=black];\n\t1213 -> 1144 [penwidth=1, color=black];\n\t1213 -> 1145 [penwidth=1, color=black];\n\t1213 -> 1146 [penwidth=1, color=black];\n\t1213 -> 1147 [penwidth=1, color=black];\n\t1213 -> 1148 [penwidth=1, color=black];\n\t1213 -> 1149 [penwidth=1, color=black];\n\t1213 -> 1150 [penwidth=1, color=black];\n\t1213 -> 1151 [penwidth=1, color=black];\n\t1213 -> 1152 [penwidth=1, color=black];\n\t1213 -> 1153 [penwidth=1, color=black];\n\t1213 -> 1154 [penwidth=1, color=black];\n\t1213 -> 1155 [penwidth=1, color=black];\n\t1213 -> 1156 [penwidth=1, color=black];\n\t1213 -> 1157 [penwidth=1, color=black];\n\t1213 -> 1158 [penwidth=1, color=black];\n\t1213 -> 1159 [penwidth=1, color=black];\n\t1213 -> 1160 [penwidth=1, color=black];\n\t1213 -> 1161 [penwidth=1, color=black];\n\t1213 -> 1162 [penwidth=1, color=black];\n\t1213 -> 1163 [penwidth=1, color=black];\n\t1213 -> 1164 [penwidth=1, color=black];\n\t1213 -> 1165 [penwidth=1, color=black];\n\t1213 -> 1166 [penwidth=1, color=black];\n\t1213 -> 1167 [penwidth=1, color=black];\n\t1213 -> 1168 [penwidth=1, color=black];\n\t1213 -> 1169 [penwidth=1, color=black];\n\t1213 -> 1170 [penwidth=1, color=black];\n\t1213 -> 1171 [penwidth=1, color=black];\n\t1213 -> 1172 [penwidth=1, color=black];\n\t1213 -> 1173 [penwidth=1, color=black];\n\t1213 -> 1174 [penwidth=1, color=black];\n\t1213 -> 1175 [penwidth=1, color=black];\n\t1213 -> 1176 [penwidth=1, color=black];\n\t1213 -> 1177 [penwidth=1, color=black];\n\t1213 -> 1178 [penwidth=1, color=black];\n\t1213 -> 1179 [penwidth=1, color=black];\n\t1213 -> 1180 [penwidth=1, color=black];\n\t1213 -> 1181 [penwidth=1, color=black];\n\t1213 -> 1182 [penwidth=1, color=black];\n\t1213 -> 1183 [penwidth=1, color=black];\n\t1213 -> 1184 [penwidth=1, color=black];\n\t1213 -> 1185 [penwidth=1, color=black];\n\t1213 -> 1186 [penwidth=1, color=black];\n\t1213 -> 1189 [penwidth=1, color=black];\n\t1213 -> 1190 [penwidth=1, color=black];\n\t1213 -> 1191 [penwidth=1, color=black];\n\t1213 -> 1192 [penwidth=1, color=black];\n\t1213 -> 1193 [penwidth=1, color=black];\n\t1213 -> 1194 [penwidth=1, color=black];\n\t1213 -> 1435 [penwidth=\"7.063785208687608\", color=black];\n\t1213 -> 1436 [penwidth=\"5.7535901911063645\", color=black];\n\t1214 -> 1373 [penwidth=1, color=black];\n\t1217 -> 644 [penwidth=1, color=black];\n\t1217 -> 873 [penwidth=1, color=black];\n\t1217 -> 1074 [penwidth=1, color=black];\n\t1217 -> 1075 [penwidth=1, color=black];\n\t1217 -> 1188 [penwidth=1, color=black];\n\t1217 -> 1219 [penwidth=1, color=black];\n\t1217 -> 1227 [penwidth=1, color=black];\n\t1218 -> 644 [penwidth=1, color=black];\n\t1218 -> 1188 [penwidth=1, color=black];\n\t1219 -> 1207 [penwidth=1, color=black];\n\t1220 -> 611 [penwidth=1, color=black];\n\t1220 -> 642 [penwidth=1, color=black];\n\t1220 -> 643 [penwidth=1, color=black];\n\t1220 -> 651 [penwidth=1, color=black];\n\t1220 -> 652 [penwidth=1, color=black];\n\t1220 -> 690 [penwidth=1, color=black];\n\t1220 -> 752 [penwidth=1, color=black];\n\t1220 -> 871 [penwidth=1, color=black];\n\t1220 -> 872 [penwidth=1, color=black];\n\t1220 -> 1018 [penwidth=1, color=black];\n\t1220 -> 1024 [penwidth=1, color=black];\n\t1220 -> 1025 [penwidth=1, color=black];\n\t1220 -> 1043 [penwidth=1, color=black];\n\t1220 -> 1044 [penwidth=1, color=black];\n\t1220 -> 1056 [penwidth=1, color=black];\n\t1220 -> 1063 [penwidth=1, color=black];\n\t1220 -> 1064 [penwidth=1, color=black];\n\t1220 -> 1065 [penwidth=1, color=black];\n\t1220 -> 1066 [penwidth=1, color=black];\n\t1220 -> 1067 [penwidth=1, color=black];\n\t1220 -> 1073 [penwidth=1, color=black];\n\t1220 -> 1076 [penwidth=1, color=black];\n\t1220 -> 1077 [penwidth=1, color=black];\n\t1220 -> 1078 [penwidth=1, color=black];\n\t1220 -> 1079 [penwidth=1, color=black];\n\t1220 -> 1080 [penwidth=1, color=black];\n\t1220 -> 1086 [penwidth=1, color=black];\n\t1220 -> 1114 [penwidth=1, color=black];\n\t1220 -> 1115 [penwidth=1, color=black];\n\t1220 -> 1116 [penwidth=1, color=black];\n\t1220 -> 1142 [penwidth=1, color=black];\n\t1220 -> 1195 [penwidth=1, color=black];\n\t1220 -> 1196 [penwidth=1, color=black];\n\t1220 -> 1197 [penwidth=1, color=black];\n\t1220 -> 1198 [penwidth=1, color=black];\n\t1221 -> 644 [penwidth=1, color=black];\n\t1221 -> 873 [penwidth=1, color=black];\n\t1221 -> 1074 [penwidth=1, color=black];\n\t1221 -> 1075 [penwidth=1, color=black];\n\t1221 -> 1188 [penwidth=1, color=black];\n\t1221 -> 1204 [penwidth=\"1.6931471805599454\", color=black];\n\t1222 -> 645 [penwidth=1, color=black];\n\t1222 -> 1187 [penwidth=1, color=black];\n\t1223 -> 612 [penwidth=1, color=black];\n\t1223 -> 613 [penwidth=1, color=black];\n\t1223 -> 614 [penwidth=1, color=black];\n\t1223 -> 615 [penwidth=1, color=black];\n\t1223 -> 616 [penwidth=1, color=black];\n\t1223 -> 617 [penwidth=1, color=black];\n\t1223 -> 618 [penwidth=1, color=black];\n\t1223 -> 619 [penwidth=1, color=black];\n\t1223 -> 620 [penwidth=1, color=black];\n\t1223 -> 621 [penwidth=1, color=black];\n\t1223 -> 622 [penwidth=1, color=black];\n\t1223 -> 623 [penwidth=1, color=black];\n\t1223 -> 624 [penwidth=1, color=black];\n\t1223 -> 625 [penwidth=1, color=black];\n\t1223 -> 626 [penwidth=1, color=black];\n\t1223 -> 627 [penwidth=1, color=black];\n\t1223 -> 628 [penwidth=1, color=black];\n\t1223 -> 629 [penwidth=1, color=black];\n\t1223 -> 630 [penwidth=1, color=black];\n\t1223 -> 631 [penwidth=1, color=black];\n\t1223 -> 632 [penwidth=1, color=black];\n\t1223 -> 633 [penwidth=1, color=black];\n\t1223 -> 634 [penwidth=1, color=black];\n\t1223 -> 635 [penwidth=1, color=black];\n\t1223 -> 636 [penwidth=1, color=black];\n\t1223 -> 637 [penwidth=1, color=black];\n\t1223 -> 638 [penwidth=1, color=black];\n\t1223 -> 639 [penwidth=1, color=black];\n\t1223 -> 640 [penwidth=1, color=black];\n\t1223 -> 641 [penwidth=1, color=black];\n\t1223 -> 646 [penwidth=1, color=black];\n\t1223 -> 647 [penwidth=1, color=black];\n\t1223 -> 648 [penwidth=1, color=black];\n\t1223 -> 649 [penwidth=1, color=black];\n\t1223 -> 650 [penwidth=1, color=black];\n\t1223 -> 653 [penwidth=1, color=black];\n\t1223 -> 654 [penwidth=1, color=black];\n\t1223 -> 655 [penwidth=1, color=black];\n\t1223 -> 656 [penwidth=1, color=black];\n\t1223 -> 657 [penwidth=1, color=black];\n\t1223 -> 658 [penwidth=1, color=black];\n\t1223 -> 659 [penwidth=1, color=black];\n\t1223 -> 660 [penwidth=1, color=black];\n\t1223 -> 661 [penwidth=1, color=black];\n\t1223 -> 662 [penwidth=1, color=black];\n\t1223 -> 663 [penwidth=1, color=black];\n\t1223 -> 664 [penwidth=1, color=black];\n\t1223 -> 665 [penwidth=1, color=black];\n\t1223 -> 666 [penwidth=1, color=black];\n\t1223 -> 667 [penwidth=1, color=black];\n\t1223 -> 668 [penwidth=1, color=black];\n\t1223 -> 669 [penwidth=1, color=black];\n\t1223 -> 670 [penwidth=1, color=black];\n\t1223 -> 671 [penwidth=1, color=black];\n\t1223 -> 672 [penwidth=1, color=black];\n\t1223 -> 673 [penwidth=1, color=black];\n\t1223 -> 674 [penwidth=1, color=black];\n\t1223 -> 675 [penwidth=1, color=black];\n\t1223 -> 676 [penwidth=1, color=black];\n\t1223 -> 677 [penwidth=1, color=black];\n\t1223 -> 678 [penwidth=1, color=black];\n\t1223 -> 679 [penwidth=1, color=black];\n\t1223 -> 680 [penwidth=1, color=black];\n\t1223 -> 681 [penwidth=1, color=black];\n\t1223 -> 682 [penwidth=1, color=black];\n\t1223 -> 683 [penwidth=1, color=black];\n\t1223 -> 684 [penwidth=1, color=black];\n\t1223 -> 685 [penwidth=1, color=black];\n\t1223 -> 686 [penwidth=1, color=black];\n\t1223 -> 687 [penwidth=1, color=black];\n\t1223 -> 688 [penwidth=1, color=black];\n\t1223 -> 689 [penwidth=1, color=black];\n\t1223 -> 691 [penwidth=1, color=black];\n\t1223 -> 692 [penwidth=1, color=black];\n\t1223 -> 693 [penwidth=1, color=black];\n\t1223 -> 694 [penwidth=1, color=black];\n\t1223 -> 695 [penwidth=1, color=black];\n\t1223 -> 696 [penwidth=1, color=black];\n\t1223 -> 697 [penwidth=1, color=black];\n\t1223 -> 698 [penwidth=1, color=black];\n\t1223 -> 699 [penwidth=1, color=black];\n\t1223 -> 700 [penwidth=1, color=black];\n\t1223 -> 701 [penwidth=1, color=black];\n\t1223 -> 702 [penwidth=1, color=black];\n\t1223 -> 703 [penwidth=1, color=black];\n\t1223 -> 704 [penwidth=1, color=black];\n\t1223 -> 705 [penwidth=1, color=black];\n\t1223 -> 706 [penwidth=1, color=black];\n\t1223 -> 707 [penwidth=1, color=black];\n\t1223 -> 708 [penwidth=1, color=black];\n\t1223 -> 709 [penwidth=1, color=black];\n\t1223 -> 710 [penwidth=1, color=black];\n\t1223 -> 711 [penwidth=1, color=black];\n\t1223 -> 712 [penwidth=1, color=black];\n\t1223 -> 713 [penwidth=1, color=black];\n\t1223 -> 714 [penwidth=1, color=black];\n\t1223 -> 715 [penwidth=1, color=black];\n\t1223 -> 716 [penwidth=1, color=black];\n\t1223 -> 717 [penwidth=1, color=black];\n\t1223 -> 718 [penwidth=1, color=black];\n\t1223 -> 719 [penwidth=1, color=black];\n\t1223 -> 720 [penwidth=1, color=black];\n\t1223 -> 721 [penwidth=1, color=black];\n\t1223 -> 722 [penwidth=1, color=black];\n\t1223 -> 723 [penwidth=1, color=black];\n\t1223 -> 724 [penwidth=1, color=black];\n\t1223 -> 725 [penwidth=1, color=black];\n\t1223 -> 726 [penwidth=1, color=black];\n\t1223 -> 727 [penwidth=1, color=black];\n\t1223 -> 728 [penwidth=1, color=black];\n\t1223 -> 729 [penwidth=1, color=black];\n\t1223 -> 730 [penwidth=1, color=black];\n\t1223 -> 731 [penwidth=1, color=black];\n\t1223 -> 732 [penwidth=1, color=black];\n\t1223 -> 733 [penwidth=1, color=black];\n\t1223 -> 734 [penwidth=1, color=black];\n\t1223 -> 735 [penwidth=1, color=black];\n\t1223 -> 736 [penwidth=1, color=black];\n\t1223 -> 737 [penwidth=1, color=black];\n\t1223 -> 738 [penwidth=1, color=black];\n\t1223 -> 739 [penwidth=1, color=black];\n\t1223 -> 740 [penwidth=1, color=black];\n\t1223 -> 741 [penwidth=1, color=black];\n\t1223 -> 742 [penwidth=1, color=black];\n\t1223 -> 743 [penwidth=1, color=black];\n\t1223 -> 744 [penwidth=1, color=black];\n\t1223 -> 745 [penwidth=1, color=black];\n\t1223 -> 746 [penwidth=1, color=black];\n\t1223 -> 747 [penwidth=1, color=black];\n\t1223 -> 748 [penwidth=1, color=black];\n\t1223 -> 749 [penwidth=1, color=black];\n\t1223 -> 750 [penwidth=1, color=black];\n\t1223 -> 751 [penwidth=1, color=black];\n\t1223 -> 753 [penwidth=1, color=black];\n\t1223 -> 754 [penwidth=1, color=black];\n\t1223 -> 755 [penwidth=1, color=black];\n\t1223 -> 756 [penwidth=1, color=black];\n\t1223 -> 757 [penwidth=1, color=black];\n\t1223 -> 758 [penwidth=1, color=black];\n\t1223 -> 759 [penwidth=1, color=black];\n\t1223 -> 760 [penwidth=1, color=black];\n\t1223 -> 761 [penwidth=1, color=black];\n\t1223 -> 762 [penwidth=1, color=black];\n\t1223 -> 763 [penwidth=1, color=black];\n\t1223 -> 764 [penwidth=1, color=black];\n\t1223 -> 765 [penwidth=1, color=black];\n\t1223 -> 766 [penwidth=1, color=black];\n\t1223 -> 767 [penwidth=1, color=black];\n\t1223 -> 768 [penwidth=1, color=black];\n\t1223 -> 769 [penwidth=1, color=black];\n\t1223 -> 770 [penwidth=1, color=black];\n\t1223 -> 771 [penwidth=1, color=black];\n\t1223 -> 772 [penwidth=1, color=black];\n\t1223 -> 773 [penwidth=1, color=black];\n\t1223 -> 774 [penwidth=1, color=black];\n\t1223 -> 775 [penwidth=1, color=black];\n\t1223 -> 776 [penwidth=1, color=black];\n\t1223 -> 777 [penwidth=1, color=black];\n\t1223 -> 778 [penwidth=1, color=black];\n\t1223 -> 779 [penwidth=1, color=black];\n\t1223 -> 780 [penwidth=1, color=black];\n\t1223 -> 781 [penwidth=1, color=black];\n\t1223 -> 782 [penwidth=1, color=black];\n\t1223 -> 783 [penwidth=1, color=black];\n\t1223 -> 784 [penwidth=1, color=black];\n\t1223 -> 785 [penwidth=1, color=black];\n\t1223 -> 786 [penwidth=1, color=black];\n\t1223 -> 787 [penwidth=1, color=black];\n\t1223 -> 788 [penwidth=1, color=black];\n\t1223 -> 789 [penwidth=1, color=black];\n\t1223 -> 790 [penwidth=1, color=black];\n\t1223 -> 791 [penwidth=1, color=black];\n\t1223 -> 792 [penwidth=1, color=black];\n\t1223 -> 793 [penwidth=1, color=black];\n\t1223 -> 794 [penwidth=1, color=black];\n\t1223 -> 795 [penwidth=1, color=black];\n\t1223 -> 796 [penwidth=1, color=black];\n\t1223 -> 797 [penwidth=1, color=black];\n\t1223 -> 798 [penwidth=1, color=black];\n\t1223 -> 799 [penwidth=1, color=black];\n\t1223 -> 800 [penwidth=1, color=black];\n\t1223 -> 801 [penwidth=1, color=black];\n\t1223 -> 802 [penwidth=1, color=black];\n\t1223 -> 803 [penwidth=1, color=black];\n\t1223 -> 804 [penwidth=1, color=black];\n\t1223 -> 805 [penwidth=1, color=black];\n\t1223 -> 806 [penwidth=1, color=black];\n\t1223 -> 807 [penwidth=1, color=black];\n\t1223 -> 808 [penwidth=1, color=black];\n\t1223 -> 809 [penwidth=1, color=black];\n\t1223 -> 810 [penwidth=1, color=black];\n\t1223 -> 811 [penwidth=1, color=black];\n\t1223 -> 812 [penwidth=1, color=black];\n\t1223 -> 813 [penwidth=1, color=black];\n\t1223 -> 814 [penwidth=1, color=black];\n\t1223 -> 815 [penwidth=1, color=black];\n\t1223 -> 816 [penwidth=1, color=black];\n\t1223 -> 817 [penwidth=1, color=black];\n\t1223 -> 818 [penwidth=1, color=black];\n\t1223 -> 819 [penwidth=1, color=black];\n\t1223 -> 820 [penwidth=1, color=black];\n\t1223 -> 821 [penwidth=1, color=black];\n\t1223 -> 822 [penwidth=1, color=black];\n\t1223 -> 823 [penwidth=1, color=black];\n\t1223 -> 824 [penwidth=1, color=black];\n\t1223 -> 825 [penwidth=1, color=black];\n\t1223 -> 826 [penwidth=1, color=black];\n\t1223 -> 827 [penwidth=1, color=black];\n\t1223 -> 828 [penwidth=1, color=black];\n\t1223 -> 829 [penwidth=1, color=black];\n\t1223 -> 830 [penwidth=1, color=black];\n\t1223 -> 831 [penwidth=1, color=black];\n\t1223 -> 832 [penwidth=1, color=black];\n\t1223 -> 833 [penwidth=1, color=black];\n\t1223 -> 834 [penwidth=1, color=black];\n\t1223 -> 835 [penwidth=1, color=black];\n\t1223 -> 836 [penwidth=1, color=black];\n\t1223 -> 837 [penwidth=1, color=black];\n\t1223 -> 838 [penwidth=1, color=black];\n\t1223 -> 839 [penwidth=1, color=black];\n\t1223 -> 840 [penwidth=1, color=black];\n\t1223 -> 841 [penwidth=1, color=black];\n\t1223 -> 842 [penwidth=1, color=black];\n\t1223 -> 843 [penwidth=1, color=black];\n\t1223 -> 844 [penwidth=1, color=black];\n\t1223 -> 845 [penwidth=1, color=black];\n\t1223 -> 846 [penwidth=1, color=black];\n\t1223 -> 847 [penwidth=1, color=black];\n\t1223 -> 848 [penwidth=1, color=black];\n\t1223 -> 849 [penwidth=1, color=black];\n\t1223 -> 850 [penwidth=1, color=black];\n\t1223 -> 851 [penwidth=1, color=black];\n\t1223 -> 852 [penwidth=1, color=black];\n\t1223 -> 853 [penwidth=1, color=black];\n\t1223 -> 854 [penwidth=1, color=black];\n\t1223 -> 855 [penwidth=1, color=black];\n\t1223 -> 856 [penwidth=1, color=black];\n\t1223 -> 857 [penwidth=1, color=black];\n\t1223 -> 858 [penwidth=1, color=black];\n\t1223 -> 859 [penwidth=1, color=black];\n\t1223 -> 860 [penwidth=1, color=black];\n\t1223 -> 861 [penwidth=1, color=black];\n\t1223 -> 862 [penwidth=1, color=black];\n\t1223 -> 863 [penwidth=1, color=black];\n\t1223 -> 864 [penwidth=1, color=black];\n\t1223 -> 865 [penwidth=1, color=black];\n\t1223 -> 866 [penwidth=1, color=black];\n\t1223 -> 867 [penwidth=1, color=black];\n\t1223 -> 868 [penwidth=1, color=black];\n\t1223 -> 869 [penwidth=1, color=black];\n\t1223 -> 870 [penwidth=1, color=black];\n\t1223 -> 874 [penwidth=1, color=black];\n\t1223 -> 875 [penwidth=1, color=black];\n\t1223 -> 876 [penwidth=1, color=black];\n\t1223 -> 877 [penwidth=1, color=black];\n\t1223 -> 878 [penwidth=1, color=black];\n\t1223 -> 879 [penwidth=1, color=black];\n\t1223 -> 880 [penwidth=1, color=black];\n\t1223 -> 881 [penwidth=1, color=black];\n\t1223 -> 882 [penwidth=1, color=black];\n\t1223 -> 883 [penwidth=1, color=black];\n\t1223 -> 884 [penwidth=1, color=black];\n\t1223 -> 885 [penwidth=1, color=black];\n\t1223 -> 886 [penwidth=1, color=black];\n\t1223 -> 887 [penwidth=1, color=black];\n\t1223 -> 888 [penwidth=1, color=black];\n\t1223 -> 889 [penwidth=1, color=black];\n\t1223 -> 890 [penwidth=1, color=black];\n\t1223 -> 891 [penwidth=1, color=black];\n\t1223 -> 892 [penwidth=1, color=black];\n\t1223 -> 893 [penwidth=1, color=black];\n\t1223 -> 894 [penwidth=1, color=black];\n\t1223 -> 895 [penwidth=1, color=black];\n\t1223 -> 896 [penwidth=1, color=black];\n\t1223 -> 897 [penwidth=1, color=black];\n\t1223 -> 898 [penwidth=1, color=black];\n\t1223 -> 899 [penwidth=1, color=black];\n\t1223 -> 900 [penwidth=1, color=black];\n\t1223 -> 901 [penwidth=1, color=black];\n\t1223 -> 902 [penwidth=1, color=black];\n\t1223 -> 903 [penwidth=1, color=black];\n\t1223 -> 904 [penwidth=1, color=black];\n\t1223 -> 905 [penwidth=1, color=black];\n\t1223 -> 906 [penwidth=1, color=black];\n\t1223 -> 907 [penwidth=1, color=black];\n\t1223 -> 908 [penwidth=1, color=black];\n\t1223 -> 909 [penwidth=1, color=black];\n\t1223 -> 910 [penwidth=1, color=black];\n\t1223 -> 911 [penwidth=1, color=black];\n\t1223 -> 912 [penwidth=1, color=black];\n\t1223 -> 913 [penwidth=1, color=black];\n\t1223 -> 914 [penwidth=1, color=black];\n\t1223 -> 915 [penwidth=1, color=black];\n\t1223 -> 916 [penwidth=1, color=black];\n\t1223 -> 917 [penwidth=1, color=black];\n\t1223 -> 918 [penwidth=1, color=black];\n\t1223 -> 919 [penwidth=1, color=black];\n\t1223 -> 920 [penwidth=1, color=black];\n\t1223 -> 921 [penwidth=1, color=black];\n\t1223 -> 922 [penwidth=1, color=black];\n\t1223 -> 923 [penwidth=1, color=black];\n\t1223 -> 924 [penwidth=1, color=black];\n\t1223 -> 925 [penwidth=1, color=black];\n\t1223 -> 926 [penwidth=1, color=black];\n\t1223 -> 927 [penwidth=1, color=black];\n\t1223 -> 928 [penwidth=1, color=black];\n\t1223 -> 929 [penwidth=1, color=black];\n\t1223 -> 930 [penwidth=1, color=black];\n\t1223 -> 931 [penwidth=1, color=black];\n\t1223 -> 932 [penwidth=1, color=black];\n\t1223 -> 933 [penwidth=1, color=black];\n\t1223 -> 934 [penwidth=1, color=black];\n\t1223 -> 935 [penwidth=1, color=black];\n\t1223 -> 936 [penwidth=1, color=black];\n\t1223 -> 937 [penwidth=1, color=black];\n\t1223 -> 938 [penwidth=1, color=black];\n\t1223 -> 939 [penwidth=1, color=black];\n\t1223 -> 940 [penwidth=1, color=black];\n\t1223 -> 941 [penwidth=1, color=black];\n\t1223 -> 942 [penwidth=1, color=black];\n\t1223 -> 943 [penwidth=1, color=black];\n\t1223 -> 944 [penwidth=1, color=black];\n\t1223 -> 945 [penwidth=1, color=black];\n\t1223 -> 946 [penwidth=1, color=black];\n\t1223 -> 947 [penwidth=1, color=black];\n\t1223 -> 948 [penwidth=1, color=black];\n\t1223 -> 949 [penwidth=1, color=black];\n\t1223 -> 950 [penwidth=1, color=black];\n\t1223 -> 951 [penwidth=1, color=black];\n\t1223 -> 952 [penwidth=1, color=black];\n\t1223 -> 953 [penwidth=1, color=black];\n\t1223 -> 954 [penwidth=1, color=black];\n\t1223 -> 955 [penwidth=1, color=black];\n\t1223 -> 956 [penwidth=1, color=black];\n\t1223 -> 957 [penwidth=1, color=black];\n\t1223 -> 958 [penwidth=1, color=black];\n\t1223 -> 959 [penwidth=1, color=black];\n\t1223 -> 960 [penwidth=1, color=black];\n\t1223 -> 961 [penwidth=1, color=black];\n\t1223 -> 962 [penwidth=1, color=black];\n\t1223 -> 963 [penwidth=1, color=black];\n\t1223 -> 964 [penwidth=1, color=black];\n\t1223 -> 965 [penwidth=1, color=black];\n\t1223 -> 966 [penwidth=1, color=black];\n\t1223 -> 967 [penwidth=1, color=black];\n\t1223 -> 968 [penwidth=1, color=black];\n\t1223 -> 969 [penwidth=1, color=black];\n\t1223 -> 970 [penwidth=1, color=black];\n\t1223 -> 971 [penwidth=1, color=black];\n\t1223 -> 972 [penwidth=1, color=black];\n\t1223 -> 973 [penwidth=1, color=black];\n\t1223 -> 974 [penwidth=1, color=black];\n\t1223 -> 975 [penwidth=1, color=black];\n\t1223 -> 976 [penwidth=1, color=black];\n\t1223 -> 977 [penwidth=1, color=black];\n\t1223 -> 978 [penwidth=1, color=black];\n\t1223 -> 979 [penwidth=1, color=black];\n\t1223 -> 980 [penwidth=1, color=black];\n\t1223 -> 981 [penwidth=1, color=black];\n\t1223 -> 982 [penwidth=1, color=black];\n\t1223 -> 983 [penwidth=1, color=black];\n\t1223 -> 984 [penwidth=1, color=black];\n\t1223 -> 985 [penwidth=1, color=black];\n\t1223 -> 986 [penwidth=1, color=black];\n\t1223 -> 987 [penwidth=1, color=black];\n\t1223 -> 988 [penwidth=1, color=black];\n\t1223 -> 989 [penwidth=1, color=black];\n\t1223 -> 990 [penwidth=1, color=black];\n\t1223 -> 991 [penwidth=1, color=black];\n\t1223 -> 992 [penwidth=1, color=black];\n\t1223 -> 993 [penwidth=1, color=black];\n\t1223 -> 994 [penwidth=1, color=black];\n\t1223 -> 995 [penwidth=1, color=black];\n\t1223 -> 996 [penwidth=1, color=black];\n\t1223 -> 997 [penwidth=1, color=black];\n\t1223 -> 998 [penwidth=1, color=black];\n\t1223 -> 999 [penwidth=1, color=black];\n\t1223 -> 1000 [penwidth=1, color=black];\n\t1223 -> 1001 [penwidth=1, color=black];\n\t1223 -> 1002 [penwidth=1, color=black];\n\t1223 -> 1003 [penwidth=1, color=black];\n\t1223 -> 1004 [penwidth=1, color=black];\n\t1223 -> 1005 [penwidth=1, color=black];\n\t1223 -> 1006 [penwidth=1, color=black];\n\t1223 -> 1007 [penwidth=1, color=black];\n\t1223 -> 1008 [penwidth=1, color=black];\n\t1223 -> 1009 [penwidth=1, color=black];\n\t1223 -> 1010 [penwidth=1, color=black];\n\t1223 -> 1011 [penwidth=1, color=black];\n\t1223 -> 1012 [penwidth=1, color=black];\n\t1223 -> 1013 [penwidth=1, color=black];\n\t1223 -> 1014 [penwidth=1, color=black];\n\t1223 -> 1015 [penwidth=1, color=black];\n\t1223 -> 1016 [penwidth=1, color=black];\n\t1223 -> 1017 [penwidth=1, color=black];\n\t1223 -> 1019 [penwidth=1, color=black];\n\t1223 -> 1020 [penwidth=1, color=black];\n\t1223 -> 1021 [penwidth=1, color=black];\n\t1223 -> 1022 [penwidth=1, color=black];\n\t1223 -> 1023 [penwidth=1, color=black];\n\t1223 -> 1026 [penwidth=1, color=black];\n\t1223 -> 1027 [penwidth=1, color=black];\n\t1223 -> 1028 [penwidth=1, color=black];\n\t1223 -> 1029 [penwidth=1, color=black];\n\t1223 -> 1030 [penwidth=1, color=black];\n\t1223 -> 1031 [penwidth=1, color=black];\n\t1223 -> 1032 [penwidth=1, color=black];\n\t1223 -> 1033 [penwidth=1, color=black];\n\t1223 -> 1034 [penwidth=1, color=black];\n\t1223 -> 1035 [penwidth=1, color=black];\n\t1223 -> 1036 [penwidth=1, color=black];\n\t1223 -> 1037 [penwidth=1, color=black];\n\t1223 -> 1038 [penwidth=1, color=black];\n\t1223 -> 1039 [penwidth=1, color=black];\n\t1223 -> 1040 [penwidth=1, color=black];\n\t1223 -> 1041 [penwidth=1, color=black];\n\t1223 -> 1042 [penwidth=1, color=black];\n\t1223 -> 1045 [penwidth=1, color=black];\n\t1223 -> 1046 [penwidth=1, color=black];\n\t1223 -> 1047 [penwidth=1, color=black];\n\t1223 -> 1048 [penwidth=1, color=black];\n\t1223 -> 1049 [penwidth=1, color=black];\n\t1223 -> 1050 [penwidth=1, color=black];\n\t1223 -> 1051 [penwidth=1, color=black];\n\t1223 -> 1052 [penwidth=1, color=black];\n\t1223 -> 1053 [penwidth=1, color=black];\n\t1223 -> 1054 [penwidth=1, color=black];\n\t1223 -> 1055 [penwidth=1, color=black];\n\t1223 -> 1057 [penwidth=1, color=black];\n\t1223 -> 1058 [penwidth=1, color=black];\n\t1223 -> 1059 [penwidth=1, color=black];\n\t1223 -> 1060 [penwidth=1, color=black];\n\t1223 -> 1061 [penwidth=1, color=black];\n\t1223 -> 1062 [penwidth=1, color=black];\n\t1223 -> 1068 [penwidth=1, color=black];\n\t1223 -> 1069 [penwidth=1, color=black];\n\t1223 -> 1070 [penwidth=1, color=black];\n\t1223 -> 1071 [penwidth=1, color=black];\n\t1223 -> 1072 [penwidth=1, color=black];\n\t1223 -> 1081 [penwidth=1, color=black];\n\t1223 -> 1082 [penwidth=1, color=black];\n\t1223 -> 1083 [penwidth=1, color=black];\n\t1223 -> 1084 [penwidth=1, color=black];\n\t1223 -> 1085 [penwidth=1, color=black];\n\t1223 -> 1087 [penwidth=1, color=black];\n\t1223 -> 1088 [penwidth=1, color=black];\n\t1223 -> 1089 [penwidth=1, color=black];\n\t1223 -> 1090 [penwidth=1, color=black];\n\t1223 -> 1091 [penwidth=1, color=black];\n\t1223 -> 1092 [penwidth=1, color=black];\n\t1223 -> 1093 [penwidth=1, color=black];\n\t1223 -> 1094 [penwidth=1, color=black];\n\t1223 -> 1095 [penwidth=1, color=black];\n\t1223 -> 1096 [penwidth=1, color=black];\n\t1223 -> 1097 [penwidth=1, color=black];\n\t1223 -> 1098 [penwidth=1, color=black];\n\t1223 -> 1099 [penwidth=1, color=black];\n\t1223 -> 1100 [penwidth=1, color=black];\n\t1223 -> 1101 [penwidth=1, color=black];\n\t1223 -> 1102 [penwidth=1, color=black];\n\t1223 -> 1103 [penwidth=1, color=black];\n\t1223 -> 1104 [penwidth=1, color=black];\n\t1223 -> 1105 [penwidth=1, color=black];\n\t1223 -> 1106 [penwidth=1, color=black];\n\t1223 -> 1107 [penwidth=1, color=black];\n\t1223 -> 1108 [penwidth=1, color=black];\n\t1223 -> 1109 [penwidth=1, color=black];\n\t1223 -> 1110 [penwidth=1, color=black];\n\t1223 -> 1111 [penwidth=1, color=black];\n\t1223 -> 1112 [penwidth=1, color=black];\n\t1223 -> 1113 [penwidth=1, color=black];\n\t1223 -> 1117 [penwidth=1, color=black];\n\t1223 -> 1118 [penwidth=1, color=black];\n\t1223 -> 1119 [penwidth=1, color=black];\n\t1223 -> 1120 [penwidth=1, color=black];\n\t1223 -> 1121 [penwidth=1, color=black];\n\t1223 -> 1122 [penwidth=1, color=black];\n\t1223 -> 1123 [penwidth=1, color=black];\n\t1223 -> 1124 [penwidth=1, color=black];\n\t1223 -> 1125 [penwidth=1, color=black];\n\t1223 -> 1126 [penwidth=1, color=black];\n\t1223 -> 1127 [penwidth=1, color=black];\n\t1223 -> 1128 [penwidth=1, color=black];\n\t1223 -> 1129 [penwidth=1, color=black];\n\t1223 -> 1130 [penwidth=1, color=black];\n\t1223 -> 1131 [penwidth=1, color=black];\n\t1223 -> 1132 [penwidth=1, color=black];\n\t1223 -> 1133 [penwidth=1, color=black];\n\t1223 -> 1134 [penwidth=1, color=black];\n\t1223 -> 1135 [penwidth=1, color=black];\n\t1223 -> 1136 [penwidth=1, color=black];\n\t1223 -> 1137 [penwidth=1, color=black];\n\t1223 -> 1138 [penwidth=1, color=black];\n\t1223 -> 1139 [penwidth=1, color=black];\n\t1223 -> 1140 [penwidth=1, color=black];\n\t1223 -> 1141 [penwidth=1, color=black];\n\t1223 -> 1143 [penwidth=1, color=black];\n\t1223 -> 1144 [penwidth=1, color=black];\n\t1223 -> 1145 [penwidth=1, color=black];\n\t1223 -> 1146 [penwidth=1, color=black];\n\t1223 -> 1147 [penwidth=1, color=black];\n\t1223 -> 1148 [penwidth=1, color=black];\n\t1223 -> 1149 [penwidth=1, color=black];\n\t1223 -> 1150 [penwidth=1, color=black];\n\t1223 -> 1151 [penwidth=1, color=black];\n\t1223 -> 1152 [penwidth=1, color=black];\n\t1223 -> 1153 [penwidth=1, color=black];\n\t1223 -> 1154 [penwidth=1, color=black];\n\t1223 -> 1155 [penwidth=1, color=black];\n\t1223 -> 1156 [penwidth=1, color=black];\n\t1223 -> 1157 [penwidth=1, color=black];\n\t1223 -> 1158 [penwidth=1, color=black];\n\t1223 -> 1159 [penwidth=1, color=black];\n\t1223 -> 1160 [penwidth=1, color=black];\n\t1223 -> 1161 [penwidth=1, color=black];\n\t1223 -> 1162 [penwidth=1, color=black];\n\t1223 -> 1163 [penwidth=1, color=black];\n\t1223 -> 1164 [penwidth=1, color=black];\n\t1223 -> 1165 [penwidth=1, color=black];\n\t1223 -> 1166 [penwidth=1, color=black];\n\t1223 -> 1167 [penwidth=1, color=black];\n\t1223 -> 1168 [penwidth=1, color=black];\n\t1223 -> 1169 [penwidth=1, color=black];\n\t1223 -> 1170 [penwidth=1, color=black];\n\t1223 -> 1171 [penwidth=1, color=black];\n\t1223 -> 1172 [penwidth=1, color=black];\n\t1223 -> 1173 [penwidth=1, color=black];\n\t1223 -> 1174 [penwidth=1, color=black];\n\t1223 -> 1175 [penwidth=1, color=black];\n\t1223 -> 1176 [penwidth=1, color=black];\n\t1223 -> 1177 [penwidth=1, color=black];\n\t1223 -> 1178 [penwidth=1, color=black];\n\t1223 -> 1179 [penwidth=1, color=black];\n\t1223 -> 1180 [penwidth=1, color=black];\n\t1223 -> 1181 [penwidth=1, color=black];\n\t1223 -> 1182 [penwidth=1, color=black];\n\t1223 -> 1183 [penwidth=1, color=black];\n\t1223 -> 1184 [penwidth=1, color=black];\n\t1223 -> 1185 [penwidth=1, color=black];\n\t1223 -> 1186 [penwidth=1, color=black];\n\t1223 -> 1189 [penwidth=1, color=black];\n\t1223 -> 1190 [penwidth=1, color=black];\n\t1223 -> 1191 [penwidth=1, color=black];\n\t1223 -> 1192 [penwidth=1, color=black];\n\t1223 -> 1193 [penwidth=1, color=black];\n\t1223 -> 1194 [penwidth=1, color=black];\n\t1227 -> 612 [penwidth=1, color=black];\n\t1227 -> 613 [penwidth=1, color=black];\n\t1227 -> 614 [penwidth=1, color=black];\n\t1227 -> 615 [penwidth=1, color=black];\n\t1227 -> 616 [penwidth=1, color=black];\n\t1227 -> 617 [penwidth=1, color=black];\n\t1227 -> 618 [penwidth=1, color=black];\n\t1227 -> 619 [penwidth=1, color=black];\n\t1227 -> 620 [penwidth=1, color=black];\n\t1227 -> 621 [penwidth=1, color=black];\n\t1227 -> 622 [penwidth=1, color=black];\n\t1227 -> 623 [penwidth=1, color=black];\n\t1227 -> 624 [penwidth=1, color=black];\n\t1227 -> 625 [penwidth=1, color=black];\n\t1227 -> 626 [penwidth=1, color=black];\n\t1227 -> 627 [penwidth=1, color=black];\n\t1227 -> 628 [penwidth=1, color=black];\n\t1227 -> 629 [penwidth=1, color=black];\n\t1227 -> 630 [penwidth=1, color=black];\n\t1227 -> 631 [penwidth=1, color=black];\n\t1227 -> 632 [penwidth=1, color=black];\n\t1227 -> 633 [penwidth=1, color=black];\n\t1227 -> 634 [penwidth=1, color=black];\n\t1227 -> 635 [penwidth=1, color=black];\n\t1227 -> 636 [penwidth=1, color=black];\n\t1227 -> 637 [penwidth=1, color=black];\n\t1227 -> 638 [penwidth=1, color=black];\n\t1227 -> 639 [penwidth=1, color=black];\n\t1227 -> 640 [penwidth=1, color=black];\n\t1227 -> 641 [penwidth=1, color=black];\n\t1227 -> 646 [penwidth=1, color=black];\n\t1227 -> 647 [penwidth=1, color=black];\n\t1227 -> 648 [penwidth=1, color=black];\n\t1227 -> 649 [penwidth=1, color=black];\n\t1227 -> 650 [penwidth=1, color=black];\n\t1227 -> 653 [penwidth=1, color=black];\n\t1227 -> 654 [penwidth=1, color=black];\n\t1227 -> 655 [penwidth=1, color=black];\n\t1227 -> 656 [penwidth=1, color=black];\n\t1227 -> 657 [penwidth=1, color=black];\n\t1227 -> 658 [penwidth=1, color=black];\n\t1227 -> 659 [penwidth=1, color=black];\n\t1227 -> 660 [penwidth=1, color=black];\n\t1227 -> 661 [penwidth=1, color=black];\n\t1227 -> 662 [penwidth=1, color=black];\n\t1227 -> 663 [penwidth=1, color=black];\n\t1227 -> 664 [penwidth=1, color=black];\n\t1227 -> 665 [penwidth=1, color=black];\n\t1227 -> 666 [penwidth=1, color=black];\n\t1227 -> 667 [penwidth=1, color=black];\n\t1227 -> 668 [penwidth=1, color=black];\n\t1227 -> 669 [penwidth=1, color=black];\n\t1227 -> 670 [penwidth=1, color=black];\n\t1227 -> 671 [penwidth=1, color=black];\n\t1227 -> 672 [penwidth=1, color=black];\n\t1227 -> 673 [penwidth=1, color=black];\n\t1227 -> 674 [penwidth=1, color=black];\n\t1227 -> 675 [penwidth=1, color=black];\n\t1227 -> 676 [penwidth=1, color=black];\n\t1227 -> 677 [penwidth=1, color=black];\n\t1227 -> 678 [penwidth=1, color=black];\n\t1227 -> 679 [penwidth=1, color=black];\n\t1227 -> 680 [penwidth=1, color=black];\n\t1227 -> 681 [penwidth=1, color=black];\n\t1227 -> 682 [penwidth=1, color=black];\n\t1227 -> 683 [penwidth=1, color=black];\n\t1227 -> 684 [penwidth=1, color=black];\n\t1227 -> 685 [penwidth=1, color=black];\n\t1227 -> 686 [penwidth=1, color=black];\n\t1227 -> 687 [penwidth=1, color=black];\n\t1227 -> 688 [penwidth=1, color=black];\n\t1227 -> 689 [penwidth=1, color=black];\n\t1227 -> 691 [penwidth=1, color=black];\n\t1227 -> 692 [penwidth=1, color=black];\n\t1227 -> 693 [penwidth=1, color=black];\n\t1227 -> 694 [penwidth=1, color=black];\n\t1227 -> 695 [penwidth=1, color=black];\n\t1227 -> 696 [penwidth=1, color=black];\n\t1227 -> 697 [penwidth=1, color=black];\n\t1227 -> 698 [penwidth=1, color=black];\n\t1227 -> 699 [penwidth=1, color=black];\n\t1227 -> 700 [penwidth=1, color=black];\n\t1227 -> 701 [penwidth=1, color=black];\n\t1227 -> 702 [penwidth=1, color=black];\n\t1227 -> 703 [penwidth=1, color=black];\n\t1227 -> 704 [penwidth=1, color=black];\n\t1227 -> 705 [penwidth=1, color=black];\n\t1227 -> 706 [penwidth=1, color=black];\n\t1227 -> 707 [penwidth=1, color=black];\n\t1227 -> 708 [penwidth=1, color=black];\n\t1227 -> 709 [penwidth=1, color=black];\n\t1227 -> 710 [penwidth=1, color=black];\n\t1227 -> 711 [penwidth=1, color=black];\n\t1227 -> 712 [penwidth=1, color=black];\n\t1227 -> 713 [penwidth=1, color=black];\n\t1227 -> 714 [penwidth=1, color=black];\n\t1227 -> 715 [penwidth=1, color=black];\n\t1227 -> 716 [penwidth=1, color=black];\n\t1227 -> 717 [penwidth=1, color=black];\n\t1227 -> 718 [penwidth=1, color=black];\n\t1227 -> 719 [penwidth=1, color=black];\n\t1227 -> 720 [penwidth=1, color=black];\n\t1227 -> 721 [penwidth=1, color=black];\n\t1227 -> 722 [penwidth=1, color=black];\n\t1227 -> 723 [penwidth=1, color=black];\n\t1227 -> 724 [penwidth=1, color=black];\n\t1227 -> 725 [penwidth=1, color=black];\n\t1227 -> 726 [penwidth=1, color=black];\n\t1227 -> 727 [penwidth=1, color=black];\n\t1227 -> 728 [penwidth=1, color=black];\n\t1227 -> 729 [penwidth=1, color=black];\n\t1227 -> 730 [penwidth=1, color=black];\n\t1227 -> 731 [penwidth=1, color=black];\n\t1227 -> 732 [penwidth=1, color=black];\n\t1227 -> 733 [penwidth=1, color=black];\n\t1227 -> 734 [penwidth=1, color=black];\n\t1227 -> 735 [penwidth=1, color=black];\n\t1227 -> 736 [penwidth=1, color=black];\n\t1227 -> 737 [penwidth=1, color=black];\n\t1227 -> 738 [penwidth=1, color=black];\n\t1227 -> 739 [penwidth=1, color=black];\n\t1227 -> 740 [penwidth=1, color=black];\n\t1227 -> 741 [penwidth=1, color=black];\n\t1227 -> 742 [penwidth=1, color=black];\n\t1227 -> 743 [penwidth=1, color=black];\n\t1227 -> 744 [penwidth=1, color=black];\n\t1227 -> 745 [penwidth=1, color=black];\n\t1227 -> 746 [penwidth=1, color=black];\n\t1227 -> 747 [penwidth=1, color=black];\n\t1227 -> 748 [penwidth=1, color=black];\n\t1227 -> 749 [penwidth=1, color=black];\n\t1227 -> 750 [penwidth=1, color=black];\n\t1227 -> 751 [penwidth=1, color=black];\n\t1227 -> 753 [penwidth=1, color=black];\n\t1227 -> 754 [penwidth=1, color=black];\n\t1227 -> 755 [penwidth=1, color=black];\n\t1227 -> 756 [penwidth=1, color=black];\n\t1227 -> 757 [penwidth=1, color=black];\n\t1227 -> 758 [penwidth=1, color=black];\n\t1227 -> 759 [penwidth=1, color=black];\n\t1227 -> 760 [penwidth=1, color=black];\n\t1227 -> 761 [penwidth=1, color=black];\n\t1227 -> 762 [penwidth=1, color=black];\n\t1227 -> 763 [penwidth=1, color=black];\n\t1227 -> 764 [penwidth=1, color=black];\n\t1227 -> 765 [penwidth=1, color=black];\n\t1227 -> 766 [penwidth=1, color=black];\n\t1227 -> 767 [penwidth=1, color=black];\n\t1227 -> 768 [penwidth=1, color=black];\n\t1227 -> 769 [penwidth=1, color=black];\n\t1227 -> 770 [penwidth=1, color=black];\n\t1227 -> 771 [penwidth=1, color=black];\n\t1227 -> 772 [penwidth=1, color=black];\n\t1227 -> 773 [penwidth=1, color=black];\n\t1227 -> 774 [penwidth=1, color=black];\n\t1227 -> 775 [penwidth=1, color=black];\n\t1227 -> 776 [penwidth=1, color=black];\n\t1227 -> 777 [penwidth=1, color=black];\n\t1227 -> 778 [penwidth=1, color=black];\n\t1227 -> 779 [penwidth=1, color=black];\n\t1227 -> 780 [penwidth=1, color=black];\n\t1227 -> 781 [penwidth=1, color=black];\n\t1227 -> 782 [penwidth=1, color=black];\n\t1227 -> 783 [penwidth=1, color=black];\n\t1227 -> 784 [penwidth=1, color=black];\n\t1227 -> 785 [penwidth=1, color=black];\n\t1227 -> 786 [penwidth=1, color=black];\n\t1227 -> 787 [penwidth=1, color=black];\n\t1227 -> 788 [penwidth=1, color=black];\n\t1227 -> 789 [penwidth=1, color=black];\n\t1227 -> 790 [penwidth=1, color=black];\n\t1227 -> 791 [penwidth=1, color=black];\n\t1227 -> 792 [penwidth=1, color=black];\n\t1227 -> 793 [penwidth=1, color=black];\n\t1227 -> 794 [penwidth=1, color=black];\n\t1227 -> 795 [penwidth=1, color=black];\n\t1227 -> 796 [penwidth=1, color=black];\n\t1227 -> 797 [penwidth=1, color=black];\n\t1227 -> 798 [penwidth=1, color=black];\n\t1227 -> 799 [penwidth=1, color=black];\n\t1227 -> 800 [penwidth=1, color=black];\n\t1227 -> 801 [penwidth=1, color=black];\n\t1227 -> 802 [penwidth=1, color=black];\n\t1227 -> 803 [penwidth=1, color=black];\n\t1227 -> 804 [penwidth=1, color=black];\n\t1227 -> 805 [penwidth=1, color=black];\n\t1227 -> 806 [penwidth=1, color=black];\n\t1227 -> 807 [penwidth=1, color=black];\n\t1227 -> 808 [penwidth=1, color=black];\n\t1227 -> 809 [penwidth=1, color=black];\n\t1227 -> 810 [penwidth=1, color=black];\n\t1227 -> 811 [penwidth=1, color=black];\n\t1227 -> 812 [penwidth=1, color=black];\n\t1227 -> 813 [penwidth=1, color=black];\n\t1227 -> 814 [penwidth=1, color=black];\n\t1227 -> 815 [penwidth=1, color=black];\n\t1227 -> 816 [penwidth=1, color=black];\n\t1227 -> 817 [penwidth=1, color=black];\n\t1227 -> 818 [penwidth=1, color=black];\n\t1227 -> 819 [penwidth=1, color=black];\n\t1227 -> 820 [penwidth=1, color=black];\n\t1227 -> 821 [penwidth=1, color=black];\n\t1227 -> 822 [penwidth=1, color=black];\n\t1227 -> 823 [penwidth=1, color=black];\n\t1227 -> 824 [penwidth=1, color=black];\n\t1227 -> 825 [penwidth=1, color=black];\n\t1227 -> 826 [penwidth=1, color=black];\n\t1227 -> 827 [penwidth=1, color=black];\n\t1227 -> 828 [penwidth=1, color=black];\n\t1227 -> 829 [penwidth=1, color=black];\n\t1227 -> 830 [penwidth=1, color=black];\n\t1227 -> 831 [penwidth=1, color=black];\n\t1227 -> 832 [penwidth=1, color=black];\n\t1227 -> 833 [penwidth=1, color=black];\n\t1227 -> 834 [penwidth=1, color=black];\n\t1227 -> 835 [penwidth=1, color=black];\n\t1227 -> 836 [penwidth=1, color=black];\n\t1227 -> 837 [penwidth=1, color=black];\n\t1227 -> 838 [penwidth=1, color=black];\n\t1227 -> 839 [penwidth=1, color=black];\n\t1227 -> 840 [penwidth=1, color=black];\n\t1227 -> 841 [penwidth=1, color=black];\n\t1227 -> 842 [penwidth=1, color=black];\n\t1227 -> 843 [penwidth=1, color=black];\n\t1227 -> 844 [penwidth=1, color=black];\n\t1227 -> 845 [penwidth=1, color=black];\n\t1227 -> 846 [penwidth=1, color=black];\n\t1227 -> 847 [penwidth=1, color=black];\n\t1227 -> 848 [penwidth=1, color=black];\n\t1227 -> 849 [penwidth=1, color=black];\n\t1227 -> 850 [penwidth=1, color=black];\n\t1227 -> 851 [penwidth=1, color=black];\n\t1227 -> 852 [penwidth=1, color=black];\n\t1227 -> 853 [penwidth=1, color=black];\n\t1227 -> 854 [penwidth=1, color=black];\n\t1227 -> 855 [penwidth=1, color=black];\n\t1227 -> 856 [penwidth=1, color=black];\n\t1227 -> 857 [penwidth=1, color=black];\n\t1227 -> 858 [penwidth=1, color=black];\n\t1227 -> 859 [penwidth=1, color=black];\n\t1227 -> 860 [penwidth=1, color=black];\n\t1227 -> 861 [penwidth=1, color=black];\n\t1227 -> 862 [penwidth=1, color=black];\n\t1227 -> 863 [penwidth=1, color=black];\n\t1227 -> 864 [penwidth=1, color=black];\n\t1227 -> 865 [penwidth=1, color=black];\n\t1227 -> 866 [penwidth=1, color=black];\n\t1227 -> 867 [penwidth=1, color=black];\n\t1227 -> 868 [penwidth=1, color=black];\n\t1227 -> 869 [penwidth=1, color=black];\n\t1227 -> 870 [penwidth=1, color=black];\n\t1227 -> 874 [penwidth=1, color=black];\n\t1227 -> 875 [penwidth=1, color=black];\n\t1227 -> 876 [penwidth=1, color=black];\n\t1227 -> 877 [penwidth=1, color=black];\n\t1227 -> 878 [penwidth=1, color=black];\n\t1227 -> 879 [penwidth=1, color=black];\n\t1227 -> 880 [penwidth=1, color=black];\n\t1227 -> 881 [penwidth=1, color=black];\n\t1227 -> 882 [penwidth=1, color=black];\n\t1227 -> 883 [penwidth=1, color=black];\n\t1227 -> 884 [penwidth=1, color=black];\n\t1227 -> 885 [penwidth=1, color=black];\n\t1227 -> 886 [penwidth=1, color=black];\n\t1227 -> 887 [penwidth=1, color=black];\n\t1227 -> 888 [penwidth=1, color=black];\n\t1227 -> 889 [penwidth=1, color=black];\n\t1227 -> 890 [penwidth=1, color=black];\n\t1227 -> 891 [penwidth=1, color=black];\n\t1227 -> 892 [penwidth=1, color=black];\n\t1227 -> 893 [penwidth=1, color=black];\n\t1227 -> 894 [penwidth=1, color=black];\n\t1227 -> 895 [penwidth=1, color=black];\n\t1227 -> 896 [penwidth=1, color=black];\n\t1227 -> 897 [penwidth=1, color=black];\n\t1227 -> 898 [penwidth=1, color=black];\n\t1227 -> 899 [penwidth=1, color=black];\n\t1227 -> 900 [penwidth=1, color=black];\n\t1227 -> 901 [penwidth=1, color=black];\n\t1227 -> 902 [penwidth=1, color=black];\n\t1227 -> 903 [penwidth=1, color=black];\n\t1227 -> 904 [penwidth=1, color=black];\n\t1227 -> 905 [penwidth=1, color=black];\n\t1227 -> 906 [penwidth=1, color=black];\n\t1227 -> 907 [penwidth=1, color=black];\n\t1227 -> 908 [penwidth=1, color=black];\n\t1227 -> 909 [penwidth=1, color=black];\n\t1227 -> 910 [penwidth=1, color=black];\n\t1227 -> 911 [penwidth=1, color=black];\n\t1227 -> 912 [penwidth=1, color=black];\n\t1227 -> 913 [penwidth=1, color=black];\n\t1227 -> 914 [penwidth=1, color=black];\n\t1227 -> 915 [penwidth=1, color=black];\n\t1227 -> 916 [penwidth=1, color=black];\n\t1227 -> 917 [penwidth=1, color=black];\n\t1227 -> 918 [penwidth=1, color=black];\n\t1227 -> 919 [penwidth=1, color=black];\n\t1227 -> 920 [penwidth=1, color=black];\n\t1227 -> 921 [penwidth=1, color=black];\n\t1227 -> 922 [penwidth=1, color=black];\n\t1227 -> 923 [penwidth=1, color=black];\n\t1227 -> 924 [penwidth=1, color=black];\n\t1227 -> 925 [penwidth=1, color=black];\n\t1227 -> 926 [penwidth=1, color=black];\n\t1227 -> 927 [penwidth=1, color=black];\n\t1227 -> 928 [penwidth=1, color=black];\n\t1227 -> 929 [penwidth=1, color=black];\n\t1227 -> 930 [penwidth=1, color=black];\n\t1227 -> 931 [penwidth=1, color=black];\n\t1227 -> 932 [penwidth=1, color=black];\n\t1227 -> 933 [penwidth=1, color=black];\n\t1227 -> 934 [penwidth=1, color=black];\n\t1227 -> 935 [penwidth=1, color=black];\n\t1227 -> 936 [penwidth=1, color=black];\n\t1227 -> 937 [penwidth=1, color=black];\n\t1227 -> 938 [penwidth=1, color=black];\n\t1227 -> 939 [penwidth=1, color=black];\n\t1227 -> 940 [penwidth=1, color=black];\n\t1227 -> 941 [penwidth=1, color=black];\n\t1227 -> 942 [penwidth=1, color=black];\n\t1227 -> 943 [penwidth=1, color=black];\n\t1227 -> 944 [penwidth=1, color=black];\n\t1227 -> 945 [penwidth=1, color=black];\n\t1227 -> 946 [penwidth=1, color=black];\n\t1227 -> 947 [penwidth=1, color=black];\n\t1227 -> 948 [penwidth=1, color=black];\n\t1227 -> 949 [penwidth=1, color=black];\n\t1227 -> 950 [penwidth=1, color=black];\n\t1227 -> 951 [penwidth=1, color=black];\n\t1227 -> 952 [penwidth=1, color=black];\n\t1227 -> 953 [penwidth=1, color=black];\n\t1227 -> 954 [penwidth=1, color=black];\n\t1227 -> 955 [penwidth=1, color=black];\n\t1227 -> 956 [penwidth=1, color=black];\n\t1227 -> 957 [penwidth=1, color=black];\n\t1227 -> 958 [penwidth=1, color=black];\n\t1227 -> 959 [penwidth=1, color=black];\n\t1227 -> 960 [penwidth=1, color=black];\n\t1227 -> 961 [penwidth=1, color=black];\n\t1227 -> 962 [penwidth=1, color=black];\n\t1227 -> 963 [penwidth=1, color=black];\n\t1227 -> 964 [penwidth=1, color=black];\n\t1227 -> 965 [penwidth=1, color=black];\n\t1227 -> 966 [penwidth=1, color=black];\n\t1227 -> 967 [penwidth=1, color=black];\n\t1227 -> 968 [penwidth=1, color=black];\n\t1227 -> 969 [penwidth=1, color=black];\n\t1227 -> 970 [penwidth=1, color=black];\n\t1227 -> 971 [penwidth=1, color=black];\n\t1227 -> 972 [penwidth=1, color=black];\n\t1227 -> 973 [penwidth=1, color=black];\n\t1227 -> 974 [penwidth=1, color=black];\n\t1227 -> 975 [penwidth=1, color=black];\n\t1227 -> 976 [penwidth=1, color=black];\n\t1227 -> 977 [penwidth=1, color=black];\n\t1227 -> 978 [penwidth=1, color=black];\n\t1227 -> 979 [penwidth=1, color=black];\n\t1227 -> 980 [penwidth=1, color=black];\n\t1227 -> 981 [penwidth=1, color=black];\n\t1227 -> 982 [penwidth=1, color=black];\n\t1227 -> 983 [penwidth=1, color=black];\n\t1227 -> 984 [penwidth=1, color=black];\n\t1227 -> 985 [penwidth=1, color=black];\n\t1227 -> 986 [penwidth=1, color=black];\n\t1227 -> 987 [penwidth=1, color=black];\n\t1227 -> 988 [penwidth=1, color=black];\n\t1227 -> 989 [penwidth=1, color=black];\n\t1227 -> 990 [penwidth=1, color=black];\n\t1227 -> 991 [penwidth=1, color=black];\n\t1227 -> 992 [penwidth=1, color=black];\n\t1227 -> 993 [penwidth=1, color=black];\n\t1227 -> 994 [penwidth=1, color=black];\n\t1227 -> 995 [penwidth=1, color=black];\n\t1227 -> 996 [penwidth=1, color=black];\n\t1227 -> 997 [penwidth=1, color=black];\n\t1227 -> 998 [penwidth=1, color=black];\n\t1227 -> 999 [penwidth=1, color=black];\n\t1227 -> 1000 [penwidth=1, color=black];\n\t1227 -> 1001 [penwidth=1, color=black];\n\t1227 -> 1002 [penwidth=1, color=black];\n\t1227 -> 1003 [penwidth=1, color=black];\n\t1227 -> 1004 [penwidth=1, color=black];\n\t1227 -> 1005 [penwidth=1, color=black];\n\t1227 -> 1006 [penwidth=1, color=black];\n\t1227 -> 1007 [penwidth=1, color=black];\n\t1227 -> 1008 [penwidth=1, color=black];\n\t1227 -> 1009 [penwidth=1, color=black];\n\t1227 -> 1010 [penwidth=1, color=black];\n\t1227 -> 1011 [penwidth=1, color=black];\n\t1227 -> 1012 [penwidth=1, color=black];\n\t1227 -> 1013 [penwidth=1, color=black];\n\t1227 -> 1014 [penwidth=1, color=black];\n\t1227 -> 1015 [penwidth=1, color=black];\n\t1227 -> 1016 [penwidth=1, color=black];\n\t1227 -> 1017 [penwidth=1, color=black];\n\t1227 -> 1019 [penwidth=1, color=black];\n\t1227 -> 1020 [penwidth=1, color=black];\n\t1227 -> 1021 [penwidth=1, color=black];\n\t1227 -> 1022 [penwidth=1, color=black];\n\t1227 -> 1023 [penwidth=1, color=black];\n\t1227 -> 1026 [penwidth=1, color=black];\n\t1227 -> 1027 [penwidth=1, color=black];\n\t1227 -> 1028 [penwidth=1, color=black];\n\t1227 -> 1029 [penwidth=1, color=black];\n\t1227 -> 1030 [penwidth=1, color=black];\n\t1227 -> 1031 [penwidth=1, color=black];\n\t1227 -> 1032 [penwidth=1, color=black];\n\t1227 -> 1033 [penwidth=1, color=black];\n\t1227 -> 1034 [penwidth=1, color=black];\n\t1227 -> 1035 [penwidth=1, color=black];\n\t1227 -> 1036 [penwidth=1, color=black];\n\t1227 -> 1037 [penwidth=1, color=black];\n\t1227 -> 1038 [penwidth=1, color=black];\n\t1227 -> 1039 [penwidth=1, color=black];\n\t1227 -> 1040 [penwidth=1, color=black];\n\t1227 -> 1041 [penwidth=1, color=black];\n\t1227 -> 1042 [penwidth=1, color=black];\n\t1227 -> 1045 [penwidth=1, color=black];\n\t1227 -> 1046 [penwidth=1, color=black];\n\t1227 -> 1047 [penwidth=1, color=black];\n\t1227 -> 1048 [penwidth=1, color=black];\n\t1227 -> 1049 [penwidth=1, color=black];\n\t1227 -> 1050 [penwidth=1, color=black];\n\t1227 -> 1051 [penwidth=1, color=black];\n\t1227 -> 1052 [penwidth=1, color=black];\n\t1227 -> 1053 [penwidth=1, color=black];\n\t1227 -> 1054 [penwidth=1, color=black];\n\t1227 -> 1055 [penwidth=1, color=black];\n\t1227 -> 1057 [penwidth=1, color=black];\n\t1227 -> 1058 [penwidth=1, color=black];\n\t1227 -> 1059 [penwidth=1, color=black];\n\t1227 -> 1060 [penwidth=1, color=black];\n\t1227 -> 1061 [penwidth=1, color=black];\n\t1227 -> 1062 [penwidth=1, color=black];\n\t1227 -> 1068 [penwidth=1, color=black];\n\t1227 -> 1069 [penwidth=1, color=black];\n\t1227 -> 1070 [penwidth=1, color=black];\n\t1227 -> 1071 [penwidth=1, color=black];\n\t1227 -> 1072 [penwidth=1, color=black];\n\t1227 -> 1081 [penwidth=1, color=black];\n\t1227 -> 1082 [penwidth=1, color=black];\n\t1227 -> 1083 [penwidth=1, color=black];\n\t1227 -> 1084 [penwidth=1, color=black];\n\t1227 -> 1085 [penwidth=1, color=black];\n\t1227 -> 1087 [penwidth=1, color=black];\n\t1227 -> 1088 [penwidth=1, color=black];\n\t1227 -> 1089 [penwidth=1, color=black];\n\t1227 -> 1090 [penwidth=1, color=black];\n\t1227 -> 1091 [penwidth=1, color=black];\n\t1227 -> 1092 [penwidth=1, color=black];\n\t1227 -> 1093 [penwidth=1, color=black];\n\t1227 -> 1094 [penwidth=1, color=black];\n\t1227 -> 1095 [penwidth=1, color=black];\n\t1227 -> 1096 [penwidth=1, color=black];\n\t1227 -> 1097 [penwidth=1, color=black];\n\t1227 -> 1098 [penwidth=1, color=black];\n\t1227 -> 1099 [penwidth=1, color=black];\n\t1227 -> 1100 [penwidth=1, color=black];\n\t1227 -> 1101 [penwidth=1, color=black];\n\t1227 -> 1102 [penwidth=1, color=black];\n\t1227 -> 1103 [penwidth=1, color=black];\n\t1227 -> 1104 [penwidth=1, color=black];\n\t1227 -> 1105 [penwidth=1, color=black];\n\t1227 -> 1106 [penwidth=1, color=black];\n\t1227 -> 1107 [penwidth=1, color=black];\n\t1227 -> 1108 [penwidth=1, color=black];\n\t1227 -> 1109 [penwidth=1, color=black];\n\t1227 -> 1110 [penwidth=1, color=black];\n\t1227 -> 1111 [penwidth=1, color=black];\n\t1227 -> 1112 [penwidth=1, color=black];\n\t1227 -> 1113 [penwidth=1, color=black];\n\t1227 -> 1117 [penwidth=1, color=black];\n\t1227 -> 1118 [penwidth=1, color=black];\n\t1227 -> 1119 [penwidth=1, color=black];\n\t1227 -> 1120 [penwidth=1, color=black];\n\t1227 -> 1121 [penwidth=1, color=black];\n\t1227 -> 1122 [penwidth=1, color=black];\n\t1227 -> 1123 [penwidth=1, color=black];\n\t1227 -> 1124 [penwidth=1, color=black];\n\t1227 -> 1125 [penwidth=1, color=black];\n\t1227 -> 1126 [penwidth=1, color=black];\n\t1227 -> 1127 [penwidth=1, color=black];\n\t1227 -> 1128 [penwidth=1, color=black];\n\t1227 -> 1129 [penwidth=1, color=black];\n\t1227 -> 1130 [penwidth=1, color=black];\n\t1227 -> 1131 [penwidth=1, color=black];\n\t1227 -> 1132 [penwidth=1, color=black];\n\t1227 -> 1133 [penwidth=1, color=black];\n\t1227 -> 1134 [penwidth=1, color=black];\n\t1227 -> 1135 [penwidth=1, color=black];\n\t1227 -> 1136 [penwidth=1, color=black];\n\t1227 -> 1137 [penwidth=1, color=black];\n\t1227 -> 1138 [penwidth=1, color=black];\n\t1227 -> 1139 [penwidth=1, color=black];\n\t1227 -> 1140 [penwidth=1, color=black];\n\t1227 -> 1141 [penwidth=1, color=black];\n\t1227 -> 1143 [penwidth=1, color=black];\n\t1227 -> 1144 [penwidth=1, color=black];\n\t1227 -> 1145 [penwidth=1, color=black];\n\t1227 -> 1146 [penwidth=1, color=black];\n\t1227 -> 1147 [penwidth=1, color=black];\n\t1227 -> 1148 [penwidth=1, color=black];\n\t1227 -> 1149 [penwidth=1, color=black];\n\t1227 -> 1150 [penwidth=1, color=black];\n\t1227 -> 1151 [penwidth=1, color=black];\n\t1227 -> 1152 [penwidth=1, color=black];\n\t1227 -> 1153 [penwidth=1, color=black];\n\t1227 -> 1154 [penwidth=1, color=black];\n\t1227 -> 1155 [penwidth=1, color=black];\n\t1227 -> 1156 [penwidth=1, color=black];\n\t1227 -> 1157 [penwidth=1, color=black];\n\t1227 -> 1158 [penwidth=1, color=black];\n\t1227 -> 1159 [penwidth=1, color=black];\n\t1227 -> 1160 [penwidth=1, color=black];\n\t1227 -> 1161 [penwidth=1, color=black];\n\t1227 -> 1162 [penwidth=1, color=black];\n\t1227 -> 1163 [penwidth=1, color=black];\n\t1227 -> 1164 [penwidth=1, color=black];\n\t1227 -> 1165 [penwidth=1, color=black];\n\t1227 -> 1166 [penwidth=1, color=black];\n\t1227 -> 1167 [penwidth=1, color=black];\n\t1227 -> 1168 [penwidth=1, color=black];\n\t1227 -> 1169 [penwidth=1, color=black];\n\t1227 -> 1170 [penwidth=1, color=black];\n\t1227 -> 1171 [penwidth=1, color=black];\n\t1227 -> 1172 [penwidth=1, color=black];\n\t1227 -> 1173 [penwidth=1, color=black];\n\t1227 -> 1174 [penwidth=1, color=black];\n\t1227 -> 1175 [penwidth=1, color=black];\n\t1227 -> 1176 [penwidth=1, color=black];\n\t1227 -> 1177 [penwidth=1, color=black];\n\t1227 -> 1178 [penwidth=1, color=black];\n\t1227 -> 1179 [penwidth=1, color=black];\n\t1227 -> 1180 [penwidth=1, color=black];\n\t1227 -> 1181 [penwidth=1, color=black];\n\t1227 -> 1182 [penwidth=1, color=black];\n\t1227 -> 1183 [penwidth=1, color=black];\n\t1227 -> 1184 [penwidth=1, color=black];\n\t1227 -> 1185 [penwidth=1, color=black];\n\t1227 -> 1186 [penwidth=1, color=black];\n\t1227 -> 1189 [penwidth=1, color=black];\n\t1227 -> 1190 [penwidth=1, color=black];\n\t1227 -> 1191 [penwidth=1, color=black];\n\t1227 -> 1192 [penwidth=1, color=black];\n\t1227 -> 1193 [penwidth=1, color=black];\n\t1227 -> 1194 [penwidth=1, color=black];\n\t1272 -> 1273 [penwidth=1, color=black];\n\t1273 -> 1275 [penwidth=1, color=black];\n\t1274 -> 1273 [penwidth=1, color=black];\n\t1276 -> 1275 [penwidth=1, color=black];\n\t1291 -> 1435 [penwidth=\"1.6931471805599454\", color=black];\n\t1292 -> 1370 [penwidth=1, color=black];\n\t1292 -> 1371 [penwidth=1, color=black];\n\t1292 -> 1373 [penwidth=1, color=black];\n\t1292 -> 1387 [penwidth=1, color=black];\n\t1292 -> 1392 [penwidth=1, color=black];\n\t1292 -> 1433 [penwidth=1, color=black];\n\t1292 -> 1439 [penwidth=1, color=black];\n\t1293 -> 1294 [penwidth=1, color=black];\n\t1293 -> 1416 [penwidth=1, color=black];\n\t1294 -> 1395 [penwidth=1, color=black];\n\t1294 -> 1429 [penwidth=1, color=black];\n\t1294 -> 1433 [penwidth=1, color=black];\n\t1295 -> 1296 [penwidth=1, color=black];\n\t1296 -> 1370 [penwidth=1, color=black];\n\t1296 -> 1371 [penwidth=\"1.6931471805599454\", color=black];\n\t1296 -> 1373 [penwidth=1, color=black];\n\t1296 -> 1387 [penwidth=1, color=black];\n\t1296 -> 1392 [penwidth=\"1.6931471805599454\", color=black];\n\t1296 -> 1433 [penwidth=1, color=black];\n\t1296 -> 1439 [penwidth=1, color=black];\n\t1301 -> 1229 [penwidth=1, color=black];\n\t1301 -> 1230 [penwidth=1, color=black];\n\t1301 -> 1232 [penwidth=1, color=black];\n\t1301 -> 1234 [penwidth=1, color=black];\n\t1301 -> 1435 [penwidth=\"2.386294361119891\", color=black];\n\t1302 -> 1236 [penwidth=1, color=black];\n\t1302 -> 1237 [penwidth=1, color=black];\n\t1302 -> 1238 [penwidth=1, color=black];\n\t1302 -> 1239 [penwidth=1, color=black];\n\t1302 -> 1240 [penwidth=1, color=black];\n\t1302 -> 1241 [penwidth=1, color=black];\n\t1302 -> 1242 [penwidth=1, color=black];\n\t1302 -> 1243 [penwidth=1, color=black];\n\t1302 -> 1244 [penwidth=1, color=black];\n\t1302 -> 1248 [penwidth=1, color=black];\n\t1302 -> 1249 [penwidth=1, color=black];\n\t1302 -> 1251 [penwidth=1, color=black];\n\t1302 -> 1252 [penwidth=1, color=black];\n\t1302 -> 1258 [penwidth=1, color=black];\n\t1302 -> 1259 [penwidth=1, color=black];\n\t1302 -> 1261 [penwidth=1, color=black];\n\t1302 -> 1262 [penwidth=1, color=black];\n\t1302 -> 1264 [penwidth=1, color=black];\n\t1302 -> 1267 [penwidth=1, color=black];\n\t1302 -> 1269 [penwidth=\"1.6931471805599454\", color=black];\n\t1302 -> 1270 [penwidth=1, color=black];\n\t1302 -> 1271 [penwidth=1, color=black];\n\t1302 -> 1291 [penwidth=1, color=black];\n\t1302 -> 1293 [penwidth=\"3.70805020110221\", color=black];\n\t1302 -> 1294 [penwidth=\"3.0794415416798357\", color=black];\n\t1302 -> 1325 [penwidth=\"2.9459101490553135\", color=black];\n\t1302 -> 1350 [penwidth=1, color=black];\n\t1303 -> 1254 [penwidth=1, color=black];\n\t1303 -> 1255 [penwidth=1, color=black];\n\t1303 -> 1296 [penwidth=1, color=black];\n\t1303 -> 1442 [penwidth=1, color=black];\n\t1304 -> 1253 [penwidth=1, color=black];\n\t1304 -> 1292 [penwidth=1, color=black];\n\t1304 -> 1442 [penwidth=1, color=black];\n\t1305 -> 1266 [penwidth=1, color=black];\n\t1305 -> 1268 [penwidth=1, color=black];\n\t1306 -> 1260 [penwidth=1, color=black];\n\t1306 -> 1296 [penwidth=1, color=black];\n\t1306 -> 1442 [penwidth=1, color=black];\n\t1307 -> 1245 [penwidth=1, color=black];\n\t1307 -> 1246 [penwidth=1, color=black];\n\t1307 -> 1247 [penwidth=1, color=black];\n\t1307 -> 1256 [penwidth=1, color=black];\n\t1307 -> 1263 [penwidth=1, color=black];\n\t1307 -> 1435 [penwidth=\"2.6094379124341005\", color=black];\n\t1308 -> 1233 [penwidth=1, color=black];\n\t1308 -> 1295 [penwidth=1, color=black];\n\t1308 -> 1296 [penwidth=1, color=black];\n\t1308 -> 1323 [penwidth=1, color=black];\n\t1308 -> 1442 [penwidth=\"2.09861228866811\", color=black];\n\t1309 -> 1250 [penwidth=1, color=black];\n\t1309 -> 1257 [penwidth=1, color=black];\n\t1309 -> 1265 [penwidth=1, color=black];\n\t1309 -> 1292 [penwidth=1, color=black];\n\t1309 -> 1295 [penwidth=1, color=black];\n\t1309 -> 1327 [penwidth=1, color=black];\n\t1310 -> 1228 [penwidth=1, color=black];\n\t1310 -> 1231 [penwidth=1, color=black];\n\t1310 -> 1235 [penwidth=1, color=black];\n\t1310 -> 1435 [penwidth=\"2.09861228866811\", color=black];\n\t1311 -> 1370 [penwidth=1, color=black];\n\t1312 -> 1371 [penwidth=1, color=black];\n\t1312 -> 1442 [penwidth=1, color=black];\n\t1313 -> 1371 [penwidth=1, color=black];\n\t1313 -> 1442 [penwidth=1, color=black];\n\t1315 -> 1871 [penwidth=1, color=black];\n\t1316 -> 1321 [penwidth=1, color=black];\n\t1317 -> 1454 [penwidth=1, color=black];\n\t1317 -> 1456 [penwidth=1, color=black];\n\t1317 -> 1470 [penwidth=1, color=black];\n\t1318 -> 1319 [penwidth=1, color=black];\n\t1318 -> 1475 [penwidth=1, color=black];\n\t1320 -> 1321 [penwidth=1, color=black];\n\t1321 -> 1454 [penwidth=\"1.6931471805599454\", color=black];\n\t1321 -> 1456 [penwidth=1, color=black];\n\t1321 -> 1470 [penwidth=1, color=black];\n\t1325 -> 1326 [penwidth=1, color=black];\n\t1326 -> 1275 [penwidth=1, color=black];\n\t1326 -> 1276 [penwidth=1, color=black];\n\t1326 -> 1373 [penwidth=\"1.6931471805599454\", color=black];\n\t1327 -> 1326 [penwidth=1, color=black];\n\t1328 -> 1229 [penwidth=1, color=black];\n\t1328 -> 1230 [penwidth=1, color=black];\n\t1328 -> 1232 [penwidth=1, color=black];\n\t1328 -> 1234 [penwidth=1, color=black];\n\t1329 -> 1236 [penwidth=1, color=black];\n\t1329 -> 1237 [penwidth=1, color=black];\n\t1329 -> 1238 [penwidth=1, color=black];\n\t1329 -> 1239 [penwidth=1, color=black];\n\t1329 -> 1240 [penwidth=1, color=black];\n\t1329 -> 1241 [penwidth=1, color=black];\n\t1329 -> 1242 [penwidth=1, color=black];\n\t1329 -> 1243 [penwidth=1, color=black];\n\t1329 -> 1244 [penwidth=1, color=black];\n\t1329 -> 1248 [penwidth=1, color=black];\n\t1329 -> 1249 [penwidth=1, color=black];\n\t1329 -> 1251 [penwidth=1, color=black];\n\t1329 -> 1252 [penwidth=1, color=black];\n\t1329 -> 1258 [penwidth=1, color=black];\n\t1329 -> 1259 [penwidth=1, color=black];\n\t1329 -> 1261 [penwidth=1, color=black];\n\t1329 -> 1262 [penwidth=1, color=black];\n\t1329 -> 1264 [penwidth=1, color=black];\n\t1329 -> 1267 [penwidth=1, color=black];\n\t1329 -> 1269 [penwidth=1, color=black];\n\t1329 -> 1270 [penwidth=1, color=black];\n\t1329 -> 1271 [penwidth=1, color=black];\n\t1329 -> 1272 [penwidth=\"2.791759469228055\", color=black];\n\t1329 -> 1315 [penwidth=1, color=black];\n\t1329 -> 1318 [penwidth=\"3.70805020110221\", color=black];\n\t1329 -> 1319 [penwidth=\"2.9459101490553135\", color=black];\n\t1329 -> 1363 [penwidth=1, color=black];\n\t1330 -> 1254 [penwidth=1, color=black];\n\t1330 -> 1255 [penwidth=1, color=black];\n\t1330 -> 1316 [penwidth=\"1.6931471805599454\", color=black];\n\t1331 -> 1253 [penwidth=1, color=black];\n\t1331 -> 1317 [penwidth=1, color=black];\n\t1332 -> 1266 [penwidth=1, color=black];\n\t1332 -> 1268 [penwidth=1, color=black];\n\t1333 -> 1260 [penwidth=1, color=black];\n\t1333 -> 1321 [penwidth=1, color=black];\n\t1334 -> 1245 [penwidth=1, color=black];\n\t1334 -> 1246 [penwidth=1, color=black];\n\t1334 -> 1247 [penwidth=1, color=black];\n\t1334 -> 1256 [penwidth=1, color=black];\n\t1334 -> 1263 [penwidth=1, color=black];\n\t1335 -> 1320 [penwidth=1, color=black];\n\t1335 -> 1321 [penwidth=1, color=black];\n\t1335 -> 1322 [penwidth=1, color=black];\n\t1335 -> 1323 [penwidth=1, color=black];\n\t1335 -> 1324 [penwidth=1, color=black];\n\t1336 -> 1250 [penwidth=1, color=black];\n\t1336 -> 1257 [penwidth=1, color=black];\n\t1336 -> 1265 [penwidth=1, color=black];\n\t1336 -> 1274 [penwidth=1, color=black];\n\t1336 -> 1317 [penwidth=1, color=black];\n\t1336 -> 1320 [penwidth=1, color=black];\n\t1337 -> 1228 [penwidth=1, color=black];\n\t1337 -> 1231 [penwidth=1, color=black];\n\t1337 -> 1235 [penwidth=1, color=black];\n\t1355 -> 1343 [penwidth=1, color=black];\n\t1355 -> 1345 [penwidth=1, color=black];\n\t1355 -> 1356 [penwidth=1, color=black];\n\t1355 -> 1363 [penwidth=1, color=black];\n\t1356 -> 1342 [penwidth=1, color=black];\n\t1356 -> 1344 [penwidth=1, color=black];\n\t1356 -> 1346 [penwidth=1, color=black];\n\t1356 -> 1347 [penwidth=1, color=black];\n\t1356 -> 1348 [penwidth=1, color=black];\n\t1356 -> 1349 [penwidth=1, color=black];\n\t1356 -> 1351 [penwidth=1, color=black];\n\t1356 -> 1352 [penwidth=1, color=black];\n\t1356 -> 1353 [penwidth=1, color=black];\n\t1356 -> 1354 [penwidth=1, color=black];\n\t1357 -> 1369 [penwidth=1, color=black];\n\t1357 -> 1429 [penwidth=1, color=black];\n\t1358 -> 1355 [penwidth=1, color=black];\n\t1358 -> 1369 [penwidth=1, color=black];\n\t1358 -> 1429 [penwidth=1, color=black];\n\t1359 -> 1345 [penwidth=1, color=black];\n\t1359 -> 1373 [penwidth=1, color=black];\n\t1359 -> 1387 [penwidth=\"2.09861228866811\", color=black];\n\t1360 -> 1342 [penwidth=1, color=black];\n\t1360 -> 1344 [penwidth=1, color=black];\n\t1360 -> 1346 [penwidth=1, color=black];\n\t1360 -> 1347 [penwidth=1, color=black];\n\t1360 -> 1348 [penwidth=1, color=black];\n\t1360 -> 1349 [penwidth=1, color=black];\n\t1360 -> 1351 [penwidth=1, color=black];\n\t1360 -> 1352 [penwidth=1, color=black];\n\t1360 -> 1353 [penwidth=1, color=black];\n\t1360 -> 1354 [penwidth=1, color=black];\n\t1360 -> 1435 [penwidth=\"3.302585092994046\", color=black];\n\t1361 -> 1350 [penwidth=1, color=black];\n\t1361 -> 1396 [penwidth=1, color=black];\n\t1362 -> 1345 [penwidth=1, color=black];\n\t1362 -> 1355 [penwidth=1, color=black];\n\t1362 -> 1373 [penwidth=1, color=black];\n\t1364 -> 1363 [penwidth=1, color=black];\n\t1365 -> 1345 [penwidth=\"1.6931471805599454\", color=black];\n\t1366 -> 1342 [penwidth=1, color=black];\n\t1366 -> 1344 [penwidth=1, color=black];\n\t1366 -> 1346 [penwidth=1, color=black];\n\t1366 -> 1347 [penwidth=1, color=black];\n\t1366 -> 1348 [penwidth=1, color=black];\n\t1366 -> 1349 [penwidth=1, color=black];\n\t1366 -> 1351 [penwidth=1, color=black];\n\t1366 -> 1352 [penwidth=1, color=black];\n\t1366 -> 1353 [penwidth=1, color=black];\n\t1366 -> 1354 [penwidth=1, color=black];\n\t1367 -> 1363 [penwidth=1, color=black];\n\t1368 -> 1343 [penwidth=1, color=black];\n\t1368 -> 1345 [penwidth=1, color=black];\n\t1369 -> 1350 [penwidth=1, color=black];\n\t1369 -> 1431 [penwidth=1, color=black];\n\t1370 -> 1371 [penwidth=1, color=black];\n\t1370 -> 1379 [penwidth=1, color=black];\n\t1370 -> 1440 [penwidth=1, color=black];\n\t1371 -> 1378 [penwidth=1, color=black];\n\t1371 -> 1380 [penwidth=1, color=black];\n\t1371 -> 1441 [penwidth=1, color=black];\n\t1372 -> 1378 [penwidth=1, color=black];\n\t1374 -> 1375 [penwidth=1, color=black];\n\t1374 -> 1387 [penwidth=\"1.6931471805599454\", color=black];\n\t1375 -> 1394 [penwidth=1, color=black];\n\t1375 -> 1441 [penwidth=\"1.6931471805599454\", color=black];\n\t1376 -> 1375 [penwidth=1, color=black];\n\t1376 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t1377 -> 1381 [penwidth=1, color=black];\n\t1379 -> 1433 [penwidth=1, color=black];\n\t1380 -> 1379 [penwidth=1, color=black];\n\t1380 -> 1441 [penwidth=1, color=black];\n\t1382 -> 1406 [penwidth=1, color=black];\n\t1382 -> 1415 [penwidth=1, color=black];\n\t1383 -> 1435 [penwidth=\"1.6931471805599454\", color=black];\n\t1384 -> 1429 [penwidth=1, color=black];\n\t1385 -> 1384 [penwidth=1, color=black];\n\t1385 -> 1433 [penwidth=1, color=black];\n\t1386 -> 1428 [penwidth=1, color=black];\n\t1386 -> 1435 [penwidth=1, color=black];\n\t1388 -> 1384 [penwidth=1, color=black];\n\t1389 -> 1429 [penwidth=1, color=black];\n\t1389 -> 1882 [penwidth=1, color=black];\n\t1391 -> 1371 [penwidth=1, color=black];\n\t1391 -> 1378 [penwidth=1, color=black];\n\t1392 -> 1372 [penwidth=1, color=black];\n\t1392 -> 1373 [penwidth=\"1.6931471805599454\", color=black];\n\t1393 -> 1372 [penwidth=1, color=black];\n\t1393 -> 1373 [penwidth=\"1.6931471805599454\", color=black];\n\t1394 -> 1373 [penwidth=1, color=black];\n\t1395 -> 1373 [penwidth=1, color=black];\n\t1395 -> 1442 [penwidth=1, color=black];\n\t1396 -> 1373 [penwidth=\"1.6931471805599454\", color=black];\n\t1396 -> 1428 [penwidth=1, color=black];\n\t1397 -> 1387 [penwidth=1, color=black];\n\t1397 -> 1395 [penwidth=1, color=black];\n\t1397 -> 1433 [penwidth=1, color=black];\n\t1398 -> 1399 [penwidth=1, color=black];\n\t1399 -> 1397 [penwidth=1, color=black];\n\t1399 -> 1433 [penwidth=1, color=black];\n\t1399 -> 1871 [penwidth=1, color=black];\n\t1399 -> 1882 [penwidth=1, color=black];\n\t1400 -> 1397 [penwidth=1, color=black];\n\t1401 -> 1398 [penwidth=1, color=black];\n\t1402 -> 1399 [penwidth=1, color=black];\n\t1403 -> 1373 [penwidth=\"2.09861228866811\", color=black];\n\t1403 -> 1405 [penwidth=\"1.6931471805599454\", color=black];\n\t1403 -> 1406 [penwidth=1, color=black];\n\t1403 -> 1432 [penwidth=1, color=black];\n\t1404 -> 1403 [penwidth=1, color=black];\n\t1404 -> 1405 [penwidth=1, color=black];\n\t1404 -> 1414 [penwidth=1, color=black];\n\t1406 -> 1405 [penwidth=1, color=black];\n\t1406 -> 1414 [penwidth=1, color=black];\n\t1407 -> 1387 [penwidth=1, color=black];\n\t1408 -> 1387 [penwidth=1, color=black];\n\t1408 -> 1432 [penwidth=1, color=black];\n\t1410 -> 1429 [penwidth=1, color=black];\n\t1411 -> 1429 [penwidth=1, color=black];\n\t1411 -> 1430 [penwidth=1, color=black];\n\t1411 -> 1431 [penwidth=1, color=black];\n\t1412 -> 1429 [penwidth=1, color=black];\n\t1413 -> 1373 [penwidth=1, color=black];\n\t1413 -> 1428 [penwidth=1, color=black];\n\t1414 -> 1373 [penwidth=1, color=black];\n\t1415 -> 1403 [penwidth=1, color=black];\n\t1415 -> 1414 [penwidth=1, color=black];\n\t1417 -> 1383 [penwidth=1, color=black];\n\t1417 -> 1406 [penwidth=1, color=black];\n\t1418 -> 1428 [penwidth=1, color=black];\n\t1419 -> 1404 [penwidth=1, color=chartreuse];\n\t1420 -> 1406 [penwidth=1, color=black];\n\t1421 -> 1405 [penwidth=1, color=black];\n\t1422 -> 1405 [penwidth=1, color=black];\n\t1425 -> 1370 [penwidth=1, color=black];\n\t1425 -> 1371 [penwidth=1, color=black];\n\t1425 -> 1373 [penwidth=\"1.6931471805599454\", color=black];\n\t1425 -> 1391 [penwidth=1, color=black];\n\t1425 -> 1394 [penwidth=1, color=black];\n\t1425 -> 1442 [penwidth=1, color=black];\n\t1426 -> 1430 [penwidth=1, color=black];\n\t1427 -> 1373 [penwidth=1, color=black];\n\t1429 -> 1372 [penwidth=1, color=black];\n\t1429 -> 1413 [penwidth=\"1.6931471805599454\", color=black];\n\t1430 -> 1396 [penwidth=1, color=black];\n\t1431 -> 1382 [penwidth=1, color=black];\n\t1431 -> 1434 [penwidth=1, color=black];\n\t1432 -> 1371 [penwidth=1, color=black];\n\t1432 -> 1378 [penwidth=1, color=black];\n\t1433 -> 1373 [penwidth=1, color=black];\n\t1434 -> 1874 [penwidth=1, color=black];\n\t1434 -> 1882 [penwidth=1, color=black];\n\t1435 -> 1436 [penwidth=1, color=black];\n\t1436 -> 1433 [penwidth=1, color=black];\n\t1437 -> 1433 [penwidth=1, color=black];\n\t1438 -> 1387 [penwidth=1, color=black];\n\t1438 -> 1439 [penwidth=1, color=black];\n\t1442 -> 1371 [penwidth=\"1.6931471805599454\", color=black];\n\t1442 -> 1372 [penwidth=1, color=black];\n\t1443 -> 1370 [penwidth=1, color=black];\n\t1443 -> 1373 [penwidth=1, color=black];\n\t1443 -> 1428 [penwidth=\"2.09861228866811\", color=black];\n\t1443 -> 1429 [penwidth=1, color=black];\n\t1443 -> 1433 [penwidth=1, color=black];\n\t1443 -> 1449 [penwidth=1, color=black];\n\t1443 -> 1450 [penwidth=1, color=black];\n\t1444 -> 1392 [penwidth=1, color=black];\n\t1444 -> 1444 [penwidth=1, color=black];\n\t1445 -> 1377 [penwidth=1, color=black];\n\t1445 -> 1433 [penwidth=1, color=black];\n\t1446 -> 1372 [penwidth=1, color=black];\n\t1446 -> 1373 [penwidth=1, color=black];\n\t1446 -> 1433 [penwidth=\"1.6931471805599454\", color=black];\n\t1447 -> 1443 [penwidth=1, color=black];\n\t1447 -> 1444 [penwidth=1, color=black];\n\t1447 -> 1450 [penwidth=1, color=black];\n\t1448 -> 1373 [penwidth=1, color=black];\n\t1448 -> 1377 [penwidth=1, color=black];\n\t1448 -> 1379 [penwidth=1, color=black];\n\t1449 -> 1373 [penwidth=1, color=black];\n\t1449 -> 1379 [penwidth=1, color=black];\n\t1450 -> 1445 [penwidth=1, color=black];\n\t1450 -> 1446 [penwidth=1, color=black];\n\t1450 -> 1448 [penwidth=1, color=black];\n\t1450 -> 1449 [penwidth=1, color=black];\n\t1451 -> 1432 [penwidth=1, color=black];\n\t1451 -> 1447 [penwidth=1, color=black];\n\t1453 -> 1462 [penwidth=1, color=black];\n\t1453 -> 1871 [penwidth=1, color=black];\n\t1454 -> 1457 [penwidth=1, color=black];\n\t1454 -> 1468 [penwidth=1, color=black];\n\t1454 -> 1489 [penwidth=1, color=black];\n\t1455 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t1460 -> 1467 [penwidth=1, color=chartreuse];\n\t1462 -> 1876 [penwidth=1, color=black];\n\t1462 -> 1878 [penwidth=1, color=black];\n\t1462 -> 1879 [penwidth=1, color=black];\n\t1463 -> 1452 [penwidth=1, color=black];\n\t1463 -> 1453 [penwidth=1, color=black];\n\t1464 -> 1470 [penwidth=1, color=black];\n\t1465 -> 1469 [penwidth=1, color=black];\n\t1465 -> 1470 [penwidth=1, color=black];\n\t1466 -> 1882 [penwidth=1, color=black];\n\t1467 -> 1463 [penwidth=1, color=black];\n\t1472 -> 1466 [penwidth=1, color=chartreuse];\n\t1483 -> 1452 [penwidth=1, color=black];\n\t1486 -> 1488 [penwidth=1, color=chartreuse];\n\t1488 -> 1483 [penwidth=1, color=black];\n\t1492 -> 1502 [penwidth=1, color=black];\n\t1492 -> 1503 [penwidth=1, color=black];\n\t1492 -> 1504 [penwidth=1, color=black];\n\t1492 -> 1505 [penwidth=1, color=black];\n\t1492 -> 1506 [penwidth=1, color=black];\n\t1492 -> 1507 [penwidth=1, color=black];\n\t1492 -> 1508 [penwidth=1, color=black];\n\t1492 -> 1509 [penwidth=1, color=black];\n\t1492 -> 1510 [penwidth=1, color=black];\n\t1492 -> 1511 [penwidth=1, color=black];\n\t1492 -> 1512 [penwidth=1, color=black];\n\t1492 -> 1514 [penwidth=1, color=black];\n\t1492 -> 1515 [penwidth=1, color=black];\n\t1492 -> 1516 [penwidth=1, color=black];\n\t1492 -> 1517 [penwidth=1, color=black];\n\t1497 -> 1491 [penwidth=1, color=black];\n\t1497 -> 1499 [penwidth=1, color=black];\n\t1497 -> 1500 [penwidth=1, color=black];\n\t1498 -> 1491 [penwidth=\"2.386294361119891\", color=black];\n\t1498 -> 1493 [penwidth=1, color=black];\n\t1498 -> 1494 [penwidth=1, color=black];\n\t1498 -> 1496 [penwidth=1, color=black];\n\t1498 -> 1501 [penwidth=1, color=black];\n\t1499 -> 1498 [penwidth=1, color=black];\n\t1499 -> 1500 [penwidth=1, color=black];\n\t1500 -> 1491 [penwidth=1, color=black];\n\t1502 -> 1490 [penwidth=1, color=black];\n\t1502 -> 1493 [penwidth=1, color=black];\n\t1502 -> 1495 [penwidth=1, color=black];\n\t1502 -> 1496 [penwidth=1, color=black];\n\t1502 -> 1501 [penwidth=1, color=black];\n\t1503 -> 1490 [penwidth=1, color=black];\n\t1503 -> 1493 [penwidth=1, color=black];\n\t1503 -> 1495 [penwidth=1, color=black];\n\t1503 -> 1496 [penwidth=1, color=black];\n\t1503 -> 1501 [penwidth=1, color=black];\n\t1504 -> 1490 [penwidth=1, color=black];\n\t1504 -> 1493 [penwidth=1, color=black];\n\t1504 -> 1495 [penwidth=1, color=black];\n\t1504 -> 1496 [penwidth=1, color=black];\n\t1504 -> 1501 [penwidth=1, color=black];\n\t1505 -> 1490 [penwidth=1, color=black];\n\t1505 -> 1493 [penwidth=1, color=black];\n\t1505 -> 1495 [penwidth=1, color=black];\n\t1505 -> 1496 [penwidth=1, color=black];\n\t1505 -> 1501 [penwidth=1, color=black];\n\t1506 -> 1490 [penwidth=1, color=black];\n\t1506 -> 1493 [penwidth=1, color=black];\n\t1506 -> 1495 [penwidth=1, color=black];\n\t1506 -> 1496 [penwidth=1, color=black];\n\t1506 -> 1501 [penwidth=1, color=black];\n\t1507 -> 1490 [penwidth=1, color=black];\n\t1507 -> 1493 [penwidth=1, color=black];\n\t1507 -> 1495 [penwidth=1, color=black];\n\t1507 -> 1496 [penwidth=1, color=black];\n\t1507 -> 1501 [penwidth=1, color=black];\n\t1508 -> 1490 [penwidth=1, color=black];\n\t1508 -> 1493 [penwidth=1, color=black];\n\t1508 -> 1495 [penwidth=1, color=black];\n\t1508 -> 1496 [penwidth=1, color=black];\n\t1508 -> 1501 [penwidth=1, color=black];\n\t1509 -> 1490 [penwidth=1, color=black];\n\t1509 -> 1493 [penwidth=1, color=black];\n\t1509 -> 1495 [penwidth=1, color=black];\n\t1509 -> 1496 [penwidth=1, color=black];\n\t1509 -> 1501 [penwidth=1, color=black];\n\t1510 -> 1490 [penwidth=1, color=black];\n\t1510 -> 1493 [penwidth=1, color=black];\n\t1510 -> 1495 [penwidth=1, color=black];\n\t1510 -> 1496 [penwidth=1, color=black];\n\t1510 -> 1501 [penwidth=1, color=black];\n\t1511 -> 1490 [penwidth=1, color=black];\n\t1511 -> 1493 [penwidth=1, color=black];\n\t1511 -> 1495 [penwidth=1, color=black];\n\t1511 -> 1496 [penwidth=1, color=black];\n\t1511 -> 1501 [penwidth=1, color=black];\n\t1512 -> 1490 [penwidth=1, color=black];\n\t1512 -> 1493 [penwidth=1, color=black];\n\t1512 -> 1495 [penwidth=1, color=black];\n\t1512 -> 1496 [penwidth=1, color=black];\n\t1512 -> 1501 [penwidth=1, color=black];\n\t1513 -> 1490 [penwidth=1, color=black];\n\t1513 -> 1493 [penwidth=1, color=black];\n\t1513 -> 1495 [penwidth=1, color=black];\n\t1513 -> 1496 [penwidth=1, color=black];\n\t1513 -> 1501 [penwidth=1, color=black];\n\t1514 -> 1490 [penwidth=1, color=black];\n\t1514 -> 1493 [penwidth=1, color=black];\n\t1514 -> 1495 [penwidth=1, color=black];\n\t1514 -> 1496 [penwidth=1, color=black];\n\t1514 -> 1501 [penwidth=1, color=black];\n\t1515 -> 1490 [penwidth=1, color=black];\n\t1515 -> 1493 [penwidth=1, color=black];\n\t1515 -> 1495 [penwidth=1, color=black];\n\t1515 -> 1496 [penwidth=1, color=black];\n\t1515 -> 1501 [penwidth=1, color=black];\n\t1516 -> 1490 [penwidth=1, color=black];\n\t1516 -> 1493 [penwidth=1, color=black];\n\t1516 -> 1495 [penwidth=1, color=black];\n\t1516 -> 1496 [penwidth=1, color=black];\n\t1516 -> 1501 [penwidth=1, color=black];\n\t1517 -> 1490 [penwidth=1, color=black];\n\t1517 -> 1493 [penwidth=1, color=black];\n\t1517 -> 1495 [penwidth=1, color=black];\n\t1517 -> 1496 [penwidth=1, color=black];\n\t1517 -> 1501 [penwidth=1, color=black];\n\t1519 -> 1889 [penwidth=\"2.386294361119891\", color=black];\n\t1520 -> 152 [penwidth=1, color=black];\n\t1520 -> 161 [penwidth=1, color=black];\n\t1520 -> 225 [penwidth=1, color=black];\n\t1520 -> 304 [penwidth=1, color=black];\n\t1520 -> 1520 [penwidth=1, color=black];\n\t1520 -> 1528 [penwidth=\"1.6931471805599454\", color=black];\n\t1520 -> 1871 [penwidth=1, color=black];\n\t1520 -> 1889 [penwidth=\"1.6931471805599454\", color=black];\n\t1521 -> 1527 [penwidth=1, color=black];\n\t1521 -> 1778 [penwidth=1, color=black];\n\t1522 -> 1266 [penwidth=1, color=black];\n\t1522 -> 1268 [penwidth=1, color=black];\n\t1522 -> 1524 [penwidth=1, color=black];\n\t1522 -> 1889 [penwidth=1, color=black];\n\t1523 -> 1250 [penwidth=1, color=black];\n\t1523 -> 1257 [penwidth=1, color=black];\n\t1523 -> 1265 [penwidth=1, color=black];\n\t1523 -> 1524 [penwidth=1, color=orange];\n\t1523 -> 1528 [penwidth=1, color=black];\n\t1523 -> 1889 [penwidth=\"1.6931471805599454\", color=black];\n\t1524 -> 1523 [penwidth=1, color=orange];\n\t1524 -> 1661 [penwidth=1, color=chartreuse];\n\t1525 -> 1606 [penwidth=1, color=black];\n\t1526 -> 431 [penwidth=1, color=black];\n\t1526 -> 1528 [penwidth=1, color=black];\n\t1527 -> 1889 [penwidth=1, color=black];\n\t1528 -> 1606 [penwidth=1, color=black];\n\t1529 -> 1528 [penwidth=1, color=black];\n\t1533 -> 1519 [penwidth=1, color=black];\n\t1534 -> 1519 [penwidth=1, color=black];\n\t1535 -> 1602 [penwidth=1, color=black];\n\t1535 -> 1776 [penwidth=1, color=black];\n\t1536 -> 1773 [penwidth=1, color=black];\n\t1536 -> 1774 [penwidth=1, color=black];\n\t1536 -> 1775 [penwidth=1, color=black];\n\t1536 -> 1778 [penwidth=1, color=black];\n\t1537 -> 1521 [penwidth=1, color=black];\n\t1537 -> 1777 [penwidth=1, color=black];\n\t1538 -> 1518 [penwidth=1, color=black];\n\t1539 -> 84 [penwidth=1, color=black];\n\t1540 -> 1518 [penwidth=1, color=black];\n\t1541 -> 1518 [penwidth=1, color=black];\n\t1542 -> 82 [penwidth=1, color=black];\n\t1542 -> 1527 [penwidth=1, color=black];\n\t1543 -> 316 [penwidth=1, color=black];\n\t1543 -> 317 [penwidth=1, color=black];\n\t1543 -> 1612 [penwidth=1, color=black];\n\t1544 -> 85 [penwidth=1, color=black];\n\t1544 -> 86 [penwidth=1, color=black];\n\t1544 -> 87 [penwidth=1, color=black];\n\t1544 -> 88 [penwidth=1, color=black];\n\t1544 -> 93 [penwidth=1, color=black];\n\t1544 -> 94 [penwidth=1, color=black];\n\t1544 -> 104 [penwidth=1, color=black];\n\t1544 -> 105 [penwidth=1, color=black];\n\t1544 -> 108 [penwidth=1, color=black];\n\t1544 -> 109 [penwidth=1, color=black];\n\t1544 -> 110 [penwidth=1, color=black];\n\t1544 -> 111 [penwidth=1, color=black];\n\t1544 -> 113 [penwidth=1, color=black];\n\t1544 -> 117 [penwidth=1, color=black];\n\t1544 -> 118 [penwidth=1, color=black];\n\t1544 -> 121 [penwidth=1, color=black];\n\t1544 -> 123 [penwidth=1, color=black];\n\t1544 -> 125 [penwidth=1, color=black];\n\t1544 -> 126 [penwidth=1, color=black];\n\t1544 -> 130 [penwidth=1, color=black];\n\t1544 -> 131 [penwidth=1, color=black];\n\t1544 -> 132 [penwidth=1, color=black];\n\t1544 -> 133 [penwidth=1, color=black];\n\t1544 -> 134 [penwidth=1, color=black];\n\t1544 -> 141 [penwidth=1, color=black];\n\t1544 -> 143 [penwidth=1, color=black];\n\t1544 -> 144 [penwidth=1, color=black];\n\t1544 -> 145 [penwidth=1, color=black];\n\t1544 -> 149 [penwidth=1, color=black];\n\t1544 -> 154 [penwidth=1, color=black];\n\t1544 -> 160 [penwidth=1, color=black];\n\t1544 -> 163 [penwidth=1, color=black];\n\t1544 -> 164 [penwidth=1, color=black];\n\t1544 -> 165 [penwidth=1, color=black];\n\t1544 -> 166 [penwidth=1, color=black];\n\t1544 -> 167 [penwidth=1, color=black];\n\t1544 -> 175 [penwidth=1, color=black];\n\t1544 -> 176 [penwidth=1, color=black];\n\t1544 -> 177 [penwidth=1, color=black];\n\t1544 -> 178 [penwidth=1, color=black];\n\t1544 -> 179 [penwidth=1, color=black];\n\t1544 -> 180 [penwidth=1, color=black];\n\t1544 -> 181 [penwidth=1, color=black];\n\t1544 -> 182 [penwidth=1, color=black];\n\t1544 -> 188 [penwidth=1, color=black];\n\t1544 -> 189 [penwidth=1, color=black];\n\t1544 -> 190 [penwidth=1, color=black];\n\t1544 -> 202 [penwidth=1, color=black];\n\t1544 -> 205 [penwidth=1, color=black];\n\t1544 -> 207 [penwidth=1, color=black];\n\t1544 -> 212 [penwidth=1, color=black];\n\t1544 -> 213 [penwidth=1, color=black];\n\t1544 -> 214 [penwidth=1, color=black];\n\t1544 -> 215 [penwidth=1, color=black];\n\t1544 -> 216 [penwidth=1, color=black];\n\t1544 -> 217 [penwidth=1, color=black];\n\t1544 -> 218 [penwidth=1, color=black];\n\t1544 -> 219 [penwidth=1, color=black];\n\t1544 -> 220 [penwidth=1, color=black];\n\t1544 -> 221 [penwidth=1, color=black];\n\t1544 -> 222 [penwidth=1, color=black];\n\t1544 -> 223 [penwidth=1, color=black];\n\t1544 -> 224 [penwidth=1, color=black];\n\t1544 -> 226 [penwidth=1, color=black];\n\t1544 -> 227 [penwidth=1, color=black];\n\t1544 -> 228 [penwidth=1, color=black];\n\t1544 -> 229 [penwidth=1, color=black];\n\t1544 -> 230 [penwidth=1, color=black];\n\t1544 -> 233 [penwidth=1, color=black];\n\t1544 -> 234 [penwidth=1, color=black];\n\t1544 -> 235 [penwidth=1, color=black];\n\t1544 -> 239 [penwidth=1, color=black];\n\t1544 -> 245 [penwidth=1, color=black];\n\t1544 -> 246 [penwidth=1, color=black];\n\t1544 -> 248 [penwidth=1, color=black];\n\t1544 -> 249 [penwidth=1, color=black];\n\t1544 -> 251 [penwidth=1, color=black];\n\t1544 -> 252 [penwidth=1, color=black];\n\t1544 -> 253 [penwidth=1, color=black];\n\t1544 -> 259 [penwidth=1, color=black];\n\t1544 -> 265 [penwidth=1, color=black];\n\t1544 -> 269 [penwidth=1, color=black];\n\t1544 -> 272 [penwidth=1, color=black];\n\t1544 -> 273 [penwidth=1, color=black];\n\t1544 -> 276 [penwidth=1, color=black];\n\t1544 -> 277 [penwidth=1, color=black];\n\t1544 -> 278 [penwidth=1, color=black];\n\t1544 -> 279 [penwidth=1, color=black];\n\t1544 -> 280 [penwidth=1, color=black];\n\t1544 -> 282 [penwidth=1, color=black];\n\t1544 -> 287 [penwidth=1, color=black];\n\t1544 -> 289 [penwidth=1, color=black];\n\t1544 -> 290 [penwidth=1, color=black];\n\t1544 -> 291 [penwidth=1, color=black];\n\t1544 -> 293 [penwidth=1, color=black];\n\t1544 -> 294 [penwidth=1, color=black];\n\t1544 -> 296 [penwidth=1, color=black];\n\t1544 -> 297 [penwidth=1, color=black];\n\t1544 -> 305 [penwidth=1, color=black];\n\t1544 -> 308 [penwidth=1, color=black];\n\t1544 -> 309 [penwidth=1, color=black];\n\t1544 -> 312 [penwidth=1, color=black];\n\t1544 -> 313 [penwidth=1, color=black];\n\t1544 -> 314 [penwidth=1, color=black];\n\t1544 -> 315 [penwidth=1, color=black];\n\t1544 -> 319 [penwidth=1, color=black];\n\t1544 -> 323 [penwidth=1, color=black];\n\t1544 -> 324 [penwidth=1, color=black];\n\t1544 -> 327 [penwidth=1, color=black];\n\t1544 -> 329 [penwidth=1, color=black];\n\t1544 -> 330 [penwidth=1, color=black];\n\t1544 -> 334 [penwidth=1, color=black];\n\t1544 -> 336 [penwidth=1, color=black];\n\t1544 -> 337 [penwidth=1, color=black];\n\t1544 -> 340 [penwidth=1, color=black];\n\t1544 -> 342 [penwidth=1, color=black];\n\t1544 -> 344 [penwidth=1, color=black];\n\t1544 -> 345 [penwidth=1, color=black];\n\t1544 -> 347 [penwidth=1, color=black];\n\t1544 -> 348 [penwidth=1, color=black];\n\t1544 -> 350 [penwidth=1, color=black];\n\t1544 -> 351 [penwidth=1, color=black];\n\t1544 -> 352 [penwidth=1, color=black];\n\t1544 -> 354 [penwidth=1, color=black];\n\t1544 -> 359 [penwidth=1, color=black];\n\t1544 -> 361 [penwidth=1, color=black];\n\t1544 -> 366 [penwidth=1, color=black];\n\t1544 -> 367 [penwidth=1, color=black];\n\t1544 -> 370 [penwidth=1, color=black];\n\t1544 -> 371 [penwidth=1, color=black];\n\t1544 -> 372 [penwidth=1, color=black];\n\t1544 -> 373 [penwidth=1, color=black];\n\t1544 -> 374 [penwidth=1, color=black];\n\t1544 -> 375 [penwidth=1, color=black];\n\t1544 -> 376 [penwidth=1, color=black];\n\t1544 -> 379 [penwidth=1, color=black];\n\t1544 -> 385 [penwidth=1, color=black];\n\t1544 -> 386 [penwidth=1, color=black];\n\t1544 -> 388 [penwidth=1, color=black];\n\t1544 -> 394 [penwidth=1, color=black];\n\t1544 -> 395 [penwidth=1, color=black];\n\t1544 -> 396 [penwidth=1, color=black];\n\t1544 -> 398 [penwidth=1, color=black];\n\t1544 -> 399 [penwidth=1, color=black];\n\t1544 -> 401 [penwidth=1, color=black];\n\t1544 -> 1525 [penwidth=1, color=black];\n\t1544 -> 1527 [penwidth=\"2.386294361119891\", color=black];\n\t1544 -> 1528 [penwidth=\"4.49650756146648\", color=black];\n\t1544 -> 1664 [penwidth=1, color=black];\n\t1545 -> 1518 [penwidth=1, color=black];\n\t1546 -> 1518 [penwidth=1, color=black];\n\t1547 -> 644 [penwidth=1, color=black];\n\t1547 -> 873 [penwidth=1, color=black];\n\t1547 -> 1074 [penwidth=1, color=black];\n\t1547 -> 1075 [penwidth=1, color=black];\n\t1547 -> 1188 [penwidth=1, color=black];\n\t1548 -> 645 [penwidth=1, color=black];\n\t1548 -> 1187 [penwidth=1, color=black];\n\t1549 -> 1518 [penwidth=1, color=black];\n\t1550 -> 1518 [penwidth=1, color=black];\n\t1551 -> 122 [penwidth=1, color=black];\n\t1551 -> 281 [penwidth=1, color=black];\n\t1551 -> 1611 [penwidth=1, color=black];\n\t1552 -> 1518 [penwidth=1, color=black];\n\t1553 -> 1518 [penwidth=1, color=black];\n\t1554 -> 263 [penwidth=1, color=black];\n\t1554 -> 400 [penwidth=1, color=black];\n\t1554 -> 1528 [penwidth=1, color=black];\n\t1555 -> 1527 [penwidth=\"2.09861228866811\", color=black];\n\t1556 -> 1528 [penwidth=1, color=black];\n\t1556 -> 1608 [penwidth=1, color=black];\n\t1557 -> 1518 [penwidth=1, color=black];\n\t1558 -> 1236 [penwidth=1, color=black];\n\t1558 -> 1237 [penwidth=1, color=black];\n\t1558 -> 1238 [penwidth=1, color=black];\n\t1558 -> 1239 [penwidth=1, color=black];\n\t1558 -> 1240 [penwidth=1, color=black];\n\t1558 -> 1241 [penwidth=1, color=black];\n\t1558 -> 1242 [penwidth=1, color=black];\n\t1558 -> 1243 [penwidth=1, color=black];\n\t1558 -> 1244 [penwidth=1, color=black];\n\t1558 -> 1248 [penwidth=1, color=black];\n\t1558 -> 1249 [penwidth=1, color=black];\n\t1558 -> 1251 [penwidth=1, color=black];\n\t1558 -> 1252 [penwidth=1, color=black];\n\t1558 -> 1258 [penwidth=1, color=black];\n\t1558 -> 1259 [penwidth=1, color=black];\n\t1558 -> 1261 [penwidth=1, color=black];\n\t1558 -> 1262 [penwidth=1, color=black];\n\t1558 -> 1264 [penwidth=1, color=black];\n\t1558 -> 1267 [penwidth=1, color=black];\n\t1558 -> 1269 [penwidth=1, color=black];\n\t1558 -> 1270 [penwidth=1, color=black];\n\t1558 -> 1271 [penwidth=1, color=black];\n\t1558 -> 1528 [penwidth=\"2.6094379124341005\", color=black];\n\t1559 -> 1254 [penwidth=1, color=black];\n\t1559 -> 1255 [penwidth=1, color=black];\n\t1559 -> 1522 [penwidth=1, color=black];\n\t1560 -> 1253 [penwidth=1, color=black];\n\t1561 -> 1522 [penwidth=1, color=black];\n\t1562 -> 1260 [penwidth=1, color=black];\n\t1562 -> 1527 [penwidth=1, color=black];\n\t1563 -> 1518 [penwidth=1, color=black];\n\t1564 -> 1233 [penwidth=1, color=black];\n\t1564 -> 1527 [penwidth=1, color=black];\n\t1565 -> 1523 [penwidth=1, color=chartreuse];\n\t1566 -> 1518 [penwidth=1, color=black];\n\t1567 -> 1518 [penwidth=1, color=black];\n\t1568 -> 187 [penwidth=1, color=black];\n\t1568 -> 321 [penwidth=1, color=black];\n\t1568 -> 365 [penwidth=1, color=black];\n\t1568 -> 1527 [penwidth=1, color=black];\n\t1568 -> 1528 [penwidth=1, color=black];\n\t1568 -> 1610 [penwidth=1, color=black];\n\t1569 -> 83 [penwidth=1, color=black];\n\t1569 -> 209 [penwidth=1, color=black];\n\t1569 -> 210 [penwidth=1, color=black];\n\t1569 -> 1526 [penwidth=1, color=black];\n\t1569 -> 1603 [penwidth=1, color=black];\n\t1570 -> 206 [penwidth=1, color=black];\n\t1570 -> 210 [penwidth=1, color=black];\n\t1571 -> 208 [penwidth=1, color=black];\n\t1571 -> 211 [penwidth=1, color=black];\n\t1572 -> 1518 [penwidth=1, color=black];\n\t1573 -> 1518 [penwidth=1, color=black];\n\t1574 -> 1518 [penwidth=1, color=black];\n\t1575 -> 115 [penwidth=1, color=black];\n\t1575 -> 197 [penwidth=1, color=black];\n\t1575 -> 204 [penwidth=1, color=black];\n\t1575 -> 307 [penwidth=1, color=black];\n\t1575 -> 326 [penwidth=1, color=black];\n\t1575 -> 338 [penwidth=1, color=black];\n\t1575 -> 339 [penwidth=1, color=black];\n\t1575 -> 397 [penwidth=1, color=black];\n\t1576 -> 135 [penwidth=1, color=black];\n\t1576 -> 136 [penwidth=1, color=black];\n\t1576 -> 286 [penwidth=1, color=black];\n\t1577 -> 283 [penwidth=1, color=black];\n\t1577 -> 284 [penwidth=1, color=black];\n\t1577 -> 285 [penwidth=1, color=black];\n\t1577 -> 288 [penwidth=1, color=black];\n\t1578 -> 1518 [penwidth=1, color=black];\n\t1579 -> 299 [penwidth=1, color=black];\n\t1579 -> 1612 [penwidth=\"2.09861228866811\", color=black];\n\t1580 -> 1528 [penwidth=1, color=black];\n\t1580 -> 1607 [penwidth=1, color=black];\n\t1582 -> 300 [penwidth=1, color=black];\n\t1582 -> 358 [penwidth=1, color=black];\n\t1582 -> 1527 [penwidth=1, color=black];\n\t1582 -> 1662 [penwidth=1, color=black];\n\t1583 -> 1518 [penwidth=1, color=black];\n\t1584 -> 1518 [penwidth=1, color=black];\n\t1585 -> 1518 [penwidth=1, color=black];\n\t1586 -> 89 [penwidth=1, color=black];\n\t1586 -> 90 [penwidth=1, color=black];\n\t1586 -> 116 [penwidth=1, color=black];\n\t1586 -> 150 [penwidth=1, color=black];\n\t1586 -> 156 [penwidth=1, color=black];\n\t1586 -> 1612 [penwidth=1, color=black];\n\t1587 -> 1520 [penwidth=1, color=chartreuse];\n\t1588 -> 322 [penwidth=1, color=black];\n\t1588 -> 1611 [penwidth=\"1.6931471805599454\", color=black];\n\t1589 -> 198 [penwidth=1, color=black];\n\t1589 -> 264 [penwidth=1, color=black];\n\t1589 -> 270 [penwidth=1, color=black];\n\t1589 -> 1528 [penwidth=1, color=black];\n\t1590 -> 1518 [penwidth=1, color=black];\n\t1591 -> 1518 [penwidth=1, color=black];\n\t1592 -> 1518 [penwidth=1, color=black];\n\t1593 -> 1518 [penwidth=1, color=black];\n\t1594 -> 356 [penwidth=1, color=black];\n\t1595 -> 362 [penwidth=1, color=black];\n\t1595 -> 363 [penwidth=1, color=black];\n\t1595 -> 364 [penwidth=1, color=black];\n\t1596 -> 333 [penwidth=1, color=black];\n\t1596 -> 1529 [penwidth=1, color=black];\n\t1597 -> 96 [penwidth=1, color=black];\n\t1597 -> 120 [penwidth=1, color=black];\n\t1597 -> 124 [penwidth=1, color=black];\n\t1597 -> 127 [penwidth=1, color=black];\n\t1597 -> 138 [penwidth=1, color=black];\n\t1597 -> 158 [penwidth=1, color=black];\n\t1597 -> 195 [penwidth=1, color=black];\n\t1597 -> 331 [penwidth=1, color=black];\n\t1597 -> 1529 [penwidth=1, color=black];\n\t1598 -> 1518 [penwidth=1, color=black];\n\t1599 -> 391 [penwidth=1, color=black];\n\t1600 -> 1518 [penwidth=1, color=black];\n\t1602 -> 1521 [penwidth=1, color=black];\n\t1604 -> 1657 [penwidth=1, color=black];\n\t1605 -> 1658 [penwidth=1, color=black];\n\t1607 -> 1356 [penwidth=1, color=black];\n\t1610 -> 152 [penwidth=1, color=black];\n\t1611 -> 407 [penwidth=1, color=black];\n\t1611 -> 1612 [penwidth=\"1.6931471805599454\", color=black];\n\t1612 -> 1601 [penwidth=1, color=black];\n\t1612 -> 1889 [penwidth=1, color=black];\n\t1614 -> 1657 [penwidth=1, color=black];\n\t1616 -> 1657 [penwidth=1, color=black];\n\t1617 -> 1613 [penwidth=1, color=black];\n\t1617 -> 1656 [penwidth=\"2.386294361119891\", color=black];\n\t1619 -> 1655 [penwidth=1, color=black];\n\t1619 -> 1776 [penwidth=\"1.6931471805599454\", color=black];\n\t1620 -> 1773 [penwidth=\"1.6931471805599454\", color=black];\n\t1620 -> 1774 [penwidth=\"1.6931471805599454\", color=black];\n\t1620 -> 1775 [penwidth=\"1.6931471805599454\", color=black];\n\t1620 -> 1778 [penwidth=\"1.6931471805599454\", color=black];\n\t1621 -> 1655 [penwidth=1, color=black];\n\t1621 -> 1777 [penwidth=\"1.6931471805599454\", color=black];\n\t1622 -> 82 [penwidth=\"1.6931471805599454\", color=black];\n\t1622 -> 1604 [penwidth=1, color=black];\n\t1623 -> 316 [penwidth=\"1.6931471805599454\", color=black];\n\t1623 -> 317 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 85 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 86 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 87 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 88 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 93 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 94 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 104 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 105 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 108 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 109 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 110 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 111 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 113 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 117 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 118 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 121 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 123 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 125 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 126 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 130 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 131 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 132 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 133 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 134 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 141 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 143 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 144 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 145 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 149 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 154 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 160 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 163 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 164 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 165 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 166 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 167 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 175 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 176 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 177 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 178 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 179 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 180 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 181 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 182 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 188 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 189 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 190 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 202 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 205 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 207 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 212 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 213 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 214 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 215 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 216 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 217 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 218 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 219 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 220 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 221 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 222 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 223 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 224 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 226 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 227 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 228 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 229 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 230 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 233 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 234 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 235 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 239 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 245 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 246 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 248 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 249 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 251 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 252 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 253 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 259 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 265 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 269 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 272 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 273 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 276 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 277 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 278 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 279 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 280 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 282 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 287 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 289 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 290 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 291 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 293 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 294 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 296 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 297 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 305 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 308 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 309 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 312 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 313 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 314 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 315 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 319 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 323 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 324 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 327 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 329 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 330 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 334 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 336 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 337 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 340 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 342 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 344 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 345 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 347 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 348 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 350 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 351 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 352 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 354 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 359 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 361 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 366 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 367 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 370 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 371 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 372 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 373 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 374 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 375 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 376 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 379 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 385 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 386 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 388 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 394 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 395 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 396 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 398 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 399 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 401 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 1604 [penwidth=\"2.386294361119891\", color=black];\n\t1624 -> 1660 [penwidth=\"4.526360524616162\", color=black];\n\t1624 -> 1664 [penwidth=1, color=black];\n\t1625 -> 644 [penwidth=\"1.6931471805599454\", color=black];\n\t1625 -> 1074 [penwidth=\"2.09861228866811\", color=black];\n\t1625 -> 1075 [penwidth=\"1.6931471805599454\", color=black];\n\t1626 -> 645 [penwidth=\"1.6931471805599454\", color=black];\n\t1627 -> 122 [penwidth=\"1.6931471805599454\", color=black];\n\t1627 -> 281 [penwidth=\"1.6931471805599454\", color=black];\n\t1628 -> 263 [penwidth=\"1.6931471805599454\", color=black];\n\t1628 -> 400 [penwidth=\"1.6931471805599454\", color=black];\n\t1628 -> 1660 [penwidth=1, color=black];\n\t1629 -> 1604 [penwidth=\"2.09861228866811\", color=black];\n\t1630 -> 1608 [penwidth=1, color=black];\n\t1630 -> 1660 [penwidth=1, color=black];\n\t1631 -> 1236 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1237 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1238 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1239 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1240 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1241 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1242 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1243 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1244 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1248 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1249 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1251 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1252 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1258 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1259 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1261 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1262 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1264 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1267 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1269 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1270 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1271 [penwidth=\"1.6931471805599454\", color=black];\n\t1632 -> 1254 [penwidth=\"1.6931471805599454\", color=black];\n\t1632 -> 1255 [penwidth=\"1.6931471805599454\", color=black];\n\t1632 -> 1613 [penwidth=1, color=black];\n\t1633 -> 1266 [penwidth=\"1.6931471805599454\", color=black];\n\t1633 -> 1268 [penwidth=\"1.6931471805599454\", color=black];\n\t1633 -> 1656 [penwidth=1, color=black];\n\t1634 -> 1260 [penwidth=\"1.6931471805599454\", color=black];\n\t1634 -> 1656 [penwidth=1, color=black];\n\t1635 -> 1233 [penwidth=\"1.6931471805599454\", color=black];\n\t1635 -> 1656 [penwidth=1, color=black];\n\t1636 -> 1250 [penwidth=\"1.6931471805599454\", color=black];\n\t1636 -> 1257 [penwidth=\"1.6931471805599454\", color=black];\n\t1636 -> 1265 [penwidth=\"1.6931471805599454\", color=black];\n\t1636 -> 1613 [penwidth=1, color=black];\n\t1636 -> 1656 [penwidth=1, color=black];\n\t1636 -> 1660 [penwidth=1, color=black];\n\t1637 -> 187 [penwidth=\"1.6931471805599454\", color=black];\n\t1637 -> 321 [penwidth=\"1.6931471805599454\", color=black];\n\t1637 -> 365 [penwidth=\"1.6931471805599454\", color=black];\n\t1637 -> 1610 [penwidth=1, color=black];\n\t1637 -> 1657 [penwidth=1, color=black];\n\t1637 -> 1660 [penwidth=1, color=black];\n\t1638 -> 83 [penwidth=1, color=black];\n\t1638 -> 209 [penwidth=\"1.6931471805599454\", color=black];\n\t1638 -> 210 [penwidth=\"1.6931471805599454\", color=black];\n\t1638 -> 1603 [penwidth=1, color=black];\n\t1638 -> 1660 [penwidth=1, color=black];\n\t1639 -> 206 [penwidth=\"1.6931471805599454\", color=black];\n\t1639 -> 1604 [penwidth=1, color=black];\n\t1640 -> 208 [penwidth=\"2.386294361119891\", color=black];\n\t1640 -> 211 [penwidth=1, color=black];\n\t1641 -> 307 [penwidth=\"1.6931471805599454\", color=black];\n\t1642 -> 286 [penwidth=\"1.6931471805599454\", color=black];\n\t1643 -> 283 [penwidth=\"1.6931471805599454\", color=black];\n\t1644 -> 299 [penwidth=1, color=black];\n\t1644 -> 607 [penwidth=1, color=black];\n\t1644 -> 608 [penwidth=1, color=black];\n\t1644 -> 609 [penwidth=1, color=black];\n\t1644 -> 1659 [penwidth=1, color=black];\n\t1645 -> 1607 [penwidth=1, color=black];\n\t1645 -> 1660 [penwidth=1, color=black];\n\t1647 -> 300 [penwidth=\"1.6931471805599454\", color=black];\n\t1647 -> 358 [penwidth=\"1.6931471805599454\", color=black];\n\t1647 -> 1604 [penwidth=1, color=black];\n\t1647 -> 1662 [penwidth=1, color=black];\n\t1648 -> 89 [penwidth=\"1.6931471805599454\", color=black];\n\t1648 -> 1601 [penwidth=1, color=black];\n\t1649 -> 152 [penwidth=\"2.09861228866811\", color=black];\n\t1649 -> 161 [penwidth=\"1.6931471805599454\", color=black];\n\t1649 -> 225 [penwidth=1, color=black];\n\t1649 -> 304 [penwidth=\"2.09861228866811\", color=black];\n\t1649 -> 1657 [penwidth=1, color=black];\n\t1649 -> 1660 [penwidth=1, color=black];\n\t1650 -> 322 [penwidth=\"1.6931471805599454\", color=black];\n\t1651 -> 264 [penwidth=\"1.6931471805599454\", color=black];\n\t1651 -> 1660 [penwidth=1, color=black];\n\t1652 -> 356 [penwidth=\"2.386294361119891\", color=black];\n\t1652 -> 1659 [penwidth=\"1.6931471805599454\", color=black];\n\t1653 -> 362 [penwidth=\"1.6931471805599454\", color=black];\n\t1653 -> 363 [penwidth=1, color=black];\n\t1653 -> 364 [penwidth=\"1.6931471805599454\", color=black];\n\t1654 -> 391 [penwidth=\"1.6931471805599454\", color=black];\n\t1654 -> 1659 [penwidth=1, color=black];\n\t1655 -> 1900 [penwidth=1, color=black];\n\t1656 -> 1657 [penwidth=1, color=black];\n\t1657 -> 1658 [penwidth=1, color=black];\n\t1657 -> 1900 [penwidth=1, color=black];\n\t1659 -> 1900 [penwidth=1, color=black];\n\t1660 -> 1605 [penwidth=1, color=black];\n\t1660 -> 1663 [penwidth=1, color=black];\n\t1661 -> 1250 [penwidth=\"1.6931471805599454\", color=black];\n\t1661 -> 1257 [penwidth=\"1.6931471805599454\", color=black];\n\t1661 -> 1265 [penwidth=\"1.6931471805599454\", color=black];\n\t1662 -> 356 [penwidth=1, color=black];\n\t1663 -> 1606 [penwidth=1, color=black];\n\t1663 -> 1609 [penwidth=1, color=black];\n\t1665 -> 1885 [penwidth=1, color=black];\n\t1671 -> 1668 [penwidth=\"2.386294361119891\", color=black];\n\t1671 -> 1670 [penwidth=\"2.386294361119891\", color=black];\n\t1672 -> 1667 [penwidth=1, color=black];\n\t1672 -> 1668 [penwidth=1, color=black];\n\t1672 -> 1669 [penwidth=1, color=black];\n\t1672 -> 1670 [penwidth=1, color=black];\n\t1672 -> 1672 [penwidth=1, color=black];\n\t1673 -> 1672 [penwidth=1, color=black];\n\t1673 -> 1674 [penwidth=1, color=black];\n\t1673 -> 1678 [penwidth=1, color=black];\n\t1674 -> 1668 [penwidth=\"1.6931471805599454\", color=black];\n\t1674 -> 1670 [penwidth=1, color=black];\n\t1674 -> 1671 [penwidth=1, color=black];\n\t1674 -> 1674 [penwidth=1, color=black];\n\t1674 -> 1675 [penwidth=1, color=black];\n\t1674 -> 1676 [penwidth=1, color=black];\n\t1675 -> 1668 [penwidth=1, color=black];\n\t1675 -> 1670 [penwidth=1, color=black];\n\t1676 -> 1668 [penwidth=\"1.6931471805599454\", color=black];\n\t1676 -> 1670 [penwidth=\"1.6931471805599454\", color=black];\n\t1677 -> 1668 [penwidth=1, color=black];\n\t1677 -> 1670 [penwidth=1, color=black];\n\t1677 -> 1678 [penwidth=1, color=orange];\n\t1678 -> 1677 [penwidth=1, color=orange];\n\t1693 -> 1692 [penwidth=1, color=black];\n\t1694 -> 600 [penwidth=1, color=black];\n\t1694 -> 602 [penwidth=1, color=black];\n\t1694 -> 603 [penwidth=1, color=black];\n\t1694 -> 1682 [penwidth=1, color=black];\n\t1694 -> 1684 [penwidth=\"1.6931471805599454\", color=black];\n\t1694 -> 1687 [penwidth=1, color=black];\n\t1696 -> 1695 [penwidth=1, color=black];\n\t1698 -> 1697 [penwidth=1, color=black];\n\t1703 -> 1701 [penwidth=\"1.6931471805599454\", color=black];\n\t1703 -> 1702 [penwidth=\"1.6931471805599454\", color=black];\n\t1704 -> 1714 [penwidth=\"1.6931471805599454\", color=black];\n\t1705 -> 601 [penwidth=1, color=black];\n\t1705 -> 1683 [penwidth=1, color=black];\n\t1705 -> 1700 [penwidth=1, color=black];\n\t1705 -> 1701 [penwidth=1, color=black];\n\t1705 -> 1702 [penwidth=1, color=black];\n\t1706 -> 601 [penwidth=1, color=black];\n\t1706 -> 603 [penwidth=1, color=black];\n\t1706 -> 1682 [penwidth=1, color=black];\n\t1706 -> 1683 [penwidth=1, color=black];\n\t1706 -> 1684 [penwidth=1, color=black];\n\t1706 -> 1685 [penwidth=1, color=black];\n\t1706 -> 1687 [penwidth=1, color=black];\n\t1706 -> 1688 [penwidth=1, color=black];\n\t1707 -> 603 [penwidth=1, color=black];\n\t1707 -> 1688 [penwidth=1, color=black];\n\t1707 -> 1713 [penwidth=1, color=black];\n\t1707 -> 1714 [penwidth=1, color=black];\n\t1711 -> 178 [penwidth=1, color=black];\n\t1711 -> 372 [penwidth=1, color=black];\n\t1711 -> 1680 [penwidth=1, color=black];\n\t1711 -> 1690 [penwidth=\"1.6931471805599454\", color=black];\n\t1712 -> 1711 [penwidth=1, color=black];\n\t1718 -> 1760 [penwidth=1, color=black];\n\t1719 -> 1387 [penwidth=1, color=black];\n\t1719 -> 1439 [penwidth=1, color=black];\n\t1719 -> 1441 [penwidth=1, color=black];\n\t1720 -> 1719 [penwidth=1, color=black];\n\t1720 -> 1734 [penwidth=1, color=black];\n\t1721 -> 1393 [penwidth=1, color=black];\n\t1721 -> 1441 [penwidth=1, color=black];\n\t1721 -> 1442 [penwidth=1, color=black];\n\t1722 -> 1711 [penwidth=1, color=black];\n\t1722 -> 1724 [penwidth=\"1.6931471805599454\", color=black];\n\t1722 -> 1726 [penwidth=1, color=black];\n\t1723 -> 1712 [penwidth=1, color=black];\n\t1723 -> 1719 [penwidth=1, color=black];\n\t1723 -> 1725 [penwidth=\"1.6931471805599454\", color=black];\n\t1723 -> 1726 [penwidth=1, color=black];\n\t1724 -> 1359 [penwidth=1, color=black];\n\t1724 -> 1373 [penwidth=1, color=black];\n\t1724 -> 1387 [penwidth=1, color=black];\n\t1725 -> 1393 [penwidth=1, color=black];\n\t1725 -> 1442 [penwidth=1, color=black];\n\t1725 -> 1724 [penwidth=\"1.6931471805599454\", color=black];\n\t1725 -> 1734 [penwidth=1, color=black];\n\t1726 -> 1435 [penwidth=\"1.6931471805599454\", color=black];\n\t1726 -> 1442 [penwidth=1, color=black];\n\t1726 -> 1695 [penwidth=1, color=black];\n\t1726 -> 1762 [penwidth=1, color=black];\n\t1727 -> 1435 [penwidth=\"2.09861228866811\", color=black];\n\t1727 -> 1682 [penwidth=1, color=black];\n\t1727 -> 1684 [penwidth=1, color=black];\n\t1727 -> 1687 [penwidth=1, color=black];\n\t1728 -> 1371 [penwidth=1, color=black];\n\t1728 -> 1387 [penwidth=1, color=black];\n\t1728 -> 1391 [penwidth=\"2.09861228866811\", color=black];\n\t1728 -> 1433 [penwidth=1, color=black];\n\t1728 -> 1435 [penwidth=\"1.6931471805599454\", color=black];\n\t1728 -> 1697 [penwidth=1, color=black];\n\t1728 -> 1758 [penwidth=1, color=black];\n\t1728 -> 1764 [penwidth=1, color=black];\n\t1732 -> 1373 [penwidth=1, color=black];\n\t1732 -> 1387 [penwidth=1, color=black];\n\t1732 -> 1681 [penwidth=1, color=black];\n\t1732 -> 1726 [penwidth=1, color=black];\n\t1733 -> 1373 [penwidth=1, color=black];\n\t1733 -> 1387 [penwidth=1, color=black];\n\t1733 -> 1391 [penwidth=1, color=black];\n\t1733 -> 1432 [penwidth=1, color=black];\n\t1733 -> 1435 [penwidth=1, color=black];\n\t1733 -> 1689 [penwidth=\"1.6931471805599454\", color=black];\n\t1733 -> 1692 [penwidth=1, color=black];\n\t1733 -> 1760 [penwidth=1, color=black];\n\t1734 -> 1378 [penwidth=1, color=black];\n\t1734 -> 1441 [penwidth=1, color=black];\n\t1734 -> 1757 [penwidth=\"1.6931471805599454\", color=black];\n\t1735 -> 1721 [penwidth=1, color=black];\n\t1736 -> 1433 [penwidth=1, color=black];\n\t1736 -> 1440 [penwidth=1, color=black];\n\t1736 -> 1733 [penwidth=1, color=black];\n\t1736 -> 1755 [penwidth=1, color=black];\n\t1737 -> 1719 [penwidth=1, color=black];\n\t1737 -> 1722 [penwidth=1, color=black];\n\t1738 -> 1719 [penwidth=1, color=black];\n\t1738 -> 1732 [penwidth=1, color=black];\n\t1739 -> 1441 [penwidth=1, color=black];\n\t1739 -> 1694 [penwidth=1, color=black];\n\t1739 -> 1727 [penwidth=1, color=black];\n\t1740 -> 1760 [penwidth=1, color=black];\n\t1741 -> 1723 [penwidth=1, color=black];\n\t1741 -> 1734 [penwidth=1, color=black];\n\t1742 -> 1720 [penwidth=1, color=black];\n\t1742 -> 1732 [penwidth=1, color=black];\n\t1743 -> 1734 [penwidth=1, color=black];\n\t1744 -> 1470 [penwidth=1, color=black];\n\t1745 -> 1744 [penwidth=1, color=black];\n\t1747 -> 1470 [penwidth=\"1.6931471805599454\", color=black];\n\t1747 -> 1696 [penwidth=1, color=black];\n\t1747 -> 1699 [penwidth=1, color=black];\n\t1747 -> 1701 [penwidth=1, color=black];\n\t1747 -> 1702 [penwidth=1, color=black];\n\t1747 -> 1763 [penwidth=1, color=black];\n\t1747 -> 1871 [penwidth=1, color=black];\n\t1748 -> 1682 [penwidth=1, color=black];\n\t1748 -> 1684 [penwidth=1, color=black];\n\t1748 -> 1687 [penwidth=1, color=black];\n\t1749 -> 1470 [penwidth=1, color=black];\n\t1749 -> 1698 [penwidth=1, color=black];\n\t1749 -> 1759 [penwidth=1, color=black];\n\t1749 -> 1765 [penwidth=1, color=black];\n\t1749 -> 1871 [penwidth=\"1.6931471805599454\", color=black];\n\t1750 -> 1470 [penwidth=1, color=black];\n\t1750 -> 1714 [penwidth=1, color=black];\n\t1751 -> 1469 [penwidth=1, color=black];\n\t1751 -> 1470 [penwidth=\"1.6931471805599454\", color=black];\n\t1751 -> 1475 [penwidth=1, color=black];\n\t1751 -> 1689 [penwidth=1, color=black];\n\t1751 -> 1692 [penwidth=1, color=black];\n\t1751 -> 1871 [penwidth=1, color=black];\n\t1752 -> 1746 [penwidth=1, color=chartreuse];\n\t1753 -> 1752 [penwidth=1, color=black];\n\t1754 -> 1693 [penwidth=1, color=black];\n\t1754 -> 1751 [penwidth=1, color=black];\n\t1754 -> 1756 [penwidth=1, color=black];\n\t1754 -> 1871 [penwidth=1, color=black];\n\t1756 -> 1755 [penwidth=1, color=black];\n\t1757 -> 1373 [penwidth=1, color=black];\n\t1757 -> 1379 [penwidth=1, color=black];\n\t1757 -> 1380 [penwidth=1, color=black];\n\t1757 -> 1440 [penwidth=1, color=black];\n\t1757 -> 1441 [penwidth=1, color=black];\n\t1759 -> 1758 [penwidth=1, color=black];\n\t1760 -> 1679 [penwidth=1, color=black];\n\t1760 -> 1686 [penwidth=1, color=black];\n\t1760 -> 1689 [penwidth=1, color=black];\n\t1760 -> 1883 [penwidth=1, color=black];\n\t1760 -> 1884 [penwidth=1, color=black];\n\t1761 -> 1689 [penwidth=1, color=black];\n\t1763 -> 1762 [penwidth=1, color=black];\n\t1765 -> 1764 [penwidth=1, color=black];\n\t1766 -> 1700 [penwidth=1, color=black];\n\t1766 -> 1744 [penwidth=1, color=black];\n\t1766 -> 1747 [penwidth=1, color=black];\n\t1767 -> 1713 [penwidth=1, color=black];\n\t1767 -> 1744 [penwidth=1, color=black];\n\t1767 -> 1750 [penwidth=1, color=black];\n\t1768 -> 1691 [penwidth=1, color=black];\n\t1768 -> 1748 [penwidth=1, color=black];\n\t1769 -> 1679 [penwidth=1, color=black];\n\t1769 -> 1686 [penwidth=1, color=black];\n\t1769 -> 1689 [penwidth=1, color=black];\n\t1770 -> 1700 [penwidth=1, color=black];\n\t1770 -> 1745 [penwidth=1, color=black];\n\t1770 -> 1747 [penwidth=1, color=black];\n\t1771 -> 1713 [penwidth=1, color=black];\n\t1771 -> 1745 [penwidth=1, color=black];\n\t1771 -> 1750 [penwidth=1, color=black];\n\t1772 -> 1691 [penwidth=1, color=black];\n\t1772 -> 1745 [penwidth=1, color=black];\n\t1772 -> 1748 [penwidth=1, color=black];\n\t1779 -> 1785 [penwidth=1, color=black];\n\t1779 -> 1815 [penwidth=1, color=black];\n\t1779 -> 1846 [penwidth=1, color=black];\n\t1780 -> 1785 [penwidth=\"1.6931471805599454\", color=black];\n\t1781 -> 1773 [penwidth=\"1.6931471805599454\", color=black];\n\t1781 -> 1774 [penwidth=\"1.6931471805599454\", color=black];\n\t1781 -> 1775 [penwidth=\"1.6931471805599454\", color=black];\n\t1781 -> 1778 [penwidth=\"1.6931471805599454\", color=black];\n\t1782 -> 1789 [penwidth=\"1.6931471805599454\", color=black];\n\t1790 -> 1776 [penwidth=1, color=black];\n\t1790 -> 1783 [penwidth=1, color=black];\n\t1790 -> 1784 [penwidth=1, color=black];\n\t1790 -> 1785 [penwidth=1, color=black];\n\t1790 -> 1787 [penwidth=1, color=black];\n\t1790 -> 1791 [penwidth=1, color=black];\n\t1791 -> 1773 [penwidth=1, color=black];\n\t1791 -> 1774 [penwidth=1, color=black];\n\t1791 -> 1775 [penwidth=1, color=black];\n\t1791 -> 1778 [penwidth=1, color=black];\n\t1791 -> 1792 [penwidth=1, color=orange];\n\t1792 -> 1777 [penwidth=1, color=black];\n\t1792 -> 1786 [penwidth=1, color=black];\n\t1792 -> 1788 [penwidth=1, color=black];\n\t1792 -> 1789 [penwidth=1, color=black];\n\t1792 -> 1791 [penwidth=1, color=orange];\n\t1793 -> 1784 [penwidth=1, color=black];\n\t1794 -> 1783 [penwidth=1, color=black];\n\t1795 -> 1787 [penwidth=1, color=black];\n\t1796 -> 1785 [penwidth=1, color=black];\n\t1796 -> 1817 [penwidth=1, color=black];\n\t1796 -> 1848 [penwidth=1, color=black];\n\t1799 -> 1787 [penwidth=1, color=black];\n\t1800 -> 1785 [penwidth=1, color=black];\n\t1800 -> 1816 [penwidth=1, color=black];\n\t1800 -> 1849 [penwidth=1, color=black];\n\t1804 -> 1387 [penwidth=1, color=black];\n\t1807 -> 1728 [penwidth=1, color=black];\n\t1807 -> 1735 [penwidth=1, color=black];\n\t1807 -> 1776 [penwidth=1, color=black];\n\t1807 -> 1804 [penwidth=1, color=black];\n\t1808 -> 1773 [penwidth=1, color=black];\n\t1808 -> 1774 [penwidth=1, color=black];\n\t1808 -> 1775 [penwidth=1, color=black];\n\t1808 -> 1778 [penwidth=1, color=black];\n\t1809 -> 1721 [penwidth=1, color=black];\n\t1809 -> 1735 [penwidth=1, color=black];\n\t1809 -> 1736 [penwidth=1, color=black];\n\t1809 -> 1777 [penwidth=\"1.6931471805599454\", color=black];\n\t1809 -> 1804 [penwidth=\"1.6931471805599454\", color=black];\n\t1810 -> 1442 [penwidth=1, color=black];\n\t1810 -> 1723 [penwidth=1, color=black];\n\t1810 -> 1734 [penwidth=1, color=black];\n\t1810 -> 1773 [penwidth=1, color=black];\n\t1811 -> 1380 [penwidth=1, color=black];\n\t1811 -> 1441 [penwidth=1, color=black];\n\t1812 -> 1470 [penwidth=1, color=black];\n\t1813 -> 1754 [penwidth=1, color=black];\n\t1813 -> 1786 [penwidth=1, color=black];\n\t1813 -> 1788 [penwidth=1, color=black];\n\t1814 -> 1784 [penwidth=1, color=black];\n\t1815 -> 1818 [penwidth=1, color=orange];\n\t1816 -> 1819 [penwidth=1, color=orange];\n\t1817 -> 1820 [penwidth=1, color=orange];\n\t1818 -> 1773 [penwidth=1, color=black];\n\t1818 -> 1775 [penwidth=1, color=black];\n\t1818 -> 1778 [penwidth=1, color=black];\n\t1818 -> 1815 [penwidth=1, color=orange];\n\t1818 -> 1826 [penwidth=1, color=black];\n\t1818 -> 1832 [penwidth=1, color=black];\n\t1818 -> 1833 [penwidth=1, color=black];\n\t1818 -> 1861 [penwidth=1, color=black];\n\t1819 -> 1773 [penwidth=1, color=black];\n\t1819 -> 1774 [penwidth=1, color=black];\n\t1819 -> 1775 [penwidth=1, color=black];\n\t1819 -> 1778 [penwidth=1, color=black];\n\t1819 -> 1816 [penwidth=1, color=orange];\n\t1819 -> 1826 [penwidth=1, color=black];\n\t1819 -> 1834 [penwidth=1, color=black];\n\t1819 -> 1837 [penwidth=1, color=black];\n\t1819 -> 1838 [penwidth=1, color=black];\n\t1819 -> 1861 [penwidth=1, color=black];\n\t1820 -> 1775 [penwidth=1, color=black];\n\t1820 -> 1778 [penwidth=1, color=black];\n\t1820 -> 1817 [penwidth=1, color=orange];\n\t1820 -> 1826 [penwidth=1, color=black];\n\t1820 -> 1836 [penwidth=1, color=black];\n\t1820 -> 1839 [penwidth=1, color=black];\n\t1821 -> 1749 [penwidth=1, color=black];\n\t1821 -> 1752 [penwidth=1, color=black];\n\t1821 -> 1783 [penwidth=1, color=black];\n\t1821 -> 1784 [penwidth=1, color=black];\n\t1821 -> 1785 [penwidth=1, color=black];\n\t1821 -> 1787 [penwidth=1, color=black];\n\t1821 -> 1812 [penwidth=1, color=black];\n\t1822 -> 1773 [penwidth=1, color=black];\n\t1822 -> 1774 [penwidth=1, color=black];\n\t1822 -> 1775 [penwidth=1, color=black];\n\t1822 -> 1778 [penwidth=1, color=black];\n\t1823 -> 1752 [penwidth=1, color=black];\n\t1823 -> 1789 [penwidth=1, color=black];\n\t1823 -> 1812 [penwidth=1, color=black];\n\t1823 -> 1813 [penwidth=1, color=black];\n\t1825 -> 1753 [penwidth=1, color=black];\n\t1825 -> 1789 [penwidth=1, color=black];\n\t1825 -> 1812 [penwidth=1, color=black];\n\t1825 -> 1813 [penwidth=1, color=black];\n\t1826 -> 1786 [penwidth=1, color=black];\n\t1826 -> 1788 [penwidth=1, color=black];\n\t1826 -> 1789 [penwidth=1, color=black];\n\t1826 -> 1871 [penwidth=1, color=black];\n\t1827 -> 517 [penwidth=1, color=black];\n\t1827 -> 1845 [penwidth=1, color=black];\n\t1831 -> 1854 [penwidth=1, color=black];\n\t1831 -> 1860 [penwidth=1, color=black];\n\t1831 -> 1862 [penwidth=1, color=black];\n\t1832 -> 1680 [penwidth=1, color=black];\n\t1832 -> 1700 [penwidth=\"1.6931471805599454\", color=black];\n\t1832 -> 1847 [penwidth=1, color=black];\n\t1832 -> 1860 [penwidth=1, color=black];\n\t1832 -> 1863 [penwidth=1, color=black];\n\t1832 -> 1867 [penwidth=1, color=black];\n\t1832 -> 1868 [penwidth=1, color=black];\n\t1833 -> 1682 [penwidth=1, color=black];\n\t1833 -> 1835 [penwidth=1, color=black];\n\t1834 -> 1680 [penwidth=1, color=black];\n\t1834 -> 1847 [penwidth=1, color=black];\n\t1834 -> 1850 [penwidth=1, color=black];\n\t1834 -> 1856 [penwidth=1, color=black];\n\t1835 -> 1858 [penwidth=1, color=black];\n\t1835 -> 1868 [penwidth=1, color=black];\n\t1835 -> 1869 [penwidth=1, color=black];\n\t1836 -> 1684 [penwidth=1, color=black];\n\t1836 -> 1835 [penwidth=1, color=black];\n\t1837 -> 1681 [penwidth=1, color=black];\n\t1837 -> 1847 [penwidth=1, color=black];\n\t1837 -> 1850 [penwidth=1, color=black];\n\t1837 -> 1856 [penwidth=1, color=black];\n\t1838 -> 1687 [penwidth=1, color=black];\n\t1838 -> 1835 [penwidth=1, color=black];\n\t1839 -> 1831 [penwidth=1, color=black];\n\t1839 -> 1847 [penwidth=1, color=black];\n\t1839 -> 1850 [penwidth=1, color=black];\n\t1839 -> 1861 [penwidth=1, color=black];\n\t1842 -> 1845 [penwidth=1, color=black];\n\t1842 -> 1888 [penwidth=1, color=black];\n\t1846 -> 1830 [penwidth=1, color=black];\n\t1846 -> 1843 [penwidth=1, color=black];\n\t1846 -> 1865 [penwidth=1, color=black];\n\t1846 -> 1870 [penwidth=1, color=black];\n\t1847 -> 1851 [penwidth=1, color=black];\n\t1848 -> 1684 [penwidth=1, color=black];\n\t1848 -> 1830 [penwidth=1, color=black];\n\t1848 -> 1851 [penwidth=1, color=black];\n\t1848 -> 1865 [penwidth=1, color=black];\n\t1848 -> 1867 [penwidth=1, color=black];\n\t1848 -> 1870 [penwidth=1, color=black];\n\t1849 -> 1830 [penwidth=1, color=black];\n\t1849 -> 1841 [penwidth=1, color=black];\n\t1849 -> 1844 [penwidth=1, color=black];\n\t1849 -> 1853 [penwidth=1, color=black];\n\t1849 -> 1867 [penwidth=1, color=black];\n\t1849 -> 1870 [penwidth=1, color=black];\n\t1850 -> 1852 [penwidth=1, color=black];\n\t1854 -> 1840 [penwidth=1, color=chartreuse];\n\t1855 -> 1828 [penwidth=\"2.09861228866811\", color=black];\n\t1855 -> 1857 [penwidth=1, color=black];\n\t1856 -> 1828 [penwidth=1, color=black];\n\t1856 -> 1855 [penwidth=1, color=black];\n\t1856 -> 1860 [penwidth=1, color=black];\n\t1856 -> 1866 [penwidth=1, color=black];\n\t1857 -> 1888 [penwidth=1, color=black];\n\t1858 -> 1830 [penwidth=1, color=black];\n\t1858 -> 1851 [penwidth=\"1.6931471805599454\", color=black];\n\t1859 -> 1830 [penwidth=1, color=black];\n\t1859 -> 1852 [penwidth=\"1.6931471805599454\", color=black];\n\t1860 -> 1830 [penwidth=1, color=black];\n\t1860 -> 1870 [penwidth=\"1.6931471805599454\", color=black];\n\t1861 -> 1847 [penwidth=1, color=black];\n\t1861 -> 1850 [penwidth=1, color=black];\n\t1861 -> 1858 [penwidth=1, color=black];\n\t1861 -> 1859 [penwidth=\"1.6931471805599454\", color=black];\n\t1864 -> 1681 [penwidth=1, color=black];\n\t1866 -> 1829 [penwidth=1, color=black];\n\t1867 -> 1845 [penwidth=1, color=black];\n\t1868 -> 1829 [penwidth=1, color=black];\n\t1872 -> 1872 [penwidth=\"1.6931471805599454\", color=black];\n\t1873 -> 1873 [penwidth=\"1.6931471805599454\", color=black];\n\t1876 -> 1874 [penwidth=1, color=black];\n\t1876 -> 1882 [penwidth=1, color=black];\n\t1877 -> 1883 [penwidth=1, color=black];\n\t1878 -> 1881 [penwidth=1, color=chartreuse];\n\t1879 -> 1877 [penwidth=1, color=chartreuse];\n\t1882 -> 1874 [penwidth=1, color=black];\n\t1885 -> 1886 [penwidth=1, color=black];\n\t1886 -> 1875 [penwidth=1, color=chartreuse];\n\t1887 -> 144 [penwidth=1, color=black];\n\t1887 -> 219 [penwidth=\"1.6931471805599454\", color=black];\n\t1887 -> 348 [penwidth=1, color=black];\n\t1887 -> 367 [penwidth=1, color=black];\n}\n"
utils/TestParsing.hs view
@@ -18,7 +18,7 @@  import Data.GraphViz import qualified Data.GraphViz.Types.Generalised as G-import Data.GraphViz.Parsing(runParser, parse)+import Data.GraphViz.Parsing(runParser) import Data.GraphViz.PreProcessing(preProcess) import Data.GraphViz.Commands.IO(hGetStrict, toUTF8) import Data.GraphViz.Exception@@ -26,7 +26,7 @@ import qualified Data.Text.Lazy as T import Data.Text.Lazy(Text) import qualified Data.ByteString.Lazy as B-import Control.Exception.Extensible(try, IOException)+import Control.Exception(try, evaluate, SomeException) import Control.Monad(liftM, filterM) import System.Directory import System.FilePath@@ -58,27 +58,30 @@  withParse :: (PPDotRepr dg n) => (a -> IO Text) -> (dg n -> IO ())              -> (ErrMsg -> String) -> a -> IO ()-withParse toStr withDG cmbErr a = do dc <- toStr a-                                     edg <- tryParse dc-                                     case edg of-                                       (Right dg) -> withDG dg-                                       (Left err) -> do putStrLn "Parsing problem!"-                                                        putStrLn $ cmbErr err-                                                        putStrLn  ""+withParse toStr withDG cmbErr a = do dc <- liftM getMsg . try $ toStr a+                                     case dc of+                                       Right dc' -> do edg <- tryParse dc'+                                                       case edg of+                                                         (Right dg) -> withDG dg+                                                         (Left err) -> do putStrLn "Parsing problem!"+                                                                          putStrLn $ cmbErr err+                                                                          putStrLn  ""+                                       Left err  -> do putStrLn "IO problem!"+                                                       putStrLn err+                                                       putStrLn ""+  where+    getMsg :: Either SomeException Text -> Either ErrMsg Text+    getMsg = either (Left . show) Right  type DG = DotGraph Text type GDG = G.DotGraph Text type ErrMsg = String  tryParseFile    :: FilePath -> IO ()-tryParseFile fp = readFile' fp >>= maybeParse-  where-    maybeParse (Left err)  = putStrLn $ "Error parsing \"" ++ fp ++ "\":\n\t"-                                        ++ err ++ "\n"-    maybeParse (Right dot) = withParse (const $ return dot)-                                       (tryParseCanon fp)-                                       ("Cannot parse as a G.DotGraph: "++)-                                       fp+tryParseFile fp = withParse readFile'+                            (tryParseCanon fp)+                            ("Cannot parse as a G.DotGraph: "++)+                            fp  tryParseCanon    :: FilePath -> GDG -> IO () tryParseCanon fp = withParse prettyPrint@@ -95,16 +98,16 @@               $ let (dg, rst) = runParser parse $ preProcess dc                 in T.length rst `seq` return dg   where-    getErr :: GraphvizException -> IO (Either ErrMsg a)+    getErr :: SomeException -> IO (Either ErrMsg a)     getErr = return . Left . show -readFile' :: FilePath -> IO (Either ErrMsg Text)+readFile' :: FilePath -> IO Text readFile' fp = do putStr fp                   putStr " - "-                  liftM getMsg . try $ readUTF8File fp-  where-    getMsg :: Either IOException Text -> Either ErrMsg Text-    getMsg = either (Left . show) Right+                  readUTF8File fp -readUTF8File :: FilePath -> IO Text-readUTF8File = liftM toUTF8 . B.readFile+-- Force any encoding errors into the IO section rather than when parsing.+readUTF8File    :: FilePath -> IO Text+readUTF8File fp = do cnts <- liftM toUTF8 $ B.readFile fp+                     _ <- evaluate $ T.length cnts+                     return cnts