{-# LANGUAGE  MultiParamTypeClasses,  FunctionalDependencies #-}

-- | 
-- Module      : Text.CHXHtml.XHtml1_strict
-- Copyright   : (c) Paul Talaga 2010,
--
-- License     : BSD-style
--
-- Maintainer  : paul@fuzzpault.com
-- Stability   : experimental
-- Portability : portable
--
--  Description : CHXHtml (Compliant Haskell XHtml) produces W3C valid XHTML1 strict content by building a datastructure based on the DTD.  
--  Nesting and allowed tags are limited at compile time by recursive types.  Required children and child ordering can be reported at runtime by the
--  @chidErrors function.
--
--  To simplify usage, type classes are used to substitute the correct constructor for the given context, or throw a type error if the tag is not allowed in that context.
--  As a result, a single function exists per tag as well as attribute names.
--
--  Each tag has two variants, one with and one without taking parameters, specified as @_{tag} [{children tags}]@ or @{tag}_ [{attributes}] [{children tags}]@.
--  Underscores prevents namespace conflicts with @Prelude@ as well as cleaning up the syntax otherwise present using import qualified.
--
--  Textual data is entered with the function @pcdata "String"@ wherever pcdata is allowed.  pcdata is HTML excaped for safety.
--  For speed the variant @pcdata_bs "Data.ByteString"@ can be used which bypasses excaping.
--  A handful of character entities (",&,<,>,©,®, ,) can also be used wherever pcdata is allowed by using 
--  the functions: @ce_quot@,@ce_amp@,@ce_lt@,@ce_gt@,@ce_copy@,@ce_reg@,@ce_nbsp@,
--
--  Attributes are specified by the functions  @{attribute name}_att@, followed by its value of the correct type.  See below for specifics.
--  For W3C compliance only the last attribute will be used if duplicate names exist.
--
--  Rendering to a "String" is done with the 'render' function, or to a "Data.ByteString" via the 'render_bs' function.  Note that "Data.ByteString" is significatly faster than Strings.
--
--  Under the hood we use a myriad of datatypes for tags and attributes whos details have been omitted below for brevity.  To assist in selecting allowed tags and attributes
--  'htmlHelp' is provided which produces allowed children and attributes given a tag's nesting position.  See 'htmlHelp' below for usage.
--
--
module Text.CHXHtml.XHtml1_strict(  
    -- * Validation
 childErrors,
    -- * Tag & Attribute Help
 htmlHelp,
    -- * Rendering
 render, render_bs,    -- * Tags
pcdata, pcdata_bs,s2b, _html, html_,_a ,a_ ,_abbr ,abbr_ ,_acronym ,acronym_ ,_address ,address_ ,_area ,area_ ,_b ,b_ ,_base ,base_ ,_bdo ,bdo_ ,_big ,big_ ,_blockquote ,blockquote_ ,_body ,body_ ,_br ,br_ ,_button ,button_ ,_caption ,caption_ ,_cite ,cite_ ,_code ,code_ ,_col ,col_ ,_colgroup ,colgroup_ ,_dd ,dd_ ,_del ,del_ ,_dfn ,dfn_ ,_div ,div_ ,_dl ,dl_ ,_dt ,dt_ ,_em ,em_ ,_fieldset ,fieldset_ ,_form ,form_ ,_h1 ,h1_ ,_h2 ,h2_ ,_h3 ,h3_ ,_h4 ,h4_ ,_h5 ,h5_ ,_h6 ,h6_ ,_head ,head_ ,_hr ,hr_ ,_i ,i_ ,_img ,img_ ,_input ,input_ ,_ins ,ins_ ,_kbd ,kbd_ ,_label ,label_ ,_legend ,legend_ ,_li ,li_ ,_link ,link_ ,_map ,map_ ,_meta ,meta_ ,_noscript ,noscript_ ,_object ,object_ ,_ol ,ol_ ,_optgroup ,optgroup_ ,_option ,option_ ,_p ,p_ ,_param ,param_ ,_pre ,pre_ ,_q ,q_ ,_samp ,samp_ ,_script ,script_ ,_select ,select_ ,_small ,small_ ,_span ,span_ ,_strong ,strong_ ,_style ,style_ ,_sub ,sub_ ,_sup ,sup_ ,_table ,table_ ,_tbody ,tbody_ ,_td ,td_ ,_textarea ,textarea_ ,_tfoot ,tfoot_ ,_th ,th_ ,_thead ,thead_ ,_title ,title_ ,_tr ,tr_ ,_tt ,tt_ ,_ul ,ul_ ,_var ,var_ ,
    -- * Attributes
http_equiv_att, http_equiv_att_bs,content_att, content_att_bs,nohref_att, onkeydown_att, onkeydown_att_bs,onkeyup_att, onkeyup_att_bs,onreset_att, onreset_att_bs,onmouseup_att, onmouseup_att_bs,scope_att, onmouseover_att, onmouseover_att_bs,align_att, lang_att, lang_att_bs,valign_att, name_att, name_att_bs,charset_att, charset_att_bs,scheme_att, scheme_att_bs,accept_charset_att, accept_charset_att_bs,onmousedown_att, onmousedown_att_bs,rev_att, rev_att_bs,span_att, span_att_bs,title_att, title_att_bs,onclick_att, onclick_att_bs,width_att, width_att_bs,enctype_att, enctype_att_bs,ismap_att, usemap_att, usemap_att_bs,coords_att, coords_att_bs,frame_att, size_att, size_att_bs,onblur_att, onblur_att_bs,datetime_att, datetime_att_bs,dir_att, summary_att, summary_att_bs,method_att, standby_att, standby_att_bs,tabindex_att, tabindex_att_bs,style_att, style_att_bs,onmousemove_att, onmousemove_att_bs,height_att, height_att_bs,codetype_att, codetype_att_bs,char_att, char_att_bs,multiple_att, codebase_att, codebase_att_bs,xmlns_att, xmlns_att_bs,profile_att, profile_att_bs,rel_att, rel_att_bs,onsubmit_att, onsubmit_att_bs,ondblclick_att, ondblclick_att_bs,axis_att, axis_att_bs,cols_att, cols_att_bs,abbr_att, abbr_att_bs,onchange_att, onchange_att_bs,readonly_att, href_att, href_att_bs,media_att, media_att_bs,id_att, id_att_bs,for_att, for_att_bs,src_att, src_att_bs,value_att, value_att_bs,data_att, data_att_bs,hreflang_att, hreflang_att_bs,checked_att, declare_att, onkeypress_att, onkeypress_att_bs,label_att, label_att_bs,class_att, class_att_bs,type_att, type_att_bs,shape_att, accesskey_att, accesskey_att_bs,headers_att, headers_att_bs,disabled_att, rules_att, rows_att, rows_att_bs,onfocus_att, onfocus_att_bs,colspan_att, colspan_att_bs,rowspan_att, rowspan_att_bs,defer_att, cellspacing_att, cellspacing_att_bs,charoff_att, charoff_att_bs,cite_att, cite_att_bs,maxlength_att, maxlength_att_bs,onselect_att, onselect_att_bs,accept_att, accept_att_bs,archive_att, archive_att_bs,alt_att, alt_att_bs,classid_att, classid_att_bs,longdesc_att, longdesc_att_bs,onmouseout_att, onmouseout_att_bs,space_att, border_att, border_att_bs,onunload_att, onunload_att_bs,onload_att, onload_att_bs,action_att, action_att_bs,cellpadding_att, cellpadding_att_bs,valuetype_att, selected_att, 
    -- ** Enumerated Attribute Values
ValuetypeEnum(..),RulesEnum(..),ShapeEnum(..),MethodEnum(..),DirEnum(..),FrameEnum(..),ValignEnum(..),AlignEnum(..),ScopeEnum(..),
    -- ** Character Entities (just a few until I can find a more elegant implementation)
ce_quot,ce_amp,ce_lt,ce_gt,ce_copy,ce_reg,ce_nbsp,
  ) where 

import qualified Data.ByteString.Lazy as B
import qualified Data.ByteString.Lazy.UTF8 as U
import Data.List (nubBy,sort,intersperse)
import Data.Char
import Text.Regex.Posix
-- | 'htmlHelp' provides a way of finding allowed children tags and attributes.  For example a @h1@ inside a @body@ tag inside an @html@ tag is queried with
--
-- > htmlHelp ["html","body","h1"]
--
-- > = [["a","abbr",..,"tt","var"],["alt_att","class_att","dir_att",..,"usemap_att","width_att"]]
--
-- which returns a list of 2 elements, each their own list.  The first is the allowed children tags, in this case 34.  The second is a list of allowed attributes for
-- the @h1@ tag.  Remember to add a @_@ as a prefix or suffix of all tags, as well as @_bs@ if providing a 'Data.ByteString' to an attribute.
--
htmlHelp :: [String] -> [[String]]
htmlHelp (x:xs) 
    | (map toLower x) == "html" = htmlHelp2 0 (toNdx "html") xs
    | otherwise = [["First tag needs to be \"html\"!"],[]]
    
htmlHelp2 :: Int -> Int -> [String] -> [[String]]
htmlHelp2 i lst [] = [ (sort (map (\(t,n)->fst (tagList !! t)) (groups !! i))), sort(map (\a->a++"_att") (attList !! (snd (tagList !! lst))))]
htmlHelp2 i lst (x:xs)
    | n == -1 = [[x ++ " not a child" ],["No attributes"]]
    | n == 99999 && xs == [] = [[x ++ " can not contain any inner nodes"], sort(map (\a->a++"_att") (attList !! (snd (tagList !! (toNdx x)))))]
    | n == 99999 = [[x ++ " can not contain any inner nodes"], []]
    | otherwise = htmlHelp2 n (toNdx x) xs
    where n = getNext (groups !! i) (toNdx x)

getNext ((a,b):xs) t
    | a == t = b
    | otherwise = getNext xs t 
getNext [] t = -1

toNdx :: String -> Int
toNdx s = toNdx2 s tagList 0
toNdx2 s (x:xs) n
    | (map toLower s) == (map toLower (fst x)) = n
    | otherwise = toNdx2 s xs (n+1)
toNdx2 s [] _ = (-1)
tagList = [("html",0),("head",1),("title",2),("base",3),("meta",5),("link",7),("style",8),("script",10),("noscript",11),("body",12),("div",11),("p",11),("h1",11),("h2",11),("h3",11),("h4",11),("h5",11),("h6",11),("ul",11),("ol",11),("li",11),("dl",11),("dt",11),("dd",11),("address",11),("hr",11),("pre",13),("blockquote",14),("ins",15),("del",15),("a",16),("span",11),("bdo",11),("br",19),("em",11),("strong",11),("dfn",11),("code",11),("samp",11),("kbd",11),("var",11),("cite",11),("abbr",11),("acronym",11),("q",14),("sub",11),("sup",11),("tt",11),("i",11),("b",11),("big",11),("small",11),("object",20),("param",21),("img",22),("map",25),("area",27),("form",28),("label",30),("input",31),("select",32),("optgroup",33),("option",35),("textarea",36),("fieldset",11),("legend",39),("button",40),("table",41),("caption",11),("thead",42),("tfoot",42),("tbody",42),("colgroup",43),("col",43),("tr",42),("th",44),("td",44),("pcdata",-1),("cdata",-1),("none",-1),("",1)]
attList = [["lang","dir","id","xmlns"],["lang","dir","id","profile"],["lang","dir","id"],["href","id"],["href"],["lang","dir","id","http_equiv","name","content","scheme"],["content"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","charset","href","hreflang","type","rel","rev","media"],["lang","dir","id","type","media","title","space"],["type"],["id","charset","type","src","defer","space"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","onload","onunload"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","space"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","cite"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","cite","datetime"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","accesskey","tabindex","onfocus","onblur","charset","type","name","href","hreflang","rel","rev","shape","coords"],["id","class","style","title","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","lang","dir"],["dir"],["id","class","style","title"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","declare","classid","codebase","data","type","codetype","archive","standby","height","width","usemap","name","tabindex"],["id","name","value","valuetype","type"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","src","alt","longdesc","height","width","usemap","ismap"],["src"],["alt"],["lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","id","class","style","title","name"],["id"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","accesskey","tabindex","onfocus","onblur","shape","coords","href","nohref","alt"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","action","method","enctype","onsubmit","onreset","accept","accept_charset"],["action"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","for","accesskey","onfocus","onblur"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","accesskey","tabindex","onfocus","onblur","type","name","value","checked","disabled","readonly","size","maxlength","src","alt","usemap","onselect","onchange","accept"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","name","size","multiple","disabled","tabindex","onfocus","onblur","onchange"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","disabled","label"],["label"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","selected","disabled","label","value"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","accesskey","tabindex","onfocus","onblur","name","rows","cols","disabled","readonly","onselect","onchange"],["rows"],["cols"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","accesskey"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","accesskey","tabindex","onfocus","onblur","name","value","type","disabled"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","summary","width","border","frame","rules","cellspacing","cellpadding"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","align","char","charoff","valign"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","span","width","align","char","charoff","valign"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","abbr","axis","headers","scope","rowspan","colspan","align","char","charoff","valign"]]
groups  = [[(1,1),(9,93)],[(2,2),(3,99999),(4,99999),(5,99999),(6,2),(7,2),(52,3)],[(77,99999)],[(7,2),(8,93),(10,94),(11,60),(12,60),(13,60),(14,60),(15,60),(16,60),(17,60),(18,95),(19,95),(21,96),(24,60),(25,99999),(26,97),(27,93),(28,94),(29,94),(30,4),(31,60),(32,60),(33,99999),(34,60),(35,60),(36,60),(37,60),(38,60),(39,60),(40,60),(41,60),(42,60),(43,60),(44,60),(45,60),(46,60),(47,60),(48,60),(49,60),(50,60),(51,60),(52,3),(53,99999),(54,99999),(55,61),(57,98),(58,62),(59,99999),(60,90),(63,2),(64,133),(66,92),(67,134),(77,99999)],[(7,5),(28,6),(29,6),(31,4),(32,4),(33,99999),(34,4),(35,4),(36,4),(37,4),(38,4),(39,4),(40,4),(41,4),(42,4),(43,4),(44,4),(45,4),(46,4),(47,4),(48,4),(49,4),(50,4),(51,4),(52,27),(54,99999),(55,28),(58,29),(59,99999),(60,57),(63,5),(66,59),(77,99999)],[(77,99999)],[(7,5),(8,7),(10,6),(11,4),(12,4),(13,4),(14,4),(15,4),(16,4),(17,4),(18,8),(19,8),(21,9),(24,4),(25,99999),(26,10),(27,7),(28,6),(29,6),(31,4),(32,4),(33,99999),(34,4),(35,4),(36,4),(37,4),(38,4),(39,4),(40,4),(41,4),(42,4),(43,4),(44,4),(45,4),(46,4),(47,4),(48,4),(49,4),(50,4),(51,4),(52,27),(54,99999),(55,28),(57,11),(58,29),(59,99999),(60,57),(63,5),(64,22),(66,59),(67,23),(77,99999)],[(7,5),(8,7),(10,6),(11,4),(12,4),(13,4),(14,4),(15,4),(16,4),(17,4),(18,8),(19,8),(21,9),(24,4),(25,99999),(26,10),(27,7),(28,6),(29,6),(57,11),(64,22),(67,23)],[(20,6)],[(22,4),(23,6)],[(7,5),(28,6),(29,6),(31,4),(32,4),(33,99999),(34,4),(35,4),(36,4),(37,4),(38,4),(39,4),(40,4),(41,4),(42,4),(43,4),(44,4),(45,4),(46,4),(47,4),(48,4),(49,4),(50,4),(51,4),(55,28),(58,29),(59,99999),(60,57),(63,5),(66,59),(77,99999)],[(7,101),(8,11),(10,12),(11,13),(12,13),(13,13),(14,13),(15,13),(16,13),(17,13),(18,14),(19,14),(21,15),(24,13),(25,99999),(26,16),(27,11),(28,12),(29,12),(64,17),(67,18)],[(7,101),(8,11),(10,12),(11,13),(12,13),(13,13),(14,13),(15,13),(16,13),(17,13),(18,14),(19,14),(21,15),(24,13),(25,99999),(26,16),(27,11),(28,12),(29,12),(31,13),(32,13),(33,99999),(34,13),(35,13),(36,13),(37,13),(38,13),(39,13),(40,13),(41,13),(42,13),(43,13),(44,13),(45,13),(46,13),(47,13),(48,13),(49,13),(50,13),(51,13),(52,102),(54,99999),(55,103),(58,38),(59,99999),(60,110),(63,101),(64,17),(66,112),(67,18),(77,99999)],[(7,101),(28,12),(29,12),(31,13),(32,13),(33,99999),(34,13),(35,13),(36,13),(37,13),(38,13),(39,13),(40,13),(41,13),(42,13),(43,13),(44,13),(45,13),(46,13),(47,13),(48,13),(49,13),(50,13),(51,13),(52,102),(54,99999),(55,103),(58,38),(59,99999),(60,110),(63,101),(66,112),(77,99999)],[(20,12)],[(22,13),(23,12)],[(7,101),(28,12),(29,12),(31,13),(32,13),(33,99999),(34,13),(35,13),(36,13),(37,13),(38,13),(39,13),(40,13),(41,13),(42,13),(43,13),(44,13),(45,13),(46,13),(47,13),(48,13),(49,13),(50,13),(51,13),(55,103),(58,38),(59,99999),(60,110),(63,101),(66,112),(77,99999)],[(7,101),(8,11),(10,12),(11,13),(12,13),(13,13),(14,13),(15,13),(16,13),(17,13),(18,14),(19,14),(21,15),(24,13),(25,99999),(26,16),(27,11),(28,12),(29,12),(31,13),(32,13),(33,99999),(34,13),(35,13),(36,13),(37,13),(38,13),(39,13),(40,13),(41,13),(42,13),(43,13),(44,13),(45,13),(46,13),(47,13),(48,13),(49,13),(50,13),(51,13),(52,102),(54,99999),(55,103),(58,38),(59,99999),(60,110),(63,101),(64,17),(65,13),(66,112),(67,18),(77,99999)],[(68,13),(69,19),(70,19),(71,19),(72,20),(73,99999),(74,21)],[(74,21)],[(73,99999)],[(75,12),(76,12)],[(7,5),(8,7),(10,6),(11,4),(12,4),(13,4),(14,4),(15,4),(16,4),(17,4),(18,8),(19,8),(21,9),(24,4),(25,99999),(26,10),(27,7),(28,6),(29,6),(31,4),(32,4),(33,99999),(34,4),(35,4),(36,4),(37,4),(38,4),(39,4),(40,4),(41,4),(42,4),(43,4),(44,4),(45,4),(46,4),(47,4),(48,4),(49,4),(50,4),(51,4),(52,27),(54,99999),(55,28),(57,11),(58,29),(59,99999),(60,57),(63,5),(64,22),(65,4),(66,59),(67,23),(77,99999)],[(68,4),(69,24),(70,24),(71,24),(72,25),(73,99999),(74,26)],[(74,26)],[(73,99999)],[(75,6),(76,6)],[(7,5),(8,7),(10,6),(11,4),(12,4),(13,4),(14,4),(15,4),(16,4),(17,4),(18,8),(19,8),(21,9),(24,4),(25,99999),(26,10),(27,7),(28,6),(29,6),(31,4),(32,4),(33,99999),(34,4),(35,4),(36,4),(37,4),(38,4),(39,4),(40,4),(41,4),(42,4),(43,4),(44,4),(45,4),(46,4),(47,4),(48,4),(49,4),(50,4),(51,4),(52,27),(53,99999),(54,99999),(55,28),(57,11),(58,29),(59,99999),(60,57),(63,5),(64,22),(66,59),(67,23),(77,99999)],[(7,5),(8,7),(10,6),(11,4),(12,4),(13,4),(14,4),(15,4),(16,4),(17,4),(18,8),(19,8),(21,9),(24,4),(25,99999),(26,10),(27,7),(28,6),(29,6),(56,99999),(57,11),(64,22),(67,23)],[(7,30),(28,31),(29,31),(31,29),(32,29),(33,99999),(34,29),(35,29),(36,29),(37,29),(38,29),(39,29),(40,29),(41,29),(42,29),(43,29),(44,29),(45,29),(46,29),(47,29),(48,29),(49,29),(50,29),(51,29),(52,52),(54,99999),(55,53),(59,99999),(60,54),(63,30),(66,56),(77,99999)],[(77,99999)],[(7,30),(8,32),(10,31),(11,29),(12,29),(13,29),(14,29),(15,29),(16,29),(17,29),(18,33),(19,33),(21,34),(24,29),(25,99999),(26,35),(27,32),(28,31),(29,31),(31,29),(32,29),(33,99999),(34,29),(35,29),(36,29),(37,29),(38,29),(39,29),(40,29),(41,29),(42,29),(43,29),(44,29),(45,29),(46,29),(47,29),(48,29),(49,29),(50,29),(51,29),(52,52),(54,99999),(55,53),(57,36),(59,99999),(60,54),(63,30),(64,47),(66,56),(67,48),(77,99999)],[(7,30),(8,32),(10,31),(11,29),(12,29),(13,29),(14,29),(15,29),(16,29),(17,29),(18,33),(19,33),(21,34),(24,29),(25,99999),(26,35),(27,32),(28,31),(29,31),(57,36),(64,47),(67,48)],[(20,31)],[(22,29),(23,31)],[(7,30),(28,31),(29,31),(31,29),(32,29),(33,99999),(34,29),(35,29),(36,29),(37,29),(38,29),(39,29),(40,29),(41,29),(42,29),(43,29),(44,29),(45,29),(46,29),(47,29),(48,29),(49,29),(50,29),(51,29),(55,53),(59,99999),(60,54),(63,30),(66,56),(77,99999)],[(7,104),(8,36),(10,37),(11,38),(12,38),(13,38),(14,38),(15,38),(16,38),(17,38),(18,39),(19,39),(21,40),(24,38),(25,99999),(26,41),(27,36),(28,37),(29,37),(64,42),(67,43)],[(7,104),(8,36),(10,37),(11,38),(12,38),(13,38),(14,38),(15,38),(16,38),(17,38),(18,39),(19,39),(21,40),(24,38),(25,99999),(26,41),(27,36),(28,37),(29,37),(31,38),(32,38),(33,99999),(34,38),(35,38),(36,38),(37,38),(38,38),(39,38),(40,38),(41,38),(42,38),(43,38),(44,38),(45,38),(46,38),(47,38),(48,38),(49,38),(50,38),(51,38),(52,105),(54,99999),(55,106),(59,99999),(60,107),(63,104),(64,42),(66,109),(67,43),(77,99999)],[(7,104),(28,37),(29,37),(31,38),(32,38),(33,99999),(34,38),(35,38),(36,38),(37,38),(38,38),(39,38),(40,38),(41,38),(42,38),(43,38),(44,38),(45,38),(46,38),(47,38),(48,38),(49,38),(50,38),(51,38),(52,105),(54,99999),(55,106),(59,99999),(60,107),(63,104),(66,109),(77,99999)],[(20,37)],[(22,38),(23,37)],[(7,104),(28,37),(29,37),(31,38),(32,38),(33,99999),(34,38),(35,38),(36,38),(37,38),(38,38),(39,38),(40,38),(41,38),(42,38),(43,38),(44,38),(45,38),(46,38),(47,38),(48,38),(49,38),(50,38),(51,38),(55,106),(59,99999),(60,107),(63,104),(66,109),(77,99999)],[(7,104),(8,36),(10,37),(11,38),(12,38),(13,38),(14,38),(15,38),(16,38),(17,38),(18,39),(19,39),(21,40),(24,38),(25,99999),(26,41),(27,36),(28,37),(29,37),(31,38),(32,38),(33,99999),(34,38),(35,38),(36,38),(37,38),(38,38),(39,38),(40,38),(41,38),(42,38),(43,38),(44,38),(45,38),(46,38),(47,38),(48,38),(49,38),(50,38),(51,38),(52,105),(54,99999),(55,106),(59,99999),(60,107),(63,104),(64,42),(65,38),(66,109),(67,43),(77,99999)],[(68,38),(69,44),(70,44),(71,44),(72,45),(73,99999),(74,46)],[(74,46)],[(73,99999)],[(75,37),(76,37)],[(7,30),(8,32),(10,31),(11,29),(12,29),(13,29),(14,29),(15,29),(16,29),(17,29),(18,33),(19,33),(21,34),(24,29),(25,99999),(26,35),(27,32),(28,31),(29,31),(31,29),(32,29),(33,99999),(34,29),(35,29),(36,29),(37,29),(38,29),(39,29),(40,29),(41,29),(42,29),(43,29),(44,29),(45,29),(46,29),(47,29),(48,29),(49,29),(50,29),(51,29),(52,52),(54,99999),(55,53),(57,36),(59,99999),(60,54),(63,30),(64,47),(65,29),(66,56),(67,48),(77,99999)],[(68,29),(69,49),(70,49),(71,49),(72,50),(73,99999),(74,51)],[(74,51)],[(73,99999)],[(75,31),(76,31)],[(7,30),(8,32),(10,31),(11,29),(12,29),(13,29),(14,29),(15,29),(16,29),(17,29),(18,33),(19,33),(21,34),(24,29),(25,99999),(26,35),(27,32),(28,31),(29,31),(31,29),(32,29),(33,99999),(34,29),(35,29),(36,29),(37,29),(38,29),(39,29),(40,29),(41,29),(42,29),(43,29),(44,29),(45,29),(46,29),(47,29),(48,29),(49,29),(50,29),(51,29),(52,52),(53,99999),(54,99999),(55,53),(57,36),(59,99999),(60,54),(63,30),(64,47),(66,56),(67,48),(77,99999)],[(7,30),(8,32),(10,31),(11,29),(12,29),(13,29),(14,29),(15,29),(16,29),(17,29),(18,33),(19,33),(21,34),(24,29),(25,99999),(26,35),(27,32),(28,31),(29,31),(56,99999),(57,36),(64,47),(67,48)],[(61,55),(62,30)],[(62,30)],[(7,30),(8,32),(10,31),(11,29),(12,29),(13,29),(14,29),(15,29),(16,29),(17,29),(18,33),(19,33),(21,34),(24,29),(25,99999),(26,35),(27,32),(28,31),(29,31),(31,29),(32,29),(33,99999),(34,29),(35,29),(36,29),(37,29),(38,29),(39,29),(40,29),(41,29),(42,29),(43,29),(44,29),(45,29),(46,29),(47,29),(48,29),(49,29),(50,29),(51,29),(52,52),(54,99999),(55,53),(67,48),(77,99999)],[(61,58),(62,5)],[(62,5)],[(7,5),(8,7),(10,6),(11,4),(12,4),(13,4),(14,4),(15,4),(16,4),(17,4),(18,8),(19,8),(21,9),(24,4),(25,99999),(26,10),(27,7),(28,6),(29,6),(31,4),(32,4),(33,99999),(34,4),(35,4),(36,4),(37,4),(38,4),(39,4),(40,4),(41,4),(42,4),(43,4),(44,4),(45,4),(46,4),(47,4),(48,4),(49,4),(50,4),(51,4),(52,27),(54,99999),(55,28),(67,23),(77,99999)],[(7,2),(28,94),(29,94),(30,4),(31,60),(32,60),(33,99999),(34,60),(35,60),(36,60),(37,60),(38,60),(39,60),(40,60),(41,60),(42,60),(43,60),(44,60),(45,60),(46,60),(47,60),(48,60),(49,60),(50,60),(51,60),(52,3),(54,99999),(55,61),(58,62),(59,99999),(60,90),(63,2),(66,92),(77,99999)],[(7,2),(8,93),(10,94),(11,60),(12,60),(13,60),(14,60),(15,60),(16,60),(17,60),(18,95),(19,95),(21,96),(24,60),(25,99999),(26,97),(27,93),(28,94),(29,94),(56,99999),(57,98),(64,133),(67,134)],[(7,63),(28,64),(29,64),(30,29),(31,62),(32,62),(33,99999),(34,62),(35,62),(36,62),(37,62),(38,62),(39,62),(40,62),(41,62),(42,62),(43,62),(44,62),(45,62),(46,62),(47,62),(48,62),(49,62),(50,62),(51,62),(52,85),(54,99999),(55,86),(59,99999),(60,87),(63,63),(66,89),(77,99999)],[(77,99999)],[(7,63),(8,65),(10,64),(11,62),(12,62),(13,62),(14,62),(15,62),(16,62),(17,62),(18,66),(19,66),(21,67),(24,62),(25,99999),(26,68),(27,65),(28,64),(29,64),(30,29),(31,62),(32,62),(33,99999),(34,62),(35,62),(36,62),(37,62),(38,62),(39,62),(40,62),(41,62),(42,62),(43,62),(44,62),(45,62),(46,62),(47,62),(48,62),(49,62),(50,62),(51,62),(52,85),(54,99999),(55,86),(57,69),(59,99999),(60,87),(63,63),(64,80),(66,89),(67,81),(77,99999)],[(7,63),(8,65),(10,64),(11,62),(12,62),(13,62),(14,62),(15,62),(16,62),(17,62),(18,66),(19,66),(21,67),(24,62),(25,99999),(26,68),(27,65),(28,64),(29,64),(57,69),(64,80),(67,81)],[(20,64)],[(22,62),(23,64)],[(7,63),(28,64),(29,64),(30,29),(31,62),(32,62),(33,99999),(34,62),(35,62),(36,62),(37,62),(38,62),(39,62),(40,62),(41,62),(42,62),(43,62),(44,62),(45,62),(46,62),(47,62),(48,62),(49,62),(50,62),(51,62),(55,86),(59,99999),(60,87),(63,63),(66,89),(77,99999)],[(7,116),(8,69),(10,70),(11,71),(12,71),(13,71),(14,71),(15,71),(16,71),(17,71),(18,72),(19,72),(21,73),(24,71),(25,99999),(26,74),(27,69),(28,70),(29,70),(64,75),(67,76)],[(7,116),(8,69),(10,70),(11,71),(12,71),(13,71),(14,71),(15,71),(16,71),(17,71),(18,72),(19,72),(21,73),(24,71),(25,99999),(26,74),(27,69),(28,70),(29,70),(30,38),(31,71),(32,71),(33,99999),(34,71),(35,71),(36,71),(37,71),(38,71),(39,71),(40,71),(41,71),(42,71),(43,71),(44,71),(45,71),(46,71),(47,71),(48,71),(49,71),(50,71),(51,71),(52,117),(54,99999),(55,118),(59,99999),(60,119),(63,116),(64,75),(66,121),(67,76),(77,99999)],[(7,116),(28,70),(29,70),(30,38),(31,71),(32,71),(33,99999),(34,71),(35,71),(36,71),(37,71),(38,71),(39,71),(40,71),(41,71),(42,71),(43,71),(44,71),(45,71),(46,71),(47,71),(48,71),(49,71),(50,71),(51,71),(52,117),(54,99999),(55,118),(59,99999),(60,119),(63,116),(66,121),(77,99999)],[(20,70)],[(22,71),(23,70)],[(7,116),(28,70),(29,70),(30,38),(31,71),(32,71),(33,99999),(34,71),(35,71),(36,71),(37,71),(38,71),(39,71),(40,71),(41,71),(42,71),(43,71),(44,71),(45,71),(46,71),(47,71),(48,71),(49,71),(50,71),(51,71),(55,118),(59,99999),(60,119),(63,116),(66,121),(77,99999)],[(7,116),(8,69),(10,70),(11,71),(12,71),(13,71),(14,71),(15,71),(16,71),(17,71),(18,72),(19,72),(21,73),(24,71),(25,99999),(26,74),(27,69),(28,70),(29,70),(30,38),(31,71),(32,71),(33,99999),(34,71),(35,71),(36,71),(37,71),(38,71),(39,71),(40,71),(41,71),(42,71),(43,71),(44,71),(45,71),(46,71),(47,71),(48,71),(49,71),(50,71),(51,71),(52,117),(54,99999),(55,118),(59,99999),(60,119),(63,116),(64,75),(65,71),(66,121),(67,76),(77,99999)],[(68,71),(69,77),(70,77),(71,77),(72,78),(73,99999),(74,79)],[(74,79)],[(73,99999)],[(75,70),(76,70)],[(7,63),(8,65),(10,64),(11,62),(12,62),(13,62),(14,62),(15,62),(16,62),(17,62),(18,66),(19,66),(21,67),(24,62),(25,99999),(26,68),(27,65),(28,64),(29,64),(30,29),(31,62),(32,62),(33,99999),(34,62),(35,62),(36,62),(37,62),(38,62),(39,62),(40,62),(41,62),(42,62),(43,62),(44,62),(45,62),(46,62),(47,62),(48,62),(49,62),(50,62),(51,62),(52,85),(54,99999),(55,86),(57,69),(59,99999),(60,87),(63,63),(64,80),(65,62),(66,89),(67,81),(77,99999)],[(68,62),(69,82),(70,82),(71,82),(72,83),(73,99999),(74,84)],[(74,84)],[(73,99999)],[(75,64),(76,64)],[(7,63),(8,65),(10,64),(11,62),(12,62),(13,62),(14,62),(15,62),(16,62),(17,62),(18,66),(19,66),(21,67),(24,62),(25,99999),(26,68),(27,65),(28,64),(29,64),(30,29),(31,62),(32,62),(33,99999),(34,62),(35,62),(36,62),(37,62),(38,62),(39,62),(40,62),(41,62),(42,62),(43,62),(44,62),(45,62),(46,62),(47,62),(48,62),(49,62),(50,62),(51,62),(52,85),(53,99999),(54,99999),(55,86),(57,69),(59,99999),(60,87),(63,63),(64,80),(66,89),(67,81),(77,99999)],[(7,63),(8,65),(10,64),(11,62),(12,62),(13,62),(14,62),(15,62),(16,62),(17,62),(18,66),(19,66),(21,67),(24,62),(25,99999),(26,68),(27,65),(28,64),(29,64),(56,99999),(57,69),(64,80),(67,81)],[(61,88),(62,63)],[(62,63)],[(7,63),(8,65),(10,64),(11,62),(12,62),(13,62),(14,62),(15,62),(16,62),(17,62),(18,66),(19,66),(21,67),(24,62),(25,99999),(26,68),(27,65),(28,64),(29,64),(31,62),(32,62),(33,99999),(34,62),(35,62),(36,62),(37,62),(38,62),(39,62),(40,62),(41,62),(42,62),(43,62),(44,62),(45,62),(46,62),(47,62),(48,62),(49,62),(50,62),(51,62),(52,85),(54,99999),(55,86),(67,81),(77,99999)],[(61,91),(62,2)],[(62,2)],[(7,2),(8,93),(10,94),(11,60),(12,60),(13,60),(14,60),(15,60),(16,60),(17,60),(18,95),(19,95),(21,96),(24,60),(25,99999),(26,97),(27,93),(28,94),(29,94),(31,60),(32,60),(33,99999),(34,60),(35,60),(36,60),(37,60),(38,60),(39,60),(40,60),(41,60),(42,60),(43,60),(44,60),(45,60),(46,60),(47,60),(48,60),(49,60),(50,60),(51,60),(52,3),(54,99999),(55,61),(67,134),(77,99999)],[(7,2),(8,93),(10,94),(11,60),(12,60),(13,60),(14,60),(15,60),(16,60),(17,60),(18,95),(19,95),(21,96),(24,60),(25,99999),(26,97),(27,93),(28,94),(29,94),(57,98),(64,133),(67,134)],[(7,2),(8,93),(10,94),(11,60),(12,60),(13,60),(14,60),(15,60),(16,60),(17,60),(18,95),(19,95),(21,96),(24,60),(25,99999),(26,97),(27,93),(28,94),(29,94),(30,4),(31,60),(32,60),(33,99999),(34,60),(35,60),(36,60),(37,60),(38,60),(39,60),(40,60),(41,60),(42,60),(43,60),(44,60),(45,60),(46,60),(47,60),(48,60),(49,60),(50,60),(51,60),(52,3),(54,99999),(55,61),(57,98),(58,62),(59,99999),(60,90),(63,2),(64,133),(66,92),(67,134),(77,99999)],[(20,94)],[(22,60),(23,94)],[(7,2),(28,94),(29,94),(30,4),(31,60),(32,60),(33,99999),(34,60),(35,60),(36,60),(37,60),(38,60),(39,60),(40,60),(41,60),(42,60),(43,60),(44,60),(45,60),(46,60),(47,60),(48,60),(49,60),(50,60),(51,60),(55,61),(58,62),(59,99999),(60,90),(63,2),(66,92),(77,99999)],[(7,99),(8,98),(10,100),(11,113),(12,113),(13,113),(14,113),(15,113),(16,113),(17,113),(18,125),(19,125),(21,126),(24,113),(25,99999),(26,127),(27,98),(28,100),(29,100),(64,128),(67,129)],[(77,99999)],[(7,99),(8,98),(10,100),(11,113),(12,113),(13,113),(14,113),(15,113),(16,113),(17,113),(18,125),(19,125),(21,126),(24,113),(25,99999),(26,127),(27,98),(28,100),(29,100),(30,13),(31,113),(32,113),(33,99999),(34,113),(35,113),(36,113),(37,113),(38,113),(39,113),(40,113),(41,113),(42,113),(43,113),(44,113),(45,113),(46,113),(47,113),(48,113),(49,113),(50,113),(51,113),(52,114),(54,99999),(55,115),(58,71),(59,99999),(60,122),(63,99),(64,128),(66,124),(67,129),(77,99999)],[(77,99999)],[(7,101),(8,11),(10,12),(11,13),(12,13),(13,13),(14,13),(15,13),(16,13),(17,13),(18,14),(19,14),(21,15),(24,13),(25,99999),(26,16),(27,11),(28,12),(29,12),(31,13),(32,13),(33,99999),(34,13),(35,13),(36,13),(37,13),(38,13),(39,13),(40,13),(41,13),(42,13),(43,13),(44,13),(45,13),(46,13),(47,13),(48,13),(49,13),(50,13),(51,13),(52,102),(53,99999),(54,99999),(55,103),(58,38),(59,99999),(60,110),(63,101),(64,17),(66,112),(67,18),(77,99999)],[(7,101),(8,11),(10,12),(11,13),(12,13),(13,13),(14,13),(15,13),(16,13),(17,13),(18,14),(19,14),(21,15),(24,13),(25,99999),(26,16),(27,11),(28,12),(29,12),(56,99999),(64,17),(67,18)],[(77,99999)],[(7,104),(8,36),(10,37),(11,38),(12,38),(13,38),(14,38),(15,38),(16,38),(17,38),(18,39),(19,39),(21,40),(24,38),(25,99999),(26,41),(27,36),(28,37),(29,37),(31,38),(32,38),(33,99999),(34,38),(35,38),(36,38),(37,38),(38,38),(39,38),(40,38),(41,38),(42,38),(43,38),(44,38),(45,38),(46,38),(47,38),(48,38),(49,38),(50,38),(51,38),(52,105),(53,99999),(54,99999),(55,106),(59,99999),(60,107),(63,104),(64,42),(66,109),(67,43),(77,99999)],[(7,104),(8,36),(10,37),(11,38),(12,38),(13,38),(14,38),(15,38),(16,38),(17,38),(18,39),(19,39),(21,40),(24,38),(25,99999),(26,41),(27,36),(28,37),(29,37),(56,99999),(64,42),(67,43)],[(61,108),(62,104)],[(62,104)],[(7,104),(8,36),(10,37),(11,38),(12,38),(13,38),(14,38),(15,38),(16,38),(17,38),(18,39),(19,39),(21,40),(24,38),(25,99999),(26,41),(27,36),(28,37),(29,37),(31,38),(32,38),(33,99999),(34,38),(35,38),(36,38),(37,38),(38,38),(39,38),(40,38),(41,38),(42,38),(43,38),(44,38),(45,38),(46,38),(47,38),(48,38),(49,38),(50,38),(51,38),(52,105),(54,99999),(55,106),(67,43),(77,99999)],[(61,111),(62,101)],[(62,101)],[(7,101),(8,11),(10,12),(11,13),(12,13),(13,13),(14,13),(15,13),(16,13),(17,13),(18,14),(19,14),(21,15),(24,13),(25,99999),(26,16),(27,11),(28,12),(29,12),(31,13),(32,13),(33,99999),(34,13),(35,13),(36,13),(37,13),(38,13),(39,13),(40,13),(41,13),(42,13),(43,13),(44,13),(45,13),(46,13),(47,13),(48,13),(49,13),(50,13),(51,13),(52,102),(54,99999),(55,103),(67,18),(77,99999)],[(7,99),(28,100),(29,100),(30,13),(31,113),(32,113),(33,99999),(34,113),(35,113),(36,113),(37,113),(38,113),(39,113),(40,113),(41,113),(42,113),(43,113),(44,113),(45,113),(46,113),(47,113),(48,113),(49,113),(50,113),(51,113),(52,114),(54,99999),(55,115),(58,71),(59,99999),(60,122),(63,99),(66,124),(77,99999)],[(7,99),(8,98),(10,100),(11,113),(12,113),(13,113),(14,113),(15,113),(16,113),(17,113),(18,125),(19,125),(21,126),(24,113),(25,99999),(26,127),(27,98),(28,100),(29,100),(30,13),(31,113),(32,113),(33,99999),(34,113),(35,113),(36,113),(37,113),(38,113),(39,113),(40,113),(41,113),(42,113),(43,113),(44,113),(45,113),(46,113),(47,113),(48,113),(49,113),(50,113),(51,113),(52,114),(53,99999),(54,99999),(55,115),(58,71),(59,99999),(60,122),(63,99),(64,128),(66,124),(67,129),(77,99999)],[(7,99),(8,98),(10,100),(11,113),(12,113),(13,113),(14,113),(15,113),(16,113),(17,113),(18,125),(19,125),(21,126),(24,113),(25,99999),(26,127),(27,98),(28,100),(29,100),(56,99999),(64,128),(67,129)],[(77,99999)],[(7,116),(8,69),(10,70),(11,71),(12,71),(13,71),(14,71),(15,71),(16,71),(17,71),(18,72),(19,72),(21,73),(24,71),(25,99999),(26,74),(27,69),(28,70),(29,70),(30,38),(31,71),(32,71),(33,99999),(34,71),(35,71),(36,71),(37,71),(38,71),(39,71),(40,71),(41,71),(42,71),(43,71),(44,71),(45,71),(46,71),(47,71),(48,71),(49,71),(50,71),(51,71),(52,117),(53,99999),(54,99999),(55,118),(59,99999),(60,119),(63,116),(64,75),(66,121),(67,76),(77,99999)],[(7,116),(8,69),(10,70),(11,71),(12,71),(13,71),(14,71),(15,71),(16,71),(17,71),(18,72),(19,72),(21,73),(24,71),(25,99999),(26,74),(27,69),(28,70),(29,70),(56,99999),(64,75),(67,76)],[(61,120),(62,116)],[(62,116)],[(7,116),(8,69),(10,70),(11,71),(12,71),(13,71),(14,71),(15,71),(16,71),(17,71),(18,72),(19,72),(21,73),(24,71),(25,99999),(26,74),(27,69),(28,70),(29,70),(31,71),(32,71),(33,99999),(34,71),(35,71),(36,71),(37,71),(38,71),(39,71),(40,71),(41,71),(42,71),(43,71),(44,71),(45,71),(46,71),(47,71),(48,71),(49,71),(50,71),(51,71),(52,117),(54,99999),(55,118),(67,76),(77,99999)],[(61,123),(62,99)],[(62,99)],[(7,99),(8,98),(10,100),(11,113),(12,113),(13,113),(14,113),(15,113),(16,113),(17,113),(18,125),(19,125),(21,126),(24,113),(25,99999),(26,127),(27,98),(28,100),(29,100),(31,113),(32,113),(33,99999),(34,113),(35,113),(36,113),(37,113),(38,113),(39,113),(40,113),(41,113),(42,113),(43,113),(44,113),(45,113),(46,113),(47,113),(48,113),(49,113),(50,113),(51,113),(52,114),(54,99999),(55,115),(67,129),(77,99999)],[(20,100)],[(22,113),(23,100)],[(7,99),(28,100),(29,100),(30,13),(31,113),(32,113),(33,99999),(34,113),(35,113),(36,113),(37,113),(38,113),(39,113),(40,113),(41,113),(42,113),(43,113),(44,113),(45,113),(46,113),(47,113),(48,113),(49,113),(50,113),(51,113),(55,115),(58,71),(59,99999),(60,122),(63,99),(66,124),(77,99999)],[(7,99),(8,98),(10,100),(11,113),(12,113),(13,113),(14,113),(15,113),(16,113),(17,113),(18,125),(19,125),(21,126),(24,113),(25,99999),(26,127),(27,98),(28,100),(29,100),(30,13),(31,113),(32,113),(33,99999),(34,113),(35,113),(36,113),(37,113),(38,113),(39,113),(40,113),(41,113),(42,113),(43,113),(44,113),(45,113),(46,113),(47,113),(48,113),(49,113),(50,113),(51,113),(52,114),(54,99999),(55,115),(58,71),(59,99999),(60,122),(63,99),(64,128),(65,113),(66,124),(67,129),(77,99999)],[(68,113),(69,130),(70,130),(71,130),(72,131),(73,99999),(74,132)],[(74,132)],[(73,99999)],[(75,100),(76,100)],[(7,2),(8,93),(10,94),(11,60),(12,60),(13,60),(14,60),(15,60),(16,60),(17,60),(18,95),(19,95),(21,96),(24,60),(25,99999),(26,97),(27,93),(28,94),(29,94),(30,4),(31,60),(32,60),(33,99999),(34,60),(35,60),(36,60),(37,60),(38,60),(39,60),(40,60),(41,60),(42,60),(43,60),(44,60),(45,60),(46,60),(47,60),(48,60),(49,60),(50,60),(51,60),(52,3),(54,99999),(55,61),(57,98),(58,62),(59,99999),(60,90),(63,2),(64,133),(65,60),(66,92),(67,134),(77,99999)],[(68,60),(69,135),(70,135),(71,135),(72,136),(73,99999),(74,137)],[(74,137)],[(73,99999)],[(75,94),(76,94)],[]]



-- Bytestring conversion functions
s2b_escape = U.fromString . stringToHtmlString
stringToHtmlString = concatMap fixChar
    where
      fixChar '<' = "&lt;"
      fixChar '>' = "&gt;"
      fixChar '&' = "&amp;"
      fixChar '"' = "&quot;"
      fixChar c   = [c]
html_escape c   = c
s2b = U.fromString
lt_byte = s2b "<"
gt_byte = s2b ">"
gts_byte = s2b " />"

-- | HTML document root type
data Ent = Html [Att0] [Ent0]
    deriving (Show)

data Att44 = Id_Att_44 B.ByteString  | Class_Att_44 B.ByteString  | Style_Att_44 B.ByteString  | Title_Att_44 B.ByteString  | Lang_Att_44 B.ByteString  | Dir_Att_44 B.ByteString  | Onclick_Att_44 B.ByteString  | Ondblclick_Att_44 B.ByteString  | Onmousedown_Att_44 B.ByteString  | Onmouseup_Att_44 B.ByteString  | Onmouseover_Att_44 B.ByteString  | Onmousemove_Att_44 B.ByteString  | Onmouseout_Att_44 B.ByteString  | Onkeypress_Att_44 B.ByteString  | Onkeydown_Att_44 B.ByteString  | Onkeyup_Att_44 B.ByteString  | Abbr_Att_44 B.ByteString  | Axis_Att_44 B.ByteString  | Headers_Att_44 B.ByteString  | Scope_Att_44 B.ByteString  | Rowspan_Att_44 B.ByteString  | Colspan_Att_44 B.ByteString  | Align_Att_44 B.ByteString  | Char_Att_44 B.ByteString  | Charoff_Att_44 B.ByteString  | Valign_Att_44 B.ByteString 
   deriving (Show)
data Att43 = Id_Att_43 B.ByteString  | Class_Att_43 B.ByteString  | Style_Att_43 B.ByteString  | Title_Att_43 B.ByteString  | Lang_Att_43 B.ByteString  | Dir_Att_43 B.ByteString  | Onclick_Att_43 B.ByteString  | Ondblclick_Att_43 B.ByteString  | Onmousedown_Att_43 B.ByteString  | Onmouseup_Att_43 B.ByteString  | Onmouseover_Att_43 B.ByteString  | Onmousemove_Att_43 B.ByteString  | Onmouseout_Att_43 B.ByteString  | Onkeypress_Att_43 B.ByteString  | Onkeydown_Att_43 B.ByteString  | Onkeyup_Att_43 B.ByteString  | Span_Att_43 B.ByteString  | Width_Att_43 B.ByteString  | Align_Att_43 B.ByteString  | Char_Att_43 B.ByteString  | Charoff_Att_43 B.ByteString  | Valign_Att_43 B.ByteString 
   deriving (Show)
data Att42 = Id_Att_42 B.ByteString  | Class_Att_42 B.ByteString  | Style_Att_42 B.ByteString  | Title_Att_42 B.ByteString  | Lang_Att_42 B.ByteString  | Dir_Att_42 B.ByteString  | Onclick_Att_42 B.ByteString  | Ondblclick_Att_42 B.ByteString  | Onmousedown_Att_42 B.ByteString  | Onmouseup_Att_42 B.ByteString  | Onmouseover_Att_42 B.ByteString  | Onmousemove_Att_42 B.ByteString  | Onmouseout_Att_42 B.ByteString  | Onkeypress_Att_42 B.ByteString  | Onkeydown_Att_42 B.ByteString  | Onkeyup_Att_42 B.ByteString  | Align_Att_42 B.ByteString  | Char_Att_42 B.ByteString  | Charoff_Att_42 B.ByteString  | Valign_Att_42 B.ByteString 
   deriving (Show)
data Att41 = Id_Att_41 B.ByteString  | Class_Att_41 B.ByteString  | Style_Att_41 B.ByteString  | Title_Att_41 B.ByteString  | Lang_Att_41 B.ByteString  | Dir_Att_41 B.ByteString  | Onclick_Att_41 B.ByteString  | Ondblclick_Att_41 B.ByteString  | Onmousedown_Att_41 B.ByteString  | Onmouseup_Att_41 B.ByteString  | Onmouseover_Att_41 B.ByteString  | Onmousemove_Att_41 B.ByteString  | Onmouseout_Att_41 B.ByteString  | Onkeypress_Att_41 B.ByteString  | Onkeydown_Att_41 B.ByteString  | Onkeyup_Att_41 B.ByteString  | Summary_Att_41 B.ByteString  | Width_Att_41 B.ByteString  | Border_Att_41 B.ByteString  | Frame_Att_41 B.ByteString  | Rules_Att_41 B.ByteString  | Cellspacing_Att_41 B.ByteString  | Cellpadding_Att_41 B.ByteString 
   deriving (Show)
data Att40 = Id_Att_40 B.ByteString  | Class_Att_40 B.ByteString  | Style_Att_40 B.ByteString  | Title_Att_40 B.ByteString  | Lang_Att_40 B.ByteString  | Dir_Att_40 B.ByteString  | Onclick_Att_40 B.ByteString  | Ondblclick_Att_40 B.ByteString  | Onmousedown_Att_40 B.ByteString  | Onmouseup_Att_40 B.ByteString  | Onmouseover_Att_40 B.ByteString  | Onmousemove_Att_40 B.ByteString  | Onmouseout_Att_40 B.ByteString  | Onkeypress_Att_40 B.ByteString  | Onkeydown_Att_40 B.ByteString  | Onkeyup_Att_40 B.ByteString  | Accesskey_Att_40 B.ByteString  | Tabindex_Att_40 B.ByteString  | Onfocus_Att_40 B.ByteString  | Onblur_Att_40 B.ByteString  | Name_Att_40 B.ByteString  | Value_Att_40 B.ByteString  | Type_Att_40 B.ByteString  | Disabled_Att_40 B.ByteString 
   deriving (Show)
data Att39 = Id_Att_39 B.ByteString  | Class_Att_39 B.ByteString  | Style_Att_39 B.ByteString  | Title_Att_39 B.ByteString  | Lang_Att_39 B.ByteString  | Dir_Att_39 B.ByteString  | Onclick_Att_39 B.ByteString  | Ondblclick_Att_39 B.ByteString  | Onmousedown_Att_39 B.ByteString  | Onmouseup_Att_39 B.ByteString  | Onmouseover_Att_39 B.ByteString  | Onmousemove_Att_39 B.ByteString  | Onmouseout_Att_39 B.ByteString  | Onkeypress_Att_39 B.ByteString  | Onkeydown_Att_39 B.ByteString  | Onkeyup_Att_39 B.ByteString  | Accesskey_Att_39 B.ByteString 
   deriving (Show)
data Att38 = Cols_Att_38 B.ByteString 
   deriving (Show)
data Att37 = Rows_Att_37 B.ByteString 
   deriving (Show)
data Att36 = Id_Att_36 B.ByteString  | Class_Att_36 B.ByteString  | Style_Att_36 B.ByteString  | Title_Att_36 B.ByteString  | Lang_Att_36 B.ByteString  | Dir_Att_36 B.ByteString  | Onclick_Att_36 B.ByteString  | Ondblclick_Att_36 B.ByteString  | Onmousedown_Att_36 B.ByteString  | Onmouseup_Att_36 B.ByteString  | Onmouseover_Att_36 B.ByteString  | Onmousemove_Att_36 B.ByteString  | Onmouseout_Att_36 B.ByteString  | Onkeypress_Att_36 B.ByteString  | Onkeydown_Att_36 B.ByteString  | Onkeyup_Att_36 B.ByteString  | Accesskey_Att_36 B.ByteString  | Tabindex_Att_36 B.ByteString  | Onfocus_Att_36 B.ByteString  | Onblur_Att_36 B.ByteString  | Name_Att_36 B.ByteString  | Rows_Att_36 B.ByteString  | Cols_Att_36 B.ByteString  | Disabled_Att_36 B.ByteString  | Readonly_Att_36 B.ByteString  | Onselect_Att_36 B.ByteString  | Onchange_Att_36 B.ByteString 
   deriving (Show)
data Att35 = Id_Att_35 B.ByteString  | Class_Att_35 B.ByteString  | Style_Att_35 B.ByteString  | Title_Att_35 B.ByteString  | Lang_Att_35 B.ByteString  | Dir_Att_35 B.ByteString  | Onclick_Att_35 B.ByteString  | Ondblclick_Att_35 B.ByteString  | Onmousedown_Att_35 B.ByteString  | Onmouseup_Att_35 B.ByteString  | Onmouseover_Att_35 B.ByteString  | Onmousemove_Att_35 B.ByteString  | Onmouseout_Att_35 B.ByteString  | Onkeypress_Att_35 B.ByteString  | Onkeydown_Att_35 B.ByteString  | Onkeyup_Att_35 B.ByteString  | Selected_Att_35 B.ByteString  | Disabled_Att_35 B.ByteString  | Label_Att_35 B.ByteString  | Value_Att_35 B.ByteString 
   deriving (Show)
data Att34 = Label_Att_34 B.ByteString 
   deriving (Show)
data Att33 = Id_Att_33 B.ByteString  | Class_Att_33 B.ByteString  | Style_Att_33 B.ByteString  | Title_Att_33 B.ByteString  | Lang_Att_33 B.ByteString  | Dir_Att_33 B.ByteString  | Onclick_Att_33 B.ByteString  | Ondblclick_Att_33 B.ByteString  | Onmousedown_Att_33 B.ByteString  | Onmouseup_Att_33 B.ByteString  | Onmouseover_Att_33 B.ByteString  | Onmousemove_Att_33 B.ByteString  | Onmouseout_Att_33 B.ByteString  | Onkeypress_Att_33 B.ByteString  | Onkeydown_Att_33 B.ByteString  | Onkeyup_Att_33 B.ByteString  | Disabled_Att_33 B.ByteString  | Label_Att_33 B.ByteString 
   deriving (Show)
data Att32 = Id_Att_32 B.ByteString  | Class_Att_32 B.ByteString  | Style_Att_32 B.ByteString  | Title_Att_32 B.ByteString  | Lang_Att_32 B.ByteString  | Dir_Att_32 B.ByteString  | Onclick_Att_32 B.ByteString  | Ondblclick_Att_32 B.ByteString  | Onmousedown_Att_32 B.ByteString  | Onmouseup_Att_32 B.ByteString  | Onmouseover_Att_32 B.ByteString  | Onmousemove_Att_32 B.ByteString  | Onmouseout_Att_32 B.ByteString  | Onkeypress_Att_32 B.ByteString  | Onkeydown_Att_32 B.ByteString  | Onkeyup_Att_32 B.ByteString  | Name_Att_32 B.ByteString  | Size_Att_32 B.ByteString  | Multiple_Att_32 B.ByteString  | Disabled_Att_32 B.ByteString  | Tabindex_Att_32 B.ByteString  | Onfocus_Att_32 B.ByteString  | Onblur_Att_32 B.ByteString  | Onchange_Att_32 B.ByteString 
   deriving (Show)
data Att31 = Id_Att_31 B.ByteString  | Class_Att_31 B.ByteString  | Style_Att_31 B.ByteString  | Title_Att_31 B.ByteString  | Lang_Att_31 B.ByteString  | Dir_Att_31 B.ByteString  | Onclick_Att_31 B.ByteString  | Ondblclick_Att_31 B.ByteString  | Onmousedown_Att_31 B.ByteString  | Onmouseup_Att_31 B.ByteString  | Onmouseover_Att_31 B.ByteString  | Onmousemove_Att_31 B.ByteString  | Onmouseout_Att_31 B.ByteString  | Onkeypress_Att_31 B.ByteString  | Onkeydown_Att_31 B.ByteString  | Onkeyup_Att_31 B.ByteString  | Accesskey_Att_31 B.ByteString  | Tabindex_Att_31 B.ByteString  | Onfocus_Att_31 B.ByteString  | Onblur_Att_31 B.ByteString  | Type_Att_31 B.ByteString  | Name_Att_31 B.ByteString  | Value_Att_31 B.ByteString  | Checked_Att_31 B.ByteString  | Disabled_Att_31 B.ByteString  | Readonly_Att_31 B.ByteString  | Size_Att_31 B.ByteString  | Maxlength_Att_31 B.ByteString  | Src_Att_31 B.ByteString  | Alt_Att_31 B.ByteString  | Usemap_Att_31 B.ByteString  | Onselect_Att_31 B.ByteString  | Onchange_Att_31 B.ByteString  | Accept_Att_31 B.ByteString 
   deriving (Show)
data Att30 = Id_Att_30 B.ByteString  | Class_Att_30 B.ByteString  | Style_Att_30 B.ByteString  | Title_Att_30 B.ByteString  | Lang_Att_30 B.ByteString  | Dir_Att_30 B.ByteString  | Onclick_Att_30 B.ByteString  | Ondblclick_Att_30 B.ByteString  | Onmousedown_Att_30 B.ByteString  | Onmouseup_Att_30 B.ByteString  | Onmouseover_Att_30 B.ByteString  | Onmousemove_Att_30 B.ByteString  | Onmouseout_Att_30 B.ByteString  | Onkeypress_Att_30 B.ByteString  | Onkeydown_Att_30 B.ByteString  | Onkeyup_Att_30 B.ByteString  | For_Att_30 B.ByteString  | Accesskey_Att_30 B.ByteString  | Onfocus_Att_30 B.ByteString  | Onblur_Att_30 B.ByteString 
   deriving (Show)
data Att29 = Action_Att_29 B.ByteString 
   deriving (Show)
data Att28 = Id_Att_28 B.ByteString  | Class_Att_28 B.ByteString  | Style_Att_28 B.ByteString  | Title_Att_28 B.ByteString  | Lang_Att_28 B.ByteString  | Dir_Att_28 B.ByteString  | Onclick_Att_28 B.ByteString  | Ondblclick_Att_28 B.ByteString  | Onmousedown_Att_28 B.ByteString  | Onmouseup_Att_28 B.ByteString  | Onmouseover_Att_28 B.ByteString  | Onmousemove_Att_28 B.ByteString  | Onmouseout_Att_28 B.ByteString  | Onkeypress_Att_28 B.ByteString  | Onkeydown_Att_28 B.ByteString  | Onkeyup_Att_28 B.ByteString  | Action_Att_28 B.ByteString  | Method_Att_28 B.ByteString  | Enctype_Att_28 B.ByteString  | Onsubmit_Att_28 B.ByteString  | Onreset_Att_28 B.ByteString  | Accept_Att_28 B.ByteString  | Accept_charset_Att_28 B.ByteString 
   deriving (Show)
data Att27 = Id_Att_27 B.ByteString  | Class_Att_27 B.ByteString  | Style_Att_27 B.ByteString  | Title_Att_27 B.ByteString  | Lang_Att_27 B.ByteString  | Dir_Att_27 B.ByteString  | Onclick_Att_27 B.ByteString  | Ondblclick_Att_27 B.ByteString  | Onmousedown_Att_27 B.ByteString  | Onmouseup_Att_27 B.ByteString  | Onmouseover_Att_27 B.ByteString  | Onmousemove_Att_27 B.ByteString  | Onmouseout_Att_27 B.ByteString  | Onkeypress_Att_27 B.ByteString  | Onkeydown_Att_27 B.ByteString  | Onkeyup_Att_27 B.ByteString  | Accesskey_Att_27 B.ByteString  | Tabindex_Att_27 B.ByteString  | Onfocus_Att_27 B.ByteString  | Onblur_Att_27 B.ByteString  | Shape_Att_27 B.ByteString  | Coords_Att_27 B.ByteString  | Href_Att_27 B.ByteString  | Nohref_Att_27 B.ByteString  | Alt_Att_27 B.ByteString 
   deriving (Show)
data Att26 = Id_Att_26 B.ByteString 
   deriving (Show)
data Att25 = Lang_Att_25 B.ByteString  | Dir_Att_25 B.ByteString  | Onclick_Att_25 B.ByteString  | Ondblclick_Att_25 B.ByteString  | Onmousedown_Att_25 B.ByteString  | Onmouseup_Att_25 B.ByteString  | Onmouseover_Att_25 B.ByteString  | Onmousemove_Att_25 B.ByteString  | Onmouseout_Att_25 B.ByteString  | Onkeypress_Att_25 B.ByteString  | Onkeydown_Att_25 B.ByteString  | Onkeyup_Att_25 B.ByteString  | Id_Att_25 B.ByteString  | Class_Att_25 B.ByteString  | Style_Att_25 B.ByteString  | Title_Att_25 B.ByteString  | Name_Att_25 B.ByteString 
   deriving (Show)
data Att24 = Alt_Att_24 B.ByteString 
   deriving (Show)
data Att23 = Src_Att_23 B.ByteString 
   deriving (Show)
data Att22 = Id_Att_22 B.ByteString  | Class_Att_22 B.ByteString  | Style_Att_22 B.ByteString  | Title_Att_22 B.ByteString  | Lang_Att_22 B.ByteString  | Dir_Att_22 B.ByteString  | Onclick_Att_22 B.ByteString  | Ondblclick_Att_22 B.ByteString  | Onmousedown_Att_22 B.ByteString  | Onmouseup_Att_22 B.ByteString  | Onmouseover_Att_22 B.ByteString  | Onmousemove_Att_22 B.ByteString  | Onmouseout_Att_22 B.ByteString  | Onkeypress_Att_22 B.ByteString  | Onkeydown_Att_22 B.ByteString  | Onkeyup_Att_22 B.ByteString  | Src_Att_22 B.ByteString  | Alt_Att_22 B.ByteString  | Longdesc_Att_22 B.ByteString  | Height_Att_22 B.ByteString  | Width_Att_22 B.ByteString  | Usemap_Att_22 B.ByteString  | Ismap_Att_22 B.ByteString 
   deriving (Show)
data Att21 = Id_Att_21 B.ByteString  | Name_Att_21 B.ByteString  | Value_Att_21 B.ByteString  | Valuetype_Att_21 B.ByteString  | Type_Att_21 B.ByteString 
   deriving (Show)
data Att20 = Id_Att_20 B.ByteString  | Class_Att_20 B.ByteString  | Style_Att_20 B.ByteString  | Title_Att_20 B.ByteString  | Lang_Att_20 B.ByteString  | Dir_Att_20 B.ByteString  | Onclick_Att_20 B.ByteString  | Ondblclick_Att_20 B.ByteString  | Onmousedown_Att_20 B.ByteString  | Onmouseup_Att_20 B.ByteString  | Onmouseover_Att_20 B.ByteString  | Onmousemove_Att_20 B.ByteString  | Onmouseout_Att_20 B.ByteString  | Onkeypress_Att_20 B.ByteString  | Onkeydown_Att_20 B.ByteString  | Onkeyup_Att_20 B.ByteString  | Declare_Att_20 B.ByteString  | Classid_Att_20 B.ByteString  | Codebase_Att_20 B.ByteString  | Data_Att_20 B.ByteString  | Type_Att_20 B.ByteString  | Codetype_Att_20 B.ByteString  | Archive_Att_20 B.ByteString  | Standby_Att_20 B.ByteString  | Height_Att_20 B.ByteString  | Width_Att_20 B.ByteString  | Usemap_Att_20 B.ByteString  | Name_Att_20 B.ByteString  | Tabindex_Att_20 B.ByteString 
   deriving (Show)
data Att19 = Id_Att_19 B.ByteString  | Class_Att_19 B.ByteString  | Style_Att_19 B.ByteString  | Title_Att_19 B.ByteString 
   deriving (Show)
data Att18 = Dir_Att_18 B.ByteString 
   deriving (Show)
data Att17 = Id_Att_17 B.ByteString  | Class_Att_17 B.ByteString  | Style_Att_17 B.ByteString  | Title_Att_17 B.ByteString  | Onclick_Att_17 B.ByteString  | Ondblclick_Att_17 B.ByteString  | Onmousedown_Att_17 B.ByteString  | Onmouseup_Att_17 B.ByteString  | Onmouseover_Att_17 B.ByteString  | Onmousemove_Att_17 B.ByteString  | Onmouseout_Att_17 B.ByteString  | Onkeypress_Att_17 B.ByteString  | Onkeydown_Att_17 B.ByteString  | Onkeyup_Att_17 B.ByteString  | Lang_Att_17 B.ByteString  | Dir_Att_17 B.ByteString 
   deriving (Show)
data Att16 = Id_Att_16 B.ByteString  | Class_Att_16 B.ByteString  | Style_Att_16 B.ByteString  | Title_Att_16 B.ByteString  | Lang_Att_16 B.ByteString  | Dir_Att_16 B.ByteString  | Onclick_Att_16 B.ByteString  | Ondblclick_Att_16 B.ByteString  | Onmousedown_Att_16 B.ByteString  | Onmouseup_Att_16 B.ByteString  | Onmouseover_Att_16 B.ByteString  | Onmousemove_Att_16 B.ByteString  | Onmouseout_Att_16 B.ByteString  | Onkeypress_Att_16 B.ByteString  | Onkeydown_Att_16 B.ByteString  | Onkeyup_Att_16 B.ByteString  | Accesskey_Att_16 B.ByteString  | Tabindex_Att_16 B.ByteString  | Onfocus_Att_16 B.ByteString  | Onblur_Att_16 B.ByteString  | Charset_Att_16 B.ByteString  | Type_Att_16 B.ByteString  | Name_Att_16 B.ByteString  | Href_Att_16 B.ByteString  | Hreflang_Att_16 B.ByteString  | Rel_Att_16 B.ByteString  | Rev_Att_16 B.ByteString  | Shape_Att_16 B.ByteString  | Coords_Att_16 B.ByteString 
   deriving (Show)
data Att15 = Id_Att_15 B.ByteString  | Class_Att_15 B.ByteString  | Style_Att_15 B.ByteString  | Title_Att_15 B.ByteString  | Lang_Att_15 B.ByteString  | Dir_Att_15 B.ByteString  | Onclick_Att_15 B.ByteString  | Ondblclick_Att_15 B.ByteString  | Onmousedown_Att_15 B.ByteString  | Onmouseup_Att_15 B.ByteString  | Onmouseover_Att_15 B.ByteString  | Onmousemove_Att_15 B.ByteString  | Onmouseout_Att_15 B.ByteString  | Onkeypress_Att_15 B.ByteString  | Onkeydown_Att_15 B.ByteString  | Onkeyup_Att_15 B.ByteString  | Cite_Att_15 B.ByteString  | Datetime_Att_15 B.ByteString 
   deriving (Show)
data Att14 = Id_Att_14 B.ByteString  | Class_Att_14 B.ByteString  | Style_Att_14 B.ByteString  | Title_Att_14 B.ByteString  | Lang_Att_14 B.ByteString  | Dir_Att_14 B.ByteString  | Onclick_Att_14 B.ByteString  | Ondblclick_Att_14 B.ByteString  | Onmousedown_Att_14 B.ByteString  | Onmouseup_Att_14 B.ByteString  | Onmouseover_Att_14 B.ByteString  | Onmousemove_Att_14 B.ByteString  | Onmouseout_Att_14 B.ByteString  | Onkeypress_Att_14 B.ByteString  | Onkeydown_Att_14 B.ByteString  | Onkeyup_Att_14 B.ByteString  | Cite_Att_14 B.ByteString 
   deriving (Show)
data Att13 = Id_Att_13 B.ByteString  | Class_Att_13 B.ByteString  | Style_Att_13 B.ByteString  | Title_Att_13 B.ByteString  | Lang_Att_13 B.ByteString  | Dir_Att_13 B.ByteString  | Onclick_Att_13 B.ByteString  | Ondblclick_Att_13 B.ByteString  | Onmousedown_Att_13 B.ByteString  | Onmouseup_Att_13 B.ByteString  | Onmouseover_Att_13 B.ByteString  | Onmousemove_Att_13 B.ByteString  | Onmouseout_Att_13 B.ByteString  | Onkeypress_Att_13 B.ByteString  | Onkeydown_Att_13 B.ByteString  | Onkeyup_Att_13 B.ByteString  | Space_Att_13 B.ByteString 
   deriving (Show)
data Att12 = Id_Att_12 B.ByteString  | Class_Att_12 B.ByteString  | Style_Att_12 B.ByteString  | Title_Att_12 B.ByteString  | Lang_Att_12 B.ByteString  | Dir_Att_12 B.ByteString  | Onclick_Att_12 B.ByteString  | Ondblclick_Att_12 B.ByteString  | Onmousedown_Att_12 B.ByteString  | Onmouseup_Att_12 B.ByteString  | Onmouseover_Att_12 B.ByteString  | Onmousemove_Att_12 B.ByteString  | Onmouseout_Att_12 B.ByteString  | Onkeypress_Att_12 B.ByteString  | Onkeydown_Att_12 B.ByteString  | Onkeyup_Att_12 B.ByteString  | Onload_Att_12 B.ByteString  | Onunload_Att_12 B.ByteString 
   deriving (Show)
data Att11 = Id_Att_11 B.ByteString  | Class_Att_11 B.ByteString  | Style_Att_11 B.ByteString  | Title_Att_11 B.ByteString  | Lang_Att_11 B.ByteString  | Dir_Att_11 B.ByteString  | Onclick_Att_11 B.ByteString  | Ondblclick_Att_11 B.ByteString  | Onmousedown_Att_11 B.ByteString  | Onmouseup_Att_11 B.ByteString  | Onmouseover_Att_11 B.ByteString  | Onmousemove_Att_11 B.ByteString  | Onmouseout_Att_11 B.ByteString  | Onkeypress_Att_11 B.ByteString  | Onkeydown_Att_11 B.ByteString  | Onkeyup_Att_11 B.ByteString 
   deriving (Show)
data Att10 = Id_Att_10 B.ByteString  | Charset_Att_10 B.ByteString  | Type_Att_10 B.ByteString  | Src_Att_10 B.ByteString  | Defer_Att_10 B.ByteString  | Space_Att_10 B.ByteString 
   deriving (Show)
data Att9 = Type_Att_9 B.ByteString 
   deriving (Show)
data Att8 = Lang_Att_8 B.ByteString  | Dir_Att_8 B.ByteString  | Id_Att_8 B.ByteString  | Type_Att_8 B.ByteString  | Media_Att_8 B.ByteString  | Title_Att_8 B.ByteString  | Space_Att_8 B.ByteString 
   deriving (Show)
data Att7 = Id_Att_7 B.ByteString  | Class_Att_7 B.ByteString  | Style_Att_7 B.ByteString  | Title_Att_7 B.ByteString  | Lang_Att_7 B.ByteString  | Dir_Att_7 B.ByteString  | Onclick_Att_7 B.ByteString  | Ondblclick_Att_7 B.ByteString  | Onmousedown_Att_7 B.ByteString  | Onmouseup_Att_7 B.ByteString  | Onmouseover_Att_7 B.ByteString  | Onmousemove_Att_7 B.ByteString  | Onmouseout_Att_7 B.ByteString  | Onkeypress_Att_7 B.ByteString  | Onkeydown_Att_7 B.ByteString  | Onkeyup_Att_7 B.ByteString  | Charset_Att_7 B.ByteString  | Href_Att_7 B.ByteString  | Hreflang_Att_7 B.ByteString  | Type_Att_7 B.ByteString  | Rel_Att_7 B.ByteString  | Rev_Att_7 B.ByteString  | Media_Att_7 B.ByteString 
   deriving (Show)
data Att6 = Content_Att_6 B.ByteString 
   deriving (Show)
data Att5 = Lang_Att_5 B.ByteString  | Dir_Att_5 B.ByteString  | Id_Att_5 B.ByteString  | Http_equiv_Att_5 B.ByteString  | Name_Att_5 B.ByteString  | Content_Att_5 B.ByteString  | Scheme_Att_5 B.ByteString 
   deriving (Show)
data Att4 = Href_Att_4 B.ByteString 
   deriving (Show)
data Att3 = Href_Att_3 B.ByteString  | Id_Att_3 B.ByteString 
   deriving (Show)
data Att2 = Lang_Att_2 B.ByteString  | Dir_Att_2 B.ByteString  | Id_Att_2 B.ByteString 
   deriving (Show)
data Att1 = Lang_Att_1 B.ByteString  | Dir_Att_1 B.ByteString  | Id_Att_1 B.ByteString  | Profile_Att_1 B.ByteString 
   deriving (Show)
data Att0 = Lang_Att_0 B.ByteString  | Dir_Att_0 B.ByteString  | Id_Att_0 B.ByteString  | Xmlns_Att_0 B.ByteString 
   deriving (Show)

data ValuetypeEnum = Data | Ref | Object
instance Show ValuetypeEnum where
    show Text.CHXHtml.XHtml1_strict.Data="data"
    show Text.CHXHtml.XHtml1_strict.Ref="ref"
    show Text.CHXHtml.XHtml1_strict.Object="object"
data RulesEnum = None | Groups | Rows | Cols | All
instance Show RulesEnum where
    show Text.CHXHtml.XHtml1_strict.None="none"
    show Text.CHXHtml.XHtml1_strict.Groups="groups"
    show Text.CHXHtml.XHtml1_strict.Rows="rows"
    show Text.CHXHtml.XHtml1_strict.Cols="cols"
    show Text.CHXHtml.XHtml1_strict.All="all"
data ShapeEnum = Rect | Circle | Poly | Default
instance Show ShapeEnum where
    show Text.CHXHtml.XHtml1_strict.Rect="rect"
    show Text.CHXHtml.XHtml1_strict.Circle="circle"
    show Text.CHXHtml.XHtml1_strict.Poly="poly"
    show Text.CHXHtml.XHtml1_strict.Default="default"
data MethodEnum = Get | Post
instance Show MethodEnum where
    show Text.CHXHtml.XHtml1_strict.Get="get"
    show Text.CHXHtml.XHtml1_strict.Post="post"
data DirEnum = Ltr | Rtl
instance Show DirEnum where
    show Text.CHXHtml.XHtml1_strict.Ltr="ltr"
    show Text.CHXHtml.XHtml1_strict.Rtl="rtl"
data FrameEnum = Void | Above | Below | Hsides | Lhs | Rhs | Vsides | Box | Border
instance Show FrameEnum where
    show Text.CHXHtml.XHtml1_strict.Void="void"
    show Text.CHXHtml.XHtml1_strict.Above="above"
    show Text.CHXHtml.XHtml1_strict.Below="below"
    show Text.CHXHtml.XHtml1_strict.Hsides="hsides"
    show Text.CHXHtml.XHtml1_strict.Lhs="lhs"
    show Text.CHXHtml.XHtml1_strict.Rhs="rhs"
    show Text.CHXHtml.XHtml1_strict.Vsides="vsides"
    show Text.CHXHtml.XHtml1_strict.Box="box"
    show Text.CHXHtml.XHtml1_strict.Border="border"
data ValignEnum = Top | Middle | Bottom | Baseline
instance Show ValignEnum where
    show Text.CHXHtml.XHtml1_strict.Top="top"
    show Text.CHXHtml.XHtml1_strict.Middle="middle"
    show Text.CHXHtml.XHtml1_strict.Bottom="bottom"
    show Text.CHXHtml.XHtml1_strict.Baseline="baseline"
data AlignEnum = Left | Center | Right | Justify | Char
instance Show AlignEnum where
    show Text.CHXHtml.XHtml1_strict.Left="left"
    show Text.CHXHtml.XHtml1_strict.Center="center"
    show Text.CHXHtml.XHtml1_strict.Right="right"
    show Text.CHXHtml.XHtml1_strict.Justify="justify"
    show Text.CHXHtml.XHtml1_strict.Char="char"
data ScopeEnum = Row | Col | Rowgroup | Colgroup
instance Show ScopeEnum where
    show Text.CHXHtml.XHtml1_strict.Row="row"
    show Text.CHXHtml.XHtml1_strict.Col="col"
    show Text.CHXHtml.XHtml1_strict.Rowgroup="rowgroup"
    show Text.CHXHtml.XHtml1_strict.Colgroup="colgroup"

class A_Http_equiv a where
    http_equiv_att :: String -> a
    http_equiv_att_bs :: B.ByteString -> a
instance A_Http_equiv Att5 where
    http_equiv_att s =  Http_equiv_Att_5 (s2b_escape s)
    http_equiv_att_bs =  Http_equiv_Att_5 

class A_Content a where
    content_att :: String -> a
    content_att_bs :: B.ByteString -> a
instance A_Content Att6 where
    content_att s =  Content_Att_6 (s2b_escape s)
    content_att_bs =  Content_Att_6 
instance A_Content Att5 where
    content_att s =  Content_Att_5 (s2b_escape s)
    content_att_bs =  Content_Att_5 

class A_Nohref a where
    nohref_att :: String -> a
instance A_Nohref Att27 where
    nohref_att s =  Nohref_Att_27 (s2b (show s))

class A_Onkeydown a where
    onkeydown_att :: String -> a
    onkeydown_att_bs :: B.ByteString -> a
instance A_Onkeydown Att44 where
    onkeydown_att s =  Onkeydown_Att_44 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_44 
instance A_Onkeydown Att43 where
    onkeydown_att s =  Onkeydown_Att_43 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_43 
instance A_Onkeydown Att42 where
    onkeydown_att s =  Onkeydown_Att_42 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_42 
instance A_Onkeydown Att41 where
    onkeydown_att s =  Onkeydown_Att_41 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_41 
instance A_Onkeydown Att40 where
    onkeydown_att s =  Onkeydown_Att_40 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_40 
instance A_Onkeydown Att39 where
    onkeydown_att s =  Onkeydown_Att_39 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_39 
instance A_Onkeydown Att36 where
    onkeydown_att s =  Onkeydown_Att_36 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_36 
instance A_Onkeydown Att35 where
    onkeydown_att s =  Onkeydown_Att_35 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_35 
instance A_Onkeydown Att33 where
    onkeydown_att s =  Onkeydown_Att_33 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_33 
instance A_Onkeydown Att32 where
    onkeydown_att s =  Onkeydown_Att_32 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_32 
instance A_Onkeydown Att31 where
    onkeydown_att s =  Onkeydown_Att_31 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_31 
instance A_Onkeydown Att30 where
    onkeydown_att s =  Onkeydown_Att_30 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_30 
instance A_Onkeydown Att28 where
    onkeydown_att s =  Onkeydown_Att_28 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_28 
instance A_Onkeydown Att27 where
    onkeydown_att s =  Onkeydown_Att_27 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_27 
instance A_Onkeydown Att25 where
    onkeydown_att s =  Onkeydown_Att_25 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_25 
instance A_Onkeydown Att22 where
    onkeydown_att s =  Onkeydown_Att_22 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_22 
instance A_Onkeydown Att20 where
    onkeydown_att s =  Onkeydown_Att_20 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_20 
instance A_Onkeydown Att17 where
    onkeydown_att s =  Onkeydown_Att_17 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_17 
instance A_Onkeydown Att16 where
    onkeydown_att s =  Onkeydown_Att_16 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_16 
instance A_Onkeydown Att15 where
    onkeydown_att s =  Onkeydown_Att_15 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_15 
instance A_Onkeydown Att14 where
    onkeydown_att s =  Onkeydown_Att_14 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_14 
instance A_Onkeydown Att13 where
    onkeydown_att s =  Onkeydown_Att_13 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_13 
instance A_Onkeydown Att12 where
    onkeydown_att s =  Onkeydown_Att_12 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_12 
instance A_Onkeydown Att11 where
    onkeydown_att s =  Onkeydown_Att_11 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_11 
instance A_Onkeydown Att7 where
    onkeydown_att s =  Onkeydown_Att_7 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_7 

class A_Onkeyup a where
    onkeyup_att :: String -> a
    onkeyup_att_bs :: B.ByteString -> a
instance A_Onkeyup Att44 where
    onkeyup_att s =  Onkeyup_Att_44 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_44 
instance A_Onkeyup Att43 where
    onkeyup_att s =  Onkeyup_Att_43 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_43 
instance A_Onkeyup Att42 where
    onkeyup_att s =  Onkeyup_Att_42 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_42 
instance A_Onkeyup Att41 where
    onkeyup_att s =  Onkeyup_Att_41 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_41 
instance A_Onkeyup Att40 where
    onkeyup_att s =  Onkeyup_Att_40 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_40 
instance A_Onkeyup Att39 where
    onkeyup_att s =  Onkeyup_Att_39 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_39 
instance A_Onkeyup Att36 where
    onkeyup_att s =  Onkeyup_Att_36 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_36 
instance A_Onkeyup Att35 where
    onkeyup_att s =  Onkeyup_Att_35 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_35 
instance A_Onkeyup Att33 where
    onkeyup_att s =  Onkeyup_Att_33 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_33 
instance A_Onkeyup Att32 where
    onkeyup_att s =  Onkeyup_Att_32 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_32 
instance A_Onkeyup Att31 where
    onkeyup_att s =  Onkeyup_Att_31 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_31 
instance A_Onkeyup Att30 where
    onkeyup_att s =  Onkeyup_Att_30 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_30 
instance A_Onkeyup Att28 where
    onkeyup_att s =  Onkeyup_Att_28 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_28 
instance A_Onkeyup Att27 where
    onkeyup_att s =  Onkeyup_Att_27 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_27 
instance A_Onkeyup Att25 where
    onkeyup_att s =  Onkeyup_Att_25 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_25 
instance A_Onkeyup Att22 where
    onkeyup_att s =  Onkeyup_Att_22 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_22 
instance A_Onkeyup Att20 where
    onkeyup_att s =  Onkeyup_Att_20 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_20 
instance A_Onkeyup Att17 where
    onkeyup_att s =  Onkeyup_Att_17 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_17 
instance A_Onkeyup Att16 where
    onkeyup_att s =  Onkeyup_Att_16 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_16 
instance A_Onkeyup Att15 where
    onkeyup_att s =  Onkeyup_Att_15 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_15 
instance A_Onkeyup Att14 where
    onkeyup_att s =  Onkeyup_Att_14 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_14 
instance A_Onkeyup Att13 where
    onkeyup_att s =  Onkeyup_Att_13 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_13 
instance A_Onkeyup Att12 where
    onkeyup_att s =  Onkeyup_Att_12 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_12 
instance A_Onkeyup Att11 where
    onkeyup_att s =  Onkeyup_Att_11 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_11 
instance A_Onkeyup Att7 where
    onkeyup_att s =  Onkeyup_Att_7 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_7 

class A_Onreset a where
    onreset_att :: String -> a
    onreset_att_bs :: B.ByteString -> a
instance A_Onreset Att28 where
    onreset_att s =  Onreset_Att_28 (s2b_escape s)
    onreset_att_bs =  Onreset_Att_28 

class A_Onmouseup a where
    onmouseup_att :: String -> a
    onmouseup_att_bs :: B.ByteString -> a
instance A_Onmouseup Att44 where
    onmouseup_att s =  Onmouseup_Att_44 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_44 
instance A_Onmouseup Att43 where
    onmouseup_att s =  Onmouseup_Att_43 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_43 
instance A_Onmouseup Att42 where
    onmouseup_att s =  Onmouseup_Att_42 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_42 
instance A_Onmouseup Att41 where
    onmouseup_att s =  Onmouseup_Att_41 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_41 
instance A_Onmouseup Att40 where
    onmouseup_att s =  Onmouseup_Att_40 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_40 
instance A_Onmouseup Att39 where
    onmouseup_att s =  Onmouseup_Att_39 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_39 
instance A_Onmouseup Att36 where
    onmouseup_att s =  Onmouseup_Att_36 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_36 
instance A_Onmouseup Att35 where
    onmouseup_att s =  Onmouseup_Att_35 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_35 
instance A_Onmouseup Att33 where
    onmouseup_att s =  Onmouseup_Att_33 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_33 
instance A_Onmouseup Att32 where
    onmouseup_att s =  Onmouseup_Att_32 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_32 
instance A_Onmouseup Att31 where
    onmouseup_att s =  Onmouseup_Att_31 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_31 
instance A_Onmouseup Att30 where
    onmouseup_att s =  Onmouseup_Att_30 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_30 
instance A_Onmouseup Att28 where
    onmouseup_att s =  Onmouseup_Att_28 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_28 
instance A_Onmouseup Att27 where
    onmouseup_att s =  Onmouseup_Att_27 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_27 
instance A_Onmouseup Att25 where
    onmouseup_att s =  Onmouseup_Att_25 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_25 
instance A_Onmouseup Att22 where
    onmouseup_att s =  Onmouseup_Att_22 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_22 
instance A_Onmouseup Att20 where
    onmouseup_att s =  Onmouseup_Att_20 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_20 
instance A_Onmouseup Att17 where
    onmouseup_att s =  Onmouseup_Att_17 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_17 
instance A_Onmouseup Att16 where
    onmouseup_att s =  Onmouseup_Att_16 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_16 
instance A_Onmouseup Att15 where
    onmouseup_att s =  Onmouseup_Att_15 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_15 
instance A_Onmouseup Att14 where
    onmouseup_att s =  Onmouseup_Att_14 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_14 
instance A_Onmouseup Att13 where
    onmouseup_att s =  Onmouseup_Att_13 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_13 
instance A_Onmouseup Att12 where
    onmouseup_att s =  Onmouseup_Att_12 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_12 
instance A_Onmouseup Att11 where
    onmouseup_att s =  Onmouseup_Att_11 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_11 
instance A_Onmouseup Att7 where
    onmouseup_att s =  Onmouseup_Att_7 (s2b_escape s)
    onmouseup_att_bs =  Onmouseup_Att_7 

class A_Scope a where
    scope_att :: ScopeEnum -> a
instance A_Scope Att44 where
    scope_att s =  Scope_Att_44 (s2b (show s))

class A_Onmouseover a where
    onmouseover_att :: String -> a
    onmouseover_att_bs :: B.ByteString -> a
instance A_Onmouseover Att44 where
    onmouseover_att s =  Onmouseover_Att_44 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_44 
instance A_Onmouseover Att43 where
    onmouseover_att s =  Onmouseover_Att_43 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_43 
instance A_Onmouseover Att42 where
    onmouseover_att s =  Onmouseover_Att_42 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_42 
instance A_Onmouseover Att41 where
    onmouseover_att s =  Onmouseover_Att_41 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_41 
instance A_Onmouseover Att40 where
    onmouseover_att s =  Onmouseover_Att_40 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_40 
instance A_Onmouseover Att39 where
    onmouseover_att s =  Onmouseover_Att_39 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_39 
instance A_Onmouseover Att36 where
    onmouseover_att s =  Onmouseover_Att_36 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_36 
instance A_Onmouseover Att35 where
    onmouseover_att s =  Onmouseover_Att_35 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_35 
instance A_Onmouseover Att33 where
    onmouseover_att s =  Onmouseover_Att_33 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_33 
instance A_Onmouseover Att32 where
    onmouseover_att s =  Onmouseover_Att_32 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_32 
instance A_Onmouseover Att31 where
    onmouseover_att s =  Onmouseover_Att_31 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_31 
instance A_Onmouseover Att30 where
    onmouseover_att s =  Onmouseover_Att_30 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_30 
instance A_Onmouseover Att28 where
    onmouseover_att s =  Onmouseover_Att_28 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_28 
instance A_Onmouseover Att27 where
    onmouseover_att s =  Onmouseover_Att_27 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_27 
instance A_Onmouseover Att25 where
    onmouseover_att s =  Onmouseover_Att_25 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_25 
instance A_Onmouseover Att22 where
    onmouseover_att s =  Onmouseover_Att_22 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_22 
instance A_Onmouseover Att20 where
    onmouseover_att s =  Onmouseover_Att_20 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_20 
instance A_Onmouseover Att17 where
    onmouseover_att s =  Onmouseover_Att_17 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_17 
instance A_Onmouseover Att16 where
    onmouseover_att s =  Onmouseover_Att_16 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_16 
instance A_Onmouseover Att15 where
    onmouseover_att s =  Onmouseover_Att_15 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_15 
instance A_Onmouseover Att14 where
    onmouseover_att s =  Onmouseover_Att_14 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_14 
instance A_Onmouseover Att13 where
    onmouseover_att s =  Onmouseover_Att_13 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_13 
instance A_Onmouseover Att12 where
    onmouseover_att s =  Onmouseover_Att_12 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_12 
instance A_Onmouseover Att11 where
    onmouseover_att s =  Onmouseover_Att_11 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_11 
instance A_Onmouseover Att7 where
    onmouseover_att s =  Onmouseover_Att_7 (s2b_escape s)
    onmouseover_att_bs =  Onmouseover_Att_7 

class A_Align a where
    align_att :: AlignEnum -> a
instance A_Align Att44 where
    align_att s =  Align_Att_44 (s2b (show s))
instance A_Align Att43 where
    align_att s =  Align_Att_43 (s2b (show s))
instance A_Align Att42 where
    align_att s =  Align_Att_42 (s2b (show s))

class A_Lang a where
    lang_att :: String -> a
    lang_att_bs :: B.ByteString -> a
instance A_Lang Att44 where
    lang_att s =  Lang_Att_44 (s2b_escape s)
    lang_att_bs =  Lang_Att_44 
instance A_Lang Att43 where
    lang_att s =  Lang_Att_43 (s2b_escape s)
    lang_att_bs =  Lang_Att_43 
instance A_Lang Att42 where
    lang_att s =  Lang_Att_42 (s2b_escape s)
    lang_att_bs =  Lang_Att_42 
instance A_Lang Att41 where
    lang_att s =  Lang_Att_41 (s2b_escape s)
    lang_att_bs =  Lang_Att_41 
instance A_Lang Att40 where
    lang_att s =  Lang_Att_40 (s2b_escape s)
    lang_att_bs =  Lang_Att_40 
instance A_Lang Att39 where
    lang_att s =  Lang_Att_39 (s2b_escape s)
    lang_att_bs =  Lang_Att_39 
instance A_Lang Att36 where
    lang_att s =  Lang_Att_36 (s2b_escape s)
    lang_att_bs =  Lang_Att_36 
instance A_Lang Att35 where
    lang_att s =  Lang_Att_35 (s2b_escape s)
    lang_att_bs =  Lang_Att_35 
instance A_Lang Att33 where
    lang_att s =  Lang_Att_33 (s2b_escape s)
    lang_att_bs =  Lang_Att_33 
instance A_Lang Att32 where
    lang_att s =  Lang_Att_32 (s2b_escape s)
    lang_att_bs =  Lang_Att_32 
instance A_Lang Att31 where
    lang_att s =  Lang_Att_31 (s2b_escape s)
    lang_att_bs =  Lang_Att_31 
instance A_Lang Att30 where
    lang_att s =  Lang_Att_30 (s2b_escape s)
    lang_att_bs =  Lang_Att_30 
instance A_Lang Att28 where
    lang_att s =  Lang_Att_28 (s2b_escape s)
    lang_att_bs =  Lang_Att_28 
instance A_Lang Att27 where
    lang_att s =  Lang_Att_27 (s2b_escape s)
    lang_att_bs =  Lang_Att_27 
instance A_Lang Att25 where
    lang_att s =  Lang_Att_25 (s2b_escape s)
    lang_att_bs =  Lang_Att_25 
instance A_Lang Att22 where
    lang_att s =  Lang_Att_22 (s2b_escape s)
    lang_att_bs =  Lang_Att_22 
instance A_Lang Att20 where
    lang_att s =  Lang_Att_20 (s2b_escape s)
    lang_att_bs =  Lang_Att_20 
instance A_Lang Att17 where
    lang_att s =  Lang_Att_17 (s2b_escape s)
    lang_att_bs =  Lang_Att_17 
instance A_Lang Att16 where
    lang_att s =  Lang_Att_16 (s2b_escape s)
    lang_att_bs =  Lang_Att_16 
instance A_Lang Att15 where
    lang_att s =  Lang_Att_15 (s2b_escape s)
    lang_att_bs =  Lang_Att_15 
instance A_Lang Att14 where
    lang_att s =  Lang_Att_14 (s2b_escape s)
    lang_att_bs =  Lang_Att_14 
instance A_Lang Att13 where
    lang_att s =  Lang_Att_13 (s2b_escape s)
    lang_att_bs =  Lang_Att_13 
instance A_Lang Att12 where
    lang_att s =  Lang_Att_12 (s2b_escape s)
    lang_att_bs =  Lang_Att_12 
instance A_Lang Att11 where
    lang_att s =  Lang_Att_11 (s2b_escape s)
    lang_att_bs =  Lang_Att_11 
instance A_Lang Att8 where
    lang_att s =  Lang_Att_8 (s2b_escape s)
    lang_att_bs =  Lang_Att_8 
instance A_Lang Att7 where
    lang_att s =  Lang_Att_7 (s2b_escape s)
    lang_att_bs =  Lang_Att_7 
instance A_Lang Att5 where
    lang_att s =  Lang_Att_5 (s2b_escape s)
    lang_att_bs =  Lang_Att_5 
instance A_Lang Att2 where
    lang_att s =  Lang_Att_2 (s2b_escape s)
    lang_att_bs =  Lang_Att_2 
instance A_Lang Att1 where
    lang_att s =  Lang_Att_1 (s2b_escape s)
    lang_att_bs =  Lang_Att_1 
instance A_Lang Att0 where
    lang_att s =  Lang_Att_0 (s2b_escape s)
    lang_att_bs =  Lang_Att_0 

class A_Valign a where
    valign_att :: ValignEnum -> a
instance A_Valign Att44 where
    valign_att s =  Valign_Att_44 (s2b (show s))
instance A_Valign Att43 where
    valign_att s =  Valign_Att_43 (s2b (show s))
instance A_Valign Att42 where
    valign_att s =  Valign_Att_42 (s2b (show s))

class A_Name a where
    name_att :: String -> a
    name_att_bs :: B.ByteString -> a
instance A_Name Att40 where
    name_att s =  Name_Att_40 (s2b_escape s)
    name_att_bs =  Name_Att_40 
instance A_Name Att36 where
    name_att s =  Name_Att_36 (s2b_escape s)
    name_att_bs =  Name_Att_36 
instance A_Name Att32 where
    name_att s =  Name_Att_32 (s2b_escape s)
    name_att_bs =  Name_Att_32 
instance A_Name Att31 where
    name_att s =  Name_Att_31 (s2b_escape s)
    name_att_bs =  Name_Att_31 
instance A_Name Att25 where
    name_att s =  Name_Att_25 (s2b_escape s)
    name_att_bs =  Name_Att_25 
instance A_Name Att21 where
    name_att s =  Name_Att_21 (s2b_escape s)
    name_att_bs =  Name_Att_21 
instance A_Name Att20 where
    name_att s =  Name_Att_20 (s2b_escape s)
    name_att_bs =  Name_Att_20 
instance A_Name Att16 where
    name_att s =  Name_Att_16 (s2b_escape s)
    name_att_bs =  Name_Att_16 
instance A_Name Att5 where
    name_att s =  Name_Att_5 (s2b_escape s)
    name_att_bs =  Name_Att_5 

class A_Charset a where
    charset_att :: String -> a
    charset_att_bs :: B.ByteString -> a
instance A_Charset Att16 where
    charset_att s =  Charset_Att_16 (s2b_escape s)
    charset_att_bs =  Charset_Att_16 
instance A_Charset Att10 where
    charset_att s =  Charset_Att_10 (s2b_escape s)
    charset_att_bs =  Charset_Att_10 
instance A_Charset Att7 where
    charset_att s =  Charset_Att_7 (s2b_escape s)
    charset_att_bs =  Charset_Att_7 

class A_Scheme a where
    scheme_att :: String -> a
    scheme_att_bs :: B.ByteString -> a
instance A_Scheme Att5 where
    scheme_att s =  Scheme_Att_5 (s2b_escape s)
    scheme_att_bs =  Scheme_Att_5 

class A_Accept_charset a where
    accept_charset_att :: String -> a
    accept_charset_att_bs :: B.ByteString -> a
instance A_Accept_charset Att28 where
    accept_charset_att s =  Accept_charset_Att_28 (s2b_escape s)
    accept_charset_att_bs =  Accept_charset_Att_28 

class A_Onmousedown a where
    onmousedown_att :: String -> a
    onmousedown_att_bs :: B.ByteString -> a
instance A_Onmousedown Att44 where
    onmousedown_att s =  Onmousedown_Att_44 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_44 
instance A_Onmousedown Att43 where
    onmousedown_att s =  Onmousedown_Att_43 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_43 
instance A_Onmousedown Att42 where
    onmousedown_att s =  Onmousedown_Att_42 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_42 
instance A_Onmousedown Att41 where
    onmousedown_att s =  Onmousedown_Att_41 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_41 
instance A_Onmousedown Att40 where
    onmousedown_att s =  Onmousedown_Att_40 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_40 
instance A_Onmousedown Att39 where
    onmousedown_att s =  Onmousedown_Att_39 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_39 
instance A_Onmousedown Att36 where
    onmousedown_att s =  Onmousedown_Att_36 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_36 
instance A_Onmousedown Att35 where
    onmousedown_att s =  Onmousedown_Att_35 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_35 
instance A_Onmousedown Att33 where
    onmousedown_att s =  Onmousedown_Att_33 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_33 
instance A_Onmousedown Att32 where
    onmousedown_att s =  Onmousedown_Att_32 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_32 
instance A_Onmousedown Att31 where
    onmousedown_att s =  Onmousedown_Att_31 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_31 
instance A_Onmousedown Att30 where
    onmousedown_att s =  Onmousedown_Att_30 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_30 
instance A_Onmousedown Att28 where
    onmousedown_att s =  Onmousedown_Att_28 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_28 
instance A_Onmousedown Att27 where
    onmousedown_att s =  Onmousedown_Att_27 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_27 
instance A_Onmousedown Att25 where
    onmousedown_att s =  Onmousedown_Att_25 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_25 
instance A_Onmousedown Att22 where
    onmousedown_att s =  Onmousedown_Att_22 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_22 
instance A_Onmousedown Att20 where
    onmousedown_att s =  Onmousedown_Att_20 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_20 
instance A_Onmousedown Att17 where
    onmousedown_att s =  Onmousedown_Att_17 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_17 
instance A_Onmousedown Att16 where
    onmousedown_att s =  Onmousedown_Att_16 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_16 
instance A_Onmousedown Att15 where
    onmousedown_att s =  Onmousedown_Att_15 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_15 
instance A_Onmousedown Att14 where
    onmousedown_att s =  Onmousedown_Att_14 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_14 
instance A_Onmousedown Att13 where
    onmousedown_att s =  Onmousedown_Att_13 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_13 
instance A_Onmousedown Att12 where
    onmousedown_att s =  Onmousedown_Att_12 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_12 
instance A_Onmousedown Att11 where
    onmousedown_att s =  Onmousedown_Att_11 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_11 
instance A_Onmousedown Att7 where
    onmousedown_att s =  Onmousedown_Att_7 (s2b_escape s)
    onmousedown_att_bs =  Onmousedown_Att_7 

class A_Rev a where
    rev_att :: String -> a
    rev_att_bs :: B.ByteString -> a
instance A_Rev Att16 where
    rev_att s =  Rev_Att_16 (s2b_escape s)
    rev_att_bs =  Rev_Att_16 
instance A_Rev Att7 where
    rev_att s =  Rev_Att_7 (s2b_escape s)
    rev_att_bs =  Rev_Att_7 

class A_Span a where
    span_att :: String -> a
    span_att_bs :: B.ByteString -> a
instance A_Span Att43 where
    span_att s =  Span_Att_43 (s2b_escape s)
    span_att_bs =  Span_Att_43 

class A_Title a where
    title_att :: String -> a
    title_att_bs :: B.ByteString -> a
instance A_Title Att44 where
    title_att s =  Title_Att_44 (s2b_escape s)
    title_att_bs =  Title_Att_44 
instance A_Title Att43 where
    title_att s =  Title_Att_43 (s2b_escape s)
    title_att_bs =  Title_Att_43 
instance A_Title Att42 where
    title_att s =  Title_Att_42 (s2b_escape s)
    title_att_bs =  Title_Att_42 
instance A_Title Att41 where
    title_att s =  Title_Att_41 (s2b_escape s)
    title_att_bs =  Title_Att_41 
instance A_Title Att40 where
    title_att s =  Title_Att_40 (s2b_escape s)
    title_att_bs =  Title_Att_40 
instance A_Title Att39 where
    title_att s =  Title_Att_39 (s2b_escape s)
    title_att_bs =  Title_Att_39 
instance A_Title Att36 where
    title_att s =  Title_Att_36 (s2b_escape s)
    title_att_bs =  Title_Att_36 
instance A_Title Att35 where
    title_att s =  Title_Att_35 (s2b_escape s)
    title_att_bs =  Title_Att_35 
instance A_Title Att33 where
    title_att s =  Title_Att_33 (s2b_escape s)
    title_att_bs =  Title_Att_33 
instance A_Title Att32 where
    title_att s =  Title_Att_32 (s2b_escape s)
    title_att_bs =  Title_Att_32 
instance A_Title Att31 where
    title_att s =  Title_Att_31 (s2b_escape s)
    title_att_bs =  Title_Att_31 
instance A_Title Att30 where
    title_att s =  Title_Att_30 (s2b_escape s)
    title_att_bs =  Title_Att_30 
instance A_Title Att28 where
    title_att s =  Title_Att_28 (s2b_escape s)
    title_att_bs =  Title_Att_28 
instance A_Title Att27 where
    title_att s =  Title_Att_27 (s2b_escape s)
    title_att_bs =  Title_Att_27 
instance A_Title Att25 where
    title_att s =  Title_Att_25 (s2b_escape s)
    title_att_bs =  Title_Att_25 
instance A_Title Att22 where
    title_att s =  Title_Att_22 (s2b_escape s)
    title_att_bs =  Title_Att_22 
instance A_Title Att20 where
    title_att s =  Title_Att_20 (s2b_escape s)
    title_att_bs =  Title_Att_20 
instance A_Title Att19 where
    title_att s =  Title_Att_19 (s2b_escape s)
    title_att_bs =  Title_Att_19 
instance A_Title Att17 where
    title_att s =  Title_Att_17 (s2b_escape s)
    title_att_bs =  Title_Att_17 
instance A_Title Att16 where
    title_att s =  Title_Att_16 (s2b_escape s)
    title_att_bs =  Title_Att_16 
instance A_Title Att15 where
    title_att s =  Title_Att_15 (s2b_escape s)
    title_att_bs =  Title_Att_15 
instance A_Title Att14 where
    title_att s =  Title_Att_14 (s2b_escape s)
    title_att_bs =  Title_Att_14 
instance A_Title Att13 where
    title_att s =  Title_Att_13 (s2b_escape s)
    title_att_bs =  Title_Att_13 
instance A_Title Att12 where
    title_att s =  Title_Att_12 (s2b_escape s)
    title_att_bs =  Title_Att_12 
instance A_Title Att11 where
    title_att s =  Title_Att_11 (s2b_escape s)
    title_att_bs =  Title_Att_11 
instance A_Title Att8 where
    title_att s =  Title_Att_8 (s2b_escape s)
    title_att_bs =  Title_Att_8 
instance A_Title Att7 where
    title_att s =  Title_Att_7 (s2b_escape s)
    title_att_bs =  Title_Att_7 

class A_Onclick a where
    onclick_att :: String -> a
    onclick_att_bs :: B.ByteString -> a
instance A_Onclick Att44 where
    onclick_att s =  Onclick_Att_44 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_44 
instance A_Onclick Att43 where
    onclick_att s =  Onclick_Att_43 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_43 
instance A_Onclick Att42 where
    onclick_att s =  Onclick_Att_42 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_42 
instance A_Onclick Att41 where
    onclick_att s =  Onclick_Att_41 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_41 
instance A_Onclick Att40 where
    onclick_att s =  Onclick_Att_40 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_40 
instance A_Onclick Att39 where
    onclick_att s =  Onclick_Att_39 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_39 
instance A_Onclick Att36 where
    onclick_att s =  Onclick_Att_36 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_36 
instance A_Onclick Att35 where
    onclick_att s =  Onclick_Att_35 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_35 
instance A_Onclick Att33 where
    onclick_att s =  Onclick_Att_33 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_33 
instance A_Onclick Att32 where
    onclick_att s =  Onclick_Att_32 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_32 
instance A_Onclick Att31 where
    onclick_att s =  Onclick_Att_31 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_31 
instance A_Onclick Att30 where
    onclick_att s =  Onclick_Att_30 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_30 
instance A_Onclick Att28 where
    onclick_att s =  Onclick_Att_28 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_28 
instance A_Onclick Att27 where
    onclick_att s =  Onclick_Att_27 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_27 
instance A_Onclick Att25 where
    onclick_att s =  Onclick_Att_25 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_25 
instance A_Onclick Att22 where
    onclick_att s =  Onclick_Att_22 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_22 
instance A_Onclick Att20 where
    onclick_att s =  Onclick_Att_20 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_20 
instance A_Onclick Att17 where
    onclick_att s =  Onclick_Att_17 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_17 
instance A_Onclick Att16 where
    onclick_att s =  Onclick_Att_16 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_16 
instance A_Onclick Att15 where
    onclick_att s =  Onclick_Att_15 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_15 
instance A_Onclick Att14 where
    onclick_att s =  Onclick_Att_14 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_14 
instance A_Onclick Att13 where
    onclick_att s =  Onclick_Att_13 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_13 
instance A_Onclick Att12 where
    onclick_att s =  Onclick_Att_12 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_12 
instance A_Onclick Att11 where
    onclick_att s =  Onclick_Att_11 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_11 
instance A_Onclick Att7 where
    onclick_att s =  Onclick_Att_7 (s2b_escape s)
    onclick_att_bs =  Onclick_Att_7 

class A_Width a where
    width_att :: String -> a
    width_att_bs :: B.ByteString -> a
instance A_Width Att43 where
    width_att s =  Width_Att_43 (s2b_escape s)
    width_att_bs =  Width_Att_43 
instance A_Width Att41 where
    width_att s =  Width_Att_41 (s2b_escape s)
    width_att_bs =  Width_Att_41 
instance A_Width Att22 where
    width_att s =  Width_Att_22 (s2b_escape s)
    width_att_bs =  Width_Att_22 
instance A_Width Att20 where
    width_att s =  Width_Att_20 (s2b_escape s)
    width_att_bs =  Width_Att_20 

class A_Enctype a where
    enctype_att :: String -> a
    enctype_att_bs :: B.ByteString -> a
instance A_Enctype Att28 where
    enctype_att s =  Enctype_Att_28 (s2b_escape s)
    enctype_att_bs =  Enctype_Att_28 

class A_Ismap a where
    ismap_att :: String -> a
instance A_Ismap Att22 where
    ismap_att s =  Ismap_Att_22 (s2b (show s))

class A_Usemap a where
    usemap_att :: String -> a
    usemap_att_bs :: B.ByteString -> a
instance A_Usemap Att31 where
    usemap_att s =  Usemap_Att_31 (s2b_escape s)
    usemap_att_bs =  Usemap_Att_31 
instance A_Usemap Att22 where
    usemap_att s =  Usemap_Att_22 (s2b_escape s)
    usemap_att_bs =  Usemap_Att_22 
instance A_Usemap Att20 where
    usemap_att s =  Usemap_Att_20 (s2b_escape s)
    usemap_att_bs =  Usemap_Att_20 

class A_Coords a where
    coords_att :: String -> a
    coords_att_bs :: B.ByteString -> a
instance A_Coords Att27 where
    coords_att s =  Coords_Att_27 (s2b_escape s)
    coords_att_bs =  Coords_Att_27 
instance A_Coords Att16 where
    coords_att s =  Coords_Att_16 (s2b_escape s)
    coords_att_bs =  Coords_Att_16 

class A_Frame a where
    frame_att :: FrameEnum -> a
instance A_Frame Att41 where
    frame_att s =  Frame_Att_41 (s2b (show s))

class A_Size a where
    size_att :: String -> a
    size_att_bs :: B.ByteString -> a
instance A_Size Att32 where
    size_att s =  Size_Att_32 (s2b_escape s)
    size_att_bs =  Size_Att_32 
instance A_Size Att31 where
    size_att s =  Size_Att_31 (s2b_escape s)
    size_att_bs =  Size_Att_31 

class A_Onblur a where
    onblur_att :: String -> a
    onblur_att_bs :: B.ByteString -> a
instance A_Onblur Att40 where
    onblur_att s =  Onblur_Att_40 (s2b_escape s)
    onblur_att_bs =  Onblur_Att_40 
instance A_Onblur Att36 where
    onblur_att s =  Onblur_Att_36 (s2b_escape s)
    onblur_att_bs =  Onblur_Att_36 
instance A_Onblur Att32 where
    onblur_att s =  Onblur_Att_32 (s2b_escape s)
    onblur_att_bs =  Onblur_Att_32 
instance A_Onblur Att31 where
    onblur_att s =  Onblur_Att_31 (s2b_escape s)
    onblur_att_bs =  Onblur_Att_31 
instance A_Onblur Att30 where
    onblur_att s =  Onblur_Att_30 (s2b_escape s)
    onblur_att_bs =  Onblur_Att_30 
instance A_Onblur Att27 where
    onblur_att s =  Onblur_Att_27 (s2b_escape s)
    onblur_att_bs =  Onblur_Att_27 
instance A_Onblur Att16 where
    onblur_att s =  Onblur_Att_16 (s2b_escape s)
    onblur_att_bs =  Onblur_Att_16 

class A_Datetime a where
    datetime_att :: String -> a
    datetime_att_bs :: B.ByteString -> a
instance A_Datetime Att15 where
    datetime_att s =  Datetime_Att_15 (s2b_escape s)
    datetime_att_bs =  Datetime_Att_15 

class A_Dir a where
    dir_att :: DirEnum -> a
instance A_Dir Att44 where
    dir_att s =  Dir_Att_44 (s2b (show s))
instance A_Dir Att43 where
    dir_att s =  Dir_Att_43 (s2b (show s))
instance A_Dir Att42 where
    dir_att s =  Dir_Att_42 (s2b (show s))
instance A_Dir Att41 where
    dir_att s =  Dir_Att_41 (s2b (show s))
instance A_Dir Att40 where
    dir_att s =  Dir_Att_40 (s2b (show s))
instance A_Dir Att39 where
    dir_att s =  Dir_Att_39 (s2b (show s))
instance A_Dir Att36 where
    dir_att s =  Dir_Att_36 (s2b (show s))
instance A_Dir Att35 where
    dir_att s =  Dir_Att_35 (s2b (show s))
instance A_Dir Att33 where
    dir_att s =  Dir_Att_33 (s2b (show s))
instance A_Dir Att32 where
    dir_att s =  Dir_Att_32 (s2b (show s))
instance A_Dir Att31 where
    dir_att s =  Dir_Att_31 (s2b (show s))
instance A_Dir Att30 where
    dir_att s =  Dir_Att_30 (s2b (show s))
instance A_Dir Att28 where
    dir_att s =  Dir_Att_28 (s2b (show s))
instance A_Dir Att27 where
    dir_att s =  Dir_Att_27 (s2b (show s))
instance A_Dir Att25 where
    dir_att s =  Dir_Att_25 (s2b (show s))
instance A_Dir Att22 where
    dir_att s =  Dir_Att_22 (s2b (show s))
instance A_Dir Att20 where
    dir_att s =  Dir_Att_20 (s2b (show s))
instance A_Dir Att18 where
    dir_att s =  Dir_Att_18 (s2b (show s))
instance A_Dir Att17 where
    dir_att s =  Dir_Att_17 (s2b (show s))
instance A_Dir Att16 where
    dir_att s =  Dir_Att_16 (s2b (show s))
instance A_Dir Att15 where
    dir_att s =  Dir_Att_15 (s2b (show s))
instance A_Dir Att14 where
    dir_att s =  Dir_Att_14 (s2b (show s))
instance A_Dir Att13 where
    dir_att s =  Dir_Att_13 (s2b (show s))
instance A_Dir Att12 where
    dir_att s =  Dir_Att_12 (s2b (show s))
instance A_Dir Att11 where
    dir_att s =  Dir_Att_11 (s2b (show s))
instance A_Dir Att8 where
    dir_att s =  Dir_Att_8 (s2b (show s))
instance A_Dir Att7 where
    dir_att s =  Dir_Att_7 (s2b (show s))
instance A_Dir Att5 where
    dir_att s =  Dir_Att_5 (s2b (show s))
instance A_Dir Att2 where
    dir_att s =  Dir_Att_2 (s2b (show s))
instance A_Dir Att1 where
    dir_att s =  Dir_Att_1 (s2b (show s))
instance A_Dir Att0 where
    dir_att s =  Dir_Att_0 (s2b (show s))

class A_Summary a where
    summary_att :: String -> a
    summary_att_bs :: B.ByteString -> a
instance A_Summary Att41 where
    summary_att s =  Summary_Att_41 (s2b_escape s)
    summary_att_bs =  Summary_Att_41 

class A_Method a where
    method_att :: MethodEnum -> a
instance A_Method Att28 where
    method_att s =  Method_Att_28 (s2b (show s))

class A_Standby a where
    standby_att :: String -> a
    standby_att_bs :: B.ByteString -> a
instance A_Standby Att20 where
    standby_att s =  Standby_Att_20 (s2b_escape s)
    standby_att_bs =  Standby_Att_20 

class A_Tabindex a where
    tabindex_att :: String -> a
    tabindex_att_bs :: B.ByteString -> a
instance A_Tabindex Att40 where
    tabindex_att s =  Tabindex_Att_40 (s2b_escape s)
    tabindex_att_bs =  Tabindex_Att_40 
instance A_Tabindex Att36 where
    tabindex_att s =  Tabindex_Att_36 (s2b_escape s)
    tabindex_att_bs =  Tabindex_Att_36 
instance A_Tabindex Att32 where
    tabindex_att s =  Tabindex_Att_32 (s2b_escape s)
    tabindex_att_bs =  Tabindex_Att_32 
instance A_Tabindex Att31 where
    tabindex_att s =  Tabindex_Att_31 (s2b_escape s)
    tabindex_att_bs =  Tabindex_Att_31 
instance A_Tabindex Att27 where
    tabindex_att s =  Tabindex_Att_27 (s2b_escape s)
    tabindex_att_bs =  Tabindex_Att_27 
instance A_Tabindex Att20 where
    tabindex_att s =  Tabindex_Att_20 (s2b_escape s)
    tabindex_att_bs =  Tabindex_Att_20 
instance A_Tabindex Att16 where
    tabindex_att s =  Tabindex_Att_16 (s2b_escape s)
    tabindex_att_bs =  Tabindex_Att_16 

class A_Style a where
    style_att :: String -> a
    style_att_bs :: B.ByteString -> a
instance A_Style Att44 where
    style_att s =  Style_Att_44 (s2b_escape s)
    style_att_bs =  Style_Att_44 
instance A_Style Att43 where
    style_att s =  Style_Att_43 (s2b_escape s)
    style_att_bs =  Style_Att_43 
instance A_Style Att42 where
    style_att s =  Style_Att_42 (s2b_escape s)
    style_att_bs =  Style_Att_42 
instance A_Style Att41 where
    style_att s =  Style_Att_41 (s2b_escape s)
    style_att_bs =  Style_Att_41 
instance A_Style Att40 where
    style_att s =  Style_Att_40 (s2b_escape s)
    style_att_bs =  Style_Att_40 
instance A_Style Att39 where
    style_att s =  Style_Att_39 (s2b_escape s)
    style_att_bs =  Style_Att_39 
instance A_Style Att36 where
    style_att s =  Style_Att_36 (s2b_escape s)
    style_att_bs =  Style_Att_36 
instance A_Style Att35 where
    style_att s =  Style_Att_35 (s2b_escape s)
    style_att_bs =  Style_Att_35 
instance A_Style Att33 where
    style_att s =  Style_Att_33 (s2b_escape s)
    style_att_bs =  Style_Att_33 
instance A_Style Att32 where
    style_att s =  Style_Att_32 (s2b_escape s)
    style_att_bs =  Style_Att_32 
instance A_Style Att31 where
    style_att s =  Style_Att_31 (s2b_escape s)
    style_att_bs =  Style_Att_31 
instance A_Style Att30 where
    style_att s =  Style_Att_30 (s2b_escape s)
    style_att_bs =  Style_Att_30 
instance A_Style Att28 where
    style_att s =  Style_Att_28 (s2b_escape s)
    style_att_bs =  Style_Att_28 
instance A_Style Att27 where
    style_att s =  Style_Att_27 (s2b_escape s)
    style_att_bs =  Style_Att_27 
instance A_Style Att25 where
    style_att s =  Style_Att_25 (s2b_escape s)
    style_att_bs =  Style_Att_25 
instance A_Style Att22 where
    style_att s =  Style_Att_22 (s2b_escape s)
    style_att_bs =  Style_Att_22 
instance A_Style Att20 where
    style_att s =  Style_Att_20 (s2b_escape s)
    style_att_bs =  Style_Att_20 
instance A_Style Att19 where
    style_att s =  Style_Att_19 (s2b_escape s)
    style_att_bs =  Style_Att_19 
instance A_Style Att17 where
    style_att s =  Style_Att_17 (s2b_escape s)
    style_att_bs =  Style_Att_17 
instance A_Style Att16 where
    style_att s =  Style_Att_16 (s2b_escape s)
    style_att_bs =  Style_Att_16 
instance A_Style Att15 where
    style_att s =  Style_Att_15 (s2b_escape s)
    style_att_bs =  Style_Att_15 
instance A_Style Att14 where
    style_att s =  Style_Att_14 (s2b_escape s)
    style_att_bs =  Style_Att_14 
instance A_Style Att13 where
    style_att s =  Style_Att_13 (s2b_escape s)
    style_att_bs =  Style_Att_13 
instance A_Style Att12 where
    style_att s =  Style_Att_12 (s2b_escape s)
    style_att_bs =  Style_Att_12 
instance A_Style Att11 where
    style_att s =  Style_Att_11 (s2b_escape s)
    style_att_bs =  Style_Att_11 
instance A_Style Att7 where
    style_att s =  Style_Att_7 (s2b_escape s)
    style_att_bs =  Style_Att_7 

class A_Onmousemove a where
    onmousemove_att :: String -> a
    onmousemove_att_bs :: B.ByteString -> a
instance A_Onmousemove Att44 where
    onmousemove_att s =  Onmousemove_Att_44 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_44 
instance A_Onmousemove Att43 where
    onmousemove_att s =  Onmousemove_Att_43 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_43 
instance A_Onmousemove Att42 where
    onmousemove_att s =  Onmousemove_Att_42 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_42 
instance A_Onmousemove Att41 where
    onmousemove_att s =  Onmousemove_Att_41 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_41 
instance A_Onmousemove Att40 where
    onmousemove_att s =  Onmousemove_Att_40 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_40 
instance A_Onmousemove Att39 where
    onmousemove_att s =  Onmousemove_Att_39 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_39 
instance A_Onmousemove Att36 where
    onmousemove_att s =  Onmousemove_Att_36 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_36 
instance A_Onmousemove Att35 where
    onmousemove_att s =  Onmousemove_Att_35 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_35 
instance A_Onmousemove Att33 where
    onmousemove_att s =  Onmousemove_Att_33 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_33 
instance A_Onmousemove Att32 where
    onmousemove_att s =  Onmousemove_Att_32 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_32 
instance A_Onmousemove Att31 where
    onmousemove_att s =  Onmousemove_Att_31 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_31 
instance A_Onmousemove Att30 where
    onmousemove_att s =  Onmousemove_Att_30 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_30 
instance A_Onmousemove Att28 where
    onmousemove_att s =  Onmousemove_Att_28 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_28 
instance A_Onmousemove Att27 where
    onmousemove_att s =  Onmousemove_Att_27 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_27 
instance A_Onmousemove Att25 where
    onmousemove_att s =  Onmousemove_Att_25 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_25 
instance A_Onmousemove Att22 where
    onmousemove_att s =  Onmousemove_Att_22 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_22 
instance A_Onmousemove Att20 where
    onmousemove_att s =  Onmousemove_Att_20 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_20 
instance A_Onmousemove Att17 where
    onmousemove_att s =  Onmousemove_Att_17 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_17 
instance A_Onmousemove Att16 where
    onmousemove_att s =  Onmousemove_Att_16 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_16 
instance A_Onmousemove Att15 where
    onmousemove_att s =  Onmousemove_Att_15 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_15 
instance A_Onmousemove Att14 where
    onmousemove_att s =  Onmousemove_Att_14 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_14 
instance A_Onmousemove Att13 where
    onmousemove_att s =  Onmousemove_Att_13 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_13 
instance A_Onmousemove Att12 where
    onmousemove_att s =  Onmousemove_Att_12 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_12 
instance A_Onmousemove Att11 where
    onmousemove_att s =  Onmousemove_Att_11 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_11 
instance A_Onmousemove Att7 where
    onmousemove_att s =  Onmousemove_Att_7 (s2b_escape s)
    onmousemove_att_bs =  Onmousemove_Att_7 

class A_Height a where
    height_att :: String -> a
    height_att_bs :: B.ByteString -> a
instance A_Height Att22 where
    height_att s =  Height_Att_22 (s2b_escape s)
    height_att_bs =  Height_Att_22 
instance A_Height Att20 where
    height_att s =  Height_Att_20 (s2b_escape s)
    height_att_bs =  Height_Att_20 

class A_Codetype a where
    codetype_att :: String -> a
    codetype_att_bs :: B.ByteString -> a
instance A_Codetype Att20 where
    codetype_att s =  Codetype_Att_20 (s2b_escape s)
    codetype_att_bs =  Codetype_Att_20 

class A_Char a where
    char_att :: String -> a
    char_att_bs :: B.ByteString -> a
instance A_Char Att44 where
    char_att s =  Char_Att_44 (s2b_escape s)
    char_att_bs =  Char_Att_44 
instance A_Char Att43 where
    char_att s =  Char_Att_43 (s2b_escape s)
    char_att_bs =  Char_Att_43 
instance A_Char Att42 where
    char_att s =  Char_Att_42 (s2b_escape s)
    char_att_bs =  Char_Att_42 

class A_Multiple a where
    multiple_att :: String -> a
instance A_Multiple Att32 where
    multiple_att s =  Multiple_Att_32 (s2b (show s))

class A_Codebase a where
    codebase_att :: String -> a
    codebase_att_bs :: B.ByteString -> a
instance A_Codebase Att20 where
    codebase_att s =  Codebase_Att_20 (s2b_escape s)
    codebase_att_bs =  Codebase_Att_20 

class A_Xmlns a where
    xmlns_att :: String -> a
    xmlns_att_bs :: B.ByteString -> a
instance A_Xmlns Att0 where
    xmlns_att s =  Xmlns_Att_0 (s2b_escape s)
    xmlns_att_bs =  Xmlns_Att_0 

class A_Profile a where
    profile_att :: String -> a
    profile_att_bs :: B.ByteString -> a
instance A_Profile Att1 where
    profile_att s =  Profile_Att_1 (s2b_escape s)
    profile_att_bs =  Profile_Att_1 

class A_Rel a where
    rel_att :: String -> a
    rel_att_bs :: B.ByteString -> a
instance A_Rel Att16 where
    rel_att s =  Rel_Att_16 (s2b_escape s)
    rel_att_bs =  Rel_Att_16 
instance A_Rel Att7 where
    rel_att s =  Rel_Att_7 (s2b_escape s)
    rel_att_bs =  Rel_Att_7 

class A_Onsubmit a where
    onsubmit_att :: String -> a
    onsubmit_att_bs :: B.ByteString -> a
instance A_Onsubmit Att28 where
    onsubmit_att s =  Onsubmit_Att_28 (s2b_escape s)
    onsubmit_att_bs =  Onsubmit_Att_28 

class A_Ondblclick a where
    ondblclick_att :: String -> a
    ondblclick_att_bs :: B.ByteString -> a
instance A_Ondblclick Att44 where
    ondblclick_att s =  Ondblclick_Att_44 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_44 
instance A_Ondblclick Att43 where
    ondblclick_att s =  Ondblclick_Att_43 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_43 
instance A_Ondblclick Att42 where
    ondblclick_att s =  Ondblclick_Att_42 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_42 
instance A_Ondblclick Att41 where
    ondblclick_att s =  Ondblclick_Att_41 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_41 
instance A_Ondblclick Att40 where
    ondblclick_att s =  Ondblclick_Att_40 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_40 
instance A_Ondblclick Att39 where
    ondblclick_att s =  Ondblclick_Att_39 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_39 
instance A_Ondblclick Att36 where
    ondblclick_att s =  Ondblclick_Att_36 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_36 
instance A_Ondblclick Att35 where
    ondblclick_att s =  Ondblclick_Att_35 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_35 
instance A_Ondblclick Att33 where
    ondblclick_att s =  Ondblclick_Att_33 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_33 
instance A_Ondblclick Att32 where
    ondblclick_att s =  Ondblclick_Att_32 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_32 
instance A_Ondblclick Att31 where
    ondblclick_att s =  Ondblclick_Att_31 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_31 
instance A_Ondblclick Att30 where
    ondblclick_att s =  Ondblclick_Att_30 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_30 
instance A_Ondblclick Att28 where
    ondblclick_att s =  Ondblclick_Att_28 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_28 
instance A_Ondblclick Att27 where
    ondblclick_att s =  Ondblclick_Att_27 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_27 
instance A_Ondblclick Att25 where
    ondblclick_att s =  Ondblclick_Att_25 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_25 
instance A_Ondblclick Att22 where
    ondblclick_att s =  Ondblclick_Att_22 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_22 
instance A_Ondblclick Att20 where
    ondblclick_att s =  Ondblclick_Att_20 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_20 
instance A_Ondblclick Att17 where
    ondblclick_att s =  Ondblclick_Att_17 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_17 
instance A_Ondblclick Att16 where
    ondblclick_att s =  Ondblclick_Att_16 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_16 
instance A_Ondblclick Att15 where
    ondblclick_att s =  Ondblclick_Att_15 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_15 
instance A_Ondblclick Att14 where
    ondblclick_att s =  Ondblclick_Att_14 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_14 
instance A_Ondblclick Att13 where
    ondblclick_att s =  Ondblclick_Att_13 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_13 
instance A_Ondblclick Att12 where
    ondblclick_att s =  Ondblclick_Att_12 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_12 
instance A_Ondblclick Att11 where
    ondblclick_att s =  Ondblclick_Att_11 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_11 
instance A_Ondblclick Att7 where
    ondblclick_att s =  Ondblclick_Att_7 (s2b_escape s)
    ondblclick_att_bs =  Ondblclick_Att_7 

class A_Axis a where
    axis_att :: String -> a
    axis_att_bs :: B.ByteString -> a
instance A_Axis Att44 where
    axis_att s =  Axis_Att_44 (s2b_escape s)
    axis_att_bs =  Axis_Att_44 

class A_Cols a where
    cols_att :: String -> a
    cols_att_bs :: B.ByteString -> a
instance A_Cols Att38 where
    cols_att s =  Cols_Att_38 (s2b_escape s)
    cols_att_bs =  Cols_Att_38 
instance A_Cols Att36 where
    cols_att s =  Cols_Att_36 (s2b_escape s)
    cols_att_bs =  Cols_Att_36 

class A_Abbr a where
    abbr_att :: String -> a
    abbr_att_bs :: B.ByteString -> a
instance A_Abbr Att44 where
    abbr_att s =  Abbr_Att_44 (s2b_escape s)
    abbr_att_bs =  Abbr_Att_44 

class A_Onchange a where
    onchange_att :: String -> a